diff --git a/opal/master/await.js b/opal/master/await.js new file mode 100644 index 00000000..b21764b4 --- /dev/null +++ b/opal/master/await.js @@ -0,0 +1,629 @@ +Opal.modules["promise/v2"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $klass = Opal.klass, $def = Opal.def, $eqeq = Opal.eqeq, $send = Opal.send, $alias = Opal.alias, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $rb_minus = Opal.rb_minus, $to_a = Opal.to_a, $eqeqeq = Opal.eqeqeq, $rb_plus = Opal.rb_plus; + + Opal.add_stubs('instance_variable_set,Array,==,length,first,tap,attr_reader,!=,native?,raise,include?,any?,proc,call,nativity_check!,gen_tracing_proc,<<,there_can_be_only_one!,then,to_proc,fail,always,!,>,value,unshift,-,prev,trace,light_nativity_check!,nil?,resolved?,===,rejected?,map,when,new,rescue,resolve,reject,class,+,object_id,inspect'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'PromiseV2'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.type = $proto.next = $proto.realized = $proto.resolve_proc = $proto.reject_proc = $proto.value = nil; + + (function(self, $parent_nesting) { + + + + $def(self, '$allocate', function $$allocate() { + var $a, self = this, ok = nil, fail = nil, prom = nil; + + + $a = [nil, nil], (ok = $a[0]), (fail = $a[1]), $a; + prom = new self.$$constructor(function(_ok, _fail) { ok = _ok; fail = _fail; }); + prom.$instance_variable_set("@type", "opal"); + prom.$instance_variable_set("@resolve_proc", ok); + prom.$instance_variable_set("@reject_proc", fail); + return prom; + }, 0); + + $def(self, '$when', function $$when($a) { + var $post_args, promises, self = this; + + + + $post_args = Opal.slice.call(arguments); + + promises = $post_args;; + promises = self.$Array(($eqeq(promises.$length(), 1) ? (promises.$first()) : (promises))); + return $send((Promise.all(promises)), 'tap', [], function $$1(prom){ + + + if (prom == null) prom = nil;; + return prom.$instance_variable_set("@type", "when");}, 1); + }, -1); + + $def(self, '$all_resolved', function $$all_resolved($a) { + var $post_args, promises, self = this; + + + + $post_args = Opal.slice.call(arguments); + + promises = $post_args;; + promises = self.$Array(($eqeq(promises.$length(), 1) ? (promises.$first()) : (promises))); + return $send((Promise.allResolved(promises)), 'tap', [], function $$2(prom){ + + + if (prom == null) prom = nil;; + return prom.$instance_variable_set("@type", "all_resolved");}, 1); + }, -1); + + $def(self, '$any', function $$any($a) { + var $post_args, promises, self = this; + + + + $post_args = Opal.slice.call(arguments); + + promises = $post_args;; + promises = self.$Array(($eqeq(promises.$length(), 1) ? (promises.$first()) : (promises))); + return $send((Promise.any(promises)), 'tap', [], function $$3(prom){ + + + if (prom == null) prom = nil;; + return prom.$instance_variable_set("@type", "any");}, 1); + }, -1); + + $def(self, '$race', function $$race($a) { + var $post_args, promises, self = this; + + + + $post_args = Opal.slice.call(arguments); + + promises = $post_args;; + promises = self.$Array(($eqeq(promises.$length(), 1) ? (promises.$first()) : (promises))); + return $send((Promise.race(promises)), 'tap', [], function $$4(prom){ + + + if (prom == null) prom = nil;; + return prom.$instance_variable_set("@type", "race");}, 1); + }, -1); + + $def(self, '$resolve', function $$resolve(value) { + + + + if (value == null) value = nil;; + return $send((Promise.resolve(value)), 'tap', [], function $$5(prom){ + + + if (prom == null) prom = nil;; + prom.$instance_variable_set("@type", "resolve"); + prom.$instance_variable_set("@realized", "resolve"); + return prom.$instance_variable_set("@value", value);}, 1); + }, -1); + + $def(self, '$reject', function $$reject(value) { + + + + if (value == null) value = nil;; + return $send((Promise.reject(value)), 'tap', [], function $$6(prom){ + + + if (prom == null) prom = nil;; + prom.$instance_variable_set("@type", "reject"); + prom.$instance_variable_set("@realized", "reject"); + return prom.$instance_variable_set("@value", value);}, 1); + }, -1); + $alias(self, "all", "when"); + $alias(self, "error", "reject"); + return $alias(self, "value", "resolve"); + })(Opal.get_singleton_class(self), $nesting); + self.$attr_reader("prev", "next"); + + $def(self, '$native?', function $PromiseV2_native$ques$7() { + var self = this; + + return self.type['$!=']("opal") + }, 0); + + $def(self, '$nativity_check!', function $PromiseV2_nativity_check$excl$8() { + var self = this; + + if ($truthy(self['$native?']())) { + return self.$raise($$('ArgumentError'), "this promise is native to JavaScript") + } else { + return nil + } + }, 0); + + $def(self, '$light_nativity_check!', function $PromiseV2_light_nativity_check$excl$9() { + var self = this; + + + if ($truthy(["reject", "resolve", "trace", "always", "fail", "then"]['$include?'](self.type))) { + return nil + }; + if ($truthy(self['$native?']())) { + return self.$raise($$('ArgumentError'), "this promise is native to JavaScript") + } else { + return nil + }; + }, 0); + + $def(self, '$there_can_be_only_one!', function $PromiseV2_there_can_be_only_one$excl$10() { + var self = this; + + if (($truthy(self.next) && ($truthy(self.next['$any?']())))) { + return self.$raise($$('ArgumentError'), "a promise has already been chained") + } else { + return nil + } + }, 0); + + $def(self, '$gen_tracing_proc', function $$gen_tracing_proc(passing) { + var block = $$gen_tracing_proc.$$p || nil, self = this; + + delete $$gen_tracing_proc.$$p; + + ; + return $send(self, 'proc', [], function $$11(i){var res = nil; + + + + if (i == null) i = nil;; + res = passing.$call(i); + Opal.yield1(block, res); + return res;}, 1); + }, 1); + + $def(self, '$resolve', function $$resolve(value) { + var self = this; + + + + if (value == null) value = nil;; + self['$nativity_check!'](); + if ($truthy(self.realized)) { + self.$raise($$('ArgumentError'), "this promise was already resolved") + }; + self.value = value; + self.realized = "resolve"; + self.resolve_proc.$call(value); + return self; + }, -1); + + $def(self, '$reject', function $$reject(value) { + var self = this; + + + + if (value == null) value = nil;; + self['$nativity_check!'](); + if ($truthy(self.realized)) { + self.$raise($$('ArgumentError'), "this promise was already resolved") + }; + self.value = value; + self.realized = "reject"; + self.reject_proc.$call(value); + return self; + }, -1); + + $def(self, '$then', function $$then() { + var block = $$then.$$p || nil, self = this, prom = nil, blk = nil, $ret_or_1 = nil; + + delete $$then.$$p; + + ; + prom = nil; + blk = $send(self, 'gen_tracing_proc', [block], function $$12(val){ + + + if (val == null) val = nil;; + prom.$instance_variable_set("@realized", "resolve"); + return prom.$instance_variable_set("@value", val);}, 1); + prom = self.then(blk); + prom.$instance_variable_set("@prev", self); + prom.$instance_variable_set("@type", "then"); + (self.next = ($truthy(($ret_or_1 = self.next)) ? ($ret_or_1) : ([])))['$<<'](prom); + return prom; + }, 0); + + $def(self, '$then!', function $PromiseV2_then$excl$13() { + var block = $PromiseV2_then$excl$13.$$p || nil, self = this; + + delete $PromiseV2_then$excl$13.$$p; + + ; + self['$there_can_be_only_one!'](); + return $send(self, 'then', [], block.$to_proc()); + }, 0); + + $def(self, '$fail', function $$fail() { + var block = $$fail.$$p || nil, self = this, prom = nil, blk = nil, $ret_or_1 = nil; + + delete $$fail.$$p; + + ; + prom = nil; + blk = $send(self, 'gen_tracing_proc', [block], function $$14(val){ + + + if (val == null) val = nil;; + prom.$instance_variable_set("@realized", "resolve"); + return prom.$instance_variable_set("@value", val);}, 1); + prom = self.catch(blk); + prom.$instance_variable_set("@prev", self); + prom.$instance_variable_set("@type", "fail"); + (self.next = ($truthy(($ret_or_1 = self.next)) ? ($ret_or_1) : ([])))['$<<'](prom); + return prom; + }, 0); + + $def(self, '$fail!', function $PromiseV2_fail$excl$15() { + var block = $PromiseV2_fail$excl$15.$$p || nil, self = this; + + delete $PromiseV2_fail$excl$15.$$p; + + ; + self['$there_can_be_only_one!'](); + return $send(self, 'fail', [], block.$to_proc()); + }, 0); + + $def(self, '$always', function $$always() { + var block = $$always.$$p || nil, self = this, prom = nil, blk = nil, $ret_or_1 = nil; + + delete $$always.$$p; + + ; + prom = nil; + blk = $send(self, 'gen_tracing_proc', [block], function $$16(val){ + + + if (val == null) val = nil;; + prom.$instance_variable_set("@realized", "resolve"); + return prom.$instance_variable_set("@value", val);}, 1); + prom = self.finally(blk); + prom.$instance_variable_set("@prev", self); + prom.$instance_variable_set("@type", "always"); + (self.next = ($truthy(($ret_or_1 = self.next)) ? ($ret_or_1) : ([])))['$<<'](prom); + return prom; + }, 0); + + $def(self, '$always!', function $PromiseV2_always$excl$17() { + var block = $PromiseV2_always$excl$17.$$p || nil, self = this; + + delete $PromiseV2_always$excl$17.$$p; + + ; + self['$there_can_be_only_one!'](); + return $send(self, 'always', [], block.$to_proc()); + }, 0); + + $def(self, '$trace', function $$trace(depth) { + var block = $$trace.$$p || nil, self = this, prom = nil; + + delete $$trace.$$p; + + ; + + if (depth == null) depth = nil;; + prom = $send(self, 'then', [], function $$18(){var $a, self = $$18.$$s == null ? this : $$18.$$s, values = nil, $ret_or_1 = nil, $ret_or_2 = nil, val = nil; + + + values = []; + prom = self; + while ($truthy(($truthy(($ret_or_1 = prom)) ? (($truthy(($ret_or_2 = depth['$!']())) ? ($ret_or_2) : ($rb_gt(depth, 0)))) : ($ret_or_1)))) { + + val = nil; + + try { + val = prom.$value() + } catch ($err) { + if (Opal.rescue($err, [$$('ArgumentError')])) { + try { + val = "native" + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + values.$unshift(val); + if ($truthy(depth)) { + depth = $rb_minus(depth, 1) + }; + prom = prom.$prev(); + }; + return Opal.yieldX(block, $to_a(values));;}, {$$arity: 0, $$s: self}); + prom.$instance_variable_set("@type", "trace"); + return prom; + }, -1); + + $def(self, '$trace!', function $PromiseV2_trace$excl$19($a) { + var block = $PromiseV2_trace$excl$19.$$p || nil, $post_args, args, self = this; + + delete $PromiseV2_trace$excl$19.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + self['$there_can_be_only_one!'](); + return $send(self, 'trace', $to_a(args), block.$to_proc()); + }, -1); + + $def(self, '$resolved?', function $PromiseV2_resolved$ques$20() { + var self = this; + + + self['$light_nativity_check!'](); + return self.realized['$==']("resolve"); + }, 0); + + $def(self, '$rejected?', function $PromiseV2_rejected$ques$21() { + var self = this; + + + self['$light_nativity_check!'](); + return self.realized['$==']("reject"); + }, 0); + + $def(self, '$realized?', function $PromiseV2_realized$ques$22() { + var self = this; + + + self['$light_nativity_check!'](); + return self.realized['$nil?']()['$!'](); + }, 0); + + $def(self, '$value', function $$value() { + var self = this; + + if ($truthy(self['$resolved?']())) { + if ($eqeqeq($$('PromiseV2'), self.value)) { + return self.value.$value() + } else { + return self.value + } + } else { + return nil + } + }, 0); + + $def(self, '$error', function $$error() { + var self = this; + + + self['$light_nativity_check!'](); + if ($truthy(self['$rejected?']())) { + return self.value + } else { + return nil + }; + }, 0); + + $def(self, '$and', function $$and($a) { + var $post_args, promises, self = this; + + + + $post_args = Opal.slice.call(arguments); + + promises = $post_args;; + promises = $send(promises, 'map', [], function $$23(i){ + + + if (i == null) i = nil;; + if ($eqeqeq($$('PromiseV2'), i)) { + return i + } else { + return $$('PromiseV2').$value(i) + };}, 1); + return $send($send($$('PromiseV2'), 'when', [self].concat($to_a(promises))), 'then', [], function $$24(a, $b){var $post_args, b; + + + + if (a == null) a = nil;; + + $post_args = Opal.slice.call(arguments, 1); + + b = $post_args;; + return [].concat($to_a(a)).concat($to_a(b));}, -2); + }, -1); + + $def(self, '$initialize', function $$initialize() { + var block = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + ; + if ((block !== nil)) { + return Opal.yield1(block, self); + } else { + return nil + }; + }, 0); + + $def(self, '$to_v1', function $$to_v1() { + var self = this, v1 = nil; + + + v1 = $$('PromiseV1').$new(); + $send($send(self, 'then', [], function $$25(i){ + + + if (i == null) i = nil;; + return v1.$resolve(i);}, 1), 'rescue', [], function $$26(i){ + + + if (i == null) i = nil;; + return v1.$reject(i);}, 1); + return v1; + }, 0); + + $def(self, '$inspect', function $$inspect() { + var self = this, result = nil; + + + result = "#<" + (self.$class()); + if ($truthy(self.type)) { + if (!$truthy(["opal", "resolve", "reject"]['$include?'](self.type))) { + result = $rb_plus(result, ":" + (self.type)) + } + } else { + result = $rb_plus(result, ":native") + }; + if ($truthy(self.realized)) { + result = $rb_plus(result, ":" + (self.realized)) + }; + result = $rb_plus(result, "(" + (self.$object_id()) + ")"); + if (($truthy(self.next) && ($truthy(self.next['$any?']())))) { + result = $rb_plus(result, " >> " + (self.next.$inspect())) + }; + if ($truthy(self.value)) { + result = $rb_plus(result, ": " + (self.value.$inspect())) + }; + result = $rb_plus(result, ">"); + return result; + }, 0); + $alias(self, "catch", "fail"); + $alias(self, "catch!", "fail!"); + $alias(self, "do", "then"); + $alias(self, "do!", "then!"); + $alias(self, "ensure", "always"); + $alias(self, "ensure!", "always!"); + $alias(self, "finally", "always"); + $alias(self, "finally!", "always!"); + $alias(self, "reject!", "reject"); + $alias(self, "rescue", "fail"); + $alias(self, "rescue!", "fail!"); + $alias(self, "resolve!", "resolve"); + $alias(self, "to_n", "itself"); + return $alias(self, "to_v2", "itself"); + })($nesting[0], Promise, $nesting) +}; + +Opal.modules["await"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $coerce_to = Opal.coerce_to, $truthy = Opal.truthy, $klass = Opal.klass, $rb_lt = Opal.rb_lt, $rb_plus = Opal.rb_plus, $def = Opal.def, $send = Opal.send, $module = Opal.module, $to_a = Opal.to_a, $gvars = Opal.gvars, $rb_times = Opal.rb_times, $alias = Opal.alias; + + Opal.add_stubs('warn,require,<,<<,[],+,map_await,to_proc,when,map,empty?,pop,call,new,proc,resolve,*,async?'); + + if ($truthy(Opal.config.experimental_features_severity == 'warning')) { + self.$warn("Await functionality is a technology preview, which means it may change its behavior " + "in the future unless this warning is removed. If you are interested in this part, " + "please make sure you track the async/await/promises tag on Opal issues: " + "https://github.com/opal/opal/issues?q=label%3Aasync%2Fawait%2Fpromises") + }; + var AsyncFunction = Object.getPrototypeOf(async function() {}).constructor;; + self.$require("promise/v2"); + (function($base, $super) { + var self = $klass($base, $super, 'Array'); + + + + + $def(self, '$map_await', async function $$map_await() { + var block = $$map_await.$$p || nil, $a, self = this, i = nil, results = nil; + + delete $$map_await.$$p; + + ; + i = 0; + results = []; + while ($truthy($rb_lt(i, self.length))) { + + results['$<<']((await (Opal.yield1(block, self['$[]'](i))))); + i = $rb_plus(i, 1); + }; + return results; + }, 0); + return $def(self, '$each_await', async function $$each_await() { + var block = $$each_await.$$p || nil, self = this; + + delete $$each_await.$$p; + + ; + (await ($send(self, 'map_await', [], block.$to_proc()))); + return self; + }, 0); + })($nesting[0], null); + (function($base, $parent_nesting) { + var self = $module($base, 'Enumerable'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$each_async', async function $$each_async() { + var block = $$each_async.$$p || nil, self = this; + + delete $$each_async.$$p; + + ; + return (await ($send($$('PromiseV2'), 'when', $to_a($send(self, 'map', [], block.$to_proc()))))); + }, 0) + })($nesting[0], $nesting); + (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$exit', async function $$exit(status) { + var $a, $ret_or_1 = nil, block = nil; + if ($gvars.__at_exit__ == null) $gvars.__at_exit__ = nil; + + + + if (status == null) status = true;; + $gvars.__at_exit__ = ($truthy(($ret_or_1 = $gvars.__at_exit__)) ? ($ret_or_1) : ([])); + while (!($truthy($gvars.__at_exit__['$empty?']()))) { + + block = $gvars.__at_exit__.$pop(); + (await (block.$call())); + }; + + if (status.$$is_boolean) { + status = status ? 0 : 1; + } else { + status = $coerce_to(status, $$('Integer'), 'to_int') + } + + Opal.exit(status); + ; + return nil; + }, -1); + return $def(self, '$sleep', function $$sleep(seconds) { + var self = this, prom = nil; + + + prom = $$('PromiseV2').$new(); + setTimeout($send(self, 'proc', [], function $$1(){ + return prom.$resolve()}, 0), $rb_times(seconds, 1000)); + return prom; + }, 1); + })($nesting[0], $nesting); + (function($base) { + var self = $module($base, 'Kernel'); + + + return $alias(self, "await", "itself") + })($nesting[0]); + (function($base, $super) { + var self = $klass($base, $super, 'Proc'); + + + return $def(self, '$async?', function $Proc_async$ques$2() { + var self = this; + + return self instanceof AsyncFunction; + }, 0) + })($nesting[0], null); + return (function($base, $super) { + var self = $klass($base, $super, 'Method'); + + var $proto = self.$$prototype; + + $proto.method = nil; + return $def(self, '$async?', function $Method_async$ques$3() { + var self = this; + + return self.method['$async?']() + }, 0) + })($nesting[0], null); +}; diff --git a/opal/master/await.min.js b/opal/master/await.min.js new file mode 100644 index 00000000..f3bd4f75 --- /dev/null +++ b/opal/master/await.min.js @@ -0,0 +1 @@ +Opal.modules["promise/v2"]=function(Opal){var $nesting=[],nil=Opal.nil,$klass=Opal.klass,$def=Opal.def,$eqeq=Opal.eqeq,$send=Opal.send,$alias=Opal.alias,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$rb_minus=Opal.rb_minus,$to_a=Opal.to_a,$eqeqeq=Opal.eqeqeq,$rb_plus=Opal.rb_plus;return Opal.add_stubs("instance_variable_set,Array,==,length,first,tap,attr_reader,!=,native?,raise,include?,any?,proc,call,nativity_check!,gen_tracing_proc,<<,there_can_be_only_one!,then,to_proc,fail,always,!,>,value,unshift,-,prev,trace,light_nativity_check!,nil?,resolved?,===,rejected?,map,when,new,rescue,resolve,reject,class,+,object_id,inspect"),function($base,$super,$parent_nesting){var self=$klass($base,Promise,"PromiseV2"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.type=$proto.next=$proto.realized=$proto.resolve_proc=$proto.reject_proc=$proto.value=nil,function(self,$parent_nesting){$def(self,"$allocate",(function(){var $a,ok=nil,fail=nil,prom=nil;return ok=($a=[nil,nil])[0],fail=$a[1],(prom=new this.$$constructor((function(_ok,_fail){ok=_ok,fail=_fail}))).$instance_variable_set("@type","opal"),prom.$instance_variable_set("@resolve_proc",ok),prom.$instance_variable_set("@reject_proc",fail),prom}),0),$def(self,"$when",(function($a){var promises,self=this;return promises=Opal.slice.call(arguments),promises=self.$Array($eqeq(promises.$length(),1)?promises.$first():promises),$send(Promise.all(promises),"tap",[],(function(prom){return null==prom&&(prom=nil),prom.$instance_variable_set("@type","when")}),1)}),-1),$def(self,"$all_resolved",(function($a){var promises,self=this;return promises=Opal.slice.call(arguments),promises=self.$Array($eqeq(promises.$length(),1)?promises.$first():promises),$send(Promise.allResolved(promises),"tap",[],(function(prom){return null==prom&&(prom=nil),prom.$instance_variable_set("@type","all_resolved")}),1)}),-1),$def(self,"$any",(function($a){var promises,self=this;return promises=Opal.slice.call(arguments),promises=self.$Array($eqeq(promises.$length(),1)?promises.$first():promises),$send(Promise.any(promises),"tap",[],(function(prom){return null==prom&&(prom=nil),prom.$instance_variable_set("@type","any")}),1)}),-1),$def(self,"$race",(function($a){var promises,self=this;return promises=Opal.slice.call(arguments),promises=self.$Array($eqeq(promises.$length(),1)?promises.$first():promises),$send(Promise.race(promises),"tap",[],(function(prom){return null==prom&&(prom=nil),prom.$instance_variable_set("@type","race")}),1)}),-1),$def(self,"$resolve",(function(value){return null==value&&(value=nil),$send(Promise.resolve(value),"tap",[],(function(prom){return null==prom&&(prom=nil),prom.$instance_variable_set("@type","resolve"),prom.$instance_variable_set("@realized","resolve"),prom.$instance_variable_set("@value",value)}),1)}),-1),$def(self,"$reject",(function(value){return null==value&&(value=nil),$send(Promise.reject(value),"tap",[],(function(prom){return null==prom&&(prom=nil),prom.$instance_variable_set("@type","reject"),prom.$instance_variable_set("@realized","reject"),prom.$instance_variable_set("@value",value)}),1)}),-1),$alias(self,"all","when"),$alias(self,"error","reject"),$alias(self,"value","resolve")}(Opal.get_singleton_class(self)),self.$attr_reader("prev","next"),$def(self,"$native?",(function(){return this.type["$!="]("opal")}),0),$def(self,"$nativity_check!",(function(){return $truthy(this["$native?"]())?this.$raise($$("ArgumentError"),"this promise is native to JavaScript"):nil}),0),$def(self,"$light_nativity_check!",(function(){return $truthy(["reject","resolve","trace","always","fail","then"]["$include?"](this.type))?nil:$truthy(this["$native?"]())?this.$raise($$("ArgumentError"),"this promise is native to JavaScript"):nil}),0),$def(self,"$there_can_be_only_one!",(function(){return $truthy(this.next)&&$truthy(this.next["$any?"]())?this.$raise($$("ArgumentError"),"a promise has already been chained"):nil}),0),$def(self,"$gen_tracing_proc",(function $$gen_tracing_proc(passing){var block=$$gen_tracing_proc.$$p||nil;return delete $$gen_tracing_proc.$$p,$send(this,"proc",[],(function(i){var res;return null==i&&(i=nil),res=passing.$call(i),Opal.yield1(block,res),res}),1)}),1),$def(self,"$resolve",(function(value){return null==value&&(value=nil),this["$nativity_check!"](),$truthy(this.realized)&&this.$raise($$("ArgumentError"),"this promise was already resolved"),this.value=value,this.realized="resolve",this.resolve_proc.$call(value),this}),-1),$def(self,"$reject",(function(value){return null==value&&(value=nil),this["$nativity_check!"](),$truthy(this.realized)&&this.$raise($$("ArgumentError"),"this promise was already resolved"),this.value=value,this.realized="reject",this.reject_proc.$call(value),this}),-1),$def(self,"$then",(function $$then(){var blk,$ret_or_1,block=$$then.$$p||nil,prom=nil;return delete $$then.$$p,prom=nil,blk=$send(this,"gen_tracing_proc",[block],(function(val){return null==val&&(val=nil),prom.$instance_variable_set("@realized","resolve"),prom.$instance_variable_set("@value",val)}),1),(prom=this.then(blk)).$instance_variable_set("@prev",this),prom.$instance_variable_set("@type","then"),(this.next=$truthy($ret_or_1=this.next)?$ret_or_1:[])["$<<"](prom),prom}),0),$def(self,"$then!",(function $PromiseV2_then$excl$13(){var block=$PromiseV2_then$excl$13.$$p||nil;return delete $PromiseV2_then$excl$13.$$p,this["$there_can_be_only_one!"](),$send(this,"then",[],block.$to_proc())}),0),$def(self,"$fail",(function $$fail(){var blk,$ret_or_1,block=$$fail.$$p||nil,prom=nil;return delete $$fail.$$p,prom=nil,blk=$send(this,"gen_tracing_proc",[block],(function(val){return null==val&&(val=nil),prom.$instance_variable_set("@realized","resolve"),prom.$instance_variable_set("@value",val)}),1),(prom=this.catch(blk)).$instance_variable_set("@prev",this),prom.$instance_variable_set("@type","fail"),(this.next=$truthy($ret_or_1=this.next)?$ret_or_1:[])["$<<"](prom),prom}),0),$def(self,"$fail!",(function $PromiseV2_fail$excl$15(){var block=$PromiseV2_fail$excl$15.$$p||nil;return delete $PromiseV2_fail$excl$15.$$p,this["$there_can_be_only_one!"](),$send(this,"fail",[],block.$to_proc())}),0),$def(self,"$always",(function $$always(){var blk,$ret_or_1,block=$$always.$$p||nil,prom=nil;return delete $$always.$$p,prom=nil,blk=$send(this,"gen_tracing_proc",[block],(function(val){return null==val&&(val=nil),prom.$instance_variable_set("@realized","resolve"),prom.$instance_variable_set("@value",val)}),1),(prom=this.finally(blk)).$instance_variable_set("@prev",this),prom.$instance_variable_set("@type","always"),(this.next=$truthy($ret_or_1=this.next)?$ret_or_1:[])["$<<"](prom),prom}),0),$def(self,"$always!",(function $PromiseV2_always$excl$17(){var block=$PromiseV2_always$excl$17.$$p||nil;return delete $PromiseV2_always$excl$17.$$p,this["$there_can_be_only_one!"](),$send(this,"always",[],block.$to_proc())}),0),$def(self,"$trace",(function $$trace(depth){var block=$$trace.$$p||nil,prom=nil;return delete $$trace.$$p,null==depth&&(depth=nil),(prom=$send(this,"then",[],(function $$18(){var values=nil,$ret_or_1=nil,$ret_or_2=nil,val=nil;for(values=[],prom=null==$$18.$$s?this:$$18.$$s;$truthy($truthy($ret_or_1=prom)?$truthy($ret_or_2=depth["$!"]())?$ret_or_2:$rb_gt(depth,0):$ret_or_1);){val=nil;try{val=prom.$value()}catch($err){if(!Opal.rescue($err,[$$("ArgumentError")]))throw $err;try{val="native"}finally{Opal.pop_exception()}}values.$unshift(val),$truthy(depth)&&(depth=$rb_minus(depth,1)),prom=prom.$prev()}return Opal.yieldX(block,$to_a(values))}),{$$arity:0,$$s:this})).$instance_variable_set("@type","trace"),prom}),-1),$def(self,"$trace!",(function $PromiseV2_trace$excl$19($a){var args,block=$PromiseV2_trace$excl$19.$$p||nil,self=this;return delete $PromiseV2_trace$excl$19.$$p,args=Opal.slice.call(arguments),self["$there_can_be_only_one!"](),$send(self,"trace",$to_a(args),block.$to_proc())}),-1),$def(self,"$resolved?",(function(){return this["$light_nativity_check!"](),this.realized["$=="]("resolve")}),0),$def(self,"$rejected?",(function(){return this["$light_nativity_check!"](),this.realized["$=="]("reject")}),0),$def(self,"$realized?",(function(){return this["$light_nativity_check!"](),this.realized["$nil?"]()["$!"]()}),0),$def(self,"$value",(function(){return $truthy(this["$resolved?"]())?$eqeqeq($$("PromiseV2"),this.value)?this.value.$value():this.value:nil}),0),$def(self,"$error",(function(){return this["$light_nativity_check!"](),$truthy(this["$rejected?"]())?this.value:nil}),0),$def(self,"$and",(function($a){var $post_args,promises,self=this;return $post_args=Opal.slice.call(arguments),promises=$send(promises=$post_args,"map",[],(function(i){return null==i&&(i=nil),$eqeqeq($$("PromiseV2"),i)?i:$$("PromiseV2").$value(i)}),1),$send($send($$("PromiseV2"),"when",[self].concat($to_a(promises))),"then",[],(function(a,$b){var b;return null==a&&(a=nil),b=Opal.slice.call(arguments,1),[].concat($to_a(a)).concat($to_a(b))}),-2)}),-1),$def(self,"$initialize",(function $$initialize(){var block=$$initialize.$$p||nil;return delete $$initialize.$$p,block!==nil?Opal.yield1(block,this):nil}),0),$def(self,"$to_v1",(function(){var v1=nil;return v1=$$("PromiseV1").$new(),$send($send(this,"then",[],(function(i){return null==i&&(i=nil),v1.$resolve(i)}),1),"rescue",[],(function(i){return null==i&&(i=nil),v1.$reject(i)}),1),v1}),0),$def(self,"$inspect",(function(){var result=nil;return result="#<"+this.$class(),$truthy(this.type)?$truthy(["opal","resolve","reject"]["$include?"](this.type))||(result=$rb_plus(result,":"+this.type)):result=$rb_plus(result,":native"),$truthy(this.realized)&&(result=$rb_plus(result,":"+this.realized)),result=$rb_plus(result,"("+this.$object_id()+")"),$truthy(this.next)&&$truthy(this.next["$any?"]())&&(result=$rb_plus(result," >> "+this.next.$inspect())),$truthy(this.value)&&(result=$rb_plus(result,": "+this.value.$inspect())),result=$rb_plus(result,">")}),0),$alias(self,"catch","fail"),$alias(self,"catch!","fail!"),$alias(self,"do","then"),$alias(self,"do!","then!"),$alias(self,"ensure","always"),$alias(self,"ensure!","always!"),$alias(self,"finally","always"),$alias(self,"finally!","always!"),$alias(self,"reject!","reject"),$alias(self,"rescue","fail"),$alias(self,"rescue!","fail!"),$alias(self,"resolve!","resolve"),$alias(self,"to_n","itself"),$alias(self,"to_v2","itself")}($nesting[0],0,$nesting)},Opal.modules.await=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$coerce_to=Opal.coerce_to,$truthy=Opal.truthy,$klass=Opal.klass,$rb_lt=Opal.rb_lt,$rb_plus=Opal.rb_plus,$def=Opal.def,$send=Opal.send,$module=Opal.module,$to_a=Opal.to_a,$gvars=Opal.gvars,$rb_times=Opal.rb_times,$alias=Opal.alias;Opal.add_stubs("warn,require,<,<<,[],+,map_await,to_proc,when,map,empty?,pop,call,new,proc,resolve,*,async?"),$truthy("warning"==Opal.config.experimental_features_severity)&&self.$warn("Await functionality is a technology preview, which means it may change its behavior in the future unless this warning is removed. If you are interested in this part, please make sure you track the async/await/promises tag on Opal issues: https://github.com/opal/opal/issues?q=label%3Aasync%2Fawait%2Fpromises");var AsyncFunction=Object.getPrototypeOf((async function(){})).constructor;return self.$require("promise/v2"),function($base,$super){var self=$klass($base,null,"Array");$def(self,"$map_await",(async function $$map_await(){var block=$$map_await.$$p||nil,i=nil,results=nil;for(delete $$map_await.$$p,i=0,results=[];$truthy($rb_lt(i,this.length));)results["$<<"](await Opal.yield1(block,this["$[]"](i))),i=$rb_plus(i,1);return results}),0),$def(self,"$each_await",(async function $$each_await(){var block=$$each_await.$$p||nil;return delete $$each_await.$$p,await $send(this,"map_await",[],block.$to_proc()),this}),0)}($nesting[0]),function($base,$parent_nesting){var self=$module($base,"Enumerable"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$each_async",(async function $$each_async(){var block=$$each_async.$$p||nil;return delete $$each_async.$$p,await $send($$("PromiseV2"),"when",$to_a($send(this,"map",[],block.$to_proc())))}),0)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$exit",(async function(status){var $ret_or_1,block=nil;for(null==$gvars.__at_exit__&&($gvars.__at_exit__=nil),null==status&&(status=!0),$gvars.__at_exit__=$truthy($ret_or_1=$gvars.__at_exit__)?$ret_or_1:[];!$truthy($gvars.__at_exit__["$empty?"]());)block=$gvars.__at_exit__.$pop(),await block.$call();return status=status.$$is_boolean?status?0:1:$coerce_to(status,$$("Integer"),"to_int"),Opal.exit(status),nil}),-1),$def(self,"$sleep",(function(seconds){var prom=nil;return prom=$$("PromiseV2").$new(),setTimeout($send(this,"proc",[],(function(){return prom.$resolve()}),0),$rb_times(seconds,1e3)),prom}),1)}($nesting[0],$nesting),function($base){var self=$module($base,"Kernel");$alias(self,"await","itself")}($nesting[0]),function($base,$super){var self=$klass($base,null,"Proc");$def(self,"$async?",(function(){return this instanceof AsyncFunction}),0)}($nesting[0]),function($base,$super){var self=$klass($base,null,"Method");return self.$$prototype.method=nil,$def(self,"$async?",(function(){return this.method["$async?"]()}),0)}($nesting[0])}; diff --git a/opal/master/await.min.js.gz b/opal/master/await.min.js.gz new file mode 100644 index 00000000..4426effc Binary files /dev/null and b/opal/master/await.min.js.gz differ diff --git a/opal/master/base64.js b/opal/master/base64.js index 2821ec40..836269d6 100644 --- a/opal/master/base64.js +++ b/opal/master/base64.js @@ -1,12 +1,11 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["base64"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["base64"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $defs = Opal.defs, $hash2 = Opal.hash2, $truthy = Opal.truthy; - Opal.add_stubs(['$raise', '$delete']); + Opal.add_stubs('raise,delete'); return (function($base, $parent_nesting) { var self = $module($base, 'Base64'); - var $nesting = [self].concat($parent_nesting), $Base64_decode64$1, $Base64_encode64$2, $Base64_strict_decode64$3, $Base64_strict_encode64$4, $Base64_urlsafe_decode64$5, $Base64_urlsafe_encode64$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); @@ -30,7 +29,7 @@ Opal.modules["base64"] = function(Opal) { ) { charCode = str.charCodeAt(idx += 3/4); if (charCode > 0xFF) { - self.$raise($$($nesting, 'ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); + self.$raise($$('ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); } block = block << 8 | charCode; } @@ -43,7 +42,7 @@ Opal.modules["base64"] = function(Opal) { decode = function (input) { var str = String(input).replace(/=+$/, ''); if (str.length % 4 == 1) { - self.$raise($$($nesting, 'ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); + self.$raise($$('ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); } /* eslint-disable */ for ( @@ -64,33 +63,28 @@ Opal.modules["base64"] = function(Opal) { /* eslint-enable */ }; ; - Opal.defs(self, '$decode64', $Base64_decode64$1 = function $$decode64(string) { - var self = this; - + $defs(self, '$decode64', function $$decode64(string) { + return decode(string.replace(/\r?\n/g, '')); - }, $Base64_decode64$1.$$arity = 1); - Opal.defs(self, '$encode64', $Base64_encode64$2 = function $$encode64(string) { - var self = this; - + }, 1); + $defs(self, '$encode64', function $$encode64(string) { + return encode(string).replace(/(.{60})/g, "$1\n").replace(/([^\n])$/g, "$1\n"); - }, $Base64_encode64$2.$$arity = 1); - Opal.defs(self, '$strict_decode64', $Base64_strict_decode64$3 = function $$strict_decode64(string) { - var self = this; - + }, 1); + $defs(self, '$strict_decode64', function $$strict_decode64(string) { + return decode(string); - }, $Base64_strict_decode64$3.$$arity = 1); - Opal.defs(self, '$strict_encode64', $Base64_strict_encode64$4 = function $$strict_encode64(string) { - var self = this; - + }, 1); + $defs(self, '$strict_encode64', function $$strict_encode64(string) { + return encode(string); - }, $Base64_strict_encode64$4.$$arity = 1); - Opal.defs(self, '$urlsafe_decode64', $Base64_urlsafe_decode64$5 = function $$urlsafe_decode64(string) { - var self = this; - + }, 1); + $defs(self, '$urlsafe_decode64', function $$urlsafe_decode64(string) { + return decode(string.replace(/\-/g, '+').replace(/_/g, '/')); - }, $Base64_urlsafe_decode64$5.$$arity = 1); - return (Opal.defs(self, '$urlsafe_encode64', $Base64_urlsafe_encode64$6 = function $$urlsafe_encode64(string, $kwargs) { - var padding, self = this, str = nil; + }, 1); + return $defs(self, '$urlsafe_encode64', function $$urlsafe_encode64(string, $kwargs) { + var padding, str = nil; @@ -101,15 +95,12 @@ Opal.modules["base64"] = function(Opal) { }; padding = $kwargs.$$smap["padding"]; - if (padding == null) { - padding = true - }; + if (padding == null) padding = true; str = encode(string).replace(/\+/g, '-').replace(/\//g, '_'); - if ($truthy(padding)) { - } else { + if (!$truthy(padding)) { str = str.$delete("=") }; return str; - }, $Base64_urlsafe_encode64$6.$$arity = -2), nil) && 'urlsafe_encode64'; + }, -2); })($nesting[0], $nesting) }; diff --git a/opal/master/base64.min.js b/opal/master/base64.min.js index 80b96040..7144ff1c 100644 --- a/opal/master/base64.min.js +++ b/opal/master/base64.min.js @@ -1 +1 @@ -Opal.modules.base64=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$raise","$delete"]),function($base,$Base64_urlsafe_encode64$6){var self=$module($base,"Base64"),$nesting=[self].concat($Base64_urlsafe_encode64$6),chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode=function(input){for(var block,charCode,str=String(input),idx=0,map=chars,output="";str.charAt(0|idx)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8))255<(charCode=str.charCodeAt(idx+=.75))&&self.$raise($$($nesting,"ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),block=block<<8|charCode;return output},decode=function(input){var str=String(input).replace(/=+$/,"");str.length%4==1&&self.$raise($$($nesting,"ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var bs,buffer,bc=0,idx=0,output="";buffer=str.charAt(idx++);~buffer&&(bs=bc%4?64*bs+buffer:buffer,bc++%4)&&(output+=String.fromCharCode(255&bs>>(-2*bc&6))))buffer=chars.indexOf(buffer);return output};return Opal.defs(self,"$decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string.replace(/\r?\n/g,""))},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$encode64",$Base64_urlsafe_encode64$6=function(string){return encode(string).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$strict_decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string)},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$strict_encode64",$Base64_urlsafe_encode64$6=function(string){return encode(string)},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$urlsafe_decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string.replace(/\-/g,"+").replace(/_/g,"/"))},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$urlsafe_encode64",$Base64_urlsafe_encode64$6=function(string,padding){var str=nil;if(null==padding)padding=$hash2([],{});else if(!padding.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(padding=padding.$$smap.padding)&&(padding=!0),str=encode(string).replace(/\+/g,"-").replace(/\//g,"_"),$truthy(padding)||(str=str.$delete("=")),str},$Base64_urlsafe_encode64$6.$$arity=-2),nil&&"urlsafe_encode64"}($nesting[0],$nesting)}; +Opal.modules.base64=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$defs=Opal.defs,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs("raise,delete"),function($base,$parent_nesting){var encode,decode,self=$module($base,"Base64"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return encode=function(input){for(var block,charCode,str=String(input),idx=0,map=chars,output="";str.charAt(0|idx)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8))(charCode=str.charCodeAt(idx+=3/4))>255&&self.$raise($$("ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),block=block<<8|charCode;return output},decode=function(input){var str=String(input).replace(/=+$/,"");str.length%4==1&&self.$raise($$("ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var bs,buffer,bc=0,idx=0,output="";buffer=str.charAt(idx++);~buffer&&(bs=bc%4?64*bs+buffer:buffer,bc++%4)?output+=String.fromCharCode(255&bs>>(-2*bc&6)):0)buffer=chars.indexOf(buffer);return output},$defs(self,"$decode64",(function(string){return decode(string.replace(/\r?\n/g,""))}),1),$defs(self,"$encode64",(function(string){return encode(string).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")}),1),$defs(self,"$strict_decode64",(function(string){return decode(string)}),1),$defs(self,"$strict_encode64",(function(string){return encode(string)}),1),$defs(self,"$urlsafe_decode64",(function(string){return decode(string.replace(/\-/g,"+").replace(/_/g,"/"))}),1),$defs(self,"$urlsafe_encode64",(function(string,$kwargs){var padding,str=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(padding=$kwargs.$$smap.padding)&&(padding=!0),str=encode(string).replace(/\+/g,"-").replace(/\//g,"_"),$truthy(padding)||(str=str.$delete("=")),str}),-2)}($nesting[0],$nesting)}; diff --git a/opal/master/base64.min.js.gz b/opal/master/base64.min.js.gz index 260af86e..9fe292b2 100644 Binary files a/opal/master/base64.min.js.gz and b/opal/master/base64.min.js.gz differ diff --git a/opal/master/benchmark.js b/opal/master/benchmark.js index 73a94463..2a8fea7c 100644 --- a/opal/master/benchmark.js +++ b/opal/master/benchmark.js @@ -1,277 +1,195 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["benchmark"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $klass = Opal.klass, $alias = Opal.alias, $gvars = Opal.gvars; - - Opal.add_stubs(['$sync', '$sync=', '$-', '$+', '$empty?', '$print', '$*', '$new', '$===', '$each', '$grep', '$ljust', '$shift', '$label', '$format', '$list', '$nil?', '$benchmark', '$to_proc', '$width', '$puts', '$length', '$inject', '$measure', '$rjust', '$map', '$start', '$tap', '$times', '$clock_gettime', '$utime', '$stime', '$cutime', '$cstime', '$module_function', '$raise', '$to_s', '$<', '$<<', '$attr_reader', '$real', '$memberwise', '$gsub', '$dup', '$%', '$total', '$protected', '$__send__']); +Opal.modules["benchmark"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $const_set = Opal.const_set, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $rb_times = Opal.rb_times, $def = Opal.def, $to_ary = Opal.to_ary, $klass = Opal.klass, $rb_lt = Opal.rb_lt, $alias = Opal.alias, $gvars = Opal.gvars, $hash2 = Opal.hash2, $eqeqeq = Opal.eqeqeq; + + Opal.add_stubs('sync,sync=,-,+,empty?,print,*,new,===,each,grep,ljust,shift,label,format,list,nil?,benchmark,to_proc,width,puts,length,inject,measure,rjust,map,start,tap,times,clock_gettime,utime,stime,cutime,cstime,module_function,raise,to_s,<,<<,attr_reader,real,memberwise,gsub,dup,%,total,protected,__send__'); return (function($base, $parent_nesting) { var self = $module($base, 'Benchmark'); - var $nesting = [self].concat($parent_nesting), $Benchmark_benchmark$1, $Benchmark_bm$3, $Benchmark_bmbm$4, $a, $b, $Benchmark_measure$8, $Benchmark_realtime$9; + var $a, $b, $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'BENCHMARK_VERSION', "2002-04-25"); + $const_set($nesting[0], 'BENCHMARK_VERSION', "2002-04-25"); - Opal.def(self, '$benchmark', $Benchmark_benchmark$1 = function $$benchmark($a, $b, $c, $d) { - var $post_args, caption, label_width, format, labels, $$2, $iter = $Benchmark_benchmark$1.$$p, $yield = $iter || nil, self = this, sync = nil, $writer = nil, $ret_or_1 = nil, $ret_or_2 = nil, report = nil, results = nil, $ret_or_3 = nil; + $def(self, '$benchmark', function $$benchmark($a, $b, $c, $d) { + var $post_args, caption, label_width, format, labels, $yield = $$benchmark.$$p || nil, self = this, sync = nil, $writer = nil, $ret_or_1 = nil, report = nil, results = nil; - if ($iter) $Benchmark_benchmark$1.$$p = null; + delete $$benchmark.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - caption = $post_args[0]; - $post_args.splice(0, 1); - } - if (caption == null) { - caption = ""; - }; + if ($post_args.length > 0) caption = $post_args.shift(); + if (caption == null) caption = "";; - if ($post_args.length > 0) { - label_width = $post_args[0]; - $post_args.splice(0, 1); - } - if (label_width == null) { - label_width = nil; - }; + if ($post_args.length > 0) label_width = $post_args.shift(); + if (label_width == null) label_width = nil;; - if ($post_args.length > 0) { - format = $post_args[0]; - $post_args.splice(0, 1); - } - if (format == null) { - format = nil; - }; + if ($post_args.length > 0) format = $post_args.shift(); + if (format == null) format = nil;; labels = $post_args;; return (function() { try { - sync = $$($nesting, 'STDOUT').$sync(); + sync = $$('STDOUT').$sync(); $writer = [true]; - $send($$($nesting, 'STDOUT'), 'sync=', Opal.to_a($writer)); + $send($$('STDOUT'), 'sync=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - label_width = (function() {if ($truthy(($ret_or_1 = label_width))) { - return $ret_or_1 - } else { - return 0 - }; return nil; })(); + label_width = ($truthy(($ret_or_1 = label_width)) ? ($ret_or_1) : (0)); label_width = $rb_plus(label_width, 1); - format = (function() {if ($truthy(($ret_or_2 = format))) { - return $ret_or_2 - } else { - return $$($nesting, 'FORMAT') - }; return nil; })(); - if ($truthy(caption['$empty?']())) { - } else { + format = ($truthy(($ret_or_1 = format)) ? ($ret_or_1) : ($$('FORMAT'))); + if (!$truthy(caption['$empty?']())) { self.$print($rb_plus($rb_times(" ", label_width), caption)) }; - report = $$($nesting, 'Report').$new(label_width, format); + report = $$('Report').$new(label_width, format); results = Opal.yield1($yield, report); - if ($truthy(($ret_or_3 = $$($nesting, 'Array')['$==='](results)))) { - $send(results.$grep($$($nesting, 'Tms')), 'each', [], ($$2 = function(t){var self = $$2.$$s == null ? this : $$2.$$s, $ret_or_4 = nil, $ret_or_5 = nil; + if ($truthy(($ret_or_1 = $$('Array')['$==='](results)))) { + $send(results.$grep($$('Tms')), 'each', [], function $$1(t){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_2 = nil, $ret_or_3 = nil; - if (t == null) { - t = nil; - }; - return self.$print((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = labels.$shift()))) { - return $ret_or_5 - } else { - return t.$label() - }; return nil; })()))) { - return $ret_or_4 - } else { - return "" - }; return nil; })().$ljust(label_width), t.$format(format));}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + if (t == null) t = nil;; + return self.$print(($truthy(($ret_or_2 = ($truthy(($ret_or_3 = labels.$shift())) ? ($ret_or_3) : (t.$label())))) ? ($ret_or_2) : ("")).$ljust(label_width), t.$format(format));}, {$$arity: 1, $$s: self}) } else { - $ret_or_3 + $ret_or_1 }; return report.$list(); } finally { - (function() {if ($truthy(sync['$nil?']())) { - return nil - } else { - - $writer = [sync]; - $send($$($nesting, 'STDOUT'), 'sync=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }; return nil; })() + ($truthy(sync['$nil?']()) ? (nil) : ((($writer = [sync]), $send($$('STDOUT'), 'sync=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))) }; })(); - }, $Benchmark_benchmark$1.$$arity = -1); + }, -1); - Opal.def(self, '$bm', $Benchmark_bm$3 = function $$bm($a, $b) { - var $iter = $Benchmark_bm$3.$$p, blk = $iter || nil, $post_args, label_width, labels, self = this; + $def(self, '$bm', function $$bm($a, $b) { + var blk = $$bm.$$p || nil, $post_args, label_width, labels, self = this; - if ($iter) $Benchmark_bm$3.$$p = null; + delete $$bm.$$p; + ; - if ($iter) $Benchmark_bm$3.$$p = null;; + $post_args = Opal.slice.call(arguments); - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - if ($post_args.length > 0) { - label_width = $post_args[0]; - $post_args.splice(0, 1); - } - if (label_width == null) { - label_width = 0; - }; + if ($post_args.length > 0) label_width = $post_args.shift(); + if (label_width == null) label_width = 0;; labels = $post_args;; - return $send(self, 'benchmark', [$$($nesting, 'CAPTION'), label_width, $$($nesting, 'FORMAT')].concat(Opal.to_a(labels)), blk.$to_proc()); - }, $Benchmark_bm$3.$$arity = -1); + return $send(self, 'benchmark', [$$('CAPTION'), label_width, $$('FORMAT')].concat($to_a(labels)), blk.$to_proc()); + }, -1); - Opal.def(self, '$bmbm', $Benchmark_bmbm$4 = function $$bmbm(width) { - var $$5, $$6, $iter = $Benchmark_bmbm$4.$$p, $yield = $iter || nil, self = this, job = nil, sync = nil, $writer = nil, ets = nil; + $def(self, '$bmbm', function $$bmbm(width) { + var $yield = $$bmbm.$$p || nil, self = this, job = nil, sync = nil, $writer = nil, ets = nil; - if ($iter) $Benchmark_bmbm$4.$$p = null; + delete $$bmbm.$$p; - if (width == null) { - width = 0; - }; + if (width == null) width = 0;; return (function() { try { - job = $$($nesting, 'Job').$new(width); + job = $$('Job').$new(width); Opal.yield1($yield, job); width = $rb_plus(job.$width(), 1); - sync = $$($nesting, 'STDOUT').$sync(); + sync = $$('STDOUT').$sync(); $writer = [true]; - $send($$($nesting, 'STDOUT'), 'sync=', Opal.to_a($writer)); + $send($$('STDOUT'), 'sync=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.$puts("Rehearsal ".$ljust($rb_plus(width, $$($nesting, 'CAPTION').$length()), "-")); - ets = $send(job.$list(), 'inject', [$$($nesting, 'Tms').$new()], ($$5 = function(sum, $mlhs_tmp1){var self = $$5.$$s == null ? this : $$5.$$s, $a, $b, label = nil, item = nil, res = nil; + self.$puts("Rehearsal ".$ljust($rb_plus(width, $$('CAPTION').$length()), "-")); + ets = $send(job.$list(), 'inject', [$$('Tms').$new()], function $$2(sum, $mlhs_tmp1){var $a, $b, self = $$2.$$s == null ? this : $$2.$$s, label = nil, item = nil, res = nil; - if (sum == null) { - sum = nil; - }; + if (sum == null) sum = nil;; - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $b = $mlhs_tmp1, $a = Opal.to_ary($b), (label = ($a[0] == null ? nil : $a[0])), (item = ($a[1] == null ? nil : $a[1])), $b; + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $b = $mlhs_tmp1, $a = $to_ary($b), (label = ($a[0] == null ? nil : $a[0])), (item = ($a[1] == null ? nil : $a[1])), $b; self.$print(label.$ljust(width)); - res = $send($$($nesting, 'Benchmark'), 'measure', [], item.$to_proc()); + res = $send($$('Benchmark'), 'measure', [], item.$to_proc()); self.$print(res.$format()); - return $rb_plus(sum, res);}, $$5.$$s = self, $$5.$$arity = 2, $$5.$$has_top_level_mlhs_arg = true, $$5)).$format("total: %tsec"); - self.$print(((("" + " ") + (ets)) + "\n\n").$rjust($rb_plus($rb_plus(width, $$($nesting, 'CAPTION').$length()), 2), "-")); - self.$print($rb_plus($rb_times(" ", width), $$($nesting, 'CAPTION'))); - return $send(job.$list(), 'map', [], ($$6 = function(label, item){var self = $$6.$$s == null ? this : $$6.$$s, $$7; + return $rb_plus(sum, res);}, {$$arity: 2, $$s: self, $$has_top_level_mlhs_arg: true}).$format("total: %tsec"); + self.$print((((" ") + (ets)) + "\n\n").$rjust($rb_plus($rb_plus(width, $$('CAPTION').$length()), 2), "-")); + self.$print($rb_plus($rb_times(" ", width), $$('CAPTION'))); + return $send(job.$list(), 'map', [], function $$3(label, item){var self = $$3.$$s == null ? this : $$3.$$s; - if (label == null) { - label = nil; - }; + if (label == null) label = nil;; - if (item == null) { - item = nil; - }; - $$($nesting, 'GC').$start(); + if (item == null) item = nil;; + $$('GC').$start(); self.$print(label.$ljust(width)); - return $send($send($$($nesting, 'Benchmark'), 'measure', [label], item.$to_proc()), 'tap', [], ($$7 = function(res){var self = $$7.$$s == null ? this : $$7.$$s; + return $send($send($$('Benchmark'), 'measure', [label], item.$to_proc()), 'tap', [], function $$4(res){var self = $$4.$$s == null ? this : $$4.$$s; - if (res == null) { - res = nil; - }; - return self.$print(res);}, $$7.$$s = self, $$7.$$arity = 1, $$7));}, $$6.$$s = self, $$6.$$arity = 2, $$6)); + if (res == null) res = nil;; + return self.$print(res);}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}); } finally { - (function() {if ($truthy(sync['$nil?']())) { - return nil - } else { - - $writer = [sync]; - $send($$($nesting, 'STDOUT'), 'sync=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }; return nil; })() + ($truthy(sync['$nil?']()) ? (nil) : ((($writer = [sync]), $send($$('STDOUT'), 'sync=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))) }; })(); - }, $Benchmark_bmbm$4.$$arity = -1); + }, -1); + if ($truthy((($b = $$('Process', 'skip_raise')) && ($a = $$$($b, 'CLOCK_MONOTONIC', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'BENCHMARK_CLOCK', $$$($$('Process'), 'CLOCK_MONOTONIC')) + } else { + $const_set($nesting[0], 'BENCHMARK_CLOCK', $$$($$('Process'), 'CLOCK_REALTIME')) + }; - if ($truthy((($b = $$($nesting, 'Process', 'skip_raise')) && ($a = $$$($b, 'CLOCK_MONOTONIC', 'skip_raise')) ? 'constant' : nil))) {Opal.const_set($nesting[0], 'BENCHMARK_CLOCK', $$$($$($nesting, 'Process'), 'CLOCK_MONOTONIC'))} - else {Opal.const_set($nesting[0], 'BENCHMARK_CLOCK', $$$($$($nesting, 'Process'), 'CLOCK_REALTIME'))}; - - Opal.def(self, '$measure', $Benchmark_measure$8 = function $$measure(label) { - var $a, $iter = $Benchmark_measure$8.$$p, $yield = $iter || nil, self = this, t0 = nil, r0 = nil, t1 = nil, r1 = nil; + $def(self, '$measure', function $$measure(label) { + var $a, $yield = $$measure.$$p || nil, t0 = nil, r0 = nil, t1 = nil, r1 = nil; - if ($iter) $Benchmark_measure$8.$$p = null; + delete $$measure.$$p; - if (label == null) { - label = ""; - }; - $a = [$$($nesting, 'Process').$times(), $$($nesting, 'Process').$clock_gettime($$($nesting, 'BENCHMARK_CLOCK'))], (t0 = $a[0]), (r0 = $a[1]), $a; + if (label == null) label = "";; + $a = [$$('Process').$times(), $$('Process').$clock_gettime($$('BENCHMARK_CLOCK'))], (t0 = $a[0]), (r0 = $a[1]), $a; Opal.yieldX($yield, []); - $a = [$$($nesting, 'Process').$times(), $$($nesting, 'Process').$clock_gettime($$($nesting, 'BENCHMARK_CLOCK'))], (t1 = $a[0]), (r1 = $a[1]), $a; - return $$$($$($nesting, 'Benchmark'), 'Tms').$new($rb_minus(t1.$utime(), t0.$utime()), $rb_minus(t1.$stime(), t0.$stime()), $rb_minus(t1.$cutime(), t0.$cutime()), $rb_minus(t1.$cstime(), t0.$cstime()), $rb_minus(r1, r0), label); - }, $Benchmark_measure$8.$$arity = -1); + $a = [$$('Process').$times(), $$('Process').$clock_gettime($$('BENCHMARK_CLOCK'))], (t1 = $a[0]), (r1 = $a[1]), $a; + return $$$($$('Benchmark'), 'Tms').$new($rb_minus(t1.$utime(), t0.$utime()), $rb_minus(t1.$stime(), t0.$stime()), $rb_minus(t1.$cutime(), t0.$cutime()), $rb_minus(t1.$cstime(), t0.$cstime()), $rb_minus(r1, r0), label); + }, -1); - Opal.def(self, '$realtime', $Benchmark_realtime$9 = function $$realtime() { - var $iter = $Benchmark_realtime$9.$$p, $yield = $iter || nil, self = this, r0 = nil; + $def(self, '$realtime', function $$realtime() { + var $yield = $$realtime.$$p || nil, r0 = nil; - if ($iter) $Benchmark_realtime$9.$$p = null; + delete $$realtime.$$p; - r0 = $$($nesting, 'Process').$clock_gettime($$($nesting, 'BENCHMARK_CLOCK')); + r0 = $$('Process').$clock_gettime($$('BENCHMARK_CLOCK')); Opal.yieldX($yield, []); - return $rb_minus($$($nesting, 'Process').$clock_gettime($$($nesting, 'BENCHMARK_CLOCK')), r0); - }, $Benchmark_realtime$9.$$arity = 0); + return $rb_minus($$('Process').$clock_gettime($$('BENCHMARK_CLOCK')), r0); + }, 0); self.$module_function("benchmark", "measure", "realtime", "bm", "bmbm"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Job'); - var $nesting = [self].concat($parent_nesting), $Job_initialize$10, $Job_item$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.width = self.$$prototype.list = nil; + $proto.width = $proto.list = nil; - Opal.def(self, '$initialize', $Job_initialize$10 = function $$initialize(width) { + $def(self, '$initialize', function $$initialize(width) { var self = this; self.width = width; return (self.list = []); - }, $Job_initialize$10.$$arity = 1); + }, 1); - Opal.def(self, '$item', $Job_item$11 = function $$item(label) { - var $iter = $Job_item$11.$$p, blk = $iter || nil, self = this, w = nil; + $def(self, '$item', function $$item(label) { + var blk = $$item.$$p || nil, self = this, w = nil; - if ($iter) $Job_item$11.$$p = null; - + delete $$item.$$p; - if ($iter) $Job_item$11.$$p = null;; + ; - if (label == null) { - label = ""; - }; - if ((blk !== nil)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "no block") + if (label == null) label = "";; + if (!(blk !== nil)) { + self.$raise($$('ArgumentError'), "no block") }; label = label.$to_s(); w = label.$length(); if ($truthy($rb_lt(self.width, w))) { - self.width = w}; + self.width = w + }; self.list['$<<']([label, blk]); return self; - }, $Job_item$11.$$arity = -1); + }, -1); $alias(self, "report", "item"); self.$attr_reader("list"); return self.$attr_reader("width"); @@ -279,62 +197,52 @@ Opal.modules["benchmark"] = function(Opal) { (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Report'); - var $nesting = [self].concat($parent_nesting), $Report_initialize$12, $Report_item$13; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.width = self.$$prototype.list = self.$$prototype.format = nil; + $proto.width = $proto.list = $proto.format = nil; - Opal.def(self, '$initialize', $Report_initialize$12 = function $$initialize(width, format) { + $def(self, '$initialize', function $$initialize(width, format) { var $a, self = this; - if (width == null) { - width = 0; - }; + if (width == null) width = 0;; - if (format == null) { - format = nil; - }; + if (format == null) format = nil;; return $a = [width, format, []], (self.width = $a[0]), (self.format = $a[1]), (self.list = $a[2]), $a; - }, $Report_initialize$12.$$arity = -1); + }, -1); - Opal.def(self, '$item', $Report_item$13 = function $$item($a, $b) { - var $iter = $Report_item$13.$$p, blk = $iter || nil, $post_args, label, format, self = this, res = nil; + $def(self, '$item', function $$item($a, $b) { + var blk = $$item.$$p || nil, $post_args, label, format, self = this, res = nil; - if ($iter) $Report_item$13.$$p = null; + delete $$item.$$p; + ; - if ($iter) $Report_item$13.$$p = null;; + $post_args = Opal.slice.call(arguments); - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - if ($post_args.length > 0) { - label = $post_args[0]; - $post_args.splice(0, 1); - } - if (label == null) { - label = ""; - }; + if ($post_args.length > 0) label = $post_args.shift(); + if (label == null) label = "";; format = $post_args;; self.$print(label.$to_s().$ljust(self.width)); - self.list['$<<']((res = $send($$($nesting, 'Benchmark'), 'measure', [label], blk.$to_proc()))); - self.$print($send(res, 'format', [self.format].concat(Opal.to_a(format)))); + self.list['$<<']((res = $send($$('Benchmark'), 'measure', [label], blk.$to_proc()))); + self.$print($send(res, 'format', [self.format].concat($to_a(format)))); return res; - }, $Report_item$13.$$arity = -1); + }, -1); $alias(self, "report", "item"); return self.$attr_reader("list"); })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Tms'); - var $nesting = [self].concat($parent_nesting), $Tms_initialize$14, $Tms_add$15, $Tms_add$excl$16, $Tms_$plus$17, $Tms_$minus$18, $Tms_$$19, $Tms_$slash$20, $Tms_format$21, $Tms_to_s$29, $Tms_to_a$30, $Tms_memberwise$31; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.utime = self.$$prototype.stime = self.$$prototype.cutime = self.$$prototype.cstime = self.$$prototype.label = self.$$prototype.real = nil; + $proto.utime = $proto.stime = $proto.cutime = $proto.cstime = $proto.label = $proto.real = nil; - Opal.const_set($nesting[0], 'CAPTION', " user system total real\n"); - Opal.const_set($nesting[0], 'FORMAT', "%10.6u %10.6y %10.6t %10.6r\n"); + $const_set($nesting[0], 'CAPTION', " user system total real\n"); + $const_set($nesting[0], 'FORMAT', "%10.6u %10.6y %10.6t %10.6r\n"); self.$attr_reader("utime"); self.$attr_reader("stime"); self.$attr_reader("cutime"); @@ -343,151 +251,136 @@ Opal.modules["benchmark"] = function(Opal) { self.$attr_reader("total"); self.$attr_reader("label"); - Opal.def(self, '$initialize', $Tms_initialize$14 = function $$initialize(utime, stime, cutime, cstime, real, label) { + $def(self, '$initialize', function $$initialize(utime, stime, cutime, cstime, real, label) { var $a, self = this; - if (utime == null) { - utime = 0.0; - }; + if (utime == null) utime = 0.0;; - if (stime == null) { - stime = 0.0; - }; + if (stime == null) stime = 0.0;; - if (cutime == null) { - cutime = 0.0; - }; + if (cutime == null) cutime = 0.0;; - if (cstime == null) { - cstime = 0.0; - }; + if (cstime == null) cstime = 0.0;; - if (real == null) { - real = 0.0; - }; + if (real == null) real = 0.0;; - if (label == null) { - label = nil; - }; + if (label == null) label = nil;; $a = [utime, stime, cutime, cstime, real, label.$to_s()], (self.utime = $a[0]), (self.stime = $a[1]), (self.cutime = $a[2]), (self.cstime = $a[3]), (self.real = $a[4]), (self.label = $a[5]), $a; return (self.total = $rb_plus($rb_plus($rb_plus(self.utime, self.stime), self.cutime), self.cstime)); - }, $Tms_initialize$14.$$arity = -1); + }, -1); - Opal.def(self, '$add', $Tms_add$15 = function $$add() { - var $iter = $Tms_add$15.$$p, blk = $iter || nil, self = this; + $def(self, '$add', function $$add() { + var blk = $$add.$$p || nil, self = this; - if ($iter) $Tms_add$15.$$p = null; - + delete $$add.$$p; - if ($iter) $Tms_add$15.$$p = null;; - return $rb_plus(self, $send($$($nesting, 'Benchmark'), 'measure', [], blk.$to_proc())); - }, $Tms_add$15.$$arity = 0); + ; + return $rb_plus(self, $send($$('Benchmark'), 'measure', [], blk.$to_proc())); + }, 0); - Opal.def(self, '$add!', $Tms_add$excl$16 = function() { - var $iter = $Tms_add$excl$16.$$p, blk = $iter || nil, self = this, t = nil; + $def(self, '$add!', function $Tms_add$excl$5() { + var blk = $Tms_add$excl$5.$$p || nil, self = this, t = nil; - if ($iter) $Tms_add$excl$16.$$p = null; - + delete $Tms_add$excl$5.$$p; - if ($iter) $Tms_add$excl$16.$$p = null;; - t = $send($$($nesting, 'Benchmark'), 'measure', [], blk.$to_proc()); + ; + t = $send($$('Benchmark'), 'measure', [], blk.$to_proc()); self.utime = $rb_plus(self.$utime(), t.$utime()); self.stime = $rb_plus(self.$stime(), t.$stime()); self.cutime = $rb_plus(self.$cutime(), t.$cutime()); self.cstime = $rb_plus(self.$cstime(), t.$cstime()); self.real = $rb_plus(self.$real(), t.$real()); return self; - }, $Tms_add$excl$16.$$arity = 0); + }, 0); - Opal.def(self, '$+', $Tms_$plus$17 = function(other) { + $def(self, '$+', function $Tms_$plus$6(other) { var self = this; return self.$memberwise("+", other) - }, $Tms_$plus$17.$$arity = 1); + }, 1); - Opal.def(self, '$-', $Tms_$minus$18 = function(other) { + $def(self, '$-', function $Tms_$minus$7(other) { var self = this; return self.$memberwise("-", other) - }, $Tms_$minus$18.$$arity = 1); + }, 1); - Opal.def(self, '$*', $Tms_$$19 = function(x) { + $def(self, '$*', function $Tms_$$8(x) { var self = this; return self.$memberwise("*", x) - }, $Tms_$$19.$$arity = 1); + }, 1); - Opal.def(self, '$/', $Tms_$slash$20 = function(x) { + $def(self, '$/', function $Tms_$slash$9(x) { var self = this; return self.$memberwise("/", x) - }, $Tms_$slash$20.$$arity = 1); + }, 1); - Opal.def(self, '$format', $Tms_format$21 = function $$format($a, $b) { - var $post_args, format, args, $$22, $$23, $$24, $$25, $$26, $$27, $$28, self = this, str = nil, $ret_or_6 = nil; + $def(self, '$format', function $$format($a, $b) { + var $post_args, format, args, self = this, str = nil, $ret_or_1 = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - format = $post_args[0]; - $post_args.splice(0, 1); - } - if (format == null) { - format = nil; - }; + if ($post_args.length > 0) format = $post_args.shift(); + if (format == null) format = nil;; args = $post_args;; - str = $send($send($send($send($send($send($send((function() {if ($truthy(($ret_or_6 = format))) { - return $ret_or_6 - } else { - return $$($nesting, 'FORMAT') - }; return nil; })().$dup(), 'gsub', [/(%[-+.\d]*)n/], ($$22 = function(){var self = $$22.$$s == null ? this : $$22.$$s, $c; + str = $send($send($send($send($send($send($send(($truthy(($ret_or_1 = format)) ? ($ret_or_1) : ($$('FORMAT'))).$dup(), 'gsub', [/(%[-+.\d]*)n/], function $$10(){var $c, self = $$10.$$s == null ? this : $$10.$$s; - return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "s")['$%'](self.$label())}, $$22.$$s = self, $$22.$$arity = 0, $$22)), 'gsub', [/(%[-+.\d]*)u/], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s, $c; + return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "s")['$%'](self.$label())}, {$$arity: 0, $$s: self}), 'gsub', [/(%[-+.\d]*)u/], function $$11(){var $c, self = $$11.$$s == null ? this : $$11.$$s; - return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$utime())}, $$23.$$s = self, $$23.$$arity = 0, $$23)), 'gsub', [/(%[-+.\d]*)y/], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s, $c; + return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$utime())}, {$$arity: 0, $$s: self}), 'gsub', [/(%[-+.\d]*)y/], function $$12(){var $c, self = $$12.$$s == null ? this : $$12.$$s; - return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$stime())}, $$24.$$s = self, $$24.$$arity = 0, $$24)), 'gsub', [/(%[-+.\d]*)U/], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s, $c; + return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$stime())}, {$$arity: 0, $$s: self}), 'gsub', [/(%[-+.\d]*)U/], function $$13(){var $c, self = $$13.$$s == null ? this : $$13.$$s; - return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$cutime())}, $$25.$$s = self, $$25.$$arity = 0, $$25)), 'gsub', [/(%[-+.\d]*)Y/], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s, $c; + return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$cutime())}, {$$arity: 0, $$s: self}), 'gsub', [/(%[-+.\d]*)Y/], function $$14(){var $c, self = $$14.$$s == null ? this : $$14.$$s; - return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$cstime())}, $$26.$$s = self, $$26.$$arity = 0, $$26)), 'gsub', [/(%[-+.\d]*)t/], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s, $c; + return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$cstime())}, {$$arity: 0, $$s: self}), 'gsub', [/(%[-+.\d]*)t/], function $$15(){var $c, self = $$15.$$s == null ? this : $$15.$$s; - return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$total())}, $$27.$$s = self, $$27.$$arity = 0, $$27)), 'gsub', [/(%[-+.\d]*)r/], ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s, $c; + return (("" + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f")['$%'](self.$total())}, {$$arity: 0, $$s: self}), 'gsub', [/(%[-+.\d]*)r/], function $$16(){var $c, self = $$16.$$s == null ? this : $$16.$$s; - return ((("" + "(") + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f)")['$%'](self.$real())}, $$28.$$s = self, $$28.$$arity = 0, $$28)); + return ((("(") + ((($c = $gvars['~']) === nil ? nil : $c['$[]'](1)))) + "f)")['$%'](self.$real())}, {$$arity: 0, $$s: self}); if ($truthy(format)) { return str['$%'](args) } else { return str }; - }, $Tms_format$21.$$arity = -1); + }, -1); - Opal.def(self, '$to_s', $Tms_to_s$29 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return self.$format() - }, $Tms_to_s$29.$$arity = 0); + }, 0); - Opal.def(self, '$to_a', $Tms_to_a$30 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; return [self.label, self.utime, self.stime, self.cutime, self.cstime, self.real] - }, $Tms_to_a$30.$$arity = 0); + }, 0); + + $def(self, '$to_h', function $$to_h() { + var self = this; + + return $hash2(["label", "utime", "stime", "cutime", "cstime", "real"], {"label": self.label, "utime": self.utime, "stime": self.stime, "cutime": self.cutime, "cstime": self.cstime, "real": self.real}) + }, 0); self.$protected(); - return (Opal.def(self, '$memberwise', $Tms_memberwise$31 = function $$memberwise(op, x) { - var self = this, $case = nil; + return $def(self, '$memberwise', function $$memberwise(op, x) { + var self = this, $ret_or_1 = nil; - return (function() {$case = x; - if ($$$($$($nesting, 'Benchmark'), 'Tms')['$===']($case)) {return $$$($$($nesting, 'Benchmark'), 'Tms').$new(self.$utime().$__send__(op, x.$utime()), self.$stime().$__send__(op, x.$stime()), self.$cutime().$__send__(op, x.$cutime()), self.$cstime().$__send__(op, x.$cstime()), self.$real().$__send__(op, x.$real()))} - else {return $$$($$($nesting, 'Benchmark'), 'Tms').$new(self.$utime().$__send__(op, x), self.$stime().$__send__(op, x), self.$cutime().$__send__(op, x), self.$cstime().$__send__(op, x), self.$real().$__send__(op, x))}})() - }, $Tms_memberwise$31.$$arity = 2), nil) && 'memberwise'; + if ($eqeqeq($$$($$('Benchmark'), 'Tms'), ($ret_or_1 = x))) { + return $$$($$('Benchmark'), 'Tms').$new(self.$utime().$__send__(op, x.$utime()), self.$stime().$__send__(op, x.$stime()), self.$cutime().$__send__(op, x.$cutime()), self.$cstime().$__send__(op, x.$cstime()), self.$real().$__send__(op, x.$real())) + } else { + return $$$($$('Benchmark'), 'Tms').$new(self.$utime().$__send__(op, x), self.$stime().$__send__(op, x), self.$cutime().$__send__(op, x), self.$cstime().$__send__(op, x), self.$real().$__send__(op, x)) + } + }, 2); })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'CAPTION', $$$($$$($$($nesting, 'Benchmark'), 'Tms'), 'CAPTION')); - return Opal.const_set($nesting[0], 'FORMAT', $$$($$$($$($nesting, 'Benchmark'), 'Tms'), 'FORMAT')); + $const_set($nesting[0], 'CAPTION', $$$($$$($$('Benchmark'), 'Tms'), 'CAPTION')); + return $const_set($nesting[0], 'FORMAT', $$$($$$($$('Benchmark'), 'Tms'), 'FORMAT')); })($nesting[0], $nesting) }; diff --git a/opal/master/benchmark.min.js b/opal/master/benchmark.min.js index 63a91cd2..b6571985 100644 --- a/opal/master/benchmark.min.js +++ b/opal/master/benchmark.min.js @@ -1 +1 @@ -Opal.modules.benchmark=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_times(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$send=Opal.send,$truthy=Opal.truthy,$klass=Opal.klass,$alias=Opal.alias,$gvars=Opal.gvars;return Opal.add_stubs(["$sync","$sync=","$-","$+","$empty?","$print","$*","$new","$===","$each","$grep","$ljust","$shift","$label","$format","$list","$nil?","$benchmark","$to_proc","$width","$puts","$length","$inject","$measure","$rjust","$map","$start","$tap","$times","$clock_gettime","$utime","$stime","$cutime","$cstime","$module_function","$raise","$to_s","$<","$<<","$attr_reader","$real","$memberwise","$gsub","$dup","$%","$total","$protected","$__send__"]),function(self,$b){var $Benchmark_benchmark$1,$Benchmark_bm$3,$Benchmark_bmbm$4,$Benchmark_measure$8,$Benchmark_realtime$9,self=$module(self,"Benchmark"),$nesting=[self].concat($b);return Opal.const_set($nesting[0],"BENCHMARK_VERSION","2002-04-25"),Opal.def(self,"$benchmark",$Benchmark_benchmark$1=function($a,$b,$c,$d){var caption,label_width,format,labels,$$2,$post_args=$Benchmark_benchmark$1.$$p,$yield=$post_args||nil,self=this,sync=nil,$writer=nil,$ret_or_1=nil,$ret_or_2=nil,report=nil,results=nil;return $post_args&&($Benchmark_benchmark$1.$$p=null),0<($post_args=Opal.slice.call(arguments,0,arguments.length)).length&&(caption=$post_args[0],$post_args.splice(0,1)),null==caption&&(caption=""),0<$post_args.length&&(label_width=$post_args[0],$post_args.splice(0,1)),null==label_width&&(label_width=nil),0<$post_args.length&&(format=$post_args[0],$post_args.splice(0,1)),null==format&&(format=nil),labels=$post_args,function(){try{return sync=$$($nesting,"STDOUT").$sync(),$writer=[!0],$send($$($nesting,"STDOUT"),"sync=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],label_width=$rb_plus(label_width=$truthy($ret_or_1=label_width)?$ret_or_1:0,1),format=$truthy($ret_or_2=format)?$ret_or_2:$$($nesting,"FORMAT"),$truthy(caption["$empty?"]())||self.$print($rb_plus($rb_times(" ",label_width),caption)),report=$$($nesting,"Report").$new(label_width,format),results=Opal.yield1($yield,report),$truthy($$($nesting,"Array")["$==="](results))&&$send(results.$grep($$($nesting,"Tms")),"each",[],(($$2=function(t){var self=null==$$2.$$s?this:$$2.$$s,$ret_or_4=nil,$ret_or_5=nil;return null==t&&(t=nil),self.$print(($truthy($ret_or_4=$truthy($ret_or_5=labels.$shift())?$ret_or_5:t.$label())?$ret_or_4:"").$ljust(label_width),t.$format(format))}).$$s=self,$$2.$$arity=1,$$2)),report.$list()}finally{$truthy(sync["$nil?"]())||($writer=[sync],$send($$($nesting,"STDOUT"),"sync=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])}}()},$Benchmark_benchmark$1.$$arity=-1),Opal.def(self,"$bm",$Benchmark_bm$3=function($a,$b){var label_width,labels=$Benchmark_bm$3.$$p,blk=labels||nil;return labels&&($Benchmark_bm$3.$$p=null),labels&&($Benchmark_bm$3.$$p=null),0<(labels=Opal.slice.call(arguments,0,arguments.length)).length&&(label_width=labels[0],labels.splice(0,1)),null==label_width&&(label_width=0),labels=labels,$send(this,"benchmark",[$$($nesting,"CAPTION"),label_width,$$($nesting,"FORMAT")].concat(Opal.to_a(labels)),blk.$to_proc())},$Benchmark_bm$3.$$arity=-1),Opal.def(self,"$bmbm",$Benchmark_bmbm$4=function(width){var $$5,$$6,ets,$iter=$Benchmark_bmbm$4.$$p,$yield=$iter||nil,self=this,job=nil,sync=nil,$writer=nil;return $iter&&($Benchmark_bmbm$4.$$p=null),null==width&&(width=0),function(){try{return job=$$($nesting,"Job").$new(width),Opal.yield1($yield,job),width=$rb_plus(job.$width(),1),sync=$$($nesting,"STDOUT").$sync(),$writer=[!0],$send($$($nesting,"STDOUT"),"sync=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.$puts("Rehearsal ".$ljust($rb_plus(width,$$($nesting,"CAPTION").$length()),"-")),ets=$send(job.$list(),"inject",[$$($nesting,"Tms").$new()],(($$5=function(sum,$a){var self=null==$$5.$$s?this:$$5.$$s,label=nil,item=nil,res=nil;return null==sum&&(sum=nil),null==$a&&($a=nil),$a=$a,label=null==($a=Opal.to_ary($a))[0]?nil:$a[0],item=null==$a[1]?nil:$a[1],self.$print(label.$ljust(width)),res=$send($$($nesting,"Benchmark"),"measure",[],item.$to_proc()),self.$print(res.$format()),$rb_plus(sum,res)}).$$s=self,$$5.$$arity=2,$$5.$$has_top_level_mlhs_arg=!0,$$5)).$format("total: %tsec"),self.$print((" "+ets+"\n\n").$rjust($rb_plus($rb_plus(width,$$($nesting,"CAPTION").$length()),2),"-")),self.$print($rb_plus($rb_times(" ",width),$$($nesting,"CAPTION"))),$send(job.$list(),"map",[],(($$6=function(label,item){var $$7,self=null==$$6.$$s?this:$$6.$$s;return null==label&&(label=nil),null==item&&(item=nil),$$($nesting,"GC").$start(),self.$print(label.$ljust(width)),$send($send($$($nesting,"Benchmark"),"measure",[label],item.$to_proc()),"tap",[],(($$7=function(res){var self=null==$$7.$$s?this:$$7.$$s;return null==res&&(res=nil),self.$print(res)}).$$s=self,$$7.$$arity=1,$$7))}).$$s=self,$$6.$$arity=2,$$6))}finally{$truthy(sync["$nil?"]())||($writer=[sync],$send($$($nesting,"STDOUT"),"sync=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])}}()},$Benchmark_bmbm$4.$$arity=-1),$truthy(($b=$$($nesting,"Process","skip_raise"))&&$$$($b,"CLOCK_MONOTONIC","skip_raise")?"constant":nil)?Opal.const_set($nesting[0],"BENCHMARK_CLOCK",$$$($$($nesting,"Process"),"CLOCK_MONOTONIC")):Opal.const_set($nesting[0],"BENCHMARK_CLOCK",$$$($$($nesting,"Process"),"CLOCK_REALTIME")),Opal.def(self,"$measure",$Benchmark_measure$8=function(label){var r0,r1,$a=$Benchmark_measure$8.$$p,$yield=$a||nil,t0=nil,t1=nil;return $a&&($Benchmark_measure$8.$$p=null),null==label&&(label=""),t0=($a=[$$($nesting,"Process").$times(),$$($nesting,"Process").$clock_gettime($$($nesting,"BENCHMARK_CLOCK"))])[0],r0=$a[1],Opal.yieldX($yield,[]),t1=($a=[$$($nesting,"Process").$times(),$$($nesting,"Process").$clock_gettime($$($nesting,"BENCHMARK_CLOCK"))])[0],r1=$a[1],$$$($$($nesting,"Benchmark"),"Tms").$new($rb_minus(t1.$utime(),t0.$utime()),$rb_minus(t1.$stime(),t0.$stime()),$rb_minus(t1.$cutime(),t0.$cutime()),$rb_minus(t1.$cstime(),t0.$cstime()),$rb_minus(r1,r0),label)},$Benchmark_measure$8.$$arity=-1),Opal.def(self,"$realtime",$Benchmark_realtime$9=function(){var r0,$iter=$Benchmark_realtime$9.$$p,$yield=$iter||nil;return $iter&&($Benchmark_realtime$9.$$p=null),r0=$$($nesting,"Process").$clock_gettime($$($nesting,"BENCHMARK_CLOCK")),Opal.yieldX($yield,[]),$rb_minus($$($nesting,"Process").$clock_gettime($$($nesting,"BENCHMARK_CLOCK")),r0)},$Benchmark_realtime$9.$$arity=0),self.$module_function("benchmark","measure","realtime","bm","bmbm"),function(self,$Job_initialize$10){var $Job_item$11,$nesting=[self=$klass(self,null,"Job")].concat($Job_initialize$10);self.$$prototype.width=self.$$prototype.list=nil,Opal.def(self,"$initialize",$Job_initialize$10=function(width){return this.width=width,this.list=[]},$Job_initialize$10.$$arity=1),Opal.def(self,"$item",$Job_item$11=function(label){var w,lhs,rhs=$Job_item$11.$$p,blk=rhs||nil;return rhs&&($Job_item$11.$$p=null),rhs&&($Job_item$11.$$p=null),null==label&&(label=""),blk!==nil||this.$raise($$($nesting,"ArgumentError"),"no block"),w=(label=label.$to_s()).$length(),$truthy((lhs=this.width,rhs=w,"number"==typeof lhs&&"number"==typeof rhs?lhs0&&(caption=$post_args.shift()),null==caption&&(caption=""),$post_args.length>0&&(label_width=$post_args.shift()),null==label_width&&(label_width=nil),$post_args.length>0&&(format=$post_args.shift()),null==format&&(format=nil),labels=$post_args,function(){try{return sync=$$("STDOUT").$sync(),$writer=[!0],$send($$("STDOUT"),"sync=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],label_width=$truthy($ret_or_1=label_width)?$ret_or_1:0,label_width=$rb_plus(label_width,1),format=$truthy($ret_or_1=format)?$ret_or_1:$$("FORMAT"),$truthy(caption["$empty?"]())||self.$print($rb_plus($rb_times(" ",label_width),caption)),report=$$("Report").$new(label_width,format),results=Opal.yield1($yield,report),$truthy($ret_or_1=$$("Array")["$==="](results))&&$send(results.$grep($$("Tms")),"each",[],(function $$1(t){var $ret_or_2,$ret_or_3;return null==t&&(t=nil),(null==$$1.$$s?this:$$1.$$s).$print(($truthy($ret_or_2=$truthy($ret_or_3=labels.$shift())?$ret_or_3:t.$label())?$ret_or_2:"").$ljust(label_width),t.$format(format))}),{$$arity:1,$$s:self}),report.$list()}finally{$truthy(sync["$nil?"]())||($writer=[sync],$send($$("STDOUT"),"sync=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}}()}),-1),$def(self,"$bm",(function $$bm($a,$b){var $post_args,label_width,labels,blk=$$bm.$$p||nil,self=this;return delete $$bm.$$p,($post_args=Opal.slice.call(arguments)).length>0&&(label_width=$post_args.shift()),null==label_width&&(label_width=0),labels=$post_args,$send(self,"benchmark",[$$("CAPTION"),label_width,$$("FORMAT")].concat($to_a(labels)),blk.$to_proc())}),-1),$def(self,"$bmbm",(function $$bmbm(width){var $yield=$$bmbm.$$p||nil,self=this,job=nil,sync=nil,$writer=nil,ets=nil;return delete $$bmbm.$$p,null==width&&(width=0),function(){try{return job=$$("Job").$new(width),Opal.yield1($yield,job),width=$rb_plus(job.$width(),1),sync=$$("STDOUT").$sync(),$writer=[!0],$send($$("STDOUT"),"sync=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.$puts("Rehearsal ".$ljust($rb_plus(width,$$("CAPTION").$length()),"-")),ets=$send(job.$list(),"inject",[$$("Tms").$new()],(function $$2(sum,$mlhs_tmp1){var $a,self=null==$$2.$$s?this:$$2.$$s,label=nil,item=nil,res=nil;return null==sum&&(sum=nil),null==$mlhs_tmp1&&($mlhs_tmp1=nil),label=null==($a=$to_ary($mlhs_tmp1))[0]?nil:$a[0],item=null==$a[1]?nil:$a[1],self.$print(label.$ljust(width)),res=$send($$("Benchmark"),"measure",[],item.$to_proc()),self.$print(res.$format()),$rb_plus(sum,res)}),{$$arity:2,$$s:self,$$has_top_level_mlhs_arg:!0}).$format("total: %tsec"),self.$print((" "+ets+"\n\n").$rjust($rb_plus($rb_plus(width,$$("CAPTION").$length()),2),"-")),self.$print($rb_plus($rb_times(" ",width),$$("CAPTION"))),$send(job.$list(),"map",[],(function $$3(label,item){var self=null==$$3.$$s?this:$$3.$$s;return null==label&&(label=nil),null==item&&(item=nil),$$("GC").$start(),self.$print(label.$ljust(width)),$send($send($$("Benchmark"),"measure",[label],item.$to_proc()),"tap",[],(function $$4(res){return null==res&&(res=nil),(null==$$4.$$s?this:$$4.$$s).$print(res)}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:self})}finally{$truthy(sync["$nil?"]())||($writer=[sync],$send($$("STDOUT"),"sync=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}}()}),-1),$truthy(($b=$$("Process","skip_raise"))&&$$$($b,"CLOCK_MONOTONIC","skip_raise")?"constant":nil)?$const_set($nesting[0],"BENCHMARK_CLOCK",$$$($$("Process"),"CLOCK_MONOTONIC")):$const_set($nesting[0],"BENCHMARK_CLOCK",$$$($$("Process"),"CLOCK_REALTIME")),$def(self,"$measure",(function $$measure(label){var $a,r0,r1,$yield=$$measure.$$p||nil,t0=nil,t1=nil;return delete $$measure.$$p,null==label&&(label=""),t0=($a=[$$("Process").$times(),$$("Process").$clock_gettime($$("BENCHMARK_CLOCK"))])[0],r0=$a[1],Opal.yieldX($yield,[]),t1=($a=[$$("Process").$times(),$$("Process").$clock_gettime($$("BENCHMARK_CLOCK"))])[0],r1=$a[1],$$$($$("Benchmark"),"Tms").$new($rb_minus(t1.$utime(),t0.$utime()),$rb_minus(t1.$stime(),t0.$stime()),$rb_minus(t1.$cutime(),t0.$cutime()),$rb_minus(t1.$cstime(),t0.$cstime()),$rb_minus(r1,r0),label)}),-1),$def(self,"$realtime",(function $$realtime(){var r0,$yield=$$realtime.$$p||nil;return delete $$realtime.$$p,r0=$$("Process").$clock_gettime($$("BENCHMARK_CLOCK")),Opal.yieldX($yield,[]),$rb_minus($$("Process").$clock_gettime($$("BENCHMARK_CLOCK")),r0)}),0),self.$module_function("benchmark","measure","realtime","bm","bmbm"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Job"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.width=$proto.list=nil,$def(self,"$initialize",(function(width){return this.width=width,this.list=[]}),1),$def(self,"$item",(function $$item(label){var w,blk=$$item.$$p||nil;return delete $$item.$$p,null==label&&(label=""),blk===nil&&this.$raise($$("ArgumentError"),"no block"),w=(label=label.$to_s()).$length(),$truthy($rb_lt(this.width,w))&&(this.width=w),this.list["$<<"]([label,blk]),this}),-1),$alias(self,"report","item"),self.$attr_reader("list"),self.$attr_reader("width")}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Report"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.width=$proto.list=$proto.format=nil,$def(self,"$initialize",(function(width,format){var $a;return null==width&&(width=0),null==format&&(format=nil),$a=[width,format,[]],this.width=$a[0],this.format=$a[1],this.list=$a[2],$a}),-1),$def(self,"$item",(function $$item($a,$b){var $post_args,label,format,blk=$$item.$$p||nil,self=this,res=nil;return delete $$item.$$p,($post_args=Opal.slice.call(arguments)).length>0&&(label=$post_args.shift()),null==label&&(label=""),format=$post_args,self.$print(label.$to_s().$ljust(self.width)),self.list["$<<"](res=$send($$("Benchmark"),"measure",[label],blk.$to_proc())),self.$print($send(res,"format",[self.format].concat($to_a(format)))),res}),-1),$alias(self,"report","item"),self.$attr_reader("list")}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Tms"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.utime=$proto.stime=$proto.cutime=$proto.cstime=$proto.label=$proto.real=nil,$const_set($nesting[0],"CAPTION"," user system total real\n"),$const_set($nesting[0],"FORMAT","%10.6u %10.6y %10.6t %10.6r\n"),self.$attr_reader("utime"),self.$attr_reader("stime"),self.$attr_reader("cutime"),self.$attr_reader("cstime"),self.$attr_reader("real"),self.$attr_reader("total"),self.$attr_reader("label"),$def(self,"$initialize",(function(utime,stime,cutime,cstime,real,label){var $a;return null==utime&&(utime=0),null==stime&&(stime=0),null==cutime&&(cutime=0),null==cstime&&(cstime=0),null==real&&(real=0),null==label&&(label=nil),$a=[utime,stime,cutime,cstime,real,label.$to_s()],this.utime=$a[0],this.stime=$a[1],this.cutime=$a[2],this.cstime=$a[3],this.real=$a[4],this.label=$a[5],this.total=$rb_plus($rb_plus($rb_plus(this.utime,this.stime),this.cutime),this.cstime)}),-1),$def(self,"$add",(function $$add(){var blk=$$add.$$p||nil;return delete $$add.$$p,$rb_plus(this,$send($$("Benchmark"),"measure",[],blk.$to_proc()))}),0),$def(self,"$add!",(function $Tms_add$excl$5(){var blk=$Tms_add$excl$5.$$p||nil,t=nil;return delete $Tms_add$excl$5.$$p,t=$send($$("Benchmark"),"measure",[],blk.$to_proc()),this.utime=$rb_plus(this.$utime(),t.$utime()),this.stime=$rb_plus(this.$stime(),t.$stime()),this.cutime=$rb_plus(this.$cutime(),t.$cutime()),this.cstime=$rb_plus(this.$cstime(),t.$cstime()),this.real=$rb_plus(this.$real(),t.$real()),this}),0),$def(self,"$+",(function(other){return this.$memberwise("+",other)}),1),$def(self,"$-",(function(other){return this.$memberwise("-",other)}),1),$def(self,"$*",(function(x){return this.$memberwise("*",x)}),1),$def(self,"$/",(function(x){return this.$memberwise("/",x)}),1),$def(self,"$format",(function($a,$b){var $post_args,format,args,self=this,str=nil,$ret_or_1=nil;return($post_args=Opal.slice.call(arguments)).length>0&&(format=$post_args.shift()),null==format&&(format=nil),args=$post_args,str=$send($send($send($send($send($send($send(($truthy($ret_or_1=format)?$ret_or_1:$$("FORMAT")).$dup(),"gsub",[/(%[-+.\d]*)n/],(function $$10(){var $c,self=null==$$10.$$s?this:$$10.$$s;return((($c=$gvars["~"])===nil?nil:$c["$[]"](1))+"s")["$%"](self.$label())}),{$$arity:0,$$s:self}),"gsub",[/(%[-+.\d]*)u/],(function $$11(){var $c,self=null==$$11.$$s?this:$$11.$$s;return((($c=$gvars["~"])===nil?nil:$c["$[]"](1))+"f")["$%"](self.$utime())}),{$$arity:0,$$s:self}),"gsub",[/(%[-+.\d]*)y/],(function $$12(){var $c,self=null==$$12.$$s?this:$$12.$$s;return((($c=$gvars["~"])===nil?nil:$c["$[]"](1))+"f")["$%"](self.$stime())}),{$$arity:0,$$s:self}),"gsub",[/(%[-+.\d]*)U/],(function $$13(){var $c,self=null==$$13.$$s?this:$$13.$$s;return((($c=$gvars["~"])===nil?nil:$c["$[]"](1))+"f")["$%"](self.$cutime())}),{$$arity:0,$$s:self}),"gsub",[/(%[-+.\d]*)Y/],(function $$14(){var $c,self=null==$$14.$$s?this:$$14.$$s;return((($c=$gvars["~"])===nil?nil:$c["$[]"](1))+"f")["$%"](self.$cstime())}),{$$arity:0,$$s:self}),"gsub",[/(%[-+.\d]*)t/],(function $$15(){var $c,self=null==$$15.$$s?this:$$15.$$s;return((($c=$gvars["~"])===nil?nil:$c["$[]"](1))+"f")["$%"](self.$total())}),{$$arity:0,$$s:self}),"gsub",[/(%[-+.\d]*)r/],(function $$16(){var $c,self=null==$$16.$$s?this:$$16.$$s;return("("+(($c=$gvars["~"])===nil?nil:$c["$[]"](1))+"f)")["$%"](self.$real())}),{$$arity:0,$$s:self}),$truthy(format)?str["$%"](args):str}),-1),$def(self,"$to_s",(function(){return this.$format()}),0),$def(self,"$to_a",(function(){return[this.label,this.utime,this.stime,this.cutime,this.cstime,this.real]}),0),$def(self,"$to_h",(function(){return $hash2(["label","utime","stime","cutime","cstime","real"],{label:this.label,utime:this.utime,stime:this.stime,cutime:this.cutime,cstime:this.cstime,real:this.real})}),0),self.$protected(),$def(self,"$memberwise",(function(op,x){return $eqeqeq($$$($$("Benchmark"),"Tms"),x)?$$$($$("Benchmark"),"Tms").$new(this.$utime().$__send__(op,x.$utime()),this.$stime().$__send__(op,x.$stime()),this.$cutime().$__send__(op,x.$cutime()),this.$cstime().$__send__(op,x.$cstime()),this.$real().$__send__(op,x.$real())):$$$($$("Benchmark"),"Tms").$new(this.$utime().$__send__(op,x),this.$stime().$__send__(op,x),this.$cutime().$__send__(op,x),this.$cstime().$__send__(op,x),this.$real().$__send__(op,x))}),2)}($nesting[0],0,$nesting),$const_set($nesting[0],"CAPTION",$$$($$$($$("Benchmark"),"Tms"),"CAPTION")),$const_set($nesting[0],"FORMAT",$$$($$$($$("Benchmark"),"Tms"),"FORMAT"))}($nesting[0],$nesting)}; diff --git a/opal/master/benchmark.min.js.gz b/opal/master/benchmark.min.js.gz index 3700246d..b8b87dc0 100644 Binary files a/opal/master/benchmark.min.js.gz and b/opal/master/benchmark.min.js.gz differ diff --git a/opal/master/bigdecimal.js b/opal/master/bigdecimal.js index aa6f0c57..f983d487 100644 --- a/opal/master/bigdecimal.js +++ b/opal/master/bigdecimal.js @@ -1,125 +1,114 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["js"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $alias = Opal.alias; +Opal.modules["js"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $def = Opal.def, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$insert', '$<<', '$global', '$extend']); - return (function($base, $parent_nesting) { + Opal.add_stubs('insert,<<,global,extend'); + return (function($base) { var self = $module($base, 'JS'); - var $nesting = [self].concat($parent_nesting), $JS_delete$1, $JS_global$2, $JS_in$3, $JS_instanceof$4, $JS_new$5, $JS_new$6, $JS_typeof$7, $JS_void$8, $JS_call$9, $JS_$$$10; - - Opal.def(self, '$delete', $JS_delete$1 = function(object, property) { - var self = this; - + + $def(self, '$delete', function $JS_delete$1(object, property) { + return delete object[property] - }, $JS_delete$1.$$arity = 2); + }, 2); - Opal.def(self, '$global', $JS_global$2 = function $$global() { - var self = this; - + $def(self, '$global', function $$global() { + return Opal.global; - }, $JS_global$2.$$arity = 0); + }, 0); - Opal.def(self, '$in', $JS_in$3 = function(property, object) { - var self = this; - + $def(self, '$in', function $JS_in$2(property, object) { + return property in object - }, $JS_in$3.$$arity = 2); + }, 2); - Opal.def(self, '$instanceof', $JS_instanceof$4 = function(value, func) { - var self = this; - + $def(self, '$instanceof', function $JS_instanceof$3(value, func) { + return value instanceof func - }, $JS_instanceof$4.$$arity = 2); + }, 2); if ($truthy(typeof Function.prototype.bind == 'function')) { - Opal.def(self, '$new', $JS_new$5 = function(func, $a) { - var $iter = $JS_new$5.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$new', function $JS_new$4(func, $a) { + var block = $JS_new$4.$$p || nil, $post_args, args; - if ($iter) $JS_new$5.$$p = null; - + delete $JS_new$4.$$p; - if ($iter) $JS_new$5.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; args.$insert(0, this); if ($truthy(block)) { - args['$<<'](block)}; + args['$<<'](block) + }; return new (func.bind.apply(func, args))(); - }, $JS_new$5.$$arity = -2) + }, -2) } else { - Opal.def(self, '$new', $JS_new$6 = function(func, $a) { - var $iter = $JS_new$6.$$p, block = $iter || nil, $post_args, args, self = this, f = nil; + $def(self, '$new', function $JS_new$5(func, $a) { + var block = $JS_new$5.$$p || nil, $post_args, args, f = nil; - if ($iter) $JS_new$6.$$p = null; - + delete $JS_new$5.$$p; - if ($iter) $JS_new$6.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy(block)) { - args['$<<'](block)}; + args['$<<'](block) + }; f = function(){return func.apply(this, args)}; f["prototype"] = func["prototype"]; return new f();; - }, $JS_new$6.$$arity = -2) + }, -2) }; - Opal.def(self, '$typeof', $JS_typeof$7 = function(value) { - var self = this; - + $def(self, '$typeof', function $JS_typeof$6(value) { + return typeof value - }, $JS_typeof$7.$$arity = 1); + }, 1); - Opal.def(self, '$void', $JS_void$8 = function(expr) { - var self = this; - + $def(self, '$void', function $JS_void$7(expr) { + return void expr - }, $JS_void$8.$$arity = 1); + }, 1); - Opal.def(self, '$call', $JS_call$9 = function $$call(func, $a) { - var $iter = $JS_call$9.$$p, block = $iter || nil, $post_args, args, self = this, g = nil; + $def(self, '$call', function $$call(func, $a) { + var block = $$call.$$p || nil, $post_args, args, self = this, g = nil; - if ($iter) $JS_call$9.$$p = null; + delete $$call.$$p; + ; - if ($iter) $JS_call$9.$$p = null;; - - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; g = self.$global(); if ($truthy(block)) { - args['$<<'](block)}; + args['$<<'](block) + }; return g[func].apply(g, args); - }, $JS_call$9.$$arity = -2); - $alias(self, "method_missing", "call"); + }, -2); - Opal.def(self, '$[]', $JS_$$$10 = function(name) { - var self = this; - + $def(self, '$[]', function $JS_$$$8(name) { + return Opal.global[name] - }, $JS_$$$10.$$arity = 1); + }, 1); + $alias(self, "method_missing", "call"); return self.$extend(self); - })($nesting[0], $nesting) + })($nesting[0]) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["bigdecimal/bignumber"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; +Opal.modules["bigdecimal/bignumber"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $klass = Opal.klass; - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'BigDecimal'); - var $nesting = [self].concat($parent_nesting); - + var define = function (f) { Opal.const_set(self, 'BigNumber', f()); }; define.amd = true; @@ -131,60 +120,39 @@ Opal.modules["bigdecimal/bignumber"] = function(Opal) { /* eslint-enable */ - })($nesting[0], $$($nesting, 'Numeric'), $nesting) + })($nesting[0], $$('Numeric')) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["bigdecimal"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - var $new$2, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send, $hash = Opal.hash, $truthy = Opal.truthy, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super; - - Opal.add_stubs(['$require', '$allocate', '$initialize', '$warn', '$BigDecimal', '$===', '$attr_reader', '$new', '$class', '$bignumber', '$nan?', '$nil?', '$raise', '$<', '$coerce', '$>', '$mode', '$>=', '$==', '$/', '$zero?', '$infinite?', '$finite?']); - - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'BigDecimal'); - - var $nesting = [self].concat($parent_nesting); +Opal.modules["bigdecimal"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $klass = Opal.klass, $module = Opal.module, $def = Opal.def, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $hash = Opal.hash, $defs = Opal.defs, $const_set = Opal.const_set, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $send2 = Opal.send2, $find_super = Opal.find_super, $rb_lt = Opal.rb_lt, $to_ary = Opal.to_ary, $rb_gt = Opal.rb_gt, $rb_ge = Opal.rb_ge, $eqeq = Opal.eqeq, $rb_divide = Opal.rb_divide, $alias = Opal.alias; - return nil - })($nesting[0], $$($nesting, 'Numeric'), $nesting); + Opal.add_stubs('require,allocate,initialize,warn,BigDecimal,===,attr_reader,new,class,bignumber,nan?,nil?,raise,<,coerce,>,mode,>=,==,/,zero?,infinite?,finite?'); + + $klass($nesting[0], $$('Numeric'), 'BigDecimal'); self.$require("js"); self.$require("bigdecimal/bignumber"); (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_BigDecimal$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$BigDecimal', $Kernel_BigDecimal$1 = function $$BigDecimal(initial, digits) { - var self = this, bigdecimal = nil; + return $def(self, '$BigDecimal', function $$BigDecimal(initial, digits) { + var bigdecimal = nil; - if (digits == null) { - digits = 0; - }; - bigdecimal = $$($nesting, 'BigDecimal').$allocate(); + if (digits == null) digits = 0;; + bigdecimal = $$('BigDecimal').$allocate(); bigdecimal.$initialize(initial, digits); return bigdecimal; - }, $Kernel_BigDecimal$1.$$arity = -2), nil) && 'BigDecimal' + }, -2) })($nesting[0], $nesting); - Opal.defs($$($nesting, 'BigDecimal'), '$new', $new$2 = function($a, $b) { + $defs($$('BigDecimal'), '$new', function $new$1($a, $b) { var $post_args, $kwargs, args, kwargs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); $kwargs = Opal.extract_kwargs($post_args); @@ -198,367 +166,321 @@ Opal.modules["bigdecimal"] = function(Opal) { kwargs = Opal.kwrestargs($kwargs, {});; self.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.", $hash2(["uplevel"], {"uplevel": 1})); - return $send(self, 'BigDecimal', Opal.to_a(args).concat([Opal.to_hash(kwargs)])); - }, $new$2.$$arity = -1); + return $send(self, 'BigDecimal', $to_a(args).concat([Opal.to_hash(kwargs)])); + }, -1); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'BigDecimal'); - var $nesting = [self].concat($parent_nesting), $BigDecimal_limit$3, $BigDecimal_mode$4, $BigDecimal_initialize$5, $BigDecimal_$eq_eq$6, $BigDecimal_$lt_eq_gt$7, $BigDecimal_$lt$8, $BigDecimal_$lt_eq$9, $BigDecimal_$gt$10, $BigDecimal_$gt_eq$11, $BigDecimal_abs$12, $BigDecimal_add$13, $BigDecimal_ceil$14, $BigDecimal_coerce$15, $BigDecimal_div$16, $BigDecimal_finite$ques$17, $BigDecimal_infinite$ques$18, $BigDecimal_minus$19, $BigDecimal_mult$20, $BigDecimal_nan$ques$21, $BigDecimal_quo$22, $BigDecimal_sign$23, $BigDecimal_sub$24, $BigDecimal_to_f$25, $BigDecimal_to_s$26, $BigDecimal_zero$ques$27; - - - Opal.const_set($nesting[0], 'ROUND_MODE', 256); - Opal.const_set($nesting[0], 'ROUND_UP', 0); - Opal.const_set($nesting[0], 'ROUND_DOWN', 1); - Opal.const_set($nesting[0], 'ROUND_CEILING', 2); - Opal.const_set($nesting[0], 'ROUND_FLOOR', 3); - Opal.const_set($nesting[0], 'ROUND_HALF_UP', 4); - Opal.const_set($nesting[0], 'ROUND_HALF_DOWN', 5); - Opal.const_set($nesting[0], 'ROUND_HALF_EVEN', 6); - Opal.const_set($nesting[0], 'SIGN_NaN', 0); - Opal.const_set($nesting[0], 'SIGN_POSITIVE_ZERO', 1); - Opal.const_set($nesting[0], 'SIGN_NEGATIVE_ZERO', -1); - Opal.const_set($nesting[0], 'SIGN_POSITIVE_FINITE', 2); - Opal.const_set($nesting[0], 'SIGN_NEGATIVE_FINITE', -2); - Opal.const_set($nesting[0], 'SIGN_POSITIVE_INFINITE', 3); - Opal.const_set($nesting[0], 'SIGN_NEGATIVE_INFINITE', -3); - Opal.defs(self, '$limit', $BigDecimal_limit$3 = function $$limit(digits) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $const_set($nesting[0], 'ROUND_MODE', 256); + $const_set($nesting[0], 'ROUND_UP', 0); + $const_set($nesting[0], 'ROUND_DOWN', 1); + $const_set($nesting[0], 'ROUND_CEILING', 2); + $const_set($nesting[0], 'ROUND_FLOOR', 3); + $const_set($nesting[0], 'ROUND_HALF_UP', 4); + $const_set($nesting[0], 'ROUND_HALF_DOWN', 5); + $const_set($nesting[0], 'ROUND_HALF_EVEN', 6); + $const_set($nesting[0], 'SIGN_NaN', 0); + $const_set($nesting[0], 'SIGN_POSITIVE_ZERO', 1); + $const_set($nesting[0], 'SIGN_NEGATIVE_ZERO', -1); + $const_set($nesting[0], 'SIGN_POSITIVE_FINITE', 2); + $const_set($nesting[0], 'SIGN_NEGATIVE_FINITE', -2); + $const_set($nesting[0], 'SIGN_POSITIVE_INFINITE', 3); + $const_set($nesting[0], 'SIGN_NEGATIVE_INFINITE', -3); + $defs(self, '$limit', function $$limit(digits) { var self = this; if (self.digits == null) self.digits = nil; - if (digits == null) { - digits = nil; - }; + if (digits == null) digits = nil;; if ($truthy(digits)) { - self.digits = digits}; + self.digits = digits + }; return self.digits; - }, $BigDecimal_limit$3.$$arity = -1); - Opal.defs(self, '$mode', $BigDecimal_mode$4 = function $$mode(mode, value) { - var self = this, $case = nil, $ret_or_1 = nil; + }, -1); + $defs(self, '$mode', function $$mode(mode, value) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; if (self.round_mode == null) self.round_mode = nil; - if (value == null) { - value = nil; - }; - return (function() {$case = mode; - if ($$($nesting, 'ROUND_MODE')['$===']($case)) { - if ($truthy(value)) { - self.round_mode = value}; - if ($truthy(($ret_or_1 = self.round_mode))) { - return $ret_or_1 + if (value == null) value = nil;; + if ($eqeqeq($$('ROUND_MODE'), ($ret_or_1 = mode))) { + + if ($truthy(value)) { + self.round_mode = value + }; + if ($truthy(($ret_or_2 = self.round_mode))) { + return $ret_or_2 + } else { + return $$('ROUND_HALF_UP') + }; } else { - return $$($nesting, 'ROUND_HALF_UP') - };} - else { return nil }})(); - }, $BigDecimal_mode$4.$$arity = -2); + return nil + }; + }, -2); self.$attr_reader("bignumber"); - Opal.def(self, '$initialize', $BigDecimal_initialize$5 = function $$initialize(initial, digits) { + $def(self, '$initialize', function $$initialize(initial, digits) { var self = this; - if (digits == null) { - digits = 0; - }; - return (self.bignumber = $$($nesting, 'JS').$new($$($nesting, 'BigNumber'), initial)); - }, $BigDecimal_initialize$5.$$arity = -2); + if (digits == null) digits = 0;; + return (self.bignumber = $$('JS').$new($$('BigNumber'), initial)); + }, -2); - Opal.def(self, '$==', $BigDecimal_$eq_eq$6 = function(other) { - var self = this, $case = nil; + $def(self, '$==', function $BigDecimal_$eq_eq$2(other) { + var self = this, $ret_or_1 = nil; - return (function() {$case = other; - if (self.$class()['$===']($case)) {return self.$bignumber().equals(other.$bignumber())} - else if ($$($nesting, 'Number')['$===']($case)) {return self.$bignumber().equals(other)} - else {return false}})() - }, $BigDecimal_$eq_eq$6.$$arity = 1); - $alias(self, "===", "=="); + if ($eqeqeq(self.$class(), ($ret_or_1 = other))) { + return self.$bignumber().equals(other.$bignumber()) + } else if ($eqeqeq($$('Number'), $ret_or_1)) { + return self.$bignumber().equals(other) + } else { + return false + } + }, 1); - Opal.def(self, '$<=>', $BigDecimal_$lt_eq_gt$7 = function(other) { - var self = this, result = nil, $case = nil; + $def(self, '$<=>', function $BigDecimal_$lt_eq_gt$3(other) { + var self = this, result = nil, $ret_or_1 = nil; - result = (function() {$case = other; - if (self.$class()['$===']($case)) {return self.$bignumber().comparedTo(other.$bignumber())} - else if ($$($nesting, 'Number')['$===']($case)) {return self.$bignumber().comparedTo(other)} - else { return nil }})(); + result = ($eqeqeq(self.$class(), ($ret_or_1 = other)) ? (self.$bignumber().comparedTo(other.$bignumber())) : ($eqeqeq($$('Number'), $ret_or_1) ? (self.$bignumber().comparedTo(other)) : (nil))); return result === null ? nil : result; - }, $BigDecimal_$lt_eq_gt$7.$$arity = 1); + }, 1); - Opal.def(self, '$<', $BigDecimal_$lt$8 = function(other) { - var $iter = $BigDecimal_$lt$8.$$p, $yield = $iter || nil, self = this, $ret_or_2 = nil, $ret_or_3 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$<', function $BigDecimal_$lt$4(other) { + var $yield = $BigDecimal_$lt$4.$$p || nil, self = this; - if ($iter) $BigDecimal_$lt$8.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $BigDecimal_$lt$4.$$p; - if ($truthy((function() {if ($truthy(($ret_or_2 = self['$nan?']()))) { - return $ret_or_2 - } else if ($truthy(($ret_or_3 = other))) { - return other['$nan?']() - } else { - return $ret_or_3 - }; return nil; })())) { - return false}; - return $send2(self, $find_super(self, '<', $BigDecimal_$lt$8, false, true), '<', $zuper, $iter); - }, $BigDecimal_$lt$8.$$arity = 1); - - Opal.def(self, '$<=', $BigDecimal_$lt_eq$9 = function(other) { - var $iter = $BigDecimal_$lt_eq$9.$$p, $yield = $iter || nil, self = this, $ret_or_4 = nil, $ret_or_5 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $BigDecimal_$lt_eq$9.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if (($truthy(self['$nan?']()) || (($truthy(other) && ($truthy(other['$nan?']())))))) { + return false + }; + return $send2(self, $find_super(self, '<', $BigDecimal_$lt$4, false, true), '<', [other], $yield); + }, 1); + + $def(self, '$<=', function $BigDecimal_$lt_eq$5(other) { + var $yield = $BigDecimal_$lt_eq$5.$$p || nil, self = this; + + delete $BigDecimal_$lt_eq$5.$$p; - if ($truthy((function() {if ($truthy(($ret_or_4 = self['$nan?']()))) { - return $ret_or_4 - } else if ($truthy(($ret_or_5 = other))) { - return other['$nan?']() - } else { - return $ret_or_5 - }; return nil; })())) { - return false}; - return $send2(self, $find_super(self, '<=', $BigDecimal_$lt_eq$9, false, true), '<=', $zuper, $iter); - }, $BigDecimal_$lt_eq$9.$$arity = 1); - - Opal.def(self, '$>', $BigDecimal_$gt$10 = function(other) { - var $iter = $BigDecimal_$gt$10.$$p, $yield = $iter || nil, self = this, $ret_or_6 = nil, $ret_or_7 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $BigDecimal_$gt$10.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if (($truthy(self['$nan?']()) || (($truthy(other) && ($truthy(other['$nan?']())))))) { + return false + }; + return $send2(self, $find_super(self, '<=', $BigDecimal_$lt_eq$5, false, true), '<=', [other], $yield); + }, 1); + + $def(self, '$>', function $BigDecimal_$gt$6(other) { + var $yield = $BigDecimal_$gt$6.$$p || nil, self = this; + + delete $BigDecimal_$gt$6.$$p; - if ($truthy((function() {if ($truthy(($ret_or_6 = self['$nan?']()))) { - return $ret_or_6 - } else if ($truthy(($ret_or_7 = other))) { - return other['$nan?']() - } else { - return $ret_or_7 - }; return nil; })())) { - return false}; - return $send2(self, $find_super(self, '>', $BigDecimal_$gt$10, false, true), '>', $zuper, $iter); - }, $BigDecimal_$gt$10.$$arity = 1); - - Opal.def(self, '$>=', $BigDecimal_$gt_eq$11 = function(other) { - var $iter = $BigDecimal_$gt_eq$11.$$p, $yield = $iter || nil, self = this, $ret_or_8 = nil, $ret_or_9 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $BigDecimal_$gt_eq$11.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if (($truthy(self['$nan?']()) || (($truthy(other) && ($truthy(other['$nan?']())))))) { + return false + }; + return $send2(self, $find_super(self, '>', $BigDecimal_$gt$6, false, true), '>', [other], $yield); + }, 1); + + $def(self, '$>=', function $BigDecimal_$gt_eq$7(other) { + var $yield = $BigDecimal_$gt_eq$7.$$p || nil, self = this; + + delete $BigDecimal_$gt_eq$7.$$p; - if ($truthy((function() {if ($truthy(($ret_or_8 = self['$nan?']()))) { - return $ret_or_8 - } else if ($truthy(($ret_or_9 = other))) { - return other['$nan?']() - } else { - return $ret_or_9 - }; return nil; })())) { - return false}; - return $send2(self, $find_super(self, '>=', $BigDecimal_$gt_eq$11, false, true), '>=', $zuper, $iter); - }, $BigDecimal_$gt_eq$11.$$arity = 1); + if (($truthy(self['$nan?']()) || (($truthy(other) && ($truthy(other['$nan?']())))))) { + return false + }; + return $send2(self, $find_super(self, '>=', $BigDecimal_$gt_eq$7, false, true), '>=', [other], $yield); + }, 1); - Opal.def(self, '$abs', $BigDecimal_abs$12 = function $$abs() { + $def(self, '$abs', function $$abs() { var self = this; return self.$class().$new(self.$bignumber().abs()) - }, $BigDecimal_abs$12.$$arity = 0); + }, 0); - Opal.def(self, '$add', $BigDecimal_add$13 = function $$add(other, digits) { + $def(self, '$add', function $$add(other, digits) { var $a, $b, self = this, _ = nil, result = nil; - if (digits == null) { - digits = 0; - }; + if (digits == null) digits = 0;; if ($truthy(digits['$nil?']())) { - self.$raise($$($nesting, 'TypeError'), "wrong argument type nil (expected Fixnum)")}; + self.$raise($$('TypeError'), "wrong argument type nil (expected Fixnum)") + }; if ($truthy($rb_lt(digits, 0))) { - self.$raise($$($nesting, 'ArgumentError'), "argument must be positive")}; - $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; + self.$raise($$('ArgumentError'), "argument must be positive") + }; + $b = self.$coerce(other), $a = $to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; result = self.$bignumber().plus(other.$bignumber()); if ($truthy($rb_gt(digits, 0))) { - result = result.toDigits(digits, self.$class().$mode($$($nesting, 'ROUND_MODE')))}; + result = result.toDigits(digits, self.$class().$mode($$('ROUND_MODE'))) + }; return self.$class().$new(result); - }, $BigDecimal_add$13.$$arity = -2); - $alias(self, "+", "add"); + }, -2); - Opal.def(self, '$ceil', $BigDecimal_ceil$14 = function $$ceil(n) { + $def(self, '$ceil', function $$ceil(n) { var self = this; - if (n == null) { - n = nil; - }; - if ($truthy(self.$bignumber().isFinite())) { - } else { - self.$raise($$($nesting, 'FloatDomainError'), "Computation results to 'Infinity'") + if (n == null) n = nil;; + if (!$truthy(self.$bignumber().isFinite())) { + self.$raise($$('FloatDomainError'), "Computation results to 'Infinity'") }; if ($truthy(n['$nil?']())) { - return self.$bignumber().round(0, $$($nesting, 'ROUND_CEILING')).toNumber() + return self.$bignumber().round(0, $$('ROUND_CEILING')).toNumber() } else if ($truthy($rb_ge(n, 0))) { - return self.$class().$new(self.$bignumber().round(n, $$($nesting, 'ROUND_CEILING'))) + return self.$class().$new(self.$bignumber().round(n, $$('ROUND_CEILING'))) } else { - return self.$class().$new(self.$bignumber().round(0, $$($nesting, 'ROUND_CEILING'))) + return self.$class().$new(self.$bignumber().round(0, $$('ROUND_CEILING'))) }; - }, $BigDecimal_ceil$14.$$arity = -1); + }, -1); - Opal.def(self, '$coerce', $BigDecimal_coerce$15 = function $$coerce(other) { - var self = this, $case = nil; + $def(self, '$coerce', function $$coerce(other) { + var self = this, $ret_or_1 = nil; - return (function() {$case = other; - if (self.$class()['$===']($case)) {return [other, self]} - else if ($$($nesting, 'Number')['$===']($case)) {return [self.$class().$new(other), self]} - else {return self.$raise($$($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into " + (self.$class()))}})() - }, $BigDecimal_coerce$15.$$arity = 1); + if ($eqeqeq(self.$class(), ($ret_or_1 = other))) { + return [other, self] + } else if ($eqeqeq($$('Number'), $ret_or_1)) { + return [self.$class().$new(other), self] + } else { + return self.$raise($$('TypeError'), "" + (other.$class()) + " can't be coerced into " + (self.$class())) + } + }, 1); - Opal.def(self, '$div', $BigDecimal_div$16 = function $$div(other, digits) { - var $a, $b, self = this, _ = nil, $ret_or_10 = nil; + $def(self, '$div', function $$div(other, digits) { + var $a, $b, self = this, _ = nil; - if (digits == null) { - digits = nil; + if (digits == null) digits = nil;; + if ($eqeq(digits, 0)) { + return $rb_divide(self, other) + }; + $b = self.$coerce(other), $a = $to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; + if (($truthy(self['$nan?']()) || ($truthy(other['$nan?']())))) { + self.$raise($$('FloatDomainError'), "Computation results to 'NaN'(Not a Number)") }; - if (digits['$=='](0)) { - return $rb_divide(self, other)}; - $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy((function() {if ($truthy(($ret_or_10 = self['$nan?']()))) { - return $ret_or_10 - } else { - return other['$nan?']() - }; return nil; })())) { - self.$raise($$($nesting, 'FloatDomainError'), "Computation results to 'NaN'(Not a Number)")}; if ($truthy(digits['$nil?']())) { if ($truthy(other['$zero?']())) { - self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0")}; + self.$raise($$('ZeroDivisionError'), "divided by 0") + }; if ($truthy(self['$infinite?']())) { - self.$raise($$($nesting, 'FloatDomainError'), "Computation results to 'Infinity'")}; - return self.$class().$new(self.$bignumber().dividedToIntegerBy(other.$bignumber()));}; - return self.$class().$new(self.$bignumber().dividedBy(other.$bignumber()).round(digits, self.$class().$mode($$($nesting, 'ROUND_MODE')))); - }, $BigDecimal_div$16.$$arity = -2); + self.$raise($$('FloatDomainError'), "Computation results to 'Infinity'") + }; + return self.$class().$new(self.$bignumber().dividedToIntegerBy(other.$bignumber())); + }; + return self.$class().$new(self.$bignumber().dividedBy(other.$bignumber()).round(digits, self.$class().$mode($$('ROUND_MODE')))); + }, -2); - Opal.def(self, '$finite?', $BigDecimal_finite$ques$17 = function() { + $def(self, '$finite?', function $BigDecimal_finite$ques$8() { var self = this; return self.$bignumber().isFinite() - }, $BigDecimal_finite$ques$17.$$arity = 0); + }, 0); - Opal.def(self, '$infinite?', $BigDecimal_infinite$ques$18 = function() { - var self = this, $ret_or_11 = nil; + $def(self, '$infinite?', function $BigDecimal_infinite$ques$9() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_11 = self['$finite?']()))) { - return $ret_or_11 - } else { - return self['$nan?']() - }; return nil; })())) { - return nil}; + if (($truthy(self['$finite?']()) || ($truthy(self['$nan?']())))) { + return nil + }; if ($truthy(self.$bignumber().isNegative())) { return -1 } else { return 1 }; - }, $BigDecimal_infinite$ques$18.$$arity = 0); + }, 0); - Opal.def(self, '$minus', $BigDecimal_minus$19 = function $$minus(other) { + $def(self, '$minus', function $$minus(other) { var $a, $b, self = this, _ = nil; - $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$coerce(other), $a = $to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; return self.$class().$new(self.$bignumber().minus(other.$bignumber())); - }, $BigDecimal_minus$19.$$arity = 1); - $alias(self, "-", "minus"); + }, 1); - Opal.def(self, '$mult', $BigDecimal_mult$20 = function $$mult(other, digits) { + $def(self, '$mult', function $$mult(other, digits) { var $a, $b, self = this, _ = nil; - if (digits == null) { - digits = nil; - }; - $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; + if (digits == null) digits = nil;; + $b = self.$coerce(other), $a = $to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(digits['$nil?']())) { - return self.$class().$new(self.$bignumber().times(other.$bignumber()))}; - return self.$class().$new(self.$bignumber().times(other.$bignumber()).round(digits, self.$class().$mode($$($nesting, 'ROUND_MODE')))); - }, $BigDecimal_mult$20.$$arity = -2); - $alias(self, "*", "mult"); + return self.$class().$new(self.$bignumber().times(other.$bignumber())) + }; + return self.$class().$new(self.$bignumber().times(other.$bignumber()).round(digits, self.$class().$mode($$('ROUND_MODE')))); + }, -2); - Opal.def(self, '$nan?', $BigDecimal_nan$ques$21 = function() { + $def(self, '$nan?', function $BigDecimal_nan$ques$10() { var self = this; return self.$bignumber().isNaN() - }, $BigDecimal_nan$ques$21.$$arity = 0); + }, 0); - Opal.def(self, '$quo', $BigDecimal_quo$22 = function $$quo(other) { + $def(self, '$quo', function $$quo(other) { var $a, $b, self = this, _ = nil; - $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$coerce(other), $a = $to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; return self.$class().$new(self.$bignumber().dividedBy(other.$bignumber())); - }, $BigDecimal_quo$22.$$arity = 1); - $alias(self, "/", "quo"); + }, 1); - Opal.def(self, '$sign', $BigDecimal_sign$23 = function $$sign() { + $def(self, '$sign', function $$sign() { var self = this; if ($truthy(self.$bignumber().isNaN())) { - return $$($nesting, 'SIGN_NaN')}; + return $$('SIGN_NaN') + }; if ($truthy(self.$bignumber().isZero())) { - return (function() {if ($truthy(self.$bignumber().isNegative())) { - return $$($nesting, 'SIGN_NEGATIVE_ZERO') - } else { - return $$($nesting, 'SIGN_POSITIVE_ZERO') - }; return nil; })() + return ($truthy(self.$bignumber().isNegative()) ? ($$('SIGN_NEGATIVE_ZERO')) : ($$('SIGN_POSITIVE_ZERO'))) } else { return nil }; - }, $BigDecimal_sign$23.$$arity = 0); + }, 0); - Opal.def(self, '$sub', $BigDecimal_sub$24 = function $$sub(other, precision) { + $def(self, '$sub', function $$sub(other, precision) { var $a, $b, self = this, _ = nil; - $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$coerce(other), $a = $to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; return self.$class().$new(self.$bignumber().minus(other.$bignumber())); - }, $BigDecimal_sub$24.$$arity = 2); + }, 2); - Opal.def(self, '$to_f', $BigDecimal_to_f$25 = function $$to_f() { + $def(self, '$to_f', function $$to_f() { var self = this; return self.$bignumber().toNumber() - }, $BigDecimal_to_f$25.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $BigDecimal_to_s$26 = function $$to_s(s) { + $def(self, '$to_s', function $$to_s(s) { var self = this; - if (s == null) { - s = ""; - }; + if (s == null) s = "";; return self.$bignumber().toString(); - }, $BigDecimal_to_s$26.$$arity = -1); - $alias(self, "inspect", "to_s"); - return (Opal.def(self, '$zero?', $BigDecimal_zero$ques$27 = function() { + }, -1); + + $def(self, '$zero?', function $BigDecimal_zero$ques$11() { var self = this; return self.$bignumber().isZero() - }, $BigDecimal_zero$ques$27.$$arity = 0), nil) && 'zero?'; - })($nesting[0], $$($nesting, 'Numeric'), $nesting); + }, 0); + $alias(self, "===", "=="); + $alias(self, "+", "add"); + $alias(self, "-", "minus"); + $alias(self, "*", "mult"); + $alias(self, "/", "quo"); + return $alias(self, "inspect", "to_s"); + })($nesting[0], $$('Numeric'), $nesting); }; diff --git a/opal/master/bigdecimal.min.js b/opal/master/bigdecimal.min.js index 8ef99d9c..4514352f 100644 --- a/opal/master/bigdecimal.min.js +++ b/opal/master/bigdecimal.min.js @@ -1 +1 @@ -Opal.modules.js=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs(["$insert","$<<","$global","$extend"]),function(self,$JS_$$$10){var $JS_new$5,$JS_new$6,$JS_call$9,self=$module(self,"JS");[self].concat($JS_$$$10);return Opal.def(self,"$delete",$JS_$$$10=function(object,property){return delete object[property]},$JS_$$$10.$$arity=2),Opal.def(self,"$global",$JS_$$$10=function(){return Opal.global},$JS_$$$10.$$arity=0),Opal.def(self,"$in",$JS_$$$10=function(property,object){return property in object},$JS_$$$10.$$arity=2),Opal.def(self,"$instanceof",$JS_$$$10=function(value,func){return value instanceof func},$JS_$$$10.$$arity=2),$truthy("function"==typeof Function.prototype.bind)?Opal.def(self,"$new",$JS_new$5=function(func,$a){var args=$JS_new$5.$$p,block=args||nil;return args&&($JS_new$5.$$p=null),args&&($JS_new$5.$$p=null),(args=Opal.slice.call(arguments,1,arguments.length)).$insert(0,this),$truthy(block)&&args["$<<"](block),new(func.bind.apply(func,args))},$JS_new$5.$$arity=-2):Opal.def(self,"$new",$JS_new$6=function(func,$a){var args,f,$post_args=$JS_new$6.$$p,block=$post_args||nil;return $post_args&&($JS_new$6.$$p=null),$post_args&&($JS_new$6.$$p=null),$post_args=Opal.slice.call(arguments,1,arguments.length),args=$post_args,$truthy(block)&&args["$<<"](block),(f=function(){return func.apply(this,args)}).prototype=func.prototype,new f},$JS_new$6.$$arity=-2),Opal.def(self,"$typeof",$JS_$$$10=function(value){return typeof value},$JS_$$$10.$$arity=1),Opal.def(self,"$void",$JS_$$$10=function(expr){},$JS_$$$10.$$arity=1),Opal.def(self,"$call",$JS_call$9=function(func,$a){var args=$JS_call$9.$$p,block=args||nil,g=nil;return args&&($JS_call$9.$$p=null),args&&($JS_call$9.$$p=null),args=Opal.slice.call(arguments,1,arguments.length),g=this.$global(),$truthy(block)&&args["$<<"](block),g[func].apply(g,args)},$JS_call$9.$$arity=-2),$alias(self,"method_missing","call"),Opal.def(self,"$[]",$JS_$$$10=function(name){return Opal.global[name]},$JS_$$$10.$$arity=1),self.$extend(self)}($nesting[0],$nesting)},Opal.modules["bigdecimal/bignumber"]=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.$$$,Opal.$$),$klass=Opal.klass;return function($base,$super,$parent_nesting){function define(f){Opal.const_set(self,"BigNumber",f())}var self=$klass($base,$super,"BigDecimal");[self].concat($parent_nesting);define.amd=!0,function(e){"use strict";function n(e){function E(e,n){var t,r,i,o,u,s,f=this;if(!(f instanceof E))return j&&L(26,"constructor call without new",e),new E(e,n);if(null!=n&&H(n,2,64,M,"base")){if(s=e+"",10==(n|=0))return U(f=new E(e instanceof E?e:s),P+f.e+1,k);if((o="number"==typeof e)&&0*e!=0||!new RegExp("^-?"+(t="["+N.slice(0,n)+"]+")+"(?:\\."+t+")?$",n<37?"i":"").test(s))return h(f,s,o,n);o?(f.s=1/e<0?(s=s.slice(1),-1):1,j&&15n;)h[o]=0,o||(++u,h.unshift(1));for(f=h.length;!h[--f];);for(p=0,e="";p<=f;e+=N.charAt(h[p++]));e=l(e,u)}return e}function F(e,n,u,i){var o,s,c,a;if(u=null!=u&&H(u,0,8,i,w)?0|u:k,!e.c)return e.toString();if(o=e.c[0],s=e.e,null==n)a=r(e.c),a=(19==i||24==i&&s<=B?f:l)(a,s);else if(u=(e=U(new E(e),n,u)).e,c=(a=r(e.c)).length,19==i||24==i&&(n<=u||u<=B)){for(;cz?e.c=e.e=null:t=a.length){if(!r)break e;for(;a.length<=l;a.push(0));f=c=0,u=(o%=O)-O+(i=1)}else{for(f=s=a[l],i=1;10<=s;s/=10,i++);c=(u=(o%=O)-O+i)<0?0:f/h[i-u-1]%10|0}if(r=r||n<0||null!=a[l+1]||(u<0?f:f%h[i-u-1]),r=t<4?(c||r)&&(0==t||t==(e.s<0?3:2)):5z?e.c=e.e=null:e.e>>11))?(r=a.getRandomValues(new Uint32Array(2)),t[s]=r[0],t[s+1]=r[1]):(f.push(u%1e14),s+=2);s=o/2}else if(a&&a.randomBytes){for(t=a.randomBytes(o*=7);sn[i]?1:-1;break}return o}function r(e,n,t,r){for(var i=0;t--;)e[t]-=i,i=e[t](I[a]||0)&&c--,x<0)v.push(1),h=!0;else{for(A=I.length,F=L.length,x+=2,1<(g=d(f/(L[a=0]+1)))&&(L=e(L,g,f),I=e(I,g,f),F=L.length,A=I.length),R=F,y=(N=I.slice(0,F)).length;y=f/2&&D++;do{if(g=0,(l=n(L,N,F,y))<0){if(S=N[0],F!=y&&(S=S*f+(N[1]||0)),1<(g=d(S/D)))for(f<=g&&(g=f-1),m=(p=e(L,g,f)).length,y=N.length;1==n(p,N,m,y);)g--,r(p,Fthis.c.length-2},T.isNaN=function(){return!this.s},T.isNegative=T.isNeg=function(){return this.s<0},T.isZero=function(){return!!this.c&&0==this.c[0]},T.lessThan=T.lt=function(e,n){return M=8,i(this,new E(e,n))<0},T.lessThanOrEqualTo=T.lte=function(e,n){return M=9,-1===(n=i(this,new E(e,n)))||0===n},T.minus=T.sub=function(e,n){var r,i,o,u,s=this,f=s.s;if(M=10,n=(e=new E(e,n)).s,!f||!n)return new E(NaN);if(f!=n)return e.s=-n,s.plus(e);var l=s.e/O,c=e.e/O,a=s.c,h=e.c;if(!l||!c){if(!a||!h)return a?(e.s=-n,e):new E(h?s:NaN);if(!a[0]||!h[0])return h[0]?(e.s=-n,e):new E(a[0]?s:3==k?-0:0)}if(l=t(l),c=t(c),a=a.slice(),f=l-c){for((o=(u=f<0)?(f=-f,a):(c=l,h)).reverse(),n=f;n--;o.push(0));o.reverse()}else for(i=(u=(f=a.length)<(n=h.length))?f:n,f=n=0;nn&&(n=r.e+1),n},T.round=function(e,n){var t=new E(this);return null!=e&&!H(e,0,A,15)||U(t,~~e+this.e+1,null!=n&&H(n,0,8,15,w)?0|n:k),t},T.shift=function(e){var n=this;return H(e,-y,y,16,"argument")?n.times("1e"+c(e)):new E(n.c&&n.c[0]&&(e<-y||yn&&(t.c.length=n)}if(!(r=d(r/2)))break;i=i.times(i),n&&i.c&&i.c.length>n&&(i.c.length=n)}return e<0&&(t=q.div(t)),n?U(t,J,k):t},T.toPrecision=function(e,n){return F(this,null!=e&&H(e,1,A,24,"precision")?0|e:null,n,24)},T.toString=function(e){var n,t=this,i=t.s,o=t.e;return null===o?i?(n="Infinity",i<0&&(n="-"+n)):n="NaN":(n=r(t.c),n=null!=e&&H(e,2,64,25,"base")?D(l(n,o),0|e,10,i):(o<=B||$<=o?f:l)(n,o),i<0&&t.c[0]&&(n="-"+n)),n},T.truncated=T.trunc=function(){return U(new E(this),this.e+1,1)},T.valueOf=T.toJSON=function(){var e,n=this,t=n.e;return null===t?n.toString():(e=r(n.c),e=(t<=B||$<=t?f:l)(e,t),n.s<0?"-"+e:e)},null!=e&&E.config(e),E}function t(e){var n=0|e;return 0o[u]^t?1:-1;return f==l?0:l=n&&e<=t}function u(e){return"[object Array]"==Object.prototype.toString.call(e)}function s(e,n,t){for(var r,i,o=[0],u=0,s=e.length;ut-1&&(null==o[r+1]&&(o[r+1]=0),o[r+1]+=o[r]/t|0,o[r]%=t)}return o.reverse()}function f(e,n){return(1(t=e.length)){for(r="0",n-=t;--n;r+="0");e+=r}else n","$mode","$>=","$==","$/","$zero?","$infinite?","$finite?"]),$base=$nesting[0],$super=$$($nesting,"Numeric"),$parent_nesting=$nesting,[$klass($base,$super,"BigDecimal")].concat($parent_nesting),$new$2.$require("js"),$new$2.$require("bigdecimal/bignumber"),function($Kernel_BigDecimal$1,$parent_nesting){var $nesting=[$Kernel_BigDecimal$1=$module($Kernel_BigDecimal$1,"Kernel")].concat($parent_nesting);Opal.def($Kernel_BigDecimal$1,"$BigDecimal",$Kernel_BigDecimal$1=function(initial,digits){var bigdecimal=nil;return null==digits&&(digits=0),(bigdecimal=$$($nesting,"BigDecimal").$allocate()).$initialize(initial,digits),bigdecimal},$Kernel_BigDecimal$1.$$arity=-2)}($nesting[0],$nesting),Opal.defs($$($nesting,"BigDecimal"),"$new",$new$2=function($a,$b){var args=Opal.slice.call(arguments,0,arguments.length),kwargs=Opal.extract_kwargs(args);if(null==kwargs)kwargs=$hash2([],{});else if(!kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return args=args,kwargs=Opal.kwrestargs(kwargs,{}),this.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.",$hash2(["uplevel"],{uplevel:1})),$send(this,"BigDecimal",Opal.to_a(args).concat([Opal.to_hash(kwargs)]))},$new$2.$$arity=-1),function($base,$BigDecimal_zero$ques$27,$BigDecimal_to_s$26){var $BigDecimal_$lt$8,$BigDecimal_$lt_eq$9,$BigDecimal_$gt$10,$BigDecimal_$gt_eq$11,$BigDecimal_zero$ques$27=$klass($base,$BigDecimal_zero$ques$27,"BigDecimal"),$nesting=[$BigDecimal_zero$ques$27].concat($BigDecimal_to_s$26);return Opal.const_set($nesting[0],"ROUND_MODE",256),Opal.const_set($nesting[0],"ROUND_UP",0),Opal.const_set($nesting[0],"ROUND_DOWN",1),Opal.const_set($nesting[0],"ROUND_CEILING",2),Opal.const_set($nesting[0],"ROUND_FLOOR",3),Opal.const_set($nesting[0],"ROUND_HALF_UP",4),Opal.const_set($nesting[0],"ROUND_HALF_DOWN",5),Opal.const_set($nesting[0],"ROUND_HALF_EVEN",6),Opal.const_set($nesting[0],"SIGN_NaN",0),Opal.const_set($nesting[0],"SIGN_POSITIVE_ZERO",1),Opal.const_set($nesting[0],"SIGN_NEGATIVE_ZERO",-1),Opal.const_set($nesting[0],"SIGN_POSITIVE_FINITE",2),Opal.const_set($nesting[0],"SIGN_NEGATIVE_FINITE",-2),Opal.const_set($nesting[0],"SIGN_POSITIVE_INFINITE",3),Opal.const_set($nesting[0],"SIGN_NEGATIVE_INFINITE",-3),Opal.defs($BigDecimal_zero$ques$27,"$limit",$BigDecimal_to_s$26=function(digits){return null==this.digits&&(this.digits=nil),null==digits&&(digits=nil),$truthy(digits)&&(this.digits=digits),this.digits},$BigDecimal_to_s$26.$$arity=-1),Opal.defs($BigDecimal_zero$ques$27,"$mode",$BigDecimal_to_s$26=function(mode,value){var self=this,$case=nil,$ret_or_1=nil;return null==self.round_mode&&(self.round_mode=nil),null==value&&(value=nil),$case=mode,$$($nesting,"ROUND_MODE")["$==="]($case)?($truthy(value)&&(self.round_mode=value),$truthy($ret_or_1=self.round_mode)?$ret_or_1:$$($nesting,"ROUND_HALF_UP")):nil},$BigDecimal_to_s$26.$$arity=-2),$BigDecimal_zero$ques$27.$attr_reader("bignumber"),Opal.def($BigDecimal_zero$ques$27,"$initialize",$BigDecimal_to_s$26=function(initial,digits){return null==digits&&(digits=0),this.bignumber=$$($nesting,"JS").$new($$($nesting,"BigNumber"),initial)},$BigDecimal_to_s$26.$$arity=-2),Opal.def($BigDecimal_zero$ques$27,"$==",$BigDecimal_to_s$26=function(other){var self=this,$case=nil;return $case=other,self.$class()["$==="]($case)?self.$bignumber().equals(other.$bignumber()):!!$$($nesting,"Number")["$==="]($case)&&self.$bignumber().equals(other)},$BigDecimal_to_s$26.$$arity=1),$alias($BigDecimal_zero$ques$27,"===","=="),Opal.def($BigDecimal_zero$ques$27,"$<=>",$BigDecimal_to_s$26=function(other){var self=this,result=nil,$case=nil;return $case=other,null===(result=self.$class()["$==="]($case)?self.$bignumber().comparedTo(other.$bignumber()):$$($nesting,"Number")["$==="]($case)?self.$bignumber().comparedTo(other):nil)?nil:result},$BigDecimal_to_s$26.$$arity=1),Opal.def($BigDecimal_zero$ques$27,"$<",$BigDecimal_$lt$8=function(other){var $zuper_ii,$iter=$BigDecimal_$lt$8.$$p,self=this,$ret_or_2=nil,$ret_or_3=nil,$zuper=nil,$zuper_i=nil;for($iter&&($BigDecimal_$lt$8.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return!$truthy($truthy($ret_or_2=self["$nan?"]())?$ret_or_2:$truthy($ret_or_3=other)?other["$nan?"]():$ret_or_3)&&$send2(self,$find_super(self,"<",$BigDecimal_$lt$8,!1,!0),"<",$zuper,$iter)},$BigDecimal_$lt$8.$$arity=1),Opal.def($BigDecimal_zero$ques$27,"$<=",$BigDecimal_$lt_eq$9=function(other){var $zuper_ii,$iter=$BigDecimal_$lt_eq$9.$$p,self=this,$ret_or_4=nil,$ret_or_5=nil,$zuper=nil,$zuper_i=nil;for($iter&&($BigDecimal_$lt_eq$9.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return!$truthy($truthy($ret_or_4=self["$nan?"]())?$ret_or_4:$truthy($ret_or_5=other)?other["$nan?"]():$ret_or_5)&&$send2(self,$find_super(self,"<=",$BigDecimal_$lt_eq$9,!1,!0),"<=",$zuper,$iter)},$BigDecimal_$lt_eq$9.$$arity=1),Opal.def($BigDecimal_zero$ques$27,"$>",$BigDecimal_$gt$10=function(other){var $zuper_ii,$iter=$BigDecimal_$gt$10.$$p,self=this,$ret_or_6=nil,$ret_or_7=nil,$zuper=nil,$zuper_i=nil;for($iter&&($BigDecimal_$gt$10.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return!$truthy($truthy($ret_or_6=self["$nan?"]())?$ret_or_6:$truthy($ret_or_7=other)?other["$nan?"]():$ret_or_7)&&$send2(self,$find_super(self,">",$BigDecimal_$gt$10,!1,!0),">",$zuper,$iter)},$BigDecimal_$gt$10.$$arity=1),Opal.def($BigDecimal_zero$ques$27,"$>=",$BigDecimal_$gt_eq$11=function(other){var $zuper_ii,$iter=$BigDecimal_$gt_eq$11.$$p,self=this,$ret_or_8=nil,$ret_or_9=nil,$zuper=nil,$zuper_i=nil;for($iter&&($BigDecimal_$gt_eq$11.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return!$truthy($truthy($ret_or_8=self["$nan?"]())?$ret_or_8:$truthy($ret_or_9=other)?other["$nan?"]():$ret_or_9)&&$send2(self,$find_super(self,">=",$BigDecimal_$gt_eq$11,!1,!0),">=",$zuper,$iter)},$BigDecimal_$gt_eq$11.$$arity=1),Opal.def($BigDecimal_zero$ques$27,"$abs",$BigDecimal_to_s$26=function(){return this.$class().$new(this.$bignumber().abs())},$BigDecimal_to_s$26.$$arity=0),Opal.def($BigDecimal_zero$ques$27,"$add",$BigDecimal_to_s$26=function(other,digits){var lhs,$a,result=nil;return null==digits&&(digits=0),$truthy(digits["$nil?"]())&&this.$raise($$($nesting,"TypeError"),"wrong argument type nil (expected Fixnum)"),$truthy(($a=0,"number"==typeof(lhs=digits)&&"number"==typeof $a?lhs<$a:lhs["$<"]($a)))&&this.$raise($$($nesting,"ArgumentError"),"argument must be positive"),$a=this.$coerce(other),other=null==($a=Opal.to_ary($a))[0]?nil:$a[0],null==$a[1]||$a[1],result=this.$bignumber().plus(other.$bignumber()),$truthy(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}(digits,0))&&(result=result.toDigits(digits,this.$class().$mode($$($nesting,"ROUND_MODE")))),this.$class().$new(result)},$BigDecimal_to_s$26.$$arity=-2),$alias($BigDecimal_zero$ques$27,"+","add"),Opal.def($BigDecimal_zero$ques$27,"$ceil",$BigDecimal_to_s$26=function(n){var lhs,rhs;return null==n&&(n=nil),$truthy(this.$bignumber().isFinite())||this.$raise($$($nesting,"FloatDomainError"),"Computation results to 'Infinity'"),$truthy(n["$nil?"]())?this.$bignumber().round(0,$$($nesting,"ROUND_CEILING")).toNumber():$truthy((rhs=0,"number"==typeof(lhs=n)&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))?this.$class().$new(this.$bignumber().round(n,$$($nesting,"ROUND_CEILING"))):this.$class().$new(this.$bignumber().round(0,$$($nesting,"ROUND_CEILING")))},$BigDecimal_to_s$26.$$arity=-1),Opal.def($BigDecimal_zero$ques$27,"$coerce",$BigDecimal_to_s$26=function(other){var self=this,$case=nil;return $case=other,self.$class()["$==="]($case)?[other,self]:$$($nesting,"Number")["$==="]($case)?[self.$class().$new(other),self]:self.$raise($$($nesting,"TypeError"),other.$class()+" can't be coerced into "+self.$class())},$BigDecimal_to_s$26.$$arity=1),Opal.def($BigDecimal_zero$ques$27,"$div",$BigDecimal_to_s$26=function(other,digits){var lhs,$a,self=this,$ret_or_10=nil;return null==digits&&(digits=nil),digits["$=="](0)?($a=other,"number"==typeof(lhs=self)&&"number"==typeof $a?lhs/$a:lhs["$/"]($a)):($a=self.$coerce(other),$a=Opal.to_ary($a),other=null==$a[0]?nil:$a[0],null==$a[1]||$a[1],$truthy($truthy($ret_or_10=self["$nan?"]())?$ret_or_10:other["$nan?"]())&&self.$raise($$($nesting,"FloatDomainError"),"Computation results to 'NaN'(Not a Number)"),$truthy(digits["$nil?"]())?($truthy(other["$zero?"]())&&self.$raise($$($nesting,"ZeroDivisionError"),"divided by 0"),$truthy(self["$infinite?"]())&&self.$raise($$($nesting,"FloatDomainError"),"Computation results to 'Infinity'"),self.$class().$new(self.$bignumber().dividedToIntegerBy(other.$bignumber()))):self.$class().$new(self.$bignumber().dividedBy(other.$bignumber()).round(digits,self.$class().$mode($$($nesting,"ROUND_MODE")))))},$BigDecimal_to_s$26.$$arity=-2),Opal.def($BigDecimal_zero$ques$27,"$finite?",$BigDecimal_to_s$26=function(){return this.$bignumber().isFinite()},$BigDecimal_to_s$26.$$arity=0),Opal.def($BigDecimal_zero$ques$27,"$infinite?",$BigDecimal_to_s$26=function(){var self=this,$ret_or_11=nil;return $truthy($truthy($ret_or_11=self["$finite?"]())?$ret_or_11:self["$nan?"]())?nil:$truthy(self.$bignumber().isNegative())?-1:1},$BigDecimal_to_s$26.$$arity=0),Opal.def($BigDecimal_zero$ques$27,"$minus",$BigDecimal_to_s$26=function(other){var $a=this.$coerce(other),$a=Opal.to_ary($a);return other=null==$a[0]?nil:$a[0],null==$a[1]||$a[1],this.$class().$new(this.$bignumber().minus(other.$bignumber()))},$BigDecimal_to_s$26.$$arity=1),$alias($BigDecimal_zero$ques$27,"-","minus"),Opal.def($BigDecimal_zero$ques$27,"$mult",$BigDecimal_to_s$26=function(other,digits){var $a;return null==digits&&(digits=nil),$a=this.$coerce(other),other=null==($a=Opal.to_ary($a))[0]?nil:$a[0],null==$a[1]||$a[1],$truthy(digits["$nil?"]())?this.$class().$new(this.$bignumber().times(other.$bignumber())):this.$class().$new(this.$bignumber().times(other.$bignumber()).round(digits,this.$class().$mode($$($nesting,"ROUND_MODE"))))},$BigDecimal_to_s$26.$$arity=-2),$alias($BigDecimal_zero$ques$27,"*","mult"),Opal.def($BigDecimal_zero$ques$27,"$nan?",$BigDecimal_to_s$26=function(){return this.$bignumber().isNaN()},$BigDecimal_to_s$26.$$arity=0),Opal.def($BigDecimal_zero$ques$27,"$quo",$BigDecimal_to_s$26=function(other){var $a=this.$coerce(other),$a=Opal.to_ary($a);return other=null==$a[0]?nil:$a[0],null==$a[1]||$a[1],this.$class().$new(this.$bignumber().dividedBy(other.$bignumber()))},$BigDecimal_to_s$26.$$arity=1),$alias($BigDecimal_zero$ques$27,"/","quo"),Opal.def($BigDecimal_zero$ques$27,"$sign",$BigDecimal_to_s$26=function(){var self=this;return $truthy(self.$bignumber().isNaN())?$$($nesting,"SIGN_NaN"):$truthy(self.$bignumber().isZero())?$truthy(self.$bignumber().isNegative())?$$($nesting,"SIGN_NEGATIVE_ZERO"):$$($nesting,"SIGN_POSITIVE_ZERO"):nil},$BigDecimal_to_s$26.$$arity=0),Opal.def($BigDecimal_zero$ques$27,"$sub",$BigDecimal_to_s$26=function(other){var $a=this.$coerce(other),$a=Opal.to_ary($a);return other=null==$a[0]?nil:$a[0],null==$a[1]||$a[1],this.$class().$new(this.$bignumber().minus(other.$bignumber()))},$BigDecimal_to_s$26.$$arity=2),Opal.def($BigDecimal_zero$ques$27,"$to_f",$BigDecimal_to_s$26=function(){return this.$bignumber().toNumber()},$BigDecimal_to_s$26.$$arity=0),Opal.def($BigDecimal_zero$ques$27,"$to_s",$BigDecimal_to_s$26=function(s){return null==s&&(s=""),this.$bignumber().toString()},$BigDecimal_to_s$26.$$arity=-1),$alias($BigDecimal_zero$ques$27,"inspect","to_s"),Opal.def($BigDecimal_zero$ques$27,"$zero?",$BigDecimal_zero$ques$27=function(){return this.$bignumber().isZero()},$BigDecimal_zero$ques$27.$$arity=0),nil&&"zero?"}($nesting[0],$$($nesting,"Numeric"),$nesting)}; +Opal.modules.js=function(Opal){var self,nil=Opal.nil,$module=Opal.module,$def=Opal.def,$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs("insert,<<,global,extend"),self=$module([][0],"JS"),$def(self,"$delete",(function(object,property){return delete object[property]}),2),$def(self,"$global",(function(){return Opal.global}),0),$def(self,"$in",(function(property,object){return property in object}),2),$def(self,"$instanceof",(function(value,func){return value instanceof func}),2),$truthy("function"==typeof Function.prototype.bind)?$def(self,"$new",(function $JS_new$4(func,$a){var args,block=$JS_new$4.$$p||nil;return delete $JS_new$4.$$p,(args=Opal.slice.call(arguments,1)).$insert(0,this),$truthy(block)&&args["$<<"](block),new(func.bind.apply(func,args))}),-2):$def(self,"$new",(function $JS_new$5(func,$a){var $post_args,args,block=$JS_new$5.$$p||nil,f=nil;return delete $JS_new$5.$$p,$post_args=Opal.slice.call(arguments,1),args=$post_args,$truthy(block)&&args["$<<"](block),(f=function(){return func.apply(this,args)}).prototype=func.prototype,new f}),-2),$def(self,"$typeof",(function(value){return typeof value}),1),$def(self,"$void",(function(expr){}),1),$def(self,"$call",(function $$call(func,$a){var args,block=$$call.$$p||nil,self=this,g=nil;return delete $$call.$$p,args=Opal.slice.call(arguments,1),g=self.$global(),$truthy(block)&&args["$<<"](block),g[func].apply(g,args)}),-2),$def(self,"$[]",(function(name){return Opal.global[name]}),1),$alias(self,"method_missing","call"),self.$extend(self)},Opal.modules["bigdecimal/bignumber"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),$klass=(Opal.nil,Opal.klass);return function($base,$super){var self=$klass($base,$super,"BigDecimal"),define=function(f){Opal.const_set(self,"BigNumber",f())};define.amd=!0,function(e){"use strict";function n(e){function E(e,n){var t,r,i,o,u,s,f=this;if(!(f instanceof E))return j&&L(26,"constructor call without new",e),new E(e,n);if(null!=n&&H(n,2,64,M,"base")){if(s=e+"",10==(n|=0))return U(f=new E(e instanceof E?e:s),P+f.e+1,k);if((o="number"==typeof e)&&0*e!=0||!new RegExp("^-?"+(t="["+N.slice(0,n)+"]+")+"(?:\\."+t+")?$",37>n?"i":"").test(s))return h(f,s,o,n);o?(f.s=0>1/e?(s=s.slice(1),-1):1,j&&s.replace(/^0\.0*|\./,"").length>15&&L(M,v,e),o=!1):f.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1,s=D(s,10,n,f.s)}else{if(e instanceof E)return f.s=e.s,f.e=e.e,f.c=(e=e.c)?e.slice():e,void(M=0);if((o="number"==typeof e)&&0*e==0){if(f.s=0>1/e?(e=-e,-1):1,e===~~e){for(r=0,i=e;i>=10;i/=10,r++);return f.e=r,f.c=[e],void(M=0)}s=e+""}else{if(!g.test(s=e+""))return h(f,s,o);f.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1}}for((r=s.indexOf("."))>-1&&(s=s.replace(".","")),(i=s.search(/e/i))>0?(0>r&&(r=i),r+=+s.slice(i+1),s=s.substring(0,i)):0>r&&(r=s.length),i=0;48===s.charCodeAt(i);i++);for(u=s.length;48===s.charCodeAt(--u););if(s=s.slice(i,u+1))if(u=s.length,o&&j&&u>15&&L(M,v,f.s*e),(r=r-i-1)>z)f.c=f.e=null;else if(G>r)f.c=[f.e=0];else{if(f.e=r,f.c=[],i=(r+1)%O,0>r&&(i+=O),u>i){for(i&&f.c.push(+s.slice(0,i)),u-=O;u>i;)f.c.push(+s.slice(i,i+=O));s=s.slice(i),i=O-s.length}else i-=u;for(;i--;s+="0");f.c.push(+s)}else f.c=[f.e=0];M=0}function D(e,n,t,i){var o,u,f,c,a,h,g,p=e.indexOf("."),d=P,m=k;for(37>t&&(e=e.toLowerCase()),p>=0&&(f=J,J=0,e=e.replace(".",""),a=(g=new E(t)).pow(e.length-p),J=f,g.c=s(l(r(a.c),a.e),10,n),g.e=g.c.length),u=f=(h=s(e,t,n)).length;0==h[--f];h.pop());if(!h[0])return"0";if(0>p?--u:(a.c=h,a.e=u,a.s=i,h=(a=C(a,g,d,m,n)).c,c=a.r,u=a.e),p=h[o=u+d+1],f=n/2,c=c||0>o||null!=h[o+1],c=4>m?(null!=p||c)&&(0==m||m==(a.s<0?3:2)):p>f||p==f&&(4==m||c||6==m&&1&h[o-1]||m==(a.s<0?8:7)),1>o||!h[0])e=c?l("1",-d):"0";else{if(h.length=o,c)for(--n;++h[--o]>n;)h[o]=0,o||(++u,h.unshift(1));for(f=h.length;!h[--f];);for(p=0,e="";f>=p;e+=N.charAt(h[p++]));e=l(e,u)}return e}function F(e,n,t,i){var o,u,s,c,a;if(t=null!=t&&H(t,0,8,i,w)?0|t:k,!e.c)return e.toString();if(o=e.c[0],s=e.e,null==n)a=r(e.c),a=19==i||24==i&&B>=s?f(a,s):l(a,s);else if(u=(e=U(new E(e),n,t)).e,c=(a=r(e.c)).length,19==i||24==i&&(u>=n||B>=u)){for(;n>c;a+="0",c++);a=f(a,u)}else if(n-=s,a=l(a,u),u+1>c){if(--n>0)for(a+=".";n--;a+="0");}else if((n+=u-c)>0)for(u+1==c&&(a+=".");n--;a+="0");return e.s<0&&o?"-"+a:a}function _(e,n){var t,r,i=0;for(u(e[0])&&(e=e[0]),t=new E(e[0]);++ie||e>t||e!=c(e))&&L(r,(i||"decimal places")+(n>e||e>t?" out of range":" not an integer"),e),!0}function I(e,n,t){for(var r=1,i=n.length;!n[--i];n.pop());for(i=n[0];i>=10;i/=10,r++);return(t=r+t*O-1)>z?e.c=e.e=null:G>t?e.c=[e.e=0]:(e.e=t,e.c=n),e}function L(e,n,t){var r=new Error(["new BigNumber","cmp","config","div","divToInt","eq","gt","gte","lt","lte","minus","mod","plus","precision","random","round","shift","times","toDigits","toExponential","toFixed","toFormat","toFraction","pow","toPrecision","toString","BigNumber"][e]+"() "+n+": "+t);throw r.name="BigNumber Error",M=0,r}function U(e,n,t,r){var i,o,u,s,f,l,c,a=e.c,h=S;if(a){e:{for(i=1,s=a[0];s>=10;s/=10,i++);if(0>(o=n-i))o+=O,u=n,c=(f=a[l=0])/h[i-u-1]%10|0;else if((l=p((o+1)/O))>=a.length){if(!r)break e;for(;a.length<=l;a.push(0));f=c=0,i=1,u=(o%=O)-O+1}else{for(f=s=a[l],i=1;s>=10;s/=10,i++);c=0>(u=(o%=O)-O+i)?0:f/h[i-u-1]%10|0}if(r=r||0>n||null!=a[l+1]||(0>u?f:f%h[i-u-1]),r=4>t?(c||r)&&(0==t||t==(e.s<0?3:2)):c>5||5==c&&(4==t||r||6==t&&(o>0?u>0?f/h[i-u]:0:a[l-1])%10&1||t==(e.s<0?8:7)),1>n||!a[0])return a.length=0,r?(n-=e.e+1,a[0]=h[(O-n%O)%O],e.e=-n||0):a[0]=e.e=0,e;if(0==o?(a.length=l,s=1,l--):(a.length=l+1,s=h[O-o],a[l]=u>0?d(f/h[i-u]%h[u])*s:0),r)for(;;){if(0==l){for(o=1,u=a[0];u>=10;u/=10,o++);for(u=a[0]+=s,s=1;u>=10;u/=10,s++);o!=s&&(e.e++,a[0]==b&&(a[0]=1));break}if(a[l]+=s,a[l]!=b)break;a[l--]=0,s=1}for(o=a.length;0===a[--o];a.pop());}e.e>z?e.c=e.e=null:e.et?null!=(e=i[t++]):void 0};return f(n="DECIMAL_PLACES")&&H(e,0,A,2,n)&&(P=0|e),r[n]=P,f(n="ROUNDING_MODE")&&H(e,0,8,2,n)&&(k=0|e),r[n]=k,f(n="EXPONENTIAL_AT")&&(u(e)?H(e[0],-A,0,2,n)&&H(e[1],0,A,2,n)&&(B=0|e[0],$=0|e[1]):H(e,-A,A,2,n)&&(B=-($=0|(0>e?-e:e)))),r[n]=[B,$],f(n="RANGE")&&(u(e)?H(e[0],-A,-1,2,n)&&H(e[1],1,A,2,n)&&(G=0|e[0],z=0|e[1]):H(e,-A,A,2,n)&&(0|e?G=-(z=0|(0>e?-e:e)):j&&L(2,n+" cannot be zero",e))),r[n]=[G,z],f(n="ERRORS")&&(e===!!e||1===e||0===e?(M=0,H=(j=!!e)?x:o):j&&L(2,n+m,e)),r[n]=j,f(n="CRYPTO")&&(e===!!e||1===e||0===e?(V=!(!e||!a),e&&!V&&j&&L(2,"crypto unavailable",a)):j&&L(2,n+m,e)),r[n]=V,f(n="MODULO_MODE")&&H(e,0,9,2,n)&&(W=0|e),r[n]=W,f(n="POW_PRECISION")&&H(e,0,A,2,n)&&(J=0|e),r[n]=J,f(n="FORMAT")&&("object"==typeof e?X=e:j&&L(2,n+" not an object",e)),r[n]=X,r},E.max=function(){return _(arguments,T.lt)},E.min=function(){return _(arguments,T.gt)},E.random=function(){var e=9007199254740992,n=Math.random()*e&2097151?function(){return d(Math.random()*e)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var t,r,i,o,u,s=0,f=[],l=new E(q);if(e=null!=e&&H(e,0,A,14)?0|e:P,o=p(e/O),V)if(a&&a.getRandomValues){for(t=a.getRandomValues(new Uint32Array(o*=2));o>s;)(u=131072*t[s]+(t[s+1]>>>11))>=9e15?(r=a.getRandomValues(new Uint32Array(2)),t[s]=r[0],t[s+1]=r[1]):(f.push(u%1e14),s+=2);s=o/2}else if(a&&a.randomBytes){for(t=a.randomBytes(o*=7);o>s;)(u=281474976710656*(31&t[s])+1099511627776*t[s+1]+4294967296*t[s+2]+16777216*t[s+3]+(t[s+4]<<16)+(t[s+5]<<8)+t[s+6])>=9e15?a.randomBytes(7).copy(t,s):(f.push(u%1e14),s+=7);s=o/7}else j&&L(14,"crypto unavailable",a);if(!s)for(;o>s;)9e15>(u=n())&&(f[s++]=u%1e14);for(o=f[--s],e%=O,o&&e&&(u=S[O-e],f[s]=d(o/u)*u);0===f[s];f.pop(),s--);if(0>s)f=[i=0];else{for(i=-1;0===f[0];f.shift(),i-=O);for(s=1,u=f[0];u>=10;u/=10,s++);O>s&&(i-=O-s)}return l.e=i,l.c=f,l}}(),C=function(){function e(e,n,t){var r,i,o,u,s=0,f=e.length,l=n%R,c=n/R|0;for(e=e.slice();f--;)s=((i=l*(o=e[f]%R)+(r=c*o+(u=e[f]/R|0)*l)%R*R+s)/t|0)+(r/R|0)+c*u,e[f]=i%t;return s&&e.unshift(s),e}function n(e,n,t,r){var i,o;if(t!=r)o=t>r?1:-1;else for(i=o=0;t>i;i++)if(e[i]!=n[i]){o=e[i]>n[i]?1:-1;break}return o}function r(e,n,t,r){for(var i=0;t--;)e[t]-=i,i=e[t]1;e.shift());}return function(i,o,u,s,f){var l,c,a,h,g,p,m,w,v,N,y,S,R,A,D,F,_,x=i.s==o.s?1:-1,I=i.c,L=o.c;if(!(I&&I[0]&&L&&L[0]))return new E(i.s&&o.s&&(I?!L||I[0]!=L[0]:L)?I&&0==I[0]||!L?0*x:x/0:NaN);for(v=(w=new E(x)).c=[],x=u+(c=i.e-o.e)+1,f||(f=b,c=t(i.e/O)-t(o.e/O),x=x/O|0),a=0;L[a]==(I[a]||0);a++);if(L[a]>(I[a]||0)&&c--,0>x)v.push(1),h=!0;else{for(A=I.length,F=L.length,a=0,x+=2,(g=d(f/(L[0]+1)))>1&&(L=e(L,g,f),I=e(I,g,f),F=L.length,A=I.length),R=F,y=(N=I.slice(0,F)).length;F>y;N[y++]=0);(_=L.slice()).unshift(0),D=L[0],L[1]>=f/2&&D++;do{if(g=0,0>(l=n(L,N,F,y))){if(S=N[0],F!=y&&(S=S*f+(N[1]||0)),(g=d(S/D))>1)for(g>=f&&(g=f-1),m=(p=e(L,g,f)).length,y=N.length;1==n(p,N,m,y);)g--,r(p,m>F?_:L,m,f),m=p.length,l=1;else 0==g&&(l=g=1),m=(p=L.slice()).length;if(y>m&&p.unshift(0),r(N,p,y,f),y=N.length,-1==l)for(;n(L,N,F,y)<1;)g++,r(N,y>F?_:L,y,f),y=N.length}else 0===l&&(g++,N=[0]);v[a++]=g,N[0]?N[y++]=I[R]||0:(N=[I[R]],y=1)}while((R++=10;x/=10,a++);U(w,u+(w.e=a+c*O-1)+1,s,h)}else w.e=c,w.r=+h;return w}}(),h=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,n=/^([^.]+)\.$/,t=/^\.([^.]+)$/,r=/^-?(Infinity|NaN)$/,i=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(o,u,s,f){var l,c=s?u:u.replace(i,"");if(r.test(c))o.s=isNaN(c)?null:0>c?-1:1;else{if(!s&&(c=c.replace(e,(function(e,n,t){return l="x"==(t=t.toLowerCase())?16:"b"==t?2:8,f&&f!=l?e:n})),f&&(l=f,c=c.replace(n,"$1").replace(t,"0.$1")),u!=c))return new E(c,l);j&&L(M,"not a"+(f?" base "+f:"")+" number",u),o.s=null}o.c=o.e=null,M=0}}(),T.absoluteValue=T.abs=function(){var e=new E(this);return e.s<0&&(e.s=1),e},T.ceil=function(){return U(new E(this),this.e+1,2)},T.comparedTo=T.cmp=function(e,n){return M=1,i(this,new E(e,n))},T.decimalPlaces=T.dp=function(){var e,n,r=this.c;if(!r)return null;if(e=((n=r.length-1)-t(this.e/O))*O,n=r[n])for(;n%10==0;n/=10,e--);return 0>e&&(e=0),e},T.dividedBy=T.div=function(e,n){return M=3,C(this,new E(e,n),P,k)},T.dividedToIntegerBy=T.divToInt=function(e,n){return M=4,C(this,new E(e,n),0,1)},T.equals=T.eq=function(e,n){return M=5,0===i(this,new E(e,n))},T.floor=function(){return U(new E(this),this.e+1,3)},T.greaterThan=T.gt=function(e,n){return M=6,i(this,new E(e,n))>0},T.greaterThanOrEqualTo=T.gte=function(e,n){return M=7,1===(n=i(this,new E(e,n)))||0===n},T.isFinite=function(){return!!this.c},T.isInteger=T.isInt=function(){return!!this.c&&t(this.e/O)>this.c.length-2},T.isNaN=function(){return!this.s},T.isNegative=T.isNeg=function(){return this.s<0},T.isZero=function(){return!!this.c&&0==this.c[0]},T.lessThan=T.lt=function(e,n){return M=8,i(this,new E(e,n))<0},T.lessThanOrEqualTo=T.lte=function(e,n){return M=9,-1===(n=i(this,new E(e,n)))||0===n},T.minus=T.sub=function(e,n){var r,i,o,u,s=this,f=s.s;if(M=10,n=(e=new E(e,n)).s,!f||!n)return new E(NaN);if(f!=n)return e.s=-n,s.plus(e);var l=s.e/O,c=e.e/O,a=s.c,h=e.c;if(!l||!c){if(!a||!h)return a?(e.s=-n,e):new E(h?s:NaN);if(!a[0]||!h[0])return h[0]?(e.s=-n,e):new E(a[0]?s:3==k?-0:0)}if(l=t(l),c=t(c),a=a.slice(),f=l-c){for((u=0>f)?(f=-f,o=a):(c=l,o=h),o.reverse(),n=f;n--;o.push(0));o.reverse()}else for(i=(u=(f=a.length)<(n=h.length))?f:n,f=n=0;i>n;n++)if(a[n]!=h[n]){u=a[n]0)for(;n--;a[r++]=0);for(n=b-1;i>f;){if(a[--i]0?(s=u,r=l):(o=-o,r=f),r.reverse();o--;r.push(0));r.reverse()}for(0>(o=f.length)-(n=l.length)&&(r=l,l=f,f=r,n=o),o=0;n;)o=(f[--n]=f[n]+l[n]+o)/b|0,f[n]%=b;return o&&(f.unshift(o),++s),I(e,f,s)},T.precision=T.sd=function(e){var n,t,r=this,i=r.c;if(null!=e&&e!==!!e&&1!==e&&0!==e&&(j&&L(13,"argument"+m,e),e!=!!e&&(e=null)),!i)return null;if(n=(t=i.length-1)*O+1,t=i[t]){for(;t%10==0;t/=10,n--);for(t=i[0];t>=10;t/=10,n++);}return e&&r.e+1>n&&(n=r.e+1),n},T.round=function(e,n){var t=new E(this);return(null==e||H(e,0,A,15))&&U(t,~~e+this.e+1,null!=n&&H(n,0,8,15,w)?0|n:k),t},T.shift=function(e){var n=this;return H(e,-y,y,16,"argument")?n.times("1e"+c(e)):new E(n.c&&n.c[0]&&(-y>e||e>y)?n.s*(0>e?0:1/0):n)},T.squareRoot=T.sqrt=function(){var e,n,i,o,u,s=this,f=s.c,l=s.s,c=s.e,a=P+4,h=new E("0.5");if(1!==l||!f||!f[0])return new E(!l||0>l&&(!f||f[0])?NaN:f?s:1/0);if(0==(l=Math.sqrt(+s))||l==1/0?(((n=r(f)).length+c)%2==0&&(n+="0"),l=Math.sqrt(n),c=t((c+1)/2)-(0>c||c%2),l==1/0?n="1e"+c:n=(n=l.toExponential()).slice(0,n.indexOf("e")+1)+c,i=new E(n)):i=new E(l+""),i.c[0])for(3>(l=(c=i.e)+a)&&(l=0);;)if(u=i,i=h.times(u.plus(C(s,u,a,1))),r(u.c).slice(0,l)===(n=r(i.c)).slice(0,l)){if(i.el&&(d=N,N=y,y=d,o=l,l=h,h=o),o=l+h,d=[];o--;d.push(0));for(m=b,w=R,o=h;--o>=0;){for(r=0,g=y[o]%w,p=y[o]/w|0,u=o+(s=l);u>o;)r=((c=g*(c=N[--s]%w)+(f=p*c+(a=N[s]/w|0)*g)%w*w+d[u]+r)/m|0)+(f/w|0)+p*a,d[u--]=c%m;d[u]=r}return r?++i:d.shift(),I(e,d,i)},T.toDigits=function(e,n){var t=new E(this);return e=null!=e&&H(e,1,A,18,"precision")?0|e:null,n=null!=n&&H(n,0,8,18,w)?0|n:k,e?U(t,e,n):t},T.toExponential=function(e,n){return F(this,null!=e&&H(e,0,A,19)?1+~~e:null,n,19)},T.toFixed=function(e,n){return F(this,null!=e&&H(e,0,A,20)?~~e+this.e+1:null,n,20)},T.toFormat=function(e,n){var t=F(this,null!=e&&H(e,0,A,21)?~~e+this.e+1:null,n,21);if(this.c){var r,i=t.split("."),o=+X.groupSize,u=+X.secondaryGroupSize,s=X.groupSeparator,f=i[0],l=i[1],c=this.s<0,a=c?f.slice(1):f,h=a.length;if(u&&(r=o,o=u,u=r,h-=r),o>0&&h>0){for(r=h%o||o,f=a.substr(0,r);h>r;r+=o)f+=s+a.substr(r,o);u>0&&(f+=s+a.slice(r)),c&&(f="-"+f)}t=l?f+X.decimalSeparator+((u=+X.fractionGroupSize)?l.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+X.fractionGroupSeparator):l):f}return t},T.toFraction=function(e){var n,t,i,o,u,s,f,l,c,a=j,h=this,g=h.c,p=new E(q),d=t=new E(q),m=f=new E(q);if(null!=e&&(j=!1,s=new E(e),j=a,(!(a=s.isInt())||s.lt(q))&&(j&&L(22,"max denominator "+(a?"out of range":"not an integer"),e),e=!a&&s.c&&U(s,s.e+1,1).gte(q)?s:null)),!g)return h.toString();for(c=r(g),o=p.e=c.length-h.e-1,p.c[0]=S[(u=o%O)<0?O+u:u],e=!e||s.cmp(p)>0?o>0?p:d:s,u=z,z=1/0,s=new E(c),f.c[0]=0;l=C(s,p,0,1),1!=(i=t.plus(l.times(m))).cmp(e);)t=m,m=i,d=f.plus(l.times(i=d)),f=i,p=s.minus(l.times(i=p)),s=i;return i=C(e.minus(t),m,0,1),f=f.plus(i.times(d)),t=t.plus(i.times(m)),f.s=d.s=h.s,n=C(d,m,o*=2,k).minus(h).abs().cmp(C(f,t,o,k).minus(h).abs())<1?[d.toString(),m.toString()]:[f.toString(),t.toString()],z=u,n},T.toNumber=function(){return+this},T.toPower=T.pow=function(e){var n,t,r=d(0>e?-e:+e),i=this;if(!H(e,-y,y,23,"exponent")&&(!isFinite(e)||r>y&&(e/=0)||parseFloat(e)!=e&&!(e=NaN)))return new E(Math.pow(+i,e));for(n=J?p(J/O+2):0,t=new E(q);;){if(r%2){if(!(t=t.times(i)).c)break;n&&t.c.length>n&&(t.c.length=n)}if(!(r=d(r/2)))break;i=i.times(i),n&&i.c&&i.c.length>n&&(i.c.length=n)}return 0>e&&(t=q.div(t)),n?U(t,J,k):t},T.toPrecision=function(e,n){return F(this,null!=e&&H(e,1,A,24,"precision")?0|e:null,n,24)},T.toString=function(e){var n,t=this,i=t.s,o=t.e;return null===o?i?(n="Infinity",0>i&&(n="-"+n)):n="NaN":(n=r(t.c),n=null!=e&&H(e,2,64,25,"base")?D(l(n,o),0|e,10,i):B>=o||o>=$?f(n,o):l(n,o),0>i&&t.c[0]&&(n="-"+n)),n},T.truncated=T.trunc=function(){return U(new E(this),this.e+1,1)},T.valueOf=T.toJSON=function(){var e,n=this,t=n.e;return null===t?n.toString():(e=r(n.c),e=B>=t||t>=$?f(e,t):l(e,t),n.s<0?"-"+e:e)},null!=e&&E.config(e),E}function t(e){var n=0|e;return e>0||e===n?n:n-1}function r(e){for(var n,t,r=1,i=e.length,o=e[0]+"";i>r;){for(n=e[r++]+"",t=O-n.length;t--;n="0"+n);o+=n}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function i(e,n){var t,r,i=e.c,o=n.c,u=e.s,s=n.s,f=e.e,l=n.e;if(!u||!s)return null;if(t=i&&!i[0],r=o&&!o[0],t||r)return t?r?0:-s:u;if(u!=s)return u;if(t=0>u,r=f==l,!i||!o)return r?0:!i^t?1:-1;if(!r)return f>l^t?1:-1;for(s=(f=i.length)<(l=o.length)?f:l,u=0;s>u;u++)if(i[u]!=o[u])return i[u]>o[u]^t?1:-1;return f==l?0:f>l^t?1:-1}function o(e,n,t){return(e=c(e))>=n&&t>=e}function u(e){return"[object Array]"==Object.prototype.toString.call(e)}function s(e,n,t){for(var r,i,o=[0],u=0,s=e.length;s>u;){for(i=o.length;i--;o[i]*=n);for(o[r=0]+=N.indexOf(e.charAt(u++));rt-1&&(null==o[r+1]&&(o[r+1]=0),o[r+1]+=o[r]/t|0,o[r]%=t)}return o.reverse()}function f(e,n){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(0>n?"e":"e+")+n}function l(e,n){var t,r;if(0>n){for(r="0.";++n;r+="0");e=r+e}else if(++n>(t=e.length)){for(r="0",n-=t;--n;r+="0");e+=r}else t>n&&(e=e.slice(0,n)+"."+e.slice(n));return e}function c(e){return 0>(e=parseFloat(e))?p(e):d(e)}var a,h,g=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,p=Math.ceil,d=Math.floor,m=" not a boolean or binary digit",w="rounding mode",v="number type has more than 15 significant digits",N="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",b=1e14,O=14,y=9007199254740991,S=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],R=1e7,A=1e9;if("undefined"!=typeof crypto&&(a=crypto),define.amd)define((function(){return n()}));else if("undefined"!=typeof module&&module.exports){if(module.exports=n(),!a)try{a=require("crypto")}catch(E){}}else e||(e=void 0!==self?self:Function("return this")()),e.BigNumber=n()}(this)}($nesting[0],$$("Numeric"))},Opal.modules.bigdecimal=function(Opal){var self=Opal.top,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$klass=Opal.klass,$module=Opal.module,$def=Opal.def,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$defs=(Opal.hash,Opal.defs),$const_set=Opal.const_set,$truthy=Opal.truthy,$eqeqeq=Opal.eqeqeq,$send2=Opal.send2,$find_super=Opal.find_super,$rb_lt=Opal.rb_lt,$to_ary=Opal.to_ary,$rb_gt=Opal.rb_gt,$rb_ge=Opal.rb_ge,$eqeq=Opal.eqeq,$rb_divide=Opal.rb_divide,$alias=Opal.alias;return Opal.add_stubs("require,allocate,initialize,warn,BigDecimal,===,attr_reader,new,class,bignumber,nan?,nil?,raise,<,coerce,>,mode,>=,==,/,zero?,infinite?,finite?"),$klass($nesting[0],$$("Numeric"),"BigDecimal"),self.$require("js"),self.$require("bigdecimal/bignumber"),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$BigDecimal",(function(initial,digits){var bigdecimal=nil;return null==digits&&(digits=0),(bigdecimal=$$("BigDecimal").$allocate()).$initialize(initial,digits),bigdecimal}),-2)}($nesting[0],$nesting),$defs($$("BigDecimal"),"$new",(function($a,$b){var $post_args,$kwargs,args,kwargs,self=this;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return args=$post_args,kwargs=Opal.kwrestargs($kwargs,{}),self.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.",$hash2(["uplevel"],{uplevel:1})),$send(self,"BigDecimal",$to_a(args).concat([Opal.to_hash(kwargs)]))}),-1),function($base,$super,$parent_nesting){var self=$klass($base,$super,"BigDecimal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"ROUND_MODE",256),$const_set($nesting[0],"ROUND_UP",0),$const_set($nesting[0],"ROUND_DOWN",1),$const_set($nesting[0],"ROUND_CEILING",2),$const_set($nesting[0],"ROUND_FLOOR",3),$const_set($nesting[0],"ROUND_HALF_UP",4),$const_set($nesting[0],"ROUND_HALF_DOWN",5),$const_set($nesting[0],"ROUND_HALF_EVEN",6),$const_set($nesting[0],"SIGN_NaN",0),$const_set($nesting[0],"SIGN_POSITIVE_ZERO",1),$const_set($nesting[0],"SIGN_NEGATIVE_ZERO",-1),$const_set($nesting[0],"SIGN_POSITIVE_FINITE",2),$const_set($nesting[0],"SIGN_NEGATIVE_FINITE",-2),$const_set($nesting[0],"SIGN_POSITIVE_INFINITE",3),$const_set($nesting[0],"SIGN_NEGATIVE_INFINITE",-3),$defs(self,"$limit",(function(digits){return null==this.digits&&(this.digits=nil),null==digits&&(digits=nil),$truthy(digits)&&(this.digits=digits),this.digits}),-1),$defs(self,"$mode",(function(mode,value){var $ret_or_2=nil;return null==this.round_mode&&(this.round_mode=nil),null==value&&(value=nil),$eqeqeq($$("ROUND_MODE"),mode)?($truthy(value)&&(this.round_mode=value),$truthy($ret_or_2=this.round_mode)?$ret_or_2:$$("ROUND_HALF_UP")):nil}),-2),self.$attr_reader("bignumber"),$def(self,"$initialize",(function(initial,digits){return null==digits&&(digits=0),this.bignumber=$$("JS").$new($$("BigNumber"),initial)}),-2),$def(self,"$==",(function(other){var $ret_or_1;return $eqeqeq(this.$class(),$ret_or_1=other)?this.$bignumber().equals(other.$bignumber()):!!$eqeqeq($$("Number"),$ret_or_1)&&this.$bignumber().equals(other)}),1),$def(self,"$<=>",(function(other){var result,$ret_or_1;return null===(result=$eqeqeq(this.$class(),$ret_or_1=other)?this.$bignumber().comparedTo(other.$bignumber()):$eqeqeq($$("Number"),$ret_or_1)?this.$bignumber().comparedTo(other):nil)?nil:result}),1),$def(self,"$<",(function $BigDecimal_$lt$4(other){var $yield=$BigDecimal_$lt$4.$$p||nil;return delete $BigDecimal_$lt$4.$$p,!($truthy(this["$nan?"]())||$truthy(other)&&$truthy(other["$nan?"]()))&&$send2(this,$find_super(this,"<",$BigDecimal_$lt$4,!1,!0),"<",[other],$yield)}),1),$def(self,"$<=",(function $BigDecimal_$lt_eq$5(other){var $yield=$BigDecimal_$lt_eq$5.$$p||nil;return delete $BigDecimal_$lt_eq$5.$$p,!($truthy(this["$nan?"]())||$truthy(other)&&$truthy(other["$nan?"]()))&&$send2(this,$find_super(this,"<=",$BigDecimal_$lt_eq$5,!1,!0),"<=",[other],$yield)}),1),$def(self,"$>",(function $BigDecimal_$gt$6(other){var $yield=$BigDecimal_$gt$6.$$p||nil;return delete $BigDecimal_$gt$6.$$p,!($truthy(this["$nan?"]())||$truthy(other)&&$truthy(other["$nan?"]()))&&$send2(this,$find_super(this,">",$BigDecimal_$gt$6,!1,!0),">",[other],$yield)}),1),$def(self,"$>=",(function $BigDecimal_$gt_eq$7(other){var $yield=$BigDecimal_$gt_eq$7.$$p||nil;return delete $BigDecimal_$gt_eq$7.$$p,!($truthy(this["$nan?"]())||$truthy(other)&&$truthy(other["$nan?"]()))&&$send2(this,$find_super(this,">=",$BigDecimal_$gt_eq$7,!1,!0),">=",[other],$yield)}),1),$def(self,"$abs",(function(){return this.$class().$new(this.$bignumber().abs())}),0),$def(self,"$add",(function(other,digits){var $a,$b,result=nil;return null==digits&&(digits=0),$truthy(digits["$nil?"]())&&this.$raise($$("TypeError"),"wrong argument type nil (expected Fixnum)"),$truthy($rb_lt(digits,0))&&this.$raise($$("ArgumentError"),"argument must be positive"),$b=this.$coerce(other),other=null==($a=$to_ary($b))[0]?nil:$a[0],null==$a[1]?nil:$a[1],result=this.$bignumber().plus(other.$bignumber()),$truthy($rb_gt(digits,0))&&(result=result.toDigits(digits,this.$class().$mode($$("ROUND_MODE")))),this.$class().$new(result)}),-2),$def(self,"$ceil",(function(n){return null==n&&(n=nil),$truthy(this.$bignumber().isFinite())||this.$raise($$("FloatDomainError"),"Computation results to 'Infinity'"),$truthy(n["$nil?"]())?this.$bignumber().round(0,$$("ROUND_CEILING")).toNumber():$truthy($rb_ge(n,0))?this.$class().$new(this.$bignumber().round(n,$$("ROUND_CEILING"))):this.$class().$new(this.$bignumber().round(0,$$("ROUND_CEILING")))}),-1),$def(self,"$coerce",(function(other){var $ret_or_1;return $eqeqeq(this.$class(),$ret_or_1=other)?[other,this]:$eqeqeq($$("Number"),$ret_or_1)?[this.$class().$new(other),this]:this.$raise($$("TypeError"),other.$class()+" can't be coerced into "+this.$class())}),1),$def(self,"$div",(function(other,digits){var $a,$b;return null==digits&&(digits=nil),$eqeq(digits,0)?$rb_divide(this,other):($b=this.$coerce(other),other=null==($a=$to_ary($b))[0]?nil:$a[0],null==$a[1]?nil:$a[1],($truthy(this["$nan?"]())||$truthy(other["$nan?"]()))&&this.$raise($$("FloatDomainError"),"Computation results to 'NaN'(Not a Number)"),$truthy(digits["$nil?"]())?($truthy(other["$zero?"]())&&this.$raise($$("ZeroDivisionError"),"divided by 0"),$truthy(this["$infinite?"]())&&this.$raise($$("FloatDomainError"),"Computation results to 'Infinity'"),this.$class().$new(this.$bignumber().dividedToIntegerBy(other.$bignumber()))):this.$class().$new(this.$bignumber().dividedBy(other.$bignumber()).round(digits,this.$class().$mode($$("ROUND_MODE")))))}),-2),$def(self,"$finite?",(function(){return this.$bignumber().isFinite()}),0),$def(self,"$infinite?",(function(){return $truthy(this["$finite?"]())||$truthy(this["$nan?"]())?nil:$truthy(this.$bignumber().isNegative())?-1:1}),0),$def(self,"$minus",(function(other){var $a,$b;return $b=this.$coerce(other),other=null==($a=$to_ary($b))[0]?nil:$a[0],null==$a[1]?nil:$a[1],this.$class().$new(this.$bignumber().minus(other.$bignumber()))}),1),$def(self,"$mult",(function(other,digits){var $a,$b;return null==digits&&(digits=nil),$b=this.$coerce(other),other=null==($a=$to_ary($b))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$truthy(digits["$nil?"]())?this.$class().$new(this.$bignumber().times(other.$bignumber())):this.$class().$new(this.$bignumber().times(other.$bignumber()).round(digits,this.$class().$mode($$("ROUND_MODE"))))}),-2),$def(self,"$nan?",(function(){return this.$bignumber().isNaN()}),0),$def(self,"$quo",(function(other){var $a,$b;return $b=this.$coerce(other),other=null==($a=$to_ary($b))[0]?nil:$a[0],null==$a[1]?nil:$a[1],this.$class().$new(this.$bignumber().dividedBy(other.$bignumber()))}),1),$def(self,"$sign",(function(){return $truthy(this.$bignumber().isNaN())?$$("SIGN_NaN"):$truthy(this.$bignumber().isZero())?$truthy(this.$bignumber().isNegative())?$$("SIGN_NEGATIVE_ZERO"):$$("SIGN_POSITIVE_ZERO"):nil}),0),$def(self,"$sub",(function(other,precision){var $a,$b;return $b=this.$coerce(other),other=null==($a=$to_ary($b))[0]?nil:$a[0],null==$a[1]?nil:$a[1],this.$class().$new(this.$bignumber().minus(other.$bignumber()))}),2),$def(self,"$to_f",(function(){return this.$bignumber().toNumber()}),0),$def(self,"$to_s",(function(s){return null==s&&(s=""),this.$bignumber().toString()}),-1),$def(self,"$zero?",(function(){return this.$bignumber().isZero()}),0),$alias(self,"===","=="),$alias(self,"+","add"),$alias(self,"-","minus"),$alias(self,"*","mult"),$alias(self,"/","quo"),$alias(self,"inspect","to_s")}($nesting[0],$$("Numeric"),$nesting)}; diff --git a/opal/master/bigdecimal.min.js.gz b/opal/master/bigdecimal.min.js.gz index 2d0aa7a8..8ecf64b4 100644 Binary files a/opal/master/bigdecimal.min.js.gz and b/opal/master/bigdecimal.min.js.gz differ diff --git a/opal/master/buffer.js b/opal/master/buffer.js index 2c8efd49..ace97535 100644 --- a/opal/master/buffer.js +++ b/opal/master/buffer.js @@ -1,22 +1,15 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["native"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $range = Opal.range, $alias = Opal.alias, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $gvars = Opal.gvars; - - Opal.add_stubs(['$try_convert', '$native?', '$respond_to?', '$to_n', '$raise', '$inspect', '$Native', '$proc', '$map!', '$end_with?', '$define_method', '$[]', '$convert', '$call', '$to_proc', '$new', '$each', '$native_reader', '$native_writer', '$extend', '$warn', '$include', '$is_a?', '$map', '$to_a', '$_Array', '$method_missing', '$bind', '$instance_method', '$slice', '$-', '$length', '$[]=', '$enum_for', '$===', '$>=', '$<<', '$each_pair', '$_initialize', '$name', '$native_module']); +Opal.modules["native"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $defs = Opal.defs, $truthy = Opal.truthy, $send = Opal.send, $Kernel = Opal.Kernel, $hash2 = Opal.hash2, $range = Opal.range, $to_a = Opal.to_a, $def = Opal.def, $alias = Opal.alias, $klass = Opal.klass, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super, $eqeqeq = Opal.eqeqeq, $rb_ge = Opal.rb_ge, $gvars = Opal.gvars; + + Opal.add_stubs('try_convert,native?,respond_to?,to_n,raise,inspect,Native,proc,map!,end_with?,define_method,[],convert,call,to_proc,new,each,native_reader,native_writer,extend,warn,include,is_a?,map,to_a,_Array,method_missing,bind,instance_method,slice,-,length,[]=,enum_for,===,>=,<<,each_pair,method_defined?,_initialize,name,native_module'); (function($base, $parent_nesting) { var self = $module($base, 'Native'); - var $nesting = [self].concat($parent_nesting), $Native_is_a$ques$1, $Native_try_convert$2, $Native_convert$3, $Native_call$4, $Native_proc$5, $Native_included$22; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$is_a?', $Native_is_a$ques$1 = function(object, klass) { + $defs(self, '$is_a?', function $Native_is_a$ques$1(object, klass) { var self = this; @@ -27,15 +20,13 @@ Opal.modules["native"] = function(Opal) { return false; } - }, $Native_is_a$ques$1.$$arity = 2); - Opal.defs(self, '$try_convert', $Native_try_convert$2 = function $$try_convert(value, default$) { + }, 2); + $defs(self, '$try_convert', function $$try_convert(value, default$) { var self = this; - if (default$ == null) { - default$ = nil; - }; + if (default$ == null) default$ = nil;; if (self['$native?'](value)) { return value; @@ -47,8 +38,8 @@ Opal.modules["native"] = function(Opal) { return default$; } ; - }, $Native_try_convert$2.$$arity = -2); - Opal.defs(self, '$convert', $Native_convert$3 = function $$convert(value) { + }, -2); + $defs(self, '$convert', function $$convert(value) { var self = this; @@ -59,19 +50,18 @@ Opal.modules["native"] = function(Opal) { return value.$to_n(); } else { - self.$raise($$($nesting, 'ArgumentError'), "" + (value.$inspect()) + " isn't native"); + self.$raise($$('ArgumentError'), "" + (value.$inspect()) + " isn't native"); } - }, $Native_convert$3.$$arity = 1); - Opal.defs(self, '$call', $Native_call$4 = function $$call(obj, key, $a) { - var $iter = $Native_call$4.$$p, block = $iter || nil, $post_args, args, self = this; + }, 1); + $defs(self, '$call', function $$call(obj, key, $a) { + var block = $$call.$$p || nil, $post_args, args, self = this; - if ($iter) $Native_call$4.$$p = null; - + delete $$call.$$p; - if ($iter) $Native_call$4.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 2, arguments.length); + $post_args = Opal.slice.call(arguments, 2); args = $post_args;; @@ -97,33 +87,29 @@ Opal.modules["native"] = function(Opal) { return self.$Native(prop); } ; - }, $Native_call$4.$$arity = -3); - Opal.defs(self, '$proc', $Native_proc$5 = function $$proc() { - var $iter = $Native_proc$5.$$p, block = $iter || nil, $$6, self = this; + }, -3); + $defs(self, '$proc', function $$proc() { + var block = $$proc.$$p || nil, self = this; - if ($iter) $Native_proc$5.$$p = null; - + delete $$proc.$$p; - if ($iter) $Native_proc$5.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'LocalJumpError'), "no block given") + ; + if (!$truthy(block)) { + self.$raise($$('LocalJumpError'), "no block given") }; - return $send($$$('::', 'Kernel'), 'proc', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, args, $$7, instance = nil; + return $send($Kernel, 'proc', [], function $$2($a){var $post_args, args, self = $$2.$$s == null ? this : $$2.$$s, instance = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - $send(args, 'map!', [], ($$7 = function(arg){var self = $$7.$$s == null ? this : $$7.$$s; + $send(args, 'map!', [], function $$3(arg){var self = $$3.$$s == null ? this : $$3.$$s; - if (arg == null) { - arg = nil; - }; - return self.$Native(arg);}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + if (arg == null) arg = nil;; + return self.$Native(arg);}, {$$arity: 1, $$s: self}); instance = self.$Native(this); // if global is current scope, run the block in the scope it was defined @@ -140,22 +126,22 @@ Opal.modules["native"] = function(Opal) { finally { block.$$s = self_; } - ;}, $$6.$$s = self, $$6.$$arity = -1, $$6)); - }, $Native_proc$5.$$arity = 0); + ;}, {$$arity: -1, $$s: self}); + }, 0); (function($base, $parent_nesting) { var self = $module($base, 'Helpers'); - var $nesting = [self].concat($parent_nesting), $Helpers_alias_native$8, $Helpers_native_reader$12, $Helpers_native_writer$15, $Helpers_native_accessor$18; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$alias_native', $Helpers_alias_native$8 = function $$alias_native(new$, $a, $b) { - var $post_args, $kwargs, old, as, $$9, $$10, $$11, $iter = $Helpers_alias_native$8.$$p, $yield = $iter || nil, self = this; + $def(self, '$alias_native', function $$alias_native(new$, $a, $b) { + var $post_args, $kwargs, old, as, $yield = $$alias_native.$$p || nil, self = this; - if ($iter) $Helpers_alias_native$8.$$p = null; + delete $$alias_native.$$p; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); $kwargs = Opal.extract_kwargs($post_args); @@ -165,250 +151,227 @@ Opal.modules["native"] = function(Opal) { throw Opal.ArgumentError.$new('expected kwargs'); }; - if ($post_args.length > 0) { - old = $post_args[0]; - $post_args.splice(0, 1); - } - if (old == null) { - old = new$; - }; + if ($post_args.length > 0) old = $post_args.shift(); + if (old == null) old = new$;; as = $kwargs.$$smap["as"]; - if (as == null) { - as = nil - }; + if (as == null) as = nil; if ($truthy(old['$end_with?']("="))) { - return $send(self, 'define_method', [new$], ($$9 = function(value){var self = $$9.$$s == null ? this : $$9.$$s; + return $send(self, 'define_method', [new$], function $$4(value){var self = $$4.$$s == null ? this : $$4.$$s; if (self["native"] == null) self["native"] = nil; - if (value == null) { - value = nil; - }; - self["native"][old['$[]']($range(0, -2, false))] = $$($nesting, 'Native').$convert(value); - return value;}, $$9.$$s = self, $$9.$$arity = 1, $$9)) + if (value == null) value = nil;; + self["native"][old['$[]']($range(0, -2, false))] = $$('Native').$convert(value); + return value;}, {$$arity: 1, $$s: self}) } else if ($truthy(as)) { - return $send(self, 'define_method', [new$], ($$10 = function($c){var self = $$10.$$s == null ? this : $$10.$$s, $iter = $$10.$$p, block = $iter || nil, $post_args, args, value = nil; + return $send(self, 'define_method', [new$], function $$5($c){var block = $$5.$$p || nil, $post_args, args, self = $$5.$$s == null ? this : $$5.$$s, value = nil; if (self["native"] == null) self["native"] = nil; + delete $$5.$$p; + ; - if ($iter) $$10.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - value = $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc()); + value = $send($$('Native'), 'call', [self["native"], old].concat($to_a(args)), block.$to_proc()); if ($truthy(value)) { return as.$new(value.$to_n()) } else { return nil - };}, $$10.$$s = self, $$10.$$arity = -1, $$10)) + };}, {$$arity: -1, $$s: self}) } else { - return $send(self, 'define_method', [new$], ($$11 = function($c){var self = $$11.$$s == null ? this : $$11.$$s, $iter = $$11.$$p, block = $iter || nil, $post_args, args; + return $send(self, 'define_method', [new$], function $$6($c){var block = $$6.$$p || nil, $post_args, args, self = $$6.$$s == null ? this : $$6.$$s; if (self["native"] == null) self["native"] = nil; + delete $$6.$$p; + ; - if ($iter) $$11.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc());}, $$11.$$s = self, $$11.$$arity = -1, $$11)) + return $send($$('Native'), 'call', [self["native"], old].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) }; - }, $Helpers_alias_native$8.$$arity = -2); + }, -2); - Opal.def(self, '$native_reader', $Helpers_native_reader$12 = function $$native_reader($a) { - var $post_args, names, $$13, self = this; + $def(self, '$native_reader', function $$native_reader($a) { + var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - return $send(names, 'each', [], ($$13 = function(name){var self = $$13.$$s == null ? this : $$13.$$s, $$14; + return $send(names, 'each', [], function $$7(name){var self = $$7.$$s == null ? this : $$7.$$s; - if (name == null) { - name = nil; - }; - return $send(self, 'define_method', [name], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s; + if (name == null) name = nil;; + return $send(self, 'define_method', [name], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; if (self["native"] == null) self["native"] = nil; - return self.$Native(self["native"][name])}, $$14.$$s = self, $$14.$$arity = 0, $$14));}, $$13.$$s = self, $$13.$$arity = 1, $$13)); - }, $Helpers_native_reader$12.$$arity = -1); + return self.$Native(self["native"][name])}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$native_writer', $Helpers_native_writer$15 = function $$native_writer($a) { - var $post_args, names, $$16, self = this; + $def(self, '$native_writer', function $$native_writer($a) { + var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - return $send(names, 'each', [], ($$16 = function(name){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + return $send(names, 'each', [], function $$9(name){var self = $$9.$$s == null ? this : $$9.$$s; - if (name == null) { - name = nil; - }; - return $send(self, 'define_method', ["" + (name) + "="], ($$17 = function(value){var self = $$17.$$s == null ? this : $$17.$$s; + if (name == null) name = nil;; + return $send(self, 'define_method', ["" + (name) + "="], function $$10(value){var self = $$10.$$s == null ? this : $$10.$$s; if (self["native"] == null) self["native"] = nil; - if (value == null) { - value = nil; - }; - return self.$Native(self["native"][name] = value);}, $$17.$$s = self, $$17.$$arity = 1, $$17));}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - }, $Helpers_native_writer$15.$$arity = -1); - return (Opal.def(self, '$native_accessor', $Helpers_native_accessor$18 = function $$native_accessor($a) { + if (value == null) value = nil;; + return self.$Native(self["native"][name] = value);}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + }, -1); + return $def(self, '$native_accessor', function $$native_accessor($a) { var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - $send(self, 'native_reader', Opal.to_a(names)); - return $send(self, 'native_writer', Opal.to_a(names)); - }, $Helpers_native_accessor$18.$$arity = -1), nil) && 'native_accessor'; + $send(self, 'native_reader', $to_a(names)); + return $send(self, 'native_writer', $to_a(names)); + }, -1); })($nesting[0], $nesting); (function($base, $parent_nesting) { var self = $module($base, 'Wrapper'); - var $nesting = [self].concat($parent_nesting), $Wrapper_initialize$19, $Wrapper_to_n$20, $Wrapper_included$21; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$initialize', $Wrapper_initialize$19 = function $$initialize(native$) { + $def(self, '$initialize', function $$initialize(native$) { var self = this; - if ($truthy($$$('::', 'Kernel')['$native?'](native$))) { - } else { - $$$('::', 'Kernel').$raise($$($nesting, 'ArgumentError'), "" + (native$.$inspect()) + " isn't native") + if (!$truthy($Kernel['$native?'](native$))) { + $Kernel.$raise($$('ArgumentError'), "" + (native$.$inspect()) + " isn't native") }; return (self["native"] = native$); - }, $Wrapper_initialize$19.$$arity = 1); + }, 1); - Opal.def(self, '$to_n', $Wrapper_to_n$20 = function $$to_n() { + $def(self, '$to_n', function $$to_n() { var self = this; if (self["native"] == null) self["native"] = nil; return self["native"] - }, $Wrapper_to_n$20.$$arity = 0); - return (Opal.defs(self, '$included', $Wrapper_included$21 = function $$included(klass) { - var self = this; - - return klass.$extend($$($nesting, 'Helpers')) - }, $Wrapper_included$21.$$arity = 1), nil) && 'included'; + }, 0); + return $defs(self, '$included', function $$included(klass) { + + return klass.$extend($$('Helpers')) + }, 1); })($nesting[0], $nesting); - return (Opal.defs(self, '$included', $Native_included$22 = function $$included(base) { + return $defs(self, '$included', function $$included(base) { var self = this; self.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."); - return base.$include($$($nesting, 'Wrapper')); - }, $Native_included$22.$$arity = 1), nil) && 'included'; + return base.$include($$('Wrapper')); + }, 1); })($nesting[0], $nesting); (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_native$ques$23, $Kernel_Native$24, $Kernel_Array$27; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$native?', $Kernel_native$ques$23 = function(value) { - var self = this; - + $def(self, '$native?', function $Kernel_native$ques$11(value) { + return value == null || !value.$$class; - }, $Kernel_native$ques$23.$$arity = 1); + }, 1); - Opal.def(self, '$Native', $Kernel_Native$24 = function $$Native(obj) { - var $$25, $$26, $iter = $Kernel_Native$24.$$p, $yield = $iter || nil, self = this; + $def(self, '$Native', function $$Native(obj) { + var $yield = $$Native.$$p || nil, self = this; - if ($iter) $Kernel_Native$24.$$p = null; + delete $$Native.$$p; if ($truthy(obj == null)) { return nil } else if ($truthy(self['$native?'](obj))) { - return $$$($$($nesting, 'Native'), 'Object').$new(obj) - } else if ($truthy(obj['$is_a?']($$($nesting, 'Array')))) { - return $send(obj, 'map', [], ($$25 = function(o){var self = $$25.$$s == null ? this : $$25.$$s; + return $$$($$('Native'), 'Object').$new(obj) + } else if ($truthy(obj['$is_a?']($$('Array')))) { + return $send(obj, 'map', [], function $$12(o){var self = $$12.$$s == null ? this : $$12.$$s; - if (o == null) { - o = nil; - }; - return self.$Native(o);}, $$25.$$s = self, $$25.$$arity = 1, $$25)) - } else if ($truthy(obj['$is_a?']($$($nesting, 'Proc')))) { - return $send(self, 'proc', [], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $iter = $$26.$$p, block = $iter || nil, $post_args, args; + if (o == null) o = nil;; + return self.$Native(o);}, {$$arity: 1, $$s: self}) + } else if ($truthy(obj['$is_a?']($$('Proc')))) { + return $send(self, 'proc', [], function $$13($a){var block = $$13.$$p || nil, $post_args, args, self = $$13.$$s == null ? this : $$13.$$s; + delete $$13.$$p; + ; - if ($iter) $$26.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return self.$Native($send(obj, 'call', Opal.to_a(args), block.$to_proc()));}, $$26.$$s = self, $$26.$$arity = -1, $$26)) + return self.$Native($send(obj, 'call', $to_a(args), block.$to_proc()));}, {$$arity: -1, $$s: self}) } else { return obj } - }, $Kernel_Native$24.$$arity = 1); + }, 1); $alias(self, "_Array", "Array"); - return (Opal.def(self, '$Array', $Kernel_Array$27 = function $$Array(object, $a) { - var $iter = $Kernel_Array$27.$$p, block = $iter || nil, $post_args, args, self = this; + return $def(self, '$Array', function $$Array(object, $a) { + var block = $$Array.$$p || nil, $post_args, args, self = this; - if ($iter) $Kernel_Array$27.$$p = null; + delete $$Array.$$p; + ; - if ($iter) $Kernel_Array$27.$$p = null;; - - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy(self['$native?'](object))) { - return $send($$$($$($nesting, 'Native'), 'Array'), 'new', [object].concat(Opal.to_a(args)), block.$to_proc()).$to_a()}; + return $send($$$($$('Native'), 'Array'), 'new', [object].concat($to_a(args)), block.$to_proc()).$to_a() + }; return self.$_Array(object); - }, $Kernel_Array$27.$$arity = -2), nil) && 'Array'; + }, -2); })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Object'); - var $nesting = [self].concat($parent_nesting), $Object_$eq_eq$28, $Object_has_key$ques$29, $Object_each$30, $Object_$$$31, $Object_$$$eq$32, $Object_merge$excl$33, $Object_respond_to$ques$34, $Object_respond_to_missing$ques$35, $Object_method_missing$36, $Object_nil$ques$37, $Object_is_a$ques$38, $Object_instance_of$ques$39, $Object_class$40, $Object_to_a$41, $Object_inspect$42; + var $proto = self.$$prototype; - self.$$prototype["native"] = nil; + $proto["native"] = nil; - self.$include($$$($$$('::', 'Native'), 'Wrapper')); + self.$include($$$($$$('Native'), 'Wrapper')); - Opal.def(self, '$==', $Object_$eq_eq$28 = function(other) { + $def(self, '$==', function $Object_$eq_eq$14(other) { var self = this; - return self["native"] === $$$('::', 'Native').$try_convert(other) - }, $Object_$eq_eq$28.$$arity = 1); + return self["native"] === $$$('Native').$try_convert(other) + }, 1); - Opal.def(self, '$has_key?', $Object_has_key$ques$29 = function(name) { + $def(self, '$has_key?', function $Object_has_key$ques$15(name) { var self = this; return Opal.hasOwnProperty.call(self["native"], name) - }, $Object_has_key$ques$29.$$arity = 1); - $alias(self, "key?", "has_key?"); - $alias(self, "include?", "has_key?"); - $alias(self, "member?", "has_key?"); + }, 1); - Opal.def(self, '$each', $Object_each$30 = function $$each($a) { - var $post_args, args, $iter = $Object_each$30.$$p, $yield = $iter || nil, self = this; + $def(self, '$each', function $$each($a) { + var $post_args, args, $yield = $$each.$$p || nil, self = this; - if ($iter) $Object_each$30.$$p = null; + delete $$each.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if (($yield !== nil)) { @@ -420,11 +383,11 @@ Opal.modules["native"] = function(Opal) { ; return self; } else { - return $send(self, 'method_missing', ["each"].concat(Opal.to_a(args))) + return $send(self, 'method_missing', ["each"].concat($to_a(args))) }; - }, $Object_each$30.$$arity = -1); + }, -1); - Opal.def(self, '$[]', $Object_$$$31 = function(key) { + $def(self, '$[]', function $Object_$$$16(key) { var self = this; @@ -434,179 +397,157 @@ Opal.modules["native"] = function(Opal) { return prop; } else { - return $$$('::', 'Native').$call(self["native"], key) + return $$$('Native').$call(self["native"], key) } - }, $Object_$$$31.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Object_$$$eq$32 = function(key, value) { + $def(self, '$[]=', function $Object_$$$eq$17(key, value) { var self = this, native$ = nil; - native$ = $$$('::', 'Native').$try_convert(value); + native$ = $$$('Native').$try_convert(value); if ($truthy(native$ === nil)) { return self["native"][key] = value } else { return self["native"][key] = native$ }; - }, $Object_$$$eq$32.$$arity = 2); + }, 2); - Opal.def(self, '$merge!', $Object_merge$excl$33 = function(other) { + $def(self, '$merge!', function $Object_merge$excl$18(other) { var self = this; - other = $$$('::', 'Native').$convert(other); + other = $$$('Native').$convert(other); for (var prop in other) { self["native"][prop] = other[prop]; } ; return self; - }, $Object_merge$excl$33.$$arity = 1); + }, 1); - Opal.def(self, '$respond_to?', $Object_respond_to$ques$34 = function(name, include_all) { + $def(self, '$respond_to?', function $Object_respond_to$ques$19(name, include_all) { var self = this; - if (include_all == null) { - include_all = false; - }; - return $$$('::', 'Kernel').$instance_method("respond_to?").$bind(self).$call(name, include_all); - }, $Object_respond_to$ques$34.$$arity = -2); + if (include_all == null) include_all = false;; + return $Kernel.$instance_method("respond_to?").$bind(self).$call(name, include_all); + }, -2); - Opal.def(self, '$respond_to_missing?', $Object_respond_to_missing$ques$35 = function(name, include_all) { + $def(self, '$respond_to_missing?', function $Object_respond_to_missing$ques$20(name, include_all) { var self = this; - if (include_all == null) { - include_all = false; - }; + if (include_all == null) include_all = false;; return Opal.hasOwnProperty.call(self["native"], name); - }, $Object_respond_to_missing$ques$35.$$arity = -2); + }, -2); - Opal.def(self, '$method_missing', $Object_method_missing$36 = function $$method_missing(mid, $a) { - var $iter = $Object_method_missing$36.$$p, block = $iter || nil, $post_args, args, self = this, $writer = nil; + $def(self, '$method_missing', function $$method_missing(mid, $a) { + var block = $$method_missing.$$p || nil, $post_args, args, self = this, $writer = nil; - if ($iter) $Object_method_missing$36.$$p = null; - + delete $$method_missing.$$p; - if ($iter) $Object_method_missing$36.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if (mid.charAt(mid.length - 1) === '=') { - return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); + return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); } else { - return $send($$$('::', 'Native'), 'call', [self["native"], mid].concat(Opal.to_a(args)), block.$to_proc()); + return $send($$$('Native'), 'call', [self["native"], mid].concat($to_a(args)), block.$to_proc()); } ; - }, $Object_method_missing$36.$$arity = -2); + }, -2); - Opal.def(self, '$nil?', $Object_nil$ques$37 = function() { - var self = this; - + $def(self, '$nil?', function $Object_nil$ques$21() { + return false - }, $Object_nil$ques$37.$$arity = 0); + }, 0); - Opal.def(self, '$is_a?', $Object_is_a$ques$38 = function(klass) { + $def(self, '$is_a?', function $Object_is_a$ques$22(klass) { var self = this; return Opal.is_a(self, klass); - }, $Object_is_a$ques$38.$$arity = 1); - $alias(self, "kind_of?", "is_a?"); + }, 1); - Opal.def(self, '$instance_of?', $Object_instance_of$ques$39 = function(klass) { + $def(self, '$instance_of?', function $Object_instance_of$ques$23(klass) { var self = this; return self.$$class === klass; - }, $Object_instance_of$ques$39.$$arity = 1); + }, 1); - Opal.def(self, '$class', $Object_class$40 = function() { + $def(self, '$class', function $Object_class$24() { var self = this; return self.$$class; - }, $Object_class$40.$$arity = 0); + }, 0); - Opal.def(self, '$to_a', $Object_to_a$41 = function $$to_a(options) { - var $iter = $Object_to_a$41.$$p, block = $iter || nil, self = this; + $def(self, '$to_a', function $$to_a(options) { + var block = $$to_a.$$p || nil, self = this; - if ($iter) $Object_to_a$41.$$p = null; + delete $$to_a.$$p; + ; - if ($iter) $Object_to_a$41.$$p = null;; - - if (options == null) { - options = $hash2([], {}); - }; - return $send($$$($$$('::', 'Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); - }, $Object_to_a$41.$$arity = -1); - return (Opal.def(self, '$inspect', $Object_inspect$42 = function $$inspect() { + if (options == null) options = $hash2([], {});; + return $send($$$($$$('Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); + }, -1); + + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Object_inspect$42.$$arity = 0), nil) && 'inspect'; - })($$($nesting, 'Native'), $$($nesting, 'BasicObject'), $nesting); + return "#" + }, 0); + $alias(self, "include?", "has_key?"); + $alias(self, "key?", "has_key?"); + $alias(self, "kind_of?", "is_a?"); + return $alias(self, "member?", "has_key?"); + })($$('Native'), $$('BasicObject')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_initialize$43, $Array_each$44, $Array_$$$45, $Array_$$$eq$46, $Array_last$47, $Array_length$48, $Array_inspect$49; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.named = self.$$prototype["native"] = self.$$prototype.get = self.$$prototype.block = self.$$prototype.set = self.$$prototype.length = nil; + $proto.named = $proto["native"] = $proto.get = $proto.block = $proto.set = $proto.length = nil; - self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - self.$include($$($nesting, 'Enumerable')); + self.$include($$$($$('Native'), 'Wrapper')); + self.$include($$('Enumerable')); - Opal.def(self, '$initialize', $Array_initialize$43 = function $$initialize(native$, options) { - var $iter = $Array_initialize$43.$$p, block = $iter || nil, self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $def(self, '$initialize', function $$initialize(native$, options) { + var block = $$initialize.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $Array_initialize$43.$$p = null; - + delete $$initialize.$$p; - if ($iter) $Array_initialize$43.$$p = null;; + ; - if (options == null) { - options = $hash2([], {}); - }; - $send2(self, $find_super(self, 'initialize', $Array_initialize$43, false, true), 'initialize', [native$], null); - self.get = (function() {if ($truthy(($ret_or_1 = options['$[]']("get")))) { - return $ret_or_1 - } else { - return options['$[]']("access") - }; return nil; })(); + if (options == null) options = $hash2([], {});; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [native$], null); + self.get = ($truthy(($ret_or_1 = options['$[]']("get"))) ? ($ret_or_1) : (options['$[]']("access"))); self.named = options['$[]']("named"); - self.set = (function() {if ($truthy(($ret_or_2 = options['$[]']("set")))) { - return $ret_or_2 - } else { - return options['$[]']("access") - }; return nil; })(); - self.length = (function() {if ($truthy(($ret_or_3 = options['$[]']("length")))) { - return $ret_or_3 - } else { - return "length" - }; return nil; })(); + self.set = ($truthy(($ret_or_1 = options['$[]']("set"))) ? ($ret_or_1) : (options['$[]']("access"))); + self.length = ($truthy(($ret_or_1 = options['$[]']("length"))) ? ($ret_or_1) : ("length")); self.block = block; if ($truthy(self.$length() == null)) { - return self.$raise($$($nesting, 'ArgumentError'), "no length found on the array-like object") + return self.$raise($$('ArgumentError'), "no length found on the array-like object") } else { return nil }; - }, $Array_initialize$43.$$arity = -2); + }, -2); - Opal.def(self, '$each', $Array_each$44 = function $$each() { - var $iter = $Array_each$44.$$p, block = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Array_each$44.$$p = null; - + delete $$each.$$p; - if ($iter) $Array_each$44.$$p = null;; - if ($truthy(block)) { - } else { + ; + if (!$truthy(block)) { return self.$enum_for("each") }; @@ -615,24 +556,13 @@ Opal.modules["native"] = function(Opal) { } ; return self; - }, $Array_each$44.$$arity = 0); + }, 0); - Opal.def(self, '$[]', $Array_$$$45 = function(index) { - var self = this, result = nil, $case = nil; + $def(self, '$[]', function $Array_$$$25(index) { + var self = this, result = nil, $ret_or_1 = nil; - result = (function() {$case = index; - if ($$($nesting, 'String')['$===']($case) || $$($nesting, 'Symbol')['$===']($case)) {if ($truthy(self.named)) { - return self["native"][self.named](index) - } else { - return self["native"][index] - }} - else if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy(self.get)) { - return self["native"][self.get](index) - } else { - return self["native"][index] - }} - else { return nil }})(); + result = (($eqeqeq($$('String'), ($ret_or_1 = index)) || ($eqeqeq($$('Symbol'), $ret_or_1))) ? (($truthy(self.named) ? (self["native"][self.named](index)) : (self["native"][index]))) : ($eqeqeq($$('Integer'), $ret_or_1) ? (($truthy(self.get) ? (self["native"][self.get](index)) : (self["native"][index]))) : (nil))); if ($truthy(result)) { if ($truthy(self.block)) { return self.block.$call(result) @@ -642,26 +572,24 @@ Opal.modules["native"] = function(Opal) { } else { return nil }; - }, $Array_$$$45.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Array_$$$eq$46 = function(index, value) { + $def(self, '$[]=', function $Array_$$$eq$26(index, value) { var self = this; if ($truthy(self.set)) { - return self["native"][self.set](index, $$($nesting, 'Native').$convert(value)) + return self["native"][self.set](index, $$('Native').$convert(value)) } else { - return self["native"][index] = $$($nesting, 'Native').$convert(value) + return self["native"][index] = $$('Native').$convert(value) } - }, $Array_$$$eq$46.$$arity = 2); + }, 2); - Opal.def(self, '$last', $Array_last$47 = function $$last(count) { + $def(self, '$last', function $$last(count) { var $a, self = this, index = nil, result = nil; - if (count == null) { - count = nil; - }; + if (count == null) count = nil;; if ($truthy(count)) { index = $rb_minus(self.$length(), 1); @@ -675,107 +603,99 @@ Opal.modules["native"] = function(Opal) { } else { return self['$[]']($rb_minus(self.$length(), 1)) }; - }, $Array_last$47.$$arity = -1); + }, -1); - Opal.def(self, '$length', $Array_length$48 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self["native"][self.length] - }, $Array_length$48.$$arity = 0); - $alias(self, "to_ary", "to_a"); - return (Opal.def(self, '$inspect', $Array_inspect$49 = function $$inspect() { + }, 0); + + $def(self, '$inspect', function $$inspect() { var self = this; return self.$to_a().$inspect() - }, $Array_inspect$49.$$arity = 0), nil) && 'inspect'; - })($$($nesting, 'Native'), null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + return $alias(self, "to_ary", "to_a"); + })($$('Native'), null, $nesting); + (function($base, $super) { var self = $klass($base, $super, 'Numeric'); - var $nesting = [self].concat($parent_nesting), $Numeric_to_n$50; - - return (Opal.def(self, '$to_n', $Numeric_to_n$50 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Numeric_to_n$50.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Proc'); - var $nesting = [self].concat($parent_nesting), $Proc_to_n$51; - - return (Opal.def(self, '$to_n', $Proc_to_n$51 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self - }, $Proc_to_n$51.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_to_n$52; - - return (Opal.def(self, '$to_n', $String_to_n$52 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $String_to_n$52.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Regexp'); - var $nesting = [self].concat($parent_nesting), $Regexp_to_n$53; - - return (Opal.def(self, '$to_n', $Regexp_to_n$53 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Regexp_to_n$53.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'MatchData'); - var $nesting = [self].concat($parent_nesting), $MatchData_to_n$54; + var $proto = self.$$prototype; - self.$$prototype.matches = nil; - return (Opal.def(self, '$to_n', $MatchData_to_n$54 = function $$to_n() { + $proto.matches = nil; + return $def(self, '$to_n', function $$to_n() { var self = this; return self.matches - }, $MatchData_to_n$54.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); + }, 0) + })($nesting[0], null); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Struct'); - var $nesting = [self].concat($parent_nesting), $Struct_to_n$55; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_n', $Struct_to_n$55 = function $$to_n() { - var $$56, self = this, result = nil; + return $def(self, '$to_n', function $$to_n() { + var self = this, result = nil; result = {}; - $send(self, 'each_pair', [], ($$56 = function(name, value){var self = $$56.$$s == null ? this : $$56.$$s; - + $send(self, 'each_pair', [], function $$27(name, value){ - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (value == null) { - value = nil; - }; - return result[name] = $$($nesting, 'Native').$try_convert(value, value);}, $$56.$$s = self, $$56.$$arity = 2, $$56)); + if (value == null) value = nil;; + return result[name] = $$('Native').$try_convert(value, value);}, 2); return result; - }, $Struct_to_n$55.$$arity = 0), nil) && 'to_n' + }, 0) })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_to_n$57; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_n', $Array_to_n$57 = function $$to_n() { + return $def(self, '$to_n', function $$to_n() { var self = this; @@ -784,172 +704,167 @@ Opal.modules["native"] = function(Opal) { for (var i = 0, length = self.length; i < length; i++) { var obj = self[i]; - result.push($$($nesting, 'Native').$try_convert(obj, obj)); + result.push($$('Native').$try_convert(obj, obj)); } return result; - }, $Array_to_n$57.$$arity = 0), nil) && 'to_n' + }, 0) })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Boolean'); - var $nesting = [self].concat($parent_nesting), $Boolean_to_n$58; - - return (Opal.def(self, '$to_n', $Boolean_to_n$58 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Boolean_to_n$58.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Time'); - var $nesting = [self].concat($parent_nesting), $Time_to_n$59; - - return (Opal.def(self, '$to_n', $Time_to_n$59 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self - }, $Time_to_n$59.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'NilClass'); - var $nesting = [self].concat($parent_nesting), $NilClass_to_n$60; - - return (Opal.def(self, '$to_n', $NilClass_to_n$60 = function $$to_n() { - var self = this; - + + return $def(self, '$to_n', function $$to_n() { + return null; - }, $NilClass_to_n$60.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Hash'); + }, 0) + })($nesting[0], null); + if (!$truthy($$('Hash')['$method_defined?']("_initialize"))) { + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hash'); - var $nesting = [self].concat($parent_nesting), $Hash_initialize$61, $Hash_to_n$62; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - - $alias(self, "_initialize", "initialize"); - - Opal.def(self, '$initialize', $Hash_initialize$61 = function $$initialize(defaults) { - var $iter = $Hash_initialize$61.$$p, block = $iter || nil, self = this; - - if ($iter) $Hash_initialize$61.$$p = null; + $alias(self, "_initialize", "initialize"); - if ($iter) $Hash_initialize$61.$$p = null;; - ; - - if (defaults != null && - (defaults.constructor === undefined || - defaults.constructor === Object)) { - var smap = self.$$smap, - keys = self.$$keys, - key, value; + $def(self, '$initialize', function $$initialize(defaults) { + var block = $$initialize.$$p || nil, self = this; - for (key in defaults) { - value = defaults[key]; - - if (value && - (value.constructor === undefined || - value.constructor === Object)) { - smap[key] = $$($nesting, 'Hash').$new(value); - } else if (value && value.$$is_array) { - value = value.map(function(item) { - if (item && - (item.constructor === undefined || - item.constructor === Object)) { - return $$($nesting, 'Hash').$new(item); - } - - return self.$Native(item); - }); - smap[key] = value - } else { - smap[key] = self.$Native(value); + delete $$initialize.$$p; + + ; + ; + + if (defaults != null && + (defaults.constructor === undefined || + defaults.constructor === Object)) { + var smap = self.$$smap, + keys = self.$$keys, + key, value; + + for (key in defaults) { + value = defaults[key]; + + if (value && + (value.constructor === undefined || + value.constructor === Object)) { + smap[key] = $$('Hash').$new(value); + } else if (value && value.$$is_array) { + value = value.map(function(item) { + if (item && + (item.constructor === undefined || + item.constructor === Object)) { + return $$('Hash').$new(item); + } + + return self.$Native(item); + }); + smap[key] = value + } else { + smap[key] = self.$Native(value); + } + + keys.push(key); } - keys.push(key); + return self; } - return self; - } + return $send(self, '_initialize', [defaults], block.$to_proc()); + ; + }, -1); + return $def(self, '$to_n', function $$to_n() { + var self = this; - return $send(self, '_initialize', [defaults], block.$to_proc()); - ; - }, $Hash_initialize$61.$$arity = -1); - return (Opal.def(self, '$to_n', $Hash_to_n$62 = function $$to_n() { - var self = this; + + var result = {}, + keys = self.$$keys, + smap = self.$$smap, + key, value; - - var result = {}, - keys = self.$$keys, - smap = self.$$smap, - key, value; + for (var i = 0, length = keys.length; i < length; i++) { + key = keys[i]; - for (var i = 0, length = keys.length; i < length; i++) { - key = keys[i]; + if (key.$$is_string) { + value = smap[key]; + } else { + key = key.key; + value = key.value; + } - if (key.$$is_string) { - value = smap[key]; - } else { - key = key.key; - value = key.value; + result[key] = $$('Native').$try_convert(value, value); } - result[key] = $$($nesting, 'Native').$try_convert(value, value); - } - - return result; - - }, $Hash_to_n$62.$$arity = 0), nil) && 'to_n'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + return result; + + }, 0); + })($nesting[0], null, $nesting) + }; + (function($base, $super) { var self = $klass($base, $super, 'Module'); - var $nesting = [self].concat($parent_nesting), $Module_native_module$63; - - return (Opal.def(self, '$native_module', $Module_native_module$63 = function $$native_module() { + + return $def(self, '$native_module', function $$native_module() { var self = this; return Opal.global[self.$name()] = self - }, $Module_native_module$63.$$arity = 0), nil) && 'native_module' - })($nesting[0], null, $nesting); + }, 0) + })($nesting[0], null); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Class'); - var $nesting = [self].concat($parent_nesting), $Class_native_alias$64, $Class_native_class$65; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$native_alias', $Class_native_alias$64 = function $$native_alias(new_jsid, existing_mid) { + $def(self, '$native_alias', function $$native_alias(new_jsid, existing_mid) { var self = this; var aliased = self.prototype['$' + existing_mid]; if (!aliased) { - self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); + self.$raise($$('NameError').$new("undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); } self.prototype[new_jsid] = aliased; - }, $Class_native_alias$64.$$arity = 2); - return (Opal.def(self, '$native_class', $Class_native_class$65 = function $$native_class() { + }, 2); + return $def(self, '$native_class', function $$native_class() { var self = this; self.$native_module(); return self["new"] = self.$new;; - }, $Class_native_class$65.$$arity = 0), nil) && 'native_class'; + }, 0); })($nesting[0], null, $nesting); return ($gvars.$ = ($gvars.global = self.$Native(Opal.global))); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["buffer/array"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $alias = Opal.alias; +Opal.modules["buffer/array"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $defs = Opal.defs, $eqeq = Opal.eqeq, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$include', '$[]', '$name_for', '$attr_reader', '$==', '$for', '$to_n', '$enum_for']); + Opal.add_stubs('include,[],name_for,attr_reader,==,for,to_n,enum_for'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Buffer'); @@ -958,86 +873,78 @@ Opal.modules["buffer/array"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_for$1, $Array_initialize$2, $Array_bits$3, $Array_$$$4, $Array_$$$eq$5, $Array_bytesize$6, $Array_each$7, $Array_length$8, $Array_merge$excl$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype["native"] = nil; + $proto["native"] = nil; - self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - Opal.defs(self, '$for', $Array_for$1 = function(bits, type) { - var self = this; - if ($gvars.$ == null) $gvars.$ = nil; + self.$include($$$($$('Native'), 'Wrapper')); + $defs(self, '$for', function $Array_for$1(bits, type) { + if ($gvars.$ == null) $gvars.$ = nil; - return $gvars.$['$[]']("" + ($$($nesting, 'Buffer').$name_for(bits, type)) + "Array") - }, $Array_for$1.$$arity = 2); - self.$include($$($nesting, 'Enumerable')); + return $gvars.$['$[]']("" + ($$('Buffer').$name_for(bits, type)) + "Array") + }, 2); + self.$include($$('Enumerable')); self.$attr_reader("buffer", "type"); - Opal.def(self, '$initialize', $Array_initialize$2 = function $$initialize(buffer, bits, type) { - var $iter = $Array_initialize$2.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(buffer, bits, type) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Array_initialize$2.$$p = null; + delete $$initialize.$$p; - if (bits == null) { - bits = nil; - }; + if (bits == null) bits = nil;; - if (type == null) { - type = nil; - }; - if ($$($nesting, 'Native')['$=='](buffer)) { - $send2(self, $find_super(self, 'initialize', $Array_initialize$2, false, true), 'initialize', [buffer], null) + if (type == null) type = nil;; + if ($eqeq($$('Native'), buffer)) { + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [buffer], null) } else { - var klass = $$($nesting, 'Array').$for(bits, type); + var klass = $$('Array').$for(bits, type); - $send2(self, $find_super(self, 'initialize', $Array_initialize$2, false, true), 'initialize', [new klass(buffer.$to_n())], null) + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new klass(buffer.$to_n())], null) }; self.buffer = buffer; return (self.type = type); - }, $Array_initialize$2.$$arity = -2); + }, -2); - Opal.def(self, '$bits', $Array_bits$3 = function $$bits() { + $def(self, '$bits', function $$bits() { var self = this; return self["native"].BYTES_PER_ELEMENT * 8 - }, $Array_bits$3.$$arity = 0); + }, 0); - Opal.def(self, '$[]', $Array_$$$4 = function(index, offset) { + $def(self, '$[]', function $Array_$$$2(index, offset) { var self = this; - if (offset == null) { - offset = nil; - }; + if (offset == null) offset = nil;; if ($truthy(offset)) { return self["native"].subarray(index, offset) } else { return self["native"][index] }; - }, $Array_$$$4.$$arity = -2); + }, -2); - Opal.def(self, '$[]=', $Array_$$$eq$5 = function(index, value) { + $def(self, '$[]=', function $Array_$$$eq$3(index, value) { var self = this; return self["native"][index] = value - }, $Array_$$$eq$5.$$arity = 2); + }, 2); - Opal.def(self, '$bytesize', $Array_bytesize$6 = function $$bytesize() { + $def(self, '$bytesize', function $$bytesize() { var self = this; return self["native"].byteLength - }, $Array_bytesize$6.$$arity = 0); + }, 0); - Opal.def(self, '$each', $Array_each$7 = function $$each() { - var $iter = $Array_each$7.$$p, $yield = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var $yield = $$each.$$p || nil, self = this; - if ($iter) $Array_each$7.$$p = null; + delete $$each.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$enum_for("each") }; @@ -1046,31 +953,30 @@ Opal.modules["buffer/array"] = function(Opal) { } ; return self; - }, $Array_each$7.$$arity = 0); + }, 0); - Opal.def(self, '$length', $Array_length$8 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self["native"].length - }, $Array_length$8.$$arity = 0); + }, 0); - Opal.def(self, '$merge!', $Array_merge$excl$9 = function(other, offset) { + $def(self, '$merge!', function $Array_merge$excl$4(other, offset) { var self = this; ; return self["native"].set(other.$to_n(), offset); - }, $Array_merge$excl$9.$$arity = -2); + }, -2); return $alias(self, "size", "length"); })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["buffer/view"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; +Opal.modules["buffer/view"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $defs = Opal.defs, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $alias = Opal.alias; - Opal.add_stubs(['$include', '$!', '$nil?', '$[]', '$attr_reader', '$native?', '$to_n', '$name_for']); + Opal.add_stubs('include,!,nil?,[],attr_reader,native?,to_n,name_for'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Buffer'); @@ -1079,279 +985,226 @@ Opal.modules["buffer/view"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'View'); - var $nesting = [self].concat($parent_nesting), $View_supported$ques$1, $View_initialize$2, $View_length$3, $View_get$4, $View_set$5, $View_get_int8$6, $View_set_int8$7, $View_get_uint8$8, $View_set_uint8$9, $View_get_int16$10, $View_set_int16$11, $View_get_uint16$12, $View_set_uint16$13, $View_get_int32$14, $View_set_int32$15, $View_get_uint32$16, $View_set_uint32$17, $View_get_float32$18, $View_set_float32$19, $View_get_float64$20, $View_set_float64$21; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype["native"] = nil; + $proto["native"] = nil; - self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - Opal.defs(self, '$supported?', $View_supported$ques$1 = function() { - var self = this; - if ($gvars.$ == null) $gvars.$ = nil; + self.$include($$$($$('Native'), 'Wrapper')); + $defs(self, '$supported?', function $View_supported$ques$1() { + if ($gvars.$ == null) $gvars.$ = nil; return $gvars.$['$[]']("DataView")['$nil?']()['$!']() - }, $View_supported$ques$1.$$arity = 0); + }, 0); self.$attr_reader("buffer", "offset"); - Opal.def(self, '$initialize', $View_initialize$2 = function $$initialize(buffer, offset, length) { - var $iter = $View_initialize$2.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil; + $def(self, '$initialize', function $$initialize(buffer, offset, length) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $View_initialize$2.$$p = null; + delete $$initialize.$$p; - if (offset == null) { - offset = nil; - }; + if (offset == null) offset = nil;; - if (length == null) { - length = nil; - }; + if (length == null) length = nil;; if ($truthy(self['$native?'](buffer))) { - $send2(self, $find_super(self, 'initialize', $View_initialize$2, false, true), 'initialize', [buffer], null) - } else if ($truthy((function() {if ($truthy(($ret_or_1 = offset))) { - return length - } else { - return $ret_or_1 - }; return nil; })())) { - $send2(self, $find_super(self, 'initialize', $View_initialize$2, false, true), 'initialize', [new DataView(buffer.$to_n(), offset.$to_n(), length.$to_n())], null) + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [buffer], null) + } else if (($truthy(offset) && ($truthy(length)))) { + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new DataView(buffer.$to_n(), offset.$to_n(), length.$to_n())], null) } else if ($truthy(offset)) { - $send2(self, $find_super(self, 'initialize', $View_initialize$2, false, true), 'initialize', [new DataView(buffer.$to_n(), offset.$to_n())], null) + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new DataView(buffer.$to_n(), offset.$to_n())], null) } else { - $send2(self, $find_super(self, 'initialize', $View_initialize$2, false, true), 'initialize', [new DataView(buffer.$to_n())], null) + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new DataView(buffer.$to_n())], null) }; self.buffer = buffer; return (self.offset = offset); - }, $View_initialize$2.$$arity = -2); + }, -2); - Opal.def(self, '$length', $View_length$3 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self["native"].byteLength - }, $View_length$3.$$arity = 0); - $alias(self, "size", "length"); + }, 0); - Opal.def(self, '$get', $View_get$4 = function $$get(offset, bits, type, little) { + $def(self, '$get', function $$get(offset, bits, type, little) { var self = this; - if (bits == null) { - bits = 8; - }; + if (bits == null) bits = 8;; - if (type == null) { - type = "unsigned"; - }; + if (type == null) type = "unsigned";; - if (little == null) { - little = false; - }; - return self["native"]["get" + $$($nesting, 'Buffer').$name_for(bits, type)](offset, little); - }, $View_get$4.$$arity = -2); + if (little == null) little = false;; + return self["native"]["get" + $$('Buffer').$name_for(bits, type)](offset, little); + }, -2); $alias(self, "[]", "get"); - Opal.def(self, '$set', $View_set$5 = function $$set(offset, value, bits, type, little) { + $def(self, '$set', function $$set(offset, value, bits, type, little) { var self = this; - if (bits == null) { - bits = 8; - }; + if (bits == null) bits = 8;; - if (type == null) { - type = "unsigned"; - }; + if (type == null) type = "unsigned";; - if (little == null) { - little = false; - }; - return self["native"]["set" + $$($nesting, 'Buffer').$name_for(bits, type)](offset, value, little); - }, $View_set$5.$$arity = -3); + if (little == null) little = false;; + return self["native"]["set" + $$('Buffer').$name_for(bits, type)](offset, value, little); + }, -3); $alias(self, "[]=", "set"); - Opal.def(self, '$get_int8', $View_get_int8$6 = function $$get_int8(offset, little) { + $def(self, '$get_int8', function $$get_int8(offset, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].getInt8(offset, little); - }, $View_get_int8$6.$$arity = -2); + }, -2); - Opal.def(self, '$set_int8', $View_set_int8$7 = function $$set_int8(offset, value, little) { + $def(self, '$set_int8', function $$set_int8(offset, value, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].setInt8(offset, value, little); - }, $View_set_int8$7.$$arity = -3); + }, -3); - Opal.def(self, '$get_uint8', $View_get_uint8$8 = function $$get_uint8(offset, little) { + $def(self, '$get_uint8', function $$get_uint8(offset, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].getUint8(offset, little); - }, $View_get_uint8$8.$$arity = -2); + }, -2); - Opal.def(self, '$set_uint8', $View_set_uint8$9 = function $$set_uint8(offset, value, little) { + $def(self, '$set_uint8', function $$set_uint8(offset, value, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].setUint8(offset, value, little); - }, $View_set_uint8$9.$$arity = -3); + }, -3); - Opal.def(self, '$get_int16', $View_get_int16$10 = function $$get_int16(offset, little) { + $def(self, '$get_int16', function $$get_int16(offset, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].getInt16(offset, little); - }, $View_get_int16$10.$$arity = -2); + }, -2); - Opal.def(self, '$set_int16', $View_set_int16$11 = function $$set_int16(offset, value, little) { + $def(self, '$set_int16', function $$set_int16(offset, value, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].setInt16(offset, value, little); - }, $View_set_int16$11.$$arity = -3); + }, -3); - Opal.def(self, '$get_uint16', $View_get_uint16$12 = function $$get_uint16(offset, little) { + $def(self, '$get_uint16', function $$get_uint16(offset, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].getUint16(offset, little); - }, $View_get_uint16$12.$$arity = -2); + }, -2); - Opal.def(self, '$set_uint16', $View_set_uint16$13 = function $$set_uint16(offset, value, little) { + $def(self, '$set_uint16', function $$set_uint16(offset, value, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].setUint16(offset, value, little); - }, $View_set_uint16$13.$$arity = -3); + }, -3); - Opal.def(self, '$get_int32', $View_get_int32$14 = function $$get_int32(offset, little) { + $def(self, '$get_int32', function $$get_int32(offset, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].getInt32(offset, little); - }, $View_get_int32$14.$$arity = -2); + }, -2); - Opal.def(self, '$set_int32', $View_set_int32$15 = function $$set_int32(offset, value, little) { + $def(self, '$set_int32', function $$set_int32(offset, value, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].setInt32(offset, value, little); - }, $View_set_int32$15.$$arity = -3); + }, -3); - Opal.def(self, '$get_uint32', $View_get_uint32$16 = function $$get_uint32(offset, little) { + $def(self, '$get_uint32', function $$get_uint32(offset, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].getUint32(offset, little); - }, $View_get_uint32$16.$$arity = -2); + }, -2); - Opal.def(self, '$set_uint32', $View_set_uint32$17 = function $$set_uint32(offset, value, little) { + $def(self, '$set_uint32', function $$set_uint32(offset, value, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].setUint32(offset, value, little); - }, $View_set_uint32$17.$$arity = -3); + }, -3); - Opal.def(self, '$get_float32', $View_get_float32$18 = function $$get_float32(offset, little) { + $def(self, '$get_float32', function $$get_float32(offset, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].getFloat32(offset, little); - }, $View_get_float32$18.$$arity = -2); + }, -2); - Opal.def(self, '$set_float32', $View_set_float32$19 = function $$set_float32(offset, value, little) { + $def(self, '$set_float32', function $$set_float32(offset, value, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].setFloat32(offset, value, little); - }, $View_set_float32$19.$$arity = -3); + }, -3); - Opal.def(self, '$get_float64', $View_get_float64$20 = function $$get_float64(offset, little) { + $def(self, '$get_float64', function $$get_float64(offset, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].getFloat64(offset, little); - }, $View_get_float64$20.$$arity = -2); - return (Opal.def(self, '$set_float64', $View_set_float64$21 = function $$set_float64(offset, value, little) { + }, -2); + + $def(self, '$set_float64', function $$set_float64(offset, value, little) { var self = this; - if (little == null) { - little = false; - }; + if (little == null) little = false;; return self["native"].setFloat64(offset, value, little); - }, $View_set_float64$21.$$arity = -3), nil) && 'set_float64'; + }, -3); + return $alias(self, "size", "length"); })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["buffer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; +Opal.modules["buffer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $defs = Opal.defs, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$!', '$nil?', '$[]', '$===', '$native?', '$new']); + Opal.add_stubs('require,include,!,nil?,[],===,native?,new,pack,to_a'); self.$require("native"); self.$require("buffer/array"); @@ -1359,79 +1212,71 @@ Opal.modules["buffer"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Buffer'); - var $nesting = [self].concat($parent_nesting), $Buffer_supported$ques$1, $Buffer_name_for$2, $Buffer_initialize$3, $Buffer_length$4, $Buffer_to_a$5, $Buffer_view$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype["native"] = nil; + $proto["native"] = nil; - self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - Opal.defs(self, '$supported?', $Buffer_supported$ques$1 = function() { - var self = this; - if ($gvars.$ == null) $gvars.$ = nil; + self.$include($$$($$('Native'), 'Wrapper')); + $defs(self, '$supported?', function $Buffer_supported$ques$1() { + if ($gvars.$ == null) $gvars.$ = nil; return $gvars.$['$[]']("ArrayBuffer")['$nil?']()['$!']() - }, $Buffer_supported$ques$1.$$arity = 0); - Opal.defs(self, '$name_for', $Buffer_name_for$2 = function $$name_for(bits, type) { - var self = this, part = nil, $case = nil; + }, 0); + $defs(self, '$name_for', function $$name_for(bits, type) { + var part = nil, $ret_or_1 = nil; - part = (function() {$case = type; - if ("unsigned"['$===']($case)) {return "Uint"} - else if ("signed"['$===']($case)) {return "Int"} - else if ("float"['$===']($case)) {return "Float"} - else { return nil }})(); + part = ($eqeqeq("unsigned", ($ret_or_1 = type)) ? ("Uint") : ($eqeqeq("signed", $ret_or_1) ? ("Int") : ($eqeqeq("float", $ret_or_1) ? ("Float") : (nil)))); return "" + (part) + (bits); - }, $Buffer_name_for$2.$$arity = 2); + }, 2); - Opal.def(self, '$initialize', $Buffer_initialize$3 = function $$initialize(size, bits) { - var $iter = $Buffer_initialize$3.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(size, bits) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Buffer_initialize$3.$$p = null; + delete $$initialize.$$p; - if (bits == null) { - bits = 8; - }; + if (bits == null) bits = 8;; if ($truthy(self['$native?'](size))) { - return $send2(self, $find_super(self, 'initialize', $Buffer_initialize$3, false, true), 'initialize', [size], null) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [size], null) } else { - return $send2(self, $find_super(self, 'initialize', $Buffer_initialize$3, false, true), 'initialize', [new ArrayBuffer(size * (bits / 8))], null) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new ArrayBuffer(size * (bits / 8))], null) }; - }, $Buffer_initialize$3.$$arity = -2); + }, -2); - Opal.def(self, '$length', $Buffer_length$4 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self["native"].byteLength - }, $Buffer_length$4.$$arity = 0); - $alias(self, "size", "length"); + }, 0); - Opal.def(self, '$to_a', $Buffer_to_a$5 = function $$to_a(bits, type) { + $def(self, '$to_a', function $$to_a(bits, type) { var self = this; - if (bits == null) { - bits = 8; - }; + if (bits == null) bits = 8;; - if (type == null) { - type = "unsigned"; - }; - return $$($nesting, 'Array').$new(self, bits, type); - }, $Buffer_to_a$5.$$arity = -1); - return (Opal.def(self, '$view', $Buffer_view$6 = function $$view(offset, length) { + if (type == null) type = "unsigned";; + return $$('Array').$new(self, bits, type); + }, -1); + + $def(self, '$view', function $$view(offset, length) { var self = this; - if (offset == null) { - offset = nil; - }; + if (offset == null) offset = nil;; - if (length == null) { - length = nil; - }; - return $$($nesting, 'View').$new(self, offset, length); - }, $Buffer_view$6.$$arity = -1), nil) && 'view'; + if (length == null) length = nil;; + return $$('View').$new(self, offset, length); + }, -1); + + $def(self, '$to_s', function $$to_s() { + var self = this; + + return self.$to_a().$to_a().$pack("c*") + }, 0); + return $alias(self, "size", "length"); })($nesting[0], null, $nesting); }; diff --git a/opal/master/buffer.min.js b/opal/master/buffer.min.js index 4c85a381..93d0c760 100644 --- a/opal/master/buffer.min.js +++ b/opal/master/buffer.min.js @@ -1 +1 @@ -Opal.modules.native=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var $base,$Object_inspect$42,$Object_class$40,$Object_each$30,$Object_method_missing$36,$Object_to_a$41,self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2,$range=Opal.range,$alias=Opal.alias,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$gvars=Opal.gvars;return Opal.add_stubs(["$try_convert","$native?","$respond_to?","$to_n","$raise","$inspect","$Native","$proc","$map!","$end_with?","$define_method","$[]","$convert","$call","$to_proc","$new","$each","$native_reader","$native_writer","$extend","$warn","$include","$is_a?","$map","$to_a","$_Array","$method_missing","$bind","$instance_method","$slice","$-","$length","$[]=","$enum_for","$===","$>=","$<<","$each_pair","$_initialize","$name","$native_module"]),function($Native_included$22,$Native_convert$3){var $Native_call$4,$Native_proc$5,$nesting=[$Native_included$22=$module($Native_included$22,"Native")].concat($Native_convert$3);Opal.defs($Native_included$22,"$is_a?",$Native_convert$3=function(object,klass){try{return object instanceof this.$try_convert(klass)}catch(e){return!1}},$Native_convert$3.$$arity=2),Opal.defs($Native_included$22,"$try_convert",$Native_convert$3=function(value,default$){return null==default$&&(default$=nil),this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():default$},$Native_convert$3.$$arity=-2),Opal.defs($Native_included$22,"$convert",$Native_convert$3=function(value){return this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():void this.$raise($$($nesting,"ArgumentError"),value.$inspect()+" isn't native")},$Native_convert$3.$$arity=1),Opal.defs($Native_included$22,"$call",$Native_call$4=function(obj,key,$a){var args,prop=$Native_call$4.$$p,block=prop||nil;prop&&($Native_call$4.$$p=null),prop&&($Native_call$4.$$p=null),args=Opal.slice.call(arguments,2,arguments.length);prop=obj[key];if(prop instanceof Function){for(var converted=new Array(args.length),i=0,l=args.length;i"},$Object_inspect$42.$$arity=0),function($Array_inspect$49,$Array_length$48){var $Array_initialize$43,$Array_each$44,$nesting=[$Array_inspect$49=$klass($Array_inspect$49,null,"Array")].concat($Array_length$48);$Array_inspect$49.$$prototype.named=$Array_inspect$49.$$prototype.native=$Array_inspect$49.$$prototype.get=$Array_inspect$49.$$prototype.block=$Array_inspect$49.$$prototype.set=$Array_inspect$49.$$prototype.length=nil,$Array_inspect$49.$include($$$($$($nesting,"Native"),"Wrapper")),$Array_inspect$49.$include($$($nesting,"Enumerable")),Opal.def($Array_inspect$49,"$initialize",$Array_initialize$43=function(native$,options){var $iter=$Array_initialize$43.$$p,block=$iter||nil,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return $iter&&($Array_initialize$43.$$p=null),$iter&&($Array_initialize$43.$$p=null),null==options&&(options=$hash2([],{})),$send2(this,$find_super(this,"initialize",$Array_initialize$43,!1,!0),"initialize",[native$],null),this.get=$truthy($ret_or_1=options["$[]"]("get"))?$ret_or_1:options["$[]"]("access"),this.named=options["$[]"]("named"),this.set=$truthy($ret_or_2=options["$[]"]("set"))?$ret_or_2:options["$[]"]("access"),this.length=$truthy($ret_or_3=options["$[]"]("length"))?$ret_or_3:"length",this.block=block,$truthy(null==this.$length())?this.$raise($$($nesting,"ArgumentError"),"no length found on the array-like object"):nil},$Array_initialize$43.$$arity=-2),Opal.def($Array_inspect$49,"$each",$Array_each$44=function(){var $iter=$Array_each$44.$$p,block=$iter||nil;if($iter&&($Array_each$44.$$p=null),$iter&&($Array_each$44.$$p=null),!$truthy(block))return this.$enum_for("each");for(var i=0,length=this.$length();i="](rhs)));)result["$<<"](this["$[]"](index)),index=$rb_minus(index,1);return result}return this["$[]"]($rb_minus(this.$length(),1))},$Array_length$48.$$arity=-1),Opal.def($Array_inspect$49,"$length",$Array_length$48=function(){return this.native[this.length]},$Array_length$48.$$arity=0),$alias($Array_inspect$49,"to_ary","to_a"),Opal.def($Array_inspect$49,"$inspect",$Array_inspect$49=function(){return this.$to_a().$inspect()},$Array_inspect$49.$$arity=0)}($$($nesting,"Native"),$nesting),function($Numeric_to_n$50,$parent_nesting){[$Numeric_to_n$50=$klass($Numeric_to_n$50,null,"Numeric")].concat($parent_nesting),Opal.def($Numeric_to_n$50,"$to_n",$Numeric_to_n$50=function(){return this.valueOf()},$Numeric_to_n$50.$$arity=0)}($nesting[0],$nesting),function($Proc_to_n$51,$parent_nesting){[$Proc_to_n$51=$klass($Proc_to_n$51,null,"Proc")].concat($parent_nesting),Opal.def($Proc_to_n$51,"$to_n",$Proc_to_n$51=function(){return this},$Proc_to_n$51.$$arity=0)}($nesting[0],$nesting),function($String_to_n$52,$parent_nesting){[$String_to_n$52=$klass($String_to_n$52,null,"String")].concat($parent_nesting),Opal.def($String_to_n$52,"$to_n",$String_to_n$52=function(){return this.valueOf()},$String_to_n$52.$$arity=0)}($nesting[0],$nesting),function($Regexp_to_n$53,$parent_nesting){[$Regexp_to_n$53=$klass($Regexp_to_n$53,null,"Regexp")].concat($parent_nesting),Opal.def($Regexp_to_n$53,"$to_n",$Regexp_to_n$53=function(){return this.valueOf()},$Regexp_to_n$53.$$arity=0)}($nesting[0],$nesting),function($MatchData_to_n$54,$parent_nesting){[$MatchData_to_n$54=$klass($MatchData_to_n$54,null,"MatchData")].concat($parent_nesting),$MatchData_to_n$54.$$prototype.matches=nil,Opal.def($MatchData_to_n$54,"$to_n",$MatchData_to_n$54=function(){return this.matches},$MatchData_to_n$54.$$arity=0)}($nesting[0],$nesting),function($Struct_to_n$55,$parent_nesting){var $nesting=[$Struct_to_n$55=$klass($Struct_to_n$55,null,"Struct")].concat($parent_nesting);Opal.def($Struct_to_n$55,"$to_n",$Struct_to_n$55=function(){var $$56,result=nil,result={};return $send(this,"each_pair",[],(($$56=function(name,value){null==$$56.$$s||$$56.$$s;return null==name&&(name=nil),null==value&&(value=nil),result[name]=$$($nesting,"Native").$try_convert(value,value)}).$$s=this,$$56.$$arity=2,$$56)),result},$Struct_to_n$55.$$arity=0)}($nesting[0],$nesting),function($Array_to_n$57,$parent_nesting){var $nesting=[$Array_to_n$57=$klass($Array_to_n$57,null,"Array")].concat($parent_nesting);Opal.def($Array_to_n$57,"$to_n",$Array_to_n$57=function(){for(var result=[],i=0,length=this.length;i=,<<,each_pair,method_defined?,_initialize,name,native_module"),function($base,$parent_nesting){var self=$module($base,"Native"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$is_a?",(function(object,klass){try{return object instanceof this.$try_convert(klass)}catch(e){return!1}}),2),$defs(self,"$try_convert",(function(value,default$){return null==default$&&(default$=nil),this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():default$}),-2),$defs(self,"$convert",(function(value){return this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():void this.$raise($$("ArgumentError"),value.$inspect()+" isn't native")}),1),$defs(self,"$call",(function $$call(obj,key,$a){var args,block=$$call.$$p||nil,self=this;delete $$call.$$p,args=Opal.slice.call(arguments,2);var prop=obj[key];if(prop instanceof Function){for(var converted=new Array(args.length),i=0,l=args.length;i0&&(old=$post_args.shift()),null==old&&(old=new$),null==(as=$kwargs.$$smap.as)&&(as=nil),$truthy(old["$end_with?"]("="))?$send(self,"define_method",[new$],(function $$4(value){var self=null==$$4.$$s?this:$$4.$$s;return null==self.native&&(self.native=nil),null==value&&(value=nil),self.native[old["$[]"]($range(0,-2,!1))]=$$("Native").$convert(value),value}),{$$arity:1,$$s:self}):$truthy(as)?$send(self,"define_method",[new$],(function $$5($c){var args,block=$$5.$$p||nil,self=null==$$5.$$s?this:$$5.$$s,value=nil;return null==self.native&&(self.native=nil),delete $$5.$$p,args=Opal.slice.call(arguments),value=$send($$("Native"),"call",[self.native,old].concat($to_a(args)),block.$to_proc()),$truthy(value)?as.$new(value.$to_n()):nil}),{$$arity:-1,$$s:self}):$send(self,"define_method",[new$],(function $$6($c){var args,block=$$6.$$p||nil,self=null==$$6.$$s?this:$$6.$$s;return null==self.native&&(self.native=nil),delete $$6.$$p,args=Opal.slice.call(arguments),$send($$("Native"),"call",[self.native,old].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:self})}),-2),$def(self,"$native_reader",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$7(name){var self=null==$$7.$$s?this:$$7.$$s;return null==name&&(name=nil),$send(self,"define_method",[name],(function $$8(){var self=null==$$8.$$s?this:$$8.$$s;return null==self.native&&(self.native=nil),self.$Native(self.native[name])}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:self})}),-1),$def(self,"$native_writer",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$9(name){var self=null==$$9.$$s?this:$$9.$$s;return null==name&&(name=nil),$send(self,"define_method",[name+"="],(function $$10(value){var self=null==$$10.$$s?this:$$10.$$s;return null==self.native&&(self.native=nil),null==value&&(value=nil),self.$Native(self.native[name]=value)}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})}),-1),$def(self,"$native_accessor",(function($a){var $post_args,names,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"native_reader",$to_a(names=$post_args)),$send(self,"native_writer",$to_a(names))}),-1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Wrapper"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$initialize",(function(native$){return $truthy($Kernel["$native?"](native$))||$Kernel.$raise($$("ArgumentError"),native$.$inspect()+" isn't native"),this.native=native$}),1),$def(self,"$to_n",(function(){return null==this.native&&(this.native=nil),this.native}),0),$defs(self,"$included",(function(klass){return klass.$extend($$("Helpers"))}),1)}($nesting[0],$nesting),$defs(self,"$included",(function(base){return this.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),base.$include($$("Wrapper"))}),1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$native?",(function(value){return null==value||!value.$$class}),1),$def(self,"$Native",(function $$Native(obj){return delete $$Native.$$p,$truthy(null==obj)?nil:$truthy(this["$native?"](obj))?$$$($$("Native"),"Object").$new(obj):$truthy(obj["$is_a?"]($$("Array")))?$send(obj,"map",[],(function $$12(o){return null==o&&(o=nil),(null==$$12.$$s?this:$$12.$$s).$Native(o)}),{$$arity:1,$$s:this}):$truthy(obj["$is_a?"]($$("Proc")))?$send(this,"proc",[],(function $$13($a){var args,block=$$13.$$p||nil,self=null==$$13.$$s?this:$$13.$$s;return delete $$13.$$p,args=Opal.slice.call(arguments),self.$Native($send(obj,"call",$to_a(args),block.$to_proc()))}),{$$arity:-1,$$s:this}):obj}),1),$alias(self,"_Array","Array"),$def(self,"$Array",(function $$Array(object,$a){var args,block=$$Array.$$p||nil,self=this;return delete $$Array.$$p,args=Opal.slice.call(arguments,1),$truthy(self["$native?"](object))?$send($$$($$("Native"),"Array"),"new",[object].concat($to_a(args)),block.$to_proc()).$to_a():self.$_Array(object)}),-2)}($nesting[0],$nesting),function($base,$super){var self=$klass($base,$super,"Object");self.$$prototype.native=nil,self.$include($$$($$$("Native"),"Wrapper")),$def(self,"$==",(function(other){return this.native===$$$("Native").$try_convert(other)}),1),$def(self,"$has_key?",(function(name){return Opal.hasOwnProperty.call(this.native,name)}),1),$def(self,"$each",(function $$each($a){var args,$yield=$$each.$$p||nil,self=this;if(delete $$each.$$p,args=Opal.slice.call(arguments),$yield!==nil){for(var key in self.native)Opal.yieldX($yield,[key,self.native[key]]);return self}return $send(self,"method_missing",["each"].concat($to_a(args)))}),-1),$def(self,"$[]",(function(key){var prop=this.native[key];return prop instanceof Function?prop:$$$("Native").$call(this.native,key)}),1),$def(self,"$[]=",(function(key,value){var native$;return native$=$$$("Native").$try_convert(value),$truthy(native$===nil)?this.native[key]=value:this.native[key]=native$}),2),$def(self,"$merge!",(function(other){for(var prop in other=$$$("Native").$convert(other))this.native[prop]=other[prop];return this}),1),$def(self,"$respond_to?",(function(name,include_all){return null==include_all&&(include_all=!1),$Kernel.$instance_method("respond_to?").$bind(this).$call(name,include_all)}),-2),$def(self,"$respond_to_missing?",(function(name,include_all){return null==include_all&&(include_all=!1),Opal.hasOwnProperty.call(this.native,name)}),-2),$def(self,"$method_missing",(function $$method_missing(mid,$a){var args,block=$$method_missing.$$p||nil,self=this,$writer=nil;return delete $$method_missing.$$p,args=Opal.slice.call(arguments,1),"="===mid.charAt(mid.length-1)?($writer=[mid.$slice(0,$rb_minus(mid.$length(),1)),args["$[]"](0)],$send(self,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$send($$$("Native"),"call",[self.native,mid].concat($to_a(args)),block.$to_proc())}),-2),$def(self,"$nil?",(function(){return!1}),0),$def(self,"$is_a?",(function(klass){return Opal.is_a(this,klass)}),1),$def(self,"$instance_of?",(function(klass){return this.$$class===klass}),1),$def(self,"$class",(function(){return this.$$class}),0),$def(self,"$to_a",(function $$to_a(options){var block=$$to_a.$$p||nil;return delete $$to_a.$$p,null==options&&(options=$hash2([],{})),$send($$$($$$("Native"),"Array"),"new",[this.native,options],block.$to_proc()).$to_a()}),-1),$def(self,"$inspect",(function(){return"#"}),0),$alias(self,"include?","has_key?"),$alias(self,"key?","has_key?"),$alias(self,"kind_of?","is_a?"),$alias(self,"member?","has_key?")}($$("Native"),$$("BasicObject")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Array"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.named=$proto.native=$proto.get=$proto.block=$proto.set=$proto.length=nil,self.$include($$$($$("Native"),"Wrapper")),self.$include($$("Enumerable")),$def(self,"$initialize",(function $$initialize(native$,options){var block=$$initialize.$$p||nil,$ret_or_1=nil;return delete $$initialize.$$p,null==options&&(options=$hash2([],{})),$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[native$],null),this.get=$truthy($ret_or_1=options["$[]"]("get"))?$ret_or_1:options["$[]"]("access"),this.named=options["$[]"]("named"),this.set=$truthy($ret_or_1=options["$[]"]("set"))?$ret_or_1:options["$[]"]("access"),this.length=$truthy($ret_or_1=options["$[]"]("length"))?$ret_or_1:"length",this.block=block,$truthy(null==this.$length())?this.$raise($$("ArgumentError"),"no length found on the array-like object"):nil}),-2),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;if(delete $$each.$$p,!$truthy(block))return this.$enum_for("each");for(var i=0,length=this.$length();i= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $range = Opal.range, $alias = Opal.alias, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $gvars = Opal.gvars; - - Opal.add_stubs(['$try_convert', '$native?', '$respond_to?', '$to_n', '$raise', '$inspect', '$Native', '$proc', '$map!', '$end_with?', '$define_method', '$[]', '$convert', '$call', '$to_proc', '$new', '$each', '$native_reader', '$native_writer', '$extend', '$warn', '$include', '$is_a?', '$map', '$to_a', '$_Array', '$method_missing', '$bind', '$instance_method', '$slice', '$-', '$length', '$[]=', '$enum_for', '$===', '$>=', '$<<', '$each_pair', '$_initialize', '$name', '$native_module']); +Opal.modules["native"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $defs = Opal.defs, $truthy = Opal.truthy, $send = Opal.send, $Kernel = Opal.Kernel, $hash2 = Opal.hash2, $range = Opal.range, $to_a = Opal.to_a, $def = Opal.def, $alias = Opal.alias, $klass = Opal.klass, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super, $eqeqeq = Opal.eqeqeq, $rb_ge = Opal.rb_ge, $gvars = Opal.gvars; + + Opal.add_stubs('try_convert,native?,respond_to?,to_n,raise,inspect,Native,proc,map!,end_with?,define_method,[],convert,call,to_proc,new,each,native_reader,native_writer,extend,warn,include,is_a?,map,to_a,_Array,method_missing,bind,instance_method,slice,-,length,[]=,enum_for,===,>=,<<,each_pair,method_defined?,_initialize,name,native_module'); (function($base, $parent_nesting) { var self = $module($base, 'Native'); - var $nesting = [self].concat($parent_nesting), $Native_is_a$ques$1, $Native_try_convert$2, $Native_convert$3, $Native_call$4, $Native_proc$5, $Native_included$22; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$is_a?', $Native_is_a$ques$1 = function(object, klass) { + $defs(self, '$is_a?', function $Native_is_a$ques$1(object, klass) { var self = this; @@ -27,15 +20,13 @@ Opal.modules["native"] = function(Opal) { return false; } - }, $Native_is_a$ques$1.$$arity = 2); - Opal.defs(self, '$try_convert', $Native_try_convert$2 = function $$try_convert(value, default$) { + }, 2); + $defs(self, '$try_convert', function $$try_convert(value, default$) { var self = this; - if (default$ == null) { - default$ = nil; - }; + if (default$ == null) default$ = nil;; if (self['$native?'](value)) { return value; @@ -47,8 +38,8 @@ Opal.modules["native"] = function(Opal) { return default$; } ; - }, $Native_try_convert$2.$$arity = -2); - Opal.defs(self, '$convert', $Native_convert$3 = function $$convert(value) { + }, -2); + $defs(self, '$convert', function $$convert(value) { var self = this; @@ -59,19 +50,18 @@ Opal.modules["native"] = function(Opal) { return value.$to_n(); } else { - self.$raise($$($nesting, 'ArgumentError'), "" + (value.$inspect()) + " isn't native"); + self.$raise($$('ArgumentError'), "" + (value.$inspect()) + " isn't native"); } - }, $Native_convert$3.$$arity = 1); - Opal.defs(self, '$call', $Native_call$4 = function $$call(obj, key, $a) { - var $iter = $Native_call$4.$$p, block = $iter || nil, $post_args, args, self = this; + }, 1); + $defs(self, '$call', function $$call(obj, key, $a) { + var block = $$call.$$p || nil, $post_args, args, self = this; - if ($iter) $Native_call$4.$$p = null; - + delete $$call.$$p; - if ($iter) $Native_call$4.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 2, arguments.length); + $post_args = Opal.slice.call(arguments, 2); args = $post_args;; @@ -97,33 +87,29 @@ Opal.modules["native"] = function(Opal) { return self.$Native(prop); } ; - }, $Native_call$4.$$arity = -3); - Opal.defs(self, '$proc', $Native_proc$5 = function $$proc() { - var $iter = $Native_proc$5.$$p, block = $iter || nil, $$6, self = this; + }, -3); + $defs(self, '$proc', function $$proc() { + var block = $$proc.$$p || nil, self = this; - if ($iter) $Native_proc$5.$$p = null; - + delete $$proc.$$p; - if ($iter) $Native_proc$5.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'LocalJumpError'), "no block given") + ; + if (!$truthy(block)) { + self.$raise($$('LocalJumpError'), "no block given") }; - return $send($$$('::', 'Kernel'), 'proc', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, args, $$7, instance = nil; + return $send($Kernel, 'proc', [], function $$2($a){var $post_args, args, self = $$2.$$s == null ? this : $$2.$$s, instance = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - $send(args, 'map!', [], ($$7 = function(arg){var self = $$7.$$s == null ? this : $$7.$$s; + $send(args, 'map!', [], function $$3(arg){var self = $$3.$$s == null ? this : $$3.$$s; - if (arg == null) { - arg = nil; - }; - return self.$Native(arg);}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + if (arg == null) arg = nil;; + return self.$Native(arg);}, {$$arity: 1, $$s: self}); instance = self.$Native(this); // if global is current scope, run the block in the scope it was defined @@ -140,22 +126,22 @@ Opal.modules["native"] = function(Opal) { finally { block.$$s = self_; } - ;}, $$6.$$s = self, $$6.$$arity = -1, $$6)); - }, $Native_proc$5.$$arity = 0); + ;}, {$$arity: -1, $$s: self}); + }, 0); (function($base, $parent_nesting) { var self = $module($base, 'Helpers'); - var $nesting = [self].concat($parent_nesting), $Helpers_alias_native$8, $Helpers_native_reader$12, $Helpers_native_writer$15, $Helpers_native_accessor$18; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$alias_native', $Helpers_alias_native$8 = function $$alias_native(new$, $a, $b) { - var $post_args, $kwargs, old, as, $$9, $$10, $$11, $iter = $Helpers_alias_native$8.$$p, $yield = $iter || nil, self = this; + $def(self, '$alias_native', function $$alias_native(new$, $a, $b) { + var $post_args, $kwargs, old, as, $yield = $$alias_native.$$p || nil, self = this; - if ($iter) $Helpers_alias_native$8.$$p = null; + delete $$alias_native.$$p; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); $kwargs = Opal.extract_kwargs($post_args); @@ -165,250 +151,227 @@ Opal.modules["native"] = function(Opal) { throw Opal.ArgumentError.$new('expected kwargs'); }; - if ($post_args.length > 0) { - old = $post_args[0]; - $post_args.splice(0, 1); - } - if (old == null) { - old = new$; - }; + if ($post_args.length > 0) old = $post_args.shift(); + if (old == null) old = new$;; as = $kwargs.$$smap["as"]; - if (as == null) { - as = nil - }; + if (as == null) as = nil; if ($truthy(old['$end_with?']("="))) { - return $send(self, 'define_method', [new$], ($$9 = function(value){var self = $$9.$$s == null ? this : $$9.$$s; + return $send(self, 'define_method', [new$], function $$4(value){var self = $$4.$$s == null ? this : $$4.$$s; if (self["native"] == null) self["native"] = nil; - if (value == null) { - value = nil; - }; - self["native"][old['$[]']($range(0, -2, false))] = $$($nesting, 'Native').$convert(value); - return value;}, $$9.$$s = self, $$9.$$arity = 1, $$9)) + if (value == null) value = nil;; + self["native"][old['$[]']($range(0, -2, false))] = $$('Native').$convert(value); + return value;}, {$$arity: 1, $$s: self}) } else if ($truthy(as)) { - return $send(self, 'define_method', [new$], ($$10 = function($c){var self = $$10.$$s == null ? this : $$10.$$s, $iter = $$10.$$p, block = $iter || nil, $post_args, args, value = nil; + return $send(self, 'define_method', [new$], function $$5($c){var block = $$5.$$p || nil, $post_args, args, self = $$5.$$s == null ? this : $$5.$$s, value = nil; if (self["native"] == null) self["native"] = nil; + delete $$5.$$p; + ; - if ($iter) $$10.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - value = $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc()); + value = $send($$('Native'), 'call', [self["native"], old].concat($to_a(args)), block.$to_proc()); if ($truthy(value)) { return as.$new(value.$to_n()) } else { return nil - };}, $$10.$$s = self, $$10.$$arity = -1, $$10)) + };}, {$$arity: -1, $$s: self}) } else { - return $send(self, 'define_method', [new$], ($$11 = function($c){var self = $$11.$$s == null ? this : $$11.$$s, $iter = $$11.$$p, block = $iter || nil, $post_args, args; + return $send(self, 'define_method', [new$], function $$6($c){var block = $$6.$$p || nil, $post_args, args, self = $$6.$$s == null ? this : $$6.$$s; if (self["native"] == null) self["native"] = nil; + delete $$6.$$p; + ; - if ($iter) $$11.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc());}, $$11.$$s = self, $$11.$$arity = -1, $$11)) + return $send($$('Native'), 'call', [self["native"], old].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) }; - }, $Helpers_alias_native$8.$$arity = -2); + }, -2); - Opal.def(self, '$native_reader', $Helpers_native_reader$12 = function $$native_reader($a) { - var $post_args, names, $$13, self = this; + $def(self, '$native_reader', function $$native_reader($a) { + var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - return $send(names, 'each', [], ($$13 = function(name){var self = $$13.$$s == null ? this : $$13.$$s, $$14; + return $send(names, 'each', [], function $$7(name){var self = $$7.$$s == null ? this : $$7.$$s; - if (name == null) { - name = nil; - }; - return $send(self, 'define_method', [name], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s; + if (name == null) name = nil;; + return $send(self, 'define_method', [name], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; if (self["native"] == null) self["native"] = nil; - return self.$Native(self["native"][name])}, $$14.$$s = self, $$14.$$arity = 0, $$14));}, $$13.$$s = self, $$13.$$arity = 1, $$13)); - }, $Helpers_native_reader$12.$$arity = -1); + return self.$Native(self["native"][name])}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$native_writer', $Helpers_native_writer$15 = function $$native_writer($a) { - var $post_args, names, $$16, self = this; + $def(self, '$native_writer', function $$native_writer($a) { + var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - return $send(names, 'each', [], ($$16 = function(name){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + return $send(names, 'each', [], function $$9(name){var self = $$9.$$s == null ? this : $$9.$$s; - if (name == null) { - name = nil; - }; - return $send(self, 'define_method', ["" + (name) + "="], ($$17 = function(value){var self = $$17.$$s == null ? this : $$17.$$s; + if (name == null) name = nil;; + return $send(self, 'define_method', ["" + (name) + "="], function $$10(value){var self = $$10.$$s == null ? this : $$10.$$s; if (self["native"] == null) self["native"] = nil; - if (value == null) { - value = nil; - }; - return self.$Native(self["native"][name] = value);}, $$17.$$s = self, $$17.$$arity = 1, $$17));}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - }, $Helpers_native_writer$15.$$arity = -1); - return (Opal.def(self, '$native_accessor', $Helpers_native_accessor$18 = function $$native_accessor($a) { + if (value == null) value = nil;; + return self.$Native(self["native"][name] = value);}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + }, -1); + return $def(self, '$native_accessor', function $$native_accessor($a) { var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - $send(self, 'native_reader', Opal.to_a(names)); - return $send(self, 'native_writer', Opal.to_a(names)); - }, $Helpers_native_accessor$18.$$arity = -1), nil) && 'native_accessor'; + $send(self, 'native_reader', $to_a(names)); + return $send(self, 'native_writer', $to_a(names)); + }, -1); })($nesting[0], $nesting); (function($base, $parent_nesting) { var self = $module($base, 'Wrapper'); - var $nesting = [self].concat($parent_nesting), $Wrapper_initialize$19, $Wrapper_to_n$20, $Wrapper_included$21; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$initialize', $Wrapper_initialize$19 = function $$initialize(native$) { + $def(self, '$initialize', function $$initialize(native$) { var self = this; - if ($truthy($$$('::', 'Kernel')['$native?'](native$))) { - } else { - $$$('::', 'Kernel').$raise($$($nesting, 'ArgumentError'), "" + (native$.$inspect()) + " isn't native") + if (!$truthy($Kernel['$native?'](native$))) { + $Kernel.$raise($$('ArgumentError'), "" + (native$.$inspect()) + " isn't native") }; return (self["native"] = native$); - }, $Wrapper_initialize$19.$$arity = 1); + }, 1); - Opal.def(self, '$to_n', $Wrapper_to_n$20 = function $$to_n() { + $def(self, '$to_n', function $$to_n() { var self = this; if (self["native"] == null) self["native"] = nil; return self["native"] - }, $Wrapper_to_n$20.$$arity = 0); - return (Opal.defs(self, '$included', $Wrapper_included$21 = function $$included(klass) { - var self = this; - - return klass.$extend($$($nesting, 'Helpers')) - }, $Wrapper_included$21.$$arity = 1), nil) && 'included'; + }, 0); + return $defs(self, '$included', function $$included(klass) { + + return klass.$extend($$('Helpers')) + }, 1); })($nesting[0], $nesting); - return (Opal.defs(self, '$included', $Native_included$22 = function $$included(base) { + return $defs(self, '$included', function $$included(base) { var self = this; self.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."); - return base.$include($$($nesting, 'Wrapper')); - }, $Native_included$22.$$arity = 1), nil) && 'included'; + return base.$include($$('Wrapper')); + }, 1); })($nesting[0], $nesting); (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_native$ques$23, $Kernel_Native$24, $Kernel_Array$27; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$native?', $Kernel_native$ques$23 = function(value) { - var self = this; - + $def(self, '$native?', function $Kernel_native$ques$11(value) { + return value == null || !value.$$class; - }, $Kernel_native$ques$23.$$arity = 1); + }, 1); - Opal.def(self, '$Native', $Kernel_Native$24 = function $$Native(obj) { - var $$25, $$26, $iter = $Kernel_Native$24.$$p, $yield = $iter || nil, self = this; + $def(self, '$Native', function $$Native(obj) { + var $yield = $$Native.$$p || nil, self = this; - if ($iter) $Kernel_Native$24.$$p = null; + delete $$Native.$$p; if ($truthy(obj == null)) { return nil } else if ($truthy(self['$native?'](obj))) { - return $$$($$($nesting, 'Native'), 'Object').$new(obj) - } else if ($truthy(obj['$is_a?']($$($nesting, 'Array')))) { - return $send(obj, 'map', [], ($$25 = function(o){var self = $$25.$$s == null ? this : $$25.$$s; + return $$$($$('Native'), 'Object').$new(obj) + } else if ($truthy(obj['$is_a?']($$('Array')))) { + return $send(obj, 'map', [], function $$12(o){var self = $$12.$$s == null ? this : $$12.$$s; - if (o == null) { - o = nil; - }; - return self.$Native(o);}, $$25.$$s = self, $$25.$$arity = 1, $$25)) - } else if ($truthy(obj['$is_a?']($$($nesting, 'Proc')))) { - return $send(self, 'proc', [], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $iter = $$26.$$p, block = $iter || nil, $post_args, args; + if (o == null) o = nil;; + return self.$Native(o);}, {$$arity: 1, $$s: self}) + } else if ($truthy(obj['$is_a?']($$('Proc')))) { + return $send(self, 'proc', [], function $$13($a){var block = $$13.$$p || nil, $post_args, args, self = $$13.$$s == null ? this : $$13.$$s; + delete $$13.$$p; + ; - if ($iter) $$26.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return self.$Native($send(obj, 'call', Opal.to_a(args), block.$to_proc()));}, $$26.$$s = self, $$26.$$arity = -1, $$26)) + return self.$Native($send(obj, 'call', $to_a(args), block.$to_proc()));}, {$$arity: -1, $$s: self}) } else { return obj } - }, $Kernel_Native$24.$$arity = 1); + }, 1); $alias(self, "_Array", "Array"); - return (Opal.def(self, '$Array', $Kernel_Array$27 = function $$Array(object, $a) { - var $iter = $Kernel_Array$27.$$p, block = $iter || nil, $post_args, args, self = this; + return $def(self, '$Array', function $$Array(object, $a) { + var block = $$Array.$$p || nil, $post_args, args, self = this; - if ($iter) $Kernel_Array$27.$$p = null; - + delete $$Array.$$p; - if ($iter) $Kernel_Array$27.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy(self['$native?'](object))) { - return $send($$$($$($nesting, 'Native'), 'Array'), 'new', [object].concat(Opal.to_a(args)), block.$to_proc()).$to_a()}; + return $send($$$($$('Native'), 'Array'), 'new', [object].concat($to_a(args)), block.$to_proc()).$to_a() + }; return self.$_Array(object); - }, $Kernel_Array$27.$$arity = -2), nil) && 'Array'; + }, -2); })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Object'); - var $nesting = [self].concat($parent_nesting), $Object_$eq_eq$28, $Object_has_key$ques$29, $Object_each$30, $Object_$$$31, $Object_$$$eq$32, $Object_merge$excl$33, $Object_respond_to$ques$34, $Object_respond_to_missing$ques$35, $Object_method_missing$36, $Object_nil$ques$37, $Object_is_a$ques$38, $Object_instance_of$ques$39, $Object_class$40, $Object_to_a$41, $Object_inspect$42; + var $proto = self.$$prototype; - self.$$prototype["native"] = nil; + $proto["native"] = nil; - self.$include($$$($$$('::', 'Native'), 'Wrapper')); + self.$include($$$($$$('Native'), 'Wrapper')); - Opal.def(self, '$==', $Object_$eq_eq$28 = function(other) { + $def(self, '$==', function $Object_$eq_eq$14(other) { var self = this; - return self["native"] === $$$('::', 'Native').$try_convert(other) - }, $Object_$eq_eq$28.$$arity = 1); + return self["native"] === $$$('Native').$try_convert(other) + }, 1); - Opal.def(self, '$has_key?', $Object_has_key$ques$29 = function(name) { + $def(self, '$has_key?', function $Object_has_key$ques$15(name) { var self = this; return Opal.hasOwnProperty.call(self["native"], name) - }, $Object_has_key$ques$29.$$arity = 1); - $alias(self, "key?", "has_key?"); - $alias(self, "include?", "has_key?"); - $alias(self, "member?", "has_key?"); + }, 1); - Opal.def(self, '$each', $Object_each$30 = function $$each($a) { - var $post_args, args, $iter = $Object_each$30.$$p, $yield = $iter || nil, self = this; + $def(self, '$each', function $$each($a) { + var $post_args, args, $yield = $$each.$$p || nil, self = this; - if ($iter) $Object_each$30.$$p = null; + delete $$each.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if (($yield !== nil)) { @@ -420,11 +383,11 @@ Opal.modules["native"] = function(Opal) { ; return self; } else { - return $send(self, 'method_missing', ["each"].concat(Opal.to_a(args))) + return $send(self, 'method_missing', ["each"].concat($to_a(args))) }; - }, $Object_each$30.$$arity = -1); + }, -1); - Opal.def(self, '$[]', $Object_$$$31 = function(key) { + $def(self, '$[]', function $Object_$$$16(key) { var self = this; @@ -434,179 +397,157 @@ Opal.modules["native"] = function(Opal) { return prop; } else { - return $$$('::', 'Native').$call(self["native"], key) + return $$$('Native').$call(self["native"], key) } - }, $Object_$$$31.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Object_$$$eq$32 = function(key, value) { + $def(self, '$[]=', function $Object_$$$eq$17(key, value) { var self = this, native$ = nil; - native$ = $$$('::', 'Native').$try_convert(value); + native$ = $$$('Native').$try_convert(value); if ($truthy(native$ === nil)) { return self["native"][key] = value } else { return self["native"][key] = native$ }; - }, $Object_$$$eq$32.$$arity = 2); + }, 2); - Opal.def(self, '$merge!', $Object_merge$excl$33 = function(other) { + $def(self, '$merge!', function $Object_merge$excl$18(other) { var self = this; - other = $$$('::', 'Native').$convert(other); + other = $$$('Native').$convert(other); for (var prop in other) { self["native"][prop] = other[prop]; } ; return self; - }, $Object_merge$excl$33.$$arity = 1); + }, 1); - Opal.def(self, '$respond_to?', $Object_respond_to$ques$34 = function(name, include_all) { + $def(self, '$respond_to?', function $Object_respond_to$ques$19(name, include_all) { var self = this; - if (include_all == null) { - include_all = false; - }; - return $$$('::', 'Kernel').$instance_method("respond_to?").$bind(self).$call(name, include_all); - }, $Object_respond_to$ques$34.$$arity = -2); + if (include_all == null) include_all = false;; + return $Kernel.$instance_method("respond_to?").$bind(self).$call(name, include_all); + }, -2); - Opal.def(self, '$respond_to_missing?', $Object_respond_to_missing$ques$35 = function(name, include_all) { + $def(self, '$respond_to_missing?', function $Object_respond_to_missing$ques$20(name, include_all) { var self = this; - if (include_all == null) { - include_all = false; - }; + if (include_all == null) include_all = false;; return Opal.hasOwnProperty.call(self["native"], name); - }, $Object_respond_to_missing$ques$35.$$arity = -2); + }, -2); - Opal.def(self, '$method_missing', $Object_method_missing$36 = function $$method_missing(mid, $a) { - var $iter = $Object_method_missing$36.$$p, block = $iter || nil, $post_args, args, self = this, $writer = nil; + $def(self, '$method_missing', function $$method_missing(mid, $a) { + var block = $$method_missing.$$p || nil, $post_args, args, self = this, $writer = nil; - if ($iter) $Object_method_missing$36.$$p = null; - + delete $$method_missing.$$p; - if ($iter) $Object_method_missing$36.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if (mid.charAt(mid.length - 1) === '=') { - return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); + return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); } else { - return $send($$$('::', 'Native'), 'call', [self["native"], mid].concat(Opal.to_a(args)), block.$to_proc()); + return $send($$$('Native'), 'call', [self["native"], mid].concat($to_a(args)), block.$to_proc()); } ; - }, $Object_method_missing$36.$$arity = -2); + }, -2); - Opal.def(self, '$nil?', $Object_nil$ques$37 = function() { - var self = this; - + $def(self, '$nil?', function $Object_nil$ques$21() { + return false - }, $Object_nil$ques$37.$$arity = 0); + }, 0); - Opal.def(self, '$is_a?', $Object_is_a$ques$38 = function(klass) { + $def(self, '$is_a?', function $Object_is_a$ques$22(klass) { var self = this; return Opal.is_a(self, klass); - }, $Object_is_a$ques$38.$$arity = 1); - $alias(self, "kind_of?", "is_a?"); + }, 1); - Opal.def(self, '$instance_of?', $Object_instance_of$ques$39 = function(klass) { + $def(self, '$instance_of?', function $Object_instance_of$ques$23(klass) { var self = this; return self.$$class === klass; - }, $Object_instance_of$ques$39.$$arity = 1); + }, 1); - Opal.def(self, '$class', $Object_class$40 = function() { + $def(self, '$class', function $Object_class$24() { var self = this; return self.$$class; - }, $Object_class$40.$$arity = 0); + }, 0); - Opal.def(self, '$to_a', $Object_to_a$41 = function $$to_a(options) { - var $iter = $Object_to_a$41.$$p, block = $iter || nil, self = this; + $def(self, '$to_a', function $$to_a(options) { + var block = $$to_a.$$p || nil, self = this; - if ($iter) $Object_to_a$41.$$p = null; - + delete $$to_a.$$p; - if ($iter) $Object_to_a$41.$$p = null;; + ; - if (options == null) { - options = $hash2([], {}); - }; - return $send($$$($$$('::', 'Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); - }, $Object_to_a$41.$$arity = -1); - return (Opal.def(self, '$inspect', $Object_inspect$42 = function $$inspect() { + if (options == null) options = $hash2([], {});; + return $send($$$($$$('Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); + }, -1); + + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Object_inspect$42.$$arity = 0), nil) && 'inspect'; - })($$($nesting, 'Native'), $$($nesting, 'BasicObject'), $nesting); + return "#" + }, 0); + $alias(self, "include?", "has_key?"); + $alias(self, "key?", "has_key?"); + $alias(self, "kind_of?", "is_a?"); + return $alias(self, "member?", "has_key?"); + })($$('Native'), $$('BasicObject')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_initialize$43, $Array_each$44, $Array_$$$45, $Array_$$$eq$46, $Array_last$47, $Array_length$48, $Array_inspect$49; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.named = self.$$prototype["native"] = self.$$prototype.get = self.$$prototype.block = self.$$prototype.set = self.$$prototype.length = nil; + $proto.named = $proto["native"] = $proto.get = $proto.block = $proto.set = $proto.length = nil; - self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - self.$include($$($nesting, 'Enumerable')); + self.$include($$$($$('Native'), 'Wrapper')); + self.$include($$('Enumerable')); - Opal.def(self, '$initialize', $Array_initialize$43 = function $$initialize(native$, options) { - var $iter = $Array_initialize$43.$$p, block = $iter || nil, self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $def(self, '$initialize', function $$initialize(native$, options) { + var block = $$initialize.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $Array_initialize$43.$$p = null; - + delete $$initialize.$$p; - if ($iter) $Array_initialize$43.$$p = null;; + ; - if (options == null) { - options = $hash2([], {}); - }; - $send2(self, $find_super(self, 'initialize', $Array_initialize$43, false, true), 'initialize', [native$], null); - self.get = (function() {if ($truthy(($ret_or_1 = options['$[]']("get")))) { - return $ret_or_1 - } else { - return options['$[]']("access") - }; return nil; })(); + if (options == null) options = $hash2([], {});; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [native$], null); + self.get = ($truthy(($ret_or_1 = options['$[]']("get"))) ? ($ret_or_1) : (options['$[]']("access"))); self.named = options['$[]']("named"); - self.set = (function() {if ($truthy(($ret_or_2 = options['$[]']("set")))) { - return $ret_or_2 - } else { - return options['$[]']("access") - }; return nil; })(); - self.length = (function() {if ($truthy(($ret_or_3 = options['$[]']("length")))) { - return $ret_or_3 - } else { - return "length" - }; return nil; })(); + self.set = ($truthy(($ret_or_1 = options['$[]']("set"))) ? ($ret_or_1) : (options['$[]']("access"))); + self.length = ($truthy(($ret_or_1 = options['$[]']("length"))) ? ($ret_or_1) : ("length")); self.block = block; if ($truthy(self.$length() == null)) { - return self.$raise($$($nesting, 'ArgumentError'), "no length found on the array-like object") + return self.$raise($$('ArgumentError'), "no length found on the array-like object") } else { return nil }; - }, $Array_initialize$43.$$arity = -2); + }, -2); - Opal.def(self, '$each', $Array_each$44 = function $$each() { - var $iter = $Array_each$44.$$p, block = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Array_each$44.$$p = null; + delete $$each.$$p; - - if ($iter) $Array_each$44.$$p = null;; - if ($truthy(block)) { - } else { + ; + if (!$truthy(block)) { return self.$enum_for("each") }; @@ -615,24 +556,13 @@ Opal.modules["native"] = function(Opal) { } ; return self; - }, $Array_each$44.$$arity = 0); + }, 0); - Opal.def(self, '$[]', $Array_$$$45 = function(index) { - var self = this, result = nil, $case = nil; + $def(self, '$[]', function $Array_$$$25(index) { + var self = this, result = nil, $ret_or_1 = nil; - result = (function() {$case = index; - if ($$($nesting, 'String')['$===']($case) || $$($nesting, 'Symbol')['$===']($case)) {if ($truthy(self.named)) { - return self["native"][self.named](index) - } else { - return self["native"][index] - }} - else if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy(self.get)) { - return self["native"][self.get](index) - } else { - return self["native"][index] - }} - else { return nil }})(); + result = (($eqeqeq($$('String'), ($ret_or_1 = index)) || ($eqeqeq($$('Symbol'), $ret_or_1))) ? (($truthy(self.named) ? (self["native"][self.named](index)) : (self["native"][index]))) : ($eqeqeq($$('Integer'), $ret_or_1) ? (($truthy(self.get) ? (self["native"][self.get](index)) : (self["native"][index]))) : (nil))); if ($truthy(result)) { if ($truthy(self.block)) { return self.block.$call(result) @@ -642,26 +572,24 @@ Opal.modules["native"] = function(Opal) { } else { return nil }; - }, $Array_$$$45.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Array_$$$eq$46 = function(index, value) { + $def(self, '$[]=', function $Array_$$$eq$26(index, value) { var self = this; if ($truthy(self.set)) { - return self["native"][self.set](index, $$($nesting, 'Native').$convert(value)) + return self["native"][self.set](index, $$('Native').$convert(value)) } else { - return self["native"][index] = $$($nesting, 'Native').$convert(value) + return self["native"][index] = $$('Native').$convert(value) } - }, $Array_$$$eq$46.$$arity = 2); + }, 2); - Opal.def(self, '$last', $Array_last$47 = function $$last(count) { + $def(self, '$last', function $$last(count) { var $a, self = this, index = nil, result = nil; - if (count == null) { - count = nil; - }; + if (count == null) count = nil;; if ($truthy(count)) { index = $rb_minus(self.$length(), 1); @@ -675,107 +603,99 @@ Opal.modules["native"] = function(Opal) { } else { return self['$[]']($rb_minus(self.$length(), 1)) }; - }, $Array_last$47.$$arity = -1); + }, -1); - Opal.def(self, '$length', $Array_length$48 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self["native"][self.length] - }, $Array_length$48.$$arity = 0); - $alias(self, "to_ary", "to_a"); - return (Opal.def(self, '$inspect', $Array_inspect$49 = function $$inspect() { + }, 0); + + $def(self, '$inspect', function $$inspect() { var self = this; return self.$to_a().$inspect() - }, $Array_inspect$49.$$arity = 0), nil) && 'inspect'; - })($$($nesting, 'Native'), null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + return $alias(self, "to_ary", "to_a"); + })($$('Native'), null, $nesting); + (function($base, $super) { var self = $klass($base, $super, 'Numeric'); - var $nesting = [self].concat($parent_nesting), $Numeric_to_n$50; - - return (Opal.def(self, '$to_n', $Numeric_to_n$50 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Numeric_to_n$50.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Proc'); - var $nesting = [self].concat($parent_nesting), $Proc_to_n$51; - - return (Opal.def(self, '$to_n', $Proc_to_n$51 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self - }, $Proc_to_n$51.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_to_n$52; - - return (Opal.def(self, '$to_n', $String_to_n$52 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $String_to_n$52.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Regexp'); - var $nesting = [self].concat($parent_nesting), $Regexp_to_n$53; - - return (Opal.def(self, '$to_n', $Regexp_to_n$53 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Regexp_to_n$53.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'MatchData'); - var $nesting = [self].concat($parent_nesting), $MatchData_to_n$54; + var $proto = self.$$prototype; - self.$$prototype.matches = nil; - return (Opal.def(self, '$to_n', $MatchData_to_n$54 = function $$to_n() { + $proto.matches = nil; + return $def(self, '$to_n', function $$to_n() { var self = this; return self.matches - }, $MatchData_to_n$54.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); + }, 0) + })($nesting[0], null); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Struct'); - var $nesting = [self].concat($parent_nesting), $Struct_to_n$55; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_n', $Struct_to_n$55 = function $$to_n() { - var $$56, self = this, result = nil; + return $def(self, '$to_n', function $$to_n() { + var self = this, result = nil; result = {}; - $send(self, 'each_pair', [], ($$56 = function(name, value){var self = $$56.$$s == null ? this : $$56.$$s; - + $send(self, 'each_pair', [], function $$27(name, value){ - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (value == null) { - value = nil; - }; - return result[name] = $$($nesting, 'Native').$try_convert(value, value);}, $$56.$$s = self, $$56.$$arity = 2, $$56)); + if (value == null) value = nil;; + return result[name] = $$('Native').$try_convert(value, value);}, 2); return result; - }, $Struct_to_n$55.$$arity = 0), nil) && 'to_n' + }, 0) })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_to_n$57; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_n', $Array_to_n$57 = function $$to_n() { + return $def(self, '$to_n', function $$to_n() { var self = this; @@ -784,254 +704,247 @@ Opal.modules["native"] = function(Opal) { for (var i = 0, length = self.length; i < length; i++) { var obj = self[i]; - result.push($$($nesting, 'Native').$try_convert(obj, obj)); + result.push($$('Native').$try_convert(obj, obj)); } return result; - }, $Array_to_n$57.$$arity = 0), nil) && 'to_n' + }, 0) })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Boolean'); - var $nesting = [self].concat($parent_nesting), $Boolean_to_n$58; - - return (Opal.def(self, '$to_n', $Boolean_to_n$58 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Boolean_to_n$58.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Time'); - var $nesting = [self].concat($parent_nesting), $Time_to_n$59; - - return (Opal.def(self, '$to_n', $Time_to_n$59 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self - }, $Time_to_n$59.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'NilClass'); - var $nesting = [self].concat($parent_nesting), $NilClass_to_n$60; - - return (Opal.def(self, '$to_n', $NilClass_to_n$60 = function $$to_n() { - var self = this; - + + return $def(self, '$to_n', function $$to_n() { + return null; - }, $NilClass_to_n$60.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Hash'); + }, 0) + })($nesting[0], null); + if (!$truthy($$('Hash')['$method_defined?']("_initialize"))) { + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hash'); - var $nesting = [self].concat($parent_nesting), $Hash_initialize$61, $Hash_to_n$62; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - - $alias(self, "_initialize", "initialize"); - - Opal.def(self, '$initialize', $Hash_initialize$61 = function $$initialize(defaults) { - var $iter = $Hash_initialize$61.$$p, block = $iter || nil, self = this; - - if ($iter) $Hash_initialize$61.$$p = null; + $alias(self, "_initialize", "initialize"); - if ($iter) $Hash_initialize$61.$$p = null;; - ; - - if (defaults != null && - (defaults.constructor === undefined || - defaults.constructor === Object)) { - var smap = self.$$smap, - keys = self.$$keys, - key, value; + $def(self, '$initialize', function $$initialize(defaults) { + var block = $$initialize.$$p || nil, self = this; - for (key in defaults) { - value = defaults[key]; - - if (value && - (value.constructor === undefined || - value.constructor === Object)) { - smap[key] = $$($nesting, 'Hash').$new(value); - } else if (value && value.$$is_array) { - value = value.map(function(item) { - if (item && - (item.constructor === undefined || - item.constructor === Object)) { - return $$($nesting, 'Hash').$new(item); - } - - return self.$Native(item); - }); - smap[key] = value - } else { - smap[key] = self.$Native(value); + delete $$initialize.$$p; + + ; + ; + + if (defaults != null && + (defaults.constructor === undefined || + defaults.constructor === Object)) { + var smap = self.$$smap, + keys = self.$$keys, + key, value; + + for (key in defaults) { + value = defaults[key]; + + if (value && + (value.constructor === undefined || + value.constructor === Object)) { + smap[key] = $$('Hash').$new(value); + } else if (value && value.$$is_array) { + value = value.map(function(item) { + if (item && + (item.constructor === undefined || + item.constructor === Object)) { + return $$('Hash').$new(item); + } + + return self.$Native(item); + }); + smap[key] = value + } else { + smap[key] = self.$Native(value); + } + + keys.push(key); } - keys.push(key); + return self; } - return self; - } + return $send(self, '_initialize', [defaults], block.$to_proc()); + ; + }, -1); + return $def(self, '$to_n', function $$to_n() { + var self = this; - return $send(self, '_initialize', [defaults], block.$to_proc()); - ; - }, $Hash_initialize$61.$$arity = -1); - return (Opal.def(self, '$to_n', $Hash_to_n$62 = function $$to_n() { - var self = this; + + var result = {}, + keys = self.$$keys, + smap = self.$$smap, + key, value; - - var result = {}, - keys = self.$$keys, - smap = self.$$smap, - key, value; + for (var i = 0, length = keys.length; i < length; i++) { + key = keys[i]; - for (var i = 0, length = keys.length; i < length; i++) { - key = keys[i]; + if (key.$$is_string) { + value = smap[key]; + } else { + key = key.key; + value = key.value; + } - if (key.$$is_string) { - value = smap[key]; - } else { - key = key.key; - value = key.value; + result[key] = $$('Native').$try_convert(value, value); } - result[key] = $$($nesting, 'Native').$try_convert(value, value); - } - - return result; - - }, $Hash_to_n$62.$$arity = 0), nil) && 'to_n'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + return result; + + }, 0); + })($nesting[0], null, $nesting) + }; + (function($base, $super) { var self = $klass($base, $super, 'Module'); - var $nesting = [self].concat($parent_nesting), $Module_native_module$63; - - return (Opal.def(self, '$native_module', $Module_native_module$63 = function $$native_module() { + + return $def(self, '$native_module', function $$native_module() { var self = this; return Opal.global[self.$name()] = self - }, $Module_native_module$63.$$arity = 0), nil) && 'native_module' - })($nesting[0], null, $nesting); + }, 0) + })($nesting[0], null); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Class'); - var $nesting = [self].concat($parent_nesting), $Class_native_alias$64, $Class_native_class$65; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$native_alias', $Class_native_alias$64 = function $$native_alias(new_jsid, existing_mid) { + $def(self, '$native_alias', function $$native_alias(new_jsid, existing_mid) { var self = this; var aliased = self.prototype['$' + existing_mid]; if (!aliased) { - self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); + self.$raise($$('NameError').$new("undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); } self.prototype[new_jsid] = aliased; - }, $Class_native_alias$64.$$arity = 2); - return (Opal.def(self, '$native_class', $Class_native_class$65 = function $$native_class() { + }, 2); + return $def(self, '$native_class', function $$native_class() { var self = this; self.$native_module(); return self["new"] = self.$new;; - }, $Class_native_class$65.$$arity = 0), nil) && 'native_class'; + }, 0); })($nesting[0], null, $nesting); return ($gvars.$ = ($gvars.global = self.$Native(Opal.global))); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["console"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; +Opal.modules["console"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $send = Opal.send, $gvars = Opal.gvars; - Opal.add_stubs(['$require', '$include', '$raise', '$==', '$arity', '$instance_exec', '$to_proc', '$new']); + Opal.add_stubs('require,include,raise,==,arity,instance_exec,to_proc,new'); self.$require("native"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Console'); - var $nesting = [self].concat($parent_nesting), $Console_clear$1, $Console_trace$2, $Console_log$3, $Console_info$4, $Console_warn$5, $Console_error$6, $Console_time$7, $Console_group$8, $Console_group$excl$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype["native"] = nil; + $proto["native"] = nil; - self.$include($$$($$($nesting, 'Native'), 'Wrapper')); + self.$include($$$($$('Native'), 'Wrapper')); - Opal.def(self, '$clear', $Console_clear$1 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; return self["native"].clear() - }, $Console_clear$1.$$arity = 0); + }, 0); - Opal.def(self, '$trace', $Console_trace$2 = function $$trace() { + $def(self, '$trace', function $$trace() { var self = this; return self["native"].trace() - }, $Console_trace$2.$$arity = 0); + }, 0); - Opal.def(self, '$log', $Console_log$3 = function $$log($a) { + $def(self, '$log', function $$log($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; return self["native"].log.apply(self["native"], args); - }, $Console_log$3.$$arity = -1); + }, -1); - Opal.def(self, '$info', $Console_info$4 = function $$info($a) { + $def(self, '$info', function $$info($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; return self["native"].info.apply(self["native"], args); - }, $Console_info$4.$$arity = -1); + }, -1); - Opal.def(self, '$warn', $Console_warn$5 = function $$warn($a) { + $def(self, '$warn', function $$warn($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; return self["native"].warn.apply(self["native"], args); - }, $Console_warn$5.$$arity = -1); + }, -1); - Opal.def(self, '$error', $Console_error$6 = function $$error($a) { + $def(self, '$error', function $$error($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; return self["native"].error.apply(self["native"], args); - }, $Console_error$6.$$arity = -1); + }, -1); - Opal.def(self, '$time', $Console_time$7 = function $$time(label) { - var $iter = $Console_time$7.$$p, block = $iter || nil, self = this; + $def(self, '$time', function $$time(label) { + var block = $$time.$$p || nil, self = this; - if ($iter) $Console_time$7.$$p = null; - + delete $$time.$$p; - if ($iter) $Console_time$7.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "no block given") + ; + if (!$truthy(block)) { + self.$raise($$('ArgumentError'), "no block given") }; self["native"].time(label); return (function() { try { - if (block.$arity()['$=='](0)) { + if ($eqeq(block.$arity(), 0)) { return $send(self, 'instance_exec', [], block.$to_proc()) } else { return Opal.yield1(block, self); @@ -1039,27 +952,25 @@ Opal.modules["console"] = function(Opal) { } finally { self["native"].timeEnd() }; })();; - }, $Console_time$7.$$arity = 1); + }, 1); - Opal.def(self, '$group', $Console_group$8 = function $$group($a) { - var $iter = $Console_group$8.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$group', function $$group($a) { + var block = $$group.$$p || nil, $post_args, args, self = this; - if ($iter) $Console_group$8.$$p = null; + delete $$group.$$p; + ; - if ($iter) $Console_group$8.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "no block given") + if (!$truthy(block)) { + self.$raise($$('ArgumentError'), "no block given") }; self["native"].group.apply(self["native"], args); return (function() { try { - if (block.$arity()['$=='](0)) { + if ($eqeq(block.$arity(), 0)) { return $send(self, 'instance_exec', [], block.$to_proc()) } else { return Opal.yield1(block, self); @@ -1067,26 +978,24 @@ Opal.modules["console"] = function(Opal) { } finally { self["native"].groupEnd() }; })();; - }, $Console_group$8.$$arity = -1); - return (Opal.def(self, '$group!', $Console_group$excl$9 = function($a) { - var $iter = $Console_group$excl$9.$$p, block = $iter || nil, $post_args, args, self = this; + }, -1); + return $def(self, '$group!', function $Console_group$excl$1($a) { + var block = $Console_group$excl$1.$$p || nil, $post_args, args, self = this; - if ($iter) $Console_group$excl$9.$$p = null; - + delete $Console_group$excl$1.$$p; - if ($iter) $Console_group$excl$9.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - if ((block !== nil)) { - } else { + if (!(block !== nil)) { return nil }; self["native"].groupCollapsed.apply(self["native"], args); return (function() { try { - if (block.$arity()['$=='](0)) { + if ($eqeq(block.$arity(), 0)) { return $send(self, 'instance_exec', [], block.$to_proc()) } else { return Opal.yield1(block, self); @@ -1094,10 +1003,10 @@ Opal.modules["console"] = function(Opal) { } finally { self["native"].groupEnd() }; })();; - }, $Console_group$excl$9.$$arity = -1), nil) && 'group!'; + }, -1); })($nesting[0], null, $nesting); if ($truthy((typeof(Opal.global.console) !== "undefined"))) { - return ($gvars.console = $$($nesting, 'Console').$new(Opal.global.console)) + return ($gvars.console = $$('Console').$new(Opal.global.console)) } else { return nil }; diff --git a/opal/master/console.min.js b/opal/master/console.min.js index 73e37f07..28a34028 100644 --- a/opal/master/console.min.js +++ b/opal/master/console.min.js @@ -1 +1 @@ -Opal.modules.native=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var $base,$Object_inspect$42,$Object_class$40,$Object_each$30,$Object_method_missing$36,$Object_to_a$41,self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2,$range=Opal.range,$alias=Opal.alias,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$gvars=Opal.gvars;return Opal.add_stubs(["$try_convert","$native?","$respond_to?","$to_n","$raise","$inspect","$Native","$proc","$map!","$end_with?","$define_method","$[]","$convert","$call","$to_proc","$new","$each","$native_reader","$native_writer","$extend","$warn","$include","$is_a?","$map","$to_a","$_Array","$method_missing","$bind","$instance_method","$slice","$-","$length","$[]=","$enum_for","$===","$>=","$<<","$each_pair","$_initialize","$name","$native_module"]),function($Native_included$22,$Native_convert$3){var $Native_call$4,$Native_proc$5,$nesting=[$Native_included$22=$module($Native_included$22,"Native")].concat($Native_convert$3);Opal.defs($Native_included$22,"$is_a?",$Native_convert$3=function(object,klass){try{return object instanceof this.$try_convert(klass)}catch(e){return!1}},$Native_convert$3.$$arity=2),Opal.defs($Native_included$22,"$try_convert",$Native_convert$3=function(value,default$){return null==default$&&(default$=nil),this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():default$},$Native_convert$3.$$arity=-2),Opal.defs($Native_included$22,"$convert",$Native_convert$3=function(value){return this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():void this.$raise($$($nesting,"ArgumentError"),value.$inspect()+" isn't native")},$Native_convert$3.$$arity=1),Opal.defs($Native_included$22,"$call",$Native_call$4=function(obj,key,$a){var args,prop=$Native_call$4.$$p,block=prop||nil;prop&&($Native_call$4.$$p=null),prop&&($Native_call$4.$$p=null),args=Opal.slice.call(arguments,2,arguments.length);prop=obj[key];if(prop instanceof Function){for(var converted=new Array(args.length),i=0,l=args.length;i"},$Object_inspect$42.$$arity=0),function($Array_inspect$49,$Array_length$48){var $Array_initialize$43,$Array_each$44,$nesting=[$Array_inspect$49=$klass($Array_inspect$49,null,"Array")].concat($Array_length$48);$Array_inspect$49.$$prototype.named=$Array_inspect$49.$$prototype.native=$Array_inspect$49.$$prototype.get=$Array_inspect$49.$$prototype.block=$Array_inspect$49.$$prototype.set=$Array_inspect$49.$$prototype.length=nil,$Array_inspect$49.$include($$$($$($nesting,"Native"),"Wrapper")),$Array_inspect$49.$include($$($nesting,"Enumerable")),Opal.def($Array_inspect$49,"$initialize",$Array_initialize$43=function(native$,options){var $iter=$Array_initialize$43.$$p,block=$iter||nil,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return $iter&&($Array_initialize$43.$$p=null),$iter&&($Array_initialize$43.$$p=null),null==options&&(options=$hash2([],{})),$send2(this,$find_super(this,"initialize",$Array_initialize$43,!1,!0),"initialize",[native$],null),this.get=$truthy($ret_or_1=options["$[]"]("get"))?$ret_or_1:options["$[]"]("access"),this.named=options["$[]"]("named"),this.set=$truthy($ret_or_2=options["$[]"]("set"))?$ret_or_2:options["$[]"]("access"),this.length=$truthy($ret_or_3=options["$[]"]("length"))?$ret_or_3:"length",this.block=block,$truthy(null==this.$length())?this.$raise($$($nesting,"ArgumentError"),"no length found on the array-like object"):nil},$Array_initialize$43.$$arity=-2),Opal.def($Array_inspect$49,"$each",$Array_each$44=function(){var $iter=$Array_each$44.$$p,block=$iter||nil;if($iter&&($Array_each$44.$$p=null),$iter&&($Array_each$44.$$p=null),!$truthy(block))return this.$enum_for("each");for(var i=0,length=this.$length();i="](rhs)));)result["$<<"](this["$[]"](index)),index=$rb_minus(index,1);return result}return this["$[]"]($rb_minus(this.$length(),1))},$Array_length$48.$$arity=-1),Opal.def($Array_inspect$49,"$length",$Array_length$48=function(){return this.native[this.length]},$Array_length$48.$$arity=0),$alias($Array_inspect$49,"to_ary","to_a"),Opal.def($Array_inspect$49,"$inspect",$Array_inspect$49=function(){return this.$to_a().$inspect()},$Array_inspect$49.$$arity=0)}($$($nesting,"Native"),$nesting),function($Numeric_to_n$50,$parent_nesting){[$Numeric_to_n$50=$klass($Numeric_to_n$50,null,"Numeric")].concat($parent_nesting),Opal.def($Numeric_to_n$50,"$to_n",$Numeric_to_n$50=function(){return this.valueOf()},$Numeric_to_n$50.$$arity=0)}($nesting[0],$nesting),function($Proc_to_n$51,$parent_nesting){[$Proc_to_n$51=$klass($Proc_to_n$51,null,"Proc")].concat($parent_nesting),Opal.def($Proc_to_n$51,"$to_n",$Proc_to_n$51=function(){return this},$Proc_to_n$51.$$arity=0)}($nesting[0],$nesting),function($String_to_n$52,$parent_nesting){[$String_to_n$52=$klass($String_to_n$52,null,"String")].concat($parent_nesting),Opal.def($String_to_n$52,"$to_n",$String_to_n$52=function(){return this.valueOf()},$String_to_n$52.$$arity=0)}($nesting[0],$nesting),function($Regexp_to_n$53,$parent_nesting){[$Regexp_to_n$53=$klass($Regexp_to_n$53,null,"Regexp")].concat($parent_nesting),Opal.def($Regexp_to_n$53,"$to_n",$Regexp_to_n$53=function(){return this.valueOf()},$Regexp_to_n$53.$$arity=0)}($nesting[0],$nesting),function($MatchData_to_n$54,$parent_nesting){[$MatchData_to_n$54=$klass($MatchData_to_n$54,null,"MatchData")].concat($parent_nesting),$MatchData_to_n$54.$$prototype.matches=nil,Opal.def($MatchData_to_n$54,"$to_n",$MatchData_to_n$54=function(){return this.matches},$MatchData_to_n$54.$$arity=0)}($nesting[0],$nesting),function($Struct_to_n$55,$parent_nesting){var $nesting=[$Struct_to_n$55=$klass($Struct_to_n$55,null,"Struct")].concat($parent_nesting);Opal.def($Struct_to_n$55,"$to_n",$Struct_to_n$55=function(){var $$56,result=nil,result={};return $send(this,"each_pair",[],(($$56=function(name,value){null==$$56.$$s||$$56.$$s;return null==name&&(name=nil),null==value&&(value=nil),result[name]=$$($nesting,"Native").$try_convert(value,value)}).$$s=this,$$56.$$arity=2,$$56)),result},$Struct_to_n$55.$$arity=0)}($nesting[0],$nesting),function($Array_to_n$57,$parent_nesting){var $nesting=[$Array_to_n$57=$klass($Array_to_n$57,null,"Array")].concat($parent_nesting);Opal.def($Array_to_n$57,"$to_n",$Array_to_n$57=function(){for(var result=[],i=0,length=this.length;i=,<<,each_pair,method_defined?,_initialize,name,native_module"),function($base,$parent_nesting){var self=$module($base,"Native"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$is_a?",(function(object,klass){try{return object instanceof this.$try_convert(klass)}catch(e){return!1}}),2),$defs(self,"$try_convert",(function(value,default$){return null==default$&&(default$=nil),this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():default$}),-2),$defs(self,"$convert",(function(value){return this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():void this.$raise($$("ArgumentError"),value.$inspect()+" isn't native")}),1),$defs(self,"$call",(function $$call(obj,key,$a){var args,block=$$call.$$p||nil,self=this;delete $$call.$$p,args=Opal.slice.call(arguments,2);var prop=obj[key];if(prop instanceof Function){for(var converted=new Array(args.length),i=0,l=args.length;i0&&(old=$post_args.shift()),null==old&&(old=new$),null==(as=$kwargs.$$smap.as)&&(as=nil),$truthy(old["$end_with?"]("="))?$send(self,"define_method",[new$],(function $$4(value){var self=null==$$4.$$s?this:$$4.$$s;return null==self.native&&(self.native=nil),null==value&&(value=nil),self.native[old["$[]"]($range(0,-2,!1))]=$$("Native").$convert(value),value}),{$$arity:1,$$s:self}):$truthy(as)?$send(self,"define_method",[new$],(function $$5($c){var args,block=$$5.$$p||nil,self=null==$$5.$$s?this:$$5.$$s,value=nil;return null==self.native&&(self.native=nil),delete $$5.$$p,args=Opal.slice.call(arguments),value=$send($$("Native"),"call",[self.native,old].concat($to_a(args)),block.$to_proc()),$truthy(value)?as.$new(value.$to_n()):nil}),{$$arity:-1,$$s:self}):$send(self,"define_method",[new$],(function $$6($c){var args,block=$$6.$$p||nil,self=null==$$6.$$s?this:$$6.$$s;return null==self.native&&(self.native=nil),delete $$6.$$p,args=Opal.slice.call(arguments),$send($$("Native"),"call",[self.native,old].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:self})}),-2),$def(self,"$native_reader",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$7(name){var self=null==$$7.$$s?this:$$7.$$s;return null==name&&(name=nil),$send(self,"define_method",[name],(function $$8(){var self=null==$$8.$$s?this:$$8.$$s;return null==self.native&&(self.native=nil),self.$Native(self.native[name])}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:self})}),-1),$def(self,"$native_writer",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$9(name){var self=null==$$9.$$s?this:$$9.$$s;return null==name&&(name=nil),$send(self,"define_method",[name+"="],(function $$10(value){var self=null==$$10.$$s?this:$$10.$$s;return null==self.native&&(self.native=nil),null==value&&(value=nil),self.$Native(self.native[name]=value)}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})}),-1),$def(self,"$native_accessor",(function($a){var $post_args,names,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"native_reader",$to_a(names=$post_args)),$send(self,"native_writer",$to_a(names))}),-1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Wrapper"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$initialize",(function(native$){return $truthy($Kernel["$native?"](native$))||$Kernel.$raise($$("ArgumentError"),native$.$inspect()+" isn't native"),this.native=native$}),1),$def(self,"$to_n",(function(){return null==this.native&&(this.native=nil),this.native}),0),$defs(self,"$included",(function(klass){return klass.$extend($$("Helpers"))}),1)}($nesting[0],$nesting),$defs(self,"$included",(function(base){return this.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),base.$include($$("Wrapper"))}),1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$native?",(function(value){return null==value||!value.$$class}),1),$def(self,"$Native",(function $$Native(obj){return delete $$Native.$$p,$truthy(null==obj)?nil:$truthy(this["$native?"](obj))?$$$($$("Native"),"Object").$new(obj):$truthy(obj["$is_a?"]($$("Array")))?$send(obj,"map",[],(function $$12(o){return null==o&&(o=nil),(null==$$12.$$s?this:$$12.$$s).$Native(o)}),{$$arity:1,$$s:this}):$truthy(obj["$is_a?"]($$("Proc")))?$send(this,"proc",[],(function $$13($a){var args,block=$$13.$$p||nil,self=null==$$13.$$s?this:$$13.$$s;return delete $$13.$$p,args=Opal.slice.call(arguments),self.$Native($send(obj,"call",$to_a(args),block.$to_proc()))}),{$$arity:-1,$$s:this}):obj}),1),$alias(self,"_Array","Array"),$def(self,"$Array",(function $$Array(object,$a){var args,block=$$Array.$$p||nil,self=this;return delete $$Array.$$p,args=Opal.slice.call(arguments,1),$truthy(self["$native?"](object))?$send($$$($$("Native"),"Array"),"new",[object].concat($to_a(args)),block.$to_proc()).$to_a():self.$_Array(object)}),-2)}($nesting[0],$nesting),function($base,$super){var self=$klass($base,$super,"Object");self.$$prototype.native=nil,self.$include($$$($$$("Native"),"Wrapper")),$def(self,"$==",(function(other){return this.native===$$$("Native").$try_convert(other)}),1),$def(self,"$has_key?",(function(name){return Opal.hasOwnProperty.call(this.native,name)}),1),$def(self,"$each",(function $$each($a){var args,$yield=$$each.$$p||nil,self=this;if(delete $$each.$$p,args=Opal.slice.call(arguments),$yield!==nil){for(var key in self.native)Opal.yieldX($yield,[key,self.native[key]]);return self}return $send(self,"method_missing",["each"].concat($to_a(args)))}),-1),$def(self,"$[]",(function(key){var prop=this.native[key];return prop instanceof Function?prop:$$$("Native").$call(this.native,key)}),1),$def(self,"$[]=",(function(key,value){var native$;return native$=$$$("Native").$try_convert(value),$truthy(native$===nil)?this.native[key]=value:this.native[key]=native$}),2),$def(self,"$merge!",(function(other){for(var prop in other=$$$("Native").$convert(other))this.native[prop]=other[prop];return this}),1),$def(self,"$respond_to?",(function(name,include_all){return null==include_all&&(include_all=!1),$Kernel.$instance_method("respond_to?").$bind(this).$call(name,include_all)}),-2),$def(self,"$respond_to_missing?",(function(name,include_all){return null==include_all&&(include_all=!1),Opal.hasOwnProperty.call(this.native,name)}),-2),$def(self,"$method_missing",(function $$method_missing(mid,$a){var args,block=$$method_missing.$$p||nil,self=this,$writer=nil;return delete $$method_missing.$$p,args=Opal.slice.call(arguments,1),"="===mid.charAt(mid.length-1)?($writer=[mid.$slice(0,$rb_minus(mid.$length(),1)),args["$[]"](0)],$send(self,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$send($$$("Native"),"call",[self.native,mid].concat($to_a(args)),block.$to_proc())}),-2),$def(self,"$nil?",(function(){return!1}),0),$def(self,"$is_a?",(function(klass){return Opal.is_a(this,klass)}),1),$def(self,"$instance_of?",(function(klass){return this.$$class===klass}),1),$def(self,"$class",(function(){return this.$$class}),0),$def(self,"$to_a",(function $$to_a(options){var block=$$to_a.$$p||nil;return delete $$to_a.$$p,null==options&&(options=$hash2([],{})),$send($$$($$$("Native"),"Array"),"new",[this.native,options],block.$to_proc()).$to_a()}),-1),$def(self,"$inspect",(function(){return"#"}),0),$alias(self,"include?","has_key?"),$alias(self,"key?","has_key?"),$alias(self,"kind_of?","is_a?"),$alias(self,"member?","has_key?")}($$("Native"),$$("BasicObject")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Array"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.named=$proto.native=$proto.get=$proto.block=$proto.set=$proto.length=nil,self.$include($$$($$("Native"),"Wrapper")),self.$include($$("Enumerable")),$def(self,"$initialize",(function $$initialize(native$,options){var block=$$initialize.$$p||nil,$ret_or_1=nil;return delete $$initialize.$$p,null==options&&(options=$hash2([],{})),$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[native$],null),this.get=$truthy($ret_or_1=options["$[]"]("get"))?$ret_or_1:options["$[]"]("access"),this.named=options["$[]"]("named"),this.set=$truthy($ret_or_1=options["$[]"]("set"))?$ret_or_1:options["$[]"]("access"),this.length=$truthy($ret_or_1=options["$[]"]("length"))?$ret_or_1:"length",this.block=block,$truthy(null==this.$length())?this.$raise($$("ArgumentError"),"no length found on the array-like object"):nil}),-2),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;if(delete $$each.$$p,!$truthy(block))return this.$enum_for("each");for(var i=0,length=this.$length();i rhs : lhs['$>'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $alias = Opal.alias, $send = Opal.send; - - Opal.add_stubs(['$include', '$<=>', '$attr_reader', '$nonzero?', '$d', '$zero?', '$new', '$class', '$-@', '$+@', '$===', '$coerce', '$==', '$>', '$+', '$allocate', '$join', '$compact', '$map', '$to_proc', '$downcase', '$wrap', '$raise', '$clone', '$jd', '$>>', '$wday', '$year', '$month', '$day', '$-', '$to_s', '$to_i', '$<', '$*', '$reverse', '$step', '$abs', '$each']); +Opal.modules["forwardable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $def = Opal.def, $to_a = Opal.to_a, $alias = Opal.alias; + + Opal.add_stubs('each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,def_single_delegator,define_singleton_method'); + + (function($base) { + var self = $module($base, 'Forwardable'); + + + + + $def(self, '$instance_delegate', function $$instance_delegate(hash) { + var self = this; + + return $send(hash, 'each', [], function $$1(methods, accessor){var self = $$1.$$s == null ? this : $$1.$$s; + + + + if (methods == null) methods = nil;; + + if (accessor == null) accessor = nil;; + if (!$truthy(methods['$respond_to?']("each"))) { + methods = [methods] + }; + return $send(methods, 'each', [], function $$2(method){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (method == null) method = nil;; + return self.$def_instance_delegator(accessor, method);}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}) + }, 1); + + $def(self, '$def_instance_delegators', function $$def_instance_delegators(accessor, $a) { + var $post_args, methods, self = this; + + + + $post_args = Opal.slice.call(arguments, 1); + + methods = $post_args;; + return $send(methods, 'each', [], function $$3(method){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (method == null) method = nil;; + if ($truthy(["__send__", "__id__"]['$include?'](method))) { + return nil; + }; + return self.$def_instance_delegator(accessor, method);}, {$$arity: 1, $$s: self}); + }, -2); + + $def(self, '$def_instance_delegator', function $$def_instance_delegator(accessor, method, ali) { + var $yield = $$def_instance_delegator.$$p || nil, self = this; + + delete $$def_instance_delegator.$$p; + + + if (ali == null) ali = method;; + if ($truthy(accessor.$to_s()['$start_with?']("@"))) { + return $send(self, 'define_method', [ali], function $$4($a){var block = $$4.$$p || nil, $post_args, args, self = $$4.$$s == null ? this : $$4.$$s; + + delete $$4.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$instance_variable_get(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + } else { + return $send(self, 'define_method', [ali], function $$5($a){var block = $$5.$$p || nil, $post_args, args, self = $$5.$$s == null ? this : $$5.$$s; + + delete $$5.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$__send__(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + }; + }, -3); + $alias(self, "delegate", "instance_delegate"); + $alias(self, "def_delegators", "def_instance_delegators"); + return $alias(self, "def_delegator", "def_instance_delegator"); + })($nesting[0]); + return (function($base) { + var self = $module($base, 'SingleForwardable'); + + + + + $def(self, '$single_delegate', function $$single_delegate(hash) { + var self = this; + + return $send(hash, 'each', [], function $$6(methods, accessor){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (methods == null) methods = nil;; + + if (accessor == null) accessor = nil;; + if (!$truthy(methods['$respond_to?']("each"))) { + methods = [methods] + }; + return $send(methods, 'each', [], function $$7(method){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (method == null) method = nil;; + return self.$def_single_delegator(accessor, method);}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}) + }, 1); + + $def(self, '$def_single_delegators', function $$def_single_delegators(accessor, $a) { + var $post_args, methods, self = this; + + + + $post_args = Opal.slice.call(arguments, 1); + + methods = $post_args;; + return $send(methods, 'each', [], function $$8(method){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (method == null) method = nil;; + if ($truthy(["__send__", "__id__"]['$include?'](method))) { + return nil; + }; + return self.$def_single_delegator(accessor, method);}, {$$arity: 1, $$s: self}); + }, -2); + + $def(self, '$def_single_delegator', function $$def_single_delegator(accessor, method, ali) { + var $yield = $$def_single_delegator.$$p || nil, self = this; + + delete $$def_single_delegator.$$p; + + + if (ali == null) ali = method;; + if ($truthy(accessor.$to_s()['$start_with?']("@"))) { + return $send(self, 'define_singleton_method', [ali], function $$9($a){var block = $$9.$$p || nil, $post_args, args, self = $$9.$$s == null ? this : $$9.$$s; + + delete $$9.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$instance_variable_get(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + } else { + return $send(self, 'define_singleton_method', [ali], function $$10($a){var block = $$10.$$p || nil, $post_args, args, self = $$10.$$s == null ? this : $$10.$$s; + + delete $$10.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$__send__(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + }; + }, -3); + $alias(self, "delegate", "single_delegate"); + $alias(self, "def_delegators", "def_single_delegators"); + return $alias(self, "def_delegator", "def_single_delegator"); + })($nesting[0]); +}; + +Opal.modules["date/infinity"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $to_ary = Opal.to_ary, $send2 = Opal.send2, $find_super = Opal.find_super, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt; + + Opal.add_stubs('include,<=>,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Date'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Infinity'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.d = nil; + + self.$include($$('Comparable')); + + $def(self, '$initialize', function $$initialize(d) { + var self = this; + + + + if (d == null) d = 1;; + return (self.d = d['$<=>'](0)); + }, -1); + self.$attr_reader("d"); + + $def(self, '$zero?', function $Infinity_zero$ques$1() { + + return false + }, 0); + + $def(self, '$finite?', function $Infinity_finite$ques$2() { + + return false + }, 0); + + $def(self, '$infinite?', function $Infinity_infinite$ques$3() { + var self = this; + + return self.$d()['$nonzero?']() + }, 0); + + $def(self, '$nan?', function $Infinity_nan$ques$4() { + var self = this; + + return self.$d()['$zero?']() + }, 0); + + $def(self, '$abs', function $$abs() { + var self = this; + + return self.$class().$new() + }, 0); + + $def(self, '$-@', function $Infinity_$minus$$5() { + var self = this; + + return self.$class().$new(self.$d()['$-@']()) + }, 0); + + $def(self, '$+@', function $Infinity_$plus$$6() { + var self = this; + + return self.$class().$new(self.$d()['$+@']()) + }, 0); + + $def(self, '$<=>', function $Infinity_$lt_eq_gt$7(other) { + var $a, $b, self = this, $ret_or_1 = nil, l = nil, r = nil; + + if ($eqeqeq($$('Infinity'), ($ret_or_1 = other))) { + return self.$d()['$<=>'](other.$d()) + } else if ($eqeqeq($$('Numeric'), $ret_or_1)) { + return self.$d() + } else { + + try { + + $b = other.$coerce(self), $a = $to_ary($b), (l = ($a[0] == null ? nil : $a[0])), (r = ($a[1] == null ? nil : $a[1])), $b; + return l['$<=>'](r); + } catch ($err) { + if (Opal.rescue($err, [$$('NoMethodError')])) { + try { + return nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + } + }, 1); + + $def(self, '$coerce', function $$coerce(other) { + var $yield = $$coerce.$$p || nil, self = this, $ret_or_1 = nil; + + delete $$coerce.$$p; + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return [self.$d()['$-@'](), self.$d()] + } else { + return $send2(self, $find_super(self, 'coerce', $$coerce, false, true), 'coerce', [other], $yield) + } + }, 1); + return $def(self, '$to_f', function $$to_f() { + var self = this; + + + if ($eqeq(self.d, 0)) { + return 0 + }; + if ($truthy($rb_gt(self.d, 0))) { + return $$$($$('Float'), 'INFINITY') + } else { + return $$$($$('Float'), 'INFINITY')['$-@']() + }; + }, 0); + })($nesting[0], $$('Numeric'), $nesting) + })($nesting[0], null, $nesting) +}; + +Opal.modules["date/date_time"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $alias = Opal.alias, $rb_divide = Opal.rb_divide, $rb_times = Opal.rb_times, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy; + + Opal.add_stubs('wrap,now,parse,new,def_delegators,/,usec,gmt_offset,*,+,-,is_a?,clone,_parse_offset,dup,year,month,day'); return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DateTime'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.date = nil; + + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$now', function $$now() { + var self = this; + + return self.$wrap($$('Time').$now()) + }, 0); + return $def(self, '$parse', function $$parse(str) { + var self = this; + + return self.$wrap($$('Time').$parse(str)) + }, 1); + })(Opal.get_singleton_class(self), $nesting); + + $def(self, '$initialize', function $$initialize(year, month, day, hours, minutes, seconds, offset, start) { + var self = this; + + + + if (year == null) year = -4712;; + + if (month == null) month = 1;; + + if (day == null) day = 1;; + + if (hours == null) hours = 0;; + + if (minutes == null) minutes = 0;; + + if (seconds == null) seconds = 0;; + + if (offset == null) offset = 0;; + + if (start == null) start = $$('ITALY');; + + // Because of Gregorian reform calendar goes from 1582-10-04 to 1582-10-15. + // All days in between end up as 4 october. + if (year === 1582 && month === 10 && day > 4 && day < 15) { + day = 4; + } + ; + self.date = $$('Time').$new(year, month, day, hours, minutes, seconds, offset); + return (self.start = start); + }, -1); + self.$def_delegators("@date", "min", "hour", "sec"); + $alias(self, "minute", "min"); + $alias(self, "second", "sec"); + + $def(self, '$sec_fraction', function $$sec_fraction() { + var self = this; + + return $rb_divide(self.date.$usec(), $$$('Rational').$new(1000000, 1)) + }, 0); + $alias(self, "second_fraction", "sec_fraction"); + + $def(self, '$offset', function $$offset() { + var self = this; + + return $rb_divide(self.date.$gmt_offset(), $rb_times(24, $$$('Rational').$new(3600, 1))) + }, 0); + + $def(self, '$+', function $DateTime_$plus$1(other) { + var self = this; + + return $$$('DateTime').$wrap($rb_plus(self.date, other)) + }, 1); + + $def(self, '$-', function $DateTime_$minus$2(other) { + var self = this, result = nil; + + + if (Opal.is_a(other, $$$('Date'))) other = other.date; + result = $rb_minus(self.date, other); + if ($truthy(result['$is_a?']($$$('Time')))) { + return $$$('DateTime').$wrap(result) + } else { + return result + }; + }, 1); + + $def(self, '$new_offset', function $$new_offset(offset) { + var self = this, new_date = nil; + + + new_date = self.$clone(); + offset = $$('Time').$_parse_offset(offset); + new_date.date.timezone = offset; + return new_date; + }, 1); + + $def(self, '$to_datetime', function $$to_datetime() { + var self = this; + + return self + }, 0); + + $def(self, '$to_time', function $$to_time() { + var self = this; + + return self.date.$dup() + }, 0); + return $def(self, '$to_date', function $$to_date() { + var self = this; + + return $$('Date').$new(self.$year(), self.$month(), self.$day()) + }, 0); + })($nesting[0], $$('Date'), $nesting) +}; + +Opal.modules["date/formatters"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $hash = Opal.hash, $defs = Opal.defs, $alias = Opal.alias; + + Opal.add_stubs('def_formatter'); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Date'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $defs(self, '$def_formatter', function $$def_formatter($a, $b) { + var $post_args, $kwargs, args, kwargs, self = this; + + + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + args = $post_args;; + + kwargs = Opal.kwrestargs($kwargs, {});; + return $send($$('Time'), 'def_formatter', $to_a(args).concat([Opal.to_hash(kwargs).$merge($hash2(["on"], {"on": self}))])); + }, -1); + self.$def_formatter("asctime", "%c"); + $alias(self, "ctime", "asctime"); + self.$def_formatter("iso8601", "%F"); + $alias(self, "xmlschema", "iso8601"); + self.$def_formatter("rfc3339", "%FT%T%:z"); + self.$def_formatter("rfc2822", "%a, %-d %b %Y %T %z"); + $alias(self, "rfc822", "rfc2822"); + self.$def_formatter("httpdate", "%a, %d %b %Y %T GMT", $hash2(["utc"], {"utc": true})); + self.$def_formatter("jisx0301", "%J"); + return $alias(self, "to_s", "iso8601"); + })($nesting[0], null, $nesting); + return (function($base, $super) { + var self = $klass($base, $super, 'DateTime'); + + + + self.$def_formatter("xmlschema", "%FT%T", $hash2(["fractions", "tz_format"], {"fractions": true, "tz_format": "%:z"})); + $alias(self, "iso8601", "xmlschema"); + $alias(self, "rfc3339", "xmlschema"); + self.$def_formatter("jisx0301", "%JT%T", $hash2(["fractions", "tz_format"], {"fractions": true, "tz_format": "%:z"})); + $alias(self, "to_s", "xmlschema"); + return self.$def_formatter("zone", "%:z"); + })($nesting[0], $$('Date')); +}; + +Opal.modules["date"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $rb_plus = Opal.rb_plus, $def = Opal.def, $send = Opal.send, $alias = Opal.alias, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $rb_times = Opal.rb_times, $defs = Opal.defs; + + Opal.add_stubs('require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,clone,prev_day,next_day,_days_in_month,class,-,year,month,day,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each'); + + self.$require("forwardable"); + self.$require("date/infinity"); + self.$require("time"); + (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Date'); - var $nesting = [self].concat($parent_nesting), $Date_initialize$16, $Date_$minus$17, $Date_$plus$18, $Date_$lt$19, $Date_$lt_eq$20, $Date_$gt$21, $Date_$gt_eq$22, $Date_$lt_eq_gt$23, $Date_$gt$gt$24, $Date_$lt$lt$25, $Date_clone$26, $Date_day$27, $Date_friday$ques$28, $Date_jd$29, $Date_julian$ques$30, $Date_monday$ques$31, $Date_month$32, $Date_next$33, $Date_next_day$34, $Date_next_month$35, $Date_next_year$36, $Date_prev_day$37, $Date_prev_month$38, $Date_prev_year$39, $Date_saturday$ques$40, $Date_strftime$41, $Date_sunday$ques$42, $Date_thursday$ques$43, $Date_to_s$44, $Date_to_time$45, $Date_to_n$46, $Date_tuesday$ques$47, $Date_step$48, $Date_upto$51, $Date_downto$52, $Date_wday$53, $Date_wednesday$ques$54, $Date_year$55, $Date_cwday$56, $Date_cweek$57; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.date = $proto.start = nil; + + self.$include($$('Comparable')); + self.$extend($$('Forwardable')); + $const_set($nesting[0], 'JULIAN', $$('Infinity').$new()); + $const_set($nesting[0], 'GREGORIAN', $$('Infinity').$new()['$-@']()); + $const_set($nesting[0], 'ITALY', 2299161); + $const_set($nesting[0], 'ENGLAND', 2361222); + $const_set($nesting[0], 'MONTHNAMES', $rb_plus([nil], ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"])); + $const_set($nesting[0], 'ABBR_MONTHNAMES', ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]); + $const_set($nesting[0], 'DAYNAMES', ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + $const_set($nesting[0], 'ABBR_DAYNAMES', ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$wrap', function $$wrap(native$) { + var self = this, instance = nil; + + + instance = self.$allocate(); + instance.start = $$('ITALY'); + instance.date = native$; + return instance; + }, 1); + + $def(self, '$parse', function $$parse(string, comp) { + var self = this; + + + + if (comp == null) comp = true;; + + var current_date = new Date(); + + var current_day = current_date.getDate(), + current_month = current_date.getMonth(), + current_year = current_date.getFullYear(), + current_wday = current_date.getDay(), + full_month_name_regexp = $$('MONTHNAMES').$compact().$join("|"); + + function match1(match) { return match[1]; } + function match2(match) { return match[2]; } + function match3(match) { return match[3]; } + function match4(match) { return match[4]; } + + // Converts passed short year (0..99) + // to a 4-digits year in the range (1969..2068) + function fromShortYear(fn) { + return function(match) { + var short_year = fn(match); + + if (short_year >= 69) { + short_year += 1900; + } else { + short_year += 2000; + } + return short_year; + } + } + + // Converts month abbr (nov) to a month number + function fromMonthAbbr(fn) { + return function(match) { + var abbr = fn(match).toLowerCase(); + return $$('ABBR_MONTHNAMES').indexOf(abbr) + 1; + } + } + + function toInt(fn) { + return function(match) { + var value = fn(match); + return parseInt(value, 10); + } + } + + // Depending on the 'comp' value appends 20xx to a passed year + function to2000(fn) { + return function(match) { + var value = fn(match); + if (comp) { + return value + 2000; + } else { + return value; + } + } + } + + // Converts passed week day name to a day number + function fromDayName(fn) { + return function(match) { + var dayname = fn(match), + wday = $send($$('DAYNAMES'), 'map', [], "downcase".$to_proc()).indexOf((dayname).$downcase()); + + return current_day - current_wday + wday; + } + } + + // Converts passed month name to a month number + function fromFullMonthName(fn) { + return function(match) { + var month_name = fn(match); + return $send($$('MONTHNAMES').$compact(), 'map', [], "downcase".$to_proc()).indexOf((month_name).$downcase()) + 1; + } + } + + var rules = [ + { + // DD as month day number + regexp: /^(\d{2})$/, + year: current_year, + month: current_month, + day: toInt(match1) + }, + { + // DDD as year day number + regexp: /^(\d{3})$/, + year: current_year, + month: 0, + day: toInt(match1) + }, + { + // MMDD as month and day + regexp: /^(\d{2})(\d{2})$/, + year: current_year, + month: toInt(match1), + day: toInt(match2) + }, + { + // YYDDD as year and day number in 1969--2068 + regexp: /^(\d{2})(\d{3})$/, + year: fromShortYear(toInt(match1)), + month: 0, + day: toInt(match2) + }, + { + // YYMMDD as year, month and day in 1969--2068 + regexp: /^(\d{2})(\d{2})(\d{2})$/, + year: fromShortYear(toInt(match1)), + month: toInt(match2), + day: toInt(match3) + }, + { + // YYYYDDD as year and day number + regexp: /^(\d{4})(\d{3})$/, + year: toInt(match1), + month: 0, + day: toInt(match2) + }, + { + // YYYYMMDD as year, month and day number + regexp: /^(\d{4})(\d{2})(\d{2})$/, + year: toInt(match1), + month: toInt(match2), + day: toInt(match3) + }, + { + // mmm YYYY + regexp: /^([a-z]{3})[\s\.\/\-](\d{3,4})$/, + year: toInt(match2), + month: fromMonthAbbr(match1), + day: 1 + }, + { + // DD mmm YYYY + regexp: /^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i, + year: toInt(match3), + month: fromMonthAbbr(match2), + day: toInt(match1) + }, + { + // mmm DD YYYY + regexp: /^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i, + year: toInt(match3), + month: fromMonthAbbr(match1), + day: toInt(match2) + }, + { + // YYYY mmm DD + regexp: /^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i, + year: toInt(match1), + month: fromMonthAbbr(match2), + day: toInt(match3) + }, + { + // YYYY-MM-DD YYYY/MM/DD YYYY.MM.DD + regexp: /^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/, + year: toInt(match1), + month: toInt(match2), + day: toInt(match3) + }, + { + // YY-MM-DD + regexp: /^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/, + year: to2000(toInt(match1)), + month: toInt(match2), + day: toInt(match3) + }, + { + // DD-MM-YYYY + regexp: /^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/, + year: toInt(match3), + month: toInt(match2), + day: toInt(match1) + }, + { + // ddd + regexp: new RegExp("^(" + $$('DAYNAMES').$join("|") + ")$", 'i'), + year: current_year, + month: current_month, + day: fromDayName(match1) + }, + { + // monthname daynumber YYYY + regexp: new RegExp("^(" + full_month_name_regexp + ")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$", "i"), + year: toInt(match4), + month: fromFullMonthName(match1), + day: toInt(match2) + }, + { + // monthname daynumber + regexp: new RegExp("^(" + full_month_name_regexp + ")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)", "i"), + year: current_year, + month: fromFullMonthName(match1), + day: toInt(match2) + }, + { + // daynumber monthname YYYY + regexp: new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](" + full_month_name_regexp + ")[\\s\\.\\/\\-](\\-?\\d{3,4})$", "i"), + year: toInt(match4), + month: fromFullMonthName(match3), + day: toInt(match1) + }, + { + // YYYY monthname daynumber + regexp: new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-](" + full_month_name_regexp + ")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$", "i"), + year: toInt(match1), + month: fromFullMonthName(match2), + day: toInt(match3) + } + ] + + var rule, i, match; + + for (i = 0; i < rules.length; i++) { + rule = rules[i]; + match = rule.regexp.exec(string); + if (match) { + var year = rule.year; + if (typeof(year) === 'function') { + year = year(match); + } + + var month = rule.month; + if (typeof(month) === 'function') { + month = month(match) - 1 + } + + var day = rule.day; + if (typeof(day) === 'function') { + day = day(match); + } + + var result = new Date(year, month, day); + + // an edge case, JS can't handle 'new Date(1)', minimal year is 1970 + if (year >= 0 && year <= 1970) { + result.setFullYear(year); + } + + return self.$wrap(result); + } + } + ; + return self.$raise($$('ArgumentError'), "invalid date"); + }, -2); + + $def(self, '$today', function $$today() { + var self = this; + + return self.$wrap(new Date()) + }, 0); + + $def(self, '$gregorian_leap?', function $gregorian_leap$ques$1(year) { + + return (new Date(year, 1, 29).getMonth()-1) === 0 + }, 1); + return $alias(self, "civil", "new"); + })(Opal.get_singleton_class(self), $nesting); + + $def(self, '$initialize', function $$initialize(year, month, day, start) { + var self = this; + + + + if (year == null) year = -4712;; + + if (month == null) month = 1;; + + if (day == null) day = 1;; + + if (start == null) start = $$('ITALY');; + + // Because of Gregorian reform calendar goes from 1582-10-04 to 1582-10-15. + // All days in between end up as 4 october. + if (year === 1582 && month === 10 && day > 4 && day < 15) { + day = 4; + } + ; + self.date = new Date(year, month - 1, day); + return (self.start = start); + }, -1); + self.$attr_reader("start"); + + $def(self, '$<=>', function $Date_$lt_eq_gt$2(other) { + var self = this; + + + if (other.$$is_number) { + return self.$jd()['$<=>'](other) + } + + if ($$$('Date')['$==='](other)) { + var a = self.date, b = other.date; + if (!Opal.is_a(self, $$$('DateTime'))) a.setHours(0, 0, 0, 0); + if (!Opal.is_a(other, $$$('DateTime'))) b.setHours(0, 0, 0, 0); + + if (a < b) { + return -1; + } + else if (a > b) { + return 1; + } + else { + return 0; + } + } else { + return nil; + } + + }, 1); + + $def(self, '$>>', function $Date_$gt$gt$3(n) { + var self = this; + + + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self['$<<'](n['$-@']()); + }, 1); + + $def(self, '$<<', function $Date_$lt$lt$4(n) { + var self = this; + + + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_month(n); + }, 1); + + $def(self, '$clone', function $$clone() { + var self = this, date = nil; + + + date = $$('Date').$wrap(self.date.$dup()); + date.start = self.start; + return date; + }, 0); + self.$def_delegators("@date", "sunday?", "monday?", "tuesday?", "wednesday?", "thursday?", "friday?", "saturday?", "day", "month", "year", "wday", "yday"); + $alias(self, "mday", "day"); + $alias(self, "mon", "month"); + + $def(self, '$jd', function $$jd() { + var self = this; + + + //Adapted from http://www.physics.sfasu.edu/astro/javascript/julianday.html + + var mm = self.date.getMonth() + 1, + dd = self.date.getDate(), + yy = self.date.getFullYear(), + hr = 12, mn = 0, sc = 0, + ggg, s, a, j1, jd; + + hr = hr + (mn / 60) + (sc/3600); + + ggg = 1; + if (yy <= 1585) { + ggg = 0; + } + + jd = -1 * Math.floor(7 * (Math.floor((mm + 9) / 12) + yy) / 4); + + s = 1; + if ((mm - 9) < 0) { + s =- 1; + } + + a = Math.abs(mm - 9); + j1 = Math.floor(yy + s * Math.floor(a / 7)); + j1 = -1 * Math.floor((Math.floor(j1 / 100) + 1) * 3 / 4); + + jd = jd + Math.floor(275 * mm / 9) + dd + (ggg * j1); + jd = jd + 1721027 + 2 * ggg + 367 * yy - 0.5; + jd = jd + (hr / 24); + + return jd; + + }, 0); + + $def(self, '$julian?', function $Date_julian$ques$5() { + var self = this; + + return self.date < new Date(1582, 10 - 1, 15, 12) + }, 0); + + $def(self, '$new_start', function $$new_start(start) { + var self = this, new_date = nil; + + + new_date = self.$clone(); + new_date.start = start; + return new_date; + }, 1); + + $def(self, '$next', function $$next() { + var self = this; + + return $rb_plus(self, 1) + }, 0); + + $def(self, '$-', function $Date_$minus$6(date) { + var self = this; + + + + if (date.date) { + return Math.round((self.date - date.date) / (1000 * 60 * 60 * 24)); + } + ; + return self.$prev_day(date); + }, 1); + + $def(self, '$+', function $Date_$plus$7(date) { + var self = this; + + return self.$next_day(date) + }, 1); + + $def(self, '$prev_day', function $$prev_day(n) { + var self = this; + + + + if (n == null) n = 1;; + + if (n.$$is_number) { + var result = self.$clone(); + result.date.setDate(self.date.getDate() - n); + return result; + } + else { + self.$raise($$$('TypeError')); + } + ; + }, -1); + + $def(self, '$next_day', function $$next_day(n) { + var self = this; + + + + if (n == null) n = 1;; + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_day(n['$-@']()); + }, -1); + + $def(self, '$prev_month', function $$prev_month(n) { + var self = this; + + + + if (n == null) n = 1;; + + if (!n.$$is_number) self.$raise($$$('TypeError')) + var result = self.$clone(), date = result.date, cur = date.getDate(); + date.setDate(1); + date.setMonth(date.getMonth() - n); + date.setDate(Math.min(cur, $$('Date').$_days_in_month(date.getFullYear(), date.getMonth()))); + return result; + ; + }, -1); + + $def(self, '$next_month', function $$next_month(n) { + var self = this; + + + + if (n == null) n = 1;; + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_month(n['$-@']()); + }, -1); + + $def(self, '$prev_year', function $$prev_year(years) { + var self = this; + + + + if (years == null) years = 1;; + if (!years.$$is_number) self.$raise($$$('TypeError')); + return self.$class().$new($rb_minus(self.$year(), years), self.$month(), self.$day()); + }, -1); + + $def(self, '$next_year', function $$next_year(years) { + var self = this; + + + + if (years == null) years = 1;; + if (!years.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_year(years['$-@']()); + }, -1); + + $def(self, '$strftime', function $$strftime(format) { + var self = this; + + + + if (format == null) format = "";; + + if (format == '') { + return self.$to_s(); + } + + return self.date.$strftime(format) + ; + }, -1); + + $def(self, '$to_s', function $$to_s() { + var self = this; - self.$$prototype.date = nil; + + var d = self.date, year = d.getFullYear(), month = d.getMonth() + 1, day = d.getDate(); + if (month < 10) { month = '0' + month; } + if (day < 10) { day = '0' + day; } + return year + '-' + month + '-' + day; - self.$include($$($nesting, 'Comparable')); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Infinity'); + }, 0); + + $def(self, '$to_time', function $$to_time() { + var self = this; + + return $$('Time').$new(self.$year(), self.$month(), self.$day()) + }, 0); + + $def(self, '$to_date', function $$to_date() { + var self = this; + + return self + }, 0); + + $def(self, '$to_datetime', function $$to_datetime() { + var self = this; + + return $$('DateTime').$new(self.$year(), self.$month(), self.$day()) + }, 0); + + $def(self, '$to_n', function $$to_n() { + var self = this; - var $nesting = [self].concat($parent_nesting), $Infinity_initialize$1, $Infinity_zero$ques$2, $Infinity_finite$ques$3, $Infinity_infinite$ques$4, $Infinity_nan$ques$5, $Infinity_abs$6, $Infinity_$minus$$7, $Infinity_$plus$$8, $Infinity_$lt_eq_gt$9, $Infinity_coerce$10, $Infinity_to_f$11; + return self.date + }, 0); + + $def(self, '$step', function $$step(limit, step) { + var block = $$step.$$p || nil, self = this, steps_count = nil, steps = nil, result = nil; - self.$$prototype.d = nil; + delete $$step.$$p; - self.$include($$($nesting, 'Comparable')); + ; - Opal.def(self, '$initialize', $Infinity_initialize$1 = function $$initialize(d) { - var self = this; + if (step == null) step = 1;; + steps_count = $rb_minus(limit, self).$to_i(); + steps = ($truthy($rb_lt($rb_times(steps_count, step), 0)) ? ([]) : ($truthy($rb_lt(steps_count, 0)) ? ($send(Opal.Range.$new(0, steps_count['$-@'](), false).$step(step.$abs()), 'map', [], "-@".$to_proc()).$reverse()) : (Opal.Range.$new(0, steps_count, false).$step(step.$abs())))); + result = $send(steps, 'map', [], function $$8(i){var self = $$8.$$s == null ? this : $$8.$$s; - if (d == null) { - d = 1; - }; - return (self.d = d['$<=>'](0)); - }, $Infinity_initialize$1.$$arity = -1); - self.$attr_reader("d"); - - Opal.def(self, '$zero?', $Infinity_zero$ques$2 = function() { - var self = this; + if (i == null) i = nil;; + return $rb_plus(self, i);}, {$$arity: 1, $$s: self}); + if ((block !== nil)) { + + $send(result, 'each', [], function $$9(i){ + + + if (i == null) i = nil;; + return Opal.yield1(block, i);;}, 1); + return self; + } else { + return result + }; + }, -2); + + $def(self, '$upto', function $$upto(max) { + var block = $$upto.$$p || nil, self = this; - return false - }, $Infinity_zero$ques$2.$$arity = 0); + delete $$upto.$$p; - Opal.def(self, '$finite?', $Infinity_finite$ques$3 = function() { - var self = this; + ; + return $send(self, 'step', [max, 1], block.$to_proc()); + }, 1); + + $def(self, '$downto', function $$downto(min) { + var block = $$downto.$$p || nil, self = this; - return false - }, $Infinity_finite$ques$3.$$arity = 0); + delete $$downto.$$p; - Opal.def(self, '$infinite?', $Infinity_infinite$ques$4 = function() { - var self = this; + ; + return $send(self, 'step', [min, -1], block.$to_proc()); + }, 1); + + $def(self, '$cwday', function $$cwday() { + var self = this; - return self.$d()['$nonzero?']() - }, $Infinity_infinite$ques$4.$$arity = 0); - - Opal.def(self, '$nan?', $Infinity_nan$ques$5 = function() { - var self = this; + return self.date.getDay() || 7 + }, 0); + + $def(self, '$cweek', function $$cweek() { + var self = this; - return self.$d()['$zero?']() - }, $Infinity_nan$ques$5.$$arity = 0); - Opal.def(self, '$abs', $Infinity_abs$6 = function $$abs() { - var self = this; - - return self.$class().$new() - }, $Infinity_abs$6.$$arity = 0); + var d = new Date(self.date); + d.setHours(0,0,0); + d.setDate(d.getDate()+4-(d.getDay()||7)); + return Math.ceil((((d-new Date(d.getFullYear(),0,1))/8.64e7)+1)/7); + + }, 0); + $defs(self, '$_days_in_month', function $$_days_in_month(year, month) { - Opal.def(self, '$-@', $Infinity_$minus$$7 = function() { - var self = this; - - return self.$class().$new(self.$d()['$-@']()) - }, $Infinity_$minus$$7.$$arity = 0); - Opal.def(self, '$+@', $Infinity_$plus$$8 = function() { - var self = this; + var leap = ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0); + return [31, (leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; + + }, 2); + $alias(self, "eql?", "=="); + return $alias(self, "succ", "next"); + })($nesting[0], null, $nesting); + self.$require("date/date_time"); + return self.$require("date/formatters"); +}; - return self.$class().$new(self.$d()['$+@']()) - }, $Infinity_$plus$$8.$$arity = 0); +Opal.modules["time"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $defs = Opal.defs, $hash2 = Opal.hash2, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $rb_plus = Opal.rb_plus, $alias = Opal.alias, $def = Opal.def; + + Opal.add_stubs('define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,wrap,require'); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Time'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $defs(self, '$parse', function $$parse(str) { - Opal.def(self, '$<=>', $Infinity_$lt_eq_gt$9 = function(other) { - var $a, $b, self = this, $case = nil, l = nil, r = nil; + return new Date(Date.parse(str)); + }, 1); + $defs(self, '$def_formatter', function $$def_formatter(name, format, $kwargs) { + var on_utc, utc_tz, tz_format, fractions, on, self = this; - return (function() {$case = other; - if ($$($nesting, 'Infinity')['$===']($case)) {return self.$d()['$<=>'](other.$d())} - else if ($$($nesting, 'Numeric')['$===']($case)) {return self.$d()} - else { - try { - - $b = other.$coerce(self), $a = Opal.to_ary($b), (l = ($a[0] == null ? nil : $a[0])), (r = ($a[1] == null ? nil : $a[1])), $b; - return l['$<=>'](r); - } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'NoMethodError')])) { - try { - return nil - } finally { Opal.pop_exception(); } - } else { throw $err; } - };}})() - }, $Infinity_$lt_eq_gt$9.$$arity = 1); - - Opal.def(self, '$coerce', $Infinity_coerce$10 = function $$coerce(other) { - var $iter = $Infinity_coerce$10.$$p, $yield = $iter || nil, self = this, $case = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $Infinity_coerce$10.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) {return [self.$d()['$-@'](), self.$d()]} - else {return $send2(self, $find_super(self, 'coerce', $Infinity_coerce$10, false, true), 'coerce', $zuper, $iter)}})() - }, $Infinity_coerce$10.$$arity = 1); - return (Opal.def(self, '$to_f', $Infinity_to_f$11 = function $$to_f() { - var self = this; + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + on_utc = $kwargs.$$smap["on_utc"]; + if (on_utc == null) on_utc = false; + + utc_tz = $kwargs.$$smap["utc_tz"]; + if (utc_tz == null) utc_tz = nil; + + tz_format = $kwargs.$$smap["tz_format"]; + if (tz_format == null) tz_format = nil; + + fractions = $kwargs.$$smap["fractions"]; + if (fractions == null) fractions = false; + + on = $kwargs.$$smap["on"]; + if (on == null) on = self; + return $send(on, 'define_method', [name], function $$1(fdigits){var $a, $b, self = $$1.$$s == null ? this : $$1.$$s, $ret_or_2 = nil, $ret_or_1 = nil, date = nil, str = nil; - if (self.d['$=='](0)) { - return 0}; - if ($truthy($rb_gt(self.d, 0))) { - return $$$($$($nesting, 'Float'), 'INFINITY') + + if (fdigits == null) fdigits = 0;; + if ($eqeqeq(($truthy(($ret_or_2 = (($a = $$$('::', 'DateTime', 'skip_raise')) ? 'constant' : nil))) ? ($$$('DateTime')) : ($ret_or_2)), ($ret_or_1 = self))) { + date = ($truthy(on_utc) ? (self.$new_offset(0)) : (self)) + } else if ($eqeqeq(($truthy(($ret_or_2 = (($b = $$$('::', 'Date', 'skip_raise')) ? 'constant' : nil))) ? ($$$('Date')) : ($ret_or_2)), $ret_or_1)) { + date = $$$('Time').$utc(self.$year(), self.$month(), self.$day()) + } else if ($eqeqeq($$$('Time'), $ret_or_1)) { + date = ($truthy(on_utc) ? (self.$getutc()) : (self)) } else { - return $$$($$($nesting, 'Float'), 'INFINITY')['$-@']() + nil }; - }, $Infinity_to_f$11.$$arity = 0), nil) && 'to_f'; - })($nesting[0], $$($nesting, 'Numeric'), $nesting); - Opal.const_set($nesting[0], 'JULIAN', $$($nesting, 'Infinity').$new()); - Opal.const_set($nesting[0], 'GREGORIAN', $$($nesting, 'Infinity').$new()['$-@']()); - Opal.const_set($nesting[0], 'ITALY', 2299161); - Opal.const_set($nesting[0], 'ENGLAND', 2361222); - Opal.const_set($nesting[0], 'MONTHNAMES', $rb_plus([nil], ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"])); - Opal.const_set($nesting[0], 'ABBR_MONTHNAMES', ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]); - Opal.const_set($nesting[0], 'DAYNAMES', ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); - Opal.const_set($nesting[0], 'ABBR_DAYNAMES', ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + str = date.$strftime(format); + if (($truthy(fractions) && ($truthy($rb_gt(fdigits, 0))))) { + str = $rb_plus(str, date.$strftime(".%" + (fdigits) + "N")) + }; + if ($truthy(utc_tz)) { + str = $rb_plus(str, ($truthy(self.$utc()) ? (utc_tz) : (date.$strftime(tz_format)))) + } else if ($truthy(tz_format)) { + str = $rb_plus(str, date.$strftime(tz_format)) + }; + return str;}, {$$arity: -1, $$s: self}); + }, -3); + self.$def_formatter("rfc2822", "%a, %d %b %Y %T ", $hash2(["utc_tz", "tz_format"], {"utc_tz": "-00:00", "tz_format": "%z"})); + $alias(self, "rfc822", "rfc2822"); + self.$def_formatter("httpdate", "%a, %d %b %Y %T GMT", $hash2(["on_utc"], {"on_utc": true})); + self.$def_formatter("xmlschema", "%FT%T", $hash2(["utc_tz", "tz_format", "fractions"], {"utc_tz": "Z", "tz_format": "%:z", "fractions": true})); + $alias(self, "iso8601", "xmlschema"); + + $def(self, '$to_date', function $$to_date() { + var self = this; + + return $$('Date').$wrap(self) + }, 0); + + $def(self, '$to_datetime', function $$to_datetime() { + var self = this; + + return $$('DateTime').$wrap(self) + }, 0); + return $def(self, '$to_time', function $$to_time() { + var self = this; + + return self + }, 0); + })($nesting[0], null, $nesting); + return self.$require("date"); +}; + +Opal.modules["date"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $rb_plus = Opal.rb_plus, $def = Opal.def, $send = Opal.send, $alias = Opal.alias, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $rb_times = Opal.rb_times, $defs = Opal.defs; + + Opal.add_stubs('require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,clone,prev_day,next_day,_days_in_month,class,-,year,month,day,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each'); + + self.$require("forwardable"); + self.$require("date/infinity"); + self.$require("time"); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Date'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.date = $proto.start = nil; + + self.$include($$('Comparable')); + self.$extend($$('Forwardable')); + $const_set($nesting[0], 'JULIAN', $$('Infinity').$new()); + $const_set($nesting[0], 'GREGORIAN', $$('Infinity').$new()['$-@']()); + $const_set($nesting[0], 'ITALY', 2299161); + $const_set($nesting[0], 'ENGLAND', 2361222); + $const_set($nesting[0], 'MONTHNAMES', $rb_plus([nil], ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"])); + $const_set($nesting[0], 'ABBR_MONTHNAMES', ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]); + $const_set($nesting[0], 'DAYNAMES', ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + $const_set($nesting[0], 'ABBR_DAYNAMES', ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $wrap$12, $parse$13, $today$14, $gregorian_leap$ques$15; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - $alias(self, "civil", "new"); - Opal.def(self, '$wrap', $wrap$12 = function $$wrap(native$) { + $def(self, '$wrap', function $$wrap(native$) { var self = this, instance = nil; instance = self.$allocate(); + instance.start = $$('ITALY'); instance.date = native$; return instance; - }, $wrap$12.$$arity = 1); + }, 1); - Opal.def(self, '$parse', $parse$13 = function $$parse(string, comp) { + $def(self, '$parse', function $$parse(string, comp) { var self = this; - if (comp == null) { - comp = true; - }; + if (comp == null) comp = true;; var current_date = new Date(); @@ -172,7 +1270,7 @@ Opal.modules["date"] = function(Opal) { current_month = current_date.getMonth(), current_year = current_date.getFullYear(), current_wday = current_date.getDay(), - full_month_name_regexp = $$($nesting, 'MONTHNAMES').$compact().$join("|"); + full_month_name_regexp = $$('MONTHNAMES').$compact().$join("|"); function match1(match) { return match[1]; } function match2(match) { return match[2]; } @@ -198,7 +1296,7 @@ Opal.modules["date"] = function(Opal) { function fromMonthAbbr(fn) { return function(match) { var abbr = fn(match).toLowerCase(); - return $$($nesting, 'ABBR_MONTHNAMES').indexOf(abbr) + 1; + return $$('ABBR_MONTHNAMES').indexOf(abbr) + 1; } } @@ -225,7 +1323,7 @@ Opal.modules["date"] = function(Opal) { function fromDayName(fn) { return function(match) { var dayname = fn(match), - wday = $send($$($nesting, 'DAYNAMES'), 'map', [], "downcase".$to_proc()).indexOf((dayname).$downcase()); + wday = $send($$('DAYNAMES'), 'map', [], "downcase".$to_proc()).indexOf((dayname).$downcase()); return current_day - current_wday + wday; } @@ -235,7 +1333,7 @@ Opal.modules["date"] = function(Opal) { function fromFullMonthName(fn) { return function(match) { var month_name = fn(match); - return $send($$($nesting, 'MONTHNAMES').$compact(), 'map', [], "downcase".$to_proc()).indexOf((month_name).$downcase()) + 1; + return $send($$('MONTHNAMES').$compact(), 'map', [], "downcase".$to_proc()).indexOf((month_name).$downcase()) + 1; } } @@ -340,7 +1438,7 @@ Opal.modules["date"] = function(Opal) { }, { // ddd - regexp: new RegExp("^(" + $$($nesting, 'DAYNAMES').$join("|") + ")$", 'i'), + regexp: new RegExp("^(" + $$('DAYNAMES').$join("|") + ")$", 'i'), year: current_year, month: current_month, day: fromDayName(match1) @@ -407,41 +1505,34 @@ Opal.modules["date"] = function(Opal) { } } ; - return self.$raise($$($nesting, 'ArgumentError'), "invalid date"); - }, $parse$13.$$arity = -2); + return self.$raise($$('ArgumentError'), "invalid date"); + }, -2); - Opal.def(self, '$today', $today$14 = function $$today() { + $def(self, '$today', function $$today() { var self = this; return self.$wrap(new Date()) - }, $today$14.$$arity = 0); - return (Opal.def(self, '$gregorian_leap?', $gregorian_leap$ques$15 = function(year) { - var self = this; - + }, 0); + + $def(self, '$gregorian_leap?', function $gregorian_leap$ques$1(year) { + return (new Date(year, 1, 29).getMonth()-1) === 0 - }, $gregorian_leap$ques$15.$$arity = 1), nil) && 'gregorian_leap?'; + }, 1); + return $alias(self, "civil", "new"); })(Opal.get_singleton_class(self), $nesting); - Opal.def(self, '$initialize', $Date_initialize$16 = function $$initialize(year, month, day, start) { + $def(self, '$initialize', function $$initialize(year, month, day, start) { var self = this; - if (year == null) { - year = -4712; - }; + if (year == null) year = -4712;; - if (month == null) { - month = 1; - }; + if (month == null) month = 1;; - if (day == null) { - day = 1; - }; + if (day == null) day = 1;; - if (start == null) { - start = $$($nesting, 'ITALY'); - }; + if (start == null) start = $$('ITALY');; // Because of Gregorian reform calendar goes from 1582-10-04 to 1582-10-15. // All days in between end up as 4 october. @@ -449,87 +1540,12 @@ Opal.modules["date"] = function(Opal) { day = 4; } ; - return (self.date = new Date(year, month - 1, day)); - }, $Date_initialize$16.$$arity = -1); - - Opal.def(self, '$-', $Date_$minus$17 = function(date) { - var self = this; - - - if (date.$$is_number) { - var result = self.$clone(); - result.date.setDate(self.date.getDate() - date); - return result; - } - else if (date.date) { - return Math.round((self.date - date.date) / (1000 * 60 * 60 * 24)); - } - else { - self.$raise($$($nesting, 'TypeError')); - } - - }, $Date_$minus$17.$$arity = 1); - - Opal.def(self, '$+', $Date_$plus$18 = function(date) { - var self = this; - - - if (date.$$is_number) { - var result = self.$clone(); - result.date.setDate(self.date.getDate() + date); - return result; - } - else { - self.$raise($$($nesting, 'TypeError')); - } - - }, $Date_$plus$18.$$arity = 1); - - Opal.def(self, '$<', $Date_$lt$19 = function(other) { - var self = this; - - - var a = self.date, b = other.date; - a.setHours(0, 0, 0, 0); - b.setHours(0, 0, 0, 0); - return a < b; - - }, $Date_$lt$19.$$arity = 1); - - Opal.def(self, '$<=', $Date_$lt_eq$20 = function(other) { - var self = this; - - - var a = self.date, b = other.date; - a.setHours(0, 0, 0, 0); - b.setHours(0, 0, 0, 0); - return a <= b; - - }, $Date_$lt_eq$20.$$arity = 1); - - Opal.def(self, '$>', $Date_$gt$21 = function(other) { - var self = this; - - - var a = self.date, b = other.date; - a.setHours(0, 0, 0, 0); - b.setHours(0, 0, 0, 0); - return a > b; - - }, $Date_$gt$21.$$arity = 1); - - Opal.def(self, '$>=', $Date_$gt_eq$22 = function(other) { - var self = this; - - - var a = self.date, b = other.date; - a.setHours(0, 0, 0, 0); - b.setHours(0, 0, 0, 0); - return a >= b; - - }, $Date_$gt_eq$22.$$arity = 1); + self.date = new Date(year, month - 1, day); + return (self.start = start); + }, -1); + self.$attr_reader("start"); - Opal.def(self, '$<=>', $Date_$lt_eq_gt$23 = function(other) { + $def(self, '$<=>', function $Date_$lt_eq_gt$2(other) { var self = this; @@ -537,10 +1553,10 @@ Opal.modules["date"] = function(Opal) { return self.$jd()['$<=>'](other) } - if ($$($nesting, 'Date')['$==='](other)) { + if ($$$('Date')['$==='](other)) { var a = self.date, b = other.date; - a.setHours(0, 0, 0, 0); - b.setHours(0, 0, 0, 0); + if (!Opal.is_a(self, $$$('DateTime'))) a.setHours(0, 0, 0, 0); + if (!Opal.is_a(other, $$$('DateTime'))) b.setHours(0, 0, 0, 0); if (a < b) { return -1; @@ -555,56 +1571,37 @@ Opal.modules["date"] = function(Opal) { return nil; } - }, $Date_$lt_eq_gt$23.$$arity = 1); + }, 1); - Opal.def(self, '$>>', $Date_$gt$gt$24 = function(n) { + $def(self, '$>>', function $Date_$gt$gt$3(n) { var self = this; - if (!n.$$is_number) { - self.$raise($$($nesting, 'TypeError')); - } - - var result = self.$clone(), date = result.date, cur = date.getDate(); - date.setDate(1); - date.setMonth(date.getMonth() + n); - date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth()))); - return result; - - }, $Date_$gt$gt$24.$$arity = 1); + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self['$<<'](n['$-@']()); + }, 1); - Opal.def(self, '$<<', $Date_$lt$lt$25 = function(n) { + $def(self, '$<<', function $Date_$lt$lt$4(n) { var self = this; - if (!n.$$is_number) { - self.$raise($$($nesting, 'TypeError')); - } - - return self['$>>'](-n); - - }, $Date_$lt$lt$25.$$arity = 1); - $alias(self, "eql?", "=="); - - Opal.def(self, '$clone', $Date_clone$26 = function $$clone() { - var self = this; - - return $$($nesting, 'Date').$wrap(new Date(self.date.getTime())) - }, $Date_clone$26.$$arity = 0); - - Opal.def(self, '$day', $Date_day$27 = function $$day() { - var self = this; - - return self.date.getDate() - }, $Date_day$27.$$arity = 0); + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_month(n); + }, 1); - Opal.def(self, '$friday?', $Date_friday$ques$28 = function() { - var self = this; + $def(self, '$clone', function $$clone() { + var self = this, date = nil; - return self.$wday()['$=='](5) - }, $Date_friday$ques$28.$$arity = 0); + + date = $$('Date').$wrap(self.date.$dup()); + date.start = self.start; + return date; + }, 0); + self.$def_delegators("@date", "sunday?", "monday?", "tuesday?", "wednesday?", "thursday?", "friday?", "saturday?", "day", "month", "year", "wday", "yday"); + $alias(self, "mday", "day"); + $alias(self, "mon", "month"); - Opal.def(self, '$jd', $Date_jd$29 = function $$jd() { + $def(self, '$jd', function $$jd() { var self = this; @@ -640,147 +1637,137 @@ Opal.modules["date"] = function(Opal) { return jd; - }, $Date_jd$29.$$arity = 0); + }, 0); - Opal.def(self, '$julian?', $Date_julian$ques$30 = function() { + $def(self, '$julian?', function $Date_julian$ques$5() { var self = this; return self.date < new Date(1582, 10 - 1, 15, 12) - }, $Date_julian$ques$30.$$arity = 0); - - Opal.def(self, '$monday?', $Date_monday$ques$31 = function() { - var self = this; - - return self.$wday()['$=='](1) - }, $Date_monday$ques$31.$$arity = 0); + }, 0); - Opal.def(self, '$month', $Date_month$32 = function $$month() { - var self = this; + $def(self, '$new_start', function $$new_start(start) { + var self = this, new_date = nil; - return self.date.getMonth() + 1 - }, $Date_month$32.$$arity = 0); + + new_date = self.$clone(); + new_date.start = start; + return new_date; + }, 1); - Opal.def(self, '$next', $Date_next$33 = function $$next() { + $def(self, '$next', function $$next() { var self = this; return $rb_plus(self, 1) - }, $Date_next$33.$$arity = 0); + }, 0); - Opal.def(self, '$next_day', $Date_next_day$34 = function $$next_day(n) { + $def(self, '$-', function $Date_$minus$6(date) { var self = this; - if (n == null) { - n = 1; - }; - return $rb_plus(self, n); - }, $Date_next_day$34.$$arity = -1); + if (date.date) { + return Math.round((self.date - date.date) / (1000 * 60 * 60 * 24)); + } + ; + return self.$prev_day(date); + }, 1); - Opal.def(self, '$next_month', $Date_next_month$35 = function $$next_month(n) { + $def(self, '$+', function $Date_$plus$7(date) { var self = this; - - - if (n == null) { - n = 1; - }; - - var result = self.$clone(), date = result.date, cur = date.getDate(); - date.setDate(1); - date.setMonth(date.getMonth() + n); - date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth()))); - return result; - ; - }, $Date_next_month$35.$$arity = -1); + return self.$next_day(date) + }, 1); - Opal.def(self, '$next_year', $Date_next_year$36 = function $$next_year(years) { + $def(self, '$prev_day', function $$prev_day(n) { var self = this; - if (years == null) { - years = 1; - }; - return self.$class().$new($rb_plus(self.$year(), years), self.$month(), self.$day()); - }, $Date_next_year$36.$$arity = -1); + if (n == null) n = 1;; + + if (n.$$is_number) { + var result = self.$clone(); + result.date.setDate(self.date.getDate() - n); + return result; + } + else { + self.$raise($$$('TypeError')); + } + ; + }, -1); - Opal.def(self, '$prev_day', $Date_prev_day$37 = function $$prev_day(n) { + $def(self, '$next_day', function $$next_day(n) { var self = this; - if (n == null) { - n = 1; - }; - return $rb_minus(self, n); - }, $Date_prev_day$37.$$arity = -1); + if (n == null) n = 1;; + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_day(n['$-@']()); + }, -1); - Opal.def(self, '$prev_month', $Date_prev_month$38 = function $$prev_month(n) { + $def(self, '$prev_month', function $$prev_month(n) { var self = this; - if (n == null) { - n = 1; - }; + if (n == null) n = 1;; + if (!n.$$is_number) self.$raise($$$('TypeError')) var result = self.$clone(), date = result.date, cur = date.getDate(); date.setDate(1); date.setMonth(date.getMonth() - n); - date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth()))); + date.setDate(Math.min(cur, $$('Date').$_days_in_month(date.getFullYear(), date.getMonth()))); return result; ; - }, $Date_prev_month$38.$$arity = -1); + }, -1); - Opal.def(self, '$prev_year', $Date_prev_year$39 = function $$prev_year(years) { + $def(self, '$next_month', function $$next_month(n) { var self = this; - if (years == null) { - years = 1; - }; + if (n == null) n = 1;; + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_month(n['$-@']()); + }, -1); + + $def(self, '$prev_year', function $$prev_year(years) { + var self = this; + + + + if (years == null) years = 1;; + if (!years.$$is_number) self.$raise($$$('TypeError')); return self.$class().$new($rb_minus(self.$year(), years), self.$month(), self.$day()); - }, $Date_prev_year$39.$$arity = -1); + }, -1); - Opal.def(self, '$saturday?', $Date_saturday$ques$40 = function() { + $def(self, '$next_year', function $$next_year(years) { var self = this; - return self.$wday()['$=='](6) - }, $Date_saturday$ques$40.$$arity = 0); + + + if (years == null) years = 1;; + if (!years.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_year(years['$-@']()); + }, -1); - Opal.def(self, '$strftime', $Date_strftime$41 = function $$strftime(format) { + $def(self, '$strftime', function $$strftime(format) { var self = this; - if (format == null) { - format = ""; - }; + if (format == null) format = "";; if (format == '') { return self.$to_s(); } - return self.date.$strftime(format); + return self.date.$strftime(format) ; - }, $Date_strftime$41.$$arity = -1); - $alias(self, "succ", "next"); - - Opal.def(self, '$sunday?', $Date_sunday$ques$42 = function() { - var self = this; - - return self.$wday()['$=='](0) - }, $Date_sunday$ques$42.$$arity = 0); - - Opal.def(self, '$thursday?', $Date_thursday$ques$43 = function() { - var self = this; - - return self.$wday()['$=='](4) - }, $Date_thursday$ques$43.$$arity = 0); + }, -1); - Opal.def(self, '$to_s', $Date_to_s$44 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; @@ -789,114 +1776,86 @@ Opal.modules["date"] = function(Opal) { if (day < 10) { day = '0' + day; } return year + '-' + month + '-' + day; - }, $Date_to_s$44.$$arity = 0); + }, 0); - Opal.def(self, '$to_time', $Date_to_time$45 = function $$to_time() { + $def(self, '$to_time', function $$to_time() { var self = this; - return $$($nesting, 'Time').$new(self.$year(), self.$month(), self.$day()) - }, $Date_to_time$45.$$arity = 0); + return $$('Time').$new(self.$year(), self.$month(), self.$day()) + }, 0); - Opal.def(self, '$to_n', $Date_to_n$46 = function $$to_n() { + $def(self, '$to_date', function $$to_date() { var self = this; - return self.date - }, $Date_to_n$46.$$arity = 0); + return self + }, 0); - Opal.def(self, '$tuesday?', $Date_tuesday$ques$47 = function() { + $def(self, '$to_datetime', function $$to_datetime() { var self = this; - return self.$wday()['$=='](2) - }, $Date_tuesday$ques$47.$$arity = 0); + return $$('DateTime').$new(self.$year(), self.$month(), self.$day()) + }, 0); - Opal.def(self, '$step', $Date_step$48 = function $$step(limit, step) { - var $iter = $Date_step$48.$$p, block = $iter || nil, $$49, $$50, self = this, steps_count = nil, steps = nil, result = nil; + $def(self, '$to_n', function $$to_n() { + var self = this; - if ($iter) $Date_step$48.$$p = null; - + return self.date + }, 0); + + $def(self, '$step', function $$step(limit, step) { + var block = $$step.$$p || nil, self = this, steps_count = nil, steps = nil, result = nil; + + delete $$step.$$p; - if ($iter) $Date_step$48.$$p = null;; + ; - if (step == null) { - step = 1; - }; + if (step == null) step = 1;; steps_count = $rb_minus(limit, self).$to_i(); - steps = (function() {if ($truthy($rb_lt($rb_times(steps_count, step), 0))) { - return [] - } else if ($truthy($rb_lt(steps_count, 0))) { - return $send(Opal.Range.$new(0, steps_count['$-@'](), false).$step(step.$abs()), 'map', [], "-@".$to_proc()).$reverse() - } else { - return Opal.Range.$new(0, steps_count, false).$step(step.$abs()) - }; return nil; })(); - result = $send(steps, 'map', [], ($$49 = function(i){var self = $$49.$$s == null ? this : $$49.$$s; + steps = ($truthy($rb_lt($rb_times(steps_count, step), 0)) ? ([]) : ($truthy($rb_lt(steps_count, 0)) ? ($send(Opal.Range.$new(0, steps_count['$-@'](), false).$step(step.$abs()), 'map', [], "-@".$to_proc()).$reverse()) : (Opal.Range.$new(0, steps_count, false).$step(step.$abs())))); + result = $send(steps, 'map', [], function $$8(i){var self = $$8.$$s == null ? this : $$8.$$s; - if (i == null) { - i = nil; - }; - return $rb_plus(self, i);}, $$49.$$s = self, $$49.$$arity = 1, $$49)); + if (i == null) i = nil;; + return $rb_plus(self, i);}, {$$arity: 1, $$s: self}); if ((block !== nil)) { - $send(result, 'each', [], ($$50 = function(i){var self = $$50.$$s == null ? this : $$50.$$s; - + $send(result, 'each', [], function $$9(i){ - if (i == null) { - i = nil; - }; - return Opal.yield1(block, i);;}, $$50.$$s = self, $$50.$$arity = 1, $$50)); + if (i == null) i = nil;; + return Opal.yield1(block, i);;}, 1); return self; } else { return result }; - }, $Date_step$48.$$arity = -2); + }, -2); - Opal.def(self, '$upto', $Date_upto$51 = function $$upto(max) { - var $iter = $Date_upto$51.$$p, block = $iter || nil, self = this; + $def(self, '$upto', function $$upto(max) { + var block = $$upto.$$p || nil, self = this; - if ($iter) $Date_upto$51.$$p = null; + delete $$upto.$$p; - - if ($iter) $Date_upto$51.$$p = null;; + ; return $send(self, 'step', [max, 1], block.$to_proc()); - }, $Date_upto$51.$$arity = 1); + }, 1); - Opal.def(self, '$downto', $Date_downto$52 = function $$downto(min) { - var $iter = $Date_downto$52.$$p, block = $iter || nil, self = this; + $def(self, '$downto', function $$downto(min) { + var block = $$downto.$$p || nil, self = this; - if ($iter) $Date_downto$52.$$p = null; + delete $$downto.$$p; - - if ($iter) $Date_downto$52.$$p = null;; + ; return $send(self, 'step', [min, -1], block.$to_proc()); - }, $Date_downto$52.$$arity = 1); + }, 1); - Opal.def(self, '$wday', $Date_wday$53 = function $$wday() { - var self = this; - - return self.date.getDay() - }, $Date_wday$53.$$arity = 0); - - Opal.def(self, '$wednesday?', $Date_wednesday$ques$54 = function() { - var self = this; - - return self.$wday()['$=='](3) - }, $Date_wednesday$ques$54.$$arity = 0); - - Opal.def(self, '$year', $Date_year$55 = function $$year() { - var self = this; - - return self.date.getFullYear() - }, $Date_year$55.$$arity = 0); - - Opal.def(self, '$cwday', $Date_cwday$56 = function $$cwday() { + $def(self, '$cwday', function $$cwday() { var self = this; return self.date.getDay() || 7 - }, $Date_cwday$56.$$arity = 0); + }, 0); - Opal.def(self, '$cweek', $Date_cweek$57 = function $$cweek() { + $def(self, '$cweek', function $$cweek() { var self = this; @@ -905,12 +1864,17 @@ Opal.modules["date"] = function(Opal) { d.setDate(d.getDate()+4-(d.getDay()||7)); return Math.ceil((((d-new Date(d.getFullYear(),0,1))/8.64e7)+1)/7); - }, $Date_cweek$57.$$arity = 0); - - function days_in_month(year, month) { + }, 0); + $defs(self, '$_days_in_month', function $$_days_in_month(year, month) { + + var leap = ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0); - return [31, (leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] - } - ; - })($nesting[0], null, $nesting) + return [31, (leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; + + }, 2); + $alias(self, "eql?", "=="); + return $alias(self, "succ", "next"); + })($nesting[0], null, $nesting); + self.$require("date/date_time"); + return self.$require("date/formatters"); }; diff --git a/opal/master/date.min.js b/opal/master/date.min.js index 054e8716..de8ee223 100644 --- a/opal/master/date.min.js +++ b/opal/master/date.min.js @@ -1 +1 @@ -Opal.modules.date=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$attr_reader","$nonzero?","$d","$zero?","$new","$class","$-@","$+@","$===","$coerce","$==","$>","$+","$allocate","$join","$compact","$map","$to_proc","$downcase","$wrap","$raise","$clone","$jd","$>>","$wday","$year","$month","$day","$-","$to_s","$to_i","$<","$*","$reverse","$step","$abs","$each"]),function($Date_cweek$57,$Date_cwday$56){var $Date_step$48,$Date_upto$51,$Date_downto$52,$Date_cweek$57=$klass($Date_cweek$57,null,"Date"),$nesting=[$Date_cweek$57].concat($Date_cwday$56);function days_in_month(year,month){return[31,year%4==0&&year%100!=0||year%400==0?29:28,31,30,31,30,31,31,30,31,30,31][month]}$Date_cweek$57.$$prototype.date=nil,$Date_cweek$57.$include($$($nesting,"Comparable")),function($base,$Infinity_to_f$11,$Infinity_$lt_eq_gt$9){var $Infinity_coerce$10,$nesting=[$Infinity_to_f$11=$klass($base,$Infinity_to_f$11,"Infinity")].concat($Infinity_$lt_eq_gt$9);$Infinity_to_f$11.$$prototype.d=nil,$Infinity_to_f$11.$include($$($nesting,"Comparable")),Opal.def($Infinity_to_f$11,"$initialize",$Infinity_$lt_eq_gt$9=function(d){return null==d&&(d=1),this.d=d["$<=>"](0)},$Infinity_$lt_eq_gt$9.$$arity=-1),$Infinity_to_f$11.$attr_reader("d"),Opal.def($Infinity_to_f$11,"$zero?",$Infinity_$lt_eq_gt$9=function(){return!1},$Infinity_$lt_eq_gt$9.$$arity=0),Opal.def($Infinity_to_f$11,"$finite?",$Infinity_$lt_eq_gt$9=function(){return!1},$Infinity_$lt_eq_gt$9.$$arity=0),Opal.def($Infinity_to_f$11,"$infinite?",$Infinity_$lt_eq_gt$9=function(){return this.$d()["$nonzero?"]()},$Infinity_$lt_eq_gt$9.$$arity=0),Opal.def($Infinity_to_f$11,"$nan?",$Infinity_$lt_eq_gt$9=function(){return this.$d()["$zero?"]()},$Infinity_$lt_eq_gt$9.$$arity=0),Opal.def($Infinity_to_f$11,"$abs",$Infinity_$lt_eq_gt$9=function(){return this.$class().$new()},$Infinity_$lt_eq_gt$9.$$arity=0),Opal.def($Infinity_to_f$11,"$-@",$Infinity_$lt_eq_gt$9=function(){return this.$class().$new(this.$d()["$-@"]())},$Infinity_$lt_eq_gt$9.$$arity=0),Opal.def($Infinity_to_f$11,"$+@",$Infinity_$lt_eq_gt$9=function(){return this.$class().$new(this.$d()["$+@"]())},$Infinity_$lt_eq_gt$9.$$arity=0),Opal.def($Infinity_to_f$11,"$<=>",$Infinity_$lt_eq_gt$9=function(other){var $a,$case,r,self=this,l=nil;return function(){if($case=other,$$($nesting,"Infinity")["$==="]($case))return self.$d()["$<=>"](other.$d());if($$($nesting,"Numeric")["$==="]($case))return self.$d();try{return $a=other.$coerce(self),$a=Opal.to_ary($a),l=null==$a[0]?nil:$a[0],r=null==$a[1]?nil:$a[1],l["$<=>"](r)}catch($err){if(!Opal.rescue($err,[$$($nesting,"NoMethodError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}()},$Infinity_$lt_eq_gt$9.$$arity=1),Opal.def($Infinity_to_f$11,"$coerce",$Infinity_coerce$10=function(other){var $zuper_ii,$iter=$Infinity_coerce$10.$$p,self=this,$case=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Infinity_coerce$10.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $case=other,$$($nesting,"Numeric")["$==="]($case)?[self.$d()["$-@"](),self.$d()]:$send2(self,$find_super(self,"coerce",$Infinity_coerce$10,!1,!0),"coerce",$zuper,$iter)},$Infinity_coerce$10.$$arity=1),Opal.def($Infinity_to_f$11,"$to_f",$Infinity_to_f$11=function(){var lhs,rhs;return this.d["$=="](0)?0:$truthy((lhs=this.d,rhs=0,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))?$$$($$($nesting,"Float"),"INFINITY"):$$$($$($nesting,"Float"),"INFINITY")["$-@"]()},$Infinity_to_f$11.$$arity=0)}($nesting[0],$$($nesting,"Numeric"),$nesting),Opal.const_set($nesting[0],"JULIAN",$$($nesting,"Infinity").$new()),Opal.const_set($nesting[0],"GREGORIAN",$$($nesting,"Infinity").$new()["$-@"]()),Opal.const_set($nesting[0],"ITALY",2299161),Opal.const_set($nesting[0],"ENGLAND",2361222),Opal.const_set($nesting[0],"MONTHNAMES",$rb_plus([nil],["January","February","March","April","May","June","July","August","September","October","November","December"])),Opal.const_set($nesting[0],"ABBR_MONTHNAMES",["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),Opal.const_set($nesting[0],"DAYNAMES",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),Opal.const_set($nesting[0],"ABBR_DAYNAMES",["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function($gregorian_leap$ques$15,$today$14){var $nesting=[$gregorian_leap$ques$15].concat($today$14);$alias($gregorian_leap$ques$15,"civil","new"),Opal.def($gregorian_leap$ques$15,"$wrap",$today$14=function(native$){var instance=nil;return(instance=this.$allocate()).date=native$,instance},$today$14.$$arity=1),Opal.def($gregorian_leap$ques$15,"$parse",$today$14=function(string,comp){null==comp&&(comp=!0);var full_month_name_regexp=new Date,current_day=full_month_name_regexp.getDate(),current_month=full_month_name_regexp.getMonth(),current_year=full_month_name_regexp.getFullYear(),current_wday=full_month_name_regexp.getDay(),full_month_name_regexp=$$($nesting,"MONTHNAMES").$compact().$join("|");function match1(match){return match[1]}function match2(match){return match[2]}function match3(match){return match[3]}function match4(match){return match[4]}function fromShortYear(fn){return function(short_year){short_year=fn(short_year);return short_year+=69<=short_year?1900:2e3}}function fromMonthAbbr(fn){return function(abbr){abbr=fn(abbr).toLowerCase();return $$($nesting,"ABBR_MONTHNAMES").indexOf(abbr)+1}}function toInt(fn){return function(value){value=fn(value);return parseInt(value,10)}}function fromFullMonthName(fn){return function(month_name){month_name=fn(month_name);return $send($$($nesting,"MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(month_name.$downcase())+1}}for(var fn,match,rules=[{regexp:/^(\d{2})$/,year:current_year,month:current_month,day:toInt(match1)},{regexp:/^(\d{3})$/,year:current_year,month:0,day:toInt(match1)},{regexp:/^(\d{2})(\d{2})$/,year:current_year,month:toInt(match1),day:toInt(match2)},{regexp:/^(\d{2})(\d{3})$/,year:fromShortYear(toInt(match1)),month:0,day:toInt(match2)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:fromShortYear(toInt(match1)),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{4})(\d{3})$/,year:toInt(match1),month:0,day:toInt(match2)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:toInt(match1),month:toInt(match2),day:toInt(match3)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:toInt(match2),month:fromMonthAbbr(match1),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:toInt(match3),month:fromMonthAbbr(match2),day:toInt(match1)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:toInt(match3),month:fromMonthAbbr(match1),day:toInt(match2)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:toInt(match1),month:fromMonthAbbr(match2),day:toInt(match3)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:toInt(match1),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:(fn=toInt(match1),function(value){value=fn(value);return comp?value+2e3:value}),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:toInt(match3),month:toInt(match2),day:toInt(match1)},{regexp:new RegExp("^("+$$($nesting,"DAYNAMES").$join("|")+")$","i"),year:current_year,month:current_month,day:function(fn){return function(wday){wday=fn(wday),wday=$send($$($nesting,"DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(wday.$downcase());return current_day-current_wday+wday}}(match1)},{regexp:new RegExp("^("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:toInt(match4),month:fromFullMonthName(match1),day:toInt(match2)},{regexp:new RegExp("^("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:current_year,month:fromFullMonthName(match1),day:toInt(match2)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+full_month_name_regexp+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:toInt(match4),month:fromFullMonthName(match3),day:toInt(match1)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:toInt(match1),month:fromFullMonthName(match2),day:toInt(match3)}],i=0;i",$Date_cwday$56=function(b){var a=this.date,b=b.date;return a.setHours(0,0,0,0),b.setHours(0,0,0,0),b=",$Date_cwday$56=function(b){var a=this.date,b=b.date;return a.setHours(0,0,0,0),b.setHours(0,0,0,0),b<=a},$Date_cwday$56.$$arity=1),Opal.def($Date_cweek$57,"$<=>",$Date_cwday$56=function(b){if(b.$$is_number)return this.$jd()["$<=>"](b);if($$($nesting,"Date")["$==="](b)){var a=this.date,b=b.date;return a.setHours(0,0,0,0),b.setHours(0,0,0,0),a>",$Date_cwday$56=function(n){n.$$is_number||this.$raise($$($nesting,"TypeError"));var result=this.$clone(),date=result.date,cur=date.getDate();return date.setDate(1),date.setMonth(date.getMonth()+n),date.setDate(Math.min(cur,days_in_month(date.getFullYear(),date.getMonth()))),result},$Date_cwday$56.$$arity=1),Opal.def($Date_cweek$57,"$<<",$Date_cwday$56=function(n){return n.$$is_number||this.$raise($$($nesting,"TypeError")),this["$>>"](-n)},$Date_cwday$56.$$arity=1),$alias($Date_cweek$57,"eql?","=="),Opal.def($Date_cweek$57,"$clone",$Date_cwday$56=function(){return $$($nesting,"Date").$wrap(new Date(this.date.getTime()))},$Date_cwday$56.$$arity=0),Opal.def($Date_cweek$57,"$day",$Date_cwday$56=function(){return this.date.getDate()},$Date_cwday$56.$$arity=0),Opal.def($Date_cweek$57,"$friday?",$Date_cwday$56=function(){return this.$wday()["$=="](5)},$Date_cwday$56.$$arity=0),Opal.def($Date_cweek$57,"$jd",$Date_cwday$56=function(){var mm=this.date.getMonth()+1,dd=this.date.getDate(),yy=this.date.getFullYear(),ggg=yy<=1585?0:1,jd=-1*Math.floor(7*(Math.floor((mm+9)/12)+yy)/4),s=mm-9<0?-1:1,j1=Math.abs(mm-9),j1=Math.floor(yy+s*Math.floor(j1/7));return j1=-1*Math.floor(3*(Math.floor(j1/100)+1)/4),.5+(jd+Math.floor(275*mm/9)+dd+ggg*j1+1721027+2*ggg+367*yy-.5)},$Date_cwday$56.$$arity=0),Opal.def($Date_cweek$57,"$julian?",$Date_cwday$56=function(){return this.date,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>"),function($base,$super,$parent_nesting){var $nesting=[$klass($base,null,"Date")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Infinity"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.d=nil,self.$include($$("Comparable")),$def(self,"$initialize",(function(d){return null==d&&(d=1),this.d=d["$<=>"](0)}),-1),self.$attr_reader("d"),$def(self,"$zero?",(function(){return!1}),0),$def(self,"$finite?",(function(){return!1}),0),$def(self,"$infinite?",(function(){return this.$d()["$nonzero?"]()}),0),$def(self,"$nan?",(function(){return this.$d()["$zero?"]()}),0),$def(self,"$abs",(function(){return this.$class().$new()}),0),$def(self,"$-@",(function(){return this.$class().$new(this.$d()["$-@"]())}),0),$def(self,"$+@",(function(){return this.$class().$new(this.$d()["$+@"]())}),0),$def(self,"$<=>",(function(other){var $a,$b,$ret_or_1,l=nil,r=nil;if($eqeqeq($$("Infinity"),$ret_or_1=other))return this.$d()["$<=>"](other.$d());if($eqeqeq($$("Numeric"),$ret_or_1))return this.$d();try{return $b=other.$coerce(this),l=null==($a=$to_ary($b))[0]?nil:$a[0],r=null==$a[1]?nil:$a[1],l["$<=>"](r)}catch($err){if(!Opal.rescue($err,[$$("NoMethodError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}),1),$def(self,"$coerce",(function $$coerce(other){var $yield=$$coerce.$$p||nil;return delete $$coerce.$$p,$eqeqeq($$("Numeric"),other)?[this.$d()["$-@"](),this.$d()]:$send2(this,$find_super(this,"coerce",$$coerce,!1,!0),"coerce",[other],$yield)}),1),$def(self,"$to_f",(function(){return $eqeq(this.d,0)?0:$truthy($rb_gt(this.d,0))?$$$($$("Float"),"INFINITY"):$$$($$("Float"),"INFINITY")["$-@"]()}),0)}($nesting[0],$$("Numeric"),$nesting)}($nesting[0],0,$nesting)},Opal.modules["date/date_time"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$def=Opal.def,$alias=Opal.alias,$rb_divide=Opal.rb_divide,$rb_times=Opal.rb_times,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy;return Opal.add_stubs("wrap,now,parse,new,def_delegators,/,usec,gmt_offset,*,+,-,is_a?,clone,_parse_offset,dup,year,month,day"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"DateTime"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.date=nil,function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$now",(function(){return this.$wrap($$("Time").$now())}),0),$def(self,"$parse",(function(str){return this.$wrap($$("Time").$parse(str))}),1)}(Opal.get_singleton_class(self),$nesting),$def(self,"$initialize",(function(year,month,day,hours,minutes,seconds,offset,start){return null==year&&(year=-4712),null==month&&(month=1),null==day&&(day=1),null==hours&&(hours=0),null==minutes&&(minutes=0),null==seconds&&(seconds=0),null==offset&&(offset=0),null==start&&(start=$$("ITALY")),1582===year&&10===month&&day>4&&day<15&&(day=4),this.date=$$("Time").$new(year,month,day,hours,minutes,seconds,offset),this.start=start}),-1),self.$def_delegators("@date","min","hour","sec"),$alias(self,"minute","min"),$alias(self,"second","sec"),$def(self,"$sec_fraction",(function(){return $rb_divide(this.date.$usec(),$$$("Rational").$new(1e6,1))}),0),$alias(self,"second_fraction","sec_fraction"),$def(self,"$offset",(function(){return $rb_divide(this.date.$gmt_offset(),$rb_times(24,$$$("Rational").$new(3600,1)))}),0),$def(self,"$+",(function(other){return $$$("DateTime").$wrap($rb_plus(this.date,other))}),1),$def(self,"$-",(function(other){var result=nil;return Opal.is_a(other,$$$("Date"))&&(other=other.date),result=$rb_minus(this.date,other),$truthy(result["$is_a?"]($$$("Time")))?$$$("DateTime").$wrap(result):result}),1),$def(self,"$new_offset",(function(offset){var new_date=nil;return new_date=this.$clone(),offset=$$("Time").$_parse_offset(offset),new_date.date.timezone=offset,new_date}),1),$def(self,"$to_datetime",(function(){return this}),0),$def(self,"$to_time",(function(){return this.date.$dup()}),0),$def(self,"$to_date",(function(){return $$("Date").$new(this.$year(),this.$month(),this.$day())}),0)}($nesting[0],$$("Date"),$nesting)},Opal.modules["date/formatters"]=function(Opal){var $base,$super,self,$nesting=[],$$=Opal.$r($nesting),$klass=(Opal.nil,Opal.klass),$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$defs=(Opal.hash,Opal.defs),$alias=Opal.alias;return Opal.add_stubs("def_formatter"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Date"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$def_formatter",(function($a,$b){var $post_args,$kwargs,args,kwargs,self=this;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return args=$post_args,kwargs=Opal.kwrestargs($kwargs,{}),$send($$("Time"),"def_formatter",$to_a(args).concat([Opal.to_hash(kwargs).$merge($hash2(["on"],{on:self}))]))}),-1),self.$def_formatter("asctime","%c"),$alias(self,"ctime","asctime"),self.$def_formatter("iso8601","%F"),$alias(self,"xmlschema","iso8601"),self.$def_formatter("rfc3339","%FT%T%:z"),self.$def_formatter("rfc2822","%a, %-d %b %Y %T %z"),$alias(self,"rfc822","rfc2822"),self.$def_formatter("httpdate","%a, %d %b %Y %T GMT",$hash2(["utc"],{utc:!0})),self.$def_formatter("jisx0301","%J"),$alias(self,"to_s","iso8601")}($nesting[0],0,$nesting),$base=$nesting[0],$super=$$("Date"),(self=$klass($base,$super,"DateTime")).$def_formatter("xmlschema","%FT%T",$hash2(["fractions","tz_format"],{fractions:!0,tz_format:"%:z"})),$alias(self,"iso8601","xmlschema"),$alias(self,"rfc3339","xmlschema"),self.$def_formatter("jisx0301","%JT%T",$hash2(["fractions","tz_format"],{fractions:!0,tz_format:"%:z"})),$alias(self,"to_s","xmlschema"),self.$def_formatter("zone","%:z")},Opal.modules.date=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$rb_plus=Opal.rb_plus,$def=Opal.def,$send=Opal.send,$alias=Opal.alias,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$rb_lt=Opal.rb_lt,$rb_times=Opal.rb_times,$defs=Opal.defs;return Opal.add_stubs("require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,clone,prev_day,next_day,_days_in_month,class,-,year,month,day,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each"),self.$require("forwardable"),self.$require("date/infinity"),self.$require("time"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Date"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.date=$proto.start=nil,self.$include($$("Comparable")),self.$extend($$("Forwardable")),$const_set($nesting[0],"JULIAN",$$("Infinity").$new()),$const_set($nesting[0],"GREGORIAN",$$("Infinity").$new()["$-@"]()),$const_set($nesting[0],"ITALY",2299161),$const_set($nesting[0],"ENGLAND",2361222),$const_set($nesting[0],"MONTHNAMES",$rb_plus([nil],["January","February","March","April","May","June","July","August","September","October","November","December"])),$const_set($nesting[0],"ABBR_MONTHNAMES",["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),$const_set($nesting[0],"DAYNAMES",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),$const_set($nesting[0],"ABBR_DAYNAMES",["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$wrap",(function(native$){var instance=nil;return(instance=this.$allocate()).start=$$("ITALY"),instance.date=native$,instance}),1),$def(self,"$parse",(function(string,comp){null==comp&&(comp=!0);var current_date=new Date,current_day=current_date.getDate(),current_month=current_date.getMonth(),current_year=current_date.getFullYear(),current_wday=current_date.getDay(),full_month_name_regexp=$$("MONTHNAMES").$compact().$join("|");function match1(match){return match[1]}function match2(match){return match[2]}function match3(match){return match[3]}function match4(match){return match[4]}function fromShortYear(fn){return function(match){var short_year=fn(match);return short_year+=short_year>=69?1900:2e3}}function fromMonthAbbr(fn){return function(match){var abbr=fn(match).toLowerCase();return $$("ABBR_MONTHNAMES").indexOf(abbr)+1}}function toInt(fn){return function(match){var value=fn(match);return parseInt(value,10)}}function fromFullMonthName(fn){return function(match){var month_name=fn(match);return $send($$("MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(month_name.$downcase())+1}}var fn,rule,i,match,rules=[{regexp:/^(\d{2})$/,year:current_year,month:current_month,day:toInt(match1)},{regexp:/^(\d{3})$/,year:current_year,month:0,day:toInt(match1)},{regexp:/^(\d{2})(\d{2})$/,year:current_year,month:toInt(match1),day:toInt(match2)},{regexp:/^(\d{2})(\d{3})$/,year:fromShortYear(toInt(match1)),month:0,day:toInt(match2)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:fromShortYear(toInt(match1)),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{4})(\d{3})$/,year:toInt(match1),month:0,day:toInt(match2)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:toInt(match1),month:toInt(match2),day:toInt(match3)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:toInt(match2),month:fromMonthAbbr(match1),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:toInt(match3),month:fromMonthAbbr(match2),day:toInt(match1)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:toInt(match3),month:fromMonthAbbr(match1),day:toInt(match2)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:toInt(match1),month:fromMonthAbbr(match2),day:toInt(match3)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:toInt(match1),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:(fn=toInt(match1),function(match){var value=fn(match);return comp?value+2e3:value}),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:toInt(match3),month:toInt(match2),day:toInt(match1)},{regexp:new RegExp("^("+$$("DAYNAMES").$join("|")+")$","i"),year:current_year,month:current_month,day:function(fn){return function(match){var dayname=fn(match),wday=$send($$("DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(dayname.$downcase());return current_day-current_wday+wday}}(match1)},{regexp:new RegExp("^("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:toInt(match4),month:fromFullMonthName(match1),day:toInt(match2)},{regexp:new RegExp("^("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:current_year,month:fromFullMonthName(match1),day:toInt(match2)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+full_month_name_regexp+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:toInt(match4),month:fromFullMonthName(match3),day:toInt(match1)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:toInt(match1),month:fromFullMonthName(match2),day:toInt(match3)}];for(i=0;i=0&&year<=1970&&result.setFullYear(year),this.$wrap(result)}return this.$raise($$("ArgumentError"),"invalid date")}),-2),$def(self,"$today",(function(){return this.$wrap(new Date)}),0),$def(self,"$gregorian_leap?",(function(year){return new Date(year,1,29).getMonth()-1==0}),1),$alias(self,"civil","new")}(Opal.get_singleton_class(self),$nesting),$def(self,"$initialize",(function(year,month,day,start){return null==year&&(year=-4712),null==month&&(month=1),null==day&&(day=1),null==start&&(start=$$("ITALY")),1582===year&&10===month&&day>4&&day<15&&(day=4),this.date=new Date(year,month-1,day),this.start=start}),-1),self.$attr_reader("start"),$def(self,"$<=>",(function(other){if(other.$$is_number)return this.$jd()["$<=>"](other);if($$$("Date")["$==="](other)){var a=this.date,b=other.date;return Opal.is_a(this,$$$("DateTime"))||a.setHours(0,0,0,0),Opal.is_a(other,$$$("DateTime"))||b.setHours(0,0,0,0),ab?1:0}return nil}),1),$def(self,"$>>",(function(n){return n.$$is_number||this.$raise($$$("TypeError")),this["$<<"](n["$-@"]())}),1),$def(self,"$<<",(function(n){return n.$$is_number||this.$raise($$$("TypeError")),this.$prev_month(n)}),1),$def(self,"$clone",(function(){var date=nil;return(date=$$("Date").$wrap(this.date.$dup())).start=this.start,date}),0),self.$def_delegators("@date","sunday?","monday?","tuesday?","wednesday?","thursday?","friday?","saturday?","day","month","year","wday","yday"),$alias(self,"mday","day"),$alias(self,"mon","month"),$def(self,"$jd",(function(){var ggg,s,a,j1,jd,mm=this.date.getMonth()+1,dd=this.date.getDate(),yy=this.date.getFullYear(),hr=12;return hr=hr+0+0,ggg=1,yy<=1585&&(ggg=0),jd=-1*Math.floor(7*(Math.floor((mm+9)/12)+yy)/4),s=1,mm-9<0&&(s=-1),a=Math.abs(mm-9),j1=Math.floor(yy+s*Math.floor(a/7)),j1=-1*Math.floor(3*(Math.floor(j1/100)+1)/4),jd=(jd=jd+Math.floor(275*mm/9)+dd+ggg*j1)+1721027+2*ggg+367*yy-.5,jd+=hr/24}),0),$def(self,"$julian?",(function(){return this.date,+,def_formatter,wrap,require"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Time"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$parse",(function(str){return new Date(Date.parse(str))}),1),$defs(self,"$def_formatter",(function(name,format,$kwargs){var on_utc,utc_tz,tz_format,fractions,on;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(on_utc=$kwargs.$$smap.on_utc)&&(on_utc=!1),null==(utc_tz=$kwargs.$$smap.utc_tz)&&(utc_tz=nil),null==(tz_format=$kwargs.$$smap.tz_format)&&(tz_format=nil),null==(fractions=$kwargs.$$smap.fractions)&&(fractions=!1),null==(on=$kwargs.$$smap.on)&&(on=this),$send(on,"define_method",[name],(function $$1(fdigits){var $ret_or_1,self=null==$$1.$$s?this:$$1.$$s,$ret_or_2=nil,date=nil,str=nil;return null==fdigits&&(fdigits=0),$eqeqeq($truthy($ret_or_2=$$$("::","DateTime","skip_raise")?"constant":nil)?$$$("DateTime"):$ret_or_2,$ret_or_1=self)?date=$truthy(on_utc)?self.$new_offset(0):self:$eqeqeq($truthy($ret_or_2=$$$("::","Date","skip_raise")?"constant":nil)?$$$("Date"):$ret_or_2,$ret_or_1)?date=$$$("Time").$utc(self.$year(),self.$month(),self.$day()):$eqeqeq($$$("Time"),$ret_or_1)&&(date=$truthy(on_utc)?self.$getutc():self),str=date.$strftime(format),$truthy(fractions)&&$truthy($rb_gt(fdigits,0))&&(str=$rb_plus(str,date.$strftime(".%"+fdigits+"N"))),$truthy(utc_tz)?str=$rb_plus(str,$truthy(self.$utc())?utc_tz:date.$strftime(tz_format)):$truthy(tz_format)&&(str=$rb_plus(str,date.$strftime(tz_format))),str}),{$$arity:-1,$$s:this})}),-3),self.$def_formatter("rfc2822","%a, %d %b %Y %T ",$hash2(["utc_tz","tz_format"],{utc_tz:"-00:00",tz_format:"%z"})),$alias(self,"rfc822","rfc2822"),self.$def_formatter("httpdate","%a, %d %b %Y %T GMT",$hash2(["on_utc"],{on_utc:!0})),self.$def_formatter("xmlschema","%FT%T",$hash2(["utc_tz","tz_format","fractions"],{utc_tz:"Z",tz_format:"%:z",fractions:!0})),$alias(self,"iso8601","xmlschema"),$def(self,"$to_date",(function(){return $$("Date").$wrap(this)}),0),$def(self,"$to_datetime",(function(){return $$("DateTime").$wrap(this)}),0),$def(self,"$to_time",(function(){return this}),0)}($nesting[0],0,$nesting),self.$require("date")},Opal.modules.date=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$rb_plus=Opal.rb_plus,$def=Opal.def,$send=Opal.send,$alias=Opal.alias,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$rb_lt=Opal.rb_lt,$rb_times=Opal.rb_times,$defs=Opal.defs;return Opal.add_stubs("require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,clone,prev_day,next_day,_days_in_month,class,-,year,month,day,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each"),self.$require("forwardable"),self.$require("date/infinity"),self.$require("time"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Date"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.date=$proto.start=nil,self.$include($$("Comparable")),self.$extend($$("Forwardable")),$const_set($nesting[0],"JULIAN",$$("Infinity").$new()),$const_set($nesting[0],"GREGORIAN",$$("Infinity").$new()["$-@"]()),$const_set($nesting[0],"ITALY",2299161),$const_set($nesting[0],"ENGLAND",2361222),$const_set($nesting[0],"MONTHNAMES",$rb_plus([nil],["January","February","March","April","May","June","July","August","September","October","November","December"])),$const_set($nesting[0],"ABBR_MONTHNAMES",["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),$const_set($nesting[0],"DAYNAMES",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),$const_set($nesting[0],"ABBR_DAYNAMES",["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$wrap",(function(native$){var instance=nil;return(instance=this.$allocate()).start=$$("ITALY"),instance.date=native$,instance}),1),$def(self,"$parse",(function(string,comp){null==comp&&(comp=!0);var current_date=new Date,current_day=current_date.getDate(),current_month=current_date.getMonth(),current_year=current_date.getFullYear(),current_wday=current_date.getDay(),full_month_name_regexp=$$("MONTHNAMES").$compact().$join("|");function match1(match){return match[1]}function match2(match){return match[2]}function match3(match){return match[3]}function match4(match){return match[4]}function fromShortYear(fn){return function(match){var short_year=fn(match);return short_year+=short_year>=69?1900:2e3}}function fromMonthAbbr(fn){return function(match){var abbr=fn(match).toLowerCase();return $$("ABBR_MONTHNAMES").indexOf(abbr)+1}}function toInt(fn){return function(match){var value=fn(match);return parseInt(value,10)}}function fromFullMonthName(fn){return function(match){var month_name=fn(match);return $send($$("MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(month_name.$downcase())+1}}var fn,rule,i,match,rules=[{regexp:/^(\d{2})$/,year:current_year,month:current_month,day:toInt(match1)},{regexp:/^(\d{3})$/,year:current_year,month:0,day:toInt(match1)},{regexp:/^(\d{2})(\d{2})$/,year:current_year,month:toInt(match1),day:toInt(match2)},{regexp:/^(\d{2})(\d{3})$/,year:fromShortYear(toInt(match1)),month:0,day:toInt(match2)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:fromShortYear(toInt(match1)),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{4})(\d{3})$/,year:toInt(match1),month:0,day:toInt(match2)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:toInt(match1),month:toInt(match2),day:toInt(match3)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:toInt(match2),month:fromMonthAbbr(match1),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:toInt(match3),month:fromMonthAbbr(match2),day:toInt(match1)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:toInt(match3),month:fromMonthAbbr(match1),day:toInt(match2)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:toInt(match1),month:fromMonthAbbr(match2),day:toInt(match3)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:toInt(match1),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:(fn=toInt(match1),function(match){var value=fn(match);return comp?value+2e3:value}),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:toInt(match3),month:toInt(match2),day:toInt(match1)},{regexp:new RegExp("^("+$$("DAYNAMES").$join("|")+")$","i"),year:current_year,month:current_month,day:function(fn){return function(match){var dayname=fn(match),wday=$send($$("DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(dayname.$downcase());return current_day-current_wday+wday}}(match1)},{regexp:new RegExp("^("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:toInt(match4),month:fromFullMonthName(match1),day:toInt(match2)},{regexp:new RegExp("^("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:current_year,month:fromFullMonthName(match1),day:toInt(match2)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+full_month_name_regexp+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:toInt(match4),month:fromFullMonthName(match3),day:toInt(match1)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:toInt(match1),month:fromFullMonthName(match2),day:toInt(match3)}];for(i=0;i=0&&year<=1970&&result.setFullYear(year),this.$wrap(result)}return this.$raise($$("ArgumentError"),"invalid date")}),-2),$def(self,"$today",(function(){return this.$wrap(new Date)}),0),$def(self,"$gregorian_leap?",(function(year){return new Date(year,1,29).getMonth()-1==0}),1),$alias(self,"civil","new")}(Opal.get_singleton_class(self),$nesting),$def(self,"$initialize",(function(year,month,day,start){return null==year&&(year=-4712),null==month&&(month=1),null==day&&(day=1),null==start&&(start=$$("ITALY")),1582===year&&10===month&&day>4&&day<15&&(day=4),this.date=new Date(year,month-1,day),this.start=start}),-1),self.$attr_reader("start"),$def(self,"$<=>",(function(other){if(other.$$is_number)return this.$jd()["$<=>"](other);if($$$("Date")["$==="](other)){var a=this.date,b=other.date;return Opal.is_a(this,$$$("DateTime"))||a.setHours(0,0,0,0),Opal.is_a(other,$$$("DateTime"))||b.setHours(0,0,0,0),ab?1:0}return nil}),1),$def(self,"$>>",(function(n){return n.$$is_number||this.$raise($$$("TypeError")),this["$<<"](n["$-@"]())}),1),$def(self,"$<<",(function(n){return n.$$is_number||this.$raise($$$("TypeError")),this.$prev_month(n)}),1),$def(self,"$clone",(function(){var date=nil;return(date=$$("Date").$wrap(this.date.$dup())).start=this.start,date}),0),self.$def_delegators("@date","sunday?","monday?","tuesday?","wednesday?","thursday?","friday?","saturday?","day","month","year","wday","yday"),$alias(self,"mday","day"),$alias(self,"mon","month"),$def(self,"$jd",(function(){var ggg,s,a,j1,jd,mm=this.date.getMonth()+1,dd=this.date.getDate(),yy=this.date.getFullYear(),hr=12;return hr=hr+0+0,ggg=1,yy<=1585&&(ggg=0),jd=-1*Math.floor(7*(Math.floor((mm+9)/12)+yy)/4),s=1,mm-9<0&&(s=-1),a=Math.abs(mm-9),j1=Math.floor(yy+s*Math.floor(a/7)),j1=-1*Math.floor(3*(Math.floor(j1/100)+1)/4),jd=(jd=jd+Math.floor(275*mm/9)+dd+ggg*j1)+1721027+2*ggg+367*yy-.5,jd+=hr/24}),0),$def(self,"$julian?",(function(){return this.date 0) { - err = $post_args[0]; - $post_args.splice(0, 1); - } - if (err == null) { - err = nil; - }; + if ($post_args.length > 0) err = $post_args.shift(); + if (err == null) err = nil;; rest = $post_args;; - return $send($$($nesting, 'Exception2MessageMapper'), 'Raise', [self.$class(), err].concat(Opal.to_a(rest))); - }, $Raise$4.$$arity = -1); + return $send($$('Exception2MessageMapper'), 'Raise', [self.$class(), err].concat($to_a(rest))); + }, -1); $alias(self, "Fail", "Raise"); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + Opal.udef(self, '$' + "included");; return nil; })(Opal.get_singleton_class(self), $nesting); - return (Opal.defs(self, '$included', $included$5 = function $$included(mod) { - var self = this; - - return mod.$extend($$($nesting, 'Exception2MessageMapper')) - }, $included$5.$$arity = 1), nil) && 'included';}, $$3.$$s = self, $$3.$$arity = 0, $$3)) - }, $Exception2MessageMapper_bind$2.$$arity = 1); + return $defs(self, '$included', function $$included(mod) { + + return mod.$extend($$('Exception2MessageMapper')) + }, 1);}, {$$arity: 0, $$s: self}) + }, 1); - Opal.def(self, '$Raise', $Exception2MessageMapper_Raise$6 = function $$Raise($a, $b) { + $def(self, '$Raise', function $$Raise($a, $b) { var $post_args, err, rest, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - err = $post_args[0]; - $post_args.splice(0, 1); - } - if (err == null) { - err = nil; - }; + if ($post_args.length > 0) err = $post_args.shift(); + if (err == null) err = nil;; rest = $post_args;; - return $send($$($nesting, 'E2MM'), 'Raise', [self, err].concat(Opal.to_a(rest))); - }, $Exception2MessageMapper_Raise$6.$$arity = -1); + return $send($$('E2MM'), 'Raise', [self, err].concat($to_a(rest))); + }, -1); $alias(self, "Fail", "Raise"); $alias(self, "fail", "Raise"); - Opal.def(self, '$def_e2message', $Exception2MessageMapper_def_e2message$7 = function $$def_e2message(c, m) { + $def(self, '$def_e2message', function $$def_e2message(c, m) { var self = this; - return $$($nesting, 'E2MM').$def_e2message(self, c, m) - }, $Exception2MessageMapper_def_e2message$7.$$arity = 2); + return $$('E2MM').$def_e2message(self, c, m) + }, 2); - Opal.def(self, '$def_exception', $Exception2MessageMapper_def_exception$8 = function $$def_exception(n, m, s) { + $def(self, '$def_exception', function $$def_exception(n, m, s) { var self = this; - if (s == null) { - s = $$($nesting, 'StandardError'); - }; - return $$($nesting, 'E2MM').$def_exception(self, n, m, s); - }, $Exception2MessageMapper_def_exception$8.$$arity = -3); + if (s == null) s = $$('StandardError');; + return $$('E2MM').$def_exception(self, n, m, s); + }, -3); self.MessageMap = $hash2([], {}); - Opal.defs($$($nesting, 'E2MM'), '$def_e2message', $Exception2MessageMapper_def_e2message$9 = function $$def_e2message(k, c, m) { - var $$10, self = this; + $defs($$('E2MM'), '$def_e2message', function $$def_e2message(k, c, m) { + var self = this; - $send($$($nesting, 'E2MM'), 'instance_eval', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $writer = nil; + $send($$('E2MM'), 'instance_eval', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; if (self.MessageMap == null) self.MessageMap = nil; $writer = [[k, c], m]; - $send(self.MessageMap, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$10.$$s = self, $$10.$$arity = 0, $$10)); + $send(self.MessageMap, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 0, $$s: self}); return c; - }, $Exception2MessageMapper_def_e2message$9.$$arity = 3); - Opal.defs($$($nesting, 'E2MM'), '$def_exception', $Exception2MessageMapper_def_exception$11 = function $$def_exception(k, n, m, s) { - var $$12, $$13, self = this, e = nil; + }, 3); + $defs($$('E2MM'), '$def_exception', function $$def_exception(k, n, m, s) { + var self = this, e = nil; - if (s == null) { - s = $$($nesting, 'StandardError'); - }; - e = $$($nesting, 'Class').$new(s); - $send($$($nesting, 'E2MM'), 'instance_eval', [], ($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s, $writer = nil; + if (s == null) s = $$('StandardError');; + e = $$('Class').$new(s); + $send($$('E2MM'), 'instance_eval', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; if (self.MessageMap == null) self.MessageMap = nil; $writer = [[k, e], m]; - $send(self.MessageMap, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$12.$$s = self, $$12.$$arity = 0, $$12)); + $send(self.MessageMap, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 0, $$s: self}); if ($truthy(k['$const_defined?'](n, false))) { - $send(k, 'module_eval', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + $send(k, 'module_eval', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$remove_const(n)}, $$13.$$s = self, $$13.$$arity = 0, $$13))}; + return self.$remove_const(n)}, {$$arity: 0, $$s: self}) + }; return k.$const_set(n, e); - }, $Exception2MessageMapper_def_exception$11.$$arity = -4); - Opal.defs($$($nesting, 'E2MM'), '$Raise', $Exception2MessageMapper_Raise$14 = function $$Raise($a, $b, $c) { + }, -4); + $defs($$('E2MM'), '$Raise', function $$Raise($a, $b, $c) { var $post_args, klass, err, rest, self = this, form = nil, b = nil; if ($gvars["@"] == null) $gvars["@"] = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - klass = $post_args[0]; - $post_args.splice(0, 1); - } - if (klass == null) { - klass = $$($nesting, 'E2MM'); - }; + if ($post_args.length > 0) klass = $post_args.shift(); + if (klass == null) klass = $$('E2MM');; - if ($post_args.length > 0) { - err = $post_args[0]; - $post_args.splice(0, 1); - } - if (err == null) { - err = nil; - }; + if ($post_args.length > 0) err = $post_args.shift(); + if (err == null) err = nil;; rest = $post_args;; if ($truthy((form = self.$e2mm_message(klass, err)))) { - b = (function() {if ($truthy($gvars["@"]['$nil?']())) { - return self.$caller(1) - } else { - return $gvars["@"] - }; return nil; })(); - if ($truthy(b['$[]'](0)['$=~'](Opal.regexp(["^", $$($nesting, 'Regexp').$quote("./e2mmap.rb"), ":"])))) { - b.$shift()}; - return self.$raise(err, $send(self, 'sprintf', [form].concat(Opal.to_a(rest))), b); + b = ($truthy($gvars["@"]['$nil?']()) ? (self.$caller(1)) : ($gvars["@"])); + if ($truthy(b['$[]'](0)['$=~']($regexp(["^", $$('Regexp').$quote("./e2mmap.rb"), ":"])))) { + b.$shift() + }; + return self.$raise(err, $send(self, 'sprintf', [form].concat($to_a(rest))), b); } else { - return $$($nesting, 'E2MM').$Fail($$($nesting, 'E2MM'), $$($nesting, 'ErrNotRegisteredException'), err.$inspect()) + return $$('E2MM').$Fail($$('E2MM'), $$('ErrNotRegisteredException'), err.$inspect()) }; - }, $Exception2MessageMapper_Raise$14.$$arity = -1); + }, -1); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return $alias(self, "Fail", "Raise") - })(Opal.get_singleton_class($$($nesting, 'E2MM')), $nesting); - Opal.defs($$($nesting, 'E2MM'), '$e2mm_message', $Exception2MessageMapper_e2mm_message$15 = function $$e2mm_message(klass, exp) {try { + })(Opal.get_singleton_class($$('E2MM')), $nesting); + $defs($$('E2MM'), '$e2mm_message', function $$e2mm_message(klass, exp) {try { - var $$16, self = this; + var self = this; - $send(klass.$ancestors(), 'each', [], ($$16 = function(c){var self = $$16.$$s == null ? this : $$16.$$s, mes = nil; + $send(klass.$ancestors(), 'each', [], function $$5(c){var self = $$5.$$s == null ? this : $$5.$$s, mes = nil; if (self.MessageMap == null) self.MessageMap = nil; - if (c == null) { - c = nil; - }; + if (c == null) c = nil;; if ($truthy((mes = self.MessageMap['$[]']([c, exp])))) { Opal.ret(mes) } else { return nil - };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + };}, {$$arity: 1, $$s: self}); return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Exception2MessageMapper_e2mm_message$15.$$arity = 2); + }, 2); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return $alias(self, "message", "e2mm_message") })(Opal.get_singleton_class(self), $nesting); - return $$($nesting, 'E2MM').$def_exception($$($nesting, 'E2MM'), "ErrNotRegisteredException", "not registered exception(%s)"); + return $$('E2MM').$def_exception($$('E2MM'), "ErrNotRegisteredException", "not registered exception(%s)"); })($nesting[0], $nesting) }; diff --git a/opal/master/e2mmap.min.js b/opal/master/e2mmap.min.js index 4285a33b..ecee32e3 100644 --- a/opal/master/e2mmap.min.js +++ b/opal/master/e2mmap.min.js @@ -1 +1 @@ -Opal.modules.e2mmap=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias,$hash2=Opal.hash2,$gvars=Opal.gvars;return Opal.add_stubs(["$<","$bind","$module_eval","$Raise","$class","$extend","$def_e2message","$def_exception","$instance_eval","$[]=","$-","$new","$const_defined?","$remove_const","$const_set","$e2mm_message","$nil?","$caller","$=~","$[]","$quote","$shift","$raise","$sprintf","$Fail","$inspect","$each","$ancestors"]),function(self,$Exception2MessageMapper_e2mm_message$15){var $Exception2MessageMapper_extend_object$1,self=$module(self,"Exception2MessageMapper"),$nesting=[self].concat($Exception2MessageMapper_e2mm_message$15);return Opal.const_set($nesting[0],"E2MM",$$($nesting,"Exception2MessageMapper")),Opal.defs($$($nesting,"E2MM"),"$extend_object",$Exception2MessageMapper_extend_object$1=function(cl){var $zuper_ii,lhs,rhs=$Exception2MessageMapper_extend_object$1.$$p,$zuper=nil,$zuper_i=nil;for(rhs&&($Exception2MessageMapper_extend_object$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $send2(this,$find_super(this,"extend_object",$Exception2MessageMapper_extend_object$1,!1,!0),"extend_object",$zuper,rhs),$truthy((lhs=cl,rhs=$$($nesting,"E2MM"),"number"==typeof lhs&&"number"==typeof rhs?lhs0&&(err=$post_args.shift()),null==err&&(err=nil),rest=$post_args,$send($$("Exception2MessageMapper"),"Raise",[self.$class(),err].concat($to_a(rest)))}),-1),$alias(self,"Fail","Raise"),function(self,$parent_nesting){Opal.udef(self,"$included")}(Opal.get_singleton_class(self)),$defs(self,"$included",(function(mod){return mod.$extend($$("Exception2MessageMapper"))}),1)}),{$$arity:0,$$s:this})}),1),$def(self,"$Raise",(function($a,$b){var $post_args,err,rest,self=this;return($post_args=Opal.slice.call(arguments)).length>0&&(err=$post_args.shift()),null==err&&(err=nil),rest=$post_args,$send($$("E2MM"),"Raise",[self,err].concat($to_a(rest)))}),-1),$alias(self,"Fail","Raise"),$alias(self,"fail","Raise"),$def(self,"$def_e2message",(function(c,m){return $$("E2MM").$def_e2message(this,c,m)}),2),$def(self,"$def_exception",(function(n,m,s){return null==s&&(s=$$("StandardError")),$$("E2MM").$def_exception(this,n,m,s)}),-3),self.MessageMap=$hash2([],{}),$defs($$("E2MM"),"$def_e2message",(function(k,c,m){return $send($$("E2MM"),"instance_eval",[],(function $$2(){var $writer,self=null==$$2.$$s?this:$$2.$$s;return null==self.MessageMap&&(self.MessageMap=nil),$writer=[[k,c],m],$send(self.MessageMap,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:0,$$s:this}),c}),3),$defs($$("E2MM"),"$def_exception",(function(k,n,m,s){var e;return null==s&&(s=$$("StandardError")),e=$$("Class").$new(s),$send($$("E2MM"),"instance_eval",[],(function $$3(){var $writer,self=null==$$3.$$s?this:$$3.$$s;return null==self.MessageMap&&(self.MessageMap=nil),$writer=[[k,e],m],$send(self.MessageMap,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:0,$$s:this}),$truthy(k["$const_defined?"](n,!1))&&$send(k,"module_eval",[],(function $$4(){return(null==$$4.$$s?this:$$4.$$s).$remove_const(n)}),{$$arity:0,$$s:this}),k.$const_set(n,e)}),-4),$defs($$("E2MM"),"$Raise",(function($a,$b,$c){var $post_args,klass,err,rest,self=this,form=nil,b=nil;return null==$gvars["@"]&&($gvars["@"]=nil),($post_args=Opal.slice.call(arguments)).length>0&&(klass=$post_args.shift()),null==klass&&(klass=$$("E2MM")),$post_args.length>0&&(err=$post_args.shift()),null==err&&(err=nil),rest=$post_args,$truthy(form=self.$e2mm_message(klass,err))?(b=$truthy($gvars["@"]["$nil?"]())?self.$caller(1):$gvars["@"],$truthy(b["$[]"](0)["$=~"]($regexp(["^",$$("Regexp").$quote("./e2mmap.rb"),":"])))&&b.$shift(),self.$raise(err,$send(self,"sprintf",[form].concat($to_a(rest))),b)):$$("E2MM").$Fail($$("E2MM"),$$("ErrNotRegisteredException"),err.$inspect())}),-1),function(self,$parent_nesting){$alias(self,"Fail","Raise")}(Opal.get_singleton_class($$("E2MM"))),$defs($$("E2MM"),"$e2mm_message",(function(klass,exp){try{return $send(klass.$ancestors(),"each",[],(function $$5(c){var mes,self=null==$$5.$$s?this:$$5.$$s;if(null==self.MessageMap&&(self.MessageMap=nil),null==c&&(c=nil),!$truthy(mes=self.MessageMap["$[]"]([c,exp])))return nil;Opal.ret(mes)}),{$$arity:1,$$s:this}),nil}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),2),function(self,$parent_nesting){$alias(self,"message","e2mm_message")}(Opal.get_singleton_class(self)),$$("E2MM").$def_exception($$("E2MM"),"ErrNotRegisteredException","not registered exception(%s)")}($nesting[0],$nesting)}; diff --git a/opal/master/e2mmap.min.js.gz b/opal/master/e2mmap.min.js.gz index 9f9630a1..3f1bda9c 100644 Binary files a/opal/master/e2mmap.min.js.gz and b/opal/master/e2mmap.min.js.gz differ diff --git a/opal/master/encoding.js b/opal/master/encoding.js index 2e65324c..12210049 100644 --- a/opal/master/encoding.js +++ b/opal/master/encoding.js @@ -1,7 +1,6 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["encoding"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["encoding"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$warn']); + Opal.add_stubs('warn'); return self.$warn("DEPRECATION: encoding is now part of the core library, requiring it is deprecated") }; diff --git a/opal/master/encoding.min.js b/opal/master/encoding.min.js index 638c3bad..2c6551af 100644 --- a/opal/master/encoding.min.js +++ b/opal/master/encoding.min.js @@ -1 +1 @@ -Opal.modules.encoding=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$warn"]),self.$warn("DEPRECATION: encoding is now part of the core library, requiring it is deprecated")}; +Opal.modules.encoding=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("warn"),self.$warn("DEPRECATION: encoding is now part of the core library, requiring it is deprecated")}; diff --git a/opal/master/encoding.min.js.gz b/opal/master/encoding.min.js.gz index 3c0f2be0..5d66226e 100644 Binary files a/opal/master/encoding.min.js.gz and b/opal/master/encoding.min.js.gz differ diff --git a/opal/master/enumerator.js b/opal/master/enumerator.js index b6e5543c..82e7e19c 100644 --- a/opal/master/enumerator.js +++ b/opal/master/enumerator.js @@ -1,6 +1,3 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["enumerator"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; - - return nil +Opal.modules["enumerator"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + return Opal.nil; }; diff --git a/opal/master/enumerator.min.js b/opal/master/enumerator.min.js index 57729e5c..2cc564f1 100644 --- a/opal/master/enumerator.min.js +++ b/opal/master/enumerator.min.js @@ -1 +1 @@ -Opal.modules.enumerator=function(Opal){Opal.top;var nil=Opal.nil;Opal.$$$,Opal.$$;return nil}; +Opal.modules.enumerator=function(Opal){return Opal.nil}; diff --git a/opal/master/enumerator.min.js.gz b/opal/master/enumerator.min.js.gz index d51aef8c..9cd43b08 100644 Binary files a/opal/master/enumerator.min.js.gz and b/opal/master/enumerator.min.js.gz differ diff --git a/opal/master/erb.js b/opal/master/erb.js index 39d10173..009d3097 100644 --- a/opal/master/erb.js +++ b/opal/master/erb.js @@ -1,110 +1,103 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["template"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; - - Opal.add_stubs(['$[]', '$[]=', '$-', '$keys', '$attr_reader', '$instance_exec', '$new', '$to_proc', '$<<', '$join']); +Opal.modules["template"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $defs = Opal.defs, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $alias = Opal.alias; + + Opal.add_stubs('[],[]=,-,keys,attr_reader,instance_exec,new,to_proc,<<,join'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Template'); - var $nesting = [self].concat($parent_nesting), $Template_$$$1, $Template_$$$eq$2, $Template_paths$3, $Template_initialize$4, $Template_inspect$5, $Template_render$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.name = self.$$prototype.body = nil; + $proto.name = $proto.body = nil; self._cache = $hash2([], {}); - Opal.defs(self, '$[]', $Template_$$$1 = function(name) { + $defs(self, '$[]', function $Template_$$$1(name) { var self = this, $ret_or_1 = nil; if (self._cache == null) self._cache = nil; if ($truthy(($ret_or_1 = self._cache['$[]'](name)))) { return $ret_or_1 } else { - return self._cache['$[]']("" + "templates/" + (name)) + return self._cache['$[]']("templates/" + (name)) } - }, $Template_$$$1.$$arity = 1); - Opal.defs(self, '$[]=', $Template_$$$eq$2 = function(name, instance) { + }, 1); + $defs(self, '$[]=', function $Template_$$$eq$2(name, instance) { var self = this, $writer = nil; if (self._cache == null) self._cache = nil; $writer = [name, instance]; - $send(self._cache, '[]=', Opal.to_a($writer)); + $send(self._cache, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Template_$$$eq$2.$$arity = 2); - Opal.defs(self, '$paths', $Template_paths$3 = function $$paths() { + }, 2); + $defs(self, '$paths', function $$paths() { var self = this; if (self._cache == null) self._cache = nil; return self._cache.$keys() - }, $Template_paths$3.$$arity = 0); + }, 0); self.$attr_reader("body"); - Opal.def(self, '$initialize', $Template_initialize$4 = function $$initialize(name) { - var $iter = $Template_initialize$4.$$p, body = $iter || nil, $a, self = this, $writer = nil; + $def(self, '$initialize', function $$initialize(name) { + var body = $$initialize.$$p || nil, $a, self = this, $writer = nil; - if ($iter) $Template_initialize$4.$$p = null; - + delete $$initialize.$$p; - if ($iter) $Template_initialize$4.$$p = null;; + ; $a = [name, body], (self.name = $a[0]), (self.body = $a[1]), $a; $writer = [name, self]; - $send($$($nesting, 'Template'), '[]=', Opal.to_a($writer)); + $send($$('Template'), '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $Template_initialize$4.$$arity = 1); + }, 1); - Opal.def(self, '$inspect', $Template_inspect$5 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Template_inspect$5.$$arity = 0); + return "#" + }, 0); - Opal.def(self, '$render', $Template_render$6 = function $$render(ctx) { + $def(self, '$render', function $$render(ctx) { var self = this; - if (ctx == null) { - ctx = self; - }; - return $send(ctx, 'instance_exec', [$$($nesting, 'OutputBuffer').$new()], self.body.$to_proc()); - }, $Template_render$6.$$arity = -1); - return (function($base, $super, $parent_nesting) { + if (ctx == null) ctx = self;; + return $send(ctx, 'instance_exec', [$$('OutputBuffer').$new()], self.body.$to_proc()); + }, -1); + return (function($base, $super) { var self = $klass($base, $super, 'OutputBuffer'); - var $nesting = [self].concat($parent_nesting), $OutputBuffer_initialize$7, $OutputBuffer_append$8, $OutputBuffer_join$9; + var $proto = self.$$prototype; - self.$$prototype.buffer = nil; + $proto.buffer = nil; - Opal.def(self, '$initialize', $OutputBuffer_initialize$7 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.buffer = []) - }, $OutputBuffer_initialize$7.$$arity = 0); + }, 0); - Opal.def(self, '$append', $OutputBuffer_append$8 = function $$append(str) { + $def(self, '$append', function $$append(str) { var self = this; return self.buffer['$<<'](str) - }, $OutputBuffer_append$8.$$arity = 1); - $alias(self, "append=", "append"); - return (Opal.def(self, '$join', $OutputBuffer_join$9 = function $$join() { + }, 1); + + $def(self, '$join', function $$join() { var self = this; return self.buffer.$join() - }, $OutputBuffer_join$9.$$arity = 0), nil) && 'join'; - })($nesting[0], null, $nesting); + }, 0); + return $alias(self, "append=", "append"); + })($nesting[0], null); })($nesting[0], null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["erb"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $module = Opal.module, $alias = Opal.alias; +Opal.modules["erb"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $klass = Opal.klass, $module = Opal.module, $def = Opal.def, $alias = Opal.alias; - Opal.add_stubs(['$require', '$module_function']); + Opal.add_stubs('require,module_function'); self.$require("template"); return (function($base, $super, $parent_nesting) { @@ -112,23 +105,21 @@ Opal.modules["erb"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $parent_nesting) { + return (function($base) { var self = $module($base, 'Util'); - var $nesting = [self].concat($parent_nesting), $Util_html_escape$1; - + var escapes = { '&': '&', '<': '<', '>': '>', '"': '"', "'": '''};; var escape_regexp = /[&<>"']/g;; - Opal.def(self, '$html_escape', $Util_html_escape$1 = function $$html_escape(str) { - var self = this; - + $def(self, '$html_escape', function $$html_escape(str) { + return ("" + str).replace(escape_regexp, function (m) { return escapes[m] }); - }, $Util_html_escape$1.$$arity = 1); + }, 1); $alias(self, "h", "html_escape"); self.$module_function("h"); return self.$module_function("html_escape"); - })($nesting[0], $nesting) + })($nesting[0]) })($nesting[0], null, $nesting); }; diff --git a/opal/master/erb.min.js b/opal/master/erb.min.js index 3d56040a..c1e2cf86 100644 --- a/opal/master/erb.min.js +++ b/opal/master/erb.min.js @@ -1 +1 @@ -Opal.modules.template=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$[]","$[]=","$-","$keys","$attr_reader","$instance_exec","$new","$to_proc","$<<","$join"]),function($Template_render$6,$Template_inspect$5){var $Template_initialize$4,$Template_render$6=$klass($Template_render$6,null,"Template"),$nesting=[$Template_render$6].concat($Template_inspect$5);return $Template_render$6.$$prototype.name=$Template_render$6.$$prototype.body=nil,$Template_render$6._cache=$hash2([],{}),Opal.defs($Template_render$6,"$[]",$Template_inspect$5=function(name){var $ret_or_1;return null==this._cache&&(this._cache=nil),$truthy($ret_or_1=this._cache["$[]"](name))?$ret_or_1:this._cache["$[]"]("templates/"+name)},$Template_inspect$5.$$arity=1),Opal.defs($Template_render$6,"$[]=",$Template_inspect$5=function(name,instance){var $writer;return null==this._cache&&(this._cache=nil),$writer=[name,instance],$send(this._cache,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Template_inspect$5.$$arity=2),Opal.defs($Template_render$6,"$paths",$Template_inspect$5=function(){return null==this._cache&&(this._cache=nil),this._cache.$keys()},$Template_inspect$5.$$arity=0),$Template_render$6.$attr_reader("body"),Opal.def($Template_render$6,"$initialize",$Template_initialize$4=function(name){var $writer,$iter=$Template_initialize$4.$$p,$a=$iter||nil;return $iter&&($Template_initialize$4.$$p=null),$iter&&($Template_initialize$4.$$p=null),$a=[name,$a],this.name=$a[0],this.body=$a[1],$writer=[name,this],$send($$($nesting,"Template"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Template_initialize$4.$$arity=1),Opal.def($Template_render$6,"$inspect",$Template_inspect$5=function(){return"#"},$Template_inspect$5.$$arity=0),Opal.def($Template_render$6,"$render",$Template_render$6=function(ctx){return null==ctx&&(ctx=this),$send(ctx,"instance_exec",[$$($nesting,"OutputBuffer").$new()],this.body.$to_proc())},$Template_render$6.$$arity=-1),function($OutputBuffer_join$9,$OutputBuffer_append$8){$OutputBuffer_join$9=$klass($OutputBuffer_join$9,null,"OutputBuffer"),[$OutputBuffer_join$9].concat($OutputBuffer_append$8);return $OutputBuffer_join$9.$$prototype.buffer=nil,Opal.def($OutputBuffer_join$9,"$initialize",$OutputBuffer_append$8=function(){return this.buffer=[]},$OutputBuffer_append$8.$$arity=0),Opal.def($OutputBuffer_join$9,"$append",$OutputBuffer_append$8=function(str){return this.buffer["$<<"](str)},$OutputBuffer_append$8.$$arity=1),$alias($OutputBuffer_join$9,"append=","append"),Opal.def($OutputBuffer_join$9,"$join",$OutputBuffer_join$9=function(){return this.buffer.$join()},$OutputBuffer_join$9.$$arity=0),nil&&"join"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules.erb=function(Opal){var self=Opal.top,$nesting=[],$klass=(Opal.nil,Opal.$$$,Opal.$$,Opal.klass),$module=Opal.module,$alias=Opal.alias;return Opal.add_stubs(["$require","$module_function"]),self.$require("template"),function($base,$nesting){$nesting=[$klass($base,null,"ERB")].concat($nesting);return function(self,$Util_html_escape$1){var self=$module(self,"Util"),escapes=([self].concat($Util_html_escape$1),{"&":"&","<":"<",">":">",'"':""","'":"'"}),escape_regexp=/[&<>"']/g;return Opal.def(self,"$html_escape",$Util_html_escape$1=function(str){return(""+str).replace(escape_regexp,function(m){return escapes[m]})},$Util_html_escape$1.$$arity=1),$alias(self,"h","html_escape"),self.$module_function("h"),self.$module_function("html_escape")}($nesting[0],$nesting)}($nesting[0],$nesting)}; +Opal.modules.template=function(Opal){var $nesting=[],nil=Opal.nil,$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$defs=Opal.defs,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$alias=Opal.alias;return Opal.add_stubs("[],[]=,-,keys,attr_reader,instance_exec,new,to_proc,<<,join"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Template"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.name=$proto.body=nil,self._cache=$hash2([],{}),$defs(self,"$[]",(function(name){var $ret_or_1;return null==this._cache&&(this._cache=nil),$truthy($ret_or_1=this._cache["$[]"](name))?$ret_or_1:this._cache["$[]"]("templates/"+name)}),1),$defs(self,"$[]=",(function(name,instance){var $writer;return null==this._cache&&(this._cache=nil),$writer=[name,instance],$send(this._cache,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$defs(self,"$paths",(function(){return null==this._cache&&(this._cache=nil),this._cache.$keys()}),0),self.$attr_reader("body"),$def(self,"$initialize",(function $$initialize(name){var $a,$writer,body=$$initialize.$$p||nil;return delete $$initialize.$$p,$a=[name,body],this.name=$a[0],this.body=$a[1],$writer=[name,this],$send($$("Template"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$inspect",(function(){return"#"}),0),$def(self,"$render",(function(ctx){return null==ctx&&(ctx=this),$send(ctx,"instance_exec",[$$("OutputBuffer").$new()],this.body.$to_proc())}),-1),function($base,$super){var self=$klass($base,null,"OutputBuffer");return self.$$prototype.buffer=nil,$def(self,"$initialize",(function(){return this.buffer=[]}),0),$def(self,"$append",(function(str){return this.buffer["$<<"](str)}),1),$def(self,"$join",(function(){return this.buffer.$join()}),0),$alias(self,"append=","append")}($nesting[0])}($nesting[0],0,$nesting)},Opal.modules.erb=function(Opal){var $base,$parent_nesting,self=Opal.top,$nesting=[],$klass=(Opal.nil,Opal.klass),$module=Opal.module,$def=Opal.def,$alias=Opal.alias;return Opal.add_stubs("require,module_function"),self.$require("template"),$base=$nesting[0],$parent_nesting=$nesting,function($base){var self=$module($base,"Util"),escapes={"&":"&","<":"<",">":">",'"':""","'":"'"},escape_regexp=/[&<>"']/g;return $def(self,"$html_escape",(function(str){return(""+str).replace(escape_regexp,(function(m){return escapes[m]}))}),1),$alias(self,"h","html_escape"),self.$module_function("h"),self.$module_function("html_escape")}([$klass($base,null,"ERB")].concat($parent_nesting)[0])}; diff --git a/opal/master/erb.min.js.gz b/opal/master/erb.min.js.gz index ab526c3d..ccc13e31 100644 Binary files a/opal/master/erb.min.js.gz and b/opal/master/erb.min.js.gz differ diff --git a/opal/master/file.js b/opal/master/file.js index 62c686f8..85f958b8 100644 --- a/opal/master/file.js +++ b/opal/master/file.js @@ -1,7 +1,6 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["file"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["file"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$warn']); + Opal.add_stubs('warn'); return self.$warn("File is already part of corelib now, you don't need to require it anymore.") }; diff --git a/opal/master/file.min.js b/opal/master/file.min.js index 07d6be83..746717ab 100644 --- a/opal/master/file.min.js +++ b/opal/master/file.min.js @@ -1 +1 @@ -Opal.modules.file=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$warn"]),self.$warn("File is already part of corelib now, you don't need to require it anymore.")}; +Opal.modules.file=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("warn"),self.$warn("File is already part of corelib now, you don't need to require it anymore.")}; diff --git a/opal/master/file.min.js.gz b/opal/master/file.min.js.gz index 9a464b37..0f82173a 100644 Binary files a/opal/master/file.min.js.gz and b/opal/master/file.min.js.gz differ diff --git a/opal/master/fileutils.js b/opal/master/fileutils.js index 647342d0..bb040d8a 100644 --- a/opal/master/fileutils.js +++ b/opal/master/fileutils.js @@ -1,6 +1,3 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["fileutils"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; - - return nil +Opal.modules["fileutils"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + return Opal.nil; }; diff --git a/opal/master/fileutils.min.js b/opal/master/fileutils.min.js index 81c6243e..b5e96f1b 100644 --- a/opal/master/fileutils.min.js +++ b/opal/master/fileutils.min.js @@ -1 +1 @@ -Opal.modules.fileutils=function(Opal){Opal.top;var nil=Opal.nil;Opal.$$$,Opal.$$;return nil}; +Opal.modules.fileutils=function(Opal){return Opal.nil}; diff --git a/opal/master/fileutils.min.js.gz b/opal/master/fileutils.min.js.gz index 7f26aca5..6ee80c07 100644 Binary files a/opal/master/fileutils.min.js.gz and b/opal/master/fileutils.min.js.gz differ diff --git a/opal/master/forwardable.js b/opal/master/forwardable.js index a25bba9d..19abc8ca 100644 --- a/opal/master/forwardable.js +++ b/opal/master/forwardable.js @@ -1,191 +1,168 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["forwardable"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $alias = Opal.alias; +Opal.modules["forwardable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $def = Opal.def, $to_a = Opal.to_a, $alias = Opal.alias; - Opal.add_stubs(['$each', '$respond_to?', '$def_instance_delegator', '$include?', '$start_with?', '$to_s', '$define_method', '$__send__', '$instance_variable_get', '$to_proc', '$def_single_delegator', '$define_singleton_method']); + Opal.add_stubs('each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,def_single_delegator,define_singleton_method'); - (function($base, $parent_nesting) { + (function($base) { var self = $module($base, 'Forwardable'); - var $nesting = [self].concat($parent_nesting), $Forwardable_instance_delegate$1, $Forwardable_def_instance_delegators$4, $Forwardable_def_instance_delegator$6; - - Opal.def(self, '$instance_delegate', $Forwardable_instance_delegate$1 = function $$instance_delegate(hash) { - var $$2, self = this; + + $def(self, '$instance_delegate', function $$instance_delegate(hash) { + var self = this; - return $send(hash, 'each', [], ($$2 = function(methods, accessor){var self = $$2.$$s == null ? this : $$2.$$s, $$3; + return $send(hash, 'each', [], function $$1(methods, accessor){var self = $$1.$$s == null ? this : $$1.$$s; - if (methods == null) { - methods = nil; - }; + if (methods == null) methods = nil;; - if (accessor == null) { - accessor = nil; - }; - if ($truthy(methods['$respond_to?']("each"))) { - } else { + if (accessor == null) accessor = nil;; + if (!$truthy(methods['$respond_to?']("each"))) { methods = [methods] }; - return $send(methods, 'each', [], ($$3 = function(method){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(methods, 'each', [], function $$2(method){var self = $$2.$$s == null ? this : $$2.$$s; - if (method == null) { - method = nil; - }; - return self.$def_instance_delegator(accessor, method);}, $$3.$$s = self, $$3.$$arity = 1, $$3));}, $$2.$$s = self, $$2.$$arity = 2, $$2)) - }, $Forwardable_instance_delegate$1.$$arity = 1); + if (method == null) method = nil;; + return self.$def_instance_delegator(accessor, method);}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}) + }, 1); - Opal.def(self, '$def_instance_delegators', $Forwardable_def_instance_delegators$4 = function $$def_instance_delegators(accessor, $a) { - var $post_args, methods, $$5, self = this; + $def(self, '$def_instance_delegators', function $$def_instance_delegators(accessor, $a) { + var $post_args, methods, self = this; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); methods = $post_args;; - return $send(methods, 'each', [], ($$5 = function(method){var self = $$5.$$s == null ? this : $$5.$$s; + return $send(methods, 'each', [], function $$3(method){var self = $$3.$$s == null ? this : $$3.$$s; - if (method == null) { - method = nil; - }; + if (method == null) method = nil;; if ($truthy(["__send__", "__id__"]['$include?'](method))) { - return nil;}; - return self.$def_instance_delegator(accessor, method);}, $$5.$$s = self, $$5.$$arity = 1, $$5)); - }, $Forwardable_def_instance_delegators$4.$$arity = -2); + return nil; + }; + return self.$def_instance_delegator(accessor, method);}, {$$arity: 1, $$s: self}); + }, -2); - Opal.def(self, '$def_instance_delegator', $Forwardable_def_instance_delegator$6 = function $$def_instance_delegator(accessor, method, ali) { - var $$7, $$8, $iter = $Forwardable_def_instance_delegator$6.$$p, $yield = $iter || nil, self = this; + $def(self, '$def_instance_delegator', function $$def_instance_delegator(accessor, method, ali) { + var $yield = $$def_instance_delegator.$$p || nil, self = this; - if ($iter) $Forwardable_def_instance_delegator$6.$$p = null; + delete $$def_instance_delegator.$$p; - if (ali == null) { - ali = method; - }; + if (ali == null) ali = method;; if ($truthy(accessor.$to_s()['$start_with?']("@"))) { - return $send(self, 'define_method', [ali], ($$7 = function($a){var self = $$7.$$s == null ? this : $$7.$$s, $iter = $$7.$$p, block = $iter || nil, $post_args, args; + return $send(self, 'define_method', [ali], function $$4($a){var block = $$4.$$p || nil, $post_args, args, self = $$4.$$s == null ? this : $$4.$$s; + delete $$4.$$p; + ; - if ($iter) $$7.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self.$instance_variable_get(accessor), '__send__', [method].concat(Opal.to_a(args)), block.$to_proc());}, $$7.$$s = self, $$7.$$arity = -1, $$7)) + return $send(self.$instance_variable_get(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) } else { - return $send(self, 'define_method', [ali], ($$8 = function($a){var self = $$8.$$s == null ? this : $$8.$$s, $iter = $$8.$$p, block = $iter || nil, $post_args, args; + return $send(self, 'define_method', [ali], function $$5($a){var block = $$5.$$p || nil, $post_args, args, self = $$5.$$s == null ? this : $$5.$$s; + delete $$5.$$p; + ; - if ($iter) $$8.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self.$__send__(accessor), '__send__', [method].concat(Opal.to_a(args)), block.$to_proc());}, $$8.$$s = self, $$8.$$arity = -1, $$8)) + return $send(self.$__send__(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) }; - }, $Forwardable_def_instance_delegator$6.$$arity = -3); + }, -3); $alias(self, "delegate", "instance_delegate"); $alias(self, "def_delegators", "def_instance_delegators"); return $alias(self, "def_delegator", "def_instance_delegator"); - })($nesting[0], $nesting); - return (function($base, $parent_nesting) { + })($nesting[0]); + return (function($base) { var self = $module($base, 'SingleForwardable'); - var $nesting = [self].concat($parent_nesting), $SingleForwardable_single_delegate$9, $SingleForwardable_def_single_delegators$12, $SingleForwardable_def_single_delegator$14; - - Opal.def(self, '$single_delegate', $SingleForwardable_single_delegate$9 = function $$single_delegate(hash) { - var $$10, self = this; + + $def(self, '$single_delegate', function $$single_delegate(hash) { + var self = this; - return $send(hash, 'each', [], ($$10 = function(methods, accessor){var self = $$10.$$s == null ? this : $$10.$$s, $$11; + return $send(hash, 'each', [], function $$6(methods, accessor){var self = $$6.$$s == null ? this : $$6.$$s; - if (methods == null) { - methods = nil; - }; + if (methods == null) methods = nil;; - if (accessor == null) { - accessor = nil; - }; - if ($truthy(methods['$respond_to?']("each"))) { - } else { + if (accessor == null) accessor = nil;; + if (!$truthy(methods['$respond_to?']("each"))) { methods = [methods] }; - return $send(methods, 'each', [], ($$11 = function(method){var self = $$11.$$s == null ? this : $$11.$$s; + return $send(methods, 'each', [], function $$7(method){var self = $$7.$$s == null ? this : $$7.$$s; - if (method == null) { - method = nil; - }; - return self.$def_single_delegator(accessor, method);}, $$11.$$s = self, $$11.$$arity = 1, $$11));}, $$10.$$s = self, $$10.$$arity = 2, $$10)) - }, $SingleForwardable_single_delegate$9.$$arity = 1); + if (method == null) method = nil;; + return self.$def_single_delegator(accessor, method);}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}) + }, 1); - Opal.def(self, '$def_single_delegators', $SingleForwardable_def_single_delegators$12 = function $$def_single_delegators(accessor, $a) { - var $post_args, methods, $$13, self = this; + $def(self, '$def_single_delegators', function $$def_single_delegators(accessor, $a) { + var $post_args, methods, self = this; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); methods = $post_args;; - return $send(methods, 'each', [], ($$13 = function(method){var self = $$13.$$s == null ? this : $$13.$$s; + return $send(methods, 'each', [], function $$8(method){var self = $$8.$$s == null ? this : $$8.$$s; - if (method == null) { - method = nil; - }; + if (method == null) method = nil;; if ($truthy(["__send__", "__id__"]['$include?'](method))) { - return nil;}; - return self.$def_single_delegator(accessor, method);}, $$13.$$s = self, $$13.$$arity = 1, $$13)); - }, $SingleForwardable_def_single_delegators$12.$$arity = -2); + return nil; + }; + return self.$def_single_delegator(accessor, method);}, {$$arity: 1, $$s: self}); + }, -2); - Opal.def(self, '$def_single_delegator', $SingleForwardable_def_single_delegator$14 = function $$def_single_delegator(accessor, method, ali) { - var $$15, $$16, $iter = $SingleForwardable_def_single_delegator$14.$$p, $yield = $iter || nil, self = this; + $def(self, '$def_single_delegator', function $$def_single_delegator(accessor, method, ali) { + var $yield = $$def_single_delegator.$$p || nil, self = this; - if ($iter) $SingleForwardable_def_single_delegator$14.$$p = null; + delete $$def_single_delegator.$$p; - if (ali == null) { - ali = method; - }; + if (ali == null) ali = method;; if ($truthy(accessor.$to_s()['$start_with?']("@"))) { - return $send(self, 'define_singleton_method', [ali], ($$15 = function($a){var self = $$15.$$s == null ? this : $$15.$$s, $iter = $$15.$$p, block = $iter || nil, $post_args, args; + return $send(self, 'define_singleton_method', [ali], function $$9($a){var block = $$9.$$p || nil, $post_args, args, self = $$9.$$s == null ? this : $$9.$$s; + delete $$9.$$p; + ; - if ($iter) $$15.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self.$instance_variable_get(accessor), '__send__', [method].concat(Opal.to_a(args)), block.$to_proc());}, $$15.$$s = self, $$15.$$arity = -1, $$15)) + return $send(self.$instance_variable_get(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) } else { - return $send(self, 'define_singleton_method', [ali], ($$16 = function($a){var self = $$16.$$s == null ? this : $$16.$$s, $iter = $$16.$$p, block = $iter || nil, $post_args, args; + return $send(self, 'define_singleton_method', [ali], function $$10($a){var block = $$10.$$p || nil, $post_args, args, self = $$10.$$s == null ? this : $$10.$$s; + delete $$10.$$p; + ; - if ($iter) $$16.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self.$__send__(accessor), '__send__', [method].concat(Opal.to_a(args)), block.$to_proc());}, $$16.$$s = self, $$16.$$arity = -1, $$16)) + return $send(self.$__send__(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) }; - }, $SingleForwardable_def_single_delegator$14.$$arity = -3); + }, -3); $alias(self, "delegate", "single_delegate"); $alias(self, "def_delegators", "def_single_delegators"); return $alias(self, "def_delegator", "def_single_delegator"); - })($nesting[0], $nesting); + })($nesting[0]); }; diff --git a/opal/master/forwardable.min.js b/opal/master/forwardable.min.js index e7a23c80..591724b0 100644 --- a/opal/master/forwardable.min.js +++ b/opal/master/forwardable.min.js @@ -1 +1 @@ -Opal.modules.forwardable=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$send=Opal.send,$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs(["$each","$respond_to?","$def_instance_delegator","$include?","$start_with?","$to_s","$define_method","$__send__","$instance_variable_get","$to_proc","$def_single_delegator","$define_singleton_method"]),function(self,$Forwardable_def_instance_delegators$4){var $Forwardable_def_instance_delegator$6;[self=$module(self,"Forwardable")].concat($Forwardable_def_instance_delegators$4),Opal.def(self,"$instance_delegate",$Forwardable_def_instance_delegators$4=function(hash){var $$2;return $send(hash,"each",[],(($$2=function(methods,accessor){var $$3,self=null==$$2.$$s?this:$$2.$$s;return null==methods&&(methods=nil),null==accessor&&(accessor=nil),$truthy(methods["$respond_to?"]("each"))||(methods=[methods]),$send(methods,"each",[],(($$3=function(method){var self=null==$$3.$$s?this:$$3.$$s;return null==method&&(method=nil),self.$def_instance_delegator(accessor,method)}).$$s=self,$$3.$$arity=1,$$3))}).$$s=this,$$2.$$arity=2,$$2))},$Forwardable_def_instance_delegators$4.$$arity=1),Opal.def(self,"$def_instance_delegators",$Forwardable_def_instance_delegators$4=function(accessor,$a){var $$5,$post_args=Opal.slice.call(arguments,1,arguments.length);return $send($post_args,"each",[],(($$5=function(method){var self=null==$$5.$$s?this:$$5.$$s;return null==method&&(method=nil),$truthy(["__send__","__id__"]["$include?"](method))?nil:self.$def_instance_delegator(accessor,method)}).$$s=this,$$5.$$arity=1,$$5))},$Forwardable_def_instance_delegators$4.$$arity=-2),Opal.def(self,"$def_instance_delegator",$Forwardable_def_instance_delegator$6=function(accessor,method,ali){var $$7,$$8,$iter=$Forwardable_def_instance_delegator$6.$$p;return $iter&&($Forwardable_def_instance_delegator$6.$$p=null),null==ali&&(ali=method),$truthy(accessor.$to_s()["$start_with?"]("@"))?$send(this,"define_method",[ali],(($$7=function($a){var self=null==$$7.$$s?this:$$7.$$s,args=$$7.$$p,block=args||nil;return args&&($$7.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$send(self.$instance_variable_get(accessor),"__send__",[method].concat(Opal.to_a(args)),block.$to_proc())}).$$s=this,$$7.$$arity=-1,$$7)):$send(this,"define_method",[ali],(($$8=function($a){var self=null==$$8.$$s?this:$$8.$$s,args=$$8.$$p,block=args||nil;return args&&($$8.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$send(self.$__send__(accessor),"__send__",[method].concat(Opal.to_a(args)),block.$to_proc())}).$$s=this,$$8.$$arity=-1,$$8))},$Forwardable_def_instance_delegator$6.$$arity=-3),$alias(self,"delegate","instance_delegate"),$alias(self,"def_delegators","def_instance_delegators"),$alias(self,"def_delegator","def_instance_delegator")}($nesting[0],$nesting),function(self,$SingleForwardable_def_single_delegators$12){var $SingleForwardable_def_single_delegator$14,self=$module(self,"SingleForwardable");[self].concat($SingleForwardable_def_single_delegators$12);return Opal.def(self,"$single_delegate",$SingleForwardable_def_single_delegators$12=function(hash){var $$10;return $send(hash,"each",[],(($$10=function(methods,accessor){var $$11,self=null==$$10.$$s?this:$$10.$$s;return null==methods&&(methods=nil),null==accessor&&(accessor=nil),$truthy(methods["$respond_to?"]("each"))||(methods=[methods]),$send(methods,"each",[],(($$11=function(method){var self=null==$$11.$$s?this:$$11.$$s;return null==method&&(method=nil),self.$def_single_delegator(accessor,method)}).$$s=self,$$11.$$arity=1,$$11))}).$$s=this,$$10.$$arity=2,$$10))},$SingleForwardable_def_single_delegators$12.$$arity=1),Opal.def(self,"$def_single_delegators",$SingleForwardable_def_single_delegators$12=function(accessor,$a){var $$13,$post_args=Opal.slice.call(arguments,1,arguments.length);return $send($post_args,"each",[],(($$13=function(method){var self=null==$$13.$$s?this:$$13.$$s;return null==method&&(method=nil),$truthy(["__send__","__id__"]["$include?"](method))?nil:self.$def_single_delegator(accessor,method)}).$$s=this,$$13.$$arity=1,$$13))},$SingleForwardable_def_single_delegators$12.$$arity=-2),Opal.def(self,"$def_single_delegator",$SingleForwardable_def_single_delegator$14=function(accessor,method,ali){var $$15,$$16,$iter=$SingleForwardable_def_single_delegator$14.$$p;return $iter&&($SingleForwardable_def_single_delegator$14.$$p=null),null==ali&&(ali=method),$truthy(accessor.$to_s()["$start_with?"]("@"))?$send(this,"define_singleton_method",[ali],(($$15=function($a){var self=null==$$15.$$s?this:$$15.$$s,args=$$15.$$p,block=args||nil;return args&&($$15.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$send(self.$instance_variable_get(accessor),"__send__",[method].concat(Opal.to_a(args)),block.$to_proc())}).$$s=this,$$15.$$arity=-1,$$15)):$send(this,"define_singleton_method",[ali],(($$16=function($a){var self=null==$$16.$$s?this:$$16.$$s,args=$$16.$$p,block=args||nil;return args&&($$16.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$send(self.$__send__(accessor),"__send__",[method].concat(Opal.to_a(args)),block.$to_proc())}).$$s=this,$$16.$$arity=-1,$$16))},$SingleForwardable_def_single_delegator$14.$$arity=-3),$alias(self,"delegate","single_delegate"),$alias(self,"def_delegators","def_single_delegators"),$alias(self,"def_delegator","def_single_delegator")}($nesting[0],$nesting)}; +Opal.modules.forwardable=function(Opal){var self,$nesting=[],nil=Opal.nil,$module=Opal.module,$send=Opal.send,$truthy=Opal.truthy,$def=Opal.def,$to_a=Opal.to_a,$alias=Opal.alias;return Opal.add_stubs("each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,def_single_delegator,define_singleton_method"),self=$module($nesting[0],"Forwardable"),$def(self,"$instance_delegate",(function(hash){return $send(hash,"each",[],(function $$1(methods,accessor){var self=null==$$1.$$s?this:$$1.$$s;return null==methods&&(methods=nil),null==accessor&&(accessor=nil),$truthy(methods["$respond_to?"]("each"))||(methods=[methods]),$send(methods,"each",[],(function $$2(method){return null==method&&(method=nil),(null==$$2.$$s?this:$$2.$$s).$def_instance_delegator(accessor,method)}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:this})}),1),$def(self,"$def_instance_delegators",(function(accessor,$a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments,1),$send($post_args,"each",[],(function $$3(method){var self=null==$$3.$$s?this:$$3.$$s;return null==method&&(method=nil),$truthy(["__send__","__id__"]["$include?"](method))?nil:self.$def_instance_delegator(accessor,method)}),{$$arity:1,$$s:self})}),-2),$def(self,"$def_instance_delegator",(function $$def_instance_delegator(accessor,method,ali){return delete $$def_instance_delegator.$$p,null==ali&&(ali=method),$truthy(accessor.$to_s()["$start_with?"]("@"))?$send(this,"define_method",[ali],(function $$4($a){var args,block=$$4.$$p||nil,self=null==$$4.$$s?this:$$4.$$s;return delete $$4.$$p,args=Opal.slice.call(arguments),$send(self.$instance_variable_get(accessor),"__send__",[method].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:this}):$send(this,"define_method",[ali],(function $$5($a){var args,block=$$5.$$p||nil,self=null==$$5.$$s?this:$$5.$$s;return delete $$5.$$p,args=Opal.slice.call(arguments),$send(self.$__send__(accessor),"__send__",[method].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:this})}),-3),$alias(self,"delegate","instance_delegate"),$alias(self,"def_delegators","def_instance_delegators"),$alias(self,"def_delegator","def_instance_delegator"),function($base){var self=$module($base,"SingleForwardable");return $def(self,"$single_delegate",(function(hash){return $send(hash,"each",[],(function $$6(methods,accessor){var self=null==$$6.$$s?this:$$6.$$s;return null==methods&&(methods=nil),null==accessor&&(accessor=nil),$truthy(methods["$respond_to?"]("each"))||(methods=[methods]),$send(methods,"each",[],(function $$7(method){return null==method&&(method=nil),(null==$$7.$$s?this:$$7.$$s).$def_single_delegator(accessor,method)}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:this})}),1),$def(self,"$def_single_delegators",(function(accessor,$a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments,1),$send($post_args,"each",[],(function $$8(method){var self=null==$$8.$$s?this:$$8.$$s;return null==method&&(method=nil),$truthy(["__send__","__id__"]["$include?"](method))?nil:self.$def_single_delegator(accessor,method)}),{$$arity:1,$$s:self})}),-2),$def(self,"$def_single_delegator",(function $$def_single_delegator(accessor,method,ali){return delete $$def_single_delegator.$$p,null==ali&&(ali=method),$truthy(accessor.$to_s()["$start_with?"]("@"))?$send(this,"define_singleton_method",[ali],(function $$9($a){var args,block=$$9.$$p||nil,self=null==$$9.$$s?this:$$9.$$s;return delete $$9.$$p,args=Opal.slice.call(arguments),$send(self.$instance_variable_get(accessor),"__send__",[method].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:this}):$send(this,"define_singleton_method",[ali],(function $$10($a){var args,block=$$10.$$p||nil,self=null==$$10.$$s?this:$$10.$$s;return delete $$10.$$p,args=Opal.slice.call(arguments),$send(self.$__send__(accessor),"__send__",[method].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:this})}),-3),$alias(self,"delegate","single_delegate"),$alias(self,"def_delegators","def_single_delegators"),$alias(self,"def_delegator","def_single_delegator")}($nesting[0])}; diff --git a/opal/master/forwardable.min.js.gz b/opal/master/forwardable.min.js.gz index b80e2307..48d16d02 100644 Binary files a/opal/master/forwardable.min.js.gz and b/opal/master/forwardable.min.js.gz differ diff --git a/opal/master/gjs.js b/opal/master/gjs.js index 27c510d8..768992b3 100644 --- a/opal/master/gjs.js +++ b/opal/master/gjs.js @@ -1,6 +1,5 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["gjs/io"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["gjs/io"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil; /* global imports */; @@ -23,24 +22,28 @@ Opal.modules["gjs/io"] = function(Opal) { stderr.write_chars(buf, buf.length); stderr.flush(); } + + Opal.gvars.stdin.read_proc = function(_s) { + var out = stdin.read_line(); + if (out[0] == GLib.IOStatus.EOF) return nil; + return out[1].toString(); + } ; }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["gjs/kernel"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["gjs/kernel"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $const_set = Opal.const_set; /* global ARGV */; - Opal.const_set($nesting[0], 'ARGV', ARGV); + $const_set($nesting[0], 'ARGV', ARGV); return Opal.exit = imports.system.exit;; }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["gjs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["gjs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); self.$require("gjs/io"); return self.$require("gjs/kernel"); diff --git a/opal/master/gjs.min.js b/opal/master/gjs.min.js index 0de09463..b7256da6 100644 --- a/opal/master/gjs.min.js +++ b/opal/master/gjs.min.js @@ -1 +1 @@ -Opal.modules["gjs/io"]=function(Opal){Opal.top,Opal.nil,Opal.$$$,Opal.$$;var GLib=imports.gi.GLib,ByteArray=imports.byteArray,stdout=(GLib.IOChannel.unix_new(0),GLib.IOChannel.unix_new(1)),stderr=GLib.IOChannel.unix_new(2);Opal.gvars.stdout.write_proc=function(buf){buf=ByteArray.fromString(buf);stdout.write_chars(buf,buf.length),stdout.flush()},Opal.gvars.stderr.write_proc=function(buf){buf=ByteArray.fromString(buf);stderr.write_chars(buf,buf.length),stderr.flush()}},Opal.modules["gjs/kernel"]=function(Opal){Opal.top,Opal.nil,Opal.$$$,Opal.$$;return Opal.const_set([][0],"ARGV",ARGV),Opal.exit=imports.system.exit},Opal.modules.gjs=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$require"]),self.$require("gjs/io"),self.$require("gjs/kernel")}; +Opal.modules["gjs/io"]=function(Opal){var nil=Opal.nil,GLib=imports.gi.GLib,ByteArray=imports.byteArray,stdin=GLib.IOChannel.unix_new(0),stdout=GLib.IOChannel.unix_new(1),stderr=GLib.IOChannel.unix_new(2);Opal.gvars.stdout.write_proc=function(s){var buf=ByteArray.fromString(s);stdout.write_chars(buf,buf.length),stdout.flush()},Opal.gvars.stderr.write_proc=function(s){var buf=ByteArray.fromString(s);stderr.write_chars(buf,buf.length),stderr.flush()},Opal.gvars.stdin.read_proc=function(_s){var out=stdin.read_line();return out[0]==GLib.IOStatus.EOF?nil:out[1].toString()}},Opal.modules["gjs/kernel"]=function(Opal){Opal.nil;return(0,Opal.const_set)([][0],"ARGV",ARGV),Opal.exit=imports.system.exit},Opal.modules.gjs=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("require"),self.$require("gjs/io"),self.$require("gjs/kernel")}; diff --git a/opal/master/gjs.min.js.gz b/opal/master/gjs.min.js.gz index f4c5c10c..3b7cfa11 100644 Binary files a/opal/master/gjs.min.js.gz and b/opal/master/gjs.min.js.gz differ diff --git a/opal/master/headless_chrome.js b/opal/master/headless_chrome.js index 780011cb..c9613ae8 100644 --- a/opal/master/headless_chrome.js +++ b/opal/master/headless_chrome.js @@ -1,6 +1,5 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["headless_chrome"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["headless_chrome"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil; Opal.exit = function(code) { diff --git a/opal/master/headless_chrome.min.js b/opal/master/headless_chrome.min.js index b40e77d1..20ffccd9 100644 --- a/opal/master/headless_chrome.min.js +++ b/opal/master/headless_chrome.min.js @@ -1 +1 @@ -Opal.modules.headless_chrome=function(Opal){Opal.top,Opal.nil,Opal.$$$,Opal.$$;Opal.exit=function(code){void 0===window.OPAL_EXIT_CODE&&(window.OPAL_EXIT_CODE=code)}}; +Opal.modules.headless_chrome=function(Opal){Opal.nil;Opal.exit=function(code){void 0===window.OPAL_EXIT_CODE&&(window.OPAL_EXIT_CODE=code)}}; diff --git a/opal/master/headless_chrome.min.js.gz b/opal/master/headless_chrome.min.js.gz index c1a7c55e..1e313b6d 100644 Binary files a/opal/master/headless_chrome.min.js.gz and b/opal/master/headless_chrome.min.js.gz differ diff --git a/opal/master/iconv.js b/opal/master/iconv.js index 07d43274..809b4625 100644 --- a/opal/master/iconv.js +++ b/opal/master/iconv.js @@ -1,6 +1,3 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["iconv"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; - - return nil +Opal.modules["iconv"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + return Opal.nil; }; diff --git a/opal/master/iconv.min.js b/opal/master/iconv.min.js index e3b10942..2190d741 100644 --- a/opal/master/iconv.min.js +++ b/opal/master/iconv.min.js @@ -1 +1 @@ -Opal.modules.iconv=function(Opal){Opal.top;var nil=Opal.nil;Opal.$$$,Opal.$$;return nil}; +Opal.modules.iconv=function(Opal){return Opal.nil}; diff --git a/opal/master/iconv.min.js.gz b/opal/master/iconv.min.js.gz index b4cc5ca3..1c42245c 100644 Binary files a/opal/master/iconv.min.js.gz and b/opal/master/iconv.min.js.gz differ diff --git a/opal/master/index.html b/opal/master/index.html index 7b53e64d..14d1e3fe 100644 --- a/opal/master/index.html +++ b/opal/master/index.html @@ -9,6 +9,22 @@

Opal: CDN distribution for version master

    +
  • + //cdn.opalrb.com/opal/master/await.js +
    + <script src="//cdn.opalrb.com/opal/master/await.js" onload="Opal.require('await')"></script> +
    +

    +
  • + +
  • + //cdn.opalrb.com/opal/master/await.min.js +
    + <script src="//cdn.opalrb.com/opal/master/await.min.js" onload="Opal.require('await')"></script> +
    +

    +
  • +
  • //cdn.opalrb.com/opal/master/base64.js
    @@ -489,6 +505,22 @@

    Opal: CDN distribution for version master



  • +
  • + //cdn.opalrb.com/opal/master/opal-replutils.js +
    + <script src="//cdn.opalrb.com/opal/master/opal-replutils.js" onload="Opal.require('opal-replutils')"></script> +
    +

    +
  • + +
  • + //cdn.opalrb.com/opal/master/opal-replutils.min.js +
    + <script src="//cdn.opalrb.com/opal/master/opal-replutils.min.js" onload="Opal.require('opal-replutils')"></script> +
    +

    +
  • +
  • //cdn.opalrb.com/opal/master/opal-source-maps.js
    @@ -537,6 +569,22 @@

    Opal: CDN distribution for version master



  • +
  • + //cdn.opalrb.com/opal/master/optparse.js +
    + <script src="//cdn.opalrb.com/opal/master/optparse.js" onload="Opal.require('optparse')"></script> +
    +

    +
  • + +
  • + //cdn.opalrb.com/opal/master/optparse.min.js +
    + <script src="//cdn.opalrb.com/opal/master/optparse.min.js" onload="Opal.require('optparse')"></script> +
    +

    +
  • +
  • //cdn.opalrb.com/opal/master/ostruct.js
    @@ -617,6 +665,22 @@

    Opal: CDN distribution for version master



  • +
  • + //cdn.opalrb.com/opal/master/quickjs.js +
    + <script src="//cdn.opalrb.com/opal/master/quickjs.js" onload="Opal.require('quickjs')"></script> +
    +

    +
  • + +
  • + //cdn.opalrb.com/opal/master/quickjs.min.js +
    + <script src="//cdn.opalrb.com/opal/master/quickjs.min.js" onload="Opal.require('quickjs')"></script> +
    +

    +
  • +
  • //cdn.opalrb.com/opal/master/rbconfig.js
    @@ -665,6 +729,22 @@

    Opal: CDN distribution for version master



  • +
  • + //cdn.opalrb.com/opal/master/shellwords.js +
    + <script src="//cdn.opalrb.com/opal/master/shellwords.js" onload="Opal.require('shellwords')"></script> +
    +

    +
  • + +
  • + //cdn.opalrb.com/opal/master/shellwords.min.js +
    + <script src="//cdn.opalrb.com/opal/master/shellwords.min.js" onload="Opal.require('shellwords')"></script> +
    +

    +
  • +
  • //cdn.opalrb.com/opal/master/singleton.js
    @@ -761,6 +841,22 @@

    Opal: CDN distribution for version master



  • +
  • + //cdn.opalrb.com/opal/master/uri.js +
    + <script src="//cdn.opalrb.com/opal/master/uri.js" onload="Opal.require('uri')"></script> +
    +

    +
  • + +
  • + //cdn.opalrb.com/opal/master/uri.min.js +
    + <script src="//cdn.opalrb.com/opal/master/uri.min.js" onload="Opal.require('uri')"></script> +
    +

    +
  • +
  • //cdn.opalrb.com/opal/master/yaml.js
    diff --git a/opal/master/js.js b/opal/master/js.js index 8da73ce4..6bff653e 100644 --- a/opal/master/js.js +++ b/opal/master/js.js @@ -1,112 +1,103 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["js"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $alias = Opal.alias; +Opal.modules["js"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $def = Opal.def, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$insert', '$<<', '$global', '$extend']); - return (function($base, $parent_nesting) { + Opal.add_stubs('insert,<<,global,extend'); + return (function($base) { var self = $module($base, 'JS'); - var $nesting = [self].concat($parent_nesting), $JS_delete$1, $JS_global$2, $JS_in$3, $JS_instanceof$4, $JS_new$5, $JS_new$6, $JS_typeof$7, $JS_void$8, $JS_call$9, $JS_$$$10; - - Opal.def(self, '$delete', $JS_delete$1 = function(object, property) { - var self = this; - + + $def(self, '$delete', function $JS_delete$1(object, property) { + return delete object[property] - }, $JS_delete$1.$$arity = 2); + }, 2); - Opal.def(self, '$global', $JS_global$2 = function $$global() { - var self = this; - + $def(self, '$global', function $$global() { + return Opal.global; - }, $JS_global$2.$$arity = 0); + }, 0); - Opal.def(self, '$in', $JS_in$3 = function(property, object) { - var self = this; - + $def(self, '$in', function $JS_in$2(property, object) { + return property in object - }, $JS_in$3.$$arity = 2); + }, 2); - Opal.def(self, '$instanceof', $JS_instanceof$4 = function(value, func) { - var self = this; - + $def(self, '$instanceof', function $JS_instanceof$3(value, func) { + return value instanceof func - }, $JS_instanceof$4.$$arity = 2); + }, 2); if ($truthy(typeof Function.prototype.bind == 'function')) { - Opal.def(self, '$new', $JS_new$5 = function(func, $a) { - var $iter = $JS_new$5.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$new', function $JS_new$4(func, $a) { + var block = $JS_new$4.$$p || nil, $post_args, args; - if ($iter) $JS_new$5.$$p = null; - + delete $JS_new$4.$$p; - if ($iter) $JS_new$5.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; args.$insert(0, this); if ($truthy(block)) { - args['$<<'](block)}; + args['$<<'](block) + }; return new (func.bind.apply(func, args))(); - }, $JS_new$5.$$arity = -2) + }, -2) } else { - Opal.def(self, '$new', $JS_new$6 = function(func, $a) { - var $iter = $JS_new$6.$$p, block = $iter || nil, $post_args, args, self = this, f = nil; + $def(self, '$new', function $JS_new$5(func, $a) { + var block = $JS_new$5.$$p || nil, $post_args, args, f = nil; - if ($iter) $JS_new$6.$$p = null; + delete $JS_new$5.$$p; + ; - if ($iter) $JS_new$6.$$p = null;; - - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy(block)) { - args['$<<'](block)}; + args['$<<'](block) + }; f = function(){return func.apply(this, args)}; f["prototype"] = func["prototype"]; return new f();; - }, $JS_new$6.$$arity = -2) + }, -2) }; - Opal.def(self, '$typeof', $JS_typeof$7 = function(value) { - var self = this; - + $def(self, '$typeof', function $JS_typeof$6(value) { + return typeof value - }, $JS_typeof$7.$$arity = 1); + }, 1); - Opal.def(self, '$void', $JS_void$8 = function(expr) { - var self = this; - + $def(self, '$void', function $JS_void$7(expr) { + return void expr - }, $JS_void$8.$$arity = 1); + }, 1); - Opal.def(self, '$call', $JS_call$9 = function $$call(func, $a) { - var $iter = $JS_call$9.$$p, block = $iter || nil, $post_args, args, self = this, g = nil; + $def(self, '$call', function $$call(func, $a) { + var block = $$call.$$p || nil, $post_args, args, self = this, g = nil; - if ($iter) $JS_call$9.$$p = null; + delete $$call.$$p; + ; - if ($iter) $JS_call$9.$$p = null;; - - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; g = self.$global(); if ($truthy(block)) { - args['$<<'](block)}; + args['$<<'](block) + }; return g[func].apply(g, args); - }, $JS_call$9.$$arity = -2); - $alias(self, "method_missing", "call"); + }, -2); - Opal.def(self, '$[]', $JS_$$$10 = function(name) { - var self = this; - + $def(self, '$[]', function $JS_$$$8(name) { + return Opal.global[name] - }, $JS_$$$10.$$arity = 1); + }, 1); + $alias(self, "method_missing", "call"); return self.$extend(self); - })($nesting[0], $nesting) + })($nesting[0]) }; diff --git a/opal/master/js.min.js b/opal/master/js.min.js index b173f319..bd0b567d 100644 --- a/opal/master/js.min.js +++ b/opal/master/js.min.js @@ -1 +1 @@ -Opal.modules.js=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs(["$insert","$<<","$global","$extend"]),function(self,$JS_$$$10){var $JS_new$5,$JS_new$6,$JS_call$9,self=$module(self,"JS");[self].concat($JS_$$$10);return Opal.def(self,"$delete",$JS_$$$10=function(object,property){return delete object[property]},$JS_$$$10.$$arity=2),Opal.def(self,"$global",$JS_$$$10=function(){return Opal.global},$JS_$$$10.$$arity=0),Opal.def(self,"$in",$JS_$$$10=function(property,object){return property in object},$JS_$$$10.$$arity=2),Opal.def(self,"$instanceof",$JS_$$$10=function(value,func){return value instanceof func},$JS_$$$10.$$arity=2),$truthy("function"==typeof Function.prototype.bind)?Opal.def(self,"$new",$JS_new$5=function(func,$a){var args=$JS_new$5.$$p,block=args||nil;return args&&($JS_new$5.$$p=null),args&&($JS_new$5.$$p=null),(args=Opal.slice.call(arguments,1,arguments.length)).$insert(0,this),$truthy(block)&&args["$<<"](block),new(func.bind.apply(func,args))},$JS_new$5.$$arity=-2):Opal.def(self,"$new",$JS_new$6=function(func,$a){var args,f,$post_args=$JS_new$6.$$p,block=$post_args||nil;return $post_args&&($JS_new$6.$$p=null),$post_args&&($JS_new$6.$$p=null),$post_args=Opal.slice.call(arguments,1,arguments.length),args=$post_args,$truthy(block)&&args["$<<"](block),(f=function(){return func.apply(this,args)}).prototype=func.prototype,new f},$JS_new$6.$$arity=-2),Opal.def(self,"$typeof",$JS_$$$10=function(value){return typeof value},$JS_$$$10.$$arity=1),Opal.def(self,"$void",$JS_$$$10=function(expr){},$JS_$$$10.$$arity=1),Opal.def(self,"$call",$JS_call$9=function(func,$a){var args=$JS_call$9.$$p,block=args||nil,g=nil;return args&&($JS_call$9.$$p=null),args&&($JS_call$9.$$p=null),args=Opal.slice.call(arguments,1,arguments.length),g=this.$global(),$truthy(block)&&args["$<<"](block),g[func].apply(g,args)},$JS_call$9.$$arity=-2),$alias(self,"method_missing","call"),Opal.def(self,"$[]",$JS_$$$10=function(name){return Opal.global[name]},$JS_$$$10.$$arity=1),self.$extend(self)}($nesting[0],$nesting)}; +Opal.modules.js=function(Opal){var self,nil=Opal.nil,$module=Opal.module,$def=Opal.def,$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs("insert,<<,global,extend"),self=$module([][0],"JS"),$def(self,"$delete",(function(object,property){return delete object[property]}),2),$def(self,"$global",(function(){return Opal.global}),0),$def(self,"$in",(function(property,object){return property in object}),2),$def(self,"$instanceof",(function(value,func){return value instanceof func}),2),$truthy("function"==typeof Function.prototype.bind)?$def(self,"$new",(function $JS_new$4(func,$a){var args,block=$JS_new$4.$$p||nil;return delete $JS_new$4.$$p,(args=Opal.slice.call(arguments,1)).$insert(0,this),$truthy(block)&&args["$<<"](block),new(func.bind.apply(func,args))}),-2):$def(self,"$new",(function $JS_new$5(func,$a){var $post_args,args,block=$JS_new$5.$$p||nil,f=nil;return delete $JS_new$5.$$p,$post_args=Opal.slice.call(arguments,1),args=$post_args,$truthy(block)&&args["$<<"](block),(f=function(){return func.apply(this,args)}).prototype=func.prototype,new f}),-2),$def(self,"$typeof",(function(value){return typeof value}),1),$def(self,"$void",(function(expr){}),1),$def(self,"$call",(function $$call(func,$a){var args,block=$$call.$$p||nil,self=this,g=nil;return delete $$call.$$p,args=Opal.slice.call(arguments,1),g=self.$global(),$truthy(block)&&args["$<<"](block),g[func].apply(g,args)}),-2),$def(self,"$[]",(function(name){return Opal.global[name]}),1),$alias(self,"method_missing","call"),self.$extend(self)}; diff --git a/opal/master/js.min.js.gz b/opal/master/js.min.js.gz index f89feaa3..2a1a31bb 100644 Binary files a/opal/master/js.min.js.gz and b/opal/master/js.min.js.gz differ diff --git a/opal/master/json.js b/opal/master/json.js index 1d12f715..3eedf50e 100644 --- a/opal/master/json.js +++ b/opal/master/json.js @@ -1,32 +1,16 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["json"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; - - Opal.add_stubs(['$raise', '$new', '$push', '$[]=', '$-', '$[]', '$create_id', '$json_create', '$const_get', '$attr_accessor', '$create_id=', '$===', '$parse', '$generate', '$from_object', '$merge', '$to_json', '$responds_to?', '$to_io', '$write', '$to_s', '$to_a', '$strftime']); +Opal.modules["json"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $Object = Opal.Object, $hash2 = Opal.hash2, $eqeqeq = Opal.eqeqeq, $defs = Opal.defs, $truthy = Opal.truthy, $def = Opal.def; + + Opal.add_stubs('raise,new,push,[]=,-,[],create_id,json_create,const_get,attr_accessor,create_id=,===,parse,generate,from_object,merge,to_json,responds_to?,to_io,write,to_s,to_a,strftime'); (function($base, $parent_nesting) { var self = $module($base, 'JSON'); - var $nesting = [self].concat($parent_nesting), $JSON_$$$1, $JSON_parse$2, $JSON_parse$excl$3, $JSON_load$4, $JSON_from_object$5, $JSON_generate$6, $JSON_dump$7, $writer = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $writer = nil; - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'JSONError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ParserError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'JSONError'), $nesting); + $klass($nesting[0], $$('StandardError'), 'JSONError'); + $klass($nesting[0], $$('JSONError'), 'ParserError'); var $hasOwn = Opal.hasOwnProperty; @@ -34,7 +18,7 @@ Opal.modules["json"] = function(Opal) { try { return JSON.parse(source); } catch (e) { - self.$raise($$$($$($nesting, 'JSON'), 'ParserError'), e.message); + self.$raise($$$($$('JSON'), 'ParserError'), e.message); } }; @@ -71,12 +55,12 @@ Opal.modules["json"] = function(Opal) { for (k in value) { if ($hasOwn.call(value, k)) { - (($writer = [k, to_opal(value[k], options)]), $send((hash), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); + (($writer = [k, to_opal(value[k], options)]), $send((hash), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); } } - if (!options.parse && (klass = (hash)['$[]']($$($nesting, 'JSON').$create_id())) != nil) { - return $$$('::', 'Object').$const_get(klass).$json_create(hash); + if (!options.parse && (klass = (hash)['$[]']($$('JSON').$create_id())) != nil) { + return $Object.$const_get(klass).$json_create(hash); } else { return hash; @@ -86,146 +70,126 @@ Opal.modules["json"] = function(Opal) { }; ; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("create_id") })(Opal.get_singleton_class(self), $nesting); $writer = ["json_class"]; - $send(self, 'create_id=', Opal.to_a($writer)); + $send(self, 'create_id=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.defs(self, '$[]', $JSON_$$$1 = function(value, options) { + $defs(self, '$[]', function $JSON_$$$1(value, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; - if ($truthy($$($nesting, 'String')['$==='](value))) { + if (options == null) options = $hash2([], {});; + if ($eqeqeq($$('String'), value)) { return self.$parse(value, options) } else { return self.$generate(value, options) }; - }, $JSON_$$$1.$$arity = -2); - Opal.defs(self, '$parse', $JSON_parse$2 = function $$parse(source, options) { + }, -2); + $defs(self, '$parse', function $$parse(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; return self.$from_object($parse(source), options.$merge($hash2(["parse"], {"parse": true}))); - }, $JSON_parse$2.$$arity = -2); - Opal.defs(self, '$parse!', $JSON_parse$excl$3 = function(source, options) { + }, -2); + $defs(self, '$parse!', function $JSON_parse$excl$2(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; return self.$parse(source, options); - }, $JSON_parse$excl$3.$$arity = -2); - Opal.defs(self, '$load', $JSON_load$4 = function $$load(source, options) { + }, -2); + $defs(self, '$load', function $$load(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; return self.$from_object($parse(source), options); - }, $JSON_load$4.$$arity = -2); - Opal.defs(self, '$from_object', $JSON_from_object$5 = function $$from_object(js_object, options) { - var self = this, $ret_or_1 = nil, $writer = nil, $ret_or_2 = nil; + }, -2); + $defs(self, '$from_object', function $$from_object(js_object, options) { + var $ret_or_1 = nil, $writer = nil; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; if ($truthy(($ret_or_1 = options['$[]']("object_class")))) { $ret_or_1 } else { - $writer = ["object_class", $$($nesting, 'Hash')]; - $send(options, '[]=', Opal.to_a($writer)); + $writer = ["object_class", $$('Hash')]; + $send(options, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - if ($truthy(($ret_or_2 = options['$[]']("array_class")))) { - $ret_or_2 + if ($truthy(($ret_or_1 = options['$[]']("array_class")))) { + $ret_or_1 } else { - $writer = ["array_class", $$($nesting, 'Array')]; - $send(options, '[]=', Opal.to_a($writer)); + $writer = ["array_class", $$('Array')]; + $send(options, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return to_opal(js_object, options.$$smap);; - }, $JSON_from_object$5.$$arity = -2); - Opal.defs(self, '$generate', $JSON_generate$6 = function $$generate(obj, options) { - var self = this; - + }, -2); + $defs(self, '$generate', function $$generate(obj, options) { - if (options == null) { - options = $hash2([], {}); - }; + + if (options == null) options = $hash2([], {});; return obj.$to_json(options); - }, $JSON_generate$6.$$arity = -2); - return (Opal.defs(self, '$dump', $JSON_dump$7 = function $$dump(obj, io, limit) { + }, -2); + return $defs(self, '$dump', function $$dump(obj, io, limit) { var self = this, string = nil; - if (io == null) { - io = nil; - }; + if (io == null) io = nil;; - if (limit == null) { - limit = nil; - }; + if (limit == null) limit = nil;; string = self.$generate(obj); if ($truthy(io)) { if ($truthy(io['$responds_to?']("to_io"))) { - io = io.$to_io()}; + io = io.$to_io() + }; io.$write(string); return io; } else { return string }; - }, $JSON_dump$7.$$arity = -2), nil) && 'dump'; + }, -2); })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Object'); - var $nesting = [self].concat($parent_nesting), $Object_to_json$8; - - return (Opal.def(self, '$to_json', $Object_to_json$8 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return self.$to_s().$to_json() - }, $Object_to_json$8.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base) { var self = $module($base, 'Enumerable'); - var $nesting = [self].concat($parent_nesting), $Enumerable_to_json$9; - - return (Opal.def(self, '$to_json', $Enumerable_to_json$9 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return self.$to_a().$to_json() - }, $Enumerable_to_json$9.$$arity = 0), nil) && 'to_json' - })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0]); + (function($base, $super) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_to_json$10; - - return (Opal.def(self, '$to_json', $Array_to_json$10 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; @@ -237,25 +201,23 @@ Opal.modules["json"] = function(Opal) { return '[' + result.join(',') + ']'; - }, $Array_to_json$10.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Boolean'); - var $nesting = [self].concat($parent_nesting), $Boolean_to_json$11; - - return (Opal.def(self, '$to_json', $Boolean_to_json$11 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return (self == true) ? 'true' : 'false'; - }, $Boolean_to_json$11.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Hash'); - var $nesting = [self].concat($parent_nesting), $Hash_to_json$12; - - return (Opal.def(self, '$to_json', $Hash_to_json$12 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; @@ -276,68 +238,62 @@ Opal.modules["json"] = function(Opal) { return '{' + result.join(',') + '}'; - }, $Hash_to_json$12.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'NilClass'); - var $nesting = [self].concat($parent_nesting), $NilClass_to_json$13; - - return (Opal.def(self, '$to_json', $NilClass_to_json$13 = function $$to_json() { - var self = this; - + + return $def(self, '$to_json', function $$to_json() { + return "null" - }, $NilClass_to_json$13.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Numeric'); - var $nesting = [self].concat($parent_nesting), $Numeric_to_json$14; - - return (Opal.def(self, '$to_json', $Numeric_to_json$14 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return self.toString(); - }, $Numeric_to_json$14.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_to_json$15; - - return (Opal.def(self, '$to_json', $String_to_json$15 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return JSON.stringify(self); - }, $String_to_json$15.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Time'); - var $nesting = [self].concat($parent_nesting), $Time_to_json$16; - - return (Opal.def(self, '$to_json', $Time_to_json$16 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return self.$strftime("%FT%T%z").$to_json() - }, $Time_to_json$16.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + return (function($base, $super) { var self = $klass($base, $super, 'Date'); - var $nesting = [self].concat($parent_nesting), $Date_to_json$17, $Date_as_json$18; - - Opal.def(self, '$to_json', $Date_to_json$17 = function $$to_json() { + + $def(self, '$to_json', function $$to_json() { var self = this; return self.$to_s().$to_json() - }, $Date_to_json$17.$$arity = 0); - return (Opal.def(self, '$as_json', $Date_as_json$18 = function $$as_json() { + }, 0); + return $def(self, '$as_json', function $$as_json() { var self = this; return self.$to_s() - }, $Date_as_json$18.$$arity = 0), nil) && 'as_json'; - })($nesting[0], null, $nesting); + }, 0); + })($nesting[0], null); }; diff --git a/opal/master/json.min.js b/opal/master/json.min.js index bab7979a..feac9dd9 100644 --- a/opal/master/json.min.js +++ b/opal/master/json.min.js @@ -1 +1 @@ -Opal.modules.json=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $Object_to_json$8,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$raise","$new","$push","$[]=","$-","$[]","$create_id","$json_create","$const_get","$attr_accessor","$create_id=","$===","$parse","$generate","$from_object","$merge","$to_json","$responds_to?","$to_io","$write","$to_s","$to_a","$strftime"]),function($base,$JSON_dump$7){var self=$module($base,"JSON"),$nesting=[self].concat($JSON_dump$7),$writer=nil;!function($base,$super,$parent_nesting){[$klass($base,$super,"JSONError")].concat($parent_nesting)}($nesting[0],$$($nesting,"StandardError"),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,"ParserError")].concat($parent_nesting)}($nesting[0],$$($nesting,"JSONError"),$nesting);var $hasOwn=Opal.hasOwnProperty;function $parse(source){try{return JSON.parse(source)}catch(e){self.$raise($$$($$($nesting,"JSON"),"ParserError"),e.message)}}function to_opal(value,options){var klass,arr,hash,i,ii,k;switch(typeof value){case"string":case"number":return value;case"boolean":return!!value;case"undefined":return nil;case"object":if(!value)return nil;if(value.$$is_array){for(arr=options.array_class.$new(),i=0,ii=value.length;i 0) { - err = $post_args[0]; - $post_args.splice(0, 1); - } - if (err == null) { - err = nil; - }; + if ($post_args.length > 0) err = $post_args.shift(); + if (err == null) err = nil;; rest = $post_args;; - return $send($$($nesting, 'Exception2MessageMapper'), 'Raise', [self.$class(), err].concat(Opal.to_a(rest))); - }, $Raise$4.$$arity = -1); + return $send($$('Exception2MessageMapper'), 'Raise', [self.$class(), err].concat($to_a(rest))); + }, -1); $alias(self, "Fail", "Raise"); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + Opal.udef(self, '$' + "included");; return nil; })(Opal.get_singleton_class(self), $nesting); - return (Opal.defs(self, '$included', $included$5 = function $$included(mod) { - var self = this; - - return mod.$extend($$($nesting, 'Exception2MessageMapper')) - }, $included$5.$$arity = 1), nil) && 'included';}, $$3.$$s = self, $$3.$$arity = 0, $$3)) - }, $Exception2MessageMapper_bind$2.$$arity = 1); + return $defs(self, '$included', function $$included(mod) { + + return mod.$extend($$('Exception2MessageMapper')) + }, 1);}, {$$arity: 0, $$s: self}) + }, 1); - Opal.def(self, '$Raise', $Exception2MessageMapper_Raise$6 = function $$Raise($a, $b) { + $def(self, '$Raise', function $$Raise($a, $b) { var $post_args, err, rest, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - err = $post_args[0]; - $post_args.splice(0, 1); - } - if (err == null) { - err = nil; - }; + if ($post_args.length > 0) err = $post_args.shift(); + if (err == null) err = nil;; rest = $post_args;; - return $send($$($nesting, 'E2MM'), 'Raise', [self, err].concat(Opal.to_a(rest))); - }, $Exception2MessageMapper_Raise$6.$$arity = -1); + return $send($$('E2MM'), 'Raise', [self, err].concat($to_a(rest))); + }, -1); $alias(self, "Fail", "Raise"); $alias(self, "fail", "Raise"); - Opal.def(self, '$def_e2message', $Exception2MessageMapper_def_e2message$7 = function $$def_e2message(c, m) { + $def(self, '$def_e2message', function $$def_e2message(c, m) { var self = this; - return $$($nesting, 'E2MM').$def_e2message(self, c, m) - }, $Exception2MessageMapper_def_e2message$7.$$arity = 2); + return $$('E2MM').$def_e2message(self, c, m) + }, 2); - Opal.def(self, '$def_exception', $Exception2MessageMapper_def_exception$8 = function $$def_exception(n, m, s) { + $def(self, '$def_exception', function $$def_exception(n, m, s) { var self = this; - if (s == null) { - s = $$($nesting, 'StandardError'); - }; - return $$($nesting, 'E2MM').$def_exception(self, n, m, s); - }, $Exception2MessageMapper_def_exception$8.$$arity = -3); + if (s == null) s = $$('StandardError');; + return $$('E2MM').$def_exception(self, n, m, s); + }, -3); self.MessageMap = $hash2([], {}); - Opal.defs($$($nesting, 'E2MM'), '$def_e2message', $Exception2MessageMapper_def_e2message$9 = function $$def_e2message(k, c, m) { - var $$10, self = this; + $defs($$('E2MM'), '$def_e2message', function $$def_e2message(k, c, m) { + var self = this; - $send($$($nesting, 'E2MM'), 'instance_eval', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $writer = nil; + $send($$('E2MM'), 'instance_eval', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; if (self.MessageMap == null) self.MessageMap = nil; $writer = [[k, c], m]; - $send(self.MessageMap, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$10.$$s = self, $$10.$$arity = 0, $$10)); + $send(self.MessageMap, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 0, $$s: self}); return c; - }, $Exception2MessageMapper_def_e2message$9.$$arity = 3); - Opal.defs($$($nesting, 'E2MM'), '$def_exception', $Exception2MessageMapper_def_exception$11 = function $$def_exception(k, n, m, s) { - var $$12, $$13, self = this, e = nil; + }, 3); + $defs($$('E2MM'), '$def_exception', function $$def_exception(k, n, m, s) { + var self = this, e = nil; - if (s == null) { - s = $$($nesting, 'StandardError'); - }; - e = $$($nesting, 'Class').$new(s); - $send($$($nesting, 'E2MM'), 'instance_eval', [], ($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s, $writer = nil; + if (s == null) s = $$('StandardError');; + e = $$('Class').$new(s); + $send($$('E2MM'), 'instance_eval', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; if (self.MessageMap == null) self.MessageMap = nil; $writer = [[k, e], m]; - $send(self.MessageMap, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$12.$$s = self, $$12.$$arity = 0, $$12)); + $send(self.MessageMap, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 0, $$s: self}); if ($truthy(k['$const_defined?'](n, false))) { - $send(k, 'module_eval', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + $send(k, 'module_eval', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$remove_const(n)}, $$13.$$s = self, $$13.$$arity = 0, $$13))}; + return self.$remove_const(n)}, {$$arity: 0, $$s: self}) + }; return k.$const_set(n, e); - }, $Exception2MessageMapper_def_exception$11.$$arity = -4); - Opal.defs($$($nesting, 'E2MM'), '$Raise', $Exception2MessageMapper_Raise$14 = function $$Raise($a, $b, $c) { + }, -4); + $defs($$('E2MM'), '$Raise', function $$Raise($a, $b, $c) { var $post_args, klass, err, rest, self = this, form = nil, b = nil; if ($gvars["@"] == null) $gvars["@"] = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - klass = $post_args[0]; - $post_args.splice(0, 1); - } - if (klass == null) { - klass = $$($nesting, 'E2MM'); - }; + if ($post_args.length > 0) klass = $post_args.shift(); + if (klass == null) klass = $$('E2MM');; - if ($post_args.length > 0) { - err = $post_args[0]; - $post_args.splice(0, 1); - } - if (err == null) { - err = nil; - }; + if ($post_args.length > 0) err = $post_args.shift(); + if (err == null) err = nil;; rest = $post_args;; if ($truthy((form = self.$e2mm_message(klass, err)))) { - b = (function() {if ($truthy($gvars["@"]['$nil?']())) { - return self.$caller(1) - } else { - return $gvars["@"] - }; return nil; })(); - if ($truthy(b['$[]'](0)['$=~'](Opal.regexp(["^", $$($nesting, 'Regexp').$quote("./e2mmap.rb"), ":"])))) { - b.$shift()}; - return self.$raise(err, $send(self, 'sprintf', [form].concat(Opal.to_a(rest))), b); + b = ($truthy($gvars["@"]['$nil?']()) ? (self.$caller(1)) : ($gvars["@"])); + if ($truthy(b['$[]'](0)['$=~']($regexp(["^", $$('Regexp').$quote("./e2mmap.rb"), ":"])))) { + b.$shift() + }; + return self.$raise(err, $send(self, 'sprintf', [form].concat($to_a(rest))), b); } else { - return $$($nesting, 'E2MM').$Fail($$($nesting, 'E2MM'), $$($nesting, 'ErrNotRegisteredException'), err.$inspect()) + return $$('E2MM').$Fail($$('E2MM'), $$('ErrNotRegisteredException'), err.$inspect()) }; - }, $Exception2MessageMapper_Raise$14.$$arity = -1); + }, -1); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return $alias(self, "Fail", "Raise") - })(Opal.get_singleton_class($$($nesting, 'E2MM')), $nesting); - Opal.defs($$($nesting, 'E2MM'), '$e2mm_message', $Exception2MessageMapper_e2mm_message$15 = function $$e2mm_message(klass, exp) {try { + })(Opal.get_singleton_class($$('E2MM')), $nesting); + $defs($$('E2MM'), '$e2mm_message', function $$e2mm_message(klass, exp) {try { - var $$16, self = this; + var self = this; - $send(klass.$ancestors(), 'each', [], ($$16 = function(c){var self = $$16.$$s == null ? this : $$16.$$s, mes = nil; + $send(klass.$ancestors(), 'each', [], function $$5(c){var self = $$5.$$s == null ? this : $$5.$$s, mes = nil; if (self.MessageMap == null) self.MessageMap = nil; - if (c == null) { - c = nil; - }; + if (c == null) c = nil;; if ($truthy((mes = self.MessageMap['$[]']([c, exp])))) { Opal.ret(mes) } else { return nil - };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + };}, {$$arity: 1, $$s: self}); return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Exception2MessageMapper_e2mm_message$15.$$arity = 2); + }, 2); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return $alias(self, "message", "e2mm_message") })(Opal.get_singleton_class(self), $nesting); - return $$($nesting, 'E2MM').$def_exception($$($nesting, 'E2MM'), "ErrNotRegisteredException", "not registered exception(%s)"); + return $$('E2MM').$def_exception($$('E2MM'), "ErrNotRegisteredException", "not registered exception(%s)"); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; - - Opal.add_stubs(['$is_a?', '$raise', '$class', '$row_count', '$new', '$symmetric?', '$to_a', '$tridiagonalize', '$diagonalize', '$reduce_to_hessenberg', '$hessenberg_to_real_schur', '$send', '$transpose', '$build_eigenvectors', '$inverse', '$dup', '$each_with_index', '$==', '$Complex', '$[]', '$[]=', '$-', '$map', '$diagonal', '$eigenvalues', '$v', '$d', '$v_inv', '$alias_method', '$private', '$>', '$+', '$-@', '$abs', '$/', '$*', '$times', '$downto', '$sqrt', '$upto', '$!=', '$max', '$<', '$<=', '$hypot', '$>=', '$min', '$cdiv']); +Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def, $alias = Opal.alias, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt, $rb_plus = Opal.rb_plus, $rb_divide = Opal.rb_divide, $rb_times = Opal.rb_times, $neqeq = Opal.neqeq, $rb_lt = Opal.rb_lt, $rb_le = Opal.rb_le, $rb_ge = Opal.rb_ge, $to_ary = Opal.to_ary; + + Opal.add_stubs('is_a?,raise,class,row_count,new,symmetric?,to_a,tridiagonalize,diagonalize,reduce_to_hessenberg,hessenberg_to_real_schur,send,transpose,build_eigenvectors,inverse,dup,each_with_index,==,Complex,[],[]=,-,map,diagonal,eigenvalues,v,d,v_inv,alias_method,private,>,+,-@,abs,/,*,times,downto,sqrt,upto,!=,max,<,<=,hypot,>=,min,cdiv'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Matrix'); @@ -258,22 +190,21 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'EigenvalueDecomposition'); - var $nesting = [self].concat($parent_nesting), $EigenvalueDecomposition_initialize$1, $EigenvalueDecomposition_eigenvector_matrix$3, $EigenvalueDecomposition_eigenvector_matrix_inv$4, $EigenvalueDecomposition_eigenvalues$5, $EigenvalueDecomposition_eigenvectors$7, $EigenvalueDecomposition_eigenvalue_matrix$9, $EigenvalueDecomposition_to_ary$10, $EigenvalueDecomposition_build_eigenvectors$11, $EigenvalueDecomposition_cdiv$16, $EigenvalueDecomposition_tridiagonalize$17, $EigenvalueDecomposition_diagonalize$37, $EigenvalueDecomposition_reduce_to_hessenberg$46, $EigenvalueDecomposition_hessenberg_to_real_schur$63; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.size = self.$$prototype.symmetric = self.$$prototype.d = self.$$prototype.e = self.$$prototype.v = self.$$prototype.h = nil; + $proto.size = $proto.symmetric = $proto.d = $proto.e = $proto.v = $proto.h = nil; - Opal.def(self, '$initialize', $EigenvalueDecomposition_initialize$1 = function $$initialize(a) { - var $$2, self = this; + $def(self, '$initialize', function $$initialize(a) { + var self = this; - if ($truthy(a['$is_a?']($$($nesting, 'Matrix')))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "Expected Matrix but got " + (a.$class())) + if (!$truthy(a['$is_a?']($$('Matrix')))) { + self.$raise($$('TypeError'), "Expected Matrix but got " + (a.$class())) }; self.size = a.$row_count(); - self.d = $$($nesting, 'Array').$new(self.size, 0); - self.e = $$($nesting, 'Array').$new(self.size, 0); + self.d = $$('Array').$new(self.size, 0); + self.e = $$('Array').$new(self.size, 0); if ($truthy((self.symmetric = a['$symmetric?']()))) { self.v = a.$to_a(); @@ -281,142 +212,124 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { return self.$diagonalize(); } else { - self.v = $send($$($nesting, 'Array'), 'new', [self.size], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + self.v = $send($$('Array'), 'new', [self.size], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; if (self.size == null) self.size = nil; - return $$($nesting, 'Array').$new(self.size, 0)}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + return $$('Array').$new(self.size, 0)}, {$$arity: 0, $$s: self}); self.h = a.$to_a(); - self.ort = $$($nesting, 'Array').$new(self.size, 0); + self.ort = $$('Array').$new(self.size, 0); self.$reduce_to_hessenberg(); return self.$hessenberg_to_real_schur(); }; - }, $EigenvalueDecomposition_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$eigenvector_matrix', $EigenvalueDecomposition_eigenvector_matrix$3 = function $$eigenvector_matrix() { + $def(self, '$eigenvector_matrix', function $$eigenvector_matrix() { var self = this; - return $$($nesting, 'Matrix').$send("new", self.$build_eigenvectors().$transpose()) - }, $EigenvalueDecomposition_eigenvector_matrix$3.$$arity = 0); + return $$('Matrix').$send("new", self.$build_eigenvectors().$transpose()) + }, 0); $alias(self, "v", "eigenvector_matrix"); - Opal.def(self, '$eigenvector_matrix_inv', $EigenvalueDecomposition_eigenvector_matrix_inv$4 = function $$eigenvector_matrix_inv() { + $def(self, '$eigenvector_matrix_inv', function $$eigenvector_matrix_inv() { var self = this, r = nil; - r = $$($nesting, 'Matrix').$send("new", self.$build_eigenvectors()); - if ($truthy(self.symmetric)) { - } else { + r = $$('Matrix').$send("new", self.$build_eigenvectors()); + if (!$truthy(self.symmetric)) { r = r.$transpose().$inverse() }; return r; - }, $EigenvalueDecomposition_eigenvector_matrix_inv$4.$$arity = 0); + }, 0); $alias(self, "v_inv", "eigenvector_matrix_inv"); - Opal.def(self, '$eigenvalues', $EigenvalueDecomposition_eigenvalues$5 = function $$eigenvalues() { - var $$6, self = this, values = nil; + $def(self, '$eigenvalues', function $$eigenvalues() { + var self = this, values = nil; values = self.d.$dup(); - $send(self.e, 'each_with_index', [], ($$6 = function(imag, i){var self = $$6.$$s == null ? this : $$6.$$s, $writer = nil; + $send(self.e, 'each_with_index', [], function $$2(imag, i){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; - if (imag == null) { - imag = nil; - }; + if (imag == null) imag = nil;; - if (i == null) { - i = nil; - }; - if (imag['$=='](0)) { + if (i == null) i = nil;; + if ($eqeq(imag, 0)) { return nil } else { $writer = [i, self.$Complex(values['$[]'](i), imag)]; - $send(values, '[]=', Opal.to_a($writer)); + $send(values, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - };}, $$6.$$s = self, $$6.$$arity = 2, $$6)); + };}, {$$arity: 2, $$s: self}); return values; - }, $EigenvalueDecomposition_eigenvalues$5.$$arity = 0); + }, 0); - Opal.def(self, '$eigenvectors', $EigenvalueDecomposition_eigenvectors$7 = function $$eigenvectors() { - var $$8, self = this; - - return $send(self.$build_eigenvectors(), 'map', [], ($$8 = function(ev){var self = $$8.$$s == null ? this : $$8.$$s; + $def(self, '$eigenvectors', function $$eigenvectors() { + var self = this; + return $send(self.$build_eigenvectors(), 'map', [], function $$3(ev){ - if (ev == null) { - ev = nil; - }; - return $$($nesting, 'Vector').$send("new", ev);}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - }, $EigenvalueDecomposition_eigenvectors$7.$$arity = 0); + if (ev == null) ev = nil;; + return $$('Vector').$send("new", ev);}, 1) + }, 0); - Opal.def(self, '$eigenvalue_matrix', $EigenvalueDecomposition_eigenvalue_matrix$9 = function $$eigenvalue_matrix() { + $def(self, '$eigenvalue_matrix', function $$eigenvalue_matrix() { var self = this; - return $send($$($nesting, 'Matrix'), 'diagonal', Opal.to_a(self.$eigenvalues())) - }, $EigenvalueDecomposition_eigenvalue_matrix$9.$$arity = 0); + return $send($$('Matrix'), 'diagonal', $to_a(self.$eigenvalues())) + }, 0); $alias(self, "d", "eigenvalue_matrix"); - Opal.def(self, '$to_ary', $EigenvalueDecomposition_to_ary$10 = function $$to_ary() { + $def(self, '$to_ary', function $$to_ary() { var self = this; return [self.$v(), self.$d(), self.$v_inv()] - }, $EigenvalueDecomposition_to_ary$10.$$arity = 0); + }, 0); self.$alias_method("to_a", "to_ary"); self.$private(); - Opal.def(self, '$build_eigenvectors', $EigenvalueDecomposition_build_eigenvectors$11 = function $$build_eigenvectors() { - var $$12, self = this; + $def(self, '$build_eigenvectors', function $$build_eigenvectors() { + var self = this; - return $send(self.e.$each_with_index(), 'map', [], ($$12 = function(imag, i){var self = $$12.$$s == null ? this : $$12.$$s, $$13, $$14, $$15; + return $send(self.e.$each_with_index(), 'map', [], function $$4(imag, i){var self = $$4.$$s == null ? this : $$4.$$s; if (self.size == null) self.size = nil; - if (imag == null) { - imag = nil; - }; + if (imag == null) imag = nil;; - if (i == null) { - i = nil; - }; - if (imag['$=='](0)) { - return $send($$($nesting, 'Array'), 'new', [self.size], ($$13 = function(j){var self = $$13.$$s == null ? this : $$13.$$s; + if (i == null) i = nil;; + if ($eqeq(imag, 0)) { + return $send($$('Array'), 'new', [self.size], function $$5(j){var self = $$5.$$s == null ? this : $$5.$$s; if (self.v == null) self.v = nil; - if (j == null) { - j = nil; - }; - return self.v['$[]'](j)['$[]'](i);}, $$13.$$s = self, $$13.$$arity = 1, $$13)) + if (j == null) j = nil;; + return self.v['$[]'](j)['$[]'](i);}, {$$arity: 1, $$s: self}) } else if ($truthy($rb_gt(imag, 0))) { - return $send($$($nesting, 'Array'), 'new', [self.size], ($$14 = function(j){var self = $$14.$$s == null ? this : $$14.$$s; + return $send($$('Array'), 'new', [self.size], function $$6(j){var self = $$6.$$s == null ? this : $$6.$$s; if (self.v == null) self.v = nil; - if (j == null) { - j = nil; - }; - return self.$Complex(self.v['$[]'](j)['$[]'](i), self.v['$[]'](j)['$[]']($rb_plus(i, 1)));}, $$14.$$s = self, $$14.$$arity = 1, $$14)) + if (j == null) j = nil;; + return self.$Complex(self.v['$[]'](j)['$[]'](i), self.v['$[]'](j)['$[]']($rb_plus(i, 1)));}, {$$arity: 1, $$s: self}) } else { - return $send($$($nesting, 'Array'), 'new', [self.size], ($$15 = function(j){var self = $$15.$$s == null ? this : $$15.$$s; + return $send($$('Array'), 'new', [self.size], function $$7(j){var self = $$7.$$s == null ? this : $$7.$$s; if (self.v == null) self.v = nil; - if (j == null) { - j = nil; - }; - return self.$Complex(self.v['$[]'](j)['$[]']($rb_minus(i, 1)), self.v['$[]'](j)['$[]'](i)['$-@']());}, $$15.$$s = self, $$15.$$arity = 1, $$15)) - };}, $$12.$$s = self, $$12.$$arity = 2, $$12)) - }, $EigenvalueDecomposition_build_eigenvectors$11.$$arity = 0); + if (j == null) j = nil;; + return self.$Complex(self.v['$[]'](j)['$[]']($rb_minus(i, 1)), self.v['$[]'](j)['$[]'](i)['$-@']());}, {$$arity: 1, $$s: self}) + };}, {$$arity: 2, $$s: self}) + }, 0); - Opal.def(self, '$cdiv', $EigenvalueDecomposition_cdiv$16 = function $$cdiv(xr, xi, yr, yi) { - var self = this, r = nil, d = nil; + $def(self, '$cdiv', function $$cdiv(xr, xi, yr, yi) { + var r = nil, d = nil; if ($truthy($rb_gt(yr.$abs(), yi.$abs()))) { @@ -429,355 +342,316 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { d = $rb_plus(yi, $rb_times(r, yr)); return [$rb_divide($rb_plus($rb_times(r, xr), xi), d), $rb_divide($rb_minus($rb_times(r, xi), xr), d)]; } - }, $EigenvalueDecomposition_cdiv$16.$$arity = 4); + }, 4); - Opal.def(self, '$tridiagonalize', $EigenvalueDecomposition_tridiagonalize$17 = function $$tridiagonalize() { - var $$18, $$19, $$30, $$36, self = this, $writer = nil; + $def(self, '$tridiagonalize', function $$tridiagonalize() { + var self = this, $writer = nil; - $send(self.size, 'times', [], ($$18 = function(j){var self = $$18.$$s == null ? this : $$18.$$s, $writer = nil; + $send(self.size, 'times', [], function $$8(j){var self = $$8.$$s == null ? this : $$8.$$s, $writer = nil; if (self.v == null) self.v = nil; if (self.size == null) self.size = nil; if (self.d == null) self.d = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, self.v['$[]']($rb_minus(self.size, 1))['$[]'](j)]; - $send(self.d, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$18.$$s = self, $$18.$$arity = 1, $$18)); - $send($rb_minus(self.size, 1), 'downto', [$rb_plus(0, 1)], ($$19 = function(i){var self = $$19.$$s == null ? this : $$19.$$s, $$20, $$21, $$22, $$23, $$24, $$26, $$27, $$28, scale = nil, h = nil, $writer = nil, f = nil, g = nil, hh = nil; + $send(self.d, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + $send($rb_minus(self.size, 1), 'downto', [$rb_plus(0, 1)], function $$9(i){var self = $$9.$$s == null ? this : $$9.$$s, scale = nil, h = nil, $writer = nil, f = nil, g = nil, hh = nil; if (self.d == null) self.d = nil; if (self.e == null) self.e = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; scale = 0.0; h = 0.0; - $send(i, 'times', [], ($$20 = function(k){var self = $$20.$$s == null ? this : $$20.$$s; + $send(i, 'times', [], function $$10(k){var self = $$10.$$s == null ? this : $$10.$$s; if (self.d == null) self.d = nil; - if (k == null) { - k = nil; - }; - return (scale = $rb_plus(scale, self.d['$[]'](k).$abs()));}, $$20.$$s = self, $$20.$$arity = 1, $$20)); - if ($truthy(scale['$=='](0.0))) { + if (k == null) k = nil;; + return (scale = $rb_plus(scale, self.d['$[]'](k).$abs()));}, {$$arity: 1, $$s: self}); + if ($eqeq(scale, 0.0)) { $writer = [i, self.d['$[]']($rb_minus(i, 1))]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $send(i, 'times', [], ($$21 = function(j){var self = $$21.$$s == null ? this : $$21.$$s; + $send(i, 'times', [], function $$11(j){var self = $$11.$$s == null ? this : $$11.$$s; if (self.v == null) self.v = nil; if (self.d == null) self.d = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, self.v['$[]']($rb_minus(i, 1))['$[]'](j)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [j, 0.0]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.v['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [i, 0.0]; - $send(self.v['$[]'](j), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + $send(self.v['$[]'](j), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); } else { - $send(i, 'times', [], ($$22 = function(k){var self = $$22.$$s == null ? this : $$22.$$s; + $send(i, 'times', [], function $$12(k){var self = $$12.$$s == null ? this : $$12.$$s; if (self.d == null) self.d = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [k, $rb_divide(self.d['$[]'](k), scale)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return (h = $rb_plus(h, $rb_times(self.d['$[]'](k), self.d['$[]'](k))));}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + return (h = $rb_plus(h, $rb_times(self.d['$[]'](k), self.d['$[]'](k))));}, {$$arity: 1, $$s: self}); f = self.d['$[]']($rb_minus(i, 1)); - g = $$($nesting, 'Math').$sqrt(h); + g = $$('Math').$sqrt(h); if ($truthy($rb_gt(f, 0))) { - g = g['$-@']()}; + g = g['$-@']() + }; $writer = [i, $rb_times(scale, g)]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; h = $rb_minus(h, $rb_times(f, g)); $writer = [$rb_minus(i, 1), $rb_minus(f, g)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $send(i, 'times', [], ($$23 = function(j){var self = $$23.$$s == null ? this : $$23.$$s; + $send(i, 'times', [], function $$13(j){var self = $$13.$$s == null ? this : $$13.$$s; if (self.e == null) self.e = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, 0.0]; - $send(self.e, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$23.$$s = self, $$23.$$arity = 1, $$23)); - $send(i, 'times', [], ($$24 = function(j){var self = $$24.$$s == null ? this : $$24.$$s, $$25; + $send(self.e, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + $send(i, 'times', [], function $$14(j){var self = $$14.$$s == null ? this : $$14.$$s; if (self.d == null) self.d = nil; if (self.v == null) self.v = nil; if (self.e == null) self.e = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; f = self.d['$[]'](j); $writer = [i, f]; - $send(self.v['$[]'](j), '[]=', Opal.to_a($writer)); + $send(self.v['$[]'](j), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; g = $rb_plus(self.e['$[]'](j), $rb_times(self.v['$[]'](j)['$[]'](j), f)); - $send($rb_plus(j, 1), 'upto', [$rb_minus(i, 1)], ($$25 = function(k){var self = $$25.$$s == null ? this : $$25.$$s; + $send($rb_plus(j, 1), 'upto', [$rb_minus(i, 1)], function $$15(k){var self = $$15.$$s == null ? this : $$15.$$s; if (self.v == null) self.v = nil; if (self.d == null) self.d = nil; if (self.e == null) self.e = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; g = $rb_plus(g, $rb_times(self.v['$[]'](k)['$[]'](j), self.d['$[]'](k))); $writer = [k, $rb_plus(self.e['$[]'](k), $rb_times(self.v['$[]'](k)['$[]'](j), f))]; - $send(self.e, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$25.$$s = self, $$25.$$arity = 1, $$25)); + $send(self.e, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); $writer = [j, g]; - $send(self.e, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$24.$$s = self, $$24.$$arity = 1, $$24)); + $send(self.e, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); f = 0.0; - $send(i, 'times', [], ($$26 = function(j){var self = $$26.$$s == null ? this : $$26.$$s; + $send(i, 'times', [], function $$16(j){var self = $$16.$$s == null ? this : $$16.$$s; if (self.e == null) self.e = nil; if (self.d == null) self.d = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, $rb_divide(self.e['$[]'](j), h)]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return (f = $rb_plus(f, $rb_times(self.e['$[]'](j), self.d['$[]'](j))));}, $$26.$$s = self, $$26.$$arity = 1, $$26)); + return (f = $rb_plus(f, $rb_times(self.e['$[]'](j), self.d['$[]'](j))));}, {$$arity: 1, $$s: self}); hh = $rb_divide(f, $rb_plus(h, h)); - $send(i, 'times', [], ($$27 = function(j){var self = $$27.$$s == null ? this : $$27.$$s; + $send(i, 'times', [], function $$17(j){var self = $$17.$$s == null ? this : $$17.$$s; if (self.e == null) self.e = nil; if (self.d == null) self.d = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, $rb_minus(self.e['$[]'](j), $rb_times(hh, self.d['$[]'](j)))]; - $send(self.e, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$27.$$s = self, $$27.$$arity = 1, $$27)); - $send(i, 'times', [], ($$28 = function(j){var self = $$28.$$s == null ? this : $$28.$$s, $$29; + $send(self.e, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + $send(i, 'times', [], function $$18(j){var self = $$18.$$s == null ? this : $$18.$$s; if (self.d == null) self.d = nil; if (self.e == null) self.e = nil; if (self.v == null) self.v = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; f = self.d['$[]'](j); g = self.e['$[]'](j); - $send(j, 'upto', [$rb_minus(i, 1)], ($$29 = function(k){var self = $$29.$$s == null ? this : $$29.$$s, $binary_op_recvr_tmp_3 = nil; + $send(j, 'upto', [$rb_minus(i, 1)], function $$19(k){var self = $$19.$$s == null ? this : $$19.$$s, $binary_op_recvr_tmp_3 = nil; if (self.v == null) self.v = nil; if (self.e == null) self.e = nil; if (self.d == null) self.d = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $binary_op_recvr_tmp_3 = self.v['$[]'](k); $writer = [j, $rb_minus($binary_op_recvr_tmp_3['$[]'](j), $rb_plus($rb_times(f, self.e['$[]'](k)), $rb_times(g, self.d['$[]'](k))))]; - $send($binary_op_recvr_tmp_3, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + $send($binary_op_recvr_tmp_3, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); $writer = [j, self.v['$[]']($rb_minus(i, 1))['$[]'](j)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [j, 0.0]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$28.$$s = self, $$28.$$arity = 1, $$28)); + $send(self.v['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); }; $writer = [i, h]; - $send(self.d, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$19.$$s = self, $$19.$$arity = 1, $$19)); - $send((0), 'upto', [$rb_minus($rb_minus(self.size, 1), 1)], ($$30 = function(i){var self = $$30.$$s == null ? this : $$30.$$s, $$31, $$32, $$35, $writer = nil, h = nil; + $send(self.d, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + $send((0), 'upto', [$rb_minus($rb_minus(self.size, 1), 1)], function $$20(i){var self = $$20.$$s == null ? this : $$20.$$s, $writer = nil, h = nil; if (self.v == null) self.v = nil; if (self.size == null) self.size = nil; if (self.d == null) self.d = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, self.v['$[]'](i)['$[]'](i)]; - $send(self.v['$[]']($rb_minus(self.size, 1)), '[]=', Opal.to_a($writer)); + $send(self.v['$[]']($rb_minus(self.size, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [i, 1.0]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.v['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; h = self.d['$[]']($rb_plus(i, 1)); - if ($truthy(h['$!='](0.0))) { + if ($neqeq(h, 0.0)) { - $send((0), 'upto', [i], ($$31 = function(k){var self = $$31.$$s == null ? this : $$31.$$s; + $send((0), 'upto', [i], function $$21(k){var self = $$21.$$s == null ? this : $$21.$$s; if (self.v == null) self.v = nil; if (self.d == null) self.d = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [k, $rb_divide(self.v['$[]'](k)['$[]']($rb_plus(i, 1)), h)]; - $send(self.d, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$31.$$s = self, $$31.$$arity = 1, $$31)); - $send((0), 'upto', [i], ($$32 = function(j){var self = $$32.$$s == null ? this : $$32.$$s, $$33, $$34, g = nil; + $send(self.d, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + $send((0), 'upto', [i], function $$22(j){var self = $$22.$$s == null ? this : $$22.$$s, g = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; g = 0.0; - $send((0), 'upto', [i], ($$33 = function(k){var self = $$33.$$s == null ? this : $$33.$$s; + $send((0), 'upto', [i], function $$23(k){var self = $$23.$$s == null ? this : $$23.$$s; if (self.v == null) self.v = nil; - if (k == null) { - k = nil; - }; - return (g = $rb_plus(g, $rb_times(self.v['$[]'](k)['$[]']($rb_plus(i, 1)), self.v['$[]'](k)['$[]'](j))));}, $$33.$$s = self, $$33.$$arity = 1, $$33)); - return $send((0), 'upto', [i], ($$34 = function(k){var self = $$34.$$s == null ? this : $$34.$$s, $binary_op_recvr_tmp_4 = nil; + if (k == null) k = nil;; + return (g = $rb_plus(g, $rb_times(self.v['$[]'](k)['$[]']($rb_plus(i, 1)), self.v['$[]'](k)['$[]'](j))));}, {$$arity: 1, $$s: self}); + return $send((0), 'upto', [i], function $$24(k){var self = $$24.$$s == null ? this : $$24.$$s, $binary_op_recvr_tmp_4 = nil; if (self.v == null) self.v = nil; if (self.d == null) self.d = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $binary_op_recvr_tmp_4 = self.v['$[]'](k); $writer = [j, $rb_minus($binary_op_recvr_tmp_4['$[]'](j), $rb_times(g, self.d['$[]'](k)))]; - $send($binary_op_recvr_tmp_4, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$34.$$s = self, $$34.$$arity = 1, $$34));}, $$32.$$s = self, $$32.$$arity = 1, $$32));}; - return $send((0), 'upto', [i], ($$35 = function(k){var self = $$35.$$s == null ? this : $$35.$$s; + $send($binary_op_recvr_tmp_4, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + }; + return $send((0), 'upto', [i], function $$25(k){var self = $$25.$$s == null ? this : $$25.$$s; if (self.v == null) self.v = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [$rb_plus(i, 1), 0.0]; - $send(self.v['$[]'](k), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$35.$$s = self, $$35.$$arity = 1, $$35));}, $$30.$$s = self, $$30.$$arity = 1, $$30)); - $send(self.size, 'times', [], ($$36 = function(j){var self = $$36.$$s == null ? this : $$36.$$s, $writer = nil; + $send(self.v['$[]'](k), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + $send(self.size, 'times', [], function $$26(j){var self = $$26.$$s == null ? this : $$26.$$s, $writer = nil; if (self.v == null) self.v = nil; if (self.size == null) self.size = nil; if (self.d == null) self.d = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, self.v['$[]']($rb_minus(self.size, 1))['$[]'](j)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [j, 0.0]; - $send(self.v['$[]']($rb_minus(self.size, 1)), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$36.$$s = self, $$36.$$arity = 1, $$36)); + $send(self.v['$[]']($rb_minus(self.size, 1)), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); $writer = [$rb_minus(self.size, 1), 1.0]; - $send(self.v['$[]']($rb_minus(self.size, 1)), '[]=', Opal.to_a($writer)); + $send(self.v['$[]']($rb_minus(self.size, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [0, 0.0]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $EigenvalueDecomposition_tridiagonalize$17.$$arity = 0); + }, 0); - Opal.def(self, '$diagonalize', $EigenvalueDecomposition_diagonalize$37 = function $$diagonalize() { - var $$38, $$39, $$43, self = this, $writer = nil, f = nil, tst1 = nil, eps = nil; + $def(self, '$diagonalize', function $$diagonalize() { + var self = this, $writer = nil, f = nil, tst1 = nil, eps = nil; - $send((1), 'upto', [$rb_minus(self.size, 1)], ($$38 = function(i){var self = $$38.$$s == null ? this : $$38.$$s, $writer = nil; + $send((1), 'upto', [$rb_minus(self.size, 1)], function $$27(i){var self = $$27.$$s == null ? this : $$27.$$s, $writer = nil; if (self.e == null) self.e = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [$rb_minus(i, 1), self.e['$[]'](i)]; - $send(self.e, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$38.$$s = self, $$38.$$arity = 1, $$38)); + $send(self.e, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); $writer = [$rb_minus(self.size, 1), 0.0]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; f = 0.0; tst1 = 0.0; - eps = $$$($$($nesting, 'Float'), 'EPSILON'); - $send(self.size, 'times', [], ($$39 = function(l){var self = $$39.$$s == null ? this : $$39.$$s, $a, $$40, $$41, m = nil, iter = nil, g = nil, p = nil, r = nil, dl1 = nil, h = nil, c = nil, c2 = nil, c3 = nil, el1 = nil, s = nil, s2 = nil; + eps = $$$($$('Float'), 'EPSILON'); + $send(self.size, 'times', [], function $$28(l){var $a, self = $$28.$$s == null ? this : $$28.$$s, m = nil, iter = nil, g = nil, p = nil, r = nil, dl1 = nil, h = nil, c = nil, c2 = nil, c3 = nil, el1 = nil, s = nil, s2 = nil; if (self.d == null) self.d = nil; if (self.e == null) self.e = nil; if (self.size == null) self.size = nil; - if (l == null) { - l = nil; - }; + if (l == null) l = nil;; tst1 = [tst1, $rb_plus(self.d['$[]'](l).$abs(), self.e['$[]'](l).$abs())].$max(); m = l; while ($truthy($rb_lt(m, self.size))) { if ($truthy($rb_le(self.e['$[]'](m).$abs(), $rb_times(eps, tst1)))) { - break;}; + break; + }; m = $rb_plus(m, 1); }; if ($truthy($rb_gt(m, l))) { @@ -788,30 +662,29 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { iter = $rb_plus(iter, 1); g = self.d['$[]'](l); p = $rb_divide($rb_minus(self.d['$[]']($rb_plus(l, 1)), g), $rb_times(2.0, self.e['$[]'](l))); - r = $$($nesting, 'Math').$hypot(p, 1.0); + r = $$('Math').$hypot(p, 1.0); if ($truthy($rb_lt(p, 0))) { - r = r['$-@']()}; + r = r['$-@']() + }; $writer = [l, $rb_divide(self.e['$[]'](l), $rb_plus(p, r))]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [$rb_plus(l, 1), $rb_times(self.e['$[]'](l), $rb_plus(p, r))]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; dl1 = self.d['$[]']($rb_plus(l, 1)); h = $rb_minus(g, self.d['$[]'](l)); - $send($rb_plus(l, 2), 'upto', [$rb_minus(self.size, 1)], ($$40 = function(i){var self = $$40.$$s == null ? this : $$40.$$s; + $send($rb_plus(l, 2), 'upto', [$rb_minus(self.size, 1)], function $$29(i){var self = $$29.$$s == null ? this : $$29.$$s; if (self.d == null) self.d = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, $rb_minus(self.d['$[]'](i), h)]; - $send(self.d, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$40.$$s = self, $$40.$$arity = 1, $$40)); + $send(self.d, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); f = $rb_plus(f, h); p = self.d['$[]'](m); c = 1.0; @@ -820,383 +693,332 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { el1 = self.e['$[]']($rb_plus(l, 1)); s = 0.0; s2 = 0.0; - $send($rb_minus(m, 1), 'downto', [l], ($$41 = function(i){var self = $$41.$$s == null ? this : $$41.$$s, $$42; + $send($rb_minus(m, 1), 'downto', [l], function $$30(i){var self = $$30.$$s == null ? this : $$30.$$s; if (self.e == null) self.e = nil; if (self.d == null) self.d = nil; if (self.size == null) self.size = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; c3 = c2; c2 = c; s2 = s; g = $rb_times(c, self.e['$[]'](i)); h = $rb_times(c, p); - r = $$($nesting, 'Math').$hypot(p, self.e['$[]'](i)); + r = $$('Math').$hypot(p, self.e['$[]'](i)); $writer = [$rb_plus(i, 1), $rb_times(s, r)]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; s = $rb_divide(self.e['$[]'](i), r); c = $rb_divide(p, r); p = $rb_minus($rb_times(c, self.d['$[]'](i)), $rb_times(s, g)); $writer = [$rb_plus(i, 1), $rb_plus(h, $rb_times(s, $rb_plus($rb_times(c, g), $rb_times(s, self.d['$[]'](i)))))]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(self.size, 'times', [], ($$42 = function(k){var self = $$42.$$s == null ? this : $$42.$$s; + return $send(self.size, 'times', [], function $$31(k){var self = $$31.$$s == null ? this : $$31.$$s; if (self.v == null) self.v = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; h = self.v['$[]'](k)['$[]']($rb_plus(i, 1)); $writer = [$rb_plus(i, 1), $rb_plus($rb_times(s, self.v['$[]'](k)['$[]'](i)), $rb_times(c, h))]; - $send(self.v['$[]'](k), '[]=', Opal.to_a($writer)); + $send(self.v['$[]'](k), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [i, $rb_minus($rb_times(c, self.v['$[]'](k)['$[]'](i)), $rb_times(s, h))]; - $send(self.v['$[]'](k), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$42.$$s = self, $$42.$$arity = 1, $$42));}, $$41.$$s = self, $$41.$$arity = 1, $$41)); + $send(self.v['$[]'](k), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); p = $rb_divide($rb_times($rb_times($rb_times($rb_times(s['$-@'](), s2), c3), el1), self.e['$[]'](l)), dl1); $writer = [l, $rb_times(s, p)]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [l, $rb_times(c, p)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - } while ($truthy($rb_gt(self.e['$[]'](l).$abs(), $rb_times(eps, tst1))));;}; + } while ($truthy($rb_gt(self.e['$[]'](l).$abs(), $rb_times(eps, tst1))));; + }; $writer = [l, $rb_plus(self.d['$[]'](l), f)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [l, 0.0]; - $send(self.e, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$39.$$s = self, $$39.$$arity = 1, $$39)); - return $send((0), 'upto', [$rb_minus(self.size, 2)], ($$43 = function(i){var self = $$43.$$s == null ? this : $$43.$$s, $$44, $$45, k = nil, p = nil; + $send(self.e, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + return $send((0), 'upto', [$rb_minus(self.size, 2)], function $$32(i){var self = $$32.$$s == null ? this : $$32.$$s, k = nil, p = nil; if (self.d == null) self.d = nil; if (self.size == null) self.size = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; k = i; p = self.d['$[]'](i); - $send($rb_plus(i, 1), 'upto', [$rb_minus(self.size, 1)], ($$44 = function(j){var self = $$44.$$s == null ? this : $$44.$$s; + $send($rb_plus(i, 1), 'upto', [$rb_minus(self.size, 1)], function $$33(j){var self = $$33.$$s == null ? this : $$33.$$s; if (self.d == null) self.d = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; if ($truthy($rb_lt(self.d['$[]'](j), p))) { k = j; return (p = self.d['$[]'](j)); } else { return nil - };}, $$44.$$s = self, $$44.$$arity = 1, $$44)); - if ($truthy(k['$!='](i))) { + };}, {$$arity: 1, $$s: self}); + if ($neqeq(k, i)) { $writer = [k, self.d['$[]'](i)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [i, p]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(self.size, 'times', [], ($$45 = function(j){var self = $$45.$$s == null ? this : $$45.$$s; + return $send(self.size, 'times', [], function $$34(j){var self = $$34.$$s == null ? this : $$34.$$s; if (self.v == null) self.v = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; p = self.v['$[]'](j)['$[]'](i); $writer = [i, self.v['$[]'](j)['$[]'](k)]; - $send(self.v['$[]'](j), '[]=', Opal.to_a($writer)); + $send(self.v['$[]'](j), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [k, p]; - $send(self.v['$[]'](j), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$45.$$s = self, $$45.$$arity = 1, $$45)); + $send(self.v['$[]'](j), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); } else { return nil - };}, $$43.$$s = self, $$43.$$arity = 1, $$43)); - }, $EigenvalueDecomposition_diagonalize$37.$$arity = 0); + };}, {$$arity: 1, $$s: self}); + }, 0); - Opal.def(self, '$reduce_to_hessenberg', $EigenvalueDecomposition_reduce_to_hessenberg$46 = function $$reduce_to_hessenberg() { - var $$47, $$56, $$58, self = this, low = nil, high = nil; + $def(self, '$reduce_to_hessenberg', function $$reduce_to_hessenberg() { + var self = this, low = nil, high = nil; low = 0; high = $rb_minus(self.size, 1); - $send($rb_plus(low, 1), 'upto', [$rb_minus(high, 1)], ($$47 = function(m){var self = $$47.$$s == null ? this : $$47.$$s, $$48, $$49, $$50, $$53, scale = nil, h = nil, g = nil, $writer = nil; + $send($rb_plus(low, 1), 'upto', [$rb_minus(high, 1)], function $$35(m){var self = $$35.$$s == null ? this : $$35.$$s, scale = nil, h = nil, g = nil, $writer = nil; if (self.ort == null) self.ort = nil; if (self.size == null) self.size = nil; if (self.h == null) self.h = nil; - if (m == null) { - m = nil; - }; + if (m == null) m = nil;; scale = 0.0; - $send(m, 'upto', [high], ($$48 = function(i){var self = $$48.$$s == null ? this : $$48.$$s; + $send(m, 'upto', [high], function $$36(i){var self = $$36.$$s == null ? this : $$36.$$s; if (self.h == null) self.h = nil; - if (i == null) { - i = nil; - }; - return (scale = $rb_plus(scale, self.h['$[]'](i)['$[]']($rb_minus(m, 1)).$abs()));}, $$48.$$s = self, $$48.$$arity = 1, $$48)); - if ($truthy(scale['$!='](0.0))) { + if (i == null) i = nil;; + return (scale = $rb_plus(scale, self.h['$[]'](i)['$[]']($rb_minus(m, 1)).$abs()));}, {$$arity: 1, $$s: self}); + if ($neqeq(scale, 0.0)) { h = 0.0; - $send(high, 'downto', [m], ($$49 = function(i){var self = $$49.$$s == null ? this : $$49.$$s, $writer = nil; + $send(high, 'downto', [m], function $$37(i){var self = $$37.$$s == null ? this : $$37.$$s, $writer = nil; if (self.h == null) self.h = nil; if (self.ort == null) self.ort = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, $rb_divide(self.h['$[]'](i)['$[]']($rb_minus(m, 1)), scale)]; - $send(self.ort, '[]=', Opal.to_a($writer)); + $send(self.ort, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return (h = $rb_plus(h, $rb_times(self.ort['$[]'](i), self.ort['$[]'](i))));}, $$49.$$s = self, $$49.$$arity = 1, $$49)); - g = $$($nesting, 'Math').$sqrt(h); + return (h = $rb_plus(h, $rb_times(self.ort['$[]'](i), self.ort['$[]'](i))));}, {$$arity: 1, $$s: self}); + g = $$('Math').$sqrt(h); if ($truthy($rb_gt(self.ort['$[]'](m), 0))) { - g = g['$-@']()}; + g = g['$-@']() + }; h = $rb_minus(h, $rb_times(self.ort['$[]'](m), g)); $writer = [m, $rb_minus(self.ort['$[]'](m), g)]; - $send(self.ort, '[]=', Opal.to_a($writer)); + $send(self.ort, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $send(m, 'upto', [$rb_minus(self.size, 1)], ($$50 = function(j){var self = $$50.$$s == null ? this : $$50.$$s, $$51, $$52, f = nil; + $send(m, 'upto', [$rb_minus(self.size, 1)], function $$38(j){var self = $$38.$$s == null ? this : $$38.$$s, f = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; f = 0.0; - $send(high, 'downto', [m], ($$51 = function(i){var self = $$51.$$s == null ? this : $$51.$$s; + $send(high, 'downto', [m], function $$39(i){var self = $$39.$$s == null ? this : $$39.$$s; if (self.ort == null) self.ort = nil; if (self.h == null) self.h = nil; - if (i == null) { - i = nil; - }; - return (f = $rb_plus(f, $rb_times(self.ort['$[]'](i), self.h['$[]'](i)['$[]'](j))));}, $$51.$$s = self, $$51.$$arity = 1, $$51)); + if (i == null) i = nil;; + return (f = $rb_plus(f, $rb_times(self.ort['$[]'](i), self.h['$[]'](i)['$[]'](j))));}, {$$arity: 1, $$s: self}); f = $rb_divide(f, h); - return $send(m, 'upto', [high], ($$52 = function(i){var self = $$52.$$s == null ? this : $$52.$$s, $binary_op_recvr_tmp_5 = nil; + return $send(m, 'upto', [high], function $$40(i){var self = $$40.$$s == null ? this : $$40.$$s, $binary_op_recvr_tmp_5 = nil; if (self.h == null) self.h = nil; if (self.ort == null) self.ort = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $binary_op_recvr_tmp_5 = self.h['$[]'](i); $writer = [j, $rb_minus($binary_op_recvr_tmp_5['$[]'](j), $rb_times(f, self.ort['$[]'](i)))]; - $send($binary_op_recvr_tmp_5, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$52.$$s = self, $$52.$$arity = 1, $$52));}, $$50.$$s = self, $$50.$$arity = 1, $$50)); - $send((0), 'upto', [high], ($$53 = function(i){var self = $$53.$$s == null ? this : $$53.$$s, $$54, $$55, f = nil; + $send($binary_op_recvr_tmp_5, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + $send((0), 'upto', [high], function $$41(i){var self = $$41.$$s == null ? this : $$41.$$s, f = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; f = 0.0; - $send(high, 'downto', [m], ($$54 = function(j){var self = $$54.$$s == null ? this : $$54.$$s; + $send(high, 'downto', [m], function $$42(j){var self = $$42.$$s == null ? this : $$42.$$s; if (self.ort == null) self.ort = nil; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; - return (f = $rb_plus(f, $rb_times(self.ort['$[]'](j), self.h['$[]'](i)['$[]'](j))));}, $$54.$$s = self, $$54.$$arity = 1, $$54)); + if (j == null) j = nil;; + return (f = $rb_plus(f, $rb_times(self.ort['$[]'](j), self.h['$[]'](i)['$[]'](j))));}, {$$arity: 1, $$s: self}); f = $rb_divide(f, h); - return $send(m, 'upto', [high], ($$55 = function(j){var self = $$55.$$s == null ? this : $$55.$$s, $binary_op_recvr_tmp_6 = nil; + return $send(m, 'upto', [high], function $$43(j){var self = $$43.$$s == null ? this : $$43.$$s, $binary_op_recvr_tmp_6 = nil; if (self.h == null) self.h = nil; if (self.ort == null) self.ort = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $binary_op_recvr_tmp_6 = self.h['$[]'](i); $writer = [j, $rb_minus($binary_op_recvr_tmp_6['$[]'](j), $rb_times(f, self.ort['$[]'](j)))]; - $send($binary_op_recvr_tmp_6, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$55.$$s = self, $$55.$$arity = 1, $$55));}, $$53.$$s = self, $$53.$$arity = 1, $$53)); + $send($binary_op_recvr_tmp_6, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); $writer = [m, $rb_times(scale, self.ort['$[]'](m))]; - $send(self.ort, '[]=', Opal.to_a($writer)); + $send(self.ort, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [$rb_minus(m, 1), $rb_times(scale, g)]; - $send(self.h['$[]'](m), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](m), '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; } else { return nil - };}, $$47.$$s = self, $$47.$$arity = 1, $$47)); - $send(self.size, 'times', [], ($$56 = function(i){var self = $$56.$$s == null ? this : $$56.$$s, $$57; + };}, {$$arity: 1, $$s: self}); + $send(self.size, 'times', [], function $$44(i){var self = $$44.$$s == null ? this : $$44.$$s; if (self.size == null) self.size = nil; - if (i == null) { - i = nil; - }; - return $send(self.size, 'times', [], ($$57 = function(j){var self = $$57.$$s == null ? this : $$57.$$s, $writer = nil; + if (i == null) i = nil;; + return $send(self.size, 'times', [], function $$45(j){var self = $$45.$$s == null ? this : $$45.$$s, $writer = nil; if (self.v == null) self.v = nil; - if (j == null) { - j = nil; - }; - $writer = [j, (function() {if (i['$=='](j)) { - return 1.0 - } else { - return 0.0 - }; return nil; })()]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$57.$$s = self, $$57.$$arity = 1, $$57));}, $$56.$$s = self, $$56.$$arity = 1, $$56)); - return $send($rb_minus(high, 1), 'downto', [$rb_plus(low, 1)], ($$58 = function(m){var self = $$58.$$s == null ? this : $$58.$$s, $$59, $$60; + if (j == null) j = nil;; + $writer = [j, ($eqeq(i, j) ? (1.0) : (0.0))]; + $send(self.v['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + return $send($rb_minus(high, 1), 'downto', [$rb_plus(low, 1)], function $$46(m){var self = $$46.$$s == null ? this : $$46.$$s; if (self.h == null) self.h = nil; - if (m == null) { - m = nil; - }; - if ($truthy(self.h['$[]'](m)['$[]']($rb_minus(m, 1))['$!='](0.0))) { + if (m == null) m = nil;; + if ($neqeq(self.h['$[]'](m)['$[]']($rb_minus(m, 1)), 0.0)) { - $send($rb_plus(m, 1), 'upto', [high], ($$59 = function(i){var self = $$59.$$s == null ? this : $$59.$$s, $writer = nil; + $send($rb_plus(m, 1), 'upto', [high], function $$47(i){var self = $$47.$$s == null ? this : $$47.$$s, $writer = nil; if (self.h == null) self.h = nil; if (self.ort == null) self.ort = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, self.h['$[]'](i)['$[]']($rb_minus(m, 1))]; - $send(self.ort, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$59.$$s = self, $$59.$$arity = 1, $$59)); - return $send(m, 'upto', [high], ($$60 = function(j){var self = $$60.$$s == null ? this : $$60.$$s, $$61, $$62, g = nil; + $send(self.ort, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + return $send(m, 'upto', [high], function $$48(j){var self = $$48.$$s == null ? this : $$48.$$s, g = nil; if (self.ort == null) self.ort = nil; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; g = 0.0; - $send(m, 'upto', [high], ($$61 = function(i){var self = $$61.$$s == null ? this : $$61.$$s; + $send(m, 'upto', [high], function $$49(i){var self = $$49.$$s == null ? this : $$49.$$s; if (self.ort == null) self.ort = nil; if (self.v == null) self.v = nil; - if (i == null) { - i = nil; - }; - return (g = $rb_plus(g, $rb_times(self.ort['$[]'](i), self.v['$[]'](i)['$[]'](j))));}, $$61.$$s = self, $$61.$$arity = 1, $$61)); + if (i == null) i = nil;; + return (g = $rb_plus(g, $rb_times(self.ort['$[]'](i), self.v['$[]'](i)['$[]'](j))));}, {$$arity: 1, $$s: self}); g = $rb_divide($rb_divide(g, self.ort['$[]'](m)), self.h['$[]'](m)['$[]']($rb_minus(m, 1))); - return $send(m, 'upto', [high], ($$62 = function(i){var self = $$62.$$s == null ? this : $$62.$$s, $binary_op_recvr_tmp_7 = nil, $writer = nil; + return $send(m, 'upto', [high], function $$50(i){var self = $$50.$$s == null ? this : $$50.$$s, $binary_op_recvr_tmp_7 = nil, $writer = nil; if (self.v == null) self.v = nil; if (self.ort == null) self.ort = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $binary_op_recvr_tmp_7 = self.v['$[]'](i); $writer = [j, $rb_plus($binary_op_recvr_tmp_7['$[]'](j), $rb_times(g, self.ort['$[]'](i)))]; - $send($binary_op_recvr_tmp_7, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$62.$$s = self, $$62.$$arity = 1, $$62));}, $$60.$$s = self, $$60.$$arity = 1, $$60)); + $send($binary_op_recvr_tmp_7, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); } else { return nil - };}, $$58.$$s = self, $$58.$$arity = 1, $$58)); - }, $EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity = 0); - return (Opal.def(self, '$hessenberg_to_real_schur', $EigenvalueDecomposition_hessenberg_to_real_schur$63 = function $$hessenberg_to_real_schur() { - var $$64, $a, $b, $$66, $$67, $$68, $$69, $$70, $$71, $$72, $$76, $$83, $$85, self = this, nn = nil, n = nil, low = nil, high = nil, eps = nil, exshift = nil, p = nil, q = nil, r = nil, s = nil, z = nil, norm = nil, iter = nil, l = nil, $writer = nil, w = nil, x = nil, y = nil, m = nil; + };}, {$$arity: 1, $$s: self}); + }, 0); + return $def(self, '$hessenberg_to_real_schur', function $$hessenberg_to_real_schur() { + var $a, $b, self = this, nn = nil, n = nil, low = nil, high = nil, eps = nil, exshift = nil, p = nil, q = nil, r = nil, s = nil, z = nil, norm = nil, iter = nil, l = nil, $writer = nil, w = nil, x = nil, y = nil, m = nil; nn = self.size; n = $rb_minus(nn, 1); low = 0; high = $rb_minus(nn, 1); - eps = $$$($$($nesting, 'Float'), 'EPSILON'); + eps = $$$($$('Float'), 'EPSILON'); exshift = 0.0; p = (q = (r = (s = (z = 0)))); norm = 0.0; - $send(nn, 'times', [], ($$64 = function(i){var self = $$64.$$s == null ? this : $$64.$$s, $$65, $ret_or_1 = nil, $writer = nil; + $send(nn, 'times', [], function $$51(i){var self = $$51.$$s == null ? this : $$51.$$s, $writer = nil; if (self.h == null) self.h = nil; if (self.d == null) self.d = nil; if (self.e == null) self.e = nil; - if (i == null) { - i = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_1 = $rb_lt(i, low)))) { - return $ret_or_1 - } else { - return $rb_gt(i, high) - }; return nil; })())) { + if (i == null) i = nil;; + if (($truthy($rb_lt(i, low)) || ($truthy($rb_gt(i, high))))) { $writer = [i, self.h['$[]'](i)['$[]'](i)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [i, 0.0]; - $send(self.e, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];;}; - return $send([$rb_minus(i, 1), 0].$max(), 'upto', [$rb_minus(nn, 1)], ($$65 = function(j){var self = $$65.$$s == null ? this : $$65.$$s; + $send(self.e, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + }; + return $send([$rb_minus(i, 1), 0].$max(), 'upto', [$rb_minus(nn, 1)], function $$52(j){var self = $$52.$$s == null ? this : $$52.$$s; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; - return (norm = $rb_plus(norm, self.h['$[]'](i)['$[]'](j).$abs()));}, $$65.$$s = self, $$65.$$arity = 1, $$65));}, $$64.$$s = self, $$64.$$arity = 1, $$64)); + if (j == null) j = nil;; + return (norm = $rb_plus(norm, self.h['$[]'](i)['$[]'](j).$abs()));}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); iter = 0; while ($truthy($rb_ge(n, low))) { @@ -1204,41 +1026,43 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { while ($truthy($rb_gt(l, low))) { s = $rb_plus(self.h['$[]']($rb_minus(l, 1))['$[]']($rb_minus(l, 1)).$abs(), self.h['$[]'](l)['$[]'](l).$abs()); - if ($truthy(s['$=='](0.0))) { - s = norm}; + if ($eqeq(s, 0.0)) { + s = norm + }; if ($truthy($rb_lt(self.h['$[]'](l)['$[]']($rb_minus(l, 1)).$abs(), $rb_times(eps, s)))) { - break;}; + break; + }; l = $rb_minus(l, 1); }; - if ($truthy(l['$=='](n))) { + if ($eqeq(l, n)) { $writer = [n, $rb_plus(self.h['$[]'](n)['$[]'](n), exshift)]; - $send(self.h['$[]'](n), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](n), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, self.h['$[]'](n)['$[]'](n)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, 0.0]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; n = $rb_minus(n, 1); iter = 0; - } else if ($truthy(l['$==']($rb_minus(n, 1)))) { + } else if ($eqeq(l, $rb_minus(n, 1))) { w = $rb_times(self.h['$[]'](n)['$[]']($rb_minus(n, 1)), self.h['$[]']($rb_minus(n, 1))['$[]'](n)); p = $rb_divide($rb_minus(self.h['$[]']($rb_minus(n, 1))['$[]']($rb_minus(n, 1)), self.h['$[]'](n)['$[]'](n)), 2.0); q = $rb_plus($rb_times(p, p), w); - z = $$($nesting, 'Math').$sqrt(q.$abs()); + z = $$('Math').$sqrt(q.$abs()); $writer = [n, $rb_plus(self.h['$[]'](n)['$[]'](n), exshift)]; - $send(self.h['$[]'](n), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](n), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [$rb_minus(n, 1), $rb_plus(self.h['$[]']($rb_minus(n, 1))['$[]']($rb_minus(n, 1)), exshift)]; - $send(self.h['$[]']($rb_minus(n, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_minus(n, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; x = self.h['$[]'](n)['$[]'](n); if ($truthy($rb_ge(q, 0))) { @@ -1250,100 +1074,95 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { }; $writer = [$rb_minus(n, 1), $rb_plus(x, z)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, self.d['$[]']($rb_minus(n, 1))]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(z['$!='](0.0))) { + if ($neqeq(z, 0.0)) { $writer = [n, $rb_minus(x, $rb_divide(w, z))]; - $send(self.d, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(self.d, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; $writer = [$rb_minus(n, 1), 0.0]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, 0.0]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; x = self.h['$[]'](n)['$[]']($rb_minus(n, 1)); s = $rb_plus(x.$abs(), z.$abs()); p = $rb_divide(x, s); q = $rb_divide(z, s); - r = $$($nesting, 'Math').$sqrt($rb_plus($rb_times(p, p), $rb_times(q, q))); + r = $$('Math').$sqrt($rb_plus($rb_times(p, p), $rb_times(q, q))); p = $rb_divide(p, r); q = $rb_divide(q, r); - $send($rb_minus(n, 1), 'upto', [$rb_minus(nn, 1)], ($$66 = function(j){var self = $$66.$$s == null ? this : $$66.$$s; + $send($rb_minus(n, 1), 'upto', [$rb_minus(nn, 1)], function $$53(j){var self = $$53.$$s == null ? this : $$53.$$s; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; z = self.h['$[]']($rb_minus(n, 1))['$[]'](j); $writer = [j, $rb_plus($rb_times(q, z), $rb_times(p, self.h['$[]'](n)['$[]'](j)))]; - $send(self.h['$[]']($rb_minus(n, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_minus(n, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [j, $rb_minus($rb_times(q, self.h['$[]'](n)['$[]'](j)), $rb_times(p, z))]; - $send(self.h['$[]'](n), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$66.$$s = self, $$66.$$arity = 1, $$66)); - $send((0), 'upto', [n], ($$67 = function(i){var self = $$67.$$s == null ? this : $$67.$$s; + $send(self.h['$[]'](n), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + $send((0), 'upto', [n], function $$54(i){var self = $$54.$$s == null ? this : $$54.$$s; if (self.h == null) self.h = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; z = self.h['$[]'](i)['$[]']($rb_minus(n, 1)); $writer = [$rb_minus(n, 1), $rb_plus($rb_times(q, z), $rb_times(p, self.h['$[]'](i)['$[]'](n)))]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, $rb_minus($rb_times(q, self.h['$[]'](i)['$[]'](n)), $rb_times(p, z))]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$67.$$s = self, $$67.$$arity = 1, $$67)); - $send(low, 'upto', [high], ($$68 = function(i){var self = $$68.$$s == null ? this : $$68.$$s; + $send(self.h['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + $send(low, 'upto', [high], function $$55(i){var self = $$55.$$s == null ? this : $$55.$$s; if (self.v == null) self.v = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; z = self.v['$[]'](i)['$[]']($rb_minus(n, 1)); $writer = [$rb_minus(n, 1), $rb_plus($rb_times(q, z), $rb_times(p, self.v['$[]'](i)['$[]'](n)))]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.v['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, $rb_minus($rb_times(q, self.v['$[]'](i)['$[]'](n)), $rb_times(p, z))]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$68.$$s = self, $$68.$$arity = 1, $$68)); + $send(self.v['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); } else { $writer = [$rb_minus(n, 1), $rb_plus(x, p)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, $rb_plus(x, p)]; - $send(self.d, '[]=', Opal.to_a($writer)); + $send(self.d, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [$rb_minus(n, 1), z]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, z['$-@']()]; - $send(self.e, '[]=', Opal.to_a($writer)); + $send(self.e, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; }; n = $rb_minus(n, 2); @@ -1356,51 +1175,52 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { if ($truthy($rb_lt(l, n))) { y = self.h['$[]']($rb_minus(n, 1))['$[]']($rb_minus(n, 1)); - w = $rb_times(self.h['$[]'](n)['$[]']($rb_minus(n, 1)), self.h['$[]']($rb_minus(n, 1))['$[]'](n));}; - if ($truthy(iter['$=='](10))) { + w = $rb_times(self.h['$[]'](n)['$[]']($rb_minus(n, 1)), self.h['$[]']($rb_minus(n, 1))['$[]'](n)); + }; + if ($eqeq(iter, 10)) { exshift = $rb_plus(exshift, x); - $send(low, 'upto', [n], ($$69 = function(i){var self = $$69.$$s == null ? this : $$69.$$s, $binary_op_recvr_tmp_8 = nil; + $send(low, 'upto', [n], function $$56(i){var self = $$56.$$s == null ? this : $$56.$$s, $binary_op_recvr_tmp_8 = nil; if (self.h == null) self.h = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $binary_op_recvr_tmp_8 = self.h['$[]'](i); $writer = [i, $rb_minus($binary_op_recvr_tmp_8['$[]'](i), x)]; - $send($binary_op_recvr_tmp_8, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$69.$$s = self, $$69.$$arity = 1, $$69)); + $send($binary_op_recvr_tmp_8, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); s = $rb_plus(self.h['$[]'](n)['$[]']($rb_minus(n, 1)).$abs(), self.h['$[]']($rb_minus(n, 1))['$[]']($rb_minus(n, 2)).$abs()); x = (y = $rb_times(0.75, s)); - w = $rb_times($rb_times(-0.4375, s), s);}; - if ($truthy(iter['$=='](30))) { + w = $rb_times($rb_times(-0.4375, s), s); + }; + if ($eqeq(iter, 30)) { s = $rb_divide($rb_minus(y, x), 2.0); s = $rb_times(s, $rb_plus(s, w)); if ($truthy($rb_gt(s, 0))) { - s = $$($nesting, 'Math').$sqrt(s); + s = $$('Math').$sqrt(s); if ($truthy($rb_lt(y, x))) { - s = s['$-@']()}; + s = s['$-@']() + }; s = $rb_minus(x, $rb_divide(w, $rb_plus($rb_divide($rb_minus(y, x), 2.0), s))); - $send(low, 'upto', [n], ($$70 = function(i){var self = $$70.$$s == null ? this : $$70.$$s, $binary_op_recvr_tmp_9 = nil; + $send(low, 'upto', [n], function $$57(i){var self = $$57.$$s == null ? this : $$57.$$s, $binary_op_recvr_tmp_9 = nil; if (self.h == null) self.h = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $binary_op_recvr_tmp_9 = self.h['$[]'](i); $writer = [i, $rb_minus($binary_op_recvr_tmp_9['$[]'](i), s)]; - $send($binary_op_recvr_tmp_9, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$70.$$s = self, $$70.$$arity = 1, $$70)); + $send($binary_op_recvr_tmp_9, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); exshift = $rb_plus(exshift, s); - x = (y = (w = 0.964));};}; + x = (y = (w = 0.964)); + }; + }; iter = $rb_plus(iter, 1); m = $rb_minus(n, 2); while ($truthy($rb_ge(m, l))) { @@ -1415,196 +1235,186 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { p = $rb_divide(p, s); q = $rb_divide(q, s); r = $rb_divide(r, s); - if ($truthy(m['$=='](l))) { - break;}; + if ($eqeq(m, l)) { + break; + }; if ($truthy($rb_lt($rb_times(self.h['$[]'](m)['$[]']($rb_minus(m, 1)).$abs(), $rb_plus(q.$abs(), r.$abs())), $rb_times(eps, $rb_times(p.$abs(), $rb_plus($rb_plus(self.h['$[]']($rb_minus(m, 1))['$[]']($rb_minus(m, 1)).$abs(), z.$abs()), self.h['$[]']($rb_plus(m, 1))['$[]']($rb_plus(m, 1)).$abs())))))) { - break;}; + break; + }; m = $rb_minus(m, 1); }; - $send($rb_plus(m, 2), 'upto', [n], ($$71 = function(i){var self = $$71.$$s == null ? this : $$71.$$s; + $send($rb_plus(m, 2), 'upto', [n], function $$58(i){var self = $$58.$$s == null ? this : $$58.$$s; if (self.h == null) self.h = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [$rb_minus(i, 2), 0.0]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy($rb_gt(i, $rb_plus(m, 2)))) { $writer = [$rb_minus(i, 3), 0.0]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil - };}, $$71.$$s = self, $$71.$$arity = 1, $$71)); - $send(m, 'upto', [$rb_minus(n, 1)], ($$72 = function(k){var self = $$72.$$s == null ? this : $$72.$$s, $$73, $$74, $$75, notlast = nil; + };}, {$$arity: 1, $$s: self}); + $send(m, 'upto', [$rb_minus(n, 1)], function $$59(k){var self = $$59.$$s == null ? this : $$59.$$s, notlast = nil; if (self.h == null) self.h = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; notlast = k['$!=']($rb_minus(n, 1)); - if ($truthy(k['$!='](m))) { + if ($neqeq(k, m)) { p = self.h['$[]'](k)['$[]']($rb_minus(k, 1)); q = self.h['$[]']($rb_plus(k, 1))['$[]']($rb_minus(k, 1)); - r = (function() {if ($truthy(notlast)) { - return self.h['$[]']($rb_plus(k, 2))['$[]']($rb_minus(k, 1)) - } else { - return 0.0 - }; return nil; })(); + r = ($truthy(notlast) ? (self.h['$[]']($rb_plus(k, 2))['$[]']($rb_minus(k, 1))) : (0.0)); x = $rb_plus($rb_plus(p.$abs(), q.$abs()), r.$abs()); - if (x['$=='](0)) { - return nil;}; + if ($eqeq(x, 0)) { + return nil; + }; p = $rb_divide(p, x); q = $rb_divide(q, x); - r = $rb_divide(r, x);}; - s = $$($nesting, 'Math').$sqrt($rb_plus($rb_plus($rb_times(p, p), $rb_times(q, q)), $rb_times(r, r))); + r = $rb_divide(r, x); + }; + s = $$('Math').$sqrt($rb_plus($rb_plus($rb_times(p, p), $rb_times(q, q)), $rb_times(r, r))); if ($truthy($rb_lt(p, 0))) { - s = s['$-@']()}; - if ($truthy(s['$!='](0))) { + s = s['$-@']() + }; + if ($neqeq(s, 0)) { - if ($truthy(k['$!='](m))) { + if ($neqeq(k, m)) { $writer = [$rb_minus(k, 1), $rb_times(s['$-@'](), x)]; - $send(self.h['$[]'](k), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](k), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy(l['$!='](m))) { + } else if ($neqeq(l, m)) { $writer = [$rb_minus(k, 1), self.h['$[]'](k)['$[]']($rb_minus(k, 1))['$-@']()]; - $send(self.h['$[]'](k), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(self.h['$[]'](k), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; p = $rb_plus(p, s); x = $rb_divide(p, s); y = $rb_divide(q, s); z = $rb_divide(r, s); q = $rb_divide(q, p); r = $rb_divide(r, p); - $send(k, 'upto', [$rb_minus(nn, 1)], ($$73 = function(j){var self = $$73.$$s == null ? this : $$73.$$s; + $send(k, 'upto', [$rb_minus(nn, 1)], function $$60(j){var self = $$60.$$s == null ? this : $$60.$$s; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; p = $rb_plus(self.h['$[]'](k)['$[]'](j), $rb_times(q, self.h['$[]']($rb_plus(k, 1))['$[]'](j))); if ($truthy(notlast)) { p = $rb_plus(p, $rb_times(r, self.h['$[]']($rb_plus(k, 2))['$[]'](j))); $writer = [j, $rb_minus(self.h['$[]']($rb_plus(k, 2))['$[]'](j), $rb_times(p, z))]; - $send(self.h['$[]']($rb_plus(k, 2)), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];;}; + $send(self.h['$[]']($rb_plus(k, 2)), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + }; $writer = [j, $rb_minus(self.h['$[]'](k)['$[]'](j), $rb_times(p, x))]; - $send(self.h['$[]'](k), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](k), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [j, $rb_minus(self.h['$[]']($rb_plus(k, 1))['$[]'](j), $rb_times(p, y))]; - $send(self.h['$[]']($rb_plus(k, 1)), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$73.$$s = self, $$73.$$arity = 1, $$73)); - $send((0), 'upto', [[n, $rb_plus(k, 3)].$min()], ($$74 = function(i){var self = $$74.$$s == null ? this : $$74.$$s; + $send(self.h['$[]']($rb_plus(k, 1)), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + $send((0), 'upto', [[n, $rb_plus(k, 3)].$min()], function $$61(i){var self = $$61.$$s == null ? this : $$61.$$s; if (self.h == null) self.h = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; p = $rb_plus($rb_times(x, self.h['$[]'](i)['$[]'](k)), $rb_times(y, self.h['$[]'](i)['$[]']($rb_plus(k, 1)))); if ($truthy(notlast)) { p = $rb_plus(p, $rb_times(z, self.h['$[]'](i)['$[]']($rb_plus(k, 2)))); $writer = [$rb_plus(k, 2), $rb_minus(self.h['$[]'](i)['$[]']($rb_plus(k, 2)), $rb_times(p, r))]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];;}; + $send(self.h['$[]'](i), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + }; $writer = [k, $rb_minus(self.h['$[]'](i)['$[]'](k), p)]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [$rb_plus(k, 1), $rb_minus(self.h['$[]'](i)['$[]']($rb_plus(k, 1)), $rb_times(p, q))]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$74.$$s = self, $$74.$$arity = 1, $$74)); - return $send(low, 'upto', [high], ($$75 = function(i){var self = $$75.$$s == null ? this : $$75.$$s; + $send(self.h['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + return $send(low, 'upto', [high], function $$62(i){var self = $$62.$$s == null ? this : $$62.$$s; if (self.v == null) self.v = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; p = $rb_plus($rb_times(x, self.v['$[]'](i)['$[]'](k)), $rb_times(y, self.v['$[]'](i)['$[]']($rb_plus(k, 1)))); if ($truthy(notlast)) { p = $rb_plus(p, $rb_times(z, self.v['$[]'](i)['$[]']($rb_plus(k, 2)))); $writer = [$rb_plus(k, 2), $rb_minus(self.v['$[]'](i)['$[]']($rb_plus(k, 2)), $rb_times(p, r))]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];;}; + $send(self.v['$[]'](i), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + }; $writer = [k, $rb_minus(self.v['$[]'](i)['$[]'](k), p)]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.v['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [$rb_plus(k, 1), $rb_minus(self.v['$[]'](i)['$[]']($rb_plus(k, 1)), $rb_times(p, q))]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$75.$$s = self, $$75.$$arity = 1, $$75)); + $send(self.v['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); } else { return nil - };}, $$72.$$s = self, $$72.$$arity = 1, $$72)); + };}, {$$arity: 1, $$s: self}); }; }; - if ($truthy(norm['$=='](0.0))) { - return nil}; - $send($rb_minus(nn, 1), 'downto', [0], ($$76 = function(k){var self = $$76.$$s == null ? this : $$76.$$s, $$77, $c, $d, $$80, cdivr = nil, cdivi = nil; + if ($eqeq(norm, 0.0)) { + return nil + }; + $send($rb_minus(nn, 1), 'downto', [0], function $$63(k){var $c, $d, self = $$63.$$s == null ? this : $$63.$$s, cdivr = nil, cdivi = nil; if (self.d == null) self.d = nil; if (self.e == null) self.e = nil; if (self.h == null) self.h = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; p = self.d['$[]'](k); q = self.e['$[]'](k); - if ($truthy(q['$=='](0))) { + if ($eqeq(q, 0)) { l = k; $writer = [k, 1.0]; - $send(self.h['$[]'](k), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](k), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send($rb_minus(k, 1), 'downto', [0], ($$77 = function(i){var self = $$77.$$s == null ? this : $$77.$$s, $$78, $$79, t = nil; + return $send($rb_minus(k, 1), 'downto', [0], function $$64(i){var self = $$64.$$s == null ? this : $$64.$$s, t = nil; if (self.h == null) self.h = nil; if (self.e == null) self.e = nil; if (self.d == null) self.d = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; w = $rb_minus(self.h['$[]'](i)['$[]'](i), p); r = 0.0; - $send(l, 'upto', [k], ($$78 = function(j){var self = $$78.$$s == null ? this : $$78.$$s; + $send(l, 'upto', [k], function $$65(j){var self = $$65.$$s == null ? this : $$65.$$s; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; - return (r = $rb_plus(r, $rb_times(self.h['$[]'](i)['$[]'](j), self.h['$[]'](j)['$[]'](k))));}, $$78.$$s = self, $$78.$$arity = 1, $$78)); + if (j == null) j = nil;; + return (r = $rb_plus(r, $rb_times(self.h['$[]'](i)['$[]'](j), self.h['$[]'](j)['$[]'](k))));}, {$$arity: 1, $$s: self}); if ($truthy($rb_lt(self.e['$[]'](i), 0.0))) { z = w; @@ -1612,16 +1422,16 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { } else { l = i; - if ($truthy(self.e['$[]'](i)['$=='](0.0))) { - if ($truthy(w['$!='](0.0))) { + if ($eqeq(self.e['$[]'](i), 0.0)) { + if ($neqeq(w, 0.0)) { $writer = [k, $rb_divide(r['$-@'](), w)]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } else { $writer = [k, $rb_divide(r['$-@'](), $rb_times(eps, norm))]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } } else { @@ -1632,37 +1442,35 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { t = $rb_divide($rb_minus($rb_times(x, s), $rb_times(z, r)), q); $writer = [k, t]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy($rb_gt(x.$abs(), z.$abs()))) { $writer = [k, $rb_divide($rb_minus(r['$-@'](), $rb_times(w, t)), x)]; - $send(self.h['$[]']($rb_plus(i, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_plus(i, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } else { $writer = [k, $rb_divide($rb_minus(s['$-@'](), $rb_times(y, t)), z)]; - $send(self.h['$[]']($rb_plus(i, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_plus(i, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; }; t = self.h['$[]'](i)['$[]'](k).$abs(); if ($truthy($rb_gt($rb_times($rb_times(eps, t), t), 1))) { - return $send(i, 'upto', [k], ($$79 = function(j){var self = $$79.$$s == null ? this : $$79.$$s; + return $send(i, 'upto', [k], function $$66(j){var self = $$66.$$s == null ? this : $$66.$$s; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [k, $rb_divide(self.h['$[]'](j)['$[]'](k), t)]; - $send(self.h['$[]'](j), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$79.$$s = self, $$79.$$arity = 1, $$79)) + $send(self.h['$[]'](j), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}) } else { return nil }; - };}, $$77.$$s = self, $$77.$$arity = 1, $$77)); + };}, {$$arity: 1, $$s: self}); } else if ($truthy($rb_lt(q, 0))) { l = $rb_minus(n, 1); @@ -1670,54 +1478,50 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { $writer = [$rb_minus(n, 1), $rb_divide(q, self.h['$[]'](n)['$[]']($rb_minus(n, 1)))]; - $send(self.h['$[]']($rb_minus(n, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_minus(n, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, $rb_divide($rb_minus(self.h['$[]'](n)['$[]'](n), p)['$-@'](), self.h['$[]'](n)['$[]']($rb_minus(n, 1)))]; - $send(self.h['$[]']($rb_minus(n, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_minus(n, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; } else { - $d = self.$cdiv(0.0, self.h['$[]']($rb_minus(n, 1))['$[]'](n)['$-@'](), $rb_minus(self.h['$[]']($rb_minus(n, 1))['$[]']($rb_minus(n, 1)), p), q), $c = Opal.to_ary($d), (cdivr = ($c[0] == null ? nil : $c[0])), (cdivi = ($c[1] == null ? nil : $c[1])), $d; + $d = self.$cdiv(0.0, self.h['$[]']($rb_minus(n, 1))['$[]'](n)['$-@'](), $rb_minus(self.h['$[]']($rb_minus(n, 1))['$[]']($rb_minus(n, 1)), p), q), $c = $to_ary($d), (cdivr = ($c[0] == null ? nil : $c[0])), (cdivi = ($c[1] == null ? nil : $c[1])), $d; $writer = [$rb_minus(n, 1), cdivr]; - $send(self.h['$[]']($rb_minus(n, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_minus(n, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, cdivi]; - $send(self.h['$[]']($rb_minus(n, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_minus(n, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; }; $writer = [$rb_minus(n, 1), 0.0]; - $send(self.h['$[]'](n), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](n), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, 1.0]; - $send(self.h['$[]'](n), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](n), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send($rb_minus(n, 2), 'downto', [0], ($$80 = function(i){var self = $$80.$$s == null ? this : $$80.$$s, $$81, $e, $f, $$82, ra = nil, sa = nil, vr = nil, vi = nil, $ret_or_2 = nil, t = nil; + return $send($rb_minus(n, 2), 'downto', [0], function $$67(i){var $e, $f, self = $$67.$$s == null ? this : $$67.$$s, ra = nil, sa = nil, vr = nil, vi = nil, t = nil; if (self.h == null) self.h = nil; if (self.e == null) self.e = nil; if (self.d == null) self.d = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; ra = 0.0; sa = 0.0; - $send(l, 'upto', [n], ($$81 = function(j){var self = $$81.$$s == null ? this : $$81.$$s; + $send(l, 'upto', [n], function $$68(j){var self = $$68.$$s == null ? this : $$68.$$s; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; ra = $rb_plus(ra, $rb_times(self.h['$[]'](i)['$[]'](j), self.h['$[]'](j)['$[]']($rb_minus(n, 1)))); - return (sa = $rb_plus(sa, $rb_times(self.h['$[]'](i)['$[]'](j), self.h['$[]'](j)['$[]'](n))));}, $$81.$$s = self, $$81.$$arity = 1, $$81)); + return (sa = $rb_plus(sa, $rb_times(self.h['$[]'](i)['$[]'](j), self.h['$[]'](j)['$[]'](n))));}, {$$arity: 1, $$s: self}); w = $rb_minus(self.h['$[]'](i)['$[]'](i), p); if ($truthy($rb_lt(self.e['$[]'](i), 0.0))) { @@ -1727,16 +1531,16 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { } else { l = i; - if ($truthy(self.e['$[]'](i)['$=='](0))) { + if ($eqeq(self.e['$[]'](i), 0)) { - $f = self.$cdiv(ra['$-@'](), sa['$-@'](), w, q), $e = Opal.to_ary($f), (cdivr = ($e[0] == null ? nil : $e[0])), (cdivi = ($e[1] == null ? nil : $e[1])), $f; + $f = self.$cdiv(ra['$-@'](), sa['$-@'](), w, q), $e = $to_ary($f), (cdivr = ($e[0] == null ? nil : $e[0])), (cdivi = ($e[1] == null ? nil : $e[1])), $f; $writer = [$rb_minus(n, 1), cdivr]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, cdivi]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; } else { @@ -1744,154 +1548,116 @@ Opal.modules["matrix/eigenvalue_decomposition"] = function(Opal) { y = self.h['$[]']($rb_plus(i, 1))['$[]'](i); vr = $rb_minus($rb_plus($rb_times($rb_minus(self.d['$[]'](i), p), $rb_minus(self.d['$[]'](i), p)), $rb_times(self.e['$[]'](i), self.e['$[]'](i))), $rb_times(q, q)); vi = $rb_times($rb_times($rb_minus(self.d['$[]'](i), p), 2.0), q); - if ($truthy((function() {if ($truthy(($ret_or_2 = vr['$=='](0.0)))) { - return vi['$=='](0.0) - } else { - return $ret_or_2 - }; return nil; })())) { - vr = $rb_times($rb_times(eps, norm), $rb_plus($rb_plus($rb_plus($rb_plus(w.$abs(), q.$abs()), x.$abs()), y.$abs()), z.$abs()))}; - $f = self.$cdiv($rb_plus($rb_minus($rb_times(x, r), $rb_times(z, ra)), $rb_times(q, sa)), $rb_minus($rb_minus($rb_times(x, s), $rb_times(z, sa)), $rb_times(q, ra)), vr, vi), $e = Opal.to_ary($f), (cdivr = ($e[0] == null ? nil : $e[0])), (cdivi = ($e[1] == null ? nil : $e[1])), $f; + if (($eqeq(vr, 0.0) && ($eqeq(vi, 0.0)))) { + vr = $rb_times($rb_times(eps, norm), $rb_plus($rb_plus($rb_plus($rb_plus(w.$abs(), q.$abs()), x.$abs()), y.$abs()), z.$abs())) + }; + $f = self.$cdiv($rb_plus($rb_minus($rb_times(x, r), $rb_times(z, ra)), $rb_times(q, sa)), $rb_minus($rb_minus($rb_times(x, s), $rb_times(z, sa)), $rb_times(q, ra)), vr, vi), $e = $to_ary($f), (cdivr = ($e[0] == null ? nil : $e[0])), (cdivi = ($e[1] == null ? nil : $e[1])), $f; $writer = [$rb_minus(n, 1), cdivr]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, cdivi]; - $send(self.h['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](i), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy($rb_gt(x.$abs(), $rb_plus(z.$abs(), q.$abs())))) { $writer = [$rb_minus(n, 1), $rb_divide($rb_plus($rb_minus(ra['$-@'](), $rb_times(w, self.h['$[]'](i)['$[]']($rb_minus(n, 1)))), $rb_times(q, self.h['$[]'](i)['$[]'](n))), x)]; - $send(self.h['$[]']($rb_plus(i, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_plus(i, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, $rb_divide($rb_minus($rb_minus(sa['$-@'](), $rb_times(w, self.h['$[]'](i)['$[]'](n))), $rb_times(q, self.h['$[]'](i)['$[]']($rb_minus(n, 1)))), x)]; - $send(self.h['$[]']($rb_plus(i, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_plus(i, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; } else { - $f = self.$cdiv($rb_minus(r['$-@'](), $rb_times(y, self.h['$[]'](i)['$[]']($rb_minus(n, 1)))), $rb_minus(s['$-@'](), $rb_times(y, self.h['$[]'](i)['$[]'](n))), z, q), $e = Opal.to_ary($f), (cdivr = ($e[0] == null ? nil : $e[0])), (cdivi = ($e[1] == null ? nil : $e[1])), $f; + $f = self.$cdiv($rb_minus(r['$-@'](), $rb_times(y, self.h['$[]'](i)['$[]']($rb_minus(n, 1)))), $rb_minus(s['$-@'](), $rb_times(y, self.h['$[]'](i)['$[]'](n))), z, q), $e = $to_ary($f), (cdivr = ($e[0] == null ? nil : $e[0])), (cdivi = ($e[1] == null ? nil : $e[1])), $f; $writer = [$rb_minus(n, 1), cdivr]; - $send(self.h['$[]']($rb_plus(i, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_plus(i, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, cdivi]; - $send(self.h['$[]']($rb_plus(i, 1)), '[]=', Opal.to_a($writer)); + $send(self.h['$[]']($rb_plus(i, 1)), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; }; }; t = [self.h['$[]'](i)['$[]']($rb_minus(n, 1)).$abs(), self.h['$[]'](i)['$[]'](n).$abs()].$max(); if ($truthy($rb_gt($rb_times($rb_times(eps, t), t), 1))) { - return $send(i, 'upto', [n], ($$82 = function(j){var self = $$82.$$s == null ? this : $$82.$$s; + return $send(i, 'upto', [n], function $$69(j){var self = $$69.$$s == null ? this : $$69.$$s; if (self.h == null) self.h = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [$rb_minus(n, 1), $rb_divide(self.h['$[]'](j)['$[]']($rb_minus(n, 1)), t)]; - $send(self.h['$[]'](j), '[]=', Opal.to_a($writer)); + $send(self.h['$[]'](j), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [n, $rb_divide(self.h['$[]'](j)['$[]'](n), t)]; - $send(self.h['$[]'](j), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$82.$$s = self, $$82.$$arity = 1, $$82)) + $send(self.h['$[]'](j), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}) } else { return nil }; - };}, $$80.$$s = self, $$80.$$arity = 1, $$80)); + };}, {$$arity: 1, $$s: self}); } else { return nil - };}, $$76.$$s = self, $$76.$$arity = 1, $$76)); - $send(nn, 'times', [], ($$83 = function(i){var self = $$83.$$s == null ? this : $$83.$$s, $$84, $ret_or_3 = nil; + };}, {$$arity: 1, $$s: self}); + $send(nn, 'times', [], function $$70(i){var self = $$70.$$s == null ? this : $$70.$$s; - if (i == null) { - i = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_3 = $rb_lt(i, low)))) { - return $ret_or_3 - } else { - return $rb_gt(i, high) - }; return nil; })())) { - return $send(i, 'upto', [$rb_minus(nn, 1)], ($$84 = function(j){var self = $$84.$$s == null ? this : $$84.$$s; + if (i == null) i = nil;; + if (($truthy($rb_lt(i, low)) || ($truthy($rb_gt(i, high))))) { + return $send(i, 'upto', [$rb_minus(nn, 1)], function $$71(j){var self = $$71.$$s == null ? this : $$71.$$s; if (self.h == null) self.h = nil; if (self.v == null) self.v = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, self.h['$[]'](i)['$[]'](j)]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$84.$$s = self, $$84.$$arity = 1, $$84)) + $send(self.v['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}) } else { return nil - };}, $$83.$$s = self, $$83.$$arity = 1, $$83)); - return $send($rb_minus(nn, 1), 'downto', [low], ($$85 = function(j){var self = $$85.$$s == null ? this : $$85.$$s, $$86; + };}, {$$arity: 1, $$s: self}); + return $send($rb_minus(nn, 1), 'downto', [low], function $$72(j){var self = $$72.$$s == null ? this : $$72.$$s; - if (j == null) { - j = nil; - }; - return $send(low, 'upto', [high], ($$86 = function(i){var self = $$86.$$s == null ? this : $$86.$$s, $$87; + if (j == null) j = nil;; + return $send(low, 'upto', [high], function $$73(i){var self = $$73.$$s == null ? this : $$73.$$s; if (self.v == null) self.v = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; z = 0.0; - $send(low, 'upto', [[j, high].$min()], ($$87 = function(k){var self = $$87.$$s == null ? this : $$87.$$s; + $send(low, 'upto', [[j, high].$min()], function $$74(k){var self = $$74.$$s == null ? this : $$74.$$s; if (self.v == null) self.v = nil; if (self.h == null) self.h = nil; - if (k == null) { - k = nil; - }; - return (z = $rb_plus(z, $rb_times(self.v['$[]'](i)['$[]'](k), self.h['$[]'](k)['$[]'](j))));}, $$87.$$s = self, $$87.$$arity = 1, $$87)); + if (k == null) k = nil;; + return (z = $rb_plus(z, $rb_times(self.v['$[]'](i)['$[]'](k), self.h['$[]'](k)['$[]'](j))));}, {$$arity: 1, $$s: self}); $writer = [j, z]; - $send(self.v['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$86.$$s = self, $$86.$$arity = 1, $$86));}, $$85.$$s = self, $$85.$$arity = 1, $$85)); - }, $EigenvalueDecomposition_hessenberg_to_real_schur$63.$$arity = 0), nil) && 'hessenberg_to_real_schur'; + $send(self.v['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + }, 0); })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["matrix/lup_decomposition"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - - Opal.add_stubs(['$include', '$build', '$min', '$>', '$[]', '$==', '$<=', '$new', '$each_with_index', '$[]=', '$-', '$send', '$l', '$u', '$p', '$alias_method', '$attr_reader', '$times', '$!=', '$Raise', '$*', '$singular?', '$is_a?', '$row_count', '$column_count', '$map', '$to_a', '$row', '$upto', '$+', '$downto', '$quo', '$convert_to_array', '$size', '$values_at', '$elements', '$raise', '$class', '$abs', '$-@', '$<']); +Opal.modules["matrix/lup_decomposition"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $eqeq = Opal.eqeq, $def = Opal.def, $rb_le = Opal.rb_le, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $neqeq = Opal.neqeq, $rb_times = Opal.rb_times, $rb_plus = Opal.rb_plus, $rb_lt = Opal.rb_lt; + + Opal.add_stubs('include,build,min,>,[],==,<=,new,each_with_index,[]=,-,send,l,u,p,alias_method,attr_reader,times,!=,Raise,*,singular?,is_a?,row_count,column_count,map,to_a,row,upto,+,downto,quo,convert_to_array,size,values_at,elements,raise,class,abs,-@,<'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Matrix'); @@ -1900,296 +1666,256 @@ Opal.modules["matrix/lup_decomposition"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'LUPDecomposition'); - var $nesting = [self].concat($parent_nesting), $LUPDecomposition_l$1, $LUPDecomposition_u$3, $LUPDecomposition_p$5, $LUPDecomposition_to_ary$8, $LUPDecomposition_singular$ques$9, $LUPDecomposition_det$11, $LUPDecomposition_solve$13, $LUPDecomposition_initialize$26; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.row_count = self.$$prototype.column_count = self.$$prototype.pivots = self.$$prototype.pivot_sign = nil; + $proto.row_count = $proto.column_count = $proto.pivots = $proto.pivot_sign = nil; - self.$include($$$($$($nesting, 'Matrix'), 'ConversionHelper')); + self.$include($$$($$('Matrix'), 'ConversionHelper')); - Opal.def(self, '$l', $LUPDecomposition_l$1 = function $$l() { - var $$2, self = this; + $def(self, '$l', function $$l() { + var self = this; - return $send($$($nesting, 'Matrix'), 'build', [self.row_count, [self.column_count, self.row_count].$min()], ($$2 = function(i, j){var self = $$2.$$s == null ? this : $$2.$$s; + return $send($$('Matrix'), 'build', [self.row_count, [self.column_count, self.row_count].$min()], function $$1(i, j){var self = $$1.$$s == null ? this : $$1.$$s; if (self.lu == null) self.lu = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; if ($truthy($rb_gt(i, j))) { return self.lu['$[]'](i)['$[]'](j) - } else if ($truthy(i['$=='](j))) { + } else if ($eqeq(i, j)) { return 1 } else { return 0 - };}, $$2.$$s = self, $$2.$$arity = 2, $$2)) - }, $LUPDecomposition_l$1.$$arity = 0); + };}, {$$arity: 2, $$s: self}) + }, 0); - Opal.def(self, '$u', $LUPDecomposition_u$3 = function $$u() { - var $$4, self = this; + $def(self, '$u', function $$u() { + var self = this; - return $send($$($nesting, 'Matrix'), 'build', [[self.column_count, self.row_count].$min(), self.column_count], ($$4 = function(i, j){var self = $$4.$$s == null ? this : $$4.$$s; + return $send($$('Matrix'), 'build', [[self.column_count, self.row_count].$min(), self.column_count], function $$2(i, j){var self = $$2.$$s == null ? this : $$2.$$s; if (self.lu == null) self.lu = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; if ($truthy($rb_le(i, j))) { return self.lu['$[]'](i)['$[]'](j) } else { return 0 - };}, $$4.$$s = self, $$4.$$arity = 2, $$4)) - }, $LUPDecomposition_u$3.$$arity = 0); + };}, {$$arity: 2, $$s: self}) + }, 0); - Opal.def(self, '$p', $LUPDecomposition_p$5 = function $$p() { - var $$6, $$7, self = this, rows = nil; + $def(self, '$p', function $$p() { + var self = this, rows = nil; - rows = $send($$($nesting, 'Array'), 'new', [self.row_count], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; + rows = $send($$('Array'), 'new', [self.row_count], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; if (self.row_count == null) self.row_count = nil; - return $$($nesting, 'Array').$new(self.row_count, 0)}, $$6.$$s = self, $$6.$$arity = 0, $$6)); - $send(self.pivots, 'each_with_index', [], ($$7 = function(p, i){var self = $$7.$$s == null ? this : $$7.$$s, $writer = nil; + return $$('Array').$new(self.row_count, 0)}, {$$arity: 0, $$s: self}); + $send(self.pivots, 'each_with_index', [], function $$4(p, i){var $writer = nil; - if (p == null) { - p = nil; - }; + if (p == null) p = nil;; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [p, 1]; - $send(rows['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$7.$$s = self, $$7.$$arity = 2, $$7)); - return $$($nesting, 'Matrix').$send("new", rows, self.row_count); - }, $LUPDecomposition_p$5.$$arity = 0); + $send(rows['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 2); + return $$('Matrix').$send("new", rows, self.row_count); + }, 0); - Opal.def(self, '$to_ary', $LUPDecomposition_to_ary$8 = function $$to_ary() { + $def(self, '$to_ary', function $$to_ary() { var self = this; return [self.$l(), self.$u(), self.$p()] - }, $LUPDecomposition_to_ary$8.$$arity = 0); + }, 0); self.$alias_method("to_a", "to_ary"); self.$attr_reader("pivots"); - Opal.def(self, '$singular?', $LUPDecomposition_singular$ques$9 = function() {try { + $def(self, '$singular?', function $LUPDecomposition_singular$ques$5() {try { - var $$10, self = this; + var self = this; - $send(self.column_count, 'times', [], ($$10 = function(j){var self = $$10.$$s == null ? this : $$10.$$s; + $send(self.column_count, 'times', [], function $$6(j){var self = $$6.$$s == null ? this : $$6.$$s; if (self.lu == null) self.lu = nil; - if (j == null) { - j = nil; - }; - if ($truthy(self.lu['$[]'](j)['$[]'](j)['$=='](0))) { + if (j == null) j = nil;; + if ($eqeq(self.lu['$[]'](j)['$[]'](j), 0)) { Opal.ret(true) } else { return nil - };}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + };}, {$$arity: 1, $$s: self}); return false; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $LUPDecomposition_singular$ques$9.$$arity = 0); + }, 0); - Opal.def(self, '$det', $LUPDecomposition_det$11 = function $$det() { - var $$12, self = this, d = nil; + $def(self, '$det', function $$det() { + var self = this, d = nil; - if ($truthy(self.row_count['$!='](self.column_count))) { - $$($nesting, 'Matrix').$Raise($$$($$($nesting, 'Matrix'), 'ErrDimensionMismatch'))}; + if ($neqeq(self.row_count, self.column_count)) { + $$('Matrix').$Raise($$$($$('Matrix'), 'ErrDimensionMismatch')) + }; d = self.pivot_sign; - $send(self.column_count, 'times', [], ($$12 = function(j){var self = $$12.$$s == null ? this : $$12.$$s; + $send(self.column_count, 'times', [], function $$7(j){var self = $$7.$$s == null ? this : $$7.$$s; if (self.lu == null) self.lu = nil; - if (j == null) { - j = nil; - }; - return (d = $rb_times(d, self.lu['$[]'](j)['$[]'](j)));}, $$12.$$s = self, $$12.$$arity = 1, $$12)); + if (j == null) j = nil;; + return (d = $rb_times(d, self.lu['$[]'](j)['$[]'](j)));}, {$$arity: 1, $$s: self}); return d; - }, $LUPDecomposition_det$11.$$arity = 0); + }, 0); self.$alias_method("determinant", "det"); - Opal.def(self, '$solve', $LUPDecomposition_solve$13 = function $$solve(b) { - var $$14, $$15, $$18, $$22, $$24, self = this, nx = nil, m = nil; + $def(self, '$solve', function $$solve(b) { + var self = this, nx = nil, m = nil; if ($truthy(self['$singular?']())) { - $$($nesting, 'Matrix').$Raise($$$($$($nesting, 'Matrix'), 'ErrNotRegular'), "Matrix is singular.")}; - if ($truthy(b['$is_a?']($$($nesting, 'Matrix')))) { + $$('Matrix').$Raise($$$($$('Matrix'), 'ErrNotRegular'), "Matrix is singular.") + }; + if ($truthy(b['$is_a?']($$('Matrix')))) { - if ($truthy(b.$row_count()['$!='](self.row_count))) { - $$($nesting, 'Matrix').$Raise($$$($$($nesting, 'Matrix'), 'ErrDimensionMismatch'))}; + if ($neqeq(b.$row_count(), self.row_count)) { + $$('Matrix').$Raise($$$($$('Matrix'), 'ErrDimensionMismatch')) + }; nx = b.$column_count(); - m = $send(self.pivots, 'map', [], ($$14 = function(row){var self = $$14.$$s == null ? this : $$14.$$s; - + m = $send(self.pivots, 'map', [], function $$8(row){ - if (row == null) { - row = nil; - }; - return b.$row(row).$to_a();}, $$14.$$s = self, $$14.$$arity = 1, $$14)); - $send(self.column_count, 'times', [], ($$15 = function(k){var self = $$15.$$s == null ? this : $$15.$$s, $$16; + if (row == null) row = nil;; + return b.$row(row).$to_a();}, 1); + $send(self.column_count, 'times', [], function $$9(k){var self = $$9.$$s == null ? this : $$9.$$s; if (self.column_count == null) self.column_count = nil; - if (k == null) { - k = nil; - }; - return $send($rb_plus(k, 1), 'upto', [$rb_minus(self.column_count, 1)], ($$16 = function(i){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + if (k == null) k = nil;; + return $send($rb_plus(k, 1), 'upto', [$rb_minus(self.column_count, 1)], function $$10(i){var self = $$10.$$s == null ? this : $$10.$$s; - if (i == null) { - i = nil; - }; - return $send(nx, 'times', [], ($$17 = function(j){var self = $$17.$$s == null ? this : $$17.$$s, $binary_op_recvr_tmp_10 = nil, $writer = nil; + if (i == null) i = nil;; + return $send(nx, 'times', [], function $$11(j){var self = $$11.$$s == null ? this : $$11.$$s, $binary_op_recvr_tmp_10 = nil, $writer = nil; if (self.lu == null) self.lu = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $binary_op_recvr_tmp_10 = m['$[]'](i); $writer = [j, $rb_minus($binary_op_recvr_tmp_10['$[]'](j), $rb_times(m['$[]'](k)['$[]'](j), self.lu['$[]'](i)['$[]'](k)))]; - $send($binary_op_recvr_tmp_10, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$17.$$s = self, $$17.$$arity = 1, $$17));}, $$16.$$s = self, $$16.$$arity = 1, $$16));}, $$15.$$s = self, $$15.$$arity = 1, $$15)); - $send($rb_minus(self.column_count, 1), 'downto', [0], ($$18 = function(k){var self = $$18.$$s == null ? this : $$18.$$s, $$19, $$20; + $send($binary_op_recvr_tmp_10, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + $send($rb_minus(self.column_count, 1), 'downto', [0], function $$12(k){var self = $$12.$$s == null ? this : $$12.$$s; - if (k == null) { - k = nil; - }; - $send(nx, 'times', [], ($$19 = function(j){var self = $$19.$$s == null ? this : $$19.$$s, $writer = nil; + if (k == null) k = nil;; + $send(nx, 'times', [], function $$13(j){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; if (self.lu == null) self.lu = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, m['$[]'](k)['$[]'](j).$quo(self.lu['$[]'](k)['$[]'](k))]; - $send(m['$[]'](k), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$19.$$s = self, $$19.$$arity = 1, $$19)); - return $send(k, 'times', [], ($$20 = function(i){var self = $$20.$$s == null ? this : $$20.$$s, $$21; + $send(m['$[]'](k), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + return $send(k, 'times', [], function $$14(i){var self = $$14.$$s == null ? this : $$14.$$s; - if (i == null) { - i = nil; - }; - return $send(nx, 'times', [], ($$21 = function(j){var self = $$21.$$s == null ? this : $$21.$$s, $binary_op_recvr_tmp_11 = nil, $writer = nil; + if (i == null) i = nil;; + return $send(nx, 'times', [], function $$15(j){var self = $$15.$$s == null ? this : $$15.$$s, $binary_op_recvr_tmp_11 = nil, $writer = nil; if (self.lu == null) self.lu = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $binary_op_recvr_tmp_11 = m['$[]'](i); $writer = [j, $rb_minus($binary_op_recvr_tmp_11['$[]'](j), $rb_times(m['$[]'](k)['$[]'](j), self.lu['$[]'](i)['$[]'](k)))]; - $send($binary_op_recvr_tmp_11, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$21.$$s = self, $$21.$$arity = 1, $$21));}, $$20.$$s = self, $$20.$$arity = 1, $$20));}, $$18.$$s = self, $$18.$$arity = 1, $$18)); - return $$($nesting, 'Matrix').$send("new", m, nx); + $send($binary_op_recvr_tmp_11, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + return $$('Matrix').$send("new", m, nx); } else { b = self.$convert_to_array(b); - if ($truthy(b.$size()['$!='](self.row_count))) { - $$($nesting, 'Matrix').$Raise($$$($$($nesting, 'Matrix'), 'ErrDimensionMismatch'))}; - m = $send(b, 'values_at', Opal.to_a(self.pivots)); - $send(self.column_count, 'times', [], ($$22 = function(k){var self = $$22.$$s == null ? this : $$22.$$s, $$23; + if ($neqeq(b.$size(), self.row_count)) { + $$('Matrix').$Raise($$$($$('Matrix'), 'ErrDimensionMismatch')) + }; + m = $send(b, 'values_at', $to_a(self.pivots)); + $send(self.column_count, 'times', [], function $$16(k){var self = $$16.$$s == null ? this : $$16.$$s; if (self.column_count == null) self.column_count = nil; - if (k == null) { - k = nil; - }; - return $send($rb_plus(k, 1), 'upto', [$rb_minus(self.column_count, 1)], ($$23 = function(i){var self = $$23.$$s == null ? this : $$23.$$s, $writer = nil; + if (k == null) k = nil;; + return $send($rb_plus(k, 1), 'upto', [$rb_minus(self.column_count, 1)], function $$17(i){var self = $$17.$$s == null ? this : $$17.$$s, $writer = nil; if (self.lu == null) self.lu = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, $rb_minus(m['$[]'](i), $rb_times(m['$[]'](k), self.lu['$[]'](i)['$[]'](k)))]; - $send(m, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$23.$$s = self, $$23.$$arity = 1, $$23));}, $$22.$$s = self, $$22.$$arity = 1, $$22)); - $send($rb_minus(self.column_count, 1), 'downto', [0], ($$24 = function(k){var self = $$24.$$s == null ? this : $$24.$$s, $$25, $writer = nil; + $send(m, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + $send($rb_minus(self.column_count, 1), 'downto', [0], function $$18(k){var self = $$18.$$s == null ? this : $$18.$$s, $writer = nil; if (self.lu == null) self.lu = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [k, m['$[]'](k).$quo(self.lu['$[]'](k)['$[]'](k))]; - $send(m, '[]=', Opal.to_a($writer)); + $send(m, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(k, 'times', [], ($$25 = function(i){var self = $$25.$$s == null ? this : $$25.$$s; + return $send(k, 'times', [], function $$19(i){var self = $$19.$$s == null ? this : $$19.$$s; if (self.lu == null) self.lu = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, $rb_minus(m['$[]'](i), $rb_times(m['$[]'](k), self.lu['$[]'](i)['$[]'](k)))]; - $send(m, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$25.$$s = self, $$25.$$arity = 1, $$25));}, $$24.$$s = self, $$24.$$arity = 1, $$24)); - return $$($nesting, 'Vector').$elements(m, false); + $send(m, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + return $$('Vector').$elements(m, false); }; - }, $LUPDecomposition_solve$13.$$arity = 1); - return (Opal.def(self, '$initialize', $LUPDecomposition_initialize$26 = function $$initialize(a) { - var $$27, $$28, self = this, lu_col_j = nil; + }, 1); + return $def(self, '$initialize', function $$initialize(a) { + var self = this, lu_col_j = nil; - if ($truthy(a['$is_a?']($$($nesting, 'Matrix')))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "Expected Matrix but got " + (a.$class())) + if (!$truthy(a['$is_a?']($$('Matrix')))) { + self.$raise($$('TypeError'), "Expected Matrix but got " + (a.$class())) }; self.lu = a.$to_a(); self.row_count = a.$row_count(); self.column_count = a.$column_count(); - self.pivots = $$($nesting, 'Array').$new(self.row_count); - $send(self.row_count, 'times', [], ($$27 = function(i){var self = $$27.$$s == null ? this : $$27.$$s, $writer = nil; + self.pivots = $$('Array').$new(self.row_count); + $send(self.row_count, 'times', [], function $$20(i){var self = $$20.$$s == null ? this : $$20.$$s, $writer = nil; if (self.pivots == null) self.pivots = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, i]; - $send(self.pivots, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$27.$$s = self, $$27.$$arity = 1, $$27)); + $send(self.pivots, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); self.pivot_sign = 1; - lu_col_j = $$($nesting, 'Array').$new(self.row_count); - return $send(self.column_count, 'times', [], ($$28 = function(j){var self = $$28.$$s == null ? this : $$28.$$s, $$29, $$30, $$32, $$33, $$34, p = nil, k = nil, $writer = nil, $ret_or_1 = nil; + lu_col_j = $$('Array').$new(self.row_count); + return $send(self.column_count, 'times', [], function $$21(j){var self = $$21.$$s == null ? this : $$21.$$s, p = nil, k = nil, $writer = nil; if (self.row_count == null) self.row_count = nil; if (self.column_count == null) self.column_count = nil; if (self.pivots == null) self.pivots = nil; @@ -2198,149 +1924,105 @@ Opal.modules["matrix/lup_decomposition"] = function(Opal) { - if (j == null) { - j = nil; - }; - $send(self.row_count, 'times', [], ($$29 = function(i){var self = $$29.$$s == null ? this : $$29.$$s, $writer = nil; + if (j == null) j = nil;; + $send(self.row_count, 'times', [], function $$22(i){var self = $$22.$$s == null ? this : $$22.$$s, $writer = nil; if (self.lu == null) self.lu = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, self.lu['$[]'](i)['$[]'](j)]; - $send(lu_col_j, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$29.$$s = self, $$29.$$arity = 1, $$29)); - $send(self.row_count, 'times', [], ($$30 = function(i){var self = $$30.$$s == null ? this : $$30.$$s, $$31, lu_row_i = nil, kmax = nil, s = nil, $writer = nil; + $send(lu_col_j, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + $send(self.row_count, 'times', [], function $$23(i){var self = $$23.$$s == null ? this : $$23.$$s, lu_row_i = nil, kmax = nil, s = nil, $writer = nil; if (self.lu == null) self.lu = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; lu_row_i = self.lu['$[]'](i); kmax = [i, j].$min(); s = 0; - $send(kmax, 'times', [], ($$31 = function(k){var self = $$31.$$s == null ? this : $$31.$$s; - + $send(kmax, 'times', [], function $$24(k){ - if (k == null) { - k = nil; - }; - return (s = $rb_plus(s, $rb_times(lu_row_i['$[]'](k), lu_col_j['$[]'](k))));}, $$31.$$s = self, $$31.$$arity = 1, $$31)); + if (k == null) k = nil;; + return (s = $rb_plus(s, $rb_times(lu_row_i['$[]'](k), lu_col_j['$[]'](k))));}, 1); - $writer = [j, (($writer = [i, $rb_minus(lu_col_j['$[]'](i), s)]), $send(lu_col_j, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; - $send(lu_row_i, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$30.$$s = self, $$30.$$arity = 1, $$30)); + $writer = [j, (($writer = [i, $rb_minus(lu_col_j['$[]'](i), s)]), $send(lu_col_j, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; + $send(lu_row_i, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); p = j; - $send($rb_plus(j, 1), 'upto', [$rb_minus(self.row_count, 1)], ($$32 = function(i){var self = $$32.$$s == null ? this : $$32.$$s; - + $send($rb_plus(j, 1), 'upto', [$rb_minus(self.row_count, 1)], function $$25(i){ - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; if ($truthy($rb_gt(lu_col_j['$[]'](i).$abs(), lu_col_j['$[]'](p).$abs()))) { return (p = i) } else { return nil - };}, $$32.$$s = self, $$32.$$arity = 1, $$32)); - if ($truthy(p['$!='](j))) { + };}, 1); + if ($neqeq(p, j)) { - $send(self.column_count, 'times', [], ($$33 = function(k){var self = $$33.$$s == null ? this : $$33.$$s, t = nil, $writer = nil; + $send(self.column_count, 'times', [], function $$26(k){var self = $$26.$$s == null ? this : $$26.$$s, t = nil, $writer = nil; if (self.lu == null) self.lu = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; t = self.lu['$[]'](p)['$[]'](k); $writer = [k, self.lu['$[]'](j)['$[]'](k)]; - $send(self.lu['$[]'](p), '[]=', Opal.to_a($writer)); + $send(self.lu['$[]'](p), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [k, t]; - $send(self.lu['$[]'](j), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$33.$$s = self, $$33.$$arity = 1, $$33)); + $send(self.lu['$[]'](j), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); k = self.pivots['$[]'](p); $writer = [p, self.pivots['$[]'](j)]; - $send(self.pivots, '[]=', Opal.to_a($writer)); + $send(self.pivots, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [j, k]; - $send(self.pivots, '[]=', Opal.to_a($writer)); + $send(self.pivots, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.pivot_sign = self.pivot_sign['$-@']();}; - if ($truthy((function() {if ($truthy(($ret_or_1 = $rb_lt(j, self.row_count)))) { - return self.lu['$[]'](j)['$[]'](j)['$!='](0) - } else { - return $ret_or_1 - }; return nil; })())) { - return $send($rb_plus(j, 1), 'upto', [$rb_minus(self.row_count, 1)], ($$34 = function(i){var self = $$34.$$s == null ? this : $$34.$$s; + self.pivot_sign = self.pivot_sign['$-@'](); + }; + if (($truthy($rb_lt(j, self.row_count)) && ($neqeq(self.lu['$[]'](j)['$[]'](j), 0)))) { + return $send($rb_plus(j, 1), 'upto', [$rb_minus(self.row_count, 1)], function $$27(i){var self = $$27.$$s == null ? this : $$27.$$s; if (self.lu == null) self.lu = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [j, self.lu['$[]'](i)['$[]'](j).$quo(self.lu['$[]'](j)['$[]'](j))]; - $send(self.lu['$[]'](i), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$34.$$s = self, $$34.$$arity = 1, $$34)) + $send(self.lu['$[]'](i), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}) } else { return nil - };}, $$28.$$s = self, $$28.$$arity = 1, $$28)); - }, $LUPDecomposition_initialize$26.$$arity = 1), nil) && 'initialize'; + };}, {$$arity: 1, $$s: self}); + }, 1); })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["matrix"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $alias = Opal.alias, $hash2 = Opal.hash2; - - Opal.add_stubs(['$require', '$extend', '$def_e2message', '$def_exception', '$include', '$autoload', '$private_class_method', '$attr_reader', '$protected', '$rows', '$convert_to_array', '$map!', '$size', '$[]', '$each', '$==', '$raise', '$new', '$transpose', '$coerce_to_int', '$<', '$to_enum', '$empty', '$[]=', '$-', '$diagonal', '$scalar', '$!=', '$*', '$coerce_to_matrix', '$map', '$send', '$to_proc', '$column_count', '$concat', '$row_count', '$each_with_index', '$+', '$empty?', '$method', '$first', '$Raise', '$combine', '$class', '$private', '$fetch', '$alias_method', '$elements', '$>=', '$-@', '$times', '$collect', '$new_matrix', '$===', '$upto', '$min', '$inspect', '$freeze', '$>', '$include?', '$last', '$pop', '$end', '$exclude_end?', '$<=', '$to_a', '$delete_at', '$square?', '$determinant', '$first_minor', '$**', '$build', '$cofactor', '$!', '$inject', '$with_index', '$all?', '$conj', '$singular?', '$eql?', '$hash', '$column_vector', '$column', '$apply_through_coercion', '$/', '$inverse', '$I', '$abs', '$quo', '$identity', '$loop', '$zero?', '$>>', '$eigensystem', '$+@', '$determinant_bareiss', '$find', '$warn', '$hstack', '$rank', '$round', '$vstack', '$real', '$imag', '$row', '$join', '$to_s', '$dup', '$to_ary', '$message', '$is_a?', '$coerce', '$length', '$public_send', '$kind_of?', '$respond_to?', '$__send__', '$coerce_to', '$count', '$independent?', '$collect2', '$each2', '$basis', '$laplace_expansion', '$sqrt', '$abs2', '$magnitude', '$acos', '$inner_product', '$row_vector']); +Opal.modules["matrix"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $defs = Opal.defs, $send = Opal.send, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $rb_lt = Opal.rb_lt, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $alias = Opal.alias, $neqeq = Opal.neqeq, $rb_times = Opal.rb_times, $rb_plus = Opal.rb_plus, $def = Opal.def, $rb_ge = Opal.rb_ge, $eqeqeq = Opal.eqeqeq, $const_set = Opal.const_set, $hash2 = Opal.hash2, $rb_gt = Opal.rb_gt, $to_ary = Opal.to_ary, $rb_le = Opal.rb_le, $not = Opal.not, $rb_divide = Opal.rb_divide; + + Opal.add_stubs('require,extend,def_e2message,def_exception,include,autoload,private_class_method,attr_reader,protected,rows,convert_to_array,map!,size,[],each,==,raise,new,transpose,coerce_to_int,<,to_enum,empty,[]=,-,diagonal,scalar,!=,*,coerce_to_matrix,map,send,to_proc,column_count,concat,row_count,each_with_index,+,empty?,method,first,Raise,combine,class,private,fetch,alias_method,elements,-@,>=,times,collect,new_matrix,===,upto,min,inspect,freeze,>,include?,last,pop,end,exclude_end?,<=,to_a,delete_at,square?,determinant,first_minor,**,build,cofactor,!,inject,with_index,all?,conj,singular?,eql?,hash,column_vector,column,apply_through_coercion,/,inverse,I,abs,quo,identity,loop,zero?,>>,eigensystem,+@,determinant_bareiss,find,warn,hstack,rank,round,vstack,real,imag,row,join,to_s,dup,to_ary,message,is_a?,coerce,length,public_send,kind_of?,respond_to?,__send__,coerce_to,count,independent?,collect2,each2,basis,laplace_expansion,sqrt,abs2,magnitude,acos,inner_product,row_vector'); self.$require("e2mmap.rb"); (function($base, $parent_nesting) { var self = $module($base, 'ExceptionForMatrix'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - self.$extend($$($nesting, 'Exception2MessageMapper')); - self.$def_e2message($$($nesting, 'TypeError'), "wrong argument type %s (expected %s)"); - self.$def_e2message($$($nesting, 'ArgumentError'), "Wrong # of arguments(%d for %d)"); + self.$extend($$('Exception2MessageMapper')); + self.$def_e2message($$('TypeError'), "wrong argument type %s (expected %s)"); + self.$def_e2message($$('ArgumentError'), "Wrong # of arguments(%d for %d)"); self.$def_exception("ErrDimensionMismatch", "\#{self.name} dimension mismatch"); self.$def_exception("ErrNotRegular", "Not Regular Matrix"); self.$def_exception("ErrOperationNotDefined", "Operation(%s) can\\'t be defined: %s op %s"); @@ -2349,1003 +2031,780 @@ Opal.modules["matrix"] = function(Opal) { (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Matrix'); - var $nesting = [self].concat($parent_nesting), $Matrix_$$$1, $Matrix_rows$2, $Matrix_columns$5, $Matrix_build$6, $Matrix_diagonal$9, $Matrix_scalar$11, $Matrix_identity$12, $Matrix_zero$13, $Matrix_row_vector$15, $Matrix_column_vector$16, $Matrix_empty$17, $Matrix_vstack$18, $Matrix_hstack$20, $Matrix_combine$23, $Matrix_combine$28, $Matrix_initialize$29, $Matrix_new_matrix$30, $Matrix_$$$31, $Matrix_$$$eq$33, $Matrix_row_count$34, $Matrix_row$35, $Matrix_column$38, $Matrix_collect$41, $Matrix_each$43, $Matrix_each_with_index$57, $Matrix_index$72, $Matrix_minor$75, $Matrix_first_minor$77, $Matrix_cofactor$79, $Matrix_adjugate$80, $Matrix_laplace_expansion$82, $Matrix_diagonal$ques$84, $Matrix_empty$ques$85, $Matrix_hermitian$ques$86, $Matrix_lower_triangular$ques$88, $Matrix_normal$ques$89, $Matrix_orthogonal$ques$93, $Matrix_permutation$ques$97, $Matrix_real$ques$100, $Matrix_regular$ques$101, $Matrix_singular$ques$102, $Matrix_square$ques$103, $Matrix_symmetric$ques$104, $Matrix_antisymmetric$ques$106, $Matrix_unitary$ques$108, $Matrix_upper_triangular$ques$112, $Matrix_zero$ques$113, $Matrix_$eq_eq$114, $Matrix_eql$ques$115, $Matrix_clone$116, $Matrix_hash$117, $Matrix_$$118, $Matrix_$plus$124, $Matrix_$minus$127, $Matrix_$slash$130, $Matrix_hadamard_product$133, $Matrix_inverse$135, $Matrix_inverse_from$136, $Matrix_$$$144, $Matrix_$plus$$147, $Matrix_$minus$$148, $Matrix_determinant$150, $Matrix_determinant_bareiss$151, $Matrix_determinant_e$157, $Matrix_hstack$158, $Matrix_rank$159, $Matrix_rank_e$164, $Matrix_round$165, $Matrix_trace$167, $Matrix_transpose$169, $Matrix_vstack$170, $Matrix_eigensystem$171, $Matrix_lup$172, $Matrix_conjugate$173, $Matrix_imaginary$174, $Matrix_real$175, $Matrix_rect$176, $Matrix_coerce$177, $Matrix_row_vectors$178, $Matrix_column_vectors$180, $Matrix_to_matrix$182, $Matrix_to_a$183, $Matrix_elements_to_f$184, $Matrix_elements_to_i$185, $Matrix_elements_to_r$186, $Matrix_to_s$187, $Matrix_inspect$190; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.rows = nil; + $proto.rows = nil; - self.$include($$($nesting, 'Enumerable')); - self.$include($$($nesting, 'ExceptionForMatrix')); + self.$include($$('Enumerable')); + self.$include($$('ExceptionForMatrix')); self.$autoload("EigenvalueDecomposition", "matrix/eigenvalue_decomposition"); self.$autoload("LUPDecomposition", "matrix/lup_decomposition"); self.$private_class_method("new"); self.$attr_reader("rows"); self.$protected("rows"); - Opal.defs($$($nesting, 'Matrix'), '$[]', $Matrix_$$$1 = function($a) { + $defs($$('Matrix'), '$[]', function $Matrix_$$$1($a) { var $post_args, rows, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); rows = $post_args;; return self.$rows(rows, false); - }, $Matrix_$$$1.$$arity = -1); - Opal.defs($$($nesting, 'Matrix'), '$rows', $Matrix_rows$2 = function $$rows(rows, copy) { - var $$3, $$4, self = this, size = nil, $ret_or_1 = nil; + }, -1); + $defs($$('Matrix'), '$rows', function $$rows(rows, copy) { + var self = this, size = nil, $ret_or_1 = nil; - if (copy == null) { - copy = true; - }; + if (copy == null) copy = true;; rows = self.$convert_to_array(rows, copy); - $send(rows, 'map!', [], ($$3 = function(row){var self = $$3.$$s == null ? this : $$3.$$s; + $send(rows, 'map!', [], function $$2(row){var self = $$2.$$s == null ? this : $$2.$$s; - if (row == null) { - row = nil; - }; - return self.$convert_to_array(row, copy);}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - size = (function() {if ($truthy(($ret_or_1 = rows['$[]'](0)))) { - return $ret_or_1 - } else { - return [] - }; return nil; })().$size(); - $send(rows, 'each', [], ($$4 = function(row){var self = $$4.$$s == null ? this : $$4.$$s; + if (row == null) row = nil;; + return self.$convert_to_array(row, copy);}, {$$arity: 1, $$s: self}); + size = ($truthy(($ret_or_1 = rows['$[]'](0))) ? ($ret_or_1) : ([])).$size(); + $send(rows, 'each', [], function $$3(row){var self = $$3.$$s == null ? this : $$3.$$s; - if (row == null) { - row = nil; - }; - if (row.$size()['$=='](size)) { + if (row == null) row = nil;; + if ($eqeq(row.$size(), size)) { return nil } else { - return self.$raise($$($nesting, 'ErrDimensionMismatch'), "" + "row size differs (" + (row.$size()) + " should be " + (size) + ")") - };}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + return self.$raise($$('ErrDimensionMismatch'), "row size differs (" + (row.$size()) + " should be " + (size) + ")") + };}, {$$arity: 1, $$s: self}); return self.$new(rows, size); - }, $Matrix_rows$2.$$arity = -2); - Opal.defs($$($nesting, 'Matrix'), '$columns', $Matrix_columns$5 = function $$columns(columns) { + }, -2); + $defs($$('Matrix'), '$columns', function $$columns(columns) { var self = this; return self.$rows(columns, false).$transpose() - }, $Matrix_columns$5.$$arity = 1); - Opal.defs($$($nesting, 'Matrix'), '$build', $Matrix_build$6 = function $$build(row_count, column_count) { - var $$7, $iter = $Matrix_build$6.$$p, $yield = $iter || nil, self = this, $ret_or_2 = nil, rows = nil; + }, 1); + $defs($$('Matrix'), '$build', function $$build(row_count, column_count) { + var $yield = $$build.$$p || nil, self = this, rows = nil; - if ($iter) $Matrix_build$6.$$p = null; + delete $$build.$$p; - if (column_count == null) { - column_count = row_count; + if (column_count == null) column_count = row_count;; + row_count = $$('CoercionHelper').$coerce_to_int(row_count); + column_count = $$('CoercionHelper').$coerce_to_int(column_count); + if (($truthy($rb_lt(row_count, 0)) || ($truthy($rb_lt(column_count, 0))))) { + self.$raise($$('ArgumentError')) }; - row_count = $$($nesting, 'CoercionHelper').$coerce_to_int(row_count); - column_count = $$($nesting, 'CoercionHelper').$coerce_to_int(column_count); - if ($truthy((function() {if ($truthy(($ret_or_2 = $rb_lt(row_count, 0)))) { - return $ret_or_2 - } else { - return $rb_lt(column_count, 0) - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'))}; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$to_enum("build", row_count, column_count) }; - rows = $send($$($nesting, 'Array'), 'new', [row_count], ($$7 = function(i){var self = $$7.$$s == null ? this : $$7.$$s, $$8; - + rows = $send($$('Array'), 'new', [row_count], function $$4(i){ - if (i == null) { - i = nil; - }; - return $send($$($nesting, 'Array'), 'new', [column_count], ($$8 = function(j){var self = $$8.$$s == null ? this : $$8.$$s; - + if (i == null) i = nil;; + return $send($$('Array'), 'new', [column_count], function $$5(j){ - if (j == null) { - j = nil; - }; - return Opal.yieldX($yield, [i, j]);;}, $$8.$$s = self, $$8.$$arity = 1, $$8));}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + if (j == null) j = nil;; + return Opal.yieldX($yield, [i, j]);;}, 1);}, 1); return self.$new(rows, column_count); - }, $Matrix_build$6.$$arity = -2); - Opal.defs($$($nesting, 'Matrix'), '$diagonal', $Matrix_diagonal$9 = function $$diagonal($a) { - var $post_args, values, $$10, self = this, size = nil, rows = nil; + }, -2); + $defs($$('Matrix'), '$diagonal', function $$diagonal($a) { + var $post_args, values, self = this, size = nil, rows = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); values = $post_args;; size = values.$size(); - if (size['$=='](0)) { - return $$($nesting, 'Matrix').$empty()}; - rows = $send($$($nesting, 'Array'), 'new', [size], ($$10 = function(j){var self = $$10.$$s == null ? this : $$10.$$s, row = nil, $writer = nil; + if ($eqeq(size, 0)) { + return $$('Matrix').$empty() + }; + rows = $send($$('Array'), 'new', [size], function $$6(j){var row = nil, $writer = nil; - if (j == null) { - j = nil; - }; - row = $$($nesting, 'Array').$new(size, 0); + if (j == null) j = nil;; + row = $$('Array').$new(size, 0); $writer = [j, values['$[]'](j)]; - $send(row, '[]=', Opal.to_a($writer)); + $send(row, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return row;}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + return row;}, 1); return self.$new(rows); - }, $Matrix_diagonal$9.$$arity = -1); - Opal.defs($$($nesting, 'Matrix'), '$scalar', $Matrix_scalar$11 = function $$scalar(n, value) { + }, -1); + $defs($$('Matrix'), '$scalar', function $$scalar(n, value) { var self = this; - return $send(self, 'diagonal', Opal.to_a($$($nesting, 'Array').$new(n, value))) - }, $Matrix_scalar$11.$$arity = 2); - Opal.defs($$($nesting, 'Matrix'), '$identity', $Matrix_identity$12 = function $$identity(n) { + return $send(self, 'diagonal', $to_a($$('Array').$new(n, value))) + }, 2); + $defs($$('Matrix'), '$identity', function $$identity(n) { var self = this; return self.$scalar(n, 1) - }, $Matrix_identity$12.$$arity = 1); + }, 1); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + $alias(self, "unit", "identity"); return $alias(self, "I", "identity"); - })(Opal.get_singleton_class($$($nesting, 'Matrix')), $nesting); - Opal.defs($$($nesting, 'Matrix'), '$zero', $Matrix_zero$13 = function $$zero(row_count, column_count) { - var $$14, self = this, rows = nil; + })(Opal.get_singleton_class($$('Matrix')), $nesting); + $defs($$('Matrix'), '$zero', function $$zero(row_count, column_count) { + var self = this, rows = nil; - if (column_count == null) { - column_count = row_count; - }; - rows = $send($$($nesting, 'Array'), 'new', [row_count], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s; - - return $$($nesting, 'Array').$new(column_count, 0)}, $$14.$$s = self, $$14.$$arity = 0, $$14)); + if (column_count == null) column_count = row_count;; + rows = $send($$('Array'), 'new', [row_count], function $$7(){ + return $$('Array').$new(column_count, 0)}, 0); return self.$new(rows, column_count); - }, $Matrix_zero$13.$$arity = -2); - Opal.defs($$($nesting, 'Matrix'), '$row_vector', $Matrix_row_vector$15 = function $$row_vector(row) { + }, -2); + $defs($$('Matrix'), '$row_vector', function $$row_vector(row) { var self = this; row = self.$convert_to_array(row); return self.$new([row]); - }, $Matrix_row_vector$15.$$arity = 1); - Opal.defs($$($nesting, 'Matrix'), '$column_vector', $Matrix_column_vector$16 = function $$column_vector(column) { + }, 1); + $defs($$('Matrix'), '$column_vector', function $$column_vector(column) { var self = this; column = self.$convert_to_array(column); return self.$new([column].$transpose(), 1); - }, $Matrix_column_vector$16.$$arity = 1); - Opal.defs($$($nesting, 'Matrix'), '$empty', $Matrix_empty$17 = function $$empty(row_count, column_count) { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil; + }, 1); + $defs($$('Matrix'), '$empty', function $$empty(row_count, column_count) { + var self = this; - if (row_count == null) { - row_count = 0; - }; + if (row_count == null) row_count = 0;; - if (column_count == null) { - column_count = 0; + if (column_count == null) column_count = 0;; + if (($neqeq(column_count, 0) && ($neqeq(row_count, 0)))) { + self.$raise($$('ArgumentError'), "One size must be 0") + }; + if (($truthy($rb_lt(column_count, 0)) || ($truthy($rb_lt(row_count, 0))))) { + self.$raise($$('ArgumentError'), "Negative size") }; - if ($truthy((function() {if ($truthy(($ret_or_3 = column_count['$!='](0)))) { - return row_count['$!='](0) - } else { - return $ret_or_3 - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'), "One size must be 0")}; - if ($truthy((function() {if ($truthy(($ret_or_4 = $rb_lt(column_count, 0)))) { - return $ret_or_4 - } else { - return $rb_lt(row_count, 0) - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'), "Negative size")}; return self.$new($rb_times([[]], row_count), column_count); - }, $Matrix_empty$17.$$arity = -1); - Opal.defs($$($nesting, 'Matrix'), '$vstack', $Matrix_vstack$18 = function $$vstack(x, $a) { - var $post_args, matrices, $$19, self = this, result = nil; + }, -1); + $defs($$('Matrix'), '$vstack', function $$vstack(x, $a) { + var $post_args, matrices, self = this, result = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); matrices = $post_args;; - x = $$($nesting, 'CoercionHelper').$coerce_to_matrix(x); + x = $$('CoercionHelper').$coerce_to_matrix(x); result = $send(x.$send("rows"), 'map', [], "dup".$to_proc()); - $send(matrices, 'each', [], ($$19 = function(m){var self = $$19.$$s == null ? this : $$19.$$s; + $send(matrices, 'each', [], function $$8(m){var self = $$8.$$s == null ? this : $$8.$$s; - if (m == null) { - m = nil; + if (m == null) m = nil;; + m = $$('CoercionHelper').$coerce_to_matrix(m); + if ($neqeq(m.$column_count(), x.$column_count())) { + self.$raise($$('ErrDimensionMismatch'), "The given matrices must have " + (x.$column_count()) + " columns, but one has " + (m.$column_count())) }; - m = $$($nesting, 'CoercionHelper').$coerce_to_matrix(m); - if ($truthy(m.$column_count()['$!='](x.$column_count()))) { - self.$raise($$($nesting, 'ErrDimensionMismatch'), "" + "The given matrices must have " + (x.$column_count()) + " columns, but one has " + (m.$column_count()))}; - return result.$concat(m.$send("rows"));}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + return result.$concat(m.$send("rows"));}, {$$arity: 1, $$s: self}); return self.$new(result, x.$column_count()); - }, $Matrix_vstack$18.$$arity = -2); - Opal.defs($$($nesting, 'Matrix'), '$hstack', $Matrix_hstack$20 = function $$hstack(x, $a) { - var $post_args, matrices, $$21, self = this, result = nil, total_column_count = nil; + }, -2); + $defs($$('Matrix'), '$hstack', function $$hstack(x, $a) { + var $post_args, matrices, self = this, result = nil, total_column_count = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); matrices = $post_args;; - x = $$($nesting, 'CoercionHelper').$coerce_to_matrix(x); + x = $$('CoercionHelper').$coerce_to_matrix(x); result = $send(x.$send("rows"), 'map', [], "dup".$to_proc()); total_column_count = x.$column_count(); - $send(matrices, 'each', [], ($$21 = function(m){var self = $$21.$$s == null ? this : $$21.$$s, $$22; + $send(matrices, 'each', [], function $$9(m){var self = $$9.$$s == null ? this : $$9.$$s; - if (m == null) { - m = nil; + if (m == null) m = nil;; + m = $$('CoercionHelper').$coerce_to_matrix(m); + if ($neqeq(m.$row_count(), x.$row_count())) { + self.$raise($$('ErrDimensionMismatch'), "The given matrices must have " + (x.$row_count()) + " rows, but one has " + (m.$row_count())) }; - m = $$($nesting, 'CoercionHelper').$coerce_to_matrix(m); - if ($truthy(m.$row_count()['$!='](x.$row_count()))) { - self.$raise($$($nesting, 'ErrDimensionMismatch'), "" + "The given matrices must have " + (x.$row_count()) + " rows, but one has " + (m.$row_count()))}; - $send(result, 'each_with_index', [], ($$22 = function(row, i){var self = $$22.$$s == null ? this : $$22.$$s; - + $send(result, 'each_with_index', [], function $$10(row, i){ - if (row == null) { - row = nil; - }; + if (row == null) row = nil;; - if (i == null) { - i = nil; - }; - return row.$concat(m.$send("rows")['$[]'](i));}, $$22.$$s = self, $$22.$$arity = 2, $$22)); - return (total_column_count = $rb_plus(total_column_count, m.$column_count()));}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + if (i == null) i = nil;; + return row.$concat(m.$send("rows")['$[]'](i));}, 2); + return (total_column_count = $rb_plus(total_column_count, m.$column_count()));}, {$$arity: 1, $$s: self}); return self.$new(result, total_column_count); - }, $Matrix_hstack$20.$$arity = -2); - Opal.defs($$($nesting, 'Matrix'), '$combine', $Matrix_combine$23 = function $$combine($a) { - var $post_args, matrices, $$24, $$25, $iter = $Matrix_combine$23.$$p, $yield = $iter || nil, self = this, x = nil, rows = nil; + }, -2); + $defs($$('Matrix'), '$combine', function $$combine($a) { + var $post_args, matrices, $yield = $$combine.$$p || nil, self = this, x = nil, rows = nil; - if ($iter) $Matrix_combine$23.$$p = null; + delete $$combine.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); matrices = $post_args;; - if (($yield !== nil)) { - } else { - return $send(self, 'to_enum', ["combine"].concat(Opal.to_a(matrices))) + if (!($yield !== nil)) { + return $send(self, 'to_enum', ["combine"].concat($to_a(matrices))) }; if ($truthy(matrices['$empty?']())) { - return $$($nesting, 'Matrix').$empty()}; - $send(matrices, 'map!', [], $$($nesting, 'CoercionHelper').$method("coerce_to_matrix").$to_proc()); + return $$('Matrix').$empty() + }; + $send(matrices, 'map!', [], $$('CoercionHelper').$method("coerce_to_matrix").$to_proc()); x = matrices.$first(); - $send(matrices, 'each', [], ($$24 = function(m){var self = $$24.$$s == null ? this : $$24.$$s, $ret_or_5 = nil; - + $send(matrices, 'each', [], function $$11(m){ - if (m == null) { - m = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_5 = x.$row_count()['$=='](m.$row_count())))) { - return x.$column_count()['$=='](m.$column_count()) - } else { - return $ret_or_5 - }; return nil; })())) { + if (m == null) m = nil;; + if (($eqeq(x.$row_count(), m.$row_count()) && ($eqeq(x.$column_count(), m.$column_count())))) { return nil } else { - return $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) - };}, $$24.$$s = self, $$24.$$arity = 1, $$24)); - rows = $send($$($nesting, 'Array'), 'new', [x.$row_count()], ($$25 = function(i){var self = $$25.$$s == null ? this : $$25.$$s, $$26; - + return $$('Matrix').$Raise($$('ErrDimensionMismatch')) + };}, 1); + rows = $send($$('Array'), 'new', [x.$row_count()], function $$12(i){ - if (i == null) { - i = nil; - }; - return $send($$($nesting, 'Array'), 'new', [x.$column_count()], ($$26 = function(j){var self = $$26.$$s == null ? this : $$26.$$s, $$27; - + if (i == null) i = nil;; + return $send($$('Array'), 'new', [x.$column_count()], function $$13(j){ - if (j == null) { - j = nil; - }; - return Opal.yield1($yield, $send(matrices, 'map', [], ($$27 = function(m){var self = $$27.$$s == null ? this : $$27.$$s; - + if (j == null) j = nil;; + return Opal.yield1($yield, $send(matrices, 'map', [], function $$14(m){ - if (m == null) { - m = nil; - }; - return m['$[]'](i, j);}, $$27.$$s = self, $$27.$$arity = 1, $$27)));;}, $$26.$$s = self, $$26.$$arity = 1, $$26));}, $$25.$$s = self, $$25.$$arity = 1, $$25)); + if (m == null) m = nil;; + return m['$[]'](i, j);}, 1));;}, 1);}, 1); return self.$new(rows, x.$column_count()); - }, $Matrix_combine$23.$$arity = -1); + }, -1); - Opal.def(self, '$combine', $Matrix_combine$28 = function $$combine($a) { - var $iter = $Matrix_combine$28.$$p, block = $iter || nil, $post_args, matrices, self = this; + $def(self, '$combine', function $$combine($a) { + var block = $$combine.$$p || nil, $post_args, matrices, self = this; - if ($iter) $Matrix_combine$28.$$p = null; - + delete $$combine.$$p; - if ($iter) $Matrix_combine$28.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); matrices = $post_args;; - return $send($$($nesting, 'Matrix'), 'combine', [self].concat(Opal.to_a(matrices)), block.$to_proc()); - }, $Matrix_combine$28.$$arity = -1); + return $send($$('Matrix'), 'combine', [self].concat($to_a(matrices)), block.$to_proc()); + }, -1); - Opal.def(self, '$initialize', $Matrix_initialize$29 = function $$initialize(rows, column_count) { + $def(self, '$initialize', function $$initialize(rows, column_count) { var self = this; - if (column_count == null) { - column_count = rows['$[]'](0).$size(); - }; + if (column_count == null) column_count = rows['$[]'](0).$size();; self.rows = rows; return (self.column_count = column_count); - }, $Matrix_initialize$29.$$arity = -2); + }, -2); - Opal.def(self, '$new_matrix', $Matrix_new_matrix$30 = function $$new_matrix(rows, column_count) { + $def(self, '$new_matrix', function $$new_matrix(rows, column_count) { var self = this; - if (column_count == null) { - column_count = rows['$[]'](0).$size(); - }; + if (column_count == null) column_count = rows['$[]'](0).$size();; return self.$class().$send("new", rows, column_count); - }, $Matrix_new_matrix$30.$$arity = -2); + }, -2); self.$private("new_matrix"); - Opal.def(self, '$[]', $Matrix_$$$31 = function(i, j) {try { + $def(self, '$[]', function $Matrix_$$$15(i, j) {try { - var $$32, self = this; - - return $send(self.rows, 'fetch', [i], ($$32 = function(){var self = $$32.$$s == null ? this : $$32.$$s; + var self = this; - Opal.ret(nil)}, $$32.$$s = self, $$32.$$arity = 0, $$32))['$[]'](j) + return $send(self.rows, 'fetch', [i], function $$16(){ + Opal.ret(nil)}, 0)['$[]'](j) } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_$$$31.$$arity = 2); + }, 2); $alias(self, "element", "[]"); $alias(self, "component", "[]"); - Opal.def(self, '$[]=', $Matrix_$$$eq$33 = function(i, j, v) { + $def(self, '$[]=', function $Matrix_$$$eq$17(i, j, v) { var self = this, $writer = nil; $writer = [j, v]; - $send(self.rows['$[]'](i), '[]=', Opal.to_a($writer)); + $send(self.rows['$[]'](i), '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Matrix_$$$eq$33.$$arity = 3); + }, 3); $alias(self, "set_element", "[]="); $alias(self, "set_component", "[]="); self.$private("[]=", "set_element", "set_component"); - Opal.def(self, '$row_count', $Matrix_row_count$34 = function $$row_count() { + $def(self, '$row_count', function $$row_count() { var self = this; return self.rows.$size() - }, $Matrix_row_count$34.$$arity = 0); + }, 0); self.$alias_method("row_size", "row_count"); self.$attr_reader("column_count"); self.$alias_method("column_size", "column_count"); - Opal.def(self, '$row', $Matrix_row$35 = function $$row(i) {try { + $def(self, '$row', function $$row(i) {try { - var $iter = $Matrix_row$35.$$p, block = $iter || nil, $$36, $$37, self = this; + var block = $$row.$$p || nil, self = this; - if ($iter) $Matrix_row$35.$$p = null; + delete $$row.$$p; - - if ($iter) $Matrix_row$35.$$p = null;; + ; if ((block !== nil)) { - $send($send(self.rows, 'fetch', [i], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s; + $send($send(self.rows, 'fetch', [i], function $$18(){var self = $$18.$$s == null ? this : $$18.$$s; - Opal.ret(self)}, $$36.$$s = self, $$36.$$arity = 0, $$36)), 'each', [], block.$to_proc()); + Opal.ret(self)}, {$$arity: 0, $$s: self}), 'each', [], block.$to_proc()); return self; } else { - return $$($nesting, 'Vector').$elements($send(self.rows, 'fetch', [i], ($$37 = function(){var self = $$37.$$s == null ? this : $$37.$$s; - - Opal.ret(nil)}, $$37.$$s = self, $$37.$$arity = 0, $$37))) + return $$('Vector').$elements($send(self.rows, 'fetch', [i], function $$19(){ + Opal.ret(nil)}, 0)) }; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_row$35.$$arity = 1); + }, 1); - Opal.def(self, '$column', $Matrix_column$38 = function $$column(j) { - var $$39, $$40, $iter = $Matrix_column$38.$$p, $yield = $iter || nil, self = this, $ret_or_6 = nil, $ret_or_7 = nil, col = nil; + $def(self, '$column', function $$column(j) { + var $yield = $$column.$$p || nil, self = this, col = nil; - if ($iter) $Matrix_column$38.$$p = null; + delete $$column.$$p; if (($yield !== nil)) { - if ($truthy((function() {if ($truthy(($ret_or_6 = $rb_ge(j, self.$column_count())))) { - return $ret_or_6 - } else { - return $rb_lt(j, self.$column_count()['$-@']()) - }; return nil; })())) { - return self}; - $send(self.$row_count(), 'times', [], ($$39 = function(i){var self = $$39.$$s == null ? this : $$39.$$s; + if (($truthy($rb_ge(j, self.$column_count())) || ($truthy($rb_lt(j, self.$column_count()['$-@']()))))) { + return self + }; + $send(self.$row_count(), 'times', [], function $$20(i){var self = $$20.$$s == null ? this : $$20.$$s; if (self.rows == null) self.rows = nil; - if (i == null) { - i = nil; - }; - return Opal.yield1($yield, self.rows['$[]'](i)['$[]'](j));;}, $$39.$$s = self, $$39.$$arity = 1, $$39)); + if (i == null) i = nil;; + return Opal.yield1($yield, self.rows['$[]'](i)['$[]'](j));;}, {$$arity: 1, $$s: self}); return self; } else { - if ($truthy((function() {if ($truthy(($ret_or_7 = $rb_ge(j, self.$column_count())))) { - return $ret_or_7 - } else { - return $rb_lt(j, self.$column_count()['$-@']()) - }; return nil; })())) { - return nil}; - col = $send($$($nesting, 'Array'), 'new', [self.$row_count()], ($$40 = function(i){var self = $$40.$$s == null ? this : $$40.$$s; + if (($truthy($rb_ge(j, self.$column_count())) || ($truthy($rb_lt(j, self.$column_count()['$-@']()))))) { + return nil + }; + col = $send($$('Array'), 'new', [self.$row_count()], function $$21(i){var self = $$21.$$s == null ? this : $$21.$$s; if (self.rows == null) self.rows = nil; - if (i == null) { - i = nil; - }; - return self.rows['$[]'](i)['$[]'](j);}, $$40.$$s = self, $$40.$$arity = 1, $$40)); - return $$($nesting, 'Vector').$elements(col, false); + if (i == null) i = nil;; + return self.rows['$[]'](i)['$[]'](j);}, {$$arity: 1, $$s: self}); + return $$('Vector').$elements(col, false); } - }, $Matrix_column$38.$$arity = 1); + }, 1); - Opal.def(self, '$collect', $Matrix_collect$41 = function $$collect() { - var $iter = $Matrix_collect$41.$$p, block = $iter || nil, $$42, self = this, rows = nil; + $def(self, '$collect', function $$collect() { + var block = $$collect.$$p || nil, self = this, rows = nil; - if ($iter) $Matrix_collect$41.$$p = null; - + delete $$collect.$$p; - if ($iter) $Matrix_collect$41.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$to_enum("collect") }; - rows = $send(self.rows, 'collect', [], ($$42 = function(row){var self = $$42.$$s == null ? this : $$42.$$s; - + rows = $send(self.rows, 'collect', [], function $$22(row){ - if (row == null) { - row = nil; - }; - return $send(row, 'collect', [], block.$to_proc());}, $$42.$$s = self, $$42.$$arity = 1, $$42)); + if (row == null) row = nil;; + return $send(row, 'collect', [], block.$to_proc());}, 1); return self.$new_matrix(rows, self.$column_count()); - }, $Matrix_collect$41.$$arity = 0); + }, 0); $alias(self, "map", "collect"); - Opal.def(self, '$each', $Matrix_each$43 = function $$each(which) {try { + $def(self, '$each', function $$each(which) {try { - var $$44, $$45, $$47, $$49, $$51, $$53, $$55, $iter = $Matrix_each$43.$$p, $yield = $iter || nil, self = this, last = nil, $case = nil, block = nil; + var $yield = $$each.$$p || nil, self = this, last = nil, $ret_or_1 = nil, block = nil; - if ($iter) $Matrix_each$43.$$p = null; + delete $$each.$$p; - if (which == null) { - which = "all"; - }; - if (($yield !== nil)) { - } else { + if (which == null) which = "all";; + if (!($yield !== nil)) { return self.$to_enum("each", which) }; last = $rb_minus(self.$column_count(), 1); - $case = which; - if ("all"['$===']($case)) { - block = $$($nesting, 'Proc').$new(); - $send(self.rows, 'each', [], ($$44 = function(row){var self = $$44.$$s == null ? this : $$44.$$s; - + if ($eqeqeq("all", ($ret_or_1 = which))) { - - if (row == null) { - row = nil; - }; - return $send(row, 'each', [], block.$to_proc());}, $$44.$$s = self, $$44.$$arity = 1, $$44));} - else if ("diagonal"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$45 = function(row, row_index){var self = $$45.$$s == null ? this : $$45.$$s, $$46; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return Opal.yield1($yield, $send(row, 'fetch', [row_index], ($$46 = function(){var self = $$46.$$s == null ? this : $$46.$$s; - - Opal.ret(self)}, $$46.$$s = self, $$46.$$arity = 0, $$46)));;}, $$45.$$s = self, $$45.$$arity = 2, $$45))} - else if ("off_diagonal"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$47 = function(row, row_index){var self = $$47.$$s == null ? this : $$47.$$s, $$48; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send(self.$column_count(), 'times', [], ($$48 = function(col_index){var self = $$48.$$s == null ? this : $$48.$$s; + block = $$('Proc').$new(); + $send(self.rows, 'each', [], function $$23(row){ + + + if (row == null) row = nil;; + return $send(row, 'each', [], block.$to_proc());}, 1); + } else if ($eqeqeq("diagonal", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$24(row, row_index){var self = $$24.$$s == null ? this : $$24.$$s; - if (col_index == null) { - col_index = nil; - }; - if (row_index['$=='](col_index)) { - return nil - } else { - return Opal.yield1($yield, row['$[]'](col_index)); - };}, $$48.$$s = self, $$48.$$arity = 1, $$48));}, $$47.$$s = self, $$47.$$arity = 2, $$47))} - else if ("lower"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$49 = function(row, row_index){var self = $$49.$$s == null ? this : $$49.$$s, $$50; + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return Opal.yield1($yield, $send(row, 'fetch', [row_index], function $$25(){var self = $$25.$$s == null ? this : $$25.$$s; - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send((0), 'upto', [[row_index, last].$min()], ($$50 = function(col_index){var self = $$50.$$s == null ? this : $$50.$$s; + Opal.ret(self)}, {$$arity: 0, $$s: self}));;}, {$$arity: 2, $$s: self}) + } else if ($eqeqeq("off_diagonal", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$26(row, row_index){var self = $$26.$$s == null ? this : $$26.$$s; - if (col_index == null) { - col_index = nil; - }; - return Opal.yield1($yield, row['$[]'](col_index));;}, $$50.$$s = self, $$50.$$arity = 1, $$50));}, $$49.$$s = self, $$49.$$arity = 2, $$49))} - else if ("strict_lower"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$51 = function(row, row_index){var self = $$51.$$s == null ? this : $$51.$$s, $$52; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send([row_index, self.$column_count()].$min(), 'times', [], ($$52 = function(col_index){var self = $$52.$$s == null ? this : $$52.$$s; - + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return $send(self.$column_count(), 'times', [], function $$27(col_index){ + + + if (col_index == null) col_index = nil;; + if ($eqeq(row_index, col_index)) { + return nil + } else { + return Opal.yield1($yield, row['$[]'](col_index)); + };}, 1);}, {$$arity: 2, $$s: self}) + } else if ($eqeqeq("lower", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$28(row, row_index){ - if (col_index == null) { - col_index = nil; - }; - return Opal.yield1($yield, row['$[]'](col_index));;}, $$52.$$s = self, $$52.$$arity = 1, $$52));}, $$51.$$s = self, $$51.$$arity = 2, $$51))} - else if ("strict_upper"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$53 = function(row, row_index){var self = $$53.$$s == null ? this : $$53.$$s, $$54; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send($rb_plus(row_index, 1), 'upto', [last], ($$54 = function(col_index){var self = $$54.$$s == null ? this : $$54.$$s; + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return $send((0), 'upto', [[row_index, last].$min()], function $$29(col_index){ + + + if (col_index == null) col_index = nil;; + return Opal.yield1($yield, row['$[]'](col_index));;}, 1);}, 2) + } else if ($eqeqeq("strict_lower", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$30(row, row_index){var self = $$30.$$s == null ? this : $$30.$$s; - if (col_index == null) { - col_index = nil; - }; - return Opal.yield1($yield, row['$[]'](col_index));;}, $$54.$$s = self, $$54.$$arity = 1, $$54));}, $$53.$$s = self, $$53.$$arity = 2, $$53))} - else if ("upper"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$55 = function(row, row_index){var self = $$55.$$s == null ? this : $$55.$$s, $$56; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send(row_index, 'upto', [last], ($$56 = function(col_index){var self = $$56.$$s == null ? this : $$56.$$s; - + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return $send([row_index, self.$column_count()].$min(), 'times', [], function $$31(col_index){ + + + if (col_index == null) col_index = nil;; + return Opal.yield1($yield, row['$[]'](col_index));;}, 1);}, {$$arity: 2, $$s: self}) + } else if ($eqeqeq("strict_upper", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$32(row, row_index){ - if (col_index == null) { - col_index = nil; - }; - return Opal.yield1($yield, row['$[]'](col_index));;}, $$56.$$s = self, $$56.$$arity = 1, $$56));}, $$55.$$s = self, $$55.$$arity = 2, $$55))} - else {self.$raise($$($nesting, 'ArgumentError'), "" + "expected " + (which.$inspect()) + " to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper")}; + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return $send($rb_plus(row_index, 1), 'upto', [last], function $$33(col_index){ + + + if (col_index == null) col_index = nil;; + return Opal.yield1($yield, row['$[]'](col_index));;}, 1);}, 2) + } else if ($eqeqeq("upper", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$34(row, row_index){ + + + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return $send(row_index, 'upto', [last], function $$35(col_index){ + + + if (col_index == null) col_index = nil;; + return Opal.yield1($yield, row['$[]'](col_index));;}, 1);}, 2) + } else { + self.$raise($$('ArgumentError'), "expected " + (which.$inspect()) + " to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper") + }; return self; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_each$43.$$arity = -1); + }, -1); - Opal.def(self, '$each_with_index', $Matrix_each_with_index$57 = function $$each_with_index(which) {try { + $def(self, '$each_with_index', function $$each_with_index(which) {try { - var $$58, $$60, $$62, $$64, $$66, $$68, $$70, $iter = $Matrix_each_with_index$57.$$p, $yield = $iter || nil, self = this, last = nil, $case = nil; + var $yield = $$each_with_index.$$p || nil, self = this, last = nil, $ret_or_1 = nil; - if ($iter) $Matrix_each_with_index$57.$$p = null; + delete $$each_with_index.$$p; - if (which == null) { - which = "all"; - }; - if (($yield !== nil)) { - } else { + if (which == null) which = "all";; + if (!($yield !== nil)) { return self.$to_enum("each_with_index", which) }; last = $rb_minus(self.$column_count(), 1); - $case = which; - if ("all"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$58 = function(row, row_index){var self = $$58.$$s == null ? this : $$58.$$s, $$59; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send(row, 'each_with_index', [], ($$59 = function(e, col_index){var self = $$59.$$s == null ? this : $$59.$$s; - + if ($eqeqeq("all", ($ret_or_1 = which))) { + $send(self.rows, 'each_with_index', [], function $$36(row, row_index){ - if (e == null) { - e = nil; - }; + if (row == null) row = nil;; - if (col_index == null) { - col_index = nil; - }; - return Opal.yieldX($yield, [e, row_index, col_index]);;}, $$59.$$s = self, $$59.$$arity = 2, $$59));}, $$58.$$s = self, $$58.$$arity = 2, $$58))} - else if ("diagonal"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$60 = function(row, row_index){var self = $$60.$$s == null ? this : $$60.$$s, $$61; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return Opal.yieldX($yield, [$send(row, 'fetch', [row_index], ($$61 = function(){var self = $$61.$$s == null ? this : $$61.$$s; - - Opal.ret(self)}, $$61.$$s = self, $$61.$$arity = 0, $$61)), row_index, row_index]);;}, $$60.$$s = self, $$60.$$arity = 2, $$60))} - else if ("off_diagonal"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$62 = function(row, row_index){var self = $$62.$$s == null ? this : $$62.$$s, $$63; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send(self.$column_count(), 'times', [], ($$63 = function(col_index){var self = $$63.$$s == null ? this : $$63.$$s; + if (row_index == null) row_index = nil;; + return $send(row, 'each_with_index', [], function $$37(e, col_index){ + + + if (e == null) e = nil;; + + if (col_index == null) col_index = nil;; + return Opal.yieldX($yield, [e, row_index, col_index]);;}, 2);}, 2) + } else if ($eqeqeq("diagonal", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$38(row, row_index){var self = $$38.$$s == null ? this : $$38.$$s; - if (col_index == null) { - col_index = nil; - }; - if (row_index['$=='](col_index)) { - return nil - } else { - return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]); - };}, $$63.$$s = self, $$63.$$arity = 1, $$63));}, $$62.$$s = self, $$62.$$arity = 2, $$62))} - else if ("lower"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$64 = function(row, row_index){var self = $$64.$$s == null ? this : $$64.$$s, $$65; + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return Opal.yieldX($yield, [$send(row, 'fetch', [row_index], function $$39(){var self = $$39.$$s == null ? this : $$39.$$s; - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send((0), 'upto', [[row_index, last].$min()], ($$65 = function(col_index){var self = $$65.$$s == null ? this : $$65.$$s; + Opal.ret(self)}, {$$arity: 0, $$s: self}), row_index, row_index]);;}, {$$arity: 2, $$s: self}) + } else if ($eqeqeq("off_diagonal", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$40(row, row_index){var self = $$40.$$s == null ? this : $$40.$$s; - if (col_index == null) { - col_index = nil; - }; - return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]);;}, $$65.$$s = self, $$65.$$arity = 1, $$65));}, $$64.$$s = self, $$64.$$arity = 2, $$64))} - else if ("strict_lower"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$66 = function(row, row_index){var self = $$66.$$s == null ? this : $$66.$$s, $$67; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send([row_index, self.$column_count()].$min(), 'times', [], ($$67 = function(col_index){var self = $$67.$$s == null ? this : $$67.$$s; - + if (row == null) row = nil;; + if (row_index == null) row_index = nil;; + return $send(self.$column_count(), 'times', [], function $$41(col_index){ + + + if (col_index == null) col_index = nil;; + if ($eqeq(row_index, col_index)) { + return nil + } else { + return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]); + };}, 1);}, {$$arity: 2, $$s: self}) + } else if ($eqeqeq("lower", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$42(row, row_index){ - if (col_index == null) { - col_index = nil; - }; - return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]);;}, $$67.$$s = self, $$67.$$arity = 1, $$67));}, $$66.$$s = self, $$66.$$arity = 2, $$66))} - else if ("strict_upper"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$68 = function(row, row_index){var self = $$68.$$s == null ? this : $$68.$$s, $$69; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send($rb_plus(row_index, 1), 'upto', [last], ($$69 = function(col_index){var self = $$69.$$s == null ? this : $$69.$$s; - + if (row == null) row = nil;; - if (col_index == null) { - col_index = nil; - }; - return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]);;}, $$69.$$s = self, $$69.$$arity = 1, $$69));}, $$68.$$s = self, $$68.$$arity = 2, $$68))} - else if ("upper"['$===']($case)) {$send(self.rows, 'each_with_index', [], ($$70 = function(row, row_index){var self = $$70.$$s == null ? this : $$70.$$s, $$71; - - - - if (row == null) { - row = nil; - }; - - if (row_index == null) { - row_index = nil; - }; - return $send(row_index, 'upto', [last], ($$71 = function(col_index){var self = $$71.$$s == null ? this : $$71.$$s; + if (row_index == null) row_index = nil;; + return $send((0), 'upto', [[row_index, last].$min()], function $$43(col_index){ + + + if (col_index == null) col_index = nil;; + return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]);;}, 1);}, 2) + } else if ($eqeqeq("strict_lower", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$44(row, row_index){var self = $$44.$$s == null ? this : $$44.$$s; - if (col_index == null) { - col_index = nil; - }; - return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]);;}, $$71.$$s = self, $$71.$$arity = 1, $$71));}, $$70.$$s = self, $$70.$$arity = 2, $$70))} - else {self.$raise($$($nesting, 'ArgumentError'), "" + "expected " + (which.$inspect()) + " to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper")}; + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return $send([row_index, self.$column_count()].$min(), 'times', [], function $$45(col_index){ + + + if (col_index == null) col_index = nil;; + return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]);;}, 1);}, {$$arity: 2, $$s: self}) + } else if ($eqeqeq("strict_upper", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$46(row, row_index){ + + + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return $send($rb_plus(row_index, 1), 'upto', [last], function $$47(col_index){ + + + if (col_index == null) col_index = nil;; + return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]);;}, 1);}, 2) + } else if ($eqeqeq("upper", $ret_or_1)) { + $send(self.rows, 'each_with_index', [], function $$48(row, row_index){ + + + if (row == null) row = nil;; + + if (row_index == null) row_index = nil;; + return $send(row_index, 'upto', [last], function $$49(col_index){ + + + if (col_index == null) col_index = nil;; + return Opal.yieldX($yield, [row['$[]'](col_index), row_index, col_index]);;}, 1);}, 2) + } else { + self.$raise($$('ArgumentError'), "expected " + (which.$inspect()) + " to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper") + }; return self; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_each_with_index$57.$$arity = -1); - Opal.const_set($nesting[0], 'SELECTORS', $hash2(["all", "diagonal", "off_diagonal", "lower", "strict_lower", "strict_upper", "upper"], {"all": true, "diagonal": true, "off_diagonal": true, "lower": true, "strict_lower": true, "strict_upper": true, "upper": true}).$freeze()); + }, -1); + $const_set($nesting[0], 'SELECTORS', $hash2(["all", "diagonal", "off_diagonal", "lower", "strict_lower", "strict_upper", "upper"], {"all": true, "diagonal": true, "off_diagonal": true, "lower": true, "strict_lower": true, "strict_upper": true, "upper": true}).$freeze()); - Opal.def(self, '$index', $Matrix_index$72 = function $$index($a) {try { + $def(self, '$index', function $$index($a) {try { - var $post_args, args, $$73, $$74, $iter = $Matrix_index$72.$$p, $yield = $iter || nil, self = this, which = nil, $ret_or_8 = nil, $ret_or_9 = nil, value = nil; + var $post_args, args, $yield = $$index.$$p || nil, self = this, which = nil, value = nil; - if ($iter) $Matrix_index$72.$$p = null; + delete $$index.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ($truthy($rb_gt(args.$size(), 2))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments(" + (args.$size()) + " for 0-2)")}; - which = (function() {if ($truthy((function() {if ($truthy(($ret_or_8 = args.$size()['$=='](2)))) { - return $ret_or_8 - } else { - return $$($nesting, 'SELECTORS')['$include?'](args.$last()) - }; return nil; })())) { - return args.$pop() - } else { - return "all" - }; return nil; })(); - if ($truthy((function() {if ($truthy(($ret_or_9 = ($yield !== nil)))) { - return $ret_or_9 - } else { - return args.$size()['$=='](1) - }; return nil; })())) { - } else { - return $send(self, 'to_enum', ["find_index", which].concat(Opal.to_a(args))) + self.$raise($$('ArgumentError'), "wrong number of arguments(" + (args.$size()) + " for 0-2)") }; - if (args.$size()['$=='](1)) { + which = (($eqeq(args.$size(), 2) || ($truthy($$('SELECTORS')['$include?'](args.$last())))) ? (args.$pop()) : ("all")); + if (!(($yield !== nil) || ($eqeq(args.$size(), 1)))) { + return $send(self, 'to_enum', ["find_index", which].concat($to_a(args))) + }; + if ($eqeq(args.$size(), 1)) { value = args.$first(); - $send(self, 'each_with_index', [which], ($$73 = function(e, row_index, col_index){var self = $$73.$$s == null ? this : $$73.$$s; - + $send(self, 'each_with_index', [which], function $$50(e, row_index, col_index){ - if (e == null) { - e = nil; - }; + if (e == null) e = nil;; - if (row_index == null) { - row_index = nil; - }; + if (row_index == null) row_index = nil;; - if (col_index == null) { - col_index = nil; - }; - if (e['$=='](value)) { + if (col_index == null) col_index = nil;; + if ($eqeq(e, value)) { Opal.ret([row_index, col_index]) } else { return nil - };}, $$73.$$s = self, $$73.$$arity = 3, $$73)); + };}, 3); } else { - $send(self, 'each_with_index', [which], ($$74 = function(e, row_index, col_index){var self = $$74.$$s == null ? this : $$74.$$s; - + $send(self, 'each_with_index', [which], function $$51(e, row_index, col_index){ - if (e == null) { - e = nil; - }; + if (e == null) e = nil;; - if (row_index == null) { - row_index = nil; - }; + if (row_index == null) row_index = nil;; - if (col_index == null) { - col_index = nil; - }; + if (col_index == null) col_index = nil;; if ($truthy(Opal.yield1($yield, e))) { Opal.ret([row_index, col_index]) } else { return nil - };}, $$74.$$s = self, $$74.$$arity = 3, $$74)) + };}, 3) }; return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_index$72.$$arity = -1); + }, -1); self.$alias_method("find_index", "index"); - Opal.def(self, '$minor', $Matrix_minor$75 = function $$minor($a) { - var $post_args, param, $b, $c, $$76, self = this, $case = nil, row_range = nil, col_range = nil, from_row = nil, to_row = nil, size_row = nil, from_col = nil, to_col = nil, size_col = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil, rows = nil; + $def(self, '$minor', function $$minor($a) { + var $post_args, param, $b, $c, self = this, $ret_or_1 = nil, row_range = nil, col_range = nil, from_row = nil, to_row = nil, size_row = nil, from_col = nil, to_col = nil, size_col = nil, rows = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); param = $post_args;; - $case = param.$size(); - if ((2)['$===']($case)) { - $c = param, $b = Opal.to_ary($c), (row_range = ($b[0] == null ? nil : $b[0])), (col_range = ($b[1] == null ? nil : $b[1])), $c; - from_row = row_range.$first(); - if ($truthy($rb_lt(from_row, 0))) { - from_row = $rb_plus(from_row, self.$row_count())}; - to_row = row_range.$end(); - if ($truthy($rb_lt(to_row, 0))) { - to_row = $rb_plus(to_row, self.$row_count())}; - if ($truthy(row_range['$exclude_end?']())) { + if ($eqeqeq(2, ($ret_or_1 = param.$size()))) { + + $c = param, $b = $to_ary($c), (row_range = ($b[0] == null ? nil : $b[0])), (col_range = ($b[1] == null ? nil : $b[1])), $c; + from_row = row_range.$first(); + if ($truthy($rb_lt(from_row, 0))) { + from_row = $rb_plus(from_row, self.$row_count()) + }; + to_row = row_range.$end(); + if ($truthy($rb_lt(to_row, 0))) { + to_row = $rb_plus(to_row, self.$row_count()) + }; + if (!$truthy(row_range['$exclude_end?']())) { + to_row = $rb_plus(to_row, 1) + }; + size_row = $rb_minus(to_row, from_row); + from_col = col_range.$first(); + if ($truthy($rb_lt(from_col, 0))) { + from_col = $rb_plus(from_col, self.$column_count()) + }; + to_col = col_range.$end(); + if ($truthy($rb_lt(to_col, 0))) { + to_col = $rb_plus(to_col, self.$column_count()) + }; + if (!$truthy(col_range['$exclude_end?']())) { + to_col = $rb_plus(to_col, 1) + }; + size_col = $rb_minus(to_col, from_col); + } else if ($eqeqeq(4, $ret_or_1)) { + + $c = param, $b = $to_ary($c), (from_row = ($b[0] == null ? nil : $b[0])), (size_row = ($b[1] == null ? nil : $b[1])), (from_col = ($b[2] == null ? nil : $b[2])), (size_col = ($b[3] == null ? nil : $b[3])), $c; + if (($truthy($rb_lt(size_row, 0)) || ($truthy($rb_lt(size_col, 0))))) { + return nil + }; + if ($truthy($rb_lt(from_row, 0))) { + from_row = $rb_plus(from_row, self.$row_count()) + }; + if ($truthy($rb_lt(from_col, 0))) { + from_col = $rb_plus(from_col, self.$column_count()) + }; } else { - to_row = $rb_plus(to_row, 1) + self.$raise($$('ArgumentError'), param.$inspect()) }; - size_row = $rb_minus(to_row, from_row); - from_col = col_range.$first(); - if ($truthy($rb_lt(from_col, 0))) { - from_col = $rb_plus(from_col, self.$column_count())}; - to_col = col_range.$end(); - if ($truthy($rb_lt(to_col, 0))) { - to_col = $rb_plus(to_col, self.$column_count())}; - if ($truthy(col_range['$exclude_end?']())) { - } else { - to_col = $rb_plus(to_col, 1) + if (((($truthy($rb_gt(from_row, self.$row_count())) || ($truthy($rb_gt(from_col, self.$column_count())))) || ($truthy($rb_lt(from_row, 0)))) || ($truthy($rb_lt(from_col, 0))))) { + return nil }; - size_col = $rb_minus(to_col, from_col);} - else if ((4)['$===']($case)) { - $c = param, $b = Opal.to_ary($c), (from_row = ($b[0] == null ? nil : $b[0])), (size_row = ($b[1] == null ? nil : $b[1])), (from_col = ($b[2] == null ? nil : $b[2])), (size_col = ($b[3] == null ? nil : $b[3])), $c; - if ($truthy((function() {if ($truthy(($ret_or_10 = $rb_lt(size_row, 0)))) { - return $ret_or_10 - } else { - return $rb_lt(size_col, 0) - }; return nil; })())) { - return nil}; - if ($truthy($rb_lt(from_row, 0))) { - from_row = $rb_plus(from_row, self.$row_count())}; - if ($truthy($rb_lt(from_col, 0))) { - from_col = $rb_plus(from_col, self.$column_count())};} - else {self.$raise($$($nesting, 'ArgumentError'), param.$inspect())}; - if ($truthy((function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = $rb_gt(from_row, self.$row_count())))) { - return $ret_or_13 - } else { - return $rb_gt(from_col, self.$column_count()) - }; return nil; })()))) { - return $ret_or_12 - } else { - return $rb_lt(from_row, 0) - }; return nil; })()))) { - return $ret_or_11 - } else { - return $rb_lt(from_col, 0) - }; return nil; })())) { - return nil}; - rows = $send(self.rows['$[]'](from_row, size_row), 'collect', [], ($$76 = function(row){var self = $$76.$$s == null ? this : $$76.$$s; - + rows = $send(self.rows['$[]'](from_row, size_row), 'collect', [], function $$52(row){ - if (row == null) { - row = nil; - }; - return row['$[]'](from_col, size_col);}, $$76.$$s = self, $$76.$$arity = 1, $$76)); + if (row == null) row = nil;; + return row['$[]'](from_col, size_col);}, 1); return self.$new_matrix(rows, [$rb_minus(self.$column_count(), from_col), size_col].$min()); - }, $Matrix_minor$75.$$arity = -1); + }, -1); - Opal.def(self, '$first_minor', $Matrix_first_minor$77 = function $$first_minor(row, column) { - var $$78, self = this, $ret_or_14 = nil, $ret_or_15 = nil, arrays = nil; + $def(self, '$first_minor', function $$first_minor(row, column) { + var self = this, arrays = nil; if ($truthy(self['$empty?']())) { - self.$raise($$($nesting, 'RuntimeError'), "first_minor of empty matrix is not defined")}; - if ($truthy((function() {if ($truthy(($ret_or_14 = $rb_le(0, row)))) { - return $rb_lt(row, self.$row_count()) - } else { - return $ret_or_14 - }; return nil; })())) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid row (" + (row.$inspect()) + " for 0.." + ($rb_minus(self.$row_count(), 1)) + ")") + self.$raise($$('RuntimeError'), "first_minor of empty matrix is not defined") }; - if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_le(0, column)))) { - return $rb_lt(column, self.$column_count()) - } else { - return $ret_or_15 - }; return nil; })())) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid column (" + (column.$inspect()) + " for 0.." + ($rb_minus(self.$column_count(), 1)) + ")") + if (!($rb_le(0, row) && ($truthy($rb_lt(row, self.$row_count()))))) { + self.$raise($$('ArgumentError'), "invalid row (" + (row.$inspect()) + " for 0.." + ($rb_minus(self.$row_count(), 1)) + ")") + }; + if (!($rb_le(0, column) && ($truthy($rb_lt(column, self.$column_count()))))) { + self.$raise($$('ArgumentError'), "invalid column (" + (column.$inspect()) + " for 0.." + ($rb_minus(self.$column_count(), 1)) + ")") }; arrays = self.$to_a(); arrays.$delete_at(row); - $send(arrays, 'each', [], ($$78 = function(array){var self = $$78.$$s == null ? this : $$78.$$s; - + $send(arrays, 'each', [], function $$53(array){ - if (array == null) { - array = nil; - }; - return array.$delete_at(column);}, $$78.$$s = self, $$78.$$arity = 1, $$78)); + if (array == null) array = nil;; + return array.$delete_at(column);}, 1); return self.$new_matrix(arrays, $rb_minus(self.$column_count(), 1)); - }, $Matrix_first_minor$77.$$arity = 2); + }, 2); - Opal.def(self, '$cofactor', $Matrix_cofactor$79 = function $$cofactor(row, column) { + $def(self, '$cofactor', function $$cofactor(row, column) { var self = this, det_of_minor = nil; if ($truthy(self['$empty?']())) { - self.$raise($$($nesting, 'RuntimeError'), "cofactor of empty matrix is not defined")}; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + self.$raise($$('RuntimeError'), "cofactor of empty matrix is not defined") + }; + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; det_of_minor = self.$first_minor(row, column).$determinant(); return $rb_times(det_of_minor, (-1)['$**']($rb_plus(row, column))); - }, $Matrix_cofactor$79.$$arity = 2); + }, 2); - Opal.def(self, '$adjugate', $Matrix_adjugate$80 = function $$adjugate() { - var $$81, self = this; + $def(self, '$adjugate', function $$adjugate() { + var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - return $send($$($nesting, 'Matrix'), 'build', [self.$row_count(), self.$column_count()], ($$81 = function(row, column){var self = $$81.$$s == null ? this : $$81.$$s; + return $send($$('Matrix'), 'build', [self.$row_count(), self.$column_count()], function $$54(row, column){var self = $$54.$$s == null ? this : $$54.$$s; - if (row == null) { - row = nil; - }; + if (row == null) row = nil;; - if (column == null) { - column = nil; - }; - return self.$cofactor(column, row);}, $$81.$$s = self, $$81.$$arity = 2, $$81)); - }, $Matrix_adjugate$80.$$arity = 0); + if (column == null) column = nil;; + return self.$cofactor(column, row);}, {$$arity: 2, $$s: self}); + }, 0); - Opal.def(self, '$laplace_expansion', $Matrix_laplace_expansion$82 = function $$laplace_expansion($kwargs) { - var row, column, $$83, self = this, num = nil, $ret_or_16 = nil, $ret_or_17 = nil, $ret_or_18 = nil, $ret_or_19 = nil; + $def(self, '$laplace_expansion', function $$laplace_expansion($kwargs) { + var row, column, self = this, num = nil, $ret_or_1 = nil; @@ -3356,677 +2815,524 @@ Opal.modules["matrix"] = function(Opal) { }; row = $kwargs.$$smap["row"]; - if (row == null) { - row = nil - }; + if (row == null) row = nil; column = $kwargs.$$smap["column"]; - if (column == null) { - column = nil + if (column == null) column = nil; + num = ($truthy(($ret_or_1 = row)) ? ($ret_or_1) : (column)); + if (($not(num) || (($truthy(row) && ($truthy(column)))))) { + self.$raise($$('ArgumentError'), "exactly one the row or column arguments must be specified") }; - num = (function() {if ($truthy(($ret_or_16 = row))) { - return $ret_or_16 - } else { - return column - }; return nil; })(); - if ($truthy((function() {if ($truthy(($ret_or_17 = num['$!']()))) { - return $ret_or_17 - } else { - - if ($truthy(($ret_or_18 = row))) { - return column - } else { - return $ret_or_18 - }; - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'), "exactly one the row or column arguments must be specified")}; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; if ($truthy(self['$empty?']())) { - self.$raise($$($nesting, 'RuntimeError'), "laplace_expansion of empty matrix is not defined")}; - if ($truthy((function() {if ($truthy(($ret_or_19 = $rb_le(0, num)))) { - return $rb_lt(num, self.$row_count()) - } else { - return $ret_or_19 - }; return nil; })())) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid num (" + (num.$inspect()) + " for 0.." + ($rb_minus(self.$row_count(), 1)) + ")") + self.$raise($$('RuntimeError'), "laplace_expansion of empty matrix is not defined") }; - return $send(self.$send((function() {if ($truthy(row)) { - return "row" - } else { - return "column" - }; return nil; })(), num).$map(), 'with_index', [], ($$83 = function(e, k){var self = $$83.$$s == null ? this : $$83.$$s; + if (!($rb_le(0, num) && ($truthy($rb_lt(num, self.$row_count()))))) { + self.$raise($$('ArgumentError'), "invalid num (" + (num.$inspect()) + " for 0.." + ($rb_minus(self.$row_count(), 1)) + ")") + }; + return $send(self.$send(($truthy(row) ? ("row") : ("column")), num).$map(), 'with_index', [], function $$55(e, k){var self = $$55.$$s == null ? this : $$55.$$s; - if (e == null) { - e = nil; - }; + if (e == null) e = nil;; - if (k == null) { - k = nil; - }; - return $rb_times(e, $send(self, 'cofactor', Opal.to_a((function() {if ($truthy(row)) { - return [num, k] - } else { - return [k, num] - }; return nil; })())));}, $$83.$$s = self, $$83.$$arity = 2, $$83)).$inject("+"); - }, $Matrix_laplace_expansion$82.$$arity = -1); + if (k == null) k = nil;; + return $rb_times(e, $send(self, 'cofactor', $to_a(($truthy(row) ? ([num, k]) : ([k, num])))));}, {$$arity: 2, $$s: self}).$inject("+"); + }, -1); self.$alias_method("cofactor_expansion", "laplace_expansion"); - Opal.def(self, '$diagonal?', $Matrix_diagonal$ques$84 = function() { + $def(self, '$diagonal?', function $Matrix_diagonal$ques$56() { var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; return $send(self.$each("off_diagonal"), 'all?', [], "zero?".$to_proc()); - }, $Matrix_diagonal$ques$84.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $Matrix_empty$ques$85 = function() { - var self = this, $ret_or_20 = nil; + $def(self, '$empty?', function $Matrix_empty$ques$57() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_20 = self.$column_count()['$=='](0)))) { - return $ret_or_20 + if ($truthy(($ret_or_1 = self.$column_count()['$=='](0)))) { + return $ret_or_1 } else { return self.$row_count()['$=='](0) } - }, $Matrix_empty$ques$85.$$arity = 0); + }, 0); - Opal.def(self, '$hermitian?', $Matrix_hermitian$ques$86 = function() { - var $$87, self = this; + $def(self, '$hermitian?', function $Matrix_hermitian$ques$58() { + var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - return $send(self.$each_with_index("upper"), 'all?', [], ($$87 = function(e, row, col){var self = $$87.$$s == null ? this : $$87.$$s; + return $send(self.$each_with_index("upper"), 'all?', [], function $$59(e, row, col){var self = $$59.$$s == null ? this : $$59.$$s; - if (e == null) { - e = nil; - }; + if (e == null) e = nil;; - if (row == null) { - row = nil; - }; + if (row == null) row = nil;; - if (col == null) { - col = nil; - }; - return e['$=='](self.$rows()['$[]'](col)['$[]'](row).$conj());}, $$87.$$s = self, $$87.$$arity = 3, $$87)); - }, $Matrix_hermitian$ques$86.$$arity = 0); + if (col == null) col = nil;; + return e['$=='](self.$rows()['$[]'](col)['$[]'](row).$conj());}, {$$arity: 3, $$s: self}); + }, 0); - Opal.def(self, '$lower_triangular?', $Matrix_lower_triangular$ques$88 = function() { + $def(self, '$lower_triangular?', function $Matrix_lower_triangular$ques$60() { var self = this; return $send(self.$each("strict_upper"), 'all?', [], "zero?".$to_proc()) - }, $Matrix_lower_triangular$ques$88.$$arity = 0); + }, 0); - Opal.def(self, '$normal?', $Matrix_normal$ques$89 = function() {try { + $def(self, '$normal?', function $Matrix_normal$ques$61() {try { - var $$90, self = this; + var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - $send(self.$rows(), 'each_with_index', [], ($$90 = function(row_i, i){var self = $$90.$$s == null ? this : $$90.$$s, $$91; + $send(self.$rows(), 'each_with_index', [], function $$62(row_i, i){var self = $$62.$$s == null ? this : $$62.$$s; - if (row_i == null) { - row_i = nil; - }; + if (row_i == null) row_i = nil;; - if (i == null) { - i = nil; - }; - return $send(self.$rows(), 'each_with_index', [], ($$91 = function(row_j, j){var self = $$91.$$s == null ? this : $$91.$$s, $$92, s = nil; + if (i == null) i = nil;; + return $send(self.$rows(), 'each_with_index', [], function $$63(row_j, j){var self = $$63.$$s == null ? this : $$63.$$s, s = nil; - if (row_j == null) { - row_j = nil; - }; + if (row_j == null) row_j = nil;; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; s = 0; - $send(self.$rows(), 'each_with_index', [], ($$92 = function(row_k, k){var self = $$92.$$s == null ? this : $$92.$$s; - + $send(self.$rows(), 'each_with_index', [], function $$64(row_k, k){ - if (row_k == null) { - row_k = nil; - }; + if (row_k == null) row_k = nil;; - if (k == null) { - k = nil; - }; - return (s = $rb_plus(s, $rb_minus($rb_times(row_i['$[]'](k), row_j['$[]'](k).$conj()), $rb_times(row_k['$[]'](i).$conj(), row_k['$[]'](j)))));}, $$92.$$s = self, $$92.$$arity = 2, $$92)); - if (s['$=='](0)) { + if (k == null) k = nil;; + return (s = $rb_plus(s, $rb_minus($rb_times(row_i['$[]'](k), row_j['$[]'](k).$conj()), $rb_times(row_k['$[]'](i).$conj(), row_k['$[]'](j)))));}, 2); + if ($eqeq(s, 0)) { return nil } else { Opal.ret(false) - };}, $$91.$$s = self, $$91.$$arity = 2, $$91));}, $$90.$$s = self, $$90.$$arity = 2, $$90)); + };}, {$$arity: 2, $$s: self});}, {$$arity: 2, $$s: self}); return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_normal$ques$89.$$arity = 0); + }, 0); - Opal.def(self, '$orthogonal?', $Matrix_orthogonal$ques$93 = function() {try { + $def(self, '$orthogonal?', function $Matrix_orthogonal$ques$65() {try { - var $$94, self = this; + var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - $send(self.$rows(), 'each_with_index', [], ($$94 = function(row, i){var self = $$94.$$s == null ? this : $$94.$$s, $$95; + $send(self.$rows(), 'each_with_index', [], function $$66(row, i){var self = $$66.$$s == null ? this : $$66.$$s; - if (row == null) { - row = nil; - }; + if (row == null) row = nil;; - if (i == null) { - i = nil; - }; - return $send(self.$column_count(), 'times', [], ($$95 = function(j){var self = $$95.$$s == null ? this : $$95.$$s, $$96, s = nil; + if (i == null) i = nil;; + return $send(self.$column_count(), 'times', [], function $$67(j){var self = $$67.$$s == null ? this : $$67.$$s, s = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; s = 0; - $send(self.$row_count(), 'times', [], ($$96 = function(k){var self = $$96.$$s == null ? this : $$96.$$s; + $send(self.$row_count(), 'times', [], function $$68(k){var self = $$68.$$s == null ? this : $$68.$$s; - if (k == null) { - k = nil; - }; - return (s = $rb_plus(s, $rb_times(row['$[]'](k), self.$rows()['$[]'](k)['$[]'](j))));}, $$96.$$s = self, $$96.$$arity = 1, $$96)); - if (s['$==']((function() {if (i['$=='](j)) { - return 1 - } else { - return 0 - }; return nil; })())) { + if (k == null) k = nil;; + return (s = $rb_plus(s, $rb_times(row['$[]'](k), self.$rows()['$[]'](k)['$[]'](j))));}, {$$arity: 1, $$s: self}); + if ($eqeq(s, ($eqeq(i, j) ? (1) : (0)))) { return nil } else { Opal.ret(false) - };}, $$95.$$s = self, $$95.$$arity = 1, $$95));}, $$94.$$s = self, $$94.$$arity = 2, $$94)); + };}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}); return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_orthogonal$ques$93.$$arity = 0); + }, 0); - Opal.def(self, '$permutation?', $Matrix_permutation$ques$97 = function() {try { + $def(self, '$permutation?', function $Matrix_permutation$ques$69() {try { - var $$98, self = this, cols = nil; + var self = this, cols = nil; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - cols = $$($nesting, 'Array').$new(self.$column_count()); - $send(self.$rows(), 'each_with_index', [], ($$98 = function(row, i){var self = $$98.$$s == null ? this : $$98.$$s, $$99, found = nil; + cols = $$('Array').$new(self.$column_count()); + $send(self.$rows(), 'each_with_index', [], function $$70(row, i){var found = nil; - if (row == null) { - row = nil; - }; + if (row == null) row = nil;; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; found = false; - $send(row, 'each_with_index', [], ($$99 = function(e, j){var self = $$99.$$s == null ? this : $$99.$$s, $ret_or_21 = nil, $writer = nil; + $send(row, 'each_with_index', [], function $$71(e, j){var $writer = nil; - if (e == null) { - e = nil; - }; + if (e == null) e = nil;; - if (j == null) { - j = nil; - }; - if (e['$=='](1)) { + if (j == null) j = nil;; + if ($eqeq(e, 1)) { - if ($truthy((function() {if ($truthy(($ret_or_21 = found))) { - return $ret_or_21 - } else { - return cols['$[]'](j) - }; return nil; })())) { - Opal.ret(false)}; - return (found = (($writer = [j, true]), $send(cols, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); - } else if ($truthy(e['$!='](0))) { + if (($truthy(found) || ($truthy(cols['$[]'](j))))) { + Opal.ret(false) + }; + return (found = (($writer = [j, true]), $send(cols, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); + } else if ($neqeq(e, 0)) { Opal.ret(false) } else { return nil - };}, $$99.$$s = self, $$99.$$arity = 2, $$99)); + };}, 2); if ($truthy(found)) { return nil } else { Opal.ret(false) - };}, $$98.$$s = self, $$98.$$arity = 2, $$98)); + };}, 2); return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_permutation$ques$97.$$arity = 0); + }, 0); - Opal.def(self, '$real?', $Matrix_real$ques$100 = function() { + $def(self, '$real?', function $Matrix_real$ques$72() { var self = this; return $send(self, 'all?', [], "real?".$to_proc()) - }, $Matrix_real$ques$100.$$arity = 0); + }, 0); - Opal.def(self, '$regular?', $Matrix_regular$ques$101 = function() { + $def(self, '$regular?', function $Matrix_regular$ques$73() { var self = this; return self['$singular?']()['$!']() - }, $Matrix_regular$ques$101.$$arity = 0); + }, 0); - Opal.def(self, '$singular?', $Matrix_singular$ques$102 = function() { + $def(self, '$singular?', function $Matrix_singular$ques$74() { var self = this; return self.$determinant()['$=='](0) - }, $Matrix_singular$ques$102.$$arity = 0); + }, 0); - Opal.def(self, '$square?', $Matrix_square$ques$103 = function() { + $def(self, '$square?', function $Matrix_square$ques$75() { var self = this; return self.$column_count()['$=='](self.$row_count()) - }, $Matrix_square$ques$103.$$arity = 0); + }, 0); - Opal.def(self, '$symmetric?', $Matrix_symmetric$ques$104 = function() {try { + $def(self, '$symmetric?', function $Matrix_symmetric$ques$76() {try { - var $$105, self = this; + var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - $send(self, 'each_with_index', ["strict_upper"], ($$105 = function(e, row, col){var self = $$105.$$s == null ? this : $$105.$$s; + $send(self, 'each_with_index', ["strict_upper"], function $$77(e, row, col){var self = $$77.$$s == null ? this : $$77.$$s; - if (e == null) { - e = nil; - }; + if (e == null) e = nil;; - if (row == null) { - row = nil; - }; + if (row == null) row = nil;; - if (col == null) { - col = nil; - }; - if ($truthy(e['$!='](self.$rows()['$[]'](col)['$[]'](row)))) { + if (col == null) col = nil;; + if ($neqeq(e, self.$rows()['$[]'](col)['$[]'](row))) { Opal.ret(false) } else { return nil - };}, $$105.$$s = self, $$105.$$arity = 3, $$105)); + };}, {$$arity: 3, $$s: self}); return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_symmetric$ques$104.$$arity = 0); + }, 0); - Opal.def(self, '$antisymmetric?', $Matrix_antisymmetric$ques$106 = function() {try { + $def(self, '$antisymmetric?', function $Matrix_antisymmetric$ques$78() {try { - var $$107, self = this; + var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - $send(self, 'each_with_index', ["upper"], ($$107 = function(e, row, col){var self = $$107.$$s == null ? this : $$107.$$s; + $send(self, 'each_with_index', ["upper"], function $$79(e, row, col){var self = $$79.$$s == null ? this : $$79.$$s; - if (e == null) { - e = nil; - }; + if (e == null) e = nil;; - if (row == null) { - row = nil; - }; + if (row == null) row = nil;; - if (col == null) { - col = nil; - }; - if (e['$=='](self.$rows()['$[]'](col)['$[]'](row)['$-@']())) { + if (col == null) col = nil;; + if ($eqeq(e, self.$rows()['$[]'](col)['$[]'](row)['$-@']())) { return nil } else { Opal.ret(false) - };}, $$107.$$s = self, $$107.$$arity = 3, $$107)); + };}, {$$arity: 3, $$s: self}); return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_antisymmetric$ques$106.$$arity = 0); + }, 0); - Opal.def(self, '$unitary?', $Matrix_unitary$ques$108 = function() {try { + $def(self, '$unitary?', function $Matrix_unitary$ques$80() {try { - var $$109, self = this; + var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - $send(self.$rows(), 'each_with_index', [], ($$109 = function(row, i){var self = $$109.$$s == null ? this : $$109.$$s, $$110; + $send(self.$rows(), 'each_with_index', [], function $$81(row, i){var self = $$81.$$s == null ? this : $$81.$$s; - if (row == null) { - row = nil; - }; + if (row == null) row = nil;; - if (i == null) { - i = nil; - }; - return $send(self.$column_count(), 'times', [], ($$110 = function(j){var self = $$110.$$s == null ? this : $$110.$$s, $$111, s = nil; + if (i == null) i = nil;; + return $send(self.$column_count(), 'times', [], function $$82(j){var self = $$82.$$s == null ? this : $$82.$$s, s = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; s = 0; - $send(self.$row_count(), 'times', [], ($$111 = function(k){var self = $$111.$$s == null ? this : $$111.$$s; + $send(self.$row_count(), 'times', [], function $$83(k){var self = $$83.$$s == null ? this : $$83.$$s; - if (k == null) { - k = nil; - }; - return (s = $rb_plus(s, $rb_times(row['$[]'](k).$conj(), self.$rows()['$[]'](k)['$[]'](j))));}, $$111.$$s = self, $$111.$$arity = 1, $$111)); - if (s['$==']((function() {if (i['$=='](j)) { - return 1 - } else { - return 0 - }; return nil; })())) { + if (k == null) k = nil;; + return (s = $rb_plus(s, $rb_times(row['$[]'](k).$conj(), self.$rows()['$[]'](k)['$[]'](j))));}, {$$arity: 1, $$s: self}); + if ($eqeq(s, ($eqeq(i, j) ? (1) : (0)))) { return nil } else { Opal.ret(false) - };}, $$110.$$s = self, $$110.$$arity = 1, $$110));}, $$109.$$s = self, $$109.$$arity = 2, $$109)); + };}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}); return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_unitary$ques$108.$$arity = 0); + }, 0); - Opal.def(self, '$upper_triangular?', $Matrix_upper_triangular$ques$112 = function() { + $def(self, '$upper_triangular?', function $Matrix_upper_triangular$ques$84() { var self = this; return $send(self.$each("strict_lower"), 'all?', [], "zero?".$to_proc()) - }, $Matrix_upper_triangular$ques$112.$$arity = 0); + }, 0); - Opal.def(self, '$zero?', $Matrix_zero$ques$113 = function() { + $def(self, '$zero?', function $Matrix_zero$ques$85() { var self = this; return $send(self, 'all?', [], "zero?".$to_proc()) - }, $Matrix_zero$ques$113.$$arity = 0); + }, 0); - Opal.def(self, '$==', $Matrix_$eq_eq$114 = function(other) { - var self = this, $ret_or_22 = nil; + $def(self, '$==', function $Matrix_$eq_eq$86(other) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_22 = $$($nesting, 'Matrix')['$==='](other)))) { - return self.$column_count()['$=='](other.$column_count()) - } else { - return $ret_or_22 - }; return nil; })())) { - } else { + if (!($eqeqeq($$('Matrix'), other) && ($eqeq(self.$column_count(), other.$column_count())))) { return false }; return self.$rows()['$=='](other.$rows()); - }, $Matrix_$eq_eq$114.$$arity = 1); + }, 1); - Opal.def(self, '$eql?', $Matrix_eql$ques$115 = function(other) { - var self = this, $ret_or_23 = nil; + $def(self, '$eql?', function $Matrix_eql$ques$87(other) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_23 = $$($nesting, 'Matrix')['$==='](other)))) { - return self.$column_count()['$=='](other.$column_count()) - } else { - return $ret_or_23 - }; return nil; })())) { - } else { + if (!($eqeqeq($$('Matrix'), other) && ($eqeq(self.$column_count(), other.$column_count())))) { return false }; return self.$rows()['$eql?'](other.$rows()); - }, $Matrix_eql$ques$115.$$arity = 1); + }, 1); - Opal.def(self, '$clone', $Matrix_clone$116 = function $$clone() { + $def(self, '$clone', function $$clone() { var self = this; return self.$new_matrix($send(self.rows, 'map', [], "dup".$to_proc()), self.$column_count()) - }, $Matrix_clone$116.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $Matrix_hash$117 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return self.rows.$hash() - }, $Matrix_hash$117.$$arity = 0); + }, 0); - Opal.def(self, '$*', $Matrix_$$118 = function(m) { - var $$119, $$121, self = this, $case = nil, rows = nil, r = nil; + $def(self, '$*', function $Matrix_$$88(m) { + var self = this, $ret_or_1 = nil, rows = nil, r = nil; - return (function() {$case = m; - if ($$($nesting, 'Numeric')['$===']($case)) { - rows = $send(self.rows, 'collect', [], ($$119 = function(row){var self = $$119.$$s == null ? this : $$119.$$s, $$120; - - + if ($eqeqeq($$('Numeric'), ($ret_or_1 = m))) { - if (row == null) { - row = nil; - }; - return $send(row, 'collect', [], ($$120 = function(e){var self = $$120.$$s == null ? this : $$120.$$s; - + rows = $send(self.rows, 'collect', [], function $$89(row){ - if (e == null) { - e = nil; - }; - return $rb_times(e, m);}, $$120.$$s = self, $$120.$$arity = 1, $$120));}, $$119.$$s = self, $$119.$$arity = 1, $$119)); - return self.$new_matrix(rows, self.$column_count());} - else if ($$($nesting, 'Vector')['$===']($case)) { - m = self.$class().$column_vector(m); - r = $rb_times(self, m); - return r.$column(0);} - else if ($$($nesting, 'Matrix')['$===']($case)) { - if ($truthy(self.$column_count()['$!='](m.$row_count()))) { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch'))}; - rows = $send($$($nesting, 'Array'), 'new', [self.$row_count()], ($$121 = function(i){var self = $$121.$$s == null ? this : $$121.$$s, $$122; - - - - if (i == null) { - i = nil; + if (row == null) row = nil;; + return $send(row, 'collect', [], function $$90(e){ + + + if (e == null) e = nil;; + return $rb_times(e, m);}, 1);}, 1); + return self.$new_matrix(rows, self.$column_count()); + } else if ($eqeqeq($$('Vector'), $ret_or_1)) { + + m = self.$class().$column_vector(m); + r = $rb_times(self, m); + return r.$column(0); + } else if ($eqeqeq($$('Matrix'), $ret_or_1)) { + + if ($neqeq(self.$column_count(), m.$row_count())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - return $send($$($nesting, 'Array'), 'new', [m.$column_count()], ($$122 = function(j){var self = $$122.$$s == null ? this : $$122.$$s, $$123; + rows = $send($$('Array'), 'new', [self.$row_count()], function $$91(i){var self = $$91.$$s == null ? this : $$91.$$s; - if (j == null) { - j = nil; - }; - return $send(Opal.Range.$new(0,self.$column_count(), true), 'inject', [0], ($$123 = function(vij, k){var self = $$123.$$s == null ? this : $$123.$$s; + if (i == null) i = nil;; + return $send($$('Array'), 'new', [m.$column_count()], function $$92(j){var self = $$92.$$s == null ? this : $$92.$$s; - if (vij == null) { - vij = nil; - }; - - if (k == null) { - k = nil; - }; - return $rb_plus(vij, $rb_times(self['$[]'](i, k), m['$[]'](k, j)));}, $$123.$$s = self, $$123.$$arity = 2, $$123));}, $$122.$$s = self, $$122.$$arity = 1, $$122));}, $$121.$$s = self, $$121.$$arity = 1, $$121)); - return self.$new_matrix(rows, m.$column_count());} - else {return self.$apply_through_coercion(m, "*")}})() - }, $Matrix_$$118.$$arity = 1); + if (j == null) j = nil;; + return $send(Opal.Range.$new(0,self.$column_count(), true), 'inject', [0], function $$93(vij, k){var self = $$93.$$s == null ? this : $$93.$$s; + + + + if (vij == null) vij = nil;; + + if (k == null) k = nil;; + return $rb_plus(vij, $rb_times(self['$[]'](i, k), m['$[]'](k, j)));}, {$$arity: 2, $$s: self});}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + return self.$new_matrix(rows, m.$column_count()); + } else { + return self.$apply_through_coercion(m, "*") + } + }, 1); - Opal.def(self, '$+', $Matrix_$plus$124 = function(m) { - var $$125, self = this, $case = nil, $ret_or_24 = nil, rows = nil; + $def(self, '$+', function $Matrix_$plus$94(m) { + var self = this, $ret_or_1 = nil, rows = nil; - $case = m; - if ($$($nesting, 'Numeric')['$===']($case)) {$$($nesting, 'Matrix').$Raise($$($nesting, 'ErrOperationNotDefined'), "+", self.$class(), m.$class())} - else if ($$($nesting, 'Vector')['$===']($case)) {m = self.$class().$column_vector(m)} - else if ($$($nesting, 'Matrix')['$===']($case)) {nil} - else {return self.$apply_through_coercion(m, "+")}; - if ($truthy((function() {if ($truthy(($ret_or_24 = self.$row_count()['$=='](m.$row_count())))) { - return self.$column_count()['$=='](m.$column_count()) - } else { - return $ret_or_24 - }; return nil; })())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if ($eqeqeq($$('Numeric'), ($ret_or_1 = m))) { + $$('Matrix').$Raise($$('ErrOperationNotDefined'), "+", self.$class(), m.$class()) + } else if ($eqeqeq($$('Vector'), $ret_or_1)) { + m = self.$class().$column_vector(m) + } else if (!$eqeqeq($$('Matrix'), $ret_or_1)) { + return self.$apply_through_coercion(m, "+") }; - rows = $send($$($nesting, 'Array'), 'new', [self.$row_count()], ($$125 = function(i){var self = $$125.$$s == null ? this : $$125.$$s, $$126; + if (!($eqeq(self.$row_count(), m.$row_count()) && ($eqeq(self.$column_count(), m.$column_count())))) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) + }; + rows = $send($$('Array'), 'new', [self.$row_count()], function $$95(i){var self = $$95.$$s == null ? this : $$95.$$s; - if (i == null) { - i = nil; - }; - return $send($$($nesting, 'Array'), 'new', [self.$column_count()], ($$126 = function(j){var self = $$126.$$s == null ? this : $$126.$$s; + if (i == null) i = nil;; + return $send($$('Array'), 'new', [self.$column_count()], function $$96(j){var self = $$96.$$s == null ? this : $$96.$$s; - if (j == null) { - j = nil; - }; - return $rb_plus(self['$[]'](i, j), m['$[]'](i, j));}, $$126.$$s = self, $$126.$$arity = 1, $$126));}, $$125.$$s = self, $$125.$$arity = 1, $$125)); + if (j == null) j = nil;; + return $rb_plus(self['$[]'](i, j), m['$[]'](i, j));}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); return self.$new_matrix(rows, self.$column_count()); - }, $Matrix_$plus$124.$$arity = 1); + }, 1); - Opal.def(self, '$-', $Matrix_$minus$127 = function(m) { - var $$128, self = this, $case = nil, $ret_or_25 = nil, rows = nil; + $def(self, '$-', function $Matrix_$minus$97(m) { + var self = this, $ret_or_1 = nil, rows = nil; - $case = m; - if ($$($nesting, 'Numeric')['$===']($case)) {$$($nesting, 'Matrix').$Raise($$($nesting, 'ErrOperationNotDefined'), "-", self.$class(), m.$class())} - else if ($$($nesting, 'Vector')['$===']($case)) {m = self.$class().$column_vector(m)} - else if ($$($nesting, 'Matrix')['$===']($case)) {nil} - else {return self.$apply_through_coercion(m, "-")}; - if ($truthy((function() {if ($truthy(($ret_or_25 = self.$row_count()['$=='](m.$row_count())))) { - return self.$column_count()['$=='](m.$column_count()) - } else { - return $ret_or_25 - }; return nil; })())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if ($eqeqeq($$('Numeric'), ($ret_or_1 = m))) { + $$('Matrix').$Raise($$('ErrOperationNotDefined'), "-", self.$class(), m.$class()) + } else if ($eqeqeq($$('Vector'), $ret_or_1)) { + m = self.$class().$column_vector(m) + } else if (!$eqeqeq($$('Matrix'), $ret_or_1)) { + return self.$apply_through_coercion(m, "-") + }; + if (!($eqeq(self.$row_count(), m.$row_count()) && ($eqeq(self.$column_count(), m.$column_count())))) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - rows = $send($$($nesting, 'Array'), 'new', [self.$row_count()], ($$128 = function(i){var self = $$128.$$s == null ? this : $$128.$$s, $$129; + rows = $send($$('Array'), 'new', [self.$row_count()], function $$98(i){var self = $$98.$$s == null ? this : $$98.$$s; - if (i == null) { - i = nil; - }; - return $send($$($nesting, 'Array'), 'new', [self.$column_count()], ($$129 = function(j){var self = $$129.$$s == null ? this : $$129.$$s; + if (i == null) i = nil;; + return $send($$('Array'), 'new', [self.$column_count()], function $$99(j){var self = $$99.$$s == null ? this : $$99.$$s; - if (j == null) { - j = nil; - }; - return $rb_minus(self['$[]'](i, j), m['$[]'](i, j));}, $$129.$$s = self, $$129.$$arity = 1, $$129));}, $$128.$$s = self, $$128.$$arity = 1, $$128)); + if (j == null) j = nil;; + return $rb_minus(self['$[]'](i, j), m['$[]'](i, j));}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); return self.$new_matrix(rows, self.$column_count()); - }, $Matrix_$minus$127.$$arity = 1); + }, 1); - Opal.def(self, '$/', $Matrix_$slash$130 = function(other) { - var $$131, self = this, $case = nil, rows = nil; + $def(self, '$/', function $Matrix_$slash$100(other) { + var self = this, $ret_or_1 = nil, rows = nil; - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) { - rows = $send(self.rows, 'collect', [], ($$131 = function(row){var self = $$131.$$s == null ? this : $$131.$$s, $$132; - - + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { - if (row == null) { - row = nil; - }; - return $send(row, 'collect', [], ($$132 = function(e){var self = $$132.$$s == null ? this : $$132.$$s; - + rows = $send(self.rows, 'collect', [], function $$101(row){ - if (e == null) { - e = nil; - }; - return $rb_divide(e, other);}, $$132.$$s = self, $$132.$$arity = 1, $$132));}, $$131.$$s = self, $$131.$$arity = 1, $$131)); - return self.$new_matrix(rows, self.$column_count());} - else if ($$($nesting, 'Matrix')['$===']($case)) {return $rb_times(self, other.$inverse())} - else {return self.$apply_through_coercion(other, "/")}})() - }, $Matrix_$slash$130.$$arity = 1); + if (row == null) row = nil;; + return $send(row, 'collect', [], function $$102(e){ + + + if (e == null) e = nil;; + return $rb_divide(e, other);}, 1);}, 1); + return self.$new_matrix(rows, self.$column_count()); + } else if ($eqeqeq($$('Matrix'), $ret_or_1)) { + return $rb_times(self, other.$inverse()) + } else { + return self.$apply_through_coercion(other, "/") + } + }, 1); - Opal.def(self, '$hadamard_product', $Matrix_hadamard_product$133 = function $$hadamard_product(m) { - var $$134, self = this; - - return $send(self, 'combine', [m], ($$134 = function(a, b){var self = $$134.$$s == null ? this : $$134.$$s; + $def(self, '$hadamard_product', function $$hadamard_product(m) { + var self = this; + return $send(self, 'combine', [m], function $$103(a, b){ - if (a == null) { - a = nil; - }; + if (a == null) a = nil;; - if (b == null) { - b = nil; - }; - return $rb_times(a, b);}, $$134.$$s = self, $$134.$$arity = 2, $$134)) - }, $Matrix_hadamard_product$133.$$arity = 1); + if (b == null) b = nil;; + return $rb_times(a, b);}, 2) + }, 1); self.$alias_method("entrywise_product", "hadamard_product"); - Opal.def(self, '$inverse', $Matrix_inverse$135 = function $$inverse() { + $def(self, '$inverse', function $$inverse() { var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; return self.$class().$I(self.$row_count()).$send("inverse_from", self); - }, $Matrix_inverse$135.$$arity = 0); + }, 0); $alias(self, "inv", "inverse"); - Opal.def(self, '$inverse_from', $Matrix_inverse_from$136 = function $$inverse_from(src) { - var $$137, self = this, last = nil, a = nil; + $def(self, '$inverse_from', function $$inverse_from(src) { + var self = this, last = nil, a = nil; last = $rb_minus(self.$row_count(), 1); a = src.$to_a(); - $send((0), 'upto', [last], ($$137 = function(k){var self = $$137.$$s == null ? this : $$137.$$s, $$138, $a, $$139, $$142, $$143, i = nil, akk = nil; + $send((0), 'upto', [last], function $$104(k){var $a, self = $$104.$$s == null ? this : $$104.$$s, i = nil, akk = nil; if (self.rows == null) self.rows = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; i = k; akk = a['$[]'](k)['$[]'](k).$abs(); - $send($rb_plus(k, 1), 'upto', [last], ($$138 = function(j){var self = $$138.$$s == null ? this : $$138.$$s, v = nil; + $send($rb_plus(k, 1), 'upto', [last], function $$105(j){var v = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; v = a['$[]'](j)['$[]'](k).$abs(); if ($truthy($rb_gt(v, akk))) { @@ -4034,239 +3340,224 @@ Opal.modules["matrix"] = function(Opal) { return (akk = v); } else { return nil - };}, $$138.$$s = self, $$138.$$arity = 1, $$138)); - if (akk['$=='](0)) { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrNotRegular'))}; - if ($truthy(i['$!='](k))) { + };}, 1); + if ($eqeq(akk, 0)) { + $$('Matrix').$Raise($$('ErrNotRegular')) + }; + if ($neqeq(i, k)) { $a = [a['$[]'](k), a['$[]'](i)], a['$[]='](i, $a[0]), a['$[]='](k, $a[1]), $a; - $a = [self.rows['$[]'](k), self.rows['$[]'](i)], self.rows['$[]='](i, $a[0]), self.rows['$[]='](k, $a[1]), $a;}; + $a = [self.rows['$[]'](k), self.rows['$[]'](i)], self.rows['$[]='](i, $a[0]), self.rows['$[]='](k, $a[1]), $a; + }; akk = a['$[]'](k)['$[]'](k); - $send((0), 'upto', [last], ($$139 = function(ii){var self = $$139.$$s == null ? this : $$139.$$s, $$140, $$141, q = nil, $writer = nil; + $send((0), 'upto', [last], function $$106(ii){var self = $$106.$$s == null ? this : $$106.$$s, q = nil, $writer = nil; - if (ii == null) { - ii = nil; + if (ii == null) ii = nil;; + if ($eqeq(ii, k)) { + return nil; }; - if (ii['$=='](k)) { - return nil;}; q = a['$[]'](ii)['$[]'](k).$quo(akk); $writer = [k, 0]; - $send(a['$[]'](ii), '[]=', Opal.to_a($writer)); + $send(a['$[]'](ii), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $send($rb_plus(k, 1), 'upto', [last], ($$140 = function(j){var self = $$140.$$s == null ? this : $$140.$$s, $binary_op_recvr_tmp_1 = nil; + $send($rb_plus(k, 1), 'upto', [last], function $$107(j){var $binary_op_recvr_tmp_1 = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $binary_op_recvr_tmp_1 = a['$[]'](ii); $writer = [j, $rb_minus($binary_op_recvr_tmp_1['$[]'](j), $rb_times(a['$[]'](k)['$[]'](j), q))]; - $send($binary_op_recvr_tmp_1, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$140.$$s = self, $$140.$$arity = 1, $$140)); - return $send((0), 'upto', [last], ($$141 = function(j){var self = $$141.$$s == null ? this : $$141.$$s, $binary_op_recvr_tmp_2 = nil; + $send($binary_op_recvr_tmp_1, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, 1); + return $send((0), 'upto', [last], function $$108(j){var self = $$108.$$s == null ? this : $$108.$$s, $binary_op_recvr_tmp_2 = nil; if (self.rows == null) self.rows = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $binary_op_recvr_tmp_2 = self.rows['$[]'](ii); $writer = [j, $rb_minus($binary_op_recvr_tmp_2['$[]'](j), $rb_times(self.rows['$[]'](k)['$[]'](j), q))]; - $send($binary_op_recvr_tmp_2, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$141.$$s = self, $$141.$$arity = 1, $$141));}, $$139.$$s = self, $$139.$$arity = 1, $$139)); - $send($rb_plus(k, 1), 'upto', [last], ($$142 = function(j){var self = $$142.$$s == null ? this : $$142.$$s, $writer = nil; + $send($binary_op_recvr_tmp_2, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + $send($rb_plus(k, 1), 'upto', [last], function $$109(j){var $writer = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, a['$[]'](k)['$[]'](j).$quo(akk)]; - $send(a['$[]'](k), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$142.$$s = self, $$142.$$arity = 1, $$142)); - return $send((0), 'upto', [last], ($$143 = function(j){var self = $$143.$$s == null ? this : $$143.$$s, $writer = nil; + $send(a['$[]'](k), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + return $send((0), 'upto', [last], function $$110(j){var self = $$110.$$s == null ? this : $$110.$$s, $writer = nil; if (self.rows == null) self.rows = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, self.rows['$[]'](k)['$[]'](j).$quo(akk)]; - $send(self.rows['$[]'](k), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$143.$$s = self, $$143.$$arity = 1, $$143));}, $$137.$$s = self, $$137.$$arity = 1, $$137)); + $send(self.rows['$[]'](k), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); return self; - }, $Matrix_inverse_from$136.$$arity = 1); + }, 1); self.$private("inverse_from"); - Opal.def(self, '$**', $Matrix_$$$144 = function(other) {try { + $def(self, '$**', function $Matrix_$$$111(other) {try { - var $$145, $a, $b, $$146, self = this, $case = nil, x = nil, z = nil, v = nil, d = nil, v_inv = nil; - - return (function() {$case = other; - if ($$($nesting, 'Integer')['$===']($case)) { - x = self; - if ($truthy($rb_le(other, 0))) { - - x = self.$inverse(); - if (other['$=='](0)) { - return self.$class().$identity(self.$column_count())}; - other = other['$-@']();}; - z = nil; - return $send(self, 'loop', [], ($$145 = function(){var self = $$145.$$s == null ? this : $$145.$$s; + var $a, $b, self = this, $ret_or_1 = nil, x = nil, z = nil, v = nil, d = nil, v_inv = nil; + if ($eqeqeq($$('Integer'), ($ret_or_1 = other))) { - if (other['$[]'](0)['$=='](1)) { - z = (function() {if ($truthy(z)) { - return $rb_times(z, x) - } else { - return x - }; return nil; })()}; - if ($truthy((other = other['$>>'](1))['$zero?']())) { - Opal.ret(z)}; - return (x = $rb_times(x, x));}, $$145.$$s = self, $$145.$$arity = 0, $$145));} - else if ($$($nesting, 'Numeric')['$===']($case)) { - $b = self.$eigensystem(), $a = Opal.to_ary($b), (v = ($a[0] == null ? nil : $a[0])), (d = ($a[1] == null ? nil : $a[1])), (v_inv = ($a[2] == null ? nil : $a[2])), $b; - return $rb_times($rb_times(v, $send(self.$class(), 'diagonal', Opal.to_a($send(d.$each("diagonal"), 'map', [], ($$146 = function(e){var self = $$146.$$s == null ? this : $$146.$$s; - - - - if (e == null) { - e = nil; + x = self; + if ($truthy($rb_le(other, 0))) { + + x = self.$inverse(); + if ($eqeq(other, 0)) { + return self.$class().$identity(self.$column_count()) + }; + other = other['$-@'](); }; - return e['$**'](other);}, $$146.$$s = self, $$146.$$arity = 1, $$146))))), v_inv);} - else {return $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrOperationNotDefined'), "**", self.$class(), other.$class())}})() + z = nil; + return $send(self, 'loop', [], function $$112(){ + + if ($eqeq(other['$[]'](0), 1)) { + z = ($truthy(z) ? ($rb_times(z, x)) : (x)) + }; + if ($truthy((other = other['$>>'](1))['$zero?']())) { + Opal.ret(z) + }; + return (x = $rb_times(x, x));}, 0); + } else if ($eqeqeq($$('Numeric'), $ret_or_1)) { + + $b = self.$eigensystem(), $a = $to_ary($b), (v = ($a[0] == null ? nil : $a[0])), (d = ($a[1] == null ? nil : $a[1])), (v_inv = ($a[2] == null ? nil : $a[2])), $b; + return $rb_times($rb_times(v, $send(self.$class(), 'diagonal', $to_a($send(d.$each("diagonal"), 'map', [], function $$113(e){ + + + if (e == null) e = nil;; + return e['$**'](other);}, 1)))), v_inv); + } else { + return $$('Matrix').$Raise($$('ErrOperationNotDefined'), "**", self.$class(), other.$class()) + } } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_$$$144.$$arity = 1); + }, 1); - Opal.def(self, '$+@', $Matrix_$plus$$147 = function() { + $def(self, '$+@', function $Matrix_$plus$$114() { var self = this; return self - }, $Matrix_$plus$$147.$$arity = 0); + }, 0); - Opal.def(self, '$-@', $Matrix_$minus$$148 = function() { - var $$149, self = this; - - return $send(self, 'collect', [], ($$149 = function(e){var self = $$149.$$s == null ? this : $$149.$$s; + $def(self, '$-@', function $Matrix_$minus$$115() { + var self = this; + return $send(self, 'collect', [], function $$116(e){ - if (e == null) { - e = nil; - }; - return e['$-@']();}, $$149.$$s = self, $$149.$$arity = 1, $$149)) - }, $Matrix_$minus$$148.$$arity = 0); + if (e == null) e = nil;; + return e['$-@']();}, 1) + }, 0); - Opal.def(self, '$determinant', $Matrix_determinant$150 = function $$determinant() { - var $a, $b, self = this, m = nil, $case = nil, m0 = nil, m1 = nil, m2 = nil, m3 = nil; + $def(self, '$determinant', function $$determinant() { + var $a, $b, self = this, m = nil, $ret_or_1 = nil, m0 = nil, m1 = nil, m2 = nil, m3 = nil; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; m = self.rows; - return (function() {$case = self.$row_count(); - if ((0)['$===']($case)) {return 1} - else if ((1)['$===']($case)) {return m['$[]'](0)['$[]'](0)['$+@']()} - else if ((2)['$===']($case)) {return $rb_minus($rb_times(m['$[]'](0)['$[]'](0)['$+@'](), m['$[]'](1)['$[]'](1)), $rb_times(m['$[]'](0)['$[]'](1), m['$[]'](1)['$[]'](0)))} - else if ((3)['$===']($case)) { - $b = m, $a = Opal.to_ary($b), (m0 = ($a[0] == null ? nil : $a[0])), (m1 = ($a[1] == null ? nil : $a[1])), (m2 = ($a[2] == null ? nil : $a[2])), $b; - return $rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_times($rb_times(m0['$[]'](0)['$+@'](), m1['$[]'](1)), m2['$[]'](2)), $rb_times($rb_times(m0['$[]'](0), m1['$[]'](2)), m2['$[]'](1))), $rb_times($rb_times(m0['$[]'](1), m1['$[]'](0)), m2['$[]'](2))), $rb_times($rb_times(m0['$[]'](1), m1['$[]'](2)), m2['$[]'](0))), $rb_times($rb_times(m0['$[]'](2), m1['$[]'](0)), m2['$[]'](1))), $rb_times($rb_times(m0['$[]'](2), m1['$[]'](1)), m2['$[]'](0)));} - else if ((4)['$===']($case)) { - $b = m, $a = Opal.to_ary($b), (m0 = ($a[0] == null ? nil : $a[0])), (m1 = ($a[1] == null ? nil : $a[1])), (m2 = ($a[2] == null ? nil : $a[2])), (m3 = ($a[3] == null ? nil : $a[3])), $b; - return $rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_times($rb_times($rb_times(m0['$[]'](0)['$+@'](), m1['$[]'](1)), m2['$[]'](2)), m3['$[]'](3)), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](1)), m2['$[]'](3)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](2)), m2['$[]'](1)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](2)), m2['$[]'](3)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](3)), m2['$[]'](1)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](3)), m2['$[]'](2)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](0)), m2['$[]'](2)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](0)), m2['$[]'](3)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](2)), m2['$[]'](0)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](2)), m2['$[]'](3)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](3)), m2['$[]'](0)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](3)), m2['$[]'](2)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](0)), m2['$[]'](1)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](0)), m2['$[]'](3)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](1)), m2['$[]'](0)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](1)), m2['$[]'](3)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](3)), m2['$[]'](0)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](3)), m2['$[]'](1)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](0)), m2['$[]'](1)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](0)), m2['$[]'](2)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](1)), m2['$[]'](0)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](1)), m2['$[]'](2)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](2)), m2['$[]'](0)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](2)), m2['$[]'](1)), m3['$[]'](0)));} - else {return self.$determinant_bareiss()}})(); - }, $Matrix_determinant$150.$$arity = 0); + if ($eqeqeq(0, ($ret_or_1 = self.$row_count()))) { + return 1 + } else if ($eqeqeq(1, $ret_or_1)) { + return m['$[]'](0)['$[]'](0)['$+@']() + } else if ($eqeqeq(2, $ret_or_1)) { + return $rb_minus($rb_times(m['$[]'](0)['$[]'](0)['$+@'](), m['$[]'](1)['$[]'](1)), $rb_times(m['$[]'](0)['$[]'](1), m['$[]'](1)['$[]'](0))) + } else if ($eqeqeq(3, $ret_or_1)) { + + $b = m, $a = $to_ary($b), (m0 = ($a[0] == null ? nil : $a[0])), (m1 = ($a[1] == null ? nil : $a[1])), (m2 = ($a[2] == null ? nil : $a[2])), $b; + return $rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_times($rb_times(m0['$[]'](0)['$+@'](), m1['$[]'](1)), m2['$[]'](2)), $rb_times($rb_times(m0['$[]'](0), m1['$[]'](2)), m2['$[]'](1))), $rb_times($rb_times(m0['$[]'](1), m1['$[]'](0)), m2['$[]'](2))), $rb_times($rb_times(m0['$[]'](1), m1['$[]'](2)), m2['$[]'](0))), $rb_times($rb_times(m0['$[]'](2), m1['$[]'](0)), m2['$[]'](1))), $rb_times($rb_times(m0['$[]'](2), m1['$[]'](1)), m2['$[]'](0))); + } else if ($eqeqeq(4, $ret_or_1)) { + + $b = m, $a = $to_ary($b), (m0 = ($a[0] == null ? nil : $a[0])), (m1 = ($a[1] == null ? nil : $a[1])), (m2 = ($a[2] == null ? nil : $a[2])), (m3 = ($a[3] == null ? nil : $a[3])), $b; + return $rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_times($rb_times($rb_times(m0['$[]'](0)['$+@'](), m1['$[]'](1)), m2['$[]'](2)), m3['$[]'](3)), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](1)), m2['$[]'](3)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](2)), m2['$[]'](1)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](2)), m2['$[]'](3)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](3)), m2['$[]'](1)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](0), m1['$[]'](3)), m2['$[]'](2)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](0)), m2['$[]'](2)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](0)), m2['$[]'](3)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](2)), m2['$[]'](0)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](2)), m2['$[]'](3)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](3)), m2['$[]'](0)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](1), m1['$[]'](3)), m2['$[]'](2)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](0)), m2['$[]'](1)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](0)), m2['$[]'](3)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](1)), m2['$[]'](0)), m3['$[]'](3))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](1)), m2['$[]'](3)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](3)), m2['$[]'](0)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](2), m1['$[]'](3)), m2['$[]'](1)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](0)), m2['$[]'](1)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](0)), m2['$[]'](2)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](1)), m2['$[]'](0)), m3['$[]'](2))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](1)), m2['$[]'](2)), m3['$[]'](0))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](2)), m2['$[]'](0)), m3['$[]'](1))), $rb_times($rb_times($rb_times(m0['$[]'](3), m1['$[]'](2)), m2['$[]'](1)), m3['$[]'](0))); + } else { + return self.$determinant_bareiss() + }; + }, 0); self.$alias_method("det", "determinant"); - Opal.def(self, '$determinant_bareiss', $Matrix_determinant_bareiss$151 = function $$determinant_bareiss() {try { + $def(self, '$determinant_bareiss', function $$determinant_bareiss() {try { - var $$152, $$153, self = this, size = nil, last = nil, a = nil, no_pivot = nil, sign = nil, pivot = nil; + var self = this, size = nil, last = nil, a = nil, no_pivot = nil, sign = nil, pivot = nil; size = self.$row_count(); last = $rb_minus(size, 1); a = self.$to_a(); - no_pivot = $send($$($nesting, 'Proc'), 'new', [], ($$152 = function(){var self = $$152.$$s == null ? this : $$152.$$s; - - Opal.ret(0)}, $$152.$$s = self, $$152.$$arity = 0, $$152)); + no_pivot = $send($$('Proc'), 'new', [], function $$117(){ + Opal.ret(0)}, 0); sign = 1; pivot = 1; - $send(size, 'times', [], ($$153 = function(k){var self = $$153.$$s == null ? this : $$153.$$s, $$154, $a, $$155, previous_pivot = nil, switch$ = nil; + $send(size, 'times', [], function $$118(k){var $a, previous_pivot = nil, switch$ = nil; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; previous_pivot = pivot; - if ((pivot = a['$[]'](k)['$[]'](k))['$=='](0)) { + if ($eqeq((pivot = a['$[]'](k)['$[]'](k)), 0)) { - switch$ = $send(Opal.Range.$new($rb_plus(k, 1),size, true), 'find', [no_pivot], ($$154 = function(row){var self = $$154.$$s == null ? this : $$154.$$s; - + switch$ = $send(Opal.Range.$new($rb_plus(k, 1),size, true), 'find', [no_pivot], function $$119(row){ - if (row == null) { - row = nil; - }; - return a['$[]'](row)['$[]'](k)['$!='](0);}, $$154.$$s = self, $$154.$$arity = 1, $$154)); + if (row == null) row = nil;; + return a['$[]'](row)['$[]'](k)['$!='](0);}, 1); $a = [a['$[]'](k), a['$[]'](switch$)], a['$[]='](switch$, $a[0]), a['$[]='](k, $a[1]), $a; pivot = a['$[]'](k)['$[]'](k); - sign = sign['$-@']();}; - return $send($rb_plus(k, 1), 'upto', [last], ($$155 = function(i){var self = $$155.$$s == null ? this : $$155.$$s, $$156, ai = nil; + sign = sign['$-@'](); + }; + return $send($rb_plus(k, 1), 'upto', [last], function $$120(i){var ai = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; ai = a['$[]'](i); - return $send($rb_plus(k, 1), 'upto', [last], ($$156 = function(j){var self = $$156.$$s == null ? this : $$156.$$s, $writer = nil; + return $send($rb_plus(k, 1), 'upto', [last], function $$121(j){var $writer = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, $rb_divide($rb_minus($rb_times(pivot, ai['$[]'](j)), $rb_times(ai['$[]'](k), a['$[]'](k)['$[]'](j))), previous_pivot)]; - $send(ai, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$156.$$s = self, $$156.$$arity = 1, $$156));}, $$155.$$s = self, $$155.$$arity = 1, $$155));}, $$153.$$s = self, $$153.$$arity = 1, $$153)); + $send(ai, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1);}, 1);}, 1); return $rb_times(sign, pivot); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Matrix_determinant_bareiss$151.$$arity = 0); + }, 0); self.$private("determinant_bareiss"); - Opal.def(self, '$determinant_e', $Matrix_determinant_e$157 = function $$determinant_e() { + $def(self, '$determinant_e', function $$determinant_e() { var self = this; self.$warn("Matrix#determinant_e is deprecated; use #determinant", $hash2(["uplevel"], {"uplevel": 1})); return self.$determinant(); - }, $Matrix_determinant_e$157.$$arity = 0); + }, 0); $alias(self, "det_e", "determinant_e"); - Opal.def(self, '$hstack', $Matrix_hstack$158 = function $$hstack($a) { + $def(self, '$hstack', function $$hstack($a) { var $post_args, matrices, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); matrices = $post_args;; - return $send(self.$class(), 'hstack', [self].concat(Opal.to_a(matrices))); - }, $Matrix_hstack$158.$$arity = -1); + return $send(self.$class(), 'hstack', [self].concat($to_a(matrices))); + }, -1); - Opal.def(self, '$rank', $Matrix_rank$159 = function $$rank() { - var $$160, self = this, a = nil, last_column = nil, last_row = nil, pivot_row = nil, previous_pivot = nil; + $def(self, '$rank', function $$rank() { + var self = this, a = nil, last_column = nil, last_row = nil, pivot_row = nil, previous_pivot = nil; a = self.$to_a(); @@ -4274,261 +3565,234 @@ Opal.modules["matrix"] = function(Opal) { last_row = $rb_minus(self.$row_count(), 1); pivot_row = 0; previous_pivot = 1; - $send((0), 'upto', [last_column], ($$160 = function(k){var self = $$160.$$s == null ? this : $$160.$$s, $$161, $a, $$162, switch_row = nil, pivot = nil; + $send((0), 'upto', [last_column], function $$122(k){var $a, switch_row = nil, pivot = nil; - if (k == null) { - k = nil; - }; - switch_row = $send(Opal.Range.$new(pivot_row, last_row, false), 'find', [], ($$161 = function(row){var self = $$161.$$s == null ? this : $$161.$$s; - + if (k == null) k = nil;; + switch_row = $send(Opal.Range.$new(pivot_row, last_row, false), 'find', [], function $$123(row){ - if (row == null) { - row = nil; - }; - return a['$[]'](row)['$[]'](k)['$!='](0);}, $$161.$$s = self, $$161.$$arity = 1, $$161)); + if (row == null) row = nil;; + return a['$[]'](row)['$[]'](k)['$!='](0);}, 1); if ($truthy(switch_row)) { - if (pivot_row['$=='](switch_row)) { - } else { + if (!$eqeq(pivot_row, switch_row)) { $a = [a['$[]'](pivot_row), a['$[]'](switch_row)], a['$[]='](switch_row, $a[0]), a['$[]='](pivot_row, $a[1]), $a }; pivot = a['$[]'](pivot_row)['$[]'](k); - $send($rb_plus(pivot_row, 1), 'upto', [last_row], ($$162 = function(i){var self = $$162.$$s == null ? this : $$162.$$s, $$163, ai = nil; + $send($rb_plus(pivot_row, 1), 'upto', [last_row], function $$124(i){var ai = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; ai = a['$[]'](i); - return $send($rb_plus(k, 1), 'upto', [last_column], ($$163 = function(j){var self = $$163.$$s == null ? this : $$163.$$s, $writer = nil; + return $send($rb_plus(k, 1), 'upto', [last_column], function $$125(j){var $writer = nil; - if (j == null) { - j = nil; - }; + if (j == null) j = nil;; $writer = [j, $rb_divide($rb_minus($rb_times(pivot, ai['$[]'](j)), $rb_times(ai['$[]'](k), a['$[]'](pivot_row)['$[]'](j))), previous_pivot)]; - $send(ai, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$163.$$s = self, $$163.$$arity = 1, $$163));}, $$162.$$s = self, $$162.$$arity = 1, $$162)); + $send(ai, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1);}, 1); pivot_row = $rb_plus(pivot_row, 1); return (previous_pivot = pivot); } else { return nil - };}, $$160.$$s = self, $$160.$$arity = 1, $$160)); + };}, 1); return pivot_row; - }, $Matrix_rank$159.$$arity = 0); + }, 0); - Opal.def(self, '$rank_e', $Matrix_rank_e$164 = function $$rank_e() { + $def(self, '$rank_e', function $$rank_e() { var self = this; self.$warn("Matrix#rank_e is deprecated; use #rank", $hash2(["uplevel"], {"uplevel": 1})); return self.$rank(); - }, $Matrix_rank_e$164.$$arity = 0); + }, 0); - Opal.def(self, '$round', $Matrix_round$165 = function $$round(ndigits) { - var $$166, self = this; + $def(self, '$round', function $$round(ndigits) { + var self = this; - if (ndigits == null) { - ndigits = 0; - }; - return $send(self, 'map', [], ($$166 = function(e){var self = $$166.$$s == null ? this : $$166.$$s; - + if (ndigits == null) ndigits = 0;; + return $send(self, 'map', [], function $$126(e){ - if (e == null) { - e = nil; - }; - return e.$round(ndigits);}, $$166.$$s = self, $$166.$$arity = 1, $$166)); - }, $Matrix_round$165.$$arity = -1); + if (e == null) e = nil;; + return e.$round(ndigits);}, 1); + }, -1); - Opal.def(self, '$trace', $Matrix_trace$167 = function $$trace() { - var $$168, self = this; + $def(self, '$trace', function $$trace() { + var self = this; - if ($truthy(self['$square?']())) { - } else { - $$($nesting, 'Matrix').$Raise($$($nesting, 'ErrDimensionMismatch')) + if (!$truthy(self['$square?']())) { + $$('Matrix').$Raise($$('ErrDimensionMismatch')) }; - return $send(Opal.Range.$new(0,self.$column_count(), true), 'inject', [0], ($$168 = function(tr, i){var self = $$168.$$s == null ? this : $$168.$$s; + return $send(Opal.Range.$new(0,self.$column_count(), true), 'inject', [0], function $$127(tr, i){var self = $$127.$$s == null ? this : $$127.$$s; if (self.rows == null) self.rows = nil; - if (tr == null) { - tr = nil; - }; + if (tr == null) tr = nil;; - if (i == null) { - i = nil; - }; - return $rb_plus(tr, self.rows['$[]'](i)['$[]'](i));}, $$168.$$s = self, $$168.$$arity = 2, $$168)); - }, $Matrix_trace$167.$$arity = 0); + if (i == null) i = nil;; + return $rb_plus(tr, self.rows['$[]'](i)['$[]'](i));}, {$$arity: 2, $$s: self}); + }, 0); $alias(self, "tr", "trace"); - Opal.def(self, '$transpose', $Matrix_transpose$169 = function $$transpose() { + $def(self, '$transpose', function $$transpose() { var self = this; if ($truthy(self.$row_count()['$zero?']())) { - return self.$class().$empty(self.$column_count(), 0)}; + return self.$class().$empty(self.$column_count(), 0) + }; return self.$new_matrix(self.rows.$transpose(), self.$row_count()); - }, $Matrix_transpose$169.$$arity = 0); + }, 0); $alias(self, "t", "transpose"); - Opal.def(self, '$vstack', $Matrix_vstack$170 = function $$vstack($a) { + $def(self, '$vstack', function $$vstack($a) { var $post_args, matrices, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); matrices = $post_args;; - return $send(self.$class(), 'vstack', [self].concat(Opal.to_a(matrices))); - }, $Matrix_vstack$170.$$arity = -1); + return $send(self.$class(), 'vstack', [self].concat($to_a(matrices))); + }, -1); - Opal.def(self, '$eigensystem', $Matrix_eigensystem$171 = function $$eigensystem() { + $def(self, '$eigensystem', function $$eigensystem() { var self = this; - return $$($nesting, 'EigenvalueDecomposition').$new(self) - }, $Matrix_eigensystem$171.$$arity = 0); + return $$('EigenvalueDecomposition').$new(self) + }, 0); $alias(self, "eigen", "eigensystem"); - Opal.def(self, '$lup', $Matrix_lup$172 = function $$lup() { + $def(self, '$lup', function $$lup() { var self = this; - return $$($nesting, 'LUPDecomposition').$new(self) - }, $Matrix_lup$172.$$arity = 0); + return $$('LUPDecomposition').$new(self) + }, 0); $alias(self, "lup_decomposition", "lup"); - Opal.def(self, '$conjugate', $Matrix_conjugate$173 = function $$conjugate() { + $def(self, '$conjugate', function $$conjugate() { var self = this; return $send(self, 'collect', [], "conjugate".$to_proc()) - }, $Matrix_conjugate$173.$$arity = 0); + }, 0); $alias(self, "conj", "conjugate"); - Opal.def(self, '$imaginary', $Matrix_imaginary$174 = function $$imaginary() { + $def(self, '$imaginary', function $$imaginary() { var self = this; return $send(self, 'collect', [], "imaginary".$to_proc()) - }, $Matrix_imaginary$174.$$arity = 0); + }, 0); $alias(self, "imag", "imaginary"); - Opal.def(self, '$real', $Matrix_real$175 = function $$real() { + $def(self, '$real', function $$real() { var self = this; return $send(self, 'collect', [], "real".$to_proc()) - }, $Matrix_real$175.$$arity = 0); + }, 0); - Opal.def(self, '$rect', $Matrix_rect$176 = function $$rect() { + $def(self, '$rect', function $$rect() { var self = this; return [self.$real(), self.$imag()] - }, $Matrix_rect$176.$$arity = 0); + }, 0); $alias(self, "rectangular", "rect"); - Opal.def(self, '$coerce', $Matrix_coerce$177 = function $$coerce(other) { - var self = this, $case = nil; + $def(self, '$coerce', function $$coerce(other) { + var self = this, $ret_or_1 = nil; - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) {return [$$($nesting, 'Scalar').$new(other), self]} - else {return self.$raise($$($nesting, 'TypeError'), "" + (self.$class()) + " can't be coerced into " + (other.$class()))}})() - }, $Matrix_coerce$177.$$arity = 1); + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return [$$('Scalar').$new(other), self] + } else { + return self.$raise($$('TypeError'), "" + (self.$class()) + " can't be coerced into " + (other.$class())) + } + }, 1); - Opal.def(self, '$row_vectors', $Matrix_row_vectors$178 = function $$row_vectors() { - var $$179, self = this; + $def(self, '$row_vectors', function $$row_vectors() { + var self = this; - return $send($$($nesting, 'Array'), 'new', [self.$row_count()], ($$179 = function(i){var self = $$179.$$s == null ? this : $$179.$$s; + return $send($$('Array'), 'new', [self.$row_count()], function $$128(i){var self = $$128.$$s == null ? this : $$128.$$s; - if (i == null) { - i = nil; - }; - return self.$row(i);}, $$179.$$s = self, $$179.$$arity = 1, $$179)) - }, $Matrix_row_vectors$178.$$arity = 0); + if (i == null) i = nil;; + return self.$row(i);}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$column_vectors', $Matrix_column_vectors$180 = function $$column_vectors() { - var $$181, self = this; + $def(self, '$column_vectors', function $$column_vectors() { + var self = this; - return $send($$($nesting, 'Array'), 'new', [self.$column_count()], ($$181 = function(i){var self = $$181.$$s == null ? this : $$181.$$s; + return $send($$('Array'), 'new', [self.$column_count()], function $$129(i){var self = $$129.$$s == null ? this : $$129.$$s; - if (i == null) { - i = nil; - }; - return self.$column(i);}, $$181.$$s = self, $$181.$$arity = 1, $$181)) - }, $Matrix_column_vectors$180.$$arity = 0); + if (i == null) i = nil;; + return self.$column(i);}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$to_matrix', $Matrix_to_matrix$182 = function $$to_matrix() { + $def(self, '$to_matrix', function $$to_matrix() { var self = this; return self - }, $Matrix_to_matrix$182.$$arity = 0); + }, 0); - Opal.def(self, '$to_a', $Matrix_to_a$183 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; return $send(self.rows, 'collect', [], "dup".$to_proc()) - }, $Matrix_to_a$183.$$arity = 0); + }, 0); - Opal.def(self, '$elements_to_f', $Matrix_elements_to_f$184 = function $$elements_to_f() { + $def(self, '$elements_to_f', function $$elements_to_f() { var self = this; self.$warn("Matrix#elements_to_f is deprecated, use map(&:to_f)", $hash2(["uplevel"], {"uplevel": 1})); return $send(self, 'map', [], "to_f".$to_proc()); - }, $Matrix_elements_to_f$184.$$arity = 0); + }, 0); - Opal.def(self, '$elements_to_i', $Matrix_elements_to_i$185 = function $$elements_to_i() { + $def(self, '$elements_to_i', function $$elements_to_i() { var self = this; self.$warn("Matrix#elements_to_i is deprecated, use map(&:to_i)", $hash2(["uplevel"], {"uplevel": 1})); return $send(self, 'map', [], "to_i".$to_proc()); - }, $Matrix_elements_to_i$185.$$arity = 0); + }, 0); - Opal.def(self, '$elements_to_r', $Matrix_elements_to_r$186 = function $$elements_to_r() { + $def(self, '$elements_to_r', function $$elements_to_r() { var self = this; self.$warn("Matrix#elements_to_r is deprecated, use map(&:to_r)", $hash2(["uplevel"], {"uplevel": 1})); return $send(self, 'map', [], "to_r".$to_proc()); - }, $Matrix_elements_to_r$186.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Matrix_to_s$187 = function $$to_s() { - var $$188, self = this; + $def(self, '$to_s', function $$to_s() { + var self = this; if ($truthy(self['$empty?']())) { return "" + (self.$class()) + ".empty(" + (self.$row_count()) + ", " + (self.$column_count()) + ")" } else { - return $rb_plus($rb_plus("" + (self.$class()) + "[", $send(self.rows, 'collect', [], ($$188 = function(row){var self = $$188.$$s == null ? this : $$188.$$s, $$189; - + return $rb_plus($rb_plus("" + (self.$class()) + "[", $send(self.rows, 'collect', [], function $$130(row){ - if (row == null) { - row = nil; - }; - return $rb_plus($rb_plus("[", $send(row, 'collect', [], ($$189 = function(e){var self = $$189.$$s == null ? this : $$189.$$s; - + if (row == null) row = nil;; + return $rb_plus($rb_plus("[", $send(row, 'collect', [], function $$131(e){ - if (e == null) { - e = nil; - }; - return e.$to_s();}, $$189.$$s = self, $$189.$$arity = 1, $$189)).$join(", ")), "]");}, $$188.$$s = self, $$188.$$arity = 1, $$188)).$join(", ")), "]") + if (e == null) e = nil;; + return e.$to_s();}, 1).$join(", ")), "]");}, 1).$join(", ")), "]") } - }, $Matrix_to_s$187.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $Matrix_inspect$190 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; if ($truthy(self['$empty?']())) { @@ -4536,225 +3800,232 @@ Opal.modules["matrix"] = function(Opal) { } else { return "" + (self.$class()) + (self.rows.$inspect()) } - }, $Matrix_inspect$190.$$arity = 0); + }, 0); (function($base, $parent_nesting) { var self = $module($base, 'ConversionHelper'); - var $nesting = [self].concat($parent_nesting), $ConversionHelper_convert_to_array$191; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$convert_to_array', $ConversionHelper_convert_to_array$191 = function $$convert_to_array(obj, copy) { - var self = this, $case = nil, converted = nil, e = nil; + $def(self, '$convert_to_array', function $$convert_to_array(obj, copy) { + var self = this, $ret_or_1 = nil, converted = nil, e = nil; - if (copy == null) { - copy = false; - }; - return (function() {$case = obj; - if ($$($nesting, 'Array')['$===']($case)) {if ($truthy(copy)) { - return obj.$dup() - } else { - return obj - }} - else if ($$($nesting, 'Vector')['$===']($case)) {return obj.$to_a()} - else { - - try { - converted = obj.$to_ary() - } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) - try { - self.$raise($$($nesting, 'TypeError'), "" + "can't convert " + (obj.$class()) + " into an Array (" + (e.$message()) + ")") - } finally { Opal.pop_exception(); } - } else { throw $err; } - };; - if ($truthy(converted['$is_a?']($$($nesting, 'Array')))) { + if (copy == null) copy = false;; + if ($eqeqeq($$('Array'), ($ret_or_1 = obj))) { + if ($truthy(copy)) { + return obj.$dup() + } else { + return obj + } + } else if ($eqeqeq($$('Vector'), $ret_or_1)) { + return obj.$to_a() } else { - self.$raise($$($nesting, 'TypeError'), "" + (obj.$class()) + "#to_ary should return an Array") + + + try { + converted = obj.$to_ary() + } catch ($err) { + if (Opal.rescue($err, [$$('Exception')])) {(e = $err) + try { + self.$raise($$('TypeError'), "can't convert " + (obj.$class()) + " into an Array (" + (e.$message()) + ")") + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + if (!$truthy(converted['$is_a?']($$('Array')))) { + self.$raise($$('TypeError'), "" + (obj.$class()) + "#to_ary should return an Array") + }; + return converted; }; - return converted;}})(); - }, $ConversionHelper_convert_to_array$191.$$arity = -2); + }, -2); return self.$private("convert_to_array"); })($nesting[0], $nesting); - self.$extend($$($nesting, 'ConversionHelper')); + self.$extend($$('ConversionHelper')); (function($base, $parent_nesting) { var self = $module($base, 'CoercionHelper'); - var $nesting = [self].concat($parent_nesting), $CoercionHelper_apply_through_coercion$192, $CoercionHelper_coerce_to$193, $CoercionHelper_coerce_to_int$194, $CoercionHelper_coerce_to_matrix$195; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$apply_through_coercion', $CoercionHelper_apply_through_coercion$192 = function $$apply_through_coercion(obj, oper) { - var self = this, coercion = nil, $ret_or_26 = nil; + $def(self, '$apply_through_coercion', function $$apply_through_coercion(obj, oper) { + var self = this, coercion = nil; try { coercion = obj.$coerce(self); - if ($truthy((function() {if ($truthy(($ret_or_26 = coercion['$is_a?']($$($nesting, 'Array'))))) { - return coercion.$length()['$=='](2) - } else { - return $ret_or_26 - }; return nil; })())) { - } else { - self.$raise($$($nesting, 'TypeError')) + if (!($truthy(coercion['$is_a?']($$('Array'))) && ($eqeq(coercion.$length(), 2)))) { + self.$raise($$('TypeError')) }; return coercion['$[]'](0).$public_send(oper, coercion['$[]'](1)); } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$('StandardError')])) { try { - return self.$raise($$($nesting, 'TypeError'), "" + (obj.$inspect()) + " can't be coerced into " + (self.$class())) + return self.$raise($$('TypeError'), "" + (obj.$inspect()) + " can't be coerced into " + (self.$class())) } finally { Opal.pop_exception(); } } else { throw $err; } } - }, $CoercionHelper_apply_through_coercion$192.$$arity = 2); + }, 2); self.$private("apply_through_coercion"); - Opal.defs(self, '$coerce_to', $CoercionHelper_coerce_to$193 = function $$coerce_to(obj, cls, meth) { + $defs(self, '$coerce_to', function $$coerce_to(obj, cls, meth) { var self = this, ret = nil, e = nil; if ($truthy(obj['$kind_of?'](cls))) { - return obj}; - if ($truthy(obj['$respond_to?'](meth))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "Expected a " + (cls) + " but got a " + (obj.$class())) + return obj + }; + if (!$truthy(obj['$respond_to?'](meth))) { + self.$raise($$('TypeError'), "Expected a " + (cls) + " but got a " + (obj.$class())) }; try { ret = obj.$__send__(meth) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) + if (Opal.rescue($err, [$$('Exception')])) {(e = $err) try { - self.$raise($$($nesting, 'TypeError'), "" + ("" + "Coercion error: " + (obj.$inspect()) + "." + (meth) + " => " + (cls) + " failed:\n") + ("" + "(" + (e.$message()) + ")")) + self.$raise($$('TypeError'), "" + ("Coercion error: " + (obj.$inspect()) + "." + (meth) + " => " + (cls) + " failed:\n") + ("(" + (e.$message()) + ")")) } finally { Opal.pop_exception(); } } else { throw $err; } };; - if ($truthy(ret['$kind_of?'](cls))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "Coercion error: obj." + (meth) + " did NOT return a " + (cls) + " (was " + (ret.$class()) + ")") + if (!$truthy(ret['$kind_of?'](cls))) { + self.$raise($$('TypeError'), "Coercion error: obj." + (meth) + " did NOT return a " + (cls) + " (was " + (ret.$class()) + ")") }; return ret; - }, $CoercionHelper_coerce_to$193.$$arity = 3); - Opal.defs(self, '$coerce_to_int', $CoercionHelper_coerce_to_int$194 = function $$coerce_to_int(obj) { + }, 3); + $defs(self, '$coerce_to_int', function $$coerce_to_int(obj) { var self = this; - return self.$coerce_to(obj, $$($nesting, 'Integer'), "to_int") - }, $CoercionHelper_coerce_to_int$194.$$arity = 1); - return (Opal.defs(self, '$coerce_to_matrix', $CoercionHelper_coerce_to_matrix$195 = function $$coerce_to_matrix(obj) { + return self.$coerce_to(obj, $$('Integer'), "to_int") + }, 1); + return $defs(self, '$coerce_to_matrix', function $$coerce_to_matrix(obj) { var self = this; - return self.$coerce_to(obj, $$($nesting, 'Matrix'), "to_matrix") - }, $CoercionHelper_coerce_to_matrix$195.$$arity = 1), nil) && 'coerce_to_matrix'; + return self.$coerce_to(obj, $$('Matrix'), "to_matrix") + }, 1); })($nesting[0], $nesting); - self.$include($$($nesting, 'CoercionHelper')); + self.$include($$('CoercionHelper')); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Scalar'); - var $nesting = [self].concat($parent_nesting), $Scalar_initialize$196, $Scalar_$plus$197, $Scalar_$minus$198, $Scalar_$$199, $Scalar_$slash$201, $Scalar_$$$202; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.value = nil; + $proto.value = nil; - self.$include($$($nesting, 'ExceptionForMatrix')); - self.$include($$($nesting, 'CoercionHelper')); + self.$include($$('ExceptionForMatrix')); + self.$include($$('CoercionHelper')); - Opal.def(self, '$initialize', $Scalar_initialize$196 = function $$initialize(value) { + $def(self, '$initialize', function $$initialize(value) { var self = this; return (self.value = value) - }, $Scalar_initialize$196.$$arity = 1); + }, 1); - Opal.def(self, '$+', $Scalar_$plus$197 = function(other) { - var self = this, $case = nil; + $def(self, '$+', function $Scalar_$plus$132(other) { + var self = this, $ret_or_1 = nil; - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) {return $$($nesting, 'Scalar').$new($rb_plus(self.value, other))} - else if ($$($nesting, 'Vector')['$===']($case) || $$($nesting, 'Matrix')['$===']($case)) {return $$($nesting, 'Scalar').$Raise($$($nesting, 'ErrOperationNotDefined'), "+", self.value.$class(), other.$class())} - else {return self.$apply_through_coercion(other, "+")}})() - }, $Scalar_$plus$197.$$arity = 1); + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return $$('Scalar').$new($rb_plus(self.value, other)) + } else if (($eqeqeq($$('Vector'), $ret_or_1) || ($eqeqeq($$('Matrix'), $ret_or_1)))) { + return $$('Scalar').$Raise($$('ErrOperationNotDefined'), "+", self.value.$class(), other.$class()) + } else { + return self.$apply_through_coercion(other, "+") + } + }, 1); - Opal.def(self, '$-', $Scalar_$minus$198 = function(other) { - var self = this, $case = nil; + $def(self, '$-', function $Scalar_$minus$133(other) { + var self = this, $ret_or_1 = nil; - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) {return $$($nesting, 'Scalar').$new($rb_minus(self.value, other))} - else if ($$($nesting, 'Vector')['$===']($case) || $$($nesting, 'Matrix')['$===']($case)) {return $$($nesting, 'Scalar').$Raise($$($nesting, 'ErrOperationNotDefined'), "-", self.value.$class(), other.$class())} - else {return self.$apply_through_coercion(other, "-")}})() - }, $Scalar_$minus$198.$$arity = 1); + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return $$('Scalar').$new($rb_minus(self.value, other)) + } else if (($eqeqeq($$('Vector'), $ret_or_1) || ($eqeqeq($$('Matrix'), $ret_or_1)))) { + return $$('Scalar').$Raise($$('ErrOperationNotDefined'), "-", self.value.$class(), other.$class()) + } else { + return self.$apply_through_coercion(other, "-") + } + }, 1); - Opal.def(self, '$*', $Scalar_$$199 = function(other) { - var $$200, self = this, $case = nil; + $def(self, '$*', function $Scalar_$$134(other) { + var self = this, $ret_or_1 = nil; - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) {return $$($nesting, 'Scalar').$new($rb_times(self.value, other))} - else if ($$($nesting, 'Vector')['$===']($case) || $$($nesting, 'Matrix')['$===']($case)) {return $send(other, 'collect', [], ($$200 = function(e){var self = $$200.$$s == null ? this : $$200.$$s; - if (self.value == null) self.value = nil; + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return $$('Scalar').$new($rb_times(self.value, other)) + } else if (($eqeqeq($$('Vector'), $ret_or_1) || ($eqeqeq($$('Matrix'), $ret_or_1)))) { + return $send(other, 'collect', [], function $$135(e){var self = $$135.$$s == null ? this : $$135.$$s; + if (self.value == null) self.value = nil; - - - if (e == null) { - e = nil; - }; - return $rb_times(self.value, e);}, $$200.$$s = self, $$200.$$arity = 1, $$200))} - else {return self.$apply_through_coercion(other, "*")}})() - }, $Scalar_$$199.$$arity = 1); - - Opal.def(self, '$/', $Scalar_$slash$201 = function(other) { - var self = this, $case = nil; - - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) {return $$($nesting, 'Scalar').$new($rb_divide(self.value, other))} - else if ($$($nesting, 'Vector')['$===']($case)) {return $$($nesting, 'Scalar').$Raise($$($nesting, 'ErrOperationNotDefined'), "/", self.value.$class(), other.$class())} - else if ($$($nesting, 'Matrix')['$===']($case)) {return $rb_times(self, other.$inverse())} - else {return self.$apply_through_coercion(other, "/")}})() - }, $Scalar_$slash$201.$$arity = 1); - return (Opal.def(self, '$**', $Scalar_$$$202 = function(other) { - var self = this, $case = nil; - - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) {return $$($nesting, 'Scalar').$new(self.value['$**'](other))} - else if ($$($nesting, 'Vector')['$===']($case)) {return $$($nesting, 'Scalar').$Raise($$($nesting, 'ErrOperationNotDefined'), "**", self.value.$class(), other.$class())} - else if ($$($nesting, 'Matrix')['$===']($case)) {return $$($nesting, 'Scalar').$Raise($$($nesting, 'ErrOperationNotImplemented'), "**", self.value.$class(), other.$class())} - else {return self.$apply_through_coercion(other, "**")}})() - }, $Scalar_$$$202.$$arity = 1), nil) && '**'; - })($nesting[0], $$($nesting, 'Numeric'), $nesting); + + + if (e == null) e = nil;; + return $rb_times(self.value, e);}, {$$arity: 1, $$s: self}) + } else { + return self.$apply_through_coercion(other, "*") + } + }, 1); + + $def(self, '$/', function $Scalar_$slash$136(other) { + var self = this, $ret_or_1 = nil; + + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return $$('Scalar').$new($rb_divide(self.value, other)) + } else if ($eqeqeq($$('Vector'), $ret_or_1)) { + return $$('Scalar').$Raise($$('ErrOperationNotDefined'), "/", self.value.$class(), other.$class()) + } else if ($eqeqeq($$('Matrix'), $ret_or_1)) { + return $rb_times(self, other.$inverse()) + } else { + return self.$apply_through_coercion(other, "/") + } + }, 1); + return $def(self, '$**', function $Scalar_$$$137(other) { + var self = this, $ret_or_1 = nil; + + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return $$('Scalar').$new(self.value['$**'](other)) + } else if ($eqeqeq($$('Vector'), $ret_or_1)) { + return $$('Scalar').$Raise($$('ErrOperationNotDefined'), "**", self.value.$class(), other.$class()) + } else if ($eqeqeq($$('Matrix'), $ret_or_1)) { + return $$('Scalar').$Raise($$('ErrOperationNotImplemented'), "**", self.value.$class(), other.$class()) + } else { + return self.$apply_through_coercion(other, "**") + } + }, 1); + })($nesting[0], $$('Numeric'), $nesting); })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Vector'); - var $nesting = [self].concat($parent_nesting), $Vector_$$$203, $Vector_elements$204, $Vector_basis$205, $Vector_zero$206, $Vector_initialize$207, $Vector_$$$208, $Vector_$$$eq$209, $Vector_round$210, $Vector_size$212, $Vector_each$213, $Vector_each2$214, $Vector_collect2$216, $Vector_independent$ques$218, $Vector_independent$ques$220, $Vector_zero$ques$221, $Vector_$eq_eq$222, $Vector_eql$ques$223, $Vector_clone$224, $Vector_hash$225, $Vector_$$226, $Vector_$plus$228, $Vector_$minus$230, $Vector_$slash$232, $Vector_$plus$$234, $Vector_$minus$$235, $Vector_inner_product$237, $Vector_cross_product$239, $Vector_collect$242, $Vector_magnitude$243, $Vector_map2$245, $Vector_normalize$246, $Vector_angle_with$247, $Vector_covector$248, $Vector_to_a$249, $Vector_to_matrix$250, $Vector_elements_to_f$251, $Vector_elements_to_i$252, $Vector_elements_to_r$253, $Vector_coerce$254, $Vector_to_s$255, $Vector_inspect$256; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.elements = nil; + $proto.elements = nil; - self.$include($$($nesting, 'ExceptionForMatrix')); - self.$include($$($nesting, 'Enumerable')); - self.$include($$$($$($nesting, 'Matrix'), 'CoercionHelper')); - self.$extend($$$($$($nesting, 'Matrix'), 'ConversionHelper')); + self.$include($$('ExceptionForMatrix')); + self.$include($$('Enumerable')); + self.$include($$$($$('Matrix'), 'CoercionHelper')); + self.$extend($$$($$('Matrix'), 'ConversionHelper')); self.$private_class_method("new"); self.$attr_reader("elements"); self.$protected("elements"); - Opal.defs($$($nesting, 'Vector'), '$[]', $Vector_$$$203 = function($a) { + $defs($$('Vector'), '$[]', function $Vector_$$$138($a) { var $post_args, array, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); array = $post_args;; return self.$new(self.$convert_to_array(array, false)); - }, $Vector_$$$203.$$arity = -1); - Opal.defs($$($nesting, 'Vector'), '$elements', $Vector_elements$204 = function $$elements(array, copy) { + }, -1); + $defs($$('Vector'), '$elements', function $$elements(array, copy) { var self = this; - if (copy == null) { - copy = true; - }; + if (copy == null) copy = true;; return self.$new(self.$convert_to_array(array, copy)); - }, $Vector_elements$204.$$arity = -2); - Opal.defs($$($nesting, 'Vector'), '$basis', $Vector_basis$205 = function $$basis($kwargs) { - var size, index, self = this, $ret_or_27 = nil, array = nil, $writer = nil; + }, -2); + $defs($$('Vector'), '$basis', function $$basis($kwargs) { + var size, index, self = this, array = nil, $writer = nil; @@ -4774,544 +4045,505 @@ Opal.modules["matrix"] = function(Opal) { } index = $kwargs.$$smap["index"];; if ($truthy($rb_lt(size, 1))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid size (" + (size) + " for 1..)")}; - if ($truthy((function() {if ($truthy(($ret_or_27 = $rb_le(0, index)))) { - return $rb_lt(index, size) - } else { - return $ret_or_27 - }; return nil; })())) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid index (" + (index) + " for 0..." + (size) + ")") + self.$raise($$('ArgumentError'), "invalid size (" + (size) + " for 1..)") + }; + if (!($rb_le(0, index) && ($truthy($rb_lt(index, size))))) { + self.$raise($$('ArgumentError'), "invalid index (" + (index) + " for 0..." + (size) + ")") }; - array = $$($nesting, 'Array').$new(size, 0); + array = $$('Array').$new(size, 0); $writer = [index, 1]; - $send(array, '[]=', Opal.to_a($writer)); + $send(array, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$new(self.$convert_to_array(array, false)); - }, $Vector_basis$205.$$arity = 1); - Opal.defs($$($nesting, 'Vector'), '$zero', $Vector_zero$206 = function $$zero(size) { + }, 1); + $defs($$('Vector'), '$zero', function $$zero(size) { var self = this, array = nil; if ($truthy($rb_lt(size, 0))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid size (" + (size) + " for 0..)")}; - array = $$($nesting, 'Array').$new(size, 0); + self.$raise($$('ArgumentError'), "invalid size (" + (size) + " for 0..)") + }; + array = $$('Array').$new(size, 0); return self.$new(self.$convert_to_array(array, false)); - }, $Vector_zero$206.$$arity = 1); + }, 1); - Opal.def(self, '$initialize', $Vector_initialize$207 = function $$initialize(array) { + $def(self, '$initialize', function $$initialize(array) { var self = this; return (self.elements = array) - }, $Vector_initialize$207.$$arity = 1); + }, 1); - Opal.def(self, '$[]', $Vector_$$$208 = function(i) { + $def(self, '$[]', function $Vector_$$$139(i) { var self = this; return self.elements['$[]'](i) - }, $Vector_$$$208.$$arity = 1); + }, 1); $alias(self, "element", "[]"); $alias(self, "component", "[]"); - Opal.def(self, '$[]=', $Vector_$$$eq$209 = function(i, v) { + $def(self, '$[]=', function $Vector_$$$eq$140(i, v) { var self = this, $writer = nil; $writer = [i, v]; - $send(self.elements, '[]=', Opal.to_a($writer)); + $send(self.elements, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Vector_$$$eq$209.$$arity = 2); + }, 2); $alias(self, "set_element", "[]="); $alias(self, "set_component", "[]="); self.$private("[]=", "set_element", "set_component"); - Opal.def(self, '$round', $Vector_round$210 = function $$round(ndigits) { - var $$211, self = this; + $def(self, '$round', function $$round(ndigits) { + var self = this; - if (ndigits == null) { - ndigits = 0; - }; - return $send(self, 'map', [], ($$211 = function(e){var self = $$211.$$s == null ? this : $$211.$$s; - + if (ndigits == null) ndigits = 0;; + return $send(self, 'map', [], function $$141(e){ - if (e == null) { - e = nil; - }; - return e.$round(ndigits);}, $$211.$$s = self, $$211.$$arity = 1, $$211)); - }, $Vector_round$210.$$arity = -1); + if (e == null) e = nil;; + return e.$round(ndigits);}, 1); + }, -1); - Opal.def(self, '$size', $Vector_size$212 = function $$size() { + $def(self, '$size', function $$size() { var self = this; return self.elements.$size() - }, $Vector_size$212.$$arity = 0); + }, 0); - Opal.def(self, '$each', $Vector_each$213 = function $$each() { - var $iter = $Vector_each$213.$$p, block = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Vector_each$213.$$p = null; - + delete $$each.$$p; - if ($iter) $Vector_each$213.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$to_enum("each") }; $send(self.elements, 'each', [], block.$to_proc()); return self; - }, $Vector_each$213.$$arity = 0); + }, 0); - Opal.def(self, '$each2', $Vector_each2$214 = function $$each2(v) { - var $$215, $iter = $Vector_each2$214.$$p, $yield = $iter || nil, self = this; + $def(self, '$each2', function $$each2(v) { + var $yield = $$each2.$$p || nil, self = this; - if ($iter) $Vector_each2$214.$$p = null; + delete $$each2.$$p; - if ($truthy(v['$kind_of?']($$($nesting, 'Integer')))) { - self.$raise($$($nesting, 'TypeError'), "Integer is not like Vector")}; - if ($truthy(self.$size()['$!='](v.$size()))) { - $$($nesting, 'Vector').$Raise($$($nesting, 'ErrDimensionMismatch'))}; - if (($yield !== nil)) { - } else { + if ($truthy(v['$kind_of?']($$('Integer')))) { + self.$raise($$('TypeError'), "Integer is not like Vector") + }; + if ($neqeq(self.$size(), v.$size())) { + $$('Vector').$Raise($$('ErrDimensionMismatch')) + }; + if (!($yield !== nil)) { return self.$to_enum("each2", v) }; - $send(self.$size(), 'times', [], ($$215 = function(i){var self = $$215.$$s == null ? this : $$215.$$s; + $send(self.$size(), 'times', [], function $$142(i){var self = $$142.$$s == null ? this : $$142.$$s; if (self.elements == null) self.elements = nil; - if (i == null) { - i = nil; - }; - return Opal.yieldX($yield, [self.elements['$[]'](i), v['$[]'](i)]);;}, $$215.$$s = self, $$215.$$arity = 1, $$215)); + if (i == null) i = nil;; + return Opal.yieldX($yield, [self.elements['$[]'](i), v['$[]'](i)]);;}, {$$arity: 1, $$s: self}); return self; - }, $Vector_each2$214.$$arity = 1); + }, 1); - Opal.def(self, '$collect2', $Vector_collect2$216 = function $$collect2(v) { - var $$217, $iter = $Vector_collect2$216.$$p, $yield = $iter || nil, self = this; + $def(self, '$collect2', function $$collect2(v) { + var $yield = $$collect2.$$p || nil, self = this; - if ($iter) $Vector_collect2$216.$$p = null; + delete $$collect2.$$p; - if ($truthy(v['$kind_of?']($$($nesting, 'Integer')))) { - self.$raise($$($nesting, 'TypeError'), "Integer is not like Vector")}; - if ($truthy(self.$size()['$!='](v.$size()))) { - $$($nesting, 'Vector').$Raise($$($nesting, 'ErrDimensionMismatch'))}; - if (($yield !== nil)) { - } else { + if ($truthy(v['$kind_of?']($$('Integer')))) { + self.$raise($$('TypeError'), "Integer is not like Vector") + }; + if ($neqeq(self.$size(), v.$size())) { + $$('Vector').$Raise($$('ErrDimensionMismatch')) + }; + if (!($yield !== nil)) { return self.$to_enum("collect2", v) }; - return $send($$($nesting, 'Array'), 'new', [self.$size()], ($$217 = function(i){var self = $$217.$$s == null ? this : $$217.$$s; + return $send($$('Array'), 'new', [self.$size()], function $$143(i){var self = $$143.$$s == null ? this : $$143.$$s; if (self.elements == null) self.elements = nil; - if (i == null) { - i = nil; - }; - return Opal.yieldX($yield, [self.elements['$[]'](i), v['$[]'](i)]);;}, $$217.$$s = self, $$217.$$arity = 1, $$217)); - }, $Vector_collect2$216.$$arity = 1); - Opal.defs($$($nesting, 'Vector'), '$independent?', $Vector_independent$ques$218 = function($a) { - var $post_args, vs, $$219, self = this; + if (i == null) i = nil;; + return Opal.yieldX($yield, [self.elements['$[]'](i), v['$[]'](i)]);;}, {$$arity: 1, $$s: self}); + }, 1); + $defs($$('Vector'), '$independent?', function $Vector_independent$ques$144($a) { + var $post_args, vs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); vs = $post_args;; - $send(vs, 'each', [], ($$219 = function(v){var self = $$219.$$s == null ? this : $$219.$$s; + $send(vs, 'each', [], function $$145(v){var self = $$145.$$s == null ? this : $$145.$$s; - if (v == null) { - v = nil; - }; - if ($truthy(v['$is_a?']($$($nesting, 'Vector')))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "expected Vector, got " + (v.$class())) + if (v == null) v = nil;; + if (!$truthy(v['$is_a?']($$('Vector')))) { + self.$raise($$('TypeError'), "expected Vector, got " + (v.$class())) }; - if (v.$size()['$=='](vs.$first().$size())) { + if ($eqeq(v.$size(), vs.$first().$size())) { return nil } else { - return $$($nesting, 'Vector').$Raise($$($nesting, 'ErrDimensionMismatch')) - };}, $$219.$$s = self, $$219.$$arity = 1, $$219)); + return $$('Vector').$Raise($$('ErrDimensionMismatch')) + };}, {$$arity: 1, $$s: self}); if ($truthy($rb_gt(vs.$count(), vs.$first().$size()))) { - return false}; - return $send($$($nesting, 'Matrix'), '[]', Opal.to_a(vs)).$rank()['$eql?'](vs.$count()); - }, $Vector_independent$ques$218.$$arity = -1); + return false + }; + return $send($$('Matrix'), '[]', $to_a(vs)).$rank()['$eql?'](vs.$count()); + }, -1); - Opal.def(self, '$independent?', $Vector_independent$ques$220 = function($a) { + $def(self, '$independent?', function $Vector_independent$ques$146($a) { var $post_args, vs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); vs = $post_args;; - return $send(self.$class(), 'independent?', [self].concat(Opal.to_a(vs))); - }, $Vector_independent$ques$220.$$arity = -1); + return $send(self.$class(), 'independent?', [self].concat($to_a(vs))); + }, -1); - Opal.def(self, '$zero?', $Vector_zero$ques$221 = function() { + $def(self, '$zero?', function $Vector_zero$ques$147() { var self = this; return $send(self, 'all?', [], "zero?".$to_proc()) - }, $Vector_zero$ques$221.$$arity = 0); + }, 0); - Opal.def(self, '$==', $Vector_$eq_eq$222 = function(other) { + $def(self, '$==', function $Vector_$eq_eq$148(other) { var self = this; - if ($truthy($$($nesting, 'Vector')['$==='](other))) { - } else { + if (!$eqeqeq($$('Vector'), other)) { return false }; return self.elements['$=='](other.$elements()); - }, $Vector_$eq_eq$222.$$arity = 1); + }, 1); - Opal.def(self, '$eql?', $Vector_eql$ques$223 = function(other) { + $def(self, '$eql?', function $Vector_eql$ques$149(other) { var self = this; - if ($truthy($$($nesting, 'Vector')['$==='](other))) { - } else { + if (!$eqeqeq($$('Vector'), other)) { return false }; return self.elements['$eql?'](other.$elements()); - }, $Vector_eql$ques$223.$$arity = 1); + }, 1); - Opal.def(self, '$clone', $Vector_clone$224 = function $$clone() { + $def(self, '$clone', function $$clone() { var self = this; return self.$class().$elements(self.elements) - }, $Vector_clone$224.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $Vector_hash$225 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return self.elements.$hash() - }, $Vector_hash$225.$$arity = 0); + }, 0); - Opal.def(self, '$*', $Vector_$$226 = function(x) { - var $$227, self = this, $case = nil, els = nil; - - return (function() {$case = x; - if ($$($nesting, 'Numeric')['$===']($case)) { - els = $send(self.elements, 'collect', [], ($$227 = function(e){var self = $$227.$$s == null ? this : $$227.$$s; + $def(self, '$*', function $Vector_$$150(x) { + var self = this, $ret_or_1 = nil, els = nil; + if ($eqeqeq($$('Numeric'), ($ret_or_1 = x))) { - - if (e == null) { - e = nil; - }; - return $rb_times(e, x);}, $$227.$$s = self, $$227.$$arity = 1, $$227)); - return self.$class().$elements(els, false);} - else if ($$($nesting, 'Matrix')['$===']($case)) {return $rb_times($$($nesting, 'Matrix').$column_vector(self), x)} - else if ($$($nesting, 'Vector')['$===']($case)) {return $$($nesting, 'Vector').$Raise($$($nesting, 'ErrOperationNotDefined'), "*", self.$class(), x.$class())} - else {return self.$apply_through_coercion(x, "*")}})() - }, $Vector_$$226.$$arity = 1); + els = $send(self.elements, 'collect', [], function $$151(e){ + + + if (e == null) e = nil;; + return $rb_times(e, x);}, 1); + return self.$class().$elements(els, false); + } else if ($eqeqeq($$('Matrix'), $ret_or_1)) { + return $rb_times($$('Matrix').$column_vector(self), x) + } else if ($eqeqeq($$('Vector'), $ret_or_1)) { + return $$('Vector').$Raise($$('ErrOperationNotDefined'), "*", self.$class(), x.$class()) + } else { + return self.$apply_through_coercion(x, "*") + } + }, 1); - Opal.def(self, '$+', $Vector_$plus$228 = function(v) { - var $$229, self = this, $case = nil, els = nil; - - return (function() {$case = v; - if ($$($nesting, 'Vector')['$===']($case)) { - if ($truthy(self.$size()['$!='](v.$size()))) { - $$($nesting, 'Vector').$Raise($$($nesting, 'ErrDimensionMismatch'))}; - els = $send(self, 'collect2', [v], ($$229 = function(v1, v2){var self = $$229.$$s == null ? this : $$229.$$s; + $def(self, '$+', function $Vector_$plus$152(v) { + var self = this, $ret_or_1 = nil, els = nil; + if ($eqeqeq($$('Vector'), ($ret_or_1 = v))) { - - if (v1 == null) { - v1 = nil; - }; - - if (v2 == null) { - v2 = nil; + if ($neqeq(self.$size(), v.$size())) { + $$('Vector').$Raise($$('ErrDimensionMismatch')) }; - return $rb_plus(v1, v2);}, $$229.$$s = self, $$229.$$arity = 2, $$229)); - return self.$class().$elements(els, false);} - else if ($$($nesting, 'Matrix')['$===']($case)) {return $rb_plus($$($nesting, 'Matrix').$column_vector(self), v)} - else {return self.$apply_through_coercion(v, "+")}})() - }, $Vector_$plus$228.$$arity = 1); + els = $send(self, 'collect2', [v], function $$153(v1, v2){ + + + if (v1 == null) v1 = nil;; + + if (v2 == null) v2 = nil;; + return $rb_plus(v1, v2);}, 2); + return self.$class().$elements(els, false); + } else if ($eqeqeq($$('Matrix'), $ret_or_1)) { + return $rb_plus($$('Matrix').$column_vector(self), v) + } else { + return self.$apply_through_coercion(v, "+") + } + }, 1); - Opal.def(self, '$-', $Vector_$minus$230 = function(v) { - var $$231, self = this, $case = nil, els = nil; + $def(self, '$-', function $Vector_$minus$154(v) { + var self = this, $ret_or_1 = nil, els = nil; - return (function() {$case = v; - if ($$($nesting, 'Vector')['$===']($case)) { - if ($truthy(self.$size()['$!='](v.$size()))) { - $$($nesting, 'Vector').$Raise($$($nesting, 'ErrDimensionMismatch'))}; - els = $send(self, 'collect2', [v], ($$231 = function(v1, v2){var self = $$231.$$s == null ? this : $$231.$$s; - - + if ($eqeqeq($$('Vector'), ($ret_or_1 = v))) { - if (v1 == null) { - v1 = nil; + if ($neqeq(self.$size(), v.$size())) { + $$('Vector').$Raise($$('ErrDimensionMismatch')) }; - - if (v2 == null) { - v2 = nil; - }; - return $rb_minus(v1, v2);}, $$231.$$s = self, $$231.$$arity = 2, $$231)); - return self.$class().$elements(els, false);} - else if ($$($nesting, 'Matrix')['$===']($case)) {return $rb_minus($$($nesting, 'Matrix').$column_vector(self), v)} - else {return self.$apply_through_coercion(v, "-")}})() - }, $Vector_$minus$230.$$arity = 1); + els = $send(self, 'collect2', [v], function $$155(v1, v2){ + + + if (v1 == null) v1 = nil;; + + if (v2 == null) v2 = nil;; + return $rb_minus(v1, v2);}, 2); + return self.$class().$elements(els, false); + } else if ($eqeqeq($$('Matrix'), $ret_or_1)) { + return $rb_minus($$('Matrix').$column_vector(self), v) + } else { + return self.$apply_through_coercion(v, "-") + } + }, 1); - Opal.def(self, '$/', $Vector_$slash$232 = function(x) { - var $$233, self = this, $case = nil, els = nil; - - return (function() {$case = x; - if ($$($nesting, 'Numeric')['$===']($case)) { - els = $send(self.elements, 'collect', [], ($$233 = function(e){var self = $$233.$$s == null ? this : $$233.$$s; + $def(self, '$/', function $Vector_$slash$156(x) { + var self = this, $ret_or_1 = nil, els = nil; + if ($eqeqeq($$('Numeric'), ($ret_or_1 = x))) { - - if (e == null) { - e = nil; - }; - return $rb_divide(e, x);}, $$233.$$s = self, $$233.$$arity = 1, $$233)); - return self.$class().$elements(els, false);} - else if ($$($nesting, 'Matrix')['$===']($case) || $$($nesting, 'Vector')['$===']($case)) {return $$($nesting, 'Vector').$Raise($$($nesting, 'ErrOperationNotDefined'), "/", self.$class(), x.$class())} - else {return self.$apply_through_coercion(x, "/")}})() - }, $Vector_$slash$232.$$arity = 1); + els = $send(self.elements, 'collect', [], function $$157(e){ + + + if (e == null) e = nil;; + return $rb_divide(e, x);}, 1); + return self.$class().$elements(els, false); + } else if (($eqeqeq($$('Matrix'), $ret_or_1) || ($eqeqeq($$('Vector'), $ret_or_1)))) { + return $$('Vector').$Raise($$('ErrOperationNotDefined'), "/", self.$class(), x.$class()) + } else { + return self.$apply_through_coercion(x, "/") + } + }, 1); - Opal.def(self, '$+@', $Vector_$plus$$234 = function() { + $def(self, '$+@', function $Vector_$plus$$158() { var self = this; return self - }, $Vector_$plus$$234.$$arity = 0); + }, 0); - Opal.def(self, '$-@', $Vector_$minus$$235 = function() { - var $$236, self = this; - - return $send(self, 'collect', [], ($$236 = function(e){var self = $$236.$$s == null ? this : $$236.$$s; + $def(self, '$-@', function $Vector_$minus$$159() { + var self = this; + return $send(self, 'collect', [], function $$160(e){ - if (e == null) { - e = nil; - }; - return e['$-@']();}, $$236.$$s = self, $$236.$$arity = 1, $$236)) - }, $Vector_$minus$$235.$$arity = 0); + if (e == null) e = nil;; + return e['$-@']();}, 1) + }, 0); - Opal.def(self, '$inner_product', $Vector_inner_product$237 = function $$inner_product(v) { - var $$238, self = this, p = nil; + $def(self, '$inner_product', function $$inner_product(v) { + var self = this, p = nil; - if ($truthy(self.$size()['$!='](v.$size()))) { - $$($nesting, 'Vector').$Raise($$($nesting, 'ErrDimensionMismatch'))}; + if ($neqeq(self.$size(), v.$size())) { + $$('Vector').$Raise($$('ErrDimensionMismatch')) + }; p = 0; - $send(self, 'each2', [v], ($$238 = function(v1, v2){var self = $$238.$$s == null ? this : $$238.$$s; - + $send(self, 'each2', [v], function $$161(v1, v2){ - if (v1 == null) { - v1 = nil; - }; + if (v1 == null) v1 = nil;; - if (v2 == null) { - v2 = nil; - }; - return (p = $rb_plus(p, $rb_times(v1, v2.$conj())));}, $$238.$$s = self, $$238.$$arity = 2, $$238)); + if (v2 == null) v2 = nil;; + return (p = $rb_plus(p, $rb_times(v1, v2.$conj())));}, 2); return p; - }, $Vector_inner_product$237.$$arity = 1); + }, 1); self.$alias_method("dot", "inner_product"); - Opal.def(self, '$cross_product', $Vector_cross_product$239 = function $$cross_product($a) { - var $post_args, vs, $$240, $$241, self = this, $case = nil, v = nil, rows = nil; + $def(self, '$cross_product', function $$cross_product($a) { + var $post_args, vs, self = this, $ret_or_1 = nil, v = nil, rows = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); vs = $post_args;; - if ($truthy($rb_ge(self.$size(), 2))) { - } else { - self.$raise($$($nesting, 'ErrOperationNotDefined'), "" + "cross product is not defined on vectors of dimension " + (self.$size())) + if (!$truthy($rb_ge(self.$size(), 2))) { + self.$raise($$('ErrOperationNotDefined'), "cross product is not defined on vectors of dimension " + (self.$size())) }; - if (vs.$size()['$==']($rb_minus(self.$size(), 2))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (vs.$size()) + " for " + ($rb_minus(self.$size(), 2)) + ")") + if (!$eqeq(vs.$size(), $rb_minus(self.$size(), 2))) { + self.$raise($$('ArgumentError'), "wrong number of arguments (" + (vs.$size()) + " for " + ($rb_minus(self.$size(), 2)) + ")") }; - $send(vs, 'each', [], ($$240 = function(v){var self = $$240.$$s == null ? this : $$240.$$s; + $send(vs, 'each', [], function $$162(v){var self = $$162.$$s == null ? this : $$162.$$s; - if (v == null) { - v = nil; - }; - if ($truthy(v['$is_a?']($$($nesting, 'Vector')))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "expected Vector, got " + (v.$class())) + if (v == null) v = nil;; + if (!$truthy(v['$is_a?']($$('Vector')))) { + self.$raise($$('TypeError'), "expected Vector, got " + (v.$class())) }; - if (v.$size()['$=='](self.$size())) { + if ($eqeq(v.$size(), self.$size())) { return nil } else { - return $$($nesting, 'Vector').$Raise($$($nesting, 'ErrDimensionMismatch')) - };}, $$240.$$s = self, $$240.$$arity = 1, $$240)); - return (function() {$case = self.$size(); - if ((2)['$===']($case)) {return $$($nesting, 'Vector')['$[]'](self.elements['$[]'](1)['$-@'](), self.elements['$[]'](0))} - else if ((3)['$===']($case)) { - v = vs['$[]'](0); - return $$($nesting, 'Vector')['$[]']($rb_minus($rb_times(v['$[]'](2), self.elements['$[]'](1)), $rb_times(v['$[]'](1), self.elements['$[]'](2))), $rb_minus($rb_times(v['$[]'](0), self.elements['$[]'](2)), $rb_times(v['$[]'](2), self.elements['$[]'](0))), $rb_minus($rb_times(v['$[]'](1), self.elements['$[]'](0)), $rb_times(v['$[]'](0), self.elements['$[]'](1))));} - else { - rows = [self].concat(Opal.to_a(vs)).concat([$send($$($nesting, 'Array'), 'new', [self.$size()], ($$241 = function(i){var self = $$241.$$s == null ? this : $$241.$$s; - - + return $$('Vector').$Raise($$('ErrDimensionMismatch')) + };}, {$$arity: 1, $$s: self}); + if ($eqeqeq(2, ($ret_or_1 = self.$size()))) { + return $$('Vector')['$[]'](self.elements['$[]'](1)['$-@'](), self.elements['$[]'](0)) + } else if ($eqeqeq(3, $ret_or_1)) { + + v = vs['$[]'](0); + return $$('Vector')['$[]']($rb_minus($rb_times(v['$[]'](2), self.elements['$[]'](1)), $rb_times(v['$[]'](1), self.elements['$[]'](2))), $rb_minus($rb_times(v['$[]'](0), self.elements['$[]'](2)), $rb_times(v['$[]'](2), self.elements['$[]'](0))), $rb_minus($rb_times(v['$[]'](1), self.elements['$[]'](0)), $rb_times(v['$[]'](0), self.elements['$[]'](1)))); + } else { - if (i == null) { - i = nil; - }; - return $$($nesting, 'Vector').$basis($hash2(["size", "index"], {"size": self.$size(), "index": i}));}, $$241.$$s = self, $$241.$$arity = 1, $$241))]); - return $$($nesting, 'Matrix').$rows(rows).$laplace_expansion($hash2(["row"], {"row": $rb_minus(self.$size(), 1)}));}})(); - }, $Vector_cross_product$239.$$arity = -1); + rows = [self].concat($to_a(vs)).concat([$send($$('Array'), 'new', [self.$size()], function $$163(i){var self = $$163.$$s == null ? this : $$163.$$s; + + + + if (i == null) i = nil;; + return $$('Vector').$basis($hash2(["size", "index"], {"size": self.$size(), "index": i}));}, {$$arity: 1, $$s: self})]); + return $$('Matrix').$rows(rows).$laplace_expansion($hash2(["row"], {"row": $rb_minus(self.$size(), 1)})); + }; + }, -1); self.$alias_method("cross", "cross_product"); - Opal.def(self, '$collect', $Vector_collect$242 = function $$collect() { - var $iter = $Vector_collect$242.$$p, block = $iter || nil, self = this, els = nil; + $def(self, '$collect', function $$collect() { + var block = $$collect.$$p || nil, self = this, els = nil; - if ($iter) $Vector_collect$242.$$p = null; - + delete $$collect.$$p; - if ($iter) $Vector_collect$242.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$to_enum("collect") }; els = $send(self.elements, 'collect', [], block.$to_proc()); return self.$class().$elements(els, false); - }, $Vector_collect$242.$$arity = 0); + }, 0); $alias(self, "map", "collect"); - Opal.def(self, '$magnitude', $Vector_magnitude$243 = function $$magnitude() { - var $$244, self = this; - - return $$($nesting, 'Math').$sqrt($send(self.elements, 'inject', [0], ($$244 = function(v, e){var self = $$244.$$s == null ? this : $$244.$$s; + $def(self, '$magnitude', function $$magnitude() { + var self = this; + return $$('Math').$sqrt($send(self.elements, 'inject', [0], function $$164(v, e){ - if (v == null) { - v = nil; - }; + if (v == null) v = nil;; - if (e == null) { - e = nil; - }; - return $rb_plus(v, e.$abs2());}, $$244.$$s = self, $$244.$$arity = 2, $$244))) - }, $Vector_magnitude$243.$$arity = 0); + if (e == null) e = nil;; + return $rb_plus(v, e.$abs2());}, 2)) + }, 0); $alias(self, "r", "magnitude"); $alias(self, "norm", "magnitude"); - Opal.def(self, '$map2', $Vector_map2$245 = function $$map2(v) { - var $iter = $Vector_map2$245.$$p, block = $iter || nil, self = this, els = nil; + $def(self, '$map2', function $$map2(v) { + var block = $$map2.$$p || nil, self = this, els = nil; - if ($iter) $Vector_map2$245.$$p = null; + delete $$map2.$$p; - - if ($iter) $Vector_map2$245.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$to_enum("map2", v) }; els = $send(self, 'collect2', [v], block.$to_proc()); return self.$class().$elements(els, false); - }, $Vector_map2$245.$$arity = 1); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ZeroVectorError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); + }, 1); + $klass($nesting[0], $$('StandardError'), 'ZeroVectorError'); - Opal.def(self, '$normalize', $Vector_normalize$246 = function $$normalize() { + $def(self, '$normalize', function $$normalize() { var self = this, n = nil; n = self.$magnitude(); - if (n['$=='](0)) { - self.$raise($$($nesting, 'ZeroVectorError'), "Zero vectors can not be normalized")}; + if ($eqeq(n, 0)) { + self.$raise($$('ZeroVectorError'), "Zero vectors can not be normalized") + }; return $rb_divide(self, n); - }, $Vector_normalize$246.$$arity = 0); + }, 0); - Opal.def(self, '$angle_with', $Vector_angle_with$247 = function $$angle_with(v) { + $def(self, '$angle_with', function $$angle_with(v) { var self = this, prod = nil; - if ($truthy(v['$is_a?']($$($nesting, 'Vector')))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "Expected a Vector, got a " + (v.$class())) + if (!$truthy(v['$is_a?']($$('Vector')))) { + self.$raise($$('TypeError'), "Expected a Vector, got a " + (v.$class())) + }; + if ($neqeq(self.$size(), v.$size())) { + $$('Vector').$Raise($$('ErrDimensionMismatch')) }; - if ($truthy(self.$size()['$!='](v.$size()))) { - $$($nesting, 'Vector').$Raise($$($nesting, 'ErrDimensionMismatch'))}; prod = $rb_times(self.$magnitude(), v.$magnitude()); - if (prod['$=='](0)) { - self.$raise($$($nesting, 'ZeroVectorError'), "Can't get angle of zero vector")}; - return $$($nesting, 'Math').$acos($rb_divide(self.$inner_product(v), prod)); - }, $Vector_angle_with$247.$$arity = 1); + if ($eqeq(prod, 0)) { + self.$raise($$('ZeroVectorError'), "Can't get angle of zero vector") + }; + return $$('Math').$acos($rb_divide(self.$inner_product(v), prod)); + }, 1); - Opal.def(self, '$covector', $Vector_covector$248 = function $$covector() { + $def(self, '$covector', function $$covector() { var self = this; - return $$($nesting, 'Matrix').$row_vector(self) - }, $Vector_covector$248.$$arity = 0); + return $$('Matrix').$row_vector(self) + }, 0); - Opal.def(self, '$to_a', $Vector_to_a$249 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; return self.elements.$dup() - }, $Vector_to_a$249.$$arity = 0); + }, 0); - Opal.def(self, '$to_matrix', $Vector_to_matrix$250 = function $$to_matrix() { + $def(self, '$to_matrix', function $$to_matrix() { var self = this; - return $$($nesting, 'Matrix').$column_vector(self) - }, $Vector_to_matrix$250.$$arity = 0); + return $$('Matrix').$column_vector(self) + }, 0); - Opal.def(self, '$elements_to_f', $Vector_elements_to_f$251 = function $$elements_to_f() { + $def(self, '$elements_to_f', function $$elements_to_f() { var self = this; self.$warn("Vector#elements_to_f is deprecated", $hash2(["uplevel"], {"uplevel": 1})); return $send(self, 'map', [], "to_f".$to_proc()); - }, $Vector_elements_to_f$251.$$arity = 0); + }, 0); - Opal.def(self, '$elements_to_i', $Vector_elements_to_i$252 = function $$elements_to_i() { + $def(self, '$elements_to_i', function $$elements_to_i() { var self = this; self.$warn("Vector#elements_to_i is deprecated", $hash2(["uplevel"], {"uplevel": 1})); return $send(self, 'map', [], "to_i".$to_proc()); - }, $Vector_elements_to_i$252.$$arity = 0); + }, 0); - Opal.def(self, '$elements_to_r', $Vector_elements_to_r$253 = function $$elements_to_r() { + $def(self, '$elements_to_r', function $$elements_to_r() { var self = this; self.$warn("Vector#elements_to_r is deprecated", $hash2(["uplevel"], {"uplevel": 1})); return $send(self, 'map', [], "to_r".$to_proc()); - }, $Vector_elements_to_r$253.$$arity = 0); + }, 0); - Opal.def(self, '$coerce', $Vector_coerce$254 = function $$coerce(other) { - var self = this, $case = nil; + $def(self, '$coerce', function $$coerce(other) { + var self = this, $ret_or_1 = nil; - return (function() {$case = other; - if ($$($nesting, 'Numeric')['$===']($case)) {return [$$$($$($nesting, 'Matrix'), 'Scalar').$new(other), self]} - else {return self.$raise($$($nesting, 'TypeError'), "" + (self.$class()) + " can't be coerced into " + (other.$class()))}})() - }, $Vector_coerce$254.$$arity = 1); + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return [$$$($$('Matrix'), 'Scalar').$new(other), self] + } else { + return self.$raise($$('TypeError'), "" + (self.$class()) + " can't be coerced into " + (other.$class())) + } + }, 1); - Opal.def(self, '$to_s', $Vector_to_s$255 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return $rb_plus($rb_plus("Vector[", self.elements.$join(", ")), "]") - }, $Vector_to_s$255.$$arity = 0); - return (Opal.def(self, '$inspect', $Vector_inspect$256 = function $$inspect() { + }, 0); + return $def(self, '$inspect', function $$inspect() { var self = this; return $rb_plus("Vector", self.elements.$inspect()) - }, $Vector_inspect$256.$$arity = 0), nil) && 'inspect'; + }, 0); })($nesting[0], null, $nesting); }; diff --git a/opal/master/matrix.min.js b/opal/master/matrix.min.js index 48212eaf..cea570e6 100644 --- a/opal/master/matrix.min.js +++ b/opal/master/matrix.min.js @@ -1 +1 @@ -Opal.modules.e2mmap=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias,$hash2=Opal.hash2,$gvars=Opal.gvars;return Opal.add_stubs(["$<","$bind","$module_eval","$Raise","$class","$extend","$def_e2message","$def_exception","$instance_eval","$[]=","$-","$new","$const_defined?","$remove_const","$const_set","$e2mm_message","$nil?","$caller","$=~","$[]","$quote","$shift","$raise","$sprintf","$Fail","$inspect","$each","$ancestors"]),function(self,$Exception2MessageMapper_e2mm_message$15){var $Exception2MessageMapper_extend_object$1,self=$module(self,"Exception2MessageMapper"),$nesting=[self].concat($Exception2MessageMapper_e2mm_message$15);return Opal.const_set($nesting[0],"E2MM",$$($nesting,"Exception2MessageMapper")),Opal.defs($$($nesting,"E2MM"),"$extend_object",$Exception2MessageMapper_extend_object$1=function(cl){var $zuper_ii,lhs,rhs=$Exception2MessageMapper_extend_object$1.$$p,$zuper=nil,$zuper_i=nil;for(rhs&&($Exception2MessageMapper_extend_object$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $send2(this,$find_super(this,"extend_object",$Exception2MessageMapper_extend_object$1,!1,!0),"extend_object",$zuper,rhs),$truthy((lhs=cl,rhs=$$($nesting,"E2MM"),"number"==typeof lhs&&"number"==typeof rhs?lhs"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_divide(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs/rhs:lhs["$/"](rhs)}function $rb_times(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$is_a?","$raise","$class","$row_count","$new","$symmetric?","$to_a","$tridiagonalize","$diagonalize","$reduce_to_hessenberg","$hessenberg_to_real_schur","$send","$transpose","$build_eigenvectors","$inverse","$dup","$each_with_index","$==","$Complex","$[]","$[]=","$-","$map","$diagonal","$eigenvalues","$v","$d","$v_inv","$alias_method","$private","$>","$+","$-@","$abs","$/","$*","$times","$downto","$sqrt","$upto","$!=","$max","$<","$<=","$hypot","$>=","$min","$cdiv"]),function($base,$nesting){$nesting=[$klass($base,null,"Matrix")].concat($nesting);return function($EigenvalueDecomposition_hessenberg_to_real_schur$63,$EigenvalueDecomposition_reduce_to_hessenberg$46){var $EigenvalueDecomposition_hessenberg_to_real_schur$63=$klass($EigenvalueDecomposition_hessenberg_to_real_schur$63,null,"EigenvalueDecomposition"),$nesting=[$EigenvalueDecomposition_hessenberg_to_real_schur$63].concat($EigenvalueDecomposition_reduce_to_hessenberg$46);return $EigenvalueDecomposition_hessenberg_to_real_schur$63.$$prototype.size=$EigenvalueDecomposition_hessenberg_to_real_schur$63.$$prototype.symmetric=$EigenvalueDecomposition_hessenberg_to_real_schur$63.$$prototype.d=$EigenvalueDecomposition_hessenberg_to_real_schur$63.$$prototype.e=$EigenvalueDecomposition_hessenberg_to_real_schur$63.$$prototype.v=$EigenvalueDecomposition_hessenberg_to_real_schur$63.$$prototype.h=nil,Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$initialize",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(a){var $$2;return $truthy(a["$is_a?"]($$($nesting,"Matrix")))||this.$raise($$($nesting,"TypeError"),"Expected Matrix but got "+a.$class()),this.size=a.$row_count(),this.d=$$($nesting,"Array").$new(this.size,0),this.e=$$($nesting,"Array").$new(this.size,0),$truthy(this.symmetric=a["$symmetric?"]())?(this.v=a.$to_a(),this.$tridiagonalize(),this.$diagonalize()):(this.v=$send($$($nesting,"Array"),"new",[this.size],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return null==self.size&&(self.size=nil),$$($nesting,"Array").$new(self.size,0)}).$$s=this,$$2.$$arity=0,$$2)),this.h=a.$to_a(),this.ort=$$($nesting,"Array").$new(this.size,0),this.$reduce_to_hessenberg(),this.$hessenberg_to_real_schur())},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=1),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$eigenvector_matrix",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){return $$($nesting,"Matrix").$send("new",this.$build_eigenvectors().$transpose())},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),$alias($EigenvalueDecomposition_hessenberg_to_real_schur$63,"v","eigenvector_matrix"),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$eigenvector_matrix_inv",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){var r=nil,r=$$($nesting,"Matrix").$send("new",this.$build_eigenvectors());return $truthy(this.symmetric)||(r=r.$transpose().$inverse()),r},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),$alias($EigenvalueDecomposition_hessenberg_to_real_schur$63,"v_inv","eigenvector_matrix_inv"),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$eigenvalues",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){var $$6,values=nil,values=this.d.$dup();return $send(this.e,"each_with_index",[],(($$6=function(imag,i){var $writer,self=null==$$6.$$s?this:$$6.$$s;return null==imag&&(imag=nil),null==i&&(i=nil),imag["$=="](0)?nil:($writer=[i,self.$Complex(values["$[]"](i),imag)],$send(values,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])}).$$s=this,$$6.$$arity=2,$$6)),values},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$eigenvectors",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){var $$8;return $send(this.$build_eigenvectors(),"map",[],(($$8=function(ev){null==$$8.$$s||$$8.$$s;return null==ev&&(ev=nil),$$($nesting,"Vector").$send("new",ev)}).$$s=this,$$8.$$arity=1,$$8))},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$eigenvalue_matrix",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){return $send($$($nesting,"Matrix"),"diagonal",Opal.to_a(this.$eigenvalues()))},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),$alias($EigenvalueDecomposition_hessenberg_to_real_schur$63,"d","eigenvalue_matrix"),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$to_ary",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){return[this.$v(),this.$d(),this.$v_inv()]},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),$EigenvalueDecomposition_hessenberg_to_real_schur$63.$alias_method("to_a","to_ary"),$EigenvalueDecomposition_hessenberg_to_real_schur$63.$private(),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$build_eigenvectors",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){var $$12;return $send(this.e.$each_with_index(),"map",[],(($$12=function(imag,i){var $$13,$$14,$$15,self=null==$$12.$$s?this:$$12.$$s;return null==self.size&&(self.size=nil),null==imag&&(imag=nil),null==i&&(i=nil),imag["$=="](0)?$send($$($nesting,"Array"),"new",[self.size],(($$13=function(j){var self=null==$$13.$$s?this:$$13.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),self.v["$[]"](j)["$[]"](i)}).$$s=self,$$13.$$arity=1,$$13)):$truthy($rb_gt(imag,0))?$send($$($nesting,"Array"),"new",[self.size],(($$14=function(j){var self=null==$$14.$$s?this:$$14.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),self.$Complex(self.v["$[]"](j)["$[]"](i),self.v["$[]"](j)["$[]"]($rb_plus(i,1)))}).$$s=self,$$14.$$arity=1,$$14)):$send($$($nesting,"Array"),"new",[self.size],(($$15=function(j){var self=null==$$15.$$s?this:$$15.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),self.$Complex(self.v["$[]"](j)["$[]"]($rb_minus(i,1)),self.v["$[]"](j)["$[]"](i)["$-@"]())}).$$s=self,$$15.$$arity=1,$$15))}).$$s=this,$$12.$$arity=2,$$12))},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$cdiv",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(xr,xi,yr,yi){var r=nil,d=nil;return $truthy($rb_gt(yr.$abs(),yi.$abs()))?(d=$rb_plus(yr,$rb_times(r=$rb_divide(yi,yr),yi)),[$rb_divide($rb_plus(xr,$rb_times(r,xi)),d),$rb_divide($rb_minus(xi,$rb_times(r,xr)),d)]):(d=$rb_plus(yi,$rb_times(r=$rb_divide(yr,yi),yr)),[$rb_divide($rb_plus($rb_times(r,xr),xi),d),$rb_divide($rb_minus($rb_times(r,xi),xr),d)])},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=4),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$tridiagonalize",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){var $$18,$$19,$$30,$$36,$writer;return $send(this.size,"times",[],(($$18=function(j){var $writer,self=null==$$18.$$s?this:$$18.$$s;return null==self.v&&(self.v=nil),null==self.size&&(self.size=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,self.v["$[]"]($rb_minus(self.size,1))["$[]"](j)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$18.$$arity=1,$$18)),$send($rb_minus(this.size,1),"downto",[1],(($$19=function(i){var $$20,$$21,$$22,$$23,$$24,$$26,$$27,$$28,hh,self=null==$$19.$$s?this:$$19.$$s,scale=nil,h=nil,$writer=nil,f=nil,g=nil;return null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==i&&(i=nil),h=scale=0,$send(i,"times",[],(($$20=function(k){var self=null==$$20.$$s?this:$$20.$$s;return null==self.d&&(self.d=nil),null==k&&(k=nil),scale=$rb_plus(scale,self.d["$[]"](k).$abs())}).$$s=self,$$20.$$arity=1,$$20)),$truthy(scale["$=="](0))?($writer=[i,self.d["$[]"]($rb_minus(i,1))],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(i,"times",[],(($$21=function(j){var self=null==$$21.$$s?this:$$21.$$s;return null==self.v&&(self.v=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,self.v["$[]"]($rb_minus(i,1))["$[]"](j)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,0],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,0],$send(self.v["$[]"](j),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$21.$$arity=1,$$21))):($send(i,"times",[],(($$22=function(k){var self=null==$$22.$$s?this:$$22.$$s;return null==self.d&&(self.d=nil),null==k&&(k=nil),$writer=[k,$rb_divide(self.d["$[]"](k),scale)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],h=$rb_plus(h,$rb_times(self.d["$[]"](k),self.d["$[]"](k)))}).$$s=self,$$22.$$arity=1,$$22)),f=self.d["$[]"]($rb_minus(i,1)),g=$$($nesting,"Math").$sqrt(h),$truthy($rb_gt(f,0))&&(g=g["$-@"]()),$writer=[i,$rb_times(scale,g)],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],h=$rb_minus(h,$rb_times(f,g)),$writer=[$rb_minus(i,1),$rb_minus(f,g)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(i,"times",[],(($$23=function(j){var self=null==$$23.$$s?this:$$23.$$s;return null==self.e&&(self.e=nil),null==j&&(j=nil),$writer=[j,0],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$23.$$arity=1,$$23)),$send(i,"times",[],(($$24=function(j){var $$25,self=null==$$24.$$s?this:$$24.$$s;return null==self.d&&(self.d=nil),null==self.v&&(self.v=nil),null==self.e&&(self.e=nil),null==j&&(j=nil),f=self.d["$[]"](j),$writer=[i,f],$send(self.v["$[]"](j),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],g=$rb_plus(self.e["$[]"](j),$rb_times(self.v["$[]"](j)["$[]"](j),f)),$send($rb_plus(j,1),"upto",[$rb_minus(i,1)],(($$25=function(k){var self=null==$$25.$$s?this:$$25.$$s;return null==self.v&&(self.v=nil),null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==k&&(k=nil),g=$rb_plus(g,$rb_times(self.v["$[]"](k)["$[]"](j),self.d["$[]"](k))),$writer=[k,$rb_plus(self.e["$[]"](k),$rb_times(self.v["$[]"](k)["$[]"](j),f))],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$25.$$arity=1,$$25)),$writer=[j,g],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$24.$$arity=1,$$24)),f=0,$send(i,"times",[],(($$26=function(j){var self=null==$$26.$$s?this:$$26.$$s;return null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,$rb_divide(self.e["$[]"](j),h)],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],f=$rb_plus(f,$rb_times(self.e["$[]"](j),self.d["$[]"](j)))}).$$s=self,$$26.$$arity=1,$$26)),hh=$rb_divide(f,$rb_plus(h,h)),$send(i,"times",[],(($$27=function(j){var self=null==$$27.$$s?this:$$27.$$s;return null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,$rb_minus(self.e["$[]"](j),$rb_times(hh,self.d["$[]"](j)))],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$27.$$arity=1,$$27)),$send(i,"times",[],(($$28=function(j){var $$29,self=null==$$28.$$s?this:$$28.$$s;return null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==self.v&&(self.v=nil),null==j&&(j=nil),f=self.d["$[]"](j),g=self.e["$[]"](j),$send(j,"upto",[$rb_minus(i,1)],(($$29=function(k){var self=null==$$29.$$s?this:$$29.$$s,$binary_op_recvr_tmp_3=nil;return null==self.v&&(self.v=nil),null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==k&&(k=nil),$binary_op_recvr_tmp_3=self.v["$[]"](k),$writer=[j,$rb_minus($binary_op_recvr_tmp_3["$[]"](j),$rb_plus($rb_times(f,self.e["$[]"](k)),$rb_times(g,self.d["$[]"](k))))],$send($binary_op_recvr_tmp_3,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$29.$$arity=1,$$29)),$writer=[j,self.v["$[]"]($rb_minus(i,1))["$[]"](j)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,0],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$28.$$arity=1,$$28))),$writer=[i,h],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$19.$$arity=1,$$19)),$send(0,"upto",[$rb_minus($rb_minus(this.size,1),1)],(($$30=function(i){var $$31,$$32,$$35,self=null==$$30.$$s?this:$$30.$$s,$writer=nil,h=nil;return null==self.v&&(self.v=nil),null==self.size&&(self.size=nil),null==self.d&&(self.d=nil),null==i&&(i=nil),$writer=[i,self.v["$[]"](i)["$[]"](i)],$send(self.v["$[]"]($rb_minus(self.size,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,1],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],h=self.d["$[]"]($rb_plus(i,1)),$truthy(h["$!="](0))&&($send(0,"upto",[i],(($$31=function(k){var self=null==$$31.$$s?this:$$31.$$s;return null==self.v&&(self.v=nil),null==self.d&&(self.d=nil),null==k&&(k=nil),$writer=[k,$rb_divide(self.v["$[]"](k)["$[]"]($rb_plus(i,1)),h)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$31.$$arity=1,$$31)),$send(0,"upto",[i],(($$32=function(j){var $$33,$$34,self=null==$$32.$$s?this:$$32.$$s,g=nil;return null==j&&(j=nil),$send(g=0,"upto",[i],(($$33=function(k){var self=null==$$33.$$s?this:$$33.$$s;return null==self.v&&(self.v=nil),null==k&&(k=nil),g=$rb_plus(g,$rb_times(self.v["$[]"](k)["$[]"]($rb_plus(i,1)),self.v["$[]"](k)["$[]"](j)))}).$$s=self,$$33.$$arity=1,$$33)),$send(0,"upto",[i],(($$34=function(k){var self=null==$$34.$$s?this:$$34.$$s,$binary_op_recvr_tmp_4=nil;return null==self.v&&(self.v=nil),null==self.d&&(self.d=nil),null==k&&(k=nil),$binary_op_recvr_tmp_4=self.v["$[]"](k),$writer=[j,$rb_minus($binary_op_recvr_tmp_4["$[]"](j),$rb_times(g,self.d["$[]"](k)))],$send($binary_op_recvr_tmp_4,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$34.$$arity=1,$$34))}).$$s=self,$$32.$$arity=1,$$32))),$send(0,"upto",[i],(($$35=function(k){var self=null==$$35.$$s?this:$$35.$$s;return null==self.v&&(self.v=nil),null==k&&(k=nil),$writer=[$rb_plus(i,1),0],$send(self.v["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$35.$$arity=1,$$35))}).$$s=this,$$30.$$arity=1,$$30)),$send(this.size,"times",[],(($$36=function(j){var $writer,self=null==$$36.$$s?this:$$36.$$s;return null==self.v&&(self.v=nil),null==self.size&&(self.size=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,self.v["$[]"]($rb_minus(self.size,1))["$[]"](j)],$send(self.d,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[j,0],$send(self.v["$[]"]($rb_minus(self.size,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$36.$$arity=1,$$36)),$writer=[$rb_minus(this.size,1),1],$send(this.v["$[]"]($rb_minus(this.size,1)),"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[0,0],$send(this.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$diagonalize",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){var $$38,$$39,$$43,eps,$writer=nil,f=nil,tst1=nil;return $send(1,"upto",[$rb_minus(this.size,1)],(($$38=function(i){var $writer,self=null==$$38.$$s?this:$$38.$$s;return null==self.e&&(self.e=nil),null==i&&(i=nil),$writer=[$rb_minus(i,1),self.e["$[]"](i)],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$38.$$arity=1,$$38)),$writer=[$rb_minus(this.size,1),0],$send(this.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],tst1=f=0,eps=$$$($$($nesting,"Float"),"EPSILON"),$send(this.size,"times",[],(($$39=function(l){var $$40,$$41,g,dl1,el1,lhs,rhs,self=null==$$39.$$s?this:$$39.$$s,m=nil,iter=nil,p=nil,r=nil,h=nil,c=nil,c2=nil,c3=nil,s=nil,s2=nil;for(null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==self.size&&(self.size=nil),null==l&&(l=nil),tst1=[tst1,$rb_plus(self.d["$[]"](l).$abs(),self.e["$[]"](l).$abs())].$max(),m=l;$truthy($rb_lt(m,self.size))&&!$truthy((lhs=self.e["$[]"](m).$abs(),rhs=$rb_times(eps,tst1),"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)));)m=$rb_plus(m,1);if($truthy($rb_gt(m,l)))for(iter=0;iter=$rb_plus(iter,1),g=self.d["$[]"](l),p=$rb_divide($rb_minus(self.d["$[]"]($rb_plus(l,1)),g),$rb_times(2,self.e["$[]"](l))),r=$$($nesting,"Math").$hypot(p,1),$truthy($rb_lt(p,0))&&(r=r["$-@"]()),$writer=[l,$rb_divide(self.e["$[]"](l),$rb_plus(p,r))],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_plus(l,1),$rb_times(self.e["$[]"](l),$rb_plus(p,r))],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],dl1=self.d["$[]"]($rb_plus(l,1)),h=$rb_minus(g,self.d["$[]"](l)),$send($rb_plus(l,2),"upto",[$rb_minus(self.size,1)],(($$40=function(i){var self=null==$$40.$$s?this:$$40.$$s;return null==self.d&&(self.d=nil),null==i&&(i=nil),$writer=[i,$rb_minus(self.d["$[]"](i),h)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$40.$$arity=1,$$40)),f=$rb_plus(f,h),p=self.d["$[]"](m),c3=c2=c=1,el1=self.e["$[]"]($rb_plus(l,1)),s2=s=0,$send($rb_minus(m,1),"downto",[l],(($$41=function(i){var $$42,self=null==$$41.$$s?this:$$41.$$s;return null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==self.size&&(self.size=nil),null==i&&(i=nil),c3=c2,s2=s,g=$rb_times(c2=c,self.e["$[]"](i)),h=$rb_times(c,p),r=$$($nesting,"Math").$hypot(p,self.e["$[]"](i)),$writer=[$rb_plus(i,1),$rb_times(s,r)],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],s=$rb_divide(self.e["$[]"](i),r),c=$rb_divide(p,r),p=$rb_minus($rb_times(c,self.d["$[]"](i)),$rb_times(s,g)),$writer=[$rb_plus(i,1),$rb_plus(h,$rb_times(s,$rb_plus($rb_times(c,g),$rb_times(s,self.d["$[]"](i)))))],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(self.size,"times",[],(($$42=function(k){var self=null==$$42.$$s?this:$$42.$$s;return null==self.v&&(self.v=nil),null==k&&(k=nil),h=self.v["$[]"](k)["$[]"]($rb_plus(i,1)),$writer=[$rb_plus(i,1),$rb_plus($rb_times(s,self.v["$[]"](k)["$[]"](i)),$rb_times(c,h))],$send(self.v["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,$rb_minus($rb_times(c,self.v["$[]"](k)["$[]"](i)),$rb_times(s,h))],$send(self.v["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$42.$$arity=1,$$42))}).$$s=self,$$41.$$arity=1,$$41)),p=$rb_divide($rb_times($rb_times($rb_times($rb_times(s["$-@"](),s2),c3),el1),self.e["$[]"](l)),dl1),$writer=[l,$rb_times(s,p)],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[l,$rb_times(c,p)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(self.e["$[]"](l).$abs(),$rb_times(eps,tst1))););return $writer=[l,$rb_plus(self.d["$[]"](l),f)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[l,0],$send(self.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$39.$$arity=1,$$39)),$send(0,"upto",[$rb_minus(this.size,2)],(($$43=function(i){var $$44,$$45,self=null==$$43.$$s?this:$$43.$$s,k=nil,p=nil;return null==self.d&&(self.d=nil),null==self.size&&(self.size=nil),null==i&&(i=nil),k=i,p=self.d["$[]"](i),$send($rb_plus(i,1),"upto",[$rb_minus(self.size,1)],(($$44=function(j){var self=null==$$44.$$s?this:$$44.$$s;return null==self.d&&(self.d=nil),null==j&&(j=nil),$truthy($rb_lt(self.d["$[]"](j),p))?(k=j,p=self.d["$[]"](j)):nil}).$$s=self,$$44.$$arity=1,$$44)),$truthy(k["$!="](i))?($writer=[k,self.d["$[]"](i)],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,p],$send(self.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(self.size,"times",[],(($$45=function(j){var self=null==$$45.$$s?this:$$45.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),p=self.v["$[]"](j)["$[]"](i),$writer=[i,self.v["$[]"](j)["$[]"](k)],$send(self.v["$[]"](j),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[k,p],$send(self.v["$[]"](j),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$45.$$arity=1,$$45))):nil}).$$s=this,$$43.$$arity=1,$$43))},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$reduce_to_hessenberg",$EigenvalueDecomposition_reduce_to_hessenberg$46=function(){var $$47,$$56,$$58,high=$rb_minus(this.size,1);return $send(1,"upto",[$rb_minus(high,1)],(($$47=function(m){var $$48,$$49,$$50,$$53,self=null==$$47.$$s?this:$$47.$$s,scale=nil,h=nil,g=nil,$writer=nil;return null==self.ort&&(self.ort=nil),null==self.size&&(self.size=nil),null==self.h&&(self.h=nil),null==m&&(m=nil),scale=0,$send(m,"upto",[high],(($$48=function(i){var self=null==$$48.$$s?this:$$48.$$s;return null==self.h&&(self.h=nil),null==i&&(i=nil),scale=$rb_plus(scale,self.h["$[]"](i)["$[]"]($rb_minus(m,1)).$abs())}).$$s=self,$$48.$$arity=1,$$48)),$truthy(scale["$!="](0))?(h=0,$send(high,"downto",[m],(($$49=function(i){var $writer,self=null==$$49.$$s?this:$$49.$$s;return null==self.h&&(self.h=nil),null==self.ort&&(self.ort=nil),null==i&&(i=nil),$writer=[i,$rb_divide(self.h["$[]"](i)["$[]"]($rb_minus(m,1)),scale)],$send(self.ort,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),h=$rb_plus(h,$rb_times(self.ort["$[]"](i),self.ort["$[]"](i)))}).$$s=self,$$49.$$arity=1,$$49)),g=$$($nesting,"Math").$sqrt(h),$truthy($rb_gt(self.ort["$[]"](m),0))&&(g=g["$-@"]()),h=$rb_minus(h,$rb_times(self.ort["$[]"](m),g)),$writer=[m,$rb_minus(self.ort["$[]"](m),g)],$send(self.ort,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(m,"upto",[$rb_minus(self.size,1)],(($$50=function(j){var $$51,$$52,self=null==$$50.$$s?this:$$50.$$s,f=nil;return null==j&&(j=nil),f=0,$send(high,"downto",[m],(($$51=function(i){var self=null==$$51.$$s?this:$$51.$$s;return null==self.ort&&(self.ort=nil),null==self.h&&(self.h=nil),null==i&&(i=nil),f=$rb_plus(f,$rb_times(self.ort["$[]"](i),self.h["$[]"](i)["$[]"](j)))}).$$s=self,$$51.$$arity=1,$$51)),f=$rb_divide(f,h),$send(m,"upto",[high],(($$52=function(i){var self=null==$$52.$$s?this:$$52.$$s,$binary_op_recvr_tmp_5=nil;return null==self.h&&(self.h=nil),null==self.ort&&(self.ort=nil),null==i&&(i=nil),$binary_op_recvr_tmp_5=self.h["$[]"](i),$writer=[j,$rb_minus($binary_op_recvr_tmp_5["$[]"](j),$rb_times(f,self.ort["$[]"](i)))],$send($binary_op_recvr_tmp_5,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$52.$$arity=1,$$52))}).$$s=self,$$50.$$arity=1,$$50)),$send(0,"upto",[high],(($$53=function(i){var $$54,$$55,self=null==$$53.$$s?this:$$53.$$s,f=nil;return null==i&&(i=nil),f=0,$send(high,"downto",[m],(($$54=function(j){var self=null==$$54.$$s?this:$$54.$$s;return null==self.ort&&(self.ort=nil),null==self.h&&(self.h=nil),null==j&&(j=nil),f=$rb_plus(f,$rb_times(self.ort["$[]"](j),self.h["$[]"](i)["$[]"](j)))}).$$s=self,$$54.$$arity=1,$$54)),f=$rb_divide(f,h),$send(m,"upto",[high],(($$55=function(j){var self=null==$$55.$$s?this:$$55.$$s,$binary_op_recvr_tmp_6=nil;return null==self.h&&(self.h=nil),null==self.ort&&(self.ort=nil),null==j&&(j=nil),$binary_op_recvr_tmp_6=self.h["$[]"](i),$writer=[j,$rb_minus($binary_op_recvr_tmp_6["$[]"](j),$rb_times(f,self.ort["$[]"](j)))],$send($binary_op_recvr_tmp_6,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$55.$$arity=1,$$55))}).$$s=self,$$53.$$arity=1,$$53)),$writer=[m,$rb_times(scale,self.ort["$[]"](m))],$send(self.ort,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_minus(m,1),$rb_times(scale,g)],$send(self.h["$[]"](m),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}).$$s=this,$$47.$$arity=1,$$47)),$send(this.size,"times",[],(($$56=function(i){var $$57,self=null==$$56.$$s?this:$$56.$$s;return null==self.size&&(self.size=nil),null==i&&(i=nil),$send(self.size,"times",[],(($$57=function(j){var $writer,self=null==$$57.$$s?this:$$57.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),$writer=[j,i["$=="](j)?1:0],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$57.$$arity=1,$$57))}).$$s=this,$$56.$$arity=1,$$56)),$send($rb_minus(high,1),"downto",[1],(($$58=function(m){var $$59,$$60,self=null==$$58.$$s?this:$$58.$$s;return null==self.h&&(self.h=nil),null==m&&(m=nil),$truthy(self.h["$[]"](m)["$[]"]($rb_minus(m,1))["$!="](0))?($send($rb_plus(m,1),"upto",[high],(($$59=function(i){var $writer,self=null==$$59.$$s?this:$$59.$$s;return null==self.h&&(self.h=nil),null==self.ort&&(self.ort=nil),null==i&&(i=nil),$writer=[i,self.h["$[]"](i)["$[]"]($rb_minus(m,1))],$send(self.ort,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$59.$$arity=1,$$59)),$send(m,"upto",[high],(($$60=function(j){var $$61,$$62,self=null==$$60.$$s?this:$$60.$$s,g=nil;return null==self.ort&&(self.ort=nil),null==self.h&&(self.h=nil),null==j&&(j=nil),g=0,$send(m,"upto",[high],(($$61=function(i){var self=null==$$61.$$s?this:$$61.$$s;return null==self.ort&&(self.ort=nil),null==self.v&&(self.v=nil),null==i&&(i=nil),g=$rb_plus(g,$rb_times(self.ort["$[]"](i),self.v["$[]"](i)["$[]"](j)))}).$$s=self,$$61.$$arity=1,$$61)),g=$rb_divide($rb_divide(g,self.ort["$[]"](m)),self.h["$[]"](m)["$[]"]($rb_minus(m,1))),$send(m,"upto",[high],(($$62=function(i){var $writer,self=null==$$62.$$s?this:$$62.$$s,$binary_op_recvr_tmp_7=nil;return null==self.v&&(self.v=nil),null==self.ort&&(self.ort=nil),null==i&&(i=nil),$binary_op_recvr_tmp_7=self.v["$[]"](i),$writer=[j,$rb_plus($binary_op_recvr_tmp_7["$[]"](j),$rb_times(g,self.ort["$[]"](i)))],$send($binary_op_recvr_tmp_7,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$62.$$arity=1,$$62))}).$$s=self,$$60.$$arity=1,$$60))):nil}).$$s=this,$$58.$$arity=1,$$58))},$EigenvalueDecomposition_reduce_to_hessenberg$46.$$arity=0),Opal.def($EigenvalueDecomposition_hessenberg_to_real_schur$63,"$hessenberg_to_real_schur",$EigenvalueDecomposition_hessenberg_to_real_schur$63=function(){var $$64,$$66,$$67,$$68,$$69,$$70,$$71,$$72,$$76,$$83,$$85,nn=nil,n=nil,high=nil,exshift=nil,p=nil,q=nil,r=nil,s=nil,z=nil,norm=nil,iter=nil,l=nil,$writer=nil,w=nil,x=nil,y=nil,m=nil,n=$rb_minus(nn=this.size,1),high=$rb_minus(nn,1),eps=$$$($$($nesting,"Float"),"EPSILON"),exshift=0,p=q=r=s=z=0,norm=0;for($send(nn,"times",[],(($$64=function(i){var $$65,$writer,self=null==$$64.$$s?this:$$64.$$s,$ret_or_1=nil;return null==self.h&&(self.h=nil),null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==i&&(i=nil),$truthy($truthy($ret_or_1=$rb_lt(i,0))?$ret_or_1:$rb_gt(i,high))&&($writer=[i,self.h["$[]"](i)["$[]"](i)],$send(self.d,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[i,0],$send(self.e,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),$send([$rb_minus(i,1),0].$max(),"upto",[$rb_minus(nn,1)],(($$65=function(j){var self=null==$$65.$$s?this:$$65.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),norm=$rb_plus(norm,self.h["$[]"](i)["$[]"](j).$abs())}).$$s=self,$$65.$$arity=1,$$65))}).$$s=this,$$64.$$arity=1,$$64)),iter=0;$truthy($rb_ge(n,0));){for(l=n;$truthy($rb_gt(l,0))&&(s=$rb_plus(this.h["$[]"]($rb_minus(l,1))["$[]"]($rb_minus(l,1)).$abs(),this.h["$[]"](l)["$[]"](l).$abs()),$truthy(s["$=="](0))&&(s=norm),!$truthy($rb_lt(this.h["$[]"](l)["$[]"]($rb_minus(l,1)).$abs(),$rb_times(eps,s))));)l=$rb_minus(l,1);if($truthy(l["$=="](n)))$writer=[n,$rb_plus(this.h["$[]"](n)["$[]"](n),exshift)],$send(this.h["$[]"](n),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,this.h["$[]"](n)["$[]"](n)],$send(this.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,0],$send(this.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],n=$rb_minus(n,1),iter=0;else if($truthy(l["$=="]($rb_minus(n,1))))w=$rb_times(this.h["$[]"](n)["$[]"]($rb_minus(n,1)),this.h["$[]"]($rb_minus(n,1))["$[]"](n)),p=$rb_divide($rb_minus(this.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,1)),this.h["$[]"](n)["$[]"](n)),2),q=$rb_plus($rb_times(p,p),w),z=$$($nesting,"Math").$sqrt(q.$abs()),$writer=[n,$rb_plus(this.h["$[]"](n)["$[]"](n),exshift)],$send(this.h["$[]"](n),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_minus(n,1),$rb_plus(this.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,1)),exshift)],$send(this.h["$[]"]($rb_minus(n,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],x=this.h["$[]"](n)["$[]"](n),$truthy($rb_ge(q,0))?(z=($truthy($rb_ge(p,0))?$rb_plus:$rb_minus)(p,z),$writer=[$rb_minus(n,1),$rb_plus(x,z)],$send(this.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,this.d["$[]"]($rb_minus(n,1))],$send(this.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(z["$!="](0))&&($writer=[n,$rb_minus(x,$rb_divide(w,z))],$send(this.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[$rb_minus(n,1),0],$send(this.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,0],$send(this.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],x=this.h["$[]"](n)["$[]"]($rb_minus(n,1)),s=$rb_plus(x.$abs(),z.$abs()),p=$rb_divide(x,s),q=$rb_divide(z,s),r=$$($nesting,"Math").$sqrt($rb_plus($rb_times(p,p),$rb_times(q,q))),p=$rb_divide(p,r),q=$rb_divide(q,r),$send($rb_minus(n,1),"upto",[$rb_minus(nn,1)],(($$66=function(j){var self=null==$$66.$$s?this:$$66.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),z=self.h["$[]"]($rb_minus(n,1))["$[]"](j),$writer=[j,$rb_plus($rb_times(q,z),$rb_times(p,self.h["$[]"](n)["$[]"](j)))],$send(self.h["$[]"]($rb_minus(n,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,$rb_minus($rb_times(q,self.h["$[]"](n)["$[]"](j)),$rb_times(p,z))],$send(self.h["$[]"](n),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$66.$$arity=1,$$66)),$send(0,"upto",[n],(($$67=function(i){var self=null==$$67.$$s?this:$$67.$$s;return null==self.h&&(self.h=nil),null==i&&(i=nil),z=self.h["$[]"](i)["$[]"]($rb_minus(n,1)),$writer=[$rb_minus(n,1),$rb_plus($rb_times(q,z),$rb_times(p,self.h["$[]"](i)["$[]"](n)))],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_minus($rb_times(q,self.h["$[]"](i)["$[]"](n)),$rb_times(p,z))],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$67.$$arity=1,$$67)),$send(0,"upto",[high],(($$68=function(i){var self=null==$$68.$$s?this:$$68.$$s;return null==self.v&&(self.v=nil),null==i&&(i=nil),z=self.v["$[]"](i)["$[]"]($rb_minus(n,1)),$writer=[$rb_minus(n,1),$rb_plus($rb_times(q,z),$rb_times(p,self.v["$[]"](i)["$[]"](n)))],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_minus($rb_times(q,self.v["$[]"](i)["$[]"](n)),$rb_times(p,z))],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$68.$$arity=1,$$68))):($writer=[$rb_minus(n,1),$rb_plus(x,p)],$send(this.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_plus(x,p)],$send(this.d,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_minus(n,1),z],$send(this.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,z["$-@"]()],$send(this.e,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),n=$rb_minus(n,2),iter=0;else{for(x=this.h["$[]"](n)["$[]"](n),w=y=0,$truthy($rb_lt(l,n))&&(y=this.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,1)),w=$rb_times(this.h["$[]"](n)["$[]"]($rb_minus(n,1)),this.h["$[]"]($rb_minus(n,1))["$[]"](n))),$truthy(iter["$=="](10))&&(exshift=$rb_plus(exshift,x),$send(0,"upto",[n],(($$69=function(i){var self=null==$$69.$$s?this:$$69.$$s,$binary_op_recvr_tmp_8=nil;return null==self.h&&(self.h=nil),null==i&&(i=nil),$binary_op_recvr_tmp_8=self.h["$[]"](i),$writer=[i,$rb_minus($binary_op_recvr_tmp_8["$[]"](i),x)],$send($binary_op_recvr_tmp_8,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$69.$$arity=1,$$69)),s=$rb_plus(this.h["$[]"](n)["$[]"]($rb_minus(n,1)).$abs(),this.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,2)).$abs()),x=y=$rb_times(.75,s),w=$rb_times($rb_times(-.4375,s),s)),$truthy(iter["$=="](30))&&(s=$rb_times(s=$rb_divide($rb_minus(y,x),2),$rb_plus(s,w)),$truthy($rb_gt(s,0))&&(s=$$($nesting,"Math").$sqrt(s),$truthy($rb_lt(y,x))&&(s=s["$-@"]()),s=$rb_minus(x,$rb_divide(w,$rb_plus($rb_divide($rb_minus(y,x),2),s))),$send(0,"upto",[n],(($$70=function(i){var self=null==$$70.$$s?this:$$70.$$s,$binary_op_recvr_tmp_9=nil;return null==self.h&&(self.h=nil),null==i&&(i=nil),$binary_op_recvr_tmp_9=self.h["$[]"](i),$writer=[i,$rb_minus($binary_op_recvr_tmp_9["$[]"](i),s)],$send($binary_op_recvr_tmp_9,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$70.$$arity=1,$$70)),exshift=$rb_plus(exshift,s),x=y=w=.964)),iter=$rb_plus(iter,1),m=$rb_minus(n,2);$truthy($rb_ge(m,l))&&(z=this.h["$[]"](m)["$[]"](m),r=$rb_minus(x,z),s=$rb_minus(y,z),p=$rb_plus($rb_divide($rb_minus($rb_times(r,s),w),this.h["$[]"]($rb_plus(m,1))["$[]"](m)),this.h["$[]"](m)["$[]"]($rb_plus(m,1))),q=$rb_minus($rb_minus($rb_minus(this.h["$[]"]($rb_plus(m,1))["$[]"]($rb_plus(m,1)),z),r),s),r=this.h["$[]"]($rb_plus(m,2))["$[]"]($rb_plus(m,1)),s=$rb_plus($rb_plus(p.$abs(),q.$abs()),r.$abs()),p=$rb_divide(p,s),q=$rb_divide(q,s),r=$rb_divide(r,s),!$truthy(m["$=="](l)))&&!$truthy($rb_lt($rb_times(this.h["$[]"](m)["$[]"]($rb_minus(m,1)).$abs(),$rb_plus(q.$abs(),r.$abs())),$rb_times(eps,$rb_times(p.$abs(),$rb_plus($rb_plus(this.h["$[]"]($rb_minus(m,1))["$[]"]($rb_minus(m,1)).$abs(),z.$abs()),this.h["$[]"]($rb_plus(m,1))["$[]"]($rb_plus(m,1)).$abs())))));)m=$rb_minus(m,1);$send($rb_plus(m,2),"upto",[n],(($$71=function(i){var self=null==$$71.$$s?this:$$71.$$s;return null==self.h&&(self.h=nil),null==i&&(i=nil),$writer=[$rb_minus(i,2),0],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(i,$rb_plus(m,2)))?($writer=[$rb_minus(i,3),0],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}).$$s=this,$$71.$$arity=1,$$71)),$send(m,"upto",[$rb_minus(n,1)],(($$72=function(k){var $$73,$$74,$$75,notlast,self=null==$$72.$$s?this:$$72.$$s;if(null==self.h&&(self.h=nil),null==k&&(k=nil),notlast=k["$!="]($rb_minus(n,1)),$truthy(k["$!="](m))){if(p=self.h["$[]"](k)["$[]"]($rb_minus(k,1)),q=self.h["$[]"]($rb_plus(k,1))["$[]"]($rb_minus(k,1)),r=$truthy(notlast)?self.h["$[]"]($rb_plus(k,2))["$[]"]($rb_minus(k,1)):0,(x=$rb_plus($rb_plus(p.$abs(),q.$abs()),r.$abs()))["$=="](0))return nil;p=$rb_divide(p,x),q=$rb_divide(q,x),r=$rb_divide(r,x)}return s=$$($nesting,"Math").$sqrt($rb_plus($rb_plus($rb_times(p,p),$rb_times(q,q)),$rb_times(r,r))),$truthy($rb_lt(p,0))&&(s=s["$-@"]()),$truthy(s["$!="](0))?($truthy(k["$!="](m))?($writer=[$rb_minus(k,1),$rb_times(s["$-@"](),x)],$send(self.h["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy(l["$!="](m))&&($writer=[$rb_minus(k,1),self.h["$[]"](k)["$[]"]($rb_minus(k,1))["$-@"]()],$send(self.h["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),p=$rb_plus(p,s),x=$rb_divide(p,s),y=$rb_divide(q,s),z=$rb_divide(r,s),q=$rb_divide(q,p),r=$rb_divide(r,p),$send(k,"upto",[$rb_minus(nn,1)],(($$73=function(j){var self=null==$$73.$$s?this:$$73.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),p=$rb_plus(self.h["$[]"](k)["$[]"](j),$rb_times(q,self.h["$[]"]($rb_plus(k,1))["$[]"](j))),$truthy(notlast)&&(p=$rb_plus(p,$rb_times(r,self.h["$[]"]($rb_plus(k,2))["$[]"](j))),$writer=[j,$rb_minus(self.h["$[]"]($rb_plus(k,2))["$[]"](j),$rb_times(p,z))],$send(self.h["$[]"]($rb_plus(k,2)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[j,$rb_minus(self.h["$[]"](k)["$[]"](j),$rb_times(p,x))],$send(self.h["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,$rb_minus(self.h["$[]"]($rb_plus(k,1))["$[]"](j),$rb_times(p,y))],$send(self.h["$[]"]($rb_plus(k,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$73.$$arity=1,$$73)),$send(0,"upto",[[n,$rb_plus(k,3)].$min()],(($$74=function(i){var self=null==$$74.$$s?this:$$74.$$s;return null==self.h&&(self.h=nil),null==i&&(i=nil),p=$rb_plus($rb_times(x,self.h["$[]"](i)["$[]"](k)),$rb_times(y,self.h["$[]"](i)["$[]"]($rb_plus(k,1)))),$truthy(notlast)&&(p=$rb_plus(p,$rb_times(z,self.h["$[]"](i)["$[]"]($rb_plus(k,2)))),$writer=[$rb_plus(k,2),$rb_minus(self.h["$[]"](i)["$[]"]($rb_plus(k,2)),$rb_times(p,r))],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[k,$rb_minus(self.h["$[]"](i)["$[]"](k),p)],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_plus(k,1),$rb_minus(self.h["$[]"](i)["$[]"]($rb_plus(k,1)),$rb_times(p,q))],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$74.$$arity=1,$$74)),$send(0,"upto",[high],(($$75=function(i){var self=null==$$75.$$s?this:$$75.$$s;return null==self.v&&(self.v=nil),null==i&&(i=nil),p=$rb_plus($rb_times(x,self.v["$[]"](i)["$[]"](k)),$rb_times(y,self.v["$[]"](i)["$[]"]($rb_plus(k,1)))),$truthy(notlast)&&(p=$rb_plus(p,$rb_times(z,self.v["$[]"](i)["$[]"]($rb_plus(k,2)))),$writer=[$rb_plus(k,2),$rb_minus(self.v["$[]"](i)["$[]"]($rb_plus(k,2)),$rb_times(p,r))],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[k,$rb_minus(self.v["$[]"](i)["$[]"](k),p)],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_plus(k,1),$rb_minus(self.v["$[]"](i)["$[]"]($rb_plus(k,1)),$rb_times(p,q))],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$75.$$arity=1,$$75))):nil}).$$s=this,$$72.$$arity=1,$$72))}}return $truthy(norm["$=="](0))?nil:($send($rb_minus(nn,1),"downto",[0],(($$76=function(k){var $$77,$c,$$80,self=null==$$76.$$s?this:$$76.$$s,cdivr=nil,cdivi=nil;return null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==self.h&&(self.h=nil),null==k&&(k=nil),p=self.d["$[]"](k),q=self.e["$[]"](k),$truthy(q["$=="](0))?($writer=[l=k,1],$send(self.h["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send($rb_minus(k,1),"downto",[0],(($$77=function(i){var $$78,$$79,self=null==$$77.$$s?this:$$77.$$s,t=nil;return null==self.h&&(self.h=nil),null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==i&&(i=nil),w=$rb_minus(self.h["$[]"](i)["$[]"](i),p),r=0,$send(l,"upto",[k],(($$78=function(j){var self=null==$$78.$$s?this:$$78.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),r=$rb_plus(r,$rb_times(self.h["$[]"](i)["$[]"](j),self.h["$[]"](j)["$[]"](k)))}).$$s=self,$$78.$$arity=1,$$78)),$truthy($rb_lt(self.e["$[]"](i),0))?(z=w,s=r):(l=i,$truthy(self.e["$[]"](i)["$=="](0))?($writer=$truthy(w["$!="](0))?[k,$rb_divide(r["$-@"](),w)]:[k,$rb_divide(r["$-@"](),$rb_times(eps,norm))],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer))):(x=self.h["$[]"](i)["$[]"]($rb_plus(i,1)),y=self.h["$[]"]($rb_plus(i,1))["$[]"](i),q=$rb_plus($rb_times($rb_minus(self.d["$[]"](i),p),$rb_minus(self.d["$[]"](i),p)),$rb_times(self.e["$[]"](i),self.e["$[]"](i))),t=$rb_divide($rb_minus($rb_times(x,s),$rb_times(z,r)),q),$writer=[k,t],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=$truthy($rb_gt(x.$abs(),z.$abs()))?[k,$rb_divide($rb_minus(r["$-@"](),$rb_times(w,t)),x)]:[k,$rb_divide($rb_minus(s["$-@"](),$rb_times(y,t)),z)],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",Opal.to_a($writer))),$writer[$rb_minus($writer.length,1)],t=self.h["$[]"](i)["$[]"](k).$abs(),$truthy($rb_gt($rb_times($rb_times(eps,t),t),1))?$send(i,"upto",[k],(($$79=function(j){var self=null==$$79.$$s?this:$$79.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),$writer=[k,$rb_divide(self.h["$[]"](j)["$[]"](k),t)],$send(self.h["$[]"](j),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$79.$$arity=1,$$79)):nil)}).$$s=self,$$77.$$arity=1,$$77))):$truthy($rb_lt(q,0))?(l=$rb_minus(n,1),$writer=$truthy($rb_gt(self.h["$[]"](n)["$[]"]($rb_minus(n,1)).$abs(),self.h["$[]"]($rb_minus(n,1))["$[]"](n).$abs()))?($writer=[$rb_minus(n,1),$rb_divide(q,self.h["$[]"](n)["$[]"]($rb_minus(n,1)))],$send(self.h["$[]"]($rb_minus(n,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],[n,$rb_divide($rb_minus(self.h["$[]"](n)["$[]"](n),p)["$-@"](),self.h["$[]"](n)["$[]"]($rb_minus(n,1)))]):($c=self.$cdiv(0,self.h["$[]"]($rb_minus(n,1))["$[]"](n)["$-@"](),$rb_minus(self.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,1)),p),q),$c=Opal.to_ary($c),cdivr=null==$c[0]?nil:$c[0],cdivi=null==$c[1]?nil:$c[1],$writer=[$rb_minus(n,1),cdivr],$send(self.h["$[]"]($rb_minus(n,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],[n,cdivi]),$send(self.h["$[]"]($rb_minus(n,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_minus(n,1),0],$send(self.h["$[]"](n),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,1],$send(self.h["$[]"](n),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send($rb_minus(n,2),"downto",[0],(($$80=function(i){var $$81,$e,$f,$$82,t,self=null==$$80.$$s?this:$$80.$$s,ra=nil,sa=nil,vr=nil,vi=nil,$ret_or_2=nil;return null==self.h&&(self.h=nil),null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==i&&(i=nil),sa=ra=0,$send(l,"upto",[n],(($$81=function(j){var self=null==$$81.$$s?this:$$81.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),ra=$rb_plus(ra,$rb_times(self.h["$[]"](i)["$[]"](j),self.h["$[]"](j)["$[]"]($rb_minus(n,1)))),sa=$rb_plus(sa,$rb_times(self.h["$[]"](i)["$[]"](j),self.h["$[]"](j)["$[]"](n)))}).$$s=self,$$81.$$arity=1,$$81)),w=$rb_minus(self.h["$[]"](i)["$[]"](i),p),$truthy($rb_lt(self.e["$[]"](i),0))?(z=w,r=ra,s=sa):(l=i,$truthy(self.e["$[]"](i)["$=="](0))?($f=self.$cdiv(ra["$-@"](),sa["$-@"](),w,q),$e=Opal.to_ary($f),cdivr=null==$e[0]?nil:$e[0],cdivi=null==$e[1]?nil:$e[1],$writer=[$rb_minus(n,1),cdivr],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,cdivi],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer))):(x=self.h["$[]"](i)["$[]"]($rb_plus(i,1)),y=self.h["$[]"]($rb_plus(i,1))["$[]"](i),vr=$rb_minus($rb_plus($rb_times($rb_minus(self.d["$[]"](i),p),$rb_minus(self.d["$[]"](i),p)),$rb_times(self.e["$[]"](i),self.e["$[]"](i))),$rb_times(q,q)),vi=$rb_times($rb_times($rb_minus(self.d["$[]"](i),p),2),q),$truthy($truthy($ret_or_2=vr["$=="](0))?vi["$=="](0):$ret_or_2)&&(vr=$rb_times($rb_times(eps,norm),$rb_plus($rb_plus($rb_plus($rb_plus(w.$abs(),q.$abs()),x.$abs()),y.$abs()),z.$abs()))),$f=self.$cdiv($rb_plus($rb_minus($rb_times(x,r),$rb_times(z,ra)),$rb_times(q,sa)),$rb_minus($rb_minus($rb_times(x,s),$rb_times(z,sa)),$rb_times(q,ra)),vr,vi),$e=Opal.to_ary($f),cdivr=null==$e[0]?nil:$e[0],cdivi=null==$e[1]?nil:$e[1],$writer=[$rb_minus(n,1),cdivr],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,cdivi],$send(self.h["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=$truthy($rb_gt(x.$abs(),$rb_plus(z.$abs(),q.$abs())))?($writer=[$rb_minus(n,1),$rb_divide($rb_plus($rb_minus(ra["$-@"](),$rb_times(w,self.h["$[]"](i)["$[]"]($rb_minus(n,1)))),$rb_times(q,self.h["$[]"](i)["$[]"](n))),x)],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],[n,$rb_divide($rb_minus($rb_minus(sa["$-@"](),$rb_times(w,self.h["$[]"](i)["$[]"](n))),$rb_times(q,self.h["$[]"](i)["$[]"]($rb_minus(n,1)))),x)]):($f=self.$cdiv($rb_minus(r["$-@"](),$rb_times(y,self.h["$[]"](i)["$[]"]($rb_minus(n,1)))),$rb_minus(s["$-@"](),$rb_times(y,self.h["$[]"](i)["$[]"](n))),z,q),$e=Opal.to_ary($f),cdivr=null==$e[0]?nil:$e[0],cdivi=null==$e[1]?nil:$e[1],$writer=[$rb_minus(n,1),cdivr],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],[n,cdivi]),$send(self.h["$[]"]($rb_plus(i,1)),"[]=",Opal.to_a($writer))),$writer[$rb_minus($writer.length,1)],t=[self.h["$[]"](i)["$[]"]($rb_minus(n,1)).$abs(),self.h["$[]"](i)["$[]"](n).$abs()].$max(),$truthy($rb_gt($rb_times($rb_times(eps,t),t),1))?$send(i,"upto",[n],(($$82=function(j){var self=null==$$82.$$s?this:$$82.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),$writer=[$rb_minus(n,1),$rb_divide(self.h["$[]"](j)["$[]"]($rb_minus(n,1)),t)],$send(self.h["$[]"](j),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_divide(self.h["$[]"](j)["$[]"](n),t)],$send(self.h["$[]"](j),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$82.$$arity=1,$$82)):nil)}).$$s=self,$$80.$$arity=1,$$80))):nil}).$$s=this,$$76.$$arity=1,$$76)),$send(nn,"times",[],(($$83=function(i){var $$84,self=null==$$83.$$s?this:$$83.$$s,$ret_or_3=nil;return null==i&&(i=nil),$truthy($truthy($ret_or_3=$rb_lt(i,0))?$ret_or_3:$rb_gt(i,high))?$send(i,"upto",[$rb_minus(nn,1)],(($$84=function(j){var self=null==$$84.$$s?this:$$84.$$s;return null==self.h&&(self.h=nil),null==self.v&&(self.v=nil),null==j&&(j=nil),$writer=[j,self.h["$[]"](i)["$[]"](j)],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$84.$$arity=1,$$84)):nil}).$$s=this,$$83.$$arity=1,$$83)),$send($rb_minus(nn,1),"downto",[0],(($$85=function(j){var $$86,self=null==$$85.$$s?this:$$85.$$s;return null==j&&(j=nil),$send(0,"upto",[high],(($$86=function(i){var $$87,self=null==$$86.$$s?this:$$86.$$s;return null==self.v&&(self.v=nil),null==i&&(i=nil),$send(z=0,"upto",[[j,high].$min()],(($$87=function(k){var self=null==$$87.$$s?this:$$87.$$s;return null==self.v&&(self.v=nil),null==self.h&&(self.h=nil),null==k&&(k=nil),z=$rb_plus(z,$rb_times(self.v["$[]"](i)["$[]"](k),self.h["$[]"](k)["$[]"](j)))}).$$s=self,$$87.$$arity=1,$$87)),$writer=[j,z],$send(self.v["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$86.$$arity=1,$$86))}).$$s=this,$$85.$$arity=1,$$85)))},$EigenvalueDecomposition_hessenberg_to_real_schur$63.$$arity=0),nil&&"hessenberg_to_real_schur"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["matrix/lup_decomposition"]=function(Opal){function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_times(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$include","$build","$min","$>","$[]","$==","$<=","$new","$each_with_index","$[]=","$-","$send","$l","$u","$p","$alias_method","$attr_reader","$times","$!=","$Raise","$*","$singular?","$is_a?","$row_count","$column_count","$map","$to_a","$row","$upto","$+","$downto","$quo","$convert_to_array","$size","$values_at","$elements","$raise","$class","$abs","$-@","$<"]),function($base,$nesting){$nesting=[$klass($base,null,"Matrix")].concat($nesting);return function($LUPDecomposition_initialize$26,$LUPDecomposition_solve$13){var $LUPDecomposition_initialize$26=$klass($LUPDecomposition_initialize$26,null,"LUPDecomposition"),$nesting=[$LUPDecomposition_initialize$26].concat($LUPDecomposition_solve$13);return $LUPDecomposition_initialize$26.$$prototype.row_count=$LUPDecomposition_initialize$26.$$prototype.column_count=$LUPDecomposition_initialize$26.$$prototype.pivots=$LUPDecomposition_initialize$26.$$prototype.pivot_sign=nil,$LUPDecomposition_initialize$26.$include($$$($$($nesting,"Matrix"),"ConversionHelper")),Opal.def($LUPDecomposition_initialize$26,"$l",$LUPDecomposition_solve$13=function(){var $$2;return $send($$($nesting,"Matrix"),"build",[this.row_count,[this.column_count,this.row_count].$min()],(($$2=function(i,j){var self=null==$$2.$$s?this:$$2.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),null==j&&(j=nil),$truthy($rb_gt(i,j))?self.lu["$[]"](i)["$[]"](j):$truthy(i["$=="](j))?1:0}).$$s=this,$$2.$$arity=2,$$2))},$LUPDecomposition_solve$13.$$arity=0),Opal.def($LUPDecomposition_initialize$26,"$u",$LUPDecomposition_solve$13=function(){var $$4;return $send($$($nesting,"Matrix"),"build",[[this.column_count,this.row_count].$min(),this.column_count],(($$4=function(i,j){var lhs,rhs,self=null==$$4.$$s?this:$$4.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),null==j&&(j=nil),$truthy((rhs=j,"number"==typeof(lhs=i)&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))?self.lu["$[]"](i)["$[]"](j):0}).$$s=this,$$4.$$arity=2,$$4))},$LUPDecomposition_solve$13.$$arity=0),Opal.def($LUPDecomposition_initialize$26,"$p",$LUPDecomposition_solve$13=function(){var $$6,$$7,rows=nil,rows=$send($$($nesting,"Array"),"new",[this.row_count],(($$6=function(){var self=null==$$6.$$s?this:$$6.$$s;return null==self.row_count&&(self.row_count=nil),$$($nesting,"Array").$new(self.row_count,0)}).$$s=this,$$6.$$arity=0,$$6));return $send(this.pivots,"each_with_index",[],(($$7=function(p,i){var $writer;null==$$7.$$s||$$7.$$s;return null==p&&(p=nil),null==i&&(i=nil),$writer=[p,1],$send(rows["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$7.$$arity=2,$$7)),$$($nesting,"Matrix").$send("new",rows,this.row_count)},$LUPDecomposition_solve$13.$$arity=0),Opal.def($LUPDecomposition_initialize$26,"$to_ary",$LUPDecomposition_solve$13=function(){return[this.$l(),this.$u(),this.$p()]},$LUPDecomposition_solve$13.$$arity=0),$LUPDecomposition_initialize$26.$alias_method("to_a","to_ary"),$LUPDecomposition_initialize$26.$attr_reader("pivots"),Opal.def($LUPDecomposition_initialize$26,"$singular?",$LUPDecomposition_solve$13=function(){try{var $$10;return $send(this.column_count,"times",[],(($$10=function(j){var self=null==$$10.$$s?this:$$10.$$s;if(null==self.lu&&(self.lu=nil),null==j&&(j=nil),!$truthy(self.lu["$[]"](j)["$[]"](j)["$=="](0)))return nil;Opal.ret(!0)}).$$s=this,$$10.$$arity=1,$$10)),!1}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$LUPDecomposition_solve$13.$$arity=0),Opal.def($LUPDecomposition_initialize$26,"$det",$LUPDecomposition_solve$13=function(){var $$12,d=nil;return $truthy(this.row_count["$!="](this.column_count))&&$$($nesting,"Matrix").$Raise($$$($$($nesting,"Matrix"),"ErrDimensionMismatch")),d=this.pivot_sign,$send(this.column_count,"times",[],(($$12=function(j){var self=null==$$12.$$s?this:$$12.$$s;return null==self.lu&&(self.lu=nil),null==j&&(j=nil),d=$rb_times(d,self.lu["$[]"](j)["$[]"](j))}).$$s=this,$$12.$$arity=1,$$12)),d},$LUPDecomposition_solve$13.$$arity=0),$LUPDecomposition_initialize$26.$alias_method("determinant","det"),Opal.def($LUPDecomposition_initialize$26,"$solve",$LUPDecomposition_solve$13=function(b){var $$14,$$15,$$18,$$22,$$24,nx,m=nil;return $truthy(this["$singular?"]())&&$$($nesting,"Matrix").$Raise($$$($$($nesting,"Matrix"),"ErrNotRegular"),"Matrix is singular."),$truthy(b["$is_a?"]($$($nesting,"Matrix")))?($truthy(b.$row_count()["$!="](this.row_count))&&$$($nesting,"Matrix").$Raise($$$($$($nesting,"Matrix"),"ErrDimensionMismatch")),nx=b.$column_count(),m=$send(this.pivots,"map",[],(($$14=function(row){null==$$14.$$s||$$14.$$s;return null==row&&(row=nil),b.$row(row).$to_a()}).$$s=this,$$14.$$arity=1,$$14)),$send(this.column_count,"times",[],(($$15=function(k){var $$16,self=null==$$15.$$s?this:$$15.$$s;return null==self.column_count&&(self.column_count=nil),null==k&&(k=nil),$send($rb_plus(k,1),"upto",[$rb_minus(self.column_count,1)],(($$16=function(i){var $$17,self=null==$$16.$$s?this:$$16.$$s;return null==i&&(i=nil),$send(nx,"times",[],(($$17=function(j){var $writer,self=null==$$17.$$s?this:$$17.$$s,$binary_op_recvr_tmp_10=nil;return null==self.lu&&(self.lu=nil),null==j&&(j=nil),$writer=[j,$rb_minus(($binary_op_recvr_tmp_10=m["$[]"](i))["$[]"](j),$rb_times(m["$[]"](k)["$[]"](j),self.lu["$[]"](i)["$[]"](k)))],$send($binary_op_recvr_tmp_10,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$17.$$arity=1,$$17))}).$$s=self,$$16.$$arity=1,$$16))}).$$s=this,$$15.$$arity=1,$$15)),$send($rb_minus(this.column_count,1),"downto",[0],(($$18=function(k){var $$19,$$20,self=null==$$18.$$s?this:$$18.$$s;return null==k&&(k=nil),$send(nx,"times",[],(($$19=function(j){var $writer,self=null==$$19.$$s?this:$$19.$$s;return null==self.lu&&(self.lu=nil),null==j&&(j=nil),$writer=[j,m["$[]"](k)["$[]"](j).$quo(self.lu["$[]"](k)["$[]"](k))],$send(m["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$19.$$arity=1,$$19)),$send(k,"times",[],(($$20=function(i){var $$21,self=null==$$20.$$s?this:$$20.$$s;return null==i&&(i=nil),$send(nx,"times",[],(($$21=function(j){var $writer,self=null==$$21.$$s?this:$$21.$$s,$binary_op_recvr_tmp_11=nil;return null==self.lu&&(self.lu=nil),null==j&&(j=nil),$writer=[j,$rb_minus(($binary_op_recvr_tmp_11=m["$[]"](i))["$[]"](j),$rb_times(m["$[]"](k)["$[]"](j),self.lu["$[]"](i)["$[]"](k)))],$send($binary_op_recvr_tmp_11,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$21.$$arity=1,$$21))}).$$s=self,$$20.$$arity=1,$$20))}).$$s=this,$$18.$$arity=1,$$18)),$$($nesting,"Matrix").$send("new",m,nx)):(b=this.$convert_to_array(b),$truthy(b.$size()["$!="](this.row_count))&&$$($nesting,"Matrix").$Raise($$$($$($nesting,"Matrix"),"ErrDimensionMismatch")),m=$send(b,"values_at",Opal.to_a(this.pivots)),$send(this.column_count,"times",[],(($$22=function(k){var $$23,self=null==$$22.$$s?this:$$22.$$s;return null==self.column_count&&(self.column_count=nil),null==k&&(k=nil),$send($rb_plus(k,1),"upto",[$rb_minus(self.column_count,1)],(($$23=function(i){var $writer,self=null==$$23.$$s?this:$$23.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),$writer=[i,$rb_minus(m["$[]"](i),$rb_times(m["$[]"](k),self.lu["$[]"](i)["$[]"](k)))],$send(m,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$23.$$arity=1,$$23))}).$$s=this,$$22.$$arity=1,$$22)),$send($rb_minus(this.column_count,1),"downto",[0],(($$24=function(k){var $$25,$writer,self=null==$$24.$$s?this:$$24.$$s;return null==self.lu&&(self.lu=nil),null==k&&(k=nil),$writer=[k,m["$[]"](k).$quo(self.lu["$[]"](k)["$[]"](k))],$send(m,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),$send(k,"times",[],(($$25=function(i){var self=null==$$25.$$s?this:$$25.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),$writer=[i,$rb_minus(m["$[]"](i),$rb_times(m["$[]"](k),self.lu["$[]"](i)["$[]"](k)))],$send(m,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$25.$$arity=1,$$25))}).$$s=this,$$24.$$arity=1,$$24)),$$($nesting,"Vector").$elements(m,!1))},$LUPDecomposition_solve$13.$$arity=1),Opal.def($LUPDecomposition_initialize$26,"$initialize",$LUPDecomposition_initialize$26=function(a){var $$27,$$28,lu_col_j=nil;return $truthy(a["$is_a?"]($$($nesting,"Matrix")))||this.$raise($$($nesting,"TypeError"),"Expected Matrix but got "+a.$class()),this.lu=a.$to_a(),this.row_count=a.$row_count(),this.column_count=a.$column_count(),this.pivots=$$($nesting,"Array").$new(this.row_count),$send(this.row_count,"times",[],(($$27=function(i){var $writer,self=null==$$27.$$s?this:$$27.$$s;return null==self.pivots&&(self.pivots=nil),null==i&&(i=nil),$writer=[i,i],$send(self.pivots,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$27.$$arity=1,$$27)),this.pivot_sign=1,lu_col_j=$$($nesting,"Array").$new(this.row_count),$send(this.column_count,"times",[],(($$28=function(j){var $$29,$$30,$$32,$$33,$$34,lhs,self=null==$$28.$$s?this:$$28.$$s,p=nil,rhs=nil,$writer=nil,$ret_or_1=nil;return null==self.row_count&&(self.row_count=nil),null==self.column_count&&(self.column_count=nil),null==self.pivots&&(self.pivots=nil),null==self.pivot_sign&&(self.pivot_sign=nil),null==self.lu&&(self.lu=nil),null==j&&(j=nil),$send(self.row_count,"times",[],(($$29=function(i){var $writer,self=null==$$29.$$s?this:$$29.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),$writer=[i,self.lu["$[]"](i)["$[]"](j)],$send(lu_col_j,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$29.$$arity=1,$$29)),$send(self.row_count,"times",[],(($$30=function(i){var $$31,kmax,$writer,self=null==$$30.$$s?this:$$30.$$s,lu_row_i=nil,s=nil;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),lu_row_i=self.lu["$[]"](i),kmax=[i,j].$min(),s=0,$send(kmax,"times",[],(($$31=function(k){null==$$31.$$s||$$31.$$s;return null==k&&(k=nil),s=$rb_plus(s,$rb_times(lu_row_i["$[]"](k),lu_col_j["$[]"](k)))}).$$s=self,$$31.$$arity=1,$$31)),$writer=[j,($writer=[i,$rb_minus(lu_col_j["$[]"](i),s)],$send(lu_col_j,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send(lu_row_i,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$30.$$arity=1,$$30)),$send($rb_plus(p=j,1),"upto",[$rb_minus(self.row_count,1)],(($$32=function(i){null==$$32.$$s||$$32.$$s;return null==i&&(i=nil),$truthy($rb_gt(lu_col_j["$[]"](i).$abs(),lu_col_j["$[]"](p).$abs()))?p=i:nil}).$$s=self,$$32.$$arity=1,$$32)),$truthy(p["$!="](j))&&($send(self.column_count,"times",[],(($$33=function(k){var t,$writer,self=null==$$33.$$s?this:$$33.$$s;return null==self.lu&&(self.lu=nil),null==k&&(k=nil),t=self.lu["$[]"](p)["$[]"](k),$writer=[k,self.lu["$[]"](j)["$[]"](k)],$send(self.lu["$[]"](p),"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[k,t],$send(self.lu["$[]"](j),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$33.$$arity=1,$$33)),rhs=self.pivots["$[]"](p),$writer=[p,self.pivots["$[]"](j)],$send(self.pivots,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,rhs],$send(self.pivots,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.pivot_sign=self.pivot_sign["$-@"]()),$truthy($truthy((lhs=j,rhs=self.row_count,$ret_or_1="number"==typeof lhs&&"number"==typeof rhs?lhs="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_le(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}function $rb_divide(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs/rhs:lhs["$/"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$alias=Opal.alias,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$extend","$def_e2message","$def_exception","$include","$autoload","$private_class_method","$attr_reader","$protected","$rows","$convert_to_array","$map!","$size","$[]","$each","$==","$raise","$new","$transpose","$coerce_to_int","$<","$to_enum","$empty","$[]=","$-","$diagonal","$scalar","$!=","$*","$coerce_to_matrix","$map","$send","$to_proc","$column_count","$concat","$row_count","$each_with_index","$+","$empty?","$method","$first","$Raise","$combine","$class","$private","$fetch","$alias_method","$elements","$>=","$-@","$times","$collect","$new_matrix","$===","$upto","$min","$inspect","$freeze","$>","$include?","$last","$pop","$end","$exclude_end?","$<=","$to_a","$delete_at","$square?","$determinant","$first_minor","$**","$build","$cofactor","$!","$inject","$with_index","$all?","$conj","$singular?","$eql?","$hash","$column_vector","$column","$apply_through_coercion","$/","$inverse","$I","$abs","$quo","$identity","$loop","$zero?","$>>","$eigensystem","$+@","$determinant_bareiss","$find","$warn","$hstack","$rank","$round","$vstack","$real","$imag","$row","$join","$to_s","$dup","$to_ary","$message","$is_a?","$coerce","$length","$public_send","$kind_of?","$respond_to?","$__send__","$coerce_to","$count","$independent?","$collect2","$each2","$basis","$laplace_expansion","$sqrt","$abs2","$magnitude","$acos","$inner_product","$row_vector"]),self.$require("e2mmap.rb"),function(self,$nesting){self=$module(self,"ExceptionForMatrix"),$nesting=[self].concat($nesting),self.$extend($$($nesting,"Exception2MessageMapper")),self.$def_e2message($$($nesting,"TypeError"),"wrong argument type %s (expected %s)"),self.$def_e2message($$($nesting,"ArgumentError"),"Wrong # of arguments(%d for %d)"),self.$def_exception("ErrDimensionMismatch","#{self.name} dimension mismatch"),self.$def_exception("ErrNotRegular","Not Regular Matrix"),self.$def_exception("ErrOperationNotDefined","Operation(%s) can\\'t be defined: %s op %s"),self.$def_exception("ErrOperationNotImplemented","Sorry, Operation(%s) not implemented: %s op %s")}($nesting[0],$nesting),function(self,$Matrix_inspect$190){var $Matrix_build$6,$Matrix_combine$23,$Matrix_combine$28,$Matrix_row$35,$Matrix_column$38,$Matrix_collect$41,$Matrix_each$43,$Matrix_each_with_index$57,$Matrix_index$72,$nesting=[self=$klass(self,null,"Matrix")].concat($Matrix_inspect$190);self.$$prototype.rows=nil,self.$include($$($nesting,"Enumerable")),self.$include($$($nesting,"ExceptionForMatrix")),self.$autoload("EigenvalueDecomposition","matrix/eigenvalue_decomposition"),self.$autoload("LUPDecomposition","matrix/lup_decomposition"),self.$private_class_method("new"),self.$attr_reader("rows"),self.$protected("rows"),Opal.defs($$($nesting,"Matrix"),"$[]",$Matrix_inspect$190=function($a){var $post_args=Opal.slice.call(arguments,0,arguments.length);return this.$rows($post_args,!1)},$Matrix_inspect$190.$$arity=-1),Opal.defs($$($nesting,"Matrix"),"$rows",$Matrix_inspect$190=function(rows,copy){var $$3,$$4,size,$ret_or_1=nil;return null==copy&&(copy=!0),rows=this.$convert_to_array(rows,copy),$send(rows,"map!",[],(($$3=function(row){var self=null==$$3.$$s?this:$$3.$$s;return null==row&&(row=nil),self.$convert_to_array(row,copy)}).$$s=this,$$3.$$arity=1,$$3)),size=($truthy($ret_or_1=rows["$[]"](0))?$ret_or_1:[]).$size(),$send(rows,"each",[],(($$4=function(row){var self=null==$$4.$$s?this:$$4.$$s;return null==row&&(row=nil),row.$size()["$=="](size)?nil:self.$raise($$($nesting,"ErrDimensionMismatch"),"row size differs ("+row.$size()+" should be "+size+")")}).$$s=this,$$4.$$arity=1,$$4)),this.$new(rows,size)},$Matrix_inspect$190.$$arity=-2),Opal.defs($$($nesting,"Matrix"),"$columns",$Matrix_inspect$190=function(columns){return this.$rows(columns,!1).$transpose()},$Matrix_inspect$190.$$arity=1),Opal.defs($$($nesting,"Matrix"),"$build",$Matrix_build$6=function(row_count,column_count){var $$7,rows,$iter=$Matrix_build$6.$$p,$yield=$iter||nil,$ret_or_2=nil;return $iter&&($Matrix_build$6.$$p=null),null==column_count&&(column_count=row_count),row_count=$$($nesting,"CoercionHelper").$coerce_to_int(row_count),column_count=$$($nesting,"CoercionHelper").$coerce_to_int(column_count),$truthy($truthy($ret_or_2=$rb_lt(row_count,0))?$ret_or_2:$rb_lt(column_count,0))&&this.$raise($$($nesting,"ArgumentError")),$yield===nil?this.$to_enum("build",row_count,column_count):(rows=$send($$($nesting,"Array"),"new",[row_count],(($$7=function(i){var $$8,self=null==$$7.$$s?this:$$7.$$s;return null==i&&(i=nil),$send($$($nesting,"Array"),"new",[column_count],(($$8=function(j){null==$$8.$$s||$$8.$$s;return null==j&&(j=nil),Opal.yieldX($yield,[i,j])}).$$s=self,$$8.$$arity=1,$$8))}).$$s=this,$$7.$$arity=1,$$7)),this.$new(rows,column_count))},$Matrix_build$6.$$arity=-2),Opal.defs($$($nesting,"Matrix"),"$diagonal",$Matrix_inspect$190=function($a){var $$10,rows,size=nil,values=Opal.slice.call(arguments,0,arguments.length);return(size=values.$size())["$=="](0)?$$($nesting,"Matrix").$empty():(rows=$send($$($nesting,"Array"),"new",[size],(($$10=function(j){var row,$writer;null==$$10.$$s||$$10.$$s;return null==j&&(j=nil),row=$$($nesting,"Array").$new(size,0),$writer=[j,values["$[]"](j)],$send(row,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),row}).$$s=this,$$10.$$arity=1,$$10)),this.$new(rows))},$Matrix_inspect$190.$$arity=-1),Opal.defs($$($nesting,"Matrix"),"$scalar",$Matrix_inspect$190=function(n,value){return $send(this,"diagonal",Opal.to_a($$($nesting,"Array").$new(n,value)))},$Matrix_inspect$190.$$arity=2),Opal.defs($$($nesting,"Matrix"),"$identity",$Matrix_inspect$190=function(n){return this.$scalar(n,1)},$Matrix_inspect$190.$$arity=1),function(self,$parent_nesting){[self].concat($parent_nesting),$alias(self,"unit","identity"),$alias(self,"I","identity")}(Opal.get_singleton_class($$($nesting,"Matrix")),$nesting),Opal.defs($$($nesting,"Matrix"),"$zero",$Matrix_inspect$190=function(row_count,column_count){var $$14,rows;return null==column_count&&(column_count=row_count),rows=$send($$($nesting,"Array"),"new",[row_count],(($$14=function(){null==$$14.$$s||$$14.$$s;return $$($nesting,"Array").$new(column_count,0)}).$$s=this,$$14.$$arity=0,$$14)),this.$new(rows,column_count)},$Matrix_inspect$190.$$arity=-2),Opal.defs($$($nesting,"Matrix"),"$row_vector",$Matrix_inspect$190=function(row){return row=this.$convert_to_array(row),this.$new([row])},$Matrix_inspect$190.$$arity=1),Opal.defs($$($nesting,"Matrix"),"$column_vector",$Matrix_inspect$190=function(column){return column=this.$convert_to_array(column),this.$new([column].$transpose(),1)},$Matrix_inspect$190.$$arity=1),Opal.defs($$($nesting,"Matrix"),"$empty",$Matrix_inspect$190=function(row_count,column_count){var $ret_or_3=nil,$ret_or_4=nil;return null==row_count&&(row_count=0),null==column_count&&(column_count=0),$truthy($truthy($ret_or_3=column_count["$!="](0))?row_count["$!="](0):$ret_or_3)&&this.$raise($$($nesting,"ArgumentError"),"One size must be 0"),$truthy($truthy($ret_or_4=$rb_lt(column_count,0))?$ret_or_4:$rb_lt(row_count,0))&&this.$raise($$($nesting,"ArgumentError"),"Negative size"),this.$new($rb_times([[]],row_count),column_count)},$Matrix_inspect$190.$$arity=-1),Opal.defs($$($nesting,"Matrix"),"$vstack",$Matrix_inspect$190=function(x,$a){var $$19,result=nil,matrices=Opal.slice.call(arguments,1,arguments.length);return x=$$($nesting,"CoercionHelper").$coerce_to_matrix(x),result=$send(x.$send("rows"),"map",[],"dup".$to_proc()),$send(matrices,"each",[],(($$19=function(m){var self=null==$$19.$$s?this:$$19.$$s;return null==m&&(m=nil),m=$$($nesting,"CoercionHelper").$coerce_to_matrix(m),$truthy(m.$column_count()["$!="](x.$column_count()))&&self.$raise($$($nesting,"ErrDimensionMismatch"),"The given matrices must have "+x.$column_count()+" columns, but one has "+m.$column_count()),result.$concat(m.$send("rows"))}).$$s=this,$$19.$$arity=1,$$19)),this.$new(result,x.$column_count())},$Matrix_inspect$190.$$arity=-2),Opal.defs($$($nesting,"Matrix"),"$hstack",$Matrix_inspect$190=function(x,$a){var $$21,result,total_column_count=nil,matrices=Opal.slice.call(arguments,1,arguments.length);return x=$$($nesting,"CoercionHelper").$coerce_to_matrix(x),result=$send(x.$send("rows"),"map",[],"dup".$to_proc()),total_column_count=x.$column_count(),$send(matrices,"each",[],(($$21=function(m){var $$22,self=null==$$21.$$s?this:$$21.$$s;return null==m&&(m=nil),m=$$($nesting,"CoercionHelper").$coerce_to_matrix(m),$truthy(m.$row_count()["$!="](x.$row_count()))&&self.$raise($$($nesting,"ErrDimensionMismatch"),"The given matrices must have "+x.$row_count()+" rows, but one has "+m.$row_count()),$send(result,"each_with_index",[],(($$22=function(row,i){null==$$22.$$s||$$22.$$s;return null==row&&(row=nil),null==i&&(i=nil),row.$concat(m.$send("rows")["$[]"](i))}).$$s=self,$$22.$$arity=2,$$22)),total_column_count=$rb_plus(total_column_count,m.$column_count())}).$$s=this,$$21.$$arity=1,$$21)),this.$new(result,total_column_count)},$Matrix_inspect$190.$$arity=-2),Opal.defs($$($nesting,"Matrix"),"$combine",$Matrix_combine$23=function($a){var matrices,$$24,$$25,rows,$post_args=$Matrix_combine$23.$$p,$yield=$post_args||nil,x=nil;return $post_args&&($Matrix_combine$23.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),matrices=$post_args,$yield===nil?$send(this,"to_enum",["combine"].concat(Opal.to_a(matrices))):$truthy(matrices["$empty?"]())?$$($nesting,"Matrix").$empty():($send(matrices,"map!",[],$$($nesting,"CoercionHelper").$method("coerce_to_matrix").$to_proc()),x=matrices.$first(),$send(matrices,"each",[],(($$24=function(m){null==$$24.$$s||$$24.$$s;var $ret_or_5=nil;return null==m&&(m=nil),$truthy($truthy($ret_or_5=x.$row_count()["$=="](m.$row_count()))?x.$column_count()["$=="](m.$column_count()):$ret_or_5)?nil:$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch"))}).$$s=this,$$24.$$arity=1,$$24)),rows=$send($$($nesting,"Array"),"new",[x.$row_count()],(($$25=function(i){var $$26,self=null==$$25.$$s?this:$$25.$$s;return null==i&&(i=nil),$send($$($nesting,"Array"),"new",[x.$column_count()],(($$26=function(j){var $$27,self=null==$$26.$$s?this:$$26.$$s;return null==j&&(j=nil),Opal.yield1($yield,$send(matrices,"map",[],(($$27=function(m){null==$$27.$$s||$$27.$$s;return null==m&&(m=nil),m["$[]"](i,j)}).$$s=self,$$27.$$arity=1,$$27)))}).$$s=self,$$26.$$arity=1,$$26))}).$$s=this,$$25.$$arity=1,$$25)),this.$new(rows,x.$column_count()))},$Matrix_combine$23.$$arity=-1),Opal.def(self,"$combine",$Matrix_combine$28=function($a){var matrices=$Matrix_combine$28.$$p,block=matrices||nil,self=this;return matrices&&($Matrix_combine$28.$$p=null),matrices&&($Matrix_combine$28.$$p=null),matrices=Opal.slice.call(arguments,0,arguments.length),$send($$($nesting,"Matrix"),"combine",[self].concat(Opal.to_a(matrices)),block.$to_proc())},$Matrix_combine$28.$$arity=-1),Opal.def(self,"$initialize",$Matrix_inspect$190=function(rows,column_count){return null==column_count&&(column_count=rows["$[]"](0).$size()),this.rows=rows,this.column_count=column_count},$Matrix_inspect$190.$$arity=-2),Opal.def(self,"$new_matrix",$Matrix_inspect$190=function(rows,column_count){return null==column_count&&(column_count=rows["$[]"](0).$size()),this.$class().$send("new",rows,column_count)},$Matrix_inspect$190.$$arity=-2),self.$private("new_matrix"),Opal.def(self,"$[]",$Matrix_inspect$190=function(i,j){try{var $$32;return $send(this.rows,"fetch",[i],(($$32=function(){null==$$32.$$s||$$32.$$s;Opal.ret(nil)}).$$s=this,$$32.$$arity=0,$$32))["$[]"](j)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=2),$alias(self,"element","[]"),$alias(self,"component","[]"),Opal.def(self,"$[]=",$Matrix_inspect$190=function(i,j,v){var $writer=[j,v];return $send(this.rows["$[]"](i),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Matrix_inspect$190.$$arity=3),$alias(self,"set_element","[]="),$alias(self,"set_component","[]="),self.$private("[]=","set_element","set_component"),Opal.def(self,"$row_count",$Matrix_inspect$190=function(){return this.rows.$size()},$Matrix_inspect$190.$$arity=0),self.$alias_method("row_size","row_count"),self.$attr_reader("column_count"),self.$alias_method("column_size","column_count"),Opal.def(self,"$row",$Matrix_row$35=function(i){try{var $$36,$$37,$iter=$Matrix_row$35.$$p,block=$iter||nil;return $iter&&($Matrix_row$35.$$p=null),$iter&&($Matrix_row$35.$$p=null),block!==nil?($send($send(this.rows,"fetch",[i],(($$36=function(){var self=null==$$36.$$s?this:$$36.$$s;Opal.ret(self)}).$$s=this,$$36.$$arity=0,$$36)),"each",[],block.$to_proc()),this):$$($nesting,"Vector").$elements($send(this.rows,"fetch",[i],(($$37=function(){null==$$37.$$s||$$37.$$s;Opal.ret(nil)}).$$s=this,$$37.$$arity=0,$$37)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_row$35.$$arity=1),Opal.def(self,"$column",$Matrix_column$38=function(j){var $$39,$$40,col,$iter=$Matrix_column$38.$$p,$yield=$iter||nil,self=this,$ret_or_6=nil,$ret_or_7=nil;return $iter&&($Matrix_column$38.$$p=null),$yield!==nil?($truthy($truthy($ret_or_6=$rb_ge(j,self.$column_count()))?$ret_or_6:$rb_lt(j,self.$column_count()["$-@"]()))||$send(self.$row_count(),"times",[],(($$39=function(i){var self=null==$$39.$$s?this:$$39.$$s;return null==self.rows&&(self.rows=nil),null==i&&(i=nil),Opal.yield1($yield,self.rows["$[]"](i)["$[]"](j))}).$$s=self,$$39.$$arity=1,$$39)),self):$truthy($truthy($ret_or_7=$rb_ge(j,self.$column_count()))?$ret_or_7:$rb_lt(j,self.$column_count()["$-@"]()))?nil:(col=$send($$($nesting,"Array"),"new",[self.$row_count()],(($$40=function(i){var self=null==$$40.$$s?this:$$40.$$s;return null==self.rows&&(self.rows=nil),null==i&&(i=nil),self.rows["$[]"](i)["$[]"](j)}).$$s=self,$$40.$$arity=1,$$40)),$$($nesting,"Vector").$elements(col,!1))},$Matrix_column$38.$$arity=1),Opal.def(self,"$collect",$Matrix_collect$41=function(){var $$42,rows,$iter=$Matrix_collect$41.$$p,block=$iter||nil;return $iter&&($Matrix_collect$41.$$p=null),$iter&&($Matrix_collect$41.$$p=null),block===nil?this.$to_enum("collect"):(rows=$send(this.rows,"collect",[],(($$42=function(row){null==$$42.$$s||$$42.$$s;return null==row&&(row=nil),$send(row,"collect",[],block.$to_proc())}).$$s=this,$$42.$$arity=1,$$42)),this.$new_matrix(rows,this.$column_count()))},$Matrix_collect$41.$$arity=0),$alias(self,"map","collect"),Opal.def(self,"$each",$Matrix_each$43=function(which){try{var $$44,$$45,$$47,$$49,$$51,$$53,$$55,$case,$iter=$Matrix_each$43.$$p,$yield=$iter||nil,last=nil,block=nil;return($iter&&($Matrix_each$43.$$p=null),null==which&&(which="all"),$yield===nil)?this.$to_enum("each",which):(last=$rb_minus(this.$column_count(),1),"all"["$==="]($case=which)?(block=$$($nesting,"Proc").$new(),$send(this.rows,"each",[],(($$44=function(row){null==$$44.$$s||$$44.$$s;return null==row&&(row=nil),$send(row,"each",[],block.$to_proc())}).$$s=this,$$44.$$arity=1,$$44))):"diagonal"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$45=function(row,row_index){var $$46,self=null==$$45.$$s?this:$$45.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),Opal.yield1($yield,$send(row,"fetch",[row_index],(($$46=function(){var self=null==$$46.$$s?this:$$46.$$s;Opal.ret(self)}).$$s=self,$$46.$$arity=0,$$46)))}).$$s=this,$$45.$$arity=2,$$45)):"off_diagonal"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$47=function(row,row_index){var $$48,self=null==$$47.$$s?this:$$47.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(self.$column_count(),"times",[],(($$48=function(col_index){null==$$48.$$s||$$48.$$s;return null==col_index&&(col_index=nil),row_index["$=="](col_index)?nil:Opal.yield1($yield,row["$[]"](col_index))}).$$s=self,$$48.$$arity=1,$$48))}).$$s=this,$$47.$$arity=2,$$47)):"lower"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$49=function(row,row_index){var $$50,self=null==$$49.$$s?this:$$49.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(0,"upto",[[row_index,last].$min()],(($$50=function(col_index){null==$$50.$$s||$$50.$$s;return null==col_index&&(col_index=nil),Opal.yield1($yield,row["$[]"](col_index))}).$$s=self,$$50.$$arity=1,$$50))}).$$s=this,$$49.$$arity=2,$$49)):"strict_lower"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$51=function(row,row_index){var $$52,self=null==$$51.$$s?this:$$51.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send([row_index,self.$column_count()].$min(),"times",[],(($$52=function(col_index){null==$$52.$$s||$$52.$$s;return null==col_index&&(col_index=nil),Opal.yield1($yield,row["$[]"](col_index))}).$$s=self,$$52.$$arity=1,$$52))}).$$s=this,$$51.$$arity=2,$$51)):"strict_upper"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$53=function(row,row_index){var $$54,self=null==$$53.$$s?this:$$53.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send($rb_plus(row_index,1),"upto",[last],(($$54=function(col_index){null==$$54.$$s||$$54.$$s;return null==col_index&&(col_index=nil),Opal.yield1($yield,row["$[]"](col_index))}).$$s=self,$$54.$$arity=1,$$54))}).$$s=this,$$53.$$arity=2,$$53)):"upper"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$55=function(row,row_index){var $$56,self=null==$$55.$$s?this:$$55.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(row_index,"upto",[last],(($$56=function(col_index){null==$$56.$$s||$$56.$$s;return null==col_index&&(col_index=nil),Opal.yield1($yield,row["$[]"](col_index))}).$$s=self,$$56.$$arity=1,$$56))}).$$s=this,$$55.$$arity=2,$$55)):this.$raise($$($nesting,"ArgumentError"),"expected "+which.$inspect()+" to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper"),this)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_each$43.$$arity=-1),Opal.def(self,"$each_with_index",$Matrix_each_with_index$57=function(which){try{var $$58,$$60,$$62,$$64,$$66,$$68,$$70,$case,$iter=$Matrix_each_with_index$57.$$p,$yield=$iter||nil,last=nil;return($iter&&($Matrix_each_with_index$57.$$p=null),null==which&&(which="all"),$yield===nil)?this.$to_enum("each_with_index",which):(last=$rb_minus(this.$column_count(),1),"all"["$==="]($case=which)?$send(this.rows,"each_with_index",[],(($$58=function(row,row_index){var $$59,self=null==$$58.$$s?this:$$58.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(row,"each_with_index",[],(($$59=function(e,col_index){null==$$59.$$s||$$59.$$s;return null==e&&(e=nil),null==col_index&&(col_index=nil),Opal.yieldX($yield,[e,row_index,col_index])}).$$s=self,$$59.$$arity=2,$$59))}).$$s=this,$$58.$$arity=2,$$58)):"diagonal"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$60=function(row,row_index){var $$61,self=null==$$60.$$s?this:$$60.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),Opal.yieldX($yield,[$send(row,"fetch",[row_index],(($$61=function(){var self=null==$$61.$$s?this:$$61.$$s;Opal.ret(self)}).$$s=self,$$61.$$arity=0,$$61)),row_index,row_index])}).$$s=this,$$60.$$arity=2,$$60)):"off_diagonal"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$62=function(row,row_index){var $$63,self=null==$$62.$$s?this:$$62.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(self.$column_count(),"times",[],(($$63=function(col_index){null==$$63.$$s||$$63.$$s;return null==col_index&&(col_index=nil),row_index["$=="](col_index)?nil:Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}).$$s=self,$$63.$$arity=1,$$63))}).$$s=this,$$62.$$arity=2,$$62)):"lower"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$64=function(row,row_index){var $$65,self=null==$$64.$$s?this:$$64.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(0,"upto",[[row_index,last].$min()],(($$65=function(col_index){null==$$65.$$s||$$65.$$s;return null==col_index&&(col_index=nil),Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}).$$s=self,$$65.$$arity=1,$$65))}).$$s=this,$$64.$$arity=2,$$64)):"strict_lower"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$66=function(row,row_index){var $$67,self=null==$$66.$$s?this:$$66.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send([row_index,self.$column_count()].$min(),"times",[],(($$67=function(col_index){null==$$67.$$s||$$67.$$s;return null==col_index&&(col_index=nil),Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}).$$s=self,$$67.$$arity=1,$$67))}).$$s=this,$$66.$$arity=2,$$66)):"strict_upper"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$68=function(row,row_index){var $$69,self=null==$$68.$$s?this:$$68.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send($rb_plus(row_index,1),"upto",[last],(($$69=function(col_index){null==$$69.$$s||$$69.$$s;return null==col_index&&(col_index=nil),Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}).$$s=self,$$69.$$arity=1,$$69))}).$$s=this,$$68.$$arity=2,$$68)):"upper"["$==="]($case)?$send(this.rows,"each_with_index",[],(($$70=function(row,row_index){var $$71,self=null==$$70.$$s?this:$$70.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(row_index,"upto",[last],(($$71=function(col_index){null==$$71.$$s||$$71.$$s;return null==col_index&&(col_index=nil),Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}).$$s=self,$$71.$$arity=1,$$71))}).$$s=this,$$70.$$arity=2,$$70)):this.$raise($$($nesting,"ArgumentError"),"expected "+which.$inspect()+" to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper"),this)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_each_with_index$57.$$arity=-1),Opal.const_set($nesting[0],"SELECTORS",$hash2(["all","diagonal","off_diagonal","lower","strict_lower","strict_upper","upper"],{all:!0,diagonal:!0,off_diagonal:!0,lower:!0,strict_lower:!0,strict_upper:!0,upper:!0}).$freeze()),Opal.def(self,"$index",$Matrix_index$72=function($a){try{var $$73,$$74,value,args=$Matrix_index$72.$$p,$yield=args||nil,which=nil,$ret_or_8=nil,$ret_or_9=nil;return(args&&($Matrix_index$72.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$truthy($rb_gt((args=args).$size(),2))&&this.$raise($$($nesting,"ArgumentError"),"wrong number of arguments("+args.$size()+" for 0-2)"),which=$truthy($truthy($ret_or_8=args.$size()["$=="](2))?$ret_or_8:$$($nesting,"SELECTORS")["$include?"](args.$last()))?args.$pop():"all",$truthy($truthy($ret_or_9=$yield!==nil)?$ret_or_9:args.$size()["$=="](1)))?(args.$size()["$=="](1)?(value=args.$first(),$send(this,"each_with_index",[which],(($$73=function(e,row_index,col_index){null==$$73.$$s||$$73.$$s;if(null==e&&(e=nil),null==row_index&&(row_index=nil),null==col_index&&(col_index=nil),!e["$=="](value))return nil;Opal.ret([row_index,col_index])}).$$s=this,$$73.$$arity=3,$$73))):$send(this,"each_with_index",[which],(($$74=function(e,row_index,col_index){null==$$74.$$s||$$74.$$s;if(null==e&&(e=nil),null==row_index&&(row_index=nil),null==col_index&&(col_index=nil),!$truthy(Opal.yield1($yield,e)))return nil;Opal.ret([row_index,col_index])}).$$s=this,$$74.$$arity=3,$$74)),nil):$send(this,"to_enum",["find_index",which].concat(Opal.to_a(args)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_index$72.$$arity=-1),self.$alias_method("find_index","index"),Opal.def(self,"$minor",$Matrix_inspect$190=function($a){var $b,$c,$$76,rows,self=this,row_range=nil,col_range=nil,from_row=nil,to_row=nil,size_row=nil,from_col=nil,to_col=nil,size_col=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil,param=Opal.slice.call(arguments,0,arguments.length),$case=param.$size();if(2["$==="]($case))$c=param,row_range=null==($b=Opal.to_ary($c))[0]?nil:$b[0],col_range=null==$b[1]?nil:$b[1],from_row=row_range.$first(),$truthy($rb_lt(from_row,0))&&(from_row=$rb_plus(from_row,self.$row_count())),to_row=row_range.$end(),$truthy($rb_lt(to_row,0))&&(to_row=$rb_plus(to_row,self.$row_count())),$truthy(row_range["$exclude_end?"]())||(to_row=$rb_plus(to_row,1)),size_row=$rb_minus(to_row,from_row),from_col=col_range.$first(),$truthy($rb_lt(from_col,0))&&(from_col=$rb_plus(from_col,self.$column_count())),to_col=col_range.$end(),$truthy($rb_lt(to_col,0))&&(to_col=$rb_plus(to_col,self.$column_count())),$truthy(col_range["$exclude_end?"]())||(to_col=$rb_plus(to_col,1)),size_col=$rb_minus(to_col,from_col);else if(4["$==="]($case)){if($c=param,$b=Opal.to_ary($c),from_row=null==$b[0]?nil:$b[0],size_row=null==$b[1]?nil:$b[1],from_col=null==$b[2]?nil:$b[2],size_col=null==$b[3]?nil:$b[3],$truthy($truthy($ret_or_10=$rb_lt(size_row,0))?$ret_or_10:$rb_lt(size_col,0)))return nil;$truthy($rb_lt(from_row,0))&&(from_row=$rb_plus(from_row,self.$row_count())),$truthy($rb_lt(from_col,0))&&(from_col=$rb_plus(from_col,self.$column_count()))}else self.$raise($$($nesting,"ArgumentError"),param.$inspect());return $truthy($truthy($ret_or_11=$truthy($ret_or_12=$truthy($ret_or_13=$rb_gt(from_row,self.$row_count()))?$ret_or_13:$rb_gt(from_col,self.$column_count()))?$ret_or_12:$rb_lt(from_row,0))?$ret_or_11:$rb_lt(from_col,0))?nil:(rows=$send(self.rows["$[]"](from_row,size_row),"collect",[],(($$76=function(row){null==$$76.$$s||$$76.$$s;return null==row&&(row=nil),row["$[]"](from_col,size_col)}).$$s=self,$$76.$$arity=1,$$76)),self.$new_matrix(rows,[$rb_minus(self.$column_count(),from_col),size_col].$min()))},$Matrix_inspect$190.$$arity=-1),Opal.def(self,"$first_minor",$Matrix_inspect$190=function(row,column){var $$78,self=this,$ret_or_14=nil,$ret_or_15=nil,arrays=nil;return $truthy(self["$empty?"]())&&self.$raise($$($nesting,"RuntimeError"),"first_minor of empty matrix is not defined"),$truthy($truthy($ret_or_14=$rb_le(0,row))?$rb_lt(row,self.$row_count()):$ret_or_14)||self.$raise($$($nesting,"ArgumentError"),"invalid row ("+row.$inspect()+" for 0.."+$rb_minus(self.$row_count(),1)+")"),$truthy($truthy($ret_or_15=$rb_le(0,column))?$rb_lt(column,self.$column_count()):$ret_or_15)||self.$raise($$($nesting,"ArgumentError"),"invalid column ("+column.$inspect()+" for 0.."+$rb_minus(self.$column_count(),1)+")"),(arrays=self.$to_a()).$delete_at(row),$send(arrays,"each",[],(($$78=function(array){null==$$78.$$s||$$78.$$s;return null==array&&(array=nil),array.$delete_at(column)}).$$s=self,$$78.$$arity=1,$$78)),self.$new_matrix(arrays,$rb_minus(self.$column_count(),1))},$Matrix_inspect$190.$$arity=2),Opal.def(self,"$cofactor",$Matrix_inspect$190=function(row,column){return $truthy(this["$empty?"]())&&this.$raise($$($nesting,"RuntimeError"),"cofactor of empty matrix is not defined"),$truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$rb_times(this.$first_minor(row,column).$determinant(),(-1)["$**"]($rb_plus(row,column)))},$Matrix_inspect$190.$$arity=2),Opal.def(self,"$adjugate",$Matrix_inspect$190=function(){var $$81;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send($$($nesting,"Matrix"),"build",[this.$row_count(),this.$column_count()],(($$81=function(row,column){var self=null==$$81.$$s?this:$$81.$$s;return null==row&&(row=nil),null==column&&(column=nil),self.$cofactor(column,row)}).$$s=this,$$81.$$arity=2,$$81))},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$laplace_expansion",$Matrix_inspect$190=function(column){var row,$$83,self=this,num=nil,$ret_or_16=nil,$ret_or_17=nil,$ret_or_18=nil,$ret_or_19=nil;if(null==column)column=$hash2([],{});else if(!column.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(row=column.$$smap.row)&&(row=nil),null==(column=column.$$smap.column)&&(column=nil),num=$truthy($ret_or_16=row)?$ret_or_16:column,$truthy($truthy($ret_or_17=num["$!"]())?$ret_or_17:$truthy($ret_or_18=row)?column:$ret_or_18)&&self.$raise($$($nesting,"ArgumentError"),"exactly one the row or column arguments must be specified"),$truthy(self["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$truthy(self["$empty?"]())&&self.$raise($$($nesting,"RuntimeError"),"laplace_expansion of empty matrix is not defined"),$truthy($truthy($ret_or_19=$rb_le(0,num))?$rb_lt(num,self.$row_count()):$ret_or_19)||self.$raise($$($nesting,"ArgumentError"),"invalid num ("+num.$inspect()+" for 0.."+$rb_minus(self.$row_count(),1)+")"),$send(self.$send($truthy(row)?"row":"column",num).$map(),"with_index",[],(($$83=function(e,k){var self=null==$$83.$$s?this:$$83.$$s;return null==e&&(e=nil),null==k&&(k=nil),$rb_times(e,$send(self,"cofactor",Opal.to_a($truthy(row)?[num,k]:[k,num])))}).$$s=self,$$83.$$arity=2,$$83)).$inject("+")},$Matrix_inspect$190.$$arity=-1),self.$alias_method("cofactor_expansion","laplace_expansion"),Opal.def(self,"$diagonal?",$Matrix_inspect$190=function(){return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send(this.$each("off_diagonal"),"all?",[],"zero?".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$empty?",$Matrix_inspect$190=function(){var $ret_or_20;return $truthy($ret_or_20=this.$column_count()["$=="](0))?$ret_or_20:this.$row_count()["$=="](0)},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$hermitian?",$Matrix_inspect$190=function(){var $$87;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send(this.$each_with_index("upper"),"all?",[],(($$87=function(e,row,col){var self=null==$$87.$$s?this:$$87.$$s;return null==e&&(e=nil),null==row&&(row=nil),null==col&&(col=nil),e["$=="](self.$rows()["$[]"](col)["$[]"](row).$conj())}).$$s=this,$$87.$$arity=3,$$87))},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$lower_triangular?",$Matrix_inspect$190=function(){return $send(this.$each("strict_upper"),"all?",[],"zero?".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$normal?",$Matrix_inspect$190=function(){try{var $$90;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send(this.$rows(),"each_with_index",[],(($$90=function(row_i,i){var $$91,self=null==$$90.$$s?this:$$90.$$s;return null==row_i&&(row_i=nil),null==i&&(i=nil),$send(self.$rows(),"each_with_index",[],(($$91=function(row_j,j){var $$92,self=null==$$91.$$s?this:$$91.$$s,s=nil;if(null==row_j&&(row_j=nil),null==j&&(j=nil),s=0,$send(self.$rows(),"each_with_index",[],(($$92=function(row_k,k){null==$$92.$$s||$$92.$$s;return null==row_k&&(row_k=nil),null==k&&(k=nil),s=$rb_plus(s,$rb_minus($rb_times(row_i["$[]"](k),row_j["$[]"](k).$conj()),$rb_times(row_k["$[]"](i).$conj(),row_k["$[]"](j))))}).$$s=self,$$92.$$arity=2,$$92)),s["$=="](0))return nil;Opal.ret(!1)}).$$s=self,$$91.$$arity=2,$$91))}).$$s=this,$$90.$$arity=2,$$90)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$orthogonal?",$Matrix_inspect$190=function(){try{var $$94;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send(this.$rows(),"each_with_index",[],(($$94=function(row,i){var $$95,self=null==$$94.$$s?this:$$94.$$s;return null==row&&(row=nil),null==i&&(i=nil),$send(self.$column_count(),"times",[],(($$95=function(j){var $$96,self=null==$$95.$$s?this:$$95.$$s,s=nil;if(null==j&&(j=nil),s=0,$send(self.$row_count(),"times",[],(($$96=function(k){var self=null==$$96.$$s?this:$$96.$$s;return null==k&&(k=nil),s=$rb_plus(s,$rb_times(row["$[]"](k),self.$rows()["$[]"](k)["$[]"](j)))}).$$s=self,$$96.$$arity=1,$$96)),s["$=="](i["$=="](j)?1:0))return nil;Opal.ret(!1)}).$$s=self,$$95.$$arity=1,$$95))}).$$s=this,$$94.$$arity=2,$$94)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$permutation?",$Matrix_inspect$190=function(){try{var $$98,cols=nil;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),cols=$$($nesting,"Array").$new(this.$column_count()),$send(this.$rows(),"each_with_index",[],(($$98=function(row,i){var $$99,self=null==$$98.$$s?this:$$98.$$s,found=nil;if(null==row&&(row=nil),null==i&&(i=nil),found=!1,$send(row,"each_with_index",[],(($$99=function(e,j){null==$$99.$$s||$$99.$$s;var $writer,$ret_or_21=nil;return null==e&&(e=nil),null==j&&(j=nil),e["$=="](1)?($truthy($truthy($ret_or_21=found)?$ret_or_21:cols["$[]"](j))&&Opal.ret(!1),$writer=[j,!0],$send(cols,"[]=",Opal.to_a($writer)),found=$writer[$rb_minus($writer.length,1)]):$truthy(e["$!="](0))?void Opal.ret(!1):nil}).$$s=self,$$99.$$arity=2,$$99)),$truthy(found))return nil;Opal.ret(!1)}).$$s=this,$$98.$$arity=2,$$98)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$real?",$Matrix_inspect$190=function(){return $send(this,"all?",[],"real?".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$regular?",$Matrix_inspect$190=function(){return this["$singular?"]()["$!"]()},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$singular?",$Matrix_inspect$190=function(){return this.$determinant()["$=="](0)},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$square?",$Matrix_inspect$190=function(){return this.$column_count()["$=="](this.$row_count())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$symmetric?",$Matrix_inspect$190=function(){try{var $$105;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send(this,"each_with_index",["strict_upper"],(($$105=function(e,row,col){var self=null==$$105.$$s?this:$$105.$$s;if(null==e&&(e=nil),null==row&&(row=nil),null==col&&(col=nil),!$truthy(e["$!="](self.$rows()["$[]"](col)["$[]"](row))))return nil;Opal.ret(!1)}).$$s=this,$$105.$$arity=3,$$105)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$antisymmetric?",$Matrix_inspect$190=function(){try{var $$107;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send(this,"each_with_index",["upper"],(($$107=function(e,row,col){var self=null==$$107.$$s?this:$$107.$$s;if(null==e&&(e=nil),null==row&&(row=nil),null==col&&(col=nil),e["$=="](self.$rows()["$[]"](col)["$[]"](row)["$-@"]()))return nil;Opal.ret(!1)}).$$s=this,$$107.$$arity=3,$$107)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$unitary?",$Matrix_inspect$190=function(){try{var $$109;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send(this.$rows(),"each_with_index",[],(($$109=function(row,i){var $$110,self=null==$$109.$$s?this:$$109.$$s;return null==row&&(row=nil),null==i&&(i=nil),$send(self.$column_count(),"times",[],(($$110=function(j){var $$111,self=null==$$110.$$s?this:$$110.$$s,s=nil;if(null==j&&(j=nil),s=0,$send(self.$row_count(),"times",[],(($$111=function(k){var self=null==$$111.$$s?this:$$111.$$s;return null==k&&(k=nil),s=$rb_plus(s,$rb_times(row["$[]"](k).$conj(),self.$rows()["$[]"](k)["$[]"](j)))}).$$s=self,$$111.$$arity=1,$$111)),s["$=="](i["$=="](j)?1:0))return nil;Opal.ret(!1)}).$$s=self,$$110.$$arity=1,$$110))}).$$s=this,$$109.$$arity=2,$$109)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$upper_triangular?",$Matrix_inspect$190=function(){return $send(this.$each("strict_lower"),"all?",[],"zero?".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$zero?",$Matrix_inspect$190=function(){return $send(this,"all?",[],"zero?".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$==",$Matrix_inspect$190=function(other){var self=this,$ret_or_22=nil;return!!$truthy($truthy($ret_or_22=$$($nesting,"Matrix")["$==="](other))?self.$column_count()["$=="](other.$column_count()):$ret_or_22)&&self.$rows()["$=="](other.$rows())},$Matrix_inspect$190.$$arity=1),Opal.def(self,"$eql?",$Matrix_inspect$190=function(other){var self=this,$ret_or_23=nil;return!!$truthy($truthy($ret_or_23=$$($nesting,"Matrix")["$==="](other))?self.$column_count()["$=="](other.$column_count()):$ret_or_23)&&self.$rows()["$eql?"](other.$rows())},$Matrix_inspect$190.$$arity=1),Opal.def(self,"$clone",$Matrix_inspect$190=function(){return this.$new_matrix($send(this.rows,"map",[],"dup".$to_proc()),this.$column_count())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$hash",$Matrix_inspect$190=function(){return this.rows.$hash()},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$*",$Matrix_inspect$190=function(m){var $$119,$$121,$case,self=this,rows=nil;return $case=m,$$($nesting,"Numeric")["$==="]($case)?(rows=$send(self.rows,"collect",[],(($$119=function(row){var $$120,self=null==$$119.$$s?this:$$119.$$s;return null==row&&(row=nil),$send(row,"collect",[],(($$120=function(e){null==$$120.$$s||$$120.$$s;return null==e&&(e=nil),$rb_times(e,m)}).$$s=self,$$120.$$arity=1,$$120))}).$$s=self,$$119.$$arity=1,$$119)),self.$new_matrix(rows,self.$column_count())):$$($nesting,"Vector")["$==="]($case)?(m=self.$class().$column_vector(m),$rb_times(self,m).$column(0)):$$($nesting,"Matrix")["$==="]($case)?($truthy(self.$column_count()["$!="](m.$row_count()))&&$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),rows=$send($$($nesting,"Array"),"new",[self.$row_count()],(($$121=function(i){var $$122,self=null==$$121.$$s?this:$$121.$$s;return null==i&&(i=nil),$send($$($nesting,"Array"),"new",[m.$column_count()],(($$122=function(j){var $$123,self=null==$$122.$$s?this:$$122.$$s;return null==j&&(j=nil),$send(Opal.Range.$new(0,self.$column_count(),!0),"inject",[0],(($$123=function(vij,k){var self=null==$$123.$$s?this:$$123.$$s;return null==vij&&(vij=nil),null==k&&(k=nil),$rb_plus(vij,$rb_times(self["$[]"](i,k),m["$[]"](k,j)))}).$$s=self,$$123.$$arity=2,$$123))}).$$s=self,$$122.$$arity=1,$$122))}).$$s=self,$$121.$$arity=1,$$121)),self.$new_matrix(rows,m.$column_count())):self.$apply_through_coercion(m,"*")},$Matrix_inspect$190.$$arity=1),Opal.def(self,"$+",$Matrix_inspect$190=function(m){var $$125,rows,self=this,$ret_or_24=nil,$case=m;if($$($nesting,"Numeric")["$==="]($case))$$($nesting,"Matrix").$Raise($$($nesting,"ErrOperationNotDefined"),"+",self.$class(),m.$class());else if($$($nesting,"Vector")["$==="]($case))m=self.$class().$column_vector(m);else if(!$$($nesting,"Matrix")["$==="]($case))return self.$apply_through_coercion(m,"+");return $truthy($truthy($ret_or_24=self.$row_count()["$=="](m.$row_count()))?self.$column_count()["$=="](m.$column_count()):$ret_or_24)||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),rows=$send($$($nesting,"Array"),"new",[self.$row_count()],(($$125=function(i){var $$126,self=null==$$125.$$s?this:$$125.$$s;return null==i&&(i=nil),$send($$($nesting,"Array"),"new",[self.$column_count()],(($$126=function(j){var self=null==$$126.$$s?this:$$126.$$s;return null==j&&(j=nil),$rb_plus(self["$[]"](i,j),m["$[]"](i,j))}).$$s=self,$$126.$$arity=1,$$126))}).$$s=self,$$125.$$arity=1,$$125)),self.$new_matrix(rows,self.$column_count())},$Matrix_inspect$190.$$arity=1),Opal.def(self,"$-",$Matrix_inspect$190=function(m){var $$128,rows,self=this,$ret_or_25=nil,$case=m;if($$($nesting,"Numeric")["$==="]($case))$$($nesting,"Matrix").$Raise($$($nesting,"ErrOperationNotDefined"),"-",self.$class(),m.$class());else if($$($nesting,"Vector")["$==="]($case))m=self.$class().$column_vector(m);else if(!$$($nesting,"Matrix")["$==="]($case))return self.$apply_through_coercion(m,"-");return $truthy($truthy($ret_or_25=self.$row_count()["$=="](m.$row_count()))?self.$column_count()["$=="](m.$column_count()):$ret_or_25)||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),rows=$send($$($nesting,"Array"),"new",[self.$row_count()],(($$128=function(i){var $$129,self=null==$$128.$$s?this:$$128.$$s;return null==i&&(i=nil),$send($$($nesting,"Array"),"new",[self.$column_count()],(($$129=function(j){var self=null==$$129.$$s?this:$$129.$$s;return null==j&&(j=nil),$rb_minus(self["$[]"](i,j),m["$[]"](i,j))}).$$s=self,$$129.$$arity=1,$$129))}).$$s=self,$$128.$$arity=1,$$128)),self.$new_matrix(rows,self.$column_count())},$Matrix_inspect$190.$$arity=1),Opal.def(self,"$/",$Matrix_inspect$190=function(other){var $$131,$case,rows,self=this;return $case=other,$$($nesting,"Numeric")["$==="]($case)?(rows=$send(self.rows,"collect",[],(($$131=function(row){var $$132,self=null==$$131.$$s?this:$$131.$$s;return null==row&&(row=nil),$send(row,"collect",[],(($$132=function(e){null==$$132.$$s||$$132.$$s;return null==e&&(e=nil),$rb_divide(e,other)}).$$s=self,$$132.$$arity=1,$$132))}).$$s=self,$$131.$$arity=1,$$131)),self.$new_matrix(rows,self.$column_count())):$$($nesting,"Matrix")["$==="]($case)?$rb_times(self,other.$inverse()):self.$apply_through_coercion(other,"/")},$Matrix_inspect$190.$$arity=1),Opal.def(self,"$hadamard_product",$Matrix_inspect$190=function(m){var $$134;return $send(this,"combine",[m],(($$134=function(a,b){null==$$134.$$s||$$134.$$s;return null==a&&(a=nil),null==b&&(b=nil),$rb_times(a,b)}).$$s=this,$$134.$$arity=2,$$134))},$Matrix_inspect$190.$$arity=1),self.$alias_method("entrywise_product","hadamard_product"),Opal.def(self,"$inverse",$Matrix_inspect$190=function(){return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),this.$class().$I(this.$row_count()).$send("inverse_from",this)},$Matrix_inspect$190.$$arity=0),$alias(self,"inv","inverse"),Opal.def(self,"$inverse_from",$Matrix_inspect$190=function(src){var $$137,a=nil,last=$rb_minus(this.$row_count(),1),a=src.$to_a();return $send(0,"upto",[last],(($$137=function(k){var $$138,$a,$$139,$$142,$$143,self=null==$$137.$$s?this:$$137.$$s,i=nil,akk=nil;return null==self.rows&&(self.rows=nil),null==k&&(k=nil),i=k,akk=a["$[]"](k)["$[]"](k).$abs(),$send($rb_plus(k,1),"upto",[last],(($$138=function(j){var v;null==$$138.$$s||$$138.$$s;return null==j&&(j=nil),v=a["$[]"](j)["$[]"](k).$abs(),$truthy($rb_gt(v,akk))?(i=j,akk=v):nil}).$$s=self,$$138.$$arity=1,$$138)),akk["$=="](0)&&$$($nesting,"Matrix").$Raise($$($nesting,"ErrNotRegular")),$truthy(i["$!="](k))&&($a=[a["$[]"](k),a["$[]"](i)],a["$[]="](i,$a[0]),a["$[]="](k,$a[1]),$a=[self.rows["$[]"](k),self.rows["$[]"](i)],self.rows["$[]="](i,$a[0]),self.rows["$[]="](k,$a[1])),akk=a["$[]"](k)["$[]"](k),$send(0,"upto",[last],(($$139=function(ii){var $$140,$$141,q,self=null==$$139.$$s?this:$$139.$$s,$writer=nil;return null==ii&&(ii=nil),ii["$=="](k)?nil:(q=a["$[]"](ii)["$[]"](k).$quo(akk),$writer=[k,0],$send(a["$[]"](ii),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send($rb_plus(k,1),"upto",[last],(($$140=function(j){null==$$140.$$s||$$140.$$s;var $binary_op_recvr_tmp_1=nil;return null==j&&(j=nil),$binary_op_recvr_tmp_1=a["$[]"](ii),$writer=[j,$rb_minus($binary_op_recvr_tmp_1["$[]"](j),$rb_times(a["$[]"](k)["$[]"](j),q))],$send($binary_op_recvr_tmp_1,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$140.$$arity=1,$$140)),$send(0,"upto",[last],(($$141=function(j){var self=null==$$141.$$s?this:$$141.$$s,$binary_op_recvr_tmp_2=nil;return null==self.rows&&(self.rows=nil),null==j&&(j=nil),$binary_op_recvr_tmp_2=self.rows["$[]"](ii),$writer=[j,$rb_minus($binary_op_recvr_tmp_2["$[]"](j),$rb_times(self.rows["$[]"](k)["$[]"](j),q))],$send($binary_op_recvr_tmp_2,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$141.$$arity=1,$$141)))}).$$s=self,$$139.$$arity=1,$$139)),$send($rb_plus(k,1),"upto",[last],(($$142=function(j){var $writer;null==$$142.$$s||$$142.$$s;return null==j&&(j=nil),$writer=[j,a["$[]"](k)["$[]"](j).$quo(akk)],$send(a["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$142.$$arity=1,$$142)),$send(0,"upto",[last],(($$143=function(j){var $writer,self=null==$$143.$$s?this:$$143.$$s;return null==self.rows&&(self.rows=nil),null==j&&(j=nil),$writer=[j,self.rows["$[]"](k)["$[]"](j).$quo(akk)],$send(self.rows["$[]"](k),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$143.$$arity=1,$$143))}).$$s=this,$$137.$$arity=1,$$137)),this},$Matrix_inspect$190.$$arity=1),self.$private("inverse_from"),Opal.def(self,"$**",$Matrix_inspect$190=function(other){try{var $$145,$a,$$146,$case,v,v_inv,self=this,x=nil,z=nil,d=nil;return function(){if($case=other,$$($nesting,"Integer")["$==="]($case)){if(x=self,$truthy($rb_le(other,0))){if(x=self.$inverse(),other["$=="](0))return self.$class().$identity(self.$column_count());other=other["$-@"]()}return z=nil,$send(self,"loop",[],(($$145=function(){null==$$145.$$s||$$145.$$s;return other["$[]"](0)["$=="](1)&&(z=$truthy(z)?$rb_times(z,x):x),$truthy((other=other["$>>"](1))["$zero?"]())&&Opal.ret(z),x=$rb_times(x,x)}).$$s=self,$$145.$$arity=0,$$145))}return $$($nesting,"Numeric")["$==="]($case)?($a=self.$eigensystem(),$a=Opal.to_ary($a),v=null==$a[0]?nil:$a[0],d=null==$a[1]?nil:$a[1],v_inv=null==$a[2]?nil:$a[2],$rb_times($rb_times(v,$send(self.$class(),"diagonal",Opal.to_a($send(d.$each("diagonal"),"map",[],(($$146=function(e){null==$$146.$$s||$$146.$$s;return null==e&&(e=nil),e["$**"](other)}).$$s=self,$$146.$$arity=1,$$146))))),v_inv)):$$($nesting,"Matrix").$Raise($$($nesting,"ErrOperationNotDefined"),"**",self.$class(),other.$class())}()}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=1),Opal.def(self,"$+@",$Matrix_inspect$190=function(){return this},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$-@",$Matrix_inspect$190=function(){var $$149;return $send(this,"collect",[],(($$149=function(e){null==$$149.$$s||$$149.$$s;return null==e&&(e=nil),e["$-@"]()}).$$s=this,$$149.$$arity=1,$$149))},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$determinant",$Matrix_inspect$190=function(){var $a,$b,self=this,m=nil,$case=nil,m0=nil,m1=nil,m2=nil,m3=nil;return $truthy(self["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),m=self.rows,$case=self.$row_count(),0["$==="]($case)?1:1["$==="]($case)?m["$[]"](0)["$[]"](0)["$+@"]():2["$==="]($case)?$rb_minus($rb_times(m["$[]"](0)["$[]"](0)["$+@"](),m["$[]"](1)["$[]"](1)),$rb_times(m["$[]"](0)["$[]"](1),m["$[]"](1)["$[]"](0))):3["$==="]($case)?($b=m,$a=Opal.to_ary($b),m0=null==$a[0]?nil:$a[0],m1=null==$a[1]?nil:$a[1],m2=null==$a[2]?nil:$a[2],$rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_times($rb_times(m0["$[]"](0)["$+@"](),m1["$[]"](1)),m2["$[]"](2)),$rb_times($rb_times(m0["$[]"](0),m1["$[]"](2)),m2["$[]"](1))),$rb_times($rb_times(m0["$[]"](1),m1["$[]"](0)),m2["$[]"](2))),$rb_times($rb_times(m0["$[]"](1),m1["$[]"](2)),m2["$[]"](0))),$rb_times($rb_times(m0["$[]"](2),m1["$[]"](0)),m2["$[]"](1))),$rb_times($rb_times(m0["$[]"](2),m1["$[]"](1)),m2["$[]"](0)))):4["$==="]($case)?($b=m,$a=Opal.to_ary($b),m0=null==$a[0]?nil:$a[0],m1=null==$a[1]?nil:$a[1],m2=null==$a[2]?nil:$a[2],m3=null==$a[3]?nil:$a[3],$rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_times($rb_times($rb_times(m0["$[]"](0)["$+@"](),m1["$[]"](1)),m2["$[]"](2)),m3["$[]"](3)),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](1)),m2["$[]"](3)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](2)),m2["$[]"](1)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](2)),m2["$[]"](3)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](3)),m2["$[]"](1)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](3)),m2["$[]"](2)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](0)),m2["$[]"](2)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](0)),m2["$[]"](3)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](2)),m2["$[]"](0)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](2)),m2["$[]"](3)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](3)),m2["$[]"](0)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](3)),m2["$[]"](2)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](0)),m2["$[]"](1)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](0)),m2["$[]"](3)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](1)),m2["$[]"](0)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](1)),m2["$[]"](3)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](3)),m2["$[]"](0)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](3)),m2["$[]"](1)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](0)),m2["$[]"](1)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](0)),m2["$[]"](2)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](1)),m2["$[]"](0)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](1)),m2["$[]"](2)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](2)),m2["$[]"](0)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](2)),m2["$[]"](1)),m3["$[]"](0)))):self.$determinant_bareiss()},$Matrix_inspect$190.$$arity=0),self.$alias_method("det","determinant"),Opal.def(self,"$determinant_bareiss",$Matrix_inspect$190=function(){try{var $$152,$$153,size=nil,a=nil,sign=nil,pivot=nil,last=$rb_minus(size=this.$row_count(),1),a=this.$to_a(),no_pivot=$send($$($nesting,"Proc"),"new",[],(($$152=function(){null==$$152.$$s||$$152.$$s;Opal.ret(0)}).$$s=this,$$152.$$arity=0,$$152)),sign=1,pivot=1;return $send(size,"times",[],(($$153=function(k){var $$154,$a,$$155,previous_pivot,switch$,self=null==$$153.$$s?this:$$153.$$s;return null==k&&(k=nil),previous_pivot=pivot,(pivot=a["$[]"](k)["$[]"](k))["$=="](0)&&(switch$=$send(Opal.Range.$new($rb_plus(k,1),size,!0),"find",[no_pivot],(($$154=function(row){null==$$154.$$s||$$154.$$s;return null==row&&(row=nil),a["$[]"](row)["$[]"](k)["$!="](0)}).$$s=self,$$154.$$arity=1,$$154)),$a=[a["$[]"](k),a["$[]"](switch$)],a["$[]="](switch$,$a[0]),a["$[]="](k,$a[1]),pivot=a["$[]"](k)["$[]"](k),sign=sign["$-@"]()),$send($rb_plus(k,1),"upto",[last],(($$155=function(i){var $$156,self=null==$$155.$$s?this:$$155.$$s,ai=nil;return null==i&&(i=nil),ai=a["$[]"](i),$send($rb_plus(k,1),"upto",[last],(($$156=function(j){var $writer;null==$$156.$$s||$$156.$$s;return null==j&&(j=nil),$writer=[j,$rb_divide($rb_minus($rb_times(pivot,ai["$[]"](j)),$rb_times(ai["$[]"](k),a["$[]"](k)["$[]"](j))),previous_pivot)],$send(ai,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$156.$$arity=1,$$156))}).$$s=self,$$155.$$arity=1,$$155))}).$$s=this,$$153.$$arity=1,$$153)),$rb_times(sign,pivot)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Matrix_inspect$190.$$arity=0),self.$private("determinant_bareiss"),Opal.def(self,"$determinant_e",$Matrix_inspect$190=function(){return this.$warn("Matrix#determinant_e is deprecated; use #determinant",$hash2(["uplevel"],{uplevel:1})),this.$determinant()},$Matrix_inspect$190.$$arity=0),$alias(self,"det_e","determinant_e"),Opal.def(self,"$hstack",$Matrix_inspect$190=function($a){var self=this,matrices=Opal.slice.call(arguments,0,arguments.length);return $send(self.$class(),"hstack",[self].concat(Opal.to_a(matrices)))},$Matrix_inspect$190.$$arity=-1),Opal.def(self,"$rank",$Matrix_inspect$190=function(){var $$160,a=nil,pivot_row=nil,previous_pivot=nil,a=this.$to_a(),last_column=$rb_minus(this.$column_count(),1),last_row=$rb_minus(this.$row_count(),1),pivot_row=0,previous_pivot=1;return $send(0,"upto",[last_column],(($$160=function(k){var $$161,$a,$$162,switch_row,pivot,self=null==$$160.$$s?this:$$160.$$s;return null==k&&(k=nil),switch_row=$send(Opal.Range.$new(pivot_row,last_row,!1),"find",[],(($$161=function(row){null==$$161.$$s||$$161.$$s;return null==row&&(row=nil),a["$[]"](row)["$[]"](k)["$!="](0)}).$$s=self,$$161.$$arity=1,$$161)),$truthy(switch_row)?(pivot_row["$=="](switch_row)||($a=[a["$[]"](pivot_row),a["$[]"](switch_row)],a["$[]="](switch_row,$a[0]),a["$[]="](pivot_row,$a[1])),pivot=a["$[]"](pivot_row)["$[]"](k),$send($rb_plus(pivot_row,1),"upto",[last_row],(($$162=function(i){var $$163,self=null==$$162.$$s?this:$$162.$$s,ai=nil;return null==i&&(i=nil),ai=a["$[]"](i),$send($rb_plus(k,1),"upto",[last_column],(($$163=function(j){var $writer;null==$$163.$$s||$$163.$$s;return null==j&&(j=nil),$writer=[j,$rb_divide($rb_minus($rb_times(pivot,ai["$[]"](j)),$rb_times(ai["$[]"](k),a["$[]"](pivot_row)["$[]"](j))),previous_pivot)],$send(ai,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$163.$$arity=1,$$163))}).$$s=self,$$162.$$arity=1,$$162)),pivot_row=$rb_plus(pivot_row,1),previous_pivot=pivot):nil}).$$s=this,$$160.$$arity=1,$$160)),pivot_row},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$rank_e",$Matrix_inspect$190=function(){return this.$warn("Matrix#rank_e is deprecated; use #rank",$hash2(["uplevel"],{uplevel:1})),this.$rank()},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$round",$Matrix_inspect$190=function(ndigits){var $$166;return null==ndigits&&(ndigits=0),$send(this,"map",[],(($$166=function(e){null==$$166.$$s||$$166.$$s;return null==e&&(e=nil),e.$round(ndigits)}).$$s=this,$$166.$$arity=1,$$166))},$Matrix_inspect$190.$$arity=-1),Opal.def(self,"$trace",$Matrix_inspect$190=function(){var $$168;return $truthy(this["$square?"]())||$$($nesting,"Matrix").$Raise($$($nesting,"ErrDimensionMismatch")),$send(Opal.Range.$new(0,this.$column_count(),!0),"inject",[0],(($$168=function(tr,i){var self=null==$$168.$$s?this:$$168.$$s;return null==self.rows&&(self.rows=nil),null==tr&&(tr=nil),null==i&&(i=nil),$rb_plus(tr,self.rows["$[]"](i)["$[]"](i))}).$$s=this,$$168.$$arity=2,$$168))},$Matrix_inspect$190.$$arity=0),$alias(self,"tr","trace"),Opal.def(self,"$transpose",$Matrix_inspect$190=function(){return $truthy(this.$row_count()["$zero?"]())?this.$class().$empty(this.$column_count(),0):this.$new_matrix(this.rows.$transpose(),this.$row_count())},$Matrix_inspect$190.$$arity=0),$alias(self,"t","transpose"),Opal.def(self,"$vstack",$Matrix_inspect$190=function($a){var self=this,matrices=Opal.slice.call(arguments,0,arguments.length);return $send(self.$class(),"vstack",[self].concat(Opal.to_a(matrices)))},$Matrix_inspect$190.$$arity=-1),Opal.def(self,"$eigensystem",$Matrix_inspect$190=function(){return $$($nesting,"EigenvalueDecomposition").$new(this)},$Matrix_inspect$190.$$arity=0),$alias(self,"eigen","eigensystem"),Opal.def(self,"$lup",$Matrix_inspect$190=function(){return $$($nesting,"LUPDecomposition").$new(this)},$Matrix_inspect$190.$$arity=0),$alias(self,"lup_decomposition","lup"),Opal.def(self,"$conjugate",$Matrix_inspect$190=function(){return $send(this,"collect",[],"conjugate".$to_proc())},$Matrix_inspect$190.$$arity=0),$alias(self,"conj","conjugate"),Opal.def(self,"$imaginary",$Matrix_inspect$190=function(){return $send(this,"collect",[],"imaginary".$to_proc())},$Matrix_inspect$190.$$arity=0),$alias(self,"imag","imaginary"),Opal.def(self,"$real",$Matrix_inspect$190=function(){return $send(this,"collect",[],"real".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$rect",$Matrix_inspect$190=function(){return[this.$real(),this.$imag()]},$Matrix_inspect$190.$$arity=0),$alias(self,"rectangular","rect"),Opal.def(self,"$coerce",$Matrix_inspect$190=function(other){var self=this,$case=nil;return $case=other,$$($nesting,"Numeric")["$==="]($case)?[$$($nesting,"Scalar").$new(other),self]:self.$raise($$($nesting,"TypeError"),self.$class()+" can't be coerced into "+other.$class())},$Matrix_inspect$190.$$arity=1),Opal.def(self,"$row_vectors",$Matrix_inspect$190=function(){var $$179;return $send($$($nesting,"Array"),"new",[this.$row_count()],(($$179=function(i){var self=null==$$179.$$s?this:$$179.$$s;return null==i&&(i=nil),self.$row(i)}).$$s=this,$$179.$$arity=1,$$179))},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$column_vectors",$Matrix_inspect$190=function(){var $$181;return $send($$($nesting,"Array"),"new",[this.$column_count()],(($$181=function(i){var self=null==$$181.$$s?this:$$181.$$s;return null==i&&(i=nil),self.$column(i)}).$$s=this,$$181.$$arity=1,$$181))},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$to_matrix",$Matrix_inspect$190=function(){return this},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$to_a",$Matrix_inspect$190=function(){return $send(this.rows,"collect",[],"dup".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$elements_to_f",$Matrix_inspect$190=function(){return this.$warn("Matrix#elements_to_f is deprecated, use map(&:to_f)",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_f".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$elements_to_i",$Matrix_inspect$190=function(){return this.$warn("Matrix#elements_to_i is deprecated, use map(&:to_i)",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_i".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$elements_to_r",$Matrix_inspect$190=function(){return this.$warn("Matrix#elements_to_r is deprecated, use map(&:to_r)",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_r".$to_proc())},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$to_s",$Matrix_inspect$190=function(){var $$188;return $truthy(this["$empty?"]())?this.$class()+".empty("+this.$row_count()+", "+this.$column_count()+")":$rb_plus($rb_plus(this.$class()+"[",$send(this.rows,"collect",[],(($$188=function(row){var $$189,self=null==$$188.$$s?this:$$188.$$s;return null==row&&(row=nil),$rb_plus($rb_plus("[",$send(row,"collect",[],(($$189=function(e){null==$$189.$$s||$$189.$$s;return null==e&&(e=nil),e.$to_s()}).$$s=self,$$189.$$arity=1,$$189)).$join(", ")),"]")}).$$s=this,$$188.$$arity=1,$$188)).$join(", ")),"]")},$Matrix_inspect$190.$$arity=0),Opal.def(self,"$inspect",$Matrix_inspect$190=function(){return $truthy(this["$empty?"]())?this.$class()+".empty("+this.$row_count()+", "+this.$column_count()+")":""+this.$class()+this.rows.$inspect()},$Matrix_inspect$190.$$arity=0),function(self,$ConversionHelper_convert_to_array$191){var $nesting=[self=$module(self,"ConversionHelper")].concat($ConversionHelper_convert_to_array$191);Opal.def(self,"$convert_to_array",$ConversionHelper_convert_to_array$191=function(obj,copy){var $case,self=this,converted=nil,e=nil;return null==copy&&(copy=!1),function(){if($case=obj,$$($nesting,"Array")["$==="]($case))return $truthy(copy)?obj.$dup():obj;if($$($nesting,"Vector")["$==="]($case))return obj.$to_a();try{converted=obj.$to_ary()}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;e=$err;try{self.$raise($$($nesting,"TypeError"),"can't convert "+obj.$class()+" into an Array ("+e.$message()+")")}finally{Opal.pop_exception()}}return $truthy(converted["$is_a?"]($$($nesting,"Array")))||self.$raise($$($nesting,"TypeError"),obj.$class()+"#to_ary should return an Array"),converted}()},$ConversionHelper_convert_to_array$191.$$arity=-2),self.$private("convert_to_array")}($nesting[0],$nesting),self.$extend($$($nesting,"ConversionHelper")),function($CoercionHelper_coerce_to_matrix$195,$CoercionHelper_coerce_to_int$194){var $nesting=[$CoercionHelper_coerce_to_matrix$195=$module($CoercionHelper_coerce_to_matrix$195,"CoercionHelper")].concat($CoercionHelper_coerce_to_int$194);Opal.def($CoercionHelper_coerce_to_matrix$195,"$apply_through_coercion",$CoercionHelper_coerce_to_int$194=function(obj,oper){var coercion=nil,$ret_or_26=nil;try{return coercion=obj.$coerce(this),$truthy($truthy($ret_or_26=coercion["$is_a?"]($$($nesting,"Array")))?coercion.$length()["$=="](2):$ret_or_26)||this.$raise($$($nesting,"TypeError")),coercion["$[]"](0).$public_send(oper,coercion["$[]"](1))}catch($err){if(!Opal.rescue($err,[$$($nesting,"StandardError")]))throw $err;try{return this.$raise($$($nesting,"TypeError"),obj.$inspect()+" can't be coerced into "+this.$class())}finally{Opal.pop_exception()}}},$CoercionHelper_coerce_to_int$194.$$arity=2),$CoercionHelper_coerce_to_matrix$195.$private("apply_through_coercion"),Opal.defs($CoercionHelper_coerce_to_matrix$195,"$coerce_to",$CoercionHelper_coerce_to_int$194=function(obj,cls,meth){var ret=nil,e=nil;if($truthy(obj["$kind_of?"](cls)))return obj;$truthy(obj["$respond_to?"](meth))||this.$raise($$($nesting,"TypeError"),"Expected a "+cls+" but got a "+obj.$class());try{ret=obj.$__send__(meth)}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;e=$err;try{this.$raise($$($nesting,"TypeError"),"Coercion error: "+obj.$inspect()+"."+meth+" => "+cls+" failed:\n("+e.$message()+")")}finally{Opal.pop_exception()}}return $truthy(ret["$kind_of?"](cls))||this.$raise($$($nesting,"TypeError"),"Coercion error: obj."+meth+" did NOT return a "+cls+" (was "+ret.$class()+")"),ret},$CoercionHelper_coerce_to_int$194.$$arity=3),Opal.defs($CoercionHelper_coerce_to_matrix$195,"$coerce_to_int",$CoercionHelper_coerce_to_int$194=function(obj){return this.$coerce_to(obj,$$($nesting,"Integer"),"to_int")},$CoercionHelper_coerce_to_int$194.$$arity=1),Opal.defs($CoercionHelper_coerce_to_matrix$195,"$coerce_to_matrix",$CoercionHelper_coerce_to_matrix$195=function(obj){return this.$coerce_to(obj,$$($nesting,"Matrix"),"to_matrix")},$CoercionHelper_coerce_to_matrix$195.$$arity=1)}($nesting[0],$nesting),self.$include($$($nesting,"CoercionHelper")),function($base,$Scalar_$$$202,$Scalar_$slash$201){var $nesting=[$Scalar_$$$202=$klass($base,$Scalar_$$$202,"Scalar")].concat($Scalar_$slash$201);$Scalar_$$$202.$$prototype.value=nil,$Scalar_$$$202.$include($$($nesting,"ExceptionForMatrix")),$Scalar_$$$202.$include($$($nesting,"CoercionHelper")),Opal.def($Scalar_$$$202,"$initialize",$Scalar_$slash$201=function(value){return this.value=value},$Scalar_$slash$201.$$arity=1),Opal.def($Scalar_$$$202,"$+",$Scalar_$slash$201=function(other){var self=this,$case=nil;return $case=other,$$($nesting,"Numeric")["$==="]($case)?$$($nesting,"Scalar").$new($rb_plus(self.value,other)):$$($nesting,"Vector")["$==="]($case)||$$($nesting,"Matrix")["$==="]($case)?$$($nesting,"Scalar").$Raise($$($nesting,"ErrOperationNotDefined"),"+",self.value.$class(),other.$class()):self.$apply_through_coercion(other,"+")},$Scalar_$slash$201.$$arity=1),Opal.def($Scalar_$$$202,"$-",$Scalar_$slash$201=function(other){var self=this,$case=nil;return $case=other,$$($nesting,"Numeric")["$==="]($case)?$$($nesting,"Scalar").$new($rb_minus(self.value,other)):$$($nesting,"Vector")["$==="]($case)||$$($nesting,"Matrix")["$==="]($case)?$$($nesting,"Scalar").$Raise($$($nesting,"ErrOperationNotDefined"),"-",self.value.$class(),other.$class()):self.$apply_through_coercion(other,"-")},$Scalar_$slash$201.$$arity=1),Opal.def($Scalar_$$$202,"$*",$Scalar_$slash$201=function(other){var $$200,$case,self=this;return $case=other,$$($nesting,"Numeric")["$==="]($case)?$$($nesting,"Scalar").$new($rb_times(self.value,other)):$$($nesting,"Vector")["$==="]($case)||$$($nesting,"Matrix")["$==="]($case)?$send(other,"collect",[],(($$200=function(e){var self=null==$$200.$$s?this:$$200.$$s;return null==self.value&&(self.value=nil),null==e&&(e=nil),$rb_times(self.value,e)}).$$s=self,$$200.$$arity=1,$$200)):self.$apply_through_coercion(other,"*")},$Scalar_$slash$201.$$arity=1),Opal.def($Scalar_$$$202,"$/",$Scalar_$slash$201=function(other){var self=this,$case=nil;return $case=other,$$($nesting,"Numeric")["$==="]($case)?$$($nesting,"Scalar").$new($rb_divide(self.value,other)):$$($nesting,"Vector")["$==="]($case)?$$($nesting,"Scalar").$Raise($$($nesting,"ErrOperationNotDefined"),"/",self.value.$class(),other.$class()):$$($nesting,"Matrix")["$==="]($case)?$rb_times(self,other.$inverse()):self.$apply_through_coercion(other,"/")},$Scalar_$slash$201.$$arity=1),Opal.def($Scalar_$$$202,"$**",$Scalar_$$$202=function(other){var self=this,$case=nil;return $case=other,$$($nesting,"Numeric")["$==="]($case)?$$($nesting,"Scalar").$new(self.value["$**"](other)):$$($nesting,"Vector")["$==="]($case)?$$($nesting,"Scalar").$Raise($$($nesting,"ErrOperationNotDefined"),"**",self.value.$class(),other.$class()):$$($nesting,"Matrix")["$==="]($case)?$$($nesting,"Scalar").$Raise($$($nesting,"ErrOperationNotImplemented"),"**",self.value.$class(),other.$class()):self.$apply_through_coercion(other,"**")},$Scalar_$$$202.$$arity=1)}($nesting[0],$$($nesting,"Numeric"),$nesting)}($nesting[0],$nesting),function($Vector_inspect$256,$Vector_to_s$255){var $Vector_each$213,$Vector_each2$214,$Vector_collect2$216,$Vector_collect$242,$Vector_map2$245,$Vector_inspect$256=$klass($Vector_inspect$256,null,"Vector"),$nesting=[$Vector_inspect$256].concat($Vector_to_s$255);return $Vector_inspect$256.$$prototype.elements=nil,$Vector_inspect$256.$include($$($nesting,"ExceptionForMatrix")),$Vector_inspect$256.$include($$($nesting,"Enumerable")),$Vector_inspect$256.$include($$$($$($nesting,"Matrix"),"CoercionHelper")),$Vector_inspect$256.$extend($$$($$($nesting,"Matrix"),"ConversionHelper")),$Vector_inspect$256.$private_class_method("new"),$Vector_inspect$256.$attr_reader("elements"),$Vector_inspect$256.$protected("elements"),Opal.defs($$($nesting,"Vector"),"$[]",$Vector_to_s$255=function($a){var $post_args=Opal.slice.call(arguments,0,arguments.length);return this.$new(this.$convert_to_array($post_args,!1))},$Vector_to_s$255.$$arity=-1),Opal.defs($$($nesting,"Vector"),"$elements",$Vector_to_s$255=function(array,copy){return null==copy&&(copy=!0),this.$new(this.$convert_to_array(array,copy))},$Vector_to_s$255.$$arity=-2),Opal.defs($$($nesting,"Vector"),"$basis",$Vector_to_s$255=function(index){var size,array,$writer,$ret_or_27=nil;if(null==index)index=$hash2([],{});else if(!index.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call(index.$$smap,"size"))throw Opal.ArgumentError.$new("missing keyword: size");if(size=index.$$smap.size,!Opal.hasOwnProperty.call(index.$$smap,"index"))throw Opal.ArgumentError.$new("missing keyword: index");return index=index.$$smap.index,$truthy($rb_lt(size,1))&&this.$raise($$($nesting,"ArgumentError"),"invalid size ("+size+" for 1..)"),$truthy($truthy($ret_or_27=$rb_le(0,index))?$rb_lt(index,size):$ret_or_27)||this.$raise($$($nesting,"ArgumentError"),"invalid index ("+index+" for 0..."+size+")"),array=$$($nesting,"Array").$new(size,0),$writer=[index,1],$send(array,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$new(this.$convert_to_array(array,!1))},$Vector_to_s$255.$$arity=1),Opal.defs($$($nesting,"Vector"),"$zero",$Vector_to_s$255=function(size){var array;return $truthy($rb_lt(size,0))&&this.$raise($$($nesting,"ArgumentError"),"invalid size ("+size+" for 0..)"),array=$$($nesting,"Array").$new(size,0),this.$new(this.$convert_to_array(array,!1))},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$initialize",$Vector_to_s$255=function(array){return this.elements=array},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$[]",$Vector_to_s$255=function(i){return this.elements["$[]"](i)},$Vector_to_s$255.$$arity=1),$alias($Vector_inspect$256,"element","[]"),$alias($Vector_inspect$256,"component","[]"),Opal.def($Vector_inspect$256,"$[]=",$Vector_to_s$255=function(i,v){var $writer=[i,v];return $send(this.elements,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Vector_to_s$255.$$arity=2),$alias($Vector_inspect$256,"set_element","[]="),$alias($Vector_inspect$256,"set_component","[]="),$Vector_inspect$256.$private("[]=","set_element","set_component"),Opal.def($Vector_inspect$256,"$round",$Vector_to_s$255=function(ndigits){var $$211;return null==ndigits&&(ndigits=0),$send(this,"map",[],(($$211=function(e){null==$$211.$$s||$$211.$$s;return null==e&&(e=nil),e.$round(ndigits)}).$$s=this,$$211.$$arity=1,$$211))},$Vector_to_s$255.$$arity=-1),Opal.def($Vector_inspect$256,"$size",$Vector_to_s$255=function(){return this.elements.$size()},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$each",$Vector_each$213=function(){var $iter=$Vector_each$213.$$p,block=$iter||nil;return $iter&&($Vector_each$213.$$p=null),$iter&&($Vector_each$213.$$p=null),block===nil?this.$to_enum("each"):($send(this.elements,"each",[],block.$to_proc()),this)},$Vector_each$213.$$arity=0),Opal.def($Vector_inspect$256,"$each2",$Vector_each2$214=function(v){var $$215,$iter=$Vector_each2$214.$$p,$yield=$iter||nil;return $iter&&($Vector_each2$214.$$p=null),$truthy(v["$kind_of?"]($$($nesting,"Integer")))&&this.$raise($$($nesting,"TypeError"),"Integer is not like Vector"),$truthy(this.$size()["$!="](v.$size()))&&$$($nesting,"Vector").$Raise($$($nesting,"ErrDimensionMismatch")),$yield===nil?this.$to_enum("each2",v):($send(this.$size(),"times",[],(($$215=function(i){var self=null==$$215.$$s?this:$$215.$$s;return null==self.elements&&(self.elements=nil),null==i&&(i=nil),Opal.yieldX($yield,[self.elements["$[]"](i),v["$[]"](i)])}).$$s=this,$$215.$$arity=1,$$215)),this)},$Vector_each2$214.$$arity=1),Opal.def($Vector_inspect$256,"$collect2",$Vector_collect2$216=function(v){var $$217,$iter=$Vector_collect2$216.$$p,$yield=$iter||nil;return $iter&&($Vector_collect2$216.$$p=null),$truthy(v["$kind_of?"]($$($nesting,"Integer")))&&this.$raise($$($nesting,"TypeError"),"Integer is not like Vector"),$truthy(this.$size()["$!="](v.$size()))&&$$($nesting,"Vector").$Raise($$($nesting,"ErrDimensionMismatch")),$yield===nil?this.$to_enum("collect2",v):$send($$($nesting,"Array"),"new",[this.$size()],(($$217=function(i){var self=null==$$217.$$s?this:$$217.$$s;return null==self.elements&&(self.elements=nil),null==i&&(i=nil),Opal.yieldX($yield,[self.elements["$[]"](i),v["$[]"](i)])}).$$s=this,$$217.$$arity=1,$$217))},$Vector_collect2$216.$$arity=1),Opal.defs($$($nesting,"Vector"),"$independent?",$Vector_to_s$255=function($a){var $$219,vs=Opal.slice.call(arguments,0,arguments.length);return $send(vs,"each",[],(($$219=function(v){var self=null==$$219.$$s?this:$$219.$$s;return null==v&&(v=nil),$truthy(v["$is_a?"]($$($nesting,"Vector")))||self.$raise($$($nesting,"TypeError"),"expected Vector, got "+v.$class()),v.$size()["$=="](vs.$first().$size())?nil:$$($nesting,"Vector").$Raise($$($nesting,"ErrDimensionMismatch"))}).$$s=this,$$219.$$arity=1,$$219)),!$truthy($rb_gt(vs.$count(),vs.$first().$size()))&&$send($$($nesting,"Matrix"),"[]",Opal.to_a(vs)).$rank()["$eql?"](vs.$count())},$Vector_to_s$255.$$arity=-1),Opal.def($Vector_inspect$256,"$independent?",$Vector_to_s$255=function($a){var self=this,vs=Opal.slice.call(arguments,0,arguments.length);return $send(self.$class(),"independent?",[self].concat(Opal.to_a(vs)))},$Vector_to_s$255.$$arity=-1),Opal.def($Vector_inspect$256,"$zero?",$Vector_to_s$255=function(){return $send(this,"all?",[],"zero?".$to_proc())},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$==",$Vector_to_s$255=function(other){return!!$truthy($$($nesting,"Vector")["$==="](other))&&this.elements["$=="](other.$elements())},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$eql?",$Vector_to_s$255=function(other){return!!$truthy($$($nesting,"Vector")["$==="](other))&&this.elements["$eql?"](other.$elements())},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$clone",$Vector_to_s$255=function(){return this.$class().$elements(this.elements)},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$hash",$Vector_to_s$255=function(){return this.elements.$hash()},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$*",$Vector_to_s$255=function(x){var $$227,$case,els,self=this;return $case=x,$$($nesting,"Numeric")["$==="]($case)?(els=$send(self.elements,"collect",[],(($$227=function(e){null==$$227.$$s||$$227.$$s;return null==e&&(e=nil),$rb_times(e,x)}).$$s=self,$$227.$$arity=1,$$227)),self.$class().$elements(els,!1)):$$($nesting,"Matrix")["$==="]($case)?$rb_times($$($nesting,"Matrix").$column_vector(self),x):$$($nesting,"Vector")["$==="]($case)?$$($nesting,"Vector").$Raise($$($nesting,"ErrOperationNotDefined"),"*",self.$class(),x.$class()):self.$apply_through_coercion(x,"*")},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$+",$Vector_to_s$255=function(v){var $$229,$case,els,self=this;return $case=v,$$($nesting,"Vector")["$==="]($case)?($truthy(self.$size()["$!="](v.$size()))&&$$($nesting,"Vector").$Raise($$($nesting,"ErrDimensionMismatch")),els=$send(self,"collect2",[v],(($$229=function(v1,v2){null==$$229.$$s||$$229.$$s;return null==v1&&(v1=nil),null==v2&&(v2=nil),$rb_plus(v1,v2)}).$$s=self,$$229.$$arity=2,$$229)),self.$class().$elements(els,!1)):$$($nesting,"Matrix")["$==="]($case)?$rb_plus($$($nesting,"Matrix").$column_vector(self),v):self.$apply_through_coercion(v,"+")},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$-",$Vector_to_s$255=function(v){var $$231,$case,els,self=this;return $case=v,$$($nesting,"Vector")["$==="]($case)?($truthy(self.$size()["$!="](v.$size()))&&$$($nesting,"Vector").$Raise($$($nesting,"ErrDimensionMismatch")),els=$send(self,"collect2",[v],(($$231=function(v1,v2){null==$$231.$$s||$$231.$$s;return null==v1&&(v1=nil),null==v2&&(v2=nil),$rb_minus(v1,v2)}).$$s=self,$$231.$$arity=2,$$231)),self.$class().$elements(els,!1)):$$($nesting,"Matrix")["$==="]($case)?$rb_minus($$($nesting,"Matrix").$column_vector(self),v):self.$apply_through_coercion(v,"-")},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$/",$Vector_to_s$255=function(x){var $$233,$case,els,self=this;return $case=x,$$($nesting,"Numeric")["$==="]($case)?(els=$send(self.elements,"collect",[],(($$233=function(e){null==$$233.$$s||$$233.$$s;return null==e&&(e=nil),$rb_divide(e,x)}).$$s=self,$$233.$$arity=1,$$233)),self.$class().$elements(els,!1)):$$($nesting,"Matrix")["$==="]($case)||$$($nesting,"Vector")["$==="]($case)?$$($nesting,"Vector").$Raise($$($nesting,"ErrOperationNotDefined"),"/",self.$class(),x.$class()):self.$apply_through_coercion(x,"/")},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$+@",$Vector_to_s$255=function(){return this},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$-@",$Vector_to_s$255=function(){var $$236;return $send(this,"collect",[],(($$236=function(e){null==$$236.$$s||$$236.$$s;return null==e&&(e=nil),e["$-@"]()}).$$s=this,$$236.$$arity=1,$$236))},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$inner_product",$Vector_to_s$255=function(v){var $$238,p=nil;return $truthy(this.$size()["$!="](v.$size()))&&$$($nesting,"Vector").$Raise($$($nesting,"ErrDimensionMismatch")),p=0,$send(this,"each2",[v],(($$238=function(v1,v2){null==$$238.$$s||$$238.$$s;return null==v1&&(v1=nil),null==v2&&(v2=nil),p=$rb_plus(p,$rb_times(v1,v2.$conj()))}).$$s=this,$$238.$$arity=2,$$238)),p},$Vector_to_s$255.$$arity=1),$Vector_inspect$256.$alias_method("dot","inner_product"),Opal.def($Vector_inspect$256,"$cross_product",$Vector_to_s$255=function($a){var $$240,$$241,$case,rows,self=this,v=nil,vs=Opal.slice.call(arguments,0,arguments.length);return $truthy($rb_ge(self.$size(),2))||self.$raise($$($nesting,"ErrOperationNotDefined"),"cross product is not defined on vectors of dimension "+self.$size()),vs.$size()["$=="]($rb_minus(self.$size(),2))||self.$raise($$($nesting,"ArgumentError"),"wrong number of arguments ("+vs.$size()+" for "+$rb_minus(self.$size(),2)+")"),$send(vs,"each",[],(($$240=function(v){var self=null==$$240.$$s?this:$$240.$$s;return null==v&&(v=nil),$truthy(v["$is_a?"]($$($nesting,"Vector")))||self.$raise($$($nesting,"TypeError"),"expected Vector, got "+v.$class()),v.$size()["$=="](self.$size())?nil:$$($nesting,"Vector").$Raise($$($nesting,"ErrDimensionMismatch"))}).$$s=self,$$240.$$arity=1,$$240)),$case=self.$size(),2["$==="]($case)?$$($nesting,"Vector")["$[]"](self.elements["$[]"](1)["$-@"](),self.elements["$[]"](0)):3["$==="]($case)?(v=vs["$[]"](0),$$($nesting,"Vector")["$[]"]($rb_minus($rb_times(v["$[]"](2),self.elements["$[]"](1)),$rb_times(v["$[]"](1),self.elements["$[]"](2))),$rb_minus($rb_times(v["$[]"](0),self.elements["$[]"](2)),$rb_times(v["$[]"](2),self.elements["$[]"](0))),$rb_minus($rb_times(v["$[]"](1),self.elements["$[]"](0)),$rb_times(v["$[]"](0),self.elements["$[]"](1))))):(rows=[self].concat(Opal.to_a(vs)).concat([$send($$($nesting,"Array"),"new",[self.$size()],(($$241=function(i){var self=null==$$241.$$s?this:$$241.$$s;return null==i&&(i=nil),$$($nesting,"Vector").$basis($hash2(["size","index"],{size:self.$size(),index:i}))}).$$s=self,$$241.$$arity=1,$$241))]),$$($nesting,"Matrix").$rows(rows).$laplace_expansion($hash2(["row"],{row:$rb_minus(self.$size(),1)})))},$Vector_to_s$255.$$arity=-1),$Vector_inspect$256.$alias_method("cross","cross_product"),Opal.def($Vector_inspect$256,"$collect",$Vector_collect$242=function(){var els,$iter=$Vector_collect$242.$$p,block=$iter||nil;return $iter&&($Vector_collect$242.$$p=null),$iter&&($Vector_collect$242.$$p=null),block===nil?this.$to_enum("collect"):(els=$send(this.elements,"collect",[],block.$to_proc()),this.$class().$elements(els,!1))},$Vector_collect$242.$$arity=0),$alias($Vector_inspect$256,"map","collect"),Opal.def($Vector_inspect$256,"$magnitude",$Vector_to_s$255=function(){var $$244;return $$($nesting,"Math").$sqrt($send(this.elements,"inject",[0],(($$244=function(v,e){null==$$244.$$s||$$244.$$s;return null==v&&(v=nil),null==e&&(e=nil),$rb_plus(v,e.$abs2())}).$$s=this,$$244.$$arity=2,$$244)))},$Vector_to_s$255.$$arity=0),$alias($Vector_inspect$256,"r","magnitude"),$alias($Vector_inspect$256,"norm","magnitude"),Opal.def($Vector_inspect$256,"$map2",$Vector_map2$245=function(v){var els,$iter=$Vector_map2$245.$$p,block=$iter||nil;return $iter&&($Vector_map2$245.$$p=null),$iter&&($Vector_map2$245.$$p=null),block===nil?this.$to_enum("map2",v):(els=$send(this,"collect2",[v],block.$to_proc()),this.$class().$elements(els,!1))},$Vector_map2$245.$$arity=1),function($base,$super,$parent_nesting){[$klass($base,$super,"ZeroVectorError")].concat($parent_nesting)}($nesting[0],$$($nesting,"StandardError"),$nesting),Opal.def($Vector_inspect$256,"$normalize",$Vector_to_s$255=function(){var n=nil;return(n=this.$magnitude())["$=="](0)&&this.$raise($$($nesting,"ZeroVectorError"),"Zero vectors can not be normalized"),$rb_divide(this,n)},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$angle_with",$Vector_to_s$255=function(v){var prod=nil;return $truthy(v["$is_a?"]($$($nesting,"Vector")))||this.$raise($$($nesting,"TypeError"),"Expected a Vector, got a "+v.$class()),$truthy(this.$size()["$!="](v.$size()))&&$$($nesting,"Vector").$Raise($$($nesting,"ErrDimensionMismatch")),(prod=$rb_times(this.$magnitude(),v.$magnitude()))["$=="](0)&&this.$raise($$($nesting,"ZeroVectorError"),"Can't get angle of zero vector"),$$($nesting,"Math").$acos($rb_divide(this.$inner_product(v),prod))},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$covector",$Vector_to_s$255=function(){return $$($nesting,"Matrix").$row_vector(this)},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$to_a",$Vector_to_s$255=function(){return this.elements.$dup()},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$to_matrix",$Vector_to_s$255=function(){return $$($nesting,"Matrix").$column_vector(this)},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$elements_to_f",$Vector_to_s$255=function(){return this.$warn("Vector#elements_to_f is deprecated",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_f".$to_proc())},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$elements_to_i",$Vector_to_s$255=function(){return this.$warn("Vector#elements_to_i is deprecated",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_i".$to_proc())},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$elements_to_r",$Vector_to_s$255=function(){return this.$warn("Vector#elements_to_r is deprecated",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_r".$to_proc())},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$coerce",$Vector_to_s$255=function(other){var self=this,$case=nil;return $case=other,$$($nesting,"Numeric")["$==="]($case)?[$$$($$($nesting,"Matrix"),"Scalar").$new(other),self]:self.$raise($$($nesting,"TypeError"),self.$class()+" can't be coerced into "+other.$class())},$Vector_to_s$255.$$arity=1),Opal.def($Vector_inspect$256,"$to_s",$Vector_to_s$255=function(){return $rb_plus($rb_plus("Vector[",this.elements.$join(", ")),"]")},$Vector_to_s$255.$$arity=0),Opal.def($Vector_inspect$256,"$inspect",$Vector_inspect$256=function(){return $rb_plus("Vector",this.elements.$inspect())},$Vector_inspect$256.$$arity=0),nil&&"inspect"}($nesting[0],$nesting)}; +Opal.modules.e2mmap=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$const_set=Opal.const_set,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$rb_lt=Opal.rb_lt,$defs=Opal.defs,$send=Opal.send,$to_a=Opal.to_a,$def=Opal.def,$alias=Opal.alias,$hash2=Opal.hash2,$rb_minus=Opal.rb_minus,$gvars=Opal.gvars,$regexp=Opal.regexp;return Opal.add_stubs("<,bind,module_eval,Raise,class,extend,def_e2message,def_exception,instance_eval,[]=,-,new,const_defined?,remove_const,const_set,e2mm_message,nil?,caller,=~,[],quote,shift,raise,sprintf,Fail,inspect,each,ancestors"),function($base,$parent_nesting){var self=$module($base,"Exception2MessageMapper"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"E2MM",$$("Exception2MessageMapper")),$defs($$("E2MM"),"$extend_object",(function $$extend_object(cl){var $yield=$$extend_object.$$p||nil;return delete $$extend_object.$$p,$send2(this,$find_super(this,"extend_object",$$extend_object,!1,!0),"extend_object",[cl],$yield),$truthy($rb_lt(cl,$$("E2MM")))?nil:cl.$bind(this)}),1),$def(self,"$bind",(function(cl){return $send(this,"module_eval",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return $def(self,"$Raise",(function($a,$b){var $post_args,err,rest,self=this;return($post_args=Opal.slice.call(arguments)).length>0&&(err=$post_args.shift()),null==err&&(err=nil),rest=$post_args,$send($$("Exception2MessageMapper"),"Raise",[self.$class(),err].concat($to_a(rest)))}),-1),$alias(self,"Fail","Raise"),function(self,$parent_nesting){Opal.udef(self,"$included")}(Opal.get_singleton_class(self)),$defs(self,"$included",(function(mod){return mod.$extend($$("Exception2MessageMapper"))}),1)}),{$$arity:0,$$s:this})}),1),$def(self,"$Raise",(function($a,$b){var $post_args,err,rest,self=this;return($post_args=Opal.slice.call(arguments)).length>0&&(err=$post_args.shift()),null==err&&(err=nil),rest=$post_args,$send($$("E2MM"),"Raise",[self,err].concat($to_a(rest)))}),-1),$alias(self,"Fail","Raise"),$alias(self,"fail","Raise"),$def(self,"$def_e2message",(function(c,m){return $$("E2MM").$def_e2message(this,c,m)}),2),$def(self,"$def_exception",(function(n,m,s){return null==s&&(s=$$("StandardError")),$$("E2MM").$def_exception(this,n,m,s)}),-3),self.MessageMap=$hash2([],{}),$defs($$("E2MM"),"$def_e2message",(function(k,c,m){return $send($$("E2MM"),"instance_eval",[],(function $$2(){var $writer,self=null==$$2.$$s?this:$$2.$$s;return null==self.MessageMap&&(self.MessageMap=nil),$writer=[[k,c],m],$send(self.MessageMap,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:0,$$s:this}),c}),3),$defs($$("E2MM"),"$def_exception",(function(k,n,m,s){var e;return null==s&&(s=$$("StandardError")),e=$$("Class").$new(s),$send($$("E2MM"),"instance_eval",[],(function $$3(){var $writer,self=null==$$3.$$s?this:$$3.$$s;return null==self.MessageMap&&(self.MessageMap=nil),$writer=[[k,e],m],$send(self.MessageMap,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:0,$$s:this}),$truthy(k["$const_defined?"](n,!1))&&$send(k,"module_eval",[],(function $$4(){return(null==$$4.$$s?this:$$4.$$s).$remove_const(n)}),{$$arity:0,$$s:this}),k.$const_set(n,e)}),-4),$defs($$("E2MM"),"$Raise",(function($a,$b,$c){var $post_args,klass,err,rest,self=this,form=nil,b=nil;return null==$gvars["@"]&&($gvars["@"]=nil),($post_args=Opal.slice.call(arguments)).length>0&&(klass=$post_args.shift()),null==klass&&(klass=$$("E2MM")),$post_args.length>0&&(err=$post_args.shift()),null==err&&(err=nil),rest=$post_args,$truthy(form=self.$e2mm_message(klass,err))?(b=$truthy($gvars["@"]["$nil?"]())?self.$caller(1):$gvars["@"],$truthy(b["$[]"](0)["$=~"]($regexp(["^",$$("Regexp").$quote("./e2mmap.rb"),":"])))&&b.$shift(),self.$raise(err,$send(self,"sprintf",[form].concat($to_a(rest))),b)):$$("E2MM").$Fail($$("E2MM"),$$("ErrNotRegisteredException"),err.$inspect())}),-1),function(self,$parent_nesting){$alias(self,"Fail","Raise")}(Opal.get_singleton_class($$("E2MM"))),$defs($$("E2MM"),"$e2mm_message",(function(klass,exp){try{return $send(klass.$ancestors(),"each",[],(function $$5(c){var mes,self=null==$$5.$$s?this:$$5.$$s;if(null==self.MessageMap&&(self.MessageMap=nil),null==c&&(c=nil),!$truthy(mes=self.MessageMap["$[]"]([c,exp])))return nil;Opal.ret(mes)}),{$$arity:1,$$s:this}),nil}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),2),function(self,$parent_nesting){$alias(self,"message","e2mm_message")}(Opal.get_singleton_class(self)),$$("E2MM").$def_exception($$("E2MM"),"ErrNotRegisteredException","not registered exception(%s)")}($nesting[0],$nesting)},Opal.modules["matrix/eigenvalue_decomposition"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def,$alias=Opal.alias,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt,$rb_plus=Opal.rb_plus,$rb_divide=Opal.rb_divide,$rb_times=Opal.rb_times,$neqeq=Opal.neqeq,$rb_lt=Opal.rb_lt,$rb_le=Opal.rb_le,$rb_ge=Opal.rb_ge,$to_ary=Opal.to_ary;return Opal.add_stubs("is_a?,raise,class,row_count,new,symmetric?,to_a,tridiagonalize,diagonalize,reduce_to_hessenberg,hessenberg_to_real_schur,send,transpose,build_eigenvectors,inverse,dup,each_with_index,==,Complex,[],[]=,-,map,diagonal,eigenvalues,v,d,v_inv,alias_method,private,>,+,-@,abs,/,*,times,downto,sqrt,upto,!=,max,<,<=,hypot,>=,min,cdiv"),function($base,$super,$parent_nesting){var $nesting=[$klass($base,null,"Matrix")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"EigenvalueDecomposition"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.size=$proto.symmetric=$proto.d=$proto.e=$proto.v=$proto.h=nil,$def(self,"$initialize",(function(a){return $truthy(a["$is_a?"]($$("Matrix")))||this.$raise($$("TypeError"),"Expected Matrix but got "+a.$class()),this.size=a.$row_count(),this.d=$$("Array").$new(this.size,0),this.e=$$("Array").$new(this.size,0),$truthy(this.symmetric=a["$symmetric?"]())?(this.v=a.$to_a(),this.$tridiagonalize(),this.$diagonalize()):(this.v=$send($$("Array"),"new",[this.size],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return null==self.size&&(self.size=nil),$$("Array").$new(self.size,0)}),{$$arity:0,$$s:this}),this.h=a.$to_a(),this.ort=$$("Array").$new(this.size,0),this.$reduce_to_hessenberg(),this.$hessenberg_to_real_schur())}),1),$def(self,"$eigenvector_matrix",(function(){return $$("Matrix").$send("new",this.$build_eigenvectors().$transpose())}),0),$alias(self,"v","eigenvector_matrix"),$def(self,"$eigenvector_matrix_inv",(function(){var r=nil;return r=$$("Matrix").$send("new",this.$build_eigenvectors()),$truthy(this.symmetric)||(r=r.$transpose().$inverse()),r}),0),$alias(self,"v_inv","eigenvector_matrix_inv"),$def(self,"$eigenvalues",(function(){var values=nil;return values=this.d.$dup(),$send(this.e,"each_with_index",[],(function $$2(imag,i){var self=null==$$2.$$s?this:$$2.$$s,$writer=nil;return null==imag&&(imag=nil),null==i&&(i=nil),$eqeq(imag,0)?nil:($writer=[i,self.$Complex(values["$[]"](i),imag)],$send(values,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),{$$arity:2,$$s:this}),values}),0),$def(self,"$eigenvectors",(function(){return $send(this.$build_eigenvectors(),"map",[],(function(ev){return null==ev&&(ev=nil),$$("Vector").$send("new",ev)}),1)}),0),$def(self,"$eigenvalue_matrix",(function(){return $send($$("Matrix"),"diagonal",$to_a(this.$eigenvalues()))}),0),$alias(self,"d","eigenvalue_matrix"),$def(self,"$to_ary",(function(){return[this.$v(),this.$d(),this.$v_inv()]}),0),self.$alias_method("to_a","to_ary"),self.$private(),$def(self,"$build_eigenvectors",(function(){return $send(this.e.$each_with_index(),"map",[],(function $$4(imag,i){var self=null==$$4.$$s?this:$$4.$$s;return null==self.size&&(self.size=nil),null==imag&&(imag=nil),null==i&&(i=nil),$eqeq(imag,0)?$send($$("Array"),"new",[self.size],(function $$5(j){var self=null==$$5.$$s?this:$$5.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),self.v["$[]"](j)["$[]"](i)}),{$$arity:1,$$s:self}):$truthy($rb_gt(imag,0))?$send($$("Array"),"new",[self.size],(function $$6(j){var self=null==$$6.$$s?this:$$6.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),self.$Complex(self.v["$[]"](j)["$[]"](i),self.v["$[]"](j)["$[]"]($rb_plus(i,1)))}),{$$arity:1,$$s:self}):$send($$("Array"),"new",[self.size],(function $$7(j){var self=null==$$7.$$s?this:$$7.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),self.$Complex(self.v["$[]"](j)["$[]"]($rb_minus(i,1)),self.v["$[]"](j)["$[]"](i)["$-@"]())}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:this})}),0),$def(self,"$cdiv",(function(xr,xi,yr,yi){var r=nil,d=nil;return $truthy($rb_gt(yr.$abs(),yi.$abs()))?(r=$rb_divide(yi,yr),d=$rb_plus(yr,$rb_times(r,yi)),[$rb_divide($rb_plus(xr,$rb_times(r,xi)),d),$rb_divide($rb_minus(xi,$rb_times(r,xr)),d)]):(r=$rb_divide(yr,yi),d=$rb_plus(yi,$rb_times(r,yr)),[$rb_divide($rb_plus($rb_times(r,xr),xi),d),$rb_divide($rb_minus($rb_times(r,xi),xr),d)])}),4),$def(self,"$tridiagonalize",(function(){var $writer=nil;return $send(this.size,"times",[],(function $$8(j){var $writer,self=null==$$8.$$s?this:$$8.$$s;return null==self.v&&(self.v=nil),null==self.size&&(self.size=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,self.v["$[]"]($rb_minus(self.size,1))["$[]"](j)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$send($rb_minus(this.size,1),"downto",[$rb_plus(0,1)],(function $$9(i){var self=null==$$9.$$s?this:$$9.$$s,scale=nil,h=nil,$writer=nil,f=nil,g=nil,hh=nil;return null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==i&&(i=nil),scale=0,h=0,$send(i,"times",[],(function $$10(k){var self=null==$$10.$$s?this:$$10.$$s;return null==self.d&&(self.d=nil),null==k&&(k=nil),scale=$rb_plus(scale,self.d["$[]"](k).$abs())}),{$$arity:1,$$s:self}),$eqeq(scale,0)?($writer=[i,self.d["$[]"]($rb_minus(i,1))],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(i,"times",[],(function $$11(j){var self=null==$$11.$$s?this:$$11.$$s;return null==self.v&&(self.v=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,self.v["$[]"]($rb_minus(i,1))["$[]"](j)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,0],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,0],$send(self.v["$[]"](j),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})):($send(i,"times",[],(function $$12(k){var self=null==$$12.$$s?this:$$12.$$s;return null==self.d&&(self.d=nil),null==k&&(k=nil),$writer=[k,$rb_divide(self.d["$[]"](k),scale)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],h=$rb_plus(h,$rb_times(self.d["$[]"](k),self.d["$[]"](k)))}),{$$arity:1,$$s:self}),f=self.d["$[]"]($rb_minus(i,1)),g=$$("Math").$sqrt(h),$truthy($rb_gt(f,0))&&(g=g["$-@"]()),$writer=[i,$rb_times(scale,g)],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],h=$rb_minus(h,$rb_times(f,g)),$writer=[$rb_minus(i,1),$rb_minus(f,g)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(i,"times",[],(function $$13(j){var self=null==$$13.$$s?this:$$13.$$s;return null==self.e&&(self.e=nil),null==j&&(j=nil),$writer=[j,0],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$send(i,"times",[],(function $$14(j){var self=null==$$14.$$s?this:$$14.$$s;return null==self.d&&(self.d=nil),null==self.v&&(self.v=nil),null==self.e&&(self.e=nil),null==j&&(j=nil),f=self.d["$[]"](j),$writer=[i,f],$send(self.v["$[]"](j),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],g=$rb_plus(self.e["$[]"](j),$rb_times(self.v["$[]"](j)["$[]"](j),f)),$send($rb_plus(j,1),"upto",[$rb_minus(i,1)],(function $$15(k){var self=null==$$15.$$s?this:$$15.$$s;return null==self.v&&(self.v=nil),null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==k&&(k=nil),g=$rb_plus(g,$rb_times(self.v["$[]"](k)["$[]"](j),self.d["$[]"](k))),$writer=[k,$rb_plus(self.e["$[]"](k),$rb_times(self.v["$[]"](k)["$[]"](j),f))],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$writer=[j,g],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),f=0,$send(i,"times",[],(function $$16(j){var self=null==$$16.$$s?this:$$16.$$s;return null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,$rb_divide(self.e["$[]"](j),h)],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],f=$rb_plus(f,$rb_times(self.e["$[]"](j),self.d["$[]"](j)))}),{$$arity:1,$$s:self}),hh=$rb_divide(f,$rb_plus(h,h)),$send(i,"times",[],(function $$17(j){var self=null==$$17.$$s?this:$$17.$$s;return null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,$rb_minus(self.e["$[]"](j),$rb_times(hh,self.d["$[]"](j)))],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$send(i,"times",[],(function $$18(j){var self=null==$$18.$$s?this:$$18.$$s;return null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==self.v&&(self.v=nil),null==j&&(j=nil),f=self.d["$[]"](j),g=self.e["$[]"](j),$send(j,"upto",[$rb_minus(i,1)],(function $$19(k){var self=null==$$19.$$s?this:$$19.$$s,$binary_op_recvr_tmp_3=nil;return null==self.v&&(self.v=nil),null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==k&&(k=nil),$binary_op_recvr_tmp_3=self.v["$[]"](k),$writer=[j,$rb_minus($binary_op_recvr_tmp_3["$[]"](j),$rb_plus($rb_times(f,self.e["$[]"](k)),$rb_times(g,self.d["$[]"](k))))],$send($binary_op_recvr_tmp_3,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$writer=[j,self.v["$[]"]($rb_minus(i,1))["$[]"](j)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,0],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})),$writer=[i,h],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$send(0,"upto",[$rb_minus($rb_minus(this.size,1),1)],(function $$20(i){var h,self=null==$$20.$$s?this:$$20.$$s,$writer=nil;return null==self.v&&(self.v=nil),null==self.size&&(self.size=nil),null==self.d&&(self.d=nil),null==i&&(i=nil),$writer=[i,self.v["$[]"](i)["$[]"](i)],$send(self.v["$[]"]($rb_minus(self.size,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,1],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],h=self.d["$[]"]($rb_plus(i,1)),$neqeq(h,0)&&($send(0,"upto",[i],(function $$21(k){var self=null==$$21.$$s?this:$$21.$$s;return null==self.v&&(self.v=nil),null==self.d&&(self.d=nil),null==k&&(k=nil),$writer=[k,$rb_divide(self.v["$[]"](k)["$[]"]($rb_plus(i,1)),h)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$send(0,"upto",[i],(function $$22(j){var self=null==$$22.$$s?this:$$22.$$s,g=nil;return null==j&&(j=nil),g=0,$send(0,"upto",[i],(function $$23(k){var self=null==$$23.$$s?this:$$23.$$s;return null==self.v&&(self.v=nil),null==k&&(k=nil),g=$rb_plus(g,$rb_times(self.v["$[]"](k)["$[]"]($rb_plus(i,1)),self.v["$[]"](k)["$[]"](j)))}),{$$arity:1,$$s:self}),$send(0,"upto",[i],(function $$24(k){var self=null==$$24.$$s?this:$$24.$$s,$binary_op_recvr_tmp_4=nil;return null==self.v&&(self.v=nil),null==self.d&&(self.d=nil),null==k&&(k=nil),$binary_op_recvr_tmp_4=self.v["$[]"](k),$writer=[j,$rb_minus($binary_op_recvr_tmp_4["$[]"](j),$rb_times(g,self.d["$[]"](k)))],$send($binary_op_recvr_tmp_4,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})),$send(0,"upto",[i],(function $$25(k){var self=null==$$25.$$s?this:$$25.$$s;return null==self.v&&(self.v=nil),null==k&&(k=nil),$writer=[$rb_plus(i,1),0],$send(self.v["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),$send(this.size,"times",[],(function $$26(j){var self=null==$$26.$$s?this:$$26.$$s,$writer=nil;return null==self.v&&(self.v=nil),null==self.size&&(self.size=nil),null==self.d&&(self.d=nil),null==j&&(j=nil),$writer=[j,self.v["$[]"]($rb_minus(self.size,1))["$[]"](j)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,0],$send(self.v["$[]"]($rb_minus(self.size,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$writer=[$rb_minus(this.size,1),1],$send(this.v["$[]"]($rb_minus(this.size,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[0,0],$send(this.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),0),$def(self,"$diagonalize",(function(){var eps,$writer=nil,f=nil,tst1=nil;return $send(1,"upto",[$rb_minus(this.size,1)],(function $$27(i){var $writer,self=null==$$27.$$s?this:$$27.$$s;return null==self.e&&(self.e=nil),null==i&&(i=nil),$writer=[$rb_minus(i,1),self.e["$[]"](i)],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$writer=[$rb_minus(this.size,1),0],$send(this.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],f=0,tst1=0,eps=$$$($$("Float"),"EPSILON"),$send(this.size,"times",[],(function $$28(l){var self=null==$$28.$$s?this:$$28.$$s,m=nil,iter=nil,g=nil,p=nil,r=nil,dl1=nil,h=nil,c=nil,c2=nil,c3=nil,el1=nil,s=nil,s2=nil;for(null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==self.size&&(self.size=nil),null==l&&(l=nil),tst1=[tst1,$rb_plus(self.d["$[]"](l).$abs(),self.e["$[]"](l).$abs())].$max(),m=l;$truthy($rb_lt(m,self.size))&&!$truthy($rb_le(self.e["$[]"](m).$abs(),$rb_times(eps,tst1)));)m=$rb_plus(m,1);if($truthy($rb_gt(m,l))){iter=0;do{iter=$rb_plus(iter,1),g=self.d["$[]"](l),p=$rb_divide($rb_minus(self.d["$[]"]($rb_plus(l,1)),g),$rb_times(2,self.e["$[]"](l))),r=$$("Math").$hypot(p,1),$truthy($rb_lt(p,0))&&(r=r["$-@"]()),$writer=[l,$rb_divide(self.e["$[]"](l),$rb_plus(p,r))],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_plus(l,1),$rb_times(self.e["$[]"](l),$rb_plus(p,r))],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],dl1=self.d["$[]"]($rb_plus(l,1)),h=$rb_minus(g,self.d["$[]"](l)),$send($rb_plus(l,2),"upto",[$rb_minus(self.size,1)],(function $$29(i){var self=null==$$29.$$s?this:$$29.$$s;return null==self.d&&(self.d=nil),null==i&&(i=nil),$writer=[i,$rb_minus(self.d["$[]"](i),h)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),f=$rb_plus(f,h),p=self.d["$[]"](m),c2=c=1,c3=c,el1=self.e["$[]"]($rb_plus(l,1)),s=0,s2=0,$send($rb_minus(m,1),"downto",[l],(function $$30(i){var self=null==$$30.$$s?this:$$30.$$s;return null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==self.size&&(self.size=nil),null==i&&(i=nil),c3=c2,c2=c,s2=s,g=$rb_times(c,self.e["$[]"](i)),h=$rb_times(c,p),r=$$("Math").$hypot(p,self.e["$[]"](i)),$writer=[$rb_plus(i,1),$rb_times(s,r)],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],s=$rb_divide(self.e["$[]"](i),r),c=$rb_divide(p,r),p=$rb_minus($rb_times(c,self.d["$[]"](i)),$rb_times(s,g)),$writer=[$rb_plus(i,1),$rb_plus(h,$rb_times(s,$rb_plus($rb_times(c,g),$rb_times(s,self.d["$[]"](i)))))],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(self.size,"times",[],(function $$31(k){var self=null==$$31.$$s?this:$$31.$$s;return null==self.v&&(self.v=nil),null==k&&(k=nil),h=self.v["$[]"](k)["$[]"]($rb_plus(i,1)),$writer=[$rb_plus(i,1),$rb_plus($rb_times(s,self.v["$[]"](k)["$[]"](i)),$rb_times(c,h))],$send(self.v["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,$rb_minus($rb_times(c,self.v["$[]"](k)["$[]"](i)),$rb_times(s,h))],$send(self.v["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self}),p=$rb_divide($rb_times($rb_times($rb_times($rb_times(s["$-@"](),s2),c3),el1),self.e["$[]"](l)),dl1),$writer=[l,$rb_times(s,p)],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[l,$rb_times(c,p)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}while($truthy($rb_gt(self.e["$[]"](l).$abs(),$rb_times(eps,tst1))))}return $writer=[l,$rb_plus(self.d["$[]"](l),f)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[l,0],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$send(0,"upto",[$rb_minus(this.size,2)],(function $$32(i){var self=null==$$32.$$s?this:$$32.$$s,k=nil,p=nil;return null==self.d&&(self.d=nil),null==self.size&&(self.size=nil),null==i&&(i=nil),k=i,p=self.d["$[]"](i),$send($rb_plus(i,1),"upto",[$rb_minus(self.size,1)],(function $$33(j){var self=null==$$33.$$s?this:$$33.$$s;return null==self.d&&(self.d=nil),null==j&&(j=nil),$truthy($rb_lt(self.d["$[]"](j),p))?(k=j,p=self.d["$[]"](j)):nil}),{$$arity:1,$$s:self}),$neqeq(k,i)?($writer=[k,self.d["$[]"](i)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,p],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(self.size,"times",[],(function $$34(j){var self=null==$$34.$$s?this:$$34.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),p=self.v["$[]"](j)["$[]"](i),$writer=[i,self.v["$[]"](j)["$[]"](k)],$send(self.v["$[]"](j),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[k,p],$send(self.v["$[]"](j),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})):nil}),{$$arity:1,$$s:this})}),0),$def(self,"$reduce_to_hessenberg",(function(){var high;return 0,high=$rb_minus(this.size,1),$send($rb_plus(0,1),"upto",[$rb_minus(high,1)],(function $$35(m){var self=null==$$35.$$s?this:$$35.$$s,scale=nil,h=nil,g=nil,$writer=nil;return null==self.ort&&(self.ort=nil),null==self.size&&(self.size=nil),null==self.h&&(self.h=nil),null==m&&(m=nil),scale=0,$send(m,"upto",[high],(function $$36(i){var self=null==$$36.$$s?this:$$36.$$s;return null==self.h&&(self.h=nil),null==i&&(i=nil),scale=$rb_plus(scale,self.h["$[]"](i)["$[]"]($rb_minus(m,1)).$abs())}),{$$arity:1,$$s:self}),$neqeq(scale,0)?(h=0,$send(high,"downto",[m],(function $$37(i){var $writer,self=null==$$37.$$s?this:$$37.$$s;return null==self.h&&(self.h=nil),null==self.ort&&(self.ort=nil),null==i&&(i=nil),$writer=[i,$rb_divide(self.h["$[]"](i)["$[]"]($rb_minus(m,1)),scale)],$send(self.ort,"[]=",$to_a($writer)),$rb_minus($writer.length,1),h=$rb_plus(h,$rb_times(self.ort["$[]"](i),self.ort["$[]"](i)))}),{$$arity:1,$$s:self}),g=$$("Math").$sqrt(h),$truthy($rb_gt(self.ort["$[]"](m),0))&&(g=g["$-@"]()),h=$rb_minus(h,$rb_times(self.ort["$[]"](m),g)),$writer=[m,$rb_minus(self.ort["$[]"](m),g)],$send(self.ort,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(m,"upto",[$rb_minus(self.size,1)],(function $$38(j){var self=null==$$38.$$s?this:$$38.$$s,f=nil;return null==j&&(j=nil),f=0,$send(high,"downto",[m],(function $$39(i){var self=null==$$39.$$s?this:$$39.$$s;return null==self.ort&&(self.ort=nil),null==self.h&&(self.h=nil),null==i&&(i=nil),f=$rb_plus(f,$rb_times(self.ort["$[]"](i),self.h["$[]"](i)["$[]"](j)))}),{$$arity:1,$$s:self}),f=$rb_divide(f,h),$send(m,"upto",[high],(function $$40(i){var self=null==$$40.$$s?this:$$40.$$s,$binary_op_recvr_tmp_5=nil;return null==self.h&&(self.h=nil),null==self.ort&&(self.ort=nil),null==i&&(i=nil),$binary_op_recvr_tmp_5=self.h["$[]"](i),$writer=[j,$rb_minus($binary_op_recvr_tmp_5["$[]"](j),$rb_times(f,self.ort["$[]"](i)))],$send($binary_op_recvr_tmp_5,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self}),$send(0,"upto",[high],(function $$41(i){var self=null==$$41.$$s?this:$$41.$$s,f=nil;return null==i&&(i=nil),f=0,$send(high,"downto",[m],(function $$42(j){var self=null==$$42.$$s?this:$$42.$$s;return null==self.ort&&(self.ort=nil),null==self.h&&(self.h=nil),null==j&&(j=nil),f=$rb_plus(f,$rb_times(self.ort["$[]"](j),self.h["$[]"](i)["$[]"](j)))}),{$$arity:1,$$s:self}),f=$rb_divide(f,h),$send(m,"upto",[high],(function $$43(j){var self=null==$$43.$$s?this:$$43.$$s,$binary_op_recvr_tmp_6=nil;return null==self.h&&(self.h=nil),null==self.ort&&(self.ort=nil),null==j&&(j=nil),$binary_op_recvr_tmp_6=self.h["$[]"](i),$writer=[j,$rb_minus($binary_op_recvr_tmp_6["$[]"](j),$rb_times(f,self.ort["$[]"](j)))],$send($binary_op_recvr_tmp_6,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self}),$writer=[m,$rb_times(scale,self.ort["$[]"](m))],$send(self.ort,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_minus(m,1),$rb_times(scale,g)],$send(self.h["$[]"](m),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),{$$arity:1,$$s:this}),$send(this.size,"times",[],(function $$44(i){var self=null==$$44.$$s?this:$$44.$$s;return null==self.size&&(self.size=nil),null==i&&(i=nil),$send(self.size,"times",[],(function $$45(j){var $writer,self=null==$$45.$$s?this:$$45.$$s;return null==self.v&&(self.v=nil),null==j&&(j=nil),$writer=[j,$eqeq(i,j)?1:0],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),$send($rb_minus(high,1),"downto",[$rb_plus(0,1)],(function $$46(m){var self=null==$$46.$$s?this:$$46.$$s;return null==self.h&&(self.h=nil),null==m&&(m=nil),$neqeq(self.h["$[]"](m)["$[]"]($rb_minus(m,1)),0)?($send($rb_plus(m,1),"upto",[high],(function $$47(i){var $writer,self=null==$$47.$$s?this:$$47.$$s;return null==self.h&&(self.h=nil),null==self.ort&&(self.ort=nil),null==i&&(i=nil),$writer=[i,self.h["$[]"](i)["$[]"]($rb_minus(m,1))],$send(self.ort,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$send(m,"upto",[high],(function $$48(j){var self=null==$$48.$$s?this:$$48.$$s,g=nil;return null==self.ort&&(self.ort=nil),null==self.h&&(self.h=nil),null==j&&(j=nil),g=0,$send(m,"upto",[high],(function $$49(i){var self=null==$$49.$$s?this:$$49.$$s;return null==self.ort&&(self.ort=nil),null==self.v&&(self.v=nil),null==i&&(i=nil),g=$rb_plus(g,$rb_times(self.ort["$[]"](i),self.v["$[]"](i)["$[]"](j)))}),{$$arity:1,$$s:self}),g=$rb_divide($rb_divide(g,self.ort["$[]"](m)),self.h["$[]"](m)["$[]"]($rb_minus(m,1))),$send(m,"upto",[high],(function $$50(i){var $writer,self=null==$$50.$$s?this:$$50.$$s,$binary_op_recvr_tmp_7=nil;return null==self.v&&(self.v=nil),null==self.ort&&(self.ort=nil),null==i&&(i=nil),$binary_op_recvr_tmp_7=self.v["$[]"](i),$writer=[j,$rb_plus($binary_op_recvr_tmp_7["$[]"](j),$rb_times(g,self.ort["$[]"](i)))],$send($binary_op_recvr_tmp_7,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})):nil}),{$$arity:1,$$s:this})}),0),$def(self,"$hessenberg_to_real_schur",(function(){var nn,eps,n=nil,high=nil,exshift=nil,p=nil,q=nil,r=nil,s=nil,z=nil,norm=nil,iter=nil,l=nil,$writer=nil,w=nil,x=nil,y=nil,m=nil;for(nn=this.size,n=$rb_minus(nn,1),0,high=$rb_minus(nn,1),eps=$$$($$("Float"),"EPSILON"),exshift=0,p=q=r=s=z=0,norm=0,$send(nn,"times",[],(function $$51(i){var self=null==$$51.$$s?this:$$51.$$s,$writer=nil;return null==self.h&&(self.h=nil),null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==i&&(i=nil),($truthy($rb_lt(i,0))||$truthy($rb_gt(i,high)))&&($writer=[i,self.h["$[]"](i)["$[]"](i)],$send(self.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[i,0],$send(self.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$send([$rb_minus(i,1),0].$max(),"upto",[$rb_minus(nn,1)],(function $$52(j){var self=null==$$52.$$s?this:$$52.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),norm=$rb_plus(norm,self.h["$[]"](i)["$[]"](j).$abs())}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),iter=0;$truthy($rb_ge(n,0));){for(l=n;$truthy($rb_gt(l,0))&&(s=$rb_plus(this.h["$[]"]($rb_minus(l,1))["$[]"]($rb_minus(l,1)).$abs(),this.h["$[]"](l)["$[]"](l).$abs()),$eqeq(s,0)&&(s=norm),!$truthy($rb_lt(this.h["$[]"](l)["$[]"]($rb_minus(l,1)).$abs(),$rb_times(eps,s))));)l=$rb_minus(l,1);if($eqeq(l,n))$writer=[n,$rb_plus(this.h["$[]"](n)["$[]"](n),exshift)],$send(this.h["$[]"](n),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,this.h["$[]"](n)["$[]"](n)],$send(this.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,0],$send(this.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],n=$rb_minus(n,1),iter=0;else if($eqeq(l,$rb_minus(n,1)))w=$rb_times(this.h["$[]"](n)["$[]"]($rb_minus(n,1)),this.h["$[]"]($rb_minus(n,1))["$[]"](n)),p=$rb_divide($rb_minus(this.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,1)),this.h["$[]"](n)["$[]"](n)),2),q=$rb_plus($rb_times(p,p),w),z=$$("Math").$sqrt(q.$abs()),$writer=[n,$rb_plus(this.h["$[]"](n)["$[]"](n),exshift)],$send(this.h["$[]"](n),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_minus(n,1),$rb_plus(this.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,1)),exshift)],$send(this.h["$[]"]($rb_minus(n,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],x=this.h["$[]"](n)["$[]"](n),$truthy($rb_ge(q,0))?(z=$truthy($rb_ge(p,0))?$rb_plus(p,z):$rb_minus(p,z),$writer=[$rb_minus(n,1),$rb_plus(x,z)],$send(this.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,this.d["$[]"]($rb_minus(n,1))],$send(this.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$neqeq(z,0)&&($writer=[n,$rb_minus(x,$rb_divide(w,z))],$send(this.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[$rb_minus(n,1),0],$send(this.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,0],$send(this.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],x=this.h["$[]"](n)["$[]"]($rb_minus(n,1)),s=$rb_plus(x.$abs(),z.$abs()),p=$rb_divide(x,s),q=$rb_divide(z,s),r=$$("Math").$sqrt($rb_plus($rb_times(p,p),$rb_times(q,q))),p=$rb_divide(p,r),q=$rb_divide(q,r),$send($rb_minus(n,1),"upto",[$rb_minus(nn,1)],(function $$53(j){var self=null==$$53.$$s?this:$$53.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),z=self.h["$[]"]($rb_minus(n,1))["$[]"](j),$writer=[j,$rb_plus($rb_times(q,z),$rb_times(p,self.h["$[]"](n)["$[]"](j)))],$send(self.h["$[]"]($rb_minus(n,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,$rb_minus($rb_times(q,self.h["$[]"](n)["$[]"](j)),$rb_times(p,z))],$send(self.h["$[]"](n),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$send(0,"upto",[n],(function $$54(i){var self=null==$$54.$$s?this:$$54.$$s;return null==self.h&&(self.h=nil),null==i&&(i=nil),z=self.h["$[]"](i)["$[]"]($rb_minus(n,1)),$writer=[$rb_minus(n,1),$rb_plus($rb_times(q,z),$rb_times(p,self.h["$[]"](i)["$[]"](n)))],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_minus($rb_times(q,self.h["$[]"](i)["$[]"](n)),$rb_times(p,z))],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$send(0,"upto",[high],(function $$55(i){var self=null==$$55.$$s?this:$$55.$$s;return null==self.v&&(self.v=nil),null==i&&(i=nil),z=self.v["$[]"](i)["$[]"]($rb_minus(n,1)),$writer=[$rb_minus(n,1),$rb_plus($rb_times(q,z),$rb_times(p,self.v["$[]"](i)["$[]"](n)))],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_minus($rb_times(q,self.v["$[]"](i)["$[]"](n)),$rb_times(p,z))],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this})):($writer=[$rb_minus(n,1),$rb_plus(x,p)],$send(this.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_plus(x,p)],$send(this.d,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_minus(n,1),z],$send(this.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,z["$-@"]()],$send(this.e,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),n=$rb_minus(n,2),iter=0;else{for(x=this.h["$[]"](n)["$[]"](n),y=0,w=0,$truthy($rb_lt(l,n))&&(y=this.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,1)),w=$rb_times(this.h["$[]"](n)["$[]"]($rb_minus(n,1)),this.h["$[]"]($rb_minus(n,1))["$[]"](n))),$eqeq(iter,10)&&(exshift=$rb_plus(exshift,x),$send(0,"upto",[n],(function $$56(i){var self=null==$$56.$$s?this:$$56.$$s,$binary_op_recvr_tmp_8=nil;return null==self.h&&(self.h=nil),null==i&&(i=nil),$binary_op_recvr_tmp_8=self.h["$[]"](i),$writer=[i,$rb_minus($binary_op_recvr_tmp_8["$[]"](i),x)],$send($binary_op_recvr_tmp_8,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),s=$rb_plus(this.h["$[]"](n)["$[]"]($rb_minus(n,1)).$abs(),this.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,2)).$abs()),x=y=$rb_times(.75,s),w=$rb_times($rb_times(-.4375,s),s)),$eqeq(iter,30)&&(s=$rb_divide($rb_minus(y,x),2),s=$rb_times(s,$rb_plus(s,w)),$truthy($rb_gt(s,0))&&(s=$$("Math").$sqrt(s),$truthy($rb_lt(y,x))&&(s=s["$-@"]()),s=$rb_minus(x,$rb_divide(w,$rb_plus($rb_divide($rb_minus(y,x),2),s))),$send(0,"upto",[n],(function $$57(i){var self=null==$$57.$$s?this:$$57.$$s,$binary_op_recvr_tmp_9=nil;return null==self.h&&(self.h=nil),null==i&&(i=nil),$binary_op_recvr_tmp_9=self.h["$[]"](i),$writer=[i,$rb_minus($binary_op_recvr_tmp_9["$[]"](i),s)],$send($binary_op_recvr_tmp_9,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),exshift=$rb_plus(exshift,s),x=y=w=.964)),iter=$rb_plus(iter,1),m=$rb_minus(n,2);$truthy($rb_ge(m,l))&&(z=this.h["$[]"](m)["$[]"](m),r=$rb_minus(x,z),s=$rb_minus(y,z),p=$rb_plus($rb_divide($rb_minus($rb_times(r,s),w),this.h["$[]"]($rb_plus(m,1))["$[]"](m)),this.h["$[]"](m)["$[]"]($rb_plus(m,1))),q=$rb_minus($rb_minus($rb_minus(this.h["$[]"]($rb_plus(m,1))["$[]"]($rb_plus(m,1)),z),r),s),r=this.h["$[]"]($rb_plus(m,2))["$[]"]($rb_plus(m,1)),s=$rb_plus($rb_plus(p.$abs(),q.$abs()),r.$abs()),p=$rb_divide(p,s),q=$rb_divide(q,s),r=$rb_divide(r,s),!$eqeq(m,l))&&!$truthy($rb_lt($rb_times(this.h["$[]"](m)["$[]"]($rb_minus(m,1)).$abs(),$rb_plus(q.$abs(),r.$abs())),$rb_times(eps,$rb_times(p.$abs(),$rb_plus($rb_plus(this.h["$[]"]($rb_minus(m,1))["$[]"]($rb_minus(m,1)).$abs(),z.$abs()),this.h["$[]"]($rb_plus(m,1))["$[]"]($rb_plus(m,1)).$abs())))));)m=$rb_minus(m,1);$send($rb_plus(m,2),"upto",[n],(function $$58(i){var self=null==$$58.$$s?this:$$58.$$s;return null==self.h&&(self.h=nil),null==i&&(i=nil),$writer=[$rb_minus(i,2),0],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(i,$rb_plus(m,2)))?($writer=[$rb_minus(i,3),0],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),{$$arity:1,$$s:this}),$send(m,"upto",[$rb_minus(n,1)],(function $$59(k){var notlast,self=null==$$59.$$s?this:$$59.$$s;if(null==self.h&&(self.h=nil),null==k&&(k=nil),notlast=k["$!="]($rb_minus(n,1)),$neqeq(k,m)){if(p=self.h["$[]"](k)["$[]"]($rb_minus(k,1)),q=self.h["$[]"]($rb_plus(k,1))["$[]"]($rb_minus(k,1)),r=$truthy(notlast)?self.h["$[]"]($rb_plus(k,2))["$[]"]($rb_minus(k,1)):0,x=$rb_plus($rb_plus(p.$abs(),q.$abs()),r.$abs()),$eqeq(x,0))return nil;p=$rb_divide(p,x),q=$rb_divide(q,x),r=$rb_divide(r,x)}return s=$$("Math").$sqrt($rb_plus($rb_plus($rb_times(p,p),$rb_times(q,q)),$rb_times(r,r))),$truthy($rb_lt(p,0))&&(s=s["$-@"]()),$neqeq(s,0)?($neqeq(k,m)?($writer=[$rb_minus(k,1),$rb_times(s["$-@"](),x)],$send(self.h["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$neqeq(l,m)&&($writer=[$rb_minus(k,1),self.h["$[]"](k)["$[]"]($rb_minus(k,1))["$-@"]()],$send(self.h["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),p=$rb_plus(p,s),x=$rb_divide(p,s),y=$rb_divide(q,s),z=$rb_divide(r,s),q=$rb_divide(q,p),r=$rb_divide(r,p),$send(k,"upto",[$rb_minus(nn,1)],(function $$60(j){var self=null==$$60.$$s?this:$$60.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),p=$rb_plus(self.h["$[]"](k)["$[]"](j),$rb_times(q,self.h["$[]"]($rb_plus(k,1))["$[]"](j))),$truthy(notlast)&&(p=$rb_plus(p,$rb_times(r,self.h["$[]"]($rb_plus(k,2))["$[]"](j))),$writer=[j,$rb_minus(self.h["$[]"]($rb_plus(k,2))["$[]"](j),$rb_times(p,z))],$send(self.h["$[]"]($rb_plus(k,2)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[j,$rb_minus(self.h["$[]"](k)["$[]"](j),$rb_times(p,x))],$send(self.h["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,$rb_minus(self.h["$[]"]($rb_plus(k,1))["$[]"](j),$rb_times(p,y))],$send(self.h["$[]"]($rb_plus(k,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$send(0,"upto",[[n,$rb_plus(k,3)].$min()],(function $$61(i){var self=null==$$61.$$s?this:$$61.$$s;return null==self.h&&(self.h=nil),null==i&&(i=nil),p=$rb_plus($rb_times(x,self.h["$[]"](i)["$[]"](k)),$rb_times(y,self.h["$[]"](i)["$[]"]($rb_plus(k,1)))),$truthy(notlast)&&(p=$rb_plus(p,$rb_times(z,self.h["$[]"](i)["$[]"]($rb_plus(k,2)))),$writer=[$rb_plus(k,2),$rb_minus(self.h["$[]"](i)["$[]"]($rb_plus(k,2)),$rb_times(p,r))],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[k,$rb_minus(self.h["$[]"](i)["$[]"](k),p)],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_plus(k,1),$rb_minus(self.h["$[]"](i)["$[]"]($rb_plus(k,1)),$rb_times(p,q))],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$send(0,"upto",[high],(function $$62(i){var self=null==$$62.$$s?this:$$62.$$s;return null==self.v&&(self.v=nil),null==i&&(i=nil),p=$rb_plus($rb_times(x,self.v["$[]"](i)["$[]"](k)),$rb_times(y,self.v["$[]"](i)["$[]"]($rb_plus(k,1)))),$truthy(notlast)&&(p=$rb_plus(p,$rb_times(z,self.v["$[]"](i)["$[]"]($rb_plus(k,2)))),$writer=[$rb_plus(k,2),$rb_minus(self.v["$[]"](i)["$[]"]($rb_plus(k,2)),$rb_times(p,r))],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[k,$rb_minus(self.v["$[]"](i)["$[]"](k),p)],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$rb_plus(k,1),$rb_minus(self.v["$[]"](i)["$[]"]($rb_plus(k,1)),$rb_times(p,q))],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})):nil}),{$$arity:1,$$s:this})}}return $eqeq(norm,0)?nil:($send($rb_minus(nn,1),"downto",[0],(function $$63(k){var $c,$d,self=null==$$63.$$s?this:$$63.$$s,cdivr=nil,cdivi=nil;return null==self.d&&(self.d=nil),null==self.e&&(self.e=nil),null==self.h&&(self.h=nil),null==k&&(k=nil),p=self.d["$[]"](k),q=self.e["$[]"](k),$eqeq(q,0)?(l=k,$writer=[k,1],$send(self.h["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send($rb_minus(k,1),"downto",[0],(function $$64(i){var self=null==$$64.$$s?this:$$64.$$s,t=nil;return null==self.h&&(self.h=nil),null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==i&&(i=nil),w=$rb_minus(self.h["$[]"](i)["$[]"](i),p),r=0,$send(l,"upto",[k],(function $$65(j){var self=null==$$65.$$s?this:$$65.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),r=$rb_plus(r,$rb_times(self.h["$[]"](i)["$[]"](j),self.h["$[]"](j)["$[]"](k)))}),{$$arity:1,$$s:self}),$truthy($rb_lt(self.e["$[]"](i),0))?(z=w,s=r):(l=i,$eqeq(self.e["$[]"](i),0)?$neqeq(w,0)?($writer=[k,$rb_divide(r["$-@"](),w)],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):($writer=[k,$rb_divide(r["$-@"](),$rb_times(eps,norm))],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):(x=self.h["$[]"](i)["$[]"]($rb_plus(i,1)),y=self.h["$[]"]($rb_plus(i,1))["$[]"](i),q=$rb_plus($rb_times($rb_minus(self.d["$[]"](i),p),$rb_minus(self.d["$[]"](i),p)),$rb_times(self.e["$[]"](i),self.e["$[]"](i))),t=$rb_divide($rb_minus($rb_times(x,s),$rb_times(z,r)),q),$writer=[k,t],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(x.$abs(),z.$abs()))?($writer=[k,$rb_divide($rb_minus(r["$-@"](),$rb_times(w,t)),x)],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):($writer=[k,$rb_divide($rb_minus(s["$-@"](),$rb_times(y,t)),z)],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])),t=self.h["$[]"](i)["$[]"](k).$abs(),$truthy($rb_gt($rb_times($rb_times(eps,t),t),1))?$send(i,"upto",[k],(function $$66(j){var self=null==$$66.$$s?this:$$66.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),$writer=[k,$rb_divide(self.h["$[]"](j)["$[]"](k),t)],$send(self.h["$[]"](j),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}):nil)}),{$$arity:1,$$s:self})):$truthy($rb_lt(q,0))?(l=$rb_minus(n,1),$truthy($rb_gt(self.h["$[]"](n)["$[]"]($rb_minus(n,1)).$abs(),self.h["$[]"]($rb_minus(n,1))["$[]"](n).$abs()))?($writer=[$rb_minus(n,1),$rb_divide(q,self.h["$[]"](n)["$[]"]($rb_minus(n,1)))],$send(self.h["$[]"]($rb_minus(n,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_divide($rb_minus(self.h["$[]"](n)["$[]"](n),p)["$-@"](),self.h["$[]"](n)["$[]"]($rb_minus(n,1)))],$send(self.h["$[]"]($rb_minus(n,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):($d=self.$cdiv(0,self.h["$[]"]($rb_minus(n,1))["$[]"](n)["$-@"](),$rb_minus(self.h["$[]"]($rb_minus(n,1))["$[]"]($rb_minus(n,1)),p),q),$c=$to_ary($d),cdivr=null==$c[0]?nil:$c[0],cdivi=null==$c[1]?nil:$c[1],$writer=[$rb_minus(n,1),cdivr],$send(self.h["$[]"]($rb_minus(n,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,cdivi],$send(self.h["$[]"]($rb_minus(n,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[$rb_minus(n,1),0],$send(self.h["$[]"](n),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,1],$send(self.h["$[]"](n),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send($rb_minus(n,2),"downto",[0],(function $$67(i){var $e,$f,self=null==$$67.$$s?this:$$67.$$s,ra=nil,sa=nil,vr=nil,vi=nil,t=nil;return null==self.h&&(self.h=nil),null==self.e&&(self.e=nil),null==self.d&&(self.d=nil),null==i&&(i=nil),ra=0,sa=0,$send(l,"upto",[n],(function $$68(j){var self=null==$$68.$$s?this:$$68.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),ra=$rb_plus(ra,$rb_times(self.h["$[]"](i)["$[]"](j),self.h["$[]"](j)["$[]"]($rb_minus(n,1)))),sa=$rb_plus(sa,$rb_times(self.h["$[]"](i)["$[]"](j),self.h["$[]"](j)["$[]"](n)))}),{$$arity:1,$$s:self}),w=$rb_minus(self.h["$[]"](i)["$[]"](i),p),$truthy($rb_lt(self.e["$[]"](i),0))?(z=w,r=ra,s=sa):(l=i,$eqeq(self.e["$[]"](i),0)?($f=self.$cdiv(ra["$-@"](),sa["$-@"](),w,q),$e=$to_ary($f),cdivr=null==$e[0]?nil:$e[0],cdivi=null==$e[1]?nil:$e[1],$writer=[$rb_minus(n,1),cdivr],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,cdivi],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):(x=self.h["$[]"](i)["$[]"]($rb_plus(i,1)),y=self.h["$[]"]($rb_plus(i,1))["$[]"](i),vr=$rb_minus($rb_plus($rb_times($rb_minus(self.d["$[]"](i),p),$rb_minus(self.d["$[]"](i),p)),$rb_times(self.e["$[]"](i),self.e["$[]"](i))),$rb_times(q,q)),vi=$rb_times($rb_times($rb_minus(self.d["$[]"](i),p),2),q),$eqeq(vr,0)&&$eqeq(vi,0)&&(vr=$rb_times($rb_times(eps,norm),$rb_plus($rb_plus($rb_plus($rb_plus(w.$abs(),q.$abs()),x.$abs()),y.$abs()),z.$abs()))),$f=self.$cdiv($rb_plus($rb_minus($rb_times(x,r),$rb_times(z,ra)),$rb_times(q,sa)),$rb_minus($rb_minus($rb_times(x,s),$rb_times(z,sa)),$rb_times(q,ra)),vr,vi),$e=$to_ary($f),cdivr=null==$e[0]?nil:$e[0],cdivi=null==$e[1]?nil:$e[1],$writer=[$rb_minus(n,1),cdivr],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,cdivi],$send(self.h["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(x.$abs(),$rb_plus(z.$abs(),q.$abs())))?($writer=[$rb_minus(n,1),$rb_divide($rb_plus($rb_minus(ra["$-@"](),$rb_times(w,self.h["$[]"](i)["$[]"]($rb_minus(n,1)))),$rb_times(q,self.h["$[]"](i)["$[]"](n))),x)],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_divide($rb_minus($rb_minus(sa["$-@"](),$rb_times(w,self.h["$[]"](i)["$[]"](n))),$rb_times(q,self.h["$[]"](i)["$[]"]($rb_minus(n,1)))),x)],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):($f=self.$cdiv($rb_minus(r["$-@"](),$rb_times(y,self.h["$[]"](i)["$[]"]($rb_minus(n,1)))),$rb_minus(s["$-@"](),$rb_times(y,self.h["$[]"](i)["$[]"](n))),z,q),$e=$to_ary($f),cdivr=null==$e[0]?nil:$e[0],cdivi=null==$e[1]?nil:$e[1],$writer=[$rb_minus(n,1),cdivr],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,cdivi],$send(self.h["$[]"]($rb_plus(i,1)),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])),t=[self.h["$[]"](i)["$[]"]($rb_minus(n,1)).$abs(),self.h["$[]"](i)["$[]"](n).$abs()].$max(),$truthy($rb_gt($rb_times($rb_times(eps,t),t),1))?$send(i,"upto",[n],(function $$69(j){var self=null==$$69.$$s?this:$$69.$$s;return null==self.h&&(self.h=nil),null==j&&(j=nil),$writer=[$rb_minus(n,1),$rb_divide(self.h["$[]"](j)["$[]"]($rb_minus(n,1)),t)],$send(self.h["$[]"](j),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[n,$rb_divide(self.h["$[]"](j)["$[]"](n),t)],$send(self.h["$[]"](j),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}):nil)}),{$$arity:1,$$s:self})):nil}),{$$arity:1,$$s:this}),$send(nn,"times",[],(function $$70(i){var self=null==$$70.$$s?this:$$70.$$s;return null==i&&(i=nil),$truthy($rb_lt(i,0))||$truthy($rb_gt(i,high))?$send(i,"upto",[$rb_minus(nn,1)],(function $$71(j){var self=null==$$71.$$s?this:$$71.$$s;return null==self.h&&(self.h=nil),null==self.v&&(self.v=nil),null==j&&(j=nil),$writer=[j,self.h["$[]"](i)["$[]"](j)],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}):nil}),{$$arity:1,$$s:this}),$send($rb_minus(nn,1),"downto",[0],(function $$72(j){return null==j&&(j=nil),$send(0,"upto",[high],(function $$73(i){var self=null==$$73.$$s?this:$$73.$$s;return null==self.v&&(self.v=nil),null==i&&(i=nil),z=0,$send(0,"upto",[[j,high].$min()],(function $$74(k){var self=null==$$74.$$s?this:$$74.$$s;return null==self.v&&(self.v=nil),null==self.h&&(self.h=nil),null==k&&(k=nil),z=$rb_plus(z,$rb_times(self.v["$[]"](i)["$[]"](k),self.h["$[]"](k)["$[]"](j)))}),{$$arity:1,$$s:self}),$writer=[j,z],$send(self.v["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:null==$$72.$$s?this:$$72.$$s})}),{$$arity:1,$$s:this}))}),0)}($nesting[0],0,$nesting)}($nesting[0],0,$nesting)},Opal.modules["matrix/lup_decomposition"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$eqeq=Opal.eqeq,$def=Opal.def,$rb_le=Opal.rb_le,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$neqeq=Opal.neqeq,$rb_times=Opal.rb_times,$rb_plus=Opal.rb_plus,$rb_lt=Opal.rb_lt;return Opal.add_stubs("include,build,min,>,[],==,<=,new,each_with_index,[]=,-,send,l,u,p,alias_method,attr_reader,times,!=,Raise,*,singular?,is_a?,row_count,column_count,map,to_a,row,upto,+,downto,quo,convert_to_array,size,values_at,elements,raise,class,abs,-@,<"),function($base,$super,$parent_nesting){var $nesting=[$klass($base,null,"Matrix")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"LUPDecomposition"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.row_count=$proto.column_count=$proto.pivots=$proto.pivot_sign=nil,self.$include($$$($$("Matrix"),"ConversionHelper")),$def(self,"$l",(function(){return $send($$("Matrix"),"build",[this.row_count,[this.column_count,this.row_count].$min()],(function $$1(i,j){var self=null==$$1.$$s?this:$$1.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),null==j&&(j=nil),$truthy($rb_gt(i,j))?self.lu["$[]"](i)["$[]"](j):$eqeq(i,j)?1:0}),{$$arity:2,$$s:this})}),0),$def(self,"$u",(function(){return $send($$("Matrix"),"build",[[this.column_count,this.row_count].$min(),this.column_count],(function $$2(i,j){var self=null==$$2.$$s?this:$$2.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),null==j&&(j=nil),$truthy($rb_le(i,j))?self.lu["$[]"](i)["$[]"](j):0}),{$$arity:2,$$s:this})}),0),$def(self,"$p",(function(){var rows=nil;return rows=$send($$("Array"),"new",[this.row_count],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return null==self.row_count&&(self.row_count=nil),$$("Array").$new(self.row_count,0)}),{$$arity:0,$$s:this}),$send(this.pivots,"each_with_index",[],(function(p,i){var $writer;return null==p&&(p=nil),null==i&&(i=nil),$writer=[p,1],$send(rows["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$$("Matrix").$send("new",rows,this.row_count)}),0),$def(self,"$to_ary",(function(){return[this.$l(),this.$u(),this.$p()]}),0),self.$alias_method("to_a","to_ary"),self.$attr_reader("pivots"),$def(self,"$singular?",(function(){try{return $send(this.column_count,"times",[],(function $$6(j){var self=null==$$6.$$s?this:$$6.$$s;if(null==self.lu&&(self.lu=nil),null==j&&(j=nil),!$eqeq(self.lu["$[]"](j)["$[]"](j),0))return nil;Opal.ret(!0)}),{$$arity:1,$$s:this}),!1}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$det",(function(){var d=nil;return $neqeq(this.row_count,this.column_count)&&$$("Matrix").$Raise($$$($$("Matrix"),"ErrDimensionMismatch")),d=this.pivot_sign,$send(this.column_count,"times",[],(function $$7(j){var self=null==$$7.$$s?this:$$7.$$s;return null==self.lu&&(self.lu=nil),null==j&&(j=nil),d=$rb_times(d,self.lu["$[]"](j)["$[]"](j))}),{$$arity:1,$$s:this}),d}),0),self.$alias_method("determinant","det"),$def(self,"$solve",(function(b){var nx=nil,m=nil;return $truthy(this["$singular?"]())&&$$("Matrix").$Raise($$$($$("Matrix"),"ErrNotRegular"),"Matrix is singular."),$truthy(b["$is_a?"]($$("Matrix")))?($neqeq(b.$row_count(),this.row_count)&&$$("Matrix").$Raise($$$($$("Matrix"),"ErrDimensionMismatch")),nx=b.$column_count(),m=$send(this.pivots,"map",[],(function(row){return null==row&&(row=nil),b.$row(row).$to_a()}),1),$send(this.column_count,"times",[],(function $$9(k){var self=null==$$9.$$s?this:$$9.$$s;return null==self.column_count&&(self.column_count=nil),null==k&&(k=nil),$send($rb_plus(k,1),"upto",[$rb_minus(self.column_count,1)],(function $$10(i){return null==i&&(i=nil),$send(nx,"times",[],(function $$11(j){var $writer,self=null==$$11.$$s?this:$$11.$$s,$binary_op_recvr_tmp_10=nil;return null==self.lu&&(self.lu=nil),null==j&&(j=nil),$binary_op_recvr_tmp_10=m["$[]"](i),$writer=[j,$rb_minus($binary_op_recvr_tmp_10["$[]"](j),$rb_times(m["$[]"](k)["$[]"](j),self.lu["$[]"](i)["$[]"](k)))],$send($binary_op_recvr_tmp_10,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:null==$$10.$$s?this:$$10.$$s})}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),$send($rb_minus(this.column_count,1),"downto",[0],(function $$12(k){var self=null==$$12.$$s?this:$$12.$$s;return null==k&&(k=nil),$send(nx,"times",[],(function $$13(j){var $writer,self=null==$$13.$$s?this:$$13.$$s;return null==self.lu&&(self.lu=nil),null==j&&(j=nil),$writer=[j,m["$[]"](k)["$[]"](j).$quo(self.lu["$[]"](k)["$[]"](k))],$send(m["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$send(k,"times",[],(function $$14(i){return null==i&&(i=nil),$send(nx,"times",[],(function $$15(j){var $writer,self=null==$$15.$$s?this:$$15.$$s,$binary_op_recvr_tmp_11=nil;return null==self.lu&&(self.lu=nil),null==j&&(j=nil),$binary_op_recvr_tmp_11=m["$[]"](i),$writer=[j,$rb_minus($binary_op_recvr_tmp_11["$[]"](j),$rb_times(m["$[]"](k)["$[]"](j),self.lu["$[]"](i)["$[]"](k)))],$send($binary_op_recvr_tmp_11,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:null==$$14.$$s?this:$$14.$$s})}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),$$("Matrix").$send("new",m,nx)):(b=this.$convert_to_array(b),$neqeq(b.$size(),this.row_count)&&$$("Matrix").$Raise($$$($$("Matrix"),"ErrDimensionMismatch")),m=$send(b,"values_at",$to_a(this.pivots)),$send(this.column_count,"times",[],(function $$16(k){var self=null==$$16.$$s?this:$$16.$$s;return null==self.column_count&&(self.column_count=nil),null==k&&(k=nil),$send($rb_plus(k,1),"upto",[$rb_minus(self.column_count,1)],(function $$17(i){var $writer,self=null==$$17.$$s?this:$$17.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),$writer=[i,$rb_minus(m["$[]"](i),$rb_times(m["$[]"](k),self.lu["$[]"](i)["$[]"](k)))],$send(m,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),$send($rb_minus(this.column_count,1),"downto",[0],(function $$18(k){var self=null==$$18.$$s?this:$$18.$$s,$writer=nil;return null==self.lu&&(self.lu=nil),null==k&&(k=nil),$writer=[k,m["$[]"](k).$quo(self.lu["$[]"](k)["$[]"](k))],$send(m,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(k,"times",[],(function $$19(i){var self=null==$$19.$$s?this:$$19.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),$writer=[i,$rb_minus(m["$[]"](i),$rb_times(m["$[]"](k),self.lu["$[]"](i)["$[]"](k)))],$send(m,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),$$("Vector").$elements(m,!1))}),1),$def(self,"$initialize",(function(a){var lu_col_j=nil;return $truthy(a["$is_a?"]($$("Matrix")))||this.$raise($$("TypeError"),"Expected Matrix but got "+a.$class()),this.lu=a.$to_a(),this.row_count=a.$row_count(),this.column_count=a.$column_count(),this.pivots=$$("Array").$new(this.row_count),$send(this.row_count,"times",[],(function $$20(i){var $writer,self=null==$$20.$$s?this:$$20.$$s;return null==self.pivots&&(self.pivots=nil),null==i&&(i=nil),$writer=[i,i],$send(self.pivots,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),this.pivot_sign=1,lu_col_j=$$("Array").$new(this.row_count),$send(this.column_count,"times",[],(function $$21(j){var self=null==$$21.$$s?this:$$21.$$s,p=nil,k=nil,$writer=nil;return null==self.row_count&&(self.row_count=nil),null==self.column_count&&(self.column_count=nil),null==self.pivots&&(self.pivots=nil),null==self.pivot_sign&&(self.pivot_sign=nil),null==self.lu&&(self.lu=nil),null==j&&(j=nil),$send(self.row_count,"times",[],(function $$22(i){var $writer,self=null==$$22.$$s?this:$$22.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),$writer=[i,self.lu["$[]"](i)["$[]"](j)],$send(lu_col_j,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),$send(self.row_count,"times",[],(function $$23(i){var kmax,self=null==$$23.$$s?this:$$23.$$s,lu_row_i=nil,s=nil,$writer=nil;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),lu_row_i=self.lu["$[]"](i),kmax=[i,j].$min(),s=0,$send(kmax,"times",[],(function(k){return null==k&&(k=nil),s=$rb_plus(s,$rb_times(lu_row_i["$[]"](k),lu_col_j["$[]"](k)))}),1),$writer=[j,($writer=[i,$rb_minus(lu_col_j["$[]"](i),s)],$send(lu_col_j,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send(lu_row_i,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),p=j,$send($rb_plus(j,1),"upto",[$rb_minus(self.row_count,1)],(function(i){return null==i&&(i=nil),$truthy($rb_gt(lu_col_j["$[]"](i).$abs(),lu_col_j["$[]"](p).$abs()))?p=i:nil}),1),$neqeq(p,j)&&($send(self.column_count,"times",[],(function $$26(k){var t,self=null==$$26.$$s?this:$$26.$$s,$writer=nil;return null==self.lu&&(self.lu=nil),null==k&&(k=nil),t=self.lu["$[]"](p)["$[]"](k),$writer=[k,self.lu["$[]"](j)["$[]"](k)],$send(self.lu["$[]"](p),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[k,t],$send(self.lu["$[]"](j),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}),k=self.pivots["$[]"](p),$writer=[p,self.pivots["$[]"](j)],$send(self.pivots,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[j,k],$send(self.pivots,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.pivot_sign=self.pivot_sign["$-@"]()),$truthy($rb_lt(j,self.row_count))&&$neqeq(self.lu["$[]"](j)["$[]"](j),0)?$send($rb_plus(j,1),"upto",[$rb_minus(self.row_count,1)],(function $$27(i){var self=null==$$27.$$s?this:$$27.$$s;return null==self.lu&&(self.lu=nil),null==i&&(i=nil),$writer=[j,self.lu["$[]"](i)["$[]"](j).$quo(self.lu["$[]"](j)["$[]"](j))],$send(self.lu["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}):nil}),{$$arity:1,$$s:this})}),1)}($nesting[0],0,$nesting)}($nesting[0],0,$nesting)},Opal.modules.matrix=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$defs=Opal.defs,$send=Opal.send,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$rb_lt=Opal.rb_lt,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$alias=Opal.alias,$neqeq=Opal.neqeq,$rb_times=Opal.rb_times,$rb_plus=Opal.rb_plus,$def=Opal.def,$rb_ge=Opal.rb_ge,$eqeqeq=Opal.eqeqeq,$const_set=Opal.const_set,$hash2=Opal.hash2,$rb_gt=Opal.rb_gt,$to_ary=Opal.to_ary,$rb_le=Opal.rb_le,$not=Opal.not,$rb_divide=Opal.rb_divide;return Opal.add_stubs("require,extend,def_e2message,def_exception,include,autoload,private_class_method,attr_reader,protected,rows,convert_to_array,map!,size,[],each,==,raise,new,transpose,coerce_to_int,<,to_enum,empty,[]=,-,diagonal,scalar,!=,*,coerce_to_matrix,map,send,to_proc,column_count,concat,row_count,each_with_index,+,empty?,method,first,Raise,combine,class,private,fetch,alias_method,elements,-@,>=,times,collect,new_matrix,===,upto,min,inspect,freeze,>,include?,last,pop,end,exclude_end?,<=,to_a,delete_at,square?,determinant,first_minor,**,build,cofactor,!,inject,with_index,all?,conj,singular?,eql?,hash,column_vector,column,apply_through_coercion,/,inverse,I,abs,quo,identity,loop,zero?,>>,eigensystem,+@,determinant_bareiss,find,warn,hstack,rank,round,vstack,real,imag,row,join,to_s,dup,to_ary,message,is_a?,coerce,length,public_send,kind_of?,respond_to?,__send__,coerce_to,count,independent?,collect2,each2,basis,laplace_expansion,sqrt,abs2,magnitude,acos,inner_product,row_vector"),self.$require("e2mmap.rb"),function($base,$parent_nesting){var self=$module($base,"ExceptionForMatrix"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$extend($$("Exception2MessageMapper")),self.$def_e2message($$("TypeError"),"wrong argument type %s (expected %s)"),self.$def_e2message($$("ArgumentError"),"Wrong # of arguments(%d for %d)"),self.$def_exception("ErrDimensionMismatch","#{self.name} dimension mismatch"),self.$def_exception("ErrNotRegular","Not Regular Matrix"),self.$def_exception("ErrOperationNotDefined","Operation(%s) can\\'t be defined: %s op %s"),self.$def_exception("ErrOperationNotImplemented","Sorry, Operation(%s) not implemented: %s op %s")}($nesting[0],$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Matrix"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.rows=nil,self.$include($$("Enumerable")),self.$include($$("ExceptionForMatrix")),self.$autoload("EigenvalueDecomposition","matrix/eigenvalue_decomposition"),self.$autoload("LUPDecomposition","matrix/lup_decomposition"),self.$private_class_method("new"),self.$attr_reader("rows"),self.$protected("rows"),$defs($$("Matrix"),"$[]",(function($a){var rows,self=this;return rows=Opal.slice.call(arguments),self.$rows(rows,!1)}),-1),$defs($$("Matrix"),"$rows",(function(rows,copy){var size,$ret_or_1;return null==copy&&(copy=!0),rows=this.$convert_to_array(rows,copy),$send(rows,"map!",[],(function $$2(row){return null==row&&(row=nil),(null==$$2.$$s?this:$$2.$$s).$convert_to_array(row,copy)}),{$$arity:1,$$s:this}),size=($truthy($ret_or_1=rows["$[]"](0))?$ret_or_1:[]).$size(),$send(rows,"each",[],(function $$3(row){var self=null==$$3.$$s?this:$$3.$$s;return null==row&&(row=nil),$eqeq(row.$size(),size)?nil:self.$raise($$("ErrDimensionMismatch"),"row size differs ("+row.$size()+" should be "+size+")")}),{$$arity:1,$$s:this}),this.$new(rows,size)}),-2),$defs($$("Matrix"),"$columns",(function(columns){return this.$rows(columns,!1).$transpose()}),1),$defs($$("Matrix"),"$build",(function $$build(row_count,column_count){var rows,$yield=$$build.$$p||nil;return delete $$build.$$p,null==column_count&&(column_count=row_count),row_count=$$("CoercionHelper").$coerce_to_int(row_count),column_count=$$("CoercionHelper").$coerce_to_int(column_count),($truthy($rb_lt(row_count,0))||$truthy($rb_lt(column_count,0)))&&this.$raise($$("ArgumentError")),$yield===nil?this.$to_enum("build",row_count,column_count):(rows=$send($$("Array"),"new",[row_count],(function(i){return null==i&&(i=nil),$send($$("Array"),"new",[column_count],(function(j){return null==j&&(j=nil),Opal.yieldX($yield,[i,j])}),1)}),1),this.$new(rows,column_count))}),-2),$defs($$("Matrix"),"$diagonal",(function($a){var $post_args,values,self=this,size=nil,rows=nil;return $post_args=Opal.slice.call(arguments),size=(values=$post_args).$size(),$eqeq(size,0)?$$("Matrix").$empty():(rows=$send($$("Array"),"new",[size],(function(j){var row,$writer;return null==j&&(j=nil),row=$$("Array").$new(size,0),$writer=[j,values["$[]"](j)],$send(row,"[]=",$to_a($writer)),$rb_minus($writer.length,1),row}),1),self.$new(rows))}),-1),$defs($$("Matrix"),"$scalar",(function(n,value){return $send(this,"diagonal",$to_a($$("Array").$new(n,value)))}),2),$defs($$("Matrix"),"$identity",(function(n){return this.$scalar(n,1)}),1),function(self,$parent_nesting){$alias(self,"unit","identity"),$alias(self,"I","identity")}(Opal.get_singleton_class($$("Matrix"))),$defs($$("Matrix"),"$zero",(function(row_count,column_count){var rows;return null==column_count&&(column_count=row_count),rows=$send($$("Array"),"new",[row_count],(function(){return $$("Array").$new(column_count,0)}),0),this.$new(rows,column_count)}),-2),$defs($$("Matrix"),"$row_vector",(function(row){return row=this.$convert_to_array(row),this.$new([row])}),1),$defs($$("Matrix"),"$column_vector",(function(column){return column=this.$convert_to_array(column),this.$new([column].$transpose(),1)}),1),$defs($$("Matrix"),"$empty",(function(row_count,column_count){return null==row_count&&(row_count=0),null==column_count&&(column_count=0),$neqeq(column_count,0)&&$neqeq(row_count,0)&&this.$raise($$("ArgumentError"),"One size must be 0"),($truthy($rb_lt(column_count,0))||$truthy($rb_lt(row_count,0)))&&this.$raise($$("ArgumentError"),"Negative size"),this.$new($rb_times([[]],row_count),column_count)}),-1),$defs($$("Matrix"),"$vstack",(function(x,$a){var matrices,self=this,result=nil;return matrices=Opal.slice.call(arguments,1),x=$$("CoercionHelper").$coerce_to_matrix(x),result=$send(x.$send("rows"),"map",[],"dup".$to_proc()),$send(matrices,"each",[],(function $$8(m){var self=null==$$8.$$s?this:$$8.$$s;return null==m&&(m=nil),m=$$("CoercionHelper").$coerce_to_matrix(m),$neqeq(m.$column_count(),x.$column_count())&&self.$raise($$("ErrDimensionMismatch"),"The given matrices must have "+x.$column_count()+" columns, but one has "+m.$column_count()),result.$concat(m.$send("rows"))}),{$$arity:1,$$s:self}),self.$new(result,x.$column_count())}),-2),$defs($$("Matrix"),"$hstack",(function(x,$a){var matrices,self=this,result=nil,total_column_count=nil;return matrices=Opal.slice.call(arguments,1),x=$$("CoercionHelper").$coerce_to_matrix(x),result=$send(x.$send("rows"),"map",[],"dup".$to_proc()),total_column_count=x.$column_count(),$send(matrices,"each",[],(function $$9(m){var self=null==$$9.$$s?this:$$9.$$s;return null==m&&(m=nil),m=$$("CoercionHelper").$coerce_to_matrix(m),$neqeq(m.$row_count(),x.$row_count())&&self.$raise($$("ErrDimensionMismatch"),"The given matrices must have "+x.$row_count()+" rows, but one has "+m.$row_count()),$send(result,"each_with_index",[],(function(row,i){return null==row&&(row=nil),null==i&&(i=nil),row.$concat(m.$send("rows")["$[]"](i))}),2),total_column_count=$rb_plus(total_column_count,m.$column_count())}),{$$arity:1,$$s:self}),self.$new(result,total_column_count)}),-2),$defs($$("Matrix"),"$combine",(function $$combine($a){var $post_args,matrices,$yield=$$combine.$$p||nil,self=this,x=nil,rows=nil;return delete $$combine.$$p,$post_args=Opal.slice.call(arguments),matrices=$post_args,$yield===nil?$send(self,"to_enum",["combine"].concat($to_a(matrices))):$truthy(matrices["$empty?"]())?$$("Matrix").$empty():($send(matrices,"map!",[],$$("CoercionHelper").$method("coerce_to_matrix").$to_proc()),x=matrices.$first(),$send(matrices,"each",[],(function(m){return null==m&&(m=nil),$eqeq(x.$row_count(),m.$row_count())&&$eqeq(x.$column_count(),m.$column_count())?nil:$$("Matrix").$Raise($$("ErrDimensionMismatch"))}),1),rows=$send($$("Array"),"new",[x.$row_count()],(function(i){return null==i&&(i=nil),$send($$("Array"),"new",[x.$column_count()],(function(j){return null==j&&(j=nil),Opal.yield1($yield,$send(matrices,"map",[],(function(m){return null==m&&(m=nil),m["$[]"](i,j)}),1))}),1)}),1),self.$new(rows,x.$column_count()))}),-1),$def(self,"$combine",(function $$combine($a){var matrices,block=$$combine.$$p||nil,self=this;return delete $$combine.$$p,matrices=Opal.slice.call(arguments),$send($$("Matrix"),"combine",[self].concat($to_a(matrices)),block.$to_proc())}),-1),$def(self,"$initialize",(function(rows,column_count){return null==column_count&&(column_count=rows["$[]"](0).$size()),this.rows=rows,this.column_count=column_count}),-2),$def(self,"$new_matrix",(function(rows,column_count){return null==column_count&&(column_count=rows["$[]"](0).$size()),this.$class().$send("new",rows,column_count)}),-2),self.$private("new_matrix"),$def(self,"$[]",(function(i,j){try{return $send(this.rows,"fetch",[i],(function(){Opal.ret(nil)}),0)["$[]"](j)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),2),$alias(self,"element","[]"),$alias(self,"component","[]"),$def(self,"$[]=",(function(i,j,v){var $writer;return $writer=[j,v],$send(this.rows["$[]"](i),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),3),$alias(self,"set_element","[]="),$alias(self,"set_component","[]="),self.$private("[]=","set_element","set_component"),$def(self,"$row_count",(function(){return this.rows.$size()}),0),self.$alias_method("row_size","row_count"),self.$attr_reader("column_count"),self.$alias_method("column_size","column_count"),$def(self,"$row",(function $$row(i){try{var block=$$row.$$p||nil;return delete $$row.$$p,block!==nil?($send($send(this.rows,"fetch",[i],(function $$18(){var self=null==$$18.$$s?this:$$18.$$s;Opal.ret(self)}),{$$arity:0,$$s:this}),"each",[],block.$to_proc()),this):$$("Vector").$elements($send(this.rows,"fetch",[i],(function(){Opal.ret(nil)}),0))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),1),$def(self,"$column",(function $$column(j){var $yield=$$column.$$p||nil,col=nil;return delete $$column.$$p,$yield!==nil?($truthy($rb_ge(j,this.$column_count()))||$truthy($rb_lt(j,this.$column_count()["$-@"]()))||$send(this.$row_count(),"times",[],(function $$20(i){var self=null==$$20.$$s?this:$$20.$$s;return null==self.rows&&(self.rows=nil),null==i&&(i=nil),Opal.yield1($yield,self.rows["$[]"](i)["$[]"](j))}),{$$arity:1,$$s:this}),this):$truthy($rb_ge(j,this.$column_count()))||$truthy($rb_lt(j,this.$column_count()["$-@"]()))?nil:(col=$send($$("Array"),"new",[this.$row_count()],(function $$21(i){var self=null==$$21.$$s?this:$$21.$$s;return null==self.rows&&(self.rows=nil),null==i&&(i=nil),self.rows["$[]"](i)["$[]"](j)}),{$$arity:1,$$s:this}),$$("Vector").$elements(col,!1))}),1),$def(self,"$collect",(function $$collect(){var rows,block=$$collect.$$p||nil;return delete $$collect.$$p,block===nil?this.$to_enum("collect"):(rows=$send(this.rows,"collect",[],(function(row){return null==row&&(row=nil),$send(row,"collect",[],block.$to_proc())}),1),this.$new_matrix(rows,this.$column_count()))}),0),$alias(self,"map","collect"),$def(self,"$each",(function $$each(which){try{var $ret_or_1,$yield=$$each.$$p||nil,last=nil,block=nil;return delete $$each.$$p,null==which&&(which="all"),$yield===nil?this.$to_enum("each",which):(last=$rb_minus(this.$column_count(),1),$eqeqeq("all",$ret_or_1=which)?(block=$$("Proc").$new(),$send(this.rows,"each",[],(function(row){return null==row&&(row=nil),$send(row,"each",[],block.$to_proc())}),1)):$eqeqeq("diagonal",$ret_or_1)?$send(this.rows,"each_with_index",[],(function $$24(row,row_index){var self=null==$$24.$$s?this:$$24.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),Opal.yield1($yield,$send(row,"fetch",[row_index],(function $$25(){var self=null==$$25.$$s?this:$$25.$$s;Opal.ret(self)}),{$$arity:0,$$s:self}))}),{$$arity:2,$$s:this}):$eqeqeq("off_diagonal",$ret_or_1)?$send(this.rows,"each_with_index",[],(function $$26(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send((null==$$26.$$s?this:$$26.$$s).$column_count(),"times",[],(function(col_index){return null==col_index&&(col_index=nil),$eqeq(row_index,col_index)?nil:Opal.yield1($yield,row["$[]"](col_index))}),1)}),{$$arity:2,$$s:this}):$eqeqeq("lower",$ret_or_1)?$send(this.rows,"each_with_index",[],(function(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(0,"upto",[[row_index,last].$min()],(function(col_index){return null==col_index&&(col_index=nil),Opal.yield1($yield,row["$[]"](col_index))}),1)}),2):$eqeqeq("strict_lower",$ret_or_1)?$send(this.rows,"each_with_index",[],(function $$30(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send([row_index,(null==$$30.$$s?this:$$30.$$s).$column_count()].$min(),"times",[],(function(col_index){return null==col_index&&(col_index=nil),Opal.yield1($yield,row["$[]"](col_index))}),1)}),{$$arity:2,$$s:this}):$eqeqeq("strict_upper",$ret_or_1)?$send(this.rows,"each_with_index",[],(function(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send($rb_plus(row_index,1),"upto",[last],(function(col_index){return null==col_index&&(col_index=nil),Opal.yield1($yield,row["$[]"](col_index))}),1)}),2):$eqeqeq("upper",$ret_or_1)?$send(this.rows,"each_with_index",[],(function(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(row_index,"upto",[last],(function(col_index){return null==col_index&&(col_index=nil),Opal.yield1($yield,row["$[]"](col_index))}),1)}),2):this.$raise($$("ArgumentError"),"expected "+which.$inspect()+" to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper"),this)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$each_with_index",(function $$each_with_index(which){try{var $ret_or_1,$yield=$$each_with_index.$$p||nil,last=nil;return delete $$each_with_index.$$p,null==which&&(which="all"),$yield===nil?this.$to_enum("each_with_index",which):(last=$rb_minus(this.$column_count(),1),$eqeqeq("all",$ret_or_1=which)?$send(this.rows,"each_with_index",[],(function(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(row,"each_with_index",[],(function(e,col_index){return null==e&&(e=nil),null==col_index&&(col_index=nil),Opal.yieldX($yield,[e,row_index,col_index])}),2)}),2):$eqeqeq("diagonal",$ret_or_1)?$send(this.rows,"each_with_index",[],(function $$38(row,row_index){var self=null==$$38.$$s?this:$$38.$$s;return null==row&&(row=nil),null==row_index&&(row_index=nil),Opal.yieldX($yield,[$send(row,"fetch",[row_index],(function $$39(){var self=null==$$39.$$s?this:$$39.$$s;Opal.ret(self)}),{$$arity:0,$$s:self}),row_index,row_index])}),{$$arity:2,$$s:this}):$eqeqeq("off_diagonal",$ret_or_1)?$send(this.rows,"each_with_index",[],(function $$40(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send((null==$$40.$$s?this:$$40.$$s).$column_count(),"times",[],(function(col_index){return null==col_index&&(col_index=nil),$eqeq(row_index,col_index)?nil:Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}),1)}),{$$arity:2,$$s:this}):$eqeqeq("lower",$ret_or_1)?$send(this.rows,"each_with_index",[],(function(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(0,"upto",[[row_index,last].$min()],(function(col_index){return null==col_index&&(col_index=nil),Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}),1)}),2):$eqeqeq("strict_lower",$ret_or_1)?$send(this.rows,"each_with_index",[],(function $$44(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send([row_index,(null==$$44.$$s?this:$$44.$$s).$column_count()].$min(),"times",[],(function(col_index){return null==col_index&&(col_index=nil),Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}),1)}),{$$arity:2,$$s:this}):$eqeqeq("strict_upper",$ret_or_1)?$send(this.rows,"each_with_index",[],(function(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send($rb_plus(row_index,1),"upto",[last],(function(col_index){return null==col_index&&(col_index=nil),Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}),1)}),2):$eqeqeq("upper",$ret_or_1)?$send(this.rows,"each_with_index",[],(function(row,row_index){return null==row&&(row=nil),null==row_index&&(row_index=nil),$send(row_index,"upto",[last],(function(col_index){return null==col_index&&(col_index=nil),Opal.yieldX($yield,[row["$[]"](col_index),row_index,col_index])}),1)}),2):this.$raise($$("ArgumentError"),"expected "+which.$inspect()+" to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper"),this)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$const_set($nesting[0],"SELECTORS",$hash2(["all","diagonal","off_diagonal","lower","strict_lower","strict_upper","upper"],{all:!0,diagonal:!0,off_diagonal:!0,lower:!0,strict_lower:!0,strict_upper:!0,upper:!0}).$freeze()),$def(self,"$index",(function $$index($a){try{var $post_args,args,$yield=$$index.$$p||nil,self=this,which=nil,value=nil;return delete $$index.$$p,$post_args=Opal.slice.call(arguments),$truthy($rb_gt((args=$post_args).$size(),2))&&self.$raise($$("ArgumentError"),"wrong number of arguments("+args.$size()+" for 0-2)"),which=$eqeq(args.$size(),2)||$truthy($$("SELECTORS")["$include?"](args.$last()))?args.$pop():"all",$yield!==nil||$eqeq(args.$size(),1)?($eqeq(args.$size(),1)?(value=args.$first(),$send(self,"each_with_index",[which],(function(e,row_index,col_index){if(null==e&&(e=nil),null==row_index&&(row_index=nil),null==col_index&&(col_index=nil),!$eqeq(e,value))return nil;Opal.ret([row_index,col_index])}),3)):$send(self,"each_with_index",[which],(function(e,row_index,col_index){if(null==e&&(e=nil),null==row_index&&(row_index=nil),null==col_index&&(col_index=nil),!$truthy(Opal.yield1($yield,e)))return nil;Opal.ret([row_index,col_index])}),3),nil):$send(self,"to_enum",["find_index",which].concat($to_a(args)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),self.$alias_method("find_index","index"),$def(self,"$minor",(function($a){var $post_args,param,$b,self=this,$ret_or_1=nil,row_range=nil,col_range=nil,from_row=nil,to_row=nil,size_row=nil,from_col=nil,to_col=nil,size_col=nil,rows=nil;if($post_args=Opal.slice.call(arguments),$eqeqeq(2,$ret_or_1=(param=$post_args).$size()))row_range=null==($b=$to_ary(param))[0]?nil:$b[0],col_range=null==$b[1]?nil:$b[1],from_row=row_range.$first(),$truthy($rb_lt(from_row,0))&&(from_row=$rb_plus(from_row,self.$row_count())),to_row=row_range.$end(),$truthy($rb_lt(to_row,0))&&(to_row=$rb_plus(to_row,self.$row_count())),$truthy(row_range["$exclude_end?"]())||(to_row=$rb_plus(to_row,1)),size_row=$rb_minus(to_row,from_row),from_col=col_range.$first(),$truthy($rb_lt(from_col,0))&&(from_col=$rb_plus(from_col,self.$column_count())),to_col=col_range.$end(),$truthy($rb_lt(to_col,0))&&(to_col=$rb_plus(to_col,self.$column_count())),$truthy(col_range["$exclude_end?"]())||(to_col=$rb_plus(to_col,1)),size_col=$rb_minus(to_col,from_col);else if($eqeqeq(4,$ret_or_1)){if(from_row=null==($b=$to_ary(param))[0]?nil:$b[0],size_row=null==$b[1]?nil:$b[1],from_col=null==$b[2]?nil:$b[2],size_col=null==$b[3]?nil:$b[3],$truthy($rb_lt(size_row,0))||$truthy($rb_lt(size_col,0)))return nil;$truthy($rb_lt(from_row,0))&&(from_row=$rb_plus(from_row,self.$row_count())),$truthy($rb_lt(from_col,0))&&(from_col=$rb_plus(from_col,self.$column_count()))}else self.$raise($$("ArgumentError"),param.$inspect());return $truthy($rb_gt(from_row,self.$row_count()))||$truthy($rb_gt(from_col,self.$column_count()))||$truthy($rb_lt(from_row,0))||$truthy($rb_lt(from_col,0))?nil:(rows=$send(self.rows["$[]"](from_row,size_row),"collect",[],(function(row){return null==row&&(row=nil),row["$[]"](from_col,size_col)}),1),self.$new_matrix(rows,[$rb_minus(self.$column_count(),from_col),size_col].$min()))}),-1),$def(self,"$first_minor",(function(row,column){var arrays=nil;return $truthy(this["$empty?"]())&&this.$raise($$("RuntimeError"),"first_minor of empty matrix is not defined"),$rb_le(0,row)&&$truthy($rb_lt(row,this.$row_count()))||this.$raise($$("ArgumentError"),"invalid row ("+row.$inspect()+" for 0.."+$rb_minus(this.$row_count(),1)+")"),$rb_le(0,column)&&$truthy($rb_lt(column,this.$column_count()))||this.$raise($$("ArgumentError"),"invalid column ("+column.$inspect()+" for 0.."+$rb_minus(this.$column_count(),1)+")"),(arrays=this.$to_a()).$delete_at(row),$send(arrays,"each",[],(function(array){return null==array&&(array=nil),array.$delete_at(column)}),1),this.$new_matrix(arrays,$rb_minus(this.$column_count(),1))}),2),$def(self,"$cofactor",(function(row,column){var det_of_minor;return $truthy(this["$empty?"]())&&this.$raise($$("RuntimeError"),"cofactor of empty matrix is not defined"),$truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),det_of_minor=this.$first_minor(row,column).$determinant(),$rb_times(det_of_minor,(-1)["$**"]($rb_plus(row,column)))}),2),$def(self,"$adjugate",(function(){return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send($$("Matrix"),"build",[this.$row_count(),this.$column_count()],(function $$54(row,column){return null==row&&(row=nil),null==column&&(column=nil),(null==$$54.$$s?this:$$54.$$s).$cofactor(column,row)}),{$$arity:2,$$s:this})}),0),$def(self,"$laplace_expansion",(function($kwargs){var row,column,$ret_or_1,num=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(row=$kwargs.$$smap.row)&&(row=nil),null==(column=$kwargs.$$smap.column)&&(column=nil),num=$truthy($ret_or_1=row)?$ret_or_1:column,($not(num)||$truthy(row)&&$truthy(column))&&this.$raise($$("ArgumentError"),"exactly one the row or column arguments must be specified"),$truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$truthy(this["$empty?"]())&&this.$raise($$("RuntimeError"),"laplace_expansion of empty matrix is not defined"),$rb_le(0,num)&&$truthy($rb_lt(num,this.$row_count()))||this.$raise($$("ArgumentError"),"invalid num ("+num.$inspect()+" for 0.."+$rb_minus(this.$row_count(),1)+")"),$send(this.$send($truthy(row)?"row":"column",num).$map(),"with_index",[],(function $$55(e,k){return null==e&&(e=nil),null==k&&(k=nil),$rb_times(e,$send(null==$$55.$$s?this:$$55.$$s,"cofactor",$to_a($truthy(row)?[num,k]:[k,num])))}),{$$arity:2,$$s:this}).$inject("+")}),-1),self.$alias_method("cofactor_expansion","laplace_expansion"),$def(self,"$diagonal?",(function(){return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send(this.$each("off_diagonal"),"all?",[],"zero?".$to_proc())}),0),$def(self,"$empty?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$column_count()["$=="](0))?$ret_or_1:this.$row_count()["$=="](0)}),0),$def(self,"$hermitian?",(function(){return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send(this.$each_with_index("upper"),"all?",[],(function $$59(e,row,col){var self=null==$$59.$$s?this:$$59.$$s;return null==e&&(e=nil),null==row&&(row=nil),null==col&&(col=nil),e["$=="](self.$rows()["$[]"](col)["$[]"](row).$conj())}),{$$arity:3,$$s:this})}),0),$def(self,"$lower_triangular?",(function(){return $send(this.$each("strict_upper"),"all?",[],"zero?".$to_proc())}),0),$def(self,"$normal?",(function(){try{return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send(this.$rows(),"each_with_index",[],(function $$62(row_i,i){var self=null==$$62.$$s?this:$$62.$$s;return null==row_i&&(row_i=nil),null==i&&(i=nil),$send(self.$rows(),"each_with_index",[],(function $$63(row_j,j){var s=nil;if(null==row_j&&(row_j=nil),null==j&&(j=nil),s=0,$send((null==$$63.$$s?this:$$63.$$s).$rows(),"each_with_index",[],(function(row_k,k){return null==row_k&&(row_k=nil),null==k&&(k=nil),s=$rb_plus(s,$rb_minus($rb_times(row_i["$[]"](k),row_j["$[]"](k).$conj()),$rb_times(row_k["$[]"](i).$conj(),row_k["$[]"](j))))}),2),$eqeq(s,0))return nil;Opal.ret(!1)}),{$$arity:2,$$s:self})}),{$$arity:2,$$s:this}),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$orthogonal?",(function(){try{return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send(this.$rows(),"each_with_index",[],(function $$66(row,i){var self=null==$$66.$$s?this:$$66.$$s;return null==row&&(row=nil),null==i&&(i=nil),$send(self.$column_count(),"times",[],(function $$67(j){var self=null==$$67.$$s?this:$$67.$$s,s=nil;if(null==j&&(j=nil),s=0,$send(self.$row_count(),"times",[],(function $$68(k){var self=null==$$68.$$s?this:$$68.$$s;return null==k&&(k=nil),s=$rb_plus(s,$rb_times(row["$[]"](k),self.$rows()["$[]"](k)["$[]"](j)))}),{$$arity:1,$$s:self}),$eqeq(s,$eqeq(i,j)?1:0))return nil;Opal.ret(!1)}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:this}),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$permutation?",(function(){try{var cols=nil;return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),cols=$$("Array").$new(this.$column_count()),$send(this.$rows(),"each_with_index",[],(function(row,i){var found=nil;if(null==row&&(row=nil),null==i&&(i=nil),found=!1,$send(row,"each_with_index",[],(function(e,j){var $writer=nil;return null==e&&(e=nil),null==j&&(j=nil),$eqeq(e,1)?(($truthy(found)||$truthy(cols["$[]"](j)))&&Opal.ret(!1),$send(cols,"[]=",$to_a($writer=[j,!0])),found=$writer[$rb_minus($writer.length,1)]):$neqeq(e,0)?void Opal.ret(!1):nil}),2),$truthy(found))return nil;Opal.ret(!1)}),2),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$real?",(function(){return $send(this,"all?",[],"real?".$to_proc())}),0),$def(self,"$regular?",(function(){return this["$singular?"]()["$!"]()}),0),$def(self,"$singular?",(function(){return this.$determinant()["$=="](0)}),0),$def(self,"$square?",(function(){return this.$column_count()["$=="](this.$row_count())}),0),$def(self,"$symmetric?",(function(){try{return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send(this,"each_with_index",["strict_upper"],(function $$77(e,row,col){if(null==e&&(e=nil),null==row&&(row=nil),null==col&&(col=nil),!$neqeq(e,(null==$$77.$$s?this:$$77.$$s).$rows()["$[]"](col)["$[]"](row)))return nil;Opal.ret(!1)}),{$$arity:3,$$s:this}),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$antisymmetric?",(function(){try{return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send(this,"each_with_index",["upper"],(function $$79(e,row,col){if(null==e&&(e=nil),null==row&&(row=nil),null==col&&(col=nil),$eqeq(e,(null==$$79.$$s?this:$$79.$$s).$rows()["$[]"](col)["$[]"](row)["$-@"]()))return nil;Opal.ret(!1)}),{$$arity:3,$$s:this}),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$unitary?",(function(){try{return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send(this.$rows(),"each_with_index",[],(function $$81(row,i){var self=null==$$81.$$s?this:$$81.$$s;return null==row&&(row=nil),null==i&&(i=nil),$send(self.$column_count(),"times",[],(function $$82(j){var self=null==$$82.$$s?this:$$82.$$s,s=nil;if(null==j&&(j=nil),s=0,$send(self.$row_count(),"times",[],(function $$83(k){var self=null==$$83.$$s?this:$$83.$$s;return null==k&&(k=nil),s=$rb_plus(s,$rb_times(row["$[]"](k).$conj(),self.$rows()["$[]"](k)["$[]"](j)))}),{$$arity:1,$$s:self}),$eqeq(s,$eqeq(i,j)?1:0))return nil;Opal.ret(!1)}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:this}),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$upper_triangular?",(function(){return $send(this.$each("strict_lower"),"all?",[],"zero?".$to_proc())}),0),$def(self,"$zero?",(function(){return $send(this,"all?",[],"zero?".$to_proc())}),0),$def(self,"$==",(function(other){return!(!$eqeqeq($$("Matrix"),other)||!$eqeq(this.$column_count(),other.$column_count()))&&this.$rows()["$=="](other.$rows())}),1),$def(self,"$eql?",(function(other){return!(!$eqeqeq($$("Matrix"),other)||!$eqeq(this.$column_count(),other.$column_count()))&&this.$rows()["$eql?"](other.$rows())}),1),$def(self,"$clone",(function(){return this.$new_matrix($send(this.rows,"map",[],"dup".$to_proc()),this.$column_count())}),0),$def(self,"$hash",(function(){return this.rows.$hash()}),0),$def(self,"$*",(function(m){var $ret_or_1,rows=nil;return $eqeqeq($$("Numeric"),$ret_or_1=m)?(rows=$send(this.rows,"collect",[],(function(row){return null==row&&(row=nil),$send(row,"collect",[],(function(e){return null==e&&(e=nil),$rb_times(e,m)}),1)}),1),this.$new_matrix(rows,this.$column_count())):$eqeqeq($$("Vector"),$ret_or_1)?(m=this.$class().$column_vector(m),$rb_times(this,m).$column(0)):$eqeqeq($$("Matrix"),$ret_or_1)?($neqeq(this.$column_count(),m.$row_count())&&$$("Matrix").$Raise($$("ErrDimensionMismatch")),rows=$send($$("Array"),"new",[this.$row_count()],(function $$91(i){var self=null==$$91.$$s?this:$$91.$$s;return null==i&&(i=nil),$send($$("Array"),"new",[m.$column_count()],(function $$92(j){var self=null==$$92.$$s?this:$$92.$$s;return null==j&&(j=nil),$send(Opal.Range.$new(0,self.$column_count(),!0),"inject",[0],(function $$93(vij,k){return null==vij&&(vij=nil),null==k&&(k=nil),$rb_plus(vij,$rb_times((null==$$93.$$s?this:$$93.$$s)["$[]"](i,k),m["$[]"](k,j)))}),{$$arity:2,$$s:self})}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),this.$new_matrix(rows,m.$column_count())):this.$apply_through_coercion(m,"*")}),1),$def(self,"$+",(function(m){var $ret_or_1,rows;if($eqeqeq($$("Numeric"),$ret_or_1=m))$$("Matrix").$Raise($$("ErrOperationNotDefined"),"+",this.$class(),m.$class());else if($eqeqeq($$("Vector"),$ret_or_1))m=this.$class().$column_vector(m);else if(!$eqeqeq($$("Matrix"),$ret_or_1))return this.$apply_through_coercion(m,"+");return $eqeq(this.$row_count(),m.$row_count())&&$eqeq(this.$column_count(),m.$column_count())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),rows=$send($$("Array"),"new",[this.$row_count()],(function $$95(i){var self=null==$$95.$$s?this:$$95.$$s;return null==i&&(i=nil),$send($$("Array"),"new",[self.$column_count()],(function $$96(j){return null==j&&(j=nil),$rb_plus((null==$$96.$$s?this:$$96.$$s)["$[]"](i,j),m["$[]"](i,j))}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),this.$new_matrix(rows,this.$column_count())}),1),$def(self,"$-",(function(m){var $ret_or_1,rows;if($eqeqeq($$("Numeric"),$ret_or_1=m))$$("Matrix").$Raise($$("ErrOperationNotDefined"),"-",this.$class(),m.$class());else if($eqeqeq($$("Vector"),$ret_or_1))m=this.$class().$column_vector(m);else if(!$eqeqeq($$("Matrix"),$ret_or_1))return this.$apply_through_coercion(m,"-");return $eqeq(this.$row_count(),m.$row_count())&&$eqeq(this.$column_count(),m.$column_count())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),rows=$send($$("Array"),"new",[this.$row_count()],(function $$98(i){var self=null==$$98.$$s?this:$$98.$$s;return null==i&&(i=nil),$send($$("Array"),"new",[self.$column_count()],(function $$99(j){return null==j&&(j=nil),$rb_minus((null==$$99.$$s?this:$$99.$$s)["$[]"](i,j),m["$[]"](i,j))}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),this.$new_matrix(rows,this.$column_count())}),1),$def(self,"$/",(function(other){var $ret_or_1,rows=nil;return $eqeqeq($$("Numeric"),$ret_or_1=other)?(rows=$send(this.rows,"collect",[],(function(row){return null==row&&(row=nil),$send(row,"collect",[],(function(e){return null==e&&(e=nil),$rb_divide(e,other)}),1)}),1),this.$new_matrix(rows,this.$column_count())):$eqeqeq($$("Matrix"),$ret_or_1)?$rb_times(this,other.$inverse()):this.$apply_through_coercion(other,"/")}),1),$def(self,"$hadamard_product",(function(m){return $send(this,"combine",[m],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),$rb_times(a,b)}),2)}),1),self.$alias_method("entrywise_product","hadamard_product"),$def(self,"$inverse",(function(){return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),this.$class().$I(this.$row_count()).$send("inverse_from",this)}),0),$alias(self,"inv","inverse"),$def(self,"$inverse_from",(function(src){var last,a=nil;return last=$rb_minus(this.$row_count(),1),a=src.$to_a(),$send(0,"upto",[last],(function $$104(k){var $a,self=null==$$104.$$s?this:$$104.$$s,i=nil,akk=nil;return null==self.rows&&(self.rows=nil),null==k&&(k=nil),i=k,akk=a["$[]"](k)["$[]"](k).$abs(),$send($rb_plus(k,1),"upto",[last],(function(j){var v;return null==j&&(j=nil),v=a["$[]"](j)["$[]"](k).$abs(),$truthy($rb_gt(v,akk))?(i=j,akk=v):nil}),1),$eqeq(akk,0)&&$$("Matrix").$Raise($$("ErrNotRegular")),$neqeq(i,k)&&($a=[a["$[]"](k),a["$[]"](i)],a["$[]="](i,$a[0]),a["$[]="](k,$a[1]),$a=[self.rows["$[]"](k),self.rows["$[]"](i)],self.rows["$[]="](i,$a[0]),self.rows["$[]="](k,$a[1])),akk=a["$[]"](k)["$[]"](k),$send(0,"upto",[last],(function $$106(ii){var q,self=null==$$106.$$s?this:$$106.$$s,$writer=nil;return null==ii&&(ii=nil),$eqeq(ii,k)?nil:(q=a["$[]"](ii)["$[]"](k).$quo(akk),$writer=[k,0],$send(a["$[]"](ii),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send($rb_plus(k,1),"upto",[last],(function(j){var $binary_op_recvr_tmp_1=nil;return null==j&&(j=nil),$binary_op_recvr_tmp_1=a["$[]"](ii),$writer=[j,$rb_minus($binary_op_recvr_tmp_1["$[]"](j),$rb_times(a["$[]"](k)["$[]"](j),q))],$send($binary_op_recvr_tmp_1,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$send(0,"upto",[last],(function $$108(j){var self=null==$$108.$$s?this:$$108.$$s,$binary_op_recvr_tmp_2=nil;return null==self.rows&&(self.rows=nil),null==j&&(j=nil),$binary_op_recvr_tmp_2=self.rows["$[]"](ii),$writer=[j,$rb_minus($binary_op_recvr_tmp_2["$[]"](j),$rb_times(self.rows["$[]"](k)["$[]"](j),q))],$send($binary_op_recvr_tmp_2,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self}))}),{$$arity:1,$$s:self}),$send($rb_plus(k,1),"upto",[last],(function(j){var $writer;return null==j&&(j=nil),$writer=[j,a["$[]"](k)["$[]"](j).$quo(akk)],$send(a["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$send(0,"upto",[last],(function $$110(j){var $writer,self=null==$$110.$$s?this:$$110.$$s;return null==self.rows&&(self.rows=nil),null==j&&(j=nil),$writer=[j,self.rows["$[]"](k)["$[]"](j).$quo(akk)],$send(self.rows["$[]"](k),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),this}),1),self.$private("inverse_from"),$def(self,"$**",(function(other){try{var $a,$b,$ret_or_1,x=nil,z=nil,v=nil,d=nil,v_inv=nil;if($eqeqeq($$("Integer"),$ret_or_1=other)){if(x=this,$truthy($rb_le(other,0))){if(x=this.$inverse(),$eqeq(other,0))return this.$class().$identity(this.$column_count());other=other["$-@"]()}return z=nil,$send(this,"loop",[],(function(){return $eqeq(other["$[]"](0),1)&&(z=$truthy(z)?$rb_times(z,x):x),$truthy((other=other["$>>"](1))["$zero?"]())&&Opal.ret(z),x=$rb_times(x,x)}),0)}return $eqeqeq($$("Numeric"),$ret_or_1)?($b=this.$eigensystem(),v=null==($a=$to_ary($b))[0]?nil:$a[0],d=null==$a[1]?nil:$a[1],v_inv=null==$a[2]?nil:$a[2],$rb_times($rb_times(v,$send(this.$class(),"diagonal",$to_a($send(d.$each("diagonal"),"map",[],(function(e){return null==e&&(e=nil),e["$**"](other)}),1)))),v_inv)):$$("Matrix").$Raise($$("ErrOperationNotDefined"),"**",this.$class(),other.$class())}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),1),$def(self,"$+@",(function(){return this}),0),$def(self,"$-@",(function(){return $send(this,"collect",[],(function(e){return null==e&&(e=nil),e["$-@"]()}),1)}),0),$def(self,"$determinant",(function(){var $a,$ret_or_1,m=nil,m0=nil,m1=nil,m2=nil,m3=nil;return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),m=this.rows,$eqeqeq(0,$ret_or_1=this.$row_count())?1:$eqeqeq(1,$ret_or_1)?m["$[]"](0)["$[]"](0)["$+@"]():$eqeqeq(2,$ret_or_1)?$rb_minus($rb_times(m["$[]"](0)["$[]"](0)["$+@"](),m["$[]"](1)["$[]"](1)),$rb_times(m["$[]"](0)["$[]"](1),m["$[]"](1)["$[]"](0))):$eqeqeq(3,$ret_or_1)?(m0=null==($a=$to_ary(m))[0]?nil:$a[0],m1=null==$a[1]?nil:$a[1],m2=null==$a[2]?nil:$a[2],$rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_times($rb_times(m0["$[]"](0)["$+@"](),m1["$[]"](1)),m2["$[]"](2)),$rb_times($rb_times(m0["$[]"](0),m1["$[]"](2)),m2["$[]"](1))),$rb_times($rb_times(m0["$[]"](1),m1["$[]"](0)),m2["$[]"](2))),$rb_times($rb_times(m0["$[]"](1),m1["$[]"](2)),m2["$[]"](0))),$rb_times($rb_times(m0["$[]"](2),m1["$[]"](0)),m2["$[]"](1))),$rb_times($rb_times(m0["$[]"](2),m1["$[]"](1)),m2["$[]"](0)))):$eqeqeq(4,$ret_or_1)?(m0=null==($a=$to_ary(m))[0]?nil:$a[0],m1=null==$a[1]?nil:$a[1],m2=null==$a[2]?nil:$a[2],m3=null==$a[3]?nil:$a[3],$rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_plus($rb_plus($rb_minus($rb_minus($rb_times($rb_times($rb_times(m0["$[]"](0)["$+@"](),m1["$[]"](1)),m2["$[]"](2)),m3["$[]"](3)),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](1)),m2["$[]"](3)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](2)),m2["$[]"](1)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](2)),m2["$[]"](3)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](3)),m2["$[]"](1)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](0),m1["$[]"](3)),m2["$[]"](2)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](0)),m2["$[]"](2)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](0)),m2["$[]"](3)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](2)),m2["$[]"](0)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](2)),m2["$[]"](3)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](3)),m2["$[]"](0)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](1),m1["$[]"](3)),m2["$[]"](2)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](0)),m2["$[]"](1)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](0)),m2["$[]"](3)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](1)),m2["$[]"](0)),m3["$[]"](3))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](1)),m2["$[]"](3)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](3)),m2["$[]"](0)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](2),m1["$[]"](3)),m2["$[]"](1)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](0)),m2["$[]"](1)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](0)),m2["$[]"](2)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](1)),m2["$[]"](0)),m3["$[]"](2))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](1)),m2["$[]"](2)),m3["$[]"](0))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](2)),m2["$[]"](0)),m3["$[]"](1))),$rb_times($rb_times($rb_times(m0["$[]"](3),m1["$[]"](2)),m2["$[]"](1)),m3["$[]"](0)))):this.$determinant_bareiss()}),0),self.$alias_method("det","determinant"),$def(self,"$determinant_bareiss",(function(){try{var size,last,no_pivot,a=nil,sign=nil,pivot=nil;return size=this.$row_count(),last=$rb_minus(size,1),a=this.$to_a(),no_pivot=$send($$("Proc"),"new",[],(function(){Opal.ret(0)}),0),sign=1,pivot=1,$send(size,"times",[],(function(k){var $a,previous_pivot,switch$=nil;return null==k&&(k=nil),previous_pivot=pivot,$eqeq(pivot=a["$[]"](k)["$[]"](k),0)&&(switch$=$send(Opal.Range.$new($rb_plus(k,1),size,!0),"find",[no_pivot],(function(row){return null==row&&(row=nil),a["$[]"](row)["$[]"](k)["$!="](0)}),1),$a=[a["$[]"](k),a["$[]"](switch$)],a["$[]="](switch$,$a[0]),a["$[]="](k,$a[1]),pivot=a["$[]"](k)["$[]"](k),sign=sign["$-@"]()),$send($rb_plus(k,1),"upto",[last],(function(i){var ai=nil;return null==i&&(i=nil),ai=a["$[]"](i),$send($rb_plus(k,1),"upto",[last],(function(j){var $writer;return null==j&&(j=nil),$writer=[j,$rb_divide($rb_minus($rb_times(pivot,ai["$[]"](j)),$rb_times(ai["$[]"](k),a["$[]"](k)["$[]"](j))),previous_pivot)],$send(ai,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1)}),1)}),1),$rb_times(sign,pivot)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),self.$private("determinant_bareiss"),$def(self,"$determinant_e",(function(){return this.$warn("Matrix#determinant_e is deprecated; use #determinant",$hash2(["uplevel"],{uplevel:1})),this.$determinant()}),0),$alias(self,"det_e","determinant_e"),$def(self,"$hstack",(function($a){var matrices,self=this;return matrices=Opal.slice.call(arguments),$send(self.$class(),"hstack",[self].concat($to_a(matrices)))}),-1),$def(self,"$rank",(function(){var last_column,last_row,a=nil,pivot_row=nil,previous_pivot=nil;return a=this.$to_a(),last_column=$rb_minus(this.$column_count(),1),last_row=$rb_minus(this.$row_count(),1),pivot_row=0,previous_pivot=1,$send(0,"upto",[last_column],(function(k){var $a,switch_row,pivot=nil;return null==k&&(k=nil),switch_row=$send(Opal.Range.$new(pivot_row,last_row,!1),"find",[],(function(row){return null==row&&(row=nil),a["$[]"](row)["$[]"](k)["$!="](0)}),1),$truthy(switch_row)?($eqeq(pivot_row,switch_row)||($a=[a["$[]"](pivot_row),a["$[]"](switch_row)],a["$[]="](switch_row,$a[0]),a["$[]="](pivot_row,$a[1])),pivot=a["$[]"](pivot_row)["$[]"](k),$send($rb_plus(pivot_row,1),"upto",[last_row],(function(i){var ai=nil;return null==i&&(i=nil),ai=a["$[]"](i),$send($rb_plus(k,1),"upto",[last_column],(function(j){var $writer;return null==j&&(j=nil),$writer=[j,$rb_divide($rb_minus($rb_times(pivot,ai["$[]"](j)),$rb_times(ai["$[]"](k),a["$[]"](pivot_row)["$[]"](j))),previous_pivot)],$send(ai,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1)}),1),pivot_row=$rb_plus(pivot_row,1),previous_pivot=pivot):nil}),1),pivot_row}),0),$def(self,"$rank_e",(function(){return this.$warn("Matrix#rank_e is deprecated; use #rank",$hash2(["uplevel"],{uplevel:1})),this.$rank()}),0),$def(self,"$round",(function(ndigits){return null==ndigits&&(ndigits=0),$send(this,"map",[],(function(e){return null==e&&(e=nil),e.$round(ndigits)}),1)}),-1),$def(self,"$trace",(function(){return $truthy(this["$square?"]())||$$("Matrix").$Raise($$("ErrDimensionMismatch")),$send(Opal.Range.$new(0,this.$column_count(),!0),"inject",[0],(function $$127(tr,i){var self=null==$$127.$$s?this:$$127.$$s;return null==self.rows&&(self.rows=nil),null==tr&&(tr=nil),null==i&&(i=nil),$rb_plus(tr,self.rows["$[]"](i)["$[]"](i))}),{$$arity:2,$$s:this})}),0),$alias(self,"tr","trace"),$def(self,"$transpose",(function(){return $truthy(this.$row_count()["$zero?"]())?this.$class().$empty(this.$column_count(),0):this.$new_matrix(this.rows.$transpose(),this.$row_count())}),0),$alias(self,"t","transpose"),$def(self,"$vstack",(function($a){var matrices,self=this;return matrices=Opal.slice.call(arguments),$send(self.$class(),"vstack",[self].concat($to_a(matrices)))}),-1),$def(self,"$eigensystem",(function(){return $$("EigenvalueDecomposition").$new(this)}),0),$alias(self,"eigen","eigensystem"),$def(self,"$lup",(function(){return $$("LUPDecomposition").$new(this)}),0),$alias(self,"lup_decomposition","lup"),$def(self,"$conjugate",(function(){return $send(this,"collect",[],"conjugate".$to_proc())}),0),$alias(self,"conj","conjugate"),$def(self,"$imaginary",(function(){return $send(this,"collect",[],"imaginary".$to_proc())}),0),$alias(self,"imag","imaginary"),$def(self,"$real",(function(){return $send(this,"collect",[],"real".$to_proc())}),0),$def(self,"$rect",(function(){return[this.$real(),this.$imag()]}),0),$alias(self,"rectangular","rect"),$def(self,"$coerce",(function(other){return $eqeqeq($$("Numeric"),other)?[$$("Scalar").$new(other),this]:this.$raise($$("TypeError"),this.$class()+" can't be coerced into "+other.$class())}),1),$def(self,"$row_vectors",(function(){return $send($$("Array"),"new",[this.$row_count()],(function $$128(i){return null==i&&(i=nil),(null==$$128.$$s?this:$$128.$$s).$row(i)}),{$$arity:1,$$s:this})}),0),$def(self,"$column_vectors",(function(){return $send($$("Array"),"new",[this.$column_count()],(function $$129(i){return null==i&&(i=nil),(null==$$129.$$s?this:$$129.$$s).$column(i)}),{$$arity:1,$$s:this})}),0),$def(self,"$to_matrix",(function(){return this}),0),$def(self,"$to_a",(function(){return $send(this.rows,"collect",[],"dup".$to_proc())}),0),$def(self,"$elements_to_f",(function(){return this.$warn("Matrix#elements_to_f is deprecated, use map(&:to_f)",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_f".$to_proc())}),0),$def(self,"$elements_to_i",(function(){return this.$warn("Matrix#elements_to_i is deprecated, use map(&:to_i)",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_i".$to_proc())}),0),$def(self,"$elements_to_r",(function(){return this.$warn("Matrix#elements_to_r is deprecated, use map(&:to_r)",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_r".$to_proc())}),0),$def(self,"$to_s",(function(){return $truthy(this["$empty?"]())?this.$class()+".empty("+this.$row_count()+", "+this.$column_count()+")":$rb_plus($rb_plus(this.$class()+"[",$send(this.rows,"collect",[],(function(row){return null==row&&(row=nil),$rb_plus($rb_plus("[",$send(row,"collect",[],(function(e){return null==e&&(e=nil),e.$to_s()}),1).$join(", ")),"]")}),1).$join(", ")),"]")}),0),$def(self,"$inspect",(function(){return $truthy(this["$empty?"]())?this.$class()+".empty("+this.$row_count()+", "+this.$column_count()+")":""+this.$class()+this.rows.$inspect()}),0),function($base,$parent_nesting){var self=$module($base,"ConversionHelper"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$convert_to_array",(function(obj,copy){var $ret_or_1,converted=nil,e=nil;if(null==copy&&(copy=!1),$eqeqeq($$("Array"),$ret_or_1=obj))return $truthy(copy)?obj.$dup():obj;if($eqeqeq($$("Vector"),$ret_or_1))return obj.$to_a();try{converted=obj.$to_ary()}catch($err){if(!Opal.rescue($err,[$$("Exception")]))throw $err;e=$err;try{this.$raise($$("TypeError"),"can't convert "+obj.$class()+" into an Array ("+e.$message()+")")}finally{Opal.pop_exception()}}return $truthy(converted["$is_a?"]($$("Array")))||this.$raise($$("TypeError"),obj.$class()+"#to_ary should return an Array"),converted}),-2),self.$private("convert_to_array")}($nesting[0],$nesting),self.$extend($$("ConversionHelper")),function($base,$parent_nesting){var self=$module($base,"CoercionHelper"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$apply_through_coercion",(function(obj,oper){var coercion=nil;try{return coercion=obj.$coerce(this),$truthy(coercion["$is_a?"]($$("Array")))&&$eqeq(coercion.$length(),2)||this.$raise($$("TypeError")),coercion["$[]"](0).$public_send(oper,coercion["$[]"](1))}catch($err){if(!Opal.rescue($err,[$$("StandardError")]))throw $err;try{return this.$raise($$("TypeError"),obj.$inspect()+" can't be coerced into "+this.$class())}finally{Opal.pop_exception()}}}),2),self.$private("apply_through_coercion"),$defs(self,"$coerce_to",(function(obj,cls,meth){var ret=nil,e=nil;if($truthy(obj["$kind_of?"](cls)))return obj;$truthy(obj["$respond_to?"](meth))||this.$raise($$("TypeError"),"Expected a "+cls+" but got a "+obj.$class());try{ret=obj.$__send__(meth)}catch($err){if(!Opal.rescue($err,[$$("Exception")]))throw $err;e=$err;try{this.$raise($$("TypeError"),"Coercion error: "+obj.$inspect()+"."+meth+" => "+cls+" failed:\n("+e.$message()+")")}finally{Opal.pop_exception()}}return $truthy(ret["$kind_of?"](cls))||this.$raise($$("TypeError"),"Coercion error: obj."+meth+" did NOT return a "+cls+" (was "+ret.$class()+")"),ret}),3),$defs(self,"$coerce_to_int",(function(obj){return this.$coerce_to(obj,$$("Integer"),"to_int")}),1),$defs(self,"$coerce_to_matrix",(function(obj){return this.$coerce_to(obj,$$("Matrix"),"to_matrix")}),1)}($nesting[0],$nesting),self.$include($$("CoercionHelper")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Scalar"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.value=nil,self.$include($$("ExceptionForMatrix")),self.$include($$("CoercionHelper")),$def(self,"$initialize",(function(value){return this.value=value}),1),$def(self,"$+",(function(other){var $ret_or_1;return $eqeqeq($$("Numeric"),$ret_or_1=other)?$$("Scalar").$new($rb_plus(this.value,other)):$eqeqeq($$("Vector"),$ret_or_1)||$eqeqeq($$("Matrix"),$ret_or_1)?$$("Scalar").$Raise($$("ErrOperationNotDefined"),"+",this.value.$class(),other.$class()):this.$apply_through_coercion(other,"+")}),1),$def(self,"$-",(function(other){var $ret_or_1;return $eqeqeq($$("Numeric"),$ret_or_1=other)?$$("Scalar").$new($rb_minus(this.value,other)):$eqeqeq($$("Vector"),$ret_or_1)||$eqeqeq($$("Matrix"),$ret_or_1)?$$("Scalar").$Raise($$("ErrOperationNotDefined"),"-",this.value.$class(),other.$class()):this.$apply_through_coercion(other,"-")}),1),$def(self,"$*",(function(other){var $ret_or_1;return $eqeqeq($$("Numeric"),$ret_or_1=other)?$$("Scalar").$new($rb_times(this.value,other)):$eqeqeq($$("Vector"),$ret_or_1)||$eqeqeq($$("Matrix"),$ret_or_1)?$send(other,"collect",[],(function $$135(e){var self=null==$$135.$$s?this:$$135.$$s;return null==self.value&&(self.value=nil),null==e&&(e=nil),$rb_times(self.value,e)}),{$$arity:1,$$s:this}):this.$apply_through_coercion(other,"*")}),1),$def(self,"$/",(function(other){var $ret_or_1;return $eqeqeq($$("Numeric"),$ret_or_1=other)?$$("Scalar").$new($rb_divide(this.value,other)):$eqeqeq($$("Vector"),$ret_or_1)?$$("Scalar").$Raise($$("ErrOperationNotDefined"),"/",this.value.$class(),other.$class()):$eqeqeq($$("Matrix"),$ret_or_1)?$rb_times(this,other.$inverse()):this.$apply_through_coercion(other,"/")}),1),$def(self,"$**",(function(other){var $ret_or_1;return $eqeqeq($$("Numeric"),$ret_or_1=other)?$$("Scalar").$new(this.value["$**"](other)):$eqeqeq($$("Vector"),$ret_or_1)?$$("Scalar").$Raise($$("ErrOperationNotDefined"),"**",this.value.$class(),other.$class()):$eqeqeq($$("Matrix"),$ret_or_1)?$$("Scalar").$Raise($$("ErrOperationNotImplemented"),"**",this.value.$class(),other.$class()):this.$apply_through_coercion(other,"**")}),1)}($nesting[0],$$("Numeric"),$nesting)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Vector"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.elements=nil,self.$include($$("ExceptionForMatrix")),self.$include($$("Enumerable")),self.$include($$$($$("Matrix"),"CoercionHelper")),self.$extend($$$($$("Matrix"),"ConversionHelper")),self.$private_class_method("new"),self.$attr_reader("elements"),self.$protected("elements"),$defs($$("Vector"),"$[]",(function($a){var array,self=this;return array=Opal.slice.call(arguments),self.$new(self.$convert_to_array(array,!1))}),-1),$defs($$("Vector"),"$elements",(function(array,copy){return null==copy&&(copy=!0),this.$new(this.$convert_to_array(array,copy))}),-2),$defs($$("Vector"),"$basis",(function($kwargs){var size,index,array,$writer;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call($kwargs.$$smap,"size"))throw Opal.ArgumentError.$new("missing keyword: size");if(size=$kwargs.$$smap.size,!Opal.hasOwnProperty.call($kwargs.$$smap,"index"))throw Opal.ArgumentError.$new("missing keyword: index");return index=$kwargs.$$smap.index,$truthy($rb_lt(size,1))&&this.$raise($$("ArgumentError"),"invalid size ("+size+" for 1..)"),$rb_le(0,index)&&$truthy($rb_lt(index,size))||this.$raise($$("ArgumentError"),"invalid index ("+index+" for 0..."+size+")"),array=$$("Array").$new(size,0),$send(array,"[]=",$to_a($writer=[index,1])),$rb_minus($writer.length,1),this.$new(this.$convert_to_array(array,!1))}),1),$defs($$("Vector"),"$zero",(function(size){var array;return $truthy($rb_lt(size,0))&&this.$raise($$("ArgumentError"),"invalid size ("+size+" for 0..)"),array=$$("Array").$new(size,0),this.$new(this.$convert_to_array(array,!1))}),1),$def(self,"$initialize",(function(array){return this.elements=array}),1),$def(self,"$[]",(function(i){return this.elements["$[]"](i)}),1),$alias(self,"element","[]"),$alias(self,"component","[]"),$def(self,"$[]=",(function(i,v){var $writer;return $writer=[i,v],$send(this.elements,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$alias(self,"set_element","[]="),$alias(self,"set_component","[]="),self.$private("[]=","set_element","set_component"),$def(self,"$round",(function(ndigits){return null==ndigits&&(ndigits=0),$send(this,"map",[],(function(e){return null==e&&(e=nil),e.$round(ndigits)}),1)}),-1),$def(self,"$size",(function(){return this.elements.$size()}),0),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;return delete $$each.$$p,block===nil?this.$to_enum("each"):($send(this.elements,"each",[],block.$to_proc()),this)}),0),$def(self,"$each2",(function $$each2(v){var $yield=$$each2.$$p||nil;return delete $$each2.$$p,$truthy(v["$kind_of?"]($$("Integer")))&&this.$raise($$("TypeError"),"Integer is not like Vector"),$neqeq(this.$size(),v.$size())&&$$("Vector").$Raise($$("ErrDimensionMismatch")),$yield===nil?this.$to_enum("each2",v):($send(this.$size(),"times",[],(function $$142(i){var self=null==$$142.$$s?this:$$142.$$s;return null==self.elements&&(self.elements=nil),null==i&&(i=nil),Opal.yieldX($yield,[self.elements["$[]"](i),v["$[]"](i)])}),{$$arity:1,$$s:this}),this)}),1),$def(self,"$collect2",(function $$collect2(v){var $yield=$$collect2.$$p||nil;return delete $$collect2.$$p,$truthy(v["$kind_of?"]($$("Integer")))&&this.$raise($$("TypeError"),"Integer is not like Vector"),$neqeq(this.$size(),v.$size())&&$$("Vector").$Raise($$("ErrDimensionMismatch")),$yield===nil?this.$to_enum("collect2",v):$send($$("Array"),"new",[this.$size()],(function $$143(i){var self=null==$$143.$$s?this:$$143.$$s;return null==self.elements&&(self.elements=nil),null==i&&(i=nil),Opal.yieldX($yield,[self.elements["$[]"](i),v["$[]"](i)])}),{$$arity:1,$$s:this})}),1),$defs($$("Vector"),"$independent?",(function($a){var $post_args,vs,self=this;return $post_args=Opal.slice.call(arguments),$send(vs=$post_args,"each",[],(function $$145(v){var self=null==$$145.$$s?this:$$145.$$s;return null==v&&(v=nil),$truthy(v["$is_a?"]($$("Vector")))||self.$raise($$("TypeError"),"expected Vector, got "+v.$class()),$eqeq(v.$size(),vs.$first().$size())?nil:$$("Vector").$Raise($$("ErrDimensionMismatch"))}),{$$arity:1,$$s:self}),!$truthy($rb_gt(vs.$count(),vs.$first().$size()))&&$send($$("Matrix"),"[]",$to_a(vs)).$rank()["$eql?"](vs.$count())}),-1),$def(self,"$independent?",(function($a){var vs,self=this;return vs=Opal.slice.call(arguments),$send(self.$class(),"independent?",[self].concat($to_a(vs)))}),-1),$def(self,"$zero?",(function(){return $send(this,"all?",[],"zero?".$to_proc())}),0),$def(self,"$==",(function(other){return!!$eqeqeq($$("Vector"),other)&&this.elements["$=="](other.$elements())}),1),$def(self,"$eql?",(function(other){return!!$eqeqeq($$("Vector"),other)&&this.elements["$eql?"](other.$elements())}),1),$def(self,"$clone",(function(){return this.$class().$elements(this.elements)}),0),$def(self,"$hash",(function(){return this.elements.$hash()}),0),$def(self,"$*",(function(x){var $ret_or_1,els=nil;return $eqeqeq($$("Numeric"),$ret_or_1=x)?(els=$send(this.elements,"collect",[],(function(e){return null==e&&(e=nil),$rb_times(e,x)}),1),this.$class().$elements(els,!1)):$eqeqeq($$("Matrix"),$ret_or_1)?$rb_times($$("Matrix").$column_vector(this),x):$eqeqeq($$("Vector"),$ret_or_1)?$$("Vector").$Raise($$("ErrOperationNotDefined"),"*",this.$class(),x.$class()):this.$apply_through_coercion(x,"*")}),1),$def(self,"$+",(function(v){var $ret_or_1,els=nil;return $eqeqeq($$("Vector"),$ret_or_1=v)?($neqeq(this.$size(),v.$size())&&$$("Vector").$Raise($$("ErrDimensionMismatch")),els=$send(this,"collect2",[v],(function(v1,v2){return null==v1&&(v1=nil),null==v2&&(v2=nil),$rb_plus(v1,v2)}),2),this.$class().$elements(els,!1)):$eqeqeq($$("Matrix"),$ret_or_1)?$rb_plus($$("Matrix").$column_vector(this),v):this.$apply_through_coercion(v,"+")}),1),$def(self,"$-",(function(v){var $ret_or_1,els=nil;return $eqeqeq($$("Vector"),$ret_or_1=v)?($neqeq(this.$size(),v.$size())&&$$("Vector").$Raise($$("ErrDimensionMismatch")),els=$send(this,"collect2",[v],(function(v1,v2){return null==v1&&(v1=nil),null==v2&&(v2=nil),$rb_minus(v1,v2)}),2),this.$class().$elements(els,!1)):$eqeqeq($$("Matrix"),$ret_or_1)?$rb_minus($$("Matrix").$column_vector(this),v):this.$apply_through_coercion(v,"-")}),1),$def(self,"$/",(function(x){var $ret_or_1,els=nil;return $eqeqeq($$("Numeric"),$ret_or_1=x)?(els=$send(this.elements,"collect",[],(function(e){return null==e&&(e=nil),$rb_divide(e,x)}),1),this.$class().$elements(els,!1)):$eqeqeq($$("Matrix"),$ret_or_1)||$eqeqeq($$("Vector"),$ret_or_1)?$$("Vector").$Raise($$("ErrOperationNotDefined"),"/",this.$class(),x.$class()):this.$apply_through_coercion(x,"/")}),1),$def(self,"$+@",(function(){return this}),0),$def(self,"$-@",(function(){return $send(this,"collect",[],(function(e){return null==e&&(e=nil),e["$-@"]()}),1)}),0),$def(self,"$inner_product",(function(v){var p=nil;return $neqeq(this.$size(),v.$size())&&$$("Vector").$Raise($$("ErrDimensionMismatch")),p=0,$send(this,"each2",[v],(function(v1,v2){return null==v1&&(v1=nil),null==v2&&(v2=nil),p=$rb_plus(p,$rb_times(v1,v2.$conj()))}),2),p}),1),self.$alias_method("dot","inner_product"),$def(self,"$cross_product",(function($a){var vs,self=this,$ret_or_1=nil,v=nil,rows=nil;return vs=Opal.slice.call(arguments),$truthy($rb_ge(self.$size(),2))||self.$raise($$("ErrOperationNotDefined"),"cross product is not defined on vectors of dimension "+self.$size()),$eqeq(vs.$size(),$rb_minus(self.$size(),2))||self.$raise($$("ArgumentError"),"wrong number of arguments ("+vs.$size()+" for "+$rb_minus(self.$size(),2)+")"),$send(vs,"each",[],(function $$162(v){var self=null==$$162.$$s?this:$$162.$$s;return null==v&&(v=nil),$truthy(v["$is_a?"]($$("Vector")))||self.$raise($$("TypeError"),"expected Vector, got "+v.$class()),$eqeq(v.$size(),self.$size())?nil:$$("Vector").$Raise($$("ErrDimensionMismatch"))}),{$$arity:1,$$s:self}),$eqeqeq(2,$ret_or_1=self.$size())?$$("Vector")["$[]"](self.elements["$[]"](1)["$-@"](),self.elements["$[]"](0)):$eqeqeq(3,$ret_or_1)?(v=vs["$[]"](0),$$("Vector")["$[]"]($rb_minus($rb_times(v["$[]"](2),self.elements["$[]"](1)),$rb_times(v["$[]"](1),self.elements["$[]"](2))),$rb_minus($rb_times(v["$[]"](0),self.elements["$[]"](2)),$rb_times(v["$[]"](2),self.elements["$[]"](0))),$rb_minus($rb_times(v["$[]"](1),self.elements["$[]"](0)),$rb_times(v["$[]"](0),self.elements["$[]"](1))))):(rows=[self].concat($to_a(vs)).concat([$send($$("Array"),"new",[self.$size()],(function $$163(i){var self=null==$$163.$$s?this:$$163.$$s;return null==i&&(i=nil),$$("Vector").$basis($hash2(["size","index"],{size:self.$size(),index:i}))}),{$$arity:1,$$s:self})]),$$("Matrix").$rows(rows).$laplace_expansion($hash2(["row"],{row:$rb_minus(self.$size(),1)})))}),-1),self.$alias_method("cross","cross_product"),$def(self,"$collect",(function $$collect(){var els,block=$$collect.$$p||nil;return delete $$collect.$$p,block===nil?this.$to_enum("collect"):(els=$send(this.elements,"collect",[],block.$to_proc()),this.$class().$elements(els,!1))}),0),$alias(self,"map","collect"),$def(self,"$magnitude",(function(){return $$("Math").$sqrt($send(this.elements,"inject",[0],(function(v,e){return null==v&&(v=nil),null==e&&(e=nil),$rb_plus(v,e.$abs2())}),2))}),0),$alias(self,"r","magnitude"),$alias(self,"norm","magnitude"),$def(self,"$map2",(function $$map2(v){var els,block=$$map2.$$p||nil;return delete $$map2.$$p,block===nil?this.$to_enum("map2",v):(els=$send(this,"collect2",[v],block.$to_proc()),this.$class().$elements(els,!1))}),1),$klass($nesting[0],$$("StandardError"),"ZeroVectorError"),$def(self,"$normalize",(function(){var n;return n=this.$magnitude(),$eqeq(n,0)&&this.$raise($$("ZeroVectorError"),"Zero vectors can not be normalized"),$rb_divide(this,n)}),0),$def(self,"$angle_with",(function(v){var prod;return $truthy(v["$is_a?"]($$("Vector")))||this.$raise($$("TypeError"),"Expected a Vector, got a "+v.$class()),$neqeq(this.$size(),v.$size())&&$$("Vector").$Raise($$("ErrDimensionMismatch")),prod=$rb_times(this.$magnitude(),v.$magnitude()),$eqeq(prod,0)&&this.$raise($$("ZeroVectorError"),"Can't get angle of zero vector"),$$("Math").$acos($rb_divide(this.$inner_product(v),prod))}),1),$def(self,"$covector",(function(){return $$("Matrix").$row_vector(this)}),0),$def(self,"$to_a",(function(){return this.elements.$dup()}),0),$def(self,"$to_matrix",(function(){return $$("Matrix").$column_vector(this)}),0),$def(self,"$elements_to_f",(function(){return this.$warn("Vector#elements_to_f is deprecated",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_f".$to_proc())}),0),$def(self,"$elements_to_i",(function(){return this.$warn("Vector#elements_to_i is deprecated",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_i".$to_proc())}),0),$def(self,"$elements_to_r",(function(){return this.$warn("Vector#elements_to_r is deprecated",$hash2(["uplevel"],{uplevel:1})),$send(this,"map",[],"to_r".$to_proc())}),0),$def(self,"$coerce",(function(other){return $eqeqeq($$("Numeric"),other)?[$$$($$("Matrix"),"Scalar").$new(other),this]:this.$raise($$("TypeError"),this.$class()+" can't be coerced into "+other.$class())}),1),$def(self,"$to_s",(function(){return $rb_plus($rb_plus("Vector[",this.elements.$join(", ")),"]")}),0),$def(self,"$inspect",(function(){return $rb_plus("Vector",this.elements.$inspect())}),0)}($nesting[0],0,$nesting)}; diff --git a/opal/master/matrix.min.js.gz b/opal/master/matrix.min.js.gz index aaa2f622..0a37398a 100644 Binary files a/opal/master/matrix.min.js.gz and b/opal/master/matrix.min.js.gz differ diff --git a/opal/master/nashorn.js b/opal/master/nashorn.js index 4e9f62c9..c140e90c 100644 --- a/opal/master/nashorn.js +++ b/opal/master/nashorn.js @@ -1,39 +1,325 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nashorn/io"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $send = Opal.send, $gvars = Opal.gvars, $writer = nil; +Opal.modules["nashorn/io"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $send = Opal.send, $gvars = Opal.gvars, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $writer = nil; if ($gvars.stdout == null) $gvars.stdout = nil; if ($gvars.stderr == null) $gvars.stderr = nil; - Opal.add_stubs(['$write_proc=', '$-']); + Opal.add_stubs('write_proc=,-'); $writer = [function(s){print(s)}]; - $send($gvars.stdout, 'write_proc=', Opal.to_a($writer)); + $send($gvars.stdout, 'write_proc=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [function(s){print(s)}]; - $send($gvars.stderr, 'write_proc=', Opal.to_a($writer)); + $send($gvars.stderr, 'write_proc=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nashorn/file"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; +Opal.modules["corelib/file"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $klass = Opal.klass, $const_set = Opal.const_set, $Opal = Opal.Opal, $regexp = Opal.regexp, $rb_plus = Opal.rb_plus, $def = Opal.def, $Kernel = Opal.Kernel, $eqeq = Opal.eqeq, $rb_lt = Opal.rb_lt, $rb_minus = Opal.rb_minus, $range = Opal.range, $send = Opal.send, $alias = Opal.alias; - - /* global Java */; + Opal.add_stubs('respond_to?,to_path,coerce_to!,pwd,split,sub,+,unshift,join,home,raise,start_with?,absolute_path,==,<,dirname,-,basename,empty?,rindex,[],length,nil?,gsub,find,=~,map,each_with_index,flatten,reject,to_proc,end_with?'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'File'); - var $nesting = [self].concat($parent_nesting), $File_read$1, $File_file$ques$2, $File_readable$ques$3; + var $nesting = [self].concat($parent_nesting), windows_root_rx = nil; - Opal.defs(self, '$read', $File_read$1 = function $$read(path) { - var self = this; + $const_set($nesting[0], 'Separator', $const_set($nesting[0], 'SEPARATOR', "/")); + $const_set($nesting[0], 'ALT_SEPARATOR', nil); + $const_set($nesting[0], 'PATH_SEPARATOR', ":"); + $const_set($nesting[0], 'FNM_SYSCASE', 0); + windows_root_rx = /^[a-zA-Z]:(?:\\|\/)/; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$absolute_path', function $$absolute_path(path, basedir) { + var sep = nil, sep_chars = nil, new_parts = nil, $ret_or_1 = nil, path_abs = nil, basedir_abs = nil, parts = nil, leading_sep = nil, abs = nil, new_path = nil; + + + + if (basedir == null) basedir = nil;; + sep = $$('SEPARATOR'); + sep_chars = $sep_chars(); + new_parts = []; + path = ($truthy(path['$respond_to?']("to_path")) ? (path.$to_path()) : (path)); + path = $Opal['$coerce_to!'](path, $$$('String'), "to_str"); + basedir = ($truthy(($ret_or_1 = basedir)) ? ($ret_or_1) : ($$$('Dir').$pwd())); + path_abs = path.substr(0, sep.length) === sep || windows_root_rx.test(path); + basedir_abs = basedir.substr(0, sep.length) === sep || windows_root_rx.test(basedir); + if ($truthy(path_abs)) { + + parts = path.$split($regexp(["[", sep_chars, "]"])); + leading_sep = windows_root_rx.test(path) ? '' : path.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + abs = true; + } else { + + parts = $rb_plus(basedir.$split($regexp(["[", sep_chars, "]"])), path.$split($regexp(["[", sep_chars, "]"]))); + leading_sep = windows_root_rx.test(basedir) ? '' : basedir.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + abs = basedir_abs; + }; + + var part; + for (var i = 0, ii = parts.length; i < ii; i++) { + part = parts[i]; + + if ( + (part === nil) || + (part === '' && ((new_parts.length === 0) || abs)) || + (part === '.' && ((new_parts.length === 0) || abs)) + ) { + continue; + } + if (part === '..') { + new_parts.pop(); + } else { + new_parts.push(part); + } + } + + if (!abs && parts[0] !== '.') { + new_parts.$unshift(".") + } + ; + new_path = new_parts.$join(sep); + if ($truthy(abs)) { + new_path = $rb_plus(leading_sep, new_path) + }; + return new_path; + }, -2); + + $def(self, '$expand_path', function $$expand_path(path, basedir) { + var self = this, sep = nil, sep_chars = nil, home = nil, leading_sep = nil, home_path_regexp = nil; + + + + if (basedir == null) basedir = nil;; + sep = $$('SEPARATOR'); + sep_chars = $sep_chars(); + if ($truthy(path[0] === '~' || (basedir && basedir[0] === '~'))) { + + home = $$('Dir').$home(); + if (!$truthy(home)) { + $Kernel.$raise($$$('ArgumentError'), "couldn't find HOME environment -- expanding `~'") + }; + leading_sep = windows_root_rx.test(home) ? '' : home.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + if (!$truthy(home['$start_with?'](leading_sep))) { + $Kernel.$raise($$$('ArgumentError'), "non-absolute home") + }; + home = $rb_plus(home, sep); + home_path_regexp = $regexp(["^\\~(?:", sep, "|$)"]); + path = path.$sub(home_path_regexp, home); + if ($truthy(basedir)) { + basedir = basedir.$sub(home_path_regexp, home) + }; + }; + return self.$absolute_path(path, basedir); + }, -2); + + // Coerce a given path to a path string using #to_path and #to_str + function $coerce_to_path(path) { + if ($truthy((path)['$respond_to?']("to_path"))) { + path = path.$to_path(); + } + + path = $Opal['$coerce_to!'](path, $$$('String'), "to_str"); + + return path; + } + // Return a RegExp compatible char class + function $sep_chars() { + if ($$('ALT_SEPARATOR') === nil) { + return Opal.escape_regexp($$('SEPARATOR')); + } else { + return Opal.escape_regexp($rb_plus($$('SEPARATOR'), $$('ALT_SEPARATOR'))); + } + } + ; + + $def(self, '$dirname', function $$dirname(path, level) { + var self = this, sep_chars = nil; + + + + if (level == null) level = 1;; + if ($eqeq(level, 0)) { + return path + }; + if ($truthy($rb_lt(level, 0))) { + $Kernel.$raise($$$('ArgumentError'), "level can't be negative") + }; + sep_chars = $sep_chars(); + path = $coerce_to_path(path); + + var absolute = path.match(new RegExp("^[" + (sep_chars) + "]")), out; + + path = path.replace(new RegExp("[" + (sep_chars) + "]+$"), ''); // remove trailing separators + path = path.replace(new RegExp("[^" + (sep_chars) + "]+$"), ''); // remove trailing basename + path = path.replace(new RegExp("[" + (sep_chars) + "]+$"), ''); // remove final trailing separators + + if (path === '') { + out = absolute ? '/' : '.'; + } + else { + out = path; + } + + if (level == 1) { + return out; + } + else { + return self.$dirname(out, $rb_minus(level, 1)) + } + ; + }, -2); + + $def(self, '$basename', function $$basename(name, suffix) { + var sep_chars = nil; + + + + if (suffix == null) suffix = nil;; + sep_chars = $sep_chars(); + name = $coerce_to_path(name); + + if (name.length == 0) { + return name; + } + + if (suffix !== nil) { + suffix = $Opal['$coerce_to!'](suffix, $$$('String'), "to_str") + } else { + suffix = null; + } + + name = name.replace(new RegExp("(.)[" + (sep_chars) + "]*$"), '$1'); + name = name.replace(new RegExp("^(?:.*[" + (sep_chars) + "])?([^" + (sep_chars) + "]+)$"), '$1'); + + if (suffix === ".*") { + name = name.replace(/\.[^\.]+$/, ''); + } else if(suffix !== null) { + suffix = Opal.escape_regexp(suffix); + name = name.replace(new RegExp("" + (suffix) + "$"), ''); + } + + return name; + ; + }, -2); + + $def(self, '$extname', function $$extname(path) { + var self = this, filename = nil, last_dot_idx = nil; + + + path = $coerce_to_path(path); + filename = self.$basename(path); + if ($truthy(filename['$empty?']())) { + return "" + }; + last_dot_idx = filename['$[]']($range(1, -1, false)).$rindex("."); + if (($truthy(last_dot_idx['$nil?']()) || ($eqeq($rb_plus(last_dot_idx, 1), $rb_minus(filename.$length(), 1))))) { + return "" + } else { + return filename['$[]'](Opal.Range.$new($rb_plus(last_dot_idx, 1), -1, false)) + }; + }, 1); + + $def(self, '$exist?', function $exist$ques$1(path) { + + return Opal.modules[path] != null + }, 1); + + $def(self, '$directory?', function $directory$ques$2(path) { + var files = nil, file = nil; + + + files = []; + + for (var key in Opal.modules) { + files.push(key) + } + ; + path = path.$gsub($regexp(["(^.", $$('SEPARATOR'), "+|", $$('SEPARATOR'), "+$)"])); + file = $send(files, 'find', [], function $$3(f){ + + + if (f == null) f = nil;; + return f['$=~']($regexp(["^", path]));}, 1); + return file; + }, 1); + + $def(self, '$join', function $$join($a) { + var $post_args, paths, result = nil; + + + + $post_args = Opal.slice.call(arguments); + + paths = $post_args;; + if ($truthy(paths['$empty?']())) { + return "" + }; + result = ""; + paths = $send(paths.$flatten().$each_with_index(), 'map', [], function $$4(item, index){ + + + if (item == null) item = nil;; + + if (index == null) index = nil;; + if (($eqeq(index, 0) && ($truthy(item['$empty?']())))) { + return $$('SEPARATOR') + } else if (($eqeq(paths.$length(), $rb_plus(index, 1)) && ($truthy(item['$empty?']())))) { + return $$('SEPARATOR') + } else { + return item + };}, 2); + paths = $send(paths, 'reject', [], "empty?".$to_proc()); + $send(paths, 'each_with_index', [], function $$5(item, index){var next_item = nil; + + + + if (item == null) item = nil;; + + if (index == null) index = nil;; + next_item = paths['$[]']($rb_plus(index, 1)); + if ($truthy(next_item['$nil?']())) { + return (result = "" + (result) + (item)) + } else { + + if (($truthy(item['$end_with?']($$('SEPARATOR'))) && ($truthy(next_item['$start_with?']($$('SEPARATOR')))))) { + item = item.$sub($regexp([$$('SEPARATOR'), "+$"]), "") + }; + return (result = (($truthy(item['$end_with?']($$('SEPARATOR'))) || ($truthy(next_item['$start_with?']($$('SEPARATOR'))))) ? ("" + (result) + (item)) : ("" + (result) + (item) + ($$('SEPARATOR'))))); + };}, 2); + return result; + }, -1); + + $def(self, '$split', function $$split(path) { + + return path.$split($$('SEPARATOR')) + }, 1); + $alias(self, "realpath", "expand_path"); + return $alias(self, "exists?", "exist?"); + })(Opal.get_singleton_class(self), $nesting); + })('::', $$$('IO'), $nesting) +}; + +Opal.modules["nashorn/file"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $klass = Opal.klass, $defs = Opal.defs; + + Opal.add_stubs('require'); + + /* global Java */; + self.$require("corelib/file"); + return (function($base, $super) { + var self = $klass($base, $super, 'File'); + + + + $defs(self, '$read', function $$read(path) { + var Paths = Java.type('java.nio.file.Paths'); var Files = Java.type('java.nio.file.Files'); @@ -42,39 +328,30 @@ Opal.modules["nashorn/file"] = function(Opal) { lines.forEach(function(line) { data.push(line); }); return data.join("\n"); - }, $File_read$1.$$arity = 1); - Opal.defs(self, '$file?', $File_file$ques$2 = function(path) { - var self = this; - + }, 1); + $defs(self, '$file?', function $File_file$ques$1(path) { + var Files = Java.type('java.nio.file.Files'); return Files.exists(path) && Files.isRegularFile(path); - }, $File_file$ques$2.$$arity = 1); - return (Opal.defs(self, '$readable?', $File_readable$ques$3 = function(path) { - var self = this; - + }, 1); + return $defs(self, '$readable?', function $File_readable$ques$2(path) { + var Files = Java.type('java.nio.file.Files'); return Files.exists(path) && Files.isReadable(path); - }, $File_readable$ques$3.$$arity = 1), nil) && 'readable?'; - })($nesting[0], null, $nesting); + }, 1); + })($nesting[0], null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nashorn"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["nashorn"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); - (function($base, $parent_nesting) { - var self = $module($base, 'Nashorn'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $nesting); + $module($nesting[0], 'Nashorn'); self.$require("nashorn/io"); return self.$require("nashorn/file"); }; diff --git a/opal/master/nashorn.min.js b/opal/master/nashorn.min.js index f4ab4f27..d8830b56 100644 --- a/opal/master/nashorn.min.js +++ b/opal/master/nashorn.min.js @@ -1 +1 @@ -Opal.modules["nashorn/io"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $writer,nil=Opal.nil,$send=(Opal.$$$,Opal.$$,Opal.send),$gvars=Opal.gvars;return null==$gvars.stdout&&($gvars.stdout=nil),null==$gvars.stderr&&($gvars.stderr=nil),Opal.add_stubs(["$write_proc=","$-"]),$writer=[function(s){print(s)}],$send($gvars.stdout,"write_proc=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[function(s){print(s)}],$send($gvars.stderr,"write_proc=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},Opal.modules["nashorn/file"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$klass=(Opal.$$$,Opal.$$,Opal.klass);return function($File_readable$ques$3,$File_file$ques$2){$File_readable$ques$3=$klass($File_readable$ques$3,null,"File"),[$File_readable$ques$3].concat($File_file$ques$2);return Opal.defs($File_readable$ques$3,"$read",$File_file$ques$2=function(lines){var Paths=Java.type("java.nio.file.Paths"),lines=Java.type("java.nio.file.Files").readAllLines(Paths.get(lines),Java.type("java.nio.charset.StandardCharsets").UTF_8),data=[];return lines.forEach(function(line){data.push(line)}),data.join("\n")},$File_file$ques$2.$$arity=1),Opal.defs($File_readable$ques$3,"$file?",$File_file$ques$2=function(path){var Files=Java.type("java.nio.file.Files");return Files.exists(path)&&Files.isRegularFile(path)},$File_file$ques$2.$$arity=1),Opal.defs($File_readable$ques$3,"$readable?",$File_readable$ques$3=function(path){var Files=Java.type("java.nio.file.Files");return Files.exists(path)&&Files.isReadable(path)},$File_readable$ques$3.$$arity=1),nil&&"readable?"}($nesting[0],$nesting)},Opal.modules.nashorn=function(Opal){var self=Opal.top,$parent_nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return Opal.add_stubs(["$require"]),[$module(($parent_nesting=$parent_nesting)[0],"Nashorn")].concat($parent_nesting),self.$require("nashorn/io"),self.$require("nashorn/file")}; +Opal.modules["nashorn/io"]=function(Opal){var nil=Opal.nil,$send=Opal.send,$gvars=Opal.gvars,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$writer=nil;return null==$gvars.stdout&&($gvars.stdout=nil),null==$gvars.stderr&&($gvars.stderr=nil),Opal.add_stubs("write_proc=,-"),$writer=[function(s){print(s)}],$send($gvars.stdout,"write_proc=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[function(s){print(s)}],$send($gvars.stderr,"write_proc=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]},Opal.modules["corelib/file"]=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$truthy=Opal.truthy,$klass=Opal.klass,$const_set=Opal.const_set,$Opal=Opal.Opal,$regexp=Opal.regexp,$rb_plus=Opal.rb_plus,$def=Opal.def,$Kernel=Opal.Kernel,$eqeq=Opal.eqeq,$rb_lt=Opal.rb_lt,$rb_minus=Opal.rb_minus,$range=Opal.range,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs("respond_to?,to_path,coerce_to!,pwd,split,sub,+,unshift,join,home,raise,start_with?,absolute_path,==,<,dirname,-,basename,empty?,rindex,[],length,nil?,gsub,find,=~,map,each_with_index,flatten,reject,to_proc,end_with?"),function($base,$super,$parent_nesting){var self=$klass("::",$super,"File"),$nesting=[self].concat($parent_nesting),windows_root_rx=nil;return $const_set($nesting[0],"Separator",$const_set($nesting[0],"SEPARATOR","/")),$const_set($nesting[0],"ALT_SEPARATOR",nil),$const_set($nesting[0],"PATH_SEPARATOR",":"),$const_set($nesting[0],"FNM_SYSCASE",0),windows_root_rx=/^[a-zA-Z]:(?:\\|\/)/,function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);function $coerce_to_path(path){return $truthy(path["$respond_to?"]("to_path"))&&(path=path.$to_path()),path=$Opal["$coerce_to!"](path,$$$("String"),"to_str")}function $sep_chars(){return $$("ALT_SEPARATOR")===nil?Opal.escape_regexp($$("SEPARATOR")):Opal.escape_regexp($rb_plus($$("SEPARATOR"),$$("ALT_SEPARATOR")))}return $def(self,"$absolute_path",(function(path,basedir){var sep,sep_chars,$ret_or_1,path_abs,basedir_abs,part,new_parts=nil,parts=nil,leading_sep=nil,abs=nil,new_path=nil;null==basedir&&(basedir=nil),sep=$$("SEPARATOR"),sep_chars=$sep_chars(),new_parts=[],path=$truthy(path["$respond_to?"]("to_path"))?path.$to_path():path,path=$Opal["$coerce_to!"](path,$$$("String"),"to_str"),basedir=$truthy($ret_or_1=basedir)?$ret_or_1:$$$("Dir").$pwd(),path_abs=path.substr(0,sep.length)===sep||windows_root_rx.test(path),basedir_abs=basedir.substr(0,sep.length)===sep||windows_root_rx.test(basedir),$truthy(path_abs)?(parts=path.$split($regexp(["[",sep_chars,"]"])),leading_sep=windows_root_rx.test(path)?"":path.$sub($regexp(["^([",sep_chars,"]+).*$"]),"\\1"),abs=!0):(parts=$rb_plus(basedir.$split($regexp(["[",sep_chars,"]"])),path.$split($regexp(["[",sep_chars,"]"]))),leading_sep=windows_root_rx.test(basedir)?"":basedir.$sub($regexp(["^([",sep_chars,"]+).*$"]),"\\1"),abs=basedir_abs);for(var i=0,ii=parts.length;i= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $range = Opal.range, $alias = Opal.alias, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $gvars = Opal.gvars; - - Opal.add_stubs(['$try_convert', '$native?', '$respond_to?', '$to_n', '$raise', '$inspect', '$Native', '$proc', '$map!', '$end_with?', '$define_method', '$[]', '$convert', '$call', '$to_proc', '$new', '$each', '$native_reader', '$native_writer', '$extend', '$warn', '$include', '$is_a?', '$map', '$to_a', '$_Array', '$method_missing', '$bind', '$instance_method', '$slice', '$-', '$length', '$[]=', '$enum_for', '$===', '$>=', '$<<', '$each_pair', '$_initialize', '$name', '$native_module']); +Opal.modules["native"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $defs = Opal.defs, $truthy = Opal.truthy, $send = Opal.send, $Kernel = Opal.Kernel, $hash2 = Opal.hash2, $range = Opal.range, $to_a = Opal.to_a, $def = Opal.def, $alias = Opal.alias, $klass = Opal.klass, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super, $eqeqeq = Opal.eqeqeq, $rb_ge = Opal.rb_ge, $gvars = Opal.gvars; + + Opal.add_stubs('try_convert,native?,respond_to?,to_n,raise,inspect,Native,proc,map!,end_with?,define_method,[],convert,call,to_proc,new,each,native_reader,native_writer,extend,warn,include,is_a?,map,to_a,_Array,method_missing,bind,instance_method,slice,-,length,[]=,enum_for,===,>=,<<,each_pair,method_defined?,_initialize,name,native_module'); (function($base, $parent_nesting) { var self = $module($base, 'Native'); - var $nesting = [self].concat($parent_nesting), $Native_is_a$ques$1, $Native_try_convert$2, $Native_convert$3, $Native_call$4, $Native_proc$5, $Native_included$22; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$is_a?', $Native_is_a$ques$1 = function(object, klass) { + $defs(self, '$is_a?', function $Native_is_a$ques$1(object, klass) { var self = this; @@ -27,15 +20,13 @@ Opal.modules["native"] = function(Opal) { return false; } - }, $Native_is_a$ques$1.$$arity = 2); - Opal.defs(self, '$try_convert', $Native_try_convert$2 = function $$try_convert(value, default$) { + }, 2); + $defs(self, '$try_convert', function $$try_convert(value, default$) { var self = this; - if (default$ == null) { - default$ = nil; - }; + if (default$ == null) default$ = nil;; if (self['$native?'](value)) { return value; @@ -47,8 +38,8 @@ Opal.modules["native"] = function(Opal) { return default$; } ; - }, $Native_try_convert$2.$$arity = -2); - Opal.defs(self, '$convert', $Native_convert$3 = function $$convert(value) { + }, -2); + $defs(self, '$convert', function $$convert(value) { var self = this; @@ -59,19 +50,18 @@ Opal.modules["native"] = function(Opal) { return value.$to_n(); } else { - self.$raise($$($nesting, 'ArgumentError'), "" + (value.$inspect()) + " isn't native"); + self.$raise($$('ArgumentError'), "" + (value.$inspect()) + " isn't native"); } - }, $Native_convert$3.$$arity = 1); - Opal.defs(self, '$call', $Native_call$4 = function $$call(obj, key, $a) { - var $iter = $Native_call$4.$$p, block = $iter || nil, $post_args, args, self = this; + }, 1); + $defs(self, '$call', function $$call(obj, key, $a) { + var block = $$call.$$p || nil, $post_args, args, self = this; - if ($iter) $Native_call$4.$$p = null; - + delete $$call.$$p; - if ($iter) $Native_call$4.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 2, arguments.length); + $post_args = Opal.slice.call(arguments, 2); args = $post_args;; @@ -97,33 +87,29 @@ Opal.modules["native"] = function(Opal) { return self.$Native(prop); } ; - }, $Native_call$4.$$arity = -3); - Opal.defs(self, '$proc', $Native_proc$5 = function $$proc() { - var $iter = $Native_proc$5.$$p, block = $iter || nil, $$6, self = this; + }, -3); + $defs(self, '$proc', function $$proc() { + var block = $$proc.$$p || nil, self = this; - if ($iter) $Native_proc$5.$$p = null; - + delete $$proc.$$p; - if ($iter) $Native_proc$5.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'LocalJumpError'), "no block given") + ; + if (!$truthy(block)) { + self.$raise($$('LocalJumpError'), "no block given") }; - return $send($$$('::', 'Kernel'), 'proc', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, args, $$7, instance = nil; + return $send($Kernel, 'proc', [], function $$2($a){var $post_args, args, self = $$2.$$s == null ? this : $$2.$$s, instance = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - $send(args, 'map!', [], ($$7 = function(arg){var self = $$7.$$s == null ? this : $$7.$$s; + $send(args, 'map!', [], function $$3(arg){var self = $$3.$$s == null ? this : $$3.$$s; - if (arg == null) { - arg = nil; - }; - return self.$Native(arg);}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + if (arg == null) arg = nil;; + return self.$Native(arg);}, {$$arity: 1, $$s: self}); instance = self.$Native(this); // if global is current scope, run the block in the scope it was defined @@ -140,22 +126,22 @@ Opal.modules["native"] = function(Opal) { finally { block.$$s = self_; } - ;}, $$6.$$s = self, $$6.$$arity = -1, $$6)); - }, $Native_proc$5.$$arity = 0); + ;}, {$$arity: -1, $$s: self}); + }, 0); (function($base, $parent_nesting) { var self = $module($base, 'Helpers'); - var $nesting = [self].concat($parent_nesting), $Helpers_alias_native$8, $Helpers_native_reader$12, $Helpers_native_writer$15, $Helpers_native_accessor$18; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$alias_native', $Helpers_alias_native$8 = function $$alias_native(new$, $a, $b) { - var $post_args, $kwargs, old, as, $$9, $$10, $$11, $iter = $Helpers_alias_native$8.$$p, $yield = $iter || nil, self = this; + $def(self, '$alias_native', function $$alias_native(new$, $a, $b) { + var $post_args, $kwargs, old, as, $yield = $$alias_native.$$p || nil, self = this; - if ($iter) $Helpers_alias_native$8.$$p = null; + delete $$alias_native.$$p; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); $kwargs = Opal.extract_kwargs($post_args); @@ -165,250 +151,227 @@ Opal.modules["native"] = function(Opal) { throw Opal.ArgumentError.$new('expected kwargs'); }; - if ($post_args.length > 0) { - old = $post_args[0]; - $post_args.splice(0, 1); - } - if (old == null) { - old = new$; - }; + if ($post_args.length > 0) old = $post_args.shift(); + if (old == null) old = new$;; as = $kwargs.$$smap["as"]; - if (as == null) { - as = nil - }; + if (as == null) as = nil; if ($truthy(old['$end_with?']("="))) { - return $send(self, 'define_method', [new$], ($$9 = function(value){var self = $$9.$$s == null ? this : $$9.$$s; + return $send(self, 'define_method', [new$], function $$4(value){var self = $$4.$$s == null ? this : $$4.$$s; if (self["native"] == null) self["native"] = nil; - if (value == null) { - value = nil; - }; - self["native"][old['$[]']($range(0, -2, false))] = $$($nesting, 'Native').$convert(value); - return value;}, $$9.$$s = self, $$9.$$arity = 1, $$9)) + if (value == null) value = nil;; + self["native"][old['$[]']($range(0, -2, false))] = $$('Native').$convert(value); + return value;}, {$$arity: 1, $$s: self}) } else if ($truthy(as)) { - return $send(self, 'define_method', [new$], ($$10 = function($c){var self = $$10.$$s == null ? this : $$10.$$s, $iter = $$10.$$p, block = $iter || nil, $post_args, args, value = nil; + return $send(self, 'define_method', [new$], function $$5($c){var block = $$5.$$p || nil, $post_args, args, self = $$5.$$s == null ? this : $$5.$$s, value = nil; if (self["native"] == null) self["native"] = nil; + delete $$5.$$p; + ; - if ($iter) $$10.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - value = $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc()); + value = $send($$('Native'), 'call', [self["native"], old].concat($to_a(args)), block.$to_proc()); if ($truthy(value)) { return as.$new(value.$to_n()) } else { return nil - };}, $$10.$$s = self, $$10.$$arity = -1, $$10)) + };}, {$$arity: -1, $$s: self}) } else { - return $send(self, 'define_method', [new$], ($$11 = function($c){var self = $$11.$$s == null ? this : $$11.$$s, $iter = $$11.$$p, block = $iter || nil, $post_args, args; + return $send(self, 'define_method', [new$], function $$6($c){var block = $$6.$$p || nil, $post_args, args, self = $$6.$$s == null ? this : $$6.$$s; if (self["native"] == null) self["native"] = nil; + delete $$6.$$p; + ; - if ($iter) $$11.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc());}, $$11.$$s = self, $$11.$$arity = -1, $$11)) + return $send($$('Native'), 'call', [self["native"], old].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) }; - }, $Helpers_alias_native$8.$$arity = -2); + }, -2); - Opal.def(self, '$native_reader', $Helpers_native_reader$12 = function $$native_reader($a) { - var $post_args, names, $$13, self = this; + $def(self, '$native_reader', function $$native_reader($a) { + var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - return $send(names, 'each', [], ($$13 = function(name){var self = $$13.$$s == null ? this : $$13.$$s, $$14; + return $send(names, 'each', [], function $$7(name){var self = $$7.$$s == null ? this : $$7.$$s; - if (name == null) { - name = nil; - }; - return $send(self, 'define_method', [name], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s; + if (name == null) name = nil;; + return $send(self, 'define_method', [name], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; if (self["native"] == null) self["native"] = nil; - return self.$Native(self["native"][name])}, $$14.$$s = self, $$14.$$arity = 0, $$14));}, $$13.$$s = self, $$13.$$arity = 1, $$13)); - }, $Helpers_native_reader$12.$$arity = -1); + return self.$Native(self["native"][name])}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$native_writer', $Helpers_native_writer$15 = function $$native_writer($a) { - var $post_args, names, $$16, self = this; + $def(self, '$native_writer', function $$native_writer($a) { + var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - return $send(names, 'each', [], ($$16 = function(name){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + return $send(names, 'each', [], function $$9(name){var self = $$9.$$s == null ? this : $$9.$$s; - if (name == null) { - name = nil; - }; - return $send(self, 'define_method', ["" + (name) + "="], ($$17 = function(value){var self = $$17.$$s == null ? this : $$17.$$s; + if (name == null) name = nil;; + return $send(self, 'define_method', ["" + (name) + "="], function $$10(value){var self = $$10.$$s == null ? this : $$10.$$s; if (self["native"] == null) self["native"] = nil; - if (value == null) { - value = nil; - }; - return self.$Native(self["native"][name] = value);}, $$17.$$s = self, $$17.$$arity = 1, $$17));}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - }, $Helpers_native_writer$15.$$arity = -1); - return (Opal.def(self, '$native_accessor', $Helpers_native_accessor$18 = function $$native_accessor($a) { + if (value == null) value = nil;; + return self.$Native(self["native"][name] = value);}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + }, -1); + return $def(self, '$native_accessor', function $$native_accessor($a) { var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - $send(self, 'native_reader', Opal.to_a(names)); - return $send(self, 'native_writer', Opal.to_a(names)); - }, $Helpers_native_accessor$18.$$arity = -1), nil) && 'native_accessor'; + $send(self, 'native_reader', $to_a(names)); + return $send(self, 'native_writer', $to_a(names)); + }, -1); })($nesting[0], $nesting); (function($base, $parent_nesting) { var self = $module($base, 'Wrapper'); - var $nesting = [self].concat($parent_nesting), $Wrapper_initialize$19, $Wrapper_to_n$20, $Wrapper_included$21; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$initialize', $Wrapper_initialize$19 = function $$initialize(native$) { + $def(self, '$initialize', function $$initialize(native$) { var self = this; - if ($truthy($$$('::', 'Kernel')['$native?'](native$))) { - } else { - $$$('::', 'Kernel').$raise($$($nesting, 'ArgumentError'), "" + (native$.$inspect()) + " isn't native") + if (!$truthy($Kernel['$native?'](native$))) { + $Kernel.$raise($$('ArgumentError'), "" + (native$.$inspect()) + " isn't native") }; return (self["native"] = native$); - }, $Wrapper_initialize$19.$$arity = 1); + }, 1); - Opal.def(self, '$to_n', $Wrapper_to_n$20 = function $$to_n() { + $def(self, '$to_n', function $$to_n() { var self = this; if (self["native"] == null) self["native"] = nil; return self["native"] - }, $Wrapper_to_n$20.$$arity = 0); - return (Opal.defs(self, '$included', $Wrapper_included$21 = function $$included(klass) { - var self = this; - - return klass.$extend($$($nesting, 'Helpers')) - }, $Wrapper_included$21.$$arity = 1), nil) && 'included'; + }, 0); + return $defs(self, '$included', function $$included(klass) { + + return klass.$extend($$('Helpers')) + }, 1); })($nesting[0], $nesting); - return (Opal.defs(self, '$included', $Native_included$22 = function $$included(base) { + return $defs(self, '$included', function $$included(base) { var self = this; self.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."); - return base.$include($$($nesting, 'Wrapper')); - }, $Native_included$22.$$arity = 1), nil) && 'included'; + return base.$include($$('Wrapper')); + }, 1); })($nesting[0], $nesting); (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_native$ques$23, $Kernel_Native$24, $Kernel_Array$27; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$native?', $Kernel_native$ques$23 = function(value) { - var self = this; - + $def(self, '$native?', function $Kernel_native$ques$11(value) { + return value == null || !value.$$class; - }, $Kernel_native$ques$23.$$arity = 1); + }, 1); - Opal.def(self, '$Native', $Kernel_Native$24 = function $$Native(obj) { - var $$25, $$26, $iter = $Kernel_Native$24.$$p, $yield = $iter || nil, self = this; + $def(self, '$Native', function $$Native(obj) { + var $yield = $$Native.$$p || nil, self = this; - if ($iter) $Kernel_Native$24.$$p = null; + delete $$Native.$$p; if ($truthy(obj == null)) { return nil } else if ($truthy(self['$native?'](obj))) { - return $$$($$($nesting, 'Native'), 'Object').$new(obj) - } else if ($truthy(obj['$is_a?']($$($nesting, 'Array')))) { - return $send(obj, 'map', [], ($$25 = function(o){var self = $$25.$$s == null ? this : $$25.$$s; + return $$$($$('Native'), 'Object').$new(obj) + } else if ($truthy(obj['$is_a?']($$('Array')))) { + return $send(obj, 'map', [], function $$12(o){var self = $$12.$$s == null ? this : $$12.$$s; - if (o == null) { - o = nil; - }; - return self.$Native(o);}, $$25.$$s = self, $$25.$$arity = 1, $$25)) - } else if ($truthy(obj['$is_a?']($$($nesting, 'Proc')))) { - return $send(self, 'proc', [], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $iter = $$26.$$p, block = $iter || nil, $post_args, args; + if (o == null) o = nil;; + return self.$Native(o);}, {$$arity: 1, $$s: self}) + } else if ($truthy(obj['$is_a?']($$('Proc')))) { + return $send(self, 'proc', [], function $$13($a){var block = $$13.$$p || nil, $post_args, args, self = $$13.$$s == null ? this : $$13.$$s; + delete $$13.$$p; + ; - if ($iter) $$26.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return self.$Native($send(obj, 'call', Opal.to_a(args), block.$to_proc()));}, $$26.$$s = self, $$26.$$arity = -1, $$26)) + return self.$Native($send(obj, 'call', $to_a(args), block.$to_proc()));}, {$$arity: -1, $$s: self}) } else { return obj } - }, $Kernel_Native$24.$$arity = 1); + }, 1); $alias(self, "_Array", "Array"); - return (Opal.def(self, '$Array', $Kernel_Array$27 = function $$Array(object, $a) { - var $iter = $Kernel_Array$27.$$p, block = $iter || nil, $post_args, args, self = this; + return $def(self, '$Array', function $$Array(object, $a) { + var block = $$Array.$$p || nil, $post_args, args, self = this; - if ($iter) $Kernel_Array$27.$$p = null; - + delete $$Array.$$p; - if ($iter) $Kernel_Array$27.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy(self['$native?'](object))) { - return $send($$$($$($nesting, 'Native'), 'Array'), 'new', [object].concat(Opal.to_a(args)), block.$to_proc()).$to_a()}; + return $send($$$($$('Native'), 'Array'), 'new', [object].concat($to_a(args)), block.$to_proc()).$to_a() + }; return self.$_Array(object); - }, $Kernel_Array$27.$$arity = -2), nil) && 'Array'; + }, -2); })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Object'); - var $nesting = [self].concat($parent_nesting), $Object_$eq_eq$28, $Object_has_key$ques$29, $Object_each$30, $Object_$$$31, $Object_$$$eq$32, $Object_merge$excl$33, $Object_respond_to$ques$34, $Object_respond_to_missing$ques$35, $Object_method_missing$36, $Object_nil$ques$37, $Object_is_a$ques$38, $Object_instance_of$ques$39, $Object_class$40, $Object_to_a$41, $Object_inspect$42; + var $proto = self.$$prototype; - self.$$prototype["native"] = nil; + $proto["native"] = nil; - self.$include($$$($$$('::', 'Native'), 'Wrapper')); + self.$include($$$($$$('Native'), 'Wrapper')); - Opal.def(self, '$==', $Object_$eq_eq$28 = function(other) { + $def(self, '$==', function $Object_$eq_eq$14(other) { var self = this; - return self["native"] === $$$('::', 'Native').$try_convert(other) - }, $Object_$eq_eq$28.$$arity = 1); + return self["native"] === $$$('Native').$try_convert(other) + }, 1); - Opal.def(self, '$has_key?', $Object_has_key$ques$29 = function(name) { + $def(self, '$has_key?', function $Object_has_key$ques$15(name) { var self = this; return Opal.hasOwnProperty.call(self["native"], name) - }, $Object_has_key$ques$29.$$arity = 1); - $alias(self, "key?", "has_key?"); - $alias(self, "include?", "has_key?"); - $alias(self, "member?", "has_key?"); + }, 1); - Opal.def(self, '$each', $Object_each$30 = function $$each($a) { - var $post_args, args, $iter = $Object_each$30.$$p, $yield = $iter || nil, self = this; + $def(self, '$each', function $$each($a) { + var $post_args, args, $yield = $$each.$$p || nil, self = this; - if ($iter) $Object_each$30.$$p = null; + delete $$each.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if (($yield !== nil)) { @@ -420,11 +383,11 @@ Opal.modules["native"] = function(Opal) { ; return self; } else { - return $send(self, 'method_missing', ["each"].concat(Opal.to_a(args))) + return $send(self, 'method_missing', ["each"].concat($to_a(args))) }; - }, $Object_each$30.$$arity = -1); + }, -1); - Opal.def(self, '$[]', $Object_$$$31 = function(key) { + $def(self, '$[]', function $Object_$$$16(key) { var self = this; @@ -434,179 +397,157 @@ Opal.modules["native"] = function(Opal) { return prop; } else { - return $$$('::', 'Native').$call(self["native"], key) + return $$$('Native').$call(self["native"], key) } - }, $Object_$$$31.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Object_$$$eq$32 = function(key, value) { + $def(self, '$[]=', function $Object_$$$eq$17(key, value) { var self = this, native$ = nil; - native$ = $$$('::', 'Native').$try_convert(value); + native$ = $$$('Native').$try_convert(value); if ($truthy(native$ === nil)) { return self["native"][key] = value } else { return self["native"][key] = native$ }; - }, $Object_$$$eq$32.$$arity = 2); + }, 2); - Opal.def(self, '$merge!', $Object_merge$excl$33 = function(other) { + $def(self, '$merge!', function $Object_merge$excl$18(other) { var self = this; - other = $$$('::', 'Native').$convert(other); + other = $$$('Native').$convert(other); for (var prop in other) { self["native"][prop] = other[prop]; } ; return self; - }, $Object_merge$excl$33.$$arity = 1); + }, 1); - Opal.def(self, '$respond_to?', $Object_respond_to$ques$34 = function(name, include_all) { + $def(self, '$respond_to?', function $Object_respond_to$ques$19(name, include_all) { var self = this; - if (include_all == null) { - include_all = false; - }; - return $$$('::', 'Kernel').$instance_method("respond_to?").$bind(self).$call(name, include_all); - }, $Object_respond_to$ques$34.$$arity = -2); + if (include_all == null) include_all = false;; + return $Kernel.$instance_method("respond_to?").$bind(self).$call(name, include_all); + }, -2); - Opal.def(self, '$respond_to_missing?', $Object_respond_to_missing$ques$35 = function(name, include_all) { + $def(self, '$respond_to_missing?', function $Object_respond_to_missing$ques$20(name, include_all) { var self = this; - if (include_all == null) { - include_all = false; - }; + if (include_all == null) include_all = false;; return Opal.hasOwnProperty.call(self["native"], name); - }, $Object_respond_to_missing$ques$35.$$arity = -2); + }, -2); - Opal.def(self, '$method_missing', $Object_method_missing$36 = function $$method_missing(mid, $a) { - var $iter = $Object_method_missing$36.$$p, block = $iter || nil, $post_args, args, self = this, $writer = nil; + $def(self, '$method_missing', function $$method_missing(mid, $a) { + var block = $$method_missing.$$p || nil, $post_args, args, self = this, $writer = nil; - if ($iter) $Object_method_missing$36.$$p = null; - + delete $$method_missing.$$p; - if ($iter) $Object_method_missing$36.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if (mid.charAt(mid.length - 1) === '=') { - return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); + return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); } else { - return $send($$$('::', 'Native'), 'call', [self["native"], mid].concat(Opal.to_a(args)), block.$to_proc()); + return $send($$$('Native'), 'call', [self["native"], mid].concat($to_a(args)), block.$to_proc()); } ; - }, $Object_method_missing$36.$$arity = -2); + }, -2); - Opal.def(self, '$nil?', $Object_nil$ques$37 = function() { - var self = this; - + $def(self, '$nil?', function $Object_nil$ques$21() { + return false - }, $Object_nil$ques$37.$$arity = 0); + }, 0); - Opal.def(self, '$is_a?', $Object_is_a$ques$38 = function(klass) { + $def(self, '$is_a?', function $Object_is_a$ques$22(klass) { var self = this; return Opal.is_a(self, klass); - }, $Object_is_a$ques$38.$$arity = 1); - $alias(self, "kind_of?", "is_a?"); + }, 1); - Opal.def(self, '$instance_of?', $Object_instance_of$ques$39 = function(klass) { + $def(self, '$instance_of?', function $Object_instance_of$ques$23(klass) { var self = this; return self.$$class === klass; - }, $Object_instance_of$ques$39.$$arity = 1); + }, 1); - Opal.def(self, '$class', $Object_class$40 = function() { + $def(self, '$class', function $Object_class$24() { var self = this; return self.$$class; - }, $Object_class$40.$$arity = 0); + }, 0); - Opal.def(self, '$to_a', $Object_to_a$41 = function $$to_a(options) { - var $iter = $Object_to_a$41.$$p, block = $iter || nil, self = this; + $def(self, '$to_a', function $$to_a(options) { + var block = $$to_a.$$p || nil, self = this; - if ($iter) $Object_to_a$41.$$p = null; - + delete $$to_a.$$p; - if ($iter) $Object_to_a$41.$$p = null;; + ; - if (options == null) { - options = $hash2([], {}); - }; - return $send($$$($$$('::', 'Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); - }, $Object_to_a$41.$$arity = -1); - return (Opal.def(self, '$inspect', $Object_inspect$42 = function $$inspect() { + if (options == null) options = $hash2([], {});; + return $send($$$($$$('Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); + }, -1); + + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Object_inspect$42.$$arity = 0), nil) && 'inspect'; - })($$($nesting, 'Native'), $$($nesting, 'BasicObject'), $nesting); + return "#" + }, 0); + $alias(self, "include?", "has_key?"); + $alias(self, "key?", "has_key?"); + $alias(self, "kind_of?", "is_a?"); + return $alias(self, "member?", "has_key?"); + })($$('Native'), $$('BasicObject')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_initialize$43, $Array_each$44, $Array_$$$45, $Array_$$$eq$46, $Array_last$47, $Array_length$48, $Array_inspect$49; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.named = self.$$prototype["native"] = self.$$prototype.get = self.$$prototype.block = self.$$prototype.set = self.$$prototype.length = nil; + $proto.named = $proto["native"] = $proto.get = $proto.block = $proto.set = $proto.length = nil; - self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - self.$include($$($nesting, 'Enumerable')); + self.$include($$$($$('Native'), 'Wrapper')); + self.$include($$('Enumerable')); - Opal.def(self, '$initialize', $Array_initialize$43 = function $$initialize(native$, options) { - var $iter = $Array_initialize$43.$$p, block = $iter || nil, self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $def(self, '$initialize', function $$initialize(native$, options) { + var block = $$initialize.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $Array_initialize$43.$$p = null; + delete $$initialize.$$p; + ; - if ($iter) $Array_initialize$43.$$p = null;; - - if (options == null) { - options = $hash2([], {}); - }; - $send2(self, $find_super(self, 'initialize', $Array_initialize$43, false, true), 'initialize', [native$], null); - self.get = (function() {if ($truthy(($ret_or_1 = options['$[]']("get")))) { - return $ret_or_1 - } else { - return options['$[]']("access") - }; return nil; })(); + if (options == null) options = $hash2([], {});; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [native$], null); + self.get = ($truthy(($ret_or_1 = options['$[]']("get"))) ? ($ret_or_1) : (options['$[]']("access"))); self.named = options['$[]']("named"); - self.set = (function() {if ($truthy(($ret_or_2 = options['$[]']("set")))) { - return $ret_or_2 - } else { - return options['$[]']("access") - }; return nil; })(); - self.length = (function() {if ($truthy(($ret_or_3 = options['$[]']("length")))) { - return $ret_or_3 - } else { - return "length" - }; return nil; })(); + self.set = ($truthy(($ret_or_1 = options['$[]']("set"))) ? ($ret_or_1) : (options['$[]']("access"))); + self.length = ($truthy(($ret_or_1 = options['$[]']("length"))) ? ($ret_or_1) : ("length")); self.block = block; if ($truthy(self.$length() == null)) { - return self.$raise($$($nesting, 'ArgumentError'), "no length found on the array-like object") + return self.$raise($$('ArgumentError'), "no length found on the array-like object") } else { return nil }; - }, $Array_initialize$43.$$arity = -2); + }, -2); - Opal.def(self, '$each', $Array_each$44 = function $$each() { - var $iter = $Array_each$44.$$p, block = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Array_each$44.$$p = null; + delete $$each.$$p; - - if ($iter) $Array_each$44.$$p = null;; - if ($truthy(block)) { - } else { + ; + if (!$truthy(block)) { return self.$enum_for("each") }; @@ -615,24 +556,13 @@ Opal.modules["native"] = function(Opal) { } ; return self; - }, $Array_each$44.$$arity = 0); + }, 0); - Opal.def(self, '$[]', $Array_$$$45 = function(index) { - var self = this, result = nil, $case = nil; + $def(self, '$[]', function $Array_$$$25(index) { + var self = this, result = nil, $ret_or_1 = nil; - result = (function() {$case = index; - if ($$($nesting, 'String')['$===']($case) || $$($nesting, 'Symbol')['$===']($case)) {if ($truthy(self.named)) { - return self["native"][self.named](index) - } else { - return self["native"][index] - }} - else if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy(self.get)) { - return self["native"][self.get](index) - } else { - return self["native"][index] - }} - else { return nil }})(); + result = (($eqeqeq($$('String'), ($ret_or_1 = index)) || ($eqeqeq($$('Symbol'), $ret_or_1))) ? (($truthy(self.named) ? (self["native"][self.named](index)) : (self["native"][index]))) : ($eqeqeq($$('Integer'), $ret_or_1) ? (($truthy(self.get) ? (self["native"][self.get](index)) : (self["native"][index]))) : (nil))); if ($truthy(result)) { if ($truthy(self.block)) { return self.block.$call(result) @@ -642,26 +572,24 @@ Opal.modules["native"] = function(Opal) { } else { return nil }; - }, $Array_$$$45.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Array_$$$eq$46 = function(index, value) { + $def(self, '$[]=', function $Array_$$$eq$26(index, value) { var self = this; if ($truthy(self.set)) { - return self["native"][self.set](index, $$($nesting, 'Native').$convert(value)) + return self["native"][self.set](index, $$('Native').$convert(value)) } else { - return self["native"][index] = $$($nesting, 'Native').$convert(value) + return self["native"][index] = $$('Native').$convert(value) } - }, $Array_$$$eq$46.$$arity = 2); + }, 2); - Opal.def(self, '$last', $Array_last$47 = function $$last(count) { + $def(self, '$last', function $$last(count) { var $a, self = this, index = nil, result = nil; - if (count == null) { - count = nil; - }; + if (count == null) count = nil;; if ($truthy(count)) { index = $rb_minus(self.$length(), 1); @@ -675,107 +603,99 @@ Opal.modules["native"] = function(Opal) { } else { return self['$[]']($rb_minus(self.$length(), 1)) }; - }, $Array_last$47.$$arity = -1); + }, -1); - Opal.def(self, '$length', $Array_length$48 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self["native"][self.length] - }, $Array_length$48.$$arity = 0); - $alias(self, "to_ary", "to_a"); - return (Opal.def(self, '$inspect', $Array_inspect$49 = function $$inspect() { + }, 0); + + $def(self, '$inspect', function $$inspect() { var self = this; return self.$to_a().$inspect() - }, $Array_inspect$49.$$arity = 0), nil) && 'inspect'; - })($$($nesting, 'Native'), null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + return $alias(self, "to_ary", "to_a"); + })($$('Native'), null, $nesting); + (function($base, $super) { var self = $klass($base, $super, 'Numeric'); - var $nesting = [self].concat($parent_nesting), $Numeric_to_n$50; - - return (Opal.def(self, '$to_n', $Numeric_to_n$50 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Numeric_to_n$50.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Proc'); - var $nesting = [self].concat($parent_nesting), $Proc_to_n$51; - - return (Opal.def(self, '$to_n', $Proc_to_n$51 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self - }, $Proc_to_n$51.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_to_n$52; - - return (Opal.def(self, '$to_n', $String_to_n$52 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $String_to_n$52.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Regexp'); - var $nesting = [self].concat($parent_nesting), $Regexp_to_n$53; - - return (Opal.def(self, '$to_n', $Regexp_to_n$53 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Regexp_to_n$53.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'MatchData'); - var $nesting = [self].concat($parent_nesting), $MatchData_to_n$54; + var $proto = self.$$prototype; - self.$$prototype.matches = nil; - return (Opal.def(self, '$to_n', $MatchData_to_n$54 = function $$to_n() { + $proto.matches = nil; + return $def(self, '$to_n', function $$to_n() { var self = this; return self.matches - }, $MatchData_to_n$54.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); + }, 0) + })($nesting[0], null); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Struct'); - var $nesting = [self].concat($parent_nesting), $Struct_to_n$55; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_n', $Struct_to_n$55 = function $$to_n() { - var $$56, self = this, result = nil; + return $def(self, '$to_n', function $$to_n() { + var self = this, result = nil; result = {}; - $send(self, 'each_pair', [], ($$56 = function(name, value){var self = $$56.$$s == null ? this : $$56.$$s; - + $send(self, 'each_pair', [], function $$27(name, value){ - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (value == null) { - value = nil; - }; - return result[name] = $$($nesting, 'Native').$try_convert(value, value);}, $$56.$$s = self, $$56.$$arity = 2, $$56)); + if (value == null) value = nil;; + return result[name] = $$('Native').$try_convert(value, value);}, 2); return result; - }, $Struct_to_n$55.$$arity = 0), nil) && 'to_n' + }, 0) })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_to_n$57; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_n', $Array_to_n$57 = function $$to_n() { + return $def(self, '$to_n', function $$to_n() { var self = this; @@ -784,163 +704,159 @@ Opal.modules["native"] = function(Opal) { for (var i = 0, length = self.length; i < length; i++) { var obj = self[i]; - result.push($$($nesting, 'Native').$try_convert(obj, obj)); + result.push($$('Native').$try_convert(obj, obj)); } return result; - }, $Array_to_n$57.$$arity = 0), nil) && 'to_n' + }, 0) })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Boolean'); - var $nesting = [self].concat($parent_nesting), $Boolean_to_n$58; - - return (Opal.def(self, '$to_n', $Boolean_to_n$58 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self.valueOf(); - }, $Boolean_to_n$58.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Time'); - var $nesting = [self].concat($parent_nesting), $Time_to_n$59; - - return (Opal.def(self, '$to_n', $Time_to_n$59 = function $$to_n() { + + return $def(self, '$to_n', function $$to_n() { var self = this; return self - }, $Time_to_n$59.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'NilClass'); - var $nesting = [self].concat($parent_nesting), $NilClass_to_n$60; - - return (Opal.def(self, '$to_n', $NilClass_to_n$60 = function $$to_n() { - var self = this; - + + return $def(self, '$to_n', function $$to_n() { + return null; - }, $NilClass_to_n$60.$$arity = 0), nil) && 'to_n' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Hash'); + }, 0) + })($nesting[0], null); + if (!$truthy($$('Hash')['$method_defined?']("_initialize"))) { + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hash'); - var $nesting = [self].concat($parent_nesting), $Hash_initialize$61, $Hash_to_n$62; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - - $alias(self, "_initialize", "initialize"); - - Opal.def(self, '$initialize', $Hash_initialize$61 = function $$initialize(defaults) { - var $iter = $Hash_initialize$61.$$p, block = $iter || nil, self = this; - - if ($iter) $Hash_initialize$61.$$p = null; - - if ($iter) $Hash_initialize$61.$$p = null;; - ; + $alias(self, "_initialize", "initialize"); - if (defaults != null && - (defaults.constructor === undefined || - defaults.constructor === Object)) { - var smap = self.$$smap, - keys = self.$$keys, - key, value; + $def(self, '$initialize', function $$initialize(defaults) { + var block = $$initialize.$$p || nil, self = this; - for (key in defaults) { - value = defaults[key]; - - if (value && - (value.constructor === undefined || - value.constructor === Object)) { - smap[key] = $$($nesting, 'Hash').$new(value); - } else if (value && value.$$is_array) { - value = value.map(function(item) { - if (item && - (item.constructor === undefined || - item.constructor === Object)) { - return $$($nesting, 'Hash').$new(item); - } - - return self.$Native(item); - }); - smap[key] = value - } else { - smap[key] = self.$Native(value); + delete $$initialize.$$p; + + ; + ; + + if (defaults != null && + (defaults.constructor === undefined || + defaults.constructor === Object)) { + var smap = self.$$smap, + keys = self.$$keys, + key, value; + + for (key in defaults) { + value = defaults[key]; + + if (value && + (value.constructor === undefined || + value.constructor === Object)) { + smap[key] = $$('Hash').$new(value); + } else if (value && value.$$is_array) { + value = value.map(function(item) { + if (item && + (item.constructor === undefined || + item.constructor === Object)) { + return $$('Hash').$new(item); + } + + return self.$Native(item); + }); + smap[key] = value + } else { + smap[key] = self.$Native(value); + } + + keys.push(key); } - keys.push(key); + return self; } - return self; - } + return $send(self, '_initialize', [defaults], block.$to_proc()); + ; + }, -1); + return $def(self, '$to_n', function $$to_n() { + var self = this; - return $send(self, '_initialize', [defaults], block.$to_proc()); - ; - }, $Hash_initialize$61.$$arity = -1); - return (Opal.def(self, '$to_n', $Hash_to_n$62 = function $$to_n() { - var self = this; + + var result = {}, + keys = self.$$keys, + smap = self.$$smap, + key, value; - - var result = {}, - keys = self.$$keys, - smap = self.$$smap, - key, value; + for (var i = 0, length = keys.length; i < length; i++) { + key = keys[i]; - for (var i = 0, length = keys.length; i < length; i++) { - key = keys[i]; + if (key.$$is_string) { + value = smap[key]; + } else { + key = key.key; + value = key.value; + } - if (key.$$is_string) { - value = smap[key]; - } else { - key = key.key; - value = key.value; + result[key] = $$('Native').$try_convert(value, value); } - result[key] = $$($nesting, 'Native').$try_convert(value, value); - } - - return result; - - }, $Hash_to_n$62.$$arity = 0), nil) && 'to_n'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + return result; + + }, 0); + })($nesting[0], null, $nesting) + }; + (function($base, $super) { var self = $klass($base, $super, 'Module'); - var $nesting = [self].concat($parent_nesting), $Module_native_module$63; - - return (Opal.def(self, '$native_module', $Module_native_module$63 = function $$native_module() { + + return $def(self, '$native_module', function $$native_module() { var self = this; return Opal.global[self.$name()] = self - }, $Module_native_module$63.$$arity = 0), nil) && 'native_module' - })($nesting[0], null, $nesting); + }, 0) + })($nesting[0], null); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Class'); - var $nesting = [self].concat($parent_nesting), $Class_native_alias$64, $Class_native_class$65; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$native_alias', $Class_native_alias$64 = function $$native_alias(new_jsid, existing_mid) { + $def(self, '$native_alias', function $$native_alias(new_jsid, existing_mid) { var self = this; var aliased = self.prototype['$' + existing_mid]; if (!aliased) { - self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); + self.$raise($$('NameError').$new("undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); } self.prototype[new_jsid] = aliased; - }, $Class_native_alias$64.$$arity = 2); - return (Opal.def(self, '$native_class', $Class_native_class$65 = function $$native_class() { + }, 2); + return $def(self, '$native_class', function $$native_class() { var self = this; self.$native_module(); return self["new"] = self.$new;; - }, $Class_native_class$65.$$arity = 0), nil) && 'native_class'; + }, 0); })($nesting[0], null, $nesting); return ($gvars.$ = ($gvars.global = self.$Native(Opal.global))); }; diff --git a/opal/master/native.min.js b/opal/master/native.min.js index ff598595..fd2f0152 100644 --- a/opal/master/native.min.js +++ b/opal/master/native.min.js @@ -1 +1 @@ -Opal.modules.native=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var $base,$Object_inspect$42,$Object_class$40,$Object_each$30,$Object_method_missing$36,$Object_to_a$41,self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2,$range=Opal.range,$alias=Opal.alias,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$gvars=Opal.gvars;return Opal.add_stubs(["$try_convert","$native?","$respond_to?","$to_n","$raise","$inspect","$Native","$proc","$map!","$end_with?","$define_method","$[]","$convert","$call","$to_proc","$new","$each","$native_reader","$native_writer","$extend","$warn","$include","$is_a?","$map","$to_a","$_Array","$method_missing","$bind","$instance_method","$slice","$-","$length","$[]=","$enum_for","$===","$>=","$<<","$each_pair","$_initialize","$name","$native_module"]),function($Native_included$22,$Native_convert$3){var $Native_call$4,$Native_proc$5,$nesting=[$Native_included$22=$module($Native_included$22,"Native")].concat($Native_convert$3);Opal.defs($Native_included$22,"$is_a?",$Native_convert$3=function(object,klass){try{return object instanceof this.$try_convert(klass)}catch(e){return!1}},$Native_convert$3.$$arity=2),Opal.defs($Native_included$22,"$try_convert",$Native_convert$3=function(value,default$){return null==default$&&(default$=nil),this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():default$},$Native_convert$3.$$arity=-2),Opal.defs($Native_included$22,"$convert",$Native_convert$3=function(value){return this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():void this.$raise($$($nesting,"ArgumentError"),value.$inspect()+" isn't native")},$Native_convert$3.$$arity=1),Opal.defs($Native_included$22,"$call",$Native_call$4=function(obj,key,$a){var args,prop=$Native_call$4.$$p,block=prop||nil;prop&&($Native_call$4.$$p=null),prop&&($Native_call$4.$$p=null),args=Opal.slice.call(arguments,2,arguments.length);prop=obj[key];if(prop instanceof Function){for(var converted=new Array(args.length),i=0,l=args.length;i"},$Object_inspect$42.$$arity=0),function($Array_inspect$49,$Array_length$48){var $Array_initialize$43,$Array_each$44,$nesting=[$Array_inspect$49=$klass($Array_inspect$49,null,"Array")].concat($Array_length$48);$Array_inspect$49.$$prototype.named=$Array_inspect$49.$$prototype.native=$Array_inspect$49.$$prototype.get=$Array_inspect$49.$$prototype.block=$Array_inspect$49.$$prototype.set=$Array_inspect$49.$$prototype.length=nil,$Array_inspect$49.$include($$$($$($nesting,"Native"),"Wrapper")),$Array_inspect$49.$include($$($nesting,"Enumerable")),Opal.def($Array_inspect$49,"$initialize",$Array_initialize$43=function(native$,options){var $iter=$Array_initialize$43.$$p,block=$iter||nil,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return $iter&&($Array_initialize$43.$$p=null),$iter&&($Array_initialize$43.$$p=null),null==options&&(options=$hash2([],{})),$send2(this,$find_super(this,"initialize",$Array_initialize$43,!1,!0),"initialize",[native$],null),this.get=$truthy($ret_or_1=options["$[]"]("get"))?$ret_or_1:options["$[]"]("access"),this.named=options["$[]"]("named"),this.set=$truthy($ret_or_2=options["$[]"]("set"))?$ret_or_2:options["$[]"]("access"),this.length=$truthy($ret_or_3=options["$[]"]("length"))?$ret_or_3:"length",this.block=block,$truthy(null==this.$length())?this.$raise($$($nesting,"ArgumentError"),"no length found on the array-like object"):nil},$Array_initialize$43.$$arity=-2),Opal.def($Array_inspect$49,"$each",$Array_each$44=function(){var $iter=$Array_each$44.$$p,block=$iter||nil;if($iter&&($Array_each$44.$$p=null),$iter&&($Array_each$44.$$p=null),!$truthy(block))return this.$enum_for("each");for(var i=0,length=this.$length();i="](rhs)));)result["$<<"](this["$[]"](index)),index=$rb_minus(index,1);return result}return this["$[]"]($rb_minus(this.$length(),1))},$Array_length$48.$$arity=-1),Opal.def($Array_inspect$49,"$length",$Array_length$48=function(){return this.native[this.length]},$Array_length$48.$$arity=0),$alias($Array_inspect$49,"to_ary","to_a"),Opal.def($Array_inspect$49,"$inspect",$Array_inspect$49=function(){return this.$to_a().$inspect()},$Array_inspect$49.$$arity=0)}($$($nesting,"Native"),$nesting),function($Numeric_to_n$50,$parent_nesting){[$Numeric_to_n$50=$klass($Numeric_to_n$50,null,"Numeric")].concat($parent_nesting),Opal.def($Numeric_to_n$50,"$to_n",$Numeric_to_n$50=function(){return this.valueOf()},$Numeric_to_n$50.$$arity=0)}($nesting[0],$nesting),function($Proc_to_n$51,$parent_nesting){[$Proc_to_n$51=$klass($Proc_to_n$51,null,"Proc")].concat($parent_nesting),Opal.def($Proc_to_n$51,"$to_n",$Proc_to_n$51=function(){return this},$Proc_to_n$51.$$arity=0)}($nesting[0],$nesting),function($String_to_n$52,$parent_nesting){[$String_to_n$52=$klass($String_to_n$52,null,"String")].concat($parent_nesting),Opal.def($String_to_n$52,"$to_n",$String_to_n$52=function(){return this.valueOf()},$String_to_n$52.$$arity=0)}($nesting[0],$nesting),function($Regexp_to_n$53,$parent_nesting){[$Regexp_to_n$53=$klass($Regexp_to_n$53,null,"Regexp")].concat($parent_nesting),Opal.def($Regexp_to_n$53,"$to_n",$Regexp_to_n$53=function(){return this.valueOf()},$Regexp_to_n$53.$$arity=0)}($nesting[0],$nesting),function($MatchData_to_n$54,$parent_nesting){[$MatchData_to_n$54=$klass($MatchData_to_n$54,null,"MatchData")].concat($parent_nesting),$MatchData_to_n$54.$$prototype.matches=nil,Opal.def($MatchData_to_n$54,"$to_n",$MatchData_to_n$54=function(){return this.matches},$MatchData_to_n$54.$$arity=0)}($nesting[0],$nesting),function($Struct_to_n$55,$parent_nesting){var $nesting=[$Struct_to_n$55=$klass($Struct_to_n$55,null,"Struct")].concat($parent_nesting);Opal.def($Struct_to_n$55,"$to_n",$Struct_to_n$55=function(){var $$56,result=nil,result={};return $send(this,"each_pair",[],(($$56=function(name,value){null==$$56.$$s||$$56.$$s;return null==name&&(name=nil),null==value&&(value=nil),result[name]=$$($nesting,"Native").$try_convert(value,value)}).$$s=this,$$56.$$arity=2,$$56)),result},$Struct_to_n$55.$$arity=0)}($nesting[0],$nesting),function($Array_to_n$57,$parent_nesting){var $nesting=[$Array_to_n$57=$klass($Array_to_n$57,null,"Array")].concat($parent_nesting);Opal.def($Array_to_n$57,"$to_n",$Array_to_n$57=function(){for(var result=[],i=0,length=this.length;i=,<<,each_pair,method_defined?,_initialize,name,native_module"),function($base,$parent_nesting){var self=$module($base,"Native"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$is_a?",(function(object,klass){try{return object instanceof this.$try_convert(klass)}catch(e){return!1}}),2),$defs(self,"$try_convert",(function(value,default$){return null==default$&&(default$=nil),this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():default$}),-2),$defs(self,"$convert",(function(value){return this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():void this.$raise($$("ArgumentError"),value.$inspect()+" isn't native")}),1),$defs(self,"$call",(function $$call(obj,key,$a){var args,block=$$call.$$p||nil,self=this;delete $$call.$$p,args=Opal.slice.call(arguments,2);var prop=obj[key];if(prop instanceof Function){for(var converted=new Array(args.length),i=0,l=args.length;i0&&(old=$post_args.shift()),null==old&&(old=new$),null==(as=$kwargs.$$smap.as)&&(as=nil),$truthy(old["$end_with?"]("="))?$send(self,"define_method",[new$],(function $$4(value){var self=null==$$4.$$s?this:$$4.$$s;return null==self.native&&(self.native=nil),null==value&&(value=nil),self.native[old["$[]"]($range(0,-2,!1))]=$$("Native").$convert(value),value}),{$$arity:1,$$s:self}):$truthy(as)?$send(self,"define_method",[new$],(function $$5($c){var args,block=$$5.$$p||nil,self=null==$$5.$$s?this:$$5.$$s,value=nil;return null==self.native&&(self.native=nil),delete $$5.$$p,args=Opal.slice.call(arguments),value=$send($$("Native"),"call",[self.native,old].concat($to_a(args)),block.$to_proc()),$truthy(value)?as.$new(value.$to_n()):nil}),{$$arity:-1,$$s:self}):$send(self,"define_method",[new$],(function $$6($c){var args,block=$$6.$$p||nil,self=null==$$6.$$s?this:$$6.$$s;return null==self.native&&(self.native=nil),delete $$6.$$p,args=Opal.slice.call(arguments),$send($$("Native"),"call",[self.native,old].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:self})}),-2),$def(self,"$native_reader",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$7(name){var self=null==$$7.$$s?this:$$7.$$s;return null==name&&(name=nil),$send(self,"define_method",[name],(function $$8(){var self=null==$$8.$$s?this:$$8.$$s;return null==self.native&&(self.native=nil),self.$Native(self.native[name])}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:self})}),-1),$def(self,"$native_writer",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$9(name){var self=null==$$9.$$s?this:$$9.$$s;return null==name&&(name=nil),$send(self,"define_method",[name+"="],(function $$10(value){var self=null==$$10.$$s?this:$$10.$$s;return null==self.native&&(self.native=nil),null==value&&(value=nil),self.$Native(self.native[name]=value)}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})}),-1),$def(self,"$native_accessor",(function($a){var $post_args,names,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"native_reader",$to_a(names=$post_args)),$send(self,"native_writer",$to_a(names))}),-1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Wrapper"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$initialize",(function(native$){return $truthy($Kernel["$native?"](native$))||$Kernel.$raise($$("ArgumentError"),native$.$inspect()+" isn't native"),this.native=native$}),1),$def(self,"$to_n",(function(){return null==this.native&&(this.native=nil),this.native}),0),$defs(self,"$included",(function(klass){return klass.$extend($$("Helpers"))}),1)}($nesting[0],$nesting),$defs(self,"$included",(function(base){return this.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),base.$include($$("Wrapper"))}),1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$native?",(function(value){return null==value||!value.$$class}),1),$def(self,"$Native",(function $$Native(obj){return delete $$Native.$$p,$truthy(null==obj)?nil:$truthy(this["$native?"](obj))?$$$($$("Native"),"Object").$new(obj):$truthy(obj["$is_a?"]($$("Array")))?$send(obj,"map",[],(function $$12(o){return null==o&&(o=nil),(null==$$12.$$s?this:$$12.$$s).$Native(o)}),{$$arity:1,$$s:this}):$truthy(obj["$is_a?"]($$("Proc")))?$send(this,"proc",[],(function $$13($a){var args,block=$$13.$$p||nil,self=null==$$13.$$s?this:$$13.$$s;return delete $$13.$$p,args=Opal.slice.call(arguments),self.$Native($send(obj,"call",$to_a(args),block.$to_proc()))}),{$$arity:-1,$$s:this}):obj}),1),$alias(self,"_Array","Array"),$def(self,"$Array",(function $$Array(object,$a){var args,block=$$Array.$$p||nil,self=this;return delete $$Array.$$p,args=Opal.slice.call(arguments,1),$truthy(self["$native?"](object))?$send($$$($$("Native"),"Array"),"new",[object].concat($to_a(args)),block.$to_proc()).$to_a():self.$_Array(object)}),-2)}($nesting[0],$nesting),function($base,$super){var self=$klass($base,$super,"Object");self.$$prototype.native=nil,self.$include($$$($$$("Native"),"Wrapper")),$def(self,"$==",(function(other){return this.native===$$$("Native").$try_convert(other)}),1),$def(self,"$has_key?",(function(name){return Opal.hasOwnProperty.call(this.native,name)}),1),$def(self,"$each",(function $$each($a){var args,$yield=$$each.$$p||nil,self=this;if(delete $$each.$$p,args=Opal.slice.call(arguments),$yield!==nil){for(var key in self.native)Opal.yieldX($yield,[key,self.native[key]]);return self}return $send(self,"method_missing",["each"].concat($to_a(args)))}),-1),$def(self,"$[]",(function(key){var prop=this.native[key];return prop instanceof Function?prop:$$$("Native").$call(this.native,key)}),1),$def(self,"$[]=",(function(key,value){var native$;return native$=$$$("Native").$try_convert(value),$truthy(native$===nil)?this.native[key]=value:this.native[key]=native$}),2),$def(self,"$merge!",(function(other){for(var prop in other=$$$("Native").$convert(other))this.native[prop]=other[prop];return this}),1),$def(self,"$respond_to?",(function(name,include_all){return null==include_all&&(include_all=!1),$Kernel.$instance_method("respond_to?").$bind(this).$call(name,include_all)}),-2),$def(self,"$respond_to_missing?",(function(name,include_all){return null==include_all&&(include_all=!1),Opal.hasOwnProperty.call(this.native,name)}),-2),$def(self,"$method_missing",(function $$method_missing(mid,$a){var args,block=$$method_missing.$$p||nil,self=this,$writer=nil;return delete $$method_missing.$$p,args=Opal.slice.call(arguments,1),"="===mid.charAt(mid.length-1)?($writer=[mid.$slice(0,$rb_minus(mid.$length(),1)),args["$[]"](0)],$send(self,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$send($$$("Native"),"call",[self.native,mid].concat($to_a(args)),block.$to_proc())}),-2),$def(self,"$nil?",(function(){return!1}),0),$def(self,"$is_a?",(function(klass){return Opal.is_a(this,klass)}),1),$def(self,"$instance_of?",(function(klass){return this.$$class===klass}),1),$def(self,"$class",(function(){return this.$$class}),0),$def(self,"$to_a",(function $$to_a(options){var block=$$to_a.$$p||nil;return delete $$to_a.$$p,null==options&&(options=$hash2([],{})),$send($$$($$$("Native"),"Array"),"new",[this.native,options],block.$to_proc()).$to_a()}),-1),$def(self,"$inspect",(function(){return"#"}),0),$alias(self,"include?","has_key?"),$alias(self,"key?","has_key?"),$alias(self,"kind_of?","is_a?"),$alias(self,"member?","has_key?")}($$("Native"),$$("BasicObject")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Array"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.named=$proto.native=$proto.get=$proto.block=$proto.set=$proto.length=nil,self.$include($$$($$("Native"),"Wrapper")),self.$include($$("Enumerable")),$def(self,"$initialize",(function $$initialize(native$,options){var block=$$initialize.$$p||nil,$ret_or_1=nil;return delete $$initialize.$$p,null==options&&(options=$hash2([],{})),$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[native$],null),this.get=$truthy($ret_or_1=options["$[]"]("get"))?$ret_or_1:options["$[]"]("access"),this.named=options["$[]"]("named"),this.set=$truthy($ret_or_1=options["$[]"]("set"))?$ret_or_1:options["$[]"]("access"),this.length=$truthy($ret_or_1=options["$[]"]("length"))?$ret_or_1:"length",this.block=block,$truthy(null==this.$length())?this.$raise($$("ArgumentError"),"no length found on the array-like object"):nil}),-2),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;if(delete $$each.$$p,!$truthy(block))return this.$enum_for("each");for(var i=0,length=this.$length();i=,<<,each_pair,method_defined?,_initialize,name,native_module'); + + (function($base, $parent_nesting) { + var self = $module($base, 'Native'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $defs(self, '$is_a?', function $Native_is_a$ques$1(object, klass) { + var self = this; + + + try { + return object instanceof self.$try_convert(klass); + } + catch (e) { + return false; + } + + }, 2); + $defs(self, '$try_convert', function $$try_convert(value, default$) { + var self = this; + + + + if (default$ == null) default$ = nil;; + + if (self['$native?'](value)) { + return value; + } + else if (value['$respond_to?']("to_n")) { + return value.$to_n(); + } + else { + return default$; + } + ; + }, -2); + $defs(self, '$convert', function $$convert(value) { + var self = this; + + + if (self['$native?'](value)) { + return value; + } + else if (value['$respond_to?']("to_n")) { + return value.$to_n(); + } + else { + self.$raise($$('ArgumentError'), "" + (value.$inspect()) + " isn't native"); + } + + }, 1); + $defs(self, '$call', function $$call(obj, key, $a) { + var block = $$call.$$p || nil, $post_args, args, self = this; + + delete $$call.$$p; + + ; + + $post_args = Opal.slice.call(arguments, 2); + + args = $post_args;; + + var prop = obj[key]; + + if (prop instanceof Function) { + var converted = new Array(args.length); + + for (var i = 0, l = args.length; i < l; i++) { + var item = args[i], + conv = self.$try_convert(item); + + converted[i] = conv === nil ? item : conv; + } + + if (block !== nil) { + converted.push(block); + } + + return self.$Native(prop.apply(obj, converted)); + } + else { + return self.$Native(prop); + } + ; + }, -3); + $defs(self, '$proc', function $$proc() { + var block = $$proc.$$p || nil, self = this; + + delete $$proc.$$p; + + ; + if (!$truthy(block)) { + self.$raise($$('LocalJumpError'), "no block given") + }; + return $send($Kernel, 'proc', [], function $$2($a){var $post_args, args, self = $$2.$$s == null ? this : $$2.$$s, instance = nil; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + $send(args, 'map!', [], function $$3(arg){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (arg == null) arg = nil;; + return self.$Native(arg);}, {$$arity: 1, $$s: self}); + instance = self.$Native(this); + + // if global is current scope, run the block in the scope it was defined + if (this === Opal.global) { + return block.apply(self, args); + } + + var self_ = block.$$s; + block.$$s = null; + + try { + return block.apply(instance, args); + } + finally { + block.$$s = self_; + } + ;}, {$$arity: -1, $$s: self}); + }, 0); + (function($base, $parent_nesting) { + var self = $module($base, 'Helpers'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$alias_native', function $$alias_native(new$, $a, $b) { + var $post_args, $kwargs, old, as, $yield = $$alias_native.$$p || nil, self = this; + + delete $$alias_native.$$p; + + + $post_args = Opal.slice.call(arguments, 1); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) old = $post_args.shift(); + if (old == null) old = new$;; + + as = $kwargs.$$smap["as"]; + if (as == null) as = nil; + if ($truthy(old['$end_with?']("="))) { + return $send(self, 'define_method', [new$], function $$4(value){var self = $$4.$$s == null ? this : $$4.$$s; + if (self["native"] == null) self["native"] = nil; + + + + if (value == null) value = nil;; + self["native"][old['$[]']($range(0, -2, false))] = $$('Native').$convert(value); + return value;}, {$$arity: 1, $$s: self}) + } else if ($truthy(as)) { + return $send(self, 'define_method', [new$], function $$5($c){var block = $$5.$$p || nil, $post_args, args, self = $$5.$$s == null ? this : $$5.$$s, value = nil; + if (self["native"] == null) self["native"] = nil; + + delete $$5.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + value = $send($$('Native'), 'call', [self["native"], old].concat($to_a(args)), block.$to_proc()); + if ($truthy(value)) { + return as.$new(value.$to_n()) + } else { + return nil + };}, {$$arity: -1, $$s: self}) + } else { + return $send(self, 'define_method', [new$], function $$6($c){var block = $$6.$$p || nil, $post_args, args, self = $$6.$$s == null ? this : $$6.$$s; + if (self["native"] == null) self["native"] = nil; + + delete $$6.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send($$('Native'), 'call', [self["native"], old].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + }; + }, -2); + + $def(self, '$native_reader', function $$native_reader($a) { + var $post_args, names, self = this; + + + + $post_args = Opal.slice.call(arguments); + + names = $post_args;; + return $send(names, 'each', [], function $$7(name){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (name == null) name = nil;; + return $send(self, 'define_method', [name], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; + if (self["native"] == null) self["native"] = nil; + + return self.$Native(self["native"][name])}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); + }, -1); + + $def(self, '$native_writer', function $$native_writer($a) { + var $post_args, names, self = this; + + + + $post_args = Opal.slice.call(arguments); + + names = $post_args;; + return $send(names, 'each', [], function $$9(name){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (name == null) name = nil;; + return $send(self, 'define_method', ["" + (name) + "="], function $$10(value){var self = $$10.$$s == null ? this : $$10.$$s; + if (self["native"] == null) self["native"] = nil; + + + + if (value == null) value = nil;; + return self.$Native(self["native"][name] = value);}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + }, -1); + return $def(self, '$native_accessor', function $$native_accessor($a) { + var $post_args, names, self = this; + + + + $post_args = Opal.slice.call(arguments); + + names = $post_args;; + $send(self, 'native_reader', $to_a(names)); + return $send(self, 'native_writer', $to_a(names)); + }, -1); + })($nesting[0], $nesting); + (function($base, $parent_nesting) { + var self = $module($base, 'Wrapper'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$initialize', function $$initialize(native$) { + var self = this; + + + if (!$truthy($Kernel['$native?'](native$))) { + $Kernel.$raise($$('ArgumentError'), "" + (native$.$inspect()) + " isn't native") + }; + return (self["native"] = native$); + }, 1); + + $def(self, '$to_n', function $$to_n() { + var self = this; + if (self["native"] == null) self["native"] = nil; + + return self["native"] + }, 0); + return $defs(self, '$included', function $$included(klass) { + + return klass.$extend($$('Helpers')) + }, 1); + })($nesting[0], $nesting); + return $defs(self, '$included', function $$included(base) { + var self = this; + + + self.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."); + return base.$include($$('Wrapper')); + }, 1); + })($nesting[0], $nesting); (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_node_require$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$native?', function $Kernel_native$ques$11(value) { + + return value == null || !value.$$class; + }, 1); + + $def(self, '$Native', function $$Native(obj) { + var $yield = $$Native.$$p || nil, self = this; + + delete $$Native.$$p; + if ($truthy(obj == null)) { + return nil + } else if ($truthy(self['$native?'](obj))) { + return $$$($$('Native'), 'Object').$new(obj) + } else if ($truthy(obj['$is_a?']($$('Array')))) { + return $send(obj, 'map', [], function $$12(o){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (o == null) o = nil;; + return self.$Native(o);}, {$$arity: 1, $$s: self}) + } else if ($truthy(obj['$is_a?']($$('Proc')))) { + return $send(self, 'proc', [], function $$13($a){var block = $$13.$$p || nil, $post_args, args, self = $$13.$$s == null ? this : $$13.$$s; + + delete $$13.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return self.$Native($send(obj, 'call', $to_a(args), block.$to_proc()));}, {$$arity: -1, $$s: self}) + } else { + return obj + } + }, 1); + $alias(self, "_Array", "Array"); + return $def(self, '$Array', function $$Array(object, $a) { + var block = $$Array.$$p || nil, $post_args, args, self = this; + + delete $$Array.$$p; + + ; + + $post_args = Opal.slice.call(arguments, 1); + + args = $post_args;; + if ($truthy(self['$native?'](object))) { + return $send($$$($$('Native'), 'Array'), 'new', [object].concat($to_a(args)), block.$to_proc()).$to_a() + }; + return self.$_Array(object); + }, -2); + })($nesting[0], $nesting); + (function($base, $super) { + var self = $klass($base, $super, 'Object'); + + var $proto = self.$$prototype; + + $proto["native"] = nil; + + self.$include($$$($$$('Native'), 'Wrapper')); + + $def(self, '$==', function $Object_$eq_eq$14(other) { + var self = this; + + return self["native"] === $$$('Native').$try_convert(other) + }, 1); + + $def(self, '$has_key?', function $Object_has_key$ques$15(name) { + var self = this; + + return Opal.hasOwnProperty.call(self["native"], name) + }, 1); + + $def(self, '$each', function $$each($a) { + var $post_args, args, $yield = $$each.$$p || nil, self = this; + + delete $$each.$$p; + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + if (($yield !== nil)) { + + + for (var key in self["native"]) { + Opal.yieldX($yield, [key, self["native"][key]]) + } + ; + return self; + } else { + return $send(self, 'method_missing', ["each"].concat($to_a(args))) + }; + }, -1); + + $def(self, '$[]', function $Object_$$$16(key) { + var self = this; + + + var prop = self["native"][key]; + + if (prop instanceof Function) { + return prop; + } + else { + return $$$('Native').$call(self["native"], key) + } + + }, 1); + + $def(self, '$[]=', function $Object_$$$eq$17(key, value) { + var self = this, native$ = nil; + + + native$ = $$$('Native').$try_convert(value); + if ($truthy(native$ === nil)) { + return self["native"][key] = value + } else { + return self["native"][key] = native$ + }; + }, 2); + + $def(self, '$merge!', function $Object_merge$excl$18(other) { + var self = this; + + + + other = $$$('Native').$convert(other); + + for (var prop in other) { + self["native"][prop] = other[prop]; + } + ; + return self; + }, 1); + + $def(self, '$respond_to?', function $Object_respond_to$ques$19(name, include_all) { + var self = this; + + + + if (include_all == null) include_all = false;; + return $Kernel.$instance_method("respond_to?").$bind(self).$call(name, include_all); + }, -2); + + $def(self, '$respond_to_missing?', function $Object_respond_to_missing$ques$20(name, include_all) { + var self = this; + + + + if (include_all == null) include_all = false;; + return Opal.hasOwnProperty.call(self["native"], name); + }, -2); + + $def(self, '$method_missing', function $$method_missing(mid, $a) { + var block = $$method_missing.$$p || nil, $post_args, args, self = this, $writer = nil; + + delete $$method_missing.$$p; + + ; + + $post_args = Opal.slice.call(arguments, 1); + + args = $post_args;; + + if (mid.charAt(mid.length - 1) === '=') { + return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); + } + else { + return $send($$$('Native'), 'call', [self["native"], mid].concat($to_a(args)), block.$to_proc()); + } + ; + }, -2); + + $def(self, '$nil?', function $Object_nil$ques$21() { + + return false + }, 0); + + $def(self, '$is_a?', function $Object_is_a$ques$22(klass) { + var self = this; + + return Opal.is_a(self, klass); + }, 1); + + $def(self, '$instance_of?', function $Object_instance_of$ques$23(klass) { + var self = this; + + return self.$$class === klass; + }, 1); + + $def(self, '$class', function $Object_class$24() { + var self = this; + + return self.$$class; + }, 0); + + $def(self, '$to_a', function $$to_a(options) { + var block = $$to_a.$$p || nil, self = this; + + delete $$to_a.$$p; + + ; + + if (options == null) options = $hash2([], {});; + return $send($$$($$$('Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); + }, -1); + + $def(self, '$inspect', function $$inspect() { + var self = this; + + return "#" + }, 0); + $alias(self, "include?", "has_key?"); + $alias(self, "key?", "has_key?"); + $alias(self, "kind_of?", "is_a?"); + return $alias(self, "member?", "has_key?"); + })($$('Native'), $$('BasicObject')); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Array'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.named = $proto["native"] = $proto.get = $proto.block = $proto.set = $proto.length = nil; + + self.$include($$$($$('Native'), 'Wrapper')); + self.$include($$('Enumerable')); + + $def(self, '$initialize', function $$initialize(native$, options) { + var block = $$initialize.$$p || nil, self = this, $ret_or_1 = nil; + + delete $$initialize.$$p; + + ; + + if (options == null) options = $hash2([], {});; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [native$], null); + self.get = ($truthy(($ret_or_1 = options['$[]']("get"))) ? ($ret_or_1) : (options['$[]']("access"))); + self.named = options['$[]']("named"); + self.set = ($truthy(($ret_or_1 = options['$[]']("set"))) ? ($ret_or_1) : (options['$[]']("access"))); + self.length = ($truthy(($ret_or_1 = options['$[]']("length"))) ? ($ret_or_1) : ("length")); + self.block = block; + if ($truthy(self.$length() == null)) { + return self.$raise($$('ArgumentError'), "no length found on the array-like object") + } else { + return nil + }; + }, -2); + + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; + + delete $$each.$$p; + + ; + if (!$truthy(block)) { + return self.$enum_for("each") + }; + + for (var i = 0, length = self.$length(); i < length; i++) { + Opal.yield1(block, self['$[]'](i)); + } + ; + return self; + }, 0); + + $def(self, '$[]', function $Array_$$$25(index) { + var self = this, result = nil, $ret_or_1 = nil; + + + result = (($eqeqeq($$('String'), ($ret_or_1 = index)) || ($eqeqeq($$('Symbol'), $ret_or_1))) ? (($truthy(self.named) ? (self["native"][self.named](index)) : (self["native"][index]))) : ($eqeqeq($$('Integer'), $ret_or_1) ? (($truthy(self.get) ? (self["native"][self.get](index)) : (self["native"][index]))) : (nil))); + if ($truthy(result)) { + if ($truthy(self.block)) { + return self.block.$call(result) + } else { + return self.$Native(result) + } + } else { + return nil + }; + }, 1); + + $def(self, '$[]=', function $Array_$$$eq$26(index, value) { + var self = this; + + if ($truthy(self.set)) { + return self["native"][self.set](index, $$('Native').$convert(value)) + } else { + return self["native"][index] = $$('Native').$convert(value) + } + }, 2); + + $def(self, '$last', function $$last(count) { + var $a, self = this, index = nil, result = nil; + + + + if (count == null) count = nil;; + if ($truthy(count)) { + + index = $rb_minus(self.$length(), 1); + result = []; + while ($truthy($rb_ge(index, 0))) { + + result['$<<'](self['$[]'](index)); + index = $rb_minus(index, 1); + }; + return result; + } else { + return self['$[]']($rb_minus(self.$length(), 1)) + }; + }, -1); + + $def(self, '$length', function $$length() { + var self = this; + + return self["native"][self.length] + }, 0); + + $def(self, '$inspect', function $$inspect() { + var self = this; + + return self.$to_a().$inspect() + }, 0); + return $alias(self, "to_ary", "to_a"); + })($$('Native'), null, $nesting); + (function($base, $super) { + var self = $klass($base, $super, 'Numeric'); + + + return $def(self, '$to_n', function $$to_n() { + var self = this; + + return self.valueOf(); + }, 0) + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'Proc'); + + + return $def(self, '$to_n', function $$to_n() { + var self = this; + + return self + }, 0) + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'String'); + + + return $def(self, '$to_n', function $$to_n() { + var self = this; + + return self.valueOf(); + }, 0) + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'Regexp'); + + + return $def(self, '$to_n', function $$to_n() { + var self = this; + + return self.valueOf(); + }, 0) + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'MatchData'); + + var $proto = self.$$prototype; + + $proto.matches = nil; + return $def(self, '$to_n', function $$to_n() { + var self = this; + + return self.matches + }, 0) + })($nesting[0], null); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Struct'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$to_n', function $$to_n() { + var self = this, result = nil; + + + result = {}; + $send(self, 'each_pair', [], function $$27(name, value){ + + + if (name == null) name = nil;; + + if (value == null) value = nil;; + return result[name] = $$('Native').$try_convert(value, value);}, 2); + return result; + }, 0) + })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Array'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$to_n', function $$to_n() { + var self = this; + + + var result = []; + + for (var i = 0, length = self.length; i < length; i++) { + var obj = self[i]; + + result.push($$('Native').$try_convert(obj, obj)); + } + + return result; + + }, 0) + })($nesting[0], null, $nesting); + (function($base, $super) { + var self = $klass($base, $super, 'Boolean'); + + + return $def(self, '$to_n', function $$to_n() { + var self = this; + + return self.valueOf(); + }, 0) + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'Time'); + + + return $def(self, '$to_n', function $$to_n() { + var self = this; + + return self + }, 0) + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'NilClass'); + + + return $def(self, '$to_n', function $$to_n() { + + return null; + }, 0) + })($nesting[0], null); + if (!$truthy($$('Hash')['$method_defined?']("_initialize"))) { + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hash'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $alias(self, "_initialize", "initialize"); + + $def(self, '$initialize', function $$initialize(defaults) { + var block = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + ; + ; + + if (defaults != null && + (defaults.constructor === undefined || + defaults.constructor === Object)) { + var smap = self.$$smap, + keys = self.$$keys, + key, value; + + for (key in defaults) { + value = defaults[key]; + + if (value && + (value.constructor === undefined || + value.constructor === Object)) { + smap[key] = $$('Hash').$new(value); + } else if (value && value.$$is_array) { + value = value.map(function(item) { + if (item && + (item.constructor === undefined || + item.constructor === Object)) { + return $$('Hash').$new(item); + } + + return self.$Native(item); + }); + smap[key] = value + } else { + smap[key] = self.$Native(value); + } + + keys.push(key); + } + + return self; + } + + return $send(self, '_initialize', [defaults], block.$to_proc()); + ; + }, -1); + return $def(self, '$to_n', function $$to_n() { + var self = this; + + + var result = {}, + keys = self.$$keys, + smap = self.$$smap, + key, value; + + for (var i = 0, length = keys.length; i < length; i++) { + key = keys[i]; + + if (key.$$is_string) { + value = smap[key]; + } else { + key = key.key; + value = key.value; + } + + result[key] = $$('Native').$try_convert(value, value); + } + + return result; + + }, 0); + })($nesting[0], null, $nesting) + }; + (function($base, $super) { + var self = $klass($base, $super, 'Module'); + + + return $def(self, '$native_module', function $$native_module() { + var self = this; + + return Opal.global[self.$name()] = self + }, 0) + })($nesting[0], null); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Class'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$native_alias', function $$native_alias(new_jsid, existing_mid) { + var self = this; + + + var aliased = self.prototype['$' + existing_mid]; + if (!aliased) { + self.$raise($$('NameError').$new("undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); + } + self.prototype[new_jsid] = aliased; + + }, 2); + return $def(self, '$native_class', function $$native_class() { + var self = this; + + + self.$native_module(); + return self["new"] = self.$new;; + }, 0); + })($nesting[0], null, $nesting); + return ($gvars.$ = ($gvars.global = self.$Native(Opal.global))); +}; + +Opal.modules["buffer/array"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $defs = Opal.defs, $eqeq = Opal.eqeq, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $truthy = Opal.truthy, $alias = Opal.alias; + + Opal.add_stubs('include,[],name_for,attr_reader,==,for,to_n,enum_for'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Buffer'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Array'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto["native"] = nil; + + self.$include($$$($$('Native'), 'Wrapper')); + $defs(self, '$for', function $Array_for$1(bits, type) { + if ($gvars.$ == null) $gvars.$ = nil; + + return $gvars.$['$[]']("" + ($$('Buffer').$name_for(bits, type)) + "Array") + }, 2); + self.$include($$('Enumerable')); + self.$attr_reader("buffer", "type"); + + $def(self, '$initialize', function $$initialize(buffer, bits, type) { + var $yield = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + + if (bits == null) bits = nil;; + + if (type == null) type = nil;; + if ($eqeq($$('Native'), buffer)) { + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [buffer], null) + } else { + + var klass = $$('Array').$for(bits, type); + + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new klass(buffer.$to_n())], null) + + }; + self.buffer = buffer; + return (self.type = type); + }, -2); + + $def(self, '$bits', function $$bits() { + var self = this; + + return self["native"].BYTES_PER_ELEMENT * 8 + }, 0); + + $def(self, '$[]', function $Array_$$$2(index, offset) { + var self = this; + + + + if (offset == null) offset = nil;; + if ($truthy(offset)) { + return self["native"].subarray(index, offset) + } else { + return self["native"][index] + }; + }, -2); + + $def(self, '$[]=', function $Array_$$$eq$3(index, value) { + var self = this; + + return self["native"][index] = value + }, 2); + + $def(self, '$bytesize', function $$bytesize() { + var self = this; + + return self["native"].byteLength + }, 0); + + $def(self, '$each', function $$each() { + var $yield = $$each.$$p || nil, self = this; + + delete $$each.$$p; + + if (!($yield !== nil)) { + return self.$enum_for("each") + }; + + for (var i = 0, length = self["native"].length; i < length; i++) { + Opal.yield1($yield, self["native"][i]) + } + ; + return self; + }, 0); + + $def(self, '$length', function $$length() { + var self = this; + + return self["native"].length + }, 0); + + $def(self, '$merge!', function $Array_merge$excl$4(other, offset) { + var self = this; + + + ; + return self["native"].set(other.$to_n(), offset); + }, -2); + return $alias(self, "size", "length"); + })($nesting[0], null, $nesting) + })($nesting[0], null, $nesting) +}; + +Opal.modules["buffer/view"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $defs = Opal.defs, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $alias = Opal.alias; + + Opal.add_stubs('include,!,nil?,[],attr_reader,native?,to_n,name_for'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Buffer'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'View'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto["native"] = nil; + + self.$include($$$($$('Native'), 'Wrapper')); + $defs(self, '$supported?', function $View_supported$ques$1() { + if ($gvars.$ == null) $gvars.$ = nil; + + return $gvars.$['$[]']("DataView")['$nil?']()['$!']() + }, 0); + self.$attr_reader("buffer", "offset"); + + $def(self, '$initialize', function $$initialize(buffer, offset, length) { + var $yield = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + + if (offset == null) offset = nil;; + + if (length == null) length = nil;; + if ($truthy(self['$native?'](buffer))) { + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [buffer], null) + } else if (($truthy(offset) && ($truthy(length)))) { + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new DataView(buffer.$to_n(), offset.$to_n(), length.$to_n())], null) + } else if ($truthy(offset)) { + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new DataView(buffer.$to_n(), offset.$to_n())], null) + } else { + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new DataView(buffer.$to_n())], null) + }; + self.buffer = buffer; + return (self.offset = offset); + }, -2); + + $def(self, '$length', function $$length() { + var self = this; + + return self["native"].byteLength + }, 0); + + $def(self, '$get', function $$get(offset, bits, type, little) { + var self = this; + + + + if (bits == null) bits = 8;; + + if (type == null) type = "unsigned";; + + if (little == null) little = false;; + return self["native"]["get" + $$('Buffer').$name_for(bits, type)](offset, little); + }, -2); + $alias(self, "[]", "get"); + + $def(self, '$set', function $$set(offset, value, bits, type, little) { + var self = this; + + + + if (bits == null) bits = 8;; + + if (type == null) type = "unsigned";; + + if (little == null) little = false;; + return self["native"]["set" + $$('Buffer').$name_for(bits, type)](offset, value, little); + }, -3); + $alias(self, "[]=", "set"); + + $def(self, '$get_int8', function $$get_int8(offset, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].getInt8(offset, little); + }, -2); + + $def(self, '$set_int8', function $$set_int8(offset, value, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].setInt8(offset, value, little); + }, -3); + + $def(self, '$get_uint8', function $$get_uint8(offset, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].getUint8(offset, little); + }, -2); + + $def(self, '$set_uint8', function $$set_uint8(offset, value, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].setUint8(offset, value, little); + }, -3); + + $def(self, '$get_int16', function $$get_int16(offset, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].getInt16(offset, little); + }, -2); + + $def(self, '$set_int16', function $$set_int16(offset, value, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].setInt16(offset, value, little); + }, -3); + + $def(self, '$get_uint16', function $$get_uint16(offset, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].getUint16(offset, little); + }, -2); + + $def(self, '$set_uint16', function $$set_uint16(offset, value, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].setUint16(offset, value, little); + }, -3); + + $def(self, '$get_int32', function $$get_int32(offset, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].getInt32(offset, little); + }, -2); + + $def(self, '$set_int32', function $$set_int32(offset, value, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].setInt32(offset, value, little); + }, -3); + + $def(self, '$get_uint32', function $$get_uint32(offset, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].getUint32(offset, little); + }, -2); + + $def(self, '$set_uint32', function $$set_uint32(offset, value, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].setUint32(offset, value, little); + }, -3); + + $def(self, '$get_float32', function $$get_float32(offset, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].getFloat32(offset, little); + }, -2); + + $def(self, '$set_float32', function $$set_float32(offset, value, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].setFloat32(offset, value, little); + }, -3); + + $def(self, '$get_float64', function $$get_float64(offset, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].getFloat64(offset, little); + }, -2); + + $def(self, '$set_float64', function $$set_float64(offset, value, little) { + var self = this; + + + + if (little == null) little = false;; + return self["native"].setFloat64(offset, value, little); + }, -3); + return $alias(self, "size", "length"); + })($nesting[0], null, $nesting) + })($nesting[0], null, $nesting) +}; + +Opal.modules["buffer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $defs = Opal.defs, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $alias = Opal.alias; + + Opal.add_stubs('require,include,!,nil?,[],===,native?,new,pack,to_a'); + + self.$require("native"); + self.$require("buffer/array"); + self.$require("buffer/view"); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Buffer'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto["native"] = nil; + + self.$include($$$($$('Native'), 'Wrapper')); + $defs(self, '$supported?', function $Buffer_supported$ques$1() { + if ($gvars.$ == null) $gvars.$ = nil; + + return $gvars.$['$[]']("ArrayBuffer")['$nil?']()['$!']() + }, 0); + $defs(self, '$name_for', function $$name_for(bits, type) { + var part = nil, $ret_or_1 = nil; + + + part = ($eqeqeq("unsigned", ($ret_or_1 = type)) ? ("Uint") : ($eqeqeq("signed", $ret_or_1) ? ("Int") : ($eqeqeq("float", $ret_or_1) ? ("Float") : (nil)))); + return "" + (part) + (bits); + }, 2); + + $def(self, '$initialize', function $$initialize(size, bits) { + var $yield = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + + if (bits == null) bits = 8;; + if ($truthy(self['$native?'](size))) { + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [size], null) + } else { + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [new ArrayBuffer(size * (bits / 8))], null) + }; + }, -2); + + $def(self, '$length', function $$length() { + var self = this; + + return self["native"].byteLength + }, 0); + + $def(self, '$to_a', function $$to_a(bits, type) { + var self = this; + + + + if (bits == null) bits = 8;; + + if (type == null) type = "unsigned";; + return $$('Array').$new(self, bits, type); + }, -1); + + $def(self, '$view', function $$view(offset, length) { + var self = this; + + + if (offset == null) offset = nil;; + + if (length == null) length = nil;; + return $$('View').$new(self, offset, length); + }, -1); - Opal.const_set($nesting[0], 'NODE_REQUIRE', require); - return (Opal.def(self, '$node_require', $Kernel_node_require$1 = function $$node_require(path) { + $def(self, '$to_s', function $$to_s() { var self = this; + return self.$to_a().$to_a().$pack("c*") + }, 0); + return $alias(self, "size", "length"); + })($nesting[0], null, $nesting); +}; + +Opal.modules["corelib/process/status"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; + + Opal.add_stubs('attr_reader,=='); + return (function($base, $parent_nesting) { + var self = $module($base, 'Process'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super) { + var self = $klass($base, $super, 'Status'); + + var $proto = self.$$prototype; + + $proto.status = $proto.pid = nil; + + + $def(self, '$initialize', function $$initialize(status, pid) { + var $a, self = this; + + return $a = [status, pid], (self.status = $a[0]), (self.pid = $a[1]), $a + }, 2); + + $def(self, '$exitstatus', function $$exitstatus() { + var self = this; + + return self.status + }, 0); + self.$attr_reader("pid"); + + $def(self, '$success?', function $Status_success$ques$1() { + var self = this; + + return self.status['$=='](0) + }, 0); + return $def(self, '$inspect', function $$inspect() { + var self = this; + + return "#" + }, 0); + })($nesting[0], null) + })('::', $nesting) +}; + +Opal.modules["nodejs/kernel"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $gvars = Opal.gvars, $neqeq = Opal.neqeq, $def = Opal.def; + + Opal.add_stubs('require,is_a?,first,shift,to_n,merge,empty?,===,[],new,!=,raise,==,encode,to_s'); + + self.$require("buffer"); + self.$require("corelib/process/status"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + if (self.__child_process__ == null) self.__child_process__ = nil; + + + self.__child_process__ = require('child_process'); + var __child_process__ = self.__child_process__; + + $def(self, '$system', function $$system($a, $b) { + var $post_args, $kwargs, argv, exception, self = this, env = nil, cmdname = nil, out = nil, status = nil, pid = nil; + + + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); - self.$warn("[DEPRECATION] node_require is deprecated. Please use `require('module')` instead."); - return $$($nesting, 'NODE_REQUIRE')(path.$to_str()); - }, $Kernel_node_require$1.$$arity = 1), nil) && 'node_require'; + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + argv = $post_args;; + + exception = $kwargs.$$smap["exception"]; + if (exception == null) exception = false; + env = $hash2([], {}); + if ($truthy(argv.$first()['$is_a?']($$('Hash')))) { + env = argv.$shift() + }; + env = $$('ENV').$merge(env).$to_n(); + cmdname = argv.$shift(); + out = ($truthy(argv['$empty?']()) ? (__child_process__.spawnSync(cmdname, { shell: true, stdio: 'inherit', env: env })) : ($eqeqeq($$('Array'), cmdname) ? (__child_process__.spawnSync(cmdname['$[]'](0), argv, { argv0: cmdname['$[]'](1), stdio: 'inherit', env: env })) : (__child_process__.spawnSync(cmdname, argv, { stdio: 'inherit', env: env })))); + status = out["status"]; + if ($truthy(status === null)) { + status = 127 + }; + pid = out["pid"]; + $gvars["?"] = $$$($$('Process'), 'Status').$new(status, pid); + if (($truthy(exception) && ($neqeq(status, 0)))) { + self.$raise("Command failed with exit " + (status) + ": " + (cmdname)) + }; + return status['$=='](0); + }, -1); + return $def(self, '$`', function $Kernel_$$1(cmdline) { + + return $$('Buffer').$new(__child_process__.execSync(cmdline)).$to_s().$encode("UTF-8") + }, 1); })($nesting[0], $nesting); - return Opal.const_set($nesting[0], 'ARGV', process.argv.slice(2)); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nodejs/file"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars; +Opal.modules["corelib/file"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $klass = Opal.klass, $const_set = Opal.const_set, $Opal = Opal.Opal, $regexp = Opal.regexp, $rb_plus = Opal.rb_plus, $def = Opal.def, $Kernel = Opal.Kernel, $eqeq = Opal.eqeq, $rb_lt = Opal.rb_lt, $rb_minus = Opal.rb_minus, $range = Opal.range, $send = Opal.send, $alias = Opal.alias; + + Opal.add_stubs('respond_to?,to_path,coerce_to!,pwd,split,sub,+,unshift,join,home,raise,start_with?,absolute_path,==,<,dirname,-,basename,empty?,rindex,[],length,nil?,gsub,find,=~,map,each_with_index,flatten,reject,to_proc,end_with?'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'File'); + + var $nesting = [self].concat($parent_nesting), windows_root_rx = nil; + + + $const_set($nesting[0], 'Separator', $const_set($nesting[0], 'SEPARATOR', "/")); + $const_set($nesting[0], 'ALT_SEPARATOR', nil); + $const_set($nesting[0], 'PATH_SEPARATOR', ":"); + $const_set($nesting[0], 'FNM_SYSCASE', 0); + windows_root_rx = /^[a-zA-Z]:(?:\\|\/)/; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$absolute_path', function $$absolute_path(path, basedir) { + var sep = nil, sep_chars = nil, new_parts = nil, $ret_or_1 = nil, path_abs = nil, basedir_abs = nil, parts = nil, leading_sep = nil, abs = nil, new_path = nil; + + + + if (basedir == null) basedir = nil;; + sep = $$('SEPARATOR'); + sep_chars = $sep_chars(); + new_parts = []; + path = ($truthy(path['$respond_to?']("to_path")) ? (path.$to_path()) : (path)); + path = $Opal['$coerce_to!'](path, $$$('String'), "to_str"); + basedir = ($truthy(($ret_or_1 = basedir)) ? ($ret_or_1) : ($$$('Dir').$pwd())); + path_abs = path.substr(0, sep.length) === sep || windows_root_rx.test(path); + basedir_abs = basedir.substr(0, sep.length) === sep || windows_root_rx.test(basedir); + if ($truthy(path_abs)) { + + parts = path.$split($regexp(["[", sep_chars, "]"])); + leading_sep = windows_root_rx.test(path) ? '' : path.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + abs = true; + } else { + + parts = $rb_plus(basedir.$split($regexp(["[", sep_chars, "]"])), path.$split($regexp(["[", sep_chars, "]"]))); + leading_sep = windows_root_rx.test(basedir) ? '' : basedir.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + abs = basedir_abs; + }; + + var part; + for (var i = 0, ii = parts.length; i < ii; i++) { + part = parts[i]; + + if ( + (part === nil) || + (part === '' && ((new_parts.length === 0) || abs)) || + (part === '.' && ((new_parts.length === 0) || abs)) + ) { + continue; + } + if (part === '..') { + new_parts.pop(); + } else { + new_parts.push(part); + } + } + + if (!abs && parts[0] !== '.') { + new_parts.$unshift(".") + } + ; + new_path = new_parts.$join(sep); + if ($truthy(abs)) { + new_path = $rb_plus(leading_sep, new_path) + }; + return new_path; + }, -2); + + $def(self, '$expand_path', function $$expand_path(path, basedir) { + var self = this, sep = nil, sep_chars = nil, home = nil, leading_sep = nil, home_path_regexp = nil; + + + + if (basedir == null) basedir = nil;; + sep = $$('SEPARATOR'); + sep_chars = $sep_chars(); + if ($truthy(path[0] === '~' || (basedir && basedir[0] === '~'))) { + + home = $$('Dir').$home(); + if (!$truthy(home)) { + $Kernel.$raise($$$('ArgumentError'), "couldn't find HOME environment -- expanding `~'") + }; + leading_sep = windows_root_rx.test(home) ? '' : home.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + if (!$truthy(home['$start_with?'](leading_sep))) { + $Kernel.$raise($$$('ArgumentError'), "non-absolute home") + }; + home = $rb_plus(home, sep); + home_path_regexp = $regexp(["^\\~(?:", sep, "|$)"]); + path = path.$sub(home_path_regexp, home); + if ($truthy(basedir)) { + basedir = basedir.$sub(home_path_regexp, home) + }; + }; + return self.$absolute_path(path, basedir); + }, -2); + + // Coerce a given path to a path string using #to_path and #to_str + function $coerce_to_path(path) { + if ($truthy((path)['$respond_to?']("to_path"))) { + path = path.$to_path(); + } + + path = $Opal['$coerce_to!'](path, $$$('String'), "to_str"); + + return path; + } + + // Return a RegExp compatible char class + function $sep_chars() { + if ($$('ALT_SEPARATOR') === nil) { + return Opal.escape_regexp($$('SEPARATOR')); + } else { + return Opal.escape_regexp($rb_plus($$('SEPARATOR'), $$('ALT_SEPARATOR'))); + } + } + ; + + $def(self, '$dirname', function $$dirname(path, level) { + var self = this, sep_chars = nil; + + + + if (level == null) level = 1;; + if ($eqeq(level, 0)) { + return path + }; + if ($truthy($rb_lt(level, 0))) { + $Kernel.$raise($$$('ArgumentError'), "level can't be negative") + }; + sep_chars = $sep_chars(); + path = $coerce_to_path(path); + + var absolute = path.match(new RegExp("^[" + (sep_chars) + "]")), out; + + path = path.replace(new RegExp("[" + (sep_chars) + "]+$"), ''); // remove trailing separators + path = path.replace(new RegExp("[^" + (sep_chars) + "]+$"), ''); // remove trailing basename + path = path.replace(new RegExp("[" + (sep_chars) + "]+$"), ''); // remove final trailing separators + + if (path === '') { + out = absolute ? '/' : '.'; + } + else { + out = path; + } + + if (level == 1) { + return out; + } + else { + return self.$dirname(out, $rb_minus(level, 1)) + } + ; + }, -2); + + $def(self, '$basename', function $$basename(name, suffix) { + var sep_chars = nil; + + + + if (suffix == null) suffix = nil;; + sep_chars = $sep_chars(); + name = $coerce_to_path(name); + + if (name.length == 0) { + return name; + } + + if (suffix !== nil) { + suffix = $Opal['$coerce_to!'](suffix, $$$('String'), "to_str") + } else { + suffix = null; + } + + name = name.replace(new RegExp("(.)[" + (sep_chars) + "]*$"), '$1'); + name = name.replace(new RegExp("^(?:.*[" + (sep_chars) + "])?([^" + (sep_chars) + "]+)$"), '$1'); + + if (suffix === ".*") { + name = name.replace(/\.[^\.]+$/, ''); + } else if(suffix !== null) { + suffix = Opal.escape_regexp(suffix); + name = name.replace(new RegExp("" + (suffix) + "$"), ''); + } + + return name; + ; + }, -2); + + $def(self, '$extname', function $$extname(path) { + var self = this, filename = nil, last_dot_idx = nil; + + + path = $coerce_to_path(path); + filename = self.$basename(path); + if ($truthy(filename['$empty?']())) { + return "" + }; + last_dot_idx = filename['$[]']($range(1, -1, false)).$rindex("."); + if (($truthy(last_dot_idx['$nil?']()) || ($eqeq($rb_plus(last_dot_idx, 1), $rb_minus(filename.$length(), 1))))) { + return "" + } else { + return filename['$[]'](Opal.Range.$new($rb_plus(last_dot_idx, 1), -1, false)) + }; + }, 1); + + $def(self, '$exist?', function $exist$ques$1(path) { + + return Opal.modules[path] != null + }, 1); + + $def(self, '$directory?', function $directory$ques$2(path) { + var files = nil, file = nil; + + + files = []; + + for (var key in Opal.modules) { + files.push(key) + } + ; + path = path.$gsub($regexp(["(^.", $$('SEPARATOR'), "+|", $$('SEPARATOR'), "+$)"])); + file = $send(files, 'find', [], function $$3(f){ + + + if (f == null) f = nil;; + return f['$=~']($regexp(["^", path]));}, 1); + return file; + }, 1); + + $def(self, '$join', function $$join($a) { + var $post_args, paths, result = nil; + + + + $post_args = Opal.slice.call(arguments); + + paths = $post_args;; + if ($truthy(paths['$empty?']())) { + return "" + }; + result = ""; + paths = $send(paths.$flatten().$each_with_index(), 'map', [], function $$4(item, index){ + + + if (item == null) item = nil;; + + if (index == null) index = nil;; + if (($eqeq(index, 0) && ($truthy(item['$empty?']())))) { + return $$('SEPARATOR') + } else if (($eqeq(paths.$length(), $rb_plus(index, 1)) && ($truthy(item['$empty?']())))) { + return $$('SEPARATOR') + } else { + return item + };}, 2); + paths = $send(paths, 'reject', [], "empty?".$to_proc()); + $send(paths, 'each_with_index', [], function $$5(item, index){var next_item = nil; + + + + if (item == null) item = nil;; + + if (index == null) index = nil;; + next_item = paths['$[]']($rb_plus(index, 1)); + if ($truthy(next_item['$nil?']())) { + return (result = "" + (result) + (item)) + } else { + + if (($truthy(item['$end_with?']($$('SEPARATOR'))) && ($truthy(next_item['$start_with?']($$('SEPARATOR')))))) { + item = item.$sub($regexp([$$('SEPARATOR'), "+$"]), "") + }; + return (result = (($truthy(item['$end_with?']($$('SEPARATOR'))) || ($truthy(next_item['$start_with?']($$('SEPARATOR'))))) ? ("" + (result) + (item)) : ("" + (result) + (item) + ($$('SEPARATOR'))))); + };}, 2); + return result; + }, -1); + + $def(self, '$split', function $$split(path) { + + return path.$split($$('SEPARATOR')) + }, 1); + $alias(self, "realpath", "expand_path"); + return $alias(self, "exists?", "exist?"); + })(Opal.get_singleton_class(self), $nesting); + })('::', $$$('IO'), $nesting) +}; + +Opal.modules["nodejs/file"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $const_set = Opal.const_set, $defs = Opal.defs, $alias = Opal.alias, $send = Opal.send, $neqeq = Opal.neqeq, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$raise', '$warn', '$const_get', '$new', '$const_defined?', '$const_set', '$include', '$size', '$respond_to?', '$path', '$join', '$call', '$exist?', '$realpath', '$!=', '$close', '$to_path', '$pwd', '$to_str', '$include?', '$delete', '$match?', '$sub', '$attr_reader', '$to_a', '$each_line', '$to_enum', '$read', '$chomp']); + Opal.add_stubs('require,constants,raise,warn,const_get,new,error,size,respond_to?,path,join,call,start_with?,first,exist?,realpath,!=,close,to_path,pwd,to_str,include?,delete,match?,sub,attr_reader'); + self.$require("corelib/file"); - var warnings = {}, errno_code, errno_codes = [ - 'EACCES', - 'EISDIR', - 'EMFILE', - 'ENOENT', - 'EPERM' - ]; + var warnings = {}, errno_codes = $$('Errno').$constants(); function handle_unsupported_feature(message) { switch (Opal.config.unsupported_features_severity) { case 'error': - $$($nesting, 'Kernel').$raise($$($nesting, 'NotImplementedError'), message) + $$('Kernel').$raise($$('NotImplementedError'), message) break; case 'warning': warn(message) @@ -135,32 +1846,23 @@ Opal.modules["nodejs/file"] = function(Opal) { return action(); } catch (error) { if (errno_codes.indexOf(error.code) >= 0) { - var error_class = $$($nesting, 'Errno').$const_get(error.code) - throw (error_class).$new(error.message); + var error_class = $$('Errno').$const_get(error.code) + $$('Kernel').$raise((error_class).$new(error.message)) } - throw error; - } - } - - for(var i = 0, ii = errno_codes.length; i < ii; i++) { - errno_code = errno_codes[i]; - if (!$$($nesting, 'Errno')['$const_defined?'](errno_code)) { - $$($nesting, 'Errno').$const_set(errno_code, $$($nesting, 'Class').$new($$($nesting, 'SystemCallError'))) + $$('Kernel').$raise(self.$error()) } } ; (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'File'); - var $nesting = [self].concat($parent_nesting), $File_read$1, $File_write$2, $File_exist$ques$3, $File_realpath$4, $File_join$5, $File_directory$ques$6, $File_file$ques$7, $File_readable$ques$8, $File_size$9, $File_open$10, $File_stat$11, $File_mtime$12, $File_symlink$ques$13, $File_absolute_path$14, $File_initialize$15, $File_read$16, $File_readlines$17, $File_each_line$18, $File_write$19, $File_flush$20, $File_close$21, $File_mtime$22; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; if (self.__fs__ == null) self.__fs__ = nil; if (self.__path__ == null) self.__path__ = nil; if (self.__util__ == null) self.__util__ = nil; - self.$$prototype.eof = self.$$prototype.binary_flag = self.$$prototype.path = self.$$prototype.fd = nil; + $proto.eof = $proto.binary_flag = $proto.path = $proto.fd = nil; - self.$include($$$($$$('::', 'IO'), 'Writable')); - self.$include($$$($$$('::', 'IO'), 'Readable')); self.__fs__ = require('fs'); self.__path__ = require('path'); self.__util__ = require('util'); @@ -171,45 +1873,48 @@ Opal.modules["nodejs/file"] = function(Opal) { var __TextDecoder__ = typeof TextDecoder !== 'undefined' ? TextDecoder : __util__.TextDecoder; var __utf8TextDecoder__ = new __TextDecoder__('utf8'); var __textEncoder__ = new __TextEncoder__(); - if ($truthy(__path__.sep !== $$($nesting, 'Separator'))) { - Opal.const_set($nesting[0], 'ALT_SEPARATOR', __path__.sep)}; - Opal.defs(self, '$read', $File_read$1 = function $$read(path) { - var self = this; - + if ($truthy(__path__.sep !== $$('Separator'))) { + $const_set($nesting[0], 'ALT_SEPARATOR', __path__.sep) + }; + $defs(self, '$read', function $$read(path) { + return executeIOAction(function(){return __fs__.readFileSync(path).toString()}) - }, $File_read$1.$$arity = 1); - Opal.defs(self, '$write', $File_write$2 = function $$write(path, data) { - var self = this; - + }, 1); + $defs(self, '$write', function $$write(path, data) { + executeIOAction(function(){return __fs__.writeFileSync(path, data)}); return data.$size(); - }, $File_write$2.$$arity = 2); - Opal.defs(self, '$exist?', $File_exist$ques$3 = function(path) { - var self = this; - + }, 2); + $defs(self, '$delete', function $File_delete$1(path) { + + return executeIOAction(function(){return __fs__.unlinkSync(path)}) + }, 1); + (function(self, $parent_nesting) { + + return $alias(self, "unlink", "delete") + })(Opal.get_singleton_class(self), $nesting); + $defs(self, '$exist?', function $File_exist$ques$2(path) { + if ($truthy(path['$respond_to?']("path"))) { - path = path.$path()}; + path = path.$path() + }; return executeIOAction(function(){return __fs__.existsSync(path)}); - }, $File_exist$ques$3.$$arity = 1); - Opal.defs(self, '$realpath', $File_realpath$4 = function $$realpath(pathname, dir_string, cache) { - var $iter = $File_realpath$4.$$p, block = $iter || nil, self = this; + }, 1); + $defs(self, '$realpath', function $$realpath(pathname, dir_string, cache) { + var block = $$realpath.$$p || nil, self = this; - if ($iter) $File_realpath$4.$$p = null; + delete $$realpath.$$p; + ; - if ($iter) $File_realpath$4.$$p = null;; - - if (dir_string == null) { - dir_string = nil; - }; + if (dir_string == null) dir_string = nil;; - if (cache == null) { - cache = nil; - }; + if (cache == null) cache = nil;; if ($truthy(dir_string)) { - pathname = self.$join(dir_string, pathname)}; + pathname = self.$join(dir_string, pathname) + }; if ((block !== nil)) { __fs__.realpath(pathname, cache, function(error, realpath){ @@ -220,77 +1925,72 @@ Opal.modules["nodejs/file"] = function(Opal) { } else { return executeIOAction(function(){return __fs__.realpathSync(pathname, cache)}) }; - }, $File_realpath$4.$$arity = -2); - Opal.defs(self, '$join', $File_join$5 = function $$join($a) { - var $post_args, paths, self = this; + }, -2); + $defs(self, '$join', function $$join($a) { + var $post_args, paths, $b, prefix = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); paths = $post_args;; - return __path__.posix.join.apply(__path__, paths); - }, $File_join$5.$$arity = -1); - Opal.defs(self, '$directory?', $File_directory$ques$6 = function(path) { + prefix = ($truthy(($b = paths.$first(), ($b === nil || $b == null) ? nil : $send($b, 'start_with?', ["//"]))) ? ("/") : ("")); + return prefix + __path__.posix.join.apply(__path__, paths); + }, -1); + $defs(self, '$directory?', function $File_directory$ques$3(path) { var self = this, result = nil, realpath = nil; - if ($truthy(self['$exist?'](path))) { - } else { + if (!$truthy(self['$exist?'](path))) { return false }; result = executeIOAction(function(){return !!__fs__.lstatSync(path).isDirectory()}); - if ($truthy(result)) { - } else { + if (!$truthy(result)) { realpath = self.$realpath(path); - if ($truthy(realpath['$!='](path))) { - result = executeIOAction(function(){return !!__fs__.lstatSync(realpath).isDirectory()})}; + if ($neqeq(realpath, path)) { + result = executeIOAction(function(){return !!__fs__.lstatSync(realpath).isDirectory()}) + }; }; return result; - }, $File_directory$ques$6.$$arity = 1); - Opal.defs(self, '$file?', $File_file$ques$7 = function(path) { + }, 1); + $defs(self, '$file?', function $File_file$ques$4(path) { var self = this, result = nil, realpath = nil; - if ($truthy(self['$exist?'](path))) { - } else { + if (!$truthy(self['$exist?'](path))) { return false }; result = executeIOAction(function(){return !!__fs__.lstatSync(path).isFile()}); - if ($truthy(result)) { - } else { + if (!$truthy(result)) { realpath = self.$realpath(path); - if ($truthy(realpath['$!='](path))) { - result = executeIOAction(function(){return !!__fs__.lstatSync(realpath).isFile()})}; + if ($neqeq(realpath, path)) { + result = executeIOAction(function(){return !!__fs__.lstatSync(realpath).isFile()}) + }; }; return result; - }, $File_file$ques$7.$$arity = 1); - Opal.defs(self, '$readable?', $File_readable$ques$8 = function(path) { + }, 1); + $defs(self, '$readable?', function $File_readable$ques$5(path) { var self = this; - if ($truthy(self['$exist?'](path))) { - } else { + if (!$truthy(self['$exist?'](path))) { return false }; - return "" + "\n" + " try {\n" + " __fs__.accessSync(path, __fs__.R_OK);\n" + " return true;\n" + " } catch (error) {\n" + " return false;\n" + " }\n" + " "; - }, $File_readable$ques$8.$$arity = 1); - Opal.defs(self, '$size', $File_size$9 = function $$size(path) { - var self = this; - + return "\n" + " try {\n" + " __fs__.accessSync(path, __fs__.R_OK);\n" + " return true;\n" + " } catch (error) {\n" + " return false;\n" + " }\n" + " "; + }, 1); + $defs(self, '$size', function $$size(path) { + return executeIOAction(function(){return __fs__.lstatSync(path).size}); - }, $File_size$9.$$arity = 1); - Opal.defs(self, '$open', $File_open$10 = function $$open(path, mode) { - var $iter = $File_open$10.$$p, $yield = $iter || nil, self = this, file = nil; + }, 1); + $defs(self, '$open', function $$open(path, mode) { + var $yield = $$open.$$p || nil, self = this, file = nil; - if ($iter) $File_open$10.$$p = null; + delete $$open.$$p; - if (mode == null) { - mode = "r"; - }; + if (mode == null) mode = "r";; file = self.$new(path, mode); if (($yield !== nil)) { @@ -302,72 +2002,60 @@ Opal.modules["nodejs/file"] = function(Opal) { } else { return file }; - }, $File_open$10.$$arity = -2); - Opal.defs(self, '$stat', $File_stat$11 = function $$stat(path) { - var self = this; - + }, -2); + $defs(self, '$stat', function $$stat(path) { + if ($truthy(path['$respond_to?']("path"))) { - path = path.$path()}; - return $$$($$($nesting, 'File'), 'Stat').$new(path); - }, $File_stat$11.$$arity = 1); - Opal.defs(self, '$mtime', $File_mtime$12 = function $$mtime(path) { - var self = this; - + path = path.$path() + }; + return $$$($$('File'), 'Stat').$new(path); + }, 1); + $defs(self, '$mtime', function $$mtime(path) { + return executeIOAction(function(){return __fs__.statSync(path).mtime}) - }, $File_mtime$12.$$arity = 1); - Opal.defs(self, '$symlink?', $File_symlink$ques$13 = function(path) { - var self = this; - + }, 1); + $defs(self, '$symlink?', function $File_symlink$ques$6(path) { + return executeIOAction(function(){return __fs__.lstatSync(path).isSymbolicLink()}) - }, $File_symlink$ques$13.$$arity = 1); - Opal.defs(self, '$absolute_path', $File_absolute_path$14 = function $$absolute_path(path, basedir) { - var self = this, $ret_or_1 = nil; + }, 1); + $defs(self, '$absolute_path', function $$absolute_path(path, basedir) { + var $ret_or_1 = nil; - if (basedir == null) { - basedir = nil; - }; - path = (function() {if ($truthy(path['$respond_to?']("to_path"))) { - return path.$to_path() - } else { - return path - }; return nil; })(); - basedir = (function() {if ($truthy(($ret_or_1 = basedir))) { - return $ret_or_1 - } else { - return $$($nesting, 'Dir').$pwd() - }; return nil; })(); + if (basedir == null) basedir = nil;; + path = ($truthy(path['$respond_to?']("to_path")) ? (path.$to_path()) : (path)); + basedir = ($truthy(($ret_or_1 = basedir)) ? ($ret_or_1) : ($$('Dir').$pwd())); return __path__.normalize(__path__.resolve(basedir.$to_str(), path.$to_str())).split(__path__.sep).join(__path__.posix.sep); - }, $File_absolute_path$14.$$arity = -2); + }, -2); - Opal.def(self, '$initialize', $File_initialize$15 = function $$initialize(path, flags) { - var self = this, encoding_option_rx = nil; + $def(self, '$initialize', function $$initialize(path, flags) { + var $yield = $$initialize.$$p || nil, self = this, encoding_option_rx = nil, fd = nil; + delete $$initialize.$$p; - if (flags == null) { - flags = "r"; - }; + if (flags == null) flags = "r";; self.binary_flag = flags['$include?']("b"); flags = flags.$delete("b"); encoding_option_rx = /:(.*)/; if ($truthy(encoding_option_rx['$match?'](flags))) { handle_unsupported_feature("Encoding option (:encoding) is unsupported by Node.js openSync method and will be removed."); - flags = flags.$sub(encoding_option_rx, "");}; + flags = flags.$sub(encoding_option_rx, ""); + }; self.path = path; - self.flags = flags; - return (self.fd = executeIOAction(function(){return __fs__.openSync(path, flags)})); - }, $File_initialize$15.$$arity = -2); + fd = executeIOAction(function(){return __fs__.openSync(path, flags)}); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [fd, flags], null); + }, -2); self.$attr_reader("path"); - Opal.def(self, '$read', $File_read$16 = function $$read() { + $def(self, '$sysread', function $$sysread(bytes) { var self = this, res = nil; if ($truthy(self.eof)) { - return "" + return self.$raise($$('EOFError'), "end of file reached") } else { if ($truthy(self.binary_flag)) { @@ -390,122 +2078,92 @@ Opal.modules["nodejs/file"] = function(Opal) { self.lineno = res.$size(); return res; } - }, $File_read$16.$$arity = 0); + }, 1); - Opal.def(self, '$readlines', $File_readlines$17 = function $$readlines(separator) { + $def(self, '$write', function $$write(string) { var self = this; - if ($gvars["/"] == null) $gvars["/"] = nil; - - - if (separator == null) { - separator = $gvars["/"]; - }; - return self.$each_line(separator).$to_a(); - }, $File_readlines$17.$$arity = -1); + return executeIOAction(function(){return __fs__.writeSync(self.fd, string)}) + }, 1); - Opal.def(self, '$each_line', $File_each_line$18 = function $$each_line(separator) { - var $iter = $File_each_line$18.$$p, block = $iter || nil, self = this, lines = nil; - if ($gvars["/"] == null) $gvars["/"] = nil; + $def(self, '$flush', function $$flush() { + var self = this; - if ($iter) $File_each_line$18.$$p = null; - - - if ($iter) $File_each_line$18.$$p = null;; + return executeIOAction(function(){return __fs__.fsyncSync(self.fd)}) + }, 0); + + $def(self, '$close', function $$close() { + var $yield = $$close.$$p || nil, self = this; + + delete $$close.$$p; - if (separator == null) { - separator = $gvars["/"]; - }; - if ($truthy(self.eof)) { - return (function() {if ((block !== nil)) { - return self - } else { - return [].$to_enum() - }; return nil; })()}; - if ((block !== nil)) { - - lines = $$($nesting, 'File').$read(self.path); - - self.eof = false; - self.lineno = 0; - var chomped = lines.$chomp(), - trailing = lines.length != chomped.length, - splitted = chomped.split(separator); - for (var i = 0, length = splitted.length; i < length; i++) { - self.lineno += 1; - if (i < length - 1 || trailing) { - Opal.yield1(block, splitted[i] + separator); - } - else { - Opal.yield1(block, splitted[i]); - } - } - self.eof = true; - ; - return self; - } else { - return self.$read().$each_line(separator) - }; - }, $File_each_line$18.$$arity = -1); + executeIOAction(function(){return __fs__.closeSync(self.fd)}); + return $send2(self, $find_super(self, 'close', $$close, false, true), 'close', [], $yield); + }, 0); + return $def(self, '$mtime', function $$mtime() { + var self = this; + + return executeIOAction(function(){return __fs__.statSync(self.path).mtime}) + }, 0); + })($nesting[0], $$('IO'), $nesting); + return (function($base, $super) { + var self = $klass($base, $super, 'Stat'); + + var $proto = self.$$prototype; + if (self.__fs__ == null) self.__fs__ = nil; + + $proto.path = nil; - Opal.def(self, '$write', $File_write$19 = function $$write(string) { + self.__fs__ = require('fs'); + var __fs__ = self.__fs__; + + $def(self, '$initialize', function $$initialize(path) { var self = this; - return executeIOAction(function(){return __fs__.writeSync(self.fd, string)}) - }, $File_write$19.$$arity = 1); + return (self.path = path) + }, 1); - Opal.def(self, '$flush', $File_flush$20 = function $$flush() { + $def(self, '$file?', function $Stat_file$ques$7() { var self = this; - return executeIOAction(function(){return __fs__.fsyncSync(self.fd)}) - }, $File_flush$20.$$arity = 0); + return executeIOAction(function(){return __fs__.statSync(self.path).isFile()}) + }, 0); - Opal.def(self, '$close', $File_close$21 = function $$close() { + $def(self, '$directory?', function $Stat_directory$ques$8() { var self = this; - return executeIOAction(function(){return __fs__.closeSync(self.fd)}) - }, $File_close$21.$$arity = 0); - return (Opal.def(self, '$mtime', $File_mtime$22 = function $$mtime() { + return executeIOAction(function(){return __fs__.statSync(self.path).isDirectory()}) + }, 0); + + $def(self, '$mtime', function $$mtime() { var self = this; return executeIOAction(function(){return __fs__.statSync(self.path).mtime}) - }, $File_mtime$22.$$arity = 0), nil) && 'mtime'; - })($nesting[0], $$($nesting, 'IO'), $nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Stat'); - - var $nesting = [self].concat($parent_nesting), $Stat_initialize$23, $Stat_file$ques$24, $Stat_mtime$25; - if (self.__fs__ == null) self.__fs__ = nil; - - self.$$prototype.path = nil; - - self.__fs__ = require('fs'); - var __fs__ = self.__fs__; + }, 0); - Opal.def(self, '$initialize', $Stat_initialize$23 = function $$initialize(path) { + $def(self, '$readable?', function $Stat_readable$ques$9() { var self = this; - return (self.path = path) - }, $Stat_initialize$23.$$arity = 1); + return executeIOAction(function(){return __fs__.accessSync(self.path, __fs__.constants.R_OK)}) + }, 0); - Opal.def(self, '$file?', $Stat_file$ques$24 = function() { + $def(self, '$writable?', function $Stat_writable$ques$10() { var self = this; - return executeIOAction(function(){return __fs__.statSync(self.path).isFile()}) - }, $Stat_file$ques$24.$$arity = 0); - return (Opal.def(self, '$mtime', $Stat_mtime$25 = function $$mtime() { + return executeIOAction(function(){return __fs__.accessSync(self.path, __fs__.constants.W_OK)}) + }, 0); + return $def(self, '$executable?', function $Stat_executable$ques$11() { var self = this; - return executeIOAction(function(){return __fs__.statSync(self.path).mtime}) - }, $Stat_mtime$25.$$arity = 0), nil) && 'mtime'; - })($$($nesting, 'File'), null, $nesting); + return executeIOAction(function(){return __fs__.accessSync(self.path, __fs__.constants.X_OK)}) + }, 0); + })($$('File'), null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nodejs/dir"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; +Opal.modules["nodejs/dir"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $Opal = Opal.Opal, $alias = Opal.alias; - Opal.add_stubs(['$respond_to?', '$flat_map', '$to_path', '$coerce_to!']); + Opal.add_stubs('respond_to?,flat_map,to_path,coerce_to!'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Dir'); @@ -525,43 +2183,37 @@ Opal.modules["nodejs/dir"] = function(Opal) { var __path__ = self.__path__; var __os__ = self.__os__; return (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $$$1, $pwd$2, $home$3, $chdir$4, $mkdir$5, $entries$6, $glob$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$[]', $$$1 = function(glob) { - var self = this; - + $def(self, '$[]', function $$$1(glob) { + return __glob__.sync(glob) - }, $$$1.$$arity = 1); + }, 1); - Opal.def(self, '$pwd', $pwd$2 = function $$pwd() { - var self = this; - + $def(self, '$pwd', function $$pwd() { + return process.cwd().split(__path__.sep).join(__path__.posix.sep); - }, $pwd$2.$$arity = 0); + }, 0); - Opal.def(self, '$home', $home$3 = function $$home() { - var self = this; - + $def(self, '$home', function $$home() { + return __os__.homedir(); - }, $home$3.$$arity = 0); + }, 0); - Opal.def(self, '$chdir', $chdir$4 = function $$chdir(path) { - var self = this; - + $def(self, '$chdir', function $$chdir(path) { + return process.chdir(path) - }, $chdir$4.$$arity = 1); + }, 1); - Opal.def(self, '$mkdir', $mkdir$5 = function $$mkdir(path) { - var self = this; - + $def(self, '$mkdir', function $$mkdir(path) { + return __fs__.mkdirSync(path) - }, $mkdir$5.$$arity = 1); + }, 1); - Opal.def(self, '$entries', $entries$6 = function $$entries(dirname) { - var self = this; - + $def(self, '$entries', function $$entries(dirname) { + var result = []; var entries = __fs__.readdirSync(dirname); @@ -570,42 +2222,35 @@ Opal.modules["nodejs/dir"] = function(Opal) { } return result; - }, $entries$6.$$arity = 1); + }, 1); - Opal.def(self, '$glob', $glob$7 = function $$glob(pattern) { - var $$8, self = this; - + $def(self, '$glob', function $$glob(pattern) { - if ($truthy(pattern['$respond_to?']("each"))) { - } else { + + if (!$truthy(pattern['$respond_to?']("each"))) { pattern = [pattern] }; - return $send(pattern, 'flat_map', [], ($$8 = function(subpattern){var self = $$8.$$s == null ? this : $$8.$$s; - + return $send(pattern, 'flat_map', [], function $$2(subpattern){ - if (subpattern == null) { - subpattern = nil; - }; + if (subpattern == null) subpattern = nil;; if ($truthy(subpattern['$respond_to?']("to_path"))) { - subpattern = subpattern.$to_path()}; - subpattern = $$($nesting, 'Opal')['$coerce_to!'](subpattern, $$($nesting, 'String'), "to_str"); - return __glob__.sync(subpattern);;}, $$8.$$s = self, $$8.$$arity = 1, $$8)); - }, $glob$7.$$arity = 1); + subpattern = subpattern.$to_path() + }; + subpattern = $Opal['$coerce_to!'](subpattern, $$('String'), "to_str"); + return __glob__.sync(subpattern);;}, 1); + }, 1); return $alias(self, "getwd", "pwd"); })(Opal.get_singleton_class(self), $nesting); })($nesting[0], null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nodejs/io"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var $$5, $$6, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $lambda = Opal.lambda, $send = Opal.send, $writer = nil; +Opal.modules["nodejs/io"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $klass = Opal.klass, $alias = Opal.alias, $def = Opal.def, $defs = Opal.defs; - Opal.add_stubs(['$attr_reader', '$write', '$read', '$write_proc=', '$-', '$tty=']); + Opal.add_stubs('require,attr_reader,initialize_before_node_io,write,read'); + self.$require("nodejs/file"); function executeIOAction(action) { try { @@ -622,89 +2267,256 @@ Opal.modules["nodejs/io"] = function(Opal) { } } ; - (function($base, $super, $parent_nesting) { + var __fs__ = require('fs'); + return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'IO'); - var $nesting = [self].concat($parent_nesting), $IO_initialize$1, $IO_write$2, $IO_read$3, $IO_binread$4; - if (self.__fs__ == null) self.__fs__ = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - self.__fs__ = require('fs'); - var __fs__ = self.__fs__; - self.$attr_reader("eof"); + self.__fs__ = __fs__; self.$attr_reader("lineno"); + $alias(self, "initialize_before_node_io", "initialize"); - Opal.def(self, '$initialize', $IO_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize(fd, flags) { var self = this; - self.eof = false; - return (self.lineno = 0); - }, $IO_initialize$1.$$arity = 0); - Opal.defs(self, '$write', $IO_write$2 = function $$write(path, data) { - var self = this; + + if (flags == null) flags = "r";; + self.lineno = 0; + return self.$initialize_before_node_io(fd, flags); + }, -2); + $defs(self, '$write', function $$write(path, data) { + + return $$('File').$write(path, data) + }, 2); + $defs(self, '$read', function $$read(path) { + + return $$('File').$read(path) + }, 1); + return $defs(self, '$binread', function $$binread(path) { + + return executeIOAction(function(){return __fs__.readFileSync(path).toString('binary')}) + }, 1); + })($nesting[0], null, $nesting); +}; + +Opal.modules["nodejs/argf"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $const_set = Opal.const_set, $def = Opal.def, $eqeq = Opal.eqeq, $gvars = Opal.gvars, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt, $not = Opal.not, $alias = Opal.alias, $writer = nil; + + Opal.add_stubs('new,include,filename,==,open,argv,shift,close,file,closed?,enum_for,gets,nil?,+,loop,read,-,length,>,to_a,each,attr_accessor,rewind,!,fileno,eof?,lineno='); + + $const_set($nesting[0], 'ARGF', $$('Object').$new()); + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + self.$include($$('Enumerable')); + + $def(self, '$inspect', function $$inspect() { + + return "ARGF" + }, 0); + + $def(self, '$argv', function $$argv() { + + return $$('ARGV') + }, 0); + + $def(self, '$file', function $$file() { + var self = this, fn = nil, $ret_or_1 = nil; + if (self.file == null) self.file = nil; + if ($gvars.stdin == null) $gvars.stdin = nil; + + + fn = self.$filename(); + if ($eqeq(fn, "-")) { + return $gvars.stdin + } else { + return (self.file = ($truthy(($ret_or_1 = self.file)) ? ($ret_or_1) : ($$('File').$open(fn, "r")))) + }; + }, 0); + + $def(self, '$filename', function $$filename() { + var self = this, $ret_or_1 = nil; + if (self.filename == null) self.filename = nil; + if (self.last_filename == null) self.last_filename = nil; - return $$($nesting, 'File').$write(path, data) - }, $IO_write$2.$$arity = 2); - Opal.defs(self, '$read', $IO_read$3 = function $$read(path) { + + if ($truthy(self.filename)) { + return self.filename + }; + if ($eqeq(self.$argv(), ["-"])) { + return "-" + } else if ($eqeq(self.$argv(), [])) { + if ($truthy(($ret_or_1 = self.last_filename))) { + return $ret_or_1 + } else { + return "-" + } + } else { + + self.file = nil; + return (self.filename = (self.last_filename = self.$argv().$shift())); + }; + }, 0); + + $def(self, '$close', function $$close() { var self = this; - return $$($nesting, 'File').$read(path) - }, $IO_read$3.$$arity = 1); - return (Opal.defs(self, '$binread', $IO_binread$4 = function $$binread(path) { + + self.$file().$close(); + self.filename = nil; + return self; + }, 0); + + $def(self, '$closed?', function $closed$ques$1() { var self = this; - return executeIOAction(function(){return __fs__.readFileSync(path).toString('binary')}) - }, $IO_binread$4.$$arity = 1), nil) && 'binread'; - })($nesting[0], null, $nesting); - - $writer = [$lambda(($$5 = function(string){var self = $$5.$$s == null ? this : $$5.$$s; + return self.$file()['$closed?']() + }, 0); + + $def(self, '$each', function $$each($a) { + var block = $$each.$$p || nil, $post_args, args, $b, self = this, l = nil; + + delete $$each.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + if (!(block !== nil)) { + return self.$enum_for("each") + }; + while ($truthy((l = $send(self, 'gets', $to_a(args))))) { + Opal.yield1(block, l) + }; + }, -1); + + $def(self, '$gets', function $$gets($a) { + var $post_args, args, self = this, s = nil; + if (self.lineno == null) self.lineno = nil; + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + s = $send(self.$file(), 'gets', $to_a(args)); + if ($truthy(s['$nil?']())) { + + self.$close(); + s = $send(self.$file(), 'gets', $to_a(args)); + }; + if ($truthy(s)) { + self.lineno = $rb_plus(self.lineno, 1) + }; + return s; + }, -1); + $def(self, '$read', function $$read(len) { + var self = this, buf = nil; + + + + if (len == null) len = nil;; + buf = ""; + return (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s, r = nil; + if (self.filename == null) self.filename = nil; + + + r = self.$file().$read(len); + if ($truthy(r)) { + + buf = $rb_plus(buf, r); + len = $rb_minus(len, r.$length()); + }; + self.$file().$close(); + if ((($truthy(len) && ($truthy($rb_gt(len, 0)))) && ($truthy(self.filename)))) { + + Opal.brk(nil, $brk) + } else { + return nil + };}, {$$arity: 0, $$s: self, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + }, -1); - if (string == null) { - string = nil; - }; - return process.stdout.write(string);;}, $$5.$$s = self, $$5.$$arity = 1, $$5))]; - $send($$($nesting, 'STDOUT'), 'write_proc=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - - $writer = [$lambda(($$6 = function(string){var self = $$6.$$s == null ? this : $$6.$$s; + $def(self, '$readlines', function $$readlines($a) { + var $post_args, args, self = this; + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self, 'each', $to_a(args)).$to_a(); + }, -1); + self.$attr_accessor("lineno"); + $def(self, '$rewind', function $$rewind() { + var self = this, f = nil; + + + self.lineno = 1; + f = self.$file(); + + try { + f.$rewind() + } catch ($err) { + if (Opal.rescue($err, [$$('StandardError')])) { + try { + nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + return 0; + }, 0); - if (string == null) { - string = nil; - }; - return process.stderr.write(string);;}, $$6.$$s = self, $$6.$$arity = 1, $$6))]; - $send($$($nesting, 'STDERR'), 'write_proc=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - - $writer = [true]; - $send($$($nesting, 'STDOUT'), 'tty=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + $def(self, '$fileno', function $$fileno() { + var self = this; + if (self.last_filename == null) self.last_filename = nil; + if (self.filename == null) self.filename = nil; + + + if (($not(self.filename) && ($truthy(self.last_filename)))) { + return 0 + }; + return self.$file().$fileno(); + }, 0); + + $def(self, '$eof?', function $eof$ques$3() { + var self = this; + + return self.$file()['$eof?']() + }, 0); + $alias(self, "each_line", "each"); + $alias(self, "eof", "eof?"); + $alias(self, "path", "filename"); + $alias(self, "skip", "close"); + $alias(self, "to_i", "fileno"); + return $alias(self, "to_io", "file"); + })(Opal.get_singleton_class($$('ARGF')), $nesting); - $writer = [true]; - $send($$($nesting, 'STDERR'), 'tty=', Opal.to_a($writer)); + $writer = [1]; + $send($$('ARGF'), 'lineno=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nodejs/open-uri"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["nodejs/open-uri"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $defs = Opal.defs; - return (function($base, $parent_nesting) { + return (function($base) { var self = $module($base, 'OpenURI'); - var $nesting = [self].concat($parent_nesting), $OpenURI_request$1, $OpenURI_data$2; - if (self.__xmlhttprequest__ == null) self.__xmlhttprequest__ = nil; + if (self.__xmlhttprequest__ == null) self.__xmlhttprequest__ = nil; self.__xmlhttprequest__ = require('unxhr'); var __XMLHttpRequest__ = self.__xmlhttprequest__.XMLHttpRequest; - Opal.defs(self, '$request', $OpenURI_request$1 = function $$request(uri) { - var self = this; - + $defs(self, '$request', function $$request(uri) { + var xhr = new __XMLHttpRequest__(); xhr.open('GET', uri, false); @@ -712,10 +2524,9 @@ Opal.modules["nodejs/open-uri"] = function(Opal) { xhr.send(); return xhr; - }, $OpenURI_request$1.$$arity = 1); - return (Opal.defs(self, '$data', $OpenURI_data$2 = function $$data(req) { - var self = this; - + }, 1); + return $defs(self, '$data', function $$data(req) { + var arrayBuffer = req.response; var byteArray = new Uint8Array(arrayBuffer); @@ -725,25 +2536,18 @@ Opal.modules["nodejs/open-uri"] = function(Opal) { } return result; - }, $OpenURI_data$2.$$arity = 1), nil) && 'data'; - })($nesting[0], $nesting) + }, 1); + })($nesting[0]) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/comparable"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["corelib/comparable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $module = Opal.module, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $def = Opal.def; - Opal.add_stubs(['$>', '$<', '$===', '$raise', '$class', '$<=>', '$equal?']); - return (function($base, $parent_nesting) { + Opal.add_stubs('>,<,===,raise,class,<=>,equal?'); + return (function($base) { var self = $module($base, 'Comparable'); - var $nesting = [self].concat($parent_nesting), $Comparable_$eq_eq$1, $Comparable_$gt$2, $Comparable_$gt_eq$3, $Comparable_$lt$4, $Comparable_$lt_eq$5, $Comparable_between$ques$6, $Comparable_clamp$7, $case = nil; + var $ret_or_1 = nil; @@ -757,25 +2561,24 @@ Opal.modules["corelib/comparable"] = function(Opal) { function fail_comparison(lhs, rhs) { var class_name; - (function() {$case = rhs; - if (nil['$===']($case) || true['$===']($case) || false['$===']($case) || $$($nesting, 'Integer')['$===']($case) || $$($nesting, 'Float')['$===']($case)) {return class_name = rhs.$inspect();} - else {return class_name = rhs.$$class;}})() - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") + (($eqeqeq(nil, ($ret_or_1 = rhs)) || (($eqeqeq(true, $ret_or_1) || (($eqeqeq(false, $ret_or_1) || (($eqeqeq($$$('Integer'), $ret_or_1) || ($eqeqeq($$$('Float'), $ret_or_1))))))))) ? (class_name = rhs.$inspect()) : (class_name = rhs.$$class)) + $Kernel.$raise($$$('ArgumentError'), "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") } function cmp_or_fail(lhs, rhs) { var cmp = (lhs)['$<=>'](rhs); - if ($falsy(cmp)) fail_comparison(lhs, rhs); + if (!$truthy(cmp)) fail_comparison(lhs, rhs); return normalize(cmp); } ; - Opal.def(self, '$==', $Comparable_$eq_eq$1 = function(other) { + $def(self, '$==', function $Comparable_$eq_eq$1(other) { var self = this, cmp = nil; if ($truthy(self['$equal?'](other))) { - return true}; + return true + }; if (self["$<=>"] == Opal.Kernel["$<=>"]) { return false; @@ -787,55 +2590,54 @@ Opal.modules["corelib/comparable"] = function(Opal) { return false; } ; - if ($truthy((cmp = self['$<=>'](other)))) { - } else { + if (!$truthy((cmp = self['$<=>'](other)))) { return false }; return normalize(cmp) == 0;; - }, $Comparable_$eq_eq$1.$$arity = 1); + }, 1); - Opal.def(self, '$>', $Comparable_$gt$2 = function(other) { + $def(self, '$>', function $Comparable_$gt$2(other) { var self = this; return cmp_or_fail(self, other) > 0; - }, $Comparable_$gt$2.$$arity = 1); + }, 1); - Opal.def(self, '$>=', $Comparable_$gt_eq$3 = function(other) { + $def(self, '$>=', function $Comparable_$gt_eq$3(other) { var self = this; return cmp_or_fail(self, other) >= 0; - }, $Comparable_$gt_eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$<', $Comparable_$lt$4 = function(other) { + $def(self, '$<', function $Comparable_$lt$4(other) { var self = this; return cmp_or_fail(self, other) < 0; - }, $Comparable_$lt$4.$$arity = 1); + }, 1); - Opal.def(self, '$<=', $Comparable_$lt_eq$5 = function(other) { + $def(self, '$<=', function $Comparable_$lt_eq$5(other) { var self = this; return cmp_or_fail(self, other) <= 0; - }, $Comparable_$lt_eq$5.$$arity = 1); + }, 1); - Opal.def(self, '$between?', $Comparable_between$ques$6 = function(min, max) { + $def(self, '$between?', function $Comparable_between$ques$6(min, max) { var self = this; if ($rb_lt(self, min)) { - return false}; + return false + }; if ($rb_gt(self, max)) { - return false}; + return false + }; return true; - }, $Comparable_between$ques$6.$$arity = 2); - return (Opal.def(self, '$clamp', $Comparable_clamp$7 = function $$clamp(min, max) { + }, 2); + return $def(self, '$clamp', function $$clamp(min, max) { var self = this; - if (max == null) { - max = nil; - }; + if (max == null) max = nil;; var c, excl; @@ -844,7 +2646,7 @@ Opal.modules["corelib/comparable"] = function(Opal) { // provide a single Range argument instead of 2 Comparables. if (!Opal.is_a(min, Opal.Range)) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (min.$class()) + " (expected Range)") + $Kernel.$raise($$$('TypeError'), "wrong argument type " + (min.$class()) + " (expected Range)") } excl = min.excl; @@ -852,12 +2654,12 @@ Opal.modules["corelib/comparable"] = function(Opal) { min = min.begin; if (max !== nil && excl) { - self.$raise($$($nesting, 'ArgumentError'), "cannot clamp with an exclusive range") + $Kernel.$raise($$$('ArgumentError'), "cannot clamp with an exclusive range") } } if (min !== nil && max !== nil && cmp_or_fail(min, max) > 0) { - self.$raise($$($nesting, 'ArgumentError'), "min argument must be smaller than max argument") + $Kernel.$raise($$$('ArgumentError'), "min argument must be smaller than max argument") } if (min !== nil) { @@ -875,156 +2677,153 @@ Opal.modules["corelib/comparable"] = function(Opal) { return self; ; - }, $Comparable_clamp$7.$$arity = -2), nil) && 'clamp'; - })($nesting[0], $nesting) + }, -2); + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["pathname"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; +Opal.modules["pathname"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def, $defs = Opal.defs, $to_ary = Opal.to_ary, $send = Opal.send, $to_a = Opal.to_a, $neqeq = Opal.neqeq, $rb_plus = Opal.rb_plus, $not = Opal.not, $alias = Opal.alias, $module = Opal.module; - Opal.add_stubs(['$require', '$include', '$quote', '$===', '$to_s', '$path', '$respond_to?', '$to_path', '$is_a?', '$nil?', '$raise', '$class', '$==', '$attr_reader', '$!', '$relative?', '$chop_basename', '$basename', '$=~', '$new', '$source', '$[]', '$rindex', '$sub', '$absolute?', '$expand_path', '$plus', '$unshift', '$length', '$!=', '$empty?', '$first', '$shift', '$+', '$join', '$dirname', '$pop', '$reverse_each', '$directory?', '$extname', '$<=>', '$nonzero?', '$proc', '$casecmp', '$cleanpath', '$inspect', '$include?', '$fill', '$map', '$entries']); + Opal.add_stubs('require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries'); self.$require("corelib/comparable"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Pathname'); - var $nesting = [self].concat($parent_nesting), $Pathname_initialize$1, $Pathname_$eq_eq$2, $Pathname_absolute$ques$3, $Pathname_relative$ques$4, $Pathname_chop_basename$5, $Pathname_root$ques$6, $Pathname_parent$7, $Pathname_sub$8, $Pathname_cleanpath$9, $Pathname_to_path$10, $Pathname_hash$11, $Pathname_expand_path$12, $Pathname_$plus$13, $Pathname_plus$14, $Pathname_join$15, $Pathname_split$17, $Pathname_dirname$18, $Pathname_basename$19, $Pathname_directory$ques$20, $Pathname_extname$21, $Pathname_$lt_eq_gt$22, $Pathname$23, $Pathname$24, $Pathname_relative_path_from$25, $Pathname_entries$26; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.path = nil; + $proto.path = nil; - self.$include($$($nesting, 'Comparable')); - Opal.const_set($nesting[0], 'SEPARATOR_PAT', Opal.regexp([$$($nesting, 'Regexp').$quote($$$($$($nesting, 'File'), 'SEPARATOR'))])); + self.$include($$('Comparable')); + $const_set($nesting[0], 'SEPARATOR_PAT', $regexp([$$('Regexp').$quote($$$($$('File'), 'SEPARATOR'))])); - Opal.def(self, '$initialize', $Pathname_initialize$1 = function $$initialize(path) { + $def(self, '$initialize', function $$initialize(path) { var self = this; - if ($truthy($$($nesting, 'Pathname')['$==='](path))) { + if ($eqeqeq($$('Pathname'), path)) { self.path = path.$path().$to_s() } else if ($truthy(path['$respond_to?']("to_path"))) { self.path = path.$to_path() - } else if ($truthy(path['$is_a?']($$($nesting, 'String')))) { + } else if ($truthy(path['$is_a?']($$('String')))) { self.path = path } else if ($truthy(path['$nil?']())) { - self.$raise($$($nesting, 'TypeError'), "no implicit conversion of nil into String") + self.$raise($$('TypeError'), "no implicit conversion of nil into String") } else { - self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (path.$class()) + " into String") + self.$raise($$('TypeError'), "no implicit conversion of " + (path.$class()) + " into String") }; - if (self.path['$==']("\u0000")) { - return self.$raise($$($nesting, 'ArgumentError')) + if ($eqeq(self.path, "\u0000")) { + return self.$raise($$('ArgumentError')) } else { return nil }; - }, $Pathname_initialize$1.$$arity = 1); + }, 1); + $defs(self, '$pwd', function $$pwd() { + var self = this; + + return self.$new($$('Dir').$pwd()) + }, 0); self.$attr_reader("path"); - Opal.def(self, '$==', $Pathname_$eq_eq$2 = function(other) { + $def(self, '$==', function $Pathname_$eq_eq$1(other) { var self = this; return other.$path()['$=='](self.path) - }, $Pathname_$eq_eq$2.$$arity = 1); + }, 1); - Opal.def(self, '$absolute?', $Pathname_absolute$ques$3 = function() { + $def(self, '$absolute?', function $Pathname_absolute$ques$2() { var self = this; return self['$relative?']()['$!']() - }, $Pathname_absolute$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$relative?', $Pathname_relative$ques$4 = function() { + $def(self, '$relative?', function $Pathname_relative$ques$3() { var $a, $b, $c, self = this, path = nil, r = nil; path = self.path; while ($truthy((r = self.$chop_basename(path)))) { - $c = r, $b = Opal.to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c + $c = r, $b = $to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c }; return path['$=='](""); - }, $Pathname_relative$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$chop_basename', $Pathname_chop_basename$5 = function $$chop_basename(path) { - var self = this, base = nil; + $def(self, '$chop_basename', function $$chop_basename(path) { + var base = nil; - base = $$($nesting, 'File').$basename(path); - if ($truthy($$($nesting, 'Regexp').$new("" + "^" + ($$$($$($nesting, 'Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { + base = $$('File').$basename(path); + if ($truthy($$('Regexp').$new("^" + ($$$($$('Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { return nil } else { return [path['$[]'](0, path.$rindex(base)), base] }; - }, $Pathname_chop_basename$5.$$arity = 1); + }, 1); - Opal.def(self, '$root?', $Pathname_root$ques$6 = function() { + $def(self, '$root?', function $Pathname_root$ques$4() { var self = this; return self.path['$==']("/") - }, $Pathname_root$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$parent', $Pathname_parent$7 = function $$parent() { + $def(self, '$parent', function $$parent() { var self = this, new_path = nil; new_path = self.path.$sub(/\/([^\/]+\/?$)/, ""); - if (new_path['$==']("")) { - new_path = (function() {if ($truthy(self['$absolute?']())) { - return "/" - } else { - return "." - }; return nil; })()}; - return $$($nesting, 'Pathname').$new(new_path); - }, $Pathname_parent$7.$$arity = 0); + if ($eqeq(new_path, "")) { + new_path = ($truthy(self['$absolute?']()) ? ("/") : (".")) + }; + return $$('Pathname').$new(new_path); + }, 0); - Opal.def(self, '$sub', $Pathname_sub$8 = function $$sub($a) { + $def(self, '$sub', function $$sub($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $$($nesting, 'Pathname').$new($send(self.path, 'sub', Opal.to_a(args))); - }, $Pathname_sub$8.$$arity = -1); + return $$('Pathname').$new($send(self.path, 'sub', $to_a(args))); + }, -1); - Opal.def(self, '$cleanpath', $Pathname_cleanpath$9 = function $$cleanpath() { + $def(self, '$cleanpath', function $$cleanpath() { var self = this; return Opal.normalize(self.path) - }, $Pathname_cleanpath$9.$$arity = 0); + }, 0); - Opal.def(self, '$to_path', $Pathname_to_path$10 = function $$to_path() { + $def(self, '$to_path', function $$to_path() { var self = this; return self.path - }, $Pathname_to_path$10.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $Pathname_hash$11 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return self.path - }, $Pathname_hash$11.$$arity = 0); + }, 0); - Opal.def(self, '$expand_path', $Pathname_expand_path$12 = function $$expand_path() { + $def(self, '$expand_path', function $$expand_path() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$expand_path(self.path)) - }, $Pathname_expand_path$12.$$arity = 0); + return $$('Pathname').$new($$('File').$expand_path(self.path)) + }, 0); - Opal.def(self, '$+', $Pathname_$plus$13 = function(other) { + $def(self, '$+', function $Pathname_$plus$5(other) { var self = this; - if ($truthy($$($nesting, 'Pathname')['$==='](other))) { - } else { - other = $$($nesting, 'Pathname').$new(other) + if (!$eqeqeq($$('Pathname'), other)) { + other = $$('Pathname').$new(other) }; - return $$($nesting, 'Pathname').$new(self.$plus(self.path, other.$to_s())); - }, $Pathname_$plus$13.$$arity = 1); + return $$('Pathname').$new(self.$plus(self.path, other.$to_s())); + }, 1); - Opal.def(self, '$plus', $Pathname_plus$14 = function $$plus(path1, path2) { - var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, suffix2 = nil; + $def(self, '$plus', function $$plus(path1, path2) { + var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, suffix2 = nil; prefix2 = path2; @@ -1032,184 +2831,146 @@ Opal.modules["pathname"] = function(Opal) { basename_list2 = []; while ($truthy((r2 = self.$chop_basename(prefix2)))) { - $c = r2, $b = Opal.to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; + $c = r2, $b = $to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; index_list2.$unshift(prefix2.$length()); basename_list2.$unshift(basename2); }; - if ($truthy(prefix2['$!='](""))) { - return path2}; + if ($neqeq(prefix2, "")) { + return path2 + }; prefix1 = path1; while ($truthy(true)) { - while ($truthy((function() {if ($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']()))) { - return basename_list2.$first()['$=='](".") - } else { - return $ret_or_1 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']())) ? (basename_list2.$first()['$=='](".")) : ($ret_or_1)))) { index_list2.$shift(); basename_list2.$shift(); }; - if ($truthy((r1 = self.$chop_basename(prefix1)))) { - } else { + if (!$truthy((r1 = self.$chop_basename(prefix1)))) { break; }; - $c = r1, $b = Opal.to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; - if (basename1['$=='](".")) { - continue;}; - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = basename1['$==']("..")))) { - return $ret_or_3 - } else { - return basename_list2['$empty?']() - }; return nil; })()))) { - return $ret_or_2 - } else { - return basename_list2.$first()['$!=']("..") - }; return nil; })())) { + $c = r1, $b = $to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; + if ($eqeq(basename1, ".")) { + continue; + }; + if ((($eqeq(basename1, "..") || ($truthy(basename_list2['$empty?']()))) || ($neqeq(basename_list2.$first(), "..")))) { prefix1 = $rb_plus(prefix1, basename1); - break;;}; + break;; + }; index_list2.$shift(); basename_list2.$shift(); }; r1 = self.$chop_basename(prefix1); - if ($truthy((function() {if ($truthy(($ret_or_4 = r1['$!']()))) { - return Opal.regexp([$$($nesting, 'SEPARATOR_PAT')])['$=~']($$($nesting, 'File').$basename(prefix1)) - } else { - return $ret_or_4 - }; return nil; })())) { - while ($truthy((function() {if ($truthy(($ret_or_5 = basename_list2['$empty?']()['$!']()))) { - return basename_list2.$first()['$==']("..") - } else { - return $ret_or_5 - }; return nil; })())) { + if (($not(r1) && ($truthy($regexp([$$('SEPARATOR_PAT')])['$=~']($$('File').$basename(prefix1)))))) { + while ($truthy(($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']())) ? (basename_list2.$first()['$==']("..")) : ($ret_or_1)))) { index_list2.$shift(); basename_list2.$shift(); - }}; - if ($truthy(basename_list2['$empty?']()['$!']())) { + } + }; + if ($not(basename_list2['$empty?']())) { suffix2 = path2['$[]'](Opal.Range.$new(index_list2.$first(), -1, false)); if ($truthy(r1)) { - return $$($nesting, 'File').$join(prefix1, suffix2) + return $$('File').$join(prefix1, suffix2) } else { return $rb_plus(prefix1, suffix2) }; } else if ($truthy(r1)) { return prefix1 } else { - return $$($nesting, 'File').$dirname(prefix1) + return $$('File').$dirname(prefix1) }; - }, $Pathname_plus$14.$$arity = 2); + }, 2); - Opal.def(self, '$join', $Pathname_join$15 = function $$join($a) {try { + $def(self, '$join', function $$join($a) {try { - var $post_args, args, $$16, self = this, result = nil; + var $post_args, args, self = this, result = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ($truthy(args['$empty?']())) { - return self}; + return self + }; result = args.$pop(); - if ($truthy($$($nesting, 'Pathname')['$==='](result))) { - } else { - result = $$($nesting, 'Pathname').$new(result) + if (!$eqeqeq($$('Pathname'), result)) { + result = $$('Pathname').$new(result) }; if ($truthy(result['$absolute?']())) { - return result}; - $send(args, 'reverse_each', [], ($$16 = function(arg){var self = $$16.$$s == null ? this : $$16.$$s; - + return result + }; + $send(args, 'reverse_each', [], function $$6(arg){ - if (arg == null) { - arg = nil; - }; - if ($truthy($$($nesting, 'Pathname')['$==='](arg))) { - } else { - arg = $$($nesting, 'Pathname').$new(arg) + if (arg == null) arg = nil;; + if (!$eqeqeq($$('Pathname'), arg)) { + arg = $$('Pathname').$new(arg) }; result = $rb_plus(arg, result); if ($truthy(result['$absolute?']())) { Opal.ret(result) } else { return nil - };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + };}, 1); return $rb_plus(self, result); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Pathname_join$15.$$arity = -1); + }, -1); - Opal.def(self, '$split', $Pathname_split$17 = function $$split() { + $def(self, '$split', function $$split() { var self = this; return [self.$dirname(), self.$basename()] - }, $Pathname_split$17.$$arity = 0); + }, 0); - Opal.def(self, '$dirname', $Pathname_dirname$18 = function $$dirname() { + $def(self, '$dirname', function $$dirname() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$dirname(self.path)) - }, $Pathname_dirname$18.$$arity = 0); + return $$('Pathname').$new($$('File').$dirname(self.path)) + }, 0); - Opal.def(self, '$basename', $Pathname_basename$19 = function $$basename() { + $def(self, '$basename', function $$basename() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$basename(self.path)) - }, $Pathname_basename$19.$$arity = 0); + return $$('Pathname').$new($$('File').$basename(self.path)) + }, 0); - Opal.def(self, '$directory?', $Pathname_directory$ques$20 = function() { + $def(self, '$directory?', function $Pathname_directory$ques$7() { var self = this; - return $$($nesting, 'File')['$directory?'](self.path) - }, $Pathname_directory$ques$20.$$arity = 0); + return $$('File')['$directory?'](self.path) + }, 0); - Opal.def(self, '$extname', $Pathname_extname$21 = function $$extname() { + $def(self, '$extname', function $$extname() { var self = this; - return $$($nesting, 'File').$extname(self.path) - }, $Pathname_extname$21.$$arity = 0); + return $$('File').$extname(self.path) + }, 0); - Opal.def(self, '$<=>', $Pathname_$lt_eq_gt$22 = function(other) { + $def(self, '$<=>', function $Pathname_$lt_eq_gt$8(other) { var self = this; return self.$path()['$<=>'](other.$path()) - }, $Pathname_$lt_eq_gt$22.$$arity = 1); - $alias(self, "eql?", "=="); - $alias(self, "===", "=="); - $alias(self, "to_str", "to_path"); - $alias(self, "to_s", "to_path"); - Opal.const_set($nesting[0], 'SAME_PATHS', (function() {if ($truthy($$$($$($nesting, 'File'), 'FNM_SYSCASE')['$nonzero?']())) { - return $send(self, 'proc', [], ($Pathname$23 = function(a, b){var self = $Pathname$23.$$s == null ? this : $Pathname$23.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a.$casecmp(b)['$=='](0);}, $Pathname$23.$$s = self, $Pathname$23.$$arity = 2, $Pathname$23)) - } else { - return $send(self, 'proc', [], ($Pathname$24 = function(a, b){var self = $Pathname$24.$$s == null ? this : $Pathname$24.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a['$=='](b);}, $Pathname$24.$$s = self, $Pathname$24.$$arity = 2, $Pathname$24)) - }; return nil; })()); + }, 1); + $const_set($nesting[0], 'SAME_PATHS', ($truthy($$$($$('File'), 'FNM_SYSCASE')['$nonzero?']()) ? ($send(self, 'proc', [], function $Pathname$9(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a.$casecmp(b)['$=='](0);}, 2)) : ($send(self, 'proc', [], function $Pathname$10(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a['$=='](b);}, 2)))); - Opal.def(self, '$relative_path_from', $Pathname_relative_path_from$25 = function $$relative_path_from(base_directory) { - var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_6 = nil, $ret_or_7 = nil, relpath_names = nil; + $def(self, '$relative_path_from', function $$relative_path_from(base_directory) { + var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_1 = nil, $ret_or_2 = nil, relpath_names = nil; dest_directory = self.$cleanpath().$to_s(); @@ -1218,207 +2979,208 @@ Opal.modules["pathname"] = function(Opal) { dest_names = []; while ($truthy((r = self.$chop_basename(dest_prefix)))) { - $c = r, $b = Opal.to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - dest_names.$unshift(basename)}; + $c = r, $b = $to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(basename, ".")) { + dest_names.$unshift(basename) + }; }; base_prefix = base_directory; base_names = []; while ($truthy((r = self.$chop_basename(base_prefix)))) { - $c = r, $b = Opal.to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - base_names.$unshift(basename)}; + $c = r, $b = $to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(basename, ".")) { + base_names.$unshift(basename) + }; }; - if ($truthy($$($nesting, 'SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) + if (!$truthy($$('SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { + self.$raise($$('ArgumentError'), "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) }; - while ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = dest_names['$empty?']()['$!']()))) { - return base_names['$empty?']()['$!']() - } else { - return $ret_or_7 - }; return nil; })()))) { - return $$($nesting, 'SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first()) - } else { - return $ret_or_6 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = dest_names['$empty?']()['$!']())) ? (base_names['$empty?']()['$!']()) : ($ret_or_2)))) ? ($$('SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first())) : ($ret_or_1)))) { dest_names.$shift(); base_names.$shift(); }; if ($truthy(base_names['$include?'](".."))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "base_directory has ..: " + (base_directory.$inspect()))}; + self.$raise($$('ArgumentError'), "base_directory has ..: " + (base_directory.$inspect())) + }; base_names.$fill(".."); relpath_names = $rb_plus(base_names, dest_names); if ($truthy(relpath_names['$empty?']())) { - return $$($nesting, 'Pathname').$new(".") + return $$('Pathname').$new(".") } else { - return $$($nesting, 'Pathname').$new($send($$($nesting, 'File'), 'join', Opal.to_a(relpath_names))) + return $$('Pathname').$new($send($$('File'), 'join', $to_a(relpath_names))) }; - }, $Pathname_relative_path_from$25.$$arity = 1); - return (Opal.def(self, '$entries', $Pathname_entries$26 = function $$entries() { - var $$27, self = this; + }, 1); + + $def(self, '$entries', function $$entries() { + var self = this; - return $send($$($nesting, 'Dir').$entries(self.path), 'map', [], ($$27 = function(f){var self = $$27.$$s == null ? this : $$27.$$s; + return $send($$('Dir').$entries(self.path), 'map', [], function $$11(f){var self = $$11.$$s == null ? this : $$11.$$s; - if (f == null) { - f = nil; - }; - return self.$class().$new(f);}, $$27.$$s = self, $$27.$$arity = 1, $$27)) - }, $Pathname_entries$26.$$arity = 0), nil) && 'entries'; + if (f == null) f = nil;; + return self.$class().$new(f);}, {$$arity: 1, $$s: self}) + }, 0); + $alias(self, "===", "=="); + $alias(self, "eql?", "=="); + $alias(self, "to_s", "to_path"); + return $alias(self, "to_str", "to_path"); })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_Pathname$28; - - return (Opal.def(self, '$Pathname', $Kernel_Pathname$28 = function $$Pathname(path) { - var self = this; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return $$($nesting, 'Pathname').$new(path) - }, $Kernel_Pathname$28.$$arity = 1), nil) && 'Pathname' + return $def(self, '$Pathname', function $$Pathname(path) { + + return $$('Pathname').$new(path) + }, 1) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nodejs/pathname"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; +Opal.modules["nodejs/pathname"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$include', '$to_str', '$!', '$absolute?']); + Opal.add_stubs('require,include,to_str,!,absolute?'); self.$require("pathname"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Pathname'); - var $nesting = [self].concat($parent_nesting), $Pathname_absolute$ques$1, $Pathname_relative$ques$2, $Pathname_to_path$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; if (self.__path__ == null) self.__path__ = nil; - self.$$prototype.path = nil; + $proto.path = nil; - self.$include($$($nesting, 'Comparable')); + self.$include($$('Comparable')); self.__path__ = require('path'); var __path__ = self.__path__; - Opal.def(self, '$absolute?', $Pathname_absolute$ques$1 = function() { + $def(self, '$absolute?', function $Pathname_absolute$ques$1() { var self = this; return __path__.isAbsolute(self.path.$to_str()) - }, $Pathname_absolute$ques$1.$$arity = 0); + }, 0); - Opal.def(self, '$relative?', $Pathname_relative$ques$2 = function() { + $def(self, '$relative?', function $Pathname_relative$ques$2() { var self = this; return self['$absolute?']()['$!']() - }, $Pathname_relative$ques$2.$$arity = 0); - return (Opal.def(self, '$to_path', $Pathname_to_path$3 = function $$to_path() { + }, 0); + return $def(self, '$to_path', function $$to_path() { var self = this; return self.path - }, $Pathname_to_path$3.$$arity = 0), nil) && 'to_path'; + }, 0); })($nesting[0], null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nodejs/env"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $alias = Opal.alias, $truthy = Opal.truthy; +Opal.modules["nodejs/env"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $const_set = Opal.const_set, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; - Opal.add_stubs(['$new', '$to_s', '$key?', '$[]', '$raise']); + Opal.add_stubs('new,to_s,key?,[],raise,to_h,keys,merge'); - Opal.const_set($nesting[0], 'ENV', $$($nesting, 'Object').$new()); + $const_set($nesting[0], 'ENV', $$('Object').$new()); return (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $$$1, $$$eq$2, $key$ques$3, $empty$ques$4, $keys$5, $delete$6, $fetch$7, $to_s$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$[]', $$$1 = function(name) { - var self = this; - + $def(self, '$[]', function $$$1(name) { + return process.env[name] || nil - }, $$$1.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $$$eq$2 = function(name, value) { - var self = this; - + $def(self, '$[]=', function $$$eq$2(name, value) { + return process.env[name.$to_s()] = value.$to_s() - }, $$$eq$2.$$arity = 2); + }, 2); - Opal.def(self, '$key?', $key$ques$3 = function(name) { - var self = this; - + $def(self, '$key?', function $key$ques$3(name) { + return process.env.hasOwnProperty(name) - }, $key$ques$3.$$arity = 1); - $alias(self, "has_key?", "key?"); - $alias(self, "include?", "key?"); - $alias(self, "member?", "key?"); + }, 1); - Opal.def(self, '$empty?', $empty$ques$4 = function() { - var self = this; - + $def(self, '$empty?', function $empty$ques$4() { + return Object.keys(process.env).length === 0; - }, $empty$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$keys', $keys$5 = function $$keys() { - var self = this; - + $def(self, '$keys', function $$keys() { + return Object.keys(process.env); - }, $keys$5.$$arity = 0); + }, 0); - Opal.def(self, '$delete', $delete$6 = function(name) { - var self = this; - + $def(self, '$delete', function $delete$5(name) { + var value = process.env[name] || nil; delete process.env[name]; return value; - }, $delete$6.$$arity = 1); + }, 1); - Opal.def(self, '$fetch', $fetch$7 = function $$fetch(key, default_value) { - var $iter = $fetch$7.$$p, block = $iter || nil, self = this; + $def(self, '$fetch', function $$fetch(key, default_value) { + var block = $$fetch.$$p || nil, self = this; - if ($iter) $fetch$7.$$p = null; - + delete $$fetch.$$p; - if ($iter) $fetch$7.$$p = null;; + ; ; if ($truthy(self['$key?'](key))) { - return self['$[]'](key)}; + return self['$[]'](key) + }; if ((block !== nil)) { - return Opal.yield1(block, key)}; - if ($truthy(typeof(default_value) === 'undefined')) { - } else { + return Opal.yield1(block, key) + }; + if (!$truthy(typeof(default_value) === 'undefined')) { return default_value }; - return self.$raise($$($nesting, 'KeyError'), "key not found"); - }, $fetch$7.$$arity = -2); - return (Opal.def(self, '$to_s', $to_s$8 = function $$to_s() { + return self.$raise($$('KeyError'), "key not found"); + }, -2); + + $def(self, '$to_s', function $$to_s() { + + return "ENV" + }, 0); + + $def(self, '$to_h', function $$to_h() { var self = this; - return "ENV" - }, $to_s$8.$$arity = 0), nil) && 'to_s'; - })(Opal.get_singleton_class($$($nesting, 'ENV')), $nesting); -}; + return $send(self.$keys(), 'to_h', [], function $$6(k){var self = $$6.$$s == null ? this : $$6.$$s; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["nodejs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; + + + if (k == null) k = nil;; + return [k, self['$[]'](k)];}, {$$arity: 1, $$s: self}) + }, 0); + + $def(self, '$merge', function $$merge(keys) { + var self = this; - Opal.add_stubs(['$require']); - - (function($base, $parent_nesting) { - var self = $module($base, 'NodeJS'); + return self.$to_h().$merge(keys) + }, 1); + $alias(self, "has_key?", "key?"); + $alias(self, "include?", "key?"); + $alias(self, "inspect", "to_s"); + $alias(self, "member?", "key?"); + return $alias(self, "to_hash", "to_h"); + })(Opal.get_singleton_class($$('ENV')), $nesting); +}; - var $nesting = [self].concat($parent_nesting); +Opal.modules["nodejs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - return nil - })($nesting[0], $nesting); + Opal.add_stubs('require'); + + self.$require("nodejs/base"); self.$require("nodejs/kernel"); self.$require("nodejs/file"); self.$require("nodejs/dir"); self.$require("nodejs/io"); + self.$require("nodejs/argf"); self.$require("nodejs/open-uri"); self.$require("nodejs/pathname"); return self.$require("nodejs/env"); diff --git a/opal/master/nodejs.min.js b/opal/master/nodejs.min.js index 9012c8b0..7a0eaf1a 100644 --- a/opal/master/nodejs.min.js +++ b/opal/master/nodejs.min.js @@ -1 +1 @@ -Opal.modules["nodejs/kernel"]=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.$$$,Opal.$$),$module=Opal.module;return Opal.add_stubs(["$warn","$to_str"]),Opal.exit=process.exit,function($Kernel_node_require$1,$parent_nesting){var $nesting=[$Kernel_node_require$1=$module($Kernel_node_require$1,"Kernel")].concat($parent_nesting);Opal.const_set($nesting[0],"NODE_REQUIRE",require),Opal.def($Kernel_node_require$1,"$node_require",$Kernel_node_require$1=function(path){return this.$warn("[DEPRECATION] node_require is deprecated. Please use `require('module')` instead."),$$($nesting,"NODE_REQUIRE")(path.$to_str())},$Kernel_node_require$1.$$arity=1)}($nesting[0],$nesting),Opal.const_set($nesting[0],"ARGV",process.argv.slice(2))},Opal.modules["nodejs/file"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$gvars=Opal.gvars;Opal.add_stubs(["$raise","$warn","$const_get","$new","$const_defined?","$const_set","$include","$size","$respond_to?","$path","$join","$call","$exist?","$realpath","$!=","$close","$to_path","$pwd","$to_str","$include?","$delete","$match?","$sub","$attr_reader","$to_a","$each_line","$to_enum","$read","$chomp"]);var errno_code,warnings={},errno_codes=["EACCES","EISDIR","EMFILE","ENOENT","EPERM"];function handle_unsupported_feature(message){switch(Opal.config.unsupported_features_severity){case"error":$$($nesting,"Kernel").$raise($$($nesting,"NotImplementedError"),message);break;case"warning":!void(warnings[string=message]||(warnings[string]=!0,self.$warn(string)))}var string}function executeIOAction(action){try{return action()}catch(error){if(0<=errno_codes.indexOf(error.code))throw $$($nesting,"Errno").$const_get(error.code).$new(error.message);throw error}}for(var i=0,ii=errno_codes.length;i"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$<","$===","$raise","$class","$<=>","$equal?"]),function($base,$Comparable_clamp$7){var self=$module($base,"Comparable"),$nesting=[self].concat($Comparable_clamp$7),$case=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $falsy(cmp)&&function(lhs,class_name){$case=class_name,class_name=nil["$==="]($case)||(!0)["$==="]($case)||(!1)["$==="]($case)||$$($nesting,"Integer")["$==="]($case)||$$($nesting,"Float")["$==="]($case)?class_name.$inspect():class_name.$$class,self.$raise($$($nesting,"ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return Opal.def(self,"$==",$Comparable_clamp$7=function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$>",$Comparable_clamp$7=function(other){return 0=",$Comparable_clamp$7=function(other){return 0<=cmp_or_fail(this,other)},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<=",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<=0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$between?",$Comparable_clamp$7=function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)},$Comparable_clamp$7.$$arity=2),Opal.def(self,"$clamp",$Comparable_clamp$7=function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||this.$raise($$($nesting,"TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&this.$raise($$($nesting,"ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&0","$nonzero?","$proc","$casecmp","$cleanpath","$inspect","$include?","$fill","$map","$entries"]),self.$require("corelib/comparable"),function($Pathname_entries$26,$Pathname_relative_path_from$25){var $Pathname$23,$Pathname$24,$nesting=[$Pathname_entries$26=$klass($Pathname_entries$26,null,"Pathname")].concat($Pathname_relative_path_from$25);$Pathname_entries$26.$$prototype.path=nil,$Pathname_entries$26.$include($$($nesting,"Comparable")),Opal.const_set($nesting[0],"SEPARATOR_PAT",Opal.regexp([$$($nesting,"Regexp").$quote($$$($$($nesting,"File"),"SEPARATOR"))])),Opal.def($Pathname_entries$26,"$initialize",$Pathname_relative_path_from$25=function(path){return $truthy($$($nesting,"Pathname")["$==="](path))?this.path=path.$path().$to_s():$truthy(path["$respond_to?"]("to_path"))?this.path=path.$to_path():$truthy(path["$is_a?"]($$($nesting,"String")))?this.path=path:$truthy(path["$nil?"]())?this.$raise($$($nesting,"TypeError"),"no implicit conversion of nil into String"):this.$raise($$($nesting,"TypeError"),"no implicit conversion of "+path.$class()+" into String"),this.path["$=="]("\0")?this.$raise($$($nesting,"ArgumentError")):nil},$Pathname_relative_path_from$25.$$arity=1),$Pathname_entries$26.$attr_reader("path"),Opal.def($Pathname_entries$26,"$==",$Pathname_relative_path_from$25=function(other){return other.$path()["$=="](this.path)},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$absolute?",$Pathname_relative_path_from$25=function(){return this["$relative?"]()["$!"]()},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$relative?",$Pathname_relative_path_from$25=function(){for(var $b,r,path=nil,path=this.path;$truthy(r=this.$chop_basename(path));)$b=r,path=null==($b=Opal.to_ary($b))[0]?nil:$b[0];return path["$=="]("")},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$chop_basename",$Pathname_relative_path_from$25=function(path){var base=$$($nesting,"File").$basename(path);return $truthy($$($nesting,"Regexp").$new("^"+$$$($$($nesting,"Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](base))?nil:[path["$[]"](0,path.$rindex(base)),base]},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$root?",$Pathname_relative_path_from$25=function(){return this.path["$=="]("/")},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$parent",$Pathname_relative_path_from$25=function(){var self=this,new_path=nil;return(new_path=self.path.$sub(/\/([^\/]+\/?$)/,""))["$=="]("")&&(new_path=$truthy(self["$absolute?"]())?"/":"."),$$($nesting,"Pathname").$new(new_path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$sub",$Pathname_relative_path_from$25=function($a){var args=Opal.slice.call(arguments,0,arguments.length);return $$($nesting,"Pathname").$new($send(this.path,"sub",Opal.to_a(args)))},$Pathname_relative_path_from$25.$$arity=-1),Opal.def($Pathname_entries$26,"$cleanpath",$Pathname_relative_path_from$25=function(){return Opal.normalize(this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$to_path",$Pathname_relative_path_from$25=function(){return this.path},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$hash",$Pathname_relative_path_from$25=function(){return this.path},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$expand_path",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$expand_path(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$+",$Pathname_relative_path_from$25=function(other){return $truthy($$($nesting,"Pathname")["$==="](other))||(other=$$($nesting,"Pathname").$new(other)),$$($nesting,"Pathname").$new(this.$plus(this.path,other.$to_s()))},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$plus",$Pathname_relative_path_from$25=function(path1,path2){for(var $b,$c,r2,basename2,suffix2,prefix2=nil,index_list2=nil,basename_list2=nil,prefix1=nil,$ret_or_1=nil,r1=nil,basename1=nil,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil,prefix2=path2,index_list2=[],basename_list2=[];$truthy(r2=this.$chop_basename(prefix2));)$c=r2,prefix2=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename2=null==$b[1]?nil:$b[1],index_list2.$unshift(prefix2.$length()),basename_list2.$unshift(basename2);if($truthy(prefix2["$!="]("")))return path2;for(prefix1=path1;$truthy(!0);){for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="]("."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();if(!$truthy(r1=this.$chop_basename(prefix1)))break;if($c=r1,$b=Opal.to_ary($c),prefix1=null==$b[0]?nil:$b[0],!(basename1=null==$b[1]?nil:$b[1])["$=="](".")){if($truthy($truthy($ret_or_2=$truthy($ret_or_3=basename1["$=="](".."))?$ret_or_3:basename_list2["$empty?"]())?$ret_or_2:basename_list2.$first()["$!="](".."))){prefix1=$rb_plus(prefix1,basename1);break}index_list2.$shift(),basename_list2.$shift()}}if(r1=this.$chop_basename(prefix1),$truthy($truthy($ret_or_4=r1["$!"]())?Opal.regexp([$$($nesting,"SEPARATOR_PAT")])["$=~"]($$($nesting,"File").$basename(prefix1)):$ret_or_4))for(;$truthy($truthy($ret_or_5=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="](".."):$ret_or_5);)index_list2.$shift(),basename_list2.$shift();return $truthy(basename_list2["$empty?"]()["$!"]())?(suffix2=path2["$[]"](Opal.Range.$new(index_list2.$first(),-1,!1)),$truthy(r1)?$$($nesting,"File").$join(prefix1,suffix2):$rb_plus(prefix1,suffix2)):$truthy(r1)?prefix1:$$($nesting,"File").$dirname(prefix1)},$Pathname_relative_path_from$25.$$arity=2),Opal.def($Pathname_entries$26,"$join",$Pathname_relative_path_from$25=function($a){try{var $$16,result=nil,args=Opal.slice.call(arguments,0,arguments.length);return $truthy(args["$empty?"]())?this:(result=args.$pop(),$truthy($$($nesting,"Pathname")["$==="](result))||(result=$$($nesting,"Pathname").$new(result)),$truthy(result["$absolute?"]())?result:($send(args,"reverse_each",[],(($$16=function(arg){null==$$16.$$s||$$16.$$s;if(null==arg&&(arg=nil),$truthy($$($nesting,"Pathname")["$==="](arg))||(arg=$$($nesting,"Pathname").$new(arg)),result=$rb_plus(arg,result),!$truthy(result["$absolute?"]()))return nil;Opal.ret(result)}).$$s=this,$$16.$$arity=1,$$16)),$rb_plus(this,result)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Pathname_relative_path_from$25.$$arity=-1),Opal.def($Pathname_entries$26,"$split",$Pathname_relative_path_from$25=function(){return[this.$dirname(),this.$basename()]},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$dirname",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$dirname(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$basename",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$basename(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$directory?",$Pathname_relative_path_from$25=function(){return $$($nesting,"File")["$directory?"](this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$extname",$Pathname_relative_path_from$25=function(){return $$($nesting,"File").$extname(this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$<=>",$Pathname_relative_path_from$25=function(other){return this.$path()["$<=>"](other.$path())},$Pathname_relative_path_from$25.$$arity=1),$alias($Pathname_entries$26,"eql?","=="),$alias($Pathname_entries$26,"===","=="),$alias($Pathname_entries$26,"to_str","to_path"),$alias($Pathname_entries$26,"to_s","to_path"),Opal.const_set($nesting[0],"SAME_PATHS",$truthy($$$($$($nesting,"File"),"FNM_SYSCASE")["$nonzero?"]())?$send($Pathname_entries$26,"proc",[],(($Pathname$23=function(a,b){null==$Pathname$23.$$s||$Pathname$23.$$s;return null==a&&(a=nil),null==b&&(b=nil),a.$casecmp(b)["$=="](0)}).$$s=$Pathname_entries$26,$Pathname$23.$$arity=2,$Pathname$23)):$send($Pathname_entries$26,"proc",[],(($Pathname$24=function(a,b){null==$Pathname$24.$$s||$Pathname$24.$$s;return null==a&&(a=nil),null==b&&(b=nil),a["$=="](b)}).$$s=$Pathname_entries$26,$Pathname$24.$$arity=2,$Pathname$24))),Opal.def($Pathname_entries$26,"$relative_path_from",$Pathname_relative_path_from$25=function(base_directory){var $b,$c,dest_prefix=nil,dest_names=nil,r=nil,basename=nil,base_prefix=nil,base_names=nil,$ret_or_6=nil,$ret_or_7=nil,relpath_names=nil,dest_directory=this.$cleanpath().$to_s();for(base_directory=base_directory.$cleanpath().$to_s(),dest_prefix=dest_directory,dest_names=[];$truthy(r=this.$chop_basename(dest_prefix));)$c=r,dest_prefix=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$truthy(basename["$!="]("."))&&dest_names.$unshift(basename);for(base_prefix=base_directory,base_names=[];$truthy(r=this.$chop_basename(base_prefix));)$c=r,base_prefix=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$truthy(basename["$!="]("."))&&base_names.$unshift(basename);for($truthy($$($nesting,"SAME_PATHS")["$[]"](dest_prefix,base_prefix))||this.$raise($$($nesting,"ArgumentError"),"different prefix: "+dest_prefix.$inspect()+" and "+base_directory.$inspect());$truthy($truthy($ret_or_6=$truthy($ret_or_7=dest_names["$empty?"]()["$!"]())?base_names["$empty?"]()["$!"]():$ret_or_7)?$$($nesting,"SAME_PATHS")["$[]"](dest_names.$first(),base_names.$first()):$ret_or_6);)dest_names.$shift(),base_names.$shift();return $truthy(base_names["$include?"](".."))&&this.$raise($$($nesting,"ArgumentError"),"base_directory has ..: "+base_directory.$inspect()),base_names.$fill(".."),relpath_names=$rb_plus(base_names,dest_names),$truthy(relpath_names["$empty?"]())?$$($nesting,"Pathname").$new("."):$$($nesting,"Pathname").$new($send($$($nesting,"File"),"join",Opal.to_a(relpath_names)))},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$entries",$Pathname_entries$26=function(){var $$27;return $send($$($nesting,"Dir").$entries(this.path),"map",[],(($$27=function(f){var self=null==$$27.$$s?this:$$27.$$s;return null==f&&(f=nil),self.$class().$new(f)}).$$s=this,$$27.$$arity=1,$$27))},$Pathname_entries$26.$$arity=0)}($nesting[0],$nesting),function($Kernel_Pathname$28,$parent_nesting){var $Kernel_Pathname$28=$module($Kernel_Pathname$28,"Kernel"),$nesting=[$Kernel_Pathname$28].concat($parent_nesting);return Opal.def($Kernel_Pathname$28,"$Pathname",$Kernel_Pathname$28=function(path){return $$($nesting,"Pathname").$new(path)},$Kernel_Pathname$28.$$arity=1),nil&&"Pathname"}($nesting[0],$nesting)},Opal.modules["nodejs/pathname"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass;return Opal.add_stubs(["$require","$include","$to_str","$!","$absolute?"]),self.$require("pathname"),function($Pathname_to_path$3,$Pathname_relative$ques$2){$Pathname_to_path$3=$klass($Pathname_to_path$3,null,"Pathname"),$Pathname_relative$ques$2=[$Pathname_to_path$3].concat($Pathname_relative$ques$2);null==$Pathname_to_path$3.__path__&&($Pathname_to_path$3.__path__=nil),$Pathname_to_path$3.$$prototype.path=nil,$Pathname_to_path$3.$include($$($Pathname_relative$ques$2,"Comparable")),$Pathname_to_path$3.__path__=require("path");var __path__=$Pathname_to_path$3.__path__;return Opal.def($Pathname_to_path$3,"$absolute?",$Pathname_relative$ques$2=function(){return __path__.isAbsolute(this.path.$to_str())},$Pathname_relative$ques$2.$$arity=0),Opal.def($Pathname_to_path$3,"$relative?",$Pathname_relative$ques$2=function(){return this["$absolute?"]()["$!"]()},$Pathname_relative$ques$2.$$arity=0),Opal.def($Pathname_to_path$3,"$to_path",$Pathname_to_path$3=function(){return this.path},$Pathname_to_path$3.$$arity=0),nil&&"to_path"}($nesting[0],$nesting)},Opal.modules["nodejs/env"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$alias=Opal.alias,$truthy=Opal.truthy;return Opal.add_stubs(["$new","$to_s","$key?","$[]","$raise"]),Opal.const_set($nesting[0],"ENV",$$($nesting,"Object").$new()),function($to_s$8,$delete$6){var $fetch$7,$nesting=[$to_s$8].concat($delete$6);return Opal.def($to_s$8,"$[]",$delete$6=function(name){return process.env[name]||nil},$delete$6.$$arity=1),Opal.def($to_s$8,"$[]=",$delete$6=function(name,value){return process.env[name.$to_s()]=value.$to_s()},$delete$6.$$arity=2),Opal.def($to_s$8,"$key?",$delete$6=function(name){return process.env.hasOwnProperty(name)},$delete$6.$$arity=1),$alias($to_s$8,"has_key?","key?"),$alias($to_s$8,"include?","key?"),$alias($to_s$8,"member?","key?"),Opal.def($to_s$8,"$empty?",$delete$6=function(){return 0===Object.keys(process.env).length},$delete$6.$$arity=0),Opal.def($to_s$8,"$keys",$delete$6=function(){return Object.keys(process.env)},$delete$6.$$arity=0),Opal.def($to_s$8,"$delete",$delete$6=function(name){var value=process.env[name]||nil;return delete process.env[name],value},$delete$6.$$arity=1),Opal.def($to_s$8,"$fetch",$fetch$7=function(key,default_value){var $iter=$fetch$7.$$p,block=$iter||nil;return $iter&&($fetch$7.$$p=null),$iter&&($fetch$7.$$p=null),$truthy(this["$key?"](key))?this["$[]"](key):block!==nil?Opal.yield1(block,key):$truthy(void 0===default_value)?this.$raise($$($nesting,"KeyError"),"key not found"):default_value},$fetch$7.$$arity=-2),Opal.def($to_s$8,"$to_s",$to_s$8=function(){return"ENV"},$to_s$8.$$arity=0),nil&&"to_s"}(Opal.get_singleton_class($$($nesting,"ENV")),$nesting)},Opal.modules.nodejs=function(Opal){var self=Opal.top,$parent_nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return Opal.add_stubs(["$require"]),[$module(($parent_nesting=$parent_nesting)[0],"NodeJS")].concat($parent_nesting),self.$require("nodejs/kernel"),self.$require("nodejs/file"),self.$require("nodejs/dir"),self.$require("nodejs/io"),self.$require("nodejs/open-uri"),self.$require("nodejs/pathname"),self.$require("nodejs/env")}; +Opal.modules["nodejs/base"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$module=Opal.module,$const_set=Opal.const_set,$eqeq=Opal.eqeq,$lambda=Opal.lambda,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$writer=nil;Opal.add_stubs("==,first,shift,write_proc=,-,read_proc=,tty="),function($base,$parent_nesting){var $nesting=[$module($base,"NodeJS")].concat($parent_nesting);$const_set($nesting[0],"VERSION",process.version)}($nesting[0],$nesting),Opal.exit=process.exit,$const_set($nesting[0],"ARGV",process.argv.slice(2)),$eqeq($$("ARGV").$first(),"--")&&$$("ARGV").$shift(),$writer=[$lambda((function(string){return null==string&&(string=nil),process.stdout.write(string)}),1)],$send($$("STDOUT"),"write_proc=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$lambda((function(string){return null==string&&(string=nil),process.stderr.write(string)}),1)],$send($$("STDERR"),"write_proc=",$to_a($writer)),$writer[$rb_minus($writer.length,1)];var __fs__=require("fs");return $writer=[function(_count){var count,buf=Buffer.alloc(65536);try{count=__fs__.readSync(this.fd,buf,0,65536,null)}catch(e){return nil}return 0==count?nil:buf.toString("utf8",0,count)}],$send($$("STDIN"),"read_proc=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send($$("STDIN"),"tty=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send($$("STDOUT"),"tty=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send($$("STDERR"),"tty=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]},Opal.modules.native=function(Opal){var self=Opal.top,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$defs=Opal.defs,$truthy=Opal.truthy,$send=Opal.send,$Kernel=Opal.Kernel,$hash2=Opal.hash2,$range=Opal.range,$to_a=Opal.to_a,$def=Opal.def,$alias=Opal.alias,$klass=Opal.klass,$rb_minus=Opal.rb_minus,$send2=Opal.send2,$find_super=Opal.find_super,$eqeqeq=Opal.eqeqeq,$rb_ge=Opal.rb_ge,$gvars=Opal.gvars;return Opal.add_stubs("try_convert,native?,respond_to?,to_n,raise,inspect,Native,proc,map!,end_with?,define_method,[],convert,call,to_proc,new,each,native_reader,native_writer,extend,warn,include,is_a?,map,to_a,_Array,method_missing,bind,instance_method,slice,-,length,[]=,enum_for,===,>=,<<,each_pair,method_defined?,_initialize,name,native_module"),function($base,$parent_nesting){var self=$module($base,"Native"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$is_a?",(function(object,klass){try{return object instanceof this.$try_convert(klass)}catch(e){return!1}}),2),$defs(self,"$try_convert",(function(value,default$){return null==default$&&(default$=nil),this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():default$}),-2),$defs(self,"$convert",(function(value){return this["$native?"](value)?value:value["$respond_to?"]("to_n")?value.$to_n():void this.$raise($$("ArgumentError"),value.$inspect()+" isn't native")}),1),$defs(self,"$call",(function $$call(obj,key,$a){var args,block=$$call.$$p||nil,self=this;delete $$call.$$p,args=Opal.slice.call(arguments,2);var prop=obj[key];if(prop instanceof Function){for(var converted=new Array(args.length),i=0,l=args.length;i0&&(old=$post_args.shift()),null==old&&(old=new$),null==(as=$kwargs.$$smap.as)&&(as=nil),$truthy(old["$end_with?"]("="))?$send(self,"define_method",[new$],(function $$4(value){var self=null==$$4.$$s?this:$$4.$$s;return null==self.native&&(self.native=nil),null==value&&(value=nil),self.native[old["$[]"]($range(0,-2,!1))]=$$("Native").$convert(value),value}),{$$arity:1,$$s:self}):$truthy(as)?$send(self,"define_method",[new$],(function $$5($c){var args,block=$$5.$$p||nil,self=null==$$5.$$s?this:$$5.$$s,value=nil;return null==self.native&&(self.native=nil),delete $$5.$$p,args=Opal.slice.call(arguments),value=$send($$("Native"),"call",[self.native,old].concat($to_a(args)),block.$to_proc()),$truthy(value)?as.$new(value.$to_n()):nil}),{$$arity:-1,$$s:self}):$send(self,"define_method",[new$],(function $$6($c){var args,block=$$6.$$p||nil,self=null==$$6.$$s?this:$$6.$$s;return null==self.native&&(self.native=nil),delete $$6.$$p,args=Opal.slice.call(arguments),$send($$("Native"),"call",[self.native,old].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:self})}),-2),$def(self,"$native_reader",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$7(name){var self=null==$$7.$$s?this:$$7.$$s;return null==name&&(name=nil),$send(self,"define_method",[name],(function $$8(){var self=null==$$8.$$s?this:$$8.$$s;return null==self.native&&(self.native=nil),self.$Native(self.native[name])}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:self})}),-1),$def(self,"$native_writer",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$9(name){var self=null==$$9.$$s?this:$$9.$$s;return null==name&&(name=nil),$send(self,"define_method",[name+"="],(function $$10(value){var self=null==$$10.$$s?this:$$10.$$s;return null==self.native&&(self.native=nil),null==value&&(value=nil),self.$Native(self.native[name]=value)}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})}),-1),$def(self,"$native_accessor",(function($a){var $post_args,names,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"native_reader",$to_a(names=$post_args)),$send(self,"native_writer",$to_a(names))}),-1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Wrapper"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$initialize",(function(native$){return $truthy($Kernel["$native?"](native$))||$Kernel.$raise($$("ArgumentError"),native$.$inspect()+" isn't native"),this.native=native$}),1),$def(self,"$to_n",(function(){return null==this.native&&(this.native=nil),this.native}),0),$defs(self,"$included",(function(klass){return klass.$extend($$("Helpers"))}),1)}($nesting[0],$nesting),$defs(self,"$included",(function(base){return this.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),base.$include($$("Wrapper"))}),1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$native?",(function(value){return null==value||!value.$$class}),1),$def(self,"$Native",(function $$Native(obj){return delete $$Native.$$p,$truthy(null==obj)?nil:$truthy(this["$native?"](obj))?$$$($$("Native"),"Object").$new(obj):$truthy(obj["$is_a?"]($$("Array")))?$send(obj,"map",[],(function $$12(o){return null==o&&(o=nil),(null==$$12.$$s?this:$$12.$$s).$Native(o)}),{$$arity:1,$$s:this}):$truthy(obj["$is_a?"]($$("Proc")))?$send(this,"proc",[],(function $$13($a){var args,block=$$13.$$p||nil,self=null==$$13.$$s?this:$$13.$$s;return delete $$13.$$p,args=Opal.slice.call(arguments),self.$Native($send(obj,"call",$to_a(args),block.$to_proc()))}),{$$arity:-1,$$s:this}):obj}),1),$alias(self,"_Array","Array"),$def(self,"$Array",(function $$Array(object,$a){var args,block=$$Array.$$p||nil,self=this;return delete $$Array.$$p,args=Opal.slice.call(arguments,1),$truthy(self["$native?"](object))?$send($$$($$("Native"),"Array"),"new",[object].concat($to_a(args)),block.$to_proc()).$to_a():self.$_Array(object)}),-2)}($nesting[0],$nesting),function($base,$super){var self=$klass($base,$super,"Object");self.$$prototype.native=nil,self.$include($$$($$$("Native"),"Wrapper")),$def(self,"$==",(function(other){return this.native===$$$("Native").$try_convert(other)}),1),$def(self,"$has_key?",(function(name){return Opal.hasOwnProperty.call(this.native,name)}),1),$def(self,"$each",(function $$each($a){var args,$yield=$$each.$$p||nil,self=this;if(delete $$each.$$p,args=Opal.slice.call(arguments),$yield!==nil){for(var key in self.native)Opal.yieldX($yield,[key,self.native[key]]);return self}return $send(self,"method_missing",["each"].concat($to_a(args)))}),-1),$def(self,"$[]",(function(key){var prop=this.native[key];return prop instanceof Function?prop:$$$("Native").$call(this.native,key)}),1),$def(self,"$[]=",(function(key,value){var native$;return native$=$$$("Native").$try_convert(value),$truthy(native$===nil)?this.native[key]=value:this.native[key]=native$}),2),$def(self,"$merge!",(function(other){for(var prop in other=$$$("Native").$convert(other))this.native[prop]=other[prop];return this}),1),$def(self,"$respond_to?",(function(name,include_all){return null==include_all&&(include_all=!1),$Kernel.$instance_method("respond_to?").$bind(this).$call(name,include_all)}),-2),$def(self,"$respond_to_missing?",(function(name,include_all){return null==include_all&&(include_all=!1),Opal.hasOwnProperty.call(this.native,name)}),-2),$def(self,"$method_missing",(function $$method_missing(mid,$a){var args,block=$$method_missing.$$p||nil,self=this,$writer=nil;return delete $$method_missing.$$p,args=Opal.slice.call(arguments,1),"="===mid.charAt(mid.length-1)?($writer=[mid.$slice(0,$rb_minus(mid.$length(),1)),args["$[]"](0)],$send(self,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$send($$$("Native"),"call",[self.native,mid].concat($to_a(args)),block.$to_proc())}),-2),$def(self,"$nil?",(function(){return!1}),0),$def(self,"$is_a?",(function(klass){return Opal.is_a(this,klass)}),1),$def(self,"$instance_of?",(function(klass){return this.$$class===klass}),1),$def(self,"$class",(function(){return this.$$class}),0),$def(self,"$to_a",(function $$to_a(options){var block=$$to_a.$$p||nil;return delete $$to_a.$$p,null==options&&(options=$hash2([],{})),$send($$$($$$("Native"),"Array"),"new",[this.native,options],block.$to_proc()).$to_a()}),-1),$def(self,"$inspect",(function(){return"#"}),0),$alias(self,"include?","has_key?"),$alias(self,"key?","has_key?"),$alias(self,"kind_of?","is_a?"),$alias(self,"member?","has_key?")}($$("Native"),$$("BasicObject")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Array"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.named=$proto.native=$proto.get=$proto.block=$proto.set=$proto.length=nil,self.$include($$$($$("Native"),"Wrapper")),self.$include($$("Enumerable")),$def(self,"$initialize",(function $$initialize(native$,options){var block=$$initialize.$$p||nil,$ret_or_1=nil;return delete $$initialize.$$p,null==options&&(options=$hash2([],{})),$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[native$],null),this.get=$truthy($ret_or_1=options["$[]"]("get"))?$ret_or_1:options["$[]"]("access"),this.named=options["$[]"]("named"),this.set=$truthy($ret_or_1=options["$[]"]("set"))?$ret_or_1:options["$[]"]("access"),this.length=$truthy($ret_or_1=options["$[]"]("length"))?$ret_or_1:"length",this.block=block,$truthy(null==this.$length())?this.$raise($$("ArgumentError"),"no length found on the array-like object"):nil}),-2),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;if(delete $$each.$$p,!$truthy(block))return this.$enum_for("each");for(var i=0,length=this.$length();i"}),0)},Opal.modules["nodejs/kernel"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy,$eqeqeq=Opal.eqeqeq,$gvars=Opal.gvars,$neqeq=Opal.neqeq,$def=Opal.def;return Opal.add_stubs("require,is_a?,first,shift,to_n,merge,empty?,===,[],new,!=,raise,==,encode,to_s"),self.$require("buffer"),self.$require("corelib/process/status"),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);null==self.__child_process__&&(self.__child_process__=nil),self.__child_process__=require("child_process");var __child_process__=self.__child_process__;return $def(self,"$system",(function($a,$b){var $post_args,$kwargs,argv,exception,self=this,env=nil,cmdname=nil,out=nil,status=nil,pid=nil;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return argv=$post_args,null==(exception=$kwargs.$$smap.exception)&&(exception=!1),env=$hash2([],{}),$truthy(argv.$first()["$is_a?"]($$("Hash")))&&(env=argv.$shift()),env=$$("ENV").$merge(env).$to_n(),cmdname=argv.$shift(),status=(out=$truthy(argv["$empty?"]())?__child_process__.spawnSync(cmdname,{shell:!0,stdio:"inherit",env:env}):$eqeqeq($$("Array"),cmdname)?__child_process__.spawnSync(cmdname["$[]"](0),argv,{argv0:cmdname["$[]"](1),stdio:"inherit",env:env}):__child_process__.spawnSync(cmdname,argv,{stdio:"inherit",env:env})).status,$truthy(null===status)&&(status=127),pid=out.pid,$gvars["?"]=$$$($$("Process"),"Status").$new(status,pid),$truthy(exception)&&$neqeq(status,0)&&self.$raise("Command failed with exit "+status+": "+cmdname),status["$=="](0)}),-1),$def(self,"$`",(function(cmdline){return $$("Buffer").$new(__child_process__.execSync(cmdline)).$to_s().$encode("UTF-8")}),1)}($nesting[0],$nesting)},Opal.modules["corelib/file"]=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$truthy=Opal.truthy,$klass=Opal.klass,$const_set=Opal.const_set,$Opal=Opal.Opal,$regexp=Opal.regexp,$rb_plus=Opal.rb_plus,$def=Opal.def,$Kernel=Opal.Kernel,$eqeq=Opal.eqeq,$rb_lt=Opal.rb_lt,$rb_minus=Opal.rb_minus,$range=Opal.range,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs("respond_to?,to_path,coerce_to!,pwd,split,sub,+,unshift,join,home,raise,start_with?,absolute_path,==,<,dirname,-,basename,empty?,rindex,[],length,nil?,gsub,find,=~,map,each_with_index,flatten,reject,to_proc,end_with?"),function($base,$super,$parent_nesting){var self=$klass("::",$super,"File"),$nesting=[self].concat($parent_nesting),windows_root_rx=nil;return $const_set($nesting[0],"Separator",$const_set($nesting[0],"SEPARATOR","/")),$const_set($nesting[0],"ALT_SEPARATOR",nil),$const_set($nesting[0],"PATH_SEPARATOR",":"),$const_set($nesting[0],"FNM_SYSCASE",0),windows_root_rx=/^[a-zA-Z]:(?:\\|\/)/,function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);function $coerce_to_path(path){return $truthy(path["$respond_to?"]("to_path"))&&(path=path.$to_path()),path=$Opal["$coerce_to!"](path,$$$("String"),"to_str")}function $sep_chars(){return $$("ALT_SEPARATOR")===nil?Opal.escape_regexp($$("SEPARATOR")):Opal.escape_regexp($rb_plus($$("SEPARATOR"),$$("ALT_SEPARATOR")))}return $def(self,"$absolute_path",(function(path,basedir){var sep,sep_chars,$ret_or_1,path_abs,basedir_abs,part,new_parts=nil,parts=nil,leading_sep=nil,abs=nil,new_path=nil;null==basedir&&(basedir=nil),sep=$$("SEPARATOR"),sep_chars=$sep_chars(),new_parts=[],path=$truthy(path["$respond_to?"]("to_path"))?path.$to_path():path,path=$Opal["$coerce_to!"](path,$$$("String"),"to_str"),basedir=$truthy($ret_or_1=basedir)?$ret_or_1:$$$("Dir").$pwd(),path_abs=path.substr(0,sep.length)===sep||windows_root_rx.test(path),basedir_abs=basedir.substr(0,sep.length)===sep||windows_root_rx.test(basedir),$truthy(path_abs)?(parts=path.$split($regexp(["[",sep_chars,"]"])),leading_sep=windows_root_rx.test(path)?"":path.$sub($regexp(["^([",sep_chars,"]+).*$"]),"\\1"),abs=!0):(parts=$rb_plus(basedir.$split($regexp(["[",sep_chars,"]"])),path.$split($regexp(["[",sep_chars,"]"]))),leading_sep=windows_root_rx.test(basedir)?"":basedir.$sub($regexp(["^([",sep_chars,"]+).*$"]),"\\1"),abs=basedir_abs);for(var i=0,ii=parts.length;i=0){var error_class=$$("Errno").$const_get(error.code);$$("Kernel").$raise(error_class.$new(error.message))}$$("Kernel").$raise(self.$error())}}return function($base,$super,$parent_nesting){var self=$klass($base,$super,"File"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;null==self.__fs__&&(self.__fs__=nil),null==self.__path__&&(self.__path__=nil),null==self.__util__&&(self.__util__=nil),$proto.eof=$proto.binary_flag=$proto.path=$proto.fd=nil,self.__fs__=require("fs"),self.__path__=require("path"),self.__util__=require("util");var __fs__=self.__fs__,__path__=self.__path__,__util__=self.__util__,__TextEncoder__="undefined"!=typeof TextEncoder?TextEncoder:__util__.TextEncoder,__utf8TextDecoder__=new("undefined"!=typeof TextDecoder?TextDecoder:__util__.TextDecoder)("utf8"),__textEncoder__=new __TextEncoder__;$truthy(__path__.sep!==$$("Separator"))&&$const_set($nesting[0],"ALT_SEPARATOR",__path__.sep),$defs(self,"$read",(function(path){return executeIOAction((function(){return __fs__.readFileSync(path).toString()}))}),1),$defs(self,"$write",(function(path,data){return executeIOAction((function(){return __fs__.writeFileSync(path,data)})),data.$size()}),2),$defs(self,"$delete",(function(path){return executeIOAction((function(){return __fs__.unlinkSync(path)}))}),1),function(self,$parent_nesting){$alias(self,"unlink","delete")}(Opal.get_singleton_class(self)),$defs(self,"$exist?",(function(path){return $truthy(path["$respond_to?"]("path"))&&(path=path.$path()),executeIOAction((function(){return __fs__.existsSync(path)}))}),1),$defs(self,"$realpath",(function $$realpath(pathname,dir_string,cache){var block=$$realpath.$$p||nil;if(delete $$realpath.$$p,null==dir_string&&(dir_string=nil),null==cache&&(cache=nil),$truthy(dir_string)&&(pathname=this.$join(dir_string,pathname)),block===nil)return executeIOAction((function(){return __fs__.realpathSync(pathname,cache)}));__fs__.realpath(pathname,cache,(function(error,realpath){error?Opal.IOError.$new(error.message):block.$call(realpath)}))}),-2),$defs(self,"$join",(function($a){var $post_args,paths,$b;return $post_args=Opal.slice.call(arguments),($truthy(($b=(paths=$post_args).$first())===nil||null==$b?nil:$send($b,"start_with?",["//"]))?"/":"")+__path__.posix.join.apply(__path__,paths)}),-1),$defs(self,"$directory?",(function(path){var result=nil,realpath=nil;return!!$truthy(this["$exist?"](path))&&(result=executeIOAction((function(){return!!__fs__.lstatSync(path).isDirectory()})),$truthy(result)||(realpath=this.$realpath(path),$neqeq(realpath,path)&&(result=executeIOAction((function(){return!!__fs__.lstatSync(realpath).isDirectory()})))),result)}),1),$defs(self,"$file?",(function(path){var result=nil,realpath=nil;return!!$truthy(this["$exist?"](path))&&(result=executeIOAction((function(){return!!__fs__.lstatSync(path).isFile()})),$truthy(result)||(realpath=this.$realpath(path),$neqeq(realpath,path)&&(result=executeIOAction((function(){return!!__fs__.lstatSync(realpath).isFile()})))),result)}),1),$defs(self,"$readable?",(function(path){return!!$truthy(this["$exist?"](path))&&"\n try {\n __fs__.accessSync(path, __fs__.R_OK);\n return true;\n } catch (error) {\n return false;\n }\n "}),1),$defs(self,"$size",(function(path){return executeIOAction((function(){return __fs__.lstatSync(path).size}))}),1),$defs(self,"$open",(function $$open(path,mode){var $yield=$$open.$$p||nil,file=nil;return delete $$open.$$p,null==mode&&(mode="r"),file=this.$new(path,mode),$yield!==nil?function(){try{return Opal.yield1($yield,file)}finally{file.$close()}}():file}),-2),$defs(self,"$stat",(function(path){return $truthy(path["$respond_to?"]("path"))&&(path=path.$path()),$$$($$("File"),"Stat").$new(path)}),1),$defs(self,"$mtime",(function(path){return executeIOAction((function(){return __fs__.statSync(path).mtime}))}),1),$defs(self,"$symlink?",(function(path){return executeIOAction((function(){return __fs__.lstatSync(path).isSymbolicLink()}))}),1),$defs(self,"$absolute_path",(function(path,basedir){var $ret_or_1;return null==basedir&&(basedir=nil),path=$truthy(path["$respond_to?"]("to_path"))?path.$to_path():path,basedir=$truthy($ret_or_1=basedir)?$ret_or_1:$$("Dir").$pwd(),__path__.normalize(__path__.resolve(basedir.$to_str(),path.$to_str())).split(__path__.sep).join(__path__.posix.sep)}),-2),$def(self,"$initialize",(function $$initialize(path,flags){var fd,encoding_option_rx=nil;return delete $$initialize.$$p,null==flags&&(flags="r"),this.binary_flag=flags["$include?"]("b"),flags=flags.$delete("b"),$truthy((encoding_option_rx=/:(.*)/)["$match?"](flags))&&(handle_unsupported_feature("Encoding option (:encoding) is unsupported by Node.js openSync method and will be removed."),flags=flags.$sub(encoding_option_rx,"")),this.path=path,fd=executeIOAction((function(){return __fs__.openSync(path,flags)})),$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[fd,flags],null)}),-2),self.$attr_reader("path"),$def(self,"$sysread",(function(bytes){var self=this,res=nil;if($truthy(self.eof))return self.$raise($$("EOFError"),"end of file reached");if($truthy(self.binary_flag)){var content,buf=executeIOAction((function(){return __fs__.readFileSync(self.path)}));content=function(bytes){for(var i=0;i,to_a,each,attr_accessor,rewind,!,fileno,eof?,lineno="),$const_set($nesting[0],"ARGF",$$("Object").$new()),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$("Enumerable")),$def(self,"$inspect",(function(){return"ARGF"}),0),$def(self,"$argv",(function(){return $$("ARGV")}),0),$def(self,"$file",(function(){var fn,$ret_or_1=nil;return null==this.file&&(this.file=nil),null==$gvars.stdin&&($gvars.stdin=nil),fn=this.$filename(),$eqeq(fn,"-")?$gvars.stdin:this.file=$truthy($ret_or_1=this.file)?$ret_or_1:$$("File").$open(fn,"r")}),0),$def(self,"$filename",(function(){var $ret_or_1=nil;return null==this.filename&&(this.filename=nil),null==this.last_filename&&(this.last_filename=nil),$truthy(this.filename)?this.filename:$eqeq(this.$argv(),["-"])?"-":$eqeq(this.$argv(),[])?$truthy($ret_or_1=this.last_filename)?$ret_or_1:"-":(this.file=nil,this.filename=this.last_filename=this.$argv().$shift())}),0),$def(self,"$close",(function(){return this.$file().$close(),this.filename=nil,this}),0),$def(self,"$closed?",(function(){return this.$file()["$closed?"]()}),0),$def(self,"$each",(function $$each($a){var args,block=$$each.$$p||nil,self=this,l=nil;if(delete $$each.$$p,args=Opal.slice.call(arguments),block===nil)return self.$enum_for("each");for(;$truthy(l=$send(self,"gets",$to_a(args)));)Opal.yield1(block,l)}),-1),$def(self,"$gets",(function($a){var args,self=this,s=nil;return null==self.lineno&&(self.lineno=nil),args=Opal.slice.call(arguments),s=$send(self.$file(),"gets",$to_a(args)),$truthy(s["$nil?"]())&&(self.$close(),s=$send(self.$file(),"gets",$to_a(args))),$truthy(s)&&(self.lineno=$rb_plus(self.lineno,1)),s}),-1),$def(self,"$read",(function(len){var self=this,buf=nil;return null==len&&(len=nil),buf="",function(){var $brk=Opal.new_brk();try{return $send(self,"loop",[],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s,r=nil;if(null==self.filename&&(self.filename=nil),r=self.$file().$read(len),$truthy(r)&&(buf=$rb_plus(buf,r),len=$rb_minus(len,r.$length())),self.$file().$close(),!($truthy(len)&&$truthy($rb_gt(len,0))&&$truthy(self.filename)))return nil;Opal.brk(nil,$brk)}),{$$arity:0,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}()}),-1),$def(self,"$readlines",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"each",$to_a($post_args)).$to_a()}),-1),self.$attr_accessor("lineno"),$def(self,"$rewind",(function(){var f=nil;this.lineno=1,f=this.$file();try{f.$rewind()}catch($err){if(!Opal.rescue($err,[$$("StandardError")]))throw $err;Opal.pop_exception()}return 0}),0),$def(self,"$fileno",(function(){return null==this.last_filename&&(this.last_filename=nil),null==this.filename&&(this.filename=nil),$not(this.filename)&&$truthy(this.last_filename)?0:this.$file().$fileno()}),0),$def(self,"$eof?",(function(){return this.$file()["$eof?"]()}),0),$alias(self,"each_line","each"),$alias(self,"eof","eof?"),$alias(self,"path","filename"),$alias(self,"skip","close"),$alias(self,"to_i","fileno"),$alias(self,"to_io","file")}(Opal.get_singleton_class($$("ARGF")),$nesting),$writer=[1],$send($$("ARGF"),"lineno=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]},Opal.modules["nodejs/open-uri"]=function(Opal){var nil=Opal.nil,$module=Opal.module,$defs=Opal.defs;return function($base){var self=$module($base,"OpenURI");null==self.__xmlhttprequest__&&(self.__xmlhttprequest__=nil),self.__xmlhttprequest__=require("unxhr");var __XMLHttpRequest__=self.__xmlhttprequest__.XMLHttpRequest;return $defs(self,"$request",(function(uri){var xhr=new __XMLHttpRequest__;return xhr.open("GET",uri,!1),xhr.responseType="arraybuffer",xhr.send(),xhr}),1),$defs(self,"$data",(function(req){for(var arrayBuffer=req.response,byteArray=new Uint8Array(arrayBuffer),result=[],i=0;i,<,===,raise,class,<=>,equal?"),function($base){var self=$module("::","Comparable"),$ret_or_1=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $truthy(cmp)||function(lhs,rhs){var class_name;class_name=$eqeqeq(nil,$ret_or_1=rhs)||$eqeqeq(!0,$ret_or_1)||$eqeqeq(!1,$ret_or_1)||$eqeqeq($$$("Integer"),$ret_or_1)||$eqeqeq($$$("Float"),$ret_or_1)?rhs.$inspect():rhs.$$class,$Kernel.$raise($$$("ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return $def(self,"$==",(function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))}),1),$def(self,"$>",(function(other){return cmp_or_fail(this,other)>0}),1),$def(self,"$>=",(function(other){return cmp_or_fail(this,other)>=0}),1),$def(self,"$<",(function(other){return cmp_or_fail(this,other)<0}),1),$def(self,"$<=",(function(other){return cmp_or_fail(this,other)<=0}),1),$def(self,"$between?",(function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)}),2),$def(self,"$clamp",(function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||$Kernel.$raise($$$("TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&$Kernel.$raise($$$("ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&cmp_or_fail(min,max)>0&&$Kernel.$raise($$$("ArgumentError"),"min argument must be smaller than max argument"),min!==nil){if(0==(c=cmp_or_fail(this,min)))return this;if(c<0)return min}return max!==nil&&(c=cmp_or_fail(this,max))>0?max:this}),-2)}()},Opal.modules.pathname=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def,$defs=Opal.defs,$to_ary=Opal.to_ary,$send=Opal.send,$to_a=Opal.to_a,$neqeq=Opal.neqeq,$rb_plus=Opal.rb_plus,$not=Opal.not,$alias=Opal.alias,$module=Opal.module;return Opal.add_stubs("require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries"),self.$require("corelib/comparable"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Pathname"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.path=nil,self.$include($$("Comparable")),$const_set($nesting[0],"SEPARATOR_PAT",$regexp([$$("Regexp").$quote($$$($$("File"),"SEPARATOR"))])),$def(self,"$initialize",(function(path){return $eqeqeq($$("Pathname"),path)?this.path=path.$path().$to_s():$truthy(path["$respond_to?"]("to_path"))?this.path=path.$to_path():$truthy(path["$is_a?"]($$("String")))?this.path=path:$truthy(path["$nil?"]())?this.$raise($$("TypeError"),"no implicit conversion of nil into String"):this.$raise($$("TypeError"),"no implicit conversion of "+path.$class()+" into String"),$eqeq(this.path,"\0")?this.$raise($$("ArgumentError")):nil}),1),$defs(self,"$pwd",(function(){return this.$new($$("Dir").$pwd())}),0),self.$attr_reader("path"),$def(self,"$==",(function(other){return other.$path()["$=="](this.path)}),1),$def(self,"$absolute?",(function(){return this["$relative?"]()["$!"]()}),0),$def(self,"$relative?",(function(){var $b,path=nil,r=nil;for(path=this.path;$truthy(r=this.$chop_basename(path));)path=null==($b=$to_ary(r))[0]?nil:$b[0];return path["$=="]("")}),0),$def(self,"$chop_basename",(function(path){var base;return base=$$("File").$basename(path),$truthy($$("Regexp").$new("^"+$$$($$("Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](base))?nil:[path["$[]"](0,path.$rindex(base)),base]}),1),$def(self,"$root?",(function(){return this.path["$=="]("/")}),0),$def(self,"$parent",(function(){var new_path=nil;return new_path=this.path.$sub(/\/([^\/]+\/?$)/,""),$eqeq(new_path,"")&&(new_path=$truthy(this["$absolute?"]())?"/":"."),$$("Pathname").$new(new_path)}),0),$def(self,"$sub",(function($a){var args,self=this;return args=Opal.slice.call(arguments),$$("Pathname").$new($send(self.path,"sub",$to_a(args)))}),-1),$def(self,"$cleanpath",(function(){return Opal.normalize(this.path)}),0),$def(self,"$to_path",(function(){return this.path}),0),$def(self,"$hash",(function(){return this.path}),0),$def(self,"$expand_path",(function(){return $$("Pathname").$new($$("File").$expand_path(this.path))}),0),$def(self,"$+",(function(other){return $eqeqeq($$("Pathname"),other)||(other=$$("Pathname").$new(other)),$$("Pathname").$new(this.$plus(this.path,other.$to_s()))}),1),$def(self,"$plus",(function(path1,path2){var $b,prefix2=nil,index_list2=nil,basename_list2=nil,r2=nil,basename2=nil,prefix1=nil,$ret_or_1=nil,r1=nil,basename1=nil,suffix2=nil;for(prefix2=path2,index_list2=[],basename_list2=[];$truthy(r2=this.$chop_basename(prefix2));)prefix2=null==($b=$to_ary(r2))[0]?nil:$b[0],basename2=null==$b[1]?nil:$b[1],index_list2.$unshift(prefix2.$length()),basename_list2.$unshift(basename2);if($neqeq(prefix2,""))return path2;for(prefix1=path1;$truthy(!0);){for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="]("."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();if(!$truthy(r1=this.$chop_basename(prefix1)))break;if(prefix1=null==($b=$to_ary(r1))[0]?nil:$b[0],basename1=null==$b[1]?nil:$b[1],!$eqeq(basename1,".")){if($eqeq(basename1,"..")||$truthy(basename_list2["$empty?"]())||$neqeq(basename_list2.$first(),"..")){prefix1=$rb_plus(prefix1,basename1);break}index_list2.$shift(),basename_list2.$shift()}}if(r1=this.$chop_basename(prefix1),$not(r1)&&$truthy($regexp([$$("SEPARATOR_PAT")])["$=~"]($$("File").$basename(prefix1))))for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="](".."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();return $not(basename_list2["$empty?"]())?(suffix2=path2["$[]"](Opal.Range.$new(index_list2.$first(),-1,!1)),$truthy(r1)?$$("File").$join(prefix1,suffix2):$rb_plus(prefix1,suffix2)):$truthy(r1)?prefix1:$$("File").$dirname(prefix1)}),2),$def(self,"$join",(function($a){try{var $post_args,args,self=this,result=nil;return $post_args=Opal.slice.call(arguments),$truthy((args=$post_args)["$empty?"]())?self:(result=args.$pop(),$eqeqeq($$("Pathname"),result)||(result=$$("Pathname").$new(result)),$truthy(result["$absolute?"]())?result:($send(args,"reverse_each",[],(function(arg){if(null==arg&&(arg=nil),$eqeqeq($$("Pathname"),arg)||(arg=$$("Pathname").$new(arg)),result=$rb_plus(arg,result),!$truthy(result["$absolute?"]()))return nil;Opal.ret(result)}),1),$rb_plus(self,result)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$split",(function(){return[this.$dirname(),this.$basename()]}),0),$def(self,"$dirname",(function(){return $$("Pathname").$new($$("File").$dirname(this.path))}),0),$def(self,"$basename",(function(){return $$("Pathname").$new($$("File").$basename(this.path))}),0),$def(self,"$directory?",(function(){return $$("File")["$directory?"](this.path)}),0),$def(self,"$extname",(function(){return $$("File").$extname(this.path)}),0),$def(self,"$<=>",(function(other){return this.$path()["$<=>"](other.$path())}),1),$const_set($nesting[0],"SAME_PATHS",$truthy($$$($$("File"),"FNM_SYSCASE")["$nonzero?"]())?$send(self,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a.$casecmp(b)["$=="](0)}),2):$send(self,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a["$=="](b)}),2)),$def(self,"$relative_path_from",(function(base_directory){var $b,dest_directory,dest_prefix=nil,dest_names=nil,r=nil,basename=nil,base_prefix=nil,base_names=nil,$ret_or_1=nil,$ret_or_2=nil,relpath_names=nil;for(dest_directory=this.$cleanpath().$to_s(),base_directory=base_directory.$cleanpath().$to_s(),dest_prefix=dest_directory,dest_names=[];$truthy(r=this.$chop_basename(dest_prefix));)dest_prefix=null==($b=$to_ary(r))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$neqeq(basename,".")&&dest_names.$unshift(basename);for(base_prefix=base_directory,base_names=[];$truthy(r=this.$chop_basename(base_prefix));)base_prefix=null==($b=$to_ary(r))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$neqeq(basename,".")&&base_names.$unshift(basename);for($truthy($$("SAME_PATHS")["$[]"](dest_prefix,base_prefix))||this.$raise($$("ArgumentError"),"different prefix: "+dest_prefix.$inspect()+" and "+base_directory.$inspect());$truthy($truthy($ret_or_1=$truthy($ret_or_2=dest_names["$empty?"]()["$!"]())?base_names["$empty?"]()["$!"]():$ret_or_2)?$$("SAME_PATHS")["$[]"](dest_names.$first(),base_names.$first()):$ret_or_1);)dest_names.$shift(),base_names.$shift();return $truthy(base_names["$include?"](".."))&&this.$raise($$("ArgumentError"),"base_directory has ..: "+base_directory.$inspect()),base_names.$fill(".."),relpath_names=$rb_plus(base_names,dest_names),$truthy(relpath_names["$empty?"]())?$$("Pathname").$new("."):$$("Pathname").$new($send($$("File"),"join",$to_a(relpath_names)))}),1),$def(self,"$entries",(function(){return $send($$("Dir").$entries(this.path),"map",[],(function $$11(f){return null==f&&(f=nil),(null==$$11.$$s?this:$$11.$$s).$class().$new(f)}),{$$arity:1,$$s:this})}),0),$alias(self,"===","=="),$alias(self,"eql?","=="),$alias(self,"to_s","to_path"),$alias(self,"to_str","to_path")}($nesting[0],0,$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$Pathname",(function(path){return $$("Pathname").$new(path)}),1)}($nesting[0],$nesting)},Opal.modules["nodejs/pathname"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,include,to_str,!,absolute?"),self.$require("pathname"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Pathname"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;null==self.__path__&&(self.__path__=nil),$proto.path=nil,self.$include($$("Comparable")),self.__path__=require("path");var __path__=self.__path__;return $def(self,"$absolute?",(function(){return __path__.isAbsolute(this.path.$to_str())}),0),$def(self,"$relative?",(function(){return this["$absolute?"]()["$!"]()}),0),$def(self,"$to_path",(function(){return this.path}),0)}($nesting[0],0,$nesting)},Opal.modules["nodejs/env"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$const_set=Opal.const_set,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs("new,to_s,key?,[],raise,to_h,keys,merge"),$const_set($nesting[0],"ENV",$$("Object").$new()),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$[]",(function(name){return process.env[name]||nil}),1),$def(self,"$[]=",(function(name,value){return process.env[name.$to_s()]=value.$to_s()}),2),$def(self,"$key?",(function(name){return process.env.hasOwnProperty(name)}),1),$def(self,"$empty?",(function(){return 0===Object.keys(process.env).length}),0),$def(self,"$keys",(function(){return Object.keys(process.env)}),0),$def(self,"$delete",(function(name){var value=process.env[name]||nil;return delete process.env[name],value}),1),$def(self,"$fetch",(function $$fetch(key,default_value){var block=$$fetch.$$p||nil;return delete $$fetch.$$p,$truthy(this["$key?"](key))?this["$[]"](key):block!==nil?Opal.yield1(block,key):$truthy(void 0===default_value)?this.$raise($$("KeyError"),"key not found"):default_value}),-2),$def(self,"$to_s",(function(){return"ENV"}),0),$def(self,"$to_h",(function(){return $send(this.$keys(),"to_h",[],(function $$6(k){return null==k&&(k=nil),[k,(null==$$6.$$s?this:$$6.$$s)["$[]"](k)]}),{$$arity:1,$$s:this})}),0),$def(self,"$merge",(function(keys){return this.$to_h().$merge(keys)}),1),$alias(self,"has_key?","key?"),$alias(self,"include?","key?"),$alias(self,"inspect","to_s"),$alias(self,"member?","key?"),$alias(self,"to_hash","to_h")}(Opal.get_singleton_class($$("ENV")),$nesting)},Opal.modules.nodejs=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("require"),self.$require("nodejs/base"),self.$require("nodejs/kernel"),self.$require("nodejs/file"),self.$require("nodejs/dir"),self.$require("nodejs/io"),self.$require("nodejs/argf"),self.$require("nodejs/open-uri"),self.$require("nodejs/pathname"),self.$require("nodejs/env")}; diff --git a/opal/master/nodejs.min.js.gz b/opal/master/nodejs.min.js.gz index 2ad5cefa..c8c72f17 100644 Binary files a/opal/master/nodejs.min.js.gz and b/opal/master/nodejs.min.js.gz differ diff --git a/opal/master/observer.js b/opal/master/observer.js index 40917602..d1614e3b 100644 --- a/opal/master/observer.js +++ b/opal/master/observer.js @@ -1,42 +1,34 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["observer"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["observer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def; - Opal.add_stubs(['$respond_to?', '$raise', '$new', '$to_s', '$[]=', '$-', '$delete', '$clear', '$size', '$each', '$send']); + Opal.add_stubs('respond_to?,raise,new,to_s,[]=,-,delete,clear,size,each,send'); return (function($base, $parent_nesting) { var self = $module($base, 'Observable'); - var $nesting = [self].concat($parent_nesting), $Observable_add_observer$1, $Observable_delete_observer$2, $Observable_delete_observers$3, $Observable_count_observers$4, $Observable_changed$5, $Observable_changed$ques$6, $Observable_notify_observers$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$add_observer', $Observable_add_observer$1 = function $$add_observer(observer, func) { + $def(self, '$add_observer', function $$add_observer(observer, func) { var $a, self = this, $writer = nil; if (self.observer_peers == null) self.observer_peers = nil; - if (func == null) { - func = "update"; - }; - if ($truthy((($a = self['observer_peers'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - } else { + if (func == null) func = "update";; + if (!$truthy((($a = self['observer_peers'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { self.observer_peers = $hash2([], {}) }; - if ($truthy(observer['$respond_to?'](func))) { - } else { - self.$raise($$($nesting, 'NoMethodError').$new("" + "observer does not respond to `" + (func.$to_s()) + "'", func.$to_s())) + if (!$truthy(observer['$respond_to?'](func))) { + self.$raise($$('NoMethodError').$new("observer does not respond to `" + (func.$to_s()) + "'", func.$to_s())) }; $writer = [observer, func]; - $send(self.observer_peers, '[]=', Opal.to_a($writer)); + $send(self.observer_peers, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $Observable_add_observer$1.$$arity = -2); + }, -2); - Opal.def(self, '$delete_observer', $Observable_delete_observer$2 = function $$delete_observer(observer) { + $def(self, '$delete_observer', function $$delete_observer(observer) { var $a, self = this; if (self.observer_peers == null) self.observer_peers = nil; @@ -45,9 +37,9 @@ Opal.modules["observer"] = function(Opal) { } else { return nil } - }, $Observable_delete_observer$2.$$arity = 1); + }, 1); - Opal.def(self, '$delete_observers', $Observable_delete_observers$3 = function $$delete_observers() { + $def(self, '$delete_observers', function $$delete_observers() { var $a, self = this; if (self.observer_peers == null) self.observer_peers = nil; @@ -56,9 +48,9 @@ Opal.modules["observer"] = function(Opal) { } else { return nil } - }, $Observable_delete_observers$3.$$arity = 0); + }, 0); - Opal.def(self, '$count_observers', $Observable_count_observers$4 = function $$count_observers() { + $def(self, '$count_observers', function $$count_observers() { var $a, self = this; if (self.observer_peers == null) self.observer_peers = nil; @@ -67,66 +59,52 @@ Opal.modules["observer"] = function(Opal) { } else { return 0 } - }, $Observable_count_observers$4.$$arity = 0); + }, 0); - Opal.def(self, '$changed', $Observable_changed$5 = function $$changed(state) { + $def(self, '$changed', function $$changed(state) { var self = this; - if (state == null) { - state = true; - }; + if (state == null) state = true;; return (self.observer_state = state); - }, $Observable_changed$5.$$arity = -1); + }, -1); - Opal.def(self, '$changed?', $Observable_changed$ques$6 = function() { - var $a, self = this, $ret_or_1 = nil; + $def(self, '$changed?', function $Observable_changed$ques$1() { + var $a, self = this; if (self.observer_state == null) self.observer_state = nil; - if ($truthy((function() {if ($truthy(($ret_or_1 = (($a = self['observer_state'], $a != null && $a !== nil) ? 'instance-variable' : nil)))) { - return self.observer_state - } else { - return $ret_or_1 - }; return nil; })())) { + if (($truthy((($a = self['observer_state'], $a != null && $a !== nil) ? 'instance-variable' : nil)) && ($truthy(self.observer_state)))) { return true } else { return false } - }, $Observable_changed$ques$6.$$arity = 0); - return (Opal.def(self, '$notify_observers', $Observable_notify_observers$7 = function $$notify_observers($a) { - var $post_args, arg, $b, $c, $$8, self = this, $ret_or_2 = nil; + }, 0); + return $def(self, '$notify_observers', function $$notify_observers($a) { + var $post_args, arg, $b, $c, self = this; if (self.observer_state == null) self.observer_state = nil; if (self.observer_peers == null) self.observer_peers = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); arg = $post_args;; - if ($truthy((function() {if ($truthy(($ret_or_2 = (($b = self['observer_state'], $b != null && $b !== nil) ? 'instance-variable' : nil)))) { - return self.observer_state - } else { - return $ret_or_2 - }; return nil; })())) { + if (($truthy((($b = self['observer_state'], $b != null && $b !== nil) ? 'instance-variable' : nil)) && ($truthy(self.observer_state)))) { if ($truthy((($c = self['observer_peers'], $c != null && $c !== nil) ? 'instance-variable' : nil))) { - $send(self.observer_peers, 'each', [], ($$8 = function(k, v){var self = $$8.$$s == null ? this : $$8.$$s; - + $send(self.observer_peers, 'each', [], function $$2(k, v){ - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; - if (v == null) { - v = nil; - }; - return $send(k, 'send', [v].concat(Opal.to_a(arg)));}, $$8.$$s = self, $$8.$$arity = 2, $$8))}; + if (v == null) v = nil;; + return $send(k, 'send', [v].concat($to_a(arg)));}, 2) + }; return (self.observer_state = false); } else { return nil }; - }, $Observable_notify_observers$7.$$arity = -1), nil) && 'notify_observers'; + }, -1); })($nesting[0], $nesting) }; diff --git a/opal/master/observer.min.js b/opal/master/observer.min.js index 7ab49f1a..554aac00 100644 --- a/opal/master/observer.min.js +++ b/opal/master/observer.min.js @@ -1 +1 @@ -Opal.modules.observer=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$respond_to?","$raise","$new","$to_s","$[]=","$-","$delete","$clear","$size","$each","$send"]),function($Observable_notify_observers$7,$Observable_changed$ques$6){var $Observable_notify_observers$7=$module($Observable_notify_observers$7,"Observable"),$nesting=[$Observable_notify_observers$7].concat($Observable_changed$ques$6);return Opal.def($Observable_notify_observers$7,"$add_observer",$Observable_changed$ques$6=function(observer,rhs){var $a,lhs=nil;return null==this.observer_peers&&(this.observer_peers=nil),null==rhs&&(rhs="update"),$truthy(null!=($a=this.observer_peers)&&$a!==nil?"instance-variable":nil)||(this.observer_peers=$hash2([],{})),$truthy(observer["$respond_to?"](rhs))||this.$raise($$($nesting,"NoMethodError").$new("observer does not respond to `"+rhs.$to_s()+"'",rhs.$to_s())),lhs=[observer,rhs],$send(this.observer_peers,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]},$Observable_changed$ques$6.$$arity=-2),Opal.def($Observable_notify_observers$7,"$delete_observer",$Observable_changed$ques$6=function(observer){var $a;return null==this.observer_peers&&(this.observer_peers=nil),$truthy(null!=($a=this.observer_peers)&&$a!==nil?"instance-variable":nil)?this.observer_peers.$delete(observer):nil},$Observable_changed$ques$6.$$arity=1),Opal.def($Observable_notify_observers$7,"$delete_observers",$Observable_changed$ques$6=function(){var $a;return null==this.observer_peers&&(this.observer_peers=nil),$truthy(null!=($a=this.observer_peers)&&$a!==nil?"instance-variable":nil)?this.observer_peers.$clear():nil},$Observable_changed$ques$6.$$arity=0),Opal.def($Observable_notify_observers$7,"$count_observers",$Observable_changed$ques$6=function(){var $a;return null==this.observer_peers&&(this.observer_peers=nil),$truthy(null!=($a=this.observer_peers)&&$a!==nil?"instance-variable":nil)?this.observer_peers.$size():0},$Observable_changed$ques$6.$$arity=0),Opal.def($Observable_notify_observers$7,"$changed",$Observable_changed$ques$6=function(state){return null==state&&(state=!0),this.observer_state=state},$Observable_changed$ques$6.$$arity=-1),Opal.def($Observable_notify_observers$7,"$changed?",$Observable_changed$ques$6=function(){var $a,self=this,$ret_or_1=nil;return null==self.observer_state&&(self.observer_state=nil),!!$truthy($truthy(($a=self.observer_state,$ret_or_1=null!=$a&&$a!==nil?"instance-variable":nil))?self.observer_state:$ret_or_1)},$Observable_changed$ques$6.$$arity=0),Opal.def($Observable_notify_observers$7,"$notify_observers",$Observable_notify_observers$7=function($a){var arg,$b,$$8,self=this,$c=nil;return null==self.observer_state&&(self.observer_state=nil),null==self.observer_peers&&(self.observer_peers=nil),$b=Opal.slice.call(arguments,0,arguments.length),arg=$b,$truthy($truthy(($b=self.observer_state,$c=null!=$b&&$b!==nil?"instance-variable":nil))?self.observer_state:$c)?($truthy(null!=($c=self.observer_peers)&&$c!==nil?"instance-variable":nil)&&$send(self.observer_peers,"each",[],(($$8=function(k,v){null==$$8.$$s||$$8.$$s;return null==k&&(k=nil),null==v&&(v=nil),$send(k,"send",[v].concat(Opal.to_a(arg)))}).$$s=self,$$8.$$arity=2,$$8)),self.observer_state=!1):nil},$Observable_notify_observers$7.$$arity=-1),nil&&"notify_observers"}($nesting[0],$nesting)}; +Opal.modules.observer=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def;return Opal.add_stubs("respond_to?,raise,new,to_s,[]=,-,delete,clear,size,each,send"),function($base,$parent_nesting){var self=$module($base,"Observable"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$add_observer",(function(observer,func){var $a,$writer;return null==this.observer_peers&&(this.observer_peers=nil),null==func&&(func="update"),$truthy(null!=($a=this.observer_peers)&&$a!==nil?"instance-variable":nil)||(this.observer_peers=$hash2([],{})),$truthy(observer["$respond_to?"](func))||this.$raise($$("NoMethodError").$new("observer does not respond to `"+func.$to_s()+"'",func.$to_s())),$writer=[observer,func],$send(this.observer_peers,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),-2),$def(self,"$delete_observer",(function(observer){var $a;return null==this.observer_peers&&(this.observer_peers=nil),$truthy(null!=($a=this.observer_peers)&&$a!==nil?"instance-variable":nil)?this.observer_peers.$delete(observer):nil}),1),$def(self,"$delete_observers",(function(){var $a;return null==this.observer_peers&&(this.observer_peers=nil),$truthy(null!=($a=this.observer_peers)&&$a!==nil?"instance-variable":nil)?this.observer_peers.$clear():nil}),0),$def(self,"$count_observers",(function(){var $a;return null==this.observer_peers&&(this.observer_peers=nil),$truthy(null!=($a=this.observer_peers)&&$a!==nil?"instance-variable":nil)?this.observer_peers.$size():0}),0),$def(self,"$changed",(function(state){return null==state&&(state=!0),this.observer_state=state}),-1),$def(self,"$changed?",(function(){var $a;return null==this.observer_state&&(this.observer_state=nil),!(!$truthy(($a=this.observer_state,null!=$a&&$a!==nil?"instance-variable":nil))||!$truthy(this.observer_state))}),0),$def(self,"$notify_observers",(function($a){var $post_args,arg,$b,$c,self=this;return null==self.observer_state&&(self.observer_state=nil),null==self.observer_peers&&(self.observer_peers=nil),$post_args=Opal.slice.call(arguments),arg=$post_args,$truthy(null!=($b=self.observer_state)&&$b!==nil?"instance-variable":nil)&&$truthy(self.observer_state)?($truthy(null!=($c=self.observer_peers)&&$c!==nil?"instance-variable":nil)&&$send(self.observer_peers,"each",[],(function(k,v){return null==k&&(k=nil),null==v&&(v=nil),$send(k,"send",[v].concat($to_a(arg)))}),2),self.observer_state=!1):nil}),-1)}($nesting[0],$nesting)}; diff --git a/opal/master/observer.min.js.gz b/opal/master/observer.min.js.gz index 1efc1529..c616c990 100644 Binary files a/opal/master/observer.min.js.gz and b/opal/master/observer.min.js.gz differ diff --git a/opal/master/opal-builder.js b/opal/master/opal-builder.js index 90022b32..69fa0f68 100644 --- a/opal/master/opal-builder.js +++ b/opal/master/opal-builder.js @@ -1,39 +1,31 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/regexp_anchors"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["opal/regexp_anchors"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $const_set = Opal.const_set; - Opal.add_stubs(['$new']); + Opal.add_stubs('new'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'REGEXP_START', "^"); - Opal.const_set($nesting[0], 'REGEXP_END', "$"); - Opal.const_set($nesting[0], 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'INLINE_IDENTIFIER_REGEXP', $$($nesting, 'Regexp').$new("" + "[^" + ($$($nesting, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + ($$($nesting, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); - Opal.const_set($nesting[0], 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - return Opal.const_set($nesting[0], 'CONST_NAME_REGEXP', $$($nesting, 'Regexp').$new("" + ($$($nesting, 'REGEXP_START')) + "(::)?[A-Z][^" + ($$($nesting, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + ($$($nesting, 'REGEXP_END')))); + $const_set(self, 'REGEXP_START', "^"); + $const_set(self, 'REGEXP_END', "$"); + $const_set(self, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + $const_set(self, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + $const_set(self, 'INLINE_IDENTIFIER_REGEXP', $$('Regexp').$new("[^" + ($$$(self, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + ($$$(self, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); + $const_set(self, 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + return $const_set(self, 'CONST_NAME_REGEXP', $$('Regexp').$new("" + ($$$(self, 'REGEXP_START')) + "(::)?[A-Z][^" + ($$$(self, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + ($$$(self, 'REGEXP_END')))); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/comparable"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $module = Opal.module, $truthy = Opal.truthy; - - Opal.add_stubs(['$>', '$<', '$===', '$raise', '$class', '$<=>', '$equal?']); - return (function($base, $parent_nesting) { +Opal.modules["corelib/comparable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $module = Opal.module, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $def = Opal.def; + + Opal.add_stubs('>,<,===,raise,class,<=>,equal?'); + return (function($base) { var self = $module($base, 'Comparable'); - var $nesting = [self].concat($parent_nesting), $Comparable_$eq_eq$1, $Comparable_$gt$2, $Comparable_$gt_eq$3, $Comparable_$lt$4, $Comparable_$lt_eq$5, $Comparable_between$ques$6, $Comparable_clamp$7, $case = nil; + var $ret_or_1 = nil; @@ -47,25 +39,24 @@ Opal.modules["corelib/comparable"] = function(Opal) { function fail_comparison(lhs, rhs) { var class_name; - (function() {$case = rhs; - if (nil['$===']($case) || true['$===']($case) || false['$===']($case) || $$($nesting, 'Integer')['$===']($case) || $$($nesting, 'Float')['$===']($case)) {return class_name = rhs.$inspect();} - else {return class_name = rhs.$$class;}})() - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") + (($eqeqeq(nil, ($ret_or_1 = rhs)) || (($eqeqeq(true, $ret_or_1) || (($eqeqeq(false, $ret_or_1) || (($eqeqeq($$$('Integer'), $ret_or_1) || ($eqeqeq($$$('Float'), $ret_or_1))))))))) ? (class_name = rhs.$inspect()) : (class_name = rhs.$$class)) + $Kernel.$raise($$$('ArgumentError'), "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") } function cmp_or_fail(lhs, rhs) { var cmp = (lhs)['$<=>'](rhs); - if ($falsy(cmp)) fail_comparison(lhs, rhs); + if (!$truthy(cmp)) fail_comparison(lhs, rhs); return normalize(cmp); } ; - Opal.def(self, '$==', $Comparable_$eq_eq$1 = function(other) { + $def(self, '$==', function $Comparable_$eq_eq$1(other) { var self = this, cmp = nil; if ($truthy(self['$equal?'](other))) { - return true}; + return true + }; if (self["$<=>"] == Opal.Kernel["$<=>"]) { return false; @@ -77,55 +68,54 @@ Opal.modules["corelib/comparable"] = function(Opal) { return false; } ; - if ($truthy((cmp = self['$<=>'](other)))) { - } else { + if (!$truthy((cmp = self['$<=>'](other)))) { return false }; return normalize(cmp) == 0;; - }, $Comparable_$eq_eq$1.$$arity = 1); + }, 1); - Opal.def(self, '$>', $Comparable_$gt$2 = function(other) { + $def(self, '$>', function $Comparable_$gt$2(other) { var self = this; return cmp_or_fail(self, other) > 0; - }, $Comparable_$gt$2.$$arity = 1); + }, 1); - Opal.def(self, '$>=', $Comparable_$gt_eq$3 = function(other) { + $def(self, '$>=', function $Comparable_$gt_eq$3(other) { var self = this; return cmp_or_fail(self, other) >= 0; - }, $Comparable_$gt_eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$<', $Comparable_$lt$4 = function(other) { + $def(self, '$<', function $Comparable_$lt$4(other) { var self = this; return cmp_or_fail(self, other) < 0; - }, $Comparable_$lt$4.$$arity = 1); + }, 1); - Opal.def(self, '$<=', $Comparable_$lt_eq$5 = function(other) { + $def(self, '$<=', function $Comparable_$lt_eq$5(other) { var self = this; return cmp_or_fail(self, other) <= 0; - }, $Comparable_$lt_eq$5.$$arity = 1); + }, 1); - Opal.def(self, '$between?', $Comparable_between$ques$6 = function(min, max) { + $def(self, '$between?', function $Comparable_between$ques$6(min, max) { var self = this; if ($rb_lt(self, min)) { - return false}; + return false + }; if ($rb_gt(self, max)) { - return false}; + return false + }; return true; - }, $Comparable_between$ques$6.$$arity = 2); - return (Opal.def(self, '$clamp', $Comparable_clamp$7 = function $$clamp(min, max) { + }, 2); + return $def(self, '$clamp', function $$clamp(min, max) { var self = this; - if (max == null) { - max = nil; - }; + if (max == null) max = nil;; var c, excl; @@ -134,7 +124,7 @@ Opal.modules["corelib/comparable"] = function(Opal) { // provide a single Range argument instead of 2 Comparables. if (!Opal.is_a(min, Opal.Range)) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (min.$class()) + " (expected Range)") + $Kernel.$raise($$$('TypeError'), "wrong argument type " + (min.$class()) + " (expected Range)") } excl = min.excl; @@ -142,12 +132,12 @@ Opal.modules["corelib/comparable"] = function(Opal) { min = min.begin; if (max !== nil && excl) { - self.$raise($$($nesting, 'ArgumentError'), "cannot clamp with an exclusive range") + $Kernel.$raise($$$('ArgumentError'), "cannot clamp with an exclusive range") } } if (min !== nil && max !== nil && cmp_or_fail(min, max) > 0) { - self.$raise($$($nesting, 'ArgumentError'), "min argument must be smaller than max argument") + $Kernel.$raise($$$('ArgumentError'), "min argument must be smaller than max argument") } if (min !== nil) { @@ -165,156 +155,153 @@ Opal.modules["corelib/comparable"] = function(Opal) { return self; ; - }, $Comparable_clamp$7.$$arity = -2), nil) && 'clamp'; - })($nesting[0], $nesting) + }, -2); + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["pathname"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; +Opal.modules["pathname"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def, $defs = Opal.defs, $to_ary = Opal.to_ary, $send = Opal.send, $to_a = Opal.to_a, $neqeq = Opal.neqeq, $rb_plus = Opal.rb_plus, $not = Opal.not, $alias = Opal.alias, $module = Opal.module; - Opal.add_stubs(['$require', '$include', '$quote', '$===', '$to_s', '$path', '$respond_to?', '$to_path', '$is_a?', '$nil?', '$raise', '$class', '$==', '$attr_reader', '$!', '$relative?', '$chop_basename', '$basename', '$=~', '$new', '$source', '$[]', '$rindex', '$sub', '$absolute?', '$expand_path', '$plus', '$unshift', '$length', '$!=', '$empty?', '$first', '$shift', '$+', '$join', '$dirname', '$pop', '$reverse_each', '$directory?', '$extname', '$<=>', '$nonzero?', '$proc', '$casecmp', '$cleanpath', '$inspect', '$include?', '$fill', '$map', '$entries']); + Opal.add_stubs('require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries'); self.$require("corelib/comparable"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Pathname'); - var $nesting = [self].concat($parent_nesting), $Pathname_initialize$1, $Pathname_$eq_eq$2, $Pathname_absolute$ques$3, $Pathname_relative$ques$4, $Pathname_chop_basename$5, $Pathname_root$ques$6, $Pathname_parent$7, $Pathname_sub$8, $Pathname_cleanpath$9, $Pathname_to_path$10, $Pathname_hash$11, $Pathname_expand_path$12, $Pathname_$plus$13, $Pathname_plus$14, $Pathname_join$15, $Pathname_split$17, $Pathname_dirname$18, $Pathname_basename$19, $Pathname_directory$ques$20, $Pathname_extname$21, $Pathname_$lt_eq_gt$22, $Pathname$23, $Pathname$24, $Pathname_relative_path_from$25, $Pathname_entries$26; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.path = nil; + $proto.path = nil; - self.$include($$($nesting, 'Comparable')); - Opal.const_set($nesting[0], 'SEPARATOR_PAT', Opal.regexp([$$($nesting, 'Regexp').$quote($$$($$($nesting, 'File'), 'SEPARATOR'))])); + self.$include($$('Comparable')); + $const_set($nesting[0], 'SEPARATOR_PAT', $regexp([$$('Regexp').$quote($$$($$('File'), 'SEPARATOR'))])); - Opal.def(self, '$initialize', $Pathname_initialize$1 = function $$initialize(path) { + $def(self, '$initialize', function $$initialize(path) { var self = this; - if ($truthy($$($nesting, 'Pathname')['$==='](path))) { + if ($eqeqeq($$('Pathname'), path)) { self.path = path.$path().$to_s() } else if ($truthy(path['$respond_to?']("to_path"))) { self.path = path.$to_path() - } else if ($truthy(path['$is_a?']($$($nesting, 'String')))) { + } else if ($truthy(path['$is_a?']($$('String')))) { self.path = path } else if ($truthy(path['$nil?']())) { - self.$raise($$($nesting, 'TypeError'), "no implicit conversion of nil into String") + self.$raise($$('TypeError'), "no implicit conversion of nil into String") } else { - self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (path.$class()) + " into String") + self.$raise($$('TypeError'), "no implicit conversion of " + (path.$class()) + " into String") }; - if (self.path['$==']("\u0000")) { - return self.$raise($$($nesting, 'ArgumentError')) + if ($eqeq(self.path, "\u0000")) { + return self.$raise($$('ArgumentError')) } else { return nil }; - }, $Pathname_initialize$1.$$arity = 1); + }, 1); + $defs(self, '$pwd', function $$pwd() { + var self = this; + + return self.$new($$('Dir').$pwd()) + }, 0); self.$attr_reader("path"); - Opal.def(self, '$==', $Pathname_$eq_eq$2 = function(other) { + $def(self, '$==', function $Pathname_$eq_eq$1(other) { var self = this; return other.$path()['$=='](self.path) - }, $Pathname_$eq_eq$2.$$arity = 1); + }, 1); - Opal.def(self, '$absolute?', $Pathname_absolute$ques$3 = function() { + $def(self, '$absolute?', function $Pathname_absolute$ques$2() { var self = this; return self['$relative?']()['$!']() - }, $Pathname_absolute$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$relative?', $Pathname_relative$ques$4 = function() { + $def(self, '$relative?', function $Pathname_relative$ques$3() { var $a, $b, $c, self = this, path = nil, r = nil; path = self.path; while ($truthy((r = self.$chop_basename(path)))) { - $c = r, $b = Opal.to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c + $c = r, $b = $to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c }; return path['$=='](""); - }, $Pathname_relative$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$chop_basename', $Pathname_chop_basename$5 = function $$chop_basename(path) { - var self = this, base = nil; + $def(self, '$chop_basename', function $$chop_basename(path) { + var base = nil; - base = $$($nesting, 'File').$basename(path); - if ($truthy($$($nesting, 'Regexp').$new("" + "^" + ($$$($$($nesting, 'Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { + base = $$('File').$basename(path); + if ($truthy($$('Regexp').$new("^" + ($$$($$('Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { return nil } else { return [path['$[]'](0, path.$rindex(base)), base] }; - }, $Pathname_chop_basename$5.$$arity = 1); + }, 1); - Opal.def(self, '$root?', $Pathname_root$ques$6 = function() { + $def(self, '$root?', function $Pathname_root$ques$4() { var self = this; return self.path['$==']("/") - }, $Pathname_root$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$parent', $Pathname_parent$7 = function $$parent() { + $def(self, '$parent', function $$parent() { var self = this, new_path = nil; new_path = self.path.$sub(/\/([^\/]+\/?$)/, ""); - if (new_path['$==']("")) { - new_path = (function() {if ($truthy(self['$absolute?']())) { - return "/" - } else { - return "." - }; return nil; })()}; - return $$($nesting, 'Pathname').$new(new_path); - }, $Pathname_parent$7.$$arity = 0); + if ($eqeq(new_path, "")) { + new_path = ($truthy(self['$absolute?']()) ? ("/") : (".")) + }; + return $$('Pathname').$new(new_path); + }, 0); - Opal.def(self, '$sub', $Pathname_sub$8 = function $$sub($a) { + $def(self, '$sub', function $$sub($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $$($nesting, 'Pathname').$new($send(self.path, 'sub', Opal.to_a(args))); - }, $Pathname_sub$8.$$arity = -1); + return $$('Pathname').$new($send(self.path, 'sub', $to_a(args))); + }, -1); - Opal.def(self, '$cleanpath', $Pathname_cleanpath$9 = function $$cleanpath() { + $def(self, '$cleanpath', function $$cleanpath() { var self = this; return Opal.normalize(self.path) - }, $Pathname_cleanpath$9.$$arity = 0); + }, 0); - Opal.def(self, '$to_path', $Pathname_to_path$10 = function $$to_path() { + $def(self, '$to_path', function $$to_path() { var self = this; return self.path - }, $Pathname_to_path$10.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $Pathname_hash$11 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return self.path - }, $Pathname_hash$11.$$arity = 0); + }, 0); - Opal.def(self, '$expand_path', $Pathname_expand_path$12 = function $$expand_path() { + $def(self, '$expand_path', function $$expand_path() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$expand_path(self.path)) - }, $Pathname_expand_path$12.$$arity = 0); + return $$('Pathname').$new($$('File').$expand_path(self.path)) + }, 0); - Opal.def(self, '$+', $Pathname_$plus$13 = function(other) { + $def(self, '$+', function $Pathname_$plus$5(other) { var self = this; - if ($truthy($$($nesting, 'Pathname')['$==='](other))) { - } else { - other = $$($nesting, 'Pathname').$new(other) + if (!$eqeqeq($$('Pathname'), other)) { + other = $$('Pathname').$new(other) }; - return $$($nesting, 'Pathname').$new(self.$plus(self.path, other.$to_s())); - }, $Pathname_$plus$13.$$arity = 1); + return $$('Pathname').$new(self.$plus(self.path, other.$to_s())); + }, 1); - Opal.def(self, '$plus', $Pathname_plus$14 = function $$plus(path1, path2) { - var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, suffix2 = nil; + $def(self, '$plus', function $$plus(path1, path2) { + var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, suffix2 = nil; prefix2 = path2; @@ -322,184 +309,146 @@ Opal.modules["pathname"] = function(Opal) { basename_list2 = []; while ($truthy((r2 = self.$chop_basename(prefix2)))) { - $c = r2, $b = Opal.to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; + $c = r2, $b = $to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; index_list2.$unshift(prefix2.$length()); basename_list2.$unshift(basename2); }; - if ($truthy(prefix2['$!='](""))) { - return path2}; + if ($neqeq(prefix2, "")) { + return path2 + }; prefix1 = path1; while ($truthy(true)) { - while ($truthy((function() {if ($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']()))) { - return basename_list2.$first()['$=='](".") - } else { - return $ret_or_1 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']())) ? (basename_list2.$first()['$=='](".")) : ($ret_or_1)))) { index_list2.$shift(); basename_list2.$shift(); }; - if ($truthy((r1 = self.$chop_basename(prefix1)))) { - } else { + if (!$truthy((r1 = self.$chop_basename(prefix1)))) { break; }; - $c = r1, $b = Opal.to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; - if (basename1['$=='](".")) { - continue;}; - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = basename1['$==']("..")))) { - return $ret_or_3 - } else { - return basename_list2['$empty?']() - }; return nil; })()))) { - return $ret_or_2 - } else { - return basename_list2.$first()['$!=']("..") - }; return nil; })())) { + $c = r1, $b = $to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; + if ($eqeq(basename1, ".")) { + continue; + }; + if ((($eqeq(basename1, "..") || ($truthy(basename_list2['$empty?']()))) || ($neqeq(basename_list2.$first(), "..")))) { prefix1 = $rb_plus(prefix1, basename1); - break;;}; + break;; + }; index_list2.$shift(); basename_list2.$shift(); }; r1 = self.$chop_basename(prefix1); - if ($truthy((function() {if ($truthy(($ret_or_4 = r1['$!']()))) { - return Opal.regexp([$$($nesting, 'SEPARATOR_PAT')])['$=~']($$($nesting, 'File').$basename(prefix1)) - } else { - return $ret_or_4 - }; return nil; })())) { - while ($truthy((function() {if ($truthy(($ret_or_5 = basename_list2['$empty?']()['$!']()))) { - return basename_list2.$first()['$==']("..") - } else { - return $ret_or_5 - }; return nil; })())) { + if (($not(r1) && ($truthy($regexp([$$('SEPARATOR_PAT')])['$=~']($$('File').$basename(prefix1)))))) { + while ($truthy(($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']())) ? (basename_list2.$first()['$==']("..")) : ($ret_or_1)))) { index_list2.$shift(); basename_list2.$shift(); - }}; - if ($truthy(basename_list2['$empty?']()['$!']())) { + } + }; + if ($not(basename_list2['$empty?']())) { suffix2 = path2['$[]'](Opal.Range.$new(index_list2.$first(), -1, false)); if ($truthy(r1)) { - return $$($nesting, 'File').$join(prefix1, suffix2) + return $$('File').$join(prefix1, suffix2) } else { return $rb_plus(prefix1, suffix2) }; } else if ($truthy(r1)) { return prefix1 } else { - return $$($nesting, 'File').$dirname(prefix1) + return $$('File').$dirname(prefix1) }; - }, $Pathname_plus$14.$$arity = 2); + }, 2); - Opal.def(self, '$join', $Pathname_join$15 = function $$join($a) {try { + $def(self, '$join', function $$join($a) {try { - var $post_args, args, $$16, self = this, result = nil; + var $post_args, args, self = this, result = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ($truthy(args['$empty?']())) { - return self}; + return self + }; result = args.$pop(); - if ($truthy($$($nesting, 'Pathname')['$==='](result))) { - } else { - result = $$($nesting, 'Pathname').$new(result) + if (!$eqeqeq($$('Pathname'), result)) { + result = $$('Pathname').$new(result) }; if ($truthy(result['$absolute?']())) { - return result}; - $send(args, 'reverse_each', [], ($$16 = function(arg){var self = $$16.$$s == null ? this : $$16.$$s; - + return result + }; + $send(args, 'reverse_each', [], function $$6(arg){ - if (arg == null) { - arg = nil; - }; - if ($truthy($$($nesting, 'Pathname')['$==='](arg))) { - } else { - arg = $$($nesting, 'Pathname').$new(arg) + if (arg == null) arg = nil;; + if (!$eqeqeq($$('Pathname'), arg)) { + arg = $$('Pathname').$new(arg) }; result = $rb_plus(arg, result); if ($truthy(result['$absolute?']())) { Opal.ret(result) } else { return nil - };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + };}, 1); return $rb_plus(self, result); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Pathname_join$15.$$arity = -1); + }, -1); - Opal.def(self, '$split', $Pathname_split$17 = function $$split() { + $def(self, '$split', function $$split() { var self = this; return [self.$dirname(), self.$basename()] - }, $Pathname_split$17.$$arity = 0); + }, 0); - Opal.def(self, '$dirname', $Pathname_dirname$18 = function $$dirname() { + $def(self, '$dirname', function $$dirname() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$dirname(self.path)) - }, $Pathname_dirname$18.$$arity = 0); + return $$('Pathname').$new($$('File').$dirname(self.path)) + }, 0); - Opal.def(self, '$basename', $Pathname_basename$19 = function $$basename() { + $def(self, '$basename', function $$basename() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$basename(self.path)) - }, $Pathname_basename$19.$$arity = 0); + return $$('Pathname').$new($$('File').$basename(self.path)) + }, 0); - Opal.def(self, '$directory?', $Pathname_directory$ques$20 = function() { + $def(self, '$directory?', function $Pathname_directory$ques$7() { var self = this; - return $$($nesting, 'File')['$directory?'](self.path) - }, $Pathname_directory$ques$20.$$arity = 0); + return $$('File')['$directory?'](self.path) + }, 0); - Opal.def(self, '$extname', $Pathname_extname$21 = function $$extname() { + $def(self, '$extname', function $$extname() { var self = this; - return $$($nesting, 'File').$extname(self.path) - }, $Pathname_extname$21.$$arity = 0); + return $$('File').$extname(self.path) + }, 0); - Opal.def(self, '$<=>', $Pathname_$lt_eq_gt$22 = function(other) { + $def(self, '$<=>', function $Pathname_$lt_eq_gt$8(other) { var self = this; return self.$path()['$<=>'](other.$path()) - }, $Pathname_$lt_eq_gt$22.$$arity = 1); - $alias(self, "eql?", "=="); - $alias(self, "===", "=="); - $alias(self, "to_str", "to_path"); - $alias(self, "to_s", "to_path"); - Opal.const_set($nesting[0], 'SAME_PATHS', (function() {if ($truthy($$$($$($nesting, 'File'), 'FNM_SYSCASE')['$nonzero?']())) { - return $send(self, 'proc', [], ($Pathname$23 = function(a, b){var self = $Pathname$23.$$s == null ? this : $Pathname$23.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a.$casecmp(b)['$=='](0);}, $Pathname$23.$$s = self, $Pathname$23.$$arity = 2, $Pathname$23)) - } else { - return $send(self, 'proc', [], ($Pathname$24 = function(a, b){var self = $Pathname$24.$$s == null ? this : $Pathname$24.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a['$=='](b);}, $Pathname$24.$$s = self, $Pathname$24.$$arity = 2, $Pathname$24)) - }; return nil; })()); + }, 1); + $const_set($nesting[0], 'SAME_PATHS', ($truthy($$$($$('File'), 'FNM_SYSCASE')['$nonzero?']()) ? ($send(self, 'proc', [], function $Pathname$9(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a.$casecmp(b)['$=='](0);}, 2)) : ($send(self, 'proc', [], function $Pathname$10(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a['$=='](b);}, 2)))); - Opal.def(self, '$relative_path_from', $Pathname_relative_path_from$25 = function $$relative_path_from(base_directory) { - var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_6 = nil, $ret_or_7 = nil, relpath_names = nil; + $def(self, '$relative_path_from', function $$relative_path_from(base_directory) { + var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_1 = nil, $ret_or_2 = nil, relpath_names = nil; dest_directory = self.$cleanpath().$to_s(); @@ -508,82 +457,71 @@ Opal.modules["pathname"] = function(Opal) { dest_names = []; while ($truthy((r = self.$chop_basename(dest_prefix)))) { - $c = r, $b = Opal.to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - dest_names.$unshift(basename)}; + $c = r, $b = $to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(basename, ".")) { + dest_names.$unshift(basename) + }; }; base_prefix = base_directory; base_names = []; while ($truthy((r = self.$chop_basename(base_prefix)))) { - $c = r, $b = Opal.to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - base_names.$unshift(basename)}; + $c = r, $b = $to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(basename, ".")) { + base_names.$unshift(basename) + }; }; - if ($truthy($$($nesting, 'SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) + if (!$truthy($$('SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { + self.$raise($$('ArgumentError'), "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) }; - while ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = dest_names['$empty?']()['$!']()))) { - return base_names['$empty?']()['$!']() - } else { - return $ret_or_7 - }; return nil; })()))) { - return $$($nesting, 'SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first()) - } else { - return $ret_or_6 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = dest_names['$empty?']()['$!']())) ? (base_names['$empty?']()['$!']()) : ($ret_or_2)))) ? ($$('SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first())) : ($ret_or_1)))) { dest_names.$shift(); base_names.$shift(); }; if ($truthy(base_names['$include?'](".."))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "base_directory has ..: " + (base_directory.$inspect()))}; + self.$raise($$('ArgumentError'), "base_directory has ..: " + (base_directory.$inspect())) + }; base_names.$fill(".."); relpath_names = $rb_plus(base_names, dest_names); if ($truthy(relpath_names['$empty?']())) { - return $$($nesting, 'Pathname').$new(".") + return $$('Pathname').$new(".") } else { - return $$($nesting, 'Pathname').$new($send($$($nesting, 'File'), 'join', Opal.to_a(relpath_names))) + return $$('Pathname').$new($send($$('File'), 'join', $to_a(relpath_names))) }; - }, $Pathname_relative_path_from$25.$$arity = 1); - return (Opal.def(self, '$entries', $Pathname_entries$26 = function $$entries() { - var $$27, self = this; + }, 1); + + $def(self, '$entries', function $$entries() { + var self = this; - return $send($$($nesting, 'Dir').$entries(self.path), 'map', [], ($$27 = function(f){var self = $$27.$$s == null ? this : $$27.$$s; + return $send($$('Dir').$entries(self.path), 'map', [], function $$11(f){var self = $$11.$$s == null ? this : $$11.$$s; - if (f == null) { - f = nil; - }; - return self.$class().$new(f);}, $$27.$$s = self, $$27.$$arity = 1, $$27)) - }, $Pathname_entries$26.$$arity = 0), nil) && 'entries'; + if (f == null) f = nil;; + return self.$class().$new(f);}, {$$arity: 1, $$s: self}) + }, 0); + $alias(self, "===", "=="); + $alias(self, "eql?", "=="); + $alias(self, "to_s", "to_path"); + return $alias(self, "to_str", "to_path"); })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_Pathname$28; - - return (Opal.def(self, '$Pathname', $Kernel_Pathname$28 = function $$Pathname(path) { - var self = this; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return $$($nesting, 'Pathname').$new(path) - }, $Kernel_Pathname$28.$$arity = 1), nil) && 'Pathname' + return $def(self, '$Pathname', function $$Pathname(path) { + + return $$('Pathname').$new(path) + }, 1) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/hike"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; - - Opal.add_stubs(['$require', '$attr_reader', '$freeze', '$dup', '$map', '$new', '$to_s', '$sub', '$=~', '$find_in_base_path', '$find_in_paths', '$[]', '$directory?', '$sort', '$reject', '$entries', '$[]=', '$-', '$key?', '$exist?', '$stat', '$protected', '$is_a?', '$last', '$pop', '$split', '$each', '$match', '$join', '$to_proc', '$paths_contain?', '$pattern_for', '$select', '$sort_matches', '$file?', '$any?', '$paths', '$==', '$length', '$build_pattern_for', '$extensions', '$escape', '$sort_by', '$scan', '$inject', '$index', '$+', '$expand_path', '$concat', '$normalize_path', '$normalize_extension', '$find', '$root', '$private', '$start_with?', '$relative?']); +Opal.modules["opal/hike"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $def = Opal.def, $truthy = Opal.truthy, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $to_ary = Opal.to_ary, $regexp = Opal.regexp, $rb_plus = Opal.rb_plus; + + Opal.add_stubs('require,attr_reader,freeze,dup,map,new,to_s,sub,=~,find_in_base_path,find_in_paths,[],directory?,sort,reject,entries,[]=,-,key?,exist?,stat,protected,is_a?,last,pop,split,each,match,join,to_proc,paths_contain?,pattern_for,select,sort_matches,file?,any?,paths,==,length,build_pattern_for,extensions,escape,sort_by,scan,inject,index,+,expand_path,concat,normalize_path,normalize_extension,find,root,private,start_with?,relative?'); self.$require("pathname"); return (function($base, $parent_nesting) { @@ -600,412 +538,358 @@ Opal.modules["opal/hike"] = function(Opal) { (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Index'); - var $nesting = [self].concat($parent_nesting), $Index_initialize$1, $Index_root$3, $Index_index$4, $Index_find$5, $Index_entries$8, $Index_stat$10, $Index_extract_options$excl$11, $Index_find_in_paths$12, $Index_find_in_base_path$14, $Index_match$15, $Index_paths_contain$ques$18, $Index_pattern_for$20, $Index_build_pattern_for$21, $Index_sort_matches$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.root = self.$$prototype.entries = self.$$prototype.stats = self.$$prototype.pathnames = self.$$prototype.patterns = nil; + $proto.root = $proto.entries = $proto.stats = $proto.pathnames = $proto.patterns = nil; self.$attr_reader("paths"); self.$attr_reader("extensions"); - Opal.def(self, '$initialize', $Index_initialize$1 = function $$initialize(root, paths, extensions) { - var $$2, self = this; + $def(self, '$initialize', function $$initialize(root, paths, extensions) { + var self = this; self.root = root; self.paths = paths.$dup().$freeze(); self.extensions = extensions.$dup().$freeze(); - self.pathnames = $send(paths, 'map', [], ($$2 = function(path){var self = $$2.$$s == null ? this : $$2.$$s; - + self.pathnames = $send(paths, 'map', [], function $$1(path){ - if (path == null) { - path = nil; - }; - return $$($nesting, 'Pathname').$new(path);}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + if (path == null) path = nil;; + return $$('Pathname').$new(path);}, 1); self.stats = $hash2([], {}); self.entries = $hash2([], {}); return (self.patterns = $hash2([], {})); - }, $Index_initialize$1.$$arity = 3); + }, 3); - Opal.def(self, '$root', $Index_root$3 = function $$root() { + $def(self, '$root', function $$root() { var self = this; return self.root.$to_s() - }, $Index_root$3.$$arity = 0); + }, 0); - Opal.def(self, '$index', $Index_index$4 = function $$index() { + $def(self, '$index', function $$index() { var self = this; return self - }, $Index_index$4.$$arity = 0); + }, 0); - Opal.def(self, '$find', $Index_find$5 = function $$find(logical_path) {try { + $def(self, '$find', function $$find(logical_path) {try { - var $$6, $$7, self = this, base_path = nil; + var self = this, base_path = nil; - base_path = $$($nesting, 'Pathname').$new(self.root); - logical_path = $$($nesting, 'Pathname').$new(logical_path.$sub(/^\//, "")); + base_path = $$('Pathname').$new(self.root); + logical_path = $$('Pathname').$new(logical_path.$sub(/^\//, "")); if ($truthy(logical_path.$to_s()['$=~'](/^\.\.?\//))) { - $send(self, 'find_in_base_path', [logical_path, base_path], ($$6 = function(path){var self = $$6.$$s == null ? this : $$6.$$s; - + $send(self, 'find_in_base_path', [logical_path, base_path], function $$2(path){ - if (path == null) { - path = nil; - }; - Opal.ret(path);}, $$6.$$s = self, $$6.$$arity = 1, $$6)) + if (path == null) path = nil;; + Opal.ret(path);}, 1) } else { - $send(self, 'find_in_paths', [logical_path], ($$7 = function(path){var self = $$7.$$s == null ? this : $$7.$$s; - + $send(self, 'find_in_paths', [logical_path], function $$3(path){ - if (path == null) { - path = nil; - }; - Opal.ret(path);}, $$7.$$s = self, $$7.$$arity = 1, $$7)) + if (path == null) path = nil;; + Opal.ret(path);}, 1) }; return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Index_find$5.$$arity = 1); + }, 1); - Opal.def(self, '$entries', $Index_entries$8 = function $$entries(path) { - var $$9, self = this, $ret_or_1 = nil, $writer = nil, pathname = nil; + $def(self, '$entries', function $$entries(path) { + var self = this, $ret_or_1 = nil, $writer = nil, pathname = nil; if ($truthy(($ret_or_1 = self.entries['$[]'](path.$to_s())))) { return $ret_or_1 } else { - $writer = [path.$to_s(), ((pathname = $$($nesting, 'Pathname').$new(path)), (function() {if ($truthy(pathname['$directory?']())) { - return $send(pathname.$entries(), 'reject', [], ($$9 = function(entry){var self = $$9.$$s == null ? this : $$9.$$s; - - - - if (entry == null) { - entry = nil; - }; - return entry.$to_s()['$=~'](/^\.|~$|^\#.*\#$/);}, $$9.$$s = self, $$9.$$arity = 1, $$9)).$sort() - } else { - return [] - }; return nil; })())]; - $send(self.entries, '[]=', Opal.to_a($writer)); + $writer = [path.$to_s(), ((pathname = $$('Pathname').$new(path)), ($truthy(pathname['$directory?']()) ? ($send(pathname.$entries(), 'reject', [], function $$4(entry){ + + + if (entry == null) entry = nil;; + return entry.$to_s()['$=~'](/^\.|~$|^\#.*\#$/);}, 1).$sort()) : ([])))]; + $send(self.entries, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } - }, $Index_entries$8.$$arity = 1); + }, 1); - Opal.def(self, '$stat', $Index_stat$10 = function $$stat(path) { + $def(self, '$stat', function $$stat(path) { var self = this, key = nil, $writer = nil; key = path.$to_s(); if ($truthy(self.stats['$key?'](key))) { return self.stats['$[]'](key) - } else if ($truthy($$($nesting, 'File')['$exist?'](path))) { + } else if ($truthy($$('File')['$exist?'](path))) { - $writer = [key, $$($nesting, 'File').$stat(path)]; - $send(self.stats, '[]=', Opal.to_a($writer)); + $writer = [key, $$('File').$stat(path)]; + $send(self.stats, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { $writer = [key, nil]; - $send(self.stats, '[]=', Opal.to_a($writer)); + $send(self.stats, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; }; - }, $Index_stat$10.$$arity = 1); + }, 1); self.$protected(); - Opal.def(self, '$extract_options!', $Index_extract_options$excl$11 = function(arguments$) { - var self = this; - - if ($truthy(arguments$.$last()['$is_a?']($$($nesting, 'Hash')))) { + $def(self, '$extract_options!', function $Index_extract_options$excl$5(arguments$) { + + if ($truthy(arguments$.$last()['$is_a?']($$('Hash')))) { return arguments$.$pop().$dup() } else { return $hash2([], {}) } - }, $Index_extract_options$excl$11.$$arity = 1); + }, 1); - Opal.def(self, '$find_in_paths', $Index_find_in_paths$12 = function $$find_in_paths(logical_path) { - var $iter = $Index_find_in_paths$12.$$p, block = $iter || nil, $a, $b, $$13, self = this, dirname = nil, basename = nil; + $def(self, '$find_in_paths', function $$find_in_paths(logical_path) { + var block = $$find_in_paths.$$p || nil, $a, $b, self = this, dirname = nil, basename = nil; - if ($iter) $Index_find_in_paths$12.$$p = null; - + delete $$find_in_paths.$$p; - if ($iter) $Index_find_in_paths$12.$$p = null;; - $b = logical_path.$split(), $a = Opal.to_ary($b), (dirname = ($a[0] == null ? nil : $a[0])), (basename = ($a[1] == null ? nil : $a[1])), $b; - return $send(self.pathnames, 'each', [], ($$13 = function(base_path){var self = $$13.$$s == null ? this : $$13.$$s; + ; + $b = logical_path.$split(), $a = $to_ary($b), (dirname = ($a[0] == null ? nil : $a[0])), (basename = ($a[1] == null ? nil : $a[1])), $b; + return $send(self.pathnames, 'each', [], function $$6(base_path){var self = $$6.$$s == null ? this : $$6.$$s; - if (base_path == null) { - base_path = nil; - }; - return $send(self, 'match', [base_path.$join(dirname), basename], block.$to_proc());}, $$13.$$s = self, $$13.$$arity = 1, $$13)); - }, $Index_find_in_paths$12.$$arity = 1); + if (base_path == null) base_path = nil;; + return $send(self, 'match', [base_path.$join(dirname), basename], block.$to_proc());}, {$$arity: 1, $$s: self}); + }, 1); - Opal.def(self, '$find_in_base_path', $Index_find_in_base_path$14 = function $$find_in_base_path(logical_path, base_path) { - var $iter = $Index_find_in_base_path$14.$$p, block = $iter || nil, $a, $b, self = this, candidate = nil, dirname = nil, basename = nil; + $def(self, '$find_in_base_path', function $$find_in_base_path(logical_path, base_path) { + var block = $$find_in_base_path.$$p || nil, $a, $b, self = this, candidate = nil, dirname = nil, basename = nil; - if ($iter) $Index_find_in_base_path$14.$$p = null; + delete $$find_in_base_path.$$p; - - if ($iter) $Index_find_in_base_path$14.$$p = null;; + ; candidate = base_path.$join(logical_path); - $b = candidate.$split(), $a = Opal.to_ary($b), (dirname = ($a[0] == null ? nil : $a[0])), (basename = ($a[1] == null ? nil : $a[1])), $b; + $b = candidate.$split(), $a = $to_ary($b), (dirname = ($a[0] == null ? nil : $a[0])), (basename = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(self['$paths_contain?'](dirname))) { return $send(self, 'match', [dirname, basename], block.$to_proc()) } else { return nil }; - }, $Index_find_in_base_path$14.$$arity = 2); + }, 2); - Opal.def(self, '$match', $Index_match$15 = function $$match(dirname, basename) { - var $$16, $$17, $iter = $Index_match$15.$$p, $yield = $iter || nil, self = this, matches = nil, pattern = nil; + $def(self, '$match', function $$match(dirname, basename) { + var $yield = $$match.$$p || nil, self = this, matches = nil, pattern = nil; - if ($iter) $Index_match$15.$$p = null; + delete $$match.$$p; matches = self.$entries(dirname); pattern = self.$pattern_for(basename); - matches = $send(matches, 'select', [], ($$16 = function(m){var self = $$16.$$s == null ? this : $$16.$$s; - + matches = $send(matches, 'select', [], function $$7(m){ - if (m == null) { - m = nil; - }; - return m.$to_s()['$=~'](pattern);}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - return $send(self.$sort_matches(matches, basename), 'each', [], ($$17 = function(path){var self = $$17.$$s == null ? this : $$17.$$s, pathname = nil, stat = nil, $ret_or_2 = nil; + if (m == null) m = nil;; + return m.$to_s()['$=~'](pattern);}, 1); + return $send(self.$sort_matches(matches, basename), 'each', [], function $$8(path){var self = $$8.$$s == null ? this : $$8.$$s, pathname = nil, stat = nil; - if (path == null) { - path = nil; - }; + if (path == null) path = nil;; pathname = dirname.$join(path); stat = self.$stat(pathname); - if ($truthy((function() {if ($truthy(($ret_or_2 = stat))) { - return stat['$file?']() - } else { - return $ret_or_2 - }; return nil; })())) { + if (($truthy(stat) && ($truthy(stat['$file?']())))) { return Opal.yield1($yield, pathname.$to_s()); } else { return nil - };}, $$17.$$s = self, $$17.$$arity = 1, $$17)); - }, $Index_match$15.$$arity = 2); + };}, {$$arity: 1, $$s: self}); + }, 2); - Opal.def(self, '$paths_contain?', $Index_paths_contain$ques$18 = function(dirname) { - var $$19, self = this; - - return $send(self.$paths(), 'any?', [], ($$19 = function(path){var self = $$19.$$s == null ? this : $$19.$$s; + $def(self, '$paths_contain?', function $Index_paths_contain$ques$9(dirname) { + var self = this; + return $send(self.$paths(), 'any?', [], function $$10(path){ - if (path == null) { - path = nil; - }; - return dirname.$to_s()['$[]'](0, path.$length())['$=='](path);}, $$19.$$s = self, $$19.$$arity = 1, $$19)) - }, $Index_paths_contain$ques$18.$$arity = 1); + if (path == null) path = nil;; + return dirname.$to_s()['$[]'](0, path.$length())['$=='](path);}, 1) + }, 1); - Opal.def(self, '$pattern_for', $Index_pattern_for$20 = function $$pattern_for(basename) { - var self = this, $ret_or_3 = nil, $writer = nil; + $def(self, '$pattern_for', function $$pattern_for(basename) { + var self = this, $ret_or_1 = nil, $writer = nil; - if ($truthy(($ret_or_3 = self.patterns['$[]'](basename)))) { - return $ret_or_3 + if ($truthy(($ret_or_1 = self.patterns['$[]'](basename)))) { + return $ret_or_1 } else { $writer = [basename, self.$build_pattern_for(basename)]; - $send(self.patterns, '[]=', Opal.to_a($writer)); + $send(self.patterns, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } - }, $Index_pattern_for$20.$$arity = 1); + }, 1); - Opal.def(self, '$build_pattern_for', $Index_build_pattern_for$21 = function $$build_pattern_for(basename) { - var $$22, self = this, extension_pattern = nil; + $def(self, '$build_pattern_for', function $$build_pattern_for(basename) { + var self = this, extension_pattern = nil; - extension_pattern = $send(self.$extensions(), 'map', [], ($$22 = function(e){var self = $$22.$$s == null ? this : $$22.$$s; - + extension_pattern = $send(self.$extensions(), 'map', [], function $$11(e){ - if (e == null) { - e = nil; - }; - return $$($nesting, 'Regexp').$escape(e);}, $$22.$$s = self, $$22.$$arity = 1, $$22)).$join("|"); - return Opal.regexp(["^", basename, "(?:", extension_pattern, ")*$"]); - }, $Index_build_pattern_for$21.$$arity = 1); - return (Opal.def(self, '$sort_matches', $Index_sort_matches$23 = function $$sort_matches(matches, basename) { - var $$24, self = this; + if (e == null) e = nil;; + return $$('Regexp').$escape(e);}, 1).$join("|"); + return $regexp(["^", basename, "(?:", extension_pattern, ")*$"]); + }, 1); + return $def(self, '$sort_matches', function $$sort_matches(matches, basename) { + var self = this; - return $send(matches, 'sort_by', [], ($$24 = function(match){var self = $$24.$$s == null ? this : $$24.$$s, $$25, extnames = nil; + return $send(matches, 'sort_by', [], function $$12(match){var self = $$12.$$s == null ? this : $$12.$$s, extnames = nil; - if (match == null) { - match = nil; - }; + if (match == null) match = nil;; extnames = match.$sub(basename.$to_s(), "").$to_s().$scan(/\.[^.]+/); - return $send(extnames, 'inject', [0], ($$25 = function(sum, ext){var self = $$25.$$s == null ? this : $$25.$$s, index = nil; + return $send(extnames, 'inject', [0], function $$13(sum, ext){var self = $$13.$$s == null ? this : $$13.$$s, index = nil; - if (sum == null) { - sum = nil; - }; + if (sum == null) sum = nil;; - if (ext == null) { - ext = nil; - }; + if (ext == null) ext = nil;; index = self.$extensions().$index(ext); if ($truthy(index)) { return $rb_plus($rb_plus(sum, index), 1) } else { return sum - };}, $$25.$$s = self, $$25.$$arity = 2, $$25));}, $$24.$$s = self, $$24.$$arity = 1, $$24)) - }, $Index_sort_matches$23.$$arity = 2), nil) && 'sort_matches'; + };}, {$$arity: 2, $$s: self});}, {$$arity: 1, $$s: self}) + }, 2); })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Trail'); - var $nesting = [self].concat($parent_nesting), $Trail_initialize$26, $Trail_root$27, $Trail_append_paths$28, $Trail_append_extensions$30, $Trail_find$32, $Trail_index$33, $Trail_entries$34, $Trail_stat$36, $Trail_normalize_extension$37, $Trail_normalize_path$38; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.root = self.$$prototype.paths = self.$$prototype.extensions = nil; + $proto.root = $proto.paths = $proto.extensions = nil; self.$attr_reader("paths"); self.$attr_reader("extensions"); - Opal.def(self, '$initialize', $Trail_initialize$26 = function $$initialize(root) { + $def(self, '$initialize', function $$initialize(root) { var self = this; - if (root == null) { - root = "."; - }; - self.root = $$($nesting, 'Pathname').$new(root).$expand_path(); + if (root == null) root = ".";; + self.root = $$('Pathname').$new(root).$expand_path(); self.paths = []; return (self.extensions = []); - }, $Trail_initialize$26.$$arity = -1); + }, -1); - Opal.def(self, '$root', $Trail_root$27 = function $$root() { + $def(self, '$root', function $$root() { var self = this; return self.root.$to_s() - }, $Trail_root$27.$$arity = 0); + }, 0); - Opal.def(self, '$append_paths', $Trail_append_paths$28 = function $$append_paths($a) { - var $post_args, paths, $$29, self = this; + $def(self, '$append_paths', function $$append_paths($a) { + var $post_args, paths, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); paths = $post_args;; - return self.paths.$concat($send(paths, 'map', [], ($$29 = function(p){var self = $$29.$$s == null ? this : $$29.$$s; + return self.paths.$concat($send(paths, 'map', [], function $$14(p){var self = $$14.$$s == null ? this : $$14.$$s; - if (p == null) { - p = nil; - }; - return self.$normalize_path(p);}, $$29.$$s = self, $$29.$$arity = 1, $$29))); - }, $Trail_append_paths$28.$$arity = -1); + if (p == null) p = nil;; + return self.$normalize_path(p);}, {$$arity: 1, $$s: self})); + }, -1); - Opal.def(self, '$append_extensions', $Trail_append_extensions$30 = function $$append_extensions($a) { - var $post_args, extensions, $$31, self = this; + $def(self, '$append_extensions', function $$append_extensions($a) { + var $post_args, extensions, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); extensions = $post_args;; - return self.extensions.$concat($send(extensions, 'map', [], ($$31 = function(e){var self = $$31.$$s == null ? this : $$31.$$s; + return self.extensions.$concat($send(extensions, 'map', [], function $$15(e){var self = $$15.$$s == null ? this : $$15.$$s; - if (e == null) { - e = nil; - }; - return self.$normalize_extension(e);}, $$31.$$s = self, $$31.$$arity = 1, $$31))); - }, $Trail_append_extensions$30.$$arity = -1); + if (e == null) e = nil;; + return self.$normalize_extension(e);}, {$$arity: 1, $$s: self})); + }, -1); - Opal.def(self, '$find', $Trail_find$32 = function $$find($a) { - var $iter = $Trail_find$32.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$find', function $$find($a) { + var block = $$find.$$p || nil, $post_args, args, self = this; - if ($iter) $Trail_find$32.$$p = null; + delete $$find.$$p; + ; - if ($iter) $Trail_find$32.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self.$index(), 'find', Opal.to_a(args), block.$to_proc()); - }, $Trail_find$32.$$arity = -1); + return $send(self.$index(), 'find', $to_a(args), block.$to_proc()); + }, -1); - Opal.def(self, '$index', $Trail_index$33 = function $$index() { + $def(self, '$index', function $$index() { var self = this; - return $$($nesting, 'Index').$new(self.$root(), self.$paths(), self.$extensions()) - }, $Trail_index$33.$$arity = 0); + return $$('Index').$new(self.$root(), self.$paths(), self.$extensions()) + }, 0); - Opal.def(self, '$entries', $Trail_entries$34 = function $$entries(path) { - var $$35, self = this, pathname = nil; + $def(self, '$entries', function $$entries(path) { + var pathname = nil; - pathname = $$($nesting, 'Pathname').$new(path); + pathname = $$('Pathname').$new(path); if ($truthy(pathname['$directory?']())) { - return $send(pathname.$entries(), 'reject', [], ($$35 = function(entry){var self = $$35.$$s == null ? this : $$35.$$s; - + return $send(pathname.$entries(), 'reject', [], function $$16(entry){ - if (entry == null) { - entry = nil; - }; - return entry.$to_s()['$=~'](/^\.|~$|^\#.*\#$/);}, $$35.$$s = self, $$35.$$arity = 1, $$35)).$sort() + if (entry == null) entry = nil;; + return entry.$to_s()['$=~'](/^\.|~$|^\#.*\#$/);}, 1).$sort() } else { return [] }; - }, $Trail_entries$34.$$arity = 1); + }, 1); - Opal.def(self, '$stat', $Trail_stat$36 = function $$stat(path) { - var self = this; - - if ($truthy($$($nesting, 'File')['$exist?'](path))) { - return $$($nesting, 'File').$stat(path.$to_s()) + $def(self, '$stat', function $$stat(path) { + + if ($truthy($$('File')['$exist?'](path))) { + return $$('File').$stat(path.$to_s()) } else { return nil } - }, $Trail_stat$36.$$arity = 1); + }, 1); self.$private(); - Opal.def(self, '$normalize_extension', $Trail_normalize_extension$37 = function $$normalize_extension(ext) { - var self = this; - + $def(self, '$normalize_extension', function $$normalize_extension(ext) { + if ($truthy(ext['$start_with?']("."))) { return ext } else { - return "" + "." + (ext) + return "." + (ext) } - }, $Trail_normalize_extension$37.$$arity = 1); - return (Opal.def(self, '$normalize_path', $Trail_normalize_path$38 = function $$normalize_path(path) { + }, 1); + return $def(self, '$normalize_path', function $$normalize_path(path) { var self = this; - path = $$($nesting, 'Pathname').$new(path); + path = $$('Pathname').$new(path); if ($truthy(path['$relative?']())) { - path = self.root.$join(path)}; + path = self.root.$join(path) + }; return path.$expand_path().$to_s(); - }, $Trail_normalize_path$38.$$arity = 1), nil) && 'normalize_path'; + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/path_reader"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/path_reader"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $send = Opal.send, $to_a = Opal.to_a, $def = Opal.def, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$freeze', '$quote', '$paths', '$new', '$append_paths', '$append_extensions', '$expand', '$nil?', '$exist?', '$open', '$to_proc', '$absolute?', '$=~', '$find_path', '$file_finder', '$extensions', '$private', '$Pathname', '$find', '$attr_reader']); + Opal.add_stubs('require,freeze,quote,paths,new,append_paths,append_extensions,expand,nil?,exist?,open,to_proc,=~,absolute?,find_path,file_finder,extensions,private,Pathname,find,attr_reader'); self.$require("opal/regexp_anchors"); self.$require("opal/hike"); @@ -1017,413 +901,350 @@ Opal.modules["opal/path_reader"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'PathReader'); - var $nesting = [self].concat($parent_nesting), $PathReader_initialize$1, $PathReader_read$2, $PathReader_expand$3, $PathReader_paths$4, $PathReader_extensions$5, $PathReader_append_paths$6, $PathReader_find_path$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.file_finder = nil; + $proto.file_finder = nil; - Opal.const_set($nesting[0], 'RELATIVE_PATH_REGEXP', Opal.regexp([$$$($$($nesting, 'Opal'), 'REGEXP_START'), "\\.?\\.", $$($nesting, 'Regexp').$quote($$$($$($nesting, 'File'), 'SEPARATOR'))]).$freeze()); - Opal.const_set($nesting[0], 'DEFAULT_EXTENSIONS', [".js", ".js.rb", ".rb", ".opalerb"].$freeze()); + $const_set($nesting[0], 'RELATIVE_PATH_REGEXP', $regexp([$$$($$('Opal'), 'REGEXP_START'), "\\.?\\.", $$('Regexp').$quote($$$($$('File'), 'SEPARATOR'))]).$freeze()); + $const_set($nesting[0], 'DEFAULT_EXTENSIONS', [".js", ".js.rb", ".rb", ".opalerb"].$freeze()); - Opal.def(self, '$initialize', $PathReader_initialize$1 = function $$initialize(paths, extensions) { + $def(self, '$initialize', function $$initialize(paths, extensions) { var self = this; - if (paths == null) { - paths = $$($nesting, 'Opal').$paths(); - }; + if (paths == null) paths = $$('Opal').$paths();; - if (extensions == null) { - extensions = $$($nesting, 'DEFAULT_EXTENSIONS'); - }; - self.file_finder = $$$($$($nesting, 'Hike'), 'Trail').$new(); - $send(self.file_finder, 'append_paths', Opal.to_a(paths)); - return $send(self.file_finder, 'append_extensions', Opal.to_a(extensions)); - }, $PathReader_initialize$1.$$arity = -1); + if (extensions == null) extensions = $$('DEFAULT_EXTENSIONS');; + self.file_finder = $$$($$('Hike'), 'Trail').$new(); + $send(self.file_finder, 'append_paths', $to_a(paths)); + return $send(self.file_finder, 'append_extensions', $to_a(extensions)); + }, -1); - Opal.def(self, '$read', $PathReader_read$2 = function $$read(path) { + $def(self, '$read', function $$read(path) { var self = this, full_path = nil; full_path = self.$expand(path); if ($truthy(full_path['$nil?']())) { - return nil}; - if ($truthy($$($nesting, 'File')['$exist?'](full_path))) { - return $send($$($nesting, 'File'), 'open', [full_path, "rb:UTF-8"], "read".$to_proc()) + return nil + }; + if ($truthy($$('File')['$exist?'](full_path))) { + return $send($$('File'), 'open', [full_path, "rb:UTF-8"], "read".$to_proc()) } else { return nil }; - }, $PathReader_read$2.$$arity = 1); + }, 1); - Opal.def(self, '$expand', $PathReader_expand$3 = function $$expand(path) { - var self = this, $ret_or_1 = nil; + $def(self, '$expand', function $$expand(path) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Pathname').$new(path)['$absolute?']()))) { - return $ret_or_1 - } else { - return path['$=~']($$($nesting, 'RELATIVE_PATH_REGEXP')) - }; return nil; })())) { + if (($truthy($$('Pathname').$new(path)['$absolute?']()) || ($truthy(path['$=~']($$('RELATIVE_PATH_REGEXP')))))) { return path } else { return self.$find_path(path) } - }, $PathReader_expand$3.$$arity = 1); + }, 1); - Opal.def(self, '$paths', $PathReader_paths$4 = function $$paths() { + $def(self, '$paths', function $$paths() { var self = this; return self.$file_finder().$paths() - }, $PathReader_paths$4.$$arity = 0); + }, 0); - Opal.def(self, '$extensions', $PathReader_extensions$5 = function $$extensions() { + $def(self, '$extensions', function $$extensions() { var self = this; return self.$file_finder().$extensions() - }, $PathReader_extensions$5.$$arity = 0); + }, 0); - Opal.def(self, '$append_paths', $PathReader_append_paths$6 = function $$append_paths($a) { + $def(self, '$append_paths', function $$append_paths($a) { var $post_args, paths, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); paths = $post_args;; - return $send(self.$file_finder(), 'append_paths', Opal.to_a(paths)); - }, $PathReader_append_paths$6.$$arity = -1); + return $send(self.$file_finder(), 'append_paths', $to_a(paths)); + }, -1); self.$private(); - Opal.def(self, '$find_path', $PathReader_find_path$7 = function $$find_path(path) { - var self = this, pathname = nil, $ret_or_2 = nil; + $def(self, '$find_path', function $$find_path(path) { + var self = this, pathname = nil; pathname = self.$Pathname(path); - if ($truthy((function() {if ($truthy(($ret_or_2 = pathname['$absolute?']()))) { - return pathname['$exist?']() - } else { - return $ret_or_2 - }; return nil; })())) { - return path}; + if (($truthy(pathname['$absolute?']()) && ($truthy(pathname['$exist?']())))) { + return path + }; return self.$file_finder().$find(path); - }, $PathReader_find_path$7.$$arity = 1); + }, 1); return self.$attr_reader("file_finder"); })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/paths"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/paths"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $defs = Opal.defs, $send = Opal.send, $to_a = Opal.to_a, $def = Opal.def, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus; - Opal.add_stubs(['$expand_path', '$append_paths', '$concat', '$require_paths_for_gem', '$private', '$find_by_name', '$raise', '$each', '$runtime_dependencies', '$+', '$name', '$gem_dir', '$map', '$require_paths', '$<<', '$join', '$extend', '$freeze', '$core_dir', '$std_dir', '$reset_paths!']); + Opal.add_stubs('expand_path,append_paths,concat,require_paths_for_gem,private,find_by_name,raise,each,runtime_dependencies,+,name,gem_dir,map,require_paths,<<,join,extend,freeze,core_dir,std_dir,reset_paths!'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting), $Opal_gem_dir$1, $Opal_core_dir$2, $Opal_std_dir$3, $Opal_append_path$4, $Opal_append_paths$5, $Opal_paths$10, $Opal_reset_paths$excl$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$gem_dir', $Opal_gem_dir$1 = function $$gem_dir() { - var self = this; - - return $$($nesting, 'File').$expand_path("../..", "opal/paths.rb") - }, $Opal_gem_dir$1.$$arity = 0); - Opal.defs(self, '$core_dir', $Opal_core_dir$2 = function $$core_dir() { - var self = this; - - return $$($nesting, 'File').$expand_path("../../../opal", "opal/paths.rb") - }, $Opal_core_dir$2.$$arity = 0); - Opal.defs(self, '$std_dir', $Opal_std_dir$3 = function $$std_dir() { - var self = this; - - return $$($nesting, 'File').$expand_path("../../../stdlib", "opal/paths.rb") - }, $Opal_std_dir$3.$$arity = 0); - Opal.defs(self, '$append_path', $Opal_append_path$4 = function $$append_path(path) { + $defs(self, '$gem_dir', function $$gem_dir() { + + return $$('File').$expand_path("../..", "opal/paths.rb") + }, 0); + $defs(self, '$core_dir', function $$core_dir() { + + return $$('File').$expand_path("../../../opal", "opal/paths.rb") + }, 0); + $defs(self, '$std_dir', function $$std_dir() { + + return $$('File').$expand_path("../../../stdlib", "opal/paths.rb") + }, 0); + $defs(self, '$append_path', function $$append_path(path) { var self = this; return self.$append_paths(path) - }, $Opal_append_path$4.$$arity = 1); - Opal.defs(self, '$append_paths', $Opal_append_paths$5 = function $$append_paths($a) { + }, 1); + $defs(self, '$append_paths', function $$append_paths($a) { var $post_args, paths, self = this; if (self.paths == null) self.paths = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); paths = $post_args;; self.paths.$concat(paths); return nil; - }, $Opal_append_paths$5.$$arity = -1); + }, -1); (function($base, $parent_nesting) { var self = $module($base, 'UseGem'); - var $nesting = [self].concat($parent_nesting), $UseGem_use_gem$6, $UseGem_require_paths_for_gem$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$use_gem', $UseGem_use_gem$6 = function $$use_gem(gem_name, include_dependencies) { + $def(self, '$use_gem', function $$use_gem(gem_name, include_dependencies) { var self = this; - if (include_dependencies == null) { - include_dependencies = true; - }; - return $send(self, 'append_paths', Opal.to_a(self.$require_paths_for_gem(gem_name, include_dependencies))); - }, $UseGem_use_gem$6.$$arity = -2); + if (include_dependencies == null) include_dependencies = true;; + return $send(self, 'append_paths', $to_a(self.$require_paths_for_gem(gem_name, include_dependencies))); + }, -2); self.$private(); - return (Opal.def(self, '$require_paths_for_gem', $UseGem_require_paths_for_gem$7 = function $$require_paths_for_gem(gem_name, include_dependencies) { - var $$8, $$9, self = this, paths = nil, spec = nil, gem_dir = nil; + return $def(self, '$require_paths_for_gem', function $$require_paths_for_gem(gem_name, include_dependencies) { + var self = this, paths = nil, spec = nil, gem_dir = nil; paths = []; - spec = $$$($$($nesting, 'Gem'), 'Specification').$find_by_name(gem_name); - if ($truthy(spec)) { - } else { - self.$raise($$($nesting, 'GemNotFound'), gem_name) + spec = $$$($$('Gem'), 'Specification').$find_by_name(gem_name); + if (!$truthy(spec)) { + self.$raise($$('GemNotFound'), gem_name) }; if ($truthy(include_dependencies)) { - $send(spec.$runtime_dependencies(), 'each', [], ($$8 = function(dependency){var self = $$8.$$s == null ? this : $$8.$$s; + $send(spec.$runtime_dependencies(), 'each', [], function $$1(dependency){var self = $$1.$$s == null ? this : $$1.$$s; - if (dependency == null) { - dependency = nil; - }; - return (paths = $rb_plus(paths, self.$require_paths_for_gem(dependency.$name(), include_dependencies)));}, $$8.$$s = self, $$8.$$arity = 1, $$8))}; + if (dependency == null) dependency = nil;; + return (paths = $rb_plus(paths, self.$require_paths_for_gem(dependency.$name(), include_dependencies)));}, {$$arity: 1, $$s: self}) + }; gem_dir = spec.$gem_dir(); - $send(spec.$require_paths(), 'map', [], ($$9 = function(path){var self = $$9.$$s == null ? this : $$9.$$s; - + $send(spec.$require_paths(), 'map', [], function $$2(path){ - if (path == null) { - path = nil; - }; - return paths['$<<']($$($nesting, 'File').$join(gem_dir, path));}, $$9.$$s = self, $$9.$$arity = 1, $$9)); + if (path == null) path = nil;; + return paths['$<<']($$('File').$join(gem_dir, path));}, 1); return paths; - }, $UseGem_require_paths_for_gem$7.$$arity = 2), nil) && 'require_paths_for_gem'; + }, 2); })($nesting[0], $nesting); - self.$extend($$($nesting, 'UseGem')); - Opal.defs(self, '$paths', $Opal_paths$10 = function $$paths() { + self.$extend($$('UseGem')); + $defs(self, '$paths', function $$paths() { var self = this; if (self.paths == null) self.paths = nil; return self.paths.$freeze() - }, $Opal_paths$10.$$arity = 0); - Opal.defs(self, '$reset_paths!', $Opal_reset_paths$excl$11 = function() { + }, 0); + $defs(self, '$reset_paths!', function $Opal_reset_paths$excl$3() { var self = this; self.paths = [self.$core_dir(), self.$std_dir(), self.$gem_dir()]; nil; return nil; - }, $Opal_reset_paths$excl$11.$$arity = 0); + }, 0); return self['$reset_paths!'](); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["set"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; - - Opal.add_stubs(['$include', '$new', '$nil?', '$===', '$raise', '$each', '$add', '$merge', '$class', '$respond_to?', '$subtract', '$dup', '$join', '$to_a', '$equal?', '$instance_of?', '$==', '$instance_variable_get', '$is_a?', '$size', '$all?', '$include?', '$[]=', '$-', '$enum_for', '$[]', '$<<', '$replace', '$delete', '$select', '$reject', '$delete_if', '$to_proc', '$keep_if', '$each_key', '$empty?', '$eql?', '$instance_eval', '$clear', '$<', '$<=', '$any?', '$!', '$intersect?', '$keys']); +Opal.modules["set"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $defs = Opal.defs, $hash2 = Opal.hash2, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $send = Opal.send, $def = Opal.def, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_lt = Opal.rb_lt, $rb_le = Opal.rb_le, $alias = Opal.alias, $module = Opal.module; + + Opal.add_stubs('include,new,nil?,===,raise,each,add,merge,class,respond_to?,subtract,dup,join,to_a,equal?,instance_of?,==,instance_variable_get,size,is_a?,all?,include?,[]=,-,enum_for,[],<<,replace,delete,select,reject,delete_if,to_proc,keep_if,each_key,empty?,eql?,instance_eval,clear,<,<=,any?,!,intersect?,keys'); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Set'); - var $nesting = [self].concat($parent_nesting), $Set_$$$1, $Set_initialize$2, $Set_dup$4, $Set_$minus$5, $Set_inspect$6, $Set_$eq_eq$7, $Set_add$9, $Set_classify$10, $Set_collect$excl$13, $Set_delete$15, $Set_delete$ques$16, $Set_delete_if$17, $Set_keep_if$20, $Set_reject$excl$23, $Set_select$excl$24, $Set_add$ques$25, $Set_each$26, $Set_empty$ques$27, $Set_eql$ques$28, $Set_clear$30, $Set_include$ques$31, $Set_merge$32, $Set_replace$34, $Set_size$35, $Set_subtract$36, $Set_$$38, $Set_superset$ques$39, $Set_proper_superset$ques$41, $Set_subset$ques$43, $Set_proper_subset$ques$45, $Set_intersect$ques$47, $Set_disjoint$ques$50, $Set_to_a$51; + var $ret_or_1 = nil, $proto = self.$$prototype; - self.$$prototype.hash = nil; + $proto.hash = nil; - self.$include($$($nesting, 'Enumerable')); - Opal.defs(self, '$[]', $Set_$$$1 = function($a) { + self.$include($$$('Enumerable')); + $defs(self, '$[]', function $Set_$$$1($a) { var $post_args, ary, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); ary = $post_args;; return self.$new(ary); - }, $Set_$$$1.$$arity = -1); + }, -1); - Opal.def(self, '$initialize', $Set_initialize$2 = function $$initialize(enum$) { - var $iter = $Set_initialize$2.$$p, block = $iter || nil, $$3, self = this; + $def(self, '$initialize', function $$initialize(enum$) { + var block = $$initialize.$$p || nil, self = this; - if ($iter) $Set_initialize$2.$$p = null; + delete $$initialize.$$p; + ; - if ($iter) $Set_initialize$2.$$p = null;; - - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; self.hash = $hash2([], {}); if ($truthy(enum$['$nil?']())) { - return nil}; - if ($truthy($$($nesting, 'Enumerable')['$==='](enum$))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + return nil + }; + if (!$eqeqeq($$$('Enumerable'), enum$)) { + $Kernel.$raise($$$('ArgumentError'), "value must be enumerable") }; if ($truthy(block)) { - return $send(enum$, 'each', [], ($$3 = function(item){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(enum$, 'each', [], function $$2(item){var self = $$2.$$s == null ? this : $$2.$$s; - if (item == null) { - item = nil; - }; - return self.$add(Opal.yield1(block, item));}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + if (item == null) item = nil;; + return self.$add(Opal.yield1(block, item));}, {$$arity: 1, $$s: self}) } else { return self.$merge(enum$) }; - }, $Set_initialize$2.$$arity = -1); + }, -1); - Opal.def(self, '$dup', $Set_dup$4 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this, result = nil; result = self.$class().$new(); return result.$merge(self); - }, $Set_dup$4.$$arity = 0); + }, 0); - Opal.def(self, '$-', $Set_$minus$5 = function(enum$) { + $def(self, '$-', function $Set_$minus$3(enum$) { var self = this; - if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + if (!$truthy(enum$['$respond_to?']("each"))) { + $Kernel.$raise($$$('ArgumentError'), "value must be enumerable") }; return self.$dup().$subtract(enum$); - }, $Set_$minus$5.$$arity = 1); - $alias(self, "difference", "-"); + }, 1); - Opal.def(self, '$inspect', $Set_inspect$6 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Set_inspect$6.$$arity = 0); + return "#" + }, 0); - Opal.def(self, '$==', $Set_$eq_eq$7 = function(other) { - var $$8, self = this, $ret_or_1 = nil; + $def(self, '$==', function $Set_$eq_eq$4(other) { + var self = this; if ($truthy(self['$equal?'](other))) { return true } else if ($truthy(other['$instance_of?'](self.$class()))) { return self.hash['$=='](other.$instance_variable_get("@hash")) - } else if ($truthy((function() {if ($truthy(($ret_or_1 = other['$is_a?']($$($nesting, 'Set'))))) { - return self.$size()['$=='](other.$size()) - } else { - return $ret_or_1 - }; return nil; })())) { - return $send(other, 'all?', [], ($$8 = function(o){var self = $$8.$$s == null ? this : $$8.$$s; + } else if (($truthy(other['$is_a?']($$$('Set'))) && ($eqeq(self.$size(), other.$size())))) { + return $send(other, 'all?', [], function $$5(o){var self = $$5.$$s == null ? this : $$5.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash['$include?'](o);}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + if (o == null) o = nil;; + return self.hash['$include?'](o);}, {$$arity: 1, $$s: self}) } else { return false } - }, $Set_$eq_eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$add', $Set_add$9 = function $$add(o) { + $def(self, '$add', function $$add(o) { var self = this, $writer = nil; $writer = [o, true]; - $send(self.hash, '[]=', Opal.to_a($writer)); + $send(self.hash, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self; - }, $Set_add$9.$$arity = 1); - $alias(self, "<<", "add"); + }, 1); - Opal.def(self, '$classify', $Set_classify$10 = function $$classify() { - var $iter = $Set_classify$10.$$p, block = $iter || nil, $$11, $$12, self = this, result = nil; + $def(self, '$classify', function $$classify() { + var block = $$classify.$$p || nil, self = this, result = nil; - if ($iter) $Set_classify$10.$$p = null; - + delete $$classify.$$p; - if ($iter) $Set_classify$10.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("classify") }; - result = $send($$($nesting, 'Hash'), 'new', [], ($$11 = function(h, k){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; + result = $send($$$('Hash'), 'new', [], function $$6(h, k){var self = $$6.$$s == null ? this : $$6.$$s, $writer = nil; - if (h == null) { - h = nil; - }; + if (h == null) h = nil;; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [k, self.$class().$new()]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$11.$$s = self, $$11.$$arity = 2, $$11)); - $send(self, 'each', [], ($$12 = function(item){var self = $$12.$$s == null ? this : $$12.$$s; - + $send(h, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 2, $$s: self}); + $send(self, 'each', [], function $$7(item){ - if (item == null) { - item = nil; - }; - return result['$[]'](Opal.yield1(block, item)).$add(item);}, $$12.$$s = self, $$12.$$arity = 1, $$12)); + if (item == null) item = nil;; + return result['$[]'](Opal.yield1(block, item)).$add(item);}, 1); return result; - }, $Set_classify$10.$$arity = 0); + }, 0); - Opal.def(self, '$collect!', $Set_collect$excl$13 = function() { - var $iter = $Set_collect$excl$13.$$p, block = $iter || nil, $$14, self = this, result = nil; + $def(self, '$collect!', function $Set_collect$excl$8() { + var block = $Set_collect$excl$8.$$p || nil, self = this, result = nil; - if ($iter) $Set_collect$excl$13.$$p = null; - + delete $Set_collect$excl$8.$$p; - if ($iter) $Set_collect$excl$13.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("collect!") }; result = self.$class().$new(); - $send(self, 'each', [], ($$14 = function(item){var self = $$14.$$s == null ? this : $$14.$$s; - + $send(self, 'each', [], function $$9(item){ - if (item == null) { - item = nil; - }; - return result['$<<'](Opal.yield1(block, item));}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + if (item == null) item = nil;; + return result['$<<'](Opal.yield1(block, item));}, 1); return self.$replace(result); - }, $Set_collect$excl$13.$$arity = 0); - $alias(self, "map!", "collect!"); + }, 0); - Opal.def(self, '$delete', $Set_delete$15 = function(o) { + $def(self, '$delete', function $Set_delete$10(o) { var self = this; self.hash.$delete(o); return self; - }, $Set_delete$15.$$arity = 1); + }, 1); - Opal.def(self, '$delete?', $Set_delete$ques$16 = function(o) { + $def(self, '$delete?', function $Set_delete$ques$11(o) { var self = this; if ($truthy(self['$include?'](o))) { @@ -1433,106 +1254,89 @@ Opal.modules["set"] = function(Opal) { } else { return nil } - }, $Set_delete$ques$16.$$arity = 1); + }, 1); - Opal.def(self, '$delete_if', $Set_delete_if$17 = function $$delete_if() { - var $$18, $$19, $iter = $Set_delete_if$17.$$p, $yield = $iter || nil, self = this; + $def(self, '$delete_if', function $$delete_if() { + var $yield = $$delete_if.$$p || nil, self = this; - if ($iter) $Set_delete_if$17.$$p = null; + delete $$delete_if.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$enum_for("delete_if") }; - $send($send(self, 'select', [], ($$18 = function(o){var self = $$18.$$s == null ? this : $$18.$$s; - + $send($send(self, 'select', [], function $$12(o){ - if (o == null) { - o = nil; - }; - return Opal.yield1($yield, o);;}, $$18.$$s = self, $$18.$$arity = 1, $$18)), 'each', [], ($$19 = function(o){var self = $$19.$$s == null ? this : $$19.$$s; + if (o == null) o = nil;; + return Opal.yield1($yield, o);;}, 1), 'each', [], function $$13(o){var self = $$13.$$s == null ? this : $$13.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash.$delete(o);}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + if (o == null) o = nil;; + return self.hash.$delete(o);}, {$$arity: 1, $$s: self}); return self; - }, $Set_delete_if$17.$$arity = 0); + }, 0); - Opal.def(self, '$keep_if', $Set_keep_if$20 = function $$keep_if() { - var $$21, $$22, $iter = $Set_keep_if$20.$$p, $yield = $iter || nil, self = this; + $def(self, '$keep_if', function $$keep_if() { + var $yield = $$keep_if.$$p || nil, self = this; - if ($iter) $Set_keep_if$20.$$p = null; + delete $$keep_if.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$enum_for("keep_if") }; - $send($send(self, 'reject', [], ($$21 = function(o){var self = $$21.$$s == null ? this : $$21.$$s; - + $send($send(self, 'reject', [], function $$14(o){ - if (o == null) { - o = nil; - }; - return Opal.yield1($yield, o);;}, $$21.$$s = self, $$21.$$arity = 1, $$21)), 'each', [], ($$22 = function(o){var self = $$22.$$s == null ? this : $$22.$$s; + if (o == null) o = nil;; + return Opal.yield1($yield, o);;}, 1), 'each', [], function $$15(o){var self = $$15.$$s == null ? this : $$15.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash.$delete(o);}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + if (o == null) o = nil;; + return self.hash.$delete(o);}, {$$arity: 1, $$s: self}); return self; - }, $Set_keep_if$20.$$arity = 0); + }, 0); - Opal.def(self, '$reject!', $Set_reject$excl$23 = function() { - var $iter = $Set_reject$excl$23.$$p, block = $iter || nil, self = this, before = nil; + $def(self, '$reject!', function $Set_reject$excl$16() { + var block = $Set_reject$excl$16.$$p || nil, self = this, before = nil; - if ($iter) $Set_reject$excl$23.$$p = null; + delete $Set_reject$excl$16.$$p; - - if ($iter) $Set_reject$excl$23.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("reject!") }; before = self.$size(); $send(self, 'delete_if', [], block.$to_proc()); - if (self.$size()['$=='](before)) { + if ($eqeq(self.$size(), before)) { return nil } else { return self }; - }, $Set_reject$excl$23.$$arity = 0); + }, 0); - Opal.def(self, '$select!', $Set_select$excl$24 = function() { - var $iter = $Set_select$excl$24.$$p, block = $iter || nil, self = this, before = nil; + $def(self, '$select!', function $Set_select$excl$17() { + var block = $Set_select$excl$17.$$p || nil, self = this, before = nil; - if ($iter) $Set_select$excl$24.$$p = null; + delete $Set_select$excl$17.$$p; - - if ($iter) $Set_select$excl$24.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("select!") }; before = self.$size(); $send(self, 'keep_if', [], block.$to_proc()); - if (self.$size()['$=='](before)) { + if ($eqeq(self.$size(), before)) { return nil } else { return self }; - }, $Set_select$excl$24.$$arity = 0); - $alias(self, "filter!", "select!"); + }, 0); - Opal.def(self, '$add?', $Set_add$ques$25 = function(o) { + $def(self, '$add?', function $Set_add$ques$18(o) { var self = this; if ($truthy(self['$include?'](o))) { @@ -1540,277 +1344,240 @@ Opal.modules["set"] = function(Opal) { } else { return self.$add(o) } - }, $Set_add$ques$25.$$arity = 1); + }, 1); - Opal.def(self, '$each', $Set_each$26 = function $$each() { - var $iter = $Set_each$26.$$p, block = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Set_each$26.$$p = null; - + delete $$each.$$p; - if ($iter) $Set_each$26.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("each") }; $send(self.hash, 'each_key', [], block.$to_proc()); return self; - }, $Set_each$26.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $Set_empty$ques$27 = function() { + $def(self, '$empty?', function $Set_empty$ques$19() { var self = this; return self.hash['$empty?']() - }, $Set_empty$ques$27.$$arity = 0); + }, 0); - Opal.def(self, '$eql?', $Set_eql$ques$28 = function(other) { - var $$29, self = this; + $def(self, '$eql?', function $Set_eql$ques$20(other) { + var self = this; - return self.hash['$eql?']($send(other, 'instance_eval', [], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; + return self.hash['$eql?']($send(other, 'instance_eval', [], function $$21(){var self = $$21.$$s == null ? this : $$21.$$s; if (self.hash == null) self.hash = nil; - return self.hash}, $$29.$$s = self, $$29.$$arity = 0, $$29))) - }, $Set_eql$ques$28.$$arity = 1); + return self.hash}, {$$arity: 0, $$s: self})) + }, 1); - Opal.def(self, '$clear', $Set_clear$30 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; self.hash.$clear(); return self; - }, $Set_clear$30.$$arity = 0); + }, 0); - Opal.def(self, '$include?', $Set_include$ques$31 = function(o) { + $def(self, '$include?', function $Set_include$ques$22(o) { var self = this; return self.hash['$include?'](o) - }, $Set_include$ques$31.$$arity = 1); - $alias(self, "member?", "include?"); + }, 1); - Opal.def(self, '$merge', $Set_merge$32 = function $$merge(enum$) { - var $$33, self = this; + $def(self, '$merge', function $$merge(enum$) { + var self = this; - $send(enum$, 'each', [], ($$33 = function(item){var self = $$33.$$s == null ? this : $$33.$$s; + $send(enum$, 'each', [], function $$23(item){var self = $$23.$$s == null ? this : $$23.$$s; - if (item == null) { - item = nil; - }; - return self.$add(item);}, $$33.$$s = self, $$33.$$arity = 1, $$33)); + if (item == null) item = nil;; + return self.$add(item);}, {$$arity: 1, $$s: self}); return self; - }, $Set_merge$32.$$arity = 1); + }, 1); - Opal.def(self, '$replace', $Set_replace$34 = function $$replace(enum$) { + $def(self, '$replace', function $$replace(enum$) { var self = this; self.$clear(); self.$merge(enum$); return self; - }, $Set_replace$34.$$arity = 1); + }, 1); - Opal.def(self, '$size', $Set_size$35 = function $$size() { + $def(self, '$size', function $$size() { var self = this; return self.hash.$size() - }, $Set_size$35.$$arity = 0); - $alias(self, "length", "size"); + }, 0); - Opal.def(self, '$subtract', $Set_subtract$36 = function $$subtract(enum$) { - var $$37, self = this; + $def(self, '$subtract', function $$subtract(enum$) { + var self = this; - $send(enum$, 'each', [], ($$37 = function(item){var self = $$37.$$s == null ? this : $$37.$$s; + $send(enum$, 'each', [], function $$24(item){var self = $$24.$$s == null ? this : $$24.$$s; - if (item == null) { - item = nil; - }; - return self.$delete(item);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + if (item == null) item = nil;; + return self.$delete(item);}, {$$arity: 1, $$s: self}); return self; - }, $Set_subtract$36.$$arity = 1); + }, 1); - Opal.def(self, '$|', $Set_$$38 = function(enum$) { + $def(self, '$|', function $Set_$$25(enum$) { var self = this; - if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + if (!$truthy(enum$['$respond_to?']("each"))) { + $Kernel.$raise($$$('ArgumentError'), "value must be enumerable") }; return self.$dup().$merge(enum$); - }, $Set_$$38.$$arity = 1); + }, 1); + + function is_set(set) { + ($truthy(($ret_or_1 = (set)['$is_a?']($$$('Set')))) ? ($ret_or_1) : ($Kernel.$raise($$$('ArgumentError'), "value must be a set"))) + } + ; - Opal.def(self, '$superset?', $Set_superset$ques$39 = function(set) { - var $$40, self = this, $ret_or_2 = nil; + $def(self, '$superset?', function $Set_superset$ques$26(set) { + var self = this; - if ($truthy(($ret_or_2 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_2 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(self.$size(), set.$size()))) { - return false}; - return $send(set, 'all?', [], ($$40 = function(o){var self = $$40.$$s == null ? this : $$40.$$s; + return false + }; + return $send(set, 'all?', [], function $$27(o){var self = $$27.$$s == null ? this : $$27.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$40.$$s = self, $$40.$$arity = 1, $$40)); - }, $Set_superset$ques$39.$$arity = 1); - $alias(self, ">=", "superset?"); + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}); + }, 1); - Opal.def(self, '$proper_superset?', $Set_proper_superset$ques$41 = function(set) { - var $$42, self = this, $ret_or_3 = nil; + $def(self, '$proper_superset?', function $Set_proper_superset$ques$28(set) { + var self = this; - if ($truthy(($ret_or_3 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_3 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_le(self.$size(), set.$size()))) { - return false}; - return $send(set, 'all?', [], ($$42 = function(o){var self = $$42.$$s == null ? this : $$42.$$s; + return false + }; + return $send(set, 'all?', [], function $$29(o){var self = $$29.$$s == null ? this : $$29.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$42.$$s = self, $$42.$$arity = 1, $$42)); - }, $Set_proper_superset$ques$41.$$arity = 1); - $alias(self, ">", "proper_superset?"); + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}); + }, 1); - Opal.def(self, '$subset?', $Set_subset$ques$43 = function(set) { - var $$44, self = this, $ret_or_4 = nil; + $def(self, '$subset?', function $Set_subset$ques$30(set) { + var self = this; - if ($truthy(($ret_or_4 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_4 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(set.$size(), self.$size()))) { - return false}; - return $send(self, 'all?', [], ($$44 = function(o){var self = $$44.$$s == null ? this : $$44.$$s; - + return false + }; + return $send(self, 'all?', [], function $$31(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$44.$$s = self, $$44.$$arity = 1, $$44)); - }, $Set_subset$ques$43.$$arity = 1); - $alias(self, "<=", "subset?"); + if (o == null) o = nil;; + return set['$include?'](o);}, 1); + }, 1); - Opal.def(self, '$proper_subset?', $Set_proper_subset$ques$45 = function(set) { - var $$46, self = this, $ret_or_5 = nil; + $def(self, '$proper_subset?', function $Set_proper_subset$ques$32(set) { + var self = this; - if ($truthy(($ret_or_5 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_5 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_le(set.$size(), self.$size()))) { - return false}; - return $send(self, 'all?', [], ($$46 = function(o){var self = $$46.$$s == null ? this : $$46.$$s; - + return false + }; + return $send(self, 'all?', [], function $$33(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$46.$$s = self, $$46.$$arity = 1, $$46)); - }, $Set_proper_subset$ques$45.$$arity = 1); - $alias(self, "<", "proper_subset?"); + if (o == null) o = nil;; + return set['$include?'](o);}, 1); + }, 1); - Opal.def(self, '$intersect?', $Set_intersect$ques$47 = function(set) { - var $$48, $$49, self = this; + $def(self, '$intersect?', function $Set_intersect$ques$34(set) { + var self = this; - if ($truthy(set['$is_a?']($$($nesting, 'Set')))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(self.$size(), set.$size()))) { - return $send(self, 'any?', [], ($$48 = function(o){var self = $$48.$$s == null ? this : $$48.$$s; - + return $send(self, 'any?', [], function $$35(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$48.$$s = self, $$48.$$arity = 1, $$48)) + if (o == null) o = nil;; + return set['$include?'](o);}, 1) } else { - return $send(set, 'any?', [], ($$49 = function(o){var self = $$49.$$s == null ? this : $$49.$$s; + return $send(set, 'any?', [], function $$36(o){var self = $$36.$$s == null ? this : $$36.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$49.$$s = self, $$49.$$arity = 1, $$49)) + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}) }; - }, $Set_intersect$ques$47.$$arity = 1); + }, 1); - Opal.def(self, '$disjoint?', $Set_disjoint$ques$50 = function(set) { + $def(self, '$disjoint?', function $Set_disjoint$ques$37(set) { var self = this; return self['$intersect?'](set)['$!']() - }, $Set_disjoint$ques$50.$$arity = 1); - $alias(self, "+", "|"); - $alias(self, "union", "|"); - return (Opal.def(self, '$to_a', $Set_to_a$51 = function $$to_a() { + }, 1); + + $def(self, '$to_a', function $$to_a() { var self = this; return self.hash.$keys() - }, $Set_to_a$51.$$arity = 0), nil) && 'to_a'; - })($nesting[0], null, $nesting); + }, 0); + $alias(self, "+", "|"); + $alias(self, "<", "proper_subset?"); + $alias(self, "<<", "add"); + $alias(self, "<=", "subset?"); + $alias(self, ">", "proper_superset?"); + $alias(self, ">=", "superset?"); + $alias(self, "difference", "-"); + $alias(self, "filter!", "select!"); + $alias(self, "length", "size"); + $alias(self, "map!", "collect!"); + $alias(self, "member?", "include?"); + return $alias(self, "union", "|"); + })('::', null); return (function($base, $parent_nesting) { var self = $module($base, 'Enumerable'); - var $nesting = [self].concat($parent_nesting), $Enumerable_to_set$52; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_set', $Enumerable_to_set$52 = function $$to_set($a, $b) { - var $iter = $Enumerable_to_set$52.$$p, block = $iter || nil, $post_args, klass, args, self = this; + return $def(self, '$to_set', function $$to_set($a, $b) { + var block = $$to_set.$$p || nil, $post_args, klass, args, self = this; - if ($iter) $Enumerable_to_set$52.$$p = null; + delete $$to_set.$$p; + ; - if ($iter) $Enumerable_to_set$52.$$p = null;; + $post_args = Opal.slice.call(arguments); - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - if ($post_args.length > 0) { - klass = $post_args[0]; - $post_args.splice(0, 1); - } - if (klass == null) { - klass = $$($nesting, 'Set'); - }; + if ($post_args.length > 0) klass = $post_args.shift(); + if (klass == null) klass = $$('Set');; args = $post_args;; - return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()); - }, $Enumerable_to_set$52.$$arity = -1), nil) && 'to_set' - })($nesting[0], $nesting); + return $send(klass, 'new', [self].concat($to_a(args)), block.$to_proc()); + }, -1) + })('::', $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/config"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $lambda = Opal.lambda; +Opal.modules["opal/config"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $truthy = Opal.truthy, $hash2 = Opal.hash2, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $eqeqeq = Opal.eqeqeq, $lambda = Opal.lambda; - Opal.add_stubs(['$require', '$extend', '$private', '$fetch', '$[]=', '$config_options', '$-', '$define_singleton_method', '$config', '$any?', '$===', '$raise', '$inspect', '$public', '$each', '$call', '$default_config', '$config_option', '$new']); + Opal.add_stubs('require,extend,private,fetch,[]=,config_options,-,define_singleton_method,config,any?,===,raise,inspect,public,each,call,default_config,config_option,new'); self.$require("set"); return (function($base, $parent_nesting) { @@ -1821,158 +1588,126 @@ Opal.modules["opal/config"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Config'); - var $nesting = [self].concat($parent_nesting), $Config_config_options$1, $Config_config_option$2, $Config_default_config$6, $Config_compiler_options$8, $Config_config$10, $Config_reset$excl$11, $Config$12; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$extend(self); self.$private(); - Opal.def(self, '$config_options', $Config_config_options$1 = function $$config_options() { + $def(self, '$config_options', function $$config_options() { var self = this, $ret_or_1 = nil; if (self.config_options == null) self.config_options = nil; - return (self.config_options = (function() {if ($truthy(($ret_or_1 = self.config_options))) { - return $ret_or_1 - } else { - return $hash2([], {}) - }; return nil; })()) - }, $Config_config_options$1.$$arity = 0); + return (self.config_options = ($truthy(($ret_or_1 = self.config_options)) ? ($ret_or_1) : ($hash2([], {})))) + }, 0); - Opal.def(self, '$config_option', $Config_config_option$2 = function $$config_option(name, default_value, options) { - var $$3, $$4, self = this, compiler = nil, valid_values = nil, $writer = nil; + $def(self, '$config_option', function $$config_option(name, default_value, options) { + var self = this, compiler = nil, valid_values = nil, $writer = nil; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; compiler = options.$fetch("compiler_option", nil); valid_values = options.$fetch("valid_values", [true, false]); $writer = [name, $hash2(["default", "compiler"], {"default": default_value, "compiler": compiler})]; - $send(self.$config_options(), '[]=', Opal.to_a($writer)); + $send(self.$config_options(), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $send(self, 'define_singleton_method', [name], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; + $send(self, 'define_singleton_method', [name], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$config().$fetch(name, default_value)}, $$3.$$s = self, $$3.$$arity = 0, $$3)); - return $send(self, 'define_singleton_method', ["" + (name) + "="], ($$4 = function(value){var self = $$4.$$s == null ? this : $$4.$$s, $$5; + return self.$config().$fetch(name, default_value)}, {$$arity: 0, $$s: self}); + return $send(self, 'define_singleton_method', ["" + (name) + "="], function $$2(value){var self = $$2.$$s == null ? this : $$2.$$s; - if (value == null) { - value = nil; - }; - if ($truthy($send(valid_values, 'any?', [], ($$5 = function(valid_value){var self = $$5.$$s == null ? this : $$5.$$s; - + if (value == null) value = nil;; + if (!$truthy($send(valid_values, 'any?', [], function $$3(valid_value){ - if (valid_value == null) { - valid_value = nil; - }; - return valid_value['$==='](value);}, $$5.$$s = self, $$5.$$arity = 1, $$5)))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + ("" + "Not a valid value for option " + (self) + "." + (name) + ", provided " + (value.$inspect()) + ". ") + ("" + "Must be " + (valid_values.$inspect()) + " === " + (value.$inspect()))) + if (valid_value == null) valid_value = nil;; + return valid_value['$==='](value);}, 1))) { + self.$raise($$('ArgumentError'), "" + ("Not a valid value for option " + (self) + "." + (name) + ", provided " + (value.$inspect()) + ". ") + ("Must be " + (valid_values.$inspect()) + " === " + (value.$inspect()))) }; $writer = [name, value]; - $send(self.$config(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$4.$$s = self, $$4.$$arity = 1, $$4)); - }, $Config_config_option$2.$$arity = -3); + $send(self.$config(), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + }, -3); self.$public(); - Opal.def(self, '$default_config', $Config_default_config$6 = function $$default_config() { - var $$7, self = this, default_config = nil; + $def(self, '$default_config', function $$default_config() { + var self = this, default_config = nil; default_config = $hash2([], {}); - $send(self.$config_options(), 'each', [], ($$7 = function(name, options){var self = $$7.$$s == null ? this : $$7.$$s, default_value = nil, $writer = nil; + $send(self.$config_options(), 'each', [], function $$4(name, options){var default_value = nil, $writer = nil; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (options == null) { - options = nil; - }; + if (options == null) options = nil;; default_value = options.$fetch("default"); - default_value = (function() {if ($truthy($$($nesting, 'Proc')['$==='](default_value))) { - return default_value.$call() - } else { - return default_value - }; return nil; })(); + default_value = ($eqeqeq($$('Proc'), default_value) ? (default_value.$call()) : (default_value)); $writer = [name, default_value]; - $send(default_config, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$7.$$s = self, $$7.$$arity = 2, $$7)); + $send(default_config, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, 2); return default_config; - }, $Config_default_config$6.$$arity = 0); + }, 0); - Opal.def(self, '$compiler_options', $Config_compiler_options$8 = function $$compiler_options() { - var $$9, self = this, compiler_options = nil; + $def(self, '$compiler_options', function $$compiler_options() { + var self = this, compiler_options = nil; compiler_options = $hash2([], {}); - $send(self.$config_options(), 'each', [], ($$9 = function(name, options){var self = $$9.$$s == null ? this : $$9.$$s, compiler_option_name = nil, $writer = nil; + $send(self.$config_options(), 'each', [], function $$5(name, options){var self = $$5.$$s == null ? this : $$5.$$s, compiler_option_name = nil, $writer = nil; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (options == null) { - options = nil; - }; + if (options == null) options = nil;; compiler_option_name = options.$fetch("compiler"); $writer = [compiler_option_name, self.$config().$fetch(name)]; - $send(compiler_options, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$9.$$s = self, $$9.$$arity = 2, $$9)); + $send(compiler_options, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 2, $$s: self}); return compiler_options; - }, $Config_compiler_options$8.$$arity = 0); + }, 0); - Opal.def(self, '$config', $Config_config$10 = function $$config() { - var self = this, $ret_or_2 = nil; + $def(self, '$config', function $$config() { + var self = this, $ret_or_1 = nil; if (self.config == null) self.config = nil; - return (self.config = (function() {if ($truthy(($ret_or_2 = self.config))) { - return $ret_or_2 - } else { - return self.$default_config() - }; return nil; })()) - }, $Config_config$10.$$arity = 0); + return (self.config = ($truthy(($ret_or_1 = self.config)) ? ($ret_or_1) : (self.$default_config()))) + }, 0); - Opal.def(self, '$reset!', $Config_reset$excl$11 = function() { + $def(self, '$reset!', function $Config_reset$excl$6() { var self = this; return (self.config = nil) - }, $Config_reset$excl$11.$$arity = 0); + }, 0); self.$config_option("method_missing_enabled", true, $hash2(["compiler_option"], {"compiler_option": "method_missing"})); self.$config_option("const_missing_enabled", true, $hash2(["compiler_option"], {"compiler_option": "const_missing"})); self.$config_option("arity_check_enabled", false, $hash2(["compiler_option"], {"compiler_option": "arity_check"})); self.$config_option("freezing_stubs_enabled", true, $hash2(["compiler_option"], {"compiler_option": "freezing"})); + self.$config_option("esm", false, $hash2(["compiler_option"], {"compiler_option": "esm"})); self.$config_option("dynamic_require_severity", "warning", $hash2(["compiler_option", "valid_values"], {"compiler_option": "dynamic_require_severity", "valid_values": ["error", "warning", "ignore"]})); self.$config_option("missing_require_severity", "error", $hash2(["valid_values"], {"valid_values": ["error", "warning", "ignore"]})); self.$config_option("irb_enabled", false, $hash2(["compiler_option"], {"compiler_option": "irb"})); self.$config_option("inline_operators_enabled", true, $hash2(["compiler_option"], {"compiler_option": "inline_operators"})); self.$config_option("source_map_enabled", true); - return self.$config_option("stubbed_files", $lambda(($Config$12 = function(){var self = $Config$12.$$s == null ? this : $Config$12.$$s; - - return $$($nesting, 'Set').$new()}, $Config$12.$$s = self, $Config$12.$$arity = 0, $Config$12)), $hash2(["valid_values"], {"valid_values": [$$($nesting, 'Set')]})); + return self.$config_option("stubbed_files", $lambda(function $Config$7(){ + return $$('Set').$new()}, 0), $hash2(["valid_values"], {"valid_values": [$$('Set')]})); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/cache"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $range = Opal.range; +Opal.modules["opal/cache"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $truthy = Opal.truthy, $not = Opal.not, $eqeq = Opal.eqeq, $defs = Opal.defs, $klass = Opal.klass, $def = Opal.def, $send = Opal.send, $rb_plus = Opal.rb_plus, $gvars = Opal.gvars, $range = Opal.range; - Opal.add_stubs(['$require', '$attr_writer', '$singleton_class', '$==', '$[]', '$!', '$find_dir', '$new', '$module_function', '$respond_to?', '$fetch', '$to_proc', '$+', '$digest', '$join', '$runtime_key', '$get', '$set', '$expand_path', '$gem_dir', '$grep', '$map', '$sort', '$size', '$to_f', '$mtime', '$to_s', '$to_i', '$hexdigest']); + Opal.add_stubs('require,attr_writer,singleton_class,!,find_dir,[],==,new,module_function,respond_to?,fetch,to_proc,+,digest,join,runtime_key,get,dynamic_cache_result,set,expand_path,gem_dir,grep,map,sort,size,to_f,mtime,to_s,to_i,hexdigest'); self.$require("opal/paths"); nil; @@ -1980,114 +1715,86 @@ Opal.modules["opal/cache"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting), $Opal_cache$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$singleton_class().$attr_writer("cache"); - Opal.defs(self, '$cache', $Opal_cache$1 = function $$cache() { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $defs(self, '$cache', function $$cache() { + var self = this, $ret_or_1 = nil; if (self.cache == null) self.cache = nil; - return (self.cache = (function() {if ($truthy(($ret_or_1 = self.cache))) { - return $ret_or_1 - } else if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$($nesting, 'RUBY_ENGINE')['$==']("opal")))) { - return $ret_or_3 - } else { - return $$($nesting, 'ENV')['$[]']("OPAL_CACHE_DISABLE") - }; return nil; })()))) { - return $ret_or_2 - } else { - return $$$($$($nesting, 'Cache'), 'FileCache').$find_dir()['$!']() - }; return nil; })())) { - return $$$($$($nesting, 'Cache'), 'NullCache').$new() - } else { - return $$$($$($nesting, 'Cache'), 'FileCache').$new() - }; return nil; })()) - }, $Opal_cache$1.$$arity = 0); + return (self.cache = ($truthy(($ret_or_1 = self.cache)) ? ($ret_or_1) : ((($eqeq($$('RUBY_ENGINE'), "opal") || ($truthy($$('ENV')['$[]']("OPAL_CACHE_DISABLE")))) || ($not($$$($$('Cache'), 'FileCache').$find_dir()))) ? ($$$($$('Cache'), 'NullCache').$new()) : ($$$($$('Cache'), 'FileCache').$new())))) + }, 0); return (function($base, $parent_nesting) { var self = $module($base, 'Cache'); - var $nesting = [self].concat($parent_nesting), $Cache_fetch$3, $Cache_runtime_key$4, $Cache_digest$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'NullCache'); - var $nesting = [self].concat($parent_nesting), $NullCache_fetch$2; - - return (Opal.def(self, '$fetch', $NullCache_fetch$2 = function $$fetch($a) { - var $post_args, $iter = $NullCache_fetch$2.$$p, $yield = $iter || nil, self = this; + + return $def(self, '$fetch', function $$fetch($a) { + var $post_args, $rest_arg, $yield = $$fetch.$$p || nil; - if ($iter) $NullCache_fetch$2.$$p = null; + delete $$fetch.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return Opal.yieldX($yield, []);; - }, $NullCache_fetch$2.$$arity = -1), nil) && 'fetch' - })($nesting[0], null, $nesting); + }, -1) + })($nesting[0], null); self.$module_function(); - Opal.def(self, '$fetch', $Cache_fetch$3 = function $$fetch(cache, key) { - var $iter = $Cache_fetch$3.$$p, block = $iter || nil, self = this, data = nil, $ret_or_4 = nil, compiler = nil; + $def(self, '$fetch', function $$fetch(cache, key) { + var block = $$fetch.$$p || nil, self = this, data = nil, $ret_or_1 = nil, compiler = nil; - if ($iter) $Cache_fetch$3.$$p = null; + delete $$fetch.$$p; - - if ($iter) $Cache_fetch$3.$$p = null;; + ; if ($truthy(cache['$respond_to?']("fetch"))) { - return $send(cache, 'fetch', [key], block.$to_proc())}; + return $send(cache, 'fetch', [key], block.$to_proc()) + }; key = $rb_plus($rb_plus(self.$digest(key.$join("/")), "-"), self.$runtime_key()); data = cache.$get(key); - if ($truthy(($ret_or_4 = data))) { - return $ret_or_4 + if ($truthy(($ret_or_1 = data))) { + return $ret_or_1 } else { compiler = Opal.yieldX(block, []); - cache.$set(key, compiler); + if (!$truthy(compiler.$dynamic_cache_result())) { + cache.$set(key, compiler) + }; return compiler; }; - }, $Cache_fetch$3.$$arity = 2); + }, 2); - Opal.def(self, '$runtime_key', $Cache_runtime_key$4 = function $$runtime_key() { - var $$5, self = this, $ret_or_5 = nil, opal_path = nil, files = nil; + $def(self, '$runtime_key', function $$runtime_key() { + var self = this, $ret_or_1 = nil, opal_path = nil, files = nil; if (self.runtime_key == null) self.runtime_key = nil; if ($gvars.LOADED_FEATURES == null) $gvars.LOADED_FEATURES = nil; - return (self.runtime_key = (function() {if ($truthy(($ret_or_5 = self.runtime_key))) { - return $ret_or_5 - } else { + return (self.runtime_key = ($truthy(($ret_or_1 = self.runtime_key)) ? ($ret_or_1) : (((opal_path = $$('File').$expand_path("..", $$('Opal').$gem_dir())), (files = $$('Dir')['$[]']("" + (opal_path) + "/{Gemfile*,*.gemspec,lib/**/*}")), (files = $rb_plus(files, $gvars.LOADED_FEATURES.$grep(/lib\/(parser|ast)/))), self.$digest([$send(files.$sort(), 'map', [], function $$1(f){ - opal_path = $$($nesting, 'File').$expand_path("..", $$($nesting, 'Opal').$gem_dir()); - files = $$($nesting, 'Dir')['$[]']("" + (opal_path) + "/{Gemfile*,*.gemspec,lib/**/*}"); - files = $rb_plus(files, $gvars.LOADED_FEATURES.$grep(/lib\/(parser|ast)/)); - return self.$digest([$send(files.$sort(), 'map', [], ($$5 = function(f){var self = $$5.$$s == null ? this : $$5.$$s; - - - - if (f == null) { - f = nil; - }; - return "" + (f) + ":" + ($$($nesting, 'File').$size(f)) + ":" + ($$($nesting, 'File').$mtime(f).$to_f());}, $$5.$$s = self, $$5.$$arity = 1, $$5)), $$($nesting, 'RUBY_VERSION'), $$($nesting, 'RUBY_PATCHLEVEL')].$join("/")); - }; return nil; })()) - }, $Cache_runtime_key$4.$$arity = 0); - return (Opal.def(self, '$digest', $Cache_digest$6 = function $$digest(string) { - var self = this; - - return $$$($$$('::', 'Digest'), 'SHA256').$hexdigest(string)['$[]']($range(-32, -1, false)).$to_i(16).$to_s(36) - }, $Cache_digest$6.$$arity = 1), nil) && 'digest'; + + if (f == null) f = nil;; + return "" + (f) + ":" + ($$('File').$size(f)) + ":" + ($$('File').$mtime(f).$to_f());}, 1), $$('RUBY_VERSION'), $$('RUBY_PATCHLEVEL')].$join("/")))))) + }, 0); + return $def(self, '$digest', function $$digest(string) { + + return $$$($$$('Digest'), 'SHA256').$hexdigest(string)['$[]']($range(-32, -1, false)).$to_i(16).$to_s(36) + }, 1); })($nesting[0], $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/builder"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $lambda = Opal.lambda; +Opal.modules["opal/builder"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $defs = Opal.defs, $send = Opal.send, $hash2 = Opal.hash2, $Opal = Opal.Opal, $def = Opal.def, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $send2 = Opal.send2, $find_super = Opal.find_super, $not = Opal.not, $lambda = Opal.lambda, $eqeqeq = Opal.eqeqeq; - Opal.add_stubs(['$require', '$include?', '$processors', '$<<', '$each', '$extensions', '$each_pair', '$public_send', '$new', '$paths', '$flatten', '$map', '$compiler_options', '$missing_require_severity', '$cache', '$build', '$to_proc', '$build_str', '$source_for', '$read', '$nil?', '$expand_path', '$expand_ext', '$processor_for', '$+', '$preload', '$requires', '$tree_requires', '$process_require', '$processed', '$raise', '$inspect', '$message', '$backtrace', '$dup', '$stubs', '$path_reader', '$prerequired', '$to_sym', '$join', '$append_paths', '$include', '$attr_reader', '$attr_accessor', '$private', '$empty?', '$to_s', '$pwd', '$dirname', '$Pathname', '$flat_map', '$required_trees', '$find', '$start_with?', '$glob', '$relative_path_from', '$match?', '$merge', '$[]', '$===', '$warn', '$already_processed', '$stub?', '$process_requires', '$expand', '$basename']); + Opal.add_stubs('require,include?,processors,<<,each,extensions,each_pair,public_send,new,paths,flatten,map,compiler_options,missing_require_severity,cache,build,to_proc,build_str,source_for,read,nil?,expand_path,expand_ext,processor_for,+,preload,requires,tree_requires,process_require,autoloads,processed,raise,inspect,message,backtrace,dup,stubs,path_reader,prerequired,to_sym,join,append_paths,include,attr_reader,attr_accessor,private,empty?,to_s,pwd,dirname,Pathname,flat_map,required_trees,find,start_with?,glob,relative_path_from,match?,!,merge,[],===,warn,already_processed,stub?,process_requires,expand,basename'); self.$require("opal/path_reader"); self.$require("opal/paths"); @@ -2102,221 +1809,143 @@ Opal.modules["opal/builder"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Builder'); - var $nesting = [self].concat($parent_nesting), $Builder_processors$1, $Builder_extensions$2, $Builder_register_processor$3, $Builder_initialize$5, $Builder_build$8, $Builder_build$9, $Builder_source_for$10, $Builder_build_str$11, $Builder_build_require$13, $Builder_initialize_copy$14, $Builder_to_s$15, $Builder_source_map$16, $Builder_append_paths$17, $Builder_tree_requires$18, $Builder_processor_for$23, $Builder_read$25, $Builder_process_require$27, $Builder_expand_ext$28, $Builder_expand_path$29, $Builder_process_requires$30, $Builder_already_processed$32, $Builder_stub$ques$33, $Builder_extensions$34; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.stubs = self.$$prototype.preload = self.$$prototype.processors = self.$$prototype.path_reader = self.$$prototype.prerequired = self.$$prototype.compiler_options = self.$$prototype.missing_require_severity = self.$$prototype.cache = self.$$prototype.already_processed = nil; + $proto.stubs = $proto.preload = $proto.processors = $proto.path_reader = $proto.prerequired = $proto.compiler_options = $proto.missing_require_severity = $proto.cache = $proto.already_processed = nil; - Opal.defs(self, '$processors', $Builder_processors$1 = function $$processors() { + $defs(self, '$processors', function $$processors() { var self = this, $ret_or_1 = nil; if (self.processors == null) self.processors = nil; - return (self.processors = (function() {if ($truthy(($ret_or_1 = self.processors))) { - return $ret_or_1 - } else { - return [] - }; return nil; })()) - }, $Builder_processors$1.$$arity = 0); - Opal.defs(self, '$extensions', $Builder_extensions$2 = function $$extensions() { - var self = this, $ret_or_2 = nil; + return (self.processors = ($truthy(($ret_or_1 = self.processors)) ? ($ret_or_1) : ([]))) + }, 0); + $defs(self, '$extensions', function $$extensions() { + var self = this, $ret_or_1 = nil; if (self.extensions == null) self.extensions = nil; - return (self.extensions = (function() {if ($truthy(($ret_or_2 = self.extensions))) { - return $ret_or_2 - } else { - return [] - }; return nil; })()) - }, $Builder_extensions$2.$$arity = 0); - Opal.defs(self, '$register_processor', $Builder_register_processor$3 = function $$register_processor(processor, processor_extensions) { - var $$4, self = this; + return (self.extensions = ($truthy(($ret_or_1 = self.extensions)) ? ($ret_or_1) : ([]))) + }, 0); + $defs(self, '$register_processor', function $$register_processor(processor, processor_extensions) { + var self = this; if ($truthy(self.$processors()['$include?'](processor))) { - return nil}; + return nil + }; self.$processors()['$<<'](processor); - return $send(processor_extensions, 'each', [], ($$4 = function(ext){var self = $$4.$$s == null ? this : $$4.$$s; + return $send(processor_extensions, 'each', [], function $$1(ext){var self = $$1.$$s == null ? this : $$1.$$s; - if (ext == null) { - ext = nil; - }; - return self.$extensions()['$<<'](ext);}, $$4.$$s = self, $$4.$$arity = 1, $$4)); - }, $Builder_register_processor$3.$$arity = 2); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'MissingRequire'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'LoadError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ProcessorNotFound'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'LoadError'), $nesting); + if (ext == null) ext = nil;; + return self.$extensions()['$<<'](ext);}, {$$arity: 1, $$s: self}); + }, 2); + $klass($nesting[0], $$('LoadError'), 'MissingRequire'); + $klass($nesting[0], $$('LoadError'), 'ProcessorNotFound'); - Opal.def(self, '$initialize', $Builder_initialize$5 = function $$initialize(options) { - var $$6, $$7, self = this, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil; + $def(self, '$initialize', function $$initialize(options) { + var self = this, $ret_or_1 = nil; - if (options == null) { - options = nil; - }; - $send((function() {if ($truthy(($ret_or_3 = options))) { - return $ret_or_3 - } else { - return $hash2([], {}) - }; return nil; })(), 'each_pair', [], ($$6 = function(k, v){var self = $$6.$$s == null ? this : $$6.$$s; + if (options == null) options = nil;; + $send(($truthy(($ret_or_1 = options)) ? ($ret_or_1) : ($hash2([], {}))), 'each_pair', [], function $$2(k, v){var self = $$2.$$s == null ? this : $$2.$$s; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; - if (v == null) { - v = nil; - }; - return self.$public_send("" + (k) + "=", v);}, $$6.$$s = self, $$6.$$arity = 2, $$6)); - self.stubs = (function() {if ($truthy(($ret_or_4 = self.stubs))) { - return $ret_or_4 - } else { - return [] - }; return nil; })(); - self.preload = (function() {if ($truthy(($ret_or_5 = self.preload))) { - return $ret_or_5 - } else { - return [] - }; return nil; })(); - self.processors = (function() {if ($truthy(($ret_or_6 = self.processors))) { - return $ret_or_6 - } else { - return $$$($$$('::', 'Opal'), 'Builder').$processors() - }; return nil; })(); - self.path_reader = (function() {if ($truthy(($ret_or_7 = self.path_reader))) { - return $ret_or_7 - } else { - return $$($nesting, 'PathReader').$new($$($nesting, 'Opal').$paths(), $send(self.$extensions(), 'map', [], ($$7 = function(e){var self = $$7.$$s == null ? this : $$7.$$s; - - - - if (e == null) { - e = nil; - }; - return ["" + "." + (e), "" + ".js." + (e)];}, $$7.$$s = self, $$7.$$arity = 1, $$7)).$flatten()) - }; return nil; })(); - self.prerequired = (function() {if ($truthy(($ret_or_8 = self.prerequired))) { - return $ret_or_8 - } else { - return [] - }; return nil; })(); - self.compiler_options = (function() {if ($truthy(($ret_or_9 = self.compiler_options))) { - return $ret_or_9 - } else { - return $$$($$($nesting, 'Opal'), 'Config').$compiler_options() - }; return nil; })(); - self.missing_require_severity = (function() {if ($truthy(($ret_or_10 = self.missing_require_severity))) { - return $ret_or_10 - } else { - return $$$($$($nesting, 'Opal'), 'Config').$missing_require_severity() - }; return nil; })(); - self.cache = (function() {if ($truthy(($ret_or_11 = self.cache))) { - return $ret_or_11 - } else { - return $$($nesting, 'Opal').$cache() - }; return nil; })(); + if (v == null) v = nil;; + return self.$public_send("" + (k) + "=", v);}, {$$arity: 2, $$s: self}); + self.stubs = ($truthy(($ret_or_1 = self.stubs)) ? ($ret_or_1) : ([])); + self.preload = ($truthy(($ret_or_1 = self.preload)) ? ($ret_or_1) : ([])); + self.processors = ($truthy(($ret_or_1 = self.processors)) ? ($ret_or_1) : ($$$($Opal, 'Builder').$processors())); + self.path_reader = ($truthy(($ret_or_1 = self.path_reader)) ? ($ret_or_1) : ($$('PathReader').$new($$('Opal').$paths(), $send(self.$extensions(), 'map', [], function $$3(e){ + + + if (e == null) e = nil;; + return ["." + (e), ".js." + (e)];}, 1).$flatten()))); + self.prerequired = ($truthy(($ret_or_1 = self.prerequired)) ? ($ret_or_1) : ([])); + self.compiler_options = ($truthy(($ret_or_1 = self.compiler_options)) ? ($ret_or_1) : ($$$($$('Opal'), 'Config').$compiler_options())); + self.missing_require_severity = ($truthy(($ret_or_1 = self.missing_require_severity)) ? ($ret_or_1) : ($$$($$('Opal'), 'Config').$missing_require_severity())); + self.cache = ($truthy(($ret_or_1 = self.cache)) ? ($ret_or_1) : ($$('Opal').$cache())); return (self.processed = []); - }, $Builder_initialize$5.$$arity = -1); - Opal.defs(self, '$build', $Builder_build$8 = function $$build($a) { - var $iter = $Builder_build$8.$$p, block = $iter || nil, $post_args, args, self = this; + }, -1); + $defs(self, '$build', function $$build($a) { + var block = $$build.$$p || nil, $post_args, args, self = this; - if ($iter) $Builder_build$8.$$p = null; + delete $$build.$$p; + ; - if ($iter) $Builder_build$8.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self.$new(), 'build', Opal.to_a(args), block.$to_proc()); - }, $Builder_build$8.$$arity = -1); + return $send(self.$new(), 'build', $to_a(args), block.$to_proc()); + }, -1); - Opal.def(self, '$build', $Builder_build$9 = function $$build(path, options) { + $def(self, '$build', function $$build(path, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; return self.$build_str(self.$source_for(path), path, options); - }, $Builder_build$9.$$arity = -2); + }, -2); - Opal.def(self, '$source_for', $Builder_source_for$10 = function $$source_for(path) { + $def(self, '$source_for', function $$source_for(path) { var self = this; - return self.$read(path) - }, $Builder_source_for$10.$$arity = 1); + return self.$read(path, false) + }, 1); - Opal.def(self, '$build_str', $Builder_build_str$11 = function $$build_str(source, rel_path, options) { - var $$12, self = this, abs_path = nil, asset = nil, requires = nil, error = nil; + $def(self, '$build_str', function $$build_str(source, rel_path, options) { + var self = this, abs_path = nil, asset = nil, requires = nil, error = nil; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; try { if ($truthy(source['$nil?']())) { - return nil}; + return nil + }; abs_path = self.$expand_path(rel_path); rel_path = self.$expand_ext(rel_path); - asset = self.$processor_for(source, rel_path, abs_path, options); + asset = self.$processor_for(source, rel_path, abs_path, false, options); requires = $rb_plus($rb_plus(self.$preload(), asset.$requires()), self.$tree_requires(asset, abs_path)); - $send(requires, 'map', [], ($$12 = function(r){var self = $$12.$$s == null ? this : $$12.$$s; + $send(requires, 'map', [], function $$4(r){var self = $$4.$$s == null ? this : $$4.$$s; - if (r == null) { - r = nil; - }; - return self.$process_require(r, options);}, $$12.$$s = self, $$12.$$arity = 1, $$12)); + if (r == null) r = nil;; + return self.$process_require(r, asset.$autoloads(), options);}, {$$arity: 1, $$s: self}); self.$processed()['$<<'](asset); return self; } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'MissingRequire')])) {(error = $err) + if (Opal.rescue($err, [$$('MissingRequire')])) {(error = $err) try { - return self.$raise(error, "" + "A file required by " + (rel_path.$inspect()) + " wasn't found.\n" + (error.$message()), error.$backtrace()) + return self.$raise(error, "A file required by " + (rel_path.$inspect()) + " wasn't found.\n" + (error.$message()), error.$backtrace()) } finally { Opal.pop_exception(); } } else { throw $err; } }; - }, $Builder_build_str$11.$$arity = -3); + }, -3); - Opal.def(self, '$build_require', $Builder_build_require$13 = function $$build_require(path, options) { + $def(self, '$build_require', function $$build_require(path, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; - return self.$process_require(path, options); - }, $Builder_build_require$13.$$arity = -2); + if (options == null) options = $hash2([], {});; + return self.$process_require(path, [], options); + }, -2); - Opal.def(self, '$initialize_copy', $Builder_initialize_copy$14 = function $$initialize_copy(other) { - var $iter = $Builder_initialize_copy$14.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize_copy', function $$initialize_copy(other) { + var $yield = $$initialize_copy.$$p || nil, self = this; - if ($iter) $Builder_initialize_copy$14.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize_copy.$$p; - $send2(self, $find_super(self, 'initialize_copy', $Builder_initialize_copy$14, false, true), 'initialize_copy', $zuper, $iter); + $send2(self, $find_super(self, 'initialize_copy', $$initialize_copy, false, true), 'initialize_copy', [other], $yield); self.stubs = other.$stubs().$dup(); self.preload = other.$preload().$dup(); self.processors = other.$processors().$dup(); @@ -2325,233 +1954,199 @@ Opal.modules["opal/builder"] = function(Opal) { self.compiler_options = other.$compiler_options().$dup(); self.missing_require_severity = other.$missing_require_severity().$to_sym(); return (self.processed = other.$processed().$dup()); - }, $Builder_initialize_copy$14.$$arity = 1); + }, 1); - Opal.def(self, '$to_s', $Builder_to_s$15 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return $send(self.$processed(), 'map', [], "to_s".$to_proc()).$join("\n") - }, $Builder_to_s$15.$$arity = 0); + }, 0); - Opal.def(self, '$source_map', $Builder_source_map$16 = function $$source_map() { + $def(self, '$source_map', function $$source_map() { var self = this; - return $$$($$$($$$('::', 'Opal'), 'SourceMap'), 'Index').$new($send(self.$processed(), 'map', [], "source_map".$to_proc()), $hash2(["join"], {"join": "\n"})) - }, $Builder_source_map$16.$$arity = 0); + return $$$($$$($Opal, 'SourceMap'), 'Index').$new($send(self.$processed(), 'map', [], "source_map".$to_proc()), $hash2(["join"], {"join": "\n"})) + }, 0); - Opal.def(self, '$append_paths', $Builder_append_paths$17 = function $$append_paths($a) { + $def(self, '$append_paths', function $$append_paths($a) { var $post_args, paths, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); paths = $post_args;; - return $send(self.$path_reader(), 'append_paths', Opal.to_a(paths)); - }, $Builder_append_paths$17.$$arity = -1); - self.$include($$($nesting, 'UseGem')); + return $send(self.$path_reader(), 'append_paths', $to_a(paths)); + }, -1); + self.$include($$('UseGem')); self.$attr_reader("processed"); self.$attr_accessor("processors", "path_reader", "stubs", "prerequired", "preload", "compiler_options", "missing_require_severity", "cache"); self.$private(); - Opal.def(self, '$tree_requires', $Builder_tree_requires$18 = function $$tree_requires(asset, asset_path) { - var $$19, $$20, self = this, dirname = nil, abs_base_paths = nil; + $def(self, '$tree_requires', function $$tree_requires(asset, asset_path) { + var self = this, dirname = nil, abs_base_paths = nil; - dirname = (function() {if ($truthy(asset_path.$to_s()['$empty?']())) { - return $$($nesting, 'Pathname').$pwd() - } else { - return self.$Pathname(asset_path).$expand_path().$dirname() - }; return nil; })(); - abs_base_paths = $send(self.$path_reader().$paths(), 'map', [], ($$19 = function(p){var self = $$19.$$s == null ? this : $$19.$$s; - + dirname = ($truthy(asset_path.$to_s()['$empty?']()) ? ($$('Pathname').$pwd()) : (self.$Pathname(asset_path).$expand_path().$dirname())); + abs_base_paths = $send(self.$path_reader().$paths(), 'map', [], function $$5(p){ - if (p == null) { - p = nil; - }; - return $$($nesting, 'File').$expand_path(p);}, $$19.$$s = self, $$19.$$arity = 1, $$19)); - return $send(asset.$required_trees(), 'flat_map', [], ($$20 = function(tree){var self = $$20.$$s == null ? this : $$20.$$s, $$21, $$22, abs_tree_path = nil, abs_base_path = nil, entries_glob = nil; + if (p == null) p = nil;; + return $$('File').$expand_path(p);}, 1); + return $send(asset.$required_trees(), 'flat_map', [], function $$6(tree){var self = $$6.$$s == null ? this : $$6.$$s, abs_tree_path = nil, abs_base_path = nil, entries_glob = nil; - if (tree == null) { - tree = nil; - }; + if (tree == null) tree = nil;; abs_tree_path = dirname.$join(tree).$expand_path().$to_s(); - abs_base_path = $send(abs_base_paths, 'find', [], ($$21 = function(p){var self = $$21.$$s == null ? this : $$21.$$s; - + abs_base_path = $send(abs_base_paths, 'find', [], function $$7(p){ - if (p == null) { - p = nil; - }; - return abs_tree_path['$start_with?'](p);}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + if (p == null) p = nil;; + return abs_tree_path['$start_with?'](p);}, 1); if ($truthy(abs_base_path)) { abs_base_path = self.$Pathname(abs_base_path); - entries_glob = self.$Pathname(abs_tree_path).$join("**", "" + "*{.js,}.{" + (self.$extensions().$join(",")) + "}"); - return $send($$($nesting, 'Pathname').$glob(entries_glob), 'map', [], ($$22 = function(file){var self = $$22.$$s == null ? this : $$22.$$s; - + entries_glob = self.$Pathname(abs_tree_path).$join("**", "*{.js,}.{" + (self.$extensions().$join(",")) + "}"); + return $send($$('Pathname').$glob(entries_glob), 'map', [], function $$8(file){ - if (file == null) { - file = nil; - }; - return file.$relative_path_from(abs_base_path).$to_s();}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + if (file == null) file = nil;; + return file.$relative_path_from(abs_base_path).$to_s();}, 1); } else { return [] - };}, $$20.$$s = self, $$20.$$arity = 1, $$20)); - }, $Builder_tree_requires$18.$$arity = 2); + };}, {$$arity: 1, $$s: self}); + }, 2); - Opal.def(self, '$processor_for', $Builder_processor_for$23 = function $$processor_for(source, rel_path, abs_path, options) { - var $$24, self = this, processor = nil, $ret_or_12 = nil; + $def(self, '$processor_for', function $$processor_for(source, rel_path, abs_path, autoload, options) { + var self = this, processor = nil; - processor = (function() {if ($truthy(($ret_or_12 = $send(self.$processors(), 'find', [], ($$24 = function(p){var self = $$24.$$s == null ? this : $$24.$$s; - + processor = $send(self.$processors(), 'find', [], function $$9(p){ - if (p == null) { - p = nil; - }; - return p['$match?'](abs_path);}, $$24.$$s = self, $$24.$$arity = 1, $$24))))) { - return $ret_or_12 - } else { - return self.$raise($$($nesting, 'ProcessorNotFound'), "" + "can't find processor for rel_path: " + ("" + (rel_path.$inspect()) + ", ") + ("" + "abs_path: " + (abs_path.$inspect()) + ", ") + ("" + "source: " + (source.$inspect()) + ", ") + ("" + "processors: " + (self.$processors().$inspect()))) - }; return nil; })(); + if (p == null) p = nil;; + return p['$match?'](abs_path);}, 1); + if (($not(processor) && ($not(autoload)))) { + self.$raise($$('ProcessorNotFound'), "can't find processor for rel_path: " + ("" + (rel_path.$inspect()) + ", ") + ("abs_path: " + (abs_path.$inspect()) + ", ") + ("source: " + (source.$inspect()) + ", ") + ("processors: " + (self.$processors().$inspect()))) + }; options = options.$merge($hash2(["cache"], {"cache": self.$cache()})); return processor.$new(source, rel_path, self.compiler_options.$merge(options)); - }, $Builder_processor_for$23.$$arity = 4); + }, 5); - Opal.def(self, '$read', $Builder_read$25 = function $$read(path) { - var $$26, self = this, $ret_or_13 = nil, print_list = nil, message = nil, $case = nil; + $def(self, '$read', function $$read(path, autoload) { + var self = this, $ret_or_1 = nil, print_list = nil, message = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_13 = self.$path_reader().$read(path)))) { - return $ret_or_13 + if ($truthy(($ret_or_1 = self.$path_reader().$read(path)))) { + return $ret_or_1 } else { - print_list = $lambda(($$26 = function(list){var self = $$26.$$s == null ? this : $$26.$$s; - + print_list = $lambda(function $$10(list){ - if (list == null) { - list = nil; - }; - return "" + "- " + (list.$join("\n- ")) + "\n";}, $$26.$$s = self, $$26.$$arity = 1, $$26)); - message = $rb_plus($rb_plus($rb_plus($rb_plus($rb_plus("" + "can't find file: " + (path.$inspect()) + " in:\n", print_list['$[]'](self.$path_reader().$paths())), "\nWith the following extensions:\n"), print_list['$[]'](self.$path_reader().$extensions())), "\nAnd the following processors:\n"), print_list['$[]'](self.$processors())); - $case = self.$missing_require_severity(); - if ("error"['$===']($case)) {self.$raise($$($nesting, 'MissingRequire'), message)} - else if ("warning"['$===']($case)) {self.$warn(message)} - else if ("ignore"['$===']($case)) {nil}; + if (list == null) list = nil;; + return "- " + (list.$join("\n- ")) + "\n";}, 1); + message = $rb_plus($rb_plus($rb_plus($rb_plus($rb_plus("can't find file: " + (path.$inspect()) + " in:\n", print_list['$[]'](self.$path_reader().$paths())), "\nWith the following extensions:\n"), print_list['$[]'](self.$path_reader().$extensions())), "\nAnd the following processors:\n"), print_list['$[]'](self.$processors())); + if (!$truthy(autoload)) { + if ($eqeqeq("error", ($ret_or_2 = self.$missing_require_severity()))) { + self.$raise($$('MissingRequire'), message) + } else if ($eqeqeq("warning", $ret_or_2)) { + self.$warn(message) + } else if (!$eqeqeq("ignore", $ret_or_2)) { + nil + } + }; return nil; } - }, $Builder_read$25.$$arity = 1); + }, 2); - Opal.def(self, '$process_require', $Builder_process_require$27 = function $$process_require(rel_path, options) { - var self = this, source = nil, abs_path = nil, asset = nil; + $def(self, '$process_require', function $$process_require(rel_path, autoloads, options) { + var self = this, autoload = nil, source = nil, abs_path = nil, asset = nil; if ($truthy(self.$prerequired()['$include?'](rel_path))) { - return nil}; + return nil + }; if ($truthy(self.$already_processed()['$include?'](rel_path))) { - return nil}; + return nil + }; self.$already_processed()['$<<'](rel_path); - source = (function() {if ($truthy(self['$stub?'](rel_path))) { - return "" - } else { - return self.$read(rel_path) - }; return nil; })(); + autoload = autoloads['$include?'](rel_path); + source = ($truthy(self['$stub?'](rel_path)) ? ("") : (self.$read(rel_path, autoload))); if ($truthy(source['$nil?']())) { - return nil}; + return nil + }; abs_path = self.$expand_path(rel_path); rel_path = self.$expand_ext(rel_path); - asset = self.$processor_for(source, rel_path, abs_path, options.$merge($hash2(["requirable"], {"requirable": true}))); - self.$process_requires(rel_path, $rb_plus(asset.$requires(), self.$tree_requires(asset, abs_path)), options); + asset = self.$processor_for(source, rel_path, abs_path, autoload, options.$merge($hash2(["requirable"], {"requirable": true}))); + self.$process_requires(rel_path, $rb_plus(asset.$requires(), self.$tree_requires(asset, abs_path)), asset.$autoloads(), options); return self.$processed()['$<<'](asset); - }, $Builder_process_require$27.$$arity = 2); + }, 3); - Opal.def(self, '$expand_ext', $Builder_expand_ext$28 = function $$expand_ext(path) { + $def(self, '$expand_ext', function $$expand_ext(path) { var self = this, abs_path = nil; abs_path = self.$path_reader().$expand(path); if ($truthy(abs_path)) { - return $$($nesting, 'File').$join($$($nesting, 'File').$dirname(path), $$($nesting, 'File').$basename(abs_path)) + return $$('File').$join($$('File').$dirname(path), $$('File').$basename(abs_path)) } else { return path }; - }, $Builder_expand_ext$28.$$arity = 1); + }, 1); - Opal.def(self, '$expand_path', $Builder_expand_path$29 = function $$expand_path(path) { - var self = this, $ret_or_14 = nil; + $def(self, '$expand_path', function $$expand_path(path) { + var self = this, $ret_or_1 = nil; if ($truthy(self['$stub?'](path))) { - return nil}; - return (function() {if ($truthy(($ret_or_14 = self.$path_reader().$expand(path)))) { - return $ret_or_14 - } else { - return $$($nesting, 'File').$expand_path(path) - }; return nil; })().$to_s(); - }, $Builder_expand_path$29.$$arity = 1); + return nil + }; + return ($truthy(($ret_or_1 = self.$path_reader().$expand(path))) ? ($ret_or_1) : ($$('File').$expand_path(path))).$to_s(); + }, 1); - Opal.def(self, '$process_requires', $Builder_process_requires$30 = function $$process_requires(rel_path, requires, options) { - var $$31, self = this, error = nil; + $def(self, '$process_requires', function $$process_requires(rel_path, requires, autoloads, options) { + var self = this, error = nil; try { - return $send(requires, 'map', [], ($$31 = function(r){var self = $$31.$$s == null ? this : $$31.$$s; + return $send(requires, 'map', [], function $$11(r){var self = $$11.$$s == null ? this : $$11.$$s; - if (r == null) { - r = nil; - }; - return self.$process_require(r, options);}, $$31.$$s = self, $$31.$$arity = 1, $$31)) + if (r == null) r = nil;; + return self.$process_require(r, autoloads, options);}, {$$arity: 1, $$s: self}) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'MissingRequire')])) {(error = $err) + if (Opal.rescue($err, [$$('MissingRequire')])) {(error = $err) try { - return self.$raise(error, "" + "A file required by " + (rel_path.$inspect()) + " wasn't found.\n" + (error.$message()), error.$backtrace()) + return self.$raise(error, "A file required by " + (rel_path.$inspect()) + " wasn't found.\n" + (error.$message()), error.$backtrace()) } finally { Opal.pop_exception(); } } else { throw $err; } } - }, $Builder_process_requires$30.$$arity = 3); + }, 4); - Opal.def(self, '$already_processed', $Builder_already_processed$32 = function $$already_processed() { - var self = this, $ret_or_15 = nil; + $def(self, '$already_processed', function $$already_processed() { + var self = this, $ret_or_1 = nil; - return (self.already_processed = (function() {if ($truthy(($ret_or_15 = self.already_processed))) { - return $ret_or_15 - } else { - return $$($nesting, 'Set').$new() - }; return nil; })()) - }, $Builder_already_processed$32.$$arity = 0); + return (self.already_processed = ($truthy(($ret_or_1 = self.already_processed)) ? ($ret_or_1) : ($$('Set').$new()))) + }, 0); - Opal.def(self, '$stub?', $Builder_stub$ques$33 = function(path) { + $def(self, '$stub?', function $Builder_stub$ques$12(path) { var self = this; return self.$stubs()['$include?'](path) - }, $Builder_stub$ques$33.$$arity = 1); - return (Opal.def(self, '$extensions', $Builder_extensions$34 = function $$extensions() { - var self = this; - - return $$$($$$('::', 'Opal'), 'Builder').$extensions() - }, $Builder_extensions$34.$$arity = 0), nil) && 'extensions'; + }, 1); + return $def(self, '$extensions', function $$extensions() { + + return $$$($Opal, 'Builder').$extensions() + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast/node"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$to_sym', '$freeze', '$to_a', '$assign_properties', '$hash', '$class', '$eql?', '$type', '$children', '$each', '$instance_variable_set', '$protected', '$private', '$==', '$nil?', '$original_dup', '$send', '$equal?', '$respond_to?', '$to_ast', '$updated', '$+', '$*', '$fancy_type', '$is_a?', '$to_sexp', '$inspect', '$map', '$to_sexp_array', '$gsub', '$to_s']); +Opal.modules["ast/node"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $hash2 = Opal.hash2, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $rb_times = Opal.rb_times, $to_a = Opal.to_a; + + Opal.add_stubs('attr_reader,to_sym,freeze,to_a,assign_properties,hash,class,eql?,type,children,each,instance_variable_set,protected,private,nil?,==,original_dup,send,equal?,respond_to?,to_ast,updated,+,*,fancy_type,is_a?,to_sexp,inspect,map,to_sexp_array,gsub,to_s'); return (function($base, $parent_nesting) { var self = $module($base, 'AST'); @@ -2560,116 +2155,78 @@ Opal.modules["ast/node"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Node'); - var $nesting = [self].concat($parent_nesting), $Node_initialize$1, $Node_eql$ques$2, $Node_assign_properties$3, $Node_dup$5, $Node_updated$6, $Node_$eq_eq$7, $Node_concat$8, $Node_append$9, $Node_to_sexp$10, $Node_inspect$12, $Node_to_ast$14, $Node_to_sexp_array$15, $Node_deconstruct$17, $Node_fancy_type$18; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.type = self.$$prototype.children = nil; + $proto.type = $proto.children = nil; self.$attr_reader("type"); self.$attr_reader("children"); $alias(self, "to_a", "children"); self.$attr_reader("hash"); - Opal.def(self, '$initialize', $Node_initialize$1 = function $$initialize(type, children, properties) { + $def(self, '$initialize', function $$initialize(type, children, properties) { var $a, self = this; - if (children == null) { - children = []; - }; + if (children == null) children = [];; - if (properties == null) { - properties = $hash2([], {}); - }; + if (properties == null) properties = $hash2([], {});; $a = [type.$to_sym(), children.$to_a().$freeze()], (self.type = $a[0]), (self.children = $a[1]), $a; self.$assign_properties(properties); self.hash = [self.type, self.children, self.$class()].$hash(); return self.$freeze(); - }, $Node_initialize$1.$$arity = -2); + }, -2); - Opal.def(self, '$eql?', $Node_eql$ques$2 = function(other) { + $def(self, '$eql?', function $Node_eql$ques$1(other) { var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$class()['$eql?'](other.$class())))) { - return self.type['$eql?'](other.$type()) - } else { - return $ret_or_2 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$class()['$eql?'](other.$class()))) ? (self.type['$eql?'](other.$type())) : ($ret_or_2))))) { return self.children['$eql?'](other.$children()) } else { return $ret_or_1 } - }, $Node_eql$ques$2.$$arity = 1); + }, 1); - Opal.def(self, '$assign_properties', $Node_assign_properties$3 = function $$assign_properties(properties) { - var $$4, self = this; + $def(self, '$assign_properties', function $$assign_properties(properties) { + var self = this; - $send(properties, 'each', [], ($$4 = function(name, value){var self = $$4.$$s == null ? this : $$4.$$s; + $send(properties, 'each', [], function $$2(name, value){var self = $$2.$$s == null ? this : $$2.$$s; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (value == null) { - value = nil; - }; - return self.$instance_variable_set("" + "@" + (name), value);}, $$4.$$s = self, $$4.$$arity = 2, $$4)); + if (value == null) value = nil;; + return self.$instance_variable_set("@" + (name), value);}, {$$arity: 2, $$s: self}); return nil; - }, $Node_assign_properties$3.$$arity = 1); + }, 1); self.$protected("assign_properties"); $alias(self, "original_dup", "dup"); self.$private("original_dup"); - Opal.def(self, '$dup', $Node_dup$5 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this; return self - }, $Node_dup$5.$$arity = 0); + }, 0); $alias(self, "clone", "dup"); - Opal.def(self, '$updated', $Node_updated$6 = function $$updated(type, children, properties) { - var self = this, new_type = nil, $ret_or_3 = nil, new_children = nil, $ret_or_4 = nil, new_properties = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, copy = nil; + $def(self, '$updated', function $$updated(type, children, properties) { + var self = this, new_type = nil, $ret_or_1 = nil, new_children = nil, new_properties = nil, copy = nil; - if (type == null) { - type = nil; - }; + if (type == null) type = nil;; - if (children == null) { - children = nil; - }; + if (children == null) children = nil;; - if (properties == null) { - properties = nil; - }; - new_type = (function() {if ($truthy(($ret_or_3 = type))) { - return $ret_or_3 - } else { - return self.type - }; return nil; })(); - new_children = (function() {if ($truthy(($ret_or_4 = children))) { - return $ret_or_4 - } else { - return self.children - }; return nil; })(); - new_properties = (function() {if ($truthy(($ret_or_5 = properties))) { - return $ret_or_5 - } else { - return $hash2([], {}) - }; return nil; })(); - if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = self.type['$=='](new_type)))) { - return self.children['$=='](new_children) - } else { - return $ret_or_7 - }; return nil; })()))) { - return properties['$nil?']() - } else { - return $ret_or_6 - }; return nil; })())) { + if (properties == null) properties = nil;; + new_type = ($truthy(($ret_or_1 = type)) ? ($ret_or_1) : (self.type)); + new_children = ($truthy(($ret_or_1 = children)) ? ($ret_or_1) : (self.children)); + new_properties = ($truthy(($ret_or_1 = properties)) ? ($ret_or_1) : ($hash2([], {}))); + if ((($eqeq(self.type, new_type) && ($eqeq(self.children, new_children))) && ($truthy(properties['$nil?']())))) { return self } else { @@ -2677,138 +2234,124 @@ Opal.modules["ast/node"] = function(Opal) { copy.$send("initialize", new_type, new_children, new_properties); return copy; }; - }, $Node_updated$6.$$arity = -1); + }, -1); - Opal.def(self, '$==', $Node_$eq_eq$7 = function(other) { - var self = this, $ret_or_8 = nil; + $def(self, '$==', function $Node_$eq_eq$3(other) { + var self = this, $ret_or_1 = nil; if ($truthy(self['$equal?'](other))) { return true } else if ($truthy(other['$respond_to?']("to_ast"))) { other = other.$to_ast(); - if ($truthy(($ret_or_8 = other.$type()['$=='](self.$type())))) { + if ($truthy(($ret_or_1 = other.$type()['$=='](self.$type())))) { return other.$children()['$=='](self.$children()) } else { - return $ret_or_8 + return $ret_or_1 }; } else { return false } - }, $Node_$eq_eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$concat', $Node_concat$8 = function $$concat(array) { + $def(self, '$concat', function $$concat(array) { var self = this; return self.$updated(nil, $rb_plus(self.children, array.$to_a())) - }, $Node_concat$8.$$arity = 1); + }, 1); $alias(self, "+", "concat"); - Opal.def(self, '$append', $Node_append$9 = function $$append(element) { + $def(self, '$append', function $$append(element) { var self = this; return self.$updated(nil, $rb_plus(self.children, [element])) - }, $Node_append$9.$$arity = 1); + }, 1); $alias(self, "<<", "append"); - Opal.def(self, '$to_sexp', $Node_to_sexp$10 = function $$to_sexp(indent) { - var $$11, self = this, indented = nil, sexp = nil; + $def(self, '$to_sexp', function $$to_sexp(indent) { + var self = this, indented = nil, sexp = nil; - if (indent == null) { - indent = 0; - }; + if (indent == null) indent = 0;; indented = $rb_times(" ", indent); sexp = "" + (indented) + "(" + (self.$fancy_type()); - $send(self.$children(), 'each', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; - + $send(self.$children(), 'each', [], function $$4(child){ - if (child == null) { - child = nil; - }; - if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { - return (sexp = $rb_plus(sexp, "" + "\n" + (child.$to_sexp($rb_plus(indent, 1))))) + if (child == null) child = nil;; + if ($truthy(child['$is_a?']($$('Node')))) { + return (sexp = $rb_plus(sexp, "\n" + (child.$to_sexp($rb_plus(indent, 1))))) } else { - return (sexp = $rb_plus(sexp, "" + " " + (child.$inspect()))) - };}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + return (sexp = $rb_plus(sexp, " " + (child.$inspect()))) + };}, 1); sexp = $rb_plus(sexp, ")"); return sexp; - }, $Node_to_sexp$10.$$arity = -1); + }, -1); $alias(self, "to_s", "to_sexp"); - Opal.def(self, '$inspect', $Node_inspect$12 = function $$inspect(indent) { - var $$13, self = this, indented = nil, sexp = nil; + $def(self, '$inspect', function $$inspect(indent) { + var self = this, indented = nil, sexp = nil; - if (indent == null) { - indent = 0; - }; + if (indent == null) indent = 0;; indented = $rb_times(" ", indent); sexp = "" + (indented) + "s(:" + (self.type); - $send(self.$children(), 'each', [], ($$13 = function(child){var self = $$13.$$s == null ? this : $$13.$$s; - + $send(self.$children(), 'each', [], function $$5(child){ - if (child == null) { - child = nil; - }; - if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { - return (sexp = $rb_plus(sexp, "" + ",\n" + (child.$inspect($rb_plus(indent, 1))))) + if (child == null) child = nil;; + if ($truthy(child['$is_a?']($$('Node')))) { + return (sexp = $rb_plus(sexp, ",\n" + (child.$inspect($rb_plus(indent, 1))))) } else { - return (sexp = $rb_plus(sexp, "" + ", " + (child.$inspect()))) - };}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + return (sexp = $rb_plus(sexp, ", " + (child.$inspect()))) + };}, 1); sexp = $rb_plus(sexp, ")"); return sexp; - }, $Node_inspect$12.$$arity = -1); + }, -1); - Opal.def(self, '$to_ast', $Node_to_ast$14 = function $$to_ast() { + $def(self, '$to_ast', function $$to_ast() { var self = this; return self - }, $Node_to_ast$14.$$arity = 0); + }, 0); - Opal.def(self, '$to_sexp_array', $Node_to_sexp_array$15 = function $$to_sexp_array() { - var $$16, self = this, children_sexp_arrs = nil; + $def(self, '$to_sexp_array', function $$to_sexp_array() { + var self = this, children_sexp_arrs = nil; - children_sexp_arrs = $send(self.$children(), 'map', [], ($$16 = function(child){var self = $$16.$$s == null ? this : $$16.$$s; - + children_sexp_arrs = $send(self.$children(), 'map', [], function $$6(child){ - if (child == null) { - child = nil; - }; - if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { + if (child == null) child = nil;; + if ($truthy(child['$is_a?']($$('Node')))) { return child.$to_sexp_array() } else { return child - };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - return [self.$type()].concat(Opal.to_a(children_sexp_arrs)); - }, $Node_to_sexp_array$15.$$arity = 0); + };}, 1); + return [self.$type()].concat($to_a(children_sexp_arrs)); + }, 0); - Opal.def(self, '$deconstruct', $Node_deconstruct$17 = function $$deconstruct() { + $def(self, '$deconstruct', function $$deconstruct() { var self = this; - return [self.$type()].concat(Opal.to_a(self.$children())) - }, $Node_deconstruct$17.$$arity = 0); + return [self.$type()].concat($to_a(self.$children())) + }, 0); self.$protected(); - return (Opal.def(self, '$fancy_type', $Node_fancy_type$18 = function $$fancy_type() { + return $def(self, '$fancy_type', function $$fancy_type() { var self = this; return self.type.$to_s().$gsub("_", "-") - }, $Node_fancy_type$18.$$arity = 0), nil) && 'fancy_type'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast/processor/mixin"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["ast/processor/mixin"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$nil?', '$to_ast', '$type', '$respond_to?', '$send', '$handler_missing', '$map', '$to_a', '$process']); + Opal.add_stubs('nil?,to_ast,type,respond_to?,send,handler_missing,map,to_a,process'); return (function($base, $parent_nesting) { var self = $module($base, 'AST'); @@ -2819,58 +2362,55 @@ Opal.modules["ast/processor/mixin"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $parent_nesting) { + return (function($base) { var self = $module($base, 'Mixin'); - var $nesting = [self].concat($parent_nesting), $Mixin_process$1, $Mixin_process_all$2, $Mixin_handler_missing$4; - - Opal.def(self, '$process', $Mixin_process$1 = function $$process(node) { + + $def(self, '$process', function $$process(node) { var self = this, on_handler = nil, new_node = nil; if ($truthy(node['$nil?']())) { - return nil}; + return nil + }; node = node.$to_ast(); - on_handler = "" + "on_" + (node.$type()); + on_handler = "on_" + (node.$type()); if ($truthy(self['$respond_to?'](on_handler))) { new_node = self.$send(on_handler, node) } else { new_node = self.$handler_missing(node) }; if ($truthy(new_node)) { - node = new_node}; + node = new_node + }; return node; - }, $Mixin_process$1.$$arity = 1); + }, 1); - Opal.def(self, '$process_all', $Mixin_process_all$2 = function $$process_all(nodes) { - var $$3, self = this; + $def(self, '$process_all', function $$process_all(nodes) { + var self = this; - return $send(nodes.$to_a(), 'map', [], ($$3 = function(node){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(nodes.$to_a(), 'map', [], function $$1(node){var self = $$1.$$s == null ? this : $$1.$$s; - if (node == null) { - node = nil; - }; - return self.$process(node);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Mixin_process_all$2.$$arity = 1); - return (Opal.def(self, '$handler_missing', $Mixin_handler_missing$4 = function $$handler_missing(node) { - var self = this; - + if (node == null) node = nil;; + return self.$process(node);}, {$$arity: 1, $$s: self}) + }, 1); + return $def(self, '$handler_missing', function $$handler_missing(node) { + return nil - }, $Mixin_handler_missing$4.$$arity = 1), nil) && 'handler_missing'; - })($nesting[0], $nesting) + }, 1); + })($nesting[0]) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast/processor"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["ast/processor"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$include']); + Opal.add_stubs('require,include'); return (function($base, $parent_nesting) { var self = $module($base, 'AST'); @@ -2879,20 +2419,19 @@ Opal.modules["ast/processor"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Processor'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$require("ast/processor/mixin"); - return self.$include($$($nesting, 'Mixin')); + return self.$include($$('Mixin')); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast/sexp"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["ast/sexp"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $def = Opal.def; - Opal.add_stubs(['$new']); + Opal.add_stubs('new'); return (function($base, $parent_nesting) { var self = $module($base, 'AST'); @@ -2901,47 +2440,41 @@ Opal.modules["ast/sexp"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Sexp'); - var $nesting = [self].concat($parent_nesting), $Sexp_s$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$s', $Sexp_s$1 = function $$s(type, $a) { - var $post_args, children, self = this; + return $def(self, '$s', function $$s(type, $a) { + var $post_args, children; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); children = $post_args;; - return $$($nesting, 'Node').$new(type, children); - }, $Sexp_s$1.$$arity = -2), nil) && 's' + return $$('Node').$new(type, children); + }, -2) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["ast"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module; - Opal.add_stubs(['$require']); - return (function($base, $parent_nesting) { + Opal.add_stubs('require'); + return (function($base) { var self = $module($base, 'AST'); - var $nesting = [self].concat($parent_nesting); - + self.$require("ast/node"); self.$require("ast/processor"); return self.$require("ast/sexp"); - })($nesting[0], $nesting) + })($nesting[0]) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/ast/node"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["parser/ast/node"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$[]', '$frozen?', '$dup', '$node=', '$-']); + Opal.add_stubs('attr_reader,[],frozen?,dup,node=,-'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -2952,40 +2485,39 @@ Opal.modules["parser/ast/node"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Node'); - var $nesting = [self].concat($parent_nesting), $Node_assign_properties$1; - + self.$attr_reader("location"); $alias(self, "loc", "location"); - return (Opal.def(self, '$assign_properties', $Node_assign_properties$1 = function $$assign_properties(properties) { + return $def(self, '$assign_properties', function $$assign_properties(properties) { var self = this, location = nil, $writer = nil; if ($truthy((location = properties['$[]']("location")))) { if ($truthy(location['$frozen?']())) { - location = location.$dup()}; + location = location.$dup() + }; $writer = [self]; - $send(location, 'node=', Opal.to_a($writer)); + $send(location, 'node=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return (self.location = location); } else { return nil } - }, $Node_assign_properties$1.$$arity = 1), nil) && 'assign_properties'; - })($nesting[0], $$$($$$('::', 'AST'), 'Node'), $nesting) + }, 1); + })($nesting[0], $$$($$$('AST'), 'Node')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/ast/node"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/ast/node"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$require', '$attr_reader', '$[]', '$frozen?', '$dup', '$merge!', '$loc', '$line', '$column']); + Opal.add_stubs('require,attr_reader,[],frozen?,dup,merge!,loc,line,column'); self.$require("ast"); self.$require("parser/ast/node"); @@ -2999,40 +2531,33 @@ Opal.modules["opal/ast/node"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Node'); - var $nesting = [self].concat($parent_nesting), $Node_assign_properties$1, $Node_line$2, $Node_column$3; + var $proto = self.$$prototype; - self.$$prototype.meta = nil; + $proto.meta = nil; self.$attr_reader("meta"); - Opal.def(self, '$assign_properties', $Node_assign_properties$1 = function $$assign_properties(properties) { - var $iter = $Node_assign_properties$1.$$p, $yield = $iter || nil, self = this, meta = nil, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$assign_properties', function $$assign_properties(properties) { + var $yield = $$assign_properties.$$p || nil, self = this, meta = nil, $ret_or_1 = nil; - if ($iter) $Node_assign_properties$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$assign_properties.$$p; if ($truthy((meta = properties['$[]']("meta")))) { if ($truthy(meta['$frozen?']())) { - meta = meta.$dup()}; + meta = meta.$dup() + }; self.meta['$merge!'](meta); } else { - self.meta = (function() {if ($truthy(($ret_or_1 = self.meta))) { - return $ret_or_1 - } else { - return $hash2([], {}) - }; return nil; })() + self.meta = ($truthy(($ret_or_1 = self.meta)) ? ($ret_or_1) : ($hash2([], {}))) }; - return $send2(self, $find_super(self, 'assign_properties', $Node_assign_properties$1, false, true), 'assign_properties', $zuper, $iter); - }, $Node_assign_properties$1.$$arity = 1); + return $send2(self, $find_super(self, 'assign_properties', $$assign_properties, false, true), 'assign_properties', [properties], $yield); + }, 1); - Opal.def(self, '$line', $Node_line$2 = function $$line() { + $def(self, '$line', function $$line() { var self = this; if ($truthy(self.$loc())) { @@ -3040,8 +2565,8 @@ Opal.modules["opal/ast/node"] = function(Opal) { } else { return nil } - }, $Node_line$2.$$arity = 0); - return (Opal.def(self, '$column', $Node_column$3 = function $$column() { + }, 0); + return $def(self, '$column', function $$column() { var self = this; if ($truthy(self.$loc())) { @@ -3049,122 +2574,86 @@ Opal.modules["opal/ast/node"] = function(Opal) { } else { return nil } - }, $Node_column$3.$$arity = 0), nil) && 'column'; - })($nesting[0], $$$($$$($$$('::', 'Parser'), 'AST'), 'Node'), $nesting) + }, 0); + })($nesting[0], $$$($$$($$$('Parser'), 'AST'), 'Node')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["racc/parser"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send; - - Opal.add_stubs(['$[]', '$class', '$<', '$size', '$[]=', '$-', '$__send__', '$_racc_setup', '$raise', '$_racc_init_sysvars', '$catch', '$!=', '$next_token', '$racc_read_token', '$+', '$>=', '$==', '$_racc_evalact', '$!', '$>', '$push', '$racc_shift', '$-@', '$_racc_do_reduce', '$===', '$racc_accept', '$throw', '$on_error', '$<=', '$pop', '$racc_e_pop', '$inspect', '$racc_next_state', '$*', '$racc_reduce', '$sprintf', '$token_to_str', '$print', '$racc_token2str', '$puts', '$racc_print_stacks', '$empty?', '$each', '$racc_print_states', '$each_index']); +Opal.modules["racc/parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $a, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $const_set = Opal.const_set, $defs = Opal.defs, $gvars = Opal.gvars, $rb_lt = Opal.rb_lt, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $to_ary = Opal.to_ary, $neqeq = Opal.neqeq, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $rb_ge = Opal.rb_ge, $rb_gt = Opal.rb_gt, $eqeqeq = Opal.eqeqeq, $rb_le = Opal.rb_le, $rb_times = Opal.rb_times; + + Opal.add_stubs('[],class,<,size,[]=,-,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,push,racc_shift,-@,_racc_do_reduce,===,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index'); (function($base, $parent_nesting) { var self = $module($base, 'Racc'); - var $nesting = [self].concat($parent_nesting); - - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ParseError'); - - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting) + return ($klass($nesting[0], $$('StandardError'), 'ParseError'), nil) })($nesting[0], $nesting); - if ($truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'ParseError', $$$($$($nesting, 'Racc'), 'ParseError')) + if (!$truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'ParseError', $$$($$('Racc'), 'ParseError')) }; return (function($base, $parent_nesting) { var self = $module($base, 'Racc'); - var $nesting = [self].concat($parent_nesting), $a; + var $a, $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - if ($truthy((($a = $$($nesting, 'Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'Racc_No_Extensions', false) + if (!$truthy((($a = $$('Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'Racc_No_Extensions', false) }; return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Parser'); - var $nesting = [self].concat($parent_nesting), $Parser_racc_runtime_type$1, $Parser__racc_setup$2, $Parser__racc_init_sysvars$3, $Parser_do_parse$4, $Parser_next_token$5, $Parser__racc_do_parse_rb$6, $Parser_yyparse$8, $Parser__racc_yyparse_rb$9, $Parser__racc_evalact$12, $Parser__racc_do_reduce$14, $Parser_on_error$15, $Parser_yyerror$16, $Parser_yyaccept$17, $Parser_yyerrok$18, $Parser_racc_read_token$19, $Parser_racc_shift$20, $Parser_racc_reduce$21, $Parser_racc_accept$23, $Parser_racc_e_pop$24, $Parser_racc_next_state$25, $Parser_racc_print_stacks$26, $Parser_racc_print_states$28, $Parser_racc_token2str$30, $Parser_token_to_str$31; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.yydebug = self.$$prototype.racc_debug_out = self.$$prototype.racc_error_status = self.$$prototype.racc_t = self.$$prototype.racc_vstack = self.$$prototype.racc_val = self.$$prototype.racc_state = self.$$prototype.racc_tstack = nil; + $proto.yydebug = $proto.racc_debug_out = $proto.racc_error_status = $proto.racc_t = $proto.racc_vstack = $proto.racc_val = $proto.racc_state = $proto.racc_tstack = nil; - Opal.const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); - Opal.const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version', $$($nesting, 'Racc_Runtime_Core_Version_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$($nesting, 'Racc_Runtime_Core_Revision_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); - Opal.defs($$($nesting, 'Parser'), '$racc_runtime_type', $Parser_racc_runtime_type$1 = function $$racc_runtime_type() { - var self = this; - - return $$($nesting, 'Racc_Runtime_Type') - }, $Parser_racc_runtime_type$1.$$arity = 0); + $const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); + $const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); + $const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); + $const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); + $const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); + $const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); + $const_set($nesting[0], 'Racc_Runtime_Core_Version', $$('Racc_Runtime_Core_Version_R')); + $const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$('Racc_Runtime_Core_Revision_R')); + $const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); + $defs($$('Parser'), '$racc_runtime_type', function $$racc_runtime_type() { + + return $$('Racc_Runtime_Type') + }, 0); - Opal.def(self, '$_racc_setup', $Parser__racc_setup$2 = function $$_racc_setup() { + $def(self, '$_racc_setup', function $$_racc_setup() { var $a, $b, self = this, $ret_or_1 = nil, arg = nil, $writer = nil; if ($gvars.stderr == null) $gvars.stderr = nil; - if ($truthy($$$(self.$class(), 'Racc_debug_parser'))) { - } else { + if (!$truthy($$$(self.$class(), 'Racc_debug_parser'))) { self.yydebug = false }; - if ($truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - } else { + if (!$truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { self.yydebug = false }; if ($truthy(self.yydebug)) { - if ($truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { - } else { + if (!$truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { self.racc_debug_out = $gvars.stderr }; - self.racc_debug_out = (function() {if ($truthy(($ret_or_1 = self.racc_debug_out))) { - return $ret_or_1 - } else { - return $gvars.stderr - }; return nil; })();}; + self.racc_debug_out = ($truthy(($ret_or_1 = self.racc_debug_out)) ? ($ret_or_1) : ($gvars.stderr)); + }; arg = $$$(self.$class(), 'Racc_arg'); if ($truthy($rb_lt(arg.$size(), 14))) { $writer = [13, true]; - $send(arg, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(arg, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; return arg; - }, $Parser__racc_setup$2.$$arity = 0); + }, 0); - Opal.def(self, '$_racc_init_sysvars', $Parser__racc_init_sysvars$3 = function $$_racc_init_sysvars() { + $def(self, '$_racc_init_sysvars', function $$_racc_init_sysvars() { var self = this; @@ -3176,28 +2665,28 @@ Opal.modules["racc/parser"] = function(Opal) { self.racc_read_next = true; self.racc_user_yyerror = false; return (self.racc_error_status = 0); - }, $Parser__racc_init_sysvars$3.$$arity = 0); + }, 0); - Opal.def(self, '$do_parse', $Parser_do_parse$4 = function $$do_parse() { + $def(self, '$do_parse', function $$do_parse() { var self = this; - return self.$__send__($$($nesting, 'Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) - }, $Parser_do_parse$4.$$arity = 0); + return self.$__send__($$('Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) + }, 0); - Opal.def(self, '$next_token', $Parser_next_token$5 = function $$next_token() { + $def(self, '$next_token', function $$next_token() { var self = this; - return self.$raise($$($nesting, 'NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") - }, $Parser_next_token$5.$$arity = 0); + return self.$raise($$('NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") + }, 0); - Opal.def(self, '$_racc_do_parse_rb', $Parser__racc_do_parse_rb$6 = function $$_racc_do_parse_rb(arg, in_debug) { - var $a, $b, $$7, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; + $def(self, '$_racc_do_parse_rb', function $$_racc_do_parse_rb(arg, in_debug) { + var $a, $b, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; self.$_racc_init_sysvars(); tok = (act = (i = nil)); - return $send(self, 'catch', ["racc_end_parse"], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s, $c, $d, $e, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + return $send(self, 'catch', ["racc_end_parse"], function $$1(){var $c, $d, $e, self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; if (self.racc_state == null) self.racc_state = nil; if (self.racc_read_next == null) self.racc_read_next = nil; if (self.racc_t == null) self.racc_t = nil; @@ -3209,32 +2698,22 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { if ($truthy(self.racc_read_next)) { - if ($truthy(self.racc_t['$!='](0))) { + if ($neqeq(self.racc_t, 0)) { - $e = self.$next_token(), $d = Opal.to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; + $e = self.$next_token(), $d = $to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; if ($truthy(tok)) { - self.racc_t = (function() {if ($truthy(($ret_or_2 = token_table['$[]'](tok)))) { - return $ret_or_2 - } else { - return 1 - }; return nil; })() + self.racc_t = ($truthy(($ret_or_1 = token_table['$[]'](tok))) ? ($ret_or_1) : (1)) } else { self.racc_t = 0 }; if ($truthy(self.yydebug)) { - self.$racc_read_token(self.racc_t, tok, self.racc_val)}; - self.racc_read_next = false;}}; + self.$racc_read_token(self.racc_t, tok, self.racc_val) + }; + self.racc_read_next = false; + } + }; i = $rb_plus(i, self.racc_t); - if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = $rb_ge(i, 0)))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_4 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_3 - }; return nil; })())) { - } else { + if (!(($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; } else { @@ -3243,24 +2722,24 @@ Opal.modules["racc/parser"] = function(Opal) { while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - }}, $$7.$$s = self, $$7.$$arity = 0, $$7)); - }, $Parser__racc_do_parse_rb$6.$$arity = 2); + }}, {$$arity: 0, $$s: self}); + }, 2); - Opal.def(self, '$yyparse', $Parser_yyparse$8 = function $$yyparse(recv, mid) { + $def(self, '$yyparse', function $$yyparse(recv, mid) { var self = this; - return self.$__send__($$($nesting, 'Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) - }, $Parser_yyparse$8.$$arity = 2); + return self.$__send__($$('Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) + }, 2); - Opal.def(self, '$_racc_yyparse_rb', $Parser__racc_yyparse_rb$9 = function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { - var $a, $b, $$10, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; + $def(self, '$_racc_yyparse_rb', function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { + var $a, $b, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; self.$_racc_init_sysvars(); act = nil; i = nil; - return $send(self, 'catch', ["racc_end_parse"], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $c, $d, $$11; + return $send(self, 'catch', ["racc_end_parse"], function $$2(){var $c, $d, self = $$2.$$s == null ? this : $$2.$$s; if (self.racc_state == null) self.racc_state = nil; @@ -3269,141 +2748,101 @@ Opal.modules["racc/parser"] = function(Opal) { } }; - return $send(recv, '__send__', [mid], ($$11 = function(tok, val){var self = $$11.$$s == null ? this : $$11.$$s, $e, $f, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + return $send(recv, '__send__', [mid], function $$3(tok, val){var $e, $f, self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil, $ret_or_2 = nil; if (self.racc_t == null) self.racc_t = nil; if (self.racc_state == null) self.racc_state = nil; if (self.racc_read_next == null) self.racc_read_next = nil; - if (tok == null) { - tok = nil; - }; + if (tok == null) tok = nil;; - if (val == null) { - val = nil; - }; + if (val == null) val = nil;; if ($truthy(tok)) { - self.racc_t = (function() {if ($truthy(($ret_or_5 = token_table['$[]'](tok)))) { - return $ret_or_5 - } else { - return 1 - }; return nil; })() + self.racc_t = ($truthy(($ret_or_1 = token_table['$[]'](tok))) ? ($ret_or_1) : (1)) } else { self.racc_t = 0 }; self.racc_val = val; self.racc_read_next = false; i = $rb_plus(i, self.racc_t); - if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge(i, 0)))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_7 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_6 - }; return nil; })())) { - } else { + if (!(($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - while ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']()))) { - return $ret_or_9 - } else { - return self.racc_read_next['$!']() - }; return nil; })()))) { - return $ret_or_8 - } else { - return self.racc_t['$=='](0) - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']())) ? ($ret_or_2) : (self.racc_read_next['$!']())))) ? ($ret_or_1) : (self.racc_t['$=='](0))))) { - if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = i))) { - return (i = $rb_plus(i, self.racc_t)) - } else { - return $ret_or_13 - }; return nil; })()))) { - return $rb_ge(i, 0) - } else { - return $ret_or_12 - }; return nil; })()))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_11 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_10 - }; return nil; })())) { - } else { + if (!(((($truthy(i) && ($truthy((i = $rb_plus(i, self.racc_t))))) && ($truthy($rb_ge(i, 0)))) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - };}, $$11.$$s = self, $$11.$$arity = 2, $$11));}, $$10.$$s = self, $$10.$$arity = 0, $$10)); - }, $Parser__racc_yyparse_rb$9.$$arity = 4); + };}, {$$arity: 2, $$s: self});}, {$$arity: 0, $$s: self}); + }, 4); - Opal.def(self, '$_racc_evalact', $Parser__racc_evalact$12 = function $$_racc_evalact(act, arg) { - var $a, $b, $$13, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, $ret_or_14 = nil, $ret_or_15 = nil, code = nil, $case = nil, i = nil, $ret_or_16 = nil, $ret_or_17 = nil; + $def(self, '$_racc_evalact', function $$_racc_evalact(act, arg) { + var $a, $b, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, code = nil, $ret_or_1 = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; - if ($truthy((function() {if ($truthy(($ret_or_14 = $rb_gt(act, 0)))) { - return $rb_lt(act, shift_n) - } else { - return $ret_or_14 - }; return nil; })())) { + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; + if (($truthy($rb_gt(act, 0)) && ($truthy($rb_lt(act, shift_n))))) { if ($truthy($rb_gt(self.racc_error_status, 0))) { - if (self.racc_t['$=='](1)) { - } else { + if (!$eqeq(self.racc_t, 1)) { self.racc_error_status = $rb_minus(self.racc_error_status, 1) - }}; + } + }; self.racc_vstack.$push(self.racc_val); self.racc_state.$push(act); self.racc_read_next = true; if ($truthy(self.yydebug)) { self.racc_tstack.$push(self.racc_t); - self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack);}; - } else if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_lt(act, 0)))) { - return $rb_gt(act, reduce_n['$-@']()) - } else { - return $ret_or_15 - }; return nil; })())) { + self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack); + }; + } else if (($truthy($rb_lt(act, 0)) && ($truthy($rb_gt(act, reduce_n['$-@']()))))) { - code = $send(self, 'catch', ["racc_jump"], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + code = $send(self, 'catch', ["racc_jump"], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; if (self.racc_state == null) self.racc_state = nil; self.racc_state.$push(self.$_racc_do_reduce(arg, act)); - return false;}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return false;}, {$$arity: 0, $$s: self}); if ($truthy(code)) { - $case = code; - if ((1)['$===']($case)) { - self.racc_user_yyerror = true; - return reduce_n['$-@']();} - else if ((2)['$===']($case)) {return shift_n} - else {self.$raise("[Racc Bug] unknown jump code")}}; - } else if (act['$=='](shift_n)) { + if ($eqeqeq(1, ($ret_or_1 = code))) { + + self.racc_user_yyerror = true; + return reduce_n['$-@'](); + } else if ($eqeqeq(2, $ret_or_1)) { + return shift_n + } else { + self.$raise("[Racc Bug] unknown jump code") + } + }; + } else if ($eqeq(act, shift_n)) { if ($truthy(self.yydebug)) { - self.$racc_accept()}; + self.$racc_accept() + }; self.$throw("racc_end_parse", self.racc_vstack['$[]'](0)); - } else if (act['$=='](reduce_n['$-@']())) { + } else if ($eqeq(act, reduce_n['$-@']())) { - $case = self.racc_error_status; - if ((0)['$===']($case)) {if ($truthy(arg['$[]'](21))) { + if ($eqeqeq(0, ($ret_or_1 = self.racc_error_status))) { + if (!$truthy(arg['$[]'](21))) { + self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) + } + } else if ($eqeqeq(3, $ret_or_1)) { + + if ($eqeq(self.racc_t, 0)) { + self.$throw("racc_end_parse", nil) + }; + self.racc_read_next = true; } else { - self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) - }} - else if ((3)['$===']($case)) { - if (self.racc_t['$=='](0)) { - self.$throw("racc_end_parse", nil)}; - self.racc_read_next = true;}; + nil + }; self.racc_user_yyerror = false; self.racc_error_status = 3; while ($truthy(true)) { @@ -3411,40 +2850,36 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { i = $rb_plus(i, 1); - if ($truthy((function() {if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = $rb_ge(i, 0)))) { - - return (act = action_table['$[]'](i)); - } else { - return $ret_or_17 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_16 - }; return nil; })())) { - break;};}; + if ((($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { + break; + }; + }; if ($truthy($rb_le(self.racc_state.$size(), 1))) { - self.$throw("racc_end_parse", nil)}; + self.$throw("racc_end_parse", nil) + }; self.racc_state.$pop(); self.racc_vstack.$pop(); if ($truthy(self.yydebug)) { self.racc_tstack.$pop(); - self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack);}; + self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack); + }; }; return act; } else { - self.$raise("" + "[Racc Bug] unknown action " + (act.$inspect())) + self.$raise("[Racc Bug] unknown action " + (act.$inspect())) }; if ($truthy(self.yydebug)) { - self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state)}; + self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state) + }; return nil; - }, $Parser__racc_evalact$12.$$arity = 2); + }, 2); - Opal.def(self, '$_racc_do_reduce', $Parser__racc_do_reduce$14 = function $$_racc_do_reduce(arg, act) { - var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, $ret_or_18 = nil, $ret_or_19 = nil, curstate = nil; + $def(self, '$_racc_do_reduce', function $$_racc_do_reduce(arg, act) { + var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, curstate = nil; - $b = arg, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; state = self.racc_state; vstack = self.racc_vstack; tstack = self.racc_tstack; @@ -3454,20 +2889,22 @@ Opal.modules["racc/parser"] = function(Opal) { method_id = reduce_table['$[]']($rb_plus(i, 2)); void_array = []; if ($truthy(self.yydebug)) { - tmp_t = tstack['$[]'](len['$-@'](), len)}; + tmp_t = tstack['$[]'](len['$-@'](), len) + }; tmp_v = vstack['$[]'](len['$-@'](), len); if ($truthy(self.yydebug)) { $writer = [len['$-@'](), len, void_array]; - $send(tstack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(tstack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; $writer = [len['$-@'](), len, void_array]; - $send(vstack, '[]=', Opal.to_a($writer)); + $send(vstack, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [len['$-@'](), len, void_array]; - $send(state, '[]=', Opal.to_a($writer)); + $send(state, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(use_result)) { vstack.$push(self.$__send__(method_id, tmp_v, vstack, tmp_v['$[]'](0))) @@ -3476,54 +2913,44 @@ Opal.modules["racc/parser"] = function(Opal) { }; tstack.$push(reduce_to); if ($truthy(self.yydebug)) { - self.$racc_reduce(tmp_t, reduce_to, tstack, vstack)}; + self.$racc_reduce(tmp_t, reduce_to, tstack, vstack) + }; k1 = $rb_minus(reduce_to, nt_base); if ($truthy((i = goto_pointer['$[]'](k1)))) { i = $rb_plus(i, state['$[]'](-1)); - if ($truthy((function() {if ($truthy(($ret_or_18 = (function() {if ($truthy(($ret_or_19 = $rb_ge(i, 0)))) { - - return (curstate = goto_table['$[]'](i)); - } else { - return $ret_or_19 - }; return nil; })()))) { - return goto_check['$[]'](i)['$=='](k1) - } else { - return $ret_or_18 - }; return nil; })())) { - return curstate};}; + if ((($truthy($rb_ge(i, 0)) && ($truthy((curstate = goto_table['$[]'](i))))) && ($eqeq(goto_check['$[]'](i), k1)))) { + return curstate + }; + }; return goto_default['$[]'](k1); - }, $Parser__racc_do_reduce$14.$$arity = 2); + }, 2); - Opal.def(self, '$on_error', $Parser_on_error$15 = function $$on_error(t, val, vstack) { - var self = this, $ret_or_20 = nil; + $def(self, '$on_error', function $$on_error(t, val, vstack) { + var self = this, $ret_or_1 = nil; - return self.$raise($$($nesting, 'ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), (function() {if ($truthy(($ret_or_20 = self.$token_to_str(t)))) { - return $ret_or_20 - } else { - return "?" - }; return nil; })())) - }, $Parser_on_error$15.$$arity = 3); + return self.$raise($$('ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), ($truthy(($ret_or_1 = self.$token_to_str(t))) ? ($ret_or_1) : ("?")))) + }, 3); - Opal.def(self, '$yyerror', $Parser_yyerror$16 = function $$yyerror() { + $def(self, '$yyerror', function $$yyerror() { var self = this; return self.$throw("racc_jump", 1) - }, $Parser_yyerror$16.$$arity = 0); + }, 0); - Opal.def(self, '$yyaccept', $Parser_yyaccept$17 = function $$yyaccept() { + $def(self, '$yyaccept', function $$yyaccept() { var self = this; return self.$throw("racc_jump", 2) - }, $Parser_yyaccept$17.$$arity = 0); + }, 0); - Opal.def(self, '$yyerrok', $Parser_yyerrok$18 = function $$yyerrok() { + $def(self, '$yyerrok', function $$yyerrok() { var self = this; return (self.racc_error_status = 0) - }, $Parser_yyerrok$18.$$arity = 0); + }, 0); - Opal.def(self, '$racc_read_token', $Parser_racc_read_token$19 = function $$racc_read_token(t, tok, val) { + $def(self, '$racc_read_token', function $$racc_read_token(t, tok, val) { var self = this; @@ -3531,19 +2958,19 @@ Opal.modules["racc/parser"] = function(Opal) { self.racc_debug_out.$print(tok.$inspect(), "(", self.$racc_token2str(t), ") "); self.racc_debug_out.$puts(val.$inspect()); return self.racc_debug_out.$puts(); - }, $Parser_racc_read_token$19.$$arity = 3); + }, 3); - Opal.def(self, '$racc_shift', $Parser_racc_shift$20 = function $$racc_shift(tok, tstack, vstack) { + $def(self, '$racc_shift', function $$racc_shift(tok, tstack, vstack) { var self = this; - self.racc_debug_out.$puts("" + "shift " + (self.$racc_token2str(tok))); + self.racc_debug_out.$puts("shift " + (self.$racc_token2str(tok))); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_shift$20.$$arity = 3); + }, 3); - Opal.def(self, '$racc_reduce', $Parser_racc_reduce$21 = function $$racc_reduce(toks, sim, tstack, vstack) { - var $$22, self = this, out = nil; + $def(self, '$racc_reduce', function $$racc_reduce(toks, sim, tstack, vstack) { + var self = this, out = nil; out = self.racc_debug_out; @@ -3551,29 +2978,27 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy(toks['$empty?']())) { out.$print(" ") } else { - $send(toks, 'each', [], ($$22 = function(t){var self = $$22.$$s == null ? this : $$22.$$s; + $send(toks, 'each', [], function $$5(t){var self = $$5.$$s == null ? this : $$5.$$s; - if (t == null) { - t = nil; - }; - return out.$print(" ", self.$racc_token2str(t));}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + if (t == null) t = nil;; + return out.$print(" ", self.$racc_token2str(t));}, {$$arity: 1, $$s: self}) }; - out.$puts("" + " --> " + (self.$racc_token2str(sim))); + out.$puts(" --> " + (self.$racc_token2str(sim))); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_reduce$21.$$arity = 4); + }, 4); - Opal.def(self, '$racc_accept', $Parser_racc_accept$23 = function $$racc_accept() { + $def(self, '$racc_accept', function $$racc_accept() { var self = this; self.racc_debug_out.$puts("accept"); return self.racc_debug_out.$puts(); - }, $Parser_racc_accept$23.$$arity = 0); + }, 0); - Opal.def(self, '$racc_e_pop', $Parser_racc_e_pop$24 = function $$racc_e_pop(state, tstack, vstack) { + $def(self, '$racc_e_pop', function $$racc_e_pop(state, tstack, vstack) { var self = this; @@ -3581,192 +3006,150 @@ Opal.modules["racc/parser"] = function(Opal) { self.$racc_print_states(state); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_e_pop$24.$$arity = 3); + }, 3); - Opal.def(self, '$racc_next_state', $Parser_racc_next_state$25 = function $$racc_next_state(curstate, state) { + $def(self, '$racc_next_state', function $$racc_next_state(curstate, state) { var self = this; - self.racc_debug_out.$puts("" + "goto " + (curstate)); + self.racc_debug_out.$puts("goto " + (curstate)); self.$racc_print_states(state); return self.racc_debug_out.$puts(); - }, $Parser_racc_next_state$25.$$arity = 2); + }, 2); - Opal.def(self, '$racc_print_stacks', $Parser_racc_print_stacks$26 = function $$racc_print_stacks(t, v) { - var $$27, self = this, out = nil; + $def(self, '$racc_print_stacks', function $$racc_print_stacks(t, v) { + var self = this, out = nil; out = self.racc_debug_out; out.$print(" ["); - $send(t, 'each_index', [], ($$27 = function(i){var self = $$27.$$s == null ? this : $$27.$$s; + $send(t, 'each_index', [], function $$6(i){var self = $$6.$$s == null ? this : $$6.$$s; - if (i == null) { - i = nil; - }; - return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, $$27.$$s = self, $$27.$$arity = 1, $$27)); + if (i == null) i = nil;; + return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, {$$arity: 1, $$s: self}); return out.$puts(" ]"); - }, $Parser_racc_print_stacks$26.$$arity = 2); + }, 2); - Opal.def(self, '$racc_print_states', $Parser_racc_print_states$28 = function $$racc_print_states(s) { - var $$29, self = this, out = nil; + $def(self, '$racc_print_states', function $$racc_print_states(s) { + var self = this, out = nil; out = self.racc_debug_out; out.$print(" ["); - $send(s, 'each', [], ($$29 = function(st){var self = $$29.$$s == null ? this : $$29.$$s; - + $send(s, 'each', [], function $$7(st){ - if (st == null) { - st = nil; - }; - return out.$print(" ", st);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + if (st == null) st = nil;; + return out.$print(" ", st);}, 1); return out.$puts(" ]"); - }, $Parser_racc_print_states$28.$$arity = 1); + }, 1); - Opal.def(self, '$racc_token2str', $Parser_racc_token2str$30 = function $$racc_token2str(tok) { - var self = this, $ret_or_21 = nil; + $def(self, '$racc_token2str', function $$racc_token2str(tok) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_21 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { - return $ret_or_21 + if ($truthy(($ret_or_1 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { + return $ret_or_1 } else { - return self.$raise("" + "[Racc Bug] can't convert token " + (tok) + " to string") + return self.$raise("[Racc Bug] can't convert token " + (tok) + " to string") } - }, $Parser_racc_token2str$30.$$arity = 1); - return (Opal.def(self, '$token_to_str', $Parser_token_to_str$31 = function $$token_to_str(t) { + }, 1); + return $def(self, '$token_to_str', function $$token_to_str(t) { var self = this; return $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](t) - }, $Parser_token_to_str$31.$$arity = 1), nil) && 'token_to_str'; + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["parser/version"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set; return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); var $nesting = [self].concat($parent_nesting); - return Opal.const_set($nesting[0], 'VERSION', "3.1.1.0") + return $const_set($nesting[0], 'VERSION', "3.1.1.0") })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["racc/parser"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send; - - Opal.add_stubs(['$[]', '$class', '$<', '$size', '$[]=', '$-', '$__send__', '$_racc_setup', '$raise', '$_racc_init_sysvars', '$catch', '$!=', '$next_token', '$racc_read_token', '$+', '$>=', '$==', '$_racc_evalact', '$!', '$>', '$push', '$racc_shift', '$-@', '$_racc_do_reduce', '$===', '$racc_accept', '$throw', '$on_error', '$<=', '$pop', '$racc_e_pop', '$inspect', '$racc_next_state', '$*', '$racc_reduce', '$sprintf', '$token_to_str', '$print', '$racc_token2str', '$puts', '$racc_print_stacks', '$empty?', '$each', '$racc_print_states', '$each_index']); +Opal.modules["racc/parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $a, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $const_set = Opal.const_set, $defs = Opal.defs, $gvars = Opal.gvars, $rb_lt = Opal.rb_lt, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $to_ary = Opal.to_ary, $neqeq = Opal.neqeq, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $rb_ge = Opal.rb_ge, $rb_gt = Opal.rb_gt, $eqeqeq = Opal.eqeqeq, $rb_le = Opal.rb_le, $rb_times = Opal.rb_times; + + Opal.add_stubs('[],class,<,size,[]=,-,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,push,racc_shift,-@,_racc_do_reduce,===,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index'); (function($base, $parent_nesting) { var self = $module($base, 'Racc'); - var $nesting = [self].concat($parent_nesting); - - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ParseError'); - - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting) + return ($klass($nesting[0], $$('StandardError'), 'ParseError'), nil) })($nesting[0], $nesting); - if ($truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'ParseError', $$$($$($nesting, 'Racc'), 'ParseError')) + if (!$truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'ParseError', $$$($$('Racc'), 'ParseError')) }; return (function($base, $parent_nesting) { var self = $module($base, 'Racc'); - var $nesting = [self].concat($parent_nesting), $a; + var $a, $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - if ($truthy((($a = $$($nesting, 'Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'Racc_No_Extensions', false) + if (!$truthy((($a = $$('Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'Racc_No_Extensions', false) }; return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Parser'); - var $nesting = [self].concat($parent_nesting), $Parser_racc_runtime_type$1, $Parser__racc_setup$2, $Parser__racc_init_sysvars$3, $Parser_do_parse$4, $Parser_next_token$5, $Parser__racc_do_parse_rb$6, $Parser_yyparse$8, $Parser__racc_yyparse_rb$9, $Parser__racc_evalact$12, $Parser__racc_do_reduce$14, $Parser_on_error$15, $Parser_yyerror$16, $Parser_yyaccept$17, $Parser_yyerrok$18, $Parser_racc_read_token$19, $Parser_racc_shift$20, $Parser_racc_reduce$21, $Parser_racc_accept$23, $Parser_racc_e_pop$24, $Parser_racc_next_state$25, $Parser_racc_print_stacks$26, $Parser_racc_print_states$28, $Parser_racc_token2str$30, $Parser_token_to_str$31; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.yydebug = self.$$prototype.racc_debug_out = self.$$prototype.racc_error_status = self.$$prototype.racc_t = self.$$prototype.racc_vstack = self.$$prototype.racc_val = self.$$prototype.racc_state = self.$$prototype.racc_tstack = nil; + $proto.yydebug = $proto.racc_debug_out = $proto.racc_error_status = $proto.racc_t = $proto.racc_vstack = $proto.racc_val = $proto.racc_state = $proto.racc_tstack = nil; - Opal.const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); - Opal.const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version', $$($nesting, 'Racc_Runtime_Core_Version_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$($nesting, 'Racc_Runtime_Core_Revision_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); - Opal.defs($$($nesting, 'Parser'), '$racc_runtime_type', $Parser_racc_runtime_type$1 = function $$racc_runtime_type() { - var self = this; - - return $$($nesting, 'Racc_Runtime_Type') - }, $Parser_racc_runtime_type$1.$$arity = 0); + $const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); + $const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); + $const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); + $const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); + $const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); + $const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); + $const_set($nesting[0], 'Racc_Runtime_Core_Version', $$('Racc_Runtime_Core_Version_R')); + $const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$('Racc_Runtime_Core_Revision_R')); + $const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); + $defs($$('Parser'), '$racc_runtime_type', function $$racc_runtime_type() { + + return $$('Racc_Runtime_Type') + }, 0); - Opal.def(self, '$_racc_setup', $Parser__racc_setup$2 = function $$_racc_setup() { + $def(self, '$_racc_setup', function $$_racc_setup() { var $a, $b, self = this, $ret_or_1 = nil, arg = nil, $writer = nil; if ($gvars.stderr == null) $gvars.stderr = nil; - if ($truthy($$$(self.$class(), 'Racc_debug_parser'))) { - } else { + if (!$truthy($$$(self.$class(), 'Racc_debug_parser'))) { self.yydebug = false }; - if ($truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - } else { + if (!$truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { self.yydebug = false }; if ($truthy(self.yydebug)) { - if ($truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { - } else { + if (!$truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { self.racc_debug_out = $gvars.stderr }; - self.racc_debug_out = (function() {if ($truthy(($ret_or_1 = self.racc_debug_out))) { - return $ret_or_1 - } else { - return $gvars.stderr - }; return nil; })();}; + self.racc_debug_out = ($truthy(($ret_or_1 = self.racc_debug_out)) ? ($ret_or_1) : ($gvars.stderr)); + }; arg = $$$(self.$class(), 'Racc_arg'); if ($truthy($rb_lt(arg.$size(), 14))) { $writer = [13, true]; - $send(arg, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(arg, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; return arg; - }, $Parser__racc_setup$2.$$arity = 0); + }, 0); - Opal.def(self, '$_racc_init_sysvars', $Parser__racc_init_sysvars$3 = function $$_racc_init_sysvars() { + $def(self, '$_racc_init_sysvars', function $$_racc_init_sysvars() { var self = this; @@ -3778,28 +3161,28 @@ Opal.modules["racc/parser"] = function(Opal) { self.racc_read_next = true; self.racc_user_yyerror = false; return (self.racc_error_status = 0); - }, $Parser__racc_init_sysvars$3.$$arity = 0); + }, 0); - Opal.def(self, '$do_parse', $Parser_do_parse$4 = function $$do_parse() { + $def(self, '$do_parse', function $$do_parse() { var self = this; - return self.$__send__($$($nesting, 'Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) - }, $Parser_do_parse$4.$$arity = 0); + return self.$__send__($$('Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) + }, 0); - Opal.def(self, '$next_token', $Parser_next_token$5 = function $$next_token() { + $def(self, '$next_token', function $$next_token() { var self = this; - return self.$raise($$($nesting, 'NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") - }, $Parser_next_token$5.$$arity = 0); + return self.$raise($$('NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") + }, 0); - Opal.def(self, '$_racc_do_parse_rb', $Parser__racc_do_parse_rb$6 = function $$_racc_do_parse_rb(arg, in_debug) { - var $a, $b, $$7, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; + $def(self, '$_racc_do_parse_rb', function $$_racc_do_parse_rb(arg, in_debug) { + var $a, $b, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; self.$_racc_init_sysvars(); tok = (act = (i = nil)); - return $send(self, 'catch', ["racc_end_parse"], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s, $c, $d, $e, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + return $send(self, 'catch', ["racc_end_parse"], function $$1(){var $c, $d, $e, self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; if (self.racc_state == null) self.racc_state = nil; if (self.racc_read_next == null) self.racc_read_next = nil; if (self.racc_t == null) self.racc_t = nil; @@ -3811,32 +3194,22 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { if ($truthy(self.racc_read_next)) { - if ($truthy(self.racc_t['$!='](0))) { + if ($neqeq(self.racc_t, 0)) { - $e = self.$next_token(), $d = Opal.to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; + $e = self.$next_token(), $d = $to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; if ($truthy(tok)) { - self.racc_t = (function() {if ($truthy(($ret_or_2 = token_table['$[]'](tok)))) { - return $ret_or_2 - } else { - return 1 - }; return nil; })() + self.racc_t = ($truthy(($ret_or_1 = token_table['$[]'](tok))) ? ($ret_or_1) : (1)) } else { self.racc_t = 0 }; if ($truthy(self.yydebug)) { - self.$racc_read_token(self.racc_t, tok, self.racc_val)}; - self.racc_read_next = false;}}; + self.$racc_read_token(self.racc_t, tok, self.racc_val) + }; + self.racc_read_next = false; + } + }; i = $rb_plus(i, self.racc_t); - if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = $rb_ge(i, 0)))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_4 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_3 - }; return nil; })())) { - } else { + if (!(($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; } else { @@ -3845,24 +3218,24 @@ Opal.modules["racc/parser"] = function(Opal) { while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - }}, $$7.$$s = self, $$7.$$arity = 0, $$7)); - }, $Parser__racc_do_parse_rb$6.$$arity = 2); + }}, {$$arity: 0, $$s: self}); + }, 2); - Opal.def(self, '$yyparse', $Parser_yyparse$8 = function $$yyparse(recv, mid) { + $def(self, '$yyparse', function $$yyparse(recv, mid) { var self = this; - return self.$__send__($$($nesting, 'Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) - }, $Parser_yyparse$8.$$arity = 2); + return self.$__send__($$('Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) + }, 2); - Opal.def(self, '$_racc_yyparse_rb', $Parser__racc_yyparse_rb$9 = function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { - var $a, $b, $$10, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; + $def(self, '$_racc_yyparse_rb', function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { + var $a, $b, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; self.$_racc_init_sysvars(); act = nil; i = nil; - return $send(self, 'catch', ["racc_end_parse"], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $c, $d, $$11; + return $send(self, 'catch', ["racc_end_parse"], function $$2(){var $c, $d, self = $$2.$$s == null ? this : $$2.$$s; if (self.racc_state == null) self.racc_state = nil; @@ -3871,141 +3244,101 @@ Opal.modules["racc/parser"] = function(Opal) { } }; - return $send(recv, '__send__', [mid], ($$11 = function(tok, val){var self = $$11.$$s == null ? this : $$11.$$s, $e, $f, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + return $send(recv, '__send__', [mid], function $$3(tok, val){var $e, $f, self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil, $ret_or_2 = nil; if (self.racc_t == null) self.racc_t = nil; if (self.racc_state == null) self.racc_state = nil; if (self.racc_read_next == null) self.racc_read_next = nil; - if (tok == null) { - tok = nil; - }; + if (tok == null) tok = nil;; - if (val == null) { - val = nil; - }; + if (val == null) val = nil;; if ($truthy(tok)) { - self.racc_t = (function() {if ($truthy(($ret_or_5 = token_table['$[]'](tok)))) { - return $ret_or_5 - } else { - return 1 - }; return nil; })() + self.racc_t = ($truthy(($ret_or_1 = token_table['$[]'](tok))) ? ($ret_or_1) : (1)) } else { self.racc_t = 0 }; self.racc_val = val; self.racc_read_next = false; i = $rb_plus(i, self.racc_t); - if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge(i, 0)))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_7 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_6 - }; return nil; })())) { - } else { + if (!(($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - while ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']()))) { - return $ret_or_9 - } else { - return self.racc_read_next['$!']() - }; return nil; })()))) { - return $ret_or_8 - } else { - return self.racc_t['$=='](0) - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']())) ? ($ret_or_2) : (self.racc_read_next['$!']())))) ? ($ret_or_1) : (self.racc_t['$=='](0))))) { - if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = i))) { - return (i = $rb_plus(i, self.racc_t)) - } else { - return $ret_or_13 - }; return nil; })()))) { - return $rb_ge(i, 0) - } else { - return $ret_or_12 - }; return nil; })()))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_11 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_10 - }; return nil; })())) { - } else { + if (!(((($truthy(i) && ($truthy((i = $rb_plus(i, self.racc_t))))) && ($truthy($rb_ge(i, 0)))) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - };}, $$11.$$s = self, $$11.$$arity = 2, $$11));}, $$10.$$s = self, $$10.$$arity = 0, $$10)); - }, $Parser__racc_yyparse_rb$9.$$arity = 4); + };}, {$$arity: 2, $$s: self});}, {$$arity: 0, $$s: self}); + }, 4); - Opal.def(self, '$_racc_evalact', $Parser__racc_evalact$12 = function $$_racc_evalact(act, arg) { - var $a, $b, $$13, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, $ret_or_14 = nil, $ret_or_15 = nil, code = nil, $case = nil, i = nil, $ret_or_16 = nil, $ret_or_17 = nil; + $def(self, '$_racc_evalact', function $$_racc_evalact(act, arg) { + var $a, $b, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, code = nil, $ret_or_1 = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; - if ($truthy((function() {if ($truthy(($ret_or_14 = $rb_gt(act, 0)))) { - return $rb_lt(act, shift_n) - } else { - return $ret_or_14 - }; return nil; })())) { + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; + if (($truthy($rb_gt(act, 0)) && ($truthy($rb_lt(act, shift_n))))) { if ($truthy($rb_gt(self.racc_error_status, 0))) { - if (self.racc_t['$=='](1)) { - } else { + if (!$eqeq(self.racc_t, 1)) { self.racc_error_status = $rb_minus(self.racc_error_status, 1) - }}; + } + }; self.racc_vstack.$push(self.racc_val); self.racc_state.$push(act); self.racc_read_next = true; if ($truthy(self.yydebug)) { self.racc_tstack.$push(self.racc_t); - self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack);}; - } else if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_lt(act, 0)))) { - return $rb_gt(act, reduce_n['$-@']()) - } else { - return $ret_or_15 - }; return nil; })())) { + self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack); + }; + } else if (($truthy($rb_lt(act, 0)) && ($truthy($rb_gt(act, reduce_n['$-@']()))))) { - code = $send(self, 'catch', ["racc_jump"], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + code = $send(self, 'catch', ["racc_jump"], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; if (self.racc_state == null) self.racc_state = nil; self.racc_state.$push(self.$_racc_do_reduce(arg, act)); - return false;}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return false;}, {$$arity: 0, $$s: self}); if ($truthy(code)) { - $case = code; - if ((1)['$===']($case)) { - self.racc_user_yyerror = true; - return reduce_n['$-@']();} - else if ((2)['$===']($case)) {return shift_n} - else {self.$raise("[Racc Bug] unknown jump code")}}; - } else if (act['$=='](shift_n)) { + if ($eqeqeq(1, ($ret_or_1 = code))) { + + self.racc_user_yyerror = true; + return reduce_n['$-@'](); + } else if ($eqeqeq(2, $ret_or_1)) { + return shift_n + } else { + self.$raise("[Racc Bug] unknown jump code") + } + }; + } else if ($eqeq(act, shift_n)) { if ($truthy(self.yydebug)) { - self.$racc_accept()}; + self.$racc_accept() + }; self.$throw("racc_end_parse", self.racc_vstack['$[]'](0)); - } else if (act['$=='](reduce_n['$-@']())) { + } else if ($eqeq(act, reduce_n['$-@']())) { - $case = self.racc_error_status; - if ((0)['$===']($case)) {if ($truthy(arg['$[]'](21))) { + if ($eqeqeq(0, ($ret_or_1 = self.racc_error_status))) { + if (!$truthy(arg['$[]'](21))) { + self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) + } + } else if ($eqeqeq(3, $ret_or_1)) { + + if ($eqeq(self.racc_t, 0)) { + self.$throw("racc_end_parse", nil) + }; + self.racc_read_next = true; } else { - self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) - }} - else if ((3)['$===']($case)) { - if (self.racc_t['$=='](0)) { - self.$throw("racc_end_parse", nil)}; - self.racc_read_next = true;}; + nil + }; self.racc_user_yyerror = false; self.racc_error_status = 3; while ($truthy(true)) { @@ -4013,40 +3346,36 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { i = $rb_plus(i, 1); - if ($truthy((function() {if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = $rb_ge(i, 0)))) { - - return (act = action_table['$[]'](i)); - } else { - return $ret_or_17 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_16 - }; return nil; })())) { - break;};}; + if ((($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { + break; + }; + }; if ($truthy($rb_le(self.racc_state.$size(), 1))) { - self.$throw("racc_end_parse", nil)}; + self.$throw("racc_end_parse", nil) + }; self.racc_state.$pop(); self.racc_vstack.$pop(); if ($truthy(self.yydebug)) { self.racc_tstack.$pop(); - self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack);}; + self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack); + }; }; return act; } else { - self.$raise("" + "[Racc Bug] unknown action " + (act.$inspect())) + self.$raise("[Racc Bug] unknown action " + (act.$inspect())) }; if ($truthy(self.yydebug)) { - self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state)}; + self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state) + }; return nil; - }, $Parser__racc_evalact$12.$$arity = 2); + }, 2); - Opal.def(self, '$_racc_do_reduce', $Parser__racc_do_reduce$14 = function $$_racc_do_reduce(arg, act) { - var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, $ret_or_18 = nil, $ret_or_19 = nil, curstate = nil; + $def(self, '$_racc_do_reduce', function $$_racc_do_reduce(arg, act) { + var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, curstate = nil; - $b = arg, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; state = self.racc_state; vstack = self.racc_vstack; tstack = self.racc_tstack; @@ -4056,20 +3385,22 @@ Opal.modules["racc/parser"] = function(Opal) { method_id = reduce_table['$[]']($rb_plus(i, 2)); void_array = []; if ($truthy(self.yydebug)) { - tmp_t = tstack['$[]'](len['$-@'](), len)}; + tmp_t = tstack['$[]'](len['$-@'](), len) + }; tmp_v = vstack['$[]'](len['$-@'](), len); if ($truthy(self.yydebug)) { $writer = [len['$-@'](), len, void_array]; - $send(tstack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(tstack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; $writer = [len['$-@'](), len, void_array]; - $send(vstack, '[]=', Opal.to_a($writer)); + $send(vstack, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [len['$-@'](), len, void_array]; - $send(state, '[]=', Opal.to_a($writer)); + $send(state, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(use_result)) { vstack.$push(self.$__send__(method_id, tmp_v, vstack, tmp_v['$[]'](0))) @@ -4078,54 +3409,44 @@ Opal.modules["racc/parser"] = function(Opal) { }; tstack.$push(reduce_to); if ($truthy(self.yydebug)) { - self.$racc_reduce(tmp_t, reduce_to, tstack, vstack)}; + self.$racc_reduce(tmp_t, reduce_to, tstack, vstack) + }; k1 = $rb_minus(reduce_to, nt_base); if ($truthy((i = goto_pointer['$[]'](k1)))) { i = $rb_plus(i, state['$[]'](-1)); - if ($truthy((function() {if ($truthy(($ret_or_18 = (function() {if ($truthy(($ret_or_19 = $rb_ge(i, 0)))) { - - return (curstate = goto_table['$[]'](i)); - } else { - return $ret_or_19 - }; return nil; })()))) { - return goto_check['$[]'](i)['$=='](k1) - } else { - return $ret_or_18 - }; return nil; })())) { - return curstate};}; + if ((($truthy($rb_ge(i, 0)) && ($truthy((curstate = goto_table['$[]'](i))))) && ($eqeq(goto_check['$[]'](i), k1)))) { + return curstate + }; + }; return goto_default['$[]'](k1); - }, $Parser__racc_do_reduce$14.$$arity = 2); + }, 2); - Opal.def(self, '$on_error', $Parser_on_error$15 = function $$on_error(t, val, vstack) { - var self = this, $ret_or_20 = nil; + $def(self, '$on_error', function $$on_error(t, val, vstack) { + var self = this, $ret_or_1 = nil; - return self.$raise($$($nesting, 'ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), (function() {if ($truthy(($ret_or_20 = self.$token_to_str(t)))) { - return $ret_or_20 - } else { - return "?" - }; return nil; })())) - }, $Parser_on_error$15.$$arity = 3); + return self.$raise($$('ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), ($truthy(($ret_or_1 = self.$token_to_str(t))) ? ($ret_or_1) : ("?")))) + }, 3); - Opal.def(self, '$yyerror', $Parser_yyerror$16 = function $$yyerror() { + $def(self, '$yyerror', function $$yyerror() { var self = this; return self.$throw("racc_jump", 1) - }, $Parser_yyerror$16.$$arity = 0); + }, 0); - Opal.def(self, '$yyaccept', $Parser_yyaccept$17 = function $$yyaccept() { + $def(self, '$yyaccept', function $$yyaccept() { var self = this; return self.$throw("racc_jump", 2) - }, $Parser_yyaccept$17.$$arity = 0); + }, 0); - Opal.def(self, '$yyerrok', $Parser_yyerrok$18 = function $$yyerrok() { + $def(self, '$yyerrok', function $$yyerrok() { var self = this; return (self.racc_error_status = 0) - }, $Parser_yyerrok$18.$$arity = 0); + }, 0); - Opal.def(self, '$racc_read_token', $Parser_racc_read_token$19 = function $$racc_read_token(t, tok, val) { + $def(self, '$racc_read_token', function $$racc_read_token(t, tok, val) { var self = this; @@ -4133,19 +3454,19 @@ Opal.modules["racc/parser"] = function(Opal) { self.racc_debug_out.$print(tok.$inspect(), "(", self.$racc_token2str(t), ") "); self.racc_debug_out.$puts(val.$inspect()); return self.racc_debug_out.$puts(); - }, $Parser_racc_read_token$19.$$arity = 3); + }, 3); - Opal.def(self, '$racc_shift', $Parser_racc_shift$20 = function $$racc_shift(tok, tstack, vstack) { + $def(self, '$racc_shift', function $$racc_shift(tok, tstack, vstack) { var self = this; - self.racc_debug_out.$puts("" + "shift " + (self.$racc_token2str(tok))); + self.racc_debug_out.$puts("shift " + (self.$racc_token2str(tok))); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_shift$20.$$arity = 3); + }, 3); - Opal.def(self, '$racc_reduce', $Parser_racc_reduce$21 = function $$racc_reduce(toks, sim, tstack, vstack) { - var $$22, self = this, out = nil; + $def(self, '$racc_reduce', function $$racc_reduce(toks, sim, tstack, vstack) { + var self = this, out = nil; out = self.racc_debug_out; @@ -4153,29 +3474,27 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy(toks['$empty?']())) { out.$print(" ") } else { - $send(toks, 'each', [], ($$22 = function(t){var self = $$22.$$s == null ? this : $$22.$$s; + $send(toks, 'each', [], function $$5(t){var self = $$5.$$s == null ? this : $$5.$$s; - if (t == null) { - t = nil; - }; - return out.$print(" ", self.$racc_token2str(t));}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + if (t == null) t = nil;; + return out.$print(" ", self.$racc_token2str(t));}, {$$arity: 1, $$s: self}) }; - out.$puts("" + " --> " + (self.$racc_token2str(sim))); + out.$puts(" --> " + (self.$racc_token2str(sim))); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_reduce$21.$$arity = 4); + }, 4); - Opal.def(self, '$racc_accept', $Parser_racc_accept$23 = function $$racc_accept() { + $def(self, '$racc_accept', function $$racc_accept() { var self = this; self.racc_debug_out.$puts("accept"); return self.racc_debug_out.$puts(); - }, $Parser_racc_accept$23.$$arity = 0); + }, 0); - Opal.def(self, '$racc_e_pop', $Parser_racc_e_pop$24 = function $$racc_e_pop(state, tstack, vstack) { + $def(self, '$racc_e_pop', function $$racc_e_pop(state, tstack, vstack) { var self = this; @@ -4183,141 +3502,123 @@ Opal.modules["racc/parser"] = function(Opal) { self.$racc_print_states(state); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_e_pop$24.$$arity = 3); + }, 3); - Opal.def(self, '$racc_next_state', $Parser_racc_next_state$25 = function $$racc_next_state(curstate, state) { + $def(self, '$racc_next_state', function $$racc_next_state(curstate, state) { var self = this; - self.racc_debug_out.$puts("" + "goto " + (curstate)); + self.racc_debug_out.$puts("goto " + (curstate)); self.$racc_print_states(state); return self.racc_debug_out.$puts(); - }, $Parser_racc_next_state$25.$$arity = 2); + }, 2); - Opal.def(self, '$racc_print_stacks', $Parser_racc_print_stacks$26 = function $$racc_print_stacks(t, v) { - var $$27, self = this, out = nil; + $def(self, '$racc_print_stacks', function $$racc_print_stacks(t, v) { + var self = this, out = nil; out = self.racc_debug_out; out.$print(" ["); - $send(t, 'each_index', [], ($$27 = function(i){var self = $$27.$$s == null ? this : $$27.$$s; + $send(t, 'each_index', [], function $$6(i){var self = $$6.$$s == null ? this : $$6.$$s; - if (i == null) { - i = nil; - }; - return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, $$27.$$s = self, $$27.$$arity = 1, $$27)); + if (i == null) i = nil;; + return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, {$$arity: 1, $$s: self}); return out.$puts(" ]"); - }, $Parser_racc_print_stacks$26.$$arity = 2); + }, 2); - Opal.def(self, '$racc_print_states', $Parser_racc_print_states$28 = function $$racc_print_states(s) { - var $$29, self = this, out = nil; + $def(self, '$racc_print_states', function $$racc_print_states(s) { + var self = this, out = nil; out = self.racc_debug_out; out.$print(" ["); - $send(s, 'each', [], ($$29 = function(st){var self = $$29.$$s == null ? this : $$29.$$s; - + $send(s, 'each', [], function $$7(st){ - if (st == null) { - st = nil; - }; - return out.$print(" ", st);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + if (st == null) st = nil;; + return out.$print(" ", st);}, 1); return out.$puts(" ]"); - }, $Parser_racc_print_states$28.$$arity = 1); + }, 1); - Opal.def(self, '$racc_token2str', $Parser_racc_token2str$30 = function $$racc_token2str(tok) { - var self = this, $ret_or_21 = nil; + $def(self, '$racc_token2str', function $$racc_token2str(tok) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_21 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { - return $ret_or_21 + if ($truthy(($ret_or_1 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { + return $ret_or_1 } else { - return self.$raise("" + "[Racc Bug] can't convert token " + (tok) + " to string") + return self.$raise("[Racc Bug] can't convert token " + (tok) + " to string") } - }, $Parser_racc_token2str$30.$$arity = 1); - return (Opal.def(self, '$token_to_str', $Parser_token_to_str$31 = function $$token_to_str(t) { + }, 1); + return $def(self, '$token_to_str', function $$token_to_str(t) { var self = this; return $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](t) - }, $Parser_token_to_str$31.$$arity = 1), nil) && 'token_to_str'; + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/messages"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["parser/messages"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set, $hash2 = Opal.hash2, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $defs = Opal.defs; - Opal.add_stubs(['$freeze', '$[]', '$===', '$empty?', '$format']); + Opal.add_stubs('freeze,[],empty?,===,format'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'MESSAGES', $hash2(["unicode_point_too_large", "invalid_escape", "incomplete_escape", "invalid_hex_escape", "invalid_unicode_escape", "unterminated_unicode", "escape_eof", "string_eof", "regexp_options", "cvar_name", "ivar_name", "trailing_in_number", "empty_numeric", "invalid_octal", "no_dot_digit_literal", "bare_backslash", "unexpected", "embedded_document", "heredoc_id_has_newline", "heredoc_id_ends_with_nl", "unterminated_heredoc_id", "invalid_escape_use", "ambiguous_literal", "ambiguous_regexp", "ambiguous_prefix", "triple_dot_at_eol", "nth_ref_alias", "begin_in_method", "backref_assignment", "invalid_assignment", "module_name_const", "unexpected_token", "argument_const", "argument_ivar", "argument_gvar", "argument_cvar", "duplicate_argument", "empty_symbol", "odd_hash", "singleton_literal", "dynamic_const", "const_reassignment", "module_in_def", "class_in_def", "unexpected_percent_str", "block_and_blockarg", "masgn_as_condition", "block_given_to_yield", "invalid_regexp", "invalid_return", "csend_in_lhs_of_masgn", "cant_assign_to_numparam", "reserved_for_numparam", "ordinary_param_defined", "numparam_used_in_outer_scope", "circular_argument_reference", "pm_interp_in_var_name", "lvar_name", "undefined_lvar", "duplicate_variable_name", "duplicate_pattern_key", "endless_setter", "invalid_id_to_get", "forward_arg_after_restarg", "no_anonymous_blockarg", "useless_else", "duplicate_hash_key", "invalid_encoding", "invalid_action", "clobbered", "different_replacements", "swallowed_insertions", "swallowed_insertions_conflict", "crossing_deletions", "crossing_deletions_conflict", "crossing_insertions", "crossing_insertions_conflict"], {"unicode_point_too_large": "invalid Unicode codepoint (too large)", "invalid_escape": "invalid escape character syntax", "incomplete_escape": "incomplete character syntax", "invalid_hex_escape": "invalid hex escape", "invalid_unicode_escape": "invalid Unicode escape", "unterminated_unicode": "unterminated Unicode escape", "escape_eof": "escape sequence meets end of file", "string_eof": "unterminated string meets end of file", "regexp_options": "unknown regexp options: %{options}", "cvar_name": "`%{name}' is not allowed as a class variable name", "ivar_name": "`%{name}' is not allowed as an instance variable name", "trailing_in_number": "trailing `%{character}' in number", "empty_numeric": "numeric literal without digits", "invalid_octal": "invalid octal digit", "no_dot_digit_literal": "no . floating literal anymore; put 0 before dot", "bare_backslash": "bare backslash only allowed before newline", "unexpected": "unexpected `%{character}'", "embedded_document": "embedded document meets end of file (and they embark on a romantic journey)", "heredoc_id_has_newline": "here document identifier across newlines, never match", "heredoc_id_ends_with_nl": "here document identifier ends with a newline", "unterminated_heredoc_id": "unterminated heredoc id", "invalid_escape_use": "invalid character syntax; use ?%{escape}", "ambiguous_literal": "ambiguous first argument; put parentheses or a space even after the operator", "ambiguous_regexp": "ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator", "ambiguous_prefix": "`%{prefix}' interpreted as argument prefix", "triple_dot_at_eol": "... at EOL, should be parenthesized", "nth_ref_alias": "cannot define an alias for a back-reference variable", "begin_in_method": "BEGIN in method", "backref_assignment": "cannot assign to a back-reference variable", "invalid_assignment": "cannot assign to a keyword", "module_name_const": "class or module name must be a constant literal", "unexpected_token": "unexpected token %{token}", "argument_const": "formal argument cannot be a constant", "argument_ivar": "formal argument cannot be an instance variable", "argument_gvar": "formal argument cannot be a global variable", "argument_cvar": "formal argument cannot be a class variable", "duplicate_argument": "duplicate argument name", "empty_symbol": "empty symbol literal", "odd_hash": "odd number of entries for a hash", "singleton_literal": "cannot define a singleton method for a literal", "dynamic_const": "dynamic constant assignment", "const_reassignment": "constant re-assignment", "module_in_def": "module definition in method body", "class_in_def": "class definition in method body", "unexpected_percent_str": "%{type}: unknown type of percent-literal", "block_and_blockarg": "both block argument and literal block are passed", "masgn_as_condition": "multiple assignment in conditional context", "block_given_to_yield": "block given to yield", "invalid_regexp": "%{message}", "invalid_return": "Invalid return in class/module body", "csend_in_lhs_of_masgn": "&. inside multiple assignment destination", "cant_assign_to_numparam": "cannot assign to numbered parameter %{name}", "reserved_for_numparam": "%{name} is reserved for numbered parameter", "ordinary_param_defined": "ordinary parameter is defined", "numparam_used_in_outer_scope": "numbered parameter is already used in an outer scope", "circular_argument_reference": "circular argument reference %{var_name}", "pm_interp_in_var_name": "symbol literal with interpolation is not allowed", "lvar_name": "`%{name}' is not allowed as a local variable name", "undefined_lvar": "no such local variable: `%{name}'", "duplicate_variable_name": "duplicate variable name %{name}", "duplicate_pattern_key": "duplicate hash pattern key %{name}", "endless_setter": "setter method cannot be defined in an endless method definition", "invalid_id_to_get": "identifier %{identifier} is not valid to get", "forward_arg_after_restarg": "... after rest argument", "no_anonymous_blockarg": "no anonymous block parameter", "useless_else": "else without rescue is useless", "duplicate_hash_key": "key is duplicated and overwritten", "invalid_encoding": "literal contains escape sequences incompatible with UTF-8", "invalid_action": "cannot %{action}", "clobbered": "clobbered by: %{action}", "different_replacements": "different replacements: %{replacement} vs %{other_replacement}", "swallowed_insertions": "this replacement:", "swallowed_insertions_conflict": "swallows some inner rewriting actions:", "crossing_deletions": "the deletion of:", "crossing_deletions_conflict": "is crossing:", "crossing_insertions": "the rewriting action on:", "crossing_insertions_conflict": "is crossing that on:"}).$freeze()); + $const_set($nesting[0], 'MESSAGES', $hash2(["unicode_point_too_large", "invalid_escape", "incomplete_escape", "invalid_hex_escape", "invalid_unicode_escape", "unterminated_unicode", "escape_eof", "string_eof", "regexp_options", "cvar_name", "ivar_name", "trailing_in_number", "empty_numeric", "invalid_octal", "no_dot_digit_literal", "bare_backslash", "unexpected", "embedded_document", "heredoc_id_has_newline", "heredoc_id_ends_with_nl", "unterminated_heredoc_id", "invalid_escape_use", "ambiguous_literal", "ambiguous_regexp", "ambiguous_prefix", "triple_dot_at_eol", "nth_ref_alias", "begin_in_method", "backref_assignment", "invalid_assignment", "module_name_const", "unexpected_token", "argument_const", "argument_ivar", "argument_gvar", "argument_cvar", "duplicate_argument", "empty_symbol", "odd_hash", "singleton_literal", "dynamic_const", "const_reassignment", "module_in_def", "class_in_def", "unexpected_percent_str", "block_and_blockarg", "masgn_as_condition", "block_given_to_yield", "invalid_regexp", "invalid_return", "csend_in_lhs_of_masgn", "cant_assign_to_numparam", "reserved_for_numparam", "ordinary_param_defined", "numparam_used_in_outer_scope", "circular_argument_reference", "pm_interp_in_var_name", "lvar_name", "undefined_lvar", "duplicate_variable_name", "duplicate_pattern_key", "endless_setter", "invalid_id_to_get", "forward_arg_after_restarg", "no_anonymous_blockarg", "useless_else", "duplicate_hash_key", "invalid_encoding", "invalid_action", "clobbered", "different_replacements", "swallowed_insertions", "swallowed_insertions_conflict", "crossing_deletions", "crossing_deletions_conflict", "crossing_insertions", "crossing_insertions_conflict"], {"unicode_point_too_large": "invalid Unicode codepoint (too large)", "invalid_escape": "invalid escape character syntax", "incomplete_escape": "incomplete character syntax", "invalid_hex_escape": "invalid hex escape", "invalid_unicode_escape": "invalid Unicode escape", "unterminated_unicode": "unterminated Unicode escape", "escape_eof": "escape sequence meets end of file", "string_eof": "unterminated string meets end of file", "regexp_options": "unknown regexp options: %{options}", "cvar_name": "`%{name}' is not allowed as a class variable name", "ivar_name": "`%{name}' is not allowed as an instance variable name", "trailing_in_number": "trailing `%{character}' in number", "empty_numeric": "numeric literal without digits", "invalid_octal": "invalid octal digit", "no_dot_digit_literal": "no . floating literal anymore; put 0 before dot", "bare_backslash": "bare backslash only allowed before newline", "unexpected": "unexpected `%{character}'", "embedded_document": "embedded document meets end of file (and they embark on a romantic journey)", "heredoc_id_has_newline": "here document identifier across newlines, never match", "heredoc_id_ends_with_nl": "here document identifier ends with a newline", "unterminated_heredoc_id": "unterminated heredoc id", "invalid_escape_use": "invalid character syntax; use ?%{escape}", "ambiguous_literal": "ambiguous first argument; put parentheses or a space even after the operator", "ambiguous_regexp": "ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator", "ambiguous_prefix": "`%{prefix}' interpreted as argument prefix", "triple_dot_at_eol": "... at EOL, should be parenthesized", "nth_ref_alias": "cannot define an alias for a back-reference variable", "begin_in_method": "BEGIN in method", "backref_assignment": "cannot assign to a back-reference variable", "invalid_assignment": "cannot assign to a keyword", "module_name_const": "class or module name must be a constant literal", "unexpected_token": "unexpected token %{token}", "argument_const": "formal argument cannot be a constant", "argument_ivar": "formal argument cannot be an instance variable", "argument_gvar": "formal argument cannot be a global variable", "argument_cvar": "formal argument cannot be a class variable", "duplicate_argument": "duplicate argument name", "empty_symbol": "empty symbol literal", "odd_hash": "odd number of entries for a hash", "singleton_literal": "cannot define a singleton method for a literal", "dynamic_const": "dynamic constant assignment", "const_reassignment": "constant re-assignment", "module_in_def": "module definition in method body", "class_in_def": "class definition in method body", "unexpected_percent_str": "%{type}: unknown type of percent-literal", "block_and_blockarg": "both block argument and literal block are passed", "masgn_as_condition": "multiple assignment in conditional context", "block_given_to_yield": "block given to yield", "invalid_regexp": "%{message}", "invalid_return": "Invalid return in class/module body", "csend_in_lhs_of_masgn": "&. inside multiple assignment destination", "cant_assign_to_numparam": "cannot assign to numbered parameter %{name}", "reserved_for_numparam": "%{name} is reserved for numbered parameter", "ordinary_param_defined": "ordinary parameter is defined", "numparam_used_in_outer_scope": "numbered parameter is already used in an outer scope", "circular_argument_reference": "circular argument reference %{var_name}", "pm_interp_in_var_name": "symbol literal with interpolation is not allowed", "lvar_name": "`%{name}' is not allowed as a local variable name", "undefined_lvar": "no such local variable: `%{name}'", "duplicate_variable_name": "duplicate variable name %{name}", "duplicate_pattern_key": "duplicate hash pattern key %{name}", "endless_setter": "setter method cannot be defined in an endless method definition", "invalid_id_to_get": "identifier %{identifier} is not valid to get", "forward_arg_after_restarg": "... after rest argument", "no_anonymous_blockarg": "no anonymous block parameter", "useless_else": "else without rescue is useless", "duplicate_hash_key": "key is duplicated and overwritten", "invalid_encoding": "literal contains escape sequences incompatible with UTF-8", "invalid_action": "cannot %{action}", "clobbered": "clobbered by: %{action}", "different_replacements": "different replacements: %{replacement} vs %{other_replacement}", "swallowed_insertions": "this replacement:", "swallowed_insertions_conflict": "swallows some inner rewriting actions:", "crossing_deletions": "the deletion of:", "crossing_deletions_conflict": "is crossing:", "crossing_insertions": "the rewriting action on:", "crossing_insertions_conflict": "is crossing that on:"}).$freeze()); return (function($base, $parent_nesting) { var self = $module($base, 'Messages'); - var $nesting = [self].concat($parent_nesting), $Messages_compile$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.defs(self, '$compile', $Messages_compile$1 = function $$compile(reason, arguments$) { - var self = this, template = nil, $ret_or_1 = nil; + return $defs(self, '$compile', function $$compile(reason, arguments$) { + var self = this, template = nil; - template = $$($nesting, 'MESSAGES')['$[]'](reason); - if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Hash')['$==='](arguments$)))) { - return arguments$['$empty?']() - } else { - return $ret_or_1 - }; return nil; })())) { - return template}; + template = $$('MESSAGES')['$[]'](reason); + if (($eqeqeq($$('Hash'), arguments$) && ($truthy(arguments$['$empty?']())))) { + return template + }; return self.$format(template, arguments$); - }, $Messages_compile$1.$$arity = 2), nil) && 'compile' + }, 2) })($nesting[0], $nesting); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/deprecation"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["parser/deprecation"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$attr_writer', '$warn']); + Opal.add_stubs('attr_writer,warn'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); var $nesting = [self].concat($parent_nesting); - return (function($base, $parent_nesting) { + return (function($base) { var self = $module($base, 'Deprecation'); - var $nesting = [self].concat($parent_nesting), $Deprecation_warn_of_deprecation$1; - + self.$attr_writer("warned_of_deprecation"); - return (Opal.def(self, '$warn_of_deprecation', $Deprecation_warn_of_deprecation$1 = function $$warn_of_deprecation() { + return $def(self, '$warn_of_deprecation', function $$warn_of_deprecation() { var self = this, $ret_or_1 = nil, $ret_or_2 = nil; if (self.warned_of_deprecation == null) self.warned_of_deprecation = nil; - return (self.warned_of_deprecation = (function() {if ($truthy(($ret_or_1 = self.warned_of_deprecation))) { - return $ret_or_1 - } else if ($truthy(($ret_or_2 = self.$warn($$$(self, 'DEPRECATION_WARNING'))))) { - return $ret_or_2 - } else { - return true - }; return nil; })()) - }, $Deprecation_warn_of_deprecation$1.$$arity = 0), nil) && 'warn_of_deprecation'; - })($nesting[0], $nesting) + return (self.warned_of_deprecation = ($truthy(($ret_or_1 = self.warned_of_deprecation)) ? ($ret_or_1) : ($truthy(($ret_or_2 = self.$warn($$$(self, 'DEPRECATION_WARNING')))) ? ($ret_or_2) : (true)))) + }, 0); + })($nesting[0]) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/ast/processor"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $slice = Opal.slice; +Opal.modules["parser/ast/processor"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $alias = Opal.alias, $to_a = Opal.to_a, $not = Opal.not, $truthy = Opal.truthy, $slice = Opal.slice; - Opal.add_stubs(['$updated', '$process_all', '$on_var', '$!', '$nil?', '$process', '$on_vasgn', '$on_argument', '$is_a?', '$[]', '$children', '$process_regular_node', '$warn']); + Opal.add_stubs('updated,process_all,on_var,!,nil?,process,on_vasgn,on_argument,is_a?,[],children,process_regular_node,warn'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -4331,15 +3632,15 @@ Opal.modules["parser/ast/processor"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Processor'); - var $nesting = [self].concat($parent_nesting), $Processor_process_regular_node$1, $Processor_on_var$2, $Processor_process_variable_node$3, $Processor_on_vasgn$4, $Processor_process_var_asgn_node$5, $Processor_on_op_asgn$6, $Processor_on_const$7, $Processor_on_casgn$8, $Processor_on_argument$9, $Processor_process_argument_node$10, $Processor_on_procarg0$11, $Processor_on_def$12, $Processor_on_defs$13, $Processor_on_send$14, $Processor_on_numblock$15, $Processor_process_variable_node$16, $Processor_process_var_asgn_node$17, $Processor_process_argument_node$18, $Processor_on_empty_else$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$process_regular_node', $Processor_process_regular_node$1 = function $$process_regular_node(node) { + $def(self, '$process_regular_node', function $$process_regular_node(node) { var self = this; return node.$updated(nil, self.$process_all(node)) - }, $Processor_process_regular_node$1.$$arity = 1); + }, 1); $alias(self, "on_dstr", "process_regular_node"); $alias(self, "on_dsym", "process_regular_node"); $alias(self, "on_regexp", "process_regular_node"); @@ -4353,17 +3654,16 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_irange", "process_regular_node"); $alias(self, "on_erange", "process_regular_node"); - Opal.def(self, '$on_var', $Processor_on_var$2 = function $$on_var(node) { - var self = this; - + $def(self, '$on_var', function $$on_var(node) { + return node - }, $Processor_on_var$2.$$arity = 1); + }, 1); - Opal.def(self, '$process_variable_node', $Processor_process_variable_node$3 = function $$process_variable_node(node) { + $def(self, '$process_variable_node', function $$process_variable_node(node) { var self = this; return self.$on_var(node) - }, $Processor_process_variable_node$3.$$arity = 1); + }, 1); $alias(self, "on_lvar", "process_variable_node"); $alias(self, "on_ivar", "process_variable_node"); $alias(self, "on_gvar", "process_variable_node"); @@ -4371,23 +3671,23 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_back_ref", "process_variable_node"); $alias(self, "on_nth_ref", "process_variable_node"); - Opal.def(self, '$on_vasgn', $Processor_on_vasgn$4 = function $$on_vasgn(node) { + $def(self, '$on_vasgn', function $$on_vasgn(node) { var $a, self = this, name = nil, value_node = nil; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; + if ($not(value_node['$nil?']())) { return node.$updated(nil, [name, self.$process(value_node)]) } else { return node }; - }, $Processor_on_vasgn$4.$$arity = 1); + }, 1); - Opal.def(self, '$process_var_asgn_node', $Processor_process_var_asgn_node$5 = function $$process_var_asgn_node(node) { + $def(self, '$process_var_asgn_node', function $$process_var_asgn_node(node) { var self = this; return self.$on_vasgn(node) - }, $Processor_process_var_asgn_node$5.$$arity = 1); + }, 1); $alias(self, "on_lvasgn", "process_var_asgn_node"); $alias(self, "on_ivasgn", "process_var_asgn_node"); $alias(self, "on_gvasgn", "process_var_asgn_node"); @@ -4395,54 +3695,54 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_and_asgn", "process_regular_node"); $alias(self, "on_or_asgn", "process_regular_node"); - Opal.def(self, '$on_op_asgn', $Processor_on_op_asgn$6 = function $$on_op_asgn(node) { + $def(self, '$on_op_asgn', function $$on_op_asgn(node) { var $a, self = this, var_node = nil, method_name = nil, value_node = nil; - $a = [].concat(Opal.to_a(node)), (var_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node)), (var_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; return node.$updated(nil, [self.$process(var_node), method_name, self.$process(value_node)]); - }, $Processor_on_op_asgn$6.$$arity = 1); + }, 1); $alias(self, "on_mlhs", "process_regular_node"); $alias(self, "on_masgn", "process_regular_node"); - Opal.def(self, '$on_const', $Processor_on_const$7 = function $$on_const(node) { + $def(self, '$on_const', function $$on_const(node) { var $a, self = this, scope_node = nil, name = nil; - $a = [].concat(Opal.to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; return node.$updated(nil, [self.$process(scope_node), name]); - }, $Processor_on_const$7.$$arity = 1); + }, 1); - Opal.def(self, '$on_casgn', $Processor_on_casgn$8 = function $$on_casgn(node) { + $def(self, '$on_casgn', function $$on_casgn(node) { var $a, self = this, scope_node = nil, name = nil, value_node = nil; - $a = [].concat(Opal.to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { + $a = [].concat($to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; + if ($not(value_node['$nil?']())) { return node.$updated(nil, [self.$process(scope_node), name, self.$process(value_node)]) } else { return node.$updated(nil, [self.$process(scope_node), name]) }; - }, $Processor_on_casgn$8.$$arity = 1); + }, 1); $alias(self, "on_args", "process_regular_node"); - Opal.def(self, '$on_argument', $Processor_on_argument$9 = function $$on_argument(node) { + $def(self, '$on_argument', function $$on_argument(node) { var $a, self = this, arg_name = nil, value_node = nil; - $a = [].concat(Opal.to_a(node)), (arg_name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { + $a = [].concat($to_a(node)), (arg_name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; + if ($not(value_node['$nil?']())) { return node.$updated(nil, [arg_name, self.$process(value_node)]) } else { return node }; - }, $Processor_on_argument$9.$$arity = 1); + }, 1); - Opal.def(self, '$process_argument_node', $Processor_process_argument_node$10 = function $$process_argument_node(node) { + $def(self, '$process_argument_node', function $$process_argument_node(node) { var self = this; return self.$on_argument(node) - }, $Processor_process_argument_node$10.$$arity = 1); + }, 1); $alias(self, "on_arg", "process_argument_node"); $alias(self, "on_optarg", "process_argument_node"); $alias(self, "on_restarg", "process_argument_node"); @@ -4453,15 +3753,15 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_kwrestarg", "process_argument_node"); $alias(self, "on_forward_arg", "process_argument_node"); - Opal.def(self, '$on_procarg0', $Processor_on_procarg0$11 = function $$on_procarg0(node) { + $def(self, '$on_procarg0', function $$on_procarg0(node) { var self = this; - if ($truthy(node.$children()['$[]'](0)['$is_a?']($$($nesting, 'Symbol')))) { + if ($truthy(node.$children()['$[]'](0)['$is_a?']($$('Symbol')))) { return self.$on_argument(node) } else { return self.$process_regular_node(node) } - }, $Processor_on_procarg0$11.$$arity = 1); + }, 1); $alias(self, "on_arg_expr", "process_regular_node"); $alias(self, "on_restarg_expr", "process_regular_node"); $alias(self, "on_blockarg_expr", "process_regular_node"); @@ -4470,46 +3770,47 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_class", "process_regular_node"); $alias(self, "on_sclass", "process_regular_node"); - Opal.def(self, '$on_def', $Processor_on_def$12 = function $$on_def(node) { + $def(self, '$on_def', function $$on_def(node) { var $a, self = this, name = nil, args_node = nil, body_node = nil; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (args_node = ($a[1] == null ? nil : $a[1])), (body_node = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (args_node = ($a[1] == null ? nil : $a[1])), (body_node = ($a[2] == null ? nil : $a[2])), $a; return node.$updated(nil, [name, self.$process(args_node), self.$process(body_node)]); - }, $Processor_on_def$12.$$arity = 1); + }, 1); - Opal.def(self, '$on_defs', $Processor_on_defs$13 = function $$on_defs(node) { + $def(self, '$on_defs', function $$on_defs(node) { var $a, self = this, definee_node = nil, name = nil, args_node = nil, body_node = nil; - $a = [].concat(Opal.to_a(node)), (definee_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (args_node = ($a[2] == null ? nil : $a[2])), (body_node = ($a[3] == null ? nil : $a[3])), $a; + $a = [].concat($to_a(node)), (definee_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (args_node = ($a[2] == null ? nil : $a[2])), (body_node = ($a[3] == null ? nil : $a[3])), $a; return node.$updated(nil, [self.$process(definee_node), name, self.$process(args_node), self.$process(body_node)]); - }, $Processor_on_defs$13.$$arity = 1); + }, 1); $alias(self, "on_undef", "process_regular_node"); $alias(self, "on_alias", "process_regular_node"); - Opal.def(self, '$on_send', $Processor_on_send$14 = function $$on_send(node) { + $def(self, '$on_send', function $$on_send(node) { var $a, self = this, receiver_node = nil, method_name = nil, arg_nodes = nil; - $a = [].concat(Opal.to_a(node)), (receiver_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (arg_nodes = $slice.call($a, 2)), $a; + $a = [].concat($to_a(node)), (receiver_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (arg_nodes = $slice.call($a, 2)), $a; if ($truthy(receiver_node)) { - receiver_node = self.$process(receiver_node)}; - return node.$updated(nil, [receiver_node, method_name].concat(Opal.to_a(self.$process_all(arg_nodes)))); - }, $Processor_on_send$14.$$arity = 1); + receiver_node = self.$process(receiver_node) + }; + return node.$updated(nil, [receiver_node, method_name].concat($to_a(self.$process_all(arg_nodes)))); + }, 1); $alias(self, "on_csend", "on_send"); $alias(self, "on_index", "process_regular_node"); $alias(self, "on_indexasgn", "process_regular_node"); $alias(self, "on_block", "process_regular_node"); $alias(self, "on_lambda", "process_regular_node"); - Opal.def(self, '$on_numblock', $Processor_on_numblock$15 = function $$on_numblock(node) { + $def(self, '$on_numblock', function $$on_numblock(node) { var $a, self = this, method_call = nil, max_numparam = nil, body = nil; - $a = [].concat(Opal.to_a(node)), (method_call = ($a[0] == null ? nil : $a[0])), (max_numparam = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node)), (method_call = ($a[0] == null ? nil : $a[0])), (max_numparam = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; return node.$updated(nil, [self.$process(method_call), max_numparam, self.$process(body)]); - }, $Processor_on_numblock$15.$$arity = 1); + }, 1); $alias(self, "on_while", "process_regular_node"); $alias(self, "on_while_post", "process_regular_node"); $alias(self, "on_until", "process_regular_node"); @@ -4558,44 +3859,42 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_const_pattern", "process_regular_node"); $alias(self, "on_find_pattern", "process_regular_node"); - Opal.def(self, '$process_variable_node', $Processor_process_variable_node$16 = function $$process_variable_node(node) { + $def(self, '$process_variable_node', function $$process_variable_node(node) { var self = this; - self.$warn("" + "Parser::AST::Processor#process_variable_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_var instead."); + self.$warn("Parser::AST::Processor#process_variable_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_var instead."); return self.$on_var(node); - }, $Processor_process_variable_node$16.$$arity = 1); + }, 1); - Opal.def(self, '$process_var_asgn_node', $Processor_process_var_asgn_node$17 = function $$process_var_asgn_node(node) { + $def(self, '$process_var_asgn_node', function $$process_var_asgn_node(node) { var self = this; - self.$warn("" + "Parser::AST::Processor#process_var_asgn_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_vasgn instead."); + self.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_vasgn instead."); return self.$on_vasgn(node); - }, $Processor_process_var_asgn_node$17.$$arity = 1); + }, 1); - Opal.def(self, '$process_argument_node', $Processor_process_argument_node$18 = function $$process_argument_node(node) { + $def(self, '$process_argument_node', function $$process_argument_node(node) { var self = this; - self.$warn("" + "Parser::AST::Processor#process_argument_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_argument instead."); + self.$warn("Parser::AST::Processor#process_argument_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_argument instead."); return self.$on_argument(node); - }, $Processor_process_argument_node$18.$$arity = 1); - return (Opal.def(self, '$on_empty_else', $Processor_on_empty_else$19 = function $$on_empty_else(node) { - var self = this; - + }, 1); + return $def(self, '$on_empty_else', function $$on_empty_else(node) { + return node - }, $Processor_on_empty_else$19.$$arity = 1), nil) && 'on_empty_else'; - })($nesting[0], $$$($$$('::', 'AST'), 'Processor'), $nesting) + }, 1); + })($nesting[0], $$$($$$('AST'), 'Processor'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/meta"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["parser/meta"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set; - Opal.add_stubs(['$freeze', '$to_set']); + Opal.add_stubs('freeze,to_set'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -4606,28 +3905,15 @@ Opal.modules["parser/meta"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return Opal.const_set($nesting[0], 'NODE_TYPES', ["true", "false", "nil", "int", "float", "str", "dstr", "sym", "dsym", "xstr", "regopt", "regexp", "array", "splat", "pair", "kwsplat", "hash", "irange", "erange", "self", "lvar", "ivar", "cvar", "gvar", "const", "defined?", "lvasgn", "ivasgn", "cvasgn", "gvasgn", "casgn", "mlhs", "masgn", "op_asgn", "and_asgn", "ensure", "rescue", "arg_expr", "or_asgn", "back_ref", "nth_ref", "match_with_lvasgn", "match_current_line", "module", "class", "sclass", "def", "defs", "undef", "alias", "args", "cbase", "arg", "optarg", "restarg", "blockarg", "block_pass", "kwarg", "kwoptarg", "kwrestarg", "kwnilarg", "send", "csend", "super", "zsuper", "yield", "block", "and", "not", "or", "if", "when", "case", "while", "until", "while_post", "until_post", "for", "break", "next", "redo", "return", "resbody", "kwbegin", "begin", "retry", "preexe", "postexe", "iflipflop", "eflipflop", "shadowarg", "complex", "rational", "__FILE__", "__LINE__", "__ENCODING__", "ident", "lambda", "indexasgn", "index", "procarg0", "restarg_expr", "blockarg_expr", "objc_kwarg", "objc_restarg", "objc_varargs", "numargs", "numblock", "forward_args", "forwarded_args", "forward_arg", "case_match", "in_match", "in_pattern", "match_var", "pin", "match_alt", "match_as", "match_rest", "array_pattern", "match_with_trailing_comma", "array_pattern_with_tail", "hash_pattern", "const_pattern", "if_guard", "unless_guard", "match_nil_pattern", "empty_else", "find_pattern", "kwargs", "match_pattern_p", "match_pattern"].$to_set().$freeze()) + return $const_set($nesting[0], 'NODE_TYPES', ["true", "false", "nil", "int", "float", "str", "dstr", "sym", "dsym", "xstr", "regopt", "regexp", "array", "splat", "pair", "kwsplat", "hash", "irange", "erange", "self", "lvar", "ivar", "cvar", "gvar", "const", "defined?", "lvasgn", "ivasgn", "cvasgn", "gvasgn", "casgn", "mlhs", "masgn", "op_asgn", "and_asgn", "ensure", "rescue", "arg_expr", "or_asgn", "back_ref", "nth_ref", "match_with_lvasgn", "match_current_line", "module", "class", "sclass", "def", "defs", "undef", "alias", "args", "cbase", "arg", "optarg", "restarg", "blockarg", "block_pass", "kwarg", "kwoptarg", "kwrestarg", "kwnilarg", "send", "csend", "super", "zsuper", "yield", "block", "and", "not", "or", "if", "when", "case", "while", "until", "while_post", "until_post", "for", "break", "next", "redo", "return", "resbody", "kwbegin", "begin", "retry", "preexe", "postexe", "iflipflop", "eflipflop", "shadowarg", "complex", "rational", "__FILE__", "__LINE__", "__ENCODING__", "ident", "lambda", "indexasgn", "index", "procarg0", "restarg_expr", "blockarg_expr", "objc_kwarg", "objc_restarg", "objc_varargs", "numargs", "numblock", "forward_args", "forwarded_args", "forward_arg", "case_match", "in_match", "in_pattern", "match_var", "pin", "match_alt", "match_as", "match_rest", "array_pattern", "match_with_trailing_comma", "array_pattern_with_tail", "hash_pattern", "const_pattern", "if_guard", "unless_guard", "match_nil_pattern", "empty_else", "find_pattern", "kwargs", "match_pattern_p", "match_pattern"].$to_set().$freeze()) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/buffer"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $enc = Opal.enc, $truthy = Opal.truthy, $gvars = Opal.gvars, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; - - Opal.add_stubs(['$attr_reader', '$empty?', '$=~', '$start_with?', '$freeze', '$==', '$[]', '$nil?', '$!=', '$match', '$find', '$encoding', '$recognize_encoding', '$force_encoding', '$encode', '$to_s', '$source=', '$-', '$open', '$read', '$raise', '$frozen?', '$dup', '$reencode_string', '$class', '$valid_encoding?', '$name', '$raw_source=', '$gsub', '$!', '$ascii_only?', '$line_index_for_position', '$line_begins', '$+', '$to_a', '$lines', '$end_with?', '$<<', '$each', '$chomp!', '$fetch', '$source_lines', '$<', '$>=', '$size', '$new', '$source', '$source_range', '$private', '$index', '$bsearch', '$[]=', '$method_defined?', '$bsearch_index']); +Opal.modules["parser/source/buffer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $enc = Opal.enc, $truthy = Opal.truthy, $gvars = Opal.gvars, $eqeq = Opal.eqeq, $neqeq = Opal.neqeq, $defs = Opal.defs, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $not = Opal.not, $rb_plus = Opal.rb_plus, $rb_ge = Opal.rb_ge, $rb_lt = Opal.rb_lt, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs('attr_reader,empty?,=~,start_with?,freeze,==,[],!=,nil?,match,find,encoding,recognize_encoding,force_encoding,encode,to_s,source=,-,open,read,raise,frozen?,dup,reencode_string,class,valid_encoding?,name,raw_source=,gsub,!,ascii_only?,line_index_for_position,line_begins,+,to_a,lines,end_with?,<<,each,chomp!,fetch,source_lines,>=,size,<,new,source,source_range,private,index,bsearch,[]=,method_defined?,bsearch_index'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -4641,68 +3927,58 @@ Opal.modules["parser/source/buffer"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Buffer'); - var $nesting = [self].concat($parent_nesting), $Buffer_recognize_encoding$1, $Buffer_reencode_string$2, $Buffer_initialize$3, $Buffer_read$4, $Buffer_source$6, $Buffer_source$eq$7, $Buffer_raw_source$eq$8, $Buffer_slice$9, $Buffer_decompose_position$10, $Buffer_line_for_position$11, $Buffer_column_for_position$12, $Buffer_source_lines$13, $Buffer_source_line$15, $Buffer_line_range$16, $Buffer_source_range$17, $Buffer_last_line$18, $Buffer_freeze$19, $Buffer_inspect$20, $Buffer_line_begins$21, $Buffer_line_index_for_position$22, $Buffer_bsearch$23, $Buffer_bsearch$25; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.name = self.$$prototype.source = self.$$prototype.slice_source = self.$$prototype.first_line = self.$$prototype.lines = self.$$prototype.source_range = self.$$prototype.line_begins = self.$$prototype.line_index_for_position = self.$$prototype.line_range = nil; + $proto.name = $proto.source = $proto.slice_source = $proto.first_line = $proto.lines = $proto.source_range = $proto.line_begins = $proto.line_index_for_position = $proto.line_range = nil; self.$attr_reader("name", "first_line"); - Opal.const_set($nesting[0], 'ENCODING_RE', Opal.regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*", "ASCII-8BIT"), $enc("(", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("(utf8-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+)", "ASCII-8BIT"), $enc(")", "ASCII-8BIT"), $enc("", "ASCII-8BIT")])); - Opal.defs(self, '$recognize_encoding', $Buffer_recognize_encoding$1 = function $$recognize_encoding(string) { - var $a, $b, self = this, first_line = nil, second_line = nil, encoding_line = nil, $ret_or_1 = nil, result = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $const_set($nesting[0], 'ENCODING_RE', $regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*", "ASCII-8BIT"), $enc("(", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("(utf8-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+)", "ASCII-8BIT"), $enc(")", "ASCII-8BIT"), $enc("", "ASCII-8BIT")])); + $defs(self, '$recognize_encoding', function $$recognize_encoding(string) { + var $a, $b, first_line = nil, second_line = nil, encoding_line = nil, result = nil, $ret_or_1 = nil, $ret_or_2 = nil; if ($truthy(string['$empty?']())) { - return nil}; + return nil + }; string['$=~'](/^(.*)\n?(.*\n)?/); $a = [(($b = $gvars['~']) === nil ? nil : $b['$[]'](1)), (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))], (first_line = $a[0]), (second_line = $a[1]), $a; if ($truthy(first_line['$start_with?']($enc("\xEF\xBB\xBF", "ASCII-8BIT").$freeze()))) { - return $$$($$($nesting, 'Encoding'), 'UTF_8') - } else if (first_line['$[]'](0, 2)['$==']($enc("#!", "ASCII-8BIT").$freeze())) { + return $$$($$('Encoding'), 'UTF_8') + } else if ($eqeq(first_line['$[]'](0, 2), $enc("#!", "ASCII-8BIT").$freeze())) { encoding_line = second_line } else { encoding_line = first_line }; - if ($truthy((function() {if ($truthy(($ret_or_1 = encoding_line['$nil?']()))) { - return $ret_or_1 - } else { - return encoding_line['$[]'](0)['$!=']($enc("#", "ASCII-8BIT")) - }; return nil; })())) { - return nil}; - if ($truthy((result = $$($nesting, 'ENCODING_RE').$match(encoding_line)))) { - return $$($nesting, 'Encoding').$find((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = result['$[]'](3)))) { - return $ret_or_3 - } else { - return result['$[]'](4) - }; return nil; })()))) { - return $ret_or_2 - } else { - return result['$[]'](6) - }; return nil; })()) + if (($truthy(encoding_line['$nil?']()) || ($neqeq(encoding_line['$[]'](0), $enc("#", "ASCII-8BIT"))))) { + return nil + }; + if ($truthy((result = $$('ENCODING_RE').$match(encoding_line)))) { + return $$('Encoding').$find(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = result['$[]'](3))) ? ($ret_or_2) : (result['$[]'](4))))) ? ($ret_or_1) : (result['$[]'](6)))) } else { return nil }; - }, $Buffer_recognize_encoding$1.$$arity = 1); - Opal.defs(self, '$reencode_string', $Buffer_reencode_string$2 = function $$reencode_string(input) { + }, 1); + $defs(self, '$reencode_string', function $$reencode_string(input) { var self = this, original_encoding = nil, detected_encoding = nil; original_encoding = input.$encoding(); - detected_encoding = self.$recognize_encoding(input.$force_encoding($$$($$($nesting, 'Encoding'), 'BINARY'))); + detected_encoding = self.$recognize_encoding(input.$force_encoding($$$($$('Encoding'), 'BINARY'))); if ($truthy(detected_encoding['$nil?']())) { return input.$force_encoding(original_encoding) - } else if (detected_encoding['$==']($$$($$($nesting, 'Encoding'), 'BINARY'))) { + } else if ($eqeq(detected_encoding, $$$($$('Encoding'), 'BINARY'))) { return input } else { - return input.$force_encoding(detected_encoding).$encode($$$($$($nesting, 'Encoding'), 'UTF_8')) + return input.$force_encoding(detected_encoding).$encode($$$($$('Encoding'), 'UTF_8')) }; - }, $Buffer_reencode_string$2.$$arity = 1); + }, 1); - Opal.def(self, '$initialize', $Buffer_initialize$3 = function $$initialize(name, $a, $b) { + $def(self, '$initialize', function $$initialize(name, $a, $b) { var $post_args, $kwargs, first_line, source, self = this, $writer = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); $kwargs = Opal.extract_kwargs($post_args); @@ -4712,18 +3988,11 @@ Opal.modules["parser/source/buffer"] = function(Opal) { throw Opal.ArgumentError.$new('expected kwargs'); }; - if ($post_args.length > 0) { - first_line = $post_args[0]; - $post_args.splice(0, 1); - } - if (first_line == null) { - first_line = 1; - }; + if ($post_args.length > 0) first_line = $post_args.shift(); + if (first_line == null) first_line = 1;; source = $kwargs.$$smap["source"]; - if (source == null) { - source = nil - }; + if (source == null) source = nil; self.name = name.$to_s(); self.source = nil; self.first_line = first_line; @@ -4734,79 +4003,71 @@ Opal.modules["parser/source/buffer"] = function(Opal) { if ($truthy(source)) { $writer = [source]; - $send(self, 'source=', Opal.to_a($writer)); + $send(self, 'source=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil }; - }, $Buffer_initialize$3.$$arity = -2); + }, -2); - Opal.def(self, '$read', $Buffer_read$4 = function $$read() { - var $$5, self = this; + $def(self, '$read', function $$read() { + var self = this; - $send($$($nesting, 'File'), 'open', [self.name, $enc("rb", "ASCII-8BIT")], ($$5 = function(io){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; + $send($$('File'), 'open', [self.name, $enc("rb", "ASCII-8BIT")], function $$1(io){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; - if (io == null) { - io = nil; - }; + if (io == null) io = nil;; $writer = [io.$read()]; - $send(self, 'source=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + $send(self, 'source=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); return self; - }, $Buffer_read$4.$$arity = 0); + }, 0); - Opal.def(self, '$source', $Buffer_source$6 = function $$source() { + $def(self, '$source', function $$source() { var self = this; if ($truthy(self.source['$nil?']())) { - self.$raise($$($nesting, 'RuntimeError'), $enc("Cannot extract source from uninitialized Source::Buffer", "ASCII-8BIT"))}; + self.$raise($$('RuntimeError'), $enc("Cannot extract source from uninitialized Source::Buffer", "ASCII-8BIT")) + }; return self.source; - }, $Buffer_source$6.$$arity = 0); + }, 0); - Opal.def(self, '$source=', $Buffer_source$eq$7 = function(input) { + $def(self, '$source=', function $Buffer_source$eq$2(input) { var self = this, $writer = nil; if ($truthy(input['$frozen?']())) { - input = input.$dup()}; + input = input.$dup() + }; input = self.$class().$reencode_string(input); - if ($truthy(input['$valid_encoding?']())) { - } else { - self.$raise($$($nesting, 'EncodingError'), "" + "invalid byte sequence in " + (input.$encoding().$name())) + if (!$truthy(input['$valid_encoding?']())) { + self.$raise($$('EncodingError'), $enc("invalid byte sequence in ", "ASCII-8BIT") + (input.$encoding().$name())) }; $writer = [input]; - $send(self, 'raw_source=', Opal.to_a($writer)); + $send(self, 'raw_source=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $Buffer_source$eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$raw_source=', $Buffer_raw_source$eq$8 = function(input) { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$raw_source=', function $Buffer_raw_source$eq$3(input) { + var self = this; if ($truthy(self.source)) { - self.$raise($$($nesting, 'ArgumentError'), $enc("Source::Buffer is immutable", "ASCII-8BIT"))}; + self.$raise($$('ArgumentError'), $enc("Source::Buffer is immutable", "ASCII-8BIT")) + }; self.source = input.$gsub($enc("\r\n", "ASCII-8BIT").$freeze(), $enc("\n", "ASCII-8BIT").$freeze()).$freeze(); - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.source['$ascii_only?']()['$!']()))) { - return self.source.$encoding()['$!=']($$$($$($nesting, 'Encoding'), 'UTF_32LE')) - } else { - return $ret_or_5 - }; return nil; })()))) { - return self.source.$encoding()['$!=']($$$($$($nesting, 'Encoding'), 'BINARY')) - } else { - return $ret_or_4 - }; return nil; })())) { - return (self.slice_source = self.source.$encode($$$($$($nesting, 'Encoding'), 'UTF_32LE'))) + if ((($not(self.source['$ascii_only?']()) && ($neqeq(self.source.$encoding(), $$$($$('Encoding'), 'UTF_32LE')))) && ($neqeq(self.source.$encoding(), $$$($$('Encoding'), 'BINARY'))))) { + return (self.slice_source = self.source.$encode($$$($$('Encoding'), 'UTF_32LE'))) } else { return nil }; - }, $Buffer_raw_source$eq$8.$$arity = 1); + }, 1); - Opal.def(self, '$slice', $Buffer_slice$9 = function $$slice(range) { + $def(self, '$slice', function $$slice(range) { var self = this; if ($truthy(self.slice_source['$nil?']())) { @@ -4814,217 +4075,162 @@ Opal.modules["parser/source/buffer"] = function(Opal) { } else { return self.slice_source['$[]'](range).$encode(self.source.$encoding()) } - }, $Buffer_slice$9.$$arity = 1); + }, 1); - Opal.def(self, '$decompose_position', $Buffer_decompose_position$10 = function $$decompose_position(position) { + $def(self, '$decompose_position', function $$decompose_position(position) { var self = this, line_index = nil, line_begin = nil; line_index = self.$line_index_for_position(position); line_begin = self.$line_begins()['$[]'](line_index); return [$rb_plus(self.first_line, line_index), $rb_minus(position, line_begin)]; - }, $Buffer_decompose_position$10.$$arity = 1); + }, 1); - Opal.def(self, '$line_for_position', $Buffer_line_for_position$11 = function $$line_for_position(position) { + $def(self, '$line_for_position', function $$line_for_position(position) { var self = this; return $rb_plus(self.$line_index_for_position(position), self.first_line) - }, $Buffer_line_for_position$11.$$arity = 1); + }, 1); - Opal.def(self, '$column_for_position', $Buffer_column_for_position$12 = function $$column_for_position(position) { + $def(self, '$column_for_position', function $$column_for_position(position) { var self = this, line_index = nil; line_index = self.$line_index_for_position(position); return $rb_minus(position, self.$line_begins()['$[]'](line_index)); - }, $Buffer_column_for_position$12.$$arity = 1); + }, 1); - Opal.def(self, '$source_lines', $Buffer_source_lines$13 = function $$source_lines() { - var $$14, self = this, $ret_or_6 = nil, lines = nil; + $def(self, '$source_lines', function $$source_lines() { + var self = this, $ret_or_1 = nil, lines = nil; - return (self.lines = (function() {if ($truthy(($ret_or_6 = self.lines))) { - return $ret_or_6 - } else { + return (self.lines = ($truthy(($ret_or_1 = self.lines)) ? ($ret_or_1) : (((lines = self.source.$lines().$to_a()), ($truthy(self.source['$end_with?']($enc("\n", "ASCII-8BIT").$freeze())) ? (lines['$<<']($enc("", "ASCII-8BIT").$dup())) : nil), $send(lines, 'each', [], function $$4(line){ - lines = self.source.$lines().$to_a(); - if ($truthy(self.source['$end_with?']($enc("\n", "ASCII-8BIT").$freeze()))) { - lines['$<<']($enc("", "ASCII-8BIT").$dup())}; - $send(lines, 'each', [], ($$14 = function(line){var self = $$14.$$s == null ? this : $$14.$$s; - - - - if (line == null) { - line = nil; - }; - line['$chomp!']($enc("\n", "ASCII-8BIT").$freeze()); - return line.$freeze();}, $$14.$$s = self, $$14.$$arity = 1, $$14)); - return lines.$freeze(); - }; return nil; })()) - }, $Buffer_source_lines$13.$$arity = 0); + + if (line == null) line = nil;; + line['$chomp!']($enc("\n", "ASCII-8BIT").$freeze()); + return line.$freeze();}, 1), lines.$freeze())))) + }, 0); - Opal.def(self, '$source_line', $Buffer_source_line$15 = function $$source_line(lineno) { + $def(self, '$source_line', function $$source_line(lineno) { var self = this; return self.$source_lines().$fetch($rb_minus(lineno, self.first_line)).$dup() - }, $Buffer_source_line$15.$$arity = 1); + }, 1); - Opal.def(self, '$line_range', $Buffer_line_range$16 = function $$line_range(lineno) { - var self = this, index = nil, $ret_or_7 = nil; + $def(self, '$line_range', function $$line_range(lineno) { + var self = this, index = nil; index = $rb_minus(lineno, self.first_line); - if ($truthy((function() {if ($truthy(($ret_or_7 = $rb_lt(index, 0)))) { - return $ret_or_7 - } else { - return $rb_ge($rb_plus(index, 1), self.$line_begins().$size()) - }; return nil; })())) { - return self.$raise($$($nesting, 'IndexError'), "" + "Parser::Source::Buffer: range for line " + ("" + (lineno) + " requested, valid line numbers are " + (self.first_line) + "..") + ("" + ($rb_minus($rb_plus(self.first_line, self.$line_begins().$size()), 2)))) + if (($truthy($rb_lt(index, 0)) || ($truthy($rb_ge($rb_plus(index, 1), self.$line_begins().$size()))))) { + return self.$raise($$('IndexError'), $enc("Parser::Source::Buffer: range for line ", "ASCII-8BIT") + ("" + (lineno) + $enc(" requested, valid line numbers are ", "ASCII-8BIT") + (self.first_line) + $enc("..", "ASCII-8BIT")) + ("" + ($rb_minus($rb_plus(self.first_line, self.$line_begins().$size()), 2)))) } else { - return $$($nesting, 'Range').$new(self, self.$line_begins()['$[]'](index), $rb_minus(self.$line_begins()['$[]']($rb_plus(index, 1)), 1)) + return $$('Range').$new(self, self.$line_begins()['$[]'](index), $rb_minus(self.$line_begins()['$[]']($rb_plus(index, 1)), 1)) }; - }, $Buffer_line_range$16.$$arity = 1); + }, 1); - Opal.def(self, '$source_range', $Buffer_source_range$17 = function $$source_range() { - var self = this, $ret_or_8 = nil; + $def(self, '$source_range', function $$source_range() { + var self = this, $ret_or_1 = nil; - return (self.source_range = (function() {if ($truthy(($ret_or_8 = self.source_range))) { - return $ret_or_8 - } else { - return $$($nesting, 'Range').$new(self, 0, self.$source().$size()) - }; return nil; })()) - }, $Buffer_source_range$17.$$arity = 0); + return (self.source_range = ($truthy(($ret_or_1 = self.source_range)) ? ($ret_or_1) : ($$('Range').$new(self, 0, self.$source().$size())))) + }, 0); - Opal.def(self, '$last_line', $Buffer_last_line$18 = function $$last_line() { + $def(self, '$last_line', function $$last_line() { var self = this; return $rb_minus($rb_plus(self.$line_begins().$size(), self.first_line), 2) - }, $Buffer_last_line$18.$$arity = 0); + }, 0); - Opal.def(self, '$freeze', $Buffer_freeze$19 = function $$freeze() { - var $iter = $Buffer_freeze$19.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$freeze', function $$freeze() { + var $yield = $$freeze.$$p || nil, self = this; - if ($iter) $Buffer_freeze$19.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$freeze.$$p; self.$source_lines(); self.$line_begins(); self.$source_range(); - return $send2(self, $find_super(self, 'freeze', $Buffer_freeze$19, false, true), 'freeze', $zuper, $iter); - }, $Buffer_freeze$19.$$arity = 0); + return $send2(self, $find_super(self, 'freeze', $$freeze, false, true), 'freeze', [], $yield); + }, 0); - Opal.def(self, '$inspect', $Buffer_inspect$20 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#<" + (self.$class()) + " " + (self.$name()) + ">" - }, $Buffer_inspect$20.$$arity = 0); + return $enc("#<", "ASCII-8BIT") + (self.$class()) + $enc(" ", "ASCII-8BIT") + (self.$name()) + $enc(">", "ASCII-8BIT") + }, 0); self.$private(); - Opal.def(self, '$line_begins', $Buffer_line_begins$21 = function $$line_begins() { - var $a, self = this, $ret_or_9 = nil, begins = nil, index = nil; + $def(self, '$line_begins', function $$line_begins() { + var $a, self = this, $ret_or_1 = nil, begins = nil, index = nil; - return (self.line_begins = (function() {if ($truthy(($ret_or_9 = self.line_begins))) { - return $ret_or_9 - } else { + return (self.line_begins = ($truthy(($ret_or_1 = self.line_begins)) ? ($ret_or_1) : ((function() { + (begins = [0]); + (index = 0); + (function() {while ($truthy((index = self.source.$index($enc("\n", "ASCII-8BIT").$freeze(), index)))) { - begins = [0]; - index = 0; - while ($truthy((index = self.source.$index($enc("\n", "ASCII-8BIT").$freeze(), index)))) { - - index = $rb_plus(index, 1); - begins['$<<'](index); - }; - begins['$<<']($rb_plus(self.source.$size(), 1)); - return begins; - }; return nil; })()) - }, $Buffer_line_begins$21.$$arity = 0); + index = $rb_plus(index, 1); + begins['$<<'](index); + }; return nil; })(); + begins['$<<']($rb_plus(self.source.$size(), 1)); + return begins;})()))) + }, 0); - Opal.def(self, '$line_index_for_position', $Buffer_line_index_for_position$22 = function $$line_index_for_position(position) { - var self = this, $ret_or_10 = nil, index = nil, $writer = nil; + $def(self, '$line_index_for_position', function $$line_index_for_position(position) { + var self = this, $ret_or_1 = nil, index = nil, $writer = nil; - if ($truthy(($ret_or_10 = self.line_index_for_position['$[]'](position)))) { - return $ret_or_10 + if ($truthy(($ret_or_1 = self.line_index_for_position['$[]'](position)))) { + return $ret_or_1 } else { index = $rb_minus(self.$bsearch(self.$line_begins(), position), 1); - if ($truthy(self.line_index_for_position['$frozen?']())) { - } else { + if (!$truthy(self.line_index_for_position['$frozen?']())) { $writer = [position, index]; - $send(self.line_index_for_position, '[]=', Opal.to_a($writer)); + $send(self.line_index_for_position, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return index; } - }, $Buffer_line_index_for_position$22.$$arity = 1); - if ($truthy($$($nesting, 'Array')['$method_defined?']("bsearch_index"))) { - return (Opal.def(self, '$bsearch', $Buffer_bsearch$23 = function $$bsearch(line_begins, position) { - var $$24, self = this, $ret_or_11 = nil; - - if ($truthy(($ret_or_11 = $send(line_begins, 'bsearch_index', [], ($$24 = function(line_begin){var self = $$24.$$s == null ? this : $$24.$$s; + }, 1); + if ($truthy($$('Array')['$method_defined?']("bsearch_index"))) { + return $def(self, '$bsearch', function $$bsearch(line_begins, position) { + var $ret_or_1 = nil; + if ($truthy(($ret_or_1 = $send(line_begins, 'bsearch_index', [], function $$5(line_begin){ - if (line_begin == null) { - line_begin = nil; - }; - return $rb_lt(position, line_begin);}, $$24.$$s = self, $$24.$$arity = 1, $$24))))) { - return $ret_or_11 + if (line_begin == null) line_begin = nil;; + return $rb_lt(position, line_begin);}, 1)))) { + return $ret_or_1 } else { return $rb_minus(line_begins.$size(), 1) } - }, $Buffer_bsearch$23.$$arity = 2), nil) && 'bsearch' + }, 2) } else { - return (Opal.def(self, '$bsearch', $Buffer_bsearch$25 = function $$bsearch(line_begins, position) { - var $$26, self = this, $ret_or_12 = nil, $ret_or_13 = nil; + return $def(self, '$bsearch', function $$bsearch(line_begins, position) { + var self = this, $ret_or_1 = nil; - self.line_range = (function() {if ($truthy(($ret_or_12 = self.line_range))) { - return $ret_or_12 - } else { - return Opal.Range.$new(0,line_begins.$size(), true) - }; return nil; })(); - if ($truthy(($ret_or_13 = $send(self.line_range, 'bsearch', [], ($$26 = function(i){var self = $$26.$$s == null ? this : $$26.$$s; - + self.line_range = ($truthy(($ret_or_1 = self.line_range)) ? ($ret_or_1) : (Opal.Range.$new(0,line_begins.$size(), true))); + if ($truthy(($ret_or_1 = $send(self.line_range, 'bsearch', [], function $$6(i){ - if (i == null) { - i = nil; - }; - return $rb_lt(position, line_begins['$[]'](i));}, $$26.$$s = self, $$26.$$arity = 1, $$26))))) { - return $ret_or_13 + if (i == null) i = nil;; + return $rb_lt(position, line_begins['$[]'](i));}, 1)))) { + return $ret_or_1 } else { return $rb_minus(line_begins.$size(), 1) }; - }, $Buffer_bsearch$25.$$arity = 2), nil) && 'bsearch' + }, 2) }; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/range"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $alias = Opal.alias; - - Opal.add_stubs(['$include', '$attr_reader', '$<', '$raise', '$nil?', '$freeze', '$with', '$-', '$line_for_position', '$alias_method', '$column_for_position', '$!=', '$line', '$last_line', '$inspect', '$column', '$last_column', '$source_line', '$slice', '$begin_pos', '$end_pos', '$include?', '$source', '$to_a', '$decompose_position', '$join', '$name', '$+', '$new', '$min', '$max', '$disjoint?', '$empty?', '$>=', '$!', '$<=>', '$contains?', '$overlaps?', '$==', '$*', '$is_a?', '$source_buffer', '$nonzero?', '$hash']); +Opal.modules["parser/source/range"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $def = Opal.def, $hash2 = Opal.hash2, $rb_minus = Opal.rb_minus, $alias = Opal.alias, $neqeq = Opal.neqeq, $to_ary = Opal.to_ary, $rb_plus = Opal.rb_plus, $rb_ge = Opal.rb_ge, $rb_times = Opal.rb_times, $eqeq = Opal.eqeq; + + Opal.add_stubs('include,attr_reader,<,raise,nil?,freeze,with,-,line_for_position,alias_method,column_for_position,!=,line,last_line,inspect,column,last_column,source_line,slice,begin_pos,end_pos,include?,source,to_a,decompose_position,join,name,+,new,min,max,disjoint?,empty?,>=,!,<=>,contains?,overlaps?,==,*,source_buffer,is_a?,nonzero?,hash'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -5038,124 +4244,127 @@ Opal.modules["parser/source/range"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Range'); - var $nesting = [self].concat($parent_nesting), $Range_initialize$1, $Range_begin$2, $Range_end$3, $Range_size$4, $Range_line$5, $Range_column$6, $Range_last_line$7, $Range_last_column$8, $Range_column_range$9, $Range_source_line$10, $Range_source$11, $Range_is$ques$12, $Range_to_a$13, $Range_to_range$14, $Range_to_s$15, $Range_with$16, $Range_adjust$17, $Range_resize$18, $Range_join$19, $Range_intersect$20, $Range_disjoint$ques$21, $Range_overlaps$ques$22, $Range_contains$ques$23, $Range_contained$ques$24, $Range_crossing$ques$25, $Range_empty$ques$26, $Range_$lt_eq_gt$27, $Range_hash$28, $Range_inspect$29; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.begin_pos = self.$$prototype.end_pos = self.$$prototype.source_buffer = nil; + $proto.begin_pos = $proto.end_pos = $proto.source_buffer = nil; - self.$include($$($nesting, 'Comparable')); + self.$include($$('Comparable')); self.$attr_reader("source_buffer"); self.$attr_reader("begin_pos", "end_pos"); - Opal.def(self, '$initialize', $Range_initialize$1 = function $$initialize(source_buffer, begin_pos, end_pos) { + $def(self, '$initialize', function $$initialize(source_buffer, begin_pos, end_pos) { var $a, self = this; if ($truthy($rb_lt(end_pos, begin_pos))) { - self.$raise($$($nesting, 'ArgumentError'), "Parser::Source::Range: end_pos must not be less than begin_pos")}; + self.$raise($$('ArgumentError'), "Parser::Source::Range: end_pos must not be less than begin_pos") + }; if ($truthy(source_buffer['$nil?']())) { - self.$raise($$($nesting, 'ArgumentError'), "Parser::Source::Range: source_buffer must not be nil")}; + self.$raise($$('ArgumentError'), "Parser::Source::Range: source_buffer must not be nil") + }; self.source_buffer = source_buffer; $a = [begin_pos, end_pos], (self.begin_pos = $a[0]), (self.end_pos = $a[1]), $a; return self.$freeze(); - }, $Range_initialize$1.$$arity = 3); + }, 3); - Opal.def(self, '$begin', $Range_begin$2 = function $$begin() { + $def(self, '$begin', function $$begin() { var self = this; return self.$with($hash2(["end_pos"], {"end_pos": self.begin_pos})) - }, $Range_begin$2.$$arity = 0); + }, 0); - Opal.def(self, '$end', $Range_end$3 = function $$end() { + $def(self, '$end', function $$end() { var self = this; return self.$with($hash2(["begin_pos"], {"begin_pos": self.end_pos})) - }, $Range_end$3.$$arity = 0); + }, 0); - Opal.def(self, '$size', $Range_size$4 = function $$size() { + $def(self, '$size', function $$size() { var self = this; return $rb_minus(self.end_pos, self.begin_pos) - }, $Range_size$4.$$arity = 0); + }, 0); $alias(self, "length", "size"); - Opal.def(self, '$line', $Range_line$5 = function $$line() { + $def(self, '$line', function $$line() { var self = this; return self.source_buffer.$line_for_position(self.begin_pos) - }, $Range_line$5.$$arity = 0); + }, 0); self.$alias_method("first_line", "line"); - Opal.def(self, '$column', $Range_column$6 = function $$column() { + $def(self, '$column', function $$column() { var self = this; return self.source_buffer.$column_for_position(self.begin_pos) - }, $Range_column$6.$$arity = 0); + }, 0); - Opal.def(self, '$last_line', $Range_last_line$7 = function $$last_line() { + $def(self, '$last_line', function $$last_line() { var self = this; return self.source_buffer.$line_for_position(self.end_pos) - }, $Range_last_line$7.$$arity = 0); + }, 0); - Opal.def(self, '$last_column', $Range_last_column$8 = function $$last_column() { + $def(self, '$last_column', function $$last_column() { var self = this; return self.source_buffer.$column_for_position(self.end_pos) - }, $Range_last_column$8.$$arity = 0); + }, 0); - Opal.def(self, '$column_range', $Range_column_range$9 = function $$column_range() { + $def(self, '$column_range', function $$column_range() { var self = this; - if ($truthy(self.$line()['$!='](self.$last_line()))) { - self.$raise($$($nesting, 'RangeError'), "" + (self.$inspect()) + " spans more than one line")}; + if ($neqeq(self.$line(), self.$last_line())) { + self.$raise($$('RangeError'), "" + (self.$inspect()) + " spans more than one line") + }; return Opal.Range.$new(self.$column(),self.$last_column(), true); - }, $Range_column_range$9.$$arity = 0); + }, 0); - Opal.def(self, '$source_line', $Range_source_line$10 = function $$source_line() { + $def(self, '$source_line', function $$source_line() { var self = this; return self.source_buffer.$source_line(self.$line()) - }, $Range_source_line$10.$$arity = 0); + }, 0); - Opal.def(self, '$source', $Range_source$11 = function $$source() { + $def(self, '$source', function $$source() { var self = this; return self.source_buffer.$slice(Opal.Range.$new(self.$begin_pos(),self.$end_pos(), true)) - }, $Range_source$11.$$arity = 0); + }, 0); - Opal.def(self, '$is?', $Range_is$ques$12 = function($a) { + $def(self, '$is?', function $Range_is$ques$1($a) { var $post_args, what, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); what = $post_args;; return what['$include?'](self.$source()); - }, $Range_is$ques$12.$$arity = -1); + }, -1); - Opal.def(self, '$to_a', $Range_to_a$13 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; return Opal.Range.$new(self.begin_pos,self.end_pos, true).$to_a() - }, $Range_to_a$13.$$arity = 0); + }, 0); - Opal.def(self, '$to_range', $Range_to_range$14 = function $$to_range() { + $def(self, '$to_range', function $$to_range() { var self = this; return Opal.Range.$new(self.$begin_pos(),self.$end_pos(), true) - }, $Range_to_range$14.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Range_to_s$15 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var $a, $b, self = this, line = nil, column = nil; - $b = self.source_buffer.$decompose_position(self.begin_pos), $a = Opal.to_ary($b), (line = ($a[0] == null ? nil : $a[0])), (column = ($a[1] == null ? nil : $a[1])), $b; + $b = self.source_buffer.$decompose_position(self.begin_pos), $a = $to_ary($b), (line = ($a[0] == null ? nil : $a[0])), (column = ($a[1] == null ? nil : $a[1])), $b; return [self.source_buffer.$name(), line, $rb_plus(column, 1)].$join(":"); - }, $Range_to_s$15.$$arity = 0); + }, 0); - Opal.def(self, '$with', $Range_with$16 = function($kwargs) { + $def(self, '$with', function $Range_with$2($kwargs) { var begin_pos, end_pos, self = this; @@ -5167,18 +4376,14 @@ Opal.modules["parser/source/range"] = function(Opal) { }; begin_pos = $kwargs.$$smap["begin_pos"]; - if (begin_pos == null) { - begin_pos = self.begin_pos - }; + if (begin_pos == null) begin_pos = self.begin_pos; end_pos = $kwargs.$$smap["end_pos"]; - if (end_pos == null) { - end_pos = self.end_pos - }; - return $$($nesting, 'Range').$new(self.source_buffer, begin_pos, end_pos); - }, $Range_with$16.$$arity = -1); + if (end_pos == null) end_pos = self.end_pos; + return $$('Range').$new(self.source_buffer, begin_pos, end_pos); + }, -1); - Opal.def(self, '$adjust', $Range_adjust$17 = function $$adjust($kwargs) { + $def(self, '$adjust', function $$adjust($kwargs) { var begin_pos, end_pos, self = this; @@ -5190,135 +4395,116 @@ Opal.modules["parser/source/range"] = function(Opal) { }; begin_pos = $kwargs.$$smap["begin_pos"]; - if (begin_pos == null) { - begin_pos = 0 - }; + if (begin_pos == null) begin_pos = 0; end_pos = $kwargs.$$smap["end_pos"]; - if (end_pos == null) { - end_pos = 0 - }; - return $$($nesting, 'Range').$new(self.source_buffer, $rb_plus(self.begin_pos, begin_pos), $rb_plus(self.end_pos, end_pos)); - }, $Range_adjust$17.$$arity = -1); + if (end_pos == null) end_pos = 0; + return $$('Range').$new(self.source_buffer, $rb_plus(self.begin_pos, begin_pos), $rb_plus(self.end_pos, end_pos)); + }, -1); - Opal.def(self, '$resize', $Range_resize$18 = function $$resize(new_size) { + $def(self, '$resize', function $$resize(new_size) { var self = this; return self.$with($hash2(["end_pos"], {"end_pos": $rb_plus(self.begin_pos, new_size)})) - }, $Range_resize$18.$$arity = 1); + }, 1); - Opal.def(self, '$join', $Range_join$19 = function $$join(other) { + $def(self, '$join', function $$join(other) { var self = this; - return $$($nesting, 'Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$min(), [self.end_pos, other.$end_pos()].$max()) - }, $Range_join$19.$$arity = 1); + return $$('Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$min(), [self.end_pos, other.$end_pos()].$max()) + }, 1); - Opal.def(self, '$intersect', $Range_intersect$20 = function $$intersect(other) { + $def(self, '$intersect', function $$intersect(other) { var self = this; if ($truthy(self['$disjoint?'](other))) { return nil } else { - return $$($nesting, 'Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$max(), [self.end_pos, other.$end_pos()].$min()) + return $$('Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$max(), [self.end_pos, other.$end_pos()].$min()) } - }, $Range_intersect$20.$$arity = 1); + }, 1); - Opal.def(self, '$disjoint?', $Range_disjoint$ques$21 = function(other) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + $def(self, '$disjoint?', function $Range_disjoint$ques$3(other) { + var self = this, $ret_or_1 = nil; - if ($truthy((function() {if ($truthy(($ret_or_1 = self['$empty?']()))) { - return other['$empty?']() - } else { - return $ret_or_1 - }; return nil; })())) { + if (($truthy(self['$empty?']()) && ($truthy(other['$empty?']())))) { return self.begin_pos['$!='](other.$begin_pos()) - } else if ($truthy(($ret_or_2 = $rb_ge(self.begin_pos, other.$end_pos())))) { - return $ret_or_2 + } else if ($truthy(($ret_or_1 = $rb_ge(self.begin_pos, other.$end_pos())))) { + return $ret_or_1 } else { return $rb_ge(other.$begin_pos(), self.end_pos) } - }, $Range_disjoint$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$overlaps?', $Range_overlaps$ques$22 = function(other) { + $def(self, '$overlaps?', function $Range_overlaps$ques$4(other) { var self = this; return self['$disjoint?'](other)['$!']() - }, $Range_overlaps$ques$22.$$arity = 1); + }, 1); - Opal.def(self, '$contains?', $Range_contains$ques$23 = function(other) { + $def(self, '$contains?', function $Range_contains$ques$5(other) { var self = this; - return $rb_ge($rb_plus(other.$begin_pos()['$<=>'](self.begin_pos), self.end_pos['$<=>'](other.$end_pos())), (function() {if ($truthy(other['$empty?']())) { - return 2 - } else { - return 1 - }; return nil; })()) - }, $Range_contains$ques$23.$$arity = 1); + return $rb_ge($rb_plus(other.$begin_pos()['$<=>'](self.begin_pos), self.end_pos['$<=>'](other.$end_pos())), ($truthy(other['$empty?']()) ? (2) : (1))) + }, 1); - Opal.def(self, '$contained?', $Range_contained$ques$24 = function(other) { + $def(self, '$contained?', function $Range_contained$ques$6(other) { var self = this; return other['$contains?'](self) - }, $Range_contained$ques$24.$$arity = 1); + }, 1); - Opal.def(self, '$crossing?', $Range_crossing$ques$25 = function(other) { + $def(self, '$crossing?', function $Range_crossing$ques$7(other) { var self = this; - if ($truthy(self['$overlaps?'](other))) { - } else { + if (!$truthy(self['$overlaps?'](other))) { return false }; return $rb_times(self.begin_pos['$<=>'](other.$begin_pos()), self.end_pos['$<=>'](other.$end_pos()))['$=='](1); - }, $Range_crossing$ques$25.$$arity = 1); + }, 1); - Opal.def(self, '$empty?', $Range_empty$ques$26 = function() { + $def(self, '$empty?', function $Range_empty$ques$8() { var self = this; return self.begin_pos['$=='](self.end_pos) - }, $Range_empty$ques$26.$$arity = 0); + }, 0); - Opal.def(self, '$<=>', $Range_$lt_eq_gt$27 = function(other) { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil; + $def(self, '$<=>', function $Range_$lt_eq_gt$9(other) { + var self = this, $ret_or_1 = nil; - if ($truthy((function() {if ($truthy(($ret_or_3 = other['$is_a?']($$$($$$($$$('::', 'Parser'), 'Source'), 'Range'))))) { - return self.source_buffer['$=='](other.$source_buffer()) - } else { - return $ret_or_3 - }; return nil; })())) { - } else { + if (!($truthy(other['$is_a?']($$$($$$($$$('Parser'), 'Source'), 'Range'))) && ($eqeq(self.source_buffer, other.$source_buffer())))) { return nil }; - if ($truthy(($ret_or_4 = self.begin_pos['$<=>'](other.$begin_pos())['$nonzero?']()))) { - return $ret_or_4 + if ($truthy(($ret_or_1 = self.begin_pos['$<=>'](other.$begin_pos())['$nonzero?']()))) { + return $ret_or_1 } else { return self.end_pos['$<=>'](other.$end_pos()); }; - }, $Range_$lt_eq_gt$27.$$arity = 1); + }, 1); self.$alias_method("eql?", "=="); - Opal.def(self, '$hash', $Range_hash$28 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return [self.source_buffer, self.begin_pos, self.end_pos].$hash() - }, $Range_hash$28.$$arity = 0); - return (Opal.def(self, '$inspect', $Range_inspect$29 = function $$inspect() { + }, 0); + return $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Range_inspect$29.$$arity = 0), nil) && 'inspect'; + return "#" + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/comment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["parser/source/comment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $defs = Opal.defs, $def = Opal.def, $truthy = Opal.truthy; - Opal.add_stubs(['$attr_reader', '$alias_method', '$new', '$associate', '$associate_locations', '$associate_by_identity', '$freeze', '$source', '$start_with?', '$text', '$==', '$type', '$is_a?', '$location', '$to_s', '$expression', '$inspect']); + Opal.add_stubs('attr_reader,alias_method,new,associate,associate_locations,associate_by_identity,freeze,source,start_with?,text,==,type,is_a?,location,to_s,expression,inspect'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -5332,45 +4518,45 @@ Opal.modules["parser/source/comment"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Comment'); - var $nesting = [self].concat($parent_nesting), $Comment_associate$1, $Comment_associate_locations$2, $Comment_associate_by_identity$3, $Comment_initialize$4, $Comment_type$5, $Comment_inline$ques$6, $Comment_document$ques$7, $Comment_$eq_eq$8, $Comment_inspect$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.location = nil; + $proto.location = nil; self.$attr_reader("text"); self.$attr_reader("location"); self.$alias_method("loc", "location"); - Opal.defs(self, '$associate', $Comment_associate$1 = function $$associate(ast, comments) { - var self = this, associator = nil; + $defs(self, '$associate', function $$associate(ast, comments) { + var associator = nil; - associator = $$($nesting, 'Associator').$new(ast, comments); + associator = $$('Associator').$new(ast, comments); return associator.$associate(); - }, $Comment_associate$1.$$arity = 2); - Opal.defs(self, '$associate_locations', $Comment_associate_locations$2 = function $$associate_locations(ast, comments) { - var self = this, associator = nil; + }, 2); + $defs(self, '$associate_locations', function $$associate_locations(ast, comments) { + var associator = nil; - associator = $$($nesting, 'Associator').$new(ast, comments); + associator = $$('Associator').$new(ast, comments); return associator.$associate_locations(); - }, $Comment_associate_locations$2.$$arity = 2); - Opal.defs(self, '$associate_by_identity', $Comment_associate_by_identity$3 = function $$associate_by_identity(ast, comments) { - var self = this, associator = nil; + }, 2); + $defs(self, '$associate_by_identity', function $$associate_by_identity(ast, comments) { + var associator = nil; - associator = $$($nesting, 'Associator').$new(ast, comments); + associator = $$('Associator').$new(ast, comments); return associator.$associate_by_identity(); - }, $Comment_associate_by_identity$3.$$arity = 2); + }, 2); - Opal.def(self, '$initialize', $Comment_initialize$4 = function $$initialize(range) { + $def(self, '$initialize', function $$initialize(range) { var self = this; - self.location = $$$($$$($$($nesting, 'Parser'), 'Source'), 'Map').$new(range); + self.location = $$$($$$($$('Parser'), 'Source'), 'Map').$new(range); self.text = range.$source().$freeze(); return self.$freeze(); - }, $Comment_initialize$4.$$arity = 1); + }, 1); - Opal.def(self, '$type', $Comment_type$5 = function $$type() { + $def(self, '$type', function $$type() { var self = this; if ($truthy(self.$text()['$start_with?']("#".$freeze()))) { @@ -5380,53 +4566,43 @@ Opal.modules["parser/source/comment"] = function(Opal) { } else { return nil } - }, $Comment_type$5.$$arity = 0); + }, 0); - Opal.def(self, '$inline?', $Comment_inline$ques$6 = function() { + $def(self, '$inline?', function $Comment_inline$ques$1() { var self = this; return self.$type()['$==']("inline") - }, $Comment_inline$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$document?', $Comment_document$ques$7 = function() { + $def(self, '$document?', function $Comment_document$ques$2() { var self = this; return self.$type()['$==']("document") - }, $Comment_document$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$==', $Comment_$eq_eq$8 = function(other) { + $def(self, '$==', function $Comment_$eq_eq$3(other) { var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_1 = other['$is_a?']($$$($$($nesting, 'Source'), 'Comment'))))) { + if ($truthy(($ret_or_1 = other['$is_a?']($$$($$('Source'), 'Comment'))))) { return self.location['$=='](other.$location()) } else { return $ret_or_1 } - }, $Comment_$eq_eq$8.$$arity = 1); - return (Opal.def(self, '$inspect', $Comment_inspect$9 = function $$inspect() { + }, 1); + return $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Comment_inspect$9.$$arity = 0), nil) && 'inspect'; + return "#" + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/comment/associator"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$attr_accessor', '$do_associate', '$private', '$freeze', '$[]', '$include?', '$type', '$sort_by', '$compact', '$children', '$begin_pos', '$expression', '$loc', '$select', '$is_a?', '$new', '$[]=', '$-', '$==', '$compare_by_identity', '$advance_comment', '$advance_through_directives', '$visit', '$process_leading_comments', '$location', '$<=', '$line', '$last_line', '$each', '$children_in_source_order', '$process_trailing_comments', '$current_comment_before?', '$associate_and_advance_comment', '$current_comment_before_end?', '$current_comment_decorates?', '$+', '$!', '$end_pos', '$<<', '$start_with?', '$text', '$=~']); +Opal.modules["parser/source/comment/associator"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $const_set = Opal.const_set, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq, $rb_le = Opal.rb_le, $rb_plus = Opal.rb_plus, $not = Opal.not; + + Opal.add_stubs('attr_accessor,do_associate,private,freeze,[],include?,type,sort_by,compact,children,begin_pos,expression,loc,select,is_a?,new,[]=,-,==,compare_by_identity,advance_comment,advance_through_directives,visit,process_leading_comments,location,<=,line,last_line,each,children_in_source_order,process_trailing_comments,current_comment_before?,associate_and_advance_comment,current_comment_before_end?,current_comment_decorates?,+,!,end_pos,<<,start_with?,text,=~'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -5435,155 +4611,138 @@ Opal.modules["parser/source/comment/associator"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Associator'); - var $nesting = [self].concat($parent_nesting), $Associator_initialize$1, $Associator_associate$2, $Associator_associate_locations$3, $Associator_associate_by_identity$4, $Associator_children_in_source_order$5, $Associator_do_associate$8, $Associator_visit$10, $Associator_process_leading_comments$12, $Associator_process_trailing_comments$13, $Associator_advance_comment$14, $Associator_current_comment_before$ques$15, $Associator_current_comment_before_end$ques$16, $Associator_current_comment_decorates$ques$17, $Associator_associate_and_advance_comment$18, $Associator_advance_through_directives$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.map_using = self.$$prototype.mapping = self.$$prototype.skip_directives = self.$$prototype.ast = self.$$prototype.current_comment = self.$$prototype.comment_num = self.$$prototype.comments = nil; + $proto.map_using = $proto.mapping = $proto.skip_directives = $proto.ast = $proto.current_comment = $proto.comment_num = $proto.comments = nil; self.$attr_accessor("skip_directives"); - Opal.def(self, '$initialize', $Associator_initialize$1 = function $$initialize(ast, comments) { + $def(self, '$initialize', function $$initialize(ast, comments) { var self = this; self.ast = ast; self.comments = comments; return (self.skip_directives = true); - }, $Associator_initialize$1.$$arity = 2); + }, 2); - Opal.def(self, '$associate', $Associator_associate$2 = function $$associate() { + $def(self, '$associate', function $$associate() { var self = this; self.map_using = "eql"; return self.$do_associate(); - }, $Associator_associate$2.$$arity = 0); + }, 0); - Opal.def(self, '$associate_locations', $Associator_associate_locations$3 = function $$associate_locations() { + $def(self, '$associate_locations', function $$associate_locations() { var self = this; self.map_using = "location"; return self.$do_associate(); - }, $Associator_associate_locations$3.$$arity = 0); + }, 0); - Opal.def(self, '$associate_by_identity', $Associator_associate_by_identity$4 = function $$associate_by_identity() { + $def(self, '$associate_by_identity', function $$associate_by_identity() { var self = this; self.map_using = "identity"; return self.$do_associate(); - }, $Associator_associate_by_identity$4.$$arity = 0); + }, 0); self.$private(); - Opal.const_set($nesting[0], 'POSTFIX_TYPES', $$($nesting, 'Set')['$[]']("if", "while", "while_post", "until", "until_post", "masgn").$freeze()); + $const_set($nesting[0], 'POSTFIX_TYPES', $$('Set')['$[]']("if", "while", "while_post", "until", "until_post", "masgn").$freeze()); - Opal.def(self, '$children_in_source_order', $Associator_children_in_source_order$5 = function $$children_in_source_order(node) { - var $$6, $$7, self = this; - - if ($truthy($$($nesting, 'POSTFIX_TYPES')['$include?'](node.$type()))) { - return $send(node.$children().$compact(), 'sort_by', [], ($$6 = function(child){var self = $$6.$$s == null ? this : $$6.$$s; - + $def(self, '$children_in_source_order', function $$children_in_source_order(node) { + + if ($truthy($$('POSTFIX_TYPES')['$include?'](node.$type()))) { + return $send(node.$children().$compact(), 'sort_by', [], function $$1(child){ - if (child == null) { - child = nil; - }; - return child.$loc().$expression().$begin_pos();}, $$6.$$s = self, $$6.$$arity = 1, $$6)) + if (child == null) child = nil;; + return child.$loc().$expression().$begin_pos();}, 1) } else { - return $send(node.$children(), 'select', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s, $ret_or_1 = nil, $ret_or_2 = nil; + return $send(node.$children(), 'select', [], function $$2(child){var $ret_or_1 = nil, $ret_or_2 = nil; - if (child == null) { - child = nil; - }; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = child['$is_a?']($$$($$($nesting, 'AST'), 'Node'))))) { - return child.$loc() - } else { - return $ret_or_2 - }; return nil; })()))) { + if (child == null) child = nil;; + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = child['$is_a?']($$$($$('AST'), 'Node')))) ? (child.$loc()) : ($ret_or_2))))) { return child.$loc().$expression() } else { return $ret_or_1 - };}, $$7.$$s = self, $$7.$$arity = 1, $$7)) + };}, 1) } - }, $Associator_children_in_source_order$5.$$arity = 1); + }, 1); - Opal.def(self, '$do_associate', $Associator_do_associate$8 = function $$do_associate() { - var $$9, self = this; + $def(self, '$do_associate', function $$do_associate() { + var self = this; - self.mapping = $send($$($nesting, 'Hash'), 'new', [], ($$9 = function(h, k){var self = $$9.$$s == null ? this : $$9.$$s, $writer = nil; + self.mapping = $send($$('Hash'), 'new', [], function $$3(h, k){var $writer = nil; - if (h == null) { - h = nil; - }; + if (h == null) h = nil;; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [k, []]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$9.$$s = self, $$9.$$arity = 2, $$9)); - if (self.map_using['$==']("identity")) { - self.mapping.$compare_by_identity()}; + $send(h, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 2); + if ($eqeq(self.map_using, "identity")) { + self.mapping.$compare_by_identity() + }; self.comment_num = -1; self.$advance_comment(); if ($truthy(self.skip_directives)) { - self.$advance_through_directives()}; + self.$advance_through_directives() + }; if ($truthy(self.ast)) { - self.$visit(self.ast)}; + self.$visit(self.ast) + }; return self.mapping; - }, $Associator_do_associate$8.$$arity = 0); + }, 0); - Opal.def(self, '$visit', $Associator_visit$10 = function $$visit(node) { - var $$11, self = this, node_loc = nil, $ret_or_3 = nil; + $def(self, '$visit', function $$visit(node) { + var self = this, node_loc = nil; self.$process_leading_comments(node); - if ($truthy(self.current_comment)) { - } else { + if (!$truthy(self.current_comment)) { return nil }; node_loc = node.$location(); - if ($truthy((function() {if ($truthy(($ret_or_3 = $rb_le(self.current_comment.$location().$line(), node_loc.$last_line())))) { - return $ret_or_3 - } else { - return node_loc['$is_a?']($$$($$($nesting, 'Map'), 'Heredoc')) - }; return nil; })())) { + if (($truthy($rb_le(self.current_comment.$location().$line(), node_loc.$last_line())) || ($truthy(node_loc['$is_a?']($$$($$('Map'), 'Heredoc')))))) { - $send(self.$children_in_source_order(node), 'each', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; + $send(self.$children_in_source_order(node), 'each', [], function $$4(child){var self = $$4.$$s == null ? this : $$4.$$s; - if (child == null) { - child = nil; - }; - return self.$visit(child);}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + if (child == null) child = nil;; + return self.$visit(child);}, {$$arity: 1, $$s: self}); return self.$process_trailing_comments(node); } else { return nil }; - }, $Associator_visit$10.$$arity = 1); + }, 1); - Opal.def(self, '$process_leading_comments', $Associator_process_leading_comments$12 = function $$process_leading_comments(node) { + $def(self, '$process_leading_comments', function $$process_leading_comments(node) { var $a, self = this; - if (node.$type()['$==']("begin")) { - return nil}; + if ($eqeq(node.$type(), "begin")) { + return nil + }; while ($truthy(self['$current_comment_before?'](node))) { self.$associate_and_advance_comment(node) }; - }, $Associator_process_leading_comments$12.$$arity = 1); + }, 1); - Opal.def(self, '$process_trailing_comments', $Associator_process_trailing_comments$13 = function $$process_trailing_comments(node) { + $def(self, '$process_trailing_comments', function $$process_trailing_comments(node) { var $a, self = this; @@ -5593,111 +4752,84 @@ Opal.modules["parser/source/comment/associator"] = function(Opal) { while ($truthy(self['$current_comment_decorates?'](node))) { self.$associate_and_advance_comment(node) }; - }, $Associator_process_trailing_comments$13.$$arity = 1); + }, 1); - Opal.def(self, '$advance_comment', $Associator_advance_comment$14 = function $$advance_comment() { + $def(self, '$advance_comment', function $$advance_comment() { var self = this; self.comment_num = $rb_plus(self.comment_num, 1); return (self.current_comment = self.comments['$[]'](self.comment_num)); - }, $Associator_advance_comment$14.$$arity = 0); + }, 0); - Opal.def(self, '$current_comment_before?', $Associator_current_comment_before$ques$15 = function(node) { + $def(self, '$current_comment_before?', function $Associator_current_comment_before$ques$5(node) { var self = this, comment_loc = nil, node_loc = nil; - if ($truthy(self.current_comment['$!']())) { - return false}; + if ($not(self.current_comment)) { + return false + }; comment_loc = self.current_comment.$location().$expression(); node_loc = node.$location().$expression(); return $rb_le(comment_loc.$end_pos(), node_loc.$begin_pos()); - }, $Associator_current_comment_before$ques$15.$$arity = 1); + }, 1); - Opal.def(self, '$current_comment_before_end?', $Associator_current_comment_before_end$ques$16 = function(node) { + $def(self, '$current_comment_before_end?', function $Associator_current_comment_before_end$ques$6(node) { var self = this, comment_loc = nil, node_loc = nil; - if ($truthy(self.current_comment['$!']())) { - return false}; + if ($not(self.current_comment)) { + return false + }; comment_loc = self.current_comment.$location().$expression(); node_loc = node.$location().$expression(); return $rb_le(comment_loc.$end_pos(), node_loc.$end_pos()); - }, $Associator_current_comment_before_end$ques$16.$$arity = 1); + }, 1); - Opal.def(self, '$current_comment_decorates?', $Associator_current_comment_decorates$ques$17 = function(node) { + $def(self, '$current_comment_decorates?', function $Associator_current_comment_decorates$ques$7(node) { var self = this; - if ($truthy(self.current_comment['$!']())) { - return false}; + if ($not(self.current_comment)) { + return false + }; return self.current_comment.$location().$line()['$=='](node.$location().$last_line()); - }, $Associator_current_comment_decorates$ques$17.$$arity = 1); + }, 1); - Opal.def(self, '$associate_and_advance_comment', $Associator_associate_and_advance_comment$18 = function $$associate_and_advance_comment(node) { + $def(self, '$associate_and_advance_comment', function $$associate_and_advance_comment(node) { var self = this, key = nil; - key = (function() {if (self.map_using['$==']("location")) { - return node.$location() - } else { - return node - }; return nil; })(); + key = ($eqeq(self.map_using, "location") ? (node.$location()) : (node)); self.mapping['$[]'](key)['$<<'](self.current_comment); return self.$advance_comment(); - }, $Associator_associate_and_advance_comment$18.$$arity = 1); - Opal.const_set($nesting[0], 'MAGIC_COMMENT_RE', /^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/); - return (Opal.def(self, '$advance_through_directives', $Associator_advance_through_directives$19 = function $$advance_through_directives() { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; + }, 1); + $const_set($nesting[0], 'MAGIC_COMMENT_RE', /^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/); + return $def(self, '$advance_through_directives', function $$advance_through_directives() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_4 = self.current_comment))) { - return self.current_comment.$text()['$start_with?']("#!".$freeze()) - } else { - return $ret_or_4 - }; return nil; })())) { - self.$advance_comment()}; - if ($truthy((function() {if ($truthy(($ret_or_5 = self.current_comment))) { - return self.current_comment.$text()['$=~']($$($nesting, 'MAGIC_COMMENT_RE')) - } else { - return $ret_or_5 - }; return nil; })())) { - self.$advance_comment()}; - if ($truthy((function() {if ($truthy(($ret_or_6 = self.current_comment))) { - return self.current_comment.$text()['$=~']($$$($$($nesting, 'Buffer'), 'ENCODING_RE')) - } else { - return $ret_or_6 - }; return nil; })())) { + if (($truthy(self.current_comment) && ($truthy(self.current_comment.$text()['$start_with?']("#!".$freeze()))))) { + self.$advance_comment() + }; + if (($truthy(self.current_comment) && ($truthy(self.current_comment.$text()['$=~']($$('MAGIC_COMMENT_RE')))))) { + self.$advance_comment() + }; + if (($truthy(self.current_comment) && ($truthy(self.current_comment.$text()['$=~']($$$($$('Buffer'), 'ENCODING_RE')))))) { return self.$advance_comment() } else { return nil }; - }, $Associator_advance_through_directives$19.$$arity = 0), nil) && 'advance_through_directives'; - })($$($nesting, 'Comment'), null, $nesting) + }, 0); + })($$('Comment'), null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/rewriter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; - - Opal.add_stubs(['$attr_reader', '$warn_of_deprecation', '$class', '$new', '$lambda', '$puts', '$render', '$consumer=', '$-', '$append', '$freeze', '$begin', '$end', '$+', '$in_transaction?', '$raise', '$dup', '$source', '$each', '$sort', '$begin_pos', '$range', '$length', '$replacement', '$[]=', '$private', '$empty?', '$!', '$allow_multiple_insertions?', '$clobbered_insertion?', '$raise_clobber_error', '$record_insertion', '$adjacent_updates?', '$find', '$overlaps?', '$replace_compatible_with_insertion?', '$merge_actions!', '$<<', '$active_queue', '$adjacent_insertions?', '$merge_actions', '$delete', '$can_merge?', '$record_replace', '$|', '$active_insertions', '$active_insertions=', '$active_clobber', '$clobbered_position_mask', '$active_clobber=', '$size', '$!=', '$&', '$<=', '$end_pos', '$adjacent_insertion_mask', '$select', '$adjacent?', '$adjacent_position_mask', '$>=', '$==', '$[]', '$all?', '$intersect', '$nil?', '$max', '$sort_by', '$push', '$join', '$first', '$max_by', '$merge_replacements', '$replace_actions', '$disjoint?', '$<', '$process', '$extend']); +Opal.modules["parser/source/rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $rb_plus = Opal.rb_plus, $truthy = Opal.truthy, $not = Opal.not, $neqeq = Opal.neqeq, $rb_le = Opal.rb_le, $rb_ge = Opal.rb_ge, $rb_lt = Opal.rb_lt, $hash2 = Opal.hash2, $const_set = Opal.const_set; + + Opal.add_stubs('attr_reader,warn_of_deprecation,class,new,lambda,puts,render,consumer=,-,append,freeze,begin,end,+,in_transaction?,raise,dup,source,each,sort,begin_pos,range,length,replacement,[]=,private,empty?,clobbered_insertion?,!,allow_multiple_insertions?,raise_clobber_error,record_insertion,adjacent_updates?,find,overlaps?,replace_compatible_with_insertion?,merge_actions!,<<,active_queue,adjacent_insertions?,merge_actions,delete,can_merge?,record_replace,|,active_insertions,active_insertions=,active_clobber,clobbered_position_mask,active_clobber=,size,!=,&,<=,end_pos,adjacent_insertion_mask,select,adjacent?,adjacent_position_mask,>=,==,[],all?,intersect,nil?,max,sort_by,push,join,first,max_by,merge_replacements,replace_actions,disjoint?,<,process,extend'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -5711,30 +4843,27 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Rewriter'); - var $nesting = [self].concat($parent_nesting), $Rewriter_initialize$1, $Rewriter_remove$3, $Rewriter_insert_before$4, $Rewriter_wrap$5, $Rewriter_insert_before_multi$6, $Rewriter_insert_after$7, $Rewriter_insert_after_multi$8, $Rewriter_replace$9, $Rewriter_process$10, $Rewriter_transaction$12, $Rewriter_append$13, $Rewriter_record_insertion$16, $Rewriter_record_replace$17, $Rewriter_clobbered_position_mask$18, $Rewriter_adjacent_position_mask$19, $Rewriter_adjacent_insertion_mask$20, $Rewriter_clobbered_insertion$ques$21, $Rewriter_adjacent_insertions$ques$23, $Rewriter_adjacent_updates$ques$25, $Rewriter_replace_compatible_with_insertion$ques$27, $Rewriter_can_merge$ques$28, $Rewriter_merge_actions$30, $Rewriter_merge_actions$excl$33, $Rewriter_merge_replacements$34, $Rewriter_replace_actions$36, $Rewriter_raise_clobber_error$38, $Rewriter_in_transaction$ques$39, $Rewriter_active_queue$40, $Rewriter_active_clobber$41, $Rewriter_active_insertions$42, $Rewriter_active_clobber$eq$43, $Rewriter_active_insertions$eq$44, $Rewriter_adjacent$ques$45; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.diagnostics = self.$$prototype.insert_before_multi_order = self.$$prototype.insert_after_multi_order = self.$$prototype.source_buffer = self.$$prototype.queue = self.$$prototype.clobber = self.$$prototype.insertions = self.$$prototype.pending_queue = self.$$prototype.pending_clobber = self.$$prototype.pending_insertions = nil; + $proto.diagnostics = $proto.insert_before_multi_order = $proto.insert_after_multi_order = $proto.source_buffer = $proto.queue = $proto.clobber = $proto.insertions = $proto.pending_queue = $proto.pending_clobber = $proto.pending_insertions = nil; self.$attr_reader("source_buffer"); self.$attr_reader("diagnostics"); - Opal.def(self, '$initialize', $Rewriter_initialize$1 = function $$initialize(source_buffer) { - var $$2, self = this, $writer = nil; + $def(self, '$initialize', function $$initialize(source_buffer) { + var self = this, $writer = nil; self.$class().$warn_of_deprecation(); - self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); + self.diagnostics = $$$($$('Diagnostic'), 'Engine').$new(); - $writer = [$send(self, 'lambda', [], ($$2 = function(diag){var self = $$2.$$s == null ? this : $$2.$$s; - if ($gvars.stderr == null) $gvars.stderr = nil; + $writer = [$send(self, 'lambda', [], function $$1(diag){ if ($gvars.stderr == null) $gvars.stderr = nil; - if (diag == null) { - diag = nil; - }; - return $gvars.stderr.$puts(diag.$render());}, $$2.$$s = self, $$2.$$arity = 1, $$2))]; - $send(self.diagnostics, 'consumer=', Opal.to_a($writer)); + if (diag == null) diag = nil;; + return $gvars.stderr.$puts(diag.$render());}, 1)]; + $send(self.diagnostics, 'consumer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.source_buffer = source_buffer; self.queue = []; @@ -5745,93 +4874,92 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { self.pending_queue = nil; self.pending_clobber = nil; return (self.pending_insertions = nil); - }, $Rewriter_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$remove', $Rewriter_remove$3 = function $$remove(range) { + $def(self, '$remove', function $$remove(range) { var self = this; - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range, "".$freeze())) - }, $Rewriter_remove$3.$$arity = 1); + return self.$append($$$($$('Rewriter'), 'Action').$new(range, "".$freeze())) + }, 1); - Opal.def(self, '$insert_before', $Rewriter_insert_before$4 = function $$insert_before(range, content) { + $def(self, '$insert_before', function $$insert_before(range, content) { var self = this; - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), content)) - }, $Rewriter_insert_before$4.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$begin(), content)) + }, 2); - Opal.def(self, '$wrap', $Rewriter_wrap$5 = function $$wrap(range, before, after) { + $def(self, '$wrap', function $$wrap(range, before, after) { var self = this; - self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), before)); - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), after)); - }, $Rewriter_wrap$5.$$arity = 3); + self.$append($$$($$('Rewriter'), 'Action').$new(range.$begin(), before)); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$end(), after)); + }, 3); - Opal.def(self, '$insert_before_multi', $Rewriter_insert_before_multi$6 = function $$insert_before_multi(range, content) { + $def(self, '$insert_before_multi', function $$insert_before_multi(range, content) { var self = this; self.insert_before_multi_order = $rb_minus(self.insert_before_multi_order, 1); - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), content, true, self.insert_before_multi_order)); - }, $Rewriter_insert_before_multi$6.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$begin(), content, true, self.insert_before_multi_order)); + }, 2); - Opal.def(self, '$insert_after', $Rewriter_insert_after$7 = function $$insert_after(range, content) { + $def(self, '$insert_after', function $$insert_after(range, content) { var self = this; - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), content)) - }, $Rewriter_insert_after$7.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$end(), content)) + }, 2); - Opal.def(self, '$insert_after_multi', $Rewriter_insert_after_multi$8 = function $$insert_after_multi(range, content) { + $def(self, '$insert_after_multi', function $$insert_after_multi(range, content) { var self = this; self.insert_after_multi_order = $rb_plus(self.insert_after_multi_order, 1); - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), content, true, self.insert_after_multi_order)); - }, $Rewriter_insert_after_multi$8.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$end(), content, true, self.insert_after_multi_order)); + }, 2); - Opal.def(self, '$replace', $Rewriter_replace$9 = function $$replace(range, content) { + $def(self, '$replace', function $$replace(range, content) { var self = this; - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range, content)) - }, $Rewriter_replace$9.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range, content)) + }, 2); - Opal.def(self, '$process', $Rewriter_process$10 = function $$process() { - var $$11, self = this, adjustment = nil, source = nil; + $def(self, '$process', function $$process() { + var self = this, adjustment = nil, source = nil; if ($truthy(self['$in_transaction?']())) { - self.$raise("" + "Do not call " + (self.$class()) + "#" + ("process") + " inside a transaction")}; + self.$raise("Do not call " + (self.$class()) + "#" + ("process") + " inside a transaction") + }; adjustment = 0; source = self.source_buffer.$source().$dup(); - $send(self.queue.$sort(), 'each', [], ($$11 = function(action){var self = $$11.$$s == null ? this : $$11.$$s, begin_pos = nil, end_pos = nil, $writer = nil; + $send(self.queue.$sort(), 'each', [], function $$2(action){var begin_pos = nil, end_pos = nil, $writer = nil; - if (action == null) { - action = nil; - }; + if (action == null) action = nil;; begin_pos = $rb_plus(action.$range().$begin_pos(), adjustment); end_pos = $rb_plus(begin_pos, action.$range().$length()); $writer = [Opal.Range.$new(begin_pos,end_pos, true), action.$replacement()]; - $send(source, '[]=', Opal.to_a($writer)); + $send(source, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return (adjustment = $rb_plus(adjustment, $rb_minus(action.$replacement().$length(), action.$range().$length())));}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + return (adjustment = $rb_plus(adjustment, $rb_minus(action.$replacement().$length(), action.$range().$length())));}, 1); return source; - }, $Rewriter_process$10.$$arity = 0); + }, 0); - Opal.def(self, '$transaction', $Rewriter_transaction$12 = function $$transaction() { - var $iter = $Rewriter_transaction$12.$$p, $yield = $iter || nil, self = this; + $def(self, '$transaction', function $$transaction() { + var $yield = $$transaction.$$p || nil, self = this; - if ($iter) $Rewriter_transaction$12.$$p = null; + delete $$transaction.$$p; return (function() { try { - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { self.$raise("" + (self.$class()) + "#" + ("transaction") + " requires block") }; if ($truthy(self['$in_transaction?']())) { - self.$raise("Nested transaction is not supported")}; + self.$raise("Nested transaction is not supported") + }; self.pending_queue = self.queue.$dup(); self.pending_clobber = self.clobber; self.pending_insertions = self.insertions; @@ -5843,42 +4971,38 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } finally { ((self.pending_queue = nil), (self.pending_clobber = nil), (self.pending_insertions = nil)) }; })() - }, $Rewriter_transaction$12.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$append', $Rewriter_append$13 = function $$append(action) { - var $$14, $$15, self = this, range = nil, $ret_or_1 = nil, conflicting = nil, adjacent = nil, insertions = nil; + $def(self, '$append', function $$append(action) { + var self = this, range = nil, conflicting = nil, adjacent = nil, insertions = nil; range = action.$range(); if ($truthy(range['$empty?']())) { if ($truthy(action.$replacement()['$empty?']())) { - return self}; - if ($truthy((function() {if ($truthy(($ret_or_1 = action['$allow_multiple_insertions?']()['$!']()))) { - - return (conflicting = self['$clobbered_insertion?'](range)); - } else { - return $ret_or_1 - }; return nil; })())) { - self.$raise_clobber_error(action, [conflicting])}; + return self + }; + if (($not(action['$allow_multiple_insertions?']()) && ($truthy((conflicting = self['$clobbered_insertion?'](range)))))) { + self.$raise_clobber_error(action, [conflicting]) + }; self.$record_insertion(range); if ($truthy((adjacent = self['$adjacent_updates?'](range)))) { - conflicting = $send(adjacent, 'find', [], ($$14 = function(a){var self = $$14.$$s == null ? this : $$14.$$s, $ret_or_2 = nil; + conflicting = $send(adjacent, 'find', [], function $$3(a){var self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil; - if (a == null) { - a = nil; - }; - if ($truthy(($ret_or_2 = a.$range()['$overlaps?'](range)))) { + if (a == null) a = nil;; + if ($truthy(($ret_or_1 = a.$range()['$overlaps?'](range)))) { return self['$replace_compatible_with_insertion?'](a, action)['$!']() } else { - return $ret_or_2 - };}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + return $ret_or_1 + };}, {$$arity: 1, $$s: self}); if ($truthy(conflicting)) { - self.$raise_clobber_error(action, [conflicting])}; + self.$raise_clobber_error(action, [conflicting]) + }; self['$merge_actions!'](action, adjacent); } else { self.$active_queue()['$<<'](action) @@ -5886,24 +5010,19 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } else { if ($truthy((insertions = self['$adjacent_insertions?'](range)))) { - $send(insertions, 'each', [], ($$15 = function(insertion){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_3 = nil; + $send(insertions, 'each', [], function $$4(insertion){var self = $$4.$$s == null ? this : $$4.$$s; - if (insertion == null) { - insertion = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_3 = range['$overlaps?'](insertion.$range())))) { - return self['$replace_compatible_with_insertion?'](action, insertion)['$!']() - } else { - return $ret_or_3 - }; return nil; })())) { + if (insertion == null) insertion = nil;; + if (($truthy(range['$overlaps?'](insertion.$range())) && ($not(self['$replace_compatible_with_insertion?'](action, insertion))))) { return self.$raise_clobber_error(action, [insertion]) } else { action = self.$merge_actions(action, [insertion]); return self.$active_queue().$delete(insertion); - };}, $$15.$$s = self, $$15.$$arity = 1, $$15))}; + };}, {$$arity: 1, $$s: self}) + }; if ($truthy((adjacent = self['$adjacent_updates?'](range)))) { if ($truthy(self['$can_merge?'](action, adjacent))) { @@ -5919,84 +5038,77 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { }; }; return self; - }, $Rewriter_append$13.$$arity = 1); + }, 1); - Opal.def(self, '$record_insertion', $Rewriter_record_insertion$16 = function $$record_insertion(range) { + $def(self, '$record_insertion', function $$record_insertion(range) { var self = this, $writer = nil; $writer = [self.$active_insertions()['$|']((1)['$<<'](range.$begin_pos()))]; - $send(self, 'active_insertions=', Opal.to_a($writer)); + $send(self, 'active_insertions=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Rewriter_record_insertion$16.$$arity = 1); + }, 1); - Opal.def(self, '$record_replace', $Rewriter_record_replace$17 = function $$record_replace(range) { + $def(self, '$record_replace', function $$record_replace(range) { var self = this, $writer = nil; $writer = [self.$active_clobber()['$|'](self.$clobbered_position_mask(range))]; - $send(self, 'active_clobber=', Opal.to_a($writer)); + $send(self, 'active_clobber=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Rewriter_record_replace$17.$$arity = 1); + }, 1); - Opal.def(self, '$clobbered_position_mask', $Rewriter_clobbered_position_mask$18 = function $$clobbered_position_mask(range) { - var self = this; - + $def(self, '$clobbered_position_mask', function $$clobbered_position_mask(range) { + return $rb_minus((1)['$<<'](range.$size()), 1)['$<<'](range.$begin_pos()) - }, $Rewriter_clobbered_position_mask$18.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent_position_mask', $Rewriter_adjacent_position_mask$19 = function $$adjacent_position_mask(range) { - var self = this; - + $def(self, '$adjacent_position_mask', function $$adjacent_position_mask(range) { + return $rb_minus((1)['$<<']($rb_plus(range.$size(), 2)), 1)['$<<']($rb_minus(range.$begin_pos(), 1)) - }, $Rewriter_adjacent_position_mask$19.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent_insertion_mask', $Rewriter_adjacent_insertion_mask$20 = function $$adjacent_insertion_mask(range) { - var self = this; - + $def(self, '$adjacent_insertion_mask', function $$adjacent_insertion_mask(range) { + return $rb_minus((1)['$<<']($rb_plus(range.$size(), 1)), 1)['$<<'](range.$begin_pos()) - }, $Rewriter_adjacent_insertion_mask$20.$$arity = 1); + }, 1); - Opal.def(self, '$clobbered_insertion?', $Rewriter_clobbered_insertion$ques$21 = function(insertion) { - var $$22, self = this, insertion_pos = nil; + $def(self, '$clobbered_insertion?', function $Rewriter_clobbered_insertion$ques$5(insertion) { + var self = this, insertion_pos = nil; insertion_pos = insertion.$begin_pos(); - if ($truthy(self.$active_insertions()['$&']((1)['$<<'](insertion_pos))['$!='](0))) { - return $send(self.$active_queue(), 'find', [], ($$22 = function(a){var self = $$22.$$s == null ? this : $$22.$$s, $ret_or_4 = nil; + if ($neqeq(self.$active_insertions()['$&']((1)['$<<'](insertion_pos)), 0)) { + return $send(self.$active_queue(), 'find', [], function $$6(a){var $ret_or_1 = nil; - if (a == null) { - a = nil; - }; - if ($truthy(($ret_or_4 = $rb_le(a.$range().$begin_pos(), insertion_pos)))) { + if (a == null) a = nil;; + if ($truthy(($ret_or_1 = $rb_le(a.$range().$begin_pos(), insertion_pos)))) { return $rb_le(insertion_pos, a.$range().$end_pos()) } else { - return $ret_or_4 - };}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + return $ret_or_1 + };}, 1) } else { return nil }; - }, $Rewriter_clobbered_insertion$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent_insertions?', $Rewriter_adjacent_insertions$ques$23 = function(range) { - var $$24, self = this, result = nil; + $def(self, '$adjacent_insertions?', function $Rewriter_adjacent_insertions$ques$7(range) { + var self = this, result = nil; - if ($truthy(self.$active_insertions()['$&'](self.$adjacent_insertion_mask(range))['$!='](0))) { + if ($neqeq(self.$active_insertions()['$&'](self.$adjacent_insertion_mask(range)), 0)) { - result = $send(self.$active_queue(), 'select', [], ($$24 = function(a){var self = $$24.$$s == null ? this : $$24.$$s, $ret_or_5 = nil; + result = $send(self.$active_queue(), 'select', [], function $$8(a){var self = $$8.$$s == null ? this : $$8.$$s, $ret_or_1 = nil; - if (a == null) { - a = nil; - }; - if ($truthy(($ret_or_5 = a.$range()['$empty?']()))) { + if (a == null) a = nil;; + if ($truthy(($ret_or_1 = a.$range()['$empty?']()))) { return self['$adjacent?'](range, a.$range()) } else { - return $ret_or_5 - };}, $$24.$$s = self, $$24.$$arity = 1, $$24)); + return $ret_or_1 + };}, {$$arity: 1, $$s: self}); if ($truthy(result['$empty?']())) { return nil } else { @@ -6005,197 +5117,168 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } else { return nil } - }, $Rewriter_adjacent_insertions$ques$23.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent_updates?', $Rewriter_adjacent_updates$ques$25 = function(range) { - var $$26, self = this; + $def(self, '$adjacent_updates?', function $Rewriter_adjacent_updates$ques$9(range) { + var self = this; - if ($truthy(self.$active_clobber()['$&'](self.$adjacent_position_mask(range))['$!='](0))) { - return $send(self.$active_queue(), 'select', [], ($$26 = function(a){var self = $$26.$$s == null ? this : $$26.$$s; + if ($neqeq(self.$active_clobber()['$&'](self.$adjacent_position_mask(range)), 0)) { + return $send(self.$active_queue(), 'select', [], function $$10(a){var self = $$10.$$s == null ? this : $$10.$$s; - if (a == null) { - a = nil; - }; - return self['$adjacent?'](range, a.$range());}, $$26.$$s = self, $$26.$$arity = 1, $$26)) + if (a == null) a = nil;; + return self['$adjacent?'](range, a.$range());}, {$$arity: 1, $$s: self}) } else { return nil } - }, $Rewriter_adjacent_updates$ques$25.$$arity = 1); + }, 1); - Opal.def(self, '$replace_compatible_with_insertion?', $Rewriter_replace_compatible_with_insertion$ques$27 = function(replace, insertion) { - var self = this, $ret_or_6 = nil, $ret_or_7 = nil, offset = nil; + $def(self, '$replace_compatible_with_insertion?', function $Rewriter_replace_compatible_with_insertion$ques$11(replace, insertion) { + var $ret_or_1 = nil, $ret_or_2 = nil, offset = nil; - if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge($rb_minus(replace.$replacement().$length(), replace.$range().$size()), insertion.$range().$size())))) { - - return (offset = $rb_minus(insertion.$range().$begin_pos(), replace.$range().$begin_pos())); - } else { - return $ret_or_7 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = $rb_ge($rb_minus(replace.$replacement().$length(), replace.$range().$size()), insertion.$range().$size()))) ? ((offset = $rb_minus(insertion.$range().$begin_pos(), replace.$range().$begin_pos()))) : ($ret_or_2))))) { return replace.$replacement()['$[]'](offset, insertion.$replacement().$length())['$=='](insertion.$replacement()) } else { - return $ret_or_6 + return $ret_or_1 } - }, $Rewriter_replace_compatible_with_insertion$ques$27.$$arity = 2); + }, 2); - Opal.def(self, '$can_merge?', $Rewriter_can_merge$ques$28 = function(action, existing) { - var $$29, self = this, range = nil; + $def(self, '$can_merge?', function $Rewriter_can_merge$ques$12(action, existing) { + var range = nil; range = action.$range(); - return $send(existing, 'all?', [], ($$29 = function(other){var self = $$29.$$s == null ? this : $$29.$$s, overlap = nil, repl1_offset = nil, repl2_offset = nil, repl1_length = nil, repl2_length = nil, replacement1 = nil, $ret_or_8 = nil, replacement2 = nil, $ret_or_9 = nil; + return $send(existing, 'all?', [], function $$13(other){var overlap = nil, repl1_offset = nil, repl2_offset = nil, repl1_length = nil, repl2_length = nil, replacement1 = nil, $ret_or_1 = nil, replacement2 = nil; - if (other == null) { - other = nil; - }; + if (other == null) other = nil;; overlap = range.$intersect(other.$range()); if ($truthy(overlap['$nil?']())) { - return true;}; + return true; + }; repl1_offset = $rb_minus(overlap.$begin_pos(), range.$begin_pos()); repl2_offset = $rb_minus(overlap.$begin_pos(), other.$range().$begin_pos()); repl1_length = [$rb_minus(other.$range().$length(), repl2_offset), $rb_minus(other.$replacement().$length(), repl2_offset)].$max(); repl2_length = [$rb_minus(range.$length(), repl1_offset), $rb_minus(action.$replacement().$length(), repl1_offset)].$max(); - replacement1 = (function() {if ($truthy(($ret_or_8 = action.$replacement()['$[]'](repl1_offset, repl1_length)))) { - return $ret_or_8 - } else { - return "".$freeze() - }; return nil; })(); - replacement2 = (function() {if ($truthy(($ret_or_9 = other.$replacement()['$[]'](repl2_offset, repl2_length)))) { - return $ret_or_9 - } else { - return "".$freeze() - }; return nil; })(); - return replacement1['$=='](replacement2);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); - }, $Rewriter_can_merge$ques$28.$$arity = 2); + replacement1 = ($truthy(($ret_or_1 = action.$replacement()['$[]'](repl1_offset, repl1_length))) ? ($ret_or_1) : ("".$freeze())); + replacement2 = ($truthy(($ret_or_1 = other.$replacement()['$[]'](repl2_offset, repl2_length))) ? ($ret_or_1) : ("".$freeze())); + return replacement1['$=='](replacement2);}, 1); + }, 2); - Opal.def(self, '$merge_actions', $Rewriter_merge_actions$30 = function $$merge_actions(action, existing) { - var $$31, $$32, self = this, actions = nil, range = nil; + $def(self, '$merge_actions', function $$merge_actions(action, existing) { + var self = this, actions = nil, range = nil; - actions = $send(existing.$push(action), 'sort_by', [], ($$31 = function(a){var self = $$31.$$s == null ? this : $$31.$$s; - + actions = $send(existing.$push(action), 'sort_by', [], function $$14(a){ - if (a == null) { - a = nil; - }; - return [a.$range().$begin_pos(), a.$range().$end_pos()];}, $$31.$$s = self, $$31.$$arity = 1, $$31)); - range = actions.$first().$range().$join($send(actions, 'max_by', [], ($$32 = function(a){var self = $$32.$$s == null ? this : $$32.$$s; - + if (a == null) a = nil;; + return [a.$range().$begin_pos(), a.$range().$end_pos()];}, 1); + range = actions.$first().$range().$join($send(actions, 'max_by', [], function $$15(a){ - if (a == null) { - a = nil; - }; - return a.$range().$end_pos();}, $$32.$$s = self, $$32.$$arity = 1, $$32)).$range()); - return $$$($$($nesting, 'Rewriter'), 'Action').$new(range, self.$merge_replacements(actions)); - }, $Rewriter_merge_actions$30.$$arity = 2); + if (a == null) a = nil;; + return a.$range().$end_pos();}, 1).$range()); + return $$$($$('Rewriter'), 'Action').$new(range, self.$merge_replacements(actions)); + }, 2); - Opal.def(self, '$merge_actions!', $Rewriter_merge_actions$excl$33 = function(action, existing) { + $def(self, '$merge_actions!', function $Rewriter_merge_actions$excl$16(action, existing) { var self = this, new_action = nil; new_action = self.$merge_actions(action, existing); self.$active_queue().$delete(action); return self.$replace_actions(existing, new_action); - }, $Rewriter_merge_actions$excl$33.$$arity = 2); + }, 2); - Opal.def(self, '$merge_replacements', $Rewriter_merge_replacements$34 = function $$merge_replacements(actions) { - var $$35, self = this, result = nil, prev_act = nil; + $def(self, '$merge_replacements', function $$merge_replacements(actions) { + var result = nil, prev_act = nil; result = "".$dup(); prev_act = nil; - $send(actions, 'each', [], ($$35 = function(act){var self = $$35.$$s == null ? this : $$35.$$s, $ret_or_10 = nil, prev_end = nil, offset = nil; + $send(actions, 'each', [], function $$17(act){var prev_end = nil, offset = nil; - if (act == null) { - act = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_10 = prev_act['$!']()))) { - return $ret_or_10 - } else { - return act.$range()['$disjoint?'](prev_act.$range()) - }; return nil; })())) { + if (act == null) act = nil;; + if (($not(prev_act) || ($truthy(act.$range()['$disjoint?'](prev_act.$range()))))) { result['$<<'](act.$replacement()) } else { prev_end = [$rb_plus(prev_act.$range().$begin_pos(), prev_act.$replacement().$length()), prev_act.$range().$end_pos()].$max(); offset = $rb_minus(prev_end, act.$range().$begin_pos()); if ($truthy($rb_lt(offset, act.$replacement().$size()))) { - result['$<<'](act.$replacement()['$[]'](Opal.Range.$new(offset, -1, false)))}; + result['$<<'](act.$replacement()['$[]'](Opal.Range.$new(offset, -1, false))) + }; }; - return (prev_act = act);}, $$35.$$s = self, $$35.$$arity = 1, $$35)); + return (prev_act = act);}, 1); return result; - }, $Rewriter_merge_replacements$34.$$arity = 1); + }, 1); - Opal.def(self, '$replace_actions', $Rewriter_replace_actions$36 = function $$replace_actions(old, updated) { - var $$37, self = this; + $def(self, '$replace_actions', function $$replace_actions(old, updated) { + var self = this; - $send(old, 'each', [], ($$37 = function(act){var self = $$37.$$s == null ? this : $$37.$$s; + $send(old, 'each', [], function $$18(act){var self = $$18.$$s == null ? this : $$18.$$s; - if (act == null) { - act = nil; - }; - return self.$active_queue().$delete(act);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + if (act == null) act = nil;; + return self.$active_queue().$delete(act);}, {$$arity: 1, $$s: self}); return self.$active_queue()['$<<'](updated); - }, $Rewriter_replace_actions$36.$$arity = 2); + }, 2); - Opal.def(self, '$raise_clobber_error', $Rewriter_raise_clobber_error$38 = function $$raise_clobber_error(action, existing) { + $def(self, '$raise_clobber_error', function $$raise_clobber_error(action, existing) { var self = this, diagnostic = nil; - diagnostic = $$($nesting, 'Diagnostic').$new("error", "invalid_action", $hash2(["action"], {"action": action}), action.$range()); + diagnostic = $$('Diagnostic').$new("error", "invalid_action", $hash2(["action"], {"action": action}), action.$range()); self.diagnostics.$process(diagnostic); - diagnostic = $$($nesting, 'Diagnostic').$new("note", "clobbered", $hash2(["action"], {"action": existing['$[]'](0)}), existing['$[]'](0).$range()); + diagnostic = $$('Diagnostic').$new("note", "clobbered", $hash2(["action"], {"action": existing['$[]'](0)}), existing['$[]'](0).$range()); self.diagnostics.$process(diagnostic); - return self.$raise($$($nesting, 'ClobberingError'), "Parser::Source::Rewriter detected clobbering"); - }, $Rewriter_raise_clobber_error$38.$$arity = 2); + return self.$raise($$('ClobberingError'), "Parser::Source::Rewriter detected clobbering"); + }, 2); - Opal.def(self, '$in_transaction?', $Rewriter_in_transaction$ques$39 = function() { + $def(self, '$in_transaction?', function $Rewriter_in_transaction$ques$19() { var self = this; return self.pending_queue['$nil?']()['$!']() - }, $Rewriter_in_transaction$ques$39.$$arity = 0); + }, 0); - Opal.def(self, '$active_queue', $Rewriter_active_queue$40 = function $$active_queue() { - var self = this, $ret_or_11 = nil; + $def(self, '$active_queue', function $$active_queue() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_11 = self.pending_queue))) { - return $ret_or_11 + if ($truthy(($ret_or_1 = self.pending_queue))) { + return $ret_or_1 } else { return self.queue } - }, $Rewriter_active_queue$40.$$arity = 0); + }, 0); - Opal.def(self, '$active_clobber', $Rewriter_active_clobber$41 = function $$active_clobber() { - var self = this, $ret_or_12 = nil; + $def(self, '$active_clobber', function $$active_clobber() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_12 = self.pending_clobber))) { - return $ret_or_12 + if ($truthy(($ret_or_1 = self.pending_clobber))) { + return $ret_or_1 } else { return self.clobber } - }, $Rewriter_active_clobber$41.$$arity = 0); + }, 0); - Opal.def(self, '$active_insertions', $Rewriter_active_insertions$42 = function $$active_insertions() { - var self = this, $ret_or_13 = nil; + $def(self, '$active_insertions', function $$active_insertions() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_13 = self.pending_insertions))) { - return $ret_or_13 + if ($truthy(($ret_or_1 = self.pending_insertions))) { + return $ret_or_1 } else { return self.insertions } - }, $Rewriter_active_insertions$42.$$arity = 0); + }, 0); - Opal.def(self, '$active_clobber=', $Rewriter_active_clobber$eq$43 = function(value) { + $def(self, '$active_clobber=', function $Rewriter_active_clobber$eq$20(value) { var self = this; if ($truthy(self.pending_clobber)) { @@ -6203,9 +5286,9 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } else { return (self.clobber = value) } - }, $Rewriter_active_clobber$eq$43.$$arity = 1); + }, 1); - Opal.def(self, '$active_insertions=', $Rewriter_active_insertions$eq$44 = function(value) { + $def(self, '$active_insertions=', function $Rewriter_active_insertions$eq$21(value) { var self = this; if ($truthy(self.pending_insertions)) { @@ -6213,29 +5296,28 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } else { return (self.insertions = value) } - }, $Rewriter_active_insertions$eq$44.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent?', $Rewriter_adjacent$ques$45 = function(range1, range2) { - var self = this, $ret_or_14 = nil; + $def(self, '$adjacent?', function $Rewriter_adjacent$ques$22(range1, range2) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_14 = $rb_le(range1.$begin_pos(), range2.$end_pos())))) { + if ($truthy(($ret_or_1 = $rb_le(range1.$begin_pos(), range2.$end_pos())))) { return $rb_le(range2.$begin_pos(), range1.$end_pos()) } else { - return $ret_or_14 + return $ret_or_1 } - }, $Rewriter_adjacent$ques$45.$$arity = 2); - Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Source::Rewriter is deprecated.", "Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()); - return self.$extend($$($nesting, 'Deprecation')); + }, 2); + $const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Source::Rewriter is deprecated.", "Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()); + return self.$extend($$('Deprecation')); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/rewriter/action"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["parser/source/rewriter/action"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $eqeq = Opal.eqeq; - Opal.add_stubs(['$include', '$attr_reader', '$alias_method', '$freeze', '$<=>', '$begin_pos', '$range', '$zero?', '$order', '$==', '$length', '$empty?', '$inspect']); + Opal.add_stubs('include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6244,92 +5326,68 @@ Opal.modules["parser/source/rewriter/action"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Action'); - var $nesting = [self].concat($parent_nesting), $Action_initialize$1, $Action_$lt_eq_gt$2, $Action_to_s$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.range = self.$$prototype.replacement = nil; + $proto.replacement = $proto.range = nil; - self.$include($$($nesting, 'Comparable')); + self.$include($$('Comparable')); self.$attr_reader("range", "replacement", "allow_multiple_insertions", "order"); self.$alias_method("allow_multiple_insertions?", "allow_multiple_insertions"); - Opal.def(self, '$initialize', $Action_initialize$1 = function $$initialize(range, replacement, allow_multiple_insertions, order) { + $def(self, '$initialize', function $$initialize(range, replacement, allow_multiple_insertions, order) { var self = this; - if (replacement == null) { - replacement = ""; - }; + if (replacement == null) replacement = "";; - if (allow_multiple_insertions == null) { - allow_multiple_insertions = false; - }; + if (allow_multiple_insertions == null) allow_multiple_insertions = false;; - if (order == null) { - order = 0; - }; + if (order == null) order = 0;; self.range = range; self.replacement = replacement; self.allow_multiple_insertions = allow_multiple_insertions; self.order = order; return self.$freeze(); - }, $Action_initialize$1.$$arity = -2); + }, -2); - Opal.def(self, '$<=>', $Action_$lt_eq_gt$2 = function(other) { + $def(self, '$<=>', function $Action_$lt_eq_gt$1(other) { var self = this, result = nil; result = self.$range().$begin_pos()['$<=>'](other.$range().$begin_pos()); - if ($truthy(result['$zero?']())) { - } else { + if (!$truthy(result['$zero?']())) { return result }; return self.$order()['$<=>'](other.$order()); - }, $Action_$lt_eq_gt$2.$$arity = 1); - return (Opal.def(self, '$to_s', $Action_to_s$3 = function $$to_s() { - var self = this, $ret_or_1 = nil; + }, 1); + return $def(self, '$to_s', function $$to_s() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_1 = self.range.$length()['$=='](0)))) { - return self.replacement['$empty?']() - } else { - return $ret_or_1 - }; return nil; })())) { + if (($eqeq(self.range.$length(), 0) && ($truthy(self.replacement['$empty?']())))) { return "do nothing" - } else if (self.range.$length()['$=='](0)) { - return "" + "insert " + (self.replacement.$inspect()) + } else if ($eqeq(self.range.$length(), 0)) { + return "insert " + (self.replacement.$inspect()) } else if ($truthy(self.replacement['$empty?']())) { - return "" + "remove " + (self.range.$length()) + " character(s)" + return "remove " + (self.range.$length()) + " character(s)" } else { - return "" + "replace " + (self.range.$length()) + " character(s) with " + (self.replacement.$inspect()) + return "replace " + (self.range.$length()) + " character(s) with " + (self.replacement.$inspect()) } - }, $Action_to_s$3.$$arity = 0), nil) && 'to_s'; - })($$($nesting, 'Rewriter'), null, $nesting) + }, 0); + })($$('Rewriter'), null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/tree_rewriter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $lambda = Opal.lambda, $gvars = Opal.gvars, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $hash = Opal.hash, $slice = Opal.slice; - - Opal.add_stubs(['$attr_reader', '$new', '$puts', '$render', '$consumer=', '$-', '$freeze', '$check_policy_validity', '$method', '$adjust', '$source_range', '$empty?', '$==', '$source_buffer', '$raise', '$combine', '$action_root', '$merge!', '$dup', '$contract', '$+', '$begin_pos', '$range', '$end_pos', '$check_range_validity', '$moved', '$to_s', '$replace', '$wrap', '$source', '$each', '$ordered_replacements', '$<<', '$[]', '$length', '$join', '$nested_actions', '$class', '$name', '$action_summary', '$warn_of_deprecation', '$insert_before', '$insert_after', '$extend', '$protected', '$private', '$as_replacements', '$size', '$===', '$first', '$map', '$to_range', '$inspect', '$values', '$<', '$>', '$trigger_policy', '$process']); +Opal.modules["parser/source/tree_rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $lambda = Opal.lambda, $gvars = Opal.gvars, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $const_set = Opal.const_set, $eqeqeq = Opal.eqeqeq, $range = Opal.range, $to_ary = Opal.to_ary, $hash = Opal.hash, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $slice = Opal.slice; + + Opal.add_stubs('attr_reader,new,puts,render,consumer=,-,freeze,check_policy_validity,method,adjust,source_range,empty?,==,source_buffer,raise,combine,action_root,merge!,dup,contract,+,begin_pos,range,end_pos,check_range_validity,moved,to_s,replace,wrap,source,each,ordered_replacements,<<,[],length,join,nested_actions,class,name,action_summary,warn_of_deprecation,insert_before,insert_after,extend,protected,private,as_replacements,===,size,first,map,to_range,inspect,values,>,<,trigger_policy,process'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6343,15 +5401,15 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'TreeRewriter'); - var $nesting = [self].concat($parent_nesting), $TreeRewriter_initialize$1, $TreeRewriter_empty$ques$3, $TreeRewriter_merge$excl$4, $TreeRewriter_merge$5, $TreeRewriter_import$excl$6, $TreeRewriter_replace$7, $TreeRewriter_wrap$8, $TreeRewriter_remove$9, $TreeRewriter_insert_before$10, $TreeRewriter_insert_after$11, $TreeRewriter_process$12, $TreeRewriter_as_replacements$14, $TreeRewriter_as_nested_actions$15, $TreeRewriter_transaction$16, $TreeRewriter_in_transaction$ques$17, $TreeRewriter_inspect$18, $TreeRewriter_insert_before_multi$19, $TreeRewriter_insert_after_multi$20, $TreeRewriter_action_summary$21, $TreeRewriter_check_policy_validity$23, $TreeRewriter_combine$24, $TreeRewriter_check_range_validity$25, $TreeRewriter_enforce_policy$26, $TreeRewriter_trigger_policy$27; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.diagnostics = self.$$prototype.source_buffer = self.$$prototype.enforcer = self.$$prototype.action_root = self.$$prototype.in_transaction = self.$$prototype.policy = nil; + $proto.diagnostics = $proto.source_buffer = $proto.enforcer = $proto.action_root = $proto.in_transaction = $proto.policy = nil; self.$attr_reader("source_buffer"); self.$attr_reader("diagnostics"); - Opal.def(self, '$initialize', $TreeRewriter_initialize$1 = function $$initialize(source_buffer, $kwargs) { - var crossing_deletions, different_replacements, swallowed_insertions, $$2, self = this, $writer = nil, all_encompassing_range = nil; + $def(self, '$initialize', function $$initialize(source_buffer, $kwargs) { + var crossing_deletions, different_replacements, swallowed_insertions, self = this, $writer = nil, all_encompassing_range = nil; @@ -6362,31 +5420,22 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { }; crossing_deletions = $kwargs.$$smap["crossing_deletions"]; - if (crossing_deletions == null) { - crossing_deletions = "accept" - }; + if (crossing_deletions == null) crossing_deletions = "accept"; different_replacements = $kwargs.$$smap["different_replacements"]; - if (different_replacements == null) { - different_replacements = "accept" - }; + if (different_replacements == null) different_replacements = "accept"; swallowed_insertions = $kwargs.$$smap["swallowed_insertions"]; - if (swallowed_insertions == null) { - swallowed_insertions = "accept" - }; - self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); + if (swallowed_insertions == null) swallowed_insertions = "accept"; + self.diagnostics = $$$($$('Diagnostic'), 'Engine').$new(); - $writer = [$lambda(($$2 = function(diag){var self = $$2.$$s == null ? this : $$2.$$s; - if ($gvars.stderr == null) $gvars.stderr = nil; + $writer = [$lambda(function $$1(diag){ if ($gvars.stderr == null) $gvars.stderr = nil; - if (diag == null) { - diag = nil; - }; - return $gvars.stderr.$puts(diag.$render());}, $$2.$$s = self, $$2.$$arity = 1, $$2))]; - $send(self.diagnostics, 'consumer=', Opal.to_a($writer)); + if (diag == null) diag = nil;; + return $gvars.stderr.$puts(diag.$render());}, 1)]; + $send(self.diagnostics, 'consumer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.source_buffer = source_buffer; self.in_transaction = false; @@ -6394,34 +5443,33 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { self.$check_policy_validity(); self.enforcer = self.$method("enforce_policy"); all_encompassing_range = self.source_buffer.$source_range().$adjust($hash2(["begin_pos", "end_pos"], {"begin_pos": -1, "end_pos": 1})); - return (self.action_root = $$$($$($nesting, 'TreeRewriter'), 'Action').$new(all_encompassing_range, self.enforcer)); - }, $TreeRewriter_initialize$1.$$arity = -2); + return (self.action_root = $$$($$('TreeRewriter'), 'Action').$new(all_encompassing_range, self.enforcer)); + }, -2); - Opal.def(self, '$empty?', $TreeRewriter_empty$ques$3 = function() { + $def(self, '$empty?', function $TreeRewriter_empty$ques$2() { var self = this; return self.action_root['$empty?']() - }, $TreeRewriter_empty$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$merge!', $TreeRewriter_merge$excl$4 = function(with$) { + $def(self, '$merge!', function $TreeRewriter_merge$excl$3(with$) { var self = this; - if (self.$source_buffer()['$=='](with$.$source_buffer())) { - } else { + if (!$eqeq(self.$source_buffer(), with$.$source_buffer())) { self.$raise("TreeRewriter are not for the same source_buffer") }; self.action_root = self.action_root.$combine(with$.$action_root()); return self; - }, $TreeRewriter_merge$excl$4.$$arity = 1); + }, 1); - Opal.def(self, '$merge', $TreeRewriter_merge$5 = function $$merge(with$) { + $def(self, '$merge', function $$merge(with$) { var self = this; return self.$dup()['$merge!'](with$) - }, $TreeRewriter_merge$5.$$arity = 1); + }, 1); - Opal.def(self, '$import!', $TreeRewriter_import$excl$6 = function(foreign_rewriter, $kwargs) { + $def(self, '$import!', function $TreeRewriter_import$excl$4(foreign_rewriter, $kwargs) { var offset, self = this, contracted = nil, merge_effective_range = nil, merge_with = nil; @@ -6433,93 +5481,86 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { }; offset = $kwargs.$$smap["offset"]; - if (offset == null) { - offset = 0 - }; + if (offset == null) offset = 0; if ($truthy(foreign_rewriter['$empty?']())) { - return self}; + return self + }; contracted = foreign_rewriter.$action_root().$contract(); - merge_effective_range = $$$($$$($$$('::', 'Parser'), 'Source'), 'Range').$new(self.source_buffer, $rb_plus(contracted.$range().$begin_pos(), offset), $rb_plus(contracted.$range().$end_pos(), offset)); + merge_effective_range = $$$($$$($$$('Parser'), 'Source'), 'Range').$new(self.source_buffer, $rb_plus(contracted.$range().$begin_pos(), offset), $rb_plus(contracted.$range().$end_pos(), offset)); self.$check_range_validity(merge_effective_range); merge_with = contracted.$moved(self.source_buffer, offset); self.action_root = self.action_root.$combine(merge_with); return self; - }, $TreeRewriter_import$excl$6.$$arity = -2); + }, -2); - Opal.def(self, '$replace', $TreeRewriter_replace$7 = function $$replace(range, content) { + $def(self, '$replace', function $$replace(range, content) { var self = this; return self.$combine(range, $hash2(["replacement"], {"replacement": content})) - }, $TreeRewriter_replace$7.$$arity = 2); + }, 2); - Opal.def(self, '$wrap', $TreeRewriter_wrap$8 = function $$wrap(range, insert_before, insert_after) { + $def(self, '$wrap', function $$wrap(range, insert_before, insert_after) { var self = this; return self.$combine(range, $hash2(["insert_before", "insert_after"], {"insert_before": insert_before.$to_s(), "insert_after": insert_after.$to_s()})) - }, $TreeRewriter_wrap$8.$$arity = 3); + }, 3); - Opal.def(self, '$remove', $TreeRewriter_remove$9 = function $$remove(range) { + $def(self, '$remove', function $$remove(range) { var self = this; return self.$replace(range, "".$freeze()) - }, $TreeRewriter_remove$9.$$arity = 1); + }, 1); - Opal.def(self, '$insert_before', $TreeRewriter_insert_before$10 = function $$insert_before(range, content) { + $def(self, '$insert_before', function $$insert_before(range, content) { var self = this; return self.$wrap(range, content, nil) - }, $TreeRewriter_insert_before$10.$$arity = 2); + }, 2); - Opal.def(self, '$insert_after', $TreeRewriter_insert_after$11 = function $$insert_after(range, content) { + $def(self, '$insert_after', function $$insert_after(range, content) { var self = this; return self.$wrap(range, nil, content) - }, $TreeRewriter_insert_after$11.$$arity = 2); + }, 2); - Opal.def(self, '$process', $TreeRewriter_process$12 = function $$process() { - var $$13, self = this, source = nil, chunks = nil, last_end = nil; + $def(self, '$process', function $$process() { + var self = this, source = nil, chunks = nil, last_end = nil; source = self.source_buffer.$source(); chunks = []; last_end = 0; - $send(self.action_root.$ordered_replacements(), 'each', [], ($$13 = function(range, replacement){var self = $$13.$$s == null ? this : $$13.$$s; - + $send(self.action_root.$ordered_replacements(), 'each', [], function $$5(range, replacement){ - if (range == null) { - range = nil; - }; + if (range == null) range = nil;; - if (replacement == null) { - replacement = nil; - }; + if (replacement == null) replacement = nil;; chunks['$<<'](source['$[]'](Opal.Range.$new(last_end,range.$begin_pos(), true)))['$<<'](replacement); - return (last_end = range.$end_pos());}, $$13.$$s = self, $$13.$$arity = 2, $$13)); + return (last_end = range.$end_pos());}, 2); chunks['$<<'](source['$[]'](Opal.Range.$new(last_end,source.$length(), true))); return chunks.$join(); - }, $TreeRewriter_process$12.$$arity = 0); + }, 0); - Opal.def(self, '$as_replacements', $TreeRewriter_as_replacements$14 = function $$as_replacements() { + $def(self, '$as_replacements', function $$as_replacements() { var self = this; return self.action_root.$ordered_replacements() - }, $TreeRewriter_as_replacements$14.$$arity = 0); + }, 0); - Opal.def(self, '$as_nested_actions', $TreeRewriter_as_nested_actions$15 = function $$as_nested_actions() { + $def(self, '$as_nested_actions', function $$as_nested_actions() { var self = this; return self.action_root.$nested_actions() - }, $TreeRewriter_as_nested_actions$15.$$arity = 0); + }, 0); - Opal.def(self, '$transaction', $TreeRewriter_transaction$16 = function $$transaction() { - var $iter = $TreeRewriter_transaction$16.$$p, $yield = $iter || nil, self = this, previous = nil, restore_root = nil; + $def(self, '$transaction', function $$transaction() { + var $yield = $$transaction.$$p || nil, self = this, previous = nil, restore_root = nil; - if ($iter) $TreeRewriter_transaction$16.$$p = null; + delete $$transaction.$$p; return (function() { try { - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { self.$raise("" + (self.$class()) + "#" + ("transaction") + " requires block") }; previous = self.in_transaction; @@ -6529,130 +5570,123 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { restore_root = nil; return self; } finally { - ((function() {if ($truthy(restore_root)) { - return (self.action_root = restore_root) - } else { - return nil - }; return nil; })(), (self.in_transaction = previous)) + (($truthy(restore_root) ? ((self.action_root = restore_root)) : nil), (self.in_transaction = previous)) }; })() - }, $TreeRewriter_transaction$16.$$arity = 0); + }, 0); - Opal.def(self, '$in_transaction?', $TreeRewriter_in_transaction$ques$17 = function() { + $def(self, '$in_transaction?', function $TreeRewriter_in_transaction$ques$6() { var self = this; return self.in_transaction - }, $TreeRewriter_in_transaction$ques$17.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $TreeRewriter_inspect$18 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#<" + (self.$class()) + " " + (self.$source_buffer().$name()) + ": " + (self.$action_summary()) + ">" - }, $TreeRewriter_inspect$18.$$arity = 0); + return "#<" + (self.$class()) + " " + (self.$source_buffer().$name()) + ": " + (self.$action_summary()) + ">" + }, 0); - Opal.def(self, '$insert_before_multi', $TreeRewriter_insert_before_multi$19 = function $$insert_before_multi(range, text) { + $def(self, '$insert_before_multi', function $$insert_before_multi(range, text) { var self = this; self.$class().$warn_of_deprecation(); return self.$insert_before(range, text); - }, $TreeRewriter_insert_before_multi$19.$$arity = 2); + }, 2); - Opal.def(self, '$insert_after_multi', $TreeRewriter_insert_after_multi$20 = function $$insert_after_multi(range, text) { + $def(self, '$insert_after_multi', function $$insert_after_multi(range, text) { var self = this; self.$class().$warn_of_deprecation(); return self.$insert_after(range, text); - }, $TreeRewriter_insert_after_multi$20.$$arity = 2); - Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.", "Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()); - self.$extend($$($nesting, 'Deprecation')); + }, 2); + $const_set($nesting[0], 'DEPRECATION_WARNING', ["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.", "Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()); + self.$extend($$('Deprecation')); self.$protected(); self.$attr_reader("action_root"); self.$private(); - Opal.def(self, '$action_summary', $TreeRewriter_action_summary$21 = function $$action_summary() { - var $$22, self = this, replacements = nil, $case = nil, suffix = nil, parts = nil; + $def(self, '$action_summary', function $$action_summary() { + var self = this, replacements = nil, $ret_or_1 = nil, suffix = nil, parts = nil; replacements = self.$as_replacements(); - $case = replacements.$size(); - if ((0)['$===']($case)) {return "empty"} - else if ($range(1, 3, false)['$===']($case)) {nil} - else { - replacements = replacements.$first(3); - suffix = "…";}; - parts = $send(replacements, 'map', [], ($$22 = function($mlhs_tmp1){var self = $$22.$$s == null ? this : $$22.$$s, $a, $b, range = nil, str = nil; + if ($eqeqeq(0, ($ret_or_1 = replacements.$size()))) { + return "empty" + } else if (!$eqeqeq($range(1, 3, false), $ret_or_1)) { + + replacements = replacements.$first(3); + suffix = "…"; + }; + parts = $send(replacements, 'map', [], function $$7($mlhs_tmp1){var $a, $b, range = nil, str = nil; - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $b = $mlhs_tmp1, $a = Opal.to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (str = ($a[1] == null ? nil : $a[1])), $b; + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $b = $mlhs_tmp1, $a = $to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (str = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(str['$empty?']())) { - return "" + "-" + (range.$to_range()) - } else if (range.$size()['$=='](0)) { - return "" + "+" + (str.$inspect()) + "@" + (range.$begin_pos()) + return "-" + (range.$to_range()) + } else if ($eqeq(range.$size(), 0)) { + return "+" + (str.$inspect()) + "@" + (range.$begin_pos()) } else { - return "" + "^" + (str.$inspect()) + "@" + (range.$to_range()) - };}, $$22.$$s = self, $$22.$$arity = 1, $$22.$$has_top_level_mlhs_arg = true, $$22)); + return "^" + (str.$inspect()) + "@" + (range.$to_range()) + };}, {$$arity: 1, $$has_top_level_mlhs_arg: true}); if ($truthy(suffix)) { - parts['$<<'](suffix)}; + parts['$<<'](suffix) + }; return parts.$join(", "); - }, $TreeRewriter_action_summary$21.$$arity = 0); - Opal.const_set($nesting[0], 'ACTIONS', ["accept", "warn", "raise"].$freeze()); + }, 0); + $const_set($nesting[0], 'ACTIONS', ["accept", "warn", "raise"].$freeze()); - Opal.def(self, '$check_policy_validity', $TreeRewriter_check_policy_validity$23 = function $$check_policy_validity() { + $def(self, '$check_policy_validity', function $$check_policy_validity() { var self = this, invalid = nil; - invalid = $rb_minus(self.policy.$values(), $$($nesting, 'ACTIONS')); + invalid = $rb_minus(self.policy.$values(), $$('ACTIONS')); if ($truthy(invalid['$empty?']())) { return nil } else { - return self.$raise($$($nesting, 'ArgumentError'), "" + "Invalid policy: " + (invalid.$join(", "))) + return self.$raise($$('ArgumentError'), "Invalid policy: " + (invalid.$join(", "))) }; - }, $TreeRewriter_check_policy_validity$23.$$arity = 0); + }, 0); - Opal.def(self, '$combine', $TreeRewriter_combine$24 = function $$combine(range, attributes) { + $def(self, '$combine', function $$combine(range, attributes) { var self = this, action = nil; range = self.$check_range_validity(range); - action = $$$($$($nesting, 'TreeRewriter'), 'Action').$new(range, self.enforcer, Opal.to_hash(attributes)); + action = $$$($$('TreeRewriter'), 'Action').$new(range, self.enforcer, Opal.to_hash(attributes)); self.action_root = self.action_root.$combine(action); return self; - }, $TreeRewriter_combine$24.$$arity = 2); + }, 2); - Opal.def(self, '$check_range_validity', $TreeRewriter_check_range_validity$25 = function $$check_range_validity(range) { - var self = this, $ret_or_1 = nil; + $def(self, '$check_range_validity', function $$check_range_validity(range) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_1 = $rb_lt(range.$begin_pos(), 0)))) { - return $ret_or_1 - } else { - return $rb_gt(range.$end_pos(), self.source_buffer.$source().$size()) - }; return nil; })())) { - self.$raise($$($nesting, 'IndexError'), "" + "The range " + (range.$to_range()) + " is outside the bounds of the source")}; + if (($truthy($rb_lt(range.$begin_pos(), 0)) || ($truthy($rb_gt(range.$end_pos(), self.source_buffer.$source().$size()))))) { + self.$raise($$('IndexError'), "The range " + (range.$to_range()) + " is outside the bounds of the source") + }; return range; - }, $TreeRewriter_check_range_validity$25.$$arity = 1); + }, 1); - Opal.def(self, '$enforce_policy', $TreeRewriter_enforce_policy$26 = function $$enforce_policy(event) { - var $iter = $TreeRewriter_enforce_policy$26.$$p, $yield = $iter || nil, self = this, values = nil; + $def(self, '$enforce_policy', function $$enforce_policy(event) { + var $yield = $$enforce_policy.$$p || nil, self = this, values = nil; - if ($iter) $TreeRewriter_enforce_policy$26.$$p = null; + delete $$enforce_policy.$$p; - if (self.policy['$[]'](event)['$==']("accept")) { - return nil}; - if ($truthy((values = Opal.yieldX($yield, [])))) { - } else { + if ($eqeq(self.policy['$[]'](event), "accept")) { + return nil + }; + if (!$truthy((values = Opal.yieldX($yield, [])))) { return nil }; return self.$trigger_policy(event, Opal.to_hash(values)); - }, $TreeRewriter_enforce_policy$26.$$arity = 1); - Opal.const_set($nesting[0], 'POLICY_TO_LEVEL', $hash2(["warn", "raise"], {"warn": "warning", "raise": "error"}).$freeze()); - return (Opal.def(self, '$trigger_policy', $TreeRewriter_trigger_policy$27 = function $$trigger_policy(event, $kwargs) { - var range, conflict, arguments$, $a, $b, self = this, action = nil, $ret_or_2 = nil, diag = nil, highlights = nil; + }, 1); + $const_set($nesting[0], 'POLICY_TO_LEVEL', $hash2(["warn", "raise"], {"warn": "warning", "raise": "error"}).$freeze()); + return $def(self, '$trigger_policy', function $$trigger_policy(event, $kwargs) { + var range, conflict, arguments$, $a, $b, self = this, action = nil, $ret_or_1 = nil, diag = nil, highlights = nil; @@ -6663,62 +5697,36 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { }; range = $kwargs.$$smap["range"]; - if (range == null) { - range = self.$raise() - }; + if (range == null) range = self.$raise(); conflict = $kwargs.$$smap["conflict"]; - if (conflict == null) { - conflict = nil - }; + if (conflict == null) conflict = nil; arguments$ = Opal.kwrestargs($kwargs, {'range': true,'conflict': true});; - action = (function() {if ($truthy(($ret_or_2 = self.policy['$[]'](event)))) { - return $ret_or_2 - } else { - return "raise" - }; return nil; })(); - diag = $$$($$($nesting, 'Parser'), 'Diagnostic').$new($$($nesting, 'POLICY_TO_LEVEL')['$[]'](action), event, arguments$, range); + action = ($truthy(($ret_or_1 = self.policy['$[]'](event))) ? ($ret_or_1) : ("raise")); + diag = $$$($$('Parser'), 'Diagnostic').$new($$('POLICY_TO_LEVEL')['$[]'](action), event, arguments$, range); self.diagnostics.$process(diag); if ($truthy(conflict)) { - $b = conflict, $a = Opal.to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (highlights = $slice.call($a, 1)), $b; - diag = $$$($$($nesting, 'Parser'), 'Diagnostic').$new($$($nesting, 'POLICY_TO_LEVEL')['$[]'](action), "" + (event) + "_conflict", arguments$, range, highlights); - self.diagnostics.$process(diag);}; - if (action['$==']("raise")) { - return self.$raise($$$($$($nesting, 'Parser'), 'ClobberingError'), "Parser::Source::TreeRewriter detected clobbering") + $b = conflict, $a = $to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (highlights = $slice.call($a, 1)), $b; + diag = $$$($$('Parser'), 'Diagnostic').$new($$('POLICY_TO_LEVEL')['$[]'](action), "" + (event) + "_conflict", arguments$, range, highlights); + self.diagnostics.$process(diag); + }; + if ($eqeq(action, "raise")) { + return self.$raise($$$($$('Parser'), 'ClobberingError'), "Parser::Source::TreeRewriter detected clobbering") } else { return nil }; - }, $TreeRewriter_trigger_policy$27.$$arity = -2), nil) && 'trigger_policy'; + }, -2); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$freeze', '$empty?', '$do_combine', '$==', '$<<', '$begin', '$concat', '$flat_map', '$to_proc', '$end', '$!', '$insert_before', '$insert_after', '$replacement', '$raise', '$insertion?', '$with', '$begin_pos', '$range', '$first', '$children', '$end_pos', '$last', '$new', '$+', '$map', '$moved', '$protected', '$swallow', '$class', '$merge', '$place_in_hierarchy', '$analyse_hierarchy', '$[]', '$fuse_deletions', '$combine_children', '$inject', '$size', '$bsearch', '$bsearch_child_index', '$>', '$-', '$>=', '$===', '$<=>', '$<=', '$check_fusible', '$<', '$shift', '$pop', '$compact!', '$each', '$call', '$call_enforcer_for_merge', '$!=', '$select']); +Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $not = Opal.not, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $rb_gt = Opal.rb_gt, $rb_minus = Opal.rb_minus, $rb_ge = Opal.rb_ge, $eqeqeq = Opal.eqeqeq, $rb_le = Opal.rb_le, $rb_lt = Opal.rb_lt, $neqeq = Opal.neqeq; + + Opal.add_stubs('attr_reader,freeze,empty?,do_combine,==,<<,begin,concat,flat_map,to_proc,end,!,insert_before,insert_after,replacement,raise,insertion?,with,begin_pos,range,first,children,end_pos,last,new,+,map,moved,protected,swallow,class,merge,place_in_hierarchy,analyse_hierarchy,[],fuse_deletions,combine_children,inject,size,bsearch,bsearch_child_index,>,-,>=,===,<=>,<=,check_fusible,<,shift,pop,compact!,each,call,call_enforcer_for_merge,!=,select'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6727,18 +5735,18 @@ Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Action'); - var $nesting = [self].concat($parent_nesting), $Action_initialize$1, $Action_combine$2, $Action_empty$ques$3, $Action_ordered_replacements$4, $Action_nested_actions$5, $Action_insertion$ques$6, $Action_contract$7, $Action_moved$8, $Action_with$10, $Action_do_combine$11, $Action_place_in_hierarchy$12, $Action_combine_children$13, $Action_fuse_deletions$15, $Action_bsearch_child_index$16, $Action_analyse_hierarchy$18, $Action_check_fusible$21, $Action_merge$24, $Action_call_enforcer_for_merge$25, $Action_swallow$27; + var $proto = self.$$prototype; - self.$$prototype.insert_before = self.$$prototype.insert_after = self.$$prototype.children = self.$$prototype.replacement = self.$$prototype.range = self.$$prototype.enforcer = nil; + $proto.insert_before = $proto.insert_after = $proto.children = $proto.replacement = $proto.range = $proto.enforcer = nil; self.$attr_reader("range", "replacement", "insert_before", "insert_after"); - Opal.def(self, '$initialize', $Action_initialize$1 = function $$initialize(range, enforcer, $kwargs) { + $def(self, '$initialize', function $$initialize(range, enforcer, $kwargs) { var insert_before, replacement, insert_after, children, $a, self = this; @@ -6750,149 +5758,126 @@ Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { }; insert_before = $kwargs.$$smap["insert_before"]; - if (insert_before == null) { - insert_before = "" - }; + if (insert_before == null) insert_before = ""; replacement = $kwargs.$$smap["replacement"]; - if (replacement == null) { - replacement = nil - }; + if (replacement == null) replacement = nil; insert_after = $kwargs.$$smap["insert_after"]; - if (insert_after == null) { - insert_after = "" - }; + if (insert_after == null) insert_after = ""; children = $kwargs.$$smap["children"]; - if (children == null) { - children = [] - }; + if (children == null) children = []; $a = [range, enforcer, children.$freeze(), insert_before.$freeze(), replacement, insert_after.$freeze()], (self.range = $a[0]), (self.enforcer = $a[1]), (self.children = $a[2]), (self.insert_before = $a[3]), (self.replacement = $a[4]), (self.insert_after = $a[5]), $a; return self.$freeze(); - }, $Action_initialize$1.$$arity = -3); + }, -3); - Opal.def(self, '$combine', $Action_combine$2 = function $$combine(action) { + $def(self, '$combine', function $$combine(action) { var self = this; if ($truthy(action['$empty?']())) { - return self}; + return self + }; return self.$do_combine(action); - }, $Action_combine$2.$$arity = 1); + }, 1); - Opal.def(self, '$empty?', $Action_empty$ques$3 = function() { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$empty?', function $Action_empty$ques$1() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.insert_before['$empty?']()))) { - return self.insert_after['$empty?']() - } else { - return $ret_or_3 - }; return nil; })()))) { - return self.children['$empty?']() - } else { - return $ret_or_2 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = self.insert_before['$empty?']())) ? (self.insert_after['$empty?']()) : ($ret_or_3)))) ? (self.children['$empty?']()) : ($ret_or_2))))) { - if ($truthy(($ret_or_4 = self.replacement['$=='](nil)))) { - return $ret_or_4 + if ($truthy(($ret_or_2 = self.replacement['$=='](nil)))) { + return $ret_or_2 } else { - if ($truthy(($ret_or_5 = self.replacement['$empty?']()))) { + if ($truthy(($ret_or_3 = self.replacement['$empty?']()))) { return self.range['$empty?']() } else { - return $ret_or_5 + return $ret_or_3 }; }; } else { return $ret_or_1 } - }, $Action_empty$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$ordered_replacements', $Action_ordered_replacements$4 = function $$ordered_replacements() { + $def(self, '$ordered_replacements', function $$ordered_replacements() { var self = this, reps = nil; reps = []; - if ($truthy(self.insert_before['$empty?']())) { - } else { + if (!$truthy(self.insert_before['$empty?']())) { reps['$<<']([self.range.$begin(), self.insert_before]) }; if ($truthy(self.replacement)) { - reps['$<<']([self.range, self.replacement])}; + reps['$<<']([self.range, self.replacement]) + }; reps.$concat($send(self.children, 'flat_map', [], "ordered_replacements".$to_proc())); - if ($truthy(self.insert_after['$empty?']())) { - } else { + if (!$truthy(self.insert_after['$empty?']())) { reps['$<<']([self.range.$end(), self.insert_after]) }; return reps; - }, $Action_ordered_replacements$4.$$arity = 0); + }, 0); - Opal.def(self, '$nested_actions', $Action_nested_actions$5 = function $$nested_actions() { - var self = this, actions = nil, $ret_or_6 = nil; + $def(self, '$nested_actions', function $$nested_actions() { + var self = this, actions = nil; actions = []; - if ($truthy((function() {if ($truthy(($ret_or_6 = self.insert_before['$empty?']()['$!']()))) { - return $ret_or_6 - } else { - return self.insert_after['$empty?']()['$!']() - }; return nil; })())) { - actions['$<<'](["wrap", self.range, self.insert_before, self.insert_after])}; + if (($not(self.insert_before['$empty?']()) || ($not(self.insert_after['$empty?']())))) { + actions['$<<'](["wrap", self.range, self.insert_before, self.insert_after]) + }; if ($truthy(self.replacement)) { - actions['$<<'](["replace", self.range, self.replacement])}; + actions['$<<'](["replace", self.range, self.replacement]) + }; return actions.$concat($send(self.children, 'flat_map', [], "nested_actions".$to_proc())); - }, $Action_nested_actions$5.$$arity = 0); + }, 0); - Opal.def(self, '$insertion?', $Action_insertion$ques$6 = function() { - var self = this, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil; + $def(self, '$insertion?', function $Action_insertion$ques$2() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self.$insert_before()['$empty?']()['$!']()))) { - return $ret_or_8 - } else { - return self.$insert_after()['$empty?']()['$!']() - }; return nil; })()))) { - return $ret_or_7 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$insert_before()['$empty?']()['$!']())) ? ($ret_or_2) : (self.$insert_after()['$empty?']()['$!']()))))) { + return $ret_or_1 } else { - if ($truthy(($ret_or_9 = self.$replacement()))) { + if ($truthy(($ret_or_2 = self.$replacement()))) { return self.$replacement()['$empty?']()['$!']() } else { - return $ret_or_9 + return $ret_or_2 }; } - }, $Action_insertion$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$contract', $Action_contract$7 = function $$contract() { + $def(self, '$contract', function $$contract() { var self = this, range = nil; if ($truthy(self['$empty?']())) { - self.$raise("Empty actions can not be contracted")}; + self.$raise("Empty actions can not be contracted") + }; if ($truthy(self['$insertion?']())) { - return self}; + return self + }; range = self.range.$with($hash2(["begin_pos", "end_pos"], {"begin_pos": self.$children().$first().$range().$begin_pos(), "end_pos": self.$children().$last().$range().$end_pos()})); return self.$with($hash2(["range"], {"range": range})); - }, $Action_contract$7.$$arity = 0); + }, 0); - Opal.def(self, '$moved', $Action_moved$8 = function $$moved(source_buffer, offset) { - var $$9, self = this, moved_range = nil; + $def(self, '$moved', function $$moved(source_buffer, offset) { + var self = this, moved_range = nil; - moved_range = $$$($$$($$$('::', 'Parser'), 'Source'), 'Range').$new(source_buffer, $rb_plus(self.range.$begin_pos(), offset), $rb_plus(self.range.$end_pos(), offset)); - return self.$with($hash2(["range", "children"], {"range": moved_range, "children": $send(self.$children(), 'map', [], ($$9 = function(child){var self = $$9.$$s == null ? this : $$9.$$s; - + moved_range = $$$($$$($$$('Parser'), 'Source'), 'Range').$new(source_buffer, $rb_plus(self.range.$begin_pos(), offset), $rb_plus(self.range.$end_pos(), offset)); + return self.$with($hash2(["range", "children"], {"range": moved_range, "children": $send(self.$children(), 'map', [], function $$3(child){ - if (child == null) { - child = nil; - }; - return child.$moved(source_buffer, offset);}, $$9.$$s = self, $$9.$$arity = 1, $$9))})); - }, $Action_moved$8.$$arity = 2); + if (child == null) child = nil;; + return child.$moved(source_buffer, offset);}, 1)})); + }, 2); self.$protected(); self.$attr_reader("children"); - Opal.def(self, '$with', $Action_with$10 = function($kwargs) { + $def(self, '$with', function $Action_with$4($kwargs) { var range, enforcer, children, insert_before, replacement, insert_after, self = this; @@ -6904,255 +5889,184 @@ Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { }; range = $kwargs.$$smap["range"]; - if (range == null) { - range = self.range - }; + if (range == null) range = self.range; enforcer = $kwargs.$$smap["enforcer"]; - if (enforcer == null) { - enforcer = self.enforcer - }; + if (enforcer == null) enforcer = self.enforcer; children = $kwargs.$$smap["children"]; - if (children == null) { - children = self.children - }; + if (children == null) children = self.children; insert_before = $kwargs.$$smap["insert_before"]; - if (insert_before == null) { - insert_before = self.insert_before - }; + if (insert_before == null) insert_before = self.insert_before; replacement = $kwargs.$$smap["replacement"]; - if (replacement == null) { - replacement = self.replacement - }; + if (replacement == null) replacement = self.replacement; insert_after = $kwargs.$$smap["insert_after"]; - if (insert_after == null) { - insert_after = self.insert_after - }; + if (insert_after == null) insert_after = self.insert_after; if ($truthy(replacement)) { - children = self.$swallow(children)}; + children = self.$swallow(children) + }; return self.$class().$new(range, enforcer, $hash2(["children", "insert_before", "replacement", "insert_after"], {"children": children, "insert_before": insert_before, "replacement": replacement, "insert_after": insert_after})); - }, $Action_with$10.$$arity = -1); + }, -1); - Opal.def(self, '$do_combine', $Action_do_combine$11 = function $$do_combine(action) { + $def(self, '$do_combine', function $$do_combine(action) { var self = this; - if (action.$range()['$=='](self.range)) { + if ($eqeq(action.$range(), self.range)) { return self.$merge(action) } else { return self.$place_in_hierarchy(action) } - }, $Action_do_combine$11.$$arity = 1); + }, 1); - Opal.def(self, '$place_in_hierarchy', $Action_place_in_hierarchy$12 = function $$place_in_hierarchy(action) { + $def(self, '$place_in_hierarchy', function $$place_in_hierarchy(action) { var self = this, family = nil, extra_sibbling = nil; family = self.$analyse_hierarchy(action); if ($truthy(family['$[]']("fusible"))) { - return self.$fuse_deletions(action, family['$[]']("fusible"), [].concat(Opal.to_a(family['$[]']("sibbling_left"))).concat(Opal.to_a(family['$[]']("child"))).concat(Opal.to_a(family['$[]']("sibbling_right")))) + return self.$fuse_deletions(action, family['$[]']("fusible"), [].concat($to_a(family['$[]']("sibbling_left"))).concat($to_a(family['$[]']("child"))).concat($to_a(family['$[]']("sibbling_right")))) } else { - extra_sibbling = (function() {if ($truthy(family['$[]']("parent"))) { - return family['$[]']("parent").$do_combine(action) - } else if ($truthy(family['$[]']("child"))) { - return action.$with($hash2(["children", "enforcer"], {"children": family['$[]']("child"), "enforcer": self.enforcer})).$combine_children(action.$children()) - } else { - return action - }; return nil; })(); - return self.$with($hash2(["children"], {"children": [].concat(Opal.to_a(family['$[]']("sibbling_left"))).concat([extra_sibbling]).concat(Opal.to_a(family['$[]']("sibbling_right")))})); + extra_sibbling = ($truthy(family['$[]']("parent")) ? (family['$[]']("parent").$do_combine(action)) : ($truthy(family['$[]']("child")) ? (action.$with($hash2(["children", "enforcer"], {"children": family['$[]']("child"), "enforcer": self.enforcer})).$combine_children(action.$children())) : (action))); + return self.$with($hash2(["children"], {"children": [].concat($to_a(family['$[]']("sibbling_left"))).concat([extra_sibbling]).concat($to_a(family['$[]']("sibbling_right")))})); }; - }, $Action_place_in_hierarchy$12.$$arity = 1); + }, 1); - Opal.def(self, '$combine_children', $Action_combine_children$13 = function $$combine_children(more_children) { - var $$14, self = this; - - return $send(more_children, 'inject', [self], ($$14 = function(parent, new_child){var self = $$14.$$s == null ? this : $$14.$$s; + $def(self, '$combine_children', function $$combine_children(more_children) { + var self = this; + return $send(more_children, 'inject', [self], function $$5(parent, new_child){ - if (parent == null) { - parent = nil; - }; + if (parent == null) parent = nil;; - if (new_child == null) { - new_child = nil; - }; - return parent.$place_in_hierarchy(new_child);}, $$14.$$s = self, $$14.$$arity = 2, $$14)) - }, $Action_combine_children$13.$$arity = 1); + if (new_child == null) new_child = nil;; + return parent.$place_in_hierarchy(new_child);}, 2) + }, 1); - Opal.def(self, '$fuse_deletions', $Action_fuse_deletions$15 = function $$fuse_deletions(action, fusible, other_sibblings) { + $def(self, '$fuse_deletions', function $$fuse_deletions(action, fusible, other_sibblings) { var self = this, without_fusible = nil, fused_range = nil, fused_deletion = nil; without_fusible = self.$with($hash2(["children"], {"children": other_sibblings})); - fused_range = $send([action].concat(Opal.to_a(fusible)), 'map', [], "range".$to_proc()).$inject("join"); + fused_range = $send([action].concat($to_a(fusible)), 'map', [], "range".$to_proc()).$inject("join"); fused_deletion = action.$with($hash2(["range"], {"range": fused_range})); return without_fusible.$do_combine(fused_deletion); - }, $Action_fuse_deletions$15.$$arity = 3); + }, 3); - Opal.def(self, '$bsearch_child_index', $Action_bsearch_child_index$16 = function $$bsearch_child_index(from) { - var $$17, $iter = $Action_bsearch_child_index$16.$$p, $yield = $iter || nil, self = this, size = nil, $ret_or_10 = nil; + $def(self, '$bsearch_child_index', function $$bsearch_child_index(from) { + var $yield = $$bsearch_child_index.$$p || nil, self = this, size = nil, $ret_or_1 = nil; - if ($iter) $Action_bsearch_child_index$16.$$p = null; + delete $$bsearch_child_index.$$p; - if (from == null) { - from = 0; - }; + if (from == null) from = 0;; size = self.children.$size(); - if ($truthy(($ret_or_10 = $send(Opal.Range.$new(from,size, true), 'bsearch', [], ($$17 = function(i){var self = $$17.$$s == null ? this : $$17.$$s; + if ($truthy(($ret_or_1 = $send(Opal.Range.$new(from,size, true), 'bsearch', [], function $$6(i){var self = $$6.$$s == null ? this : $$6.$$s; if (self.children == null) self.children = nil; - if (i == null) { - i = nil; - }; - return Opal.yield1($yield, self.children['$[]'](i));;}, $$17.$$s = self, $$17.$$arity = 1, $$17))))) { - return $ret_or_10 + if (i == null) i = nil;; + return Opal.yield1($yield, self.children['$[]'](i));;}, {$$arity: 1, $$s: self})))) { + return $ret_or_1 } else { return size }; - }, $Action_bsearch_child_index$16.$$arity = -1); + }, -1); - Opal.def(self, '$analyse_hierarchy', $Action_analyse_hierarchy$18 = function $$analyse_hierarchy(action) { - var $$19, $$20, self = this, r = nil, left_index = nil, start = nil, right_index = nil, center = nil, $case = nil, parent = nil, overlap_left = nil, overlap_right = nil, $ret_or_11 = nil, $ret_or_12 = nil, contained = nil, fusible = nil; + $def(self, '$analyse_hierarchy', function $$analyse_hierarchy(action) { + var self = this, r = nil, left_index = nil, start = nil, right_index = nil, center = nil, $ret_or_1 = nil, parent = nil, overlap_left = nil, overlap_right = nil, contained = nil, fusible = nil; r = action.$range(); - left_index = $send(self, 'bsearch_child_index', [], ($$19 = function(child){var self = $$19.$$s == null ? this : $$19.$$s; - + left_index = $send(self, 'bsearch_child_index', [], function $$7(child){ - if (child == null) { - child = nil; - }; - return $rb_gt(child.$range().$end_pos(), r.$begin_pos());}, $$19.$$s = self, $$19.$$arity = 1, $$19)); - start = (function() {if (left_index['$=='](0)) { - return 0 - } else { - return $rb_minus(left_index, 1) - }; return nil; })(); - right_index = $send(self, 'bsearch_child_index', [start], ($$20 = function(child){var self = $$20.$$s == null ? this : $$20.$$s; - + if (child == null) child = nil;; + return $rb_gt(child.$range().$end_pos(), r.$begin_pos());}, 1); + start = ($eqeq(left_index, 0) ? (0) : ($rb_minus(left_index, 1))); + right_index = $send(self, 'bsearch_child_index', [start], function $$8(child){ - if (child == null) { - child = nil; - }; - return $rb_ge(child.$range().$begin_pos(), r.$end_pos());}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + if (child == null) child = nil;; + return $rb_ge(child.$range().$begin_pos(), r.$end_pos());}, 1); center = $rb_minus(right_index, left_index); - $case = center; - if ((0)['$===']($case)) {nil} - else if ((-1)['$===']($case)) { - left_index = $rb_minus(left_index, 1); - right_index = $rb_plus(right_index, 1); - parent = self.children['$[]'](left_index);} - else { - overlap_left = self.children['$[]'](left_index).$range().$begin_pos()['$<=>'](r.$begin_pos()); - overlap_right = self.children['$[]']($rb_minus(right_index, 1)).$range().$end_pos()['$<=>'](r.$end_pos()); - if ($truthy((function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = center['$=='](1)))) { - return $rb_le(overlap_left, 0) - } else { - return $ret_or_12 - }; return nil; })()))) { - return $rb_ge(overlap_right, 0) - } else { - return $ret_or_11 - }; return nil; })())) { - parent = self.children['$[]'](left_index) - } else { - - contained = self.children['$[]'](Opal.Range.$new(left_index,right_index, true)); - fusible = self.$check_fusible(action, (function() {if ($truthy($rb_lt(overlap_left, 0))) { - return contained.$shift() - } else { - return nil - }; return nil; })(), (function() {if ($truthy($rb_gt(overlap_right, 0))) { - return contained.$pop() + if (!$eqeqeq(0, ($ret_or_1 = center))) { + if ($eqeqeq(-1, $ret_or_1)) { + + left_index = $rb_minus(left_index, 1); + right_index = $rb_plus(right_index, 1); + parent = self.children['$[]'](left_index); } else { - return nil - }; return nil; })()); - };}; + + overlap_left = self.children['$[]'](left_index).$range().$begin_pos()['$<=>'](r.$begin_pos()); + overlap_right = self.children['$[]']($rb_minus(right_index, 1)).$range().$end_pos()['$<=>'](r.$end_pos()); + if ((($eqeq(center, 1) && ($truthy($rb_le(overlap_left, 0)))) && ($truthy($rb_ge(overlap_right, 0))))) { + parent = self.children['$[]'](left_index) + } else { + + contained = self.children['$[]'](Opal.Range.$new(left_index,right_index, true)); + fusible = self.$check_fusible(action, ($truthy($rb_lt(overlap_left, 0)) ? (contained.$shift()) : nil), ($truthy($rb_gt(overlap_right, 0)) ? (contained.$pop()) : nil)); + }; + } + }; return $hash2(["parent", "sibbling_left", "sibbling_right", "fusible", "child"], {"parent": parent, "sibbling_left": self.children['$[]'](Opal.Range.$new(0,left_index, true)), "sibbling_right": self.children['$[]'](Opal.Range.$new(right_index,self.children.$size(), true)), "fusible": fusible, "child": contained}); - }, $Action_analyse_hierarchy$18.$$arity = 1); + }, 1); - Opal.def(self, '$check_fusible', $Action_check_fusible$21 = function $$check_fusible(action, $a) { - var $post_args, fusible, $$22, self = this; + $def(self, '$check_fusible', function $$check_fusible(action, $a) { + var $post_args, fusible, self = this; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); fusible = $post_args;; fusible['$compact!'](); if ($truthy(fusible['$empty?']())) { - return nil}; - $send(fusible, 'each', [], ($$22 = function(child){var self = $$22.$$s == null ? this : $$22.$$s, $$23, kind = nil, $ret_or_13 = nil; + return nil + }; + $send(fusible, 'each', [], function $$9(child){var self = $$9.$$s == null ? this : $$9.$$s, kind = nil; if (self.enforcer == null) self.enforcer = nil; - if (child == null) { - child = nil; - }; - kind = (function() {if ($truthy((function() {if ($truthy(($ret_or_13 = action['$insertion?']()))) { - return $ret_or_13 - } else { - return child['$insertion?']() - }; return nil; })())) { - return "crossing_insertions" - } else { - return "crossing_deletions" - }; return nil; })(); - return $send(self.enforcer, 'call', [kind], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; - - return $hash2(["range", "conflict"], {"range": action.$range(), "conflict": child.$range()})}, $$23.$$s = self, $$23.$$arity = 0, $$23));}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + if (child == null) child = nil;; + kind = (($truthy(action['$insertion?']()) || ($truthy(child['$insertion?']()))) ? ("crossing_insertions") : ("crossing_deletions")); + return $send(self.enforcer, 'call', [kind], function $$10(){ + return $hash2(["range", "conflict"], {"range": action.$range(), "conflict": child.$range()})}, 0);}, {$$arity: 1, $$s: self}); return fusible; - }, $Action_check_fusible$21.$$arity = -2); + }, -2); - Opal.def(self, '$merge', $Action_merge$24 = function $$merge(action) { - var self = this, $ret_or_14 = nil; + $def(self, '$merge', function $$merge(action) { + var self = this, $ret_or_1 = nil; self.$call_enforcer_for_merge(action); - return self.$with($hash2(["insert_before", "replacement", "insert_after"], {"insert_before": "" + (action.$insert_before()) + (self.$insert_before()), "replacement": (function() {if ($truthy(($ret_or_14 = action.$replacement()))) { - return $ret_or_14 - } else { - return self.replacement - }; return nil; })(), "insert_after": "" + (self.$insert_after()) + (action.$insert_after())})).$combine_children(action.$children()); - }, $Action_merge$24.$$arity = 1); + return self.$with($hash2(["insert_before", "replacement", "insert_after"], {"insert_before": "" + (action.$insert_before()) + (self.$insert_before()), "replacement": ($truthy(($ret_or_1 = action.$replacement())) ? ($ret_or_1) : (self.replacement)), "insert_after": "" + (self.$insert_after()) + (action.$insert_after())})).$combine_children(action.$children()); + }, 1); - Opal.def(self, '$call_enforcer_for_merge', $Action_call_enforcer_for_merge$25 = function $$call_enforcer_for_merge(action) { - var $$26, self = this; + $def(self, '$call_enforcer_for_merge', function $$call_enforcer_for_merge(action) { + var self = this; - return $send(self.enforcer, 'call', ["different_replacements"], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s, $ret_or_15 = nil, $ret_or_16 = nil; + return $send(self.enforcer, 'call', ["different_replacements"], function $$11(){var self = $$11.$$s == null ? this : $$11.$$s; if (self.replacement == null) self.replacement = nil; if (self.range == null) self.range = nil; - if ($truthy((function() {if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = self.replacement))) { - return action.$replacement() - } else { - return $ret_or_16 - }; return nil; })()))) { - return self.replacement['$!='](action.$replacement()) - } else { - return $ret_or_15 - }; return nil; })())) { + if ((($truthy(self.replacement) && ($truthy(action.$replacement()))) && ($neqeq(self.replacement, action.$replacement())))) { return $hash2(["range", "replacement", "other_replacement"], {"range": self.range, "replacement": action.$replacement(), "other_replacement": self.replacement}) } else { return nil - }}, $$26.$$s = self, $$26.$$arity = 0, $$26)) - }, $Action_call_enforcer_for_merge$25.$$arity = 1); - return (Opal.def(self, '$swallow', $Action_swallow$27 = function $$swallow(children) { - var $$28, self = this; + }}, {$$arity: 0, $$s: self}) + }, 1); + return $def(self, '$swallow', function $$swallow(children) { + var self = this; - $send(self.enforcer, 'call', ["swallowed_insertions"], ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s, insertions = nil; + $send(self.enforcer, 'call', ["swallowed_insertions"], function $$12(){var self = $$12.$$s == null ? this : $$12.$$s, insertions = nil; if (self.range == null) self.range = nil; @@ -7161,22 +6075,18 @@ Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { return nil } else { return $hash2(["range", "conflict"], {"range": self.range, "conflict": $send(insertions, 'map', [], "range".$to_proc())}) - };}, $$28.$$s = self, $$28.$$arity = 0, $$28)); + };}, {$$arity: 0, $$s: self}); return []; - }, $Action_swallow$27.$$arity = 1), nil) && 'swallow'; - })($$($nesting, 'TreeRewriter'), null, $nesting) + }, 1); + })($$('TreeRewriter'), null) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $range = Opal.range; +Opal.modules["parser/source/map"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $eqeq = Opal.eqeq, $range = Opal.range, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$attr_reader', '$freeze', '$line', '$alias_method', '$column', '$last_line', '$last_column', '$with', '$update_expression', '$==', '$class', '$reduce', '$map', '$instance_variables', '$instance_variable_get', '$send', '$inject', '$to_sym', '$[]', '$[]=', '$-', '$protected', '$tap', '$dup', '$to_proc']); + Opal.add_stubs('attr_reader,freeze,line,alias_method,column,last_line,last_column,with,update_expression,==,class,reduce,map,instance_variables,instance_variable_get,send,inject,to_sym,[],[]=,-,protected,tap,dup,to_proc'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7187,147 +6097,133 @@ Opal.modules["parser/source/map"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Map'); - var $nesting = [self].concat($parent_nesting), $Map_initialize$1, $Map_initialize_copy$2, $Map_node$eq$3, $Map_line$4, $Map_column$5, $Map_last_line$6, $Map_last_column$7, $Map_with_expression$8, $Map_$eq_eq$10, $Map_to_hash$12, $Map_with$14, $Map_update_expression$15; + var $proto = self.$$prototype; - self.$$prototype.node = self.$$prototype.expression = nil; + $proto.node = $proto.expression = nil; self.$attr_reader("node"); self.$attr_reader("expression"); - Opal.def(self, '$initialize', $Map_initialize$1 = function $$initialize(expression) { + $def(self, '$initialize', function $$initialize(expression) { var self = this; return (self.expression = expression) - }, $Map_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$initialize_copy', $Map_initialize_copy$2 = function $$initialize_copy(other) { - var $iter = $Map_initialize_copy$2.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize_copy', function $$initialize_copy(other) { + var $yield = $$initialize_copy.$$p || nil, self = this; - if ($iter) $Map_initialize_copy$2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize_copy.$$p; - $send2(self, $find_super(self, 'initialize_copy', $Map_initialize_copy$2, false, true), 'initialize_copy', $zuper, $iter); + $send2(self, $find_super(self, 'initialize_copy', $$initialize_copy, false, true), 'initialize_copy', [other], $yield); return (self.node = nil); - }, $Map_initialize_copy$2.$$arity = 1); + }, 1); - Opal.def(self, '$node=', $Map_node$eq$3 = function(node) { + $def(self, '$node=', function $Map_node$eq$1(node) { var self = this; self.node = node; self.$freeze(); return self.node; - }, $Map_node$eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$line', $Map_line$4 = function $$line() { + $def(self, '$line', function $$line() { var self = this; return self.expression.$line() - }, $Map_line$4.$$arity = 0); + }, 0); self.$alias_method("first_line", "line"); - Opal.def(self, '$column', $Map_column$5 = function $$column() { + $def(self, '$column', function $$column() { var self = this; return self.expression.$column() - }, $Map_column$5.$$arity = 0); + }, 0); - Opal.def(self, '$last_line', $Map_last_line$6 = function $$last_line() { + $def(self, '$last_line', function $$last_line() { var self = this; return self.expression.$last_line() - }, $Map_last_line$6.$$arity = 0); + }, 0); - Opal.def(self, '$last_column', $Map_last_column$7 = function $$last_column() { + $def(self, '$last_column', function $$last_column() { var self = this; return self.expression.$last_column() - }, $Map_last_column$7.$$arity = 0); + }, 0); - Opal.def(self, '$with_expression', $Map_with_expression$8 = function $$with_expression(expression_l) { - var $$9, self = this; - - return $send(self, 'with', [], ($$9 = function(map){var self = $$9.$$s == null ? this : $$9.$$s; + $def(self, '$with_expression', function $$with_expression(expression_l) { + var self = this; + return $send(self, 'with', [], function $$2(map){ - if (map == null) { - map = nil; - }; - return map.$update_expression(expression_l);}, $$9.$$s = self, $$9.$$arity = 1, $$9)) - }, $Map_with_expression$8.$$arity = 1); + if (map == null) map = nil;; + return map.$update_expression(expression_l);}, 1) + }, 1); - Opal.def(self, '$==', $Map_$eq_eq$10 = function(other) { - var $$11, self = this, $ret_or_1 = nil; + $def(self, '$==', function $Map_$eq_eq$3(other) { + var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = other.$class()['$=='](self.$class())))) { - return $send(self.$instance_variables(), 'map', [], ($$11 = function(ivar){var self = $$11.$$s == null ? this : $$11.$$s; + return $send(self.$instance_variables(), 'map', [], function $$4(ivar){var self = $$4.$$s == null ? this : $$4.$$s; - if (ivar == null) { - ivar = nil; - }; - return self.$instance_variable_get(ivar)['$=='](other.$send("instance_variable_get", ivar));}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$reduce("&") + if (ivar == null) ivar = nil;; + return self.$instance_variable_get(ivar)['$=='](other.$send("instance_variable_get", ivar));}, {$$arity: 1, $$s: self}).$reduce("&") } else { return $ret_or_1 } - }, $Map_$eq_eq$10.$$arity = 1); + }, 1); - Opal.def(self, '$to_hash', $Map_to_hash$12 = function $$to_hash() { - var $$13, self = this; + $def(self, '$to_hash', function $$to_hash() { + var self = this; - return $send(self.$instance_variables(), 'inject', [$hash2([], {})], ($$13 = function(hash, ivar){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + return $send(self.$instance_variables(), 'inject', [$hash2([], {})], function $$5(hash, ivar){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; - if (hash == null) { - hash = nil; - }; + if (hash == null) hash = nil;; - if (ivar == null) { - ivar = nil; + if (ivar == null) ivar = nil;; + if ($eqeq(ivar.$to_sym(), "@node")) { + return hash; }; - if (ivar.$to_sym()['$==']("@node")) { - return hash;}; $writer = [ivar['$[]']($range(1, -1, false)).$to_sym(), self.$instance_variable_get(ivar)]; - $send(hash, '[]=', Opal.to_a($writer)); + $send(hash, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return hash;}, $$13.$$s = self, $$13.$$arity = 2, $$13)) - }, $Map_to_hash$12.$$arity = 0); + return hash;}, {$$arity: 2, $$s: self}) + }, 0); self.$protected(); - Opal.def(self, '$with', $Map_with$14 = function() { - var $iter = $Map_with$14.$$p, block = $iter || nil, self = this; + $def(self, '$with', function $Map_with$6() { + var block = $Map_with$6.$$p || nil, self = this; - if ($iter) $Map_with$14.$$p = null; - + delete $Map_with$6.$$p; - if ($iter) $Map_with$14.$$p = null;; + ; return $send(self.$dup(), 'tap', [], block.$to_proc()); - }, $Map_with$14.$$arity = 0); - return (Opal.def(self, '$update_expression', $Map_update_expression$15 = function $$update_expression(expression_l) { + }, 0); + return $def(self, '$update_expression', function $$update_expression(expression_l) { var self = this; return (self.expression = expression_l) - }, $Map_update_expression$15.$$arity = 1), nil) && 'update_expression'; - })($nesting[0], null, $nesting) + }, 1); + })($nesting[0], null) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/operator"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/operator"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7336,33 +6232,31 @@ Opal.modules["parser/source/map/operator"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Operator'); - var $nesting = [self].concat($parent_nesting), $Operator_initialize$1; - + self.$attr_reader("operator"); - return (Opal.def(self, '$initialize', $Operator_initialize$1 = function $$initialize(operator, expression) { - var $iter = $Operator_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(operator, expression) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Operator_initialize$1.$$p = null; + delete $$initialize.$$p; self.operator = operator; - return $send2(self, $find_super(self, 'initialize', $Operator_initialize$1, false, true), 'initialize', [expression], null); - }, $Operator_initialize$1.$$arity = 2), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression], null); + }, 2); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/collection"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/collection"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7371,34 +6265,32 @@ Opal.modules["parser/source/map/collection"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Collection'); - var $nesting = [self].concat($parent_nesting), $Collection_initialize$1; - + self.$attr_reader("begin"); self.$attr_reader("end"); - return (Opal.def(self, '$initialize', $Collection_initialize$1 = function $$initialize(begin_l, end_l, expression_l) { - var $a, $iter = $Collection_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Collection_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Collection_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Collection_initialize$1.$$arity = 3), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 3); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/constant"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["parser/source/map/constant"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + Opal.add_stubs('attr_reader,with,update_operator,protected'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7407,55 +6299,50 @@ Opal.modules["parser/source/map/constant"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Constant'); - var $nesting = [self].concat($parent_nesting), $Constant_initialize$1, $Constant_with_operator$2, $Constant_update_operator$4; - + self.$attr_reader("double_colon"); self.$attr_reader("name"); self.$attr_reader("operator"); - Opal.def(self, '$initialize', $Constant_initialize$1 = function $$initialize(double_colon, name, expression) { - var $a, $iter = $Constant_initialize$1.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(double_colon, name, expression) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Constant_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [double_colon, name], (self.double_colon = $a[0]), (self.name = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Constant_initialize$1, false, true), 'initialize', [expression], null); - }, $Constant_initialize$1.$$arity = 3); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression], null); + }, 3); - Opal.def(self, '$with_operator', $Constant_with_operator$2 = function $$with_operator(operator_l) { - var $$3, self = this; - - return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + $def(self, '$with_operator', function $$with_operator(operator_l) { + var self = this; + return $send(self, 'with', [], function $$1(map){ - if (map == null) { - map = nil; - }; - return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Constant_with_operator$2.$$arity = 1); + if (map == null) map = nil;; + return map.$update_operator(operator_l);}, 1) + }, 1); self.$protected(); - return (Opal.def(self, '$update_operator', $Constant_update_operator$4 = function $$update_operator(operator_l) { + return $def(self, '$update_operator', function $$update_operator(operator_l) { var self = this; return (self.operator = operator_l) - }, $Constant_update_operator$4.$$arity = 1), nil) && 'update_operator'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + }, 1); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/variable"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["parser/source/map/variable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + Opal.add_stubs('attr_reader,with,update_operator,protected'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7464,58 +6351,51 @@ Opal.modules["parser/source/map/variable"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Variable'); - var $nesting = [self].concat($parent_nesting), $Variable_initialize$1, $Variable_with_operator$2, $Variable_update_operator$4; - + self.$attr_reader("name"); self.$attr_reader("operator"); - Opal.def(self, '$initialize', $Variable_initialize$1 = function $$initialize(name_l, expression_l) { - var $iter = $Variable_initialize$1.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(name_l, expression_l) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Variable_initialize$1.$$p = null; + delete $$initialize.$$p; - if (expression_l == null) { - expression_l = name_l; - }; + if (expression_l == null) expression_l = name_l;; self.name = name_l; - return $send2(self, $find_super(self, 'initialize', $Variable_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Variable_initialize$1.$$arity = -2); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, -2); - Opal.def(self, '$with_operator', $Variable_with_operator$2 = function $$with_operator(operator_l) { - var $$3, self = this; - - return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + $def(self, '$with_operator', function $$with_operator(operator_l) { + var self = this; + return $send(self, 'with', [], function $$1(map){ - if (map == null) { - map = nil; - }; - return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Variable_with_operator$2.$$arity = 1); + if (map == null) map = nil;; + return map.$update_operator(operator_l);}, 1) + }, 1); self.$protected(); - return (Opal.def(self, '$update_operator', $Variable_update_operator$4 = function $$update_operator(operator_l) { + return $def(self, '$update_operator', function $$update_operator(operator_l) { var self = this; return (self.operator = operator_l) - }, $Variable_update_operator$4.$$arity = 1), nil) && 'update_operator'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + }, 1); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/keyword"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/keyword"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7524,36 +6404,34 @@ Opal.modules["parser/source/map/keyword"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Keyword'); - var $nesting = [self].concat($parent_nesting), $Keyword_initialize$1; - + self.$attr_reader("keyword"); self.$attr_reader("begin"); self.$attr_reader("end"); - return (Opal.def(self, '$initialize', $Keyword_initialize$1 = function $$initialize(keyword_l, begin_l, end_l, expression_l) { - var $a, $iter = $Keyword_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Keyword_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Keyword_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Keyword_initialize$1.$$arity = 4), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 4); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/definition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/definition"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$join']); + Opal.add_stubs('attr_reader,join'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7562,40 +6440,39 @@ Opal.modules["parser/source/map/definition"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Definition'); - var $nesting = [self].concat($parent_nesting), $Definition_initialize$1; + var $proto = self.$$prototype; - self.$$prototype.keyword = self.$$prototype.end = nil; + $proto.keyword = $proto.end = nil; self.$attr_reader("keyword"); self.$attr_reader("operator"); self.$attr_reader("name"); self.$attr_reader("end"); - return (Opal.def(self, '$initialize', $Definition_initialize$1 = function $$initialize(keyword_l, operator_l, name_l, end_l) { - var $iter = $Definition_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, operator_l, name_l, end_l) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Definition_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; self.operator = operator_l; self.name = name_l; self.end = end_l; - return $send2(self, $find_super(self, 'initialize', $Definition_initialize$1, false, true), 'initialize', [self.keyword.$join(self.end)], null); - }, $Definition_initialize$1.$$arity = 4), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [self.keyword.$join(self.end)], null); + }, 4); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/method_definition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; +Opal.modules["parser/source/map/method_definition"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$join']); + Opal.add_stubs('attr_reader,join'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7604,46 +6481,41 @@ Opal.modules["parser/source/map/method_definition"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'MethodDefinition'); - var $nesting = [self].concat($parent_nesting), $MethodDefinition_initialize$1; + var $proto = self.$$prototype; - self.$$prototype.keyword = nil; + $proto.keyword = nil; self.$attr_reader("keyword"); self.$attr_reader("operator"); self.$attr_reader("name"); self.$attr_reader("end"); self.$attr_reader("assignment"); - return (Opal.def(self, '$initialize', $MethodDefinition_initialize$1 = function $$initialize(keyword_l, operator_l, name_l, end_l, assignment_l, body_l) { - var $iter = $MethodDefinition_initialize$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil; + return $def(self, '$initialize', function $$initialize(keyword_l, operator_l, name_l, end_l, assignment_l, body_l) { + var $yield = $$initialize.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $MethodDefinition_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; self.operator = operator_l; self.name = name_l; self.end = end_l; self.assignment = assignment_l; - return $send2(self, $find_super(self, 'initialize', $MethodDefinition_initialize$1, false, true), 'initialize', [self.keyword.$join((function() {if ($truthy(($ret_or_1 = end_l))) { - return $ret_or_1 - } else { - return body_l - }; return nil; })())], null); - }, $MethodDefinition_initialize$1.$$arity = 6), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [self.keyword.$join(($truthy(($ret_or_1 = end_l)) ? ($ret_or_1) : (body_l)))], null); + }, 6); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/send"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["parser/source/map/send"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + Opal.add_stubs('attr_reader,with,update_operator,protected'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7652,13 +6524,12 @@ Opal.modules["parser/source/map/send"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Send'); - var $nesting = [self].concat($parent_nesting), $Send_initialize$1, $Send_with_operator$2, $Send_update_operator$4; - + self.$attr_reader("dot"); self.$attr_reader("selector"); @@ -7666,45 +6537,41 @@ Opal.modules["parser/source/map/send"] = function(Opal) { self.$attr_reader("begin"); self.$attr_reader("end"); - Opal.def(self, '$initialize', $Send_initialize$1 = function $$initialize(dot_l, selector_l, begin_l, end_l, expression_l) { - var $a, $iter = $Send_initialize$1.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(dot_l, selector_l, begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Send_initialize$1.$$p = null; + delete $$initialize.$$p; self.dot = dot_l; self.selector = selector_l; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Send_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Send_initialize$1.$$arity = 5); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 5); - Opal.def(self, '$with_operator', $Send_with_operator$2 = function $$with_operator(operator_l) { - var $$3, self = this; - - return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + $def(self, '$with_operator', function $$with_operator(operator_l) { + var self = this; + return $send(self, 'with', [], function $$1(map){ - if (map == null) { - map = nil; - }; - return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Send_with_operator$2.$$arity = 1); + if (map == null) map = nil;; + return map.$update_operator(operator_l);}, 1) + }, 1); self.$protected(); - return (Opal.def(self, '$update_operator', $Send_update_operator$4 = function $$update_operator(operator_l) { + return $def(self, '$update_operator', function $$update_operator(operator_l) { var self = this; return (self.operator = operator_l) - }, $Send_update_operator$4.$$arity = 1), nil) && 'update_operator'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + }, 1); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/index"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["parser/source/map/index"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + Opal.add_stubs('attr_reader,with,update_operator,protected'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7713,56 +6580,51 @@ Opal.modules["parser/source/map/index"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Index'); - var $nesting = [self].concat($parent_nesting), $Index_initialize$1, $Index_with_operator$2, $Index_update_operator$4; - + self.$attr_reader("begin"); self.$attr_reader("end"); self.$attr_reader("operator"); - Opal.def(self, '$initialize', $Index_initialize$1 = function $$initialize(begin_l, end_l, expression_l) { - var $a, $iter = $Index_initialize$1.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Index_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; self.operator = nil; - return $send2(self, $find_super(self, 'initialize', $Index_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Index_initialize$1.$$arity = 3); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 3); - Opal.def(self, '$with_operator', $Index_with_operator$2 = function $$with_operator(operator_l) { - var $$3, self = this; - - return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + $def(self, '$with_operator', function $$with_operator(operator_l) { + var self = this; + return $send(self, 'with', [], function $$1(map){ - if (map == null) { - map = nil; - }; - return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Index_with_operator$2.$$arity = 1); + if (map == null) map = nil;; + return map.$update_operator(operator_l);}, 1) + }, 1); self.$protected(); - return (Opal.def(self, '$update_operator', $Index_update_operator$4 = function $$update_operator(operator_l) { + return $def(self, '$update_operator', function $$update_operator(operator_l) { var self = this; return (self.operator = operator_l) - }, $Index_update_operator$4.$$arity = 1), nil) && 'update_operator'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + }, 1); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/condition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/condition"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7771,37 +6633,35 @@ Opal.modules["parser/source/map/condition"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Condition'); - var $nesting = [self].concat($parent_nesting), $Condition_initialize$1; - + self.$attr_reader("keyword"); self.$attr_reader("begin"); self.$attr_reader("else"); self.$attr_reader("end"); - return (Opal.def(self, '$initialize', $Condition_initialize$1 = function $$initialize(keyword_l, begin_l, else_l, end_l, expression_l) { - var $a, $iter = $Condition_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, begin_l, else_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Condition_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; $a = [begin_l, else_l, end_l], (self.begin = $a[0]), (self["else"] = $a[1]), (self.end = $a[2]), $a; - return $send2(self, $find_super(self, 'initialize', $Condition_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Condition_initialize$1.$$arity = 5), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 5); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/ternary"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/ternary"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7810,34 +6670,32 @@ Opal.modules["parser/source/map/ternary"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Ternary'); - var $nesting = [self].concat($parent_nesting), $Ternary_initialize$1; - + self.$attr_reader("question"); self.$attr_reader("colon"); - return (Opal.def(self, '$initialize', $Ternary_initialize$1 = function $$initialize(question_l, colon_l, expression_l) { - var $a, $iter = $Ternary_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(question_l, colon_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Ternary_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [question_l, colon_l], (self.question = $a[0]), (self.colon = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Ternary_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Ternary_initialize$1.$$arity = 3), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 3); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/for"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/for"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7846,35 +6704,33 @@ Opal.modules["parser/source/map/for"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'For'); - var $nesting = [self].concat($parent_nesting), $For_initialize$1; - + self.$attr_reader("keyword", "in"); self.$attr_reader("begin", "end"); - return (Opal.def(self, '$initialize', $For_initialize$1 = function $$initialize(keyword_l, in_l, begin_l, end_l, expression_l) { - var $a, $iter = $For_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, in_l, begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $For_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [keyword_l, in_l], (self.keyword = $a[0]), (self["in"] = $a[1]), $a; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $For_initialize$1, false, true), 'initialize', [expression_l], null); - }, $For_initialize$1.$$arity = 5), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 5); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/rescue_body"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/rescue_body"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7883,37 +6739,35 @@ Opal.modules["parser/source/map/rescue_body"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'RescueBody'); - var $nesting = [self].concat($parent_nesting), $RescueBody_initialize$1; - + self.$attr_reader("keyword"); self.$attr_reader("assoc"); self.$attr_reader("begin"); - return (Opal.def(self, '$initialize', $RescueBody_initialize$1 = function $$initialize(keyword_l, assoc_l, begin_l, expression_l) { - var $iter = $RescueBody_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, assoc_l, begin_l, expression_l) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $RescueBody_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; self.assoc = assoc_l; self.begin = begin_l; - return $send2(self, $find_super(self, 'initialize', $RescueBody_initialize$1, false, true), 'initialize', [expression_l], null); - }, $RescueBody_initialize$1.$$arity = 4), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 4); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/heredoc"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/heredoc"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7922,35 +6776,33 @@ Opal.modules["parser/source/map/heredoc"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Heredoc'); - var $nesting = [self].concat($parent_nesting), $Heredoc_initialize$1; - + self.$attr_reader("heredoc_body"); self.$attr_reader("heredoc_end"); - return (Opal.def(self, '$initialize', $Heredoc_initialize$1 = function $$initialize(begin_l, body_l, end_l) { - var $iter = $Heredoc_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(begin_l, body_l, end_l) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Heredoc_initialize$1.$$p = null; + delete $$initialize.$$p; self.heredoc_body = body_l; self.heredoc_end = end_l; - return $send2(self, $find_super(self, 'initialize', $Heredoc_initialize$1, false, true), 'initialize', [begin_l], null); - }, $Heredoc_initialize$1.$$arity = 3), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [begin_l], null); + }, 3); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/objc_kwarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/objc_kwarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7959,98 +6811,72 @@ Opal.modules["parser/source/map/objc_kwarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ObjcKwarg'); - var $nesting = [self].concat($parent_nesting), $ObjcKwarg_initialize$1; - + self.$attr_reader("keyword"); self.$attr_reader("operator"); self.$attr_reader("argument"); - return (Opal.def(self, '$initialize', $ObjcKwarg_initialize$1 = function $$initialize(keyword_l, operator_l, argument_l, expression_l) { - var $a, $iter = $ObjcKwarg_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, operator_l, argument_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $ObjcKwarg_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [keyword_l, operator_l, argument_l], (self.keyword = $a[0]), (self.operator = $a[1]), (self.argument = $a[2]), $a; - return $send2(self, $find_super(self, 'initialize', $ObjcKwarg_initialize$1, false, true), 'initialize', [expression_l], null); - }, $ObjcKwarg_initialize$1.$$arity = 4), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 4); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/syntax_error"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/syntax_error"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$message']); + Opal.add_stubs('attr_reader,message'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'SyntaxError'); - var $nesting = [self].concat($parent_nesting), $SyntaxError_initialize$1; - + self.$attr_reader("diagnostic"); - return (Opal.def(self, '$initialize', $SyntaxError_initialize$1 = function $$initialize(diagnostic) { - var $iter = $SyntaxError_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(diagnostic) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $SyntaxError_initialize$1.$$p = null; + delete $$initialize.$$p; self.diagnostic = diagnostic; - return $send2(self, $find_super(self, 'initialize', $SyntaxError_initialize$1, false, true), 'initialize', [diagnostic.$message()], null); - }, $SyntaxError_initialize$1.$$arity = 1), nil) && 'initialize'; - })($nesting[0], $$($nesting, 'StandardError'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [diagnostic.$message()], null); + }, 1); + })($nesting[0], $$('StandardError')) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/clobbering_error"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["parser/clobbering_error"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass; return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); - - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ClobberingError'); - - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return nil - })($nesting[0], $$($nesting, 'RuntimeError'), $nesting) + return ($klass($nesting[0], $$('RuntimeError'), 'ClobberingError'), nil) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/diagnostic"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; - - Opal.add_stubs(['$freeze', '$attr_reader', '$include?', '$raise', '$join', '$inspect', '$dup', '$compile', '$==', '$line', '$last_line', '$is?', '$+', '$message', '$render_line', '$first_line_only', '$last_line_only', '$-', '$source_buffer', '$decompose_position', '$end_pos', '$>', '$private', '$source_line', '$*', '$length', '$each', '$line_range', '$intersect', '$column_range', '$size', '$[]=', '$!', '$>=', '$map', '$name', '$!=', '$resize', '$=~', '$source', '$adjust']); +Opal.modules["parser/diagnostic"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $truthy = Opal.truthy, $hash2 = Opal.hash2, $def = Opal.def, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $to_ary = Opal.to_ary, $rb_gt = Opal.rb_gt, $rb_times = Opal.rb_times, $send = Opal.send, $to_a = Opal.to_a, $rb_ge = Opal.rb_ge, $not = Opal.not, $neqeq = Opal.neqeq; + + Opal.add_stubs('freeze,attr_reader,include?,raise,join,inspect,dup,compile,is?,==,line,last_line,+,message,render_line,first_line_only,last_line_only,-,source_buffer,decompose_position,end_pos,>,private,source_line,*,length,each,line_range,intersect,column_range,size,[]=,>=,!,map,name,!=,resize,=~,source,adjust'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -8059,56 +6885,44 @@ Opal.modules["parser/diagnostic"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Diagnostic'); - var $nesting = [self].concat($parent_nesting), $Diagnostic_initialize$1, $Diagnostic_message$2, $Diagnostic_render$3, $Diagnostic_render_line$4, $Diagnostic_first_line_only$7, $Diagnostic_last_line_only$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.reason = self.$$prototype["arguments"] = self.$$prototype.location = self.$$prototype.level = self.$$prototype.highlights = nil; + $proto.reason = $proto["arguments"] = $proto.location = $proto.level = $proto.highlights = nil; - Opal.const_set($nesting[0], 'LEVELS', ["note", "warning", "error", "fatal"].$freeze()); + $const_set($nesting[0], 'LEVELS', ["note", "warning", "error", "fatal"].$freeze()); self.$attr_reader("level", "reason", "arguments"); self.$attr_reader("location", "highlights"); - Opal.def(self, '$initialize', $Diagnostic_initialize$1 = function $$initialize(level, reason, arguments$, location, highlights) { + $def(self, '$initialize', function $$initialize(level, reason, arguments$, location, highlights) { var self = this, $ret_or_1 = nil; - if (highlights == null) { - highlights = []; - }; - if ($truthy($$($nesting, 'LEVELS')['$include?'](level))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + ("" + "Diagnostic#level must be one of " + ($$($nesting, 'LEVELS').$join(", ")) + "; ") + ("" + (level.$inspect()) + " provided.")) + if (highlights == null) highlights = [];; + if (!$truthy($$('LEVELS')['$include?'](level))) { + self.$raise($$('ArgumentError'), "" + ("Diagnostic#level must be one of " + ($$('LEVELS').$join(", ")) + "; ") + ("" + (level.$inspect()) + " provided.")) }; - if ($truthy(location)) { - } else { + if (!$truthy(location)) { self.$raise("Expected a location") }; self.level = level; self.reason = reason; - self["arguments"] = (function() {if ($truthy(($ret_or_1 = arguments$))) { - return $ret_or_1 - } else { - return $hash2([], {}) - }; return nil; })().$dup().$freeze(); + self["arguments"] = ($truthy(($ret_or_1 = arguments$)) ? ($ret_or_1) : ($hash2([], {}))).$dup().$freeze(); self.location = location; self.highlights = highlights.$dup().$freeze(); return self.$freeze(); - }, $Diagnostic_initialize$1.$$arity = -5); + }, -5); - Opal.def(self, '$message', $Diagnostic_message$2 = function $$message() { + $def(self, '$message', function $$message() { var self = this; - return $$($nesting, 'Messages').$compile(self.reason, self["arguments"]) - }, $Diagnostic_message$2.$$arity = 0); + return $$('Messages').$compile(self.reason, self["arguments"]) + }, 0); - Opal.def(self, '$render', $Diagnostic_render$3 = function $$render() { - var $a, $b, self = this, $ret_or_2 = nil, first_line = nil, last_line = nil, num_lines = nil, buffer = nil, last_lineno = nil, last_column = nil; + $def(self, '$render', function $$render() { + var $a, $b, self = this, first_line = nil, last_line = nil, num_lines = nil, buffer = nil, last_lineno = nil, last_column = nil; - if ($truthy((function() {if ($truthy(($ret_or_2 = self.location.$line()['$=='](self.location.$last_line())))) { - return $ret_or_2 - } else { - return self.location['$is?']("\n") - }; return nil; })())) { + if (($eqeq(self.location.$line(), self.location.$last_line()) || ($truthy(self.location['$is?']("\n"))))) { return $rb_plus(["" + (self.location) + ": " + (self.level) + ": " + (self.$message())], self.$render_line(self.location)) } else { @@ -8116,141 +6930,127 @@ Opal.modules["parser/diagnostic"] = function(Opal) { last_line = self.$last_line_only(self.location); num_lines = $rb_plus($rb_minus(self.location.$last_line(), self.location.$line()), 1); buffer = self.location.$source_buffer(); - $b = buffer.$decompose_position(self.location.$end_pos()), $a = Opal.to_ary($b), (last_lineno = ($a[0] == null ? nil : $a[0])), (last_column = ($a[1] == null ? nil : $a[1])), $b; + $b = buffer.$decompose_position(self.location.$end_pos()), $a = $to_ary($b), (last_lineno = ($a[0] == null ? nil : $a[0])), (last_column = ($a[1] == null ? nil : $a[1])), $b; return $rb_plus($rb_plus(["" + (self.location) + "-" + (last_lineno) + ":" + (last_column) + ": " + (self.level) + ": " + (self.$message())], self.$render_line(first_line, $rb_gt(num_lines, 2), false)), self.$render_line(last_line, false, true)); } - }, $Diagnostic_render$3.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$render_line', $Diagnostic_render_line$4 = function $$render_line(range, ellipsis, range_end) { - var $$5, $$6, self = this, source_line = nil, highlight_line = nil, $ret_or_3 = nil, $writer = nil; + $def(self, '$render_line', function $$render_line(range, ellipsis, range_end) { + var self = this, source_line = nil, highlight_line = nil, $writer = nil; - if (ellipsis == null) { - ellipsis = false; - }; + if (ellipsis == null) ellipsis = false;; - if (range_end == null) { - range_end = false; - }; + if (range_end == null) range_end = false;; source_line = range.$source_line(); highlight_line = $rb_times(" ", source_line.$length()); - $send(self.highlights, 'each', [], ($$5 = function(highlight){var self = $$5.$$s == null ? this : $$5.$$s, line_range = nil, $writer = nil; + $send(self.highlights, 'each', [], function $$1(highlight){var line_range = nil, $writer = nil; - if (highlight == null) { - highlight = nil; - }; + if (highlight == null) highlight = nil;; line_range = range.$source_buffer().$line_range(range.$line()); if ($truthy((highlight = highlight.$intersect(line_range)))) { $writer = [highlight.$column_range(), $rb_times("~", highlight.$size())]; - $send(highlight_line, '[]=', Opal.to_a($writer)); + $send(highlight_line, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil - };}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + };}, 1); if ($truthy(range['$is?']("\n"))) { highlight_line = $rb_plus(highlight_line, "^") - } else if ($truthy((function() {if ($truthy(($ret_or_3 = range_end['$!']()))) { - return $rb_ge(range.$size(), 1) - } else { - return $ret_or_3 - }; return nil; })())) { + } else if (($not(range_end) && ($truthy($rb_ge(range.$size(), 1))))) { $writer = [range.$column_range(), $rb_plus("^", $rb_times("~", $rb_minus(range.$size(), 1)))]; - $send(highlight_line, '[]=', Opal.to_a($writer)); + $send(highlight_line, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } else { $writer = [range.$column_range(), $rb_times("~", range.$size())]; - $send(highlight_line, '[]=', Opal.to_a($writer)); + $send(highlight_line, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; if ($truthy(ellipsis)) { - highlight_line = $rb_plus(highlight_line, "...")}; - return $send([source_line, highlight_line], 'map', [], ($$6 = function(line){var self = $$6.$$s == null ? this : $$6.$$s; - + highlight_line = $rb_plus(highlight_line, "...") + }; + return $send([source_line, highlight_line], 'map', [], function $$2(line){ - if (line == null) { - line = nil; - }; - return "" + (range.$source_buffer().$name()) + ":" + (range.$line()) + ": " + (line);}, $$6.$$s = self, $$6.$$arity = 1, $$6)); - }, $Diagnostic_render_line$4.$$arity = -2); + if (line == null) line = nil;; + return "" + (range.$source_buffer().$name()) + ":" + (range.$line()) + ": " + (line);}, 1); + }, -2); - Opal.def(self, '$first_line_only', $Diagnostic_first_line_only$7 = function $$first_line_only(range) { - var self = this; - - if ($truthy(range.$line()['$!='](range.$last_line()))) { + $def(self, '$first_line_only', function $$first_line_only(range) { + + if ($neqeq(range.$line(), range.$last_line())) { return range.$resize(range.$source()['$=~'](/\n/)) } else { return range } - }, $Diagnostic_first_line_only$7.$$arity = 1); - return (Opal.def(self, '$last_line_only', $Diagnostic_last_line_only$8 = function $$last_line_only(range) { - var self = this; - - if ($truthy(range.$line()['$!='](range.$last_line()))) { + }, 1); + return $def(self, '$last_line_only', function $$last_line_only(range) { + + if ($neqeq(range.$line(), range.$last_line())) { return range.$adjust($hash2(["begin_pos"], {"begin_pos": range.$source()['$=~'](/[^\n]*$/)})) } else { return range } - }, $Diagnostic_last_line_only$8.$$arity = 1), nil) && 'last_line_only'; + }, 1); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/diagnostic/engine"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["parser/diagnostic/engine"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy; - Opal.add_stubs(['$attr_accessor', '$ignore?', '$call', '$raise?', '$raise', '$protected', '$==', '$level']); + Opal.add_stubs('attr_accessor,ignore?,call,raise?,raise,protected,==,level'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Engine'); - var $nesting = [self].concat($parent_nesting), $Engine_initialize$1, $Engine_process$2, $Engine_ignore$ques$3, $Engine_raise$ques$4; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.consumer = self.$$prototype.ignore_warnings = self.$$prototype.all_errors_are_fatal = nil; + $proto.consumer = $proto.ignore_warnings = $proto.all_errors_are_fatal = nil; self.$attr_accessor("consumer"); self.$attr_accessor("all_errors_are_fatal"); self.$attr_accessor("ignore_warnings"); - Opal.def(self, '$initialize', $Engine_initialize$1 = function $$initialize(consumer) { + $def(self, '$initialize', function $$initialize(consumer) { var self = this; - if (consumer == null) { - consumer = nil; - }; + if (consumer == null) consumer = nil;; self.consumer = consumer; self.all_errors_are_fatal = false; return (self.ignore_warnings = false); - }, $Engine_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$process', $Engine_process$2 = function $$process(diagnostic) { + $def(self, '$process', function $$process(diagnostic) { var self = this; - if ($truthy(self['$ignore?'](diagnostic))) { - } else if ($truthy(self.consumer)) { - self.consumer.$call(diagnostic)}; + if (!$truthy(self['$ignore?'](diagnostic))) { + if ($truthy(self.consumer)) { + self.consumer.$call(diagnostic) + } + }; if ($truthy(self['$raise?'](diagnostic))) { - self.$raise($$$($$($nesting, 'Parser'), 'SyntaxError'), diagnostic)}; + self.$raise($$$($$('Parser'), 'SyntaxError'), diagnostic) + }; return self; - }, $Engine_process$2.$$arity = 1); + }, 1); self.$protected(); - Opal.def(self, '$ignore?', $Engine_ignore$ques$3 = function(diagnostic) { + $def(self, '$ignore?', function $Engine_ignore$ques$1(diagnostic) { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.ignore_warnings))) { @@ -8258,29 +7058,24 @@ Opal.modules["parser/diagnostic/engine"] = function(Opal) { } else { return $ret_or_1 } - }, $Engine_ignore$ques$3.$$arity = 1); - return (Opal.def(self, '$raise?', $Engine_raise$ques$4 = function(diagnostic) { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil; + }, 1); + return $def(self, '$raise?', function $Engine_raise$ques$2(diagnostic) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.all_errors_are_fatal))) { - return diagnostic.$level()['$==']("error") - } else { - return $ret_or_3 - }; return nil; })()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.all_errors_are_fatal)) ? (diagnostic.$level()['$==']("error")) : ($ret_or_2))))) { + return $ret_or_1 } else { return diagnostic.$level()['$==']("fatal") } - }, $Engine_raise$ques$4.$$arity = 1), nil) && 'raise?'; - })($$($nesting, 'Diagnostic'), null, $nesting) + }, 1); + })($$('Diagnostic'), null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/static_environment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["parser/static_environment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def; - Opal.add_stubs(['$reset', '$[]', '$push', '$dup', '$pop', '$add', '$to_sym', '$include?', '$declare', '$declared?', '$empty?']); + Opal.add_stubs('reset,[],push,dup,pop,add,to_sym,include?,declare,declared?,empty?'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -8289,464 +7084,410 @@ Opal.modules["parser/static_environment"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'StaticEnvironment'); - var $nesting = [self].concat($parent_nesting), $StaticEnvironment_initialize$1, $StaticEnvironment_reset$2, $StaticEnvironment_extend_static$3, $StaticEnvironment_extend_dynamic$4, $StaticEnvironment_unextend$5, $StaticEnvironment_declare$6, $StaticEnvironment_declared$ques$7, $StaticEnvironment_declare_forward_args$8, $StaticEnvironment_declared_forward_args$ques$9, $StaticEnvironment_declare_anonymous_blockarg$10, $StaticEnvironment_declared_anonymous_blockarg$ques$11, $StaticEnvironment_empty$ques$12; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.stack = self.$$prototype.variables = nil; + $proto.stack = $proto.variables = nil; - Opal.const_set($nesting[0], 'FORWARD_ARGS', "FORWARD_ARGS"); - Opal.const_set($nesting[0], 'ANONYMOUS_BLOCKARG', "ANONYMOUS_BLOCKARG"); + $const_set($nesting[0], 'FORWARD_ARGS', "FORWARD_ARGS"); + $const_set($nesting[0], 'ANONYMOUS_BLOCKARG', "ANONYMOUS_BLOCKARG"); - Opal.def(self, '$initialize', $StaticEnvironment_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return self.$reset() - }, $StaticEnvironment_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $StaticEnvironment_reset$2 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; - self.variables = $$($nesting, 'Set')['$[]'](); + self.variables = $$('Set')['$[]'](); return (self.stack = []); - }, $StaticEnvironment_reset$2.$$arity = 0); + }, 0); - Opal.def(self, '$extend_static', $StaticEnvironment_extend_static$3 = function $$extend_static() { + $def(self, '$extend_static', function $$extend_static() { var self = this; self.stack.$push(self.variables); - self.variables = $$($nesting, 'Set')['$[]'](); + self.variables = $$('Set')['$[]'](); return self; - }, $StaticEnvironment_extend_static$3.$$arity = 0); + }, 0); - Opal.def(self, '$extend_dynamic', $StaticEnvironment_extend_dynamic$4 = function $$extend_dynamic() { + $def(self, '$extend_dynamic', function $$extend_dynamic() { var self = this; self.stack.$push(self.variables); self.variables = self.variables.$dup(); return self; - }, $StaticEnvironment_extend_dynamic$4.$$arity = 0); + }, 0); - Opal.def(self, '$unextend', $StaticEnvironment_unextend$5 = function $$unextend() { + $def(self, '$unextend', function $$unextend() { var self = this; self.variables = self.stack.$pop(); return self; - }, $StaticEnvironment_unextend$5.$$arity = 0); + }, 0); - Opal.def(self, '$declare', $StaticEnvironment_declare$6 = function $$declare(name) { + $def(self, '$declare', function $$declare(name) { var self = this; self.variables.$add(name.$to_sym()); return self; - }, $StaticEnvironment_declare$6.$$arity = 1); + }, 1); - Opal.def(self, '$declared?', $StaticEnvironment_declared$ques$7 = function(name) { + $def(self, '$declared?', function $StaticEnvironment_declared$ques$1(name) { var self = this; return self.variables['$include?'](name.$to_sym()) - }, $StaticEnvironment_declared$ques$7.$$arity = 1); + }, 1); - Opal.def(self, '$declare_forward_args', $StaticEnvironment_declare_forward_args$8 = function $$declare_forward_args() { + $def(self, '$declare_forward_args', function $$declare_forward_args() { var self = this; - return self.$declare($$($nesting, 'FORWARD_ARGS')) - }, $StaticEnvironment_declare_forward_args$8.$$arity = 0); + return self.$declare($$('FORWARD_ARGS')) + }, 0); - Opal.def(self, '$declared_forward_args?', $StaticEnvironment_declared_forward_args$ques$9 = function() { + $def(self, '$declared_forward_args?', function $StaticEnvironment_declared_forward_args$ques$2() { var self = this; - return self['$declared?']($$($nesting, 'FORWARD_ARGS')) - }, $StaticEnvironment_declared_forward_args$ques$9.$$arity = 0); + return self['$declared?']($$('FORWARD_ARGS')) + }, 0); - Opal.def(self, '$declare_anonymous_blockarg', $StaticEnvironment_declare_anonymous_blockarg$10 = function $$declare_anonymous_blockarg() { + $def(self, '$declare_anonymous_blockarg', function $$declare_anonymous_blockarg() { var self = this; - return self.$declare($$($nesting, 'ANONYMOUS_BLOCKARG')) - }, $StaticEnvironment_declare_anonymous_blockarg$10.$$arity = 0); + return self.$declare($$('ANONYMOUS_BLOCKARG')) + }, 0); - Opal.def(self, '$declared_anonymous_blockarg?', $StaticEnvironment_declared_anonymous_blockarg$ques$11 = function() { + $def(self, '$declared_anonymous_blockarg?', function $StaticEnvironment_declared_anonymous_blockarg$ques$3() { var self = this; - return self['$declared?']($$($nesting, 'ANONYMOUS_BLOCKARG')) - }, $StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity = 0); - return (Opal.def(self, '$empty?', $StaticEnvironment_empty$ques$12 = function() { + return self['$declared?']($$('ANONYMOUS_BLOCKARG')) + }, 0); + return $def(self, '$empty?', function $StaticEnvironment_empty$ques$4() { var self = this; return self.stack['$empty?']() - }, $StaticEnvironment_empty$ques$12.$$arity = 0), nil) && 'empty?'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/lexer"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash = Opal.hash, $truthy = Opal.truthy, $hash2 = Opal.hash2, $range = Opal.range, $gvars = Opal.gvars; - - Opal.add_stubs(['$attr_accessor', '$private', '$_lex_trans_keys=', '$-', '$_lex_key_spans=', '$_lex_index_offsets=', '$_lex_indicies=', '$_lex_trans_targs=', '$_lex_trans_actions=', '$_lex_to_state_actions=', '$_lex_from_state_actions=', '$_lex_eof_trans=', '$lex_start=', '$lex_error=', '$lex_en_interp_words=', '$lex_en_interp_string=', '$lex_en_plain_words=', '$lex_en_plain_string=', '$lex_en_interp_backslash_delimited=', '$lex_en_plain_backslash_delimited=', '$lex_en_interp_backslash_delimited_words=', '$lex_en_plain_backslash_delimited_words=', '$lex_en_regexp_modifiers=', '$lex_en_expr_variable=', '$lex_en_expr_fname=', '$lex_en_expr_endfn=', '$lex_en_expr_dot=', '$lex_en_expr_arg=', '$lex_en_expr_cmdarg=', '$lex_en_expr_endarg=', '$lex_en_expr_mid=', '$lex_en_expr_beg=', '$lex_en_expr_labelarg=', '$lex_en_expr_value=', '$lex_en_expr_end=', '$lex_en_leading_dot=', '$lex_en_line_comment=', '$lex_en_line_begin=', '$freeze', '$ord', '$union', '$chars', '$attr_reader', '$reset', '$lex_en_line_begin', '$class', '$new', '$source', '$==', '$encoding', '$unpack', '$[]', '$lex_en_expr_dot', '$lex_en_expr_fname', '$lex_en_expr_value', '$lex_en_expr_beg', '$lex_en_expr_mid', '$lex_en_expr_arg', '$lex_en_expr_cmdarg', '$lex_en_expr_end', '$lex_en_expr_endarg', '$lex_en_expr_endfn', '$lex_en_expr_labelarg', '$lex_en_interp_string', '$lex_en_interp_words', '$lex_en_plain_string', '$fetch', '$invert', '$push', '$count', '$pop', '$any?', '$shift', '$send', '$+', '$size', '$<=', '$===', '$<<', '$>', '$!=', '$emit_comment', '$tok', '$literal', '$flush_string', '$extend_content', '$emit', '$heredoc?', '$saved_herebody_s=', '$start_interp_brace', '$[]=', '$diagnostic', '$range', '$str_s', '$gsub', '$version?', '$nest_and_try_closing', '$heredoc_e', '$pop_literal', '$infer_indent_level', '$words?', '$!', '$eof_codepoint?', '$extend_space', '$extend_string', '$>=', '$active?', '$slice', '$start_with?', '$chr', '$munge_escape?', '$regexp?', '$match', '$squiggly_heredoc?', '$supports_line_continuation_via_slash?', '$include?', '$scan', '$join', '$=~', '$to_i', '$stack_pop', '$emit_table', '$push_literal', '$in_argdef', '$arg_or_cmdarg', '$<', '$emit_do', '$nil?', '$declared?', '$last', '$getbyte', '$inspect', '$end_with?', '$empty?', '$index', '$call', '$Float', '$to_f', '$length', '$lambda', '$Rational', '$Complex', '$each', '$encode_escape', '$%', '$in_kwarg', '$end_interp_brace_and_try_closing', '$lexpop', '$saved_herebody_s', '$next_state_for_literal', '$rstrip', '$&', '$|', '$lex_error', '$protected', '$force_encoding', '$process', '$backslash_delimited?', '$interpolate?', '$lex_en_interp_backslash_delimited_words', '$lex_en_plain_backslash_delimited_words', '$lex_en_plain_words', '$lex_en_interp_backslash_delimited', '$lex_en_plain_backslash_delimited', '$dedent_level', '$type', '$lex_en_regexp_modifiers', '$upcase']); +Opal.modules["parser/lexer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $const_set = Opal.const_set, $hash = Opal.hash, $def = Opal.def, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $hash2 = Opal.hash2, $rb_plus = Opal.rb_plus, $to_ary = Opal.to_ary, $rb_le = Opal.rb_le, $eqeqeq = Opal.eqeqeq, $rb_gt = Opal.rb_gt, $neqeq = Opal.neqeq, $not = Opal.not, $rb_ge = Opal.rb_ge, $range = Opal.range, $rb_lt = Opal.rb_lt, $gvars = Opal.gvars; + + Opal.add_stubs('attr_accessor,private,_lex_trans_keys=,-,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_interp_words=,lex_en_interp_string=,lex_en_plain_words=,lex_en_plain_string=,lex_en_interp_backslash_delimited=,lex_en_plain_backslash_delimited=,lex_en_interp_backslash_delimited_words=,lex_en_plain_backslash_delimited_words=,lex_en_regexp_modifiers=,lex_en_expr_variable=,lex_en_expr_fname=,lex_en_expr_endfn=,lex_en_expr_dot=,lex_en_expr_arg=,lex_en_expr_cmdarg=,lex_en_expr_endarg=,lex_en_expr_mid=,lex_en_expr_beg=,lex_en_expr_labelarg=,lex_en_expr_value=,lex_en_expr_end=,lex_en_leading_dot=,lex_en_line_comment=,lex_en_line_begin=,freeze,ord,union,chars,attr_reader,reset,lex_en_line_begin,class,new,source,==,encoding,unpack,[],lex_en_expr_dot,lex_en_expr_fname,lex_en_expr_value,lex_en_expr_beg,lex_en_expr_mid,lex_en_expr_arg,lex_en_expr_cmdarg,lex_en_expr_end,lex_en_expr_endarg,lex_en_expr_endfn,lex_en_expr_labelarg,lex_en_interp_string,lex_en_interp_words,lex_en_plain_string,fetch,invert,push,count,pop,any?,shift,send,+,size,<=,===,<<,>,!=,emit_comment,tok,literal,flush_string,extend_content,emit,heredoc?,saved_herebody_s=,start_interp_brace,[]=,diagnostic,range,str_s,gsub,version?,nest_and_try_closing,heredoc_e,pop_literal,infer_indent_level,!,eof_codepoint?,words?,extend_space,extend_string,active?,>=,slice,start_with?,chr,munge_escape?,match,regexp?,squiggly_heredoc?,supports_line_continuation_via_slash?,include?,scan,join,=~,to_i,stack_pop,emit_table,push_literal,in_argdef,arg_or_cmdarg,<,emit_do,declared?,nil?,last,getbyte,inspect,end_with?,empty?,index,call,Float,to_f,length,lambda,Rational,Complex,each,encode_escape,%,in_kwarg,end_interp_brace_and_try_closing,lexpop,saved_herebody_s,next_state_for_literal,rstrip,&,|,lex_error,protected,force_encoding,process,backslash_delimited?,interpolate?,lex_en_interp_backslash_delimited_words,lex_en_plain_backslash_delimited_words,lex_en_plain_words,lex_en_interp_backslash_delimited,lex_en_plain_backslash_delimited,dedent_level,type,lex_en_regexp_modifiers,upcase'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Lexer'); - var $nesting = [self].concat($parent_nesting), $Lexer_initialize$1, $Lexer_reset$2, $Lexer_source_buffer$eq$3, $Lexer_encoding$4, $Lexer_state$5, $Lexer_state$eq$6, $Lexer_push_cmdarg$7, $Lexer_pop_cmdarg$8, $Lexer_push_cond$9, $Lexer_pop_cond$10, $Lexer_dedent_level$11, $Lexer_advance$12, $Lexer_eof_codepoint$ques$42, $Lexer_version$ques$43, $Lexer_stack_pop$44, $Lexer_encode_escape$45, $Lexer_tok$46, $Lexer_range$47, $Lexer_emit$48, $Lexer_emit_table$49, $Lexer_emit_do$50, $Lexer_arg_or_cmdarg$51, $Lexer_emit_comment$52, $Lexer_diagnostic$53, $Lexer_push_literal$54, $Lexer_next_state_for_literal$55, $Lexer_literal$56, $Lexer_pop_literal$57, $Lexer$58, $writer = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $writer = nil, $proto = self.$$prototype; - self.$$prototype.source_buffer = self.$$prototype.source_pts = self.$$prototype.cs = self.$$prototype.cmdarg_stack = self.$$prototype.cmdarg = self.$$prototype.cond_stack = self.$$prototype.cond = self.$$prototype.dedent_level = self.$$prototype.token_queue = self.$$prototype.p = self.$$prototype.command_start = self.$$prototype.herebody_s = self.$$prototype.sharp_s = self.$$prototype.ts = self.$$prototype.te = self.$$prototype.top = self.$$prototype.stack = self.$$prototype.version = self.$$prototype.escape_s = self.$$prototype.escape = self.$$prototype.act = self.$$prototype.context = self.$$prototype.static_env = self.$$prototype.newline_s = self.$$prototype.lambda_stack = self.$$prototype.paren_nest = self.$$prototype.num_digits_s = self.$$prototype.num_suffix_s = self.$$prototype.num_base = self.$$prototype.num_xfrm = self.$$prototype.eq_begin_s = self.$$prototype.cs_before_block_comment = self.$$prototype.tokens = self.$$prototype.comments = self.$$prototype.diagnostics = self.$$prototype.literal_stack = nil; + $proto.source_buffer = $proto.source_pts = $proto.cs = $proto.cmdarg_stack = $proto.cmdarg = $proto.cond_stack = $proto.cond = $proto.dedent_level = $proto.token_queue = $proto.p = $proto.command_start = $proto.herebody_s = $proto.sharp_s = $proto.ts = $proto.te = $proto.top = $proto.stack = $proto.version = $proto.escape_s = $proto.escape = $proto.act = $proto.context = $proto.static_env = $proto.newline_s = $proto.lambda_stack = $proto.paren_nest = $proto.num_digits_s = $proto.num_suffix_s = $proto.num_base = $proto.num_xfrm = $proto.eq_begin_s = $proto.cs_before_block_comment = $proto.tokens = $proto.comments = $proto.diagnostics = $proto.literal_stack = nil; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_trans_keys"); return self.$private("_lex_trans_keys", "_lex_trans_keys="); })(Opal.get_singleton_class(self), $nesting); $writer = [[0, 0, 101, 101, 103, 103, 105, 105, 110, 110, 69, 69, 78, 78, 68, 68, 95, 95, 95, 95, 0, 26, 0, 127, 0, 127, 0, 127, 0, 127, 0, 45, 0, 120, 0, 120, 0, 92, 0, 120, 0, 120, 0, 45, 0, 120, 0, 120, 67, 99, 45, 45, 0, 92, 0, 120, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 45, 0, 120, 0, 120, 0, 92, 0, 120, 0, 120, 0, 45, 0, 120, 0, 120, 67, 99, 45, 45, 0, 92, 0, 120, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 58, 58, 58, 46, 46, 0, 127, 58, 58, 60, 60, 62, 62, 10, 10, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 115, 115, 99, 99, 117, 117, 101, 101, 108, 116, 101, 101, 115, 115, 115, 115, 105, 105, 108, 108, 105, 105, 108, 108, 58, 58, 0, 127, 10, 10, 0, 127, 9, 92, 10, 10, 9, 92, 58, 58, 98, 98, 101, 101, 103, 103, 105, 105, 110, 110, 0, 127, 61, 61, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 10, 10, 0, 127, 0, 127, 61, 126, 93, 93, 0, 127, 0, 127, 10, 10, 34, 34, 10, 10, 39, 39, 0, 127, 10, 96, 96, 96, 0, 45, 0, 120, 0, 120, 0, 92, 0, 120, 0, 120, 0, 45, 0, 120, 0, 120, 67, 99, 45, 45, 0, 92, 0, 120, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 58, 58, 58, 0, 127, 43, 57, 48, 57, 48, 57, 48, 57, 48, 57, 115, 115, 99, 99, 117, 117, 101, 101, 99, 99, 117, 117, 101, 101, 0, 127, 58, 58, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 60, 60, 10, 10, 9, 92, 9, 92, 10, 10, 10, 10, 10, 10, 10, 10, 46, 46, 0, 95, 9, 32, 0, 0, 10, 10, 10, 10, 98, 98, 9, 32, 10, 10, 95, 95, 0, 92, 9, 32, 36, 123, 0, 127, 48, 57, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 48, 102, 48, 102, 0, 0, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 92, 36, 123, 0, 127, 48, 57, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 48, 102, 48, 102, 0, 0, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 92, 9, 32, 0, 26, 0, 92, 0, 26, 0, 35, 36, 123, 0, 127, 48, 57, 0, 127, 0, 26, 0, 35, 9, 32, 36, 123, 0, 127, 48, 57, 0, 127, 0, 32, 9, 32, 65, 122, 65, 122, 36, 64, 0, 127, 48, 57, 0, 127, 0, 127, 0, 127, 0, 127, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 0, 127, 0, 127, 48, 57, 115, 115, 38, 38, 42, 42, 64, 64, 58, 58, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 93, 93, 10, 10, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 124, 124, 0, 127, 0, 127, 9, 32, 10, 10, 10, 10, 46, 46, 10, 10, 0, 0, 0, 127, 0, 127, 61, 61, 0, 0, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 38, 38, 42, 42, 64, 64, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 93, 93, 10, 10, 124, 124, 0, 126, 0, 127, 0, 61, 9, 61, 9, 61, 0, 0, 9, 61, 9, 62, 46, 46, 46, 46, 58, 58, 9, 32, 0, 0, 0, 127, 0, 0, 9, 124, 0, 0, 10, 10, 10, 10, 0, 0, 9, 61, 58, 58, 60, 60, 62, 62, 9, 32, 10, 10, 0, 127, 102, 102, 101, 101, 110, 110, 104, 104, 0, 127, 0, 127, 0, 127, 0, 0, 0, 127, 10, 10, 0, 123, 9, 32, 10, 10, 10, 10, 10, 10, 0, 0, 111, 111, 0, 0, 0, 127, 0, 127, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 61, 0, 0, 61, 126, 61, 61, 0, 0, 0, 0, 0, 0, 9, 32, 61, 61, 9, 32, 61, 126, 10, 10, 10, 10, 0, 127, 38, 61, 0, 0, 42, 61, 61, 61, 9, 92, 9, 92, 9, 92, 46, 46, 46, 46, 10, 10, 0, 26, 0, 127, 0, 127, 61, 61, 0, 0, 61, 126, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 61, 126, 0, 127, 48, 57, 38, 38, 42, 42, 64, 64, 60, 61, 62, 62, 61, 61, 61, 62, 0, 127, 48, 57, 0, 127, 124, 124, 64, 64, 60, 61, 0, 0, 10, 34, 10, 39, 96, 96, 62, 62, 61, 126, 61, 62, 0, 122, 0, 0, 0, 127, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 48, 102, 48, 102, 0, 0, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 127, 0, 127, 0, 127, 0, 0, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 61, 126, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 61, 124, 0, 92, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 61, 61, 0, 0, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 0, 127, 0, 127, 48, 57, 61, 61, 38, 61, 0, 0, 0, 0, 42, 61, 61, 62, 46, 57, 46, 46, 10, 10, 48, 101, 48, 95, 46, 120, 48, 114, 43, 57, 48, 105, 102, 102, 0, 0, 101, 105, 0, 0, 0, 0, 48, 114, 48, 114, 48, 114, 48, 114, 105, 114, 102, 102, 0, 0, 101, 105, 115, 115, 0, 0, 0, 0, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 46, 114, 48, 114, 46, 114, 48, 114, 58, 58, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 0, 127, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 10, 10, 0, 0, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 9, 92, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 61, 124, 0, 0, 9, 92, 9, 92, 9, 92, 46, 46, 46, 46, 10, 10, 46, 46, 10, 10, 10, 61, 10, 10, 10, 101, 10, 110, 10, 100, 10, 10, 0]]; - $send(self, '_lex_trans_keys=', Opal.to_a($writer)); + $send(self, '_lex_trans_keys=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_key_spans"); return self.$private("_lex_key_spans", "_lex_key_spans="); })(Opal.get_singleton_class(self), $nesting); $writer = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27, 128, 128, 128, 128, 46, 121, 121, 93, 121, 121, 46, 121, 121, 33, 1, 93, 121, 103, 128, 128, 128, 128, 46, 121, 121, 93, 121, 121, 46, 121, 121, 33, 1, 93, 121, 103, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 1, 1, 1, 128, 1, 1, 1, 1, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 128, 1, 128, 84, 1, 84, 1, 1, 1, 1, 1, 1, 128, 1, 84, 84, 84, 84, 84, 1, 128, 128, 66, 1, 128, 128, 1, 1, 1, 1, 128, 87, 1, 46, 121, 121, 93, 121, 121, 46, 121, 121, 33, 1, 93, 121, 103, 128, 128, 128, 128, 128, 128, 1, 1, 128, 15, 10, 10, 10, 10, 1, 1, 1, 1, 1, 1, 1, 128, 1, 84, 84, 84, 84, 84, 84, 1, 1, 84, 84, 1, 1, 1, 1, 1, 96, 24, 0, 1, 1, 1, 24, 1, 1, 93, 24, 88, 128, 10, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 55, 55, 0, 55, 55, 0, 46, 93, 93, 0, 0, 93, 55, 55, 0, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 93, 88, 128, 10, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 55, 55, 0, 55, 55, 0, 46, 93, 93, 0, 0, 93, 55, 55, 0, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 93, 24, 27, 93, 27, 36, 88, 128, 10, 128, 27, 36, 24, 88, 128, 10, 128, 33, 24, 58, 58, 29, 128, 10, 128, 128, 128, 128, 24, 0, 66, 1, 1, 128, 128, 10, 1, 1, 1, 1, 1, 2, 1, 66, 1, 2, 128, 128, 128, 128, 128, 128, 128, 1, 1, 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, 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, 128, 128, 128, 128, 128, 1, 128, 128, 24, 1, 1, 1, 1, 0, 128, 128, 1, 0, 24, 0, 66, 1, 1, 1, 1, 1, 2, 1, 66, 1, 2, 128, 1, 1, 1, 127, 128, 62, 53, 53, 0, 53, 54, 1, 1, 1, 24, 0, 128, 0, 116, 0, 1, 1, 0, 53, 1, 1, 1, 24, 1, 128, 1, 1, 1, 1, 128, 128, 128, 0, 128, 1, 124, 24, 1, 1, 1, 0, 1, 0, 128, 128, 24, 0, 1, 1, 1, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 4, 0, 66, 1, 0, 0, 0, 24, 1, 24, 66, 1, 1, 128, 24, 0, 20, 1, 84, 84, 84, 1, 1, 1, 27, 128, 128, 1, 0, 66, 2, 0, 0, 0, 0, 66, 128, 10, 1, 1, 1, 2, 1, 1, 2, 128, 10, 128, 1, 1, 2, 0, 25, 30, 1, 1, 66, 2, 123, 0, 128, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 55, 55, 0, 55, 55, 0, 46, 93, 93, 0, 0, 93, 55, 55, 0, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 128, 128, 128, 0, 1, 0, 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, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 66, 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, 0, 64, 93, 24, 0, 1, 1, 1, 0, 128, 128, 24, 0, 1, 1, 1, 0, 128, 128, 1, 0, 24, 0, 66, 1, 1, 128, 128, 10, 1, 24, 0, 0, 20, 2, 12, 1, 1, 54, 48, 75, 67, 15, 58, 1, 0, 5, 0, 0, 67, 67, 67, 67, 10, 1, 0, 5, 1, 0, 0, 67, 67, 67, 67, 67, 67, 67, 67, 69, 67, 69, 67, 1, 2, 1, 66, 1, 2, 128, 128, 0, 128, 128, 128, 128, 128, 128, 0, 1, 0, 0, 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, 84, 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, 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, 0, 64, 0, 84, 84, 84, 1, 1, 1, 1, 1, 52, 1, 92, 101, 91, 1]]; - $send(self, '_lex_key_spans=', Opal.to_a($writer)); + $send(self, '_lex_key_spans=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_index_offsets"); return self.$private("_lex_index_offsets", "_lex_index_offsets="); })(Opal.get_singleton_class(self), $nesting); $writer = [[0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 46, 175, 304, 433, 562, 609, 731, 853, 947, 1069, 1191, 1238, 1360, 1482, 1516, 1518, 1612, 1734, 1838, 1967, 2096, 2225, 2354, 2401, 2523, 2645, 2739, 2861, 2983, 3030, 3152, 3274, 3308, 3310, 3404, 3526, 3630, 3759, 3888, 4017, 4146, 4275, 4404, 4533, 4662, 4791, 4920, 5049, 5178, 5307, 5436, 5565, 5567, 5569, 5571, 5700, 5702, 5704, 5706, 5708, 5837, 5966, 6095, 6224, 6353, 6482, 6611, 6740, 6869, 6998, 7127, 7256, 7385, 7514, 7643, 7772, 7901, 8030, 8032, 8034, 8036, 8038, 8048, 8050, 8052, 8054, 8056, 8058, 8060, 8062, 8064, 8193, 8195, 8324, 8409, 8411, 8496, 8498, 8500, 8502, 8504, 8506, 8508, 8637, 8639, 8724, 8809, 8894, 8979, 9064, 9066, 9195, 9324, 9391, 9393, 9522, 9651, 9653, 9655, 9657, 9659, 9788, 9876, 9878, 9925, 10047, 10169, 10263, 10385, 10507, 10554, 10676, 10798, 10832, 10834, 10928, 11050, 11154, 11283, 11412, 11541, 11670, 11799, 11928, 11930, 11932, 12061, 12077, 12088, 12099, 12110, 12121, 12123, 12125, 12127, 12129, 12131, 12133, 12135, 12264, 12266, 12351, 12436, 12521, 12606, 12691, 12776, 12778, 12780, 12865, 12950, 12952, 12954, 12956, 12958, 12960, 13057, 13082, 13083, 13085, 13087, 13089, 13114, 13116, 13118, 13212, 13237, 13326, 13455, 13466, 13595, 13717, 13718, 13719, 13728, 13737, 13738, 13739, 13833, 13834, 13835, 13836, 13930, 13932, 13933, 13934, 13935, 14029, 14085, 14141, 14142, 14198, 14254, 14255, 14302, 14396, 14490, 14491, 14492, 14586, 14642, 14698, 14699, 14746, 14748, 14842, 14919, 14975, 15031, 15087, 15088, 15215, 15342, 15343, 15470, 15471, 15598, 15725, 15852, 15979, 15980, 16107, 16234, 16361, 16488, 16615, 16742, 16743, 16744, 16800, 16801, 16895, 16984, 17113, 17124, 17253, 17375, 17376, 17377, 17386, 17395, 17396, 17397, 17491, 17492, 17493, 17494, 17588, 17590, 17591, 17592, 17593, 17687, 17743, 17799, 17800, 17856, 17912, 17913, 17960, 18054, 18148, 18149, 18150, 18244, 18300, 18356, 18357, 18404, 18406, 18500, 18577, 18633, 18689, 18745, 18746, 18873, 19000, 19001, 19128, 19129, 19256, 19383, 19510, 19637, 19638, 19765, 19892, 20019, 20146, 20273, 20400, 20401, 20402, 20458, 20459, 20553, 20578, 20606, 20700, 20728, 20765, 20854, 20983, 20994, 21123, 21151, 21188, 21213, 21302, 21431, 21442, 21571, 21605, 21630, 21689, 21748, 21778, 21907, 21918, 22047, 22176, 22305, 22434, 22459, 22460, 22527, 22529, 22531, 22660, 22789, 22800, 22802, 22804, 22806, 22808, 22810, 22813, 22815, 22882, 22884, 22887, 23016, 23145, 23274, 23403, 23532, 23661, 23790, 23792, 23794, 23923, 24052, 24181, 24310, 24439, 24568, 24697, 24826, 24955, 25084, 25213, 25342, 25471, 25600, 25729, 25858, 25987, 26116, 26245, 26374, 26503, 26632, 26761, 26890, 27019, 27148, 27277, 27406, 27535, 27664, 27793, 27922, 28051, 28180, 28309, 28438, 28567, 28696, 28825, 28954, 29083, 29212, 29341, 29470, 29599, 29728, 29857, 29986, 30115, 30244, 30373, 30502, 30631, 30760, 30889, 31018, 31147, 31276, 31405, 31534, 31663, 31792, 31921, 32050, 32179, 32308, 32437, 32566, 32695, 32824, 32953, 33082, 33211, 33340, 33469, 33598, 33727, 33856, 33985, 34114, 34243, 34372, 34501, 34503, 34632, 34761, 34786, 34788, 34790, 34792, 34794, 34795, 34924, 35053, 35055, 35056, 35081, 35082, 35149, 35151, 35153, 35155, 35157, 35159, 35162, 35164, 35231, 35233, 35236, 35365, 35367, 35369, 35371, 35499, 35628, 35691, 35745, 35799, 35800, 35854, 35909, 35911, 35913, 35915, 35940, 35941, 36070, 36071, 36188, 36189, 36191, 36193, 36194, 36248, 36250, 36252, 36254, 36279, 36281, 36410, 36412, 36414, 36416, 36418, 36547, 36676, 36805, 36806, 36935, 36937, 37062, 37087, 37089, 37091, 37093, 37094, 37096, 37097, 37226, 37355, 37380, 37381, 37383, 37385, 37387, 37388, 37517, 37646, 37775, 37904, 38033, 38162, 38291, 38420, 38549, 38678, 38807, 38936, 39065, 39194, 39323, 39452, 39581, 39710, 39715, 39716, 39783, 39785, 39786, 39787, 39788, 39813, 39815, 39840, 39907, 39909, 39911, 40040, 40065, 40066, 40087, 40089, 40174, 40259, 40344, 40346, 40348, 40350, 40378, 40507, 40636, 40638, 40639, 40706, 40709, 40710, 40711, 40712, 40713, 40780, 40909, 40920, 40922, 40924, 40926, 40929, 40931, 40933, 40936, 41065, 41076, 41205, 41207, 41209, 41212, 41213, 41239, 41270, 41272, 41274, 41341, 41344, 41468, 41469, 41598, 41727, 41849, 41850, 41851, 41860, 41869, 41870, 41871, 41965, 41966, 41967, 41968, 42062, 42064, 42065, 42066, 42067, 42161, 42217, 42273, 42274, 42330, 42386, 42387, 42434, 42528, 42622, 42623, 42624, 42718, 42774, 42830, 42831, 42878, 42880, 42974, 43051, 43107, 43163, 43219, 43220, 43347, 43474, 43475, 43602, 43603, 43730, 43857, 43984, 44111, 44112, 44239, 44366, 44493, 44620, 44747, 44874, 45001, 45128, 45255, 45382, 45509, 45636, 45763, 45890, 46017, 46144, 46271, 46398, 46525, 46526, 46527, 46583, 46584, 46713, 46842, 46971, 46972, 46974, 46975, 47104, 47233, 47362, 47491, 47620, 47749, 47878, 48007, 48136, 48265, 48394, 48523, 48652, 48781, 48910, 49039, 49168, 49297, 49426, 49555, 49684, 49813, 49942, 50071, 50200, 50329, 50458, 50587, 50716, 50845, 50974, 51103, 51232, 51361, 51490, 51619, 51748, 51877, 52006, 52135, 52264, 52393, 52522, 52651, 52780, 52909, 53038, 53167, 53296, 53425, 53554, 53683, 53812, 53941, 54070, 54199, 54328, 54457, 54586, 54715, 54844, 54911, 55040, 55169, 55298, 55427, 55556, 55685, 55814, 55943, 56072, 56201, 56330, 56459, 56588, 56717, 56846, 56975, 57104, 57233, 57362, 57491, 57620, 57749, 57878, 58007, 58136, 58137, 58202, 58296, 58321, 58322, 58324, 58326, 58328, 58329, 58458, 58587, 58612, 58613, 58615, 58617, 58619, 58620, 58749, 58878, 58880, 58881, 58906, 58907, 58974, 58976, 58978, 59107, 59236, 59247, 59249, 59274, 59275, 59276, 59297, 59300, 59313, 59315, 59317, 59372, 59421, 59497, 59565, 59581, 59640, 59642, 59643, 59649, 59650, 59651, 59719, 59787, 59855, 59923, 59934, 59936, 59937, 59943, 59945, 59946, 59947, 60015, 60083, 60151, 60219, 60287, 60355, 60423, 60491, 60561, 60629, 60699, 60767, 60769, 60772, 60774, 60841, 60843, 60846, 60975, 61104, 61105, 61234, 61363, 61492, 61621, 61750, 61879, 61880, 61882, 61883, 61884, 62013, 62142, 62271, 62400, 62529, 62658, 62787, 62916, 63045, 63174, 63303, 63432, 63561, 63690, 63819, 63948, 64077, 64206, 64335, 64464, 64593, 64722, 64851, 64980, 65109, 65238, 65367, 65496, 65625, 65754, 65883, 66012, 66141, 66270, 66399, 66528, 66657, 66742, 66871, 67000, 67129, 67258, 67387, 67516, 67645, 67774, 67903, 68032, 68161, 68290, 68419, 68548, 68677, 68806, 68935, 69064, 69193, 69322, 69451, 69580, 69709, 69838, 69967, 70096, 70225, 70354, 70483, 70612, 70741, 70870, 70999, 71128, 71257, 71386, 71515, 71644, 71773, 71902, 72031, 72160, 72289, 72418, 72547, 72676, 72805, 72934, 73063, 73192, 73321, 73450, 73579, 73708, 73837, 73966, 74095, 74224, 74353, 74482, 74611, 74740, 74869, 74998, 75127, 75128, 75193, 75194, 75279, 75364, 75449, 75451, 75453, 75455, 75457, 75459, 75512, 75514, 75607, 75709, 75801]]; - $send(self, '_lex_index_offsets=', Opal.to_a($writer)); + $send(self, '_lex_index_offsets=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_indicies"); return self.$private("_lex_indicies", "_lex_indicies="); })(Opal.get_singleton_class(self), $nesting); $writer = [[1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 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, 14, 14, 12, 14, 12, 14, 14, 12, 12, 14, 14, 14, 15, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 14, 14, 14, 14, 14, 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, 12, 14, 12, 12, 13, 14, 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, 12, 12, 12, 14, 12, 13, 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, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 14, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 12, 14, 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, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 12, 12, 12, 12, 12, 12, 18, 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, 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, 12, 12, 12, 12, 12, 13, 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, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 12, 12, 12, 12, 12, 12, 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, 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, 12, 12, 12, 12, 12, 13, 19, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 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, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, 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, 22, 22, 22, 22, 22, 22, 22, 22, 25, 22, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 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, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 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, 22, 22, 22, 22, 22, 22, 22, 22, 25, 22, 19, 27, 27, 27, 19, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 19, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 27, 19, 30, 30, 30, 19, 30, 30, 30, 30, 30, 31, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 19, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 32, 30, 19, 30, 30, 30, 19, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 19, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 32, 30, 19, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 33, 20, 19, 34, 34, 34, 19, 34, 34, 34, 34, 34, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 19, 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, 34, 36, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 34, 34, 34, 34, 34, 34, 38, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 39, 34, 19, 34, 34, 34, 19, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 19, 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, 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, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 39, 34, 40, 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, 41, 19, 41, 19, 19, 42, 42, 42, 19, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 19, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, 42, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 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, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 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, 22, 22, 22, 22, 22, 22, 22, 22, 25, 22, 19, 45, 45, 45, 19, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 19, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 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, 46, 46, 46, 46, 46, 45, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 49, 49, 47, 49, 47, 49, 49, 47, 47, 49, 49, 49, 50, 49, 49, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 49, 49, 49, 49, 49, 49, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 49, 47, 47, 48, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 49, 47, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 47, 47, 47, 47, 47, 47, 47, 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, 47, 47, 47, 47, 49, 47, 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, 47, 47, 47, 47, 47, 49, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 47, 47, 47, 47, 47, 47, 53, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 48, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 47, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 48, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 47, 48, 54, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 55, 54, 57, 57, 57, 54, 57, 57, 57, 57, 57, 58, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 54, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 59, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 60, 57, 54, 57, 57, 57, 54, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 54, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 61, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 60, 57, 54, 62, 62, 62, 54, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 54, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 64, 62, 54, 65, 65, 65, 54, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 54, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 67, 65, 54, 65, 65, 65, 54, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 54, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 67, 65, 54, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 68, 55, 54, 69, 69, 69, 54, 69, 69, 69, 69, 69, 70, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 54, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 71, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 72, 69, 69, 69, 69, 69, 69, 73, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 74, 69, 54, 69, 69, 69, 54, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 54, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 74, 69, 75, 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, 76, 54, 76, 54, 54, 77, 77, 77, 54, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 54, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 79, 77, 54, 57, 57, 57, 54, 57, 57, 57, 57, 57, 58, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 54, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 61, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 60, 57, 54, 80, 80, 80, 54, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 54, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 80, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 84, 84, 82, 84, 82, 84, 84, 82, 82, 84, 84, 84, 85, 84, 84, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 84, 84, 84, 84, 84, 84, 84, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 84, 82, 82, 83, 84, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 84, 82, 83, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 82, 82, 82, 82, 82, 82, 82, 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, 82, 82, 82, 82, 84, 82, 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, 82, 82, 82, 82, 82, 84, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 82, 82, 82, 82, 82, 82, 88, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 83, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 83, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 83, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 83, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 91, 91, 89, 91, 89, 91, 91, 89, 89, 91, 91, 91, 92, 91, 91, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 91, 91, 91, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 91, 89, 89, 90, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 91, 89, 90, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 89, 89, 89, 89, 89, 89, 89, 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, 89, 89, 89, 89, 91, 89, 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, 89, 89, 89, 89, 89, 91, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 89, 89, 89, 89, 89, 89, 95, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 90, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 90, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 89, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 90, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 90, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 97, 97, 98, 97, 98, 97, 97, 98, 98, 97, 97, 97, 99, 97, 97, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 97, 97, 97, 97, 97, 97, 97, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 98, 97, 98, 98, 96, 97, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 98, 98, 98, 97, 98, 96, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 97, 98, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 98, 98, 98, 98, 98, 98, 102, 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, 98, 98, 98, 98, 101, 98, 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, 98, 98, 98, 98, 98, 101, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 98, 98, 98, 98, 98, 98, 98, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 98, 98, 98, 98, 103, 98, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 98, 98, 98, 98, 98, 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, 104, 104, 104, 105, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, 104, 104, 104, 104, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 106, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 111, 108, 108, 108, 108, 110, 108, 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, 108, 108, 108, 108, 109, 108, 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, 108, 108, 108, 108, 108, 109, 111, 108, 108, 112, 113, 108, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 116, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 114, 114, 114, 114, 116, 114, 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, 114, 114, 114, 114, 115, 114, 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, 114, 114, 114, 114, 114, 115, 117, 114, 119, 118, 120, 118, 121, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 123, 118, 123, 123, 123, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 123, 118, 118, 118, 118, 124, 125, 118, 126, 118, 127, 128, 129, 130, 131, 124, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 132, 118, 133, 129, 134, 135, 118, 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, 136, 137, 129, 138, 122, 118, 122, 122, 122, 122, 122, 122, 122, 122, 139, 122, 122, 122, 122, 122, 122, 122, 122, 140, 122, 122, 141, 122, 142, 122, 122, 122, 143, 144, 118, 138, 118, 122, 118, 118, 118, 118, 118, 118, 118, 118, 118, 145, 118, 145, 145, 145, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 145, 118, 118, 118, 118, 146, 147, 118, 148, 118, 149, 150, 151, 152, 153, 146, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 154, 118, 155, 151, 156, 157, 118, 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, 158, 159, 151, 120, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 160, 115, 115, 115, 115, 115, 115, 115, 115, 161, 115, 115, 162, 115, 163, 115, 115, 115, 164, 165, 118, 120, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 166, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 167, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 168, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 169, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 170, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 166, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 171, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 172, 115, 115, 115, 115, 115, 115, 115, 173, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 174, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 175, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 166, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 176, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 166, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 177, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 178, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 170, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 180, 179, 181, 179, 182, 179, 151, 179, 183, 179, 179, 179, 179, 179, 179, 179, 184, 179, 185, 179, 186, 179, 151, 179, 187, 179, 151, 179, 188, 179, 182, 179, 190, 189, 191, 191, 191, 191, 191, 191, 191, 191, 191, 193, 191, 193, 193, 193, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 193, 191, 191, 191, 191, 191, 191, 191, 194, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 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, 191, 195, 191, 191, 192, 191, 192, 192, 192, 196, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 191, 191, 191, 191, 191, 192, 197, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 199, 191, 199, 199, 199, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 199, 191, 191, 191, 191, 191, 191, 191, 200, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 191, 201, 191, 191, 198, 191, 198, 198, 198, 202, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 191, 191, 191, 191, 191, 198, 204, 203, 204, 204, 204, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 204, 203, 203, 203, 203, 203, 203, 203, 205, 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, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 206, 203, 207, 203, 208, 203, 208, 208, 208, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 208, 203, 203, 203, 203, 203, 203, 203, 209, 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, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 210, 203, 211, 212, 214, 213, 215, 213, 216, 213, 217, 213, 218, 213, 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, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220, 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, 220, 220, 220, 220, 220, 220, 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, 220, 220, 220, 220, 220, 219, 221, 211, 222, 223, 222, 222, 222, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 222, 211, 211, 224, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 226, 211, 227, 228, 227, 227, 227, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 227, 211, 211, 229, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 231, 211, 233, 234, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, 232, 232, 235, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 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, 237, 232, 239, 240, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 238, 238, 241, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 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, 238, 243, 238, 239, 244, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 238, 238, 241, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 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, 238, 243, 238, 223, 211, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 247, 245, 247, 245, 247, 247, 245, 245, 247, 247, 247, 248, 247, 247, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 247, 245, 245, 246, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 247, 245, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 245, 245, 245, 245, 245, 245, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 245, 245, 245, 245, 247, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 245, 245, 245, 245, 245, 247, 250, 247, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 250, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 252, 245, 245, 245, 245, 253, 245, 245, 245, 245, 245, 254, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 221, 245, 245, 245, 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, 245, 245, 245, 245, 251, 255, 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, 245, 245, 245, 254, 245, 251, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 258, 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, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 257, 257, 257, 257, 257, 257, 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, 257, 257, 257, 257, 256, 257, 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, 257, 257, 257, 257, 257, 256, 260, 259, 263, 262, 258, 257, 263, 264, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 252, 245, 245, 245, 245, 253, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 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, 245, 245, 245, 245, 251, 255, 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, 245, 245, 245, 245, 245, 251, 266, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 263, 265, 263, 266, 267, 268, 268, 268, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 268, 267, 270, 270, 270, 267, 270, 270, 270, 270, 270, 271, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 267, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 272, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 273, 270, 267, 270, 270, 270, 267, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 267, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 274, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 273, 270, 267, 275, 275, 275, 267, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 267, 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, 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, 277, 275, 267, 278, 278, 278, 267, 278, 278, 278, 278, 278, 279, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 267, 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, 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, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 280, 278, 267, 278, 278, 278, 267, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 267, 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, 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, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 280, 278, 267, 268, 268, 268, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 281, 268, 267, 282, 282, 282, 267, 282, 282, 282, 282, 282, 283, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 267, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 284, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 285, 282, 282, 282, 282, 282, 282, 286, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 287, 282, 267, 282, 282, 282, 267, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 267, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 287, 282, 288, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 289, 267, 289, 267, 267, 290, 290, 290, 267, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 267, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 292, 290, 267, 270, 270, 270, 267, 270, 270, 270, 270, 270, 271, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 267, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 274, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 273, 270, 267, 293, 293, 293, 267, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 267, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 293, 293, 293, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 293, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 296, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 211, 211, 298, 211, 296, 211, 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, 211, 211, 211, 211, 295, 211, 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, 211, 211, 211, 211, 211, 295, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 296, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 245, 245, 298, 245, 296, 245, 295, 295, 295, 295, 295, 295, 299, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 245, 245, 245, 245, 295, 245, 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, 245, 245, 245, 245, 245, 295, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 296, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 245, 245, 298, 245, 296, 245, 295, 295, 295, 295, 295, 295, 295, 295, 300, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 245, 245, 245, 245, 295, 245, 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, 245, 245, 245, 245, 245, 295, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 296, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 245, 245, 298, 245, 296, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 301, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 245, 245, 245, 245, 295, 245, 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, 245, 245, 245, 245, 245, 295, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 296, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 245, 245, 298, 245, 296, 245, 295, 295, 295, 301, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 245, 245, 245, 245, 295, 245, 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, 245, 245, 245, 245, 245, 295, 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, 304, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 305, 302, 302, 302, 302, 304, 302, 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, 302, 302, 302, 302, 303, 302, 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, 302, 302, 302, 302, 302, 303, 305, 302, 302, 306, 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, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 307, 307, 307, 307, 307, 307, 307, 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, 308, 307, 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, 308, 310, 309, 310, 309, 309, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 309, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 309, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 309, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 313, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 313, 317, 316, 318, 316, 319, 316, 320, 316, 322, 321, 323, 321, 324, 321, 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, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 307, 307, 307, 307, 307, 307, 307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 307, 307, 307, 307, 325, 307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 307, 307, 307, 307, 307, 325, 326, 313, 327, 328, 327, 327, 327, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 327, 313, 313, 329, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 330, 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, 331, 313, 332, 333, 332, 332, 332, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 332, 313, 313, 334, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 335, 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, 336, 313, 338, 339, 338, 338, 338, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 338, 337, 337, 340, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 341, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 342, 337, 344, 345, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 347, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 348, 343, 344, 345, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 349, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 348, 343, 344, 350, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 347, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 348, 343, 351, 313, 328, 313, 353, 354, 353, 353, 353, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 353, 352, 352, 355, 352, 352, 356, 352, 352, 352, 352, 352, 352, 352, 357, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 358, 352, 360, 354, 360, 360, 360, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 360, 359, 359, 355, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 358, 359, 363, 362, 365, 364, 366, 361, 367, 361, 368, 352, 370, 369, 369, 369, 370, 369, 369, 369, 369, 371, 372, 371, 371, 371, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 370, 369, 369, 369, 369, 369, 371, 369, 369, 373, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 374, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 375, 369, 369, 376, 369, 371, 377, 371, 371, 371, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 371, 377, 378, 379, 380, 381, 382, 384, 383, 386, 387, 386, 386, 386, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 386, 385, 372, 383, 388, 383, 390, 389, 389, 389, 390, 389, 389, 389, 389, 391, 392, 391, 391, 391, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 390, 389, 389, 389, 389, 389, 391, 389, 389, 393, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 394, 389, 391, 395, 391, 391, 391, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 391, 395, 397, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 398, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 399, 396, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 400, 400, 400, 400, 400, 400, 400, 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, 400, 400, 400, 400, 13, 400, 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, 400, 400, 400, 400, 400, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 401, 401, 401, 401, 401, 401, 401, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 401, 401, 401, 401, 17, 401, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 401, 401, 401, 401, 401, 17, 404, 403, 403, 403, 404, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 404, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 405, 405, 405, 405, 405, 405, 405, 405, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 408, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 409, 403, 403, 410, 403, 411, 412, 414, 414, 414, 414, 414, 414, 414, 414, 413, 415, 415, 415, 415, 415, 415, 415, 415, 413, 413, 416, 416, 42, 42, 42, 416, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 416, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 417, 42, 418, 419, 420, 420, 42, 42, 42, 420, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 420, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 421, 42, 41, 420, 422, 423, 424, 424, 27, 27, 27, 424, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 424, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 425, 27, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 424, 424, 424, 424, 424, 424, 424, 426, 426, 426, 426, 426, 426, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 426, 426, 426, 426, 426, 426, 424, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 427, 427, 427, 427, 427, 427, 427, 428, 428, 428, 428, 428, 428, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 428, 428, 428, 428, 428, 428, 427, 427, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 420, 420, 420, 420, 420, 420, 420, 429, 429, 429, 429, 429, 429, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 429, 429, 429, 429, 429, 429, 420, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 430, 430, 430, 430, 430, 430, 430, 431, 431, 431, 431, 431, 431, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 431, 431, 431, 431, 431, 431, 430, 430, 420, 20, 20, 20, 420, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 420, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 432, 20, 416, 27, 27, 27, 416, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 416, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 27, 416, 433, 433, 433, 416, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 416, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 434, 433, 435, 436, 436, 433, 433, 433, 436, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 436, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 437, 433, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 436, 436, 436, 436, 436, 436, 436, 438, 438, 438, 438, 438, 438, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 438, 438, 438, 438, 438, 438, 436, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 439, 439, 439, 439, 439, 439, 439, 440, 440, 440, 440, 440, 440, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 440, 440, 440, 440, 440, 440, 439, 439, 436, 20, 20, 20, 436, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 436, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 432, 20, 441, 436, 436, 27, 27, 27, 436, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 436, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 27, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 442, 442, 442, 442, 442, 442, 442, 443, 443, 443, 443, 443, 443, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 443, 443, 443, 443, 443, 443, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 444, 442, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 442, 442, 442, 442, 442, 442, 442, 445, 445, 445, 445, 445, 445, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 445, 445, 445, 445, 445, 445, 442, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 442, 442, 442, 442, 442, 442, 442, 446, 446, 446, 446, 446, 446, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 446, 446, 446, 446, 446, 446, 442, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 442, 442, 442, 442, 442, 442, 442, 447, 447, 447, 447, 447, 447, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 447, 447, 447, 447, 447, 447, 442, 448, 451, 450, 450, 450, 451, 450, 450, 450, 450, 452, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 451, 450, 450, 450, 450, 450, 452, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 450, 450, 450, 450, 450, 450, 450, 453, 453, 453, 453, 453, 453, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 453, 453, 453, 453, 453, 453, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 454, 450, 451, 450, 450, 450, 451, 450, 450, 450, 450, 449, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 451, 450, 450, 450, 450, 450, 449, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 450, 450, 450, 450, 450, 450, 450, 455, 455, 455, 455, 455, 455, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 455, 455, 455, 455, 455, 455, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 456, 450, 449, 451, 455, 455, 455, 451, 455, 455, 455, 455, 449, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 451, 455, 455, 455, 455, 455, 449, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 449, 455, 457, 451, 458, 458, 458, 451, 458, 458, 458, 458, 452, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 452, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 449, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 449, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 449, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 458, 458, 458, 458, 458, 458, 458, 455, 455, 455, 455, 455, 455, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 455, 455, 455, 455, 455, 455, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 458, 458, 458, 458, 458, 458, 458, 460, 460, 460, 460, 460, 460, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 460, 460, 460, 460, 460, 460, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 462, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 458, 458, 458, 458, 458, 458, 458, 463, 463, 463, 463, 463, 463, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 463, 463, 463, 463, 463, 463, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 458, 458, 458, 458, 458, 458, 458, 464, 464, 464, 464, 464, 464, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 464, 464, 464, 464, 464, 464, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 458, 458, 458, 458, 458, 458, 458, 465, 465, 465, 465, 465, 465, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 465, 465, 465, 465, 465, 465, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 458, 458, 458, 458, 458, 458, 458, 466, 466, 466, 466, 466, 466, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 466, 466, 466, 466, 466, 466, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 449, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 449, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 449, 458, 468, 469, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 470, 470, 470, 470, 470, 470, 470, 471, 471, 471, 471, 471, 471, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 471, 471, 471, 471, 471, 471, 470, 470, 473, 472, 472, 472, 473, 472, 472, 472, 472, 472, 474, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 473, 472, 472, 472, 472, 472, 472, 472, 472, 475, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 476, 472, 478, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 479, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 480, 477, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 481, 481, 481, 481, 481, 481, 481, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 481, 481, 481, 481, 48, 481, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 481, 481, 481, 481, 481, 48, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 481, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 482, 482, 482, 482, 482, 482, 482, 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, 482, 482, 482, 482, 52, 482, 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, 482, 482, 482, 482, 482, 52, 485, 484, 484, 484, 485, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 485, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 486, 486, 486, 486, 486, 486, 486, 486, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 487, 484, 484, 484, 484, 484, 484, 484, 484, 484, 488, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 489, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 490, 484, 484, 491, 484, 492, 493, 495, 495, 495, 495, 495, 495, 495, 495, 494, 496, 496, 496, 496, 496, 496, 496, 496, 494, 494, 497, 497, 77, 77, 77, 497, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 497, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 498, 77, 499, 500, 501, 501, 77, 77, 77, 501, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 501, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 502, 77, 76, 501, 503, 504, 505, 505, 62, 62, 62, 505, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 505, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 506, 62, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 505, 505, 505, 505, 505, 505, 505, 507, 507, 507, 507, 507, 507, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 507, 507, 507, 507, 507, 507, 505, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 508, 508, 508, 508, 508, 508, 508, 509, 509, 509, 509, 509, 509, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 509, 509, 509, 509, 509, 509, 508, 508, 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, 501, 501, 501, 501, 501, 501, 501, 510, 510, 510, 510, 510, 510, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 510, 510, 510, 510, 510, 510, 501, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 511, 511, 511, 511, 511, 511, 511, 512, 512, 512, 512, 512, 512, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 512, 512, 512, 512, 512, 512, 511, 511, 501, 55, 55, 55, 501, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 501, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 513, 55, 497, 62, 62, 62, 497, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 497, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 64, 62, 497, 514, 514, 514, 497, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 497, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 515, 514, 516, 517, 517, 514, 514, 514, 517, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 517, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 518, 514, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 517, 517, 517, 517, 517, 517, 517, 519, 519, 519, 519, 519, 519, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 519, 519, 519, 519, 519, 519, 517, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 520, 520, 520, 520, 520, 520, 520, 521, 521, 521, 521, 521, 521, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 521, 521, 521, 521, 521, 521, 520, 520, 517, 55, 55, 55, 517, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 517, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 513, 55, 522, 517, 517, 62, 62, 62, 517, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 517, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 64, 62, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 523, 523, 523, 523, 523, 523, 523, 524, 524, 524, 524, 524, 524, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 524, 524, 524, 524, 524, 524, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 525, 523, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 523, 523, 523, 523, 523, 523, 523, 526, 526, 526, 526, 526, 526, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 526, 526, 526, 526, 526, 526, 523, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 523, 523, 523, 523, 523, 523, 523, 527, 527, 527, 527, 527, 527, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 527, 527, 527, 527, 527, 527, 523, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 523, 523, 523, 523, 523, 523, 523, 528, 528, 528, 528, 528, 528, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 528, 528, 528, 528, 528, 528, 523, 529, 532, 531, 531, 531, 532, 531, 531, 531, 531, 533, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 532, 531, 531, 531, 531, 531, 533, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 531, 531, 531, 531, 531, 531, 531, 534, 534, 534, 534, 534, 534, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 534, 534, 534, 534, 534, 534, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 535, 531, 532, 531, 531, 531, 532, 531, 531, 531, 531, 530, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 532, 531, 531, 531, 531, 531, 530, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 531, 531, 531, 531, 531, 531, 531, 536, 536, 536, 536, 536, 536, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 536, 536, 536, 536, 536, 536, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 537, 531, 530, 532, 536, 536, 536, 532, 536, 536, 536, 536, 530, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 532, 536, 536, 536, 536, 536, 530, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 530, 536, 538, 532, 539, 539, 539, 532, 539, 539, 539, 539, 533, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 533, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 530, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 530, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 530, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 539, 539, 539, 539, 539, 539, 539, 536, 536, 536, 536, 536, 536, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 536, 536, 536, 536, 536, 536, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 539, 539, 539, 539, 539, 539, 539, 541, 541, 541, 541, 541, 541, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 541, 541, 541, 541, 541, 541, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 543, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, 539, 539, 539, 539, 539, 539, 539, 544, 544, 544, 544, 544, 544, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 544, 544, 544, 544, 544, 544, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 539, 539, 539, 539, 539, 539, 539, 545, 545, 545, 545, 545, 545, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 545, 545, 545, 545, 545, 545, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 539, 539, 539, 539, 539, 539, 539, 546, 546, 546, 546, 546, 546, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 546, 546, 546, 546, 546, 546, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 539, 539, 539, 539, 539, 539, 539, 547, 547, 547, 547, 547, 547, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 547, 547, 547, 547, 547, 547, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 530, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 530, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 530, 539, 549, 550, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 551, 551, 551, 551, 551, 551, 551, 552, 552, 552, 552, 552, 552, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 552, 552, 552, 552, 552, 552, 551, 551, 554, 553, 553, 553, 554, 553, 553, 553, 553, 555, 556, 555, 555, 555, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 554, 553, 553, 553, 553, 553, 555, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 557, 553, 555, 558, 555, 555, 555, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 555, 558, 559, 560, 560, 560, 559, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 559, 560, 562, 561, 561, 561, 562, 561, 561, 561, 561, 561, 563, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 562, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 564, 561, 565, 566, 566, 566, 565, 566, 566, 566, 566, 566, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 566, 569, 568, 568, 568, 569, 568, 568, 568, 568, 568, 570, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 568, 568, 568, 568, 568, 568, 568, 568, 571, 568, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 574, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 575, 572, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 576, 576, 576, 576, 576, 576, 576, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 576, 576, 576, 576, 83, 576, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 576, 576, 576, 576, 576, 83, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 577, 577, 577, 577, 577, 577, 577, 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, 577, 577, 577, 577, 87, 577, 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, 577, 577, 577, 577, 577, 87, 579, 578, 578, 578, 579, 578, 578, 578, 578, 578, 580, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 578, 582, 581, 581, 581, 582, 581, 581, 581, 581, 583, 584, 583, 583, 583, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 581, 581, 581, 581, 581, 583, 581, 581, 585, 581, 583, 586, 583, 583, 583, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 583, 586, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 589, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 590, 587, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 591, 591, 591, 591, 591, 591, 591, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 591, 591, 591, 591, 90, 591, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 591, 591, 591, 591, 591, 90, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 592, 592, 592, 592, 592, 592, 592, 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, 592, 592, 592, 592, 94, 592, 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, 592, 592, 592, 592, 592, 94, 594, 593, 593, 593, 594, 593, 593, 593, 593, 595, 596, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 594, 593, 593, 593, 593, 593, 595, 593, 595, 597, 595, 595, 595, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 595, 597, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 601, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 602, 98, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 603, 603, 603, 603, 603, 603, 603, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 603, 603, 603, 603, 96, 603, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 603, 603, 603, 603, 603, 96, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 603, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 604, 604, 604, 604, 604, 604, 604, 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, 604, 604, 604, 604, 101, 604, 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, 604, 604, 604, 604, 604, 101, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 605, 605, 605, 605, 605, 605, 605, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 605, 605, 605, 605, 103, 605, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 605, 605, 605, 605, 605, 103, 607, 608, 608, 608, 607, 608, 608, 608, 608, 609, 610, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 608, 608, 608, 608, 608, 609, 611, 608, 612, 613, 614, 615, 608, 608, 608, 616, 617, 608, 617, 608, 618, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 619, 608, 620, 621, 622, 608, 608, 623, 624, 623, 623, 625, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 626, 627, 608, 618, 628, 618, 629, 630, 631, 632, 633, 634, 606, 606, 635, 606, 606, 606, 636, 637, 638, 606, 606, 639, 640, 641, 642, 606, 643, 606, 644, 606, 608, 645, 608, 617, 608, 606, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 647, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 646, 646, 646, 647, 646, 647, 646, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 646, 646, 646, 646, 606, 646, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 646, 646, 646, 646, 646, 606, 609, 648, 609, 609, 609, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 609, 648, 649, 618, 650, 650, 618, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 618, 650, 651, 652, 653, 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 105, 105, 655, 105, 655, 105, 105, 655, 655, 105, 105, 105, 657, 105, 105, 658, 658, 658, 658, 658, 658, 658, 658, 658, 658, 105, 105, 105, 105, 105, 105, 105, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 655, 105, 655, 655, 656, 105, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 655, 655, 655, 105, 655, 656, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 659, 659, 659, 659, 659, 659, 659, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 659, 659, 659, 659, 656, 659, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 659, 659, 659, 659, 659, 656, 658, 658, 658, 658, 658, 658, 658, 658, 658, 658, 659, 660, 650, 618, 650, 618, 650, 618, 650, 662, 661, 618, 663, 650, 618, 650, 664, 618, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 618, 655, 618, 650, 618, 618, 650, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 647, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 646, 646, 646, 647, 646, 647, 646, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 646, 646, 646, 646, 623, 646, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 646, 646, 646, 646, 646, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 666, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 623, 623, 667, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 623, 623, 623, 623, 668, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 669, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 670, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 669, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 664, 655, 610, 655, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 672, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 673, 674, 606, 606, 606, 606, 606, 675, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 676, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 677, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 678, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 679, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 680, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 681, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 682, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 683, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 684, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 685, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 686, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 682, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 687, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 686, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 688, 606, 689, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 690, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 691, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 692, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 693, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 694, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 695, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 696, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 697, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 698, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 699, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 700, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 701, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 691, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 702, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 703, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 647, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 704, 704, 704, 647, 704, 647, 704, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 704, 704, 704, 704, 606, 704, 606, 606, 606, 606, 606, 606, 606, 606, 705, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 704, 704, 704, 704, 704, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 706, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 707, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 708, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 709, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 710, 606, 711, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 712, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 684, 606, 606, 606, 713, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 714, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 715, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 700, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 716, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 638, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 698, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 717, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 718, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 719, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 700, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 720, 606, 606, 606, 721, 606, 606, 606, 606, 606, 722, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 722, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 723, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 724, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 725, 726, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 727, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 700, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 728, 606, 606, 729, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 695, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 730, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 731, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 713, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 732, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 638, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 733, 606, 606, 606, 606, 606, 606, 606, 606, 606, 727, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 695, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 734, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 735, 606, 606, 606, 606, 606, 606, 606, 736, 606, 606, 606, 606, 606, 606, 606, 737, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 713, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 701, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 721, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 738, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 695, 606, 606, 606, 719, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 739, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 740, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 689, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 618, 650, 742, 743, 743, 743, 742, 743, 743, 743, 743, 744, 743, 744, 744, 744, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 742, 743, 743, 743, 743, 743, 744, 743, 743, 745, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 746, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 743, 747, 743, 743, 741, 743, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 743, 743, 743, 743, 743, 741, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 110, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 111, 748, 748, 748, 748, 110, 748, 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, 748, 748, 748, 748, 109, 748, 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, 748, 748, 748, 748, 748, 109, 744, 749, 744, 744, 744, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 744, 749, 750, 751, 752, 753, 754, 748, 755, 748, 756, 758, 759, 759, 759, 758, 759, 759, 759, 759, 760, 761, 760, 760, 760, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 758, 759, 759, 759, 759, 759, 760, 762, 759, 763, 759, 764, 765, 759, 759, 759, 766, 767, 759, 767, 759, 764, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 768, 769, 770, 759, 759, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 772, 773, 759, 764, 757, 764, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 759, 774, 759, 767, 759, 757, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 776, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 775, 775, 775, 775, 775, 776, 775, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 775, 775, 775, 775, 757, 775, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 775, 775, 775, 775, 775, 757, 778, 777, 779, 760, 780, 760, 760, 760, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 760, 780, 781, 764, 782, 782, 764, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 764, 782, 783, 784, 785, 786, 764, 782, 764, 782, 764, 782, 764, 787, 782, 764, 782, 789, 764, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 764, 788, 764, 782, 764, 764, 782, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 776, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 790, 790, 790, 790, 790, 776, 790, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 790, 790, 790, 790, 771, 790, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 790, 790, 790, 790, 790, 771, 789, 788, 761, 788, 764, 782, 792, 791, 791, 791, 792, 791, 791, 791, 791, 793, 794, 793, 793, 793, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 792, 791, 791, 791, 791, 791, 793, 791, 791, 795, 791, 120, 796, 791, 797, 791, 798, 120, 151, 799, 153, 120, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 800, 791, 801, 151, 802, 803, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 151, 804, 151, 120, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 805, 791, 791, 791, 791, 791, 791, 791, 791, 806, 791, 791, 807, 791, 808, 791, 791, 791, 164, 165, 791, 120, 791, 809, 809, 809, 809, 809, 809, 809, 809, 809, 793, 809, 793, 793, 793, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 793, 809, 809, 809, 809, 146, 147, 809, 148, 809, 149, 150, 151, 152, 153, 146, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 154, 809, 155, 151, 156, 157, 809, 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, 158, 159, 151, 120, 115, 809, 115, 115, 115, 115, 115, 115, 115, 115, 160, 115, 115, 115, 115, 115, 115, 115, 115, 161, 115, 115, 162, 115, 163, 115, 115, 115, 164, 165, 809, 120, 809, 115, 810, 811, 811, 811, 810, 811, 811, 811, 811, 151, 812, 151, 151, 151, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 811, 811, 811, 811, 811, 151, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 151, 811, 151, 812, 151, 151, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 114, 114, 114, 114, 120, 114, 114, 114, 114, 114, 114, 114, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 151, 812, 151, 151, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 813, 151, 812, 151, 151, 151, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 151, 814, 814, 814, 814, 814, 814, 814, 814, 814, 815, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 151, 814, 151, 812, 151, 151, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 151, 114, 816, 810, 151, 810, 818, 817, 820, 821, 820, 820, 820, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 820, 819, 822, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 116, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 810, 810, 810, 810, 116, 810, 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, 810, 810, 810, 810, 115, 810, 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, 810, 810, 810, 810, 810, 115, 823, 151, 812, 151, 151, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 120, 810, 824, 825, 826, 827, 828, 829, 151, 812, 151, 151, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 120, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 151, 810, 151, 817, 120, 830, 120, 830, 831, 832, 831, 831, 831, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 831, 819, 833, 830, 834, 834, 834, 834, 834, 834, 834, 834, 834, 123, 834, 123, 123, 123, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 123, 834, 834, 834, 834, 124, 125, 834, 126, 834, 127, 128, 129, 130, 131, 124, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 132, 834, 133, 129, 134, 135, 834, 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, 136, 137, 129, 138, 122, 834, 122, 122, 122, 122, 122, 122, 122, 122, 139, 122, 122, 122, 122, 122, 122, 122, 122, 140, 122, 122, 141, 122, 142, 122, 122, 122, 143, 144, 834, 138, 834, 122, 151, 830, 835, 830, 836, 830, 837, 830, 838, 190, 190, 190, 838, 190, 190, 190, 190, 839, 190, 839, 839, 839, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 838, 190, 190, 190, 190, 190, 839, 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, 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, 190, 840, 190, 190, 192, 190, 192, 192, 192, 196, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 190, 190, 190, 190, 190, 192, 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, 841, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 190, 189, 189, 189, 189, 841, 189, 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, 189, 189, 189, 189, 192, 189, 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, 189, 189, 189, 189, 189, 192, 842, 842, 842, 842, 842, 842, 842, 842, 842, 193, 842, 193, 193, 193, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 193, 842, 842, 842, 842, 842, 842, 842, 194, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 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, 842, 195, 842, 842, 192, 842, 192, 192, 192, 196, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 842, 842, 842, 842, 842, 192, 843, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 841, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 190, 842, 842, 842, 842, 841, 842, 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, 842, 842, 842, 842, 192, 842, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 844, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 842, 842, 842, 842, 842, 192, 197, 842, 846, 845, 845, 845, 846, 845, 845, 845, 845, 847, 845, 847, 847, 847, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 846, 845, 845, 845, 845, 845, 847, 845, 845, 848, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 849, 845, 845, 845, 845, 845, 845, 845, 850, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 851, 845, 847, 852, 847, 847, 847, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 847, 852, 853, 854, 855, 856, 858, 857, 859, 860, 857, 861, 863, 864, 864, 864, 863, 864, 864, 864, 864, 865, 866, 865, 865, 865, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 863, 864, 864, 864, 864, 864, 865, 864, 864, 867, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 864, 868, 864, 864, 862, 864, 862, 862, 862, 862, 862, 862, 862, 862, 869, 862, 862, 862, 862, 862, 862, 862, 862, 870, 862, 862, 871, 862, 872, 862, 862, 862, 864, 864, 864, 864, 864, 862, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 873, 873, 873, 873, 873, 873, 873, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 873, 873, 873, 873, 862, 873, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 873, 873, 873, 873, 873, 862, 865, 874, 865, 865, 865, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 865, 874, 875, 876, 877, 878, 879, 881, 880, 882, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 884, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 885, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 886, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 887, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 888, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 884, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 889, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 890, 862, 862, 862, 862, 862, 862, 862, 891, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 892, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 893, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 884, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 894, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 884, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 895, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 896, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 888, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 898, 221, 221, 221, 898, 221, 221, 221, 221, 899, 900, 899, 899, 899, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 898, 221, 221, 221, 221, 221, 899, 901, 221, 902, 221, 903, 904, 221, 905, 221, 906, 907, 221, 908, 909, 910, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 911, 221, 912, 913, 914, 915, 221, 916, 917, 916, 916, 918, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 919, 920, 221, 921, 922, 221, 923, 924, 925, 926, 927, 928, 897, 897, 929, 897, 897, 897, 930, 931, 932, 897, 897, 933, 934, 935, 936, 897, 937, 897, 938, 897, 939, 940, 221, 921, 221, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 945, 944, 944, 946, 944, 947, 949, 950, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 951, 948, 953, 952, 954, 955, 956, 899, 957, 899, 899, 899, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 899, 957, 959, 958, 961, 962, 961, 961, 961, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 961, 960, 221, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 221, 963, 964, 965, 966, 967, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 969, 969, 969, 969, 969, 969, 969, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 969, 969, 969, 969, 969, 969, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 969, 969, 969, 969, 969, 968, 972, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 221, 971, 973, 975, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 221, 974, 221, 211, 222, 223, 222, 222, 222, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 222, 971, 971, 224, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 971, 971, 971, 221, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 226, 971, 239, 240, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 238, 238, 241, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 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, 238, 243, 238, 222, 223, 222, 222, 222, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 222, 971, 971, 224, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 971, 971, 971, 221, 221, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 226, 971, 977, 963, 979, 978, 981, 980, 963, 982, 982, 982, 963, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 963, 982, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 984, 985, 963, 986, 247, 987, 985, 963, 963, 988, 989, 963, 989, 963, 247, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 990, 963, 991, 992, 993, 963, 994, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 995, 963, 963, 247, 983, 247, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 963, 996, 963, 997, 963, 983, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 999, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 998, 998, 998, 1000, 998, 999, 998, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 998, 998, 998, 998, 983, 998, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 998, 998, 998, 998, 998, 983, 1002, 1001, 1003, 1005, 1006, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1007, 1004, 1009, 1010, 1008, 1011, 1012, 1013, 1014, 247, 998, 998, 1015, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 247, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 998, 998, 998, 998, 998, 998, 998, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 998, 998, 998, 998, 246, 998, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 998, 998, 998, 998, 998, 246, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 998, 1016, 998, 247, 998, 247, 998, 247, 1017, 998, 247, 998, 247, 998, 247, 247, 998, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1018, 1018, 1018, 1018, 1018, 1018, 1021, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1018, 1018, 1018, 1018, 1019, 1018, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1018, 1018, 1018, 1018, 1018, 1019, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1022, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1024, 1024, 1024, 1024, 1025, 1024, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1024, 1024, 1024, 1024, 1024, 1025, 1016, 998, 1015, 998, 1027, 1028, 963, 1029, 262, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 263, 252, 264, 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, 263, 253, 263, 266, 221, 963, 921, 221, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 221, 963, 221, 972, 963, 1033, 1032, 1032, 1032, 1033, 1032, 1032, 1032, 1032, 1034, 1035, 1034, 1034, 1034, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1033, 1032, 1032, 1032, 1032, 1032, 1034, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1032, 1037, 1032, 1032, 1036, 1032, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1032, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1038, 1038, 1038, 1038, 1039, 1038, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1038, 1038, 1038, 1038, 1038, 1039, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1040, 1040, 1040, 1040, 1041, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1040, 1040, 1040, 1040, 1040, 1041, 1044, 1043, 1043, 1043, 1044, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1044, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1046, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1047, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1048, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1049, 1043, 1043, 1050, 1043, 1051, 1052, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1053, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1053, 1053, 1056, 1056, 290, 290, 290, 1056, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1056, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1057, 290, 1058, 1059, 1060, 1060, 290, 290, 290, 1060, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1060, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1061, 290, 289, 1060, 1062, 1063, 1064, 1064, 275, 275, 275, 1064, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 1064, 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, 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, 1065, 275, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1066, 1066, 1066, 1066, 1066, 1066, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1066, 1066, 1066, 1066, 1066, 1066, 1064, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1067, 1067, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1069, 1069, 1069, 1069, 1069, 1069, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1069, 1069, 1069, 1069, 1069, 1069, 1060, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1060, 268, 268, 268, 1060, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1060, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1072, 268, 1056, 275, 275, 275, 1056, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 1056, 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, 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, 277, 275, 1056, 1073, 1073, 1073, 1056, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1056, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1074, 1073, 1075, 1076, 1076, 1073, 1073, 1073, 1076, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1076, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1077, 1073, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1078, 1078, 1078, 1078, 1078, 1078, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1078, 1078, 1078, 1078, 1078, 1078, 1076, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1080, 1080, 1080, 1080, 1080, 1080, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1080, 1080, 1080, 1080, 1080, 1080, 1079, 1079, 1076, 268, 268, 268, 1076, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1076, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1072, 268, 1081, 1076, 1076, 275, 275, 275, 1076, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 1076, 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, 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, 277, 275, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1084, 1082, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1085, 1085, 1085, 1085, 1085, 1085, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1085, 1085, 1085, 1085, 1085, 1085, 1082, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1086, 1086, 1086, 1086, 1086, 1086, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1086, 1086, 1086, 1086, 1086, 1086, 1082, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1087, 1087, 1087, 1087, 1087, 1087, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1087, 1087, 1087, 1087, 1087, 1087, 1082, 1088, 1091, 1090, 1090, 1090, 1091, 1090, 1090, 1090, 1090, 1092, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1091, 1090, 1090, 1090, 1090, 1090, 1092, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1093, 1093, 1093, 1093, 1093, 1093, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1093, 1093, 1093, 1093, 1093, 1093, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1094, 1090, 1091, 1090, 1090, 1090, 1091, 1090, 1090, 1090, 1090, 1089, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1091, 1090, 1090, 1090, 1090, 1090, 1089, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1095, 1095, 1095, 1095, 1095, 1095, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1095, 1095, 1095, 1095, 1095, 1095, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1096, 1090, 1089, 1091, 1095, 1095, 1095, 1091, 1095, 1095, 1095, 1095, 1089, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1091, 1095, 1095, 1095, 1095, 1095, 1089, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1089, 1095, 1097, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1092, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1092, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1089, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1095, 1095, 1095, 1095, 1095, 1095, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1095, 1095, 1095, 1095, 1095, 1095, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1101, 1101, 1101, 1101, 1101, 1101, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1101, 1101, 1101, 1101, 1101, 1101, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1103, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1104, 1104, 1104, 1104, 1104, 1104, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1104, 1104, 1104, 1104, 1104, 1104, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1105, 1105, 1105, 1105, 1105, 1105, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1105, 1105, 1105, 1105, 1105, 1105, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1106, 1106, 1106, 1106, 1106, 1106, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1106, 1106, 1106, 1106, 1106, 1106, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1107, 1107, 1107, 1107, 1107, 1107, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1107, 1107, 1107, 1107, 1107, 1107, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1089, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1110, 1110, 1110, 1110, 1110, 1110, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1110, 1110, 1110, 1110, 1110, 1110, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1111, 1111, 1111, 1111, 1111, 1111, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1111, 1111, 1111, 1111, 1111, 1111, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1112, 1112, 1112, 1112, 1112, 1112, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1112, 1112, 1112, 1112, 1112, 1112, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1113, 1113, 1113, 1113, 1113, 1113, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1113, 1113, 1113, 1113, 1113, 1113, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1114, 1114, 1114, 1114, 1114, 1114, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1114, 1114, 1114, 1114, 1114, 1114, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1115, 1115, 1115, 1115, 1115, 1115, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1115, 1115, 1115, 1115, 1115, 1115, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1116, 1116, 1116, 1116, 1116, 1116, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1116, 1116, 1116, 1116, 1116, 1116, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1117, 1117, 1117, 1117, 1117, 1117, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1117, 1117, 1117, 1117, 1117, 1117, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1118, 1118, 1118, 1118, 1118, 1118, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1118, 1118, 1118, 1118, 1118, 1118, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1119, 1119, 1119, 1119, 1119, 1119, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1119, 1119, 1119, 1119, 1119, 1119, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1120, 1120, 1120, 1120, 1120, 1120, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1120, 1120, 1120, 1120, 1120, 1120, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1121, 1122, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1123, 1123, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 296, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 211, 211, 298, 211, 296, 211, 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, 211, 211, 211, 211, 295, 211, 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, 211, 211, 211, 211, 211, 295, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 296, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 963, 963, 298, 963, 296, 963, 295, 295, 295, 295, 1125, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 963, 963, 963, 963, 295, 963, 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, 963, 963, 963, 963, 963, 295, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 296, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 963, 963, 298, 963, 296, 963, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 1126, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 963, 963, 963, 963, 295, 963, 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, 963, 963, 963, 963, 963, 295, 1127, 1128, 963, 958, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 1129, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 1130, 1131, 897, 897, 897, 897, 897, 1132, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1133, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 1134, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1135, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 1136, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1137, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1138, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 1139, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 1140, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 1141, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 296, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 211, 211, 298, 211, 296, 211, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 211, 211, 211, 211, 897, 211, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 211, 211, 211, 211, 211, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1142, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1143, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 1139, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1144, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1143, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1145, 897, 1146, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1147, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1148, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1149, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1150, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 1151, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1152, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1153, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1154, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1155, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1156, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1157, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1158, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1148, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1159, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1160, 897, 1161, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1162, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1141, 897, 897, 897, 1159, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1163, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1164, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1157, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1165, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 932, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1155, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 1166, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1167, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1168, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1169, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1157, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1170, 897, 897, 897, 1171, 897, 897, 897, 897, 897, 1172, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1172, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1173, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1174, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1175, 1176, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 1177, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1178, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1179, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1182, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1183, 1180, 1180, 1184, 1180, 1182, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1180, 1180, 1180, 1180, 1181, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1180, 1180, 1180, 1180, 1180, 1181, 949, 1185, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 951, 948, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1186, 897, 897, 1187, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1152, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1188, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1189, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1159, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1190, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 932, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 1191, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1192, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1152, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1157, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1193, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1194, 897, 897, 897, 897, 897, 897, 897, 1195, 897, 897, 897, 897, 897, 897, 897, 1196, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1159, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1197, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1198, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1166, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1199, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1166, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 1200, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1152, 897, 897, 897, 1201, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1202, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1166, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1203, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1204, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1146, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 1205, 221, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 1206, 963, 1208, 1207, 1207, 1207, 1208, 1207, 1207, 1207, 1207, 1209, 1210, 1209, 1209, 1209, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208, 1207, 1207, 1207, 1207, 1207, 1209, 1207, 1207, 1211, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1212, 1207, 1209, 1213, 1209, 1209, 1209, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1209, 1213, 1214, 1215, 1216, 1217, 1218, 1220, 1219, 1221, 1223, 1224, 1224, 1224, 1223, 1224, 1224, 1224, 1224, 1225, 1226, 1225, 1225, 1225, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1223, 1224, 1224, 1224, 1224, 1224, 1225, 1224, 1227, 1228, 1224, 1224, 1224, 1227, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1224, 1229, 1224, 1224, 1222, 1224, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1224, 1224, 1224, 1224, 1224, 1222, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 304, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 305, 1230, 1230, 1230, 1230, 304, 1230, 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, 1230, 1230, 1230, 1230, 303, 1230, 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, 1230, 1230, 1230, 1230, 1230, 303, 1225, 1231, 1225, 1225, 1225, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1225, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1230, 1238, 1240, 1241, 1241, 1241, 1240, 1241, 1241, 1241, 1241, 1242, 1243, 1242, 1242, 1242, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1240, 1241, 1241, 1241, 1241, 1241, 1242, 1244, 1245, 1246, 1247, 1248, 1249, 1245, 1250, 1251, 1252, 1248, 1253, 1254, 1255, 1248, 1256, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1265, 1265, 1267, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1268, 1269, 1270, 1248, 1271, 1245, 1272, 1273, 1274, 1275, 1276, 1277, 1239, 1239, 1278, 1239, 1239, 1239, 1279, 1280, 1281, 1239, 1239, 1282, 1283, 1284, 1285, 1239, 1286, 1239, 1287, 1239, 1288, 1289, 1290, 1291, 1241, 1239, 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, 1292, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 313, 313, 313, 313, 313, 1292, 313, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 313, 313, 313, 313, 1239, 313, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 313, 313, 313, 313, 313, 1239, 1294, 1293, 1295, 1242, 1296, 1242, 1242, 1242, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1242, 1296, 1297, 1299, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1299, 1298, 1300, 1301, 1302, 1303, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 308, 308, 1304, 308, 1304, 308, 308, 1304, 1304, 308, 308, 308, 1305, 308, 308, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 308, 308, 308, 308, 308, 308, 308, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 308, 1304, 1304, 325, 308, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 1304, 1304, 308, 1304, 325, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1307, 1307, 1307, 1307, 325, 1307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1307, 1307, 1307, 1307, 1307, 325, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1308, 313, 1248, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1310, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1308, 1309, 1311, 1312, 1248, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1308, 1313, 1308, 1314, 1309, 1316, 1315, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 1315, 1318, 1317, 1319, 1317, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1321, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1322, 1320, 1320, 1320, 1320, 1320, 1321, 1320, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 310, 1320, 1324, 1323, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1326, 1323, 1327, 1328, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1329, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1330, 1323, 1323, 1323, 1323, 1323, 1323, 1331, 1323, 1323, 1326, 1323, 1327, 1328, 1323, 1323, 1323, 1332, 1323, 1323, 1323, 1323, 1323, 1329, 1323, 1323, 1333, 1323, 1323, 1323, 1323, 1323, 1330, 1323, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1335, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1336, 1334, 1334, 1334, 1334, 1334, 1335, 1334, 1334, 1334, 1337, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1338, 1334, 1339, 313, 1339, 313, 313, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 313, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1339, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1341, 1340, 1343, 1342, 1344, 1346, 1345, 1345, 1345, 1347, 1345, 1348, 1349, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1331, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1332, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1333, 1323, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1351, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1332, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1333, 1323, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1354, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1359, 1358, 1360, 1362, 1361, 1361, 1361, 1363, 1361, 1365, 1364, 1366, 1367, 1369, 1369, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1370, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1371, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1372, 1368, 1373, 1373, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1374, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1373, 1373, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1377, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1378, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1379, 1375, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1382, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1383, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1384, 1380, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1386, 1386, 1386, 1386, 1386, 1386, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1387, 1385, 1386, 1386, 1386, 1386, 1386, 1386, 1385, 1385, 1388, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1389, 1385, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1391, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1393, 1392, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1395, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1396, 1392, 1392, 1392, 1392, 1392, 1395, 1392, 1392, 1392, 1397, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1398, 1392, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1400, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1397, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1398, 1392, 1401, 1352, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1403, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1404, 1352, 1352, 1352, 1352, 1352, 1403, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1310, 1317, 1248, 1405, 1309, 1299, 1309, 1406, 1407, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1299, 1317, 1299, 1309, 1299, 1248, 1309, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 1304, 1304, 1304, 1304, 1304, 1408, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 1304, 1304, 1304, 325, 1304, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 1304, 1304, 1304, 1304, 325, 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, 1292, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 313, 313, 313, 313, 1292, 313, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 313, 313, 313, 313, 1265, 313, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 313, 313, 313, 313, 313, 1265, 1410, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1412, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1413, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1414, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1415, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1416, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1415, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1417, 1419, 1418, 1420, 1421, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1423, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1424, 1425, 1239, 1239, 1239, 1239, 1239, 1426, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1427, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1428, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1429, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1430, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1431, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1432, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1433, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1434, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1435, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1436, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1437, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1438, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1439, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1440, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1441, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1437, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1442, 1239, 1443, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1444, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1445, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1446, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1448, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1449, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1450, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1451, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1452, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1453, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1454, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1455, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1456, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1457, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1458, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1459, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1460, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 327, 328, 327, 327, 327, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 327, 1292, 1461, 329, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1461, 1461, 330, 1461, 1461, 1292, 1461, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1461, 331, 1461, 1461, 1239, 1461, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1461, 1461, 1461, 1461, 1461, 1239, 344, 345, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 349, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 348, 343, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1463, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1464, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1465, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1292, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1466, 1466, 1466, 1466, 1466, 1292, 1466, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1466, 1466, 1466, 1466, 1239, 1466, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1467, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1466, 1466, 1466, 1466, 1466, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1468, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1469, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1470, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1471, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1472, 1239, 1473, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1474, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1475, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1476, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1477, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1457, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1478, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1281, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1479, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1480, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1482, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1483, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1484, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1457, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1485, 1239, 1239, 1239, 1486, 1239, 1239, 1239, 1239, 1239, 1487, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1488, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1454, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1489, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1490, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1491, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1492, 1493, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1494, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1495, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1496, 1239, 1239, 1497, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1440, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1498, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1454, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1499, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1500, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1501, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1502, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1503, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1489, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1504, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1505, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1451, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1480, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1506, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1507, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1508, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1509, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1510, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1446, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1511, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1512, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1513, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1514, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1451, 1239, 1239, 1239, 1515, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1516, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1517, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1518, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1519, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1489, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1520, 1308, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1248, 1298, 1521, 1523, 1522, 1523, 1523, 1523, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1523, 1522, 1522, 1524, 1522, 1522, 1525, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 357, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1526, 1522, 353, 354, 353, 353, 353, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 353, 1527, 1527, 355, 1527, 1527, 356, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 357, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 358, 1527, 360, 1528, 360, 360, 360, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 360, 1528, 1528, 355, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 358, 1528, 1530, 1529, 1532, 1531, 363, 362, 368, 1527, 366, 1527, 1534, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1535, 1533, 1534, 1533, 1534, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1537, 1533, 1534, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1538, 1533, 1534, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1539, 1533, 1541, 1539, 0]]; - $send(self, '_lex_indicies=', Opal.to_a($writer)); + $send(self, '_lex_indicies=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_trans_targs"); return self.$private("_lex_trans_targs", "_lex_trans_targs="); })(Opal.get_singleton_class(self), $nesting); $writer = [[186, 2, 3, 4, 192, 6, 7, 8, 9, 10, 186, 186, 195, 198, 195, 12, 199, 200, 14, 195, 207, 208, 211, 212, 224, 221, 213, 214, 215, 19, 216, 217, 218, 226, 228, 229, 233, 234, 235, 230, 25, 18, 209, 210, 27, 258, 259, 261, 263, 261, 30, 264, 265, 32, 261, 272, 273, 276, 277, 289, 286, 278, 279, 280, 37, 281, 282, 283, 291, 293, 294, 298, 299, 300, 295, 43, 36, 274, 275, 45, 323, 324, 331, 333, 331, 48, 334, 335, 50, 337, 340, 337, 52, 341, 342, 54, 348, 347, 0, 56, 349, 350, 58, 351, 352, 352, 352, 352, 465, 61, 62, 63, 465, 465, 494, 65, 66, 494, 494, 498, 498, 70, 65, 71, 496, 497, 499, 500, 498, 494, 501, 502, 504, 67, 68, 505, 506, 69, 498, 72, 73, 78, 85, 508, 509, 71, 496, 497, 499, 500, 498, 494, 501, 502, 504, 67, 68, 505, 506, 69, 72, 73, 78, 85, 508, 509, 507, 74, 75, 76, 77, 79, 80, 83, 81, 82, 84, 86, 87, 494, 89, 90, 91, 93, 96, 94, 95, 97, 99, 525, 525, 525, 526, 101, 528, 102, 529, 103, 526, 101, 528, 102, 529, 563, 104, 563, 105, 106, 104, 563, 105, 563, 563, 563, 109, 110, 111, 112, 574, 563, 563, 563, 115, 116, 117, 563, 120, 115, 116, 117, 563, 120, 118, 118, 116, 117, 584, 119, 118, 118, 116, 117, 584, 119, 116, 563, 601, 563, 122, 602, 608, 126, 617, 618, 131, 132, 126, 127, 616, 127, 616, 563, 128, 129, 130, 619, 133, 563, 633, 634, 637, 638, 650, 647, 639, 640, 641, 138, 642, 643, 644, 652, 654, 655, 659, 660, 661, 656, 144, 137, 635, 636, 146, 697, 698, 148, 565, 107, 567, 150, 151, 700, 802, 153, 154, 155, 802, 810, 810, 810, 158, 832, 831, 810, 834, 836, 810, 163, 164, 165, 840, 810, 167, 168, 851, 820, 873, 171, 172, 173, 177, 178, 171, 172, 173, 177, 178, 174, 174, 172, 173, 175, 176, 174, 174, 172, 173, 175, 176, 921, 172, 810, 990, 179, 992, 181, 185, 993, 183, 990, 180, 990, 182, 992, 182, 992, 184, 992, 990, 186, 186, 187, 188, 189, 191, 193, 194, 186, 186, 186, 190, 186, 190, 186, 1, 186, 186, 186, 5, 195, 195, 196, 195, 197, 201, 195, 195, 11, 13, 195, 195, 195, 195, 202, 203, 204, 15, 21, 26, 236, 28, 195, 195, 195, 205, 206, 195, 16, 195, 195, 195, 17, 195, 195, 195, 20, 219, 195, 220, 222, 195, 223, 225, 227, 22, 195, 195, 23, 231, 195, 232, 24, 195, 237, 241, 238, 239, 240, 195, 195, 242, 243, 246, 248, 257, 244, 245, 195, 247, 249, 251, 250, 195, 252, 253, 254, 255, 256, 195, 195, 195, 260, 261, 261, 261, 262, 266, 261, 29, 31, 261, 261, 261, 261, 267, 268, 269, 33, 39, 44, 301, 46, 261, 261, 261, 270, 271, 261, 34, 261, 261, 261, 35, 261, 261, 261, 38, 284, 261, 285, 287, 261, 288, 290, 292, 40, 261, 261, 41, 296, 261, 297, 42, 261, 302, 306, 303, 304, 305, 261, 261, 307, 308, 311, 313, 322, 309, 310, 261, 312, 314, 316, 315, 261, 317, 318, 319, 320, 321, 261, 261, 261, 325, 326, 326, 327, 326, 328, 326, 326, 326, 329, 329, 329, 330, 329, 329, 329, 331, 331, 331, 332, 331, 47, 49, 331, 331, 331, 336, 336, 336, 337, 337, 338, 337, 339, 337, 337, 51, 53, 337, 337, 337, 343, 343, 344, 343, 343, 345, 346, 345, 55, 57, 347, 347, 347, 353, 352, 352, 354, 355, 356, 357, 359, 362, 363, 364, 365, 352, 366, 367, 369, 371, 372, 373, 377, 379, 380, 381, 397, 402, 409, 414, 421, 428, 431, 432, 436, 430, 440, 448, 452, 454, 459, 461, 464, 352, 352, 352, 352, 352, 352, 358, 352, 358, 352, 360, 59, 361, 352, 60, 352, 352, 368, 370, 352, 374, 375, 376, 372, 378, 352, 382, 383, 392, 395, 384, 385, 386, 387, 388, 389, 390, 391, 353, 393, 394, 396, 398, 401, 399, 400, 403, 406, 404, 405, 407, 408, 410, 412, 411, 413, 415, 416, 352, 417, 418, 419, 420, 352, 422, 425, 423, 424, 426, 427, 429, 433, 434, 435, 437, 439, 438, 441, 442, 443, 445, 444, 446, 447, 449, 450, 451, 453, 455, 456, 457, 458, 460, 462, 463, 466, 465, 465, 467, 468, 470, 471, 465, 465, 465, 469, 465, 469, 64, 472, 465, 474, 473, 473, 477, 478, 479, 480, 473, 482, 483, 484, 485, 487, 489, 490, 491, 492, 493, 473, 475, 473, 476, 473, 473, 473, 473, 473, 481, 473, 481, 486, 473, 488, 473, 494, 494, 495, 510, 511, 497, 513, 514, 501, 515, 516, 517, 518, 519, 521, 522, 523, 524, 494, 494, 494, 494, 494, 494, 498, 503, 494, 494, 494, 494, 494, 494, 494, 494, 494, 512, 494, 512, 494, 494, 494, 494, 520, 494, 88, 92, 98, 525, 527, 530, 100, 525, 525, 526, 531, 531, 532, 533, 535, 537, 538, 531, 531, 534, 531, 534, 531, 536, 531, 531, 531, 540, 539, 539, 541, 542, 543, 545, 547, 548, 553, 560, 539, 539, 539, 539, 544, 539, 544, 539, 546, 539, 539, 540, 549, 550, 551, 552, 554, 555, 558, 556, 557, 559, 561, 562, 564, 563, 572, 573, 575, 576, 578, 579, 580, 581, 583, 585, 586, 589, 590, 615, 621, 622, 623, 700, 701, 702, 703, 704, 582, 706, 723, 728, 735, 740, 742, 748, 751, 752, 756, 750, 760, 771, 775, 778, 786, 790, 793, 794, 563, 104, 105, 563, 107, 566, 563, 563, 568, 570, 571, 563, 569, 563, 563, 563, 563, 563, 108, 563, 563, 563, 563, 563, 577, 563, 577, 563, 563, 113, 563, 114, 563, 563, 582, 563, 587, 563, 588, 563, 563, 563, 591, 600, 563, 121, 603, 604, 605, 563, 606, 123, 609, 610, 124, 613, 614, 563, 592, 594, 563, 593, 563, 563, 595, 598, 599, 563, 596, 597, 563, 563, 563, 563, 563, 563, 607, 563, 601, 611, 612, 563, 611, 563, 601, 611, 125, 620, 563, 563, 563, 624, 563, 563, 563, 625, 627, 563, 626, 563, 626, 563, 628, 629, 630, 134, 140, 145, 662, 147, 563, 563, 563, 631, 632, 563, 135, 563, 563, 563, 136, 563, 563, 563, 139, 645, 563, 646, 648, 563, 649, 651, 653, 141, 563, 563, 142, 657, 563, 658, 143, 563, 663, 667, 664, 665, 666, 563, 563, 668, 669, 672, 683, 696, 670, 671, 563, 673, 674, 675, 677, 676, 563, 678, 679, 680, 681, 682, 684, 691, 685, 686, 687, 688, 689, 690, 692, 693, 694, 695, 563, 563, 563, 699, 149, 152, 563, 705, 707, 708, 718, 721, 709, 710, 711, 712, 713, 714, 715, 716, 717, 719, 720, 722, 724, 727, 725, 726, 729, 732, 730, 731, 733, 734, 736, 738, 737, 739, 741, 743, 745, 744, 746, 747, 749, 717, 753, 754, 755, 757, 759, 758, 761, 762, 763, 768, 764, 765, 766, 563, 564, 565, 107, 767, 570, 769, 770, 772, 773, 774, 776, 777, 779, 780, 781, 784, 782, 783, 785, 787, 788, 789, 791, 792, 563, 582, 795, 795, 796, 797, 798, 800, 795, 795, 795, 799, 795, 799, 795, 801, 795, 803, 802, 802, 804, 805, 802, 806, 808, 802, 802, 802, 802, 807, 802, 807, 809, 802, 811, 810, 810, 814, 815, 816, 810, 817, 819, 822, 823, 824, 825, 826, 810, 827, 828, 833, 861, 865, 810, 866, 868, 870, 810, 871, 872, 874, 878, 880, 881, 883, 884, 902, 907, 914, 922, 929, 936, 941, 942, 946, 940, 951, 961, 967, 970, 979, 983, 987, 988, 989, 822, 812, 810, 813, 810, 810, 810, 810, 810, 810, 818, 810, 818, 810, 156, 821, 810, 810, 810, 810, 810, 810, 810, 810, 810, 829, 810, 830, 810, 810, 157, 159, 810, 160, 842, 853, 856, 835, 857, 858, 843, 847, 849, 810, 835, 160, 837, 839, 161, 810, 837, 810, 838, 810, 810, 162, 841, 810, 810, 844, 846, 810, 844, 845, 847, 849, 846, 810, 848, 810, 810, 850, 852, 810, 166, 810, 810, 810, 854, 846, 847, 849, 854, 855, 810, 844, 846, 847, 849, 810, 844, 846, 847, 849, 810, 859, 846, 847, 849, 859, 860, 810, 160, 861, 835, 862, 847, 849, 863, 846, 160, 863, 835, 864, 867, 869, 810, 169, 170, 810, 810, 875, 876, 877, 872, 879, 810, 810, 882, 810, 810, 810, 885, 886, 895, 900, 887, 888, 889, 890, 891, 892, 893, 894, 811, 896, 897, 898, 899, 811, 901, 903, 906, 904, 905, 811, 811, 908, 911, 909, 910, 912, 913, 811, 915, 917, 916, 918, 919, 920, 810, 810, 923, 811, 924, 810, 925, 926, 927, 928, 812, 930, 933, 931, 932, 934, 935, 937, 938, 939, 811, 943, 944, 945, 947, 949, 950, 948, 811, 952, 953, 954, 957, 955, 956, 958, 959, 960, 962, 964, 963, 965, 966, 968, 969, 971, 972, 974, 977, 973, 975, 976, 978, 980, 981, 982, 984, 985, 986, 810, 810, 990, 991, 995, 996, 997, 990, 990, 990, 994, 990, 990, 999, 998, 1000, 998, 1001, 1002, 1003, 998, 998]]; - $send(self, '_lex_trans_targs=', Opal.to_a($writer)); + $send(self, '_lex_trans_targs=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_trans_actions"); return self.$private("_lex_trans_actions", "_lex_trans_actions="); })(Opal.get_singleton_class(self), $nesting); $writer = [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 0, 0, 0, 0, 6, 0, 7, 0, 8, 0, 0, 7, 0, 0, 0, 0, 8, 0, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, 11, 0, 7, 0, 8, 0, 0, 7, 0, 0, 0, 0, 8, 0, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0, 14, 0, 15, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, 0, 0, 0, 22, 23, 24, 0, 0, 25, 26, 27, 28, 29, 30, 30, 31, 32, 30, 33, 32, 34, 32, 30, 30, 31, 30, 35, 30, 30, 36, 30, 30, 30, 30, 30, 30, 0, 37, 38, 0, 39, 38, 40, 38, 0, 0, 37, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 0, 0, 0, 46, 29, 47, 30, 30, 30, 47, 48, 0, 49, 0, 29, 30, 50, 30, 51, 52, 53, 0, 0, 0, 0, 0, 54, 55, 56, 0, 29, 0, 57, 0, 30, 58, 30, 59, 30, 60, 61, 62, 61, 63, 61, 0, 64, 65, 64, 66, 64, 67, 68, 0, 69, 0, 0, 0, 0, 70, 70, 0, 0, 71, 71, 72, 0, 29, 73, 0, 0, 0, 70, 0, 74, 0, 7, 0, 8, 0, 0, 7, 0, 0, 0, 0, 8, 0, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 75, 76, 0, 0, 0, 77, 78, 79, 80, 0, 7, 7, 81, 82, 82, 83, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 30, 58, 30, 30, 30, 60, 61, 62, 61, 61, 61, 0, 64, 65, 64, 64, 64, 85, 67, 86, 87, 0, 88, 0, 89, 89, 0, 90, 0, 91, 60, 92, 0, 93, 29, 94, 95, 98, 99, 0, 29, 0, 7, 0, 7, 100, 101, 102, 60, 103, 0, 104, 0, 105, 106, 107, 0, 108, 109, 0, 110, 7, 7, 111, 112, 0, 0, 113, 114, 115, 116, 117, 117, 117, 117, 117, 117, 117, 117, 118, 119, 120, 0, 0, 121, 0, 122, 123, 124, 0, 125, 126, 127, 0, 0, 128, 0, 0, 129, 0, 7, 0, 0, 130, 131, 0, 0, 132, 0, 29, 133, 0, 0, 0, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 138, 139, 140, 0, 141, 142, 143, 7, 7, 144, 0, 0, 145, 146, 147, 148, 117, 117, 117, 117, 117, 117, 117, 117, 149, 150, 151, 0, 0, 152, 0, 153, 154, 155, 0, 156, 157, 158, 0, 0, 159, 0, 0, 160, 0, 7, 0, 0, 161, 162, 0, 0, 163, 0, 29, 164, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 169, 170, 171, 0, 172, 173, 0, 174, 0, 175, 176, 177, 178, 179, 180, 0, 181, 182, 183, 184, 185, 186, 7, 187, 0, 0, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 7, 197, 198, 0, 0, 199, 200, 201, 202, 203, 0, 204, 205, 206, 0, 207, 0, 0, 208, 209, 210, 211, 212, 213, 0, 29, 0, 0, 7, 7, 0, 0, 0, 214, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, 220, 221, 60, 222, 0, 223, 0, 0, 0, 224, 0, 225, 226, 0, 0, 227, 0, 0, 0, 228, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 231, 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, 7, 232, 233, 0, 0, 7, 0, 234, 235, 236, 60, 237, 0, 0, 29, 238, 0, 239, 240, 0, 29, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 243, 0, 244, 245, 246, 247, 248, 60, 249, 0, 0, 250, 0, 251, 252, 253, 254, 29, 0, 28, 0, 0, 28, 0, 0, 0, 0, 0, 0, 7, 7, 7, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 264, 265, 266, 267, 268, 269, 270, 60, 271, 0, 272, 273, 274, 275, 276, 277, 0, 0, 0, 278, 7, 7, 0, 279, 280, 281, 282, 283, 0, 0, 0, 0, 0, 284, 285, 60, 286, 0, 287, 29, 288, 289, 290, 291, 292, 293, 0, 29, 0, 0, 0, 0, 0, 0, 294, 295, 296, 297, 60, 298, 0, 299, 29, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 304, 0, 8, 0, 0, 7, 305, 0, 0, 305, 305, 0, 0, 7, 306, 0, 306, 0, 306, 306, 306, 0, 0, 306, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 0, 0, 307, 308, 308, 309, 310, 0, 311, 312, 0, 75, 0, 313, 0, 314, 315, 316, 317, 318, 30, 319, 320, 321, 322, 323, 60, 324, 0, 325, 326, 0, 327, 0, 328, 329, 305, 330, 0, 331, 0, 332, 333, 334, 0, 0, 335, 0, 0, 0, 0, 336, 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 338, 0, 339, 340, 0, 0, 0, 341, 0, 0, 342, 343, 344, 345, 346, 347, 0, 348, 349, 349, 0, 350, 0, 351, 352, 352, 0, 0, 353, 354, 355, 0, 356, 357, 358, 0, 7, 359, 360, 361, 0, 362, 117, 117, 117, 117, 117, 117, 117, 117, 363, 364, 365, 0, 0, 366, 0, 367, 368, 369, 0, 370, 371, 372, 0, 0, 373, 0, 0, 374, 0, 7, 0, 0, 375, 376, 0, 0, 377, 0, 29, 378, 0, 0, 0, 0, 0, 379, 380, 0, 0, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 384, 385, 0, 0, 0, 386, 29, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 75, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 387, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 388, 389, 390, 391, 392, 392, 388, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 393, 394, 395, 396, 0, 29, 0, 0, 397, 398, 399, 60, 400, 0, 401, 29, 402, 7, 403, 404, 0, 29, 405, 0, 0, 406, 407, 408, 409, 60, 410, 0, 29, 411, 412, 413, 414, 0, 29, 0, 415, 0, 7, 416, 0, 0, 0, 0, 417, 0, 0, 418, 418, 0, 419, 0, 0, 0, 420, 7, 421, 421, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, 60, 431, 0, 432, 0, 0, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 442, 0, 443, 444, 0, 0, 445, 446, 447, 0, 0, 448, 0, 0, 447, 449, 449, 450, 451, 0, 452, 453, 0, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 447, 447, 461, 0, 0, 462, 462, 0, 463, 0, 464, 465, 7, 0, 466, 0, 467, 468, 469, 470, 470, 471, 471, 0, 0, 472, 473, 473, 474, 474, 475, 476, 476, 477, 477, 478, 479, 479, 480, 480, 0, 0, 481, 482, 483, 484, 485, 486, 486, 483, 485, 487, 418, 488, 0, 0, 0, 489, 0, 0, 490, 491, 421, 421, 421, 492, 421, 493, 494, 29, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 499, 500, 0, 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 500, 502, 503, 0, 504, 0, 505, 0, 0, 0, 0, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 506, 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, 508, 509, 510, 511, 511, 89, 511, 512, 513, 514, 0, 515, 516, 0, 517, 0, 518, 0, 0, 0, 519, 520]]; - $send(self, '_lex_trans_actions=', Opal.to_a($writer)); + $send(self, '_lex_trans_actions=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_to_state_actions"); return self.$private("_lex_to_state_actions", "_lex_to_state_actions="); })(Opal.get_singleton_class(self), $nesting); $writer = [[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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 96, 0, 96, 0, 0, 0, 0, 96, 96, 0, 0, 0, 0, 0, 96, 0, 96, 0, 96, 0, 0, 0, 0, 96, 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, 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, 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, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 96, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0]]; - $send(self, '_lex_to_state_actions=', Opal.to_a($writer)); + $send(self, '_lex_to_state_actions=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_from_state_actions"); return self.$private("_lex_from_state_actions", "_lex_from_state_actions="); })(Opal.get_singleton_class(self), $nesting); $writer = [[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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 97, 0, 97, 0, 0, 0, 0, 97, 97, 0, 0, 0, 0, 0, 97, 0, 97, 0, 97, 0, 0, 0, 0, 97, 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, 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, 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, 97, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 97, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 97, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0]]; - $send(self, '_lex_from_state_actions=', Opal.to_a($writer)); + $send(self, '_lex_from_state_actions=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_eof_trans"); return self.$private("_lex_eof_trans", "_lex_eof_trans="); })(Opal.get_singleton_class(self), $nesting); $writer = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 48, 48, 48, 48, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 83, 83, 83, 83, 90, 90, 90, 90, 0, 0, 0, 0, 105, 107, 109, 109, 109, 109, 115, 115, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 190, 192, 192, 192, 204, 204, 204, 212, 214, 214, 214, 214, 214, 220, 212, 212, 212, 212, 212, 212, 212, 246, 246, 246, 246, 246, 246, 212, 262, 212, 262, 246, 246, 212, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 212, 246, 246, 246, 246, 303, 303, 303, 308, 310, 310, 310, 314, 314, 317, 317, 317, 317, 322, 322, 322, 308, 314, 314, 314, 314, 314, 314, 314, 314, 314, 353, 360, 362, 362, 362, 362, 353, 0, 378, 379, 380, 382, 384, 386, 384, 384, 0, 396, 397, 401, 401, 402, 403, 412, 413, 414, 414, 414, 417, 417, 419, 420, 421, 421, 421, 423, 424, 425, 425, 425, 428, 428, 421, 431, 431, 421, 417, 417, 436, 437, 437, 437, 440, 440, 437, 437, 437, 443, 443, 443, 443, 449, 450, 450, 450, 450, 458, 450, 450, 450, 450, 463, 450, 450, 450, 450, 450, 450, 469, 470, 471, 471, 0, 478, 482, 482, 483, 484, 493, 494, 495, 495, 495, 498, 498, 500, 501, 502, 502, 502, 504, 505, 506, 506, 506, 509, 509, 502, 512, 512, 502, 498, 498, 517, 518, 518, 518, 521, 521, 518, 518, 518, 524, 524, 524, 524, 530, 531, 531, 531, 531, 539, 531, 531, 531, 531, 544, 531, 531, 531, 531, 531, 531, 550, 551, 552, 552, 0, 559, 560, 0, 566, 0, 573, 577, 577, 578, 0, 0, 587, 588, 592, 592, 593, 0, 598, 0, 601, 0, 604, 604, 605, 606, 0, 647, 649, 650, 651, 652, 654, 656, 660, 660, 651, 651, 651, 651, 662, 651, 651, 656, 651, 651, 647, 666, 666, 666, 666, 666, 666, 656, 656, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 705, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 651, 0, 749, 750, 751, 753, 749, 749, 757, 0, 776, 778, 780, 781, 782, 783, 784, 786, 783, 783, 783, 783, 783, 789, 783, 783, 791, 789, 789, 783, 0, 810, 811, 115, 115, 814, 815, 115, 811, 811, 818, 820, 823, 811, 824, 811, 825, 826, 828, 830, 811, 818, 831, 831, 820, 831, 835, 831, 831, 831, 831, 0, 190, 843, 844, 843, 843, 0, 853, 854, 856, 858, 860, 858, 862, 0, 874, 875, 876, 877, 879, 881, 883, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 0, 942, 945, 948, 949, 953, 955, 956, 957, 958, 959, 961, 964, 965, 967, 969, 972, 974, 975, 212, 972, 977, 972, 964, 979, 981, 964, 964, 999, 1002, 1004, 1005, 1009, 1012, 1013, 1014, 1015, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1019, 1023, 1025, 999, 999, 964, 1030, 1031, 1031, 1031, 964, 964, 964, 1032, 1039, 1039, 1041, 1043, 1052, 1053, 1054, 1054, 1054, 1057, 1057, 1059, 1060, 1061, 1061, 1061, 1063, 1064, 1065, 1065, 1065, 1068, 1068, 1061, 1071, 1071, 1061, 1057, 1057, 1076, 1077, 1077, 1077, 1080, 1080, 1077, 1077, 1077, 1083, 1083, 1083, 1083, 1089, 1090, 1090, 1090, 1090, 1098, 1090, 1090, 1090, 1090, 1104, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1122, 1123, 1124, 1124, 212, 964, 964, 1128, 964, 959, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 212, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 1181, 949, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 1206, 964, 0, 1214, 1215, 1216, 1218, 1220, 1222, 0, 1231, 1232, 1233, 1234, 1236, 1231, 1239, 0, 314, 1294, 1296, 1297, 1298, 1299, 1301, 1303, 1305, 1308, 1308, 314, 1310, 1312, 1313, 1314, 1310, 1316, 1318, 1318, 1321, 1321, 1324, 1335, 314, 1341, 1343, 1345, 1346, 1349, 1350, 1324, 1324, 1353, 1353, 1353, 1359, 1361, 1362, 1365, 1367, 1368, 1369, 1353, 1353, 1376, 1381, 1386, 1353, 1353, 1393, 1393, 1353, 1353, 1318, 1310, 1310, 1318, 1310, 1310, 1305, 314, 1411, 1412, 1412, 1412, 1412, 1412, 1412, 1418, 1305, 1421, 1422, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1462, 1463, 1423, 1423, 1467, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1521, 1299, 1522, 0, 1528, 1529, 1530, 1532, 1528, 1528, 1528, 0, 1537, 1537, 1537, 1537, 1541]]; - $send(self, '_lex_eof_trans=', Opal.to_a($writer)); + $send(self, '_lex_eof_trans=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_start") })(Opal.get_singleton_class(self), $nesting); $writer = [186]; - $send(self, 'lex_start=', Opal.to_a($writer)); + $send(self, 'lex_start=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_error") })(Opal.get_singleton_class(self), $nesting); $writer = [0]; - $send(self, 'lex_error=', Opal.to_a($writer)); + $send(self, 'lex_error=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_interp_words") })(Opal.get_singleton_class(self), $nesting); $writer = [195]; - $send(self, 'lex_en_interp_words=', Opal.to_a($writer)); + $send(self, 'lex_en_interp_words=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_interp_string") })(Opal.get_singleton_class(self), $nesting); $writer = [261]; - $send(self, 'lex_en_interp_string=', Opal.to_a($writer)); + $send(self, 'lex_en_interp_string=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_plain_words") })(Opal.get_singleton_class(self), $nesting); $writer = [326]; - $send(self, 'lex_en_plain_words=', Opal.to_a($writer)); + $send(self, 'lex_en_plain_words=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_plain_string") })(Opal.get_singleton_class(self), $nesting); $writer = [329]; - $send(self, 'lex_en_plain_string=', Opal.to_a($writer)); + $send(self, 'lex_en_plain_string=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_interp_backslash_delimited") })(Opal.get_singleton_class(self), $nesting); $writer = [331]; - $send(self, 'lex_en_interp_backslash_delimited=', Opal.to_a($writer)); + $send(self, 'lex_en_interp_backslash_delimited=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_plain_backslash_delimited") })(Opal.get_singleton_class(self), $nesting); $writer = [336]; - $send(self, 'lex_en_plain_backslash_delimited=', Opal.to_a($writer)); + $send(self, 'lex_en_plain_backslash_delimited=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_interp_backslash_delimited_words") })(Opal.get_singleton_class(self), $nesting); $writer = [337]; - $send(self, 'lex_en_interp_backslash_delimited_words=', Opal.to_a($writer)); + $send(self, 'lex_en_interp_backslash_delimited_words=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_plain_backslash_delimited_words") })(Opal.get_singleton_class(self), $nesting); $writer = [343]; - $send(self, 'lex_en_plain_backslash_delimited_words=', Opal.to_a($writer)); + $send(self, 'lex_en_plain_backslash_delimited_words=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_regexp_modifiers") })(Opal.get_singleton_class(self), $nesting); $writer = [345]; - $send(self, 'lex_en_regexp_modifiers=', Opal.to_a($writer)); + $send(self, 'lex_en_regexp_modifiers=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_variable") })(Opal.get_singleton_class(self), $nesting); $writer = [347]; - $send(self, 'lex_en_expr_variable=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_variable=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_fname") })(Opal.get_singleton_class(self), $nesting); $writer = [352]; - $send(self, 'lex_en_expr_fname=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_fname=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_endfn") })(Opal.get_singleton_class(self), $nesting); $writer = [465]; - $send(self, 'lex_en_expr_endfn=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_endfn=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_dot") })(Opal.get_singleton_class(self), $nesting); $writer = [473]; - $send(self, 'lex_en_expr_dot=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_dot=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_arg") })(Opal.get_singleton_class(self), $nesting); $writer = [494]; - $send(self, 'lex_en_expr_arg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_arg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_cmdarg") })(Opal.get_singleton_class(self), $nesting); $writer = [525]; - $send(self, 'lex_en_expr_cmdarg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_cmdarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_endarg") })(Opal.get_singleton_class(self), $nesting); $writer = [531]; - $send(self, 'lex_en_expr_endarg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_endarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_mid") })(Opal.get_singleton_class(self), $nesting); $writer = [539]; - $send(self, 'lex_en_expr_mid=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_mid=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_beg") })(Opal.get_singleton_class(self), $nesting); $writer = [563]; - $send(self, 'lex_en_expr_beg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_beg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_labelarg") })(Opal.get_singleton_class(self), $nesting); $writer = [795]; - $send(self, 'lex_en_expr_labelarg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_labelarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_value") })(Opal.get_singleton_class(self), $nesting); $writer = [802]; - $send(self, 'lex_en_expr_value=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_value=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_end") })(Opal.get_singleton_class(self), $nesting); $writer = [810]; - $send(self, 'lex_en_expr_end=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_end=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_leading_dot") })(Opal.get_singleton_class(self), $nesting); $writer = [990]; - $send(self, 'lex_en_leading_dot=', Opal.to_a($writer)); + $send(self, 'lex_en_leading_dot=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_line_comment") })(Opal.get_singleton_class(self), $nesting); $writer = [998]; - $send(self, 'lex_en_line_comment=', Opal.to_a($writer)); + $send(self, 'lex_en_line_comment=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_line_begin") })(Opal.get_singleton_class(self), $nesting); $writer = [186]; - $send(self, 'lex_en_line_begin=', Opal.to_a($writer)); + $send(self, 'lex_en_line_begin=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.const_set($nesting[0], 'ESCAPES', $hash("a".$ord(), "\u0007", "b".$ord(), "\b", "e".$ord(), "\u001b", "f".$ord(), "\f", "n".$ord(), "\n", "r".$ord(), "\r", "s".$ord(), " ", "t".$ord(), "\t", "v".$ord(), "\v", "\\".$ord(), "\\").$freeze()); - Opal.const_set($nesting[0], 'REGEXP_META_CHARACTERS', $send($$($nesting, 'Regexp'), 'union', Opal.to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()); + $const_set($nesting[0], 'ESCAPES', $hash("a".$ord(), "\u0007", "b".$ord(), "\b", "e".$ord(), "\u001b", "f".$ord(), "\f", "n".$ord(), "\n", "r".$ord(), "\r", "s".$ord(), " ", "t".$ord(), "\t", "v".$ord(), "\v", "\\".$ord(), "\\").$freeze()); + $const_set($nesting[0], 'REGEXP_META_CHARACTERS', $send($$('Regexp'), 'union', $to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()); self.$attr_reader("source_buffer"); self.$attr_accessor("diagnostics"); self.$attr_accessor("static_env"); @@ -8755,7 +7496,7 @@ Opal.modules["parser/lexer"] = function(Opal) { self.$attr_accessor("tokens", "comments"); self.$attr_reader("paren_nest", "cmdarg_stack", "cond_stack", "lambda_stack"); - Opal.def(self, '$initialize', $Lexer_initialize$1 = function $$initialize(version) { + $def(self, '$initialize', function $$initialize(version) { var self = this; @@ -8765,23 +7506,22 @@ Opal.modules["parser/lexer"] = function(Opal) { self.tokens = nil; self.comments = nil; return self.$reset(); - }, $Lexer_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$reset', $Lexer_reset$2 = function $$reset(reset_state) { + $def(self, '$reset', function $$reset(reset_state) { var self = this; - if (reset_state == null) { - reset_state = true; - }; + if (reset_state == null) reset_state = true;; if ($truthy(reset_state)) { self.cs = self.$class().$lex_en_line_begin(); - self.cond = $$($nesting, 'StackState').$new("cond"); - self.cmdarg = $$($nesting, 'StackState').$new("cmdarg"); + self.cond = $$('StackState').$new("cond"); + self.cmdarg = $$('StackState').$new("cmdarg"); self.cond_stack = []; - self.cmdarg_stack = [];}; + self.cmdarg_stack = []; + }; self.force_utf32 = false; self.source_pts = nil; self.p = 0; @@ -8807,9 +7547,9 @@ Opal.modules["parser/lexer"] = function(Opal) { self.dedent_level = nil; self.command_start = true; return (self.cs_before_block_comment = self.$class().$lex_en_line_begin()); - }, $Lexer_reset$2.$$arity = -1); + }, -1); - Opal.def(self, '$source_buffer=', $Lexer_source_buffer$eq$3 = function(source_buffer) { + $def(self, '$source_buffer=', function $Lexer_source_buffer$eq$1(source_buffer) { var self = this, source = nil; @@ -8817,12 +7557,12 @@ Opal.modules["parser/lexer"] = function(Opal) { if ($truthy(self.source_buffer)) { source = self.source_buffer.$source(); - if (source.$encoding()['$==']($$$($$($nesting, 'Encoding'), 'UTF_8'))) { + if ($eqeq(source.$encoding(), $$$($$('Encoding'), 'UTF_8'))) { self.source_pts = source.$unpack("U*") } else { self.source_pts = source.$unpack("C*") }; - if (self.source_pts['$[]'](0)['$=='](65279)) { + if ($eqeq(self.source_pts['$[]'](0), 65279)) { return (self.p = 1) } else { return nil @@ -8830,69 +7570,70 @@ Opal.modules["parser/lexer"] = function(Opal) { } else { return (self.source_pts = nil) }; - }, $Lexer_source_buffer$eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$encoding', $Lexer_encoding$4 = function $$encoding() { + $def(self, '$encoding', function $$encoding() { var self = this; return self.source_buffer.$source().$encoding() - }, $Lexer_encoding$4.$$arity = 0); - Opal.const_set($nesting[0], 'LEX_STATES', $hash2(["line_begin", "expr_dot", "expr_fname", "expr_value", "expr_beg", "expr_mid", "expr_arg", "expr_cmdarg", "expr_end", "expr_endarg", "expr_endfn", "expr_labelarg", "interp_string", "interp_words", "plain_string", "plain_words"], {"line_begin": self.$lex_en_line_begin(), "expr_dot": self.$lex_en_expr_dot(), "expr_fname": self.$lex_en_expr_fname(), "expr_value": self.$lex_en_expr_value(), "expr_beg": self.$lex_en_expr_beg(), "expr_mid": self.$lex_en_expr_mid(), "expr_arg": self.$lex_en_expr_arg(), "expr_cmdarg": self.$lex_en_expr_cmdarg(), "expr_end": self.$lex_en_expr_end(), "expr_endarg": self.$lex_en_expr_endarg(), "expr_endfn": self.$lex_en_expr_endfn(), "expr_labelarg": self.$lex_en_expr_labelarg(), "interp_string": self.$lex_en_interp_string(), "interp_words": self.$lex_en_interp_words(), "plain_string": self.$lex_en_plain_string(), "plain_words": self.$lex_en_plain_string()})); + }, 0); + $const_set($nesting[0], 'LEX_STATES', $hash2(["line_begin", "expr_dot", "expr_fname", "expr_value", "expr_beg", "expr_mid", "expr_arg", "expr_cmdarg", "expr_end", "expr_endarg", "expr_endfn", "expr_labelarg", "interp_string", "interp_words", "plain_string", "plain_words"], {"line_begin": self.$lex_en_line_begin(), "expr_dot": self.$lex_en_expr_dot(), "expr_fname": self.$lex_en_expr_fname(), "expr_value": self.$lex_en_expr_value(), "expr_beg": self.$lex_en_expr_beg(), "expr_mid": self.$lex_en_expr_mid(), "expr_arg": self.$lex_en_expr_arg(), "expr_cmdarg": self.$lex_en_expr_cmdarg(), "expr_end": self.$lex_en_expr_end(), "expr_endarg": self.$lex_en_expr_endarg(), "expr_endfn": self.$lex_en_expr_endfn(), "expr_labelarg": self.$lex_en_expr_labelarg(), "interp_string": self.$lex_en_interp_string(), "interp_words": self.$lex_en_interp_words(), "plain_string": self.$lex_en_plain_string(), "plain_words": self.$lex_en_plain_string()})); - Opal.def(self, '$state', $Lexer_state$5 = function $$state() { + $def(self, '$state', function $$state() { var self = this; - return $$($nesting, 'LEX_STATES').$invert().$fetch(self.cs, self.cs) - }, $Lexer_state$5.$$arity = 0); + return $$('LEX_STATES').$invert().$fetch(self.cs, self.cs) + }, 0); - Opal.def(self, '$state=', $Lexer_state$eq$6 = function(state) { + $def(self, '$state=', function $Lexer_state$eq$2(state) { var self = this; - return (self.cs = $$($nesting, 'LEX_STATES').$fetch(state)) - }, $Lexer_state$eq$6.$$arity = 1); + return (self.cs = $$('LEX_STATES').$fetch(state)) + }, 1); - Opal.def(self, '$push_cmdarg', $Lexer_push_cmdarg$7 = function $$push_cmdarg() { + $def(self, '$push_cmdarg', function $$push_cmdarg() { var self = this; self.cmdarg_stack.$push(self.cmdarg); - return (self.cmdarg = $$($nesting, 'StackState').$new("" + "cmdarg." + (self.cmdarg_stack.$count()))); - }, $Lexer_push_cmdarg$7.$$arity = 0); + return (self.cmdarg = $$('StackState').$new("cmdarg." + (self.cmdarg_stack.$count()))); + }, 0); - Opal.def(self, '$pop_cmdarg', $Lexer_pop_cmdarg$8 = function $$pop_cmdarg() { + $def(self, '$pop_cmdarg', function $$pop_cmdarg() { var self = this; return (self.cmdarg = self.cmdarg_stack.$pop()) - }, $Lexer_pop_cmdarg$8.$$arity = 0); + }, 0); - Opal.def(self, '$push_cond', $Lexer_push_cond$9 = function $$push_cond() { + $def(self, '$push_cond', function $$push_cond() { var self = this; self.cond_stack.$push(self.cond); - return (self.cond = $$($nesting, 'StackState').$new("" + "cond." + (self.cond_stack.$count()))); - }, $Lexer_push_cond$9.$$arity = 0); + return (self.cond = $$('StackState').$new("cond." + (self.cond_stack.$count()))); + }, 0); - Opal.def(self, '$pop_cond', $Lexer_pop_cond$10 = function $$pop_cond() { + $def(self, '$pop_cond', function $$pop_cond() { var self = this; return (self.cond = self.cond_stack.$pop()) - }, $Lexer_pop_cond$10.$$arity = 0); + }, 0); - Opal.def(self, '$dedent_level', $Lexer_dedent_level$11 = function $$dedent_level() { + $def(self, '$dedent_level', function $$dedent_level() { var $a, self = this, dedent_level = nil; $a = [self.dedent_level, nil], (dedent_level = $a[0]), (self.dedent_level = $a[1]), $a; return dedent_level; - }, $Lexer_dedent_level$11.$$arity = 0); + }, 0); - Opal.def(self, '$advance', $Lexer_advance$12 = function $$advance() { - var $a, $b, $$13, $$14, $$15, $$16, $$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25, $$26, $$27, $$28, $$29, $$30, $$31, $$32, $$33, $$34, $$35, $$36, $$37, $$38, $$39, $$40, $$41, self = this, klass = nil, _lex_trans_keys = nil, _lex_key_spans = nil, _lex_index_offsets = nil, _lex_indicies = nil, _lex_trans_targs = nil, _lex_trans_actions = nil, _lex_to_state_actions = nil, _lex_from_state_actions = nil, _lex_eof_trans = nil, pe = nil, p = nil, eof = nil, cmd_state = nil, testEof = nil, _slen = nil, _trans = nil, _keys = nil, _inds = nil, _acts = nil, _nacts = nil, _goto_level = nil, _resume = nil, _eof_trans = nil, _again = nil, _test_eof = nil, _out = nil, $case = nil, _wide = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, tm = nil, heredoc_e = nil, diag_msg = nil, ident_tok = nil, ident_ts = nil, ident_te = nil, current_literal = nil, $writer = nil, line = nil, $ret_or_4 = nil, string = nil, $ret_or_5 = nil, lookahead = nil, $ret_or_6 = nil, token = nil, message = nil, $ret_or_7 = nil, $ret_or_8 = nil, escaped_char = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil, $ret_or_14 = nil, $ret_or_15 = nil, $ret_or_16 = nil, $ret_or_17 = nil, $ret_or_18 = nil, $ret_or_19 = nil, $ret_or_20 = nil, $ret_or_21 = nil, $ret_or_22 = nil, $ret_or_23 = nil, $ret_or_24 = nil, $ret_or_25 = nil, $ret_or_26 = nil, $ret_or_27 = nil, $ret_or_28 = nil, $ret_or_29 = nil, $ret_or_30 = nil, $ret_or_31 = nil, $ret_or_32 = nil, $ret_or_33 = nil, $ret_or_34 = nil, $ret_or_35 = nil, $ret_or_36 = nil, $ret_or_37 = nil, $ret_or_38 = nil, $ret_or_39 = nil, $ret_or_40 = nil, $ret_or_41 = nil, $ret_or_42 = nil, $ret_or_43 = nil, $ret_or_44 = nil, $ret_or_45 = nil, $ret_or_46 = nil, $ret_or_47 = nil, $ret_or_48 = nil, $ret_or_49 = nil, $ret_or_50 = nil, $ret_or_51 = nil, $ret_or_52 = nil, $ret_or_53 = nil, $ret_or_54 = nil, $ret_or_55 = nil, $ret_or_56 = nil, $ret_or_57 = nil, $ret_or_58 = nil, $ret_or_59 = nil, unknown_options = nil, type = nil, delimiter = nil, $ret_or_60 = nil, escape = nil, ident = nil, $ret_or_61 = nil, $ret_or_62 = nil, $ret_or_63 = nil, followed_by_nl = nil, nl_emitted = nil, dots_te = nil, $ret_or_64 = nil, $ret_or_65 = nil, $ret_or_66 = nil, $ret_or_67 = nil, $ret_or_68 = nil, value = nil, $ret_or_69 = nil, $ret_or_70 = nil, $ret_or_71 = nil, $ret_or_72 = nil, digits = nil, $ret_or_73 = nil, $ret_or_74 = nil, $ret_or_75 = nil, invalid_idx = nil, invalid_s = nil, $ret_or_76 = nil, $ret_or_77 = nil, $ret_or_78 = nil, $ret_or_79 = nil, $ret_or_80 = nil, $ret_or_81 = nil, $ret_or_82 = nil, $ret_or_83 = nil, $ret_or_84 = nil, $ret_or_85 = nil, $ret_or_86 = nil, $ret_or_87 = nil, $ret_or_88 = nil, $ret_or_89 = nil, $ret_or_90 = nil, $ret_or_91 = nil, $ret_or_92 = nil, $ret_or_93 = nil, $ret_or_94 = nil, $ret_or_95 = nil, $ret_or_96 = nil, $ret_or_97 = nil, $ret_or_98 = nil, $ret_or_99 = nil, $ret_or_100 = nil, $ret_or_101 = nil, $ret_or_102 = nil, $ret_or_103 = nil, $ret_or_104 = nil, $ret_or_105 = nil, $ret_or_106 = nil, $ret_or_107 = nil, $ret_or_108 = nil, $ret_or_109 = nil, $ret_or_110 = nil, $ret_or_111 = nil, codepoints = nil, codepoint_s = nil, $ret_or_112 = nil, spaces_p = nil, $ret_or_113 = nil, $ret_or_114 = nil, $ret_or_115 = nil, $ret_or_116 = nil, $ret_or_117 = nil, $ret_or_118 = nil, $ret_or_119 = nil, $ret_or_120 = nil, $ret_or_121 = nil, $ret_or_122 = nil, $ret_or_123 = nil, $ret_or_124 = nil, $ret_or_125 = nil, $ret_or_126 = nil, $ret_or_127 = nil, $ret_or_128 = nil, $ret_or_129 = nil, $ret_or_130 = nil, codepoint = nil, $ret_or_131 = nil, $ret_or_132 = nil, $ret_or_133 = nil, $ret_or_134 = nil, $ret_or_135 = nil, $ret_or_136 = nil, $ret_or_137 = nil, $ret_or_138 = nil, $ret_or_139 = nil, $ret_or_140 = nil, $ret_or_141 = nil, $ret_or_142 = nil, $ret_or_143 = nil, $ret_or_144 = nil, $ret_or_145 = nil, $ret_or_146 = nil, $ret_or_147 = nil, $ret_or_148 = nil, $ret_or_149 = nil, $ret_or_150 = nil, $ret_or_151 = nil, $ret_or_152 = nil, $ret_or_153 = nil, $ret_or_154 = nil, $ret_or_155 = nil, $ret_or_156 = nil, $ret_or_157 = nil, $ret_or_158 = nil, $ret_or_159 = nil, $ret_or_160 = nil, $ret_or_161 = nil, $ret_or_162 = nil, $ret_or_163 = nil, $ret_or_164 = nil, $ret_or_165 = nil, $ret_or_166 = nil, $ret_or_167 = nil, $ret_or_168 = nil, $ret_or_169 = nil, $ret_or_170 = nil, $ret_or_171 = nil, $ret_or_172 = nil, $ret_or_173 = nil, $ret_or_174 = nil, $ret_or_175 = nil, $ret_or_176 = nil, $ret_or_177 = nil, $ret_or_178 = nil, $ret_or_179 = nil, $ret_or_180 = nil, $ret_or_181 = nil, $ret_or_182 = nil, $ret_or_183 = nil, $ret_or_184 = nil, $ret_or_185 = nil, $ret_or_186 = nil, $ret_or_187 = nil, $ret_or_188 = nil, $ret_or_189 = nil, $ret_or_190 = nil, $ret_or_191 = nil, $ret_or_192 = nil, $ret_or_193 = nil, $ret_or_194 = nil, $ret_or_195 = nil, $ret_or_196 = nil, $ret_or_197 = nil, $ret_or_198 = nil, $ret_or_199 = nil, $ret_or_200 = nil, $ret_or_201 = nil, $ret_or_202 = nil, $ret_or_203 = nil, $ret_or_204 = nil, $ret_or_205 = nil, $ret_or_206 = nil, $ret_or_207 = nil, $ret_or_208 = nil, $ret_or_209 = nil, $ret_or_210 = nil, $ret_or_211 = nil, $ret_or_212 = nil, $ret_or_213 = nil, $ret_or_214 = nil, $ret_or_215 = nil, $ret_or_216 = nil, $ret_or_217 = nil, $ret_or_218 = nil, $ret_or_219 = nil, $ret_or_220 = nil, $ret_or_221 = nil, $ret_or_222 = nil, $ret_or_223 = nil, $ret_or_224 = nil, $ret_or_225 = nil, $ret_or_226 = nil, $ret_or_227 = nil, $ret_or_228 = nil, $ret_or_229 = nil, $ret_or_230 = nil, $ret_or_231 = nil, $ret_or_232 = nil, $ret_or_233 = nil, $ret_or_234 = nil, $ret_or_235 = nil, $ret_or_236 = nil, $ret_or_237 = nil, $ret_or_238 = nil, $ret_or_239 = nil, $ret_or_240 = nil, $ret_or_241 = nil, $ret_or_242 = nil, $ret_or_243 = nil, $ret_or_244 = nil, $ret_or_245 = nil, $ret_or_246 = nil, $ret_or_247 = nil, $ret_or_248 = nil, $ret_or_249 = nil, $ret_or_250 = nil, $ret_or_251 = nil, $ret_or_252 = nil, $ret_or_253 = nil, $ret_or_254 = nil, $ret_or_255 = nil, $ret_or_256 = nil, $ret_or_257 = nil, $ret_or_258 = nil, $ret_or_259 = nil, $ret_or_260 = nil, $ret_or_261 = nil, $ret_or_262 = nil, $ret_or_263 = nil, $ret_or_264 = nil, $ret_or_265 = nil, $ret_or_266 = nil, $ret_or_267 = nil, $ret_or_268 = nil, $ret_or_269 = nil, $ret_or_270 = nil, $ret_or_271 = nil, $ret_or_272 = nil, $ret_or_273 = nil, $ret_or_274 = nil, $ret_or_275 = nil, $ret_or_276 = nil, $ret_or_277 = nil, $ret_or_278 = nil, $ret_or_279 = nil, $ret_or_280 = nil, $ret_or_281 = nil, $ret_or_282 = nil, $ret_or_283 = nil, $ret_or_284 = nil, $ret_or_285 = nil, $ret_or_286 = nil, $ret_or_287 = nil, $ret_or_288 = nil, $ret_or_289 = nil, $ret_or_290 = nil, $ret_or_291 = nil, $ret_or_292 = nil, $ret_or_293 = nil, $ret_or_294 = nil, $ret_or_295 = nil, $ret_or_296 = nil, $ret_or_297 = nil, $ret_or_298 = nil, $ret_or_299 = nil, $ret_or_300 = nil, $ret_or_301 = nil, $ret_or_302 = nil, $ret_or_303 = nil, new_herebody_s = nil, indent = nil, $ret_or_304 = nil, dedent_body = nil, $ret_or_305 = nil, $ret_or_306 = nil, $ret_or_307 = nil, $ret_or_308 = nil, $ret_or_309 = nil, $ret_or_310 = nil, $ret_or_311 = nil, $ret_or_312 = nil, $ret_or_313 = nil, $ret_or_314 = nil, $ret_or_315 = nil, $ret_or_316 = nil, $ret_or_317 = nil, $ret_or_318 = nil, $ret_or_319 = nil, $ret_or_320 = nil, $ret_or_321 = nil, $ret_or_322 = nil, $ret_or_323 = nil, $ret_or_324 = nil, $ret_or_325 = nil, $ret_or_326 = nil, $ret_or_327 = nil, $ret_or_328 = nil, $ret_or_329 = nil, $ret_or_330 = nil, $ret_or_331 = nil, $ret_or_332 = nil, $ret_or_333 = nil, $ret_or_334 = nil, $ret_or_335 = nil, $ret_or_336 = nil, $ret_or_337 = nil, $ret_or_338 = nil, $ret_or_339 = nil, $ret_or_340 = nil, $ret_or_341 = nil, $ret_or_342 = nil, $ret_or_343 = nil, $ret_or_344 = nil, $ret_or_345 = nil, $ret_or_346 = nil, $ret_or_347 = nil, $ret_or_348 = nil, $ret_or_349 = nil, $ret_or_350 = nil, $ret_or_351 = nil, $ret_or_352 = nil, $ret_or_353 = nil, $ret_or_354 = nil, $ret_or_355 = nil, $ret_or_356 = nil, $ret_or_357 = nil, $ret_or_358 = nil, $ret_or_359 = nil, $ret_or_360 = nil, $ret_or_361 = nil, $ret_or_362 = nil, $ret_or_363 = nil, $ret_or_364 = nil, $ret_or_365 = nil, $ret_or_366 = nil, $ret_or_367 = nil, $ret_or_368 = nil, $ret_or_369 = nil, $ret_or_370 = nil, $ret_or_371 = nil, $ret_or_372 = nil, $ret_or_373 = nil, $ret_or_374 = nil, $ret_or_375 = nil, $ret_or_376 = nil, $ret_or_377 = nil, $ret_or_378 = nil, $ret_or_379 = nil, $ret_or_380 = nil, $ret_or_381 = nil, $ret_or_382 = nil, $ret_or_383 = nil, $ret_or_384 = nil, $ret_or_385 = nil, $ret_or_386 = nil, $ret_or_387 = nil, $ret_or_388 = nil, $ret_or_389 = nil, $ret_or_390 = nil, $ret_or_391 = nil, $ret_or_392 = nil, $ret_or_393 = nil, $ret_or_394 = nil, $ret_or_395 = nil, $ret_or_396 = nil, $ret_or_397 = nil, $ret_or_398 = nil, $ret_or_399 = nil, $ret_or_400 = nil, $ret_or_401 = nil, $ret_or_402 = nil, $ret_or_403 = nil, $ret_or_404 = nil, $ret_or_405 = nil, $ret_or_406 = nil, $ret_or_407 = nil, $ret_or_408 = nil, $ret_or_409 = nil, $ret_or_410 = nil, $ret_or_411 = nil, $ret_or_412 = nil, $ret_or_413 = nil, $ret_or_414 = nil, $ret_or_415 = nil, $ret_or_416 = nil, $ret_or_417 = nil, $ret_or_418 = nil, $ret_or_419 = nil, $ret_or_420 = nil, $ret_or_421 = nil, $ret_or_422 = nil, $ret_or_423 = nil, $ret_or_424 = nil, $ret_or_425 = nil, $ret_or_426 = nil, $ret_or_427 = nil, $ret_or_428 = nil, $ret_or_429 = nil, $ret_or_430 = nil, $ret_or_431 = nil, $ret_or_432 = nil, $ret_or_433 = nil, $ret_or_434 = nil, $ret_or_435 = nil, $ret_or_436 = nil, $ret_or_437 = nil, $ret_or_438 = nil, $ret_or_439 = nil, $ret_or_440 = nil, $ret_or_441 = nil, $ret_or_442 = nil, $ret_or_443 = nil, $ret_or_444 = nil, $ret_or_445 = nil, $ret_or_446 = nil, $ret_or_447 = nil, $ret_or_448 = nil, $ret_or_449 = nil, $ret_or_450 = nil, $ret_or_451 = nil, $ret_or_452 = nil, $ret_or_453 = nil, $ret_or_454 = nil, $ret_or_455 = nil, $ret_or_456 = nil, $ret_or_457 = nil, $ret_or_458 = nil, $ret_or_459 = nil, $ret_or_460 = nil, $ret_or_461 = nil, $ret_or_462 = nil, $ret_or_463 = nil, $ret_or_464 = nil, $ret_or_465 = nil, $ret_or_466 = nil, $ret_or_467 = nil, $ret_or_468 = nil, $ret_or_469 = nil, $ret_or_470 = nil, $ret_or_471 = nil, $ret_or_472 = nil, $ret_or_473 = nil, $ret_or_474 = nil, $ret_or_475 = nil, $ret_or_476 = nil, $ret_or_477 = nil, $ret_or_478 = nil, $ret_or_479 = nil, $ret_or_480 = nil, $ret_or_481 = nil, $ret_or_482 = nil, $ret_or_483 = nil, $ret_or_484 = nil, $ret_or_485 = nil, $ret_or_486 = nil, $ret_or_487 = nil, $ret_or_488 = nil, $ret_or_489 = nil, $ret_or_490 = nil, $ret_or_491 = nil, $ret_or_492 = nil, $ret_or_493 = nil, $ret_or_494 = nil, $ret_or_495 = nil, $ret_or_496 = nil, $ret_or_497 = nil, $ret_or_498 = nil, $ret_or_499 = nil, $ret_or_500 = nil, $ret_or_501 = nil, $ret_or_502 = nil, $ret_or_503 = nil, $ret_or_504 = nil, $ret_or_505 = nil, $ret_or_506 = nil, $ret_or_507 = nil, $ret_or_508 = nil, $ret_or_509 = nil, $ret_or_510 = nil, $ret_or_511 = nil, $ret_or_512 = nil, $ret_or_513 = nil, $ret_or_514 = nil, $ret_or_515 = nil, $ret_or_516 = nil, $ret_or_517 = nil, $ret_or_518 = nil, $ret_or_519 = nil, $ret_or_520 = nil, $ret_or_521 = nil, $ret_or_522 = nil; + $def(self, '$advance', function $$advance() { + var $a, $b, self = this, klass = nil, _lex_trans_keys = nil, _lex_key_spans = nil, _lex_index_offsets = nil, _lex_indicies = nil, _lex_trans_targs = nil, _lex_trans_actions = nil, _lex_to_state_actions = nil, _lex_from_state_actions = nil, _lex_eof_trans = nil, pe = nil, p = nil, eof = nil, cmd_state = nil, testEof = nil, _slen = nil, _trans = nil, _keys = nil, _inds = nil, _acts = nil, _nacts = nil, _goto_level = nil, _resume = nil, _eof_trans = nil, _again = nil, _test_eof = nil, _out = nil, $ret_or_1 = nil, _wide = nil, tm = nil, heredoc_e = nil, diag_msg = nil, ident_tok = nil, ident_ts = nil, ident_te = nil, current_literal = nil, $writer = nil, line = nil, string = nil, lookahead = nil, token = nil, message = nil, escaped_char = nil, $ret_or_2 = nil, unknown_options = nil, type = nil, delimiter = nil, escape = nil, ident = nil, followed_by_nl = nil, nl_emitted = nil, dots_te = nil, value = nil, digits = nil, invalid_idx = nil, invalid_s = nil, codepoints = nil, codepoint_s = nil, spaces_p = nil, codepoint = nil, new_herebody_s = nil, indent = nil, dedent_body = nil; if ($truthy(self.token_queue['$any?']())) { - return self.token_queue.$shift()}; + return self.token_queue.$shift() + }; klass = self.$class(); _lex_trans_keys = klass.$send("_lex_trans_keys"); _lex_key_spans = klass.$send("_lex_key_spans"); @@ -8909,7 +7650,7 @@ Opal.modules["parser/lexer"] = function(Opal) { self.command_start = false; testEof = false; - $b = nil, $a = Opal.to_ary($b), (_slen = ($a[0] == null ? nil : $a[0])), (_trans = ($a[1] == null ? nil : $a[1])), (_keys = ($a[2] == null ? nil : $a[2])), (_inds = ($a[3] == null ? nil : $a[3])), (_acts = ($a[4] == null ? nil : $a[4])), (_nacts = ($a[5] == null ? nil : $a[5])), $b; + $b = nil, $a = $to_ary($b), (_slen = ($a[0] == null ? nil : $a[0])), (_trans = ($a[1] == null ? nil : $a[1])), (_keys = ($a[2] == null ? nil : $a[2])), (_inds = ($a[3] == null ? nil : $a[3])), (_acts = ($a[4] == null ? nil : $a[4])), (_nacts = ($a[5] == null ? nil : $a[5])), $b; _goto_level = 0; _resume = 10; _eof_trans = 15; @@ -8920,11015 +7661,9462 @@ Opal.modules["parser/lexer"] = function(Opal) { if ($truthy($rb_le(_goto_level, 0))) { - if (p['$=='](pe)) { + if ($eqeq(p, pe)) { _goto_level = _test_eof; - continue;;}; - if (self.cs['$=='](0)) { + continue;; + }; + if ($eqeq(self.cs, 0)) { _goto_level = _out; - continue;;};}; + continue;; + }; + }; if ($truthy($rb_le(_goto_level, _resume))) { - $case = _lex_from_state_actions['$[]'](self.cs); - if ((97)['$===']($case)) { - self.ts = p;}; + if ($eqeqeq(97, ($ret_or_1 = _lex_from_state_actions['$[]'](self.cs)))) { + + self.ts = p; + } else { + nil + }; _keys = self.cs['$<<'](1); _inds = _lex_index_offsets['$[]'](self.cs); _slen = _lex_key_spans['$[]'](self.cs); - _wide = (function() {if ($truthy(($ret_or_1 = self.source_pts['$[]'](p)))) { - return $ret_or_1 - } else { - return 0 - }; return nil; })(); - _trans = (function() {if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $rb_gt(_slen, 0)))) { - return $rb_le(_lex_trans_keys['$[]'](_keys), _wide) - } else { - return $ret_or_3 - }; return nil; })()))) { - return $rb_le(_wide, _lex_trans_keys['$[]']($rb_plus(_keys, 1))) - } else { - return $ret_or_2 - }; return nil; })())) { - return _lex_indicies['$[]']($rb_minus($rb_plus(_inds, _wide), _lex_trans_keys['$[]'](_keys))) - } else { - return _lex_indicies['$[]']($rb_plus(_inds, _slen)) - }; return nil; })();}; + _wide = ($truthy(($ret_or_1 = self.source_pts['$[]'](p))) ? ($ret_or_1) : (0)); + _trans = ((($truthy($rb_gt(_slen, 0)) && ($truthy($rb_le(_lex_trans_keys['$[]'](_keys), _wide)))) && ($truthy($rb_le(_wide, _lex_trans_keys['$[]']($rb_plus(_keys, 1)))))) ? (_lex_indicies['$[]']($rb_minus($rb_plus(_inds, _wide), _lex_trans_keys['$[]'](_keys)))) : (_lex_indicies['$[]']($rb_plus(_inds, _slen)))); + }; if ($truthy($rb_le(_goto_level, _eof_trans))) { self.cs = _lex_trans_targs['$[]'](_trans); - if ($truthy(_lex_trans_actions['$[]'](_trans)['$!='](0))) { - $case = _lex_trans_actions['$[]'](_trans); - if ((29)['$===']($case)) { - self.newline_s = p;} - else if ((117)['$===']($case)) { - self.escape_s = p; - self.escape = nil;} - else if ((30)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};} - else if ((60)['$===']($case)) { - self.sharp_s = $rb_minus(p, 1);} - else if ((64)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());} - else if ((310)['$===']($case)) { - tm = p;} - else if ((37)['$===']($case)) { - tm = p;} - else if ((39)['$===']($case)) { - tm = p;} - else if ((41)['$===']($case)) { - tm = p;} - else if ((71)['$===']($case)) { - heredoc_e = p;} - else if ((349)['$===']($case)) { - tm = $rb_minus(p, 1); - diag_msg = "ivar_name";} - else if ((352)['$===']($case)) { - tm = $rb_minus(p, 2); - diag_msg = "cvar_name";} - else if ((360)['$===']($case)) { - self.escape = nil;} - else if ((392)['$===']($case)) { - tm = p;} - else if ((308)['$===']($case)) { - ident_tok = self.$tok(); - ident_ts = self.ts; - ident_te = self.te;} - else if ((479)['$===']($case)) { - self.num_base = 16; - self.num_digits_s = p;} - else if ((473)['$===']($case)) { - self.num_base = 10; - self.num_digits_s = p;} - else if ((476)['$===']($case)) { - self.num_base = 8; - self.num_digits_s = p;} - else if ((470)['$===']($case)) { - self.num_base = 2; - self.num_digits_s = p;} - else if ((485)['$===']($case)) { - self.num_base = 10; - self.num_digits_s = self.ts;} - else if ((447)['$===']($case)) { - self.num_base = 8; - self.num_digits_s = self.ts;} - else if ((462)['$===']($case)) { - self.num_suffix_s = p;} - else if ((455)['$===']($case)) { - self.num_suffix_s = p;} - else if ((452)['$===']($case)) { - self.num_suffix_s = p;} - else if ((89)['$===']($case)) { - tm = p;} - else if ((7)['$===']($case)) { - self.te = $rb_plus(p, 1);} - else if ((113)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { - - - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((5)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((109)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + if ($neqeq(_lex_trans_actions['$[]'](_trans), 0)) { + if ($eqeqeq(29, ($ret_or_1 = _lex_trans_actions['$[]'](_trans)))) { + + self.newline_s = p; + } else if ($eqeqeq(117, $ret_or_1)) { + + self.escape_s = p; + self.escape = nil; + } else if ($eqeqeq(30, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; if ($truthy(self.herebody_s)) { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_4 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_4 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + p = self.herebody_s; + self.herebody_s = nil; + }; + } else if ($eqeqeq(60, $ret_or_1)) { - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((108)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_5 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_5 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_6 = current_literal['$heredoc?']()['$!']()))) { + self.sharp_s = $rb_minus(p, 1); + } else if ($eqeqeq(64, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_6 - }; return nil; })())) { + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p))); + } else if ($eqeqeq(310, $ret_or_1)) { - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() - }; + tm = p; + } else if ($eqeqeq(37, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((115)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$literal().$extend_string(self.$tok(), self.ts, self.te) - } else { + tm = p; + } else if ($eqeqeq(39, $ret_or_1)) { - message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { - return "cvar_name" - } else { - return "ivar_name" - }; return nil; })(); - self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); - };;} - else if ((114)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((111)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$literal().$extend_space(self.ts, self.te);;} - else if ((112)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_7 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_7 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_8 = current_literal['$heredoc?']()['$!']()))) { + tm = p; + } else if ($eqeqeq(41, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_8 - }; return nil; })())) { + tm = p; + } else if ($eqeqeq(71, $ret_or_1)) { - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() - }; + heredoc_e = p; + } else if ($eqeqeq(349, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((6)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_9 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_9 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_10 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_10 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_11 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_11 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_13 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_12 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_14 = self.escape))) { - return $ret_or_14 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;} - else if ((4)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_15 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_16 = current_literal['$heredoc?']()['$!']()))) { + tm = $rb_minus(p, 1); + diag_msg = "ivar_name"; + } else if ($eqeqeq(352, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_16 - }; return nil; })())) { + tm = $rb_minus(p, 2); + diag_msg = "cvar_name"; + } else if ($eqeqeq(360, $ret_or_1)) { + + self.escape = nil; + } else if ($eqeqeq(392, $ret_or_1)) { + + tm = p; + } else if ($eqeqeq(308, $ret_or_1)) { + + ident_tok = self.$tok(); + ident_ts = self.ts; + ident_te = self.te; + } else if ($eqeqeq(479, $ret_or_1)) { + + self.num_base = 16; + self.num_digits_s = p; + } else if ($eqeqeq(473, $ret_or_1)) { + + self.num_base = 10; + self.num_digits_s = p; + } else if ($eqeqeq(476, $ret_or_1)) { + + self.num_base = 8; + self.num_digits_s = p; + } else if ($eqeqeq(470, $ret_or_1)) { + + self.num_base = 2; + self.num_digits_s = p; + } else if ($eqeqeq(485, $ret_or_1)) { + + self.num_base = 10; + self.num_digits_s = self.ts; + } else if ($eqeqeq(447, $ret_or_1)) { + + self.num_base = 8; + self.num_digits_s = self.ts; + } else if ($eqeqeq(462, $ret_or_1)) { + + self.num_suffix_s = p; + } else if ($eqeqeq(455, $ret_or_1)) { + + self.num_suffix_s = p; + } else if ($eqeqeq(452, $ret_or_1)) { + + self.num_suffix_s = p; + } else if ($eqeqeq(89, $ret_or_1)) { + + tm = p; + } else if ($eqeqeq(7, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + } else if ($eqeqeq(113, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil; }; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 802; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((145)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { + continue;;;; + } else if ($eqeqeq(5, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((10)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((142)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(109, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; - } else { + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(108, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(115, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_17 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_17 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + message = ($truthy(self.$tok()['$start_with?']("\#@@")) ? ("cvar_name") : ("ivar_name")); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };; + } else if ($eqeqeq(114, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal = self.$literal(); current_literal.$flush_string(); - };;} - else if ((141)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_18 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_18 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_19 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_19 - }; return nil; })())) { - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() - }; + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(111, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((147)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$literal().$extend_string(self.$tok(), self.ts, self.te) - } else { + self.te = p; + p = $rb_minus(p, 1); - message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { - return "cvar_name" - } else { - return "ivar_name" - }; return nil; })(); - self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); - };;} - else if ((146)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((144)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_20 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_20 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_21 = current_literal['$heredoc?']()['$!']()))) { + self.$literal().$extend_space(self.ts, self.te);; + } else if ($eqeqeq(112, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_21 - }; return nil; })())) { + self.te = p; + p = $rb_minus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(6, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((11)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_22 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_22 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_23 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_23 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_24 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_24 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_25 = (function() {if ($truthy(($ret_or_26 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_26 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_25 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_27 = self.escape))) { - return $ret_or_27 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;} - else if ((9)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_28 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_28 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_29 = current_literal['$heredoc?']()['$!']()))) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_29 - }; return nil; })())) { + p = $rb_minus(self.te, 1);; - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };; + } else if ($eqeqeq(4, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((173)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + p = $rb_minus(self.te, 1);; + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(145, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_30 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_30 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal = self.$literal(); current_literal.$flush_string(); - };;} - else if ((172)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_31 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_31 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_32 = current_literal['$heredoc?']()['$!']()))) { - - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_32 - }; return nil; })())) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil; }; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 802; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((175)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$literal().$extend_space(self.ts, self.te);;} - else if ((176)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_33 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_33 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_34 = current_literal['$heredoc?']()['$!']()))) { + continue;;;; + } else if ($eqeqeq(10, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_34 - }; return nil; })())) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(142, $ret_or_1)) { - if (token['$[]'](0)['$==']("tLABEL_END")) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - self.cs = self.$pop_literal() + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(141, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((179)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = $rb_plus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(147, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_35 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_35 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + message = ($truthy(self.$tok()['$start_with?']("\#@@")) ? ("cvar_name") : ("ivar_name")); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };; + } else if ($eqeqeq(146, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal = self.$literal(); current_literal.$flush_string(); - };;} - else if ((178)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_36 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_36 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_37 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_37 - }; return nil; })())) { - if (token['$[]'](0)['$==']("tLABEL_END")) { + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(144, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(11, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((181)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_38 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_38 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_39 = current_literal['$heredoc?']()['$!']()))) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_39 - }; return nil; })())) { + p = $rb_minus(self.te, 1);; - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };; + } else if ($eqeqeq(9, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((188)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { + p = $rb_minus(self.te, 1);; - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((13)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((185)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(173, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - self.cs = self.$pop_literal(); + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_40 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_40 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((184)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_41 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_41 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_42 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(172, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_42 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(175, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((190)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$literal().$extend_string(self.$tok(), self.ts, self.te) - } else { + self.te = p; + p = $rb_minus(p, 1); - message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { - return "cvar_name" - } else { - return "ivar_name" - }; return nil; })(); - self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); - };;} - else if ((189)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((187)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_43 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_43 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_44 = current_literal['$heredoc?']()['$!']()))) { + self.$literal().$extend_space(self.ts, self.te);; + } else if ($eqeqeq(176, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_44 - }; return nil; })())) { + self.te = p; + p = $rb_minus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((12)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_45 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_45 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_46 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(179, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_46 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - self.cs = self.$pop_literal() + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(178, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((192)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = $rb_plus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(181, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_47 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_47 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((191)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_48 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_48 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_49 = current_literal['$heredoc?']()['$!']()))) { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(188, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_49 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil; }; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 802; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((199)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { + continue;;;; + } else if ($eqeqeq(13, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((15)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((195)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(185, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; - } else { + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(184, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(190, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_50 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_50 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + message = ($truthy(self.$tok()['$start_with?']("\#@@")) ? ("cvar_name") : ("ivar_name")); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };; + } else if ($eqeqeq(189, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal = self.$literal(); current_literal.$flush_string(); - };;} - else if ((194)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_51 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_51 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_52 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_52 - }; return nil; })())) { - if (token['$[]'](0)['$==']("tLABEL_END")) { + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(187, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(12, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(192, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((201)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$literal().$extend_string(self.$tok(), self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { - return "cvar_name" + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - return "ivar_name" - }; return nil; })(); - self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); - };;} - else if ((200)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((197)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$literal().$extend_space(self.ts, self.te);;} - else if ((198)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_53 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_53 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_54 = current_literal['$heredoc?']()['$!']()))) { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(191, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_54 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(199, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { + + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil; }; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 802; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((14)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_55 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_55 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_56 = current_literal['$heredoc?']()['$!']()))) { + continue;;;; + } else if ($eqeqeq(15, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_56 - }; return nil; })())) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(195, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - self.cs = self.$pop_literal() + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(194, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((203)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = $rb_plus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(201, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + message = ($truthy(self.$tok()['$start_with?']("\#@@")) ? ("cvar_name") : ("ivar_name")); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };; + } else if ($eqeqeq(200, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(197, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$literal().$extend_space(self.ts, self.te);; + } else if ($eqeqeq(198, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_57 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_57 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(14, $ret_or_1)) { - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((202)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_58 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_58 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_59 = current_literal['$heredoc?']()['$!']()))) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_59 - }; return nil; })())) { + p = $rb_minus(self.te, 1);; - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(203, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(202, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((205)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$literal().$extend_space(self.ts, self.te);;} - else if ((206)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tREGEXP_OPT", self.$tok(self.ts, $rb_minus(self.te, 1)), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((207)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - unknown_options = self.$tok().$scan(/[^imxouesn]/); - if ($truthy(unknown_options['$any?']())) { - self.$diagnostic("error", "regexp_options", $hash2(["options"], {"options": unknown_options.$join()}))}; - self.$emit("tREGEXP_OPT"); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((16)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { - self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) - } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { - self.$emit("tBACK_REF") - } else { - self.$emit("tGVAR") - }; - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((208)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { - self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) - } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { - self.$emit("tBACK_REF") - } else { - self.$emit("tGVAR") - }; - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((210)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self.$tok()['$=~'](/^@@[0-9]/))) { - self.$diagnostic("error", "cvar_name", $hash2(["name"], {"name": self.$tok()}))}; - self.$emit("tCVAR"); - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((209)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self.$tok()['$=~'](/^@[0-9]/))) { - self.$diagnostic("error", "ivar_name", $hash2(["name"], {"name": self.$tok()}))}; - self.$emit("tIVAR"); - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((231)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((217)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tIDENTIFIER"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((18)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs = 810; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((214)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((226)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((20)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if ($truthy(self['$version?'](23))) { + self.te = $rb_plus(p, 1); - $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(205, $ret_or_1)) { - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;; - } else { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.ts, 1); + self.$literal().$extend_space(self.ts, self.te);; + } else if ($eqeqeq(206, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tREGEXP_OPT", self.$tok(self.ts, $rb_minus(self.te, 1)), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); self.cs = 810; _goto_level = _again; - continue;;; - };;} - else if ((213)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((212)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((230)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((227)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tCONSTANT"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((229)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tIDENTIFIER"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((224)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs = 810; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((220)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((225)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((218)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((223)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((19)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((17)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((216)['$===']($case)) { - $case = self.act; - if ((43)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((44)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((45)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};} - else if ((22)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - self.cs = 795; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((23)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if ($truthy((function() {if ($truthy(($ret_or_60 = $rb_ge(self.version, 31)))) { - return self.context.$in_argdef() - } else { - return $ret_or_60 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(207, $ret_or_1)) { - self.$emit("tBDOT3", "...".$freeze()); + self.te = p; + p = $rb_minus(p, 1); + + unknown_options = self.$tok().$scan(/[^imxouesn]/); + if ($truthy(unknown_options['$any?']())) { + self.$diagnostic("error", "regexp_options", $hash2(["options"], {"options": unknown_options.$join()})) + }; + self.$emit("tREGEXP_OPT"); self.cs = 810; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(16, $ret_or_1)) { - p = $rb_minus(p, 3); + self.te = $rb_plus(p, 1); - self.cs = 810; - _goto_level = _again; - continue;;; - };;} - else if ((233)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((232)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((235)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((234)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((21)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((241)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((240)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((239)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((251)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((242)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tIDENTIFIER"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((247)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((245)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((250)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((274)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((257)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if (self.$tok(tm, $rb_plus(tm, 1))['$==']("/".$freeze())) { - if ($truthy($rb_lt(self.version, 30))) { - self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) - } else { - self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) - }}; - p = $rb_minus(tm, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((263)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((25)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((265)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((40)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((252)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((253)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((264)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((260)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); - p = $rb_minus(tm, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((262)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((256)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((255)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((273)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((26)['$===']($case)) { - - p = $rb_minus(self.te, 1);;} - else if ((42)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((24)['$===']($case)) { - $case = self.act; - if ((72)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (self.$tok(tm, $rb_plus(tm, 1))['$==']("/".$freeze())) { - if ($truthy($rb_lt(self.version, 30))) { - self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) + if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { + self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) + } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { + self.$emit("tBACK_REF") } else { - self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) - }}; - p = $rb_minus(tm, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;} - else if ((73)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); - p = $rb_minus(tm, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;} - else if ((78)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;} - else { - - p = $rb_minus(self.te, 1);;};} - else if ((44)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 494; - _goto_level = _again; - continue;;;;} - else if ((278)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((279)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 494; - _goto_level = _again; - continue;;;;} - else if ((45)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(self.ts, 1); - - self.cs = 494; - _goto_level = _again; - continue;;;;} - else if ((43)['$===']($case)) { - $case = self.act; - if ((85)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self.cond['$active?']())) { - self.$emit("kDO_COND", "do".$freeze(), $rb_minus(self.te, 2), self.te) - } else { - self.$emit("kDO", "do".$freeze(), $rb_minus(self.te, 2), self.te) - }; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((86)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 494; - _goto_level = _again; - continue;;;};} - else if ((289)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_do(true); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((282)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((283)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((284)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((287)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((293)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((292)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((301)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((295)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((299)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((294)['$===']($case)) { - $case = self.act; - if ((93)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((94)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;};} - else if ((57)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((334)['$===']($case)) { - self.te = $rb_plus(p, 1); - - type = (delimiter = self.$tok()['$[]'](0).$chr()); - p = $rb_minus(p, 1); - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((326)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.source_buffer.$slice(self.ts).$chr(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((55)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((347)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - p = $rb_minus(p, 1); - self.$emit("tSYMBEG", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - - self.cs = 352; - _goto_level = _again; - continue;;;;} - else if ((335)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((346)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), $rb_plus(self.ts, 2))); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((69)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((357)['$===']($case)) { - self.te = $rb_plus(p, 1); - - escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); - self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((356)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((336)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((52)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - if ($truthy(self['$version?'](18))) { + self.$emit("tGVAR") + }; + self.cs = self.$stack_pop(); - ident = self.$tok(self.ts, $rb_minus(self.te, 2)); - self.$emit((function() {if ($truthy(self.source_buffer.$slice(self.ts)['$=~'](/[A-Z]/))) { - return "tCONSTANT" - } else { - return "tIDENTIFIER" - }; return nil; })(), ident, self.ts, $rb_minus(self.te, 2)); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(208, $ret_or_1)) { + + self.te = p; p = $rb_minus(p, 1); - if ($truthy((function() {if ($truthy(($ret_or_61 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](ident) - } else { - return $ret_or_61 - }; return nil; })())) { - self.cs = 810 + + if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { + self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) + } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { + self.$emit("tBACK_REF") } else { - self.cs = self.$arg_or_cmdarg(cmd_state) + self.$emit("tGVAR") }; - } else { + self.cs = self.$stack_pop(); - self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); - self.cs = 795; - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((49)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); - p = $rb_minus(ident_te, 1); - if ($truthy((function() {if ($truthy(($ret_or_62 = (function() {if ($truthy(($ret_or_63 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](ident_tok) - } else { - return $ret_or_63 - }; return nil; })()))) { - return $rb_lt(self.version, 25) - } else { - return $ret_or_62 - }; return nil; })())) { - self.cs = 465 - } else { - self.cs = 525 - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((320)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs_before_block_comment = self.cs; - - self.cs = 186; - _goto_level = _again; - continue;;;;} - else if ((56)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((304)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((330)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((329)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSTAR", "*".$freeze()); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((325)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((354)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((337)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((350)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) - } else { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(210, $ret_or_1)) { - self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((355)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((361)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((327)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((331)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$emit("tBDOT2") - } else { - self.$emit("tDOT2") - }; - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((332)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - followed_by_nl = $rb_minus(self.te, 1)['$=='](self.newline_s); - nl_emitted = false; - dots_te = (function() {if ($truthy(followed_by_nl)) { - return $rb_minus(self.te, 1) - } else { - return self.te - }; return nil; })(); - if ($truthy($rb_ge(self.version, 30))) { - if ($truthy((function() {if ($truthy(($ret_or_64 = self.lambda_stack['$any?']()))) { - return $rb_plus(self.lambda_stack.$last(), 1)['$=='](self.paren_nest) - } else { - return $ret_or_64 - }; return nil; })())) { - self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) - } else { - - self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te); - if ($truthy((function() {if ($truthy(($ret_or_65 = (function() {if ($truthy(($ret_or_66 = $rb_ge(self.version, 31)))) { - return followed_by_nl - } else { - return $ret_or_66 - }; return nil; })()))) { - return self.context.$in_argdef() - } else { - return $ret_or_65 - }; return nil; })())) { - - self.$emit("tNL", $rb_minus(self.te, 1), self.te); - nl_emitted = true;}; - } - } else if ($truthy($rb_ge(self.version, 27))) { - self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te) - } else { - self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) - }; - if ($truthy((function() {if ($truthy(($ret_or_67 = followed_by_nl))) { - return nl_emitted['$!']() - } else { - return $ret_or_67 - }; return nil; })())) { - p = $rb_minus(p, 1)}; - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((307)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_68 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_68 - }; return nil; })())) { + self.te = p; + p = $rb_minus(p, 1); - self.cs = 465; + if ($truthy(self.$tok()['$=~'](/^@@[0-9]/))) { + self.$diagnostic("error", "cvar_name", $hash2(["name"], {"name": self.$tok()})) + }; + self.$emit("tCVAR"); + self.cs = self.$stack_pop(); p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(209, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^@[0-9]/))) { + self.$diagnostic("error", "ivar_name", $hash2(["name"], {"name": self.$tok()})) + }; + self.$emit("tIVAR"); + self.cs = self.$stack_pop(); p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };;} - else if ((317)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((319)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs_before_block_comment = self.cs; - - self.cs = 186; - _goto_level = _again; - continue;;;;} - else if ((322)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((54)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((73)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((74)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - value = (function() {if ($truthy(($ret_or_69 = self.escape))) { - return $ret_or_69 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((48)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_70 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_70 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(231, $ret_or_1)) { + self.te = $rb_plus(p, 1); + + self.$emit_table($$('KEYWORDS_BEGIN')); self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(217, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); + self.te = $rb_plus(p, 1); + + self.$emit("tIDENTIFIER"); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };;} - else if ((53)['$===']($case)) { - - p = $rb_minus(self.te, 1);;} - else if ((68)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((51)['$===']($case)) { - $case = self.act; - if ((99)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((106)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));} - else if ((117)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy($rb_ge(self.version, 27))) { + continue;;;; + } else if ($eqeqeq(18, $ret_or_1)) { - self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 563; + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs = 810; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(214, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(226, $ret_or_1)) { - p = $rb_minus(p, 2); + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + p = $rb_minus(p, 1); self.cs = 810; _goto_level = _again; - continue;;; - };} - else if ((121)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((122)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((123)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((127)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;} - else if ((128)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_71 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_71 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(20, $ret_or_1)) { - self.cs = 465; + self.te = $rb_plus(p, 1); + + if ($truthy(self['$version?'](23))) { + + $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;; + } else { + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; + };; + } else if ($eqeqeq(213, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(212, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(230, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('KEYWORDS_BEGIN')); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };} - else if ((132)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;};} - else if ((395)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((396)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((397)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((401)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((77)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((405)['$===']($case)) { - self.te = $rb_plus(p, 1); - - - self.cs = self.$push_literal(self.$tok(), self.$tok(), self.ts); - _goto_level = _again; - continue;;;;} - else if ((404)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((403)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((407)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((406)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((76)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((440)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tLAMBDA", "->".$freeze(), self.ts, $rb_plus(self.ts, 2)); - self.lambda_stack.$push(self.paren_nest); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((86)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((415)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts, nil, false, false, true); - _goto_level = _again; - continue;;;;} - else if ((79)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((436)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 473; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((489)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((429)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((434)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tOP_ASGN", self.$tok(self.ts, $rb_minus(self.te, 1))); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((420)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tEH", "?".$freeze()); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((417)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((419)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tSEMI", ";".$freeze()); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((494)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$diagnostic("error", "bare_backslash", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); - p = $rb_minus(p, 1);;} - else if ((414)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((413)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((505)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 352; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((503)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((502)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'KEYWORDS')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((444)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("error", "no_dot_digit_literal");;} - else if ((491)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((433)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((441)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 473; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((497)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_72 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_72 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(227, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + self.$emit("tCONSTANT"); self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(229, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tIDENTIFIER"); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };;} - else if ((439)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((435)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((428)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((442)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((426)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((432)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((84)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_73 = (function() {if ($truthy(($ret_or_74 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_74 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_73 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_75 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_75 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(224, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = p; + p = $rb_minus(p, 1); - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((80)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("error", "no_dot_digit_literal");;} - else if ((83)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_minus(self.ts, 1); + self.cs = 810; - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((78)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((81)['$===']($case)) { - $case = self.act; - if ((145)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) - } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) - }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - if (self.$tok()['$==']("{".$freeze())) { - self.paren_nest = $rb_plus(self.paren_nest, 1)}; - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((146)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 352; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((147)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((148)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((149)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((150)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((151)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - if ($truthy((function() {if ($truthy(($ret_or_76 = self['$version?'](18)))) { - return self.$tok()['$==']("not".$freeze()) - } else { - return $ret_or_76 - }; return nil; })())) { - - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((152)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18))) { - - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_77 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_77 - }; return nil; })())) { - } else { - self.cs = self.$arg_or_cmdarg(cmd_state) - }; - } else { - self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((153)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((154)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_78 = (function() {if ($truthy(($ret_or_79 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_79 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_78 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_80 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_80 - }; return nil; })())) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((156)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { - - self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((157)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(220, $ret_or_1)) { - self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + self.te = p; p = $rb_minus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((158)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((160)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((164)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_81 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_81 - }; return nil; })())) { - + self.$emit_table($$('PUNCTUATION')); self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { - - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((165)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { - - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - }; - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((167)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((168)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};} - else if ((516)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - if ($truthy($rb_lt(self.version, 27))) { + continue;;;; + } else if ($eqeqeq(225, $ret_or_1)) { + self.te = p; p = $rb_minus(p, 1); - self.cs = 186; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + p = $rb_minus(p, 1); - self.$emit("tBDOT3"); self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(218, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;} - else if ((95)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((510)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((513)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_lt(self.version, 27))) { - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + self.te = p; p = $rb_minus(p, 1); - self.cs = 186; + } else if ($eqeqeq(223, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};;} - else if ((515)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - if ($truthy($rb_lt(self.version, 27))) { + self.te = p; + p = $rb_minus(p, 1); p = $rb_minus(p, 1); - self.cs = 186; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(19, $ret_or_1)) { - self.$emit("tBDOT2"); - self.cs = 563; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;} - else if ((514)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((512)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((90)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - if ($truthy($rb_lt(self.version, 27))) { + p = $rb_minus(self.te, 1);; - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; + self.$emit_table($$('PUNCTUATION')); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;};;} - else if ((87)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((91)['$===']($case)) { - $case = self.act; - if ((181)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy($rb_lt(self.version, 27))) { + continue;;;; + } else if ($eqeqeq(17, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); p = $rb_minus(p, 1); - self.cs = 186; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};} - else if ((185)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};} - else if ((519)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_comment(self.eq_begin_s, self.te); - - self.cs = self.cs_before_block_comment; - _goto_level = _again; - continue;;;;} - else if ((518)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "embedded_document", nil, self.$range(self.eq_begin_s, $rb_plus(self.eq_begin_s, "=begin".$length())));;} - else if ((106)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.eq_begin_s = self.ts; - - self.cs = 998; - _goto_level = _again; - continue;;;;} - else if ((2)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(pe, 3);;} - else if ((98)['$===']($case)) { - self.te = $rb_plus(p, 1); - - cmd_state = true; - p = $rb_minus(p, 1); - - self.cs = 802; - _goto_level = _again; - continue;;;;} - else if ((99)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((100)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((105)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.eq_begin_s = self.ts; - - self.cs = 998; - _goto_level = _again; - continue;;;;} - else if ((104)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - cmd_state = true; - p = $rb_minus(p, 1); - - self.cs = 802; - _goto_level = _again; - continue;;;;} - else if ((1)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - cmd_state = true; - p = $rb_minus(p, 1); - - self.cs = 802; - _goto_level = _again; - continue;;;;} - else if ((67)['$===']($case)) { - - self.newline_s = p;; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());;} - else if ((110)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(216, $ret_or_1)) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + if ($eqeqeq(43, ($ret_or_2 = self.act))) { + - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS_BEGIN')); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; continue;;; - } else { + } else if ($eqeqeq(44, $ret_or_2)) { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + continue;;; + } else if ($eqeqeq(45, $ret_or_2)) { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_82 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_82 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((143)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + nil }; - } else { + } else if ($eqeqeq(22, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_83 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_83 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((174)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + self.cs = 795; - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(23, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + if (($truthy($rb_ge(self.version, 31)) && ($truthy(self.context.$in_argdef())))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + self.$emit("tBDOT3", "...".$freeze()); + self.cs = 810; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + p = $rb_minus(p, 3); - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_84 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_84 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.cs = 810; + _goto_level = _again; + continue;;; + };; + } else if ($eqeqeq(233, $ret_or_1)) { - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((180)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = $rb_plus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + p = $rb_minus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_85 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_85 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(232, $ret_or_1)) { - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((186)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = $rb_plus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + p = $rb_minus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_86 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_86 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(235, $ret_or_1)) { - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((193)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(234, $ret_or_1)) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_87 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_87 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + p = $rb_minus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((196)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(21, $ret_or_1)) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_88 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_88 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + p = $rb_minus(self.te, 1);; - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((204)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + p = $rb_minus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(241, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_89 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_89 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((275)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((266)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((258)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((358)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); - self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((333)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - followed_by_nl = $rb_minus(self.te, 1)['$=='](self.newline_s); - nl_emitted = false; - dots_te = (function() {if ($truthy(followed_by_nl)) { - return $rb_minus(self.te, 1) - } else { - return self.te - }; return nil; })(); - if ($truthy($rb_ge(self.version, 30))) { - if ($truthy((function() {if ($truthy(($ret_or_90 = self.lambda_stack['$any?']()))) { - return $rb_plus(self.lambda_stack.$last(), 1)['$=='](self.paren_nest) - } else { - return $ret_or_90 - }; return nil; })())) { - self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) - } else { - - self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te); - if ($truthy((function() {if ($truthy(($ret_or_91 = (function() {if ($truthy(($ret_or_92 = $rb_ge(self.version, 31)))) { - return followed_by_nl - } else { - return $ret_or_92 - }; return nil; })()))) { - return self.context.$in_argdef() - } else { - return $ret_or_91 - }; return nil; })())) { - - self.$emit("tNL", $rb_minus(self.te, 1), self.te); - nl_emitted = true;}; - } - } else if ($truthy($rb_ge(self.version, 27))) { - self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te) - } else { - self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) - }; - if ($truthy((function() {if ($truthy(($ret_or_93 = followed_by_nl))) { - return nl_emitted['$!']() - } else { - return $ret_or_93 - }; return nil; })())) { - p = $rb_minus(p, 1)}; - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((321)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs_before_block_comment = self.cs; - - self.cs = 186; - _goto_level = _again; - continue;;;;;} - else if ((443)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - if (self.paren_nest['$=='](0)) { - self.$diagnostic("warning", "triple_dot_at_eol", nil, self.$range(self.ts, $rb_minus(self.te, 1)))}; - self.$emit("tDOT3", "...".$freeze(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((520)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - self.$emit_comment(self.eq_begin_s, self.te); - - self.cs = self.cs_before_block_comment; - _goto_level = _again; - continue;;;;;} - else if ((517)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1);;} - else if ((107)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - self.eq_begin_s = self.ts; - - self.cs = 998; - _goto_level = _again; - continue;;;;;} - else if ((3)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(pe, 3);;;} - else if ((465)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$13 = function(chars){var self = $$13.$$s == null ? this : $$13.$$s; - + self.$emit_table($$('PUNCTUATION')); + self.cs = 494; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(240, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tRATIONAL", self.$Rational(chars));}, $$13.$$s = self, $$13.$$arity = 1, $$13));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_94 = (function() {if ($truthy(($ret_or_95 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_95 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_94 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_96 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_96 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_minus(p, 1); - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((463)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$14 = function(chars){var self = $$14.$$s == null ? this : $$14.$$s; - + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(239, $ret_or_1)) { + self.te = $rb_plus(p, 1); - if (chars == null) { - chars = nil; - }; - return self.$emit("tIMAGINARY", self.$Complex(0, chars));}, $$14.$$s = self, $$14.$$arity = 1, $$14));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_97 = (function() {if ($truthy(($ret_or_98 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_98 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_97 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_99 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_99 - }; return nil; })())) { + p = $rb_minus(p, 1); - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(251, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((468)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$15 = function(chars){var self = $$15.$$s == null ? this : $$15.$$s; - + self.te = p; + p = $rb_minus(p, 1); + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); - if (chars == null) { - chars = nil; - }; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, $$15.$$s = self, $$15.$$arity = 1, $$15));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_100 = (function() {if ($truthy(($ret_or_101 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_101 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_100 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_102 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_102 - }; return nil; })())) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(242, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = p; + p = $rb_minus(p, 1); - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((466)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$16 = function(chars){var self = $$16.$$s == null ? this : $$16.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + self.$emit("tIDENTIFIER"); + self.cs = self.$arg_or_cmdarg(cmd_state); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(247, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); - return (p = $rb_minus(p, 2));}, $$16.$$s = self, $$16.$$arity = 1, $$16));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_103 = (function() {if ($truthy(($ret_or_104 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_104 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_103 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_105 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_105 - }; return nil; })())) { + self.te = p; + p = $rb_minus(p, 1); - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.$emit_table($$('PUNCTUATION')); + self.cs = 494; - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((464)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$17 = function(chars){var self = $$17.$$s == null ? this : $$17.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(245, $ret_or_1)) { + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(250, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); - return (p = $rb_minus(p, 2));}, $$17.$$s = self, $$17.$$arity = 1, $$17));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_106 = (function() {if ($truthy(($ret_or_107 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_107 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_106 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_108 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_108 - }; return nil; })())) { + self.te = p; + p = $rb_minus(p, 1); - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_minus(p, 1); - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((467)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$18 = function(chars){var self = $$18.$$s == null ? this : $$18.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(274, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(257, $ret_or_1)) { - if (chars == null) { - chars = nil; + self.te = $rb_plus(p, 1); + + if ($eqeq(self.$tok(tm, $rb_plus(tm, 1)), "/".$freeze())) { + if ($truthy($rb_lt(self.version, 30))) { + self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) + } else { + self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) + } }; - self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 6)); - return (p = $rb_minus(p, 6));}, $$18.$$s = self, $$18.$$arity = 1, $$18));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_109 = (function() {if ($truthy(($ret_or_110 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_110 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_109 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_111 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_111 - }; return nil; })())) { + p = $rb_minus(tm, 1); - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(263, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((456)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$19 = function(chars){var self = $$19.$$s == null ? this : $$19.$$s; - + self.te = $rb_plus(p, 1); + p = $rb_minus(p, 1); + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; - }; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Float(chars)));}, $$19.$$s = self, $$19.$$arity = 1, $$19));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(25, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((457)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$20 = function(chars){var self = $$20.$$s == null ? this : $$20.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + self.te = $rb_plus(p, 1); + p = $rb_minus(self.ts, 1); - if (chars == null) { - chars = nil; - }; - self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 2)); - return (p = $rb_minus(p, 2));}, $$20.$$s = self, $$20.$$arity = 1, $$20));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(265, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((458)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$21 = function(chars){var self = $$21.$$s == null ? this : $$21.$$s; - + self.te = $rb_plus(p, 1); + p = $rb_minus(tm, 1); - if (chars == null) { - chars = nil; - }; - return self.$emit("tRATIONAL", self.$Rational(chars));}, $$21.$$s = self, $$21.$$arity = 1, $$21));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(40, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((460)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$22 = function(chars){var self = $$22.$$s == null ? this : $$22.$$s; - + self.te = $rb_plus(p, 1); + p = $rb_minus(self.ts, 1); - if (chars == null) { - chars = nil; - }; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, $$22.$$s = self, $$22.$$arity = 1, $$22));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(252, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((459)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$23 = function(chars){var self = $$23.$$s == null ? this : $$23.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + self.te = $rb_plus(p, 1); + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; - }; - self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 6)); - return (p = $rb_minus(p, 6));}, $$23.$$s = self, $$23.$$arity = 1, $$23));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(253, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((137)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - if ($truthy($rb_lt(self.version, 24))) { + self.te = $rb_plus(p, 1); - if ($truthy((function() {if ($truthy(($ret_or_112 = codepoints['$start_with?'](" ")))) { - return $ret_or_112 - } else { - return codepoints['$start_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; - if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; - if ($truthy((function() {if ($truthy(($ret_or_113 = codepoints['$end_with?'](" ")))) { - return $ret_or_113 - } else { - return codepoints['$end_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$24 = function($mlhs_tmp1){var self = $$24.$$s == null ? this : $$24.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; - if (self.escape == null) self.escape = nil; - + p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(264, $ret_or_1)) { - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; - if ($truthy(spaces)) { - return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) - } else { - - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); - - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); - };}, $$24.$$s = self, $$24.$$brk = $brk, $$24.$$arity = 1, $$24.$$has_top_level_mlhs_arg = true, $$24)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_114 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_114 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_115 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_115 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_116 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_116 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_117 = (function() {if ($truthy(($ret_or_118 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_118 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_117 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_119 = self.escape))) { - return $ret_or_119 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((168)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - if ($truthy($rb_lt(self.version, 24))) { - - if ($truthy((function() {if ($truthy(($ret_or_120 = codepoints['$start_with?'](" ")))) { - return $ret_or_120 - } else { - return codepoints['$start_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; - if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; - if ($truthy((function() {if ($truthy(($ret_or_121 = codepoints['$end_with?'](" ")))) { - return $ret_or_121 - } else { - return codepoints['$end_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$25 = function($mlhs_tmp1){var self = $$25.$$s == null ? this : $$25.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; - if (self.escape == null) self.escape = nil; - + self.te = p; + p = $rb_minus(p, 1); + p = $rb_minus(p, 1); - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; - if ($truthy(spaces)) { - return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) - } else { - - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); - - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); - };}, $$25.$$s = self, $$25.$$brk = $brk, $$25.$$arity = 1, $$25.$$has_top_level_mlhs_arg = true, $$25)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_122 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_122 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_123 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_123 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_124 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_124 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_125 = (function() {if ($truthy(($ret_or_126 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_126 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_125 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_127 = self.escape))) { - return $ret_or_127 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((382)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - if ($truthy($rb_lt(self.version, 24))) { - - if ($truthy((function() {if ($truthy(($ret_or_128 = codepoints['$start_with?'](" ")))) { - return $ret_or_128 - } else { - return codepoints['$start_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; - if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; - if ($truthy((function() {if ($truthy(($ret_or_129 = codepoints['$end_with?'](" ")))) { - return $ret_or_129 - } else { - return codepoints['$end_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$26 = function($mlhs_tmp1){var self = $$26.$$s == null ? this : $$26.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; - if (self.escape == null) self.escape = nil; - + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(260, $ret_or_1)) { + self.te = p; + p = $rb_minus(p, 1); - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; - if ($truthy(spaces)) { - return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) - } else { - - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); - - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); - };}, $$26.$$s = self, $$26.$$brk = $brk, $$26.$$arity = 1, $$26.$$has_top_level_mlhs_arg = true, $$26)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_130 = self.escape))) { - return $ret_or_130 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((118)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_131 = $rb_ge(self.version, 30)))) { + self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); + p = $rb_minus(tm, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(262, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(256, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(($ret_or_132 = codepoint['$=='](117)))) { - return $ret_or_132 + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(255, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(273, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(26, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + } else if ($eqeqeq(42, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(24, $ret_or_1)) { + + if ($eqeqeq(72, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(self.$tok(tm, $rb_plus(tm, 1)), "/".$freeze())) { + if ($truthy($rb_lt(self.version, 30))) { + self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) + } else { + self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) + } + }; + p = $rb_minus(tm, 1); + + self.cs = 563; + _goto_level = _again; + continue;;; + } else if ($eqeqeq(73, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); + p = $rb_minus(tm, 1); + + self.cs = 563; + _goto_level = _again; + continue;;; + } else if ($eqeqeq(78, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; } else { - return codepoint['$=='](85) + + + p = $rb_minus(self.te, 1);; }; - } else { - return $ret_or_131 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_133 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_133 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_134 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_134 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_135 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_135 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_136 = (function() {if ($truthy(($ret_or_137 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_137 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_136 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_138 = self.escape))) { - return $ret_or_138 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((149)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_139 = $rb_ge(self.version, 30)))) { + } else if ($eqeqeq(44, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 494; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(278, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(279, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 494; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(45, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; - if ($truthy(($ret_or_140 = codepoint['$=='](117)))) { - return $ret_or_140 + p = $rb_minus(self.ts, 1); + + self.cs = 494; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(43, $ret_or_1)) { + + if ($eqeqeq(85, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self.cond['$active?']())) { + self.$emit("kDO_COND", "do".$freeze(), $rb_minus(self.te, 2), self.te) + } else { + self.$emit("kDO", "do".$freeze(), $rb_minus(self.te, 2), self.te) + }; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(86, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 494; + _goto_level = _again; + continue;;; } else { - return codepoint['$=='](85) + nil }; - } else { - return $ret_or_139 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_141 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_141 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_142 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_142 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_143 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_143 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_144 = (function() {if ($truthy(($ret_or_145 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_145 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_144 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_146 = self.escape))) { - return $ret_or_146 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((363)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_147 = $rb_ge(self.version, 30)))) { + } else if ($eqeqeq(289, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_do(true); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(282, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(283, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(284, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(287, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(293, $ret_or_1)) { - if ($truthy(($ret_or_148 = codepoint['$=='](117)))) { - return $ret_or_148 + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(292, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(301, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(295, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(299, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(294, $ret_or_1)) { + + if ($eqeqeq(93, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(94, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 563; + _goto_level = _again; + continue;;; } else { - return codepoint['$=='](85) + nil }; - } else { - return $ret_or_147 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_149 = self.escape))) { - return $ret_or_149 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((121)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_escape");; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_150 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else if ($eqeqeq(57, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(334, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + type = (delimiter = self.$tok()['$[]'](0).$chr()); + p = $rb_minus(p, 1); + + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(326, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + $b = [self.source_buffer.$slice(self.ts).$chr(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(55, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(347, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + p = $rb_minus(p, 1); + self.$emit("tSYMBEG", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + + self.cs = 352; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(335, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(346, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), $rb_plus(self.ts, 2))); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(69, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(357, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); + self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(356, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(336, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION_BEGIN')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(52, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + if ($truthy(self['$version?'](18))) { + + ident = self.$tok(self.ts, $rb_minus(self.te, 2)); + self.$emit(($truthy(self.source_buffer.$slice(self.ts)['$=~'](/[A-Z]/)) ? ("tCONSTANT") : ("tIDENTIFIER")), ident, self.ts, $rb_minus(self.te, 2)); + p = $rb_minus(p, 1); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](ident))))) { + self.cs = 810 + } else { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; } else { - return $ret_or_150 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); + self.cs = 795; + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(49, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); + p = $rb_minus(ident_te, 1); + if ((($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](ident_tok)))) && ($truthy($rb_lt(self.version, 25))))) { + self.cs = 465 } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_151 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_151 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_152 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_152 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_153 = (function() {if ($truthy(($ret_or_154 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_154 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_153 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_155 = self.escape))) { - return $ret_or_155 + self.cs = 525 + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(320, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; + + self.cs = 186; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(56, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(304, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(330, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(329, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSTAR", "*".$freeze()); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(325, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(354, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(337, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(350, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((152)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_escape");; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_156 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(355, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(361, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(327, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION_BEGIN')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(331, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$emit("tBDOT2") } else { - return $ret_or_156 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + self.$emit("tDOT2") + }; + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(332, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + followed_by_nl = $rb_minus(self.te, 1)['$=='](self.newline_s); + nl_emitted = false; + dots_te = ($truthy(followed_by_nl) ? ($rb_minus(self.te, 1)) : (self.te)); + if ($truthy($rb_ge(self.version, 30))) { + if (($truthy(self.lambda_stack['$any?']()) && ($eqeq($rb_plus(self.lambda_stack.$last(), 1), self.paren_nest)))) { + self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + } else { + + self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te); + if ((($truthy($rb_ge(self.version, 31)) && ($truthy(followed_by_nl))) && ($truthy(self.context.$in_argdef())))) { + + self.$emit("tNL", $rb_minus(self.te, 1), self.te); + nl_emitted = true; + }; + } + } else if ($truthy($rb_ge(self.version, 27))) { + self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_157 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_157 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_158 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_158 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_159 = (function() {if ($truthy(($ret_or_160 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_160 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_159 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_161 = self.escape))) { - return $ret_or_161 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((366)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_escape");; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_162 = self.escape))) { - return $ret_or_162 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((123)['$===']($case)) { - - self.escape = "\u007F";; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_163 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_163 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_164 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_164 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_165 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_165 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_166 = (function() {if ($truthy(($ret_or_167 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_167 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_166 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_168 = self.escape))) { - return $ret_or_168 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((154)['$===']($case)) { - - self.escape = "\u007F";; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_169 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_169 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_170 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_170 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_171 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_171 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_172 = (function() {if ($truthy(($ret_or_173 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_173 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_172 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_174 = self.escape))) { - return $ret_or_174 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((368)['$===']($case)) { - - self.escape = "\u007F";; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_175 = self.escape))) { - return $ret_or_175 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((120)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_176 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_176 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_177 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_177 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_178 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_178 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_179 = (function() {if ($truthy(($ret_or_180 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_180 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_179 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_181 = self.escape))) { - return $ret_or_181 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((151)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_182 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_182 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_183 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_183 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_184 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_184 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_185 = (function() {if ($truthy(($ret_or_186 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_186 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_185 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_187 = self.escape))) { - return $ret_or_187 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((365)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_188 = self.escape))) { - return $ret_or_188 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((140)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_189 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_189 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_190 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_190 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_191 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_191 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_192 = (function() {if ($truthy(($ret_or_193 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_193 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_192 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_194 = self.escape))) { - return $ret_or_194 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((171)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_195 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_195 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_196 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_196 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_197 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_197 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_198 = (function() {if ($truthy(($ret_or_199 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_199 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_198 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_200 = self.escape))) { - return $ret_or_200 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((385)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_201 = self.escape))) { - return $ret_or_201 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((139)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_202 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + }; + if (($truthy(followed_by_nl) && ($not(nl_emitted)))) { + p = $rb_minus(p, 1) + }; + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(307, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return $ret_or_202 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(317, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(319, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; + + self.cs = 186; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(322, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(54, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(73, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(74, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_203 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_203 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_204 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_204 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_205 = (function() {if ($truthy(($ret_or_206 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_206 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_205 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_207 = self.escape))) { - return $ret_or_207 + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(48, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((170)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_208 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(53, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + } else if ($eqeqeq(68, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(51, $ret_or_1)) { + + if ($eqeqeq(99, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(106, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + } else if ($eqeqeq(117, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy($rb_ge(self.version, 27))) { + + self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + p = $rb_minus(p, 2); + + self.cs = 810; + _goto_level = _again; + continue;;; + }; + } else if ($eqeqeq(121, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION_BEGIN')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(122, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(123, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS_BEGIN')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(127, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; + } else if ($eqeqeq(128, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(132, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; } else { - return $ret_or_208 - }; return nil; })())) { + nil + }; + } else if ($eqeqeq(395, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(396, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(397, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(401, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(77, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(405, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + + self.cs = self.$push_literal(self.$tok(), self.$tok(), self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(404, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(403, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(407, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(406, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(76, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(440, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tLAMBDA", "->".$freeze(), self.ts, $rb_plus(self.ts, 2)); + self.lambda_stack.$push(self.paren_nest); + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(86, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(415, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts, nil, false, false, true); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(79, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(436, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 473; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(489, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(429, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(434, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tOP_ASGN", self.$tok(self.ts, $rb_minus(self.te, 1))); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(420, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tEH", "?".$freeze()); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(417, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(419, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tSEMI", ";".$freeze()); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(494, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$diagnostic("error", "bare_backslash", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + p = $rb_minus(p, 1);; + } else if ($eqeqeq(414, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));; + } else if ($eqeqeq(413, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(505, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('KEYWORDS')); + self.cs = 352; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(503, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(502, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('KEYWORDS')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(444, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("error", "no_dot_digit_literal");; + } else if ($eqeqeq(491, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(433, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(441, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 473; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(497, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(439, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(435, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(428, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(442, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(426, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(432, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));; + } else if ($eqeqeq(84, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(80, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$diagnostic("error", "no_dot_digit_literal");; + } else if ($eqeqeq(83, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(78, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));; + } else if ($eqeqeq(81, $ret_or_1)) { + + if ($eqeqeq(145, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) + } else { + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) + } else { + self.$emit_do() + }; + if ($eqeq(self.$tok(), "{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1) + }; + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(146, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 352; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(147, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(148, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(149, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(150, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(151, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + if (($truthy(self['$version?'](18)) && ($eqeq(self.$tok(), "not".$freeze())))) { + + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(152, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18))) { + + self.$emit("tIDENTIFIER"); + if (!($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; + } else { + self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(153, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(154, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(156, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(157, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(158, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(160, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(164, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(165, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(tm, self.te)) { + self.$emit("tFID") + } else { + + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + }; + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(167, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(168, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + nil + }; + } else if ($eqeqeq(516, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + if ($truthy($rb_lt(self.version, 27))) { + + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.$emit("tBDOT3"); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(95, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(tm, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(510, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(513, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_lt(self.version, 27))) { + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(515, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + if ($truthy($rb_lt(self.version, 27))) { + + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.$emit("tBDOT2"); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(514, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(tm, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(512, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(90, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + if ($truthy($rb_lt(self.version, 27))) { + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(87, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(91, $ret_or_1)) { + + if ($eqeqeq(181, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + if ($truthy($rb_lt(self.version, 27))) { + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(185, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + nil + }; + } else if ($eqeqeq(519, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_comment(self.eq_begin_s, self.te); + + self.cs = self.cs_before_block_comment; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(518, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("fatal", "embedded_document", nil, self.$range(self.eq_begin_s, $rb_plus(self.eq_begin_s, "=begin".$length())));; + } else if ($eqeqeq(106, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.eq_begin_s = self.ts; + + self.cs = 998; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(2, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(pe, 3);; + } else if ($eqeqeq(98, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + cmd_state = true; + p = $rb_minus(p, 1); + + self.cs = 802; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(99, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(100, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(105, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.eq_begin_s = self.ts; + + self.cs = 998; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(104, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + cmd_state = true; + p = $rb_minus(p, 1); + + self.cs = 802; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(1, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + cmd_state = true; + p = $rb_minus(p, 1); + + self.cs = 802; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(67, $ret_or_1)) { + + + self.newline_s = p;; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + } else if ($eqeqeq(110, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(143, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(174, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(180, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(186, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(193, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(196, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(204, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(275, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(266, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(tm, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(258, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(358, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); + self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(333, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + followed_by_nl = $rb_minus(self.te, 1)['$=='](self.newline_s); + nl_emitted = false; + dots_te = ($truthy(followed_by_nl) ? ($rb_minus(self.te, 1)) : (self.te)); + if ($truthy($rb_ge(self.version, 30))) { + if (($truthy(self.lambda_stack['$any?']()) && ($eqeq($rb_plus(self.lambda_stack.$last(), 1), self.paren_nest)))) { + self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + } else { + + self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te); + if ((($truthy($rb_ge(self.version, 31)) && ($truthy(followed_by_nl))) && ($truthy(self.context.$in_argdef())))) { + + self.$emit("tNL", $rb_minus(self.te, 1), self.te); + nl_emitted = true; + }; + } + } else if ($truthy($rb_ge(self.version, 27))) { + self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te) + } else { + self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + }; + if (($truthy(followed_by_nl) && ($not(nl_emitted)))) { + p = $rb_minus(p, 1) + }; + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(321, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; + + self.cs = 186; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(443, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + if ($eqeq(self.paren_nest, 0)) { + self.$diagnostic("warning", "triple_dot_at_eol", nil, self.$range(self.ts, $rb_minus(self.te, 1))) + }; + self.$emit("tDOT3", "...".$freeze(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(520, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + self.$emit_comment(self.eq_begin_s, self.te); + + self.cs = self.cs_before_block_comment; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(517, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1);; + } else if ($eqeqeq(107, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + self.eq_begin_s = self.ts; + + self.cs = 998; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(3, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(pe, 3);;; + } else if ($eqeqeq(465, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$3(chars){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tRATIONAL", self.$Rational(chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(463, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$4(chars){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tIMAGINARY", self.$Complex(0, chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(468, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$5(chars){var self = $$5.$$s == null ? this : $$5.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(466, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$6(chars){var self = $$6.$$s == null ? this : $$6.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(464, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$7(chars){var self = $$7.$$s == null ? this : $$7.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(467, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$8(chars){var self = $$8.$$s == null ? this : $$8.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 6)); + return (p = $rb_minus(p, 6));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(456, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$9(chars){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Float(chars)));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(457, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$10(chars){var self = $$10.$$s == null ? this : $$10.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(458, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$11(chars){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tRATIONAL", self.$Rational(chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(460, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$12(chars){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(459, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$13(chars){var self = $$13.$$s == null ? this : $$13.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 6)); + return (p = $rb_minus(p, 6));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(137, $ret_or_1)) { + + + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if (($truthy(codepoints['$start_with?'](" ")) || ($truthy(codepoints['$start_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3))) + }; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2))) + }; + if (($truthy(codepoints['$end_with?'](" ")) || ($truthy(codepoints['$end_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p)) + }; + }; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], function $$14($mlhs_tmp1){var $c, $d, self = $$14.$$s == null ? this : $$14.$$s, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + + + + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $d = $mlhs_tmp1, $c = $to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + } else { + + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk); + }; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$('Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, {$$arity: 1, $$s: self, $$brk: $brk, $$has_top_level_mlhs_arg: true}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(168, $ret_or_1)) { + + + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if (($truthy(codepoints['$start_with?'](" ")) || ($truthy(codepoints['$start_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3))) + }; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2))) + }; + if (($truthy(codepoints['$end_with?'](" ")) || ($truthy(codepoints['$end_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p)) + }; + }; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], function $$15($mlhs_tmp1){var $c, $d, self = $$15.$$s == null ? this : $$15.$$s, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + + + + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $d = $mlhs_tmp1, $c = $to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + } else { + + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk); + }; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$('Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, {$$arity: 1, $$s: self, $$brk: $brk, $$has_top_level_mlhs_arg: true}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(382, $ret_or_1)) { + + + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if (($truthy(codepoints['$start_with?'](" ")) || ($truthy(codepoints['$start_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3))) + }; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2))) + }; + if (($truthy(codepoints['$end_with?'](" ")) || ($truthy(codepoints['$end_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p)) + }; + }; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], function $$16($mlhs_tmp1){var $c, $d, self = $$16.$$s == null ? this : $$16.$$s, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + + + + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $d = $mlhs_tmp1, $c = $to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + } else { + + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk); + }; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$('Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, {$$arity: 1, $$s: self, $$brk: $brk, $$has_top_level_mlhs_arg: true}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(118, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") + }; + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(149, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") + }; + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(363, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") + }; + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(121, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_escape");; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(152, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_escape");; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_209 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_209 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_210 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_210 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_211 = (function() {if ($truthy(($ret_or_212 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_212 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_211 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_213 = self.escape))) { - return $ret_or_213 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(366, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_escape");; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((384)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_214 = self.escape))) { - return $ret_or_214 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((134)['$===']($case)) { - - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_215 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(123, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return $ret_or_215 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(154, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_216 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_216 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_217 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_217 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_218 = (function() {if ($truthy(($ret_or_219 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_219 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_218 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_220 = self.escape))) { - return $ret_or_220 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(368, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((165)['$===']($case)) { - - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_221 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(120, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return $ret_or_221 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(151, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_222 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_222 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_223 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_223 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_224 = (function() {if ($truthy(($ret_or_225 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_225 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_224 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_226 = self.escape))) { - return $ret_or_226 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(365, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((379)['$===']($case)) { - - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_227 = self.escape))) { - return $ret_or_227 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((133)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_228 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(140, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return $ret_or_228 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(171, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_229 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_229 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_230 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_230 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_231 = (function() {if ($truthy(($ret_or_232 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_232 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_231 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_233 = self.escape))) { - return $ret_or_233 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(385, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((164)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_234 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(139, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(170, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(384, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(134, $ret_or_1)) { + + + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$('Encoding'), 'UTF_8'));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(165, $ret_or_1)) { + + + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$('Encoding'), 'UTF_8'));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(379, $ret_or_1)) { + + + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$('Encoding'), 'UTF_8'));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(133, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(164, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(378, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(138, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(169, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(383, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_234 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(135, $ret_or_1)) { + + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_235 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_235 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_236 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_236 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_237 = (function() {if ($truthy(($ret_or_238 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_238 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_237 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_239 = self.escape))) { - return $ret_or_239 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(166, $ret_or_1)) { + + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((378)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_240 = self.escape))) { - return $ret_or_240 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((138)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_241 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(380, $ret_or_1)) { + + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_241 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(119, $ret_or_1)) { + + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_242 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_242 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_243 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_243 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_244 = (function() {if ($truthy(($ret_or_245 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_245 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_244 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_246 = self.escape))) { - return $ret_or_246 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(150, $ret_or_1)) { + + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((169)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_247 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(364, $ret_or_1)) { + + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_247 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(177, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_248 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_248 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_249 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_249 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_250 = (function() {if ($truthy(($ret_or_251 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_251 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_250 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_252 = self.escape))) { - return $ret_or_252 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(182, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((383)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_253 = self.escape))) { - return $ret_or_253 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((135)['$===']($case)) { - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_254 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(58, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.newline_s = p;; + } else if ($eqeqeq(31, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + tm = p;; + } else if ($eqeqeq(33, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + tm = p;; + } else if ($eqeqeq(35, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + tm = p;; + } else if ($eqeqeq(219, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(238, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(246, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(34, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(277, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(269, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(288, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(300, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(296, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(59, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = $rb_plus(p, 1); + + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(50, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = $rb_plus(p, 1); + + self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); + p = $rb_minus(ident_te, 1); + if ((($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](ident_tok)))) && ($truthy($rb_lt(self.version, 25))))) { + self.cs = 465 } else { - return $ret_or_254 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + self.cs = 525 + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(318, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(402, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(398, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.context.$in_kwarg())) { + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_255 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_255 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_256 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_256 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_257 = (function() {if ($truthy(($ret_or_258 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_258 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_257 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_259 = self.escape))) { - return $ret_or_259 + + self.cs = 186; + _goto_level = _again; + continue;; + };;; + } else if ($eqeqeq(411, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(408, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 186; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(495, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(427, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 990; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(101, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(268, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace() + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + self.$emit("tLAMBEG", "{".$freeze(), $rb_minus(self.te, 1), self.te); } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((166)['$===']($case)) { - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_260 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tLCURLY", "{".$freeze(), $rb_minus(self.te, 1), self.te) + }; + self.command_start = true; + self.paren_nest = $rb_plus(self.paren_nest, 1); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(290, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace() + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + self.$emit("tLAMBEG", "{".$freeze()); } else { - return $ret_or_260 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + self.$emit("tLBRACE_ARG", "{".$freeze()) + }; + self.paren_nest = $rb_plus(self.paren_nest, 1); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(393, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace() + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + self.command_start = true; + self.$emit("tLAMBEG", "{".$freeze()); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_261 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_261 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_262 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_262 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_263 = (function() {if ($truthy(($ret_or_264 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_264 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_263 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_265 = self.escape))) { - return $ret_or_265 + self.$emit("tLBRACE", "{".$freeze()) + }; + self.paren_nest = $rb_plus(self.paren_nest, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(508, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace() + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) + } else { + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((380)['$===']($case)) { - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_266 = self.escape))) { - return $ret_or_266 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((119)['$===']($case)) { - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_267 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit_do() + }; + if ($eqeq(self.$tok(), "{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1) + }; + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(509, $ret_or_1)) { + + + current_literal = self.$literal(); + if ($truthy(current_literal)) { + if ($truthy(current_literal.$end_interp_brace_and_try_closing())) { + + if ($truthy(self['$version?'](18, 19))) { + + self.$emit("tRCURLY", "}".$freeze(), $rb_minus(p, 1), p); + self.cond.$lexpop(); + self.cmdarg.$lexpop(); + } else { + self.$emit("tSTRING_DEND", "}".$freeze(), $rb_minus(p, 1), p) + }; + if ($truthy(current_literal.$saved_herebody_s())) { + self.herebody_s = current_literal.$saved_herebody_s() + }; + p = $rb_minus(p, 1); + self.cs = self.$next_state_for_literal(current_literal); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } + }; + self.paren_nest = $rb_minus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { + + self.cond.$lexpop(); + self.cmdarg.$lexpop(); } else { - return $ret_or_267 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + self.cond.$pop(); + self.cmdarg.$pop(); + }; + if (($eqeq(self.$tok(), "}".$freeze()) || ($eqeq(self.$tok(), "]".$freeze())))) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 810 + } else { + self.cs = 531 + } + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(61, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + } else if ($eqeqeq(65, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.newline_s = p;; + } else if ($eqeqeq(222, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(237, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(249, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(271, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(286, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(298, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(324, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(400, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(410, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(431, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(103, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(243, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); + self.cs = self.$arg_or_cmdarg(cmd_state); + p = $rb_minus(tm, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(338, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(309, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(424, $ret_or_1)) { + + + tm = p;; + + if ($eqeqeq(145, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) + } else { + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) + } else { + self.$emit_do() + }; + if ($eqeq(self.$tok(), "{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1) + }; + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(146, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 352; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(147, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(148, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(149, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(150, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(151, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + if (($truthy(self['$version?'](18)) && ($eqeq(self.$tok(), "not".$freeze())))) { + + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(152, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18))) { + + self.$emit("tIDENTIFIER"); + if (!($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; + } else { + self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(153, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(154, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(156, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(157, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(158, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(160, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(164, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(165, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(tm, self.te)) { + self.$emit("tFID") + } else { + + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + }; + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(167, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(168, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_268 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_268 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_269 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_269 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_270 = (function() {if ($truthy(($ret_or_271 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_271 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_270 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_272 = self.escape))) { - return $ret_or_272 + nil + };; + } else if ($eqeqeq(244, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); + self.cs = self.$arg_or_cmdarg(cmd_state); + p = $rb_minus(tm, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(339, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(311, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(425, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(tm, self.te)) { + self.$emit("tFID") } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((150)['$===']($case)) { - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_273 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + }; + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(340, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(312, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(341, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(313, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(345, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(316, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(344, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(315, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + if ($eqeqeq(99, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(106, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + } else if ($eqeqeq(117, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy($rb_ge(self.version, 27))) { + + self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + p = $rb_minus(p, 2); + + self.cs = 810; + _goto_level = _again; + continue;;; + }; + } else if ($eqeqeq(121, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION_BEGIN')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(122, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(123, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS_BEGIN')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(127, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; + } else if ($eqeqeq(128, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(132, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; } else { - return $ret_or_273 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + nil + };; + } else if ($eqeqeq(342, $ret_or_1)) { + + + tm = $rb_minus(p, 3);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(314, $ret_or_1)) { + + + tm = $rb_minus(p, 3);; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(343, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(490, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tCONSTANT", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(267, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLBRACK", "[".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(386, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLBRACK", "[".$freeze()); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(493, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLBRACK2", "[".$freeze()); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(496, $ret_or_1)) { + + + self.paren_nest = $rb_minus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { + + self.cond.$lexpop(); + self.cmdarg.$lexpop(); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_274 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_274 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_275 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_275 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_276 = (function() {if ($truthy(($ret_or_277 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_277 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_276 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_278 = self.escape))) { - return $ret_or_278 + + self.cond.$pop(); + self.cmdarg.$pop(); + }; + if (($eqeq(self.$tok(), "}".$freeze()) || ($eqeq(self.$tok(), "]".$freeze())))) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 810 + } else { + self.cs = 531 + } + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(259, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self['$version?'](18))) { + + self.$emit("tLPAREN2", "(".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((364)['$===']($case)) { - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_279 = self.escape))) { - return $ret_or_279 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((177)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_280 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };;; + } else if ($eqeqeq(272, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLPAREN2", "(".$freeze()); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(280, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); + if ($truthy(self['$version?'](18))) { + + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return $ret_or_280 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };;; + } else if ($eqeqeq(328, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLPAREN", "(".$freeze()); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(437, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(438, $ret_or_1)) { + + + self.paren_nest = $rb_minus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { + + self.cond.$lexpop(); + self.cmdarg.$lexpop(); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_281 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_281 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_282 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_282 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_283 = (function() {if ($truthy(($ret_or_284 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_284 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_283 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_285 = self.escape))) { - return $ret_or_285 + + self.cond.$pop(); + self.cmdarg.$pop(); + }; + if (($eqeq(self.$tok(), "}".$freeze()) || ($eqeq(self.$tok(), "]".$freeze())))) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 810 + } else { + self.cs = 531 + } + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(72, $ret_or_1)) { + + + heredoc_e = p;; + + self.newline_s = p;; + } else if ($eqeqeq(353, $ret_or_1)) { + + + new_herebody_s = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$tok(self.ts, heredoc_e)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m); + indent = ($truthy(($ret_or_2 = (($b = $gvars['~']) === nil ? nil : $b['$[]'](1))['$empty?']()['$!']())) ? ($ret_or_2) : ((($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!']())); + dedent_body = (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!'](); + type = ($truthy((($b = $gvars['~']) === nil ? nil : $b['$[]'](3))['$empty?']()) ? ("<<\"".$freeze()) : ($rb_plus("<<".$freeze(), (($b = $gvars['~']) === nil ? nil : $b['$[]'](3))))); + delimiter = (($b = $gvars['~']) === nil ? nil : $b['$[]'](4)); + if ($truthy($rb_ge(self.version, 27))) { + if (($truthy($rb_gt(delimiter.$count("\n"), 0)) || ($truthy($rb_gt(delimiter.$count("\r"), 0))))) { + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1))) + } + } else if ($truthy($rb_ge(self.version, 24))) { + if ($truthy($rb_gt(delimiter.$count("\n"), 0))) { + if ($truthy(delimiter['$end_with?']("\n"))) { + + self.$diagnostic("warning", "heredoc_id_ends_with_nl", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + delimiter = delimiter.$rstrip(); + } else { + self.$diagnostic("fatal", "heredoc_id_has_newline", nil, self.$range(self.ts, $rb_plus(self.ts, 1))) + } + } + }; + if (($truthy(dedent_body) && ($truthy(self['$version?'](18, 19, 20, 21, 22))))) { + + self.$emit("tLSHFT", "<<".$freeze(), self.ts, $rb_plus(self.ts, 2)); + p = $rb_plus(self.ts, 1); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((182)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_286 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + self.cs = self.$push_literal(type, delimiter, self.ts, heredoc_e, indent, dedent_body); + self.herebody_s = ($truthy(($ret_or_2 = self.herebody_s)) ? ($ret_or_2) : (new_herebody_s)); + p = $rb_minus(self.herebody_s, 1); + };;; + } else if ($eqeqeq(348, $ret_or_1)) { + + + tm = $rb_minus(p, 1); + diag_msg = "ivar_name";; + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) } else { - return $ret_or_286 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(351, $ret_or_1)) { + + + tm = $rb_minus(p, 2); + diag_msg = "cvar_name";; + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_287 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_287 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_288 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_288 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_289 = (function() {if ($truthy(($ret_or_290 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_290 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_289 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_291 = self.escape))) { - return $ret_or_291 + + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(359, $ret_or_1)) { + + + self.escape = nil;; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((58)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(389, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(480, $ret_or_1)) { + + + self.num_base = 16; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(474, $ret_or_1)) { + + + self.num_base = 10; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(477, $ret_or_1)) { + + + self.num_base = 8; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(471, $ret_or_1)) { + + + self.num_base = 2; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(486, $ret_or_1)) { + + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(449, $ret_or_1)) { + + + self.num_base = 8; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(487, $ret_or_1)) { + + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$17(chars){var self = $$17.$$s == null ? this : $$17.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + } else if ($eqeqeq(8, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.newline_s = p;; + } else if ($eqeqeq(453, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.num_suffix_s = p;; + } else if ($eqeqeq(228, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 43;; + } else if ($eqeqeq(215, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 44;; + } else if ($eqeqeq(211, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 45;; + } else if ($eqeqeq(27, $ret_or_1)) { + - p = self.herebody_s; - self.herebody_s = nil;};; - - self.newline_s = p;;} - else if ((31)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;;} - else if ((33)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.act = 72;; + } else if ($eqeqeq(261, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;;} - else if ((35)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;;} - else if ((219)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((238)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.act = 73;; + } else if ($eqeqeq(28, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((246)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((34)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((277)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.act = 78;; + } else if ($eqeqeq(254, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((269)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((288)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((300)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.act = 79;; + } else if ($eqeqeq(281, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((296)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((59)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = $rb_plus(p, 1); - - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((50)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.act = 85;; + } else if ($eqeqeq(46, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = $rb_plus(p, 1); - - self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); - p = $rb_minus(ident_te, 1); - if ($truthy((function() {if ($truthy(($ret_or_292 = (function() {if ($truthy(($ret_or_293 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](ident_tok) - } else { - return $ret_or_293 - }; return nil; })()))) { - return $rb_lt(self.version, 25) - } else { - return $ret_or_292 - }; return nil; })())) { - self.cs = 465 - } else { - self.cs = 525 - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((318)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((402)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((398)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.act = 86;; + } else if ($eqeqeq(302, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self.context.$in_kwarg())) { - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1);; - self.cs = 810; - _goto_level = _again; - continue;;; - } else { + self.act = 93;; + } else if ($eqeqeq(291, $ret_or_1)) { - self.cs = 186; - _goto_level = _again; - continue;; - };;;} - else if ((411)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((408)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - - self.cs = 186; - _goto_level = _again; - continue;;;;;} - else if ((495)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.act = 94;; + } else if ($eqeqeq(70, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((427)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - - self.cs = 990; - _goto_level = _again; - continue;;;;;} - else if ((101)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((268)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; - - self.te = p; - p = $rb_minus(p, 1); - - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + self.act = 106;; + } else if ($eqeqeq(394, $ret_or_1)) { - self.lambda_stack.$pop(); - self.$emit("tLAMBEG", "{".$freeze(), $rb_minus(self.te, 1), self.te); - } else { - self.$emit("tLCURLY", "{".$freeze(), $rb_minus(self.te, 1), self.te) - }; - self.command_start = true; - self.paren_nest = $rb_plus(self.paren_nest, 1); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((290)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; - - self.te = p; - p = $rb_minus(p, 1); - - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - self.lambda_stack.$pop(); - self.$emit("tLAMBEG", "{".$freeze()); - } else { - self.$emit("tLBRACE_ARG", "{".$freeze()) - }; - self.paren_nest = $rb_plus(self.paren_nest, 1); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((393)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; - - self.te = p; - p = $rb_minus(p, 1); - - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + self.te = $rb_plus(p, 1);; - self.lambda_stack.$pop(); - self.command_start = true; - self.$emit("tLAMBEG", "{".$freeze()); - } else { - self.$emit("tLBRACE", "{".$freeze()) - }; - self.paren_nest = $rb_plus(self.paren_nest, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((508)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; - - self.te = p; - p = $rb_minus(p, 1); - - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + self.act = 117;; + } else if ($eqeqeq(305, $ret_or_1)) { - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) - } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) - }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - if (self.$tok()['$==']("{".$freeze())) { - self.paren_nest = $rb_plus(self.paren_nest, 1)}; - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((509)['$===']($case)) { - - current_literal = self.$literal(); - if ($truthy(current_literal)) { - if ($truthy(current_literal.$end_interp_brace_and_try_closing())) { - - if ($truthy(self['$version?'](18, 19))) { - - self.$emit("tRCURLY", "}".$freeze(), $rb_minus(p, 1), p); - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - } else { - self.$emit("tSTRING_DEND", "}".$freeze(), $rb_minus(p, 1), p) - }; - if ($truthy(current_literal.$saved_herebody_s())) { - self.herebody_s = current_literal.$saved_herebody_s()}; - p = $rb_minus(p, 1); - self.cs = self.$next_state_for_literal(current_literal); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}}; - self.paren_nest = $rb_minus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - if ($truthy($rb_lt(self.version, 24))) { - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - } else { + self.te = $rb_plus(p, 1);; - self.cond.$pop(); - self.cmdarg.$pop(); - }; - if ($truthy((function() {if ($truthy(($ret_or_294 = self.$tok()['$==']("}".$freeze())))) { - return $ret_or_294 - } else { - return self.$tok()['$==']("]".$freeze()) - }; return nil; })())) { - if ($truthy($rb_ge(self.version, 25))) { - self.cs = 810 - } else { - self.cs = 531 - }}; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((61)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());;} - else if ((65)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.newline_s = p;;} - else if ((222)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((237)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((249)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((271)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1); - - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((286)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((298)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((324)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((400)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((410)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((431)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((103)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((243)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); - self.cs = self.$arg_or_cmdarg(cmd_state); - p = $rb_minus(tm, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((338)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((309)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((424)['$===']($case)) { - - tm = p;; - - $case = self.act; - if ((145)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + self.act = 121;; + } else if ($eqeqeq(388, $ret_or_1)) { - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) - } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) - }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - if (self.$tok()['$==']("{".$freeze())) { - self.paren_nest = $rb_plus(self.paren_nest, 1)}; - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((146)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 352; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((147)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((148)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((149)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((150)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((151)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - if ($truthy((function() {if ($truthy(($ret_or_295 = self['$version?'](18)))) { - return self.$tok()['$==']("not".$freeze()) - } else { - return $ret_or_295 - }; return nil; })())) { - self.cs = 563; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.act = 122;; + } else if ($eqeqeq(387, $ret_or_1)) { - self.cs = 494; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((152)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18))) { + self.te = $rb_plus(p, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_296 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_296 - }; return nil; })())) { - } else { - self.cs = self.$arg_or_cmdarg(cmd_state) - }; - } else { - self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((153)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((154)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_297 = (function() {if ($truthy(($ret_or_298 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_298 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_297 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_299 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_299 - }; return nil; })())) { + self.act = 123;; + } else if ($eqeqeq(75, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((156)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + self.te = $rb_plus(p, 1);; - self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); + self.act = 127;; + } else if ($eqeqeq(303, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((157)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { - self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((158)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.act = 128;; + } else if ($eqeqeq(306, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((160)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((164)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_300 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_300 - }; return nil; })())) { - self.cs = 465; + self.te = $rb_plus(p, 1);; + + self.act = 132;; + } else if ($eqeqeq(504, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 145;; + } else if ($eqeqeq(499, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 146;; + } else if ($eqeqeq(507, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - self.cs = self.$arg_or_cmdarg(cmd_state); + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((165)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { + self.act = 148;; + } else if ($eqeqeq(500, $ret_or_1)) { - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - }; - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((167)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((168)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};;} - else if ((244)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); - self.cs = self.$arg_or_cmdarg(cmd_state); - p = $rb_minus(tm, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((339)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((311)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((425)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - }; - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((340)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((312)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((341)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((313)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((345)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((316)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((344)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((315)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - $case = self.act; - if ((99)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((106)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));} - else if ((117)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy($rb_ge(self.version, 27))) { + self.te = $rb_plus(p, 1);; - self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 563; + self.act = 149;; + } else if ($eqeqeq(501, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - p = $rb_minus(p, 2); + self.te = $rb_plus(p, 1);; - self.cs = 810; - _goto_level = _again; - continue;;; - };} - else if ((121)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((122)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((123)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((127)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;} - else if ((128)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_301 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_301 - }; return nil; })())) { + self.act = 150;; + } else if ($eqeqeq(506, $ret_or_1)) { - self.cs = 465; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.te = $rb_plus(p, 1);; - self.cs = self.$arg_or_cmdarg(cmd_state); + self.act = 151;; + } else if ($eqeqeq(498, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((132)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;};;} - else if ((342)['$===']($case)) { - - tm = $rb_minus(p, 3);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((314)['$===']($case)) { - - tm = $rb_minus(p, 3);; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((343)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((490)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tCONSTANT", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((267)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLBRACK", "[".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((386)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLBRACK", "[".$freeze()); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((493)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLBRACK2", "[".$freeze()); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((496)['$===']($case)) { - - self.paren_nest = $rb_minus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - if ($truthy($rb_lt(self.version, 24))) { - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - } else { + self.te = $rb_plus(p, 1);; - self.cond.$pop(); - self.cmdarg.$pop(); - }; - if ($truthy((function() {if ($truthy(($ret_or_302 = self.$tok()['$==']("}".$freeze())))) { - return $ret_or_302 - } else { - return self.$tok()['$==']("]".$freeze()) - }; return nil; })())) { - if ($truthy($rb_ge(self.version, 25))) { - self.cs = 810 - } else { - self.cs = 531 - }}; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((259)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self['$version?'](18))) { + self.act = 152;; + } else if ($eqeqeq(492, $ret_or_1)) { - self.$emit("tLPAREN2", "(".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 802; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.te = $rb_plus(p, 1);; - self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 563; + self.act = 153;; + } else if ($eqeqeq(418, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;;} - else if ((272)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLPAREN2", "(".$freeze()); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((280)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); - if ($truthy(self['$version?'](18))) { - self.cs = 802; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.act = 154;; + } else if ($eqeqeq(451, $ret_or_1)) { - self.cs = 563; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;;} - else if ((328)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLPAREN", "(".$freeze()); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((437)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((438)['$===']($case)) { - - self.paren_nest = $rb_minus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - if ($truthy($rb_lt(self.version, 24))) { + self.te = $rb_plus(p, 1);; - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - } else { + self.act = 157;; + } else if ($eqeqeq(82, $ret_or_1)) { - self.cond.$pop(); - self.cmdarg.$pop(); - }; - if ($truthy((function() {if ($truthy(($ret_or_303 = self.$tok()['$==']("}".$freeze())))) { - return $ret_or_303 - } else { - return self.$tok()['$==']("]".$freeze()) - }; return nil; })())) { - if ($truthy($rb_ge(self.version, 25))) { - self.cs = 810 - } else { - self.cs = 531 - }}; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((72)['$===']($case)) { - - heredoc_e = p;; - - self.newline_s = p;;} - else if ((353)['$===']($case)) { - - new_herebody_s = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$tok(self.ts, heredoc_e)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m); - indent = (function() {if ($truthy(($ret_or_304 = (($b = $gvars['~']) === nil ? nil : $b['$[]'](1))['$empty?']()['$!']()))) { - return $ret_or_304 - } else { - return (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!']() - }; return nil; })(); - dedent_body = (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!'](); - type = (function() {if ($truthy((($b = $gvars['~']) === nil ? nil : $b['$[]'](3))['$empty?']())) { - return "<<\"".$freeze() - } else { - return $rb_plus("<<".$freeze(), (($b = $gvars['~']) === nil ? nil : $b['$[]'](3))); - }; return nil; })(); - delimiter = (($b = $gvars['~']) === nil ? nil : $b['$[]'](4)); - if ($truthy($rb_ge(self.version, 27))) { - if ($truthy((function() {if ($truthy(($ret_or_305 = $rb_gt(delimiter.$count("\n"), 0)))) { - return $ret_or_305 - } else { - return $rb_gt(delimiter.$count("\r"), 0) - }; return nil; })())) { - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)))} - } else if ($truthy($rb_ge(self.version, 24))) { - if ($truthy($rb_gt(delimiter.$count("\n"), 0))) { - if ($truthy(delimiter['$end_with?']("\n"))) { - - self.$diagnostic("warning", "heredoc_id_ends_with_nl", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); - delimiter = delimiter.$rstrip(); - } else { - self.$diagnostic("fatal", "heredoc_id_has_newline", nil, self.$range(self.ts, $rb_plus(self.ts, 1))) - }}}; - if ($truthy((function() {if ($truthy(($ret_or_306 = dedent_body))) { - return self['$version?'](18, 19, 20, 21, 22) - } else { - return $ret_or_306 - }; return nil; })())) { + self.te = $rb_plus(p, 1);; - self.$emit("tLSHFT", "<<".$freeze(), self.ts, $rb_plus(self.ts, 2)); - p = $rb_plus(self.ts, 1); - self.cs = 563; + self.act = 158;; + } else if ($eqeqeq(421, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - self.cs = self.$push_literal(type, delimiter, self.ts, heredoc_e, indent, dedent_body); - self.herebody_s = (function() {if ($truthy(($ret_or_307 = self.herebody_s))) { - return $ret_or_307 - } else { - return new_herebody_s - }; return nil; })(); - p = $rb_minus(self.herebody_s, 1); - };;;} - else if ((348)['$===']($case)) { - - tm = $rb_minus(p, 1); - diag_msg = "ivar_name";; - - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) - } else { + self.te = $rb_plus(p, 1);; - self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((351)['$===']($case)) { - - tm = $rb_minus(p, 2); - diag_msg = "cvar_name";; - - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) - } else { + self.act = 160;; + } else if ($eqeqeq(412, $ret_or_1)) { - self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((359)['$===']($case)) { - - self.escape = nil;; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_308 = self.escape))) { - return $ret_or_308 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((389)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((480)['$===']($case)) { - - self.num_base = 16; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((474)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((477)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((471)['$===']($case)) { - - self.num_base = 2; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((486)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;;} - else if ((449)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;;} - else if ((487)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$27 = function(chars){var self = $$27.$$s == null ? this : $$27.$$s; - + self.te = $rb_plus(p, 1);; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$27.$$s = self, $$27.$$arity = 1, $$27));;} - else if ((8)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.newline_s = p;;} - else if ((453)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_suffix_s = p;;} - else if ((228)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 43;;} - else if ((215)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 44;;} - else if ((211)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 45;;} - else if ((27)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 72;;} - else if ((261)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 73;;} - else if ((28)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 78;;} - else if ((254)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 79;;} - else if ((281)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 85;;} - else if ((46)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 86;;} - else if ((302)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 93;;} - else if ((291)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 94;;} - else if ((70)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 106;;} - else if ((394)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 117;;} - else if ((305)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 121;;} - else if ((388)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 122;;} - else if ((387)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 123;;} - else if ((75)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 127;;} - else if ((303)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 128;;} - else if ((306)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 132;;} - else if ((504)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 145;;} - else if ((499)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 146;;} - else if ((507)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 148;;} - else if ((500)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 149;;} - else if ((501)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 150;;} - else if ((506)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 151;;} - else if ((498)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 152;;} - else if ((492)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 153;;} - else if ((418)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 154;;} - else if ((451)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 157;;} - else if ((82)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 158;;} - else if ((421)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 160;;} - else if ((412)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 164;;} - else if ((423)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 165;;} - else if ((416)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 167;;} - else if ((422)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 168;;} - else if ((88)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 181;;} - else if ((511)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 185;;} - else if ((183)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.act = 164;; + } else if ($eqeqeq(423, $ret_or_1)) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + + self.te = $rb_plus(p, 1);; + + self.act = 165;; + } else if ($eqeqeq(416, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 167;; + } else if ($eqeqeq(422, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 168;; + } else if ($eqeqeq(88, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 181;; + } else if ($eqeqeq(511, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 185;; + } else if ($eqeqeq(183, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_309 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_309 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;; - - self.escape_s = p; - self.escape = nil;;} - else if ((124)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_310 = $rb_ge(self.version, 30)))) { + self.escape_s = p; + self.escape = nil;; + } else if ($eqeqeq(124, $ret_or_1)) { - if ($truthy(($ret_or_311 = codepoint['$=='](117)))) { - return $ret_or_311 - } else { - return codepoint['$=='](85) - }; - } else { - return $ret_or_310 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_312 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_312 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_313 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_313 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_314 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_314 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_315 = (function() {if ($truthy(($ret_or_316 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_316 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_315 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_317 = self.escape))) { - return $ret_or_317 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((155)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_318 = $rb_ge(self.version, 30)))) { - if ($truthy(($ret_or_319 = codepoint['$=='](117)))) { - return $ret_or_319 - } else { - return codepoint['$=='](85) + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_318 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_320 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_320 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_321 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_321 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_322 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_322 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_323 = (function() {if ($truthy(($ret_or_324 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_324 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_323 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_325 = self.escape))) { - return $ret_or_325 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((369)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_326 = $rb_ge(self.version, 30)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(155, $ret_or_1)) { - if ($truthy(($ret_or_327 = codepoint['$=='](117)))) { - return $ret_or_327 - } else { - return codepoint['$=='](85) - }; - } else { - return $ret_or_326 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_328 = self.escape))) { - return $ret_or_328 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((131)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_329 = $rb_ge(self.version, 30)))) { - if ($truthy(($ret_or_330 = codepoint['$=='](117)))) { - return $ret_or_330 - } else { - return codepoint['$=='](85) + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_329 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_331 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_331 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_332 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_332 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_333 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_333 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_334 = (function() {if ($truthy(($ret_or_335 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_335 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_334 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_336 = self.escape))) { - return $ret_or_336 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((162)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_337 = $rb_ge(self.version, 30)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(369, $ret_or_1)) { - if ($truthy(($ret_or_338 = codepoint['$=='](117)))) { - return $ret_or_338 - } else { - return codepoint['$=='](85) + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_337 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_339 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_339 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_340 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_340 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_341 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_341 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_342 = (function() {if ($truthy(($ret_or_343 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_343 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_342 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_344 = self.escape))) { - return $ret_or_344 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((376)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_345 = $rb_ge(self.version, 30)))) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(($ret_or_346 = codepoint['$=='](117)))) { - return $ret_or_346 + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return codepoint['$=='](85) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_345 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_347 = self.escape))) { - return $ret_or_347 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((122)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_348 = $rb_ge(self.version, 27)))) { + self.cs = 810; - if ($truthy(($ret_or_349 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_349 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(131, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_348 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_350 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_350 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_351 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_351 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_352 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_352 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_353 = (function() {if ($truthy(($ret_or_354 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_354 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_353 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_355 = self.escape))) { - return $ret_or_355 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((153)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_356 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(162, $ret_or_1)) { - if ($truthy(($ret_or_357 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_357 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_356 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_358 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_358 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_359 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_359 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_360 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_360 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_361 = (function() {if ($truthy(($ret_or_362 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_362 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_361 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_363 = self.escape))) { - return $ret_or_363 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((367)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_364 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(376, $ret_or_1)) { - if ($truthy(($ret_or_365 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_365 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_364 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_366 = self.escape))) { - return $ret_or_366 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((130)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_367 = $rb_ge(self.version, 27)))) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(($ret_or_368 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_368 + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_367 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_369 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_369 - }; return nil; })())) { + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(122, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_370 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_370 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_371 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_371 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_372 = (function() {if ($truthy(($ret_or_373 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_373 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_372 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_374 = self.escape))) { - return $ret_or_374 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((161)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_375 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(153, $ret_or_1)) { - if ($truthy(($ret_or_376 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_376 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) - }; - } else { - return $ret_or_375 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_377 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_377 - }; return nil; })())) { + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_378 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_378 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_379 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_379 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_380 = (function() {if ($truthy(($ret_or_381 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_381 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_380 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_382 = self.escape))) { - return $ret_or_382 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((375)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_383 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(367, $ret_or_1)) { + - if ($truthy(($ret_or_384 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_384 + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_383 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_385 = self.escape))) { - return $ret_or_385 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((126)['$===']($case)) { - - self.escape = "\u007F";; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_386 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_386 - }; return nil; })())) { + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(130, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_387 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_387 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_388 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_388 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_389 = (function() {if ($truthy(($ret_or_390 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_390 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_389 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_391 = self.escape))) { - return $ret_or_391 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((157)['$===']($case)) { - - self.escape = "\u007F";; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_392 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_392 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(161, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_393 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_393 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_394 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_394 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_395 = (function() {if ($truthy(($ret_or_396 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_396 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_395 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_397 = self.escape))) { - return $ret_or_397 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((371)['$===']($case)) { - - self.escape = "\u007F";; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_398 = self.escape))) { - return $ret_or_398 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((129)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_399 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(375, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_399 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(126, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_400 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_400 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_401 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_401 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_402 = (function() {if ($truthy(($ret_or_403 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_403 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_402 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_404 = self.escape))) { - return $ret_or_404 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((160)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_405 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_405 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(157, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_406 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_406 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_407 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_407 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_408 = (function() {if ($truthy(($ret_or_409 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_409 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_408 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_410 = self.escape))) { - return $ret_or_410 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((374)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_411 = self.escape))) { - return $ret_or_411 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((136)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_412 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(371, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_412 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(129, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_413 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_413 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_414 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_414 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_415 = (function() {if ($truthy(($ret_or_416 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_416 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_415 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_417 = self.escape))) { - return $ret_or_417 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(160, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((167)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_418 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(374, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_418 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(136, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_419 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_419 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_420 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_420 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_421 = (function() {if ($truthy(($ret_or_422 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_422 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_421 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_423 = self.escape))) { - return $ret_or_423 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(167, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((381)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_424 = self.escape))) { - return $ret_or_424 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((116)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_425 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(381, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_425 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(116, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_426 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_426 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_427 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_427 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_428 = (function() {if ($truthy(($ret_or_429 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_429 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_428 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_430 = self.escape))) { - return $ret_or_430 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(148, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((148)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_431 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(362, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_431 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(62, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.newline_s = p;; + } else if ($eqeqeq(221, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(236, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(248, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(270, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(285, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(297, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(323, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(399, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(409, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(430, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(102, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(482, $ret_or_1)) { + + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$18(chars){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + } else if ($eqeqeq(446, $ret_or_1)) { + + + self.num_base = 8; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$19(chars){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + } else if ($eqeqeq(461, $ret_or_1)) { + + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$20(chars){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_432 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_432 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_433 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_433 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_434 = (function() {if ($truthy(($ret_or_435 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_435 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_434 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_436 = self.escape))) { - return $ret_or_436 + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(454, $ret_or_1)) { + + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$21(chars){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tFLOAT", self.$Float(chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((362)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_437 = self.escape))) { - return $ret_or_437 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((62)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.newline_s = p;;} - else if ((221)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((236)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((248)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((270)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1); - - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((285)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((297)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((323)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((399)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((409)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((430)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((102)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((482)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$28 = function(chars){var self = $$28.$$s == null ? this : $$28.$$s; + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(450, $ret_or_1)) { + + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$22(chars){var self = $$22.$$s == null ? this : $$22.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tFLOAT", self.$Float(chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(276, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$28.$$s = self, $$28.$$arity = 1, $$28));;} - else if ((446)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$29 = function(chars){var self = $$29.$$s == null ? this : $$29.$$s; - + self.te = $rb_plus(p, 1);; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$29.$$s = self, $$29.$$arity = 1, $$29));;} - else if ((461)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$30 = function(chars){var self = $$30.$$s == null ? this : $$30.$$s; - + self.newline_s = p;; + self.act = 79;; + } else if ($eqeqeq(36, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$30.$$s = self, $$30.$$arity = 1, $$30));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_438 = (function() {if ($truthy(($ret_or_439 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_439 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_438 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_440 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_440 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = $rb_plus(p, 1);; - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((454)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$31 = function(chars){var self = $$31.$$s == null ? this : $$31.$$s; - + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + self.act = 78;; + } else if ($eqeqeq(47, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tFLOAT", self.$Float(chars));}, $$31.$$s = self, $$31.$$arity = 1, $$31));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((450)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$32 = function(chars){var self = $$32.$$s == null ? this : $$32.$$s; - + self.te = $rb_plus(p, 1);; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; - if (chars == null) { - chars = nil; - }; - return self.$emit("tFLOAT", self.$Float(chars));}, $$32.$$s = self, $$32.$$arity = 1, $$32));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.act = 86;; + } else if ($eqeqeq(94, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((276)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.newline_s = p;; - - self.act = 79;;} - else if ((36)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.act = 78;;} - else if ((47)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.act = 86;;} - else if ((94)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.act = 181;;} - else if ((66)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 99;;} - else if ((85)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 147;;} - else if ((93)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 181;;} - else if ((38)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - tm = p;; - - self.act = 73;;} - else if ((391)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - tm = p;; - - self.act = 127;;} - else if ((390)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - tm = p;; - - self.act = 128;;} - else if ((483)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.act = 154;;} - else if ((127)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_441 = $rb_ge(self.version, 30)))) { + self.act = 181;; + } else if ($eqeqeq(66, $ret_or_1)) { - if ($truthy(($ret_or_442 = codepoint['$=='](117)))) { - return $ret_or_442 - } else { - return codepoint['$=='](85) + + self.te = $rb_plus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.act = 99;; + } else if ($eqeqeq(85, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.act = 147;; + } else if ($eqeqeq(93, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.act = 181;; + } else if ($eqeqeq(38, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + tm = p;; + + self.act = 73;; + } else if ($eqeqeq(391, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + tm = p;; + + self.act = 127;; + } else if ($eqeqeq(390, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + tm = p;; + + self.act = 128;; + } else if ($eqeqeq(483, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.act = 154;; + } else if ($eqeqeq(127, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_441 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_443 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_443 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_444 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_444 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_445 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_445 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_446 = (function() {if ($truthy(($ret_or_447 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_447 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_446 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_448 = self.escape))) { - return $ret_or_448 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((158)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_449 = $rb_ge(self.version, 30)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(158, $ret_or_1)) { - if ($truthy(($ret_or_450 = codepoint['$=='](117)))) { - return $ret_or_450 - } else { - return codepoint['$=='](85) + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_449 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_451 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_451 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_452 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_452 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_453 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_453 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_454 = (function() {if ($truthy(($ret_or_455 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_455 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_454 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_456 = self.escape))) { - return $ret_or_456 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((372)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_457 = $rb_ge(self.version, 30)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(372, $ret_or_1)) { - if ($truthy(($ret_or_458 = codepoint['$=='](117)))) { - return $ret_or_458 - } else { - return codepoint['$=='](85) - }; - } else { - return $ret_or_457 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_459 = self.escape))) { - return $ret_or_459 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((125)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_460 = $rb_ge(self.version, 27)))) { - if ($truthy(($ret_or_461 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_461 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_460 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_462 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_462 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_463 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_463 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_464 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_464 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_465 = (function() {if ($truthy(($ret_or_466 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_466 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_465 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_467 = self.escape))) { - return $ret_or_467 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((156)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_468 = $rb_ge(self.version, 27)))) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - if ($truthy(($ret_or_469 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_469 + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_468 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_470 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_470 - }; return nil; })())) { + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(125, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_471 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_471 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_472 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_472 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_473 = (function() {if ($truthy(($ret_or_474 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_474 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_473 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_475 = self.escape))) { - return $ret_or_475 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((370)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_476 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(156, $ret_or_1)) { - if ($truthy(($ret_or_477 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_477 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) - }; - } else { - return $ret_or_476 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_478 = self.escape))) { - return $ret_or_478 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((132)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_479 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_479 - }; return nil; })())) { + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_480 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_480 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_481 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_481 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_482 = (function() {if ($truthy(($ret_or_483 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_483 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_482 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_484 = self.escape))) { - return $ret_or_484 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(370, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((163)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_485 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(132, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return $ret_or_485 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(163, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_486 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_486 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_487 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_487 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_488 = (function() {if ($truthy(($ret_or_489 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_489 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_488 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_490 = self.escape))) { - return $ret_or_490 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(377, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((377)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_491 = self.escape))) { - return $ret_or_491 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((128)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_492 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(128, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return $ret_or_492 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(159, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_493 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_493 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_494 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_494 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_495 = (function() {if ($truthy(($ret_or_496 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_496 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_495 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_497 = self.escape))) { - return $ret_or_497 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(373, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((159)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_498 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(478, $ret_or_1)) { + + + self.num_base = 16; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$23(chars){var self = $$23.$$s == null ? this : $$23.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - return $ret_or_498 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(472, $ret_or_1)) { + + + self.num_base = 10; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$24(chars){var self = $$24.$$s == null ? this : $$24.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_499 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_499 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_500 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_500 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_501 = (function() {if ($truthy(($ret_or_502 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_502 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_501 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_503 = self.escape))) { - return $ret_or_503 + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(475, $ret_or_1)) { + + + self.num_base = 8; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$25(chars){var self = $$25.$$s == null ? this : $$25.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((373)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_504 = self.escape))) { - return $ret_or_504 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((478)['$===']($case)) { - - self.num_base = 16; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$33 = function(chars){var self = $$33.$$s == null ? this : $$33.$$s; + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(469, $ret_or_1)) { + + + self.num_base = 2; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$26(chars){var self = $$26.$$s == null ? this : $$26.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.te = p; + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; - return self.$emit("tINTEGER", chars);}, $$33.$$s = self, $$33.$$arity = 1, $$33));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_505 = (function() {if ($truthy(($ret_or_506 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_506 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_505 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_507 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_507 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(481, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((472)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$34 = function(chars){var self = $$34.$$s == null ? this : $$34.$$s; + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$27(chars){var self = $$27.$$s == null ? this : $$27.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.te = p; + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; - return self.$emit("tINTEGER", chars);}, $$34.$$s = self, $$34.$$arity = 1, $$34));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_508 = (function() {if ($truthy(($ret_or_509 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_509 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_508 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_510 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_510 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(445, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((475)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$35 = function(chars){var self = $$35.$$s == null ? this : $$35.$$s; + + self.num_base = 8; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$28(chars){var self = $$28.$$s == null ? this : $$28.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(32, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + tm = p;; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$35.$$s = self, $$35.$$arity = 1, $$35));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_511 = (function() {if ($truthy(($ret_or_512 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_512 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_511 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_513 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_513 - }; return nil; })())) { + self.act = 73;; + } else if ($eqeqeq(63, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((469)['$===']($case)) { - - self.num_base = 2; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$36 = function(chars){var self = $$36.$$s == null ? this : $$36.$$s; - + self.te = $rb_plus(p, 1);; + self.sharp_s = $rb_minus(p, 1);; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$36.$$s = self, $$36.$$arity = 1, $$36));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_514 = (function() {if ($truthy(($ret_or_515 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_515 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_514 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_516 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_516 - }; return nil; })())) { + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.act = 99;; + } else if ($eqeqeq(92, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((481)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$37 = function(chars){var self = $$37.$$s == null ? this : $$37.$$s; - + self.te = $rb_plus(p, 1);; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$37.$$s = self, $$37.$$arity = 1, $$37));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_517 = (function() {if ($truthy(($ret_or_518 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_518 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_517 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_519 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_519 - }; return nil; })())) { + self.sharp_s = $rb_minus(p, 1);; - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((445)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$38 = function(chars){var self = $$38.$$s == null ? this : $$38.$$s; + self.act = 181;; + } else if ($eqeqeq(488, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$29(chars){var self = $$29.$$s == null ? this : $$29.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.act = 156;; + } else if ($eqeqeq(484, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$38.$$s = self, $$38.$$arity = 1, $$38));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_520 = (function() {if ($truthy(($ret_or_521 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_521 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_520 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_522 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_522 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = $rb_plus(p, 1);; - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((32)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { + self.num_base = 10; + self.num_digits_s = self.ts;; - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;; - - self.act = 73;;} - else if ((63)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 99;;} - else if ((92)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 181;;} - else if ((488)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$39 = function(chars){var self = $$39.$$s == null ? this : $$39.$$s; + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$30(chars){var self = $$30.$$s == null ? this : $$30.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.act = 156;; + } else if ($eqeqeq(448, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$39.$$s = self, $$39.$$arity = 1, $$39));; - - self.act = 156;;} - else if ((484)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$40 = function(chars){var self = $$40.$$s == null ? this : $$40.$$s; - + self.te = $rb_plus(p, 1);; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$40.$$s = self, $$40.$$arity = 1, $$40));; - - self.act = 156;;} - else if ((448)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$41 = function(chars){var self = $$41.$$s == null ? this : $$41.$$s; - + self.num_base = 8; + self.num_digits_s = self.ts;; + self.num_suffix_s = p;; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$41.$$s = self, $$41.$$arity = 1, $$41));; - - self.act = 156;;}};}; + self.num_xfrm = $send(self, 'lambda', [], function $$31(chars){var self = $$31.$$s == null ? this : $$31.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.act = 156;; + } else { + nil + } + }; + }; if ($truthy($rb_le(_goto_level, _again))) { - $case = _lex_to_state_actions['$[]'](self.cs); - if ((96)['$===']($case)) { - self.ts = nil;}; - if (self.cs['$=='](0)) { + if ($eqeqeq(96, ($ret_or_1 = _lex_to_state_actions['$[]'](self.cs)))) { + + self.ts = nil; + } else { + nil + }; + if ($eqeq(self.cs, 0)) { _goto_level = _out; - continue;;}; + continue;; + }; p = $rb_plus(p, 1); - if ($truthy(p['$!='](pe))) { + if ($neqeq(p, pe)) { _goto_level = _resume; - continue;;};}; + continue;; + }; + }; if ($truthy($rb_le(_goto_level, _test_eof))) { - if (p['$=='](eof)) { + if ($eqeq(p, eof)) { if ($truthy($rb_gt(_lex_eof_trans['$[]'](self.cs), 0))) { _trans = $rb_minus(_lex_eof_trans['$[]'](self.cs), 1); _goto_level = _eof_trans; - continue;;}}}; + continue;; + } + } + }; if ($truthy($rb_le(_goto_level, _out))) { - break;}; + break; + }; };; if ($truthy(false)) { - testEof}; + testEof + }; self.p = p; if ($truthy(self.token_queue['$any?']())) { return self.token_queue.$shift() - } else if (self.cs['$=='](klass.$lex_error())) { + } else if ($eqeq(self.cs, klass.$lex_error())) { return [false, ["$error".$freeze(), self.$range($rb_minus(p, 1), p)]] } else { eof = self.source_pts.$size(); return [false, ["$eof".$freeze(), self.$range(eof, eof)]]; }; - }, $Lexer_advance$12.$$arity = 0); + }, 0); self.$protected(); - Opal.def(self, '$eof_codepoint?', $Lexer_eof_codepoint$ques$42 = function(point) { - var self = this; - + $def(self, '$eof_codepoint?', function $Lexer_eof_codepoint$ques$32(point) { + return [4, 26, 0]['$include?'](point) - }, $Lexer_eof_codepoint$ques$42.$$arity = 1); + }, 1); - Opal.def(self, '$version?', $Lexer_version$ques$43 = function($a) { + $def(self, '$version?', function $Lexer_version$ques$33($a) { var $post_args, versions, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); versions = $post_args;; return versions['$include?'](self.version); - }, $Lexer_version$ques$43.$$arity = -1); + }, -1); - Opal.def(self, '$stack_pop', $Lexer_stack_pop$44 = function $$stack_pop() { + $def(self, '$stack_pop', function $$stack_pop() { var self = this; self.top = $rb_minus(self.top, 1); return self.stack['$[]'](self.top); - }, $Lexer_stack_pop$44.$$arity = 0); + }, 0); - Opal.def(self, '$encode_escape', $Lexer_encode_escape$45 = function $$encode_escape(ord) { + $def(self, '$encode_escape', function $$encode_escape(ord) { var self = this; return ord.$chr().$force_encoding(self.source_buffer.$source().$encoding()) - }, $Lexer_encode_escape$45.$$arity = 1); + }, 1); - Opal.def(self, '$tok', $Lexer_tok$46 = function $$tok(s, e) { + $def(self, '$tok', function $$tok(s, e) { var self = this; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; + if (e == null) e = self.te;; return self.source_buffer.$slice(Opal.Range.$new(s,e, true)); - }, $Lexer_tok$46.$$arity = -1); + }, -1); - Opal.def(self, '$range', $Lexer_range$47 = function $$range(s, e) { + $def(self, '$range', function $$range(s, e) { var self = this; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; - return $$$($$$($$($nesting, 'Parser'), 'Source'), 'Range').$new(self.source_buffer, s, e); - }, $Lexer_range$47.$$arity = -1); + if (e == null) e = self.te;; + return $$$($$$($$('Parser'), 'Source'), 'Range').$new(self.source_buffer, s, e); + }, -1); - Opal.def(self, '$emit', $Lexer_emit$48 = function $$emit(type, value, s, e) { + $def(self, '$emit', function $$emit(type, value, s, e) { var self = this, token = nil; - if (value == null) { - value = self.$tok(); - }; + if (value == null) value = self.$tok();; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; + if (e == null) e = self.te;; token = [type, [value, self.$range(s, e)]]; self.token_queue.$push(token); if ($truthy(self.tokens)) { - self.tokens.$push(token)}; + self.tokens.$push(token) + }; return token; - }, $Lexer_emit$48.$$arity = -2); + }, -2); - Opal.def(self, '$emit_table', $Lexer_emit_table$49 = function $$emit_table(table, s, e) { + $def(self, '$emit_table', function $$emit_table(table, s, e) { var self = this, value = nil; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; + if (e == null) e = self.te;; value = self.$tok(s, e); return self.$emit(table['$[]'](value), value, s, e); - }, $Lexer_emit_table$49.$$arity = -2); + }, -2); - Opal.def(self, '$emit_do', $Lexer_emit_do$50 = function $$emit_do(do_block) { - var self = this, $ret_or_523 = nil; + $def(self, '$emit_do', function $$emit_do(do_block) { + var self = this; - if (do_block == null) { - do_block = false; - }; + if (do_block == null) do_block = false;; if ($truthy(self.cond['$active?']())) { return self.$emit("kDO_COND", "do".$freeze()) - } else if ($truthy((function() {if ($truthy(($ret_or_523 = self.cmdarg['$active?']()))) { - return $ret_or_523 - } else { - return do_block - }; return nil; })())) { + } else if (($truthy(self.cmdarg['$active?']()) || ($truthy(do_block)))) { return self.$emit("kDO_BLOCK", "do".$freeze()) } else { return self.$emit("kDO", "do".$freeze()) }; - }, $Lexer_emit_do$50.$$arity = -1); + }, -1); - Opal.def(self, '$arg_or_cmdarg', $Lexer_arg_or_cmdarg$51 = function $$arg_or_cmdarg(cmd_state) { + $def(self, '$arg_or_cmdarg', function $$arg_or_cmdarg(cmd_state) { var self = this; if ($truthy(cmd_state)) { @@ -19936,87 +17124,67 @@ Opal.modules["parser/lexer"] = function(Opal) { } else { return self.$class().$lex_en_expr_arg() } - }, $Lexer_arg_or_cmdarg$51.$$arity = 1); + }, 1); - Opal.def(self, '$emit_comment', $Lexer_emit_comment$52 = function $$emit_comment(s, e) { + $def(self, '$emit_comment', function $$emit_comment(s, e) { var self = this; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; + if (e == null) e = self.te;; if ($truthy(self.comments)) { - self.comments.$push($$$($$$($$($nesting, 'Parser'), 'Source'), 'Comment').$new(self.$range(s, e)))}; + self.comments.$push($$$($$$($$('Parser'), 'Source'), 'Comment').$new(self.$range(s, e))) + }; if ($truthy(self.tokens)) { - self.tokens.$push(["tCOMMENT", [self.$tok(s, e), self.$range(s, e)]])}; + self.tokens.$push(["tCOMMENT", [self.$tok(s, e), self.$range(s, e)]]) + }; return nil; - }, $Lexer_emit_comment$52.$$arity = -1); + }, -1); - Opal.def(self, '$diagnostic', $Lexer_diagnostic$53 = function $$diagnostic(type, reason, arguments$, location, highlights) { + $def(self, '$diagnostic', function $$diagnostic(type, reason, arguments$, location, highlights) { var self = this; - if (arguments$ == null) { - arguments$ = nil; - }; + if (arguments$ == null) arguments$ = nil;; - if (location == null) { - location = self.$range(); - }; + if (location == null) location = self.$range();; - if (highlights == null) { - highlights = []; - }; - return self.diagnostics.$process($$$($$($nesting, 'Parser'), 'Diagnostic').$new(type, reason, arguments$, location, highlights)); - }, $Lexer_diagnostic$53.$$arity = -3); + if (highlights == null) highlights = [];; + return self.diagnostics.$process($$$($$('Parser'), 'Diagnostic').$new(type, reason, arguments$, location, highlights)); + }, -3); - Opal.def(self, '$push_literal', $Lexer_push_literal$54 = function $$push_literal($a) { + $def(self, '$push_literal', function $$push_literal($a) { var $post_args, args, self = this, new_literal = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - new_literal = $send($$($nesting, 'Literal'), 'new', [self].concat(Opal.to_a(args))); + new_literal = $send($$('Literal'), 'new', [self].concat($to_a(args))); self.literal_stack.$push(new_literal); return self.$next_state_for_literal(new_literal); - }, $Lexer_push_literal$54.$$arity = -1); + }, -1); - Opal.def(self, '$next_state_for_literal', $Lexer_next_state_for_literal$55 = function $$next_state_for_literal(literal) { - var self = this, $ret_or_524 = nil, $ret_or_525 = nil, $ret_or_526 = nil; + $def(self, '$next_state_for_literal', function $$next_state_for_literal(literal) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_524 = literal['$words?']()))) { - return literal['$backslash_delimited?']() - } else { - return $ret_or_524 - }; return nil; })())) { + if (($truthy(literal['$words?']()) && ($truthy(literal['$backslash_delimited?']())))) { if ($truthy(literal['$interpolate?']())) { return self.$class().$lex_en_interp_backslash_delimited_words() } else { return self.$class().$lex_en_plain_backslash_delimited_words() } - } else if ($truthy((function() {if ($truthy(($ret_or_525 = literal['$words?']()))) { - return literal['$backslash_delimited?']()['$!']() - } else { - return $ret_or_525 - }; return nil; })())) { + } else if (($truthy(literal['$words?']()) && ($not(literal['$backslash_delimited?']())))) { if ($truthy(literal['$interpolate?']())) { return self.$class().$lex_en_interp_words() } else { return self.$class().$lex_en_plain_words() } - } else if ($truthy((function() {if ($truthy(($ret_or_526 = literal['$words?']()['$!']()))) { - return literal['$backslash_delimited?']() - } else { - return $ret_or_526 - }; return nil; })())) { + } else if (($not(literal['$words?']()) && ($truthy(literal['$backslash_delimited?']())))) { if ($truthy(literal['$interpolate?']())) { return self.$class().$lex_en_interp_backslash_delimited() } else { @@ -20027,111 +17195,85 @@ Opal.modules["parser/lexer"] = function(Opal) { } else { return self.$class().$lex_en_plain_string() } - }, $Lexer_next_state_for_literal$55.$$arity = 1); + }, 1); - Opal.def(self, '$literal', $Lexer_literal$56 = function $$literal() { + $def(self, '$literal', function $$literal() { var self = this; return self.literal_stack.$last() - }, $Lexer_literal$56.$$arity = 0); + }, 0); - Opal.def(self, '$pop_literal', $Lexer_pop_literal$57 = function $$pop_literal() { + $def(self, '$pop_literal', function $$pop_literal() { var self = this, old_literal = nil; old_literal = self.literal_stack.$pop(); self.dedent_level = old_literal.$dedent_level(); - if (old_literal.$type()['$==']("tREGEXP_BEG")) { + if ($eqeq(old_literal.$type(), "tREGEXP_BEG")) { return self.$class().$lex_en_regexp_modifiers() } else { return self.$class().$lex_en_expr_end() }; - }, $Lexer_pop_literal$57.$$arity = 0); - Opal.const_set($nesting[0], 'PUNCTUATION', $hash2(["=", "&", "|", "!", "^", "+", "-", "*", "/", "%", "~", ",", ";", ".", "..", "...", "[", "]", "(", ")", "?", ":", "&&", "||", "-@", "+@", "~@", "**", "->", "=~", "!~", "==", "!=", ">", ">>", ">=", "<", "<<", "<=", "=>", "::", "===", "<=>", "[]", "[]=", "{", "}", "`", "!@", "&."], {"=": "tEQL", "&": "tAMPER2", "|": "tPIPE", "!": "tBANG", "^": "tCARET", "+": "tPLUS", "-": "tMINUS", "*": "tSTAR2", "/": "tDIVIDE", "%": "tPERCENT", "~": "tTILDE", ",": "tCOMMA", ";": "tSEMI", ".": "tDOT", "..": "tDOT2", "...": "tDOT3", "[": "tLBRACK2", "]": "tRBRACK", "(": "tLPAREN2", ")": "tRPAREN", "?": "tEH", ":": "tCOLON", "&&": "tANDOP", "||": "tOROP", "-@": "tUMINUS", "+@": "tUPLUS", "~@": "tTILDE", "**": "tPOW", "->": "tLAMBDA", "=~": "tMATCH", "!~": "tNMATCH", "==": "tEQ", "!=": "tNEQ", ">": "tGT", ">>": "tRSHFT", ">=": "tGEQ", "<": "tLT", "<<": "tLSHFT", "<=": "tLEQ", "=>": "tASSOC", "::": "tCOLON2", "===": "tEQQ", "<=>": "tCMP", "[]": "tAREF", "[]=": "tASET", "{": "tLCURLY", "}": "tRCURLY", "`": "tBACK_REF2", "!@": "tBANG", "&.": "tANDDOT"})); - Opal.const_set($nesting[0], 'PUNCTUATION_BEGIN', $hash2(["&", "*", "**", "+", "-", "::", "(", "{", "["], {"&": "tAMPER", "*": "tSTAR", "**": "tDSTAR", "+": "tUPLUS", "-": "tUMINUS", "::": "tCOLON3", "(": "tLPAREN", "{": "tLBRACE", "[": "tLBRACK"})); - Opal.const_set($nesting[0], 'KEYWORDS', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF_MOD", "unless": "kUNLESS_MOD", "while": "kWHILE_MOD", "until": "kUNTIL_MOD", "rescue": "kRESCUE_MOD", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); - Opal.const_set($nesting[0], 'KEYWORDS_BEGIN', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF", "unless": "kUNLESS", "while": "kWHILE", "until": "kUNTIL", "rescue": "kRESCUE", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); - return $send(["class", "module", "def", "undef", "begin", "end", "then", "elsif", "else", "ensure", "case", "when", "for", "break", "next", "redo", "retry", "in", "do", "return", "yield", "super", "self", "nil", "true", "false", "and", "or", "not", "alias", "__FILE__", "__LINE__", "__ENCODING__"], 'each', [], ($Lexer$58 = function(keyword){var self = $Lexer$58.$$s == null ? this : $Lexer$58.$$s; - - - - if (keyword == null) { - keyword = nil; - }; - $writer = [keyword, (($writer = [keyword, "" + "k" + (keyword.$upcase())]), $send($$($nesting, 'KEYWORDS'), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; - $send($$($nesting, 'KEYWORDS_BEGIN'), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $Lexer$58.$$s = self, $Lexer$58.$$arity = 1, $Lexer$58)); - })($$($nesting, 'Parser'), null, $nesting) + }, 0); + $const_set($nesting[0], 'PUNCTUATION', $hash2(["=", "&", "|", "!", "^", "+", "-", "*", "/", "%", "~", ",", ";", ".", "..", "...", "[", "]", "(", ")", "?", ":", "&&", "||", "-@", "+@", "~@", "**", "->", "=~", "!~", "==", "!=", ">", ">>", ">=", "<", "<<", "<=", "=>", "::", "===", "<=>", "[]", "[]=", "{", "}", "`", "!@", "&."], {"=": "tEQL", "&": "tAMPER2", "|": "tPIPE", "!": "tBANG", "^": "tCARET", "+": "tPLUS", "-": "tMINUS", "*": "tSTAR2", "/": "tDIVIDE", "%": "tPERCENT", "~": "tTILDE", ",": "tCOMMA", ";": "tSEMI", ".": "tDOT", "..": "tDOT2", "...": "tDOT3", "[": "tLBRACK2", "]": "tRBRACK", "(": "tLPAREN2", ")": "tRPAREN", "?": "tEH", ":": "tCOLON", "&&": "tANDOP", "||": "tOROP", "-@": "tUMINUS", "+@": "tUPLUS", "~@": "tTILDE", "**": "tPOW", "->": "tLAMBDA", "=~": "tMATCH", "!~": "tNMATCH", "==": "tEQ", "!=": "tNEQ", ">": "tGT", ">>": "tRSHFT", ">=": "tGEQ", "<": "tLT", "<<": "tLSHFT", "<=": "tLEQ", "=>": "tASSOC", "::": "tCOLON2", "===": "tEQQ", "<=>": "tCMP", "[]": "tAREF", "[]=": "tASET", "{": "tLCURLY", "}": "tRCURLY", "`": "tBACK_REF2", "!@": "tBANG", "&.": "tANDDOT"})); + $const_set($nesting[0], 'PUNCTUATION_BEGIN', $hash2(["&", "*", "**", "+", "-", "::", "(", "{", "["], {"&": "tAMPER", "*": "tSTAR", "**": "tDSTAR", "+": "tUPLUS", "-": "tUMINUS", "::": "tCOLON3", "(": "tLPAREN", "{": "tLBRACE", "[": "tLBRACK"})); + $const_set($nesting[0], 'KEYWORDS', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF_MOD", "unless": "kUNLESS_MOD", "while": "kWHILE_MOD", "until": "kUNTIL_MOD", "rescue": "kRESCUE_MOD", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); + $const_set($nesting[0], 'KEYWORDS_BEGIN', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF", "unless": "kUNLESS", "while": "kWHILE", "until": "kUNTIL", "rescue": "kRESCUE", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); + return $send(["class", "module", "def", "undef", "begin", "end", "then", "elsif", "else", "ensure", "case", "when", "for", "break", "next", "redo", "retry", "in", "do", "return", "yield", "super", "self", "nil", "true", "false", "and", "or", "not", "alias", "__FILE__", "__LINE__", "__ENCODING__"], 'each', [], function $Lexer$34(keyword){ + + + if (keyword == null) keyword = nil;; + $writer = [keyword, (($writer = [keyword, "k" + (keyword.$upcase())]), $send($$('KEYWORDS'), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; + $send($$('KEYWORDS_BEGIN'), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + })($$('Parser'), null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/lexer/literal"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $enc = Opal.enc, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$attr_accessor', '$coerce_encoding', '$include?', '$send', '$+', '$[]', '$fetch', '$==', '$!', '$heredoc?', '$start_with?', '$freeze', '$clear_buffer', '$emit_start_tok', '$type', '$words?', '$=~', '$delimiter?', '$-', '$extend_space', '$!=', '$flush_string', '$emit', '$each_char', '$===', '$%', '$nil?', '$>', '$<<', '$empty?', '$extend_content', '$protected', '$lstrip', '$b', '$dup', '$force_encoding', '$encoding', '$source', '$source_buffer', '$length']); +Opal.modules["parser/lexer/literal"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $hash2 = Opal.hash2, $enc = Opal.enc, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $to_ary = Opal.to_ary, $def = Opal.def, $eqeq = Opal.eqeq, $rb_minus = Opal.rb_minus, $neqeq = Opal.neqeq, $not = Opal.not, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $rb_gt = Opal.rb_gt; + + Opal.add_stubs('attr_reader,attr_accessor,coerce_encoding,include?,send,+,[],fetch,==,!,heredoc?,start_with?,freeze,clear_buffer,emit_start_tok,type,=~,words?,delimiter?,-,extend_space,!=,flush_string,emit,each_char,===,%,>,nil?,<<,empty?,extend_content,protected,lstrip,b,dup,force_encoding,encoding,source,source_buffer,length'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Literal'); - var $nesting = [self].concat($parent_nesting), $Literal_initialize$1, $Literal_interpolate$ques$2, $Literal_words$ques$3, $Literal_regexp$ques$4, $Literal_heredoc$ques$5, $Literal_plain_heredoc$ques$6, $Literal_squiggly_heredoc$ques$7, $Literal_backslash_delimited$ques$8, $Literal_type$9, $Literal_munge_escape$ques$10, $Literal_nest_and_try_closing$11, $Literal_infer_indent_level$12, $Literal_start_interp_brace$14, $Literal_end_interp_brace_and_try_closing$15, $Literal_extend_string$16, $Literal_flush_string$17, $Literal_extend_content$18, $Literal_extend_space$19, $Literal_supports_line_continuation_via_slash$ques$20, $Literal_delimiter$ques$21, $Literal_coerce_encoding$22, $Literal_clear_buffer$23, $Literal_emit_start_tok$24, $Literal_emit$25; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.lexer = self.$$prototype.start_tok = self.$$prototype.str_type = self.$$prototype.monolithic = self.$$prototype.interpolate = self.$$prototype.heredoc_e = self.$$prototype.dedent_body = self.$$prototype.end_delim = self.$$prototype.start_delim = self.$$prototype.nesting = self.$$prototype.label_allowed = self.$$prototype.buffer = self.$$prototype.str_s = self.$$prototype.interp_braces = self.$$prototype.buffer_s = self.$$prototype.buffer_e = self.$$prototype.space_emitted = self.$$prototype.indent = nil; + $proto.lexer = $proto.start_tok = $proto.str_type = $proto.monolithic = $proto.interpolate = $proto.heredoc_e = $proto.dedent_body = $proto.end_delim = $proto.start_delim = $proto.nesting = $proto.label_allowed = $proto.buffer = $proto.str_s = $proto.interp_braces = $proto.buffer_s = $proto.buffer_e = $proto.space_emitted = $proto.indent = nil; - Opal.const_set($nesting[0], 'DELIMITERS', $hash2(["(", "[", "{", "<"], {"(": $enc(")", "ASCII-8BIT"), "[": $enc("]", "ASCII-8BIT"), "{": $enc("}", "ASCII-8BIT"), "<": $enc(">", "ASCII-8BIT")})); - Opal.const_set($nesting[0], 'TYPES', $hash2(["'", "<<'", "%q", "\"", "<<\"", "%", "%Q", "%w", "%W", "%i", "%I", ":'", "%s", ":\"", "/", "%r", "%x", "`", "<<`"], {"'": ["tSTRING_BEG", false], "<<'": ["tSTRING_BEG", false], "%q": ["tSTRING_BEG", false], "\"": ["tSTRING_BEG", true], "<<\"": ["tSTRING_BEG", true], "%": ["tSTRING_BEG", true], "%Q": ["tSTRING_BEG", true], "%w": ["tQWORDS_BEG", false], "%W": ["tWORDS_BEG", true], "%i": ["tQSYMBOLS_BEG", false], "%I": ["tSYMBOLS_BEG", true], ":'": ["tSYMBEG", false], "%s": ["tSYMBEG", false], ":\"": ["tSYMBEG", true], "/": ["tREGEXP_BEG", true], "%r": ["tREGEXP_BEG", true], "%x": ["tXSTRING_BEG", true], "`": ["tXSTRING_BEG", true], "<<`": ["tXSTRING_BEG", true]})); + $const_set($nesting[0], 'DELIMITERS', $hash2(["(", "[", "{", "<"], {"(": $enc(")", "ASCII-8BIT"), "[": $enc("]", "ASCII-8BIT"), "{": $enc("}", "ASCII-8BIT"), "<": $enc(">", "ASCII-8BIT")})); + $const_set($nesting[0], 'TYPES', $hash2(["'", "<<'", "%q", "\"", "<<\"", "%", "%Q", "%w", "%W", "%i", "%I", ":'", "%s", ":\"", "/", "%r", "%x", "`", "<<`"], {"'": ["tSTRING_BEG", false], "<<'": ["tSTRING_BEG", false], "%q": ["tSTRING_BEG", false], "\"": ["tSTRING_BEG", true], "<<\"": ["tSTRING_BEG", true], "%": ["tSTRING_BEG", true], "%Q": ["tSTRING_BEG", true], "%w": ["tQWORDS_BEG", false], "%W": ["tWORDS_BEG", true], "%i": ["tQSYMBOLS_BEG", false], "%I": ["tSYMBOLS_BEG", true], ":'": ["tSYMBEG", false], "%s": ["tSYMBEG", false], ":\"": ["tSYMBEG", true], "/": ["tREGEXP_BEG", true], "%r": ["tREGEXP_BEG", true], "%x": ["tXSTRING_BEG", true], "`": ["tXSTRING_BEG", true], "<<`": ["tXSTRING_BEG", true]})); self.$attr_reader("heredoc_e", "str_s", "dedent_level"); self.$attr_accessor("saved_herebody_s"); - Opal.def(self, '$initialize', $Literal_initialize$1 = function $$initialize(lexer, str_type, delimiter, str_s, heredoc_e, indent, dedent_body, label_allowed) { + $def(self, '$initialize', function $$initialize(lexer, str_type, delimiter, str_s, heredoc_e, indent, dedent_body, label_allowed) { var $a, $b, self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if (heredoc_e == null) { - heredoc_e = nil; - }; + if (heredoc_e == null) heredoc_e = nil;; - if (indent == null) { - indent = false; - }; + if (indent == null) indent = false;; - if (dedent_body == null) { - dedent_body = false; - }; + if (dedent_body == null) dedent_body = false;; - if (label_allowed == null) { - label_allowed = false; - }; + if (label_allowed == null) label_allowed = false;; self.lexer = lexer; self.nesting = 1; str_type = self.$coerce_encoding(str_type); delimiter = self.$coerce_encoding(delimiter); - if ($truthy($$($nesting, 'TYPES')['$include?'](str_type))) { - } else { + if (!$truthy($$('TYPES')['$include?'](str_type))) { lexer.$send("diagnostic", "error", "unexpected_percent_str", $hash2(["type"], {"type": str_type}), self.lexer.$send("range", str_s, $rb_plus(str_s, 2))) }; self.str_type = str_type; self.str_s = str_s; - $b = $$($nesting, 'TYPES')['$[]'](str_type), $a = Opal.to_ary($b), (self.start_tok = ($a[0] == null ? nil : $a[0])), (self.interpolate = ($a[1] == null ? nil : $a[1])), $b; - self.start_delim = (function() {if ($truthy($$($nesting, 'DELIMITERS')['$include?'](delimiter))) { - return delimiter - } else { - return nil - }; return nil; })(); - self.end_delim = $$($nesting, 'DELIMITERS').$fetch(delimiter, delimiter); + $b = $$('TYPES')['$[]'](str_type), $a = $to_ary($b), (self.start_tok = ($a[0] == null ? nil : $a[0])), (self.interpolate = ($a[1] == null ? nil : $a[1])), $b; + self.start_delim = ($truthy($$('DELIMITERS')['$include?'](delimiter)) ? (delimiter) : (nil)); + self.end_delim = $$('DELIMITERS').$fetch(delimiter, delimiter); self.heredoc_e = heredoc_e; self.indent = indent; self.label_allowed = label_allowed; @@ -20139,147 +17281,108 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { self.dedent_level = nil; self.interp_braces = 0; self.space_emitted = true; - self.monolithic = (function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.start_tok['$==']("tSTRING_BEG")))) { - return [$enc("'", "ASCII-8BIT"), $enc("\"", "ASCII-8BIT")]['$include?'](str_type) - } else { - return $ret_or_2 - }; return nil; })()))) { - return self['$heredoc?']()['$!']() - } else { - return $ret_or_1 - }; return nil; })(); + self.monolithic = ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.start_tok['$==']("tSTRING_BEG"))) ? ([$enc("'", "ASCII-8BIT"), $enc("\"", "ASCII-8BIT")]['$include?'](str_type)) : ($ret_or_2)))) ? (self['$heredoc?']()['$!']()) : ($ret_or_1)); if ($truthy(self.str_type['$start_with?']($enc("%", "ASCII-8BIT").$freeze()))) { - self.str_type = $rb_plus(self.str_type, delimiter)}; + self.str_type = $rb_plus(self.str_type, delimiter) + }; self.$clear_buffer(); if ($truthy(self.monolithic)) { return nil } else { return self.$emit_start_tok() }; - }, $Literal_initialize$1.$$arity = -5); + }, -5); - Opal.def(self, '$interpolate?', $Literal_interpolate$ques$2 = function() { + $def(self, '$interpolate?', function $Literal_interpolate$ques$1() { var self = this; return self.interpolate - }, $Literal_interpolate$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$words?', $Literal_words$ques$3 = function() { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$words?', function $Literal_words$ques$2() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.$type()['$==']("tWORDS_BEG")))) { - return $ret_or_5 - } else { - return self.$type()['$==']("tQWORDS_BEG") - }; return nil; })()))) { - return $ret_or_4 - } else { - return self.$type()['$==']("tSYMBOLS_BEG") - }; return nil; })()))) { - return $ret_or_3 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = self.$type()['$==']("tWORDS_BEG"))) ? ($ret_or_3) : (self.$type()['$==']("tQWORDS_BEG"))))) ? ($ret_or_2) : (self.$type()['$==']("tSYMBOLS_BEG")))))) { + return $ret_or_1 } else { return self.$type()['$==']("tQSYMBOLS_BEG") } - }, $Literal_words$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$regexp?', $Literal_regexp$ques$4 = function() { + $def(self, '$regexp?', function $Literal_regexp$ques$3() { var self = this; return self.$type()['$==']("tREGEXP_BEG") - }, $Literal_regexp$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$heredoc?', $Literal_heredoc$ques$5 = function() { + $def(self, '$heredoc?', function $Literal_heredoc$ques$4() { var self = this; return self.heredoc_e['$!']()['$!']() - }, $Literal_heredoc$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$plain_heredoc?', $Literal_plain_heredoc$ques$6 = function() { - var self = this, $ret_or_6 = nil; + $def(self, '$plain_heredoc?', function $Literal_plain_heredoc$ques$5() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_6 = self['$heredoc?']()))) { + if ($truthy(($ret_or_1 = self['$heredoc?']()))) { return self.dedent_body['$!']() } else { - return $ret_or_6 + return $ret_or_1 } - }, $Literal_plain_heredoc$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$squiggly_heredoc?', $Literal_squiggly_heredoc$ques$7 = function() { - var self = this, $ret_or_7 = nil; + $def(self, '$squiggly_heredoc?', function $Literal_squiggly_heredoc$ques$6() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_7 = self['$heredoc?']()))) { + if ($truthy(($ret_or_1 = self['$heredoc?']()))) { return self.dedent_body } else { - return $ret_or_7 + return $ret_or_1 } - }, $Literal_squiggly_heredoc$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$backslash_delimited?', $Literal_backslash_delimited$ques$8 = function() { + $def(self, '$backslash_delimited?', function $Literal_backslash_delimited$ques$7() { var self = this; return self.end_delim['$==']($enc("\\", "ASCII-8BIT").$freeze()) - }, $Literal_backslash_delimited$ques$8.$$arity = 0); + }, 0); - Opal.def(self, '$type', $Literal_type$9 = function $$type() { + $def(self, '$type', function $$type() { var self = this; return self.start_tok - }, $Literal_type$9.$$arity = 0); + }, 0); - Opal.def(self, '$munge_escape?', $Literal_munge_escape$ques$10 = function(character) { - var self = this, $ret_or_8 = nil; + $def(self, '$munge_escape?', function $Literal_munge_escape$ques$8(character) { + var self = this; character = self.$coerce_encoding(character); - if ($truthy((function() {if ($truthy(($ret_or_8 = self['$words?']()))) { - return character['$=~'](/[ \t\v\r\f\n]/) - } else { - return $ret_or_8 - }; return nil; })())) { + if (($truthy(self['$words?']()) && ($truthy(character['$=~'](/[ \t\v\r\f\n]/))))) { return true } else { return [$enc("\\", "ASCII-8BIT").$freeze(), self.start_delim, self.end_delim]['$include?'](character) }; - }, $Literal_munge_escape$ques$10.$$arity = 1); + }, 1); - Opal.def(self, '$nest_and_try_closing', $Literal_nest_and_try_closing$11 = function $$nest_and_try_closing(delimiter, ts, te, lookahead) { - var self = this, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + $def(self, '$nest_and_try_closing', function $$nest_and_try_closing(delimiter, ts, te, lookahead) { + var self = this; - if (lookahead == null) { - lookahead = nil; - }; + if (lookahead == null) lookahead = nil;; delimiter = self.$coerce_encoding(delimiter); - if ($truthy((function() {if ($truthy(($ret_or_9 = self.start_delim))) { - return self.start_delim['$=='](delimiter) - } else { - return $ret_or_9 - }; return nil; })())) { + if (($truthy(self.start_delim) && ($eqeq(self.start_delim, delimiter)))) { self.nesting = $rb_plus(self.nesting, 1) } else if ($truthy(self['$delimiter?'](delimiter))) { - self.nesting = $rb_minus(self.nesting, 1)}; - if (self.nesting['$=='](0)) { + self.nesting = $rb_minus(self.nesting, 1) + }; + if ($eqeq(self.nesting, 0)) { if ($truthy(self['$words?']())) { - self.$extend_space(ts, ts)}; - if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = lookahead))) { - return self.label_allowed - } else { - return $ret_or_13 - }; return nil; })()))) { - return lookahead['$[]'](0)['$==']($enc(":", "ASCII-8BIT")) - } else { - return $ret_or_12 - }; return nil; })()))) { - return lookahead['$[]'](1)['$!=']($enc(":", "ASCII-8BIT")) - } else { - return $ret_or_11 - }; return nil; })()))) { - return self.start_tok['$==']("tSTRING_BEG") - } else { - return $ret_or_10 - }; return nil; })())) { + self.$extend_space(ts, ts) + }; + if ((((($truthy(lookahead) && ($truthy(self.label_allowed))) && ($eqeq(lookahead['$[]'](0), $enc(":", "ASCII-8BIT")))) && ($neqeq(lookahead['$[]'](1), $enc(":", "ASCII-8BIT")))) && ($eqeq(self.start_tok, "tSTRING_BEG")))) { self.$flush_string(); return self.$emit("tLABEL_END", self.end_delim, ts, $rb_plus(te, 1)); @@ -20287,8 +17390,7 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { return self.$emit("tSTRING", self.buffer, self.str_s, te) } else { - if ($truthy(self['$heredoc?']())) { - } else { + if (!$truthy(self['$heredoc?']())) { self.$flush_string() }; return self.$emit("tSTRING_END", self.end_delim, ts, te); @@ -20296,74 +17398,70 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { } else { return nil }; - }, $Literal_nest_and_try_closing$11.$$arity = -4); + }, -4); - Opal.def(self, '$infer_indent_level', $Literal_infer_indent_level$12 = function $$infer_indent_level(line) { - var $$13, self = this, indent_level = nil; + $def(self, '$infer_indent_level', function $$infer_indent_level(line) { + var self = this, indent_level = nil; - if ($truthy(self.dedent_body['$!']())) { - return nil}; + if ($not(self.dedent_body)) { + return nil + }; indent_level = 0; - return (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], ($$13 = function(char$){var self = $$13.$$s == null ? this : $$13.$$s, $case = nil, $ret_or_14 = nil; + return (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], function $$9(char$){var self = $$9.$$s == null ? this : $$9.$$s, $ret_or_1 = nil; if (self.dedent_level == null) self.dedent_level = nil; - if (char$ == null) { - char$ = nil; - }; - return (function() {$case = char$; - if (" "['$===']($case)) {return (indent_level = $rb_plus(indent_level, 1))} - else if ("\t"['$===']($case)) {return (indent_level = $rb_plus(indent_level, $rb_minus(8, indent_level['$%'](8))))} - else { - if ($truthy((function() {if ($truthy(($ret_or_14 = self.dedent_level['$nil?']()))) { - return $ret_or_14 + if (char$ == null) char$ = nil;; + if ($eqeqeq(" ", ($ret_or_1 = char$))) { + return (indent_level = $rb_plus(indent_level, 1)) + } else if ($eqeqeq("\t", $ret_or_1)) { + return (indent_level = $rb_plus(indent_level, $rb_minus(8, indent_level['$%'](8)))) } else { - return $rb_gt(self.dedent_level, indent_level) - }; return nil; })())) { - self.dedent_level = indent_level}; - - Opal.brk(nil, $brk);}})();}, $$13.$$s = self, $$13.$$brk = $brk, $$13.$$arity = 1, $$13)) + + if (($truthy(self.dedent_level['$nil?']()) || ($truthy($rb_gt(self.dedent_level, indent_level))))) { + self.dedent_level = indent_level + }; + + Opal.brk(nil, $brk); + };}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); - }, $Literal_infer_indent_level$12.$$arity = 1); + }, 1); - Opal.def(self, '$start_interp_brace', $Literal_start_interp_brace$14 = function $$start_interp_brace() { + $def(self, '$start_interp_brace', function $$start_interp_brace() { var self = this; return (self.interp_braces = $rb_plus(self.interp_braces, 1)) - }, $Literal_start_interp_brace$14.$$arity = 0); + }, 0); - Opal.def(self, '$end_interp_brace_and_try_closing', $Literal_end_interp_brace_and_try_closing$15 = function $$end_interp_brace_and_try_closing() { + $def(self, '$end_interp_brace_and_try_closing', function $$end_interp_brace_and_try_closing() { var self = this; self.interp_braces = $rb_minus(self.interp_braces, 1); return self.interp_braces['$=='](0);; - }, $Literal_end_interp_brace_and_try_closing$15.$$arity = 0); + }, 0); - Opal.def(self, '$extend_string', $Literal_extend_string$16 = function $$extend_string(string, ts, te) { - var self = this, $ret_or_15 = nil; + $def(self, '$extend_string', function $$extend_string(string, ts, te) { + var self = this, $ret_or_1 = nil; - self.buffer_s = (function() {if ($truthy(($ret_or_15 = self.buffer_s))) { - return $ret_or_15 - } else { - return ts - }; return nil; })(); + self.buffer_s = ($truthy(($ret_or_1 = self.buffer_s)) ? ($ret_or_1) : (ts)); self.buffer_e = te; return self.buffer['$<<'](string); - }, $Literal_extend_string$16.$$arity = 3); + }, 3); - Opal.def(self, '$flush_string', $Literal_flush_string$17 = function $$flush_string() { + $def(self, '$flush_string', function $$flush_string() { var self = this; if ($truthy(self.monolithic)) { self.$emit_start_tok(); - self.monolithic = false;}; + self.monolithic = false; + }; if ($truthy(self.buffer['$empty?']())) { return nil } else { @@ -20372,15 +17470,15 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { self.$clear_buffer(); return self.$extend_content(); }; - }, $Literal_flush_string$17.$$arity = 0); + }, 0); - Opal.def(self, '$extend_content', $Literal_extend_content$18 = function $$extend_content() { + $def(self, '$extend_content', function $$extend_content() { var self = this; return (self.space_emitted = false) - }, $Literal_extend_content$18.$$arity = 0); + }, 0); - Opal.def(self, '$extend_space', $Literal_extend_space$19 = function $$extend_space(ts, te) { + $def(self, '$extend_space', function $$extend_space(ts, te) { var self = this; @@ -20392,20 +17490,20 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { self.$emit("tSPACE", nil, ts, te); return (self.space_emitted = true); }; - }, $Literal_extend_space$19.$$arity = 2); + }, 2); - Opal.def(self, '$supports_line_continuation_via_slash?', $Literal_supports_line_continuation_via_slash$ques$20 = function() { - var self = this, $ret_or_16 = nil; + $def(self, '$supports_line_continuation_via_slash?', function $Literal_supports_line_continuation_via_slash$ques$10() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_16 = self['$words?']()['$!']()))) { + if ($truthy(($ret_or_1 = self['$words?']()['$!']()))) { return self.interpolate } else { - return $ret_or_16 + return $ret_or_1 } - }, $Literal_supports_line_continuation_via_slash$ques$20.$$arity = 0); + }, 0); self.$protected(); - Opal.def(self, '$delimiter?', $Literal_delimiter$ques$21 = function(delimiter) { + $def(self, '$delimiter?', function $Literal_delimiter$ques$11(delimiter) { var self = this; if ($truthy(self.indent)) { @@ -20413,15 +17511,14 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { } else { return self.end_delim['$=='](delimiter) } - }, $Literal_delimiter$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$coerce_encoding', $Literal_coerce_encoding$22 = function $$coerce_encoding(string) { - var self = this; - + $def(self, '$coerce_encoding', function $$coerce_encoding(string) { + return string.$b() - }, $Literal_coerce_encoding$22.$$arity = 1); + }, 1); - Opal.def(self, '$clear_buffer', $Literal_clear_buffer$23 = function $$clear_buffer() { + $def(self, '$clear_buffer', function $$clear_buffer() { var self = this; @@ -20429,316 +17526,258 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { self.buffer.$force_encoding(self.lexer.$source_buffer().$source().$encoding()); self.buffer_s = nil; return (self.buffer_e = nil); - }, $Literal_clear_buffer$23.$$arity = 0); + }, 0); - Opal.def(self, '$emit_start_tok', $Literal_emit_start_tok$24 = function $$emit_start_tok() { - var self = this, str_e = nil, $ret_or_17 = nil; + $def(self, '$emit_start_tok', function $$emit_start_tok() { + var self = this, str_e = nil, $ret_or_1 = nil; - str_e = (function() {if ($truthy(($ret_or_17 = self.heredoc_e))) { - return $ret_or_17 - } else { - return $rb_plus(self.str_s, self.str_type.$length()) - }; return nil; })(); + str_e = ($truthy(($ret_or_1 = self.heredoc_e)) ? ($ret_or_1) : ($rb_plus(self.str_s, self.str_type.$length()))); return self.$emit(self.start_tok, self.str_type, self.str_s, str_e); - }, $Literal_emit_start_tok$24.$$arity = 0); - return (Opal.def(self, '$emit', $Literal_emit$25 = function $$emit(token, type, s, e) { + }, 0); + return $def(self, '$emit', function $$emit(token, type, s, e) { var self = this; return self.lexer.$send("emit", token, type, s, e) - }, $Literal_emit$25.$$arity = 4), nil) && 'emit'; - })($$($nesting, 'Lexer'), null, $nesting) + }, 4); + })($$('Lexer'), null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/lexer/stack_state"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias; +Opal.modules["parser/lexer/stack_state"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$freeze', '$clear', '$|', '$<<', '$&', '$>>', '$==', '$[]', '$to_s']); + Opal.add_stubs('freeze,clear,|,<<,&,>>,==,[],to_s'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'StackState'); - var $nesting = [self].concat($parent_nesting), $StackState_initialize$1, $StackState_clear$2, $StackState_push$3, $StackState_pop$4, $StackState_lexpop$5, $StackState_active$ques$6, $StackState_empty$ques$7, $StackState_to_s$8; + var $proto = self.$$prototype; - self.$$prototype.stack = self.$$prototype.name = nil; + $proto.stack = $proto.name = nil; - Opal.def(self, '$initialize', $StackState_initialize$1 = function $$initialize(name) { + $def(self, '$initialize', function $$initialize(name) { var self = this; self.name = name.$freeze(); return self.$clear(); - }, $StackState_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$clear', $StackState_clear$2 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; return (self.stack = 0) - }, $StackState_clear$2.$$arity = 0); + }, 0); - Opal.def(self, '$push', $StackState_push$3 = function $$push(bit) { + $def(self, '$push', function $$push(bit) { var self = this, bit_value = nil; - bit_value = (function() {if ($truthy(bit)) { - return 1 - } else { - return 0 - }; return nil; })(); + bit_value = ($truthy(bit) ? (1) : (0)); self.stack = self.stack['$<<'](1)['$|'](bit_value); return bit; - }, $StackState_push$3.$$arity = 1); + }, 1); - Opal.def(self, '$pop', $StackState_pop$4 = function $$pop() { + $def(self, '$pop', function $$pop() { var self = this, bit_value = nil; bit_value = self.stack['$&'](1); self.stack = self.stack['$>>'](1); return bit_value['$=='](1); - }, $StackState_pop$4.$$arity = 0); + }, 0); - Opal.def(self, '$lexpop', $StackState_lexpop$5 = function $$lexpop() { + $def(self, '$lexpop', function $$lexpop() { var self = this; self.stack = self.stack['$>>'](1)['$|'](self.stack['$&'](1)); return self.stack['$[]'](0)['$=='](1); - }, $StackState_lexpop$5.$$arity = 0); + }, 0); - Opal.def(self, '$active?', $StackState_active$ques$6 = function() { + $def(self, '$active?', function $StackState_active$ques$1() { var self = this; return self.stack['$[]'](0)['$=='](1) - }, $StackState_active$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $StackState_empty$ques$7 = function() { + $def(self, '$empty?', function $StackState_empty$ques$2() { var self = this; return self.stack['$=='](0) - }, $StackState_empty$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $StackState_to_s$8 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; - return "" + "[" + (self.stack.$to_s(2)) + " <= " + (self.name) + "]" - }, $StackState_to_s$8.$$arity = 0); + return "[" + (self.stack.$to_s(2)) + " <= " + (self.name) + "]" + }, 0); return $alias(self, "inspect", "to_s"); - })($$($nesting, 'Lexer'), null, $nesting) + })($$('Lexer'), null) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/lexer/dedenter"] = function(Opal) { - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $slice = Opal.slice; - - Opal.add_stubs(['$encoding', '$split', '$force_encoding', '$==', '$length', '$map!', '$each', '$each_char', '$<=', '$===', '$+', '$-', '$>', '$*', '$/', '$slice!', '$replace', '$join', '$end_with?']); +Opal.modules["parser/lexer/dedenter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $eqeq = Opal.eqeq, $send = Opal.send, $truthy = Opal.truthy, $to_ary = Opal.to_ary, $slice = Opal.slice, $rb_le = Opal.rb_le, $eqeqeq = Opal.eqeqeq, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt, $rb_times = Opal.rb_times, $rb_divide = Opal.rb_divide; + + Opal.add_stubs('encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Dedenter'); - var $nesting = [self].concat($parent_nesting), $Dedenter_initialize$1, $Dedenter_dedent$2, $Dedenter_interrupt$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.at_line_begin = nil; + $proto.at_line_begin = nil; - Opal.const_set($nesting[0], 'TAB_WIDTH', 8); + $const_set($nesting[0], 'TAB_WIDTH', 8); - Opal.def(self, '$initialize', $Dedenter_initialize$1 = function $$initialize(dedent_level) { + $def(self, '$initialize', function $$initialize(dedent_level) { var self = this; self.dedent_level = dedent_level; self.at_line_begin = true; return (self.indent_level = 0); - }, $Dedenter_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$dedent', $Dedenter_dedent$2 = function $$dedent(string) { - var $$3, $a, $b, $$4, self = this, original_encoding = nil, lines = nil, lines_to_dedent = nil, _first = nil; + $def(self, '$dedent', function $$dedent(string) { + var $a, $b, self = this, original_encoding = nil, lines = nil, lines_to_dedent = nil, _first = nil; original_encoding = string.$encoding(); - lines = string.$force_encoding($$$($$($nesting, 'Encoding'), 'BINARY')).$split("\\\n"); - if (lines.$length()['$=='](1)) { + lines = string.$force_encoding($$$($$('Encoding'), 'BINARY')).$split("\\\n"); + if ($eqeq(lines.$length(), 1)) { lines = [string.$force_encoding(original_encoding)] } else { - $send(lines, 'map!', [], ($$3 = function(s){var self = $$3.$$s == null ? this : $$3.$$s; - + $send(lines, 'map!', [], function $$1(s){ - if (s == null) { - s = nil; - }; - return s.$force_encoding(original_encoding);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + if (s == null) s = nil;; + return s.$force_encoding(original_encoding);}, 1) }; if ($truthy(self.at_line_begin)) { lines_to_dedent = lines } else { - $b = lines, $a = Opal.to_ary($b), (_first = ($a[0] == null ? nil : $a[0])), (lines_to_dedent = $slice.call($a, 1)), $b + $b = lines, $a = $to_ary($b), (_first = ($a[0] == null ? nil : $a[0])), (lines_to_dedent = $slice.call($a, 1)), $b }; - (function(){var $brk = Opal.new_brk(); try {return $send(lines_to_dedent, 'each', [], ($$4 = function(line){var self = $$4.$$s == null ? this : $$4.$$s, $$5, left_to_remove = nil, remove = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(lines_to_dedent, 'each', [], function $$2(line){var self = $$2.$$s == null ? this : $$2.$$s, left_to_remove = nil, remove = nil; if (self.dedent_level == null) self.dedent_level = nil; - if (line == null) { - line = nil; - }; + if (line == null) line = nil;; left_to_remove = self.dedent_level; remove = 0; - (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], ($$5 = function(char$){var self = $$5.$$s == null ? this : $$5.$$s, $case = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], function $$3(char$){var self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil; if (self.dedent_level == null) self.dedent_level = nil; - if (char$ == null) { - char$ = nil; - }; + if (char$ == null) char$ = nil;; if ($truthy($rb_le(left_to_remove, 0))) { - Opal.brk(nil, $brk)}; - return (function() {$case = char$; - if (" "['$===']($case)) { - remove = $rb_plus(remove, 1); - return (left_to_remove = $rb_minus(left_to_remove, 1));} - else if ("\t"['$===']($case)) { - if ($truthy($rb_gt($rb_times($$($nesting, 'TAB_WIDTH'), $rb_plus($rb_divide(remove, $$($nesting, 'TAB_WIDTH')), 1)), self.dedent_level))) { + Opal.brk(nil, $brk) + }; + if ($eqeqeq(" ", ($ret_or_1 = char$))) { - Opal.brk(nil, $brk)}; - remove = $rb_plus(remove, 1); - return (left_to_remove = $rb_minus(left_to_remove, $$($nesting, 'TAB_WIDTH')));} - else { - Opal.brk(nil, $brk)}})();}, $$5.$$s = self, $$5.$$brk = $brk, $$5.$$arity = 1, $$5)) + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, 1)); + } else if ($eqeqeq("\t", $ret_or_1)) { + + if ($truthy($rb_gt($rb_times($$('TAB_WIDTH'), $rb_plus($rb_divide(remove, $$('TAB_WIDTH')), 1)), self.dedent_level))) { + + Opal.brk(nil, $brk) + }; + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, $$('TAB_WIDTH'))); + } else { + + Opal.brk(nil, $brk) + };}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); - return line['$slice!'](0, remove);}, $$4.$$s = self, $$4.$$brk = $brk, $$4.$$arity = 1, $$4)) + return line['$slice!'](0, remove);}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); string.$replace(lines.$join()); return (self.at_line_begin = string['$end_with?']("\n")); - }, $Dedenter_dedent$2.$$arity = 1); - return (Opal.def(self, '$interrupt', $Dedenter_interrupt$6 = function $$interrupt() { + }, 1); + return $def(self, '$interrupt', function $$interrupt() { var self = this; return (self.at_line_begin = false) - }, $Dedenter_interrupt$6.$$arity = 0), nil) && 'interrupt'; - })($$($nesting, 'Lexer'), null, $nesting) + }, 0); + })($$('Lexer'), null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/builders/default"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $slice = Opal.slice; - - Opal.add_stubs(['$attr_accessor', '$n0', '$token_map', '$numeric', '$n', '$value', '$new', '$loc', '$private', '$===', '$+@', '$-@', '$updated', '$join', '$expression', '$string_value', '$delimited_string_map', '$unquoted_map', '$collapse_string_parts?', '$nil?', '$first', '$children', '$string_map', '$prefix_string_map', '$to_sym', '$collection_map', '$==', '$version', '$empty?', '$diagnostic', '$!', '$type', '$dedent', '$map', '$interrupt', '$compact', '$uniq', '$sort', '$each_char', '$to_proc', '$static_regexp', '$message', '$<<', '$regexp_map', '$unary_op_map', '$binary_op_map', '$!=', '$%', '$size', '$last', '$each_slice', '$pair_keyword_map', '$pair_quoted_map', '$symbol_compose', '$adjust', '$=~', '$pair_keyword', '$accessible', '$upto', '$-', '$length', '$+', '$[]', '$>=', '$range_map', '$variable_map', '$name', '$source_buffer', '$dup', '$line', '$emit_encoding', '$class', '$any?', '$end_with?', '$to_s', '$try_declare_numparam', '$declared?', '$static_env', '$var_send_map', '$top', '$current_arg_stack', '$parser', '$constant_map', '$in_def', '$context', '$check_assignment_to_numparam', '$check_reserved_for_numparam', '$declare', '$with_expression', '$with_operator', '$join_exprs', '$module_definition_map', '$definition_map', '$endless_definition_map', '$validate_definee', '$keyword_map', '$check_duplicate_args', '$validate_no_forward_arg_after_restarg', '$emit_forward_arg', '$forward_arg', '$arg_prefix_map', '$kwarg_map', '$emit_procarg0', '$emit_arg_inside_procarg0', '$location', '$resize', '$end', '$call_type_for_dot', '$emit_kwargs', '$rewrite_hash_args_to_kwargs', '$send_map', '$emit_lambda', '$expr_map', '$keyword', '$include?', '$block_map', '$array', '$emit_index', '$index_map', '$send_index_map', '$send_binary_op_map', '$static_regexp_node', '$each', '$names', '$send_unary_op_map', '$check_condition', '$condition_map', '$keyword_mod_map', '$ternary_map', '$for_map', '$>', '$count', '$rescue_body_map', '$eh_keyword_map', '$push', '$none?', '$one?', '$begin', '$guard_map', '$check_lvar_name', '$check_duplicate_pattern_variable', '$match_hash_var_from_str', '$match_var', '$check_duplicate_pattern_key', '$static_string', '$pair_quoted', '$match_hash_var', '$<=', '$check_duplicate_arg', '$is_a?', '$[]=', '$arg_name_collides?', '$<', '$in_dynamic_block?', '$has_numparams?', '$max_numparam_stack', '$start_with?', '$pattern_variables', '$pattern_hash_keys', '$with', '$begin_pos', '$end_pos', '$encode', '$valid_encoding?', '$process', '$diagnostics', '$send', '$kwargs?']); +Opal.modules["parser/builders/default"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $to_a = Opal.to_a, $eqeqeq = Opal.eqeqeq, $hash2 = Opal.hash2, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $not = Opal.not, $send = Opal.send, $neqeq = Opal.neqeq, $to_ary = Opal.to_ary, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $rb_ge = Opal.rb_ge, $range = Opal.range, $slice = Opal.slice, $rb_gt = Opal.rb_gt, $rb_le = Opal.rb_le, $rb_lt = Opal.rb_lt; + + Opal.add_stubs('attr_accessor,n0,token_map,numeric,n,value,new,loc,private,===,+@,-@,updated,join,expression,string_value,delimited_string_map,unquoted_map,collapse_string_parts?,nil?,first,children,string_map,prefix_string_map,to_sym,collection_map,empty?,==,version,diagnostic,!,type,dedent,map,interrupt,compact,uniq,sort,each_char,to_proc,static_regexp,message,<<,regexp_map,unary_op_map,binary_op_map,!=,%,size,last,each_slice,pair_keyword_map,pair_quoted_map,symbol_compose,adjust,=~,pair_keyword,accessible,upto,-,length,+,[],>=,range_map,variable_map,name,source_buffer,dup,line,emit_encoding,class,any?,end_with?,to_s,try_declare_numparam,declared?,static_env,var_send_map,top,current_arg_stack,parser,constant_map,in_def,context,check_assignment_to_numparam,check_reserved_for_numparam,declare,with_expression,with_operator,join_exprs,module_definition_map,definition_map,endless_definition_map,validate_definee,keyword_map,check_duplicate_args,validate_no_forward_arg_after_restarg,emit_forward_arg,forward_arg,arg_prefix_map,kwarg_map,emit_procarg0,emit_arg_inside_procarg0,location,resize,end,call_type_for_dot,emit_kwargs,rewrite_hash_args_to_kwargs,send_map,emit_lambda,expr_map,keyword,include?,block_map,array,emit_index,index_map,send_index_map,send_binary_op_map,static_regexp_node,each,names,send_unary_op_map,check_condition,condition_map,keyword_mod_map,ternary_map,for_map,>,count,rescue_body_map,eh_keyword_map,push,none?,one?,begin,guard_map,check_lvar_name,check_duplicate_pattern_variable,match_hash_var_from_str,match_var,check_duplicate_pattern_key,static_string,pair_quoted,match_hash_var,<=,check_duplicate_arg,is_a?,[]=,arg_name_collides?,<,in_dynamic_block?,has_numparams?,max_numparam_stack,start_with?,pattern_variables,pattern_hash_keys,with,begin_pos,end_pos,encode,valid_encoding?,process,diagnostics,send,kwargs?'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Default'); - var $nesting = [self].concat($parent_nesting), $Default_initialize$2, $Default_nil$3, $Default_true$4, $Default_false$5, $Default_integer$6, $Default_float$7, $Default_rational$8, $Default_complex$9, $Default_numeric$10, $Default_unary_num$11, $Default___LINE__$12, $Default_string$13, $Default_string_internal$14, $Default_string_compose$15, $Default_character$16, $Default___FILE__$17, $Default_symbol$18, $Default_symbol_internal$19, $Default_symbol_compose$20, $Default_xstring_compose$21, $Default_dedent_string$22, $Default_regexp_options$24, $Default_regexp_compose$25, $Default_array$26, $Default_splat$27, $Default_word$28, $Default_words_compose$29, $Default_symbols_compose$30, $Default_pair$32, $Default_pair_list_18$33, $Default_pair_keyword$35, $Default_pair_quoted$36, $Default_pair_label$37, $Default_kwsplat$38, $Default_associate$39, $Default_range_inclusive$42, $Default_range_exclusive$43, $Default_self$44, $Default_ident$45, $Default_ivar$46, $Default_gvar$47, $Default_cvar$48, $Default_back_ref$49, $Default_nth_ref$50, $Default_accessible$51, $Default_const$53, $Default_const_global$54, $Default_const_fetch$55, $Default___ENCODING__$56, $Default_assignable$57, $Default_const_op_assignable$58, $Default_assign$59, $Default_op_assign$60, $Default_multi_lhs$61, $Default_multi_assign$62, $Default_def_class$63, $Default_def_sclass$64, $Default_def_module$65, $Default_def_method$66, $Default_def_endless_method$67, $Default_def_singleton$68, $Default_def_endless_singleton$69, $Default_undef_method$70, $Default_alias$71, $Default_args$72, $Default_numargs$73, $Default_forward_only_args$74, $Default_forward_arg$75, $Default_arg$76, $Default_optarg$77, $Default_restarg$78, $Default_kwarg$79, $Default_kwoptarg$80, $Default_kwrestarg$81, $Default_kwnilarg$82, $Default_shadowarg$83, $Default_blockarg$84, $Default_procarg0$85, $Default_arg_expr$86, $Default_restarg_expr$87, $Default_blockarg_expr$88, $Default_objc_kwarg$89, $Default_objc_restarg$90, $Default_call_type_for_dot$91, $Default_forwarded_args$92, $Default_call_method$93, $Default_call_lambda$94, $Default_block$95, $Default_block_pass$96, $Default_objc_varargs$97, $Default_attr_asgn$98, $Default_index$99, $Default_index_asgn$100, $Default_binary_op$101, $Default_match_op$102, $Default_unary_op$104, $Default_not_op$105, $Default_logical_op$106, $Default_condition$107, $Default_condition_mod$108, $Default_ternary$109, $Default_when$110, $Default_case$111, $Default_loop$112, $Default_loop_mod$113, $Default_for$114, $Default_keyword_cmd$115, $Default_preexe$116, $Default_postexe$117, $Default_rescue_body$118, $Default_begin_body$119, $Default_compstmt$120, $Default_begin$121, $Default_begin_keyword$122, $Default_case_match$123, $Default_in_match$124, $Default_match_pattern$125, $Default_match_pattern_p$126, $Default_in_pattern$127, $Default_if_guard$128, $Default_unless_guard$129, $Default_match_var$130, $Default_match_hash_var$131, $Default_match_hash_var_from_str$132, $Default_match_rest$133, $Default_hash_pattern$134, $Default_array_pattern$135, $Default_find_pattern$137, $Default_match_with_trailing_comma$138, $Default_const_pattern$139, $Default_pin$140, $Default_match_alt$141, $Default_match_as$142, $Default_match_nil_pattern$143, $Default_match_pair$144, $Default_match_label$145, $Default_check_condition$146, $Default_check_duplicate_args$147, $Default_check_duplicate_arg$149, $Default_validate_no_forward_arg_after_restarg$150, $Default_check_assignment_to_numparam$152, $Default_check_reserved_for_numparam$153, $Default_arg_name_collides$ques$154, $Default_check_lvar_name$155, $Default_check_duplicate_pattern_variable$156, $Default_check_duplicate_pattern_key$157, $Default_n$158, $Default_n0$159, $Default_join_exprs$160, $Default_token_map$161, $Default_delimited_string_map$162, $Default_prefix_string_map$163, $Default_unquoted_map$164, $Default_pair_keyword_map$165, $Default_pair_quoted_map$166, $Default_expr_map$167, $Default_collection_map$168, $Default_string_map$169, $Default_regexp_map$170, $Default_constant_map$171, $Default_variable_map$172, $Default_binary_op_map$173, $Default_unary_op_map$174, $Default_range_map$175, $Default_arg_prefix_map$176, $Default_kwarg_map$177, $Default_module_definition_map$178, $Default_definition_map$179, $Default_endless_definition_map$180, $Default_send_map$181, $Default_var_send_map$182, $Default_send_binary_op_map$183, $Default_send_unary_op_map$184, $Default_index_map$185, $Default_send_index_map$186, $Default_block_map$187, $Default_keyword_map$188, $Default_keyword_mod_map$189, $Default_condition_map$190, $Default_ternary_map$191, $Default_for_map$192, $Default_rescue_body_map$193, $Default_eh_keyword_map$194, $Default_guard_map$195, $Default_static_string$196, $Default_static_regexp$198, $Default_static_regexp_node$199, $Default_collapse_string_parts$ques$200, $Default_value$201, $Default_string_value$202, $Default_loc$203, $Default_diagnostic$204, $Default_validate_definee$205, $Default_rewrite_hash_args_to_kwargs$206, $Default_kwargs$ques$207; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.parser = self.$$prototype.emit_file_line_as_literals = nil; + $proto.parser = $proto.emit_file_line_as_literals = nil; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_lambda") })(Opal.get_singleton_class(self), $nesting); self.emit_lambda = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_procarg0") })(Opal.get_singleton_class(self), $nesting); self.emit_procarg0 = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_encoding") })(Opal.get_singleton_class(self), $nesting); self.emit_encoding = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_index") })(Opal.get_singleton_class(self), $nesting); self.emit_index = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_arg_inside_procarg0") })(Opal.get_singleton_class(self), $nesting); self.emit_arg_inside_procarg0 = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_forward_arg") })(Opal.get_singleton_class(self), $nesting); self.emit_forward_arg = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_kwargs") })(Opal.get_singleton_class(self), $nesting); self.emit_kwargs = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_match_pattern") })(Opal.get_singleton_class(self), $nesting); self.emit_match_pattern = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $modernize$1; - - return (Opal.def(self, '$modernize', $modernize$1 = function $$modernize() { + + return $def(self, '$modernize', function $$modernize() { var self = this; @@ -20750,204 +17789,203 @@ Opal.modules["parser/builders/default"] = function(Opal) { self.emit_forward_arg = true; self.emit_kwargs = true; return (self.emit_match_pattern = true); - }, $modernize$1.$$arity = 0), nil) && 'modernize' + }, 0) })(Opal.get_singleton_class(self), $nesting); self.$attr_accessor("parser"); self.$attr_accessor("emit_file_line_as_literals"); - Opal.def(self, '$initialize', $Default_initialize$2 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.emit_file_line_as_literals = true) - }, $Default_initialize$2.$$arity = 0); + }, 0); - Opal.def(self, '$nil', $Default_nil$3 = function $$nil(nil_t) { + $def(self, '$nil', function $$nil(nil_t) { var self = this; return self.$n0("nil", self.$token_map(nil_t)) - }, $Default_nil$3.$$arity = 1); + }, 1); - Opal.def(self, '$true', $Default_true$4 = function(true_t) { + $def(self, '$true', function $Default_true$1(true_t) { var self = this; return self.$n0("true", self.$token_map(true_t)) - }, $Default_true$4.$$arity = 1); + }, 1); - Opal.def(self, '$false', $Default_false$5 = function(false_t) { + $def(self, '$false', function $Default_false$2(false_t) { var self = this; return self.$n0("false", self.$token_map(false_t)) - }, $Default_false$5.$$arity = 1); + }, 1); - Opal.def(self, '$integer', $Default_integer$6 = function $$integer(integer_t) { + $def(self, '$integer', function $$integer(integer_t) { var self = this; return self.$numeric("int", integer_t) - }, $Default_integer$6.$$arity = 1); + }, 1); - Opal.def(self, '$float', $Default_float$7 = function(float_t) { + $def(self, '$float', function $Default_float$3(float_t) { var self = this; return self.$numeric("float", float_t) - }, $Default_float$7.$$arity = 1); + }, 1); - Opal.def(self, '$rational', $Default_rational$8 = function $$rational(rational_t) { + $def(self, '$rational', function $$rational(rational_t) { var self = this; return self.$numeric("rational", rational_t) - }, $Default_rational$8.$$arity = 1); + }, 1); - Opal.def(self, '$complex', $Default_complex$9 = function $$complex(complex_t) { + $def(self, '$complex', function $$complex(complex_t) { var self = this; return self.$numeric("complex", complex_t) - }, $Default_complex$9.$$arity = 1); + }, 1); - Opal.def(self, '$numeric', $Default_numeric$10 = function $$numeric(kind, token) { + $def(self, '$numeric', function $$numeric(kind, token) { var self = this; - return self.$n(kind, [self.$value(token)], $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(nil, self.$loc(token))) - }, $Default_numeric$10.$$arity = 2); + return self.$n(kind, [self.$value(token)], $$$($$$($$('Source'), 'Map'), 'Operator').$new(nil, self.$loc(token))) + }, 2); self.$private("numeric"); - Opal.def(self, '$unary_num', $Default_unary_num$11 = function $$unary_num(unary_t, numeric) { - var $a, self = this, value = nil, operator_loc = nil, $case = nil; + $def(self, '$unary_num', function $$unary_num(unary_t, numeric) { + var $a, self = this, value = nil, operator_loc = nil, $ret_or_1 = nil; - $a = [].concat(Opal.to_a(numeric)), (value = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(numeric)), (value = ($a[0] == null ? nil : $a[0])), $a; operator_loc = self.$loc(unary_t); - $case = self.$value(unary_t); - if ("+"['$===']($case)) {value = value['$+@']()} - else if ("-"['$===']($case)) {value = value['$-@']()}; - return numeric.$updated(nil, [value], $hash2(["location"], {"location": $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(operator_loc, operator_loc.$join(numeric.$loc().$expression()))})); - }, $Default_unary_num$11.$$arity = 2); + if ($eqeqeq("+", ($ret_or_1 = self.$value(unary_t)))) { + value = value['$+@']() + } else if ($eqeqeq("-", $ret_or_1)) { + value = value['$-@']() + } else { + nil + }; + return numeric.$updated(nil, [value], $hash2(["location"], {"location": $$$($$$($$('Source'), 'Map'), 'Operator').$new(operator_loc, operator_loc.$join(numeric.$loc().$expression()))})); + }, 2); - Opal.def(self, '$__LINE__', $Default___LINE__$12 = function $$__LINE__(__LINE__t) { + $def(self, '$__LINE__', function $$__LINE__(__LINE__t) { var self = this; return self.$n0("__LINE__", self.$token_map(__LINE__t)) - }, $Default___LINE__$12.$$arity = 1); + }, 1); - Opal.def(self, '$string', $Default_string$13 = function $$string(string_t) { + $def(self, '$string', function $$string(string_t) { var self = this; return self.$n("str", [self.$string_value(string_t)], self.$delimited_string_map(string_t)) - }, $Default_string$13.$$arity = 1); + }, 1); - Opal.def(self, '$string_internal', $Default_string_internal$14 = function $$string_internal(string_t) { + $def(self, '$string_internal', function $$string_internal(string_t) { var self = this; return self.$n("str", [self.$string_value(string_t)], self.$unquoted_map(string_t)) - }, $Default_string_internal$14.$$arity = 1); + }, 1); - Opal.def(self, '$string_compose', $Default_string_compose$15 = function $$string_compose(begin_t, parts, end_t) { - var self = this, $ret_or_1 = nil; + $def(self, '$string_compose', function $$string_compose(begin_t, parts, end_t) { + var self = this; if ($truthy(self['$collapse_string_parts?'](parts))) { - if ($truthy((function() {if ($truthy(($ret_or_1 = begin_t['$nil?']()))) { - return end_t['$nil?']() - } else { - return $ret_or_1 - }; return nil; })())) { + if (($truthy(begin_t['$nil?']()) && ($truthy(end_t['$nil?']())))) { return parts.$first() } else { return self.$n("str", parts.$first().$children(), self.$string_map(begin_t, parts, end_t)) } } else { - return self.$n("dstr", [].concat(Opal.to_a(parts)), self.$string_map(begin_t, parts, end_t)) + return self.$n("dstr", [].concat($to_a(parts)), self.$string_map(begin_t, parts, end_t)) } - }, $Default_string_compose$15.$$arity = 3); + }, 3); - Opal.def(self, '$character', $Default_character$16 = function $$character(char_t) { + $def(self, '$character', function $$character(char_t) { var self = this; return self.$n("str", [self.$string_value(char_t)], self.$prefix_string_map(char_t)) - }, $Default_character$16.$$arity = 1); + }, 1); - Opal.def(self, '$__FILE__', $Default___FILE__$17 = function $$__FILE__(__FILE__t) { + $def(self, '$__FILE__', function $$__FILE__(__FILE__t) { var self = this; return self.$n0("__FILE__", self.$token_map(__FILE__t)) - }, $Default___FILE__$17.$$arity = 1); + }, 1); - Opal.def(self, '$symbol', $Default_symbol$18 = function $$symbol(symbol_t) { + $def(self, '$symbol', function $$symbol(symbol_t) { var self = this; return self.$n("sym", [self.$string_value(symbol_t).$to_sym()], self.$prefix_string_map(symbol_t)) - }, $Default_symbol$18.$$arity = 1); + }, 1); - Opal.def(self, '$symbol_internal', $Default_symbol_internal$19 = function $$symbol_internal(symbol_t) { + $def(self, '$symbol_internal', function $$symbol_internal(symbol_t) { var self = this; return self.$n("sym", [self.$string_value(symbol_t).$to_sym()], self.$unquoted_map(symbol_t)) - }, $Default_symbol_internal$19.$$arity = 1); + }, 1); - Opal.def(self, '$symbol_compose', $Default_symbol_compose$20 = function $$symbol_compose(begin_t, parts, end_t) { - var self = this, str = nil, $ret_or_2 = nil; + $def(self, '$symbol_compose', function $$symbol_compose(begin_t, parts, end_t) { + var self = this, str = nil; if ($truthy(self['$collapse_string_parts?'](parts))) { str = parts.$first(); return self.$n("sym", [str.$children().$first().$to_sym()], self.$collection_map(begin_t, str.$loc().$expression(), end_t)); - } else if ($truthy((function() {if ($truthy(($ret_or_2 = self.parser.$version()['$=='](18)))) { - return parts['$empty?']() - } else { - return $ret_or_2 - }; return nil; })())) { + } else if (($eqeq(self.parser.$version(), 18) && ($truthy(parts['$empty?']())))) { return self.$diagnostic("error", "empty_symbol", nil, self.$loc(begin_t).$join(self.$loc(end_t))) } else { - return self.$n("dsym", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)) + return self.$n("dsym", [].concat($to_a(parts)), self.$collection_map(begin_t, parts, end_t)) } - }, $Default_symbol_compose$20.$$arity = 3); + }, 3); - Opal.def(self, '$xstring_compose', $Default_xstring_compose$21 = function $$xstring_compose(begin_t, parts, end_t) { + $def(self, '$xstring_compose', function $$xstring_compose(begin_t, parts, end_t) { var self = this; - return self.$n("xstr", [].concat(Opal.to_a(parts)), self.$string_map(begin_t, parts, end_t)) - }, $Default_xstring_compose$21.$$arity = 3); + return self.$n("xstr", [].concat($to_a(parts)), self.$string_map(begin_t, parts, end_t)) + }, 3); - Opal.def(self, '$dedent_string', $Default_dedent_string$22 = function $$dedent_string(node, dedent_level) { - var $$23, self = this, dedenter = nil, $case = nil, str = nil, children = nil; + $def(self, '$dedent_string', function $$dedent_string(node, dedent_level) { + var dedenter = nil, $ret_or_1 = nil, str = nil, children = nil; - if ($truthy(dedent_level['$nil?']()['$!']())) { + if ($not(dedent_level['$nil?']())) { - dedenter = $$$($$($nesting, 'Lexer'), 'Dedenter').$new(dedent_level); - $case = node.$type(); - if ("str"['$===']($case)) { - str = node.$children().$first(); - dedenter.$dedent(str);} - else if ("dstr"['$===']($case) || "xstr"['$===']($case)) { - children = $send(node.$children(), 'map', [], ($$23 = function(str_node){var self = $$23.$$s == null ? this : $$23.$$s; - + dedenter = $$$($$('Lexer'), 'Dedenter').$new(dedent_level); + if ($eqeqeq("str", ($ret_or_1 = node.$type()))) { + str = node.$children().$first(); + dedenter.$dedent(str); + } else if (($eqeqeq("dstr", $ret_or_1) || ($eqeqeq("xstr", $ret_or_1)))) { - if (str_node == null) { - str_node = nil; - }; - if (str_node.$type()['$==']("str")) { + children = $send(node.$children(), 'map', [], function $$4(str_node){ - str = str_node.$children().$first(); - dedenter.$dedent(str); - if ($truthy(str['$empty?']())) { - return nil;}; - } else { - dedenter.$interrupt() - }; - return str_node;}, $$23.$$s = self, $$23.$$arity = 1, $$23)); - node = node.$updated(nil, children.$compact());};}; + + if (str_node == null) str_node = nil;; + if ($eqeq(str_node.$type(), "str")) { + + str = str_node.$children().$first(); + dedenter.$dedent(str); + if ($truthy(str['$empty?']())) { + return nil; + }; + } else { + dedenter.$interrupt() + }; + return str_node;}, 1); + node = node.$updated(nil, children.$compact()); + } else { + nil + }; + }; return node; - }, $Default_dedent_string$22.$$arity = 2); + }, 2); - Opal.def(self, '$regexp_options', $Default_regexp_options$24 = function $$regexp_options(regopt_t) { + $def(self, '$regexp_options', function $$regexp_options(regopt_t) { var self = this, options = nil; options = $send(self.$value(regopt_t).$each_char().$sort().$uniq(), 'map', [], "to_sym".$to_proc()); return self.$n("regopt", options, self.$token_map(regopt_t)); - }, $Default_regexp_options$24.$$arity = 1); + }, 1); - Opal.def(self, '$regexp_compose', $Default_regexp_compose$25 = function $$regexp_compose(begin_t, parts, end_t, options) { + $def(self, '$regexp_compose', function $$regexp_compose(begin_t, parts, end_t, options) { var self = this, e = nil; @@ -20955,473 +17993,469 @@ Opal.modules["parser/builders/default"] = function(Opal) { try { self.$static_regexp(parts, options) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'RegexpError')])) {(e = $err) + if (Opal.rescue($err, [$$('RegexpError')])) {(e = $err) try { self.$diagnostic("error", "invalid_regexp", $hash2(["message"], {"message": e.$message()}), self.$loc(begin_t).$join(self.$loc(end_t))) } finally { Opal.pop_exception(); } } else { throw $err; } };; return self.$n("regexp", parts['$<<'](options), self.$regexp_map(begin_t, end_t, options)); - }, $Default_regexp_compose$25.$$arity = 4); + }, 4); - Opal.def(self, '$array', $Default_array$26 = function $$array(begin_t, elements, end_t) { + $def(self, '$array', function $$array(begin_t, elements, end_t) { var self = this; return self.$n("array", elements, self.$collection_map(begin_t, elements, end_t)) - }, $Default_array$26.$$arity = 3); + }, 3); - Opal.def(self, '$splat', $Default_splat$27 = function $$splat(star_t, arg) { + $def(self, '$splat', function $$splat(star_t, arg) { var self = this; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; if ($truthy(arg['$nil?']())) { return self.$n0("splat", self.$unary_op_map(star_t)) } else { return self.$n("splat", [arg], self.$unary_op_map(star_t, arg)) }; - }, $Default_splat$27.$$arity = -2); + }, -2); - Opal.def(self, '$word', $Default_word$28 = function $$word(parts) { + $def(self, '$word', function $$word(parts) { var self = this; if ($truthy(self['$collapse_string_parts?'](parts))) { return parts.$first() } else { - return self.$n("dstr", [].concat(Opal.to_a(parts)), self.$collection_map(nil, parts, nil)) + return self.$n("dstr", [].concat($to_a(parts)), self.$collection_map(nil, parts, nil)) } - }, $Default_word$28.$$arity = 1); + }, 1); - Opal.def(self, '$words_compose', $Default_words_compose$29 = function $$words_compose(begin_t, parts, end_t) { + $def(self, '$words_compose', function $$words_compose(begin_t, parts, end_t) { var self = this; - return self.$n("array", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)) - }, $Default_words_compose$29.$$arity = 3); + return self.$n("array", [].concat($to_a(parts)), self.$collection_map(begin_t, parts, end_t)) + }, 3); - Opal.def(self, '$symbols_compose', $Default_symbols_compose$30 = function $$symbols_compose(begin_t, parts, end_t) { - var $$31, self = this; + $def(self, '$symbols_compose', function $$symbols_compose(begin_t, parts, end_t) { + var self = this; - parts = $send(parts, 'map', [], ($$31 = function(part){var self = $$31.$$s == null ? this : $$31.$$s, $a, $case = nil, value = nil; + parts = $send(parts, 'map', [], function $$5(part){var $a, $ret_or_1 = nil, value = nil; - if (part == null) { - part = nil; - }; - return (function() {$case = part.$type(); - if ("str"['$===']($case)) { - $a = [].concat(Opal.to_a(part)), (value = ($a[0] == null ? nil : $a[0])), $a; - return part.$updated("sym", [value.$to_sym()]);} - else if ("dstr"['$===']($case)) {return part.$updated("dsym")} - else {return part}})();}, $$31.$$s = self, $$31.$$arity = 1, $$31)); - return self.$n("array", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)); - }, $Default_symbols_compose$30.$$arity = 3); + if (part == null) part = nil;; + if ($eqeqeq("str", ($ret_or_1 = part.$type()))) { + + $a = [].concat($to_a(part)), (value = ($a[0] == null ? nil : $a[0])), $a; + return part.$updated("sym", [value.$to_sym()]); + } else if ($eqeqeq("dstr", $ret_or_1)) { + return part.$updated("dsym") + } else { + return part + };}, 1); + return self.$n("array", [].concat($to_a(parts)), self.$collection_map(begin_t, parts, end_t)); + }, 3); - Opal.def(self, '$pair', $Default_pair$32 = function $$pair(key, assoc_t, value) { + $def(self, '$pair', function $$pair(key, assoc_t, value) { var self = this; return self.$n("pair", [key, value], self.$binary_op_map(key, assoc_t, value)) - }, $Default_pair$32.$$arity = 3); + }, 3); - Opal.def(self, '$pair_list_18', $Default_pair_list_18$33 = function $$pair_list_18(list) { - var $$34, self = this; + $def(self, '$pair_list_18', function $$pair_list_18(list) { + var self = this; - if ($truthy(list.$size()['$%'](2)['$!='](0))) { + if ($neqeq(list.$size()['$%'](2), 0)) { return self.$diagnostic("error", "odd_hash", nil, list.$last().$loc().$expression()) } else { - return $send(list.$each_slice(2), 'map', [], ($$34 = function(key, value){var self = $$34.$$s == null ? this : $$34.$$s; + return $send(list.$each_slice(2), 'map', [], function $$6(key, value){var self = $$6.$$s == null ? this : $$6.$$s; - if (key == null) { - key = nil; - }; + if (key == null) key = nil;; - if (value == null) { - value = nil; - }; - return self.$n("pair", [key, value], self.$binary_op_map(key, nil, value));}, $$34.$$s = self, $$34.$$arity = 2, $$34)) + if (value == null) value = nil;; + return self.$n("pair", [key, value], self.$binary_op_map(key, nil, value));}, {$$arity: 2, $$s: self}) } - }, $Default_pair_list_18$33.$$arity = 1); + }, 1); - Opal.def(self, '$pair_keyword', $Default_pair_keyword$35 = function $$pair_keyword(key_t, value) { + $def(self, '$pair_keyword', function $$pair_keyword(key_t, value) { var $a, $b, self = this, key_map = nil, pair_map = nil, key = nil; - $b = self.$pair_keyword_map(key_t, value), $a = Opal.to_ary($b), (key_map = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$pair_keyword_map(key_t, value), $a = $to_ary($b), (key_map = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; key = self.$n("sym", [self.$value(key_t).$to_sym()], key_map); return self.$n("pair", [key, value], pair_map); - }, $Default_pair_keyword$35.$$arity = 2); + }, 2); - Opal.def(self, '$pair_quoted', $Default_pair_quoted$36 = function $$pair_quoted(begin_t, parts, end_t, value) { + $def(self, '$pair_quoted', function $$pair_quoted(begin_t, parts, end_t, value) { var $a, $b, self = this, pair_map = nil, key = nil; - $b = self.$pair_quoted_map(begin_t, end_t, value), $a = Opal.to_ary($b), (end_t = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$pair_quoted_map(begin_t, end_t, value), $a = $to_ary($b), (end_t = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; key = self.$symbol_compose(begin_t, parts, end_t); return self.$n("pair", [key, value], pair_map); - }, $Default_pair_quoted$36.$$arity = 4); + }, 4); - Opal.def(self, '$pair_label', $Default_pair_label$37 = function $$pair_label(key_t) { + $def(self, '$pair_label', function $$pair_label(key_t) { var self = this, key_l = nil, value_l = nil, label = nil, value = nil; key_l = self.$loc(key_t); value_l = key_l.$adjust($hash2(["end_pos"], {"end_pos": -1})); label = self.$value(key_t); - value = (function() {if ($truthy(label['$=~'](/^[[:lower:]]/))) { - return self.$n("ident", [label.$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(value_l)) - } else { - return self.$n("const", [nil, label.$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'Constant').$new(nil, value_l, value_l)) - }; return nil; })(); + value = ($truthy(label['$=~'](/^[[:lower:]]/)) ? (self.$n("ident", [label.$to_sym()], $$$($$$($$('Source'), 'Map'), 'Variable').$new(value_l))) : (self.$n("const", [nil, label.$to_sym()], $$$($$$($$('Source'), 'Map'), 'Constant').$new(nil, value_l, value_l)))); return self.$pair_keyword(key_t, self.$accessible(value)); - }, $Default_pair_label$37.$$arity = 1); + }, 1); - Opal.def(self, '$kwsplat', $Default_kwsplat$38 = function $$kwsplat(dstar_t, arg) { + $def(self, '$kwsplat', function $$kwsplat(dstar_t, arg) { var self = this; return self.$n("kwsplat", [arg], self.$unary_op_map(dstar_t, arg)) - }, $Default_kwsplat$38.$$arity = 2); + }, 2); - Opal.def(self, '$associate', $Default_associate$39 = function $$associate(begin_t, pairs, end_t) { - var $$40, self = this; + $def(self, '$associate', function $$associate(begin_t, pairs, end_t) { + var self = this; - $send((0), 'upto', [$rb_minus(pairs.$length(), 1)], ($$40 = function(i){var self = $$40.$$s == null ? this : $$40.$$s, $$41; + $send((0), 'upto', [$rb_minus(pairs.$length(), 1)], function $$7(i){var self = $$7.$$s == null ? this : $$7.$$s; - if (i == null) { - i = nil; - }; - return $send($rb_plus(i, 1), 'upto', [$rb_minus(pairs.$length(), 1)], ($$41 = function(j){var self = $$41.$$s == null ? this : $$41.$$s, $a, key1 = nil, key2 = nil, do_warn = nil, $case = nil, $ret_or_3 = nil; + if (i == null) i = nil;; + return $send($rb_plus(i, 1), 'upto', [$rb_minus(pairs.$length(), 1)], function $$8(j){var $a, self = $$8.$$s == null ? this : $$8.$$s, key1 = nil, key2 = nil, do_warn = nil, $ret_or_1 = nil; if (self.parser == null) self.parser = nil; - if (j == null) { - j = nil; - }; - $a = [].concat(Opal.to_a(pairs['$[]'](i))), (key1 = ($a[0] == null ? nil : $a[0])), $a; - $a = [].concat(Opal.to_a(pairs['$[]'](j))), (key2 = ($a[0] == null ? nil : $a[0])), $a; + if (j == null) j = nil;; + $a = [].concat($to_a(pairs['$[]'](i))), (key1 = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(pairs['$[]'](j))), (key2 = ($a[0] == null ? nil : $a[0])), $a; do_warn = false; - $case = key1.$type(); - if ("sym"['$===']($case) || "str"['$===']($case) || "int"['$===']($case) || "float"['$===']($case)) {if (key1['$=='](key2)) { - do_warn = true}} - else if ("rational"['$===']($case) || "complex"['$===']($case) || "regexp"['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_3 = $rb_ge(self.parser.$version(), 31)))) { - return key1['$=='](key2) + if (($eqeqeq("sym", ($ret_or_1 = key1.$type())) || (($eqeqeq("str", $ret_or_1) || (($eqeqeq("int", $ret_or_1) || ($eqeqeq("float", $ret_or_1)))))))) { + if ($eqeq(key1, key2)) { + do_warn = true + } + } else if (($eqeqeq("rational", $ret_or_1) || (($eqeqeq("complex", $ret_or_1) || ($eqeqeq("regexp", $ret_or_1)))))) { + if (($truthy($rb_ge(self.parser.$version(), 31)) && ($eqeq(key1, key2)))) { + do_warn = true + } } else { - return $ret_or_3 - }; return nil; })())) { - do_warn = true}}; + nil + }; if ($truthy(do_warn)) { return self.$diagnostic("warning", "duplicate_hash_key", nil, key2.$loc().$expression()) } else { return nil - };}, $$41.$$s = self, $$41.$$arity = 1, $$41));}, $$40.$$s = self, $$40.$$arity = 1, $$40)); - return self.$n("hash", [].concat(Opal.to_a(pairs)), self.$collection_map(begin_t, pairs, end_t)); - }, $Default_associate$39.$$arity = 3); + };}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + return self.$n("hash", [].concat($to_a(pairs)), self.$collection_map(begin_t, pairs, end_t)); + }, 3); - Opal.def(self, '$range_inclusive', $Default_range_inclusive$42 = function $$range_inclusive(lhs, dot2_t, rhs) { + $def(self, '$range_inclusive', function $$range_inclusive(lhs, dot2_t, rhs) { var self = this; return self.$n("irange", [lhs, rhs], self.$range_map(lhs, dot2_t, rhs)) - }, $Default_range_inclusive$42.$$arity = 3); + }, 3); - Opal.def(self, '$range_exclusive', $Default_range_exclusive$43 = function $$range_exclusive(lhs, dot3_t, rhs) { + $def(self, '$range_exclusive', function $$range_exclusive(lhs, dot3_t, rhs) { var self = this; return self.$n("erange", [lhs, rhs], self.$range_map(lhs, dot3_t, rhs)) - }, $Default_range_exclusive$43.$$arity = 3); + }, 3); - Opal.def(self, '$self', $Default_self$44 = function $$self(token) { + $def(self, '$self', function $$self(token) { var self = this; return self.$n0("self", self.$token_map(token)) - }, $Default_self$44.$$arity = 1); + }, 1); - Opal.def(self, '$ident', $Default_ident$45 = function $$ident(token) { + $def(self, '$ident', function $$ident(token) { var self = this; return self.$n("ident", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, $Default_ident$45.$$arity = 1); + }, 1); - Opal.def(self, '$ivar', $Default_ivar$46 = function $$ivar(token) { + $def(self, '$ivar', function $$ivar(token) { var self = this; return self.$n("ivar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, $Default_ivar$46.$$arity = 1); + }, 1); - Opal.def(self, '$gvar', $Default_gvar$47 = function $$gvar(token) { + $def(self, '$gvar', function $$gvar(token) { var self = this; return self.$n("gvar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, $Default_gvar$47.$$arity = 1); + }, 1); - Opal.def(self, '$cvar', $Default_cvar$48 = function $$cvar(token) { + $def(self, '$cvar', function $$cvar(token) { var self = this; return self.$n("cvar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, $Default_cvar$48.$$arity = 1); + }, 1); - Opal.def(self, '$back_ref', $Default_back_ref$49 = function $$back_ref(token) { + $def(self, '$back_ref', function $$back_ref(token) { var self = this; return self.$n("back_ref", [self.$value(token).$to_sym()], self.$token_map(token)) - }, $Default_back_ref$49.$$arity = 1); + }, 1); - Opal.def(self, '$nth_ref', $Default_nth_ref$50 = function $$nth_ref(token) { + $def(self, '$nth_ref', function $$nth_ref(token) { var self = this; return self.$n("nth_ref", [self.$value(token)], self.$token_map(token)) - }, $Default_nth_ref$50.$$arity = 1); + }, 1); - Opal.def(self, '$accessible', $Default_accessible$51 = function $$accessible(node) { - var $a, $$52, self = this, $case = nil, name = nil, $ret_or_4 = nil; - - return (function() {$case = node.$type(); - if ("__FILE__"['$===']($case)) {if ($truthy(self.emit_file_line_as_literals)) { - return self.$n("str", [node.$loc().$expression().$source_buffer().$name()], node.$loc().$dup()) - } else { - return node - }} - else if ("__LINE__"['$===']($case)) {if ($truthy(self.emit_file_line_as_literals)) { - return self.$n("int", [node.$loc().$expression().$line()], node.$loc().$dup()) - } else { - return node - }} - else if ("__ENCODING__"['$===']($case)) {if ($truthy(self.$class().$emit_encoding()['$!']())) { - return self.$n("const", [self.$n("const", [nil, "Encoding"], nil), "UTF_8"], node.$loc().$dup()) - } else { - return node - }} - else if ("ident"['$===']($case)) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - if ($truthy($send(["?", "!"], 'any?', [], ($$52 = function(c){var self = $$52.$$s == null ? this : $$52.$$s; + $def(self, '$accessible', function $$accessible(node) { + var $a, self = this, $ret_or_1 = nil, name = nil; + if ($eqeqeq("__FILE__", ($ret_or_1 = node.$type()))) { + if ($truthy(self.emit_file_line_as_literals)) { + return self.$n("str", [node.$loc().$expression().$source_buffer().$name()], node.$loc().$dup()) + } else { + return node + } + } else if ($eqeqeq("__LINE__", $ret_or_1)) { + if ($truthy(self.emit_file_line_as_literals)) { + return self.$n("int", [node.$loc().$expression().$line()], node.$loc().$dup()) + } else { + return node + } + } else if ($eqeqeq("__ENCODING__", $ret_or_1)) { + if ($not(self.$class().$emit_encoding())) { + return self.$n("const", [self.$n("const", [nil, "Encoding"], nil), "UTF_8"], node.$loc().$dup()) + } else { + return node + } + } else if ($eqeqeq("ident", $ret_or_1)) { - - if (c == null) { - c = nil; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + if ($truthy($send(["?", "!"], 'any?', [], function $$9(c){ + + + if (c == null) c = nil;; + return name.$to_s()['$end_with?'](c);}, 1))) { + self.$diagnostic("error", "invalid_id_to_get", $hash2(["identifier"], {"identifier": name.$to_s()}), node.$loc().$expression()) }; - return name.$to_s()['$end_with?'](c);}, $$52.$$s = self, $$52.$$arity = 1, $$52)))) { - self.$diagnostic("error", "invalid_id_to_get", $hash2(["identifier"], {"identifier": name.$to_s()}), node.$loc().$expression())}; - if ($truthy((function() {if ($truthy(($ret_or_4 = $rb_ge(self.parser.$version(), 27)))) { - return self.parser.$try_declare_numparam(node) - } else { - return $ret_or_4 - }; return nil; })())) { - return node.$updated("lvar")}; - if ($truthy(self.parser.$static_env()['$declared?'](name))) { + if (($truthy($rb_ge(self.parser.$version(), 27)) && ($truthy(self.parser.$try_declare_numparam(node))))) { + return node.$updated("lvar") + }; + if (!$truthy(self.parser.$static_env()['$declared?'](name))) { + return self.$n("send", [nil, name], self.$var_send_map(node)) + }; + if ($eqeq(name.$to_s(), self.$parser().$current_arg_stack().$top())) { + self.$diagnostic("error", "circular_argument_reference", $hash2(["var_name"], {"var_name": name.$to_s()}), node.$loc().$expression()) + }; + return node.$updated("lvar"); } else { - return self.$n("send", [nil, name], self.$var_send_map(node)) - }; - if (name.$to_s()['$=='](self.$parser().$current_arg_stack().$top())) { - self.$diagnostic("error", "circular_argument_reference", $hash2(["var_name"], {"var_name": name.$to_s()}), node.$loc().$expression())}; - return node.$updated("lvar");} - else {return node}})() - }, $Default_accessible$51.$$arity = 1); + return node + } + }, 1); - Opal.def(self, '$const', $Default_const$53 = function(name_t) { + $def(self, '$const', function $Default_const$10(name_t) { var self = this; return self.$n("const", [nil, self.$value(name_t).$to_sym()], self.$constant_map(nil, nil, name_t)) - }, $Default_const$53.$$arity = 1); + }, 1); - Opal.def(self, '$const_global', $Default_const_global$54 = function $$const_global(t_colon3, name_t) { + $def(self, '$const_global', function $$const_global(t_colon3, name_t) { var self = this, cbase = nil; cbase = self.$n0("cbase", self.$token_map(t_colon3)); return self.$n("const", [cbase, self.$value(name_t).$to_sym()], self.$constant_map(cbase, t_colon3, name_t)); - }, $Default_const_global$54.$$arity = 2); + }, 2); - Opal.def(self, '$const_fetch', $Default_const_fetch$55 = function $$const_fetch(scope, t_colon2, name_t) { + $def(self, '$const_fetch', function $$const_fetch(scope, t_colon2, name_t) { var self = this; return self.$n("const", [scope, self.$value(name_t).$to_sym()], self.$constant_map(scope, t_colon2, name_t)) - }, $Default_const_fetch$55.$$arity = 3); + }, 3); - Opal.def(self, '$__ENCODING__', $Default___ENCODING__$56 = function $$__ENCODING__(__ENCODING__t) { + $def(self, '$__ENCODING__', function $$__ENCODING__(__ENCODING__t) { var self = this; return self.$n0("__ENCODING__", self.$token_map(__ENCODING__t)) - }, $Default___ENCODING__$56.$$arity = 1); - - Opal.def(self, '$assignable', $Default_assignable$57 = function $$assignable(node) { - var $a, self = this, $case = nil, name = nil, var_name = nil, name_loc = nil; - - return (function() {$case = node.$type(); - if ("cvar"['$===']($case)) {return node.$updated("cvasgn")} - else if ("ivar"['$===']($case)) {return node.$updated("ivasgn")} - else if ("gvar"['$===']($case)) {return node.$updated("gvasgn")} - else if ("const"['$===']($case)) { - if ($truthy(self.parser.$context().$in_def())) { - self.$diagnostic("error", "dynamic_const", nil, node.$loc().$expression())}; - return node.$updated("casgn");} - else if ("ident"['$===']($case)) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - var_name = node.$children()['$[]'](0).$to_s(); - name_loc = node.$loc().$expression(); - self.$check_assignment_to_numparam(var_name, name_loc); - self.$check_reserved_for_numparam(var_name, name_loc); - self.parser.$static_env().$declare(name); - return node.$updated("lvasgn");} - else if ("match_var"['$===']($case)) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - var_name = node.$children()['$[]'](0).$to_s(); - name_loc = node.$loc().$expression(); - self.$check_assignment_to_numparam(var_name, name_loc); - self.$check_reserved_for_numparam(var_name, name_loc); - return node;} - else if ("nil"['$===']($case) || "self"['$===']($case) || "true"['$===']($case) || "false"['$===']($case) || "__FILE__"['$===']($case) || "__LINE__"['$===']($case) || "__ENCODING__"['$===']($case)) {return self.$diagnostic("error", "invalid_assignment", nil, node.$loc().$expression())} - else if ("back_ref"['$===']($case) || "nth_ref"['$===']($case)) {return self.$diagnostic("error", "backref_assignment", nil, node.$loc().$expression())} - else { return nil }})() - }, $Default_assignable$57.$$arity = 1); - - Opal.def(self, '$const_op_assignable', $Default_const_op_assignable$58 = function $$const_op_assignable(node) { - var self = this; + }, 1); + + $def(self, '$assignable', function $$assignable(node) { + var $a, self = this, $ret_or_1 = nil, name = nil, var_name = nil, name_loc = nil; + if ($eqeqeq("cvar", ($ret_or_1 = node.$type()))) { + return node.$updated("cvasgn") + } else if ($eqeqeq("ivar", $ret_or_1)) { + return node.$updated("ivasgn") + } else if ($eqeqeq("gvar", $ret_or_1)) { + return node.$updated("gvasgn") + } else if ($eqeqeq("const", $ret_or_1)) { + + if ($truthy(self.parser.$context().$in_def())) { + self.$diagnostic("error", "dynamic_const", nil, node.$loc().$expression()) + }; + return node.$updated("casgn"); + } else if ($eqeqeq("ident", $ret_or_1)) { + + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + var_name = node.$children()['$[]'](0).$to_s(); + name_loc = node.$loc().$expression(); + self.$check_assignment_to_numparam(var_name, name_loc); + self.$check_reserved_for_numparam(var_name, name_loc); + self.parser.$static_env().$declare(name); + return node.$updated("lvasgn"); + } else if ($eqeqeq("match_var", $ret_or_1)) { + + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + var_name = node.$children()['$[]'](0).$to_s(); + name_loc = node.$loc().$expression(); + self.$check_assignment_to_numparam(var_name, name_loc); + self.$check_reserved_for_numparam(var_name, name_loc); + return node; + } else if (($eqeqeq("nil", $ret_or_1) || (($eqeqeq("self", $ret_or_1) || (($eqeqeq("true", $ret_or_1) || (($eqeqeq("false", $ret_or_1) || (($eqeqeq("__FILE__", $ret_or_1) || (($eqeqeq("__LINE__", $ret_or_1) || ($eqeqeq("__ENCODING__", $ret_or_1)))))))))))))) { + return self.$diagnostic("error", "invalid_assignment", nil, node.$loc().$expression()) + } else if (($eqeqeq("back_ref", $ret_or_1) || ($eqeqeq("nth_ref", $ret_or_1)))) { + return self.$diagnostic("error", "backref_assignment", nil, node.$loc().$expression()) + } else { + return nil + } + }, 1); + + $def(self, '$const_op_assignable', function $$const_op_assignable(node) { + return node.$updated("casgn") - }, $Default_const_op_assignable$58.$$arity = 1); + }, 1); - Opal.def(self, '$assign', $Default_assign$59 = function $$assign(lhs, eql_t, rhs) { + $def(self, '$assign', function $$assign(lhs, eql_t, rhs) { var self = this; return lhs['$<<'](rhs).$updated(nil, nil, $hash2(["location"], {"location": lhs.$loc().$with_operator(self.$loc(eql_t)).$with_expression(self.$join_exprs(lhs, rhs))})) - }, $Default_assign$59.$$arity = 3); + }, 3); - Opal.def(self, '$op_assign', $Default_op_assign$60 = function $$op_assign(lhs, op_t, rhs) { - var self = this, $case = nil, operator = nil, source_map = nil; + $def(self, '$op_assign', function $$op_assign(lhs, op_t, rhs) { + var self = this, $ret_or_1 = nil, operator = nil, source_map = nil, $ret_or_2 = nil; - return (function() {$case = lhs.$type(); - if ("gvasgn"['$===']($case) || "ivasgn"['$===']($case) || "lvasgn"['$===']($case) || "cvasgn"['$===']($case) || "casgn"['$===']($case) || "send"['$===']($case) || "csend"['$===']($case) || "index"['$===']($case)) { - operator = self.$value(op_t)['$[]']($range(0, -1, false)).$to_sym(); - source_map = lhs.$loc().$with_operator(self.$loc(op_t)).$with_expression(self.$join_exprs(lhs, rhs)); - if (lhs.$type()['$==']("index")) { - lhs = lhs.$updated("indexasgn")}; - return (function() {$case = operator; - if ("&&"['$===']($case)) {return self.$n("and_asgn", [lhs, rhs], source_map)} - else if ("||"['$===']($case)) {return self.$n("or_asgn", [lhs, rhs], source_map)} - else {return self.$n("op_asgn", [lhs, operator, rhs], source_map)}})();} - else if ("back_ref"['$===']($case) || "nth_ref"['$===']($case)) {return self.$diagnostic("error", "backref_assignment", nil, lhs.$loc().$expression())} - else { return nil }})() - }, $Default_op_assign$60.$$arity = 3); + if (($eqeqeq("gvasgn", ($ret_or_1 = lhs.$type())) || (($eqeqeq("ivasgn", $ret_or_1) || (($eqeqeq("lvasgn", $ret_or_1) || (($eqeqeq("cvasgn", $ret_or_1) || (($eqeqeq("casgn", $ret_or_1) || (($eqeqeq("send", $ret_or_1) || (($eqeqeq("csend", $ret_or_1) || ($eqeqeq("index", $ret_or_1)))))))))))))))) { + + operator = self.$value(op_t)['$[]']($range(0, -1, false)).$to_sym(); + source_map = lhs.$loc().$with_operator(self.$loc(op_t)).$with_expression(self.$join_exprs(lhs, rhs)); + if ($eqeq(lhs.$type(), "index")) { + lhs = lhs.$updated("indexasgn") + }; + if ($eqeqeq("&&", ($ret_or_2 = operator))) { + return self.$n("and_asgn", [lhs, rhs], source_map) + } else if ($eqeqeq("||", $ret_or_2)) { + return self.$n("or_asgn", [lhs, rhs], source_map) + } else { + return self.$n("op_asgn", [lhs, operator, rhs], source_map) + }; + } else if (($eqeqeq("back_ref", $ret_or_1) || ($eqeqeq("nth_ref", $ret_or_1)))) { + return self.$diagnostic("error", "backref_assignment", nil, lhs.$loc().$expression()) + } else { + return nil + } + }, 3); - Opal.def(self, '$multi_lhs', $Default_multi_lhs$61 = function $$multi_lhs(begin_t, items, end_t) { + $def(self, '$multi_lhs', function $$multi_lhs(begin_t, items, end_t) { var self = this; - return self.$n("mlhs", [].concat(Opal.to_a(items)), self.$collection_map(begin_t, items, end_t)) - }, $Default_multi_lhs$61.$$arity = 3); + return self.$n("mlhs", [].concat($to_a(items)), self.$collection_map(begin_t, items, end_t)) + }, 3); - Opal.def(self, '$multi_assign', $Default_multi_assign$62 = function $$multi_assign(lhs, eql_t, rhs) { + $def(self, '$multi_assign', function $$multi_assign(lhs, eql_t, rhs) { var self = this; return self.$n("masgn", [lhs, rhs], self.$binary_op_map(lhs, eql_t, rhs)) - }, $Default_multi_assign$62.$$arity = 3); + }, 3); - Opal.def(self, '$def_class', $Default_def_class$63 = function $$def_class(class_t, name, lt_t, superclass, body, end_t) { + $def(self, '$def_class', function $$def_class(class_t, name, lt_t, superclass, body, end_t) { var self = this; return self.$n("class", [name, superclass, body], self.$module_definition_map(class_t, name, lt_t, end_t)) - }, $Default_def_class$63.$$arity = 6); + }, 6); - Opal.def(self, '$def_sclass', $Default_def_sclass$64 = function $$def_sclass(class_t, lshft_t, expr, body, end_t) { + $def(self, '$def_sclass', function $$def_sclass(class_t, lshft_t, expr, body, end_t) { var self = this; return self.$n("sclass", [expr, body], self.$module_definition_map(class_t, nil, lshft_t, end_t)) - }, $Default_def_sclass$64.$$arity = 5); + }, 5); - Opal.def(self, '$def_module', $Default_def_module$65 = function $$def_module(module_t, name, body, end_t) { + $def(self, '$def_module', function $$def_module(module_t, name, body, end_t) { var self = this; return self.$n("module", [name, body], self.$module_definition_map(module_t, name, nil, end_t)) - }, $Default_def_module$65.$$arity = 4); + }, 4); - Opal.def(self, '$def_method', $Default_def_method$66 = function $$def_method(def_t, name_t, args, body, end_t) { + $def(self, '$def_method', function $$def_method(def_t, name_t, args, body, end_t) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("def", [self.$value(name_t).$to_sym(), args, body], self.$definition_map(def_t, nil, name_t, end_t)); - }, $Default_def_method$66.$$arity = 5); + }, 5); - Opal.def(self, '$def_endless_method', $Default_def_endless_method$67 = function $$def_endless_method(def_t, name_t, args, assignment_t, body) { + $def(self, '$def_endless_method', function $$def_endless_method(def_t, name_t, args, assignment_t, body) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("def", [self.$value(name_t).$to_sym(), args, body], self.$endless_definition_map(def_t, nil, name_t, assignment_t, body)); - }, $Default_def_endless_method$67.$$arity = 5); + }, 5); - Opal.def(self, '$def_singleton', $Default_def_singleton$68 = function $$def_singleton(def_t, definee, dot_t, name_t, args, body, end_t) { + $def(self, '$def_singleton', function $$def_singleton(def_t, definee, dot_t, name_t, args, body, end_t) { var self = this; self.$validate_definee(definee); self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("defs", [definee, self.$value(name_t).$to_sym(), args, body], self.$definition_map(def_t, dot_t, name_t, end_t)); - }, $Default_def_singleton$68.$$arity = 7); + }, 7); - Opal.def(self, '$def_endless_singleton', $Default_def_endless_singleton$69 = function $$def_endless_singleton(def_t, definee, dot_t, name_t, args, assignment_t, body) { + $def(self, '$def_endless_singleton', function $$def_endless_singleton(def_t, definee, dot_t, name_t, args, assignment_t, body) { var self = this; self.$validate_definee(definee); self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("defs", [definee, self.$value(name_t).$to_sym(), args, body], self.$endless_definition_map(def_t, dot_t, name_t, assignment_t, body)); - }, $Default_def_endless_singleton$69.$$arity = 7); + }, 7); - Opal.def(self, '$undef_method', $Default_undef_method$70 = function $$undef_method(undef_t, names) { + $def(self, '$undef_method', function $$undef_method(undef_t, names) { var self = this; - return self.$n("undef", [].concat(Opal.to_a(names)), self.$keyword_map(undef_t, nil, names, nil)) - }, $Default_undef_method$70.$$arity = 2); + return self.$n("undef", [].concat($to_a(names)), self.$keyword_map(undef_t, nil, names, nil)) + }, 2); - Opal.def(self, '$alias', $Default_alias$71 = function $$alias(alias_t, to, from) { + $def(self, '$alias', function $$alias(alias_t, to, from) { var self = this; return self.$n("alias", [to, from], self.$keyword_map(alias_t, nil, [to, from], nil)) - }, $Default_alias$71.$$arity = 3); + }, 3); - Opal.def(self, '$args', $Default_args$72 = function $$args(begin_t, args, end_t, check_args) { - var self = this, map = nil, $ret_or_5 = nil, $ret_or_6 = nil; + $def(self, '$args', function $$args(begin_t, args, end_t, check_args) { + var self = this, map = nil; - if (check_args == null) { - check_args = true; - }; + if (check_args == null) check_args = true;; if ($truthy(check_args)) { - args = self.$check_duplicate_args(args)}; + args = self.$check_duplicate_args(args) + }; self.$validate_no_forward_arg_after_restarg(args); map = self.$collection_map(begin_t, args, end_t); - if ($truthy((function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.$class().$emit_forward_arg()['$!']()))) { - return args.$length()['$=='](1) - } else { - return $ret_or_6 - }; return nil; })()))) { - return args['$[]'](0).$type()['$==']("forward_arg") - } else { - return $ret_or_5 - }; return nil; })())) { + if ((($not(self.$class().$emit_forward_arg()) && ($eqeq(args.$length(), 1))) && ($eqeq(args['$[]'](0).$type(), "forward_arg")))) { return self.$n("forward_args", [], map) } else { return self.$n("args", args, map) }; - }, $Default_args$72.$$arity = -4); + }, -4); - Opal.def(self, '$numargs', $Default_numargs$73 = function $$numargs(max_numparam) { + $def(self, '$numargs', function $$numargs(max_numparam) { var self = this; return self.$n("numargs", [max_numparam], nil) - }, $Default_numargs$73.$$arity = 1); + }, 1); - Opal.def(self, '$forward_only_args', $Default_forward_only_args$74 = function $$forward_only_args(begin_t, dots_t, end_t) { + $def(self, '$forward_only_args', function $$forward_only_args(begin_t, dots_t, end_t) { var self = this, arg = nil; if ($truthy(self.$class().$emit_forward_arg())) { @@ -21431,38 +18465,36 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n("forward_args", [], self.$collection_map(begin_t, self.$token_map(dots_t), end_t)) } - }, $Default_forward_only_args$74.$$arity = 3); + }, 3); - Opal.def(self, '$forward_arg', $Default_forward_arg$75 = function $$forward_arg(dots_t) { + $def(self, '$forward_arg', function $$forward_arg(dots_t) { var self = this; return self.$n("forward_arg", [], self.$token_map(dots_t)) - }, $Default_forward_arg$75.$$arity = 1); + }, 1); - Opal.def(self, '$arg', $Default_arg$76 = function $$arg(name_t) { + $def(self, '$arg', function $$arg(name_t) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("arg", [self.$value(name_t).$to_sym()], self.$variable_map(name_t)); - }, $Default_arg$76.$$arity = 1); + }, 1); - Opal.def(self, '$optarg', $Default_optarg$77 = function $$optarg(name_t, eql_t, value) { + $def(self, '$optarg', function $$optarg(name_t, eql_t, value) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("optarg", [self.$value(name_t).$to_sym(), value], self.$variable_map(name_t).$with_operator(self.$loc(eql_t)).$with_expression(self.$loc(name_t).$join(value.$loc().$expression()))); - }, $Default_optarg$77.$$arity = 3); + }, 3); - Opal.def(self, '$restarg', $Default_restarg$78 = function $$restarg(star_t, name_t) { + $def(self, '$restarg', function $$restarg(star_t, name_t) { var self = this; - if (name_t == null) { - name_t = nil; - }; + if (name_t == null) name_t = nil;; if ($truthy(name_t)) { self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); @@ -21470,32 +18502,30 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n0("restarg", self.$arg_prefix_map(star_t)) }; - }, $Default_restarg$78.$$arity = -2); + }, -2); - Opal.def(self, '$kwarg', $Default_kwarg$79 = function $$kwarg(name_t) { + $def(self, '$kwarg', function $$kwarg(name_t) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("kwarg", [self.$value(name_t).$to_sym()], self.$kwarg_map(name_t)); - }, $Default_kwarg$79.$$arity = 1); + }, 1); - Opal.def(self, '$kwoptarg', $Default_kwoptarg$80 = function $$kwoptarg(name_t, value) { + $def(self, '$kwoptarg', function $$kwoptarg(name_t, value) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("kwoptarg", [self.$value(name_t).$to_sym(), value], self.$kwarg_map(name_t, value)); - }, $Default_kwoptarg$80.$$arity = 2); + }, 2); - Opal.def(self, '$kwrestarg', $Default_kwrestarg$81 = function $$kwrestarg(dstar_t, name_t) { + $def(self, '$kwrestarg', function $$kwrestarg(dstar_t, name_t) { var self = this; - if (name_t == null) { - name_t = nil; - }; + if (name_t == null) name_t = nil;; if ($truthy(name_t)) { self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); @@ -21503,92 +18533,83 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n0("kwrestarg", self.$arg_prefix_map(dstar_t)) }; - }, $Default_kwrestarg$81.$$arity = -2); + }, -2); - Opal.def(self, '$kwnilarg', $Default_kwnilarg$82 = function $$kwnilarg(dstar_t, nil_t) { + $def(self, '$kwnilarg', function $$kwnilarg(dstar_t, nil_t) { var self = this; return self.$n0("kwnilarg", self.$arg_prefix_map(dstar_t, nil_t)) - }, $Default_kwnilarg$82.$$arity = 2); + }, 2); - Opal.def(self, '$shadowarg', $Default_shadowarg$83 = function $$shadowarg(name_t) { + $def(self, '$shadowarg', function $$shadowarg(name_t) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("shadowarg", [self.$value(name_t).$to_sym()], self.$variable_map(name_t)); - }, $Default_shadowarg$83.$$arity = 1); + }, 1); - Opal.def(self, '$blockarg', $Default_blockarg$84 = function $$blockarg(amper_t, name_t) { + $def(self, '$blockarg', function $$blockarg(amper_t, name_t) { var self = this, arg_name = nil; - if ($truthy(name_t['$nil?']()['$!']())) { - self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t))}; - arg_name = (function() {if ($truthy(name_t)) { - return self.$value(name_t).$to_sym() - } else { - return nil - }; return nil; })(); + if ($not(name_t['$nil?']())) { + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)) + }; + arg_name = ($truthy(name_t) ? (self.$value(name_t).$to_sym()) : (nil)); return self.$n("blockarg", [arg_name], self.$arg_prefix_map(amper_t, name_t)); - }, $Default_blockarg$84.$$arity = 2); + }, 2); - Opal.def(self, '$procarg0', $Default_procarg0$85 = function $$procarg0(arg) { - var self = this, $ret_or_7 = nil; + $def(self, '$procarg0', function $$procarg0(arg) { + var self = this; if ($truthy(self.$class().$emit_procarg0())) { - if ($truthy((function() {if ($truthy(($ret_or_7 = arg.$type()['$==']("arg")))) { - return self.$class().$emit_arg_inside_procarg0() - } else { - return $ret_or_7 - }; return nil; })())) { - return self.$n("procarg0", [arg], $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, arg.$location().$expression())) + if (($eqeq(arg.$type(), "arg") && ($truthy(self.$class().$emit_arg_inside_procarg0())))) { + return self.$n("procarg0", [arg], $$$($$$($$('Source'), 'Map'), 'Collection').$new(nil, nil, arg.$location().$expression())) } else { return arg.$updated("procarg0") } } else { return arg } - }, $Default_procarg0$85.$$arity = 1); + }, 1); - Opal.def(self, '$arg_expr', $Default_arg_expr$86 = function $$arg_expr(expr) { + $def(self, '$arg_expr', function $$arg_expr(expr) { var self = this; - if (expr.$type()['$==']("lvasgn")) { + if ($eqeq(expr.$type(), "lvasgn")) { return expr.$updated("arg") } else { return self.$n("arg_expr", [expr], expr.$loc().$dup()) } - }, $Default_arg_expr$86.$$arity = 1); + }, 1); - Opal.def(self, '$restarg_expr', $Default_restarg_expr$87 = function $$restarg_expr(star_t, expr) { + $def(self, '$restarg_expr', function $$restarg_expr(star_t, expr) { var self = this; - if (expr == null) { - expr = nil; - }; + if (expr == null) expr = nil;; if ($truthy(expr['$nil?']())) { return self.$n0("restarg", self.$token_map(star_t)) - } else if (expr.$type()['$==']("lvasgn")) { + } else if ($eqeq(expr.$type(), "lvasgn")) { return expr.$updated("restarg") } else { return self.$n("restarg_expr", [expr], expr.$loc().$dup()) }; - }, $Default_restarg_expr$87.$$arity = -2); + }, -2); - Opal.def(self, '$blockarg_expr', $Default_blockarg_expr$88 = function $$blockarg_expr(amper_t, expr) { + $def(self, '$blockarg_expr', function $$blockarg_expr(amper_t, expr) { var self = this; - if (expr.$type()['$==']("lvasgn")) { + if ($eqeq(expr.$type(), "lvasgn")) { return expr.$updated("blockarg") } else { return self.$n("blockarg_expr", [expr], expr.$loc().$dup()) } - }, $Default_blockarg_expr$88.$$arity = 2); + }, 2); - Opal.def(self, '$objc_kwarg', $Default_objc_kwarg$89 = function $$objc_kwarg(kwname_t, assoc_t, name_t) { + $def(self, '$objc_kwarg', function $$objc_kwarg(kwname_t, assoc_t, name_t) { var self = this, kwname_l = nil, operator_l = nil; @@ -21600,73 +18621,62 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { operator_l = self.$loc(assoc_t) }; - return self.$n("objc_kwarg", [self.$value(kwname_t).$to_sym(), self.$value(name_t).$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'ObjcKwarg').$new(kwname_l, operator_l, self.$loc(name_t), kwname_l.$join(self.$loc(name_t)))); - }, $Default_objc_kwarg$89.$$arity = 3); + return self.$n("objc_kwarg", [self.$value(kwname_t).$to_sym(), self.$value(name_t).$to_sym()], $$$($$$($$('Source'), 'Map'), 'ObjcKwarg').$new(kwname_l, operator_l, self.$loc(name_t), kwname_l.$join(self.$loc(name_t)))); + }, 3); - Opal.def(self, '$objc_restarg', $Default_objc_restarg$90 = function $$objc_restarg(star_t, name) { + $def(self, '$objc_restarg', function $$objc_restarg(star_t, name) { var self = this; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; if ($truthy(name['$nil?']())) { return self.$n0("restarg", self.$arg_prefix_map(star_t)) - } else if (name.$type()['$==']("arg")) { + } else if ($eqeq(name.$type(), "arg")) { return name.$updated("restarg", nil, $hash2(["location"], {"location": name.$loc().$with_operator(self.$loc(star_t))})) } else { return self.$n("objc_restarg", [name], self.$unary_op_map(star_t, name)) }; - }, $Default_objc_restarg$90.$$arity = -2); + }, -2); - Opal.def(self, '$call_type_for_dot', $Default_call_type_for_dot$91 = function $$call_type_for_dot(dot_t) { - var self = this, $ret_or_8 = nil; + $def(self, '$call_type_for_dot', function $$call_type_for_dot(dot_t) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_8 = dot_t['$nil?']()['$!']()))) { - return self.$value(dot_t)['$==']("anddot") - } else { - return $ret_or_8 - }; return nil; })())) { + if (($not(dot_t['$nil?']()) && ($eqeq(self.$value(dot_t), "anddot")))) { return "csend" } else { return "send" } - }, $Default_call_type_for_dot$91.$$arity = 1); + }, 1); - Opal.def(self, '$forwarded_args', $Default_forwarded_args$92 = function $$forwarded_args(dots_t) { + $def(self, '$forwarded_args', function $$forwarded_args(dots_t) { var self = this; return self.$n("forwarded_args", [], self.$token_map(dots_t)) - }, $Default_forwarded_args$92.$$arity = 1); + }, 1); - Opal.def(self, '$call_method', $Default_call_method$93 = function $$call_method(receiver, dot_t, selector_t, lparen_t, args, rparen_t) { + $def(self, '$call_method', function $$call_method(receiver, dot_t, selector_t, lparen_t, args, rparen_t) { var self = this, type = nil; - if (lparen_t == null) { - lparen_t = nil; - }; + if (lparen_t == null) lparen_t = nil;; - if (args == null) { - args = []; - }; + if (args == null) args = [];; - if (rparen_t == null) { - rparen_t = nil; - }; + if (rparen_t == null) rparen_t = nil;; type = self.$call_type_for_dot(dot_t); if ($truthy(self.$class().$emit_kwargs())) { - self.$rewrite_hash_args_to_kwargs(args)}; + self.$rewrite_hash_args_to_kwargs(args) + }; if ($truthy(selector_t['$nil?']())) { - return self.$n(type, [receiver, "call"].concat(Opal.to_a(args)), self.$send_map(receiver, dot_t, nil, lparen_t, args, rparen_t)) + return self.$n(type, [receiver, "call"].concat($to_a(args)), self.$send_map(receiver, dot_t, nil, lparen_t, args, rparen_t)) } else { - return self.$n(type, [receiver, self.$value(selector_t).$to_sym()].concat(Opal.to_a(args)), self.$send_map(receiver, dot_t, selector_t, lparen_t, args, rparen_t)) + return self.$n(type, [receiver, self.$value(selector_t).$to_sym()].concat($to_a(args)), self.$send_map(receiver, dot_t, selector_t, lparen_t, args, rparen_t)) }; - }, $Default_call_method$93.$$arity = -4); + }, -4); - Opal.def(self, '$call_lambda', $Default_call_lambda$94 = function $$call_lambda(lambda_t) { + $def(self, '$call_lambda', function $$call_lambda(lambda_t) { var self = this; if ($truthy(self.$class().$emit_lambda())) { @@ -21674,28 +18684,21 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n("send", [nil, "lambda"], self.$send_map(nil, nil, lambda_t)) } - }, $Default_call_lambda$94.$$arity = 1); + }, 1); - Opal.def(self, '$block', $Default_block$95 = function $$block(method_call, begin_t, args, body, end_t) { - var $a, self = this, _receiver = nil, _selector = nil, call_args = nil, last_arg = nil, $ret_or_9 = nil, $ret_or_10 = nil, block_type = nil, actual_send = nil, block = nil; + $def(self, '$block', function $$block(method_call, begin_t, args, body, end_t) { + var $a, self = this, _receiver = nil, _selector = nil, call_args = nil, last_arg = nil, block_type = nil, actual_send = nil, block = nil; - $a = [].concat(Opal.to_a(method_call)), (_receiver = ($a[0] == null ? nil : $a[0])), (_selector = ($a[1] == null ? nil : $a[1])), (call_args = $slice.call($a, 2)), $a; - if (method_call.$type()['$==']("yield")) { - self.$diagnostic("error", "block_given_to_yield", nil, method_call.$loc().$keyword(), [self.$loc(begin_t)])}; + $a = [].concat($to_a(method_call)), (_receiver = ($a[0] == null ? nil : $a[0])), (_selector = ($a[1] == null ? nil : $a[1])), (call_args = $slice.call($a, 2)), $a; + if ($eqeq(method_call.$type(), "yield")) { + self.$diagnostic("error", "block_given_to_yield", nil, method_call.$loc().$keyword(), [self.$loc(begin_t)]) + }; last_arg = call_args.$last(); - if ($truthy((function() {if ($truthy(($ret_or_9 = last_arg))) { - - if ($truthy(($ret_or_10 = last_arg.$type()['$==']("block_pass")))) { - return $ret_or_10 - } else { - return last_arg.$type()['$==']("forwarded_args") - }; - } else { - return $ret_or_9 - }; return nil; })())) { - self.$diagnostic("error", "block_and_blockarg", nil, last_arg.$loc().$expression(), [self.$loc(begin_t)])}; - if (args.$type()['$==']("numargs")) { + if (($truthy(last_arg) && (($eqeq(last_arg.$type(), "block_pass") || ($eqeq(last_arg.$type(), "forwarded_args")))))) { + self.$diagnostic("error", "block_and_blockarg", nil, last_arg.$loc().$expression(), [self.$loc(begin_t)]) + }; + if ($eqeq(args.$type(), "numargs")) { block_type = "numblock"; args = args.$children()['$[]'](0); @@ -21706,125 +18709,123 @@ Opal.modules["parser/builders/default"] = function(Opal) { return self.$n(block_type, [method_call, args, body], self.$block_map(method_call.$loc().$expression(), begin_t, end_t)) } else { - $a = [].concat(Opal.to_a(method_call)), (actual_send = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(method_call)), (actual_send = ($a[0] == null ? nil : $a[0])), $a; block = self.$n(block_type, [actual_send, args, body], self.$block_map(actual_send.$loc().$expression(), begin_t, end_t)); return self.$n(method_call.$type(), [block], method_call.$loc().$with_expression(self.$join_exprs(method_call, block))); }; - }, $Default_block$95.$$arity = 5); + }, 5); - Opal.def(self, '$block_pass', $Default_block_pass$96 = function $$block_pass(amper_t, arg) { + $def(self, '$block_pass', function $$block_pass(amper_t, arg) { var self = this; return self.$n("block_pass", [arg], self.$unary_op_map(amper_t, arg)) - }, $Default_block_pass$96.$$arity = 2); + }, 2); - Opal.def(self, '$objc_varargs', $Default_objc_varargs$97 = function $$objc_varargs(pair, rest_of_varargs) { + $def(self, '$objc_varargs', function $$objc_varargs(pair, rest_of_varargs) { var $a, self = this, value = nil, first_vararg = nil, vararg_array = nil; - $a = [].concat(Opal.to_a(pair)), (value = ($a[0] == null ? nil : $a[0])), (first_vararg = ($a[1] == null ? nil : $a[1])), $a; - vararg_array = self.$array(nil, [first_vararg].concat(Opal.to_a(rest_of_varargs)), nil).$updated("objc_varargs"); + $a = [].concat($to_a(pair)), (value = ($a[0] == null ? nil : $a[0])), (first_vararg = ($a[1] == null ? nil : $a[1])), $a; + vararg_array = self.$array(nil, [first_vararg].concat($to_a(rest_of_varargs)), nil).$updated("objc_varargs"); return pair.$updated(nil, [value, vararg_array], $hash2(["location"], {"location": pair.$loc().$with_expression(pair.$loc().$expression().$join(vararg_array.$loc().$expression()))})); - }, $Default_objc_varargs$97.$$arity = 2); + }, 2); - Opal.def(self, '$attr_asgn', $Default_attr_asgn$98 = function $$attr_asgn(receiver, dot_t, selector_t) { + $def(self, '$attr_asgn', function $$attr_asgn(receiver, dot_t, selector_t) { var self = this, method_name = nil, type = nil; method_name = $rb_plus(self.$value(selector_t), "=").$to_sym(); type = self.$call_type_for_dot(dot_t); return self.$n(type, [receiver, method_name], self.$send_map(receiver, dot_t, selector_t)); - }, $Default_attr_asgn$98.$$arity = 3); + }, 3); - Opal.def(self, '$index', $Default_index$99 = function $$index(receiver, lbrack_t, indexes, rbrack_t) { + $def(self, '$index', function $$index(receiver, lbrack_t, indexes, rbrack_t) { var self = this; if ($truthy(self.$class().$emit_kwargs())) { - self.$rewrite_hash_args_to_kwargs(indexes)}; + self.$rewrite_hash_args_to_kwargs(indexes) + }; if ($truthy(self.$class().$emit_index())) { - return self.$n("index", [receiver].concat(Opal.to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) + return self.$n("index", [receiver].concat($to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) } else { - return self.$n("send", [receiver, "[]"].concat(Opal.to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) + return self.$n("send", [receiver, "[]"].concat($to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) }; - }, $Default_index$99.$$arity = 4); + }, 4); - Opal.def(self, '$index_asgn', $Default_index_asgn$100 = function $$index_asgn(receiver, lbrack_t, indexes, rbrack_t) { + $def(self, '$index_asgn', function $$index_asgn(receiver, lbrack_t, indexes, rbrack_t) { var self = this; if ($truthy(self.$class().$emit_index())) { - return self.$n("indexasgn", [receiver].concat(Opal.to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) + return self.$n("indexasgn", [receiver].concat($to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) } else { - return self.$n("send", [receiver, "[]="].concat(Opal.to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) + return self.$n("send", [receiver, "[]="].concat($to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) } - }, $Default_index_asgn$100.$$arity = 4); + }, 4); - Opal.def(self, '$binary_op', $Default_binary_op$101 = function $$binary_op(receiver, operator_t, arg) { + $def(self, '$binary_op', function $$binary_op(receiver, operator_t, arg) { var self = this, source_map = nil, operator = nil, method_call = nil; source_map = self.$send_binary_op_map(receiver, operator_t, arg); - if (self.parser.$version()['$=='](18)) { + if ($eqeq(self.parser.$version(), 18)) { operator = self.$value(operator_t); - if (operator['$==']("!=")) { + if ($eqeq(operator, "!=")) { method_call = self.$n("send", [receiver, "==", arg], source_map) - } else if (operator['$==']("!~")) { - method_call = self.$n("send", [receiver, "=~", arg], source_map)}; + } else if ($eqeq(operator, "!~")) { + method_call = self.$n("send", [receiver, "=~", arg], source_map) + }; if ($truthy(["!=", "!~"]['$include?'](operator))) { - return self.$n("not", [method_call], self.$expr_map(source_map.$expression()))};}; + return self.$n("not", [method_call], self.$expr_map(source_map.$expression())) + }; + }; return self.$n("send", [receiver, self.$value(operator_t).$to_sym(), arg], source_map); - }, $Default_binary_op$101.$$arity = 3); + }, 3); - Opal.def(self, '$match_op', $Default_match_op$102 = function $$match_op(receiver, match_t, arg) { - var $$103, self = this, source_map = nil, regexp = nil; + $def(self, '$match_op', function $$match_op(receiver, match_t, arg) { + var self = this, source_map = nil, regexp = nil; source_map = self.$send_binary_op_map(receiver, match_t, arg); if ($truthy((regexp = self.$static_regexp_node(receiver)))) { - $send(regexp.$names(), 'each', [], ($$103 = function(name){var self = $$103.$$s == null ? this : $$103.$$s; + $send(regexp.$names(), 'each', [], function $$11(name){var self = $$11.$$s == null ? this : $$11.$$s; if (self.parser == null) self.parser = nil; - if (name == null) { - name = nil; - }; - return self.parser.$static_env().$declare(name);}, $$103.$$s = self, $$103.$$arity = 1, $$103)); + if (name == null) name = nil;; + return self.parser.$static_env().$declare(name);}, {$$arity: 1, $$s: self}); return self.$n("match_with_lvasgn", [receiver, arg], source_map); } else { return self.$n("send", [receiver, "=~", arg], source_map) }; - }, $Default_match_op$102.$$arity = 3); + }, 3); - Opal.def(self, '$unary_op', $Default_unary_op$104 = function $$unary_op(op_t, receiver) { - var self = this, $case = nil, method = nil; + $def(self, '$unary_op', function $$unary_op(op_t, receiver) { + var self = this, $ret_or_1 = nil, method = nil; - $case = self.$value(op_t); - if ("+"['$===']($case) || "-"['$===']($case)) {method = $rb_plus(self.$value(op_t), "@")} - else {method = self.$value(op_t)}; + if (($eqeqeq("+", ($ret_or_1 = self.$value(op_t))) || ($eqeqeq("-", $ret_or_1)))) { + method = $rb_plus(self.$value(op_t), "@") + } else { + method = self.$value(op_t) + }; return self.$n("send", [receiver, method.$to_sym()], self.$send_unary_op_map(op_t, receiver)); - }, $Default_unary_op$104.$$arity = 2); + }, 2); - Opal.def(self, '$not_op', $Default_not_op$105 = function $$not_op(not_t, begin_t, receiver, end_t) { + $def(self, '$not_op', function $$not_op(not_t, begin_t, receiver, end_t) { var self = this, nil_node = nil; - if (begin_t == null) { - begin_t = nil; - }; + if (begin_t == null) begin_t = nil;; - if (receiver == null) { - receiver = nil; - }; + if (receiver == null) receiver = nil;; - if (end_t == null) { - end_t = nil; - }; - if (self.parser.$version()['$=='](18)) { + if (end_t == null) end_t = nil;; + if ($eqeq(self.parser.$version(), 18)) { return self.$n("not", [self.$check_condition(receiver)], self.$unary_op_map(not_t, receiver)) } else if ($truthy(receiver['$nil?']())) { @@ -21833,275 +18834,233 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n("send", [self.$check_condition(receiver), "!"], self.$send_map(nil, nil, not_t, begin_t, [receiver], end_t)) }; - }, $Default_not_op$105.$$arity = -2); + }, -2); - Opal.def(self, '$logical_op', $Default_logical_op$106 = function $$logical_op(type, lhs, op_t, rhs) { + $def(self, '$logical_op', function $$logical_op(type, lhs, op_t, rhs) { var self = this; return self.$n(type, [lhs, rhs], self.$binary_op_map(lhs, op_t, rhs)) - }, $Default_logical_op$106.$$arity = 4); + }, 4); - Opal.def(self, '$condition', $Default_condition$107 = function $$condition(cond_t, cond, then_t, if_true, else_t, if_false, end_t) { + $def(self, '$condition', function $$condition(cond_t, cond, then_t, if_true, else_t, if_false, end_t) { var self = this; return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$condition_map(cond_t, cond, then_t, if_true, else_t, if_false, end_t)) - }, $Default_condition$107.$$arity = 7); + }, 7); - Opal.def(self, '$condition_mod', $Default_condition_mod$108 = function $$condition_mod(if_true, if_false, cond_t, cond) { - var self = this, $ret_or_11 = nil; + $def(self, '$condition_mod', function $$condition_mod(if_true, if_false, cond_t, cond) { + var self = this, $ret_or_1 = nil; - return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$keyword_mod_map((function() {if ($truthy(($ret_or_11 = if_true))) { - return $ret_or_11 - } else { - return if_false - }; return nil; })(), cond_t, cond)) - }, $Default_condition_mod$108.$$arity = 4); + return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$keyword_mod_map(($truthy(($ret_or_1 = if_true)) ? ($ret_or_1) : (if_false)), cond_t, cond)) + }, 4); - Opal.def(self, '$ternary', $Default_ternary$109 = function $$ternary(cond, question_t, if_true, colon_t, if_false) { + $def(self, '$ternary', function $$ternary(cond, question_t, if_true, colon_t, if_false) { var self = this; return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$ternary_map(cond, question_t, if_true, colon_t, if_false)) - }, $Default_ternary$109.$$arity = 5); + }, 5); - Opal.def(self, '$when', $Default_when$110 = function $$when(when_t, patterns, then_t, body) { + $def(self, '$when', function $$when(when_t, patterns, then_t, body) { var self = this, children = nil; children = patterns['$<<'](body); return self.$n("when", children, self.$keyword_map(when_t, then_t, children, nil)); - }, $Default_when$110.$$arity = 4); + }, 4); - Opal.def(self, '$case', $Default_case$111 = function(case_t, expr, when_bodies, else_t, else_body, end_t) { + $def(self, '$case', function $Default_case$12(case_t, expr, when_bodies, else_t, else_body, end_t) { var self = this; - return self.$n("case", [expr].concat(Opal.to_a(when_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)) - }, $Default_case$111.$$arity = 6); + return self.$n("case", [expr].concat($to_a(when_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)) + }, 6); - Opal.def(self, '$loop', $Default_loop$112 = function $$loop(type, keyword_t, cond, do_t, body, end_t) { + $def(self, '$loop', function $$loop(type, keyword_t, cond, do_t, body, end_t) { var self = this; return self.$n(type, [self.$check_condition(cond), body], self.$keyword_map(keyword_t, do_t, nil, end_t)) - }, $Default_loop$112.$$arity = 6); + }, 6); - Opal.def(self, '$loop_mod', $Default_loop_mod$113 = function $$loop_mod(type, body, keyword_t, cond) { + $def(self, '$loop_mod', function $$loop_mod(type, body, keyword_t, cond) { var self = this; - if (body.$type()['$==']("kwbegin")) { - type = "" + (type) + "_post"}; + if ($eqeq(body.$type(), "kwbegin")) { + type = "" + (type) + "_post" + }; return self.$n(type, [self.$check_condition(cond), body], self.$keyword_mod_map(body, keyword_t, cond)); - }, $Default_loop_mod$113.$$arity = 4); + }, 4); - Opal.def(self, '$for', $Default_for$114 = function(for_t, iterator, in_t, iteratee, do_t, body, end_t) { + $def(self, '$for', function $Default_for$13(for_t, iterator, in_t, iteratee, do_t, body, end_t) { var self = this; return self.$n("for", [iterator, iteratee, body], self.$for_map(for_t, in_t, do_t, end_t)) - }, $Default_for$114.$$arity = 7); + }, 7); - Opal.def(self, '$keyword_cmd', $Default_keyword_cmd$115 = function $$keyword_cmd(type, keyword_t, lparen_t, args, rparen_t) { - var self = this, $ret_or_12 = nil, last_arg = nil, $ret_or_13 = nil; + $def(self, '$keyword_cmd', function $$keyword_cmd(type, keyword_t, lparen_t, args, rparen_t) { + var self = this, last_arg = nil; - if (lparen_t == null) { - lparen_t = nil; - }; + if (lparen_t == null) lparen_t = nil;; - if (args == null) { - args = []; - }; + if (args == null) args = [];; - if (rparen_t == null) { - rparen_t = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_12 = type['$==']("yield")))) { - return $rb_gt(args.$count(), 0) - } else { - return $ret_or_12 - }; return nil; })())) { + if (rparen_t == null) rparen_t = nil;; + if (($eqeq(type, "yield") && ($truthy($rb_gt(args.$count(), 0))))) { last_arg = args.$last(); - if (last_arg.$type()['$==']("block_pass")) { - self.$diagnostic("error", "block_given_to_yield", nil, self.$loc(keyword_t), [last_arg.$loc().$expression()])};}; - if ($truthy((function() {if ($truthy(($ret_or_13 = ["yield", "super"]['$include?'](type)))) { - return self.$class().$emit_kwargs() - } else { - return $ret_or_13 - }; return nil; })())) { - self.$rewrite_hash_args_to_kwargs(args)}; + if ($eqeq(last_arg.$type(), "block_pass")) { + self.$diagnostic("error", "block_given_to_yield", nil, self.$loc(keyword_t), [last_arg.$loc().$expression()]) + }; + }; + if (($truthy(["yield", "super"]['$include?'](type)) && ($truthy(self.$class().$emit_kwargs())))) { + self.$rewrite_hash_args_to_kwargs(args) + }; return self.$n(type, args, self.$keyword_map(keyword_t, lparen_t, args, rparen_t)); - }, $Default_keyword_cmd$115.$$arity = -3); + }, -3); - Opal.def(self, '$preexe', $Default_preexe$116 = function $$preexe(preexe_t, lbrace_t, compstmt, rbrace_t) { + $def(self, '$preexe', function $$preexe(preexe_t, lbrace_t, compstmt, rbrace_t) { var self = this; return self.$n("preexe", [compstmt], self.$keyword_map(preexe_t, lbrace_t, [], rbrace_t)) - }, $Default_preexe$116.$$arity = 4); + }, 4); - Opal.def(self, '$postexe', $Default_postexe$117 = function $$postexe(postexe_t, lbrace_t, compstmt, rbrace_t) { + $def(self, '$postexe', function $$postexe(postexe_t, lbrace_t, compstmt, rbrace_t) { var self = this; return self.$n("postexe", [compstmt], self.$keyword_map(postexe_t, lbrace_t, [], rbrace_t)) - }, $Default_postexe$117.$$arity = 4); + }, 4); - Opal.def(self, '$rescue_body', $Default_rescue_body$118 = function $$rescue_body(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt) { + $def(self, '$rescue_body', function $$rescue_body(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt) { var self = this; return self.$n("resbody", [exc_list, exc_var, compound_stmt], self.$rescue_body_map(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt)) - }, $Default_rescue_body$118.$$arity = 6); + }, 6); - Opal.def(self, '$begin_body', $Default_begin_body$119 = function $$begin_body(compound_stmt, rescue_bodies, else_t, else_, ensure_t, ensure_) { + $def(self, '$begin_body', function $$begin_body(compound_stmt, rescue_bodies, else_t, else_, ensure_t, ensure_) { var self = this, statements = nil; - if (rescue_bodies == null) { - rescue_bodies = []; - }; + if (rescue_bodies == null) rescue_bodies = [];; - if (else_t == null) { - else_t = nil; - }; + if (else_t == null) else_t = nil;; - if (else_ == null) { - else_ = nil; - }; + if (else_ == null) else_ = nil;; - if (ensure_t == null) { - ensure_t = nil; - }; + if (ensure_t == null) ensure_t = nil;; - if (ensure_ == null) { - ensure_ = nil; - }; + if (ensure_ == null) ensure_ = nil;; if ($truthy(rescue_bodies['$any?']())) { if ($truthy(else_t)) { - compound_stmt = self.$n("rescue", [compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies, [else_]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, else_t, else_)) + compound_stmt = self.$n("rescue", [compound_stmt].concat($to_a($rb_plus(rescue_bodies, [else_]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, else_t, else_)) } else { - compound_stmt = self.$n("rescue", [compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies, [nil]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil)) + compound_stmt = self.$n("rescue", [compound_stmt].concat($to_a($rb_plus(rescue_bodies, [nil]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil)) } } else if ($truthy(else_t)) { statements = []; - if ($truthy(compound_stmt['$nil?']()['$!']())) { - if (compound_stmt.$type()['$==']("begin")) { + if ($not(compound_stmt['$nil?']())) { + if ($eqeq(compound_stmt.$type(), "begin")) { statements = $rb_plus(statements, compound_stmt.$children()) } else { statements.$push(compound_stmt) - }}; + } + }; statements.$push(self.$n("begin", [else_], self.$collection_map(else_t, [else_], nil))); - compound_stmt = self.$n("begin", statements, self.$collection_map(nil, statements, nil));}; + compound_stmt = self.$n("begin", statements, self.$collection_map(nil, statements, nil)); + }; if ($truthy(ensure_t)) { - compound_stmt = self.$n("ensure", [compound_stmt, ensure_], self.$eh_keyword_map(compound_stmt, ensure_t, [ensure_], nil, nil))}; + compound_stmt = self.$n("ensure", [compound_stmt, ensure_], self.$eh_keyword_map(compound_stmt, ensure_t, [ensure_], nil, nil)) + }; return compound_stmt; - }, $Default_begin_body$119.$$arity = -2); + }, -2); - Opal.def(self, '$compstmt', $Default_compstmt$120 = function $$compstmt(statements) { + $def(self, '$compstmt', function $$compstmt(statements) { var self = this; - return (function() { - if ($truthy(statements['$none?']())) {return nil} - else if ($truthy(statements['$one?']())) {return statements.$first()} - else {return self.$n("begin", statements, self.$collection_map(nil, statements, nil))}})() - }, $Default_compstmt$120.$$arity = 1); + if ($truthy(statements['$none?']())) { + return nil + } else if ($truthy(statements['$one?']())) { + return statements.$first() + } else { + return self.$n("begin", statements, self.$collection_map(nil, statements, nil)) + } + }, 1); - Opal.def(self, '$begin', $Default_begin$121 = function $$begin(begin_t, body, end_t) { - var self = this, $ret_or_14 = nil, $ret_or_15 = nil, $ret_or_16 = nil; + $def(self, '$begin', function $$begin(begin_t, body, end_t) { + var self = this; if ($truthy(body['$nil?']())) { return self.$n0("begin", self.$collection_map(begin_t, nil, end_t)) - } else if ($truthy((function() {if ($truthy(($ret_or_14 = body.$type()['$==']("mlhs")))) { - return $ret_or_14 - } else { - - if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = body.$type()['$==']("begin")))) { - return body.$loc().$begin()['$nil?']() - } else { - return $ret_or_16 - }; return nil; })()))) { - return body.$loc().$end()['$nil?']() - } else { - return $ret_or_15 - }; - }; return nil; })())) { + } else if (($eqeq(body.$type(), "mlhs") || ((($eqeq(body.$type(), "begin") && ($truthy(body.$loc().$begin()['$nil?']()))) && ($truthy(body.$loc().$end()['$nil?']())))))) { return self.$n(body.$type(), body.$children(), self.$collection_map(begin_t, body.$children(), end_t)) } else { return self.$n("begin", [body], self.$collection_map(begin_t, [body], end_t)) } - }, $Default_begin$121.$$arity = 3); + }, 3); - Opal.def(self, '$begin_keyword', $Default_begin_keyword$122 = function $$begin_keyword(begin_t, body, end_t) { - var self = this, $ret_or_17 = nil, $ret_or_18 = nil; + $def(self, '$begin_keyword', function $$begin_keyword(begin_t, body, end_t) { + var self = this; if ($truthy(body['$nil?']())) { return self.$n0("kwbegin", self.$collection_map(begin_t, nil, end_t)) - } else if ($truthy((function() {if ($truthy(($ret_or_17 = (function() {if ($truthy(($ret_or_18 = body.$type()['$==']("begin")))) { - return body.$loc().$begin()['$nil?']() - } else { - return $ret_or_18 - }; return nil; })()))) { - return body.$loc().$end()['$nil?']() - } else { - return $ret_or_17 - }; return nil; })())) { + } else if ((($eqeq(body.$type(), "begin") && ($truthy(body.$loc().$begin()['$nil?']()))) && ($truthy(body.$loc().$end()['$nil?']())))) { return self.$n("kwbegin", body.$children(), self.$collection_map(begin_t, body.$children(), end_t)) } else { return self.$n("kwbegin", [body], self.$collection_map(begin_t, [body], end_t)) } - }, $Default_begin_keyword$122.$$arity = 3); + }, 3); - Opal.def(self, '$case_match', $Default_case_match$123 = function $$case_match(case_t, expr, in_bodies, else_t, else_body, end_t) { - var self = this, $ret_or_19 = nil; + $def(self, '$case_match', function $$case_match(case_t, expr, in_bodies, else_t, else_body, end_t) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_19 = else_t))) { - return else_body['$!']() - } else { - return $ret_or_19 - }; return nil; })())) { - else_body = self.$n("empty_else", nil, self.$token_map(else_t))}; - return self.$n("case_match", [expr].concat(Opal.to_a(in_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)); - }, $Default_case_match$123.$$arity = 6); + if (($truthy(else_t) && ($not(else_body)))) { + else_body = self.$n("empty_else", nil, self.$token_map(else_t)) + }; + return self.$n("case_match", [expr].concat($to_a(in_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)); + }, 6); - Opal.def(self, '$in_match', $Default_in_match$124 = function $$in_match(lhs, in_t, rhs) { + $def(self, '$in_match', function $$in_match(lhs, in_t, rhs) { var self = this; return self.$n("in_match", [lhs, rhs], self.$binary_op_map(lhs, in_t, rhs)) - }, $Default_in_match$124.$$arity = 3); + }, 3); - Opal.def(self, '$match_pattern', $Default_match_pattern$125 = function $$match_pattern(lhs, match_t, rhs) { + $def(self, '$match_pattern', function $$match_pattern(lhs, match_t, rhs) { var self = this; return self.$n("match_pattern", [lhs, rhs], self.$binary_op_map(lhs, match_t, rhs)) - }, $Default_match_pattern$125.$$arity = 3); + }, 3); - Opal.def(self, '$match_pattern_p', $Default_match_pattern_p$126 = function $$match_pattern_p(lhs, match_t, rhs) { + $def(self, '$match_pattern_p', function $$match_pattern_p(lhs, match_t, rhs) { var self = this; return self.$n("match_pattern_p", [lhs, rhs], self.$binary_op_map(lhs, match_t, rhs)) - }, $Default_match_pattern_p$126.$$arity = 3); + }, 3); - Opal.def(self, '$in_pattern', $Default_in_pattern$127 = function $$in_pattern(in_t, pattern, guard, then_t, body) { + $def(self, '$in_pattern', function $$in_pattern(in_t, pattern, guard, then_t, body) { var self = this, children = nil; children = [pattern, guard, body]; return self.$n("in_pattern", children, self.$keyword_map(in_t, then_t, children.$compact(), nil)); - }, $Default_in_pattern$127.$$arity = 5); + }, 5); - Opal.def(self, '$if_guard', $Default_if_guard$128 = function $$if_guard(if_t, if_body) { + $def(self, '$if_guard', function $$if_guard(if_t, if_body) { var self = this; return self.$n("if_guard", [if_body], self.$guard_map(if_t, if_body)) - }, $Default_if_guard$128.$$arity = 2); + }, 2); - Opal.def(self, '$unless_guard', $Default_unless_guard$129 = function $$unless_guard(unless_t, unless_body) { + $def(self, '$unless_guard', function $$unless_guard(unless_t, unless_body) { var self = this; return self.$n("unless_guard", [unless_body], self.$guard_map(unless_t, unless_body)) - }, $Default_unless_guard$129.$$arity = 2); + }, 2); - Opal.def(self, '$match_var', $Default_match_var$130 = function $$match_var(name_t) { + $def(self, '$match_var', function $$match_var(name_t) { var self = this, name = nil, name_l = nil; @@ -22111,9 +19070,9 @@ Opal.modules["parser/builders/default"] = function(Opal) { self.$check_duplicate_pattern_variable(name, name_l); self.parser.$static_env().$declare(name); return self.$n("match_var", [name], self.$variable_map(name_t)); - }, $Default_match_var$130.$$arity = 1); + }, 1); - Opal.def(self, '$match_hash_var', $Default_match_hash_var$131 = function $$match_hash_var(name_t) { + $def(self, '$match_hash_var', function $$match_hash_var(name_t) { var self = this, name = nil, expr_l = nil, name_l = nil; @@ -22123,41 +19082,45 @@ Opal.modules["parser/builders/default"] = function(Opal) { self.$check_lvar_name(name, name_l); self.$check_duplicate_pattern_variable(name, name_l); self.parser.$static_env().$declare(name); - return self.$n("match_var", [name], $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_l, expr_l)); - }, $Default_match_hash_var$131.$$arity = 1); + return self.$n("match_var", [name], $$$($$$($$('Source'), 'Map'), 'Variable').$new(name_l, expr_l)); + }, 1); - Opal.def(self, '$match_hash_var_from_str', $Default_match_hash_var_from_str$132 = function $$match_hash_var_from_str(begin_t, strings, end_t) { - var $a, self = this, string = nil, $case = nil, name = nil, name_l = nil, begin_l = nil, end_l = nil, expr_l = nil; + $def(self, '$match_hash_var_from_str', function $$match_hash_var_from_str(begin_t, strings, end_t) { + var $a, self = this, string = nil, $ret_or_1 = nil, name = nil, name_l = nil, begin_l = nil, end_l = nil, expr_l = nil; if ($truthy($rb_gt(strings.$length(), 1))) { - self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t)))}; + self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t))) + }; string = strings['$[]'](0); - return (function() {$case = string.$type(); - if ("str"['$===']($case)) { - $a = [].concat(Opal.to_a(string)), (name = ($a[0] == null ? nil : $a[0])), $a; - name_l = string.$loc().$expression(); - self.$check_lvar_name(name, name_l); - self.$check_duplicate_pattern_variable(name, name_l); - self.parser.$static_env().$declare(name); - if ($truthy((begin_l = string.$loc().$begin()))) { - name_l = name_l.$adjust($hash2(["begin_pos"], {"begin_pos": begin_l.$length()}))}; - if ($truthy((end_l = string.$loc().$end()))) { - name_l = name_l.$adjust($hash2(["end_pos"], {"end_pos": end_l.$length()['$-@']()}))}; - expr_l = self.$loc(begin_t).$join(string.$loc().$expression()).$join(self.$loc(end_t)); - return self.$n("match_var", [name.$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_l, expr_l));} - else if ("begin"['$===']($case)) {return self.$match_hash_var_from_str(begin_t, string.$children(), end_t)} - else {return self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t)))}})(); - }, $Default_match_hash_var_from_str$132.$$arity = 3); - - Opal.def(self, '$match_rest', $Default_match_rest$133 = function $$match_rest(star_t, name_t) { + if ($eqeqeq("str", ($ret_or_1 = string.$type()))) { + + $a = [].concat($to_a(string)), (name = ($a[0] == null ? nil : $a[0])), $a; + name_l = string.$loc().$expression(); + self.$check_lvar_name(name, name_l); + self.$check_duplicate_pattern_variable(name, name_l); + self.parser.$static_env().$declare(name); + if ($truthy((begin_l = string.$loc().$begin()))) { + name_l = name_l.$adjust($hash2(["begin_pos"], {"begin_pos": begin_l.$length()})) + }; + if ($truthy((end_l = string.$loc().$end()))) { + name_l = name_l.$adjust($hash2(["end_pos"], {"end_pos": end_l.$length()['$-@']()})) + }; + expr_l = self.$loc(begin_t).$join(string.$loc().$expression()).$join(self.$loc(end_t)); + return self.$n("match_var", [name.$to_sym()], $$$($$$($$('Source'), 'Map'), 'Variable').$new(name_l, expr_l)); + } else if ($eqeqeq("begin", $ret_or_1)) { + return self.$match_hash_var_from_str(begin_t, string.$children(), end_t) + } else { + return self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t))) + }; + }, 3); + + $def(self, '$match_rest', function $$match_rest(star_t, name_t) { var self = this, name = nil; - if (name_t == null) { - name_t = nil; - }; + if (name_t == null) name_t = nil;; if ($truthy(name_t['$nil?']())) { return self.$n0("match_rest", self.$unary_op_map(star_t)) } else { @@ -22165,31 +19128,29 @@ Opal.modules["parser/builders/default"] = function(Opal) { name = self.$match_var(name_t); return self.$n("match_rest", [name], self.$unary_op_map(star_t, name)); }; - }, $Default_match_rest$133.$$arity = -2); + }, -2); - Opal.def(self, '$hash_pattern', $Default_hash_pattern$134 = function $$hash_pattern(lbrace_t, kwargs, rbrace_t) { + $def(self, '$hash_pattern', function $$hash_pattern(lbrace_t, kwargs, rbrace_t) { var self = this, args = nil; args = self.$check_duplicate_args(kwargs); return self.$n("hash_pattern", args, self.$collection_map(lbrace_t, args, rbrace_t)); - }, $Default_hash_pattern$134.$$arity = 3); + }, 3); - Opal.def(self, '$array_pattern', $Default_array_pattern$135 = function $$array_pattern(lbrack_t, elements, rbrack_t) { - var $$136, self = this, trailing_comma = nil, node_elements = nil, node_type = nil; + $def(self, '$array_pattern', function $$array_pattern(lbrack_t, elements, rbrack_t) { + var self = this, trailing_comma = nil, node_elements = nil, node_type = nil; if ($truthy(elements['$nil?']())) { - return self.$n("array_pattern", nil, self.$collection_map(lbrack_t, [], rbrack_t))}; + return self.$n("array_pattern", nil, self.$collection_map(lbrack_t, [], rbrack_t)) + }; trailing_comma = false; - node_elements = $send(elements, 'map', [], ($$136 = function(element){var self = $$136.$$s == null ? this : $$136.$$s; - + node_elements = $send(elements, 'map', [], function $$14(element){ - if (element == null) { - element = nil; - }; - if (element.$type()['$==']("match_with_trailing_comma")) { + if (element == null) element = nil;; + if ($eqeq(element.$type(), "match_with_trailing_comma")) { trailing_comma = true; return element.$children().$first(); @@ -22197,71 +19158,67 @@ Opal.modules["parser/builders/default"] = function(Opal) { trailing_comma = false; return element; - };}, $$136.$$s = self, $$136.$$arity = 1, $$136)); - node_type = (function() {if ($truthy(trailing_comma)) { - return "array_pattern_with_tail" - } else { - return "array_pattern" - }; return nil; })(); + };}, 1); + node_type = ($truthy(trailing_comma) ? ("array_pattern_with_tail") : ("array_pattern")); return self.$n(node_type, node_elements, self.$collection_map(lbrack_t, elements, rbrack_t)); - }, $Default_array_pattern$135.$$arity = 3); + }, 3); - Opal.def(self, '$find_pattern', $Default_find_pattern$137 = function $$find_pattern(lbrack_t, elements, rbrack_t) { + $def(self, '$find_pattern', function $$find_pattern(lbrack_t, elements, rbrack_t) { var self = this; return self.$n("find_pattern", elements, self.$collection_map(lbrack_t, elements, rbrack_t)) - }, $Default_find_pattern$137.$$arity = 3); + }, 3); - Opal.def(self, '$match_with_trailing_comma', $Default_match_with_trailing_comma$138 = function $$match_with_trailing_comma(match, comma_t) { + $def(self, '$match_with_trailing_comma', function $$match_with_trailing_comma(match, comma_t) { var self = this; return self.$n("match_with_trailing_comma", [match], self.$expr_map(match.$loc().$expression().$join(self.$loc(comma_t)))) - }, $Default_match_with_trailing_comma$138.$$arity = 2); + }, 2); - Opal.def(self, '$const_pattern', $Default_const_pattern$139 = function $$const_pattern(const$, ldelim_t, pattern, rdelim_t) { + $def(self, '$const_pattern', function $$const_pattern(const$, ldelim_t, pattern, rdelim_t) { var self = this; - return self.$n("const_pattern", [const$, pattern], $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(ldelim_t), self.$loc(rdelim_t), const$.$loc().$expression().$join(self.$loc(rdelim_t)))) - }, $Default_const_pattern$139.$$arity = 4); + return self.$n("const_pattern", [const$, pattern], $$$($$$($$('Source'), 'Map'), 'Collection').$new(self.$loc(ldelim_t), self.$loc(rdelim_t), const$.$loc().$expression().$join(self.$loc(rdelim_t)))) + }, 4); - Opal.def(self, '$pin', $Default_pin$140 = function $$pin(pin_t, var$) { + $def(self, '$pin', function $$pin(pin_t, var$) { var self = this; return self.$n("pin", [var$], self.$send_unary_op_map(pin_t, var$)) - }, $Default_pin$140.$$arity = 2); + }, 2); - Opal.def(self, '$match_alt', $Default_match_alt$141 = function $$match_alt(left, pipe_t, right) { + $def(self, '$match_alt', function $$match_alt(left, pipe_t, right) { var self = this, source_map = nil; source_map = self.$binary_op_map(left, pipe_t, right); return self.$n("match_alt", [left, right], source_map); - }, $Default_match_alt$141.$$arity = 3); + }, 3); - Opal.def(self, '$match_as', $Default_match_as$142 = function $$match_as(value, assoc_t, as) { + $def(self, '$match_as', function $$match_as(value, assoc_t, as) { var self = this, source_map = nil; source_map = self.$binary_op_map(value, assoc_t, as); return self.$n("match_as", [value, as], source_map); - }, $Default_match_as$142.$$arity = 3); + }, 3); - Opal.def(self, '$match_nil_pattern', $Default_match_nil_pattern$143 = function $$match_nil_pattern(dstar_t, nil_t) { + $def(self, '$match_nil_pattern', function $$match_nil_pattern(dstar_t, nil_t) { var self = this; return self.$n0("match_nil_pattern", self.$arg_prefix_map(dstar_t, nil_t)) - }, $Default_match_nil_pattern$143.$$arity = 2); + }, 2); - Opal.def(self, '$match_pair', $Default_match_pair$144 = function $$match_pair(label_type, label, value) { + $def(self, '$match_pair', function $$match_pair(label_type, label, value) { var $a, $b, self = this, begin_t = nil, parts = nil, end_t = nil, label_loc = nil, var_name = nil; - if (label_type['$==']("label")) { + if ($eqeq(label_type, "label")) { self.$check_duplicate_pattern_key(label['$[]'](0), label['$[]'](1)); return self.$pair_keyword(label, value); } else { - $b = label, $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (parts = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + $b = label, $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (parts = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; label_loc = self.$loc(begin_t).$join(self.$loc(end_t)); if ($truthy((var_name = self.$static_string(parts)))) { self.$check_duplicate_pattern_key(var_name, label_loc) @@ -22270,188 +19227,172 @@ Opal.modules["parser/builders/default"] = function(Opal) { }; return self.$pair_quoted(begin_t, parts, end_t, value); } - }, $Default_match_pair$144.$$arity = 3); + }, 3); - Opal.def(self, '$match_label', $Default_match_label$145 = function $$match_label(label_type, label) { + $def(self, '$match_label', function $$match_label(label_type, label) { var $a, $b, self = this, begin_t = nil, strings = nil, end_t = nil; - if (label_type['$==']("label")) { + if ($eqeq(label_type, "label")) { return self.$match_hash_var(label) } else { - $b = label, $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (strings = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + $b = label, $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (strings = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; return self.$match_hash_var_from_str(begin_t, strings, end_t); } - }, $Default_match_label$145.$$arity = 2); + }, 2); self.$private(); - Opal.def(self, '$check_condition', $Default_check_condition$146 = function $$check_condition(cond) { - var $a, self = this, $case = nil, lhs = nil, rhs = nil, type = nil, $ret_or_20 = nil; + $def(self, '$check_condition', function $$check_condition(cond) { + var $a, self = this, $ret_or_1 = nil, lhs = nil, rhs = nil, type = nil, $ret_or_2 = nil; - return (function() {$case = cond.$type(); - if ("masgn"['$===']($case)) {if ($truthy($rb_le(self.parser.$version(), 23))) { - return self.$diagnostic("error", "masgn_as_condition", nil, cond.$loc().$expression()) - } else { - return cond - }} - else if ("begin"['$===']($case)) {if (cond.$children().$count()['$=='](1)) { - return cond.$updated(nil, [self.$check_condition(cond.$children().$last())]) - } else { - return cond - }} - else if ("and"['$===']($case) || "or"['$===']($case) || "irange"['$===']($case) || "erange"['$===']($case)) { - $a = [].concat(Opal.to_a(cond)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - type = (function() {$case = cond.$type(); - if ("irange"['$===']($case)) {return "iflipflop"} - else if ("erange"['$===']($case)) {return "eflipflop"} - else { return nil }})(); - if ($truthy((function() {if ($truthy(($ret_or_20 = ["and", "or"]['$include?'](cond.$type())))) { - return self.parser.$version()['$=='](18) + if ($eqeqeq("masgn", ($ret_or_1 = cond.$type()))) { + if ($truthy($rb_le(self.parser.$version(), 23))) { + return self.$diagnostic("error", "masgn_as_condition", nil, cond.$loc().$expression()) + } else { + return cond + } + } else if ($eqeqeq("begin", $ret_or_1)) { + if ($eqeq(cond.$children().$count(), 1)) { + return cond.$updated(nil, [self.$check_condition(cond.$children().$last())]) + } else { + return cond + } + } else if (($eqeqeq("and", $ret_or_1) || (($eqeqeq("or", $ret_or_1) || (($eqeqeq("irange", $ret_or_1) || ($eqeqeq("erange", $ret_or_1)))))))) { + + $a = [].concat($to_a(cond)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + type = ($eqeqeq("irange", ($ret_or_2 = cond.$type())) ? ("iflipflop") : ($eqeqeq("erange", $ret_or_2) ? ("eflipflop") : (nil))); + if (($truthy(["and", "or"]['$include?'](cond.$type())) && ($eqeq(self.parser.$version(), 18)))) { + return cond + } else { + return cond.$updated(type, [self.$check_condition(lhs), self.$check_condition(rhs)]) + }; + } else if ($eqeqeq("regexp", $ret_or_1)) { + return self.$n("match_current_line", [cond], self.$expr_map(cond.$loc().$expression())) } else { - return $ret_or_20 - }; return nil; })())) { return cond - } else { - return cond.$updated(type, [self.$check_condition(lhs), self.$check_condition(rhs)]) - };} - else if ("regexp"['$===']($case)) {return self.$n("match_current_line", [cond], self.$expr_map(cond.$loc().$expression()))} - else {return cond}})() - }, $Default_check_condition$146.$$arity = 1); + } + }, 1); - Opal.def(self, '$check_duplicate_args', $Default_check_duplicate_args$147 = function $$check_duplicate_args(args, map) { - var $$148, self = this; + $def(self, '$check_duplicate_args', function $$check_duplicate_args(args, map) { + var self = this; - if (map == null) { - map = $hash2([], {}); - }; - return $send(args, 'each', [], ($$148 = function(this_arg){var self = $$148.$$s == null ? this : $$148.$$s, $case = nil; + if (map == null) map = $hash2([], {});; + return $send(args, 'each', [], function $$15(this_arg){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_1 = nil; - if (this_arg == null) { - this_arg = nil; - }; - return (function() {$case = this_arg.$type(); - if ("arg"['$===']($case) || "optarg"['$===']($case) || "restarg"['$===']($case) || "blockarg"['$===']($case) || "kwarg"['$===']($case) || "kwoptarg"['$===']($case) || "kwrestarg"['$===']($case) || "shadowarg"['$===']($case)) {return self.$check_duplicate_arg(this_arg, map)} - else if ("procarg0"['$===']($case)) {if ($truthy(this_arg.$children()['$[]'](0)['$is_a?']($$($nesting, 'Symbol')))) { + if (this_arg == null) this_arg = nil;; + if (($eqeqeq("arg", ($ret_or_1 = this_arg.$type())) || (($eqeqeq("optarg", $ret_or_1) || (($eqeqeq("restarg", $ret_or_1) || (($eqeqeq("blockarg", $ret_or_1) || (($eqeqeq("kwarg", $ret_or_1) || (($eqeqeq("kwoptarg", $ret_or_1) || (($eqeqeq("kwrestarg", $ret_or_1) || ($eqeqeq("shadowarg", $ret_or_1)))))))))))))))) { return self.$check_duplicate_arg(this_arg, map) - } else { + } else if ($eqeqeq("procarg0", $ret_or_1)) { + if ($truthy(this_arg.$children()['$[]'](0)['$is_a?']($$('Symbol')))) { + return self.$check_duplicate_arg(this_arg, map) + } else { + return self.$check_duplicate_args(this_arg.$children(), map) + } + } else if ($eqeqeq("mlhs", $ret_or_1)) { return self.$check_duplicate_args(this_arg.$children(), map) - }} - else if ("mlhs"['$===']($case)) {return self.$check_duplicate_args(this_arg.$children(), map)} - else { return nil }})();}, $$148.$$s = self, $$148.$$arity = 1, $$148)); - }, $Default_check_duplicate_args$147.$$arity = -2); + } else { + return nil + };}, {$$arity: 1, $$s: self}); + }, -2); - Opal.def(self, '$check_duplicate_arg', $Default_check_duplicate_arg$149 = function $$check_duplicate_arg(this_arg, map) { + $def(self, '$check_duplicate_arg', function $$check_duplicate_arg(this_arg, map) { var $a, self = this, this_name = nil, that_arg = nil, that_name = nil, $writer = nil; - if (map == null) { - map = $hash2([], {}); - }; - $a = [].concat(Opal.to_a(this_arg)), (this_name = ($a[0] == null ? nil : $a[0])), $a; + if (map == null) map = $hash2([], {});; + $a = [].concat($to_a(this_arg)), (this_name = ($a[0] == null ? nil : $a[0])), $a; that_arg = map['$[]'](this_name); - $a = [].concat(Opal.to_a(that_arg)), (that_name = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(that_arg)), (that_name = ($a[0] == null ? nil : $a[0])), $a; if ($truthy(that_arg['$nil?']())) { $writer = [this_name, this_arg]; - $send(map, '[]=', Opal.to_a($writer)); + $send(map, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else if ($truthy(self['$arg_name_collides?'](this_name, that_name))) { return self.$diagnostic("error", "duplicate_argument", nil, this_arg.$loc().$name(), [that_arg.$loc().$name()]) } else { return nil }; - }, $Default_check_duplicate_arg$149.$$arity = -2); + }, -2); - Opal.def(self, '$validate_no_forward_arg_after_restarg', $Default_validate_no_forward_arg_after_restarg$150 = function $$validate_no_forward_arg_after_restarg(args) { - var $$151, self = this, restarg = nil, forward_arg = nil, $ret_or_21 = nil; + $def(self, '$validate_no_forward_arg_after_restarg', function $$validate_no_forward_arg_after_restarg(args) { + var self = this, restarg = nil, forward_arg = nil; restarg = nil; forward_arg = nil; - $send(args, 'each', [], ($$151 = function(arg){var self = $$151.$$s == null ? this : $$151.$$s, $case = nil; + $send(args, 'each', [], function $$16(arg){var $ret_or_1 = nil; - if (arg == null) { - arg = nil; - }; - return (function() {$case = arg.$type(); - if ("restarg"['$===']($case)) {return (restarg = arg)} - else if ("forward_arg"['$===']($case)) {return (forward_arg = arg)} - else { return nil }})();}, $$151.$$s = self, $$151.$$arity = 1, $$151)); - if ($truthy((function() {if ($truthy(($ret_or_21 = forward_arg['$nil?']()['$!']()))) { - return restarg['$nil?']()['$!']() - } else { - return $ret_or_21 - }; return nil; })())) { + if (arg == null) arg = nil;; + if ($eqeqeq("restarg", ($ret_or_1 = arg.$type()))) { + return (restarg = arg) + } else if ($eqeqeq("forward_arg", $ret_or_1)) { + return (forward_arg = arg) + } else { + return nil + };}, 1); + if (($not(forward_arg['$nil?']()) && ($not(restarg['$nil?']())))) { return self.$diagnostic("error", "forward_arg_after_restarg", nil, forward_arg.$loc().$expression(), [restarg.$loc().$expression()]) } else { return nil }; - }, $Default_validate_no_forward_arg_after_restarg$150.$$arity = 1); + }, 1); - Opal.def(self, '$check_assignment_to_numparam', $Default_check_assignment_to_numparam$152 = function $$check_assignment_to_numparam(name, loc) { - var self = this, assigning_to_numparam = nil, $ret_or_22 = nil, $ret_or_23 = nil; + $def(self, '$check_assignment_to_numparam', function $$check_assignment_to_numparam(name, loc) { + var self = this, assigning_to_numparam = nil, $ret_or_1 = nil, $ret_or_2 = nil; if ($truthy($rb_lt(self.parser.$version(), 27))) { - return nil}; - assigning_to_numparam = (function() {if ($truthy(($ret_or_22 = (function() {if ($truthy(($ret_or_23 = self.parser.$context()['$in_dynamic_block?']()))) { - return name['$=~'](/^_([1-9])$/) - } else { - return $ret_or_23 - }; return nil; })()))) { - return self.parser.$max_numparam_stack()['$has_numparams?']() - } else { - return $ret_or_22 - }; return nil; })(); + return nil + }; + assigning_to_numparam = ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.parser.$context()['$in_dynamic_block?']())) ? (name['$=~'](/^_([1-9])$/)) : ($ret_or_2)))) ? (self.parser.$max_numparam_stack()['$has_numparams?']()) : ($ret_or_1)); if ($truthy(assigning_to_numparam)) { return self.$diagnostic("error", "cant_assign_to_numparam", $hash2(["name"], {"name": name}), loc) } else { return nil }; - }, $Default_check_assignment_to_numparam$152.$$arity = 2); + }, 2); - Opal.def(self, '$check_reserved_for_numparam', $Default_check_reserved_for_numparam$153 = function $$check_reserved_for_numparam(name, loc) { + $def(self, '$check_reserved_for_numparam', function $$check_reserved_for_numparam(name, loc) { var self = this; if ($truthy($rb_lt(self.parser.$version(), 30))) { - return nil}; + return nil + }; if ($truthy(name['$=~'](/^_([1-9])$/))) { return self.$diagnostic("error", "reserved_for_numparam", $hash2(["name"], {"name": name}), loc) } else { return nil }; - }, $Default_check_reserved_for_numparam$153.$$arity = 2); + }, 2); - Opal.def(self, '$arg_name_collides?', $Default_arg_name_collides$ques$154 = function(this_name, that_name) { - var self = this, $case = nil, $ret_or_24 = nil, $ret_or_25 = nil, $ret_or_26 = nil; + $def(self, '$arg_name_collides?', function $Default_arg_name_collides$ques$17(this_name, that_name) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - return (function() {$case = self.parser.$version(); - if ((18)['$===']($case)) {return this_name['$=='](that_name)} - else if ((19)['$===']($case)) {if ($truthy(($ret_or_24 = this_name['$!=']("_")))) { + if ($eqeqeq(18, ($ret_or_1 = self.parser.$version()))) { return this_name['$=='](that_name) - } else { - return $ret_or_24 - }} - else {if ($truthy(($ret_or_25 = (function() {if ($truthy(($ret_or_26 = this_name))) { - return this_name['$[]'](0)['$!=']("_") - } else { - return $ret_or_26 - }; return nil; })()))) { + } else if ($eqeqeq(19, $ret_or_1)) { + if ($truthy(($ret_or_2 = this_name['$!=']("_")))) { + return this_name['$=='](that_name) + } else { + return $ret_or_2 + } + } else if ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = this_name)) ? (this_name['$[]'](0)['$!=']("_")) : ($ret_or_3))))) { return this_name['$=='](that_name) } else { - return $ret_or_25 - }}})() - }, $Default_arg_name_collides$ques$154.$$arity = 2); + return $ret_or_2 + } + }, 2); - Opal.def(self, '$check_lvar_name', $Default_check_lvar_name$155 = function $$check_lvar_name(name, loc) { + $def(self, '$check_lvar_name', function $$check_lvar_name(name, loc) { var self = this; if ($truthy(name['$=~'](/^[[[:lower:]]_][[[:alnum:]]_]*$/))) { @@ -22459,151 +19400,144 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$diagnostic("error", "lvar_name", $hash2(["name"], {"name": name}), loc) } - }, $Default_check_lvar_name$155.$$arity = 2); + }, 2); - Opal.def(self, '$check_duplicate_pattern_variable', $Default_check_duplicate_pattern_variable$156 = function $$check_duplicate_pattern_variable(name, loc) { + $def(self, '$check_duplicate_pattern_variable', function $$check_duplicate_pattern_variable(name, loc) { var self = this; if ($truthy(name.$to_s()['$start_with?']("_"))) { - return nil}; + return nil + }; if ($truthy(self.parser.$pattern_variables()['$declared?'](name))) { - self.$diagnostic("error", "duplicate_variable_name", $hash2(["name"], {"name": name.$to_s()}), loc)}; + self.$diagnostic("error", "duplicate_variable_name", $hash2(["name"], {"name": name.$to_s()}), loc) + }; return self.parser.$pattern_variables().$declare(name); - }, $Default_check_duplicate_pattern_variable$156.$$arity = 2); + }, 2); - Opal.def(self, '$check_duplicate_pattern_key', $Default_check_duplicate_pattern_key$157 = function $$check_duplicate_pattern_key(name, loc) { + $def(self, '$check_duplicate_pattern_key', function $$check_duplicate_pattern_key(name, loc) { var self = this; if ($truthy(self.parser.$pattern_hash_keys()['$declared?'](name))) { - self.$diagnostic("error", "duplicate_pattern_key", $hash2(["name"], {"name": name.$to_s()}), loc)}; + self.$diagnostic("error", "duplicate_pattern_key", $hash2(["name"], {"name": name.$to_s()}), loc) + }; return self.parser.$pattern_hash_keys().$declare(name); - }, $Default_check_duplicate_pattern_key$157.$$arity = 2); + }, 2); - Opal.def(self, '$n', $Default_n$158 = function $$n(type, children, source_map) { - var self = this; - - return $$$($$($nesting, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": source_map})) - }, $Default_n$158.$$arity = 3); + $def(self, '$n', function $$n(type, children, source_map) { + + return $$$($$('AST'), 'Node').$new(type, children, $hash2(["location"], {"location": source_map})) + }, 3); - Opal.def(self, '$n0', $Default_n0$159 = function $$n0(type, source_map) { + $def(self, '$n0', function $$n0(type, source_map) { var self = this; return self.$n(type, [], source_map) - }, $Default_n0$159.$$arity = 2); + }, 2); - Opal.def(self, '$join_exprs', $Default_join_exprs$160 = function $$join_exprs(left_expr, right_expr) { - var self = this; - + $def(self, '$join_exprs', function $$join_exprs(left_expr, right_expr) { + return left_expr.$loc().$expression().$join(right_expr.$loc().$expression()) - }, $Default_join_exprs$160.$$arity = 2); + }, 2); - Opal.def(self, '$token_map', $Default_token_map$161 = function $$token_map(token) { + $def(self, '$token_map', function $$token_map(token) { var self = this; - return $$$($$($nesting, 'Source'), 'Map').$new(self.$loc(token)) - }, $Default_token_map$161.$$arity = 1); + return $$$($$('Source'), 'Map').$new(self.$loc(token)) + }, 1); - Opal.def(self, '$delimited_string_map', $Default_delimited_string_map$162 = function $$delimited_string_map(string_t) { + $def(self, '$delimited_string_map', function $$delimited_string_map(string_t) { var self = this, str_range = nil, begin_l = nil, end_l = nil; str_range = self.$loc(string_t); begin_l = str_range.$with($hash2(["end_pos"], {"end_pos": $rb_plus(str_range.$begin_pos(), 1)})); end_l = str_range.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(str_range.$end_pos(), 1)})); - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(begin_l, end_l, self.$loc(string_t)); - }, $Default_delimited_string_map$162.$$arity = 1); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(begin_l, end_l, self.$loc(string_t)); + }, 1); - Opal.def(self, '$prefix_string_map', $Default_prefix_string_map$163 = function $$prefix_string_map(symbol) { + $def(self, '$prefix_string_map', function $$prefix_string_map(symbol) { var self = this, str_range = nil, begin_l = nil; str_range = self.$loc(symbol); begin_l = str_range.$with($hash2(["end_pos"], {"end_pos": $rb_plus(str_range.$begin_pos(), 1)})); - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(begin_l, nil, self.$loc(symbol)); - }, $Default_prefix_string_map$163.$$arity = 1); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(begin_l, nil, self.$loc(symbol)); + }, 1); - Opal.def(self, '$unquoted_map', $Default_unquoted_map$164 = function $$unquoted_map(token) { + $def(self, '$unquoted_map', function $$unquoted_map(token) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, self.$loc(token)) - }, $Default_unquoted_map$164.$$arity = 1); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(nil, nil, self.$loc(token)) + }, 1); - Opal.def(self, '$pair_keyword_map', $Default_pair_keyword_map$165 = function $$pair_keyword_map(key_t, value_e) { + $def(self, '$pair_keyword_map', function $$pair_keyword_map(key_t, value_e) { var self = this, key_range = nil, key_l = nil, colon_l = nil; key_range = self.$loc(key_t); key_l = key_range.$adjust($hash2(["end_pos"], {"end_pos": -1})); colon_l = key_range.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(key_range.$end_pos(), 1)})); - return [$$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, key_l), $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(colon_l, key_range.$join(value_e.$loc().$expression()))]; - }, $Default_pair_keyword_map$165.$$arity = 2); + return [$$$($$$($$('Source'), 'Map'), 'Collection').$new(nil, nil, key_l), $$$($$$($$('Source'), 'Map'), 'Operator').$new(colon_l, key_range.$join(value_e.$loc().$expression()))]; + }, 2); - Opal.def(self, '$pair_quoted_map', $Default_pair_quoted_map$166 = function $$pair_quoted_map(begin_t, end_t, value_e) { + $def(self, '$pair_quoted_map', function $$pair_quoted_map(begin_t, end_t, value_e) { var self = this, end_l = nil, quote_l = nil, colon_l = nil; end_l = self.$loc(end_t); quote_l = end_l.$with($hash2(["begin_pos", "end_pos"], {"begin_pos": $rb_minus(end_l.$end_pos(), 2), "end_pos": $rb_minus(end_l.$end_pos(), 1)})); colon_l = end_l.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(end_l.$end_pos(), 1)})); - return [[self.$value(end_t), quote_l], $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(colon_l, self.$loc(begin_t).$join(value_e.$loc().$expression()))]; - }, $Default_pair_quoted_map$166.$$arity = 3); + return [[self.$value(end_t), quote_l], $$$($$$($$('Source'), 'Map'), 'Operator').$new(colon_l, self.$loc(begin_t).$join(value_e.$loc().$expression()))]; + }, 3); - Opal.def(self, '$expr_map', $Default_expr_map$167 = function $$expr_map(loc) { - var self = this; - - return $$$($$($nesting, 'Source'), 'Map').$new(loc) - }, $Default_expr_map$167.$$arity = 1); + $def(self, '$expr_map', function $$expr_map(loc) { + + return $$$($$('Source'), 'Map').$new(loc) + }, 1); - Opal.def(self, '$collection_map', $Default_collection_map$168 = function $$collection_map(begin_t, parts, end_t) { - var self = this, $ret_or_27 = nil, expr_l = nil; + $def(self, '$collection_map', function $$collection_map(begin_t, parts, end_t) { + var self = this, expr_l = nil; - if ($truthy((function() {if ($truthy(($ret_or_27 = begin_t['$nil?']()))) { - return $ret_or_27 - } else { - return end_t['$nil?']() - }; return nil; })())) { + if (($truthy(begin_t['$nil?']()) || ($truthy(end_t['$nil?']())))) { if ($truthy(parts['$any?']())) { expr_l = self.$join_exprs(parts.$first(), parts.$last()) - } else if ($truthy(begin_t['$nil?']()['$!']())) { + } else if ($not(begin_t['$nil?']())) { expr_l = self.$loc(begin_t) - } else if ($truthy(end_t['$nil?']()['$!']())) { - expr_l = self.$loc(end_t)} + } else if ($not(end_t['$nil?']())) { + expr_l = self.$loc(end_t) + } } else { expr_l = self.$loc(begin_t).$join(self.$loc(end_t)) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), expr_l); - }, $Default_collection_map$168.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), expr_l); + }, 3); - Opal.def(self, '$string_map', $Default_string_map$169 = function $$string_map(begin_t, parts, end_t) { - var self = this, $ret_or_28 = nil, expr_l = nil; + $def(self, '$string_map', function $$string_map(begin_t, parts, end_t) { + var self = this, expr_l = nil; - if ($truthy((function() {if ($truthy(($ret_or_28 = begin_t))) { - return self.$value(begin_t)['$start_with?']("<<") - } else { - return $ret_or_28 - }; return nil; })())) { + if (($truthy(begin_t) && ($truthy(self.$value(begin_t)['$start_with?']("<<"))))) { if ($truthy(parts['$any?']())) { expr_l = self.$join_exprs(parts.$first(), parts.$last()) } else { expr_l = self.$loc(end_t).$begin() }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Heredoc').$new(self.$loc(begin_t), expr_l, self.$loc(end_t)); + return $$$($$$($$('Source'), 'Map'), 'Heredoc').$new(self.$loc(begin_t), expr_l, self.$loc(end_t)); } else { return self.$collection_map(begin_t, parts, end_t) } - }, $Default_string_map$169.$$arity = 3); + }, 3); - Opal.def(self, '$regexp_map', $Default_regexp_map$170 = function $$regexp_map(begin_t, end_t, options_e) { + $def(self, '$regexp_map', function $$regexp_map(begin_t, end_t, options_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), self.$loc(begin_t).$join(options_e.$loc().$expression())) - }, $Default_regexp_map$170.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), self.$loc(begin_t).$join(options_e.$loc().$expression())) + }, 3); - Opal.def(self, '$constant_map', $Default_constant_map$171 = function $$constant_map(scope, colon2_t, name_t) { + $def(self, '$constant_map', function $$constant_map(scope, colon2_t, name_t) { var self = this, expr_l = nil; @@ -22612,78 +19546,69 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { expr_l = scope.$loc().$expression().$join(self.$loc(name_t)) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Constant').$new(self.$loc(colon2_t), self.$loc(name_t), expr_l); - }, $Default_constant_map$171.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Constant').$new(self.$loc(colon2_t), self.$loc(name_t), expr_l); + }, 3); - Opal.def(self, '$variable_map', $Default_variable_map$172 = function $$variable_map(name_t) { + $def(self, '$variable_map', function $$variable_map(name_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(self.$loc(name_t)) - }, $Default_variable_map$172.$$arity = 1); + return $$$($$$($$('Source'), 'Map'), 'Variable').$new(self.$loc(name_t)) + }, 1); - Opal.def(self, '$binary_op_map', $Default_binary_op_map$173 = function $$binary_op_map(left_e, op_t, right_e) { + $def(self, '$binary_op_map', function $$binary_op_map(left_e, op_t, right_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), self.$join_exprs(left_e, right_e)) - }, $Default_binary_op_map$173.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Operator').$new(self.$loc(op_t), self.$join_exprs(left_e, right_e)) + }, 3); - Opal.def(self, '$unary_op_map', $Default_unary_op_map$174 = function $$unary_op_map(op_t, arg_e) { + $def(self, '$unary_op_map', function $$unary_op_map(op_t, arg_e) { var self = this, expr_l = nil; - if (arg_e == null) { - arg_e = nil; - }; + if (arg_e == null) arg_e = nil;; if ($truthy(arg_e['$nil?']())) { expr_l = self.$loc(op_t) } else { expr_l = self.$loc(op_t).$join(arg_e.$loc().$expression()) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); - }, $Default_unary_op_map$174.$$arity = -2); + return $$$($$$($$('Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); + }, -2); - Opal.def(self, '$range_map', $Default_range_map$175 = function $$range_map(start_e, op_t, end_e) { - var self = this, $ret_or_29 = nil, expr_l = nil; + $def(self, '$range_map', function $$range_map(start_e, op_t, end_e) { + var self = this, expr_l = nil; - if ($truthy((function() {if ($truthy(($ret_or_29 = start_e))) { - return end_e - } else { - return $ret_or_29 - }; return nil; })())) { + if (($truthy(start_e) && ($truthy(end_e)))) { expr_l = self.$join_exprs(start_e, end_e) } else if ($truthy(start_e)) { expr_l = start_e.$loc().$expression().$join(self.$loc(op_t)) } else if ($truthy(end_e)) { - expr_l = self.$loc(op_t).$join(end_e.$loc().$expression())}; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); - }, $Default_range_map$175.$$arity = 3); + expr_l = self.$loc(op_t).$join(end_e.$loc().$expression()) + }; + return $$$($$$($$('Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); + }, 3); - Opal.def(self, '$arg_prefix_map', $Default_arg_prefix_map$176 = function $$arg_prefix_map(op_t, name_t) { + $def(self, '$arg_prefix_map', function $$arg_prefix_map(op_t, name_t) { var self = this, expr_l = nil; - if (name_t == null) { - name_t = nil; - }; + if (name_t == null) name_t = nil;; if ($truthy(name_t['$nil?']())) { expr_l = self.$loc(op_t) } else { expr_l = self.$loc(op_t).$join(self.$loc(name_t)) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(self.$loc(name_t), expr_l); - }, $Default_arg_prefix_map$176.$$arity = -2); + return $$$($$$($$('Source'), 'Map'), 'Variable').$new(self.$loc(name_t), expr_l); + }, -2); - Opal.def(self, '$kwarg_map', $Default_kwarg_map$177 = function $$kwarg_map(name_t, value_e) { + $def(self, '$kwarg_map', function $$kwarg_map(name_t, value_e) { var self = this, label_range = nil, name_range = nil, expr_l = nil; - if (value_e == null) { - value_e = nil; - }; + if (value_e == null) value_e = nil;; label_range = self.$loc(name_t); name_range = label_range.$adjust($hash2(["end_pos"], {"end_pos": -1})); if ($truthy(value_e)) { @@ -22691,74 +19616,70 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { expr_l = self.$loc(name_t) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_range, expr_l); - }, $Default_kwarg_map$177.$$arity = -2); + return $$$($$$($$('Source'), 'Map'), 'Variable').$new(name_range, expr_l); + }, -2); - Opal.def(self, '$module_definition_map', $Default_module_definition_map$178 = function $$module_definition_map(keyword_t, name_e, operator_t, end_t) { + $def(self, '$module_definition_map', function $$module_definition_map(keyword_t, name_e, operator_t, end_t) { var self = this, name_l = nil; if ($truthy(name_e)) { - name_l = name_e.$loc().$expression()}; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Definition').$new(self.$loc(keyword_t), self.$loc(operator_t), name_l, self.$loc(end_t)); - }, $Default_module_definition_map$178.$$arity = 4); + name_l = name_e.$loc().$expression() + }; + return $$$($$$($$('Source'), 'Map'), 'Definition').$new(self.$loc(keyword_t), self.$loc(operator_t), name_l, self.$loc(end_t)); + }, 4); - Opal.def(self, '$definition_map', $Default_definition_map$179 = function $$definition_map(keyword_t, operator_t, name_t, end_t) { + $def(self, '$definition_map', function $$definition_map(keyword_t, operator_t, name_t, end_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), self.$loc(end_t), nil, nil) - }, $Default_definition_map$179.$$arity = 4); + return $$$($$$($$('Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), self.$loc(end_t), nil, nil) + }, 4); - Opal.def(self, '$endless_definition_map', $Default_endless_definition_map$180 = function $$endless_definition_map(keyword_t, operator_t, name_t, assignment_t, body_e) { + $def(self, '$endless_definition_map', function $$endless_definition_map(keyword_t, operator_t, name_t, assignment_t, body_e) { var self = this, body_l = nil; body_l = body_e.$loc().$expression(); - return $$$($$$($$($nesting, 'Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), nil, self.$loc(assignment_t), body_l); - }, $Default_endless_definition_map$180.$$arity = 5); + return $$$($$$($$('Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), nil, self.$loc(assignment_t), body_l); + }, 5); - Opal.def(self, '$send_map', $Default_send_map$181 = function $$send_map(receiver_e, dot_t, selector_t, begin_t, args, end_t) { + $def(self, '$send_map', function $$send_map(receiver_e, dot_t, selector_t, begin_t, args, end_t) { var self = this, begin_l = nil, end_l = nil; - if (begin_t == null) { - begin_t = nil; - }; + if (begin_t == null) begin_t = nil;; - if (args == null) { - args = []; - }; + if (args == null) args = [];; - if (end_t == null) { - end_t = nil; - }; + if (end_t == null) end_t = nil;; if ($truthy(receiver_e)) { begin_l = receiver_e.$loc().$expression() } else if ($truthy(selector_t)) { - begin_l = self.$loc(selector_t)}; + begin_l = self.$loc(selector_t) + }; if ($truthy(end_t)) { end_l = self.$loc(end_t) } else if ($truthy(args['$any?']())) { end_l = args.$last().$loc().$expression() } else if ($truthy(selector_t)) { - end_l = self.$loc(selector_t)}; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(self.$loc(dot_t), self.$loc(selector_t), self.$loc(begin_t), self.$loc(end_t), begin_l.$join(end_l)); - }, $Default_send_map$181.$$arity = -4); + end_l = self.$loc(selector_t) + }; + return $$$($$$($$('Source'), 'Map'), 'Send').$new(self.$loc(dot_t), self.$loc(selector_t), self.$loc(begin_t), self.$loc(end_t), begin_l.$join(end_l)); + }, -4); - Opal.def(self, '$var_send_map', $Default_var_send_map$182 = function $$var_send_map(variable_e) { - var self = this; - - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, variable_e.$loc().$expression(), nil, nil, variable_e.$loc().$expression()) - }, $Default_var_send_map$182.$$arity = 1); + $def(self, '$var_send_map', function $$var_send_map(variable_e) { + + return $$$($$$($$('Source'), 'Map'), 'Send').$new(nil, variable_e.$loc().$expression(), nil, nil, variable_e.$loc().$expression()) + }, 1); - Opal.def(self, '$send_binary_op_map', $Default_send_binary_op_map$183 = function $$send_binary_op_map(lhs_e, selector_t, rhs_e) { + $def(self, '$send_binary_op_map', function $$send_binary_op_map(lhs_e, selector_t, rhs_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, self.$join_exprs(lhs_e, rhs_e)) - }, $Default_send_binary_op_map$183.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, self.$join_exprs(lhs_e, rhs_e)) + }, 3); - Opal.def(self, '$send_unary_op_map', $Default_send_unary_op_map$184 = function $$send_unary_op_map(selector_t, arg_e) { + $def(self, '$send_unary_op_map', function $$send_unary_op_map(selector_t, arg_e) { var self = this, expr_l = nil; @@ -22767,132 +19688,105 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { expr_l = self.$loc(selector_t).$join(arg_e.$loc().$expression()) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, expr_l); - }, $Default_send_unary_op_map$184.$$arity = 2); + return $$$($$$($$('Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, expr_l); + }, 2); - Opal.def(self, '$index_map', $Default_index_map$185 = function $$index_map(receiver_e, lbrack_t, rbrack_t) { + $def(self, '$index_map', function $$index_map(receiver_e, lbrack_t, rbrack_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Index').$new(self.$loc(lbrack_t), self.$loc(rbrack_t), receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) - }, $Default_index_map$185.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Index').$new(self.$loc(lbrack_t), self.$loc(rbrack_t), receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) + }, 3); - Opal.def(self, '$send_index_map', $Default_send_index_map$186 = function $$send_index_map(receiver_e, lbrack_t, rbrack_t) { + $def(self, '$send_index_map', function $$send_index_map(receiver_e, lbrack_t, rbrack_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(lbrack_t).$join(self.$loc(rbrack_t)), nil, nil, receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) - }, $Default_send_index_map$186.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Send').$new(nil, self.$loc(lbrack_t).$join(self.$loc(rbrack_t)), nil, nil, receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) + }, 3); - Opal.def(self, '$block_map', $Default_block_map$187 = function $$block_map(receiver_l, begin_t, end_t) { + $def(self, '$block_map', function $$block_map(receiver_l, begin_t, end_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), receiver_l.$join(self.$loc(end_t))) - }, $Default_block_map$187.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), receiver_l.$join(self.$loc(end_t))) + }, 3); - Opal.def(self, '$keyword_map', $Default_keyword_map$188 = function $$keyword_map(keyword_t, begin_t, args, end_t) { - var self = this, $ret_or_30 = nil, end_l = nil, $ret_or_31 = nil, $ret_or_32 = nil; + $def(self, '$keyword_map', function $$keyword_map(keyword_t, begin_t, args, end_t) { + var self = this, $ret_or_1 = nil, end_l = nil; - args = (function() {if ($truthy(($ret_or_30 = args))) { - return $ret_or_30 - } else { - return [] - }; return nil; })(); + args = ($truthy(($ret_or_1 = args)) ? ($ret_or_1) : ([])); if ($truthy(end_t)) { end_l = self.$loc(end_t) - } else if ($truthy((function() {if ($truthy(($ret_or_31 = args['$any?']()))) { - return args.$last()['$nil?']()['$!']() - } else { - return $ret_or_31 - }; return nil; })())) { + } else if (($truthy(args['$any?']()) && ($not(args.$last()['$nil?']())))) { end_l = args.$last().$loc().$expression() - } else if ($truthy((function() {if ($truthy(($ret_or_32 = args['$any?']()))) { - return $rb_gt(args.$count(), 1) - } else { - return $ret_or_32 - }; return nil; })())) { + } else if (($truthy(args['$any?']()) && ($truthy($rb_gt(args.$count(), 1))))) { end_l = args['$[]'](-2).$loc().$expression() } else { end_l = self.$loc(keyword_t) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); - }, $Default_keyword_map$188.$$arity = 4); + return $$$($$$($$('Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); + }, 4); - Opal.def(self, '$keyword_mod_map', $Default_keyword_mod_map$189 = function $$keyword_mod_map(pre_e, keyword_t, post_e) { + $def(self, '$keyword_mod_map', function $$keyword_mod_map(pre_e, keyword_t, post_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), nil, nil, self.$join_exprs(pre_e, post_e)) - }, $Default_keyword_mod_map$189.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), nil, nil, self.$join_exprs(pre_e, post_e)) + }, 3); - Opal.def(self, '$condition_map', $Default_condition_map$190 = function $$condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t) { - var self = this, end_l = nil, $ret_or_33 = nil, $ret_or_34 = nil; + $def(self, '$condition_map', function $$condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t) { + var self = this, end_l = nil; if ($truthy(end_t)) { end_l = self.$loc(end_t) - } else if ($truthy((function() {if ($truthy(($ret_or_33 = else_e))) { - return else_e.$loc().$expression() - } else { - return $ret_or_33 - }; return nil; })())) { + } else if (($truthy(else_e) && ($truthy(else_e.$loc().$expression())))) { end_l = else_e.$loc().$expression() } else if ($truthy(self.$loc(else_t))) { end_l = self.$loc(else_t) - } else if ($truthy((function() {if ($truthy(($ret_or_34 = body_e))) { - return body_e.$loc().$expression() - } else { - return $ret_or_34 - }; return nil; })())) { + } else if (($truthy(body_e) && ($truthy(body_e.$loc().$expression())))) { end_l = body_e.$loc().$expression() } else if ($truthy(self.$loc(begin_t))) { end_l = self.$loc(begin_t) } else { end_l = cond_e.$loc().$expression() }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(else_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); - }, $Default_condition_map$190.$$arity = 7); + return $$$($$$($$('Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(else_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); + }, 7); - Opal.def(self, '$ternary_map', $Default_ternary_map$191 = function $$ternary_map(begin_e, question_t, mid_e, colon_t, end_e) { + $def(self, '$ternary_map', function $$ternary_map(begin_e, question_t, mid_e, colon_t, end_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Ternary').$new(self.$loc(question_t), self.$loc(colon_t), self.$join_exprs(begin_e, end_e)) - }, $Default_ternary_map$191.$$arity = 5); + return $$$($$$($$('Source'), 'Map'), 'Ternary').$new(self.$loc(question_t), self.$loc(colon_t), self.$join_exprs(begin_e, end_e)) + }, 5); - Opal.def(self, '$for_map', $Default_for_map$192 = function $$for_map(keyword_t, in_t, begin_t, end_t) { + $def(self, '$for_map', function $$for_map(keyword_t, in_t, begin_t, end_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'For').$new(self.$loc(keyword_t), self.$loc(in_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(self.$loc(end_t))) - }, $Default_for_map$192.$$arity = 4); + return $$$($$$($$('Source'), 'Map'), 'For').$new(self.$loc(keyword_t), self.$loc(in_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(self.$loc(end_t))) + }, 4); - Opal.def(self, '$rescue_body_map', $Default_rescue_body_map$193 = function $$rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e) { - var self = this, end_l = nil, $ret_or_35 = nil, $ret_or_36 = nil, $ret_or_37 = nil; + $def(self, '$rescue_body_map', function $$rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e) { + var self = this, end_l = nil; if ($truthy(compstmt_e)) { - end_l = compstmt_e.$loc().$expression()}; - if ($truthy((function() {if ($truthy(($ret_or_35 = end_l['$nil?']()))) { - return then_t - } else { - return $ret_or_35 - }; return nil; })())) { - end_l = self.$loc(then_t)}; - if ($truthy((function() {if ($truthy(($ret_or_36 = end_l['$nil?']()))) { - return exc_var_e - } else { - return $ret_or_36 - }; return nil; })())) { - end_l = exc_var_e.$loc().$expression()}; - if ($truthy((function() {if ($truthy(($ret_or_37 = end_l['$nil?']()))) { - return exc_list_e - } else { - return $ret_or_37 - }; return nil; })())) { - end_l = exc_list_e.$loc().$expression()}; + end_l = compstmt_e.$loc().$expression() + }; + if (($truthy(end_l['$nil?']()) && ($truthy(then_t)))) { + end_l = self.$loc(then_t) + }; + if (($truthy(end_l['$nil?']()) && ($truthy(exc_var_e)))) { + end_l = exc_var_e.$loc().$expression() + }; + if (($truthy(end_l['$nil?']()) && ($truthy(exc_list_e)))) { + end_l = exc_list_e.$loc().$expression() + }; if ($truthy(end_l['$nil?']())) { - end_l = self.$loc(keyword_t)}; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'RescueBody').$new(self.$loc(keyword_t), self.$loc(assoc_t), self.$loc(then_t), self.$loc(keyword_t).$join(end_l)); - }, $Default_rescue_body_map$193.$$arity = 6); + end_l = self.$loc(keyword_t) + }; + return $$$($$$($$('Source'), 'Map'), 'RescueBody').$new(self.$loc(keyword_t), self.$loc(assoc_t), self.$loc(then_t), self.$loc(keyword_t).$join(end_l)); + }, 6); - Opal.def(self, '$eh_keyword_map', $Default_eh_keyword_map$194 = function $$eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e) { + $def(self, '$eh_keyword_map', function $$eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e) { var self = this, begin_l = nil, end_l = nil; @@ -22911,195 +19805,164 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { end_l = else_e.$loc().$expression() } - } else if ($truthy(body_es.$last()['$nil?']()['$!']())) { + } else if ($not(body_es.$last()['$nil?']())) { end_l = body_es.$last().$loc().$expression() } else { end_l = self.$loc(keyword_t) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), nil, self.$loc(else_t), nil, begin_l.$join(end_l)); - }, $Default_eh_keyword_map$194.$$arity = 5); + return $$$($$$($$('Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), nil, self.$loc(else_t), nil, begin_l.$join(end_l)); + }, 5); - Opal.def(self, '$guard_map', $Default_guard_map$195 = function $$guard_map(keyword_t, guard_body_e) { + $def(self, '$guard_map', function $$guard_map(keyword_t, guard_body_e) { var self = this, keyword_l = nil, guard_body_l = nil; keyword_l = self.$loc(keyword_t); guard_body_l = guard_body_e.$loc().$expression(); - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(keyword_l, nil, nil, keyword_l.$join(guard_body_l)); - }, $Default_guard_map$195.$$arity = 2); + return $$$($$$($$('Source'), 'Map'), 'Keyword').$new(keyword_l, nil, nil, keyword_l.$join(guard_body_l)); + }, 2); - Opal.def(self, '$static_string', $Default_static_string$196 = function $$static_string(nodes) {try { + $def(self, '$static_string', function $$static_string(nodes) {try { - var $$197, self = this; + var self = this; - return $send(nodes, 'map', [], ($$197 = function(node){var self = $$197.$$s == null ? this : $$197.$$s, $case = nil, string = nil; + return $send(nodes, 'map', [], function $$18(node){var self = $$18.$$s == null ? this : $$18.$$s, $ret_or_1 = nil, string = nil; - if (node == null) { - node = nil; - }; - return (function() {$case = node.$type(); - if ("str"['$===']($case)) {return node.$children()['$[]'](0)} - else if ("begin"['$===']($case)) {if ($truthy((string = self.$static_string(node.$children())))) { - return string + if (node == null) node = nil;; + if ($eqeqeq("str", ($ret_or_1 = node.$type()))) { + return node.$children()['$[]'](0) + } else if ($eqeqeq("begin", $ret_or_1)) { + if ($truthy((string = self.$static_string(node.$children())))) { + return string + } else { + Opal.ret(nil) + } } else { Opal.ret(nil) - }} - else {Opal.ret(nil)}})();}, $$197.$$s = self, $$197.$$arity = 1, $$197)).$join() + };}, {$$arity: 1, $$s: self}).$join() } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Default_static_string$196.$$arity = 1); + }, 1); - Opal.def(self, '$static_regexp', $Default_static_regexp$198 = function $$static_regexp(parts, options) { + $def(self, '$static_regexp', function $$static_regexp(parts, options) { var self = this, source = nil; source = self.$static_string(parts); if ($truthy(source['$nil?']())) { - return nil}; - source = (function() { - if ($truthy(options.$children()['$include?']("u"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'UTF_8'))} - else if ($truthy(options.$children()['$include?']("e"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'EUC_JP'))} - else if ($truthy(options.$children()['$include?']("s"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'WINDOWS_31J'))} - else if ($truthy(options.$children()['$include?']("n"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'BINARY'))} - else {return source}})(); - return $$($nesting, 'Regexp').$new(source, (function() {if ($truthy(options.$children()['$include?']("x"))) { - return $$$($$($nesting, 'Regexp'), 'EXTENDED') - } else { return nil - }; return nil; })()); - }, $Default_static_regexp$198.$$arity = 2); + }; + source = ($truthy(options.$children()['$include?']("u")) ? (source.$encode($$$($$('Encoding'), 'UTF_8'))) : ($truthy(options.$children()['$include?']("e")) ? (source.$encode($$$($$('Encoding'), 'EUC_JP'))) : ($truthy(options.$children()['$include?']("s")) ? (source.$encode($$$($$('Encoding'), 'WINDOWS_31J'))) : ($truthy(options.$children()['$include?']("n")) ? (source.$encode($$$($$('Encoding'), 'BINARY'))) : (source))))); + return $$('Regexp').$new(source, ($truthy(options.$children()['$include?']("x")) ? ($$$($$('Regexp'), 'EXTENDED')) : nil)); + }, 2); - Opal.def(self, '$static_regexp_node', $Default_static_regexp_node$199 = function $$static_regexp_node(node) { + $def(self, '$static_regexp_node', function $$static_regexp_node(node) { var $a, self = this, parts = nil, options = nil; - if (node.$type()['$==']("regexp")) { + if ($eqeq(node.$type(), "regexp")) { $a = [node.$children()['$[]']($range(0, -2, false)), node.$children()['$[]'](-1)], (parts = $a[0]), (options = $a[1]), $a; return self.$static_regexp(parts, options); } else { return nil } - }, $Default_static_regexp_node$199.$$arity = 1); + }, 1); - Opal.def(self, '$collapse_string_parts?', $Default_collapse_string_parts$ques$200 = function(parts) { - var self = this, $ret_or_38 = nil; + $def(self, '$collapse_string_parts?', function $Default_collapse_string_parts$ques$19(parts) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_38 = parts['$one?']()))) { + if ($truthy(($ret_or_1 = parts['$one?']()))) { return ["str", "dstr"]['$include?'](parts.$first().$type()) } else { - return $ret_or_38 + return $ret_or_1 } - }, $Default_collapse_string_parts$ques$200.$$arity = 1); + }, 1); - Opal.def(self, '$value', $Default_value$201 = function $$value(token) { - var self = this; - + $def(self, '$value', function $$value(token) { + return token['$[]'](0) - }, $Default_value$201.$$arity = 1); + }, 1); - Opal.def(self, '$string_value', $Default_string_value$202 = function $$string_value(token) { + $def(self, '$string_value', function $$string_value(token) { var self = this; - if ($truthy(token['$[]'](0)['$valid_encoding?']())) { - } else { + if (!$truthy(token['$[]'](0)['$valid_encoding?']())) { self.$diagnostic("error", "invalid_encoding", nil, token['$[]'](1)) }; return token['$[]'](0); - }, $Default_string_value$202.$$arity = 1); + }, 1); - Opal.def(self, '$loc', $Default_loc$203 = function $$loc(token) { - var self = this, $ret_or_39 = nil; - - if ($truthy((function() {if ($truthy(($ret_or_39 = token))) { - return token['$[]'](0) - } else { - return $ret_or_39 - }; return nil; })())) { + $def(self, '$loc', function $$loc(token) { + + if (($truthy(token) && ($truthy(token['$[]'](0))))) { return token['$[]'](1) } else { return nil } - }, $Default_loc$203.$$arity = 1); + }, 1); - Opal.def(self, '$diagnostic', $Default_diagnostic$204 = function $$diagnostic(type, reason, arguments$, location, highlights) { + $def(self, '$diagnostic', function $$diagnostic(type, reason, arguments$, location, highlights) { var self = this; - if (highlights == null) { - highlights = []; - }; - self.parser.$diagnostics().$process($$($nesting, 'Diagnostic').$new(type, reason, arguments$, location, highlights)); - if (type['$==']("error")) { + if (highlights == null) highlights = [];; + self.parser.$diagnostics().$process($$('Diagnostic').$new(type, reason, arguments$, location, highlights)); + if ($eqeq(type, "error")) { return self.parser.$send("yyerror") } else { return nil }; - }, $Default_diagnostic$204.$$arity = -5); + }, -5); - Opal.def(self, '$validate_definee', $Default_validate_definee$205 = function $$validate_definee(definee) { - var self = this, $case = nil; + $def(self, '$validate_definee', function $$validate_definee(definee) { + var self = this, $ret_or_1 = nil; - return (function() {$case = definee.$type(); - if ("int"['$===']($case) || "str"['$===']($case) || "dstr"['$===']($case) || "sym"['$===']($case) || "dsym"['$===']($case) || "regexp"['$===']($case) || "array"['$===']($case) || "hash"['$===']($case)) { - self.$diagnostic("error", "singleton_literal", nil, definee.$loc().$expression()); - return false;} - else {return true}})() - }, $Default_validate_definee$205.$$arity = 1); + if (($eqeqeq("int", ($ret_or_1 = definee.$type())) || (($eqeqeq("str", $ret_or_1) || (($eqeqeq("dstr", $ret_or_1) || (($eqeqeq("sym", $ret_or_1) || (($eqeqeq("dsym", $ret_or_1) || (($eqeqeq("regexp", $ret_or_1) || (($eqeqeq("array", $ret_or_1) || ($eqeqeq("hash", $ret_or_1)))))))))))))))) { + + self.$diagnostic("error", "singleton_literal", nil, definee.$loc().$expression()); + return false; + } else { + return true + } + }, 1); - Opal.def(self, '$rewrite_hash_args_to_kwargs', $Default_rewrite_hash_args_to_kwargs$206 = function $$rewrite_hash_args_to_kwargs(args) { - var self = this, $ret_or_40 = nil, $writer = nil, $ret_or_41 = nil, $ret_or_42 = nil; + $def(self, '$rewrite_hash_args_to_kwargs', function $$rewrite_hash_args_to_kwargs(args) { + var self = this, $writer = nil; - if ($truthy((function() {if ($truthy(($ret_or_40 = args['$any?']()))) { - return self['$kwargs?'](args.$last()) - } else { - return $ret_or_40 - }; return nil; })())) { + if (($truthy(args['$any?']()) && ($truthy(self['$kwargs?'](args.$last()))))) { $writer = [$rb_minus(args.$length(), 1), args['$[]']($rb_minus(args.$length(), 1)).$updated("kwargs")]; - $send(args, '[]=', Opal.to_a($writer)); + $send(args, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy((function() {if ($truthy(($ret_or_41 = (function() {if ($truthy(($ret_or_42 = $rb_gt(args.$length(), 1)))) { - return args.$last().$type()['$==']("block_pass") - } else { - return $ret_or_42 - }; return nil; })()))) { - return self['$kwargs?'](args['$[]']($rb_minus(args.$length(), 2))) - } else { - return $ret_or_41 - }; return nil; })())) { + } else if ((($truthy($rb_gt(args.$length(), 1)) && ($eqeq(args.$last().$type(), "block_pass"))) && ($truthy(self['$kwargs?'](args['$[]']($rb_minus(args.$length(), 2))))))) { $writer = [$rb_minus(args.$length(), 2), args['$[]']($rb_minus(args.$length(), 2)).$updated("kwargs")]; - $send(args, '[]=', Opal.to_a($writer)); + $send(args, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil } - }, $Default_rewrite_hash_args_to_kwargs$206.$$arity = 1); - return (Opal.def(self, '$kwargs?', $Default_kwargs$ques$207 = function(node) { - var self = this, $ret_or_43 = nil, $ret_or_44 = nil; + }, 1); + return $def(self, '$kwargs?', function $Default_kwargs$ques$20(node) { + var $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_43 = (function() {if ($truthy(($ret_or_44 = node.$type()['$==']("hash")))) { - return node.$loc().$begin()['$nil?']() - } else { - return $ret_or_44 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = node.$type()['$==']("hash"))) ? (node.$loc().$begin()['$nil?']()) : ($ret_or_2))))) { return node.$loc().$end()['$nil?']() } else { - return $ret_or_43 + return $ret_or_1 } - }, $Default_kwargs$ques$207.$$arity = 1), nil) && 'kwargs?'; - })($$($nesting, 'Builders'), null, $nesting) + }, 1); + })($$('Builders'), null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/context"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["parser/context"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $truthy = Opal.truthy; - Opal.add_stubs(['$reset', '$attr_accessor', '$in_block', '$in_lambda']); + Opal.add_stubs('reset,attr_accessor,in_block,in_lambda'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -23108,18 +19971,18 @@ Opal.modules["parser/context"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Context'); - var $nesting = [self].concat($parent_nesting), $Context_initialize$1, $Context_reset$2, $Context_in_dynamic_block$ques$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'FLAGS', ["in_defined", "in_kwarg", "in_argdef", "in_def", "in_class", "in_block", "in_lambda"]); + $const_set($nesting[0], 'FLAGS', ["in_defined", "in_kwarg", "in_argdef", "in_def", "in_class", "in_block", "in_lambda"]); - Opal.def(self, '$initialize', $Context_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return self.$reset() - }, $Context_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $Context_reset$2 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; @@ -23130,9 +19993,9 @@ Opal.modules["parser/context"] = function(Opal) { self.in_class = false; self.in_block = false; return (self.in_lambda = false); - }, $Context_reset$2.$$arity = 0); - $send(self, 'attr_accessor', Opal.to_a($$($nesting, 'FLAGS'))); - return (Opal.def(self, '$in_dynamic_block?', $Context_in_dynamic_block$ques$3 = function() { + }, 0); + $send(self, 'attr_accessor', $to_a($$('FLAGS'))); + return $def(self, '$in_dynamic_block?', function $Context_in_dynamic_block$ques$1() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$in_block()))) { @@ -23140,22 +20003,15 @@ Opal.modules["parser/context"] = function(Opal) { } else { return self.$in_lambda() } - }, $Context_in_dynamic_block$ques$3.$$arity = 0), nil) && 'in_dynamic_block?'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/max_numparam_stack"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$==', '$size', '$set', '$top', '$>', '$max', '$[]', '$last', '$push', '$pop', '$private', '$[]=', '$-']); +Opal.modules["parser/max_numparam_stack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus; + + Opal.add_stubs('attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]=,-'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -23164,38 +20020,38 @@ Opal.modules["parser/max_numparam_stack"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'MaxNumparamStack'); - var $nesting = [self].concat($parent_nesting), $MaxNumparamStack_initialize$1, $MaxNumparamStack_empty$ques$2, $MaxNumparamStack_has_ordinary_params$excl$3, $MaxNumparamStack_has_ordinary_params$ques$4, $MaxNumparamStack_has_numparams$ques$5, $MaxNumparamStack_register$6, $MaxNumparamStack_top$7, $MaxNumparamStack_push$8, $MaxNumparamStack_pop$9, $MaxNumparamStack_set$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.stack = nil; + $proto.stack = nil; self.$attr_reader("stack"); - Opal.const_set($nesting[0], 'ORDINARY_PARAMS', -1); + $const_set($nesting[0], 'ORDINARY_PARAMS', -1); - Opal.def(self, '$initialize', $MaxNumparamStack_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.stack = []) - }, $MaxNumparamStack_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $MaxNumparamStack_empty$ques$2 = function() { + $def(self, '$empty?', function $MaxNumparamStack_empty$ques$1() { var self = this; return self.stack.$size()['$=='](0) - }, $MaxNumparamStack_empty$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$has_ordinary_params!', $MaxNumparamStack_has_ordinary_params$excl$3 = function() { + $def(self, '$has_ordinary_params!', function $MaxNumparamStack_has_ordinary_params$excl$2() { var self = this; - return self.$set($$($nesting, 'ORDINARY_PARAMS')) - }, $MaxNumparamStack_has_ordinary_params$excl$3.$$arity = 0); + return self.$set($$('ORDINARY_PARAMS')) + }, 0); - Opal.def(self, '$has_ordinary_params?', $MaxNumparamStack_has_ordinary_params$ques$4 = function() { + $def(self, '$has_ordinary_params?', function $MaxNumparamStack_has_ordinary_params$ques$3() { var self = this; - return self.$top()['$==']($$($nesting, 'ORDINARY_PARAMS')) - }, $MaxNumparamStack_has_ordinary_params$ques$4.$$arity = 0); + return self.$top()['$==']($$('ORDINARY_PARAMS')) + }, 0); - Opal.def(self, '$has_numparams?', $MaxNumparamStack_has_numparams$ques$5 = function() { + $def(self, '$has_numparams?', function $MaxNumparamStack_has_numparams$ques$4() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$top()))) { @@ -23203,21 +20059,21 @@ Opal.modules["parser/max_numparam_stack"] = function(Opal) { } else { return $ret_or_1 } - }, $MaxNumparamStack_has_numparams$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$register', $MaxNumparamStack_register$6 = function $$register(numparam) { + $def(self, '$register', function $$register(numparam) { var self = this; return self.$set([self.$top(), numparam].$max()) - }, $MaxNumparamStack_register$6.$$arity = 1); + }, 1); - Opal.def(self, '$top', $MaxNumparamStack_top$7 = function $$top() { + $def(self, '$top', function $$top() { var self = this; return self.stack.$last()['$[]']("value") - }, $MaxNumparamStack_top$7.$$arity = 0); + }, 0); - Opal.def(self, '$push', $MaxNumparamStack_push$8 = function $$push($kwargs) { + $def(self, '$push', function $$push($kwargs) { var static$, self = this; @@ -23233,102 +20089,97 @@ Opal.modules["parser/max_numparam_stack"] = function(Opal) { } static$ = $kwargs.$$smap["static"];; return self.stack.$push($hash2(["value", "static"], {"value": 0, "static": static$})); - }, $MaxNumparamStack_push$8.$$arity = 1); + }, 1); - Opal.def(self, '$pop', $MaxNumparamStack_pop$9 = function $$pop() { + $def(self, '$pop', function $$pop() { var self = this; return self.stack.$pop()['$[]']("value") - }, $MaxNumparamStack_pop$9.$$arity = 0); + }, 0); self.$private(); - return (Opal.def(self, '$set', $MaxNumparamStack_set$10 = function $$set(value) { + return $def(self, '$set', function $$set(value) { var self = this, $writer = nil; $writer = ["value", value]; - $send(self.stack.$last(), '[]=', Opal.to_a($writer)); + $send(self.stack.$last(), '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $MaxNumparamStack_set$10.$$arity = 1), nil) && 'set'; + }, 1); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/current_arg_stack"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["parser/current_arg_stack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $rb_minus = Opal.rb_minus, $send = Opal.send, $to_a = Opal.to_a; - Opal.add_stubs(['$attr_reader', '$freeze', '$==', '$size', '$<<', '$-', '$length', '$[]=', '$pop', '$clear', '$last']); + Opal.add_stubs('attr_reader,freeze,==,size,<<,-,length,[]=,pop,clear,last'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'CurrentArgStack'); - var $nesting = [self].concat($parent_nesting), $CurrentArgStack_initialize$1, $CurrentArgStack_empty$ques$2, $CurrentArgStack_push$3, $CurrentArgStack_set$4, $CurrentArgStack_pop$5, $CurrentArgStack_reset$6, $CurrentArgStack_top$7; + var $proto = self.$$prototype; - self.$$prototype.stack = nil; + $proto.stack = nil; self.$attr_reader("stack"); - Opal.def(self, '$initialize', $CurrentArgStack_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; self.stack = []; return self.$freeze(); - }, $CurrentArgStack_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $CurrentArgStack_empty$ques$2 = function() { + $def(self, '$empty?', function $CurrentArgStack_empty$ques$1() { var self = this; return self.stack.$size()['$=='](0) - }, $CurrentArgStack_empty$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$push', $CurrentArgStack_push$3 = function $$push(value) { + $def(self, '$push', function $$push(value) { var self = this; return self.stack['$<<'](value) - }, $CurrentArgStack_push$3.$$arity = 1); + }, 1); - Opal.def(self, '$set', $CurrentArgStack_set$4 = function $$set(value) { + $def(self, '$set', function $$set(value) { var self = this, $writer = nil; $writer = [$rb_minus(self.stack.$length(), 1), value]; - $send(self.stack, '[]=', Opal.to_a($writer)); + $send(self.stack, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $CurrentArgStack_set$4.$$arity = 1); + }, 1); - Opal.def(self, '$pop', $CurrentArgStack_pop$5 = function $$pop() { + $def(self, '$pop', function $$pop() { var self = this; return self.stack.$pop() - }, $CurrentArgStack_pop$5.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $CurrentArgStack_reset$6 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; return self.stack.$clear() - }, $CurrentArgStack_reset$6.$$arity = 0); - return (Opal.def(self, '$top', $CurrentArgStack_top$7 = function $$top() { + }, 0); + return $def(self, '$top', function $$top() { var self = this; return self.stack.$last() - }, $CurrentArgStack_top$7.$$arity = 0), nil) && 'top'; - })($nesting[0], null, $nesting) + }, 0); + })($nesting[0], null) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/variables_stack"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["parser/variables_stack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$push', '$empty?', '$<<', '$new', '$pop', '$clear', '$last', '$to_sym', '$include?']); + Opal.add_stubs('push,empty?,<<,new,pop,clear,last,to_sym,include?'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -23337,165 +20188,150 @@ Opal.modules["parser/variables_stack"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'VariablesStack'); - var $nesting = [self].concat($parent_nesting), $VariablesStack_initialize$1, $VariablesStack_empty$ques$2, $VariablesStack_push$3, $VariablesStack_pop$4, $VariablesStack_reset$5, $VariablesStack_declare$6, $VariablesStack_declared$ques$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.stack = nil; + $proto.stack = nil; - Opal.def(self, '$initialize', $VariablesStack_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; self.stack = []; return self.$push(); - }, $VariablesStack_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $VariablesStack_empty$ques$2 = function() { + $def(self, '$empty?', function $VariablesStack_empty$ques$1() { var self = this; return self.stack['$empty?']() - }, $VariablesStack_empty$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$push', $VariablesStack_push$3 = function $$push() { + $def(self, '$push', function $$push() { var self = this; - return self.stack['$<<']($$($nesting, 'Set').$new()) - }, $VariablesStack_push$3.$$arity = 0); + return self.stack['$<<']($$('Set').$new()) + }, 0); - Opal.def(self, '$pop', $VariablesStack_pop$4 = function $$pop() { + $def(self, '$pop', function $$pop() { var self = this; return self.stack.$pop() - }, $VariablesStack_pop$4.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $VariablesStack_reset$5 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; return self.stack.$clear() - }, $VariablesStack_reset$5.$$arity = 0); + }, 0); - Opal.def(self, '$declare', $VariablesStack_declare$6 = function $$declare(name) { + $def(self, '$declare', function $$declare(name) { var self = this; return self.stack.$last()['$<<'](name.$to_sym()) - }, $VariablesStack_declare$6.$$arity = 1); - return (Opal.def(self, '$declared?', $VariablesStack_declared$ques$7 = function(name) { + }, 1); + return $def(self, '$declared?', function $VariablesStack_declared$ques$2(name) { var self = this; return self.stack.$last()['$include?'](name.$to_sym()) - }, $VariablesStack_declared$ques$7.$$arity = 1), nil) && 'declared?'; + }, 1); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/base"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["parser/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $defs = Opal.defs, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $gvars = Opal.gvars, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $def = Opal.def, $not = Opal.not, $eqeqeq = Opal.eqeqeq, $to_ary = Opal.to_ary, $hash2 = Opal.hash2; - Opal.add_stubs(['$default_parser', '$setup_source_buffer', '$default_encoding', '$parse', '$parse_with_comments', '$read', '$new', '$all_errors_are_fatal=', '$diagnostics', '$-', '$ignore_warnings=', '$lambda', '$puts', '$render', '$consumer=', '$force_encoding', '$dup', '$==', '$name', '$raw_source=', '$source=', '$private_class_method', '$attr_reader', '$version', '$diagnostics=', '$static_env=', '$context=', '$parser=', '$class', '$[]', '$reset', '$source_buffer=', '$do_parse', '$comments=', '$comments', '$tokens=', '$!', '$raise', '$tokens', '$private', '$advance', '$===', '$diagnostic', '$map', '$process', '$yyerror', '$token_to_str']); + Opal.add_stubs('default_parser,setup_source_buffer,default_encoding,parse,parse_with_comments,read,new,all_errors_are_fatal=,diagnostics,-,ignore_warnings=,lambda,puts,render,consumer=,force_encoding,dup,==,name,raw_source=,source=,private_class_method,attr_reader,version,diagnostics=,static_env=,context=,parser=,[],class,reset,source_buffer=,do_parse,comments=,comments,tokens=,!,raise,tokens,private,advance,===,diagnostic,map,process,yyerror,token_to_str'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Base'); - var $nesting = [self].concat($parent_nesting), $Base_parse$1, $Base_parse_with_comments$2, $Base_parse_file$3, $Base_parse_file_with_comments$4, $Base_default_parser$5, $Base_setup_source_buffer$7, $Base_initialize$8, $Base_reset$9, $Base_parse$10, $Base_parse_with_comments$11, $Base_tokenize$12, $Base_next_token$13, $Base_check_kwarg_name$14, $Base_diagnostic$15, $Base_on_error$17; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.diagnostics = self.$$prototype.lexer = self.$$prototype.static_env = self.$$prototype.context = self.$$prototype.builder = self.$$prototype.current_arg_stack = self.$$prototype.pattern_variables = self.$$prototype.pattern_hash_keys = nil; + $proto.diagnostics = $proto.lexer = $proto.static_env = $proto.context = $proto.builder = $proto.current_arg_stack = $proto.pattern_variables = $proto.pattern_hash_keys = nil; - Opal.defs(self, '$parse', $Base_parse$1 = function $$parse(string, file, line) { + $defs(self, '$parse', function $$parse(string, file, line) { var self = this, parser = nil, source_buffer = nil; - if (file == null) { - file = "(string)"; - }; + if (file == null) file = "(string)";; - if (line == null) { - line = 1; - }; + if (line == null) line = 1;; parser = self.$default_parser(); source_buffer = self.$setup_source_buffer(file, line, string, parser.$default_encoding()); return parser.$parse(source_buffer); - }, $Base_parse$1.$$arity = -2); - Opal.defs(self, '$parse_with_comments', $Base_parse_with_comments$2 = function $$parse_with_comments(string, file, line) { + }, -2); + $defs(self, '$parse_with_comments', function $$parse_with_comments(string, file, line) { var self = this, parser = nil, source_buffer = nil; - if (file == null) { - file = "(string)"; - }; + if (file == null) file = "(string)";; - if (line == null) { - line = 1; - }; + if (line == null) line = 1;; parser = self.$default_parser(); source_buffer = self.$setup_source_buffer(file, line, string, parser.$default_encoding()); return parser.$parse_with_comments(source_buffer); - }, $Base_parse_with_comments$2.$$arity = -2); - Opal.defs(self, '$parse_file', $Base_parse_file$3 = function $$parse_file(filename) { + }, -2); + $defs(self, '$parse_file', function $$parse_file(filename) { var self = this; - return self.$parse($$($nesting, 'File').$read(filename), filename) - }, $Base_parse_file$3.$$arity = 1); - Opal.defs(self, '$parse_file_with_comments', $Base_parse_file_with_comments$4 = function $$parse_file_with_comments(filename) { + return self.$parse($$('File').$read(filename), filename) + }, 1); + $defs(self, '$parse_file_with_comments', function $$parse_file_with_comments(filename) { var self = this; - return self.$parse_with_comments($$($nesting, 'File').$read(filename), filename) - }, $Base_parse_file_with_comments$4.$$arity = 1); - Opal.defs(self, '$default_parser', $Base_default_parser$5 = function $$default_parser() { - var $$6, self = this, parser = nil, $writer = nil; + return self.$parse_with_comments($$('File').$read(filename), filename) + }, 1); + $defs(self, '$default_parser', function $$default_parser() { + var self = this, parser = nil, $writer = nil; parser = self.$new(); $writer = [true]; - $send(parser.$diagnostics(), 'all_errors_are_fatal=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'all_errors_are_fatal=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [true]; - $send(parser.$diagnostics(), 'ignore_warnings=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'ignore_warnings=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $writer = [$send(self, 'lambda', [], ($$6 = function(diagnostic){var self = $$6.$$s == null ? this : $$6.$$s; - if ($gvars.stderr == null) $gvars.stderr = nil; + $writer = [$send(self, 'lambda', [], function $$1(diagnostic){ if ($gvars.stderr == null) $gvars.stderr = nil; - if (diagnostic == null) { - diagnostic = nil; - }; - return $gvars.stderr.$puts(diagnostic.$render());}, $$6.$$s = self, $$6.$$arity = 1, $$6))]; - $send(parser.$diagnostics(), 'consumer=', Opal.to_a($writer)); + if (diagnostic == null) diagnostic = nil;; + return $gvars.stderr.$puts(diagnostic.$render());}, 1)]; + $send(parser.$diagnostics(), 'consumer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return parser; - }, $Base_default_parser$5.$$arity = 0); - Opal.defs(self, '$setup_source_buffer', $Base_setup_source_buffer$7 = function $$setup_source_buffer(file, line, string, encoding) { + }, 0); + $defs(self, '$setup_source_buffer', function $$setup_source_buffer(file, line, string, encoding) { var self = this, source_buffer = nil, $writer = nil; string = string.$dup().$force_encoding(encoding); - source_buffer = $$$($$($nesting, 'Source'), 'Buffer').$new(file, line); - if (self.$name()['$==']("Parser::Ruby18")) { + source_buffer = $$$($$('Source'), 'Buffer').$new(file, line); + if ($eqeq(self.$name(), "Parser::Ruby18")) { $writer = [string]; - $send(source_buffer, 'raw_source=', Opal.to_a($writer)); + $send(source_buffer, 'raw_source=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } else { $writer = [string]; - $send(source_buffer, 'source=', Opal.to_a($writer)); + $send(source_buffer, 'source=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return source_buffer; - }, $Base_setup_source_buffer$7.$$arity = 4); + }, 4); self.$private_class_method("setup_source_buffer"); self.$attr_reader("lexer"); self.$attr_reader("diagnostics"); @@ -23508,50 +20344,45 @@ Opal.modules["parser/base"] = function(Opal) { self.$attr_reader("pattern_variables"); self.$attr_reader("pattern_hash_keys"); - Opal.def(self, '$initialize', $Base_initialize$8 = function $$initialize(builder) { - var self = this, $writer = nil, $ret_or_1 = nil; + $def(self, '$initialize', function $$initialize(builder) { + var self = this, $writer = nil; - if (builder == null) { - builder = $$$($$$($$($nesting, 'Parser'), 'Builders'), 'Default').$new(); - }; - self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); - self.static_env = $$($nesting, 'StaticEnvironment').$new(); - self.context = $$($nesting, 'Context').$new(); - self.max_numparam_stack = $$($nesting, 'MaxNumparamStack').$new(); - self.current_arg_stack = $$($nesting, 'CurrentArgStack').$new(); - self.pattern_variables = $$($nesting, 'VariablesStack').$new(); - self.pattern_hash_keys = $$($nesting, 'VariablesStack').$new(); - self.lexer = $$($nesting, 'Lexer').$new(self.$version()); + if (builder == null) builder = $$$($$$($$('Parser'), 'Builders'), 'Default').$new();; + self.diagnostics = $$$($$('Diagnostic'), 'Engine').$new(); + self.static_env = $$('StaticEnvironment').$new(); + self.context = $$('Context').$new(); + self.max_numparam_stack = $$('MaxNumparamStack').$new(); + self.current_arg_stack = $$('CurrentArgStack').$new(); + self.pattern_variables = $$('VariablesStack').$new(); + self.pattern_hash_keys = $$('VariablesStack').$new(); + self.lexer = $$('Lexer').$new(self.$version()); $writer = [self.diagnostics]; - $send(self.lexer, 'diagnostics=', Opal.to_a($writer)); + $send(self.lexer, 'diagnostics=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [self.static_env]; - $send(self.lexer, 'static_env=', Opal.to_a($writer)); + $send(self.lexer, 'static_env=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [self.context]; - $send(self.lexer, 'context=', Opal.to_a($writer)); + $send(self.lexer, 'context=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.builder = builder; $writer = [self]; - $send(self.builder, 'parser=', Opal.to_a($writer)); + $send(self.builder, 'parser=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.last_token = nil; - if ($truthy((function() {if ($truthy(($ret_or_1 = $$$(self.$class(), 'Racc_debug_parser')))) { - return $$($nesting, 'ENV')['$[]']("RACC_DEBUG") - } else { - return $ret_or_1 - }; return nil; })())) { - self.yydebug = true}; + if (($truthy($$$(self.$class(), 'Racc_debug_parser')) && ($truthy($$('ENV')['$[]']("RACC_DEBUG"))))) { + self.yydebug = true + }; return self.$reset(); - }, $Base_initialize$8.$$arity = -1); + }, -1); - Opal.def(self, '$reset', $Base_reset$9 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; @@ -23563,243 +20394,232 @@ Opal.modules["parser/base"] = function(Opal) { self.pattern_variables.$reset(); self.pattern_hash_keys.$reset(); return self; - }, $Base_reset$9.$$arity = 0); + }, 0); - Opal.def(self, '$parse', $Base_parse$10 = function $$parse(source_buffer) { - var self = this, $writer = nil, $ret_or_2 = nil; + $def(self, '$parse', function $$parse(source_buffer) { + var self = this, $writer = nil, $ret_or_1 = nil; return (function() { try { $writer = [source_buffer]; - $send(self.lexer, 'source_buffer=', Opal.to_a($writer)); + $send(self.lexer, 'source_buffer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.source_buffer = source_buffer; - if ($truthy(($ret_or_2 = self.$do_parse()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self.$do_parse()))) { + return $ret_or_1 } else { return nil }; } finally { - ((self.source_buffer = nil), (($writer = [nil]), $send(self.lexer, 'source_buffer=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) + ((self.source_buffer = nil), (($writer = [nil]), $send(self.lexer, 'source_buffer=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) }; })() - }, $Base_parse$10.$$arity = 1); + }, 1); - Opal.def(self, '$parse_with_comments', $Base_parse_with_comments$11 = function $$parse_with_comments(source_buffer) { + $def(self, '$parse_with_comments', function $$parse_with_comments(source_buffer) { var self = this, $writer = nil; return (function() { try { $writer = [[]]; - $send(self.lexer, 'comments=', Opal.to_a($writer)); + $send(self.lexer, 'comments=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return [self.$parse(source_buffer), self.lexer.$comments()]; } finally { - (($writer = [nil]), $send(self.lexer, 'comments=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) + (($writer = [nil]), $send(self.lexer, 'comments=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) }; })() - }, $Base_parse_with_comments$11.$$arity = 1); + }, 1); - Opal.def(self, '$tokenize', $Base_tokenize$12 = function $$tokenize(source_buffer, recover) { + $def(self, '$tokenize', function $$tokenize(source_buffer, recover) { var self = this, $writer = nil, ast = nil; - if (recover == null) { - recover = false; - }; + if (recover == null) recover = false;; return (function() { try { $writer = [[]]; - $send(self.lexer, 'tokens=', Opal.to_a($writer)); + $send(self.lexer, 'tokens=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [[]]; - $send(self.lexer, 'comments=', Opal.to_a($writer)); + $send(self.lexer, 'comments=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; try { ast = self.$parse(source_buffer) } catch ($err) { - if (Opal.rescue($err, [$$$($$($nesting, 'Parser'), 'SyntaxError')])) { + if (Opal.rescue($err, [$$$($$('Parser'), 'SyntaxError')])) { try { - if ($truthy(recover['$!']())) { - self.$raise()} + if ($not(recover)) { + self.$raise() + } } finally { Opal.pop_exception(); } } else { throw $err; } };; return [ast, self.lexer.$comments(), self.lexer.$tokens()]; } finally { - ((($writer = [nil]), $send(self.lexer, 'tokens=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]), (($writer = [nil]), $send(self.lexer, 'comments=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) + ((($writer = [nil]), $send(self.lexer, 'tokens=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]), (($writer = [nil]), $send(self.lexer, 'comments=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) }; })(); - }, $Base_tokenize$12.$$arity = -2); + }, -2); self.$private(); - Opal.def(self, '$next_token', $Base_next_token$13 = function $$next_token() { + $def(self, '$next_token', function $$next_token() { var self = this, token = nil; token = self.lexer.$advance(); self.last_token = token; return token; - }, $Base_next_token$13.$$arity = 0); + }, 0); - Opal.def(self, '$check_kwarg_name', $Base_check_kwarg_name$14 = function $$check_kwarg_name(name_t) { - var self = this, $case = nil; + $def(self, '$check_kwarg_name', function $$check_kwarg_name(name_t) { + var self = this, $ret_or_1 = nil; - return (function() {$case = name_t['$[]'](0); - if (/^[a-z_]/['$===']($case)) {return nil} - else if (/^[A-Z]/['$===']($case)) {return self.$diagnostic("error", "argument_const", nil, name_t)} - else { return nil }})() - }, $Base_check_kwarg_name$14.$$arity = 1); + if ($eqeqeq(/^[a-z_]/, ($ret_or_1 = name_t['$[]'](0)))) { + return nil + } else if ($eqeqeq(/^[A-Z]/, $ret_or_1)) { + return self.$diagnostic("error", "argument_const", nil, name_t) + } else { + return nil + } + }, 1); - Opal.def(self, '$diagnostic', $Base_diagnostic$15 = function $$diagnostic(level, reason, arguments$, location_t, highlights_ts) { - var $a, $b, $$16, self = this, _ = nil, location = nil, highlights = nil; + $def(self, '$diagnostic', function $$diagnostic(level, reason, arguments$, location_t, highlights_ts) { + var $a, $b, self = this, _ = nil, location = nil, highlights = nil; - if (highlights_ts == null) { - highlights_ts = []; - }; - $b = location_t, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; - highlights = $send(highlights_ts, 'map', [], ($$16 = function(token){var self = $$16.$$s == null ? this : $$16.$$s, $c, $d, range = nil; + if (highlights_ts == null) highlights_ts = [];; + $b = location_t, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; + highlights = $send(highlights_ts, 'map', [], function $$2(token){var $c, $d, range = nil; - if (token == null) { - token = nil; - }; - $d = token, $c = Opal.to_ary($d), (_ = ($c[0] == null ? nil : $c[0])), (range = ($c[1] == null ? nil : $c[1])), $d; - return range;}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - self.diagnostics.$process($$($nesting, 'Diagnostic').$new(level, reason, arguments$, location, highlights)); - if (level['$==']("error")) { + if (token == null) token = nil;; + $d = token, $c = $to_ary($d), (_ = ($c[0] == null ? nil : $c[0])), (range = ($c[1] == null ? nil : $c[1])), $d; + return range;}, 1); + self.diagnostics.$process($$('Diagnostic').$new(level, reason, arguments$, location, highlights)); + if ($eqeq(level, "error")) { return self.$yyerror() } else { return nil }; - }, $Base_diagnostic$15.$$arity = -5); - return (Opal.def(self, '$on_error', $Base_on_error$17 = function $$on_error(error_token_id, error_value, value_stack) { + }, -5); + return $def(self, '$on_error', function $$on_error(error_token_id, error_value, value_stack) { var $a, $b, self = this, token_name = nil, _ = nil, location = nil; token_name = self.$token_to_str(error_token_id); - $b = error_value, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; - return self.diagnostics.$process($$($nesting, 'Diagnostic').$new("error", "unexpected_token", $hash2(["token"], {"token": token_name}), location)); - }, $Base_on_error$17.$$arity = 3), nil) && 'on_error'; - })($nesting[0], $$$($$($nesting, 'Racc'), 'Parser'), $nesting) + $b = error_value, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; + return self.diagnostics.$process($$('Diagnostic').$new("error", "unexpected_token", $hash2(["token"], {"token": token_name}), location)); + }, 3); + })($nesting[0], $$$($$('Racc'), 'Parser'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/rewriter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $const_set = Opal.const_set, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$new', '$process', '$include?', '$type', '$remove', '$wrap', '$insert_before', '$insert_after', '$replace', '$freeze', '$join', '$extend', '$warn_of_deprecation', '$class', '$warned_of_deprecation=', '$-']); + Opal.add_stubs('new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation=,-'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Rewriter'); - var $nesting = [self].concat($parent_nesting), $Rewriter_rewrite$1, $Rewriter_assignment$ques$2, $Rewriter_remove$3, $Rewriter_wrap$4, $Rewriter_insert_before$5, $Rewriter_insert_after$6, $Rewriter_replace$7, $Rewriter_initialize$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.source_rewriter = nil; + $proto.source_rewriter = nil; - Opal.def(self, '$rewrite', $Rewriter_rewrite$1 = function $$rewrite(source_buffer, ast) { + $def(self, '$rewrite', function $$rewrite(source_buffer, ast) { var self = this; - self.source_rewriter = $$$($$($nesting, 'Source'), 'Rewriter').$new(source_buffer); + self.source_rewriter = $$$($$('Source'), 'Rewriter').$new(source_buffer); self.$process(ast); return self.source_rewriter.$process(); - }, $Rewriter_rewrite$1.$$arity = 2); + }, 2); - Opal.def(self, '$assignment?', $Rewriter_assignment$ques$2 = function(node) { - var self = this; - + $def(self, '$assignment?', function $Rewriter_assignment$ques$1(node) { + return ["lvasgn", "ivasgn", "gvasgn", "cvasgn", "casgn"]['$include?'](node.$type()) - }, $Rewriter_assignment$ques$2.$$arity = 1); + }, 1); - Opal.def(self, '$remove', $Rewriter_remove$3 = function $$remove(range) { + $def(self, '$remove', function $$remove(range) { var self = this; return self.source_rewriter.$remove(range) - }, $Rewriter_remove$3.$$arity = 1); + }, 1); - Opal.def(self, '$wrap', $Rewriter_wrap$4 = function $$wrap(range, before, after) { + $def(self, '$wrap', function $$wrap(range, before, after) { var self = this; return self.source_rewriter.$wrap(range, before, after) - }, $Rewriter_wrap$4.$$arity = 3); + }, 3); - Opal.def(self, '$insert_before', $Rewriter_insert_before$5 = function $$insert_before(range, content) { + $def(self, '$insert_before', function $$insert_before(range, content) { var self = this; return self.source_rewriter.$insert_before(range, content) - }, $Rewriter_insert_before$5.$$arity = 2); + }, 2); - Opal.def(self, '$insert_after', $Rewriter_insert_after$6 = function $$insert_after(range, content) { + $def(self, '$insert_after', function $$insert_after(range, content) { var self = this; return self.source_rewriter.$insert_after(range, content) - }, $Rewriter_insert_after$6.$$arity = 2); + }, 2); - Opal.def(self, '$replace', $Rewriter_replace$7 = function $$replace(range, content) { + $def(self, '$replace', function $$replace(range, content) { var self = this; return self.source_rewriter.$replace(range, content) - }, $Rewriter_replace$7.$$arity = 2); - Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Rewriter is deprecated.", "Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()); - self.$extend($$($nesting, 'Deprecation')); - return (Opal.def(self, '$initialize', $Rewriter_initialize$8 = function $$initialize($a) { - var $post_args, $iter = $Rewriter_initialize$8.$$p, $yield = $iter || nil, self = this, $writer = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $Rewriter_initialize$8.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + }, 2); + $const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Rewriter is deprecated.", "Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()); + self.$extend($$('Deprecation')); + return $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this, $writer = nil; + + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; self.$class().$warn_of_deprecation(); $writer = [true]; - $send($$$($$($nesting, 'Source'), 'Rewriter'), 'warned_of_deprecation=', Opal.to_a($writer)); + $send($$$($$('Source'), 'Rewriter'), 'warned_of_deprecation=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send2(self, $find_super(self, 'initialize', $Rewriter_initialize$8, false, true), 'initialize', $zuper, $iter); - }, $Rewriter_initialize$8.$$arity = -1), nil) && 'initialize'; - })($nesting[0], $$$($$$($$($nesting, 'Parser'), 'AST'), 'Processor'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + }, -1); + })($nesting[0], $$$($$$($$('Parser'), 'AST'), 'Processor'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/tree_rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $hash = Opal.hash; +Opal.modules["parser/tree_rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $hash = Opal.hash, $def = Opal.def; - Opal.add_stubs(['$new', '$process', '$include?', '$type', '$remove', '$wrap', '$insert_before', '$insert_after', '$replace']); + Opal.add_stubs('new,process,include?,type,remove,wrap,insert_before,insert_after,replace'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'TreeRewriter'); - var $nesting = [self].concat($parent_nesting), $TreeRewriter_rewrite$1, $TreeRewriter_assignment$ques$2, $TreeRewriter_remove$3, $TreeRewriter_wrap$4, $TreeRewriter_insert_before$5, $TreeRewriter_insert_after$6, $TreeRewriter_replace$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.source_rewriter = nil; + $proto.source_rewriter = nil; - Opal.def(self, '$rewrite', $TreeRewriter_rewrite$1 = function $$rewrite(source_buffer, ast, $kwargs) { + $def(self, '$rewrite', function $$rewrite(source_buffer, ast, $kwargs) { var policy, self = this; @@ -23811,59 +20631,58 @@ Opal.modules["parser/tree_rewriter"] = function(Opal) { }; policy = Opal.kwrestargs($kwargs, {});; - self.source_rewriter = $$$($$$($$($nesting, 'Parser'), 'Source'), 'TreeRewriter').$new(source_buffer, Opal.to_hash(policy)); + self.source_rewriter = $$$($$$($$('Parser'), 'Source'), 'TreeRewriter').$new(source_buffer, Opal.to_hash(policy)); self.$process(ast); return self.source_rewriter.$process(); - }, $TreeRewriter_rewrite$1.$$arity = -3); + }, -3); - Opal.def(self, '$assignment?', $TreeRewriter_assignment$ques$2 = function(node) { - var self = this; - + $def(self, '$assignment?', function $TreeRewriter_assignment$ques$1(node) { + return ["lvasgn", "ivasgn", "gvasgn", "cvasgn", "casgn"]['$include?'](node.$type()) - }, $TreeRewriter_assignment$ques$2.$$arity = 1); + }, 1); - Opal.def(self, '$remove', $TreeRewriter_remove$3 = function $$remove(range) { + $def(self, '$remove', function $$remove(range) { var self = this; return self.source_rewriter.$remove(range) - }, $TreeRewriter_remove$3.$$arity = 1); + }, 1); - Opal.def(self, '$wrap', $TreeRewriter_wrap$4 = function $$wrap(range, before, after) { + $def(self, '$wrap', function $$wrap(range, before, after) { var self = this; return self.source_rewriter.$wrap(range, before, after) - }, $TreeRewriter_wrap$4.$$arity = 3); + }, 3); - Opal.def(self, '$insert_before', $TreeRewriter_insert_before$5 = function $$insert_before(range, content) { + $def(self, '$insert_before', function $$insert_before(range, content) { var self = this; return self.source_rewriter.$insert_before(range, content) - }, $TreeRewriter_insert_before$5.$$arity = 2); + }, 2); - Opal.def(self, '$insert_after', $TreeRewriter_insert_after$6 = function $$insert_after(range, content) { + $def(self, '$insert_after', function $$insert_after(range, content) { var self = this; return self.source_rewriter.$insert_after(range, content) - }, $TreeRewriter_insert_after$6.$$arity = 2); - return (Opal.def(self, '$replace', $TreeRewriter_replace$7 = function $$replace(range, content) { + }, 2); + return $def(self, '$replace', function $$replace(range, content) { var self = this; return self.source_rewriter.$replace(range, content) - }, $TreeRewriter_replace$7.$$arity = 2), nil) && 'replace'; - })($nesting[0], $$$($$$($$($nesting, 'Parser'), 'AST'), 'Processor'), $nesting) + }, 2); + })($nesting[0], $$$($$$($$('Parser'), 'AST'), 'Processor'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $module = Opal.module; +Opal.modules["parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $module = Opal.module; - Opal.add_stubs(['$=~', '$require', '$raise']); + Opal.add_stubs('=~,require,raise'); - if ($truthy($$($nesting, 'RUBY_VERSION')['$=~'](/^1\.[89]\./))) { + if ($truthy($$('RUBY_VERSION')['$=~'](/^1\.[89]\./))) { self.$require("parser/version"); - self.$raise($$($nesting, 'LoadError'), "" + "parser v" + ($$$($$($nesting, 'Parser'), 'VERSION')) + " cannot run on Ruby " + ($$($nesting, 'RUBY_VERSION')) + ".\n" + "Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n");}; + self.$raise($$('LoadError'), "parser v" + ($$$($$('Parser'), 'VERSION')) + " cannot run on Ruby " + ($$('RUBY_VERSION')) + ".\n" + "Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n"); + }; self.$require("set"); self.$require("racc/parser"); self.$require("ast"); @@ -23876,21 +20695,19 @@ Opal.modules["parser"] = function(Opal) { self.$require("parser/version"); self.$require("parser/messages"); self.$require("parser/deprecation"); - (function($base, $parent_nesting) { + (function($base) { var self = $module($base, 'AST'); - var $nesting = [self].concat($parent_nesting); - + self.$require("parser/ast/node"); self.$require("parser/ast/processor"); return self.$require("parser/meta"); - })($nesting[0], $nesting); - (function($base, $parent_nesting) { + })($nesting[0]); + (function($base) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); - + self.$require("parser/source/buffer"); self.$require("parser/source/range"); @@ -23916,7 +20733,7 @@ Opal.modules["parser"] = function(Opal) { self.$require("parser/source/map/rescue_body"); self.$require("parser/source/map/heredoc"); return self.$require("parser/source/map/objc_kwarg"); - })($nesting[0], $nesting); + })($nesting[0]); self.$require("parser/syntax_error"); self.$require("parser/clobbering_error"); self.$require("parser/diagnostic"); @@ -23926,13 +20743,12 @@ Opal.modules["parser"] = function(Opal) { self.$require("parser/lexer/literal"); self.$require("parser/lexer/stack_state"); self.$require("parser/lexer/dedenter"); - (function($base, $parent_nesting) { + (function($base) { var self = $module($base, 'Builders'); - var $nesting = [self].concat($parent_nesting); - + return self.$require("parser/builders/default") - })($nesting[0], $nesting); + })($nesting[0]); self.$require("parser/context"); self.$require("parser/max_numparam_stack"); self.$require("parser/current_arg_stack"); @@ -23943,63 +20759,47 @@ Opal.modules["parser"] = function(Opal) { })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/ruby30"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $hash = Opal.hash, $slice = Opal.slice; - - Opal.add_stubs(['$require', '$!', '$include?', '$[]', '$end_with?', '$diagnostic', '$extend_static', '$push', '$cmdarg', '$cond', '$unextend', '$pop', '$children', '$=~', '$declared?', '$static_env', '$in_dynamic_block?', '$expression', '$loc', '$has_ordinary_params?', '$max_numparam_stack', '$dup', '$stack', '$reverse_each', '$>', '$declare', '$register', '$to_i', '$new', '$each', '$split', '$empty?', '$[]=', '$-', '$+', '$compstmt', '$<<', '$preexe', '$nil?', '$begin_body', '$state=', '$alias', '$gvar', '$back_ref', '$undef_method', '$condition_mod', '$loop_mod', '$rescue_body', '$postexe', '$multi_assign', '$assign', '$array', '$op_assign', '$index', '$call_method', '$const_op_assignable', '$const_fetch', '$logical_op', '$not_op', '$command_start=', '$in_kwarg', '$in_kwarg=', '$match_pattern', '$match_pattern_p', '$local_push', '$in_def=', '$in_block=', '$in_block', '$block', '$keyword_cmd', '$multi_lhs', '$begin', '$splat', '$concat', '$assignable', '$index_asgn', '$==', '$attr_asgn', '$const_global', '$const', '$symbol_internal', '$range_inclusive', '$range_exclusive', '$binary_op', '$unary_op', '$match_op', '$ternary', '$endless_method_name', '$def_endless_method', '$local_pop', '$in_def', '$def_endless_singleton', '$associate', '$declared_forward_args?', '$forwarded_args', '$block_pass', '$begin_keyword', '$condition', '$loop', '$case', '$case_match', '$for', '$in_class=', '$def_class', '$in_class', '$def_sclass', '$def_module', '$def_method', '$def_singleton', '$context', '$in_lambda', '$arg', '$restarg', '$size', '$procarg0', '$args', '$has_ordinary_params!', '$set', '$shadowarg', '$extend_dynamic', '$in_lambda=', '$call_lambda', '$has_numparams?', '$numargs', '$top', '$any?', '$when', '$in_pattern', '$if_guard', '$unless_guard', '$match_with_trailing_comma', '$array_pattern', '$find_pattern', '$hash_pattern', '$match_as', '$match_alt', '$const_pattern', '$match_rest', '$match_pair', '$match_label', '$match_nil_pattern', '$accessible', '$match_var', '$ident', '$pin', '$string_compose', '$dedent_string', '$dedent_level', '$string', '$character', '$xstring_compose', '$regexp_options', '$regexp_compose', '$words_compose', '$word', '$symbols_compose', '$string_internal', '$ivar', '$cvar', '$symbol', '$symbol_compose', '$respond_to?', '$negate', '$unary_num', '$integer', '$float', '$rational', '$complex', '$nil', '$self', '$true', '$false', '$__FILE__', '$__LINE__', '$__ENCODING__', '$nth_ref', '$forward_arg', '$declare_forward_args', '$forward_only_args', '$check_kwarg_name', '$kwoptarg', '$kwarg', '$kwnilarg', '$kwrestarg', '$optarg', '$blockarg', '$pair', '$pair_keyword', '$pair_quoted', '$kwsplat', '$yyerrok']); +Opal.modules["parser/ruby31"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $not = Opal.not, $hash2 = Opal.hash2, $send = Opal.send, $rb_gt = Opal.rb_gt, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $hash = Opal.hash, $const_set = Opal.const_set, $to_ary = Opal.to_ary, $eqeq = Opal.eqeq, $slice = Opal.slice; + + Opal.add_stubs('require,end_with?,[],!,include?,diagnostic,extend_static,push,cmdarg,cond,unextend,pop,children,in_dynamic_block?,declared?,static_env,=~,expression,loc,has_ordinary_params?,max_numparam_stack,dup,stack,reverse_each,>,declare,register,to_i,new,each,split,empty?,[]=,-,+,compstmt,<<,preexe,nil?,begin_body,state=,alias,gvar,back_ref,undef_method,condition_mod,loop_mod,rescue_body,postexe,multi_assign,assign,array,op_assign,index,call_method,const_op_assignable,const_fetch,endless_method_name,def_endless_method,local_pop,in_def,in_def=,def_endless_singleton,logical_op,not_op,command_start=,in_kwarg,in_kwarg=,match_pattern,match_pattern_p,local_push,in_argdef=,in_block=,in_block,block,keyword_cmd,multi_lhs,begin,splat,concat,assignable,index_asgn,==,attr_asgn,const_global,const,symbol_internal,range_inclusive,range_exclusive,binary_op,unary_op,match_op,in_defined=,ternary,associate,declared_forward_args?,forwarded_args,block_pass,declared_anonymous_blockarg?,begin_keyword,condition,loop,case,case_match,for,in_class=,def_class,in_class,def_sclass,def_module,def_method,def_singleton,context,in_lambda,arg,restarg,size,procarg0,args,has_ordinary_params!,set,shadowarg,extend_dynamic,in_lambda=,call_lambda,has_numparams?,numargs,top,any?,when,in_pattern,if_guard,unless_guard,match_with_trailing_comma,array_pattern,find_pattern,hash_pattern,match_as,match_alt,const_pattern,match_rest,match_pair,match_label,match_nil_pattern,accessible,match_var,ident,pin,string_compose,dedent_string,dedent_level,string,character,xstring_compose,regexp_options,regexp_compose,words_compose,word,symbols_compose,string_internal,ivar,cvar,symbol,symbol_compose,respond_to?,negate,unary_num,integer,float,rational,complex,nil,self,true,false,__FILE__,__LINE__,__ENCODING__,nth_ref,declare_forward_args,forward_arg,check_kwarg_name,kwoptarg,kwarg,kwnilarg,kwrestarg,optarg,blockarg,declare_anonymous_blockarg,pair,pair_keyword,pair_label,pair_quoted,kwsplat,yyerrok'); self.$require("racc/parser.rb"); self.$require("parser"); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Ruby30'); + var self = $klass($base, $super, 'Ruby31'); - var $nesting = [self].concat($parent_nesting), $Ruby30_version$1, $Ruby30_default_encoding$2, $Ruby30_endless_method_name$3, $Ruby30_local_push$4, $Ruby30_local_pop$5, $Ruby30_try_declare_numparam$6, $Ruby30$8, $Ruby30$10, $Ruby30$12, $Ruby30$14, $Ruby30__reduce_1$16, $Ruby30__reduce_2$17, $Ruby30__reduce_3$18, $Ruby30__reduce_4$19, $Ruby30__reduce_5$20, $Ruby30__reduce_6$21, $Ruby30__reduce_7$22, $Ruby30__reduce_9$23, $Ruby30__reduce_10$24, $Ruby30__reduce_11$25, $Ruby30__reduce_12$26, $Ruby30__reduce_13$27, $Ruby30__reduce_14$28, $Ruby30__reduce_15$29, $Ruby30__reduce_16$30, $Ruby30__reduce_18$31, $Ruby30__reduce_19$32, $Ruby30__reduce_20$33, $Ruby30__reduce_21$34, $Ruby30__reduce_22$35, $Ruby30__reduce_23$36, $Ruby30__reduce_24$37, $Ruby30__reduce_25$38, $Ruby30__reduce_26$39, $Ruby30__reduce_27$40, $Ruby30__reduce_28$41, $Ruby30__reduce_29$42, $Ruby30__reduce_30$43, $Ruby30__reduce_32$44, $Ruby30__reduce_33$45, $Ruby30__reduce_34$46, $Ruby30__reduce_35$47, $Ruby30__reduce_37$48, $Ruby30__reduce_38$49, $Ruby30__reduce_39$50, $Ruby30__reduce_40$51, $Ruby30__reduce_41$52, $Ruby30__reduce_42$53, $Ruby30__reduce_43$54, $Ruby30__reduce_44$55, $Ruby30__reduce_46$56, $Ruby30__reduce_49$57, $Ruby30__reduce_50$58, $Ruby30__reduce_51$59, $Ruby30__reduce_52$60, $Ruby30__reduce_53$61, $Ruby30__reduce_54$62, $Ruby30__reduce_55$63, $Ruby30__reduce_56$64, $Ruby30__reduce_59$65, $Ruby30__reduce_60$66, $Ruby30__reduce_61$67, $Ruby30__reduce_62$68, $Ruby30__reduce_63$69, $Ruby30__reduce_64$70, $Ruby30__reduce_68$71, $Ruby30__reduce_69$72, $Ruby30__reduce_70$73, $Ruby30__reduce_72$74, $Ruby30__reduce_73$75, $Ruby30__reduce_74$76, $Ruby30__reduce_75$77, $Ruby30__reduce_76$78, $Ruby30__reduce_77$79, $Ruby30__reduce_78$80, $Ruby30__reduce_79$81, $Ruby30__reduce_80$82, $Ruby30__reduce_81$83, $Ruby30__reduce_82$84, $Ruby30__reduce_83$85, $Ruby30__reduce_84$86, $Ruby30__reduce_85$87, $Ruby30__reduce_86$88, $Ruby30__reduce_88$89, $Ruby30__reduce_89$90, $Ruby30__reduce_90$91, $Ruby30__reduce_91$92, $Ruby30__reduce_92$93, $Ruby30__reduce_93$94, $Ruby30__reduce_94$95, $Ruby30__reduce_95$96, $Ruby30__reduce_96$97, $Ruby30__reduce_98$98, $Ruby30__reduce_99$99, $Ruby30__reduce_100$100, $Ruby30__reduce_101$101, $Ruby30__reduce_102$102, $Ruby30__reduce_103$103, $Ruby30__reduce_104$104, $Ruby30__reduce_105$105, $Ruby30__reduce_106$106, $Ruby30__reduce_107$107, $Ruby30__reduce_108$108, $Ruby30__reduce_109$109, $Ruby30__reduce_110$110, $Ruby30__reduce_111$111, $Ruby30__reduce_112$112, $Ruby30__reduce_113$113, $Ruby30__reduce_114$114, $Ruby30__reduce_115$115, $Ruby30__reduce_116$116, $Ruby30__reduce_117$117, $Ruby30__reduce_118$118, $Ruby30__reduce_119$119, $Ruby30__reduce_120$120, $Ruby30__reduce_121$121, $Ruby30__reduce_123$122, $Ruby30__reduce_124$123, $Ruby30__reduce_125$124, $Ruby30__reduce_131$125, $Ruby30__reduce_133$126, $Ruby30__reduce_134$127, $Ruby30__reduce_135$128, $Ruby30__reduce_207$129, $Ruby30__reduce_208$130, $Ruby30__reduce_209$131, $Ruby30__reduce_210$132, $Ruby30__reduce_211$133, $Ruby30__reduce_212$134, $Ruby30__reduce_213$135, $Ruby30__reduce_214$136, $Ruby30__reduce_215$137, $Ruby30__reduce_216$138, $Ruby30__reduce_217$139, $Ruby30__reduce_218$140, $Ruby30__reduce_219$141, $Ruby30__reduce_220$142, $Ruby30__reduce_221$143, $Ruby30__reduce_222$144, $Ruby30__reduce_223$145, $Ruby30__reduce_224$146, $Ruby30__reduce_225$147, $Ruby30__reduce_226$148, $Ruby30__reduce_227$149, $Ruby30__reduce_228$150, $Ruby30__reduce_229$151, $Ruby30__reduce_230$152, $Ruby30__reduce_231$153, $Ruby30__reduce_232$154, $Ruby30__reduce_233$155, $Ruby30__reduce_234$156, $Ruby30__reduce_236$157, $Ruby30__reduce_237$158, $Ruby30__reduce_238$159, $Ruby30__reduce_239$160, $Ruby30__reduce_240$161, $Ruby30__reduce_241$162, $Ruby30__reduce_242$163, $Ruby30__reduce_243$164, $Ruby30__reduce_244$165, $Ruby30__reduce_245$166, $Ruby30__reduce_246$167, $Ruby30__reduce_247$168, $Ruby30__reduce_248$169, $Ruby30__reduce_249$170, $Ruby30__reduce_250$171, $Ruby30__reduce_251$172, $Ruby30__reduce_252$173, $Ruby30__reduce_258$174, $Ruby30__reduce_259$175, $Ruby30__reduce_263$176, $Ruby30__reduce_264$177, $Ruby30__reduce_266$178, $Ruby30__reduce_267$179, $Ruby30__reduce_268$180, $Ruby30__reduce_269$181, $Ruby30__reduce_270$182, $Ruby30__reduce_272$183, $Ruby30__reduce_275$184, $Ruby30__reduce_276$185, $Ruby30__reduce_277$186, $Ruby30__reduce_278$187, $Ruby30__reduce_279$188, $Ruby30__reduce_280$189, $Ruby30__reduce_281$190, $Ruby30__reduce_282$191, $Ruby30__reduce_283$192, $Ruby30__reduce_284$193, $Ruby30__reduce_285$194, $Ruby30__reduce_286$195, $Ruby30__reduce_287$196, $Ruby30__reduce_288$197, $Ruby30__reduce_289$198, $Ruby30__reduce_290$199, $Ruby30__reduce_291$200, $Ruby30__reduce_293$201, $Ruby30__reduce_294$202, $Ruby30__reduce_295$203, $Ruby30__reduce_306$204, $Ruby30__reduce_307$205, $Ruby30__reduce_308$206, $Ruby30__reduce_309$207, $Ruby30__reduce_310$208, $Ruby30__reduce_311$209, $Ruby30__reduce_312$210, $Ruby30__reduce_313$211, $Ruby30__reduce_314$212, $Ruby30__reduce_315$213, $Ruby30__reduce_316$214, $Ruby30__reduce_317$215, $Ruby30__reduce_318$216, $Ruby30__reduce_319$217, $Ruby30__reduce_320$218, $Ruby30__reduce_321$219, $Ruby30__reduce_322$220, $Ruby30__reduce_323$221, $Ruby30__reduce_324$222, $Ruby30__reduce_325$223, $Ruby30__reduce_327$224, $Ruby30__reduce_329$225, $Ruby30__reduce_330$226, $Ruby30__reduce_331$227, $Ruby30__reduce_332$228, $Ruby30__reduce_333$229, $Ruby30__reduce_334$230, $Ruby30__reduce_335$231, $Ruby30__reduce_336$232, $Ruby30__reduce_337$233, $Ruby30__reduce_338$234, $Ruby30__reduce_339$235, $Ruby30__reduce_340$236, $Ruby30__reduce_341$237, $Ruby30__reduce_342$238, $Ruby30__reduce_343$239, $Ruby30__reduce_344$240, $Ruby30__reduce_345$241, $Ruby30__reduce_346$242, $Ruby30__reduce_347$243, $Ruby30__reduce_348$244, $Ruby30__reduce_350$245, $Ruby30__reduce_351$246, $Ruby30__reduce_352$247, $Ruby30__reduce_353$248, $Ruby30__reduce_356$249, $Ruby30__reduce_360$250, $Ruby30__reduce_362$251, $Ruby30__reduce_365$252, $Ruby30__reduce_366$253, $Ruby30__reduce_367$254, $Ruby30__reduce_368$255, $Ruby30__reduce_370$256, $Ruby30__reduce_371$257, $Ruby30__reduce_372$258, $Ruby30__reduce_373$259, $Ruby30__reduce_374$260, $Ruby30__reduce_375$261, $Ruby30__reduce_378$262, $Ruby30__reduce_379$263, $Ruby30__reduce_380$264, $Ruby30__reduce_381$265, $Ruby30__reduce_382$266, $Ruby30__reduce_383$267, $Ruby30__reduce_385$268, $Ruby30__reduce_386$269, $Ruby30__reduce_387$270, $Ruby30__reduce_388$271, $Ruby30__reduce_389$272, $Ruby30__reduce_391$273, $Ruby30__reduce_392$274, $Ruby30__reduce_393$275, $Ruby30__reduce_394$276, $Ruby30__reduce_395$277, $Ruby30__reduce_396$278, $Ruby30__reduce_397$279, $Ruby30__reduce_398$280, $Ruby30__reduce_400$281, $Ruby30__reduce_401$282, $Ruby30__reduce_402$283, $Ruby30__reduce_403$284, $Ruby30__reduce_404$285, $Ruby30__reduce_405$286, $Ruby30__reduce_406$287, $Ruby30__reduce_407$288, $Ruby30__reduce_408$289, $Ruby30__reduce_410$290, $Ruby30__reduce_411$291, $Ruby30__reduce_412$292, $Ruby30__reduce_413$293, $Ruby30__reduce_414$294, $Ruby30__reduce_415$295, $Ruby30__reduce_416$296, $Ruby30__reduce_417$297, $Ruby30__reduce_418$298, $Ruby30__reduce_419$299, $Ruby30__reduce_420$300, $Ruby30__reduce_421$301, $Ruby30__reduce_422$302, $Ruby30__reduce_423$303, $Ruby30__reduce_424$304, $Ruby30__reduce_425$305, $Ruby30__reduce_426$306, $Ruby30__reduce_427$307, $Ruby30__reduce_428$308, $Ruby30__reduce_429$309, $Ruby30__reduce_430$310, $Ruby30__reduce_431$311, $Ruby30__reduce_432$312, $Ruby30__reduce_433$313, $Ruby30__reduce_434$314, $Ruby30__reduce_435$315, $Ruby30__reduce_436$316, $Ruby30__reduce_437$317, $Ruby30__reduce_438$318, $Ruby30__reduce_439$319, $Ruby30__reduce_440$320, $Ruby30__reduce_441$321, $Ruby30__reduce_442$322, $Ruby30__reduce_443$323, $Ruby30__reduce_444$324, $Ruby30__reduce_446$325, $Ruby30__reduce_447$326, $Ruby30__reduce_448$327, $Ruby30__reduce_449$328, $Ruby30__reduce_451$329, $Ruby30__reduce_452$330, $Ruby30__reduce_453$331, $Ruby30__reduce_455$332, $Ruby30__reduce_456$333, $Ruby30__reduce_457$334, $Ruby30__reduce_458$335, $Ruby30__reduce_459$336, $Ruby30__reduce_461$337, $Ruby30__reduce_463$338, $Ruby30__reduce_465$339, $Ruby30__reduce_466$340, $Ruby30__reduce_468$341, $Ruby30__reduce_469$342, $Ruby30__reduce_470$343, $Ruby30__reduce_471$344, $Ruby30__reduce_472$345, $Ruby30__reduce_473$346, $Ruby30__reduce_474$347, $Ruby30__reduce_475$348, $Ruby30__reduce_476$349, $Ruby30__reduce_477$350, $Ruby30__reduce_478$351, $Ruby30__reduce_479$352, $Ruby30__reduce_480$353, $Ruby30__reduce_481$354, $Ruby30__reduce_482$355, $Ruby30__reduce_483$356, $Ruby30__reduce_484$357, $Ruby30__reduce_485$358, $Ruby30__reduce_486$359, $Ruby30__reduce_487$360, $Ruby30__reduce_488$361, $Ruby30__reduce_489$362, $Ruby30__reduce_490$363, $Ruby30__reduce_492$364, $Ruby30__reduce_493$365, $Ruby30__reduce_494$366, $Ruby30__reduce_495$367, $Ruby30__reduce_496$368, $Ruby30__reduce_497$369, $Ruby30__reduce_498$370, $Ruby30__reduce_499$371, $Ruby30__reduce_500$372, $Ruby30__reduce_502$373, $Ruby30__reduce_503$374, $Ruby30__reduce_504$375, $Ruby30__reduce_505$376, $Ruby30__reduce_506$377, $Ruby30__reduce_507$378, $Ruby30__reduce_508$379, $Ruby30__reduce_509$380, $Ruby30__reduce_510$381, $Ruby30__reduce_511$382, $Ruby30__reduce_512$383, $Ruby30__reduce_513$384, $Ruby30__reduce_514$385, $Ruby30__reduce_518$386, $Ruby30__reduce_519$387, $Ruby30__reduce_520$388, $Ruby30__reduce_521$389, $Ruby30__reduce_525$390, $Ruby30__reduce_526$391, $Ruby30__reduce_535$392, $Ruby30__reduce_537$393, $Ruby30__reduce_538$394, $Ruby30__reduce_539$395, $Ruby30__reduce_540$396, $Ruby30__reduce_541$397, $Ruby30__reduce_542$398, $Ruby30__reduce_543$399, $Ruby30__reduce_544$400, $Ruby30__reduce_547$401, $Ruby30__reduce_549$402, $Ruby30__reduce_553$403, $Ruby30__reduce_554$404, $Ruby30__reduce_555$405, $Ruby30__reduce_556$406, $Ruby30__reduce_557$407, $Ruby30__reduce_558$408, $Ruby30__reduce_559$409, $Ruby30__reduce_560$410, $Ruby30__reduce_561$411, $Ruby30__reduce_562$412, $Ruby30__reduce_563$413, $Ruby30__reduce_564$414, $Ruby30__reduce_565$415, $Ruby30__reduce_566$416, $Ruby30__reduce_567$417, $Ruby30__reduce_568$418, $Ruby30__reduce_569$419, $Ruby30__reduce_570$420, $Ruby30__reduce_571$421, $Ruby30__reduce_572$422, $Ruby30__reduce_573$423, $Ruby30__reduce_574$424, $Ruby30__reduce_575$425, $Ruby30__reduce_576$426, $Ruby30__reduce_577$427, $Ruby30__reduce_578$428, $Ruby30__reduce_579$429, $Ruby30__reduce_580$430, $Ruby30__reduce_581$431, $Ruby30__reduce_582$432, $Ruby30__reduce_583$433, $Ruby30__reduce_584$434, $Ruby30__reduce_585$435, $Ruby30__reduce_586$436, $Ruby30__reduce_587$437, $Ruby30__reduce_591$438, $Ruby30__reduce_592$439, $Ruby30__reduce_593$440, $Ruby30__reduce_594$441, $Ruby30__reduce_595$442, $Ruby30__reduce_596$443, $Ruby30__reduce_597$444, $Ruby30__reduce_598$445, $Ruby30__reduce_599$446, $Ruby30__reduce_600$447, $Ruby30__reduce_601$448, $Ruby30__reduce_602$449, $Ruby30__reduce_603$450, $Ruby30__reduce_604$451, $Ruby30__reduce_605$452, $Ruby30__reduce_606$453, $Ruby30__reduce_607$454, $Ruby30__reduce_608$455, $Ruby30__reduce_609$456, $Ruby30__reduce_610$457, $Ruby30__reduce_611$458, $Ruby30__reduce_612$459, $Ruby30__reduce_613$460, $Ruby30__reduce_614$461, $Ruby30__reduce_615$462, $Ruby30__reduce_616$463, $Ruby30__reduce_617$464, $Ruby30__reduce_618$465, $Ruby30__reduce_619$466, $Ruby30__reduce_621$467, $Ruby30__reduce_622$468, $Ruby30__reduce_623$469, $Ruby30__reduce_624$470, $Ruby30__reduce_626$471, $Ruby30__reduce_627$472, $Ruby30__reduce_628$473, $Ruby30__reduce_629$474, $Ruby30__reduce_630$475, $Ruby30__reduce_631$476, $Ruby30__reduce_632$477, $Ruby30__reduce_633$478, $Ruby30__reduce_634$479, $Ruby30__reduce_635$480, $Ruby30__reduce_636$481, $Ruby30__reduce_637$482, $Ruby30__reduce_638$483, $Ruby30__reduce_639$484, $Ruby30__reduce_640$485, $Ruby30__reduce_641$486, $Ruby30__reduce_642$487, $Ruby30__reduce_643$488, $Ruby30__reduce_644$489, $Ruby30__reduce_645$490, $Ruby30__reduce_646$491, $Ruby30__reduce_647$492, $Ruby30__reduce_648$493, $Ruby30__reduce_649$494, $Ruby30__reduce_650$495, $Ruby30__reduce_651$496, $Ruby30__reduce_652$497, $Ruby30__reduce_653$498, $Ruby30__reduce_655$499, $Ruby30__reduce_656$500, $Ruby30__reduce_657$501, $Ruby30__reduce_658$502, $Ruby30__reduce_659$503, $Ruby30__reduce_660$504, $Ruby30__reduce_661$505, $Ruby30__reduce_662$506, $Ruby30__reduce_663$507, $Ruby30__reduce_664$508, $Ruby30__reduce_665$509, $Ruby30__reduce_666$510, $Ruby30__reduce_667$511, $Ruby30__reduce_668$512, $Ruby30__reduce_669$513, $Ruby30__reduce_672$514, $Ruby30__reduce_673$515, $Ruby30__reduce_674$516, $Ruby30__reduce_675$517, $Ruby30__reduce_676$518, $Ruby30__reduce_677$519, $Ruby30__reduce_678$520, $Ruby30__reduce_679$521, $Ruby30__reduce_680$522, $Ruby30__reduce_683$523, $Ruby30__reduce_684$524, $Ruby30__reduce_687$525, $Ruby30__reduce_688$526, $Ruby30__reduce_689$527, $Ruby30__reduce_691$528, $Ruby30__reduce_692$529, $Ruby30__reduce_694$530, $Ruby30__reduce_695$531, $Ruby30__reduce_696$532, $Ruby30__reduce_697$533, $Ruby30__reduce_698$534, $Ruby30__reduce_699$535, $Ruby30__reduce_712$536, $Ruby30__reduce_713$537, $Ruby30__reduce_718$538, $Ruby30__reduce_719$539, $Ruby30__reduce_720$540, $Ruby30__reduce_724$541, $Ruby30__reduce_728$542, $Ruby30__reduce_none$543, clist = nil, racc_action_table = nil, arr = nil, idx = nil, racc_action_check = nil, racc_action_pointer = nil, racc_action_default = nil, racc_goto_table = nil, racc_goto_check = nil, racc_goto_pointer = nil, racc_goto_default = nil, racc_reduce_table = nil, racc_reduce_n = nil, racc_shift_n = nil, racc_token_table = nil, racc_nt_base = nil, racc_use_result_var = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), clist = nil, racc_action_table = nil, arr = nil, idx = nil, racc_action_check = nil, racc_action_pointer = nil, racc_action_default = nil, racc_goto_table = nil, racc_goto_check = nil, racc_goto_pointer = nil, racc_goto_default = nil, racc_reduce_table = nil, racc_reduce_n = nil, racc_shift_n = nil, racc_token_table = nil, racc_nt_base = nil, racc_use_result_var = nil, $proto = self.$$prototype; - self.$$prototype.static_env = self.$$prototype.lexer = self.$$prototype.max_numparam_stack = self.$$prototype.context = self.$$prototype.current_arg_stack = self.$$prototype.builder = self.$$prototype.pattern_variables = self.$$prototype.last_token = self.$$prototype.pattern_hash_keys = nil; + $proto.static_env = $proto.lexer = $proto.max_numparam_stack = $proto.context = $proto.current_arg_stack = $proto.builder = $proto.pattern_variables = $proto.last_token = $proto.pattern_hash_keys = nil; - Opal.def(self, '$version', $Ruby30_version$1 = function $$version() { - var self = this; - - return 30 - }, $Ruby30_version$1.$$arity = 0); + $def(self, '$version', function $$version() { + + return 31 + }, 0); - Opal.def(self, '$default_encoding', $Ruby30_default_encoding$2 = function $$default_encoding() { - var self = this; - - return $$$($$($nesting, 'Encoding'), 'UTF_8') - }, $Ruby30_default_encoding$2.$$arity = 0); + $def(self, '$default_encoding', function $$default_encoding() { + + return $$$($$('Encoding'), 'UTF_8') + }, 0); - Opal.def(self, '$endless_method_name', $Ruby30_endless_method_name$3 = function $$endless_method_name(name_t) { - var self = this, $ret_or_1 = nil; + $def(self, '$endless_method_name', function $$endless_method_name(name_t) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_1 = ["===", "==", "!=", "<=", ">="]['$include?'](name_t['$[]'](0))['$!']()))) { - return name_t['$[]'](0)['$end_with?']("=") - } else { - return $ret_or_1 - }; return nil; })())) { + if (($not(["===", "==", "!=", "<=", ">="]['$include?'](name_t['$[]'](0))) && ($truthy(name_t['$[]'](0)['$end_with?']("="))))) { return self.$diagnostic("error", "endless_setter", nil, name_t) } else { return nil } - }, $Ruby30_endless_method_name$3.$$arity = 1); + }, 1); - Opal.def(self, '$local_push', $Ruby30_local_push$4 = function $$local_push() { + $def(self, '$local_push', function $$local_push() { var self = this; @@ -24007,9 +20807,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.lexer.$cmdarg().$push(false); self.lexer.$cond().$push(false); return self.max_numparam_stack.$push($hash2(["static"], {"static": true})); - }, $Ruby30_local_push$4.$$arity = 0); + }, 0); - Opal.def(self, '$local_pop', $Ruby30_local_pop$5 = function $$local_pop() { + $def(self, '$local_pop', function $$local_pop() { var self = this; @@ -24017,35 +20817,26 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.lexer.$cmdarg().$pop(); self.lexer.$cond().$pop(); return self.max_numparam_stack.$pop(); - }, $Ruby30_local_pop$5.$$arity = 0); + }, 0); - Opal.def(self, '$try_declare_numparam', $Ruby30_try_declare_numparam$6 = function $$try_declare_numparam(node) { - var $$7, self = this, name = nil, $ret_or_2 = nil, $ret_or_3 = nil, location = nil, raw_max_numparam_stack = nil; + $def(self, '$try_declare_numparam', function $$try_declare_numparam(node) { + var self = this, name = nil, location = nil, raw_max_numparam_stack = nil; name = node.$children()['$[]'](0); - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = name['$=~'](/^_[1-9]$/)))) { - return self.$static_env()['$declared?'](name)['$!']() - } else { - return $ret_or_3 - }; return nil; })()))) { - return self.context['$in_dynamic_block?']() - } else { - return $ret_or_2 - }; return nil; })())) { + if ((($truthy(name['$=~'](/^_[1-9]$/)) && ($not(self.$static_env()['$declared?'](name)))) && ($truthy(self.context['$in_dynamic_block?']())))) { location = node.$loc().$expression(); if ($truthy(self.$max_numparam_stack()['$has_ordinary_params?']())) { - self.$diagnostic("error", "ordinary_param_defined", nil, [nil, location])}; + self.$diagnostic("error", "ordinary_param_defined", nil, [nil, location]) + }; raw_max_numparam_stack = self.$max_numparam_stack().$stack().$dup(); raw_max_numparam_stack.$pop(); - (function(){var $brk = Opal.new_brk(); try {return $send(raw_max_numparam_stack, 'reverse_each', [], ($$7 = function(outer_scope){var self = $$7.$$s == null ? this : $$7.$$s, outer_scope_has_numparams = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(raw_max_numparam_stack, 'reverse_each', [], function $$1(outer_scope){var self = $$1.$$s == null ? this : $$1.$$s, outer_scope_has_numparams = nil; - if (outer_scope == null) { - outer_scope = nil; - }; + if (outer_scope == null) outer_scope = nil;; if ($truthy(outer_scope['$[]']("static"))) { Opal.brk(nil, $brk) @@ -24057,7 +20848,7 @@ Opal.modules["parser/ruby30"] = function(Opal) { } else { return nil }; - };}, $$7.$$s = self, $$7.$$brk = $brk, $$7.$$arity = 1, $$7)) + };}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); self.$static_env().$declare(name); self.$max_numparam_stack().$register(name['$[]'](1).$to_i()); @@ -24065,131 +20856,107 @@ Opal.modules["parser/ruby30"] = function(Opal) { } else { return false }; - }, $Ruby30_try_declare_numparam$6.$$arity = 1); - clist = ["-707,680,617,1083,870,965,-120,-707,-707,-707,221,222,805,-707,-707", "-606,-707,104,105,870,231,-113,-606,-116,-707,-707,660,1150,658,-716", "866,-119,-118,1153,-114,1078,-707,-707,617,-707,-707,-707,-707,-707", "-112,-119,232,617,617,920,1124,-118,426,1077,624,-117,870,428,427,810", "-117,232,810,-115,-113,-501,-707,-707,-707,-707,-707,-707,-707,-707", "-707,-707,-707,-707,-707,-707,-606,-112,-707,-707,-707,1084,685,-707", "-703,-117,-707,-120,659,-707,657,106,107,-704,-707,232,-707,229,-707", "-707,232,-707,-707,-707,-707,-707,-602,-707,-707,-707,964,-111,126,-602", "-602,-602,126,125,-602,-602,-602,125,-602,-707,-704,-106,-707,-707,-107", "-707,-602,-707,-602,-602,-602,-113,-110,-109,-707,-105,-113,-116,-602", "-602,617,-602,-602,-602,-602,-602,-116,-114,126,-115,-117,954,-120,125", "-112,-119,-108,126,126,-112,-119,-118,125,125,-106,-104,-118,232,-602", "-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-103", "617,-602,-602,-602,-106,-602,-602,301,852,-602,352,126,-602,-602,479", "-602,125,-602,-120,-602,-716,-602,-602,-120,-602,-602,-602,-602,-602", "-314,-602,1158,-602,301,221,222,-314,-314,-314,920,-703,624,-314,-314", "-106,-314,-602,-106,1159,-602,-602,-602,-602,-314,-602,-716,-602,221", "222,-106,232,-602,949,920,-602,-314,-314,-114,-314,-314,-314,-314,-314", "-120,788,126,221,222,1043,-107,125,-116,-114,366,-115,-117,-116,-114", "301,-115,-117,232,789,1043,300,-314,-314,-314,-314,-314,-314,-314,-314", "-314,-314,-314,-314,-314,-314,301,1043,-314,-314,-314,-611,684,-314", "351,126,-314,300,-611,-314,125,-105,104,105,-314,126,-314,-611,-314", "-314,125,-314,-314,-314,-314,-314,-728,-314,-707,-314,290,-703,-107", "865,679,-707,-707,-707,232,296,-707,-707,-707,-314,-707,126,-314,-314", "1171,-314,125,-314,-707,-707,-707,-707,-707,232,-314,1172,296,-118,300", "-108,-707,-707,-611,-707,-707,-707,-707,-707,-107,-612,1176,-107,-98", "-105,645,-605,-612,645,774,300,1180,645,-605,-107,-84,-612,106,107,-115", "-115,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707", "-707,366,555,-707,-707,-707,645,867,-707,1182,-105,-707,630,-105,-707", "-707,631,-707,1184,-707,555,-707,-108,-707,-707,-105,-707,-707,-707", "-707,-707,-612,-707,-707,-707,647,646,-605,647,646,643,645,647,646,645", "836,1186,645,-707,-110,645,-707,-707,-707,-707,1137,-707,-728,-707,1137", "-314,-119,-108,-707,-614,-108,-116,-314,-314,-314,647,646,-314,-314", "-314,227,-314,-108,1186,-119,838,630,547,-604,-314,895,-314,-314,-314", "876,-604,545,974,-701,872,765,-314,-314,873,-314,-314,-314,-314,-314", "223,647,646,643,647,646,643,647,646,648,647,646,656,852,-613,126,126", "1119,745,-113,125,125,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314", "-314,-314,-314,-314,228,-613,-314,-314,-314,-602,868,-314,-604,1200", "-314,-114,-602,-314,-314,645,-314,-701,-314,1176,-314,-602,-314,-314", "-105,-314,-314,-314,-314,-314,126,-314,220,-314,630,125,-114,-112,895", "582,-701,579,578,577,587,580,680,-314,-103,-607,-314,-314,-314,-314", "590,-314,-607,-314,-704,-707,-112,679,-314,1122,1123,-118,-707,-707", "-707,-703,-602,609,-707,-707,611,-707,585,221,222,647,646,652,-610,-707", "-707,595,594,598,597,-610,949,920,591,-108,90,-707,-707,232,-707,-707", "-707,-707,-707,219,-614,-117,91,582,-106,579,578,577,587,580,-607,645", "92,218,232,135,-115,232,590,1043,1174,-707,-707,-707,-707,-707,-707", "-707,-707,-707,-707,-707,-707,-707,-707,1212,229,-707,-707,-707,585", "685,-707,-610,1186,-707,645,-104,-707,595,594,598,597,-707,1186,-707", "591,-707,-707,-113,-707,-707,-707,-707,-707,-314,-707,-707,-707,890", "891,1186,-314,-314,-314,647,646,661,-314,-314,-608,-314,-707,-111,122", "-707,-707,-608,-107,-314,-707,-609,-602,598,597,-120,576,-707,-609,-602", "-116,-314,-314,1176,-314,-314,-314,-314,-314,1186,647,646,650,582,227", "579,578,577,587,580,-599,627,129,130,131,132,133,-599,590,232,625,-314", "-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-608", "733,-314,-314,-314,585,684,-314,221,222,-314,-609,-602,-314,595,594", "598,597,-314,232,-314,591,-314,-314,232,-314,-314,-314,-314,-314,-599", "-314,609,-314,228,611,254,-599,-599,-599,-599,254,-599,-599,-599,227", "-599,-314,254,254,-314,-314,294,-109,-599,-314,-599,-599,-599,232,609", "576,-314,611,-98,-118,-599,-599,748,-599,-599,-599,-599,-599,232,-315", "561,227,609,-305,227,608,-315,759,226,765,-305,294,766,232,768,-315", "232,224,771,-305,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599", "-599,-599,-599,228,774,-599,-599,-599,775,-599,-599,227,254,-599,777", "779,-599,-599,1152,-599,689,-599,790,-599,791,-599,-599,635,-599,-599", "-599,-599,-599,-315,-599,228,-599,-305,228,129,130,131,132,133,251,-314", "793,296,253,252,-599,795,-314,-599,-599,-599,-599,-704,-599,227,-599", "-314,796,232,798,-599,672,678,-599,323,81,82,83,11,65,670,228,801,71", "72,677,232,806,75,-700,73,74,76,33,34,79,80,129,130,131,132,133,84,31", "30,114,113,115,116,807,582,21,579,578,577,-314,580,10,51,325,12,118", "117,119,108,64,110,109,111,228,112,120,121,-315,104,105,47,48,46,-314", "-315,-599,811,227,271,272,-314,781,-599,-315,557,-704,673,-700,669,-314", "785,-599,43,477,668,36,-287,835,66,67,227,839,68,840,38,666,665,1157", "50,-288,-700,662,254,853,270,269,1155,22,513,637,513,232,102,90,93,94", "870,95,97,96,98,986,-315,871,629,91,101,628,-314,894,-599,590,228,85", "251,92,106,107,253,252,44,45,323,81,82,83,11,65,870,897,418,71,72,899", "290,228,75,-707,73,74,76,33,34,79,80,624,905,907,909,591,84,31,30,114", "113,115,116,527,529,21,529,1004,759,232,613,10,51,325,12,118,117,119", "108,64,110,109,111,612,112,120,121,227,104,105,47,48,46,227,1152,-707", "296,-349,296,759,633,254,-707,635,-349,232,920,-703,602,635,-620,-707", "43,-349,941,36,942,232,66,67,227,562,68,920,38,951,952,476,50,582,-707", "579,578,577,254,580,477,22,232,558,552,232,102,90,93,94,296,95,97,96", "98,986,228,366,962,91,101,366,228,232,-707,590,-349,85,232,92,106,107", "-289,305,44,45,323,81,82,83,11,65,232,548,973,71,72,541,540,228,75,719", "73,74,76,33,34,79,80,246,232,-83,135,591,84,31,30,114,113,115,116,232", "232,21,1000,1004,1001,1002,1005,10,51,325,12,118,117,119,108,64,110", "109,111,529,112,120,121,527,104,105,47,48,46,254,258,259,260,261,271", "272,266,267,262,263,525,247,248,907,1011,264,265,232,43,3,245,36,587", "759,66,67,513,1029,68,-287,38,251,590,257,50,253,252,1033,249,250,270", "269,255,22,256,232,1036,1038,102,90,93,94,774,95,97,96,98,789,1041,1043", "1043,91,101,232,268,598,597,1051,1053,85,591,92,106,107,1062,1063,44", "45,323,81,82,83,11,65,1068,830,831,71,72,832,120,121,75,1069,73,74,76", "33,34,79,80,129,130,131,132,133,84,31,30,114,113,115,116,1070,-290,21", "232,232,232,1074,674,10,51,325,12,118,117,119,108,64,110,109,111,231", "112,120,121,232,104,105,47,48,46,254,258,259,260,261,271,272,266,267", "262,263,232,247,248,232,870,264,265,1082,43,481,480,36,232,1091,66,67", "774,1094,68,1097,38,251,1099,257,50,253,252,1101,249,250,270,269,255", "22,256,232,1103,478,102,90,93,94,1118,95,97,96,98,1119,1128,429,870", "91,101,1138,268,1140,-260,,,85,,92,106,107,,,44,45,323,81,82,83,11,65", ",,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,", ",21,,,,,945,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,247,248", ",,264,265,,43,,,36,587,,66,67,,,68,,38,251,590,257,50,253,252,,249,250", "270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,268,598", "597,,,85,591,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,674,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45", "323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,917,10,51,325,12,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267", "262,263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253", "252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,1133,21,579,578", "577,,580,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,247,248,,", "264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269", "255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,232,268,,,,,85,,92", "106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79", "80,,,,,,84,31,30,114,113,115,116,,1133,21,579,578,577,,580,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45", "323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262", "263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252", ",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45", "323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262", "263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252", ",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,327", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45", "7,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,,10,51,9,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262", "263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252", ",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,582,21,579,578,577", ",580,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,582,,579,578,577,,580,,781,,582,,579,578,577,,580,785,,43,", ",327,,,66,67,,254,68,,38,,,,50,,781,,582,,579,578,577,22,580,785,781", ",102,90,93,94,,95,97,96,98,,,251,,91,101,253,252,,249,250,,85,,92,106", "107,,781,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79", "80,,,,,,84,31,30,114,113,115,116,,,21,,,254,,,10,51,325,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261", "271,272,251,,262,263,253,252,,249,250,264,265,,43,,,36,,,66,67,,,68", ",38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,582,,579,578,577,85,580,92,106,107,,,44,45", "323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,781,,,,,84,31", "30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271,272,", ",-729,-729,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252", ",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74", "76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,-729", "-729,-729,-729,271,272,,,-729,-729,,,,,,264,265,,43,,,327,,,66,67,,", "68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83", "11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115", "116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729,,,,,,264", "265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255", "22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107", ",,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,", ",84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271", "272,,,-729,-729,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253", "252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,,,,85,,92,106,107,,,44,45,7,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,9,12", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258", "259,260,261,271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36,,", "66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81", "82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,-729", "-729,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250", "270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85", ",92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34", "79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261", "271,272,266,,262,263,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257", "50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,", "10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47", "48,46,254,,,,,,,,,,,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257", "50,253,252,,249,250,,,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,", "73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323", "81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114", "113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729", ",,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250", "270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85", ",92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34", "79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261", "271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36,,,66,67,,,68,", "38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94,", "95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729,,,,,,264", "265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255", "22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107", ",,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,", ",84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,47,48,46,254,,,,,,,,,,,,,,,,264,265", ",43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,,,255,22,256", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,254,,,,,,,,,,,,,,,,264,265,,237,,,243,,,66,67,,,68,,,251,,257", "50,253,252,,249,250,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,", ",,,,,85,,92,106,107,-270,,44,45,,,,-270,-270,-270,,,-270,-270,-270,", "-270,254,,,,,,,-270,-270,-270,,,,,,,264,265,,-270,-270,,-270,-270,-270", "-270,-270,,,,,,251,,511,460,253,252,512,249,250,,,,,,169,170,,166,148", "149,150,157,154,156,,,151,152,-270,,,171,172,158,159,-270,,,,,296,-270", ",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,-270", "-270,174,,,,,,,,,,,,,-270,,,-270,,,,,-270,81,82,83,11,65,,-270,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,", "10,51,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,254,,,,,,,,,,,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50", "253,252,,249,250,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81", "82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84", "31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", "317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33", "34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,", ",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-432,,44,45,,,,-432,-432,-432", ",,-432,-432,-432,,-432,,,,,,,,-432,-432,-432,-432,,,,,,,,,-432,-432", ",-432,-432,-432,-432,-432,,,,,,,,,,,,,,,,,,,,,,,-432,-432,-432,-432", "-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,,,-432,-432,-432,", ",-432,,296,-432,,,-432,-432,,-432,,-432,,-432,,-432,-432,,-432,-432", "-432,-432,-432,-321,-432,-432,-432,,,,-321,-321,-321,,,-321,-321,-321", ",-321,-432,,,-432,-432,,-432,-321,-432,-321,-321,,,,,-432,,,,-321,-321", ",-321,-321,-321,-321,-321,,,,,,,,,,,,,,,,,,,,,,,-321,-321,-321,-321", "-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,,,-321,-321,-321,", ",-321,,305,-321,,,-321,-321,,-321,,-321,,-321,,-321,-321,,-321,-321", "-321,-321,-321,,-321,,-321,,,,,,,,,,,,,,-321,,,-321,-321,,-321,,-321", "81,82,83,,65,,-321,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317", "112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,", ",68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34", "79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,", "237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,", ",118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,", ",,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242", ",,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,,,,85,,92,106,107,-306,,44,45,,,,-306,-306,-306,,,-306", "-306,-306,,-306,,,,,,,,-306,,-306,-306,-306,,,,114,113,115,116,-306", "-306,,-306,-306,-306,-306,-306,,,,,118,117,119,,,,,,,,,,,104,105,,,348", "-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,,102,90,93,94,,95,97,96,98,,,", "-306,91,101,-306,-306,-306,-306,,-306,85,-306,92,106,107,,-306,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,21,,,,,,10,51,,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,", ",50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", "317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,314,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,", ",91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345", "79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,", "237,,,243,,,66,67,,,68,,,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,", ",,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45", ",75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51", ",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,", ",,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,126,,,,,125,85,,92,106,107,,,44,45,81", "82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,21,,,,,,10,51,9,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,", ",50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,418,85", ",92,106,107,,,44,45,81,82,83,,65,,,,71,72,,,,75,,73,74,76,33,34,79,80", ",,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79", "80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,", "243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,", ",,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34", "79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,", "10,51,,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21", ",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,232,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,", "51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,", ",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,", "244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,", "51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,", ",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,", "244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,", "51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46", ",,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,312,,50,,,318,,,,,,242", ",,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,742,,,,50,,", ",,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50", ",,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,", ",,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,515,,75,,73,74,76", "33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,", ",,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,", ",,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,", ",,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,232,,,81,82,83,85,65", "92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,", "10,51,,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,", ",,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80", ",,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,", "243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33", "34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,561,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45", ",75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,", ",,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,", ",,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,", ",,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80", ",,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64", "110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,742,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,515,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,", ",,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45", ",75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,", "51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,", ",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244", ",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244", ",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,312,,50,,", "318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85", "65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317", "112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,", ",68,,742,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345", "79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72,,,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51", ",12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,", ",,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,", ",,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,", ",,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50", ",,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85", "65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",844,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,", ",,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33", "34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76", "344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,", ",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,", ",,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,", "102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244", ",,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47", "48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318", ",,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314", ",,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,", ",66,67,,,68,,,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,", ",,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,", ",,,,237,,,243,,,66,67,,,68,,742,,,,50,,,318,,,,,,242,,,,,102,315,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-270,,44,45,,,,-270", "-270,-270,,,-270,-270,-270,,-270,,,,,,,,-270,-270,-270,-270,,,,,,,,", "-270,-270,,-270,-270,-270,-270,-270,,,,,,,,,,,,,,,,,,,,,,,-270,-270", "-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,,,-270,-270", "-270,,,-270,,296,-270,,,-270,-270,,-270,,-270,,-270,,-270,-270,,-270", "-270,-270,-270,-270,,-270,-270,-270,,,,,,,,,,,,,,-270,,,-270,-270,,-270", ",-270,81,82,83,,65,,-270,,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,,,,85,,92,106,107,-708,,44,45,,,,-708,-708,-708,,,-708,-708,-708", ",-708,,,,,,,,-708,-708,-708,-708,-708,,,,,,,,-708,-708,,-708,-708,-708", "-708,-708,,,,,,,,,,,,,,,,,,,,,,,-708,-708,-708,-708,-708,-708,-708,-708", "-708,-708,-708,-708,-708,-708,,,-708,-708,-708,,,-708,,,-708,,,-708", "-708,,-708,,-708,,-708,,-708,-708,,-708,-708,-708,-708,-708,,-708,-708", "-708,,,,,,,,,,,,,,-708,,,-708,-708,-708,-708,,-708,-709,-708,,,,,-708", "-709,-709,-709,,,-709,-709,-709,,-709,,,,,,,,-709,-709,-709,-709,-709", ",,,,,,,-709,-709,,-709,-709,-709,-709,-709,,,,,,,,,,,,,,,,,,,,,,,-709", "-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,,,-709", "-709,-709,,,-709,,,-709,,,-709,-709,,-709,,-709,,-709,,-709,-709,,-709", "-709,-709,-709,-709,,-709,-709,-709,,,,,,,,,,,,,,-709,,,-709,-709,-709", "-709,,-709,,-709,,81,82,83,-709,65,,,,71,72,,,,75,,73,74,76,344,345", "79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,", ",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,", ",,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,", "102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79", "80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64", "110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95", "97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71", "72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,", ",,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,418,85,,92,106,107,,,44", "45,81,82,83,,65,,,,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,", ",66,67,,,68,,,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,", ",,,,237,,,243,,,66,67,,,68,,742,,312,,50,,,318,,,,,,242,,,,,102,315", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,", ",,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46", ",,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,,,,242,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244", ",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50", ",,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31", "30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,1105,,,243,,,66,67", ",,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,393,,,36,,,66,67,,,68", ",38,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347", "114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,", ",,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85", "65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,", ",,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113", "115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,", ",,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106", "107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,331,,,,,,,,,,,", ",,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106", "107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,,,,,,", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", ",,348,,,,,,,,,,,,,,,,,,,,1105,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244", ",,,,,,340,,,118,117,119,398,64,110,109,399,,112,120,121,,104,105,,,348", ",,,,,,,,,,,,,,,,405,,,400,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", ",,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244", ",,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,348", ",,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,", "75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,", ",,,340,,,118,117,119,398,64,110,109,399,,112,120,121,,104,105,,,348", ",,,,,,,,,,,,,,,,,,,400,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,", "75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,", ",,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,348", ",,,,,,,,,,,,,,,,,,,336,,,243,,,66,67,,,68,,,582,,579,578,577,587,580", ",,,,,,,,590,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,350,,585,85,,92", "106,107,81,82,83,,65,598,597,,71,72,591,,,75,,73,74,76,344,345,79,80", ",,,,,84,339,347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,243", ",,66,67,,,68,,,582,,579,578,577,587,580,,,,,,,,,590,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,543,,585,85,,92,106,107,81,82,83,,65,598,597", ",71,72,591,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,,,348,,,,,,,,,,,,,,,,,,,,1111,,,243,,,66,67,,,68,,,,,,,,,,,,,,,", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,185,196", "186,209,182,202,192,191,212,213,207,190,189,184,210,214,215,194,183", "197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,", "180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169,170,,166,148,149", "150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162,,147", "168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,,,,,,,,,,101", "185,196,186,209,182,202,192,191,212,213,207,190,189,184,210,214,215", "194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199", ",,,,,180,187,178,179,175,176,177,138,140,137,,139,,,,,,,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163", "162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,", ",,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189,184", "210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193", "181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169", "170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,", ",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174", "102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190", "189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198", "208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,", ",,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167", "146,,,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213", "207,190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206", "284,283,285,282,181,200,199,,,,,,180,187,178,179,279,280,281,277,140", "110,109,278,,112,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152", ",,,171,172,158,159,,,,,,289,,,,,,,,163,162,,147,168,165,164,173,160", "161,155,153,145,167,146,,,174,114,113,115,116,,,,,,,,,,,,,118,117,119", "719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,", ",,721,,,703,,,585,701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,", "707,708,,118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348", ",,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,595,594,598,597", ",,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116", ",,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579,578,577,587", "580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,", ",,,,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114", "113,115,116,,,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579", "578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585", "701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117,119", "719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,", ",,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,,,720,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708", ",118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590", ",,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,885,,,,,598,597,,,,591,,,", "720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92", "106,107,,,707,708,,118,117,119,719,,,582,722,579,578,577,587,580,104", "105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,,,598", "597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,", "92,106,107,,,707,708,185,196,186,209,182,202,192,191,212,213,207,190", "189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198", "208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,", ",,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167", "146,,,174,114,113,115,116,,,582,,579,578,577,587,580,,,,118,117,119", "719,,590,,722,986,,,,,104,105,,,348,590,,,,,,,,,585,,,,,,,,,,721,598", "597,703,,,591,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94,,95", "97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118", "117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,", ",,,,,,,,,,721,,,703,,,585,701,,,702,,885,,,595,594,598,597,,,,591,,", ",720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,232,114,113,115,116,,85", ",92,106,107,,,707,708,,,118,117,119,719,,,582,722,579,578,577,587,580", "104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,595", "594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114", "113,115,116,,,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579", "578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585", "701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117,119", "719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,", ",,721,,,703,,,585,701,,,702,,999,,,,,598,597,,,,591,,,,720,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707", "708,,118,117,119,719,,,,722,986,,,,,104,105,,,348,590,,,,,,,,,,,,,,", ",,,,721,,,703,,,,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94", ",95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,", "118,117,119,719,,,,722,986,,,,,104,105,,,348,590,,,,,,,,,,,,,,,,,,,721", ",,703,,,,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94,,95,97", "96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117", "119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,", ",,,,,,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,,,720,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707", "708,,118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,", "590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,", ",720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92", "106,107,,,707,708,,118,117,119,719,,,,722,,,,,,104,105,,,348,,,,,,,", "114,113,115,116,,,,,,,,,721,,,703,118,117,119,701,,,702,,885,,,,,104", "105,,,348,,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,", "92,106,107,,,707,708,582,,579,578,577,587,580,,,,,102,90,93,94,590,95", "97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,585,641,,,,118", "117,119,,595,594,598,597,,,,591,,104,105,,,348,114,113,115,116,,,,,", ",,,,,,,118,117,119,,,,,,,,,,,104,105,,,348,,,,,,,,,,,,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,,,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,846,460,,,847,,85,,92,106,107,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,", ",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,814,460,174", ",815,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172", "158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153", "145,167,146,456,460,174,,457,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165", "164,173,160,161,155,153,145,167,146,463,467,174,,462,,,,,,,,169,170", ",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,", ",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,816,467", "174,,817,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171", "172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155", "153,145,167,146,755,467,174,,756,,,,,,,,169,170,,166,148,149,150,157", "154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168", "165,164,173,160,161,155,153,145,167,146,690,460,174,,691,,,,,,,,169", "170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296", ",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,1190", "467,174,,1189,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152", ",,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160", "161,155,153,145,167,146,819,467,174,,820,,,,,,,,169,170,,166,148,149", "150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162", ",147,168,165,164,173,160,161,155,153,145,167,146,690,460,174,,691,,", ",,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159", ",,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167", "146,692,467,174,,693,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151", "152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173", "160,161,155,153,145,167,146,752,460,174,,753,,,,,,,,169,170,,166,148", "149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163", "162,,147,168,165,164,173,160,161,155,153,145,167,146,511,460,174,,512", ",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145", "167,146,1193,460,174,,1194,,,,,,,,169,170,,166,148,149,150,157,154,156", ",,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164", "173,160,161,155,153,145,167,146,692,467,174,,693,,,,,,,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,", ",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,1195,467,174", ",1196,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172", "158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153", "145,167,146,849,467,174,,848,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165", "164,173,160,161,155,153,145,167,146,,582,174,579,578,577,587,580,,582", ",579,578,577,587,580,590,,,,,,,,590,,,,,,,,,,,,,,585,,,,,,,,585,595", "594,598,597,,,,591,595,594,598,597,,,,591"]; - racc_action_table = (arr = $$$('::', 'Array').$new(28007, nil)); + }, 1); + clist = ["-320,600,620,-119,1214,-121,-118,-320,-320,-320,221,222,1124,-320,-320", "-624,-320,239,620,-123,620,925,-624,-110,-320,-732,237,428,-124,311", "122,-122,430,429,717,311,-320,-320,620,-320,-320,-320,-320,-320,-116", "-117,-124,620,620,-116,1001,828,718,627,892,925,627,126,240,-732,-123", "833,125,-117,240,240,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320", "-320,-320,-320,-320,-624,-123,-320,-320,-320,-124,687,-320,-119,-110", "-320,-121,-120,-320,1125,240,-720,135,-320,306,-320,-511,-320,-320,240", "-320,-320,-320,-320,-320,-320,-320,-110,-320,-112,-109,310,-320,-320", "-320,126,-120,310,-320,-320,125,-320,-320,-114,-110,-320,-320,-110,-113", "-320,-320,126,-115,126,990,-113,125,-320,125,-110,-122,-320,-320,-122", "-320,-320,-320,-320,-320,-118,126,126,-719,-107,1000,125,125,-116,-117", "-124,126,126,-116,-117,-124,125,125,-108,221,222,218,-320,-320,-320", "-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,221,222,-320", "-320,-320,311,687,-320,-719,-123,-320,-111,661,-320,-123,648,-119,925", "-320,-121,-320,-119,-320,-320,-121,-320,-320,-320,-320,-320,233,-320", "-723,-320,-628,-720,-629,221,222,-723,-723,-723,104,105,-723,-723,-723", "-320,-723,-120,-320,-320,-102,-320,-120,-320,-723,-723,-723,-723,-723", "663,-320,924,-88,-122,219,-112,-723,-723,522,-723,-723,-723,-723,-723", "-122,240,660,650,649,-122,-118,-111,-109,220,-744,-118,311,648,233,223", "310,-116,240,-117,1063,300,-723,-723,-723,-723,-723,-723,-723,-723,-723", "-723,-723,-723,-723,-723,233,682,-723,-723,-723,648,921,-723,106,107", "-723,104,105,-723,-723,662,-723,-124,-723,126,-723,-112,-723,-723,125", "-723,-723,-723,-723,-723,361,-723,-723,-723,-744,683,-719,-111,-109", "648,306,650,649,646,648,362,648,-723,-110,648,-723,-723,-723,-723,240", "-723,-744,-723,800,-320,-119,-112,-723,310,-112,-120,-320,-320,-320", "650,649,-320,-320,-320,892,-320,-112,-111,-109,859,-111,-109,-112,-320", "833,-320,-320,-320,875,106,107,919,-111,-109,-121,-320,-320,431,-320", "-320,-320,-320,-320,650,649,646,949,471,650,649,650,649,655,650,649", "653,920,1035,861,633,1063,233,-732,634,948,-320,-320,-320,-320,-320", "-320,-320,-320,-320,-320,-320,-320,-320,-320,240,-629,-320,-320,-320", "648,922,-320,-118,-635,-320,-119,-625,-320,-320,648,-320,-617,-320,-625", "-320,510,-320,-320,-617,-320,-320,-320,-320,-320,683,-320,682,-320,507", "506,-121,-118,-744,491,648,488,487,486,496,489,521,-320,-108,-623,-320", "-320,-320,-320,499,-320,-623,-320,126,-723,-117,612,-320,125,614,-122", "-723,-723,-723,650,649,651,-723,-723,633,-723,494,-625,960,650,649,664", "-617,-723,-723,504,503,507,506,-121,633,-119,500,523,960,-723,-723,524", "-723,-723,-723,-723,-723,239,650,649,659,491,-321,488,487,486,496,489", "-623,-321,600,491,240,488,487,486,499,489,-321,-723,-723,-723,-723,-723", "-723,-723,-723,-723,-723,-723,-723,-723,-723,558,-628,-723,-723,-723", "494,688,-723,570,126,-723,648,572,-723,125,710,507,506,-723,574,-723", "500,-723,-723,-114,-723,-723,-723,-723,-723,-614,-723,-723,-723,-321", "126,-123,-614,-614,-614,125,135,-614,-614,-614,-614,-614,-723,-107,-87", "-723,-723,-614,-723,-614,-723,-614,-614,-614,931,-116,485,-723,240,927", "-120,-614,-614,928,-614,-614,-614,-614,-614,585,650,649,646,586,-311", "227,-620,-621,227,950,951,-311,304,-620,-621,304,612,593,237,611,-311", "-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614", "-614,227,-614,-614,-614,227,-614,-614,592,315,-614,240,1188,-614,-614", "233,-614,590,-614,126,-614,638,-614,-614,125,-614,-614,-614,-614,-614", "-115,-614,-617,-614,-311,228,-620,-621,228,-617,-617,-617,-124,233,-617", "-617,-617,-614,-617,306,-614,-614,-614,-614,597,-614,-617,-614,-617", "-617,-617,612,-614,603,614,-614,228,264,-617,-617,228,-617,-617,-617", "-617,-617,606,227,240,227,615,-356,-619,-622,675,616,636,574,-356,-619", "-622,612,627,673,614,638,420,-356,-617,-617,-617,-617,-617,-617,-617", "-617,-617,-617,-617,-617,-617,-617,631,754,-617,-617,-617,227,-617,-617", "1149,1150,-617,499,630,-617,-617,632,-617,875,-617,640,-617,628,-617", "-617,665,-617,-617,-617,-617,-617,228,-617,228,-617,-356,-619,-622,668", "227,669,954,240,958,957,1197,1188,959,-617,-293,500,-617,-617,-617,-617", "638,-617,671,-617,672,-723,676,1056,-617,240,-109,-617,-723,-723,-723", "496,228,680,-723,-723,-320,-723,-118,956,264,499,681,-320,306,-723,-723", "694,-720,985,892,695,-320,114,113,115,116,-723,-723,240,-723,-723,-723", "-723,-723,228,221,222,697,118,117,119,261,700,507,506,263,262,701,500", "703,264,104,105,221,222,358,-723,-723,-723,-723,-723,-723,-723,-723", "-723,-723,-723,-723,-723,-723,-320,705,-723,-723,-723,-385,688,-723", "227,719,-723,720,261,-723,227,1164,263,262,-723,724,-723,226,-723,-723", "1162,-723,-723,-723,-723,-723,224,-723,-723,-723,726,102,90,93,94,732", "95,97,96,98,754,985,892,-723,91,101,-723,-723,90,-111,499,-723,85,733", "92,106,107,264,-723,264,91,-120,333,81,82,83,11,65,264,228,92,71,72", "264,240,228,75,-723,73,74,76,35,36,79,80,788,240,240,500,240,84,33,32", "114,113,115,116,-102,803,23,1056,240,606,281,282,10,53,335,12,118,117", "119,108,64,110,109,111,814,112,120,121,-320,104,105,49,50,48,-321,-320", "-723,819,-626,240,-720,-321,821,-723,-320,-626,280,279,-719,824,-321", "829,-723,45,-626,830,38,834,858,66,67,227,862,68,863,40,-294,876,602", "52,491,-723,488,487,486,558,489,520,24,558,888,892,910,102,90,93,94", "913,95,97,96,98,914,-320,240,917,91,101,240,-321,926,-723,943,-626,85", "944,92,106,107,945,962,46,47,333,81,82,83,11,65,964,300,970,71,72,972", "974,228,75,-716,73,74,76,35,36,79,80,572,574,496,814,240,84,33,32,114", "113,115,116,499,1159,23,488,487,486,306,489,10,53,335,12,118,117,119", "108,64,110,109,111,306,112,120,121,227,104,105,49,50,48,-627,519,-614", "507,506,814,264,-627,500,-614,520,892,987,988,-716,240,-627,240,-614", "45,998,240,38,-295,240,66,67,1009,1013,68,1159,40,488,487,486,52,489", "-716,-293,491,1017,488,487,486,24,489,700,718,1020,102,90,93,94,1022", "95,97,96,98,1024,228,1026,1026,91,101,240,-627,774,-614,240,240,85,1054", "92,106,107,1057,710,46,47,333,81,82,83,11,65,714,853,854,71,72,855,120", "121,75,-717,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32,114,113", "115,116,925,491,23,488,487,486,972,489,10,53,335,12,118,117,119,108", "64,110,109,111,1069,112,120,121,240,104,105,49,50,48,814,491,-617,488", "487,486,1086,489,710,-617,1088,1093,1094,1099,-717,1100,1101,714,-617", "45,-296,1114,38,1115,1116,66,67,240,240,68,240,40,240,240,240,52,925", "-717,710,491,1123,488,487,486,24,489,240,714,1129,102,90,93,94,1130", "95,97,96,98,1132,700,1135,1138,91,101,1140,1142,240,-617,-385,1154,85", "1165,92,106,107,1166,710,46,47,333,81,82,83,11,65,1026,1026,1026,71", "72,1173,1186,1189,75,1194,73,74,76,35,36,79,80,256,1195,694,1115,1205", "84,33,32,114,113,115,116,1205,700,23,129,130,131,132,133,10,53,335,12", "118,117,119,108,64,110,109,111,1208,112,120,121,1210,104,105,49,50,48", "264,268,269,270,271,281,282,276,277,272,273,1212,257,258,1214,1214,274", "275,240,45,1026,255,38,1205,-720,66,67,-719,1231,68,1214,40,261,1214", "267,52,263,262,1214,259,260,280,279,265,24,266,3,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32", "114,113,115,116,,,23,,,,,677,10,53,335,12,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277", "272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263", "262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,278,,-265,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72", ",,,75,,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32,114,113,115", "116,,,23,,,,,889,10,53,335,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257", "258,,,274,275,,45,,,337,,,66,67,,,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,", "85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35", "36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,677,10,53,335,12,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269", "270,271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,337,,,66,67", ",,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,918,10,53,335,12,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273", ",257,258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259", "260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278", ",,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74", "76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268", "269,270,271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66", "67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81", "82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257", "258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,", "85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35", "36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270", "271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68", ",40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,7,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258,,", "274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279", "265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,240,278,,,,,85,,92", "106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79", "80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271", "281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258", ",,274,275,,45,,,337,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280", "279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,", "92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271", "281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258", ",,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280", "279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,", "92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271", "281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745,-745", ",,274,275,,45,,,38,,,66,67,,264,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,261,,91,101,263,262", ",259,260,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,", "73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,264,491,23,488,487", "486,,489,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,264,,261,,,,263,262,710,259,260,,,,,,274,275,,45,,,38,", ",66,67,,,68,,40,261,,267,52,263,262,,259,260,,,265,24,266,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745", "-745,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85", ",92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271", "281,282,276,277,272,273,,-745,-745,,,274,275,,45,,,38,,,66,67,,,68,", "40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,", "95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,,,265,24,266,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71", "72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,", ",,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,264,268,269,270,271,281,282,276,,272,273,,,,,,274,275,,45,", ",38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47", "7,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,264,268,269,270,271,281,282,,,272,273", ",,,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85", ",92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,-745,-745,-745", "-745,281,282,,,-745,-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40,261", ",267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71", "72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,", ",,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274,275,,45", ",,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47", "333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745", "-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259", "260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,", ",85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76", "35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,-745,-745", "-745,-745,281,282,,,-745,-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65", ",,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,", ",23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274,275", ",45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24", "266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106", "107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113", "115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274", "275,,245,,,253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,280,279,265", "250,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745", "-745,,,274,275,,245,,,253,,,66,67,,,68,,,261,,267,52,263,262,,259,260", "280,279,265,250,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,245,", ",253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,,,,250,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47", ",75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,", ",,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,264,,,,,,,,,,,,,,,,274,275,,245,,,253,,,66,67,,,68,,,261,,,52,263", "262,,259,260,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,245,", ",253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,,,,250,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,", ",,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79", "80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,", "254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,436,,,,52,,,,,,", ",,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79", "80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35", "36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,,,,85,,92,106,107,-441,,46,47,,,,-441,-441,-441", ",,-441,-441,-441,,-441,,,,,,,,-441,-441,-441,-441,,,,,,,,,-441,-441", ",-441,-441,-441,-441,-441,,,,,,,,,,,,,,,,,,,,,,,-441,-441,-441,-441", "-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,,,-441,-441,-441,", ",-441,,306,-441,,,-441,-441,,-441,,-441,,-441,,-441,-441,,-441,-441", "-441,-441,-441,,-441,-441,-441,,,,,,,,,,,,,,-441,,,-441,-441,,-441,", "-441,81,82,83,,65,,-441,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,", "81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,", ",84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,", ",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,", ",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,", ",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-327,,46,47,,,,-327", "-327,-327,,,-327,-327,-327,,-327,,,,,,,,-327,,-327,-327,,,,,,,,,-327", "-327,,-327,-327,-327,-327,-327,,,,,,,,,,,,,,,,,,,,,,,-327,-327,-327", "-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,,,-327,-327,-327", ",,-327,,315,-327,,,-327,-327,,-327,,-327,,-327,,-327,-327,,-327,-327", "-327,-327,-327,,-327,,-327,,,,,,,,,,,,,,-327,,,-327,-327,,-327,,-327", "81,82,83,,65,,-327,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355", "79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,", "245,,,253,,,66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,", ",52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,797,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,", ",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,", ",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,867,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,", ",52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355", "79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35", "36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,", ",,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,", ",,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,", ",,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,", ",,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76", "354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,", ",,,,,245,,,253,,,66,67,,,68,,324,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,", ",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47", ",75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,", ",,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49", "50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,328,,,,,,250", ",,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121", ",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,797,,,", "52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,240,,,81", "82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,", "84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,", ",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47", ",75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49", "50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328", ",,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106", "107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,", ",84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38", ",,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,", "91,101,,,,,,420,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,", "73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53", ",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,", ",,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121", ",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,322,", "52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,", ",66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76", "354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,", ",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,", ",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,", ",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46", "47,,,,-275,-275,-275,,,-275,-275,-275,491,-275,488,487,486,496,489,", ",-275,-275,-275,,,,499,,,,,,-275,-275,,-275,-275,-275,-275,-275,,491", ",488,487,486,496,489,494,,,,,,,,499,504,503,507,506,,,,500,,491,,488", "487,486,496,489,-275,,,,,494,,-275,499,,,,306,-275,504,503,507,506,", ",,500,,,,,,,,,494,485,,,,-275,-275,,,,,507,506,,,,500,,,,-275,,,-275", ",81,82,83,-275,65,,485,,71,72,-275,,,75,,73,74,76,354,355,79,80,,,,", ",84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79", "80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,", ",,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121", ",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52", ",,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,", ",,,,245,,,253,,,66,67,,,68,,324,,,,52,,,328,,,,,,250,,,,,102,325,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,", ",,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52", ",,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,", ",,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,", ",,,,245,,,253,,,66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "560,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49", "50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328", ",,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,46,560,,75,,73,74,76,354,355,79,80,,,,,,84,349,357", "114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,", ",,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76", "35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,", ",,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325", "93,94,,95,97,96,98,,,,,91,101,240,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,", "254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,", ",,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79", "80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,", "254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,", ",,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74", "76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,,12,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,", ",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47", ",75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53", ",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,", ",,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,", ",,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48", ",,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,", ",,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47", "81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114", "113,115,116,,,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40", ",,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,420,85", ",92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80", ",,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76", "35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-725,,46,47,,,,-725,-725", "-725,,,-725,-725,-725,,-725,,,,,,,,-725,-725,-725,-725,-725,,,,,,,,-725", "-725,,-725,-725,-725,-725,-725,,,,,,,,,,,,,,,,,,,,,,,-725,-725,-725", "-725,-725,-725,-725,-725,-725,-725,-725,-725,-725,-725,,,-725,-725,-725", ",,-725,,,-725,,,-725,-725,,-725,,-725,,-725,,-725,-725,,-725,-725,-725", "-725,-725,,-725,-725,-725,,,,,,,,,,,,,,-725,,,-725,-725,-725,-725,,-725", "-724,-725,,,,,-725,-724,-724,-724,,,-724,-724,-724,,-724,,,,,,,,-724", "-724,-724,-724,-724,,,,114,113,115,116,-724,-724,,-724,-724,-724,-724", "-724,,,,,118,117,119,,,,,,,,,,,104,105,,,358,-724,-724,-724,-724,-724", "-724,-724,-724,-724,-724,-724,-724,-724,-724,,,-724,-724,-724,,,-724", ",,-724,,,-724,-724,,-724,,-724,,-724,,-724,-724,,-724,-724,-724,-724", "-724,,-724,-724,-724,,102,90,93,94,,95,97,96,98,,,,-724,91,101,-724", "-724,-724,-724,,-724,85,-724,92,106,107,-275,-724,81,82,83,11,65,-275", "-275,-275,71,72,-275,-275,-275,75,-275,73,74,76,35,36,79,80,-275,-275", "-275,-275,,84,33,32,114,113,115,116,-275,-275,23,-275,-275,-275,-275", "-275,10,53,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275", "-275,-275,,,-275,-275,-275,45,,-275,38,306,-275,66,67,-275,-275,68,-275", "40,-275,,-275,52,-275,-275,,-275,-275,-275,-275,-275,24,-275,-275,-275", ",102,90,93,94,,95,97,96,98,,,,-275,91,101,-275,-275,,-275,,-275,85,", "92,106,107,,-275,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79", "80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,", ",,91,101,126,,,,,125,85,,92,106,107,-312,,46,47,,,,-312,-312,-312,,", "-312,-312,-312,,-312,,,,,,,,-312,,-312,-312,-312,,,,,,,,-312,-312,,-312", "-312,-312,-312,-312,,,,,,,,,,,,,,,,,,,,,,,-312,-312,-312,-312,-312,-312", "-312,-312,-312,-312,-312,-312,-312,-312,,,-312,-312,-312,,,-312,,,-312", ",,-312,-312,,-312,,-312,,-312,,-312,-312,,-312,-312,-312,-312,-312,", "-312,,-312,,,,,,,,,,,,,,-312,,,-312,-312,-312,-312,,-312,,-312,,81,82", "83,-312,65,,,,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,436,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,", ",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,", ",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,", ",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52", ",,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",436,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81", "82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84", "33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1107,,,253", ",,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,", ",,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1146,,,253,,", "66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,", ",,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,", ",84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,253,,,66", "67,,,68,,,491,,488,487,486,496,489,,,,,,,,,499,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,588,,494,85,,92,106,107,81,82,83,,65,507,506,,71", "72,500,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", ",,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", ",,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,358", ",,,,,,,,,,,,,,,,,,,346,,,253,,,66,67,,,68,,,491,,488,487,486,496,489", ",,,,,,,,499,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,360,,494,85,,92", "106,107,81,82,83,,65,507,506,,71,72,500,,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342", ",,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,", ",,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66", "67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81", "82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1146,,,253,,,66,67,,", "68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,400,64,110,109,401", ",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,407,,,402,,,253,,,66,67", ",,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68", ",,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357", "114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,,", ",,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85", "65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,341,,", ",,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113", "115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,,,358,,,,,,,,,,,,,,,,,,,,395,,,38,,,66,67,,,68,,40,,,,,,,,", ",,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106", "107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,350,,,118,117,119,400,64,110,109,401,,112,120,121,,104", "105,,,358,,,,,,,,,,,,,,,,,,,,402,,,253,,,66,67,,,68,,,,,,,,,,,,,,,,", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,185,196", "186,209,182,202,192,191,212,213,207,190,189,184,210,214,215,194,183", "197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,", "180,187,178,179,175,176,177,138,140,137,,139,,,,,,,,169,170,,166,148", "149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162", ",147,168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,,,,,", ",,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189,184,210", "214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193,181", "200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169,170", ",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,", ",,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174,102", ",,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189", "184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208", "193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,", ",,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159", ",,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146", ",,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207", "190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205", "198,208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139", ",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167", "146,,,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213", "207,190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206", "294,293,295,292,181,200,199,,,,,,180,187,178,179,289,290,291,287,140", "110,109,288,,112,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152", ",,,171,172,158,159,,,,,,299,,,,,,,,163,162,,147,168,165,164,173,160", "161,155,153,145,167,146,,,174,114,113,115,116,,,,,,491,,488,487,486", "496,489,118,117,119,774,,,,777,499,,,,,104,105,,,358,,,,,,,,,,,,,494", ",,,,,,776,,,747,507,506,,745,,500,746,,,,,,,,,,,,,,,,775,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,114,113,115,116,485,,85,,92,106,107,,,762", "763,,118,117,119,774,,,491,777,488,487,486,496,489,104,105,,,358,,,", "499,,,,,,,,,,,,,,,,776,,,747,,,494,745,,,746,,,,,504,503,507,506,,,", "500,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,", ",85,,92,106,107,,,762,763,,118,117,119,774,,,491,777,488,487,486,496", "489,104,105,,,358,,,,499,,,,,,,,,,,,,,,,776,,,747,,,494,745,,,746,,749", ",,504,503,507,506,,,,500,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,,777", "754,,,,,104,105,,,358,499,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,", "749,,,,,,,500,,,,,,,775,,,,102,755,93,94,,95,97,96,98,,,,,91,101,114", "113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,491,777,488", "487,486,496,489,104,105,,,358,,,,499,,,,,,,,,,,,,,,,776,,,747,,,494", "745,,,746,,,,,504,503,507,506,,,,500,,,,775,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119", "774,,,491,777,488,487,486,496,489,104,105,,,358,,,,499,,,,,,,,,,,,,", ",,776,,,747,,,494,745,,,746,,749,,,,,507,506,,,,500,,,,775,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762", "763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776", ",,747,,,,745,,,746,,749,,,,,,,491,,488,487,486,496,489,775,,,,102,90", "93,94,499,95,97,96,98,,,,,91,101,240,114,113,115,116,,85,,92,106,107", "494,,762,763,,,118,117,119,774,,507,506,777,,,500,,,104,105,,,358,,", ",,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,485,,,,,,,,,,,,,775,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,", "762,763,,118,117,119,774,,,,777,754,,,,,104,105,,,358,499,,,,,,,,,,", ",,,,,,,,776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775,,,,102,755,93", "94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763", ",118,117,119,774,,,,777,754,,,,,104,105,,,358,499,,,,,,,,,,,,,,,,,,", "776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775,,,,102,755,93,94,,95", "97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,762,763,185,196,186,209,182", "202,192,191,212,213,207,190,189,184,210,214,215,194,183,197,201,203", "195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,,180,187,178", "179,175,176,177,138,140,,,139,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162,,147,168,165,164", "173,160,161,155,153,145,167,146,,,174,114,113,115,116,,,491,,488,487", "486,496,489,,,,118,117,119,774,,499,,777,754,,,,,104,105,,,358,499,", ",,,,,,,494,,,,,,,,,,776,507,506,747,,,500,745,,,746,,749,,,,,,,500,", ",,,,,775,,,,102,755,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,", "85,,92,106,107,,,762,763,,118,117,119,774,,,,777,754,,,,,104,105,,,358", "499,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775", ",,,102,755,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106", "107,,,762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,", ",,,,,,,,776,,,747,,,,745,,,746,,,,,,,,,,,,,,,,775,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763,,118", "117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776,,,747,", ",,745,,,746,,,,,,,,,,,,,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101", "114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,,777,", ",,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,,,,,,", ",,,,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,", ",85,,92,106,107,,,762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358", ",,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,,,,,,,,,,,,,,775,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,", "762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,114,113,115", "116,,,,,,,,,776,,,747,118,117,119,745,,,746,,1053,,,,,104,105,,,358", ",,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107", ",,762,763,491,,488,487,486,496,489,,,,,102,90,93,94,499,95,97,96,98", ",,,,91,101,114,113,115,116,,,85,,92,106,107,494,,,,,118,117,119,,504", "503,507,506,,,,500,,104,105,,,358,,,,,,,,,,,,491,,488,487,486,496,489", ",,,,,,,,499,,,,,,491,485,488,487,486,496,489,,,,,,,,,499,494,102,90", "93,94,,95,97,96,98,,507,506,,91,101,500,,,,,494,85,,92,106,107,,,,504", "503,507,506,,,491,500,488,487,486,496,489,,491,,488,487,486,496,489", "499,,,,,485,,,499,,491,,488,487,486,496,489,,,,,,494,644,,499,485,,", ",494,504,503,507,506,,,,500,504,503,507,506,,,,500,494,,,,,,,,,504,503", "507,506,,,491,500,488,487,486,496,489,,,,,,,,,499,485,,,,,,,,485,,,", ",,,,,,,,,494,,,,485,,,,,,,507,506,872,469,,500,871,,,,,,,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,485", ",,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,842,469,174", ",843,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172", "158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153", "145,167,146,837,462,174,,838,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165", "164,173,160,161,155,153,145,167,146,465,469,174,,464,,,,,,,,169,170", ",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,", ",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,729,469", "174,,730,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171", "172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155", "153,145,167,146,556,462,174,,557,,,,,,,,169,170,,166,148,149,150,157", "154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168", "165,164,173,160,161,155,153,145,167,146,458,462,174,,459,,,,,,,,169", "170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306", ",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,556", "462,174,,557,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,", ",,171,172,158,159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161", "155,153,145,167,146,729,469,174,,730,,,,,,,,169,170,,166,148,149,150", "157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147", "168,165,164,173,160,161,155,153,145,167,146,727,462,174,,728,,,,,,,", "169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,", ",,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146", "807,462,174,,808,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152", ",,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160", "161,155,153,145,167,146,810,469,174,,811,,,,,,,,169,170,,166,148,149", "150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162", ",147,168,165,164,173,160,161,155,153,145,167,146,1200,462,174,,1201", ",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145", "167,146,869,462,174,,870,,,,,,,,169,170,,166,148,149,150,157,154,156", ",,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164", "173,160,161,155,153,145,167,146,1202,469,174,,1203,,,,,,,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,", ",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,839,469,174", ",840,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172", "158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153", "145,167,146,1218,469,174,,1217,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165", "164,173,160,161,155,153,145,167,146,727,462,174,,728,,,,,,,,169,170", ",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,", ",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174"]; + racc_action_table = (arr = $$$('Array').$new(28717, nil)); idx = 0; - $send(clist, 'each', [], ($Ruby30$8 = function(str){var self = $Ruby30$8.$$s == null ? this : $Ruby30$8.$$s, $$9; - + $send(clist, 'each', [], function $Ruby31$2(str){ - if (str == null) { - str = nil; - }; - return $send(str.$split(",", -1), 'each', [], ($$9 = function(i){var self = $$9.$$s == null ? this : $$9.$$s, $writer = nil; + if (str == null) str = nil;; + return $send(str.$split(",", -1), 'each', [], function $$3(i){var $writer = nil; - if (i == null) { - i = nil; - }; - if ($truthy(i['$empty?']())) { - } else { + if (i == null) i = nil;; + if (!$truthy(i['$empty?']())) { $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); + $send(arr, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - return (idx = $rb_plus(idx, 1));}, $$9.$$s = self, $$9.$$arity = 1, $$9));}, $Ruby30$8.$$s = self, $Ruby30$8.$$arity = 1, $Ruby30$8)); - clist = ["849,847,1052,999,1056,827,394,849,849,849,762,762,619,849,849,285,849", "46,46,877,21,1109,285,816,849,849,415,1102,414,702,691,628,817,1105", "956,988,849,849,812,849,849,849,849,849,1108,1158,702,383,1032,1199", "1056,1196,137,988,622,815,1006,137,137,1199,847,21,622,814,391,877,849", "849,849,849,849,849,849,849,849,849,849,849,849,849,285,390,849,849", "849,999,849,849,816,691,849,1112,415,849,414,46,46,817,849,1006,849", "441,849,849,762,849,849,849,849,849,111,849,849,849,827,394,619,111", "111,111,1052,619,111,111,111,1052,111,849,1196,752,849,849,816,849,111", "849,111,111,111,1109,628,817,849,956,1109,849,111,111,1054,111,111,111", "111,111,1195,1206,812,1193,1194,812,441,812,1108,1158,815,383,1032,1108", "1158,1196,383,1032,814,391,1196,51,111,111,111,111,111,111,111,111,111", "111,111,111,111,111,390,382,111,111,111,752,111,111,730,970,111,43,321", "111,111,238,111,321,111,1112,111,872,111,111,1112,111,111,111,111,111", "848,111,1111,111,69,638,638,848,848,848,1061,1195,1061,848,848,752,848", "111,752,1114,111,111,111,111,848,111,873,111,472,472,752,872,111,800", "800,111,848,848,970,848,848,848,848,848,238,592,1054,508,508,1115,755", "1054,1195,1206,52,1193,1194,1195,1206,29,1193,1194,873,592,1116,730", "848,848,848,848,848,848,848,848,848,848,848,848,848,848,341,1117,848", "848,848,333,848,848,40,382,848,69,333,848,382,914,348,348,848,638,848", "333,848,848,638,848,848,848,848,848,52,848,692,848,25,755,755,690,846", "692,692,692,472,29,692,692,692,848,692,600,848,848,1129,848,600,848", "692,692,692,692,692,508,848,1130,341,848,29,753,692,692,333,692,692", "692,692,692,755,334,1139,755,747,914,653,284,334,1076,1141,341,1144", "1088,284,755,747,334,348,348,690,846,692,692,692,692,692,692,692,692", "692,692,692,692,692,692,53,352,692,692,692,655,692,692,1145,914,692", "400,914,692,692,400,692,1146,692,478,692,753,692,692,914,692,692,692", "692,692,334,692,692,692,653,653,284,1076,1076,1076,531,1088,1088,409", "653,1147,410,692,352,413,692,692,692,692,1076,692,53,692,1088,693,352", "753,692,236,753,692,693,693,693,655,655,693,693,693,335,693,753,1149", "478,655,876,335,283,693,876,693,693,693,700,283,335,869,399,700,1154", "693,693,700,693,693,693,693,693,17,531,531,531,409,409,409,410,410,410", "413,413,413,675,235,387,5,1164,531,236,387,5,693,693,693,693,693,693", "693,693,693,693,693,693,693,693,335,41,693,693,693,399,693,693,283,1170", "693,869,399,693,693,412,693,399,693,1175,693,399,693,693,675,693,693", "693,693,693,960,693,15,693,721,960,675,235,721,907,399,907,907,907,907", "907,457,693,41,282,693,693,693,693,907,693,282,693,1189,463,41,456,693", "1055,1055,693,463,463,463,1190,399,378,463,463,378,463,907,16,16,412", "412,412,281,463,463,907,907,907,907,281,1165,1165,907,457,88,463,463", "1192,463,463,463,463,463,14,42,457,88,366,456,366,366,366,366,366,282", "416,88,12,907,9,456,1131,366,1197,1131,463,463,463,463,463,463,463,463", "463,463,463,463,463,463,1202,19,463,463,463,366,463,463,281,1203,463", "411,42,463,366,366,366,366,463,1204,463,366,463,463,42,463,463,463,463", "463,462,463,463,463,704,704,1205,462,462,462,416,416,416,462,462,280", "462,463,19,3,463,463,280,463,462,463,279,278,774,774,19,366,463,279", "278,463,462,462,1211,462,462,462,462,462,1217,411,411,411,768,392,768", "768,768,768,768,277,392,371,371,371,371,371,277,768,516,392,462,462", "462,462,462,462,462,462,462,462,462,462,462,462,280,517,462,462,462", "768,462,462,381,381,462,279,278,462,768,768,768,768,462,518,462,768", "462,462,522,462,462,462,462,462,108,462,799,462,392,799,491,108,108", "108,277,490,108,108,108,276,108,462,489,488,462,462,276,462,108,462", "108,108,108,538,375,768,462,375,539,462,108,108,542,108,108,108,108", "108,544,548,549,18,374,337,27,374,548,553,18,563,337,27,564,567,568", "548,569,18,570,337,108,108,108,108,108,108,108,108,108,108,108,108,108", "108,276,571,108,108,108,573,108,108,1151,487,108,574,584,108,108,1151", "108,474,108,596,108,599,108,108,1151,108,108,108,108,108,548,108,18", "108,337,27,536,536,536,536,536,487,756,601,464,487,487,108,603,756,108", "108,108,108,756,108,440,108,756,604,605,606,108,440,455,108,818,818", "818,818,818,818,440,1151,616,818,818,454,452,620,818,398,818,818,818", "818,818,818,818,324,324,324,324,324,818,818,818,818,818,818,818,621", "585,818,585,585,585,756,585,818,818,818,818,818,818,818,818,818,818", "818,818,440,818,818,818,631,818,818,818,818,818,820,631,398,623,353", "49,49,820,585,398,631,353,820,442,398,438,820,585,398,818,353,435,818", "433,650,818,818,1110,658,818,660,818,432,430,1110,818,667,398,424,486", "676,49,49,1110,818,681,404,686,694,818,818,818,818,695,818,818,818,818", "1074,631,697,395,818,818,393,820,720,398,1074,353,818,486,818,818,818", "486,486,818,818,823,823,823,823,823,823,723,724,389,823,823,727,729", "1110,823,819,823,823,823,823,823,823,823,388,735,736,737,1074,823,823", "823,823,823,823,823,739,741,823,379,1074,749,751,377,823,823,823,823", "823,823,823,823,823,823,823,823,376,823,823,823,1104,823,823,823,823", "823,402,1104,819,754,54,757,758,402,761,819,1104,54,372,764,819,368", "402,364,819,823,54,783,823,784,786,823,823,234,362,823,802,823,808,809", "234,823,785,819,785,785,785,358,785,234,823,813,356,349,822,823,823", "823,823,347,823,823,823,823,886,1104,343,826,823,823,342,402,828,819", "886,54,823,340,823,823,823,843,339,823,823,834,834,834,834,834,834,845", "336,854,834,834,330,329,234,834,870,834,834,834,834,834,834,834,23,328", "326,325,886,834,834,834,834,834,834,834,878,879,834,883,886,884,885", "888,834,834,834,834,834,834,834,834,834,834,834,834,313,834,834,834", "310,834,834,834,834,834,23,23,23,23,23,23,23,23,23,23,23,309,23,23,900", "903,23,23,904,834,1,23,834,771,913,834,834,295,918,834,921,834,23,771", "23,834,23,23,922,23,23,23,23,23,834,23,925,927,928,834,834,834,834,930", "834,834,834,834,932,934,935,937,834,834,940,23,771,771,947,950,834,771", "834,834,834,957,959,834,834,1010,1010,1010,1010,1010,1010,966,646,646", "1010,1010,646,646,646,1010,967,1010,1010,1010,1010,1010,1010,1010,8", "8,8,8,8,1010,1010,1010,1010,1010,1010,1010,968,969,1010,979,980,981", "982,445,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010", "244,1010,1010,1010,991,1010,1010,1010,1010,1010,445,445,445,445,445", "445,445,445,445,445,445,992,445,445,993,997,445,445,998,1010,240,239", "1010,1003,1013,1010,1010,1014,1016,1010,1017,1010,445,1018,445,1010", "445,445,1020,445,445,445,445,445,1010,445,1021,1022,237,1010,1010,1010", "1010,1048,1010,1010,1010,1010,1049,1065,216,1075,1010,1010,1083,445", "1085,445,,,1010,,1010,1010,1010,,,1010,1010,615,615,615,615,615,615", ",,,615,615,,,,615,,615,615,615,615,615,615,615,,,,,,615,615,615,615", "615,615,615,,,615,,,,,794,615,615,615,615,615,615,615,615,615,615,615", "615,,615,615,615,,615,615,615,615,615,794,794,794,794,794,794,794,794", "794,794,794,,794,794,,,794,794,,615,,,615,1091,,615,615,,,615,,615,794", "1091,794,615,794,794,,794,794,794,794,794,615,794,,,,615,615,615,615", ",615,615,615,615,,,,,615,615,,794,1091,1091,,,615,1091,615,615,615,", ",615,615,618,618,618,618,618,618,,,,618,618,,,,618,,618,618,618,618", "618,618,618,,,,,,618,618,618,618,618,618,618,,,618,,,,,451,618,618,618", "618,618,618,618,618,618,618,618,618,,618,618,618,,618,618,618,618,618", "451,451,451,451,451,451,451,451,451,451,451,,451,451,,,451,451,,618", ",,618,,,618,618,,,618,,618,451,,451,618,451,451,,451,451,451,451,451", "618,451,,,,618,618,618,618,,618,618,618,618,,,,,618,618,,451,,,,,618", ",618,618,618,,,618,618,1029,1029,1029,1029,1029,1029,,,,1029,1029,,", ",1029,,1029,1029,1029,1029,1029,1029,1029,,,,,,1029,1029,1029,1029,1029", "1029,1029,,,1029,,,,,763,1029,1029,1029,1029,1029,1029,1029,1029,1029", "1029,1029,1029,,1029,1029,1029,,1029,1029,1029,1029,1029,763,763,763", "763,763,763,763,763,763,763,763,,763,763,,,763,763,,1029,,,1029,,,1029", "1029,,,1029,,1029,763,,763,1029,763,763,,763,763,763,763,763,1029,763", ",,,1029,1029,1029,1029,,1029,1029,1029,1029,,,,,1029,1029,,763,,,,,1029", ",1029,1029,1029,,,1029,1029,218,218,218,218,218,218,,,,218,218,,,,218", ",218,218,218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,1174", "218,1174,1174,1174,,1174,218,218,218,218,218,218,218,218,218,218,218", "218,,218,218,218,,218,218,218,218,218,505,505,505,505,505,505,505,505", "505,505,505,,505,505,,,505,505,,218,,,218,,,218,218,,,218,,218,505,", "505,218,505,505,,505,505,505,505,505,218,505,,,,218,218,218,218,,218", "218,218,218,,,,,218,218,505,505,,,,,218,,218,218,218,,,218,218,1066", "1066,1066,1066,1066,1066,,,,1066,1066,,,,1066,,1066,1066,1066,1066,1066", "1066,1066,,,,,,1066,1066,1066,1066,1066,1066,1066,,1068,1066,1068,1068", "1068,,1068,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066", ",1066,1066,1066,,1066,1066,1066,1066,1066,851,851,851,851,851,851,851", "851,851,851,851,,851,851,,,851,851,,1066,,,1066,,,1066,1066,,,1066,", "1066,851,,851,1066,851,851,,851,851,851,851,851,1066,851,,,,1066,1066", "1066,1066,,1066,1066,1066,1066,,,,,1066,1066,,851,,,,,1066,,1066,1066", "1066,,,1066,1066,1067,1067,1067,1067,1067,1067,,,,1067,1067,,,,1067", ",1067,1067,1067,1067,1067,1067,1067,,,,,,1067,1067,1067,1067,1067,1067", "1067,,,1067,,,,,,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067", "1067,,1067,1067,1067,,1067,1067,1067,1067,1067,307,307,307,307,307,307", "307,307,307,307,307,,307,307,,,307,307,,1067,,,1067,,,1067,1067,,,1067", ",1067,307,,307,1067,307,307,,307,307,307,307,307,1067,307,,,,1067,1067", "1067,1067,,1067,1067,1067,1067,,,,,1067,1067,,307,,,,,1067,,1067,1067", "1067,,,1067,1067,639,639,639,639,639,639,,,,639,639,,,,639,,639,639", "639,639,639,639,639,,,,,,639,639,639,639,639,639,639,,,639,,,,,,639", "639,639,639,639,639,639,639,639,639,639,639,,639,639,639,,639,639,639", "639,639,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,,1050", "1050,,,1050,1050,,639,,,639,,,639,639,,,639,,639,1050,,1050,639,1050", "1050,,1050,1050,1050,1050,1050,639,1050,,,,639,639,639,639,,639,639", "639,639,,,,,639,639,,1050,,,,,639,,639,639,639,,,639,639,386,386,386", "386,386,386,,,,386,386,,,,386,,386,386,386,386,386,386,386,,,,,,386", "386,386,386,386,386,386,,,386,,,,,,386,386,386,386,386,386,386,386,386", "386,386,386,,386,386,386,,386,386,386,386,386,560,560,560,560,560,560", "560,560,560,560,560,,560,560,,,560,560,,386,,,386,,,386,386,,,386,,386", "560,,560,386,560,560,,560,560,560,560,560,386,560,,,,386,386,386,386", ",386,386,386,386,,,,,386,386,,560,,,,,386,,386,386,386,,,386,386,36", "36,36,36,36,36,,,,36,36,,,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36", "36,36,36,,,36,,,,,,36,36,36,36,36,36,36,36,36,36,36,36,,36,36,36,,36", "36,36,36,36,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,", "1009,1009,,,1009,1009,,36,,,36,,,36,36,,,36,,36,1009,,1009,36,1009,1009", ",1009,1009,1009,1009,1009,36,1009,,,,36,36,36,36,,36,36,36,36,,,,,36", "36,,1009,,,,,36,,36,36,36,,,36,36,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,,135,135,135,135,135,1027,1027,1027,1027,1027,1027,1027,1027,1027", "1027,1027,,1027,1027,,,1027,1027,,135,,,135,,,135,135,,,135,,135,1027", ",1027,135,1027,1027,,1027,1027,1027,1027,1027,135,1027,,,,135,135,135", "135,,135,135,135,135,,,,,135,135,,1027,,,,,135,,135,135,135,,,135,135", "332,332,332,332,332,332,,,,332,332,,,,332,,332,332,332,332,332,332,332", ",,,,,332,332,332,332,332,332,332,,941,332,941,941,941,,941,332,332,332", "332,332,332,332,332,332,332,332,332,,332,332,332,,332,332,332,332,332", "781,,781,781,781,,781,,941,,942,,942,942,942,,942,941,,332,,,332,,,332", "332,,502,332,,332,,,,332,,781,,1119,,1119,1119,1119,332,1119,781,942", ",332,332,332,332,,332,332,332,332,,,502,,332,332,502,502,,502,502,,332", ",332,332,332,,1119,332,332,385,385,385,385,385,385,,,,385,385,,,,385", ",385,385,385,385,385,385,385,,,,,,385,385,385,385,385,385,385,,,385", ",,501,,,385,385,385,385,385,385,385,385,385,385,385,385,,385,385,385", ",385,385,385,385,385,503,503,503,503,503,503,503,501,,503,503,501,501", ",501,501,503,503,,385,,,385,,,385,385,,,385,,385,503,,503,385,503,503", ",503,503,503,503,503,385,503,,,,385,385,385,385,,385,385,385,385,,,", ",385,385,,1118,,1118,1118,1118,385,1118,385,385,385,,,385,385,1120,1120", "1120,1120,1120,1120,,,,1120,1120,,,,1120,,1120,1120,1120,1120,1120,1120", "1120,1118,,,,,1120,1120,1120,1120,1120,1120,1120,,,1120,,,,,,1120,1120", "1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,,1120,1120,1120,,1120", "1120,1120,1120,1120,499,499,499,499,499,499,499,,,499,499,,,,,,499,499", ",1120,,,1120,,,1120,1120,,,1120,,1120,499,,499,1120,499,499,,499,499", "499,499,499,1120,499,,,,1120,1120,1120,1120,,1120,1120,1120,1120,,,", ",1120,1120,,,,,,,1120,,1120,1120,1120,,,1120,1120,327,327,327,327,327", "327,,,,327,327,,,,327,,327,327,327,327,327,327,327,,,,,,327,327,327", "327,327,327,327,,,327,,,,,,327,327,327,327,327,327,327,327,327,327,327", "327,,327,327,327,,327,327,327,327,327,500,500,500,500,500,500,500,,", "500,500,,,,,,500,500,,327,,,327,,,327,327,,,327,,327,500,,500,327,500", "500,,500,500,500,500,500,327,500,,,,327,327,327,327,,327,327,327,327", ",,,,327,327,,,,,,,327,,327,327,327,,,327,327,908,908,908,908,908,908", ",,,908,908,,,,908,,908,908,908,908,908,908,908,,,,,,908,908,908,908", "908,908,908,,,908,,,,,,908,908,908,908,908,908,908,908,908,908,908,908", ",908,908,908,,908,908,908,908,908,498,498,498,498,498,498,498,,,498", "498,,,,,,498,498,,908,,,908,,,908,908,,,908,,908,498,,498,908,498,498", ",498,498,498,498,498,908,498,,,,908,908,908,908,,908,908,908,908,,,", ",908,908,,,,,,,908,,908,908,908,,,908,908,1166,1166,1166,1166,1166,1166", ",,,1166,1166,,,,1166,,1166,1166,1166,1166,1166,1166,1166,,,,,,1166,1166", "1166,1166,1166,1166,1166,,,1166,,,,,,1166,1166,1166,1166,1166,1166,1166", "1166,1166,1166,1166,1166,,1166,1166,1166,,1166,1166,1166,1166,1166,496", "496,496,496,496,496,496,,,496,496,,,,,,496,496,,1166,,,1166,,,1166,1166", ",,1166,,1166,496,,496,1166,496,496,,496,496,496,496,496,1166,496,,,", "1166,1166,1166,1166,,1166,1166,1166,1166,,,,,1166,1166,,,,,,,1166,,1166", "1166,1166,,,1166,1166,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2", "2,2,2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,2,2,2,355,355", "355,355,355,355,355,355,355,355,355,,355,355,,,355,355,,2,,,2,,,2,2", ",,2,,2,355,,355,2,355,355,,355,355,355,355,355,2,355,,,,2,2,2,2,,2,2", "2,2,,,,,2,2,,,,,,,2,,2,2,2,,,2,2,370,370,370,370,370,370,,,,370,370", ",,,370,,370,370,370,370,370,370,370,,,,,,370,370,370,370,370,370,370", ",,370,,,,,,370,370,370,370,370,370,370,370,370,370,370,370,,370,370", "370,,370,370,370,370,370,354,354,354,354,354,354,354,354,354,354,354", ",354,354,,,354,354,,370,,,370,,,370,370,,,370,,370,354,,354,370,354", "354,,354,354,354,354,354,370,354,,,,370,370,370,370,,370,370,370,370", ",,,,370,370,,,,,,,370,,370,370,370,,,370,370,369,369,369,369,369,369", ",,,369,369,,,,369,,369,369,369,369,369,369,369,,,,,,369,369,369,369", "369,369,369,,,369,,,,,,369,369,369,369,369,369,369,369,369,369,369,369", ",369,369,369,,369,369,369,369,369,504,504,504,504,504,504,504,504,,504", "504,,,,,,504,504,,369,,,369,,,369,369,,,369,,369,504,,504,369,504,504", ",504,504,504,504,504,369,504,,,,369,369,369,369,,369,369,369,369,,,", ",369,369,,,,,,,369,,369,369,369,,,369,369,920,920,920,920,920,920,,", ",920,920,,,,920,,920,920,920,920,920,920,920,,,,,,920,920,920,920,920", "920,920,,,920,,,,,,920,920,920,920,920,920,920,920,920,920,920,920,", "920,920,920,,920,920,920,920,920,559,,,,,,,,,,,,,,,,559,559,,920,,,920", ",,920,920,,,920,,920,559,,559,920,559,559,,559,559,,,559,920,559,,,", "920,920,920,920,,920,920,920,920,,,,,920,920,,,,,,,920,,920,920,920", ",,920,920,363,363,363,363,363,363,,,,363,363,,,,363,,363,363,363,363", "363,363,363,,,,,,363,363,363,363,363,363,363,,,363,,,,,,363,363,363", "363,363,363,363,363,363,363,363,363,,363,363,363,,363,363,363,363,363", "484,484,484,484,484,484,484,484,484,484,484,,484,484,,,484,484,,363", ",,363,,,363,363,,,363,,363,484,,484,363,484,484,,484,484,484,484,484", "363,484,,,,363,363,363,363,,363,363,363,363,,,,,363,363,,,,,,,363,,363", "363,363,,,363,363,1107,1107,1107,1107,1107,1107,,,,1107,1107,,,,1107", ",1107,1107,1107,1107,1107,1107,1107,,,,,,1107,1107,1107,1107,1107,1107", "1107,,,1107,,,,,,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107", "1107,,1107,1107,1107,,1107,1107,1107,1107,1107,497,497,497,497,497,497", "497,,,497,497,,,,,,497,497,,1107,,,1107,,,1107,1107,,,1107,,1107,497", ",497,1107,497,497,,497,497,497,497,497,1107,497,,,,1107,1107,1107,1107", ",1107,1107,1107,1107,,,,,1107,1107,,,,,,,1107,,1107,1107,1107,,,1107", "1107,955,955,955,955,955,955,,,,955,955,,,,955,,955,955,955,955,955", "955,955,,,,,,955,955,955,955,955,955,955,,,955,,,,,,955,955,955,955", "955,955,955,955,955,955,955,955,,955,955,955,,955,955,955,955,955,485", "485,485,485,485,485,485,485,485,485,485,,485,485,,,485,485,,955,,,955", ",,955,955,,,955,,955,485,,485,955,485,485,,485,485,485,485,485,955,485", ",,,955,955,955,955,,955,955,955,955,,,,,955,955,,,,,,,955,,955,955,955", ",,955,955,961,961,961,961,961,961,,,,961,961,,,,961,,961,961,961,961", "961,961,961,,,,,,961,961,961,961,961,961,961,,,961,,,,,,961,961,961", "961,961,961,961,961,961,961,961,961,,961,961,961,,961,961,961,961,961", "495,495,495,495,495,495,495,,,495,495,,,,,,495,495,,961,,,961,,,961", "961,,,961,,961,495,,495,961,495,495,,495,495,495,495,495,961,495,,,", "961,961,961,961,,961,961,961,961,,,,,961,961,,,,,,,961,,961,961,961", ",,961,961,243,243,243,243,243,243,,,,243,243,,,,243,,243,243,243,243", "243,243,243,,,,,,243,243,243,243,243,243,243,,,243,,,,,,243,243,243", "243,243,243,243,243,243,243,243,243,,243,243,243,,243,243,243,243,243", "506,,,,,,,,,,,,,,,,506,506,,243,,,243,,,243,243,,,243,,243,506,,506", "243,506,506,,506,506,,,506,243,506,,,,243,243,243,243,,243,243,243,243", ",,,,243,243,,,,132,132,132,243,132,243,243,243,132,132,243,243,,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,492,,,,,,,,,,,,,,,,492,492,,132,,,132,,,132,132,,,132,,,492", ",492,132,492,492,,492,492,,,,132,,,,,132,132,132,132,,132,132,132,132", ",,,,132,132,,,,,,,132,,132,132,132,510,,132,132,,,,510,510,510,,,510", "510,510,,510,494,,,,,,,510,510,510,,,,,,,494,494,,510,510,,510,510,510", "510,510,,,,,,494,,292,292,494,494,292,494,494,,,,,,292,292,,292,292", "292,292,292,292,292,,,292,292,510,,,292,292,292,292,510,,,,,510,510", ",,,,,,292,292,,292,292,292,292,292,292,292,292,292,292,292,292,510,510", "292,,,,,,,,,,,,,510,,,510,,,,,510,7,7,7,7,7,,510,,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,,7", "7,7,7,7,493,,,,,,,,,,,,,,,,493,493,,7,,,7,,,7,7,,,7,,7,493,,493,7,493", "493,,493,493,,,,7,,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,1155,1155,1155,7,1155", "7,7,7,1155,1155,7,7,,1155,,1155,1155,1155,1155,1155,1155,1155,,,,,,1155", "1155,1155,1155,1155,1155,1155,,,1155,,,,,,,1155,,,1155,1155,1155,1155", "1155,1155,1155,1155,1155,1155,1155,1155,,1155,1155,1155,1155,1155,,", ",,,,,,,,,,,,,,,,,1155,,,1155,,,1155,1155,,,1155,,1155,,1155,,1155,,", "1155,,,,,,1155,,,,,1155,1155,1155,1155,,1155,1155,1155,1155,,,,,1155", "1155,,,,22,22,22,1155,22,1155,1155,1155,22,22,1155,1155,,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,,,22,,,22,22", ",,22,,,,,,22,,,,,,,,,22,,,,,22,22,22,22,,22,22,22,22,,,,,22,22,,,,1123", "1123,1123,22,1123,22,22,22,1123,1123,22,22,,1123,,1123,1123,1123,1123", "1123,1123,1123,,,,,,1123,1123,1123,1123,1123,1123,1123,,,1123,,,,,,", "1123,,,1123,1123,1123,1123,1123,1123,1123,1123,,1123,1123,1123,,1123", "1123,1123,1123,1123,,,,,,,,,,,,,,,,,,,,1123,,,1123,,,1123,1123,,,1123", ",,,,,1123,,,,,,,,,1123,,,,,1123,1123,1123,1123,,1123,1123,1123,1123", ",,,,1123,1123,,,,,,,1123,,1123,1123,1123,30,,1123,1123,,,,30,30,30,", ",30,30,30,,30,,,,,,,,30,30,30,30,,,,,,,,,30,30,,30,30,30,30,30,,,,,", ",,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30", ",,30,,30,30,,,30,30,,30,,30,,30,,30,30,,30,30,30,30,30,31,30,30,30,", ",,31,31,31,,,31,31,31,,31,30,,,30,30,,30,31,30,31,31,,,,,30,,,,31,31", ",31,31,31,31,31,,,,,,,,,,,,,,,,,,,,,,,31,31,31,31,31,31,31,31,31,31", "31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,,31,,31,,31,31,,31,31", "31,31,31,,31,,31,,,,,,,,,,,,,,31,,,31,31,,31,,31,32,32,32,,32,,31,,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,32,32,,,,,,,,,,,", ",,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,32,,,,,,32,,,,,32,32,32,32", ",32,32,32,32,,,,,32,32,,,,33,33,33,32,33,32,32,32,33,33,32,32,,33,,33", "33,33,33,33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33", "33,33,33,33,33,33,33,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33", ",,33,33,,,33,,33,,33,,33,,,33,,,,,,33,,,,,33,33,33,33,,33,33,33,33,", ",,,33,33,,,,34,34,34,33,34,33,33,33,34,34,33,33,,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,,34,,34,,34,,,34,,,,,,34,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,", ",,1122,1122,1122,34,1122,34,34,34,1122,1122,34,34,,1122,,1122,1122,1122", "1122,1122,1122,1122,,,,,,1122,1122,1122,1122,1122,1122,1122,,,1122,", ",,,,,1122,,,1122,1122,1122,1122,1122,1122,1122,1122,,1122,1122,1122", ",1122,1122,1122,1122,1122,,,,,,,,,,,,,,,,,,,,1122,,,1122,,,1122,1122", ",,1122,,,,,,1122,,,,,,,,,1122,,,,,1122,1122,1122,1122,,1122,1122,1122", "1122,,,,,1122,1122,,,,44,44,44,1122,44,1122,1122,1122,44,44,1122,1122", ",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,,,,,,44,,,,,,,,,44,,,,,44,44,44,44,,44,44,44,44", ",,,,44,44,,,,45,45,45,44,45,44,44,44,45,45,44,44,,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,,,,,,,,,45,,,,,45,45,45,45,,45,45,45,45,,,,,45,45,,,,47,47,47", "45,47,45,45,45,47,47,45,45,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47", "47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47", "47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,", ",47,47,47,47,,47,47,47,47,,,,,47,47,,,,48,48,48,47,48,47,47,47,48,48", "47,47,,48,,48,48,48,48,48,48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,", ",48,,,48,48,48,48,48,48,48,48,,48,48,48,,48,48,48,48,48,,,,,,,,,,,,", ",,,,,,,48,,,48,,,48,48,,,48,,,,,,48,,,,,,,,,48,,,,,48,48,48,48,,48,48", "48,48,,,,,48,48,,,,50,50,50,48,50,48,48,48,50,50,48,48,,50,,50,50,50", "50,50,50,50,,,,,,50,50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50", "50,50,50,,50,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50", ",,50,,,,,,50,,,,,,,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,,", ",50,,50,50,50,64,,50,50,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64", "64,,,,707,707,707,707,64,64,,64,64,64,64,64,,,,,707,707,707,,,,,,,,", ",,707,707,,,707,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64", ",,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,707,707", "707,707,,707,707,707,707,,,,64,707,707,64,64,64,64,,64,707,64,707,707", "707,,64,66,66,66,66,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,,,66", "66,66,66,66,66,66,,,66,,,,,,66,66,,66,66,66,66,66,66,66,66,66,,66,66", "66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,66,,,,66", ",,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66,66,,,,67,67,67,66,67", "66,66,66,67,67,66,66,,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,,,67,,67,,,,67,,,67,,,,,,67,,", ",,67,67,67,67,,67,67,67,67,,,,,67,67,,,,68,68,68,67,68,67,67,67,68,68", "67,67,,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,,,,,,68,,,,,68,68,68,68,", "68,68,68,68,,,,,68,68,,,,71,71,71,68,71,68,68,68,71,71,68,68,,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,71,71,71,,71,71,71,71,,,,,71", "71,,,,72,72,72,71,72,71,71,71,72,72,71,71,,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", ",,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,75,75,75,72,75", "72,72,72,75,75,72,72,,75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75", "75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75", ",,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75", "75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,124,124", "124,124,124,,,,124,124,,,,124,,124,124,124,124,124,124,124,,,,,,124", "124,124,124,124,124,124,,,124,,,,,,124,124,124,124,124,124,124,124,124", "124,124,124,,124,124,124,,124,124,124,124,124,,,,,,,,,,,,,,,,,,,,124", ",,124,,,124,124,,,124,,124,,,,124,,,,,,,,,124,,,,,124,124,124,124,,124", "124,124,124,,,,,124,124,,,,,,124,124,,124,124,124,,,124,124,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,,,,,,,,,,,,,,,,,,,,129,,,129,,,129", "129,,,129,,,,,,129,,,,,,,,,129,,,,,129,129,129,129,,129,129,129,129", ",,,,129,129,,,,130,130,130,129,130,129,129,129,130,130,129,129,,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,,,,,,", ",,130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,,,131,131,131", "130,131,130,130,130,131,131,130,130,,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,,,,,,131,,,,,,,,,131,,,,,131,131,131,131,,131", "131,131,131,,,,,131,131,,,,515,515,515,131,515,131,131,131,515,515,131", "131,,515,,515,515,515,515,515,515,515,,,,,,515,515,515,515,515,515,515", ",,515,,,,,,,515,,,515,515,515,515,515,515,515,515,,515,515,515,,515", "515,515,515,515,,,,,,,,,,,,,,,,,,,,515,,,515,,,515,515,,,515,,,,,,515", ",,,,,,,,515,,,,,515,515,515,515,,515,515,515,515,,,,,515,515,,,,,,,515", ",515,515,515,,,515,515,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,133,133", "133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,133,,,,133,,,,,,,", ",133,,,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,231,231,231", "133,231,133,133,133,231,231,133,133,,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,231,231,231,,231", "231,231,231,,,,,231,231,231,,,242,242,242,231,242,231,231,231,242,242", "231,231,,242,,242,242,242,242,242,242,242,,,,,,242,242,242,242,242,242", "242,,,242,,,,,,,242,,,242,242,242,242,242,242,242,242,,242,242,242,", "242,242,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242,,,", ",,242,,,,,,,,,242,,,,,242,242,242,242,,242,242,242,242,,,,,242,242,", ",,247,247,247,242,247,242,242,242,247,247,242,242,,247,,247,247,247", "247,247,247,247,,,,,,247,247,247,247,247,247,247,,,247,,,,,,,247,,,247", "247,247,247,247,247,247,247,,247,247,247,,247,247,247,247,247,,,,,,", ",,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,,,,,,,,,247,,,,,247", "247,247,247,,247,247,247,247,,,,,247,247,,,,248,248,248,247,248,247", "247,247,248,248,247,247,,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", ",,,,248,248,,,,249,249,249,248,249,248,248,248,249,249,248,248,,249", ",249,249,249,249,249,249,249,,,,,,249,249,249,249,249,249,249,,,249", ",,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249,,249,249,249", "249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,", ",,249,,,,,249,249,249,249,,249,249,249,249,,,,,249,249,,,,250,250,250", "249,250,249,249,249,250,250,249,249,,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,250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250", "250,250,250,,,,,250,250,,,,251,251,251,250,251,250,250,250,251,251,250", "250,,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,,,251,251,,,251,,,,,,251", ",,,,,,,,251,,,,,251,251,251,251,,251,251,251,251,,,,,251,251,,,,252", "252,252,251,252,251,251,251,252,252,251,251,,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,252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252", "252,,252,252,252,252,,,,,252,252,,,,253,253,253,252,253,252,252,252", "253,253,252,252,,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,,,253,253,,,253", ",,,,,253,,,,,,,,,253,,,,,253,253,253,253,,253,253,253,253,,,,,253,253", ",,,254,254,254,253,254,253,253,253,254,254,253,253,,254,,254,254,254", "254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254,,,,,,,254,,,254", "254,254,254,254,254,254,254,,254,254,254,,254,254,254,254,254,,,,,,", ",,,,,,,,,,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,,,,254,,,,,254", "254,254,254,,254,254,254,254,,,,,254,254,,,,255,255,255,254,255,254", "254,254,255,255,254,254,,255,,255,255,255,255,255,255,255,,,,,,255,255", "255,255,255,255,255,,,255,,,,,,,255,,,255,255,255,255,255,255,255,255", ",255,255,255,,255,255,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255", "255,,,255,,,,,,255,,,,,,,,,255,,,,,255,255,255,255,,255,255,255,255", ",,,,255,255,,,,256,256,256,255,256,255,255,255,256,256,255,255,,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,,,,,,256,,,,,,", ",,256,,,,,256,256,256,256,,256,256,256,256,,,,,256,256,,,,257,257,257", "256,257,256,256,256,257,257,256,256,,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,,,,,,257,,,,,,,,,257,,,,,257,257,257,257,,257", "257,257,257,,,,,257,257,,,,258,258,258,257,258,257,257,257,258,258,257", "257,,258,,258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258", ",,258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258", "258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258", ",,,,,,,,258,,,,,258,258,258,258,,258,258,258,258,,,,,258,258,,,,259", "259,259,258,259,258,258,258,259,259,258,258,,259,,259,259,259,259,259", "259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259", "259,259,259,259,259,,259,259,259,,259,259,259,259,259,,,,,,,,,,,,,,", ",,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,,,,259,259,259", "259,,259,259,259,259,,,,,259,259,,,,260,260,260,259,260,259,259,259", "260,260,259,259,,260,,260,260,260,260,260,260,260,,,,,,260,260,260,260", "260,260,260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260", "260,,260,260,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260", ",,,,,260,,,,,,,,,260,,,,,260,260,260,260,,260,260,260,260,,,,,260,260", ",,,261,261,261,260,261,260,260,260,261,261,260,260,,261,,261,261,261", "261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261", "261,261,261,261,261,261,261,,261,261,261,,261,261,261,261,261,,,,,,", ",,,,,,,,,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261", "261,261,261,,261,261,261,261,,,,,261,261,,,,262,262,262,261,262,261", "261,261,262,262,261,261,,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,,,,,,,,,262,,,,,262,262,262,262,,262,262,262,262", ",,,,262,262,,,,263,263,263,262,263,262,262,262,263,263,262,262,,263", ",263,263,263,263,263,263,263,,,,,,263,263,263,263,263,263,263,,,263", ",,,,,,263,,,263,263,263,263,263,263,263,263,,263,263,263,,263,263,263", "263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,", ",,263,,,,,263,263,263,263,,263,263,263,263,,,,,263,263,,,,264,264,264", "263,264,263,263,263,264,264,263,263,,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,264,264,264,,264", "264,264,264,,,,,264,264,,,,265,265,265,264,265,264,264,264,265,265,264", "264,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265,265,265,265", ",,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265,265,,265", "265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265,,,,,,265", ",,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265,,,,266", "266,266,265,266,265,265,265,266,266,265,265,,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,266,266", "266,,266,266,266,266,,,,,266,266,,,,267,267,267,266,267,266,266,266", "267,267,266,266,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267", "267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267", "267,,267,267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267", ",,,,,267,,,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267", ",,,268,268,268,267,268,267,267,267,268,268,267,267,,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", "268,268,268,,268,268,268,268,,,,,268,268,,,,273,273,273,268,273,268", "268,268,273,273,268,268,,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,,,273", "273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273", ",,,,273,273,,,,974,974,974,273,974,273,273,273,974,974,273,273,,974", ",974,974,974,974,974,974,974,,,,,,974,974,974,974,974,974,974,,,974", ",,,,,,974,,,974,974,974,974,974,974,974,974,,974,974,974,,974,974,974", "974,974,,,,,,,,,,,,,,,,,,,,974,,,974,,,974,974,,,974,,,,,,974,,,,,,", ",,974,,,,,974,974,974,974,,974,974,974,974,,,,,974,974,,,,973,973,973", "974,973,974,974,974,973,973,974,974,,973,,973,973,973,973,973,973,973", ",,,,,973,973,973,973,973,973,973,,,973,,,,,,,973,,,973,973,973,973,973", "973,973,973,973,973,973,973,,973,973,973,973,973,,,,,,,,,,,,,,,,,,,", "973,,,973,,,973,973,,,973,,,,973,,973,,,973,,,,,,973,,,,,973,973,973", "973,,973,973,973,973,,,,,973,973,,,,954,954,954,973,954,973,973,973", "954,954,973,973,,954,,954,954,954,954,954,954,954,,,,,,954,954,954,954", "954,954,954,,,954,,,,,,,954,,,954,954,954,954,954,954,954,954,,954,954", "954,,954,954,954,954,954,,,,,,,,,,,,,,,,,,,,954,,,954,,,954,954,,,954", ",954,,,,954,,,,,,,,,954,,,,,954,954,954,954,,954,954,954,954,,,,,954", "954,,,,949,949,949,954,949,954,954,954,949,949,954,954,,949,,949,949", "949,949,949,949,949,,,,,,949,949,949,949,949,949,949,,,949,,,,,,,949", ",,949,949,949,949,949,949,949,949,,949,949,949,,949,949,949,949,949", ",,,,,,,,,,,,,,,,,,,949,,,949,,,949,949,,,949,,,,,,949,,,,,,,,,949,,", ",,949,949,949,949,,949,949,949,949,,,,,949,949,,,,945,945,945,949,945", "949,949,949,945,945,949,949,,945,,945,945,945,945,945,945,945,,,,,,945", "945,945,945,945,945,945,,,945,,,,,,,945,,,945,945,945,945,945,945,945", "945,,945,945,945,,945,945,945,945,945,,,,,,,,,,,,,,,,,,,,945,,,945,", ",945,945,,,945,,,,,,945,,,,,,,,,945,,,,,945,945,945,945,,945,945,945", "945,,,,,945,945,,,,289,289,289,945,289,945,945,945,289,289,945,945,", "289,,289,289,289,289,289,289,289,,,,,,289,289,289,289,289,289,289,,", "289,,,,,,,289,,,289,289,289,289,289,289,289,289,,289,289,289,,289,289", "289,289,289,,,,,,,,,,,,,,,,,,,,289,,,289,,,289,289,,,289,,,,,,289,,", ",,,,,,289,,,,,289,289,289,289,,289,289,289,289,,,,,289,289,,,,917,917", "917,289,917,289,289,289,917,917,289,289,,917,,917,917,917,917,917,917", "917,,,,,,917,917,917,917,917,917,917,,,917,,,,,,,917,,,917,917,917,917", "917,917,917,917,,917,917,917,,917,917,917,917,917,,,,,,,,,,,,,,,,,,", ",917,,,917,,,917,917,,,917,,,,,,917,,,,,,,,,917,,,,,917,917,917,917", ",917,917,917,917,,,,,917,917,,,,296,296,296,917,296,917,917,917,296", "296,917,917,,296,,296,296,296,296,296,296,296,,,,,,296,296,296,296,296", "296,296,,,296,,,,,,,296,,,296,296,296,296,296,296,296,296,296,296,296", "296,,296,296,296,296,296,,,,,,,,,,,,,,,,,,,,296,,,296,,,296,296,,,296", ",296,,296,,296,,,296,,,,,,296,,,,,296,296,296,296,,296,296,296,296,", ",,,296,296,,,,297,297,297,296,297,296,296,296,297,297,296,296,,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,", "297,,,297,,,,,,297,,,,,297,297,297,297,,297,297,297,297,,,,,297,297", ",,,305,305,305,297,305,297,297,297,305,305,297,297,,305,,305,305,305", "305,305,305,305,,,,,,305,305,305,305,305,305,305,,,305,,,,,,,305,,,305", "305,305,305,305,305,305,305,305,305,305,305,,305,305,305,305,305,,,", ",,,,,,,,,,,,,,,,305,,,305,,,305,305,,,305,,305,,305,,305,,,305,,,,,", "305,,,,,305,305,305,305,,305,305,305,305,,,,,305,305,305,,,897,897,897", "305,897,305,305,305,897,897,305,305,,897,,897,897,897,897,897,897,897", ",,,,,897,897,897,897,897,897,897,,,897,,,,,,,897,,,897,897,897,897,897", "897,897,897,,897,897,897,,897,897,897,897,897,,,,,,,,,,,,,,,,,,,,897", ",,897,,,897,897,,,897,,,,,,897,,,,,,,,,897,,,,,897,897,897,897,,897", "897,897,897,,,,,897,897,,,,312,312,312,897,312,897,897,897,312,312,897", "897,,312,,312,312,312,312,312,312,312,,,,,,312,312,312,312,312,312,312", ",,312,,,,,,,312,,,312,312,312,312,312,312,312,312,,312,312,312,,312", "312,312,312,312,,,,,,,,,,,,,,,,,,,,312,,,312,,,312,312,,,312,,,,,,312", ",,,,,,,,312,,,,,312,312,312,312,,312,312,312,312,,,,,312,312,,,,314", "314,314,312,314,312,312,312,314,314,312,312,,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,,,314,314,,,314,,,,,,314,,,,,,,,,314,,,,,314,314,314", "314,,314,314,314,314,,,,,314,314,,,,317,317,317,314,317,314,314,314", "317,317,314,314,,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,317,317,317,,317,317,317,317,,,,,317,317", ",,,318,318,318,317,318,317,317,317,318,318,317,317,,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", "318,318,318,,318,318,318,318,,,,,318,318,,,,,,,318,,318,318,318,,,318", "318,323,323,323,323,323,,,,323,323,,,,323,,323,323,323,323,323,323,323", ",,,,,323,323,323,323,323,323,323,,,323,,,,,,323,323,,323,323,323,323", "323,323,323,323,323,,323,323,323,,323,323,323,323,323,,,,,,,,,,,,,,", ",,,,,323,,,323,,,323,323,,,323,,323,,,,323,,,,,,,,,323,,,,,323,323,323", "323,,323,323,323,323,,,,,323,323,,,,868,868,868,323,868,323,323,323", "868,868,323,323,,868,,868,868,868,868,868,868,868,,,,,,868,868,868,868", "868,868,868,,,868,,,,,,,868,,,868,868,868,868,868,868,868,868,,868,868", "868,,868,868,868,868,868,,,,,,,,,,,,,,,,,,,,868,,,868,,,868,868,,,868", ",,,,,868,,,,,,,,,868,,,,,868,868,868,868,,868,868,868,868,,,,,868,868", ",,,867,867,867,868,867,868,868,868,867,867,868,868,,867,,867,867,867", "867,867,867,867,,,,,,867,867,867,867,867,867,867,,,867,,,,,,,867,,,867", "867,867,867,867,867,867,867,,867,867,867,,867,867,867,867,867,,,,,,", ",,,,,,,,,,,,,867,,,867,,,867,867,,,867,,,,,,867,,,,,,,,,867,,,,,867", "867,867,867,,867,867,867,867,,,,,867,867,,,,866,866,866,867,866,867", "867,867,866,866,867,867,,866,,866,866,866,866,866,866,866,,,,,,866,866", "866,866,866,866,866,,,866,,,,,,,866,,,866,866,866,866,866,866,866,866", ",866,866,866,,866,866,866,866,866,,,,,,,,,,,,,,,,,,,,866,,,866,,,866", "866,,,866,,,,,,866,,,,,,,,,866,,,,,866,866,866,866,,866,866,866,866", ",,,,866,866,,,,865,865,865,866,865,866,866,866,865,865,866,866,,865", ",865,865,865,865,865,865,865,,,,,,865,865,865,865,865,865,865,,,865", ",,,,,,865,,,865,865,865,865,865,865,865,865,,865,865,865,,865,865,865", "865,865,,,,,,,,,,,,,,,,,,,,865,,,865,,,865,865,,,865,,,,,,865,,,,,,", ",,865,,,,,865,865,865,865,,865,865,865,865,,,,,865,865,,,,852,852,852", "865,852,865,865,865,852,852,865,865,,852,,852,852,852,852,852,852,852", ",,,,,852,852,852,852,852,852,852,,,852,,,,,,,852,,,852,852,852,852,852", "852,852,852,,852,852,852,,852,852,852,852,852,,,,,,,,,,,,,,,,,,,,852", ",,852,,,852,852,,,852,,,,,,852,,,,,,,,,852,,,,,852,852,852,852,,852", "852,852,852,,,,,852,852,,,,844,844,844,852,844,852,852,852,844,844,852", "852,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844", ",,844,,,,,,,844,,,844,844,844,844,844,844,844,844,,844,844,844,,844", "844,844,844,844,,,,,,,,,,,,,,,,,,,,844,,,844,,,844,844,,,844,,,,,,844", ",,,,,,,,844,,,,,844,844,844,844,,844,844,844,844,,,,,844,844,,,,824", "824,824,844,824,844,844,844,824,824,844,844,,824,,824,824,824,824,824", "824,824,,,,,,824,824,824,824,824,824,824,,,824,,,,,,,824,,,824,824,824", "824,824,824,824,824,,824,824,824,,824,824,824,824,824,,,,,,,,,,,,,,", ",,,,,824,,,824,,,824,824,,,824,,,,,,824,,,,,,,,,824,,,,,824,824,824", "824,,824,824,824,824,,,,,824,824,,,,359,359,359,824,359,824,824,824", "359,359,824,824,,359,,359,359,359,359,359,359,359,,,,,,359,359,359,359", "359,359,359,,,359,,,,,,,359,,,359,359,359,359,359,359,359,359,,359,359", "359,,359,359,359,359,359,,,,,,,,,,,,,,,,,,,,359,,,359,,,359,359,,,359", ",,,,,359,,,,,,,,,359,,,,,359,359,359,359,,359,359,359,359,,,,,359,359", ",,,361,361,361,359,361,359,359,359,361,361,359,359,,361,,361,361,361", "361,361,361,361,,,,,,361,361,361,361,361,361,361,,,361,,,,,,,361,,,361", "361,361,361,361,361,361,361,,361,361,361,,361,361,361,361,361,,,,,,", ",,,,,,,,,,,,,361,,,361,361,,361,361,,,361,,,,,,361,,,,,,,,,361,,,,,361", "361,361,361,,361,361,361,361,,,,,361,361,,,,779,779,779,361,779,361", "361,361,779,779,361,361,,779,,779,779,779,779,779,779,779,,,,,,779,779", "779,779,779,779,779,,,779,,,,,,,779,,,779,779,779,779,779,779,779,779", ",779,779,779,,779,779,779,779,779,,,,,,,,,,,,,,,,,,,,779,,,779,,,779", "779,,,779,,,,,,779,,,,,,,,,779,,,,,779,779,779,779,,779,779,779,779", ",,,,779,779,,,,765,765,765,779,765,779,779,779,765,765,779,779,,765", ",765,765,765,765,765,765,765,,,,,,765,765,765,765,765,765,765,,,765", ",,,,,,765,,,765,765,765,765,765,765,765,765,,765,765,765,,765,765,765", "765,765,,,,,,,,,,,,,,,,,,,,765,,,765,,,765,765,,,765,,765,,,,765,,,", ",,,,,765,,,,,765,765,765,765,,765,765,765,765,,,,,765,765,,,,745,745", "745,765,745,765,765,765,745,745,765,765,,745,,745,745,745,745,745,745", "745,,,,,,745,745,745,745,745,745,745,,,745,,,,,,,745,,,745,745,745,745", "745,745,745,745,,745,745,745,,745,745,745,745,745,,,,,,,,,,,,,,,,,,", ",745,,,745,,,745,745,,,745,,,,,,745,,,,,,,,,745,,,,,745,745,745,745", ",745,745,745,745,,,,,745,745,,,,742,742,742,745,742,745,745,745,742", "742,745,745,,742,,742,742,742,742,742,742,742,,,,,,742,742,742,742,742", "742,742,,,742,,,,,,,742,,,742,742,742,742,742,742,742,742,,742,742,742", ",742,742,742,742,742,,,,,,,,,,,,,,,,,,,,742,,,742,,,742,742,,,742,,", ",,,742,,,,,,,,,742,,,,,742,742,742,742,,742,742,742,742,,,,,742,742", ",,,384,384,384,742,384,742,742,742,384,384,742,742,,384,,384,384,384", "384,384,384,384,,,,,,384,384,384,384,384,384,384,,,384,,,,,,,384,,,384", "384,384,384,384,384,384,384,,384,384,384,,384,384,384,384,384,,,,,,", ",,,,,,,,,,,,,384,,,384,,,384,384,,,384,,,,,,384,,,,,,,,,384,,,,,384", "384,384,384,,384,384,384,384,,,,,384,384,,,,733,733,733,384,733,384", "384,384,733,733,384,384,,733,,733,733,733,733,733,733,733,,,,,,733,733", "733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733,733,733,733", "733,733,733,733,,733,733,733,733,733,,,,,,,,,,,,,,,,,,,,733,,,733,,", "733,733,,,733,,733,,733,,733,,,733,,,,,,733,,,,,733,733,733,733,,733", "733,733,733,,,,,733,733,,,,685,685,685,733,685,733,733,733,685,685,733", "733,,685,,685,685,685,685,685,685,685,,,,,,685,685,685,685,685,685,685", ",,685,,,,,,,685,,,685,685,685,685,685,685,685,685,,685,685,685,,685", "685,685,685,685,,,,,,,,,,,,,,,,,,,,685,,,685,,,685,685,,,685,,,,,,685", ",,,,,,,,685,,,,,685,685,685,685,,685,685,685,685,,,,,685,685,,,,405", "405,405,685,405,685,685,685,405,405,685,685,,405,,405,405,405,405,405", "405,405,,,,,,405,405,405,405,405,405,405,,,405,,,,,,,405,,,405,405,405", "405,405,405,405,405,,405,405,405,,405,405,405,405,405,,,,,,,,,,,,,,", ",,,,,405,,,405,,,405,405,,,405,,,,,,405,,,,,,,,,405,,,,,405,405,405", "405,,405,405,405,405,,,,,405,405,,,,684,684,684,405,684,405,405,405", "684,684,405,405,,684,,684,684,684,684,684,684,684,,,,,,684,684,684,684", "684,684,684,,,684,,,,,,,684,,,684,684,684,684,684,684,684,684,,684,684", "684,,684,684,684,684,684,,,,,,,,,,,,,,,,,,,,684,,,684,,,684,684,,,684", ",,,,,684,,,,,,,,,684,,,,,684,684,684,684,,684,684,684,684,,,,,684,684", ",,,680,680,680,684,680,684,684,684,680,680,684,684,,680,,680,680,680", "680,680,680,680,,,,,,680,680,680,680,680,680,680,,,680,,,,,,,680,,,680", "680,680,680,680,680,680,680,,680,680,680,,680,680,680,680,680,,,,,,", ",,,,,,,,,,,,,680,,,680,,,680,680,,,680,,,,,,680,,,,,,,,,680,,,,,680", "680,680,680,,680,680,680,680,,,,,680,680,,,,679,679,679,680,679,680", "680,680,679,679,680,680,,679,,679,679,679,679,679,679,679,,,,,,679,679", "679,679,679,679,679,,,679,,,,,,,679,,,679,679,679,679,679,679,679,679", ",679,679,679,,679,679,679,679,679,,,,,,,,,,,,,,,,,,,,679,,,679,,,679", "679,,,679,,,,,,679,,,,,,,,,679,,,,,679,679,679,679,,679,679,679,679", ",,,,679,679,,,,678,678,678,679,678,679,679,679,678,678,679,679,,678", ",678,678,678,678,678,678,678,,,,,,678,678,678,678,678,678,678,,,678", ",,,,,,678,,,678,678,678,678,678,678,678,678,678,678,678,678,,678,678", "678,678,678,,,,,,,,,,,,,,,,,,,,678,,,678,,,678,678,,,678,,,,678,,678", ",,678,,,,,,678,,,,,678,678,678,678,,678,678,678,678,,,,,678,678,,,,677", "677,677,678,677,678,678,678,677,677,678,678,,677,,677,677,677,677,677", "677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,,,677,,,677,677,677", "677,677,677,677,677,677,677,677,677,,677,677,677,677,677,,,,,,,,,,,", ",,,,,,,,677,,,677,,,677,677,,,677,,677,,677,,677,,,677,,,,,,677,,,,", "677,677,677,677,,677,677,677,677,,,,,677,677,,,,674,674,674,677,674", "677,677,677,674,674,677,677,,674,,674,674,674,674,674,674,674,,,,,,674", "674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674,674,674,674,674", "674,,674,674,674,,674,674,674,674,674,,,,,,,,,,,,,,,,,,,,674,,,674,", ",674,674,,,674,,,,,,674,,,,,,,,,674,,,,,674,674,674,674,,674,674,674", "674,,,,,674,674,,,,,,,674,,674,674,674,,,674,674,673,673,673,673,673", ",,,673,673,,,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673", "673,673,673,,,673,,,,,,673,673,,673,673,673,673,673,673,673,673,673", ",673,673,673,,673,673,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673", "673,,,673,,673,,,,673,,,,,,,,,673,,,,,673,673,673,673,,673,673,673,673", ",,,,673,673,,,,670,670,670,673,670,673,673,673,670,670,673,673,,670", ",670,670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,,,670", ",,,,,,670,,,670,670,670,670,670,670,670,670,670,670,670,670,,670,670", "670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670,670,,,670,,670,,670,", "670,,,670,,,,,,670,,,,,670,670,670,670,,670,670,670,670,,,,,670,670", ",,,669,669,669,670,669,670,670,670,669,669,670,670,,669,,669,669,669", "669,669,669,669,,,,,,669,669,669,669,669,669,669,,,669,,,,,,,669,,,669", "669,669,669,669,669,669,669,,669,669,669,,669,669,669,669,669,,,,,,", ",,,,,,,,,,,,,669,,,669,,,669,669,,,669,,,,,,669,,,,,,,,,669,,,,,669", "669,669,669,,669,669,669,669,,,,,669,669,,,,668,668,668,669,668,669", "669,669,668,668,669,669,,668,,668,668,668,668,668,668,668,,,,,,668,668", "668,668,668,668,668,,,668,,,,,,,668,,,668,668,668,668,668,668,668,668", ",668,668,668,,668,668,668,668,668,,,,,,,,,,,,,,,,,,,,668,,,668,,,668", "668,,,668,,668,,,,668,,,,,,,,,668,,,,,668,668,668,668,,668,668,668,668", ",,,,668,668,,,,,,,668,,668,668,668,,,668,668,666,666,666,666,666,,,", "666,666,,,,666,,666,666,666,666,666,666,666,,,,,,666,666,666,666,666", "666,666,,,666,,,,,,666,666,,666,666,666,666,666,666,666,666,666,,666", "666,666,,666,666,666,666,666,,,,,,,,,,,,,,,,,,,,666,,,666,,,666,666", ",,666,,666,,,,666,,,,,,,,,666,,,,,666,666,666,666,,666,666,666,666,", ",,,666,666,,,,434,434,434,666,434,666,666,666,434,434,666,666,,434,", "434,434,434,434,434,434,434,,,,,,434,434,434,434,434,434,434,,,434,", ",,,,,434,,,434,434,434,434,434,434,434,434,,434,434,434,,434,434,434", "434,434,,,,,,,,,,,,,,,,,,,,434,,,434,,,434,434,,,434,,,,,,434,,,,,,", ",,434,,,,,434,434,434,434,,434,434,434,434,,,,,434,434,,,,635,635,635", "434,635,434,434,434,635,635,434,434,,635,,635,635,635,635,635,635,635", ",,,,,635,635,635,635,635,635,635,,,635,,,,,,,635,,,635,635,635,635,635", "635,635,635,635,635,635,635,,635,635,635,635,635,,,,,,,,,,,,,,,,,,,", "635,,,635,,,635,635,,,635,,635,,635,,635,,,635,,,,,,635,,,,,635,635", "635,635,,635,635,635,635,,,,,635,635,,,,625,625,625,635,625,635,635", "635,625,625,635,635,,625,,625,625,625,625,625,625,625,,,,,,625,625,625", "625,625,625,625,,,625,,,,,,,625,,,625,625,625,625,625,625,625,625,625", "625,625,625,,625,625,625,625,625,,,,,,,,,,,,,,,,,,,,625,,,625,,,625", "625,,,625,,625,,625,,625,,,625,,,,,,625,,,,,625,625,625,625,,625,625", "625,625,,,,,625,625,,,,624,624,624,625,624,625,625,625,624,624,625,625", ",624,,624,624,624,624,624,624,624,,,,,,624,624,624,624,624,624,624,", ",624,,,,,,,624,,,624,624,624,624,624,624,624,624,,624,624,624,,624,624", "624,624,624,,,,,,,,,,,,,,,,,,,,624,,,624,,,624,624,,,624,,624,,,,624", ",,,,,,,,624,,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,,,611", "611,611,624,611,624,624,624,611,611,624,624,,611,,611,611,611,611,611", "611,611,,,,,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611", "611,611,611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,", ",,,,,,,,611,,,611,,,611,611,,,611,,,,,,611,,,611,,,,,,611,,,,,611,611", "611,611,,611,611,611,611,,,,,611,611,,,,608,608,608,611,608,611,611", "611,608,608,611,611,,608,,608,608,608,608,608,608,608,,,,,,608,608,608", "608,608,608,608,,,608,,,,,,,608,,,608,608,608,608,608,608,608,608,608", "608,608,608,,608,608,608,608,608,,,,,,,,,,,,,,,,,,,,608,,,608,,,608", "608,,,608,,608,,,,608,,,608,,,,,,608,,,,,608,608,608,608,,608,608,608", "608,,,,,608,608,,,,,,,608,,608,608,608,458,,608,608,,,,458,458,458,", ",458,458,458,,458,,,,,,,,458,458,458,458,,,,,,,,,458,458,,458,458,458", "458,458,,,,,,,,,,,,,,,,,,,,,,,458,458,458,458,458,458,458,458,458,458", "458,458,458,458,,,458,458,458,,,458,,458,458,,,458,458,,458,,458,,458", ",458,458,,458,458,458,458,458,,458,458,458,,,,,,,,,,,,,,458,,,458,458", ",458,,458,602,602,602,,602,,458,,602,602,,,,602,,602,602,602,602,602", "602,602,,,,,,602,602,602,602,602,602,602,,,602,,,,,,,602,,,602,602,602", "602,602,602,602,602,,602,602,602,,602,602,602,602,602,,,,,,,,,,,,,,", ",,,,,602,,,602,,,602,602,,,602,,,,,,602,,,,,,,,,602,,,,,602,602,602", "602,,602,602,602,602,,,,,602,602,,,,,,,602,,602,602,602,467,,602,602", ",,,467,467,467,,,467,467,467,,467,,,,,,,,467,467,467,467,467,,,,,,,", "467,467,,467,467,467,467,467,,,,,,,,,,,,,,,,,,,,,,,467,467,467,467,467", "467,467,467,467,467,467,467,467,467,,,467,467,467,,,467,,,467,,,467", "467,,467,,467,,467,,467,467,,467,467,467,467,467,,467,467,467,,,,,,", ",,,,,,,467,,,467,467,467,467,,467,468,467,,,,,467,468,468,468,,,468", "468,468,,468,,,,,,,,468,468,468,468,468,,,,,,,,468,468,,468,468,468", "468,468,,,,,,,,,,,,,,,,,,,,,,,468,468,468,468,468,468,468,468,468,468", "468,468,468,468,,,468,468,468,,,468,,,468,,,468,468,,468,,468,,468,", "468,468,,468,468,468,468,468,,468,468,468,,,,,,,,,,,,,,468,,,468,468", "468,468,,468,,468,,588,588,588,468,588,,,,588,588,,,,588,,588,588,588", "588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,,,588,,,588", "588,588,588,588,588,588,588,,588,588,588,,588,588,588,588,588,,,,,,", ",,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,588,,,,,,,,,588,,,,,588", "588,588,588,,588,588,588,588,,,,,588,588,,,,562,562,562,588,562,588", "588,588,562,562,588,588,,562,,562,562,562,562,562,562,562,,,,,,562,562", "562,562,562,562,562,,,562,,,,,,,562,,,562,562,562,562,562,562,562,562", ",562,562,562,,562,562,562,562,562,,,,,,,,,,,,,,,,,,,,562,,,562,,,562", "562,,,562,,,,,,562,,,,,,,,,562,,,,,562,562,562,562,,562,562,562,562", ",,,,562,562,,,,561,561,561,562,561,562,562,562,561,561,562,562,,561", ",561,561,561,561,561,561,561,,,,,,561,561,561,561,561,561,561,,,561", ",,,,,,561,,,561,561,561,561,561,561,561,561,,561,561,561,,561,561,561", "561,561,,,,,,,,,,,,,,,,,,,,561,,,561,,,561,561,,,561,,,,,,561,,,,,,", ",,561,,,,,561,561,561,561,,561,561,561,561,,,,,561,561,,,,477,477,477", "561,477,561,561,561,477,477,561,561,,477,,477,477,477,477,477,477,477", ",,,,,477,477,477,477,477,477,477,,,477,,,,,,,477,,,477,477,477,477,477", "477,477,477,477,477,477,477,,477,477,477,477,477,,,,,,,,,,,,,,,,,,,", "477,,,477,,,477,477,,,477,,477,,477,,477,,,477,,,,,,477,,,,,477,477", "477,477,,477,477,477,477,,,,,477,477,,,,558,558,558,477,558,477,477", "477,558,558,477,477,,558,,558,558,558,558,558,558,558,,,,,,558,558,558", "558,558,558,558,,,558,,,,,,,558,,,558,558,558,558,558,558,558,558,,558", "558,558,,558,558,558,558,558,,,,,,,,,,,,,,,,,,,,558,,,558,,,558,558", ",,558,,,,,,558,,,,,,,,,558,,,,,558,558,558,558,,558,558,558,558,,,,", "558,558,,,,479,479,479,558,479,558,558,558,479,479,558,558,,479,,479", "479,479,479,479,479,479,,,,,,479,479,479,479,479,479,479,,,479,,,,,", ",479,,,479,479,479,479,479,479,479,479,,479,479,479,,479,479,479,479", "479,,,,,,,,,,,,,,,,,,,,479,,,479,,,479,479,,,479,,,,,,479,,,,,,,,,479", ",,,,479,479,479,479,,479,479,479,479,,,,,479,479,,,,480,480,480,479", "480,479,479,479,480,480,479,479,,480,,480,480,480,480,480,480,480,,", ",,,480,480,480,480,480,480,480,,,480,,,,,,,480,,,480,480,480,480,480", "480,480,480,,480,480,480,,480,480,480,480,480,,,,,,,,,,,,,,,,,,,,480", ",,480,,,480,480,,,480,,,,,,480,,,,,,,,,480,,,,,480,480,480,480,,480", "480,480,480,,,,,480,480,,,,481,481,481,480,481,480,480,480,481,481,480", "480,,481,,481,481,481,481,481,481,481,,,,,,481,481,481,481,481,481,481", ",,481,,,,,,,481,,,481,481,481,481,481,481,481,481,,481,481,481,,481", "481,481,481,481,,,,,,,,,,,,,,,,,,,,481,,,481,,,481,481,,,481,,,,,,481", ",,,,,,,,481,,,,,481,481,481,481,,481,481,481,481,,,,,481,481,,,,555", "555,555,481,555,481,481,481,555,555,481,481,,555,,555,555,555,555,555", "555,555,,,,,,555,555,555,555,555,555,555,,,555,,,,,,,555,,,555,555,555", "555,555,555,555,555,,555,555,555,,555,555,555,555,555,,,,,,,,,,,,,,", ",,,,,555,,,555,,,555,555,,,555,,,,,,555,,,,,,,,,555,,,,,555,555,555", "555,,555,555,555,555,,,,,555,555,,,,545,545,545,555,545,555,555,555", "545,545,555,555,,545,,545,545,545,545,545,545,545,,,,,,545,545,545,545", "545,545,545,,,545,,,,,,,545,,,545,545,545,545,545,545,545,545,545,545", "545,545,,545,545,545,545,545,,,,,,,,,,,,,,,,,,,,545,,,545,,,545,545", ",,545,,545,,545,,545,,,545,,,,,,545,,,,,545,545,545,545,,545,545,545", "545,,,,,545,545,,,,,,,545,,545,545,545,,,545,545,535,535,535,535,535", ",,,535,535,,,,535,,535,535,535,535,535,535,535,,,,,,535,535,535,535", "535,535,535,,,535,,,,,,535,535,535,535,535,535,535,535,535,535,535,535", ",535,535,535,,535,535,535,535,535,,,,,,,,,,,,,,,,,,,,535,,,535,,,535", "535,,,535,,535,,,,535,,,,,,,,,535,,,,,535,535,535,535,,535,535,535,535", ",,,,535,535,,,,,,535,535,,535,535,535,,,535,535,529,529,529,,529,,,", "529,529,,,,529,,529,529,529,529,529,529,529,,,,,,529,529,529,529,529", "529,529,,,529,,,,,,,529,,,529,529,529,529,529,529,529,529,,529,529,529", ",529,529,529,529,529,,,,,,,,,,,,,,,,,,,,529,,,529,,,529,529,,,529,,", ",,,529,,,,,,,,,529,,,,,529,529,529,529,,529,529,529,529,,,,,529,529", ",,,527,527,527,529,527,529,529,529,527,527,529,529,,527,,527,527,527", "527,527,527,527,,,,,,527,527,527,527,527,527,527,,,527,,,,,,,527,,,527", "527,527,527,527,527,527,527,527,527,527,527,,527,527,527,527,527,,,", ",,,,,,,,,,,,,,,,527,,,527,,,527,527,,,527,,,,527,,527,,,527,,,,,,527", ",,,,527,527,527,527,,527,527,527,527,,,,,527,527,,,,525,525,525,527", "525,527,527,527,525,525,527,527,,525,,525,525,525,525,525,525,525,,", ",,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525,525,525,525,525", "525,525,525,525,525,525,525,,525,525,525,525,525,,,,,,,,,,,,,,,,,,,", "525,,,525,,,525,525,,,525,,525,,525,,525,,,525,,,,,,525,,,,,525,525", "525,525,,525,525,525,525,,,,,525,525,,,,219,219,219,525,219,525,525", "525,219,219,525,525,,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,,,219,219", ",,219,,219,,,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,", ",,,219,219,,,,220,220,220,219,220,219,219,219,220,220,219,219,,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,,,220,220,,,220,,220,,,,220,,,", ",,,,,220,,,,,220,220,220,220,,220,220,220,220,,,,,220,220,,,,221,221", "221,220,221,220,220,220,221,221,220,220,,221,,221,221,221,221,221,221", "221,,,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221", "221,221,221,221,,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,", ",221,,,221,,,221,221,,,221,,,,,,221,,,,,,,,,221,,,,,221,221,221,221", ",221,221,221,221,,,,,221,221,,,,222,222,222,221,222,221,221,221,222", "222,221,221,,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,222,222,222,,222,222,222,222,,,,,222,222", ",,,223,223,223,222,223,222,222,222,223,223,222,222,,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", "223,223,223,,223,223,223,223,,,,,223,223,,,,224,224,224,223,224,223", "223,223,224,224,223,223,,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,224,,,224,,224,,224,,224,,,224,,,,,,224,,,,,224,224,224,224,,224", "224,224,224,,,,,224,224,,,,229,229,229,224,229,224,224,224,229,229,224", "224,,229,,229,229,229,229,229,229,229,,,,,,229,229,229,229,229,229,229", ",,229,,,,,,,229,,,229,229,229,229,229,229,229,229,,229,229,229,,229", "229,229,229,229,,,,,,,,,,,,,,,,,,,,229,,,229,,,229,229,,,229,,,,,,229", ",,,,,,,,229,,,,,229,229,229,229,,229,229,229,229,,,,,229,229,,,,230", "230,230,229,230,229,229,229,230,230,229,229,,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,230,230", "230,,230,230,230,230,,,,,230,230,,,,1023,1023,1023,230,1023,230,230", "230,1023,1023,230,230,,1023,,1023,1023,1023,1023,1023,1023,1023,,,,", ",1023,1023,1023,1023,1023,1023,1023,,,1023,,,,,,,1023,,,1023,1023,1023", "1023,1023,1023,1023,1023,,1023,1023,1023,,1023,1023,,,1023,,,,,,,,,", ",,,,,,,,,,1023,,,1023,,,1023,1023,,,1023,,,,,,,,,,,,,,,,,,,,1023,1023", "1023,1023,,1023,1023,1023,1023,,,,,1023,1023,,,,76,76,76,1023,76,1023", "1023,1023,76,76,,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76", ",,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,", ",,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,", "76,76,76,76,,,,,76,76,,,,748,748,748,76,748,76,76,76,748,748,,,,748", ",748,748,748,748,748,748,748,,,,,,748,748,748,748,748,748,748,,,748", ",,,,,,748,,,748,748,748,748,748,748,748,748,,748,748,748,,748,748,,", "748,,,,,,,,,,,,,,,,,,,,748,,,748,,,748,748,,,748,,,,,,,,,,,,,,,,,,,", "748,748,748,748,,748,748,748,748,,,,,748,748,,,,759,759,759,748,759", "748,748,748,759,759,,,,759,,759,759,759,759,759,759,759,,,,,,759,759", "759,759,759,759,759,,,759,,,,,,,759,,,759,759,759,759,759,759,759,759", ",759,759,759,,759,759,,,759,,,,,,,,,,,,,,,,,,,,759,,,759,,,759,759,", ",759,,,,,,,,,,,,,,,,,,,,759,759,759,759,,759,759,759,759,,,,,759,759", ",,,350,350,350,759,350,759,759,759,350,350,,,,350,,350,350,350,350,350", "350,350,,,,,,350,350,350,350,350,350,350,,,350,,,,,,,350,,,350,350,350", "350,350,350,350,350,,350,350,350,,350,350,,,350,,,,,,,,,,,,,,,,,,,,350", ",,350,,,350,350,,,350,,,,,,,,,,,,,,,,,,,,350,350,350,350,,350,350,350", "350,,,,,350,350,,,,37,37,37,350,37,350,350,350,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,,37,,,,,,,,,,,,,,,,,,37,37,37,37,,37,37,37,37,,,,,37,37,,,,552,552", "552,37,552,37,37,37,552,552,,,,552,,552,552,552,552,552,552,552,,,,", ",552,552,552,552,552,552,552,,,552,,,,,,,552,,,552,552,552,552,552,552", "552,552,,552,552,552,,552,552,,,552,,,,,,,,,,,,,,,,,,,,552,,,552,,,552", "552,,,552,,,,,,,,,,,,,,,,,,,,552,552,552,552,,552,552,552,552,,,,,552", "552,,,,1103,1103,1103,552,1103,552,552,552,1103,1103,,,,1103,,1103,1103", "1103,1103,1103,1103,1103,,,,,,1103,1103,1103,1103,1103,1103,1103,,,1103", ",,,,,,1103,,,1103,1103,1103,1103,1103,1103,1103,1103,,1103,1103,1103", ",1103,1103,,,1103,,,,,,,,,,,,,,,,,,,,1103,,,1103,,,1103,1103,,,1103", ",,,,,,,,,,,,,,,,,,,1103,1103,1103,1103,,1103,1103,1103,1103,,,,,1103", "1103,,,,77,77,77,1103,77,1103,1103,1103,77,77,,,,77,,77,77,77,77,77", "77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77", "77,,77,77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,", ",,,,,,,,,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,543,543,543", "77,543,77,77,77,543,543,,,,543,,543,543,543,543,543,543,543,,,,,,543", "543,543,543,543,543,543,,,543,,,,,,,543,,,543,543,543,543,543,543,543", "543,,543,543,543,,543,543,,,543,,,,,,,,,,,,,,,,,,,,543,,,543,,,543,543", ",,543,,,,,,,,,,,,,,,,,,,,543,543,543,543,,543,543,543,543,,,,,543,543", ",,,78,78,78,543,78,543,543,543,78,78,,,,78,,78,78,78,78,78,78,78,,,", ",,78,78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78", "78,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,", ",,,,,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,38,38,38,78,38,78,78,78", "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,,,777,,777,777,777,777,777,,,,,,,,,777,,38", "38,38,38,,38,38,38,38,,,,,38,38,,,,38,,777,38,,38,38,38,331,331,331", ",331,777,777,,331,331,777,,,331,,331,331,331,331,331,331,331,,,,,,331", "331,331,331,331,331,331,,,331,,,,,,,331,,,331,331,331,331,331,331,331", "331,,331,331,331,,331,331,,,331,,,,,,,,,,,,,,,,,,,,331,,,331,,,331,331", ",,331,,,1043,,1043,1043,1043,1043,1043,,,,,,,,,1043,,331,331,331,331", ",331,331,331,331,,,,,331,331,,,,331,,1043,331,,331,331,331,1033,1033", "1033,,1033,1043,1043,,1033,1033,1043,,,1033,,1033,1033,1033,1033,1033", "1033,1033,,,,,,1033,1033,1033,1033,1033,1033,1033,,,1033,,,,,,,1033", ",,1033,1033,1033,1033,1033,1033,1033,1033,,1033,1033,1033,,1033,1033", ",,1033,,,,,,,,,,,,,,,,,,,,1033,,,1033,,,1033,1033,,,1033,,,,,,,,,,,", ",,,,,,,,1033,1033,1033,1033,,1033,1033,1033,1033,,,,,1033,1033,,,,,", ",1033,,1033,1033,1033,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,,,,,,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,11,11,11,11", "11,,,11,11,,,,,,,,,,,,,,11,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,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,10,10,10,10,10", "10,10,10,,,10,10,,,,,,,,,,,,,,10,664,664,664,664,664,664,664,664,664", "664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,,,,664,664", "664,664,664,664,664,664,664,664,,,,,,664,664,664,664,664,664,664,664", "664,,,664,,,,,,,,664,664,,664,664,664,664,664,664,664,,,664,664,,,,664", "664,664,664,,,,,,,,,,,,,,664,664,,664,664,664,664,664,664,664,664,664", "664,664,664,,,664,664,,,,,,,,,,,,,,664,425,425,425,425,425,425,425,425", "425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,,,,425", "425,425,425,425,425,425,425,425,425,,,,,,425,425,425,425,425,425,425", "425,425,,,425,,,,,,,,425,425,,425,425,425,425,425,425,425,,,425,425", ",,,425,425,425,425,,,,,,,,,,,,,,425,425,,425,425,425,425,425,425,425", "425,425,425,425,425,,,425,425,,,,,,,,,,,,,,425,24,24,24,24,24,24,24", "24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,,,,24,24,24,24,24", "24,24,24,24,24,,,,,,24,24,24,24,24,24,24,24,24,24,24,24,,24,,,,,,24", "24,,24,24,24,24,24,24,24,,,24,24,,,,24,24,24,24,,,,,,24,,,,,,,,24,24", ",24,24,24,24,24,24,24,24,24,24,24,24,,,24,1001,1001,1001,1001,,,,,,", ",,,,,,1001,1001,1001,1001,,,367,1001,367,367,367,367,367,1001,1001,", ",1001,,,,367,,,,,,,,,,,,,,,,1001,,,1001,,,367,1001,,,1001,,,,,367,367", "367,367,,,,367,,,,1001,,,,1001,1001,1001,1001,,1001,1001,1001,1001,", ",,,1001,1001,1084,1084,1084,1084,,,1001,,1001,1001,1001,,,1001,1001", ",1084,1084,1084,1084,,,793,1084,793,793,793,793,793,1084,1084,,,1084", ",,,793,,,,,,,,,,,,,,,,1084,,,1084,,,793,1084,,,1084,,,,,793,793,793", "793,,,,793,,,,1084,,,,1084,1084,1084,1084,,1084,1084,1084,1084,,,,,1084", "1084,985,985,985,985,,,1084,,1084,1084,1084,,,1084,1084,,985,985,985", "985,,,1212,985,1212,1212,1212,1212,1212,985,985,,,985,,,,1212,,,,,,", ",,,,,,,,,985,,,985,,,1212,985,,,985,,,,,,,1212,1212,,,,1212,,,,985,", ",,985,985,985,985,,985,985,985,985,,,,,985,985,1138,1138,1138,1138,", ",985,,985,985,985,,,985,985,,1138,1138,1138,1138,,,775,1138,775,775", "775,775,775,1138,1138,,,1138,,,,775,,,,,,,,,,,,,,,,1138,,,1138,,,775", "1138,,,1138,,,,,775,775,775,775,,,,775,,,,1138,,,,1138,1138,1138,1138", ",1138,1138,1138,1138,,,,,1138,1138,1200,1200,1200,1200,,,1138,,1138", "1138,1138,,,1138,1138,,1200,1200,1200,1200,,,1041,1200,1041,1041,1041", "1041,1041,1200,1200,,,1200,,,,1041,,,,,,,,,,,,,,,,1200,,,1200,,,1041", "1200,,,1200,,,,,,,1041,1041,,,,1041,,,,1200,,,,1200,1200,1200,1200,", "1200,1200,1200,1200,,,,,1200,1200,1140,1140,1140,1140,,,1200,,1200,1200", "1200,,,1200,1200,,1140,1140,1140,1140,,,1038,1140,1038,1038,1038,1038", "1038,1140,1140,,,1140,,,,1038,,,,,,,,,,,,,,,,1140,,,1140,,,1038,1140", ",,1140,,1140,,,,,1038,1038,,,,1038,,,,1140,,,,1140,1140,1140,1140,,1140", "1140,1140,1140,,,,,1140,1140,1176,1176,1176,1176,,,1140,,1140,1140,1140", ",,1140,1140,,1176,1176,1176,1176,,,1159,1176,1159,1159,1159,1159,1159", "1176,1176,,,1176,,,,1159,,,,,,,,,,,,,,,,1176,,,1176,,,1159,1176,,,1176", ",,,,,,1159,1159,,,,1159,,,,1176,,,,1176,1176,1176,1176,,1176,1176,1176", "1176,,,,,1176,1176,,,,,,,1176,,1176,1176,1176,,,1176,1176,725,725,725", "725,725,725,725,725,725,725,725,725,725,725,725,725,725,725,725,725", "725,725,725,725,,,,725,725,725,725,725,725,725,725,725,725,,,,,,725", "725,725,725,725,725,725,725,725,,,725,,,,,,,,725,725,,725,725,725,725", "725,725,725,,,725,725,,,,725,725,725,725,,,,,,,,,,,,,,725,725,,725,725", "725,725,725,725,725,725,725,725,725,725,,,725,953,953,953,953,,,1099", ",1099,1099,1099,1099,1099,,,,953,953,953,953,,1099,,953,953,,,,,953", "953,,,953,953,,,,,,,,,1099,,,,,,,,,,953,1099,1099,953,,,1099,953,,,953", ",953,,,,,,,953,,,,,,,953,,,,953,953,953,953,,953,953,953,953,,,,,953", "953,701,701,701,701,,,953,,953,953,953,,,953,953,,701,701,701,701,,", "1036,701,1036,1036,1036,1036,1036,701,701,,,701,,,,1036,,,,,,,,,,,,", ",,,701,,,701,,,1036,701,,,701,,701,,,1036,1036,1036,1036,,,,1036,,,", "701,,,,701,701,701,701,,701,701,701,701,,,,,701,701,701,889,889,889", "889,,701,,701,701,701,,,701,701,,,889,889,889,889,,,1094,889,1094,1094", "1094,1094,1094,889,889,,,889,,,,1094,,,,,,,,,,,,,,,,889,,,889,,,1094", "889,,,889,,,,,1094,1094,1094,1094,,,,1094,,,,889,,,,889,889,889,889", ",889,889,889,889,,,,,889,889,482,482,482,482,,,889,,889,889,889,,,889", "889,,482,482,482,482,,,1097,482,1097,1097,1097,1097,1097,482,482,,,482", ",,,1097,,,,,,,,,,,,,,,,482,,,482,,,1097,482,,,482,,,,,1097,1097,1097", "1097,,,,1097,,,,482,,,,482,482,482,482,,482,482,482,482,,,,,482,482", "881,881,881,881,,,482,,482,482,482,,,482,482,,881,881,881,881,,,1186", "881,1186,1186,1186,1186,1186,881,881,,,881,,,,1186,,,,,,,,,,,,,,,,881", ",,881,,,1186,881,,,881,,881,,,,,1186,1186,,,,1186,,,,881,,,,881,881", "881,881,,881,881,881,881,,,,,881,881,875,875,875,875,,,881,,881,881", "881,,,881,881,,875,875,875,875,,,,875,875,,,,,875,875,,,875,875,,,,", ",,,,,,,,,,,,,,875,,,875,,,,875,,,875,,875,,,,,,,875,,,,,,,875,,,,875", "875,875,875,,875,875,875,875,,,,,875,875,874,874,874,874,,,875,,875", "875,875,,,875,875,,874,874,874,874,,,,874,874,,,,,874,874,,,874,874", ",,,,,,,,,,,,,,,,,,874,,,874,,,,874,,,874,,874,,,,,,,874,,,,,,,874,,", ",874,874,874,874,,874,874,874,874,,,,,874,874,871,871,871,871,,,874", ",874,874,874,,,874,874,,871,871,871,871,,,1184,871,1184,1184,1184,1184", "1184,871,871,,,871,,,,1184,,,,,,,,,,,,,,,,871,,,871,,,1184,871,,,871", ",,,,,,1184,1184,,,,1184,,,,871,,,,871,871,871,871,,871,871,871,871,", ",,,871,871,483,483,483,483,,,871,,871,871,871,,,871,871,,483,483,483", "483,,,1182,483,1182,1182,1182,1182,1182,483,483,,,483,,,,1182,,,,,,", ",,,,,,,,,483,,,483,,,1182,483,,,483,,,,,,,1182,1182,,,,1182,,,,483,", ",,483,483,483,483,,483,483,483,483,,,,,483,483,1124,1124,1124,1124,", ",483,,483,483,483,,,483,483,,1124,1124,1124,1124,,,,1124,,,,,,1124,1124", ",,1124,,,,,,,,708,708,708,708,,,,,,,,,1124,,,1124,708,708,708,1124,", ",1124,,1124,,,,,708,708,,,708,,,,,1124,,,,1124,1124,1124,1124,,1124", "1124,1124,1124,,,,,1124,1124,,,,,,,1124,,1124,1124,1124,,,1124,1124", "407,,407,407,407,407,407,,,,,708,708,708,708,407,708,708,708,708,,,", ",708,708,891,891,891,891,,,708,,708,708,708,407,407,,,,891,891,891,", "407,407,407,407,,,,407,,891,891,,,891,890,890,890,890,,,,,,,,,,,,,890", "890,890,,,,,,,,,,,890,890,,,890,,,,,,,,,,,,,,,,891,891,891,891,,891", "891,891,891,,,,,891,891,,,,,,,891,,891,891,891,,,,,,,,,890,890,890,890", ",890,890,890,890,,,,,890,890,671,671,,,671,,890,,890,890,890,,671,671", ",671,671,671,671,671,671,671,,,671,671,,,,671,671,671,671,,,,,,671,", ",,,,,,671,671,,671,671,671,671,671,671,671,671,671,671,671,671,626,626", "671,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,,,626,626,,,,626", "626,626,626,,,,,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,626", "626,626,626,626,225,225,626,,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,226,226,225,,226,,,,,,,,226", "226,,226,226,226,226,226,226,226,,,226,226,,,,226,226,226,226,,,,,,226", ",,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226,226,627", "627,226,,627,,,,,,,,627,627,,627,627,627,627,627,627,627,,,627,627,", ",,627,627,627,627,,,,,,627,,,,,,,,627,627,,627,627,627,627,627,627,627", "627,627,627,627,627,547,547,627,,547,,,,,,,,547,547,,547,547,547,547", "547,547,547,,,547,547,,,,547,547,547,547,,,,,,547,,,,,,,,547,547,,547", "547,547,547,547,547,547,547,547,547,547,547,475,475,547,,475,,,,,,,", "475,475,,475,475,475,475,475,475,475,,,475,475,,,,475,475,475,475,,", ",,,475,,,,,,,,475,475,,475,475,475,475,475,475,475,475,475,475,475,475", "1152,1152,475,,1152,,,,,,,,1152,1152,,1152,1152,1152,1152,1152,1152", "1152,,,1152,1152,,,,1152,1152,1152,1152,,,,,,1152,,,,,,,,1152,1152,", "1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,633,633", "1152,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,,,633,633,,,,633", "633,633,633,,,,,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,633", "633,633,633,633,556,556,633,,556,,,,,,,,556,556,,556,556,556,556,556", "556,556,,,556,556,,,,556,556,556,556,,,,,,556,,,,,,,,556,556,,556,556", "556,556,556,556,556,556,556,556,556,556,557,557,556,,557,,,,,,,,557", "557,,557,557,557,557,557,557,557,,,557,557,,,,557,557,557,557,,,,,,557", ",,,,,,,557,557,,557,557,557,557,557,557,557,557,557,557,557,557,546", "546,557,,546,,,,,,,,546,546,,546,546,546,546,546,546,546,,,546,546,", ",,546,546,546,546,,,,,,546,,,,,,,,546,546,,546,546,546,546,546,546,546", "546,546,546,546,546,634,634,546,,634,,,,,,,,634,634,,634,634,634,634", "634,634,634,,,634,634,,,,634,634,634,634,,,,,,634,,,,,,,,634,634,,634", "634,634,634,634,634,634,634,634,634,634,634,1156,1156,634,,1156,,,,", ",,,1156,1156,,1156,1156,1156,1156,1156,1156,1156,,,1156,1156,,,,1156", "1156,1156,1156,,,,,,1156,,,,,,,,1156,1156,,1156,1156,1156,1156,1156", "1156,1156,1156,1156,1156,1156,1156,476,476,1156,,476,,,,,,,,476,476", ",476,476,476,476,476,476,476,,,476,476,,,,476,476,476,476,,,,,,476,", ",,,,,,476,476,,476,476,476,476,476,476,476,476,476,476,476,476,1157", "1157,476,,1157,,,,,,,,1157,1157,,1157,1157,1157,1157,1157,1157,1157", ",,1157,1157,,,,1157,1157,1157,1157,,,,,,1157,,,,,,,,1157,1157,,1157", "1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,672,672,1157", ",672,,,,,,,,672,672,,672,672,672,672,672,672,672,,,672,672,,,,672,672", "672,672,,,,,,672,,,,,,,,672,672,,672,672,672,672,672,672,672,672,672", "672,672,672,,641,672,641,641,641,641,641,,1180,,1180,1180,1180,1180", "1180,641,,,,,,,,1180,,,,,,,,,,,,,,641,,,,,,,,1180,641,641,641,641,,", ",641,1180,1180,1180,1180,,,,1180"]; - racc_action_check = (arr = $$$('::', 'Array').$new(28007, nil)); + return (idx = $rb_plus(idx, 1));}, 1);}, 1); + clist = ["464,521,1016,837,1236,838,992,464,464,464,515,515,1053,464,464,289,464", "23,835,631,1087,1058,289,807,464,927,443,137,396,785,3,840,137,137,501", "31,464,464,1089,464,464,464,464,464,1104,1105,1108,384,385,392,850,622", "501,625,1092,932,1092,331,23,928,521,625,331,393,1058,927,464,464,464", "464,464,464,464,464,464,464,464,464,464,464,289,1165,464,464,464,443", "464,464,1200,807,464,1201,839,464,1053,928,840,9,464,31,464,932,464", "464,515,464,464,464,464,464,871,464,837,464,838,992,785,871,871,871", "1016,1202,31,871,871,1016,871,464,631,807,464,464,807,464,871,464,835", "396,1087,835,840,835,464,1087,807,464,871,871,1203,871,871,871,871,871", "1222,622,1089,839,392,850,622,1089,1104,1105,1108,384,385,1104,1105", "1108,384,385,393,981,981,12,871,871,871,871,871,871,871,871,871,871", "871,871,871,871,553,553,871,871,871,69,871,871,1202,1165,871,839,416", "871,1165,1127,1200,735,871,1201,871,1200,871,871,1201,871,871,871,871", "871,251,871,729,871,243,1203,244,641,641,729,729,729,358,358,729,729", "729,871,729,1202,871,871,802,871,1202,871,729,729,729,729,729,417,871", "735,802,871,14,808,729,729,246,729,729,729,729,729,1203,981,416,1127", "1127,1203,1222,810,979,15,251,1222,351,576,252,17,69,243,553,244,1127", "27,729,729,729,729,729,729,729,729,729,729,729,729,729,729,20,458,729", "729,729,656,729,729,358,358,729,48,48,729,729,417,729,246,729,641,729", "808,729,729,641,729,729,729,729,729,42,729,729,729,252,459,810,810,979", "947,351,576,576,576,658,45,414,729,458,413,729,729,729,729,53,729,20", "729,576,730,458,808,729,351,808,729,730,730,730,656,656,730,730,730", "1220,730,808,810,979,656,810,979,459,730,1220,730,730,730,1006,48,48", "727,810,979,459,730,730,216,730,730,730,730,730,947,947,947,756,229", "658,658,414,414,414,413,413,413,728,923,658,402,947,19,746,402,756,730", "730,730,730,730,730,730,730,730,730,730,730,730,730,746,44,730,730,730", "412,730,730,1006,231,730,727,291,730,730,418,730,288,730,291,730,235", "730,730,288,730,730,730,730,730,870,730,869,730,700,700,728,923,19,972", "415,972,972,972,972,972,245,730,44,290,730,730,730,730,972,730,290,730", "996,872,44,822,730,996,822,730,872,872,872,412,412,412,872,872,776,872", "972,291,776,418,418,418,288,872,872,972,972,972,972,870,931,869,972", "247,931,872,872,248,872,872,872,872,872,254,415,415,415,1022,634,1022", "1022,1022,1022,1022,290,634,362,914,972,914,914,914,1022,914,634,872", "872,872,872,872,872,872,872,872,872,872,872,872,872,305,43,872,872,872", "1022,872,872,319,389,872,411,320,872,389,914,1022,1022,872,323,872,1022", "872,872,362,872,872,872,872,872,108,872,872,872,634,5,362,108,108,108", "5,335,108,108,108,287,108,872,43,336,872,872,287,872,108,872,108,108", "108,744,43,1022,872,338,744,872,108,108,744,108,108,108,108,108,339", "411,411,411,340,347,286,294,295,29,759,759,347,286,294,295,29,376,346", "21,376,347,108,108,108,108,108,108,108,108,108,108,108,108,108,108,287", "345,108,108,108,1187,108,108,345,349,108,350,1187,108,108,352,108,345", "108,509,108,1187,108,108,509,108,108,108,108,108,21,108,111,108,347", "286,294,295,29,111,111,111,21,353,111,111,111,108,111,357,108,108,108", "108,359,108,111,108,111,111,111,377,108,366,377,108,345,368,111,111", "1187,111,111,111,111,111,371,442,374,404,378,54,293,292,442,379,404", "381,54,293,292,380,390,442,380,404,391,54,111,111,111,111,111,111,111", "111,111,111,111,111,111,111,395,939,111,111,111,394,111,111,1090,1090", "111,939,394,111,111,397,111,678,111,406,111,394,111,111,426,111,111", "111,111,111,442,111,404,111,54,293,292,432,1145,434,775,1157,775,775", "1157,1145,775,111,435,939,111,111,111,111,1145,111,437,111,440,465,444", "939,111,454,678,111,465,465,465,1132,394,456,465,465,811,465,678,775", "531,1132,457,811,466,465,465,472,811,823,823,473,811,762,762,762,762", "465,465,476,465,465,465,465,465,1145,383,383,477,762,762,762,531,478", "1132,1132,531,531,481,1132,482,532,762,762,16,16,762,465,465,465,465", "465,465,465,465,465,465,465,465,465,465,811,483,465,465,465,493,465", "465,1106,505,465,508,532,465,18,1106,532,532,465,511,465,18,465,465", "1106,465,465,465,465,465,18,465,465,465,517,762,762,762,762,525,762", "762,762,762,945,1190,1190,465,762,762,465,465,88,465,945,465,762,526", "762,762,762,533,465,534,88,465,387,387,387,387,387,387,535,1106,88,387", "387,536,561,18,387,842,387,387,387,387,387,387,387,562,563,567,945,583", "387,387,387,387,387,387,387,584,587,387,945,589,594,51,51,387,387,387", "387,387,387,387,387,387,387,387,387,598,387,387,387,843,387,387,387", "387,387,593,843,842,607,343,608,843,593,609,842,843,343,51,51,842,619", "593,623,842,387,343,624,387,626,653,387,387,363,661,387,663,387,670", "679,363,387,714,842,714,714,714,684,714,363,387,689,691,693,707,387", "387,387,387,712,387,387,387,387,713,843,715,722,387,387,731,593,740", "842,748,343,387,749,387,387,387,750,779,387,387,841,841,841,841,841", "841,782,784,790,841,841,791,792,363,841,400,841,841,841,841,841,841", "841,794,796,697,804,806,841,841,841,841,841,841,841,697,1099,841,1099", "1099,1099,809,1099,841,841,841,841,841,841,841,841,841,841,841,841,812", "841,841,841,242,841,841,841,841,841,344,242,400,697,697,813,816,344", "697,400,242,825,831,832,400,836,344,845,400,841,849,851,841,866,868", "841,841,877,890,841,1197,841,1197,1197,1197,841,1197,400,893,913,894", "913,913,913,841,913,897,899,902,841,841,841,841,903,841,841,841,841", "905,242,906,908,841,841,912,344,925,400,933,934,841,938,841,841,841", "941,913,841,841,236,236,236,236,236,236,913,649,649,236,236,649,649", "649,236,401,236,236,236,236,236,236,236,8,8,8,8,8,236,236,236,236,236", "236,236,946,494,236,494,494,494,965,494,236,236,236,236,236,236,236", "236,236,236,236,236,968,236,236,236,969,236,236,236,236,236,978,710", "401,710,710,710,983,710,494,401,986,993,995,1002,401,1003,1004,494,401", "236,1005,1031,236,1032,1037,236,236,1042,1043,236,1044,236,1045,1046", "1047,236,1051,401,710,1114,1052,1114,1114,1114,236,1114,1055,710,1059", "236,236,236,236,1066,236,236,236,236,1071,1072,1074,1075,236,236,1076", "1078,1079,401,1080,1096,236,1107,236,236,236,1110,1114,236,236,1103", "1103,1103,1103,1103,1103,1111,1112,1113,1103,1103,1124,1143,1146,1103", "1155,1103,1103,1103,1103,1103,1103,1103,25,1156,1161,1171,1172,1103", "1103,1103,1103,1103,1103,1103,1174,1177,1103,581,581,581,581,581,1103", "1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1180,1103,1103", "1103,1181,1103,1103,1103,1103,1103,25,25,25,25,25,25,25,25,25,25,25", "1182,25,25,1183,1185,25,25,1199,1103,1204,25,1103,1206,1217,1103,1103", "1218,1224,1103,1225,1103,25,1226,25,1103,25,25,1227,25,25,25,25,25,1103", "25,1,,,1103,1103,1103,1103,,1103,1103,1103,1103,,,,,1103,1103,,25,,", ",,1103,,1103,1103,1103,,,1103,1103,997,997,997,997,997,997,,,,997,997", ",,,997,,997,997,997,997,997,997,997,373,373,373,373,373,997,997,997", "997,997,997,997,,,997,,,,,447,997,997,997,997,997,997,997,997,997,997", "997,997,,997,997,997,,997,997,997,997,997,447,447,447,447,447,447,447", "447,447,447,447,,447,447,,,447,447,,997,,,997,,,997,997,,,997,,997,447", ",447,997,447,447,,447,447,447,447,447,997,447,,,,997,997,997,997,,997", "997,997,997,,,,,997,997,,447,,447,,,997,,997,997,997,,,997,997,337,337", "337,337,337,337,,,,337,337,,,,337,,337,337,337,337,337,337,337,334,334", "334,334,334,337,337,337,337,337,337,337,,,337,,,,,692,337,337,337,337", "337,337,337,337,337,337,337,337,,337,337,337,,337,337,337,337,337,692", "692,692,692,692,692,692,692,692,692,692,,692,692,,,692,692,,337,,,337", ",,337,337,,,337,,337,692,,692,337,692,692,,692,692,692,692,692,337,692", ",,,337,337,337,337,,337,337,337,337,,,,,337,337,,692,,,,,337,,337,337", "337,,,337,337,38,38,38,38,38,38,,,,38,38,,,,38,,38,38,38,38,38,38,38", ",,,,,38,38,38,38,38,38,38,,,38,,,,,453,38,38,38,38,38,38,38,38,38,38", "38,38,,38,38,38,,38,38,38,38,38,453,453,453,453,453,453,453,453,453", "453,453,,453,453,,,453,453,,38,,,38,,,38,38,,,38,,38,453,,453,38,453", "453,,453,453,453,453,453,38,453,,,,38,38,38,38,,38,38,38,38,,,,,38,38", ",453,,,,,38,,38,38,38,,,38,38,642,642,642,642,642,642,,,,642,642,,,", "642,,642,642,642,642,642,642,642,,,,,,642,642,642,642,642,642,642,,", "642,,,,,723,642,642,642,642,642,642,642,642,642,642,642,642,,642,642", "642,,642,642,642,642,642,723,723,723,723,723,723,723,723,723,723,723", ",723,723,,,723,723,,642,,,642,,,642,642,,,642,,642,723,,723,642,723", "723,,723,723,723,723,723,642,723,,,,642,642,642,642,,642,642,642,642", ",,,,642,642,,723,,,,,642,,642,642,642,,,642,642,1068,1068,1068,1068", "1068,1068,,,,1068,1068,,,,1068,,1068,1068,1068,1068,1068,1068,1068,", ",,,,1068,1068,1068,1068,1068,1068,1068,,,1068,,,,,,1068,1068,1068,1068", "1068,1068,1068,1068,1068,1068,1068,1068,,1068,1068,1068,,1068,1068,1068", "1068,1068,817,817,817,817,817,817,817,817,817,817,817,,817,817,,,817", "817,,1068,,,1068,,,1068,1068,,,1068,,1068,817,,817,1068,817,817,,817", "817,817,817,817,1068,817,,,,1068,1068,1068,1068,,1068,1068,1068,1068", ",,,,1068,1068,,817,,,,,1068,,1068,1068,1068,,,1068,1068,372,372,372", "372,372,372,,,,372,372,,,,372,,372,372,372,372,372,372,372,,,,,,372", "372,372,372,372,372,372,,,372,,,,,,372,372,372,372,372,372,372,372,372", "372,372,372,,372,372,372,,372,372,372,372,372,874,874,874,874,874,874", "874,874,874,874,874,,874,874,,,874,874,,372,,,372,,,372,372,,,372,,372", "874,,874,372,874,874,,874,874,874,874,874,372,874,,,,372,372,372,372", ",372,372,372,372,,,,,372,372,,874,,,,,372,,372,372,372,,,372,372,973", "973,973,973,973,973,,,,973,973,,,,973,,973,973,973,973,973,973,973,", ",,,,973,973,973,973,973,973,973,,,973,,,,,,973,973,973,973,973,973,973", "973,973,973,973,973,,973,973,973,,973,973,973,973,973,317,317,317,317", "317,317,317,317,317,317,317,,317,317,,,317,317,,973,,,973,,,973,973", ",,973,,973,317,,317,973,317,317,,317,317,317,317,317,973,317,,,,973", "973,973,973,,973,973,973,973,,,,,973,973,,317,,,,,973,,973,973,973,", ",973,973,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2,2,2,2,2,2,2,", ",2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,2,2,2,550,550,550,550,550", "550,550,550,550,550,550,,550,550,,,550,550,,2,,,2,,,2,2,,,2,,2,550,", "550,2,550,550,,550,550,550,550,550,2,550,,,,2,2,2,2,,2,2,2,2,,,,,2,2", "550,550,,,,,2,,2,2,2,,,2,2,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,230,230,230,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067", ",1067,1067,,,1067,1067,,230,,,230,,,230,230,,,230,,230,1067,,1067,230", "1067,1067,,1067,1067,1067,1067,1067,230,1067,,,,230,230,230,230,,230", "230,230,230,,,,,230,230,,1067,,,,,230,,230,230,230,,,230,230,342,342", "342,342,342,342,,,,342,342,,,,342,,342,342,342,342,342,342,342,,,,,", "342,342,342,342,342,342,342,,,342,,,,,,342,342,342,342,342,342,342,342", "342,342,342,342,,342,342,342,,342,342,342,342,342,1034,1034,1034,1034", "1034,1034,1034,1034,1034,1034,1034,,1034,1034,,,1034,1034,,342,,,342", ",,342,342,,,342,,342,1034,,1034,342,1034,1034,,1034,1034,1034,1034,1034", "342,1034,,,,342,342,342,342,,342,342,342,342,,,,,342,342,,1034,,,,,342", ",342,342,342,,,342,342,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,253,,253,253,253,,253,253", "253,253,253,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,", "1033,1033,,,1033,1033,,253,,,253,,,253,253,,,253,,253,1033,,1033,253", "1033,1033,,1033,1033,1033,1033,1033,253,1033,,,,253,253,253,253,,253", "253,253,253,,,,,253,253,,1033,,,,,253,,253,253,253,,,253,253,1013,1013", "1013,1013,1013,1013,,,,1013,1013,,,,1013,,1013,1013,1013,1013,1013,1013", "1013,,,,,,1013,1013,1013,1013,1013,1013,1013,,,1013,,,,,,1013,1013,1013", "1013,1013,1013,1013,1013,1013,1013,1013,1013,,1013,1013,1013,,1013,1013", "1013,1013,1013,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011", ",1011,1011,,,1011,1011,,1013,,,1013,,,1013,1013,,,1013,,1013,1011,,1011", "1013,1011,1011,,1011,1011,1011,1011,1011,1013,1011,,,,1013,1013,1013", "1013,,1013,1013,1013,1013,,,,,1013,1013,,1011,,,,,1013,,1013,1013,1013", ",,1013,1013,1098,1098,1098,1098,1098,1098,,,,1098,1098,,,,1098,,1098", "1098,1098,1098,1098,1098,1098,,,,,,1098,1098,1098,1098,1098,1098,1098", ",,1098,,,,,,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098", ",1098,1098,1098,,1098,1098,1098,1098,1098,1010,1010,1010,1010,1010,1010", "1010,1010,1010,1010,1010,,1010,1010,,,1010,1010,,1098,,,1098,,,1098", "1098,,,1098,,1098,1010,,1010,1098,1010,1010,,1010,1010,1010,1010,1010", "1098,1010,,,,1098,1098,1098,1098,,1098,1098,1098,1098,,,,,1098,1098", ",1010,,,,,1098,,1098,1098,1098,,,1098,1098,1097,1097,1097,1097,1097", "1097,,,,1097,1097,,,,1097,,1097,1097,1097,1097,1097,1097,1097,,,,,,1097", "1097,1097,1097,1097,1097,1097,,,1097,,,,,,1097,1097,1097,1097,1097,1097", "1097,1097,1097,1097,1097,1097,,1097,1097,1097,,1097,1097,1097,1097,1097", "529,529,529,529,529,529,529,529,529,529,529,,529,529,,,529,529,,1097", ",,1097,,,1097,1097,,546,1097,,1097,529,,529,1097,529,529,,529,529,529", "529,529,1097,529,,,,1097,1097,1097,1097,,1097,1097,1097,1097,,,546,", "1097,1097,546,546,,546,546,,1097,,1097,1097,1097,,,1097,1097,1147,1147", "1147,1147,1147,1147,,,,1147,1147,,,,1147,,1147,1147,1147,1147,1147,1147", "1147,,,,,,1147,1147,1147,1147,1147,1147,1147,547,1115,1147,1115,1115", "1115,,1115,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147", ",1147,1147,1147,,1147,1147,1147,1147,1147,604,,547,,,,547,547,1115,547", "547,,,,,,604,604,,1147,,,1147,,,1147,1147,,,1147,,1147,604,,604,1147", "604,604,,604,604,,,604,1147,604,,,,1147,1147,1147,1147,,1147,1147,1147", "1147,,,,,1147,1147,,,,,,,1147,,1147,1147,1147,,,1147,1147,621,621,621", "621,621,621,,,,621,621,,,,621,,621,621,621,621,621,621,621,,,,,,621", "621,621,621,621,621,621,,,621,,,,,,621,621,621,621,621,621,621,621,621", "621,621,621,,621,621,621,,621,621,621,621,621,364,364,364,364,364,364", "364,364,364,364,364,,364,364,,,364,364,,621,,,621,,,621,621,,,621,,621", "364,,364,621,364,364,,364,364,364,364,364,621,364,,,,621,621,621,621", ",621,621,621,621,,,,,621,621,,,,,,,621,,621,621,621,,,621,621,892,892", "892,892,892,892,,,,892,892,,,,892,,892,892,892,892,892,892,892,,,,,", "892,892,892,892,892,892,892,,,892,,,,,,892,892,892,892,892,892,892,892", "892,892,892,892,,892,892,892,,892,892,892,892,892,365,365,365,365,365", "365,365,365,365,365,365,,365,365,,,365,365,,892,,,892,,,892,892,,,892", ",892,365,,365,892,365,365,,365,365,365,365,365,892,365,,,,892,892,892", "892,,892,892,892,892,,,,,892,892,,,,,,,892,,892,892,892,,,892,892,618", "618,618,618,618,618,,,,618,618,,,,618,,618,618,618,618,618,618,618,", ",,,,618,618,618,618,618,618,618,,,618,,,,,,618,618,618,618,618,618,618", "618,618,618,618,618,,618,618,618,,618,618,618,618,618,551,,,,,,,,,,", ",,,,,551,551,,618,,,618,,,618,618,,,618,,618,551,,551,618,551,551,,551", "551,,,551,618,551,,,,618,618,618,618,,618,618,618,618,,,,,618,618,,", ",,,,618,,618,618,618,,,618,618,1191,1191,1191,1191,1191,1191,,,,1191", "1191,,,,1191,,1191,1191,1191,1191,1191,1191,1191,,,,,,1191,1191,1191", "1191,1191,1191,1191,,,1191,,,,,,1191,1191,1191,1191,1191,1191,1191,1191", "1191,1191,1191,1191,,1191,1191,1191,,1191,1191,1191,1191,1191,549,549", "549,549,549,549,549,549,,549,549,,,,,,549,549,,1191,,,1191,,,1191,1191", ",,1191,,1191,549,,549,1191,549,549,,549,549,549,549,549,1191,549,,,", "1191,1191,1191,1191,,1191,1191,1191,1191,,,,,1191,1191,,,,,,,1191,,1191", "1191,1191,,,1191,1191,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,,135,135", "135,135,135,548,548,548,548,548,548,548,,,548,548,,,,,,548,548,,135", ",,135,,,135,135,,,135,,135,548,,548,135,548,548,,548,548,548,548,548", "135,548,,,,135,135,135,135,,135,135,135,135,,,,,135,135,,,,,,,135,,135", "135,135,,,135,135,218,218,218,218,218,218,,,,218,218,,,,218,,218,218", "218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,,218,,,,,,218", "218,218,218,218,218,218,218,218,218,218,218,,218,218,218,,218,218,218", "218,218,545,545,545,545,545,545,545,,,545,545,,,,,,545,545,,218,,,218", ",,218,218,,,218,,218,545,,545,218,545,545,,545,545,545,545,545,218,545", ",,,218,218,218,218,,218,218,218,218,,,,,218,218,,,,,,,218,,218,218,218", ",,218,218,846,846,846,846,846,846,,,,846,846,,,,846,,846,846,846,846", "846,846,846,,,,,,846,846,846,846,846,846,846,,,846,,,,,,846,846,846", "846,846,846,846,846,846,846,846,846,,846,846,846,,846,846,846,846,846", "544,544,544,544,544,544,544,,,544,544,,,,,,544,544,,846,,,846,,,846", "846,,,846,,846,544,,544,846,544,544,,544,544,544,544,544,846,544,,,", "846,846,846,846,,846,846,846,846,,,,,846,846,,,,,,,846,,846,846,846", ",,846,846,857,857,857,857,857,857,,,,857,857,,,,857,,857,857,857,857", "857,857,857,,,,,,857,857,857,857,857,857,857,,,857,,,,,,857,857,857", "857,857,857,857,857,857,857,857,857,,857,857,857,,857,857,857,857,857", "543,543,543,543,543,543,543,,,543,543,,,,,,543,543,,857,,,857,,,857", "857,,,857,,857,543,,543,857,543,543,,543,543,543,543,543,857,543,,,", "857,857,857,857,,857,857,857,857,,,,,857,857,,,,,,,857,,857,857,857", ",,857,857,388,388,388,388,388,388,,,,388,388,,,,388,,388,388,388,388", "388,388,388,,,,,,388,388,388,388,388,388,388,,,388,,,,,,388,388,388", "388,388,388,388,388,388,388,388,388,,388,388,388,,388,388,388,388,388", "542,542,542,542,542,542,542,,,542,542,,,,,,542,542,,388,,,388,,,388", "388,,,388,,388,542,,542,388,542,542,,542,542,542,542,542,388,542,,,", "388,388,388,388,,388,388,388,388,,,,,388,388,,,,,,,388,,388,388,388", ",,388,388,991,991,991,991,991,991,,,,991,991,,,,991,,991,991,991,991", "991,991,991,,,,,,991,991,991,991,991,991,991,,,991,,,,,,991,991,991", "991,991,991,991,991,991,991,991,991,,991,991,991,,991,991,991,991,991", "541,541,541,541,541,541,541,,,541,541,,,,,,541,541,,991,,,991,,,991", "991,,,991,,991,541,,541,991,541,541,,541,541,541,541,541,991,541,,,", "991,991,991,991,,991,991,991,991,,,,,991,991,,,,920,920,920,991,920", "991,991,991,920,920,991,991,,920,,920,920,920,920,920,920,920,,,,,,920", "920,920,920,920,920,920,,,920,,,,,,,920,,,920,920,920,920,920,920,920", "920,,920,920,920,,920,920,920,920,920,540,540,540,540,540,540,540,,", "540,540,,,,,,540,540,,920,,,920,,,920,920,,,920,,,540,,540,920,540,540", ",540,540,540,540,540,920,540,,,,920,920,920,920,,920,920,920,920,,,", ",920,920,,,,921,921,921,920,921,920,920,920,921,921,920,920,,921,,921", "921,921,921,921,921,921,,,,,,921,921,921,921,921,921,921,,,921,,,,,", ",921,,,921,921,921,921,921,921,921,921,,921,921,921,,921,921,921,921", "921,530,530,530,530,530,530,530,530,530,530,530,,530,530,,,530,530,", "921,,,921,,,921,921,,,921,,,530,,530,921,530,530,,530,530,530,530,530", "921,530,,,,921,921,921,921,,921,921,921,921,,,,,921,921,,,,922,922,922", "921,922,921,921,921,922,922,921,921,,922,,922,922,922,922,922,922,922", ",,,,,922,922,922,922,922,922,922,,,922,,,,,,,922,,,922,922,922,922,922", "922,922,922,,922,922,922,,922,922,922,922,922,538,,,,,,,,,,,,,,,,538", "538,,922,,,922,,,922,922,,,922,,,538,,538,922,538,538,,538,538,,,,922", ",,,,922,922,922,922,,922,922,922,922,,,,,922,922,,,,733,733,733,922", "733,922,922,922,733,733,922,922,,733,,733,733,733,733,733,733,733,,", ",,,733,733,733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733", "733,733,733,,733,733,733,,733,733,733,733,733,539,,,,,,,,,,,,,,,,539", "539,,733,,,733,,,733,733,,,733,,,539,,,733,539,539,,539,539,,,,733,", ",,,733,733,733,733,,733,733,733,733,,,,,733,733,,,,732,732,732,733,732", "733,733,733,732,732,733,733,,732,,732,732,732,732,732,732,732,,,,,,732", "732,732,732,732,732,732,,,732,,,,,,,732,,,732,732,732,732,732,732,732", "732,,732,732,732,,732,732,732,732,732,537,,,,,,,,,,,,,,,,537,537,,732", ",,732,,,732,732,,,732,,,537,,537,732,537,537,,537,537,,,,732,,,,,732", "732,732,732,,732,732,732,732,,,,,732,732,,,,,,,732,,732,732,732,,,732", "732,333,333,333,333,333,,,,333,333,,,,333,,333,333,333,333,333,333,333", ",,,,,333,333,333,333,333,333,333,,,333,,,,,,333,333,,333,333,333,333", "333,333,333,333,333,,333,333,333,,333,333,333,333,333,,,,,,,,,,,,,,", ",,,,,333,,,333,,,333,333,,,333,,333,,,,333,,,,,,,,,333,,,,,333,333,333", "333,,333,333,333,333,,,,,333,333,,,,265,265,265,333,265,333,333,333", "265,265,333,333,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265", "265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265", "265,,265,265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265", ",,,,,265,,,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265", ",,,264,264,264,265,264,265,265,265,264,264,265,265,,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", "264,264,264,,264,264,264,264,,,,,264,264,,,,263,263,263,264,263,264", "264,264,263,263,264,264,,263,,263,263,263,263,263,263,263,,,,,,263,263", "263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263,263", ",263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263", "263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263,263,,263,263,263,263", ",,,,263,263,,,,262,262,262,263,262,263,263,263,262,262,263,263,,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,,,,,,", ",,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,261,261,261", "262,261,262,262,262,261,261,262,262,,261,,261,261,261,261,261,261,261", ",,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261", "261,261,261,,261,261,261,,261,261,261,261,261,,,,,,,,,,,,,,,,,,,,261", ",,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261,261,261,261,,261", "261,261,261,,,,,261,261,,,,708,708,708,261,708,261,261,261,708,708,261", "261,,708,,708,708,708,708,708,708,708,,,,,,708,708,708,708,708,708,708", ",,708,,,,,,,708,,,708,708,708,708,708,708,708,708,,708,708,708,,708", "708,708,708,708,,,,,,,,,,,,,,,,,,,,708,,,708,,,708,708,,,708,,,,,,708", ",,,,,,,,708,,,,,708,708,708,708,,708,708,708,708,,,,,708,708,,,,260", "260,260,708,260,708,708,708,260,260,708,708,,260,,260,260,260,260,260", "260,260,,,,,,260,260,260,260,260,260,260,,,260,,,,,,,260,,,260,260,260", "260,260,260,260,260,,260,260,260,,260,260,260,260,260,,,,,,,,,,,,,,", ",,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,,,,260,,,,,260,260,260", "260,,260,260,260,260,,,,,260,260,,,,694,694,694,260,694,260,260,260", "694,694,260,260,,694,,694,694,694,694,694,694,694,,,,,,694,694,694,694", "694,694,694,,,694,,,,,,,694,,,694,694,694,694,694,694,694,694,,694,694", "694,,694,694,694,694,694,,,,,,,,,,,,,,,,,,,,694,,,694,,,694,694,,,694", ",694,,,,694,,,,,,,,,694,,,,,694,694,694,694,,694,694,694,694,,,,,694", "694,,,,259,259,259,694,259,694,694,694,259,259,694,694,,259,,259,259", "259,259,259,259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259", ",,259,259,259,259,259,259,259,259,,259,259,259,,259,259,259,259,259", ",,,,,,,,,,,,,,,,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,", ",,259,259,259,259,,259,259,259,259,,,,,259,259,,,,258,258,258,259,258", "259,259,259,258,258,259,259,,258,,258,258,258,258,258,258,258,,,,,,258", "258,258,258,258,258,258,,,258,,,,,,,258,,,258,258,258,258,258,258,258", "258,,258,258,258,,258,258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,", ",258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258,258,258,258,,258,258,258", "258,,,,,258,258,,,,257,257,257,258,257,258,258,258,257,257,258,258,", "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,,,,,,257,,", ",,,,,,257,,,,,257,257,257,257,,257,257,257,257,,,,,257,257,,,,688,688", "688,257,688,257,257,257,688,688,257,257,,688,,688,688,688,688,688,688", "688,,,,,,688,688,688,688,688,688,688,,,688,,,,,,,688,,,688,688,688,688", "688,688,688,688,,688,688,688,,688,688,688,688,688,,,,,,,,,,,,,,,,,,", ",688,,,688,,,688,688,,,688,,,,,,688,,,,,,,,,688,,,,,688,688,688,688", ",688,688,688,688,,,,,688,688,,,,687,687,687,688,687,688,688,688,687", "687,688,688,,687,,687,687,687,687,687,687,687,,,,,,687,687,687,687,687", "687,687,,,687,,,,,,,687,,,687,687,687,687,687,687,687,687,,687,687,687", ",687,687,687,687,687,,,,,,,,,,,,,,,,,,,,687,,,687,,,687,687,,,687,,", ",,,687,,,,,,,,,687,,,,,687,687,687,687,,687,687,687,687,,,,,687,687", ",,,,,,687,,687,687,687,32,,687,687,,,,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,32,,,32,,32,32,,,32,32", ",32,,32,,32,,32,32,,32,32,32,32,32,,32,32,32,,,,,,,,,,,,,,32,,,32,32", ",32,,32,683,683,683,,683,,32,,683,683,,,,683,,683,683,683,683,683,683", "683,,,,,,683,683,683,683,683,683,683,,,683,,,,,,,683,,,683,683,683,683", "683,683,683,683,,683,683,683,,683,683,683,683,683,,,,,,,,,,,,,,,,,,", ",683,,,683,,,683,683,,,683,,,,,,683,,,,,,,,,683,,,,,683,683,683,683", ",683,683,683,683,,,,,683,683,,,,682,682,682,683,682,683,683,683,682", "682,683,683,,682,,682,682,682,682,682,682,682,,,,,,682,682,682,682,682", "682,682,,,682,,,,,,,682,,,682,682,682,682,682,682,682,682,,682,682,682", ",682,682,682,682,682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682,682,,,682,,", ",,,682,,,,,,,,,682,,,,,682,682,682,682,,682,682,682,682,,,,,682,682", ",,,681,681,681,682,681,682,682,682,681,681,682,682,,681,,681,681,681", "681,681,681,681,,,,,,681,681,681,681,681,681,681,,,681,,,,,,,681,,,681", "681,681,681,681,681,681,681,681,681,681,681,,681,681,681,681,681,,,", ",,,,,,,,,,,,,,,,681,,,681,,,681,681,,,681,,,,681,,681,,,681,,,,,,681", ",,,,681,681,681,681,,681,681,681,681,,,,,681,681,,,,956,956,956,681", "956,681,681,681,956,956,681,681,,956,,956,956,956,956,956,956,956,,", ",,,956,956,956,956,956,956,956,,,956,,,,,,,956,,,956,956,956,956,956", "956,956,956,,956,956,956,,956,956,956,956,956,,,,,,,,,,,,,,,,,,,,956", ",,956,,,956,956,,,956,,,,,,956,,,,,,,,,956,,,,,956,956,956,956,,956", "956,956,956,,,,,956,956,,,,962,962,962,956,962,956,956,956,962,962,956", "956,,962,,962,962,962,962,962,962,962,,,,,,962,962,962,962,962,962,962", ",,962,,,,,,,962,,,962,962,962,962,962,962,962,962,,962,962,962,,962", "962,962,962,962,,,,,,,,,,,,,,,,,,,,962,,,962,,,962,962,,,962,,,,,,962", ",,,,,,,,962,,,,,962,962,962,962,,962,962,962,962,,,,,962,962,,,,,,,962", ",962,962,962,33,,962,962,,,,33,33,33,,,33,33,33,,33,,,,,,,,33,,33,33", ",,,,,,,,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,,,,33,33,33,33,33,33", "33,33,33,33,33,33,33,33,,,33,33,33,,,33,,33,33,,,33,33,,33,,33,,33,", "33,33,,33,33,33,33,33,,33,,33,,,,,,,,,,,,,,33,,,33,33,,33,,33,34,34", "34,,34,,33,,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,34,,,34,,34,,34,,34,,,34,,,,,,34", ",,,,34,34,34,34,,34,34,34,34,,,,,34,34,,,,680,680,680,34,680,34,34,34", "680,680,34,34,,680,,680,680,680,680,680,680,680,,,,,,680,680,680,680", "680,680,680,,,680,,,,,,,680,,,680,680,680,680,680,680,680,680,680,680", "680,680,,680,680,680,680,680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680", ",,680,,680,,680,,680,,,680,,,,,,680,,,,,680,680,680,680,,680,680,680", "680,,,,,680,680,,,,677,677,677,680,677,680,680,680,677,677,680,680,", "677,,677,677,677,677,677,677,677,,,,,,677,677,677,677,677,677,677,,", "677,,,,,,,677,,,677,677,677,677,677,677,677,677,,677,677,677,,677,677", "677,677,677,,,,,,,,,,,,,,,,,,,,677,,,677,,,677,677,,,677,,,,,,677,,", ",,,,,,677,,,,,677,677,677,677,,677,677,677,677,,,,,677,677,,,,,,,677", ",677,677,677,,,677,677,676,676,676,676,676,,,,676,676,,,,676,,676,676", "676,676,676,676,676,,,,,,676,676,676,676,676,676,676,,,676,,,,,,676", "676,,676,676,676,676,676,676,676,676,676,,676,676,676,,676,676,676,676", "676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676,676,,,676,,676,,,,676,,,,,,,", ",676,,,,,676,676,676,676,,676,676,676,676,,,,,676,676,,,,985,985,985", "676,985,676,676,676,985,985,676,676,,985,,985,985,985,985,985,985,985", ",,,,,985,985,985,985,985,985,985,,,985,,,,,,,985,,,985,985,985,985,985", "985,985,985,,985,985,985,,985,985,985,985,985,,,,,,,,,,,,,,,,,,,,985", ",,985,,,985,985,,,985,,,,,,985,,,,,,,,,985,,,,,985,985,985,985,,985", "985,985,985,,,,,985,985,,,,673,673,673,985,673,985,985,985,673,673,985", "985,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673,673,673,673", ",,673,,,,,,,673,,,673,673,673,673,673,673,673,673,673,673,673,673,,673", "673,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673,673,,,673,,673,,673", ",673,,,673,,,,,,673,,,,,673,673,673,673,,673,673,673,673,,,,,673,673", ",,,672,672,672,673,672,673,673,673,672,672,673,673,,672,,672,672,672", "672,672,672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,,672,,,672", "672,672,672,672,672,672,672,,672,672,672,,672,672,672,672,672,,,,,,", ",,,,,,,,,,,,,672,,,672,,,672,672,,,672,,,,,,672,,,,,,,,,672,,,,,672", "672,672,672,,672,672,672,672,,,,,672,672,,,,990,990,990,672,990,672", "672,672,990,990,672,672,,990,,990,990,990,990,990,990,990,,,,,,990,990", "990,990,990,990,990,,,990,,,,,,,990,,,990,990,990,990,990,990,990,990", ",990,990,990,,990,990,990,990,990,,,,,,,,,,,,,,,,,,,,990,,,990,,,990", "990,,,990,,990,,,,990,,,,,,,,,990,,,,,990,990,990,990,,990,990,990,990", ",,,,990,990,,,,671,671,671,990,671,990,990,990,671,671,990,990,,671", ",671,671,671,671,671,671,671,,,,,,671,671,671,671,671,671,671,,,671", ",,,,,,671,,,671,671,671,671,671,671,671,671,,671,671,671,,671,671,671", "671,671,,,,,,,,,,,,,,,,,,,,671,,,671,,,671,671,,,671,,671,,,,671,,,", ",,,,,671,,,,,671,671,671,671,,671,671,671,671,,,,,671,671,,,,,,,671", ",671,671,671,,,671,671,669,669,669,669,669,,,,669,669,,,,669,,669,669", "669,669,669,669,669,,,,,,669,669,669,669,669,669,669,,,669,,,,,,669", "669,,669,669,669,669,669,669,669,669,669,,669,669,669,,669,669,669,669", "669,,,,,,,,,,,,,,,,,,,,669,,,669,,,669,669,,,669,,669,,,,669,,,,,,,", ",669,,,,,669,669,669,669,,669,669,669,669,,,,,669,669,,,,35,35,35,669", "35,669,669,669,35,35,669,669,,35,,35,35,35,35,35,35,35,,,,,,35,35,35", "35,35,35,35,,,35,,,,,,,35,,,35,35,35,35,35,35,35,35,35,35,35,35,,35", "35,35,35,35,,,,,,,,,,,,,,,,,,,,35,,,35,,,35,35,,,35,,35,,35,,35,,,35", ",,,,,35,,,,,35,35,35,35,,35,35,35,35,,,,,35,35,,,,250,250,250,35,250", "35,35,35,250,250,35,35,,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", "250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250,250,250,250", ",,,,250,250,,,,36,36,36,250,36,250,250,250,36,36,250,250,,36,,36,36", "36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,,36,,,36,36,36,36", "36,36,36,36,36,36,36,36,,36,36,36,36,36,,,,,,,,,,,,,,,,,,,,36,,,36,", ",36,36,,,36,,36,,36,,36,,,36,,,,,,36,,,,,36,36,36,36,,36,36,36,36,,", ",,36,36,,,,638,638,638,36,638,36,36,36,638,638,36,36,,638,,638,638,638", "638,638,638,638,,,,,,638,638,638,638,638,638,638,,,638,,,,,,,638,,,638", "638,638,638,638,638,638,638,638,638,638,638,,638,638,638,638,638,,,", ",,,,,,,,,,,,,,,,638,,,638,,,638,638,,,638,,638,,638,,638,,,638,,,,,", "638,,,,,638,638,638,638,,638,638,638,638,,,,,638,638,,,,1009,1009,1009", "638,1009,638,638,638,1009,1009,638,638,,1009,,1009,1009,1009,1009,1009", "1009,1009,,,,,,1009,1009,1009,1009,1009,1009,1009,,,1009,,,,,,,1009", ",,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,,1009", "1009,1009,1009,1009,,,,,,,,,,,,,,,,,,,,1009,,,1009,,,1009,1009,,,1009", ",,,1009,,1009,,,1009,,,,,,1009,,,,,1009,1009,1009,1009,,1009,1009,1009", "1009,,,,,1009,1009,,,,628,628,628,1009,628,1009,1009,1009,628,628,1009", "1009,,628,,628,628,628,628,628,628,628,,,,,,628,628,628,628,628,628", "628,,,628,,,,,,,628,,,628,628,628,628,628,628,628,628,628,628,628,628", ",628,628,628,628,628,,,,,,,,,,,,,,,,,,,,628,,,628,,,628,628,,,628,,628", ",628,,628,,,628,,,,,,628,,,,,628,628,628,628,,628,628,628,628,,,,,628", "628,,,,627,627,627,628,627,628,628,628,627,627,628,628,,627,,627,627", "627,627,627,627,627,,,,,,627,627,627,627,627,627,627,,,627,,,,,,,627", ",,627,627,627,627,627,627,627,627,,627,627,627,,627,627,627,627,627", ",,,,,,,,,,,,,,,,,,,627,,,627,,,627,627,,,627,,627,,,,627,,,,,,,,,627", ",,,,627,627,627,627,,627,627,627,627,,,,,627,627,,,,818,818,818,627", "818,627,627,627,818,818,627,627,,818,,818,818,818,818,818,818,818,,", ",,,818,818,818,818,818,818,818,,,818,,,,,,,818,,,818,818,818,818,818", "818,818,818,,818,818,818,,818,818,818,818,818,,,,,,,,,,,,,,,,,,,,818", ",,818,,,818,818,,,818,,,,,,818,,,,,,,,,818,,,,,818,818,818,818,,818", "818,818,818,,,,,818,818,,,,614,614,614,818,614,818,818,818,614,614,818", "818,,614,,614,614,614,614,614,614,614,,,,,,614,614,614,614,614,614,614", ",,614,,,,,,,614,,,614,614,614,614,614,614,614,614,614,614,614,614,,614", "614,614,614,614,,,,,,,,,,,,,,,,,,,,614,,,614,,,614,614,,,614,,,,,,614", ",,614,,,,,,614,,,,,614,614,614,614,,614,614,614,614,,,,,614,614,,,,611", "611,611,614,611,614,614,614,611,611,614,614,,611,,611,611,611,611,611", "611,611,,,,,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611", "611,611,611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,", ",,,,,,,,611,,,611,,,611,611,,,611,,611,,,,611,,,611,,,,,,611,,,,,611", "611,611,611,,611,611,611,611,,,,,611,611,,,,239,239,239,611,239,611", "611,611,239,239,611,611,,239,,239,239,239,239,239,239,239,,,,,,239,239", "239,239,239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239", ",239,239,239,,239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239", "239,,,239,,,,,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239", ",,,,239,239,239,,,605,605,605,239,605,239,239,239,605,605,239,239,,605", ",605,605,605,605,605,605,605,,,,,,605,605,605,605,605,605,605,,,605", ",,,,,,605,,,605,605,605,605,605,605,605,605,,605,605,605,,605,605,605", "605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605,605,,,605,,,,,,605,,,,,,", ",,605,,,,,605,605,605,605,,605,605,605,605,,,,,605,605,,,,1035,1035", "1035,605,1035,605,605,605,1035,1035,605,605,,1035,,1035,1035,1035,1035", "1035,1035,1035,,,,,,1035,1035,1035,1035,1035,1035,1035,,,1035,,,,,,", "1035,,,1035,1035,1035,1035,1035,1035,1035,1035,,1035,1035,1035,,1035", "1035,1035,1035,1035,,,,,,,,,,,,,,,,,,,,1035,,,1035,,,1035,1035,,,1035", ",,,,,1035,,,,,,,,,1035,,,,,1035,1035,1035,1035,,1035,1035,1035,1035", ",,,,1035,1035,,,,603,603,603,1035,603,1035,1035,1035,603,603,1035,1035", ",603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603,", ",603,,,,,,,603,,,603,603,603,603,603,603,603,603,,603,603,603,,603,603", "603,603,603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603,,,603,,,,,,603,,", ",,,,,,603,,,,,603,603,603,603,,603,603,603,603,,,,,603,603,,,,600,600", "600,603,600,603,603,603,600,600,603,603,,600,,600,600,600,600,600,600", "600,,,,,,600,600,600,600,600,600,600,,,600,,,,,,,600,,,600,600,600,600", "600,600,600,600,,600,600,600,,600,600,600,600,600,,,,,,,,,,,,,,,,,,", ",600,,,600,,,600,600,,,600,,,,,,600,,,,,,,,,600,,,,,600,600,600,600", ",600,600,600,600,,,,,600,600,,,,238,238,238,600,238,600,600,600,238", "238,600,600,,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,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,", ",,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238,238,,,,,238,238", ",,,237,237,237,238,237,238,238,238,237,237,238,238,,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", "237,237,237,,237,237,237,237,,,,,237,237,,,,590,590,590,237,590,237", "237,237,590,590,237,237,,590,,590,590,590,590,590,590,590,,,,,,590,590", "590,590,590,590,590,,,590,,,,,,,590,,,590,590,590,590,590,590,590,590", "590,590,590,590,,590,590,590,590,590,,,,,,,,,,,,,,,,,,,,590,,,590,,", "590,590,,,590,,590,,590,,590,,,590,,,,,,590,,,,,590,590,590,590,,590", "590,590,590,,,,,590,590,,,,,,,590,,590,590,590,,,590,590,580,580,580", "580,580,,,,580,580,,,,580,,580,580,580,580,580,580,580,,,,,,580,580", "580,580,580,580,580,,,580,,,,,,580,580,580,580,580,580,580,580,580,580", "580,580,,580,580,580,,580,580,580,580,580,,,,,,,,,,,,,,,,,,,,580,,,580", ",,580,580,,,580,,580,,,,580,,,,,,,,,580,,,,,580,580,580,580,,580,580", "580,580,,,,,580,580,,,,,,580,580,,580,580,580,,,580,580,574,574,574", ",574,,,,574,574,,,,574,,574,574,574,574,574,574,574,,,,,,574,574,574", "574,574,574,574,,,574,,,,,,,574,,,574,574,574,574,574,574,574,574,,574", "574,574,,574,574,574,574,574,,,,,,,,,,,,,,,,,,,,574,,,574,,,574,574", ",,574,,,,,,574,,,,,,,,,574,,,,,574,574,574,574,,574,574,574,574,,,,", "574,574,,,,369,369,369,574,369,574,574,574,369,369,574,574,,369,,369", "369,369,369,369,369,369,,,,,,369,369,369,369,369,369,369,,,369,,,,,", ",369,,,369,369,369,369,369,369,369,369,,369,369,369,,369,369,369,369", "369,,,,,,,,,,,,,,,,,,,,369,,,369,,,369,369,,,369,,,,,,369,,,,,,,,,369", ",,,,369,369,369,369,,369,369,369,369,,,,,369,369,,,,46,46,46,369,46", "369,369,369,46,46,369,369,,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,,,,,,,,,46,,,", ",46,46,46,46,,46,46,46,46,,,,,46,46,,,,572,572,572,46,572,46,46,46,572", "572,46,46,,572,,572,572,572,572,572,572,572,,,,,,572,572,572,572,572", "572,572,,,572,,,,,,,572,,,572,572,572,572,572,572,572,572,572,572,572", "572,,572,572,572,572,572,,,,,,,,,,,,,,,,,,,,572,,,572,,,572,572,,,572", ",,,572,,572,,,572,,,,,,572,,,,,572,572,572,572,,572,572,572,572,,,,", "572,572,,,,570,570,570,572,570,572,572,572,570,570,572,572,,570,,570", "570,570,570,570,570,570,,,,,,570,570,570,570,570,570,570,,,570,,,,,", ",570,,,570,570,570,570,570,570,570,570,570,570,570,570,,570,570,570", "570,570,,,,,,,,,,,,,,,,,,,,570,,,570,,,570,570,,,570,,570,,570,,570", ",,570,,,,,,570,,,,,570,570,570,570,,570,570,570,570,,,,,570,570,,,,47", "47,47,570,47,570,570,570,47,47,570,570,,47,,47,47,47,47,47,47,47,,,", ",,47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47", "47,,47,47,47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,", ",,,,,,,47,,,,,47,47,47,47,,47,47,47,47,,,,,47,47,,,,560,560,560,47,560", "47,47,47,560,560,47,47,,560,,560,560,560,560,560,560,560,,,,,,560,560", "560,560,560,560,560,,,560,,,,,,,560,,,560,560,560,560,560,560,560,560", ",560,560,560,,560,560,560,560,560,,,,,,,,,,,,,,,,,,,,560,,,560,,,560", "560,,,560,,,,,,560,,,,,,,,,560,,,,,560,560,560,560,,560,560,560,560", ",,,,560,560,,,,49,49,49,560,49,560,560,560,49,49,560,560,,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,,,,,,,,,49,,,,,49,49,49,49,,49,49,49,49,,,,,49,49,,", ",,,,49,,49,49,49,555,,49,49,,,,555,555,555,,,555,555,555,703,555,703", "703,703,703,703,,,555,555,555,,,,703,,,,,,555,555,,555,555,555,555,555", ",701,,701,701,701,701,701,703,,,,,,,,701,703,703,703,703,,,,703,,1140", ",1140,1140,1140,1140,1140,555,,,,,701,,555,1140,,,,555,555,701,701,701", "701,,,,701,,,,,,,,,1140,703,,,,555,555,,,,,1140,1140,,,,1140,,,,555", ",,555,,283,283,283,555,283,,701,,283,283,555,,,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,,,283,,,,,,283,,,,,,,,,283,,,,,283,283", "283,283,,283,283,283,283,,,,,283,283,,,,224,224,224,283,224,283,283", "283,224,224,283,283,,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", "224,,,224,,224,,224,,224,,,224,,,,,,224,,,,,224,224,224,224,,224,224", "224,224,,,,,224,224,,,,223,223,223,224,223,224,224,224,223,223,224,224", ",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,223,223,223,,223,223,223,223,,,,,223,223,,,,50,50", "50,223,50,223,223,223,50,50,223,223,,50,,50,50,50,50,50,50,50,,,,,,50", "50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50,50,50,50,,50,50,50", ",50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50,,,50,,,,,,50,,,,", ",,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,222,222,222,50,222", "50,50,50,222,222,50,50,,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,222,222,222,,222,222,222,222", ",,,,222,222,,,,72,72,72,222,72,222,222,222,72,72,222,222,,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,,,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,", ",71,71,71,72,71,72,72,72,71,71,72,72,,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,71,71,71,,71,71,71,71,,,,,71,71,,,,436,436,436,71,436", "71,71,71,436,436,71,71,,436,,436,436,436,436,436,436,436,,,,,,436,436", "436,436,436,436,436,,,436,,,,,,,436,,,436,436,436,436,436,436,436,436", ",436,436,436,,436,436,436,436,436,,,,,,,,,,,,,,,,,,,,436,,,436,,,436", "436,,,436,,,,,,436,,,,,,,,,436,,,,,436,436,436,436,,436,436,436,436", ",,,,436,436,,,,68,68,68,436,68,436,436,436,68,68,436,436,,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,,,,,,68,,,,,68,68,68,68,,68,68,68,68,,,,,68", "68,,,,407,407,407,68,407,68,68,68,407,407,68,68,,407,,407,407,407,407", "407,407,407,,,,,,407,407,407,407,407,407,407,,,407,,,,,,,407,,,407,407", "407,407,407,407,407,407,,407,407,407,,407,407,407,407,407,,,,,,,,,,", ",,,,,,,,,407,,,407,,,407,407,,,407,,,,,,407,,,,,,,,,407,,,,,407,407", "407,407,,407,407,407,407,,,,,407,407,,,,847,847,847,407,847,407,407", "407,847,847,407,407,,847,,847,847,847,847,847,847,847,,,,,,847,847,847", "847,847,847,847,,,847,,,,,,,847,,,847,847,847,847,847,847,847,847,,847", "847,847,,847,847,847,847,847,,,,,,,,,,,,,,,,,,,,847,,,847,,,847,847", ",,847,,,,,,847,,,,,,,,,847,,,,,847,847,847,847,,847,847,847,847,,,,", "847,847,,,,276,276,276,847,276,847,847,847,276,276,847,847,,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,276,276,276,,276,276,276,276,,,,,276,276,,,,275,275,275,276", "275,276,276,276,275,275,276,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,,,,,,,,,275,,,,,275,275,275,275,,275", "275,275,275,,,,,275,275,,,,67,67,67,275,67,275,275,275,67,67,275,275", ",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,,,67,,67,,,,67,,,67,,,,,,67,,,,,67,67,67,67,,67,67", "67,67,,,,,67,67,,,,,,,67,,67,67,67,,,67,67,66,66,66,66,66,,,,66,66,", ",,66,,66,66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,66,66", ",66,66,66,66,66,66,66,66,66,,66,66,66,,66,66,66,66,66,,,,,,,,,,,,,,", ",,,,,66,,,66,,,66,66,,,66,,66,,,,66,,,,,,,,,66,,,,,66,66,66,66,,66,66", "66,66,,,,,66,66,,,,299,299,299,66,299,66,66,66,299,299,66,66,,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,,,,,,,,,299", ",,,,299,299,299,299,,299,299,299,299,,,,,299,299,,,,274,274,274,299", "274,299,299,299,274,274,299,299,,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,,,,,,274,,,,,,,,,274,,,,,274,274,274,274,,274", "274,274,274,,,,,274,274,,,,867,867,867,274,867,274,274,274,867,867,274", "274,,867,,867,867,867,867,867,867,867,,,,,,867,867,867,867,867,867,867", ",,867,,,,,,,867,,,867,867,867,867,867,867,867,867,,867,867,867,,867", "867,867,867,867,,,,,,,,,,,,,,,,,,,,867,,,867,,,867,867,,,867,,,,,,867", ",,,,,,,,867,,,,,867,867,867,867,,867,867,867,867,,,,,867,867,,,,24,24", "24,867,24,867,867,867,24,24,867,867,,24,,24,24,24,24,24,24,24,,,,,,24", "24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24,,24,24,24", ",24,24,24,24,24,,,,,,,,,,,,,,,,,,,,24,,,24,,,24,24,,,24,,,,,,24,,,,", ",,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,273,273,273,24,273", "24,24,24,273,273,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,,,273", "273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273", ",,,,273,273,,,,788,788,788,273,788,273,273,273,788,788,273,273,,788", ",788,788,788,788,788,788,788,,,,,,788,788,788,788,788,788,788,,,788", ",,,,,,788,,,788,788,788,788,788,788,788,788,788,788,788,788,,788,788", "788,788,788,,,,,,,,,,,,,,,,,,,,788,,,788,,,788,788,,,788,,788,,788,", "788,,,788,,,,,,788,,,,,788,788,788,788,,788,788,788,788,,,,,788,788", ",,,272,272,272,788,272,788,788,788,272,272,788,788,,272,,272,272,272", "272,272,272,272,,,,,,272,272,272,272,272,272,272,,,272,,,,,,,272,,,272", "272,272,272,272,272,272,272,,272,272,272,,272,272,272,272,272,,,,,,", ",,,,,,,,,,,,,272,,,272,,,272,272,,,272,,,,,,272,,,,,,,,,272,,,,,272", "272,272,272,,272,272,272,272,,,,,272,272,,,,875,875,875,272,875,272", "272,272,875,875,272,272,,875,,875,875,875,875,875,875,875,,,,,,875,875", "875,875,875,875,875,,,875,,,,,,,875,,,875,875,875,875,875,875,875,875", ",875,875,875,,875,875,875,875,875,,,,,,,,,,,,,,,,,,,,875,,,875,,,875", "875,,,875,,,,,,875,,,,,,,,,875,,,,,875,875,875,875,,875,875,875,875", ",,,,875,875,,,,306,306,306,875,306,875,875,875,306,306,875,875,,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,306,,,306,,306,,306,", "306,,,306,,,,,,306,,,,,306,306,306,306,,306,306,306,306,,,,,306,306", ",,,888,888,888,306,888,306,306,306,888,888,306,306,,888,,888,888,888", "888,888,888,888,,,,,,888,888,888,888,888,888,888,,,888,,,,,,,888,,,888", "888,888,888,888,888,888,888,,888,888,888,,888,888,888,888,888,,,,,,", ",,,,,,,,,,,,,888,,,888,,,888,888,,,888,,,,,,888,,,,,,,,,888,,,,,888", "888,888,888,,888,888,888,888,,,,,888,888,,,,889,889,889,888,889,888", "888,888,889,889,888,888,,889,,889,889,889,889,889,889,889,,,,,,889,889", "889,889,889,889,889,,,889,,,,,,,889,,,889,889,889,889,889,889,889,889", ",889,889,889,,889,889,889,889,889,,,,,,,,,,,,,,,,,,,,889,,,889,,,889", "889,,,889,,,,,,889,,,,,,,,,889,,,,,889,889,889,889,,889,889,889,889", ",,,,889,889,,,,307,307,307,889,307,889,889,889,307,307,889,889,,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,,,307,,307,,307,", "307,,,307,,,,,,307,,,,,307,307,307,307,,307,307,307,307,,,,,307,307", ",,,315,315,315,307,315,307,307,307,315,315,307,307,,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,,315,,315,,315,,,315,,,,,", "315,,,,,315,315,315,315,,315,315,315,315,,,,,315,315,315,,,271,271,271", "315,271,315,315,315,271,271,315,315,,271,,271,271,271,271,271,271,271", ",,,,,271,271,271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271", "271,271,271,,271,271,271,,271,271,271,271,271,,,,,,,,,,,,,,,,,,,,271", ",,271,,,271,271,,,271,,,,,,271,,,,,,,,,271,,,,,271,271,271,271,,271", "271,271,271,,,,,271,271,,,,270,270,270,271,270,271,271,271,270,270,271", "271,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270,270", ",,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,,270", "270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270", ",,,,,,,,270,,,,,270,270,270,270,,270,270,270,270,,,,,270,270,,,,269", "269,269,270,269,270,270,270,269,269,270,270,,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,269,269", "269,,269,269,269,269,,,,,269,269,,,,322,322,322,269,322,269,269,269", "322,322,269,269,,322,,322,322,322,322,322,322,322,,,,,,322,322,322,322", "322,322,322,,,322,,,,,,,322,,,322,322,322,322,322,322,322,322,,322,322", "322,,322,322,322,322,322,,,,,,,,,,,,,,,,,,,,322,,,322,,,322,322,,,322", ",,,,,322,,,,,,,,,322,,,,,322,322,322,322,,322,322,322,322,,,,,322,322", ",,,324,324,324,322,324,322,322,322,324,324,322,322,,324,,324,324,324", "324,324,324,324,,,,,,324,324,324,324,324,324,324,,,324,,,,,,,324,,,324", "324,324,324,324,324,324,324,,324,324,324,,324,324,324,324,324,,,,,,", ",,,,,,,,,,,,,324,,,324,,,324,324,,,324,,,,,,324,,,,,,,,,324,,,,,324", "324,324,324,,324,324,324,324,,,,,324,324,,,,327,327,327,324,327,324", "324,324,327,327,324,324,,327,,327,327,327,327,327,327,327,,,,,,327,327", "327,327,327,327,327,,,327,,,,,,,327,,,327,327,327,327,327,327,327,327", ",327,327,327,,327,327,327,327,327,,,,,,,,,,,,,,,,,,,,327,,,327,,,327", "327,,,327,,,,,,327,,,,,,,,,327,,,,,327,327,327,327,,327,327,327,327", ",,,,327,327,,,,328,328,328,327,328,327,327,327,328,328,327,327,,328", ",328,328,328,328,328,328,328,,,,,,328,328,328,328,328,328,328,,,328", ",,,,,,328,,,328,328,328,328,328,328,328,328,,328,328,328,,328,328,328", "328,328,,,,,,,,,,,,,,,,,,,,328,,,328,,,328,328,,,328,,,,,,328,,,,,,", ",,328,,,,,328,328,328,328,,328,328,328,328,,,,,328,328,,,,268,268,268", "328,268,328,328,328,268,268,328,328,,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,268,268,268,,268", "268,268,268,,,,,268,268,,,,267,267,267,268,267,268,268,268,267,267,268", "268,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267,267,267,267", ",,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267,267,,267", "267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267,,,,,,267", ",,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267,,,,266", "266,266,267,266,267,267,267,266,266,267,267,,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,266,266", "266,,266,266,266,266,,,,,266,266,,,,917,917,917,266,917,266,266,266", "917,917,266,266,,917,,917,917,917,917,917,917,917,,,,,,917,917,917,917", "917,917,917,,,917,,,,,,,917,,,917,917,917,917,917,917,917,917,,917,917", "917,,917,917,917,917,917,,,,,,,,,,,,,,,,,,,,917,,,917,,,917,917,,,917", ",,,,,917,,,,,,,,,917,,,,,917,917,917,917,,917,917,917,917,,,,,917,917", ",,,918,918,918,917,918,917,917,917,918,918,917,917,,918,,918,918,918", "918,918,918,918,,,,,,918,918,918,918,918,918,918,,,918,,,,,,,918,,,918", "918,918,918,918,918,918,918,,918,918,918,,918,918,918,918,918,,,,,,", ",,,,,,,,,,,,,918,,,918,,,918,918,,,918,,,,,,918,,,,,,,,,918,,,,,918", "918,918,918,,918,918,918,918,,,,,918,918,,,,919,919,919,918,919,918", "918,918,919,919,918,918,,919,,919,919,919,919,919,919,919,,,,,,919,919", "919,919,919,919,919,,,919,,,,,,,919,,,919,919,919,919,919,919,919,919", ",919,919,919,,919,919,919,919,919,,,,,,,,,,,,,,,,,,,,919,,,919,,,919", "919,,,919,,,,,,919,,,,,,,,,919,,,,,919,919,919,919,,919,919,919,919", ",,,,919,919,,,,497,497,497,919,497,919,919,919,497,497,919,919,,497", ",497,497,497,497,497,497,497,,,,,,497,497,497,497,497,497,497,,,497", ",,,,,,497,,,497,497,497,497,497,497,497,497,,497,497,497,,497,497,497", "497,497,,,,,,,,,,,,,,,,,,,,497,,,497,,,497,497,,,497,,,,,,497,,,,,,", ",,497,,,,,497,497,497,497,,497,497,497,497,,,,,497,497,,,,,,,497,,497", "497,497,,,497,497,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,133,133,133", ",,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,133,,,,133,,,,,,,,,133", ",,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,132,132,132,133", "132,133,133,133,132,132,133,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,,,,,,,,,132,,,,,132,132,132,132,,132", "132,132,132,,,,,132,132,,,,131,131,131,132,131,132,132,132,131,131,132", "132,,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,,,,,,131", ",,,,,,,,131,,,,,131,131,131,131,,131,131,131,131,,,,,131,131,,,,130", "130,130,131,130,131,131,131,130,130,131,131,,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,,,,,,,,,130,,,,,130,130,130", "130,,130,130,130,130,,,,,130,130,,,,1149,1149,1149,130,1149,130,130", "130,1149,1149,130,130,,1149,,1149,1149,1149,1149,1149,1149,1149,,,,", ",1149,1149,1149,1149,1149,1149,1149,,,1149,,,,,,,1149,,,1149,1149,1149", "1149,1149,1149,1149,1149,,1149,1149,1149,,1149,1149,1149,1149,1149,", ",,,,,,,,,,,,,,,,,,1149,,,1149,,,1149,1149,,,1149,,,,,,1149,,,,,,,,,1149", ",,,,1149,1149,1149,1149,,1149,1149,1149,1149,,,,,1149,1149,,,,1150,1150", "1150,1149,1150,1149,1149,1149,1150,1150,1149,1149,,1150,,1150,1150,1150", "1150,1150,1150,1150,,,,,,1150,1150,1150,1150,1150,1150,1150,,,1150,", ",,,,,1150,,,1150,1150,1150,1150,1150,1150,1150,1150,,1150,1150,1150", ",1150,1150,1150,1150,1150,,,,,,,,,,,,,,,,,,,,1150,,,1150,,,1150,1150", ",,1150,,,,,,1150,,,,,,,,,1150,,,,,1150,1150,1150,1150,,1150,1150,1150", "1150,,,,,1150,1150,,,,52,52,52,1150,52,1150,1150,1150,52,52,1150,1150", ",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,,,,,,52,,,,,,,,,52,,,,,52,52,52,52,,52,52,52,52", ",,,,52,52,,,,129,129,129,52,129,52,52,52,129,129,52,52,,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,,,,,,,,,129,,", ",,129,129,129,129,,129,129,129,129,,,,,129,129,,,,,,,129,,129,129,129", ",,129,129,124,124,124,124,124,,,,124,124,,,,124,,124,124,124,124,124", "124,124,,,,,,124,124,124,124,124,124,124,,,124,,,,,,124,124,124,124", "124,124,124,124,124,124,124,124,,124,124,124,,124,124,124,124,124,,", ",,,,,,,,,,,,,,,,,124,,,124,,,124,124,,,124,,124,,,,124,,,,,,,,,124,", ",,,124,124,124,124,,124,124,124,124,,,,,124,124,,,,,,124,124,,124,124", "124,,,124,124,1162,1162,1162,,1162,,,,1162,1162,,,,1162,,1162,1162,1162", "1162,1162,1162,1162,,,,,,1162,1162,1162,1162,1162,1162,1162,,,1162,", ",,,,,1162,,,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162", ",1162,1162,1162,1162,1162,,,,,,,,,,,,,,,,,,,,1162,,,1162,,,1162,1162", ",,1162,,1162,,1162,,1162,,,1162,,,,,,1162,,,,,1162,1162,1162,1162,,1162", "1162,1162,1162,,,,,1162,1162,,,,471,471,471,1162,471,1162,1162,1162", "471,471,1162,1162,,471,,471,471,471,471,471,471,471,,,,,,471,471,471", "471,471,471,471,,,471,,,,,,,471,,,471,471,471,471,471,471,471,471,,471", "471,471,,471,471,471,471,471,,,,,,,,,,,,,,,,,,,,471,,,471,,,471,471", ",,471,,,,,,471,,,,,,,,,471,,,,,471,471,471,471,,471,471,471,471,,,,", "471,471,,,,277,277,277,471,277,471,471,471,277,277,471,471,,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,277,277,277,,277,277,277,277,,,,,277,277,,,,,,,277,,277,277", "277,470,,277,277,,,,470,470,470,,,470,470,470,,470,,,,,,,,470,470,470", "470,470,,,,,,,,470,470,,470,470,470,470,470,,,,,,,,,,,,,,,,,,,,,,,470", "470,470,470,470,470,470,470,470,470,470,470,470,470,,,470,470,470,,", "470,,,470,,,470,470,,470,,470,,470,,470,470,,470,470,470,470,470,,470", "470,470,,,,,,,,,,,,,,470,,,470,470,470,470,,470,469,470,,,,,470,469", "469,469,,,469,469,469,,469,,,,,,,,469,469,469,469,469,,,,951,951,951", "951,469,469,,469,469,469,469,469,,,,,951,951,951,,,,,,,,,,,951,951,", ",951,469,469,469,469,469,469,469,469,469,469,469,469,469,469,,,469,469", "469,,,469,,,469,,,469,469,,469,,469,,469,,469,469,,469,469,469,469,469", ",469,469,469,,951,951,951,951,,951,951,951,951,,,,469,951,951,469,469", "469,469,,469,951,469,951,951,951,460,469,7,7,7,7,7,460,460,460,7,7,460", "460,460,7,460,7,7,7,7,7,7,7,460,460,460,460,,7,7,7,7,7,7,7,460,460,7", "460,460,460,460,460,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7,7,7,7,7,460,460", "460,460,460,460,460,460,460,460,460,460,460,460,,,460,460,460,7,,460", "7,460,460,7,7,460,460,7,460,7,460,,460,7,460,460,,460,460,460,460,460", "7,460,460,460,,7,7,7,7,,7,7,7,7,,,,460,7,7,460,460,,460,,460,7,,7,7", "7,,460,7,7,75,75,75,,75,,,,75,75,,,,75,,75,75,75,75,75,75,75,,,,,,75", "75,75,75,75,75,75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75", ",75,75,75,75,75,,,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,", ",,,,75,,,,,75,75,75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75", "64,,75,75,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64,64,,,,,,,,64,64", ",64,64,64,64,64,,,,,,,,,,,,,,,,,,,,,,,64,64,64,64,64,64,64,64,64,64", "64,64,64,64,,,64,64,64,,,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64", "64,64,,64,,64,,,,,,,,,,,,,,64,,,64,64,64,64,,64,,64,,278,278,278,64", "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,,,,,,278,,,,,,,,,278,,,,,278,278,278,278,,278,278,278,278,,,,", "278,278,,,,221,221,221,278,221,278,278,278,221,221,278,278,,221,,221", "221,221,221,221,221,221,,,,,,221,221,221,221,221,221,221,,,221,,,,,", ",221,,,221,221,221,221,221,221,221,221,,221,221,221,,221,221,221,221", "221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,,,,,221,,,,,,,,,221", ",,,,221,221,221,221,,221,221,221,221,,,,,221,221,,,,220,220,220,221", "220,221,221,221,220,220,221,221,,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,,,220,220,,,220,,220,,,,220,,,,,,,,,220,,,,,220,220,220,220,,220", "220,220,220,,,,,220,220,,,,800,800,800,220,800,220,220,220,800,800,220", "220,,800,,800,800,800,800,800,800,800,,,,,,800,800,800,800,800,800,800", ",,800,,,,,,,800,,,800,800,800,800,800,800,800,800,,800,800,800,,800", "800,800,800,800,,,,,,,,,,,,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,800", ",,,,,,,,800,,,,,800,800,800,800,,800,800,800,800,,,,,800,800,,,,797", "797,797,800,797,800,800,800,797,797,800,800,,797,,797,797,797,797,797", "797,797,,,,,,797,797,797,797,797,797,797,,,797,,,,,,,797,,,797,797,797", "797,797,797,797,797,,797,797,797,,797,797,797,797,797,,,,,,,,,,,,,,", ",,,,,797,,,797,,,797,797,,,797,,,,,,797,,,,,,,,,797,,,,,797,797,797", "797,,797,797,797,797,,,,,797,797,,,,386,386,386,797,386,797,797,797", "386,386,797,797,,386,,386,386,386,386,386,386,386,,,,,,386,386,386,386", "386,386,386,,,386,,,,,,,386,,,386,386,386,386,386,386,386,386,,386,386", "386,,386,386,386,386,386,,,,,,,,,,,,,,,,,,,,386,,,386,,,386,386,,,386", ",,,,,386,,,,,,,,,386,,,,,386,386,386,386,,386,386,386,386,,,,,386,386", ",,,524,524,524,386,524,386,386,386,524,524,386,386,,524,,524,524,524", "524,524,524,524,,,,,,524,524,524,524,524,524,524,,,524,,,,,,,524,,,524", "524,524,524,524,524,524,524,,524,524,524,,524,524,524,524,524,,,,,,", ",,,,,,,,,,,,,524,,,524,,,524,524,,,524,,,,,,524,,,,,,,,,524,,,,,524", "524,524,524,,524,524,524,524,,,,,524,524,,,,523,523,523,524,523,524", "524,524,523,523,524,524,,523,,523,523,523,523,523,523,523,,,,,,523,523", "523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523,523,523,523", ",523,523,523,,523,523,523,523,523,,,,,,,,,,,,,,,,,,,,523,,,523,,,523", "523,,,523,,,,,,523,,,,,,,,,523,,,,,523,523,523,523,,523,523,523,523", ",,,,523,523,,,,522,522,522,523,522,523,523,523,522,522,523,523,,522", ",522,522,522,522,522,522,522,,,,,,522,522,522,522,522,522,522,,,522", ",,,,,,522,,,522,522,522,522,522,522,522,522,,522,522,522,,522,522,522", "522,522,,,,,,,,,,,,,,,,,,,,522,,,522,,,522,522,,,522,,,,,,522,,,,,,", ",,522,,,,,522,522,522,522,,522,522,522,522,,,,,522,522,,,,520,520,520", "522,520,522,522,522,520,520,522,522,,520,,520,520,520,520,520,520,520", ",,,,,520,520,520,520,520,520,520,,,520,,,,,,,520,,,520,520,520,520,520", "520,520,520,520,520,520,520,,520,520,520,520,520,,,,,,,,,,,,,,,,,,,", "520,,,520,,,520,520,,,520,,520,,520,,520,,,520,,,,,,520,,,,,520,520", "520,520,,520,520,520,520,,,,,520,520,,,,219,219,219,520,219,520,520", "520,219,219,520,520,,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,,,219,219", ",,219,,219,,,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,", ",,,219,219,,,,510,510,510,219,510,219,219,219,510,510,219,219,,510,", "510,510,510,510,510,510,510,,,,,,510,510,510,510,510,510,510,,,510,", ",,,,,510,,,510,510,510,510,510,510,510,510,,510,510,510,,510,510,510", "510,510,,,,,,,,,,,,,,,,,,,,510,,,510,,,510,510,,,510,,,,,,510,,,,,,", ",,510,,,,,510,510,510,510,,510,510,510,510,,,,,510,510,,,,1017,1017", "1017,510,1017,510,510,510,1017,1017,510,510,,1017,,1017,1017,1017,1017", "1017,1017,1017,,,,,,1017,1017,1017,1017,1017,1017,1017,,,1017,,,,,,", "1017,,,1017,1017,1017,1017,1017,1017,1017,1017,,1017,1017,1017,,1017", "1017,,,1017,,,,,,,,,,,,,,,,,,,,1017,,,1017,,,1017,1017,,,1017,,,,,,", ",,,,,,,,,,,,,1017,1017,1017,1017,,1017,1017,1017,1017,,,,,1017,1017", ",,,1081,1081,1081,1017,1081,1017,1017,1017,1081,1081,,,,1081,,1081,1081", "1081,1081,1081,1081,1081,,,,,,1081,1081,1081,1081,1081,1081,1081,,,1081", ",,,,,,1081,,,1081,1081,1081,1081,1081,1081,1081,1081,,1081,1081,1081", ",1081,1081,,,1081,,,,,,,,,,,,,,,,,,,,1081,,,1081,,,1081,1081,,,1081", ",,,,,,,,,,,,,,,,,,,1081,1081,1081,1081,,1081,1081,1081,1081,,,,,1081", "1081,,,,341,341,341,1081,341,1081,1081,1081,341,341,,,,341,,341,341", "341,341,341,341,341,,,,,,341,341,341,341,341,341,341,,,341,,,,,,,341", ",,341,341,341,341,341,341,341,341,,341,341,341,,341,341,,,341,,,,,,", ",,,,,,,,,,,,,341,,,341,,,341,341,,,341,,,1214,,1214,1214,1214,1214,1214", ",,,,,,,,1214,,341,341,341,341,,341,341,341,341,,,,,341,341,,,,341,,1214", "341,,341,341,341,588,588,588,,588,1214,1214,,588,588,1214,,,588,,588", "588,588,588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,", ",588,,,588,588,588,588,588,588,588,588,,588,588,588,,588,588,,,588,", ",,,,,,,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,,,,,,,,,,,,,,,588,588", "588,588,,588,588,588,588,,,,,588,588,,,,40,40,40,588,40,588,588,588", "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,,,1210,,1210,1210,1210,1210,1210,,,,,,,,,1210", ",40,40,40,40,,40,40,40,40,,,,,40,40,,,,40,,1210,40,,40,40,40,803,803", "803,,803,1210,1210,,803,803,1210,,,803,,803,803,803,803,803,803,803", ",,,,,803,803,803,803,803,803,803,,,803,,,,,,,803,,,803,803,803,803,803", "803,803,803,,803,803,803,,803,803,,,803,,,,,,,,,,,,,,,,,,,,803,,,803", ",,803,803,,,803,,,,,,,,,,,,,,,,,,,,803,803,803,803,,803,803,803,803", ",,,,803,803,,,,360,360,360,803,360,803,803,803,360,360,,,,360,,360,360", "360,360,360,360,360,,,,,,360,360,360,360,360,360,360,,,360,,,,,,,360", ",,360,360,360,360,360,360,360,360,,360,360,360,,360,360,,,360,,,,,,", ",,,,,,,,,,,,,360,,,360,,,360,360,,,360,,,,,,,,,,,,,,,,,,,,360,360,360", "360,,360,360,360,360,,,,,360,360,,,,1144,1144,1144,360,1144,360,360", "360,1144,1144,,,,1144,,1144,1144,1144,1144,1144,1144,1144,,,,,,1144", "1144,1144,1144,1144,1144,1144,,,1144,,,,,,,1144,,,1144,1144,1144,1144", "1144,1144,1144,1144,,1144,1144,1144,,1144,1144,,,1144,,,,,,,,,,,,,,", ",,,,,1144,,,1144,,,1144,1144,,,1144,,,,,,,,,,,,,,,,,,,,1144,1144,1144", "1144,,1144,1144,1144,1144,,,,,1144,1144,,,,77,77,77,1144,77,1144,1144", "1144,77,77,,,,77,,77,77,77,77,77,77,77,,,,,,77,77,77,77,77,77,77,,,77", ",,,,,,77,,,77,77,77,77,77,77,77,77,,77,77,77,,77,77,,,77,,,,,,,,,,,", ",,,,,77,,,77,,,77,,,77,77,,,77,,,,,,,,,,,,,,,,,,,,77,77,77,77,,77,77", "77,77,,,,,77,77,,,,814,814,814,77,814,77,77,77,814,814,,,,814,,814,814", "814,814,814,814,814,,,,,,814,814,814,814,814,814,814,,,814,,,,,,,814", ",,814,814,814,814,814,814,814,814,,814,814,814,,814,814,,,814,,,,,,", ",,,,,,,,,,,,,814,,,814,,,814,814,,,814,,,,,,,,,,,,,,,,,,,,814,814,814", "814,,814,814,814,814,,,,,814,814,,,,597,597,597,814,597,814,814,814", "597,597,,,,597,,597,597,597,597,597,597,597,,,,,,597,597,597,597,597", "597,597,,,597,,,,,,,597,,,597,597,597,597,597,597,597,597,,597,597,597", ",597,597,,,597,,,,,,,,,,,,,,,,,,,,597,,,597,,,597,597,,,597,,,,,,,,", ",,,,,,,,,,,597,597,597,597,,597,597,597,597,,,,,597,597,,,,39,39,39", "597,39,597,597,597,39,39,,,,39,,39,39,39,39,39,39,39,,,,,,39,39,39,39", "39,39,39,,,39,,,,,,,39,,,39,39,39,39,39,39,39,39,,39,39,39,,39,39,,", "39,,,,,,,,,,,,,,,,,,,,39,,,39,,,39,39,,,39,,39,,,,,,,,,,,,,,,,,,39,39", "39,39,,39,39,39,39,,,,,39,39,,,,76,76,76,39,76,39,39,39,76,76,,,,76", ",76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76,,,76,,,,,,,76,,,76,76", "76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,,,,,,,,,,,,,,,76,,,76,", ",76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,,76,76,76,76,,,,,76,76", ",,,78,78,78,76,78,76,76,76,78,78,,,,78,,78,78,78,78,78,78,78,,,,,,78", "78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78,78", ",78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,,,,", ",,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,,,,78,,78,78,78,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,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,10,10,10,10,10,10,10,10,,,10,10,,,,,,,,,,,,,,10,427", "427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427", "427,427,427,427,427,427,,,,427,427,427,427,427,427,427,427,427,427,", ",,,,427,427,427,427,427,427,427,427,427,,,427,,,,,,,,427,427,,427,427", "427,427,427,427,427,,,427,427,,,,427,427,427,427,,,,,,,,,,,,,,427,427", ",427,427,427,427,427,427,427,427,427,427,427,427,,,427,427,,,,,,,,,", ",,,,427,667,667,667,667,667,667,667,667,667,667,667,667,667,667,667", "667,667,667,667,667,667,667,667,667,,,,667,667,667,667,667,667,667,667", "667,667,,,,,,667,667,667,667,667,667,667,667,667,,,667,,,,,,,,667,667", ",667,667,667,667,667,667,667,,,667,667,,,,667,667,667,667,,,,,,,,,,", ",,,667,667,,667,667,667,667,667,667,667,667,667,667,667,667,,,667,667", ",,,,,,,,,,,,,667,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,,,,,,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,11,11,11,11,11", ",,11,11,,,,,,,,,,,,,,11,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26", "26,26,26,26,26,26,26,26,26,,,,26,26,26,26,26,26,26,26,26,26,,,,,,26", "26,26,26,26,26,26,26,26,26,26,26,,26,,,,,,26,26,,26,26,26,26,26,26,26", ",,26,26,,,,26,26,26,26,,,,,,26,,,,,,,,26,26,,26,26,26,26,26,26,26,26", "26,26,26,26,,,26,753,753,753,753,,,,,,1026,,1026,1026,1026,1026,1026", "753,753,753,753,,,,753,1026,,,,,753,753,,,753,,,,,,,,,,,,,1026,,,,,", ",753,,,753,1026,1026,,753,,1026,753,,,,,,,,,,,,,,,,753,,,,753,753,753", "753,,753,753,753,753,,,,,753,753,1205,1205,1205,1205,1026,,753,,753", "753,753,,,753,753,,1205,1205,1205,1205,,,1208,1205,1208,1208,1208,1208", "1208,1205,1205,,,1205,,,,1208,,,,,,,,,,,,,,,,1205,,,1205,,,1208,1205", ",,1205,,,,,1208,1208,1208,1208,,,,1208,,,,1205,,,,1205,1205,1205,1205", ",1205,1205,1205,1205,,,,,1205,1205,1129,1129,1129,1129,,,1205,,1205", "1205,1205,,,1205,1205,,1129,1129,1129,1129,,,1138,1129,1138,1138,1138", "1138,1138,1129,1129,,,1129,,,,1138,,,,,,,,,,,,,,,,1129,,,1129,,,1138", "1129,,,1129,,1129,,,1138,1138,1138,1138,,,,1138,,,,1129,,,,1129,1129", "1129,1129,,1129,1129,1129,1129,,,,,1129,1129,989,989,989,989,,,1129", ",1129,1129,1129,,,1129,1129,,989,989,989,989,,,,989,989,,,,,989,989", ",,989,989,,,,,,,,,,,,,,,,,,,989,,,989,,,,989,,,989,,989,,,,,,,989,,", ",,,,989,,,,989,989,989,989,,989,989,989,989,,,,,989,989,942,942,942", "942,,,989,,989,989,989,,,989,989,,942,942,942,942,,,1135,942,1135,1135", "1135,1135,1135,942,942,,,942,,,,1135,,,,,,,,,,,,,,,,942,,,942,,,1135", "942,,,942,,,,,1135,1135,1135,1135,,,,1135,,,,942,,,,942,942,942,942", ",942,942,942,942,,,,,942,942,924,924,924,924,,,942,,942,942,942,,,942", "942,,924,924,924,924,,,1231,924,1231,1231,1231,1231,1231,924,924,,,924", ",,,1231,,,,,,,,,,,,,,,,924,,,924,,,1231,924,,,924,,924,,,,,1231,1231", ",,,1231,,,,924,,,,924,924,924,924,,924,924,924,924,,,,,924,924,745,745", "745,745,,,924,,924,924,924,,,924,924,,745,745,745,745,,,,745,,,,,,745", "745,,,745,,,,,,,,,,,,,,,,,,,,745,,,745,,,,745,,,745,,745,,,,,,,1166", ",1166,1166,1166,1166,1166,745,,,,745,745,745,745,1166,745,745,745,745", ",,,,745,745,745,943,943,943,943,,745,,745,745,745,1166,,745,745,,,943", "943,943,943,,1166,1166,943,,,1166,,,943,943,,,943,,,,,,,,,,,,,,,,,,", ",943,,,943,,,,943,,,943,,,1166,,,,,,,,,,,,,943,,,,943,943,943,943,,943", "943,943,943,,,,,943,943,930,930,930,930,,,943,,943,943,943,,,943,943", ",930,930,930,930,,,,930,930,,,,,930,930,,,930,930,,,,,,,,,,,,,,,,,,", "930,,,930,,,,930,,,930,,930,,,,,,,930,,,,,,,930,,,,930,930,930,930,", "930,930,930,930,,,,,930,930,929,929,929,929,,,930,,930,930,930,,,930", "930,,929,929,929,929,,,,929,929,,,,,929,929,,,929,929,,,,,,,,,,,,,,", ",,,,929,,,929,,,,929,,,929,,929,,,,,,,929,,,,,,,929,,,,929,929,929,929", ",929,929,929,929,,,,,929,929,,,,,,,929,,929,929,929,,,929,929,780,780", "780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780", "780,780,780,780,780,,,,780,780,780,780,780,780,780,780,780,780,,,,,", "780,780,780,780,780,780,780,780,780,,,780,,,,,,,,780,780,,780,780,780", "780,780,780,780,,,780,780,,,,780,780,780,780,,,,,,,,,,,,,,780,780,,780", "780,780,780,780,780,780,780,780,780,780,780,,,780,528,528,528,528,,", "1212,,1212,1212,1212,1212,1212,,,,528,528,528,528,,1212,,528,528,,,", ",528,528,,,528,528,,,,,,,,,1212,,,,,,,,,,528,1212,1212,528,,,1212,528", ",,528,,528,,,,,,,528,,,,,,,528,,,,528,528,528,528,,528,528,528,528,", ",,,528,528,527,527,527,527,,,528,,528,528,528,,,528,528,,527,527,527", "527,,,,527,527,,,,,527,527,,,527,527,,,,,,,,,,,,,,,,,,,527,,,527,,,", "527,,,527,,527,,,,,,,527,,,,,,,527,,,,527,527,527,527,,527,527,527,527", ",,,,527,527,1173,1173,1173,1173,,,527,,527,527,527,,,527,527,,1173,1173", "1173,1173,,,,1173,,,,,,1173,1173,,,1173,,,,,,,,,,,,,,,,,,,,1173,,,1173", ",,,1173,,,1173,,,,,,,,,,,,,,,,1173,,,,1173,1173,1173,1173,,1173,1173", "1173,1173,,,,,1173,1173,1116,1116,1116,1116,,,1173,,1173,1173,1173,", ",1173,1173,,1116,1116,1116,1116,,,,1116,,,,,,1116,1116,,,1116,,,,,,", ",,,,,,,,,,,,,1116,,,1116,,,,1116,,,1116,,,,,,,,,,,,,,,,1116,,,,1116", "1116,1116,1116,,1116,1116,1116,1116,,,,,1116,1116,926,926,926,926,,", "1116,,1116,1116,1116,,,1116,1116,,926,926,926,926,,,,926,,,,,,926,926", ",,926,,,,,,,,,,,,,,,,,,,,926,,,926,,,,926,,,926,,,,,,,,,,,,,,,,926,", ",,926,926,926,926,,926,926,926,926,,,,,926,926,1125,1125,1125,1125,", ",926,,926,926,926,,,926,926,,1125,1125,1125,1125,,,,1125,,,,,,1125,1125", ",,1125,,,,,,,,,,,,,,,,,,,,1125,,,1125,,,,1125,,,1125,,,,,,,,,,,,,,,", "1125,,,,1125,1125,1125,1125,,1125,1125,1125,1125,,,,,1125,1125,936,936", "936,936,,,1125,,1125,1125,1125,,,1125,1125,,936,936,936,936,,,,936,", ",,,,936,936,,,936,,,,,,,,763,763,763,763,,,,,,,,,936,,,936,763,763,763", "936,,,936,,936,,,,,763,763,,,763,,,,,936,,,,936,936,936,936,,936,936", "936,936,,,,,936,936,,,,,,,936,,936,936,936,,,936,936,233,,233,233,233", "233,233,,,,,763,763,763,763,233,763,763,763,763,,,,,763,763,950,950", "950,950,,,763,,763,763,763,233,,,,,950,950,950,,233,233,233,233,,,,233", ",950,950,,,950,,,,,,,,,,,,705,,705,705,705,705,705,,,,,,,,,705,,,,,", "234,233,234,234,234,234,234,,,,,,,,,234,705,950,950,950,950,,950,950", "950,950,,705,705,,950,950,705,,,,,234,950,,950,950,950,,,,234,234,234", "234,,,409,234,409,409,409,409,409,,1020,,1020,1020,1020,1020,1020,409", ",,,,705,,,1020,,644,,644,644,644,644,644,,,,,,409,409,,644,234,,,,1020", "409,409,409,409,,,,409,1020,1020,1020,1020,,,,1020,644,,,,,,,,,644,644", "644,644,,,1024,644,1024,1024,1024,1024,1024,,,,,,,,,1024,409,,,,,,,", "1020,,,,,,,,,,,,,1024,,,,644,,,,,,,1024,1024,675,675,,1024,675,,,,,", ",,675,675,,675,675,675,675,675,675,675,,,675,675,,,,675,675,675,675", ",,,,,675,,,,,1024,,,675,675,,675,675,675,675,675,675,675,675,675,675", "675,675,636,636,675,,636,,,,,,,,636,636,,636,636,636,636,636,636,636", ",,636,636,,,,636,636,636,636,,,,,,636,,,,,,,,636,636,,636,636,636,636", "636,636,636,636,636,636,636,636,629,629,636,,629,,,,,,,,629,629,,629", "629,629,629,629,629,629,,,629,629,,,,629,629,629,629,,,,,,629,,,,,,", ",629,629,,629,629,629,629,629,629,629,629,629,629,629,629,226,226,629", ",226,,,,,,,,226,226,,226,226,226,226,226,226,226,,,226,226,,,,226,226", "226,226,,,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226", "226,226,226,602,602,226,,602,,,,,,,,602,602,,602,602,602,602,602,602", "602,,,602,602,,,,602,602,602,602,,,,,,602,,,,,,,,602,602,,602,602,602", "602,602,602,602,602,602,602,602,602,637,637,602,,637,,,,,,,,637,637", ",637,637,637,637,637,637,637,,,637,637,,,,637,637,637,637,,,,,,637,", ",,,,,,637,637,,637,637,637,637,637,637,637,637,637,637,637,637,225,225", "637,,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,302,302,225,,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,519,519,302,,519,,,,,,,,519,519", ",519,519,519,519,519,519,519,,,519,519,,,,519,519,519,519,,,,,,519,", ",,,,,,519,519,,519,519,519,519,519,519,519,519,519,519,519,519,518,518", "519,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,,,518,518,,,,518", "518,518,518,,,,,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,518", "518,518,518,518,591,591,518,,591,,,,,,,,591,591,,591,591,591,591,591", "591,591,,,591,591,,,,591,591,591,591,,,,,,591,,,,,,,,591,591,,591,591", "591,591,591,591,591,591,591,591,591,591,592,592,591,,592,,,,,,,,592", "592,,592,592,592,592,592,592,592,,,592,592,,,,592,592,592,592,,,,,,592", ",,,,,,,592,592,,592,592,592,592,592,592,592,592,592,592,592,592,1163", "1163,592,,1163,,,,,,,,1163,1163,,1163,1163,1163,1163,1163,1163,1163", ",,1163,1163,,,,1163,1163,1163,1163,,,,,,1163,,,,,,,,1163,1163,,1163", "1163,1163,1163,1163,1163,1163,1163,1163,1163,1163,1163,674,674,1163", ",674,,,,,,,,674,674,,674,674,674,674,674,674,674,,,674,674,,,,674,674", "674,674,,,,,,674,,,,,,,,674,674,,674,674,674,674,674,674,674,674,674", "674,674,674,1164,1164,674,,1164,,,,,,,,1164,1164,,1164,1164,1164,1164", "1164,1164,1164,,,1164,1164,,,,1164,1164,1164,1164,,,,,,1164,,,,,,,,1164", "1164,,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,630", "630,1164,,630,,,,,,,,630,630,,630,630,630,630,630,630,630,,,630,630", ",,,630,630,630,630,,,,,,630,,,,,,,,630,630,,630,630,630,630,630,630", "630,630,630,630,630,630,1188,1188,630,,1188,,,,,,,,1188,1188,,1188,1188", "1188,1188,1188,1188,1188,,,1188,1188,,,,1188,1188,1188,1188,,,,,,1188", ",,,,,,,1188,1188,,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188", "1188,1188,601,601,1188,,601,,,,,,,,601,601,,601,601,601,601,601,601", "601,,,601,601,,,,601,601,601,601,,,,,,601,,,,,,,,601,601,,601,601,601", "601,601,601,601,601,601,601,601,601,,,601"]; + racc_action_check = (arr = $$$('Array').$new(28717, nil)); idx = 0; - $send(clist, 'each', [], ($Ruby30$10 = function(str){var self = $Ruby30$10.$$s == null ? this : $Ruby30$10.$$s, $$11; - + $send(clist, 'each', [], function $Ruby31$4(str){ - if (str == null) { - str = nil; - }; - return $send(str.$split(",", -1), 'each', [], ($$11 = function(i){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; + if (str == null) str = nil;; + return $send(str.$split(",", -1), 'each', [], function $$5(i){var $writer = nil; - if (i == null) { - i = nil; - }; - if ($truthy(i['$empty?']())) { - } else { + if (i == null) i = nil;; + if (!$truthy(i['$empty?']())) { $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); + $send(arr, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - return (idx = $rb_plus(idx, 1));}, $$11.$$s = self, $$11.$$arity = 1, $$11));}, $Ruby30$10.$$s = self, $Ruby30$10.$$arity = 1, $Ruby30$10)); - racc_action_pointer = [nil, 1349, 3855, 739, nil, 401, nil, 5413, 1392, 558, 24440, 24312, 556, nil, 509, 438, 592, 429, 800, 605, nil, -69, 5675, 1263, 24824, 307, nil, 803, nil, 254, 5947, 6057, 6191, 6322, 6453, nil, 2703, 23109, 23895, nil, 175, 466, 569, 146, 6715, 6846, -44, 6977, 7108, 975, 7239, 45, 185, 323, 1112, nil, nil, nil, nil, nil, nil, nil, nil, nil, 7380, nil, 7521, 7652, 7783, 199, nil, 7914, 8045, nil, nil, 8176, 22585, 23502, 23764, nil, nil, nil, nil, nil, nil, nil, nil, nil, 529, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 830, nil, nil, 110, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 8319, nil, nil, nil, nil, 8462, 8593, 8724, 5138, 8998, nil, 2847, nil, -1, 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, 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, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1400, nil, 1983, 21406, 21537, 21668, 21799, 21930, 22061, 26978, 27039, nil, nil, 22192, 22323, 9129, nil, nil, 1135, 443, 389, 1466, 119, 1349, 1407, nil, 9260, 5007, 1374, nil, nil, 9391, 9522, 9653, 9784, 9915, 10046, 10177, 10308, 10439, 10570, 10701, 10832, 10963, 11094, 11225, 11356, 11487, 11618, 11749, 11880, 12011, 12142, nil, nil, nil, nil, 12273, nil, nil, 768, 698, 670, 669, 658, 556, 523, 417, 306, -62, nil, nil, nil, 13059, nil, nil, 5279, nil, nil, 1260, 13321, 13452, nil, nil, nil, nil, nil, nil, nil, 13583, nil, 2271, nil, 1207, 1190, nil, 13845, 1232, 13976, nil, nil, 14107, 14238, nil, nil, 72, nil, 14381, 960, 1178, 1144, 3423, 1158, 1186, 1142, 24034, 2991, 228, 300, 409, 1216, 802, nil, 1172, 1126, 275, 1160, 1156, nil, nil, nil, 1149, 255, 1099, 22978, nil, 327, 968, 3999, 3855, 1165, nil, 1160, 15429, nil, 15560, 1068, 4431, 1057, nil, 607, 24910, 1055, 4143, 3999, 738, 1067, nil, 748, 730, 1081, 1049, 492, 1071, nil, 772, 179, 35, 16215, 3135, 2559, 400, 1127, 993, 57, 40, 692, 1050, -18, 1078, nil, nil, 966, 479, 372, nil, 1108, nil, 980, 16608, nil, 26698, nil, 395, 398, 641, 506, 401, -32, -34, 606, nil, nil, nil, nil, nil, nil, nil, 966, 24696, nil, nil, nil, nil, 961, nil, 1030, 931, 18204, 929, nil, nil, 911, nil, 889, 15, 1011, nil, nil, 1407, nil, nil, nil, nil, nil, 1695, 858, nil, 854, 841, 526, 511, 19000, nil, nil, nil, 720, 610, 865, nil, nil, 19275, 19411, nil, nil, nil, 212, nil, 837, 27222, 27710, 19941, 345, 20203, 20334, 20465, 26016, 26506, 4431, 4719, 1014, 853, 783, 782, 775, 770, 5138, 5413, 5230, 4863, 3711, 4575, 3567, 3279, 3423, 3110, 3019, 3135, 4143, 1983, 5007, nil, 231, nil, 5279, nil, nil, nil, nil, 8855, 654, 668, 689, nil, nil, nil, 694, nil, nil, 21275, nil, 21144, nil, 21013, nil, 392, nil, nil, nil, 20870, 907, nil, 729, 731, nil, nil, 735, 23633, 744, 20727, 27527, 27161, 798, 787, nil, nil, 23240, 750, nil, 20596, 27405, 27466, 20072, 4287, 2559, 19810, 19679, 878, 879, nil, nil, 759, 757, 762, 761, 778, nil, 782, 788, nil, nil, nil, nil, nil, nil, nil, nil, nil, 777, 961, nil, nil, 19548, nil, nil, nil, 232, nil, nil, nil, 878, nil, nil, 880, 219, 820, 19134, 949, 960, 840, 881, nil, 18859, nil, nil, 18728, nil, nil, nil, 1551, 972, nil, 1695, -14, 980, 1002, 38, 1035, 18597, 18466, 26917, 27100, 7, nil, nil, 958, nil, 27344, 27588, 18335, nil, nil, 189, 2415, nil, 27894, nil, nil, nil, nil, 1362, nil, nil, nil, 946, nil, nil, 322, nil, 357, nil, nil, 935, nil, 937, nil, nil, nil, 24568, nil, 18073, 944, 17930, 17799, 17668, 26856, 27832, 17537, 17394, 442, 987, 17263, 17132, 17001, 16870, 990, nil, nil, 16739, 16477, 992, nil, nil, nil, 251, -56, 332, 471, 959, 1007, nil, 992, nil, nil, 416, 25819, -84, nil, 646, nil, nil, 7380, 26645, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1056, 534, nil, 1039, 995, 25638, nil, 1122, nil, 1105, 173, nil, nil, 16346, nil, 1031, 1036, 1137, nil, 1022, nil, 1069, 16084, nil, nil, 15953, nil, 247, 22716, 1027, nil, 1031, 105, 343, 1099, 246, 875, 1101, 1058, 22847, nil, 1127, -26, 1839, 1184, 15822, nil, nil, 717, nil, nil, 1296, nil, nil, 649, 25204, nil, 23942, nil, 15691, nil, 3006, nil, 1073, 1075, 1170, 1079, nil, nil, nil, nil, nil, nil, 25008, 1551, nil, nil, nil, nil, 702, 240, nil, 1201, nil, nil, nil, nil, nil, 1208, 1209, nil, nil, 26, 1100, 39, 31, -1, 8, 975, 1110, 964, nil, 1103, 1119, 15298, nil, 1237, -23, 1121, nil, nil, nil, nil, nil, 1263, nil, nil, nil, nil, nil, nil, nil, nil, 1127, 15167, 1140, 252, -85, 220, 0, nil, 2127, 15036, nil, 1139, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 14905, 14774, 14643, 14512, 417, 1228, 26408, 121, 152, 26310, 26212, 441, -68, 1169, 1170, nil, 26114, nil, 1169, 1171, 1254, 1187, nil, 1193, 25918, 26777, 26743, nil, nil, nil, nil, nil, 13714, nil, nil, 1234, nil, nil, 1231, 1217, nil, nil, 539, 3567, nil, nil, nil, nil, 1220, 291, nil, nil, 13190, 1349, nil, 4287, 1226, 1280, nil, nil, 1245, nil, 1243, 1244, nil, 1249, nil, 1336, nil, 1255, 1256, nil, 1257, nil, nil, 1263, 2977, 3016, nil, nil, 12928, nil, 1388, nil, 12797, 1389, nil, nil, 25721, 12666, 4719, 10, 1395, nil, 1396, 451, 4863, nil, nil, nil, nil, 1279, 1333, 1316, 1311, 113, nil, nil, 12535, 12404, nil, nil, nil, nil, 1316, 1317, 1318, 1316, nil, nil, 25103, nil, nil, 2, nil, nil, 1337, 1354, 1357, nil, nil, nil, 1401, 1358, -48, nil, 24907, nil, 1366, nil, nil, -31, nil, nil, 2703, 1407, nil, nil, 1364, 1367, nil, 1368, 1370, 1373, nil, 1402, 1389, 1375, 22454, nil, nil, nil, 2847, nil, 1839, nil, nil, 36, 24173, nil, nil, 25822, nil, 25400, nil, nil, 25302, nil, 24081, nil, nil, nil, nil, 1393, 1398, 2415, nil, -10, nil, 136, 575, -83, nil, nil, nil, nil, 216, nil, nil, nil, 1523, 2127, 2271, 2113, nil, nil, nil, nil, nil, 1043, 1447, 325, nil, nil, nil, nil, nil, nil, 1404, 25005, 1406, nil, nil, 329, nil, nil, 1584, nil, nil, 25921, nil, nil, 26019, nil, 25708, nil, nil, -82, 23371, 1102, -22, nil, 4575, 32, 9, 991, 167, 79, nil, 106, 136, 151, 168, 3215, 3045, 3279, nil, 6584, 5806, 26604, nil, nil, nil, nil, 239, 354, 542, nil, nil, nil, nil, nil, nil, 25201, 245, 25397, 253, nil, nil, 255, 287, 296, 324, nil, 356, nil, 841, 27283, nil, 499, 5544, 27649, 27771, 33, 25498, nil, nil, nil, nil, 399, 628, 3711, nil, nil, nil, 427, nil, nil, nil, 1969, 437, 25495, nil, nil, nil, 27902, nil, 26509, nil, 26411, nil, 26117, nil, nil, 520, 531, nil, 518, 145, 146, 142, 39, 541, nil, 35, 25299, nil, 557, 566, 576, 593, 143, nil, nil, nil, nil, 625, 25106, nil, nil, nil, nil, 631, nil]; - racc_action_default = [-1, -729, -4, -729, -2, -714, -5, -729, -8, -729, -729, -729, -729, -31, -729, -729, -36, -729, -729, -305, -48, -716, -729, -57, -729, -65, -66, -67, -71, -282, -282, -282, -318, -345, -346, -83, -13, -87, -95, -97, -729, -611, -612, -729, -729, -729, -729, -729, -729, -235, -729, -716, -626, -626, -253, -296, -297, -298, -299, -300, -301, -302, -303, -304, -702, -307, -311, -728, -692, -326, -328, -729, -729, -59, -59, -714, -729, -729, -729, -347, -348, -350, -351, -352, -353, -410, -551, -552, -553, -554, -575, -557, -558, -577, -579, -562, -567, -571, -573, -589, -590, -591, -575, -593, -595, -596, -597, -598, -700, -600, -601, -701, -603, -604, -605, -606, -607, -608, -609, -610, -615, -616, 1219, -3, -715, -724, -725, -726, -7, -729, -729, -729, -729, -729, -9, -4, -19, -729, -126, -127, -128, -129, -130, -131, -132, -136, -137, -138, -139, -140, -141, -142, -143, -144, -145, -146, -147, -148, -149, -150, -151, -152, -153, -154, -155, -156, -157, -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, -178, -179, -180, -181, -182, -183, -184, -185, -186, -187, -188, -189, -190, -191, -192, -193, -194, -195, -196, -197, -198, -199, -200, -201, -202, -203, -204, -205, -206, -24, -133, -13, -729, -729, -729, -729, -729, -272, -729, -729, -712, -713, -729, -729, -716, -717, -52, -729, -611, -612, -729, -305, -729, -729, -241, -729, -13, -729, -53, -55, -218, -219, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -254, -255, -256, -257, -729, -61, -62, -729, -126, -127, -166, -167, -168, -184, -189, -196, -199, -611, -612, -690, -729, -419, -421, -729, -710, -711, -72, -272, -729, -325, -425, -434, -436, -78, -431, -79, -716, -80, -260, -277, -286, -286, -281, -729, -287, -729, -575, -694, -729, -729, -81, -82, -714, -14, -729, -17, -729, -85, -13, -716, -729, -88, -91, -13, -103, -104, -729, -729, -111, -318, -321, -716, -729, -626, -626, -345, -346, -349, -432, -729, -93, -729, -99, -315, -729, -220, -221, -594, -229, -230, -729, -242, -729, -729, -13, -625, -621, -648, -648, -729, -13, -13, -309, -716, -261, -721, -721, -729, -729, -721, -729, -327, -58, -729, -729, -729, -13, -13, -714, -729, -715, -611, -612, -729, -729, -305, -729, -363, -364, -121, -122, -729, -124, -729, -305, -619, -729, -341, -648, -555, -729, -729, -729, -729, -729, -729, -729, -729, -6, -727, -25, -26, -27, -28, -29, -729, -729, -21, -22, -23, -134, -729, -32, -35, -292, -729, -729, -291, -33, -729, -37, -729, -305, -45, -47, -207, -265, -287, -49, -50, -38, -208, -265, -716, -273, -286, -286, -703, -704, -282, -429, -705, -706, -704, -703, -282, -428, -430, -705, -706, -44, -215, -51, -716, -324, -729, -729, -729, -272, -315, -729, -729, -729, -729, -729, -216, -217, -222, -223, -224, -225, -226, -227, -231, -232, -233, -234, -236, -237, -238, -239, -240, -243, -244, -245, -246, -716, -258, -63, -716, -440, -282, -703, -704, -69, -73, -649, -716, -286, -716, -283, -438, -440, -716, -320, -278, -729, -279, -729, -284, -729, -288, -729, -697, -699, -12, -715, -16, -18, -716, -84, -313, -100, -89, -729, -716, -272, -729, -729, -110, -729, -625, -594, -729, -96, -101, -729, -729, -729, -729, -259, -247, -729, -729, -543, -729, -376, -377, -716, -633, -716, -689, -689, -631, -633, -633, -647, -649, -650, -651, -652, -653, -654, -655, -656, -657, -729, -659, -661, -663, -668, -670, -671, -674, -679, -681, -682, -684, -685, -686, -729, -729, -633, -729, -729, -729, -716, -729, -262, -723, -722, -264, -723, -316, -317, -693, -13, -354, -355, -13, -729, -729, -729, -729, -729, -729, -272, -729, -729, -315, -59, -121, -122, -123, -729, -729, -272, -337, -617, -729, -13, -411, -648, -414, -556, -576, -581, -729, -583, -559, -578, -729, -580, -561, -729, -564, -729, -566, -569, -729, -570, -729, -592, -10, -20, -729, -30, -729, -295, -729, -729, -272, -729, -729, -729, -729, -433, -729, -274, -276, -729, -729, -74, -271, -426, -729, -729, -76, -427, -323, -718, -703, -704, -703, -704, -716, -54, -460, -462, -464, -467, -524, -716, -479, -482, -517, -522, -523, -729, -729, -527, -528, -529, -530, -531, -532, -533, -534, -535, -536, -537, -729, -729, -541, -56, -729, -729, -691, -729, -441, -68, -422, -438, -267, -274, -269, -729, -400, -729, -319, -286, -285, -289, -729, -695, -696, -729, -15, -86, -729, -92, -98, -716, -703, -704, -270, -707, -109, -729, -94, -729, -214, -228, -716, -249, -728, -728, -343, -622, -729, -640, -624, -729, -629, -630, -729, -729, -643, -729, -645, -729, -365, -729, -367, -369, -372, -375, -716, -662, -672, -673, -683, -687, -627, -729, -251, -344, -308, -310, -312, -721, -728, -356, -728, -60, -357, -358, -331, -332, -729, -729, -446, -334, -729, -716, -703, -704, -707, -314, -13, -121, -122, -125, -716, -13, -729, -339, -729, -729, -716, -582, -585, -586, -587, -588, -13, -560, -563, -565, -568, -572, -574, -135, -34, -293, -729, -716, -703, -704, -704, -703, -46, -266, -729, -719, -286, -40, -210, -41, -211, -75, -42, -213, -43, -212, -77, -729, -729, -729, -729, -433, -729, -729, -465, -466, -729, -729, -729, -484, -716, -716, -478, -485, -491, -729, -494, -498, -729, -481, -729, -729, -520, -521, -525, -526, -538, -122, -539, -729, -64, -420, -400, -424, -423, -729, -716, -435, -401, -716, -13, -437, -280, -290, -698, -90, -433, -102, -322, -729, -728, -361, -13, -544, -728, -545, -546, -716, -632, -633, -633, -660, -689, -669, -674, -688, -633, -633, -680, -633, -657, -675, -716, -729, -729, -374, -658, -729, -263, -729, -359, -729, -729, -333, -335, -729, -729, -13, -433, -729, -433, -729, -729, -13, -342, -412, -415, -417, -404, -729, -729, -294, -433, -39, -209, -275, -729, -461, -463, -471, -475, -716, -716, -716, -503, -505, -506, -509, -510, -575, -513, -515, -516, -716, -716, -716, -540, -476, -477, -501, -486, -489, -492, -729, -497, -716, -575, -720, -716, -518, -519, -248, -13, -70, -268, -689, -689, -381, -383, -383, -383, -399, -729, -716, -657, -665, -666, -677, -439, -250, -11, -13, -550, -362, -729, -729, -548, -623, -729, -636, -729, -638, -628, -729, -641, -729, -644, -646, -366, -368, -370, -373, -252, -329, -729, -330, -729, -451, -454, -457, -458, -459, -289, -728, -336, -338, -618, -729, -13, -13, -729, -413, -584, -468, -469, -470, -504, -508, -729, -512, -514, -472, -473, -474, -493, -487, -729, -495, -499, -480, -729, -483, -442, -729, -379, -380, -384, -390, -392, -729, -395, -729, -397, -402, -729, -729, -664, -729, -549, -13, -611, -612, -729, -729, -305, -547, -633, -633, -633, -633, -729, -729, -13, -447, -729, -729, -455, -443, -444, -445, -340, -729, -729, -716, -406, -408, -409, -502, -507, -511, -729, -490, -729, -689, -667, -382, -383, -383, -383, -383, -678, -383, -403, -676, -729, -315, -543, -272, -729, -729, -315, -729, -634, -637, -639, -642, -371, -728, -13, -452, -453, -456, -494, -416, -418, -405, -729, -488, -729, -496, -500, -378, -729, -387, -729, -389, -729, -393, -729, -396, -398, -314, -707, -542, -716, -703, -704, -707, -314, -633, -360, -728, -729, -407, -383, -383, -383, -383, -433, -635, -448, -449, -450, -495, -729, -385, -388, -391, -394, -383, -386]; - clist = ["42,141,141,225,291,42,330,230,623,275,274,380,293,809,409,141,308,308", "308,346,346,124,287,458,464,127,416,382,383,365,365,387,764,526,42,334", "334,361,309,309,309,436,437,452,373,514,743,518,878,144,144,772,773", "342,342,632,584,584,346,346,346,947,233,918,42,8,134,136,217,123,8,385", "386,374,391,287,287,310,310,310,349,299,303,449,928,419,420,421,422", "469,510,934,342,342,342,127,929,584,564,356,329,950,615,618,603,604", "343,343,930,928,607,610,375,378,614,516,443,569,15,443,887,929,42,15", "326,443,936,328,1085,371,743,42,932,42,567,600,879,369,735,388,1047", "1017,575,575,908,343,343,343,740,292,740,4,15,553,295,302,304,786,967", "1049,1134,128,695,723,306,319,320,1148,927,649,651,654,654,1132,1170", "642,1032,568,526,892,893,2,15,575,550,550,1028,8,981,993,1177,727,396", "927,653,655,423,743,8,746,1003,404,406,737,362,368,216,397,308,432,425", "1139,482,483,803,276,42,468,725,475,731,979,991,1018,664,435,435,359", "376,730,288,377,395,636,370,988,988,1020,605,531,15,42,808,372,823,961", "639,988,1048,15,1148,15,998,1019,1095,1021,1131,640,963,431,442,293", "407,442,827,1175,1134,1059,1066,442,1067,509,520,458,464,521,900,459", "417,1201,308,308,430,1125,424,1054,1208,953,821,308,1166,1055,1058,975", "976,874,694,875,886,889,740,740,517,309,1135,1136,922,329,1010,980,992", "309,1,346,988,408,410,780,1047,554,546,42,411,412,413,42,549,1211,1144", "334,42,584,346,414,15,1164,438,535,556,438,619,127,310,415,754,438,749", "342,334,903,310,1102,1114,940,754,758,740,829,606,15,1126,42,1007,1008", "751,834,342,42,42,824,931,929,1086,542,826,1142,896,626,,,,877,537,42", "42,534,536,936,1057,776,778,329,,299,,,329,,507,303,343,551,,,,,,127", ",828,1145,1040,837,1146,837,326,141,575,538,343,326,1087,929,544,754", "671,1198,369,1141,519,,859,754,,,988,864,522,676,15,,,,15,813,,,,15", "620,621,622,932,,822,1086,,,584,,,308,910,,144,584,,468,,458,464,1169", ",29,,,,,29,15,717,717,663,584,904,15,15,,,845,,724,743,29,1092,1093", "1202,,1209,,,15,15,29,29,29,,29,,1086,682,1178,554,780,929,,687,943", ",925,,554,,,,346,,459,,308,,994,955,42,346,946,,29,468,855,857,334,29", "29,860,862,29,1178,468,,334,913,,,877,877,,,959,342,,,682,,,443,,,342", "1006,739,1086,,,,443,443,910,,,443,443,,681,,,935,923,937,686,1210,", ",,,29,740,1022,459,,29,29,29,29,29,,29,,459,308,,,343,42,,,42,,468,308", "792,343,1179,1191,468,,,818,,933,812,,933,1056,,729,,42,,804,,,,,,,", ",675,,,15,,799,308,141,,,825,,,,,468,42,1075,,,,,,42,902,780,780,,,", "459,800,676,1127,802,,,,459,676,888,29,29,29,29,29,29,29,1065,,,717", "29,29,29,144,,717,717,,901,442,898,274,971,,29,,141,554,1016,442,442", "841,854,459,442,442,584,,915,842,346,15,,,15,,850,676,,,,346,924,1037", "1039,1090,334,,443,,1042,1044,1107,1045,,15,,334,,,29,,,,342,1015,,29", "29,,,435,1120,,1121,342,29,,854,,960,,15,,1022,438,,1022,,15,,,,,29", "438,438,,29,676,438,438,1130,29,877,,682,,676,687,,,,,966,,42,343,,", ",42,,,,,,,343,,,676,42,,29,,,,,,29,29,,,,,,1115,,1116,780,780,1117,", ",29,29,29,,676,,,,,676,676,,,,717,1022,,717,717,,,29,450,,717,,,957", "470,,,,717,717,717,869,,442,966,,1030,,880,968,1034,,,,381,381,1052", "42,381,1147,,1149,1076,,,,,,,42,,,,,,,,,,1088,,1160,1161,1162,1163,15", ",,,,15,,,,,,,,914,29,933,15,717,1015,42,754,1015,,1015,,42,,381,381", "381,381,,,,438,,1197,,1026,,1192,,,676,676,676,1064,,,717,1031,,,,,888", ",1203,,1204,,1205,,,,717,,,,,,346,29,966,42,956,,,,1207,,346,29,,958", "1061,,287,,1217,15,,,42,,,,1109,29,,,1023,15,,1015,342,1015,970,1015", ",1015,,,,,342,,,1014,447,448,,,,,,,,471,472,42,42,,,,978,1015,15,,,995", "996,,15,1167,1168,,,717,,,346,29,,,29,,,343,1106,,1156,29,,,,,287,343", ",,42,29,,,,29,,,,,,,1173,42,342,,508,717,,,,15,18,,,1129,,18,470,,450", "717,29,717,308,29,29,,468,29,15,,234,468,1113,29,29,,,,29,29,234,234", "234,,18,335,335,42,,,,,,,1154,343,,717,,,,676,,,,15,15,1165,,,1079,1080", "1081,,18,,,,,234,234,717,,234,392,402,402,,,,,459,760,,,,,718,718,381", ",,1023,,,1023,15,,1023,,1023,17,,1199,,,17,,,15,638,,1014,,,1014,,1014", ",,,,18,,,,,234,234,234,234,18,,18,,17,,,,,,,,,,1096,1098,1100,,,,,,", ",15,,,,,,,29,,,17,,29,29,,,,,,,,,,29,,,1023,,1023,,1023,,1023,,,,,,", ",,29,,1014,379,1014,,1014,,1014,,856,858,,,,861,863,1023,,,18,234,440", "234,234,440,234,17,,,,440,234,234,1014,,17,,17,,,,,,,18,,,,,,,,,,,29", ",,,,,,,,1206,,,29,,762,,,,,,,1181,1183,1185,1187,,1188,,,,,,,,,234,", ",,,,29,234,234,,,,29,,,,234,,29,718,473,,,,,718,718,,,,17,,17,,18,17", ",,18,,,17,335,18,1213,1214,1215,1216,,,,,,,,17,,,,1218,,335,,433,446", ",,29,,,,,,,18,,,,,,18,18,,,,,29,,,,,,972,41,523,234,18,18,41,,,,,,,856", "858,863,861,,,,,,,286,234,539,,,,,,29,29,,,41,333,333,,,,,,17,,,,17", ",,,,17,,,,,,,,,,,,528,41,530,,,532,533,,29,,,390,286,286,,,,,,17,,29", ",29,29,17,17,,,,,,234,718,,,718,718,,,,17,17,718,,,,,,,,718,718,718", ",,29,,972,41,,,,,,,,29,41,,41,,,,,,,,,,,,,,,,381,,,,18,,,,,,,,335,,234", ",,,,688,,335,,,,,,,,718,234,,,,,,667,,,,,,,,,,,,,,,,,,,726,,,,,,718", ",732,,734,,41,,738,,,,,,,,718,,,,,,,18,747,,18,,,,750,41,,234,,,,,,", ",,,234,17,,,18,,,,712,712,767,,770,,,,,,,,,381,,741,,379,,744,,,,18", ",,440,234,,,18,,,,,,440,440,,,797,440,440,,,,,,718,,,,,,,,,,,,41,,,", "41,,,,333,41,,,,17,,,17,,787,,,,,,,,,333,718,,,,,,,,,17,741,,41,379", "718,,718,335,41,41,,,,,,,446,,335,,,,,,41,41,17,,,17,,,,17,,,,,,17,17", ",718,,17,17,711,711,,,,,,,,,,,,,843,,,,,,718,,,741,379,,,,,,,18,,,,", "18,234,,,,,381,381,,,,18,,,,,,916,,,,,,,,,,,,440,,,,,,,,,,712,,944,", "741,,712,712,,,,,,911,,,912,,,,,,,,,,,,,,,,19,,,,921,19,,,,,,,,,18,", ",,939,,,41,,,,17,18,,,333,17,,,,19,337,337,,333,,,17,,,,,,,,,,,,,,234", "977,,,17,,18,,,19,,,18,,,,,,,394,403,403,,,,,,,969,,,,,1012,,,,,,,,", ",,,,41,,,41,,,,,1035,,,711,,,17,18,,711,711,,,19,,1046,41,,17,,1104", ",19,,19,,18,,,712,1110,,712,712,,,,,,712,,,,41,,,,712,712,712,41,,,17", "1071,1072,1073,,,17,,,,18,18,,,,,,,,,,,,,,,,,1089,,,1060,,,,,,,,,,,", ",,,,1151,710,710,379,18,,,19,17,441,,712,441,,,,,18,441,234,234,,709", "709,,333,,17,,,,,19,,,,333,,,,,,,712,,,,,,,,,234,,,,,,,712,,,,18,17", "17,,,,,,713,713,711,,,711,711,,,,,,711,,,,,,,,711,711,711,,41,,,,,41", ",,,,17,,,,,,41,19,,,,19,,17,,337,19,,,,,,,,,,,,,,,,,,337,,,712,,,,32", ",,,,32,19,,,711,,,19,19,,,,,17,,32,,,,,,,,19,19,32,32,32,,32,,712,,", "41,,711,,,,,,,,,712,41,712,,,,,711,,,,,,,32,,,,,32,32,,,32,710,,,,,", "710,710,,,,,41,,712,,,,41,,,709,,,,,,709,709,,,,,,,,,,712,,,,,715,715", ",,,32,,,,,32,32,32,32,32,,32,,,,,,,711,41,,,713,,,,,,713,713,,,286,", ",,,,41,,,,1108,,,,,,,,,,,,,,19,,711,,,,,,337,,,,,,,,711,337,711,41,41", ",,,,,,,,,,,,,,,,,32,32,32,32,32,32,32,,,,,32,32,32,,,711,,286,,,,41", ",,32,,,710,,,710,710,,,41,,,710,,711,,19,,,19,710,710,710,709,,,709", "709,,,,,,709,,,,,,,19,709,709,709,,32,,833,,,,,32,32,,41,,,,,,32,,,", ",,19,,,441,,713,,19,713,713,,,32,441,441,713,32,710,441,441,,32,,713", "713,713,,715,,,,,,715,715,,,,709,,,,,,,,,,,710,,,32,,,,,,32,32,,,,,", "710,,,,,709,,,32,32,32,,,,,,,337,,,,709,713,,,,,,337,32,,,,,,,,,,,,", ",,,,,,,,,,,,713,,,,,,,,,,,,,,,,713,,,,,,,,,,,,,710,,,,19,,,,,19,,,,", ",,,,32,,19,709,,,,,,,,,,,,,,,,,441,,710,,,,,716,716,,,715,,,715,715", "710,,710,,,715,,709,,,,,,715,715,715,713,,,,,709,32,709,,,,,,,714,714", "32,,,,,,710,,19,,,,,,,,32,,,,19,,,,713,,,709,,,710,,,,,,,,713,,713,", ",,,715,,,,,,709,,,,19,,,,,,19,,,,,,,,,32,,,32,,,713,715,,,32,,,,,,241", ",,,32,,,715,32,,307,307,307,,713,,,,,,,,354,355,19,357,358,,360,,,,", ",,32,,403,32,32,,,32,19,,307,307,1112,32,32,,,,32,32,,,,,,,,,,,,,,,", ",,,,,,,,,,19,19,,,,,,,,,715,,716,,,,,,716,716,,,,,,,,,,,,,,,,,,403,", ",,19,,,,,,,,,715,714,,,19,,,714,714,,,,,,715,,715,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,19,,715,,,,,32,,,,,32,32,,,,307,445,,,451,307,32,,,715", "451,,,,,,,,,,,,,241,32,,,,484,485,486,487,488,489,490,491,492,493,494", "495,496,497,498,499,500,501,502,503,504,505,,,,,506,,,,,,,,,,,716,,", "716,716,,,,,,716,,307,307,,32,,,716,716,716,307,,,,,,32,307,,307,,,307", "307,,,,,714,,,714,714,,,,,,714,,,,,,,32,714,714,714,,,32,,,,,,32,,,", ",,,559,,560,,,,,716,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,716,,,32,,,,714,", ",,,,,,,716,,,,,,32,,,,,,,,,,,,,,307,,,714,,,,,,,,,,,,,,,,714,,,,32,32", ",,,,,,,,,,,,,,,,,,307,,451,451,451,,,,,,,,,,,,,,,,716,32,,,,,,,,,,,", ",32,,32,32,355,,,,,,,,,,307,,307,,307,,,,,,,714,716,,,,,,,,307,32,,", ",,716,,716,,451,,32,761,,,,763,,,,,,,,,,,,,,714,,,,,,,,,,,,307,716,714", ",714,,,,,,,,,,794,,,,,,307,,,307,,716,,,,,,,,,,,307,307,,,714,,,,,,", "307,,,,,,,,,,,,,,,,,714,,,,,,,,,,,,,,,,307,451,307,,,,851,,,307,307", "451,451,,,,451,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307", ",,,,,,,,307,,,307,,,,,,,,,,,,,,,,,,,,307,,,,,,,,,,,,,,307,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307,,,,,,,,451", ",,,,,,,,,,,,451,451,451,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1009,,,,,,,", ",,,,,,,,,,,,1027,,,,,,,,,,,,,,,,,,,,,,,,,,,,1050,,,,,,,,,307,,,,,,,", ",,,,,,,,,,,307,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307"]; - racc_goto_table = (arr = $$$('::', 'Array').$new(4137, nil)); + return (idx = $rb_plus(idx, 1));}, 1);}, 1); + racc_action_pointer = [nil, 1550, 2590, 30, nil, 485, nil, 21057, 1279, -15, 24908, 25292, 63, nil, 111, 130, 888, 195, 878, 334, 213, 587, nil, -72, 16018, 1438, 25420, 260, nil, 586, nil, 10, 7680, 8479, 8613, 9947, 10209, nil, 1870, 24507, 23582, nil, 199, 495, 356, 292, 12722, 13115, 252, 13377, 14041, 977, 19960, 226, 694, nil, nil, nil, nil, nil, nil, nil, nil, nil, 21341, nil, 15494, 15351, 14696, 170, nil, 14434, 14303, nil, nil, 21200, 24638, 24114, 24769, nil, nil, nil, nil, nil, nil, nil, nil, nil, 877, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 610, nil, nil, 722, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 20234, nil, nil, nil, nil, 20091, 19567, 19436, 19305, 19174, nil, 4318, nil, -26, 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, 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, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 266, nil, 4462, 22788, 21740, 21609, 14172, 13910, 13779, 27931, 27748, nil, nil, 264, 2734, 305, nil, 27294, 27386, 317, 1294, 12043, 11912, 11257, nil, nil, 1133, 138, 140, 432, 174, 389, 452, nil, 10078, 131, 191, 3022, 455, nil, nil, 7277, 7146, 7015, 6753, 6491, 6360, 6229, 6098, 5967, 18507, 18376, 18245, 17590, 17459, 17328, 16411, 16149, 15756, 15220, 15089, 20639, 21478, nil, nil, nil, nil, 13648, nil, nil, 583, 548, 381, -62, 413, 376, 696, 695, 584, 585, nil, nil, nil, 15625, nil, nil, 27992, nil, nil, 484, 16673, 17066, nil, nil, nil, nil, nil, nil, nil, 17197, nil, 2446, nil, 455, 459, nil, 17721, 512, 17852, nil, nil, 17983, 18114, nil, nil, -73, nil, 5836, 1711, 509, 484, 1726, 513, 564, 525, 23312, 2878, 999, 1139, 614, 617, 582, nil, 610, 571, 253, 616, 644, nil, nil, nil, 650, 171, 611, 23852, nil, 471, 1022, 3742, 3886, 687, nil, 691, 12591, nil, 677, 2302, 1567, 638, nil, 541, 621, 676, 662, 651, 690, nil, 870, 35, 36, 22133, 1006, 4894, 459, 766, 651, 25, 39, 730, 747, 4, 793, nil, nil, 1141, 1285, 370, nil, 692, nil, 714, 14827, nil, 27438, nil, 531, 386, 291, 288, 421, 142, 191, 396, nil, nil, nil, nil, nil, nil, nil, 713, 25036, nil, nil, nil, nil, 726, nil, 798, 717, 14565, 725, nil, nil, 715, nil, 690, -60, 819, nil, nil, 1582, nil, nil, nil, nil, nil, 1870, 735, nil, 740, 749, 217, 251, 21057, nil, nil, nil, 0, 861, 795, nil, nil, 20916, 20780, 20508, 880, 882, nil, nil, 769, 775, 780, nil, nil, 785, 787, 809, nil, nil, nil, nil, nil, nil, nil, nil, nil, 801, 1280, nil, nil, 19031, nil, nil, nil, 1, nil, nil, nil, 899, nil, nil, 901, 579, 22919, 951, nil, nil, nil, -26, nil, 885, 28114, 28053, 22657, -85, 22526, 22395, 22264, 835, 853, 26710, 26612, 3454, 5300, 814, 855, 936, 938, 947, 952, 5693, 5431, 5562, 5169, 5038, 4894, 4750, 4606, 4462, 3482, 3568, 4318, 4174, 2590, 4030, nil, 154, nil, 13518, nil, nil, nil, nil, 13246, 889, 897, 901, nil, nil, nil, 902, nil, nil, 12984, nil, 12853, nil, 12460, nil, 219, nil, nil, nil, 12317, 1438, nil, 904, 909, nil, nil, 910, 23451, 916, 12174, 28175, 28236, 995, 958, nil, nil, 24376, 929, nil, 11781, 28602, 27809, 11650, 3598, 11388, nil, 1066, 947, 990, nil, 11126, nil, nil, 10995, nil, nil, nil, 4030, 1075, nil, 3742, 25, 1080, 1084, 37, 1086, 10733, 10602, 27687, 28480, -5, nil, nil, 472, nil, 27626, 27870, 10340, nil, nil, 191, 2014, nil, 27463, nil, nil, nil, nil, 1249, nil, nil, nil, 977, nil, nil, 247, nil, 286, nil, nil, 966, nil, 968, nil, nil, nil, 25164, nil, 9816, 971, 9673, 9411, 9280, 28358, 27565, 9018, 8875, 733, 1011, 8744, 8076, 7945, 7814, 1017, nil, nil, 7539, 7408, 1021, nil, 1075, 1726, 1105, 6884, nil, nil, 1120, nil, nil, 376, 13512, nil, 13482, nil, 27365, nil, 975, 6622, nil, 1310, nil, 992, 997, 1057, 1002, nil, nil, nil, nil, nil, nil, 1090, 2014, nil, nil, nil, 307, 332, 222, 361, 1006, 5693, 5562, nil, 120, nil, nil, nil, nil, 1029, nil, nil, nil, 555, 26091, 311, nil, 1007, 1092, 1014, nil, nil, 25503, nil, nil, 375, nil, nil, 586, nil, nil, 861, 27241, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 791, 464, nil, nil, 1016, 26529, nil, 1148, nil, 1131, 4, nil, nil, 16280, nil, 1046, 1053, 1154, nil, 1041, nil, 1088, 22002, nil, nil, 21871, nil, 109, 23721, 1044, nil, 1048, -1, 233, 1103, 249, 799, 1117, 1088, 24245, nil, 1156, 2158, 10864, nil, nil, nil, 372, 876, nil, 1213, nil, nil, nil, nil, nil, 1219, 1220, nil, nil, 6, 1101, -21, -19, 68, 7, 1150, 997, 989, nil, 1103, 4606, 14958, nil, 1227, 22, 1107, nil, nil, nil, nil, nil, 4750, nil, nil, nil, nil, nil, nil, nil, nil, 1106, 15887, 1110, 387, 385, 110, 500, nil, 2302, 16542, nil, 1110, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 16804, 16935, 1236, nil, 3886, 1121, 1169, nil, nil, 1129, nil, 1212, nil, nil, 1131, 1136, nil, 1141, 1143, nil, 1144, nil, nil, nil, 1150, 1204, 507, nil, nil, 18638, 18769, 18900, 5169, 5300, 5431, 333, 25993, 1231, 27004, -65, -35, 26386, 26288, 480, -32, 1154, 1155, nil, 27200, nil, 1154, 747, nil, 1178, 25895, 26190, nil, 929, 1243, 281, nil, nil, 27339, 20916, nil, nil, nil, nil, 8207, nil, nil, nil, nil, nil, 8338, nil, nil, 1227, nil, nil, 1237, 1224, nil, nil, 429, 2446, nil, nil, nil, nil, 1227, 250, nil, 137, nil, 1357, nil, 9149, 1361, nil, nil, 25797, 9542, 5038, -18, 1362, nil, 1363, 369, 1582, nil, nil, nil, nil, 1238, 1285, 1249, 1247, 304, nil, nil, 10471, 3310, 3166, nil, 3166, nil, nil, -10, 23050, nil, nil, 27446, nil, 497, nil, 27515, nil, 25493, nil, nil, nil, nil, 1248, 1250, 3022, 2878, 11519, nil, 1251, nil, nil, nil, nil, 1257, 1258, 1260, 1262, 1263, 1264, nil, nil, nil, 1309, 1267, -39, nil, 1276, nil, nil, -66, 1275, nil, nil, nil, nil, nil, nil, 1323, 2734, 2158, nil, nil, 1285, 1286, nil, 1287, 1288, 1291, nil, 1316, 1296, 1283, 23181, nil, nil, nil, nil, nil, 8, nil, 26, 771, nil, 40, nil, nil, nil, 1420, 3454, 3310, 1136, nil, nil, nil, 1438, 32, 33, 872, 1376, 34, nil, 1302, 1312, 1313, 1314, 1348, 3584, 26906, nil, nil, nil, nil, nil, nil, nil, 1317, 27102, nil, 145, nil, 25699, nil, nil, 815, nil, nil, 25898, nil, nil, 25702, nil, 13537, nil, nil, 1342, 23983, 763, 1397, 3598, nil, 19698, 19829, nil, nil, nil, nil, 1341, 1454, 713, nil, nil, nil, 1457, 20377, 28297, 28419, 69, 26144, nil, nil, nil, nil, 1332, 1333, 26808, 1341, nil, nil, 1342, nil, nil, 1361, 1365, 1382, 1385, nil, 1386, nil, 618, 28541, nil, 973, 4174, nil, nil, nil, nil, nil, 1195, nil, 1392, 76, 79, 109, 136, 1391, 25601, 1394, nil, 25604, nil, 23629, nil, 26599, nil, 23359, nil, nil, 1439, 1442, nil, 362, nil, 142, nil, 1399, 1401, 1404, 1409, nil, nil, nil, 25996, nil, nil, nil, nil, -129, nil]; + racc_action_default = [-1, -745, -4, -745, -2, -730, -5, -745, -8, -745, -745, -745, -745, -31, -745, -745, -36, -745, -745, -639, -639, -311, -52, -732, -745, -61, -745, -69, -70, -71, -75, -287, -287, -287, -324, -352, -353, -87, -13, -91, -99, -101, -745, -626, -627, -745, -745, -745, -745, -745, -745, -239, -745, -732, -258, -302, -303, -304, -305, -306, -307, -308, -309, -310, -718, -313, -317, -744, -707, -333, -335, -745, -745, -63, -63, -730, -745, -745, -745, -354, -355, -357, -358, -359, -360, -419, -563, -564, -565, -566, -587, -569, -570, -589, -591, -574, -579, -583, -585, -601, -602, -603, -587, -605, -607, -608, -609, -610, -716, -615, -616, -717, -618, -619, -620, -621, -622, -623, -624, -625, -630, -631, 1238, -3, -731, -740, -741, -742, -7, -745, -745, -745, -745, -745, -9, -4, -19, -745, -130, -131, -132, -133, -134, -135, -136, -140, -141, -142, -143, -144, -145, -146, -147, -148, -149, -150, -151, -152, -153, -154, -155, -156, -157, -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, -178, -179, -180, -181, -182, -183, -184, -185, -186, -187, -188, -189, -190, -191, -192, -193, -194, -195, -196, -197, -198, -199, -200, -201, -202, -203, -204, -205, -206, -207, -208, -209, -210, -24, -137, -13, -745, -745, -745, -745, -745, -277, -745, -745, -728, -729, -745, -13, -638, -636, -662, -662, -745, -13, -745, -745, -732, -733, -56, -745, -626, -627, -745, -311, -745, -745, -245, -745, -639, -639, -13, -745, -57, -59, -222, -223, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -259, -260, -261, -262, -745, -65, -66, -745, -130, -131, -170, -171, -172, -188, -193, -200, -203, -626, -627, -705, -745, -428, -430, -745, -726, -727, -76, -277, -745, -332, -434, -443, -445, -82, -440, -83, -732, -84, -265, -282, -292, -292, -286, -290, -293, -745, -587, -709, -713, -745, -85, -86, -730, -14, -745, -17, -745, -89, -13, -732, -745, -92, -95, -13, -107, -108, -745, -745, -115, -324, -327, -732, -745, -639, -639, -352, -353, -356, -441, -745, -97, -745, -103, -321, -745, -224, -225, -606, -233, -234, -745, -246, -251, -13, -315, -732, -266, -737, -737, -745, -745, -737, -745, -334, -62, -745, -745, -745, -13, -13, -730, -745, -731, -626, -627, -745, -745, -311, -745, -370, -371, -125, -126, -745, -128, -745, -311, -634, -745, -348, -662, -567, -745, -745, -745, -745, -745, -745, -745, -745, -6, -743, -25, -26, -27, -28, -29, -745, -745, -21, -22, -23, -138, -745, -32, -35, -298, -745, -745, -297, -33, -745, -37, -745, -311, -49, -51, -211, -270, -293, -53, -54, -38, -212, -270, -732, -278, -292, -292, -719, -720, -287, -438, -721, -722, -720, -719, -287, -437, -439, -721, -722, -745, -555, -745, -383, -384, -732, -704, -704, -644, -645, -647, -647, -647, -661, -663, -664, -665, -666, -667, -668, -669, -670, -671, -745, -673, -675, -677, -682, -684, -685, -688, -693, -695, -696, -698, -699, -700, -702, -745, -745, -745, -48, -219, -55, -732, -331, -745, -745, -745, -277, -321, -745, -745, -745, -745, -745, -745, -745, -220, -221, -226, -227, -228, -229, -230, -231, -235, -236, -237, -238, -240, -241, -242, -243, -244, -247, -248, -249, -250, -732, -263, -67, -732, -449, -287, -719, -720, -73, -77, -663, -732, -292, -732, -288, -447, -449, -732, -326, -283, -745, -284, -745, -289, -745, -294, -745, -712, -715, -12, -731, -16, -18, -732, -88, -319, -104, -93, -745, -732, -277, -745, -745, -114, -745, -638, -606, -745, -100, -105, -745, -745, -745, -745, -264, -745, -328, -745, -732, -745, -267, -739, -738, -269, -739, -322, -323, -708, -13, -361, -362, -13, -745, -745, -745, -745, -745, -745, -277, -745, -745, -321, -63, -125, -126, -127, -745, -745, -277, -344, -632, -745, -13, -420, -662, -423, -568, -588, -593, -745, -595, -571, -590, -745, -592, -573, -745, -576, -745, -578, -581, -745, -582, -745, -604, -10, -20, -745, -30, -745, -301, -745, -745, -277, -745, -745, -745, -745, -442, -745, -279, -281, -745, -745, -78, -276, -435, -745, -745, -80, -436, -44, -254, -744, -744, -350, -637, -745, -642, -643, -745, -745, -654, -745, -657, -745, -659, -745, -745, -372, -745, -374, -376, -379, -382, -732, -676, -686, -687, -697, -701, -640, -46, -256, -351, -330, -734, -719, -720, -719, -720, -732, -745, -745, -58, -463, -466, -467, -468, -469, -471, -473, -476, -477, -534, -732, -489, -492, -504, -508, -513, -515, -516, -519, -520, -587, -523, -525, -526, -527, -532, -533, -745, -745, -537, -538, -539, -540, -541, -542, -543, -544, -545, -546, -547, -745, -745, -553, -60, -745, -745, -706, -745, -450, -72, -431, -447, -272, -279, -274, -745, -409, -745, -325, -292, -291, -295, -745, -710, -711, -745, -15, -90, -745, -96, -102, -732, -719, -720, -275, -723, -113, -745, -98, -745, -218, -232, -252, -745, -314, -316, -318, -737, -744, -363, -744, -64, -364, -365, -338, -339, -745, -745, -455, -341, -745, -732, -719, -720, -723, -320, -13, -125, -126, -129, -732, -13, -745, -346, -745, -745, -732, -594, -597, -598, -599, -600, -13, -572, -575, -577, -580, -584, -586, -139, -34, -299, -745, -732, -719, -720, -720, -719, -50, -271, -745, -735, -292, -40, -214, -41, -215, -79, -42, -217, -43, -216, -81, -745, -745, -744, -368, -13, -556, -744, -557, -558, -704, -683, -688, -703, -646, -647, -647, -674, -647, -647, -694, -647, -671, -386, -689, -732, -745, -745, -381, -672, -745, -745, -745, -745, -745, -745, -442, -464, -745, -745, -474, -475, -745, -745, -745, -494, -732, -732, -488, -495, -501, -745, -745, -491, -745, -745, -745, -507, -514, -518, -745, -522, -524, -530, -531, -535, -536, -548, -549, -745, -611, -612, -613, -126, -551, -745, -68, -429, -409, -433, -432, -745, -732, -444, -410, -732, -13, -446, -285, -296, -714, -94, -442, -106, -732, -268, -745, -366, -745, -745, -340, -342, -745, -745, -13, -442, -745, -442, -745, -745, -13, -349, -421, -424, -426, -413, -745, -745, -300, -442, -39, -213, -280, -45, -255, -11, -13, -562, -369, -745, -745, -560, -641, -745, -650, -745, -652, -745, -655, -745, -658, -660, -373, -375, -377, -380, -47, -257, -745, -465, -504, -470, -472, -481, -485, -732, -732, -732, -732, -732, -732, -552, -486, -487, -511, -496, -499, -502, -732, -587, -736, -732, -505, -509, -512, -517, -521, -528, -529, -745, -253, -13, -74, -273, -704, -704, -390, -392, -392, -392, -408, -745, -732, -671, -679, -680, -691, -448, -329, -336, -745, -337, -745, -460, -295, -744, -343, -345, -633, -745, -13, -13, -745, -422, -596, -561, -13, -626, -627, -745, -745, -311, -559, -647, -647, -647, -647, -745, -745, -745, -478, -479, -480, -482, -483, -484, -503, -497, -745, -490, -745, -493, -745, -550, -451, -745, -388, -389, -393, -399, -401, -745, -404, -745, -406, -411, -745, -745, -678, -745, -13, -456, -745, -745, -452, -453, -454, -347, -745, -745, -732, -415, -417, -418, -555, -277, -745, -745, -321, -745, -648, -651, -653, -656, -378, -505, -745, -500, -506, -510, -704, -681, -391, -392, -392, -392, -392, -692, -392, -412, -690, -745, -321, -744, -13, -461, -462, -425, -427, -414, -745, -554, -732, -719, -720, -723, -320, -647, -745, -498, -387, -745, -396, -745, -398, -745, -402, -745, -405, -407, -320, -723, -367, -744, -416, -442, -649, -392, -392, -392, -392, -457, -458, -459, -745, -394, -397, -400, -403, -392, -395]; + clist = ["44,411,301,309,313,44,141,141,318,318,318,340,285,418,454,493,493,284", "382,384,385,473,141,389,297,19,626,511,709,832,19,693,460,466,356,356", "44,344,344,635,127,698,699,571,225,618,621,339,563,702,704,706,144,144", "890,303,708,598,897,241,983,19,352,352,44,134,387,388,366,136,217,356", "356,356,393,297,297,421,422,423,424,798,232,232,305,312,314,907,8,19", "795,445,795,8,445,302,561,678,940,352,352,352,359,734,778,737,737,790", "445,555,127,124,438,439,1003,451,383,383,236,559,383,715,44,798,610", "613,1160,1059,617,512,375,44,904,44,1158,484,484,756,756,123,229,235", "336,1037,4,476,509,19,320,320,320,1030,373,973,1032,1184,19,1075,19", "1016,782,128,2,607,656,658,17,1012,338,1044,1047,17,792,801,383,383", "383,383,216,1055,571,377,380,933,595,595,986,399,516,434,798,493,934", "406,408,427,527,461,318,528,795,795,17,826,952,953,286,780,786,390,8", "667,652,654,657,657,44,369,605,425,378,8,470,785,1160,1184,298,432,44", "379,17,397,1221,639,44,1078,576,372,608,374,818,19,846,19,709,997,19", "642,915,1031,1077,44,1136,19,433,444,1079,1157,444,19,19,831,339,903", "568,905,449,450,518,319,319,319,444,844,643,999,19,426,419,409,318,318", "850,514,515,804,1097,584,17,318,1098,554,565,566,813,965,1151,17,1089", "17,1172,1228,376,989,1191,1038,1039,899,795,1174,731,484,303,929,232", "232,316,329,330,930,1180,645,939,309,942,460,466,1068,968,313,1061,44", "599,1062,622,44,356,912,955,344,44,894,1143,1,553,410,339,412,1175,413", "236,339,552,1030,1171,356,19,1206,344,414,19,415,1036,416,352,19,127", "1042,1045,417,44,591,525,526,923,852,1043,1046,596,857,806,847,17,352", "17,44,44,17,935,601,902,582,1064,1065,17,19,623,624,809,898,17,17,1178", "587,907,,,1126,809,,19,19,,961,,,,17,836,581,629,320,,141,127,696,493", "1219,845,320,,383,685,849,,,809,580,690,,,336,,,809,691,336,709,709", "979,,236,641,1152,437,437,860,904,860,,,1019,,868,725,579,,583,674,144", "1021,1023,589,1025,1027,,1028,,,992,,460,466,493,722,493,666,,994,,461", ",,1177,318,,991,17,882,,978,17,781,887,,,17,238,,,787,1006,789,684,452", "470,793,975,798,689,,,,625,,772,772,685,513,795,969,,802,,1076,,17,371", "805,756,756,562,319,445,721,,484,,,756,319,17,17,445,445,756,851,820", "445,445,599,735,735,461,318,1090,904,737,1048,599,982,1041,,461,878", "880,1049,1050,44,883,885,1229,1110,356,1052,,344,895,470,564,,1060,356", ",,344,,567,470,756,975,461,318,19,,,,,784,461,,352,318,,,,44,,,44,352", ",,,1230,841,470,823,,,825,,470,,,1133,1134,995,,,44,19,,1144,19,904", "461,318,709,709,,,,,,,,827,,,,,,141,916,19,947,44,,,900,470,,900,44", ",848,1103,1167,1168,1169,1170,,,794,,,,1120,1121,1122,,19,,,19,,1181", ",19,1182,,,,,19,19,444,,144,19,19,,,,,,444,444,,1198,,444,444,,822,864", ",1153,,,,,,967,,,,,,,1207,899,772,17,,445,,1147,,1148,772,,,1080,865", ",896,,966,772,772,873,,1060,,963,1007,,,1224,284,1223,1060,,599,141", "1176,,932,,685,17,,690,17,980,946,1096,,,,,,877,996,,,356,,,344,493", ",,,17,,,356,,,344,513,,452,,,,,,1060,,,,,352,,,,,1072,,17,594,,17,352", ",44,17,,1222,,44,,17,17,,,993,17,17,1176,,44,,,609,1131,,1029,835,981", "19,,1004,,,19,,,,,,,1040,,,,19,,,,,,,,,1156,44,815,383,,,,,,19,,,1015", "877,,1066,,,,,,444,,,,,19,,1080,1070,,1080,,772,,772,,,772,772,437,1085", ",,1087,772,,,,679,,772,772,,,,1073,,,772,772,,,1199,1014,,,,1018,932", ",,,,932,932,,,1127,,,809,44,,879,881,,1058,,884,886,,,1084,,,,,772,", "44,1080,1117,1118,1119,1072,44,19,1072,,1072,1092,383,,,,17,,1128,,", "17,44,356,,19,1105,,,,31,19,17,1102,735,31,,,,,,383,1095,,,779,,19,", ",17,352,31,,,,,,,,,,31,31,31,,31,17,,,,,,,,,,44,1072,,1072,,1072,,1072", ",,356,,,297,,,,31,,,,,31,31,1072,19,31,,,44,44,1192,1193,,,44,,,352", "900,1155,,1073,,,1073,1161,1073,772,,906,,908,,19,19,,772,,,19,772,", ",,,1163,,,461,318,17,,356,,31,297,765,765,44,31,31,31,31,31,,31,,,17", "1190,,,,470,17,,,,,1008,352,,,19,772,,,,,,17,,,,1073,,1073,470,1073", ",1073,,44,,,,,383,383,,,,,1220,,1081,772,1073,,,,,,879,881,886,884,19", "679,,,,,,,,,,,,,,679,941,,17,,,31,31,31,31,31,31,31,,,,,,31,,,,,,31", "31,31,31,,,,,17,17,381,18,,,17,,18,31,,,,,,,,,,,,,,,,242,,,,679,,,,", ",242,242,242,,18,345,345,,,,,,,,,17,,,,,31,,,,679,,,31,31,,1008,,18", "679,,,31,242,242,1002,,242,394,404,404,,,1137,1139,1141,,,,,31,,679", ",31,17,,,,31,,765,1081,,,1081,,,1081,765,1081,,,,,,764,764,765,765,", ",,,,1074,18,,,31,,242,242,242,242,18,,18,,,,,,31,31,31,,,,,,,679,,435", "448,,679,679,,,,,,31,,,,,,,,,1111,,1112,,1113,1081,,1081,,1081,,1081", ",,,,1209,1211,1213,1215,,1216,,1002,,,,,1081,,,,,,,,,,,,,,,,,,,18,242", "442,242,242,442,242,,31,,,,18,1232,1233,1234,1235,,18,442,242,242,,", ",1237,,,,,,,,,,18,,573,,575,,,577,578,,,,31,,679,679,679,,,,,,31,,941", "765,,765,,,765,765,,,,,1183,765,1185,,,,,765,765,,242,,1002,,,765,765", "242,242,,,,,,,,242,,1204,,,,,,,,,,,,,,,764,18,,31,,18,,,764,345,18,765", ",31,,,,764,764,,,,,,,,,1225,345,1226,,1227,,20,,,,670,20,,18,31,,,31", ",,1196,,,1236,31,,,242,18,18,,,,,31,,,,31,,,,20,353,353,,,,242,,,,,", ",,,,,,,,679,,,31,,,31,31,20,716,31,,,,,,31,31,353,353,353,31,31,,,,", ",,,,,,,,,,,,,,,,,,,,,,765,242,,,,,,,,765,,,,765,,,,20,,,,,,,,,20,,20", ",,,,796,,381,,799,,,242,764,,764,,,764,764,,,242,,,764,,,,765,,764,764", ",,,,,,764,764,,,,,,796,,,381,,,,,,,,,,,,765,448,,,,,,,,,,,,,31,,,764", ",,,18,20,,20,,,20,,345,,242,,,20,,,31,345,,20,20,31,31,,866,,,,,,,,31", "796,381,,20,,18,,,18,,,,,,893,242,,31,,,,,,,,242,,,911,18,,,,,31,,,", ",,,,,,,,,,,,,,,,,,18,,,442,242,,,18,,,,,,442,442,,,,442,442,,,,,,,,20", ",,,20,,,764,353,20,,,,,,31,764,,,,764,,,,,796,,353,,,,,31,,976,,,977", ",20,,,,,31,,,,,,31,,,,20,20,31,,,,,,,,764,,,,,,,,31,,,,,,,,,,,,,,,,", ",,,,,,,764,,,,,,,,1005,,,345,,,,,15,,,,,15,345,,,,242,,,,,31,,,,,,,", ",,,,,,,,,,18,,,15,,18,242,,,,,31,31,,,,18,31,,,21,,,,,21,,,,,,15,,,442", ",,,,,,398,773,773,,,,,,,,18,,,,,21,347,347,,,31,,31,31,,,,,,,,,,,,31", ",,,,,1091,,21,,,,,15,,,,,396,405,405,,15,,15,381,20,,,31,,,,,353,,,", ",242,,,,353,,,,,,,,,,,,,18,,,,,,,,20,,21,20,242,,,771,771,,18,21,,21", ",,18,,,,,,,,20,,,,,,,,18,,,,1106,,,,,,,15,,440,,,440,,,20,,,20,15,,", "20,,,15,440,,20,20,,,,20,20,,,,,,,,15,,,,,,,,,18,,,,,,,,,21,,443,,1145", "443,,,,,,,21,,,,,,21,443,18,18,,,773,,18,,,,,,773,,,21,,,,,,773,773", ",770,770,,,,,,,,,,,,,,,,,15,,,,15,1187,,,18,15,242,242,,,,,,,,,,,,242", ",,,353,,,,,,,,,,,353,15,,,,,,,,,,,,,18,21,15,15,,21,,,,347,21,,,20,", "771,,,20,,,,,771,,,,,347,20,,,771,771,,,,,,,21,,,,,,,20,43,,,,,43,,21", "21,,,,,,,,20,,,,,,,,296,,,,,,,,,,,,43,343,343,,,773,,773,,,773,773,", ",,,,773,,,,,,773,773,,,,43,,,773,773,,,,,,392,296,296,,,,,,,,,,,,,,", ",,,769,769,,20,,,770,,,,,,773,,770,,,,,,,20,,770,770,,,20,43,,,,,,,", ",43,,43,,,,20,,768,768,353,,,,,771,15,771,,,771,771,,,,,,771,,,,,,771", "771,,,,,,,771,771,,,,,,,,,,,,15,,,15,,,,20,,,,,,,,21,,,,,353,,,347,15", ",771,,,,,43,347,,,,20,20,,,,,20,43,767,767,,,773,43,,15,,21,440,,21", "773,15,,,773,,,440,440,43,,,440,440,,,,,,,21,,,,,,353,856,,20,,,,,,", ",770,,770,,,770,770,,,,21,773,770,443,,,,21,770,770,,,,443,443,,770", "770,443,443,,,,769,,,20,,,,,769,,773,,,,,,,769,769,43,,,,43,,,771,343", "43,,,,770,,,771,,,,771,,,,,,768,343,,,,,,,768,,,,,43,,,,768,768,,,,", ",,,,,43,43,,,,,,,,,771,,,,,,,,,,,,,15,,,,,15,,,,,,,,,,347,15,,,771,", ",,,,,347,,,,,,,,440,,,,,767,,,,,,,,767,,,,15,,21,,,767,767,21,,,,,770", ",,,,,21,,,770,,,,770,,,,,,,769,,769,,443,769,769,,,,,,769,,,,,,769,769", ",21,,,,,769,769,,,,,,,,,,770,,766,766,,,,,768,,768,,15,768,768,,,,,", "768,,,,,,768,768,769,,15,,770,,768,768,15,,,,,,,,,,,,,,43,,15,,,,1109", ",343,,,,,,,21,,343,,,,,,768,,,,,,,,,,21,,,,,43,21,,43,,,,,,,767,,767", ",,767,767,21,,15,,1108,767,,43,,,,767,767,34,,,,,34,767,767,,,,,,,,", ",,15,15,,43,34,,15,,,,43,,,,34,34,34,,34,769,,,,,21,,,767,769,,,,769", ",,,,405,,,,,,,,,34,,,,15,34,34,21,21,34,,,,21,,,,,768,,,,,,,,,768,,", "769,768,,,,,,,766,,,,,,,,766,,15,,,,,,405,766,766,21,34,,,,769,34,34", "34,34,34,,34,,,,,,768,,,,,,,,,,,,,,,,343,,,,,,,,,,21,343,,,,,768,767", ",,,,,,,,767,,,,767,,,,,,,,43,,,,,43,,,,,,,,,,,43,,,,,,,34,34,34,34,34", "34,34,,,,,,34,767,,,,,34,34,34,34,,,,,,,43,,,,,,,34,,,,,,,,,,767,,,", ",,,,,,,,,,,,,,,,766,,766,,,766,766,,,,,,766,,,,34,,766,766,,,,34,34", ",766,766,,,,,34,,,,,,,,,,,,43,,,,,,34,,,,34,,,,,34,,,43,,,766,,,43,", ",,,,,,,,,,,,,,43,,,,1104,34,,,,,,,,,,,,,,34,34,34,,,,,,,,,,,,,,,,,,", "34,,,,,,,,,,,,,,,43,,,,,,,,,,,,,296,,,,,,,,,,,,,,,,43,43,,,,,43,,,,", ",,,,,,249,,,34,,,,766,,,317,317,317,,,,766,,,,766,,364,365,,367,368", ",370,,296,,,43,,,,,,,,,34,317,317,,,,,,,,34,,,,,,,,,,,,766,,,,,,,,,", ",,,43,,,,,,,,,,,,,,,,,,,766,,,,,,,,,,,,,,,,34,,,,,,,,,,34,,,,,,,,,,", ",,,,,,,,,,,,,,,,,34,,,34,,,,,,,34,,,,,,,,,,34,,,,34,,,,,,,,,,,,,,,,", ",,,,317,447,,,453,317,34,,,34,34,,,34,,,,,453,34,34,,,,34,34,,,,,,249", ",,,,,,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544", "545,546,547,548,549,550,,,,,551,,,,,,,,,,,,,,,,,,,,,,,317,317,,,,,,", ",317,,,,,,,317,,317,,,317,317,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,604,,,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,34,34,,,,,,,,,,34,,,,,,,,", ",,,,,,,,,34,,,,,317,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,692,,,,,,,,", ",,,,,,,,,,,,,,,,,317,,,,,,,,,,,,,723,,34,,,,,,,,317,,453,453,453,,,", ",34,,,,,,,,,,,,34,,,,,,34,,,,,,34,,,,,,,365,,,,,,,,,34,317,,317,,317", ",,,,,,,,,,,,,,,317,,,,,,,,,,453,,,816,,817,,,,,,317,,,317,,,,,,,,,,34", ",,317,317,,,,,,,,,,317,,,,,,,,,,,,,,,34,34,,,,,34,,,,,,,,,,,,317,453", "317,,,,874,,,317,317,453,453,,,,453,453,,,,,,317,,,,,,,,,34,,34,34,", "317,,,,,,,,,,34,,,,,,,,,,,,,,692,723,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,317,,,,,,,,,317,,,317,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317,,,,,,,,453,,,,,,,,", ",,,,1010,1011,,,,,,,,,,,,,,,,,,,,,,,,,,,,1033,1034,453,453,453,453,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1067,,,,,,,,,,,,,,,,,,,,,,,,,", ",,317,,,,,,,,,,,,,,,,,,,317,,,,,,,,,,,,,,,,,,,,,,,,,,453,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317"]; + racc_goto_table = (arr = $$$('Array').$new(4752, nil)); idx = 0; - $send(clist, 'each', [], ($Ruby30$12 = function(str){var self = $Ruby30$12.$$s == null ? this : $Ruby30$12.$$s, $$13; - + $send(clist, 'each', [], function $Ruby31$6(str){ - if (str == null) { - str = nil; - }; - return $send(str.$split(",", -1), 'each', [], ($$13 = function(i){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + if (str == null) str = nil;; + return $send(str.$split(",", -1), 'each', [], function $$7(i){var $writer = nil; - if (i == null) { - i = nil; - }; - if ($truthy(i['$empty?']())) { - } else { + if (i == null) i = nil;; + if (!$truthy(i['$empty?']())) { $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); + $send(arr, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - return (idx = $rb_plus(idx, 1));}, $$13.$$s = self, $$13.$$arity = 1, $$13));}, $Ruby30$12.$$s = self, $Ruby30$12.$$arity = 1, $Ruby30$12)); - clist = ["71,74,74,33,154,71,67,35,111,42,44,106,33,112,194,74,51,51,51,82,82", "7,71,54,54,116,194,19,19,86,86,19,12,93,71,71,71,35,87,87,87,24,24,31", "86,56,233,91,171,76,76,135,135,45,45,72,224,224,82,82,82,110,22,13,71", "8,9,17,17,5,8,40,40,87,71,71,71,89,89,89,68,90,90,28,142,19,19,19,19", "28,54,142,45,45,45,116,225,224,10,79,11,13,109,109,10,10,47,47,131,142", "88,88,89,89,88,31,20,91,23,20,183,225,71,23,63,20,229,64,188,8,233,71", "196,71,153,153,172,118,57,5,125,141,219,219,143,47,47,47,94,49,94,2", "23,69,55,55,55,127,145,128,148,6,37,37,62,62,62,230,223,209,209,209", "209,147,189,153,201,140,93,198,198,3,23,219,218,218,14,8,174,174,189", "157,23,223,208,208,8,233,8,16,174,73,73,157,81,81,18,21,51,25,27,188", "38,39,41,48,71,74,50,33,59,171,171,142,77,87,87,83,85,92,104,105,113", "115,119,196,196,145,120,194,23,71,111,121,122,123,124,196,129,23,230", "23,187,133,138,139,146,149,150,22,22,33,151,22,152,188,148,174,155,22", "156,158,160,54,54,161,164,90,6,147,51,51,11,165,2,166,167,168,72,51", "169,170,173,176,178,179,31,180,184,185,94,94,87,87,191,192,200,11,143", "172,172,87,1,82,196,204,205,126,125,67,33,71,206,207,210,71,35,188,141", "71,71,224,82,211,23,128,23,7,33,23,19,116,89,212,54,23,69,45,71,57,89", "145,142,127,54,69,94,213,35,23,13,71,198,198,31,214,45,71,71,217,227", "225,187,68,10,228,72,33,,,,37,9,71,71,5,8,229,172,222,222,11,,90,,,11", ",49,90,47,79,,,,,,116,,153,142,135,209,142,209,63,74,219,64,47,63,183", "225,64,54,33,110,118,131,62,,56,54,,,196,56,62,35,23,,,,23,31,,,,23", "11,11,5,196,,31,187,,,224,,,51,93,,76,224,,74,,54,54,171,,58,,,,,58", "23,71,71,17,224,91,23,23,,,31,,35,233,58,135,135,142,,13,,,23,23,58", "58,58,,58,,187,90,187,67,126,225,,90,126,,91,,67,,,,82,,90,,51,,72,109", "71,82,88,,58,74,28,28,71,58,58,28,28,58,187,74,,71,69,,,37,37,,,10,45", ",,90,,,20,,,45,37,89,187,,,,20,20,93,,,20,20,,55,,,140,24,140,55,112", ",,,,58,94,224,90,,58,58,58,58,58,,58,,90,51,,,47,71,,,71,,74,51,116", "47,135,12,74,,,40,,136,87,,136,37,,55,,71,,116,,,,,,,,,32,,,23,,89,51", "74,,,116,,,,,74,71,37,,,,,,71,106,126,126,,,,90,11,35,111,11,,,,90,35", "35,58,58,58,58,58,58,58,10,,,71,58,58,58,76,,71,71,,154,22,42,44,28", ",58,,74,67,140,22,22,17,89,90,22,22,224,,67,8,82,23,,,23,,8,35,,,,82", "86,222,222,10,71,,20,,222,222,109,222,,23,,71,,,58,,,,45,136,,58,58", ",,87,109,,109,45,58,,89,,19,,23,,224,23,,224,,23,,,,,58,23,23,,58,35", "23,23,10,58,37,,90,,35,90,,,,,35,,71,47,,,,71,,,,,,,47,,,35,71,,58,", ",,,,58,58,,,,,,140,,140,126,126,140,,,58,58,58,,35,,,,,35,35,,,,71,224", ",71,71,,,58,78,,71,,,11,78,,,,71,71,71,32,,22,35,,86,,32,11,86,,,,26", "26,19,71,26,140,,140,194,,,,,,,71,,,,,,,,,,194,,222,222,222,222,23,", ",,,23,,,,,,,,32,58,136,23,71,136,71,54,136,,136,,71,,26,26,26,26,,,", "23,,140,,11,,31,,,35,35,35,116,,,71,11,,,,,35,,140,,140,,140,,,,71,", ",,,,82,58,35,71,32,,,,222,,82,58,,32,11,,71,,140,23,,,71,,,,71,58,,", "226,23,,136,45,136,32,136,,136,,,,,45,,,130,26,26,,,,,,,,26,26,71,71", ",,,32,136,23,,,32,32,,23,19,19,,,71,,,82,58,,,58,,,47,11,,33,58,,,,", "71,47,,,71,58,,,,58,,,,,,,35,71,45,,26,71,,,,23,30,,,11,,30,78,,78,71", "58,71,51,58,58,,74,58,23,,30,74,23,58,58,,,,58,58,30,30,30,,30,30,30", "71,,,,,,,11,47,,71,,,,35,,,,23,23,11,,,32,32,32,,30,,,,,30,30,71,,30", "30,30,30,,,,,90,78,,,,,108,108,26,,,226,,,226,23,,226,,226,29,,11,,", "29,,,23,26,,130,,,130,,130,,,,,30,,,,,30,30,30,30,30,,30,,29,,,,,,,", ",,137,137,137,,,,,,,,23,,,,,,,58,,,29,,58,58,,,,,,,,,,58,,,226,,226", ",226,,226,,,,,,,,,58,,130,84,130,,130,,130,,78,78,,,,78,78,226,,,30", "30,30,30,30,30,30,29,,,,30,30,30,130,,29,,29,,,,,,,30,,,,,,,,,,,58,", ",,,,,,,32,,,58,,26,,,,,,,137,137,137,137,,137,,,,,,,,,30,,,,,,58,30", "30,,,,58,,,,30,,58,108,65,,,,,108,108,,,,29,,29,,30,29,,,30,,,29,30", "30,137,137,137,137,,,,,,,,29,,,,137,,30,,84,84,,,58,,,,,,,30,,,,,,30", "30,,,,,58,,,,,,78,70,65,30,30,30,70,,,,,,,78,78,78,78,,,,,,,70,30,65", ",,,,,58,58,,,70,70,70,,,,,,29,,,,29,,,,,29,,,,,,,,,,,,84,70,84,,,84", "84,,58,,,70,70,70,,,,,,29,,58,,58,58,29,29,,,,,,30,108,,,108,108,,,", "29,29,108,,,,,,,,108,108,108,,,58,,78,70,,,,,,,,58,70,,70,,,,,,,,,,", ",,,,,26,,,,30,,,,,,,,30,,30,,,,,65,,30,,,,,,,,108,30,,,,,,84,,,,,,,", ",,,,,,,,,,,65,,,,,,108,,65,,65,,70,,65,,,,,,,,108,,,,,,,30,65,,30,,", ",65,70,,30,,,,,,,,,,30,29,,,30,,,,99,99,65,,65,,,,,,,,,26,,84,,84,,84", ",,,30,,,30,30,,,30,,,,,,30,30,,,65,30,30,,,,,,108,,,,,,,,,,,,70,,,,70", ",,,70,70,,,,29,,,29,,84,,,,,,,,,70,108,,,,,,,,,29,84,,70,84,108,,108", "30,70,70,,,,,,,84,,30,,,,,,70,70,29,,,29,,,,29,,,,,,29,29,,108,,29,29", "98,98,,,,,,,,,,,,,84,,,,,,108,,,84,84,,,,,,,30,,,,,30,30,,,,,26,26,", ",,30,,,,,,65,,,,,,,,,,,,30,,,,,,,,,,99,,65,,84,,99,99,,,,,,84,,,84,", ",,,,,,,,,,,,,,34,,,,84,34,,,,,,,,,30,,,,84,,,70,,,,29,30,,,70,29,,,", "34,34,34,,70,,,29,,,,,,,,,,,,,,30,65,,,29,,30,,,34,,,30,,,,,,,34,34", "34,,,,,,,84,,,,,65,,,,,,,,,,,,,70,,,70,,,,,65,,,98,,,29,30,,98,98,,", "34,,65,70,,29,,30,,34,,34,,30,,,99,30,,99,99,,,,,,99,,,,70,,,,99,99", "99,70,,,29,65,65,65,,,29,,,,30,30,,,,,,,,,,,,,,,,,65,,,84,,,,,,,,,,", ",,,,,30,97,97,84,30,,,34,29,34,,99,34,,,,,30,34,30,30,,96,96,,70,,29", ",,,,34,,,,70,,,,,,,99,,,,,,,,,30,,,,,,,99,,,,30,29,29,,,,,,100,100,98", ",,98,98,,,,,,98,,,,,,,,98,98,98,,70,,,,,70,,,,,29,,,,,,70,34,,,,34,", "29,,34,34,,,,,,,,,,,,,,,,,,34,,,99,,,,61,,,,,61,34,,,98,,,34,34,,,,", "29,,61,,,,,,,,34,34,61,61,61,,61,,99,,,70,,98,,,,,,,,,99,70,99,,,,,98", ",,,,,,61,,,,,61,61,,,61,97,,,,,,97,97,,,,,70,,99,,,,70,,,96,,,,,,96", "96,,,,,,,,,,99,,,,,102,102,,,,61,,,,,61,61,61,61,61,,61,,,,,,,98,70", ",,100,,,,,,100,100,,,70,,,,,,70,,,,70,,,,,,,,,,,,,,34,,98,,,,,,34,,", ",,,,,98,34,98,70,70,,,,,,,,,,,,,,,,,,61,61,61,61,61,61,61,,,,,61,61", "61,,,98,,70,,,,70,,,61,,,97,,,97,97,,,70,,,97,,98,,34,,,34,97,97,97", "96,,,96,96,,,,,,96,,,,,,,34,96,96,96,,61,,34,,,,,61,61,,70,,,,,,61,", ",,,,34,,,34,,100,,34,100,100,,,61,34,34,100,61,97,34,34,,61,,100,100", "100,,102,,,,,,102,102,,,,96,,,,,,,,,,,97,,,61,,,,,,61,61,,,,,,97,,,", ",96,,,61,61,61,,,,,,,34,,,,96,100,,,,,,34,61,,,,,,,,,,,,,,,,,,,,,,,", ",100,,,,,,,,,,,,,,,,100,,,,,,,,,,,,,97,,,,34,,,,,34,,,,,,,,,61,,34,96", ",,,,,,,,,,,,,,,,34,,97,,,,,103,103,,,102,,,102,102,97,,97,,,102,,96", ",,,,,102,102,102,100,,,,,96,61,96,,,,,,,101,101,61,,,,,,97,,34,,,,,", ",,61,,,,34,,,,100,,,96,,,97,,,,,,,,100,,100,,,,,102,,,,,,96,,,,34,,", ",,,34,,,,,,,,,61,,,61,,,100,102,,,61,,,,,,36,,,,61,,,102,61,,36,36,36", ",100,,,,,,,,36,36,34,36,36,,36,,,,,,,61,,34,61,61,,,61,34,,36,36,34", "61,61,,,,61,61,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,,,,,102,,103,,,,,", "103,103,,,,,,,,,,,,,,,,,,34,,,,34,,,,,,,,,102,101,,,34,,,101,101,,,", ",,102,,102,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,102,,,,,61,,,,,61,61", ",,,36,36,,,36,36,61,,,102,36,,,,,,,,,,,,,36,61,,,,36,36,36,36,36,36", "36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,,,,,36,,,,,,,,,,,103", ",,103,103,,,,,,103,,36,36,,61,,,103,103,103,36,,,,,,61,36,,36,,,36,36", ",,,,101,,,101,101,,,,,,101,,,,,,,61,101,101,101,,,61,,,,,,61,,,,,,,36", ",36,,,,,103,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,103,,,61,,,,101,,,,,,,,,103", ",,,,,61,,,,,,,,,,,,,,36,,,101,,,,,,,,,,,,,,,,101,,,,61,61,,,,,,,,,,", ",,,,,,,,36,,36,36,36,,,,,,,,,,,,,,,,103,61,,,,,,,,,,,,,61,,61,61,36", ",,,,,,,,,36,,36,,36,,,,,,,101,103,,,,,,,,36,61,,,,,103,,103,,36,,61", "36,,,,36,,,,,,,,,,,,,,101,,,,,,,,,,,,36,103,101,,101,,,,,,,,,,36,,,", ",,36,,,36,,103,,,,,,,,,,,36,36,,,101,,,,,,,36,,,,,,,,,,,,,,,,,101,,", ",,,,,,,,,,,,,36,36,36,,,,36,,,36,36,36,36,,,,36,36,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,36,,,36,,,,,,,,,,,,,,,,,,,", "36,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,36,,,,,,,,36,,,,,,,,,,,,,36,36,36,36,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,", ",,,,,,,36,,,,,,,,,,,,,,,,,,,36,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,36"]; - racc_goto_check = (arr = $$$('::', 'Array').$new(4137, nil)); + return (idx = $rb_plus(idx, 1));}, 1);}, 1); + clist = ["72,198,158,91,91,72,75,75,36,36,36,68,46,198,31,230,230,48,107,19,19", "10,75,19,72,34,112,10,128,113,34,12,55,55,82,82,72,72,72,73,117,139", "139,94,33,110,110,11,92,228,228,228,77,77,13,33,135,70,133,22,111,34", "34,34,72,9,44,44,80,17,17,82,82,82,72,72,72,19,19,19,19,239,87,87,56", "56,56,235,8,34,95,20,95,8,20,51,31,32,187,34,34,34,69,41,41,177,177", "58,20,55,117,7,24,24,149,28,26,26,119,57,26,129,72,239,89,89,152,192", "89,28,87,72,231,72,151,225,225,200,200,5,35,35,64,193,2,157,157,34,90", "90,90,127,8,147,130,236,34,145,34,207,161,6,3,10,214,214,29,14,65,178", "178,29,161,16,26,26,26,26,18,178,94,90,90,175,224,224,13,21,66,25,239", "230,176,74,74,27,42,91,36,43,95,95,29,45,202,202,50,52,60,5,8,78,215", "215,215,215,72,83,84,8,86,8,75,93,152,236,105,11,72,106,29,114,151,116", "72,149,198,120,121,122,123,34,124,34,128,125,34,126,128,131,136,72,142", "34,22,22,143,150,22,34,34,112,11,146,66,146,26,26,33,88,88,88,22,73", "153,154,34,2,6,155,36,36,156,26,26,70,159,66,29,36,160,162,164,165,70", "168,169,29,170,29,192,171,88,172,173,180,182,200,95,192,31,225,33,183", "87,87,63,63,63,184,145,157,188,91,189,55,55,147,58,91,195,72,68,196", "19,72,82,129,205,72,72,206,149,1,26,210,11,211,193,212,119,11,51,127", "130,82,34,192,72,213,34,216,175,217,34,34,117,175,175,218,72,33,35,35", "32,219,176,176,80,220,31,223,29,34,29,72,72,29,32,33,229,9,202,202,29", "34,11,11,55,233,29,29,234,69,235,,,187,55,,34,34,,73,,,,29,31,8,33,90", ",75,117,66,230,111,31,90,,26,91,10,,,55,7,91,,,64,,,55,36,64,128,128", "32,,119,26,13,88,88,215,231,215,,,139,,31,66,5,,65,33,77,228,228,65", "228,228,,228,,,32,,55,55,230,36,230,17,,32,,91,,,133,36,,110,29,57,", "70,29,66,57,,,29,40,,,66,32,66,56,79,75,66,94,239,56,,,,5,,72,72,91", "79,95,92,,66,,146,,29,40,66,200,200,88,88,20,117,,225,,,200,88,29,29", "20,20,200,157,66,20,20,68,174,174,91,36,41,231,177,73,68,89,32,,91,28", "28,32,32,72,28,28,13,146,82,191,,72,24,75,63,,191,82,,,72,,63,75,200", "94,91,36,34,,,,,56,91,,34,36,,,,72,,,72,34,,,,113,44,75,11,,,11,,75", ",,139,139,10,,,72,34,,135,34,231,91,36,128,128,,,,,,,,117,,,,,,75,66", "34,198,72,,,140,75,,140,72,,117,110,228,228,228,228,,,90,,,,32,32,32", ",34,,,34,,146,,34,146,,,,,34,34,22,,77,34,34,,,,,,22,22,,12,,22,22,", "90,17,,112,,,,,,107,,,,,,,139,200,72,29,,20,,110,,110,72,,,230,8,,87", ",158,72,72,8,,191,,46,28,,,146,48,228,191,,68,75,191,,174,,91,29,,91", "29,68,174,10,,,,,,90,19,,,82,,,72,230,,,,29,,,82,,,72,79,,79,,,,,,191", ",,,,34,,,,,132,,29,40,,29,34,,72,29,,32,,72,,29,29,,,11,29,29,191,,72", ",,40,10,,66,88,26,34,,11,,,34,,,,,,,66,,,,34,,,,,,,,,10,72,79,26,,,", ",,34,,,11,90,,19,,,,,,22,,,,,34,,230,66,,230,,72,,72,,,72,72,88,66,", ",19,72,,,,40,,72,72,,,,140,,,72,72,,,31,87,,,,87,174,,,,,174,174,,,198", ",,55,72,,79,79,,174,,79,79,,,11,,,,,72,,72,230,66,66,66,132,72,34,132", ",132,11,26,,,,29,,66,,,29,72,82,,34,72,,,,59,34,29,11,174,59,,,,,,26", "117,,,40,,34,,,29,34,59,,,,,,,,,,59,59,59,,59,29,,,,,,,,,,72,132,,132", ",132,,132,,,82,,,72,,,,59,,,,,59,59,132,34,59,,,72,72,19,19,,,72,,,34", "140,11,,140,,,140,11,140,72,,144,,144,,34,34,,72,,,34,72,,,,,33,,,91", "36,29,,82,,59,72,98,98,72,59,59,59,59,59,,59,,,29,11,,,,75,29,,,,,79", "34,,,34,72,,,,,,29,,,,140,,140,75,140,,140,,72,,,,,26,26,,,,,11,,232", "72,140,,,,,,79,79,79,79,34,40,,,,,,,,,,,,,,40,40,,29,,,59,59,59,59,59", "59,59,,,,,,59,,,,,,59,59,59,59,,,,,29,29,85,30,,,29,,30,59,,,,,,,,,", ",,,,,,30,,,,40,,,,,,30,30,30,,30,30,30,,,,,,,,,29,,,,,59,,,,40,,,59", "59,,79,,30,40,,,59,30,30,40,,30,30,30,30,,,141,141,141,,,,,59,,40,,59", "29,,,,59,,98,232,,,232,,,232,98,232,,,,,,97,97,98,98,,,,,,144,30,,,59", ",30,30,30,30,30,,30,,,,,,59,59,59,,,,,,,40,,85,85,,40,40,,,,,,59,,,", ",,,,,144,,144,,144,232,,232,,232,,232,,,,,141,141,141,141,,141,,40,", ",,,232,,,,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,,59,,,,30,141,141,141", "141,,30,30,30,30,,,,141,,,,,,,,,,30,,85,,85,,,85,85,,,,59,,40,40,40", ",,,,,59,,40,98,,98,,,98,98,,,,,144,98,144,,,,,98,98,,30,,40,,,98,98", "30,30,,,,,,,,30,,144,,,,,,,,,,,,,,,97,30,,59,,30,,,97,30,30,98,,59,", ",,97,97,,,,,,,,,144,30,144,,144,,38,,,,85,38,,30,59,,,59,,,40,,,144", "59,,,30,30,30,,,,,59,,,,59,,,,38,38,38,,,,30,,,,,,,,,,,,,,40,,,59,,", "59,59,38,85,59,,,,,,59,59,38,38,38,59,59,,,,,,,,,,,,,,,,,,,,,,,,,,,98", "30,,,,,,,,98,,,,98,,,,38,,,,,,,,,38,,38,,,,,85,,85,,85,,,30,97,,97,", ",97,97,,,30,,,97,,,,98,,97,97,,,,,,,97,97,,,,,,85,,,85,,,,,,,,,,,,98", "85,,,,,,,,,,,,,59,,,97,,,,30,38,,38,,,38,,30,,30,,,38,,,59,30,,38,38", "59,59,,85,,,,,,,,59,85,85,,38,,30,,,30,,,,,,85,30,,59,,,,,,,,30,,,85", "30,,,,,59,,,,,,,,,,,,,,,,,,,,,,30,,,30,30,,,30,,,,,,30,30,,,,30,30,", ",,,,,,38,,,,38,,,97,38,38,,,,,,59,97,,,,97,,,,,85,,38,,,,,59,,85,,,85", ",38,,,,,59,,,,,,59,,,,38,38,59,,,,,,,,97,,,,,,,,59,,,,,,,,,,,,,,,,,", ",,,,,,97,,,,,,,,85,,,30,,,,,23,,,,,23,30,,,,30,,,,,59,,,,,,,,,,,,,,", ",,,30,,,23,,30,30,,,,,59,59,,,,30,59,,,39,,,,,39,,,,,,23,,,30,,,,,,", "23,109,109,,,,,,,,30,,,,,39,39,39,,,59,,59,59,,,,,,,,,,,,59,,,,,,85", ",39,,,,,23,,,,,39,39,39,,23,,23,85,38,,,59,,,,,38,,,,,30,,,,38,,,,,", ",,,,,,,30,,,,,,,,38,,39,38,30,,,104,104,,30,39,,39,,,30,,,,,,,,38,,", ",,,,,30,,,,30,,,,,,,23,,23,,,23,,,38,,,38,23,,,38,,,23,23,,38,38,,,", "38,38,,,,,,,,23,,,,,,,,,30,,,,,,,,,39,,39,,30,39,,,,,,,39,,,,,,39,39", "30,30,,,109,,30,,,,,,109,,,39,,,,,,109,109,,103,103,,,,,,,,,,,,,,,,", "23,,,,23,30,,,30,23,30,30,,,,,,,,,,,,30,,,,38,,,,,,,,,,,38,23,,,,,,", ",,,,,,30,39,23,23,,39,,,,39,39,,,38,,104,,,38,,,,,104,,,,,39,38,,,104", "104,,,,,,,39,,,,,,,38,71,,,,,71,,39,39,,,,,,,,38,,,,,,,,71,,,,,,,,,", ",,71,71,71,,,109,,109,,,109,109,,,,,,109,,,,,,109,109,,,,71,,,109,109", ",,,,,71,71,71,,,,,,,,,,,,,,,,,,102,102,,38,,,103,,,,,,109,,103,,,,,", ",38,,103,103,,,38,71,,,,,,,,,71,,71,,,,38,,101,101,38,,,,,104,23,104", ",,104,104,,,,,,104,,,,,,104,104,,,,,,,104,104,,,,,,,,,,,,23,,,23,,,", "38,,,,,,,,39,,,,,38,,,39,23,,104,,,,,71,39,,,,38,38,,,,,38,71,100,100", ",,109,71,,23,,39,23,,39,109,23,,,109,,,23,23,71,,,23,23,,,,,,,39,,,", ",,38,39,,38,,,,,,,,103,,103,,,103,103,,,,39,109,103,39,,,,39,103,103", ",,,39,39,,103,103,39,39,,,,102,,,38,,,,,102,,109,,,,,,,102,102,71,,", ",71,,,104,71,71,,,,103,,,104,,,,104,,,,,,101,71,,,,,,,101,,,,,71,,,", "101,101,,,,,,,,,,71,71,,,,,,,,,104,,,,,,,,,,,,,23,,,,,23,,,,,,,,,,39", "23,,,104,,,,,,,39,,,,,,,,23,,,,,100,,,,,,,,100,,,,23,,39,,,100,100,39", ",,,,103,,,,,,39,,,103,,,,103,,,,,,,102,,102,,39,102,102,,,,,,102,,,", ",,102,102,,39,,,,,102,102,,,,,,,,,,103,,99,99,,,,,101,,101,,23,101,101", ",,,,,101,,,,,,101,101,102,,23,,103,,101,101,23,,,,,,,,,,,,,,71,,23,", ",,23,,71,,,,,,,39,,71,,,,,,101,,,,,,,,,,39,,,,,71,39,,71,,,,,,,100,", "100,,,100,100,39,,23,,39,100,,71,,,,100,100,62,,,,,62,100,100,,,,,,", ",,,,23,23,,71,62,,23,,,,71,,,,62,62,62,,62,102,,,,,39,,,100,102,,,,102", ",,,,39,,,,,,,,,62,,,,23,62,62,39,39,62,,,,39,,,,,101,,,,,,,,,101,,,102", "101,,,,,,,99,,,,,,,,99,,23,,,,,,39,99,99,39,62,,,,102,62,62,62,62,62", ",62,,,,,,101,,,,,,,,,,,,,,,,71,,,,,,,,,,39,71,,,,,101,100,,,,,,,,,100", ",,,100,,,,,,,,71,,,,,71,,,,,,,,,,,71,,,,,,,62,62,62,62,62,62,62,,,,", ",62,100,,,,,62,62,62,62,,,,,,,71,,,,,,,62,,,,,,,,,,100,,,,,,,,,,,,,", ",,,,,,99,,99,,,99,99,,,,,,99,,,,62,,99,99,,,,62,62,,99,99,,,,,62,,,", ",,,,,,,,71,,,,,,62,,,,62,,,,,62,,,71,,,99,,,71,,,,,,,,,,,,,,,,71,,,", "71,62,,,,,,,,,,,,,,62,62,62,,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,71,,", ",,,,,,,,,,71,,,,,,,,,,,,,,,,71,71,,,,,71,,,,,,,,,,,37,,,62,,,,99,,,37", "37,37,,,,99,,,,99,,37,37,,37,37,,37,,71,,,71,,,,,,,,,62,37,37,,,,,,", ",62,,,,,,,,,,,,99,,,,,,,,,,,,,71,,,,,,,,,,,,,,,,,,,99,,,,,,,,,,,,,,", ",62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,,,62,,,,,,,62,,,,,,,,", ",62,,,,62,,,,,,,,,,,,,,,,,,,,,37,37,,,37,37,62,,,62,62,,,62,,,,,37,62", "62,,,,62,62,,,,,,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,,,,", "62,,,,,,,,,,,,,,,,,,,,,,,62,,,,,62,62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,62", ",,,,37,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,", ",,,37,,,,,,,,,,,,,37,,62,,,,,,,,37,,37,37,37,,,,,62,,,,,,,,,,,,62,,", ",,,62,,,,,,62,,,,,,,37,,,,,,,,,62,37,,37,,37,,,,,,,,,,,,,,,,37,,,,,", ",,,,37,,,37,,37,,,,,,37,,,37,,,,,,,,,,62,,,37,37,,,,,,,,,,37,,,,,,,", ",,,,,,,62,62,,,,,62,,,,,,,,,,,,37,37,37,,,,37,,,37,37,37,37,,,,37,37", ",,,,,37,,,,,,,,,62,,62,62,,37,,,,,,,,,,62,,,,,,,,,,,,,,37,37,,,,,,,", ",,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,37,,,37", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37", ",,,,,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,37,37", "37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,", ",,,,37,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37"]; + racc_goto_check = (arr = $$$('Array').$new(4752, nil)); idx = 0; - $send(clist, 'each', [], ($Ruby30$14 = function(str){var self = $Ruby30$14.$$s == null ? this : $Ruby30$14.$$s, $$15; - + $send(clist, 'each', [], function $Ruby31$8(str){ - if (str == null) { - str = nil; - }; - return $send(str.$split(",", -1), 'each', [], ($$15 = function(i){var self = $$15.$$s == null ? this : $$15.$$s, $writer = nil; + if (str == null) str = nil;; + return $send(str.$split(",", -1), 'each', [], function $$9(i){var $writer = nil; - if (i == null) { - i = nil; - }; - if ($truthy(i['$empty?']())) { - } else { + if (i == null) i = nil;; + if (!$truthy(i['$empty?']())) { $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); + $send(arr, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - return (idx = $rb_plus(idx, 1));}, $$15.$$s = self, $$15.$$arity = 1, $$15));}, $Ruby30$14.$$s = self, $Ruby30$14.$$arity = 1, $Ruby30$14)); - racc_goto_pointer = [nil, 312, 149, 181, nil, 64, 154, 16, 63, 57, -265, 64, -531, -701, -732, nil, -336, 57, 195, -44, -104, 131, 40, 116, -178, -10, 832, 74, -140, 1226, 1125, -181, 196, -15, 2017, -14, 2981, -320, -33, -33, -2, -405, -15, nil, -14, 16, nil, 69, 191, 122, -289, -16, nil, nil, -202, 125, -250, -382, 471, -293, nil, 2372, 132, 88, 91, 1203, nil, -31, 42, -197, 1505, -2, -345, 124, -9, nil, 39, -205, 654, 53, nil, 152, -18, 178, 1258, 161, -23, 6, -264, 45, 52, -249, -281, -277, -377, nil, 1768, 1747, 1430, 1286, 1817, 2433, 2009, 2394, 206, 163, -58, nil, 732, -280, -739, -380, -609, 156, nil, -171, 20, nil, 84, 169, -133, 177, -392, -580, -160, -801, -268, -428, -783, -693, 145, -663, nil, -654, nil, -519, -142, 256, -762, -652, -189, -766, -684, -592, nil, -670, -812, -895, -908, -150, -569, 177, -376, -232, -21, -696, -695, -318, -19, nil, -28, -26, nil, nil, -452, -778, -668, -913, -523, -831, -662, -653, -565, -661, -686, nil, -577, nil, -577, -405, -403, nil, nil, -582, -404, -404, nil, -629, -873, -950, nil, -770, -769, nil, -76, nil, -639, nil, -528, nil, -459, -746, nil, nil, 227, 223, 228, 228, -218, -241, 228, 236, 245, -289, -282, nil, nil, -268, -158, -224, nil, nil, -184, -600, -310, -672, 128, -401, -716, -649, -930, nil, nil, -481]; - racc_goto_default = [nil, nil, nil, nil, 5, nil, 6, 389, 324, nil, nil, 563, nil, 948, nil, 321, 322, nil, nil, nil, 13, 14, 20, 239, nil, nil, 16, nil, 439, 240, 353, nil, nil, 634, 238, 474, 23, 997, nil, nil, nil, nil, nil, 384, 143, 52, 24, 53, nil, nil, nil, 25, 26, 27, 757, nil, nil, nil, 341, nil, 28, 338, 453, 35, nil, nil, 37, 40, 39, nil, 235, 236, 401, nil, 461, 142, 87, nil, 444, 103, 49, nil, 54, 273, 313, nil, 919, 454, nil, 455, 466, nil, 683, 524, 311, 297, 55, 56, 57, 58, 59, 60, 61, 62, 63, nil, 298, 69, 70, nil, nil, nil, nil, nil, 77, nil, 616, 78, 363, nil, nil, nil, nil, nil, nil, 782, 583, nil, 783, 784, 571, 565, 566, 1143, 1013, nil, 572, nil, nil, nil, 601, nil, 574, nil, 906, nil, nil, nil, 581, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 465, nil, nil, 736, 728, nil, nil, nil, nil, nil, nil, nil, nil, nil, 882, nil, 696, 705, 697, 698, nil, nil, 699, 700, nil, nil, nil, 881, 883, nil, 884, 982, 983, 984, 985, nil, 989, 592, 990, 704, 706, nil, nil, 86, 88, 89, nil, nil, nil, nil, 644, nil, nil, nil, nil, nil, 99, 100, nil, 364, 926, 367, 570, 769, 573, 938, 586, 588, 589, 1024, 593, 1025, 596, 599, 316]; - racc_reduce_table = [0, 0, "racc_error", 0, 150, "_reduce_1", 2, 148, "_reduce_2", 2, 149, "_reduce_3", 0, 151, "_reduce_4", 1, 151, "_reduce_5", 3, 151, "_reduce_6", 2, 151, "_reduce_7", 1, 153, "_reduce_none", 2, 153, "_reduce_9", 3, 156, "_reduce_10", 4, 157, "_reduce_11", 2, 158, "_reduce_12", 0, 162, "_reduce_13", 1, 162, "_reduce_14", 3, 162, "_reduce_15", 2, 162, "_reduce_16", 1, 163, "_reduce_none", 2, 163, "_reduce_18", 0, 174, "_reduce_19", 4, 155, "_reduce_20", 3, 155, "_reduce_21", 3, 155, "_reduce_22", 3, 155, "_reduce_23", 2, 155, "_reduce_24", 3, 155, "_reduce_25", 3, 155, "_reduce_26", 3, 155, "_reduce_27", 3, 155, "_reduce_28", 3, 155, "_reduce_29", 4, 155, "_reduce_30", 1, 155, "_reduce_none", 3, 155, "_reduce_32", 3, 155, "_reduce_33", 5, 155, "_reduce_34", 3, 155, "_reduce_35", 1, 155, "_reduce_none", 3, 167, "_reduce_37", 3, 167, "_reduce_38", 6, 167, "_reduce_39", 5, 167, "_reduce_40", 5, 167, "_reduce_41", 5, 167, "_reduce_42", 5, 167, "_reduce_43", 3, 167, "_reduce_44", 1, 175, "_reduce_none", 3, 175, "_reduce_46", 1, 175, "_reduce_none", 1, 173, "_reduce_none", 3, 173, "_reduce_49", 3, 173, "_reduce_50", 3, 173, "_reduce_51", 2, 173, "_reduce_52", 0, 185, "_reduce_53", 4, 173, "_reduce_54", 0, 186, "_reduce_55", 4, 173, "_reduce_56", 1, 173, "_reduce_none", 1, 166, "_reduce_none", 0, 190, "_reduce_59", 3, 187, "_reduce_60", 1, 189, "_reduce_61", 2, 192, "_reduce_62", 0, 197, "_reduce_63", 5, 194, "_reduce_64", 1, 169, "_reduce_none", 1, 169, "_reduce_none", 1, 199, "_reduce_none", 4, 199, "_reduce_68", 0, 206, "_reduce_69", 4, 203, "_reduce_70", 1, 205, "_reduce_none", 2, 198, "_reduce_72", 3, 198, "_reduce_73", 4, 198, "_reduce_74", 5, 198, "_reduce_75", 4, 198, "_reduce_76", 5, 198, "_reduce_77", 2, 198, "_reduce_78", 2, 198, "_reduce_79", 2, 198, "_reduce_80", 2, 198, "_reduce_81", 2, 198, "_reduce_82", 1, 168, "_reduce_83", 3, 168, "_reduce_84", 1, 211, "_reduce_85", 3, 211, "_reduce_86", 1, 210, "_reduce_none", 2, 210, "_reduce_88", 3, 210, "_reduce_89", 5, 210, "_reduce_90", 2, 210, "_reduce_91", 4, 210, "_reduce_92", 2, 210, "_reduce_93", 4, 210, "_reduce_94", 1, 210, "_reduce_95", 3, 210, "_reduce_96", 1, 214, "_reduce_none", 3, 214, "_reduce_98", 2, 213, "_reduce_99", 3, 213, "_reduce_100", 1, 216, "_reduce_101", 3, 216, "_reduce_102", 1, 215, "_reduce_103", 1, 215, "_reduce_104", 4, 215, "_reduce_105", 3, 215, "_reduce_106", 3, 215, "_reduce_107", 3, 215, "_reduce_108", 3, 215, "_reduce_109", 2, 215, "_reduce_110", 1, 215, "_reduce_111", 1, 170, "_reduce_112", 1, 170, "_reduce_113", 4, 170, "_reduce_114", 3, 170, "_reduce_115", 3, 170, "_reduce_116", 3, 170, "_reduce_117", 3, 170, "_reduce_118", 2, 170, "_reduce_119", 1, 170, "_reduce_120", 1, 219, "_reduce_121", 1, 219, "_reduce_none", 2, 220, "_reduce_123", 1, 220, "_reduce_124", 3, 220, "_reduce_125", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 164, "_reduce_131", 1, 164, "_reduce_none", 1, 165, "_reduce_133", 0, 224, "_reduce_134", 4, 165, "_reduce_135", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 3, 183, "_reduce_207", 3, 183, "_reduce_208", 6, 183, "_reduce_209", 5, 183, "_reduce_210", 5, 183, "_reduce_211", 5, 183, "_reduce_212", 5, 183, "_reduce_213", 4, 183, "_reduce_214", 3, 183, "_reduce_215", 3, 183, "_reduce_216", 3, 183, "_reduce_217", 2, 183, "_reduce_218", 2, 183, "_reduce_219", 2, 183, "_reduce_220", 2, 183, "_reduce_221", 3, 183, "_reduce_222", 3, 183, "_reduce_223", 3, 183, "_reduce_224", 3, 183, "_reduce_225", 3, 183, "_reduce_226", 3, 183, "_reduce_227", 4, 183, "_reduce_228", 2, 183, "_reduce_229", 2, 183, "_reduce_230", 3, 183, "_reduce_231", 3, 183, "_reduce_232", 3, 183, "_reduce_233", 3, 183, "_reduce_234", 1, 183, "_reduce_none", 3, 183, "_reduce_236", 3, 183, "_reduce_237", 3, 183, "_reduce_238", 3, 183, "_reduce_239", 3, 183, "_reduce_240", 2, 183, "_reduce_241", 2, 183, "_reduce_242", 3, 183, "_reduce_243", 3, 183, "_reduce_244", 3, 183, "_reduce_245", 3, 183, "_reduce_246", 3, 183, "_reduce_247", 6, 183, "_reduce_248", 4, 183, "_reduce_249", 6, 183, "_reduce_250", 4, 183, "_reduce_251", 6, 183, "_reduce_252", 1, 183, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 3, 227, "_reduce_258", 3, 227, "_reduce_259", 1, 231, "_reduce_none", 1, 232, "_reduce_none", 2, 232, "_reduce_none", 4, 232, "_reduce_263", 2, 232, "_reduce_264", 1, 225, "_reduce_none", 3, 225, "_reduce_266", 3, 237, "_reduce_267", 5, 237, "_reduce_268", 3, 237, "_reduce_269", 0, 239, "_reduce_270", 1, 239, "_reduce_none", 0, 178, "_reduce_272", 1, 178, "_reduce_none", 2, 178, "_reduce_none", 4, 178, "_reduce_275", 2, 178, "_reduce_276", 1, 209, "_reduce_277", 2, 209, "_reduce_278", 2, 209, "_reduce_279", 4, 209, "_reduce_280", 1, 209, "_reduce_281", 0, 242, "_reduce_282", 2, 202, "_reduce_283", 2, 241, "_reduce_284", 2, 240, "_reduce_285", 0, 240, "_reduce_286", 1, 234, "_reduce_287", 2, 234, "_reduce_288", 3, 234, "_reduce_289", 4, 234, "_reduce_290", 1, 172, "_reduce_291", 1, 172, "_reduce_none", 3, 171, "_reduce_293", 4, 171, "_reduce_294", 2, 171, "_reduce_295", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_306", 0, 266, "_reduce_307", 4, 229, "_reduce_308", 0, 267, "_reduce_309", 4, 229, "_reduce_310", 0, 268, "_reduce_311", 4, 229, "_reduce_312", 3, 229, "_reduce_313", 3, 229, "_reduce_314", 2, 229, "_reduce_315", 3, 229, "_reduce_316", 3, 229, "_reduce_317", 1, 229, "_reduce_318", 4, 229, "_reduce_319", 3, 229, "_reduce_320", 1, 229, "_reduce_321", 5, 229, "_reduce_322", 4, 229, "_reduce_323", 3, 229, "_reduce_324", 2, 229, "_reduce_325", 1, 229, "_reduce_none", 2, 229, "_reduce_327", 1, 229, "_reduce_none", 6, 229, "_reduce_329", 6, 229, "_reduce_330", 4, 229, "_reduce_331", 4, 229, "_reduce_332", 5, 229, "_reduce_333", 4, 229, "_reduce_334", 5, 229, "_reduce_335", 6, 229, "_reduce_336", 0, 269, "_reduce_337", 6, 229, "_reduce_338", 0, 270, "_reduce_339", 7, 229, "_reduce_340", 0, 271, "_reduce_341", 5, 229, "_reduce_342", 4, 229, "_reduce_343", 4, 229, "_reduce_344", 1, 229, "_reduce_345", 1, 229, "_reduce_346", 1, 229, "_reduce_347", 1, 229, "_reduce_348", 1, 177, "_reduce_none", 1, 261, "_reduce_350", 1, 264, "_reduce_351", 1, 193, "_reduce_352", 1, 208, "_reduce_353", 1, 256, "_reduce_none", 1, 256, "_reduce_none", 2, 256, "_reduce_356", 1, 188, "_reduce_none", 1, 188, "_reduce_none", 1, 257, "_reduce_none", 5, 257, "_reduce_360", 1, 160, "_reduce_none", 2, 160, "_reduce_362", 1, 260, "_reduce_none", 1, 260, "_reduce_none", 1, 272, "_reduce_365", 3, 272, "_reduce_366", 1, 275, "_reduce_367", 3, 275, "_reduce_368", 1, 274, "_reduce_none", 3, 274, "_reduce_370", 5, 274, "_reduce_371", 1, 274, "_reduce_372", 3, 274, "_reduce_373", 2, 276, "_reduce_374", 1, 276, "_reduce_375", 1, 277, "_reduce_none", 1, 277, "_reduce_none", 4, 280, "_reduce_378", 2, 280, "_reduce_379", 2, 280, "_reduce_380", 1, 280, "_reduce_381", 2, 284, "_reduce_382", 0, 284, "_reduce_383", 1, 285, "_reduce_none", 6, 286, "_reduce_385", 8, 286, "_reduce_386", 4, 286, "_reduce_387", 6, 286, "_reduce_388", 4, 286, "_reduce_389", 2, 286, "_reduce_none", 6, 286, "_reduce_391", 2, 286, "_reduce_392", 4, 286, "_reduce_393", 6, 286, "_reduce_394", 2, 286, "_reduce_395", 4, 286, "_reduce_396", 2, 286, "_reduce_397", 4, 286, "_reduce_398", 1, 286, "_reduce_none", 0, 290, "_reduce_400", 1, 290, "_reduce_401", 3, 291, "_reduce_402", 4, 291, "_reduce_403", 1, 292, "_reduce_404", 4, 292, "_reduce_405", 1, 293, "_reduce_406", 3, 293, "_reduce_407", 1, 294, "_reduce_408", 1, 294, "_reduce_none", 0, 298, "_reduce_410", 0, 299, "_reduce_411", 5, 255, "_reduce_412", 4, 296, "_reduce_413", 1, 296, "_reduce_414", 0, 302, "_reduce_415", 4, 297, "_reduce_416", 0, 303, "_reduce_417", 4, 297, "_reduce_418", 0, 305, "_reduce_419", 4, 301, "_reduce_420", 2, 200, "_reduce_421", 4, 200, "_reduce_422", 5, 200, "_reduce_423", 5, 200, "_reduce_424", 2, 254, "_reduce_425", 4, 254, "_reduce_426", 4, 254, "_reduce_427", 3, 254, "_reduce_428", 3, 254, "_reduce_429", 3, 254, "_reduce_430", 2, 254, "_reduce_431", 1, 254, "_reduce_432", 4, 254, "_reduce_433", 0, 307, "_reduce_434", 4, 253, "_reduce_435", 0, 308, "_reduce_436", 4, 253, "_reduce_437", 0, 309, "_reduce_438", 3, 204, "_reduce_439", 0, 310, "_reduce_440", 0, 311, "_reduce_441", 4, 304, "_reduce_442", 5, 258, "_reduce_443", 1, 312, "_reduce_444", 1, 312, "_reduce_none", 0, 315, "_reduce_446", 0, 316, "_reduce_447", 7, 259, "_reduce_448", 1, 314, "_reduce_449", 1, 314, "_reduce_none", 1, 313, "_reduce_451", 3, 313, "_reduce_452", 3, 313, "_reduce_453", 1, 317, "_reduce_none", 2, 317, "_reduce_455", 3, 317, "_reduce_456", 1, 317, "_reduce_457", 1, 317, "_reduce_458", 1, 317, "_reduce_459", 1, 184, "_reduce_none", 3, 322, "_reduce_461", 1, 322, "_reduce_none", 3, 324, "_reduce_463", 1, 324, "_reduce_none", 1, 326, "_reduce_465", 1, 327, "_reduce_466", 1, 325, "_reduce_none", 4, 325, "_reduce_468", 4, 325, "_reduce_469", 4, 325, "_reduce_470", 3, 325, "_reduce_471", 4, 325, "_reduce_472", 4, 325, "_reduce_473", 4, 325, "_reduce_474", 3, 325, "_reduce_475", 3, 325, "_reduce_476", 3, 325, "_reduce_477", 2, 325, "_reduce_478", 0, 331, "_reduce_479", 4, 325, "_reduce_480", 2, 325, "_reduce_481", 0, 332, "_reduce_482", 4, 325, "_reduce_483", 1, 318, "_reduce_484", 1, 318, "_reduce_485", 2, 318, "_reduce_486", 3, 318, "_reduce_487", 5, 318, "_reduce_488", 2, 318, "_reduce_489", 4, 318, "_reduce_490", 1, 318, "_reduce_none", 2, 333, "_reduce_492", 3, 333, "_reduce_493", 1, 320, "_reduce_494", 3, 320, "_reduce_495", 5, 319, "_reduce_496", 2, 336, "_reduce_497", 1, 336, "_reduce_498", 1, 335, "_reduce_499", 3, 335, "_reduce_500", 1, 334, "_reduce_none", 3, 321, "_reduce_502", 1, 321, "_reduce_503", 2, 321, "_reduce_504", 1, 321, "_reduce_505", 1, 337, "_reduce_506", 3, 337, "_reduce_507", 2, 339, "_reduce_508", 1, 339, "_reduce_509", 1, 340, "_reduce_510", 3, 340, "_reduce_511", 2, 342, "_reduce_512", 1, 342, "_reduce_513", 2, 344, "_reduce_514", 1, 338, "_reduce_none", 1, 338, "_reduce_none", 1, 328, "_reduce_none", 3, 328, "_reduce_518", 3, 328, "_reduce_519", 2, 328, "_reduce_520", 2, 328, "_reduce_521", 1, 328, "_reduce_none", 1, 328, "_reduce_none", 1, 328, "_reduce_none", 2, 328, "_reduce_525", 2, 328, "_reduce_526", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_535", 1, 345, "_reduce_none", 1, 323, "_reduce_537", 2, 346, "_reduce_538", 2, 329, "_reduce_539", 3, 329, "_reduce_540", 1, 329, "_reduce_541", 6, 159, "_reduce_542", 0, 159, "_reduce_543", 1, 347, "_reduce_544", 1, 347, "_reduce_none", 1, 347, "_reduce_none", 2, 348, "_reduce_547", 1, 348, "_reduce_none", 2, 161, "_reduce_549", 1, 161, "_reduce_none", 1, 243, "_reduce_none", 1, 243, "_reduce_none", 1, 244, "_reduce_553", 1, 350, "_reduce_554", 2, 350, "_reduce_555", 3, 351, "_reduce_556", 1, 351, "_reduce_557", 1, 351, "_reduce_558", 3, 245, "_reduce_559", 4, 246, "_reduce_560", 3, 247, "_reduce_561", 0, 354, "_reduce_562", 3, 354, "_reduce_563", 1, 355, "_reduce_564", 2, 355, "_reduce_565", 3, 249, "_reduce_566", 0, 357, "_reduce_567", 3, 357, "_reduce_568", 3, 248, "_reduce_569", 3, 250, "_reduce_570", 0, 358, "_reduce_571", 3, 358, "_reduce_572", 0, 359, "_reduce_573", 3, 359, "_reduce_574", 0, 341, "_reduce_575", 2, 341, "_reduce_576", 0, 352, "_reduce_577", 2, 352, "_reduce_578", 0, 353, "_reduce_579", 2, 353, "_reduce_580", 1, 356, "_reduce_581", 2, 356, "_reduce_582", 0, 361, "_reduce_583", 4, 356, "_reduce_584", 1, 360, "_reduce_585", 1, 360, "_reduce_586", 1, 360, "_reduce_587", 1, 360, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 362, "_reduce_591", 3, 363, "_reduce_592", 1, 349, "_reduce_593", 2, 349, "_reduce_594", 1, 226, "_reduce_595", 1, 226, "_reduce_596", 1, 226, "_reduce_597", 1, 226, "_reduce_598", 1, 217, "_reduce_599", 1, 217, "_reduce_600", 1, 217, "_reduce_601", 1, 217, "_reduce_602", 1, 217, "_reduce_603", 1, 218, "_reduce_604", 1, 218, "_reduce_605", 1, 218, "_reduce_606", 1, 218, "_reduce_607", 1, 218, "_reduce_608", 1, 218, "_reduce_609", 1, 218, "_reduce_610", 1, 251, "_reduce_611", 1, 251, "_reduce_612", 1, 176, "_reduce_613", 1, 176, "_reduce_614", 1, 181, "_reduce_615", 1, 181, "_reduce_616", 0, 364, "_reduce_617", 4, 262, "_reduce_618", 0, 262, "_reduce_619", 1, 228, "_reduce_none", 1, 228, "_reduce_621", 3, 365, "_reduce_622", 5, 365, "_reduce_623", 3, 365, "_reduce_624", 1, 265, "_reduce_none", 0, 367, "_reduce_626", 3, 265, "_reduce_627", 4, 366, "_reduce_628", 2, 366, "_reduce_629", 2, 366, "_reduce_630", 1, 366, "_reduce_631", 2, 369, "_reduce_632", 0, 369, "_reduce_633", 6, 300, "_reduce_634", 8, 300, "_reduce_635", 4, 300, "_reduce_636", 6, 300, "_reduce_637", 4, 300, "_reduce_638", 6, 300, "_reduce_639", 2, 300, "_reduce_640", 4, 300, "_reduce_641", 6, 300, "_reduce_642", 2, 300, "_reduce_643", 4, 300, "_reduce_644", 2, 300, "_reduce_645", 4, 300, "_reduce_646", 1, 300, "_reduce_647", 0, 300, "_reduce_648", 1, 238, "_reduce_649", 1, 295, "_reduce_650", 1, 295, "_reduce_651", 1, 295, "_reduce_652", 1, 295, "_reduce_653", 1, 273, "_reduce_none", 1, 273, "_reduce_655", 1, 371, "_reduce_656", 1, 372, "_reduce_657", 3, 372, "_reduce_658", 1, 287, "_reduce_659", 3, 287, "_reduce_660", 1, 373, "_reduce_661", 2, 374, "_reduce_662", 1, 374, "_reduce_663", 2, 375, "_reduce_664", 1, 375, "_reduce_665", 1, 281, "_reduce_666", 3, 281, "_reduce_667", 1, 368, "_reduce_668", 3, 368, "_reduce_669", 1, 343, "_reduce_none", 1, 343, "_reduce_none", 2, 279, "_reduce_672", 2, 278, "_reduce_673", 1, 278, "_reduce_674", 3, 376, "_reduce_675", 3, 377, "_reduce_676", 1, 288, "_reduce_677", 3, 288, "_reduce_678", 1, 370, "_reduce_679", 3, 370, "_reduce_680", 1, 378, "_reduce_none", 1, 378, "_reduce_none", 2, 289, "_reduce_683", 1, 289, "_reduce_684", 1, 379, "_reduce_none", 1, 379, "_reduce_none", 2, 283, "_reduce_687", 2, 282, "_reduce_688", 0, 282, "_reduce_689", 1, 195, "_reduce_none", 3, 195, "_reduce_691", 0, 252, "_reduce_692", 2, 252, "_reduce_none", 1, 236, "_reduce_694", 3, 236, "_reduce_695", 3, 380, "_reduce_696", 2, 380, "_reduce_697", 4, 380, "_reduce_698", 2, 380, "_reduce_699", 1, 207, "_reduce_none", 1, 207, "_reduce_none", 1, 207, "_reduce_none", 1, 201, "_reduce_none", 1, 201, "_reduce_none", 1, 201, "_reduce_none", 1, 201, "_reduce_none", 1, 306, "_reduce_none", 1, 306, "_reduce_none", 1, 306, "_reduce_none", 1, 196, "_reduce_none", 1, 196, "_reduce_none", 1, 180, "_reduce_712", 1, 180, "_reduce_713", 0, 152, "_reduce_none", 1, 152, "_reduce_none", 0, 182, "_reduce_none", 1, 182, "_reduce_none", 2, 212, "_reduce_718", 2, 179, "_reduce_719", 2, 330, "_reduce_720", 0, 235, "_reduce_none", 1, 235, "_reduce_none", 1, 235, "_reduce_none", 1, 263, "_reduce_724", 1, 263, "_reduce_none", 1, 154, "_reduce_none", 2, 154, "_reduce_none", 0, 233, "_reduce_728"]; - racc_reduce_n = 729; - racc_shift_n = 1219; + return (idx = $rb_plus(idx, 1));}, 1);}, 1); + racc_goto_pointer = [nil, 343, 142, 162, nil, 134, 154, 106, 86, 56, -209, 9, -441, -639, -723, nil, -407, 59, 167, -52, -129, 111, 35, 2068, -107, -30, 45, 59, -108, 164, 1262, -210, -357, 26, 23, 121, -26, 3589, 1625, 2121, 484, -424, -59, -57, -7, -419, -14, nil, -9, nil, 180, 66, -345, nil, nil, -193, 53, -186, -458, 1017, -350, nil, 3145, 282, 104, 130, -51, nil, -28, 62, -303, 2499, -2, -363, 116, -4, nil, 42, -220, 291, 20, nil, -5, 166, -153, 1195, 153, 63, 235, -252, 114, -28, -258, -332, -277, -480, nil, 849, 616, 2504, 2203, 2113, 2068, 1856, 1723, 200, 161, -51, nil, 1618, -339, -763, -364, -596, 155, nil, -173, 35, nil, 98, 172, -135, 173, -366, -397, -603, -161, -762, -466, -373, -760, -664, -141, -639, nil, -437, -722, nil, nil, -436, -27, 269, -822, -716, 413, -815, -438, -638, nil, -737, -842, -965, -973, -135, -575, 194, -361, -88, -25, -714, -711, -394, -9, nil, -18, -18, nil, nil, -488, -796, -691, -919, -530, -844, 34, -562, -553, -422, -760, nil, -620, nil, -620, -431, -425, nil, nil, -648, -424, -423, nil, -352, -816, -781, nil, -615, -612, nil, -89, nil, -390, nil, -558, nil, nil, -437, -353, -735, nil, nil, 257, 254, 255, 264, -250, -200, 265, 266, 271, -274, -271, nil, nil, -259, -168, -98, nil, nil, -432, -311, -218, -569, 230, -298, -730, -616, -983, nil, nil, -491]; + racc_goto_default = [nil, nil, nil, nil, 5, nil, 6, 391, 334, nil, nil, 472, nil, 984, nil, 331, 332, nil, nil, nil, 13, 14, 22, 247, nil, nil, 16, nil, 441, 248, 363, nil, nil, 637, 251, nil, 27, 25, 252, 246, 517, nil, nil, nil, nil, nil, nil, 386, 143, 26, nil, nil, nil, 28, 29, 812, nil, nil, nil, 351, nil, 30, 348, 455, 37, nil, nil, 39, 42, 41, nil, 243, 244, 403, nil, 463, 142, 87, nil, 446, 103, 51, 54, 283, nil, 323, nil, 891, 456, nil, 457, 468, 480, 686, 569, 321, 307, 55, 56, 57, 58, 59, 60, 61, 62, 63, nil, 308, 69, 70, nil, nil, nil, nil, nil, 77, nil, 619, 78, 230, nil, nil, nil, nil, nil, nil, nil, 711, 492, nil, 712, 713, 478, 474, 475, nil, 1179, 707, 1071, nil, 479, nil, nil, nil, 481, nil, 483, nil, 971, nil, nil, nil, 490, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 467, nil, nil, 791, 783, nil, nil, nil, nil, nil, nil, 1051, nil, 736, 937, 738, 739, 743, 740, 741, nil, nil, 742, 744, nil, nil, nil, 936, 938, nil, 748, 750, 751, 752, 753, nil, 757, 501, 758, 759, 760, 761, nil, nil, nil, 86, 88, 89, nil, nil, nil, nil, 647, nil, nil, nil, nil, nil, 99, 100, nil, 231, 901, 234, 477, nil, 482, 909, 495, 497, 498, 1082, 502, 1083, 505, 508, 326]; + racc_reduce_table = [0, 0, "racc_error", 0, 150, "_reduce_1", 2, 148, "_reduce_2", 2, 149, "_reduce_3", 0, 151, "_reduce_4", 1, 151, "_reduce_5", 3, 151, "_reduce_6", 2, 151, "_reduce_7", 1, 153, "_reduce_none", 2, 153, "_reduce_9", 3, 156, "_reduce_10", 4, 157, "_reduce_11", 2, 158, "_reduce_12", 0, 162, "_reduce_13", 1, 162, "_reduce_14", 3, 162, "_reduce_15", 2, 162, "_reduce_16", 1, 163, "_reduce_none", 2, 163, "_reduce_18", 0, 174, "_reduce_19", 4, 155, "_reduce_20", 3, 155, "_reduce_21", 3, 155, "_reduce_22", 3, 155, "_reduce_23", 2, 155, "_reduce_24", 3, 155, "_reduce_25", 3, 155, "_reduce_26", 3, 155, "_reduce_27", 3, 155, "_reduce_28", 3, 155, "_reduce_29", 4, 155, "_reduce_30", 1, 155, "_reduce_none", 3, 155, "_reduce_32", 3, 155, "_reduce_33", 5, 155, "_reduce_34", 3, 155, "_reduce_35", 1, 155, "_reduce_none", 3, 167, "_reduce_37", 3, 167, "_reduce_38", 6, 167, "_reduce_39", 5, 167, "_reduce_40", 5, 167, "_reduce_41", 5, 167, "_reduce_42", 5, 167, "_reduce_43", 4, 167, "_reduce_44", 6, 167, "_reduce_45", 4, 167, "_reduce_46", 6, 167, "_reduce_47", 3, 167, "_reduce_48", 1, 175, "_reduce_none", 3, 175, "_reduce_50", 1, 175, "_reduce_none", 1, 173, "_reduce_none", 3, 173, "_reduce_53", 3, 173, "_reduce_54", 3, 173, "_reduce_55", 2, 173, "_reduce_56", 0, 189, "_reduce_57", 4, 173, "_reduce_58", 0, 190, "_reduce_59", 4, 173, "_reduce_60", 1, 173, "_reduce_none", 1, 166, "_reduce_none", 0, 194, "_reduce_63", 3, 191, "_reduce_64", 1, 193, "_reduce_65", 2, 181, "_reduce_66", 0, 199, "_reduce_67", 5, 185, "_reduce_68", 1, 169, "_reduce_none", 1, 169, "_reduce_none", 1, 200, "_reduce_none", 4, 200, "_reduce_72", 0, 207, "_reduce_73", 4, 204, "_reduce_74", 1, 206, "_reduce_none", 2, 183, "_reduce_76", 3, 183, "_reduce_77", 4, 183, "_reduce_78", 5, 183, "_reduce_79", 4, 183, "_reduce_80", 5, 183, "_reduce_81", 2, 183, "_reduce_82", 2, 183, "_reduce_83", 2, 183, "_reduce_84", 2, 183, "_reduce_85", 2, 183, "_reduce_86", 1, 168, "_reduce_87", 3, 168, "_reduce_88", 1, 212, "_reduce_89", 3, 212, "_reduce_90", 1, 211, "_reduce_none", 2, 211, "_reduce_92", 3, 211, "_reduce_93", 5, 211, "_reduce_94", 2, 211, "_reduce_95", 4, 211, "_reduce_96", 2, 211, "_reduce_97", 4, 211, "_reduce_98", 1, 211, "_reduce_99", 3, 211, "_reduce_100", 1, 215, "_reduce_none", 3, 215, "_reduce_102", 2, 214, "_reduce_103", 3, 214, "_reduce_104", 1, 217, "_reduce_105", 3, 217, "_reduce_106", 1, 216, "_reduce_107", 1, 216, "_reduce_108", 4, 216, "_reduce_109", 3, 216, "_reduce_110", 3, 216, "_reduce_111", 3, 216, "_reduce_112", 3, 216, "_reduce_113", 2, 216, "_reduce_114", 1, 216, "_reduce_115", 1, 170, "_reduce_116", 1, 170, "_reduce_117", 4, 170, "_reduce_118", 3, 170, "_reduce_119", 3, 170, "_reduce_120", 3, 170, "_reduce_121", 3, 170, "_reduce_122", 2, 170, "_reduce_123", 1, 170, "_reduce_124", 1, 220, "_reduce_125", 1, 220, "_reduce_none", 2, 221, "_reduce_127", 1, 221, "_reduce_128", 3, 221, "_reduce_129", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 164, "_reduce_135", 1, 164, "_reduce_none", 1, 165, "_reduce_137", 0, 225, "_reduce_138", 4, 165, "_reduce_139", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 3, 184, "_reduce_211", 3, 184, "_reduce_212", 6, 184, "_reduce_213", 5, 184, "_reduce_214", 5, 184, "_reduce_215", 5, 184, "_reduce_216", 5, 184, "_reduce_217", 4, 184, "_reduce_218", 3, 184, "_reduce_219", 3, 184, "_reduce_220", 3, 184, "_reduce_221", 2, 184, "_reduce_222", 2, 184, "_reduce_223", 2, 184, "_reduce_224", 2, 184, "_reduce_225", 3, 184, "_reduce_226", 3, 184, "_reduce_227", 3, 184, "_reduce_228", 3, 184, "_reduce_229", 3, 184, "_reduce_230", 3, 184, "_reduce_231", 4, 184, "_reduce_232", 2, 184, "_reduce_233", 2, 184, "_reduce_234", 3, 184, "_reduce_235", 3, 184, "_reduce_236", 3, 184, "_reduce_237", 3, 184, "_reduce_238", 1, 184, "_reduce_none", 3, 184, "_reduce_240", 3, 184, "_reduce_241", 3, 184, "_reduce_242", 3, 184, "_reduce_243", 3, 184, "_reduce_244", 2, 184, "_reduce_245", 2, 184, "_reduce_246", 3, 184, "_reduce_247", 3, 184, "_reduce_248", 3, 184, "_reduce_249", 3, 184, "_reduce_250", 0, 231, "_reduce_251", 4, 184, "_reduce_252", 6, 184, "_reduce_253", 4, 184, "_reduce_254", 6, 184, "_reduce_255", 4, 184, "_reduce_256", 6, 184, "_reduce_257", 1, 184, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 3, 228, "_reduce_263", 3, 228, "_reduce_264", 1, 232, "_reduce_none", 1, 233, "_reduce_none", 2, 233, "_reduce_none", 4, 233, "_reduce_268", 2, 233, "_reduce_269", 1, 226, "_reduce_none", 3, 226, "_reduce_271", 3, 238, "_reduce_272", 5, 238, "_reduce_273", 3, 238, "_reduce_274", 0, 240, "_reduce_275", 1, 240, "_reduce_none", 0, 178, "_reduce_277", 1, 178, "_reduce_none", 2, 178, "_reduce_none", 4, 178, "_reduce_280", 2, 178, "_reduce_281", 1, 210, "_reduce_282", 2, 210, "_reduce_283", 2, 210, "_reduce_284", 4, 210, "_reduce_285", 1, 210, "_reduce_286", 0, 243, "_reduce_287", 2, 203, "_reduce_288", 2, 242, "_reduce_289", 1, 242, "_reduce_290", 2, 241, "_reduce_291", 0, 241, "_reduce_292", 1, 235, "_reduce_293", 2, 235, "_reduce_294", 3, 235, "_reduce_295", 4, 235, "_reduce_296", 1, 172, "_reduce_297", 1, 172, "_reduce_none", 3, 171, "_reduce_299", 4, 171, "_reduce_300", 2, 171, "_reduce_301", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_312", 0, 267, "_reduce_313", 4, 229, "_reduce_314", 0, 268, "_reduce_315", 4, 229, "_reduce_316", 0, 269, "_reduce_317", 4, 229, "_reduce_318", 3, 229, "_reduce_319", 3, 229, "_reduce_320", 2, 229, "_reduce_321", 3, 229, "_reduce_322", 3, 229, "_reduce_323", 1, 229, "_reduce_324", 4, 229, "_reduce_325", 3, 229, "_reduce_326", 1, 229, "_reduce_327", 0, 270, "_reduce_328", 6, 229, "_reduce_329", 4, 229, "_reduce_330", 3, 229, "_reduce_331", 2, 229, "_reduce_332", 1, 229, "_reduce_none", 2, 229, "_reduce_334", 1, 229, "_reduce_none", 6, 229, "_reduce_336", 6, 229, "_reduce_337", 4, 229, "_reduce_338", 4, 229, "_reduce_339", 5, 229, "_reduce_340", 4, 229, "_reduce_341", 5, 229, "_reduce_342", 6, 229, "_reduce_343", 0, 271, "_reduce_344", 6, 229, "_reduce_345", 0, 272, "_reduce_346", 7, 229, "_reduce_347", 0, 273, "_reduce_348", 5, 229, "_reduce_349", 4, 229, "_reduce_350", 4, 229, "_reduce_351", 1, 229, "_reduce_352", 1, 229, "_reduce_353", 1, 229, "_reduce_354", 1, 229, "_reduce_355", 1, 177, "_reduce_none", 1, 262, "_reduce_357", 1, 265, "_reduce_358", 1, 196, "_reduce_359", 1, 209, "_reduce_360", 1, 257, "_reduce_none", 1, 257, "_reduce_none", 2, 257, "_reduce_363", 1, 192, "_reduce_none", 1, 192, "_reduce_none", 1, 258, "_reduce_none", 5, 258, "_reduce_367", 1, 160, "_reduce_none", 2, 160, "_reduce_369", 1, 261, "_reduce_none", 1, 261, "_reduce_none", 1, 274, "_reduce_372", 3, 274, "_reduce_373", 1, 277, "_reduce_374", 3, 277, "_reduce_375", 1, 276, "_reduce_none", 3, 276, "_reduce_377", 5, 276, "_reduce_378", 1, 276, "_reduce_379", 3, 276, "_reduce_380", 2, 278, "_reduce_381", 1, 278, "_reduce_382", 1, 279, "_reduce_none", 1, 279, "_reduce_none", 0, 284, "_reduce_385", 2, 282, "_reduce_386", 4, 283, "_reduce_387", 2, 283, "_reduce_388", 2, 283, "_reduce_389", 1, 283, "_reduce_390", 2, 288, "_reduce_391", 0, 288, "_reduce_392", 1, 289, "_reduce_none", 6, 290, "_reduce_394", 8, 290, "_reduce_395", 4, 290, "_reduce_396", 6, 290, "_reduce_397", 4, 290, "_reduce_398", 2, 290, "_reduce_none", 6, 290, "_reduce_400", 2, 290, "_reduce_401", 4, 290, "_reduce_402", 6, 290, "_reduce_403", 2, 290, "_reduce_404", 4, 290, "_reduce_405", 2, 290, "_reduce_406", 4, 290, "_reduce_407", 1, 290, "_reduce_none", 0, 294, "_reduce_409", 1, 294, "_reduce_410", 3, 295, "_reduce_411", 4, 295, "_reduce_412", 1, 296, "_reduce_413", 4, 296, "_reduce_414", 1, 297, "_reduce_415", 3, 297, "_reduce_416", 1, 298, "_reduce_417", 1, 298, "_reduce_none", 0, 302, "_reduce_419", 0, 303, "_reduce_420", 5, 256, "_reduce_421", 4, 300, "_reduce_422", 1, 300, "_reduce_423", 0, 306, "_reduce_424", 4, 301, "_reduce_425", 0, 307, "_reduce_426", 4, 301, "_reduce_427", 0, 309, "_reduce_428", 4, 305, "_reduce_429", 2, 201, "_reduce_430", 4, 201, "_reduce_431", 5, 201, "_reduce_432", 5, 201, "_reduce_433", 2, 255, "_reduce_434", 4, 255, "_reduce_435", 4, 255, "_reduce_436", 3, 255, "_reduce_437", 3, 255, "_reduce_438", 3, 255, "_reduce_439", 2, 255, "_reduce_440", 1, 255, "_reduce_441", 4, 255, "_reduce_442", 0, 311, "_reduce_443", 4, 254, "_reduce_444", 0, 312, "_reduce_445", 4, 254, "_reduce_446", 0, 313, "_reduce_447", 3, 205, "_reduce_448", 0, 314, "_reduce_449", 0, 315, "_reduce_450", 4, 308, "_reduce_451", 5, 259, "_reduce_452", 1, 316, "_reduce_453", 1, 316, "_reduce_none", 0, 319, "_reduce_455", 0, 320, "_reduce_456", 7, 260, "_reduce_457", 1, 318, "_reduce_458", 1, 318, "_reduce_none", 1, 317, "_reduce_460", 3, 317, "_reduce_461", 3, 317, "_reduce_462", 1, 188, "_reduce_none", 2, 188, "_reduce_464", 3, 188, "_reduce_465", 1, 188, "_reduce_466", 1, 188, "_reduce_467", 1, 188, "_reduce_468", 1, 321, "_reduce_none", 3, 326, "_reduce_470", 1, 326, "_reduce_none", 3, 328, "_reduce_472", 1, 328, "_reduce_none", 1, 330, "_reduce_474", 1, 331, "_reduce_475", 1, 329, "_reduce_none", 1, 329, "_reduce_none", 4, 329, "_reduce_478", 4, 329, "_reduce_479", 4, 329, "_reduce_480", 3, 329, "_reduce_481", 4, 329, "_reduce_482", 4, 329, "_reduce_483", 4, 329, "_reduce_484", 3, 329, "_reduce_485", 3, 329, "_reduce_486", 3, 329, "_reduce_487", 2, 329, "_reduce_488", 0, 335, "_reduce_489", 4, 329, "_reduce_490", 2, 329, "_reduce_491", 0, 336, "_reduce_492", 4, 329, "_reduce_493", 1, 322, "_reduce_494", 1, 322, "_reduce_495", 2, 322, "_reduce_496", 3, 322, "_reduce_497", 5, 322, "_reduce_498", 2, 322, "_reduce_499", 4, 322, "_reduce_500", 1, 322, "_reduce_none", 2, 337, "_reduce_502", 3, 337, "_reduce_503", 1, 324, "_reduce_504", 3, 324, "_reduce_505", 5, 323, "_reduce_506", 2, 340, "_reduce_507", 1, 340, "_reduce_508", 1, 339, "_reduce_509", 3, 339, "_reduce_510", 1, 338, "_reduce_none", 3, 325, "_reduce_512", 1, 325, "_reduce_513", 2, 325, "_reduce_514", 1, 325, "_reduce_515", 1, 341, "_reduce_516", 3, 341, "_reduce_517", 2, 343, "_reduce_518", 1, 343, "_reduce_519", 1, 344, "_reduce_520", 3, 344, "_reduce_521", 2, 346, "_reduce_522", 1, 346, "_reduce_523", 2, 348, "_reduce_524", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 332, "_reduce_none", 3, 332, "_reduce_528", 3, 332, "_reduce_529", 2, 332, "_reduce_530", 2, 332, "_reduce_531", 1, 332, "_reduce_none", 1, 332, "_reduce_none", 1, 332, "_reduce_none", 2, 332, "_reduce_535", 2, 332, "_reduce_536", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_545", 1, 349, "_reduce_none", 1, 327, "_reduce_547", 2, 350, "_reduce_548", 2, 350, "_reduce_549", 4, 351, "_reduce_550", 2, 333, "_reduce_551", 3, 333, "_reduce_552", 1, 333, "_reduce_553", 6, 159, "_reduce_554", 0, 159, "_reduce_555", 1, 353, "_reduce_556", 1, 353, "_reduce_none", 1, 353, "_reduce_none", 2, 354, "_reduce_559", 1, 354, "_reduce_none", 2, 161, "_reduce_561", 1, 161, "_reduce_none", 1, 244, "_reduce_none", 1, 244, "_reduce_none", 1, 245, "_reduce_565", 1, 356, "_reduce_566", 2, 356, "_reduce_567", 3, 357, "_reduce_568", 1, 357, "_reduce_569", 1, 357, "_reduce_570", 3, 246, "_reduce_571", 4, 247, "_reduce_572", 3, 248, "_reduce_573", 0, 360, "_reduce_574", 3, 360, "_reduce_575", 1, 361, "_reduce_576", 2, 361, "_reduce_577", 3, 250, "_reduce_578", 0, 363, "_reduce_579", 3, 363, "_reduce_580", 3, 249, "_reduce_581", 3, 251, "_reduce_582", 0, 364, "_reduce_583", 3, 364, "_reduce_584", 0, 365, "_reduce_585", 3, 365, "_reduce_586", 0, 345, "_reduce_587", 2, 345, "_reduce_588", 0, 358, "_reduce_589", 2, 358, "_reduce_590", 0, 359, "_reduce_591", 2, 359, "_reduce_592", 1, 362, "_reduce_593", 2, 362, "_reduce_594", 0, 367, "_reduce_595", 4, 362, "_reduce_596", 1, 366, "_reduce_597", 1, 366, "_reduce_598", 1, 366, "_reduce_599", 1, 366, "_reduce_none", 1, 224, "_reduce_none", 1, 224, "_reduce_none", 1, 368, "_reduce_603", 3, 369, "_reduce_604", 1, 355, "_reduce_605", 2, 355, "_reduce_606", 1, 227, "_reduce_607", 1, 227, "_reduce_608", 1, 227, "_reduce_609", 1, 227, "_reduce_610", 1, 352, "_reduce_611", 1, 352, "_reduce_612", 1, 352, "_reduce_613", 1, 218, "_reduce_614", 1, 218, "_reduce_615", 1, 218, "_reduce_616", 1, 218, "_reduce_617", 1, 218, "_reduce_618", 1, 219, "_reduce_619", 1, 219, "_reduce_620", 1, 219, "_reduce_621", 1, 219, "_reduce_622", 1, 219, "_reduce_623", 1, 219, "_reduce_624", 1, 219, "_reduce_625", 1, 252, "_reduce_626", 1, 252, "_reduce_627", 1, 176, "_reduce_628", 1, 176, "_reduce_629", 1, 186, "_reduce_630", 1, 186, "_reduce_631", 0, 370, "_reduce_632", 4, 263, "_reduce_633", 0, 263, "_reduce_634", 1, 182, "_reduce_none", 1, 182, "_reduce_636", 3, 371, "_reduce_637", 1, 266, "_reduce_none", 0, 373, "_reduce_639", 3, 266, "_reduce_640", 4, 372, "_reduce_641", 2, 372, "_reduce_642", 2, 372, "_reduce_643", 1, 372, "_reduce_644", 1, 372, "_reduce_645", 2, 375, "_reduce_646", 0, 375, "_reduce_647", 6, 304, "_reduce_648", 8, 304, "_reduce_649", 4, 304, "_reduce_650", 6, 304, "_reduce_651", 4, 304, "_reduce_652", 6, 304, "_reduce_653", 2, 304, "_reduce_654", 4, 304, "_reduce_655", 6, 304, "_reduce_656", 2, 304, "_reduce_657", 4, 304, "_reduce_658", 2, 304, "_reduce_659", 4, 304, "_reduce_660", 1, 304, "_reduce_661", 0, 304, "_reduce_662", 1, 239, "_reduce_663", 1, 299, "_reduce_664", 1, 299, "_reduce_665", 1, 299, "_reduce_666", 1, 299, "_reduce_667", 1, 275, "_reduce_none", 1, 275, "_reduce_669", 1, 377, "_reduce_670", 1, 378, "_reduce_671", 3, 378, "_reduce_672", 1, 291, "_reduce_673", 3, 291, "_reduce_674", 1, 379, "_reduce_675", 2, 380, "_reduce_676", 1, 380, "_reduce_677", 2, 381, "_reduce_678", 1, 381, "_reduce_679", 1, 285, "_reduce_680", 3, 285, "_reduce_681", 1, 374, "_reduce_682", 3, 374, "_reduce_683", 1, 347, "_reduce_none", 1, 347, "_reduce_none", 2, 281, "_reduce_686", 2, 280, "_reduce_687", 1, 280, "_reduce_688", 3, 382, "_reduce_689", 3, 383, "_reduce_690", 1, 292, "_reduce_691", 3, 292, "_reduce_692", 1, 376, "_reduce_693", 3, 376, "_reduce_694", 1, 384, "_reduce_none", 1, 384, "_reduce_none", 2, 293, "_reduce_697", 1, 293, "_reduce_698", 1, 385, "_reduce_none", 1, 385, "_reduce_none", 2, 287, "_reduce_701", 1, 287, "_reduce_702", 2, 286, "_reduce_703", 0, 286, "_reduce_704", 1, 197, "_reduce_none", 3, 197, "_reduce_706", 0, 253, "_reduce_707", 2, 253, "_reduce_none", 1, 237, "_reduce_709", 3, 237, "_reduce_710", 3, 386, "_reduce_711", 2, 386, "_reduce_712", 1, 386, "_reduce_713", 4, 386, "_reduce_714", 2, 386, "_reduce_715", 1, 208, "_reduce_none", 1, 208, "_reduce_none", 1, 208, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 310, "_reduce_none", 1, 310, "_reduce_none", 1, 310, "_reduce_none", 1, 198, "_reduce_none", 1, 198, "_reduce_none", 1, 180, "_reduce_728", 1, 180, "_reduce_729", 0, 152, "_reduce_none", 1, 152, "_reduce_none", 0, 187, "_reduce_none", 1, 187, "_reduce_none", 2, 213, "_reduce_734", 2, 179, "_reduce_735", 2, 334, "_reduce_736", 0, 236, "_reduce_none", 1, 236, "_reduce_none", 1, 236, "_reduce_none", 1, 264, "_reduce_740", 1, 264, "_reduce_none", 1, 154, "_reduce_none", 2, 154, "_reduce_none", 0, 234, "_reduce_744"]; + racc_reduce_n = 745; + racc_shift_n = 1238; racc_token_table = $hash(false, 0, "error", 1, "kCLASS", 2, "kMODULE", 3, "kDEF", 4, "kUNDEF", 5, "kBEGIN", 6, "kRESCUE", 7, "kENSURE", 8, "kEND", 9, "kIF", 10, "kUNLESS", 11, "kTHEN", 12, "kELSIF", 13, "kELSE", 14, "kCASE", 15, "kWHEN", 16, "kWHILE", 17, "kUNTIL", 18, "kFOR", 19, "kBREAK", 20, "kNEXT", 21, "kREDO", 22, "kRETRY", 23, "kIN", 24, "kDO", 25, "kDO_COND", 26, "kDO_BLOCK", 27, "kDO_LAMBDA", 28, "kRETURN", 29, "kYIELD", 30, "kSUPER", 31, "kSELF", 32, "kNIL", 33, "kTRUE", 34, "kFALSE", 35, "kAND", 36, "kOR", 37, "kNOT", 38, "kIF_MOD", 39, "kUNLESS_MOD", 40, "kWHILE_MOD", 41, "kUNTIL_MOD", 42, "kRESCUE_MOD", 43, "kALIAS", 44, "kDEFINED", 45, "klBEGIN", 46, "klEND", 47, "k__LINE__", 48, "k__FILE__", 49, "k__ENCODING__", 50, "tIDENTIFIER", 51, "tFID", 52, "tGVAR", 53, "tIVAR", 54, "tCONSTANT", 55, "tLABEL", 56, "tCVAR", 57, "tNTH_REF", 58, "tBACK_REF", 59, "tSTRING_CONTENT", 60, "tINTEGER", 61, "tFLOAT", 62, "tUPLUS", 63, "tUMINUS", 64, "tUNARY_NUM", 65, "tPOW", 66, "tCMP", 67, "tEQ", 68, "tEQQ", 69, "tNEQ", 70, "tGEQ", 71, "tLEQ", 72, "tANDOP", 73, "tOROP", 74, "tMATCH", 75, "tNMATCH", 76, "tDOT", 77, "tDOT2", 78, "tDOT3", 79, "tAREF", 80, "tASET", 81, "tLSHFT", 82, "tRSHFT", 83, "tCOLON2", 84, "tCOLON3", 85, "tOP_ASGN", 86, "tASSOC", 87, "tLPAREN", 88, "tLPAREN2", 89, "tRPAREN", 90, "tLPAREN_ARG", 91, "tLBRACK", 92, "tLBRACK2", 93, "tRBRACK", 94, "tLBRACE", 95, "tLBRACE_ARG", 96, "tSTAR", 97, "tSTAR2", 98, "tAMPER", 99, "tAMPER2", 100, "tTILDE", 101, "tPERCENT", 102, "tDIVIDE", 103, "tDSTAR", 104, "tPLUS", 105, "tMINUS", 106, "tLT", 107, "tGT", 108, "tPIPE", 109, "tBANG", 110, "tCARET", 111, "tLCURLY", 112, "tRCURLY", 113, "tBACK_REF2", 114, "tSYMBEG", 115, "tSTRING_BEG", 116, "tXSTRING_BEG", 117, "tREGEXP_BEG", 118, "tREGEXP_OPT", 119, "tWORDS_BEG", 120, "tQWORDS_BEG", 121, "tSYMBOLS_BEG", 122, "tQSYMBOLS_BEG", 123, "tSTRING_DBEG", 124, "tSTRING_DVAR", 125, "tSTRING_END", 126, "tSTRING_DEND", 127, "tSTRING", 128, "tSYMBOL", 129, "tNL", 130, "tEH", 131, "tCOLON", 132, "tCOMMA", 133, "tSPACE", 134, "tSEMI", 135, "tLAMBDA", 136, "tLAMBEG", 137, "tCHARACTER", 138, "tRATIONAL", 139, "tIMAGINARY", 140, "tLABEL_END", 141, "tANDDOT", 142, "tBDOT2", 143, "tBDOT3", 144, "tEQL", 145, "tLOWEST", 146); racc_nt_base = 147; racc_use_result_var = true; - Opal.const_set($nesting[0], 'Racc_arg', [racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var]); - Opal.const_set($nesting[0], 'Racc_token_to_s_table', ["$end", "error", "kCLASS", "kMODULE", "kDEF", "kUNDEF", "kBEGIN", "kRESCUE", "kENSURE", "kEND", "kIF", "kUNLESS", "kTHEN", "kELSIF", "kELSE", "kCASE", "kWHEN", "kWHILE", "kUNTIL", "kFOR", "kBREAK", "kNEXT", "kREDO", "kRETRY", "kIN", "kDO", "kDO_COND", "kDO_BLOCK", "kDO_LAMBDA", "kRETURN", "kYIELD", "kSUPER", "kSELF", "kNIL", "kTRUE", "kFALSE", "kAND", "kOR", "kNOT", "kIF_MOD", "kUNLESS_MOD", "kWHILE_MOD", "kUNTIL_MOD", "kRESCUE_MOD", "kALIAS", "kDEFINED", "klBEGIN", "klEND", "k__LINE__", "k__FILE__", "k__ENCODING__", "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tLABEL", "tCVAR", "tNTH_REF", "tBACK_REF", "tSTRING_CONTENT", "tINTEGER", "tFLOAT", "tUPLUS", "tUMINUS", "tUNARY_NUM", "tPOW", "tCMP", "tEQ", "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", "tDOT", "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN2", "tRPAREN", "tLPAREN_ARG", "tLBRACK", "tLBRACK2", "tRBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tSTAR2", "tAMPER", "tAMPER2", "tTILDE", "tPERCENT", "tDIVIDE", "tDSTAR", "tPLUS", "tMINUS", "tLT", "tGT", "tPIPE", "tBANG", "tCARET", "tLCURLY", "tRCURLY", "tBACK_REF2", "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tREGEXP_OPT", "tWORDS_BEG", "tQWORDS_BEG", "tSYMBOLS_BEG", "tQSYMBOLS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tSTRING_DEND", "tSTRING", "tSYMBOL", "tNL", "tEH", "tCOLON", "tCOMMA", "tSPACE", "tSEMI", "tLAMBDA", "tLAMBEG", "tCHARACTER", "tRATIONAL", "tIMAGINARY", "tLABEL_END", "tANDDOT", "tBDOT2", "tBDOT3", "tEQL", "tLOWEST", "$start", "program", "top_compstmt", "@1", "top_stmts", "opt_terms", "top_stmt", "terms", "stmt", "begin_block", "bodystmt", "compstmt", "opt_rescue", "opt_else", "opt_ensure", "stmts", "stmt_or_begin", "fitem", "undef_list", "expr_value", "command_asgn", "mlhs", "command_call", "lhs", "mrhs", "mrhs_arg", "expr", "@2", "command_rhs", "var_lhs", "primary_value", "opt_call_args", "rbracket", "call_op", "backref", "opt_nl", "arg", "p_expr", "@3", "@4", "expr_value_do", "do", "def_name", "@5", "fname", "defn_head", "k_def", "defs_head", "singleton", "dot_or_colon", "@6", "command", "block_command", "block_call", "operation2", "command_args", "cmd_brace_block", "brace_body", "fcall", "@7", "operation", "k_return", "call_args", "mlhs_basic", "mlhs_inner", "rparen", "mlhs_head", "mlhs_item", "mlhs_node", "mlhs_post", "user_variable", "keyword_variable", "cname", "cpath", "op", "reswords", "symbol", "@8", "arg_rhs", "simple_numeric", "rel_expr", "f_opt_paren_args", "primary", "relop", "arg_value", "aref_args", "none", "args", "trailer", "assocs", "paren_args", "args_forward", "opt_paren_args", "opt_block_arg", "block_arg", "@9", "literal", "strings", "xstring", "regexp", "words", "qwords", "symbols", "qsymbols", "var_ref", "assoc_list", "brace_block", "method_call", "lambda", "then", "if_tail", "case_body", "p_case_body", "for_var", "k_class", "superclass", "term", "k_module", "f_arglist", "@10", "@11", "@12", "@13", "@14", "@15", "f_marg", "f_norm_arg", "f_margs", "f_marg_list", "f_rest_marg", "f_any_kwrest", "f_kwrest", "f_no_kwarg", "block_args_tail", "f_block_kwarg", "opt_f_block_arg", "f_block_arg", "opt_block_args_tail", "excessed_comma", "block_param", "f_arg", "f_block_optarg", "f_rest_arg", "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", "f_bad_arg", "f_larglist", "lambda_body", "@16", "@17", "f_args", "do_block", "@18", "@19", "do_body", "@20", "operation3", "@21", "@22", "@23", "@24", "@25", "cases", "p_top_expr", "p_cases", "@26", "@27", "p_top_expr_body", "p_args", "p_find", "p_args_tail", "p_kwargs", "p_as", "p_variable", "p_alt", "p_expr_basic", "p_lparen", "p_lbracket", "p_value", "p_const", "rbrace", "@28", "@29", "p_args_head", "p_arg", "p_args_post", "p_rest", "p_kwarg", "p_any_kwrest", "p_kw", "p_kw_label", "string_contents", "p_kwrest", "kwrest_mark", "p_kwnorest", "p_primitive", "p_var_ref", "exc_list", "exc_var", "numeric", "string", "string1", "xstring_contents", "regexp_contents", "word_list", "word", "string_content", "symbol_list", "qword_list", "qsym_list", "string_dvar", "@30", "ssym", "dsym", "@31", "f_paren_args", "args_tail", "@32", "f_kwarg", "opt_args_tail", "f_optarg", "f_arg_asgn", "f_arg_item", "f_label", "f_kw", "f_block_kw", "f_opt", "f_block_opt", "restarg_mark", "blkarg_mark", "assoc"]); - Opal.const_set($nesting[0], 'Racc_debug_parser', false); + $const_set($nesting[0], 'Racc_arg', [racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var]); + $const_set($nesting[0], 'Racc_token_to_s_table', ["$end", "error", "kCLASS", "kMODULE", "kDEF", "kUNDEF", "kBEGIN", "kRESCUE", "kENSURE", "kEND", "kIF", "kUNLESS", "kTHEN", "kELSIF", "kELSE", "kCASE", "kWHEN", "kWHILE", "kUNTIL", "kFOR", "kBREAK", "kNEXT", "kREDO", "kRETRY", "kIN", "kDO", "kDO_COND", "kDO_BLOCK", "kDO_LAMBDA", "kRETURN", "kYIELD", "kSUPER", "kSELF", "kNIL", "kTRUE", "kFALSE", "kAND", "kOR", "kNOT", "kIF_MOD", "kUNLESS_MOD", "kWHILE_MOD", "kUNTIL_MOD", "kRESCUE_MOD", "kALIAS", "kDEFINED", "klBEGIN", "klEND", "k__LINE__", "k__FILE__", "k__ENCODING__", "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tLABEL", "tCVAR", "tNTH_REF", "tBACK_REF", "tSTRING_CONTENT", "tINTEGER", "tFLOAT", "tUPLUS", "tUMINUS", "tUNARY_NUM", "tPOW", "tCMP", "tEQ", "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", "tDOT", "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN2", "tRPAREN", "tLPAREN_ARG", "tLBRACK", "tLBRACK2", "tRBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tSTAR2", "tAMPER", "tAMPER2", "tTILDE", "tPERCENT", "tDIVIDE", "tDSTAR", "tPLUS", "tMINUS", "tLT", "tGT", "tPIPE", "tBANG", "tCARET", "tLCURLY", "tRCURLY", "tBACK_REF2", "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tREGEXP_OPT", "tWORDS_BEG", "tQWORDS_BEG", "tSYMBOLS_BEG", "tQSYMBOLS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tSTRING_DEND", "tSTRING", "tSYMBOL", "tNL", "tEH", "tCOLON", "tCOMMA", "tSPACE", "tSEMI", "tLAMBDA", "tLAMBEG", "tCHARACTER", "tRATIONAL", "tIMAGINARY", "tLABEL_END", "tANDDOT", "tBDOT2", "tBDOT3", "tEQL", "tLOWEST", "$start", "program", "top_compstmt", "@1", "top_stmts", "opt_terms", "top_stmt", "terms", "stmt", "begin_block", "bodystmt", "compstmt", "opt_rescue", "opt_else", "opt_ensure", "stmts", "stmt_or_begin", "fitem", "undef_list", "expr_value", "command_asgn", "mlhs", "command_call", "lhs", "mrhs", "mrhs_arg", "expr", "@2", "command_rhs", "var_lhs", "primary_value", "opt_call_args", "rbracket", "call_op", "defn_head", "f_opt_paren_args", "command", "arg", "defs_head", "backref", "opt_nl", "p_top_expr_body", "@3", "@4", "expr_value_do", "do", "def_name", "@5", "fname", "k_def", "singleton", "dot_or_colon", "@6", "block_command", "block_call", "operation2", "command_args", "cmd_brace_block", "brace_body", "fcall", "@7", "operation", "k_return", "call_args", "mlhs_basic", "mlhs_inner", "rparen", "mlhs_head", "mlhs_item", "mlhs_node", "mlhs_post", "user_variable", "keyword_variable", "cname", "cpath", "op", "reswords", "symbol", "@8", "arg_rhs", "simple_numeric", "rel_expr", "primary", "relop", "@9", "arg_value", "aref_args", "none", "args", "trailer", "assocs", "paren_args", "args_forward", "opt_paren_args", "opt_block_arg", "block_arg", "@10", "literal", "strings", "xstring", "regexp", "words", "qwords", "symbols", "qsymbols", "var_ref", "assoc_list", "brace_block", "method_call", "lambda", "then", "if_tail", "case_body", "p_case_body", "for_var", "k_class", "superclass", "term", "k_module", "f_arglist", "@11", "@12", "@13", "@14", "@15", "@16", "@17", "f_marg", "f_norm_arg", "f_margs", "f_marg_list", "f_rest_marg", "f_any_kwrest", "f_kwrest", "f_no_kwarg", "f_eq", "block_args_tail", "@18", "f_block_kwarg", "opt_f_block_arg", "f_block_arg", "opt_block_args_tail", "excessed_comma", "block_param", "f_arg", "f_block_optarg", "f_rest_arg", "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", "f_bad_arg", "f_larglist", "lambda_body", "@19", "@20", "f_args", "do_block", "@21", "@22", "do_body", "@23", "operation3", "@24", "@25", "@26", "@27", "@28", "cases", "p_top_expr", "p_cases", "@29", "@30", "p_expr", "p_args", "p_find", "p_args_tail", "p_kwargs", "p_as", "p_variable", "p_alt", "p_expr_basic", "p_lparen", "p_lbracket", "p_value", "p_const", "rbrace", "@31", "@32", "p_args_head", "p_arg", "p_args_post", "p_rest", "p_kwarg", "p_any_kwrest", "p_kw", "p_kw_label", "string_contents", "p_kwrest", "kwrest_mark", "p_kwnorest", "p_primitive", "p_var_ref", "p_expr_ref", "nonlocal_var", "exc_list", "exc_var", "numeric", "string", "string1", "xstring_contents", "regexp_contents", "word_list", "word", "string_content", "symbol_list", "qword_list", "qsym_list", "string_dvar", "@33", "ssym", "dsym", "@34", "f_paren_args", "args_tail", "@35", "f_kwarg", "opt_args_tail", "f_optarg", "f_arg_asgn", "f_arg_item", "f_label", "f_kw", "f_block_kw", "f_opt", "f_block_opt", "restarg_mark", "blkarg_mark", "assoc"]); + $const_set($nesting[0], 'Racc_debug_parser', false); - Opal.def(self, '$_reduce_1', $Ruby30__reduce_1$16 = function $$_reduce_1(val, _values, result) { + $def(self, '$_reduce_1', function $$_reduce_1(val, _values, result) { var self = this; self.current_arg_stack.$push(nil); self.max_numparam_stack.$push($hash2(["static"], {"static": true})); return result; - }, $Ruby30__reduce_1$16.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_2', $Ruby30__reduce_2$17 = function $$_reduce_2(val, _values, result) { + $def(self, '$_reduce_2', function $$_reduce_2(val, _values, result) { var self = this; @@ -24197,246 +20964,234 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.current_arg_stack.$pop(); self.max_numparam_stack.$pop(); return result; - }, $Ruby30__reduce_2$17.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_3', $Ruby30__reduce_3$18 = function $$_reduce_3(val, _values, result) { + $def(self, '$_reduce_3', function $$_reduce_3(val, _values, result) { var self = this; result = self.builder.$compstmt(val['$[]'](0)); return result; - }, $Ruby30__reduce_3$18.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_4', $Ruby30__reduce_4$19 = function $$_reduce_4(val, _values, result) { - var self = this; - + $def(self, '$_reduce_4', function $$_reduce_4(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_4$19.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_5', $Ruby30__reduce_5$20 = function $$_reduce_5(val, _values, result) { - var self = this; - + $def(self, '$_reduce_5', function $$_reduce_5(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_5$20.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_6', $Ruby30__reduce_6$21 = function $$_reduce_6(val, _values, result) { - var self = this; - + $def(self, '$_reduce_6', function $$_reduce_6(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_6$21.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_7', $Ruby30__reduce_7$22 = function $$_reduce_7(val, _values, result) { - var self = this; - + $def(self, '$_reduce_7', function $$_reduce_7(val, _values, result) { + result = [val['$[]'](1)]; return result; - }, $Ruby30__reduce_7$22.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_9', $Ruby30__reduce_9$23 = function $$_reduce_9(val, _values, result) { + $def(self, '$_reduce_9', function $$_reduce_9(val, _values, result) { var self = this; - result = $send(self.builder, 'preexe', [val['$[]'](0)].concat(Opal.to_a(val['$[]'](1)))); + result = $send(self.builder, 'preexe', [val['$[]'](0)].concat($to_a(val['$[]'](1)))); return result; - }, $Ruby30__reduce_9$23.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_10', $Ruby30__reduce_10$24 = function $$_reduce_10(val, _values, result) { - var self = this; - + $def(self, '$_reduce_10', function $$_reduce_10(val, _values, result) { + result = val; return result; - }, $Ruby30__reduce_10$24.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_11', $Ruby30__reduce_11$25 = function $$_reduce_11(val, _values, result) { - var $a, $b, self = this, rescue_bodies = nil, else_t = nil, else_ = nil, ensure_t = nil, ensure_ = nil, $ret_or_4 = nil; + $def(self, '$_reduce_11', function $$_reduce_11(val, _values, result) { + var $a, $b, self = this, rescue_bodies = nil, else_t = nil, else_ = nil, ensure_t = nil, ensure_ = nil; rescue_bodies = val['$[]'](1); - $b = val['$[]'](2), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; - $b = val['$[]'](3), $a = Opal.to_ary($b), (ensure_t = ($a[0] == null ? nil : $a[0])), (ensure_ = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy((function() {if ($truthy(($ret_or_4 = rescue_bodies['$empty?']()))) { - return else_t['$nil?']()['$!']() - } else { - return $ret_or_4 - }; return nil; })())) { - self.$diagnostic("error", "useless_else", nil, else_t)}; + $b = val['$[]'](2), $a = $to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (ensure_t = ($a[0] == null ? nil : $a[0])), (ensure_ = ($a[1] == null ? nil : $a[1])), $b; + if (($truthy(rescue_bodies['$empty?']()) && ($not(else_t['$nil?']())))) { + self.$diagnostic("error", "useless_else", nil, else_t) + }; result = self.builder.$begin_body(val['$[]'](0), rescue_bodies, else_t, else_, ensure_t, ensure_); return result; - }, $Ruby30__reduce_11$25.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_12', $Ruby30__reduce_12$26 = function $$_reduce_12(val, _values, result) { + $def(self, '$_reduce_12', function $$_reduce_12(val, _values, result) { var self = this; result = self.builder.$compstmt(val['$[]'](0)); return result; - }, $Ruby30__reduce_12$26.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_13', $Ruby30__reduce_13$27 = function $$_reduce_13(val, _values, result) { - var self = this; - + $def(self, '$_reduce_13', function $$_reduce_13(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_13$27.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_14', $Ruby30__reduce_14$28 = function $$_reduce_14(val, _values, result) { - var self = this; - + $def(self, '$_reduce_14', function $$_reduce_14(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_14$28.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_15', $Ruby30__reduce_15$29 = function $$_reduce_15(val, _values, result) { - var self = this; - + $def(self, '$_reduce_15', function $$_reduce_15(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_15$29.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_16', $Ruby30__reduce_16$30 = function $$_reduce_16(val, _values, result) { - var self = this; - + $def(self, '$_reduce_16', function $$_reduce_16(val, _values, result) { + result = [val['$[]'](1)]; return result; - }, $Ruby30__reduce_16$30.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_18', $Ruby30__reduce_18$31 = function $$_reduce_18(val, _values, result) { + $def(self, '$_reduce_18', function $$_reduce_18(val, _values, result) { var self = this; self.$diagnostic("error", "begin_in_method", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_18$31.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_19', $Ruby30__reduce_19$32 = function $$_reduce_19(val, _values, result) { + $def(self, '$_reduce_19', function $$_reduce_19(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_19$32.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_20', $Ruby30__reduce_20$33 = function $$_reduce_20(val, _values, result) { + $def(self, '$_reduce_20', function $$_reduce_20(val, _values, result) { var self = this; result = self.builder.$alias(val['$[]'](0), val['$[]'](1), val['$[]'](3)); return result; - }, $Ruby30__reduce_20$33.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_21', $Ruby30__reduce_21$34 = function $$_reduce_21(val, _values, result) { + $def(self, '$_reduce_21', function $$_reduce_21(val, _values, result) { var self = this; result = self.builder.$alias(val['$[]'](0), self.builder.$gvar(val['$[]'](1)), self.builder.$gvar(val['$[]'](2))); return result; - }, $Ruby30__reduce_21$34.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_22', $Ruby30__reduce_22$35 = function $$_reduce_22(val, _values, result) { + $def(self, '$_reduce_22', function $$_reduce_22(val, _values, result) { var self = this; result = self.builder.$alias(val['$[]'](0), self.builder.$gvar(val['$[]'](1)), self.builder.$back_ref(val['$[]'](2))); return result; - }, $Ruby30__reduce_22$35.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_23', $Ruby30__reduce_23$36 = function $$_reduce_23(val, _values, result) { + $def(self, '$_reduce_23', function $$_reduce_23(val, _values, result) { var self = this; self.$diagnostic("error", "nth_ref_alias", nil, val['$[]'](2)); return result; - }, $Ruby30__reduce_23$36.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_24', $Ruby30__reduce_24$37 = function $$_reduce_24(val, _values, result) { + $def(self, '$_reduce_24', function $$_reduce_24(val, _values, result) { var self = this; result = self.builder.$undef_method(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_24$37.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_25', $Ruby30__reduce_25$38 = function $$_reduce_25(val, _values, result) { + $def(self, '$_reduce_25', function $$_reduce_25(val, _values, result) { var self = this; result = self.builder.$condition_mod(val['$[]'](0), nil, val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_25$38.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_26', $Ruby30__reduce_26$39 = function $$_reduce_26(val, _values, result) { + $def(self, '$_reduce_26', function $$_reduce_26(val, _values, result) { var self = this; result = self.builder.$condition_mod(nil, val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_26$39.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_27', $Ruby30__reduce_27$40 = function $$_reduce_27(val, _values, result) { + $def(self, '$_reduce_27', function $$_reduce_27(val, _values, result) { var self = this; result = self.builder.$loop_mod("while", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_27$40.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_28', $Ruby30__reduce_28$41 = function $$_reduce_28(val, _values, result) { + $def(self, '$_reduce_28', function $$_reduce_28(val, _values, result) { var self = this; result = self.builder.$loop_mod("until", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_28$41.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_29', $Ruby30__reduce_29$42 = function $$_reduce_29(val, _values, result) { + $def(self, '$_reduce_29', function $$_reduce_29(val, _values, result) { var self = this, rescue_body = nil; rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); return result; - }, $Ruby30__reduce_29$42.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_30', $Ruby30__reduce_30$43 = function $$_reduce_30(val, _values, result) { + $def(self, '$_reduce_30', function $$_reduce_30(val, _values, result) { var self = this; result = self.builder.$postexe(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_30$43.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_32', $Ruby30__reduce_32$44 = function $$_reduce_32(val, _values, result) { + $def(self, '$_reduce_32', function $$_reduce_32(val, _values, result) { var self = this; result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_32$44.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_33', $Ruby30__reduce_33$45 = function $$_reduce_33(val, _values, result) { + $def(self, '$_reduce_33', function $$_reduce_33(val, _values, result) { var self = this; result = self.builder.$assign(val['$[]'](0), val['$[]'](1), self.builder.$array(nil, val['$[]'](2), nil)); return result; - }, $Ruby30__reduce_33$45.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_34', $Ruby30__reduce_34$46 = function $$_reduce_34(val, _values, result) { + $def(self, '$_reduce_34', function $$_reduce_34(val, _values, result) { var self = this, rescue_body = nil, begin_body = nil; @@ -24444,208 +21199,276 @@ Opal.modules["parser/ruby30"] = function(Opal) { begin_body = self.builder.$begin_body(val['$[]'](2), [rescue_body]); result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), begin_body); return result; - }, $Ruby30__reduce_34$46.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_35', $Ruby30__reduce_35$47 = function $$_reduce_35(val, _values, result) { + $def(self, '$_reduce_35', function $$_reduce_35(val, _values, result) { var self = this; result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_35$47.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_37', $Ruby30__reduce_37$48 = function $$_reduce_37(val, _values, result) { + $def(self, '$_reduce_37', function $$_reduce_37(val, _values, result) { var self = this; result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_37$48.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_38', $Ruby30__reduce_38$49 = function $$_reduce_38(val, _values, result) { + $def(self, '$_reduce_38', function $$_reduce_38(val, _values, result) { var self = this; result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_38$49.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_39', $Ruby30__reduce_39$50 = function $$_reduce_39(val, _values, result) { + $def(self, '$_reduce_39', function $$_reduce_39(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)), val['$[]'](4), val['$[]'](5)); return result; - }, $Ruby30__reduce_39$50.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_40', $Ruby30__reduce_40$51 = function $$_reduce_40(val, _values, result) { + $def(self, '$_reduce_40', function $$_reduce_40(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_40$51.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_41', $Ruby30__reduce_41$52 = function $$_reduce_41(val, _values, result) { + $def(self, '$_reduce_41', function $$_reduce_41(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_41$52.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_42', $Ruby30__reduce_42$53 = function $$_reduce_42(val, _values, result) { + $def(self, '$_reduce_42', function $$_reduce_42(val, _values, result) { var self = this, const$ = nil; const$ = self.builder.$const_op_assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); result = self.builder.$op_assign(const$, val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_42$53.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_43', $Ruby30__reduce_43$54 = function $$_reduce_43(val, _values, result) { + $def(self, '$_reduce_43', function $$_reduce_43(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_43$54.$$arity = 3); + }, 3); + + $def(self, '$_reduce_44', function $$_reduce_44(val, _values, result) { + var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, $writer = nil; + + + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + self.$endless_method_name(name_t); + result = self.builder.$def_endless_method(def_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); + self.$local_pop(); + self.current_arg_stack.$pop(); + + $writer = [ctx.$in_def()]; + $send(self.context, 'in_def=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_45', function $$_reduce_45(val, _values, result) { + var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, rescue_body = nil, method_body = nil, $writer = nil; + + + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + self.$endless_method_name(name_t); + rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); + method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); + result = self.builder.$def_endless_method(def_t, name_t, val['$[]'](1), val['$[]'](2), method_body); + self.$local_pop(); + self.current_arg_stack.$pop(); + + $writer = [ctx.$in_def()]; + $send(self.context, 'in_def=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_46', function $$_reduce_46(val, _values, result) { + var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, $writer = nil; + + + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + self.$endless_method_name(name_t); + result = self.builder.$def_endless_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); + self.$local_pop(); + self.current_arg_stack.$pop(); + + $writer = [ctx.$in_def()]; + $send(self.context, 'in_def=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_47', function $$_reduce_47(val, _values, result) { + var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, rescue_body = nil, method_body = nil, $writer = nil; + + + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + self.$endless_method_name(name_t); + rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); + method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); + result = self.builder.$def_endless_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), method_body); + self.$local_pop(); + self.current_arg_stack.$pop(); + + $writer = [ctx.$in_def()]; + $send(self.context, 'in_def=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); - Opal.def(self, '$_reduce_44', $Ruby30__reduce_44$55 = function $$_reduce_44(val, _values, result) { + $def(self, '$_reduce_48', function $$_reduce_48(val, _values, result) { var self = this; self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_44$55.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_46', $Ruby30__reduce_46$56 = function $$_reduce_46(val, _values, result) { + $def(self, '$_reduce_50', function $$_reduce_50(val, _values, result) { var self = this, rescue_body = nil; rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); return result; - }, $Ruby30__reduce_46$56.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_49', $Ruby30__reduce_49$57 = function $$_reduce_49(val, _values, result) { + $def(self, '$_reduce_53', function $$_reduce_53(val, _values, result) { var self = this; result = self.builder.$logical_op("and", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_49$57.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_50', $Ruby30__reduce_50$58 = function $$_reduce_50(val, _values, result) { + $def(self, '$_reduce_54', function $$_reduce_54(val, _values, result) { var self = this; result = self.builder.$logical_op("or", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_50$58.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_51', $Ruby30__reduce_51$59 = function $$_reduce_51(val, _values, result) { + $def(self, '$_reduce_55', function $$_reduce_55(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](2), nil); return result; - }, $Ruby30__reduce_51$59.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_52', $Ruby30__reduce_52$60 = function $$_reduce_52(val, _values, result) { + $def(self, '$_reduce_56', function $$_reduce_56(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_52$60.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_53', $Ruby30__reduce_53$61 = function $$_reduce_53(val, _values, result) { + $def(self, '$_reduce_57', function $$_reduce_57(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_beg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $send(self.lexer, 'command_start=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.pattern_variables.$push(); result = self.context.$in_kwarg(); $writer = [true]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_53$61.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_54', $Ruby30__reduce_54$62 = function $$_reduce_54(val, _values, result) { + $def(self, '$_reduce_58', function $$_reduce_58(val, _values, result) { var self = this, $writer = nil; self.pattern_variables.$pop(); $writer = [val['$[]'](2)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$match_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](3)); return result; - }, $Ruby30__reduce_54$62.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_55', $Ruby30__reduce_55$63 = function $$_reduce_55(val, _values, result) { + $def(self, '$_reduce_59', function $$_reduce_59(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_beg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $send(self.lexer, 'command_start=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.pattern_variables.$push(); result = self.context.$in_kwarg(); $writer = [true]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_55$63.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_56', $Ruby30__reduce_56$64 = function $$_reduce_56(val, _values, result) { + $def(self, '$_reduce_60', function $$_reduce_60(val, _values, result) { var self = this, $writer = nil; self.pattern_variables.$pop(); $writer = [val['$[]'](2)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$match_pattern_p(val['$[]'](0), val['$[]'](1), val['$[]'](3)); return result; - }, $Ruby30__reduce_56$64.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_59', $Ruby30__reduce_59$65 = function $$_reduce_59(val, _values, result) { + $def(self, '$_reduce_63', function $$_reduce_63(val, _values, result) { var self = this; self.lexer.$cond().$push(true); return result; - }, $Ruby30__reduce_59$65.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_60', $Ruby30__reduce_60$66 = function $$_reduce_60(val, _values, result) { + $def(self, '$_reduce_64', function $$_reduce_64(val, _values, result) { var self = this; self.lexer.$cond().$pop(); result = [val['$[]'](1), val['$[]'](2)]; return result; - }, $Ruby30__reduce_60$66.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_61', $Ruby30__reduce_61$67 = function $$_reduce_61(val, _values, result) { + $def(self, '$_reduce_65', function $$_reduce_65(val, _values, result) { var self = this, $writer = nil; @@ -24654,1052 +21477,1057 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = [val['$[]'](0), self.context.$dup()]; $writer = [true]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_61$67.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_62', $Ruby30__reduce_62$68 = function $$_reduce_62(val, _values, result) { - var self = this; - + $def(self, '$_reduce_66', function $$_reduce_66(val, _values, result) { + result = [val['$[]'](0), val['$[]'](1)]; return result; - }, $Ruby30__reduce_62$68.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_63', $Ruby30__reduce_63$69 = function $$_reduce_63(val, _values, result) { + $def(self, '$_reduce_67', function $$_reduce_67(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_63$69.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_64', $Ruby30__reduce_64$70 = function $$_reduce_64(val, _values, result) { - var self = this; - + $def(self, '$_reduce_68', function $$_reduce_68(val, _values, result) { + result = [val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4)]; return result; - }, $Ruby30__reduce_64$70.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_68', $Ruby30__reduce_68$71 = function $$_reduce_68(val, _values, result) { + $def(self, '$_reduce_72', function $$_reduce_72(val, _values, result) { var self = this; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); return result; - }, $Ruby30__reduce_68$71.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_69', $Ruby30__reduce_69$72 = function $$_reduce_69(val, _values, result) { + $def(self, '$_reduce_73', function $$_reduce_73(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_69$72.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_70', $Ruby30__reduce_70$73 = function $$_reduce_70(val, _values, result) { + $def(self, '$_reduce_74', function $$_reduce_74(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); $writer = [val['$[]'](1).$in_block()]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3)]); return result; - }, $Ruby30__reduce_70$73.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_72', $Ruby30__reduce_72$74 = function $$_reduce_72(val, _values, result) { + $def(self, '$_reduce_76', function $$_reduce_76(val, _values, result) { var self = this; result = self.builder.$call_method(nil, nil, val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_72$74.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_73', $Ruby30__reduce_73$75 = function $$_reduce_73(val, _values, result) { + $def(self, '$_reduce_77', function $$_reduce_77(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(nil, nil, val['$[]'](0), nil, val['$[]'](1), nil); - $b = val['$[]'](2), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](2), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_73$75.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_74', $Ruby30__reduce_74$76 = function $$_reduce_74(val, _values, result) { + $def(self, '$_reduce_78', function $$_reduce_78(val, _values, result) { var self = this; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); return result; - }, $Ruby30__reduce_74$76.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_75', $Ruby30__reduce_75$77 = function $$_reduce_75(val, _values, result) { + $def(self, '$_reduce_79', function $$_reduce_79(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_75$77.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_76', $Ruby30__reduce_76$78 = function $$_reduce_76(val, _values, result) { + $def(self, '$_reduce_80', function $$_reduce_80(val, _values, result) { var self = this; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); return result; - }, $Ruby30__reduce_76$78.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_77', $Ruby30__reduce_77$79 = function $$_reduce_77(val, _values, result) { + $def(self, '$_reduce_81', function $$_reduce_81(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_77$79.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_78', $Ruby30__reduce_78$80 = function $$_reduce_78(val, _values, result) { + $def(self, '$_reduce_82', function $$_reduce_82(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("super", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_78$80.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_79', $Ruby30__reduce_79$81 = function $$_reduce_79(val, _values, result) { + $def(self, '$_reduce_83', function $$_reduce_83(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("yield", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_79$81.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_80', $Ruby30__reduce_80$82 = function $$_reduce_80(val, _values, result) { + $def(self, '$_reduce_84', function $$_reduce_84(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("return", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_80$82.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_81', $Ruby30__reduce_81$83 = function $$_reduce_81(val, _values, result) { + $def(self, '$_reduce_85', function $$_reduce_85(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("break", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_81$83.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_82', $Ruby30__reduce_82$84 = function $$_reduce_82(val, _values, result) { + $def(self, '$_reduce_86', function $$_reduce_86(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("next", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_82$84.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_83', $Ruby30__reduce_83$85 = function $$_reduce_83(val, _values, result) { + $def(self, '$_reduce_87', function $$_reduce_87(val, _values, result) { var self = this; result = self.builder.$multi_lhs(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_83$85.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_84', $Ruby30__reduce_84$86 = function $$_reduce_84(val, _values, result) { + $def(self, '$_reduce_88', function $$_reduce_88(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_84$86.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_85', $Ruby30__reduce_85$87 = function $$_reduce_85(val, _values, result) { + $def(self, '$_reduce_89', function $$_reduce_89(val, _values, result) { var self = this; result = self.builder.$multi_lhs(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_85$87.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_86', $Ruby30__reduce_86$88 = function $$_reduce_86(val, _values, result) { + $def(self, '$_reduce_90', function $$_reduce_90(val, _values, result) { var self = this; result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_86$88.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_88', $Ruby30__reduce_88$89 = function $$_reduce_88(val, _values, result) { - var self = this; - + $def(self, '$_reduce_92', function $$_reduce_92(val, _values, result) { + result = val['$[]'](0).$push(val['$[]'](1)); return result; - }, $Ruby30__reduce_88$89.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_89', $Ruby30__reduce_89$90 = function $$_reduce_89(val, _values, result) { + $def(self, '$_reduce_93', function $$_reduce_93(val, _values, result) { var self = this; result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1), val['$[]'](2))); return result; - }, $Ruby30__reduce_89$90.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_90', $Ruby30__reduce_90$91 = function $$_reduce_90(val, _values, result) { + $def(self, '$_reduce_94', function $$_reduce_94(val, _values, result) { var self = this; result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1), val['$[]'](2))).$concat(val['$[]'](4)); return result; - }, $Ruby30__reduce_90$91.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_91', $Ruby30__reduce_91$92 = function $$_reduce_91(val, _values, result) { + $def(self, '$_reduce_95', function $$_reduce_95(val, _values, result) { var self = this; result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1))); return result; - }, $Ruby30__reduce_91$92.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_92', $Ruby30__reduce_92$93 = function $$_reduce_92(val, _values, result) { + $def(self, '$_reduce_96', function $$_reduce_96(val, _values, result) { var self = this; result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1))).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_92$93.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_93', $Ruby30__reduce_93$94 = function $$_reduce_93(val, _values, result) { + $def(self, '$_reduce_97', function $$_reduce_97(val, _values, result) { var self = this; result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_93$94.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_94', $Ruby30__reduce_94$95 = function $$_reduce_94(val, _values, result) { + $def(self, '$_reduce_98', function $$_reduce_98(val, _values, result) { var self = this; - result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))].concat(Opal.to_a(val['$[]'](3))); + result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))].concat($to_a(val['$[]'](3))); return result; - }, $Ruby30__reduce_94$95.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_95', $Ruby30__reduce_95$96 = function $$_reduce_95(val, _values, result) { + $def(self, '$_reduce_99', function $$_reduce_99(val, _values, result) { var self = this; result = [self.builder.$splat(val['$[]'](0))]; return result; - }, $Ruby30__reduce_95$96.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_96', $Ruby30__reduce_96$97 = function $$_reduce_96(val, _values, result) { + $def(self, '$_reduce_100', function $$_reduce_100(val, _values, result) { var self = this; - result = [self.builder.$splat(val['$[]'](0))].concat(Opal.to_a(val['$[]'](2))); + result = [self.builder.$splat(val['$[]'](0))].concat($to_a(val['$[]'](2))); return result; - }, $Ruby30__reduce_96$97.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_98', $Ruby30__reduce_98$98 = function $$_reduce_98(val, _values, result) { + $def(self, '$_reduce_102', function $$_reduce_102(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_98$98.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_99', $Ruby30__reduce_99$99 = function $$_reduce_99(val, _values, result) { - var self = this; - + $def(self, '$_reduce_103', function $$_reduce_103(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_99$99.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_100', $Ruby30__reduce_100$100 = function $$_reduce_100(val, _values, result) { - var self = this; - + $def(self, '$_reduce_104', function $$_reduce_104(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_100$100.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_101', $Ruby30__reduce_101$101 = function $$_reduce_101(val, _values, result) { - var self = this; - + $def(self, '$_reduce_105', function $$_reduce_105(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_101$101.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_102', $Ruby30__reduce_102$102 = function $$_reduce_102(val, _values, result) { - var self = this; - + $def(self, '$_reduce_106', function $$_reduce_106(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_102$102.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_103', $Ruby30__reduce_103$103 = function $$_reduce_103(val, _values, result) { + $def(self, '$_reduce_107', function $$_reduce_107(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_103$103.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_104', $Ruby30__reduce_104$104 = function $$_reduce_104(val, _values, result) { + $def(self, '$_reduce_108', function $$_reduce_108(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_104$104.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_105', $Ruby30__reduce_105$105 = function $$_reduce_105(val, _values, result) { + $def(self, '$_reduce_109', function $$_reduce_109(val, _values, result) { var self = this; result = self.builder.$index_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_105$105.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_106', $Ruby30__reduce_106$106 = function $$_reduce_106(val, _values, result) { + $def(self, '$_reduce_110', function $$_reduce_110(val, _values, result) { var self = this; - if ($truthy(val['$[]'](1)['$[]'](0)['$==']("anddot"))) { - self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1))}; + if ($eqeq(val['$[]'](1)['$[]'](0), "anddot")) { + self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1)) + }; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_106$106.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_107', $Ruby30__reduce_107$107 = function $$_reduce_107(val, _values, result) { + $def(self, '$_reduce_111', function $$_reduce_111(val, _values, result) { var self = this; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_107$107.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_108', $Ruby30__reduce_108$108 = function $$_reduce_108(val, _values, result) { + $def(self, '$_reduce_112', function $$_reduce_112(val, _values, result) { var self = this; - if ($truthy(val['$[]'](1)['$[]'](0)['$==']("anddot"))) { - self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1))}; + if ($eqeq(val['$[]'](1)['$[]'](0), "anddot")) { + self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1)) + }; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_108$108.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_109', $Ruby30__reduce_109$109 = function $$_reduce_109(val, _values, result) { + $def(self, '$_reduce_113', function $$_reduce_113(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); return result; - }, $Ruby30__reduce_109$109.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_110', $Ruby30__reduce_110$110 = function $$_reduce_110(val, _values, result) { + $def(self, '$_reduce_114', function $$_reduce_114(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); return result; - }, $Ruby30__reduce_110$110.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_111', $Ruby30__reduce_111$111 = function $$_reduce_111(val, _values, result) { + $def(self, '$_reduce_115', function $$_reduce_115(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_111$111.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_112', $Ruby30__reduce_112$112 = function $$_reduce_112(val, _values, result) { + $def(self, '$_reduce_116', function $$_reduce_116(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_112$112.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_113', $Ruby30__reduce_113$113 = function $$_reduce_113(val, _values, result) { + $def(self, '$_reduce_117', function $$_reduce_117(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_113$113.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_114', $Ruby30__reduce_114$114 = function $$_reduce_114(val, _values, result) { + $def(self, '$_reduce_118', function $$_reduce_118(val, _values, result) { var self = this; result = self.builder.$index_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_114$114.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_115', $Ruby30__reduce_115$115 = function $$_reduce_115(val, _values, result) { + $def(self, '$_reduce_119', function $$_reduce_119(val, _values, result) { var self = this; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_115$115.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_116', $Ruby30__reduce_116$116 = function $$_reduce_116(val, _values, result) { + $def(self, '$_reduce_120', function $$_reduce_120(val, _values, result) { var self = this; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_116$116.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_117', $Ruby30__reduce_117$117 = function $$_reduce_117(val, _values, result) { + $def(self, '$_reduce_121', function $$_reduce_121(val, _values, result) { var self = this; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_117$117.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_118', $Ruby30__reduce_118$118 = function $$_reduce_118(val, _values, result) { + $def(self, '$_reduce_122', function $$_reduce_122(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); return result; - }, $Ruby30__reduce_118$118.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_119', $Ruby30__reduce_119$119 = function $$_reduce_119(val, _values, result) { + $def(self, '$_reduce_123', function $$_reduce_123(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); return result; - }, $Ruby30__reduce_119$119.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_120', $Ruby30__reduce_120$120 = function $$_reduce_120(val, _values, result) { + $def(self, '$_reduce_124', function $$_reduce_124(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_120$120.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_121', $Ruby30__reduce_121$121 = function $$_reduce_121(val, _values, result) { + $def(self, '$_reduce_125', function $$_reduce_125(val, _values, result) { var self = this; self.$diagnostic("error", "module_name_const", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_121$121.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_123', $Ruby30__reduce_123$122 = function $$_reduce_123(val, _values, result) { + $def(self, '$_reduce_127', function $$_reduce_127(val, _values, result) { var self = this; result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_123$122.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_124', $Ruby30__reduce_124$123 = function $$_reduce_124(val, _values, result) { + $def(self, '$_reduce_128', function $$_reduce_128(val, _values, result) { var self = this; result = self.builder.$const(val['$[]'](0)); return result; - }, $Ruby30__reduce_124$123.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_125', $Ruby30__reduce_125$124 = function $$_reduce_125(val, _values, result) { + $def(self, '$_reduce_129', function $$_reduce_129(val, _values, result) { var self = this; result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_125$124.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_131', $Ruby30__reduce_131$125 = function $$_reduce_131(val, _values, result) { + $def(self, '$_reduce_135', function $$_reduce_135(val, _values, result) { var self = this; result = self.builder.$symbol_internal(val['$[]'](0)); return result; - }, $Ruby30__reduce_131$125.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_133', $Ruby30__reduce_133$126 = function $$_reduce_133(val, _values, result) { - var self = this; - + $def(self, '$_reduce_137', function $$_reduce_137(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_133$126.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_134', $Ruby30__reduce_134$127 = function $$_reduce_134(val, _values, result) { + $def(self, '$_reduce_138', function $$_reduce_138(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_134$127.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_135', $Ruby30__reduce_135$128 = function $$_reduce_135(val, _values, result) { - var self = this; - + $def(self, '$_reduce_139', function $$_reduce_139(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](3)); return result; - }, $Ruby30__reduce_135$128.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_207', $Ruby30__reduce_207$129 = function $$_reduce_207(val, _values, result) { + $def(self, '$_reduce_211', function $$_reduce_211(val, _values, result) { var self = this; result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_207$129.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_208', $Ruby30__reduce_208$130 = function $$_reduce_208(val, _values, result) { + $def(self, '$_reduce_212', function $$_reduce_212(val, _values, result) { var self = this; result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_208$130.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_209', $Ruby30__reduce_209$131 = function $$_reduce_209(val, _values, result) { + $def(self, '$_reduce_213', function $$_reduce_213(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)), val['$[]'](4), val['$[]'](5)); return result; - }, $Ruby30__reduce_209$131.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_210', $Ruby30__reduce_210$132 = function $$_reduce_210(val, _values, result) { + $def(self, '$_reduce_214', function $$_reduce_214(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_210$132.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_211', $Ruby30__reduce_211$133 = function $$_reduce_211(val, _values, result) { + $def(self, '$_reduce_215', function $$_reduce_215(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_211$133.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_212', $Ruby30__reduce_212$134 = function $$_reduce_212(val, _values, result) { + $def(self, '$_reduce_216', function $$_reduce_216(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_212$134.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_213', $Ruby30__reduce_213$135 = function $$_reduce_213(val, _values, result) { + $def(self, '$_reduce_217', function $$_reduce_217(val, _values, result) { var self = this, const$ = nil; const$ = self.builder.$const_op_assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); result = self.builder.$op_assign(const$, val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_213$135.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_214', $Ruby30__reduce_214$136 = function $$_reduce_214(val, _values, result) { + $def(self, '$_reduce_218', function $$_reduce_218(val, _values, result) { var self = this, const$ = nil; const$ = self.builder.$const_op_assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); result = self.builder.$op_assign(const$, val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_214$136.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_215', $Ruby30__reduce_215$137 = function $$_reduce_215(val, _values, result) { + $def(self, '$_reduce_219', function $$_reduce_219(val, _values, result) { var self = this; result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_215$137.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_216', $Ruby30__reduce_216$138 = function $$_reduce_216(val, _values, result) { + $def(self, '$_reduce_220', function $$_reduce_220(val, _values, result) { var self = this; result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_216$138.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_217', $Ruby30__reduce_217$139 = function $$_reduce_217(val, _values, result) { + $def(self, '$_reduce_221', function $$_reduce_221(val, _values, result) { var self = this; result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_217$139.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_218', $Ruby30__reduce_218$140 = function $$_reduce_218(val, _values, result) { + $def(self, '$_reduce_222', function $$_reduce_222(val, _values, result) { var self = this; result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), nil); return result; - }, $Ruby30__reduce_218$140.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_219', $Ruby30__reduce_219$141 = function $$_reduce_219(val, _values, result) { + $def(self, '$_reduce_223', function $$_reduce_223(val, _values, result) { var self = this; result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), nil); return result; - }, $Ruby30__reduce_219$141.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_220', $Ruby30__reduce_220$142 = function $$_reduce_220(val, _values, result) { + $def(self, '$_reduce_224', function $$_reduce_224(val, _values, result) { var self = this; result = self.builder.$range_inclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_220$142.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_221', $Ruby30__reduce_221$143 = function $$_reduce_221(val, _values, result) { + $def(self, '$_reduce_225', function $$_reduce_225(val, _values, result) { var self = this; result = self.builder.$range_exclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_221$143.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_222', $Ruby30__reduce_222$144 = function $$_reduce_222(val, _values, result) { + $def(self, '$_reduce_226', function $$_reduce_226(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_222$144.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_223', $Ruby30__reduce_223$145 = function $$_reduce_223(val, _values, result) { + $def(self, '$_reduce_227', function $$_reduce_227(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_223$145.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_224', $Ruby30__reduce_224$146 = function $$_reduce_224(val, _values, result) { + $def(self, '$_reduce_228', function $$_reduce_228(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_224$146.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_225', $Ruby30__reduce_225$147 = function $$_reduce_225(val, _values, result) { + $def(self, '$_reduce_229', function $$_reduce_229(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_225$147.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_226', $Ruby30__reduce_226$148 = function $$_reduce_226(val, _values, result) { + $def(self, '$_reduce_230', function $$_reduce_230(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_226$148.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_227', $Ruby30__reduce_227$149 = function $$_reduce_227(val, _values, result) { + $def(self, '$_reduce_231', function $$_reduce_231(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_227$149.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_228', $Ruby30__reduce_228$150 = function $$_reduce_228(val, _values, result) { + $def(self, '$_reduce_232', function $$_reduce_232(val, _values, result) { var self = this; result = self.builder.$unary_op(val['$[]'](0), self.builder.$binary_op(val['$[]'](1), val['$[]'](2), val['$[]'](3))); return result; - }, $Ruby30__reduce_228$150.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_229', $Ruby30__reduce_229$151 = function $$_reduce_229(val, _values, result) { + $def(self, '$_reduce_233', function $$_reduce_233(val, _values, result) { var self = this; result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_229$151.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_230', $Ruby30__reduce_230$152 = function $$_reduce_230(val, _values, result) { + $def(self, '$_reduce_234', function $$_reduce_234(val, _values, result) { var self = this; result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_230$152.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_231', $Ruby30__reduce_231$153 = function $$_reduce_231(val, _values, result) { + $def(self, '$_reduce_235', function $$_reduce_235(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_231$153.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_232', $Ruby30__reduce_232$154 = function $$_reduce_232(val, _values, result) { + $def(self, '$_reduce_236', function $$_reduce_236(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_232$154.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_233', $Ruby30__reduce_233$155 = function $$_reduce_233(val, _values, result) { + $def(self, '$_reduce_237', function $$_reduce_237(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_233$155.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_234', $Ruby30__reduce_234$156 = function $$_reduce_234(val, _values, result) { + $def(self, '$_reduce_238', function $$_reduce_238(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_234$156.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_236', $Ruby30__reduce_236$157 = function $$_reduce_236(val, _values, result) { + $def(self, '$_reduce_240', function $$_reduce_240(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_236$157.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_237', $Ruby30__reduce_237$158 = function $$_reduce_237(val, _values, result) { + $def(self, '$_reduce_241', function $$_reduce_241(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_237$158.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_238', $Ruby30__reduce_238$159 = function $$_reduce_238(val, _values, result) { + $def(self, '$_reduce_242', function $$_reduce_242(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_238$159.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_239', $Ruby30__reduce_239$160 = function $$_reduce_239(val, _values, result) { + $def(self, '$_reduce_243', function $$_reduce_243(val, _values, result) { var self = this; result = self.builder.$match_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_239$160.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_240', $Ruby30__reduce_240$161 = function $$_reduce_240(val, _values, result) { + $def(self, '$_reduce_244', function $$_reduce_244(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_240$161.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_241', $Ruby30__reduce_241$162 = function $$_reduce_241(val, _values, result) { + $def(self, '$_reduce_245', function $$_reduce_245(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_241$162.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_242', $Ruby30__reduce_242$163 = function $$_reduce_242(val, _values, result) { + $def(self, '$_reduce_246', function $$_reduce_246(val, _values, result) { var self = this; result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_242$163.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_243', $Ruby30__reduce_243$164 = function $$_reduce_243(val, _values, result) { + $def(self, '$_reduce_247', function $$_reduce_247(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_243$164.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_244', $Ruby30__reduce_244$165 = function $$_reduce_244(val, _values, result) { + $def(self, '$_reduce_248', function $$_reduce_248(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_244$165.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_245', $Ruby30__reduce_245$166 = function $$_reduce_245(val, _values, result) { + $def(self, '$_reduce_249', function $$_reduce_249(val, _values, result) { var self = this; result = self.builder.$logical_op("and", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_245$166.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_246', $Ruby30__reduce_246$167 = function $$_reduce_246(val, _values, result) { + $def(self, '$_reduce_250', function $$_reduce_250(val, _values, result) { var self = this; result = self.builder.$logical_op("or", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_246$167.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_247', $Ruby30__reduce_247$168 = function $$_reduce_247(val, _values, result) { - var self = this; + $def(self, '$_reduce_251', function $$_reduce_251(val, _values, result) { + var self = this, $writer = nil; + + + + $writer = [true]; + $send(self.context, 'in_defined=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_252', function $$_reduce_252(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$keyword_cmd("defined?", val['$[]'](0), nil, [val['$[]'](2)], nil); + + $writer = [false]; + $send(self.context, 'in_defined=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$keyword_cmd("defined?", val['$[]'](0), nil, [val['$[]'](3)], nil); return result; - }, $Ruby30__reduce_247$168.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_248', $Ruby30__reduce_248$169 = function $$_reduce_248(val, _values, result) { + $def(self, '$_reduce_253', function $$_reduce_253(val, _values, result) { var self = this; result = self.builder.$ternary(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4), val['$[]'](5)); return result; - }, $Ruby30__reduce_248$169.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_249', $Ruby30__reduce_249$170 = function $$_reduce_249(val, _values, result) { + $def(self, '$_reduce_254', function $$_reduce_254(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = Opal.to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; self.$endless_method_name(name_t); result = self.builder.$def_endless_method(def_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_249$170.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_250', $Ruby30__reduce_250$171 = function $$_reduce_250(val, _values, result) { + $def(self, '$_reduce_255', function $$_reduce_255(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, rescue_body = nil, method_body = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = Opal.to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; self.$endless_method_name(name_t); rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); result = self.builder.$def_endless_method(def_t, name_t, val['$[]'](1), val['$[]'](2), method_body); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_250$171.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_251', $Ruby30__reduce_251$172 = function $$_reduce_251(val, _values, result) { + $def(self, '$_reduce_256', function $$_reduce_256(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = Opal.to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; self.$endless_method_name(name_t); result = self.builder.$def_endless_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_251$172.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_252', $Ruby30__reduce_252$173 = function $$_reduce_252(val, _values, result) { + $def(self, '$_reduce_257', function $$_reduce_257(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, rescue_body = nil, method_body = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = Opal.to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; self.$endless_method_name(name_t); rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); result = self.builder.$def_endless_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), method_body); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_252$173.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_258', $Ruby30__reduce_258$174 = function $$_reduce_258(val, _values, result) { + $def(self, '$_reduce_263', function $$_reduce_263(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_258$174.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_259', $Ruby30__reduce_259$175 = function $$_reduce_259(val, _values, result) { + $def(self, '$_reduce_264', function $$_reduce_264(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_259$175.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_263', $Ruby30__reduce_263$176 = function $$_reduce_263(val, _values, result) { + $def(self, '$_reduce_268', function $$_reduce_268(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$associate(nil, val['$[]'](2), nil)); return result; - }, $Ruby30__reduce_263$176.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_264', $Ruby30__reduce_264$177 = function $$_reduce_264(val, _values, result) { + $def(self, '$_reduce_269', function $$_reduce_269(val, _values, result) { var self = this; result = [self.builder.$associate(nil, val['$[]'](0), nil)]; return result; - }, $Ruby30__reduce_264$177.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_266', $Ruby30__reduce_266$178 = function $$_reduce_266(val, _values, result) { + $def(self, '$_reduce_271', function $$_reduce_271(val, _values, result) { var self = this, rescue_body = nil; rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); return result; - }, $Ruby30__reduce_266$178.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_267', $Ruby30__reduce_267$179 = function $$_reduce_267(val, _values, result) { - var self = this; - + $def(self, '$_reduce_272', function $$_reduce_272(val, _values, result) { + result = val; return result; - }, $Ruby30__reduce_267$179.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_268', $Ruby30__reduce_268$180 = function $$_reduce_268(val, _values, result) { + $def(self, '$_reduce_273', function $$_reduce_273(val, _values, result) { var self = this; - if ($truthy(self.static_env['$declared_forward_args?']())) { - } else { + if (!$truthy(self.static_env['$declared_forward_args?']())) { self.$diagnostic("error", "unexpected_token", $hash2(["token"], {"token": "tBDOT3"}), val['$[]'](3)) }; - result = [val['$[]'](0), [].concat(Opal.to_a(val['$[]'](1))).concat([self.builder.$forwarded_args(val['$[]'](3))]), val['$[]'](4)]; + result = [val['$[]'](0), [].concat($to_a(val['$[]'](1))).concat([self.builder.$forwarded_args(val['$[]'](3))]), val['$[]'](4)]; return result; - }, $Ruby30__reduce_268$180.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_269', $Ruby30__reduce_269$181 = function $$_reduce_269(val, _values, result) { + $def(self, '$_reduce_274', function $$_reduce_274(val, _values, result) { var self = this; - if ($truthy(self.static_env['$declared_forward_args?']())) { - } else { + if (!$truthy(self.static_env['$declared_forward_args?']())) { self.$diagnostic("error", "unexpected_token", $hash2(["token"], {"token": "tBDOT3"}), val['$[]'](1)) }; result = [val['$[]'](0), [self.builder.$forwarded_args(val['$[]'](1))], val['$[]'](2)]; return result; - }, $Ruby30__reduce_269$181.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_270', $Ruby30__reduce_270$182 = function $$_reduce_270(val, _values, result) { - var self = this; - + $def(self, '$_reduce_275', function $$_reduce_275(val, _values, result) { + result = [nil, [], nil]; return result; - }, $Ruby30__reduce_270$182.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_272', $Ruby30__reduce_272$183 = function $$_reduce_272(val, _values, result) { - var self = this; - + $def(self, '$_reduce_277', function $$_reduce_277(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_272$183.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_275', $Ruby30__reduce_275$184 = function $$_reduce_275(val, _values, result) { + $def(self, '$_reduce_280', function $$_reduce_280(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$associate(nil, val['$[]'](2), nil)); return result; - }, $Ruby30__reduce_275$184.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_276', $Ruby30__reduce_276$185 = function $$_reduce_276(val, _values, result) { + $def(self, '$_reduce_281', function $$_reduce_281(val, _values, result) { var self = this; result = [self.builder.$associate(nil, val['$[]'](0), nil)]; return result; - }, $Ruby30__reduce_276$185.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_277', $Ruby30__reduce_277$186 = function $$_reduce_277(val, _values, result) { - var self = this; - + $def(self, '$_reduce_282', function $$_reduce_282(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_277$186.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_278', $Ruby30__reduce_278$187 = function $$_reduce_278(val, _values, result) { - var self = this; - + $def(self, '$_reduce_283', function $$_reduce_283(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_278$187.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_279', $Ruby30__reduce_279$188 = function $$_reduce_279(val, _values, result) { + $def(self, '$_reduce_284', function $$_reduce_284(val, _values, result) { var self = this; result = [self.builder.$associate(nil, val['$[]'](0), nil)]; result.$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_279$188.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_280', $Ruby30__reduce_280$189 = function $$_reduce_280(val, _values, result) { + $def(self, '$_reduce_285', function $$_reduce_285(val, _values, result) { var self = this, assocs = nil; @@ -25707,26 +22535,21 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = val['$[]'](0)['$<<'](assocs); result.$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_280$189.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_281', $Ruby30__reduce_281$190 = function $$_reduce_281(val, _values, result) { - var self = this; - + $def(self, '$_reduce_286', function $$_reduce_286(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_281$190.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_282', $Ruby30__reduce_282$191 = function $$_reduce_282(val, _values, result) { - var self = this, last_token = nil, lookahead = nil, $ret_or_5 = nil, top = nil; + $def(self, '$_reduce_287', function $$_reduce_287(val, _values, result) { + var self = this, last_token = nil, lookahead = nil, $ret_or_1 = nil, top = nil; last_token = self.last_token['$[]'](0); - lookahead = (function() {if ($truthy(($ret_or_5 = last_token['$==']("tLBRACK")))) { - return $ret_or_5 - } else { - return last_token['$==']("tLPAREN_ARG") - }; return nil; })(); + lookahead = ($truthy(($ret_or_1 = last_token['$==']("tLBRACK"))) ? ($ret_or_1) : (last_token['$==']("tLPAREN_ARG"))); if ($truthy(lookahead)) { top = self.lexer.$cmdarg().$pop(); @@ -25736,9 +22559,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.lexer.$cmdarg().$push(true) }; return result; - }, $Ruby30__reduce_282$191.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_283', $Ruby30__reduce_283$192 = function $$_reduce_283(val, _values, result) { + $def(self, '$_reduce_288', function $$_reduce_288(val, _values, result) { var self = this, last_token = nil, lookahead = nil, top = nil; @@ -25754,887 +22577,895 @@ Opal.modules["parser/ruby30"] = function(Opal) { }; result = val['$[]'](1); return result; - }, $Ruby30__reduce_283$192.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_284', $Ruby30__reduce_284$193 = function $$_reduce_284(val, _values, result) { + $def(self, '$_reduce_289', function $$_reduce_289(val, _values, result) { var self = this; result = self.builder.$block_pass(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_284$193.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_285', $Ruby30__reduce_285$194 = function $$_reduce_285(val, _values, result) { + $def(self, '$_reduce_290', function $$_reduce_290(val, _values, result) { var self = this; + if ($not(self.static_env['$declared_anonymous_blockarg?']())) { + self.$diagnostic("error", "no_anonymous_blockarg", nil, val['$[]'](0)) + }; + result = self.builder.$block_pass(val['$[]'](0), nil); + return result; + }, 3); + + $def(self, '$_reduce_291', function $$_reduce_291(val, _values, result) { + + result = [val['$[]'](1)]; return result; - }, $Ruby30__reduce_285$194.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_286', $Ruby30__reduce_286$195 = function $$_reduce_286(val, _values, result) { - var self = this; - + $def(self, '$_reduce_292', function $$_reduce_292(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_286$195.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_287', $Ruby30__reduce_287$196 = function $$_reduce_287(val, _values, result) { - var self = this; - + $def(self, '$_reduce_293', function $$_reduce_293(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_287$196.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_288', $Ruby30__reduce_288$197 = function $$_reduce_288(val, _values, result) { + $def(self, '$_reduce_294', function $$_reduce_294(val, _values, result) { var self = this; result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_288$197.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_289', $Ruby30__reduce_289$198 = function $$_reduce_289(val, _values, result) { - var self = this; - + $def(self, '$_reduce_295', function $$_reduce_295(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_289$198.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_290', $Ruby30__reduce_290$199 = function $$_reduce_290(val, _values, result) { + $def(self, '$_reduce_296', function $$_reduce_296(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$splat(val['$[]'](2), val['$[]'](3))); return result; - }, $Ruby30__reduce_290$199.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_291', $Ruby30__reduce_291$200 = function $$_reduce_291(val, _values, result) { + $def(self, '$_reduce_297', function $$_reduce_297(val, _values, result) { var self = this; result = self.builder.$array(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_291$200.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_293', $Ruby30__reduce_293$201 = function $$_reduce_293(val, _values, result) { - var self = this; - + $def(self, '$_reduce_299', function $$_reduce_299(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_293$201.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_294', $Ruby30__reduce_294$202 = function $$_reduce_294(val, _values, result) { + $def(self, '$_reduce_300', function $$_reduce_300(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$splat(val['$[]'](2), val['$[]'](3))); return result; - }, $Ruby30__reduce_294$202.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_295', $Ruby30__reduce_295$203 = function $$_reduce_295(val, _values, result) { + $def(self, '$_reduce_301', function $$_reduce_301(val, _values, result) { var self = this; result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_295$203.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_306', $Ruby30__reduce_306$204 = function $$_reduce_306(val, _values, result) { + $def(self, '$_reduce_312', function $$_reduce_312(val, _values, result) { var self = this; result = self.builder.$call_method(nil, nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_306$204.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_307', $Ruby30__reduce_307$205 = function $$_reduce_307(val, _values, result) { + $def(self, '$_reduce_313', function $$_reduce_313(val, _values, result) { var self = this; self.lexer.$cmdarg().$push(false); return result; - }, $Ruby30__reduce_307$205.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_308', $Ruby30__reduce_308$206 = function $$_reduce_308(val, _values, result) { + $def(self, '$_reduce_314', function $$_reduce_314(val, _values, result) { var self = this; self.lexer.$cmdarg().$pop(); result = self.builder.$begin_keyword(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_308$206.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_309', $Ruby30__reduce_309$207 = function $$_reduce_309(val, _values, result) { + $def(self, '$_reduce_315', function $$_reduce_315(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_endarg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_309$207.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_310', $Ruby30__reduce_310$208 = function $$_reduce_310(val, _values, result) { + $def(self, '$_reduce_316', function $$_reduce_316(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](3)); return result; - }, $Ruby30__reduce_310$208.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_311', $Ruby30__reduce_311$209 = function $$_reduce_311(val, _values, result) { + $def(self, '$_reduce_317', function $$_reduce_317(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_endarg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_311$209.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_312', $Ruby30__reduce_312$210 = function $$_reduce_312(val, _values, result) { + $def(self, '$_reduce_318', function $$_reduce_318(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), nil, val['$[]'](3)); return result; - }, $Ruby30__reduce_312$210.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_313', $Ruby30__reduce_313$211 = function $$_reduce_313(val, _values, result) { + $def(self, '$_reduce_319', function $$_reduce_319(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_313$211.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_314', $Ruby30__reduce_314$212 = function $$_reduce_314(val, _values, result) { + $def(self, '$_reduce_320', function $$_reduce_320(val, _values, result) { var self = this; result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_314$212.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_315', $Ruby30__reduce_315$213 = function $$_reduce_315(val, _values, result) { + $def(self, '$_reduce_321', function $$_reduce_321(val, _values, result) { var self = this; result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_315$213.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_316', $Ruby30__reduce_316$214 = function $$_reduce_316(val, _values, result) { + $def(self, '$_reduce_322', function $$_reduce_322(val, _values, result) { var self = this; result = self.builder.$array(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_316$214.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_317', $Ruby30__reduce_317$215 = function $$_reduce_317(val, _values, result) { + $def(self, '$_reduce_323', function $$_reduce_323(val, _values, result) { var self = this; result = self.builder.$associate(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_317$215.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_318', $Ruby30__reduce_318$216 = function $$_reduce_318(val, _values, result) { + $def(self, '$_reduce_324', function $$_reduce_324(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("return", val['$[]'](0)); return result; - }, $Ruby30__reduce_318$216.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_319', $Ruby30__reduce_319$217 = function $$_reduce_319(val, _values, result) { + $def(self, '$_reduce_325', function $$_reduce_325(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("yield", val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_319$217.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_320', $Ruby30__reduce_320$218 = function $$_reduce_320(val, _values, result) { + $def(self, '$_reduce_326', function $$_reduce_326(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("yield", val['$[]'](0), val['$[]'](1), [], val['$[]'](2)); return result; - }, $Ruby30__reduce_320$218.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_321', $Ruby30__reduce_321$219 = function $$_reduce_321(val, _values, result) { + $def(self, '$_reduce_327', function $$_reduce_327(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("yield", val['$[]'](0)); return result; - }, $Ruby30__reduce_321$219.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_322', $Ruby30__reduce_322$220 = function $$_reduce_322(val, _values, result) { - var self = this; + $def(self, '$_reduce_328', function $$_reduce_328(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$keyword_cmd("defined?", val['$[]'](0), val['$[]'](2), [val['$[]'](3)], val['$[]'](4)); + + $writer = [true]; + $send(self.context, 'in_defined=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_329', function $$_reduce_329(val, _values, result) { + var self = this, $writer = nil; + + + + $writer = [false]; + $send(self.context, 'in_defined=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$keyword_cmd("defined?", val['$[]'](0), val['$[]'](2), [val['$[]'](4)], val['$[]'](5)); return result; - }, $Ruby30__reduce_322$220.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_323', $Ruby30__reduce_323$221 = function $$_reduce_323(val, _values, result) { + $def(self, '$_reduce_330', function $$_reduce_330(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_323$221.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_324', $Ruby30__reduce_324$222 = function $$_reduce_324(val, _values, result) { + $def(self, '$_reduce_331', function $$_reduce_331(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), val['$[]'](1), nil, val['$[]'](2)); return result; - }, $Ruby30__reduce_324$222.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_325', $Ruby30__reduce_325$223 = function $$_reduce_325(val, _values, result) { + $def(self, '$_reduce_332', function $$_reduce_332(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(nil, nil, val['$[]'](0)); - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_325$223.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_327', $Ruby30__reduce_327$224 = function $$_reduce_327(val, _values, result) { + $def(self, '$_reduce_334', function $$_reduce_334(val, _values, result) { var $a, $b, self = this, begin_t = nil, args = nil, body = nil, end_t = nil; - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(val['$[]'](0), begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_327$224.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_329', $Ruby30__reduce_329$225 = function $$_reduce_329(val, _values, result) { + $def(self, '$_reduce_336', function $$_reduce_336(val, _values, result) { var $a, $b, self = this, else_t = nil, else_ = nil; - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; result = self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3), else_t, else_, val['$[]'](5)); return result; - }, $Ruby30__reduce_329$225.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_330', $Ruby30__reduce_330$226 = function $$_reduce_330(val, _values, result) { + $def(self, '$_reduce_337', function $$_reduce_337(val, _values, result) { var $a, $b, self = this, else_t = nil, else_ = nil; - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; result = self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), else_, else_t, val['$[]'](3), val['$[]'](5)); return result; - }, $Ruby30__reduce_330$226.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_331', $Ruby30__reduce_331$227 = function $$_reduce_331(val, _values, result) { + $def(self, '$_reduce_338', function $$_reduce_338(val, _values, result) { var self = this; - result = $send(self.builder, 'loop', ["while", val['$[]'](0)].concat(Opal.to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); + result = $send(self.builder, 'loop', ["while", val['$[]'](0)].concat($to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); return result; - }, $Ruby30__reduce_331$227.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_332', $Ruby30__reduce_332$228 = function $$_reduce_332(val, _values, result) { + $def(self, '$_reduce_339', function $$_reduce_339(val, _values, result) { var self = this; - result = $send(self.builder, 'loop', ["until", val['$[]'](0)].concat(Opal.to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); + result = $send(self.builder, 'loop', ["until", val['$[]'](0)].concat($to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); return result; - }, $Ruby30__reduce_332$228.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_333', $Ruby30__reduce_333$229 = function $$_reduce_333(val, _values, result) { + $def(self, '$_reduce_340', function $$_reduce_340(val, _values, result) { var $a, $b, $c, self = this, when_bodies = nil, else_t = nil, else_body = nil; - $a = [].concat(Opal.to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + $a = [].concat($to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = $to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; result = self.builder.$case(val['$[]'](0), val['$[]'](1), when_bodies, else_t, else_body, val['$[]'](4)); return result; - }, $Ruby30__reduce_333$229.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_334', $Ruby30__reduce_334$230 = function $$_reduce_334(val, _values, result) { + $def(self, '$_reduce_341', function $$_reduce_341(val, _values, result) { var $a, $b, $c, self = this, when_bodies = nil, else_t = nil, else_body = nil; - $a = [].concat(Opal.to_a(val['$[]'](2))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + $a = [].concat($to_a(val['$[]'](2))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = $to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; result = self.builder.$case(val['$[]'](0), nil, when_bodies, else_t, else_body, val['$[]'](3)); return result; - }, $Ruby30__reduce_334$230.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_335', $Ruby30__reduce_335$231 = function $$_reduce_335(val, _values, result) { + $def(self, '$_reduce_342', function $$_reduce_342(val, _values, result) { var $a, $b, $c, self = this, in_bodies = nil, else_t = nil, else_body = nil; - $a = [].concat(Opal.to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (in_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + $a = [].concat($to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (in_bodies = $slice.call($a, 0, $b)), ($c = $to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; result = self.builder.$case_match(val['$[]'](0), val['$[]'](1), in_bodies, else_t, else_body, val['$[]'](4)); return result; - }, $Ruby30__reduce_335$231.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_336', $Ruby30__reduce_336$232 = function $$_reduce_336(val, _values, result) { + $def(self, '$_reduce_343', function $$_reduce_343(val, _values, result) { var self = this; - result = $send(self.builder, 'for', [val['$[]'](0), val['$[]'](1), val['$[]'](2)].concat(Opal.to_a(val['$[]'](3))).concat([val['$[]'](4), val['$[]'](5)])); + result = $send(self.builder, 'for', [val['$[]'](0), val['$[]'](1), val['$[]'](2)].concat($to_a(val['$[]'](3))).concat([val['$[]'](4), val['$[]'](5)])); return result; - }, $Ruby30__reduce_336$232.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_337', $Ruby30__reduce_337$233 = function $$_reduce_337(val, _values, result) { + $def(self, '$_reduce_344', function $$_reduce_344(val, _values, result) { var self = this, $writer = nil; $writer = [true]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.$local_push(); return result; - }, $Ruby30__reduce_337$233.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_338', $Ruby30__reduce_338$234 = function $$_reduce_338(val, _values, result) { + $def(self, '$_reduce_345', function $$_reduce_345(val, _values, result) { var $a, $b, self = this, k_class = nil, ctx = nil, lt_t = nil, superclass = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (k_class = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](0), $a = $to_ary($b), (k_class = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(self.context.$in_def())) { - self.$diagnostic("error", "class_in_def", nil, k_class)}; - $b = val['$[]'](2), $a = Opal.to_ary($b), (lt_t = ($a[0] == null ? nil : $a[0])), (superclass = ($a[1] == null ? nil : $a[1])), $b; + self.$diagnostic("error", "class_in_def", nil, k_class) + }; + $b = val['$[]'](2), $a = $to_ary($b), (lt_t = ($a[0] == null ? nil : $a[0])), (superclass = ($a[1] == null ? nil : $a[1])), $b; result = self.builder.$def_class(k_class, val['$[]'](1), lt_t, superclass, val['$[]'](4), val['$[]'](5)); self.$local_pop(); $writer = [ctx.$in_class()]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_338$234.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_339', $Ruby30__reduce_339$235 = function $$_reduce_339(val, _values, result) { + $def(self, '$_reduce_346', function $$_reduce_346(val, _values, result) { var self = this, $writer = nil; $writer = [false]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.$local_push(); return result; - }, $Ruby30__reduce_339$235.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_340', $Ruby30__reduce_340$236 = function $$_reduce_340(val, _values, result) { + $def(self, '$_reduce_347', function $$_reduce_347(val, _values, result) { var $a, $b, self = this, k_class = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (k_class = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](0), $a = $to_ary($b), (k_class = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; result = self.builder.$def_sclass(k_class, val['$[]'](1), val['$[]'](2), val['$[]'](5), val['$[]'](6)); self.$local_pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [ctx.$in_class()]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_340$236.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_341', $Ruby30__reduce_341$237 = function $$_reduce_341(val, _values, result) { + $def(self, '$_reduce_348', function $$_reduce_348(val, _values, result) { var self = this, $writer = nil; $writer = [true]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.$local_push(); return result; - }, $Ruby30__reduce_341$237.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_342', $Ruby30__reduce_342$238 = function $$_reduce_342(val, _values, result) { + $def(self, '$_reduce_349', function $$_reduce_349(val, _values, result) { var $a, $b, self = this, k_mod = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (k_mod = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](0), $a = $to_ary($b), (k_mod = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(self.context.$in_def())) { - self.$diagnostic("error", "module_in_def", nil, k_mod)}; + self.$diagnostic("error", "module_in_def", nil, k_mod) + }; result = self.builder.$def_module(k_mod, val['$[]'](1), val['$[]'](3), val['$[]'](4)); self.$local_pop(); $writer = [ctx.$in_class()]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_342$238.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_343', $Ruby30__reduce_343$239 = function $$_reduce_343(val, _values, result) { + $def(self, '$_reduce_350', function $$_reduce_350(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = Opal.to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; result = self.builder.$def_method(def_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_343$239.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_344', $Ruby30__reduce_344$240 = function $$_reduce_344(val, _values, result) { + $def(self, '$_reduce_351', function $$_reduce_351(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = Opal.to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; result = self.builder.$def_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_344$240.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_345', $Ruby30__reduce_345$241 = function $$_reduce_345(val, _values, result) { + $def(self, '$_reduce_352', function $$_reduce_352(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("break", val['$[]'](0)); return result; - }, $Ruby30__reduce_345$241.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_346', $Ruby30__reduce_346$242 = function $$_reduce_346(val, _values, result) { + $def(self, '$_reduce_353', function $$_reduce_353(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("next", val['$[]'](0)); return result; - }, $Ruby30__reduce_346$242.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_347', $Ruby30__reduce_347$243 = function $$_reduce_347(val, _values, result) { + $def(self, '$_reduce_354', function $$_reduce_354(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("redo", val['$[]'](0)); return result; - }, $Ruby30__reduce_347$243.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_348', $Ruby30__reduce_348$244 = function $$_reduce_348(val, _values, result) { + $def(self, '$_reduce_355', function $$_reduce_355(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("retry", val['$[]'](0)); return result; - }, $Ruby30__reduce_348$244.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_350', $Ruby30__reduce_350$245 = function $$_reduce_350(val, _values, result) { + $def(self, '$_reduce_357', function $$_reduce_357(val, _values, result) { var self = this; result = [val['$[]'](0), self.context.$dup()]; return result; - }, $Ruby30__reduce_350$245.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_351', $Ruby30__reduce_351$246 = function $$_reduce_351(val, _values, result) { + $def(self, '$_reduce_358', function $$_reduce_358(val, _values, result) { var self = this; result = [val['$[]'](0), self.context.$dup()]; return result; - }, $Ruby30__reduce_351$246.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_352', $Ruby30__reduce_352$247 = function $$_reduce_352(val, _values, result) { - var self = this; + $def(self, '$_reduce_359', function $$_reduce_359(val, _values, result) { + var self = this, $writer = nil; result = val['$[]'](0); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_352$247.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_353', $Ruby30__reduce_353$248 = function $$_reduce_353(val, _values, result) { - var self = this, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil; + $def(self, '$_reduce_360', function $$_reduce_360(val, _values, result) { + var self = this, $ret_or_1 = nil; - if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = self.context.$in_class()))) { - return self.context.$in_def()['$!']() - } else { - return $ret_or_7 - }; return nil; })()))) { - return (function() {if ($truthy(($ret_or_8 = self.$context().$in_block()))) { - return $ret_or_8 - } else { - return self.$context().$in_lambda() - }; return nil; })()['$!']() - } else { - return $ret_or_6 - }; return nil; })())) { - self.$diagnostic("error", "invalid_return", nil, val['$[]'](0))}; + if ((($truthy(self.context.$in_class()) && ($not(self.context.$in_def()))) && ($not(($truthy(($ret_or_1 = self.$context().$in_block())) ? ($ret_or_1) : (self.$context().$in_lambda())))))) { + self.$diagnostic("error", "invalid_return", nil, val['$[]'](0)) + }; return result; - }, $Ruby30__reduce_353$248.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_356', $Ruby30__reduce_356$249 = function $$_reduce_356(val, _values, result) { - var self = this; - + $def(self, '$_reduce_363', function $$_reduce_363(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_356$249.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_360', $Ruby30__reduce_360$250 = function $$_reduce_360(val, _values, result) { + $def(self, '$_reduce_367', function $$_reduce_367(val, _values, result) { var $a, $b, self = this, else_t = nil, else_ = nil; - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; result = [val['$[]'](0), self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3), else_t, else_, nil)]; return result; - }, $Ruby30__reduce_360$250.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_362', $Ruby30__reduce_362$251 = function $$_reduce_362(val, _values, result) { - var self = this; - + $def(self, '$_reduce_369', function $$_reduce_369(val, _values, result) { + result = val; return result; - }, $Ruby30__reduce_362$251.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_365', $Ruby30__reduce_365$252 = function $$_reduce_365(val, _values, result) { + $def(self, '$_reduce_372', function $$_reduce_372(val, _values, result) { var self = this; result = self.builder.$arg(val['$[]'](0)); return result; - }, $Ruby30__reduce_365$252.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_366', $Ruby30__reduce_366$253 = function $$_reduce_366(val, _values, result) { + $def(self, '$_reduce_373', function $$_reduce_373(val, _values, result) { var self = this; result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_366$253.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_367', $Ruby30__reduce_367$254 = function $$_reduce_367(val, _values, result) { - var self = this; - + $def(self, '$_reduce_374', function $$_reduce_374(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_367$254.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_368', $Ruby30__reduce_368$255 = function $$_reduce_368(val, _values, result) { - var self = this; - + $def(self, '$_reduce_375', function $$_reduce_375(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_368$255.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_370', $Ruby30__reduce_370$256 = function $$_reduce_370(val, _values, result) { - var self = this; - + $def(self, '$_reduce_377', function $$_reduce_377(val, _values, result) { + result = val['$[]'](0).$push(val['$[]'](2)); return result; - }, $Ruby30__reduce_370$256.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_371', $Ruby30__reduce_371$257 = function $$_reduce_371(val, _values, result) { - var self = this; - + $def(self, '$_reduce_378', function $$_reduce_378(val, _values, result) { + result = val['$[]'](0).$push(val['$[]'](2)).$concat(val['$[]'](4)); return result; - }, $Ruby30__reduce_371$257.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_372', $Ruby30__reduce_372$258 = function $$_reduce_372(val, _values, result) { - var self = this; - + $def(self, '$_reduce_379', function $$_reduce_379(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_372$258.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_373', $Ruby30__reduce_373$259 = function $$_reduce_373(val, _values, result) { - var self = this; - + $def(self, '$_reduce_380', function $$_reduce_380(val, _values, result) { - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))); + + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))); return result; - }, $Ruby30__reduce_373$259.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_374', $Ruby30__reduce_374$260 = function $$_reduce_374(val, _values, result) { + $def(self, '$_reduce_381', function $$_reduce_381(val, _values, result) { var self = this; result = self.builder.$restarg(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_374$260.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_375', $Ruby30__reduce_375$261 = function $$_reduce_375(val, _values, result) { + $def(self, '$_reduce_382', function $$_reduce_382(val, _values, result) { var self = this; result = self.builder.$restarg(val['$[]'](0)); return result; - }, $Ruby30__reduce_375$261.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_378', $Ruby30__reduce_378$262 = function $$_reduce_378(val, _values, result) { - var self = this; + $def(self, '$_reduce_385', function $$_reduce_385(val, _values, result) { + var self = this, $writer = nil; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_386', function $$_reduce_386(val, _values, result) { + + + result = val['$[]'](1); + return result; + }, 3); + + $def(self, '$_reduce_387', function $$_reduce_387(val, _values, result) { + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_378$262.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_379', $Ruby30__reduce_379$263 = function $$_reduce_379(val, _values, result) { - var self = this; - + $def(self, '$_reduce_388', function $$_reduce_388(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_379$263.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_380', $Ruby30__reduce_380$264 = function $$_reduce_380(val, _values, result) { - var self = this; - + $def(self, '$_reduce_389', function $$_reduce_389(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_380$264.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_381', $Ruby30__reduce_381$265 = function $$_reduce_381(val, _values, result) { - var self = this; - + $def(self, '$_reduce_390', function $$_reduce_390(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_381$265.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_382', $Ruby30__reduce_382$266 = function $$_reduce_382(val, _values, result) { - var self = this; - + $def(self, '$_reduce_391', function $$_reduce_391(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_382$266.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_383', $Ruby30__reduce_383$267 = function $$_reduce_383(val, _values, result) { - var self = this; - + $def(self, '$_reduce_392', function $$_reduce_392(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_383$267.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_385', $Ruby30__reduce_385$268 = function $$_reduce_385(val, _values, result) { - var self = this; - + $def(self, '$_reduce_394', function $$_reduce_394(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_385$268.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_386', $Ruby30__reduce_386$269 = function $$_reduce_386(val, _values, result) { - var self = this; - + $def(self, '$_reduce_395', function $$_reduce_395(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](6)).$concat(val['$[]'](7)); return result; - }, $Ruby30__reduce_386$269.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_387', $Ruby30__reduce_387$270 = function $$_reduce_387(val, _values, result) { - var self = this; - + $def(self, '$_reduce_396', function $$_reduce_396(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_387$270.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_388', $Ruby30__reduce_388$271 = function $$_reduce_388(val, _values, result) { - var self = this; - + $def(self, '$_reduce_397', function $$_reduce_397(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_388$271.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_389', $Ruby30__reduce_389$272 = function $$_reduce_389(val, _values, result) { - var self = this; - + $def(self, '$_reduce_398', function $$_reduce_398(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_389$272.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_391', $Ruby30__reduce_391$273 = function $$_reduce_391(val, _values, result) { - var self = this; - + $def(self, '$_reduce_400', function $$_reduce_400(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_391$273.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_392', $Ruby30__reduce_392$274 = function $$_reduce_392(val, _values, result) { - var self = this, $ret_or_9 = nil; + $def(self, '$_reduce_401', function $$_reduce_401(val, _values, result) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_9 = val['$[]'](1)['$empty?']()))) { - return val['$[]'](0).$size()['$=='](1) - } else { - return $ret_or_9 - }; return nil; })())) { + if (($truthy(val['$[]'](1)['$empty?']()) && ($eqeq(val['$[]'](0).$size(), 1)))) { result = [self.builder.$procarg0(val['$[]'](0)['$[]'](0))] } else { result = val['$[]'](0).$concat(val['$[]'](1)) }; return result; - }, $Ruby30__reduce_392$274.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_393', $Ruby30__reduce_393$275 = function $$_reduce_393(val, _values, result) { - var self = this; - + $def(self, '$_reduce_402', function $$_reduce_402(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_393$275.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_394', $Ruby30__reduce_394$276 = function $$_reduce_394(val, _values, result) { - var self = this; - + $def(self, '$_reduce_403', function $$_reduce_403(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_394$276.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_395', $Ruby30__reduce_395$277 = function $$_reduce_395(val, _values, result) { - var self = this; - + $def(self, '$_reduce_404', function $$_reduce_404(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_395$277.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_396', $Ruby30__reduce_396$278 = function $$_reduce_396(val, _values, result) { - var self = this; - + $def(self, '$_reduce_405', function $$_reduce_405(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_396$278.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_397', $Ruby30__reduce_397$279 = function $$_reduce_397(val, _values, result) { - var self = this; - + $def(self, '$_reduce_406', function $$_reduce_406(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_397$279.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_398', $Ruby30__reduce_398$280 = function $$_reduce_398(val, _values, result) { - var self = this; - + $def(self, '$_reduce_407', function $$_reduce_407(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_398$280.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_400', $Ruby30__reduce_400$281 = function $$_reduce_400(val, _values, result) { + $def(self, '$_reduce_409', function $$_reduce_409(val, _values, result) { var self = this; result = self.builder.$args(nil, [], nil); return result; - }, $Ruby30__reduce_400$281.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_401', $Ruby30__reduce_401$282 = function $$_reduce_401(val, _values, result) { + $def(self, '$_reduce_410', function $$_reduce_410(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_401$282.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_402', $Ruby30__reduce_402$283 = function $$_reduce_402(val, _values, result) { - var self = this; + $def(self, '$_reduce_411', function $$_reduce_411(val, _values, result) { + var self = this, $writer = nil; self.max_numparam_stack['$has_ordinary_params!'](); self.current_arg_stack.$set(nil); + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_402$283.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_403', $Ruby30__reduce_403$284 = function $$_reduce_403(val, _values, result) { - var self = this; + $def(self, '$_reduce_412', function $$_reduce_412(val, _values, result) { + var self = this, $writer = nil; self.max_numparam_stack['$has_ordinary_params!'](); self.current_arg_stack.$set(nil); + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$args(val['$[]'](0), val['$[]'](1).$concat(val['$[]'](2)), val['$[]'](3)); return result; - }, $Ruby30__reduce_403$284.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_404', $Ruby30__reduce_404$285 = function $$_reduce_404(val, _values, result) { - var self = this; - + $def(self, '$_reduce_413', function $$_reduce_413(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_404$285.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_405', $Ruby30__reduce_405$286 = function $$_reduce_405(val, _values, result) { - var self = this; - + $def(self, '$_reduce_414', function $$_reduce_414(val, _values, result) { + result = val['$[]'](2); return result; - }, $Ruby30__reduce_405$286.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_406', $Ruby30__reduce_406$287 = function $$_reduce_406(val, _values, result) { - var self = this; - + $def(self, '$_reduce_415', function $$_reduce_415(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_406$287.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_407', $Ruby30__reduce_407$288 = function $$_reduce_407(val, _values, result) { - var self = this; - + $def(self, '$_reduce_416', function $$_reduce_416(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_407$288.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_408', $Ruby30__reduce_408$289 = function $$_reduce_408(val, _values, result) { + $def(self, '$_reduce_417', function $$_reduce_417(val, _values, result) { var self = this; self.static_env.$declare(val['$[]'](0)['$[]'](0)); result = self.builder.$shadowarg(val['$[]'](0)); return result; - }, $Ruby30__reduce_408$289.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_410', $Ruby30__reduce_410$290 = function $$_reduce_410(val, _values, result) { + $def(self, '$_reduce_419', function $$_reduce_419(val, _values, result) { var self = this, $writer = nil; @@ -26643,393 +23474,389 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_410$290.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_411', $Ruby30__reduce_411$291 = function $$_reduce_411(val, _values, result) { + $def(self, '$_reduce_420', function $$_reduce_420(val, _values, result) { var self = this; self.lexer.$cmdarg().$push(false); return result; - }, $Ruby30__reduce_411$291.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_412', $Ruby30__reduce_412$292 = function $$_reduce_412(val, _values, result) { + $def(self, '$_reduce_421', function $$_reduce_421(val, _values, result) { var $a, $b, self = this, lambda_call = nil, args = nil, begin_t = nil, body = nil, end_t = nil, $writer = nil; lambda_call = self.builder.$call_lambda(val['$[]'](0)); - args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { - return self.builder.$numargs(self.max_numparam_stack.$top()) - } else { - return val['$[]'](2) - }; return nil; })(); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + args = ($truthy(self.max_numparam_stack['$has_numparams?']()) ? (self.builder.$numargs(self.max_numparam_stack.$top())) : (val['$[]'](2))); + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; self.max_numparam_stack.$pop(); self.static_env.$unextend(); self.lexer.$cmdarg().$pop(); $writer = [val['$[]'](1).$in_lambda()]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$block(lambda_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_412$292.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_413', $Ruby30__reduce_413$293 = function $$_reduce_413(val, _values, result) { - var self = this; + $def(self, '$_reduce_422', function $$_reduce_422(val, _values, result) { + var self = this, $writer = nil; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; self.max_numparam_stack['$has_ordinary_params!'](); result = self.builder.$args(val['$[]'](0), val['$[]'](1).$concat(val['$[]'](2)), val['$[]'](3)); return result; - }, $Ruby30__reduce_413$293.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_414', $Ruby30__reduce_414$294 = function $$_reduce_414(val, _values, result) { - var self = this; + $def(self, '$_reduce_423', function $$_reduce_423(val, _values, result) { + var self = this, $writer = nil; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; if ($truthy(val['$[]'](0)['$any?']())) { - self.max_numparam_stack['$has_ordinary_params!']()}; + self.max_numparam_stack['$has_ordinary_params!']() + }; result = self.builder.$args(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_414$294.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_415', $Ruby30__reduce_415$295 = function $$_reduce_415(val, _values, result) { + $def(self, '$_reduce_424', function $$_reduce_424(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_415$295.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_416', $Ruby30__reduce_416$296 = function $$_reduce_416(val, _values, result) { + $def(self, '$_reduce_425', function $$_reduce_425(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; $writer = [val['$[]'](1).$in_lambda()]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; return result; - }, $Ruby30__reduce_416$296.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_417', $Ruby30__reduce_417$297 = function $$_reduce_417(val, _values, result) { + $def(self, '$_reduce_426', function $$_reduce_426(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_417$297.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_418', $Ruby30__reduce_418$298 = function $$_reduce_418(val, _values, result) { + $def(self, '$_reduce_427', function $$_reduce_427(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; $writer = [val['$[]'](1).$in_lambda()]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; return result; - }, $Ruby30__reduce_418$298.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_419', $Ruby30__reduce_419$299 = function $$_reduce_419(val, _values, result) { + $def(self, '$_reduce_428', function $$_reduce_428(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_419$299.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_420', $Ruby30__reduce_420$300 = function $$_reduce_420(val, _values, result) { + $def(self, '$_reduce_429', function $$_reduce_429(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); $writer = [val['$[]'](1).$in_block()]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3)]); return result; - }, $Ruby30__reduce_420$300.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_421', $Ruby30__reduce_421$301 = function $$_reduce_421(val, _values, result) { + $def(self, '$_reduce_430', function $$_reduce_430(val, _values, result) { var $a, $b, self = this, begin_t = nil, block_args = nil, body = nil, end_t = nil; - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (block_args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (block_args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(val['$[]'](0), begin_t, block_args, body, end_t); return result; - }, $Ruby30__reduce_421$301.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_422', $Ruby30__reduce_422$302 = function $$_reduce_422(val, _values, result) { + $def(self, '$_reduce_431', function $$_reduce_431(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_422$302.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_423', $Ruby30__reduce_423$303 = function $$_reduce_423(val, _values, result) { + $def(self, '$_reduce_432', function $$_reduce_432(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil, method_call = nil, begin_t = nil, body = nil, end_t = nil; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_423$303.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_424', $Ruby30__reduce_424$304 = function $$_reduce_424(val, _values, result) { + $def(self, '$_reduce_433', function $$_reduce_433(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_424$304.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_425', $Ruby30__reduce_425$305 = function $$_reduce_425(val, _values, result) { + $def(self, '$_reduce_434', function $$_reduce_434(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](1), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(nil, nil, val['$[]'](0), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_425$305.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_426', $Ruby30__reduce_426$306 = function $$_reduce_426(val, _values, result) { + $def(self, '$_reduce_435', function $$_reduce_435(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_426$306.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_427', $Ruby30__reduce_427$307 = function $$_reduce_427(val, _values, result) { + $def(self, '$_reduce_436', function $$_reduce_436(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_427$307.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_428', $Ruby30__reduce_428$308 = function $$_reduce_428(val, _values, result) { + $def(self, '$_reduce_437', function $$_reduce_437(val, _values, result) { var self = this; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_428$308.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_429', $Ruby30__reduce_429$309 = function $$_reduce_429(val, _values, result) { + $def(self, '$_reduce_438', function $$_reduce_438(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](2), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](2), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), nil, lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_429$309.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_430', $Ruby30__reduce_430$310 = function $$_reduce_430(val, _values, result) { + $def(self, '$_reduce_439', function $$_reduce_439(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](2), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](2), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), nil, lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_430$310.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_431', $Ruby30__reduce_431$311 = function $$_reduce_431(val, _values, result) { + $def(self, '$_reduce_440', function $$_reduce_440(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](1), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$keyword_cmd("super", val['$[]'](0), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_431$311.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_432', $Ruby30__reduce_432$312 = function $$_reduce_432(val, _values, result) { + $def(self, '$_reduce_441', function $$_reduce_441(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("zsuper", val['$[]'](0)); return result; - }, $Ruby30__reduce_432$312.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_433', $Ruby30__reduce_433$313 = function $$_reduce_433(val, _values, result) { + $def(self, '$_reduce_442', function $$_reduce_442(val, _values, result) { var self = this; result = self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_433$313.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_434', $Ruby30__reduce_434$314 = function $$_reduce_434(val, _values, result) { + $def(self, '$_reduce_443', function $$_reduce_443(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_434$314.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_435', $Ruby30__reduce_435$315 = function $$_reduce_435(val, _values, result) { + $def(self, '$_reduce_444', function $$_reduce_444(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); $writer = [val['$[]'](1).$in_block()]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3)]); return result; - }, $Ruby30__reduce_435$315.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_436', $Ruby30__reduce_436$316 = function $$_reduce_436(val, _values, result) { + $def(self, '$_reduce_445', function $$_reduce_445(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_436$316.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_437', $Ruby30__reduce_437$317 = function $$_reduce_437(val, _values, result) { + $def(self, '$_reduce_446', function $$_reduce_446(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); $writer = [val['$[]'](1).$in_block()]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3)]); return result; - }, $Ruby30__reduce_437$317.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_438', $Ruby30__reduce_438$318 = function $$_reduce_438(val, _values, result) { + $def(self, '$_reduce_447', function $$_reduce_447(val, _values, result) { var self = this; self.static_env.$extend_dynamic(); self.max_numparam_stack.$push($hash2(["static"], {"static": false})); return result; - }, $Ruby30__reduce_438$318.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_439', $Ruby30__reduce_439$319 = function $$_reduce_439(val, _values, result) { + $def(self, '$_reduce_448', function $$_reduce_448(val, _values, result) { var self = this, args = nil; - args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { - return self.builder.$numargs(self.max_numparam_stack.$top()) - } else { - return val['$[]'](1) - }; return nil; })(); + args = ($truthy(self.max_numparam_stack['$has_numparams?']()) ? (self.builder.$numargs(self.max_numparam_stack.$top())) : (val['$[]'](1))); result = [args, val['$[]'](2)]; self.max_numparam_stack.$pop(); self.static_env.$unextend(); return result; - }, $Ruby30__reduce_439$319.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_440', $Ruby30__reduce_440$320 = function $$_reduce_440(val, _values, result) { + $def(self, '$_reduce_449', function $$_reduce_449(val, _values, result) { var self = this; self.static_env.$extend_dynamic(); self.max_numparam_stack.$push($hash2(["static"], {"static": false})); return result; - }, $Ruby30__reduce_440$320.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_441', $Ruby30__reduce_441$321 = function $$_reduce_441(val, _values, result) { + $def(self, '$_reduce_450', function $$_reduce_450(val, _values, result) { var self = this; self.lexer.$cmdarg().$push(false); return result; - }, $Ruby30__reduce_441$321.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_442', $Ruby30__reduce_442$322 = function $$_reduce_442(val, _values, result) { + $def(self, '$_reduce_451', function $$_reduce_451(val, _values, result) { var self = this, args = nil; - args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { - return self.builder.$numargs(self.max_numparam_stack.$top()) - } else { - return val['$[]'](2) - }; return nil; })(); + args = ($truthy(self.max_numparam_stack['$has_numparams?']()) ? (self.builder.$numargs(self.max_numparam_stack.$top())) : (val['$[]'](2))); result = [args, val['$[]'](3)]; self.max_numparam_stack.$pop(); self.static_env.$unextend(); self.lexer.$cmdarg().$pop(); return result; - }, $Ruby30__reduce_442$322.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_443', $Ruby30__reduce_443$323 = function $$_reduce_443(val, _values, result) { + $def(self, '$_reduce_452', function $$_reduce_452(val, _values, result) { var self = this; - result = [self.builder.$when(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3))].concat(Opal.to_a(val['$[]'](4))); + result = [self.builder.$when(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3))].concat($to_a(val['$[]'](4))); return result; - }, $Ruby30__reduce_443$323.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_444', $Ruby30__reduce_444$324 = function $$_reduce_444(val, _values, result) { - var self = this; - + $def(self, '$_reduce_453', function $$_reduce_453(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_444$324.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_446', $Ruby30__reduce_446$325 = function $$_reduce_446(val, _values, result) { + $def(self, '$_reduce_455', function $$_reduce_455(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_beg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $send(self.lexer, 'command_start=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.pattern_variables.$push(); self.pattern_hash_keys.$push(); result = self.context.$in_kwarg(); $writer = [true]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_446$325.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_447', $Ruby30__reduce_447$326 = function $$_reduce_447(val, _values, result) { + $def(self, '$_reduce_456', function $$_reduce_456(val, _values, result) { var self = this, $writer = nil; @@ -27037,127 +23864,125 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.pattern_hash_keys.$pop(); $writer = [val['$[]'](1)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_447$326.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_448', $Ruby30__reduce_448$327 = function $$_reduce_448(val, _values, result) { + $def(self, '$_reduce_457', function $$_reduce_457(val, _values, result) { var self = this; - result = [$send(self.builder, 'in_pattern', [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3), val['$[]'](5)]))].concat(Opal.to_a(val['$[]'](6))); + result = [$send(self.builder, 'in_pattern', [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3), val['$[]'](5)]))].concat($to_a(val['$[]'](6))); return result; - }, $Ruby30__reduce_448$327.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_449', $Ruby30__reduce_449$328 = function $$_reduce_449(val, _values, result) { - var self = this; - + $def(self, '$_reduce_458', function $$_reduce_458(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_449$328.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_451', $Ruby30__reduce_451$329 = function $$_reduce_451(val, _values, result) { - var self = this; - + $def(self, '$_reduce_460', function $$_reduce_460(val, _values, result) { + result = [val['$[]'](0), nil]; return result; - }, $Ruby30__reduce_451$329.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_452', $Ruby30__reduce_452$330 = function $$_reduce_452(val, _values, result) { + $def(self, '$_reduce_461', function $$_reduce_461(val, _values, result) { var self = this; result = [val['$[]'](0), self.builder.$if_guard(val['$[]'](1), val['$[]'](2))]; return result; - }, $Ruby30__reduce_452$330.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_453', $Ruby30__reduce_453$331 = function $$_reduce_453(val, _values, result) { + $def(self, '$_reduce_462', function $$_reduce_462(val, _values, result) { var self = this; result = [val['$[]'](0), self.builder.$unless_guard(val['$[]'](1), val['$[]'](2))]; return result; - }, $Ruby30__reduce_453$331.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_455', $Ruby30__reduce_455$332 = function $$_reduce_455(val, _values, result) { + $def(self, '$_reduce_464', function $$_reduce_464(val, _values, result) { var self = this, item = nil; item = self.builder.$match_with_trailing_comma(val['$[]'](0), val['$[]'](1)); result = self.builder.$array_pattern(nil, [item], nil); return result; - }, $Ruby30__reduce_455$332.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_456', $Ruby30__reduce_456$333 = function $$_reduce_456(val, _values, result) { + $def(self, '$_reduce_465', function $$_reduce_465(val, _values, result) { var self = this; result = self.builder.$array_pattern(nil, [val['$[]'](0)].$concat(val['$[]'](2)), nil); return result; - }, $Ruby30__reduce_456$333.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_457', $Ruby30__reduce_457$334 = function $$_reduce_457(val, _values, result) { + $def(self, '$_reduce_466', function $$_reduce_466(val, _values, result) { var self = this; result = self.builder.$find_pattern(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_457$334.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_458', $Ruby30__reduce_458$335 = function $$_reduce_458(val, _values, result) { + $def(self, '$_reduce_467', function $$_reduce_467(val, _values, result) { var self = this; result = self.builder.$array_pattern(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_458$335.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_459', $Ruby30__reduce_459$336 = function $$_reduce_459(val, _values, result) { + $def(self, '$_reduce_468', function $$_reduce_468(val, _values, result) { var self = this; result = self.builder.$hash_pattern(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_459$336.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_461', $Ruby30__reduce_461$337 = function $$_reduce_461(val, _values, result) { + $def(self, '$_reduce_470', function $$_reduce_470(val, _values, result) { var self = this; result = self.builder.$match_as(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_461$337.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_463', $Ruby30__reduce_463$338 = function $$_reduce_463(val, _values, result) { + $def(self, '$_reduce_472', function $$_reduce_472(val, _values, result) { var self = this; result = self.builder.$match_alt(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_463$338.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_465', $Ruby30__reduce_465$339 = function $$_reduce_465(val, _values, result) { + $def(self, '$_reduce_474', function $$_reduce_474(val, _values, result) { var self = this; result = val['$[]'](0); self.pattern_hash_keys.$push(); return result; - }, $Ruby30__reduce_465$339.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_466', $Ruby30__reduce_466$340 = function $$_reduce_466(val, _values, result) { + $def(self, '$_reduce_475', function $$_reduce_475(val, _values, result) { var self = this; result = val['$[]'](0); self.pattern_hash_keys.$push(); return result; - }, $Ruby30__reduce_466$340.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_468', $Ruby30__reduce_468$341 = function $$_reduce_468(val, _values, result) { + $def(self, '$_reduce_478', function $$_reduce_478(val, _values, result) { var self = this, pattern = nil; @@ -27165,9 +23990,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$array_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_468$341.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_469', $Ruby30__reduce_469$342 = function $$_reduce_469(val, _values, result) { + $def(self, '$_reduce_479', function $$_reduce_479(val, _values, result) { var self = this, pattern = nil; @@ -27175,9 +24000,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$find_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_469$342.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_470', $Ruby30__reduce_470$343 = function $$_reduce_470(val, _values, result) { + $def(self, '$_reduce_480', function $$_reduce_480(val, _values, result) { var self = this, pattern = nil; @@ -27185,18 +24010,18 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$hash_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_470$343.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_471', $Ruby30__reduce_471$344 = function $$_reduce_471(val, _values, result) { + $def(self, '$_reduce_481', function $$_reduce_481(val, _values, result) { var self = this, pattern = nil; pattern = self.builder.$array_pattern(val['$[]'](1), nil, val['$[]'](2)); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](2)); return result; - }, $Ruby30__reduce_471$344.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_472', $Ruby30__reduce_472$345 = function $$_reduce_472(val, _values, result) { + $def(self, '$_reduce_482', function $$_reduce_482(val, _values, result) { var self = this, pattern = nil; @@ -27204,9 +24029,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$array_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_472$345.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_473', $Ruby30__reduce_473$346 = function $$_reduce_473(val, _values, result) { + $def(self, '$_reduce_483', function $$_reduce_483(val, _values, result) { var self = this, pattern = nil; @@ -27214,9 +24039,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$find_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_473$346.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_474', $Ruby30__reduce_474$347 = function $$_reduce_474(val, _values, result) { + $def(self, '$_reduce_484', function $$_reduce_484(val, _values, result) { var self = this, pattern = nil; @@ -27224,42 +24049,42 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$hash_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_474$347.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_475', $Ruby30__reduce_475$348 = function $$_reduce_475(val, _values, result) { + $def(self, '$_reduce_485', function $$_reduce_485(val, _values, result) { var self = this, pattern = nil; pattern = self.builder.$array_pattern(val['$[]'](1), nil, val['$[]'](2)); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](2)); return result; - }, $Ruby30__reduce_475$348.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_476', $Ruby30__reduce_476$349 = function $$_reduce_476(val, _values, result) { + $def(self, '$_reduce_486', function $$_reduce_486(val, _values, result) { var self = this; result = self.builder.$array_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_476$349.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_477', $Ruby30__reduce_477$350 = function $$_reduce_477(val, _values, result) { + $def(self, '$_reduce_487', function $$_reduce_487(val, _values, result) { var self = this; result = self.builder.$find_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_477$350.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_478', $Ruby30__reduce_478$351 = function $$_reduce_478(val, _values, result) { + $def(self, '$_reduce_488', function $$_reduce_488(val, _values, result) { var self = this; result = self.builder.$array_pattern(val['$[]'](0), [], val['$[]'](1)); return result; - }, $Ruby30__reduce_478$351.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_479', $Ruby30__reduce_479$352 = function $$_reduce_479(val, _values, result) { + $def(self, '$_reduce_489', function $$_reduce_489(val, _values, result) { var self = this, $writer = nil; @@ -27267,684 +24092,667 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = self.context.$in_kwarg(); $writer = [false]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_479$352.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_480', $Ruby30__reduce_480$353 = function $$_reduce_480(val, _values, result) { + $def(self, '$_reduce_490', function $$_reduce_490(val, _values, result) { var self = this, $writer = nil; self.pattern_hash_keys.$pop(); $writer = [val['$[]'](1)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$hash_pattern(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_480$353.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_481', $Ruby30__reduce_481$354 = function $$_reduce_481(val, _values, result) { + $def(self, '$_reduce_491', function $$_reduce_491(val, _values, result) { var self = this; result = self.builder.$hash_pattern(val['$[]'](0), [], val['$[]'](1)); return result; - }, $Ruby30__reduce_481$354.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_482', $Ruby30__reduce_482$355 = function $$_reduce_482(val, _values, result) { + $def(self, '$_reduce_492', function $$_reduce_492(val, _values, result) { var self = this; self.pattern_hash_keys.$push(); return result; - }, $Ruby30__reduce_482$355.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_483', $Ruby30__reduce_483$356 = function $$_reduce_483(val, _values, result) { + $def(self, '$_reduce_493', function $$_reduce_493(val, _values, result) { var self = this; self.pattern_hash_keys.$pop(); result = self.builder.$begin(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_483$356.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_484', $Ruby30__reduce_484$357 = function $$_reduce_484(val, _values, result) { - var self = this; - + $def(self, '$_reduce_494', function $$_reduce_494(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_484$357.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_485', $Ruby30__reduce_485$358 = function $$_reduce_485(val, _values, result) { - var self = this; - + $def(self, '$_reduce_495', function $$_reduce_495(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_485$358.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_486', $Ruby30__reduce_486$359 = function $$_reduce_486(val, _values, result) { - var self = this; - + $def(self, '$_reduce_496', function $$_reduce_496(val, _values, result) { + - result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](1)]); + result = [].concat($to_a(val['$[]'](0))).concat([val['$[]'](1)]); return result; - }, $Ruby30__reduce_486$359.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_487', $Ruby30__reduce_487$360 = function $$_reduce_487(val, _values, result) { + $def(self, '$_reduce_497', function $$_reduce_497(val, _values, result) { var self = this, match_rest = nil; match_rest = self.builder.$match_rest(val['$[]'](1), val['$[]'](2)); - result = [].concat(Opal.to_a(val['$[]'](0))).concat([match_rest]); + result = [].concat($to_a(val['$[]'](0))).concat([match_rest]); return result; - }, $Ruby30__reduce_487$360.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_488', $Ruby30__reduce_488$361 = function $$_reduce_488(val, _values, result) { + $def(self, '$_reduce_498', function $$_reduce_498(val, _values, result) { var self = this, match_rest = nil; match_rest = self.builder.$match_rest(val['$[]'](1), val['$[]'](2)); - result = [].concat(Opal.to_a(val['$[]'](0))).concat([match_rest]).concat(Opal.to_a(val['$[]'](4))); + result = [].concat($to_a(val['$[]'](0))).concat([match_rest]).concat($to_a(val['$[]'](4))); return result; - }, $Ruby30__reduce_488$361.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_489', $Ruby30__reduce_489$362 = function $$_reduce_489(val, _values, result) { + $def(self, '$_reduce_499', function $$_reduce_499(val, _values, result) { var self = this; - result = [].concat(Opal.to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]); + result = [].concat($to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]); return result; - }, $Ruby30__reduce_489$362.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_490', $Ruby30__reduce_490$363 = function $$_reduce_490(val, _values, result) { + $def(self, '$_reduce_500', function $$_reduce_500(val, _values, result) { var self = this; - result = [].concat(Opal.to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]).concat(Opal.to_a(val['$[]'](3))); + result = [].concat($to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]).concat($to_a(val['$[]'](3))); return result; - }, $Ruby30__reduce_490$363.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_492', $Ruby30__reduce_492$364 = function $$_reduce_492(val, _values, result) { + $def(self, '$_reduce_502', function $$_reduce_502(val, _values, result) { var self = this, item = nil; item = self.builder.$match_with_trailing_comma(val['$[]'](0), val['$[]'](1)); result = [item]; return result; - }, $Ruby30__reduce_492$364.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_493', $Ruby30__reduce_493$365 = function $$_reduce_493(val, _values, result) { + $def(self, '$_reduce_503', function $$_reduce_503(val, _values, result) { var self = this, last_item = nil; last_item = self.builder.$match_with_trailing_comma(val['$[]'](1), val['$[]'](2)); - result = [].concat(Opal.to_a(val['$[]'](0))).concat([last_item]); + result = [].concat($to_a(val['$[]'](0))).concat([last_item]); return result; - }, $Ruby30__reduce_493$365.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_494', $Ruby30__reduce_494$366 = function $$_reduce_494(val, _values, result) { - var self = this; - + $def(self, '$_reduce_504', function $$_reduce_504(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_494$366.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_495', $Ruby30__reduce_495$367 = function $$_reduce_495(val, _values, result) { - var self = this; - + $def(self, '$_reduce_505', function $$_reduce_505(val, _values, result) { + - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))); + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))); return result; - }, $Ruby30__reduce_495$367.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_496', $Ruby30__reduce_496$368 = function $$_reduce_496(val, _values, result) { - var self = this; - + $def(self, '$_reduce_506', function $$_reduce_506(val, _values, result) { - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](4)]); + + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](4)]); return result; - }, $Ruby30__reduce_496$368.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_497', $Ruby30__reduce_497$369 = function $$_reduce_497(val, _values, result) { + $def(self, '$_reduce_507', function $$_reduce_507(val, _values, result) { var self = this; result = self.builder.$match_rest(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_497$369.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_498', $Ruby30__reduce_498$370 = function $$_reduce_498(val, _values, result) { + $def(self, '$_reduce_508', function $$_reduce_508(val, _values, result) { var self = this; result = self.builder.$match_rest(val['$[]'](0)); return result; - }, $Ruby30__reduce_498$370.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_499', $Ruby30__reduce_499$371 = function $$_reduce_499(val, _values, result) { - var self = this; - + $def(self, '$_reduce_509', function $$_reduce_509(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_499$371.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_500', $Ruby30__reduce_500$372 = function $$_reduce_500(val, _values, result) { - var self = this; - + $def(self, '$_reduce_510', function $$_reduce_510(val, _values, result) { - result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](2)]); + + result = [].concat($to_a(val['$[]'](0))).concat([val['$[]'](2)]); return result; - }, $Ruby30__reduce_500$372.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_502', $Ruby30__reduce_502$373 = function $$_reduce_502(val, _values, result) { - var self = this; - + $def(self, '$_reduce_512', function $$_reduce_512(val, _values, result) { + - result = [].concat(Opal.to_a(val['$[]'](0))).concat(Opal.to_a(val['$[]'](2))); + result = [].concat($to_a(val['$[]'](0))).concat($to_a(val['$[]'](2))); return result; - }, $Ruby30__reduce_502$373.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_503', $Ruby30__reduce_503$374 = function $$_reduce_503(val, _values, result) { - var self = this; - + $def(self, '$_reduce_513', function $$_reduce_513(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_503$374.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_504', $Ruby30__reduce_504$375 = function $$_reduce_504(val, _values, result) { - var self = this; - + $def(self, '$_reduce_514', function $$_reduce_514(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_504$375.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_505', $Ruby30__reduce_505$376 = function $$_reduce_505(val, _values, result) { - var self = this; - + $def(self, '$_reduce_515', function $$_reduce_515(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_505$376.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_506', $Ruby30__reduce_506$377 = function $$_reduce_506(val, _values, result) { - var self = this; - + $def(self, '$_reduce_516', function $$_reduce_516(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_506$377.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_507', $Ruby30__reduce_507$378 = function $$_reduce_507(val, _values, result) { - var self = this; - + $def(self, '$_reduce_517', function $$_reduce_517(val, _values, result) { - result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](2)]); + + result = [].concat($to_a(val['$[]'](0))).concat([val['$[]'](2)]); return result; - }, $Ruby30__reduce_507$378.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_508', $Ruby30__reduce_508$379 = function $$_reduce_508(val, _values, result) { + $def(self, '$_reduce_518', function $$_reduce_518(val, _values, result) { var self = this; - result = $send(self.builder, 'match_pair', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1)])); + result = $send(self.builder, 'match_pair', $to_a(val['$[]'](0)).concat([val['$[]'](1)])); return result; - }, $Ruby30__reduce_508$379.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_509', $Ruby30__reduce_509$380 = function $$_reduce_509(val, _values, result) { + $def(self, '$_reduce_519', function $$_reduce_519(val, _values, result) { var self = this; - result = $send(self.builder, 'match_label', Opal.to_a(val['$[]'](0))); + result = $send(self.builder, 'match_label', $to_a(val['$[]'](0))); return result; - }, $Ruby30__reduce_509$380.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_510', $Ruby30__reduce_510$381 = function $$_reduce_510(val, _values, result) { - var self = this; - + $def(self, '$_reduce_520', function $$_reduce_520(val, _values, result) { + result = ["label", val['$[]'](0)]; return result; - }, $Ruby30__reduce_510$381.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_511', $Ruby30__reduce_511$382 = function $$_reduce_511(val, _values, result) { - var self = this; - + $def(self, '$_reduce_521', function $$_reduce_521(val, _values, result) { + result = ["quoted", [val['$[]'](0), val['$[]'](1), val['$[]'](2)]]; return result; - }, $Ruby30__reduce_511$382.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_512', $Ruby30__reduce_512$383 = function $$_reduce_512(val, _values, result) { + $def(self, '$_reduce_522', function $$_reduce_522(val, _values, result) { var self = this; result = [self.builder.$match_rest(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_512$383.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_513', $Ruby30__reduce_513$384 = function $$_reduce_513(val, _values, result) { + $def(self, '$_reduce_523', function $$_reduce_523(val, _values, result) { var self = this; result = [self.builder.$match_rest(val['$[]'](0), nil)]; return result; - }, $Ruby30__reduce_513$384.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_514', $Ruby30__reduce_514$385 = function $$_reduce_514(val, _values, result) { + $def(self, '$_reduce_524', function $$_reduce_524(val, _values, result) { var self = this; result = [self.builder.$match_nil_pattern(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_514$385.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_518', $Ruby30__reduce_518$386 = function $$_reduce_518(val, _values, result) { + $def(self, '$_reduce_528', function $$_reduce_528(val, _values, result) { var self = this; result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_518$386.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_519', $Ruby30__reduce_519$387 = function $$_reduce_519(val, _values, result) { + $def(self, '$_reduce_529', function $$_reduce_529(val, _values, result) { var self = this; result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_519$387.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_520', $Ruby30__reduce_520$388 = function $$_reduce_520(val, _values, result) { + $def(self, '$_reduce_530', function $$_reduce_530(val, _values, result) { var self = this; result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), nil); return result; - }, $Ruby30__reduce_520$388.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_521', $Ruby30__reduce_521$389 = function $$_reduce_521(val, _values, result) { + $def(self, '$_reduce_531', function $$_reduce_531(val, _values, result) { var self = this; result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), nil); return result; - }, $Ruby30__reduce_521$389.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_525', $Ruby30__reduce_525$390 = function $$_reduce_525(val, _values, result) { + $def(self, '$_reduce_535', function $$_reduce_535(val, _values, result) { var self = this; result = self.builder.$range_inclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_525$390.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_526', $Ruby30__reduce_526$391 = function $$_reduce_526(val, _values, result) { + $def(self, '$_reduce_536', function $$_reduce_536(val, _values, result) { var self = this; result = self.builder.$range_exclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_526$391.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_535', $Ruby30__reduce_535$392 = function $$_reduce_535(val, _values, result) { + $def(self, '$_reduce_545', function $$_reduce_545(val, _values, result) { var self = this; result = self.builder.$accessible(val['$[]'](0)); return result; - }, $Ruby30__reduce_535$392.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_537', $Ruby30__reduce_537$393 = function $$_reduce_537(val, _values, result) { + $def(self, '$_reduce_547', function $$_reduce_547(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$match_var(val['$[]'](0))); return result; - }, $Ruby30__reduce_537$393.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_538', $Ruby30__reduce_538$394 = function $$_reduce_538(val, _values, result) { + $def(self, '$_reduce_548', function $$_reduce_548(val, _values, result) { var self = this, name = nil, lvar = nil; name = val['$[]'](1)['$[]'](0); - if ($truthy(self.$static_env()['$declared?'](name))) { - } else { + if (!$truthy(self.$static_env()['$declared?'](name))) { self.$diagnostic("error", "undefined_lvar", $hash2(["name"], {"name": name}), val['$[]'](1)) }; lvar = self.builder.$accessible(self.builder.$ident(val['$[]'](1))); result = self.builder.$pin(val['$[]'](0), lvar); return result; - }, $Ruby30__reduce_538$394.$$arity = 3); + }, 3); + + $def(self, '$_reduce_549', function $$_reduce_549(val, _values, result) { + var self = this, non_lvar = nil; + + + non_lvar = self.builder.$accessible(val['$[]'](1)); + result = self.builder.$pin(val['$[]'](0), non_lvar); + return result; + }, 3); + + $def(self, '$_reduce_550', function $$_reduce_550(val, _values, result) { + var self = this, expr = nil; + + + expr = self.builder.$begin(val['$[]'](1), val['$[]'](2), val['$[]'](3)); + result = self.builder.$pin(val['$[]'](0), expr); + return result; + }, 3); - Opal.def(self, '$_reduce_539', $Ruby30__reduce_539$395 = function $$_reduce_539(val, _values, result) { + $def(self, '$_reduce_551', function $$_reduce_551(val, _values, result) { var self = this; result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_539$395.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_540', $Ruby30__reduce_540$396 = function $$_reduce_540(val, _values, result) { + $def(self, '$_reduce_552', function $$_reduce_552(val, _values, result) { var self = this; result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_540$396.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_541', $Ruby30__reduce_541$397 = function $$_reduce_541(val, _values, result) { + $def(self, '$_reduce_553', function $$_reduce_553(val, _values, result) { var self = this; result = self.builder.$const(val['$[]'](0)); return result; - }, $Ruby30__reduce_541$397.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_542', $Ruby30__reduce_542$398 = function $$_reduce_542(val, _values, result) { + $def(self, '$_reduce_554', function $$_reduce_554(val, _values, result) { var $a, $b, self = this, assoc_t = nil, exc_var = nil, exc_list = nil; - $b = val['$[]'](2), $a = Opal.to_ary($b), (assoc_t = ($a[0] == null ? nil : $a[0])), (exc_var = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](2), $a = $to_ary($b), (assoc_t = ($a[0] == null ? nil : $a[0])), (exc_var = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(val['$[]'](1))) { - exc_list = self.builder.$array(nil, val['$[]'](1), nil)}; - result = [self.builder.$rescue_body(val['$[]'](0), exc_list, assoc_t, exc_var, val['$[]'](3), val['$[]'](4))].concat(Opal.to_a(val['$[]'](5))); + exc_list = self.builder.$array(nil, val['$[]'](1), nil) + }; + result = [self.builder.$rescue_body(val['$[]'](0), exc_list, assoc_t, exc_var, val['$[]'](3), val['$[]'](4))].concat($to_a(val['$[]'](5))); return result; - }, $Ruby30__reduce_542$398.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_543', $Ruby30__reduce_543$399 = function $$_reduce_543(val, _values, result) { - var self = this; - + $def(self, '$_reduce_555', function $$_reduce_555(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_543$399.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_544', $Ruby30__reduce_544$400 = function $$_reduce_544(val, _values, result) { - var self = this; - + $def(self, '$_reduce_556', function $$_reduce_556(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_544$400.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_547', $Ruby30__reduce_547$401 = function $$_reduce_547(val, _values, result) { - var self = this; - + $def(self, '$_reduce_559', function $$_reduce_559(val, _values, result) { + result = [val['$[]'](0), val['$[]'](1)]; return result; - }, $Ruby30__reduce_547$401.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_549', $Ruby30__reduce_549$402 = function $$_reduce_549(val, _values, result) { - var self = this; - + $def(self, '$_reduce_561', function $$_reduce_561(val, _values, result) { + result = [val['$[]'](0), val['$[]'](1)]; return result; - }, $Ruby30__reduce_549$402.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_553', $Ruby30__reduce_553$403 = function $$_reduce_553(val, _values, result) { + $def(self, '$_reduce_565', function $$_reduce_565(val, _values, result) { var self = this; result = self.builder.$string_compose(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_553$403.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_554', $Ruby30__reduce_554$404 = function $$_reduce_554(val, _values, result) { - var self = this; - + $def(self, '$_reduce_566', function $$_reduce_566(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_554$404.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_555', $Ruby30__reduce_555$405 = function $$_reduce_555(val, _values, result) { - var self = this; - + $def(self, '$_reduce_567', function $$_reduce_567(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_555$405.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_556', $Ruby30__reduce_556$406 = function $$_reduce_556(val, _values, result) { + $def(self, '$_reduce_568', function $$_reduce_568(val, _values, result) { var self = this, string = nil; string = self.builder.$string_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); return result; - }, $Ruby30__reduce_556$406.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_557', $Ruby30__reduce_557$407 = function $$_reduce_557(val, _values, result) { + $def(self, '$_reduce_569', function $$_reduce_569(val, _values, result) { var self = this, string = nil; string = self.builder.$string(val['$[]'](0)); result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); return result; - }, $Ruby30__reduce_557$407.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_558', $Ruby30__reduce_558$408 = function $$_reduce_558(val, _values, result) { + $def(self, '$_reduce_570', function $$_reduce_570(val, _values, result) { var self = this; result = self.builder.$character(val['$[]'](0)); return result; - }, $Ruby30__reduce_558$408.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_559', $Ruby30__reduce_559$409 = function $$_reduce_559(val, _values, result) { + $def(self, '$_reduce_571', function $$_reduce_571(val, _values, result) { var self = this, string = nil; string = self.builder.$xstring_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); return result; - }, $Ruby30__reduce_559$409.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_560', $Ruby30__reduce_560$410 = function $$_reduce_560(val, _values, result) { + $def(self, '$_reduce_572', function $$_reduce_572(val, _values, result) { var self = this, opts = nil; opts = self.builder.$regexp_options(val['$[]'](3)); result = self.builder.$regexp_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2), opts); return result; - }, $Ruby30__reduce_560$410.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_561', $Ruby30__reduce_561$411 = function $$_reduce_561(val, _values, result) { + $def(self, '$_reduce_573', function $$_reduce_573(val, _values, result) { var self = this; result = self.builder.$words_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_561$411.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_562', $Ruby30__reduce_562$412 = function $$_reduce_562(val, _values, result) { - var self = this; - + $def(self, '$_reduce_574', function $$_reduce_574(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_562$412.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_563', $Ruby30__reduce_563$413 = function $$_reduce_563(val, _values, result) { + $def(self, '$_reduce_575', function $$_reduce_575(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$word(val['$[]'](1))); return result; - }, $Ruby30__reduce_563$413.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_564', $Ruby30__reduce_564$414 = function $$_reduce_564(val, _values, result) { - var self = this; - + $def(self, '$_reduce_576', function $$_reduce_576(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_564$414.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_565', $Ruby30__reduce_565$415 = function $$_reduce_565(val, _values, result) { - var self = this; - + $def(self, '$_reduce_577', function $$_reduce_577(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_565$415.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_566', $Ruby30__reduce_566$416 = function $$_reduce_566(val, _values, result) { + $def(self, '$_reduce_578', function $$_reduce_578(val, _values, result) { var self = this; result = self.builder.$symbols_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_566$416.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_567', $Ruby30__reduce_567$417 = function $$_reduce_567(val, _values, result) { - var self = this; - + $def(self, '$_reduce_579', function $$_reduce_579(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_567$417.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_568', $Ruby30__reduce_568$418 = function $$_reduce_568(val, _values, result) { + $def(self, '$_reduce_580', function $$_reduce_580(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$word(val['$[]'](1))); return result; - }, $Ruby30__reduce_568$418.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_569', $Ruby30__reduce_569$419 = function $$_reduce_569(val, _values, result) { + $def(self, '$_reduce_581', function $$_reduce_581(val, _values, result) { var self = this; result = self.builder.$words_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_569$419.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_570', $Ruby30__reduce_570$420 = function $$_reduce_570(val, _values, result) { + $def(self, '$_reduce_582', function $$_reduce_582(val, _values, result) { var self = this; result = self.builder.$symbols_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_570$420.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_571', $Ruby30__reduce_571$421 = function $$_reduce_571(val, _values, result) { - var self = this; - + $def(self, '$_reduce_583', function $$_reduce_583(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_571$421.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_572', $Ruby30__reduce_572$422 = function $$_reduce_572(val, _values, result) { + $def(self, '$_reduce_584', function $$_reduce_584(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$string_internal(val['$[]'](1))); return result; - }, $Ruby30__reduce_572$422.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_573', $Ruby30__reduce_573$423 = function $$_reduce_573(val, _values, result) { - var self = this; - + $def(self, '$_reduce_585', function $$_reduce_585(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_573$423.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_574', $Ruby30__reduce_574$424 = function $$_reduce_574(val, _values, result) { + $def(self, '$_reduce_586', function $$_reduce_586(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$symbol_internal(val['$[]'](1))); return result; - }, $Ruby30__reduce_574$424.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_575', $Ruby30__reduce_575$425 = function $$_reduce_575(val, _values, result) { - var self = this; - + $def(self, '$_reduce_587', function $$_reduce_587(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_575$425.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_576', $Ruby30__reduce_576$426 = function $$_reduce_576(val, _values, result) { - var self = this; - + $def(self, '$_reduce_588', function $$_reduce_588(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_576$426.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_577', $Ruby30__reduce_577$427 = function $$_reduce_577(val, _values, result) { - var self = this; - + $def(self, '$_reduce_589', function $$_reduce_589(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_577$427.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_578', $Ruby30__reduce_578$428 = function $$_reduce_578(val, _values, result) { - var self = this; - + $def(self, '$_reduce_590', function $$_reduce_590(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_578$428.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_579', $Ruby30__reduce_579$429 = function $$_reduce_579(val, _values, result) { - var self = this; - + $def(self, '$_reduce_591', function $$_reduce_591(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_579$429.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_580', $Ruby30__reduce_580$430 = function $$_reduce_580(val, _values, result) { - var self = this; - + $def(self, '$_reduce_592', function $$_reduce_592(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_580$430.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_581', $Ruby30__reduce_581$431 = function $$_reduce_581(val, _values, result) { + $def(self, '$_reduce_593', function $$_reduce_593(val, _values, result) { var self = this; result = self.builder.$string_internal(val['$[]'](0)); return result; - }, $Ruby30__reduce_581$431.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_582', $Ruby30__reduce_582$432 = function $$_reduce_582(val, _values, result) { - var self = this; - + $def(self, '$_reduce_594', function $$_reduce_594(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_582$432.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_583', $Ruby30__reduce_583$433 = function $$_reduce_583(val, _values, result) { + $def(self, '$_reduce_595', function $$_reduce_595(val, _values, result) { var self = this; self.lexer.$cmdarg().$push(false); self.lexer.$cond().$push(false); return result; - }, $Ruby30__reduce_583$433.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_584', $Ruby30__reduce_584$434 = function $$_reduce_584(val, _values, result) { + $def(self, '$_reduce_596', function $$_reduce_596(val, _values, result) { var self = this; @@ -27952,65 +24760,64 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.lexer.$cond().$pop(); result = self.builder.$begin(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_584$434.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_585', $Ruby30__reduce_585$435 = function $$_reduce_585(val, _values, result) { + $def(self, '$_reduce_597', function $$_reduce_597(val, _values, result) { var self = this; result = self.builder.$gvar(val['$[]'](0)); return result; - }, $Ruby30__reduce_585$435.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_586', $Ruby30__reduce_586$436 = function $$_reduce_586(val, _values, result) { + $def(self, '$_reduce_598', function $$_reduce_598(val, _values, result) { var self = this; result = self.builder.$ivar(val['$[]'](0)); return result; - }, $Ruby30__reduce_586$436.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_587', $Ruby30__reduce_587$437 = function $$_reduce_587(val, _values, result) { + $def(self, '$_reduce_599', function $$_reduce_599(val, _values, result) { var self = this; result = self.builder.$cvar(val['$[]'](0)); return result; - }, $Ruby30__reduce_587$437.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_591', $Ruby30__reduce_591$438 = function $$_reduce_591(val, _values, result) { + $def(self, '$_reduce_603', function $$_reduce_603(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$symbol(val['$[]'](0)); return result; - }, $Ruby30__reduce_591$438.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_592', $Ruby30__reduce_592$439 = function $$_reduce_592(val, _values, result) { + $def(self, '$_reduce_604', function $$_reduce_604(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$symbol_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_592$439.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_593', $Ruby30__reduce_593$440 = function $$_reduce_593(val, _values, result) { - var self = this; - + $def(self, '$_reduce_605', function $$_reduce_605(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_593$440.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_594', $Ruby30__reduce_594$441 = function $$_reduce_594(val, _values, result) { + $def(self, '$_reduce_606', function $$_reduce_606(val, _values, result) { var self = this; @@ -28020,503 +24827,505 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = self.builder.$unary_num(val['$[]'](0), val['$[]'](1)) }; return result; - }, $Ruby30__reduce_594$441.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_595', $Ruby30__reduce_595$442 = function $$_reduce_595(val, _values, result) { + $def(self, '$_reduce_607', function $$_reduce_607(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$integer(val['$[]'](0)); return result; - }, $Ruby30__reduce_595$442.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_596', $Ruby30__reduce_596$443 = function $$_reduce_596(val, _values, result) { + $def(self, '$_reduce_608', function $$_reduce_608(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$float(val['$[]'](0)); return result; - }, $Ruby30__reduce_596$443.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_597', $Ruby30__reduce_597$444 = function $$_reduce_597(val, _values, result) { + $def(self, '$_reduce_609', function $$_reduce_609(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$rational(val['$[]'](0)); return result; - }, $Ruby30__reduce_597$444.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_598', $Ruby30__reduce_598$445 = function $$_reduce_598(val, _values, result) { + $def(self, '$_reduce_610', function $$_reduce_610(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$complex(val['$[]'](0)); return result; - }, $Ruby30__reduce_598$445.$$arity = 3); + }, 3); + + $def(self, '$_reduce_611', function $$_reduce_611(val, _values, result) { + var self = this; + + + result = self.builder.$ivar(val['$[]'](0)); + return result; + }, 3); + + $def(self, '$_reduce_612', function $$_reduce_612(val, _values, result) { + var self = this; + + + result = self.builder.$gvar(val['$[]'](0)); + return result; + }, 3); + + $def(self, '$_reduce_613', function $$_reduce_613(val, _values, result) { + var self = this; + + + result = self.builder.$cvar(val['$[]'](0)); + return result; + }, 3); - Opal.def(self, '$_reduce_599', $Ruby30__reduce_599$446 = function $$_reduce_599(val, _values, result) { + $def(self, '$_reduce_614', function $$_reduce_614(val, _values, result) { var self = this; result = self.builder.$ident(val['$[]'](0)); return result; - }, $Ruby30__reduce_599$446.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_600', $Ruby30__reduce_600$447 = function $$_reduce_600(val, _values, result) { + $def(self, '$_reduce_615', function $$_reduce_615(val, _values, result) { var self = this; result = self.builder.$ivar(val['$[]'](0)); return result; - }, $Ruby30__reduce_600$447.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_601', $Ruby30__reduce_601$448 = function $$_reduce_601(val, _values, result) { + $def(self, '$_reduce_616', function $$_reduce_616(val, _values, result) { var self = this; result = self.builder.$gvar(val['$[]'](0)); return result; - }, $Ruby30__reduce_601$448.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_602', $Ruby30__reduce_602$449 = function $$_reduce_602(val, _values, result) { + $def(self, '$_reduce_617', function $$_reduce_617(val, _values, result) { var self = this; result = self.builder.$const(val['$[]'](0)); return result; - }, $Ruby30__reduce_602$449.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_603', $Ruby30__reduce_603$450 = function $$_reduce_603(val, _values, result) { + $def(self, '$_reduce_618', function $$_reduce_618(val, _values, result) { var self = this; result = self.builder.$cvar(val['$[]'](0)); return result; - }, $Ruby30__reduce_603$450.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_604', $Ruby30__reduce_604$451 = function $$_reduce_604(val, _values, result) { + $def(self, '$_reduce_619', function $$_reduce_619(val, _values, result) { var self = this; result = self.builder.$nil(val['$[]'](0)); return result; - }, $Ruby30__reduce_604$451.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_605', $Ruby30__reduce_605$452 = function $$_reduce_605(val, _values, result) { + $def(self, '$_reduce_620', function $$_reduce_620(val, _values, result) { var self = this; result = self.builder.$self(val['$[]'](0)); return result; - }, $Ruby30__reduce_605$452.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_606', $Ruby30__reduce_606$453 = function $$_reduce_606(val, _values, result) { + $def(self, '$_reduce_621', function $$_reduce_621(val, _values, result) { var self = this; result = self.builder.$true(val['$[]'](0)); return result; - }, $Ruby30__reduce_606$453.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_607', $Ruby30__reduce_607$454 = function $$_reduce_607(val, _values, result) { + $def(self, '$_reduce_622', function $$_reduce_622(val, _values, result) { var self = this; result = self.builder.$false(val['$[]'](0)); return result; - }, $Ruby30__reduce_607$454.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_608', $Ruby30__reduce_608$455 = function $$_reduce_608(val, _values, result) { + $def(self, '$_reduce_623', function $$_reduce_623(val, _values, result) { var self = this; result = self.builder.$__FILE__(val['$[]'](0)); return result; - }, $Ruby30__reduce_608$455.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_609', $Ruby30__reduce_609$456 = function $$_reduce_609(val, _values, result) { + $def(self, '$_reduce_624', function $$_reduce_624(val, _values, result) { var self = this; result = self.builder.$__LINE__(val['$[]'](0)); return result; - }, $Ruby30__reduce_609$456.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_610', $Ruby30__reduce_610$457 = function $$_reduce_610(val, _values, result) { + $def(self, '$_reduce_625', function $$_reduce_625(val, _values, result) { var self = this; result = self.builder.$__ENCODING__(val['$[]'](0)); return result; - }, $Ruby30__reduce_610$457.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_611', $Ruby30__reduce_611$458 = function $$_reduce_611(val, _values, result) { + $def(self, '$_reduce_626', function $$_reduce_626(val, _values, result) { var self = this; result = self.builder.$accessible(val['$[]'](0)); return result; - }, $Ruby30__reduce_611$458.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_612', $Ruby30__reduce_612$459 = function $$_reduce_612(val, _values, result) { + $def(self, '$_reduce_627', function $$_reduce_627(val, _values, result) { var self = this; result = self.builder.$accessible(val['$[]'](0)); return result; - }, $Ruby30__reduce_612$459.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_613', $Ruby30__reduce_613$460 = function $$_reduce_613(val, _values, result) { + $def(self, '$_reduce_628', function $$_reduce_628(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_613$460.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_614', $Ruby30__reduce_614$461 = function $$_reduce_614(val, _values, result) { + $def(self, '$_reduce_629', function $$_reduce_629(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_614$461.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_615', $Ruby30__reduce_615$462 = function $$_reduce_615(val, _values, result) { + $def(self, '$_reduce_630', function $$_reduce_630(val, _values, result) { var self = this; result = self.builder.$nth_ref(val['$[]'](0)); return result; - }, $Ruby30__reduce_615$462.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_616', $Ruby30__reduce_616$463 = function $$_reduce_616(val, _values, result) { + $def(self, '$_reduce_631', function $$_reduce_631(val, _values, result) { var self = this; result = self.builder.$back_ref(val['$[]'](0)); return result; - }, $Ruby30__reduce_616$463.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_617', $Ruby30__reduce_617$464 = function $$_reduce_617(val, _values, result) { + $def(self, '$_reduce_632', function $$_reduce_632(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_617$464.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_618', $Ruby30__reduce_618$465 = function $$_reduce_618(val, _values, result) { - var self = this; - + $def(self, '$_reduce_633', function $$_reduce_633(val, _values, result) { + result = [val['$[]'](0), val['$[]'](2)]; return result; - }, $Ruby30__reduce_618$465.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_619', $Ruby30__reduce_619$466 = function $$_reduce_619(val, _values, result) { - var self = this; - + $def(self, '$_reduce_634', function $$_reduce_634(val, _values, result) { + result = nil; return result; - }, $Ruby30__reduce_619$466.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_621', $Ruby30__reduce_621$467 = function $$_reduce_621(val, _values, result) { - var self = this; + $def(self, '$_reduce_636', function $$_reduce_636(val, _values, result) { + var self = this, $writer = nil; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$args(nil, [], nil); return result; - }, $Ruby30__reduce_621$467.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_622', $Ruby30__reduce_622$468 = function $$_reduce_622(val, _values, result) { + $def(self, '$_reduce_637', function $$_reduce_637(val, _values, result) { var self = this, $writer = nil; result = self.builder.$args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return result; - }, $Ruby30__reduce_622$468.$$arity = 3); - - Opal.def(self, '$_reduce_623', $Ruby30__reduce_623$469 = function $$_reduce_623(val, _values, result) { - var self = this, args = nil; - - args = [].concat(Opal.to_a(val['$[]'](1))).concat([self.builder.$forward_arg(val['$[]'](3))]); - result = self.builder.$args(val['$[]'](0), args, val['$[]'](4)); - self.static_env.$declare_forward_args(); + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_623$469.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_624', $Ruby30__reduce_624$470 = function $$_reduce_624(val, _values, result) { + $def(self, '$_reduce_639', function $$_reduce_639(val, _values, result) { var self = this, $writer = nil; - result = self.builder.$forward_only_args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - self.static_env.$declare_forward_args(); + result = self.context.$dup(); - $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer = [true]; + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return result; - }, $Ruby30__reduce_624$470.$$arity = 3); - - Opal.def(self, '$_reduce_626', $Ruby30__reduce_626$471 = function $$_reduce_626(val, _values, result) { - var self = this, $writer = nil; - - - result = self.context.$in_kwarg(); $writer = [true]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_argdef=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_626$471.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_627', $Ruby30__reduce_627$472 = function $$_reduce_627(val, _values, result) { + $def(self, '$_reduce_640', function $$_reduce_640(val, _values, result) { var self = this, $writer = nil; - $writer = [val['$[]'](0)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $writer = [val['$[]'](0).$in_kwarg()]; + $send(self.context, 'in_kwarg=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$args(nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_627$472.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_628', $Ruby30__reduce_628$473 = function $$_reduce_628(val, _values, result) { - var self = this; - + $def(self, '$_reduce_641', function $$_reduce_641(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_628$473.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_629', $Ruby30__reduce_629$474 = function $$_reduce_629(val, _values, result) { - var self = this; - + $def(self, '$_reduce_642', function $$_reduce_642(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_629$474.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_630', $Ruby30__reduce_630$475 = function $$_reduce_630(val, _values, result) { - var self = this; - + $def(self, '$_reduce_643', function $$_reduce_643(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_630$475.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_631', $Ruby30__reduce_631$476 = function $$_reduce_631(val, _values, result) { - var self = this; - + $def(self, '$_reduce_644', function $$_reduce_644(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_631$476.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_632', $Ruby30__reduce_632$477 = function $$_reduce_632(val, _values, result) { + $def(self, '$_reduce_645', function $$_reduce_645(val, _values, result) { var self = this; + self.static_env.$declare_forward_args(); + result = [self.builder.$forward_arg(val['$[]'](0))]; + return result; + }, 3); + + $def(self, '$_reduce_646', function $$_reduce_646(val, _values, result) { + + result = val['$[]'](1); return result; - }, $Ruby30__reduce_632$477.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_633', $Ruby30__reduce_633$478 = function $$_reduce_633(val, _values, result) { - var self = this; - + $def(self, '$_reduce_647', function $$_reduce_647(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_633$478.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_634', $Ruby30__reduce_634$479 = function $$_reduce_634(val, _values, result) { - var self = this; - + $def(self, '$_reduce_648', function $$_reduce_648(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_634$479.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_635', $Ruby30__reduce_635$480 = function $$_reduce_635(val, _values, result) { - var self = this; - + $def(self, '$_reduce_649', function $$_reduce_649(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](6)).$concat(val['$[]'](7)); return result; - }, $Ruby30__reduce_635$480.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_636', $Ruby30__reduce_636$481 = function $$_reduce_636(val, _values, result) { - var self = this; - + $def(self, '$_reduce_650', function $$_reduce_650(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_636$481.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_637', $Ruby30__reduce_637$482 = function $$_reduce_637(val, _values, result) { - var self = this; - + $def(self, '$_reduce_651', function $$_reduce_651(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_637$482.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_638', $Ruby30__reduce_638$483 = function $$_reduce_638(val, _values, result) { - var self = this; - + $def(self, '$_reduce_652', function $$_reduce_652(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_638$483.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_639', $Ruby30__reduce_639$484 = function $$_reduce_639(val, _values, result) { - var self = this; - + $def(self, '$_reduce_653', function $$_reduce_653(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_639$484.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_640', $Ruby30__reduce_640$485 = function $$_reduce_640(val, _values, result) { - var self = this; - + $def(self, '$_reduce_654', function $$_reduce_654(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_640$485.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_641', $Ruby30__reduce_641$486 = function $$_reduce_641(val, _values, result) { - var self = this; - + $def(self, '$_reduce_655', function $$_reduce_655(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_641$486.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_642', $Ruby30__reduce_642$487 = function $$_reduce_642(val, _values, result) { - var self = this; - + $def(self, '$_reduce_656', function $$_reduce_656(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_642$487.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_643', $Ruby30__reduce_643$488 = function $$_reduce_643(val, _values, result) { - var self = this; - + $def(self, '$_reduce_657', function $$_reduce_657(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_643$488.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_644', $Ruby30__reduce_644$489 = function $$_reduce_644(val, _values, result) { - var self = this; - + $def(self, '$_reduce_658', function $$_reduce_658(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_644$489.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_645', $Ruby30__reduce_645$490 = function $$_reduce_645(val, _values, result) { - var self = this; - + $def(self, '$_reduce_659', function $$_reduce_659(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_645$490.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_646', $Ruby30__reduce_646$491 = function $$_reduce_646(val, _values, result) { - var self = this; - + $def(self, '$_reduce_660', function $$_reduce_660(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_646$491.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_647', $Ruby30__reduce_647$492 = function $$_reduce_647(val, _values, result) { - var self = this; - + $def(self, '$_reduce_661', function $$_reduce_661(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_647$492.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_648', $Ruby30__reduce_648$493 = function $$_reduce_648(val, _values, result) { - var self = this; - + $def(self, '$_reduce_662', function $$_reduce_662(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_648$493.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_649', $Ruby30__reduce_649$494 = function $$_reduce_649(val, _values, result) { - var self = this; - + $def(self, '$_reduce_663', function $$_reduce_663(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_649$494.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_650', $Ruby30__reduce_650$495 = function $$_reduce_650(val, _values, result) { + $def(self, '$_reduce_664', function $$_reduce_664(val, _values, result) { var self = this; self.$diagnostic("error", "argument_const", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_650$495.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_651', $Ruby30__reduce_651$496 = function $$_reduce_651(val, _values, result) { + $def(self, '$_reduce_665', function $$_reduce_665(val, _values, result) { var self = this; self.$diagnostic("error", "argument_ivar", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_651$496.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_652', $Ruby30__reduce_652$497 = function $$_reduce_652(val, _values, result) { + $def(self, '$_reduce_666', function $$_reduce_666(val, _values, result) { var self = this; self.$diagnostic("error", "argument_gvar", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_652$497.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_653', $Ruby30__reduce_653$498 = function $$_reduce_653(val, _values, result) { + $def(self, '$_reduce_667', function $$_reduce_667(val, _values, result) { var self = this; self.$diagnostic("error", "argument_cvar", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_653$498.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_655', $Ruby30__reduce_655$499 = function $$_reduce_655(val, _values, result) { + $def(self, '$_reduce_669', function $$_reduce_669(val, _values, result) { var self = this; @@ -28524,384 +25333,402 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.max_numparam_stack['$has_ordinary_params!'](); result = val['$[]'](0); return result; - }, $Ruby30__reduce_655$499.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_656', $Ruby30__reduce_656$500 = function $$_reduce_656(val, _values, result) { + $def(self, '$_reduce_670', function $$_reduce_670(val, _values, result) { var self = this; self.current_arg_stack.$set(val['$[]'](0)['$[]'](0)); result = val['$[]'](0); return result; - }, $Ruby30__reduce_656$500.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_657', $Ruby30__reduce_657$501 = function $$_reduce_657(val, _values, result) { + $def(self, '$_reduce_671', function $$_reduce_671(val, _values, result) { var self = this; self.current_arg_stack.$set(0); result = self.builder.$arg(val['$[]'](0)); return result; - }, $Ruby30__reduce_657$501.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_658', $Ruby30__reduce_658$502 = function $$_reduce_658(val, _values, result) { + $def(self, '$_reduce_672', function $$_reduce_672(val, _values, result) { var self = this; result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_658$502.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_659', $Ruby30__reduce_659$503 = function $$_reduce_659(val, _values, result) { - var self = this; - + $def(self, '$_reduce_673', function $$_reduce_673(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_659$503.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_660', $Ruby30__reduce_660$504 = function $$_reduce_660(val, _values, result) { - var self = this; - + $def(self, '$_reduce_674', function $$_reduce_674(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_660$504.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_661', $Ruby30__reduce_661$505 = function $$_reduce_661(val, _values, result) { - var self = this; + $def(self, '$_reduce_675', function $$_reduce_675(val, _values, result) { + var self = this, $writer = nil; self.$check_kwarg_name(val['$[]'](0)); self.static_env.$declare(val['$[]'](0)['$[]'](0)); self.max_numparam_stack['$has_ordinary_params!'](); self.current_arg_stack.$set(val['$[]'](0)['$[]'](0)); + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = val['$[]'](0); return result; - }, $Ruby30__reduce_661$505.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_662', $Ruby30__reduce_662$506 = function $$_reduce_662(val, _values, result) { - var self = this; + $def(self, '$_reduce_676', function $$_reduce_676(val, _values, result) { + var self = this, $writer = nil; self.current_arg_stack.$set(nil); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$kwoptarg(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_662$506.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_663', $Ruby30__reduce_663$507 = function $$_reduce_663(val, _values, result) { - var self = this; + $def(self, '$_reduce_677', function $$_reduce_677(val, _values, result) { + var self = this, $writer = nil; self.current_arg_stack.$set(nil); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$kwarg(val['$[]'](0)); return result; - }, $Ruby30__reduce_663$507.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_664', $Ruby30__reduce_664$508 = function $$_reduce_664(val, _values, result) { - var self = this; + $def(self, '$_reduce_678', function $$_reduce_678(val, _values, result) { + var self = this, $writer = nil; + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$kwoptarg(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_664$508.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_665', $Ruby30__reduce_665$509 = function $$_reduce_665(val, _values, result) { - var self = this; + $def(self, '$_reduce_679', function $$_reduce_679(val, _values, result) { + var self = this, $writer = nil; + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$kwarg(val['$[]'](0)); return result; - }, $Ruby30__reduce_665$509.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_666', $Ruby30__reduce_666$510 = function $$_reduce_666(val, _values, result) { - var self = this; - + $def(self, '$_reduce_680', function $$_reduce_680(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_666$510.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_667', $Ruby30__reduce_667$511 = function $$_reduce_667(val, _values, result) { - var self = this; - + $def(self, '$_reduce_681', function $$_reduce_681(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_667$511.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_668', $Ruby30__reduce_668$512 = function $$_reduce_668(val, _values, result) { - var self = this; - + $def(self, '$_reduce_682', function $$_reduce_682(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_668$512.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_669', $Ruby30__reduce_669$513 = function $$_reduce_669(val, _values, result) { - var self = this; - + $def(self, '$_reduce_683', function $$_reduce_683(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_669$513.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_672', $Ruby30__reduce_672$514 = function $$_reduce_672(val, _values, result) { + $def(self, '$_reduce_686', function $$_reduce_686(val, _values, result) { var self = this; result = [self.builder.$kwnilarg(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_672$514.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_673', $Ruby30__reduce_673$515 = function $$_reduce_673(val, _values, result) { + $def(self, '$_reduce_687', function $$_reduce_687(val, _values, result) { var self = this; self.static_env.$declare(val['$[]'](1)['$[]'](0)); result = [self.builder.$kwrestarg(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_673$515.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_674', $Ruby30__reduce_674$516 = function $$_reduce_674(val, _values, result) { + $def(self, '$_reduce_688', function $$_reduce_688(val, _values, result) { var self = this; result = [self.builder.$kwrestarg(val['$[]'](0))]; return result; - }, $Ruby30__reduce_674$516.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_675', $Ruby30__reduce_675$517 = function $$_reduce_675(val, _values, result) { - var self = this; + $def(self, '$_reduce_689', function $$_reduce_689(val, _values, result) { + var self = this, $writer = nil; self.current_arg_stack.$set(0); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$optarg(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_675$517.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_676', $Ruby30__reduce_676$518 = function $$_reduce_676(val, _values, result) { - var self = this; + $def(self, '$_reduce_690', function $$_reduce_690(val, _values, result) { + var self = this, $writer = nil; self.current_arg_stack.$set(0); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$optarg(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_676$518.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_677', $Ruby30__reduce_677$519 = function $$_reduce_677(val, _values, result) { - var self = this; - + $def(self, '$_reduce_691', function $$_reduce_691(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_677$519.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_678', $Ruby30__reduce_678$520 = function $$_reduce_678(val, _values, result) { - var self = this; - + $def(self, '$_reduce_692', function $$_reduce_692(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_678$520.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_679', $Ruby30__reduce_679$521 = function $$_reduce_679(val, _values, result) { - var self = this; - + $def(self, '$_reduce_693', function $$_reduce_693(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_679$521.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_680', $Ruby30__reduce_680$522 = function $$_reduce_680(val, _values, result) { - var self = this; - + $def(self, '$_reduce_694', function $$_reduce_694(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_680$522.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_683', $Ruby30__reduce_683$523 = function $$_reduce_683(val, _values, result) { + $def(self, '$_reduce_697', function $$_reduce_697(val, _values, result) { var self = this; self.static_env.$declare(val['$[]'](1)['$[]'](0)); result = [self.builder.$restarg(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_683$523.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_684', $Ruby30__reduce_684$524 = function $$_reduce_684(val, _values, result) { + $def(self, '$_reduce_698', function $$_reduce_698(val, _values, result) { var self = this; result = [self.builder.$restarg(val['$[]'](0))]; return result; - }, $Ruby30__reduce_684$524.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_687', $Ruby30__reduce_687$525 = function $$_reduce_687(val, _values, result) { + $def(self, '$_reduce_701', function $$_reduce_701(val, _values, result) { var self = this; self.static_env.$declare(val['$[]'](1)['$[]'](0)); result = self.builder.$blockarg(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_687$525.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_688', $Ruby30__reduce_688$526 = function $$_reduce_688(val, _values, result) { + $def(self, '$_reduce_702', function $$_reduce_702(val, _values, result) { var self = this; + self.static_env.$declare_anonymous_blockarg(); + result = self.builder.$blockarg(val['$[]'](0), nil); + return result; + }, 3); + + $def(self, '$_reduce_703', function $$_reduce_703(val, _values, result) { + + result = [val['$[]'](1)]; return result; - }, $Ruby30__reduce_688$526.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_689', $Ruby30__reduce_689$527 = function $$_reduce_689(val, _values, result) { - var self = this; - + $def(self, '$_reduce_704', function $$_reduce_704(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_689$527.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_691', $Ruby30__reduce_691$528 = function $$_reduce_691(val, _values, result) { - var self = this; - + $def(self, '$_reduce_706', function $$_reduce_706(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_691$528.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_692', $Ruby30__reduce_692$529 = function $$_reduce_692(val, _values, result) { - var self = this; - + $def(self, '$_reduce_707', function $$_reduce_707(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_692$529.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_694', $Ruby30__reduce_694$530 = function $$_reduce_694(val, _values, result) { - var self = this; - + $def(self, '$_reduce_709', function $$_reduce_709(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_694$530.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_695', $Ruby30__reduce_695$531 = function $$_reduce_695(val, _values, result) { - var self = this; - + $def(self, '$_reduce_710', function $$_reduce_710(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_695$531.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_696', $Ruby30__reduce_696$532 = function $$_reduce_696(val, _values, result) { + $def(self, '$_reduce_711', function $$_reduce_711(val, _values, result) { var self = this; result = self.builder.$pair(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_696$532.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_697', $Ruby30__reduce_697$533 = function $$_reduce_697(val, _values, result) { + $def(self, '$_reduce_712', function $$_reduce_712(val, _values, result) { var self = this; result = self.builder.$pair_keyword(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_697$533.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_698', $Ruby30__reduce_698$534 = function $$_reduce_698(val, _values, result) { + $def(self, '$_reduce_713', function $$_reduce_713(val, _values, result) { var self = this; - result = self.builder.$pair_quoted(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + result = self.builder.$pair_label(val['$[]'](0)); return result; - }, $Ruby30__reduce_698$534.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_699', $Ruby30__reduce_699$535 = function $$_reduce_699(val, _values, result) { + $def(self, '$_reduce_714', function $$_reduce_714(val, _values, result) { var self = this; - result = self.builder.$kwsplat(val['$[]'](0), val['$[]'](1)); + result = self.builder.$pair_quoted(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_699$535.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_712', $Ruby30__reduce_712$536 = function $$_reduce_712(val, _values, result) { + $def(self, '$_reduce_715', function $$_reduce_715(val, _values, result) { var self = this; + result = self.builder.$kwsplat(val['$[]'](0), val['$[]'](1)); + return result; + }, 3); + + $def(self, '$_reduce_728', function $$_reduce_728(val, _values, result) { + + result = ["dot", val['$[]'](0)['$[]'](1)]; return result; - }, $Ruby30__reduce_712$536.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_713', $Ruby30__reduce_713$537 = function $$_reduce_713(val, _values, result) { - var self = this; - + $def(self, '$_reduce_729', function $$_reduce_729(val, _values, result) { + result = ["anddot", val['$[]'](0)['$[]'](1)]; return result; - }, $Ruby30__reduce_713$537.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_718', $Ruby30__reduce_718$538 = function $$_reduce_718(val, _values, result) { - var self = this; - + $def(self, '$_reduce_734', function $$_reduce_734(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_718$538.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_719', $Ruby30__reduce_719$539 = function $$_reduce_719(val, _values, result) { - var self = this; - + $def(self, '$_reduce_735', function $$_reduce_735(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_719$539.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_720', $Ruby30__reduce_720$540 = function $$_reduce_720(val, _values, result) { - var self = this; - + $def(self, '$_reduce_736', function $$_reduce_736(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_720$540.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_724', $Ruby30__reduce_724$541 = function $$_reduce_724(val, _values, result) { + $def(self, '$_reduce_740', function $$_reduce_740(val, _values, result) { var self = this; self.$yyerrok(); return result; - }, $Ruby30__reduce_724$541.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_728', $Ruby30__reduce_728$542 = function $$_reduce_728(val, _values, result) { - var self = this; - + $def(self, '$_reduce_744', function $$_reduce_744(val, _values, result) { + result = nil; return result; - }, $Ruby30__reduce_728$542.$$arity = 3); - return (Opal.def(self, '$_reduce_none', $Ruby30__reduce_none$543 = function $$_reduce_none(val, _values, result) { - var self = this; - + }, 3); + return $def(self, '$_reduce_none', function $$_reduce_none(val, _values, result) { + return val['$[]'](0) - }, $Ruby30__reduce_none$543.$$arity = 3), nil) && '_reduce_none'; - })($nesting[0], $$$($$($nesting, 'Parser'), 'Base'), $nesting) + }, 3); + })($nesting[0], $$$($$('Parser'), 'Base'), $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/ast/builder"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["opal/ast/builder"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $Opal = Opal.Opal, $hash2 = Opal.hash2, $def = Opal.def; - Opal.add_stubs(['$require', '$emit_lambda=', '$-', '$new']); + Opal.add_stubs('require,emit_lambda=,-,new'); self.$require("opal/ast/node"); - self.$require("parser/ruby30"); + self.$require("parser/ruby31"); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -28912,37 +25739,29 @@ Opal.modules["opal/ast/builder"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Builder'); - var $nesting = [self].concat($parent_nesting), $Builder_n$1, $writer = nil; + var $writer = nil; $writer = [true]; - $send(self, 'emit_lambda=', Opal.to_a($writer)); + $send(self, 'emit_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return (Opal.def(self, '$n', $Builder_n$1 = function $$n(type, children, location) { - var self = this; - - return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": location})) - }, $Builder_n$1.$$arity = 3), nil) && 'n'; - })($nesting[0], $$$($$$($$$('::', 'Parser'), 'Builders'), 'Default'), $nesting) + return $def(self, '$n', function $$n(type, children, location) { + + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": location})) + }, 3); + })($nesting[0], $$$($$$($$$('Parser'), 'Builders'), 'Default')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/base"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $alias = Opal.alias, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; - - Opal.add_stubs(['$require', '$new', '$current_node', '$loc', '$+', '$stmts_of', '$begin_with_stmts', '$nil?', '$include?', '$type', '$children', '$length', '$===', '$[]', '$s', '$attr_accessor', '$current_node=', '$-', '$location=', '$raise']); +Opal.modules["opal/rewriters/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $const_set = Opal.const_set, $truthy = Opal.truthy, $Opal = Opal.Opal, $hash2 = Opal.hash2, $defs = Opal.defs, $alias = Opal.alias, $rb_plus = Opal.rb_plus, $eqeqeq = Opal.eqeqeq, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs('require,new,current_node,loc,+,stmts_of,begin_with_stmts,nil?,include?,type,children,===,length,[],s,attr_accessor,current_node=,-,location=,raise,process_regular_node,[]=,meta'); self.$require("parser"); self.$require("opal/ast/node"); @@ -28959,121 +25778,111 @@ Opal.modules["opal/rewriters/base"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Base'); - var $nesting = [self].concat($parent_nesting), $Base_s$9, $Base_s$10, $Base_prepend_to_body$11, $Base_append_to_body$12, $Base_stmts_of$13, $Base_begin_with_stmts$14, $Base_process$15, $Base_error$16; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + $proto.dynamic_cache_result = nil; (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'DummyLocation'); - var $nesting = [self].concat($parent_nesting), $DummyLocation_node$eq$1, $DummyLocation_expression$2, $DummyLocation_begin_pos$3, $DummyLocation_end_pos$4, $DummyLocation_source$5, $DummyLocation_line$6, $DummyLocation_column$7, $DummyLocation_last_line$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$node=', $DummyLocation_node$eq$1 = function($a) { - var $post_args, self = this; + $def(self, '$node=', function $DummyLocation_node$eq$1($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $DummyLocation_node$eq$1.$$arity = -1); + }, -1); - Opal.def(self, '$expression', $DummyLocation_expression$2 = function $$expression() { + $def(self, '$expression', function $$expression() { var self = this; return self - }, $DummyLocation_expression$2.$$arity = 0); + }, 0); - Opal.def(self, '$begin_pos', $DummyLocation_begin_pos$3 = function $$begin_pos() { - var self = this; - + $def(self, '$begin_pos', function $$begin_pos() { + return 0 - }, $DummyLocation_begin_pos$3.$$arity = 0); + }, 0); - Opal.def(self, '$end_pos', $DummyLocation_end_pos$4 = function $$end_pos() { - var self = this; - + $def(self, '$end_pos', function $$end_pos() { + return 0 - }, $DummyLocation_end_pos$4.$$arity = 0); + }, 0); - Opal.def(self, '$source', $DummyLocation_source$5 = function $$source() { - var self = this; - + $def(self, '$source', function $$source() { + return "" - }, $DummyLocation_source$5.$$arity = 0); + }, 0); - Opal.def(self, '$line', $DummyLocation_line$6 = function $$line() { - var self = this; - + $def(self, '$line', function $$line() { + return 0 - }, $DummyLocation_line$6.$$arity = 0); + }, 0); - Opal.def(self, '$column', $DummyLocation_column$7 = function $$column() { - var self = this; - + $def(self, '$column', function $$column() { + return 0 - }, $DummyLocation_column$7.$$arity = 0); - return (Opal.def(self, '$last_line', $DummyLocation_last_line$8 = function $$last_line() { - var self = this; - - return $$$($$($nesting, 'Float'), 'INFINITY') - }, $DummyLocation_last_line$8.$$arity = 0), nil) && 'last_line'; + }, 0); + return $def(self, '$last_line', function $$last_line() { + + return $$$($$('Float'), 'INFINITY') + }, 0); })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'DUMMY_LOCATION', $$($nesting, 'DummyLocation').$new()); + $const_set($nesting[0], 'DUMMY_LOCATION', $$('DummyLocation').$new()); - Opal.def(self, '$s', $Base_s$9 = function $$s(type, $a) { + $def(self, '$s', function $$s(type, $a) { var $post_args, children, self = this, loc = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); children = $post_args;; - loc = (function() {if ($truthy(self.$current_node())) { - return self.$current_node().$loc() - } else { - return $$($nesting, 'DUMMY_LOCATION') - }; return nil; })(); - return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": loc})); - }, $Base_s$9.$$arity = -2); - Opal.defs(self, '$s', $Base_s$10 = function $$s(type, $a) { - var $post_args, children, self = this; + loc = ($truthy(self.$current_node()) ? (self.$current_node().$loc()) : ($$('DUMMY_LOCATION'))); + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": loc})); + }, -2); + $defs(self, '$s', function $$s(type, $a) { + var $post_args, children; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); children = $post_args;; - return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": $$($nesting, 'DUMMY_LOCATION')})); - }, $Base_s$10.$$arity = -2); + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": $$('DUMMY_LOCATION')})); + }, -2); $alias(self, "on_iter", "process_regular_node"); - $alias(self, "on_top", "process_regular_node"); $alias(self, "on_zsuper", "process_regular_node"); $alias(self, "on_jscall", "on_send"); $alias(self, "on_jsattr", "process_regular_node"); $alias(self, "on_jsattrasgn", "process_regular_node"); $alias(self, "on_kwsplat", "process_regular_node"); - Opal.def(self, '$prepend_to_body', $Base_prepend_to_body$11 = function $$prepend_to_body(body, node) { + $def(self, '$prepend_to_body', function $$prepend_to_body(body, node) { var self = this, stmts = nil; stmts = $rb_plus(self.$stmts_of(node), self.$stmts_of(body)); return self.$begin_with_stmts(stmts); - }, $Base_prepend_to_body$11.$$arity = 2); + }, 2); - Opal.def(self, '$append_to_body', $Base_append_to_body$12 = function $$append_to_body(body, node) { + $def(self, '$append_to_body', function $$append_to_body(body, node) { var self = this, stmts = nil; stmts = $rb_plus(self.$stmts_of(body), self.$stmts_of(node)); return self.$begin_with_stmts(stmts); - }, $Base_append_to_body$12.$$arity = 2); + }, 2); - Opal.def(self, '$stmts_of', $Base_stmts_of$13 = function $$stmts_of(node) { - var self = this; - + $def(self, '$stmts_of', function $$stmts_of(node) { + if ($truthy(node['$nil?']())) { return [] } else if ($truthy(["begin", "kwbegin"]['$include?'](node.$type()))) { @@ -29081,59 +25890,78 @@ Opal.modules["opal/rewriters/base"] = function(Opal) { } else { return [node] } - }, $Base_stmts_of$13.$$arity = 1); + }, 1); - Opal.def(self, '$begin_with_stmts', $Base_begin_with_stmts$14 = function $$begin_with_stmts(stmts) { - var self = this, $case = nil; + $def(self, '$begin_with_stmts', function $$begin_with_stmts(stmts) { + var self = this, $ret_or_1 = nil; - return (function() {$case = stmts.$length(); - if ((0)['$===']($case)) {return nil} - else if ((1)['$===']($case)) {return stmts['$[]'](0)} - else {return $send(self, 's', ["begin"].concat(Opal.to_a(stmts)))}})() - }, $Base_begin_with_stmts$14.$$arity = 1); + if ($eqeqeq(0, ($ret_or_1 = stmts.$length()))) { + return nil + } else if ($eqeqeq(1, $ret_or_1)) { + return stmts['$[]'](0) + } else { + return $send(self, 's', ["begin"].concat($to_a(stmts))) + } + }, 1); self.$attr_accessor("current_node"); - Opal.def(self, '$process', $Base_process$15 = function $$process(node) { - var $iter = $Base_process$15.$$p, $yield = $iter || nil, self = this, $writer = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$process', function $$process(node) { + var $yield = $$process.$$p || nil, self = this, $writer = nil; - if ($iter) $Base_process$15.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$process.$$p; return (function() { try { $writer = [node]; - $send(self, 'current_node=', Opal.to_a($writer)); + $send(self, 'current_node=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send2(self, $find_super(self, 'process', $Base_process$15, false, true), 'process', $zuper, $iter); + return $send2(self, $find_super(self, 'process', $$process, false, true), 'process', [node], $yield); } finally { - (($writer = [nil]), $send(self, 'current_node=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) + (($writer = [nil]), $send(self, 'current_node=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) }; })() - }, $Base_process$15.$$arity = 1); - return (Opal.def(self, '$error', $Base_error$16 = function $$error(msg) { + }, 1); + + $def(self, '$error', function $$error(msg) { var self = this, error = nil, $writer = nil; - error = $$$($$$('::', 'Opal'), 'RewritingError').$new(msg); + error = $$$($Opal, 'RewritingError').$new(msg); if ($truthy(self.$current_node())) { $writer = [self.$current_node().$loc()]; - $send(error, 'location=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(error, 'location=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; return self.$raise(error); - }, $Base_error$16.$$arity = 1), nil) && 'error'; - })($nesting[0], $$$($$$($$$('::', 'Parser'), 'AST'), 'Processor'), $nesting) + }, 1); + + $def(self, '$on_top', function $$on_top(node) { + var self = this, $writer = nil; + + + node = self.$process_regular_node(node); + if ($truthy(self.dynamic_cache_result)) { + + $writer = ["dynamic_cache_result", true]; + $send(node.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return node; + }, 1); + return $def(self, '$dynamic!', function $Base_dynamic$excl$2() { + var self = this; + + return (self.dynamic_cache_result = true) + }, 0); + })($nesting[0], $$$($$$($$$('Parser'), 'AST'), 'Processor'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/opal_engine_check"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/opal_engine_check"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_a = Opal.to_a, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $const_set = Opal.const_set; - Opal.add_stubs(['$require', '$children', '$skip_check_present?', '$process', '$s', '$skip_check_present_not?', '$==']); + Opal.add_stubs('require,children,skip_check_present?,process,s,skip_check_present_not?,=='); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29144,78 +25972,62 @@ Opal.modules["opal/rewriters/opal_engine_check"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'OpalEngineCheck'); - var $nesting = [self].concat($parent_nesting), $OpalEngineCheck_on_if$1, $OpalEngineCheck_skip_check_present$ques$2, $OpalEngineCheck_skip_check_present_not$ques$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$on_if', $OpalEngineCheck_on_if$1 = function $$on_if(node) { - var $a, $iter = $OpalEngineCheck_on_if$1.$$p, $yield = $iter || nil, self = this, test = nil, true_body = nil, false_body = nil, $ret_or_1 = nil, $ret_or_2 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$on_if', function $$on_if(node) { + var $a, $yield = $$on_if.$$p || nil, self = this, test = nil, true_body = nil, false_body = nil, $ret_or_1 = nil; - if ($iter) $OpalEngineCheck_on_if$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$on_if.$$p; - $a = [].concat(Opal.to_a(node.$children())), (test = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node.$children())), (test = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; if ($truthy(self['$skip_check_present?'](test))) { - return self.$process((function() {if ($truthy(($ret_or_1 = true_body))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })()) + return self.$process(($truthy(($ret_or_1 = true_body)) ? ($ret_or_1) : (self.$s("nil")))) } else if ($truthy(self['$skip_check_present_not?'](test))) { - return self.$process((function() {if ($truthy(($ret_or_2 = false_body))) { - return $ret_or_2 - } else { - return self.$s("nil") - }; return nil; })()) + return self.$process(($truthy(($ret_or_1 = false_body)) ? ($ret_or_1) : (self.$s("nil")))) } else { - return $send2(self, $find_super(self, 'on_if', $OpalEngineCheck_on_if$1, false, true), 'on_if', $zuper, $iter) + return $send2(self, $find_super(self, 'on_if', $$on_if, false, true), 'on_if', [node], $yield) }; - }, $OpalEngineCheck_on_if$1.$$arity = 1); + }, 1); - Opal.def(self, '$skip_check_present?', $OpalEngineCheck_skip_check_present$ques$2 = function(test) { - var self = this, $ret_or_3 = nil; + $def(self, '$skip_check_present?', function $OpalEngineCheck_skip_check_present$ques$1(test) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_3 = test['$==']($$($nesting, 'RUBY_ENGINE_CHECK'))))) { - return $ret_or_3 + if ($truthy(($ret_or_1 = test['$==']($$('RUBY_ENGINE_CHECK'))))) { + return $ret_or_1 } else { - return test['$==']($$($nesting, 'RUBY_PLATFORM_CHECK')) + return test['$==']($$('RUBY_PLATFORM_CHECK')) } - }, $OpalEngineCheck_skip_check_present$ques$2.$$arity = 1); + }, 1); - Opal.def(self, '$skip_check_present_not?', $OpalEngineCheck_skip_check_present_not$ques$3 = function(test) { - var self = this, $ret_or_4 = nil; + $def(self, '$skip_check_present_not?', function $OpalEngineCheck_skip_check_present_not$ques$2(test) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_4 = test['$==']($$($nesting, 'RUBY_ENGINE_CHECK_NOT'))))) { - return $ret_or_4 + if ($truthy(($ret_or_1 = test['$==']($$('RUBY_ENGINE_CHECK_NOT'))))) { + return $ret_or_1 } else { - return test['$==']($$($nesting, 'RUBY_PLATFORM_CHECK_NOT')) + return test['$==']($$('RUBY_PLATFORM_CHECK_NOT')) } - }, $OpalEngineCheck_skip_check_present_not$ques$3.$$arity = 1); - Opal.const_set($nesting[0], 'RUBY_ENGINE_CHECK', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "==", self.$s("str", "opal"))); - Opal.const_set($nesting[0], 'RUBY_ENGINE_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "!=", self.$s("str", "opal"))); - Opal.const_set($nesting[0], 'RUBY_PLATFORM_CHECK', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "==", self.$s("str", "opal"))); - return Opal.const_set($nesting[0], 'RUBY_PLATFORM_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "!=", self.$s("str", "opal"))); - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + $const_set($nesting[0], 'RUBY_ENGINE_CHECK', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "==", self.$s("str", "opal"))); + $const_set($nesting[0], 'RUBY_ENGINE_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "!=", self.$s("str", "opal"))); + $const_set($nesting[0], 'RUBY_PLATFORM_CHECK', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "==", self.$s("str", "opal"))); + return $const_set($nesting[0], 'RUBY_PLATFORM_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "!=", self.$s("str", "opal"))); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/for_rewriter"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/for_rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $defs = Opal.defs, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $to_a = Opal.to_a, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$+', '$find', '$map', '$s', '$next_tmp', '$class', '$type', '$===', '$<<', '$prepend_to_body', '$process', '$attr_reader', '$new', '$to_a', '$result']); + Opal.add_stubs('require,+,find,map,s,next_tmp,class,===,type,updated,<<,prepend_to_body,process,attr_reader,new,to_a,result'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29226,102 +26038,89 @@ Opal.modules["opal/rewriters/for_rewriter"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ForRewriter'); - var $nesting = [self].concat($parent_nesting), $ForRewriter_reset_tmp_counter$excl$1, $ForRewriter_next_tmp$2, $ForRewriter_on_for$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$reset_tmp_counter!', $ForRewriter_reset_tmp_counter$excl$1 = function() { + $defs(self, '$reset_tmp_counter!', function $ForRewriter_reset_tmp_counter$excl$1() { var self = this; return (self.counter = 0) - }, $ForRewriter_reset_tmp_counter$excl$1.$$arity = 0); - Opal.defs(self, '$next_tmp', $ForRewriter_next_tmp$2 = function $$next_tmp() { + }, 0); + $defs(self, '$next_tmp', function $$next_tmp() { var self = this, $ret_or_1 = nil; if (self.counter == null) self.counter = nil; - self.counter = (function() {if ($truthy(($ret_or_1 = self.counter))) { - return $ret_or_1 - } else { - return 0 - }; return nil; })(); + self.counter = ($truthy(($ret_or_1 = self.counter)) ? ($ret_or_1) : (0)); self.counter = $rb_plus(self.counter, 1); - return "" + "$for_tmp" + (self.counter); - }, $ForRewriter_next_tmp$2.$$arity = 0); + return "$for_tmp" + (self.counter); + }, 0); - Opal.def(self, '$on_for', $ForRewriter_on_for$3 = function $$on_for(node) { - var $a, $$4, self = this, loop_variable = nil, iterating_value = nil, loop_body = nil, iterating_lvars = nil, lvars_declared_in_body = nil, outer_assigns = nil, tmp_loop_variable = nil, get_tmp_loop_variable = nil, loop_variable_assignment = nil, $case = nil; + $def(self, '$on_for', function $$on_for(node) { + var $a, self = this, loop_variable = nil, iterating_value = nil, loop_body = nil, iterating_lvars = nil, lvars_declared_in_body = nil, outer_assigns = nil, tmp_loop_variable = nil, get_tmp_loop_variable = nil, loop_variable_assignment = nil, $ret_or_1 = nil; - $a = [].concat(Opal.to_a(node)), (loop_variable = ($a[0] == null ? nil : $a[0])), (iterating_value = ($a[1] == null ? nil : $a[1])), (loop_body = ($a[2] == null ? nil : $a[2])), $a; - iterating_lvars = $$($nesting, 'LocalVariableAssigns').$find(loop_variable); - lvars_declared_in_body = $$($nesting, 'LocalVariableAssigns').$find(loop_body); - outer_assigns = $send($rb_plus(iterating_lvars, lvars_declared_in_body), 'map', [], ($$4 = function(lvar_name){var self = $$4.$$s == null ? this : $$4.$$s; + $a = [].concat($to_a(node)), (loop_variable = ($a[0] == null ? nil : $a[0])), (iterating_value = ($a[1] == null ? nil : $a[1])), (loop_body = ($a[2] == null ? nil : $a[2])), $a; + iterating_lvars = $$('LocalVariableAssigns').$find(loop_variable); + lvars_declared_in_body = $$('LocalVariableAssigns').$find(loop_body); + outer_assigns = $send($rb_plus(iterating_lvars, lvars_declared_in_body), 'map', [], function $$2(lvar_name){var self = $$2.$$s == null ? this : $$2.$$s; - if (lvar_name == null) { - lvar_name = nil; - }; - return self.$s("lvdeclare", lvar_name);}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + if (lvar_name == null) lvar_name = nil;; + return self.$s("lvdeclare", lvar_name);}, {$$arity: 1, $$s: self}); tmp_loop_variable = self.$class().$next_tmp(); get_tmp_loop_variable = self.$s("js_tmp", tmp_loop_variable); - loop_variable_assignment = (function() {$case = loop_variable.$type(); - if ("mlhs"['$===']($case)) {return self.$s("masgn", loop_variable, get_tmp_loop_variable)} - else {return loop_variable['$<<'](get_tmp_loop_variable)}})(); + loop_variable_assignment = ($eqeqeq("mlhs", ($ret_or_1 = loop_variable.$type())) ? (loop_variable.$updated("masgn", [loop_variable, get_tmp_loop_variable])) : (loop_variable['$<<'](get_tmp_loop_variable))); loop_body = self.$prepend_to_body(loop_body, loop_variable_assignment); - node = self.$s("send", iterating_value, "each", self.$s("iter", self.$s("args", self.$s("arg", tmp_loop_variable)), self.$process(loop_body))); - return $send(self, 's', ["begin"].concat(Opal.to_a(outer_assigns)).concat([node])); - }, $ForRewriter_on_for$3.$$arity = 1); + node = node.$updated("send", [iterating_value, "each", node.$updated("iter", [self.$s("args", self.$s("arg", tmp_loop_variable)), self.$process(loop_body)])]); + return node.$updated("begin", [].concat($to_a(outer_assigns)).concat([node])); + }, 1); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'LocalVariableAssigns'); - var $nesting = [self].concat($parent_nesting), $LocalVariableAssigns_find$5, $LocalVariableAssigns_initialize$6, $LocalVariableAssigns_on_lvasgn$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$attr_reader("result"); - Opal.defs(self, '$find', $LocalVariableAssigns_find$5 = function $$find(node) { + $defs(self, '$find', function $$find(node) { var self = this, processor = nil; processor = self.$new(); processor.$process(node); return processor.$result().$to_a(); - }, $LocalVariableAssigns_find$5.$$arity = 1); + }, 1); - Opal.def(self, '$initialize', $LocalVariableAssigns_initialize$6 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; - return (self.result = $$($nesting, 'Set').$new()) - }, $LocalVariableAssigns_initialize$6.$$arity = 0); - return (Opal.def(self, '$on_lvasgn', $LocalVariableAssigns_on_lvasgn$7 = function $$on_lvasgn(node) { - var $a, $iter = $LocalVariableAssigns_on_lvasgn$7.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + return (self.result = $$('Set').$new()) + }, 0); + return $def(self, '$on_lvasgn', function $$on_lvasgn(node) { + var $a, $yield = $$on_lvasgn.$$p || nil, self = this, name = nil, _ = nil; - if ($iter) $LocalVariableAssigns_on_lvasgn$7.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$on_lvasgn.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; self.$result()['$<<'](name); - return $send2(self, $find_super(self, 'on_lvasgn', $LocalVariableAssigns_on_lvasgn$7, false, true), 'on_lvasgn', $zuper, $iter); - }, $LocalVariableAssigns_on_lvasgn$7.$$arity = 1), nil) && 'on_lvasgn'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + return $send2(self, $find_super(self, 'on_lvasgn', $$on_lvasgn, false, true), 'on_lvasgn', [node], $yield); + }, 1); + })($nesting[0], $$('Base'), $nesting); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/explicit_writer_return"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $send = Opal.send; +Opal.modules["opal/rewriters/explicit_writer_return"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $const_set = Opal.const_set, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $slice = Opal.slice, $eqeq = Opal.eqeq, $regexp = Opal.regexp, $send = Opal.send; - Opal.add_stubs(['$require', '$s', '$=~', '$to_s', '$==', '$process_all', '$updated']); + Opal.add_stubs('require,s,==,to_s,=~,process_all,updated'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29332,73 +26131,61 @@ Opal.modules["opal/rewriters/explicit_writer_return"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ExplicitWriterReturn'); - var $nesting = [self].concat($parent_nesting), $ExplicitWriterReturn_initialize$1, $ExplicitWriterReturn_on_send$2, $ExplicitWriterReturn_on_masgn$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.in_masgn = nil; + $proto.in_masgn = nil; - Opal.def(self, '$initialize', $ExplicitWriterReturn_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.in_masgn = false) - }, $ExplicitWriterReturn_initialize$1.$$arity = 0); - Opal.const_set($nesting[0], 'TMP_NAME', "$writer"); - Opal.const_set($nesting[0], 'GET_ARGS_NODE', self.$s("lvar", $$($nesting, 'TMP_NAME'))); - Opal.const_set($nesting[0], 'RETURN_ARGS_NODE', self.$s("jsattr", $$($nesting, 'GET_ARGS_NODE'), self.$s("send", self.$s("jsattr", $$($nesting, 'GET_ARGS_NODE'), self.$s("str", "length")), "-", self.$s("int", 1)))); - - Opal.def(self, '$on_send', $ExplicitWriterReturn_on_send$2 = function $$on_send(node) { - var $a, $iter = $ExplicitWriterReturn_on_send$2.$$p, $yield = $iter || nil, self = this, recv = nil, method_name = nil, args = nil, $ret_or_1 = nil, set_args_node = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $ExplicitWriterReturn_on_send$2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + }, 0); + $const_set($nesting[0], 'TMP_NAME', "$writer"); + $const_set($nesting[0], 'GET_ARGS_NODE', self.$s("lvar", $$('TMP_NAME'))); + $const_set($nesting[0], 'RETURN_ARGS_NODE', self.$s("jsattr", $$('GET_ARGS_NODE'), self.$s("send", self.$s("jsattr", $$('GET_ARGS_NODE'), self.$s("str", "length")), "-", self.$s("int", 1)))); + + $def(self, '$on_send', function $$on_send(node) { + var $a, $yield = $$on_send.$$p || nil, self = this, recv = nil, method_name = nil, args = nil, set_args_node = nil; + + delete $$on_send.$$p; if ($truthy(self.in_masgn)) { - return $send2(self, $find_super(self, 'on_send', $ExplicitWriterReturn_on_send$2, false, true), 'on_send', $zuper, $iter)}; - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy((function() {if ($truthy(($ret_or_1 = method_name.$to_s()['$=~'](Opal.regexp([$$($nesting, 'REGEXP_START'), "\\w+=", $$($nesting, 'REGEXP_END')]))))) { - return $ret_or_1 - } else { - return method_name.$to_s()['$==']("[]=") - }; return nil; })())) { + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) + }; + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if (($truthy(method_name.$to_s()['$=~']($regexp([$$('REGEXP_START'), "\\w+=", $$('REGEXP_END')]))) || ($eqeq(method_name.$to_s(), "[]=")))) { - set_args_node = self.$s("lvasgn", $$($nesting, 'TMP_NAME'), $send(self, 's', ["array"].concat(Opal.to_a(self.$process_all(args))))); - return self.$s("begin", set_args_node, node.$updated(nil, [recv, method_name, self.$s("splat", $$($nesting, 'GET_ARGS_NODE'))]), $$($nesting, 'RETURN_ARGS_NODE')); + set_args_node = self.$s("lvasgn", $$('TMP_NAME'), $send(self, 's', ["array"].concat($to_a(self.$process_all(args))))); + return self.$s("begin", set_args_node, node.$updated(nil, [recv, method_name, self.$s("splat", $$('GET_ARGS_NODE'))]), $$('RETURN_ARGS_NODE')); } else { - return $send2(self, $find_super(self, 'on_send', $ExplicitWriterReturn_on_send$2, false, true), 'on_send', $zuper, $iter) + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) }; - }, $ExplicitWriterReturn_on_send$2.$$arity = 1); - return (Opal.def(self, '$on_masgn', $ExplicitWriterReturn_on_masgn$3 = function $$on_masgn(node) { - var $iter = $ExplicitWriterReturn_on_masgn$3.$$p, $yield = $iter || nil, self = this, result = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + }, 1); + return $def(self, '$on_masgn', function $$on_masgn(node) { + var $yield = $$on_masgn.$$p || nil, self = this, result = nil; - if ($iter) $ExplicitWriterReturn_on_masgn$3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$on_masgn.$$p; self.in_masgn = true; - result = $send2(self, $find_super(self, 'on_masgn', $ExplicitWriterReturn_on_masgn$3, false, true), 'on_masgn', $zuper, $iter); + result = $send2(self, $find_super(self, 'on_masgn', $$on_masgn, false, true), 'on_masgn', [node], $yield); self.in_masgn = false; return result; - }, $ExplicitWriterReturn_on_masgn$3.$$arity = 1), nil) && 'on_masgn'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2; +Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $truthy = Opal.truthy, $defs = Opal.defs, $def = Opal.def, $range = Opal.range, $to_a = Opal.to_a, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2, $alias = Opal.alias; - Opal.add_stubs(['$require', '$freeze', '$=~', '$!', '$valid_name?', '$class', '$to_sym', '$valid_ivar_name?', '$[]', '$to_s', '$updated', '$fix_var_name', '$fix_ivar_name']); + Opal.add_stubs('require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name'); self.$require("opal/rewriters/base"); self.$require("opal/regexp_anchors"); @@ -29410,49 +26197,37 @@ Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'JsReservedWords'); - var $nesting = [self].concat($parent_nesting), $JsReservedWords_valid_name$ques$1, $JsReservedWords_valid_ivar_name$ques$2, $JsReservedWords_fix_var_name$3, $JsReservedWords_fix_ivar_name$4, $JsReservedWords_on_lvar$5, $JsReservedWords_on_lvasgn$6, $JsReservedWords_on_ivar$7, $JsReservedWords_on_ivasgn$8, $JsReservedWords_on_restarg$9, $JsReservedWords_on_argument$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'ES51_RESERVED_WORD', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'ES3_RESERVED_WORD_EXCLUSIVE', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'PROTO_SPECIAL_PROPS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'PROTO_SPECIAL_METHODS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:hasOwnProperty|valueOf)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'IMMUTABLE_PROPS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:NaN|Infinity|undefined)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'BASIC_IDENTIFIER_RULES', Opal.regexp([$$($nesting, 'REGEXP_START'), "[$_a-z][$_a-z\\d]*", $$($nesting, 'REGEXP_END')], 'i').$freeze()); - Opal.const_set($nesting[0], 'RESERVED_FUNCTION_NAMES', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:Array)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.defs(self, '$valid_name?', $JsReservedWords_valid_name$ques$1 = function(name) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $const_set($nesting[0], 'ES51_RESERVED_WORD', $regexp([$$('REGEXP_START'), "(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'ES3_RESERVED_WORD_EXCLUSIVE', $regexp([$$('REGEXP_START'), "(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'PROTO_SPECIAL_PROPS', $regexp([$$('REGEXP_START'), "(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'PROTO_SPECIAL_METHODS', $regexp([$$('REGEXP_START'), "(?:hasOwnProperty|valueOf)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'IMMUTABLE_PROPS', $regexp([$$('REGEXP_START'), "(?:NaN|Infinity|undefined)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'BASIC_IDENTIFIER_RULES', $regexp([$$('REGEXP_START'), "[$_a-z][$_a-z\\d]*", $$('REGEXP_END')], 'i').$freeze()); + $const_set($nesting[0], 'RESERVED_FUNCTION_NAMES', $regexp([$$('REGEXP_START'), "(?:Array)", $$('REGEXP_END')]).$freeze()); + $defs(self, '$valid_name?', function $JsReservedWords_valid_name$ques$1(name) { + var $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_1 = $$($nesting, 'BASIC_IDENTIFIER_RULES')['$=~'](name)))) { - return (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$($nesting, 'ES51_RESERVED_WORD')['$=~'](name)))) { - return $ret_or_3 - } else { - return $$($nesting, 'ES3_RESERVED_WORD_EXCLUSIVE')['$=~'](name) - }; return nil; })()))) { - return $ret_or_2 - } else { - return $$($nesting, 'IMMUTABLE_PROPS')['$=~'](name) - }; return nil; })()['$!']() + if ($truthy(($ret_or_1 = $$('BASIC_IDENTIFIER_RULES')['$=~'](name)))) { + return ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = $$('ES51_RESERVED_WORD')['$=~'](name))) ? ($ret_or_3) : ($$('ES3_RESERVED_WORD_EXCLUSIVE')['$=~'](name))))) ? ($ret_or_2) : ($$('IMMUTABLE_PROPS')['$=~'](name)))['$!']() } else { return $ret_or_1 } - }, $JsReservedWords_valid_name$ques$1.$$arity = 1); - Opal.defs(self, '$valid_ivar_name?', $JsReservedWords_valid_ivar_name$ques$2 = function(name) { - var self = this, $ret_or_4 = nil; + }, 1); + $defs(self, '$valid_ivar_name?', function $JsReservedWords_valid_ivar_name$ques$2(name) { + var $ret_or_1 = nil; - return (function() {if ($truthy(($ret_or_4 = $$($nesting, 'PROTO_SPECIAL_PROPS')['$=~'](name)))) { - return $ret_or_4 - } else { - return $$($nesting, 'PROTO_SPECIAL_METHODS')['$=~'](name) - }; return nil; })()['$!']() - }, $JsReservedWords_valid_ivar_name$ques$2.$$arity = 1); + return ($truthy(($ret_or_1 = $$('PROTO_SPECIAL_PROPS')['$=~'](name))) ? ($ret_or_1) : ($$('PROTO_SPECIAL_METHODS')['$=~'](name)))['$!']() + }, 1); - Opal.def(self, '$fix_var_name', $JsReservedWords_fix_var_name$3 = function $$fix_var_name(name) { + $def(self, '$fix_var_name', function $$fix_var_name(name) { var self = this; if ($truthy(self.$class()['$valid_name?'](name))) { @@ -29460,9 +26235,9 @@ Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { } else { return (("" + (name)) + "$").$to_sym() } - }, $JsReservedWords_fix_var_name$3.$$arity = 1); + }, 1); - Opal.def(self, '$fix_ivar_name', $JsReservedWords_fix_ivar_name$4 = function $$fix_ivar_name(name) { + $def(self, '$fix_ivar_name', function $$fix_ivar_name(name) { var self = this; if ($truthy(self.$class()['$valid_ivar_name?'](name.$to_s()['$[]']($range(1, -1, false))))) { @@ -29470,93 +26245,79 @@ Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { } else { return (("" + (name)) + "$").$to_sym() } - }, $JsReservedWords_fix_ivar_name$4.$$arity = 1); + }, 1); - Opal.def(self, '$on_lvar', $JsReservedWords_on_lvar$5 = function $$on_lvar(node) { - var $a, $iter = $JsReservedWords_on_lvar$5.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil; + $def(self, '$on_lvar', function $$on_lvar(node) { + var $a, $yield = $$on_lvar.$$p || nil, self = this, name = nil, _ = nil; - if ($iter) $JsReservedWords_on_lvar$5.$$p = null; + delete $$on_lvar.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; node = node.$updated(nil, [self.$fix_var_name(name)]); - return $send2(self, $find_super(self, 'on_lvar', $JsReservedWords_on_lvar$5, false, true), 'on_lvar', [node], null); - }, $JsReservedWords_on_lvar$5.$$arity = 1); + return $send2(self, $find_super(self, 'on_lvar', $$on_lvar, false, true), 'on_lvar', [node], null); + }, 1); - Opal.def(self, '$on_lvasgn', $JsReservedWords_on_lvasgn$6 = function $$on_lvasgn(node) { - var $a, $iter = $JsReservedWords_on_lvasgn$6.$$p, $yield = $iter || nil, self = this, name = nil, value = nil; + $def(self, '$on_lvasgn', function $$on_lvasgn(node) { + var $a, $yield = $$on_lvasgn.$$p || nil, self = this, name = nil, value = nil; - if ($iter) $JsReservedWords_on_lvasgn$6.$$p = null; + delete $$on_lvasgn.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - node = (function() {if ($truthy(value)) { - return node.$updated(nil, [self.$fix_var_name(name), value]) - } else { - return node.$updated(nil, [self.$fix_var_name(name)]) - }; return nil; })(); - return $send2(self, $find_super(self, 'on_lvasgn', $JsReservedWords_on_lvasgn$6, false, true), 'on_lvasgn', [node], null); - }, $JsReservedWords_on_lvasgn$6.$$arity = 1); + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = ($truthy(value) ? (node.$updated(nil, [self.$fix_var_name(name), value])) : (node.$updated(nil, [self.$fix_var_name(name)]))); + return $send2(self, $find_super(self, 'on_lvasgn', $$on_lvasgn, false, true), 'on_lvasgn', [node], null); + }, 1); - Opal.def(self, '$on_ivar', $JsReservedWords_on_ivar$7 = function $$on_ivar(node) { - var $a, $iter = $JsReservedWords_on_ivar$7.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil; + $def(self, '$on_ivar', function $$on_ivar(node) { + var $a, $yield = $$on_ivar.$$p || nil, self = this, name = nil, _ = nil; - if ($iter) $JsReservedWords_on_ivar$7.$$p = null; + delete $$on_ivar.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; node = node.$updated(nil, [self.$fix_ivar_name(name)]); - return $send2(self, $find_super(self, 'on_ivar', $JsReservedWords_on_ivar$7, false, true), 'on_ivar', [node], null); - }, $JsReservedWords_on_ivar$7.$$arity = 1); + return $send2(self, $find_super(self, 'on_ivar', $$on_ivar, false, true), 'on_ivar', [node], null); + }, 1); - Opal.def(self, '$on_ivasgn', $JsReservedWords_on_ivasgn$8 = function $$on_ivasgn(node) { - var $a, $iter = $JsReservedWords_on_ivasgn$8.$$p, $yield = $iter || nil, self = this, name = nil, value = nil; + $def(self, '$on_ivasgn', function $$on_ivasgn(node) { + var $a, $yield = $$on_ivasgn.$$p || nil, self = this, name = nil, value = nil; - if ($iter) $JsReservedWords_on_ivasgn$8.$$p = null; + delete $$on_ivasgn.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - node = (function() {if ($truthy(value)) { - return node.$updated(nil, [self.$fix_ivar_name(name), value]) - } else { - return node.$updated(nil, [self.$fix_ivar_name(name)]) - }; return nil; })(); - return $send2(self, $find_super(self, 'on_ivasgn', $JsReservedWords_on_ivasgn$8, false, true), 'on_ivasgn', [node], null); - }, $JsReservedWords_on_ivasgn$8.$$arity = 1); + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = ($truthy(value) ? (node.$updated(nil, [self.$fix_ivar_name(name), value])) : (node.$updated(nil, [self.$fix_ivar_name(name)]))); + return $send2(self, $find_super(self, 'on_ivasgn', $$on_ivasgn, false, true), 'on_ivasgn', [node], null); + }, 1); - Opal.def(self, '$on_restarg', $JsReservedWords_on_restarg$9 = function $$on_restarg(node) { + $def(self, '$on_restarg', function $$on_restarg(node) { var $a, self = this, name = nil, _ = nil; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; if ($truthy(name)) { - node = node.$updated(nil, [self.$fix_var_name(name)], $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})}))}; + node = node.$updated(nil, [self.$fix_var_name(name)], $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})})) + }; return node; - }, $JsReservedWords_on_restarg$9.$$arity = 1); - return (Opal.def(self, '$on_argument', $JsReservedWords_on_argument$10 = function $$on_argument(node) { - var $a, $iter = $JsReservedWords_on_argument$10.$$p, $yield = $iter || nil, self = this, name = nil, value = nil, fixed_name = nil, new_children = nil; + }, 1); + $alias(self, "on_kwrestarg", "on_restarg"); + return $def(self, '$on_argument', function $$on_argument(node) { + var $a, $yield = $$on_argument.$$p || nil, self = this, name = nil, value = nil, fixed_name = nil, new_children = nil; - if ($iter) $JsReservedWords_on_argument$10.$$p = null; + delete $$on_argument.$$p; - node = $send2(self, $find_super(self, 'on_argument', $JsReservedWords_on_argument$10, false, true), 'on_argument', [node], null); - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = $send2(self, $find_super(self, 'on_argument', $$on_argument, false, true), 'on_argument', [node], null); + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; fixed_name = self.$fix_var_name(name); - new_children = (function() {if ($truthy(value)) { - return [fixed_name, value] - } else { - return [fixed_name] - }; return nil; })(); + new_children = ($truthy(value) ? ([fixed_name, value]) : ([fixed_name])); return node.$updated(nil, new_children, $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})})); - }, $JsReservedWords_on_argument$10.$$arity = 1), nil) && 'on_argument'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/block_to_iter"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/block_to_iter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $def = Opal.def; - Opal.add_stubs(['$require', '$s', '$updated', '$+', '$children']); + Opal.add_stubs('require,s,process,updated,+,children'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29567,36 +26328,29 @@ Opal.modules["opal/rewriters/block_to_iter"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'BlockToIter'); - var $nesting = [self].concat($parent_nesting), $BlockToIter_on_block$1; - - return (Opal.def(self, '$on_block', $BlockToIter_on_block$1 = function $$on_block(node) { - var $a, $iter = $BlockToIter_on_block$1.$$p, $yield = $iter || nil, self = this, recvr = nil, args = nil, body = nil, iter_node = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + + return $def(self, '$on_block', function $$on_block(node) { + var $a, self = this, recvr = nil, args = nil, body = nil, iter_node = nil; - if ($iter) $BlockToIter_on_block$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - $a = [].concat(Opal.to_a($send2(self, $find_super(self, 'on_block', $BlockToIter_on_block$1, false, true), 'on_block', $zuper, $iter))), (recvr = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node)), (recvr = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; iter_node = self.$s("iter", args, body); - return recvr.$updated(nil, $rb_plus(recvr.$children(), [iter_node])); - }, $BlockToIter_on_block$1.$$arity = 1), nil) && 'on_block' - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$process(recvr.$updated(nil, $rb_plus(recvr.$children(), [iter_node]))); + }, 1) + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/dot_js_syntax"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $slice = Opal.slice, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["opal/rewriters/dot_js_syntax"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_a = Opal.to_a, $slice = Opal.slice, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $neqeq = Opal.neqeq, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$require', '$==', '$type', '$===', '$!=', '$size', '$error', '$first', '$to_js_attr_call', '$to_js_attr_assign_call', '$to_native_js_call', '$s']); + Opal.add_stubs('require,==,type,===,!=,size,error,first,to_js_attr_call,to_js_attr_assign_call,to_native_js_call,s'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29607,84 +26361,76 @@ Opal.modules["opal/rewriters/dot_js_syntax"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DotJsSyntax'); - var $nesting = [self].concat($parent_nesting), $DotJsSyntax_on_send$1, $DotJsSyntax_to_native_js_call$2, $DotJsSyntax_to_js_attr_call$3, $DotJsSyntax_to_js_attr_assign_call$4; - - Opal.def(self, '$on_send', $DotJsSyntax_on_send$1 = function $$on_send(node) { - var $a, $iter = $DotJsSyntax_on_send$1.$$p, $yield = $iter || nil, self = this, recv = nil, meth = nil, args = nil, $ret_or_1 = nil, recv_of_recv = nil, meth_of_recv = nil, _ = nil, $case = nil, property = nil, value = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + + $def(self, '$on_send', function $$on_send(node) { + var $a, $yield = $$on_send.$$p || nil, self = this, recv = nil, meth = nil, args = nil, recv_of_recv = nil, meth_of_recv = nil, _ = nil, $ret_or_1 = nil, property = nil, value = nil; - if ($iter) $DotJsSyntax_on_send$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$on_send.$$p; - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy((function() {if ($truthy(($ret_or_1 = recv))) { - return recv.$type()['$==']("send") - } else { - return $ret_or_1 - }; return nil; })())) { - - $a = [].concat(Opal.to_a(recv)), (recv_of_recv = ($a[0] == null ? nil : $a[0])), (meth_of_recv = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), $a; - if (meth_of_recv['$==']("JS")) { - - $case = meth; - if ("[]"['$===']($case)) { - if ($truthy(args.$size()['$!='](1))) { - self.$error(".JS[:property] syntax supports only one argument")}; - property = args.$first(); - node = self.$to_js_attr_call(recv_of_recv, property);} - else if ("[]="['$===']($case)) { - if ($truthy(args.$size()['$!='](2))) { - self.$error(".JS[:property]= syntax supports only two arguments")}; - $a = [].concat(Opal.to_a(args)), (property = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - node = self.$to_js_attr_assign_call(recv_of_recv, property, value);} - else {node = self.$to_native_js_call(recv_of_recv, meth, args)}; - return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', [node], null); + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if (($truthy(recv) && ($eqeq(recv.$type(), "send")))) { + + $a = [].concat($to_a(recv)), (recv_of_recv = ($a[0] == null ? nil : $a[0])), (meth_of_recv = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), $a; + if ($eqeq(meth_of_recv, "JS")) { + + if ($eqeqeq("[]", ($ret_or_1 = meth))) { + + if ($neqeq(args.$size(), 1)) { + self.$error(".JS[:property] syntax supports only one argument") + }; + property = args.$first(); + node = self.$to_js_attr_call(recv_of_recv, property); + } else if ($eqeqeq("[]=", $ret_or_1)) { + + if ($neqeq(args.$size(), 2)) { + self.$error(".JS[:property]= syntax supports only two arguments") + }; + $a = [].concat($to_a(args)), (property = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = self.$to_js_attr_assign_call(recv_of_recv, property, value); + } else { + node = self.$to_native_js_call(recv_of_recv, meth, args) + }; + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], null); } else { - return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', $zuper, $iter) + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) }; } else { - return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', $zuper, $iter) + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) }; - }, $DotJsSyntax_on_send$1.$$arity = 1); + }, 1); - Opal.def(self, '$to_native_js_call', $DotJsSyntax_to_native_js_call$2 = function $$to_native_js_call(recv, meth, args) { + $def(self, '$to_native_js_call', function $$to_native_js_call(recv, meth, args) { var self = this; - return $send(self, 's', ["jscall", recv, meth].concat(Opal.to_a(args))) - }, $DotJsSyntax_to_native_js_call$2.$$arity = 3); + return $send(self, 's', ["jscall", recv, meth].concat($to_a(args))) + }, 3); - Opal.def(self, '$to_js_attr_call', $DotJsSyntax_to_js_attr_call$3 = function $$to_js_attr_call(recv, property) { + $def(self, '$to_js_attr_call', function $$to_js_attr_call(recv, property) { var self = this; return self.$s("jsattr", recv, property) - }, $DotJsSyntax_to_js_attr_call$3.$$arity = 2); - return (Opal.def(self, '$to_js_attr_assign_call', $DotJsSyntax_to_js_attr_assign_call$4 = function $$to_js_attr_assign_call(recv, property, value) { + }, 2); + return $def(self, '$to_js_attr_assign_call', function $$to_js_attr_assign_call(recv, property, value) { var self = this; return self.$s("jsattrasgn", recv, property, value) - }, $DotJsSyntax_to_js_attr_assign_call$4.$$arity = 3), nil) && 'to_js_attr_assign_call'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 3); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; +Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $not = Opal.not, $neqeq = Opal.neqeq, $eqeq = Opal.eqeq, $alias = Opal.alias, $Opal = Opal.Opal; - Opal.add_stubs(['$require', '$s', '$convert_full_pattern', '$raise_no_matching_pattern_error', '$+', '$process', '$single_case_match', '$private', '$shift', '$type', '$===', '$!', '$empty?', '$!=', '$==', '$class', '$new', '$run!', '$variables', '$pattern', '$map', '$<<', '$array', '$on_literal', '$first', '$children', '$to_proc', '$method', '$each', '$to_ast', '$on_array_pattern', '$compact', '$[]']); + Opal.add_stubs('require,s,convert_full_pattern,raise_no_matching_pattern_error,+,process,single_case_match,private,shift,===,type,!,empty?,!=,==,class,new,run!,variables,pattern,map,<<,array,on_literal,first,children,to_proc,method,each,to_ast,on_array_pattern,compact,[]'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29695,173 +26441,164 @@ Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'PatternMatching'); - var $nesting = [self].concat($parent_nesting), $PatternMatching_initialize$1, $PatternMatching_on_match_pattern$2, $PatternMatching_on_match_pattern_p$3, $PatternMatching_on_case_match$4, $PatternMatching_raise_no_matching_pattern_error$5, $PatternMatching_single_case_match$6, $PatternMatching_convert_full_pattern$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.depth = nil; + $proto.depth = nil; - Opal.def(self, '$initialize', $PatternMatching_initialize$1 = function $$initialize() { - var $iter = $PatternMatching_initialize$1.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize() { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $PatternMatching_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; self.depth = 0; - return $send2(self, $find_super(self, 'initialize', $PatternMatching_initialize$1, false, true), 'initialize', $zuper, $iter); - }, $PatternMatching_initialize$1.$$arity = 0); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [], $yield); + }, 0); - Opal.def(self, '$on_match_pattern', $PatternMatching_on_match_pattern$2 = function $$on_match_pattern(node) { + $def(self, '$on_match_pattern', function $$on_match_pattern(node) { var $a, self = this, from = nil, pat = nil; - $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; return self.$s("begin", self.$s("lvasgn", "$pmvar", from), self.$s("if", self.$convert_full_pattern(from, pat), nil, self.$raise_no_matching_pattern_error("$pmvar"))); - }, $PatternMatching_on_match_pattern$2.$$arity = 1); + }, 1); - Opal.def(self, '$on_match_pattern_p', $PatternMatching_on_match_pattern_p$3 = function $$on_match_pattern_p(node) { + $def(self, '$on_match_pattern_p', function $$on_match_pattern_p(node) { var $a, self = this, from = nil, pat = nil; - $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; return self.$s("if", self.$convert_full_pattern(from, pat), self.$s("true"), self.$s("false")); - }, $PatternMatching_on_match_pattern_p$3.$$arity = 1); + }, 1); - Opal.def(self, '$on_case_match', $PatternMatching_on_case_match$4 = function $$on_case_match(node) { + $def(self, '$on_case_match', function $$on_case_match(node) { var $a, $b, self = this, cmvar = nil, from = nil, cases = nil, els = nil; self.depth = $rb_plus(self.depth, 1); - cmvar = "" + "$cmvar" + (self.depth); - $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (cases = $slice.call($a, 1, $b)), (els = ($a[$b] == null ? nil : $a[$b])), $a; + cmvar = "$cmvar" + (self.depth); + $a = [].concat($to_a(node)), (from = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (cases = $slice.call($a, 1, $b)), (els = ($a[$b] == null ? nil : $a[$b])), $a; if ($truthy(els)) { self.$process(els) } else { els = self.$raise_no_matching_pattern_error(cmvar) }; - return self.$s("begin", self.$s("lvasgn", cmvar, from), $send(self, 'single_case_match', [cmvar].concat(Opal.to_a(cases)).concat([els]))); - }, $PatternMatching_on_case_match$4.$$arity = 1); + return self.$s("begin", self.$s("lvasgn", cmvar, from), $send(self, 'single_case_match', [cmvar].concat($to_a(cases)).concat([els]))); + }, 1); self.$private(); - Opal.def(self, '$raise_no_matching_pattern_error', $PatternMatching_raise_no_matching_pattern_error$5 = function $$raise_no_matching_pattern_error(from) { + $def(self, '$raise_no_matching_pattern_error', function $$raise_no_matching_pattern_error(from) { var self = this; - return self.$s("send", nil, "raise", self.$s("const", nil, "NoMatchingPatternError"), self.$s("lvar", from)) - }, $PatternMatching_raise_no_matching_pattern_error$5.$$arity = 1); + return self.$s("send", nil, "raise", self.$s("const", self.$s("cbase"), "NoMatchingPatternError"), self.$s("lvar", from)) + }, 1); - Opal.def(self, '$single_case_match', $PatternMatching_single_case_match$6 = function $$single_case_match(from, $a, $b) { - var $post_args, cases, els, $c, self = this, cas = nil, pat = nil, if_guard = nil, body = nil, guard = nil, $case = nil; + $def(self, '$single_case_match', function $$single_case_match(from, $a, $b) { + var $post_args, cases, els, $c, self = this, cas = nil, pat = nil, if_guard = nil, body = nil, guard = nil, $ret_or_1 = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); cases = $post_args.splice(0, $post_args.length - 1);; - els = $post_args[0]; - $post_args.splice(0, 1); - if (els == null) { - els = nil - }; + els = $post_args.shift(); + if (els == null) els = nil;; cas = cases.$shift(); - $c = [].concat(Opal.to_a(cas)), (pat = ($c[0] == null ? nil : $c[0])), (if_guard = ($c[1] == null ? nil : $c[1])), (body = ($c[2] == null ? nil : $c[2])), $c; + $c = [].concat($to_a(cas)), (pat = ($c[0] == null ? nil : $c[0])), (if_guard = ($c[1] == null ? nil : $c[1])), (body = ($c[2] == null ? nil : $c[2])), $c; pat = self.$convert_full_pattern(from, pat); if ($truthy(if_guard)) { - $c = [].concat(Opal.to_a(if_guard)), (guard = ($c[0] == null ? nil : $c[0])), $c; - $case = if_guard.$type(); - if ("if_guard"['$===']($case)) {pat = self.$s("and", pat, guard)} - else if ("unless_guard"['$===']($case)) {pat = self.$s("and", pat, self.$s("send", guard, "!"))};}; - return self.$s("if", pat, self.$process(body), (function() {if ($truthy(cases['$empty?']()['$!']())) { - return $send(self, 'single_case_match', [from].concat(Opal.to_a(cases)).concat([els])) - } else if ($truthy(els['$!='](self.$s("empty_else")))) { - return els - } else { - return nil - }; return nil; })()); - }, $PatternMatching_single_case_match$6.$$arity = -3); + $c = [].concat($to_a(if_guard)), (guard = ($c[0] == null ? nil : $c[0])), $c; + if ($eqeqeq("if_guard", ($ret_or_1 = if_guard.$type()))) { + pat = self.$s("and", pat, guard) + } else if ($eqeqeq("unless_guard", $ret_or_1)) { + pat = self.$s("and", pat, self.$s("send", guard, "!")) + } else { + nil + }; + }; + return self.$s("if", pat, self.$process(body), ($not(cases['$empty?']()) ? ($send(self, 'single_case_match', [from].concat($to_a(cases)).concat([els]))) : ($neqeq(els, self.$s("empty_else")) ? (els) : nil))); + }, -3); - Opal.def(self, '$convert_full_pattern', $PatternMatching_convert_full_pattern$7 = function $$convert_full_pattern(from, pat) { + $def(self, '$convert_full_pattern', function $$convert_full_pattern(from, pat) { var self = this, converter = nil; - if (from.$class()['$==']($$($nesting, 'Symbol'))) { - from = self.$s("lvar", from)}; - converter = $$($nesting, 'PatternConverter').$new(pat); + if ($eqeq(from.$class(), $$('Symbol'))) { + from = self.$s("lvar", from) + }; + converter = $$('PatternConverter').$new(pat); converter['$run!'](); - return self.$s("masgn", $send(self, 's', ["mlhs"].concat(Opal.to_a(converter.$variables()))), self.$s("send", self.$s("const", self.$s("cbase"), "PatternMatching"), "call", from, converter.$pattern())); - }, $PatternMatching_convert_full_pattern$7.$$arity = 2); + return self.$s("masgn", $send(self, 's', ["mlhs"].concat($to_a(converter.$variables()))), self.$s("send", self.$s("const", self.$s("cbase"), "PatternMatching"), "call", from, converter.$pattern())); + }, 2); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'PatternConverter'); - var $nesting = [self].concat($parent_nesting), $PatternConverter_initialize$8, $PatternConverter_run$excl$9, $PatternConverter_pattern$10, $PatternConverter_variables$11, $PatternConverter_on_match_var$13, $PatternConverter_on_match_as$14, $PatternConverter_on_literal$15, $PatternConverter_on_pin$16, $PatternConverter_on_match_rest$17, $PatternConverter_on_match_alt$18, $PatternConverter_on_const_pattern$19, $PatternConverter_on_array_pattern$20, $PatternConverter_on_array_pattern_with_tail$22, $PatternConverter_on_hash_pattern$23, $PatternConverter_on_find_pattern$25, $PatternConverter_array$26, $PatternConverter_to_ast$27; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.pat = self.$$prototype.outpat = self.$$prototype.variables = nil; + $proto.pat = $proto.outpat = $proto.variables = nil; - Opal.def(self, '$initialize', $PatternConverter_initialize$8 = function $$initialize(pat) { + $def(self, '$initialize', function $$initialize(pat) { var self = this; self.pat = pat; return (self.variables = []); - }, $PatternConverter_initialize$8.$$arity = 1); + }, 1); - Opal.def(self, '$run!', $PatternConverter_run$excl$9 = function() { + $def(self, '$run!', function $PatternConverter_run$excl$1() { var self = this; return (self.outpat = self.$process(self.pat)) - }, $PatternConverter_run$excl$9.$$arity = 0); + }, 0); - Opal.def(self, '$pattern', $PatternConverter_pattern$10 = function $$pattern() { + $def(self, '$pattern', function $$pattern() { var self = this; return self.outpat - }, $PatternConverter_pattern$10.$$arity = 0); + }, 0); - Opal.def(self, '$variables', $PatternConverter_variables$11 = function $$variables() { - var $$12, self = this; + $def(self, '$variables', function $$variables() { + var self = this; - return $send(self.variables, 'map', [], ($$12 = function(i){var self = $$12.$$s == null ? this : $$12.$$s; + return $send(self.variables, 'map', [], function $$2(i){var self = $$2.$$s == null ? this : $$2.$$s; - if (i == null) { - i = nil; - }; - return self.$s("lvasgn", i);}, $$12.$$s = self, $$12.$$arity = 1, $$12)) - }, $PatternConverter_variables$11.$$arity = 0); + if (i == null) i = nil;; + return self.$s("lvasgn", i);}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$on_match_var', $PatternConverter_on_match_var$13 = function $$on_match_var(node) { + $def(self, '$on_match_var', function $$on_match_var(node) { var $a, self = this, var$ = nil; - $a = [].concat(Opal.to_a(node)), (var$ = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(node)), (var$ = ($a[0] == null ? nil : $a[0])), $a; self.variables['$<<'](var$); return self.$s("sym", "var"); - }, $PatternConverter_on_match_var$13.$$arity = 1); + }, 1); - Opal.def(self, '$on_match_as', $PatternConverter_on_match_as$14 = function $$on_match_as(node) { + $def(self, '$on_match_as', function $$on_match_as(node) { var $a, self = this, pat = nil, save = nil; - $a = [].concat(Opal.to_a(node)), (pat = ($a[0] == null ? nil : $a[0])), (save = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (pat = ($a[0] == null ? nil : $a[0])), (save = ($a[1] == null ? nil : $a[1])), $a; self.$process(save); return self.$array(self.$s("sym", "save"), self.$process(pat)); - }, $PatternConverter_on_match_as$14.$$arity = 1); + }, 1); - Opal.def(self, '$on_literal', $PatternConverter_on_literal$15 = function $$on_literal(node) { + $def(self, '$on_literal', function $$on_literal(node) { var self = this; return self.$array(self.$s("sym", "lit"), node) - }, $PatternConverter_on_literal$15.$$arity = 1); + }, 1); $alias(self, "on_int", "on_literal"); $alias(self, "on_float", "on_literal"); $alias(self, "on_complex", "on_literal"); @@ -29878,13 +26615,13 @@ Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) { $alias(self, "on_lambda", "on_literal"); $alias(self, "on_begin", "on_literal"); - Opal.def(self, '$on_pin', $PatternConverter_on_pin$16 = function $$on_pin(node) { + $def(self, '$on_pin', function $$on_pin(node) { var self = this; return self.$on_literal(node.$children().$first()) - }, $PatternConverter_on_pin$16.$$arity = 1); + }, 1); - Opal.def(self, '$on_match_rest', $PatternConverter_on_match_rest$17 = function $$on_match_rest(node) { + $def(self, '$on_match_rest', function $$on_match_rest(node) { var self = this; if ($truthy(node.$children()['$empty?']())) { @@ -29892,131 +26629,131 @@ Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) { } else { return self.$array(self.$s("sym", "rest"), self.$process(node.$children().$first())) } - }, $PatternConverter_on_match_rest$17.$$arity = 1); + }, 1); - Opal.def(self, '$on_match_alt', $PatternConverter_on_match_alt$18 = function $$on_match_alt(node) { + $def(self, '$on_match_alt', function $$on_match_alt(node) { var self = this; - return $send(self, 'array', [self.$s("sym", "any")].concat(Opal.to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) - }, $PatternConverter_on_match_alt$18.$$arity = 1); + return $send(self, 'array', [self.$s("sym", "any")].concat($to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) + }, 1); - Opal.def(self, '$on_const_pattern', $PatternConverter_on_const_pattern$19 = function $$on_const_pattern(node) { + $def(self, '$on_const_pattern', function $$on_const_pattern(node) { var self = this; - return $send(self, 'array', [self.$s("sym", "all")].concat(Opal.to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) - }, $PatternConverter_on_const_pattern$19.$$arity = 1); + return $send(self, 'array', [self.$s("sym", "all")].concat($to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) + }, 1); - Opal.def(self, '$on_array_pattern', $PatternConverter_on_array_pattern$20 = function $$on_array_pattern(node, tail) { - var $$21, self = this, children = nil, fixed_size = nil, array_size = nil; + $def(self, '$on_array_pattern', function $$on_array_pattern(node, tail) { + var self = this, children = nil, fixed_size = nil, array_size = nil; - if (tail == null) { - tail = false; - }; - children = [].concat(Opal.to_a(node)); + if (tail == null) tail = false;; + children = [].concat($to_a(node)); if ($truthy(tail)) { - children['$<<'](self.$s("match_rest"))}; + children['$<<'](self.$s("match_rest")) + }; fixed_size = true; array_size = 0; - children = $send(children, 'each', [], ($$21 = function(i){var self = $$21.$$s == null ? this : $$21.$$s, $case = nil; + children = $send(children, 'each', [], function $$3(i){var $ret_or_1 = nil; - if (i == null) { - i = nil; - }; - return (function() {$case = i.$type(); - if ("match_rest"['$===']($case)) {return (fixed_size = false)} - else {return (array_size = $rb_plus(array_size, 1))}})();}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + if (i == null) i = nil;; + if ($eqeqeq("match_rest", ($ret_or_1 = i.$type()))) { + return (fixed_size = false) + } else { + return (array_size = $rb_plus(array_size, 1)) + };}, 1); return self.$array(self.$s("sym", "array"), self.$to_ast(fixed_size), self.$to_ast(array_size), self.$to_ast($send(children, 'map', [], self.$method("process").$to_proc()))); - }, $PatternConverter_on_array_pattern$20.$$arity = -2); + }, -2); - Opal.def(self, '$on_array_pattern_with_tail', $PatternConverter_on_array_pattern_with_tail$22 = function $$on_array_pattern_with_tail(node) { + $def(self, '$on_array_pattern_with_tail', function $$on_array_pattern_with_tail(node) { var self = this; return self.$on_array_pattern(node, true) - }, $PatternConverter_on_array_pattern_with_tail$22.$$arity = 1); + }, 1); - Opal.def(self, '$on_hash_pattern', $PatternConverter_on_hash_pattern$23 = function $$on_hash_pattern(node) { - var $$24, self = this, children = nil, any_size = nil; + $def(self, '$on_hash_pattern', function $$on_hash_pattern(node) { + var self = this, children = nil, any_size = nil; - children = [].concat(Opal.to_a(node)); - any_size = (function() {if ($truthy(children['$empty?']())) { - return self.$to_ast(false) - } else { - return self.$to_ast(true) - }; return nil; })(); - children = $send(children, 'map', [], ($$24 = function(i){var self = $$24.$$s == null ? this : $$24.$$s, $case = nil; + children = [].concat($to_a(node)); + any_size = ($truthy(children['$empty?']()) ? (self.$to_ast(false)) : (self.$to_ast(true))); + children = $send(children, 'map', [], function $$4(i){var self = $$4.$$s == null ? this : $$4.$$s, $ret_or_1 = nil; - if (i == null) { - i = nil; - }; - return (function() {$case = i.$type(); - if ("pair"['$===']($case)) {return self.$array(i.$children()['$[]'](0), self.$process(i.$children()['$[]'](1)))} - else if ("match_var"['$===']($case)) {return self.$array(self.$s("sym", i.$children()['$[]'](0)), self.$process(i))} - else if ("match_nil_pattern"['$===']($case)) { - any_size = self.$to_ast(false); - return nil;} - else if ("match_rest"['$===']($case)) { - if ($truthy(i.$children().$first())) { - any_size = self.$process(i.$children().$first()) + if (i == null) i = nil;; + if ($eqeqeq("pair", ($ret_or_1 = i.$type()))) { + return self.$array(i.$children()['$[]'](0), self.$process(i.$children()['$[]'](1))) + } else if ($eqeqeq("match_var", $ret_or_1)) { + return self.$array(self.$s("sym", i.$children()['$[]'](0)), self.$process(i)) + } else if ($eqeqeq("match_nil_pattern", $ret_or_1)) { + + any_size = self.$to_ast(false); + return nil; + } else if ($eqeqeq("match_rest", $ret_or_1)) { + + if ($truthy(i.$children().$first())) { + any_size = self.$process(i.$children().$first()) + } else { + any_size = self.$to_ast(true) + }; + return nil; } else { - any_size = self.$to_ast(true) - }; - return nil;} - else { return nil }})();}, $$24.$$s = self, $$24.$$arity = 1, $$24)).$compact(); - return self.$array(self.$s("sym", "hash"), any_size, $send(self, 'array', Opal.to_a(children))); - }, $PatternConverter_on_hash_pattern$23.$$arity = 1); + return nil + };}, {$$arity: 1, $$s: self}).$compact(); + return self.$array(self.$s("sym", "hash"), any_size, $send(self, 'array', $to_a(children))); + }, 1); - Opal.def(self, '$on_find_pattern', $PatternConverter_on_find_pattern$25 = function $$on_find_pattern(node) { + $def(self, '$on_find_pattern', function $$on_find_pattern(node) { var self = this, children = nil; - children = [].concat(Opal.to_a(node)); + children = [].concat($to_a(node)); children = $send(children, 'map', [], self.$method("process").$to_proc()); - return self.$array(self.$s("sym", "find"), $send(self, 'array', Opal.to_a(children))); - }, $PatternConverter_on_find_pattern$25.$$arity = 1); + return self.$array(self.$s("sym", "find"), $send(self, 'array', $to_a(children))); + }, 1); self.$private(); - Opal.def(self, '$array', $PatternConverter_array$26 = function $$array($a) { + $def(self, '$array', function $$array($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; return self.$to_ast(args); - }, $PatternConverter_array$26.$$arity = -1); - return (Opal.def(self, '$to_ast', $PatternConverter_to_ast$27 = function $$to_ast(val) { - var self = this, $case = nil; - - return (function() {$case = val; - if ($$($nesting, 'Array')['$===']($case)) {return $send(self, 's', ["array"].concat(Opal.to_a(val)))} - else if ($$($nesting, 'Integer')['$===']($case)) {return self.$s("int", val)} - else if (true['$===']($case)) {return self.$s("true")} - else if (false['$===']($case)) {return self.$s("false")} - else if (nil['$===']($case)) {return self.$s("nil")} - else { return nil }})() - }, $PatternConverter_to_ast$27.$$arity = 1), nil) && 'to_ast'; - })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, -1); + return $def(self, '$to_ast', function $$to_ast(val) { + var self = this, $ret_or_1 = nil; + + if ($eqeqeq($$('Array'), ($ret_or_1 = val))) { + return $send(self, 's', ["array"].concat($to_a(val))) + } else if ($eqeqeq($$('Integer'), $ret_or_1)) { + return self.$s("int", val) + } else if ($eqeqeq(true, $ret_or_1)) { + return self.$s("true") + } else if ($eqeqeq(false, $ret_or_1)) { + return self.$s("false") + } else if ($eqeqeq(nil, $ret_or_1)) { + return self.$s("nil") + } else { + return nil + } + }, 1); + })($nesting[0], $$$($$$($Opal, 'Rewriters'), 'Base'), $nesting); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/logical_operator_assignment"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $lambda = Opal.lambda, $slice = Opal.slice, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/logical_operator_assignment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $defs = Opal.defs, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $rb_plus = Opal.rb_plus, $const_set = Opal.const_set, $lambda = Opal.lambda, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $slice = Opal.slice, $hash2 = Opal.hash2, $send = Opal.send, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$+', '$updated', '$s', '$include?', '$==', '$[]', '$type', '$new_temp', '$freeze', '$call', '$fetch', '$error', '$process']); + Opal.add_stubs('require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -30027,177 +26764,145 @@ Opal.modules["opal/rewriters/logical_operator_assignment"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'LogicalOperatorAssignment'); - var $nesting = [self].concat($parent_nesting), $LogicalOperatorAssignment_reset_tmp_counter$excl$1, $LogicalOperatorAssignment_new_temp$2, $LogicalOperatorAssignment$3, $LogicalOperatorAssignment_on_or_asgn$7, $LogicalOperatorAssignment_on_and_asgn$9, $LogicalOperatorAssignment_on_defined$ques$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$reset_tmp_counter!', $LogicalOperatorAssignment_reset_tmp_counter$excl$1 = function() { - var self = this; - + $defs(self, '$reset_tmp_counter!', function $LogicalOperatorAssignment_reset_tmp_counter$excl$1() { + return $class_variable_set($nesting[0], '@@counter', 0) - }, $LogicalOperatorAssignment_reset_tmp_counter$excl$1.$$arity = 0); - Opal.defs(self, '$new_temp', $LogicalOperatorAssignment_new_temp$2 = function $$new_temp() { - var $a, self = this, $ret_or_1 = nil; + }, 0); + $defs(self, '$new_temp', function $$new_temp() { + var $a, $ret_or_1 = nil; - $class_variable_set($nesting[0], '@@counter', (function() {if ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil))) { - - if ($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false)))) { - return $ret_or_1 - } else { - return 0 - }; - } else { - return 0 - }; return nil; })()); + $class_variable_set($nesting[0], '@@counter', ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil)) ? (($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false))) ? ($ret_or_1) : (0))) : (0))); $class_variable_set($nesting[0], '@@counter', $rb_plus($class_variable_get($nesting[0], '@@counter', false), 1)); - return "" + "$logical_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); - }, $LogicalOperatorAssignment_new_temp$2.$$arity = 0); - Opal.const_set($nesting[0], 'GET_SET', $lambda(($LogicalOperatorAssignment$3 = function(get_type, set_type){var self = $LogicalOperatorAssignment$3.$$s == null ? this : $LogicalOperatorAssignment$3.$$s, $$4; + return "$logical_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); + }, 0); + $const_set($nesting[0], 'GET_SET', $lambda(function $LogicalOperatorAssignment$2(get_type, set_type){var self = $LogicalOperatorAssignment$2.$$s == null ? this : $LogicalOperatorAssignment$2.$$s; - if (get_type == null) { - get_type = nil; - }; + if (get_type == null) get_type = nil;; - if (set_type == null) { - set_type = nil; - }; - return $lambda(($$4 = function(lhs, rhs, root_type){var self = $$4.$$s == null ? this : $$4.$$s, get_node = nil, condition_node = nil, $ret_or_2 = nil, defined_node = nil; + if (set_type == null) set_type = nil;; + return $lambda(function $$3(lhs, rhs, root_type){var self = $$3.$$s == null ? this : $$3.$$s, get_node = nil, condition_node = nil, defined_node = nil; - if (lhs == null) { - lhs = nil; - }; + if (lhs == null) lhs = nil;; - if (rhs == null) { - rhs = nil; - }; + if (rhs == null) rhs = nil;; - if (root_type == null) { - root_type = nil; - }; + if (root_type == null) root_type = nil;; get_node = lhs.$updated(get_type); condition_node = self.$s(root_type, get_node, rhs); - if ($truthy((function() {if ($truthy(($ret_or_2 = ["const", "cvar"]['$include?'](get_type)))) { - return root_type['$==']("or") - } else { - return $ret_or_2 - }; return nil; })())) { + if (($truthy(["const", "cvar"]['$include?'](get_type)) && ($eqeq(root_type, "or")))) { defined_node = self.$s("defined?", get_node); - condition_node = self.$s("if", defined_node, self.$s("begin", condition_node), rhs);}; - return lhs.$updated(set_type, [].concat(Opal.to_a(lhs)).concat([condition_node]));}, $$4.$$s = self, $$4.$$arity = 3, $$4));}, $LogicalOperatorAssignment$3.$$s = self, $LogicalOperatorAssignment$3.$$arity = 2, $LogicalOperatorAssignment$3))); - Opal.const_set($nesting[0], 'LocalVariableHandler', $$($nesting, 'GET_SET')['$[]']("lvar", "lvasgn")); - Opal.const_set($nesting[0], 'InstanceVariableHandler', $$($nesting, 'GET_SET')['$[]']("ivar", "ivasgn")); - Opal.const_set($nesting[0], 'ConstantHandler', $$($nesting, 'GET_SET')['$[]']("const", "casgn")); - Opal.const_set($nesting[0], 'GlobalVariableHandler', $$($nesting, 'GET_SET')['$[]']("gvar", "gvasgn")); - Opal.const_set($nesting[0], 'ClassVariableHandler', $$($nesting, 'GET_SET')['$[]']("cvar", "cvasgn")); - (function($base, $super, $parent_nesting) { + condition_node = self.$s("if", defined_node, self.$s("begin", condition_node), rhs); + }; + return lhs.$updated(set_type, [].concat($to_a(lhs)).concat([condition_node]));}, {$$arity: 3, $$s: self});}, {$$arity: 2, $$s: self})); + $const_set($nesting[0], 'LocalVariableHandler', $$('GET_SET')['$[]']("lvar", "lvasgn")); + $const_set($nesting[0], 'InstanceVariableHandler', $$('GET_SET')['$[]']("ivar", "ivasgn")); + $const_set($nesting[0], 'ConstantHandler', $$('GET_SET')['$[]']("const", "casgn")); + $const_set($nesting[0], 'GlobalVariableHandler', $$('GET_SET')['$[]']("gvar", "gvasgn")); + $const_set($nesting[0], 'ClassVariableHandler', $$('GET_SET')['$[]']("cvar", "cvasgn")); + (function($base, $super) { var self = $klass($base, $super, 'SendHandler'); - var $nesting = [self].concat($parent_nesting), $SendHandler_call$5; - - return (Opal.defs(self, '$call', $SendHandler_call$5 = function $$call(lhs, rhs, root_type) { - var $a, self = this, recvr = nil, reader_method = nil, args = nil, $ret_or_3 = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_writer = nil, get_or_set = nil; + + return $defs(self, '$call', function $$call(lhs, rhs, root_type) { + var $a, self = this, recvr = nil, reader_method = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_writer = nil, get_or_set = nil; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy((function() {if ($truthy(($ret_or_3 = recvr))) { - return recvr.$type()['$==']("send") - } else { - return $ret_or_3 - }; return nil; })())) { + $a = [].concat($to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if (($truthy(recvr) && ($eqeq(recvr.$type(), "send")))) { recvr_tmp = self.$new_temp(); cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); - recvr = self.$s("js_tmp", recvr_tmp);}; + recvr = self.$s("js_tmp", recvr_tmp); + }; writer_method = "" + (reader_method) + "="; - call_reader = lhs.$updated("send", [recvr, reader_method].concat(Opal.to_a(args))); - call_writer = lhs.$updated("send", [recvr, writer_method].concat(Opal.to_a(args)).concat([rhs])); + call_reader = lhs.$updated("send", [recvr, reader_method].concat($to_a(args))); + call_writer = lhs.$updated("send", [recvr, writer_method].concat($to_a(args)).concat([rhs])); get_or_set = self.$s(root_type, call_reader, call_writer); if ($truthy(cache_recvr)) { return self.$s("begin", cache_recvr, get_or_set) } else { return get_or_set }; - }, $SendHandler_call$5.$$arity = 3), nil) && 'call' - })($nesting[0], self, $nesting); - (function($base, $super, $parent_nesting) { + }, 3) + })($nesting[0], self); + (function($base, $super) { var self = $klass($base, $super, 'ConditionalSendHandler'); - var $nesting = [self].concat($parent_nesting), $ConditionalSendHandler_call$6; - - return (Opal.defs(self, '$call', $ConditionalSendHandler_call$6 = function $$call(lhs, rhs, root_type) { + + return $defs(self, '$call', function $$call(lhs, rhs, root_type) { var $a, self = this, recvr = nil, meth = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, recvr_is_nil = nil, plain_send = nil, plain_or_asgn = nil; root_type = "" + (root_type) + "_asgn"; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + $a = [].concat($to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; recvr_tmp = self.$new_temp(); cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); recvr = self.$s("js_tmp", recvr_tmp); recvr_is_nil = self.$s("send", recvr, "nil?"); - plain_send = lhs.$updated("send", [recvr, meth].concat(Opal.to_a(args))); + plain_send = lhs.$updated("send", [recvr, meth].concat($to_a(args))); plain_or_asgn = self.$s(root_type, plain_send, rhs); return self.$s("begin", cache_recvr, self.$s("if", recvr_is_nil, self.$s("nil"), plain_or_asgn)); - }, $ConditionalSendHandler_call$6.$$arity = 3), nil) && 'call' - })($nesting[0], self, $nesting); - Opal.const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$($nesting, 'LocalVariableHandler'), "ivasgn": $$($nesting, 'InstanceVariableHandler'), "casgn": $$($nesting, 'ConstantHandler'), "gvasgn": $$($nesting, 'GlobalVariableHandler'), "cvasgn": $$($nesting, 'ClassVariableHandler'), "send": $$($nesting, 'SendHandler'), "csend": $$($nesting, 'ConditionalSendHandler')}).$freeze()); + }, 3) + })($nesting[0], self); + $const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$('LocalVariableHandler'), "ivasgn": $$('InstanceVariableHandler'), "casgn": $$('ConstantHandler'), "gvasgn": $$('GlobalVariableHandler'), "cvasgn": $$('ClassVariableHandler'), "send": $$('SendHandler'), "csend": $$('ConditionalSendHandler')}).$freeze()); - Opal.def(self, '$on_or_asgn', $LogicalOperatorAssignment_on_or_asgn$7 = function $$on_or_asgn(node) { - var $a, $$8, self = this, lhs = nil, rhs = nil, result = nil; + $def(self, '$on_or_asgn', function $$on_or_asgn(node) { + var $a, self = this, lhs = nil, rhs = nil, result = nil; - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + $a = [].concat($to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + result = $send($$('HANDLERS'), 'fetch', [lhs.$type()], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$8.$$s = self, $$8.$$arity = 0, $$8)).$call(lhs, rhs, "or"); + return self.$error("cannot handle LHS type: " + (lhs.$type()))}, {$$arity: 0, $$s: self}).$call(lhs, rhs, "or"); return self.$process(result); - }, $LogicalOperatorAssignment_on_or_asgn$7.$$arity = 1); + }, 1); - Opal.def(self, '$on_and_asgn', $LogicalOperatorAssignment_on_and_asgn$9 = function $$on_and_asgn(node) { - var $a, $$10, self = this, lhs = nil, rhs = nil, result = nil; + $def(self, '$on_and_asgn', function $$on_and_asgn(node) { + var $a, self = this, lhs = nil, rhs = nil, result = nil; - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + $a = [].concat($to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + result = $send($$('HANDLERS'), 'fetch', [lhs.$type()], function $$5(){var self = $$5.$$s == null ? this : $$5.$$s; - return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$10.$$s = self, $$10.$$arity = 0, $$10)).$call(lhs, rhs, "and"); + return self.$error("cannot handle LHS type: " + (lhs.$type()))}, {$$arity: 0, $$s: self}).$call(lhs, rhs, "and"); return self.$process(result); - }, $LogicalOperatorAssignment_on_and_asgn$9.$$arity = 1); - Opal.const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); - return (Opal.def(self, '$on_defined?', $LogicalOperatorAssignment_on_defined$ques$11 = function(node) { - var $a, $iter = $LogicalOperatorAssignment_on_defined$ques$11.$$p, $yield = $iter || nil, self = this, inner = nil, _ = nil; + }, 1); + $const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); + return $def(self, '$on_defined?', function $LogicalOperatorAssignment_on_defined$ques$6(node) { + var $a, $yield = $LogicalOperatorAssignment_on_defined$ques$6.$$p || nil, self = this, inner = nil, _ = nil; - if ($iter) $LogicalOperatorAssignment_on_defined$ques$11.$$p = null; + delete $LogicalOperatorAssignment_on_defined$ques$6.$$p; - $a = [].concat(Opal.to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; if ($truthy(["or_asgn", "and_asgn"]['$include?'](inner.$type()))) { - return $$($nesting, 'ASSIGNMENT_STRING_NODE') + return $$('ASSIGNMENT_STRING_NODE') } else { - return $send2(self, $find_super(self, 'on_defined?', $LogicalOperatorAssignment_on_defined$ques$11, false, true), 'on_defined?', [node], null) + return $send2(self, $find_super(self, 'on_defined?', $LogicalOperatorAssignment_on_defined$ques$6, false, true), 'on_defined?', [node], null) }; - }, $LogicalOperatorAssignment_on_defined$ques$11.$$arity = 1), nil) && 'on_defined?'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/binary_operator_assignment"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $lambda = Opal.lambda, $slice = Opal.slice, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/binary_operator_assignment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $defs = Opal.defs, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $rb_plus = Opal.rb_plus, $const_set = Opal.const_set, $lambda = Opal.lambda, $to_a = Opal.to_a, $slice = Opal.slice, $eqeq = Opal.eqeq, $hash2 = Opal.hash2, $send = Opal.send, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$+', '$updated', '$s', '$[]', '$==', '$type', '$new_temp', '$freeze', '$call', '$fetch', '$error', '$process']); + Opal.add_stubs('require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -30208,154 +26913,129 @@ Opal.modules["opal/rewriters/binary_operator_assignment"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'BinaryOperatorAssignment'); - var $nesting = [self].concat($parent_nesting), $BinaryOperatorAssignment_reset_tmp_counter$excl$1, $BinaryOperatorAssignment_new_temp$2, $BinaryOperatorAssignment$3, $BinaryOperatorAssignment_on_op_asgn$7, $BinaryOperatorAssignment_on_defined$ques$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$reset_tmp_counter!', $BinaryOperatorAssignment_reset_tmp_counter$excl$1 = function() { - var self = this; - + $defs(self, '$reset_tmp_counter!', function $BinaryOperatorAssignment_reset_tmp_counter$excl$1() { + return $class_variable_set($nesting[0], '@@counter', 0) - }, $BinaryOperatorAssignment_reset_tmp_counter$excl$1.$$arity = 0); - Opal.defs(self, '$new_temp', $BinaryOperatorAssignment_new_temp$2 = function $$new_temp() { - var $a, self = this, $ret_or_1 = nil; + }, 0); + $defs(self, '$new_temp', function $$new_temp() { + var $a, $ret_or_1 = nil; - $class_variable_set($nesting[0], '@@counter', (function() {if ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil))) { - - if ($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false)))) { - return $ret_or_1 - } else { - return 0 - }; - } else { - return 0 - }; return nil; })()); + $class_variable_set($nesting[0], '@@counter', ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil)) ? (($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false))) ? ($ret_or_1) : (0))) : (0))); $class_variable_set($nesting[0], '@@counter', $rb_plus($class_variable_get($nesting[0], '@@counter', false), 1)); - return "" + "$binary_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); - }, $BinaryOperatorAssignment_new_temp$2.$$arity = 0); - Opal.const_set($nesting[0], 'GET_SET', $lambda(($BinaryOperatorAssignment$3 = function(get_type, set_type){var self = $BinaryOperatorAssignment$3.$$s == null ? this : $BinaryOperatorAssignment$3.$$s, $$4; - + return "$binary_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); + }, 0); + $const_set($nesting[0], 'GET_SET', $lambda(function $BinaryOperatorAssignment$2(get_type, set_type){ - if (get_type == null) { - get_type = nil; - }; + if (get_type == null) get_type = nil;; - if (set_type == null) { - set_type = nil; - }; - return $lambda(($$4 = function(lhs, operation, rhs){var self = $$4.$$s == null ? this : $$4.$$s, get_node = nil, set_node = nil; + if (set_type == null) set_type = nil;; + return $lambda(function $$3(node, lhs, operation, rhs){var get_node = nil, set_node = nil; - if (lhs == null) { - lhs = nil; - }; + if (node == null) node = nil;; - if (operation == null) { - operation = nil; - }; + if (lhs == null) lhs = nil;; - if (rhs == null) { - rhs = nil; - }; + if (operation == null) operation = nil;; + + if (rhs == null) rhs = nil;; get_node = lhs.$updated(get_type); - set_node = self.$s("send", get_node, operation, rhs); - return lhs.$updated(set_type, [].concat(Opal.to_a(lhs)).concat([set_node]));}, $$4.$$s = self, $$4.$$arity = 3, $$4));}, $BinaryOperatorAssignment$3.$$s = self, $BinaryOperatorAssignment$3.$$arity = 2, $BinaryOperatorAssignment$3))); - Opal.const_set($nesting[0], 'LocalVariableHandler', $$($nesting, 'GET_SET')['$[]']("lvar", "lvasgn")); - Opal.const_set($nesting[0], 'InstanceVariableHandler', $$($nesting, 'GET_SET')['$[]']("ivar", "ivasgn")); - Opal.const_set($nesting[0], 'ConstantHandler', $$($nesting, 'GET_SET')['$[]']("const", "casgn")); - Opal.const_set($nesting[0], 'GlobalVariableHandler', $$($nesting, 'GET_SET')['$[]']("gvar", "gvasgn")); - Opal.const_set($nesting[0], 'ClassVariableHandler', $$($nesting, 'GET_SET')['$[]']("cvar", "cvasgn")); - (function($base, $super, $parent_nesting) { + set_node = node.$updated("send", [get_node, operation, rhs]); + return lhs.$updated(set_type, [].concat($to_a(lhs)).concat([set_node]));}, 4);}, 2)); + $const_set($nesting[0], 'LocalVariableHandler', $$('GET_SET')['$[]']("lvar", "lvasgn")); + $const_set($nesting[0], 'InstanceVariableHandler', $$('GET_SET')['$[]']("ivar", "ivasgn")); + $const_set($nesting[0], 'ConstantHandler', $$('GET_SET')['$[]']("const", "casgn")); + $const_set($nesting[0], 'GlobalVariableHandler', $$('GET_SET')['$[]']("gvar", "gvasgn")); + $const_set($nesting[0], 'ClassVariableHandler', $$('GET_SET')['$[]']("cvar", "cvasgn")); + (function($base, $super) { var self = $klass($base, $super, 'SendHandler'); - var $nesting = [self].concat($parent_nesting), $SendHandler_call$5; - - return (Opal.defs(self, '$call', $SendHandler_call$5 = function $$call(lhs, operation, rhs) { - var $a, self = this, recvr = nil, reader_method = nil, args = nil, $ret_or_2 = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_op = nil, call_writer = nil; + + return $defs(self, '$call', function $$call(node, lhs, operation, rhs) { + var $a, self = this, recvr = nil, reader_method = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_op = nil, call_writer = nil; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy((function() {if ($truthy(($ret_or_2 = recvr))) { - return recvr.$type()['$==']("send") - } else { - return $ret_or_2 - }; return nil; })())) { + $a = [].concat($to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if (($truthy(recvr) && ($eqeq(recvr.$type(), "send")))) { recvr_tmp = self.$new_temp(); cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); - recvr = self.$s("js_tmp", recvr_tmp);}; + recvr = self.$s("js_tmp", recvr_tmp); + }; writer_method = "" + (reader_method) + "="; - call_reader = lhs.$updated("send", [recvr, reader_method].concat(Opal.to_a(args))); - call_op = self.$s("send", call_reader, operation, rhs); - call_writer = lhs.$updated("send", [recvr, writer_method].concat(Opal.to_a(args)).concat([call_op])); + call_reader = lhs.$updated("send", [recvr, reader_method].concat($to_a(args))); + call_op = node.$updated("send", [call_reader, operation, rhs]); + call_writer = lhs.$updated("send", [recvr, writer_method].concat($to_a(args)).concat([call_op])); if ($truthy(cache_recvr)) { - return self.$s("begin", cache_recvr, call_writer) + return node.$updated("begin", [cache_recvr, call_writer]) } else { return call_writer }; - }, $SendHandler_call$5.$$arity = 3), nil) && 'call' - })($nesting[0], self, $nesting); - (function($base, $super, $parent_nesting) { + }, 4) + })($nesting[0], self); + (function($base, $super) { var self = $klass($base, $super, 'ConditionalSendHandler'); - var $nesting = [self].concat($parent_nesting), $ConditionalSendHandler_call$6; - - return (Opal.defs(self, '$call', $ConditionalSendHandler_call$6 = function $$call(lhs, operation, rhs) { + + return $defs(self, '$call', function $$call(node, lhs, operation, rhs) { var $a, self = this, recvr = nil, meth = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, recvr_is_nil = nil, plain_send = nil, plain_op_asgn = nil; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + $a = [].concat($to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; recvr_tmp = self.$new_temp(); cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); recvr = self.$s("js_tmp", recvr_tmp); recvr_is_nil = self.$s("send", recvr, "nil?"); - plain_send = lhs.$updated("send", [recvr, meth].concat(Opal.to_a(args))); - plain_op_asgn = self.$s("op_asgn", plain_send, operation, rhs); + plain_send = lhs.$updated("send", [recvr, meth].concat($to_a(args))); + plain_op_asgn = node.$updated("op_asgn", [plain_send, operation, rhs]); return self.$s("begin", cache_recvr, self.$s("if", recvr_is_nil, self.$s("nil"), plain_op_asgn)); - }, $ConditionalSendHandler_call$6.$$arity = 3), nil) && 'call' - })($nesting[0], self, $nesting); - Opal.const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$($nesting, 'LocalVariableHandler'), "ivasgn": $$($nesting, 'InstanceVariableHandler'), "casgn": $$($nesting, 'ConstantHandler'), "gvasgn": $$($nesting, 'GlobalVariableHandler'), "cvasgn": $$($nesting, 'ClassVariableHandler'), "send": $$($nesting, 'SendHandler'), "csend": $$($nesting, 'ConditionalSendHandler')}).$freeze()); + }, 4) + })($nesting[0], self); + $const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$('LocalVariableHandler'), "ivasgn": $$('InstanceVariableHandler'), "casgn": $$('ConstantHandler'), "gvasgn": $$('GlobalVariableHandler'), "cvasgn": $$('ClassVariableHandler'), "send": $$('SendHandler'), "csend": $$('ConditionalSendHandler')}).$freeze()); - Opal.def(self, '$on_op_asgn', $BinaryOperatorAssignment_on_op_asgn$7 = function $$on_op_asgn(node) { - var $a, $$8, self = this, lhs = nil, op = nil, rhs = nil, result = nil; + $def(self, '$on_op_asgn', function $$on_op_asgn(node) { + var $a, self = this, lhs = nil, op = nil, rhs = nil, result = nil; - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (op = ($a[1] == null ? nil : $a[1])), (rhs = ($a[2] == null ? nil : $a[2])), $a; - result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + $a = [].concat($to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (op = ($a[1] == null ? nil : $a[1])), (rhs = ($a[2] == null ? nil : $a[2])), $a; + result = $send($$('HANDLERS'), 'fetch', [lhs.$type()], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$8.$$s = self, $$8.$$arity = 0, $$8)).$call(lhs, op, rhs); + return self.$error("cannot handle LHS type: " + (lhs.$type()))}, {$$arity: 0, $$s: self}).$call(node, lhs, op, rhs); return self.$process(result); - }, $BinaryOperatorAssignment_on_op_asgn$7.$$arity = 1); - Opal.const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); - return (Opal.def(self, '$on_defined?', $BinaryOperatorAssignment_on_defined$ques$9 = function(node) { - var $a, $iter = $BinaryOperatorAssignment_on_defined$ques$9.$$p, $yield = $iter || nil, self = this, inner = nil, _ = nil; + }, 1); + $const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); + return $def(self, '$on_defined?', function $BinaryOperatorAssignment_on_defined$ques$5(node) { + var $a, $yield = $BinaryOperatorAssignment_on_defined$ques$5.$$p || nil, self = this, inner = nil, _ = nil; - if ($iter) $BinaryOperatorAssignment_on_defined$ques$9.$$p = null; + delete $BinaryOperatorAssignment_on_defined$ques$5.$$p; - $a = [].concat(Opal.to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if (inner.$type()['$==']("op_asgn")) { - return $$($nesting, 'ASSIGNMENT_STRING_NODE') + $a = [].concat($to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + if ($eqeq(inner.$type(), "op_asgn")) { + return $$('ASSIGNMENT_STRING_NODE') } else { - return $send2(self, $find_super(self, 'on_defined?', $BinaryOperatorAssignment_on_defined$ques$9, false, true), 'on_defined?', [node], null) + return $send2(self, $find_super(self, 'on_defined?', $BinaryOperatorAssignment_on_defined$ques$5, false, true), 'on_defined?', [node], null) }; - }, $BinaryOperatorAssignment_on_defined$ques$9.$$arity = 1), nil) && 'on_defined?'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; +Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $Opal = Opal.Opal; - Opal.add_stubs(['$require', '$new', '$include?', '$type', '$<<', '$==', '$process_regular_node', '$updated', '$inspect', '$warn']); + Opal.add_stubs('require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn'); self.$require("opal/rewriters/base"); self.$require("set"); @@ -30377,91 +27057,88 @@ Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'KeyDuplicatesRewriter'); - var $nesting = [self].concat($parent_nesting), $KeyDuplicatesRewriter_initialize$1, $KeyDuplicatesRewriter_on_hash$2, $KeyDuplicatesRewriter_on_pair$3, $KeyDuplicatesRewriter_on_kwsplat$4; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.keys = nil; + $proto.keys = nil; - Opal.def(self, '$initialize', $KeyDuplicatesRewriter_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; - return (self.keys = $$($nesting, 'UniqKeysSet').$new()) - }, $KeyDuplicatesRewriter_initialize$1.$$arity = 0); + return (self.keys = $$('UniqKeysSet').$new()) + }, 0); - Opal.def(self, '$on_hash', $KeyDuplicatesRewriter_on_hash$2 = function $$on_hash(node) { - var $a, $iter = $KeyDuplicatesRewriter_on_hash$2.$$p, $yield = $iter || nil, self = this, previous_keys = nil; + $def(self, '$on_hash', function $$on_hash(node) { + var $a, $yield = $$on_hash.$$p || nil, self = this, previous_keys = nil; - if ($iter) $KeyDuplicatesRewriter_on_hash$2.$$p = null; + delete $$on_hash.$$p; return (function() { try { - $a = [self.keys, $$($nesting, 'UniqKeysSet').$new()], (previous_keys = $a[0]), (self.keys = $a[1]), $a; - return $send2(self, $find_super(self, 'on_hash', $KeyDuplicatesRewriter_on_hash$2, false, true), 'on_hash', [node], null); + $a = [self.keys, $$('UniqKeysSet').$new()], (previous_keys = $a[0]), (self.keys = $a[1]), $a; + return $send2(self, $find_super(self, 'on_hash', $$on_hash, false, true), 'on_hash', [node], null); } finally { (self.keys = previous_keys) }; })() - }, $KeyDuplicatesRewriter_on_hash$2.$$arity = 1); + }, 1); - Opal.def(self, '$on_pair', $KeyDuplicatesRewriter_on_pair$3 = function $$on_pair(node) { - var $a, $iter = $KeyDuplicatesRewriter_on_pair$3.$$p, $yield = $iter || nil, self = this, key = nil, _value = nil; + $def(self, '$on_pair', function $$on_pair(node) { + var $a, $yield = $$on_pair.$$p || nil, self = this, key = nil, _value = nil; - if ($iter) $KeyDuplicatesRewriter_on_pair$3.$$p = null; + delete $$on_pair.$$p; - $a = [].concat(Opal.to_a(node)), (key = ($a[0] == null ? nil : $a[0])), (_value = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (key = ($a[0] == null ? nil : $a[0])), (_value = ($a[1] == null ? nil : $a[1])), $a; if ($truthy(["str", "sym"]['$include?'](key.$type()))) { - self.keys['$<<'](key)}; - return $send2(self, $find_super(self, 'on_pair', $KeyDuplicatesRewriter_on_pair$3, false, true), 'on_pair', [node], null); - }, $KeyDuplicatesRewriter_on_pair$3.$$arity = 1); + self.keys['$<<'](key) + }; + return $send2(self, $find_super(self, 'on_pair', $$on_pair, false, true), 'on_pair', [node], null); + }, 1); - Opal.def(self, '$on_kwsplat', $KeyDuplicatesRewriter_on_kwsplat$4 = function $$on_kwsplat(node) { + $def(self, '$on_kwsplat', function $$on_kwsplat(node) { var $a, self = this, hash = nil, _ = nil; - $a = [].concat(Opal.to_a(node)), (hash = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if (hash.$type()['$==']("hash")) { - hash = self.$process_regular_node(hash)}; + $a = [].concat($to_a(node)), (hash = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + if ($eqeq(hash.$type(), "hash")) { + hash = self.$process_regular_node(hash) + }; return node.$updated(nil, [hash]); - }, $KeyDuplicatesRewriter_on_kwsplat$4.$$arity = 1); + }, 1); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'UniqKeysSet'); - var $nesting = [self].concat($parent_nesting), $UniqKeysSet_initialize$5, $UniqKeysSet_$lt$lt$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.set = nil; + $proto.set = nil; - Opal.def(self, '$initialize', $UniqKeysSet_initialize$5 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; - return (self.set = $$($nesting, 'Set').$new()) - }, $UniqKeysSet_initialize$5.$$arity = 0); - return (Opal.def(self, '$<<', $UniqKeysSet_$lt$lt$6 = function(element) { + return (self.set = $$('Set').$new()) + }, 0); + return $def(self, '$<<', function $UniqKeysSet_$lt$lt$1(element) { var $a, self = this, key = nil, _ = nil; if ($truthy(self.set['$include?'](element))) { - $a = [].concat(Opal.to_a(element)), (key = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - key = (function() {if (element.$type()['$==']("str")) { - return key.$inspect() - } else { - return "" + ":" + (key) - }; return nil; })(); - return $$($nesting, 'Kernel').$warn("" + "warning: key " + (key) + " is duplicated and overwritten"); + $a = [].concat($to_a(element)), (key = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + key = ($eqeq(element.$type(), "str") ? (key.$inspect()) : (":" + (key))); + return $$('Kernel').$warn("warning: key " + (key) + " is duplicated and overwritten"); } else { return self.set['$<<'](element) } - }, $UniqKeysSet_$lt$lt$6.$$arity = 1), nil) && '<<'; + }, 1); })($nesting[0], null, $nesting); - })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting) + })($nesting[0], $$$($$$($Opal, 'Rewriters'), 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/dump_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2; +Opal.modules["opal/rewriters/dump_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $hash2 = Opal.hash2, $def = Opal.def; - Opal.add_stubs(['$require', '$updated']); + Opal.add_stubs('require,updated'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -30472,56 +27149,51 @@ Opal.modules["opal/rewriters/dump_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DumpArgs'); - var $nesting = [self].concat($parent_nesting), $DumpArgs_on_def$1, $DumpArgs_on_defs$2, $DumpArgs_on_iter$3; - - Opal.def(self, '$on_def', $DumpArgs_on_def$1 = function $$on_def(node) { - var $a, $iter = $DumpArgs_on_def$1.$$p, $yield = $iter || nil, self = this, _mid = nil, args = nil, _body = nil; + + $def(self, '$on_def', function $$on_def(node) { + var $a, $yield = $$on_def.$$p || nil, self = this, _mid = nil, args = nil, _body = nil; - if ($iter) $DumpArgs_on_def$1.$$p = null; + delete $$on_def.$$p; - node = $send2(self, $find_super(self, 'on_def', $DumpArgs_on_def$1, false, true), 'on_def', [node], null); - $a = [].concat(Opal.to_a(node)), (_mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (_body = ($a[2] == null ? nil : $a[2])), $a; + node = $send2(self, $find_super(self, 'on_def', $$on_def, false, true), 'on_def', [node], null); + $a = [].concat($to_a(node)), (_mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (_body = ($a[2] == null ? nil : $a[2])), $a; return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); - }, $DumpArgs_on_def$1.$$arity = 1); + }, 1); - Opal.def(self, '$on_defs', $DumpArgs_on_defs$2 = function $$on_defs(node) { - var $a, $iter = $DumpArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, _recv = nil, _mid = nil, args = nil, _body = nil; + $def(self, '$on_defs', function $$on_defs(node) { + var $a, $yield = $$on_defs.$$p || nil, self = this, _recv = nil, _mid = nil, args = nil, _body = nil; - if ($iter) $DumpArgs_on_defs$2.$$p = null; + delete $$on_defs.$$p; - node = $send2(self, $find_super(self, 'on_defs', $DumpArgs_on_defs$2, false, true), 'on_defs', [node], null); - $a = [].concat(Opal.to_a(node)), (_recv = ($a[0] == null ? nil : $a[0])), (_mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (_body = ($a[3] == null ? nil : $a[3])), $a; + node = $send2(self, $find_super(self, 'on_defs', $$on_defs, false, true), 'on_defs', [node], null); + $a = [].concat($to_a(node)), (_recv = ($a[0] == null ? nil : $a[0])), (_mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (_body = ($a[3] == null ? nil : $a[3])), $a; return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); - }, $DumpArgs_on_defs$2.$$arity = 1); - return (Opal.def(self, '$on_iter', $DumpArgs_on_iter$3 = function $$on_iter(node) { - var $a, $iter = $DumpArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, _body = nil; + }, 1); + return $def(self, '$on_iter', function $$on_iter(node) { + var $a, $yield = $$on_iter.$$p || nil, self = this, args = nil, _body = nil; - if ($iter) $DumpArgs_on_iter$3.$$p = null; + delete $$on_iter.$$p; - node = $send2(self, $find_super(self, 'on_iter', $DumpArgs_on_iter$3, false, true), 'on_iter', [node], null); - $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (_body = ($a[1] == null ? nil : $a[1])), $a; + node = $send2(self, $find_super(self, 'on_iter', $$on_iter, false, true), 'on_iter', [node], null); + $a = [].concat($to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (_body = ($a[1] == null ? nil : $a[1])), $a; return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); - }, $DumpArgs_on_iter$3.$$arity = 1), nil) && 'on_iter'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $truthy = Opal.truthy, $def = Opal.def, $rb_plus = Opal.rb_plus, $send = Opal.send, $eqeq = Opal.eqeq, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$new', '$updated', '$rewritten', '$initialization', '$s', '$prepend_to_body', '$attr_reader', '$split!', '$+', '$each', '$children', '$==', '$type', '$new_mlhs_tmp', '$process', '$<<', '$length', '$[]', '$empty?']); + Opal.add_stubs('require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -30532,127 +27204,112 @@ Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'MlhsArgs'); - var $nesting = [self].concat($parent_nesting), $MlhsArgs_on_def$1, $MlhsArgs_on_defs$2, $MlhsArgs_on_iter$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$on_def', $MlhsArgs_on_def$1 = function $$on_def(node) { - var $a, $iter = $MlhsArgs_on_def$1.$$p, $yield = $iter || nil, self = this, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; + $def(self, '$on_def', function $$on_def(node) { + var $a, $yield = $$on_def.$$p || nil, self = this, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; - if ($iter) $MlhsArgs_on_def$1.$$p = null; + delete $$on_def.$$p; - node = $send2(self, $find_super(self, 'on_def', $MlhsArgs_on_def$1, false, true), 'on_def', [node], null); - $a = [].concat(Opal.to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; - arguments$ = $$($nesting, 'Arguments').$new(args); + node = $send2(self, $find_super(self, 'on_def', $$on_def, false, true), 'on_def', [node], null); + $a = [].concat($to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + arguments$ = $$('Arguments').$new(args); args = args.$updated(nil, arguments$.$rewritten()); if ($truthy(arguments$.$initialization())) { - body = (function() {if ($truthy(($ret_or_1 = body))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })(); - body = self.$prepend_to_body(body, arguments$.$initialization());}; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + body = self.$prepend_to_body(body, arguments$.$initialization()); + }; return node.$updated(nil, [mid, args, body]); - }, $MlhsArgs_on_def$1.$$arity = 1); + }, 1); - Opal.def(self, '$on_defs', $MlhsArgs_on_defs$2 = function $$on_defs(node) { - var $a, $iter = $MlhsArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_2 = nil; + $def(self, '$on_defs', function $$on_defs(node) { + var $a, $yield = $$on_defs.$$p || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; - if ($iter) $MlhsArgs_on_defs$2.$$p = null; + delete $$on_defs.$$p; - node = $send2(self, $find_super(self, 'on_defs', $MlhsArgs_on_defs$2, false, true), 'on_defs', [node], null); - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; - arguments$ = $$($nesting, 'Arguments').$new(args); + node = $send2(self, $find_super(self, 'on_defs', $$on_defs, false, true), 'on_defs', [node], null); + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; + arguments$ = $$('Arguments').$new(args); args = args.$updated(nil, arguments$.$rewritten()); if ($truthy(arguments$.$initialization())) { - body = (function() {if ($truthy(($ret_or_2 = body))) { - return $ret_or_2 - } else { - return self.$s("nil") - }; return nil; })(); - body = self.$prepend_to_body(body, arguments$.$initialization());}; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + body = self.$prepend_to_body(body, arguments$.$initialization()); + }; return node.$updated(nil, [recv, mid, args, body]); - }, $MlhsArgs_on_defs$2.$$arity = 1); + }, 1); - Opal.def(self, '$on_iter', $MlhsArgs_on_iter$3 = function $$on_iter(node) { - var $a, $iter = $MlhsArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, body = nil, arguments$ = nil, $ret_or_3 = nil; + $def(self, '$on_iter', function $$on_iter(node) { + var $a, $yield = $$on_iter.$$p || nil, self = this, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; - if ($iter) $MlhsArgs_on_iter$3.$$p = null; + delete $$on_iter.$$p; - node = $send2(self, $find_super(self, 'on_iter', $MlhsArgs_on_iter$3, false, true), 'on_iter', [node], null); - $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; - arguments$ = $$($nesting, 'Arguments').$new(args); + node = $send2(self, $find_super(self, 'on_iter', $$on_iter, false, true), 'on_iter', [node], null); + $a = [].concat($to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; + arguments$ = $$('Arguments').$new(args); args = args.$updated(nil, arguments$.$rewritten()); if ($truthy(arguments$.$initialization())) { - body = (function() {if ($truthy(($ret_or_3 = body))) { - return $ret_or_3 - } else { - return self.$s("nil") - }; return nil; })(); - body = self.$prepend_to_body(body, arguments$.$initialization());}; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + body = self.$prepend_to_body(body, arguments$.$initialization()); + }; return node.$updated(nil, [args, body]); - }, $MlhsArgs_on_iter$3.$$arity = 1); + }, 1); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Arguments'); - var $nesting = [self].concat($parent_nesting), $Arguments_initialize$4, $Arguments_reset_tmp_counter$excl$5, $Arguments_new_mlhs_tmp$6, $Arguments_split$excl$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.counter = self.$$prototype.args = self.$$prototype.initialization = nil; + $proto.counter = $proto.args = $proto.initialization = nil; self.$attr_reader("rewritten", "initialization"); - Opal.def(self, '$initialize', $Arguments_initialize$4 = function $$initialize(args) { + $def(self, '$initialize', function $$initialize(args) { var self = this; self.args = args; self.rewritten = []; self.initialization = []; - self.rewriter = $$($nesting, 'MlhsRewriter').$new(); + self.rewriter = $$('MlhsRewriter').$new(); return self['$split!'](); - }, $Arguments_initialize$4.$$arity = 1); + }, 1); - Opal.def(self, '$reset_tmp_counter!', $Arguments_reset_tmp_counter$excl$5 = function() { + $def(self, '$reset_tmp_counter!', function $Arguments_reset_tmp_counter$excl$1() { var self = this; return (self.counter = 0) - }, $Arguments_reset_tmp_counter$excl$5.$$arity = 0); + }, 0); - Opal.def(self, '$new_mlhs_tmp', $Arguments_new_mlhs_tmp$6 = function $$new_mlhs_tmp() { - var self = this, $ret_or_4 = nil; + $def(self, '$new_mlhs_tmp', function $$new_mlhs_tmp() { + var self = this, $ret_or_1 = nil; - self.counter = (function() {if ($truthy(($ret_or_4 = self.counter))) { - return $ret_or_4 - } else { - return 0 - }; return nil; })(); + self.counter = ($truthy(($ret_or_1 = self.counter)) ? ($ret_or_1) : (0)); self.counter = $rb_plus(self.counter, 1); - return "" + "$mlhs_tmp" + (self.counter); - }, $Arguments_new_mlhs_tmp$6.$$arity = 0); - return (Opal.def(self, '$split!', $Arguments_split$excl$7 = function() { - var $$8, self = this; + return "$mlhs_tmp" + (self.counter); + }, 0); + return $def(self, '$split!', function $Arguments_split$excl$2() { + var self = this; - $send(self.args.$children(), 'each', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s, var_name = nil, rhs = nil, mlhs = nil; + $send(self.args.$children(), 'each', [], function $$3(arg){var self = $$3.$$s == null ? this : $$3.$$s, var_name = nil, rhs = nil, mlhs = nil; if (self.rewriter == null) self.rewriter = nil; if (self.initialization == null) self.initialization = nil; if (self.rewritten == null) self.rewritten = nil; - if (arg == null) { - arg = nil; - }; - if (arg.$type()['$==']("mlhs")) { + if (arg == null) arg = nil;; + if ($eqeq(arg.$type(), "mlhs")) { var_name = self.$new_mlhs_tmp(); rhs = self.$s("lvar", var_name); @@ -30661,29 +27318,27 @@ Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) { return self.rewritten['$<<'](self.$s("arg", var_name).$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": var_name})}))); } else { return self.rewritten['$<<'](arg) - };}, $$8.$$s = self, $$8.$$arity = 1, $$8)); - if (self.initialization.$length()['$=='](1)) { + };}, {$$arity: 1, $$s: self}); + if ($eqeq(self.initialization.$length(), 1)) { return (self.initialization = self.initialization['$[]'](0)) } else if ($truthy(self.initialization['$empty?']())) { return (self.initialization = nil) } else { - return (self.initialization = $send(self, 's', ["begin"].concat(Opal.to_a(self.initialization)))) + return (self.initialization = $send(self, 's', ["begin"].concat($to_a(self.initialization)))) }; - }, $Arguments_split$excl$7.$$arity = 0), nil) && 'split!'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base'), $nesting); + return (function($base, $super) { var self = $klass($base, $super, 'MlhsRewriter'); - var $nesting = [self].concat($parent_nesting), $MlhsRewriter_on_arg$9, $MlhsRewriter_on_restarg$10; - - Opal.def(self, '$on_arg', $MlhsRewriter_on_arg$9 = function $$on_arg(node) { - var self = this; - + + $def(self, '$on_arg', function $$on_arg(node) { + return node.$updated("lvasgn") - }, $MlhsRewriter_on_arg$9.$$arity = 1); - return (Opal.def(self, '$on_restarg', $MlhsRewriter_on_restarg$10 = function $$on_restarg(node) { + }, 1); + return $def(self, '$on_restarg', function $$on_restarg(node) { var self = this, name = nil; @@ -30693,18 +27348,17 @@ Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) { } else { return self.$s("splat") }; - }, $MlhsRewriter_on_restarg$10.$$arity = 1), nil) && 'on_restarg'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base')); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/arguments"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/rewriters/arguments"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$each', '$type', '$===', '$<<', '$any?', '$raise', '$!', '$nil?', '$has_any_kwargs?', '$can_inline_kwargs?', '$empty?']); + Opal.add_stubs('attr_reader,each,===,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -30715,17 +27369,17 @@ Opal.modules["opal/rewriters/arguments"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Arguments'); - var $nesting = [self].concat($parent_nesting), $Arguments_initialize$1, $Arguments_has_post_args$ques$3, $Arguments_has_any_kwargs$ques$4, $Arguments_can_inline_kwargs$ques$5; + var $proto = self.$$prototype; - self.$$prototype.restarg = self.$$prototype.postargs = self.$$prototype.kwargs = self.$$prototype.kwoptargs = self.$$prototype.kwrestarg = self.$$prototype.optargs = nil; + $proto.restarg = $proto.postargs = $proto.kwargs = $proto.kwoptargs = $proto.kwrestarg = $proto.optargs = nil; self.$attr_reader("args", "optargs", "restarg", "postargs", "kwargs", "kwoptargs", "kwrestarg", "kwnilarg", "shadowargs", "blockarg"); - Opal.def(self, '$initialize', $Arguments_initialize$1 = function $$initialize(args) { - var $$2, self = this; + $def(self, '$initialize', function $$initialize(args) { + var self = this; self.args = []; @@ -30738,9 +27392,9 @@ Opal.modules["opal/rewriters/arguments"] = function(Opal) { self.kwnilarg = false; self.shadowargs = []; self.blockarg = nil; - return $send(args, 'each', [], ($$2 = function(arg){var self = $$2.$$s == null ? this : $$2.$$s, $case = nil, $ret_or_1 = nil; - if (self.restarg == null) self.restarg = nil; + return $send(args, 'each', [], function $$1(arg){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; if (self.optargs == null) self.optargs = nil; + if (self.restarg == null) self.restarg = nil; if (self.postargs == null) self.postargs = nil; if (self.args == null) self.args = nil; if (self.kwargs == null) self.kwargs = nil; @@ -30749,85 +27403,72 @@ Opal.modules["opal/rewriters/arguments"] = function(Opal) { - if (arg == null) { - arg = nil; - }; - return (function() {$case = arg.$type(); - if ("arg"['$===']($case) || "mlhs"['$===']($case)) {return (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = self.restarg))) { - return $ret_or_1 - } else { - return self.optargs['$any?']() - }; return nil; })())) { - return self.postargs - } else { - return self.args - }; return nil; })()['$<<'](arg)} - else if ("optarg"['$===']($case)) {return self.optargs['$<<'](arg)} - else if ("restarg"['$===']($case)) {return (self.restarg = arg)} - else if ("kwarg"['$===']($case)) {return self.kwargs['$<<'](arg)} - else if ("kwoptarg"['$===']($case)) {return self.kwoptargs['$<<'](arg)} - else if ("kwnilarg"['$===']($case)) {return (self.kwnilarg = true)} - else if ("kwrestarg"['$===']($case)) {return (self.kwrestarg = arg)} - else if ("shadowarg"['$===']($case)) {return self.shadowargs['$<<'](arg)} - else if ("blockarg"['$===']($case)) {return (self.blockarg = arg)} - else {return self.$raise("" + "Unsupported arg type " + (arg.$type()))}})();}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }, $Arguments_initialize$1.$$arity = 1); - - Opal.def(self, '$has_post_args?', $Arguments_has_post_args$ques$3 = function() { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; - - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.restarg['$nil?']()['$!']()))) { - return $ret_or_3 - } else { - return self.postargs['$any?']() - }; return nil; })()))) { - return $ret_or_2 + if (arg == null) arg = nil;; + if (($eqeqeq("arg", ($ret_or_1 = arg.$type())) || ($eqeqeq("mlhs", $ret_or_1)))) { + return (($truthy(self.restarg) || ($truthy(self.optargs['$any?']()))) ? (self.postargs) : (self.args))['$<<'](arg) + } else if ($eqeqeq("optarg", $ret_or_1)) { + return self.optargs['$<<'](arg) + } else if ($eqeqeq("restarg", $ret_or_1)) { + return (self.restarg = arg) + } else if ($eqeqeq("kwarg", $ret_or_1)) { + return self.kwargs['$<<'](arg) + } else if ($eqeqeq("kwoptarg", $ret_or_1)) { + return self.kwoptargs['$<<'](arg) + } else if ($eqeqeq("kwnilarg", $ret_or_1)) { + return (self.kwnilarg = true) + } else if ($eqeqeq("kwrestarg", $ret_or_1)) { + return (self.kwrestarg = arg) + } else if ($eqeqeq("shadowarg", $ret_or_1)) { + return self.shadowargs['$<<'](arg) + } else if ($eqeqeq("blockarg", $ret_or_1)) { + return (self.blockarg = arg) + } else { + return self.$raise("Unsupported arg type " + (arg.$type())) + };}, {$$arity: 1, $$s: self}); + }, 1); + + $def(self, '$has_post_args?', function $Arguments_has_post_args$ques$2() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.restarg['$nil?']()['$!']())) ? ($ret_or_2) : (self.postargs['$any?']()))))) { + return $ret_or_1 } else { - if ($truthy(($ret_or_4 = self['$has_any_kwargs?']()))) { + if ($truthy(($ret_or_2 = self['$has_any_kwargs?']()))) { return self['$can_inline_kwargs?']()['$!']() } else { - return $ret_or_4 + return $ret_or_2 }; } - }, $Arguments_has_post_args$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$has_any_kwargs?', $Arguments_has_any_kwargs$ques$4 = function() { - var self = this, $ret_or_5 = nil, $ret_or_6 = nil; + $def(self, '$has_any_kwargs?', function $Arguments_has_any_kwargs$ques$3() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.kwargs['$any?']()))) { - return $ret_or_6 - } else { - return self.kwoptargs['$any?']() - }; return nil; })()))) { - return $ret_or_5 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.kwargs['$any?']())) ? ($ret_or_2) : (self.kwoptargs['$any?']()))))) { + return $ret_or_1 } else { return self.kwrestarg['$nil?']()['$!']() } - }, $Arguments_has_any_kwargs$ques$4.$$arity = 0); - return (Opal.def(self, '$can_inline_kwargs?', $Arguments_can_inline_kwargs$ques$5 = function() { - var self = this, $ret_or_7 = nil, $ret_or_8 = nil; + }, 0); + return $def(self, '$can_inline_kwargs?', function $Arguments_can_inline_kwargs$ques$4() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self.optargs['$empty?']()))) { - return self.restarg['$nil?']() - } else { - return $ret_or_8 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.optargs['$empty?']())) ? (self.restarg['$nil?']()) : ($ret_or_2))))) { return self.postargs['$empty?']() } else { - return $ret_or_7 + return $ret_or_1 } - }, $Arguments_can_inline_kwargs$ques$5.$$arity = 0), nil) && 'can_inline_kwargs?'; - })($nesting[0], null, $nesting) + }, 0); + })($nesting[0], null) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/inline_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["opal/rewriters/inline_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $truthy = Opal.truthy, $hash2 = Opal.hash2, $def = Opal.def, $const_set = Opal.const_set, $send = Opal.send, $eqeq = Opal.eqeq, $Opal = Opal.Opal; - Opal.add_stubs(['$require', '$s', '$new', '$updated', '$inline', '$prepend_to_body', '$initialization', '$attr_reader', '$freeze', '$children', '$each', '$send', '$any?', '$blockarg', '$<<', '$shadowargs', '$args', '$==', '$[]', '$has_post_args?', '$length', '$has_any_kwargs?', '$can_inline_kwargs?', '$kwargs', '$kwoptargs', '$kwrestarg', '$postargs', '$optargs', '$args_to_keep', '$restarg']); + Opal.add_stubs('require,s,new,updated,inline,prepend_to_body,initialization,attr_reader,freeze,children,each,send,any?,blockarg,<<,shadowargs,args,==,[],has_post_args?,length,has_any_kwargs?,can_inline_kwargs?,kwargs,kwoptargs,kwrestarg,postargs,optargs,args_to_keep,restarg'); self.$require("opal/rewriters/base"); self.$require("opal/rewriters/arguments"); @@ -30839,80 +27480,68 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'InlineArgs'); - var $nesting = [self].concat($parent_nesting), $InlineArgs_on_def$1, $InlineArgs_on_defs$2, $InlineArgs_on_iter$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$on_def', $InlineArgs_on_def$1 = function $$on_def(node) { - var $a, $iter = $InlineArgs_on_def$1.$$p, $yield = $iter || nil, self = this, mid = nil, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; + $def(self, '$on_def', function $$on_def(node) { + var $a, $yield = $$on_def.$$p || nil, self = this, mid = nil, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; - if ($iter) $InlineArgs_on_def$1.$$p = null; + delete $$on_def.$$p; - node = $send2(self, $find_super(self, 'on_def', $InlineArgs_on_def$1, false, true), 'on_def', [node], null); - $a = [].concat(Opal.to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; - body = (function() {if ($truthy(($ret_or_1 = body))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })(); - initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "def"})); + node = $send2(self, $find_super(self, 'on_def', $$on_def, false, true), 'on_def', [node], null); + $a = [].concat($to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + initializer = $$('Initializer').$new(args, $hash2(["type"], {"type": "def"})); inline_args = args.$updated(nil, initializer.$inline()); body = self.$prepend_to_body(body, initializer.$initialization()); return node.$updated(nil, [mid, inline_args, body]); - }, $InlineArgs_on_def$1.$$arity = 1); + }, 1); - Opal.def(self, '$on_defs', $InlineArgs_on_defs$2 = function $$on_defs(node) { - var $a, $iter = $InlineArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, $ret_or_2 = nil, initializer = nil, inline_args = nil; + $def(self, '$on_defs', function $$on_defs(node) { + var $a, $yield = $$on_defs.$$p || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; - if ($iter) $InlineArgs_on_defs$2.$$p = null; + delete $$on_defs.$$p; - node = $send2(self, $find_super(self, 'on_defs', $InlineArgs_on_defs$2, false, true), 'on_defs', [node], null); - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; - body = (function() {if ($truthy(($ret_or_2 = body))) { - return $ret_or_2 - } else { - return self.$s("nil") - }; return nil; })(); - initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "defs"})); + node = $send2(self, $find_super(self, 'on_defs', $$on_defs, false, true), 'on_defs', [node], null); + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + initializer = $$('Initializer').$new(args, $hash2(["type"], {"type": "defs"})); inline_args = args.$updated(nil, initializer.$inline()); body = self.$prepend_to_body(body, initializer.$initialization()); return node.$updated(nil, [recv, mid, inline_args, body]); - }, $InlineArgs_on_defs$2.$$arity = 1); + }, 1); - Opal.def(self, '$on_iter', $InlineArgs_on_iter$3 = function $$on_iter(node) { - var $a, $iter = $InlineArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, body = nil, $ret_or_3 = nil, initializer = nil, inline_args = nil; + $def(self, '$on_iter', function $$on_iter(node) { + var $a, $yield = $$on_iter.$$p || nil, self = this, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; - if ($iter) $InlineArgs_on_iter$3.$$p = null; + delete $$on_iter.$$p; - node = $send2(self, $find_super(self, 'on_iter', $InlineArgs_on_iter$3, false, true), 'on_iter', [node], null); - $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; - body = (function() {if ($truthy(($ret_or_3 = body))) { - return $ret_or_3 - } else { - return self.$s("nil") - }; return nil; })(); - initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "iter"})); + node = $send2(self, $find_super(self, 'on_iter', $$on_iter, false, true), 'on_iter', [node], null); + $a = [].concat($to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + initializer = $$('Initializer').$new(args, $hash2(["type"], {"type": "iter"})); inline_args = args.$updated(nil, initializer.$inline()); body = self.$prepend_to_body(body, initializer.$initialization()); return node.$updated(nil, [inline_args, body]); - }, $InlineArgs_on_iter$3.$$arity = 1); + }, 1); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Initializer'); - var $nesting = [self].concat($parent_nesting), $Initializer_initialize$4, $Initializer_extract_blockarg$6, $Initializer_initialize_shadowargs$7, $Initializer_extract_args$9, $Initializer_prepare_post_args$11, $Initializer_prepare_kwargs$12, $Initializer_extract_kwargs$13, $Initializer_extract_kwoptargs$15, $Initializer_extract_kwrestarg$17, $Initializer_extract_post_args$18, $Initializer_extract_optargs$20, $Initializer_extract_restarg$22, $Initializer_args_to_keep$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.initialization = self.$$prototype.args = self.$$prototype.inline = nil; + $proto.initialization = $proto.args = $proto.inline = nil; self.$attr_reader("inline", "initialization"); - Opal.const_set($nesting[0], 'STEPS', ["extract_blockarg", "initialize_shadowargs", "extract_args", "prepare_post_args", "prepare_kwargs", "extract_optargs", "extract_restarg", "extract_post_args", "extract_kwargs", "extract_kwoptargs", "extract_kwrestarg"].$freeze()); + $const_set($nesting[0], 'STEPS', ["extract_blockarg", "initialize_shadowargs", "extract_args", "prepare_post_args", "prepare_kwargs", "extract_optargs", "extract_restarg", "extract_post_args", "extract_kwargs", "extract_kwoptargs", "extract_kwrestarg"].$freeze()); - Opal.def(self, '$initialize', $Initializer_initialize$4 = function $$initialize(args, $kwargs) { - var type, $$5, self = this; + $def(self, '$initialize', function $$initialize(args, $kwargs) { + var type, self = this; @@ -30926,27 +27555,25 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { throw Opal.ArgumentError.$new('missing keyword: type'); } type = $kwargs.$$smap["type"];; - self.args = $$($nesting, 'Arguments').$new(args.$children()); + self.args = $$('Arguments').$new(args.$children()); self.inline = []; self.initialization = []; self.type = type; self.underscore_found = false; - $send($$($nesting, 'STEPS'), 'each', [], ($$5 = function(step){var self = $$5.$$s == null ? this : $$5.$$s; + $send($$('STEPS'), 'each', [], function $$1(step){var self = $$1.$$s == null ? this : $$1.$$s; - if (step == null) { - step = nil; - }; - return self.$send(step);}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + if (step == null) step = nil;; + return self.$send(step);}, {$$arity: 1, $$s: self}); if ($truthy(self.initialization['$any?']())) { - return (self.initialization = $send(self, 's', ["begin"].concat(Opal.to_a(self.initialization)))) + return (self.initialization = $send(self, 's', ["begin"].concat($to_a(self.initialization)))) } else { return (self.initialization = nil) }; - }, $Initializer_initialize$4.$$arity = 2); + }, 2); - Opal.def(self, '$extract_blockarg', $Initializer_extract_blockarg$6 = function $$extract_blockarg() { + $def(self, '$extract_blockarg', function $$extract_blockarg() { var self = this, arg = nil; if ($truthy((arg = self.args.$blockarg()))) { @@ -30954,26 +27581,24 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { } else { return nil } - }, $Initializer_extract_blockarg$6.$$arity = 0); + }, 0); - Opal.def(self, '$initialize_shadowargs', $Initializer_initialize_shadowargs$7 = function $$initialize_shadowargs() { - var $$8, self = this; + $def(self, '$initialize_shadowargs', function $$initialize_shadowargs() { + var self = this; - return $send(self.args.$shadowargs(), 'each', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; + return $send(self.args.$shadowargs(), 'each', [], function $$2(arg){var self = $$2.$$s == null ? this : $$2.$$s; if (self.initialization == null) self.initialization = nil; - if (arg == null) { - arg = nil; - }; - return self.initialization['$<<'](arg.$updated("initialize_shadowarg"));}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - }, $Initializer_initialize_shadowargs$7.$$arity = 0); + if (arg == null) arg = nil;; + return self.initialization['$<<'](arg.$updated("initialize_shadowarg"));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$extract_args', $Initializer_extract_args$9 = function $$extract_args() { - var $$10, self = this; + $def(self, '$extract_args', function $$extract_args() { + var self = this; - return $send(self.args.$args(), 'each', [], ($$10 = function(arg){var self = $$10.$$s == null ? this : $$10.$$s; + return $send(self.args.$args(), 'each', [], function $$3(arg){var self = $$3.$$s == null ? this : $$3.$$s; if (self.type == null) self.type = nil; if (self.initialization == null) self.initialization = nil; if (self.underscore_found == null) self.underscore_found = nil; @@ -30981,21 +27606,22 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { - if (arg == null) { - arg = nil; - }; - if (self.type['$==']("iter")) { + if (arg == null) arg = nil;; + if ($eqeq(self.type, "iter")) { self.initialization['$<<'](arg.$updated("initialize_iter_arg")); - if (arg.$children()['$[]'](0)['$==']("_")) { + if ($eqeq(arg.$children()['$[]'](0), "_")) { if ($truthy(self.underscore_found)) { - arg = self.$s("fake_arg")}; - self.underscore_found = true;};}; - return self.inline['$<<'](arg);}, $$10.$$s = self, $$10.$$arity = 1, $$10)) - }, $Initializer_extract_args$9.$$arity = 0); + arg = self.$s("fake_arg") + }; + self.underscore_found = true; + }; + }; + return self.inline['$<<'](arg);}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$prepare_post_args', $Initializer_prepare_post_args$11 = function $$prepare_post_args() { + $def(self, '$prepare_post_args', function $$prepare_post_args() { var self = this; if ($truthy(self.args['$has_post_args?']())) { @@ -31003,14 +27629,13 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { } else { return nil } - }, $Initializer_prepare_post_args$11.$$arity = 0); + }, 0); - Opal.def(self, '$prepare_kwargs', $Initializer_prepare_kwargs$12 = function $$prepare_kwargs() { + $def(self, '$prepare_kwargs', function $$prepare_kwargs() { var self = this; - if ($truthy(self.args['$has_any_kwargs?']())) { - } else { + if (!$truthy(self.args['$has_any_kwargs?']())) { return nil }; if ($truthy(self.args['$can_inline_kwargs?']())) { @@ -31021,37 +27646,33 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { self.inline['$<<'](self.$s("fake_arg")); }; return self.initialization['$<<'](self.$s("ensure_kwargs_are_kwargs")); - }, $Initializer_prepare_kwargs$12.$$arity = 0); + }, 0); - Opal.def(self, '$extract_kwargs', $Initializer_extract_kwargs$13 = function $$extract_kwargs() { - var $$14, self = this; + $def(self, '$extract_kwargs', function $$extract_kwargs() { + var self = this; - return $send(self.args.$kwargs(), 'each', [], ($$14 = function(arg){var self = $$14.$$s == null ? this : $$14.$$s; + return $send(self.args.$kwargs(), 'each', [], function $$4(arg){var self = $$4.$$s == null ? this : $$4.$$s; if (self.initialization == null) self.initialization = nil; - if (arg == null) { - arg = nil; - }; - return self.initialization['$<<'](arg.$updated("extract_kwarg"));}, $$14.$$s = self, $$14.$$arity = 1, $$14)) - }, $Initializer_extract_kwargs$13.$$arity = 0); + if (arg == null) arg = nil;; + return self.initialization['$<<'](arg.$updated("extract_kwarg"));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$extract_kwoptargs', $Initializer_extract_kwoptargs$15 = function $$extract_kwoptargs() { - var $$16, self = this; + $def(self, '$extract_kwoptargs', function $$extract_kwoptargs() { + var self = this; - return $send(self.args.$kwoptargs(), 'each', [], ($$16 = function(arg){var self = $$16.$$s == null ? this : $$16.$$s; + return $send(self.args.$kwoptargs(), 'each', [], function $$5(arg){var self = $$5.$$s == null ? this : $$5.$$s; if (self.initialization == null) self.initialization = nil; - if (arg == null) { - arg = nil; - }; - return self.initialization['$<<'](arg.$updated("extract_kwoptarg"));}, $$16.$$s = self, $$16.$$arity = 1, $$16)) - }, $Initializer_extract_kwoptargs$15.$$arity = 0); + if (arg == null) arg = nil;; + return self.initialization['$<<'](arg.$updated("extract_kwoptarg"));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$extract_kwrestarg', $Initializer_extract_kwrestarg$17 = function $$extract_kwrestarg() { + $def(self, '$extract_kwrestarg', function $$extract_kwrestarg() { var self = this, arg = nil; if ($truthy((arg = self.args.$kwrestarg()))) { @@ -31059,51 +27680,47 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { } else { return nil } - }, $Initializer_extract_kwrestarg$17.$$arity = 0); + }, 0); - Opal.def(self, '$extract_post_args', $Initializer_extract_post_args$18 = function $$extract_post_args() { - var $$19, self = this; + $def(self, '$extract_post_args', function $$extract_post_args() { + var self = this; - return $send(self.args.$postargs(), 'each', [], ($$19 = function(arg){var self = $$19.$$s == null ? this : $$19.$$s; + return $send(self.args.$postargs(), 'each', [], function $$6(arg){var self = $$6.$$s == null ? this : $$6.$$s; if (self.initialization == null) self.initialization = nil; if (self.inline == null) self.inline = nil; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; self.initialization['$<<'](arg.$updated("extract_post_arg")); - return self.inline['$<<'](self.$s("fake_arg"));}, $$19.$$s = self, $$19.$$arity = 1, $$19)) - }, $Initializer_extract_post_args$18.$$arity = 0); + return self.inline['$<<'](self.$s("fake_arg"));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$extract_optargs', $Initializer_extract_optargs$20 = function $$extract_optargs() { - var $$21, self = this, has_post_args = nil; + $def(self, '$extract_optargs', function $$extract_optargs() { + var self = this, has_post_args = nil; has_post_args = self.args['$has_post_args?'](); - return $send(self.args.$optargs(), 'each', [], ($$21 = function(arg){var self = $$21.$$s == null ? this : $$21.$$s, $a, arg_name = nil, default_value = nil; + return $send(self.args.$optargs(), 'each', [], function $$7(arg){var $a, self = $$7.$$s == null ? this : $$7.$$s, arg_name = nil, default_value = nil; if (self.initialization == null) self.initialization = nil; if (self.inline == null) self.inline = nil; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; if ($truthy(has_post_args)) { - $a = [].concat(Opal.to_a(arg)), (arg_name = ($a[0] == null ? nil : $a[0])), (default_value = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(arg)), (arg_name = ($a[0] == null ? nil : $a[0])), (default_value = ($a[1] == null ? nil : $a[1])), $a; self.initialization['$<<'](arg.$updated("extract_post_optarg", [arg_name, default_value, self.$args_to_keep()])); return self.inline['$<<'](self.$s("fake_arg")); } else { self.inline['$<<'](arg.$updated("arg")); return self.initialization['$<<'](arg.$updated("extract_optarg")); - };}, $$21.$$s = self, $$21.$$arity = 1, $$21)); - }, $Initializer_extract_optargs$20.$$arity = 0); + };}, {$$arity: 1, $$s: self}); + }, 0); - Opal.def(self, '$extract_restarg', $Initializer_extract_restarg$22 = function $$extract_restarg() { + $def(self, '$extract_restarg', function $$extract_restarg() { var self = this, arg = nil, arg_name = nil; if ($truthy((arg = self.args.$restarg()))) { @@ -31114,23 +27731,22 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { } else { return nil } - }, $Initializer_extract_restarg$22.$$arity = 0); - return (Opal.def(self, '$args_to_keep', $Initializer_args_to_keep$23 = function $$args_to_keep() { + }, 0); + return $def(self, '$args_to_keep', function $$args_to_keep() { var self = this; return self.args.$postargs().$length() - }, $Initializer_args_to_keep$23.$$arity = 0), nil) && 'args_to_keep'; - })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$$($$$($Opal, 'Rewriters'), 'Base'), $nesting); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/numblocks"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/rewriters/numblocks"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_ary = Opal.to_ary, $send = Opal.send, $to_a = Opal.to_a, $def = Opal.def; - Opal.add_stubs(['$require', '$children', '$s', '$gen_args', '$map']); + Opal.add_stubs('require,children,s,gen_args,map'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -31141,47 +27757,40 @@ Opal.modules["opal/rewriters/numblocks"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Numblocks'); - var $nesting = [self].concat($parent_nesting), $Numblocks_on_numblock$1, $Numblocks_gen_args$2; - - Opal.def(self, '$on_numblock', $Numblocks_on_numblock$1 = function $$on_numblock(node) { + + $def(self, '$on_numblock', function $$on_numblock(node) { var $a, $b, self = this, left = nil, arg_count = nil, right = nil; - $b = node.$children(), $a = Opal.to_ary($b), (left = ($a[0] == null ? nil : $a[0])), (arg_count = ($a[1] == null ? nil : $a[1])), (right = ($a[2] == null ? nil : $a[2])), $b; - return self.$s("block", left, $send(self, 's', ["args"].concat(Opal.to_a(self.$gen_args(arg_count)))), right); - }, $Numblocks_on_numblock$1.$$arity = 1); - return (Opal.def(self, '$gen_args', $Numblocks_gen_args$2 = function $$gen_args(arg_count) { - var $$3, self = this; + $b = node.$children(), $a = $to_ary($b), (left = ($a[0] == null ? nil : $a[0])), (arg_count = ($a[1] == null ? nil : $a[1])), (right = ($a[2] == null ? nil : $a[2])), $b; + return self.$s("block", left, $send(self, 's', ["args"].concat($to_a(self.$gen_args(arg_count)))), right); + }, 1); + return $def(self, '$gen_args', function $$gen_args(arg_count) { + var self = this; - return $send(Opal.Range.$new(1, arg_count, false), 'map', [], ($$3 = function(i){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(Opal.Range.$new(1, arg_count, false), 'map', [], function $$1(i){var self = $$1.$$s == null ? this : $$1.$$s; - if (i == null) { - i = nil; - }; - return self.$s("arg", "" + "_" + (i));}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Numblocks_gen_args$2.$$arity = 1), nil) && 'gen_args'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if (i == null) i = nil;; + return self.$s("arg", "_" + (i));}, {$$arity: 1, $$s: self}) + }, 1); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/returnable_logic"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/rewriters/returnable_logic"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $def = Opal.def, $rb_minus = Opal.rb_minus, $to_a = Opal.to_a, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $eqeq = Opal.eqeq; - Opal.add_stubs(['$require', '$+', '$children', '$next_tmp', '$updated', '$s', '$process']); + Opal.add_stubs('require,+,-,children,[]=,meta,s,next_tmp,build_if_from_when,free_tmp,[],process,updated,==,count,first,delete,private,build_rule_from_parts,empty?,type'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -31192,61 +27801,157 @@ Opal.modules["opal/rewriters/returnable_logic"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ReturnableLogic'); - var $nesting = [self].concat($parent_nesting), $ReturnableLogic_next_tmp$1, $ReturnableLogic_reset_tmp_counter$excl$2, $ReturnableLogic_on_or$3, $ReturnableLogic_on_and$4; + var $proto = self.$$prototype; - self.$$prototype.counter = nil; + $proto.counter = nil; - Opal.def(self, '$next_tmp', $ReturnableLogic_next_tmp$1 = function $$next_tmp() { + $def(self, '$next_tmp', function $$next_tmp() { var self = this, $ret_or_1 = nil; - self.counter = (function() {if ($truthy(($ret_or_1 = self.counter))) { - return $ret_or_1 - } else { - return 0 - }; return nil; })(); + self.counter = ($truthy(($ret_or_1 = self.counter)) ? ($ret_or_1) : (0)); self.counter = $rb_plus(self.counter, 1); - return "" + "$ret_or_" + (self.counter); - }, $ReturnableLogic_next_tmp$1.$$arity = 0); + return "$ret_or_" + (self.counter); + }, 0); + + $def(self, '$free_tmp', function $$free_tmp() { + var self = this; + + return (self.counter = $rb_minus(self.counter, 1)) + }, 0); - Opal.def(self, '$reset_tmp_counter!', $ReturnableLogic_reset_tmp_counter$excl$2 = function() { + $def(self, '$reset_tmp_counter!', function $ReturnableLogic_reset_tmp_counter$excl$1() { var self = this; return (self.counter = nil) - }, $ReturnableLogic_reset_tmp_counter$excl$2.$$arity = 0); + }, 0); + + $def(self, '$on_if', function $$on_if(node) { + var $a, $yield = $$on_if.$$p || nil, self = this, test = nil, $writer = nil; + + delete $$on_if.$$p; + + $a = [].concat($to_a(node.$children())), (test = ($a[0] == null ? nil : $a[0])), $a; + if ($truthy(test)) { + + $writer = ["if_test", true]; + $send(test.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return $send2(self, $find_super(self, 'on_if', $$on_if, false, true), 'on_if', [node], $yield); + }, 1); + + $def(self, '$on_case', function $$on_case(node) { + var $a, $b, self = this, lhs = nil, whens = nil, els = nil, $ret_or_1 = nil, lhs_tmp = nil, out = nil; + + + $a = [].concat($to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (whens = $slice.call($a, 1, $b)), (els = ($a[$b] == null ? nil : $a[$b])), $a; + els = ($truthy(($ret_or_1 = els)) ? ($ret_or_1) : (self.$s("nil"))); + if ($truthy(lhs)) { + lhs_tmp = self.$next_tmp() + }; + out = self.$build_if_from_when(node, lhs, lhs_tmp, whens, els); + if ($truthy(lhs)) { + self.$free_tmp() + }; + return out; + }, 1); + + $def(self, '$on_or', function $$on_or(node) { + var $a, self = this, lhs = nil, rhs = nil, $writer = nil, out = nil, lhs_tmp = nil; + + + $a = [].concat($to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(node.$meta()['$[]']("if_test"))) { + + + $writer = ["if_test", (($writer = ["if_test", true]), $send(rhs.$meta(), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; + $send(lhs.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + out = self.$process(node.$updated("if", [lhs, self.$s("true"), rhs])); + } else { + + lhs_tmp = self.$next_tmp(); + out = self.$process(node.$updated("if", [self.$s("lvasgn", lhs_tmp, lhs), self.$s("js_tmp", lhs_tmp), rhs])); + self.$free_tmp(); + }; + return out; + }, 1); + + $def(self, '$on_and', function $$on_and(node) { + var $a, self = this, lhs = nil, rhs = nil, $writer = nil, out = nil, lhs_tmp = nil; + + + $a = [].concat($to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(node.$meta()['$[]']("if_test"))) { + + + $writer = ["if_test", (($writer = ["if_test", true]), $send(rhs.$meta(), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; + $send(lhs.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + out = self.$process(node.$updated("if", [lhs, rhs, self.$s("false")])); + } else { + + lhs_tmp = self.$next_tmp(); + out = self.$process(node.$updated("if", [self.$s("lvasgn", lhs_tmp, lhs), rhs, self.$s("js_tmp", lhs_tmp)])); + self.$free_tmp(); + }; + return out; + }, 1); + + $def(self, '$on_begin', function $$on_begin(node) { + var $yield = $$on_begin.$$p || nil, self = this, $writer = nil; + + delete $$on_begin.$$p; + + if (($truthy(node.$meta()['$[]']("if_test")) && ($eqeq(node.$children().$count(), 1)))) { + + $writer = ["if_test", true]; + $send(node.$children().$first().$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + node.$meta().$delete("if_test"); + return $send2(self, $find_super(self, 'on_begin', $$on_begin, false, true), 'on_begin', [node], $yield); + }, 1); + self.$private(); - Opal.def(self, '$on_or', $ReturnableLogic_on_or$3 = function $$on_or(node) { - var $a, self = this, lhs = nil, rhs = nil, lhs_tmp = nil; + $def(self, '$build_if_from_when', function $$build_if_from_when(node, lhs, lhs_tmp, whens, els) { + var $a, $b, self = this, first_when = nil, next_whens = nil, parts = nil, expr = nil, rule = nil; - $a = [].concat(Opal.to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - lhs_tmp = self.$next_tmp(); - return node.$updated("if", [self.$s("lvasgn", lhs_tmp, self.$process(lhs)), self.$s("js_tmp", lhs_tmp), self.$process(rhs)]); - }, $ReturnableLogic_on_or$3.$$arity = 1); - return (Opal.def(self, '$on_and', $ReturnableLogic_on_and$4 = function $$on_and(node) { - var $a, self = this, lhs = nil, rhs = nil, lhs_tmp = nil; + $a = [].concat($to_a(whens)), (first_when = ($a[0] == null ? nil : $a[0])), (next_whens = $slice.call($a, 1)), $a; + $a = [].concat($to_a(first_when.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (parts = $slice.call($a, 0, $b)), (expr = ($a[$b] == null ? nil : $a[$b])), $a; + rule = self.$build_rule_from_parts(node, lhs, lhs_tmp, parts); + return first_when.$updated("if", [rule, self.$process(expr), ($truthy(next_whens['$empty?']()) ? (self.$process(els)) : (self.$build_if_from_when(nil, nil, lhs_tmp, next_whens, els)))]); + }, 5); + return $def(self, '$build_rule_from_parts', function $$build_rule_from_parts(node, lhs, lhs_tmp, parts) { + var $a, self = this, first_part = nil, next_parts = nil, subrule = nil, splat_on = nil, iter_val = nil, block = nil; - $a = [].concat(Opal.to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - lhs_tmp = self.$next_tmp(); - return node.$updated("if", [self.$s("lvasgn", lhs_tmp, self.$process(lhs)), self.$process(rhs), self.$s("js_tmp", lhs_tmp)]); - }, $ReturnableLogic_on_and$4.$$arity = 1), nil) && 'on_and'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + lhs = (($truthy(node) && ($truthy(lhs_tmp))) ? (node.$updated("lvasgn", [lhs_tmp, self.$process(lhs)])) : (self.$s("js_tmp", lhs_tmp))); + $a = [].concat($to_a(parts)), (first_part = ($a[0] == null ? nil : $a[0])), (next_parts = $slice.call($a, 1)), $a; + subrule = ($eqeq(first_part.$type(), "splat") ? (((splat_on = first_part.$children().$first()), (iter_val = self.$next_tmp()), (block = self.$s("send", self.$process(splat_on), "any?", self.$s("iter", self.$s("args", self.$s("arg", iter_val)), self.$build_rule_from_parts(nil, nil, lhs_tmp, [self.$s("lvar", iter_val)])))), (($truthy(node) && ($truthy(lhs_tmp))) ? (self.$s("begin", lhs, block)) : (block)))) : ($truthy(lhs_tmp) ? (self.$s("send", self.$process(first_part), "===", lhs)) : (self.$process(first_part)))); + if ($truthy(next_parts['$empty?']())) { + return subrule + } else { + return self.$s("if", subrule, self.$s("true"), self.$build_rule_from_parts(nil, nil, lhs_tmp, next_parts)) + }; + }, 4); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/forward_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/forward_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $range = Opal.range, $to_a = Opal.to_a, $send2 = Opal.send2, $find_super = Opal.find_super, $neqeq = Opal.neqeq; - Opal.add_stubs(['$require', '$process', '$s', '$last', '$children', '$==', '$type', '$[]', '$updated', '$!=', '$class']); + Opal.add_stubs('require,process,s,==,type,last,children,[],updated,!=,class'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -31257,75 +27962,54 @@ Opal.modules["opal/rewriters/forward_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ForwardArgs'); - var $nesting = [self].concat($parent_nesting), $ForwardArgs_on_forward_args$1, $ForwardArgs_on_args$2, $ForwardArgs_on_send$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$on_forward_args', $ForwardArgs_on_forward_args$1 = function $$on_forward_args(_node) { + $def(self, '$on_forward_args', function $$on_forward_args(_node) { var self = this; return self.$process(self.$s("args", self.$s("forward_arg", "$"))) - }, $ForwardArgs_on_forward_args$1.$$arity = 1); + }, 1); - Opal.def(self, '$on_args', $ForwardArgs_on_args$2 = function $$on_args(node) { - var $iter = $ForwardArgs_on_args$2.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil, prev_children = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$on_args', function $$on_args(node) { + var $yield = $$on_args.$$p || nil, self = this, prev_children = nil; - if ($iter) $ForwardArgs_on_args$2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy((function() {if ($truthy(($ret_or_1 = node.$children().$last()))) { - return node.$children().$last().$type()['$==']("forward_arg") - } else { - return $ret_or_1 - }; return nil; })())) { + delete $$on_args.$$p; + if (($truthy(node.$children().$last()) && ($eqeq(node.$children().$last().$type(), "forward_arg")))) { prev_children = node.$children()['$[]']($range(0, -2, false)); - return node.$updated(nil, [].concat(Opal.to_a(prev_children)).concat([self.$s("restarg", "$fwd_rest"), self.$s("blockarg", "$fwd_block")])); + return node.$updated(nil, [].concat($to_a(prev_children)).concat([self.$s("restarg", "$fwd_rest"), self.$s("blockarg", "$fwd_block")])); } else { - return $send2(self, $find_super(self, 'on_args', $ForwardArgs_on_args$2, false, true), 'on_args', $zuper, $iter) + return $send2(self, $find_super(self, 'on_args', $$on_args, false, true), 'on_args', [node], $yield) } - }, $ForwardArgs_on_args$2.$$arity = 1); - return (Opal.def(self, '$on_send', $ForwardArgs_on_send$3 = function $$on_send(node) { - var $iter = $ForwardArgs_on_send$3.$$p, $yield = $iter || nil, self = this, $ret_or_2 = nil, $ret_or_3 = nil, prev_children = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $ForwardArgs_on_send$3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = node.$children().$last()))) { - return node.$children().$last().$class()['$!=']($$($nesting, 'Symbol')) - } else { - return $ret_or_3 - }; return nil; })()))) { - return node.$children().$last().$type()['$==']("forwarded_args") - } else { - return $ret_or_2 - }; return nil; })())) { + }, 1); + return $def(self, '$on_send', function $$on_send(node) { + var $yield = $$on_send.$$p || nil, self = this, prev_children = nil; + + delete $$on_send.$$p; + if ((($truthy(node.$children().$last()) && ($neqeq(node.$children().$last().$class(), $$('Symbol')))) && ($eqeq(node.$children().$last().$type(), "forwarded_args")))) { prev_children = node.$children()['$[]']($range(0, -2, false)); - return node.$updated(nil, [].concat(Opal.to_a(prev_children)).concat([self.$s("splat", self.$s("lvar", "$fwd_rest")), self.$s("block_pass", self.$s("lvar", "$fwd_block"))])); + return node.$updated(nil, [].concat($to_a(prev_children)).concat([self.$s("splat", self.$s("lvar", "$fwd_rest")), self.$s("block_pass", self.$s("lvar", "$fwd_block"))])); } else { - return $send2(self, $find_super(self, 'on_send', $ForwardArgs_on_send$3, false, true), 'on_send', $zuper, $iter) + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) } - }, $ForwardArgs_on_send$3.$$arity = 1), nil) && 'on_send'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $hash2 = Opal.hash2, $eqeq = Opal.eqeq, $send = Opal.send; - Opal.add_stubs(['$require', '$<<', '$list', '$delete', '$use', '$disabled?', '$class', '$each', '$new', '$process']); + Opal.add_stubs('require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process'); self.$require("opal/rewriters/opal_engine_check"); self.$require("opal/rewriters/for_rewriter"); @@ -31351,108 +28035,124 @@ Opal.modules["opal/rewriter"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Rewriter'); - var $nesting = [self].concat($parent_nesting), $Rewriter_initialize$6, $Rewriter_process$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; + self.disabled = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $list$1, $use$2, $delete$3, $disable$4, $disabled$ques$5; - - Opal.def(self, '$list', $list$1 = function $$list() { + + $def(self, '$list', function $$list() { var self = this, $ret_or_1 = nil; if (self.list == null) self.list = nil; - return (self.list = (function() {if ($truthy(($ret_or_1 = self.list))) { - return $ret_or_1 - } else { - return [] - }; return nil; })()) - }, $list$1.$$arity = 0); + return (self.list = ($truthy(($ret_or_1 = self.list)) ? ($ret_or_1) : ([]))) + }, 0); - Opal.def(self, '$use', $use$2 = function $$use(rewriter) { + $def(self, '$use', function $$use(rewriter) { var self = this; return self.$list()['$<<'](rewriter) - }, $use$2.$$arity = 1); + }, 1); - Opal.def(self, '$delete', $delete$3 = function(rewriter) { + $def(self, '$delete', function $delete$1(rewriter) { var self = this; return self.$list().$delete(rewriter) - }, $delete$3.$$arity = 1); + }, 1); - Opal.def(self, '$disable', $disable$4 = function $$disable() { - var $iter = $disable$4.$$p, $yield = $iter || nil, self = this; + $def(self, '$disable', function $$disable($kwargs) { + var except, $yield = $$disable.$$p || nil, self = this, old_disabled = nil, $ret_or_1 = nil; + if (self.disabled == null) self.disabled = nil; - if ($iter) $disable$4.$$p = null; + delete $$disable.$$p; + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + except = $kwargs.$$smap["except"]; + if (except == null) except = nil; return (function() { try { - self.disabled = true; + old_disabled = self.disabled; + self.disabled = ($truthy(($ret_or_1 = except)) ? ($ret_or_1) : (true)); return Opal.yieldX($yield, []);; } finally { - (self.disabled = false) - }; })() - }, $disable$4.$$arity = 0); - return (Opal.def(self, '$disabled?', $disabled$ques$5 = function() { - var $a, self = this; + (self.disabled = old_disabled) + }; })(); + }, -1); + + $def(self, '$disabled?', function $disabled$ques$2() { + var self = this; if (self.disabled == null) self.disabled = nil; - if ($truthy((($a = self['disabled'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.disabled - } else { - return nil - } - }, $disabled$ques$5.$$arity = 0), nil) && 'disabled?'; + return self.disabled['$=='](true) + }, 0); + return $def(self, '$rewritter_disabled?', function $rewritter_disabled$ques$3(rewriter) { + var self = this; + if (self.disabled == null) self.disabled = nil; + + + if ($eqeq(self.disabled, false)) { + return false + }; + return self.disabled['$!='](rewriter); + }, 1); })(Opal.get_singleton_class(self), $nesting); - self.$use($$$($$($nesting, 'Rewriters'), 'OpalEngineCheck')); - self.$use($$$($$($nesting, 'Rewriters'), 'ForRewriter')); - self.$use($$$($$($nesting, 'Rewriters'), 'Numblocks')); - self.$use($$$($$($nesting, 'Rewriters'), 'ForwardArgs')); - self.$use($$$($$($nesting, 'Rewriters'), 'BlockToIter')); - self.$use($$$($$($nesting, 'Rewriters'), 'DotJsSyntax')); - self.$use($$$($$($nesting, 'Rewriters'), 'PatternMatching')); - self.$use($$$($$($nesting, 'Rewriters'), 'JsReservedWords')); - self.$use($$$($$($nesting, 'Rewriters'), 'LogicalOperatorAssignment')); - self.$use($$$($$($nesting, 'Rewriters'), 'BinaryOperatorAssignment')); - self.$use($$$($$($nesting, 'Rewriters'), 'ExplicitWriterReturn')); - self.$use($$$($$$($$($nesting, 'Rewriters'), 'Hashes'), 'KeyDuplicatesRewriter')); - self.$use($$$($$($nesting, 'Rewriters'), 'ReturnableLogic')); - self.$use($$$($$($nesting, 'Rewriters'), 'DumpArgs')); - self.$use($$$($$($nesting, 'Rewriters'), 'MlhsArgs')); - self.$use($$$($$($nesting, 'Rewriters'), 'InlineArgs')); - - Opal.def(self, '$initialize', $Rewriter_initialize$6 = function $$initialize(sexp) { + self.$use($$$($$('Rewriters'), 'OpalEngineCheck')); + self.$use($$$($$('Rewriters'), 'ForRewriter')); + self.$use($$$($$('Rewriters'), 'Numblocks')); + self.$use($$$($$('Rewriters'), 'ForwardArgs')); + self.$use($$$($$('Rewriters'), 'BlockToIter')); + self.$use($$$($$('Rewriters'), 'DotJsSyntax')); + self.$use($$$($$('Rewriters'), 'PatternMatching')); + self.$use($$$($$('Rewriters'), 'JsReservedWords')); + self.$use($$$($$('Rewriters'), 'LogicalOperatorAssignment')); + self.$use($$$($$('Rewriters'), 'BinaryOperatorAssignment')); + self.$use($$$($$('Rewriters'), 'ExplicitWriterReturn')); + self.$use($$$($$$($$('Rewriters'), 'Hashes'), 'KeyDuplicatesRewriter')); + self.$use($$$($$('Rewriters'), 'ReturnableLogic')); + self.$use($$$($$('Rewriters'), 'DumpArgs')); + self.$use($$$($$('Rewriters'), 'MlhsArgs')); + self.$use($$$($$('Rewriters'), 'InlineArgs')); + + $def(self, '$initialize', function $$initialize(sexp) { var self = this; return (self.sexp = sexp) - }, $Rewriter_initialize$6.$$arity = 1); - return (Opal.def(self, '$process', $Rewriter_process$7 = function $$process() { - var $$8, self = this; + }, 1); + return $def(self, '$process', function $$process() { + var self = this; if ($truthy(self.$class()['$disabled?']())) { - return self.sexp}; - $send(self.$class().$list(), 'each', [], ($$8 = function(rewriter_class){var self = $$8.$$s == null ? this : $$8.$$s, rewriter = nil; + return self.sexp + }; + $send(self.$class().$list(), 'each', [], function $$4(rewriter_class){var self = $$4.$$s == null ? this : $$4.$$s, rewriter = nil; if (self.sexp == null) self.sexp = nil; - if (rewriter_class == null) { - rewriter_class = nil; + if (rewriter_class == null) rewriter_class = nil;; + if ($truthy(self.$class()['$rewritter_disabled?'](rewriter_class))) { + return nil; }; rewriter = rewriter_class.$new(); - return (self.sexp = rewriter.$process(self.sexp));}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + return (self.sexp = rewriter.$process(self.sexp));}, {$$arity: 1, $$s: self}); return self.sexp; - }, $Rewriter_process$7.$$arity = 0), nil) && 'process'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser/source_buffer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/parser/source_buffer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $defs = Opal.defs; return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -31467,35 +28167,27 @@ Opal.modules["opal/parser/source_buffer"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'SourceBuffer'); - var $nesting = [self].concat($parent_nesting), $SourceBuffer_recognize_encoding$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.defs(self, '$recognize_encoding', $SourceBuffer_recognize_encoding$1 = function $$recognize_encoding(string) { - var $iter = $SourceBuffer_recognize_encoding$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + return $defs(self, '$recognize_encoding', function $$recognize_encoding(string) { + var $yield = $$recognize_encoding.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $SourceBuffer_recognize_encoding$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($ret_or_1 = $send2(self, $find_super(self, 'recognize_encoding', $SourceBuffer_recognize_encoding$1, false, true), 'recognize_encoding', $zuper, $iter)))) { + delete $$recognize_encoding.$$p; + if ($truthy(($ret_or_1 = $send2(self, $find_super(self, 'recognize_encoding', $$recognize_encoding, false, true), 'recognize_encoding', [string], $yield)))) { return $ret_or_1 } else { - return $$$($$($nesting, 'Encoding'), 'UTF_8') + return $$$($$('Encoding'), 'UTF_8') } - }, $SourceBuffer_recognize_encoding$1.$$arity = 1), nil) && 'recognize_encoding' - })($nesting[0], $$$($$$($$$('::', 'Parser'), 'Source'), 'Buffer'), $nesting) + }, 1) + })($nesting[0], $$$($$$($$$('Parser'), 'Source'), 'Buffer'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser/default_config"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $lambda = Opal.lambda; +Opal.modules["opal/parser/default_config"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $lambda = Opal.lambda, $defs = Opal.defs, $truthy = Opal.truthy, $Opal = Opal.Opal; - Opal.add_stubs(['$attr_accessor', '$all_errors_are_fatal=', '$diagnostics', '$-', '$ignore_warnings=', '$diagnostics_consumer', '$consumer=', '$extend', '$diagnostics_consumer=', '$new', '$rewrite', '$process', '$default_parser', '$default_parser_class']); + Opal.add_stubs('attr_accessor,all_errors_are_fatal=,diagnostics,-,ignore_warnings=,diagnostics_consumer,consumer=,extend,diagnostics_consumer=,new,rewrite,process,default_parser,default_parser_class'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -31510,146 +28202,123 @@ Opal.modules["opal/parser/default_config"] = function(Opal) { (function($base, $parent_nesting) { var self = $module($base, 'DefaultConfig'); - var $nesting = [self].concat($parent_nesting), $DefaultConfig_included$2, $DefaultConfig_initialize$4, $DefaultConfig_parse$5, $DefaultConfig_rewrite$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $parent_nesting) { + (function($base) { var self = $module($base, 'ClassMethods'); - var $nesting = [self].concat($parent_nesting), $ClassMethods_default_parser$1; - + self.$attr_accessor("diagnostics_consumer"); - return (Opal.def(self, '$default_parser', $ClassMethods_default_parser$1 = function $$default_parser() { - var $iter = $ClassMethods_default_parser$1.$$p, $yield = $iter || nil, self = this, parser = nil, $writer = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + return $def(self, '$default_parser', function $$default_parser() { + var $yield = $$default_parser.$$p || nil, self = this, parser = nil, $writer = nil; - if ($iter) $ClassMethods_default_parser$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$default_parser.$$p; - parser = $send2(self, $find_super(self, 'default_parser', $ClassMethods_default_parser$1, false, true), 'default_parser', $zuper, $iter); + parser = $send2(self, $find_super(self, 'default_parser', $$default_parser, false, true), 'default_parser', [], $yield); $writer = [true]; - $send(parser.$diagnostics(), 'all_errors_are_fatal=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'all_errors_are_fatal=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(parser.$diagnostics(), 'ignore_warnings=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'ignore_warnings=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [self.$diagnostics_consumer()]; - $send(parser.$diagnostics(), 'consumer=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'consumer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return parser; - }, $ClassMethods_default_parser$1.$$arity = 0), nil) && 'default_parser'; - })($nesting[0], $nesting); - Opal.defs(self, '$included', $DefaultConfig_included$2 = function $$included(klass) { - var $$3, self = this, $writer = nil; + }, 0); + })($nesting[0]); + $defs(self, '$included', function $$included(klass) { + var $writer = nil; - klass.$extend($$($nesting, 'ClassMethods')); + klass.$extend($$('ClassMethods')); - $writer = [$lambda(($$3 = function(diagnostic){var self = $$3.$$s == null ? this : $$3.$$s; - + $writer = [$lambda(function $$1(diagnostic){ - if (diagnostic == null) { - diagnostic = nil; - }; - return nil;}, $$3.$$s = self, $$3.$$arity = 1, $$3))]; - $send(klass, 'diagnostics_consumer=', Opal.to_a($writer)); + if (diagnostic == null) diagnostic = nil;; + return nil;}, 1)]; + $send(klass, 'diagnostics_consumer=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $DefaultConfig_included$2.$$arity = 1); + }, 1); - Opal.def(self, '$initialize', $DefaultConfig_initialize$4 = function $$initialize($a) { - var $post_args, $iter = $DefaultConfig_initialize$4.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $DefaultConfig_initialize$4.$$p = null; + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return $send2(self, $find_super(self, 'initialize', $DefaultConfig_initialize$4, false, true), 'initialize', [$$$($$$($$($nesting, 'Opal'), 'AST'), 'Builder').$new()], null); - }, $DefaultConfig_initialize$4.$$arity = -1); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [$$$($$$($$('Opal'), 'AST'), 'Builder').$new()], null); + }, -1); - Opal.def(self, '$parse', $DefaultConfig_parse$5 = function $$parse(source_buffer) { - var $iter = $DefaultConfig_parse$5.$$p, $yield = $iter || nil, self = this, parsed = nil, rewriten = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$parse', function $$parse(source_buffer) { + var $yield = $$parse.$$p || nil, self = this, parsed = nil, $ret_or_1 = nil, wrapped = nil, rewriten = nil; - if ($iter) $DefaultConfig_parse$5.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$parse.$$p; - parsed = $send2(self, $find_super(self, 'parse', $DefaultConfig_parse$5, false, true), 'parse', $zuper, $iter); - rewriten = self.$rewrite(parsed); + parsed = ($truthy(($ret_or_1 = $send2(self, $find_super(self, 'parse', $$parse, false, true), 'parse', [source_buffer], $yield))) ? ($ret_or_1) : ($$$($$$($Opal, 'AST'), 'Node').$new("nil"))); + wrapped = $$$($$$($Opal, 'AST'), 'Node').$new("top", [parsed]); + rewriten = self.$rewrite(wrapped); return rewriten; - }, $DefaultConfig_parse$5.$$arity = 1); - return (Opal.def(self, '$rewrite', $DefaultConfig_rewrite$6 = function $$rewrite(node) { - var self = this; - - return $$$($$($nesting, 'Opal'), 'Rewriter').$new(node).$process() - }, $DefaultConfig_rewrite$6.$$arity = 1), nil) && 'rewrite'; + }, 1); + return $def(self, '$rewrite', function $$rewrite(node) { + + return $$$($$('Opal'), 'Rewriter').$new(node).$process() + }, 1); })($nesting[0], $nesting); return (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $default_parser$7; - + self.$attr_accessor("default_parser_class"); - return (Opal.def(self, '$default_parser', $default_parser$7 = function $$default_parser() { + return $def(self, '$default_parser', function $$default_parser() { var self = this; return self.$default_parser_class().$default_parser() - }, $default_parser$7.$$arity = 0), nil) && 'default_parser'; + }, 0); })(Opal.get_singleton_class(self), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser/with_ruby_lexer"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/parser/with_ruby_lexer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$include', '$default_parser_class=', '$-']); + Opal.add_stubs('include,default_parser_class=,-'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'WithRubyLexer'); - var $nesting = [self].concat($parent_nesting), $writer = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $writer = nil; - self.$include($$$($$$($$($nesting, 'Opal'), 'Parser'), 'DefaultConfig')); + self.$include($$$($$$($$('Opal'), 'Parser'), 'DefaultConfig')); $writer = [self]; - $send($$$($$($nesting, 'Opal'), 'Parser'), 'default_parser_class=', Opal.to_a($writer)); + $send($$$($$('Opal'), 'Parser'), 'default_parser_class=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - })($$$($$($nesting, 'Opal'), 'Parser'), $$$($$($nesting, 'Parser'), 'Ruby30'), $nesting) + })($$$($$('Opal'), 'Parser'), $$$($$('Parser'), 'Ruby31'), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser/patch"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $module = Opal.module; - - Opal.add_stubs(['$source', '$unpack', '$+', '$to_a', '$lines', '$end_with?', '$<<', '$map', '$chomp', '$=~', '$diagnostic', '$nil?', '$type', '$[]', '$respond_to?', '$[]=', '$-', '$send', '$value']); +Opal.modules["opal/parser/patch"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $rb_plus = Opal.rb_plus, $send = Opal.send, $hash2 = Opal.hash2, $eqeqeq = Opal.eqeqeq, $eqeq = Opal.eqeq, $not = Opal.not, $rb_le = Opal.rb_le, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt, $rb_times = Opal.rb_times, $rb_divide = Opal.rb_divide, $to_a = Opal.to_a, $module = Opal.module; + + Opal.add_stubs('source,unpack,+,to_a,lines,end_with?,<<,map,chomp,=~,diagnostic,nil?,new,===,type,updated,dedent,first,children,==,empty?,interrupt,compact,encoding,split,force_encoding,length,map!,each_with_index,!,each_char,<=,-,>,*,/,[],[]=,join,respond_to?,send,value'); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Lexer'); - var $nesting = [self].concat($parent_nesting), $Lexer_source_buffer$eq$1; + var $proto = self.$$prototype; - self.$$prototype.source_buffer = nil; - return (Opal.def(self, '$source_buffer=', $Lexer_source_buffer$eq$1 = function(source_buffer) { + $proto.source_buffer = nil; + return $def(self, '$source_buffer=', function $Lexer_source_buffer$eq$1(source_buffer) { var self = this, source = nil; @@ -31661,63 +28330,49 @@ Opal.modules["opal/parser/patch"] = function(Opal) { } else { return (self.source_pts = nil) }; - }, $Lexer_source_buffer$eq$1.$$arity = 1), nil) && 'source_buffer=' - })($$($nesting, 'Parser'), null, $nesting); - (function($base, $super, $parent_nesting) { + }, 1) + })($$('Parser'), null); + (function($base, $super) { var self = $klass($base, $super, 'Literal'); - var $nesting = [self].concat($parent_nesting), $Literal_extend_string$2; + var $proto = self.$$prototype; - self.$$prototype.buffer_s = self.$$prototype.buffer = nil; + $proto.buffer_s = $proto.buffer = nil; Opal.udef(self, '$' + "extend_string");; - return (Opal.def(self, '$extend_string', $Literal_extend_string$2 = function $$extend_string(string, ts, te) { + return $def(self, '$extend_string', function $$extend_string(string, ts, te) { var self = this, $ret_or_1 = nil; - self.buffer_s = (function() {if ($truthy(($ret_or_1 = self.buffer_s))) { - return $ret_or_1 - } else { - return ts - }; return nil; })(); + self.buffer_s = ($truthy(($ret_or_1 = self.buffer_s)) ? ($ret_or_1) : (ts)); self.buffer_e = te; return (self.buffer = $rb_plus(self.buffer, string)); - }, $Literal_extend_string$2.$$arity = 3), nil) && 'extend_string'; - })($$$($$($nesting, 'Parser'), 'Lexer'), null, $nesting); - (function($base, $super, $parent_nesting) { + }, 3); + })($$$($$('Parser'), 'Lexer'), null); + (function($base, $super) { var self = $klass($base, $super, 'Buffer'); - var $nesting = [self].concat($parent_nesting), $Buffer_source_lines$3; + var $proto = self.$$prototype; - self.$$prototype.lines = self.$$prototype.source = nil; - return (Opal.def(self, '$source_lines', $Buffer_source_lines$3 = function $$source_lines() { - var $$4, self = this, $ret_or_2 = nil, lines = nil; + $proto.lines = $proto.source = nil; + return $def(self, '$source_lines', function $$source_lines() { + var self = this, $ret_or_1 = nil, lines = nil; - return (self.lines = (function() {if ($truthy(($ret_or_2 = self.lines))) { - return $ret_or_2 - } else { + return (self.lines = ($truthy(($ret_or_1 = self.lines)) ? ($ret_or_1) : (((lines = self.source.$lines().$to_a()), ($truthy(self.source['$end_with?']("\n")) ? (lines['$<<']("")) : nil), $send(lines, 'map', [], function $$2(line){ - lines = self.source.$lines().$to_a(); - if ($truthy(self.source['$end_with?']("\n"))) { - lines['$<<']("")}; - return $send(lines, 'map', [], ($$4 = function(line){var self = $$4.$$s == null ? this : $$4.$$s; - - - - if (line == null) { - line = nil; - }; - return line.$chomp("\n");}, $$4.$$s = self, $$4.$$arity = 1, $$4)); - }; return nil; })()) - }, $Buffer_source_lines$3.$$arity = 0), nil) && 'source_lines' - })($$$($$($nesting, 'Parser'), 'Source'), null, $nesting); - (function($base, $super, $parent_nesting) { + + if (line == null) line = nil;; + return line.$chomp("\n");}, 1))))) + }, 0) + })($$$($$('Parser'), 'Source'), null); + (function($base, $super) { var self = $klass($base, $super, 'Default'); - var $nesting = [self].concat($parent_nesting), $Default_check_lvar_name$5; - - return (Opal.def(self, '$check_lvar_name', $Default_check_lvar_name$5 = function $$check_lvar_name(name, loc) { + + + + $def(self, '$check_lvar_name', function $$check_lvar_name(name, loc) { var self = this; if ($truthy(name['$=~'](new RegExp('^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$', 'u')))) { @@ -31725,69 +28380,155 @@ Opal.modules["opal/parser/patch"] = function(Opal) { } else { return self.$diagnostic("error", "lvar_name", $hash2(["name"], {"name": name}), loc) } - }, $Default_check_lvar_name$5.$$arity = 2), nil) && 'check_lvar_name' - })($$$($$($nesting, 'Parser'), 'Builders'), null, $nesting);; - (function($base, $parent_nesting) { - var self = $module($base, 'Mixin'); + }, 2); + return $def(self, '$dedent_string', function $$dedent_string(node, dedent_level) { + var dedenter = nil, $ret_or_1 = nil, children = nil; + + + if (!$truthy(dedent_level['$nil?']())) { + + dedenter = $$$($$$($$$('Parser'), 'Lexer'), 'Dedenter').$new(dedent_level); + if ($eqeqeq("str", ($ret_or_1 = node.$type()))) { + node = node.$updated(nil, [dedenter.$dedent(node.$children().$first())]) + } else if (($eqeqeq("dstr", $ret_or_1) || ($eqeqeq("xstr", $ret_or_1)))) { + + children = $send(node.$children(), 'map', [], function $$3(str_node){ + + + if (str_node == null) str_node = nil;; + if ($eqeq(str_node.$type(), "str")) { + + str_node = str_node.$updated(nil, [dedenter.$dedent(str_node.$children().$first())]); + if ($truthy(str_node.$children().$first()['$empty?']())) { + return nil; + }; + } else { + dedenter.$interrupt() + }; + return str_node;}, 1); + node = node.$updated(nil, children.$compact()); + } else { + nil + }; + }; + return node; + }, 2); + })($$$($$('Parser'), 'Builders'), null); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Dedenter'); - var $nesting = [self].concat($parent_nesting), $Mixin_process$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + return $def(self, '$dedent', function $$dedent(string) { + var self = this, original_encoding = nil, lines = nil; + + + original_encoding = string.$encoding(); + lines = string.$force_encoding($$$($$('Encoding'), 'BINARY')).$split("\\\n"); + if ($eqeq(lines.$length(), 1)) { + lines = [string.$force_encoding(original_encoding)] + } else { + $send(lines, 'map!', [], function $$4(s){ + + + if (s == null) s = nil;; + return s.$force_encoding(original_encoding);}, 1) + }; + (function(){var $brk = Opal.new_brk(); try {return $send(lines, 'each_with_index', [], function $$5(line, index){var self = $$5.$$s == null ? this : $$5.$$s, left_to_remove = nil, remove = nil, $writer = nil; + if (self.at_line_begin == null) self.at_line_begin = nil; + if (self.dedent_level == null) self.dedent_level = nil; + + + + if (line == null) line = nil;; + + if (index == null) index = nil;; + if (($eqeq(index, 0) && ($not(self.at_line_begin)))) { + return nil; + }; + left_to_remove = self.dedent_level; + remove = 0; + (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], function $$6(char$){var self = $$6.$$s == null ? this : $$6.$$s, $ret_or_1 = nil; + if (self.dedent_level == null) self.dedent_level = nil; + + + + if (char$ == null) char$ = nil;; + if ($truthy($rb_le(left_to_remove, 0))) { + + Opal.brk(nil, $brk) + }; + if ($eqeqeq(" ", ($ret_or_1 = char$))) { + + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, 1)); + } else if ($eqeqeq("\t", $ret_or_1)) { + + if ($truthy($rb_gt($rb_times($$('TAB_WIDTH'), $rb_plus($rb_divide(remove, $$('TAB_WIDTH')), 1)), self.dedent_level))) { + + Opal.brk(nil, $brk) + }; + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, $$('TAB_WIDTH'))); + } else { + + Opal.brk(nil, $brk) + };}, {$$arity: 1, $$s: self, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + + $writer = [index, line['$[]'](Opal.Range.$new(remove, -1, false))]; + $send(lines, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 2, $$s: self, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + string = lines.$join(); + self.at_line_begin = string['$end_with?']("\n"); + return string; + }, 1) + })($$$($$('Parser'), 'Lexer'), null, $nesting);; + (function($base) { + var self = $module($base, 'Mixin'); + + Opal.udef(self, '$' + "process");; - return (Opal.def(self, '$process', $Mixin_process$6 = function $$process(node) { - var self = this, $ret_or_3 = nil, type = nil, on_handler = nil, $ret_or_4 = nil, $writer = nil, handler = nil, $ret_or_5 = nil; + return $def(self, '$process', function $$process(node) { + var self = this, $ret_or_1 = nil, type = nil, on_handler = nil, $writer = nil, handler = nil; if (self._on_handler_cache == null) self._on_handler_cache = nil; if ($truthy(node['$nil?']())) { - return nil}; - self._on_handler_cache = (function() {if ($truthy(($ret_or_3 = self._on_handler_cache))) { - return $ret_or_3 - } else { - return $hash2([], {}) - }; return nil; })(); + return nil + }; + self._on_handler_cache = ($truthy(($ret_or_1 = self._on_handler_cache)) ? ($ret_or_1) : ($hash2([], {}))); type = node.$type(); - on_handler = (function() {if ($truthy(($ret_or_4 = self._on_handler_cache['$[]'](type)))) { - return $ret_or_4 - } else { - - $writer = [type, ((handler = "" + "on_" + (type)), (function() {if ($truthy(self['$respond_to?'](handler))) { - return nil - } else { - return (handler = "handler_missing") - }; return nil; })(), handler)]; - $send(self._on_handler_cache, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }; return nil; })(); - if ($truthy(($ret_or_5 = self.$send(on_handler, node)))) { - return $ret_or_5 + on_handler = ($truthy(($ret_or_1 = self._on_handler_cache['$[]'](type))) ? ($ret_or_1) : ((($writer = [type, ((handler = "on_" + (type)), ($truthy(self['$respond_to?'](handler)) ? (nil) : ((handler = "handler_missing"))), handler)]), $send(self._on_handler_cache, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))); + if ($truthy(($ret_or_1 = self.$send(on_handler, node)))) { + return $ret_or_1 } else { return node }; - }, $Mixin_process$6.$$arity = 1), nil) && 'process'; - })($$$($$($nesting, 'AST'), 'Processor'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 1); + })($$$($$('AST'), 'Processor')); + return (function($base, $super) { var self = $klass($base, $super, 'Default'); - var $nesting = [self].concat($parent_nesting), $Default_string_value$7; - + Opal.udef(self, '$' + "string_value");; - return (Opal.def(self, '$string_value', $Default_string_value$7 = function $$string_value(token) { + return $def(self, '$string_value', function $$string_value(token) { var self = this; return self.$value(token) - }, $Default_string_value$7.$$arity = 1), nil) && 'string_value'; - })($$$($$($nesting, 'Parser'), 'Builders'), null, $nesting); + }, 1); + })($$$($$('Parser'), 'Builders'), null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["opal/parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); self.$require("opal/ast/builder"); self.$require("opal/rewriter"); @@ -31797,11 +28538,10 @@ Opal.modules["opal/parser"] = function(Opal) { return self.$require("opal/parser/patch"); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/fragment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/fragment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt, $to_a = Opal.to_a, $not = Opal.not, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$to_s', '$inspect', '$type', '$===', '$first', '$children', '$[]', '$line', '$column']); + Opal.add_stubs('attr_reader,to_s,inspect,===,type,[],meta,source_map_name_for,sexp,==,class,+,parent,>,!,first,children,loc,respond_to?,dot,selector,operator,begin,line,location,column'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -31810,77 +28550,164 @@ Opal.modules["opal/fragment"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Fragment'); - var $nesting = [self].concat($parent_nesting), $Fragment_initialize$1, $Fragment_inspect$2, $Fragment_source_map_name$3, $Fragment_line$4, $Fragment_column$5; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.code = self.$$prototype.sexp = nil; + $proto.code = $proto.scope = $proto.sexp = nil; self.$attr_reader("code"); - Opal.def(self, '$initialize', $Fragment_initialize$1 = function $$initialize(code, scope, sexp) { + $def(self, '$initialize', function $$initialize(code, scope, sexp) { + var self = this; + + + + if (sexp == null) sexp = nil;; + self.code = code.$to_s(); + self.sexp = sexp; + return (self.scope = scope); + }, -3); + + $def(self, '$inspect', function $$inspect() { + var self = this; + + return "f(" + (self.code.$inspect()) + ")" + }, 0); + + $def(self, '$source_map_name_for', function $$source_map_name_for(sexp) { + var $a, self = this, $ret_or_1 = nil, $ret_or_2 = nil, scope = nil, iters = nil, level = nil, const$ = nil, name = nil; + + if ($eqeqeq("top", ($ret_or_1 = sexp.$type()))) { + if ($eqeqeq("require", ($ret_or_2 = sexp.$meta()['$[]']("kind")))) { + return "" + } else if ($eqeqeq("eval", $ret_or_2)) { + return "(eval)" + } else if ($eqeqeq("main", $ret_or_2)) { + return "
    " + } else { + return nil + } + } else if (($eqeqeq("begin", $ret_or_1) || (($eqeqeq("newline", $ret_or_1) || ($eqeqeq("js_return", $ret_or_1)))))) { + if ($truthy(self.scope)) { + return self.$source_map_name_for(self.scope.$sexp()) + } else { + return nil + } + } else if ($eqeqeq("iter", $ret_or_1)) { + + scope = self.scope; + iters = 1; + while ($truthy(scope)) { + if ($eqeq(scope.$class(), $$$($$('Nodes'), 'IterNode'))) { + + iters = $rb_plus(iters, 1); + scope = scope.$parent(); + } else { + break; + } + }; + if ($truthy($rb_gt(iters, 1))) { + level = " (" + (iters) + " levels)" + }; + return "block" + (level) + " in " + (self.$source_map_name_for(scope.$sexp())); + } else if ($eqeqeq("self", $ret_or_1)) { + return "self" + } else if ($eqeqeq("module", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (const$ = ($a[0] == null ? nil : $a[0])), $a; + return ""; + } else if ($eqeqeq("class", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (const$ = ($a[0] == null ? nil : $a[0])), $a; + return ""; + } else if ($eqeqeq("const", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (scope = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; + if (($not(scope) || ($eqeq(scope.$type(), "cbase")))) { + return name.$to_s() + } else { + return "" + (self.$source_map_name_for(scope)) + "::" + (name) + }; + } else if ($eqeqeq("int", $ret_or_1)) { + return sexp.$children().$first() + } else if ($eqeqeq("def", $ret_or_1)) { + return sexp.$children().$first() + } else if ($eqeqeq("defs", $ret_or_1)) { + return sexp.$children()['$[]'](1) + } else if ($eqeqeq("send", $ret_or_1)) { + return sexp.$children()['$[]'](1) + } else if (($eqeqeq("lvar", $ret_or_1) || (($eqeqeq("lvasgn", $ret_or_1) || (($eqeqeq("lvdeclare", $ret_or_1) || (($eqeqeq("ivar", $ret_or_1) || (($eqeqeq("ivasgn", $ret_or_1) || (($eqeqeq("gvar", $ret_or_1) || (($eqeqeq("cvar", $ret_or_1) || (($eqeqeq("cvasgn", $ret_or_1) || (($eqeqeq("gvars", $ret_or_1) || (($eqeqeq("gvasgn", $ret_or_1) || ($eqeqeq("arg", $ret_or_1)))))))))))))))))))))) { + return sexp.$children().$first() + } else if (($eqeqeq("str", $ret_or_1) || ($eqeqeq("xstr", $ret_or_1)))) { + return self.$source_map_name_for(self.scope.$sexp()) + } else { + return nil + } + }, 1); + + $def(self, '$source_map_name', function $$source_map_name() { var self = this; - - if (sexp == null) { - sexp = nil; + if (!$truthy(self.sexp)) { + return nil }; - self.code = code.$to_s(); - self.sexp = sexp; - return (self.scope = scope); - }, $Fragment_initialize$1.$$arity = -3); + return self.$source_map_name_for(self.sexp); + }, 0); - Opal.def(self, '$inspect', $Fragment_inspect$2 = function $$inspect() { - var self = this; + $def(self, '$location', function $$location() { + var self = this, loc = nil, $ret_or_1 = nil; - return "" + "f(" + (self.code.$inspect()) + ")" - }, $Fragment_inspect$2.$$arity = 0); + if ($not(self.sexp)) { + return nil + } else if ($eqeq(self.sexp.$type(), "send")) { + + loc = self.sexp.$loc(); + if ($truthy(loc['$respond_to?']("dot"))) { + if ($truthy(($ret_or_1 = loc.$dot()))) { + return $ret_or_1 + } else { + return loc.$selector() + } + } else if ($truthy(loc['$respond_to?']("operator"))) { + return loc.$operator() + } else { + return self.sexp + }; + } else if ($eqeq(self.sexp.$type(), "iter")) { + if ($truthy(loc['$respond_to?']("begin"))) { + return self.sexp.$loc().$begin() + } else { + return self.sexp + } + } else { + return self.sexp + } + }, 0); - Opal.def(self, '$source_map_name', $Fragment_source_map_name$3 = function $$source_map_name() { - var self = this, $case = nil; + $def(self, '$line', function $$line() { + var $a, self = this; - return (function() {$case = self.sexp.$type(); - if ("top"['$===']($case) || "begin"['$===']($case) || "newline"['$===']($case) || "js_return"['$===']($case)) {return nil} - else if ("self"['$===']($case)) {return "self"} - else if ("module"['$===']($case)) {return "module"} - else if ("class"['$===']($case)) {return "class"} - else if ("int"['$===']($case)) {return self.sexp.$children().$first()} - else if ("def"['$===']($case)) {return self.sexp.$children().$first()} - else if ("defs"['$===']($case)) {return self.sexp.$children()['$[]'](1)} - else if ("send"['$===']($case)) {return self.sexp.$children()['$[]'](1)} - else if ("lvar"['$===']($case) || "lvasgn"['$===']($case) || "lvdeclare"['$===']($case) || "ivar"['$===']($case) || "ivasgn"['$===']($case) || "gvar"['$===']($case) || "cvar"['$===']($case) || "cvasgn"['$===']($case) || "gvars"['$===']($case) || "gvasgn"['$===']($case)) {return self.sexp.$children().$first()} - else { return nil }})() - }, $Fragment_source_map_name$3.$$arity = 0); + return ($a = self.$location(), ($a === nil || $a == null) ? nil : $send($a, 'line', [])) + }, 0); - Opal.def(self, '$line', $Fragment_line$4 = function $$line() { - var self = this; + $def(self, '$column', function $$column() { + var $a, self = this; - if ($truthy(self.sexp)) { - return self.sexp.$line() - } else { - return nil - } - }, $Fragment_line$4.$$arity = 0); - return (Opal.def(self, '$column', $Fragment_column$5 = function $$column() { + return ($a = self.$location(), ($a === nil || $a == null) ? nil : $send($a, 'column', [])) + }, 0); + return $def(self, '$skip_source_map?', function $Fragment_skip_source_map$ques$1() { var self = this; - if ($truthy(self.sexp)) { - return self.sexp.$column() - } else { - return nil - } - }, $Fragment_column$5.$$arity = 0), nil) && 'column'; + return self.sexp['$=='](false) + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/helpers"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/helpers"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $truthy = Opal.truthy, $def = Opal.def, $rb_plus = Opal.rb_plus, $send = Opal.send, $hash2 = Opal.hash2, $to_a = Opal.to_a, $eqeqeq = Opal.eqeqeq, $slice = Opal.slice, $eqeq = Opal.eqeq, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$require', '$valid_name?', '$inspect', '$=~', '$to_s', '$+', '$indent', '$compiler', '$to_proc', '$parser_indent', '$push', '$current_indent', '$js_truthy_optimize', '$helper', '$fragment', '$expr', '$==', '$type', '$[]', '$children', '$uses_block!', '$scope', '$block_name', '$handlers', '$include?', '$truthy_optimize?', '$new_temp', '$wrap']); + Opal.add_stubs('require,valid_name?,inspect,=~,to_s,+,indent,compiler,to_proc,parser_indent,push,fragment,current_indent,js_truthy_optimize,helper,expr,===,type,[],handlers,include?,truthy_optimize?,==,count,<<,method_calls,first,children,s,[]=,meta,-,new_temp,scope,wrap'); self.$require("opal/regexp_anchors"); return (function($base, $parent_nesting) { @@ -31896,159 +28723,169 @@ Opal.modules["opal/nodes/helpers"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Helpers'); - var $nesting = [self].concat($parent_nesting), $Helpers_property$1, $Helpers_valid_name$ques$2, $Helpers_mid_to_jsid$3, $Helpers_indent$4, $Helpers_current_indent$5, $Helpers_line$6, $Helpers_empty_line$7, $Helpers_js_truthy$8, $Helpers_js_falsy$9, $Helpers_js_truthy_optimize$10, $Helpers_conditional_send$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$property', $Helpers_property$1 = function $$property(name) { + $def(self, '$property', function $$property(name) { var self = this; if ($truthy(self['$valid_name?'](name))) { - return "" + "." + (name) + return "." + (name) } else { - return "" + "[" + (name.$inspect()) + "]" + return "[" + (name.$inspect()) + "]" } - }, $Helpers_property$1.$$arity = 1); + }, 1); - Opal.def(self, '$valid_name?', $Helpers_valid_name$ques$2 = function(name) { - var self = this; - - return $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'JsReservedWords')['$valid_name?'](name) - }, $Helpers_valid_name$ques$2.$$arity = 1); + $def(self, '$valid_name?', function $Helpers_valid_name$ques$1(name) { + + return $$$($$$($$('Opal'), 'Rewriters'), 'JsReservedWords')['$valid_name?'](name) + }, 1); - Opal.def(self, '$mid_to_jsid', $Helpers_mid_to_jsid$3 = function $$mid_to_jsid(mid) { - var self = this; - - if ($truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[/['$=~'](mid.$to_s()))) { - return "" + "['$" + (mid) + "']" + $def(self, '$mid_to_jsid', function $$mid_to_jsid(mid) { + + if ($truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/['$=~'](mid.$to_s()))) { + return "['$" + (mid) + "']" } else { return $rb_plus(".$", mid) } - }, $Helpers_mid_to_jsid$3.$$arity = 1); + }, 1); - Opal.def(self, '$indent', $Helpers_indent$4 = function $$indent() { - var $iter = $Helpers_indent$4.$$p, block = $iter || nil, self = this; + $def(self, '$indent', function $$indent() { + var block = $$indent.$$p || nil, self = this; - if ($iter) $Helpers_indent$4.$$p = null; - + delete $$indent.$$p; - if ($iter) $Helpers_indent$4.$$p = null;; + ; return $send(self.$compiler(), 'indent', [], block.$to_proc()); - }, $Helpers_indent$4.$$arity = 0); + }, 0); - Opal.def(self, '$current_indent', $Helpers_current_indent$5 = function $$current_indent() { + $def(self, '$current_indent', function $$current_indent() { var self = this; return self.$compiler().$parser_indent() - }, $Helpers_current_indent$5.$$arity = 0); + }, 0); - Opal.def(self, '$line', $Helpers_line$6 = function $$line($a) { + $def(self, '$line', function $$line($a) { var $post_args, strs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); strs = $post_args;; - self.$push("" + "\n" + (self.$current_indent())); - return $send(self, 'push', Opal.to_a(strs)); - }, $Helpers_line$6.$$arity = -1); + self.$push(self.$fragment("\n" + (self.$current_indent()), $hash2(["loc"], {"loc": false}))); + return $send(self, 'push', $to_a(strs)); + }, -1); - Opal.def(self, '$empty_line', $Helpers_empty_line$7 = function $$empty_line() { + $def(self, '$empty_line', function $$empty_line() { var self = this; - return self.$push("\n") - }, $Helpers_empty_line$7.$$arity = 0); + return self.$push(self.$fragment("\n", $hash2(["loc"], {"loc": false}))) + }, 0); - Opal.def(self, '$js_truthy', $Helpers_js_truthy$8 = function $$js_truthy(sexp) { + $def(self, '$js_truthy', function $$js_truthy(sexp) { var self = this, optimize = nil; if ($truthy((optimize = self.$js_truthy_optimize(sexp)))) { - return optimize}; + return optimize + }; self.$helper("truthy"); return [self.$fragment("$truthy("), self.$expr(sexp), self.$fragment(")")]; - }, $Helpers_js_truthy$8.$$arity = 1); - - Opal.def(self, '$js_falsy', $Helpers_js_falsy$9 = function $$js_falsy(sexp) { - var self = this, mid = nil; - - - if (sexp.$type()['$==']("send")) { - - mid = sexp.$children()['$[]'](1); - if (mid['$==']("block_given?")) { - - self.$scope()['$uses_block!'](); - return "" + (self.$scope().$block_name()) + " === nil";};}; - self.$helper("falsy"); - return [self.$fragment("$falsy("), self.$expr(sexp), self.$fragment(")")]; - }, $Helpers_js_falsy$9.$$arity = 1); + }, 1); - Opal.def(self, '$js_truthy_optimize', $Helpers_js_truthy_optimize$10 = function $$js_truthy_optimize(sexp) { - var self = this, mid = nil, receiver_handler_class = nil, $ret_or_1 = nil, receiver = nil, allow_optimization_on_type = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$js_truthy_optimize', function $$js_truthy_optimize(sexp) { + var $a, self = this, $ret_or_1 = nil, receiver = nil, mid = nil, args = nil, receiver_handler_class = nil, $ret_or_2 = nil, allow_optimization_on_type = nil, $ret_or_3 = nil, _test = nil, true_body = nil, false_body = nil, $writer = nil; - if (sexp.$type()['$==']("send")) { + if ($eqeqeq("send", ($ret_or_1 = sexp.$type()))) { - mid = sexp.$children()['$[]'](1); - receiver_handler_class = (function() {if ($truthy(($ret_or_1 = (receiver = sexp.$children()['$[]'](0))))) { - return self.$compiler().$handlers()['$[]'](receiver.$type()) - } else { - return $ret_or_1 - }; return nil; })(); - allow_optimization_on_type = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$$($$($nesting, 'Compiler'), 'COMPARE')['$include?'](mid.$to_s())))) { - return receiver_handler_class - } else { - return $ret_or_3 - }; return nil; })()))) { - return receiver_handler_class['$truthy_optimize?']() - } else { - return $ret_or_2 - }; return nil; })(); - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = allow_optimization_on_type))) { - return $ret_or_5 + $a = [].concat($to_a(sexp)), (receiver = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + receiver_handler_class = ($truthy(($ret_or_2 = receiver)) ? (self.$compiler().$handlers()['$[]'](receiver.$type())) : ($ret_or_2)); + allow_optimization_on_type = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = $$$($$('Compiler'), 'COMPARE')['$include?'](mid.$to_s()))) ? (receiver_handler_class) : ($ret_or_3)))) ? (receiver_handler_class['$truthy_optimize?']()) : ($ret_or_2)); + if (($truthy(allow_optimization_on_type) || ($eqeq(mid, "block_given?")))) { + return self.$expr(sexp) + } else if ($eqeq(args.$count(), 1)) { + if ($eqeqeq("==", ($ret_or_2 = mid))) { + + self.$helper("eqeq"); + self.$compiler().$method_calls()['$<<'](mid); + return [self.$fragment("$eqeq("), self.$expr(receiver), self.$fragment(", "), self.$expr(args.$first()), self.$fragment(")")]; + } else if ($eqeqeq("===", $ret_or_2)) { + + self.$helper("eqeqeq"); + self.$compiler().$method_calls()['$<<'](mid); + return [self.$fragment("$eqeqeq("), self.$expr(receiver), self.$fragment(", "), self.$expr(args.$first()), self.$fragment(")")]; + } else if ($eqeqeq("!=", $ret_or_2)) { + + self.$helper("neqeq"); + self.$compiler().$method_calls()['$<<'](mid); + return [self.$fragment("$neqeq("), self.$expr(receiver), self.$fragment(", "), self.$expr(args.$first()), self.$fragment(")")]; + } else { + return nil + } + } else if ($eqeq(args.$count(), 0)) { + if ($eqeqeq("!", ($ret_or_2 = mid))) { + + self.$helper("not"); + self.$compiler().$method_calls()['$<<'](mid); + return [self.$fragment("$not("), self.$expr(receiver), self.$fragment(")")]; + } else { + return nil + } } else { - return mid['$==']("block_given?") - }; return nil; })()))) { - return $ret_or_4 + return nil + }; + } else if ($eqeqeq("begin", $ret_or_1)) { + if ($eqeq(sexp.$children().$count(), 1)) { + return self.$js_truthy_optimize(sexp.$children().$first()) } else { - return mid['$==']("==") - }; return nil; })())) { - return self.$expr(sexp) + return nil + } + } else if ($eqeqeq("if", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (_test = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; + if ($eqeq(true_body, self.$s("true"))) { + + + $writer = ["do_js_truthy_on_false_body", true]; + $send(sexp.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$expr(sexp); + } else if ($eqeq(false_body, self.$s("false"))) { + + + $writer = ["do_js_truthy_on_true_body", true]; + $send(sexp.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$expr(sexp); } else { return nil }; } else { return nil } - }, $Helpers_js_truthy_optimize$10.$$arity = 1); - return (Opal.def(self, '$conditional_send', $Helpers_conditional_send$11 = function $$conditional_send(recvr) { - var $iter = $Helpers_conditional_send$11.$$p, $yield = $iter || nil, self = this, receiver_temp = nil; + }, 1); + return $def(self, '$conditional_send', function $$conditional_send(recvr) { + var $yield = $$conditional_send.$$p || nil, self = this, receiver_temp = nil; - if ($iter) $Helpers_conditional_send$11.$$p = null; + delete $$conditional_send.$$p; receiver_temp = self.$scope().$new_temp(); self.$push("" + (receiver_temp) + " = ", recvr); - self.$push("" + ", (" + (receiver_temp) + " === nil || " + (receiver_temp) + " == null) ? nil : "); + self.$push(", (" + (receiver_temp) + " === nil || " + (receiver_temp) + " == null) ? nil : "); Opal.yield1($yield, receiver_temp); return self.$wrap("(", ")"); - }, $Helpers_conditional_send$11.$$arity = 1), nil) && 'conditional_send'; + }, 1); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/base"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; - - Opal.add_stubs(['$require', '$include', '$each', '$[]=', '$handlers', '$-', '$each_with_index', '$define_method', '$[]', '$children', '$attr_reader', '$type', '$compile', '$raise', '$is_a?', '$fragment', '$<<', '$reverse_each', '$unshift', '$push', '$new', '$scope', '$error', '$top_scope', '$s', '$==', '$process', '$expr', '$add_scope_local', '$to_sym', '$add_scope_ivar', '$add_scope_gvar', '$add_scope_temp', '$helper', '$with_temp', '$to_proc', '$in_while?', '$instance_variable_get', '$has_rescue_else?', '$in_ensure', '$in_ensure?', '$in_resbody', '$in_resbody?', '$in_rescue', '$!', '$class_scope?', '$sclass?', '$+', '$parent', '$class_variable_owner_nesting_level', '$comments', '$compiler', '$loc', '$name', '$source_buffer', '$expression', '$start_with?', '$end_with?', '$line']); +Opal.modules["opal/nodes/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $defs = Opal.defs, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $Opal = Opal.Opal, $rb_plus = Opal.rb_plus; + + Opal.add_stubs('require,include,each,[]=,handlers,-,each_with_index,define_method,[],children,attr_reader,type,top_scope,top_scope=,compile,raise,is_a?,fragment,<<,reverse_each,unshift,push,new,scope,error,loc,==,process,expr,add_scope_local,to_sym,add_scope_ivar,add_scope_gvar,add_scope_temp,helper,with_temp,to_proc,in_while?,instance_variable_get,has_rescue_else?,in_ensure,in_ensure?,in_resbody,in_resbody?,in_rescue,!,class_scope?,sclass?,+,parent,nesting,class_variable_owner_nesting_level,comments,compiler,name,source_buffer,expression,start_with?,end_with?,line'); self.$require("opal/nodes/helpers"); return (function($base, $parent_nesting) { @@ -32064,237 +28901,241 @@ Opal.modules["opal/nodes/base"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Base'); - var $nesting = [self].concat($parent_nesting), $Base_handlers$1, $Base_handle$2, $Base_children$4, $Base_truthy_optimize$ques$7, $Base_initialize$8, $Base_children$9, $Base_compile_to_fragments$10, $Base_compile$11, $Base_push$12, $Base_unshift$14, $Base_wrap$16, $Base_fragment$17, $Base_error$18, $Base_scope$19, $Base_top_scope$20, $Base_s$21, $Base_expr$ques$22, $Base_recv$ques$23, $Base_stmt$ques$24, $Base_process$25, $Base_expr$26, $Base_recv$27, $Base_stmt$28, $Base_expr_or_nil$29, $Base_add_local$30, $Base_add_ivar$31, $Base_add_gvar$32, $Base_add_temp$33, $Base_helper$34, $Base_with_temp$35, $Base_in_while$ques$36, $Base_while_loop$37, $Base_has_rescue_else$ques$38, $Base_in_ensure$39, $Base_in_ensure$ques$40, $Base_in_resbody$41, $Base_in_resbody$ques$42, $Base_in_rescue$43, $Base_class_variable_owner_nesting_level$44, $Base_class_variable_owner$45, $Base_comments$46, $Base_source_location$47; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = self.$$prototype.fragments = self.$$prototype.compiler = self.$$prototype.level = nil; + $proto.compiler = $proto.sexp = $proto.fragments = $proto.level = nil; - self.$include($$($nesting, 'Helpers')); - Opal.defs(self, '$handlers', $Base_handlers$1 = function $$handlers() { + self.$include($$('Helpers')); + $defs(self, '$handlers', function $$handlers() { var self = this, $ret_or_1 = nil; if (self.handlers == null) self.handlers = nil; - return (self.handlers = (function() {if ($truthy(($ret_or_1 = self.handlers))) { - return $ret_or_1 - } else { - return $hash2([], {}) - }; return nil; })()) - }, $Base_handlers$1.$$arity = 0); - Opal.defs(self, '$handle', $Base_handle$2 = function $$handle($a) { - var $post_args, types, $$3, self = this; + return (self.handlers = ($truthy(($ret_or_1 = self.handlers)) ? ($ret_or_1) : ($hash2([], {})))) + }, 0); + $defs(self, '$handle', function $$handle($a) { + var $post_args, types, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); types = $post_args;; - return $send(types, 'each', [], ($$3 = function(type){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + return $send(types, 'each', [], function $$1(type){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; - if (type == null) { - type = nil; - }; + if (type == null) type = nil;; $writer = [type, self]; - $send($$($nesting, 'Base').$handlers(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - }, $Base_handle$2.$$arity = -1); - Opal.defs(self, '$children', $Base_children$4 = function $$children($a) { - var $post_args, names, $$5, self = this; + $send($$('Base').$handlers(), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + }, -1); + $defs(self, '$children', function $$children($a) { + var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - return $send(names, 'each_with_index', [], ($$5 = function(name, idx){var self = $$5.$$s == null ? this : $$5.$$s, $$6; + return $send(names, 'each_with_index', [], function $$2(name, idx){var self = $$2.$$s == null ? this : $$2.$$s; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (idx == null) { - idx = nil; - }; - return $send(self, 'define_method', [name], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; + if (idx == null) idx = nil;; + return $send(self, 'define_method', [name], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; if (self.sexp == null) self.sexp = nil; - return self.sexp.$children()['$[]'](idx)}, $$6.$$s = self, $$6.$$arity = 0, $$6));}, $$5.$$s = self, $$5.$$arity = 2, $$5)); - }, $Base_children$4.$$arity = -1); - Opal.defs(self, '$truthy_optimize?', $Base_truthy_optimize$ques$7 = function() { - var self = this; - + return self.sexp.$children()['$[]'](idx)}, {$$arity: 0, $$s: self});}, {$$arity: 2, $$s: self}); + }, -1); + $defs(self, '$truthy_optimize?', function $Base_truthy_optimize$ques$4() { + return false - }, $Base_truthy_optimize$ques$7.$$arity = 0); - self.$attr_reader("compiler", "type"); + }, 0); + self.$attr_reader("compiler", "type", "sexp"); - Opal.def(self, '$initialize', $Base_initialize$8 = function $$initialize(sexp, level, compiler) { - var self = this; + $def(self, '$initialize', function $$initialize(sexp, level, compiler) { + var self = this, $ret_or_1 = nil, $writer = nil; self.sexp = sexp; self.type = sexp.$type(); self.level = level; - return (self.compiler = compiler); - }, $Base_initialize$8.$$arity = 3); + self.compiler = compiler; + if ($truthy(($ret_or_1 = self.compiler.$top_scope()))) { + return $ret_or_1 + } else { + + $writer = [self]; + $send(self.compiler, 'top_scope=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }; + }, 3); - Opal.def(self, '$children', $Base_children$9 = function $$children() { + $def(self, '$children', function $$children() { var self = this; return self.sexp.$children() - }, $Base_children$9.$$arity = 0); + }, 0); - Opal.def(self, '$compile_to_fragments', $Base_compile_to_fragments$10 = function $$compile_to_fragments() { + $def(self, '$compile_to_fragments', function $$compile_to_fragments() { var $a, self = this; if ($truthy((($a = self['fragments'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.fragments}; + return self.fragments + }; self.fragments = []; self.$compile(); return self.fragments; - }, $Base_compile_to_fragments$10.$$arity = 0); + }, 0); - Opal.def(self, '$compile', $Base_compile$11 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; return self.$raise("Not Implemented") - }, $Base_compile$11.$$arity = 0); + }, 0); - Opal.def(self, '$push', $Base_push$12 = function $$push($a) { - var $post_args, strs, $$13, self = this; + $def(self, '$push', function $$push($a) { + var $post_args, strs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); strs = $post_args;; - return $send(strs, 'each', [], ($$13 = function(str){var self = $$13.$$s == null ? this : $$13.$$s; + return $send(strs, 'each', [], function $$5(str){var self = $$5.$$s == null ? this : $$5.$$s; if (self.fragments == null) self.fragments = nil; - if (str == null) { - str = nil; + if (str == null) str = nil;; + if ($truthy(str['$is_a?']($$('String')))) { + str = self.$fragment(str) }; - if ($truthy(str['$is_a?']($$($nesting, 'String')))) { - str = self.$fragment(str)}; - return self.fragments['$<<'](str);}, $$13.$$s = self, $$13.$$arity = 1, $$13)); - }, $Base_push$12.$$arity = -1); + return self.fragments['$<<'](str);}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$unshift', $Base_unshift$14 = function $$unshift($a) { - var $post_args, strs, $$15, self = this; + $def(self, '$unshift', function $$unshift($a) { + var $post_args, strs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); strs = $post_args;; - return $send(strs, 'reverse_each', [], ($$15 = function(str){var self = $$15.$$s == null ? this : $$15.$$s; + return $send(strs, 'reverse_each', [], function $$6(str){var self = $$6.$$s == null ? this : $$6.$$s; if (self.fragments == null) self.fragments = nil; - if (str == null) { - str = nil; + if (str == null) str = nil;; + if ($truthy(str['$is_a?']($$('String')))) { + str = self.$fragment(str) }; - if ($truthy(str['$is_a?']($$($nesting, 'String')))) { - str = self.$fragment(str)}; - return self.fragments.$unshift(str);}, $$15.$$s = self, $$15.$$arity = 1, $$15)); - }, $Base_unshift$14.$$arity = -1); + return self.fragments.$unshift(str);}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$wrap', $Base_wrap$16 = function $$wrap(pre, post) { + $def(self, '$wrap', function $$wrap(pre, post) { var self = this; self.$unshift(pre); return self.$push(post); - }, $Base_wrap$16.$$arity = 2); + }, 2); - Opal.def(self, '$fragment', $Base_fragment$17 = function $$fragment(str) { - var self = this; + $def(self, '$fragment', function $$fragment(str, $kwargs) { + var loc, self = this, $ret_or_1 = nil; - return $$$($$($nesting, 'Opal'), 'Fragment').$new(str, self.$scope(), self.sexp) - }, $Base_fragment$17.$$arity = 1); + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + loc = $kwargs.$$smap["loc"]; + if (loc == null) loc = true; + return $$$($$('Opal'), 'Fragment').$new(str, self.$scope(), ($truthy(($ret_or_1 = loc)) ? (self.sexp) : ($ret_or_1))); + }, -2); - Opal.def(self, '$error', $Base_error$18 = function $$error(msg) { + $def(self, '$error', function $$error(msg) { var self = this; return self.compiler.$error(msg) - }, $Base_error$18.$$arity = 1); + }, 1); - Opal.def(self, '$scope', $Base_scope$19 = function $$scope() { + $def(self, '$scope', function $$scope() { var self = this; return self.compiler.$scope() - }, $Base_scope$19.$$arity = 0); + }, 0); - Opal.def(self, '$top_scope', $Base_top_scope$20 = function $$top_scope() { + $def(self, '$top_scope', function $$top_scope() { var self = this; - return self.$scope().$top_scope() - }, $Base_top_scope$20.$$arity = 0); + return self.compiler.$top_scope() + }, 0); - Opal.def(self, '$s', $Base_s$21 = function $$s($a) { - var $post_args, args, self = this; + $def(self, '$s', function $$s(type, $a) { + var $post_args, children, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments, 1); - args = $post_args;; - return $send(self.compiler, 's', Opal.to_a(args)); - }, $Base_s$21.$$arity = -1); + children = $post_args;; + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": self.sexp.$loc()})); + }, -2); - Opal.def(self, '$expr?', $Base_expr$ques$22 = function() { + $def(self, '$expr?', function $Base_expr$ques$7() { var self = this; return self.level['$==']("expr") - }, $Base_expr$ques$22.$$arity = 0); + }, 0); - Opal.def(self, '$recv?', $Base_recv$ques$23 = function() { + $def(self, '$recv?', function $Base_recv$ques$8() { var self = this; return self.level['$==']("recv") - }, $Base_recv$ques$23.$$arity = 0); + }, 0); - Opal.def(self, '$stmt?', $Base_stmt$ques$24 = function() { + $def(self, '$stmt?', function $Base_stmt$ques$9() { var self = this; return self.level['$==']("stmt") - }, $Base_stmt$ques$24.$$arity = 0); + }, 0); - Opal.def(self, '$process', $Base_process$25 = function $$process(sexp, level) { + $def(self, '$process', function $$process(sexp, level) { var self = this; - if (level == null) { - level = "expr"; - }; + if (level == null) level = "expr";; return self.compiler.$process(sexp, level); - }, $Base_process$25.$$arity = -2); + }, -2); - Opal.def(self, '$expr', $Base_expr$26 = function $$expr(sexp) { + $def(self, '$expr', function $$expr(sexp) { var self = this; return self.compiler.$process(sexp, "expr") - }, $Base_expr$26.$$arity = 1); + }, 1); - Opal.def(self, '$recv', $Base_recv$27 = function $$recv(sexp) { + $def(self, '$recv', function $$recv(sexp) { var self = this; return self.compiler.$process(sexp, "recv") - }, $Base_recv$27.$$arity = 1); + }, 1); - Opal.def(self, '$stmt', $Base_stmt$28 = function $$stmt(sexp) { + $def(self, '$stmt', function $$stmt(sexp) { var self = this; return self.compiler.$process(sexp, "stmt") - }, $Base_stmt$28.$$arity = 1); + }, 1); - Opal.def(self, '$expr_or_nil', $Base_expr_or_nil$29 = function $$expr_or_nil(sexp) { + $def(self, '$expr_or_nil', function $$expr_or_nil(sexp) { var self = this; if ($truthy(sexp)) { @@ -32302,176 +29143,158 @@ Opal.modules["opal/nodes/base"] = function(Opal) { } else { return "nil" } - }, $Base_expr_or_nil$29.$$arity = 1); + }, 1); - Opal.def(self, '$add_local', $Base_add_local$30 = function $$add_local(name) { + $def(self, '$add_local', function $$add_local(name) { var self = this; return self.$scope().$add_scope_local(name.$to_sym()) - }, $Base_add_local$30.$$arity = 1); + }, 1); - Opal.def(self, '$add_ivar', $Base_add_ivar$31 = function $$add_ivar(name) { + $def(self, '$add_ivar', function $$add_ivar(name) { var self = this; return self.$scope().$add_scope_ivar(name) - }, $Base_add_ivar$31.$$arity = 1); + }, 1); - Opal.def(self, '$add_gvar', $Base_add_gvar$32 = function $$add_gvar(name) { + $def(self, '$add_gvar', function $$add_gvar(name) { var self = this; return self.$scope().$add_scope_gvar(name) - }, $Base_add_gvar$32.$$arity = 1); + }, 1); - Opal.def(self, '$add_temp', $Base_add_temp$33 = function $$add_temp(temp) { + $def(self, '$add_temp', function $$add_temp(temp) { var self = this; return self.$scope().$add_scope_temp(temp) - }, $Base_add_temp$33.$$arity = 1); + }, 1); - Opal.def(self, '$helper', $Base_helper$34 = function $$helper(name) { + $def(self, '$helper', function $$helper(name) { var self = this; return self.compiler.$helper(name) - }, $Base_helper$34.$$arity = 1); + }, 1); - Opal.def(self, '$with_temp', $Base_with_temp$35 = function $$with_temp() { - var $iter = $Base_with_temp$35.$$p, block = $iter || nil, self = this; + $def(self, '$with_temp', function $$with_temp() { + var block = $$with_temp.$$p || nil, self = this; - if ($iter) $Base_with_temp$35.$$p = null; + delete $$with_temp.$$p; - - if ($iter) $Base_with_temp$35.$$p = null;; + ; return $send(self.compiler, 'with_temp', [], block.$to_proc()); - }, $Base_with_temp$35.$$arity = 0); + }, 0); - Opal.def(self, '$in_while?', $Base_in_while$ques$36 = function() { + $def(self, '$in_while?', function $Base_in_while$ques$10() { var self = this; return self.compiler['$in_while?']() - }, $Base_in_while$ques$36.$$arity = 0); + }, 0); - Opal.def(self, '$while_loop', $Base_while_loop$37 = function $$while_loop() { + $def(self, '$while_loop', function $$while_loop() { var self = this; return self.compiler.$instance_variable_get("@while_loop") - }, $Base_while_loop$37.$$arity = 0); + }, 0); - Opal.def(self, '$has_rescue_else?', $Base_has_rescue_else$ques$38 = function() { + $def(self, '$has_rescue_else?', function $Base_has_rescue_else$ques$11() { var self = this; return self.$scope()['$has_rescue_else?']() - }, $Base_has_rescue_else$ques$38.$$arity = 0); + }, 0); - Opal.def(self, '$in_ensure', $Base_in_ensure$39 = function $$in_ensure() { - var $iter = $Base_in_ensure$39.$$p, block = $iter || nil, self = this; + $def(self, '$in_ensure', function $$in_ensure() { + var block = $$in_ensure.$$p || nil, self = this; - if ($iter) $Base_in_ensure$39.$$p = null; + delete $$in_ensure.$$p; - - if ($iter) $Base_in_ensure$39.$$p = null;; + ; return $send(self.$scope(), 'in_ensure', [], block.$to_proc()); - }, $Base_in_ensure$39.$$arity = 0); + }, 0); - Opal.def(self, '$in_ensure?', $Base_in_ensure$ques$40 = function() { + $def(self, '$in_ensure?', function $Base_in_ensure$ques$12() { var self = this; return self.$scope()['$in_ensure?']() - }, $Base_in_ensure$ques$40.$$arity = 0); + }, 0); - Opal.def(self, '$in_resbody', $Base_in_resbody$41 = function $$in_resbody() { - var $iter = $Base_in_resbody$41.$$p, block = $iter || nil, self = this; + $def(self, '$in_resbody', function $$in_resbody() { + var block = $$in_resbody.$$p || nil, self = this; - if ($iter) $Base_in_resbody$41.$$p = null; + delete $$in_resbody.$$p; - - if ($iter) $Base_in_resbody$41.$$p = null;; + ; return $send(self.$scope(), 'in_resbody', [], block.$to_proc()); - }, $Base_in_resbody$41.$$arity = 0); + }, 0); - Opal.def(self, '$in_resbody?', $Base_in_resbody$ques$42 = function() { + $def(self, '$in_resbody?', function $Base_in_resbody$ques$13() { var self = this; return self.$scope()['$in_resbody?']() - }, $Base_in_resbody$ques$42.$$arity = 0); + }, 0); - Opal.def(self, '$in_rescue', $Base_in_rescue$43 = function $$in_rescue(node) { - var $iter = $Base_in_rescue$43.$$p, block = $iter || nil, self = this; + $def(self, '$in_rescue', function $$in_rescue(node) { + var block = $$in_rescue.$$p || nil, self = this; - if ($iter) $Base_in_rescue$43.$$p = null; + delete $$in_rescue.$$p; - - if ($iter) $Base_in_rescue$43.$$p = null;; + ; return $send(self.$scope(), 'in_rescue', [node], block.$to_proc()); - }, $Base_in_rescue$43.$$arity = 1); + }, 1); - Opal.def(self, '$class_variable_owner_nesting_level', $Base_class_variable_owner_nesting_level$44 = function $$class_variable_owner_nesting_level() { - var $a, self = this, cvar_scope = nil, nesting_level = nil, $ret_or_2 = nil; + $def(self, '$class_variable_owner_nesting_level', function $$class_variable_owner_nesting_level() { + var $a, self = this, cvar_scope = nil, nesting_level = nil, $ret_or_1 = nil; cvar_scope = self.$scope(); nesting_level = 0; - while ($truthy((function() {if ($truthy(($ret_or_2 = cvar_scope))) { - return cvar_scope['$class_scope?']()['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = cvar_scope)) ? (cvar_scope['$class_scope?']()['$!']()) : ($ret_or_1)))) { if ($truthy(cvar_scope['$sclass?']())) { - nesting_level = $rb_plus(nesting_level, 1)}; + nesting_level = $rb_plus(nesting_level, 1) + }; cvar_scope = cvar_scope.$parent(); }; return nesting_level; - }, $Base_class_variable_owner_nesting_level$44.$$arity = 0); + }, 0); - Opal.def(self, '$class_variable_owner', $Base_class_variable_owner$45 = function $$class_variable_owner() { + $def(self, '$class_variable_owner', function $$class_variable_owner() { var self = this; if ($truthy(self.$scope())) { - return "" + "$nesting[" + (self.$class_variable_owner_nesting_level()) + "]" + return "" + (self.$scope().$nesting()) + "[" + (self.$class_variable_owner_nesting_level()) + "]" } else { return "Opal.Object" } - }, $Base_class_variable_owner$45.$$arity = 0); + }, 0); - Opal.def(self, '$comments', $Base_comments$46 = function $$comments() { + $def(self, '$comments', function $$comments() { var self = this; return self.$compiler().$comments()['$[]'](self.sexp.$loc()) - }, $Base_comments$46.$$arity = 0); - return (Opal.def(self, '$source_location', $Base_source_location$47 = function $$source_location() { + }, 0); + return $def(self, '$source_location', function $$source_location() { var self = this, file = nil, line = nil; file = self.sexp.$loc().$expression().$source_buffer().$name(); if ($truthy(file['$start_with?']("corelib/"))) { - file = "" + ""}; + file = "" + }; if ($truthy(file['$end_with?'](".js"))) { - file = "" + ""}; + file = "" + }; line = self.sexp.$loc().$line(); - return "" + "['" + (file) + "', " + (line) + "]"; - }, $Base_source_location$47.$$arity = 0), nil) && 'source_location'; + return "['" + (file) + "', " + (line) + "]"; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/literal"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $lambda = Opal.lambda, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice; - - Opal.add_stubs(['$require', '$handle', '$push', '$to_s', '$type', '$children', '$value', '$recv?', '$wrap', '$freeze', '$join', '$keys', '$gsub', '$even?', '$length', '$last_match', '$+', '$chop', '$[]', '$inspect', '$to_i', '$to_utf16', '$translate_escape_chars', '$valid_encoding?', '$helper', '$upcase', '$<=', '$call', '$-', '$>>', '$&', '$attr_accessor', '$extract_flags_and_value', '$select!', '$flags', '$=~', '$warning', '$compiler', '$==', '$compile_static_regexp', '$compile_dynamic_regexp', '$each_with_index', '$zero?', '$expr', '$any?', '$===', '$new', '$map', '$to_proc', '$flags=', '$empty?', '$s', '$single_line?', '$value=', '$include?', '$is_a?', '$updated', '$delete', '$source', '$expression', '$loc', '$private', '$>', '$!=', '$!', '$regexp', '$each', '$compile_inline?', '$compile_inline', '$compile_range_initialize', '$start', '$finish', '$raise', '$expr_or_nil', '$numerator', '$denominator', '$real', '$imag']); +Opal.modules["opal/nodes/literal"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def, $defs = Opal.defs, $truthy = Opal.truthy, $const_set = Opal.const_set, $hash2 = Opal.hash2, $regexp = Opal.regexp, $send = Opal.send, $rb_plus = Opal.rb_plus, $lambda = Opal.lambda, $rb_le = Opal.rb_le, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $eqeqeq = Opal.eqeqeq, $slice = Opal.slice, $Opal = Opal.Opal, $rb_gt = Opal.rb_gt; + + Opal.add_stubs('require,handle,==,type,push,self,scope,to_s,children,value,recv?,wrap,freeze,join,keys,gsub,even?,length,last_match,+,chop,[],inspect,to_i,to_utf16,translate_escape_chars,valid_encoding?,helper,upcase,<=,call,-,>>,&,attr_accessor,extract_flags_and_value,select!,flags,=~,warning,compiler,compile_static_regexp,compile_dynamic_regexp,each_with_index,zero?,expr,any?,===,new,map,to_proc,flags=,empty?,s,single_line?,value=,include?,is_a?,updated,delete,source,expression,loc,private,>,!=,!,regexp,first,each,compile_inline?,compile_inline,compile_range_initialize,start,finish,raise,expr_or_nil,absolute_const,top_scope,numerator,denominator,real,imag'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -32482,38 +29305,39 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'ValueNode'); - var $nesting = [self].concat($parent_nesting), $ValueNode_compile$1, $ValueNode_truthy_optimize$ques$2; - + self.$handle("true", "false", "self", "nil"); - Opal.def(self, '$compile', $ValueNode_compile$1 = function $$compile() { - var self = this; - - return self.$push(self.$type().$to_s()) - }, $ValueNode_compile$1.$$arity = 0); - return (Opal.defs(self, '$truthy_optimize?', $ValueNode_truthy_optimize$ques$2 = function() { + $def(self, '$compile', function $$compile() { var self = this; + if ($eqeq(self.$type(), "self")) { + return self.$push(self.$scope().$self()) + } else { + return self.$push(self.$type().$to_s()) + } + }, 0); + return $defs(self, '$truthy_optimize?', function $ValueNode_truthy_optimize$ques$1() { + return true - }, $ValueNode_truthy_optimize$ques$2.$$arity = 0), nil) && 'truthy_optimize?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'NumericNode'); - var $nesting = [self].concat($parent_nesting), $NumericNode_compile$3, $NumericNode_truthy_optimize$ques$4; - + self.$handle("int", "float"); self.$children("value"); - Opal.def(self, '$compile', $NumericNode_compile$3 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; @@ -32523,51 +29347,46 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { } else { return nil }; - }, $NumericNode_compile$3.$$arity = 0); - return (Opal.defs(self, '$truthy_optimize?', $NumericNode_truthy_optimize$ques$4 = function() { - var self = this; - + }, 0); + return $defs(self, '$truthy_optimize?', function $NumericNode_truthy_optimize$ques$2() { + return true - }, $NumericNode_truthy_optimize$ques$4.$$arity = 0), nil) && 'truthy_optimize?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'StringNode'); - var $nesting = [self].concat($parent_nesting), $StringNode_translate_escape_chars$5, $StringNode_compile$7, $StringNode_to_utf16$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("str"); self.$children("value"); - Opal.const_set($nesting[0], 'ESCAPE_CHARS', $hash2(["a", "e"], {"a": "\\u0007", "e": "\\u001b"}).$freeze()); - Opal.const_set($nesting[0], 'ESCAPE_REGEX', Opal.regexp(["(\\\\+)([", $$($nesting, 'ESCAPE_CHARS').$keys().$join(""), "])"]).$freeze()); + $const_set($nesting[0], 'ESCAPE_CHARS', $hash2(["a", "e"], {"a": "\\u0007", "e": "\\u001b"}).$freeze()); + $const_set($nesting[0], 'ESCAPE_REGEX', $regexp(["(\\\\+)([", $$('ESCAPE_CHARS').$keys().$join(""), "])"]).$freeze()); - Opal.def(self, '$translate_escape_chars', $StringNode_translate_escape_chars$5 = function $$translate_escape_chars(inspect_string) { - var $$6, self = this; - - return $send(inspect_string, 'gsub', [$$($nesting, 'ESCAPE_REGEX')], ($$6 = function(original){var self = $$6.$$s == null ? this : $$6.$$s; - + $def(self, '$translate_escape_chars', function $$translate_escape_chars(inspect_string) { + + return $send(inspect_string, 'gsub', [$$('ESCAPE_REGEX')], function $$3(original){ - if (original == null) { - original = nil; - }; - if ($truthy($$($nesting, 'Regexp').$last_match(1).$length()['$even?']())) { + if (original == null) original = nil;; + if ($truthy($$('Regexp').$last_match(1).$length()['$even?']())) { return original } else { - return $rb_plus($$($nesting, 'Regexp').$last_match(1).$chop(), $$($nesting, 'ESCAPE_CHARS')['$[]']($$($nesting, 'Regexp').$last_match(2))) - };}, $$6.$$s = self, $$6.$$arity = 1, $$6)) - }, $StringNode_translate_escape_chars$5.$$arity = 1); + return $rb_plus($$('Regexp').$last_match(1).$chop(), $$('ESCAPE_CHARS')['$[]']($$('Regexp').$last_match(2))) + };}, 1) + }, 1); - Opal.def(self, '$compile', $StringNode_compile$7 = function $$compile() { - var $$8, self = this, string_value = nil, sanitized_value = nil; + $def(self, '$compile', function $$compile() { + var self = this, string_value = nil, sanitized_value = nil; string_value = self.$value(); - sanitized_value = $send(string_value.$inspect(), 'gsub', [/\\u\{([0-9a-f]+)\}/], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s, code_point = nil; + sanitized_value = $send(string_value.$inspect(), 'gsub', [/\\u\{([0-9a-f]+)\}/], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s, code_point = nil; - code_point = $$($nesting, 'Regexp').$last_match(1).$to_i(16); - return self.$to_utf16(code_point);}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + code_point = $$('Regexp').$last_match(1).$to_i(16); + return self.$to_utf16(code_point);}, {$$arity: 0, $$s: self}); self.$push(self.$translate_escape_chars(sanitized_value)); nil; if ($truthy(self.$value()['$valid_encoding?']())) { @@ -32577,247 +29396,232 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { self.$helper("binary"); return self.$wrap("$binary(", ")"); }; - }, $StringNode_compile$7.$$arity = 0); - return (Opal.def(self, '$to_utf16', $StringNode_to_utf16$9 = function $$to_utf16(code_point) { - var $$10, self = this, ten_bits = nil, u = nil, lead_surrogate = nil, tail_surrogate = nil; + }, 0); + return $def(self, '$to_utf16', function $$to_utf16(code_point) { + var ten_bits = nil, u = nil, lead_surrogate = nil, tail_surrogate = nil; ten_bits = 1023; - u = $lambda(($$10 = function(code_unit){var self = $$10.$$s == null ? this : $$10.$$s; - + u = $lambda(function $$5(code_unit){ - if (code_unit == null) { - code_unit = nil; - }; - return $rb_plus("\\u", code_unit.$to_s(16).$upcase());}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + if (code_unit == null) code_unit = nil;; + return $rb_plus("\\u", code_unit.$to_s(16).$upcase());}, 1); if ($truthy($rb_le(code_point, 65535))) { - return u.$call(code_point)}; + return u.$call(code_point) + }; code_point = $rb_minus(code_point, 65536); lead_surrogate = $rb_plus(55296, code_point['$>>'](10)); tail_surrogate = $rb_plus(56320, code_point['$&'](ten_bits)); return $rb_plus(u.$call(lead_surrogate), u.$call(tail_surrogate)); - }, $StringNode_to_utf16$9.$$arity = 1), nil) && 'to_utf16'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'SymbolNode'); - var $nesting = [self].concat($parent_nesting), $SymbolNode_compile$11; - + self.$handle("sym"); self.$children("value"); - return (Opal.def(self, '$compile', $SymbolNode_compile$11 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$value().$to_s().$inspect()) - }, $SymbolNode_compile$11.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'RegexpNode'); - var $nesting = [self].concat($parent_nesting), $RegexpNode_initialize$12, $RegexpNode_compile$13, $RegexpNode_compile_dynamic_regexp$15, $RegexpNode_compile_static_regexp$17, $RegexpNode_extract_flags_and_value$18, $RegexpNode_raw_value$20, $RegexpNode_single_line$ques$21; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; self.$handle("regexp"); self.$attr_accessor("value", "flags"); - Opal.const_set($nesting[0], 'SUPPORTED_FLAGS', /[gimuy]/.$freeze()); + $const_set($nesting[0], 'SUPPORTED_FLAGS', /[gimuy]/.$freeze()); - Opal.def(self, '$initialize', $RegexpNode_initialize$12 = function $$initialize($a) { - var $post_args, $iter = $RegexpNode_initialize$12.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $RegexpNode_initialize$12.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $RegexpNode_initialize$12, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); return self.$extract_flags_and_value(); - }, $RegexpNode_initialize$12.$$arity = -1); + }, -1); - Opal.def(self, '$compile', $RegexpNode_compile$13 = function $$compile() { - var $$14, self = this; + $def(self, '$compile', function $$compile() { + var self = this; - $send(self.$flags(), 'select!', [], ($$14 = function(flag){var self = $$14.$$s == null ? this : $$14.$$s; + $send(self.$flags(), 'select!', [], function $$6(flag){var self = $$6.$$s == null ? this : $$6.$$s; - if (flag == null) { - flag = nil; - }; - if ($truthy($$($nesting, 'SUPPORTED_FLAGS')['$=~'](flag))) { + if (flag == null) flag = nil;; + if ($truthy($$('SUPPORTED_FLAGS')['$=~'](flag))) { return true } else { - self.$compiler().$warning("" + "Skipping the '" + (flag) + "' Regexp flag as it's not widely supported by JavaScript vendors."); + self.$compiler().$warning("Skipping the '" + (flag) + "' Regexp flag as it's not widely supported by JavaScript vendors."); return false; - };}, $$14.$$s = self, $$14.$$arity = 1, $$14)); - if (self.$value().$type()['$==']("str")) { + };}, {$$arity: 1, $$s: self}); + if ($eqeq(self.$value().$type(), "str")) { return self.$compile_static_regexp() } else { return self.$compile_dynamic_regexp() }; - }, $RegexpNode_compile$13.$$arity = 0); + }, 0); - Opal.def(self, '$compile_dynamic_regexp', $RegexpNode_compile_dynamic_regexp$15 = function $$compile_dynamic_regexp() { - var $$16, self = this; + $def(self, '$compile_dynamic_regexp', function $$compile_dynamic_regexp() { + var self = this; - self.$push("Opal.regexp(["); - $send(self.$value().$children(), 'each_with_index', [], ($$16 = function(v, index){var self = $$16.$$s == null ? this : $$16.$$s; + self.$helper("regexp"); + self.$push("$regexp(["); + $send(self.$value().$children(), 'each_with_index', [], function $$7(v, index){var self = $$7.$$s == null ? this : $$7.$$s; - if (v == null) { - v = nil; - }; + if (v == null) v = nil;; - if (index == null) { - index = nil; - }; - if ($truthy(index['$zero?']())) { - } else { + if (index == null) index = nil;; + if (!$truthy(index['$zero?']())) { self.$push(", ") }; - return self.$push(self.$expr(v));}, $$16.$$s = self, $$16.$$arity = 2, $$16)); + return self.$push(self.$expr(v));}, {$$arity: 2, $$s: self}); self.$push("]"); if ($truthy(self.$flags()['$any?']())) { - self.$push("" + ", '" + (self.$flags().$join()) + "'")}; + self.$push(", '" + (self.$flags().$join()) + "'") + }; return self.$push(")"); - }, $RegexpNode_compile_dynamic_regexp$15.$$arity = 0); + }, 0); - Opal.def(self, '$compile_static_regexp', $RegexpNode_compile_static_regexp$17 = function $$compile_static_regexp() { - var self = this, value = nil, $case = nil; + $def(self, '$compile_static_regexp', function $$compile_static_regexp() { + var self = this, value = nil, $ret_or_1 = nil; value = self.$value().$children()['$[]'](0); - return (function() {$case = value; - if (""['$===']($case)) {return self.$push("/(?:)/")} - else {return self.$push("" + ($$($nesting, 'Regexp').$new(value).$inspect()) + (self.$flags().$join()))}})(); - }, $RegexpNode_compile_static_regexp$17.$$arity = 0); + if ($eqeqeq("", ($ret_or_1 = value))) { + return self.$push("/(?:)/") + } else { + return self.$push("" + ($$('Regexp').$new(value).$inspect()) + (self.$flags().$join())) + }; + }, 0); - Opal.def(self, '$extract_flags_and_value', $RegexpNode_extract_flags_and_value$18 = function $$extract_flags_and_value() { - var $a, $b, $$19, self = this, values = nil, flags_sexp = nil, $writer = nil, parts = nil; + $def(self, '$extract_flags_and_value', function $$extract_flags_and_value() { + var $a, $b, self = this, values = nil, flags_sexp = nil, $writer = nil, parts = nil; - $a = [].concat(Opal.to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (values = $slice.call($a, 0, $b)), (flags_sexp = ($a[$b] == null ? nil : $a[$b])), $a; + $a = [].concat($to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (values = $slice.call($a, 0, $b)), (flags_sexp = ($a[$b] == null ? nil : $a[$b])), $a; $writer = [$send(flags_sexp.$children(), 'map', [], "to_s".$to_proc())]; - $send(self, 'flags=', Opal.to_a($writer)); + $send(self, 'flags=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $writer = [(function() {if ($truthy(values['$empty?']())) { - return self.$s("str", "") - } else if ($truthy(self['$single_line?'](values))) { - return values['$[]'](0) - } else { - return $send(self, 's', ["dstr"].concat(Opal.to_a(values))) - }; return nil; })()]; - $send(self, 'value=', Opal.to_a($writer)); + $writer = [($truthy(values['$empty?']()) ? (self.$s("str", "")) : ($truthy(self['$single_line?'](values)) ? (values['$[]'](0)) : ($send(self, 's', ["dstr"].concat($to_a(values))))))]; + $send(self, 'value=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(self.$flags()['$include?']("x"))) { - parts = $send(self.$value().$children(), 'map', [], ($$19 = function(part){var self = $$19.$$s == null ? this : $$19.$$s, $ret_or_1 = nil, trimmed_value = nil; + parts = $send(self.$value().$children(), 'map', [], function $$8(part){var self = $$8.$$s == null ? this : $$8.$$s, trimmed_value = nil; - if (part == null) { - part = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_1 = part['$is_a?']($$$($$$($$$('::', 'Opal'), 'AST'), 'Node'))))) { - return part.$type()['$==']("str") - } else { - return $ret_or_1 - }; return nil; })())) { + if (part == null) part = nil;; + if (($truthy(part['$is_a?']($$$($$$($Opal, 'AST'), 'Node'))) && ($eqeq(part.$type(), "str")))) { trimmed_value = part.$children()['$[]'](0).$gsub(/^\s*\#.*/, "").$gsub(/\s/, ""); return self.$s("str", trimmed_value); } else { return part - };}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + };}, {$$arity: 1, $$s: self}); $writer = [self.$value().$updated(nil, parts)]; - $send(self, 'value=', Opal.to_a($writer)); + $send(self, 'value=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.$flags().$delete("x");}; - if (self.$value().$type()['$==']("str")) { + self.$flags().$delete("x"); + }; + if ($eqeq(self.$value().$type(), "str")) { $writer = [self.$s("str", self.$value().$children()['$[]'](0).$gsub("\\A", "^").$gsub("\\z", "$"))]; - $send(self, 'value=', Opal.to_a($writer)); + $send(self, 'value=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil }; - }, $RegexpNode_extract_flags_and_value$18.$$arity = 0); + }, 0); - Opal.def(self, '$raw_value', $RegexpNode_raw_value$20 = function $$raw_value() { + $def(self, '$raw_value', function $$raw_value() { var self = this, $writer = nil; $writer = [self.sexp.$loc().$expression().$source()]; - $send(self, 'value=', Opal.to_a($writer)); + $send(self, 'value=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $RegexpNode_raw_value$20.$$arity = 0); + }, 0); self.$private(); - return (Opal.def(self, '$single_line?', $RegexpNode_single_line$ques$21 = function(values) { - var self = this, value = nil, $ret_or_2 = nil; + return $def(self, '$single_line?', function $RegexpNode_single_line$ques$9(values) { + var value = nil, $ret_or_1 = nil; if ($truthy($rb_gt(values.$length(), 1))) { - return false}; + return false + }; value = values['$[]'](0); - if ($truthy(($ret_or_2 = value.$type()['$!=']("str")))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = value.$type()['$!=']("str")))) { + return $ret_or_1 } else { return value.$children()['$[]'](0)['$include?']("\n")['$!']() }; - }, $RegexpNode_single_line$ques$21.$$arity = 1), nil) && 'single_line?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'MatchCurrentLineNode'); - var $nesting = [self].concat($parent_nesting), $MatchCurrentLineNode_compile$22; - + self.$handle("match_current_line"); self.$children("regexp"); - return (Opal.def(self, '$compile', $MatchCurrentLineNode_compile$22 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, gvar_sexp = nil, send_node = nil; gvar_sexp = self.$s("gvar", "$_"); send_node = self.$s("send", gvar_sexp, "=~", self.$regexp()); return self.$push(self.$expr(send_node)); - }, $MatchCurrentLineNode_compile$22.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'DynamicStringNode'); - var $nesting = [self].concat($parent_nesting), $DynamicStringNode_compile$23; - + self.$handle("dstr"); - return (Opal.def(self, '$compile', $DynamicStringNode_compile$23 = function $$compile() { - var $$24, self = this; + return $def(self, '$compile', function $$compile() { + var self = this, skip_empty = nil; - self.$push("\"\""); - return $send(self.$children(), 'each', [], ($$24 = function(part){var self = $$24.$$s == null ? this : $$24.$$s; + if (($truthy($rb_gt(self.$children().$length(), 1)) && ($eqeq(self.$children().$first().$type(), "str")))) { + skip_empty = true + } else { + self.$push("\"\"") + }; + return $send(self.$children(), 'each', [], function $$10(part){var self = $$10.$$s == null ? this : $$10.$$s; - if (part == null) { - part = nil; + if (part == null) part = nil;; + if ($truthy(skip_empty)) { + skip_empty = false + } else { + self.$push(" + ") }; - self.$push(" + "); - if (part.$type()['$==']("str")) { - self.$push(part.$children()['$[]'](0).$inspect()) + if ($eqeq(part.$type(), "str")) { + self.$push(self.$expr(part)) } else { self.$push("(", self.$expr(part), ")") }; @@ -32825,26 +29629,25 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { return self.$wrap("(", ")") } else { return nil - };}, $$24.$$s = self, $$24.$$arity = 1, $$24)); - }, $DynamicStringNode_compile$23.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + };}, {$$arity: 1, $$s: self}); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'DynamicSymbolNode'); - var $nesting = [self].concat($parent_nesting); - + return self.$handle("dsym") - })($nesting[0], $$($nesting, 'DynamicStringNode'), $nesting); + })($nesting[0], $$('DynamicStringNode')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'RangeNode'); - var $nesting = [self].concat($parent_nesting), $RangeNode_compile$25, $RangeNode_compile_inline$ques$26, $RangeNode_compile_inline$27, $RangeNode_compile_range_initialize$28; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$children("start", "finish"); - Opal.const_set($nesting[0], 'SIMPLE_CHILDREN_TYPES', ["int", "float", "str", "sym"].$freeze()); + $const_set($nesting[0], 'SIMPLE_CHILDREN_TYPES', ["int", "float", "str", "sym"].$freeze()); - Opal.def(self, '$compile', $RangeNode_compile$25 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$compile_inline?']())) { @@ -32854,123 +29657,109 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { } else { return self.$compile_range_initialize() } - }, $RangeNode_compile$25.$$arity = 0); + }, 0); - Opal.def(self, '$compile_inline?', $RangeNode_compile_inline$ques$26 = function() { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil; + $def(self, '$compile_inline?', function $RangeNode_compile_inline$ques$11() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = self.$start()['$!']()))) { - return $ret_or_4 - } else { - - if ($truthy(($ret_or_5 = self.$start().$type()))) { - return $$($nesting, 'SIMPLE_CHILDREN_TYPES')['$include?'](self.$start().$type()) - } else { - return $ret_or_5 - }; - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$start()['$!']())) ? ($ret_or_2) : (($truthy(($ret_or_3 = self.$start().$type())) ? ($$('SIMPLE_CHILDREN_TYPES')['$include?'](self.$start().$type())) : ($ret_or_3))))))) { - if ($truthy(($ret_or_6 = self.$finish()['$!']()))) { - return $ret_or_6 + if ($truthy(($ret_or_2 = self.$finish()['$!']()))) { + return $ret_or_2 } else { - if ($truthy(($ret_or_7 = self.$finish().$type()))) { - return $$($nesting, 'SIMPLE_CHILDREN_TYPES')['$include?'](self.$finish().$type()) + if ($truthy(($ret_or_3 = self.$finish().$type()))) { + return $$('SIMPLE_CHILDREN_TYPES')['$include?'](self.$finish().$type()) } else { - return $ret_or_7 + return $ret_or_3 }; }; } else { - return $ret_or_3 + return $ret_or_1 } - }, $RangeNode_compile_inline$ques$26.$$arity = 0); + }, 0); - Opal.def(self, '$compile_inline', $RangeNode_compile_inline$27 = function $$compile_inline() { + $def(self, '$compile_inline', function $$compile_inline() { var self = this; - return self.$raise($$($nesting, 'NotImplementedError')) - }, $RangeNode_compile_inline$27.$$arity = 0); - return (Opal.def(self, '$compile_range_initialize', $RangeNode_compile_range_initialize$28 = function $$compile_range_initialize() { + return self.$raise($$('NotImplementedError')) + }, 0); + return $def(self, '$compile_range_initialize', function $$compile_range_initialize() { var self = this; - return self.$raise($$($nesting, 'NotImplementedError')) - }, $RangeNode_compile_range_initialize$28.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + return self.$raise($$('NotImplementedError')) + }, 0); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'InclusiveRangeNode'); - var $nesting = [self].concat($parent_nesting), $InclusiveRangeNode_compile_inline$29, $InclusiveRangeNode_compile_range_initialize$30; - + self.$handle("irange"); - Opal.def(self, '$compile_inline', $InclusiveRangeNode_compile_inline$29 = function $$compile_inline() { + $def(self, '$compile_inline', function $$compile_inline() { var self = this; return self.$push("$range(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", false)") - }, $InclusiveRangeNode_compile_inline$29.$$arity = 0); - return (Opal.def(self, '$compile_range_initialize', $InclusiveRangeNode_compile_range_initialize$30 = function $$compile_range_initialize() { + }, 0); + return $def(self, '$compile_range_initialize', function $$compile_range_initialize() { var self = this; return self.$push("Opal.Range.$new(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", false)") - }, $InclusiveRangeNode_compile_range_initialize$30.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], $$($nesting, 'RangeNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('RangeNode')); + (function($base, $super) { var self = $klass($base, $super, 'ExclusiveRangeNode'); - var $nesting = [self].concat($parent_nesting), $ExclusiveRangeNode_compile_inline$31, $ExclusiveRangeNode_compile_range_initialize$32; - + self.$handle("erange"); - Opal.def(self, '$compile_inline', $ExclusiveRangeNode_compile_inline$31 = function $$compile_inline() { + $def(self, '$compile_inline', function $$compile_inline() { var self = this; return self.$push("$range(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", true)") - }, $ExclusiveRangeNode_compile_inline$31.$$arity = 0); - return (Opal.def(self, '$compile_range_initialize', $ExclusiveRangeNode_compile_range_initialize$32 = function $$compile_range_initialize() { + }, 0); + return $def(self, '$compile_range_initialize', function $$compile_range_initialize() { var self = this; return self.$push("Opal.Range.$new(", self.$expr_or_nil(self.$start()), ",", self.$expr_or_nil(self.$finish()), ", true)") - }, $ExclusiveRangeNode_compile_range_initialize$32.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], $$($nesting, 'RangeNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('RangeNode')); + (function($base, $super) { var self = $klass($base, $super, 'RationalNode'); - var $nesting = [self].concat($parent_nesting), $RationalNode_compile$33; - + self.$handle("rational"); self.$children("value"); - return (Opal.def(self, '$compile', $RationalNode_compile$33 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - return self.$push("" + "Opal.Rational.$new(" + (self.$value().$numerator()) + ", " + (self.$value().$denominator()) + ")") - }, $RationalNode_compile$33.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + return self.$push("" + (self.$top_scope().$absolute_const()) + "('Rational').$new(" + (self.$value().$numerator()) + ", " + (self.$value().$denominator()) + ")") + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'ComplexNode'); - var $nesting = [self].concat($parent_nesting), $ComplexNode_compile$34; - + self.$handle("complex"); self.$children("value"); - return (Opal.def(self, '$compile', $ComplexNode_compile$34 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - return self.$push("" + "Opal.Complex.$new(" + (self.$value().$real()) + ", " + (self.$value().$imag()) + ")") - }, $ComplexNode_compile$34.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("" + (self.$top_scope().$absolute_const()) + "('Complex').$new(" + (self.$value().$real()) + ", " + (self.$value().$imag()) + ")") + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/variables"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/nodes/variables"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $send = Opal.send, $range = Opal.range, $eqeqeq = Opal.eqeqeq, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$handle', '$children', '$irb?', '$compiler', '$top?', '$scope', '$using_irb?', '$push', '$to_s', '$var_name', '$with_temp', '$property', '$wrap', '$add_local', '$expr', '$value', '$recv?', '$expr?', '$[]', '$name', '$add_ivar', '$helper', '$add_gvar', '$===', '$handle_global_match', '$handle_post_match', '$handle_pre_match', '$raise', '$index', '$stmt?', '$class_variable_owner', '$inspect']); + Opal.add_stubs('require,handle,children,irb?,compiler,top?,scope,using_irb?,push,to_s,var_name,with_temp,property,wrap,add_local,expr,value,expr?,recv?,[],name,add_ivar,self,helper,add_gvar,===,handle_global_match,handle_post_match,handle_pre_match,raise,index,stmt?,class_variable_owner,inspect'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -32981,19 +29770,18 @@ Opal.modules["opal/nodes/variables"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'LocalVariableNode'); - var $nesting = [self].concat($parent_nesting), $LocalVariableNode_using_irb$ques$1, $LocalVariableNode_compile$2; - + self.$handle("lvar"); self.$children("var_name"); - Opal.def(self, '$using_irb?', $LocalVariableNode_using_irb$ques$1 = function() { + $def(self, '$using_irb?', function $LocalVariableNode_using_irb$ques$1() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$compiler()['$irb?']()))) { @@ -33001,338 +29789,295 @@ Opal.modules["opal/nodes/variables"] = function(Opal) { } else { return $ret_or_1 } - }, $LocalVariableNode_using_irb$ques$1.$$arity = 0); - return (Opal.def(self, '$compile', $LocalVariableNode_compile$2 = function $$compile() { - var $$3, self = this; + }, 0); + return $def(self, '$compile', function $$compile() { + var self = this; - if ($truthy(self['$using_irb?']())) { - } else { + if (!$truthy(self['$using_irb?']())) { return self.$push(self.$var_name().$to_s()) }; - return $send(self, 'with_temp', [], ($$3 = function(tmp){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(self, 'with_temp', [], function $$2(tmp){var self = $$2.$$s == null ? this : $$2.$$s; - if (tmp == null) { - tmp = nil; - }; + if (tmp == null) tmp = nil;; self.$push(self.$property(self.$var_name().$to_s())); - return self.$wrap("" + "((" + (tmp) + " = Opal.irb_vars", "" + ") == null ? nil : " + (tmp) + ")");}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - }, $LocalVariableNode_compile$2.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + return self.$wrap("((" + (tmp) + " = Opal.irb_vars", ") == null ? nil : " + (tmp) + ")");}, {$$arity: 1, $$s: self}); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'LocalAssignNode'); - var $nesting = [self].concat($parent_nesting), $LocalAssignNode_using_irb$ques$4, $LocalAssignNode_compile$5; - + self.$handle("lvasgn"); self.$children("var_name", "value"); - Opal.def(self, '$using_irb?', $LocalAssignNode_using_irb$ques$4 = function() { - var self = this, $ret_or_2 = nil; + $def(self, '$using_irb?', function $LocalAssignNode_using_irb$ques$3() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = self.$compiler()['$irb?']()))) { + if ($truthy(($ret_or_1 = self.$compiler()['$irb?']()))) { return self.$scope()['$top?']() } else { - return $ret_or_2 + return $ret_or_1 } - }, $LocalAssignNode_using_irb$ques$4.$$arity = 0); - return (Opal.def(self, '$compile', $LocalAssignNode_compile$5 = function $$compile() { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil; + }, 0); + return $def(self, '$compile', function $$compile() { + var self = this; if ($truthy(self['$using_irb?']())) { - self.$push("" + "Opal.irb_vars" + (self.$property(self.$var_name().$to_s())) + " = ") + self.$push("Opal.irb_vars" + (self.$property(self.$var_name().$to_s())) + " = ") } else { self.$add_local(self.$var_name().$to_s()); self.$push("" + (self.$var_name()) + " = "); }; self.$push(self.$expr(self.$value())); - if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = self['$recv?']()))) { - return $ret_or_4 - } else { - return self['$expr?']() - }; return nil; })()))) { - return self.$value() - } else { - return $ret_or_3 - }; return nil; })())) { + if ((($truthy(self['$recv?']()) || ($truthy(self['$expr?']()))) && ($truthy(self.$value())))) { return self.$wrap("(", ")") } else { return nil }; - }, $LocalAssignNode_compile$5.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'LocalDeclareNode'); - var $nesting = [self].concat($parent_nesting), $LocalDeclareNode_compile$6; - + self.$handle("lvdeclare"); self.$children("var_name"); - return (Opal.def(self, '$compile', $LocalDeclareNode_compile$6 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_local(self.$var_name().$to_s()); return nil; - }, $LocalDeclareNode_compile$6.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'InstanceVariableNode'); - var $nesting = [self].concat($parent_nesting), $InstanceVariableNode_var_name$7, $InstanceVariableNode_compile$8; - + self.$handle("ivar"); self.$children("name"); - Opal.def(self, '$var_name', $InstanceVariableNode_var_name$7 = function $$var_name() { + $def(self, '$var_name', function $$var_name() { var self = this; return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, $InstanceVariableNode_var_name$7.$$arity = 0); - return (Opal.def(self, '$compile', $InstanceVariableNode_compile$8 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this, name = nil; name = self.$property(self.$var_name()); self.$add_ivar(name); - return self.$push("" + "self" + (name)); - }, $InstanceVariableNode_compile$8.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + return self.$push("" + (self.$scope().$self()) + (name)); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'InstanceAssignNode'); - var $nesting = [self].concat($parent_nesting), $InstanceAssignNode_var_name$9, $InstanceAssignNode_compile$10; - + self.$handle("ivasgn"); self.$children("name", "value"); - Opal.def(self, '$var_name', $InstanceAssignNode_var_name$9 = function $$var_name() { + $def(self, '$var_name', function $$var_name() { var self = this; return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, $InstanceAssignNode_var_name$9.$$arity = 0); - return (Opal.def(self, '$compile', $InstanceAssignNode_compile$10 = function $$compile() { - var self = this, name = nil, $ret_or_5 = nil, $ret_or_6 = nil; + }, 0); + return $def(self, '$compile', function $$compile() { + var self = this, name = nil; name = self.$property(self.$var_name()); - self.$push("" + "self" + (name) + " = "); + self.$push("" + (self.$scope().$self()) + (name) + " = "); self.$push(self.$expr(self.$value())); - if ($truthy((function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self['$recv?']()))) { - return $ret_or_6 - } else { - return self['$expr?']() - }; return nil; })()))) { - return self.$value() - } else { - return $ret_or_5 - }; return nil; })())) { + if ((($truthy(self['$recv?']()) || ($truthy(self['$expr?']()))) && ($truthy(self.$value())))) { return self.$wrap("(", ")") } else { return nil }; - }, $InstanceAssignNode_compile$10.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'GlobalVariableNode'); - var $nesting = [self].concat($parent_nesting), $GlobalVariableNode_var_name$11, $GlobalVariableNode_compile$12; - + self.$handle("gvar"); self.$children("name"); - Opal.def(self, '$var_name', $GlobalVariableNode_var_name$11 = function $$var_name() { + $def(self, '$var_name', function $$var_name() { var self = this; return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, $GlobalVariableNode_var_name$11.$$arity = 0); - return (Opal.def(self, '$compile', $GlobalVariableNode_compile$12 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this, name = nil; self.$helper("gvars"); name = self.$property(self.$var_name()); self.$add_gvar(name); - return self.$push("" + "$gvars" + (name)); - }, $GlobalVariableNode_compile$12.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("$gvars" + (name)); + }, 0); + })($nesting[0], $$('Base')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'BackRefNode'); - var $nesting = [self].concat($parent_nesting), $BackRefNode_compile$13, $BackRefNode_handle_global_match$14, $BackRefNode_handle_pre_match$16, $BackRefNode_handle_post_match$18; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("back_ref"); - Opal.def(self, '$compile', $BackRefNode_compile$13 = function $$compile() { - var $iter = $BackRefNode_compile$13.$$p, $yield = $iter || nil, self = this, $case = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$compile', function $$compile() { + var $yield = $$compile.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $BackRefNode_compile$13.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$compile.$$p; self.$helper("gvars"); - return (function() {$case = self.$var_name(); - if ("&"['$===']($case)) {return self.$handle_global_match()} - else if ("'"['$===']($case)) {return self.$handle_post_match()} - else if ("`"['$===']($case)) {return self.$handle_pre_match()} - else if ("+"['$===']($case)) {return $send2(self, $find_super(self, 'compile', $BackRefNode_compile$13, false, true), 'compile', $zuper, $iter)} - else {return self.$raise($$($nesting, 'NotImplementedError'))}})(); - }, $BackRefNode_compile$13.$$arity = 0); + if ($eqeqeq("&", ($ret_or_1 = self.$var_name()))) { + return self.$handle_global_match() + } else if ($eqeqeq("'", $ret_or_1)) { + return self.$handle_post_match() + } else if ($eqeqeq("`", $ret_or_1)) { + return self.$handle_pre_match() + } else if ($eqeqeq("+", $ret_or_1)) { + return $send2(self, $find_super(self, 'compile', $$compile, false, true), 'compile', [], $yield) + } else { + return self.$raise($$('NotImplementedError')) + }; + }, 0); - Opal.def(self, '$handle_global_match', $BackRefNode_handle_global_match$14 = function $$handle_global_match() { - var $$15, self = this; + $def(self, '$handle_global_match', function $$handle_global_match() { + var self = this; - return $send(self, 'with_temp', [], ($$15 = function(tmp){var self = $$15.$$s == null ? this : $$15.$$s; + return $send(self, 'with_temp', [], function $$4(tmp){var self = $$4.$$s == null ? this : $$4.$$s; - if (tmp == null) { - tmp = nil; - }; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](0))");}, $$15.$$s = self, $$15.$$arity = 1, $$15)) - }, $BackRefNode_handle_global_match$14.$$arity = 0); + if (tmp == null) tmp = nil;; + return self.$push("((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](0))");}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$handle_pre_match', $BackRefNode_handle_pre_match$16 = function $$handle_pre_match() { - var $$17, self = this; + $def(self, '$handle_pre_match', function $$handle_pre_match() { + var self = this; - return $send(self, 'with_temp', [], ($$17 = function(tmp){var self = $$17.$$s == null ? this : $$17.$$s; + return $send(self, 'with_temp', [], function $$5(tmp){var self = $$5.$$s == null ? this : $$5.$$s; - if (tmp == null) { - tmp = nil; - }; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$pre_match())");}, $$17.$$s = self, $$17.$$arity = 1, $$17)) - }, $BackRefNode_handle_pre_match$16.$$arity = 0); - return (Opal.def(self, '$handle_post_match', $BackRefNode_handle_post_match$18 = function $$handle_post_match() { - var $$19, self = this; + if (tmp == null) tmp = nil;; + return self.$push("((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$pre_match())");}, {$$arity: 1, $$s: self}) + }, 0); + return $def(self, '$handle_post_match', function $$handle_post_match() { + var self = this; - return $send(self, 'with_temp', [], ($$19 = function(tmp){var self = $$19.$$s == null ? this : $$19.$$s; + return $send(self, 'with_temp', [], function $$6(tmp){var self = $$6.$$s == null ? this : $$6.$$s; - if (tmp == null) { - tmp = nil; - }; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$post_match())");}, $$19.$$s = self, $$19.$$arity = 1, $$19)) - }, $BackRefNode_handle_post_match$18.$$arity = 0), nil) && 'handle_post_match'; - })($nesting[0], $$($nesting, 'GlobalVariableNode'), $nesting); - (function($base, $super, $parent_nesting) { + if (tmp == null) tmp = nil;; + return self.$push("((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$post_match())");}, {$$arity: 1, $$s: self}) + }, 0); + })($nesting[0], $$('GlobalVariableNode'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'GlobalAssignNode'); - var $nesting = [self].concat($parent_nesting), $GlobalAssignNode_var_name$20, $GlobalAssignNode_compile$21; - + self.$handle("gvasgn"); self.$children("name", "value"); - Opal.def(self, '$var_name', $GlobalAssignNode_var_name$20 = function $$var_name() { + $def(self, '$var_name', function $$var_name() { var self = this; return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, $GlobalAssignNode_var_name$20.$$arity = 0); - return (Opal.def(self, '$compile', $GlobalAssignNode_compile$21 = function $$compile() { - var self = this, name = nil, $ret_or_7 = nil, $ret_or_8 = nil; + }, 0); + return $def(self, '$compile', function $$compile() { + var self = this, name = nil; self.$helper("gvars"); name = self.$property(self.$var_name()); - self.$push("" + "$gvars" + (name) + " = "); + self.$push("$gvars" + (name) + " = "); self.$push(self.$expr(self.$value())); - if ($truthy((function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self['$recv?']()))) { - return $ret_or_8 - } else { - return self['$expr?']() - }; return nil; })()))) { - return self.$value() - } else { - return $ret_or_7 - }; return nil; })())) { + if ((($truthy(self['$recv?']()) || ($truthy(self['$expr?']()))) && ($truthy(self.$value())))) { return self.$wrap("(", ")") } else { return nil }; - }, $GlobalAssignNode_compile$21.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'NthrefNode'); - var $nesting = [self].concat($parent_nesting), $NthrefNode_compile$22; - + self.$handle("nth_ref"); self.$children("index"); - return (Opal.def(self, '$compile', $NthrefNode_compile$22 = function $$compile() { - var $$23, self = this; + return $def(self, '$compile', function $$compile() { + var self = this; self.$helper("gvars"); - return $send(self, 'with_temp', [], ($$23 = function(tmp){var self = $$23.$$s == null ? this : $$23.$$s; + return $send(self, 'with_temp', [], function $$7(tmp){var self = $$7.$$s == null ? this : $$7.$$s; - if (tmp == null) { - tmp = nil; - }; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](" + (self.$index()) + "))");}, $$23.$$s = self, $$23.$$arity = 1, $$23)); - }, $NthrefNode_compile$22.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + if (tmp == null) tmp = nil;; + return self.$push("((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](" + (self.$index()) + "))");}, {$$arity: 1, $$s: self}); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'ClassVariableNode'); - var $nesting = [self].concat($parent_nesting), $ClassVariableNode_compile$24; - + self.$handle("cvar"); self.$children("name"); - return (Opal.def(self, '$compile', $ClassVariableNode_compile$24 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, tolerant = nil; self.$helper("class_variable_get"); tolerant = false; if ($truthy(self['$stmt?']())) { - tolerant = true}; - return self.$push("" + "$class_variable_get(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', " + (tolerant.$inspect()) + ")"); - }, $ClassVariableNode_compile$24.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + tolerant = true + }; + return self.$push("$class_variable_get(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', " + (tolerant.$inspect()) + ")"); + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'ClassVarAssignNode'); - var $nesting = [self].concat($parent_nesting), $ClassVarAssignNode_compile$25; - + self.$handle("cvasgn"); self.$children("name", "value"); - return (Opal.def(self, '$compile', $ClassVarAssignNode_compile$25 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$helper("class_variable_set"); - return self.$push("" + "$class_variable_set(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")"); - }, $ClassVarAssignNode_compile$25.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("$class_variable_set(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")"); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/constants"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/constants"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def, $const_set = Opal.const_set; - Opal.add_stubs(['$require', '$handle', '$children', '$magical_data_const?', '$push', '$const_scope', '$recv', '$name', '$eval?', '$compiler', '$nil?', '$==', '$eof_content', '$base', '$expr', '$value']); + Opal.add_stubs('require,handle,children,magical_data_const?,push,optimized_access?,helper,name,==,const_scope,s,absolute_const,top_scope,recv,eval?,compiler,relative_access,scope,nil?,eof_content,freeze,include?,base,expr,value,nesting'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -33343,85 +30088,97 @@ Opal.modules["opal/nodes/constants"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ConstNode'); - var $nesting = [self].concat($parent_nesting), $ConstNode_compile$1, $ConstNode_magical_data_const$ques$2; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("const"); self.$children("const_scope", "name"); - Opal.def(self, '$compile', $ConstNode_compile$1 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$magical_data_const?']())) { return self.$push("$__END__") + } else if ($truthy(self['$optimized_access?']())) { + + self.$helper("" + (self.$name())); + return self.$push("$" + (self.$name())); + } else if ($eqeq(self.$const_scope(), self.$s("cbase"))) { + return self.$push("" + (self.$top_scope().$absolute_const()) + "('" + (self.$name()) + "')") } else if ($truthy(self.$const_scope())) { - return self.$push("$$$(", self.$recv(self.$const_scope()), "" + ", '" + (self.$name()) + "')") + return self.$push("" + (self.$top_scope().$absolute_const()) + "(", self.$recv(self.$const_scope()), ", '" + (self.$name()) + "')") } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$push("" + "$$($nesting, '" + (self.$name()) + "')") + return self.$push("" + (self.$scope().$relative_access()) + "('" + (self.$name()) + "')") } else { - return self.$push("" + "$$($nesting, '" + (self.$name()) + "')") + return self.$push("" + (self.$scope().$relative_access()) + "('" + (self.$name()) + "')") } - }, $ConstNode_compile$1.$$arity = 0); - return (Opal.def(self, '$magical_data_const?', $ConstNode_magical_data_const$ques$2 = function() { + }, 0); + + $def(self, '$magical_data_const?', function $ConstNode_magical_data_const$ques$1() { var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$const_scope()['$nil?']()))) { - return self.$name()['$==']("DATA") - } else { - return $ret_or_2 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$const_scope()['$nil?']())) ? (self.$name()['$==']("DATA")) : ($ret_or_2))))) { return self.$compiler().$eof_content() } else { return $ret_or_1 } - }, $ConstNode_magical_data_const$ques$2.$$arity = 0), nil) && 'magical_data_const?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'CbaseNode'); + }, 0); + $const_set($nesting[0], 'OPTIMIZED_ACCESS_CONSTS', ["BasicObject", "Object", "Module", "Class", "Opal", "Kernel", "NilClass"].$freeze()); + return $def(self, '$optimized_access?', function $ConstNode_optimized_access$ques$2() { + var self = this, $ret_or_1 = nil; - var $nesting = [self].concat($parent_nesting), $CbaseNode_compile$3; + if ($truthy(($ret_or_1 = self.$const_scope()['$=='](self.$s("cbase"))))) { + return $$('OPTIMIZED_ACCESS_CONSTS')['$include?'](self.$name()) + } else { + return $ret_or_1 + } + }, 0); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { + var self = $klass($base, $super, 'CbaseNode'); + self.$handle("cbase"); - return (Opal.def(self, '$compile', $CbaseNode_compile$3 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push("'::'") - }, $CbaseNode_compile$3.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'ConstAssignNode'); - var $nesting = [self].concat($parent_nesting), $ConstAssignNode_compile$4; - + self.$handle("casgn"); self.$children("base", "name", "value"); - return (Opal.def(self, '$compile', $ConstAssignNode_compile$4 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; + + self.$helper("const_set"); if ($truthy(self.$base())) { - return self.$push("Opal.const_set(", self.$expr(self.$base()), "" + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") + return self.$push("$const_set(", self.$expr(self.$base()), ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") } else { - return self.$push("" + "Opal.const_set($nesting[0], '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") - } - }, $ConstAssignNode_compile$4.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("$const_set(" + (self.$scope().$nesting()) + "[0], '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") + }; + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/break_finder"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias; +Opal.modules["opal/rewriters/break_finder"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $alias = Opal.alias; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); self.$require("opal/rewriter"); return (function($base, $parent_nesting) { @@ -33432,63 +30189,55 @@ Opal.modules["opal/rewriters/break_finder"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'BreakFinder'); - var $nesting = [self].concat($parent_nesting), $BreakFinder_initialize$1, $BreakFinder_found_break$ques$2, $BreakFinder_on_break$3, $BreakFinder_stop_lookup$4; + var $proto = self.$$prototype; - self.$$prototype.found_break = nil; + $proto.found_break = nil; - Opal.def(self, '$initialize', $BreakFinder_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.found_break = false) - }, $BreakFinder_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$found_break?', $BreakFinder_found_break$ques$2 = function() { + $def(self, '$found_break?', function $BreakFinder_found_break$ques$1() { var self = this; return self.found_break - }, $BreakFinder_found_break$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$on_break', $BreakFinder_on_break$3 = function $$on_break(node) { + $def(self, '$on_break', function $$on_break(node) { var self = this; self.found_break = true; return node; - }, $BreakFinder_on_break$3.$$arity = 1); + }, 1); - Opal.def(self, '$stop_lookup', $BreakFinder_stop_lookup$4 = function $$stop_lookup(node) { - var self = this; - + $def(self, '$stop_lookup', function $$stop_lookup(node) { + return nil - }, $BreakFinder_stop_lookup$4.$$arity = 1); + }, 1); $alias(self, "on_for", "stop_lookup"); $alias(self, "on_while", "stop_lookup"); $alias(self, "on_while_post", "stop_lookup"); $alias(self, "on_until", "stop_lookup"); $alias(self, "on_until_post", "stop_lookup"); return $alias(self, "on_block", "stop_lookup"); - })($nesting[0], $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'Base'), $nesting) + })($nesting[0], $$$($$$($$('Opal'), 'Rewriters'), 'Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/call"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $range = Opal.range; - - Opal.add_stubs(['$require', '$handle', '$attr_reader', '$freeze', '$[]=', '$-', '$define_method', '$to_proc', '$include?', '$type', '$s', '$handle_special', '$record_method?', '$<<', '$method_calls', '$compiler', '$to_sym', '$meth', '$using_eval?', '$compile_eval_var', '$using_irb?', '$compile_irb_var', '$default_compile', '$private', '$iter', '$new', '$process', '$found_break?', '$splat?', '$!', '$empty?', '$collect_refinements_temps', '$scope', '$invoke_using_refinement?', '$compile_using_refined_send', '$invoke_using_send?', '$compile_using_send', '$compile_simple_call_chain', '$compile_break_catcher', '$helper', '$push', '$compile_receiver', '$compile_method_name', '$compile_arguments', '$compile_block_pass', '$compile_refinements', '$recv', '$receiver_sexp', '$expr', '$arglist', '$children', '$map', '$iter_has_break?', '$unshift', '$line', '$method_jsid', '$any?', '$==', '$recvr', '$mid_to_jsid', '$to_s', '$with_temp', '$intern', '$irb?', '$top?', '$variable_like?', '$eval?', '$scope_variables', '$nil?', '$updated', '$method', '$arity', '$[]', '$each', '$add_special', '$inline_operators?', '$operator_helpers', '$fragment', '$call', '$resolve', '$requires', '$file', '$dirname', '$cleanpath', '$join', '$Pathname', '$inspect', '$class_scope?', '$required_trees', '$force_encoding', '$encoding', '$+', '$handle_block_given_call', '$def?', '$mid', '$accepts_using?', '$count', '$using_refinement', '$first', '$refinements_temp', '$arity_check?', '$defines_lambda', '$push_nesting?', '$!=', '$length', '$new_temp', '$scope_locals', '$source_location', '$size', '$last', '$handle_part', '$is_a?', '$expand_path', '$split', '$dynamic_require_severity', '$===', '$error', '$warning', '$each_with_object', '$pop']); +Opal.modules["opal/nodes/call"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $defs = Opal.defs, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $def = Opal.def, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $not = Opal.not, $neqeq = Opal.neqeq, $eqeqeq = Opal.eqeqeq, $to_ary = Opal.to_ary, $Opal = Opal.Opal, $range = Opal.range; + + Opal.add_stubs('require,handle,attr_reader,freeze,[]=,-,define_method,to_proc,include?,type,s,handle_special,record_method?,<<,method_calls,compiler,to_sym,meth,using_eval?,compile_eval_var,using_irb?,compile_irb_var,default_compile,private,iter,new,process,found_break?,splat?,!,empty?,collect_refinements_temps,scope,auto_await?,push,await_encountered=,invoke_using_refinement?,compile_using_refined_send,invoke_using_send?,compile_using_send,compile_simple_call_chain,compile_break_catcher,helper,compile_receiver,compile_method_name,compile_arguments,compile_block_pass,compile_refinements,recv,receiver_sexp,expr,arglist,children,map,iter_has_break?,unshift,line,method_jsid,any?,==,recvr,mid_to_jsid,to_s,with_temp,intern,irb?,top?,variable_like?,eval?,scope_variables,nil?,updated,async_await,!=,match?,method,arity,[],each,add_special,call,inline_operators?,fragment,resolve,requires,file,dirname,cleanpath,join,Pathname,self,inspect,length,warning,autoloads,required_trees,force_encoding,encoding,+,handle_block_given_call,def?,mid,module_name,count,accepts_using?,using_refinement,first,refinements_temp,arity_check?,defines_lambda,push_nesting?,nesting,new_temp,scope_locals,source_location,size,last,dynamic_require_severity,handle_part,===,is_a?,expand_path,split,error,each_with_object,pop'); self.$require("set"); self.$require("pathname"); @@ -33502,117 +30251,117 @@ Opal.modules["opal/nodes/call"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'CallNode'); - var $nesting = [self].concat($parent_nesting), $CallNode_add_special$1, $CallNode_initialize$2, $CallNode_compile$3, $CallNode_iter_has_break$ques$5, $CallNode_invoke_using_send$ques$6, $CallNode_invoke_using_refinement$ques$7, $CallNode_default_compile$8, $CallNode_compile_using_send$9, $CallNode_compile_using_refined_send$10, $CallNode_compile_receiver$11, $CallNode_compile_method_name$12, $CallNode_compile_arguments$13, $CallNode_compile_block_pass$14, $CallNode_compile_refinements$15, $CallNode_compile_break_catcher$17, $CallNode_compile_simple_call_chain$18, $CallNode_splat$ques$19, $CallNode_receiver_sexp$21, $CallNode_method_jsid$22, $CallNode_record_method$ques$23, $CallNode_compile_irb_var$24, $CallNode_compile_eval_var$26, $CallNode_using_irb$ques$27, $CallNode_using_eval$ques$28, $CallNode_variable_like$ques$29, $CallNode_sexp_with_arglist$30, $CallNode_handle_special$31, $CallNode$32, $CallNode$34, $CallNode$35, $CallNode$36, $CallNode$37, $CallNode$38, $CallNode$39, $CallNode$40, $CallNode$41, $CallNode_using_refinement$42, $CallNode$43, $CallNode$44, $CallNode$45, $CallNode$47, $CallNode$48, $CallNode$49, $CallNode$50, $CallNode_push_nesting$ques$51; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = self.$$prototype.compiler = nil; + $proto.sexp = $proto.compiler = nil; self.$handle("send"); self.$attr_reader("recvr", "meth", "arglist", "iter"); - Opal.const_set($nesting[0], 'SPECIALS', $hash2([], {})); - Opal.const_set($nesting[0], 'OPERATORS', $hash2(["+", "-", "*", "/", "<", "<=", ">", ">="], {"+": "plus", "-": "minus", "*": "times", "/": "divide", "<": "lt", "<=": "le", ">": "gt", ">=": "ge"}).$freeze()); - Opal.defs(self, '$add_special', $CallNode_add_special$1 = function $$add_special(name, options) { - var $iter = $CallNode_add_special$1.$$p, handler = $iter || nil, self = this, $writer = nil; + $const_set($nesting[0], 'SPECIALS', $hash2([], {})); + $const_set($nesting[0], 'OPERATORS', $hash2(["+", "-", "*", "/", "<", "<=", ">", ">="], {"+": "plus", "-": "minus", "*": "times", "/": "divide", "<": "lt", "<=": "le", ">": "gt", ">=": "ge"}).$freeze()); + $defs(self, '$add_special', function $$add_special(name, options) { + var handler = $$add_special.$$p || nil, self = this, $writer = nil; - if ($iter) $CallNode_add_special$1.$$p = null; + delete $$add_special.$$p; + ; - if ($iter) $CallNode_add_special$1.$$p = null;; - - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; $writer = [name, options]; - $send($$($nesting, 'SPECIALS'), '[]=', Opal.to_a($writer)); + $send($$('SPECIALS'), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(self, 'define_method', ["" + "handle_" + (name)], handler.$to_proc()); - }, $CallNode_add_special$1.$$arity = -2); + return $send(self, 'define_method', ["handle_" + (name)], handler.$to_proc()); + }, -2); - Opal.def(self, '$initialize', $CallNode_initialize$2 = function $$initialize($a) { - var $post_args, $b, $c, $iter = $CallNode_initialize$2.$$p, $yield = $iter || nil, self = this, args = nil, rest = nil, last_arg = nil, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $b, $c, $yield = $$initialize.$$p || nil, self = this, args = nil, rest = nil, last_arg = nil; - if ($iter) $CallNode_initialize$2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $CallNode_initialize$2, false, true), 'initialize', $zuper, $iter); - $b = [].concat(Opal.to_a(self.sexp)), (self.recvr = ($b[0] == null ? nil : $b[0])), (self.meth = ($b[1] == null ? nil : $b[1])), (args = $slice.call($b, 2)), $b; - $b = [].concat(Opal.to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_arg = ($b[$c] == null ? nil : $b[$c])), $b; - if ($truthy((function() {if ($truthy(($ret_or_1 = last_arg))) { - return ["iter", "block_pass"]['$include?'](last_arg.$type()) - } else { - return $ret_or_1 - }; return nil; })())) { + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + $b = [].concat($to_a(self.sexp)), (self.recvr = ($b[0] == null ? nil : $b[0])), (self.meth = ($b[1] == null ? nil : $b[1])), (args = $slice.call($b, 2)), $b; + $b = [].concat($to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_arg = ($b[$c] == null ? nil : $b[$c])), $b; + if (($truthy(last_arg) && ($truthy(["iter", "block_pass"]['$include?'](last_arg.$type()))))) { self.iter = last_arg; args = rest; } else { self.iter = nil }; - return (self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(args)))); - }, $CallNode_initialize$2.$$arity = -1); + return (self.arglist = $send(self, 's', ["arglist"].concat($to_a(args)))); + }, -1); - Opal.def(self, '$compile', $CallNode_compile$3 = function $$compile() {try { + $def(self, '$compile', function $$compile() {try { - var $$4, self = this; + var self = this; - return $send(self, 'handle_special', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + return $send(self, 'handle_special', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; if ($truthy(self['$record_method?']())) { - self.$compiler().$method_calls()['$<<'](self.$meth().$to_sym())}; + self.$compiler().$method_calls()['$<<'](self.$meth().$to_sym()) + }; if ($truthy(self['$using_eval?']())) { - Opal.ret(self.$compile_eval_var())}; + Opal.ret(self.$compile_eval_var()) + }; if ($truthy(self['$using_irb?']())) { - Opal.ret(self.$compile_irb_var())}; - return self.$default_compile();}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + Opal.ret(self.$compile_irb_var()) + }; + return self.$default_compile();}, {$$arity: 0, $$s: self}) } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $CallNode_compile$3.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$iter_has_break?', $CallNode_iter_has_break$ques$5 = function() { + $def(self, '$iter_has_break?', function $CallNode_iter_has_break$ques$2() { var self = this, finder = nil; - if ($truthy(self.$iter())) { - } else { + if (!$truthy(self.$iter())) { return false }; - finder = $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'BreakFinder').$new(); + finder = $$$($$$($$('Opal'), 'Rewriters'), 'BreakFinder').$new(); finder.$process(self.$iter()); return finder['$found_break?'](); - }, $CallNode_iter_has_break$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$invoke_using_send?', $CallNode_invoke_using_send$ques$6 = function() { - var self = this, $ret_or_2 = nil; + $def(self, '$invoke_using_send?', function $CallNode_invoke_using_send$ques$3() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = self.$iter()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self.$iter()))) { + return $ret_or_1 } else { return self['$splat?']() } - }, $CallNode_invoke_using_send$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$invoke_using_refinement?', $CallNode_invoke_using_refinement$ques$7 = function() { + $def(self, '$invoke_using_refinement?', function $CallNode_invoke_using_refinement$ques$4() { var self = this; return self.$scope().$scope().$collect_refinements_temps()['$empty?']()['$!']() - }, $CallNode_invoke_using_refinement$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$default_compile', $CallNode_default_compile$8 = function $$default_compile() { - var self = this; + $def(self, '$default_compile', function $$default_compile() { + var self = this, $writer = nil; + if ($truthy(self['$auto_await?']())) { + + self.$push("await "); + + $writer = [true]; + $send(self.$scope(), 'await_encountered=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + }; if ($truthy(self['$invoke_using_refinement?']())) { self.$compile_using_refined_send() } else if ($truthy(self['$invoke_using_send?']())) { @@ -33621,9 +30370,9 @@ Opal.modules["opal/nodes/call"] = function(Opal) { self.$compile_simple_call_chain() }; return self.$compile_break_catcher(); - }, $CallNode_default_compile$8.$$arity = 0); + }, 0); - Opal.def(self, '$compile_using_send', $CallNode_compile_using_send$9 = function $$compile_using_send() { + $def(self, '$compile_using_send', function $$compile_using_send() { var self = this; @@ -33634,9 +30383,9 @@ Opal.modules["opal/nodes/call"] = function(Opal) { self.$compile_arguments(); self.$compile_block_pass(); return self.$push(")"); - }, $CallNode_compile_using_send$9.$$arity = 0); + }, 0); - Opal.def(self, '$compile_using_refined_send', $CallNode_compile_using_refined_send$10 = function $$compile_using_refined_send() { + $def(self, '$compile_using_refined_send', function $$compile_using_refined_send() { var self = this; @@ -33648,21 +30397,21 @@ Opal.modules["opal/nodes/call"] = function(Opal) { self.$compile_arguments(); self.$compile_block_pass(); return self.$push(")"); - }, $CallNode_compile_using_refined_send$10.$$arity = 0); + }, 0); - Opal.def(self, '$compile_receiver', $CallNode_compile_receiver$11 = function $$compile_receiver() { + $def(self, '$compile_receiver', function $$compile_receiver() { var self = this; return self.$push(self.$recv(self.$receiver_sexp())) - }, $CallNode_compile_receiver$11.$$arity = 0); + }, 0); - Opal.def(self, '$compile_method_name', $CallNode_compile_method_name$12 = function $$compile_method_name() { + $def(self, '$compile_method_name', function $$compile_method_name() { var self = this; - return self.$push("" + ", '" + (self.$meth()) + "'") - }, $CallNode_compile_method_name$12.$$arity = 0); + return self.$push(", '" + (self.$meth()) + "'") + }, 0); - Opal.def(self, '$compile_arguments', $CallNode_compile_arguments$13 = function $$compile_arguments() { + $def(self, '$compile_arguments', function $$compile_arguments() { var self = this; @@ -33674,9 +30423,9 @@ Opal.modules["opal/nodes/call"] = function(Opal) { } else { return self.$push("[", self.$expr(self.$arglist()), "]") }; - }, $CallNode_compile_arguments$13.$$arity = 0); + }, 0); - Opal.def(self, '$compile_block_pass', $CallNode_compile_block_pass$14 = function $$compile_block_pass() { + $def(self, '$compile_block_pass', function $$compile_block_pass() { var self = this; if ($truthy(self.$iter())) { @@ -33684,24 +30433,22 @@ Opal.modules["opal/nodes/call"] = function(Opal) { } else { return nil } - }, $CallNode_compile_block_pass$14.$$arity = 0); + }, 0); - Opal.def(self, '$compile_refinements', $CallNode_compile_refinements$15 = function $$compile_refinements() { - var $$16, self = this, refinements = nil; + $def(self, '$compile_refinements', function $$compile_refinements() { + var self = this, refinements = nil; - refinements = $send(self.$scope().$collect_refinements_temps(), 'map', [], ($$16 = function(i){var self = $$16.$$s == null ? this : $$16.$$s; + refinements = $send(self.$scope().$collect_refinements_temps(), 'map', [], function $$5(i){var self = $$5.$$s == null ? this : $$5.$$s; - if (i == null) { - i = nil; - }; - return self.$s("js_tmp", i);}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - return self.$push(self.$expr($send(self, 's', ["array"].concat(Opal.to_a(refinements)))), ", "); - }, $CallNode_compile_refinements$15.$$arity = 0); + if (i == null) i = nil;; + return self.$s("js_tmp", i);}, {$$arity: 1, $$s: self}); + return self.$push(self.$expr($send(self, 's', ["array"].concat($to_a(refinements)))), ", "); + }, 0); - Opal.def(self, '$compile_break_catcher', $CallNode_compile_break_catcher$17 = function $$compile_break_catcher() { + $def(self, '$compile_break_catcher', function $$compile_break_catcher() { var self = this; if ($truthy(self['$iter_has_break?']())) { @@ -33712,129 +30459,122 @@ Opal.modules["opal/nodes/call"] = function(Opal) { } else { return nil } - }, $CallNode_compile_break_catcher$17.$$arity = 0); + }, 0); - Opal.def(self, '$compile_simple_call_chain', $CallNode_compile_simple_call_chain$18 = function $$compile_simple_call_chain() { + $def(self, '$compile_simple_call_chain', function $$compile_simple_call_chain() { var self = this; return self.$push(self.$recv(self.$receiver_sexp()), self.$method_jsid(), "(", self.$expr(self.$arglist()), ")") - }, $CallNode_compile_simple_call_chain$18.$$arity = 0); + }, 0); - Opal.def(self, '$splat?', $CallNode_splat$ques$19 = function() { - var $$20, self = this; - - return $send(self.$arglist().$children(), 'any?', [], ($$20 = function(a){var self = $$20.$$s == null ? this : $$20.$$s; + $def(self, '$splat?', function $CallNode_splat$ques$6() { + var self = this; + return $send(self.$arglist().$children(), 'any?', [], function $$7(a){ - if (a == null) { - a = nil; - }; - return a.$type()['$==']("splat");}, $$20.$$s = self, $$20.$$arity = 1, $$20)) - }, $CallNode_splat$ques$19.$$arity = 0); + if (a == null) a = nil;; + return a.$type()['$==']("splat");}, 1) + }, 0); - Opal.def(self, '$receiver_sexp', $CallNode_receiver_sexp$21 = function $$receiver_sexp() { - var self = this, $ret_or_3 = nil; + $def(self, '$receiver_sexp', function $$receiver_sexp() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self.$recvr()))) { - return $ret_or_3 + if ($truthy(($ret_or_1 = self.$recvr()))) { + return $ret_or_1 } else { return self.$s("self") } - }, $CallNode_receiver_sexp$21.$$arity = 0); + }, 0); - Opal.def(self, '$method_jsid', $CallNode_method_jsid$22 = function $$method_jsid() { + $def(self, '$method_jsid', function $$method_jsid() { var self = this; return self.$mid_to_jsid(self.$meth().$to_s()) - }, $CallNode_method_jsid$22.$$arity = 0); + }, 0); - Opal.def(self, '$record_method?', $CallNode_record_method$ques$23 = function() { - var self = this; - + $def(self, '$record_method?', function $CallNode_record_method$ques$8() { + return true - }, $CallNode_record_method$ques$23.$$arity = 0); + }, 0); - Opal.def(self, '$compile_irb_var', $CallNode_compile_irb_var$24 = function $$compile_irb_var() { - var $$25, self = this; + $def(self, '$compile_irb_var', function $$compile_irb_var() { + var self = this; - return $send(self, 'with_temp', [], ($$25 = function(tmp){var self = $$25.$$s == null ? this : $$25.$$s, lvar = nil, call = nil; + return $send(self, 'with_temp', [], function $$9(tmp){var self = $$9.$$s == null ? this : $$9.$$s, lvar = nil, call = nil; - if (tmp == null) { - tmp = nil; - }; + if (tmp == null) tmp = nil;; lvar = self.$meth(); call = self.$s("send", self.$s("self"), self.$meth().$intern(), self.$s("arglist")); - return self.$push("" + "((" + (tmp) + " = Opal.irb_vars." + (lvar) + ") == null ? ", self.$expr(call), "" + " : " + (tmp) + ")");}, $$25.$$s = self, $$25.$$arity = 1, $$25)) - }, $CallNode_compile_irb_var$24.$$arity = 0); + return self.$push("((" + (tmp) + " = Opal.irb_vars." + (lvar) + ") == null ? ", self.$expr(call), " : " + (tmp) + ")");}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$compile_eval_var', $CallNode_compile_eval_var$26 = function $$compile_eval_var() { + $def(self, '$compile_eval_var', function $$compile_eval_var() { var self = this; return self.$push(self.$meth().$to_s()) - }, $CallNode_compile_eval_var$26.$$arity = 0); + }, 0); - Opal.def(self, '$using_irb?', $CallNode_using_irb$ques$27 = function() { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$using_irb?', function $CallNode_using_irb$ques$10() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.compiler['$irb?']()))) { - return self.$scope()['$top?']() - } else { - return $ret_or_5 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.compiler['$irb?']())) ? (self.$scope()['$top?']()) : ($ret_or_2))))) { return self['$variable_like?']() } else { - return $ret_or_4 + return $ret_or_1 } - }, $CallNode_using_irb$ques$27.$$arity = 0); + }, 0); - Opal.def(self, '$using_eval?', $CallNode_using_eval$ques$28 = function() { - var self = this, $ret_or_6 = nil, $ret_or_7 = nil; + $def(self, '$using_eval?', function $CallNode_using_eval$ques$11() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = self.compiler['$eval?']()))) { - return self.$scope()['$top?']() - } else { - return $ret_or_7 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.compiler['$eval?']())) ? (self.$scope()['$top?']()) : ($ret_or_2))))) { return self.compiler.$scope_variables()['$include?'](self.$meth()) } else { - return $ret_or_6 + return $ret_or_1 } - }, $CallNode_using_eval$ques$28.$$arity = 0); + }, 0); - Opal.def(self, '$variable_like?', $CallNode_variable_like$ques$29 = function() { - var self = this, $ret_or_8 = nil, $ret_or_9 = nil; + $def(self, '$variable_like?', function $CallNode_variable_like$ques$12() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = self.$arglist()['$=='](self.$s("arglist"))))) { - return self.$recvr()['$nil?']() - } else { - return $ret_or_9 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$arglist()['$=='](self.$s("arglist")))) ? (self.$recvr()['$nil?']()) : ($ret_or_2))))) { return self.$iter()['$nil?']() } else { - return $ret_or_8 + return $ret_or_1 } - }, $CallNode_variable_like$ques$29.$$arity = 0); + }, 0); - Opal.def(self, '$sexp_with_arglist', $CallNode_sexp_with_arglist$30 = function $$sexp_with_arglist() { + $def(self, '$sexp_with_arglist', function $$sexp_with_arglist() { var self = this; return self.sexp.$updated(nil, [self.$recvr(), self.$meth(), self.$arglist()]) - }, $CallNode_sexp_with_arglist$30.$$arity = 0); + }, 0); - Opal.def(self, '$handle_special', $CallNode_handle_special$31 = function $$handle_special() { - var $iter = $CallNode_handle_special$31.$$p, compile_default = $iter || nil, self = this, method = nil; + $def(self, '$auto_await?', function $CallNode_auto_await$ques$13() { + var self = this, awaited_set = nil, $ret_or_1 = nil, $ret_or_2 = nil; - if ($iter) $CallNode_handle_special$31.$$p = null; + awaited_set = self.$compiler().$async_await(); + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = awaited_set)) ? (awaited_set['$!='](true)) : ($ret_or_2))))) { + return awaited_set['$match?'](self.$meth().$to_s()) + } else { + return $ret_or_1 + }; + }, 0); + + $def(self, '$handle_special', function $$handle_special() { + var compile_default = $$handle_special.$$p || nil, self = this, method = nil; + + delete $$handle_special.$$p; - if ($iter) $CallNode_handle_special$31.$$p = null;; - if ($truthy($$($nesting, 'SPECIALS')['$include?'](self.$meth()))) { + ; + if ($truthy($$('SPECIALS')['$include?'](self.$meth()))) { - method = self.$method("" + "handle_" + (self.$meth())); - if (method.$arity()['$=='](1)) { + method = self.$method("handle_" + (self.$meth())); + if ($eqeq(method.$arity(), 1)) { return method['$[]'](compile_default) } else { return method['$[]']() @@ -33842,217 +30582,215 @@ Opal.modules["opal/nodes/call"] = function(Opal) { } else { return Opal.yieldX(compile_default, []); }; - }, $CallNode_handle_special$31.$$arity = 0); - $send($$($nesting, 'OPERATORS'), 'each', [], ($CallNode$32 = function(operator, name){var self = $CallNode$32.$$s == null ? this : $CallNode$32.$$s, $$33; + }, 0); + $send($$('OPERATORS'), 'each', [], function $CallNode$14(operator, name){var self = $CallNode$14.$$s == null ? this : $CallNode$14.$$s; - if (operator == null) { - operator = nil; - }; + if (operator == null) operator = nil;; - if (name == null) { - name = nil; - }; - return $send(self, 'add_special', [operator.$to_sym()], ($$33 = function(compile_default){var self = $$33.$$s == null ? this : $$33.$$s, $a, lhs = nil, rhs = nil; + if (name == null) name = nil;; + return $send(self, 'add_special', [operator.$to_sym()], function $$15(compile_default){var $a, self = $$15.$$s == null ? this : $$15.$$s, lhs = nil, rhs = nil; - if (compile_default == null) { - compile_default = nil; - }; - if ($truthy(self.$compiler()['$inline_operators?']())) { + if (compile_default == null) compile_default = nil;; + if ($truthy(self['$invoke_using_refinement?']())) { + return compile_default.$call() + } else if ($truthy(self.$compiler()['$inline_operators?']())) { if ($truthy(self['$record_method?']())) { - self.$compiler().$method_calls()['$<<'](operator.$to_sym())}; - self.$compiler().$operator_helpers()['$<<'](operator.$to_sym()); + self.$compiler().$method_calls()['$<<'](operator.$to_sym()) + }; + self.$helper("rb_" + (name)); $a = [self.$expr(self.$recvr()), self.$expr(self.$arglist())], (lhs = $a[0]), (rhs = $a[1]), $a; - self.$push(self.$fragment("" + "$rb_" + (name) + "(")); + self.$push(self.$fragment("$rb_" + (name) + "(")); self.$push(lhs); self.$push(self.$fragment(", ")); self.$push(rhs); return self.$push(self.$fragment(")")); } else { return compile_default.$call() - };}, $$33.$$s = self, $$33.$$arity = 1, $$33));}, $CallNode$32.$$s = self, $CallNode$32.$$arity = 2, $CallNode$32)); - $send(self, 'add_special', ["require"], ($CallNode$34 = function(compile_default){var self = $CallNode$34.$$s == null ? this : $CallNode$34.$$s, str = nil; + };}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}); + $send(self, 'add_special', ["require"], function $CallNode$16(compile_default){var self = $CallNode$16.$$s == null ? this : $CallNode$16.$$s, str = nil; - if (compile_default == null) { - compile_default = nil; - }; - str = $$($nesting, 'DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](0)).$resolve(); - if ($truthy(str['$nil?']())) { - } else { + if (compile_default == null) compile_default = nil;; + str = $$('DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](0)).$resolve(); + if (!$truthy(str['$nil?']())) { self.$compiler().$requires()['$<<'](str) }; - return compile_default.$call();}, $CallNode$34.$$s = self, $CallNode$34.$$arity = 1, $CallNode$34)); - $send(self, 'add_special', ["require_relative"], ($CallNode$35 = function(){var self = $CallNode$35.$$s == null ? this : $CallNode$35.$$s, arg = nil, file = nil, dir = nil; + return compile_default.$call();}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["require_relative"], function $CallNode$17(){var self = $CallNode$17.$$s == null ? this : $CallNode$17.$$s, arg = nil, file = nil, dir = nil; arg = self.$arglist().$children()['$[]'](0); file = self.$compiler().$file(); - if (arg.$type()['$==']("str")) { + if ($eqeq(arg.$type(), "str")) { - dir = $$($nesting, 'File').$dirname(file); - self.$compiler().$requires()['$<<'](self.$Pathname(dir).$join(arg.$children()['$[]'](0)).$cleanpath().$to_s());}; - self.$push(self.$fragment("" + "self.$require(" + (file.$inspect()) + "+ '/../' + ")); + dir = $$('File').$dirname(file); + self.$compiler().$requires()['$<<'](self.$Pathname(dir).$join(arg.$children()['$[]'](0)).$cleanpath().$to_s()); + }; + self.$push(self.$fragment("" + (self.$scope().$self()) + ".$require(" + (file.$inspect()) + "+ '/../' + ")); self.$push(self.$process(self.$arglist())); - return self.$push(self.$fragment(")"));}, $CallNode$35.$$s = self, $CallNode$35.$$arity = 0, $CallNode$35)); - $send(self, 'add_special', ["autoload"], ($CallNode$36 = function(compile_default){var self = $CallNode$36.$$s == null ? this : $CallNode$36.$$s, str = nil; + return self.$push(self.$fragment(")"));}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["autoload"], function $CallNode$18(compile_default){var self = $CallNode$18.$$s == null ? this : $CallNode$18.$$s, args = nil, str = nil; - if (compile_default == null) { - compile_default = nil; - }; - if ($truthy(self.$scope()['$class_scope?']())) { + if (compile_default == null) compile_default = nil;; + args = self.$arglist().$children(); + if (($eqeq(args.$length(), 2) && ($eqeq(args['$[]'](0).$type(), "sym")))) { - str = $$($nesting, 'DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](1)).$resolve(); + str = $$('DependencyResolver').$new(self.$compiler(), args['$[]'](1), "ignore").$resolve(); if ($truthy(str['$nil?']())) { + self.$compiler().$warning("File for autoload of constant '" + (args['$[]'](0).$children()['$[]'](0)) + "' could not be bundled!") } else { - self.$compiler().$requires()['$<<'](str) + + self.$compiler().$requires()['$<<'](str); + self.$compiler().$autoloads()['$<<'](str); }; - return compile_default.$call(); - } else { - return nil - };}, $CallNode$36.$$s = self, $CallNode$36.$$arity = 1, $CallNode$36)); - $send(self, 'add_special', ["require_tree"], ($CallNode$37 = function(compile_default){var self = $CallNode$37.$$s == null ? this : $CallNode$37.$$s, $a, first_arg = nil, rest = nil, relative_path = nil, dir = nil, full_path = nil; + }; + return compile_default.$call();}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["require_tree"], function $CallNode$19(compile_default){var $a, self = $CallNode$19.$$s == null ? this : $CallNode$19.$$s, first_arg = nil, rest = nil, relative_path = nil, dir = nil, full_path = nil; - if (compile_default == null) { - compile_default = nil; - }; - $a = [].concat(Opal.to_a(self.$arglist().$children())), (first_arg = ($a[0] == null ? nil : $a[0])), (rest = $slice.call($a, 1)), $a; - if (first_arg.$type()['$==']("str")) { + if (compile_default == null) compile_default = nil;; + $a = [].concat($to_a(self.$arglist().$children())), (first_arg = ($a[0] == null ? nil : $a[0])), (rest = $slice.call($a, 1)), $a; + if ($eqeq(first_arg.$type(), "str")) { relative_path = first_arg.$children()['$[]'](0); self.$compiler().$required_trees()['$<<'](relative_path); - dir = $$($nesting, 'File').$dirname(self.$compiler().$file()); + dir = $$('File').$dirname(self.$compiler().$file()); full_path = self.$Pathname(dir).$join(relative_path).$cleanpath().$to_s(); full_path.$force_encoding(relative_path.$encoding()); - first_arg = first_arg.$updated(nil, [full_path]);}; + first_arg = first_arg.$updated(nil, [full_path]); + }; self.arglist = self.$arglist().$updated(nil, $rb_plus([first_arg], rest)); - return compile_default.$call();}, $CallNode$37.$$s = self, $CallNode$37.$$arity = 1, $CallNode$37)); - $send(self, 'add_special', ["block_given?"], ($CallNode$38 = function(){var self = $CallNode$38.$$s == null ? this : $CallNode$38.$$s; + return compile_default.$call();}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["block_given?"], function $CallNode$20(){var self = $CallNode$20.$$s == null ? this : $CallNode$20.$$s; if (self.sexp == null) self.sexp = nil; - return self.$push(self.$compiler().$handle_block_given_call(self.sexp))}, $CallNode$38.$$s = self, $CallNode$38.$$arity = 0, $CallNode$38)); - $send(self, 'add_special', ["__callee__"], ($CallNode$39 = function(){var self = $CallNode$39.$$s == null ? this : $CallNode$39.$$s; + return self.$push(self.$compiler().$handle_block_given_call(self.sexp))}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["__callee__"], function $CallNode$21(){var self = $CallNode$21.$$s == null ? this : $CallNode$21.$$s; if ($truthy(self.$scope()['$def?']())) { return self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())) } else { return self.$push(self.$fragment("nil")) - }}, $CallNode$39.$$s = self, $CallNode$39.$$arity = 0, $CallNode$39)); - $send(self, 'add_special', ["__method__"], ($CallNode$40 = function(){var self = $CallNode$40.$$s == null ? this : $CallNode$40.$$s; + }}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["__method__"], function $CallNode$22(){var self = $CallNode$22.$$s == null ? this : $CallNode$22.$$s; if ($truthy(self.$scope()['$def?']())) { return self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())) } else { return self.$push(self.$fragment("nil")) - }}, $CallNode$40.$$s = self, $CallNode$40.$$arity = 0, $CallNode$40)); - $send(self, 'add_special', ["using"], ($CallNode$41 = function(compile_default){var self = $CallNode$41.$$s == null ? this : $CallNode$41.$$s, $ret_or_10 = nil; + }}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["__dir__"], function $CallNode$23(){var self = $CallNode$23.$$s == null ? this : $CallNode$23.$$s; + + return self.$push($$('File').$dirname($$$($$('Opal'), 'Compiler').$module_name(self.$compiler().$file())).$inspect())}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["using"], function $CallNode$24(compile_default){var self = $CallNode$24.$$s == null ? this : $CallNode$24.$$s; - if (compile_default == null) { - compile_default = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_10 = self.$scope()['$accepts_using?']()))) { - return self.$arglist().$children().$count()['$=='](1) - } else { - return $ret_or_10 - }; return nil; })())) { + if (compile_default == null) compile_default = nil;; + if (($truthy(self.$scope()['$accepts_using?']()) && ($eqeq(self.$arglist().$children().$count(), 1)))) { return self.$using_refinement(self.$arglist().$children().$first()) } else { return compile_default.$call() - };}, $CallNode$41.$$s = self, $CallNode$41.$$arity = 1, $CallNode$41)); + };}, {$$arity: 1, $$s: self}); - Opal.def(self, '$using_refinement', $CallNode_using_refinement$42 = function $$using_refinement(arg) { + $def(self, '$using_refinement', function $$using_refinement(arg) { var $a, self = this, prev = nil, curr = nil; - $a = [].concat(Opal.to_a(self.$scope().$refinements_temp())), (prev = ($a[0] == null ? nil : $a[0])), (curr = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(self.$scope().$refinements_temp())), (prev = ($a[0] == null ? nil : $a[0])), (curr = ($a[1] == null ? nil : $a[1])), $a; if ($truthy(prev)) { - return self.$push("" + "(" + (curr) + " = " + (prev) + ".slice(), " + (curr) + ".push(", self.$expr(arg), "), self)") + return self.$push("(" + (curr) + " = " + (prev) + ".slice(), " + (curr) + ".push(", self.$expr(arg), "), " + (self.$scope().$self()) + ")") } else { - return self.$push("" + "(" + (curr) + " = [", self.$expr(arg), "], self)") + return self.$push("(" + (curr) + " = [", self.$expr(arg), "], " + (self.$scope().$self()) + ")") }; - }, $CallNode_using_refinement$42.$$arity = 1); - $send(self, 'add_special', ["debugger"], ($CallNode$43 = function(){var self = $CallNode$43.$$s == null ? this : $CallNode$43.$$s; + }, 1); + $send(self, 'add_special', ["debugger"], function $CallNode$25(){var self = $CallNode$25.$$s == null ? this : $CallNode$25.$$s; - return self.$push(self.$fragment("debugger"))}, $CallNode$43.$$s = self, $CallNode$43.$$arity = 0, $CallNode$43)); - $send(self, 'add_special', ["__OPAL_COMPILER_CONFIG__"], ($CallNode$44 = function(){var self = $CallNode$44.$$s == null ? this : $CallNode$44.$$s; + return self.$push(self.$fragment("debugger"))}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["__OPAL_COMPILER_CONFIG__"], function $CallNode$26(){var self = $CallNode$26.$$s == null ? this : $CallNode$26.$$s; - return self.$push(self.$fragment("" + "Opal.hash({ arity_check: " + (self.$compiler()['$arity_check?']()) + " })"))}, $CallNode$44.$$s = self, $CallNode$44.$$arity = 0, $CallNode$44)); - $send(self, 'add_special', ["lambda"], ($CallNode$45 = function(compile_default){var self = $CallNode$45.$$s == null ? this : $CallNode$45.$$s, $$46; + return self.$push(self.$fragment("Opal.hash({ arity_check: " + (self.$compiler()['$arity_check?']()) + " })"))}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["lambda"], function $CallNode$27(compile_default){var self = $CallNode$27.$$s == null ? this : $CallNode$27.$$s; - if (compile_default == null) { - compile_default = nil; - }; - return $send(self.$scope(), 'defines_lambda', [], ($$46 = function(){var self = $$46.$$s == null ? this : $$46.$$s; - - return compile_default.$call()}, $$46.$$s = self, $$46.$$arity = 0, $$46));}, $CallNode$45.$$s = self, $CallNode$45.$$arity = 1, $CallNode$45)); - $send(self, 'add_special', ["nesting"], ($CallNode$47 = function(compile_default){var self = $CallNode$47.$$s == null ? this : $CallNode$47.$$s, push_nesting = nil; + if (compile_default == null) compile_default = nil;; + return $send(self.$scope(), 'defines_lambda', [], function $$28(){ + return compile_default.$call()}, 0);}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["nesting"], function $CallNode$29(compile_default){var self = $CallNode$29.$$s == null ? this : $CallNode$29.$$s, push_nesting = nil; - if (compile_default == null) { - compile_default = nil; - }; + if (compile_default == null) compile_default = nil;; push_nesting = self['$push_nesting?'](); if ($truthy(push_nesting)) { - self.$push("(Opal.Module.$$nesting = $nesting, ")}; + self.$push("(Opal.Module.$$nesting = " + (self.$scope().$nesting()) + ", ") + }; compile_default.$call(); if ($truthy(push_nesting)) { return self.$push(")") } else { return nil - };}, $CallNode$47.$$s = self, $CallNode$47.$$arity = 1, $CallNode$47)); - $send(self, 'add_special', ["constants"], ($CallNode$48 = function(compile_default){var self = $CallNode$48.$$s == null ? this : $CallNode$48.$$s, push_nesting = nil; + };}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["constants"], function $CallNode$30(compile_default){var self = $CallNode$30.$$s == null ? this : $CallNode$30.$$s, push_nesting = nil; - if (compile_default == null) { - compile_default = nil; - }; + if (compile_default == null) compile_default = nil;; push_nesting = self['$push_nesting?'](); if ($truthy(push_nesting)) { - self.$push("(Opal.Module.$$nesting = $nesting, ")}; + self.$push("(Opal.Module.$$nesting = " + (self.$scope().$nesting()) + ", ") + }; compile_default.$call(); if ($truthy(push_nesting)) { return self.$push(")") } else { return nil - };}, $CallNode$48.$$s = self, $CallNode$48.$$arity = 1, $CallNode$48)); - $send(self, 'add_special', ["eval"], ($CallNode$49 = function(compile_default){var self = $CallNode$49.$$s == null ? this : $CallNode$49.$$s, $ret_or_11 = nil, temp = nil, scope_variables = nil; + };}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["eval"], function $CallNode$31(compile_default){var self = $CallNode$31.$$s == null ? this : $CallNode$31.$$s, temp = nil, scope_variables = nil; - if (compile_default == null) { - compile_default = nil; + if (compile_default == null) compile_default = nil;; + if (($neqeq(self.$arglist().$children().$length(), 1) || ($not([self.$s("self"), nil]['$include?'](self.$recvr()))))) { + return compile_default.$call(); }; - if ($truthy((function() {if ($truthy(($ret_or_11 = self.$arglist().$children().$length()['$!='](1)))) { - return $ret_or_11 - } else { - return [self.$s("self"), nil]['$include?'](self.$recvr())['$!']() - }; return nil; })())) { - return compile_default.$call();}; + self.$scope().$nesting(); temp = self.$scope().$new_temp(); scope_variables = $send(self.$scope().$scope_locals(), 'map', [], "to_s".$to_proc()).$inspect(); - self.$push("" + "(" + (temp) + " = ", self.$expr(self.$arglist())); - self.$push("" + ", typeof Opal.compile === 'function' ? eval(Opal.compile(" + (temp)); + self.$push("(" + (temp) + " = ", self.$expr(self.$arglist())); + self.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile(" + (temp)); self.$push(", {scope_variables: ", scope_variables); - self.$push("" + ", arity_check: " + (self.$compiler()['$arity_check?']()) + ", file: '(eval)', eval: true})) : "); - return self.$push("" + "self.$eval(" + (temp) + "))");}, $CallNode$49.$$s = self, $CallNode$49.$$arity = 1, $CallNode$49)); - $send(self, 'add_special', ["binding"], ($CallNode$50 = function(){var self = $CallNode$50.$$s == null ? this : $CallNode$50.$$s; + self.$push(", arity_check: " + (self.$compiler()['$arity_check?']()) + ", file: '(eval)', eval: true})) : "); + return self.$push("" + (self.$scope().$self()) + ".$eval(" + (temp) + "))");}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["local_variables"], function $CallNode$32(compile_default){var self = $CallNode$32.$$s == null ? this : $CallNode$32.$$s, scope_variables = nil; + + + + if (compile_default == null) compile_default = nil;; + if (!$truthy([self.$s("self"), nil]['$include?'](self.$recvr()))) { + return compile_default.$call(); + }; + scope_variables = $send(self.$scope().$scope_locals(), 'map', [], "to_s".$to_proc()).$inspect(); + return self.$push(scope_variables);}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["binding"], function $CallNode$33(compile_default){var self = $CallNode$33.$$s == null ? this : $CallNode$33.$$s; + + if (compile_default == null) compile_default = nil;; + if (!$truthy(self.$recvr()['$nil?']())) { + return compile_default.$call(); + }; + self.$scope().$nesting(); self.$push("Opal.Binding.$new("); self.$push(" function($code, $value) {"); self.$push(" if (typeof $value === 'undefined') {"); @@ -34063,130 +30801,157 @@ Opal.modules["opal/nodes/call"] = function(Opal) { self.$push(" }"); self.$push(" },"); self.$push(" ", $send(self.$scope().$scope_locals(), 'map', [], "to_s".$to_proc()).$inspect(), ","); - self.$push(" self,"); + self.$push(" ", self.$scope().$self(), ","); self.$push(" ", self.$source_location()); - return self.$push(")");}, $CallNode$50.$$s = self, $CallNode$50.$$arity = 0, $CallNode$50)); + return self.$push(")");}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["__await__"], function $CallNode$34(compile_default){var self = $CallNode$34.$$s == null ? this : $CallNode$34.$$s, $writer = nil; + + + + if (compile_default == null) compile_default = nil;; + if ($truthy(self.$compiler().$async_await())) { + + self.$push(self.$fragment("(await (")); + self.$push(self.$process(self.$recvr())); + self.$push(self.$fragment("))")); + + $writer = [true]; + $send(self.$scope(), 'await_encountered=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + } else { + return compile_default.$call() + };}, {$$arity: 1, $$s: self}); - Opal.def(self, '$push_nesting?', $CallNode_push_nesting$ques$51 = function() { - var self = this, recv = nil, $ret_or_12 = nil, $ret_or_13 = nil, $ret_or_14 = nil; + $def(self, '$push_nesting?', function $CallNode_push_nesting$ques$35() { + var self = this, recv = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; recv = self.$children().$first(); - if ($truthy(($ret_or_12 = self.$children().$size()['$=='](2)))) { + if ($truthy(($ret_or_1 = self.$children().$size()['$=='](2)))) { - if ($truthy(($ret_or_13 = recv['$nil?']()))) { - return $ret_or_13 + if ($truthy(($ret_or_2 = recv['$nil?']()))) { + return $ret_or_2 } else { - if ($truthy(($ret_or_14 = recv.$type()['$==']("const")))) { + if ($truthy(($ret_or_3 = recv.$type()['$==']("const")))) { return recv.$children().$last()['$==']("Module") } else { - return $ret_or_14 + return $ret_or_3 }; }; } else { - return $ret_or_12 + return $ret_or_1 }; - }, $CallNode_push_nesting$ques$51.$$arity = 0); + }, 0); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'DependencyResolver'); - var $nesting = [self].concat($parent_nesting), $DependencyResolver_initialize$52, $DependencyResolver_resolve$53, $DependencyResolver_handle_part$54, $DependencyResolver_expand_path$56; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = self.$$prototype.compiler = nil; + $proto.compiler = $proto.sexp = $proto.missing_dynamic_require = nil; - Opal.def(self, '$initialize', $DependencyResolver_initialize$52 = function $$initialize(compiler, sexp) { - var self = this; + $def(self, '$initialize', function $$initialize(compiler, sexp, missing_dynamic_require) { + var self = this, $ret_or_1 = nil; + + if (missing_dynamic_require == null) missing_dynamic_require = nil;; self.compiler = compiler; - return (self.sexp = sexp); - }, $DependencyResolver_initialize$52.$$arity = 2); + self.sexp = sexp; + return (self.missing_dynamic_require = ($truthy(($ret_or_1 = missing_dynamic_require)) ? ($ret_or_1) : (self.compiler.$dynamic_require_severity()))); + }, -3); - Opal.def(self, '$resolve', $DependencyResolver_resolve$53 = function $$resolve() { + $def(self, '$resolve', function $$resolve() { var self = this; return self.$handle_part(self.sexp) - }, $DependencyResolver_resolve$53.$$arity = 0); + }, 0); - Opal.def(self, '$handle_part', $DependencyResolver_handle_part$54 = function $$handle_part(sexp) { - var $a, $b, $$55, self = this, type = nil, recv = nil, meth = nil, args = nil, parts = nil, $ret_or_15 = nil, $ret_or_16 = nil, msg = nil, $case = nil; + $def(self, '$handle_part', function $$handle_part(sexp, missing_dynamic_require) { + var $a, $b, self = this, $ret_or_1 = nil, recv = nil, meth = nil, args = nil, parts = nil; - type = sexp.$type(); - if (type['$==']("str")) { - return sexp.$children()['$[]'](0) - } else if (type['$==']("send")) { - - $b = sexp.$children(), $a = Opal.to_ary($b), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $b; - parts = $send(args, 'map', [], ($$55 = function(s){var self = $$55.$$s == null ? this : $$55.$$s; + + if (missing_dynamic_require == null) missing_dynamic_require = self.missing_dynamic_require;; + if ($truthy(sexp)) { + if ($eqeqeq("str", ($ret_or_1 = sexp.$type()))) { + return sexp.$children()['$[]'](0) + } else if ($eqeqeq("dstr", $ret_or_1)) { + return $send(sexp.$children(), 'map', [], function $$36(i){var self = $$36.$$s == null ? this : $$36.$$s; + + + if (i == null) i = nil;; + return self.$handle_part(i);}, {$$arity: 1, $$s: self}).$join() + } else if ($eqeqeq("begin", $ret_or_1)) { + if ($eqeq(sexp.$children().$length(), 1)) { + return self.$handle_part(sexp.$children()['$[]'](0)) + } + } else if ($eqeqeq("send", $ret_or_1)) { - - if (s == null) { - s = nil; + $b = sexp.$children(), $a = $to_ary($b), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $b; + parts = $send(args, 'map', [], function $$37(s){var self = $$37.$$s == null ? this : $$37.$$s; + + + + if (s == null) s = nil;; + return self.$handle_part(s, "ignore");}, {$$arity: 1, $$s: self}); + if ($truthy(parts['$include?'](nil))) { + return nil + }; + if ((($truthy(recv['$is_a?']($$$($$$($Opal, 'AST'), 'Node'))) && ($eqeq(recv.$type(), "const"))) && ($eqeq(recv.$children().$last(), "File")))) { + if ($eqeq(meth, "expand_path")) { + return $send(self, 'expand_path', $to_a(parts)) + } else if ($eqeq(meth, "join")) { + return self.$expand_path(parts.$join("/")) + } else if ($eqeq(meth, "dirname")) { + return self.$expand_path(parts['$[]'](0).$split("/")['$[]']($range(0, -1, true)).$join("/")) + } + } else if ($eqeq(meth, "__dir__")) { + return $$('File').$dirname($$$($$('Opal'), 'Compiler').$module_name(self.compiler.$file())) }; - return self.$handle_part(s);}, $$55.$$s = self, $$55.$$arity = 1, $$55)); - if ($truthy((function() {if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = recv['$is_a?']($$$($$$($$$('::', 'Opal'), 'AST'), 'Node'))))) { - return recv.$type()['$==']("const") - } else { - return $ret_or_16 - }; return nil; })()))) { - return recv.$children().$last()['$==']("File") } else { - return $ret_or_15 - }; return nil; })())) { - if (meth['$==']("expand_path")) { - return $send(self, 'expand_path', Opal.to_a(parts)) - } else if (meth['$==']("join")) { - return self.$expand_path(parts.$join("/")) - } else if (meth['$==']("dirname")) { - return self.$expand_path(parts['$[]'](0).$split("/")['$[]']($range(0, -1, true)).$join("/"))}};}; - msg = "Cannot handle dynamic require"; - return (function() {$case = self.compiler.$dynamic_require_severity(); - if ("error"['$===']($case)) {return self.compiler.$error(msg, self.sexp.$line())} - else if ("warning"['$===']($case)) {return self.compiler.$warning(msg, self.sexp.$line())} - else { return nil }})(); - }, $DependencyResolver_handle_part$54.$$arity = 1); - return (Opal.def(self, '$expand_path', $DependencyResolver_expand_path$56 = function $$expand_path(path, base) { - var $$57, self = this; - - - - if (base == null) { - base = ""; + nil + } }; - return $send(((("" + (base)) + "/") + (path)).$split("/"), 'each_with_object', [[]], ($$57 = function(part, p){var self = $$57.$$s == null ? this : $$57.$$s; - + if ($eqeqeq("error", ($ret_or_1 = missing_dynamic_require))) { + return self.compiler.$error("Cannot handle dynamic require", self.sexp.$line()) + } else if ($eqeqeq("warning", $ret_or_1)) { + return self.compiler.$warning("Cannot handle dynamic require", self.sexp.$line()) + } else { + return nil + }; + }, -2); + return $def(self, '$expand_path', function $$expand_path(path, base) { + + + + if (base == null) base = "";; + return $send(((("" + (base)) + "/") + (path)).$split("/"), 'each_with_object', [[]], function $$38(part, p){ - if (part == null) { - part = nil; - }; + if (part == null) part = nil;; - if (p == null) { - p = nil; - }; - if (part['$==']("")) { + if (p == null) p = nil;; + if ($eqeq(part, "")) { return nil - } else if (part['$==']("..")) { + } else if ($eqeq(part, "..")) { return p.$pop() } else { return p['$<<'](part) - };}, $$57.$$s = self, $$57.$$arity = 2, $$57)).$join("/"); - }, $DependencyResolver_expand_path$56.$$arity = -2), nil) && 'expand_path'; + };}, 2).$join("/"); + }, -2); })($nesting[0], null, $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/csend"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/csend"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$helper', '$conditional_send', '$recv', '$receiver_sexp', '$push', '$compile_method_name', '$compile_arguments', '$compile_block_pass']); + Opal.add_stubs('require,handle,helper,conditional_send,recv,receiver_sexp,push,compile_method_name,compile_arguments,compile_block_pass'); self.$require("opal/nodes/call"); return (function($base, $parent_nesting) { @@ -34197,43 +30962,39 @@ Opal.modules["opal/nodes/csend"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'CSendNode'); - var $nesting = [self].concat($parent_nesting), $CSendNode_default_compile$1; - + self.$handle("csend"); - return (Opal.def(self, '$default_compile', $CSendNode_default_compile$1 = function $$default_compile() { - var $$2, self = this; + return $def(self, '$default_compile', function $$default_compile() { + var self = this; self.$helper("send"); - return $send(self, 'conditional_send', [self.$recv(self.$receiver_sexp())], ($$2 = function(receiver_temp){var self = $$2.$$s == null ? this : $$2.$$s; + return $send(self, 'conditional_send', [self.$recv(self.$receiver_sexp())], function $$1(receiver_temp){var self = $$1.$$s == null ? this : $$1.$$s; - if (receiver_temp == null) { - receiver_temp = nil; - }; + if (receiver_temp == null) receiver_temp = nil;; self.$push("$send(", receiver_temp); self.$compile_method_name(); self.$compile_arguments(); self.$compile_block_pass(); - return self.$push(")");}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }, $CSendNode_default_compile$1.$$arity = 0), nil) && 'default_compile'; - })($nesting[0], $$($nesting, 'CallNode'), $nesting) + return self.$push(")");}, {$$arity: 1, $$s: self}); + }, 0); + })($nesting[0], $$('CallNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/call_special"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; +Opal.modules["opal/nodes/call_special"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$recv', '$recvr', '$expr', '$property', '$value', '$<<', '$default_compile', '$meth', '$receiver_sexp', '$method_jsid', '$compile_arguments', '$iter', '$s', '$lhs', '$rhs', '$process']); + Opal.add_stubs('require,handle,children,push,recv,recvr,expr,property,value,<<,default_compile,meth,receiver_sexp,method_jsid,compile_arguments,iter,s,lhs,rhs,==,type,first,map,flatten,scan,to_proc,empty?,stmt?,process'); self.$require("opal/nodes/base"); self.$require("opal/nodes/call"); @@ -34245,118 +31006,128 @@ Opal.modules["opal/nodes/call_special"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'JsAttrNode'); - var $nesting = [self].concat($parent_nesting), $JsAttrNode_compile$1; - + self.$handle("jsattr"); self.$children("recvr", "property"); - return (Opal.def(self, '$compile', $JsAttrNode_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$recv(self.$recvr()), "[", self.$expr(self.$property()), "]") - }, $JsAttrNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'JsAttrAsgnNode'); - var $nesting = [self].concat($parent_nesting), $JsAttrAsgnNode_compile$2; - + self.$handle("jsattrasgn"); self.$children("recvr", "property", "value"); - return (Opal.def(self, '$compile', $JsAttrAsgnNode_compile$2 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$recv(self.$recvr()), "[", self.$expr(self.$property()), "] = ", self.$expr(self.$value())) - }, $JsAttrAsgnNode_compile$2.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'JsCallNode'); - var $nesting = [self].concat($parent_nesting), $JsCallNode_initialize$3, $JsCallNode_compile$4, $JsCallNode_method_jsid$5, $JsCallNode_compile_using_send$6; + var $proto = self.$$prototype; - self.$$prototype.iter = self.$$prototype.arglist = nil; + $proto.iter = $proto.arglist = nil; self.$handle("jscall"); - Opal.def(self, '$initialize', $JsCallNode_initialize$3 = function $$initialize($a) { - var $post_args, $iter = $JsCallNode_initialize$3.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $JsCallNode_initialize$3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $JsCallNode_initialize$3, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); if ($truthy(self.iter)) { - self.arglist = self.arglist['$<<'](self.iter)}; + self.arglist = self.arglist['$<<'](self.iter) + }; return (self.iter = nil); - }, $JsCallNode_initialize$3.$$arity = -1); + }, -1); - Opal.def(self, '$compile', $JsCallNode_compile$4 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; return self.$default_compile() - }, $JsCallNode_compile$4.$$arity = 0); + }, 0); - Opal.def(self, '$method_jsid', $JsCallNode_method_jsid$5 = function $$method_jsid() { + $def(self, '$method_jsid', function $$method_jsid() { var self = this; - return "" + "." + (self.$meth()) - }, $JsCallNode_method_jsid$5.$$arity = 0); - return (Opal.def(self, '$compile_using_send', $JsCallNode_compile_using_send$6 = function $$compile_using_send() { + return "." + (self.$meth()) + }, 0); + return $def(self, '$compile_using_send', function $$compile_using_send() { var self = this; self.$push(self.$recv(self.$receiver_sexp()), self.$method_jsid(), ".apply(null"); self.$compile_arguments(); if ($truthy(self.$iter())) { - self.$push(".concat(", self.$expr(self.$iter()), ")")}; + self.$push(".concat(", self.$expr(self.$iter()), ")") + }; return self.$push(")"); - }, $JsCallNode_compile_using_send$6.$$arity = 0), nil) && 'compile_using_send'; - })($nesting[0], $$($nesting, 'CallNode'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('CallNode')); + return (function($base, $super) { var self = $klass($base, $super, 'Match3Node'); - var $nesting = [self].concat($parent_nesting), $Match3Node_compile$7; + var $proto = self.$$prototype; - self.$$prototype.level = nil; + $proto.level = nil; self.$handle("match_with_lvasgn"); self.$children("lhs", "rhs"); - return (Opal.def(self, '$compile', $Match3Node_compile$7 = function $$compile() { - var self = this, sexp = nil; + return $def(self, '$compile', function $$compile() { + var self = this, sexp = nil, re = nil, names = nil, names_def = nil; sexp = self.$s("send", self.$lhs(), "=~", self.$rhs()); + if (($eqeq(self.$lhs().$type(), "regexp") && ($eqeq(self.$lhs().$children().$first().$type(), "str")))) { + + re = self.$lhs().$children().$first().$children().$first(); + names = $send(re.$scan(/\(\?<([^>]*)>/).$flatten(), 'map', [], "to_sym".$to_proc()); + if (!$truthy(names['$empty?']())) { + + names_def = self.$s("lvasgn", "$m3names", self.$s("if", self.$s("gvar", "$~"), self.$s("send", self.$s("gvar", "$~"), "named_captures"), self.$s("hash"))); + names = $send(names, 'map', [], function $$1(name){var self = $$1.$$s == null ? this : $$1.$$s; + + + + if (name == null) name = nil;; + return self.$s("lvasgn", name, self.$s("send", self.$s("lvar", "$m3names"), "[]", self.$s("sym", name)));}, {$$arity: 1, $$s: self}); + if ($truthy(self['$stmt?']())) { + sexp = $send(self, 's', ["begin", sexp, names_def].concat($to_a(names))) + } else { + sexp = $send(self, 's', ["begin", self.$s("lvasgn", "$m3tmp", sexp), names_def].concat($to_a(names)).concat([self.$s("lvar", "$m3tmp")])) + }; + }; + }; return self.$push(self.$process(sexp, self.level)); - }, $Match3Node_compile$7.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/scope"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; - - Opal.add_stubs(['$require', '$attr_accessor', '$attr_reader', '$indent', '$scope', '$compiler', '$scope=', '$-', '$==', '$top?', '$top_scope', '$parent', '$iter?', '$!', '$class?', '$dup', '$push', '$map', '$ivars', '$gvars', '$parser_indent', '$empty?', '$join', '$+', '$fragment', '$def_in_class?', '$add_proto_ivar', '$include?', '$<<', '$has_local?', '$|', '$scope_locals', '$has_temp?', '$pop', '$next_temp', '$loop', '$succ', '$uses_block!', '$identify!', '$compact', '$name', '$scope_name', '$mid', '$unique_temp', '$add_scope_temp', '$def?', '$lambda?', '$type', '$nil?', '$rescue_else_sexp', '$last', '$class', '$collect_refinements_temps', '$add_scope_local', '$new_refinements_temp']); +Opal.modules["opal/nodes/scope"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $def = Opal.def, $send = Opal.send, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $not = Opal.not, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $hash2 = Opal.hash2; + + Opal.add_stubs('require,attr_accessor,attr_reader,indent,scope,compiler,scope=,-,==,iter?,!,class?,dup,push,map,ivars,gvars,empty?,<<,parser_indent,join,+,fragment,def_in_class?,add_proto_ivar,include?,has_local?,|,scope_locals,reject,start_with?,to_s,has_temp?,pop,next_temp,loop,succ,uses_block!,identify!,valid_name?,mid,compact,parent,name,scope_name,unique_temp,lambda?,def?,type,nil?,rescue_else_sexp,last,class,collect_refinements_temps,add_scope_local,new_refinements_temp,identity,block_name=,add_temp,block_name,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -34367,14 +31138,14 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ScopeNode'); - var $nesting = [self].concat($parent_nesting), $ScopeNode_initialize$1, $ScopeNode_in_scope$2, $ScopeNode_class_scope$ques$4, $ScopeNode_class$ques$5, $ScopeNode_module$ques$6, $ScopeNode_sclass$ques$7, $ScopeNode_top$ques$8, $ScopeNode_top_scope$9, $ScopeNode_iter$ques$10, $ScopeNode_def$ques$11, $ScopeNode_lambda$ques$12, $ScopeNode_is_lambda$excl$13, $ScopeNode_defines_lambda$14, $ScopeNode_lambda_definition$ques$15, $ScopeNode_def_in_class$ques$16, $ScopeNode_to_vars$17, $ScopeNode_add_scope_ivar$22, $ScopeNode_add_scope_gvar$23, $ScopeNode_add_proto_ivar$24, $ScopeNode_add_arg$25, $ScopeNode_add_scope_local$26, $ScopeNode_has_local$ques$27, $ScopeNode_scope_locals$28, $ScopeNode_add_scope_temp$29, $ScopeNode_has_temp$ques$30, $ScopeNode_new_temp$31, $ScopeNode_next_temp$32, $ScopeNode_queue_temp$34, $ScopeNode_push_while$35, $ScopeNode_pop_while$36, $ScopeNode_in_while$ques$37, $ScopeNode_uses_block$excl$38, $ScopeNode_identify$excl$39, $ScopeNode_find_parent_def$40, $ScopeNode_super_chain$41, $ScopeNode_uses_block$ques$42, $ScopeNode_has_rescue_else$ques$43, $ScopeNode_in_rescue$44, $ScopeNode_current_rescue$45, $ScopeNode_in_resbody$46, $ScopeNode_in_resbody$ques$47, $ScopeNode_in_ensure$48, $ScopeNode_in_ensure$ques$49, $ScopeNode_gen_retry_id$50, $ScopeNode_accepts_using$ques$51, $ScopeNode_collect_refinements_temps$52, $ScopeNode_new_refinements_temp$53, $ScopeNode_refinements_temp$54; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.type = self.$$prototype.is_lambda = self.$$prototype.lambda_definition = self.$$prototype.defs = self.$$prototype.parent = self.$$prototype.temps = self.$$prototype.locals = self.$$prototype.compiler = self.$$prototype.proto_ivars = self.$$prototype.ivars = self.$$prototype.gvars = self.$$prototype.args = self.$$prototype.queue = self.$$prototype.while_stack = self.$$prototype.identity = self.$$prototype.uses_block = self.$$prototype.rescues = self.$$prototype.in_resbody = self.$$prototype.in_ensure = self.$$prototype.next_retry_id = self.$$prototype.refinements_temp = nil; + $proto.type = $proto.is_lambda = $proto.lambda_definition = $proto.defs = $proto.parent = $proto.temps = $proto.locals = $proto.proto_ivars = $proto.compiler = $proto.ivars = $proto.gvars = $proto.args = $proto.queue = $proto.while_stack = $proto.identity = $proto.uses_block = $proto.rescues = $proto.in_resbody = $proto.in_ensure = $proto.next_retry_id = $proto.refinements_temp = $proto.block_prepared = nil; self.$attr_accessor("parent"); self.$attr_accessor("name"); @@ -34386,24 +31157,19 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { self.$attr_accessor("mid"); self.$attr_accessor("defs"); self.$attr_reader("methods"); - self.$attr_accessor("uses_super"); - self.$attr_accessor("uses_zuper"); self.$attr_accessor("catch_return", "has_break", "has_retry"); self.$attr_accessor("rescue_else_sexp"); - Opal.def(self, '$initialize', $ScopeNode_initialize$1 = function $$initialize($a) { - var $post_args, $iter = $ScopeNode_initialize$1.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $ScopeNode_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $ScopeNode_initialize$1, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); self.locals = []; self.temps = []; self.args = []; @@ -34419,29 +31185,29 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { self.uses_block = false; self.in_ensure = false; return (self.proto_ivars = []); - }, $ScopeNode_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$in_scope', $ScopeNode_in_scope$2 = function $$in_scope() { - var $$3, $iter = $ScopeNode_in_scope$2.$$p, $yield = $iter || nil, self = this; + $def(self, '$in_scope', function $$in_scope() { + var $yield = $$in_scope.$$p || nil, self = this; - if ($iter) $ScopeNode_in_scope$2.$$p = null; - return $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + delete $$in_scope.$$p; + return $send(self, 'indent', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; if (self.parent == null) self.parent = nil; self.parent = self.$compiler().$scope(); $writer = [self]; - $send(self.$compiler(), 'scope=', Opal.to_a($writer)); + $send(self.$compiler(), 'scope=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; Opal.yield1($yield, self); $writer = [self.parent]; - $send(self.$compiler(), 'scope=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$3.$$s = self, $$3.$$arity = 0, $$3)) - }, $ScopeNode_in_scope$2.$$arity = 0); + $send(self.$compiler(), 'scope=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 0, $$s: self}) + }, 0); - Opal.def(self, '$class_scope?', $ScopeNode_class_scope$ques$4 = function() { + $def(self, '$class_scope?', function $ScopeNode_class_scope$ques$2() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.type['$==']("class")))) { @@ -34449,173 +31215,134 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { } else { return self.type['$==']("module") } - }, $ScopeNode_class_scope$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$class?', $ScopeNode_class$ques$5 = function() { + $def(self, '$class?', function $ScopeNode_class$ques$3() { var self = this; return self.type['$==']("class") - }, $ScopeNode_class$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$module?', $ScopeNode_module$ques$6 = function() { + $def(self, '$module?', function $ScopeNode_module$ques$4() { var self = this; return self.type['$==']("module") - }, $ScopeNode_module$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$sclass?', $ScopeNode_sclass$ques$7 = function() { + $def(self, '$sclass?', function $ScopeNode_sclass$ques$5() { var self = this; return self.type['$==']("sclass") - }, $ScopeNode_sclass$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$top?', $ScopeNode_top$ques$8 = function() { + $def(self, '$top?', function $ScopeNode_top$ques$6() { var self = this; return self.type['$==']("top") - }, $ScopeNode_top$ques$8.$$arity = 0); - - Opal.def(self, '$top_scope', $ScopeNode_top_scope$9 = function $$top_scope() { - var self = this; - - if ($truthy(self['$top?']())) { - return self - } else { - return self.$parent().$top_scope() - } - }, $ScopeNode_top_scope$9.$$arity = 0); + }, 0); - Opal.def(self, '$iter?', $ScopeNode_iter$ques$10 = function() { + $def(self, '$iter?', function $ScopeNode_iter$ques$7() { var self = this; return self.type['$==']("iter") - }, $ScopeNode_iter$ques$10.$$arity = 0); + }, 0); - Opal.def(self, '$def?', $ScopeNode_def$ques$11 = function() { - var self = this, $ret_or_2 = nil; + $def(self, '$def?', function $ScopeNode_def$ques$8() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = self.type['$==']("def")))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self.type['$==']("def")))) { + return $ret_or_1 } else { return self.type['$==']("defs") } - }, $ScopeNode_def$ques$11.$$arity = 0); + }, 0); - Opal.def(self, '$lambda?', $ScopeNode_lambda$ques$12 = function() { - var self = this, $ret_or_3 = nil; + $def(self, '$lambda?', function $ScopeNode_lambda$ques$9() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self['$iter?']()))) { + if ($truthy(($ret_or_1 = self['$iter?']()))) { return self.is_lambda } else { - return $ret_or_3 + return $ret_or_1 } - }, $ScopeNode_lambda$ques$12.$$arity = 0); + }, 0); - Opal.def(self, '$is_lambda!', $ScopeNode_is_lambda$excl$13 = function() { + $def(self, '$is_lambda!', function $ScopeNode_is_lambda$excl$10() { var self = this; return (self.is_lambda = true) - }, $ScopeNode_is_lambda$excl$13.$$arity = 0); + }, 0); - Opal.def(self, '$defines_lambda', $ScopeNode_defines_lambda$14 = function $$defines_lambda() { - var $iter = $ScopeNode_defines_lambda$14.$$p, $yield = $iter || nil, self = this; + $def(self, '$defines_lambda', function $$defines_lambda() { + var $yield = $$defines_lambda.$$p || nil, self = this; - if ($iter) $ScopeNode_defines_lambda$14.$$p = null; + delete $$defines_lambda.$$p; self.lambda_definition = true; Opal.yieldX($yield, []); return (self.lambda_definition = false); - }, $ScopeNode_defines_lambda$14.$$arity = 0); + }, 0); - Opal.def(self, '$lambda_definition?', $ScopeNode_lambda_definition$ques$15 = function() { + $def(self, '$lambda_definition?', function $ScopeNode_lambda_definition$ques$11() { var self = this; return self.lambda_definition - }, $ScopeNode_lambda_definition$ques$15.$$arity = 0); + }, 0); - Opal.def(self, '$def_in_class?', $ScopeNode_def_in_class$ques$16 = function() { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; + $def(self, '$def_in_class?', function $ScopeNode_def_in_class$ques$12() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.defs['$!']()))) { - return self.type['$==']("def") - } else { - return $ret_or_6 - }; return nil; })()))) { - return self.parent - } else { - return $ret_or_5 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = self.defs['$!']())) ? (self.type['$==']("def")) : ($ret_or_3)))) ? (self.parent) : ($ret_or_2))))) { return self.parent['$class?']() } else { - return $ret_or_4 + return $ret_or_1 } - }, $ScopeNode_def_in_class$ques$16.$$arity = 0); + }, 0); - Opal.def(self, '$to_vars', $ScopeNode_to_vars$17 = function $$to_vars() { - var $$18, $$19, $$20, $$21, self = this, vars = nil, iv = nil, gv = nil, indent = nil, str = nil, $ret_or_7 = nil, pvars = nil, result = nil; + $def(self, '$to_vars', function $$to_vars() { + var self = this, vars = nil, iv = nil, gv = nil, indent = nil, str = nil, pvars = nil; vars = self.temps.$dup(); - $send(vars, 'push', Opal.to_a($send(self.locals, 'map', [], ($$18 = function(l){var self = $$18.$$s == null ? this : $$18.$$s; - + $send(vars, 'push', $to_a($send(self.locals, 'map', [], function $$13(l){ - if (l == null) { - l = nil; - }; - return "" + (l) + " = nil";}, $$18.$$s = self, $$18.$$arity = 1, $$18)))); - iv = $send(self.$ivars(), 'map', [], ($$19 = function(ivar){var self = $$19.$$s == null ? this : $$19.$$s; - + if (l == null) l = nil;; + return "" + (l) + " = nil";}, 1))); + iv = $send(self.$ivars(), 'map', [], function $$14(ivar){ - if (ivar == null) { - ivar = nil; - }; - return "" + "if (self" + (ivar) + " == null) self" + (ivar) + " = nil;\n";}, $$19.$$s = self, $$19.$$arity = 1, $$19)); - gv = $send(self.$gvars(), 'map', [], ($$20 = function(gvar){var self = $$20.$$s == null ? this : $$20.$$s; - + if (ivar == null) ivar = nil;; + return "if (self" + (ivar) + " == null) self" + (ivar) + " = nil;\n";}, 1); + gv = $send(self.$gvars(), 'map', [], function $$15(gvar){ - if (gvar == null) { - gvar = nil; - }; - return "" + "if ($gvars" + (gvar) + " == null) $gvars" + (gvar) + " = nil;\n";}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + if (gvar == null) gvar = nil;; + return "if ($gvars" + (gvar) + " == null) $gvars" + (gvar) + " = nil;\n";}, 1); + if (($truthy(self['$class?']()) && ($not(self.proto_ivars['$empty?']())))) { + vars['$<<']("$proto = self.$$prototype") + }; indent = self.compiler.$parser_indent(); - str = (function() {if ($truthy(vars['$empty?']())) { - return "" - } else { - return "" + "var " + (vars.$join(", ")) + ";\n" - }; return nil; })(); - if ($truthy(self.$ivars()['$empty?']())) { - } else { + str = ($truthy(vars['$empty?']()) ? ("") : ("var " + (vars.$join(", ")) + ";\n")); + if (!$truthy(self.$ivars()['$empty?']())) { str = $rb_plus(str, "" + (indent) + (iv.$join(indent))) }; - if ($truthy(self.$gvars()['$empty?']())) { - } else { + if (!$truthy(self.$gvars()['$empty?']())) { str = $rb_plus(str, "" + (indent) + (gv.$join(indent))) }; - if ($truthy((function() {if ($truthy(($ret_or_7 = self['$class?']()))) { - return self.proto_ivars['$empty?']()['$!']() - } else { - return $ret_or_7 - }; return nil; })())) { + if (($truthy(self['$class?']()) && ($not(self.proto_ivars['$empty?']())))) { - pvars = $send(self.proto_ivars, 'map', [], ($$21 = function(i){var self = $$21.$$s == null ? this : $$21.$$s; - + pvars = $send(self.proto_ivars, 'map', [], function $$16(i){ - if (i == null) { - i = nil; - }; - return "" + "self.$$prototype" + (i);}, $$21.$$s = self, $$21.$$arity = 1, $$21)).$join(" = "); - result = "" + (str) + "\n" + (indent) + (pvars) + " = nil;"; - } else { - result = str + if (i == null) i = nil;; + return "$proto" + (i);}, 1).$join(" = "); + str = "" + (str) + "\n" + (indent) + (pvars) + " = nil;"; }; - return self.$fragment(result); - }, $ScopeNode_to_vars$17.$$arity = 0); + return self.$fragment(str); + }, 0); - Opal.def(self, '$add_scope_ivar', $ScopeNode_add_scope_ivar$22 = function $$add_scope_ivar(ivar) { + $def(self, '$add_scope_ivar', function $$add_scope_ivar(ivar) { var self = this; if ($truthy(self['$def_in_class?']())) { @@ -34625,9 +31352,9 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { } else { return self.ivars['$<<'](ivar) } - }, $ScopeNode_add_scope_ivar$22.$$arity = 1); + }, 1); - Opal.def(self, '$add_scope_gvar', $ScopeNode_add_scope_gvar$23 = function $$add_scope_gvar(gvar) { + $def(self, '$add_scope_gvar', function $$add_scope_gvar(gvar) { var self = this; if ($truthy(self.gvars['$include?'](gvar))) { @@ -34635,9 +31362,9 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { } else { return self.gvars['$<<'](gvar) } - }, $ScopeNode_add_scope_gvar$23.$$arity = 1); + }, 1); - Opal.def(self, '$add_proto_ivar', $ScopeNode_add_proto_ivar$24 = function $$add_proto_ivar(ivar) { + $def(self, '$add_proto_ivar', function $$add_proto_ivar(ivar) { var self = this; if ($truthy(self.proto_ivars['$include?'](ivar))) { @@ -34645,365 +31372,371 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { } else { return self.proto_ivars['$<<'](ivar) } - }, $ScopeNode_add_proto_ivar$24.$$arity = 1); + }, 1); - Opal.def(self, '$add_arg', $ScopeNode_add_arg$25 = function $$add_arg(arg) { + $def(self, '$add_arg', function $$add_arg(arg) { var self = this; - if ($truthy(self.args['$include?'](arg))) { - } else { + if (!$truthy(self.args['$include?'](arg))) { self.args['$<<'](arg) }; return arg; - }, $ScopeNode_add_arg$25.$$arity = 1); + }, 1); - Opal.def(self, '$add_scope_local', $ScopeNode_add_scope_local$26 = function $$add_scope_local(local) { + $def(self, '$add_scope_local', function $$add_scope_local(local) { var self = this; if ($truthy(self['$has_local?'](local))) { - return nil}; + return nil + }; return self.locals['$<<'](local); - }, $ScopeNode_add_scope_local$26.$$arity = 1); + }, 1); - Opal.def(self, '$has_local?', $ScopeNode_has_local$ques$27 = function(local) { - var self = this, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil; + $def(self, '$has_local?', function $ScopeNode_has_local$ques$17(local) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = self.locals['$include?'](local)))) { - return $ret_or_9 - } else { - return self.args['$include?'](local) - }; return nil; })()))) { - return $ret_or_8 - } else { - return self.temps['$include?'](local) - }; return nil; })())) { - return true}; - if ($truthy((function() {if ($truthy(($ret_or_10 = self.parent))) { - return self.type['$==']("iter") - } else { - return $ret_or_10 - }; return nil; })())) { - return self.parent['$has_local?'](local)}; + if ((($truthy(self.locals['$include?'](local)) || ($truthy(self.args['$include?'](local)))) || ($truthy(self.temps['$include?'](local))))) { + return true + }; + if (($truthy(self.parent) && ($eqeq(self.type, "iter")))) { + return self.parent['$has_local?'](local) + }; return false; - }, $ScopeNode_has_local$ques$27.$$arity = 1); + }, 1); - Opal.def(self, '$scope_locals', $ScopeNode_scope_locals$28 = function $$scope_locals() { - var self = this, $ret_or_11 = nil; + $def(self, '$scope_locals', function $$scope_locals() { + var self = this, locals = nil; - return self.locals['$|'](self.args)['$|']((function() {if ($truthy((function() {if ($truthy(($ret_or_11 = self.parent))) { - return self.type['$==']("iter") - } else { - return $ret_or_11 - }; return nil; })())) { - return self.parent.$scope_locals() - } else { - return [] - }; return nil; })()) - }, $ScopeNode_scope_locals$28.$$arity = 0); + + locals = self.locals['$|'](self.args)['$|']((($truthy(self.parent) && ($eqeq(self.type, "iter"))) ? (self.parent.$scope_locals()) : ([]))); + return $send(locals, 'reject', [], function $$18(i){ + + + if (i == null) i = nil;; + return i.$to_s()['$start_with?']("$");}, 1); + }, 0); - Opal.def(self, '$add_scope_temp', $ScopeNode_add_scope_temp$29 = function $$add_scope_temp(tmp) { + $def(self, '$add_scope_temp', function $$add_scope_temp(tmp) { var self = this; if ($truthy(self['$has_temp?'](tmp))) { - return nil}; + return nil + }; return self.temps.$push(tmp); - }, $ScopeNode_add_scope_temp$29.$$arity = 1); + }, 1); - Opal.def(self, '$has_temp?', $ScopeNode_has_temp$ques$30 = function(tmp) { + $def(self, '$has_temp?', function $ScopeNode_has_temp$ques$19(tmp) { var self = this; return self.temps['$include?'](tmp) - }, $ScopeNode_has_temp$ques$30.$$arity = 1); + }, 1); - Opal.def(self, '$new_temp', $ScopeNode_new_temp$31 = function $$new_temp() { + $def(self, '$new_temp', function $$new_temp() { var self = this, tmp = nil; - if ($truthy(self.queue['$empty?']())) { - } else { + if (!$truthy(self.queue['$empty?']())) { return self.queue.$pop() }; tmp = self.$next_temp(); self.temps['$<<'](tmp); return tmp; - }, $ScopeNode_new_temp$31.$$arity = 0); + }, 0); - Opal.def(self, '$next_temp', $ScopeNode_next_temp$32 = function $$next_temp() { - var $$33, self = this, tmp = nil; + $def(self, '$next_temp', function $$next_temp() { + var self = this, tmp = nil; tmp = nil; - (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], ($$33 = function(){var self = $$33.$$s == null ? this : $$33.$$s; + (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], function $$20(){var self = $$20.$$s == null ? this : $$20.$$s; if (self.unique == null) self.unique = nil; - tmp = "" + "$" + (self.unique); + tmp = "$" + (self.unique); self.unique = self.unique.$succ(); if ($truthy(self['$has_local?'](tmp))) { return nil } else { Opal.brk(nil, $brk) - };}, $$33.$$s = self, $$33.$$brk = $brk, $$33.$$arity = 0, $$33)) + };}, {$$arity: 0, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return tmp; - }, $ScopeNode_next_temp$32.$$arity = 0); + }, 0); - Opal.def(self, '$queue_temp', $ScopeNode_queue_temp$34 = function $$queue_temp(name) { + $def(self, '$queue_temp', function $$queue_temp(name) { var self = this; return self.queue['$<<'](name) - }, $ScopeNode_queue_temp$34.$$arity = 1); + }, 1); - Opal.def(self, '$push_while', $ScopeNode_push_while$35 = function $$push_while() { + $def(self, '$push_while', function $$push_while() { var self = this, info = nil; info = $hash2([], {}); self.while_stack.$push(info); return info; - }, $ScopeNode_push_while$35.$$arity = 0); + }, 0); - Opal.def(self, '$pop_while', $ScopeNode_pop_while$36 = function $$pop_while() { + $def(self, '$pop_while', function $$pop_while() { var self = this; return self.while_stack.$pop() - }, $ScopeNode_pop_while$36.$$arity = 0); + }, 0); - Opal.def(self, '$in_while?', $ScopeNode_in_while$ques$37 = function() { + $def(self, '$in_while?', function $ScopeNode_in_while$ques$21() { var self = this; return self.while_stack['$empty?']()['$!']() - }, $ScopeNode_in_while$ques$37.$$arity = 0); + }, 0); - Opal.def(self, '$uses_block!', $ScopeNode_uses_block$excl$38 = function() { - var self = this, $ret_or_12 = nil; + $def(self, '$uses_block!', function $ScopeNode_uses_block$excl$22() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_12 = self.type['$==']("iter")))) { - return self.parent - } else { - return $ret_or_12 - }; return nil; })())) { + if (($eqeq(self.type, "iter") && ($truthy(self.parent)))) { return self.parent['$uses_block!']() } else { self.uses_block = true; return self['$identify!'](); } - }, $ScopeNode_uses_block$excl$38.$$arity = 0); + }, 0); - Opal.def(self, '$identify!', $ScopeNode_identify$excl$39 = function(name) { - var self = this, $ret_or_13 = nil, $ret_or_14 = nil, $ret_or_15 = nil; + $def(self, '$identify!', function $ScopeNode_identify$excl$23(name) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; if ($truthy(self.identity)) { - return self.identity}; - name = (function() {if ($truthy(($ret_or_13 = name))) { - return $ret_or_13 + return self.identity + }; + if ($truthy(self['$valid_name?'](self.$mid()))) { + self.identity = "$$" + (self.$mid()) } else { - return [(function() {if ($truthy(($ret_or_14 = self.$parent()))) { - - if ($truthy(($ret_or_15 = self.$parent().$name()))) { - return $ret_or_15 - } else { - return self.$parent().$scope_name() - }; - } else { - return $ret_or_14 - }; return nil; })(), self.$mid()].$compact().$join("_") - }; return nil; })(); - self.identity = self.compiler.$unique_temp(name); - if ($truthy(self.parent)) { - self.parent.$add_scope_temp(self.identity)}; + + name = ($truthy(($ret_or_1 = name)) ? ($ret_or_1) : ([($truthy(($ret_or_2 = self.$parent())) ? (($truthy(($ret_or_3 = self.$parent().$name())) ? ($ret_or_3) : (self.$parent().$scope_name()))) : ($ret_or_2)), self.$mid()].$compact().$join("_"))); + self.identity = self.compiler.$unique_temp(name); + }; return self.identity; - }, $ScopeNode_identify$excl$39.$$arity = -1); + }, -1); self.$attr_reader("identity"); - Opal.def(self, '$find_parent_def', $ScopeNode_find_parent_def$40 = function $$find_parent_def() { - var $a, self = this, scope = nil, $ret_or_16 = nil; + $def(self, '$find_parent_def', function $$find_parent_def() { + var $a, self = this, scope = nil; scope = self; while ($truthy((scope = scope.$parent()))) { - if ($truthy((function() {if ($truthy(($ret_or_16 = scope['$def?']()))) { - return $ret_or_16 - } else { - return scope['$lambda?']() - }; return nil; })())) { - return scope} + if (($truthy(scope['$def?']()) || ($truthy(scope['$lambda?']())))) { + return scope + } }; return nil; - }, $ScopeNode_find_parent_def$40.$$arity = 0); + }, 0); - Opal.def(self, '$super_chain', $ScopeNode_super_chain$41 = function $$super_chain() { + $def(self, '$super_chain', function $$super_chain() { var $a, self = this, chain = nil, scope = nil, defn = nil, mid = nil; $a = [[], self, "null", "null"], (chain = $a[0]), (scope = $a[1]), (defn = $a[2]), (mid = $a[3]), $a; while ($truthy(scope)) { - if (scope.$type()['$==']("iter")) { + if ($eqeq(scope.$type(), "iter")) { chain['$<<'](scope['$identify!']()); if ($truthy(scope.$parent())) { - scope = scope.$parent()}; + scope = scope.$parent() + }; } else if ($truthy(["def", "defs"]['$include?'](scope.$type()))) { defn = scope['$identify!'](); - mid = "" + "'" + (scope.$mid()) + "'"; + mid = "'" + (scope.$mid()) + "'"; break;; } else { break; } }; return [chain, defn, mid]; - }, $ScopeNode_super_chain$41.$$arity = 0); + }, 0); - Opal.def(self, '$uses_block?', $ScopeNode_uses_block$ques$42 = function() { + $def(self, '$uses_block?', function $ScopeNode_uses_block$ques$24() { var self = this; return self.uses_block - }, $ScopeNode_uses_block$ques$42.$$arity = 0); + }, 0); - Opal.def(self, '$has_rescue_else?', $ScopeNode_has_rescue_else$ques$43 = function() { + $def(self, '$has_rescue_else?', function $ScopeNode_has_rescue_else$ques$25() { var self = this; return self.$rescue_else_sexp()['$nil?']()['$!']() - }, $ScopeNode_has_rescue_else$ques$43.$$arity = 0); + }, 0); - Opal.def(self, '$in_rescue', $ScopeNode_in_rescue$44 = function $$in_rescue(node) { - var $iter = $ScopeNode_in_rescue$44.$$p, $yield = $iter || nil, self = this, $ret_or_17 = nil, result = nil; + $def(self, '$in_rescue', function $$in_rescue(node) { + var $yield = $$in_rescue.$$p || nil, self = this, $ret_or_1 = nil, result = nil; - if ($iter) $ScopeNode_in_rescue$44.$$p = null; + delete $$in_rescue.$$p; - self.rescues = (function() {if ($truthy(($ret_or_17 = self.rescues))) { - return $ret_or_17 - } else { - return [] - }; return nil; })(); + self.rescues = ($truthy(($ret_or_1 = self.rescues)) ? ($ret_or_1) : ([])); self.rescues.$push(node); result = Opal.yieldX($yield, []); self.rescues.$pop(); return result; - }, $ScopeNode_in_rescue$44.$$arity = 1); + }, 1); - Opal.def(self, '$current_rescue', $ScopeNode_current_rescue$45 = function $$current_rescue() { + $def(self, '$current_rescue', function $$current_rescue() { var self = this; return self.rescues.$last() - }, $ScopeNode_current_rescue$45.$$arity = 0); + }, 0); - Opal.def(self, '$in_resbody', $ScopeNode_in_resbody$46 = function $$in_resbody() { - var $iter = $ScopeNode_in_resbody$46.$$p, $yield = $iter || nil, self = this, result = nil; + $def(self, '$in_resbody', function $$in_resbody() { + var $yield = $$in_resbody.$$p || nil, self = this, result = nil; - if ($iter) $ScopeNode_in_resbody$46.$$p = null; + delete $$in_resbody.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return nil }; self.in_resbody = true; result = Opal.yieldX($yield, []); self.in_resbody = false; return result; - }, $ScopeNode_in_resbody$46.$$arity = 0); + }, 0); - Opal.def(self, '$in_resbody?', $ScopeNode_in_resbody$ques$47 = function() { + $def(self, '$in_resbody?', function $ScopeNode_in_resbody$ques$26() { var self = this; return self.in_resbody - }, $ScopeNode_in_resbody$ques$47.$$arity = 0); + }, 0); - Opal.def(self, '$in_ensure', $ScopeNode_in_ensure$48 = function $$in_ensure() { - var $iter = $ScopeNode_in_ensure$48.$$p, $yield = $iter || nil, self = this, result = nil; + $def(self, '$in_ensure', function $$in_ensure() { + var $yield = $$in_ensure.$$p || nil, self = this, result = nil; - if ($iter) $ScopeNode_in_ensure$48.$$p = null; + delete $$in_ensure.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return nil }; self.in_ensure = true; result = Opal.yieldX($yield, []); self.in_ensure = false; return result; - }, $ScopeNode_in_ensure$48.$$arity = 0); + }, 0); - Opal.def(self, '$in_ensure?', $ScopeNode_in_ensure$ques$49 = function() { + $def(self, '$in_ensure?', function $ScopeNode_in_ensure$ques$27() { var self = this; return self.in_ensure - }, $ScopeNode_in_ensure$ques$49.$$arity = 0); + }, 0); - Opal.def(self, '$gen_retry_id', $ScopeNode_gen_retry_id$50 = function $$gen_retry_id() { - var self = this, $ret_or_18 = nil; + $def(self, '$gen_retry_id', function $$gen_retry_id() { + var self = this, $ret_or_1 = nil; - self.next_retry_id = (function() {if ($truthy(($ret_or_18 = self.next_retry_id))) { - return $ret_or_18 - } else { - return "retry_0" - }; return nil; })(); + self.next_retry_id = ($truthy(($ret_or_1 = self.next_retry_id)) ? ($ret_or_1) : ("retry_0")); return (self.next_retry_id = self.next_retry_id.$succ()); - }, $ScopeNode_gen_retry_id$50.$$arity = 0); + }, 0); - Opal.def(self, '$accepts_using?', $ScopeNode_accepts_using$ques$51 = function() { + $def(self, '$accepts_using?', function $ScopeNode_accepts_using$ques$28() { var self = this; - return [$$($nesting, 'TopNode'), $$($nesting, 'ModuleNode'), $$($nesting, 'ClassNode'), $$($nesting, 'IterNode')]['$include?'](self.$class()) - }, $ScopeNode_accepts_using$ques$51.$$arity = 0); + return [$$('TopNode'), $$('ModuleNode'), $$('ClassNode'), $$('IterNode')]['$include?'](self.$class()) + }, 0); - Opal.def(self, '$collect_refinements_temps', $ScopeNode_collect_refinements_temps$52 = function $$collect_refinements_temps(temps) { + $def(self, '$collect_refinements_temps', function $$collect_refinements_temps(temps) { var self = this; - if (temps == null) { - temps = []; - }; + if (temps == null) temps = [];; if ($truthy(self.refinements_temp)) { - temps['$<<'](self.refinements_temp)}; + temps['$<<'](self.refinements_temp) + }; if ($truthy(self.$parent())) { - return self.$parent().$collect_refinements_temps(temps)}; + return self.$parent().$collect_refinements_temps(temps) + }; return temps; - }, $ScopeNode_collect_refinements_temps$52.$$arity = -1); + }, -1); - Opal.def(self, '$new_refinements_temp', $ScopeNode_new_refinements_temp$53 = function $$new_refinements_temp() { + $def(self, '$new_refinements_temp', function $$new_refinements_temp() { var self = this, var$ = nil; var$ = self.$compiler().$unique_temp("$refn"); self.$add_scope_local(var$); return var$; - }, $ScopeNode_new_refinements_temp$53.$$arity = 0); - return (Opal.def(self, '$refinements_temp', $ScopeNode_refinements_temp$54 = function $$refinements_temp() { + }, 0); + + $def(self, '$refinements_temp', function $$refinements_temp() { var $a, self = this, prev = nil, curr = nil; $a = [self.refinements_temp, self.$new_refinements_temp()], (prev = $a[0]), (curr = $a[1]), $a; self.refinements_temp = curr; return [prev, curr]; - }, $ScopeNode_refinements_temp$54.$$arity = 0), nil) && 'refinements_temp'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + + $def(self, '$self', function $$self() { + var self = this; + + + self.define_self = true; + return "self"; + }, 0); + + $def(self, '$nesting', function $$nesting() { + var self = this; + + + self.define_nesting = true; + return "$nesting"; + }, 0); + + $def(self, '$relative_access', function $$relative_access() { + var self = this; + + + self.define_relative_access = (self.define_nesting = true); + return "$$"; + }, 0); + + $def(self, '$prepare_block', function $$prepare_block(block_name) { + var self = this, scope_name = nil, $writer = nil; + + + + if (block_name == null) block_name = nil;; + scope_name = self.$scope().$identity(); + if ($truthy(block_name)) { + + $writer = [block_name]; + $send(self, 'block_name=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + self.$add_temp("" + (self.$block_name()) + " = " + (scope_name) + ".$$p || nil"); + if ($truthy(self.block_prepared)) { + return nil + } else { + + self.$line("delete " + (scope_name) + ".$$p;"); + return (self.block_prepared = true); + }; + }, -1); + return self.$attr_accessor("await_encountered"); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/module"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/module"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_ary = Opal.to_ary, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$name_and_base', '$helper', '$push', '$line', '$in_scope', '$name=', '$scope', '$-', '$compile_body', '$private', '$cid', '$nil?', '$expr', '$add_temp', '$stmt', '$returns', '$compiler', '$body', '$s', '$empty_line', '$to_vars']); + Opal.add_stubs('require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,line,in_scope,name=,scope,-,compile_body,await_encountered,await_encountered=,parent,+,nesting,private,cid,expr,stmt,returns,compiler,empty_line,add_temp,to_vars'); self.$require("opal/nodes/scope"); return (function($base, $parent_nesting) { @@ -35014,75 +31747,94 @@ Opal.modules["opal/nodes/module"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ModuleNode'); - var $nesting = [self].concat($parent_nesting), $ModuleNode_compile$1, $ModuleNode_name_and_base$3, $ModuleNode_compile_body$4; + var $proto = self.$$prototype; + $proto.define_nesting = $proto.define_relative_access = nil; self.$handle("module"); self.$children("cid", "body"); - Opal.def(self, '$compile', $ModuleNode_compile$1 = function $$compile() { - var $a, $b, $$2, self = this, name = nil, base = nil; + $def(self, '$compile', function $$compile() { + var $a, $b, self = this, name = nil, base = nil, await_begin = nil, await_end = nil, async = nil, $writer = nil; - $b = self.$name_and_base(), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$name_and_base(), $a = $to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; self.$helper("module"); - self.$push("(function($base, $parent_nesting) {"); - self.$line("" + " var self = $module($base, '" + (name) + "');"); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; - - + if ($truthy(self.$body()['$nil?']())) { + if ($truthy(self['$stmt?']())) { + return self.$unshift("$module(", base, ", '" + (name) + "')") + } else { + return self.$unshift("($module(", base, ", '" + (name) + "'), nil)") + } + } else { - $writer = [name]; - $send(self.$scope(), 'name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return self.$compile_body();}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - return self.$line("})(", base, ", $nesting)"); - }, $ModuleNode_compile$1.$$arity = 0); + self.$line(" var self = $module($base, '" + (name) + "');"); + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; + + + + $writer = [name]; + $send(self.$scope(), 'name=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$compile_body();}, {$$arity: 0, $$s: self}); + if ($truthy(self.$await_encountered())) { + + await_begin = "(await "; + await_end = ")"; + async = "async "; + + $writer = [true]; + $send(self.$parent(), 'await_encountered=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + } else { + $a = ["", "", ""], (await_begin = $a[0]), (await_end = $a[1]), (async = $a[2]), $a + }; + self.$unshift("" + (await_begin) + "(" + (async) + "function($base" + (($truthy(self.define_nesting) ? (", $parent_nesting") : nil)) + ") {"); + return self.$line("})(", base, "" + (($truthy(self.define_nesting) ? ($rb_plus(", ", self.$scope().$nesting())) : nil)) + ")" + (await_end)); + }; + }, 0); self.$private(); - Opal.def(self, '$name_and_base', $ModuleNode_name_and_base$3 = function $$name_and_base() { + $def(self, '$name_and_base', function $$name_and_base() { var $a, $b, self = this, base = nil, name = nil; - $b = self.$cid().$children(), $a = Opal.to_ary($b), (base = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$cid().$children(), $a = $to_ary($b), (base = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(base['$nil?']())) { - return [name, "$nesting[0]"] + return [name, "" + (self.$scope().$nesting()) + "[0]"] } else { return [name, self.$expr(base)] }; - }, $ModuleNode_name_and_base$3.$$arity = 0); - return (Opal.def(self, '$compile_body', $ModuleNode_compile_body$4 = function $$compile_body() { - var self = this, body_code = nil, $ret_or_1 = nil; + }, 0); + return $def(self, '$compile_body', function $$compile_body() { + var self = this, body_code = nil; - self.$add_temp("$nesting = [self].concat($parent_nesting)"); - body_code = self.$stmt(self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$body()))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })())); + body_code = self.$stmt(self.$compiler().$returns(self.$body())); self.$empty_line(); + if ($truthy(self.define_nesting)) { + self.$add_temp("$nesting = [self].concat($parent_nesting)") + }; + if ($truthy(self.define_relative_access)) { + self.$add_temp("$$ = Opal.$r($nesting)") + }; self.$line(self.$scope().$to_vars()); return self.$line(body_code); - }, $ModuleNode_compile_body$4.$$arity = 0), nil) && 'compile_body'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + }, 0); + })($nesting[0], $$('ScopeNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/class"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/class"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_ary = Opal.to_ary, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$name_and_base', '$helper', '$push', '$line', '$in_scope', '$name=', '$scope', '$-', '$compile_body', '$super_code', '$sup', '$expr']); + Opal.add_stubs('require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,super_code,line,in_scope,name=,scope,-,compile_body,await_encountered,await_encountered=,parent,+,nesting,sup,expr'); self.$require("opal/nodes/module"); return (function($base, $parent_nesting) { @@ -35093,36 +31845,58 @@ Opal.modules["opal/nodes/class"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ClassNode'); - var $nesting = [self].concat($parent_nesting), $ClassNode_compile$1, $ClassNode_super_code$3; + var $proto = self.$$prototype; + $proto.define_nesting = nil; self.$handle("class"); self.$children("cid", "sup", "body"); - Opal.def(self, '$compile', $ClassNode_compile$1 = function $$compile() { - var $a, $b, $$2, self = this, name = nil, base = nil; + $def(self, '$compile', function $$compile() { + var $a, $b, self = this, name = nil, base = nil, await_begin = nil, await_end = nil, async = nil, $writer = nil; - $b = self.$name_and_base(), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$name_and_base(), $a = $to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; self.$helper("klass"); - self.$push("(function($base, $super, $parent_nesting) {"); - self.$line("" + " var self = $klass($base, $super, '" + (name) + "');"); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; - - + if ($truthy(self.$body()['$nil?']())) { + if ($truthy(self['$stmt?']())) { + return self.$unshift("$klass(", base, ", ", self.$super_code(), ", '" + (name) + "')") + } else { + return self.$unshift("($klass(", base, ", ", self.$super_code(), ", '" + (name) + "'), nil)") + } + } else { - $writer = [name]; - $send(self.$scope(), 'name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return self.$compile_body();}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - return self.$line("})(", base, ", ", self.$super_code(), ", $nesting)"); - }, $ClassNode_compile$1.$$arity = 0); - return (Opal.def(self, '$super_code', $ClassNode_super_code$3 = function $$super_code() { + self.$line(" var self = $klass($base, $super, '" + (name) + "');"); + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; + + + + $writer = [name]; + $send(self.$scope(), 'name=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$compile_body();}, {$$arity: 0, $$s: self}); + if ($truthy(self.$await_encountered())) { + + await_begin = "(await "; + await_end = ")"; + async = "async "; + + $writer = [true]; + $send(self.$parent(), 'await_encountered=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + } else { + $a = ["", "", ""], (await_begin = $a[0]), (await_end = $a[1]), (async = $a[2]), $a + }; + self.$unshift("" + (await_begin) + "(" + (async) + "function($base, $super" + (($truthy(self.define_nesting) ? (", $parent_nesting") : nil)) + ") {"); + return self.$line("})(", base, ", ", self.$super_code(), "" + (($truthy(self.define_nesting) ? ($rb_plus(", ", self.$scope().$nesting())) : nil)) + ")" + (await_end)); + }; + }, 0); + return $def(self, '$super_code', function $$super_code() { var self = this; if ($truthy(self.$sup())) { @@ -35130,17 +31904,16 @@ Opal.modules["opal/nodes/class"] = function(Opal) { } else { return "null" } - }, $ClassNode_super_code$3.$$arity = 0), nil) && 'super_code'; - })($nesting[0], $$($nesting, 'ModuleNode'), $nesting) + }, 0); + })($nesting[0], $$('ModuleNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/singleton_class"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/singleton_class"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$in_scope', '$add_temp', '$stmt', '$returns', '$compiler', '$body', '$line', '$to_vars', '$scope', '$recv', '$object']); + Opal.add_stubs('require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting'); self.$require("opal/nodes/scope"); return (function($base, $parent_nesting) { @@ -35151,40 +31924,45 @@ Opal.modules["opal/nodes/singleton_class"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'SingletonClassNode'); - var $nesting = [self].concat($parent_nesting), $SingletonClassNode_compile$1; - + self.$handle("sclass"); self.$children("object", "body"); - return (Opal.def(self, '$compile', $SingletonClassNode_compile$1 = function $$compile() { - var $$2, self = this; + return $def(self, '$compile', function $$compile() { + var self = this; self.$push("(function(self, $parent_nesting) {"); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, body_stmt = nil; + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, body_stmt = nil; + if (self.define_nesting == null) self.define_nesting = nil; + if (self.define_relative_access == null) self.define_relative_access = nil; - self.$add_temp("$nesting = [self].concat($parent_nesting)"); body_stmt = self.$stmt(self.$compiler().$returns(self.$body())); + if ($truthy(self.define_nesting)) { + self.$add_temp("$nesting = [self].concat($parent_nesting)") + }; + if ($truthy(self.define_relative_access)) { + self.$add_temp("$$ = Opal.$r($nesting)") + }; self.$line(self.$scope().$to_vars()); - return self.$line(body_stmt);}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - return self.$line("})(Opal.get_singleton_class(", self.$recv(self.$object()), "), $nesting)"); - }, $SingletonClassNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + return self.$line(body_stmt);}, {$$arity: 0, $$s: self}); + return self.$line("})(Opal.get_singleton_class(", self.$recv(self.$object()), "), " + (self.$scope().$nesting()) + ")"); + }, 0); + })($nesting[0], $$('ScopeNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/arg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/arg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$add_arg', '$scope', '$name', '$push', '$to_s']); + Opal.add_stubs('require,handle,children,add_arg,scope,name,push,to_s'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35200,46 +31978,32 @@ Opal.modules["opal/nodes/args/arg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ArgNode'); - var $nesting = [self].concat($parent_nesting), $ArgNode_compile$1; - + self.$handle("arg"); self.$children("name"); - return (Opal.def(self, '$compile', $ArgNode_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$scope().$add_arg(self.$name()); return self.$push(self.$name().$to_s()); - }, $ArgNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy; - - Opal.add_stubs(['$require', '$handle', '$children', '$new', '$args_node', '$args', '$optargs', '$restarg', '$postargs', '$kwargs', '$kwoptargs', '$kwrestarg', '$kwnilarg', '$arity', '$arity=', '$scope', '$-', '$arity_check?', '$compiler', '$empty?', '$arity_checks', '$helper', '$inspect', '$to_s', '$mid', '$line', '$push', '$join', '$compact', '$size', '$all_args', '$!', '$-@', '$<', '$+', '$>', '$<<', '$any?', '$has_only_optional_kwargs?', '$negative_arity', '$positive_arity', '$select', '$include?', '$type', '$has_required_kwargs?', '$all?', '$==', '$def?', '$class_scope?', '$top?', '$parent', '$class?', '$name', '$module?', '$identity']); +Opal.modules["opal/nodes/args/arity_check"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $def = Opal.def, $send = Opal.send, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $not = Opal.not, $rb_lt = Opal.rb_lt, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt; + + Opal.add_stubs('require,handle,children,new,args_node,args,optargs,restarg,postargs,kwargs,kwoptargs,kwrestarg,kwnilarg,arity,arity=,scope,-,arity_check?,compiler,empty?,arity_checks,helper,inspect,to_s,mid,line,push,join,compact,size,all_args,!,-@,<,+,>,<<,has_only_optional_kwargs?,any?,negative_arity,positive_arity,select,include?,type,has_required_kwargs?,all?,==,def?,class_scope?,top?,parent,class?,name,module?,identity'); self.$require("opal/nodes/base"); self.$require("opal/rewriters/arguments"); @@ -35251,33 +32015,30 @@ Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ArityCheckNode'); - var $nesting = [self].concat($parent_nesting), $ArityCheckNode_initialize$1, $ArityCheckNode_compile$2, $ArityCheckNode_kwargs$3, $ArityCheckNode_all_args$4, $ArityCheckNode_arity_checks$5, $ArityCheckNode_arity$6, $ArityCheckNode_negative_arity$7, $ArityCheckNode_positive_arity$9, $ArityCheckNode_has_only_optional_kwargs$ques$10, $ArityCheckNode_has_required_kwargs$ques$12; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.kwargs = self.$$prototype.kwoptargs = self.$$prototype.kwrestarg = self.$$prototype.all_args = self.$$prototype.args = self.$$prototype.optargs = self.$$prototype.restarg = self.$$prototype.postargs = self.$$prototype.arity_checks = nil; + $proto.kwargs = $proto.kwoptargs = $proto.kwrestarg = $proto.all_args = $proto.args = $proto.optargs = $proto.restarg = $proto.postargs = $proto.arity_checks = nil; self.$handle("arity_check"); self.$children("args_node"); - Opal.def(self, '$initialize', $ArityCheckNode_initialize$1 = function $$initialize($a) { - var $post_args, $iter = $ArityCheckNode_initialize$1.$$p, $yield = $iter || nil, self = this, arguments$ = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this, arguments$ = nil; - if ($iter) $ArityCheckNode_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $ArityCheckNode_initialize$1, false, true), 'initialize', $zuper, $iter); - arguments$ = $$$($$($nesting, 'Rewriters'), 'Arguments').$new(self.$args_node().$children()); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + arguments$ = $$$($$('Rewriters'), 'Arguments').$new(self.$args_node().$children()); self.args = arguments$.$args(); self.optargs = arguments$.$optargs(); self.restarg = arguments$.$restarg(); @@ -35286,18 +32047,17 @@ Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { self.kwoptargs = arguments$.$kwoptargs(); self.kwrestarg = arguments$.$kwrestarg(); return (self.kwnilarg = arguments$.$kwnilarg()); - }, $ArityCheckNode_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$compile', $ArityCheckNode_compile$2 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this, $writer = nil, meth = nil; $writer = [self.$arity()]; - $send(self.$scope(), 'arity=', Opal.to_a($writer)); + $send(self.$scope(), 'arity=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(self.$compiler()['$arity_check?']())) { - } else { + if (!$truthy(self.$compiler()['$arity_check?']())) { return nil }; if ($truthy(self.$arity_checks()['$empty?']())) { @@ -35307,158 +32067,132 @@ Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { self.$helper("ac"); meth = self.$scope().$mid().$to_s().$inspect(); self.$line("var $arity = arguments.length;"); - return self.$push("" + " if (" + (self.$arity_checks().$join(" || ")) + ") { $ac($arity, " + (self.$arity()) + ", this, " + (meth) + "); }"); + return self.$push(" if (" + (self.$arity_checks().$join(" || ")) + ") { $ac($arity, " + (self.$arity()) + ", this, " + (meth) + "); }"); }; - }, $ArityCheckNode_compile$2.$$arity = 0); + }, 0); - Opal.def(self, '$kwargs', $ArityCheckNode_kwargs$3 = function $$kwargs() { + $def(self, '$kwargs', function $$kwargs() { var self = this; - return [].concat(Opal.to_a(self.kwargs)).concat(Opal.to_a(self.kwoptargs)).concat([self.kwrestarg]).$compact() - }, $ArityCheckNode_kwargs$3.$$arity = 0); + return [].concat($to_a(self.kwargs)).concat($to_a(self.kwoptargs)).concat([self.kwrestarg]).$compact() + }, 0); - Opal.def(self, '$all_args', $ArityCheckNode_all_args$4 = function $$all_args() { + $def(self, '$all_args', function $$all_args() { var self = this, $ret_or_1 = nil; - return (self.all_args = (function() {if ($truthy(($ret_or_1 = self.all_args))) { - return $ret_or_1 - } else { - return [].concat(Opal.to_a(self.args)).concat(Opal.to_a(self.optargs)).concat([self.restarg]).concat(Opal.to_a(self.postargs)).concat(Opal.to_a(self.$kwargs())).$compact() - }; return nil; })()) - }, $ArityCheckNode_all_args$4.$$arity = 0); + return (self.all_args = ($truthy(($ret_or_1 = self.all_args)) ? ($ret_or_1) : ([].concat($to_a(self.args)).concat($to_a(self.optargs)).concat([self.restarg]).concat($to_a(self.postargs)).concat($to_a(self.$kwargs())).$compact()))) + }, 0); - Opal.def(self, '$arity_checks', $ArityCheckNode_arity_checks$5 = function $$arity_checks() { - var $a, self = this, arity = nil, $ret_or_2 = nil, $ret_or_3 = nil, min_arity = nil, max_arity = nil; + $def(self, '$arity_checks', function $$arity_checks() { + var $a, self = this, arity = nil, min_arity = nil, max_arity = nil; if ($truthy((($a = self['arity_checks'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.arity_checks}; + return self.arity_checks + }; arity = self.$all_args().$size(); arity = $rb_minus(arity, self.optargs.$size()); if ($truthy(self.restarg)) { - arity = $rb_minus(arity, 1)}; + arity = $rb_minus(arity, 1) + }; arity = $rb_minus(arity, self.$kwargs().$size()); - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.optargs['$empty?']()['$!']()))) { - return $ret_or_3 - } else { - return self.$kwargs()['$empty?']()['$!']() - }; return nil; })()))) { - return $ret_or_2 - } else { - return self.restarg - }; return nil; })())) { - arity = $rb_minus(arity['$-@'](), 1)}; + if ((($not(self.optargs['$empty?']()) || ($not(self.$kwargs()['$empty?']()))) || ($truthy(self.restarg)))) { + arity = $rb_minus(arity['$-@'](), 1) + }; self.arity_checks = []; if ($truthy($rb_lt(arity, 0))) { min_arity = $rb_plus(arity, 1)['$-@'](); max_arity = self.$all_args().$size(); if ($truthy($rb_gt(min_arity, 0))) { - self.arity_checks['$<<']("" + "$arity < " + (min_arity))}; - if ($truthy(self.restarg)) { - } else { - self.arity_checks['$<<']("" + "$arity > " + (max_arity)) + self.arity_checks['$<<']("$arity < " + (min_arity)) + }; + if (!$truthy(self.restarg)) { + self.arity_checks['$<<']("$arity > " + (max_arity)) }; } else { - self.arity_checks['$<<']("" + "$arity !== " + (arity)) + self.arity_checks['$<<']("$arity !== " + (arity)) }; return self.arity_checks; - }, $ArityCheckNode_arity_checks$5.$$arity = 0); + }, 0); - Opal.def(self, '$arity', $ArityCheckNode_arity$6 = function $$arity() { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$arity', function $$arity() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.restarg))) { - return $ret_or_5 - } else { - return self.optargs['$any?']() - }; return nil; })()))) { - return $ret_or_4 - } else { - return self['$has_only_optional_kwargs?']() - }; return nil; })())) { + if ((($truthy(self.restarg) || ($truthy(self.optargs['$any?']()))) || ($truthy(self['$has_only_optional_kwargs?']())))) { return self.$negative_arity() } else { return self.$positive_arity() } - }, $ArityCheckNode_arity$6.$$arity = 0); + }, 0); - Opal.def(self, '$negative_arity', $ArityCheckNode_negative_arity$7 = function $$negative_arity() { - var $$8, self = this, required_plain_args = nil, result = nil; + $def(self, '$negative_arity', function $$negative_arity() { + var self = this, required_plain_args = nil, result = nil; - required_plain_args = $send(self.$all_args(), 'select', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; - + required_plain_args = $send(self.$all_args(), 'select', [], function $$1(arg){ - if (arg == null) { - arg = nil; - }; - return ["arg", "mlhs"]['$include?'](arg.$type());}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + if (arg == null) arg = nil;; + return ["arg", "mlhs"]['$include?'](arg.$type());}, 1); result = required_plain_args.$size(); if ($truthy(self['$has_required_kwargs?']())) { - result = $rb_plus(result, 1)}; + result = $rb_plus(result, 1) + }; result = $rb_minus(result['$-@'](), 1); return result; - }, $ArityCheckNode_negative_arity$7.$$arity = 0); + }, 0); - Opal.def(self, '$positive_arity', $ArityCheckNode_positive_arity$9 = function $$positive_arity() { + $def(self, '$positive_arity', function $$positive_arity() { var self = this, result = nil; result = self.$all_args().$size(); result = $rb_minus(result, self.$kwargs().$size()); if ($truthy(self.$kwargs()['$any?']())) { - result = $rb_plus(result, 1)}; + result = $rb_plus(result, 1) + }; return result; - }, $ArityCheckNode_positive_arity$9.$$arity = 0); + }, 0); - Opal.def(self, '$has_only_optional_kwargs?', $ArityCheckNode_has_only_optional_kwargs$ques$10 = function() { - var $$11, self = this, $ret_or_6 = nil; - - if ($truthy(($ret_or_6 = self.$kwargs()['$any?']()))) { - return $send(self.$kwargs(), 'all?', [], ($$11 = function(arg){var self = $$11.$$s == null ? this : $$11.$$s; + $def(self, '$has_only_optional_kwargs?', function $ArityCheckNode_has_only_optional_kwargs$ques$2() { + var self = this, $ret_or_1 = nil; + if ($truthy(($ret_or_1 = self.$kwargs()['$any?']()))) { + return $send(self.$kwargs(), 'all?', [], function $$3(arg){ - if (arg == null) { - arg = nil; - }; - return ["kwoptarg", "kwrestarg"]['$include?'](arg.$type());}, $$11.$$s = self, $$11.$$arity = 1, $$11)) + if (arg == null) arg = nil;; + return ["kwoptarg", "kwrestarg"]['$include?'](arg.$type());}, 1) } else { - return $ret_or_6 + return $ret_or_1 } - }, $ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity = 0); - return (Opal.def(self, '$has_required_kwargs?', $ArityCheckNode_has_required_kwargs$ques$12 = function() { - var $$13, self = this; - - return $send(self.$kwargs(), 'any?', [], ($$13 = function(arg){var self = $$13.$$s == null ? this : $$13.$$s; + }, 0); + return $def(self, '$has_required_kwargs?', function $ArityCheckNode_has_required_kwargs$ques$4() { + var self = this; + return $send(self.$kwargs(), 'any?', [], function $$5(arg){ - if (arg == null) { - arg = nil; - }; - return arg.$type()['$==']("kwarg");}, $$13.$$s = self, $$13.$$arity = 1, $$13)) - }, $ArityCheckNode_has_required_kwargs$ques$12.$$arity = 0), nil) && 'has_required_kwargs?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + if (arg == null) arg = nil;; + return arg.$type()['$==']("kwarg");}, 1) + }, 0); + })($nesting[0], $$('Base'), $nesting); + return (function($base, $super) { var self = $klass($base, $super, 'IterArityCheckNode'); - var $nesting = [self].concat($parent_nesting), $IterArityCheckNode_compile$14; - + self.$handle("iter_arity_check"); - return (Opal.def(self, '$compile', $IterArityCheckNode_compile$14 = function $$compile() { - var $a, self = this, $writer = nil, parent_scope = nil, $ret_or_7 = nil, $ret_or_8 = nil, context = nil, identity = nil; + return $def(self, '$compile', function $$compile() { + var $a, self = this, $writer = nil, parent_scope = nil, $ret_or_1 = nil, $ret_or_2 = nil, context = nil, identity = nil; $writer = [self.$arity()]; - $send(self.$scope(), 'arity=', Opal.to_a($writer)); + $send(self.$scope(), 'arity=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(self.$compiler()['$arity_check?']())) { - } else { + if (!$truthy(self.$compiler()['$arity_check?']())) { return nil }; if ($truthy(self.$arity_checks()['$empty?']())) { @@ -35466,45 +32200,26 @@ Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { } else { parent_scope = self.$scope(); - while (!($truthy((function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = parent_scope['$def?']()))) { - return $ret_or_8 - } else { - return parent_scope['$class_scope?']() - }; return nil; })()))) { - return $ret_or_7 - } else { - return parent_scope['$top?']() - }; return nil; })()))) { + while (!($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = parent_scope['$def?']())) ? ($ret_or_2) : (parent_scope['$class_scope?']())))) ? ($ret_or_1) : (parent_scope['$top?']()))))) { parent_scope = parent_scope.$parent() }; - context = (function() {if ($truthy(parent_scope['$top?']())) { - return "'
    '" - } else if ($truthy(parent_scope['$def?']())) { - return "" + "'" + (parent_scope.$mid()) + "'" - } else if ($truthy(parent_scope['$class?']())) { - return "" + "''" - } else if ($truthy(parent_scope['$module?']())) { - return "" + "''" - } else { - return nil - }; return nil; })(); + context = ($truthy(parent_scope['$top?']()) ? ("'
    '") : ($truthy(parent_scope['$def?']()) ? ("'" + (parent_scope.$mid()) + "'") : ($truthy(parent_scope['$class?']()) ? ("''") : ($truthy(parent_scope['$module?']()) ? ("''") : nil)))); identity = self.$scope().$identity(); - self.$line("" + "if (" + (identity) + ".$$is_lambda || " + (identity) + ".$$define_meth) {"); + self.$line("if (" + (identity) + ".$$is_lambda || " + (identity) + ".$$define_meth) {"); self.$line(" var $arity = arguments.length;"); - self.$line("" + " if (" + (self.$arity_checks().$join(" || ")) + ") { Opal.block_ac($arity, " + (self.$arity()) + ", " + (context) + "); }"); + self.$line(" if (" + (self.$arity_checks().$join(" || ")) + ") { Opal.block_ac($arity, " + (self.$arity()) + ", " + (context) + "); }"); return self.$line("}"); }; - }, $IterArityCheckNode_compile$14.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'ArityCheckNode'), $nesting); + }, 0); + })($nesting[0], $$('ArityCheckNode')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$helper', '$line']); + Opal.add_stubs('require,handle,helper,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35520,16 +32235,15 @@ Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'EnsureKwargsAreKwargs'); - var $nesting = [self].concat($parent_nesting), $EnsureKwargsAreKwargs_compile$1; - + self.$handle("ensure_kwargs_are_kwargs"); - return (Opal.def(self, '$compile', $EnsureKwargsAreKwargs_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; @@ -35539,21 +32253,17 @@ Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) { self.$line("} else if (!$kwargs.$$is_hash) {"); self.$line(" throw Opal.ArgumentError.$new('expected kwargs');"); return self.$line("}"); - }, $EnsureKwargsAreKwargs_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_block_arg"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/args/extract_block_arg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$uses_block!', '$scope', '$add_arg', '$name', '$block_name=', '$-', '$identity', '$block_name', '$add_temp', '$line']); + Opal.add_stubs('require,handle,children,uses_block!,scope,add_arg,name,prepare_block'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35569,43 +32279,33 @@ Opal.modules["opal/nodes/args/extract_block_arg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractBlockarg'); - var $nesting = [self].concat($parent_nesting), $ExtractBlockarg_compile$1; - + self.$handle("extract_blockarg"); self.$children("name"); - return (Opal.def(self, '$compile', $ExtractBlockarg_compile$1 = function $$compile() { - var self = this, $writer = nil, scope_name = nil, yielder = nil; + return $def(self, '$compile', function $$compile() { + var self = this; self.$scope()['$uses_block!'](); self.$scope().$add_arg(self.$name()); - - $writer = [self.$name()]; - $send(self.$scope(), 'block_name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - scope_name = self.$scope().$identity(); - yielder = self.$scope().$block_name(); - self.$add_temp("" + "$iter = " + (scope_name) + ".$$p"); - self.$add_temp("" + (yielder) + " = $iter || nil"); - return self.$line("" + "if ($iter) " + (scope_name) + ".$$p = null;"); - }, $ExtractBlockarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$scope().$prepare_block(self.$name()); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_kwarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_kwarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$<<', '$used_kwargs', '$scope', '$add_temp', '$lvar_name', '$line', '$inspect', '$to_s']); + Opal.add_stubs('require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35621,40 +32321,39 @@ Opal.modules["opal/nodes/args/extract_kwarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractKwarg'); - var $nesting = [self].concat($parent_nesting), $ExtractKwarg_compile$1; + var $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; self.$handle("extract_kwarg"); self.$children("lvar_name"); - return (Opal.def(self, '$compile', $ExtractKwarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, key_name = nil; key_name = self.sexp.$meta()['$[]']("arg_name"); self.$scope().$used_kwargs()['$<<'](key_name); self.$add_temp(self.$lvar_name()); - self.$line("" + "if (!Opal.hasOwnProperty.call($kwargs.$$smap, '" + (key_name) + "')) {"); - self.$line("" + " throw Opal.ArgumentError.$new('missing keyword: " + (key_name) + "');"); + self.$line("if (!Opal.hasOwnProperty.call($kwargs.$$smap, '" + (key_name) + "')) {"); + self.$line(" throw Opal.ArgumentError.$new('missing keyword: " + (key_name) + "');"); self.$line("}"); return self.$line("" + (self.$lvar_name()) + " = $kwargs.$$smap[" + (key_name.$to_s().$inspect()) + "];"); - }, $ExtractKwarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_kwargs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_kwargs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$add_temp', '$line']); + Opal.add_stubs('require,handle,add_temp,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35670,33 +32369,31 @@ Opal.modules["opal/nodes/args/extract_kwargs"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractKwargs'); - var $nesting = [self].concat($parent_nesting), $ExtractKwargs_compile$1; - + self.$handle("extract_kwargs"); - return (Opal.def(self, '$compile', $ExtractKwargs_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_temp("$kwargs"); return self.$line("$kwargs = Opal.extract_kwargs($post_args)"); - }, $ExtractKwargs_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$<<', '$used_kwargs', '$scope', '$add_temp', '$lvar_name', '$line', '$inspect', '$to_s', '$==', '$default_value', '$expr']); + Opal.add_stubs('require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,expr'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35712,18 +32409,18 @@ Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractKwoptarg'); - var $nesting = [self].concat($parent_nesting), $ExtractKwoptarg_compile$1; + var $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; self.$handle("extract_kwoptarg"); self.$children("lvar_name", "default_value"); - return (Opal.def(self, '$compile', $ExtractKwoptarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, key_name = nil; @@ -35731,23 +32428,21 @@ Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) { self.$scope().$used_kwargs()['$<<'](key_name); self.$add_temp(self.$lvar_name()); self.$line("" + (self.$lvar_name()) + " = $kwargs.$$smap[" + (key_name.$to_s().$inspect()) + "];"); - if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { - return nil}; - self.$line("" + "if (" + (self.$lvar_name()) + " == null) {"); - self.$line("" + " " + (self.$lvar_name()) + " = ", self.$expr(self.$default_value())); - return self.$line("}"); - }, $ExtractKwoptarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if ($eqeq(self.$default_value().$children()['$[]'](1), "undefined")) { + return nil + }; + return self.$line("if (" + (self.$lvar_name()) + " == null) " + (self.$lvar_name()) + " = ", self.$expr(self.$default_value())); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_kwrestarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/args/extract_kwrestarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$children', '$name', '$add_temp', '$line', '$used_kwargs', '$map', '$scope', '$join']); + Opal.add_stubs('require,handle,children,name,add_temp,line,used_kwargs,map,scope,join'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35763,53 +32458,45 @@ Opal.modules["opal/nodes/args/extract_kwrestarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractKwrestarg'); - var $nesting = [self].concat($parent_nesting), $ExtractKwrestarg_compile$1, $ExtractKwrestarg_used_kwargs$2; - + self.$handle("extract_kwrestarg"); self.$children("name"); - Opal.def(self, '$compile', $ExtractKwrestarg_compile$1 = function $$compile() { - var self = this; - - if ($truthy(self.$name())) { - - self.$add_temp(self.$name()); - return self.$line("" + (self.$name()) + " = Opal.kwrestargs($kwargs, " + (self.$used_kwargs()) + ");"); - } else { - return nil - } - }, $ExtractKwrestarg_compile$1.$$arity = 0); - return (Opal.def(self, '$used_kwargs', $ExtractKwrestarg_used_kwargs$2 = function $$used_kwargs() { - var $$3, self = this, args = nil; + $def(self, '$compile', function $$compile() { + var self = this, name = nil, $ret_or_1 = nil; - args = $send(self.$scope().$used_kwargs(), 'map', [], ($$3 = function(arg_name){var self = $$3.$$s == null ? this : $$3.$$s; + name = ($truthy(($ret_or_1 = self.$name())) ? ($ret_or_1) : ("$kw_rest_arg")); + self.$add_temp(name); + return self.$line("" + (name) + " = Opal.kwrestargs($kwargs, " + (self.$used_kwargs()) + ");"); + }, 0); + return $def(self, '$used_kwargs', function $$used_kwargs() { + var self = this, args = nil; + + args = $send(self.$scope().$used_kwargs(), 'map', [], function $$1(arg_name){ - if (arg_name == null) { - arg_name = nil; - }; - return "" + "'" + (arg_name) + "': true";}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - return "" + "{" + (args.$join(",")) + "}"; - }, $ExtractKwrestarg_used_kwargs$2.$$arity = 0), nil) && 'used_kwargs'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if (arg_name == null) arg_name = nil;; + return "'" + (arg_name) + "': true";}, 1); + return "{" + (args.$join(",")) + "}"; + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_optarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_optarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$==', '$[]', '$default_value', '$line', '$name', '$expr']); + Opal.add_stubs('require,handle,children,==,[],default_value,line,name,expr'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35825,37 +32512,34 @@ Opal.modules["opal/nodes/args/extract_optarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractOptargNode'); - var $nesting = [self].concat($parent_nesting), $ExtractOptargNode_compile$1; - + self.$handle("extract_optarg"); self.$children("name", "default_value"); - return (Opal.def(self, '$compile', $ExtractOptargNode_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { - return nil}; - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); - return self.$line("}"); - }, $ExtractOptargNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if ($eqeq(self.$default_value().$children()['$[]'](1), "undefined")) { + return nil + }; + return self.$line("if (" + (self.$name()) + " == null) " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_post_arg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_post_arg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$name', '$line']); + Opal.add_stubs('require,handle,children,add_temp,name,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35871,38 +32555,33 @@ Opal.modules["opal/nodes/args/extract_post_arg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractPostArg'); - var $nesting = [self].concat($parent_nesting), $ExtractPostArg_compile$1; - + self.$handle("extract_post_arg"); self.$children("name"); - return (Opal.def(self, '$compile', $ExtractPostArg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_temp(self.$name()); - self.$line("" + (self.$name()) + " = $post_args[0];"); - self.$line("$post_args.splice(0, 1);"); - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = nil"); - return self.$line("}"); - }, $ExtractPostArg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + self.$line("" + (self.$name()) + " = $post_args.shift();"); + return self.$line("if (" + (self.$name()) + " == null) " + (self.$name()) + " = nil;"); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_post_optarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_post_optarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$name', '$line', '$args_to_keep', '$==', '$[]', '$default_value', '$expr']); + Opal.add_stubs('require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,expr'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35918,42 +32597,36 @@ Opal.modules["opal/nodes/args/extract_post_optarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractPostOptarg'); - var $nesting = [self].concat($parent_nesting), $ExtractPostOptarg_compile$1; - + self.$handle("extract_post_optarg"); self.$children("name", "default_value", "args_to_keep"); - return (Opal.def(self, '$compile', $ExtractPostOptarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_temp(self.$name()); - self.$line("" + "if ($post_args.length > " + (self.$args_to_keep()) + ") {"); - self.$line("" + " " + (self.$name()) + " = $post_args[0];"); - self.$line(" $post_args.splice(0, 1);"); - self.$line("}"); - if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { - return nil}; - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); - return self.$line("}"); - }, $ExtractPostOptarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + self.$line("if ($post_args.length > " + (self.$args_to_keep()) + ") " + (self.$name()) + " = $post_args.shift();"); + if ($eqeq(self.$default_value().$children()['$[]'](1), "undefined")) { + return nil + }; + return self.$line("if (" + (self.$name()) + " == null) " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_restarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/extract_restarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$name', '$add_temp', '$==', '$args_to_keep', '$line', '$!=']); + Opal.add_stubs('require,handle,children,name,add_temp,==,args_to_keep,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35969,44 +32642,37 @@ Opal.modules["opal/nodes/args/extract_restarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractRestarg'); - var $nesting = [self].concat($parent_nesting), $ExtractRestarg_compile$1; - + self.$handle("extract_restarg"); self.$children("name", "args_to_keep"); - return (Opal.def(self, '$compile', $ExtractRestarg_compile$1 = function $$compile() { - var self = this; + return $def(self, '$compile', function $$compile() { + var self = this, name = nil, $ret_or_1 = nil; - if ($truthy(self.$name())) { - - self.$add_temp(self.$name()); - if (self.$args_to_keep()['$=='](0)) { - return self.$line("" + (self.$name()) + " = $post_args;") - } else { - return self.$line("" + (self.$name()) + " = $post_args.splice(0, $post_args.length - " + (self.$args_to_keep()) + ");") - }; - } else if ($truthy(self.$args_to_keep()['$!='](0))) { - return self.$line("" + "$post_args.splice(0, $post_args.length - " + (self.$args_to_keep()) + ");") + + name = ($truthy(($ret_or_1 = self.$name())) ? ($ret_or_1) : ("$rest_arg")); + self.$add_temp(name); + if ($eqeq(self.$args_to_keep(), 0)) { + return self.$line("" + (name) + " = $post_args;") } else { - return nil - } - }, $ExtractRestarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$line("" + (name) + " = $post_args.splice(0, $post_args.length - " + (self.$args_to_keep()) + ");") + }; + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/fake_arg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/fake_arg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$next_temp', '$scope', '$add_arg', '$push']); + Opal.add_stubs('require,handle,next_temp,scope,add_arg,push'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -36022,34 +32688,32 @@ Opal.modules["opal/nodes/args/fake_arg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'FakeArgNode'); - var $nesting = [self].concat($parent_nesting), $FakeArgNode_compile$1; - + self.$handle("fake_arg"); - return (Opal.def(self, '$compile', $FakeArgNode_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, name = nil; name = self.$scope().$next_temp(); self.$scope().$add_arg(name); return self.$push(name); - }, $FakeArgNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/initialize_iterarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/initialize_iterarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$line', '$name']); + Opal.add_stubs('require,handle,children,line,name'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -36065,35 +32729,30 @@ Opal.modules["opal/nodes/args/initialize_iterarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'InitializeIterarg'); - var $nesting = [self].concat($parent_nesting), $InitializeIterarg_compile$1; - + self.$handle("initialize_iter_arg"); self.$children("name"); - return (Opal.def(self, '$compile', $InitializeIterarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = nil;"); - return self.$line("}"); - }, $InitializeIterarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$line("if (" + (self.$name()) + " == null) " + (self.$name()) + " = nil;") + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/initialize_shadowarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/initialize_shadowarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$<<', '$locals', '$scope', '$name', '$add_arg', '$line']); + Opal.add_stubs('require,handle,children,<<,locals,scope,name,add_arg,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -36109,35 +32768,33 @@ Opal.modules["opal/nodes/args/initialize_shadowarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'InitializeShadowarg'); - var $nesting = [self].concat($parent_nesting), $InitializeShadowarg_compile$1; - + self.$handle("initialize_shadowarg"); self.$children("name"); - return (Opal.def(self, '$compile', $InitializeShadowarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$scope().$locals()['$<<'](self.$name()); self.$scope().$add_arg(self.$name()); return self.$line("" + (self.$name()) + " = nil;"); - }, $InitializeShadowarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/parameters"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/parameters"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $truthy = Opal.truthy, $eqeq = Opal.eqeq; - Opal.add_stubs(['$children', '$map', '$public_send', '$type', '$join', '$compact', '$==']); + Opal.add_stubs('children,map,public_send,type,join,compact,=='); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -36153,132 +32810,119 @@ Opal.modules["opal/nodes/args/parameters"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Parameters'); - var $nesting = [self].concat($parent_nesting), $Parameters_initialize$1, $Parameters_to_code$2, $Parameters_on_arg$4, $Parameters_on_mlhs$5, $Parameters_on_optarg$6, $Parameters_on_restarg$7, $Parameters_on_kwarg$8, $Parameters_on_kwoptarg$9, $Parameters_on_kwrestarg$10, $Parameters_on_blockarg$11, $Parameters_on_kwnilarg$12, $Parameters_on_shadowarg$13; + var $proto = self.$$prototype; - self.$$prototype.args = nil; + $proto.args = nil; - Opal.def(self, '$initialize', $Parameters_initialize$1 = function $$initialize(args) { + $def(self, '$initialize', function $$initialize(args) { var self = this; return (self.args = args.$children()) - }, $Parameters_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$to_code', $Parameters_to_code$2 = function $$to_code() { - var $$3, self = this, stringified_parameters = nil; + $def(self, '$to_code', function $$to_code() { + var self = this, stringified_parameters = nil; - stringified_parameters = $send(self.args, 'map', [], ($$3 = function(arg){var self = $$3.$$s == null ? this : $$3.$$s; + stringified_parameters = $send(self.args, 'map', [], function $$1(arg){var self = $$1.$$s == null ? this : $$1.$$s; - if (arg == null) { - arg = nil; - }; - return $send(self, 'public_send', ["" + "on_" + (arg.$type())].concat(Opal.to_a(arg)));}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - return "" + "[" + (stringified_parameters.$compact().$join(", ")) + "]"; - }, $Parameters_to_code$2.$$arity = 0); + if (arg == null) arg = nil;; + return $send(self, 'public_send', ["on_" + (arg.$type())].concat($to_a(arg)));}, {$$arity: 1, $$s: self}); + return "[" + (stringified_parameters.$compact().$join(", ")) + "]"; + }, 0); - Opal.def(self, '$on_arg', $Parameters_on_arg$4 = function $$on_arg(arg_name) { - var self = this; - - return "" + "['req', '" + (arg_name) + "']" - }, $Parameters_on_arg$4.$$arity = 1); + $def(self, '$on_arg', function $$on_arg(arg_name) { + + return "['req', '" + (arg_name) + "']" + }, 1); - Opal.def(self, '$on_mlhs', $Parameters_on_mlhs$5 = function $$on_mlhs($a) { - var $post_args, self = this; + $def(self, '$on_mlhs', function $$on_mlhs($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return "['req']"; - }, $Parameters_on_mlhs$5.$$arity = -1); + }, -1); - Opal.def(self, '$on_optarg', $Parameters_on_optarg$6 = function $$on_optarg(arg_name, _default_value) { - var self = this; - - return "" + "['opt', '" + (arg_name) + "']" - }, $Parameters_on_optarg$6.$$arity = 2); + $def(self, '$on_optarg', function $$on_optarg(arg_name, _default_value) { + + return "['opt', '" + (arg_name) + "']" + }, 2); - Opal.def(self, '$on_restarg', $Parameters_on_restarg$7 = function $$on_restarg(arg_name) { - var self = this; - + $def(self, '$on_restarg', function $$on_restarg(arg_name) { - if (arg_name == null) { - arg_name = nil; - }; + + if (arg_name == null) arg_name = nil;; if ($truthy(arg_name)) { - if (arg_name['$==']("fwd_rest_arg")) { - arg_name = "*"}; - return "" + "['rest', '" + (arg_name) + "']"; + if ($eqeq(arg_name, "fwd_rest_arg")) { + arg_name = "*" + }; + return "['rest', '" + (arg_name) + "']"; } else { return "['rest']" }; - }, $Parameters_on_restarg$7.$$arity = -1); + }, -1); - Opal.def(self, '$on_kwarg', $Parameters_on_kwarg$8 = function $$on_kwarg(arg_name) { - var self = this; - - return "" + "['keyreq', '" + (arg_name) + "']" - }, $Parameters_on_kwarg$8.$$arity = 1); + $def(self, '$on_kwarg', function $$on_kwarg(arg_name) { + + return "['keyreq', '" + (arg_name) + "']" + }, 1); - Opal.def(self, '$on_kwoptarg', $Parameters_on_kwoptarg$9 = function $$on_kwoptarg(arg_name, _default_value) { - var self = this; - - return "" + "['key', '" + (arg_name) + "']" - }, $Parameters_on_kwoptarg$9.$$arity = 2); + $def(self, '$on_kwoptarg', function $$on_kwoptarg(arg_name, _default_value) { + + return "['key', '" + (arg_name) + "']" + }, 2); - Opal.def(self, '$on_kwrestarg', $Parameters_on_kwrestarg$10 = function $$on_kwrestarg(arg_name) { - var self = this; - + $def(self, '$on_kwrestarg', function $$on_kwrestarg(arg_name) { - if (arg_name == null) { - arg_name = nil; - }; + + if (arg_name == null) arg_name = nil;; if ($truthy(arg_name)) { - return "" + "['keyrest', '" + (arg_name) + "']" + return "['keyrest', '" + (arg_name) + "']" } else { return "['keyrest']" }; - }, $Parameters_on_kwrestarg$10.$$arity = -1); + }, -1); - Opal.def(self, '$on_blockarg', $Parameters_on_blockarg$11 = function $$on_blockarg(arg_name) { - var self = this; - + $def(self, '$on_blockarg', function $$on_blockarg(arg_name) { - if (arg_name['$==']("fwd_block_arg")) { - arg_name = "&"}; - return "" + "['block', '" + (arg_name) + "']"; - }, $Parameters_on_blockarg$11.$$arity = 1); + + if ($eqeq(arg_name, "fwd_block_arg")) { + arg_name = "&" + }; + return "['block', '" + (arg_name) + "']"; + }, 1); - Opal.def(self, '$on_kwnilarg', $Parameters_on_kwnilarg$12 = function $$on_kwnilarg() { - var self = this; - + $def(self, '$on_kwnilarg', function $$on_kwnilarg() { + return "['nokey']" - }, $Parameters_on_kwnilarg$12.$$arity = 0); - return (Opal.def(self, '$on_shadowarg', $Parameters_on_shadowarg$13 = function $$on_shadowarg(_arg_name) { - var self = this; - + }, 0); + return $def(self, '$on_shadowarg', function $$on_shadowarg(_arg_name) { + return nil - }, $Parameters_on_shadowarg$13.$$arity = 1), nil) && 'on_shadowarg'; - })($nesting[0], null, $nesting) + }, 1); + })($nesting[0], null) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/prepare_post_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/prepare_post_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$line', '$offset']); + Opal.add_stubs('require,handle,children,add_temp,==,offset,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -36294,43 +32938,36 @@ Opal.modules["opal/nodes/args/prepare_post_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'PreparePostArgs'); - var $nesting = [self].concat($parent_nesting), $PreparePostArgs_compile$1; - + self.$handle("prepare_post_args"); self.$children("offset"); - return (Opal.def(self, '$compile', $PreparePostArgs_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_temp("$post_args"); - return self.$line("" + "$post_args = Opal.slice.call(arguments, " + (self.$offset()) + ", arguments.length)"); - }, $PreparePostArgs_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if ($eqeq(self.$offset(), 0)) { + return self.$line("$post_args = Opal.slice.call(arguments)") + } else { + return self.$line("$post_args = Opal.slice.call(arguments, " + (self.$offset()) + ")") + }; + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; - - Opal.add_stubs(['$require', '$handle', '$each_with_index', '$children', '$multiple_underscore?', '$[]', '$[]=', '$-', '$+', '$>', '$s', '$type', '$!=', '$push', '$process', '$==', '$count', '$start_with?', '$to_s', '$first']); +Opal.modules["opal/nodes/args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt, $neqeq = Opal.neqeq, $def = Opal.def; + + Opal.add_stubs('require,handle,each_with_index,children,multiple_underscore?,[],[]=,-,+,>,s,type,!=,push,process,==,count,start_with?,to_s,first'); self.$require("opal/nodes/base"); self.$require("opal/nodes/args/arg"); @@ -36358,32 +32995,27 @@ Opal.modules["opal/nodes/args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ArgsNode'); - var $nesting = [self].concat($parent_nesting), $ArgsNode_compile$1, $ArgsNode_multiple_underscore$ques$3; - + self.$handle("args"); - Opal.def(self, '$compile', $ArgsNode_compile$1 = function $$compile() { - var $$2, self = this, same_arg_counter = nil; + $def(self, '$compile', function $$compile() { + var self = this, same_arg_counter = nil; same_arg_counter = $hash2([], {}); - return $send(self.$children(), 'each_with_index', [], ($$2 = function(arg, idx){var self = $$2.$$s == null ? this : $$2.$$s, $ret_or_1 = nil, $writer = nil; + return $send(self.$children(), 'each_with_index', [], function $$1(arg, idx){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil, $writer = nil; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; - if (idx == null) { - idx = nil; - }; + if (idx == null) idx = nil;; if ($truthy(self['$multiple_underscore?'](arg))) { if ($truthy(($ret_or_1 = same_arg_counter['$[]'](arg)))) { @@ -36391,46 +33023,40 @@ Opal.modules["opal/nodes/args"] = function(Opal) { } else { $writer = [arg, 0]; - $send(same_arg_counter, '[]=', Opal.to_a($writer)); + $send(same_arg_counter, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; $writer = [arg, $rb_plus(same_arg_counter['$[]'](arg), 1)]; - $send(same_arg_counter, '[]=', Opal.to_a($writer)); + $send(same_arg_counter, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy($rb_gt(same_arg_counter['$[]'](arg), 1))) { - arg = self.$s(arg.$type(), "" + (arg.$children()['$[]'](0)) + "_$" + (same_arg_counter['$[]'](arg)))};}; - if ($truthy(idx['$!='](0))) { - self.$push(", ")}; - return self.$push(self.$process(arg));}, $$2.$$s = self, $$2.$$arity = 2, $$2)); - }, $ArgsNode_compile$1.$$arity = 0); - return (Opal.def(self, '$multiple_underscore?', $ArgsNode_multiple_underscore$ques$3 = function(arg) { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; - - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = arg.$type()['$==']("arg")))) { - return arg.$children().$count()['$=='](1) - } else { - return $ret_or_4 - }; return nil; })()))) { - return arg.$children().$first().$to_s()['$start_with?']("_") - } else { - return $ret_or_3 - }; return nil; })()))) { + arg = self.$s(arg.$type(), "" + (arg.$children()['$[]'](0)) + "_$" + (same_arg_counter['$[]'](arg))) + }; + }; + if ($neqeq(idx, 0)) { + self.$push(", ") + }; + return self.$push(self.$process(arg));}, {$$arity: 2, $$s: self}); + }, 0); + return $def(self, '$multiple_underscore?', function $ArgsNode_multiple_underscore$ques$2(arg) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = arg.$type()['$==']("arg"))) ? (arg.$children().$count()['$=='](1)) : ($ret_or_3)))) ? (arg.$children().$first().$to_s()['$start_with?']("_")) : ($ret_or_2))))) { return $rb_gt(self.$children().$count(arg), 1) } else { - return $ret_or_2 + return $ret_or_1 } - }, $ArgsNode_multiple_underscore$ques$3.$$arity = 1), nil) && 'multiple_underscore?'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/node_with_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; +Opal.modules["opal/nodes/node_with_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $def = Opal.def, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$attr_reader', '$attr_accessor', '$[]', '$meta', '$s', '$original_args', '$push', '$process', '$arity_check_node', '$uses_block?', '$scope', '$identity', '$block_name', '$add_temp', '$line', '$to_code', '$new']); + Opal.add_stubs('require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new'); self.$require("opal/nodes/scope"); self.$require("opal/nodes/args/parameters"); @@ -36442,85 +33068,69 @@ Opal.modules["opal/nodes/node_with_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'NodeWithArgs'); - var $nesting = [self].concat($parent_nesting), $NodeWithArgs_initialize$1, $NodeWithArgs_arity_check_node$2, $NodeWithArgs_compile_arity_check$3, $NodeWithArgs_compile_block_arg$4, $NodeWithArgs_parameters_code$5; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; self.$attr_reader("used_kwargs"); self.$attr_accessor("arity"); self.$attr_reader("original_args"); - Opal.def(self, '$initialize', $NodeWithArgs_initialize$1 = function $$initialize($a) { - var $post_args, $iter = $NodeWithArgs_initialize$1.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $NodeWithArgs_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $NodeWithArgs_initialize$1, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); self.original_args = self.sexp.$meta()['$[]']("original_args"); self.used_kwargs = []; return (self.arity = 0); - }, $NodeWithArgs_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$arity_check_node', $NodeWithArgs_arity_check_node$2 = function $$arity_check_node() { + $def(self, '$arity_check_node', function $$arity_check_node() { var self = this; return self.$s("arity_check", self.$original_args()) - }, $NodeWithArgs_arity_check_node$2.$$arity = 0); + }, 0); - Opal.def(self, '$compile_arity_check', $NodeWithArgs_compile_arity_check$3 = function $$compile_arity_check() { + $def(self, '$compile_arity_check', function $$compile_arity_check() { var self = this; return self.$push(self.$process(self.$arity_check_node())) - }, $NodeWithArgs_compile_arity_check$3.$$arity = 0); + }, 0); - Opal.def(self, '$compile_block_arg', $NodeWithArgs_compile_block_arg$4 = function $$compile_block_arg() { - var self = this, scope_name = nil, yielder = nil, $ret_or_1 = nil; + $def(self, '$compile_block_arg', function $$compile_block_arg() { + var self = this; if ($truthy(self.$scope()['$uses_block?']())) { - - scope_name = self.$scope().$identity(); - yielder = (function() {if ($truthy(($ret_or_1 = self.$scope().$block_name()))) { - return $ret_or_1 - } else { - return "$yield" - }; return nil; })(); - self.$add_temp("" + "$iter = " + (scope_name) + ".$$p"); - self.$add_temp("" + (yielder) + " = $iter || nil"); - return self.$line("" + "if ($iter) " + (scope_name) + ".$$p = null;"); + return self.$scope().$prepare_block() } else { return nil } - }, $NodeWithArgs_compile_block_arg$4.$$arity = 0); - return (Opal.def(self, '$parameters_code', $NodeWithArgs_parameters_code$5 = function $$parameters_code() { + }, 0); + return $def(self, '$parameters_code', function $$parameters_code() { var self = this; - return $$$($$($nesting, 'Args'), 'Parameters').$new(self.$original_args()).$to_code() - }, $NodeWithArgs_parameters_code$5.$$arity = 0), nil) && 'parameters_code'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + return $$$($$('Args'), 'Parameters').$new(self.$original_args()).$to_code() + }, 0); + })($nesting[0], $$('ScopeNode'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/iter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/iter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $eqeq = Opal.eqeq, $rb_gt = Opal.rb_gt, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$lambda_definition?', '$scope', '$is_lambda!', '$in_scope', '$identify!', '$add_temp', '$process', '$inline_args', '$compile_arity_check', '$stmt', '$returned_body', '$to_vars', '$line', '$catch_return', '$unshift', '$push', '$contains_break?', '$arity', '$arity_check?', '$compiler', '$parameters_code', '$has_top_level_mlhs_arg?', '$has_trailing_comma_in_args?', '$block_arg', '$block_name=', '$-', '$each', '$args', '$first', '$==', '$<<', '$updated', '$body', '$returns', '$s', '$any?', '$original_args', '$type', '$loc', '$expression', '$source', '$match', '$new', '$found_break?']); + Opal.add_stubs('require,handle,children,lambda_definition?,scope,is_lambda!,in_scope,identify!,process,inline_args,compile_arity_check,stmt,returned_body,add_temp,to_vars,line,catch_return,unshift,push,await_encountered,<<,arity,self,contains_break?,arity_check?,compiler,parameters_code,has_top_level_mlhs_arg?,has_trailing_comma_in_args?,==,length,>,join,nesting,relative_access,block_arg,prepare_block,each,args,first,updated,body,returns,s,any?,original_args,type,expression,loc,source,match,new,found_break?'); self.$require("opal/nodes/node_with_args"); self.$require("opal/rewriters/break_finder"); @@ -36532,34 +33142,38 @@ Opal.modules["opal/nodes/iter"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'IterNode'); - var $nesting = [self].concat($parent_nesting), $IterNode_compile$1, $IterNode_compile_block_arg$3, $IterNode_extract_underscore_args$4, $IterNode_returned_body$6, $IterNode_has_top_level_mlhs_arg$ques$7, $IterNode_has_trailing_comma_in_args$ques$9, $IterNode_arity_check_node$10, $IterNode_contains_break$ques$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.define_self = $proto.define_nesting = $proto.define_relative_access = $proto.sexp = nil; self.$handle("iter"); self.$children("inline_args", "body"); - Opal.def(self, '$compile', $IterNode_compile$1 = function $$compile() { - var $$2, self = this, inline_params = nil, to_vars = nil, identity = nil, body_code = nil; + $def(self, '$compile', function $$compile() { + var self = this, inline_params = nil, to_vars = nil, identity = nil, body_code = nil, blockopts = nil; if ($truthy(self.$scope()['$lambda_definition?']())) { - self['$is_lambda!']()}; + self['$is_lambda!']() + }; inline_params = nil; to_vars = (identity = (body_code = nil)); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; + if (self.define_self == null) self.define_self = nil; identity = self.$scope()['$identify!'](); - self.$add_temp("" + "self = " + (identity) + ".$$s == null ? this : " + (identity) + ".$$s"); inline_params = self.$process(self.$inline_args()); self.$compile_arity_check(); body_code = self.$stmt(self.$returned_body()); + if ($truthy(self.define_self)) { + self.$add_temp("self = " + (identity) + ".$$s == null ? this : " + (identity) + ".$$s") + }; to_vars = self.$scope().$to_vars(); self.$line(body_code); if ($truthy(self.$scope().$catch_return())) { @@ -36569,55 +33183,69 @@ Opal.modules["opal/nodes/iter"] = function(Opal) { return self.$push(" throw $returner; }"); } else { return nil - };}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + };}, {$$arity: 0, $$s: self}); self.$unshift(to_vars); - self.$unshift("" + "(" + (identity) + " = function(", inline_params, "){"); - self.$push("" + "}, " + (identity) + ".$$s = self,"); + if ($truthy(self.$await_encountered())) { + self.$unshift("async function " + (identity) + "(", inline_params, "){") + } else { + self.$unshift("function " + (identity) + "(", inline_params, "){") + }; + self.$push("}"); + blockopts = []; + blockopts['$<<']("$$arity: " + (self.$arity())); + if ($truthy(self.define_self)) { + blockopts['$<<']("$$s: " + (self.$scope().$self())) + }; if ($truthy(self['$contains_break?']())) { - self.$push("" + " " + (identity) + ".$$brk = $brk,")}; - self.$push("" + " " + (identity) + ".$$arity = " + (self.$arity()) + ","); + blockopts['$<<']("$$brk: $brk") + }; if ($truthy(self.$compiler()['$arity_check?']())) { - self.$push("" + " " + (identity) + ".$$parameters = " + (self.$parameters_code()) + ",")}; + blockopts['$<<']("$$parameters: " + (self.$parameters_code())) + }; if ($truthy(self['$has_top_level_mlhs_arg?']())) { - self.$push("" + " " + (identity) + ".$$has_top_level_mlhs_arg = true,")}; + blockopts['$<<']("$$has_top_level_mlhs_arg: true") + }; if ($truthy(self['$has_trailing_comma_in_args?']())) { - self.$push("" + " " + (identity) + ".$$has_trailing_comma_in_args = true,")}; - return self.$push("" + " " + (identity) + ")"); - }, $IterNode_compile$1.$$arity = 0); + blockopts['$<<']("$$has_trailing_comma_in_args: true") + }; + if ($eqeq(blockopts.$length(), 1)) { + self.$push(", " + (self.$arity())) + } else if ($truthy($rb_gt(blockopts.$length(), 1))) { + self.$push(", {", blockopts.$join(", "), "}") + }; + if ($truthy(self.define_nesting)) { + self.$scope().$nesting() + }; + if ($truthy(self.define_relative_access)) { + return self.$scope().$relative_access() + } else { + return nil + }; + }, 0); - Opal.def(self, '$compile_block_arg', $IterNode_compile_block_arg$3 = function $$compile_block_arg() { - var self = this, $writer = nil, scope_name = nil; + $def(self, '$compile_block_arg', function $$compile_block_arg() { + var self = this; if ($truthy(self.$block_arg())) { - - - $writer = [self.$block_arg()]; - $send(self.$scope(), 'block_name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.$scope().$add_temp(self.$block_arg()); - scope_name = self.$scope()['$identify!'](); - self.$line("" + (self.$block_arg()) + " = " + (scope_name) + ".$$p || nil;"); - return self.$line("" + "if (" + (self.$block_arg()) + ") " + (scope_name) + ".$$p = null;"); + return self.$scope().$prepare_block() } else { return nil } - }, $IterNode_compile_block_arg$3.$$arity = 0); + }, 0); - Opal.def(self, '$extract_underscore_args', $IterNode_extract_underscore_args$4 = function $$extract_underscore_args() { - var $$5, self = this, valid_args = nil, caught_blank_argument = nil; + $def(self, '$extract_underscore_args', function $$extract_underscore_args() { + var self = this, valid_args = nil, caught_blank_argument = nil; valid_args = []; caught_blank_argument = false; - $send(self.$args().$children(), 'each', [], ($$5 = function(arg){var self = $$5.$$s == null ? this : $$5.$$s, arg_name = nil; + $send(self.$args().$children(), 'each', [], function $$2(arg){var arg_name = nil; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; arg_name = arg.$children().$first(); - if (arg_name['$==']("_")) { + if ($eqeq(arg_name, "_")) { if ($truthy(caught_blank_argument)) { return nil } else { @@ -36627,78 +33255,60 @@ Opal.modules["opal/nodes/iter"] = function(Opal) { } } else { return valid_args['$<<'](arg) - };}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + };}, 1); return (self.sexp = self.sexp.$updated(nil, [self.$args().$updated(nil, valid_args), self.$body()])); - }, $IterNode_extract_underscore_args$4.$$arity = 0); + }, 0); - Opal.def(self, '$returned_body', $IterNode_returned_body$6 = function $$returned_body() { + $def(self, '$returned_body', function $$returned_body() { var self = this, $ret_or_1 = nil; - return self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$body()))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })()) - }, $IterNode_returned_body$6.$$arity = 0); + return self.$compiler().$returns(($truthy(($ret_or_1 = self.$body())) ? ($ret_or_1) : (self.$s("nil")))) + }, 0); - Opal.def(self, '$has_top_level_mlhs_arg?', $IterNode_has_top_level_mlhs_arg$ques$7 = function() { - var $$8, self = this; - - return $send(self.$original_args().$children(), 'any?', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; + $def(self, '$has_top_level_mlhs_arg?', function $IterNode_has_top_level_mlhs_arg$ques$3() { + var self = this; + return $send(self.$original_args().$children(), 'any?', [], function $$4(arg){ - if (arg == null) { - arg = nil; - }; - return arg.$type()['$==']("mlhs");}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - }, $IterNode_has_top_level_mlhs_arg$ques$7.$$arity = 0); + if (arg == null) arg = nil;; + return arg.$type()['$==']("mlhs");}, 1) + }, 0); - Opal.def(self, '$has_trailing_comma_in_args?', $IterNode_has_trailing_comma_in_args$ques$9 = function() { - var self = this, $ret_or_2 = nil, args_source = nil; + $def(self, '$has_trailing_comma_in_args?', function $IterNode_has_trailing_comma_in_args$ques$5() { + var self = this, args_source = nil; - if ($truthy((function() {if ($truthy(($ret_or_2 = self.$original_args().$loc()))) { - return self.$original_args().$loc().$expression() - } else { - return $ret_or_2 - }; return nil; })())) { + if (($truthy(self.$original_args().$loc()) && ($truthy(self.$original_args().$loc().$expression())))) { args_source = self.$original_args().$loc().$expression().$source(); return args_source.$match(/,\s*\|/); } else { return nil } - }, $IterNode_has_trailing_comma_in_args$ques$9.$$arity = 0); + }, 0); - Opal.def(self, '$arity_check_node', $IterNode_arity_check_node$10 = function $$arity_check_node() { + $def(self, '$arity_check_node', function $$arity_check_node() { var self = this; return self.$s("iter_arity_check", self.$original_args()) - }, $IterNode_arity_check_node$10.$$arity = 0); - return (Opal.def(self, '$contains_break?', $IterNode_contains_break$ques$11 = function() { + }, 0); + return $def(self, '$contains_break?', function $IterNode_contains_break$ques$6() { var self = this, finder = nil; - finder = $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'BreakFinder').$new(); + finder = $$$($$$($$('Opal'), 'Rewriters'), 'BreakFinder').$new(); finder.$process(self.sexp); return finder['$found_break?'](); - }, $IterNode_contains_break$ques$11.$$arity = 0), nil) && 'contains_break?'; - })($nesting[0], $$($nesting, 'NodeWithArgs'), $nesting) + }, 0); + })($nesting[0], $$('NodeWithArgs'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/def"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - - Opal.add_stubs(['$require', '$handle', '$children', '$in_scope', '$mid', '$mid=', '$scope', '$-', '$==', '$type', '$defs=', '$identify!', '$identity', '$block_name=', '$process', '$inline_args', '$stmt', '$returns', '$compiler', '$stmts', '$compile_block_arg', '$add_temp', '$compile_arity_check', '$uses_zuper', '$prepare_super', '$unshift', '$current_indent', '$to_vars', '$line', '$catch_return', '$push', '$valid_name?', '$arity', '$arity_check?', '$parameters_code', '$parse_comments?', '$comments_code', '$enable_source_location?', '$source_location', '$wrap_with_definition', '$wrap', '$expr?', '$+', '$join', '$map', '$comments', '$inspect', '$text', '$add_local']); +Opal.modules["opal/nodes/def"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $def = Opal.def, $rb_plus = Opal.rb_plus; + + Opal.add_stubs('require,handle,children,in_scope,mid,mid=,scope,-,==,type,defs=,identify!,identity,block_name=,process,inline_args,stmt,returns,compiler,stmts,compile_block_arg,add_temp,compile_arity_check,unshift,current_indent,to_vars,line,catch_return,push,await_encountered,<<,arity,arity_check?,parameters_code,parse_comments?,comments_code,enable_source_location?,source_location,length,>,join,wrap_with_definition,nesting,relative_access,helper,wrap,self,expr?,+,map,comments,inspect,text'); self.$require("opal/nodes/node_with_args"); return (function($base, $parent_nesting) { @@ -36709,50 +33319,53 @@ Opal.modules["opal/nodes/def"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DefNode'); - var $nesting = [self].concat($parent_nesting), $DefNode_compile$1, $DefNode_wrap_with_definition$3, $DefNode_comments_code$4, $DefNode_prepare_super$6; + var $proto = self.$$prototype; + $proto.define_nesting = $proto.define_relative_access = nil; self.$handle("def"); self.$children("mid", "inline_args", "stmts"); - Opal.def(self, '$compile', $DefNode_compile$1 = function $$compile() { - var $$2, self = this, inline_params = nil, scope_name = nil, function_name = nil; + $def(self, '$compile', function $$compile() { + var self = this, inline_params = nil, scope_name = nil, blockopts = nil; inline_params = nil; scope_name = nil; - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil, stmt_code = nil; + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil, stmt_code = nil; if (self.sexp == null) self.sexp = nil; + if (self.define_self == null) self.define_self = nil; $writer = [self.$mid()]; - $send(self.$scope(), 'mid=', Opal.to_a($writer)); + $send(self.$scope(), 'mid=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if (self.sexp.$type()['$==']("defs")) { + if ($eqeq(self.sexp.$type(), "defs")) { $writer = [true]; - $send(self.$scope(), 'defs=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(self.$scope(), 'defs=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; self.$scope()['$identify!'](); scope_name = self.$scope().$identity(); $writer = ["$yield"]; - $send(self.$scope(), 'block_name=', Opal.to_a($writer)); + $send(self.$scope(), 'block_name=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; inline_params = self.$process(self.$inline_args()); stmt_code = self.$stmt(self.$compiler().$returns(self.$stmts())); self.$compile_block_arg(); - self.$add_temp("self = this"); + if ($truthy(self.define_self)) { + self.$add_temp("self = this") + }; self.$compile_arity_check(); - if ($truthy(self.$scope().$uses_zuper())) { - self.$prepare_super()}; - self.$unshift("" + "\n" + (self.$current_indent()), self.$scope().$to_vars()); + self.$unshift("\n" + (self.$current_indent()), self.$scope().$to_vars()); self.$line(stmt_code); if ($truthy(self.$scope().$catch_return())) { @@ -36761,74 +33374,71 @@ Opal.modules["opal/nodes/def"] = function(Opal) { return self.$push(" throw $returner; }"); } else { return nil - };}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - function_name = (function() {if ($truthy(self['$valid_name?'](self.$mid()))) { - return "" + " $$" + (self.$mid()) - } else { - return "" - }; return nil; })(); + };}, {$$arity: 0, $$s: self}); self.$unshift(") {"); self.$unshift(inline_params); - self.$unshift("" + "function" + (function_name) + "("); - if ($truthy(scope_name)) { - self.$unshift("" + (scope_name) + " = ")}; + self.$unshift("function " + (scope_name) + "("); + if ($truthy(self.$await_encountered())) { + self.$unshift("async ") + }; self.$line("}"); - self.$push("" + ", " + (scope_name) + ".$$arity = " + (self.$arity())); + blockopts = []; + blockopts['$<<']("$$arity: " + (self.$arity())); if ($truthy(self.$compiler()['$arity_check?']())) { - self.$push("" + ", " + (scope_name) + ".$$parameters = " + (self.$parameters_code()))}; + blockopts['$<<']("$$parameters: " + (self.$parameters_code())) + }; if ($truthy(self.$compiler()['$parse_comments?']())) { - self.$push("" + ", " + (scope_name) + ".$$comments = " + (self.$comments_code()))}; + blockopts['$<<']("$$comments: " + (self.$comments_code())) + }; if ($truthy(self.$compiler()['$enable_source_location?']())) { - self.$push("" + ", " + (scope_name) + ".$$source_location = " + (self.$source_location()))}; - return self.$wrap_with_definition(); - }, $DefNode_compile$1.$$arity = 0); + blockopts['$<<']("$$source_location: " + (self.$source_location())) + }; + if ($eqeq(blockopts.$length(), 1)) { + self.$push(", " + (self.$arity())) + } else if ($truthy($rb_gt(blockopts.$length(), 1))) { + self.$push(", {", blockopts.$join(", "), "}") + }; + self.$wrap_with_definition(); + if ($truthy(self.define_nesting)) { + self.$scope().$nesting() + }; + if ($truthy(self.define_relative_access)) { + return self.$scope().$relative_access() + } else { + return nil + }; + }, 0); - Opal.def(self, '$wrap_with_definition', $DefNode_wrap_with_definition$3 = function $$wrap_with_definition() { + $def(self, '$wrap_with_definition', function $$wrap_with_definition() { var self = this; - self.$wrap("" + "Opal.def(self, '$" + (self.$mid()) + "', ", ")"); + self.$helper("def"); + self.$wrap("$def(" + (self.$scope().$self()) + ", '$" + (self.$mid()) + "', ", ")"); if ($truthy(self['$expr?']())) { - return self.$wrap("(", "" + ", nil) && '" + (self.$mid()) + "'") + return nil } else { - return self.$unshift("" + "\n" + (self.$current_indent())) + return self.$unshift("\n" + (self.$current_indent())) }; - }, $DefNode_wrap_with_definition$3.$$arity = 0); - - Opal.def(self, '$comments_code', $DefNode_comments_code$4 = function $$comments_code() { - var $$5, self = this; - - return $rb_plus($rb_plus("[", $send(self.$comments(), 'map', [], ($$5 = function(comment){var self = $$5.$$s == null ? this : $$5.$$s; + }, 0); + return $def(self, '$comments_code', function $$comments_code() { + var self = this; + return $rb_plus($rb_plus("[", $send(self.$comments(), 'map', [], function $$2(comment){ - if (comment == null) { - comment = nil; - }; - return comment.$text().$inspect();}, $$5.$$s = self, $$5.$$arity = 1, $$5)).$join(", ")), "]") - }, $DefNode_comments_code$4.$$arity = 0); - return (Opal.def(self, '$prepare_super', $DefNode_prepare_super$6 = function $$prepare_super() { - var self = this; - - - self.$add_local("$zuper"); - self.$add_local("$zuper_i"); - self.$add_local("$zuper_ii"); - self.$line("// Prepare super implicit arguments"); - self.$line("for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) {"); - self.$line(" $zuper[$zuper_i] = arguments[$zuper_i];"); - return self.$line("}"); - }, $DefNode_prepare_super$6.$$arity = 0), nil) && 'prepare_super'; - })($nesting[0], $$($nesting, 'NodeWithArgs'), $nesting) + if (comment == null) comment = nil;; + return comment.$text().$inspect();}, 1).$join(", ")), "]") + }, 0); + })($nesting[0], $$('NodeWithArgs')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/defs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/defs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$unshift', '$expr', '$recvr', '$mid', '$push', '$expr?', '$wrap']); + Opal.add_stubs('require,handle,children,helper,unshift,expr,recvr,mid,push'); self.$require("opal/nodes/def"); return (function($base, $parent_nesting) { @@ -36839,38 +33449,32 @@ Opal.modules["opal/nodes/defs"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DefsNode'); - var $nesting = [self].concat($parent_nesting), $DefsNode_wrap_with_definition$1; - + self.$handle("defs"); self.$children("recvr", "mid", "inline_args", "stmts"); - return (Opal.def(self, '$wrap_with_definition', $DefsNode_wrap_with_definition$1 = function $$wrap_with_definition() { + return $def(self, '$wrap_with_definition', function $$wrap_with_definition() { var self = this; - self.$unshift("Opal.defs(", self.$expr(self.$recvr()), "" + ", '$" + (self.$mid()) + "', "); - self.$push(")"); - if ($truthy(self['$expr?']())) { - return self.$wrap("(", "" + ", nil) && '" + (self.$mid()) + "'") - } else { - return nil - }; - }, $DefsNode_wrap_with_definition$1.$$arity = 0), nil) && 'wrap_with_definition'; - })($nesting[0], $$($nesting, 'DefNode'), $nesting) + self.$helper("defs"); + self.$unshift("$defs(", self.$expr(self.$recvr()), ", '$" + (self.$mid()) + "', "); + return self.$push(")"); + }, 0); + })($nesting[0], $$('DefNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/if"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/if"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def, $not = Opal.not, $send = Opal.send, $eqeqeq = Opal.eqeqeq; - Opal.add_stubs(['$require', '$handle', '$children', '$truthy', '$falsy', '$push', '$js_truthy', '$test', '$indent', '$line', '$stmt', '$==', '$type', '$needs_wrapper?', '$wrap', '$returns', '$compiler', '$true_body', '$s', '$false_body', '$expr?', '$recv?', '$helper', '$new_temp', '$top_scope', '$excl', '$from', '$to']); + Opal.add_stubs('require,handle,children,should_compile_as_simple_expression?,==,true_body,s,compile_with_binary_or,false_body,compile_with_binary_and,compile_with_ternary,compile_with_if,truthy,falsy,!,push,js_truthy,test,indent,line,stmt,type,expects_expression?,await_encountered,scope,wrap,returnify,returns,compiler,expr?,recv?,simple?,expr,[],meta,sexp,===,single_line?,strip_empty_children,all?,helper,new_temp,top_scope,excl,from,to'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -36881,152 +33485,244 @@ Opal.modules["opal/nodes/if"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'IfNode'); - var $nesting = [self].concat($parent_nesting), $IfNode_compile$1, $IfNode_truthy$4, $IfNode_falsy$5, $IfNode_needs_wrapper$ques$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("if"); self.$children("test", "true_body", "false_body"); - Opal.def(self, '$compile', $IfNode_compile$1 = function $$compile() { - var $$2, $$3, self = this, truthy = nil, falsy = nil; + $def(self, '$compile', function $$compile() { + var self = this; + + if ($truthy(self['$should_compile_as_simple_expression?']())) { + if ($eqeq(self.$true_body(), self.$s("true"))) { + return self.$compile_with_binary_or() + } else if ($eqeq(self.$false_body(), self.$s("false"))) { + return self.$compile_with_binary_and() + } else { + return self.$compile_with_ternary() + } + } else { + return self.$compile_with_if() + } + }, 0); + + $def(self, '$compile_with_if', function $$compile_with_if() { + var $a, self = this, truthy = nil, falsy = nil; truthy = self.$truthy(); falsy = self.$falsy(); - self.$push("if (", self.$js_truthy(self.$test()), ") {"); + if (($truthy(falsy) && ($not(truthy)))) { + + self.$push("if (!", self.$js_truthy(self.$test()), ") {"); + $a = [truthy, falsy], (falsy = $a[0]), (truthy = $a[1]), $a; + } else { + self.$push("if (", self.$js_truthy(self.$test()), ") {") + }; if ($truthy(truthy)) { - $send(self, 'indent', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + $send(self, 'indent', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$line(self.$stmt(truthy))}, $$2.$$s = self, $$2.$$arity = 0, $$2))}; + return self.$line(self.$stmt(truthy))}, {$$arity: 0, $$s: self}) + }; if ($truthy(falsy)) { - if (falsy.$type()['$==']("if")) { + if ($eqeq(falsy.$type(), "if")) { self.$line("} else ", self.$stmt(falsy)) } else { self.$line("} else {"); - $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; + $send(self, 'indent', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$line(self.$stmt(falsy))}, $$3.$$s = self, $$3.$$arity = 0, $$3)); + return self.$line(self.$stmt(falsy))}, {$$arity: 0, $$s: self}); self.$line("}"); } } else { - self.$push("}") + + self.$line("}"); + if ($truthy(self['$expects_expression?']())) { + self.$line("return nil;") + }; }; - if ($truthy(self['$needs_wrapper?']())) { - return self.$wrap("(function() {", "; return nil; })()") + if ($truthy(self['$expects_expression?']())) { + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() {", "})())") + } else { + return self.$wrap("(function() {", "})()") + } } else { return nil }; - }, $IfNode_compile$1.$$arity = 0); + }, 0); + + $def(self, '$truthy', function $$truthy() { + var self = this; + + return self.$returnify(self.$true_body()) + }, 0); + + $def(self, '$falsy', function $$falsy() { + var self = this; + + return self.$returnify(self.$false_body()) + }, 0); + + $def(self, '$returnify', function $$returnify(body) { + var self = this; + + if (($truthy(self['$expects_expression?']()) && ($truthy(body)))) { + return self.$compiler().$returns(body) + } else { + return body + } + }, 1); - Opal.def(self, '$truthy', $IfNode_truthy$4 = function $$truthy() { + $def(self, '$expects_expression?', function $IfNode_expects_expression$ques$3() { var self = this, $ret_or_1 = nil; - if ($truthy(self['$needs_wrapper?']())) { - return self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$true_body()))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })()) + if ($truthy(($ret_or_1 = self['$expr?']()))) { + return $ret_or_1 } else { - return self.$true_body() + return self['$recv?']() } - }, $IfNode_truthy$4.$$arity = 0); + }, 0); - Opal.def(self, '$falsy', $IfNode_falsy$5 = function $$falsy() { - var self = this, $ret_or_2 = nil; + $def(self, '$should_compile_as_simple_expression?', function $IfNode_should_compile_as_simple_expression$ques$4() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(self['$needs_wrapper?']())) { - return self.$compiler().$returns((function() {if ($truthy(($ret_or_2 = self.$false_body()))) { - return $ret_or_2 - } else { - return self.$s("nil") - }; return nil; })()) + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self['$expects_expression?']())) ? (self['$simple?'](self.$true_body())) : ($ret_or_2))))) { + return self['$simple?'](self.$false_body()) } else { - return self.$false_body() + return $ret_or_1 } - }, $IfNode_falsy$5.$$arity = 0); - return (Opal.def(self, '$needs_wrapper?', $IfNode_needs_wrapper$ques$6 = function() { - var self = this, $ret_or_3 = nil; + }, 0); + + $def(self, '$compile_with_ternary', function $$compile_with_ternary() { + var self = this, truthy = nil, falsy = nil, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self['$expr?']()))) { - return $ret_or_3 + + truthy = self.$true_body(); + falsy = self.$false_body(); + self.$push("("); + self.$push(self.$js_truthy(self.$test()), " ? "); + self.$push("(", self.$expr(($truthy(($ret_or_1 = truthy)) ? ($ret_or_1) : (self.$s("nil")))), ") : "); + if (($not(falsy) || ($eqeq(falsy.$type(), "if")))) { + self.$push(self.$expr(($truthy(($ret_or_1 = falsy)) ? ($ret_or_1) : (self.$s("nil"))))) } else { - return self['$recv?']() + self.$push("(", self.$expr(($truthy(($ret_or_1 = falsy)) ? ($ret_or_1) : (self.$s("nil")))), ")") + }; + return self.$push(")"); + }, 0); + + $def(self, '$compile_with_binary_and', function $$compile_with_binary_and() { + var self = this, truthy = nil, $ret_or_1 = nil; + + + if ($truthy(self.$sexp().$meta()['$[]']("do_js_truthy_on_true_body"))) { + truthy = self.$js_truthy(($truthy(($ret_or_1 = self.$true_body())) ? ($ret_or_1) : (self.$s("nil")))) + } else { + truthy = self.$expr(($truthy(($ret_or_1 = self.$true_body())) ? ($ret_or_1) : (self.$s("nil")))) + }; + self.$push("("); + self.$push(self.$js_truthy(self.$test()), " && "); + self.$push("(", truthy, ")"); + return self.$push(")"); + }, 0); + + $def(self, '$compile_with_binary_or', function $$compile_with_binary_or() { + var self = this, falsy = nil, $ret_or_1 = nil; + + + if ($truthy(self.$sexp().$meta()['$[]']("do_js_truthy_on_false_body"))) { + falsy = self.$js_truthy(($truthy(($ret_or_1 = self.$false_body())) ? ($ret_or_1) : (self.$s("nil")))) + } else { + falsy = self.$expr(($truthy(($ret_or_1 = self.$false_body())) ? ($ret_or_1) : (self.$s("nil")))) + }; + self.$push("("); + self.$push(self.$js_truthy(self.$test()), " || "); + self.$push("(", falsy, ")"); + return self.$push(")"); + }, 0); + return $def(self, '$simple?', function $IfNode_simple$ques$5(body) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + if ($eqeqeq($$$($$('AST'), 'Node'), ($ret_or_1 = body))) { + if (($eqeqeq("return", ($ret_or_2 = body.$type())) || (($eqeqeq("js_return", $ret_or_2) || (($eqeqeq("break", $ret_or_2) || (($eqeqeq("next", $ret_or_2) || (($eqeqeq("redo", $ret_or_2) || ($eqeqeq("retry", $ret_or_2)))))))))))) { + return false + } else if ($eqeqeq("xstr", $ret_or_2)) { + return $$('XStringNode')['$single_line?']($$('XStringNode').$strip_empty_children(body.$children())) + } else { + return $send(body.$children(), 'all?', [], function $$6(i){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (i == null) i = nil;; + return self['$simple?'](i);}, {$$arity: 1, $$s: self}) + } + } else { + return true } - }, $IfNode_needs_wrapper$ques$6.$$arity = 0), nil) && 'needs_wrapper?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'IFlipFlop'); - var $nesting = [self].concat($parent_nesting), $IFlipFlop_excl$7, $IFlipFlop_compile$8; - + self.$handle("iflipflop"); self.$children("from", "to"); - Opal.def(self, '$excl', $IFlipFlop_excl$7 = function $$excl() { - var self = this; - + $def(self, '$excl', function $$excl() { + return "" - }, $IFlipFlop_excl$7.$$arity = 0); - return (Opal.def(self, '$compile', $IFlipFlop_compile$8 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this, fun_name = nil, ff = nil; self.$helper("truthy"); fun_name = self.$top_scope().$new_temp(); ff = "" + (fun_name) + ".$$ff"; - self.$push("" + "(typeof " + (fun_name) + " === 'undefined' ? (" + (fun_name) + " = function(from, to){"); - self.$push("" + " if (typeof " + (ff) + " === 'undefined') " + (ff) + " = false;"); - self.$push("" + " var retval = " + (ff) + ";"); - self.$push("" + " if (!" + (ff) + ") {"); - self.$push("" + " " + (ff) + " = retval = $truthy(from());"); + self.$push("(typeof " + (fun_name) + " === 'undefined' ? (" + (fun_name) + " = function(from, to){"); + self.$push(" if (typeof " + (ff) + " === 'undefined') " + (ff) + " = false;"); + self.$push(" var retval = " + (ff) + ";"); + self.$push(" if (!" + (ff) + ") {"); + self.$push(" " + (ff) + " = retval = $truthy(from());"); self.$push(" }"); - self.$push("" + " " + (self.$excl()) + "if (" + (ff) + ") {"); - self.$push("" + " if ($truthy(to())) " + (ff) + " = false;"); + self.$push(" " + (self.$excl()) + "if (" + (ff) + ") {"); + self.$push(" if ($truthy(to())) " + (ff) + " = false;"); self.$push(" }"); self.$push(" return retval;"); - self.$push("" + "}) : " + (fun_name) + ")("); + self.$push("}) : " + (fun_name) + ")("); self.$push(" function() { ", self.$stmt(self.$compiler().$returns(self.$from())), " },"); self.$push(" function() { ", self.$stmt(self.$compiler().$returns(self.$to())), " }"); return self.$push(")"); - }, $IFlipFlop_compile$8.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'EFlipFlop'); - var $nesting = [self].concat($parent_nesting), $EFlipFlop_excl$9; - + self.$handle("eflipflop"); - return (Opal.def(self, '$excl', $EFlipFlop_excl$9 = function $$excl() { - var self = this; - + return $def(self, '$excl', function $$excl() { + return "else " - }, $EFlipFlop_excl$9.$$arity = 0), nil) && 'excl'; - })($nesting[0], $$($nesting, 'IFlipFlop'), $nesting); + }, 0); + })($nesting[0], $$('IFlipFlop')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/logic"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$require', '$handle', '$in_while?', '$push', '$iter?', '$scope', '$expr_or_nil', '$value', '$error', '$size', '$children', '$===', '$s', '$first', '$compile_while', '$compile_iter', '$[]', '$while_loop', '$stmt?', '$line', '$break_val', '$nil?', '$expr', '$[]=', '$-', '$helper', '$identity', '$==', '$empty_splat?', '$recv', '$>', '$!', '$lambda?', '$find_parent_def', '$expr?', '$def?', '$return_in_iter?', '$return_expr_in_def?', '$scope_to_catch_return', '$catch_return=', '$return_val', '$to_s']); +Opal.modules["opal/nodes/logic"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt, $not = Opal.not; + + Opal.add_stubs('require,handle,in_while?,push,iter?,scope,expr_or_nil,value,error,===,size,children,s,first,compile_while,compile_iter,[],while_loop,stmt?,line,break_val,nil?,expr,[]=,-,helper,identity,==,empty_splat?,recv,>,find_parent_def,!,lambda?,def?,expr?,return_in_iter?,return_expr_in_def?,scope_to_catch_return,catch_return=,return_val,to_s'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -37037,18 +33733,17 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'NextNode'); - var $nesting = [self].concat($parent_nesting), $NextNode_compile$1, $NextNode_value$2; - + self.$handle("next"); - Opal.def(self, '$compile', $NextNode_compile$1 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { @@ -37058,26 +33753,28 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$error("Invalid next") } - }, $NextNode_compile$1.$$arity = 0); - return (Opal.def(self, '$value', $NextNode_value$2 = function $$value() { - var self = this, $case = nil; - - return (function() {$case = self.$children().$size(); - if ((0)['$===']($case)) {return self.$s("nil")} - else if ((1)['$===']($case)) {return self.$children().$first()} - else {return $send(self, 's', ["array"].concat(Opal.to_a(self.$children())))}})() - }, $NextNode_value$2.$$arity = 0), nil) && 'value'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'BreakNode'); + }, 0); + return $def(self, '$value', function $$value() { + var self = this, $ret_or_1 = nil; - var $nesting = [self].concat($parent_nesting), $BreakNode_compile$3, $BreakNode_compile_while$4, $BreakNode_compile_iter$5, $BreakNode_break_val$6; + if ($eqeqeq(0, ($ret_or_1 = self.$children().$size()))) { + return self.$s("nil") + } else if ($eqeqeq(1, $ret_or_1)) { + return self.$children().$first() + } else { + return $send(self, 's', ["array"].concat($to_a(self.$children()))) + } + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { + var self = $klass($base, $super, 'BreakNode'); + self.$handle("break"); self.$children("value"); - Opal.def(self, '$compile', $BreakNode_compile$3 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { @@ -37087,9 +33784,9 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$error("void value expression: cannot use break outside of iter/while") } - }, $BreakNode_compile$3.$$arity = 0); + }, 0); - Opal.def(self, '$compile_while', $BreakNode_compile_while$4 = function $$compile_while() { + $def(self, '$compile_while', function $$compile_while() { var self = this; if ($truthy(self.$while_loop()['$[]']("closure"))) { @@ -37097,19 +33794,18 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$push("break;") } - }, $BreakNode_compile_while$4.$$arity = 0); + }, 0); - Opal.def(self, '$compile_iter', $BreakNode_compile_iter$5 = function $$compile_iter() { + $def(self, '$compile_iter', function $$compile_iter() { var self = this; - if ($truthy(self['$stmt?']())) { - } else { + if (!$truthy(self['$stmt?']())) { self.$error("break must be used as a statement") }; return self.$line("Opal.brk(", self.$break_val(), ", $brk)"); - }, $BreakNode_compile_iter$5.$$arity = 0); - return (Opal.def(self, '$break_val', $BreakNode_break_val$6 = function $$break_val() { + }, 0); + return $def(self, '$break_val', function $$break_val() { var self = this; if ($truthy(self.$value()['$nil?']())) { @@ -37117,17 +33813,16 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$expr(self.$value()) } - }, $BreakNode_break_val$6.$$arity = 0), nil) && 'break_val'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'RedoNode'); - var $nesting = [self].concat($parent_nesting), $RedoNode_compile$7, $RedoNode_compile_while$8, $RedoNode_compile_iter$9; - + self.$handle("redo"); - Opal.def(self, '$compile', $RedoNode_compile$7 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { @@ -37137,125 +33832,108 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$push("REDO()") } - }, $RedoNode_compile$7.$$arity = 0); + }, 0); - Opal.def(self, '$compile_while', $RedoNode_compile_while$8 = function $$compile_while() { + $def(self, '$compile_while', function $$compile_while() { var self = this, $writer = nil; $writer = ["use_redo", true]; - $send(self.$while_loop(), '[]=', Opal.to_a($writer)); + $send(self.$while_loop(), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$push("" + (self.$while_loop()['$[]']("redo_var")) + " = true; continue;"); - }, $RedoNode_compile_while$8.$$arity = 0); - return (Opal.def(self, '$compile_iter', $RedoNode_compile_iter$9 = function $$compile_iter() { + }, 0); + return $def(self, '$compile_iter', function $$compile_iter() { var self = this; self.$helper("slice"); - return self.$push("" + "return " + (self.$scope().$identity()) + ".apply(null, $slice.call(arguments))"); - }, $RedoNode_compile_iter$9.$$arity = 0), nil) && 'compile_iter'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + return self.$push("return " + (self.$scope().$identity()) + ".apply(null, $slice.call(arguments))"); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'SplatNode'); - var $nesting = [self].concat($parent_nesting), $SplatNode_empty_splat$ques$10, $SplatNode_compile$11; - + self.$handle("splat"); self.$children("value"); - Opal.def(self, '$empty_splat?', $SplatNode_empty_splat$ques$10 = function() { + $def(self, '$empty_splat?', function $SplatNode_empty_splat$ques$1() { var self = this; return self.$value()['$=='](self.$s("array")) - }, $SplatNode_empty_splat$ques$10.$$arity = 0); - return (Opal.def(self, '$compile', $SplatNode_compile$11 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$empty_splat?']())) { return self.$push("[]") } else { - return self.$push("Opal.to_a(", self.$recv(self.$value()), ")") + + self.$helper("to_a"); + return self.$push("$to_a(", self.$recv(self.$value()), ")"); } - }, $SplatNode_compile$11.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'ReturnNode'); - var $nesting = [self].concat($parent_nesting), $ReturnNode_return_val$12, $ReturnNode_return_in_iter$ques$13, $ReturnNode_return_expr_in_def$ques$14, $ReturnNode_scope_to_catch_return$15, $ReturnNode_compile$16; - + self.$handle("return"); self.$children("value"); - Opal.def(self, '$return_val', $ReturnNode_return_val$12 = function $$return_val() { + $def(self, '$return_val', function $$return_val() { var self = this; if ($truthy(self.$value()['$nil?']())) { return self.$expr(self.$s("nil")) } else if ($truthy($rb_gt(self.$children().$size(), 1))) { - return self.$expr($send(self, 's', ["array"].concat(Opal.to_a(self.$children())))) + return self.$expr($send(self, 's', ["array"].concat($to_a(self.$children())))) } else { return self.$expr(self.$value()) } - }, $ReturnNode_return_val$12.$$arity = 0); + }, 0); - Opal.def(self, '$return_in_iter?', $ReturnNode_return_in_iter$ques$13 = function() { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, parent_def = nil; + $def(self, '$return_in_iter?', function $ReturnNode_return_in_iter$ques$2() { + var self = this, parent_def = nil; - if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$scope()['$iter?']()))) { - return self.$scope()['$lambda?']()['$!']() - } else { - return $ret_or_2 - }; return nil; })()))) { - return (parent_def = self.$scope().$find_parent_def()) - } else { - return $ret_or_1 - }; return nil; })())) { + if ((($truthy(self.$scope()['$iter?']()) && ($not(self.$scope()['$lambda?']()))) && ($truthy((parent_def = self.$scope().$find_parent_def()))))) { return parent_def } else { return nil } - }, $ReturnNode_return_in_iter$ques$13.$$arity = 0); + }, 0); - Opal.def(self, '$return_expr_in_def?', $ReturnNode_return_expr_in_def$ques$14 = function() { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil; + $def(self, '$return_expr_in_def?', function $ReturnNode_return_expr_in_def$ques$3() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_3 = self['$expr?']()))) { - - if ($truthy(($ret_or_4 = self.$scope()['$def?']()))) { - return $ret_or_4 - } else { - return self.$scope()['$lambda?']() - }; - } else { - return $ret_or_3 - }; return nil; })())) { + if (($truthy(self['$expr?']()) && (($truthy(self.$scope()['$def?']()) || ($truthy(self.$scope()['$lambda?']())))))) { return self.$scope() } else { return nil } - }, $ReturnNode_return_expr_in_def$ques$14.$$arity = 0); + }, 0); - Opal.def(self, '$scope_to_catch_return', $ReturnNode_scope_to_catch_return$15 = function $$scope_to_catch_return() { - var self = this, $ret_or_5 = nil; + $def(self, '$scope_to_catch_return', function $$scope_to_catch_return() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_5 = self['$return_in_iter?']()))) { - return $ret_or_5 + if ($truthy(($ret_or_1 = self['$return_in_iter?']()))) { + return $ret_or_1 } else { return self['$return_expr_in_def?']() } - }, $ReturnNode_scope_to_catch_return$15.$$arity = 0); - return (Opal.def(self, '$compile', $ReturnNode_compile$16 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this, def_scope = nil, $writer = nil; if ($truthy((def_scope = self.$scope_to_catch_return()))) { $writer = [true]; - $send(def_scope, 'catch_return=', Opal.to_a($writer)); + $send(def_scope, 'catch_return=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$push("Opal.ret(", self.$return_val(), ")"); } else if ($truthy(self['$stmt?']())) { @@ -37263,67 +33941,57 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$error("void value expression: cannot return as an expression") } - }, $ReturnNode_compile$16.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'JSReturnNode'); - var $nesting = [self].concat($parent_nesting), $JSReturnNode_compile$17; - + self.$handle("js_return"); self.$children("value"); - return (Opal.def(self, '$compile', $JSReturnNode_compile$17 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$push("return "); return self.$push(self.$expr(self.$value())); - }, $JSReturnNode_compile$17.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'JSTempNode'); - var $nesting = [self].concat($parent_nesting), $JSTempNode_compile$18; - + self.$handle("js_tmp"); self.$children("value"); - return (Opal.def(self, '$compile', $JSTempNode_compile$18 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$value().$to_s()) - }, $JSTempNode_compile$18.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'BlockPassNode'); - var $nesting = [self].concat($parent_nesting), $BlockPassNode_compile$19; - + self.$handle("block_pass"); self.$children("value"); - return (Opal.def(self, '$compile', $BlockPassNode_compile$19 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$expr(self.$s("send", self.$value(), "to_proc", self.$s("arglist")))) - }, $BlockPassNode_compile$19.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/definitions"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $range = Opal.range, $truthy = Opal.truthy, $slice = Opal.slice; - - Opal.add_stubs(['$require', '$handle', '$children', '$each', '$line', '$expr', '$type', '$new_name', '$===', '$helper', '$inspect', '$[]', '$to_s', '$first', '$old_name', '$push', '$error', '$empty?', '$stmt?', '$compile_children', '$simple_children?', '$compile_inline_children', '$>', '$size', '$wrap', '$==', '$returned_children', '$+', '$returns', '$compiler', '$s', '$process', '$freeze', '$none?', '$include?', '$map', '$each_with_index', '$reject', '$to_proc']); +Opal.modules["opal/nodes/definitions"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $range = Opal.range, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $slice = Opal.slice, $rb_plus = Opal.rb_plus, $hash2 = Opal.hash2, $const_set = Opal.const_set; + + Opal.add_stubs('require,handle,children,each,line,self,scope,expr,===,type,new_name,helper,inspect,[],to_s,first,old_name,push,error,empty?,stmt?,compile_children,simple_children?,compile_inline_children,>,size,wrap,==,returned_children,await_encountered,parent,+,returns,compiler,s,process,fragment,freeze,none?,include?,map,each_with_index,reject,to_proc'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -37334,68 +34002,68 @@ Opal.modules["opal/nodes/definitions"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'UndefNode'); - var $nesting = [self].concat($parent_nesting), $UndefNode_compile$1; - + self.$handle("undef"); self.$children("value"); - return (Opal.def(self, '$compile', $UndefNode_compile$1 = function $$compile() { - var $$2, self = this; + return $def(self, '$compile', function $$compile() { + var self = this; - return $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s; + return $send(self.$children(), 'each', [], function $$1(child){var self = $$1.$$s == null ? this : $$1.$$s; - if (child == null) { - child = nil; - }; - return self.$line("Opal.udef(self, '$' + ", self.$expr(child), ");");}, $$2.$$s = self, $$2.$$arity = 1, $$2)) - }, $UndefNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + if (child == null) child = nil;; + return self.$line("Opal.udef(" + (self.$scope().$self()) + ", '$' + ", self.$expr(child), ");");}, {$$arity: 1, $$s: self}) + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'AliasNode'); - var $nesting = [self].concat($parent_nesting), $AliasNode_compile$3; - + self.$handle("alias"); self.$children("new_name", "old_name"); - return (Opal.def(self, '$compile', $AliasNode_compile$3 = function $$compile() { - var self = this, $case = nil, new_name_str = nil, old_name_str = nil; - - return (function() {$case = self.$new_name().$type(); - if ("gvar"['$===']($case)) { - self.$helper("alias_gvar"); - new_name_str = self.$new_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); - old_name_str = self.$old_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); - return self.$push("$alias_gvar(", new_name_str, ", ", old_name_str, ")");} - else if ("dsym"['$===']($case) || "sym"['$===']($case)) { - self.$helper("alias"); - return self.$push("$alias(self, ", self.$expr(self.$new_name()), ", ", self.$expr(self.$old_name()), ")");} - else {return self.$error("" + "Opal doesn't know yet how to alias with " + (self.$new_name().$type()))}})() - }, $AliasNode_compile$3.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return $def(self, '$compile', function $$compile() { + var self = this, $ret_or_1 = nil, new_name_str = nil, old_name_str = nil; + + if ($eqeqeq("gvar", ($ret_or_1 = self.$new_name().$type()))) { + + self.$helper("alias_gvar"); + new_name_str = self.$new_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); + old_name_str = self.$old_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); + return self.$push("$alias_gvar(", new_name_str, ", ", old_name_str, ")"); + } else if (($eqeqeq("dsym", $ret_or_1) || ($eqeqeq("sym", $ret_or_1)))) { + + self.$helper("alias"); + return self.$push("$alias(" + (self.$scope().$self()) + ", ", self.$expr(self.$new_name()), ", ", self.$expr(self.$old_name()), ")"); + } else { + return self.$error("Opal doesn't know yet how to alias with " + (self.$new_name().$type())) + } + }, 0); + })($nesting[0], $$('Base')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'BeginNode'); - var $nesting = [self].concat($parent_nesting), $BeginNode_compile$4, $BeginNode_returned_children$5, $BeginNode_compile_children$6, $BeginNode_simple_children$ques$8, $BeginNode_compile_inline_children$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.level = self.$$prototype.returned_children = nil; + $proto.level = $proto.returned_children = nil; self.$handle("begin"); - Opal.def(self, '$compile', $BeginNode_compile$4 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self.$children()['$empty?']())) { - return self.$push("nil")}; + return self.$push("nil") + }; if ($truthy(self['$stmt?']())) { return self.$compile_children(self.$children(), self.level) } else if ($truthy(self['$simple_children?']())) { @@ -37406,106 +34074,83 @@ Opal.modules["opal/nodes/definitions"] = function(Opal) { } else { return nil }; - } else if (self.$children().$size()['$=='](1)) { + } else if ($eqeq(self.$children().$size(), 1)) { return self.$compile_inline_children(self.$returned_children(), self.level) } else { self.$compile_children(self.$returned_children(), self.level); - return self.$wrap("(function() {", "})()"); + if ($truthy(self.$scope().$parent().$await_encountered())) { + return self.$wrap("(await (async function() {", "})())") + } else { + return self.$wrap("(function() {", "})()") + }; }; - }, $BeginNode_compile$4.$$arity = 0); + }, 0); - Opal.def(self, '$returned_children', $BeginNode_returned_children$5 = function $$returned_children() { + $def(self, '$returned_children', function $$returned_children() { var $a, $b, self = this, $ret_or_1 = nil, rest = nil, last_child = nil; - return (self.returned_children = (function() {if ($truthy(($ret_or_1 = self.returned_children))) { - return $ret_or_1 - } else { - - $a = [].concat(Opal.to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last_child = ($a[$b] == null ? nil : $a[$b])), $a; - if ($truthy(last_child)) { - return $rb_plus(rest, [self.$compiler().$returns(last_child)]) - } else { - return [self.$s("nil")] - }; - }; return nil; })()) - }, $BeginNode_returned_children$5.$$arity = 0); + return (self.returned_children = ($truthy(($ret_or_1 = self.returned_children)) ? ($ret_or_1) : (($a = [].concat($to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last_child = ($a[$b] == null ? nil : $a[$b])), $a, ($truthy(last_child) ? ($rb_plus(rest, [self.$compiler().$returns(last_child)])) : ([self.$s("nil")])))))) + }, 0); - Opal.def(self, '$compile_children', $BeginNode_compile_children$6 = function $$compile_children(children, level) { - var $$7, self = this; + $def(self, '$compile_children', function $$compile_children(children, level) { + var self = this; - return $send(children, 'each', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s; + return $send(children, 'each', [], function $$2(child){var self = $$2.$$s == null ? this : $$2.$$s; - if (child == null) { - child = nil; - }; - return self.$line(self.$process(child, level), ";");}, $$7.$$s = self, $$7.$$arity = 1, $$7)) - }, $BeginNode_compile_children$6.$$arity = 2); - Opal.const_set($nesting[0], 'COMPLEX_CHILDREN', ["while", "while_post", "until", "until_post", "js_return"].$freeze()); + if (child == null) child = nil;; + return self.$line(self.$process(child, level), self.$fragment(";", $hash2(["loc"], {"loc": false})));}, {$$arity: 1, $$s: self}) + }, 2); + $const_set($nesting[0], 'COMPLEX_CHILDREN', ["while", "while_post", "until", "until_post", "js_return"].$freeze()); - Opal.def(self, '$simple_children?', $BeginNode_simple_children$ques$8 = function() { - var $$9, self = this; - - return $send(self.$children(), 'none?', [], ($$9 = function(child){var self = $$9.$$s == null ? this : $$9.$$s; + $def(self, '$simple_children?', function $BeginNode_simple_children$ques$3() { + var self = this; + return $send(self.$children(), 'none?', [], function $$4(child){ - if (child == null) { - child = nil; - }; - return $$($nesting, 'COMPLEX_CHILDREN')['$include?'](child.$type());}, $$9.$$s = self, $$9.$$arity = 1, $$9)) - }, $BeginNode_simple_children$ques$8.$$arity = 0); - return (Opal.def(self, '$compile_inline_children', $BeginNode_compile_inline_children$10 = function $$compile_inline_children(children, level) { - var $$11, $$12, self = this, processed_children = nil; + if (child == null) child = nil;; + return $$('COMPLEX_CHILDREN')['$include?'](child.$type());}, 1) + }, 0); + return $def(self, '$compile_inline_children', function $$compile_inline_children(children, level) { + var self = this, processed_children = nil; - processed_children = $send(children, 'map', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; + processed_children = $send(children, 'map', [], function $$5(child){var self = $$5.$$s == null ? this : $$5.$$s; - if (child == null) { - child = nil; - }; - return self.$process(child, level);}, $$11.$$s = self, $$11.$$arity = 1, $$11)); - return $send($send(processed_children, 'reject', [], "empty?".$to_proc()), 'each_with_index', [], ($$12 = function(child, idx){var self = $$12.$$s == null ? this : $$12.$$s; + if (child == null) child = nil;; + return self.$process(child, level);}, {$$arity: 1, $$s: self}); + return $send($send(processed_children, 'reject', [], "empty?".$to_proc()), 'each_with_index', [], function $$6(child, idx){var self = $$6.$$s == null ? this : $$6.$$s; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { - } else { - self.$push(", ") + if (idx == null) idx = nil;; + if (!$eqeq(idx, 0)) { + self.$push(self.$fragment(", ", $hash2(["loc"], {"loc": false}))) }; - return self.$push(child);}, $$12.$$s = self, $$12.$$arity = 2, $$12)); - }, $BeginNode_compile_inline_children$10.$$arity = 2), nil) && 'compile_inline_children'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting); - return (function($base, $super, $parent_nesting) { + return self.$push(child);}, {$$arity: 2, $$s: self}); + }, 2); + })($nesting[0], $$('ScopeNode'), $nesting); + return (function($base, $super) { var self = $klass($base, $super, 'KwBeginNode'); - var $nesting = [self].concat($parent_nesting); - + return self.$handle("kwbegin") - })($nesting[0], $$($nesting, 'BeginNode'), $nesting); + })($nesting[0], $$('BeginNode')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/yield"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/yield"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def; - Opal.add_stubs(['$require', '$find_yielding_scope', '$uses_block!', '$block_name', '$block_name=', '$-', '$yields_single_arg?', '$children', '$push', '$expr', '$first', '$wrap', '$s', '$uses_splat?', '$scope', '$def?', '$parent', '$!', '$==', '$size', '$any?', '$type', '$handle', '$compile_call']); + Opal.add_stubs('require,find_yielding_scope,uses_block!,block_name,block_name=,-,yields_single_arg?,children,push,expr,first,wrap,s,uses_splat?,scope,def?,parent,!,==,size,any?,type,handle,compile_call'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -37516,17 +34161,16 @@ Opal.modules["opal/nodes/yield"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'BaseYieldNode'); - var $nesting = [self].concat($parent_nesting), $BaseYieldNode_compile_call$1, $BaseYieldNode_find_yielding_scope$2, $BaseYieldNode_yields_single_arg$ques$3, $BaseYieldNode_uses_splat$ques$4; - - Opal.def(self, '$compile_call', $BaseYieldNode_compile_call$1 = function $$compile_call() { + + $def(self, '$compile_call', function $$compile_call() { var self = this, yielding_scope = nil, $ret_or_1 = nil, $writer = nil, block_name = nil; @@ -37537,105 +34181,92 @@ Opal.modules["opal/nodes/yield"] = function(Opal) { } else { $writer = ["$yield"]; - $send(yielding_scope, 'block_name=', Opal.to_a($writer)); + $send(yielding_scope, 'block_name=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; block_name = yielding_scope.$block_name(); if ($truthy(self['$yields_single_arg?'](self.$children()))) { self.$push(self.$expr(self.$children().$first())); - return self.$wrap("" + "Opal.yield1(" + (block_name) + ", ", ")"); + return self.$wrap("Opal.yield1(" + (block_name) + ", ", ")"); } else { - self.$push(self.$expr($send(self, 's', ["arglist"].concat(Opal.to_a(self.$children()))))); + self.$push(self.$expr($send(self, 's', ["arglist"].concat($to_a(self.$children()))))); if ($truthy(self['$uses_splat?'](self.$children()))) { - return self.$wrap("" + "Opal.yieldX(" + (block_name) + ", ", ")") + return self.$wrap("Opal.yieldX(" + (block_name) + ", ", ")") } else { - return self.$wrap("" + "Opal.yieldX(" + (block_name) + ", [", "])") + return self.$wrap("Opal.yieldX(" + (block_name) + ", [", "])") }; }; - }, $BaseYieldNode_compile_call$1.$$arity = 0); + }, 0); - Opal.def(self, '$find_yielding_scope', $BaseYieldNode_find_yielding_scope$2 = function $$find_yielding_scope() { - var $a, self = this, working = nil, $ret_or_2 = nil; + $def(self, '$find_yielding_scope', function $$find_yielding_scope() { + var $a, self = this, working = nil; working = self.$scope(); while ($truthy(working)) { - if ($truthy((function() {if ($truthy(($ret_or_2 = working.$block_name()))) { - return $ret_or_2 - } else { - return working['$def?']() - }; return nil; })())) { - break;}; + if (($truthy(working.$block_name()) || ($truthy(working['$def?']())))) { + break; + }; working = working.$parent(); }; return working; - }, $BaseYieldNode_find_yielding_scope$2.$$arity = 0); + }, 0); - Opal.def(self, '$yields_single_arg?', $BaseYieldNode_yields_single_arg$ques$3 = function(children) { - var self = this, $ret_or_3 = nil; + $def(self, '$yields_single_arg?', function $BaseYieldNode_yields_single_arg$ques$1(children) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self['$uses_splat?'](children)['$!']()))) { + if ($truthy(($ret_or_1 = self['$uses_splat?'](children)['$!']()))) { return children.$size()['$=='](1) } else { - return $ret_or_3 + return $ret_or_1 } - }, $BaseYieldNode_yields_single_arg$ques$3.$$arity = 1); - return (Opal.def(self, '$uses_splat?', $BaseYieldNode_uses_splat$ques$4 = function(children) { - var $$5, self = this; - - return $send(children, 'any?', [], ($$5 = function(child){var self = $$5.$$s == null ? this : $$5.$$s; - + }, 1); + return $def(self, '$uses_splat?', function $BaseYieldNode_uses_splat$ques$2(children) { + + return $send(children, 'any?', [], function $$3(child){ - if (child == null) { - child = nil; - }; - return child.$type()['$==']("splat");}, $$5.$$s = self, $$5.$$arity = 1, $$5)) - }, $BaseYieldNode_uses_splat$ques$4.$$arity = 1), nil) && 'uses_splat?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + if (child == null) child = nil;; + return child.$type()['$==']("splat");}, 1) + }, 1); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'YieldNode'); - var $nesting = [self].concat($parent_nesting), $YieldNode_compile$6; - + self.$handle("yield"); - return (Opal.def(self, '$compile', $YieldNode_compile$6 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$compile_call() - }, $YieldNode_compile$6.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'BaseYieldNode'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('BaseYieldNode')); + return (function($base, $super) { var self = $klass($base, $super, 'ReturnableYieldNode'); - var $nesting = [self].concat($parent_nesting), $ReturnableYieldNode_compile$7; - + self.$handle("returnable_yield"); - return (Opal.def(self, '$compile', $ReturnableYieldNode_compile$7 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$compile_call(); return self.$wrap("return ", ";"); - }, $ReturnableYieldNode_compile$7.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'BaseYieldNode'), $nesting); + }, 0); + })($nesting[0], $$('BaseYieldNode')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/rescue"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; +Opal.modules["opal/nodes/rescue"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $def = Opal.def, $range = Opal.range, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$in_ensure', '$line', '$stmt', '$body_sexp', '$indent', '$has_rescue_else?', '$unshift', '$rescue_else_code', '$process', '$compiler', '$ensr_sexp', '$wrap_in_closure?', '$wrap', '$returns', '$begn', '$ensr', '$s', '$recv?', '$expr?', '$rescue_else_sexp', '$scope', '$stmt?', '$detect', '$[]', '$!=', '$type', '$rescue_else_sexp=', '$-', '$handle_rescue_else_manually?', '$in_rescue', '$body_code', '$each_with_index', '$==', '$retry_id', '$nil?', '$body', '$!', '$in_ensure?', '$gen_retry_id', '$attr_reader', '$expr', '$klasses', '$lvar', '$updated', '$in_resbody', '$rescue_body', '$klasses_sexp', '$in_resbody?', '$error', '$current_rescue']); + Opal.add_stubs('require,handle,children,push,in_ensure,line,stmt,body_sexp,indent,has_rescue_else?,unshift,rescue_else_code,process,compiler,ensr_sexp,wrap_in_closure?,await_encountered,scope,wrap,returns,begn,ensr,s,recv?,expr?,rescue_else_sexp,stmt?,detect,[],!=,type,rescue_else_sexp=,-,handle_rescue_else_manually?,in_rescue,body_code,each_with_index,==,retry_id,body,nil?,!,in_ensure?,gen_retry_id,attr_reader,expr,klasses,lvar,updated,in_resbody,rescue_body,klasses_sexp,in_resbody?,error,current_rescue'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -37646,28 +34277,27 @@ Opal.modules["opal/nodes/rescue"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'EnsureNode'); - var $nesting = [self].concat($parent_nesting), $EnsureNode_compile$1, $EnsureNode_body_sexp$6, $EnsureNode_ensr_sexp$7, $EnsureNode_wrap_in_closure$ques$8, $EnsureNode_rescue_else_code$9; - + self.$handle("ensure"); self.$children("begn", "ensr"); - Opal.def(self, '$compile', $EnsureNode_compile$1 = function $$compile() { - var $$2, $$3, self = this; + $def(self, '$compile', function $$compile() { + var self = this; self.$push("try {"); - $send(self, 'in_ensure', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + $send(self, 'in_ensure', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$line(self.$stmt(self.$body_sexp()))}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + return self.$line(self.$stmt(self.$body_sexp()))}, {$$arity: 0, $$s: self}); self.$line("} finally {"); - $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $$4; + $send(self, 'indent', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; if (self.level == null) self.level = nil; if ($truthy(self['$has_rescue_else?']())) { @@ -37675,29 +34305,33 @@ Opal.modules["opal/nodes/rescue"] = function(Opal) { self.$unshift("var $no_errors = true; "); self.$line("var $rescue_else_result;"); self.$line("if ($no_errors) { "); - $send(self, 'indent', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s, $$5; + $send(self, 'indent', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; self.$line("$rescue_else_result = (function() {"); - $send(self, 'indent', [], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; + $send(self, 'indent', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$line(self.$stmt(self.$rescue_else_code()))}, $$5.$$s = self, $$5.$$arity = 0, $$5)); - return self.$line("})();");}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + return self.$line(self.$stmt(self.$rescue_else_code()))}, {$$arity: 0, $$s: self}); + return self.$line("})();");}, {$$arity: 0, $$s: self}); self.$line("}"); self.$line(self.$compiler().$process(self.$ensr_sexp(), self.level)); return self.$line("if ($no_errors) { return $rescue_else_result; }"); } else { return self.$line(self.$compiler().$process(self.$ensr_sexp(), self.level)) - }}, $$3.$$s = self, $$3.$$arity = 0, $$3)); + }}, {$$arity: 0, $$s: self}); self.$line("}"); if ($truthy(self['$wrap_in_closure?']())) { - return self.$wrap("(function() { ", "; })()") + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() { ", "; })())") + } else { + return self.$wrap("(function() { ", "; })()") + } } else { return nil }; - }, $EnsureNode_compile$1.$$arity = 0); + }, 0); - Opal.def(self, '$body_sexp', $EnsureNode_body_sexp$6 = function $$body_sexp() { + $def(self, '$body_sexp', function $$body_sexp() { var self = this; if ($truthy(self['$wrap_in_closure?']())) { @@ -37705,9 +34339,9 @@ Opal.modules["opal/nodes/rescue"] = function(Opal) { } else { return self.$begn() } - }, $EnsureNode_body_sexp$6.$$arity = 0); + }, 0); - Opal.def(self, '$ensr_sexp', $EnsureNode_ensr_sexp$7 = function $$ensr_sexp() { + $def(self, '$ensr_sexp', function $$ensr_sexp() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$ensr()))) { @@ -37715,462 +34349,232 @@ Opal.modules["opal/nodes/rescue"] = function(Opal) { } else { return self.$s("nil") } - }, $EnsureNode_ensr_sexp$7.$$arity = 0); + }, 0); - Opal.def(self, '$wrap_in_closure?', $EnsureNode_wrap_in_closure$ques$8 = function() { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil; + $def(self, '$wrap_in_closure?', function $EnsureNode_wrap_in_closure$ques$5() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self['$recv?']()))) { - return $ret_or_3 - } else { - return self['$expr?']() - }; return nil; })()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self['$recv?']())) ? ($ret_or_2) : (self['$expr?']()))))) { + return $ret_or_1 } else { return self['$has_rescue_else?']() } - }, $EnsureNode_wrap_in_closure$ques$8.$$arity = 0); - return (Opal.def(self, '$rescue_else_code', $EnsureNode_rescue_else_code$9 = function $$rescue_else_code() { + }, 0); + return $def(self, '$rescue_else_code', function $$rescue_else_code() { var self = this, rescue_else_code = nil; rescue_else_code = self.$scope().$rescue_else_sexp(); - if ($truthy(self['$stmt?']())) { - } else { + if (!$truthy(self['$stmt?']())) { rescue_else_code = self.$compiler().$returns(rescue_else_code) }; return rescue_else_code; - }, $EnsureNode_rescue_else_code$9.$$arity = 0), nil) && 'rescue_else_code'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'RescueNode'); - var $nesting = [self].concat($parent_nesting), $RescueNode_compile$10, $RescueNode_body_code$18, $RescueNode_rescue_else_code$19, $RescueNode_handle_rescue_else_manually$ques$20, $RescueNode_gen_retry_id$21; + var $proto = self.$$prototype; - self.$$prototype.retry_id = nil; + $proto.retry_id = nil; self.$handle("rescue"); self.$children("body"); - Opal.def(self, '$compile', $RescueNode_compile$10 = function $$compile() { - var $$11, $$12, self = this, $writer = nil, _has_rescue_handlers = nil, $ret_or_6 = nil; + $def(self, '$compile', function $$compile() { + var self = this, $writer = nil, _has_rescue_handlers = nil; - $writer = [$send(self.$children()['$[]']($range(1, -1, false)), 'detect', [], ($$11 = function(sexp){var self = $$11.$$s == null ? this : $$11.$$s, $ret_or_4 = nil; + $writer = [$send(self.$children()['$[]']($range(1, -1, false)), 'detect', [], function $$6(sexp){var $ret_or_1 = nil; - if (sexp == null) { - sexp = nil; - }; - if ($truthy(($ret_or_4 = sexp))) { + if (sexp == null) sexp = nil;; + if ($truthy(($ret_or_1 = sexp))) { return sexp.$type()['$!=']("resbody") } else { - return $ret_or_4 - };}, $$11.$$s = self, $$11.$$arity = 1, $$11))]; - $send(self.$scope(), 'rescue_else_sexp=', Opal.to_a($writer)); + return $ret_or_1 + };}, 1)]; + $send(self.$scope(), 'rescue_else_sexp=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; _has_rescue_handlers = false; if ($truthy(self['$handle_rescue_else_manually?']())) { - self.$line("var $no_errors = true;")}; - $send(self, 'in_rescue', [self], ($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s, $$13, $$14, $$16; + self.$line("var $no_errors = true;") + }; + $send(self, 'in_rescue', [self], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s; self.$push("try {"); - $send(self, 'indent', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + $send(self, 'indent', [], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; - return self.$line(self.$stmt(self.$body_code()))}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return self.$line(self.$stmt(self.$body_code()))}, {$$arity: 0, $$s: self}); self.$line("} catch ($err) {"); - $send(self, 'indent', [], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s, $$15; + $send(self, 'indent', [], function $$9(){var self = $$9.$$s == null ? this : $$9.$$s; if ($truthy(self['$has_rescue_else?']())) { - self.$line("$no_errors = false;")}; - $send(self.$children()['$[]']($range(1, -1, false)), 'each_with_index', [], ($$15 = function(child, idx){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_5 = nil; + self.$line("$no_errors = false;") + }; + $send(self.$children()['$[]']($range(1, -1, false)), 'each_with_index', [], function $$10(child, idx){var self = $$10.$$s == null ? this : $$10.$$s; if (self.level == null) self.level = nil; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_5 = child))) { - return child.$type()['$==']("resbody") - } else { - return $ret_or_5 - }; return nil; })())) { - } else { + if (idx == null) idx = nil;; + if (!($truthy(child) && ($eqeq(child.$type(), "resbody")))) { return nil; }; _has_rescue_handlers = true; - if (idx['$=='](0)) { - } else { + if (!$eqeq(idx, 0)) { self.$push(" else ") }; - return self.$line(self.$process(child, self.level));}, $$15.$$s = self, $$15.$$arity = 2, $$15)); - return self.$push(" else { throw $err; }");}, $$14.$$s = self, $$14.$$arity = 0, $$14)); + return self.$line(self.$process(child, self.level));}, {$$arity: 2, $$s: self}); + return self.$push(" else { throw $err; }");}, {$$arity: 0, $$s: self}); self.$line("}"); if ($truthy(self['$handle_rescue_else_manually?']())) { self.$push("finally {"); - $send(self, 'indent', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + $send(self, 'indent', [], function $$11(){var self = $$11.$$s == null ? this : $$11.$$s; self.$line("if ($no_errors) { "); - $send(self, 'indent', [], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; + $send(self, 'indent', [], function $$12(){var self = $$12.$$s == null ? this : $$12.$$s; - return self.$line(self.$stmt(self.$rescue_else_code()))}, $$17.$$s = self, $$17.$$arity = 0, $$17)); - return self.$line("}");}, $$16.$$s = self, $$16.$$arity = 0, $$16)); - self.$push("}");}; + return self.$line(self.$stmt(self.$rescue_else_code()))}, {$$arity: 0, $$s: self}); + return self.$line("}");}, {$$arity: 0, $$s: self}); + self.$push("}"); + }; if ($truthy(self.$retry_id())) { return self.$wrap("" + (self.$retry_id()) + ": do { ", " break; } while(1)") } else { return nil - };}, $$12.$$s = self, $$12.$$arity = 0, $$12)); - if ($truthy((function() {if ($truthy(($ret_or_6 = self['$expr?']()))) { - return $ret_or_6 - } else { - return self['$recv?']() - }; return nil; })())) { - return self.$wrap("(function() { ", "})()") + };}, {$$arity: 0, $$s: self}); + if (($truthy(self['$expr?']()) || ($truthy(self['$recv?']())))) { + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() { ", "})())") + } else { + return self.$wrap("(function() { ", "})()") + } } else { return nil }; - }, $RescueNode_compile$10.$$arity = 0); + }, 0); - Opal.def(self, '$body_code', $RescueNode_body_code$18 = function $$body_code() { - var self = this, body_code = nil, $ret_or_7 = nil; + $def(self, '$body_code', function $$body_code() { + var self = this, body_code = nil; - body_code = (function() {if ($truthy((function() {if ($truthy(($ret_or_7 = self.$body()['$nil?']()))) { - return $ret_or_7 - } else { - return self.$body().$type()['$==']("resbody") - }; return nil; })())) { - return self.$s("nil") - } else { - return self.$body() - }; return nil; })(); - if ($truthy(self['$stmt?']())) { - } else { + body_code = (($truthy(self.$body()['$nil?']()) || ($eqeq(self.$body().$type(), "resbody"))) ? (self.$s("nil")) : (self.$body())); + if (!$truthy(self['$stmt?']())) { body_code = self.$compiler().$returns(body_code) }; return body_code; - }, $RescueNode_body_code$18.$$arity = 0); + }, 0); - Opal.def(self, '$rescue_else_code', $RescueNode_rescue_else_code$19 = function $$rescue_else_code() { + $def(self, '$rescue_else_code', function $$rescue_else_code() { var self = this, rescue_else_code = nil; rescue_else_code = self.$scope().$rescue_else_sexp(); - if ($truthy(self['$stmt?']())) { - } else { + if (!$truthy(self['$stmt?']())) { rescue_else_code = self.$compiler().$returns(rescue_else_code) }; return rescue_else_code; - }, $RescueNode_rescue_else_code$19.$$arity = 0); + }, 0); - Opal.def(self, '$handle_rescue_else_manually?', $RescueNode_handle_rescue_else_manually$ques$20 = function() { - var self = this, $ret_or_8 = nil; + $def(self, '$handle_rescue_else_manually?', function $RescueNode_handle_rescue_else_manually$ques$13() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_8 = self['$in_ensure?']()['$!']()))) { + if ($truthy(($ret_or_1 = self['$in_ensure?']()['$!']()))) { return self['$has_rescue_else?']() } else { - return $ret_or_8 + return $ret_or_1 } - }, $RescueNode_handle_rescue_else_manually$ques$20.$$arity = 0); + }, 0); - Opal.def(self, '$gen_retry_id', $RescueNode_gen_retry_id$21 = function $$gen_retry_id() { - var self = this, $ret_or_9 = nil; + $def(self, '$gen_retry_id', function $$gen_retry_id() { + var self = this, $ret_or_1 = nil; - return (self.retry_id = (function() {if ($truthy(($ret_or_9 = self.retry_id))) { - return $ret_or_9 - } else { - return self.$scope().$gen_retry_id() - }; return nil; })()) - }, $RescueNode_gen_retry_id$21.$$arity = 0); + return (self.retry_id = ($truthy(($ret_or_1 = self.retry_id)) ? ($ret_or_1) : (self.$scope().$gen_retry_id()))) + }, 0); return self.$attr_reader("retry_id"); - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'ResBodyNode'); - var $nesting = [self].concat($parent_nesting), $ResBodyNode_compile$22, $ResBodyNode_klasses$26, $ResBodyNode_rescue_body$27; - + self.$handle("resbody"); self.$children("klasses_sexp", "lvar", "body"); - Opal.def(self, '$compile', $ResBodyNode_compile$22 = function $$compile() { - var $$23, self = this; + $def(self, '$compile', function $$compile() { + var self = this; self.$push("if (Opal.rescue($err, ", self.$expr(self.$klasses()), ")) {"); - $send(self, 'indent', [], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s, $$24; + $send(self, 'indent', [], function $$14(){var self = $$14.$$s == null ? this : $$14.$$s; if ($truthy(self.$lvar())) { - self.$push(self.$expr(self.$lvar().$updated(nil, [].concat(Opal.to_a(self.$lvar().$children())).concat([self.$s("js_tmp", "$err")]))))}; + self.$push(self.$expr(self.$lvar().$updated(nil, [].concat($to_a(self.$lvar().$children())).concat([self.$s("js_tmp", "$err")])))) + }; self.$line("try {"); - $send(self, 'indent', [], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s, $$25; + $send(self, 'indent', [], function $$15(){var self = $$15.$$s == null ? this : $$15.$$s; - return $send(self, 'in_resbody', [], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s; + return $send(self, 'in_resbody', [], function $$16(){var self = $$16.$$s == null ? this : $$16.$$s; - return self.$line(self.$stmt(self.$rescue_body()))}, $$25.$$s = self, $$25.$$arity = 0, $$25))}, $$24.$$s = self, $$24.$$arity = 0, $$24)); - return self.$line("} finally { Opal.pop_exception(); }");}, $$23.$$s = self, $$23.$$arity = 0, $$23)); + return self.$line(self.$stmt(self.$rescue_body()))}, {$$arity: 0, $$s: self})}, {$$arity: 0, $$s: self}); + return self.$line("} finally { Opal.pop_exception(); }");}, {$$arity: 0, $$s: self}); return self.$line("}"); - }, $ResBodyNode_compile$22.$$arity = 0); + }, 0); - Opal.def(self, '$klasses', $ResBodyNode_klasses$26 = function $$klasses() { - var self = this, $ret_or_10 = nil; + $def(self, '$klasses', function $$klasses() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_10 = self.$klasses_sexp()))) { - return $ret_or_10 + if ($truthy(($ret_or_1 = self.$klasses_sexp()))) { + return $ret_or_1 } else { return self.$s("array", self.$s("const", nil, "StandardError")) } - }, $ResBodyNode_klasses$26.$$arity = 0); - return (Opal.def(self, '$rescue_body', $ResBodyNode_rescue_body$27 = function $$rescue_body() { - var self = this, body_code = nil, $ret_or_11 = nil; + }, 0); + return $def(self, '$rescue_body', function $$rescue_body() { + var self = this, body_code = nil, $ret_or_1 = nil; - body_code = (function() {if ($truthy(($ret_or_11 = self.$body()))) { - return $ret_or_11 - } else { - return self.$s("nil") - }; return nil; })(); - if ($truthy(self['$stmt?']())) { - } else { + body_code = ($truthy(($ret_or_1 = self.$body())) ? ($ret_or_1) : (self.$s("nil"))); + if (!$truthy(self['$stmt?']())) { body_code = self.$compiler().$returns(body_code) }; return body_code; - }, $ResBodyNode_rescue_body$27.$$arity = 0), nil) && 'rescue_body'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'RetryNode'); - var $nesting = [self].concat($parent_nesting), $RetryNode_compile$28; - + self.$handle("retry"); - return (Opal.def(self, '$compile', $RetryNode_compile$28 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - if ($truthy(self['$in_resbody?']())) { - } else { + if (!$truthy(self['$in_resbody?']())) { self.$error("Invalid retry") }; - return self.$push("" + "continue " + (self.$scope().$current_rescue().$gen_retry_id())); - }, $RetryNode_compile$28.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; - -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/case"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; - - Opal.add_stubs(['$require', '$handle', '$children', '$in_case', '$compiler', '$compile_code', '$needs_closure?', '$wrap', '$condition', '$[]=', '$case_stmt', '$-', '$add_local', '$push', '$expr', '$each_with_index', '$case_parts', '$line', '$type', '$===', '$returns', '$==', '$stmt', '$!', '$stmt?', '$[]', '$when_checks', '$js_truthy', '$s', '$process', '$body_code', '$last']); - - self.$require("opal/nodes/base"); - return (function($base, $parent_nesting) { - var self = $module($base, 'Opal'); - - var $nesting = [self].concat($parent_nesting); - - return (function($base, $parent_nesting) { - var self = $module($base, 'Nodes'); - - var $nesting = [self].concat($parent_nesting); - - - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'CaseNode'); - - var $nesting = [self].concat($parent_nesting), $CaseNode_compile$1, $CaseNode_compile_code$3, $CaseNode_needs_closure$ques$5, $CaseNode_case_parts$6, $CaseNode_case_stmt$7; - - - self.$handle("case"); - self.$children("condition"); - - Opal.def(self, '$compile', $CaseNode_compile$1 = function $$compile() { - var $$2, self = this; - - return $send(self.$compiler(), 'in_case', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - - - self.$compile_code(); - if ($truthy(self['$needs_closure?']())) { - return self.$wrap("(function() {", "})()") - } else { - return nil - };}, $$2.$$s = self, $$2.$$arity = 0, $$2)) - }, $CaseNode_compile$1.$$arity = 0); - - Opal.def(self, '$compile_code', $CaseNode_compile_code$3 = function $$compile_code() { - var $$4, self = this, handled_else = nil, $writer = nil, $ret_or_1 = nil; - - - handled_else = false; - if ($truthy(self.$condition())) { - - - $writer = ["cond", true]; - $send(self.$case_stmt(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.$add_local("$case"); - self.$push("$case = ", self.$expr(self.$condition()), ";");}; - $send(self.$case_parts(), 'each_with_index', [], ($$4 = function(wen, idx){var self = $$4.$$s == null ? this : $$4.$$s, $case = nil; - - - - if (wen == null) { - wen = nil; - }; - - if (idx == null) { - idx = nil; - }; - if ($truthy(wen)) { - } else { - return nil; - }; - self.$line(); - return (function() {$case = wen.$type(); - if ("when"['$===']($case)) { - if ($truthy(self['$needs_closure?']())) { - wen = self.$compiler().$returns(wen)}; - if (idx['$=='](0)) { - } else { - self.$push("else ") - }; - return self.$push(self.$stmt(wen));} - else { - handled_else = true; - if ($truthy(self['$needs_closure?']())) { - wen = self.$compiler().$returns(wen)}; - return self.$push("else {", self.$stmt(wen), "}");}})();}, $$4.$$s = self, $$4.$$arity = 2, $$4)); - if ($truthy((function() {if ($truthy(($ret_or_1 = self['$needs_closure?']()))) { - return handled_else['$!']() - } else { - return $ret_or_1 - }; return nil; })())) { - - self.$line(); - return self.$push("else { return nil }"); - } else { - return nil - }; - }, $CaseNode_compile_code$3.$$arity = 0); - - Opal.def(self, '$needs_closure?', $CaseNode_needs_closure$ques$5 = function() { - var self = this; - - return self['$stmt?']()['$!']() - }, $CaseNode_needs_closure$ques$5.$$arity = 0); - - Opal.def(self, '$case_parts', $CaseNode_case_parts$6 = function $$case_parts() { - var self = this; - - return self.$children()['$[]']($range(1, -1, false)) - }, $CaseNode_case_parts$6.$$arity = 0); - return (Opal.def(self, '$case_stmt', $CaseNode_case_stmt$7 = function $$case_stmt() { - var self = this; - - return self.$compiler().$case_stmt() - }, $CaseNode_case_stmt$7.$$arity = 0), nil) && 'case_stmt'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'WhenNode'); - - var $nesting = [self].concat($parent_nesting), $WhenNode_compile$8, $WhenNode_when_checks$10, $WhenNode_case_stmt$11, $WhenNode_body_code$12; - - self.$$prototype.level = nil; - - self.$handle("when"); - self.$children("whens", "body"); - - Opal.def(self, '$compile', $WhenNode_compile$8 = function $$compile() { - var $$9, self = this; - - - self.$push("if ("); - $send(self.$when_checks(), 'each_with_index', [], ($$9 = function(check, idx){var self = $$9.$$s == null ? this : $$9.$$s, call = nil; - - - - if (check == null) { - check = nil; - }; - - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { - } else { - self.$push(" || ") - }; - if (check.$type()['$==']("splat")) { - - self.$push("(function($splt) { for (var i = 0, ii = $splt.length; i < ii; i++) {"); - if ($truthy(self.$case_stmt()['$[]']("cond"))) { - self.$push("if ($splt[i]['$===']($case)) { return true; }") - } else { - self.$push("if (", self.$js_truthy(check), ")) { return true; }") - }; - return self.$push("} return false; })(", self.$expr(check.$children()['$[]'](0)), ")"); - } else if ($truthy(self.$case_stmt()['$[]']("cond"))) { - - call = self.$s("send", check, "===", self.$s("arglist", self.$s("js_tmp", "$case"))); - return self.$push(self.$expr(call)); - } else { - return self.$push(self.$js_truthy(check)) - };}, $$9.$$s = self, $$9.$$arity = 2, $$9)); - return self.$push(") {", self.$process(self.$body_code(), self.level), "}"); - }, $WhenNode_compile$8.$$arity = 0); - - Opal.def(self, '$when_checks', $WhenNode_when_checks$10 = function $$when_checks() { - var self = this; - - return self.$children()['$[]']($range(0, -2, false)) - }, $WhenNode_when_checks$10.$$arity = 0); - - Opal.def(self, '$case_stmt', $WhenNode_case_stmt$11 = function $$case_stmt() { - var self = this; - - return self.$compiler().$case_stmt() - }, $WhenNode_case_stmt$11.$$arity = 0); - return (Opal.def(self, '$body_code', $WhenNode_body_code$12 = function $$body_code() { - var self = this, $ret_or_2 = nil; - - if ($truthy(($ret_or_2 = self.$children().$last()))) { - return $ret_or_2 - } else { - return self.$s("nil") - } - }, $WhenNode_body_code$12.$$arity = 0), nil) && 'body_code'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("continue " + (self.$scope().$current_rescue().$gen_retry_id())); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/super"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/super"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def, $to_ary = Opal.to_ary, $eqeq = Opal.eqeq, $not = Opal.not, $eqeqeq = Opal.eqeqeq, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt; - Opal.add_stubs(['$require', '$include?', '$type', '$s', '$helper', '$push', '$compile_receiver', '$compile_method_body', '$compile_method_name', '$compile_arguments', '$compile_block_pass', '$private', '$def?', '$scope', '$find_parent_def', '$to_s', '$mid', '$def_scope', '$identify!', '$method_id', '$def_scope_identity', '$defined_check_param', '$allow_stubs', '$super_chain', '$join', '$map', '$implicit_arguments_param', '$super_method_invocation', '$iter?', '$super_block_invocation', '$raise', '$handle', '$wrap', '$uses_block!', '$compile_using_send', '$==', '$iter', '$uses_zuper=', '$-', '$block_name', '$!', '$<<', '$empty?', '$children', '$arglist', '$expr', '$===']); + Opal.add_stubs('require,include?,type,s,helper,push,compile_receiver,compile_method_body,compile_method_name,compile_arguments,compile_block_pass,private,def?,scope,find_parent_def,to_s,mid,def_scope,identify!,self,method_id,def_scope_identity,defined_check_param,allow_stubs,super_chain,join,map,implicit_arguments_param,super_method_invocation,iter?,super_block_invocation,raise,handle,wrap,uses_block!,compile_using_send,==,iter,block_name,implicit_arglist,!,<<,new,each,children,original_args,[],===,+,[]=,-,>,meta,empty?'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -38181,48 +34585,41 @@ Opal.modules["opal/nodes/super"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'BaseSuperNode'); - var $nesting = [self].concat($parent_nesting), $BaseSuperNode_initialize$1, $BaseSuperNode_compile_using_send$2, $BaseSuperNode_def_scope$3, $BaseSuperNode_defined_check_param$4, $BaseSuperNode_implicit_arguments_param$5, $BaseSuperNode_method_id$6, $BaseSuperNode_def_scope_identity$7, $BaseSuperNode_allow_stubs$8, $BaseSuperNode_super_method_invocation$9, $BaseSuperNode_super_block_invocation$10, $BaseSuperNode_compile_method_body$12, $BaseSuperNode_compile_method_name$13; + var $proto = self.$$prototype; - self.$$prototype.sexp = self.$$prototype.def_scope = nil; + $proto.sexp = $proto.def_scope = nil; - Opal.def(self, '$initialize', $BaseSuperNode_initialize$1 = function $$initialize($a) { - var $post_args, $b, $c, $iter = $BaseSuperNode_initialize$1.$$p, $yield = $iter || nil, self = this, args = nil, rest = nil, last_child = nil, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $b, $c, $yield = $$initialize.$$p || nil, self = this, args = nil, rest = nil, last_child = nil; - if ($iter) $BaseSuperNode_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $BaseSuperNode_initialize$1, false, true), 'initialize', $zuper, $iter); - args = [].concat(Opal.to_a(self.sexp)); - $b = [].concat(Opal.to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_child = ($b[$c] == null ? nil : $b[$c])), $b; - if ($truthy((function() {if ($truthy(($ret_or_1 = last_child))) { - return ["iter", "block_pass"]['$include?'](last_child.$type()) - } else { - return $ret_or_1 - }; return nil; })())) { + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + args = [].concat($to_a(self.sexp)); + $b = [].concat($to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_child = ($b[$c] == null ? nil : $b[$c])), $b; + if (($truthy(last_child) && ($truthy(["iter", "block_pass"]['$include?'](last_child.$type()))))) { self.iter = last_child; args = rest; } else { self.iter = self.$s("js_tmp", "null") }; - self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(args))); + self.arglist = $send(self, 's', ["arglist"].concat($to_a(args))); return (self.recvr = self.$s("self")); - }, $BaseSuperNode_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$compile_using_send', $BaseSuperNode_compile_using_send$2 = function $$compile_using_send() { + $def(self, '$compile_using_send', function $$compile_using_send() { var self = this; @@ -38234,77 +34631,65 @@ Opal.modules["opal/nodes/super"] = function(Opal) { self.$compile_arguments(); self.$compile_block_pass(); return self.$push(")"); - }, $BaseSuperNode_compile_using_send$2.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$def_scope', $BaseSuperNode_def_scope$3 = function $$def_scope() { - var self = this, $ret_or_2 = nil; + $def(self, '$def_scope', function $$def_scope() { + var self = this, $ret_or_1 = nil; - return (self.def_scope = (function() {if ($truthy(($ret_or_2 = self.def_scope))) { - return $ret_or_2 - } else if ($truthy(self.$scope()['$def?']())) { - return self.$scope() - } else { - return self.$scope().$find_parent_def() - }; return nil; })()) - }, $BaseSuperNode_def_scope$3.$$arity = 0); + return (self.def_scope = ($truthy(($ret_or_1 = self.def_scope)) ? ($ret_or_1) : ($truthy(self.$scope()['$def?']()) ? (self.$scope()) : (self.$scope().$find_parent_def())))) + }, 0); - Opal.def(self, '$defined_check_param', $BaseSuperNode_defined_check_param$4 = function $$defined_check_param() { - var self = this; - + $def(self, '$defined_check_param', function $$defined_check_param() { + return "false" - }, $BaseSuperNode_defined_check_param$4.$$arity = 0); + }, 0); - Opal.def(self, '$implicit_arguments_param', $BaseSuperNode_implicit_arguments_param$5 = function $$implicit_arguments_param() { - var self = this; - + $def(self, '$implicit_arguments_param', function $$implicit_arguments_param() { + return "false" - }, $BaseSuperNode_implicit_arguments_param$5.$$arity = 0); + }, 0); - Opal.def(self, '$method_id', $BaseSuperNode_method_id$6 = function $$method_id() { + $def(self, '$method_id', function $$method_id() { var self = this; return self.$def_scope().$mid().$to_s() - }, $BaseSuperNode_method_id$6.$$arity = 0); + }, 0); - Opal.def(self, '$def_scope_identity', $BaseSuperNode_def_scope_identity$7 = function $$def_scope_identity() { + $def(self, '$def_scope_identity', function $$def_scope_identity() { var self = this; return self.$def_scope()['$identify!'](self.$def_scope().$mid()) - }, $BaseSuperNode_def_scope_identity$7.$$arity = 0); + }, 0); - Opal.def(self, '$allow_stubs', $BaseSuperNode_allow_stubs$8 = function $$allow_stubs() { - var self = this; - + $def(self, '$allow_stubs', function $$allow_stubs() { + return "true" - }, $BaseSuperNode_allow_stubs$8.$$arity = 0); + }, 0); - Opal.def(self, '$super_method_invocation', $BaseSuperNode_super_method_invocation$9 = function $$super_method_invocation() { + $def(self, '$super_method_invocation', function $$super_method_invocation() { var self = this; self.$helper("find_super"); - return "" + "$find_super(self, '" + (self.$method_id()) + "', " + (self.$def_scope_identity()) + ", " + (self.$defined_check_param()) + ", " + (self.$allow_stubs()) + ")"; - }, $BaseSuperNode_super_method_invocation$9.$$arity = 0); + return "$find_super(" + (self.$scope().$self()) + ", '" + (self.$method_id()) + "', " + (self.$def_scope_identity()) + ", " + (self.$defined_check_param()) + ", " + (self.$allow_stubs()) + ")"; + }, 0); - Opal.def(self, '$super_block_invocation', $BaseSuperNode_super_block_invocation$10 = function $$super_block_invocation() { - var $a, $b, $$11, self = this, chain = nil, cur_defn = nil, mid = nil, trys = nil; + $def(self, '$super_block_invocation', function $$super_block_invocation() { + var $a, $b, self = this, chain = nil, cur_defn = nil, mid = nil, trys = nil; self.$helper("find_block_super"); - $b = self.$scope().$super_chain(), $a = Opal.to_ary($b), (chain = ($a[0] == null ? nil : $a[0])), (cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; - trys = $send(chain, 'map', [], ($$11 = function(c){var self = $$11.$$s == null ? this : $$11.$$s; - + $b = self.$scope().$super_chain(), $a = $to_ary($b), (chain = ($a[0] == null ? nil : $a[0])), (cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; + trys = $send(chain, 'map', [], function $$1(c){ - if (c == null) { - c = nil; - }; - return "" + (c) + ".$$def";}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$join(" || "); - return "" + "$find_block_super(self, " + (mid) + ", (" + (trys) + " || " + (cur_defn) + "), " + (self.$defined_check_param()) + ", " + (self.$implicit_arguments_param()) + ")"; - }, $BaseSuperNode_super_block_invocation$10.$$arity = 0); + if (c == null) c = nil;; + return "" + (c) + ".$$def";}, 1).$join(" || "); + return "$find_block_super(" + (self.$scope().$self()) + ", " + (mid) + ", (" + (trys) + " || " + (cur_defn) + "), " + (self.$defined_check_param()) + ", " + (self.$implicit_arguments_param()) + ")"; + }, 0); - Opal.def(self, '$compile_method_body', $BaseSuperNode_compile_method_body$12 = function $$compile_method_body() { + $def(self, '$compile_method_body', function $$compile_method_body() { var self = this; @@ -38316,183 +34701,203 @@ Opal.modules["opal/nodes/super"] = function(Opal) { } else { return self.$raise("super must be called from method body or block") }; - }, $BaseSuperNode_compile_method_body$12.$$arity = 0); - return (Opal.def(self, '$compile_method_name', $BaseSuperNode_compile_method_name$13 = function $$compile_method_name() { + }, 0); + return $def(self, '$compile_method_name', function $$compile_method_name() { var $a, $b, self = this, _chain = nil, _cur_defn = nil, mid = nil; if ($truthy(self.$scope()['$def?']())) { - return self.$push("" + ", '" + (self.$method_id()) + "'") + return self.$push(", '" + (self.$method_id()) + "'") } else if ($truthy(self.$scope()['$iter?']())) { - $b = self.$scope().$super_chain(), $a = Opal.to_ary($b), (_chain = ($a[0] == null ? nil : $a[0])), (_cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; - return self.$push("" + ", " + (mid)); + $b = self.$scope().$super_chain(), $a = $to_ary($b), (_chain = ($a[0] == null ? nil : $a[0])), (_cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; + return self.$push(", " + (mid)); } else { return nil } - }, $BaseSuperNode_compile_method_name$13.$$arity = 0), nil) && 'compile_method_name'; - })($nesting[0], $$($nesting, 'CallNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('CallNode')); + (function($base, $super) { var self = $klass($base, $super, 'DefinedSuperNode'); - var $nesting = [self].concat($parent_nesting), $DefinedSuperNode_allow_stubs$14, $DefinedSuperNode_defined_check_param$15, $DefinedSuperNode_compile$16; - + self.$handle("defined_super"); - Opal.def(self, '$allow_stubs', $DefinedSuperNode_allow_stubs$14 = function $$allow_stubs() { - var self = this; - + $def(self, '$allow_stubs', function $$allow_stubs() { + return "false" - }, $DefinedSuperNode_allow_stubs$14.$$arity = 0); + }, 0); - Opal.def(self, '$defined_check_param', $DefinedSuperNode_defined_check_param$15 = function $$defined_check_param() { - var self = this; - + $def(self, '$defined_check_param', function $$defined_check_param() { + return "true" - }, $DefinedSuperNode_defined_check_param$15.$$arity = 0); - return (Opal.def(self, '$compile', $DefinedSuperNode_compile$16 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this; self.$compile_receiver(); self.$compile_method_body(); return self.$wrap("((", ") != null ? \"super\" : nil)"); - }, $DefinedSuperNode_compile$16.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'BaseSuperNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('BaseSuperNode')); + (function($base, $super) { var self = $klass($base, $super, 'SuperNode'); - var $nesting = [self].concat($parent_nesting), $SuperNode_initialize$17, $SuperNode_compile$18; - + self.$handle("super"); - Opal.def(self, '$initialize', $SuperNode_initialize$17 = function $$initialize($a) { - var $post_args, $iter = $SuperNode_initialize$17.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $SuperNode_initialize$17.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $SuperNode_initialize$17, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); if ($truthy(self.$scope()['$def?']())) { return self.$scope()['$uses_block!']() } else { return nil }; - }, $SuperNode_initialize$17.$$arity = -1); - return (Opal.def(self, '$compile', $SuperNode_compile$18 = function $$compile() { + }, -1); + return $def(self, '$compile', function $$compile() { var self = this; return self.$compile_using_send() - }, $SuperNode_compile$18.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'BaseSuperNode'), $nesting); + }, 0); + })($nesting[0], $$('BaseSuperNode')); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ZsuperNode'); - var $nesting = [self].concat($parent_nesting), $ZsuperNode_implicit_arguments_param$19, $ZsuperNode_initialize$20, $ZsuperNode_compile$21, $ZsuperNode_compile_arguments$22, $ZsuperNode_block_name$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("zsuper"); - Opal.def(self, '$implicit_arguments_param', $ZsuperNode_implicit_arguments_param$19 = function $$implicit_arguments_param() { - var self = this; - + $def(self, '$implicit_arguments_param', function $$implicit_arguments_param() { + return "true" - }, $ZsuperNode_implicit_arguments_param$19.$$arity = 0); + }, 0); - Opal.def(self, '$initialize', $ZsuperNode_initialize$20 = function $$initialize($a) { - var $post_args, $iter = $ZsuperNode_initialize$20.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $ZsuperNode_initialize$20.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $ZsuperNode_initialize$20, false, true), 'initialize', $zuper, $iter); - if (self.$iter().$type()['$==']("iter")) { + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + if ($eqeq(self.$iter().$type(), "iter")) { return nil } else { self.$scope()['$uses_block!'](); - return (self.iter = self.$s("js_tmp", "$iter")); + return (self.iter = self.$s("js_tmp", ($truthy(($ret_or_1 = self.$scope().$block_name())) ? ($ret_or_1) : ("$yield")))); }; - }, $ZsuperNode_initialize$20.$$arity = -1); + }, -1); - Opal.def(self, '$compile', $ZsuperNode_compile$21 = function $$compile() { - var self = this, $writer = nil, implicit_args = nil, $ret_or_3 = nil, block_pass = nil; + $def(self, '$compile', function $$compile() { + var self = this, implicit_args = nil, block_pass = nil; if ($truthy(self.$def_scope())) { - - $writer = [true]; - $send(self.$def_scope(), 'uses_zuper=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - implicit_args = [self.$s("js_tmp", "$zuper")]; - if ($truthy((function() {if ($truthy(($ret_or_3 = self.$block_name()))) { - return self.$iter()['$!']() - } else { - return $ret_or_3 - }; return nil; })())) { + implicit_args = self.$implicit_arglist(); + if (($truthy(self.$block_name()) && ($not(self.$iter())))) { block_pass = self.$s("block_pass", self.$s("lvar", self.$block_name())); - implicit_args['$<<'](block_pass);}; - self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(implicit_args)));}; + implicit_args['$<<'](block_pass); + }; + self.arglist = $send(self, 's', ["arglist"].concat($to_a(implicit_args))); + }; return self.$compile_using_send(); - }, $ZsuperNode_compile$21.$$arity = 0); + }, 0); - Opal.def(self, '$compile_arguments', $ZsuperNode_compile_arguments$22 = function $$compile_arguments() { - var self = this; + $def(self, '$implicit_arglist', function $$implicit_arglist() { + var self = this, args = nil, kwargs = nil, same_arg_counter = nil; - self.$push(", "); - if ($truthy(self.$arglist().$children()['$empty?']())) { - return self.$push("[]") - } else { - return self.$push(self.$expr(self.$arglist())) + args = []; + kwargs = []; + same_arg_counter = $$('Hash').$new(0); + $send(self.$def_scope().$original_args().$children(), 'each', [], function $$2(sexp){var self = $$2.$$s == null ? this : $$2.$$s, lvar_name = nil, $ret_or_1 = nil, arg_node = nil, $writer = nil, key_name = nil; + + + + if (sexp == null) sexp = nil;; + lvar_name = sexp.$children()['$[]'](0); + if (($eqeqeq("arg", ($ret_or_1 = sexp.$type())) || ($eqeqeq("optarg", $ret_or_1)))) { + + arg_node = self.$s("lvar", lvar_name); + if ($eqeq(lvar_name['$[]'](0), "_")) { + + + $writer = [lvar_name, $rb_plus(same_arg_counter['$[]'](lvar_name), 1)]; + $send(same_arg_counter, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy($rb_gt(same_arg_counter['$[]'](lvar_name), 1))) { + arg_node = self.$s("js_tmp", "" + (lvar_name) + "_$" + (same_arg_counter['$[]'](lvar_name))) + }; + }; + return args['$<<'](arg_node); + } else if ($eqeqeq("restarg", $ret_or_1)) { + + arg_node = ($truthy(lvar_name) ? (self.$s("lvar", lvar_name)) : (self.$s("js_tmp", "$rest_arg"))); + return args['$<<'](self.$s("splat", arg_node)); + } else if (($eqeqeq("kwarg", $ret_or_1) || ($eqeqeq("kwoptarg", $ret_or_1)))) { + + key_name = sexp.$meta()['$[]']("arg_name"); + return kwargs['$<<'](self.$s("pair", self.$s("sym", key_name), self.$s("lvar", lvar_name))); + } else if ($eqeqeq("kwrestarg", $ret_or_1)) { + + arg_node = ($truthy(lvar_name) ? (self.$s("lvar", lvar_name)) : (self.$s("js_tmp", "$kw_rest_arg"))); + return kwargs['$<<'](self.$s("kwsplat", arg_node)); + } else { + return nil + };}, {$$arity: 1, $$s: self}); + if (!$truthy(kwargs['$empty?']())) { + args['$<<']($send(self, 's', ["hash"].concat($to_a(kwargs)))) }; - }, $ZsuperNode_compile_arguments$22.$$arity = 0); - return (Opal.def(self, '$block_name', $ZsuperNode_block_name$23 = function $$block_name() { - var self = this, $case = nil; + return args; + }, 0); + return $def(self, '$block_name', function $$block_name() { + var self = this, $ret_or_1 = nil; - return (function() {$case = self.$def_scope(); - if ($$$($$$($$($nesting, 'Opal'), 'Nodes'), 'IterNode')['$===']($case)) {return self.$def_scope().$block_name()} - else if ($$$($$$($$($nesting, 'Opal'), 'Nodes'), 'DefNode')['$===']($case)) {return self.$def_scope().$block_name()} - else {return self.$raise("" + "Don't know what to do with super in the scope " + (self.$def_scope()))}})() - }, $ZsuperNode_block_name$23.$$arity = 0), nil) && 'block_name'; - })($nesting[0], $$($nesting, 'SuperNode'), $nesting); + if ($eqeqeq($$$($$$($$('Opal'), 'Nodes'), 'IterNode'), ($ret_or_1 = self.$def_scope()))) { + return self.$def_scope().$block_name() + } else if ($eqeqeq($$$($$$($$('Opal'), 'Nodes'), 'DefNode'), $ret_or_1)) { + return self.$def_scope().$block_name() + } else { + return self.$raise("Don't know what to do with super in the scope " + (self.$def_scope())) + } + }, 0); + })($nesting[0], $$('SuperNode'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["opal/version"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set; return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); var $nesting = [self].concat($parent_nesting); - return Opal.const_set($nesting[0], 'VERSION', "1.3.0.dev") + return $const_set($nesting[0], 'VERSION', "1.5.0.dev") })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/top"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/top"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$version_comment', '$opening', '$in_scope', '$use_strict?', '$compiler', '$line', '$stmt', '$stmts', '$is_a?', '$eval?', '$add_temp', '$add_used_helpers', '$add_used_operators', '$to_vars', '$scope', '$compile_method_stubs', '$compile_irb_vars', '$compile_end_construct', '$closing', '$requirable?', '$inspect', '$module_name', '$file', '$esm?', '$returns', '$body', '$irb?', '$each', '$to_a', '$helpers', '$operator_helpers', '$[]', '$method_missing?', '$method_calls', '$join', '$map', '$empty?', '$eof_content']); + Opal.add_stubs('require,handle,children,top_scope=,compiler,-,[],meta,sexp,dynamic_cache_result=,push,version_comment,in_scope,==,body,s,line,use_strict?,stmt,stmts,is_a?,eval?,add_temp,add_used_helpers,to_vars,scope,compile_method_stubs,compile_irb_vars,compile_end_construct,opening,closing,await_encountered,requirable?,unshift,inspect,module_name,file,esm?,returns,irb?,each,to_a,helpers,method_missing?,method_calls,join,map,to_proc,empty?,eof_content'); self.$require("pathname"); self.$require("opal/version"); @@ -38505,86 +34910,125 @@ Opal.modules["opal/nodes/top"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'TopNode'); - var $nesting = [self].concat($parent_nesting), $TopNode_compile$1, $TopNode_opening$3, $TopNode_closing$4, $TopNode_stmts$5, $TopNode_compile_irb_vars$6, $TopNode_add_used_helpers$7, $TopNode_add_used_operators$9, $TopNode_compile_method_stubs$11, $TopNode_compile_end_construct$13, $TopNode_version_comment$14; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("top"); self.$children("body"); - Opal.def(self, '$compile', $TopNode_compile$1 = function $$compile() { - var $$2, self = this; + $def(self, '$compile', function $$compile() { + var self = this, $writer = nil; + + $writer = [self]; + $send(self.$compiler(), 'top_scope=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(self.$sexp().$meta()['$[]']("dynamic_cache_result"))) { + + $writer = [true]; + $send(self.$compiler(), 'dynamic_cache_result=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; self.$push(self.$version_comment()); - self.$opening(); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, body_code = nil; + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, body_code = nil; + if (self.define_nesting == null) self.define_nesting = nil; + if (self.define_self == null) self.define_self = nil; + if (self.define_relative_access == null) self.define_relative_access = nil; + if (self.define_absolute_const == null) self.define_absolute_const = nil; - - if ($truthy(self.$compiler()['$use_strict?']())) { - self.$line("\"use strict\";")}; - body_code = self.$stmt(self.$stmts()); - if ($truthy(body_code['$is_a?']($$($nesting, 'Array')))) { - } else { - body_code = [body_code] - }; - if ($truthy(self.$compiler()['$eval?']())) { - self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]") + if ($eqeq(self.$body(), self.$s("nil"))) { + return self.$line("return Opal.nil;") } else { - self.$add_temp("self = Opal.top"); - self.$add_temp("$nesting = []"); - }; - self.$add_temp("nil = Opal.nil"); - self.$add_temp("$$$ = Opal.$$$"); - self.$add_temp("$$ = Opal.$$"); - self.$add_used_helpers(); - self.$add_used_operators(); - self.$line(self.$scope().$to_vars()); - self.$compile_method_stubs(); - self.$compile_irb_vars(); - self.$compile_end_construct(); - return self.$line(body_code);}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + if ($truthy(self.$compiler()['$use_strict?']())) { + self.$line("\"use strict\";") + }; + body_code = self.$stmt(self.$stmts()); + if (!$truthy(body_code['$is_a?']($$('Array')))) { + body_code = [body_code] + }; + if ($truthy(self.$compiler()['$eval?']())) { + if ($truthy(self.define_nesting)) { + self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]") + } + } else { + + if ($truthy(self.define_self)) { + self.$add_temp("self = Opal.top") + }; + if ($truthy(self.define_nesting)) { + self.$add_temp("$nesting = []") + }; + }; + if ($truthy(self.define_relative_access)) { + self.$add_temp("$$ = Opal.$r($nesting)") + }; + self.$add_temp("nil = Opal.nil"); + if ($truthy(self.define_absolute_const)) { + self.$add_temp("$$$ = Opal.$$$") + }; + self.$add_used_helpers(); + self.$line(self.$scope().$to_vars()); + self.$compile_method_stubs(); + self.$compile_irb_vars(); + self.$compile_end_construct(); + return self.$line(body_code); + }}, {$$arity: 0, $$s: self}); + self.$opening(); return self.$closing(); - }, $TopNode_compile$1.$$arity = 0); + }, 0); - Opal.def(self, '$opening', $TopNode_opening$3 = function $$opening() { - var self = this; + $def(self, '$opening', function $$opening() { + var self = this, async_prefix = nil; + + if ($truthy(self.$await_encountered())) { + async_prefix = "async " + }; if ($truthy(self.$compiler()['$requirable?']())) { - return self.$line("" + "Opal.modules[" + ($$$($$($nesting, 'Opal'), 'Compiler').$module_name(self.$compiler().$file()).$inspect()) + "] = function(Opal) {") + return self.$unshift("Opal.modules[" + ($$$($$('Opal'), 'Compiler').$module_name(self.$compiler().$file()).$inspect()) + "] = " + (async_prefix) + "function(Opal) {") } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$line("(function(Opal, self) {") + return self.$unshift("(" + (async_prefix) + "function(Opal, self) {") } else if ($truthy(self.$compiler()['$esm?']())) { - return self.$line("export default (function(Opal) {") + return self.$unshift("export default Opal.queue(" + (async_prefix) + "function(Opal) {") } else { - return self.$line("(function(Opal) {") - } - }, $TopNode_opening$3.$$arity = 0); + return self.$unshift("Opal.queue(" + (async_prefix) + "function(Opal) {") + }; + }, 0); - Opal.def(self, '$closing', $TopNode_closing$4 = function $$closing() { + $def(self, '$closing', function $$closing() { var self = this; if ($truthy(self.$compiler()['$requirable?']())) { return self.$line("};\n") } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$line("})(Opal, self)") + return self.$line("})(Opal, self);") } else { - return self.$line("})(Opal);\n") + return self.$line("});\n") } - }, $TopNode_closing$4.$$arity = 0); + }, 0); - Opal.def(self, '$stmts', $TopNode_stmts$5 = function $$stmts() { + $def(self, '$stmts', function $$stmts() { var self = this; return self.$compiler().$returns(self.$body()) - }, $TopNode_stmts$5.$$arity = 0); + }, 0); - Opal.def(self, '$compile_irb_vars', $TopNode_compile_irb_vars$6 = function $$compile_irb_vars() { + $def(self, '$absolute_const', function $$absolute_const() { + var self = this; + + + self.define_absolute_const = true; + return "$$$"; + }, 0); + + $def(self, '$compile_irb_vars', function $$compile_irb_vars() { var self = this; if ($truthy(self.$compiler()['$irb?']())) { @@ -38592,92 +35036,60 @@ Opal.modules["opal/nodes/top"] = function(Opal) { } else { return nil } - }, $TopNode_compile_irb_vars$6.$$arity = 0); - - Opal.def(self, '$add_used_helpers', $TopNode_add_used_helpers$7 = function $$add_used_helpers() { - var $$8, self = this; - - return $send(self.$compiler().$helpers().$to_a(), 'each', [], ($$8 = function(h){var self = $$8.$$s == null ? this : $$8.$$s; - - - - if (h == null) { - h = nil; - }; - return self.$add_temp("" + "$" + (h) + " = Opal." + (h));}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - }, $TopNode_add_used_helpers$7.$$arity = 0); + }, 0); - Opal.def(self, '$add_used_operators', $TopNode_add_used_operators$9 = function $$add_used_operators() { - var $$10, self = this, operators = nil; + $def(self, '$add_used_helpers', function $$add_used_helpers() { + var self = this; - - operators = self.$compiler().$operator_helpers().$to_a(); - return $send(operators, 'each', [], ($$10 = function(op){var self = $$10.$$s == null ? this : $$10.$$s, name = nil; + return $send(self.$compiler().$helpers().$to_a(), 'each', [], function $$2(h){var self = $$2.$$s == null ? this : $$2.$$s; - if (op == null) { - op = nil; - }; - name = $$$($$$($$($nesting, 'Nodes'), 'CallNode'), 'OPERATORS')['$[]'](op); - self.$line("" + "function $rb_" + (name) + "(lhs, rhs) {"); - self.$line("" + " return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs " + (op) + " rhs : lhs['$" + (op) + "'](rhs);"); - return self.$line("}");}, $$10.$$s = self, $$10.$$arity = 1, $$10)); - }, $TopNode_add_used_operators$9.$$arity = 0); + if (h == null) h = nil;; + return self.$add_temp("$" + (h) + " = Opal." + (h));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$compile_method_stubs', $TopNode_compile_method_stubs$11 = function $$compile_method_stubs() { - var $$12, self = this, calls = nil, stubs = nil; + $def(self, '$compile_method_stubs', function $$compile_method_stubs() { + var self = this, calls = nil, stubs = nil; if ($truthy(self.$compiler()['$method_missing?']())) { calls = self.$compiler().$method_calls(); - stubs = $send(calls.$to_a(), 'map', [], ($$12 = function(k){var self = $$12.$$s == null ? this : $$12.$$s; - - - - if (k == null) { - k = nil; - }; - return "" + "'$" + (k) + "'";}, $$12.$$s = self, $$12.$$arity = 1, $$12)).$join(", "); + stubs = $send(calls.$to_a(), 'map', [], "to_s".$to_proc()).$join(","); if ($truthy(stubs['$empty?']())) { return nil } else { - return self.$line("" + "Opal.add_stubs([" + (stubs) + "]);") + return self.$line("Opal.add_stubs('" + (stubs) + "');") }; } else { return nil } - }, $TopNode_compile_method_stubs$11.$$arity = 0); + }, 0); - Opal.def(self, '$compile_end_construct', $TopNode_compile_end_construct$13 = function $$compile_end_construct() { + $def(self, '$compile_end_construct', function $$compile_end_construct() { var self = this, content = nil; if ($truthy((content = self.$compiler().$eof_content()))) { self.$line("var $__END__ = Opal.Object.$new();"); - return self.$line("" + "$__END__.$read = function() { return " + (content.$inspect()) + "; };"); + return self.$line("$__END__.$read = function() { return " + (content.$inspect()) + "; };"); } else { return nil } - }, $TopNode_compile_end_construct$13.$$arity = 0); - return (Opal.def(self, '$version_comment', $TopNode_version_comment$14 = function $$version_comment() { - var self = this; - - return "" + "/* Generated by Opal " + ($$$($$($nesting, 'Opal'), 'VERSION')) + " */" - }, $TopNode_version_comment$14.$$arity = 0), nil) && 'version_comment'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + }, 0); + return $def(self, '$version_comment', function $$version_comment() { + + return "/* Generated by Opal " + ($$$($$('Opal'), 'VERSION')) + " */" + }, 0); + })($nesting[0], $$('ScopeNode'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/while"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/while"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$js_truthy', '$test', '$with_temp', '$in_while', '$compiler', '$wrap_in_closure?', '$[]=', '$while_loop', '$-', '$indent', '$stmt', '$body', '$uses_redo?', '$compile_with_redo', '$compile_without_redo', '$wrap', '$private', '$push', '$compile_while', '$while_open', '$while_close', '$line', '$[]', '$expr?', '$recv?']); + Opal.add_stubs('require,handle,children,js_truthy,test,with_temp,in_while,compiler,wrap_in_closure?,[]=,while_loop,-,indent,stmt,body,uses_redo?,compile_with_redo,compile_without_redo,await_encountered,scope,wrap,private,push,compile_while,while_open,while_close,line,[],expr?,recv?'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -38688,101 +35100,101 @@ Opal.modules["opal/nodes/while"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'WhileNode'); - var $nesting = [self].concat($parent_nesting), $WhileNode_compile$1, $WhileNode_compile_with_redo$5, $WhileNode_compile_without_redo$6, $WhileNode_compile_while$7, $WhileNode_while_open$9, $WhileNode_while_close$10, $WhileNode_uses_redo$ques$11, $WhileNode_wrap_in_closure$ques$12; - + self.$handle("while"); self.$children("test", "body"); - Opal.def(self, '$compile', $WhileNode_compile$1 = function $$compile() { - var $$2, self = this, test_code = nil; + $def(self, '$compile', function $$compile() { + var self = this, test_code = nil; test_code = self.$js_truthy(self.$test()); - $send(self, 'with_temp', [], ($$2 = function(redo_var){var self = $$2.$$s == null ? this : $$2.$$s, $$3; + $send(self, 'with_temp', [], function $$1(redo_var){var self = $$1.$$s == null ? this : $$1.$$s; - if (redo_var == null) { - redo_var = nil; - }; - return $send(self.$compiler(), 'in_while', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $$4, $writer = nil, body_code = nil; + if (redo_var == null) redo_var = nil;; + return $send(self.$compiler(), 'in_while', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil, body_code = nil; if ($truthy(self['$wrap_in_closure?']())) { $writer = ["closure", true]; - $send(self.$while_loop(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(self.$while_loop(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; $writer = ["redo_var", redo_var]; - $send(self.$while_loop(), '[]=', Opal.to_a($writer)); + $send(self.$while_loop(), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - body_code = $send(self, 'indent', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + body_code = $send(self, 'indent', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; - return self.$stmt(self.$body())}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + return self.$stmt(self.$body())}, {$$arity: 0, $$s: self}); if ($truthy(self['$uses_redo?']())) { return self.$compile_with_redo(test_code, body_code, redo_var) } else { return self.$compile_without_redo(test_code, body_code) - };}, $$3.$$s = self, $$3.$$arity = 0, $$3));}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + };}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); if ($truthy(self['$wrap_in_closure?']())) { - return self.$wrap("(function() {", "; return nil; })()") + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() {", "; return nil; })())") + } else { + return self.$wrap("(function() {", "; return nil; })()") + } } else { return nil }; - }, $WhileNode_compile$1.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$compile_with_redo', $WhileNode_compile_with_redo$5 = function $$compile_with_redo(test_code, body_code, redo_var) { + $def(self, '$compile_with_redo', function $$compile_with_redo(test_code, body_code, redo_var) { var self = this; self.$push("" + (redo_var) + " = false; "); return self.$compile_while([redo_var, " || ", test_code], ["" + (redo_var) + " = false;", body_code]); - }, $WhileNode_compile_with_redo$5.$$arity = 3); + }, 3); - Opal.def(self, '$compile_without_redo', $WhileNode_compile_without_redo$6 = function $$compile_without_redo(test_code, body_code) { + $def(self, '$compile_without_redo', function $$compile_without_redo(test_code, body_code) { var self = this; return self.$compile_while([test_code], [body_code]) - }, $WhileNode_compile_without_redo$6.$$arity = 2); + }, 2); - Opal.def(self, '$compile_while', $WhileNode_compile_while$7 = function $$compile_while(test_code, body_code) { - var $$8, self = this; + $def(self, '$compile_while', function $$compile_while(test_code, body_code) { + var self = this; - $send(self, 'push', [self.$while_open()].concat(Opal.to_a(test_code)).concat([self.$while_close()])); - $send(self, 'indent', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + $send(self, 'push', [self.$while_open()].concat($to_a(test_code)).concat([self.$while_close()])); + $send(self, 'indent', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return $send(self, 'line', Opal.to_a(body_code))}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + return $send(self, 'line', $to_a(body_code))}, {$$arity: 0, $$s: self}); return self.$line("}"); - }, $WhileNode_compile_while$7.$$arity = 2); + }, 2); - Opal.def(self, '$while_open', $WhileNode_while_open$9 = function $$while_open() { - var self = this; - + $def(self, '$while_open', function $$while_open() { + return "while (" - }, $WhileNode_while_open$9.$$arity = 0); + }, 0); - Opal.def(self, '$while_close', $WhileNode_while_close$10 = function $$while_close() { - var self = this; - + $def(self, '$while_close', function $$while_close() { + return ") {" - }, $WhileNode_while_close$10.$$arity = 0); + }, 0); - Opal.def(self, '$uses_redo?', $WhileNode_uses_redo$ques$11 = function() { + $def(self, '$uses_redo?', function $WhileNode_uses_redo$ques$5() { var self = this; return self.$while_loop()['$[]']("use_redo") - }, $WhileNode_uses_redo$ques$11.$$arity = 0); - return (Opal.def(self, '$wrap_in_closure?', $WhileNode_wrap_in_closure$ques$12 = function() { + }, 0); + return $def(self, '$wrap_in_closure?', function $WhileNode_wrap_in_closure$ques$6() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self['$expr?']()))) { @@ -38790,85 +35202,73 @@ Opal.modules["opal/nodes/while"] = function(Opal) { } else { return self['$recv?']() } - }, $WhileNode_wrap_in_closure$ques$12.$$arity = 0), nil) && 'wrap_in_closure?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'UntilNode'); - var $nesting = [self].concat($parent_nesting), $UntilNode_while_open$13, $UntilNode_while_close$14; - + self.$handle("until"); self.$private(); - Opal.def(self, '$while_open', $UntilNode_while_open$13 = function $$while_open() { - var self = this; - + $def(self, '$while_open', function $$while_open() { + return "while (!(" - }, $UntilNode_while_open$13.$$arity = 0); - return (Opal.def(self, '$while_close', $UntilNode_while_close$14 = function $$while_close() { - var self = this; - + }, 0); + return $def(self, '$while_close', function $$while_close() { + return ")) {" - }, $UntilNode_while_close$14.$$arity = 0), nil) && 'while_close'; - })($nesting[0], $$($nesting, 'WhileNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('WhileNode')); + (function($base, $super) { var self = $klass($base, $super, 'WhilePostNode'); - var $nesting = [self].concat($parent_nesting), $WhilePostNode_compile_while$15, $WhilePostNode_while_close$17; - + self.$handle("while_post"); self.$private(); - Opal.def(self, '$compile_while', $WhilePostNode_compile_while$15 = function $$compile_while(test_code, body_code) { - var $$16, self = this; + $def(self, '$compile_while', function $$compile_while(test_code, body_code) { + var self = this; self.$push("do {"); - $send(self, 'indent', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - - return $send(self, 'line', Opal.to_a(body_code))}, $$16.$$s = self, $$16.$$arity = 0, $$16)); - return $send(self, 'line', ["} ", self.$while_open()].concat(Opal.to_a(test_code)).concat([self.$while_close()])); - }, $WhilePostNode_compile_while$15.$$arity = 2); - return (Opal.def(self, '$while_close', $WhilePostNode_while_close$17 = function $$while_close() { - var self = this; + $send(self, 'indent', [], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s; + return $send(self, 'line', $to_a(body_code))}, {$$arity: 0, $$s: self}); + return $send(self, 'line', ["} ", self.$while_open()].concat($to_a(test_code)).concat([self.$while_close()])); + }, 2); + return $def(self, '$while_close', function $$while_close() { + return ");" - }, $WhilePostNode_while_close$17.$$arity = 0), nil) && 'while_close'; - })($nesting[0], $$($nesting, 'WhileNode'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('WhileNode')); + return (function($base, $super) { var self = $klass($base, $super, 'UntilPostNode'); - var $nesting = [self].concat($parent_nesting), $UntilPostNode_while_open$18, $UntilPostNode_while_close$19; - + self.$handle("until_post"); self.$private(); - Opal.def(self, '$while_open', $UntilPostNode_while_open$18 = function $$while_open() { - var self = this; - + $def(self, '$while_open', function $$while_open() { + return "while(!(" - }, $UntilPostNode_while_open$18.$$arity = 0); - return (Opal.def(self, '$while_close', $UntilPostNode_while_close$19 = function $$while_close() { - var self = this; - + }, 0); + return $def(self, '$while_close', function $$while_close() { + return "));" - }, $UntilPostNode_while_close$19.$$arity = 0), nil) && 'while_close'; - })($nesting[0], $$($nesting, 'WhilePostNode'), $nesting); + }, 0); + })($nesting[0], $$('WhilePostNode')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/hash"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["opal/nodes/hash"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $def = Opal.def, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $to_ary = Opal.to_ary, $hash2 = Opal.hash2, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$require', '$handle', '$attr_accessor', '$each', '$children', '$type', '$===', '$<<', '$[]', '$all?', '$keys', '$include?', '$has_kwsplat', '$compile_merge', '$simple_keys?', '$compile_hash2', '$compile_hash', '$helper', '$==', '$empty?', '$expr', '$s', '$each_with_index', '$push', '$wrap', '$times', '$size', '$inspect', '$to_s', '$values', '$[]=', '$-', '$join', '$value']); + Opal.add_stubs('require,handle,attr_accessor,each,children,===,type,<<,[],all?,keys,include?,has_kwsplat,compile_merge,simple_keys?,compile_hash2,compile_hash,helper,==,empty?,expr,s,each_with_index,push,wrap,times,size,inspect,to_s,values,[]=,-,join,value'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -38879,65 +35279,59 @@ Opal.modules["opal/nodes/hash"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'HashNode'); - var $nesting = [self].concat($parent_nesting), $HashNode_initialize$1, $HashNode_simple_keys$ques$3, $HashNode_compile$5, $HashNode_compile_merge$6, $HashNode_compile_hash$9, $HashNode_compile_hash2$11; - + self.$handle("hash"); self.$attr_accessor("has_kwsplat", "keys", "values"); - Opal.def(self, '$initialize', $HashNode_initialize$1 = function $$initialize($a) { - var $post_args, $$2, $iter = $HashNode_initialize$1.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $HashNode_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $HashNode_initialize$1, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); self.has_kwsplat = false; self.keys = []; self.values = []; - return $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s, $case = nil; + return $send(self.$children(), 'each', [], function $$1(child){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; if (self.keys == null) self.keys = nil; if (self.values == null) self.values = nil; - if (child == null) { - child = nil; - }; - return (function() {$case = child.$type(); - if ("kwsplat"['$===']($case)) {return (self.has_kwsplat = true)} - else if ("pair"['$===']($case)) { - self.keys['$<<'](child.$children()['$[]'](0)); - return self.values['$<<'](child.$children()['$[]'](1));} - else { return nil }})();}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }, $HashNode_initialize$1.$$arity = -1); + if (child == null) child = nil;; + if ($eqeqeq("kwsplat", ($ret_or_1 = child.$type()))) { + return (self.has_kwsplat = true) + } else if ($eqeqeq("pair", $ret_or_1)) { + + self.keys['$<<'](child.$children()['$[]'](0)); + return self.values['$<<'](child.$children()['$[]'](1)); + } else { + return nil + };}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$simple_keys?', $HashNode_simple_keys$ques$3 = function() { - var $$4, self = this; - - return $send(self.$keys(), 'all?', [], ($$4 = function(key){var self = $$4.$$s == null ? this : $$4.$$s; + $def(self, '$simple_keys?', function $HashNode_simple_keys$ques$2() { + var self = this; + return $send(self.$keys(), 'all?', [], function $$3(key){ - if (key == null) { - key = nil; - }; - return ["sym", "str"]['$include?'](key.$type());}, $$4.$$s = self, $$4.$$arity = 1, $$4)) - }, $HashNode_simple_keys$ques$3.$$arity = 0); + if (key == null) key = nil;; + return ["sym", "str"]['$include?'](key.$type());}, 1) + }, 0); - Opal.def(self, '$compile', $HashNode_compile$5 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self.$has_kwsplat())) { @@ -38947,143 +35341,120 @@ Opal.modules["opal/nodes/hash"] = function(Opal) { } else { return self.$compile_hash() } - }, $HashNode_compile$5.$$arity = 0); + }, 0); - Opal.def(self, '$compile_merge', $HashNode_compile_merge$6 = function $$compile_merge() { - var $a, $$7, $$8, self = this, result = nil, seq = nil; + $def(self, '$compile_merge', function $$compile_merge() { + var $a, self = this, result = nil, seq = nil; self.$helper("hash"); $a = [[], []], (result = $a[0]), (seq = $a[1]), $a; - $send(self.$children(), 'each', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s; + $send(self.$children(), 'each', [], function $$4(child){var self = $$4.$$s == null ? this : $$4.$$s; - if (child == null) { - child = nil; - }; - if (child.$type()['$==']("kwsplat")) { + if (child == null) child = nil;; + if ($eqeq(child.$type(), "kwsplat")) { - if ($truthy(seq['$empty?']())) { - } else { - result['$<<'](self.$expr($send(self, 's', ["hash"].concat(Opal.to_a(seq))))) + if (!$truthy(seq['$empty?']())) { + result['$<<'](self.$expr($send(self, 's', ["hash"].concat($to_a(seq))))) }; result['$<<'](self.$expr(child)); return (seq = []); } else { return seq['$<<'](child) - };}, $$7.$$s = self, $$7.$$arity = 1, $$7)); - if ($truthy(seq['$empty?']())) { - } else { - result['$<<'](self.$expr($send(self, 's', ["hash"].concat(Opal.to_a(seq))))) + };}, {$$arity: 1, $$s: self}); + if (!$truthy(seq['$empty?']())) { + result['$<<'](self.$expr($send(self, 's', ["hash"].concat($to_a(seq))))) }; - return $send(result, 'each_with_index', [], ($$8 = function(fragment, idx){var self = $$8.$$s == null ? this : $$8.$$s; + return $send(result, 'each_with_index', [], function $$5(fragment, idx){var self = $$5.$$s == null ? this : $$5.$$s; - if (fragment == null) { - fragment = nil; - }; + if (fragment == null) fragment = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { + if (idx == null) idx = nil;; + if ($eqeq(idx, 0)) { return self.$push(fragment) } else { return self.$push(".$merge(", fragment, ")") - };}, $$8.$$s = self, $$8.$$arity = 2, $$8)); - }, $HashNode_compile_merge$6.$$arity = 0); + };}, {$$arity: 2, $$s: self}); + }, 0); - Opal.def(self, '$compile_hash', $HashNode_compile_hash$9 = function $$compile_hash() { - var $$10, self = this; + $def(self, '$compile_hash', function $$compile_hash() { + var self = this; self.$helper("hash"); - $send(self.$children(), 'each_with_index', [], ($$10 = function(pair, idx){var self = $$10.$$s == null ? this : $$10.$$s, $a, $b, key = nil, value = nil; + $send(self.$children(), 'each_with_index', [], function $$6(pair, idx){var $a, $b, self = $$6.$$s == null ? this : $$6.$$s, key = nil, value = nil; - if (pair == null) { - pair = nil; - }; + if (pair == null) pair = nil;; - if (idx == null) { - idx = nil; - }; - $b = pair.$children(), $a = Opal.to_ary($b), (key = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $b; - if (idx['$=='](0)) { - } else { + if (idx == null) idx = nil;; + $b = pair.$children(), $a = $to_ary($b), (key = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $b; + if (!$eqeq(idx, 0)) { self.$push(", ") }; - return self.$push(self.$expr(key), ", ", self.$expr(value));}, $$10.$$s = self, $$10.$$arity = 2, $$10)); + return self.$push(self.$expr(key), ", ", self.$expr(value));}, {$$arity: 2, $$s: self}); return self.$wrap("$hash(", ")"); - }, $HashNode_compile_hash$9.$$arity = 0); - return (Opal.def(self, '$compile_hash2', $HashNode_compile_hash2$11 = function $$compile_hash2() { - var $a, $$12, $$13, self = this, hash_obj = nil, hash_keys = nil; + }, 0); + return $def(self, '$compile_hash2', function $$compile_hash2() { + var $a, self = this, hash_obj = nil, hash_keys = nil; $a = [$hash2([], {}), []], (hash_obj = $a[0]), (hash_keys = $a[1]), $a; self.$helper("hash2"); - $send(self.$keys().$size(), 'times', [], ($$12 = function(idx){var self = $$12.$$s == null ? this : $$12.$$s, key = nil, $writer = nil; + $send(self.$keys().$size(), 'times', [], function $$7(idx){var self = $$7.$$s == null ? this : $$7.$$s, key = nil, $writer = nil; - if (idx == null) { - idx = nil; - }; + if (idx == null) idx = nil;; key = self.$keys()['$[]'](idx).$children()['$[]'](0).$to_s().$inspect(); - if ($truthy(hash_obj['$include?'](key))) { - } else { + if (!$truthy(hash_obj['$include?'](key))) { hash_keys['$<<'](key) }; $writer = [key, self.$expr(self.$values()['$[]'](idx))]; - $send(hash_obj, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$12.$$s = self, $$12.$$arity = 1, $$12)); - $send(hash_keys, 'each_with_index', [], ($$13 = function(key, idx){var self = $$13.$$s == null ? this : $$13.$$s; + $send(hash_obj, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + $send(hash_keys, 'each_with_index', [], function $$8(key, idx){var self = $$8.$$s == null ? this : $$8.$$s; - if (key == null) { - key = nil; - }; + if (key == null) key = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { - } else { + if (idx == null) idx = nil;; + if (!$eqeq(idx, 0)) { self.$push(", ") }; self.$push("" + (key) + ": "); - return self.$push(hash_obj['$[]'](key));}, $$13.$$s = self, $$13.$$arity = 2, $$13)); - return self.$wrap("" + "$hash2([" + (hash_keys.$join(", ")) + "], {", "})"); - }, $HashNode_compile_hash2$11.$$arity = 0), nil) && 'compile_hash2'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + return self.$push(hash_obj['$[]'](key));}, {$$arity: 2, $$s: self}); + return self.$wrap("$hash2([" + (hash_keys.$join(", ")) + "], {", "})"); + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'KwSplatNode'); - var $nesting = [self].concat($parent_nesting), $KwSplatNode_compile$14; - + self.$handle("kwsplat"); self.$children("value"); - return (Opal.def(self, '$compile', $KwSplatNode_compile$14 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push("Opal.to_hash(", self.$expr(self.$value()), ")") - }, $KwSplatNode_compile$14.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/array"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/array"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$empty?', '$children', '$push', '$each', '$==', '$type', '$expr', '$<<', '$fragment']); + Opal.add_stubs('require,handle,empty?,children,push,each,==,type,expr,<<,fragment'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -39094,29 +35465,27 @@ Opal.modules["opal/nodes/array"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ArrayNode'); - var $nesting = [self].concat($parent_nesting), $ArrayNode_compile$1; - + self.$handle("array"); - return (Opal.def(self, '$compile', $ArrayNode_compile$1 = function $$compile() { - var $a, $$2, self = this, code = nil, work = nil, join = nil; + return $def(self, '$compile', function $$compile() { + var $a, self = this, code = nil, work = nil, join = nil; if ($truthy(self.$children()['$empty?']())) { - return self.$push("[]")}; + return self.$push("[]") + }; $a = [[], []], (code = $a[0]), (work = $a[1]), $a; - $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s, splat = nil, part = nil; + $send(self.$children(), 'each', [], function $$1(child){var self = $$1.$$s == null ? this : $$1.$$s, splat = nil, part = nil; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; splat = child.$type()['$==']("splat"); part = self.$expr(child); if ($truthy(splat)) { @@ -39139,14 +35508,12 @@ Opal.modules["opal/nodes/array"] = function(Opal) { return (work = []); } else { - if ($truthy(work['$empty?']())) { - } else { + if (!$truthy(work['$empty?']())) { work['$<<'](self.$fragment(", ")) }; return work['$<<'](part); - };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - if ($truthy(work['$empty?']())) { - } else { + };}, {$$arity: 1, $$s: self}); + if (!$truthy(work['$empty?']())) { join = [self.$fragment("["), work, self.$fragment("]")]; if ($truthy(code['$empty?']())) { @@ -39156,17 +35523,16 @@ Opal.modules["opal/nodes/array"] = function(Opal) { }; }; return self.$push(code); - }, $ArrayNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/defined"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $slice = Opal.slice, $send = Opal.send, $range = Opal.range; +Opal.modules["opal/nodes/defined"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeqeq = Opal.eqeqeq, $eqeq = Opal.eqeq, $def = Opal.def, $truthy = Opal.truthy, $to_a = Opal.to_a, $slice = Opal.slice, $send = Opal.send, $range = Opal.range; - Opal.add_stubs(['$require', '$handle', '$children', '$type', '$value', '$===', '$push', '$inspect', '$to_s', '$==', '$size', '$[]', '$compile_defined_send', '$wrap', '$compile_defined_ivar', '$compile_defined_super', '$compile_defined_yield', '$compile_defined_xstr', '$compile_defined_const', '$compile_defined_cvar', '$compile_defined_gvar', '$compile_defined_back_ref', '$compile_defined_nth_ref', '$compile_defined_array', '$respond_to?', '$__send__', '$new_temp', '$scope', '$expr', '$wrap_with_try_catch', '$mid_to_jsid', '$compile_defined', '$compile_send_recv_doesnt_raise', '$each', '$s', '$uses_block!', '$block_name', '$find_parent_def', '$nil?', '$class_variable_owner', '$helper', '$include?', '$each_with_index']); + Opal.add_stubs('require,handle,children,===,type,value,push,inspect,to_s,==,[],size,compile_defined_send,wrap,compile_defined_ivar,compile_defined_super,compile_defined_yield,compile_defined_xstr,compile_defined_const,compile_defined_cvar,compile_defined_gvar,compile_defined_back_ref,compile_defined_nth_ref,compile_defined_array,respond_to?,__send__,new_temp,scope,expr,wrap_with_try_catch,mid_to_jsid,compile_defined,compile_send_recv_doesnt_raise,self,each,s,uses_block!,block_name,find_parent_def,nil?,relative_access,absolute_const,top_scope,class_variable_owner,helper,include?,each_with_index'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -39177,87 +35543,98 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DefinedNode'); - var $nesting = [self].concat($parent_nesting), $DefinedNode_compile$1, $DefinedNode_compile_defined$2, $DefinedNode_wrap_with_try_catch$3, $DefinedNode_compile_send_recv_doesnt_raise$4, $DefinedNode_compile_defined_send$5, $DefinedNode_compile_defined_ivar$7, $DefinedNode_compile_defined_super$8, $DefinedNode_compile_defined_yield$9, $DefinedNode_compile_defined_xstr$10, $DefinedNode_compile_defined_const$11, $DefinedNode_compile_defined_cvar$12, $DefinedNode_compile_defined_gvar$13, $DefinedNode_compile_defined_back_ref$14, $DefinedNode_compile_defined_nth_ref$15, $DefinedNode_compile_defined_array$16; - + self.$handle("defined?"); self.$children("value"); - Opal.def(self, '$compile', $DefinedNode_compile$1 = function $$compile() { - var self = this, $case = nil, $ret_or_1 = nil; + $def(self, '$compile', function $$compile() { + var self = this, $ret_or_1 = nil; - return (function() {$case = self.$value().$type(); - if ("self"['$===']($case) || "nil"['$===']($case) || "false"['$===']($case) || "true"['$===']($case)) {return self.$push(self.$value().$type().$to_s().$inspect())} - else if ("lvasgn"['$===']($case) || "ivasgn"['$===']($case) || "gvasgn"['$===']($case) || "cvasgn"['$===']($case) || "casgn"['$===']($case) || "op_asgn"['$===']($case) || "or_asgn"['$===']($case) || "and_asgn"['$===']($case)) {return self.$push("'assignment'")} - else if ("lvar"['$===']($case)) {return self.$push("'local-variable'")} - else if ("begin"['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_1 = self.$value().$children().$size()['$=='](1)))) { - return self.$value().$children()['$[]'](0).$type()['$==']("masgn") - } else { - return $ret_or_1 - }; return nil; })())) { + if (($eqeqeq("self", ($ret_or_1 = self.$value().$type())) || (($eqeqeq("nil", $ret_or_1) || (($eqeqeq("false", $ret_or_1) || ($eqeqeq("true", $ret_or_1)))))))) { + return self.$push(self.$value().$type().$to_s().$inspect()) + } else if (($eqeqeq("lvasgn", $ret_or_1) || (($eqeqeq("ivasgn", $ret_or_1) || (($eqeqeq("gvasgn", $ret_or_1) || (($eqeqeq("cvasgn", $ret_or_1) || (($eqeqeq("casgn", $ret_or_1) || (($eqeqeq("op_asgn", $ret_or_1) || (($eqeqeq("or_asgn", $ret_or_1) || ($eqeqeq("and_asgn", $ret_or_1)))))))))))))))) { return self.$push("'assignment'") + } else if ($eqeqeq("lvar", $ret_or_1)) { + return self.$push("'local-variable'") + } else if ($eqeqeq("begin", $ret_or_1)) { + if (($eqeq(self.$value().$children().$size(), 1) && ($eqeq(self.$value().$children()['$[]'](0).$type(), "masgn")))) { + return self.$push("'assignment'") + } else { + return self.$push("'expression'") + } + } else if ($eqeqeq("send", $ret_or_1)) { + + self.$compile_defined_send(self.$value()); + return self.$wrap("(", " ? 'method' : nil)"); + } else if ($eqeqeq("ivar", $ret_or_1)) { + + self.$compile_defined_ivar(self.$value()); + return self.$wrap("(", " ? 'instance-variable' : nil)"); + } else if (($eqeqeq("zsuper", $ret_or_1) || ($eqeqeq("super", $ret_or_1)))) { + return self.$compile_defined_super() + } else if ($eqeqeq("yield", $ret_or_1)) { + + self.$compile_defined_yield(); + return self.$wrap("(", " ? 'yield' : nil)"); + } else if ($eqeqeq("xstr", $ret_or_1)) { + return self.$compile_defined_xstr(self.$value()) + } else if ($eqeqeq("const", $ret_or_1)) { + + self.$compile_defined_const(self.$value()); + return self.$wrap("(", " ? 'constant' : nil)"); + } else if ($eqeqeq("cvar", $ret_or_1)) { + + self.$compile_defined_cvar(self.$value()); + return self.$wrap("(", " ? 'class variable' : nil)"); + } else if ($eqeqeq("gvar", $ret_or_1)) { + + self.$compile_defined_gvar(self.$value()); + return self.$wrap("(", " ? 'global-variable' : nil)"); + } else if ($eqeqeq("back_ref", $ret_or_1)) { + + self.$compile_defined_back_ref(); + return self.$wrap("(", " ? 'global-variable' : nil)"); + } else if ($eqeqeq("nth_ref", $ret_or_1)) { + + self.$compile_defined_nth_ref(); + return self.$wrap("(", " ? 'global-variable' : nil)"); + } else if ($eqeqeq("array", $ret_or_1)) { + + self.$compile_defined_array(self.$value()); + return self.$wrap("(", " ? 'expression' : nil)"); } else { return self.$push("'expression'") - }} - else if ("send"['$===']($case)) { - self.$compile_defined_send(self.$value()); - return self.$wrap("(", " ? 'method' : nil)");} - else if ("ivar"['$===']($case)) { - self.$compile_defined_ivar(self.$value()); - return self.$wrap("(", " ? 'instance-variable' : nil)");} - else if ("zsuper"['$===']($case) || "super"['$===']($case)) {return self.$compile_defined_super()} - else if ("yield"['$===']($case)) { - self.$compile_defined_yield(); - return self.$wrap("(", " ? 'yield' : nil)");} - else if ("xstr"['$===']($case)) {return self.$compile_defined_xstr(self.$value())} - else if ("const"['$===']($case)) { - self.$compile_defined_const(self.$value()); - return self.$wrap("(", " ? 'constant' : nil)");} - else if ("cvar"['$===']($case)) { - self.$compile_defined_cvar(self.$value()); - return self.$wrap("(", " ? 'class variable' : nil)");} - else if ("gvar"['$===']($case)) { - self.$compile_defined_gvar(self.$value()); - return self.$wrap("(", " ? 'global-variable' : nil)");} - else if ("back_ref"['$===']($case)) { - self.$compile_defined_back_ref(); - return self.$wrap("(", " ? 'global-variable' : nil)");} - else if ("nth_ref"['$===']($case)) { - self.$compile_defined_nth_ref(); - return self.$wrap("(", " ? 'global-variable' : nil)");} - else if ("array"['$===']($case)) { - self.$compile_defined_array(self.$value()); - return self.$wrap("(", " ? 'expression' : nil)");} - else {return self.$push("'expression'")}})() - }, $DefinedNode_compile$1.$$arity = 0); - - Opal.def(self, '$compile_defined', $DefinedNode_compile_defined$2 = function $$compile_defined(node) { + } + }, 0); + + $def(self, '$compile_defined', function $$compile_defined(node) { var self = this, type = nil, node_tmp = nil; type = node.$type(); - if ($truthy(self['$respond_to?']("" + "compile_defined_" + (type)))) { - return self.$__send__("" + "compile_defined_" + (type), node) + if ($truthy(self['$respond_to?']("compile_defined_" + (type)))) { + return self.$__send__("compile_defined_" + (type), node) } else { node_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (node_tmp) + " = ", self.$expr(node), ")"); + self.$push("(" + (node_tmp) + " = ", self.$expr(node), ")"); return node_tmp; }; - }, $DefinedNode_compile_defined$2.$$arity = 1); + }, 1); - Opal.def(self, '$wrap_with_try_catch', $DefinedNode_wrap_with_try_catch$3 = function $$wrap_with_try_catch(code) { + $def(self, '$wrap_with_try_catch', function $$wrap_with_try_catch(code) { var self = this, returning_tmp = nil; returning_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (returning_tmp) + " = (function() { try {"); - self.$push("" + " return " + (code) + ";"); + self.$push("(" + (returning_tmp) + " = (function() { try {"); + self.$push(" return " + (code) + ";"); self.$push("} catch ($err) {"); self.$push(" if (Opal.rescue($err, [Opal.Exception])) {"); self.$push(" try {"); @@ -39266,119 +35643,116 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { self.$push(" } else { throw $err; }"); self.$push("}})())"); return returning_tmp; - }, $DefinedNode_wrap_with_try_catch$3.$$arity = 1); + }, 1); - Opal.def(self, '$compile_send_recv_doesnt_raise', $DefinedNode_compile_send_recv_doesnt_raise$4 = function $$compile_send_recv_doesnt_raise(recv_code) { + $def(self, '$compile_send_recv_doesnt_raise', function $$compile_send_recv_doesnt_raise(recv_code) { var self = this; return self.$wrap_with_try_catch(recv_code) - }, $DefinedNode_compile_send_recv_doesnt_raise$4.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_send', $DefinedNode_compile_defined_send$5 = function $$compile_defined_send(node) { - var $a, $$6, self = this, recv = nil, method_name = nil, args = nil, mid = nil, recv_code = nil, recv_tmp = nil, recv_value_tmp = nil, meth_tmp = nil; + $def(self, '$compile_defined_send', function $$compile_defined_send(node) { + var $a, self = this, recv = nil, method_name = nil, args = nil, mid = nil, recv_code = nil, recv_tmp = nil, recv_value_tmp = nil, meth_tmp = nil; - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; mid = self.$mid_to_jsid(method_name.$to_s()); if ($truthy(recv)) { recv_code = self.$compile_defined(recv); self.$push(" && "); - if (recv.$type()['$==']("send")) { + if ($eqeq(recv.$type(), "send")) { recv_code = self.$compile_send_recv_doesnt_raise(recv_code); - self.$push(" && ");}; + self.$push(" && "); + }; recv_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (recv_tmp) + " = ", recv_code, "" + ", " + (recv_tmp) + ") && "); + self.$push("(" + (recv_tmp) + " = ", recv_code, ", " + (recv_tmp) + ") && "); } else { - recv_tmp = "self" + recv_tmp = self.$scope().$self() }; recv_value_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (recv_value_tmp) + " = " + (recv_tmp) + ") && "); + self.$push("(" + (recv_value_tmp) + " = " + (recv_tmp) + ") && "); meth_tmp = self.$scope().$new_temp(); - self.$push("" + "(((" + (meth_tmp) + " = " + (recv_value_tmp) + (mid) + ") && !" + (meth_tmp) + ".$$stub)"); - self.$push("" + " || " + (recv_value_tmp) + "['$respond_to_missing?']('" + (method_name) + "'))"); - $send(args, 'each', [], ($$6 = function(arg){var self = $$6.$$s == null ? this : $$6.$$s, $case = nil; + self.$push("(((" + (meth_tmp) + " = " + (recv_value_tmp) + (mid) + ") && !" + (meth_tmp) + ".$$stub)"); + self.$push(" || " + (recv_value_tmp) + "['$respond_to_missing?']('" + (method_name) + "'))"); + $send(args, 'each', [], function $$1(arg){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; - if (arg == null) { - arg = nil; - }; - return (function() {$case = arg.$type(); - if ("block_pass"['$===']($case)) {return nil} - else { - self.$push(" && "); - return self.$compile_defined(arg);}})();}, $$6.$$s = self, $$6.$$arity = 1, $$6)); + if (arg == null) arg = nil;; + if ($eqeqeq("block_pass", ($ret_or_1 = arg.$type()))) { + return nil + } else { + + self.$push(" && "); + return self.$compile_defined(arg); + };}, {$$arity: 1, $$s: self}); self.$wrap("(", ")"); return "" + (meth_tmp) + "()"; - }, $DefinedNode_compile_defined_send$5.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_ivar', $DefinedNode_compile_defined_ivar$7 = function $$compile_defined_ivar(node) { + $def(self, '$compile_defined_ivar', function $$compile_defined_ivar(node) { var self = this, name = nil, tmp = nil; name = node.$children()['$[]'](0).$to_s()['$[]']($range(1, -1, false)); tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (tmp) + " = self['" + (name) + "'], " + (tmp) + " != null && " + (tmp) + " !== nil)"); + self.$push("(" + (tmp) + " = " + (self.$scope().$self()) + "['" + (name) + "'], " + (tmp) + " != null && " + (tmp) + " !== nil)"); return tmp; - }, $DefinedNode_compile_defined_ivar$7.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_super', $DefinedNode_compile_defined_super$8 = function $$compile_defined_super() { + $def(self, '$compile_defined_super', function $$compile_defined_super() { var self = this; return self.$push(self.$expr(self.$s("defined_super"))) - }, $DefinedNode_compile_defined_super$8.$$arity = 0); + }, 0); - Opal.def(self, '$compile_defined_yield', $DefinedNode_compile_defined_yield$9 = function $$compile_defined_yield() { - var self = this, block_name = nil, $ret_or_2 = nil; + $def(self, '$compile_defined_yield', function $$compile_defined_yield() { + var self = this, block_name = nil, $ret_or_1 = nil; self.$scope()['$uses_block!'](); - block_name = (function() {if ($truthy(($ret_or_2 = self.$scope().$block_name()))) { - return $ret_or_2 - } else { - return self.$scope().$find_parent_def().$block_name() - }; return nil; })(); - self.$push("" + "(" + (block_name) + " != null && " + (block_name) + " !== nil)"); + block_name = ($truthy(($ret_or_1 = self.$scope().$block_name())) ? ($ret_or_1) : (self.$scope().$find_parent_def().$block_name())); + self.$push("(" + (block_name) + " != null && " + (block_name) + " !== nil)"); return block_name; - }, $DefinedNode_compile_defined_yield$9.$$arity = 0); + }, 0); - Opal.def(self, '$compile_defined_xstr', $DefinedNode_compile_defined_xstr$10 = function $$compile_defined_xstr(node) { + $def(self, '$compile_defined_xstr', function $$compile_defined_xstr(node) { var self = this; return self.$push("(typeof(", self.$expr(node), ") !== \"undefined\")") - }, $DefinedNode_compile_defined_xstr$10.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_const', $DefinedNode_compile_defined_const$11 = function $$compile_defined_const(node) { + $def(self, '$compile_defined_const', function $$compile_defined_const(node) { var $a, self = this, const_scope = nil, const_name = nil, const_tmp = nil, const_scope_tmp = nil; - $a = [].concat(Opal.to_a(node)), (const_scope = ($a[0] == null ? nil : $a[0])), (const_name = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (const_scope = ($a[0] == null ? nil : $a[0])), (const_name = ($a[1] == null ? nil : $a[1])), $a; const_tmp = self.$scope().$new_temp(); if ($truthy(const_scope['$nil?']())) { - self.$push("" + "(" + (const_tmp) + " = $$($nesting, '" + (const_name) + "', 'skip_raise'))") - } else if (const_scope['$=='](self.$s("cbase"))) { - self.$push("" + "(" + (const_tmp) + " = $$$('::', '" + (const_name) + "', 'skip_raise'))") + self.$push("(" + (const_tmp) + " = " + (self.$scope().$relative_access()) + "('" + (const_name) + "', 'skip_raise'))") + } else if ($eqeq(const_scope, self.$s("cbase"))) { + self.$push("(" + (const_tmp) + " = " + (self.$top_scope().$absolute_const()) + "('::', '" + (const_name) + "', 'skip_raise'))") } else { const_scope_tmp = self.$compile_defined(const_scope); - self.$push("" + " && (" + (const_tmp) + " = $$$(" + (const_scope_tmp) + ", '" + (const_name) + "', 'skip_raise'))"); + self.$push(" && (" + (const_tmp) + " = " + (self.$top_scope().$absolute_const()) + "(" + (const_scope_tmp) + ", '" + (const_name) + "', 'skip_raise'))"); }; return const_tmp; - }, $DefinedNode_compile_defined_const$11.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_cvar', $DefinedNode_compile_defined_cvar$12 = function $$compile_defined_cvar(node) { + $def(self, '$compile_defined_cvar', function $$compile_defined_cvar(node) { var $a, self = this, cvar_name = nil, _ = nil, cvar_tmp = nil; - $a = [].concat(Opal.to_a(node)), (cvar_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (cvar_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; cvar_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (cvar_tmp) + " = " + (self.$class_variable_owner()) + ".$$cvars['" + (cvar_name) + "'], " + (cvar_tmp) + " != null)"); + self.$push("(" + (cvar_tmp) + " = " + (self.$class_variable_owner()) + ".$$cvars['" + (cvar_name) + "'], " + (cvar_tmp) + " != null)"); return cvar_tmp; - }, $DefinedNode_compile_defined_cvar$12.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_gvar', $DefinedNode_compile_defined_gvar$13 = function $$compile_defined_gvar(node) { + $def(self, '$compile_defined_gvar', function $$compile_defined_gvar(node) { var self = this, name = nil, gvar_temp = nil; @@ -39386,68 +35760,56 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { name = node.$children()['$[]'](0).$to_s()['$[]']($range(1, -1, false)); gvar_temp = self.$scope().$new_temp(); if ($truthy(["~", "!"]['$include?'](name))) { - self.$push("" + "(" + (gvar_temp) + " = ", self.$expr(node), " || true)") + self.$push("(" + (gvar_temp) + " = ", self.$expr(node), " || true)") } else { - self.$push("" + "(" + (gvar_temp) + " = $gvars[" + (name.$inspect()) + "], " + (gvar_temp) + " != null)") + self.$push("(" + (gvar_temp) + " = $gvars[" + (name.$inspect()) + "], " + (gvar_temp) + " != null)") }; return gvar_temp; - }, $DefinedNode_compile_defined_gvar$13.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_back_ref', $DefinedNode_compile_defined_back_ref$14 = function $$compile_defined_back_ref() { + $def(self, '$compile_defined_back_ref', function $$compile_defined_back_ref() { var self = this, back_ref_temp = nil; self.$helper("gvars"); back_ref_temp = self.$scope().$new_temp(); - self.$push("" + "(" + (back_ref_temp) + " = $gvars['~'], " + (back_ref_temp) + " != null && " + (back_ref_temp) + " !== nil)"); + self.$push("(" + (back_ref_temp) + " = $gvars['~'], " + (back_ref_temp) + " != null && " + (back_ref_temp) + " !== nil)"); return back_ref_temp; - }, $DefinedNode_compile_defined_back_ref$14.$$arity = 0); + }, 0); - Opal.def(self, '$compile_defined_nth_ref', $DefinedNode_compile_defined_nth_ref$15 = function $$compile_defined_nth_ref() { + $def(self, '$compile_defined_nth_ref', function $$compile_defined_nth_ref() { var self = this, nth_ref_tmp = nil; self.$helper("gvars"); nth_ref_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (nth_ref_tmp) + " = $gvars['~'], " + (nth_ref_tmp) + " != null && " + (nth_ref_tmp) + " != nil)"); + self.$push("(" + (nth_ref_tmp) + " = $gvars['~'], " + (nth_ref_tmp) + " != null && " + (nth_ref_tmp) + " != nil)"); return nth_ref_tmp; - }, $DefinedNode_compile_defined_nth_ref$15.$$arity = 0); - return (Opal.def(self, '$compile_defined_array', $DefinedNode_compile_defined_array$16 = function $$compile_defined_array(node) { - var $$17, self = this; + }, 0); + return $def(self, '$compile_defined_array', function $$compile_defined_array(node) { + var self = this; - return $send(node.$children(), 'each_with_index', [], ($$17 = function(child, idx){var self = $$17.$$s == null ? this : $$17.$$s; + return $send(node.$children(), 'each_with_index', [], function $$2(child, idx){var self = $$2.$$s == null ? this : $$2.$$s; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { - } else { + if (idx == null) idx = nil;; + if (!$eqeq(idx, 0)) { self.$push(" && ") }; - return self.$compile_defined(child);}, $$17.$$s = self, $$17.$$arity = 2, $$17)) - }, $DefinedNode_compile_defined_array$16.$$arity = 1), nil) && 'compile_defined_array'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$compile_defined(child);}, {$$arity: 2, $$s: self}) + }, 1); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/masgn"] = function(Opal) { - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$require', '$freeze', '$handle', '$children', '$new_temp', '$scope', '$==', '$type', '$rhs', '$push', '$expr', '$any?', '$size', '$compile_masgn', '$lhs', '$queue_temp', '$take_while', '$!=', '$drop', '$each_with_index', '$compile_assignment', '$empty?', '$shift', '$[]', '$helper', '$<<', '$dup', '$s', '$!', '$>=', '$updated', '$include?', '$+', '$last', '$raise']); +Opal.modules["opal/nodes/masgn"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def, $rb_ge = Opal.rb_ge, $not = Opal.not, $rb_plus = Opal.rb_plus; + + Opal.add_stubs('require,freeze,handle,children,new_temp,scope,==,type,rhs,push,expr,any?,size,compile_masgn,lhs,helper,queue_temp,take_while,!=,drop,each_with_index,compile_assignment,empty?,shift,[],<<,dup,s,>=,!,updated,include?,+,last,raise'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -39458,89 +35820,66 @@ Opal.modules["opal/nodes/masgn"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'MassAssignNode'); - var $nesting = [self].concat($parent_nesting), $MassAssignNode_compile$1, $MassAssignNode_compile_masgn$3, $MassAssignNode_compile_assignment$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'SIMPLE_ASSIGNMENT', ["lvasgn", "ivasgn", "lvar", "gvasgn", "cdecl", "casgn"].$freeze()); + $const_set($nesting[0], 'SIMPLE_ASSIGNMENT', ["lvasgn", "ivasgn", "lvar", "gvasgn", "cdecl", "casgn"].$freeze()); self.$handle("masgn"); self.$children("lhs", "rhs"); - Opal.def(self, '$compile', $MassAssignNode_compile$1 = function $$compile() { - var $$2, self = this, array = nil, rhs_len = nil, retval = nil; + $def(self, '$compile', function $$compile() { + var self = this, array = nil, rhs_len = nil, retval = nil; array = self.$scope().$new_temp(); - if (self.$rhs().$type()['$==']("array")) { + if ($eqeq(self.$rhs().$type(), "array")) { self.$push("" + (array) + " = ", self.$expr(self.$rhs())); - rhs_len = (function() {if ($truthy($send(self.$rhs().$children(), 'any?', [], ($$2 = function(c){var self = $$2.$$s == null ? this : $$2.$$s; - + rhs_len = ($truthy($send(self.$rhs().$children(), 'any?', [], function $$1(c){ - if (c == null) { - c = nil; - }; - return c.$type()['$==']("splat");}, $$2.$$s = self, $$2.$$arity = 1, $$2)))) { - return nil - } else { - return self.$rhs().$children().$size() - }; return nil; })(); + if (c == null) c = nil;; + return c.$type()['$==']("splat");}, 1)) ? (nil) : (self.$rhs().$children().$size())); self.$compile_masgn(self.$lhs().$children(), array, rhs_len); - self.$push("" + ", " + (array)); - } else if (self.$rhs().$type()['$==']("begin")) { - - retval = self.$scope().$new_temp(); - self.$push("" + (retval) + " = ", self.$expr(self.$rhs())); - self.$push("" + ", " + (array) + " = Opal.to_ary(" + (retval) + ")"); - self.$compile_masgn(self.$lhs().$children(), array); - self.$push("" + ", " + (retval)); - self.$scope().$queue_temp(retval); + self.$push(", " + (array)); } else { + self.$helper("to_ary"); retval = self.$scope().$new_temp(); self.$push("" + (retval) + " = ", self.$expr(self.$rhs())); - self.$push("" + ", " + (array) + " = Opal.to_ary(" + (retval) + ")"); + self.$push(", " + (array) + " = $to_ary(" + (retval) + ")"); self.$compile_masgn(self.$lhs().$children(), array); - self.$push("" + ", " + (retval)); + self.$push(", " + (retval)); self.$scope().$queue_temp(retval); }; return self.$scope().$queue_temp(array); - }, $MassAssignNode_compile$1.$$arity = 0); + }, 0); - Opal.def(self, '$compile_masgn', $MassAssignNode_compile_masgn$3 = function $$compile_masgn(lhs_items, array, len) { - var $$4, $$5, $$6, self = this, pre_splat = nil, post_splat = nil, splat = nil, part = nil, tmp = nil; + $def(self, '$compile_masgn', function $$compile_masgn(lhs_items, array, len) { + var self = this, pre_splat = nil, post_splat = nil, splat = nil, part = nil, tmp = nil; - if (len == null) { - len = nil; - }; - pre_splat = $send(lhs_items, 'take_while', [], ($$4 = function(child){var self = $$4.$$s == null ? this : $$4.$$s; - + if (len == null) len = nil;; + pre_splat = $send(lhs_items, 'take_while', [], function $$2(child){ - if (child == null) { - child = nil; - }; - return child.$type()['$!=']("splat");}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + if (child == null) child = nil;; + return child.$type()['$!=']("splat");}, 1); post_splat = lhs_items.$drop(pre_splat.$size()); - $send(pre_splat, 'each_with_index', [], ($$5 = function(child, idx){var self = $$5.$$s == null ? this : $$5.$$s; + $send(pre_splat, 'each_with_index', [], function $$3(child, idx){var self = $$3.$$s == null ? this : $$3.$$s; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - return self.$compile_assignment(child, array, idx, len);}, $$5.$$s = self, $$5.$$arity = 2, $$5)); + if (idx == null) idx = nil;; + return self.$compile_assignment(child, array, idx, len);}, {$$arity: 2, $$s: self}); if ($truthy(post_splat['$empty?']())) { return nil } else { @@ -39550,7 +35889,7 @@ Opal.modules["opal/nodes/masgn"] = function(Opal) { if ($truthy((part = splat.$children()['$[]'](0)))) { self.$helper("slice"); - part = part.$dup()['$<<'](self.$s("js_tmp", "" + "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ")")); + part = part.$dup()['$<<'](self.$s("js_tmp", "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ")")); self.$push(", "); return self.$push(self.$expr(part)); } else { @@ -39559,82 +35898,69 @@ Opal.modules["opal/nodes/masgn"] = function(Opal) { } else { tmp = self.$scope().$new_temp(); - self.$push("" + ", " + (tmp) + " = " + (array) + ".length - " + (post_splat.$size())); - self.$push("" + ", " + (tmp) + " = (" + (tmp) + " < " + (pre_splat.$size()) + ") ? " + (pre_splat.$size()) + " : " + (tmp)); + self.$push(", " + (tmp) + " = " + (array) + ".length - " + (post_splat.$size())); + self.$push(", " + (tmp) + " = (" + (tmp) + " < " + (pre_splat.$size()) + ") ? " + (pre_splat.$size()) + " : " + (tmp)); if ($truthy((part = splat.$children()['$[]'](0)))) { self.$helper("slice"); - part = part.$dup()['$<<'](self.$s("js_tmp", "" + "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ", " + (tmp) + ")")); + part = part.$dup()['$<<'](self.$s("js_tmp", "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ", " + (tmp) + ")")); self.$push(", "); - self.$push(self.$expr(part));}; - $send(post_splat, 'each_with_index', [], ($$6 = function(child, idx){var self = $$6.$$s == null ? this : $$6.$$s; + self.$push(self.$expr(part)); + }; + $send(post_splat, 'each_with_index', [], function $$4(child, idx){var self = $$4.$$s == null ? this : $$4.$$s; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { + if (idx == null) idx = nil;; + if ($eqeq(idx, 0)) { return self.$compile_assignment(child, array, tmp) } else { return self.$compile_assignment(child, array, "" + (tmp) + " + " + (idx)) - };}, $$6.$$s = self, $$6.$$arity = 2, $$6)); + };}, {$$arity: 2, $$s: self}); return self.$scope().$queue_temp(tmp); }; }; - }, $MassAssignNode_compile_masgn$3.$$arity = -3); - return (Opal.def(self, '$compile_assignment', $MassAssignNode_compile_assignment$7 = function $$compile_assignment(child, array, idx, len) { - var self = this, assign = nil, $ret_or_1 = nil, part = nil, tmp = nil; + }, -3); + return $def(self, '$compile_assignment', function $$compile_assignment(child, array, idx, len) { + var self = this, assign = nil, part = nil, tmp = nil; - if (len == null) { - len = nil; - }; - assign = (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = len['$!']()))) { - return $ret_or_1 - } else { - return $rb_ge(idx, len) - }; return nil; })())) { - return self.$s("js_tmp", "" + "(" + (array) + "[" + (idx) + "] == null ? nil : " + (array) + "[" + (idx) + "])") - } else { - return self.$s("js_tmp", "" + (array) + "[" + (idx) + "]") - }; return nil; })(); + if (len == null) len = nil;; + assign = (($not(len) || ($truthy($rb_ge(idx, len)))) ? (self.$s("js_tmp", "(" + (array) + "[" + (idx) + "] == null ? nil : " + (array) + "[" + (idx) + "])")) : (self.$s("js_tmp", "" + (array) + "[" + (idx) + "]"))); part = child.$updated(); - if ($truthy($$($nesting, 'SIMPLE_ASSIGNMENT')['$include?'](child.$type()))) { + if ($truthy($$('SIMPLE_ASSIGNMENT')['$include?'](child.$type()))) { part = part.$updated(nil, $rb_plus(part.$children(), [assign])) - } else if (child.$type()['$==']("send")) { + } else if ($eqeq(child.$type(), "send")) { part = part.$updated(nil, $rb_plus(part.$children(), [assign])) - } else if (child.$type()['$==']("attrasgn")) { + } else if ($eqeq(child.$type(), "attrasgn")) { part.$last()['$<<'](assign) - } else if (child.$type()['$==']("mlhs")) { + } else if ($eqeq(child.$type(), "mlhs")) { + self.$helper("to_ary"); tmp = self.$scope().$new_temp(); - self.$push("" + ", (" + (tmp) + " = Opal.to_ary(" + (assign.$children()['$[]'](0)) + ")"); + self.$push(", (" + (tmp) + " = $to_ary(" + (assign.$children()['$[]'](0)) + ")"); self.$compile_masgn(child.$children(), tmp); self.$push(")"); self.$scope().$queue_temp(tmp); return nil; } else { - self.$raise("" + "Bad child node in masgn LHS: " + (child) + ". LHS: " + (self.$lhs())) + self.$raise("Bad child node in masgn LHS: " + (child) + ". LHS: " + (self.$lhs())) }; self.$push(", "); return self.$push(self.$expr(part)); - }, $MassAssignNode_compile_assignment$7.$$arity = -4), nil) && 'compile_assignment'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, -4); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/arglist"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/arglist"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $to_a = Opal.to_a, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$each', '$children', '$==', '$type', '$expr', '$empty?', '$<<', '$fragment', '$push']); + Opal.add_stubs('require,handle,each,children,==,type,expr,empty?,<<,fragment,push'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -39645,27 +35971,24 @@ Opal.modules["opal/nodes/arglist"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ArglistNode'); - var $nesting = [self].concat($parent_nesting), $ArglistNode_compile$1; - + self.$handle("arglist"); - return (Opal.def(self, '$compile', $ArglistNode_compile$1 = function $$compile() { - var $a, $$2, self = this, code = nil, work = nil, join = nil; + return $def(self, '$compile', function $$compile() { + var $a, self = this, code = nil, work = nil, join = nil; $a = [[], []], (code = $a[0]), (work = $a[1]), $a; - $send(self.$children(), 'each', [], ($$2 = function(current){var self = $$2.$$s == null ? this : $$2.$$s, splat = nil, arg = nil; + $send(self.$children(), 'each', [], function $$1(current){var self = $$1.$$s == null ? this : $$1.$$s, splat = nil, arg = nil; - if (current == null) { - current = nil; - }; + if (current == null) current = nil;; splat = current.$type()['$==']("splat"); arg = self.$expr(current); if ($truthy(splat)) { @@ -39688,14 +36011,12 @@ Opal.modules["opal/nodes/arglist"] = function(Opal) { return (work = []); } else { - if ($truthy(work['$empty?']())) { - } else { + if (!$truthy(work['$empty?']())) { work['$<<'](self.$fragment(", ")) }; return work['$<<'](arg); - };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - if ($truthy(work['$empty?']())) { - } else { + };}, {$$arity: 1, $$s: self}); + if (!$truthy(work['$empty?']())) { join = work; if ($truthy(code['$empty?']())) { @@ -39704,18 +36025,17 @@ Opal.modules["opal/nodes/arglist"] = function(Opal) { code['$<<'](self.$fragment(".concat(["))['$<<'](join)['$<<'](self.$fragment("])")) }; }; - return $send(self, 'push', Opal.to_a(code)); - }, $ArglistNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return $send(self, 'push', $to_a(code)); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/x_string"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $lambda = Opal.lambda; +Opal.modules["opal/nodes/x_string"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def, $defs = Opal.defs, $lambda = Opal.lambda, $eqeqeq = Opal.eqeqeq, $eqeq = Opal.eqeq, $not = Opal.not, $range = Opal.range; - Opal.add_stubs(['$handle', '$unpack_return', '$children', '$strip_empty_children', '$single_line?', '$compile_single_line', '$each', '$compile_child', '$recv?', '$wrap', '$push', '$private', '$type', '$===', '$source', '$expression', '$loc', '$new', '$scope', '$expr', '$raise', '$shift', '$empty?', '$s', '$==', '$strip', '$=~', '$!', '$pop', '$extract_last_value', '$rstrip', '$expr?', '$end_with?', '$warning', '$compiler', '$line', '$[]', '$size', '$none?', '$first', '$dup', '$nil?', '$any?', '$last']); + Opal.add_stubs('handle,unpack_return,children,strip_empty_children,single_line?,compile_single_line,each,compile_child,recv?,wrap,push,==,size,none?,type,end_with?,source,expression,loc,dup,nil?,empty?,rstrip,any?,[],first,shift,last,pop,private,===,include?,self,scope,new,expr,raise,s,strip,=~,!,extract_last_value,expr?,warning,compiler,line'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -39724,210 +36044,186 @@ Opal.modules["opal/nodes/x_string"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'XStringNode'); - var $nesting = [self].concat($parent_nesting), $XStringNode_compile$1, $XStringNode_compile_child$3, $XStringNode_compile_single_line$4, $XStringNode_extract_last_value$6, $XStringNode_single_line$ques$7, $XStringNode_unpack_return$9, $XStringNode_strip_empty_children$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.should_add_semicolon = self.$$prototype.returning = nil; + $proto.should_add_semicolon = $proto.returning = nil; self.$handle("xstr"); - Opal.def(self, '$compile', $XStringNode_compile$1 = function $$compile() { - var $$2, self = this, unpacked_children = nil, stripped_children = nil; + $def(self, '$compile', function $$compile() { + var self = this, unpacked_children = nil, stripped_children = nil; self.should_add_semicolon = false; unpacked_children = self.$unpack_return(self.$children()); - stripped_children = self.$strip_empty_children(unpacked_children); - if ($truthy(self['$single_line?'](stripped_children))) { + stripped_children = $$('XStringNode').$strip_empty_children(unpacked_children); + if ($truthy($$('XStringNode')['$single_line?'](stripped_children))) { self.$compile_single_line(stripped_children) } else { - $send(unpacked_children, 'each', [], ($$2 = function(c){var self = $$2.$$s == null ? this : $$2.$$s; + $send(unpacked_children, 'each', [], function $$1(c){var self = $$1.$$s == null ? this : $$1.$$s; - if (c == null) { - c = nil; - }; - return self.$compile_child(c);}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + if (c == null) c = nil;; + return self.$compile_child(c);}, {$$arity: 1, $$s: self}) }; if ($truthy(self['$recv?']())) { - self.$wrap("(", ")")}; + self.$wrap("(", ")") + }; if ($truthy(self.should_add_semicolon)) { return self.$push(";") } else { return nil }; - }, $XStringNode_compile$1.$$arity = 0); + }, 0); + $defs(self, '$single_line?', function $XStringNode_single_line$ques$2(children) { + var $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = children.$size()['$=='](1)))) { + return $ret_or_1 + } else { + return $send(children, 'none?', [], function $$3(c){var $ret_or_2 = nil; + + + + if (c == null) c = nil;; + if ($truthy(($ret_or_2 = c.$type()['$==']("str")))) { + return c.$loc().$expression().$source()['$end_with?']("\n") + } else { + return $ret_or_2 + };}, 1) + } + }, 1); + $defs(self, '$strip_empty_children', function $$strip_empty_children(children) { + var $a, empty_line = nil, $ret_or_1 = nil; + + + children = children.$dup(); + empty_line = $lambda(function $$4(child){var $ret_or_1 = nil, $ret_or_2 = nil; + + + + if (child == null) child = nil;; + if ($truthy(($ret_or_1 = child['$nil?']()))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_2 = child.$type()['$==']("str")))) { + return child.$loc().$expression().$source().$rstrip()['$empty?']() + } else { + return $ret_or_2 + }; + };}, 1); + while ($truthy(($truthy(($ret_or_1 = children['$any?']())) ? (empty_line['$[]'](children.$first())) : ($ret_or_1)))) { + children.$shift() + }; + while ($truthy(($truthy(($ret_or_1 = children['$any?']())) ? (empty_line['$[]'](children.$last())) : ($ret_or_1)))) { + children.$pop() + }; + return children; + }, 1); self.$private(); - Opal.def(self, '$compile_child', $XStringNode_compile_child$3 = function $$compile_child(child) { - var self = this, $case = nil, value = nil; + $def(self, '$compile_child', function $$compile_child(child) { + var self = this, $ret_or_1 = nil, value = nil; - return (function() {$case = child.$type(); - if ("str"['$===']($case)) { - value = child.$loc().$expression().$source(); - return self.$push($$($nesting, 'Fragment').$new(value, self.$scope(), child));} - else if ("begin"['$===']($case) || "gvar"['$===']($case) || "ivar"['$===']($case) || "nil"['$===']($case)) {return self.$push(self.$expr(child))} - else {return self.$raise("" + "Unsupported xstr part: " + (child.$type()))}})() - }, $XStringNode_compile_child$3.$$arity = 1); + if ($eqeqeq("str", ($ret_or_1 = child.$type()))) { + + value = child.$loc().$expression().$source(); + if ($truthy(value['$include?']("self"))) { + self.$scope().$self() + }; + return self.$push($$('Fragment').$new(value, self.$scope(), child)); + } else if (($eqeqeq("begin", $ret_or_1) || (($eqeqeq("gvar", $ret_or_1) || (($eqeqeq("ivar", $ret_or_1) || ($eqeqeq("nil", $ret_or_1)))))))) { + return self.$push(self.$expr(child)) + } else { + return self.$raise("Unsupported xstr part: " + (child.$type())) + } + }, 1); - Opal.def(self, '$compile_single_line', $XStringNode_compile_single_line$4 = function $$compile_single_line(children) { - var $$5, self = this, has_embeded_return = nil, first_child = nil, single_child = nil, $ret_or_1 = nil, first_value = nil, $ret_or_2 = nil, last_child = nil, $ret_or_3 = nil, last_value = nil; + $def(self, '$compile_single_line', function $$compile_single_line(children) { + var self = this, has_embeded_return = nil, first_child = nil, single_child = nil, $ret_or_1 = nil, first_value = nil, last_child = nil, last_value = nil; has_embeded_return = false; first_child = children.$shift(); single_child = children['$empty?'](); - first_child = (function() {if ($truthy(($ret_or_1 = first_child))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })(); - if (first_child.$type()['$==']("str")) { + first_child = ($truthy(($ret_or_1 = first_child)) ? ($ret_or_1) : (self.$s("nil"))); + if ($eqeq(first_child.$type(), "str")) { first_value = first_child.$loc().$expression().$source().$strip(); - has_embeded_return = first_value['$=~'](/^return\b/);}; - if ($truthy((function() {if ($truthy(($ret_or_2 = self.returning))) { - return has_embeded_return['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { - self.$push("return ")}; - last_child = (function() {if ($truthy(($ret_or_3 = children.$pop()))) { - return $ret_or_3 - } else { - return first_child - }; return nil; })(); - if (last_child.$type()['$==']("str")) { - last_value = self.$extract_last_value(last_child)}; - if ($truthy(single_child)) { - } else { + has_embeded_return = first_value['$=~'](/^return\b/); + }; + if (($truthy(self.returning) && ($not(has_embeded_return)))) { + self.$push("return ") + }; + last_child = ($truthy(($ret_or_1 = children.$pop())) ? ($ret_or_1) : (first_child)); + if ($eqeq(last_child.$type(), "str")) { + last_value = self.$extract_last_value(last_child) + }; + if (!$truthy(single_child)) { self.should_add_semicolon = false; self.$compile_child(first_child); - $send(children, 'each', [], ($$5 = function(c){var self = $$5.$$s == null ? this : $$5.$$s; + $send(children, 'each', [], function $$5(c){var self = $$5.$$s == null ? this : $$5.$$s; - if (c == null) { - c = nil; - }; - return self.$compile_child(c);}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + if (c == null) c = nil;; + return self.$compile_child(c);}, {$$arity: 1, $$s: self}); }; - if (last_child.$type()['$==']("str")) { - return self.$push($$($nesting, 'Fragment').$new(last_value, self.$scope(), last_child)) + if ($eqeq(last_child.$type(), "str")) { + return self.$push($$('Fragment').$new(last_value, self.$scope(), last_child)) } else { return self.$compile_child(last_child) }; - }, $XStringNode_compile_single_line$4.$$arity = 1); + }, 1); - Opal.def(self, '$extract_last_value', $XStringNode_extract_last_value$6 = function $$extract_last_value(last_child) { - var self = this, last_value = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$extract_last_value', function $$extract_last_value(last_child) { + var self = this, last_value = nil; last_value = last_child.$loc().$expression().$source().$rstrip(); - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.returning))) { - return $ret_or_5 - } else { - return self['$expr?']() - }; return nil; })()))) { - return last_value['$end_with?'](";") - } else { - return $ret_or_4 - }; return nil; })())) { + if ($truthy(last_value['$include?']("self"))) { + self.$scope().$self() + }; + if ((($truthy(self.returning) || ($truthy(self['$expr?']()))) && ($truthy(last_value['$end_with?'](";"))))) { - self.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional", last_child.$line()); - last_value = last_value['$[]']($range(0, -2, false));}; - if ($truthy(self.returning)) { - self.should_add_semicolon = true}; - return last_value; - }, $XStringNode_extract_last_value$6.$$arity = 1); - - Opal.def(self, '$single_line?', $XStringNode_single_line$ques$7 = function(children) { - var $$8, self = this, $ret_or_6 = nil; - - if ($truthy(($ret_or_6 = children.$size()['$=='](1)))) { - return $ret_or_6 - } else { - return $send(children, 'none?', [], ($$8 = function(c){var self = $$8.$$s == null ? this : $$8.$$s, $ret_or_7 = nil; - - - - if (c == null) { - c = nil; - }; - if ($truthy(($ret_or_7 = c.$type()['$==']("str")))) { - return c.$loc().$expression().$source()['$end_with?']("\n") - } else { - return $ret_or_7 - };}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - } - }, $XStringNode_single_line$ques$7.$$arity = 1); - - Opal.def(self, '$unpack_return', $XStringNode_unpack_return$9 = function $$unpack_return(children) { + self.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional", last_child.$line()); + last_value = last_value['$[]']($range(0, -2, false)); + }; + if ($truthy(self.returning)) { + self.should_add_semicolon = true + }; + return last_value; + }, 1); + return $def(self, '$unpack_return', function $$unpack_return(children) { var self = this, first_child = nil; first_child = children.$first(); self.returning = false; - if (first_child.$type()['$==']("js_return")) { + if ($eqeq(first_child.$type(), "js_return")) { self.returning = true; - children = first_child.$children();}; - return children; - }, $XStringNode_unpack_return$9.$$arity = 1); - return (Opal.def(self, '$strip_empty_children', $XStringNode_strip_empty_children$10 = function $$strip_empty_children(children) { - var $$11, $a, self = this, empty_line = nil, $ret_or_10 = nil, $ret_or_11 = nil; - - - children = children.$dup(); - empty_line = $lambda(($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s, $ret_or_8 = nil, $ret_or_9 = nil; - - - - if (child == null) { - child = nil; - }; - if ($truthy(($ret_or_8 = child['$nil?']()))) { - return $ret_or_8 - } else { - - if ($truthy(($ret_or_9 = child.$type()['$==']("str")))) { - return child.$loc().$expression().$source().$rstrip()['$empty?']() - } else { - return $ret_or_9 - }; - };}, $$11.$$s = self, $$11.$$arity = 1, $$11)); - while ($truthy((function() {if ($truthy(($ret_or_10 = children['$any?']()))) { - return empty_line['$[]'](children.$first()) - } else { - return $ret_or_10 - }; return nil; })())) { - children.$shift() - }; - while ($truthy((function() {if ($truthy(($ret_or_11 = children['$any?']()))) { - return empty_line['$[]'](children.$last()) - } else { - return $ret_or_11 - }; return nil; })())) { - children.$pop() + children = first_child.$children(); }; return children; - }, $XStringNode_strip_empty_children$10.$$arity = 1), nil) && 'strip_empty_children'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/lambda"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/lambda"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$helper', '$defines_lambda', '$scope', '$push', '$expr', '$iter']); + Opal.add_stubs('require,handle,children,helper,defines_lambda,scope,push,expr,iter'); self.$require("opal/nodes/call"); return (function($base, $parent_nesting) { @@ -39938,35 +36234,33 @@ Opal.modules["opal/nodes/lambda"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'LambdaNode'); - var $nesting = [self].concat($parent_nesting), $LambdaNode_compile$1; - + self.$handle("lambda"); self.$children("iter"); - return (Opal.def(self, '$compile', $LambdaNode_compile$1 = function $$compile() { - var $$2, self = this; + return $def(self, '$compile', function $$compile() { + var self = this; self.$helper("lambda"); - return $send(self.$scope(), 'defines_lambda', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + return $send(self.$scope(), 'defines_lambda', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$push("$lambda(", self.$expr(self.$iter()), ")")}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - }, $LambdaNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$push("$lambda(", self.$expr(self.$iter()), ")")}, {$$arity: 0, $$s: self}); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["opal/nodes"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); self.$require("opal/nodes/base"); self.$require("opal/nodes/literal"); @@ -39988,7 +36282,6 @@ Opal.modules["opal/nodes"] = function(Opal) { self.$require("opal/nodes/definitions"); self.$require("opal/nodes/yield"); self.$require("opal/nodes/rescue"); - self.$require("opal/nodes/case"); self.$require("opal/nodes/super"); self.$require("opal/nodes/top"); self.$require("opal/nodes/while"); @@ -40001,11 +36294,10 @@ Opal.modules["opal/nodes"] = function(Opal) { return self.$require("opal/nodes/lambda"); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/eof_content"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; +Opal.modules["opal/eof_content"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $eqeq = Opal.eqeq, $range = Opal.range, $to_ary = Opal.to_ary; - Opal.add_stubs(['$empty?', '$[]', '$last_token_position', '$drop_while', '$lines', '$==', '$join', '$private', '$last', '$end_pos']); + Opal.add_stubs('empty?,[],last_token_position,drop_while,lines,==,join,private,last,end_pos'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -40014,329 +36306,259 @@ Opal.modules["opal/eof_content"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'EofContent'); - var $nesting = [self].concat($parent_nesting), $EofContent_initialize$1, $EofContent_eof$2, $EofContent_last_token_position$4; + var $nesting = [self].concat($parent_nesting), $proto = self.$$prototype; - self.$$prototype.tokens = self.$$prototype.source = nil; + $proto.tokens = $proto.source = nil; - Opal.const_set($nesting[0], 'DATA_SEPARATOR', "__END__\n"); + $const_set($nesting[0], 'DATA_SEPARATOR', "__END__\n"); - Opal.def(self, '$initialize', $EofContent_initialize$1 = function $$initialize(tokens, source) { + $def(self, '$initialize', function $$initialize(tokens, source) { var self = this; self.tokens = tokens; return (self.source = source); - }, $EofContent_initialize$1.$$arity = 2); + }, 2); - Opal.def(self, '$eof', $EofContent_eof$2 = function $$eof() { - var $$3, self = this, eof_content = nil, $ret_or_1 = nil; + $def(self, '$eof', function $$eof() { + var self = this, eof_content = nil, $ret_or_1 = nil; if ($truthy(self.tokens['$empty?']())) { - return nil}; + return nil + }; eof_content = self.source['$[]'](Opal.Range.$new(self.$last_token_position(), -1, false)); - if ($truthy(eof_content)) { - } else { + if (!$truthy(eof_content)) { return nil }; - eof_content = $send(eof_content.$lines(), 'drop_while', [], ($$3 = function(line){var self = $$3.$$s == null ? this : $$3.$$s; - + eof_content = $send(eof_content.$lines(), 'drop_while', [], function $$1(line){ - if (line == null) { - line = nil; - }; - return line['$==']("\n");}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - if (eof_content['$[]'](0)['$==']("__END__\n")) { + if (line == null) line = nil;; + return line['$==']("\n");}, 1); + if ($eqeq(eof_content['$[]'](0), "__END__\n")) { - eof_content = (function() {if ($truthy(($ret_or_1 = eof_content['$[]']($range(1, -1, false))))) { - return $ret_or_1 - } else { - return [] - }; return nil; })(); + eof_content = ($truthy(($ret_or_1 = eof_content['$[]']($range(1, -1, false)))) ? ($ret_or_1) : ([])); return eof_content.$join(); - } else if (eof_content['$=='](["__END__"])) { + } else if ($eqeq(eof_content, ["__END__"])) { return "" } else { return nil }; - }, $EofContent_eof$2.$$arity = 0); + }, 0); self.$private(); - return (Opal.def(self, '$last_token_position', $EofContent_last_token_position$4 = function $$last_token_position() { + return $def(self, '$last_token_position', function $$last_token_position() { var $a, $b, self = this, _ = nil, last_token_info = nil, last_token_range = nil; - $b = self.tokens.$last(), $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_info = ($a[1] == null ? nil : $a[1])), $b; - $b = last_token_info, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_range = ($a[1] == null ? nil : $a[1])), $b; + $b = self.tokens.$last(), $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_info = ($a[1] == null ? nil : $a[1])), $b; + $b = last_token_info, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_range = ($a[1] == null ? nil : $a[1])), $b; return last_token_range.$end_pos(); - }, $EofContent_last_token_position$4.$$arity = 0), nil) && 'last_token_position'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/errors"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; - - Opal.add_stubs(['$attr_reader', '$attr_accessor', '$new', '$respond_to?', '$location', '$location=', '$-', '$diagnostic', '$diagnostic=', '$to_a', '$backtrace', '$unshift', '$to_s', '$set_backtrace', '$path', '$lineno', '$+', '$label', '$line', '$lineno=', '$source_line', '$label=', '$expression']); +Opal.modules["opal/errors"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $defs = Opal.defs, $rb_plus = Opal.rb_plus, $alias = Opal.alias; + + Opal.add_stubs('attr_reader,attr_accessor,new,respond_to?,location,location=,-,diagnostic,diagnostic=,to_a,backtrace,unshift,to_s,set_backtrace,path,lineno,+,label,line,lineno=,source_line,label=,expression'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting), $Opal_opal_location_from_error$2, $Opal_add_opal_location_to_error$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Error'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { + $klass($nesting[0], $$('StandardError'), 'Error'); + (function($base, $super) { var self = $klass($base, $super, 'GemNotFound'); - var $nesting = [self].concat($parent_nesting), $GemNotFound_initialize$1; - + self.$attr_reader("gem_name"); - return (Opal.def(self, '$initialize', $GemNotFound_initialize$1 = function $$initialize(gem_name) { - var $iter = $GemNotFound_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(gem_name) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $GemNotFound_initialize$1.$$p = null; + delete $$initialize.$$p; self.gem_name = gem_name; - return $send2(self, $find_super(self, 'initialize', $GemNotFound_initialize$1, false, true), 'initialize', ["" + "can't find gem " + (gem_name)], null); - }, $GemNotFound_initialize$1.$$arity = 1), nil) && 'initialize'; - })($nesting[0], $$($nesting, 'Error'), $nesting); - (function($base, $super, $parent_nesting) { + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', ["can't find gem " + (gem_name)], null); + }, 1); + })($nesting[0], $$('Error')); + (function($base, $super) { var self = $klass($base, $super, 'CompilationError'); - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("location") - })($nesting[0], $$($nesting, 'Error'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ParsingError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'CompilationError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'RewritingError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'ParsingError'), $nesting); - (function($base, $super, $parent_nesting) { + })($nesting[0], $$('Error')); + $klass($nesting[0], $$('CompilationError'), 'ParsingError'); + $klass($nesting[0], $$('ParsingError'), 'RewritingError'); + (function($base, $super) { var self = $klass($base, $super, 'SyntaxError'); - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("location") - })($nesting[0], $$$('::', 'SyntaxError'), $nesting); - Opal.defs(self, '$opal_location_from_error', $Opal_opal_location_from_error$2 = function $$opal_location_from_error(error) { - var self = this, opal_location = nil, $writer = nil; + })($nesting[0], $$$('SyntaxError')); + $defs(self, '$opal_location_from_error', function $$opal_location_from_error(error) { + var opal_location = nil, $writer = nil; - opal_location = $$($nesting, 'OpalBacktraceLocation').$new(); + opal_location = $$('OpalBacktraceLocation').$new(); if ($truthy(error['$respond_to?']("location"))) { $writer = [error.$location()]; - $send(opal_location, 'location=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(opal_location, 'location=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; if ($truthy(error['$respond_to?']("diagnostic"))) { $writer = [error.$diagnostic()]; - $send(opal_location, 'diagnostic=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(opal_location, 'diagnostic=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; return opal_location; - }, $Opal_opal_location_from_error$2.$$arity = 1); - Opal.defs(self, '$add_opal_location_to_error', $Opal_add_opal_location_to_error$3 = function $$add_opal_location_to_error(opal_location, error) { - var self = this, backtrace = nil; + }, 1); + $defs(self, '$add_opal_location_to_error', function $$add_opal_location_to_error(opal_location, error) { + var backtrace = nil; backtrace = error.$backtrace().$to_a(); backtrace.$unshift(opal_location.$to_s()); error.$set_backtrace(backtrace); return error; - }, $Opal_add_opal_location_to_error$3.$$arity = 2); - return (function($base, $super, $parent_nesting) { + }, 2); + return (function($base, $super) { var self = $klass($base, $super, 'OpalBacktraceLocation'); - var $nesting = [self].concat($parent_nesting), $OpalBacktraceLocation_initialize$4, $OpalBacktraceLocation_to_s$5, $OpalBacktraceLocation_diagnostic$eq$6, $OpalBacktraceLocation_location$eq$7; - + self.$attr_accessor("path", "lineno", "label"); - Opal.def(self, '$initialize', $OpalBacktraceLocation_initialize$4 = function $$initialize(path, lineno, label) { + $def(self, '$initialize', function $$initialize(path, lineno, label) { var $a, self = this; - if (path == null) { - path = nil; - }; + if (path == null) path = nil;; - if (lineno == null) { - lineno = nil; - }; + if (lineno == null) lineno = nil;; - if (label == null) { - label = nil; - }; + if (label == null) label = nil;; return $a = [path, lineno, label], (self.path = $a[0]), (self.lineno = $a[1]), (self.label = $a[2]), $a; - }, $OpalBacktraceLocation_initialize$4.$$arity = -1); + }, -1); - Opal.def(self, '$to_s', $OpalBacktraceLocation_to_s$5 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this, string = nil; string = self.$path(); if ($truthy(self.$lineno())) { - string = $rb_plus(string, "" + ":" + (self.$lineno()))}; + string = $rb_plus(string, ":" + (self.$lineno())) + }; string = $rb_plus(string, ":in "); if ($truthy(self.$label())) { - string = $rb_plus(string, "" + "`" + (self.$label()) + "'") + string = $rb_plus(string, "`" + (self.$label()) + "'") } else { string = $rb_plus(string, "unknown") }; return string; - }, $OpalBacktraceLocation_to_s$5.$$arity = 0); + }, 0); $alias(self, "line", "lineno"); - Opal.def(self, '$diagnostic=', $OpalBacktraceLocation_diagnostic$eq$6 = function(diagnostic) { + $def(self, '$diagnostic=', function $OpalBacktraceLocation_diagnostic$eq$1(diagnostic) { var self = this, $writer = nil; - if ($truthy(diagnostic)) { - } else { + if (!$truthy(diagnostic)) { return nil }; $writer = [diagnostic.$location()]; - $send(self, 'location=', Opal.to_a($writer)); + $send(self, 'location=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $OpalBacktraceLocation_diagnostic$eq$6.$$arity = 1); - return (Opal.def(self, '$location=', $OpalBacktraceLocation_location$eq$7 = function(location) { + }, 1); + return $def(self, '$location=', function $OpalBacktraceLocation_location$eq$2(location) { var self = this, $writer = nil; - if ($truthy(location)) { - } else { + if (!$truthy(location)) { return nil }; $writer = [location.$line()]; - $send(self, 'lineno=', Opal.to_a($writer)); + $send(self, 'lineno=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(location['$respond_to?']("source_line"))) { $writer = [location.$source_line()]; - $send(self, 'label=', Opal.to_a($writer)); + $send(self, 'label=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else if ($truthy(location['$respond_to?']("expression"))) { $writer = [location.$expression().$source_line()]; - $send(self, 'label=', Opal.to_a($writer)); + $send(self, 'label=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil }; - }, $OpalBacktraceLocation_location$eq$7.$$arity = 1), nil) && 'location='; - })($nesting[0], null, $nesting); + }, 1); + })($nesting[0], null); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/magic_comments"] = function(Opal) { - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$freeze', '$line', '$loc', '$take', '$each', '$>=', '$any?', '$scan', '$text', '$to_sym', '$===', '$[]=', '$-']); +Opal.modules["opal/magic_comments"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $rb_ge = Opal.rb_ge, $eqeqeq = Opal.eqeqeq, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $defs = Opal.defs; + + Opal.add_stubs('freeze,line,loc,take,each,>=,any?,scan,text,to_sym,===,[]=,-'); return (function($base, $parent_nesting) { var self = $module($base, 'MagicComments'); - var $nesting = [self].concat($parent_nesting), $MagicComments_parse$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'MAGIC_COMMENT_RE', /^# *(\w+) *: *(\S+.*?) *$/.$freeze()); - Opal.const_set($nesting[0], 'EMACS_MAGIC_COMMENT_RE', /^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()); - return (Opal.defs(self, '$parse', $MagicComments_parse$1 = function $$parse(sexp, comments) { - var $$2, self = this, flags = nil, first_line = nil; + $const_set($nesting[0], 'MAGIC_COMMENT_RE', /^# *(\w+) *: *(\S+.*?) *$/.$freeze()); + $const_set($nesting[0], 'EMACS_MAGIC_COMMENT_RE', /^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()); + return $defs(self, '$parse', function $$parse(sexp, comments) { + var flags = nil, first_line = nil; flags = $hash2([], {}); if ($truthy(sexp)) { first_line = sexp.$loc().$line(); - comments = comments.$take(first_line);}; - $send(comments, 'each', [], ($$2 = function(comment){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $ret_or_1 = nil, $ret_or_2 = nil, parts = nil; + comments = comments.$take(first_line); + }; + $send(comments, 'each', [], function $$1(comment){var parts = nil; - if (comment == null) { - comment = nil; + if (comment == null) comment = nil;; + if (($truthy(first_line) && ($truthy($rb_ge(comment.$loc().$line(), first_line))))) { + return nil; }; - if ($truthy((function() {if ($truthy(($ret_or_1 = first_line))) { - return $rb_ge(comment.$loc().$line(), first_line) - } else { - return $ret_or_1 - }; return nil; })())) { - return nil;}; - if ($truthy((function() {if ($truthy(($ret_or_2 = (parts = comment.$text().$scan($$($nesting, 'MAGIC_COMMENT_RE')))['$any?']()))) { - return $ret_or_2 - } else { - return (parts = comment.$text().$scan($$($nesting, 'EMACS_MAGIC_COMMENT_RE')))['$any?']() - }; return nil; })())) { - return $send(parts, 'each', [], ($$3 = function(key, value){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil, $case = nil; + if (($truthy((parts = comment.$text().$scan($$('MAGIC_COMMENT_RE')))['$any?']()) || ($truthy((parts = comment.$text().$scan($$('EMACS_MAGIC_COMMENT_RE')))['$any?']())))) { + return $send(parts, 'each', [], function $$2(key, value){var $writer = nil, $ret_or_1 = nil; - if (key == null) { - key = nil; - }; + if (key == null) key = nil;; - if (value == null) { - value = nil; - }; - $writer = [key.$to_sym(), (function() {$case = value; - if ("true"['$===']($case)) {return true} - else if ("false"['$===']($case)) {return false} - else {return value}})()]; - $send(flags, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 2, $$3)) + if (value == null) value = nil;; + $writer = [key.$to_sym(), ($eqeqeq("true", ($ret_or_1 = value)) || (($eqeqeq("false", $ret_or_1) ? (false) : (value))))]; + $send(flags, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 2) } else { return nil - };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + };}, 1); return flags; - }, $MagicComments_parse$1.$$arity = 2), nil) && 'parse'; - })($$($nesting, 'Opal'), $nesting) + }, 2); + })($$('Opal'), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/compiler"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $slice = Opal.slice; - - Opal.add_stubs(['$require', '$compile', '$new', '$freeze', '$join', '$dirname', '$first', '$split', '$basename', '$to_s', '$cleanpath', '$Pathname', '$fetch', '$define_method', '$option_value', '$key?', '$[]', '$!', '$include?', '$raise', '$inspect', '$[]=', '$-', '$compiler_option', '$attr_reader', '$attr_accessor', '$parse', '$re_raise_with_location', '$flatten', '$process', '$end_with?', '$code', '$last', '$<<', '$fragment', '$s', '$map', '$to_proc', '$file', '$source=', '$default_parser', '$tokenize', '$associate_locations', '$eof', '$magic_comments', '$to_sym', '$strip', '$location=', '$opal_location_from_error', '$path=', '$label', '$lines', '$to_i', '$line', '$label=', '$message', '$set_backtrace', '$backtrace', '$add_opal_location_to_error', '$warn', '$empty?', '$gsub', '$+', '$start_with?', '$helpers', '$new_temp', '$queue_temp', '$push_while', '$pop_while', '$in_while?', '$nil?', '$scope', '$handlers', '$type', '$compile_to_fragments', '$error', '$returns', '$===', '$updated', '$children', '$loc', '$uses_block!', '$block_name', '$find_parent_def', '$cache', '$source_map']); +Opal.modules["opal/compiler"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $hash2 = Opal.hash2, $defs = Opal.defs, $klass = Opal.klass, $const_set = Opal.const_set, $send = Opal.send, $truthy = Opal.truthy, $not = Opal.not, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $Opal = Opal.Opal, $to_ary = Opal.to_ary, $alias = Opal.alias, $eqeqeq = Opal.eqeqeq, $regexp = Opal.regexp, $rb_plus = Opal.rb_plus, $slice = Opal.slice, $eqeq = Opal.eqeq; + + Opal.add_stubs('require,compile,new,freeze,join,dirname,first,split,basename,to_s,cleanpath,Pathname,fetch,define_method,option_value,key?,[],!,include?,raise,inspect,[]=,-,compiler_option,attr_reader,attr_accessor,parse,re_raise_with_location,flatten,process,end_with?,code,last,<<,fragment,s,map,to_proc,file,source=,default_parser,tokenize,requirable?,eval?,tap,meta,location,children,associate_locations,eof,magic_comments,to_sym,strip,async_await_before_typecasting,===,async_await_set_to_regexp,to_a,gsub,escape,location=,opal_location_from_error,path=,label,lines,to_i,line,label=,message,set_backtrace,backtrace,add_opal_location_to_error,warn,empty?,+,start_with?,helpers,new_temp,queue_temp,push_while,pop_while,in_while?,nil?,scope,handlers,type,compile_to_fragments,error,returns,updated,==,uses_block!,block_name,find_parent_def,cache,source_map'); self.$require("set"); self.$require("opal/parser"); @@ -40348,76 +36570,66 @@ Opal.modules["opal/compiler"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting), $Opal_compile$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$compile', $Opal_compile$1 = function $$compile(source, options) { - var self = this; - + $defs(self, '$compile', function $$compile(source, options) { - if (options == null) { - options = $hash2([], {}); - }; - return $$($nesting, 'Compiler').$new(source, options).$compile(); - }, $Opal_compile$1.$$arity = -2); + + if (options == null) options = $hash2([], {});; + return $$('Compiler').$new(source, options).$compile(); + }, -2); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Compiler'); - var $nesting = [self].concat($parent_nesting), $Compiler_module_name$2, $Compiler_compiler_option$3, $Compiler_option_value$5, $Compiler_initialize$6, $Compiler_compile$7, $Compiler_parse$9, $Compiler_source_map$11, $Compiler_helpers$12, $Compiler_operator_helpers$14, $Compiler_method_calls$15, $Compiler_error$16, $Compiler_re_raise_with_location$17, $Compiler_warning$18, $Compiler_parser_indent$19, $Compiler_s$20, $Compiler_fragment$21, $Compiler_unique_temp$22, $Compiler_helper$23, $Compiler_indent$24, $Compiler_with_temp$25, $Compiler_in_while$26, $Compiler_in_case$27, $Compiler_in_while$ques$28, $Compiler_process$29, $Compiler_handlers$30, $Compiler_requires$31, $Compiler_required_trees$32, $Compiler_returns$33, $Compiler_handle_block_given_call$35, $Compiler_marshal_dump$36, $Compiler_marshal_load$37; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.option_values = self.$$prototype.options = self.$$prototype.magic_comments = self.$$prototype.fragments = self.$$prototype.source = self.$$prototype.buffer = self.$$prototype.source_map = self.$$prototype.result = self.$$prototype.helpers = self.$$prototype.operator_helpers = self.$$prototype.method_calls = self.$$prototype.indent = self.$$prototype.unique = self.$$prototype.scope = self.$$prototype.case_stmt = self.$$prototype.handlers = self.$$prototype.requires = self.$$prototype.required_trees = nil; + $proto.option_values = $proto.options = $proto.magic_comments = $proto.fragments = $proto.source = $proto.buffer = $proto.source_map = $proto.result = $proto.helpers = $proto.method_calls = $proto.async_await = $proto.indent = $proto.unique = $proto.scope = $proto.case_stmt = $proto.handlers = $proto.requires = $proto.required_trees = $proto.autoloads = nil; - Opal.const_set($nesting[0], 'INDENT', " "); - Opal.const_set($nesting[0], 'COMPARE', ["<", ">", "<=", ">="].$freeze()); - Opal.defs(self, '$module_name', $Compiler_module_name$2 = function $$module_name(path) { + $const_set($nesting[0], 'INDENT', " "); + $const_set($nesting[0], 'COMPARE', ["<", ">", "<=", ">="].$freeze()); + $defs(self, '$module_name', function $$module_name(path) { var self = this; - path = $$($nesting, 'File').$join($$($nesting, 'File').$dirname(path), $$($nesting, 'File').$basename(path).$split(".").$first()); + path = $$('File').$join($$('File').$dirname(path), $$('File').$basename(path).$split(".").$first()); return self.$Pathname(path).$cleanpath().$to_s(); - }, $Compiler_module_name$2.$$arity = 1); - Opal.defs(self, '$compiler_option', $Compiler_compiler_option$3 = function $$compiler_option(name, config) { - var $$4, self = this, method_name = nil; + }, 1); + $defs(self, '$compiler_option', function $$compiler_option(name, config) { + var self = this, method_name = nil; - if (config == null) { - config = $hash2([], {}); - }; + if (config == null) config = $hash2([], {});; method_name = config.$fetch("as", name); - return $send(self, 'define_method', [method_name], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + return $send(self, 'define_method', [method_name], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$option_value(name, config)}, $$4.$$s = self, $$4.$$arity = 0, $$4)); - }, $Compiler_compiler_option$3.$$arity = -2); + return self.$option_value(name, config)}, {$$arity: 0, $$s: self}); + }, -2); - Opal.def(self, '$option_value', $Compiler_option_value$5 = function $$option_value(name, config) { - var self = this, default_value = nil, valid_values = nil, magic_comment = nil, value = nil, $ret_or_1 = nil, $ret_or_2 = nil, $writer = nil; + $def(self, '$option_value', function $$option_value(name, config) { + var self = this, default_value = nil, valid_values = nil, magic_comment = nil, value = nil, $writer = nil; if ($truthy(self.option_values['$key?'](name))) { - return self.option_values['$[]'](name)}; + return self.option_values['$[]'](name) + }; default_value = config['$[]']("default"); valid_values = config['$[]']("valid_values"); magic_comment = config['$[]']("magic_comment"); value = self.options.$fetch(name, default_value); - if ($truthy((function() {if ($truthy(($ret_or_1 = magic_comment))) { - return self.magic_comments['$key?'](name) - } else { - return $ret_or_1 - }; return nil; })())) { - value = self.magic_comments.$fetch(name)}; - if ($truthy((function() {if ($truthy(($ret_or_2 = valid_values))) { - return valid_values['$include?'](value)['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'), "" + ("" + "invalid value " + (value.$inspect()) + " for option " + (name.$inspect()) + " ") + ("" + "(valid values: " + (valid_values.$inspect()) + ")"))}; + if (($truthy(magic_comment) && ($truthy(self.magic_comments['$key?'](name))))) { + value = self.magic_comments.$fetch(name) + }; + if (($truthy(valid_values) && ($not(valid_values['$include?'](value))))) { + self.$raise($$('ArgumentError'), "" + ("invalid value " + (value.$inspect()) + " for option " + (name.$inspect()) + " ") + ("(valid values: " + (valid_values.$inspect()) + ")")) + }; $writer = [name, value]; - $send(self.option_values, '[]=', Opal.to_a($writer)); + $send(self.option_values, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $Compiler_option_value$5.$$arity = 2); + }, 2); self.$compiler_option("file", $hash2(["default"], {"default": "(file)"})); self.$compiler_option("method_missing", $hash2(["default", "as"], {"default": true, "as": "method_missing?"})); self.$compiler_option("arity_check", $hash2(["default", "as"], {"default": false, "as": "arity_check?"})); @@ -40432,431 +36644,424 @@ Opal.modules["opal/compiler"] = function(Opal) { self.$compiler_option("use_strict", $hash2(["default", "as", "magic_comment"], {"default": false, "as": "use_strict?", "magic_comment": true})); self.$compiler_option("parse_comments", $hash2(["default", "as"], {"default": false, "as": "parse_comments?"})); self.$compiler_option("scope_variables", $hash2(["default"], {"default": []})); + self.$compiler_option("await", $hash2(["default", "as", "magic_comment"], {"default": false, "as": "async_await", "magic_comment": true})); self.$attr_reader("result"); self.$attr_reader("fragments"); self.$attr_accessor("scope"); + self.$attr_accessor("top_scope"); self.$attr_reader("case_stmt"); self.$attr_reader("eof_content"); self.$attr_reader("comments"); self.$attr_reader("magic_comments"); + self.$attr_accessor("dynamic_cache_result"); - Opal.def(self, '$initialize', $Compiler_initialize$6 = function $$initialize(source, options) { + $def(self, '$initialize', function $$initialize(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; self.source = source; self.indent = ""; self.unique = 0; self.options = options; - self.comments = $$($nesting, 'Hash').$new([]); + self.comments = $$('Hash').$new([]); self.case_stmt = nil; self.option_values = $hash2([], {}); - return (self.magic_comments = $hash2([], {})); - }, $Compiler_initialize$6.$$arity = -2); + self.magic_comments = $hash2([], {}); + return (self.dynamic_cache_result = false); + }, -2); - Opal.def(self, '$compile', $Compiler_compile$7 = function $$compile() { - var $$8, self = this; + $def(self, '$compile', function $$compile() { + var self = this; self.$parse(); - self.fragments = $send(self, 're_raise_with_location', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + self.fragments = $send(self, 're_raise_with_location', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; if (self.sexp == null) self.sexp = nil; - return self.$process(self.sexp).$flatten()}, $$8.$$s = self, $$8.$$arity = 0, $$8)); - if ($truthy(self.fragments.$last().$code()['$end_with?']("\n"))) { - } else { + return self.$process(self.sexp).$flatten()}, {$$arity: 0, $$s: self}); + if (!$truthy(self.fragments.$last().$code()['$end_with?']("\n"))) { self.fragments['$<<'](self.$fragment("\n", nil, self.$s("newline"))) }; return (self.result = $send(self.fragments, 'map', [], "code".$to_proc()).$join("")); - }, $Compiler_compile$7.$$arity = 0); + }, 0); - Opal.def(self, '$parse', $Compiler_parse$9 = function $$parse() { - var $a, $b, $$10, self = this, $writer = nil, sexp = nil, comments = nil, tokens = nil, $ret_or_3 = nil; + $def(self, '$parse', function $$parse() { + var $a, $b, self = this, $writer = nil, sexp = nil, comments = nil, tokens = nil, kind = nil, first_node = nil; - self.buffer = $$$($$$($$$('::', 'Opal'), 'Parser'), 'SourceBuffer').$new(self.$file(), 1); + self.buffer = $$$($$$($Opal, 'Parser'), 'SourceBuffer').$new(self.$file(), 1); $writer = [self.source]; - $send(self.buffer, 'source=', Opal.to_a($writer)); + $send(self.buffer, 'source=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.parser = $$$($$($nesting, 'Opal'), 'Parser').$default_parser(); - $b = $send(self, 're_raise_with_location', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + self.parser = $$$($$('Opal'), 'Parser').$default_parser(); + $b = $send(self, 're_raise_with_location', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; if (self.parser == null) self.parser = nil; if (self.buffer == null) self.buffer = nil; - return self.parser.$tokenize(self.buffer)}, $$10.$$s = self, $$10.$$arity = 0, $$10)), $a = Opal.to_ary($b), (sexp = ($a[0] == null ? nil : $a[0])), (comments = ($a[1] == null ? nil : $a[1])), (tokens = ($a[2] == null ? nil : $a[2])), $b; - self.sexp = self.$s("top", (function() {if ($truthy(($ret_or_3 = sexp))) { - return $ret_or_3 - } else { - return self.$s("nil") - }; return nil; })()); - self.comments = $$$($$$($$$('::', 'Parser'), 'Source'), 'Comment').$associate_locations(sexp, comments); - self.magic_comments = $$($nesting, 'MagicComments').$parse(sexp, comments); - return (self.eof_content = $$($nesting, 'EofContent').$new(tokens, self.source).$eof()); - }, $Compiler_parse$9.$$arity = 0); - - Opal.def(self, '$source_map', $Compiler_source_map$11 = function $$source_map() { - var self = this, $ret_or_4 = nil; - - if ($truthy(($ret_or_4 = self.source_map))) { - return $ret_or_4 - } else { - return $$$($$$($$$('::', 'Opal'), 'SourceMap'), 'File').$new(self.fragments, self.$file(), self.source, self.result) - } - }, $Compiler_source_map$11.$$arity = 0); + return self.parser.$tokenize(self.buffer)}, {$$arity: 0, $$s: self}), $a = $to_ary($b), (sexp = ($a[0] == null ? nil : $a[0])), (comments = ($a[1] == null ? nil : $a[1])), (tokens = ($a[2] == null ? nil : $a[2])), $b; + kind = ($truthy(self['$requirable?']()) ? ("require") : ($truthy(self['$eval?']()) ? ("eval") : ("main"))); + self.sexp = $send(sexp, 'tap', [], function $$4(i){ + + + if (i == null) i = nil;; + $writer = ["kind", kind]; + $send(i.$meta(), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + if ($truthy(sexp.$children().$first().$location())) { + first_node = sexp.$children().$first() + }; + self.comments = $$$($$$($$$('Parser'), 'Source'), 'Comment').$associate_locations(first_node, comments); + self.magic_comments = $$('MagicComments').$parse(first_node, comments); + return (self.eof_content = $$('EofContent').$new(tokens, self.source).$eof()); + }, 0); - Opal.def(self, '$helpers', $Compiler_helpers$12 = function $$helpers() { - var $$13, self = this, $ret_or_5 = nil; + $def(self, '$source_map', function $$source_map() { + var self = this, $ret_or_1 = nil; - return (self.helpers = (function() {if ($truthy(($ret_or_5 = self.helpers))) { - return $ret_or_5 + if ($truthy(($ret_or_1 = self.source_map))) { + return $ret_or_1 } else { - return $$($nesting, 'Set').$new($send(self.$magic_comments()['$[]']("helpers").$to_s().$split(","), 'map', [], ($$13 = function(h){var self = $$13.$$s == null ? this : $$13.$$s; + return $$$($$$($Opal, 'SourceMap'), 'File').$new(self.fragments, self.$file(), self.source, self.result) + } + }, 0); + + $def(self, '$helpers', function $$helpers() { + var self = this, $ret_or_1 = nil; - - - if (h == null) { - h = nil; - }; - return h.$strip().$to_sym();}, $$13.$$s = self, $$13.$$arity = 1, $$13))) - }; return nil; })()) - }, $Compiler_helpers$12.$$arity = 0); + return (self.helpers = ($truthy(($ret_or_1 = self.helpers)) ? ($ret_or_1) : ($$('Set').$new($send(self.$magic_comments()['$[]']("helpers").$to_s().$split(","), 'map', [], function $$5(h){ + + + if (h == null) h = nil;; + return h.$strip().$to_sym();}, 1))))) + }, 0); - Opal.def(self, '$operator_helpers', $Compiler_operator_helpers$14 = function $$operator_helpers() { - var self = this, $ret_or_6 = nil; + $def(self, '$method_calls', function $$method_calls() { + var self = this, $ret_or_1 = nil; - return (self.operator_helpers = (function() {if ($truthy(($ret_or_6 = self.operator_helpers))) { - return $ret_or_6 - } else { - return $$($nesting, 'Set').$new() - }; return nil; })()) - }, $Compiler_operator_helpers$14.$$arity = 0); + return (self.method_calls = ($truthy(($ret_or_1 = self.method_calls)) ? ($ret_or_1) : ($$('Set').$new()))) + }, 0); + $alias(self, "async_await_before_typecasting", "async_await"); - Opal.def(self, '$method_calls', $Compiler_method_calls$15 = function $$method_calls() { - var self = this, $ret_or_7 = nil; + $def(self, '$async_await', function $$async_await() { + var $a, self = this, original = nil, $ret_or_1 = nil; - return (self.method_calls = (function() {if ($truthy(($ret_or_7 = self.method_calls))) { - return $ret_or_7 + if ($truthy((($a = self['async_await'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + return self.async_await } else { - return $$($nesting, 'Set').$new() - }; return nil; })()) - }, $Compiler_method_calls$15.$$arity = 0); + + original = self.$async_await_before_typecasting(); + return (self.async_await = ($eqeqeq($$('String'), ($ret_or_1 = original)) ? (self.$async_await_set_to_regexp($send(original.$split(","), 'map', [], function $$6(h){ + + + if (h == null) h = nil;; + return h.$strip().$to_sym();}, 1))) : (($eqeqeq($$('Array'), $ret_or_1) || ($eqeqeq($$('Set'), $ret_or_1))) ? (self.$async_await_set_to_regexp($send(original.$to_a(), 'map', [], "to_sym".$to_proc()))) : (($eqeqeq($$('Regexp'), $ret_or_1) || (($eqeqeq(true, $ret_or_1) || ($eqeqeq(false, $ret_or_1))))) ? (original) : (self.$raise("A value of await compiler option can be either " + "a Set, an Array, a String or a Boolean.")))))); + } + }, 0); + + $def(self, '$async_await_set_to_regexp', function $$async_await_set_to_regexp(set) { + + + set = $send(set, 'map', [], function $$7(name){ + + + if (name == null) name = nil;; + return $$('Regexp').$escape(name.$to_s()).$gsub("\\*", ".*?");}, 1); + set = set.$join("|"); + return $regexp(["^(", set, ")$"]); + }, 1); - Opal.def(self, '$error', $Compiler_error$16 = function $$error(msg, line) { + $def(self, '$error', function $$error(msg, line) { var self = this, error = nil, $writer = nil; - if (line == null) { - line = nil; - }; - error = $$$($$$('::', 'Opal'), 'SyntaxError').$new(msg); + if (line == null) line = nil;; + error = $$$($Opal, 'SyntaxError').$new(msg); - $writer = [$$$($$($nesting, 'Opal'), 'OpalBacktraceLocation').$new(self.$file(), line)]; - $send(error, 'location=', Opal.to_a($writer)); + $writer = [$$$($$('Opal'), 'OpalBacktraceLocation').$new(self.$file(), line)]; + $send(error, 'location=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$raise(error); - }, $Compiler_error$16.$$arity = -2); + }, -2); - Opal.def(self, '$re_raise_with_location', $Compiler_re_raise_with_location$17 = function $$re_raise_with_location() { - var $iter = $Compiler_re_raise_with_location$17.$$p, $yield = $iter || nil, self = this, error = nil, opal_location = nil, $writer = nil, $ret_or_8 = nil, new_error = nil; + $def(self, '$re_raise_with_location', function $$re_raise_with_location() { + var $yield = $$re_raise_with_location.$$p || nil, self = this, error = nil, opal_location = nil, $writer = nil, $ret_or_1 = nil, new_error = nil; - if ($iter) $Compiler_re_raise_with_location$17.$$p = null; + delete $$re_raise_with_location.$$p; try { return Opal.yieldX($yield, []); } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'StandardError'), $$$($$$('::', 'Opal'), 'SyntaxError')])) {(error = $err) + if (Opal.rescue($err, [$$('StandardError'), $$$($Opal, 'SyntaxError')])) {(error = $err) try { - opal_location = $$$('::', 'Opal').$opal_location_from_error(error); + opal_location = $Opal.$opal_location_from_error(error); $writer = [self.$file()]; - $send(opal_location, 'path=', Opal.to_a($writer)); + $send(opal_location, 'path=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(($ret_or_8 = opal_location.$label()))) { - $ret_or_8 + if ($truthy(($ret_or_1 = opal_location.$label()))) { + $ret_or_1 } else { $writer = [self.source.$lines()['$[]']($rb_minus(opal_location.$line().$to_i(), 1)).$strip()]; - $send(opal_location, 'label=', Opal.to_a($writer)); + $send(opal_location, 'label=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - new_error = $$$($$$('::', 'Opal'), 'SyntaxError').$new(error.$message()); + new_error = $$$($Opal, 'SyntaxError').$new(error.$message()); new_error.$set_backtrace(error.$backtrace()); - $$$('::', 'Opal').$add_opal_location_to_error(opal_location, new_error); + $Opal.$add_opal_location_to_error(opal_location, new_error); return self.$raise(new_error); } finally { Opal.pop_exception(); } } else { throw $err; } } - }, $Compiler_re_raise_with_location$17.$$arity = 0); + }, 0); - Opal.def(self, '$warning', $Compiler_warning$18 = function $$warning(msg, line) { + $def(self, '$warning', function $$warning(msg, line) { var self = this; - if (line == null) { - line = nil; - }; - return self.$warn("" + "warning: " + (msg) + " -- " + (self.$file()) + ":" + (line)); - }, $Compiler_warning$18.$$arity = -2); + if (line == null) line = nil;; + return self.$warn("warning: " + (msg) + " -- " + (self.$file()) + ":" + (line)); + }, -2); - Opal.def(self, '$parser_indent', $Compiler_parser_indent$19 = function $$parser_indent() { + $def(self, '$parser_indent', function $$parser_indent() { var self = this; return self.indent - }, $Compiler_parser_indent$19.$$arity = 0); + }, 0); - Opal.def(self, '$s', $Compiler_s$20 = function $$s(type, $a) { - var $post_args, children, self = this; + $def(self, '$s', function $$s(type, $a) { + var $post_args, children; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); children = $post_args;; - return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children); - }, $Compiler_s$20.$$arity = -2); + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children); + }, -2); - Opal.def(self, '$fragment', $Compiler_fragment$21 = function $$fragment(str, scope, sexp) { - var self = this; - + $def(self, '$fragment', function $$fragment(str, scope, sexp) { - if (sexp == null) { - sexp = nil; - }; - return $$($nesting, 'Fragment').$new(str, scope, sexp); - }, $Compiler_fragment$21.$$arity = -3); + + if (sexp == null) sexp = nil;; + return $$('Fragment').$new(str, scope, sexp); + }, -3); - Opal.def(self, '$unique_temp', $Compiler_unique_temp$22 = function $$unique_temp(name) { - var self = this, $ret_or_9 = nil, unique = nil; + $def(self, '$unique_temp', function $$unique_temp(name) { + var self = this, unique = nil; name = name.$to_s(); - if ($truthy((function() {if ($truthy(($ret_or_9 = name))) { - return name['$empty?']()['$!']() - } else { - return $ret_or_9 - }; return nil; })())) { - name = name.$to_s().$gsub("<=>", "$lt_eq_gt").$gsub("===", "$eq_eq_eq").$gsub("==", "$eq_eq").$gsub("=~", "$eq_tilde").$gsub("!~", "$excl_tilde").$gsub("!=", "$not_eq").$gsub("<=", "$lt_eq").$gsub(">=", "$gt_eq").$gsub("=", "$eq").$gsub("?", "$ques").$gsub("!", "$excl").$gsub("/", "$slash").$gsub("%", "$percent").$gsub("+", "$plus").$gsub("-", "$minus").$gsub("<", "$lt").$gsub(">", "$gt").$gsub(/[^\w\$]/, "$")}; + if (($truthy(name) && ($not(name['$empty?']())))) { + name = name.$to_s().$gsub("<=>", "$lt_eq_gt").$gsub("===", "$eq_eq_eq").$gsub("==", "$eq_eq").$gsub("=~", "$eq_tilde").$gsub("!~", "$excl_tilde").$gsub("!=", "$not_eq").$gsub("<=", "$lt_eq").$gsub(">=", "$gt_eq").$gsub("=", "$eq").$gsub("?", "$ques").$gsub("!", "$excl").$gsub("/", "$slash").$gsub("%", "$percent").$gsub("+", "$plus").$gsub("-", "$minus").$gsub("<", "$lt").$gsub(">", "$gt").$gsub(/[^\w\$]/, "$") + }; unique = (self.unique = $rb_plus(self.unique, 1)); - return "" + ((function() {if ($truthy(name['$start_with?']("$"))) { - return nil - } else { - return "$" - }; return nil; })()) + (name) + "$" + (unique); - }, $Compiler_unique_temp$22.$$arity = 1); + return "" + (($truthy(name['$start_with?']("$")) ? (nil) : ("$"))) + (name) + "$" + (unique); + }, 1); - Opal.def(self, '$helper', $Compiler_helper$23 = function $$helper(name) { + $def(self, '$helper', function $$helper(name) { var self = this; return self.$helpers()['$<<'](name) - }, $Compiler_helper$23.$$arity = 1); + }, 1); - Opal.def(self, '$indent', $Compiler_indent$24 = function $$indent() { - var $iter = $Compiler_indent$24.$$p, $yield = $iter || nil, self = this, indent = nil, res = nil; + $def(self, '$indent', function $$indent() { + var $yield = $$indent.$$p || nil, self = this, indent = nil, res = nil; - if ($iter) $Compiler_indent$24.$$p = null; + delete $$indent.$$p; indent = self.indent; - self.indent = $rb_plus(self.indent, $$($nesting, 'INDENT')); - self.space = "" + "\n" + (self.indent); + self.indent = $rb_plus(self.indent, $$('INDENT')); + self.space = "\n" + (self.indent); res = Opal.yieldX($yield, []); self.indent = indent; - self.space = "" + "\n" + (self.indent); + self.space = "\n" + (self.indent); return res; - }, $Compiler_indent$24.$$arity = 0); + }, 0); - Opal.def(self, '$with_temp', $Compiler_with_temp$25 = function $$with_temp() { - var $iter = $Compiler_with_temp$25.$$p, $yield = $iter || nil, self = this, tmp = nil, res = nil; + $def(self, '$with_temp', function $$with_temp() { + var $yield = $$with_temp.$$p || nil, self = this, tmp = nil, res = nil; - if ($iter) $Compiler_with_temp$25.$$p = null; + delete $$with_temp.$$p; tmp = self.scope.$new_temp(); res = Opal.yield1($yield, tmp); self.scope.$queue_temp(tmp); return res; - }, $Compiler_with_temp$25.$$arity = 0); + }, 0); - Opal.def(self, '$in_while', $Compiler_in_while$26 = function $$in_while() { - var $iter = $Compiler_in_while$26.$$p, $yield = $iter || nil, self = this, result = nil; + $def(self, '$in_while', function $$in_while() { + var $yield = $$in_while.$$p || nil, self = this, result = nil; - if ($iter) $Compiler_in_while$26.$$p = null; + delete $$in_while.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return nil }; self.while_loop = self.scope.$push_while(); result = Opal.yieldX($yield, []); self.scope.$pop_while(); return result; - }, $Compiler_in_while$26.$$arity = 0); + }, 0); - Opal.def(self, '$in_case', $Compiler_in_case$27 = function $$in_case() { - var $iter = $Compiler_in_case$27.$$p, $yield = $iter || nil, self = this, old = nil; + $def(self, '$in_case', function $$in_case() { + var $yield = $$in_case.$$p || nil, self = this, old = nil; - if ($iter) $Compiler_in_case$27.$$p = null; + delete $$in_case.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return nil }; old = self.case_stmt; self.case_stmt = $hash2([], {}); Opal.yieldX($yield, []); return (self.case_stmt = old); - }, $Compiler_in_case$27.$$arity = 0); + }, 0); - Opal.def(self, '$in_while?', $Compiler_in_while$ques$28 = function() { + $def(self, '$in_while?', function $Compiler_in_while$ques$8() { var self = this; return self.scope['$in_while?']() - }, $Compiler_in_while$ques$28.$$arity = 0); + }, 0); - Opal.def(self, '$process', $Compiler_process$29 = function $$process(sexp, level) { + $def(self, '$process', function $$process(sexp, level) { var self = this, handler = nil; - if (level == null) { - level = "expr"; - }; + if (level == null) level = "expr";; if ($truthy(sexp['$nil?']())) { - return self.$fragment("", self.$scope())}; + return self.$fragment("", self.$scope()) + }; if ($truthy((handler = self.$handlers()['$[]'](sexp.$type())))) { return handler.$new(sexp, level, self).$compile_to_fragments() } else { - return self.$error("" + "Unsupported sexp: " + (sexp.$type())) + return self.$error("Unsupported sexp: " + (sexp.$type())) }; - }, $Compiler_process$29.$$arity = -2); + }, -2); - Opal.def(self, '$handlers', $Compiler_handlers$30 = function $$handlers() { - var self = this, $ret_or_10 = nil; + $def(self, '$handlers', function $$handlers() { + var self = this, $ret_or_1 = nil; - return (self.handlers = (function() {if ($truthy(($ret_or_10 = self.handlers))) { - return $ret_or_10 - } else { - return $$$($$$($$($nesting, 'Opal'), 'Nodes'), 'Base').$handlers() - }; return nil; })()) - }, $Compiler_handlers$30.$$arity = 0); + return (self.handlers = ($truthy(($ret_or_1 = self.handlers)) ? ($ret_or_1) : ($$$($$$($$('Opal'), 'Nodes'), 'Base').$handlers()))) + }, 0); - Opal.def(self, '$requires', $Compiler_requires$31 = function $$requires() { - var self = this, $ret_or_11 = nil; + $def(self, '$requires', function $$requires() { + var self = this, $ret_or_1 = nil; - return (self.requires = (function() {if ($truthy(($ret_or_11 = self.requires))) { - return $ret_or_11 - } else { - return [] - }; return nil; })()) - }, $Compiler_requires$31.$$arity = 0); + return (self.requires = ($truthy(($ret_or_1 = self.requires)) ? ($ret_or_1) : ([]))) + }, 0); - Opal.def(self, '$required_trees', $Compiler_required_trees$32 = function $$required_trees() { - var self = this, $ret_or_12 = nil; + $def(self, '$required_trees', function $$required_trees() { + var self = this, $ret_or_1 = nil; - return (self.required_trees = (function() {if ($truthy(($ret_or_12 = self.required_trees))) { - return $ret_or_12 - } else { - return [] - }; return nil; })()) - }, $Compiler_required_trees$32.$$arity = 0); + return (self.required_trees = ($truthy(($ret_or_1 = self.required_trees)) ? ($ret_or_1) : ([]))) + }, 0); - Opal.def(self, '$returns', $Compiler_returns$33 = function $$returns(sexp) { - var $a, $b, $$34, self = this, $case = nil, when_sexp = nil, then_sexp = nil, body_sexp = nil, resbodies = nil, else_sexp = nil, klass = nil, lvar = nil, body = nil, rescue_sexp = nil, ensure_body = nil, rest = nil, last = nil, cond = nil, true_body = nil, false_body = nil; + $def(self, '$autoloads', function $$autoloads() { + var self = this, $ret_or_1 = nil; + + return (self.autoloads = ($truthy(($ret_or_1 = self.autoloads)) ? ($ret_or_1) : ([]))) + }, 0); + + $def(self, '$returns', function $$returns(sexp) { + var $a, $b, self = this, $ret_or_1 = nil, when_sexp = nil, then_sexp = nil, body_sexp = nil, resbodies = nil, else_sexp = nil, klass = nil, lvar = nil, body = nil, rescue_sexp = nil, ensure_body = nil, rest = nil, last = nil, cond = nil, true_body = nil, false_body = nil; - if ($truthy(sexp)) { - } else { + if (!$truthy(sexp)) { return self.$returns(self.$s("nil")) }; - return (function() {$case = sexp.$type(); - if ("undef"['$===']($case)) {return self.$returns(self.$s("begin", sexp, self.$s("nil")))} - else if ("break"['$===']($case) || "next"['$===']($case) || "redo"['$===']($case) || "retry"['$===']($case)) {return sexp} - else if ("yield"['$===']($case)) {return sexp.$updated("returnable_yield", nil)} - else if ("when"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_sexp = $slice.call($a, 0, $b)), (then_sexp = ($a[$b] == null ? nil : $a[$b])), $a; - return sexp.$updated(nil, [].concat(Opal.to_a(when_sexp)).concat([self.$returns(then_sexp)]));} - else if ("rescue"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), (body_sexp = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (resbodies = $slice.call($a, 1, $b)), (else_sexp = ($a[$b] == null ? nil : $a[$b])), $a; - resbodies = $send(resbodies, 'map', [], ($$34 = function(resbody){var self = $$34.$$s == null ? this : $$34.$$s; - - - - if (resbody == null) { - resbody = nil; - }; - return self.$returns(resbody);}, $$34.$$s = self, $$34.$$arity = 1, $$34)); - if ($truthy(else_sexp)) { - else_sexp = self.$returns(else_sexp)}; - return sexp.$updated(nil, [self.$returns(body_sexp)].concat(Opal.to_a(resbodies)).concat([else_sexp]));} - else if ("resbody"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), (klass = ($a[0] == null ? nil : $a[0])), (lvar = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; - return sexp.$updated(nil, [klass, lvar, self.$returns(body)]);} - else if ("ensure"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), (rescue_sexp = ($a[0] == null ? nil : $a[0])), (ensure_body = ($a[1] == null ? nil : $a[1])), $a; - sexp = sexp.$updated(nil, [self.$returns(rescue_sexp), ensure_body]); - return self.$s("js_return", sexp);} - else if ("begin"['$===']($case) || "kwbegin"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last = ($a[$b] == null ? nil : $a[$b])), $a; - return sexp.$updated(nil, [].concat(Opal.to_a(rest)).concat([self.$returns(last)]));} - else if ("while"['$===']($case) || "until"['$===']($case) || "while_post"['$===']($case) || "until_post"['$===']($case)) {return sexp} - else if ("return"['$===']($case) || "js_return"['$===']($case) || "returnable_yield"['$===']($case)) {return sexp} - else if ("xstr"['$===']($case)) {return sexp.$updated(nil, [$send(self, 's', ["js_return"].concat(Opal.to_a(sexp.$children())))])} - else if ("if"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), (cond = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; - return sexp.$updated(nil, [cond, self.$returns(true_body), self.$returns(false_body)]);} - else {return self.$s("js_return", sexp).$updated(nil, nil, $hash2(["location"], {"location": sexp.$loc()}))}})(); - }, $Compiler_returns$33.$$arity = 1); - - Opal.def(self, '$handle_block_given_call', $Compiler_handle_block_given_call$35 = function $$handle_block_given_call(sexp) { - var self = this, $ret_or_13 = nil, scope = nil; + if ($eqeqeq("undef", ($ret_or_1 = sexp.$type()))) { + return self.$returns(sexp.$updated("begin", [sexp, self.$s("nil")])) + } else if (($eqeqeq("break", $ret_or_1) || (($eqeqeq("next", $ret_or_1) || (($eqeqeq("redo", $ret_or_1) || ($eqeqeq("retry", $ret_or_1)))))))) { + return sexp + } else if ($eqeqeq("yield", $ret_or_1)) { + return sexp.$updated("returnable_yield", nil) + } else if ($eqeqeq("when", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_sexp = $slice.call($a, 0, $b)), (then_sexp = ($a[$b] == null ? nil : $a[$b])), $a; + return sexp.$updated(nil, [].concat($to_a(when_sexp)).concat([self.$returns(then_sexp)])); + } else if ($eqeqeq("rescue", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (body_sexp = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (resbodies = $slice.call($a, 1, $b)), (else_sexp = ($a[$b] == null ? nil : $a[$b])), $a; + resbodies = $send(resbodies, 'map', [], function $$9(resbody){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (resbody == null) resbody = nil;; + return self.$returns(resbody);}, {$$arity: 1, $$s: self}); + if ($truthy(else_sexp)) { + else_sexp = self.$returns(else_sexp) + }; + return sexp.$updated(nil, [self.$returns(body_sexp)].concat($to_a(resbodies)).concat([else_sexp])); + } else if ($eqeqeq("resbody", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (klass = ($a[0] == null ? nil : $a[0])), (lvar = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + return sexp.$updated(nil, [klass, lvar, self.$returns(body)]); + } else if ($eqeqeq("ensure", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (rescue_sexp = ($a[0] == null ? nil : $a[0])), (ensure_body = ($a[1] == null ? nil : $a[1])), $a; + sexp = sexp.$updated(nil, [self.$returns(rescue_sexp), ensure_body]); + return sexp.$updated("js_return", [sexp]); + } else if (($eqeqeq("begin", $ret_or_1) || ($eqeqeq("kwbegin", $ret_or_1)))) { + + $a = [].concat($to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last = ($a[$b] == null ? nil : $a[$b])), $a; + return sexp.$updated(nil, [].concat($to_a(rest)).concat([self.$returns(last)])); + } else if (($eqeqeq("while", $ret_or_1) || (($eqeqeq("until", $ret_or_1) || (($eqeqeq("while_post", $ret_or_1) || ($eqeqeq("until_post", $ret_or_1)))))))) { + return sexp + } else if (($eqeqeq("return", $ret_or_1) || (($eqeqeq("js_return", $ret_or_1) || ($eqeqeq("returnable_yield", $ret_or_1)))))) { + return sexp + } else if ($eqeqeq("xstr", $ret_or_1)) { + return sexp.$updated(nil, [$send(self, 's', ["js_return"].concat($to_a(sexp.$children())))]) + } else if ($eqeqeq("if", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (cond = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; + return sexp.$updated(nil, [cond, self.$returns(true_body), self.$returns(false_body)]); + } else if (($eqeq(sexp.$type(), "send") && ($eqeq(sexp.$children()['$[]'](1), "debugger")))) { + return sexp.$updated("begin", [sexp, self.$s("js_return", self.$s("nil"))]) + } else { + return sexp.$updated("js_return", [sexp]) + }; + }, 1); + + $def(self, '$handle_block_given_call', function $$handle_block_given_call(sexp) { + var self = this, scope = nil; self.scope['$uses_block!'](); if ($truthy(self.scope.$block_name())) { - return self.$fragment("" + "(" + (self.scope.$block_name()) + " !== nil)", self.$scope(), sexp) - } else if ($truthy((function() {if ($truthy(($ret_or_13 = (scope = self.scope.$find_parent_def())))) { - return scope.$block_name() - } else { - return $ret_or_13 - }; return nil; })())) { - return self.$fragment("" + "(" + (scope.$block_name()) + " !== nil)", scope, sexp) + return self.$fragment("(" + (self.scope.$block_name()) + " !== nil)", self.$scope(), sexp) + } else if (($truthy((scope = self.scope.$find_parent_def())) && ($truthy(scope.$block_name())))) { + return self.$fragment("(" + (scope.$block_name()) + " !== nil)", scope, sexp) } else { return self.$fragment("false", scope, sexp) }; - }, $Compiler_handle_block_given_call$35.$$arity = 1); + }, 1); - Opal.def(self, '$marshal_dump', $Compiler_marshal_dump$36 = function $$marshal_dump() { - var self = this, $ret_or_14 = nil; + $def(self, '$marshal_dump', function $$marshal_dump() { + var self = this, $ret_or_1 = nil; - return [self.options, self.option_values, (self.source_map = (function() {if ($truthy(($ret_or_14 = self.source_map))) { - return $ret_or_14 - } else { - return self.$source_map().$cache() - }; return nil; })()), self.magic_comments, self.result, self.required_trees, self.requires] - }, $Compiler_marshal_dump$36.$$arity = 0); - return (Opal.def(self, '$marshal_load', $Compiler_marshal_load$37 = function $$marshal_load(src) { + return [self.options, self.option_values, (self.source_map = ($truthy(($ret_or_1 = self.source_map)) ? ($ret_or_1) : (self.$source_map().$cache()))), self.magic_comments, self.result, self.required_trees, self.requires, self.autoloads] + }, 0); + return $def(self, '$marshal_load', function $$marshal_load(src) { var $a, $b, self = this; - return $b = src, $a = Opal.to_ary($b), (self.options = ($a[0] == null ? nil : $a[0])), (self.option_values = ($a[1] == null ? nil : $a[1])), (self.source_map = ($a[2] == null ? nil : $a[2])), (self.magic_comments = ($a[3] == null ? nil : $a[3])), (self.result = ($a[4] == null ? nil : $a[4])), (self.required_trees = ($a[5] == null ? nil : $a[5])), (self.requires = ($a[6] == null ? nil : $a[6])), $b - }, $Compiler_marshal_load$37.$$arity = 1), nil) && 'marshal_load'; + return $b = src, $a = $to_ary($b), (self.options = ($a[0] == null ? nil : $a[0])), (self.option_values = ($a[1] == null ? nil : $a[1])), (self.source_map = ($a[2] == null ? nil : $a[2])), (self.magic_comments = ($a[3] == null ? nil : $a[3])), (self.result = ($a[4] == null ? nil : $a[4])), (self.required_trees = ($a[5] == null ? nil : $a[5])), (self.requires = ($a[6] == null ? nil : $a[6])), (self.autoloads = ($a[7] == null ? nil : $a[7])), $b + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/erb"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/erb"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $defs = Opal.defs, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $send = Opal.send, $regexp = Opal.regexp; - Opal.add_stubs(['$require', '$compile', '$new', '$freeze', '$fix_quotes', '$find_contents', '$find_code', '$wrap_compiled', '$require_erb', '$prepared_source', '$gsub', '$+', '$last_match', '$=~', '$sub']); + Opal.add_stubs('require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub'); self.$require("opal/compiler"); return (function($base, $parent_nesting) { @@ -40867,117 +37072,93 @@ Opal.modules["opal/erb"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'ERB'); - var $nesting = [self].concat($parent_nesting), $ERB_compile$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$compile', $ERB_compile$1 = function $$compile(source, file_name) { - var self = this; - + $defs(self, '$compile', function $$compile(source, file_name) { - if (file_name == null) { - file_name = "(erb)"; - }; - return $$($nesting, 'Compiler').$new(source, file_name).$compile(); - }, $ERB_compile$1.$$arity = -2); + + if (file_name == null) file_name = "(erb)";; + return $$('Compiler').$new(source, file_name).$compile(); + }, -2); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Compiler'); - var $nesting = [self].concat($parent_nesting), $Compiler_initialize$2, $Compiler_prepared_source$3, $Compiler_compile$4, $Compiler_fix_quotes$5, $Compiler_require_erb$6, $Compiler_find_contents$7, $Compiler_find_code$9, $Compiler_wrap_compiled$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.prepared_source = self.$$prototype.source = self.$$prototype.file_name = nil; + $proto.prepared_source = $proto.source = $proto.file_name = nil; - Opal.const_set($nesting[0], 'BLOCK_EXPR', /\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()); + $const_set($nesting[0], 'BLOCK_EXPR', /\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()); - Opal.def(self, '$initialize', $Compiler_initialize$2 = function $$initialize(source, file_name) { + $def(self, '$initialize', function $$initialize(source, file_name) { var $a, self = this; - if (file_name == null) { - file_name = "(erb)"; - }; + if (file_name == null) file_name = "(erb)";; return $a = [source, file_name, source], (self.source = $a[0]), (self.file_name = $a[1]), (self.result = $a[2]), $a; - }, $Compiler_initialize$2.$$arity = -2); + }, -2); - Opal.def(self, '$prepared_source', $Compiler_prepared_source$3 = function $$prepared_source() { + $def(self, '$prepared_source', function $$prepared_source() { var self = this, $ret_or_1 = nil, source = nil; - return (self.prepared_source = (function() {if ($truthy(($ret_or_1 = self.prepared_source))) { - return $ret_or_1 - } else { - - source = self.source; - source = self.$fix_quotes(source); - source = self.$find_contents(source); - source = self.$find_code(source); - source = self.$wrap_compiled(source); - source = self.$require_erb(source); - return source; - }; return nil; })()) - }, $Compiler_prepared_source$3.$$arity = 0); + return (self.prepared_source = ($truthy(($ret_or_1 = self.prepared_source)) ? ($ret_or_1) : (((source = self.source), (source = self.$fix_quotes(source)), (source = self.$find_contents(source)), (source = self.$find_code(source)), (source = self.$wrap_compiled(source)), (source = self.$require_erb(source)), source)))) + }, 0); - Opal.def(self, '$compile', $Compiler_compile$4 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; - return $$($nesting, 'Opal').$compile(self.$prepared_source()) - }, $Compiler_compile$4.$$arity = 0); + return $$('Opal').$compile(self.$prepared_source()) + }, 0); - Opal.def(self, '$fix_quotes', $Compiler_fix_quotes$5 = function $$fix_quotes(result) { - var self = this; - + $def(self, '$fix_quotes', function $$fix_quotes(result) { + return result.$gsub("\"", "\\\"") - }, $Compiler_fix_quotes$5.$$arity = 1); + }, 1); - Opal.def(self, '$require_erb', $Compiler_require_erb$6 = function $$require_erb(result) { - var self = this; - + $def(self, '$require_erb', function $$require_erb(result) { + return $rb_plus("require \"erb\";", result) - }, $Compiler_require_erb$6.$$arity = 1); + }, 1); - Opal.def(self, '$find_contents', $Compiler_find_contents$7 = function $$find_contents(result) { - var $$8, self = this; - - return $send(result, 'gsub', [/<%=([\s\S]+?)%>/], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s, inner = nil; + $def(self, '$find_contents', function $$find_contents(result) { + + return $send(result, 'gsub', [/<%=([\s\S]+?)%>/], function $$1(){var inner = nil; - inner = $$($nesting, 'Regexp').$last_match(1).$gsub(/\\'/, "'").$gsub(/\\"/, "\""); - if ($truthy(inner['$=~']($$($nesting, 'BLOCK_EXPR')))) { - return "" + "\")\noutput_buffer.append= " + (inner) + "\noutput_buffer.append(\"" + inner = $$('Regexp').$last_match(1).$gsub(/\\'/, "'").$gsub(/\\"/, "\""); + if ($truthy(inner['$=~']($$('BLOCK_EXPR')))) { + return "\")\noutput_buffer.append= " + (inner) + "\noutput_buffer.append(\"" } else { - return "" + "\")\noutput_buffer.append=(" + (inner) + ")\noutput_buffer.append(\"" - };}, $$8.$$s = self, $$8.$$arity = 0, $$8)) - }, $Compiler_find_contents$7.$$arity = 1); + return "\")\noutput_buffer.append=(" + (inner) + ")\noutput_buffer.append(\"" + };}, 0) + }, 1); - Opal.def(self, '$find_code', $Compiler_find_code$9 = function $$find_code(result) { - var $$10, self = this; - - return $send(result, 'gsub', [/<%([\s\S]+?)%>/], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, inner = nil; + $def(self, '$find_code', function $$find_code(result) { + + return $send(result, 'gsub', [/<%([\s\S]+?)%>/], function $$2(){var inner = nil; - inner = $$($nesting, 'Regexp').$last_match(1).$gsub(/\\"/, "\""); - return "" + "\")\n" + (inner) + "\noutput_buffer.append(\"";}, $$10.$$s = self, $$10.$$arity = 0, $$10)) - }, $Compiler_find_code$9.$$arity = 1); - return (Opal.def(self, '$wrap_compiled', $Compiler_wrap_compiled$11 = function $$wrap_compiled(result) { + inner = $$('Regexp').$last_match(1).$gsub(/\\"/, "\""); + return "\")\n" + (inner) + "\noutput_buffer.append(\"";}, 0) + }, 1); + return $def(self, '$wrap_compiled', function $$wrap_compiled(result) { var self = this, path = nil; - path = self.file_name.$sub(Opal.regexp(["\\.opalerb", $$($nesting, 'REGEXP_END')]), ""); - return "" + "Template.new('" + (path) + "') do |output_buffer|\noutput_buffer.append(\"" + (result) + "\")\noutput_buffer.join\nend\n"; - }, $Compiler_wrap_compiled$11.$$arity = 1), nil) && 'wrap_compiled'; + path = self.file_name.$sub($regexp(["\\.opalerb", $$('REGEXP_END')]), ""); + return "Template.new('" + (path) + "') do |output_buffer|\noutput_buffer.append(\"" + (result) + "\")\noutput_buffer.join\nend\n"; + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/builder_processors"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/builder_processors"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $send = Opal.send, $def = Opal.def, $eqeq = Opal.eqeq, $Opal = Opal.Opal, $const_set = Opal.const_set, $send2 = Opal.send2, $find_super = Opal.find_super, $defs = Opal.defs, $to_a = Opal.to_a; - Opal.add_stubs(['$require', '$end_with?', '$+', '$dup', '$delete', '$cache', '$attr_reader', '$to_s', '$source', '$join', '$==', '$size', '$new', '$register_processor', '$is_a?', '$match', '$match_regexp', '$raise', '$inspect', '$handles', '$map', '$with_index', '$each_line', '$index', '$filename', '$mark_as_required', '$result', '$compiled', '$source_map', '$fetch', '$cache_key', '$compiler_for', '$compile', '$class', '$merge', '$requires', '$required_trees', '$extname', '$prepare', '$private', '$prepared_source', '$module_name']); + Opal.add_stubs('require,end_with?,+,dup,delete,cache,attr_reader,to_s,source,join,==,size,new,register_processor,is_a?,match,match_regexp,raise,inspect,handles,map,with_index,each_line,index,filename,mark_as_required,result,compiled,source_map,fetch,cache_key,compiler_for,compile,class,merge,requires,required_trees,autoloads,extname,prepare,private,prepared_source,module_name'); self.$require("opal/compiler"); self.$require("opal/erb"); @@ -40989,288 +37170,259 @@ Opal.modules["opal/builder_processors"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'BuilderProcessors'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Processor'); - var $nesting = [self].concat($parent_nesting), $Processor_initialize$1, $Processor_to_s$3, $Processor_mark_as_required$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.options = nil; + $proto.options = nil; - Opal.def(self, '$initialize', $Processor_initialize$1 = function $$initialize(source, filename, options) { - var $a, $$2, self = this; + $def(self, '$initialize', function $$initialize(source, filename, options) { + var $a, self = this; - if (options == null) { - options = $hash2([], {}); - }; - if ($truthy(source['$end_with?']("\n"))) { - } else { + if (options == null) options = $hash2([], {});; + if (!$truthy(source['$end_with?']("\n"))) { source = $rb_plus(source, "\n") }; $a = [source, filename, options.$dup()], (self.source = $a[0]), (self.filename = $a[1]), (self.options = $a[2]), $a; - self.cache = $send(self.options, 'delete', ["cache"], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - - return $$($nesting, 'Opal').$cache()}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + self.cache = $send(self.options, 'delete', ["cache"], function $$1(){ + return $$('Opal').$cache()}, 0); self.requires = []; - return (self.required_trees = []); - }, $Processor_initialize$1.$$arity = -3); - self.$attr_reader("source", "filename", "options", "requires", "required_trees"); + self.required_trees = []; + return (self.autoloads = []); + }, -3); + self.$attr_reader("source", "filename", "options", "requires", "required_trees", "autoloads"); - Opal.def(self, '$to_s', $Processor_to_s$3 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return self.$source().$to_s() - }, $Processor_to_s$3.$$arity = 0); + }, 0); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $handles$4, $match$ques$5, $match_regexp$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$attr_reader("extensions"); - Opal.def(self, '$handles', $handles$4 = function $$handles($a) { + $def(self, '$handles', function $$handles($a) { var $post_args, extensions, self = this, matches = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); extensions = $post_args;; self.extensions = extensions; matches = extensions.$join("|"); - if (extensions.$size()['$=='](1)) { - } else { - matches = "" + "(" + (matches) + ")" + if (!$eqeq(extensions.$size(), 1)) { + matches = "(" + (matches) + ")" }; - self.match_regexp = $$($nesting, 'Regexp').$new("" + "\\." + (matches) + ($$($nesting, 'REGEXP_END'))); - $$$($$$('::', 'Opal'), 'Builder').$register_processor(self, extensions); + self.match_regexp = $$('Regexp').$new("\\." + (matches) + ($$('REGEXP_END'))); + $$$($Opal, 'Builder').$register_processor(self, extensions); return nil; - }, $handles$4.$$arity = -1); + }, -1); - Opal.def(self, '$match?', $match$ques$5 = function(other) { + $def(self, '$match?', function $match$ques$2(other) { var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_1 = other['$is_a?']($$($nesting, 'String'))))) { + if ($truthy(($ret_or_1 = other['$is_a?']($$('String'))))) { return other.$match(self.$match_regexp()) } else { return $ret_or_1 } - }, $match$ques$5.$$arity = 1); - return (Opal.def(self, '$match_regexp', $match_regexp$6 = function $$match_regexp() { - var self = this, $ret_or_2 = nil; + }, 1); + return $def(self, '$match_regexp', function $$match_regexp() { + var self = this, $ret_or_1 = nil; if (self.match_regexp == null) self.match_regexp = nil; - if ($truthy(($ret_or_2 = self.match_regexp))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self.match_regexp))) { + return $ret_or_1 } else { - return self.$raise($$($nesting, 'NotImplementedError')) + return self.$raise($$('NotImplementedError')) } - }, $match_regexp$6.$$arity = 0), nil) && 'match_regexp'; + }, 0); })(Opal.get_singleton_class(self), $nesting); - return (Opal.def(self, '$mark_as_required', $Processor_mark_as_required$7 = function $$mark_as_required(filename) { - var self = this; - - return "" + "Opal.loaded([" + (filename.$to_s().$inspect()) + "]);" - }, $Processor_mark_as_required$7.$$arity = 1), nil) && 'mark_as_required'; + return $def(self, '$mark_as_required', function $$mark_as_required(filename) { + + return "Opal.loaded([" + (filename.$to_s().$inspect()) + "]);" + }, 1); })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'JsProcessor'); - var $nesting = [self].concat($parent_nesting), $JsProcessor_source_map$8, $JsProcessor_source$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.source_map = self.$$prototype.source = self.$$prototype.filename = nil; + $proto.source_map = $proto.source = $proto.filename = nil; self.$handles("js"); - Opal.const_set($nesting[0], 'ManualFragment', $$($nesting, 'Struct').$new("line", "column", "code", "source_map_name")); + $const_set($nesting[0], 'ManualFragment', $$('Struct').$new("line", "column", "code", "source_map_name")); - Opal.def(self, '$source_map', $JsProcessor_source_map$8 = function $$source_map() { - var $$9, self = this, $ret_or_3 = nil, manual_fragments = nil; + $def(self, '$source_map', function $$source_map() { + var self = this, $ret_or_1 = nil, manual_fragments = nil; - return (self.source_map = (function() {if ($truthy(($ret_or_3 = self.source_map))) { - return $ret_or_3 - } else { - - manual_fragments = $send(self.$source().$each_line().$with_index(), 'map', [], ($$9 = function(line_source, index){var self = $$9.$$s == null ? this : $$9.$$s, column = nil, line = nil; + return (self.source_map = ($truthy(($ret_or_1 = self.source_map)) ? ($ret_or_1) : (((manual_fragments = $send(self.$source().$each_line().$with_index(), 'map', [], function $$3(line_source, index){var column = nil, line = nil; - - - if (line_source == null) { - line_source = nil; - }; - - if (index == null) { - index = nil; - }; - column = line_source.$index(/\S/); - line = $rb_plus(index, 1); - return $$($nesting, 'ManualFragment').$new(line, column, line_source, nil);}, $$9.$$s = self, $$9.$$arity = 2, $$9)); - return $$$($$$($$$('::', 'Opal'), 'SourceMap'), 'File').$new(manual_fragments, self.$filename(), self.$source()); - }; return nil; })()) - }, $JsProcessor_source_map$8.$$arity = 0); - return (Opal.def(self, '$source', $JsProcessor_source$10 = function $$source() { + + + if (line_source == null) line_source = nil;; + + if (index == null) index = nil;; + column = line_source.$index(/\S/); + line = $rb_plus(index, 1); + return $$('ManualFragment').$new(line, column, line_source, nil);}, 2)), $$$($$$($Opal, 'SourceMap'), 'File').$new(manual_fragments, self.$filename(), self.$source()))))) + }, 0); + return $def(self, '$source', function $$source() { var self = this; return $rb_plus(self.source.$to_s(), self.$mark_as_required(self.filename)) - }, $JsProcessor_source$10.$$arity = 0), nil) && 'source'; - })($nesting[0], $$($nesting, 'Processor'), $nesting); + }, 0); + })($nesting[0], $$('Processor'), $nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'RubyProcessor'); - var $nesting = [self].concat($parent_nesting), $RubyProcessor_source$11, $RubyProcessor_source_map$12, $RubyProcessor_compiled$13, $RubyProcessor_cache_key$15, $RubyProcessor_compiler_for$16, $RubyProcessor_requires$17, $RubyProcessor_required_trees$18, $RubyProcessor_match$ques$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.compiled = self.$$prototype.cache = self.$$prototype.filename = self.$$prototype.source = self.$$prototype.options = nil; + $proto.compiled = $proto.cache = $proto.filename = $proto.source = $proto.options = nil; self.$handles("rb", "opal"); - Opal.def(self, '$source', $RubyProcessor_source$11 = function $$source() { + $def(self, '$source', function $$source() { var self = this; return self.$compiled().$result() - }, $RubyProcessor_source$11.$$arity = 0); + }, 0); - Opal.def(self, '$source_map', $RubyProcessor_source_map$12 = function $$source_map() { + $def(self, '$source_map', function $$source_map() { var self = this; return self.$compiled().$source_map() - }, $RubyProcessor_source_map$12.$$arity = 0); + }, 0); - Opal.def(self, '$compiled', $RubyProcessor_compiled$13 = function $$compiled() { - var $$14, self = this, $ret_or_4 = nil; + $def(self, '$compiled', function $$compiled() { + var self = this, $ret_or_1 = nil; - return (self.compiled = (function() {if ($truthy(($ret_or_4 = self.compiled))) { - return $ret_or_4 - } else { - return $send($$$($$($nesting, 'Opal'), 'Cache'), 'fetch', [self.cache, self.$cache_key()], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s, compiler = nil; - if (self.source == null) self.source = nil; - if (self.filename == null) self.filename = nil; + return (self.compiled = ($truthy(($ret_or_1 = self.compiled)) ? ($ret_or_1) : ($send($$$($$('Opal'), 'Cache'), 'fetch', [self.cache, self.$cache_key()], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s, compiler = nil; + if (self.source == null) self.source = nil; + if (self.filename == null) self.filename = nil; - - compiler = self.$compiler_for(self.source, $hash2(["file"], {"file": self.filename})); - compiler.$compile(); - return compiler;}, $$14.$$s = self, $$14.$$arity = 0, $$14)) - }; return nil; })()) - }, $RubyProcessor_compiled$13.$$arity = 0); + + compiler = self.$compiler_for(self.source, $hash2(["file"], {"file": self.filename})); + compiler.$compile(); + return compiler;}, {$$arity: 0, $$s: self})))) + }, 0); - Opal.def(self, '$cache_key', $RubyProcessor_cache_key$15 = function $$cache_key() { + $def(self, '$cache_key', function $$cache_key() { var self = this; return [self.$class(), self.filename, self.source, self.options] - }, $RubyProcessor_cache_key$15.$$arity = 0); + }, 0); - Opal.def(self, '$compiler_for', $RubyProcessor_compiler_for$16 = function $$compiler_for(source, options) { + $def(self, '$compiler_for', function $$compiler_for(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; - return $$$($$$('::', 'Opal'), 'Compiler').$new(source, self.options.$merge(options)); - }, $RubyProcessor_compiler_for$16.$$arity = -2); + if (options == null) options = $hash2([], {});; + return $$$($Opal, 'Compiler').$new(source, self.options.$merge(options)); + }, -2); - Opal.def(self, '$requires', $RubyProcessor_requires$17 = function $$requires() { + $def(self, '$requires', function $$requires() { var self = this; return self.$compiled().$requires() - }, $RubyProcessor_requires$17.$$arity = 0); + }, 0); - Opal.def(self, '$required_trees', $RubyProcessor_required_trees$18 = function $$required_trees() { + $def(self, '$required_trees', function $$required_trees() { var self = this; return self.$compiled().$required_trees() - }, $RubyProcessor_required_trees$18.$$arity = 0); - return (Opal.defs(self, '$match?', $RubyProcessor_match$ques$19 = function(other) { - var $iter = $RubyProcessor_match$ques$19.$$p, $yield = $iter || nil, self = this, $ret_or_5 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $RubyProcessor_match$ques$19.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($ret_or_5 = $send2(self, $find_super(self, 'match?', $RubyProcessor_match$ques$19, false, true), 'match?', $zuper, $iter)))) { - return $ret_or_5 + }, 0); + + $def(self, '$autoloads', function $$autoloads() { + var self = this; + + return self.$compiled().$autoloads() + }, 0); + return $defs(self, '$match?', function $RubyProcessor_match$ques$5(other) { + var $yield = $RubyProcessor_match$ques$5.$$p || nil, self = this, $ret_or_1 = nil; + + delete $RubyProcessor_match$ques$5.$$p; + if ($truthy(($ret_or_1 = $send2(self, $find_super(self, 'match?', $RubyProcessor_match$ques$5, false, true), 'match?', [other], $yield)))) { + return $ret_or_1 } else { - return $$($nesting, 'File').$extname(other.$to_s())['$==']("") + return $$('File').$extname(other.$to_s())['$==']("") } - }, $RubyProcessor_match$ques$19.$$arity = 1), nil) && 'match?'; - })($nesting[0], $$($nesting, 'Processor'), $nesting); - (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], $$('Processor'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'OpalERBProcessor'); - var $nesting = [self].concat($parent_nesting), $OpalERBProcessor_initialize$20, $OpalERBProcessor_requires$21, $OpalERBProcessor_prepare$22; + var $proto = self.$$prototype; - self.$$prototype.source = self.$$prototype.filename = nil; + $proto.source = $proto.filename = nil; self.$handles("opalerb"); - Opal.def(self, '$initialize', $OpalERBProcessor_initialize$20 = function $$initialize($a) { - var $post_args, args, $iter = $OpalERBProcessor_initialize$20.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, args, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $OpalERBProcessor_initialize$20.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - $send2(self, $find_super(self, 'initialize', $OpalERBProcessor_initialize$20, false, true), 'initialize', $zuper, $iter); + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a(args), $yield); return (self.source = self.$prepare(self.source, self.filename)); - }, $OpalERBProcessor_initialize$20.$$arity = -1); + }, -1); - Opal.def(self, '$requires', $OpalERBProcessor_requires$21 = function $$requires() { - var $iter = $OpalERBProcessor_requires$21.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$requires', function $$requires() { + var $yield = $$requires.$$p || nil, self = this; - if ($iter) $OpalERBProcessor_requires$21.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return $rb_plus(["erb"], $send2(self, $find_super(self, 'requires', $OpalERBProcessor_requires$21, false, true), 'requires', $zuper, $iter)) - }, $OpalERBProcessor_requires$21.$$arity = 0); + delete $$requires.$$p; + return $rb_plus(["erb"], $send2(self, $find_super(self, 'requires', $$requires, false, true), 'requires', [], $yield)) + }, 0); self.$private(); - return (Opal.def(self, '$prepare', $OpalERBProcessor_prepare$22 = function $$prepare(source, path) { - var self = this; - - return $$$($$$($$$('::', 'Opal'), 'ERB'), 'Compiler').$new(source, path).$prepared_source() - }, $OpalERBProcessor_prepare$22.$$arity = 2), nil) && 'prepare'; - })($nesting[0], $$($nesting, 'RubyProcessor'), $nesting); - return (function($base, $super, $parent_nesting) { + return $def(self, '$prepare', function $$prepare(source, path) { + + return $$$($$$($Opal, 'ERB'), 'Compiler').$new(source, path).$prepared_source() + }, 2); + })($nesting[0], $$('RubyProcessor')); + return (function($base, $super) { var self = $klass($base, $super, 'ERBProcessor'); - var $nesting = [self].concat($parent_nesting), $ERBProcessor_source$23; + var $proto = self.$$prototype; - self.$$prototype.source = self.$$prototype.filename = nil; + $proto.source = $proto.filename = nil; self.$handles("erb"); - return (Opal.def(self, '$source', $ERBProcessor_source$23 = function $$source() { + return $def(self, '$source', function $$source() { var self = this, result = nil, module_name = nil; - result = $$$('::', 'ERB').$new(self.source.$to_s()).$result(); - module_name = $$$($$$('::', 'Opal'), 'Compiler').$module_name(self.filename); - return "" + "Opal.modules[" + (module_name.$inspect()) + "] = function() {" + (result) + "};"; - }, $ERBProcessor_source$23.$$arity = 0), nil) && 'source'; - })($nesting[0], $$($nesting, 'Processor'), $nesting); + result = $$$('ERB').$new(self.source.$to_s()).$result(); + module_name = $$$($Opal, 'Compiler').$module_name(self.filename); + return "Opal.modules[" + (module_name.$inspect()) + "] = function() {" + (result) + "};"; + }, 0); + })($nesting[0], $$('Processor')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["base64"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["base64"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $defs = Opal.defs, $hash2 = Opal.hash2, $truthy = Opal.truthy; - Opal.add_stubs(['$raise', '$delete']); + Opal.add_stubs('raise,delete'); return (function($base, $parent_nesting) { var self = $module($base, 'Base64'); - var $nesting = [self].concat($parent_nesting), $Base64_decode64$1, $Base64_encode64$2, $Base64_strict_decode64$3, $Base64_strict_encode64$4, $Base64_urlsafe_decode64$5, $Base64_urlsafe_encode64$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); @@ -41294,7 +37446,7 @@ Opal.modules["base64"] = function(Opal) { ) { charCode = str.charCodeAt(idx += 3/4); if (charCode > 0xFF) { - self.$raise($$($nesting, 'ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); + self.$raise($$('ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); } block = block << 8 | charCode; } @@ -41307,7 +37459,7 @@ Opal.modules["base64"] = function(Opal) { decode = function (input) { var str = String(input).replace(/=+$/, ''); if (str.length % 4 == 1) { - self.$raise($$($nesting, 'ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); + self.$raise($$('ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); } /* eslint-disable */ for ( @@ -41328,33 +37480,28 @@ Opal.modules["base64"] = function(Opal) { /* eslint-enable */ }; ; - Opal.defs(self, '$decode64', $Base64_decode64$1 = function $$decode64(string) { - var self = this; - + $defs(self, '$decode64', function $$decode64(string) { + return decode(string.replace(/\r?\n/g, '')); - }, $Base64_decode64$1.$$arity = 1); - Opal.defs(self, '$encode64', $Base64_encode64$2 = function $$encode64(string) { - var self = this; - + }, 1); + $defs(self, '$encode64', function $$encode64(string) { + return encode(string).replace(/(.{60})/g, "$1\n").replace(/([^\n])$/g, "$1\n"); - }, $Base64_encode64$2.$$arity = 1); - Opal.defs(self, '$strict_decode64', $Base64_strict_decode64$3 = function $$strict_decode64(string) { - var self = this; - + }, 1); + $defs(self, '$strict_decode64', function $$strict_decode64(string) { + return decode(string); - }, $Base64_strict_decode64$3.$$arity = 1); - Opal.defs(self, '$strict_encode64', $Base64_strict_encode64$4 = function $$strict_encode64(string) { - var self = this; - + }, 1); + $defs(self, '$strict_encode64', function $$strict_encode64(string) { + return encode(string); - }, $Base64_strict_encode64$4.$$arity = 1); - Opal.defs(self, '$urlsafe_decode64', $Base64_urlsafe_decode64$5 = function $$urlsafe_decode64(string) { - var self = this; - + }, 1); + $defs(self, '$urlsafe_decode64', function $$urlsafe_decode64(string) { + return decode(string.replace(/\-/g, '+').replace(/_/g, '/')); - }, $Base64_urlsafe_decode64$5.$$arity = 1); - return (Opal.defs(self, '$urlsafe_encode64', $Base64_urlsafe_encode64$6 = function $$urlsafe_encode64(string, $kwargs) { - var padding, self = this, str = nil; + }, 1); + return $defs(self, '$urlsafe_encode64', function $$urlsafe_encode64(string, $kwargs) { + var padding, str = nil; @@ -41365,29 +37512,24 @@ Opal.modules["base64"] = function(Opal) { }; padding = $kwargs.$$smap["padding"]; - if (padding == null) { - padding = true - }; + if (padding == null) padding = true; str = encode(string).replace(/\+/g, '-').replace(/\//g, '_'); - if ($truthy(padding)) { - } else { + if (!$truthy(padding)) { str = str.$delete("=") }; return str; - }, $Base64_urlsafe_encode64$6.$$arity = -2), nil) && 'urlsafe_encode64'; + }, -2); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $Kernel = Opal.Kernel; - Opal.add_stubs(['$raise']); - return (function($base, $parent_nesting) { + Opal.add_stubs('raise'); + return (function($base) { var self = $module($base, 'PackUnpack'); - var $nesting = [self].concat($parent_nesting); - + var directives = [ // Integer @@ -41473,11 +37615,11 @@ Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { var directiveSupportsModifiers = /[sSiIlLqQjJ]/.test(currentDirective); if (!directiveSupportsModifiers && currentModifiers.length > 0) { - self.$raise($$($nesting, 'ArgumentError'), "" + "'" + (currentModifiers[0]) + "' allowed only after types sSiIlLqQjJ") + $Kernel.$raise($$$('ArgumentError'), "'" + (currentModifiers[0]) + "' allowed only after types sSiIlLqQjJ") } if (currentModifiers.indexOf('<') !== -1 && currentModifiers.indexOf('>') !== -1) { - self.$raise($$($nesting, 'RangeError'), "Can't use both '<' and '>'") + $Kernel.$raise($$$('RangeError'), "Can't use both '<' and '>'") } if (!countSpecified) { @@ -41521,21 +37663,20 @@ Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { yieldAndReset(); } - })($nesting[0], $nesting) + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/string/unpack"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; +Opal.modules["corelib/string/unpack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $Kernel = Opal.Kernel, $hash2 = Opal.hash2, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $Opal = Opal.Opal, $rb_gt = Opal.rb_gt, $def = Opal.def; - Opal.add_stubs(['$require', '$flatten', '$decode64', '$raise', '$delete', '$gsub', '$coerce_to!', '$inspect', '$[]', '$unpack']); + Opal.add_stubs('require,flatten,decode64,raise,<,delete,gsub,coerce_to!,>,length,inspect,[],unpack'); self.$require("base64"); self.$require("corelib/pack_unpack/format_string_parser"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_unpack$1, $String_unpack1$2, expected = nil, given = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), expected = nil, given = nil; @@ -41739,7 +37880,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { function base64Decode(callback) { return function(data) { - return $$($nesting, 'Base64').$decode64(callback(data)); + return $$('Base64').$decode64(callback(data)); } } @@ -41841,7 +37982,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { } if (c >> 6 == 0x02) { - self.$raise($$($nesting, 'ArgumentError'), "malformed UTF-8 character") + $Kernel.$raise($$$('ArgumentError'), "malformed UTF-8 character") } if (c >> 5 == 0x06) { @@ -41860,11 +38001,11 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { // 1111 110x (six bytes) extraLength = 5; } else { - self.$raise("malformed UTF-8 character") + $Kernel.$raise("malformed UTF-8 character") } if (extraLength > bytesLength) { - ((expected = extraLength + 1), (given = bytesLength + 1), self.$raise($$($nesting, 'ArgumentError'), "" + "malformed UTF-8 character (expected " + (expected) + " bytes, given " + (given) + " bytes)")) + ((expected = extraLength + 1), (given = bytesLength + 1), $Kernel.$raise($$$('ArgumentError'), "malformed UTF-8 character (expected " + (expected) + " bytes, given " + (given) + " bytes)")) } // Remove the UTF-8 prefix from the char @@ -41875,7 +38016,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { c = readByte(); if (c >> 6 != 0x02) { - self.$raise("Invalid multibyte sequence") + $Kernel.$raise("Invalid multibyte sequence") } result = (result << 6) | (c & 0x3f); @@ -42207,11 +38348,23 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { alias('L', 'V'); ; - Opal.def(self, '$unpack', $String_unpack$1 = function $$unpack(format) { - var self = this; + $def(self, '$unpack', function $$unpack(format, $kwargs) { + var offset, self = this; - format = $$($nesting, 'Opal')['$coerce_to!'](format, $$($nesting, 'String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + offset = $kwargs.$$smap["offset"]; + if (offset == null) offset = 0; + if ($truthy($rb_lt(offset, 0))) { + $Kernel.$raise($$$('ArgumentError'), "offset can't be negative") + }; + format = $Opal['$coerce_to!'](format, $$$('String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); var output = []; @@ -42223,7 +38376,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { var cp, j = 0; output = new Array(self.length); - for (var i = 0; i < self.length; i++) { + for (var i = offset; i < self.length; i++) { cp = output[j++] = self.codePointAt(i); if (cp > 0xffff) i++; } @@ -42232,6 +38385,10 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { var buffer = self.$bytes(); + ($truthy($rb_gt(offset, (buffer).$length())) ? ($Kernel.$raise($$$('ArgumentError'), "offset outside of string")) : nil) + + buffer = buffer.slice(offset); + // optimization var optimizedHandler = optimized[format]; @@ -42252,7 +38409,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { chunkReader = readChunk[directive]; if (chunkReader == null) { - self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no chunk reader defined)") + $Kernel.$raise("Unsupported unpack directive " + ((directive).$inspect()) + " (no chunk reader defined)") } var chunkData = chunkReader(buffer, count); @@ -42262,7 +38419,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { var handler = handlers[directive]; if (handler == null) { - self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no handler defined)") + $Kernel.$raise("Unsupported unpack directive " + ((directive).$inspect()) + " (no handler defined)") } return handler(chunk); @@ -42275,7 +38432,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { var shouldAutocomplete = autocompletion[directive]; if (shouldAutocomplete == null) { - self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no autocompletion rule defined)") + $Kernel.$raise("Unsupported unpack directive " + ((directive).$inspect()) + " (no autocompletion rule defined)") } if (shouldAutocomplete) { @@ -42288,22 +38445,30 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { return output; ; - }, $String_unpack$1.$$arity = 1); - return (Opal.def(self, '$unpack1', $String_unpack1$2 = function $$unpack1(format) { - var self = this; + }, -2); + return $def(self, '$unpack1', function $$unpack1(format, $kwargs) { + var offset, self = this; - format = $$($nesting, 'Opal')['$coerce_to!'](format, $$($nesting, 'String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); - return self.$unpack(format['$[]'](0))['$[]'](0); - }, $String_unpack1$2.$$arity = 1), nil) && 'unpack1'; - })($nesting[0], null, $nesting); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + offset = $kwargs.$$smap["offset"]; + if (offset == null) offset = 0; + format = $Opal['$coerce_to!'](format, $$$('String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); + return self.$unpack(format['$[]'](0), $hash2(["offset"], {"offset": offset}))['$[]'](0); + }, -2); + })('::', null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal-builder"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["opal-builder"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); self.$require("opal/builder"); self.$require("opal/builder_processors"); diff --git a/opal/master/opal-builder.min.js b/opal/master/opal-builder.min.js index 97d44c73..5aefb97a 100644 --- a/opal/master/opal-builder.min.js +++ b/opal/master/opal-builder.min.js @@ -1 +1 @@ -Opal.modules["opal/regexp_anchors"]=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.$$$,Opal.$$),$module=Opal.module;return Opal.add_stubs(["$new"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return Opal.const_set($nesting[0],"REGEXP_START","^"),Opal.const_set($nesting[0],"REGEXP_END","$"),Opal.const_set($nesting[0],"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),Opal.const_set($nesting[0],"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),Opal.const_set($nesting[0],"INLINE_IDENTIFIER_REGEXP",$$($nesting,"Regexp").$new("[^"+$$($nesting,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+$$($nesting,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),Opal.const_set($nesting[0],"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),Opal.const_set($nesting[0],"CONST_NAME_REGEXP",$$($nesting,"Regexp").$new($$($nesting,"REGEXP_START")+"(::)?[A-Z][^"+$$($nesting,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+$$($nesting,"REGEXP_END")))}($nesting[0],$nesting)},Opal.modules["corelib/comparable"]=function(Opal){function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$<","$===","$raise","$class","$<=>","$equal?"]),function($base,$Comparable_clamp$7){var self=$module($base,"Comparable"),$nesting=[self].concat($Comparable_clamp$7),$case=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $falsy(cmp)&&function(lhs,class_name){$case=class_name,class_name=nil["$==="]($case)||(!0)["$==="]($case)||(!1)["$==="]($case)||$$($nesting,"Integer")["$==="]($case)||$$($nesting,"Float")["$==="]($case)?class_name.$inspect():class_name.$$class,self.$raise($$($nesting,"ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return Opal.def(self,"$==",$Comparable_clamp$7=function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$>",$Comparable_clamp$7=function(other){return 0=",$Comparable_clamp$7=function(other){return 0<=cmp_or_fail(this,other)},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<=",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<=0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$between?",$Comparable_clamp$7=function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)},$Comparable_clamp$7.$$arity=2),Opal.def(self,"$clamp",$Comparable_clamp$7=function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||this.$raise($$($nesting,"TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&this.$raise($$($nesting,"ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&0","$nonzero?","$proc","$casecmp","$cleanpath","$inspect","$include?","$fill","$map","$entries"]),self.$require("corelib/comparable"),function($Pathname_entries$26,$Pathname_relative_path_from$25){var $Pathname$23,$Pathname$24,$nesting=[$Pathname_entries$26=$klass($Pathname_entries$26,null,"Pathname")].concat($Pathname_relative_path_from$25);$Pathname_entries$26.$$prototype.path=nil,$Pathname_entries$26.$include($$($nesting,"Comparable")),Opal.const_set($nesting[0],"SEPARATOR_PAT",Opal.regexp([$$($nesting,"Regexp").$quote($$$($$($nesting,"File"),"SEPARATOR"))])),Opal.def($Pathname_entries$26,"$initialize",$Pathname_relative_path_from$25=function(path){return $truthy($$($nesting,"Pathname")["$==="](path))?this.path=path.$path().$to_s():$truthy(path["$respond_to?"]("to_path"))?this.path=path.$to_path():$truthy(path["$is_a?"]($$($nesting,"String")))?this.path=path:$truthy(path["$nil?"]())?this.$raise($$($nesting,"TypeError"),"no implicit conversion of nil into String"):this.$raise($$($nesting,"TypeError"),"no implicit conversion of "+path.$class()+" into String"),this.path["$=="]("\0")?this.$raise($$($nesting,"ArgumentError")):nil},$Pathname_relative_path_from$25.$$arity=1),$Pathname_entries$26.$attr_reader("path"),Opal.def($Pathname_entries$26,"$==",$Pathname_relative_path_from$25=function(other){return other.$path()["$=="](this.path)},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$absolute?",$Pathname_relative_path_from$25=function(){return this["$relative?"]()["$!"]()},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$relative?",$Pathname_relative_path_from$25=function(){for(var $b,r,path=nil,path=this.path;$truthy(r=this.$chop_basename(path));)$b=r,path=null==($b=Opal.to_ary($b))[0]?nil:$b[0];return path["$=="]("")},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$chop_basename",$Pathname_relative_path_from$25=function(path){var base=$$($nesting,"File").$basename(path);return $truthy($$($nesting,"Regexp").$new("^"+$$$($$($nesting,"Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](base))?nil:[path["$[]"](0,path.$rindex(base)),base]},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$root?",$Pathname_relative_path_from$25=function(){return this.path["$=="]("/")},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$parent",$Pathname_relative_path_from$25=function(){var self=this,new_path=nil;return(new_path=self.path.$sub(/\/([^\/]+\/?$)/,""))["$=="]("")&&(new_path=$truthy(self["$absolute?"]())?"/":"."),$$($nesting,"Pathname").$new(new_path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$sub",$Pathname_relative_path_from$25=function($a){var args=Opal.slice.call(arguments,0,arguments.length);return $$($nesting,"Pathname").$new($send(this.path,"sub",Opal.to_a(args)))},$Pathname_relative_path_from$25.$$arity=-1),Opal.def($Pathname_entries$26,"$cleanpath",$Pathname_relative_path_from$25=function(){return Opal.normalize(this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$to_path",$Pathname_relative_path_from$25=function(){return this.path},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$hash",$Pathname_relative_path_from$25=function(){return this.path},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$expand_path",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$expand_path(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$+",$Pathname_relative_path_from$25=function(other){return $truthy($$($nesting,"Pathname")["$==="](other))||(other=$$($nesting,"Pathname").$new(other)),$$($nesting,"Pathname").$new(this.$plus(this.path,other.$to_s()))},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$plus",$Pathname_relative_path_from$25=function(path1,path2){for(var $b,$c,r2,basename2,suffix2,prefix2=nil,index_list2=nil,basename_list2=nil,prefix1=nil,$ret_or_1=nil,r1=nil,basename1=nil,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil,prefix2=path2,index_list2=[],basename_list2=[];$truthy(r2=this.$chop_basename(prefix2));)$c=r2,prefix2=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename2=null==$b[1]?nil:$b[1],index_list2.$unshift(prefix2.$length()),basename_list2.$unshift(basename2);if($truthy(prefix2["$!="]("")))return path2;for(prefix1=path1;$truthy(!0);){for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="]("."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();if(!$truthy(r1=this.$chop_basename(prefix1)))break;if($c=r1,$b=Opal.to_ary($c),prefix1=null==$b[0]?nil:$b[0],!(basename1=null==$b[1]?nil:$b[1])["$=="](".")){if($truthy($truthy($ret_or_2=$truthy($ret_or_3=basename1["$=="](".."))?$ret_or_3:basename_list2["$empty?"]())?$ret_or_2:basename_list2.$first()["$!="](".."))){prefix1=$rb_plus(prefix1,basename1);break}index_list2.$shift(),basename_list2.$shift()}}if(r1=this.$chop_basename(prefix1),$truthy($truthy($ret_or_4=r1["$!"]())?Opal.regexp([$$($nesting,"SEPARATOR_PAT")])["$=~"]($$($nesting,"File").$basename(prefix1)):$ret_or_4))for(;$truthy($truthy($ret_or_5=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="](".."):$ret_or_5);)index_list2.$shift(),basename_list2.$shift();return $truthy(basename_list2["$empty?"]()["$!"]())?(suffix2=path2["$[]"](Opal.Range.$new(index_list2.$first(),-1,!1)),$truthy(r1)?$$($nesting,"File").$join(prefix1,suffix2):$rb_plus(prefix1,suffix2)):$truthy(r1)?prefix1:$$($nesting,"File").$dirname(prefix1)},$Pathname_relative_path_from$25.$$arity=2),Opal.def($Pathname_entries$26,"$join",$Pathname_relative_path_from$25=function($a){try{var $$16,result=nil,args=Opal.slice.call(arguments,0,arguments.length);return $truthy(args["$empty?"]())?this:(result=args.$pop(),$truthy($$($nesting,"Pathname")["$==="](result))||(result=$$($nesting,"Pathname").$new(result)),$truthy(result["$absolute?"]())?result:($send(args,"reverse_each",[],(($$16=function(arg){null==$$16.$$s||$$16.$$s;if(null==arg&&(arg=nil),$truthy($$($nesting,"Pathname")["$==="](arg))||(arg=$$($nesting,"Pathname").$new(arg)),result=$rb_plus(arg,result),!$truthy(result["$absolute?"]()))return nil;Opal.ret(result)}).$$s=this,$$16.$$arity=1,$$16)),$rb_plus(this,result)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Pathname_relative_path_from$25.$$arity=-1),Opal.def($Pathname_entries$26,"$split",$Pathname_relative_path_from$25=function(){return[this.$dirname(),this.$basename()]},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$dirname",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$dirname(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$basename",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$basename(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$directory?",$Pathname_relative_path_from$25=function(){return $$($nesting,"File")["$directory?"](this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$extname",$Pathname_relative_path_from$25=function(){return $$($nesting,"File").$extname(this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$<=>",$Pathname_relative_path_from$25=function(other){return this.$path()["$<=>"](other.$path())},$Pathname_relative_path_from$25.$$arity=1),$alias($Pathname_entries$26,"eql?","=="),$alias($Pathname_entries$26,"===","=="),$alias($Pathname_entries$26,"to_str","to_path"),$alias($Pathname_entries$26,"to_s","to_path"),Opal.const_set($nesting[0],"SAME_PATHS",$truthy($$$($$($nesting,"File"),"FNM_SYSCASE")["$nonzero?"]())?$send($Pathname_entries$26,"proc",[],(($Pathname$23=function(a,b){null==$Pathname$23.$$s||$Pathname$23.$$s;return null==a&&(a=nil),null==b&&(b=nil),a.$casecmp(b)["$=="](0)}).$$s=$Pathname_entries$26,$Pathname$23.$$arity=2,$Pathname$23)):$send($Pathname_entries$26,"proc",[],(($Pathname$24=function(a,b){null==$Pathname$24.$$s||$Pathname$24.$$s;return null==a&&(a=nil),null==b&&(b=nil),a["$=="](b)}).$$s=$Pathname_entries$26,$Pathname$24.$$arity=2,$Pathname$24))),Opal.def($Pathname_entries$26,"$relative_path_from",$Pathname_relative_path_from$25=function(base_directory){var $b,$c,dest_prefix=nil,dest_names=nil,r=nil,basename=nil,base_prefix=nil,base_names=nil,$ret_or_6=nil,$ret_or_7=nil,relpath_names=nil,dest_directory=this.$cleanpath().$to_s();for(base_directory=base_directory.$cleanpath().$to_s(),dest_prefix=dest_directory,dest_names=[];$truthy(r=this.$chop_basename(dest_prefix));)$c=r,dest_prefix=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$truthy(basename["$!="]("."))&&dest_names.$unshift(basename);for(base_prefix=base_directory,base_names=[];$truthy(r=this.$chop_basename(base_prefix));)$c=r,base_prefix=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$truthy(basename["$!="]("."))&&base_names.$unshift(basename);for($truthy($$($nesting,"SAME_PATHS")["$[]"](dest_prefix,base_prefix))||this.$raise($$($nesting,"ArgumentError"),"different prefix: "+dest_prefix.$inspect()+" and "+base_directory.$inspect());$truthy($truthy($ret_or_6=$truthy($ret_or_7=dest_names["$empty?"]()["$!"]())?base_names["$empty?"]()["$!"]():$ret_or_7)?$$($nesting,"SAME_PATHS")["$[]"](dest_names.$first(),base_names.$first()):$ret_or_6);)dest_names.$shift(),base_names.$shift();return $truthy(base_names["$include?"](".."))&&this.$raise($$($nesting,"ArgumentError"),"base_directory has ..: "+base_directory.$inspect()),base_names.$fill(".."),relpath_names=$rb_plus(base_names,dest_names),$truthy(relpath_names["$empty?"]())?$$($nesting,"Pathname").$new("."):$$($nesting,"Pathname").$new($send($$($nesting,"File"),"join",Opal.to_a(relpath_names)))},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$entries",$Pathname_entries$26=function(){var $$27;return $send($$($nesting,"Dir").$entries(this.path),"map",[],(($$27=function(f){var self=null==$$27.$$s?this:$$27.$$s;return null==f&&(f=nil),self.$class().$new(f)}).$$s=this,$$27.$$arity=1,$$27))},$Pathname_entries$26.$$arity=0)}($nesting[0],$nesting),function($Kernel_Pathname$28,$parent_nesting){var $Kernel_Pathname$28=$module($Kernel_Pathname$28,"Kernel"),$nesting=[$Kernel_Pathname$28].concat($parent_nesting);return Opal.def($Kernel_Pathname$28,"$Pathname",$Kernel_Pathname$28=function(path){return $$($nesting,"Pathname").$new(path)},$Kernel_Pathname$28.$$arity=1),nil&&"Pathname"}($nesting[0],$nesting)},Opal.modules["opal/hike"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$attr_reader","$freeze","$dup","$map","$new","$to_s","$sub","$=~","$find_in_base_path","$find_in_paths","$[]","$directory?","$sort","$reject","$entries","$[]=","$-","$key?","$exist?","$stat","$protected","$is_a?","$last","$pop","$split","$each","$match","$join","$to_proc","$paths_contain?","$pattern_for","$select","$sort_matches","$file?","$any?","$paths","$==","$length","$build_pattern_for","$extensions","$escape","$sort_by","$scan","$inject","$index","$+","$expand_path","$concat","$normalize_path","$normalize_extension","$find","$root","$private","$start_with?","$relative?"]),self.$require("pathname"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Hike")].concat($nesting);return function($Index_sort_matches$23,$Index_build_pattern_for$21){var $Index_find_in_paths$12,$Index_find_in_base_path$14,$Index_match$15,$nesting=[$Index_sort_matches$23=$klass($Index_sort_matches$23,null,"Index")].concat($Index_build_pattern_for$21);$Index_sort_matches$23.$$prototype.root=$Index_sort_matches$23.$$prototype.entries=$Index_sort_matches$23.$$prototype.stats=$Index_sort_matches$23.$$prototype.pathnames=$Index_sort_matches$23.$$prototype.patterns=nil,$Index_sort_matches$23.$attr_reader("paths"),$Index_sort_matches$23.$attr_reader("extensions"),Opal.def($Index_sort_matches$23,"$initialize",$Index_build_pattern_for$21=function(root,paths,extensions){var $$2;return this.root=root,this.paths=paths.$dup().$freeze(),this.extensions=extensions.$dup().$freeze(),this.pathnames=$send(paths,"map",[],(($$2=function(path){null==$$2.$$s||$$2.$$s;return null==path&&(path=nil),$$($nesting,"Pathname").$new(path)}).$$s=this,$$2.$$arity=1,$$2)),this.stats=$hash2([],{}),this.entries=$hash2([],{}),this.patterns=$hash2([],{})},$Index_build_pattern_for$21.$$arity=3),Opal.def($Index_sort_matches$23,"$root",$Index_build_pattern_for$21=function(){return this.root.$to_s()},$Index_build_pattern_for$21.$$arity=0),Opal.def($Index_sort_matches$23,"$index",$Index_build_pattern_for$21=function(){return this},$Index_build_pattern_for$21.$$arity=0),Opal.def($Index_sort_matches$23,"$find",$Index_build_pattern_for$21=function(logical_path){try{var $$6,$$7,base_path=$$($nesting,"Pathname").$new(this.root);return logical_path=$$($nesting,"Pathname").$new(logical_path.$sub(/^\//,"")),$truthy(logical_path.$to_s()["$=~"](/^\.\.?\//))?$send(this,"find_in_base_path",[logical_path,base_path],(($$6=function(path){null==$$6.$$s||$$6.$$s;null==path&&(path=nil),Opal.ret(path)}).$$s=this,$$6.$$arity=1,$$6)):$send(this,"find_in_paths",[logical_path],(($$7=function(path){null==$$7.$$s||$$7.$$s;null==path&&(path=nil),Opal.ret(path)}).$$s=this,$$7.$$arity=1,$$7)),nil}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Index_build_pattern_for$21.$$arity=1),Opal.def($Index_sort_matches$23,"$entries",$Index_build_pattern_for$21=function(path){var $$9,$ret_or_1,$writer,self=this,pathname=nil;return $truthy($ret_or_1=self.entries["$[]"](path.$to_s()))?$ret_or_1:($writer=[path.$to_s(),(pathname=$$($nesting,"Pathname").$new(path),$truthy(pathname["$directory?"]())?$send(pathname.$entries(),"reject",[],(($$9=function(entry){null==$$9.$$s||$$9.$$s;return null==entry&&(entry=nil),entry.$to_s()["$=~"](/^\.|~$|^\#.*\#$/)}).$$s=self,$$9.$$arity=1,$$9)).$sort():[])],$send(self.entries,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])},$Index_build_pattern_for$21.$$arity=1),Opal.def($Index_sort_matches$23,"$stat",$Index_build_pattern_for$21=function(path){var $writer=nil,key=path.$to_s();return $truthy(this.stats["$key?"](key))?this.stats["$[]"](key):($writer=$truthy($$($nesting,"File")["$exist?"](path))?[key,$$($nesting,"File").$stat(path)]:[key,nil],$send(this.stats,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])},$Index_build_pattern_for$21.$$arity=1),$Index_sort_matches$23.$protected(),Opal.def($Index_sort_matches$23,"$extract_options!",$Index_build_pattern_for$21=function(arguments$){return $truthy(arguments$.$last()["$is_a?"]($$($nesting,"Hash")))?arguments$.$pop().$dup():$hash2([],{})},$Index_build_pattern_for$21.$$arity=1),Opal.def($Index_sort_matches$23,"$find_in_paths",$Index_find_in_paths$12=function($a){var $$13,dirname,basename,$iter=$Index_find_in_paths$12.$$p,block=$iter||nil;return $iter&&($Index_find_in_paths$12.$$p=null),$iter&&($Index_find_in_paths$12.$$p=null),$a=$a.$split(),$a=Opal.to_ary($a),dirname=null==$a[0]?nil:$a[0],basename=null==$a[1]?nil:$a[1],$send(this.pathnames,"each",[],(($$13=function(base_path){var self=null==$$13.$$s?this:$$13.$$s;return null==base_path&&(base_path=nil),$send(self,"match",[base_path.$join(dirname),basename],block.$to_proc())}).$$s=this,$$13.$$arity=1,$$13))},$Index_find_in_paths$12.$$arity=1),Opal.def($Index_sort_matches$23,"$find_in_base_path",$Index_find_in_base_path$14=function($a,base_path){var dirname,basename,$iter=$Index_find_in_base_path$14.$$p,block=$iter||nil;return $iter&&($Index_find_in_base_path$14.$$p=null),$iter&&($Index_find_in_base_path$14.$$p=null),$a=base_path.$join($a).$split(),dirname=null==($a=Opal.to_ary($a))[0]?nil:$a[0],basename=null==$a[1]?nil:$a[1],$truthy(this["$paths_contain?"](dirname))?$send(this,"match",[dirname,basename],block.$to_proc()):nil},$Index_find_in_base_path$14.$$arity=2),Opal.def($Index_sort_matches$23,"$match",$Index_match$15=function(dirname,basename){var $$16,$$17,matches,pattern,$iter=$Index_match$15.$$p,$yield=$iter||nil;return $iter&&($Index_match$15.$$p=null),matches=this.$entries(dirname),pattern=this.$pattern_for(basename),matches=$send(matches,"select",[],(($$16=function(m){null==$$16.$$s||$$16.$$s;return null==m&&(m=nil),m.$to_s()["$=~"](pattern)}).$$s=this,$$16.$$arity=1,$$16)),$send(this.$sort_matches(matches,basename),"each",[],(($$17=function(path){var self=null==$$17.$$s?this:$$17.$$s,pathname=nil,stat=nil,$ret_or_2=nil;return null==path&&(path=nil),pathname=dirname.$join(path),stat=self.$stat(pathname),$truthy($truthy($ret_or_2=stat)?stat["$file?"]():$ret_or_2)?Opal.yield1($yield,pathname.$to_s()):nil}).$$s=this,$$17.$$arity=1,$$17))},$Index_match$15.$$arity=2),Opal.def($Index_sort_matches$23,"$paths_contain?",$Index_build_pattern_for$21=function(dirname){var $$19;return $send(this.$paths(),"any?",[],(($$19=function(path){null==$$19.$$s||$$19.$$s;return null==path&&(path=nil),dirname.$to_s()["$[]"](0,path.$length())["$=="](path)}).$$s=this,$$19.$$arity=1,$$19))},$Index_build_pattern_for$21.$$arity=1),Opal.def($Index_sort_matches$23,"$pattern_for",$Index_build_pattern_for$21=function(basename){var $ret_or_3,$writer;return $truthy($ret_or_3=this.patterns["$[]"](basename))?$ret_or_3:($writer=[basename,this.$build_pattern_for(basename)],$send(this.patterns,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])},$Index_build_pattern_for$21.$$arity=1),Opal.def($Index_sort_matches$23,"$build_pattern_for",$Index_build_pattern_for$21=function(basename){var $$22,extension_pattern=$send(this.$extensions(),"map",[],(($$22=function(e){null==$$22.$$s||$$22.$$s;return null==e&&(e=nil),$$($nesting,"Regexp").$escape(e)}).$$s=this,$$22.$$arity=1,$$22)).$join("|");return Opal.regexp(["^",basename,"(?:",extension_pattern,")*$"])},$Index_build_pattern_for$21.$$arity=1),Opal.def($Index_sort_matches$23,"$sort_matches",$Index_sort_matches$23=function(matches,basename){var $$24;return $send(matches,"sort_by",[],(($$24=function(match){var $$25,extnames,self=null==$$24.$$s?this:$$24.$$s;return null==match&&(match=nil),extnames=match.$sub(basename.$to_s(),"").$to_s().$scan(/\.[^.]+/),$send(extnames,"inject",[0],(($$25=function(sum,ext){var index,self=null==$$25.$$s?this:$$25.$$s;return null==sum&&(sum=nil),null==ext&&(ext=nil),index=self.$extensions().$index(ext),$truthy(index)?$rb_plus($rb_plus(sum,index),1):sum}).$$s=self,$$25.$$arity=2,$$25))}).$$s=this,$$24.$$arity=1,$$24))},$Index_sort_matches$23.$$arity=2)}($nesting[0],$nesting),function($Trail_normalize_path$38,$Trail_normalize_extension$37){var $Trail_find$32,$Trail_normalize_path$38=$klass($Trail_normalize_path$38,null,"Trail"),$nesting=[$Trail_normalize_path$38].concat($Trail_normalize_extension$37);return $Trail_normalize_path$38.$$prototype.root=$Trail_normalize_path$38.$$prototype.paths=$Trail_normalize_path$38.$$prototype.extensions=nil,$Trail_normalize_path$38.$attr_reader("paths"),$Trail_normalize_path$38.$attr_reader("extensions"),Opal.def($Trail_normalize_path$38,"$initialize",$Trail_normalize_extension$37=function(root){return null==root&&(root="."),this.root=$$($nesting,"Pathname").$new(root).$expand_path(),this.paths=[],this.extensions=[]},$Trail_normalize_extension$37.$$arity=-1),Opal.def($Trail_normalize_path$38,"$root",$Trail_normalize_extension$37=function(){return this.root.$to_s()},$Trail_normalize_extension$37.$$arity=0),Opal.def($Trail_normalize_path$38,"$append_paths",$Trail_normalize_extension$37=function($a){var $$29,$post_args=Opal.slice.call(arguments,0,arguments.length);return this.paths.$concat($send($post_args,"map",[],(($$29=function(p){var self=null==$$29.$$s?this:$$29.$$s;return null==p&&(p=nil),self.$normalize_path(p)}).$$s=this,$$29.$$arity=1,$$29)))},$Trail_normalize_extension$37.$$arity=-1),Opal.def($Trail_normalize_path$38,"$append_extensions",$Trail_normalize_extension$37=function($a){var $$31,$post_args=Opal.slice.call(arguments,0,arguments.length);return this.extensions.$concat($send($post_args,"map",[],(($$31=function(e){var self=null==$$31.$$s?this:$$31.$$s;return null==e&&(e=nil),self.$normalize_extension(e)}).$$s=this,$$31.$$arity=1,$$31)))},$Trail_normalize_extension$37.$$arity=-1),Opal.def($Trail_normalize_path$38,"$find",$Trail_find$32=function($a){var args=$Trail_find$32.$$p,block=args||nil;return args&&($Trail_find$32.$$p=null),args&&($Trail_find$32.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$send(this.$index(),"find",Opal.to_a(args),block.$to_proc())},$Trail_find$32.$$arity=-1),Opal.def($Trail_normalize_path$38,"$index",$Trail_normalize_extension$37=function(){return $$($nesting,"Index").$new(this.$root(),this.$paths(),this.$extensions())},$Trail_normalize_extension$37.$$arity=0),Opal.def($Trail_normalize_path$38,"$entries",$Trail_normalize_extension$37=function(path){var $$35,pathname=nil,pathname=$$($nesting,"Pathname").$new(path);return $truthy(pathname["$directory?"]())?$send(pathname.$entries(),"reject",[],(($$35=function(entry){null==$$35.$$s||$$35.$$s;return null==entry&&(entry=nil),entry.$to_s()["$=~"](/^\.|~$|^\#.*\#$/)}).$$s=this,$$35.$$arity=1,$$35)).$sort():[]},$Trail_normalize_extension$37.$$arity=1),Opal.def($Trail_normalize_path$38,"$stat",$Trail_normalize_extension$37=function(path){return $truthy($$($nesting,"File")["$exist?"](path))?$$($nesting,"File").$stat(path.$to_s()):nil},$Trail_normalize_extension$37.$$arity=1),$Trail_normalize_path$38.$private(),Opal.def($Trail_normalize_path$38,"$normalize_extension",$Trail_normalize_extension$37=function(ext){return $truthy(ext["$start_with?"]("."))?ext:"."+ext},$Trail_normalize_extension$37.$$arity=1),Opal.def($Trail_normalize_path$38,"$normalize_path",$Trail_normalize_path$38=function(path){return path=$$($nesting,"Pathname").$new(path),$truthy(path["$relative?"]())&&(path=this.root.$join(path)),path.$expand_path().$to_s()},$Trail_normalize_path$38.$$arity=1),nil&&"normalize_path"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/path_reader"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$freeze","$quote","$paths","$new","$append_paths","$append_extensions","$expand","$nil?","$exist?","$open","$to_proc","$absolute?","$=~","$find_path","$file_finder","$extensions","$private","$Pathname","$find","$attr_reader"]),self.$require("opal/regexp_anchors"),self.$require("opal/hike"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function(self,$PathReader_find_path$7){var self=$klass(self,null,"PathReader"),$nesting=[self].concat($PathReader_find_path$7);return self.$$prototype.file_finder=nil,Opal.const_set($nesting[0],"RELATIVE_PATH_REGEXP",Opal.regexp([$$$($$($nesting,"Opal"),"REGEXP_START"),"\\.?\\.",$$($nesting,"Regexp").$quote($$$($$($nesting,"File"),"SEPARATOR"))]).$freeze()),Opal.const_set($nesting[0],"DEFAULT_EXTENSIONS",[".js",".js.rb",".rb",".opalerb"].$freeze()),Opal.def(self,"$initialize",$PathReader_find_path$7=function(paths,extensions){return null==paths&&(paths=$$($nesting,"Opal").$paths()),null==extensions&&(extensions=$$($nesting,"DEFAULT_EXTENSIONS")),this.file_finder=$$$($$($nesting,"Hike"),"Trail").$new(),$send(this.file_finder,"append_paths",Opal.to_a(paths)),$send(this.file_finder,"append_extensions",Opal.to_a(extensions))},$PathReader_find_path$7.$$arity=-1),Opal.def(self,"$read",$PathReader_find_path$7=function(path){var full_path=nil,full_path=this.$expand(path);return!$truthy(full_path["$nil?"]())&&$truthy($$($nesting,"File")["$exist?"](full_path))?$send($$($nesting,"File"),"open",[full_path,"rb:UTF-8"],"read".$to_proc()):nil},$PathReader_find_path$7.$$arity=1),Opal.def(self,"$expand",$PathReader_find_path$7=function(path){var $ret_or_1=nil;return $truthy($truthy($ret_or_1=$$($nesting,"Pathname").$new(path)["$absolute?"]())?$ret_or_1:path["$=~"]($$($nesting,"RELATIVE_PATH_REGEXP")))?path:this.$find_path(path)},$PathReader_find_path$7.$$arity=1),Opal.def(self,"$paths",$PathReader_find_path$7=function(){return this.$file_finder().$paths()},$PathReader_find_path$7.$$arity=0),Opal.def(self,"$extensions",$PathReader_find_path$7=function(){return this.$file_finder().$extensions()},$PathReader_find_path$7.$$arity=0),Opal.def(self,"$append_paths",$PathReader_find_path$7=function($a){var paths=Opal.slice.call(arguments,0,arguments.length);return $send(this.$file_finder(),"append_paths",Opal.to_a(paths))},$PathReader_find_path$7.$$arity=-1),self.$private(),Opal.def(self,"$find_path",$PathReader_find_path$7=function(path){var pathname=nil,$ret_or_2=nil,pathname=this.$Pathname(path);return $truthy($truthy($ret_or_2=pathname["$absolute?"]())?pathname["$exist?"]():$ret_or_2)?path:this.$file_finder().$find(path)},$PathReader_find_path$7.$$arity=1),self.$attr_reader("file_finder")}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/paths"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$expand_path","$append_paths","$concat","$require_paths_for_gem","$private","$find_by_name","$raise","$each","$runtime_dependencies","$+","$name","$gem_dir","$map","$require_paths","$<<","$join","$extend","$freeze","$core_dir","$std_dir","$reset_paths!"]),function(self,$Opal_reset_paths$excl$11){var self=$module(self,"Opal"),$nesting=[self].concat($Opal_reset_paths$excl$11);return Opal.defs(self,"$gem_dir",$Opal_reset_paths$excl$11=function(){return $$($nesting,"File").$expand_path("../..","opal/paths.rb")},$Opal_reset_paths$excl$11.$$arity=0),Opal.defs(self,"$core_dir",$Opal_reset_paths$excl$11=function(){return $$($nesting,"File").$expand_path("../../../opal","opal/paths.rb")},$Opal_reset_paths$excl$11.$$arity=0),Opal.defs(self,"$std_dir",$Opal_reset_paths$excl$11=function(){return $$($nesting,"File").$expand_path("../../../stdlib","opal/paths.rb")},$Opal_reset_paths$excl$11.$$arity=0),Opal.defs(self,"$append_path",$Opal_reset_paths$excl$11=function(path){return this.$append_paths(path)},$Opal_reset_paths$excl$11.$$arity=1),Opal.defs(self,"$append_paths",$Opal_reset_paths$excl$11=function($a){var $post_args;return null==this.paths&&(this.paths=nil),$post_args=Opal.slice.call(arguments,0,arguments.length),this.paths.$concat($post_args),nil},$Opal_reset_paths$excl$11.$$arity=-1),function($UseGem_require_paths_for_gem$7,$UseGem_use_gem$6){var $nesting=[$UseGem_require_paths_for_gem$7=$module($UseGem_require_paths_for_gem$7,"UseGem")].concat($UseGem_use_gem$6);Opal.def($UseGem_require_paths_for_gem$7,"$use_gem",$UseGem_use_gem$6=function(gem_name,include_dependencies){return null==include_dependencies&&(include_dependencies=!0),$send(this,"append_paths",Opal.to_a(this.$require_paths_for_gem(gem_name,include_dependencies)))},$UseGem_use_gem$6.$$arity=-2),$UseGem_require_paths_for_gem$7.$private(),Opal.def($UseGem_require_paths_for_gem$7,"$require_paths_for_gem",$UseGem_require_paths_for_gem$7=function(gem_name,include_dependencies){var $$8,$$9,gem_dir,paths=nil,spec=nil,paths=[],spec=$$$($$($nesting,"Gem"),"Specification").$find_by_name(gem_name);return $truthy(spec)||this.$raise($$($nesting,"GemNotFound"),gem_name),$truthy(include_dependencies)&&$send(spec.$runtime_dependencies(),"each",[],(($$8=function(rhs){var lhs,self=null==$$8.$$s?this:$$8.$$s;return null==rhs&&(rhs=nil),lhs=paths,rhs=self.$require_paths_for_gem(rhs.$name(),include_dependencies),paths="number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}).$$s=this,$$8.$$arity=1,$$8)),gem_dir=spec.$gem_dir(),$send(spec.$require_paths(),"map",[],(($$9=function(path){null==$$9.$$s||$$9.$$s;return null==path&&(path=nil),paths["$<<"]($$($nesting,"File").$join(gem_dir,path))}).$$s=this,$$9.$$arity=1,$$9)),paths},$UseGem_require_paths_for_gem$7.$$arity=2)}($nesting[0],$nesting),self.$extend($$($nesting,"UseGem")),Opal.defs(self,"$paths",$Opal_reset_paths$excl$11=function(){return null==this.paths&&(this.paths=nil),this.paths.$freeze()},$Opal_reset_paths$excl$11.$$arity=0),Opal.defs(self,"$reset_paths!",$Opal_reset_paths$excl$11=function(){return this.paths=[this.$core_dir(),this.$std_dir(),this.$gem_dir()],nil},$Opal_reset_paths$excl$11.$$arity=0),self["$reset_paths!"]()}($nesting[0],$nesting)},Opal.modules.set=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs"},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$==",$Set_disjoint$ques$50=function(other){var $$8,self=this,$ret_or_1=nil;return!!$truthy(self["$equal?"](other))||($truthy(other["$instance_of?"](self.$class()))?self.hash["$=="](other.$instance_variable_get("@hash")):!!$truthy($truthy($ret_or_1=other["$is_a?"]($$($nesting,"Set")))?self.$size()["$=="](other.$size()):$ret_or_1)&&$send(other,"all?",[],(($$8=function(o){var self=null==$$8.$$s?this:$$8.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash["$include?"](o)}).$$s=self,$$8.$$arity=1,$$8)))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$add",$Set_disjoint$ques$50=function(o){var $writer=[o,!0];return $send(this.hash,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),this},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<<","add"),Opal.def($Set_to_a$51,"$classify",$Set_classify$10=function(){var $$11,$$12,$iter=$Set_classify$10.$$p,block=$iter||nil,result=nil;return $iter&&($Set_classify$10.$$p=null),$iter&&($Set_classify$10.$$p=null),block===nil?this.$enum_for("classify"):(result=$send($$($nesting,"Hash"),"new",[],(($$11=function(h,k){var $writer,self=null==$$11.$$s?this:$$11.$$s;return null==h&&(h=nil),null==k&&(k=nil),$writer=[k,self.$class().$new()],$send(h,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$11.$$arity=2,$$11)),$send(this,"each",[],(($$12=function(item){null==$$12.$$s||$$12.$$s;return null==item&&(item=nil),result["$[]"](Opal.yield1(block,item)).$add(item)}).$$s=this,$$12.$$arity=1,$$12)),result)},$Set_classify$10.$$arity=0),Opal.def($Set_to_a$51,"$collect!",$Set_collect$excl$13=function(){var $$14,$iter=$Set_collect$excl$13.$$p,block=$iter||nil,result=nil;return $iter&&($Set_collect$excl$13.$$p=null),$iter&&($Set_collect$excl$13.$$p=null),block===nil?this.$enum_for("collect!"):(result=this.$class().$new(),$send(this,"each",[],(($$14=function(item){null==$$14.$$s||$$14.$$s;return null==item&&(item=nil),result["$<<"](Opal.yield1(block,item))}).$$s=this,$$14.$$arity=1,$$14)),this.$replace(result))},$Set_collect$excl$13.$$arity=0),$alias($Set_to_a$51,"map!","collect!"),Opal.def($Set_to_a$51,"$delete",$Set_disjoint$ques$50=function(o){return this.hash.$delete(o),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$delete?",$Set_disjoint$ques$50=function(o){return $truthy(this["$include?"](o))?(this.$delete(o),this):nil},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$delete_if",$Set_delete_if$17=function(){var $$18,$$19,$iter=$Set_delete_if$17.$$p,$yield=$iter||nil;return $iter&&($Set_delete_if$17.$$p=null),$yield===nil?this.$enum_for("delete_if"):($send($send(this,"select",[],(($$18=function(o){null==$$18.$$s||$$18.$$s;return null==o&&(o=nil),Opal.yield1($yield,o)}).$$s=this,$$18.$$arity=1,$$18)),"each",[],(($$19=function(o){var self=null==$$19.$$s?this:$$19.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}).$$s=this,$$19.$$arity=1,$$19)),this)},$Set_delete_if$17.$$arity=0),Opal.def($Set_to_a$51,"$keep_if",$Set_keep_if$20=function(){var $$21,$$22,$iter=$Set_keep_if$20.$$p,$yield=$iter||nil;return $iter&&($Set_keep_if$20.$$p=null),$yield===nil?this.$enum_for("keep_if"):($send($send(this,"reject",[],(($$21=function(o){null==$$21.$$s||$$21.$$s;return null==o&&(o=nil),Opal.yield1($yield,o)}).$$s=this,$$21.$$arity=1,$$21)),"each",[],(($$22=function(o){var self=null==$$22.$$s?this:$$22.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}).$$s=this,$$22.$$arity=1,$$22)),this)},$Set_keep_if$20.$$arity=0),Opal.def($Set_to_a$51,"$reject!",$Set_reject$excl$23=function(){var before,$iter=$Set_reject$excl$23.$$p,block=$iter||nil;return $iter&&($Set_reject$excl$23.$$p=null),$iter&&($Set_reject$excl$23.$$p=null),block===nil?this.$enum_for("reject!"):(before=this.$size(),$send(this,"delete_if",[],block.$to_proc()),this.$size()["$=="](before)?nil:this)},$Set_reject$excl$23.$$arity=0),Opal.def($Set_to_a$51,"$select!",$Set_select$excl$24=function(){var before,$iter=$Set_select$excl$24.$$p,block=$iter||nil;return $iter&&($Set_select$excl$24.$$p=null),$iter&&($Set_select$excl$24.$$p=null),block===nil?this.$enum_for("select!"):(before=this.$size(),$send(this,"keep_if",[],block.$to_proc()),this.$size()["$=="](before)?nil:this)},$Set_select$excl$24.$$arity=0),$alias($Set_to_a$51,"filter!","select!"),Opal.def($Set_to_a$51,"$add?",$Set_disjoint$ques$50=function(o){return $truthy(this["$include?"](o))?nil:this.$add(o)},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$each",$Set_each$26=function(){var $iter=$Set_each$26.$$p,block=$iter||nil;return $iter&&($Set_each$26.$$p=null),$iter&&($Set_each$26.$$p=null),block===nil?this.$enum_for("each"):($send(this.hash,"each_key",[],block.$to_proc()),this)},$Set_each$26.$$arity=0),Opal.def($Set_to_a$51,"$empty?",$Set_disjoint$ques$50=function(){return this.hash["$empty?"]()},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$eql?",$Set_disjoint$ques$50=function(other){var $$29;return this.hash["$eql?"]($send(other,"instance_eval",[],(($$29=function(){var self=null==$$29.$$s?this:$$29.$$s;return null==self.hash&&(self.hash=nil),self.hash}).$$s=this,$$29.$$arity=0,$$29)))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$clear",$Set_disjoint$ques$50=function(){return this.hash.$clear(),this},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$include?",$Set_disjoint$ques$50=function(o){return this.hash["$include?"](o)},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"member?","include?"),Opal.def($Set_to_a$51,"$merge",$Set_disjoint$ques$50=function(enum$){var $$33;return $send(enum$,"each",[],(($$33=function(item){var self=null==$$33.$$s?this:$$33.$$s;return null==item&&(item=nil),self.$add(item)}).$$s=this,$$33.$$arity=1,$$33)),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$replace",$Set_disjoint$ques$50=function(enum$){return this.$clear(),this.$merge(enum$),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$size",$Set_disjoint$ques$50=function(){return this.hash.$size()},$Set_disjoint$ques$50.$$arity=0),$alias($Set_to_a$51,"length","size"),Opal.def($Set_to_a$51,"$subtract",$Set_disjoint$ques$50=function(enum$){var $$37;return $send(enum$,"each",[],(($$37=function(item){var self=null==$$37.$$s?this:$$37.$$s;return null==item&&(item=nil),self.$delete(item)}).$$s=this,$$37.$$arity=1,$$37)),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$|",$Set_disjoint$ques$50=function(enum$){return $truthy(enum$["$respond_to?"]("each"))||this.$raise($$($nesting,"ArgumentError"),"value must be enumerable"),this.$dup().$merge(enum$)},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$superset?",$Set_disjoint$ques$50=function(set){var $$40;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_lt(this.$size(),set.$size()))&&$send(set,"all?",[],(($$40=function(o){var self=null==$$40.$$s?this:$$40.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$40.$$arity=1,$$40))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,">=","superset?"),Opal.def($Set_to_a$51,"$proper_superset?",$Set_disjoint$ques$50=function(set){var $$42;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_le(this.$size(),set.$size()))&&$send(set,"all?",[],(($$42=function(o){var self=null==$$42.$$s?this:$$42.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$42.$$arity=1,$$42))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,">","proper_superset?"),Opal.def($Set_to_a$51,"$subset?",$Set_disjoint$ques$50=function(set){var $$44;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_lt(set.$size(),this.$size()))&&$send(this,"all?",[],(($$44=function(o){null==$$44.$$s||$$44.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$44.$$arity=1,$$44))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<=","subset?"),Opal.def($Set_to_a$51,"$proper_subset?",$Set_disjoint$ques$50=function(set){var $$46;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_le(set.$size(),this.$size()))&&$send(this,"all?",[],(($$46=function(o){null==$$46.$$s||$$46.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$46.$$arity=1,$$46))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<","proper_subset?"),Opal.def($Set_to_a$51,"$intersect?",$Set_disjoint$ques$50=function(set){var $$48,$$49;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),$truthy($rb_lt(this.$size(),set.$size()))?$send(this,"any?",[],(($$48=function(o){null==$$48.$$s||$$48.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$48.$$arity=1,$$48)):$send(set,"any?",[],(($$49=function(o){var self=null==$$49.$$s?this:$$49.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$49.$$arity=1,$$49))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$disjoint?",$Set_disjoint$ques$50=function(set){return this["$intersect?"](set)["$!"]()},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"+","|"),$alias($Set_to_a$51,"union","|"),Opal.def($Set_to_a$51,"$to_a",$Set_to_a$51=function(){return this.hash.$keys()},$Set_to_a$51.$$arity=0)}($nesting[0],$nesting),function(self,$parent_nesting){var $Enumerable_to_set$52,self=$module(self,"Enumerable"),$nesting=[self].concat($parent_nesting);return Opal.def(self,"$to_set",$Enumerable_to_set$52=function($a,$b){var klass,$post_args=$Enumerable_to_set$52.$$p,block=$post_args||nil,self=this;return $post_args&&($Enumerable_to_set$52.$$p=null),$post_args&&($Enumerable_to_set$52.$$p=null),0<($post_args=Opal.slice.call(arguments,0,arguments.length)).length&&(klass=$post_args[0],$post_args.splice(0,1)),null==klass&&(klass=$$($nesting,"Set")),$send(klass,"new",[self].concat(Opal.to_a($post_args)),block.$to_proc())},$Enumerable_to_set$52.$$arity=-1),nil&&"to_set"}($nesting[0],$nesting)},Opal.modules["opal/config"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send,$lambda=Opal.lambda;return Opal.add_stubs(["$require","$extend","$private","$fetch","$[]=","$config_options","$-","$define_singleton_method","$config","$any?","$===","$raise","$inspect","$public","$each","$call","$default_config","$config_option","$new"]),self.$require("set"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function(self,$Config_reset$excl$11){var $Config$12,self=$module(self,"Config"),$nesting=[self].concat($Config_reset$excl$11);return self.$extend(self),self.$private(),Opal.def(self,"$config_options",$Config_reset$excl$11=function(){var self=this,$ret_or_1=nil;return null==self.config_options&&(self.config_options=nil),self.config_options=$truthy($ret_or_1=self.config_options)?$ret_or_1:$hash2([],{})},$Config_reset$excl$11.$$arity=0),Opal.def(self,"$config_option",$Config_reset$excl$11=function(name,default_value,options){var $$3,$$4,compiler,$writer,valid_values=nil;return null==options&&(options=$hash2([],{})),compiler=options.$fetch("compiler_option",nil),valid_values=options.$fetch("valid_values",[!0,!1]),$writer=[name,$hash2(["default","compiler"],{default:default_value,compiler:compiler})],$send(this.$config_options(),"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),$send(this,"define_singleton_method",[name],(($$3=function(){return(null==$$3.$$s?this:$$3.$$s).$config().$fetch(name,default_value)}).$$s=this,$$3.$$arity=0,$$3)),$send(this,"define_singleton_method",[name+"="],(($$4=function(value){var $$5,self=null==$$4.$$s?this:$$4.$$s;return null==value&&(value=nil),$truthy($send(valid_values,"any?",[],(($$5=function(valid_value){null==$$5.$$s||$$5.$$s;return null==valid_value&&(valid_value=nil),valid_value["$==="](value)}).$$s=self,$$5.$$arity=1,$$5)))||self.$raise($$($nesting,"ArgumentError"),"Not a valid value for option "+self+"."+name+", provided "+value.$inspect()+". Must be "+valid_values.$inspect()+" === "+value.$inspect()),$writer=[name,value],$send(self.$config(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$4.$$arity=1,$$4))},$Config_reset$excl$11.$$arity=-3),self.$public(),Opal.def(self,"$default_config",$Config_reset$excl$11=function(){var $$7,default_config=$hash2([],{});return $send(this.$config_options(),"each",[],(($$7=function(name,options){null==$$7.$$s||$$7.$$s;var $writer,default_value=nil;return null==name&&(name=nil),null==options&&(options=nil),default_value=options.$fetch("default"),$writer=[name,default_value=$truthy($$($nesting,"Proc")["$==="](default_value))?default_value.$call():default_value],$send(default_config,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$7.$$arity=2,$$7)),default_config},$Config_reset$excl$11.$$arity=0),Opal.def(self,"$compiler_options",$Config_reset$excl$11=function(){var $$9,compiler_options=$hash2([],{});return $send(this.$config_options(),"each",[],(($$9=function(name,options){var $writer,self=null==$$9.$$s?this:$$9.$$s;return null==name&&(name=nil),null==options&&(options=nil),$writer=[options.$fetch("compiler"),self.$config().$fetch(name)],$send(compiler_options,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$9.$$arity=2,$$9)),compiler_options},$Config_reset$excl$11.$$arity=0),Opal.def(self,"$config",$Config_reset$excl$11=function(){var self=this,$ret_or_2=nil;return null==self.config&&(self.config=nil),self.config=$truthy($ret_or_2=self.config)?$ret_or_2:self.$default_config()},$Config_reset$excl$11.$$arity=0),Opal.def(self,"$reset!",$Config_reset$excl$11=function(){return this.config=nil},$Config_reset$excl$11.$$arity=0),self.$config_option("method_missing_enabled",!0,$hash2(["compiler_option"],{compiler_option:"method_missing"})),self.$config_option("const_missing_enabled",!0,$hash2(["compiler_option"],{compiler_option:"const_missing"})),self.$config_option("arity_check_enabled",!1,$hash2(["compiler_option"],{compiler_option:"arity_check"})),self.$config_option("freezing_stubs_enabled",!0,$hash2(["compiler_option"],{compiler_option:"freezing"})),self.$config_option("dynamic_require_severity","warning",$hash2(["compiler_option","valid_values"],{compiler_option:"dynamic_require_severity",valid_values:["error","warning","ignore"]})),self.$config_option("missing_require_severity","error",$hash2(["valid_values"],{valid_values:["error","warning","ignore"]})),self.$config_option("irb_enabled",!1,$hash2(["compiler_option"],{compiler_option:"irb"})),self.$config_option("inline_operators_enabled",!0,$hash2(["compiler_option"],{compiler_option:"inline_operators"})),self.$config_option("source_map_enabled",!0),self.$config_option("stubbed_files",$lambda((($Config$12=function(){null==$Config$12.$$s||$Config$12.$$s;return $$($nesting,"Set").$new()}).$$s=self,$Config$12.$$arity=0,$Config$12)),$hash2(["valid_values"],{valid_values:[$$($nesting,"Set")]}))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/cache"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$truthy=Opal.truthy,$klass=Opal.klass,$send=Opal.send,$gvars=Opal.gvars,$range=Opal.range;return Opal.add_stubs(["$require","$attr_writer","$singleton_class","$==","$[]","$!","$find_dir","$new","$module_function","$respond_to?","$fetch","$to_proc","$+","$digest","$join","$runtime_key","$get","$set","$expand_path","$gem_dir","$grep","$map","$sort","$size","$to_f","$mtime","$to_s","$to_i","$hexdigest"]),self.$require("opal/paths"),function($Opal_cache$1,$parent_nesting){var $Opal_cache$1=$module($Opal_cache$1,"Opal"),$nesting=[$Opal_cache$1].concat($parent_nesting);return $Opal_cache$1.$singleton_class().$attr_writer("cache"),Opal.defs($Opal_cache$1,"$cache",$Opal_cache$1=function(){var self=this,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return null==self.cache&&(self.cache=nil),self.cache=$truthy($ret_or_1=self.cache)?$ret_or_1:($truthy($truthy($ret_or_2=$truthy($ret_or_3=$$($nesting,"RUBY_ENGINE")["$=="]("opal"))?$ret_or_3:$$($nesting,"ENV")["$[]"]("OPAL_CACHE_DISABLE"))?$ret_or_2:$$$($$($nesting,"Cache"),"FileCache").$find_dir()["$!"]())?$$$($$($nesting,"Cache"),"NullCache"):$$$($$($nesting,"Cache"),"FileCache")).$new()},$Opal_cache$1.$$arity=0),function($Cache_digest$6,$Cache_runtime_key$4){var $Cache_fetch$3,$Cache_digest$6=$module($Cache_digest$6,"Cache"),$nesting=[$Cache_digest$6].concat($Cache_runtime_key$4);return function(self,$parent_nesting){var $NullCache_fetch$2;[self=$klass(self,null,"NullCache")].concat($parent_nesting),Opal.def(self,"$fetch",$NullCache_fetch$2=function($a){var $iter=$NullCache_fetch$2.$$p,$yield=$iter||nil;return $iter&&($NullCache_fetch$2.$$p=null),Opal.slice.call(arguments,0,arguments.length),Opal.yieldX($yield,[])},$NullCache_fetch$2.$$arity=-1)}($nesting[0],$nesting),$Cache_digest$6.$module_function(),Opal.def($Cache_digest$6,"$fetch",$Cache_fetch$3=function(cache,key){var data,$ret_or_4,compiler,$iter=$Cache_fetch$3.$$p,block=$iter||nil;return $iter&&($Cache_fetch$3.$$p=null),$iter&&($Cache_fetch$3.$$p=null),$truthy(cache["$respond_to?"]("fetch"))?$send(cache,"fetch",[key],block.$to_proc()):(key=$rb_plus($rb_plus(this.$digest(key.$join("/")),"-"),this.$runtime_key()),data=cache.$get(key),$truthy($ret_or_4=data)?$ret_or_4:(compiler=Opal.yieldX(block,[]),cache.$set(key,compiler),compiler))},$Cache_fetch$3.$$arity=2),Opal.def($Cache_digest$6,"$runtime_key",$Cache_runtime_key$4=function(){var $$5,$ret_or_5,opal_path,self=this,files=nil;return null==self.runtime_key&&(self.runtime_key=nil),null==$gvars.LOADED_FEATURES&&($gvars.LOADED_FEATURES=nil),self.runtime_key=$truthy($ret_or_5=self.runtime_key)?$ret_or_5:(opal_path=$$($nesting,"File").$expand_path("..",$$($nesting,"Opal").$gem_dir()),files=$rb_plus(files=$$($nesting,"Dir")["$[]"](opal_path+"/{Gemfile*,*.gemspec,lib/**/*}"),$gvars.LOADED_FEATURES.$grep(/lib\/(parser|ast)/)),self.$digest([$send(files.$sort(),"map",[],(($$5=function(f){null==$$5.$$s||$$5.$$s;return null==f&&(f=nil),f+":"+$$($nesting,"File").$size(f)+":"+$$($nesting,"File").$mtime(f).$to_f()}).$$s=self,$$5.$$arity=1,$$5)),$$($nesting,"RUBY_VERSION"),$$($nesting,"RUBY_PATCHLEVEL")].$join("/")))},$Cache_runtime_key$4.$$arity=0),Opal.def($Cache_digest$6,"$digest",$Cache_digest$6=function(string){return $$$($$$("::","Digest"),"SHA256").$hexdigest(string)["$[]"]($range(-32,-1,!1)).$to_i(16).$to_s(36)},$Cache_digest$6.$$arity=1),nil&&"digest"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/builder"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2,$send2=Opal.send2,$find_super=Opal.find_super,$lambda=Opal.lambda;return Opal.add_stubs(["$require","$include?","$processors","$<<","$each","$extensions","$each_pair","$public_send","$new","$paths","$flatten","$map","$compiler_options","$missing_require_severity","$cache","$build","$to_proc","$build_str","$source_for","$read","$nil?","$expand_path","$expand_ext","$processor_for","$+","$preload","$requires","$tree_requires","$process_require","$processed","$raise","$inspect","$message","$backtrace","$dup","$stubs","$path_reader","$prerequired","$to_sym","$join","$append_paths","$include","$attr_reader","$attr_accessor","$private","$empty?","$to_s","$pwd","$dirname","$Pathname","$flat_map","$required_trees","$find","$start_with?","$glob","$relative_path_from","$match?","$merge","$[]","$===","$warn","$already_processed","$stub?","$process_requires","$expand","$basename"]),self.$require("opal/path_reader"),self.$require("opal/paths"),self.$require("opal/config"),self.$require("opal/cache"),self.$require("set"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($Builder_extensions$34,$Builder_stub$ques$33){var $Builder_build$8,$Builder_initialize_copy$14,$Builder_extensions$34=$klass($Builder_extensions$34,null,"Builder"),$nesting=[$Builder_extensions$34].concat($Builder_stub$ques$33);return $Builder_extensions$34.$$prototype.stubs=$Builder_extensions$34.$$prototype.preload=$Builder_extensions$34.$$prototype.processors=$Builder_extensions$34.$$prototype.path_reader=$Builder_extensions$34.$$prototype.prerequired=$Builder_extensions$34.$$prototype.compiler_options=$Builder_extensions$34.$$prototype.missing_require_severity=$Builder_extensions$34.$$prototype.cache=$Builder_extensions$34.$$prototype.already_processed=nil,Opal.defs($Builder_extensions$34,"$processors",$Builder_stub$ques$33=function(){var self=this,$ret_or_1=nil;return null==self.processors&&(self.processors=nil),self.processors=$truthy($ret_or_1=self.processors)?$ret_or_1:[]},$Builder_stub$ques$33.$$arity=0),Opal.defs($Builder_extensions$34,"$extensions",$Builder_stub$ques$33=function(){var self=this,$ret_or_2=nil;return null==self.extensions&&(self.extensions=nil),self.extensions=$truthy($ret_or_2=self.extensions)?$ret_or_2:[]},$Builder_stub$ques$33.$$arity=0),Opal.defs($Builder_extensions$34,"$register_processor",$Builder_stub$ques$33=function(processor,processor_extensions){var $$4;return $truthy(this.$processors()["$include?"](processor))?nil:(this.$processors()["$<<"](processor),$send(processor_extensions,"each",[],(($$4=function(ext){var self=null==$$4.$$s?this:$$4.$$s;return null==ext&&(ext=nil),self.$extensions()["$<<"](ext)}).$$s=this,$$4.$$arity=1,$$4)))},$Builder_stub$ques$33.$$arity=2),function($base,$super,$parent_nesting){[$klass($base,$super,"MissingRequire")].concat($parent_nesting)}($nesting[0],$$($nesting,"LoadError"),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,"ProcessorNotFound")].concat($parent_nesting)}($nesting[0],$$($nesting,"LoadError"),$nesting),Opal.def($Builder_extensions$34,"$initialize",$Builder_stub$ques$33=function(options){var $$6,$$7,$ret_or_7,self=this,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil,$ret_or_6=nil,$ret_or_8=nil,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil;return null==options&&(options=nil),$send($truthy($ret_or_3=options)?$ret_or_3:$hash2([],{}),"each_pair",[],(($$6=function(k,v){var self=null==$$6.$$s?this:$$6.$$s;return null==k&&(k=nil),null==v&&(v=nil),self.$public_send(k+"=",v)}).$$s=self,$$6.$$arity=2,$$6)),self.stubs=$truthy($ret_or_4=self.stubs)?$ret_or_4:[],self.preload=$truthy($ret_or_5=self.preload)?$ret_or_5:[],self.processors=$truthy($ret_or_6=self.processors)?$ret_or_6:$$$($$$("::","Opal"),"Builder").$processors(),self.path_reader=$truthy($ret_or_7=self.path_reader)?$ret_or_7:$$($nesting,"PathReader").$new($$($nesting,"Opal").$paths(),$send(self.$extensions(),"map",[],(($$7=function(e){null==$$7.$$s||$$7.$$s;return null==e&&(e=nil),["."+e,".js."+e]}).$$s=self,$$7.$$arity=1,$$7)).$flatten()),self.prerequired=$truthy($ret_or_8=self.prerequired)?$ret_or_8:[],self.compiler_options=$truthy($ret_or_9=self.compiler_options)?$ret_or_9:$$$($$($nesting,"Opal"),"Config").$compiler_options(),self.missing_require_severity=$truthy($ret_or_10=self.missing_require_severity)?$ret_or_10:$$$($$($nesting,"Opal"),"Config").$missing_require_severity(),self.cache=$truthy($ret_or_11=self.cache)?$ret_or_11:$$($nesting,"Opal").$cache(),self.processed=[]},$Builder_stub$ques$33.$$arity=-1),Opal.defs($Builder_extensions$34,"$build",$Builder_build$8=function($a){var args=$Builder_build$8.$$p,block=args||nil;return args&&($Builder_build$8.$$p=null),args&&($Builder_build$8.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$send(this.$new(),"build",Opal.to_a(args),block.$to_proc())},$Builder_build$8.$$arity=-1),Opal.def($Builder_extensions$34,"$build",$Builder_stub$ques$33=function(path,options){return null==options&&(options=$hash2([],{})),this.$build_str(this.$source_for(path),path,options)},$Builder_stub$ques$33.$$arity=-2),Opal.def($Builder_extensions$34,"$source_for",$Builder_stub$ques$33=function(path){return this.$read(path)},$Builder_stub$ques$33.$$arity=1),Opal.def($Builder_extensions$34,"$build_str",$Builder_stub$ques$33=function(source,rel_path,options){var $$12,abs_path,requires,asset=nil,error=nil;null==options&&(options=$hash2([],{}));try{return $truthy(source["$nil?"]())?nil:(abs_path=this.$expand_path(rel_path),rel_path=this.$expand_ext(rel_path),asset=this.$processor_for(source,rel_path,abs_path,options),requires=$rb_plus($rb_plus(this.$preload(),asset.$requires()),this.$tree_requires(asset,abs_path)),$send(requires,"map",[],(($$12=function(r){var self=null==$$12.$$s?this:$$12.$$s;return null==r&&(r=nil),self.$process_require(r,options)}).$$s=this,$$12.$$arity=1,$$12)),this.$processed()["$<<"](asset),this)}catch($err){if(!Opal.rescue($err,[$$($nesting,"MissingRequire")]))throw $err;error=$err;try{return this.$raise(error,"A file required by "+rel_path.$inspect()+" wasn't found.\n"+error.$message(),error.$backtrace())}finally{Opal.pop_exception()}}},$Builder_stub$ques$33.$$arity=-3),Opal.def($Builder_extensions$34,"$build_require",$Builder_stub$ques$33=function(path,options){return null==options&&(options=$hash2([],{})),this.$process_require(path,options)},$Builder_stub$ques$33.$$arity=-2),Opal.def($Builder_extensions$34,"$initialize_copy",$Builder_initialize_copy$14=function(other){var $zuper_ii,$iter=$Builder_initialize_copy$14.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Builder_initialize_copy$14.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $send2(this,$find_super(this,"initialize_copy",$Builder_initialize_copy$14,!1,!0),"initialize_copy",$zuper,$iter),this.stubs=other.$stubs().$dup(),this.preload=other.$preload().$dup(),this.processors=other.$processors().$dup(),this.path_reader=other.$path_reader().$dup(),this.prerequired=other.$prerequired().$dup(),this.compiler_options=other.$compiler_options().$dup(),this.missing_require_severity=other.$missing_require_severity().$to_sym(),this.processed=other.$processed().$dup()},$Builder_initialize_copy$14.$$arity=1),Opal.def($Builder_extensions$34,"$to_s",$Builder_stub$ques$33=function(){return $send(this.$processed(),"map",[],"to_s".$to_proc()).$join("\n")},$Builder_stub$ques$33.$$arity=0),Opal.def($Builder_extensions$34,"$source_map",$Builder_stub$ques$33=function(){return $$$($$$($$$("::","Opal"),"SourceMap"),"Index").$new($send(this.$processed(),"map",[],"source_map".$to_proc()),$hash2(["join"],{join:"\n"}))},$Builder_stub$ques$33.$$arity=0),Opal.def($Builder_extensions$34,"$append_paths",$Builder_stub$ques$33=function($a){var paths=Opal.slice.call(arguments,0,arguments.length);return $send(this.$path_reader(),"append_paths",Opal.to_a(paths))},$Builder_stub$ques$33.$$arity=-1),$Builder_extensions$34.$include($$($nesting,"UseGem")),$Builder_extensions$34.$attr_reader("processed"),$Builder_extensions$34.$attr_accessor("processors","path_reader","stubs","prerequired","preload","compiler_options","missing_require_severity","cache"),$Builder_extensions$34.$private(),Opal.def($Builder_extensions$34,"$tree_requires",$Builder_stub$ques$33=function(asset,asset_path){var $$19,$$20,self=this,dirname=nil,dirname=$truthy(asset_path.$to_s()["$empty?"]())?$$($nesting,"Pathname").$pwd():self.$Pathname(asset_path).$expand_path().$dirname(),abs_base_paths=$send(self.$path_reader().$paths(),"map",[],(($$19=function(p){null==$$19.$$s||$$19.$$s;return null==p&&(p=nil),$$($nesting,"File").$expand_path(p)}).$$s=self,$$19.$$arity=1,$$19));return $send(asset.$required_trees(),"flat_map",[],(($$20=function(tree){var $$21,$$22,abs_base_path,entries_glob,self=null==$$20.$$s?this:$$20.$$s,abs_tree_path=nil;return null==tree&&(tree=nil),abs_tree_path=dirname.$join(tree).$expand_path().$to_s(),abs_base_path=$send(abs_base_paths,"find",[],(($$21=function(p){null==$$21.$$s||$$21.$$s;return null==p&&(p=nil),abs_tree_path["$start_with?"](p)}).$$s=self,$$21.$$arity=1,$$21)),$truthy(abs_base_path)?(abs_base_path=self.$Pathname(abs_base_path),entries_glob=self.$Pathname(abs_tree_path).$join("**","*{.js,}.{"+self.$extensions().$join(",")+"}"),$send($$($nesting,"Pathname").$glob(entries_glob),"map",[],(($$22=function(file){null==$$22.$$s||$$22.$$s;return null==file&&(file=nil),file.$relative_path_from(abs_base_path).$to_s()}).$$s=self,$$22.$$arity=1,$$22))):[]}).$$s=self,$$20.$$arity=1,$$20))},$Builder_stub$ques$33.$$arity=2),Opal.def($Builder_extensions$34,"$processor_for",$Builder_stub$ques$33=function(source,rel_path,abs_path,options){var $$24,$ret_or_12,self=this,processor=nil,processor=$truthy($ret_or_12=$send(self.$processors(),"find",[],(($$24=function(p){null==$$24.$$s||$$24.$$s;return null==p&&(p=nil),p["$match?"](abs_path)}).$$s=self,$$24.$$arity=1,$$24)))?$ret_or_12:self.$raise($$($nesting,"ProcessorNotFound"),"can't find processor for rel_path: "+rel_path.$inspect()+", abs_path: "+abs_path.$inspect()+", source: "+source.$inspect()+", processors: "+self.$processors().$inspect());return options=options.$merge($hash2(["cache"],{cache:self.$cache()})),processor.$new(source,rel_path,self.compiler_options.$merge(options))},$Builder_stub$ques$33.$$arity=4),Opal.def($Builder_extensions$34,"$read",$Builder_stub$ques$33=function(path){var $$26,$ret_or_13,message,$case,print_list=nil;return $truthy($ret_or_13=this.$path_reader().$read(path))?$ret_or_13:(print_list=$lambda((($$26=function(list){null==$$26.$$s||$$26.$$s;return null==list&&(list=nil),"- "+list.$join("\n- ")+"\n"}).$$s=this,$$26.$$arity=1,$$26)),message=$rb_plus($rb_plus($rb_plus($rb_plus($rb_plus("can't find file: "+path.$inspect()+" in:\n",print_list["$[]"](this.$path_reader().$paths())),"\nWith the following extensions:\n"),print_list["$[]"](this.$path_reader().$extensions())),"\nAnd the following processors:\n"),print_list["$[]"](this.$processors())),$case=this.$missing_require_severity(),"error"["$==="]($case)?this.$raise($$($nesting,"MissingRequire"),message):"warning"["$==="]($case)?this.$warn(message):"ignore"["$==="]($case),nil)},$Builder_stub$ques$33.$$arity=1),Opal.def($Builder_extensions$34,"$process_require",$Builder_stub$ques$33=function(rel_path,options){var abs_path,self=this,source=nil,asset=nil;return $truthy(self.$prerequired()["$include?"](rel_path))||$truthy(self.$already_processed()["$include?"](rel_path))?nil:(self.$already_processed()["$<<"](rel_path),source=$truthy(self["$stub?"](rel_path))?"":self.$read(rel_path),$truthy(source["$nil?"]())?nil:(abs_path=self.$expand_path(rel_path),rel_path=self.$expand_ext(rel_path),asset=self.$processor_for(source,rel_path,abs_path,options.$merge($hash2(["requirable"],{requirable:!0}))),self.$process_requires(rel_path,$rb_plus(asset.$requires(),self.$tree_requires(asset,abs_path)),options),self.$processed()["$<<"](asset)))},$Builder_stub$ques$33.$$arity=2),Opal.def($Builder_extensions$34,"$expand_ext",$Builder_stub$ques$33=function(path){var abs_path=this.$path_reader().$expand(path);return $truthy(abs_path)?$$($nesting,"File").$join($$($nesting,"File").$dirname(path),$$($nesting,"File").$basename(abs_path)):path},$Builder_stub$ques$33.$$arity=1),Opal.def($Builder_extensions$34,"$expand_path",$Builder_stub$ques$33=function(path){var self=this,$ret_or_14=nil;return $truthy(self["$stub?"](path))?nil:($truthy($ret_or_14=self.$path_reader().$expand(path))?$ret_or_14:$$($nesting,"File").$expand_path(path)).$to_s()},$Builder_stub$ques$33.$$arity=1),Opal.def($Builder_extensions$34,"$process_requires",$Builder_stub$ques$33=function(rel_path,requires,options){var $$31,error=nil;try{return $send(requires,"map",[],(($$31=function(r){var self=null==$$31.$$s?this:$$31.$$s;return null==r&&(r=nil),self.$process_require(r,options)}).$$s=this,$$31.$$arity=1,$$31))}catch($err){if(!Opal.rescue($err,[$$($nesting,"MissingRequire")]))throw $err;error=$err;try{return this.$raise(error,"A file required by "+rel_path.$inspect()+" wasn't found.\n"+error.$message(),error.$backtrace())}finally{Opal.pop_exception()}}},$Builder_stub$ques$33.$$arity=3),Opal.def($Builder_extensions$34,"$already_processed",$Builder_stub$ques$33=function(){var self=this,$ret_or_15=nil;return self.already_processed=$truthy($ret_or_15=self.already_processed)?$ret_or_15:$$($nesting,"Set").$new()},$Builder_stub$ques$33.$$arity=0),Opal.def($Builder_extensions$34,"$stub?",$Builder_stub$ques$33=function(path){return this.$stubs()["$include?"](path)},$Builder_stub$ques$33.$$arity=1),Opal.def($Builder_extensions$34,"$extensions",$Builder_extensions$34=function(){return $$$($$$("::","Opal"),"Builder").$extensions()},$Builder_extensions$34.$$arity=0),nil&&"extensions"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["ast/node"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_times(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$to_sym","$freeze","$to_a","$assign_properties","$hash","$class","$eql?","$type","$children","$each","$instance_variable_set","$protected","$private","$==","$nil?","$original_dup","$send","$equal?","$respond_to?","$to_ast","$updated","$+","$*","$fancy_type","$is_a?","$to_sexp","$inspect","$map","$to_sexp_array","$gsub","$to_s"]),function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($Node_fancy_type$18,$Node_deconstruct$17){var $Node_fancy_type$18=$klass($Node_fancy_type$18,null,"Node"),$nesting=[$Node_fancy_type$18].concat($Node_deconstruct$17);return $Node_fancy_type$18.$$prototype.type=$Node_fancy_type$18.$$prototype.children=nil,$Node_fancy_type$18.$attr_reader("type"),$Node_fancy_type$18.$attr_reader("children"),$alias($Node_fancy_type$18,"to_a","children"),$Node_fancy_type$18.$attr_reader("hash"),Opal.def($Node_fancy_type$18,"$initialize",$Node_deconstruct$17=function(type,$a,properties){return null==$a&&($a=[]),null==properties&&(properties=$hash2([],{})),$a=[type.$to_sym(),$a.$to_a().$freeze()],this.type=$a[0],this.children=$a[1],this.$assign_properties(properties),this.hash=[this.type,this.children,this.$class()].$hash(),this.$freeze()},$Node_deconstruct$17.$$arity=-2),Opal.def($Node_fancy_type$18,"$eql?",$Node_deconstruct$17=function(other){var $ret_or_1,self=this,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=self.$class()["$eql?"](other.$class()))?self.type["$eql?"](other.$type()):$ret_or_2)?self.children["$eql?"](other.$children()):$ret_or_1},$Node_deconstruct$17.$$arity=1),Opal.def($Node_fancy_type$18,"$assign_properties",$Node_deconstruct$17=function(properties){var $$4;return $send(properties,"each",[],(($$4=function(name,value){var self=null==$$4.$$s?this:$$4.$$s;return null==name&&(name=nil),null==value&&(value=nil),self.$instance_variable_set("@"+name,value)}).$$s=this,$$4.$$arity=2,$$4)),nil},$Node_deconstruct$17.$$arity=1),$Node_fancy_type$18.$protected("assign_properties"),$alias($Node_fancy_type$18,"original_dup","dup"),$Node_fancy_type$18.$private("original_dup"),Opal.def($Node_fancy_type$18,"$dup",$Node_deconstruct$17=function(){return this},$Node_deconstruct$17.$$arity=0),$alias($Node_fancy_type$18,"clone","dup"),Opal.def($Node_fancy_type$18,"$updated",$Node_deconstruct$17=function(type,children,properties){var new_type,new_children,new_properties,self=this,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil,$ret_or_6=nil,$ret_or_7=nil,copy=nil;return null==type&&(type=nil),null==children&&(children=nil),null==properties&&(properties=nil),new_type=$truthy($ret_or_3=type)?$ret_or_3:self.type,new_children=$truthy($ret_or_4=children)?$ret_or_4:self.children,new_properties=$truthy($ret_or_5=properties)?$ret_or_5:$hash2([],{}),$truthy($truthy($ret_or_6=$truthy($ret_or_7=self.type["$=="](new_type))?self.children["$=="](new_children):$ret_or_7)?properties["$nil?"]():$ret_or_6)?self:((copy=self.$original_dup()).$send("initialize",new_type,new_children,new_properties),copy)},$Node_deconstruct$17.$$arity=-1),Opal.def($Node_fancy_type$18,"$==",$Node_deconstruct$17=function(other){var $ret_or_8;return!!$truthy(this["$equal?"](other))||!!$truthy(other["$respond_to?"]("to_ast"))&&(other=other.$to_ast(),$truthy($ret_or_8=other.$type()["$=="](this.$type()))?other.$children()["$=="](this.$children()):$ret_or_8)},$Node_deconstruct$17.$$arity=1),Opal.def($Node_fancy_type$18,"$concat",$Node_deconstruct$17=function(array){return this.$updated(nil,$rb_plus(this.children,array.$to_a()))},$Node_deconstruct$17.$$arity=1),$alias($Node_fancy_type$18,"+","concat"),Opal.def($Node_fancy_type$18,"$append",$Node_deconstruct$17=function(element){return this.$updated(nil,$rb_plus(this.children,[element]))},$Node_deconstruct$17.$$arity=1),$alias($Node_fancy_type$18,"<<","append"),Opal.def($Node_fancy_type$18,"$to_sexp",$Node_deconstruct$17=function(indent){var $$11,indented,sexp=nil;return null==indent&&(indent=0),indented=$rb_times(" ",indent),sexp=indented+"("+this.$fancy_type(),$send(this.$children(),"each",[],(($$11=function(child){null==$$11.$$s||$$11.$$s;return null==child&&(child=nil),sexp=$truthy(child["$is_a?"]($$($nesting,"Node")))?$rb_plus(sexp,"\n"+child.$to_sexp($rb_plus(indent,1))):$rb_plus(sexp," "+child.$inspect())}).$$s=this,$$11.$$arity=1,$$11)),sexp=$rb_plus(sexp,")")},$Node_deconstruct$17.$$arity=-1),$alias($Node_fancy_type$18,"to_s","to_sexp"),Opal.def($Node_fancy_type$18,"$inspect",$Node_deconstruct$17=function(indent){var $$13,indented,sexp=nil;return null==indent&&(indent=0),indented=$rb_times(" ",indent),sexp=indented+"s(:"+this.type,$send(this.$children(),"each",[],(($$13=function(child){null==$$13.$$s||$$13.$$s;return null==child&&(child=nil),sexp=$truthy(child["$is_a?"]($$($nesting,"Node")))?$rb_plus(sexp,",\n"+child.$inspect($rb_plus(indent,1))):$rb_plus(sexp,", "+child.$inspect())}).$$s=this,$$13.$$arity=1,$$13)),sexp=$rb_plus(sexp,")")},$Node_deconstruct$17.$$arity=-1),Opal.def($Node_fancy_type$18,"$to_ast",$Node_deconstruct$17=function(){return this},$Node_deconstruct$17.$$arity=0),Opal.def($Node_fancy_type$18,"$to_sexp_array",$Node_deconstruct$17=function(){var $$16,children_sexp_arrs=$send(this.$children(),"map",[],(($$16=function(child){null==$$16.$$s||$$16.$$s;return null==child&&(child=nil),$truthy(child["$is_a?"]($$($nesting,"Node")))?child.$to_sexp_array():child}).$$s=this,$$16.$$arity=1,$$16));return[this.$type()].concat(Opal.to_a(children_sexp_arrs))},$Node_deconstruct$17.$$arity=0),Opal.def($Node_fancy_type$18,"$deconstruct",$Node_deconstruct$17=function(){return[this.$type()].concat(Opal.to_a(this.$children()))},$Node_deconstruct$17.$$arity=0),$Node_fancy_type$18.$protected(),Opal.def($Node_fancy_type$18,"$fancy_type",$Node_fancy_type$18=function(){return this.type.$to_s().$gsub("_","-")},$Node_fancy_type$18.$$arity=0),nil&&"fancy_type"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["ast/processor/mixin"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$nil?","$to_ast","$type","$respond_to?","$send","$handler_missing","$map","$to_a","$process"]),function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($base,$nesting){$nesting=[$klass($base,null,"Processor")].concat($nesting);return function($Mixin_handler_missing$4,$Mixin_process_all$2){$Mixin_handler_missing$4=$module($Mixin_handler_missing$4,"Mixin"),[$Mixin_handler_missing$4].concat($Mixin_process_all$2);return Opal.def($Mixin_handler_missing$4,"$process",$Mixin_process_all$2=function(node){var on_handler,new_node=nil;return $truthy(node["$nil?"]())?nil:(on_handler="on_"+(node=node.$to_ast()).$type(),new_node=$truthy(this["$respond_to?"](on_handler))?this.$send(on_handler,node):this.$handler_missing(node),$truthy(new_node)&&(node=new_node),node)},$Mixin_process_all$2.$$arity=1),Opal.def($Mixin_handler_missing$4,"$process_all",$Mixin_process_all$2=function(nodes){var $$3;return $send(nodes.$to_a(),"map",[],(($$3=function(node){var self=null==$$3.$$s?this:$$3.$$s;return null==node&&(node=nil),self.$process(node)}).$$s=this,$$3.$$arity=1,$$3))},$Mixin_process_all$2.$$arity=1),Opal.def($Mixin_handler_missing$4,"$handler_missing",$Mixin_handler_missing$4=function(){return nil},$Mixin_handler_missing$4.$$arity=1),nil&&"handler_missing"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["ast/processor"]=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$include"]),function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function(self,$nesting){self=$klass(self,null,"Processor"),$nesting=[self].concat($nesting);return self.$require("ast/processor/mixin"),self.$include($$($nesting,"Mixin"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["ast/sexp"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module;return Opal.add_stubs(["$new"]),function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($Sexp_s$1,$parent_nesting){var $Sexp_s$1=$module($Sexp_s$1,"Sexp"),$nesting=[$Sexp_s$1].concat($parent_nesting);return Opal.def($Sexp_s$1,"$s",$Sexp_s$1=function(type,$a){var children=Opal.slice.call(arguments,1,arguments.length);return $$($nesting,"Node").$new(type,children)},$Sexp_s$1.$$arity=-2),nil&&"s"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules.ast=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return Opal.add_stubs(["$require"]),function(self,$parent_nesting){self=$module(self,"AST"),[self].concat($parent_nesting);return self.$require("ast/node"),self.$require("ast/processor"),self.$require("ast/sexp")}($nesting[0],$nesting)},Opal.modules["parser/ast/node"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=(Opal.$$,Opal.module),$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$[]","$frozen?","$dup","$node=","$-"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($base,$Node_assign_properties$1,$parent_nesting){$Node_assign_properties$1=$klass($base,$Node_assign_properties$1,"Node"),[$Node_assign_properties$1].concat($parent_nesting);return $Node_assign_properties$1.$attr_reader("location"),$alias($Node_assign_properties$1,"loc","location"),Opal.def($Node_assign_properties$1,"$assign_properties",$Node_assign_properties$1=function(rhs){var location=nil,lhs=nil;return $truthy(location=rhs["$[]"]("location"))?($truthy(location["$frozen?"]())&&(location=location.$dup()),lhs=[this],$send(location,"node=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),this.location=location):nil},$Node_assign_properties$1.$$arity=1),nil&&"assign_properties"}($nesting[0],$$$($$$("::","AST"),"Node"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/ast/node"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=(Opal.$$,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$attr_reader","$[]","$frozen?","$dup","$merge!","$loc","$line","$column"]),self.$require("ast"),self.$require("parser/ast/node"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($base,$Node_column$3,$Node_line$2){var $Node_assign_properties$1,$Node_column$3=$klass($base,$Node_column$3,"Node");[$Node_column$3].concat($Node_line$2);return $Node_column$3.$$prototype.meta=nil,$Node_column$3.$attr_reader("meta"),Opal.def($Node_column$3,"$assign_properties",$Node_assign_properties$1=function(properties){var $zuper_ii,$iter=$Node_assign_properties$1.$$p,self=this,meta=nil,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Node_assign_properties$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy(meta=properties["$[]"]("meta"))?($truthy(meta["$frozen?"]())&&(meta=meta.$dup()),self.meta["$merge!"](meta)):self.meta=$truthy($ret_or_1=self.meta)?$ret_or_1:$hash2([],{}),$send2(self,$find_super(self,"assign_properties",$Node_assign_properties$1,!1,!0),"assign_properties",$zuper,$iter)},$Node_assign_properties$1.$$arity=1),Opal.def($Node_column$3,"$line",$Node_line$2=function(){return $truthy(this.$loc())?this.$loc().$line():nil},$Node_line$2.$$arity=0),Opal.def($Node_column$3,"$column",$Node_column$3=function(){return $truthy(this.$loc())?this.$loc().$column():nil},$Node_column$3.$$arity=0),nil&&"column"}($nesting[0],$$$($$$($$$("::","Parser"),"AST"),"Node"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["racc/parser"]=function(Opal){function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$gvars=Opal.gvars,$send=Opal.send;return Opal.add_stubs(["$[]","$class","$<","$size","$[]=","$-","$__send__","$_racc_setup","$raise","$_racc_init_sysvars","$catch","$!=","$next_token","$racc_read_token","$+","$>=","$==","$_racc_evalact","$!","$>","$push","$racc_shift","$-@","$_racc_do_reduce","$===","$racc_accept","$throw","$on_error","$<=","$pop","$racc_e_pop","$inspect","$racc_next_state","$*","$racc_reduce","$sprintf","$token_to_str","$print","$racc_token2str","$puts","$racc_print_stacks","$empty?","$each","$racc_print_states","$each_index"]),function($base,$nesting){!function($base,$super,$parent_nesting){[$klass($base,$super,"ParseError")].concat($parent_nesting)}(($nesting=[$module($base,"Racc")].concat($nesting))[0],$$($nesting,"StandardError"),$nesting)}($nesting[0],$nesting),$truthy($$$("::","ParseError","skip_raise")?"constant":nil)||Opal.const_set($nesting[0],"ParseError",$$$($$($nesting,"Racc"),"ParseError")),function($base,$nesting){$nesting=[$module($base,"Racc")].concat($nesting);return $truthy($$($nesting,"Racc_No_Extensions","skip_raise")?"constant":nil)||Opal.const_set($nesting[0],"Racc_No_Extensions",!1),function($Parser_token_to_str$31,$Parser_racc_token2str$30){var $Parser_token_to_str$31=$klass($Parser_token_to_str$31,null,"Parser"),$nesting=[$Parser_token_to_str$31].concat($Parser_racc_token2str$30);return $Parser_token_to_str$31.$$prototype.yydebug=$Parser_token_to_str$31.$$prototype.racc_debug_out=$Parser_token_to_str$31.$$prototype.racc_error_status=$Parser_token_to_str$31.$$prototype.racc_t=$Parser_token_to_str$31.$$prototype.racc_vstack=$Parser_token_to_str$31.$$prototype.racc_val=$Parser_token_to_str$31.$$prototype.racc_state=$Parser_token_to_str$31.$$prototype.racc_tstack=nil,Opal.const_set($nesting[0],"Racc_Runtime_Version","1.4.6"),Opal.const_set($nesting[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),Opal.const_set($nesting[0],"Racc_Runtime_Core_Version_R","1.4.6"),Opal.const_set($nesting[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),Opal.const_set($nesting[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),Opal.const_set($nesting[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),Opal.const_set($nesting[0],"Racc_Runtime_Core_Version",$$($nesting,"Racc_Runtime_Core_Version_R")),Opal.const_set($nesting[0],"Racc_Runtime_Core_Revision",$$($nesting,"Racc_Runtime_Core_Revision_R")),Opal.const_set($nesting[0],"Racc_Runtime_Type","ruby"),Opal.defs($$($nesting,"Parser"),"$racc_runtime_type",$Parser_racc_token2str$30=function(){return $$($nesting,"Racc_Runtime_Type")},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_setup",$Parser_racc_token2str$30=function(){var $b,$writer,self=this,$ret_or_1=nil,arg=nil;return null==$gvars.stderr&&($gvars.stderr=nil),$truthy($$$(self.$class(),"Racc_debug_parser"))||(self.yydebug=!1),$truthy(null!=($b=self.yydebug)&&$b!==nil?"instance-variable":nil)||(self.yydebug=!1),$truthy(self.yydebug)&&($truthy(null!=($b=self.racc_debug_out)&&$b!==nil?"instance-variable":nil)||(self.racc_debug_out=$gvars.stderr),self.racc_debug_out=$truthy($ret_or_1=self.racc_debug_out)?$ret_or_1:$gvars.stderr),arg=$$$(self.$class(),"Racc_arg"),$truthy($rb_lt(arg.$size(),14))&&($writer=[13,!0],$send(arg,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),arg},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_init_sysvars",$Parser_racc_token2str$30=function(){return this.racc_state=[0],this.racc_tstack=[],this.racc_vstack=[],this.racc_t=nil,this.racc_val=nil,this.racc_read_next=!0,this.racc_user_yyerror=!1,this.racc_error_status=0},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$do_parse",$Parser_racc_token2str$30=function(){return this.$__send__($$($nesting,"Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$next_token",$Parser_racc_token2str$30=function(){return this.$raise($$($nesting,"NotImplementedError"),this.$class()+"#next_token is not defined")},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_do_parse_rb",$Parser_racc_token2str$30=function(arg){var $$7,tok,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3];null==$a[4]||$a[4];return null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]||$a[11],null==$a[12]||$a[12],null==$a[13]||$a[13],this.$_racc_init_sysvars(),act=i=nil,$send(this,"catch",["racc_end_parse"],(($$7=function(){var $d,self=null==$$7.$$s?this:$$7.$$s,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil;for(null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==self.racc_t&&(self.racc_t=nil),null==self.yydebug&&(self.yydebug=nil),null==self.racc_val&&(self.racc_val=nil);$truthy(!0);)for($truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))?($truthy(self.racc_read_next)&&$truthy(self.racc_t["$!="](0))&&($d=self.$next_token(),$d=Opal.to_ary($d),tok=null==$d[0]?nil:$d[0],self.racc_val=null==$d[1]?nil:$d[1],$truthy(tok)?self.racc_t=$truthy($ret_or_2=token_table["$[]"](tok))?$ret_or_2:1:self.racc_t=0,$truthy(self.yydebug)&&self.$racc_read_token(self.racc_t,tok,self.racc_val),self.racc_read_next=!1),i=$rb_plus(i,self.racc_t),$truthy($truthy($ret_or_3=$truthy($ret_or_4=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_4)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_3)||(act=action_default["$[]"](self.racc_state["$[]"](-1)))):act=action_default["$[]"](self.racc_state["$[]"](-1));$truthy(act=self.$_racc_evalact(act,arg)););}).$$s=this,$$7.$$arity=0,$$7))},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$yyparse",$Parser_racc_token2str$30=function(recv,mid){return this.$__send__($$($nesting,"Racc_YY_Parse_Method"),recv,mid,this.$_racc_setup(),!0)},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$_racc_yyparse_rb",$Parser_racc_token2str$30=function(recv,mid,arg){var $$10,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3];null==$a[4]||$a[4];return null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]||$a[11],null==$a[12]||$a[12],null==$a[13]||$a[13],this.$_racc_init_sysvars(),i=act=nil,$send(this,"catch",["racc_end_parse"],(($$10=function(){var $$11,self=null==$$10.$$s?this:$$10.$$s;for(null==self.racc_state&&(self.racc_state=nil);!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)));)for(;$truthy(act=self.$_racc_evalact(action_default["$[]"](self.racc_state["$[]"](-1)),arg)););return $send(recv,"__send__",[mid],(($$11=function(tok,val){var self=null==$$11.$$s?this:$$11.$$s,$ret_or_5=nil,$ret_or_6=nil,$ret_or_7=nil,$ret_or_8=nil,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil;for(null==self.racc_t&&(self.racc_t=nil),null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==tok&&(tok=nil),null==val&&(val=nil),$truthy(tok)?self.racc_t=$truthy($ret_or_5=token_table["$[]"](tok))?$ret_or_5:1:self.racc_t=0,self.racc_val=val,self.racc_read_next=!1,i=$rb_plus(i,self.racc_t),$truthy($truthy($ret_or_6=$truthy($ret_or_7=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_7)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_6)||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););for(;$truthy($truthy($ret_or_8=$truthy($ret_or_9=(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))["$!"]())?$ret_or_9:self.racc_read_next["$!"]())?$ret_or_8:self.racc_t["$=="](0));)for($truthy($truthy($ret_or_10=$truthy($ret_or_11=$truthy($ret_or_12=$truthy($ret_or_13=i)?i=$rb_plus(i,self.racc_t):$ret_or_13)?$rb_ge(i,0):$ret_or_12)?act=action_table["$[]"](i):$ret_or_11)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_10)||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););}).$$s=self,$$11.$$arity=2,$$11))}).$$s=this,$$10.$$arity=0,$$10))},$Parser_racc_token2str$30.$$arity=4),Opal.def($Parser_token_to_str$31,"$_racc_evalact",$Parser_racc_token2str$30=function(act,arg){var $$13,shift_n,code,i,lhs,rhs,self=this,action_table=nil,action_check=nil,action_pointer=nil,reduce_n=nil,$ret_or_14=nil,$ret_or_15=nil,$case=nil,$ret_or_16=nil,$ret_or_17=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_pointer=(null==$a[2]||$a[2],null==$a[3]?nil:$a[3]);if(null==$a[4]||$a[4],null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],null==$a[10]||$a[10],shift_n=null==$a[11]?nil:$a[11],reduce_n=null==$a[12]?nil:$a[12],null==$a[13]||$a[13],null==$a[14]||$a[14],$truthy($truthy($ret_or_14=$rb_gt(act,0))?$rb_lt(act,shift_n):$ret_or_14))$truthy($rb_gt(self.racc_error_status,0))&&(self.racc_t["$=="](1)||(self.racc_error_status=$rb_minus(self.racc_error_status,1))),self.racc_vstack.$push(self.racc_val),self.racc_state.$push(act),self.racc_read_next=!0,$truthy(self.yydebug)&&(self.racc_tstack.$push(self.racc_t),self.$racc_shift(self.racc_t,self.racc_tstack,self.racc_vstack));else if($truthy($truthy($ret_or_15=$rb_lt(act,0))?$rb_gt(act,reduce_n["$-@"]()):$ret_or_15)){if(code=$send(self,"catch",["racc_jump"],(($$13=function(){var self=null==$$13.$$s?this:$$13.$$s;return null==self.racc_state&&(self.racc_state=nil),self.racc_state.$push(self.$_racc_do_reduce(arg,act)),!1}).$$s=self,$$13.$$arity=0,$$13)),$truthy(code)){if(1["$==="]($case=code))return self.racc_user_yyerror=!0,reduce_n["$-@"]();if(2["$==="]($case))return shift_n;self.$raise("[Racc Bug] unknown jump code")}}else if(act["$=="](shift_n))$truthy(self.yydebug)&&self.$racc_accept(),self.$throw("racc_end_parse",self.racc_vstack["$[]"](0));else{if(act["$=="](reduce_n["$-@"]())){for($case=self.racc_error_status,0["$==="]($case)?$truthy(arg["$[]"](21))||self.$on_error(self.racc_t,self.racc_val,self.racc_vstack):3["$==="]($case)&&(self.racc_t["$=="](0)&&self.$throw("racc_end_parse",nil),self.racc_read_next=!0),self.racc_user_yyerror=!1,self.racc_error_status=3;$truthy(!0)&&(!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))||(i=$rb_plus(i,1),!$truthy($truthy($ret_or_16=$truthy($ret_or_17=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_17)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_16)));)$truthy((lhs=self.racc_state.$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))&&self.$throw("racc_end_parse",nil),self.racc_state.$pop(),self.racc_vstack.$pop(),$truthy(self.yydebug)&&(self.racc_tstack.$pop(),self.$racc_e_pop(self.racc_state,self.racc_tstack,self.racc_vstack));return act}self.$raise("[Racc Bug] unknown action "+act.$inspect())}return $truthy(self.yydebug)&&self.$racc_next_state(self.racc_state["$[]"](-1),self.racc_state),nil},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$_racc_do_reduce",$Parser_racc_token2str$30=function(rhs,lhs){var nt_base,use_result,reduce_to,method_id,void_array,k1,goto_table=nil,goto_check=nil,goto_default=nil,goto_pointer=nil,reduce_table=nil,state=nil,vstack=nil,tstack=nil,i=nil,len=nil,tmp_t=nil,tmp_v=nil,$writer=nil,$ret_or_18=nil,$ret_or_19=nil,curstate=nil,rhs=rhs,rhs=Opal.to_ary(rhs);null==rhs[0]||rhs[0];return null==rhs[1]||rhs[1],null==rhs[2]||rhs[2],null==rhs[3]||rhs[3],goto_table=null==rhs[4]?nil:rhs[4],goto_check=null==rhs[5]?nil:rhs[5],goto_default=null==rhs[6]?nil:rhs[6],goto_pointer=null==rhs[7]?nil:rhs[7],nt_base=null==rhs[8]?nil:rhs[8],reduce_table=null==rhs[9]?nil:rhs[9],null==rhs[10]||rhs[10],null==rhs[11]||rhs[11],null==rhs[12]||rhs[12],use_result=null==rhs[13]?nil:rhs[13],state=this.racc_state,vstack=this.racc_vstack,tstack=this.racc_tstack,rhs=-3,i="number"==typeof(lhs=lhs)&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs),len=reduce_table["$[]"](i),reduce_to=reduce_table["$[]"]($rb_plus(i,1)),method_id=reduce_table["$[]"]($rb_plus(i,2)),void_array=[],$truthy(this.yydebug)&&(tmp_t=tstack["$[]"](len["$-@"](),len)),tmp_v=vstack["$[]"](len["$-@"](),len),$truthy(this.yydebug)&&($writer=[len["$-@"](),len,void_array],$send(tstack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[len["$-@"](),len,void_array],$send(vstack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[len["$-@"](),len,void_array],$send(state,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(use_result)?vstack.$push(this.$__send__(method_id,tmp_v,vstack,tmp_v["$[]"](0))):vstack.$push(this.$__send__(method_id,tmp_v,vstack)),tstack.$push(reduce_to),$truthy(this.yydebug)&&this.$racc_reduce(tmp_t,reduce_to,tstack,vstack),k1=$rb_minus(reduce_to,nt_base),$truthy(i=goto_pointer["$[]"](k1))&&(i=$rb_plus(i,state["$[]"](-1)),$truthy($truthy($ret_or_18=$truthy($ret_or_19=$rb_ge(i,0))?curstate=goto_table["$[]"](i):$ret_or_19)?goto_check["$[]"](i)["$=="](k1):$ret_or_18))?curstate:goto_default["$[]"](k1)},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$on_error",$Parser_racc_token2str$30=function(t,val){var self=this,$ret_or_20=nil;return self.$raise($$($nesting,"ParseError"),self.$sprintf("\nparse error on value %s (%s)",val.$inspect(),$truthy($ret_or_20=self.$token_to_str(t))?$ret_or_20:"?"))},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$yyerror",$Parser_racc_token2str$30=function(){return this.$throw("racc_jump",1)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$yyaccept",$Parser_racc_token2str$30=function(){return this.$throw("racc_jump",2)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$yyerrok",$Parser_racc_token2str$30=function(){return this.racc_error_status=0},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$racc_read_token",$Parser_racc_token2str$30=function(t,tok,val){return this.racc_debug_out.$print("read "),this.racc_debug_out.$print(tok.$inspect(),"(",this.$racc_token2str(t),") "),this.racc_debug_out.$puts(val.$inspect()),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_shift",$Parser_racc_token2str$30=function(tok,tstack,vstack){return this.racc_debug_out.$puts("shift "+this.$racc_token2str(tok)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_reduce",$Parser_racc_token2str$30=function(toks,sim,tstack,vstack){var $$22,out=nil;return(out=this.racc_debug_out).$print("reduce "),$truthy(toks["$empty?"]())?out.$print(" "):$send(toks,"each",[],(($$22=function(t){var self=null==$$22.$$s?this:$$22.$$s;return null==t&&(t=nil),out.$print(" ",self.$racc_token2str(t))}).$$s=this,$$22.$$arity=1,$$22)),out.$puts(" --\x3e "+this.$racc_token2str(sim)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=4),Opal.def($Parser_token_to_str$31,"$racc_accept",$Parser_racc_token2str$30=function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$racc_e_pop",$Parser_racc_token2str$30=function(state,tstack,vstack){return this.racc_debug_out.$puts("error recovering mode: pop token"),this.$racc_print_states(state),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_next_state",$Parser_racc_token2str$30=function(curstate,state){return this.racc_debug_out.$puts("goto "+curstate),this.$racc_print_states(state),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$racc_print_stacks",$Parser_racc_token2str$30=function(t,v){var $$27,out=nil;return(out=this.racc_debug_out).$print(" ["),$send(t,"each_index",[],(($$27=function(i){var self=null==$$27.$$s?this:$$27.$$s;return null==i&&(i=nil),out.$print(" (",self.$racc_token2str(t["$[]"](i))," ",v["$[]"](i).$inspect(),")")}).$$s=this,$$27.$$arity=1,$$27)),out.$puts(" ]")},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$racc_print_states",$Parser_racc_token2str$30=function(s){var $$29,out=nil;return(out=this.racc_debug_out).$print(" ["),$send(s,"each",[],(($$29=function(st){null==$$29.$$s||$$29.$$s;return null==st&&(st=nil),out.$print(" ",st)}).$$s=this,$$29.$$arity=1,$$29)),out.$puts(" ]")},$Parser_racc_token2str$30.$$arity=1),Opal.def($Parser_token_to_str$31,"$racc_token2str",$Parser_racc_token2str$30=function(tok){var $ret_or_21;return $truthy($ret_or_21=$$$(this.$class(),"Racc_token_to_s_table")["$[]"](tok))?$ret_or_21:this.$raise("[Racc Bug] can't convert token "+tok+" to string")},$Parser_racc_token2str$30.$$arity=1),Opal.def($Parser_token_to_str$31,"$token_to_str",$Parser_token_to_str$31=function(t){return $$$(this.$class(),"Racc_token_to_s_table")["$[]"](t)},$Parser_token_to_str$31.$$arity=1),nil&&"token_to_str"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/version"]=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return Opal.const_set($nesting[0],"VERSION","3.1.1.0")}($nesting[0],$nesting)},Opal.modules["racc/parser"]=function(Opal){function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$gvars=Opal.gvars,$send=Opal.send;return Opal.add_stubs(["$[]","$class","$<","$size","$[]=","$-","$__send__","$_racc_setup","$raise","$_racc_init_sysvars","$catch","$!=","$next_token","$racc_read_token","$+","$>=","$==","$_racc_evalact","$!","$>","$push","$racc_shift","$-@","$_racc_do_reduce","$===","$racc_accept","$throw","$on_error","$<=","$pop","$racc_e_pop","$inspect","$racc_next_state","$*","$racc_reduce","$sprintf","$token_to_str","$print","$racc_token2str","$puts","$racc_print_stacks","$empty?","$each","$racc_print_states","$each_index"]),function($base,$nesting){!function($base,$super,$parent_nesting){[$klass($base,$super,"ParseError")].concat($parent_nesting)}(($nesting=[$module($base,"Racc")].concat($nesting))[0],$$($nesting,"StandardError"),$nesting)}($nesting[0],$nesting),$truthy($$$("::","ParseError","skip_raise")?"constant":nil)||Opal.const_set($nesting[0],"ParseError",$$$($$($nesting,"Racc"),"ParseError")),function($base,$nesting){$nesting=[$module($base,"Racc")].concat($nesting);return $truthy($$($nesting,"Racc_No_Extensions","skip_raise")?"constant":nil)||Opal.const_set($nesting[0],"Racc_No_Extensions",!1),function($Parser_token_to_str$31,$Parser_racc_token2str$30){var $Parser_token_to_str$31=$klass($Parser_token_to_str$31,null,"Parser"),$nesting=[$Parser_token_to_str$31].concat($Parser_racc_token2str$30);return $Parser_token_to_str$31.$$prototype.yydebug=$Parser_token_to_str$31.$$prototype.racc_debug_out=$Parser_token_to_str$31.$$prototype.racc_error_status=$Parser_token_to_str$31.$$prototype.racc_t=$Parser_token_to_str$31.$$prototype.racc_vstack=$Parser_token_to_str$31.$$prototype.racc_val=$Parser_token_to_str$31.$$prototype.racc_state=$Parser_token_to_str$31.$$prototype.racc_tstack=nil,Opal.const_set($nesting[0],"Racc_Runtime_Version","1.4.6"),Opal.const_set($nesting[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),Opal.const_set($nesting[0],"Racc_Runtime_Core_Version_R","1.4.6"),Opal.const_set($nesting[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),Opal.const_set($nesting[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),Opal.const_set($nesting[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),Opal.const_set($nesting[0],"Racc_Runtime_Core_Version",$$($nesting,"Racc_Runtime_Core_Version_R")),Opal.const_set($nesting[0],"Racc_Runtime_Core_Revision",$$($nesting,"Racc_Runtime_Core_Revision_R")),Opal.const_set($nesting[0],"Racc_Runtime_Type","ruby"),Opal.defs($$($nesting,"Parser"),"$racc_runtime_type",$Parser_racc_token2str$30=function(){return $$($nesting,"Racc_Runtime_Type")},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_setup",$Parser_racc_token2str$30=function(){var $b,$writer,self=this,$ret_or_1=nil,arg=nil;return null==$gvars.stderr&&($gvars.stderr=nil),$truthy($$$(self.$class(),"Racc_debug_parser"))||(self.yydebug=!1),$truthy(null!=($b=self.yydebug)&&$b!==nil?"instance-variable":nil)||(self.yydebug=!1),$truthy(self.yydebug)&&($truthy(null!=($b=self.racc_debug_out)&&$b!==nil?"instance-variable":nil)||(self.racc_debug_out=$gvars.stderr),self.racc_debug_out=$truthy($ret_or_1=self.racc_debug_out)?$ret_or_1:$gvars.stderr),arg=$$$(self.$class(),"Racc_arg"),$truthy($rb_lt(arg.$size(),14))&&($writer=[13,!0],$send(arg,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),arg},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_init_sysvars",$Parser_racc_token2str$30=function(){return this.racc_state=[0],this.racc_tstack=[],this.racc_vstack=[],this.racc_t=nil,this.racc_val=nil,this.racc_read_next=!0,this.racc_user_yyerror=!1,this.racc_error_status=0},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$do_parse",$Parser_racc_token2str$30=function(){return this.$__send__($$($nesting,"Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$next_token",$Parser_racc_token2str$30=function(){return this.$raise($$($nesting,"NotImplementedError"),this.$class()+"#next_token is not defined")},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_do_parse_rb",$Parser_racc_token2str$30=function(arg){var $$7,tok,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3];null==$a[4]||$a[4];return null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]||$a[11],null==$a[12]||$a[12],null==$a[13]||$a[13],this.$_racc_init_sysvars(),act=i=nil,$send(this,"catch",["racc_end_parse"],(($$7=function(){var $d,self=null==$$7.$$s?this:$$7.$$s,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil;for(null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==self.racc_t&&(self.racc_t=nil),null==self.yydebug&&(self.yydebug=nil),null==self.racc_val&&(self.racc_val=nil);$truthy(!0);)for($truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))?($truthy(self.racc_read_next)&&$truthy(self.racc_t["$!="](0))&&($d=self.$next_token(),$d=Opal.to_ary($d),tok=null==$d[0]?nil:$d[0],self.racc_val=null==$d[1]?nil:$d[1],$truthy(tok)?self.racc_t=$truthy($ret_or_2=token_table["$[]"](tok))?$ret_or_2:1:self.racc_t=0,$truthy(self.yydebug)&&self.$racc_read_token(self.racc_t,tok,self.racc_val),self.racc_read_next=!1),i=$rb_plus(i,self.racc_t),$truthy($truthy($ret_or_3=$truthy($ret_or_4=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_4)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_3)||(act=action_default["$[]"](self.racc_state["$[]"](-1)))):act=action_default["$[]"](self.racc_state["$[]"](-1));$truthy(act=self.$_racc_evalact(act,arg)););}).$$s=this,$$7.$$arity=0,$$7))},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$yyparse",$Parser_racc_token2str$30=function(recv,mid){return this.$__send__($$($nesting,"Racc_YY_Parse_Method"),recv,mid,this.$_racc_setup(),!0)},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$_racc_yyparse_rb",$Parser_racc_token2str$30=function(recv,mid,arg){var $$10,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3];null==$a[4]||$a[4];return null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]||$a[11],null==$a[12]||$a[12],null==$a[13]||$a[13],this.$_racc_init_sysvars(),i=act=nil,$send(this,"catch",["racc_end_parse"],(($$10=function(){var $$11,self=null==$$10.$$s?this:$$10.$$s;for(null==self.racc_state&&(self.racc_state=nil);!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)));)for(;$truthy(act=self.$_racc_evalact(action_default["$[]"](self.racc_state["$[]"](-1)),arg)););return $send(recv,"__send__",[mid],(($$11=function(tok,val){var self=null==$$11.$$s?this:$$11.$$s,$ret_or_5=nil,$ret_or_6=nil,$ret_or_7=nil,$ret_or_8=nil,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil;for(null==self.racc_t&&(self.racc_t=nil),null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==tok&&(tok=nil),null==val&&(val=nil),$truthy(tok)?self.racc_t=$truthy($ret_or_5=token_table["$[]"](tok))?$ret_or_5:1:self.racc_t=0,self.racc_val=val,self.racc_read_next=!1,i=$rb_plus(i,self.racc_t),$truthy($truthy($ret_or_6=$truthy($ret_or_7=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_7)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_6)||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););for(;$truthy($truthy($ret_or_8=$truthy($ret_or_9=(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))["$!"]())?$ret_or_9:self.racc_read_next["$!"]())?$ret_or_8:self.racc_t["$=="](0));)for($truthy($truthy($ret_or_10=$truthy($ret_or_11=$truthy($ret_or_12=$truthy($ret_or_13=i)?i=$rb_plus(i,self.racc_t):$ret_or_13)?$rb_ge(i,0):$ret_or_12)?act=action_table["$[]"](i):$ret_or_11)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_10)||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););}).$$s=self,$$11.$$arity=2,$$11))}).$$s=this,$$10.$$arity=0,$$10))},$Parser_racc_token2str$30.$$arity=4),Opal.def($Parser_token_to_str$31,"$_racc_evalact",$Parser_racc_token2str$30=function(act,arg){var $$13,shift_n,code,i,lhs,rhs,self=this,action_table=nil,action_check=nil,action_pointer=nil,reduce_n=nil,$ret_or_14=nil,$ret_or_15=nil,$case=nil,$ret_or_16=nil,$ret_or_17=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_pointer=(null==$a[2]||$a[2],null==$a[3]?nil:$a[3]);if(null==$a[4]||$a[4],null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],null==$a[10]||$a[10],shift_n=null==$a[11]?nil:$a[11],reduce_n=null==$a[12]?nil:$a[12],null==$a[13]||$a[13],null==$a[14]||$a[14],$truthy($truthy($ret_or_14=$rb_gt(act,0))?$rb_lt(act,shift_n):$ret_or_14))$truthy($rb_gt(self.racc_error_status,0))&&(self.racc_t["$=="](1)||(self.racc_error_status=$rb_minus(self.racc_error_status,1))),self.racc_vstack.$push(self.racc_val),self.racc_state.$push(act),self.racc_read_next=!0,$truthy(self.yydebug)&&(self.racc_tstack.$push(self.racc_t),self.$racc_shift(self.racc_t,self.racc_tstack,self.racc_vstack));else if($truthy($truthy($ret_or_15=$rb_lt(act,0))?$rb_gt(act,reduce_n["$-@"]()):$ret_or_15)){if(code=$send(self,"catch",["racc_jump"],(($$13=function(){var self=null==$$13.$$s?this:$$13.$$s;return null==self.racc_state&&(self.racc_state=nil),self.racc_state.$push(self.$_racc_do_reduce(arg,act)),!1}).$$s=self,$$13.$$arity=0,$$13)),$truthy(code)){if(1["$==="]($case=code))return self.racc_user_yyerror=!0,reduce_n["$-@"]();if(2["$==="]($case))return shift_n;self.$raise("[Racc Bug] unknown jump code")}}else if(act["$=="](shift_n))$truthy(self.yydebug)&&self.$racc_accept(),self.$throw("racc_end_parse",self.racc_vstack["$[]"](0));else{if(act["$=="](reduce_n["$-@"]())){for($case=self.racc_error_status,0["$==="]($case)?$truthy(arg["$[]"](21))||self.$on_error(self.racc_t,self.racc_val,self.racc_vstack):3["$==="]($case)&&(self.racc_t["$=="](0)&&self.$throw("racc_end_parse",nil),self.racc_read_next=!0),self.racc_user_yyerror=!1,self.racc_error_status=3;$truthy(!0)&&(!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))||(i=$rb_plus(i,1),!$truthy($truthy($ret_or_16=$truthy($ret_or_17=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_17)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_16)));)$truthy((lhs=self.racc_state.$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))&&self.$throw("racc_end_parse",nil),self.racc_state.$pop(),self.racc_vstack.$pop(),$truthy(self.yydebug)&&(self.racc_tstack.$pop(),self.$racc_e_pop(self.racc_state,self.racc_tstack,self.racc_vstack));return act}self.$raise("[Racc Bug] unknown action "+act.$inspect())}return $truthy(self.yydebug)&&self.$racc_next_state(self.racc_state["$[]"](-1),self.racc_state),nil},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$_racc_do_reduce",$Parser_racc_token2str$30=function(rhs,lhs){var nt_base,use_result,reduce_to,method_id,void_array,k1,goto_table=nil,goto_check=nil,goto_default=nil,goto_pointer=nil,reduce_table=nil,state=nil,vstack=nil,tstack=nil,i=nil,len=nil,tmp_t=nil,tmp_v=nil,$writer=nil,$ret_or_18=nil,$ret_or_19=nil,curstate=nil,rhs=rhs,rhs=Opal.to_ary(rhs);null==rhs[0]||rhs[0];return null==rhs[1]||rhs[1],null==rhs[2]||rhs[2],null==rhs[3]||rhs[3],goto_table=null==rhs[4]?nil:rhs[4],goto_check=null==rhs[5]?nil:rhs[5],goto_default=null==rhs[6]?nil:rhs[6],goto_pointer=null==rhs[7]?nil:rhs[7],nt_base=null==rhs[8]?nil:rhs[8],reduce_table=null==rhs[9]?nil:rhs[9],null==rhs[10]||rhs[10],null==rhs[11]||rhs[11],null==rhs[12]||rhs[12],use_result=null==rhs[13]?nil:rhs[13],state=this.racc_state,vstack=this.racc_vstack,tstack=this.racc_tstack,rhs=-3,i="number"==typeof(lhs=lhs)&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs),len=reduce_table["$[]"](i),reduce_to=reduce_table["$[]"]($rb_plus(i,1)),method_id=reduce_table["$[]"]($rb_plus(i,2)),void_array=[],$truthy(this.yydebug)&&(tmp_t=tstack["$[]"](len["$-@"](),len)),tmp_v=vstack["$[]"](len["$-@"](),len),$truthy(this.yydebug)&&($writer=[len["$-@"](),len,void_array],$send(tstack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[len["$-@"](),len,void_array],$send(vstack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[len["$-@"](),len,void_array],$send(state,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(use_result)?vstack.$push(this.$__send__(method_id,tmp_v,vstack,tmp_v["$[]"](0))):vstack.$push(this.$__send__(method_id,tmp_v,vstack)),tstack.$push(reduce_to),$truthy(this.yydebug)&&this.$racc_reduce(tmp_t,reduce_to,tstack,vstack),k1=$rb_minus(reduce_to,nt_base),$truthy(i=goto_pointer["$[]"](k1))&&(i=$rb_plus(i,state["$[]"](-1)),$truthy($truthy($ret_or_18=$truthy($ret_or_19=$rb_ge(i,0))?curstate=goto_table["$[]"](i):$ret_or_19)?goto_check["$[]"](i)["$=="](k1):$ret_or_18))?curstate:goto_default["$[]"](k1)},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$on_error",$Parser_racc_token2str$30=function(t,val){var self=this,$ret_or_20=nil;return self.$raise($$($nesting,"ParseError"),self.$sprintf("\nparse error on value %s (%s)",val.$inspect(),$truthy($ret_or_20=self.$token_to_str(t))?$ret_or_20:"?"))},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$yyerror",$Parser_racc_token2str$30=function(){return this.$throw("racc_jump",1)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$yyaccept",$Parser_racc_token2str$30=function(){return this.$throw("racc_jump",2)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$yyerrok",$Parser_racc_token2str$30=function(){return this.racc_error_status=0},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$racc_read_token",$Parser_racc_token2str$30=function(t,tok,val){return this.racc_debug_out.$print("read "),this.racc_debug_out.$print(tok.$inspect(),"(",this.$racc_token2str(t),") "),this.racc_debug_out.$puts(val.$inspect()),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_shift",$Parser_racc_token2str$30=function(tok,tstack,vstack){return this.racc_debug_out.$puts("shift "+this.$racc_token2str(tok)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_reduce",$Parser_racc_token2str$30=function(toks,sim,tstack,vstack){var $$22,out=nil;return(out=this.racc_debug_out).$print("reduce "),$truthy(toks["$empty?"]())?out.$print(" "):$send(toks,"each",[],(($$22=function(t){var self=null==$$22.$$s?this:$$22.$$s;return null==t&&(t=nil),out.$print(" ",self.$racc_token2str(t))}).$$s=this,$$22.$$arity=1,$$22)),out.$puts(" --\x3e "+this.$racc_token2str(sim)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=4),Opal.def($Parser_token_to_str$31,"$racc_accept",$Parser_racc_token2str$30=function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$racc_e_pop",$Parser_racc_token2str$30=function(state,tstack,vstack){return this.racc_debug_out.$puts("error recovering mode: pop token"),this.$racc_print_states(state),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_next_state",$Parser_racc_token2str$30=function(curstate,state){return this.racc_debug_out.$puts("goto "+curstate),this.$racc_print_states(state),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$racc_print_stacks",$Parser_racc_token2str$30=function(t,v){var $$27,out=nil;return(out=this.racc_debug_out).$print(" ["),$send(t,"each_index",[],(($$27=function(i){var self=null==$$27.$$s?this:$$27.$$s;return null==i&&(i=nil),out.$print(" (",self.$racc_token2str(t["$[]"](i))," ",v["$[]"](i).$inspect(),")")}).$$s=this,$$27.$$arity=1,$$27)),out.$puts(" ]")},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$racc_print_states",$Parser_racc_token2str$30=function(s){var $$29,out=nil;return(out=this.racc_debug_out).$print(" ["),$send(s,"each",[],(($$29=function(st){null==$$29.$$s||$$29.$$s;return null==st&&(st=nil),out.$print(" ",st)}).$$s=this,$$29.$$arity=1,$$29)),out.$puts(" ]")},$Parser_racc_token2str$30.$$arity=1),Opal.def($Parser_token_to_str$31,"$racc_token2str",$Parser_racc_token2str$30=function(tok){var $ret_or_21;return $truthy($ret_or_21=$$$(this.$class(),"Racc_token_to_s_table")["$[]"](tok))?$ret_or_21:this.$raise("[Racc Bug] can't convert token "+tok+" to string")},$Parser_racc_token2str$30.$$arity=1),Opal.def($Parser_token_to_str$31,"$token_to_str",$Parser_token_to_str$31=function(t){return $$$(this.$class(),"Racc_token_to_s_table")["$[]"](t)},$Parser_token_to_str$31.$$arity=1),nil&&"token_to_str"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/messages"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$freeze","$[]","$===","$empty?","$format"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return Opal.const_set($nesting[0],"MESSAGES",$hash2(["unicode_point_too_large","invalid_escape","incomplete_escape","invalid_hex_escape","invalid_unicode_escape","unterminated_unicode","escape_eof","string_eof","regexp_options","cvar_name","ivar_name","trailing_in_number","empty_numeric","invalid_octal","no_dot_digit_literal","bare_backslash","unexpected","embedded_document","heredoc_id_has_newline","heredoc_id_ends_with_nl","unterminated_heredoc_id","invalid_escape_use","ambiguous_literal","ambiguous_regexp","ambiguous_prefix","triple_dot_at_eol","nth_ref_alias","begin_in_method","backref_assignment","invalid_assignment","module_name_const","unexpected_token","argument_const","argument_ivar","argument_gvar","argument_cvar","duplicate_argument","empty_symbol","odd_hash","singleton_literal","dynamic_const","const_reassignment","module_in_def","class_in_def","unexpected_percent_str","block_and_blockarg","masgn_as_condition","block_given_to_yield","invalid_regexp","invalid_return","csend_in_lhs_of_masgn","cant_assign_to_numparam","reserved_for_numparam","ordinary_param_defined","numparam_used_in_outer_scope","circular_argument_reference","pm_interp_in_var_name","lvar_name","undefined_lvar","duplicate_variable_name","duplicate_pattern_key","endless_setter","invalid_id_to_get","forward_arg_after_restarg","no_anonymous_blockarg","useless_else","duplicate_hash_key","invalid_encoding","invalid_action","clobbered","different_replacements","swallowed_insertions","swallowed_insertions_conflict","crossing_deletions","crossing_deletions_conflict","crossing_insertions","crossing_insertions_conflict"],{unicode_point_too_large:"invalid Unicode codepoint (too large)",invalid_escape:"invalid escape character syntax",incomplete_escape:"incomplete character syntax",invalid_hex_escape:"invalid hex escape",invalid_unicode_escape:"invalid Unicode escape",unterminated_unicode:"unterminated Unicode escape",escape_eof:"escape sequence meets end of file",string_eof:"unterminated string meets end of file",regexp_options:"unknown regexp options: %{options}",cvar_name:"`%{name}' is not allowed as a class variable name",ivar_name:"`%{name}' is not allowed as an instance variable name",trailing_in_number:"trailing `%{character}' in number",empty_numeric:"numeric literal without digits",invalid_octal:"invalid octal digit",no_dot_digit_literal:"no . floating literal anymore; put 0 before dot",bare_backslash:"bare backslash only allowed before newline",unexpected:"unexpected `%{character}'",embedded_document:"embedded document meets end of file (and they embark on a romantic journey)",heredoc_id_has_newline:"here document identifier across newlines, never match",heredoc_id_ends_with_nl:"here document identifier ends with a newline",unterminated_heredoc_id:"unterminated heredoc id",invalid_escape_use:"invalid character syntax; use ?%{escape}",ambiguous_literal:"ambiguous first argument; put parentheses or a space even after the operator",ambiguous_regexp:"ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator",ambiguous_prefix:"`%{prefix}' interpreted as argument prefix",triple_dot_at_eol:"... at EOL, should be parenthesized",nth_ref_alias:"cannot define an alias for a back-reference variable",begin_in_method:"BEGIN in method",backref_assignment:"cannot assign to a back-reference variable",invalid_assignment:"cannot assign to a keyword",module_name_const:"class or module name must be a constant literal",unexpected_token:"unexpected token %{token}",argument_const:"formal argument cannot be a constant",argument_ivar:"formal argument cannot be an instance variable",argument_gvar:"formal argument cannot be a global variable",argument_cvar:"formal argument cannot be a class variable",duplicate_argument:"duplicate argument name",empty_symbol:"empty symbol literal",odd_hash:"odd number of entries for a hash",singleton_literal:"cannot define a singleton method for a literal",dynamic_const:"dynamic constant assignment",const_reassignment:"constant re-assignment",module_in_def:"module definition in method body",class_in_def:"class definition in method body",unexpected_percent_str:"%{type}: unknown type of percent-literal",block_and_blockarg:"both block argument and literal block are passed",masgn_as_condition:"multiple assignment in conditional context",block_given_to_yield:"block given to yield",invalid_regexp:"%{message}",invalid_return:"Invalid return in class/module body",csend_in_lhs_of_masgn:"&. inside multiple assignment destination",cant_assign_to_numparam:"cannot assign to numbered parameter %{name}",reserved_for_numparam:"%{name} is reserved for numbered parameter",ordinary_param_defined:"ordinary parameter is defined",numparam_used_in_outer_scope:"numbered parameter is already used in an outer scope",circular_argument_reference:"circular argument reference %{var_name}",pm_interp_in_var_name:"symbol literal with interpolation is not allowed",lvar_name:"`%{name}' is not allowed as a local variable name",undefined_lvar:"no such local variable: `%{name}'",duplicate_variable_name:"duplicate variable name %{name}",duplicate_pattern_key:"duplicate hash pattern key %{name}",endless_setter:"setter method cannot be defined in an endless method definition",invalid_id_to_get:"identifier %{identifier} is not valid to get",forward_arg_after_restarg:"... after rest argument",no_anonymous_blockarg:"no anonymous block parameter",useless_else:"else without rescue is useless",duplicate_hash_key:"key is duplicated and overwritten",invalid_encoding:"literal contains escape sequences incompatible with UTF-8",invalid_action:"cannot %{action}",clobbered:"clobbered by: %{action}",different_replacements:"different replacements: %{replacement} vs %{other_replacement}",swallowed_insertions:"this replacement:",swallowed_insertions_conflict:"swallows some inner rewriting actions:",crossing_deletions:"the deletion of:",crossing_deletions_conflict:"is crossing:",crossing_insertions:"the rewriting action on:",crossing_insertions_conflict:"is crossing that on:"}).$freeze()),function($Messages_compile$1,$parent_nesting){var $Messages_compile$1=$module($Messages_compile$1,"Messages"),$nesting=[$Messages_compile$1].concat($parent_nesting);return Opal.defs($Messages_compile$1,"$compile",$Messages_compile$1=function(reason,arguments$){var $ret_or_1=nil,template=$$($nesting,"MESSAGES")["$[]"](reason);return $truthy($truthy($ret_or_1=$$($nesting,"Hash")["$==="](arguments$))?arguments$["$empty?"]():$ret_or_1)?template:this.$format(template,arguments$)},$Messages_compile$1.$$arity=2),nil&&"compile"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/deprecation"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=(Opal.$$,Opal.module),$truthy=Opal.truthy;return Opal.add_stubs(["$attr_writer","$warn"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Deprecation_warn_of_deprecation$1,$parent_nesting){$Deprecation_warn_of_deprecation$1=$module($Deprecation_warn_of_deprecation$1,"Deprecation"),[$Deprecation_warn_of_deprecation$1].concat($parent_nesting);return $Deprecation_warn_of_deprecation$1.$attr_writer("warned_of_deprecation"),Opal.def($Deprecation_warn_of_deprecation$1,"$warn_of_deprecation",$Deprecation_warn_of_deprecation$1=function(){var self=this,$ret_or_1=nil,$ret_or_2=nil;return null==self.warned_of_deprecation&&(self.warned_of_deprecation=nil),self.warned_of_deprecation=$truthy($ret_or_1=self.warned_of_deprecation)?$ret_or_1:!$truthy($ret_or_2=self.$warn($$$(self,"DEPRECATION_WARNING")))||$ret_or_2},$Deprecation_warn_of_deprecation$1.$$arity=0),nil&&"warn_of_deprecation"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/ast/processor"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs(["$updated","$process_all","$on_var","$!","$nil?","$process","$on_vasgn","$on_argument","$is_a?","$[]","$children","$process_regular_node","$warn"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($base,$Processor_on_empty_else$19,$Processor_process_argument_node$18){var $Processor_on_empty_else$19=$klass($base,$Processor_on_empty_else$19,"Processor"),$nesting=[$Processor_on_empty_else$19].concat($Processor_process_argument_node$18);return Opal.def($Processor_on_empty_else$19,"$process_regular_node",$Processor_process_argument_node$18=function(node){return node.$updated(nil,this.$process_all(node))},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_dstr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_dsym","process_regular_node"),$alias($Processor_on_empty_else$19,"on_regexp","process_regular_node"),$alias($Processor_on_empty_else$19,"on_xstr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_splat","process_regular_node"),$alias($Processor_on_empty_else$19,"on_kwsplat","process_regular_node"),$alias($Processor_on_empty_else$19,"on_array","process_regular_node"),$alias($Processor_on_empty_else$19,"on_pair","process_regular_node"),$alias($Processor_on_empty_else$19,"on_hash","process_regular_node"),$alias($Processor_on_empty_else$19,"on_kwargs","process_regular_node"),$alias($Processor_on_empty_else$19,"on_irange","process_regular_node"),$alias($Processor_on_empty_else$19,"on_erange","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_var",$Processor_process_argument_node$18=function(node){return node},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_variable_node",$Processor_process_argument_node$18=function(node){return this.$on_var(node)},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_lvar","process_variable_node"),$alias($Processor_on_empty_else$19,"on_ivar","process_variable_node"),$alias($Processor_on_empty_else$19,"on_gvar","process_variable_node"),$alias($Processor_on_empty_else$19,"on_cvar","process_variable_node"),$alias($Processor_on_empty_else$19,"on_back_ref","process_variable_node"),$alias($Processor_on_empty_else$19,"on_nth_ref","process_variable_node"),Opal.def($Processor_on_empty_else$19,"$on_vasgn",$Processor_process_argument_node$18=function(node){var value_node=nil,$a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],value_node=null==$a[1]?nil:$a[1];return $truthy(value_node["$nil?"]()["$!"]())?node.$updated(nil,[name,this.$process(value_node)]):node},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_var_asgn_node",$Processor_process_argument_node$18=function(node){return this.$on_vasgn(node)},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_lvasgn","process_var_asgn_node"),$alias($Processor_on_empty_else$19,"on_ivasgn","process_var_asgn_node"),$alias($Processor_on_empty_else$19,"on_gvasgn","process_var_asgn_node"),$alias($Processor_on_empty_else$19,"on_cvasgn","process_var_asgn_node"),$alias($Processor_on_empty_else$19,"on_and_asgn","process_regular_node"),$alias($Processor_on_empty_else$19,"on_or_asgn","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_op_asgn",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),var_node=null==$a[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],value_node=null==$a[2]?nil:$a[2];return node.$updated(nil,[this.$process(var_node),method_name,this.$process(value_node)])},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_mlhs","process_regular_node"),$alias($Processor_on_empty_else$19,"on_masgn","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_const",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),scope_node=null==$a[0]?nil:$a[0],name=null==$a[1]?nil:$a[1];return node.$updated(nil,[this.$process(scope_node),name])},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$on_casgn",$Processor_process_argument_node$18=function(node){var value_node=nil,$a=[].concat(Opal.to_a(node)),scope_node=null==$a[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],value_node=null==$a[2]?nil:$a[2];return $truthy(value_node["$nil?"]()["$!"]())?node.$updated(nil,[this.$process(scope_node),name,this.$process(value_node)]):node.$updated(nil,[this.$process(scope_node),name])},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_args","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_argument",$Processor_process_argument_node$18=function(node){var value_node=nil,$a=[].concat(Opal.to_a(node)),arg_name=null==$a[0]?nil:$a[0],value_node=null==$a[1]?nil:$a[1];return $truthy(value_node["$nil?"]()["$!"]())?node.$updated(nil,[arg_name,this.$process(value_node)]):node},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_argument_node",$Processor_process_argument_node$18=function(node){return this.$on_argument(node)},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_arg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_optarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_restarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_blockarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_shadowarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_kwarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_kwoptarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_kwrestarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_forward_arg","process_argument_node"),Opal.def($Processor_on_empty_else$19,"$on_procarg0",$Processor_process_argument_node$18=function(node){return $truthy(node.$children()["$[]"](0)["$is_a?"]($$($nesting,"Symbol")))?this.$on_argument(node):this.$process_regular_node(node)},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_arg_expr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_restarg_expr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_blockarg_expr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_block_pass","process_regular_node"),$alias($Processor_on_empty_else$19,"on_module","process_regular_node"),$alias($Processor_on_empty_else$19,"on_class","process_regular_node"),$alias($Processor_on_empty_else$19,"on_sclass","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_def",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],args_node=null==$a[1]?nil:$a[1],body_node=null==$a[2]?nil:$a[2];return node.$updated(nil,[name,this.$process(args_node),this.$process(body_node)])},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$on_defs",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),definee_node=null==$a[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],args_node=null==$a[2]?nil:$a[2],body_node=null==$a[3]?nil:$a[3];return node.$updated(nil,[this.$process(definee_node),name,this.$process(args_node),this.$process(body_node)])},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_undef","process_regular_node"),$alias($Processor_on_empty_else$19,"on_alias","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_send",$Processor_process_argument_node$18=function(node){var receiver_node=nil,method_name=nil,$a=[].concat(Opal.to_a(node)),receiver_node=null==$a[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],arg_nodes=$slice.call($a,2);return $truthy(receiver_node)&&(receiver_node=this.$process(receiver_node)),node.$updated(nil,[receiver_node,method_name].concat(Opal.to_a(this.$process_all(arg_nodes))))},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_csend","on_send"),$alias($Processor_on_empty_else$19,"on_index","process_regular_node"),$alias($Processor_on_empty_else$19,"on_indexasgn","process_regular_node"),$alias($Processor_on_empty_else$19,"on_block","process_regular_node"),$alias($Processor_on_empty_else$19,"on_lambda","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_numblock",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),method_call=null==$a[0]?nil:$a[0],max_numparam=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2];return node.$updated(nil,[this.$process(method_call),max_numparam,this.$process(body)])},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_while","process_regular_node"),$alias($Processor_on_empty_else$19,"on_while_post","process_regular_node"),$alias($Processor_on_empty_else$19,"on_until","process_regular_node"),$alias($Processor_on_empty_else$19,"on_until_post","process_regular_node"),$alias($Processor_on_empty_else$19,"on_for","process_regular_node"),$alias($Processor_on_empty_else$19,"on_return","process_regular_node"),$alias($Processor_on_empty_else$19,"on_break","process_regular_node"),$alias($Processor_on_empty_else$19,"on_next","process_regular_node"),$alias($Processor_on_empty_else$19,"on_redo","process_regular_node"),$alias($Processor_on_empty_else$19,"on_retry","process_regular_node"),$alias($Processor_on_empty_else$19,"on_super","process_regular_node"),$alias($Processor_on_empty_else$19,"on_yield","process_regular_node"),$alias($Processor_on_empty_else$19,"on_defined?","process_regular_node"),$alias($Processor_on_empty_else$19,"on_not","process_regular_node"),$alias($Processor_on_empty_else$19,"on_and","process_regular_node"),$alias($Processor_on_empty_else$19,"on_or","process_regular_node"),$alias($Processor_on_empty_else$19,"on_if","process_regular_node"),$alias($Processor_on_empty_else$19,"on_when","process_regular_node"),$alias($Processor_on_empty_else$19,"on_case","process_regular_node"),$alias($Processor_on_empty_else$19,"on_iflipflop","process_regular_node"),$alias($Processor_on_empty_else$19,"on_eflipflop","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_current_line","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_with_lvasgn","process_regular_node"),$alias($Processor_on_empty_else$19,"on_resbody","process_regular_node"),$alias($Processor_on_empty_else$19,"on_rescue","process_regular_node"),$alias($Processor_on_empty_else$19,"on_ensure","process_regular_node"),$alias($Processor_on_empty_else$19,"on_begin","process_regular_node"),$alias($Processor_on_empty_else$19,"on_kwbegin","process_regular_node"),$alias($Processor_on_empty_else$19,"on_preexe","process_regular_node"),$alias($Processor_on_empty_else$19,"on_postexe","process_regular_node"),$alias($Processor_on_empty_else$19,"on_case_match","process_regular_node"),$alias($Processor_on_empty_else$19,"on_in_match","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_pattern_p","process_regular_node"),$alias($Processor_on_empty_else$19,"on_in_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_if_guard","process_regular_node"),$alias($Processor_on_empty_else$19,"on_unless_guard","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_var","process_variable_node"),$alias($Processor_on_empty_else$19,"on_match_rest","process_regular_node"),$alias($Processor_on_empty_else$19,"on_pin","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_alt","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_as","process_regular_node"),$alias($Processor_on_empty_else$19,"on_array_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_array_pattern_with_tail","process_regular_node"),$alias($Processor_on_empty_else$19,"on_hash_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_const_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_find_pattern","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$process_variable_node",$Processor_process_argument_node$18=function(node){return this.$warn("Parser::AST::Processor#process_variable_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_var instead."),this.$on_var(node)},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_var_asgn_node",$Processor_process_argument_node$18=function(node){return this.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_vasgn instead."),this.$on_vasgn(node)},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_argument_node",$Processor_process_argument_node$18=function(node){return this.$warn("Parser::AST::Processor#process_argument_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_argument instead."),this.$on_argument(node)},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$on_empty_else",$Processor_on_empty_else$19=function(node){return node},$Processor_on_empty_else$19.$$arity=1),nil&&"on_empty_else"}($nesting[0],$$$($$$("::","AST"),"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/meta"]=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return Opal.add_stubs(["$freeze","$to_set"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Meta")].concat($nesting);return Opal.const_set($nesting[0],"NODE_TYPES",["true","false","nil","int","float","str","dstr","sym","dsym","xstr","regopt","regexp","array","splat","pair","kwsplat","hash","irange","erange","self","lvar","ivar","cvar","gvar","const","defined?","lvasgn","ivasgn","cvasgn","gvasgn","casgn","mlhs","masgn","op_asgn","and_asgn","ensure","rescue","arg_expr","or_asgn","back_ref","nth_ref","match_with_lvasgn","match_current_line","module","class","sclass","def","defs","undef","alias","args","cbase","arg","optarg","restarg","blockarg","block_pass","kwarg","kwoptarg","kwrestarg","kwnilarg","send","csend","super","zsuper","yield","block","and","not","or","if","when","case","while","until","while_post","until_post","for","break","next","redo","return","resbody","kwbegin","begin","retry","preexe","postexe","iflipflop","eflipflop","shadowarg","complex","rational","__FILE__","__LINE__","__ENCODING__","ident","lambda","indexasgn","index","procarg0","restarg_expr","blockarg_expr","objc_kwarg","objc_restarg","objc_varargs","numargs","numblock","forward_args","forwarded_args","forward_arg","case_match","in_match","in_pattern","match_var","pin","match_alt","match_as","match_rest","array_pattern","match_with_trailing_comma","array_pattern_with_tail","hash_pattern","const_pattern","if_guard","unless_guard","match_nil_pattern","empty_else","find_pattern","kwargs","match_pattern_p","match_pattern"].$to_set().$freeze())}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/buffer"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs=","$size","$new","$source","$source_range","$private","$index","$bsearch","$[]=","$method_defined?","$bsearch_index"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Buffer_bsearch$25,$Buffer_bsearch$23){var $Buffer_freeze$19,$Buffer_bsearch$25=$klass($Buffer_bsearch$25,null,"Buffer"),$nesting=[$Buffer_bsearch$25].concat($Buffer_bsearch$23);return $Buffer_bsearch$25.$$prototype.name=$Buffer_bsearch$25.$$prototype.source=$Buffer_bsearch$25.$$prototype.slice_source=$Buffer_bsearch$25.$$prototype.first_line=$Buffer_bsearch$25.$$prototype.lines=$Buffer_bsearch$25.$$prototype.source_range=$Buffer_bsearch$25.$$prototype.line_begins=$Buffer_bsearch$25.$$prototype.line_index_for_position=$Buffer_bsearch$25.$$prototype.line_range=nil,$Buffer_bsearch$25.$attr_reader("name","first_line"),Opal.const_set($nesting[0],"ENCODING_RE",Opal.regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),$enc("(","ASCII-8BIT"),$enc("","ASCII-8BIT"),$enc("(utf8-mac)","ASCII-8BIT"),$enc("|","ASCII-8BIT"),$enc("","ASCII-8BIT"),$enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),$enc("|","ASCII-8BIT"),$enc("([A-Za-z0-9_-]+)","ASCII-8BIT"),$enc(")","ASCII-8BIT"),$enc("","ASCII-8BIT")])),Opal.defs($Buffer_bsearch$25,"$recognize_encoding",$Buffer_bsearch$23=function($a){var second_line,first_line=nil,encoding_line=nil,$ret_or_1=nil,result=nil,$ret_or_2=nil,$ret_or_3=nil;return $truthy($a["$empty?"]())?nil:($a["$=~"](/^(.*)\n?(.*\n)?/),second_line=($a=[($a=$gvars["~"])===nil?nil:$a["$[]"](1),($a=$gvars["~"])===nil?nil:$a["$[]"](2)])[1],$truthy((first_line=$a[0])["$start_with?"]($enc("","ASCII-8BIT").$freeze()))?$$$($$($nesting,"Encoding"),"UTF_8"):(encoding_line=first_line["$[]"](0,2)["$=="]($enc("#!","ASCII-8BIT").$freeze())?second_line:first_line,!$truthy($truthy($ret_or_1=encoding_line["$nil?"]())?$ret_or_1:encoding_line["$[]"](0)["$!="]($enc("#","ASCII-8BIT")))&&$truthy(result=$$($nesting,"ENCODING_RE").$match(encoding_line))?$$($nesting,"Encoding").$find($truthy($ret_or_2=$truthy($ret_or_3=result["$[]"](3))?$ret_or_3:result["$[]"](4))?$ret_or_2:result["$[]"](6)):nil))},$Buffer_bsearch$23.$$arity=1),Opal.defs($Buffer_bsearch$25,"$reencode_string",$Buffer_bsearch$23=function(input){var detected_encoding=nil,original_encoding=input.$encoding(),detected_encoding=this.$recognize_encoding(input.$force_encoding($$$($$($nesting,"Encoding"),"BINARY")));return $truthy(detected_encoding["$nil?"]())?input.$force_encoding(original_encoding):detected_encoding["$=="]($$$($$($nesting,"Encoding"),"BINARY"))?input:input.$force_encoding(detected_encoding).$encode($$$($$($nesting,"Encoding"),"UTF_8"))},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$initialize",$Buffer_bsearch$23=function(name,$a,$b){var first_line,$writer,$post_args=Opal.slice.call(arguments,1,arguments.length),source=Opal.extract_kwargs($post_args);if(null==source)source=$hash2([],{});else if(!source.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return 0<$post_args.length&&(first_line=$post_args[0],$post_args.splice(0,1)),null==first_line&&(first_line=1),null==(source=source.$$smap.source)&&(source=nil),this.name=name.$to_s(),this.source=nil,this.first_line=first_line,this.lines=nil,this.line_begins=nil,this.slice_source=nil,this.line_index_for_position=$hash2([],{}),$truthy(source)?($writer=[source],$send(this,"source=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil},$Buffer_bsearch$23.$$arity=-2),Opal.def($Buffer_bsearch$25,"$read",$Buffer_bsearch$23=function(){var $$5;return $send($$($nesting,"File"),"open",[this.name,$enc("rb","ASCII-8BIT")],(($$5=function(io){var $writer,self=null==$$5.$$s?this:$$5.$$s;return null==io&&(io=nil),$writer=[io.$read()],$send(self,"source=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$5.$$arity=1,$$5)),this},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$source",$Buffer_bsearch$23=function(){return $truthy(this.source["$nil?"]())&&this.$raise($$($nesting,"RuntimeError"),$enc("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),this.source},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$source=",$Buffer_bsearch$23=function(input){var $writer;return $truthy(input["$frozen?"]())&&(input=input.$dup()),input=this.$class().$reencode_string(input),$truthy(input["$valid_encoding?"]())||this.$raise($$($nesting,"EncodingError"),"invalid byte sequence in "+input.$encoding().$name()),$writer=[input],$send(this,"raw_source=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$raw_source=",$Buffer_bsearch$23=function(input){var self=this,$ret_or_4=nil,$ret_or_5=nil;return $truthy(self.source)&&self.$raise($$($nesting,"ArgumentError"),$enc("Source::Buffer is immutable","ASCII-8BIT")),self.source=input.$gsub($enc("\r\n","ASCII-8BIT").$freeze(),$enc("\n","ASCII-8BIT").$freeze()).$freeze(),$truthy($truthy($ret_or_4=$truthy($ret_or_5=self.source["$ascii_only?"]()["$!"]())?self.source.$encoding()["$!="]($$$($$($nesting,"Encoding"),"UTF_32LE")):$ret_or_5)?self.source.$encoding()["$!="]($$$($$($nesting,"Encoding"),"BINARY")):$ret_or_4)?self.slice_source=self.source.$encode($$$($$($nesting,"Encoding"),"UTF_32LE")):nil},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$slice",$Buffer_bsearch$23=function(range){return $truthy(this.slice_source["$nil?"]())?this.source["$[]"](range):this.slice_source["$[]"](range).$encode(this.source.$encoding())},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$decompose_position",$Buffer_bsearch$23=function(position){var line_index=this.$line_index_for_position(position),line_begin=this.$line_begins()["$[]"](line_index);return[$rb_plus(this.first_line,line_index),$rb_minus(position,line_begin)]},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$line_for_position",$Buffer_bsearch$23=function(position){return $rb_plus(this.$line_index_for_position(position),this.first_line)},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$column_for_position",$Buffer_bsearch$23=function(position){var line_index=this.$line_index_for_position(position);return $rb_minus(position,this.$line_begins()["$[]"](line_index))},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$source_lines",$Buffer_bsearch$23=function(){var $$14,$ret_or_6,self=this,lines=nil;return self.lines=$truthy($ret_or_6=self.lines)?$ret_or_6:(lines=self.source.$lines().$to_a(),$truthy(self.source["$end_with?"]($enc("\n","ASCII-8BIT").$freeze()))&&lines["$<<"]($enc("","ASCII-8BIT").$dup()),$send(lines,"each",[],(($$14=function(line){null==$$14.$$s||$$14.$$s;return null==line&&(line=nil),line["$chomp!"]($enc("\n","ASCII-8BIT").$freeze()),line.$freeze()}).$$s=self,$$14.$$arity=1,$$14)),lines.$freeze())},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$source_line",$Buffer_bsearch$23=function(lineno){return this.$source_lines().$fetch($rb_minus(lineno,this.first_line)).$dup()},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$line_range",$Buffer_bsearch$23=function(lineno){var lhs,self=this,rhs=nil,index=$rb_minus(lineno,self.first_line);return $truthy($truthy(rhs=$rb_lt(index,0))?rhs:(lhs=$rb_plus(index,1),rhs=self.$line_begins().$size(),"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))?self.$raise($$($nesting,"IndexError"),"Parser::Source::Buffer: range for line "+lineno+" requested, valid line numbers are "+self.first_line+".."+$rb_minus($rb_plus(self.first_line,self.$line_begins().$size()),2)):$$($nesting,"Range").$new(self,self.$line_begins()["$[]"](index),$rb_minus(self.$line_begins()["$[]"]($rb_plus(index,1)),1))},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$source_range",$Buffer_bsearch$23=function(){var self=this,$ret_or_8=nil;return self.source_range=$truthy($ret_or_8=self.source_range)?$ret_or_8:$$($nesting,"Range").$new(self,0,self.$source().$size())},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$last_line",$Buffer_bsearch$23=function(){return $rb_minus($rb_plus(this.$line_begins().$size(),this.first_line),2)},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$freeze",$Buffer_freeze$19=function(){var $zuper_ii,$iter=$Buffer_freeze$19.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Buffer_freeze$19.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return this.$source_lines(),this.$line_begins(),this.$source_range(),$send2(this,$find_super(this,"freeze",$Buffer_freeze$19,!1,!0),"freeze",$zuper,$iter)},$Buffer_freeze$19.$$arity=0),Opal.def($Buffer_bsearch$25,"$inspect",$Buffer_bsearch$23=function(){return"#<"+this.$class()+" "+this.$name()+">"},$Buffer_bsearch$23.$$arity=0),$Buffer_bsearch$25.$private(),Opal.def($Buffer_bsearch$25,"$line_begins",$Buffer_bsearch$23=function(){var $ret_or_9,self=this,begins=nil,index=nil;return self.line_begins=function(){if($truthy($ret_or_9=self.line_begins))return $ret_or_9;for(begins=[0],index=0;$truthy(index=self.source.$index($enc("\n","ASCII-8BIT").$freeze(),index));)index=$rb_plus(index,1),begins["$<<"](index);return begins["$<<"]($rb_plus(self.source.$size(),1)),begins}()},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$line_index_for_position",$Buffer_bsearch$23=function(position){var $ret_or_10,index,$writer;return $truthy($ret_or_10=this.line_index_for_position["$[]"](position))?$ret_or_10:(index=$rb_minus(this.$bsearch(this.$line_begins(),position),1),$truthy(this.line_index_for_position["$frozen?"]())||($writer=[position,index],$send(this.line_index_for_position,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),index)},$Buffer_bsearch$23.$$arity=1),$truthy($$($nesting,"Array")["$method_defined?"]("bsearch_index"))?Opal.def($Buffer_bsearch$25,"$bsearch",$Buffer_bsearch$23=function(line_begins,position){var $$24,$ret_or_11;return $truthy($ret_or_11=$send(line_begins,"bsearch_index",[],(($$24=function(line_begin){null==$$24.$$s||$$24.$$s;return null==line_begin&&(line_begin=nil),$rb_lt(position,line_begin)}).$$s=this,$$24.$$arity=1,$$24)))?$ret_or_11:$rb_minus(line_begins.$size(),1)},$Buffer_bsearch$23.$$arity=2):Opal.def($Buffer_bsearch$25,"$bsearch",$Buffer_bsearch$25=function(line_begins,position){var $$26,$ret_or_13,self=this,$ret_or_12=nil;return self.line_range=$truthy($ret_or_12=self.line_range)?$ret_or_12:Opal.Range.$new(0,line_begins.$size(),!0),$truthy($ret_or_13=$send(self.line_range,"bsearch",[],(($$26=function(i){null==$$26.$$s||$$26.$$s;return null==i&&(i=nil),$rb_lt(position,line_begins["$[]"](i))}).$$s=self,$$26.$$arity=1,$$26)))?$ret_or_13:$rb_minus(line_begins.$size(),1)},$Buffer_bsearch$25.$$arity=2),nil&&"bsearch"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/range"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_ge(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$alias=Opal.alias;return Opal.add_stubs(["$include","$attr_reader","$<","$raise","$nil?","$freeze","$with","$-","$line_for_position","$alias_method","$column_for_position","$!=","$line","$last_line","$inspect","$column","$last_column","$source_line","$slice","$begin_pos","$end_pos","$include?","$source","$to_a","$decompose_position","$join","$name","$+","$new","$min","$max","$disjoint?","$empty?","$>=","$!","$<=>","$contains?","$overlaps?","$==","$*","$is_a?","$source_buffer","$nonzero?","$hash"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Range_inspect$29,$Range_hash$28){var $Range_inspect$29=$klass($Range_inspect$29,null,"Range"),$nesting=[$Range_inspect$29].concat($Range_hash$28);return $Range_inspect$29.$$prototype.begin_pos=$Range_inspect$29.$$prototype.end_pos=$Range_inspect$29.$$prototype.source_buffer=nil,$Range_inspect$29.$include($$($nesting,"Comparable")),$Range_inspect$29.$attr_reader("source_buffer"),$Range_inspect$29.$attr_reader("begin_pos","end_pos"),Opal.def($Range_inspect$29,"$initialize",$Range_hash$28=function(source_buffer,begin_pos,$a){var lhs,rhs;return $truthy((rhs=begin_pos,"number"==typeof(lhs=$a)&&"number"==typeof rhs?lhs"](this.begin_pos),this.end_pos["$<=>"](other.$end_pos())),$truthy(other["$empty?"]())?2:1)},$Range_hash$28.$$arity=1),Opal.def($Range_inspect$29,"$contained?",$Range_hash$28=function(other){return other["$contains?"](this)},$Range_hash$28.$$arity=1),Opal.def($Range_inspect$29,"$crossing?",$Range_hash$28=function(rhs){var lhs;return!!$truthy(this["$overlaps?"](rhs))&&(lhs=this.begin_pos["$<=>"](rhs.$begin_pos()),rhs=this.end_pos["$<=>"](rhs.$end_pos()),("number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs))["$=="](1))},$Range_hash$28.$$arity=1),Opal.def($Range_inspect$29,"$empty?",$Range_hash$28=function(){return this.begin_pos["$=="](this.end_pos)},$Range_hash$28.$$arity=0),Opal.def($Range_inspect$29,"$<=>",$Range_hash$28=function(other){var $ret_or_4,self=this,$ret_or_3=nil;return $truthy($truthy($ret_or_3=other["$is_a?"]($$$($$$($$$("::","Parser"),"Source"),"Range")))?self.source_buffer["$=="](other.$source_buffer()):$ret_or_3)?$truthy($ret_or_4=self.begin_pos["$<=>"](other.$begin_pos())["$nonzero?"]())?$ret_or_4:self.end_pos["$<=>"](other.$end_pos()):nil},$Range_hash$28.$$arity=1),$Range_inspect$29.$alias_method("eql?","=="),Opal.def($Range_inspect$29,"$hash",$Range_hash$28=function(){return[this.source_buffer,this.begin_pos,this.end_pos].$hash()},$Range_hash$28.$$arity=0),Opal.def($Range_inspect$29,"$inspect",$Range_inspect$29=function(){return"#"},$Range_inspect$29.$$arity=0),nil&&"inspect"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/comment"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$attr_reader","$alias_method","$new","$associate","$associate_locations","$associate_by_identity","$freeze","$source","$start_with?","$text","$==","$type","$is_a?","$location","$to_s","$expression","$inspect"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Comment_inspect$9,$Comment_$eq_eq$8){var $Comment_inspect$9=$klass($Comment_inspect$9,null,"Comment"),$nesting=[$Comment_inspect$9].concat($Comment_$eq_eq$8);return $Comment_inspect$9.$$prototype.location=nil,$Comment_inspect$9.$attr_reader("text"),$Comment_inspect$9.$attr_reader("location"),$Comment_inspect$9.$alias_method("loc","location"),Opal.defs($Comment_inspect$9,"$associate",$Comment_$eq_eq$8=function(ast,comments){return $$($nesting,"Associator").$new(ast,comments).$associate()},$Comment_$eq_eq$8.$$arity=2),Opal.defs($Comment_inspect$9,"$associate_locations",$Comment_$eq_eq$8=function(ast,comments){return $$($nesting,"Associator").$new(ast,comments).$associate_locations()},$Comment_$eq_eq$8.$$arity=2),Opal.defs($Comment_inspect$9,"$associate_by_identity",$Comment_$eq_eq$8=function(ast,comments){return $$($nesting,"Associator").$new(ast,comments).$associate_by_identity()},$Comment_$eq_eq$8.$$arity=2),Opal.def($Comment_inspect$9,"$initialize",$Comment_$eq_eq$8=function(range){return this.location=$$$($$$($$($nesting,"Parser"),"Source"),"Map").$new(range),this.text=range.$source().$freeze(),this.$freeze()},$Comment_$eq_eq$8.$$arity=1),Opal.def($Comment_inspect$9,"$type",$Comment_$eq_eq$8=function(){return $truthy(this.$text()["$start_with?"]("#".$freeze()))?"inline":$truthy(this.$text()["$start_with?"]("=begin".$freeze()))?"document":nil},$Comment_$eq_eq$8.$$arity=0),Opal.def($Comment_inspect$9,"$inline?",$Comment_$eq_eq$8=function(){return this.$type()["$=="]("inline")},$Comment_$eq_eq$8.$$arity=0),Opal.def($Comment_inspect$9,"$document?",$Comment_$eq_eq$8=function(){return this.$type()["$=="]("document")},$Comment_$eq_eq$8.$$arity=0),Opal.def($Comment_inspect$9,"$==",$Comment_$eq_eq$8=function(other){var $ret_or_1;return $truthy($ret_or_1=other["$is_a?"]($$$($$($nesting,"Source"),"Comment")))?this.location["$=="](other.$location()):$ret_or_1},$Comment_$eq_eq$8.$$arity=1),Opal.def($Comment_inspect$9,"$inspect",$Comment_inspect$9=function(){return"#"},$Comment_inspect$9.$$arity=0),nil&&"inspect"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/comment/associator"]=function(Opal){function $rb_le(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_accessor","$do_associate","$private","$freeze","$[]","$include?","$type","$sort_by","$compact","$children","$begin_pos","$expression","$loc","$select","$is_a?","$new","$[]=","$-","$==","$compare_by_identity","$advance_comment","$advance_through_directives","$visit","$process_leading_comments","$location","$<=","$line","$last_line","$each","$children_in_source_order","$process_trailing_comments","$current_comment_before?","$associate_and_advance_comment","$current_comment_before_end?","$current_comment_decorates?","$+","$!","$end_pos","$<<","$start_with?","$text","$=~"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Associator_advance_through_directives$19,$Associator_associate_and_advance_comment$18){var $Associator_advance_through_directives$19=$klass($Associator_advance_through_directives$19,null,"Associator"),$nesting=[$Associator_advance_through_directives$19].concat($Associator_associate_and_advance_comment$18);return $Associator_advance_through_directives$19.$$prototype.map_using=$Associator_advance_through_directives$19.$$prototype.mapping=$Associator_advance_through_directives$19.$$prototype.skip_directives=$Associator_advance_through_directives$19.$$prototype.ast=$Associator_advance_through_directives$19.$$prototype.current_comment=$Associator_advance_through_directives$19.$$prototype.comment_num=$Associator_advance_through_directives$19.$$prototype.comments=nil,$Associator_advance_through_directives$19.$attr_accessor("skip_directives"),Opal.def($Associator_advance_through_directives$19,"$initialize",$Associator_associate_and_advance_comment$18=function(ast,comments){return this.ast=ast,this.comments=comments,this.skip_directives=!0},$Associator_associate_and_advance_comment$18.$$arity=2),Opal.def($Associator_advance_through_directives$19,"$associate",$Associator_associate_and_advance_comment$18=function(){return this.map_using="eql",this.$do_associate()},$Associator_associate_and_advance_comment$18.$$arity=0),Opal.def($Associator_advance_through_directives$19,"$associate_locations",$Associator_associate_and_advance_comment$18=function(){return this.map_using="location",this.$do_associate()},$Associator_associate_and_advance_comment$18.$$arity=0),Opal.def($Associator_advance_through_directives$19,"$associate_by_identity",$Associator_associate_and_advance_comment$18=function(){return this.map_using="identity",this.$do_associate()},$Associator_associate_and_advance_comment$18.$$arity=0),$Associator_advance_through_directives$19.$private(),Opal.const_set($nesting[0],"POSTFIX_TYPES",$$($nesting,"Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),Opal.def($Associator_advance_through_directives$19,"$children_in_source_order",$Associator_associate_and_advance_comment$18=function(node){var $$6,$$7;return $truthy($$($nesting,"POSTFIX_TYPES")["$include?"](node.$type()))?$send(node.$children().$compact(),"sort_by",[],(($$6=function(child){null==$$6.$$s||$$6.$$s;return null==child&&(child=nil),child.$loc().$expression().$begin_pos()}).$$s=this,$$6.$$arity=1,$$6)):$send(node.$children(),"select",[],(($$7=function(child){null==$$7.$$s||$$7.$$s;var $ret_or_1,$ret_or_2=nil;return null==child&&(child=nil),$truthy($ret_or_1=$truthy($ret_or_2=child["$is_a?"]($$$($$($nesting,"AST"),"Node")))?child.$loc():$ret_or_2)?child.$loc().$expression():$ret_or_1}).$$s=this,$$7.$$arity=1,$$7))},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$do_associate",$Associator_associate_and_advance_comment$18=function(){var $$9;return this.mapping=$send($$($nesting,"Hash"),"new",[],(($$9=function(rhs,k){null==$$9.$$s||$$9.$$s;var lhs=nil;return null==rhs&&(rhs=nil),null==k&&(k=nil),lhs=[k,[]],$send(rhs,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}).$$s=this,$$9.$$arity=2,$$9)),this.map_using["$=="]("identity")&&this.mapping.$compare_by_identity(),this.comment_num=-1,this.$advance_comment(),$truthy(this.skip_directives)&&this.$advance_through_directives(),$truthy(this.ast)&&this.$visit(this.ast),this.mapping},$Associator_associate_and_advance_comment$18.$$arity=0),Opal.def($Associator_advance_through_directives$19,"$visit",$Associator_associate_and_advance_comment$18=function(node){var $$11,self=this,node_loc=nil,$ret_or_3=nil;return self.$process_leading_comments(node),$truthy(self.current_comment)?(node_loc=node.$location(),$truthy($truthy($ret_or_3=$rb_le(self.current_comment.$location().$line(),node_loc.$last_line()))?$ret_or_3:node_loc["$is_a?"]($$$($$($nesting,"Map"),"Heredoc")))?($send(self.$children_in_source_order(node),"each",[],(($$11=function(child){var self=null==$$11.$$s?this:$$11.$$s;return null==child&&(child=nil),self.$visit(child)}).$$s=self,$$11.$$arity=1,$$11)),self.$process_trailing_comments(node)):nil):nil},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$process_leading_comments",$Associator_associate_and_advance_comment$18=function(node){if(node.$type()["$=="]("begin"))return nil;for(;$truthy(this["$current_comment_before?"](node));)this.$associate_and_advance_comment(node)},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$process_trailing_comments",$Associator_associate_and_advance_comment$18=function(node){for(;$truthy(this["$current_comment_before_end?"](node));)this.$associate_and_advance_comment(node);for(;$truthy(this["$current_comment_decorates?"](node));)this.$associate_and_advance_comment(node)},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$advance_comment",$Associator_associate_and_advance_comment$18=function(){var lhs,rhs;return this.comment_num=(lhs=this.comment_num,rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),this.current_comment=this.comments["$[]"](this.comment_num)},$Associator_associate_and_advance_comment$18.$$arity=0),Opal.def($Associator_advance_through_directives$19,"$current_comment_before?",$Associator_associate_and_advance_comment$18=function(node){var comment_loc=nil,node_loc=nil;return!$truthy(this.current_comment["$!"]())&&(comment_loc=this.current_comment.$location().$expression(),node_loc=node.$location().$expression(),$rb_le(comment_loc.$end_pos(),node_loc.$begin_pos()))},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$current_comment_before_end?",$Associator_associate_and_advance_comment$18=function(node){var comment_loc=nil,node_loc=nil;return!$truthy(this.current_comment["$!"]())&&(comment_loc=this.current_comment.$location().$expression(),node_loc=node.$location().$expression(),$rb_le(comment_loc.$end_pos(),node_loc.$end_pos()))},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$current_comment_decorates?",$Associator_associate_and_advance_comment$18=function(node){return!$truthy(this.current_comment["$!"]())&&this.current_comment.$location().$line()["$=="](node.$location().$last_line())},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$associate_and_advance_comment",$Associator_associate_and_advance_comment$18=function(node){var self=this,key=self.map_using["$=="]("location")?node.$location():node;return self.mapping["$[]"](key)["$<<"](self.current_comment),self.$advance_comment()},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.const_set($nesting[0],"MAGIC_COMMENT_RE",/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),Opal.def($Associator_advance_through_directives$19,"$advance_through_directives",$Associator_advance_through_directives$19=function(){var self=this,$ret_or_4=nil,$ret_or_5=nil,$ret_or_6=nil;return $truthy($truthy($ret_or_4=self.current_comment)?self.current_comment.$text()["$start_with?"]("#!".$freeze()):$ret_or_4)&&self.$advance_comment(),$truthy($truthy($ret_or_5=self.current_comment)?self.current_comment.$text()["$=~"]($$($nesting,"MAGIC_COMMENT_RE")):$ret_or_5)&&self.$advance_comment(),$truthy($truthy($ret_or_6=self.current_comment)?self.current_comment.$text()["$=~"]($$$($$($nesting,"Buffer"),"ENCODING_RE")):$ret_or_6)?self.$advance_comment():nil},$Associator_advance_through_directives$19.$$arity=0),nil&&"advance_through_directives"}($$($nesting,"Comment"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/rewriter"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_le(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$gvars=Opal.gvars,$truthy=Opal.truthy,$hash2=Opal.hash2;return Opal.add_stubs(["$attr_reader","$warn_of_deprecation","$class","$new","$lambda","$puts","$render","$consumer=","$-","$append","$freeze","$begin","$end","$+","$in_transaction?","$raise","$dup","$source","$each","$sort","$begin_pos","$range","$length","$replacement","$[]=","$private","$empty?","$!","$allow_multiple_insertions?","$clobbered_insertion?","$raise_clobber_error","$record_insertion","$adjacent_updates?","$find","$overlaps?","$replace_compatible_with_insertion?","$merge_actions!","$<<","$active_queue","$adjacent_insertions?","$merge_actions","$delete","$can_merge?","$record_replace","$|","$active_insertions","$active_insertions=","$active_clobber","$clobbered_position_mask","$active_clobber=","$size","$!=","$&","$<=","$end_pos","$adjacent_insertion_mask","$select","$adjacent?","$adjacent_position_mask","$>=","$==","$[]","$all?","$intersect","$nil?","$max","$sort_by","$push","$join","$first","$max_by","$merge_replacements","$replace_actions","$disjoint?","$<","$process","$extend"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function(self,$Rewriter_adjacent$ques$45){var $Rewriter_transaction$12,self=$klass(self,null,"Rewriter"),$nesting=[self].concat($Rewriter_adjacent$ques$45);return self.$$prototype.diagnostics=self.$$prototype.insert_before_multi_order=self.$$prototype.insert_after_multi_order=self.$$prototype.source_buffer=self.$$prototype.queue=self.$$prototype.clobber=self.$$prototype.insertions=self.$$prototype.pending_queue=self.$$prototype.pending_clobber=self.$$prototype.pending_insertions=nil,self.$attr_reader("source_buffer"),self.$attr_reader("diagnostics"),Opal.def(self,"$initialize",$Rewriter_adjacent$ques$45=function(source_buffer){var $$2,$writer;return this.$class().$warn_of_deprecation(),this.diagnostics=$$$($$($nesting,"Diagnostic"),"Engine").$new(),$writer=[$send(this,"lambda",[],(($$2=function(diag){null==$$2.$$s||$$2.$$s;return null==$gvars.stderr&&($gvars.stderr=nil),null==diag&&(diag=nil),$gvars.stderr.$puts(diag.$render())}).$$s=this,$$2.$$arity=1,$$2))],$send(this.diagnostics,"consumer=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.source_buffer=source_buffer,this.queue=[],this.clobber=0,this.insertions=0,this.insert_before_multi_order=0,this.insert_after_multi_order=0,this.pending_queue=nil,this.pending_clobber=nil,this.pending_insertions=nil},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$remove",$Rewriter_adjacent$ques$45=function(range){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range,"".$freeze()))},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$insert_before",$Rewriter_adjacent$ques$45=function(range,content){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$begin(),content))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$wrap",$Rewriter_adjacent$ques$45=function(range,before,after){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$begin(),before)),this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$end(),after))},$Rewriter_adjacent$ques$45.$$arity=3),Opal.def(self,"$insert_before_multi",$Rewriter_adjacent$ques$45=function(range,content){return this.insert_before_multi_order=$rb_minus(this.insert_before_multi_order,1),this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$begin(),content,!0,this.insert_before_multi_order))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$insert_after",$Rewriter_adjacent$ques$45=function(range,content){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$end(),content))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$insert_after_multi",$Rewriter_adjacent$ques$45=function(range,content){return this.insert_after_multi_order=$rb_plus(this.insert_after_multi_order,1),this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$end(),content,!0,this.insert_after_multi_order))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$replace",$Rewriter_adjacent$ques$45=function(range,content){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range,content))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$process",$Rewriter_adjacent$ques$45=function(){var $$11,source,adjustment=nil;return $truthy(this["$in_transaction?"]())&&this.$raise("Do not call "+this.$class()+"#process inside a transaction"),adjustment=0,source=this.source_buffer.$source().$dup(),$send(this.queue.$sort(),"each",[],(($$11=function(action){var begin_pos,end_pos,$writer;null==$$11.$$s||$$11.$$s;return null==action&&(action=nil),begin_pos=$rb_plus(action.$range().$begin_pos(),adjustment),end_pos=$rb_plus(begin_pos,action.$range().$length()),$writer=[Opal.Range.$new(begin_pos,end_pos,!0),action.$replacement()],$send(source,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),adjustment=$rb_plus(adjustment,$rb_minus(action.$replacement().$length(),action.$range().$length()))}).$$s=this,$$11.$$arity=1,$$11)),source},$Rewriter_adjacent$ques$45.$$arity=0),Opal.def(self,"$transaction",$Rewriter_transaction$12=function(){var $iter=$Rewriter_transaction$12.$$p,$yield=$iter||nil,self=this;return $iter&&($Rewriter_transaction$12.$$p=null),function(){try{return $yield!==nil||self.$raise(self.$class()+"#transaction requires block"),$truthy(self["$in_transaction?"]())&&self.$raise("Nested transaction is not supported"),self.pending_queue=self.queue.$dup(),self.pending_clobber=self.clobber,self.pending_insertions=self.insertions,Opal.yieldX($yield,[]),self.queue=self.pending_queue,self.clobber=self.pending_clobber,self.insertions=self.pending_insertions,self}finally{self.pending_queue=nil,self.pending_clobber=nil,self.pending_insertions=nil}}()},$Rewriter_transaction$12.$$arity=0),self.$private(),Opal.def(self,"$append",$Rewriter_adjacent$ques$45=function(action){var $$14,$$15,insertions,self=this,range=nil,$ret_or_1=nil,conflicting=nil,adjacent=nil,range=action.$range();if($truthy(range["$empty?"]())){if($truthy(action.$replacement()["$empty?"]()))return self;$truthy($truthy($ret_or_1=action["$allow_multiple_insertions?"]()["$!"]())?conflicting=self["$clobbered_insertion?"](range):$ret_or_1)&&self.$raise_clobber_error(action,[conflicting]),self.$record_insertion(range),$truthy(adjacent=self["$adjacent_updates?"](range))?(conflicting=$send(adjacent,"find",[],(($$14=function(a){var $ret_or_2,self=null==$$14.$$s?this:$$14.$$s;return null==a&&(a=nil),$truthy($ret_or_2=a.$range()["$overlaps?"](range))?self["$replace_compatible_with_insertion?"](a,action)["$!"]():$ret_or_2}).$$s=self,$$14.$$arity=1,$$14)),$truthy(conflicting)&&self.$raise_clobber_error(action,[conflicting]),self["$merge_actions!"](action,adjacent)):self.$active_queue()["$<<"](action)}else $truthy(insertions=self["$adjacent_insertions?"](range))&&$send(insertions,"each",[],(($$15=function(insertion){var self=null==$$15.$$s?this:$$15.$$s,$ret_or_3=nil;return null==insertion&&(insertion=nil),$truthy($truthy($ret_or_3=range["$overlaps?"](insertion.$range()))?self["$replace_compatible_with_insertion?"](action,insertion)["$!"]():$ret_or_3)?self.$raise_clobber_error(action,[insertion]):(action=self.$merge_actions(action,[insertion]),self.$active_queue().$delete(insertion))}).$$s=self,$$15.$$arity=1,$$15)),$truthy(adjacent=self["$adjacent_updates?"](range))?$truthy(self["$can_merge?"](action,adjacent))?(self.$record_replace(range),self["$merge_actions!"](action,adjacent)):self.$raise_clobber_error(action,adjacent):(self.$record_replace(range),self.$active_queue()["$<<"](action));return self},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$record_insertion",$Rewriter_adjacent$ques$45=function(range){var $writer=[this.$active_insertions()["$|"](1["$<<"](range.$begin_pos()))];return $send(this,"active_insertions=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$record_replace",$Rewriter_adjacent$ques$45=function(range){var $writer=[this.$active_clobber()["$|"](this.$clobbered_position_mask(range))];return $send(this,"active_clobber=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$clobbered_position_mask",$Rewriter_adjacent$ques$45=function(range){return $rb_minus(1["$<<"](range.$size()),1)["$<<"](range.$begin_pos())},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$adjacent_position_mask",$Rewriter_adjacent$ques$45=function(range){return $rb_minus(1["$<<"]($rb_plus(range.$size(),2)),1)["$<<"]($rb_minus(range.$begin_pos(),1))},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$adjacent_insertion_mask",$Rewriter_adjacent$ques$45=function(range){return $rb_minus(1["$<<"]($rb_plus(range.$size(),1)),1)["$<<"](range.$begin_pos())},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$clobbered_insertion?",$Rewriter_adjacent$ques$45=function(insertion){var $$22,insertion_pos=insertion.$begin_pos();return $truthy(this.$active_insertions()["$&"](1["$<<"](insertion_pos))["$!="](0))?$send(this.$active_queue(),"find",[],(($$22=function(a){var $ret_or_4;null==$$22.$$s||$$22.$$s;return null==a&&(a=nil),$truthy($ret_or_4=$rb_le(a.$range().$begin_pos(),insertion_pos))?$rb_le(insertion_pos,a.$range().$end_pos()):$ret_or_4}).$$s=this,$$22.$$arity=1,$$22)):nil},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$adjacent_insertions?",$Rewriter_adjacent$ques$45=function(range){var $$24,result=nil;return $truthy(this.$active_insertions()["$&"](this.$adjacent_insertion_mask(range))["$!="](0))?(result=$send(this.$active_queue(),"select",[],(($$24=function(a){var $ret_or_5,self=null==$$24.$$s?this:$$24.$$s;return null==a&&(a=nil),$truthy($ret_or_5=a.$range()["$empty?"]())?self["$adjacent?"](range,a.$range()):$ret_or_5}).$$s=this,$$24.$$arity=1,$$24)),$truthy(result["$empty?"]())?nil:result):nil},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$adjacent_updates?",$Rewriter_adjacent$ques$45=function(range){var $$26;return $truthy(this.$active_clobber()["$&"](this.$adjacent_position_mask(range))["$!="](0))?$send(this.$active_queue(),"select",[],(($$26=function(a){var self=null==$$26.$$s?this:$$26.$$s;return null==a&&(a=nil),self["$adjacent?"](range,a.$range())}).$$s=this,$$26.$$arity=1,$$26)):nil},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$replace_compatible_with_insertion?",$Rewriter_adjacent$ques$45=function(replace,insertion){var $ret_or_6,lhs,rhs,$ret_or_7=nil,offset=nil;return $truthy($ret_or_6=$truthy((lhs=$rb_minus(replace.$replacement().$length(),replace.$range().$size()),rhs=insertion.$range().$size(),$ret_or_7="number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))?offset=$rb_minus(insertion.$range().$begin_pos(),replace.$range().$begin_pos()):$ret_or_7)?replace.$replacement()["$[]"](offset,insertion.$replacement().$length())["$=="](insertion.$replacement()):$ret_or_6},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$can_merge?",$Rewriter_adjacent$ques$45=function(action,existing){var $$29,range=nil,range=action.$range();return $send(existing,"all?",[],(($$29=function(other){null==$$29.$$s||$$29.$$s;var repl1_offset,repl2_offset,repl1_length,repl2_length,replacement2,overlap=nil,replacement1=nil,$ret_or_8=nil,$ret_or_9=nil;return null==other&&(other=nil),overlap=range.$intersect(other.$range()),!!$truthy(overlap["$nil?"]())||(repl1_offset=$rb_minus(overlap.$begin_pos(),range.$begin_pos()),repl2_offset=$rb_minus(overlap.$begin_pos(),other.$range().$begin_pos()),repl1_length=[$rb_minus(other.$range().$length(),repl2_offset),$rb_minus(other.$replacement().$length(),repl2_offset)].$max(),repl2_length=[$rb_minus(range.$length(),repl1_offset),$rb_minus(action.$replacement().$length(),repl1_offset)].$max(),replacement1=$truthy($ret_or_8=action.$replacement()["$[]"](repl1_offset,repl1_length))?$ret_or_8:"".$freeze(),replacement2=$truthy($ret_or_9=other.$replacement()["$[]"](repl2_offset,repl2_length))?$ret_or_9:"".$freeze(),replacement1["$=="](replacement2))}).$$s=this,$$29.$$arity=1,$$29))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$merge_actions",$Rewriter_adjacent$ques$45=function(action,existing){var $$31,$$32,actions=nil,range=(actions=$send(existing.$push(action),"sort_by",[],(($$31=function(a){null==$$31.$$s||$$31.$$s;return null==a&&(a=nil),[a.$range().$begin_pos(),a.$range().$end_pos()]}).$$s=this,$$31.$$arity=1,$$31))).$first().$range().$join($send(actions,"max_by",[],(($$32=function(a){null==$$32.$$s||$$32.$$s;return null==a&&(a=nil),a.$range().$end_pos()}).$$s=this,$$32.$$arity=1,$$32)).$range());return $$$($$($nesting,"Rewriter"),"Action").$new(range,this.$merge_replacements(actions))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$merge_actions!",$Rewriter_adjacent$ques$45=function(action,existing){var new_action=this.$merge_actions(action,existing);return this.$active_queue().$delete(action),this.$replace_actions(existing,new_action)},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$merge_replacements",$Rewriter_adjacent$ques$45=function(actions){var $$35,result=nil,prev_act=nil,result="".$dup(),prev_act=nil;return $send(actions,"each",[],(($$35=function(act){null==$$35.$$s||$$35.$$s;var offset,lhs,rhs=nil;return null==act&&(act=nil),$truthy($truthy(rhs=prev_act["$!"]())?rhs:act.$range()["$disjoint?"](prev_act.$range()))?result["$<<"](act.$replacement()):(offset=$rb_minus([$rb_plus(prev_act.$range().$begin_pos(),prev_act.$replacement().$length()),prev_act.$range().$end_pos()].$max(),act.$range().$begin_pos()),$truthy((lhs=offset,rhs=act.$replacement().$size(),"number"==typeof lhs&&"number"==typeof rhs?lhs","$begin_pos","$range","$zero?","$order","$==","$length","$empty?","$inspect"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Action_to_s$3,$Action_$lt_eq_gt$2){$Action_to_s$3=$klass($Action_to_s$3,null,"Action"),$Action_$lt_eq_gt$2=[$Action_to_s$3].concat($Action_$lt_eq_gt$2);return $Action_to_s$3.$$prototype.range=$Action_to_s$3.$$prototype.replacement=nil,$Action_to_s$3.$include($$($Action_$lt_eq_gt$2,"Comparable")),$Action_to_s$3.$attr_reader("range","replacement","allow_multiple_insertions","order"),$Action_to_s$3.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),Opal.def($Action_to_s$3,"$initialize",$Action_$lt_eq_gt$2=function(range,replacement,allow_multiple_insertions,order){return null==replacement&&(replacement=""),null==allow_multiple_insertions&&(allow_multiple_insertions=!1),null==order&&(order=0),this.range=range,this.replacement=replacement,this.allow_multiple_insertions=allow_multiple_insertions,this.order=order,this.$freeze()},$Action_$lt_eq_gt$2.$$arity=-2),Opal.def($Action_to_s$3,"$<=>",$Action_$lt_eq_gt$2=function(other){var result=nil,result=this.$range().$begin_pos()["$<=>"](other.$range().$begin_pos());return $truthy(result["$zero?"]())?this.$order()["$<=>"](other.$order()):result},$Action_$lt_eq_gt$2.$$arity=1),Opal.def($Action_to_s$3,"$to_s",$Action_to_s$3=function(){var self=this,$ret_or_1=nil;return $truthy($truthy($ret_or_1=self.range.$length()["$=="](0))?self.replacement["$empty?"]():$ret_or_1)?"do nothing":self.range.$length()["$=="](0)?"insert "+self.replacement.$inspect():$truthy(self.replacement["$empty?"]())?"remove "+self.range.$length()+" character(s)":"replace "+self.range.$length()+" character(s) with "+self.replacement.$inspect()},$Action_to_s$3.$$arity=0),nil&&"to_s"}($$($nesting,"Rewriter"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/tree_rewriter"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$lambda=Opal.lambda,$gvars=Opal.gvars,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range,$slice=(Opal.hash,Opal.slice);return Opal.add_stubs(["$attr_reader","$new","$puts","$render","$consumer=","$-","$freeze","$check_policy_validity","$method","$adjust","$source_range","$empty?","$==","$source_buffer","$raise","$combine","$action_root","$merge!","$dup","$contract","$+","$begin_pos","$range","$end_pos","$check_range_validity","$moved","$to_s","$replace","$wrap","$source","$each","$ordered_replacements","$<<","$[]","$length","$join","$nested_actions","$class","$name","$action_summary","$warn_of_deprecation","$insert_before","$insert_after","$extend","$protected","$private","$as_replacements","$size","$===","$first","$map","$to_range","$inspect","$values","$<","$>","$trigger_policy","$process"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($TreeRewriter_trigger_policy$27,$TreeRewriter_check_range_validity$25){var $TreeRewriter_transaction$16,$TreeRewriter_enforce_policy$26,$TreeRewriter_trigger_policy$27=$klass($TreeRewriter_trigger_policy$27,null,"TreeRewriter"),$nesting=[$TreeRewriter_trigger_policy$27].concat($TreeRewriter_check_range_validity$25);return $TreeRewriter_trigger_policy$27.$$prototype.diagnostics=$TreeRewriter_trigger_policy$27.$$prototype.source_buffer=$TreeRewriter_trigger_policy$27.$$prototype.enforcer=$TreeRewriter_trigger_policy$27.$$prototype.action_root=$TreeRewriter_trigger_policy$27.$$prototype.in_transaction=$TreeRewriter_trigger_policy$27.$$prototype.policy=nil,$TreeRewriter_trigger_policy$27.$attr_reader("source_buffer"),$TreeRewriter_trigger_policy$27.$attr_reader("diagnostics"),Opal.def($TreeRewriter_trigger_policy$27,"$initialize",$TreeRewriter_check_range_validity$25=function(source_buffer,swallowed_insertions){var crossing_deletions,different_replacements,$$2,$writer,all_encompassing_range;if(null==swallowed_insertions)swallowed_insertions=$hash2([],{});else if(!swallowed_insertions.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(crossing_deletions=swallowed_insertions.$$smap.crossing_deletions)&&(crossing_deletions="accept"),null==(different_replacements=swallowed_insertions.$$smap.different_replacements)&&(different_replacements="accept"),null==(swallowed_insertions=swallowed_insertions.$$smap.swallowed_insertions)&&(swallowed_insertions="accept"),this.diagnostics=$$$($$($nesting,"Diagnostic"),"Engine").$new(),$writer=[$lambda((($$2=function(diag){null==$$2.$$s||$$2.$$s;return null==$gvars.stderr&&($gvars.stderr=nil),null==diag&&(diag=nil),$gvars.stderr.$puts(diag.$render())}).$$s=this,$$2.$$arity=1,$$2))],$send(this.diagnostics,"consumer=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.source_buffer=source_buffer,this.in_transaction=!1,this.policy=$hash2(["crossing_deletions","different_replacements","swallowed_insertions"],{crossing_deletions:crossing_deletions,different_replacements:different_replacements,swallowed_insertions:swallowed_insertions}).$freeze(),this.$check_policy_validity(),this.enforcer=this.$method("enforce_policy"),all_encompassing_range=this.source_buffer.$source_range().$adjust($hash2(["begin_pos","end_pos"],{begin_pos:-1,end_pos:1})),this.action_root=$$$($$($nesting,"TreeRewriter"),"Action").$new(all_encompassing_range,this.enforcer)},$TreeRewriter_check_range_validity$25.$$arity=-2),Opal.def($TreeRewriter_trigger_policy$27,"$empty?",$TreeRewriter_check_range_validity$25=function(){return this.action_root["$empty?"]()},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$merge!",$TreeRewriter_check_range_validity$25=function(with$){return this.$source_buffer()["$=="](with$.$source_buffer())||this.$raise("TreeRewriter are not for the same source_buffer"),this.action_root=this.action_root.$combine(with$.$action_root()),this},$TreeRewriter_check_range_validity$25.$$arity=1),Opal.def($TreeRewriter_trigger_policy$27,"$merge",$TreeRewriter_check_range_validity$25=function(with$){return this.$dup()["$merge!"](with$)},$TreeRewriter_check_range_validity$25.$$arity=1),Opal.def($TreeRewriter_trigger_policy$27,"$import!",$TreeRewriter_check_range_validity$25=function(foreign_rewriter,offset){var merge_effective_range,merge_with,contracted=nil;if(null==offset)offset=$hash2([],{});else if(!offset.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(offset=offset.$$smap.offset)&&(offset=0),$truthy(foreign_rewriter["$empty?"]())||(contracted=foreign_rewriter.$action_root().$contract(),merge_effective_range=$$$($$$($$$("::","Parser"),"Source"),"Range").$new(this.source_buffer,$rb_plus(contracted.$range().$begin_pos(),offset),$rb_plus(contracted.$range().$end_pos(),offset)),this.$check_range_validity(merge_effective_range),merge_with=contracted.$moved(this.source_buffer,offset),this.action_root=this.action_root.$combine(merge_with)),this},$TreeRewriter_check_range_validity$25.$$arity=-2),Opal.def($TreeRewriter_trigger_policy$27,"$replace",$TreeRewriter_check_range_validity$25=function(range,content){return this.$combine(range,$hash2(["replacement"],{replacement:content}))},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$wrap",$TreeRewriter_check_range_validity$25=function(range,insert_before,insert_after){return this.$combine(range,$hash2(["insert_before","insert_after"],{insert_before:insert_before.$to_s(),insert_after:insert_after.$to_s()}))},$TreeRewriter_check_range_validity$25.$$arity=3),Opal.def($TreeRewriter_trigger_policy$27,"$remove",$TreeRewriter_check_range_validity$25=function(range){return this.$replace(range,"".$freeze())},$TreeRewriter_check_range_validity$25.$$arity=1),Opal.def($TreeRewriter_trigger_policy$27,"$insert_before",$TreeRewriter_check_range_validity$25=function(range,content){return this.$wrap(range,content,nil)},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$insert_after",$TreeRewriter_check_range_validity$25=function(range,content){return this.$wrap(range,nil,content)},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$process",$TreeRewriter_check_range_validity$25=function(){var $$13,source=nil,chunks=nil,last_end=nil,source=this.source_buffer.$source(),chunks=[],last_end=0;return $send(this.action_root.$ordered_replacements(),"each",[],(($$13=function(range,replacement){null==$$13.$$s||$$13.$$s;return null==range&&(range=nil),null==replacement&&(replacement=nil),chunks["$<<"](source["$[]"](Opal.Range.$new(last_end,range.$begin_pos(),!0)))["$<<"](replacement),last_end=range.$end_pos()}).$$s=this,$$13.$$arity=2,$$13)),chunks["$<<"](source["$[]"](Opal.Range.$new(last_end,source.$length(),!0))),chunks.$join()},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$as_replacements",$TreeRewriter_check_range_validity$25=function(){return this.action_root.$ordered_replacements()},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$as_nested_actions",$TreeRewriter_check_range_validity$25=function(){return this.action_root.$nested_actions()},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$transaction",$TreeRewriter_transaction$16=function(){var $iter=$TreeRewriter_transaction$16.$$p,$yield=$iter||nil,self=this,previous=nil,restore_root=nil;return $iter&&($TreeRewriter_transaction$16.$$p=null),function(){try{return $yield!==nil||self.$raise(self.$class()+"#transaction requires block"),previous=self.in_transaction,self.in_transaction=!0,restore_root=self.action_root,Opal.yieldX($yield,[]),restore_root=nil,self}finally{$truthy(restore_root)&&(self.action_root=restore_root),self.in_transaction=previous}}()},$TreeRewriter_transaction$16.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$in_transaction?",$TreeRewriter_check_range_validity$25=function(){return this.in_transaction},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$inspect",$TreeRewriter_check_range_validity$25=function(){return"#<"+this.$class()+" "+this.$source_buffer().$name()+": "+this.$action_summary()+">"},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$insert_before_multi",$TreeRewriter_check_range_validity$25=function(range,text){return this.$class().$warn_of_deprecation(),this.$insert_before(range,text)},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$insert_after_multi",$TreeRewriter_check_range_validity$25=function(range,text){return this.$class().$warn_of_deprecation(),this.$insert_after(range,text)},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.const_set($nesting[0],"DEPRECATION_WARNING",["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.","Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()),$TreeRewriter_trigger_policy$27.$extend($$($nesting,"Deprecation")),$TreeRewriter_trigger_policy$27.$protected(),$TreeRewriter_trigger_policy$27.$attr_reader("action_root"),$TreeRewriter_trigger_policy$27.$private(),Opal.def($TreeRewriter_trigger_policy$27,"$action_summary",$TreeRewriter_check_range_validity$25=function(){var $$22,replacements=nil,suffix=nil,parts=nil,$case=(replacements=this.$as_replacements()).$size();return 0["$==="]($case)?"empty":($range(1,3,!1)["$==="]($case)||(replacements=replacements.$first(3),suffix="…"),parts=$send(replacements,"map",[],(($$22=function($a){null==$$22.$$s||$$22.$$s;var range=nil,str=nil;return null==$a&&($a=nil),$a=$a,range=null==($a=Opal.to_ary($a))[0]?nil:$a[0],str=null==$a[1]?nil:$a[1],$truthy(str["$empty?"]())?"-"+range.$to_range():range.$size()["$=="](0)?"+"+str.$inspect()+"@"+range.$begin_pos():"^"+str.$inspect()+"@"+range.$to_range()}).$$s=this,$$22.$$arity=1,$$22.$$has_top_level_mlhs_arg=!0,$$22)),$truthy(suffix)&&parts["$<<"](suffix),parts.$join(", "))},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.const_set($nesting[0],"ACTIONS",["accept","warn","raise"].$freeze()),Opal.def($TreeRewriter_trigger_policy$27,"$check_policy_validity",$TreeRewriter_check_range_validity$25=function(){var invalid=nil,invalid=$rb_minus(this.policy.$values(),$$($nesting,"ACTIONS"));return $truthy(invalid["$empty?"]())?nil:this.$raise($$($nesting,"ArgumentError"),"Invalid policy: "+invalid.$join(", "))},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$combine",$TreeRewriter_check_range_validity$25=function(range,attributes){var action;return range=this.$check_range_validity(range),action=$$$($$($nesting,"TreeRewriter"),"Action").$new(range,this.enforcer,Opal.to_hash(attributes)),this.action_root=this.action_root.$combine(action),this},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$check_range_validity",$TreeRewriter_check_range_validity$25=function(range){var lhs,rhs,self=this,$ret_or_1=nil;return $truthy($truthy((lhs=range.$begin_pos(),rhs=0,$ret_or_1="number"==typeof lhs&&"number"==typeof rhs?lhs"](rhs)}(range.$end_pos(),self.source_buffer.$source().$size()))&&self.$raise($$($nesting,"IndexError"),"The range "+range.$to_range()+" is outside the bounds of the source"),range},$TreeRewriter_check_range_validity$25.$$arity=1),Opal.def($TreeRewriter_trigger_policy$27,"$enforce_policy",$TreeRewriter_enforce_policy$26=function(event){var values,$iter=$TreeRewriter_enforce_policy$26.$$p,$yield=$iter||nil;return $iter&&($TreeRewriter_enforce_policy$26.$$p=null),!this.policy["$[]"](event)["$=="]("accept")&&$truthy(values=Opal.yieldX($yield,[]))?this.$trigger_policy(event,Opal.to_hash(values)):nil},$TreeRewriter_enforce_policy$26.$$arity=1),Opal.const_set($nesting[0],"POLICY_TO_LEVEL",$hash2(["warn","raise"],{warn:"warning",raise:"error"}).$freeze()),Opal.def($TreeRewriter_trigger_policy$27,"$trigger_policy",$TreeRewriter_trigger_policy$27=function(event,arguments$){var range,$a,diag,highlights,self=this,action=nil,$ret_or_2=nil;if(null==arguments$)arguments$=$hash2([],{});else if(!arguments$.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(range=arguments$.$$smap.range)&&(range=self.$raise()),null==($a=arguments$.$$smap.conflict)&&($a=nil),arguments$=Opal.kwrestargs(arguments$,{range:!0,conflict:!0}),action=$truthy($ret_or_2=self.policy["$[]"](event))?$ret_or_2:"raise",diag=$$$($$($nesting,"Parser"),"Diagnostic").$new($$($nesting,"POLICY_TO_LEVEL")["$[]"](action),event,arguments$,range),self.diagnostics.$process(diag),$truthy($a)&&($a=$a,range=null==($a=Opal.to_ary($a))[0]?nil:$a[0],highlights=$slice.call($a,1),diag=$$$($$($nesting,"Parser"),"Diagnostic").$new($$($nesting,"POLICY_TO_LEVEL")["$[]"](action),event+"_conflict",arguments$,range,highlights),self.diagnostics.$process(diag)),action["$=="]("raise")?self.$raise($$$($$($nesting,"Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):nil},$TreeRewriter_trigger_policy$27.$$arity=-2),nil&&"trigger_policy"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/tree_rewriter/action"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_ge(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$freeze","$empty?","$do_combine","$==","$<<","$begin","$concat","$flat_map","$to_proc","$end","$!","$insert_before","$insert_after","$replacement","$raise","$insertion?","$with","$begin_pos","$range","$first","$children","$end_pos","$last","$new","$+","$map","$moved","$protected","$swallow","$class","$merge","$place_in_hierarchy","$analyse_hierarchy","$[]","$fuse_deletions","$combine_children","$inject","$size","$bsearch","$bsearch_child_index","$>","$-","$>=","$===","$<=>","$<=","$check_fusible","$<","$shift","$pop","$compact!","$each","$call","$call_enforcer_for_merge","$!=","$select"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Action_swallow$27,$Action_call_enforcer_for_merge$25){var $Action_bsearch_child_index$16,$Action_swallow$27=$klass($Action_swallow$27,null,"Action");[$Action_swallow$27].concat($Action_call_enforcer_for_merge$25);return $Action_swallow$27.$$prototype.insert_before=$Action_swallow$27.$$prototype.insert_after=$Action_swallow$27.$$prototype.children=$Action_swallow$27.$$prototype.replacement=$Action_swallow$27.$$prototype.range=$Action_swallow$27.$$prototype.enforcer=nil,$Action_swallow$27.$attr_reader("range","replacement","insert_before","insert_after"),Opal.def($Action_swallow$27,"$initialize",$Action_call_enforcer_for_merge$25=function(range,enforcer,children){var insert_before,replacement,$a;if(null==children)children=$hash2([],{});else if(!children.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(insert_before=children.$$smap.insert_before)&&(insert_before=""),null==(replacement=children.$$smap.replacement)&&(replacement=nil),null==($a=children.$$smap.insert_after)&&($a=""),null==(children=children.$$smap.children)&&(children=[]),$a=[range,enforcer,children.$freeze(),insert_before.$freeze(),replacement,$a.$freeze()],this.range=$a[0],this.enforcer=$a[1],this.children=$a[2],this.insert_before=$a[3],this.replacement=$a[4],this.insert_after=$a[5],this.$freeze()},$Action_call_enforcer_for_merge$25.$$arity=-3),Opal.def($Action_swallow$27,"$combine",$Action_call_enforcer_for_merge$25=function(action){return $truthy(action["$empty?"]())?this:this.$do_combine(action)},$Action_call_enforcer_for_merge$25.$$arity=1),Opal.def($Action_swallow$27,"$empty?",$Action_call_enforcer_for_merge$25=function(){var $ret_or_1,$ret_or_4,$ret_or_5,self=this,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=self.insert_before["$empty?"]())?self.insert_after["$empty?"]():$ret_or_3)?self.children["$empty?"]():$ret_or_2)?$truthy($ret_or_4=self.replacement["$=="](nil))?$ret_or_4:$truthy($ret_or_5=self.replacement["$empty?"]())?self.range["$empty?"]():$ret_or_5:$ret_or_1},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$ordered_replacements",$Action_call_enforcer_for_merge$25=function(){var reps=nil,reps=[];return $truthy(this.insert_before["$empty?"]())||reps["$<<"]([this.range.$begin(),this.insert_before]),$truthy(this.replacement)&&reps["$<<"]([this.range,this.replacement]),reps.$concat($send(this.children,"flat_map",[],"ordered_replacements".$to_proc())),$truthy(this.insert_after["$empty?"]())||reps["$<<"]([this.range.$end(),this.insert_after]),reps},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$nested_actions",$Action_call_enforcer_for_merge$25=function(){var self=this,actions=nil,$ret_or_6=nil,actions=[];return $truthy($truthy($ret_or_6=self.insert_before["$empty?"]()["$!"]())?$ret_or_6:self.insert_after["$empty?"]()["$!"]())&&actions["$<<"](["wrap",self.range,self.insert_before,self.insert_after]),$truthy(self.replacement)&&actions["$<<"](["replace",self.range,self.replacement]),actions.$concat($send(self.children,"flat_map",[],"nested_actions".$to_proc()))},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$insertion?",$Action_call_enforcer_for_merge$25=function(){var $ret_or_7,$ret_or_9,self=this,$ret_or_8=nil;return $truthy($ret_or_7=$truthy($ret_or_8=self.$insert_before()["$empty?"]()["$!"]())?$ret_or_8:self.$insert_after()["$empty?"]()["$!"]())?$ret_or_7:$truthy($ret_or_9=self.$replacement())?self.$replacement()["$empty?"]()["$!"]():$ret_or_9},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$contract",$Action_call_enforcer_for_merge$25=function(){var range;return $truthy(this["$empty?"]())&&this.$raise("Empty actions can not be contracted"),$truthy(this["$insertion?"]())?this:(range=this.range.$with($hash2(["begin_pos","end_pos"],{begin_pos:this.$children().$first().$range().$begin_pos(),end_pos:this.$children().$last().$range().$end_pos()})),this.$with($hash2(["range"],{range:range})))},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$moved",$Action_call_enforcer_for_merge$25=function(source_buffer,offset){var $$9,moved_range=$$$($$$($$$("::","Parser"),"Source"),"Range").$new(source_buffer,$rb_plus(this.range.$begin_pos(),offset),$rb_plus(this.range.$end_pos(),offset));return this.$with($hash2(["range","children"],{range:moved_range,children:$send(this.$children(),"map",[],(($$9=function(child){null==$$9.$$s||$$9.$$s;return null==child&&(child=nil),child.$moved(source_buffer,offset)}).$$s=this,$$9.$$arity=1,$$9))}))},$Action_call_enforcer_for_merge$25.$$arity=2),$Action_swallow$27.$protected(),$Action_swallow$27.$attr_reader("children"),Opal.def($Action_swallow$27,"$with",$Action_call_enforcer_for_merge$25=function(insert_after){var range,enforcer,children,insert_before,replacement;if(null==insert_after)insert_after=$hash2([],{});else if(!insert_after.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(range=insert_after.$$smap.range)&&(range=this.range),null==(enforcer=insert_after.$$smap.enforcer)&&(enforcer=this.enforcer),null==(children=insert_after.$$smap.children)&&(children=this.children),null==(insert_before=insert_after.$$smap.insert_before)&&(insert_before=this.insert_before),null==(replacement=insert_after.$$smap.replacement)&&(replacement=this.replacement),null==(insert_after=insert_after.$$smap.insert_after)&&(insert_after=this.insert_after),$truthy(replacement)&&(children=this.$swallow(children)),this.$class().$new(range,enforcer,$hash2(["children","insert_before","replacement","insert_after"],{children:children,insert_before:insert_before,replacement:replacement,insert_after:insert_after}))},$Action_call_enforcer_for_merge$25.$$arity=-1),Opal.def($Action_swallow$27,"$do_combine",$Action_call_enforcer_for_merge$25=function(action){return action.$range()["$=="](this.range)?this.$merge(action):this.$place_in_hierarchy(action)},$Action_call_enforcer_for_merge$25.$$arity=1),Opal.def($Action_swallow$27,"$place_in_hierarchy",$Action_call_enforcer_for_merge$25=function(action){var extra_sibbling,self=this,family=nil,family=self.$analyse_hierarchy(action);return $truthy(family["$[]"]("fusible"))?self.$fuse_deletions(action,family["$[]"]("fusible"),[].concat(Opal.to_a(family["$[]"]("sibbling_left"))).concat(Opal.to_a(family["$[]"]("child"))).concat(Opal.to_a(family["$[]"]("sibbling_right")))):(extra_sibbling=$truthy(family["$[]"]("parent"))?family["$[]"]("parent").$do_combine(action):$truthy(family["$[]"]("child"))?action.$with($hash2(["children","enforcer"],{children:family["$[]"]("child"),enforcer:self.enforcer})).$combine_children(action.$children()):action,self.$with($hash2(["children"],{children:[].concat(Opal.to_a(family["$[]"]("sibbling_left"))).concat([extra_sibbling]).concat(Opal.to_a(family["$[]"]("sibbling_right")))})))},$Action_call_enforcer_for_merge$25.$$arity=1),Opal.def($Action_swallow$27,"$combine_children",$Action_call_enforcer_for_merge$25=function(more_children){var $$14;return $send(more_children,"inject",[this],(($$14=function(parent,new_child){null==$$14.$$s||$$14.$$s;return null==parent&&(parent=nil),null==new_child&&(new_child=nil),parent.$place_in_hierarchy(new_child)}).$$s=this,$$14.$$arity=2,$$14))},$Action_call_enforcer_for_merge$25.$$arity=1),Opal.def($Action_swallow$27,"$fuse_deletions",$Action_call_enforcer_for_merge$25=function(action,fusible,other_sibblings){var without_fusible=nil,without_fusible=this.$with($hash2(["children"],{children:other_sibblings})),fused_range=$send([action].concat(Opal.to_a(fusible)),"map",[],"range".$to_proc()).$inject("join"),fused_deletion=action.$with($hash2(["range"],{range:fused_range}));return without_fusible.$do_combine(fused_deletion)},$Action_call_enforcer_for_merge$25.$$arity=3),Opal.def($Action_swallow$27,"$bsearch_child_index",$Action_bsearch_child_index$16=function(from){var $$17,size,$ret_or_10,$iter=$Action_bsearch_child_index$16.$$p,$yield=$iter||nil;return $iter&&($Action_bsearch_child_index$16.$$p=null),null==from&&(from=0),size=this.children.$size(),$truthy($ret_or_10=$send(Opal.Range.$new(from,size,!0),"bsearch",[],(($$17=function(i){var self=null==$$17.$$s?this:$$17.$$s;return null==self.children&&(self.children=nil),null==i&&(i=nil),Opal.yield1($yield,self.children["$[]"](i))}).$$s=this,$$17.$$arity=1,$$17)))?$ret_or_10:size},$Action_bsearch_child_index$16.$$arity=-1),Opal.def($Action_swallow$27,"$analyse_hierarchy",$Action_call_enforcer_for_merge$25=function(action){var $$19,$$20,overlap_left,overlap_right,$ret_or_11,$ret_or_12,r=nil,left_index=nil,right_index=nil,lhs=nil,rhs=nil,parent=nil,contained=nil,fusible=nil,r=action.$range(),start=(left_index=$send(this,"bsearch_child_index",[],(($$19=function(child){null==$$19.$$s||$$19.$$s;return null==child&&(child=nil),$rb_gt(child.$range().$end_pos(),r.$begin_pos())}).$$s=this,$$19.$$arity=1,$$19)))["$=="](0)?0:$rb_minus(left_index,1),lhs=$rb_minus(right_index=$send(this,"bsearch_child_index",[start],(($$20=function(child){null==$$20.$$s||$$20.$$s;return null==child&&(child=nil),$rb_ge(child.$range().$begin_pos(),r.$end_pos())}).$$s=this,$$20.$$arity=1,$$20)),left_index);return 0["$==="](rhs=lhs)||((-1)["$==="](rhs)?(left_index=$rb_minus(left_index,1),right_index=$rb_plus(right_index,1),parent=this.children["$[]"](left_index)):(overlap_left=this.children["$[]"](left_index).$range().$begin_pos()["$<=>"](r.$begin_pos()),overlap_right=this.children["$[]"]($rb_minus(right_index,1)).$range().$end_pos()["$<=>"](r.$end_pos()),$truthy($truthy($ret_or_11=$truthy($ret_or_12=lhs["$=="](1))?(rhs=0,"number"==typeof(lhs=overlap_left)&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)):$ret_or_12)?$rb_ge(overlap_right,0):$ret_or_11)?parent=this.children["$[]"](left_index):(contained=this.children["$[]"](Opal.Range.$new(left_index,right_index,!0)),fusible=this.$check_fusible(action,function(){return $truthy((rhs=0,"number"==typeof(lhs=overlap_left)&&"number"==typeof rhs?lhs","$private","$source_line","$*","$length","$each","$line_range","$intersect","$column_range","$size","$[]=","$!","$>=","$map","$name","$!=","$resize","$=~","$source","$adjust"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Diagnostic_last_line_only$8,$Diagnostic_first_line_only$7){var $Diagnostic_last_line_only$8=$klass($Diagnostic_last_line_only$8,null,"Diagnostic"),$nesting=[$Diagnostic_last_line_only$8].concat($Diagnostic_first_line_only$7);return $Diagnostic_last_line_only$8.$$prototype.reason=$Diagnostic_last_line_only$8.$$prototype.arguments=$Diagnostic_last_line_only$8.$$prototype.location=$Diagnostic_last_line_only$8.$$prototype.level=$Diagnostic_last_line_only$8.$$prototype.highlights=nil,Opal.const_set($nesting[0],"LEVELS",["note","warning","error","fatal"].$freeze()),$Diagnostic_last_line_only$8.$attr_reader("level","reason","arguments"),$Diagnostic_last_line_only$8.$attr_reader("location","highlights"),Opal.def($Diagnostic_last_line_only$8,"$initialize",$Diagnostic_first_line_only$7=function(level,reason,arguments$,location,highlights){var $ret_or_1=nil;return null==highlights&&(highlights=[]),$truthy($$($nesting,"LEVELS")["$include?"](level))||this.$raise($$($nesting,"ArgumentError"),"Diagnostic#level must be one of "+$$($nesting,"LEVELS").$join(", ")+"; "+level.$inspect()+" provided."),$truthy(location)||this.$raise("Expected a location"),this.level=level,this.reason=reason,this.arguments=($truthy($ret_or_1=arguments$)?$ret_or_1:$hash2([],{})).$dup().$freeze(),this.location=location,this.highlights=highlights.$dup().$freeze(),this.$freeze()},$Diagnostic_first_line_only$7.$$arity=-5),Opal.def($Diagnostic_last_line_only$8,"$message",$Diagnostic_first_line_only$7=function(){return $$($nesting,"Messages").$compile(this.reason,this.arguments)},$Diagnostic_first_line_only$7.$$arity=0),Opal.def($Diagnostic_last_line_only$8,"$render",$Diagnostic_first_line_only$7=function(){var last_line,last_lineno,last_column,self=this,$a=nil,rhs=nil,lhs=nil;return $truthy($truthy($a=self.location.$line()["$=="](self.location.$last_line()))?$a:self.location["$is?"]("\n"))?$rb_plus([self.location+": "+self.level+": "+self.$message()],self.$render_line(self.location)):(rhs=self.$first_line_only(self.location),last_line=self.$last_line_only(self.location),lhs=$rb_plus($rb_minus(self.location.$last_line(),self.location.$line()),1),$a=self.location.$source_buffer().$decompose_position(self.location.$end_pos()),last_lineno=null==($a=Opal.to_ary($a))[0]?nil:$a[0],last_column=null==$a[1]?nil:$a[1],$rb_plus($rb_plus([self.location+"-"+last_lineno+":"+last_column+": "+self.level+": "+self.$message()],self.$render_line(rhs,(rhs=2,"number"==typeof(lhs=lhs)&&"number"==typeof rhs?rhs"](rhs)),!1)),self.$render_line(last_line,!1,!0)))},$Diagnostic_first_line_only$7.$$arity=0),$Diagnostic_last_line_only$8.$private(),Opal.def($Diagnostic_last_line_only$8,"$render_line",$Diagnostic_first_line_only$7=function(range,ellipsis,rhs){var $$5,$$6,$ret_or_3,lhs,source_line=nil,highlight_line=nil,$writer=nil;return null==ellipsis&&(ellipsis=!1),null==rhs&&(rhs=!1),source_line=range.$source_line(),highlight_line=$rb_times(" ",source_line.$length()),$send(this.highlights,"each",[],(($$5=function(highlight){var line_range,$writer;null==$$5.$$s||$$5.$$s;return null==highlight&&(highlight=nil),line_range=range.$source_buffer().$line_range(range.$line()),$truthy(highlight=highlight.$intersect(line_range))?($writer=[highlight.$column_range(),$rb_times("~",highlight.$size())],$send(highlight_line,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}).$$s=this,$$5.$$arity=1,$$5)),$truthy(range["$is?"]("\n"))?highlight_line=$rb_plus(highlight_line,"^"):($writer=$truthy($truthy($ret_or_3=rhs["$!"]())?(lhs=range.$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)):$ret_or_3)?[range.$column_range(),$rb_plus("^",$rb_times("~",$rb_minus(range.$size(),1)))]:[range.$column_range(),$rb_times("~",range.$size())],$send(highlight_line,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(ellipsis)&&(highlight_line=$rb_plus(highlight_line,"...")),$send([source_line,highlight_line],"map",[],(($$6=function(line){null==$$6.$$s||$$6.$$s;return null==line&&(line=nil),range.$source_buffer().$name()+":"+range.$line()+": "+line}).$$s=this,$$6.$$arity=1,$$6))},$Diagnostic_first_line_only$7.$$arity=-2),Opal.def($Diagnostic_last_line_only$8,"$first_line_only",$Diagnostic_first_line_only$7=function(range){return $truthy(range.$line()["$!="](range.$last_line()))?range.$resize(range.$source()["$=~"](/\n/)):range},$Diagnostic_first_line_only$7.$$arity=1),Opal.def($Diagnostic_last_line_only$8,"$last_line_only",$Diagnostic_last_line_only$8=function(range){return $truthy(range.$line()["$!="](range.$last_line()))?range.$adjust($hash2(["begin_pos"],{begin_pos:range.$source()["$=~"](/[^\n]*$/)})):range},$Diagnostic_last_line_only$8.$$arity=1),nil&&"last_line_only"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/diagnostic/engine"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$attr_accessor","$ignore?","$call","$raise?","$raise","$protected","$==","$level"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Engine_raise$ques$4,$Engine_ignore$ques$3){var $Engine_raise$ques$4=$klass($Engine_raise$ques$4,null,"Engine"),$nesting=[$Engine_raise$ques$4].concat($Engine_ignore$ques$3);return $Engine_raise$ques$4.$$prototype.consumer=$Engine_raise$ques$4.$$prototype.ignore_warnings=$Engine_raise$ques$4.$$prototype.all_errors_are_fatal=nil,$Engine_raise$ques$4.$attr_accessor("consumer"),$Engine_raise$ques$4.$attr_accessor("all_errors_are_fatal"),$Engine_raise$ques$4.$attr_accessor("ignore_warnings"),Opal.def($Engine_raise$ques$4,"$initialize",$Engine_ignore$ques$3=function(consumer){return null==consumer&&(consumer=nil),this.consumer=consumer,this.all_errors_are_fatal=!1,this.ignore_warnings=!1},$Engine_ignore$ques$3.$$arity=-1),Opal.def($Engine_raise$ques$4,"$process",$Engine_ignore$ques$3=function(diagnostic){return $truthy(this["$ignore?"](diagnostic))||$truthy(this.consumer)&&this.consumer.$call(diagnostic),$truthy(this["$raise?"](diagnostic))&&this.$raise($$$($$($nesting,"Parser"),"SyntaxError"),diagnostic),this},$Engine_ignore$ques$3.$$arity=1),$Engine_raise$ques$4.$protected(),Opal.def($Engine_raise$ques$4,"$ignore?",$Engine_ignore$ques$3=function(diagnostic){var $ret_or_1;return $truthy($ret_or_1=this.ignore_warnings)?diagnostic.$level()["$=="]("warning"):$ret_or_1},$Engine_ignore$ques$3.$$arity=1),Opal.def($Engine_raise$ques$4,"$raise?",$Engine_raise$ques$4=function(diagnostic){var $ret_or_2,$ret_or_3=nil;return $truthy($ret_or_2=$truthy($ret_or_3=this.all_errors_are_fatal)?diagnostic.$level()["$=="]("error"):$ret_or_3)?$ret_or_2:diagnostic.$level()["$=="]("fatal")},$Engine_raise$ques$4.$$arity=1),nil&&"raise?"}($$($nesting,"Diagnostic"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/static_environment"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$reset","$[]","$push","$dup","$pop","$add","$to_sym","$include?","$declare","$declared?","$empty?"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($StaticEnvironment_empty$ques$12,$StaticEnvironment_declared_anonymous_blockarg$ques$11){var $StaticEnvironment_empty$ques$12=$klass($StaticEnvironment_empty$ques$12,null,"StaticEnvironment"),$nesting=[$StaticEnvironment_empty$ques$12].concat($StaticEnvironment_declared_anonymous_blockarg$ques$11);return $StaticEnvironment_empty$ques$12.$$prototype.stack=$StaticEnvironment_empty$ques$12.$$prototype.variables=nil,Opal.const_set($nesting[0],"FORWARD_ARGS","FORWARD_ARGS"),Opal.const_set($nesting[0],"ANONYMOUS_BLOCKARG","ANONYMOUS_BLOCKARG"),Opal.def($StaticEnvironment_empty$ques$12,"$initialize",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.$reset()},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$reset",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.variables=$$($nesting,"Set")["$[]"](),this.stack=[]},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$extend_static",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.stack.$push(this.variables),this.variables=$$($nesting,"Set")["$[]"](),this},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$extend_dynamic",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.stack.$push(this.variables),this.variables=this.variables.$dup(),this},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$unextend",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.variables=this.stack.$pop(),this},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$declare",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(name){return this.variables.$add(name.$to_sym()),this},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=1),Opal.def($StaticEnvironment_empty$ques$12,"$declared?",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(name){return this.variables["$include?"](name.$to_sym())},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=1),Opal.def($StaticEnvironment_empty$ques$12,"$declare_forward_args",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.$declare($$($nesting,"FORWARD_ARGS"))},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$declared_forward_args?",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this["$declared?"]($$($nesting,"FORWARD_ARGS"))},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$declare_anonymous_blockarg",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.$declare($$($nesting,"ANONYMOUS_BLOCKARG"))},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$declared_anonymous_blockarg?",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this["$declared?"]($$($nesting,"ANONYMOUS_BLOCKARG"))},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$empty?",$StaticEnvironment_empty$ques$12=function(){return this.stack["$empty?"]()},$StaticEnvironment_empty$ques$12.$$arity=0),nil&&"empty?"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_le(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_ge(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$!=","$emit_comment","$tok","$literal","$flush_string","$extend_content","$emit","$heredoc?","$saved_herebody_s=","$start_interp_brace","$[]=","$diagnostic","$range","$str_s","$gsub","$version?","$nest_and_try_closing","$heredoc_e","$pop_literal","$infer_indent_level","$words?","$!","$eof_codepoint?","$extend_space","$extend_string","$>=","$active?","$slice","$start_with?","$chr","$munge_escape?","$regexp?","$match","$squiggly_heredoc?","$supports_line_continuation_via_slash?","$include?","$scan","$join","$=~","$to_i","$stack_pop","$emit_table","$push_literal","$in_argdef","$arg_or_cmdarg","$<","$emit_do","$nil?","$declared?","$last","$getbyte","$inspect","$end_with?","$empty?","$index","$call","$Float","$to_f","$length","$lambda","$Rational","$Complex","$each","$encode_escape","$%","$in_kwarg","$end_interp_brace_and_try_closing","$lexpop","$saved_herebody_s","$next_state_for_literal","$rstrip","$&","$|","$lex_error","$protected","$force_encoding","$process","$backslash_delimited?","$interpolate?","$lex_en_interp_backslash_delimited_words","$lex_en_plain_backslash_delimited_words","$lex_en_plain_words","$lex_en_interp_backslash_delimited","$lex_en_plain_backslash_delimited","$dedent_level","$type","$lex_en_regexp_modifiers","$upcase"]),function(self,$Lexer_pop_literal$57){var $Lexer$58,$writer,self=$klass(self,null,"Lexer"),$nesting=[self].concat($Lexer_pop_literal$57);return self.$$prototype.source_buffer=self.$$prototype.source_pts=self.$$prototype.cs=self.$$prototype.cmdarg_stack=self.$$prototype.cmdarg=self.$$prototype.cond_stack=self.$$prototype.cond=self.$$prototype.dedent_level=self.$$prototype.token_queue=self.$$prototype.p=self.$$prototype.command_start=self.$$prototype.herebody_s=self.$$prototype.sharp_s=self.$$prototype.ts=self.$$prototype.te=self.$$prototype.top=self.$$prototype.stack=self.$$prototype.version=self.$$prototype.escape_s=self.$$prototype.escape=self.$$prototype.act=self.$$prototype.context=self.$$prototype.static_env=self.$$prototype.newline_s=self.$$prototype.lambda_stack=self.$$prototype.paren_nest=self.$$prototype.num_digits_s=self.$$prototype.num_suffix_s=self.$$prototype.num_base=self.$$prototype.num_xfrm=self.$$prototype.eq_begin_s=self.$$prototype.cs_before_block_comment=self.$$prototype.tokens=self.$$prototype.comments=self.$$prototype.diagnostics=self.$$prototype.literal_stack=nil,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_trans_keys"),self.$private("_lex_trans_keys","_lex_trans_keys=")}(Opal.get_singleton_class(self),$nesting),$writer=[[0,0,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,46,46,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,127,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0,92,9,32,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,48,57,0,127,0,26,0,35,9,32,36,123,0,127,48,57,0,127,0,32,9,32,65,122,65,122,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,46,46,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,0,127,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,10,10,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,122,0,0,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,46,46,46,46,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0]],$send(self,"_lex_trans_keys=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_key_spans"),self.$private("_lex_key_spans","_lex_key_spans=")}(Opal.get_singleton_class(self),$nesting),$writer=[[0,1,1,1,1,1,1,1,1,1,27,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,128,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,96,24,0,1,1,1,24,1,1,93,24,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,24,27,93,27,36,88,128,10,128,27,36,24,88,128,10,128,33,24,58,58,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,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,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,128,128,128,128,128,1,128,128,24,1,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,128,24,0,20,1,84,84,84,1,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,123,0,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,55,0,128,128,128,0,1,0,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,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,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,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,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,84,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,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,0,64,0,84,84,84,1,1,1,1,1,52,1,92,101,91,1]],$send(self,"_lex_key_spans=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_index_offsets"),self.$private("_lex_index_offsets","_lex_index_offsets=")}(Opal.get_singleton_class(self),$nesting),$writer=[[0,0,2,4,6,8,10,12,14,16,18,46,175,304,433,562,609,731,853,947,1069,1191,1238,1360,1482,1516,1518,1612,1734,1838,1967,2096,2225,2354,2401,2523,2645,2739,2861,2983,3030,3152,3274,3308,3310,3404,3526,3630,3759,3888,4017,4146,4275,4404,4533,4662,4791,4920,5049,5178,5307,5436,5565,5567,5569,5571,5700,5702,5704,5706,5708,5837,5966,6095,6224,6353,6482,6611,6740,6869,6998,7127,7256,7385,7514,7643,7772,7901,8030,8032,8034,8036,8038,8048,8050,8052,8054,8056,8058,8060,8062,8064,8193,8195,8324,8409,8411,8496,8498,8500,8502,8504,8506,8508,8637,8639,8724,8809,8894,8979,9064,9066,9195,9324,9391,9393,9522,9651,9653,9655,9657,9659,9788,9876,9878,9925,10047,10169,10263,10385,10507,10554,10676,10798,10832,10834,10928,11050,11154,11283,11412,11541,11670,11799,11928,11930,11932,12061,12077,12088,12099,12110,12121,12123,12125,12127,12129,12131,12133,12135,12264,12266,12351,12436,12521,12606,12691,12776,12778,12780,12865,12950,12952,12954,12956,12958,12960,13057,13082,13083,13085,13087,13089,13114,13116,13118,13212,13237,13326,13455,13466,13595,13717,13718,13719,13728,13737,13738,13739,13833,13834,13835,13836,13930,13932,13933,13934,13935,14029,14085,14141,14142,14198,14254,14255,14302,14396,14490,14491,14492,14586,14642,14698,14699,14746,14748,14842,14919,14975,15031,15087,15088,15215,15342,15343,15470,15471,15598,15725,15852,15979,15980,16107,16234,16361,16488,16615,16742,16743,16744,16800,16801,16895,16984,17113,17124,17253,17375,17376,17377,17386,17395,17396,17397,17491,17492,17493,17494,17588,17590,17591,17592,17593,17687,17743,17799,17800,17856,17912,17913,17960,18054,18148,18149,18150,18244,18300,18356,18357,18404,18406,18500,18577,18633,18689,18745,18746,18873,19e3,19001,19128,19129,19256,19383,19510,19637,19638,19765,19892,20019,20146,20273,20400,20401,20402,20458,20459,20553,20578,20606,20700,20728,20765,20854,20983,20994,21123,21151,21188,21213,21302,21431,21442,21571,21605,21630,21689,21748,21778,21907,21918,22047,22176,22305,22434,22459,22460,22527,22529,22531,22660,22789,22800,22802,22804,22806,22808,22810,22813,22815,22882,22884,22887,23016,23145,23274,23403,23532,23661,23790,23792,23794,23923,24052,24181,24310,24439,24568,24697,24826,24955,25084,25213,25342,25471,25600,25729,25858,25987,26116,26245,26374,26503,26632,26761,26890,27019,27148,27277,27406,27535,27664,27793,27922,28051,28180,28309,28438,28567,28696,28825,28954,29083,29212,29341,29470,29599,29728,29857,29986,30115,30244,30373,30502,30631,30760,30889,31018,31147,31276,31405,31534,31663,31792,31921,32050,32179,32308,32437,32566,32695,32824,32953,33082,33211,33340,33469,33598,33727,33856,33985,34114,34243,34372,34501,34503,34632,34761,34786,34788,34790,34792,34794,34795,34924,35053,35055,35056,35081,35082,35149,35151,35153,35155,35157,35159,35162,35164,35231,35233,35236,35365,35367,35369,35371,35499,35628,35691,35745,35799,35800,35854,35909,35911,35913,35915,35940,35941,36070,36071,36188,36189,36191,36193,36194,36248,36250,36252,36254,36279,36281,36410,36412,36414,36416,36418,36547,36676,36805,36806,36935,36937,37062,37087,37089,37091,37093,37094,37096,37097,37226,37355,37380,37381,37383,37385,37387,37388,37517,37646,37775,37904,38033,38162,38291,38420,38549,38678,38807,38936,39065,39194,39323,39452,39581,39710,39715,39716,39783,39785,39786,39787,39788,39813,39815,39840,39907,39909,39911,40040,40065,40066,40087,40089,40174,40259,40344,40346,40348,40350,40378,40507,40636,40638,40639,40706,40709,40710,40711,40712,40713,40780,40909,40920,40922,40924,40926,40929,40931,40933,40936,41065,41076,41205,41207,41209,41212,41213,41239,41270,41272,41274,41341,41344,41468,41469,41598,41727,41849,41850,41851,41860,41869,41870,41871,41965,41966,41967,41968,42062,42064,42065,42066,42067,42161,42217,42273,42274,42330,42386,42387,42434,42528,42622,42623,42624,42718,42774,42830,42831,42878,42880,42974,43051,43107,43163,43219,43220,43347,43474,43475,43602,43603,43730,43857,43984,44111,44112,44239,44366,44493,44620,44747,44874,45001,45128,45255,45382,45509,45636,45763,45890,46017,46144,46271,46398,46525,46526,46527,46583,46584,46713,46842,46971,46972,46974,46975,47104,47233,47362,47491,47620,47749,47878,48007,48136,48265,48394,48523,48652,48781,48910,49039,49168,49297,49426,49555,49684,49813,49942,50071,50200,50329,50458,50587,50716,50845,50974,51103,51232,51361,51490,51619,51748,51877,52006,52135,52264,52393,52522,52651,52780,52909,53038,53167,53296,53425,53554,53683,53812,53941,54070,54199,54328,54457,54586,54715,54844,54911,55040,55169,55298,55427,55556,55685,55814,55943,56072,56201,56330,56459,56588,56717,56846,56975,57104,57233,57362,57491,57620,57749,57878,58007,58136,58137,58202,58296,58321,58322,58324,58326,58328,58329,58458,58587,58612,58613,58615,58617,58619,58620,58749,58878,58880,58881,58906,58907,58974,58976,58978,59107,59236,59247,59249,59274,59275,59276,59297,59300,59313,59315,59317,59372,59421,59497,59565,59581,59640,59642,59643,59649,59650,59651,59719,59787,59855,59923,59934,59936,59937,59943,59945,59946,59947,60015,60083,60151,60219,60287,60355,60423,60491,60561,60629,60699,60767,60769,60772,60774,60841,60843,60846,60975,61104,61105,61234,61363,61492,61621,61750,61879,61880,61882,61883,61884,62013,62142,62271,62400,62529,62658,62787,62916,63045,63174,63303,63432,63561,63690,63819,63948,64077,64206,64335,64464,64593,64722,64851,64980,65109,65238,65367,65496,65625,65754,65883,66012,66141,66270,66399,66528,66657,66742,66871,67e3,67129,67258,67387,67516,67645,67774,67903,68032,68161,68290,68419,68548,68677,68806,68935,69064,69193,69322,69451,69580,69709,69838,69967,70096,70225,70354,70483,70612,70741,70870,70999,71128,71257,71386,71515,71644,71773,71902,72031,72160,72289,72418,72547,72676,72805,72934,73063,73192,73321,73450,73579,73708,73837,73966,74095,74224,74353,74482,74611,74740,74869,74998,75127,75128,75193,75194,75279,75364,75449,75451,75453,75455,75457,75459,75512,75514,75607,75709,75801]],$send(self,"_lex_index_offsets=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_indicies"),self.$private("_lex_indicies","_lex_indicies=")}(Opal.get_singleton_class(self),$nesting),$writer=[[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,0,0,10,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,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,14,14,12,14,12,14,14,12,12,14,14,14,15,14,14,16,16,16,16,16,16,16,16,16,16,14,14,14,14,14,14,14,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,12,14,12,12,13,14,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,12,12,12,14,12,13,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,14,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,14,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,18,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,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,12,12,12,12,12,13,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,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,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,12,12,12,12,12,13,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,20,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,24,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,22,22,22,22,22,22,22,22,25,22,19,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,26,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,22,22,22,22,22,22,22,22,25,22,19,27,27,27,19,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,19,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,19,30,30,30,19,30,30,30,30,30,31,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,32,30,19,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,32,30,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,33,20,19,34,34,34,19,34,34,34,34,34,35,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,19,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,34,36,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,37,34,34,34,34,34,34,38,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,39,34,19,34,34,34,19,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,19,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,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,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,39,34,40,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,41,19,41,19,19,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,44,42,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,26,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,22,22,22,22,22,22,22,22,25,22,19,45,45,45,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,45,45,45,45,45,45,45,46,46,46,46,46,46,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,46,46,46,46,46,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,47,49,47,49,49,47,47,49,49,49,50,49,49,51,51,51,51,51,51,51,51,51,51,49,49,49,49,49,49,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,49,47,47,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,49,47,48,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,49,49,49,49,49,49,49,49,47,47,47,47,47,47,47,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,47,47,47,47,49,47,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,47,47,47,47,47,49,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,52,52,52,52,52,52,52,52,52,52,47,47,47,47,47,47,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,52,52,52,52,52,52,52,52,52,52,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,55,54,57,57,57,54,57,57,57,57,57,58,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,59,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,61,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,62,62,62,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,54,65,65,65,54,65,65,65,65,65,66,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,67,65,54,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,67,65,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,68,55,54,69,69,69,54,69,69,69,69,69,70,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,71,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,72,69,69,69,69,69,69,73,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,69,54,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,69,75,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,76,54,76,54,54,77,77,77,54,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,54,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,79,77,54,57,57,57,54,57,57,57,57,57,58,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,61,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,80,80,80,54,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,54,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,80,80,80,80,80,80,80,81,81,81,81,81,81,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,80,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,82,84,82,84,84,82,82,84,84,84,85,84,84,86,86,86,86,86,86,86,86,86,86,84,84,84,84,84,84,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,84,82,82,83,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,84,82,83,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,84,84,84,84,84,84,84,84,82,82,82,82,82,82,82,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,82,82,82,82,84,82,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,82,82,82,82,82,84,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,87,87,87,87,87,87,87,87,87,87,82,82,82,82,82,82,88,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,87,87,87,87,87,87,87,87,87,87,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,91,91,89,91,89,91,91,89,89,91,91,91,92,91,91,93,93,93,93,93,93,93,93,93,93,91,91,91,91,91,91,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,91,89,89,90,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,91,89,90,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,91,91,91,91,91,91,91,91,91,91,89,89,89,89,89,89,89,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,89,89,89,89,91,89,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,89,89,89,89,89,91,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,94,94,94,94,94,94,94,94,94,94,89,89,89,89,89,89,95,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,90,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,89,90,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,94,94,94,94,94,94,94,94,94,94,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,90,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,89,90,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97,98,97,98,97,97,98,98,97,97,97,99,97,97,100,100,100,100,100,100,100,100,100,100,97,97,97,97,97,97,97,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,97,98,98,96,97,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,98,98,97,98,96,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,97,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,97,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,101,101,101,101,101,101,101,101,101,101,98,98,98,98,98,98,102,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,98,98,98,98,101,98,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,98,98,98,98,98,101,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,103,103,103,103,103,103,103,103,103,103,98,98,98,98,98,98,98,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,98,98,98,98,103,98,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,98,98,98,98,98,103,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,104,104,104,104,105,104,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,104,104,104,104,104,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,106,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,110,108,108,108,108,108,108,108,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109,109,111,108,108,108,108,110,108,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,108,108,108,108,109,108,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,108,108,108,108,108,109,111,108,108,112,113,108,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,116,114,114,114,114,114,114,114,114,114,114,114,114,114,114,115,115,115,115,115,115,115,115,115,115,117,114,114,114,114,116,114,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,114,114,114,114,115,114,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,114,114,114,114,114,115,117,114,119,118,120,118,121,118,118,118,118,118,118,118,118,118,118,123,118,123,123,123,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,123,118,118,118,118,124,125,118,126,118,127,128,129,130,131,124,118,118,118,118,118,118,118,118,118,118,132,118,133,129,134,135,118,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,136,137,129,138,122,118,122,122,122,122,122,122,122,122,139,122,122,122,122,122,122,122,122,140,122,122,141,122,142,122,122,122,143,144,118,138,118,122,118,118,118,118,118,118,118,118,118,145,118,145,145,145,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,145,118,118,118,118,146,147,118,148,118,149,150,151,152,153,146,118,118,118,118,118,118,118,118,118,118,154,118,155,151,156,157,118,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,158,159,151,120,115,118,115,115,115,115,115,115,115,115,160,115,115,115,115,115,115,115,115,161,115,115,162,115,163,115,115,115,164,165,118,120,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,167,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,168,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,169,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,170,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,171,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,173,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,174,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,175,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,166,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,176,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,177,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,178,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,180,179,181,179,182,179,151,179,183,179,179,179,179,179,179,179,184,179,185,179,186,179,151,179,187,179,151,179,188,179,182,179,190,189,191,191,191,191,191,191,191,191,191,193,191,193,193,193,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,193,191,191,191,191,191,191,191,194,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,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,191,195,191,191,192,191,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,191,191,191,191,191,192,197,191,191,191,191,191,191,191,191,191,191,199,191,199,199,199,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,199,191,191,191,191,191,191,191,200,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,191,201,191,191,198,191,198,198,198,202,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,191,191,191,191,191,198,204,203,204,204,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,204,203,203,203,203,203,203,203,205,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,203,203,203,203,203,203,203,203,203,203,203,203,206,203,207,203,208,203,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,203,203,203,203,203,203,203,209,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,203,203,203,203,203,203,203,203,203,203,203,203,210,203,211,212,214,213,215,213,216,213,217,213,218,213,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,220,220,220,220,220,220,220,220,220,220,220,220,220,219,219,219,219,219,219,219,219,219,219,220,220,220,220,220,220,220,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,220,220,220,220,220,220,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,220,220,220,220,220,219,221,211,222,223,222,222,222,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,222,211,211,224,211,211,211,211,211,211,211,211,211,211,211,211,225,225,225,225,225,225,225,225,225,225,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,226,211,227,228,227,227,227,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,227,211,211,229,211,211,211,211,211,211,211,211,211,211,211,211,230,230,230,230,230,230,230,230,230,230,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,231,211,233,234,233,233,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,235,232,232,232,232,232,232,232,232,232,232,232,232,236,236,236,236,236,236,236,236,236,236,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,237,232,239,240,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,239,244,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,223,211,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,247,245,247,245,247,247,245,245,247,247,247,248,247,247,249,249,249,249,249,249,249,249,249,249,247,247,247,247,247,247,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,247,245,245,246,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,245,245,247,245,246,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,247,247,247,247,247,247,247,247,247,245,245,245,245,245,245,245,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,245,245,245,245,247,245,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,245,245,245,245,245,247,250,247,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,245,250,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,252,245,245,245,245,253,245,245,245,245,245,254,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,221,245,245,245,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,245,245,245,245,251,255,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,245,245,245,254,245,251,257,257,257,257,257,257,257,257,257,257,258,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,256,256,256,256,256,256,256,256,256,256,257,257,257,257,257,257,257,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,257,257,257,257,256,257,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,257,257,257,257,257,256,260,259,263,262,258,257,263,264,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,252,245,245,245,245,253,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,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,245,245,245,245,251,255,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,245,245,245,245,245,251,266,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,263,265,263,266,267,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,268,267,270,270,270,267,270,270,270,270,270,271,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,272,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,274,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,275,275,275,267,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,267,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,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,277,275,267,278,278,278,267,278,278,278,278,278,279,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,267,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,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,278,278,278,278,278,278,278,278,278,278,278,280,278,267,278,278,278,267,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,267,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,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,278,278,278,278,278,278,278,278,278,278,278,280,278,267,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,281,268,267,282,282,282,267,282,282,282,282,282,283,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,284,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,285,282,282,282,282,282,282,286,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,287,282,267,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,287,282,288,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,289,267,289,267,267,290,290,290,267,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,267,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,292,290,267,270,270,270,267,270,270,270,270,270,271,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,274,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,293,293,293,267,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,267,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,294,294,294,294,293,293,293,293,293,293,293,294,294,294,294,294,294,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,293,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,295,295,295,295,295,295,295,295,295,295,297,211,211,298,211,296,211,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,211,211,211,211,295,211,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,211,211,211,211,211,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,299,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,295,295,300,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,295,295,295,295,295,295,295,301,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,301,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,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,304,302,302,302,302,302,302,302,302,302,302,302,302,302,302,303,303,303,303,303,303,303,303,303,303,305,302,302,302,302,304,302,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,302,302,302,302,303,302,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,302,302,302,302,302,303,305,302,302,306,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,307,307,307,307,307,307,307,307,307,307,308,308,308,308,308,308,308,308,308,308,307,307,307,307,307,307,307,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,308,307,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,308,310,309,310,309,309,311,311,311,311,311,311,311,311,311,311,309,311,311,311,311,311,311,311,311,311,311,309,312,312,312,312,312,312,312,312,312,312,309,314,314,314,314,314,314,314,314,314,314,313,315,315,315,315,315,315,315,315,315,315,313,317,316,318,316,319,316,320,316,322,321,323,321,324,321,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,307,307,307,307,307,307,307,307,307,307,325,325,325,325,325,325,325,325,325,325,307,307,307,307,307,307,307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,307,307,307,307,325,307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,307,307,307,307,307,325,326,313,327,328,327,327,327,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,327,313,313,329,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,330,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,331,313,332,333,332,332,332,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,332,313,313,334,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,335,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,336,313,338,339,338,338,338,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,338,337,337,340,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,341,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,342,337,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,347,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,344,350,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,347,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,351,313,328,313,353,354,353,353,353,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,353,352,352,355,352,352,356,352,352,352,352,352,352,352,357,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,358,352,360,354,360,360,360,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,360,359,359,355,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,358,359,363,362,365,364,366,361,367,361,368,352,370,369,369,369,370,369,369,369,369,371,372,371,371,371,369,369,369,369,369,369,369,369,369,369,369,369,370,369,369,369,369,369,371,369,369,373,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,374,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,375,369,369,376,369,371,377,371,371,371,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,371,377,378,379,380,381,382,384,383,386,387,386,386,386,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,385,372,383,388,383,390,389,389,389,390,389,389,389,389,391,392,391,391,391,389,389,389,389,389,389,389,389,389,389,389,389,390,389,389,389,389,389,391,389,389,393,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,394,389,391,395,391,391,391,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,391,395,397,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,398,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,399,396,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,13,13,13,13,13,13,13,13,13,13,400,400,400,400,400,400,400,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,400,400,400,400,13,400,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,400,400,400,400,400,13,16,16,16,16,16,16,16,16,16,16,400,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,13,13,13,13,13,13,13,13,13,13,401,401,401,401,401,401,401,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,401,401,401,401,17,401,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,401,401,401,401,401,17,404,403,403,403,404,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,404,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,405,405,405,405,405,405,405,405,403,403,403,403,403,403,403,403,403,403,403,406,403,403,403,403,403,403,403,403,403,407,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,408,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,409,403,403,410,403,411,412,414,414,414,414,414,414,414,414,413,415,415,415,415,415,415,415,415,413,413,416,416,42,42,42,416,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,416,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,417,42,418,419,420,420,42,42,42,420,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,420,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,421,42,41,420,422,423,424,424,27,27,27,424,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,424,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,425,27,426,426,426,426,426,426,426,426,426,426,424,424,424,424,424,424,424,426,426,426,426,426,426,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,426,426,426,426,426,426,424,428,428,428,428,428,428,428,428,428,428,427,427,427,427,427,427,427,428,428,428,428,428,428,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,428,428,428,428,428,428,427,427,429,429,429,429,429,429,429,429,429,429,420,420,420,420,420,420,420,429,429,429,429,429,429,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,429,429,429,429,429,429,420,431,431,431,431,431,431,431,431,431,431,430,430,430,430,430,430,430,431,431,431,431,431,431,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,431,431,431,431,431,431,430,430,420,20,20,20,420,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,420,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,432,20,416,27,27,27,416,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,416,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,416,433,433,433,416,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,416,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,434,433,435,436,436,433,433,433,436,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,436,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,437,433,438,438,438,438,438,438,438,438,438,438,436,436,436,436,436,436,436,438,438,438,438,438,438,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,438,438,438,438,438,438,436,440,440,440,440,440,440,440,440,440,440,439,439,439,439,439,439,439,440,440,440,440,440,440,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,440,440,440,440,440,440,439,439,436,20,20,20,436,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,436,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,432,20,441,436,436,27,27,27,436,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,436,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,443,443,443,443,443,443,443,443,443,443,442,442,442,442,442,442,442,443,443,443,443,443,443,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,443,443,443,443,443,443,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,444,442,445,445,445,445,445,445,445,445,445,445,442,442,442,442,442,442,442,445,445,445,445,445,445,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,445,445,445,445,445,445,442,446,446,446,446,446,446,446,446,446,446,442,442,442,442,442,442,442,446,446,446,446,446,446,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,446,446,446,446,446,446,442,447,447,447,447,447,447,447,447,447,447,442,442,442,442,442,442,442,447,447,447,447,447,447,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,447,447,447,447,447,447,442,448,451,450,450,450,451,450,450,450,450,452,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,451,450,450,450,450,450,452,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,453,453,453,453,453,453,453,453,453,453,450,450,450,450,450,450,450,453,453,453,453,453,453,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,453,453,453,453,453,453,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,454,450,451,450,450,450,451,450,450,450,450,449,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,451,450,450,450,450,450,449,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,455,455,455,455,455,455,455,455,455,455,450,450,450,450,450,450,450,455,455,455,455,455,455,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,455,455,455,455,455,455,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,456,450,449,451,455,455,455,451,455,455,455,455,449,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,451,455,455,455,455,455,449,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,449,455,457,451,458,458,458,451,458,458,458,458,452,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,452,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,453,453,453,453,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,449,458,451,458,458,458,451,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,455,455,455,455,455,455,455,455,455,455,458,458,458,458,458,458,458,455,455,455,455,455,455,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,455,455,455,455,455,455,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,460,460,460,460,460,460,460,460,460,460,458,458,458,458,458,458,458,460,460,460,460,460,460,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,460,460,460,460,460,460,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,453,453,453,453,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,462,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,463,463,463,463,463,463,463,463,463,463,458,458,458,458,458,458,458,463,463,463,463,463,463,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,463,463,463,463,463,463,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,464,464,464,464,464,464,464,464,464,464,458,458,458,458,458,458,458,464,464,464,464,464,464,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,464,464,464,464,464,464,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,465,465,465,465,465,465,465,465,465,465,458,458,458,458,458,458,458,465,465,465,465,465,465,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,465,465,465,465,465,465,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,466,466,466,466,466,466,466,466,466,466,458,458,458,458,458,458,458,466,466,466,466,466,466,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,466,466,466,466,466,466,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,467,467,467,467,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,467,467,467,467,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,449,458,468,469,471,471,471,471,471,471,471,471,471,471,470,470,470,470,470,470,470,471,471,471,471,471,471,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,471,471,471,471,471,471,470,470,473,472,472,472,473,472,472,472,472,472,474,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,473,472,472,472,472,472,472,472,472,475,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,476,472,478,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,479,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,480,477,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,48,48,48,48,48,48,48,48,48,48,481,481,481,481,481,481,481,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,481,481,481,481,48,481,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,481,481,481,481,481,48,51,51,51,51,51,51,51,51,51,51,481,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,48,48,48,48,48,48,48,48,48,48,482,482,482,482,482,482,482,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,482,482,482,482,52,482,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,482,482,482,482,482,52,485,484,484,484,485,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,485,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,486,486,486,486,486,486,486,486,484,484,484,484,484,484,484,484,484,484,484,487,484,484,484,484,484,484,484,484,484,488,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,489,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,490,484,484,491,484,492,493,495,495,495,495,495,495,495,495,494,496,496,496,496,496,496,496,496,494,494,497,497,77,77,77,497,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,497,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,498,77,499,500,501,501,77,77,77,501,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,501,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,502,77,76,501,503,504,505,505,62,62,62,505,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,505,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,506,62,507,507,507,507,507,507,507,507,507,507,505,505,505,505,505,505,505,507,507,507,507,507,507,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,507,507,507,507,507,507,505,509,509,509,509,509,509,509,509,509,509,508,508,508,508,508,508,508,509,509,509,509,509,509,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,509,509,509,509,509,509,508,508,510,510,510,510,510,510,510,510,510,510,501,501,501,501,501,501,501,510,510,510,510,510,510,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,510,510,510,510,510,510,501,512,512,512,512,512,512,512,512,512,512,511,511,511,511,511,511,511,512,512,512,512,512,512,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,512,512,512,512,512,512,511,511,501,55,55,55,501,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,501,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,513,55,497,62,62,62,497,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,497,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,497,514,514,514,497,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,497,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,515,514,516,517,517,514,514,514,517,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,517,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,518,514,519,519,519,519,519,519,519,519,519,519,517,517,517,517,517,517,517,519,519,519,519,519,519,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,519,519,519,519,519,519,517,521,521,521,521,521,521,521,521,521,521,520,520,520,520,520,520,520,521,521,521,521,521,521,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,521,521,521,521,521,521,520,520,517,55,55,55,517,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,517,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,513,55,522,517,517,62,62,62,517,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,517,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,524,524,524,524,524,524,524,524,524,524,523,523,523,523,523,523,523,524,524,524,524,524,524,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,524,524,524,524,524,524,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,525,523,526,526,526,526,526,526,526,526,526,526,523,523,523,523,523,523,523,526,526,526,526,526,526,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,526,526,526,526,526,526,523,527,527,527,527,527,527,527,527,527,527,523,523,523,523,523,523,523,527,527,527,527,527,527,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,527,527,527,527,527,527,523,528,528,528,528,528,528,528,528,528,528,523,523,523,523,523,523,523,528,528,528,528,528,528,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,528,528,528,528,528,528,523,529,532,531,531,531,532,531,531,531,531,533,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,532,531,531,531,531,531,533,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,534,534,534,534,534,534,534,534,534,534,531,531,531,531,531,531,531,534,534,534,534,534,534,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,534,534,534,534,534,534,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,535,531,532,531,531,531,532,531,531,531,531,530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,532,531,531,531,531,531,530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,536,536,536,536,536,536,536,536,536,536,531,531,531,531,531,531,531,536,536,536,536,536,536,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,536,536,536,536,536,536,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,537,531,530,532,536,536,536,532,536,536,536,536,530,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,532,536,536,536,536,536,530,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,530,536,538,532,539,539,539,532,539,539,539,539,533,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,533,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,534,534,534,534,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,530,539,532,539,539,539,532,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,536,536,536,536,536,536,536,536,536,536,539,539,539,539,539,539,539,536,536,536,536,536,536,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,536,536,536,536,536,536,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,541,541,541,541,541,541,541,541,541,539,539,539,539,539,539,539,541,541,541,541,541,541,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,541,541,541,541,541,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,534,534,534,534,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,543,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,544,544,544,544,544,544,544,544,544,544,539,539,539,539,539,539,539,544,544,544,544,544,544,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,544,544,544,544,544,544,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,545,545,545,545,545,545,545,545,545,545,539,539,539,539,539,539,539,545,545,545,545,545,545,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,545,545,545,545,545,545,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,546,546,546,546,546,546,546,546,546,546,539,539,539,539,539,539,539,546,546,546,546,546,546,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,546,546,546,546,546,546,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,547,547,547,547,547,547,547,547,547,547,539,539,539,539,539,539,539,547,547,547,547,547,547,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,547,547,547,547,547,547,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,548,548,548,548,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,548,548,548,548,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,530,539,549,550,552,552,552,552,552,552,552,552,552,552,551,551,551,551,551,551,551,552,552,552,552,552,552,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,552,552,552,552,552,552,551,551,554,553,553,553,554,553,553,553,553,555,556,555,555,555,553,553,553,553,553,553,553,553,553,553,553,553,554,553,553,553,553,553,555,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,557,553,555,558,555,555,555,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,555,558,559,560,560,560,559,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,559,560,562,561,561,561,562,561,561,561,561,561,563,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,562,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,564,561,565,566,566,566,565,566,566,566,566,566,567,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,565,566,569,568,568,568,569,568,568,568,568,568,570,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,569,568,568,568,568,568,568,568,568,571,568,573,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,574,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,575,572,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,83,83,83,83,83,83,83,83,83,83,576,576,576,576,576,576,576,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,576,576,576,576,83,576,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,576,576,576,576,576,83,86,86,86,86,86,86,86,86,86,86,576,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,83,83,83,83,83,83,83,83,83,83,577,577,577,577,577,577,577,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,577,577,577,577,87,577,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,577,577,577,577,577,87,579,578,578,578,579,578,578,578,578,578,580,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,579,578,582,581,581,581,582,581,581,581,581,583,584,583,583,583,581,581,581,581,581,581,581,581,581,581,581,581,582,581,581,581,581,581,583,581,581,585,581,583,586,583,583,583,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,583,586,588,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,589,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,590,587,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,90,90,90,90,90,90,90,90,90,90,591,591,591,591,591,591,591,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,591,591,591,591,90,591,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,591,591,591,591,591,90,93,93,93,93,93,93,93,93,93,93,591,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,90,90,90,90,90,90,90,90,90,90,592,592,592,592,592,592,592,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,592,592,592,592,94,592,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,592,592,592,592,592,94,594,593,593,593,594,593,593,593,593,595,596,595,595,595,593,593,593,593,593,593,593,593,593,593,593,593,594,593,593,593,593,593,595,593,595,597,595,595,595,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,595,597,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,598,598,598,598,598,598,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,598,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,600,600,600,600,600,600,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,600,601,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,602,98,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,96,96,96,96,96,96,96,96,96,96,603,603,603,603,603,603,603,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,603,603,603,603,96,603,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,603,603,603,603,603,96,100,100,100,100,100,100,100,100,100,100,603,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,101,101,101,101,101,101,101,101,101,101,604,604,604,604,604,604,604,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,604,604,604,604,101,604,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,604,604,604,604,604,101,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,103,103,103,103,103,103,103,103,103,103,605,605,605,605,605,605,605,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,605,605,605,605,103,605,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,605,605,605,605,605,103,607,608,608,608,607,608,608,608,608,609,610,609,609,609,608,608,608,608,608,608,608,608,608,608,608,608,607,608,608,608,608,608,609,611,608,612,613,614,615,608,608,608,616,617,608,617,608,618,608,608,608,608,608,608,608,608,608,608,619,608,620,621,622,608,608,623,624,623,623,625,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,626,627,608,618,628,618,629,630,631,632,633,634,606,606,635,606,606,606,636,637,638,606,606,639,640,641,642,606,643,606,644,606,608,645,608,617,608,606,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,647,646,646,646,646,646,646,646,646,646,646,646,646,646,646,606,606,606,606,606,606,606,606,606,606,646,646,646,647,646,647,646,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,646,646,646,646,606,646,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,646,646,646,646,646,606,609,648,609,609,609,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,609,648,649,618,650,650,618,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,618,650,651,652,653,654,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,105,105,655,105,655,105,105,655,655,105,105,105,657,105,105,658,658,658,658,658,658,658,658,658,658,105,105,105,105,105,105,105,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,655,105,655,655,656,105,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,655,655,655,105,655,656,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,656,656,656,656,656,656,656,656,656,656,659,659,659,659,659,659,659,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,659,659,659,659,656,659,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,659,659,659,659,659,656,658,658,658,658,658,658,658,658,658,658,659,660,650,618,650,618,650,618,650,662,661,618,663,650,618,650,664,618,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,618,655,618,650,618,618,650,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,647,646,646,646,646,646,646,646,646,646,646,646,646,646,646,623,623,623,623,623,623,623,623,623,623,646,646,646,647,646,647,646,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,646,646,646,646,623,646,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,646,646,646,646,646,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,666,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,667,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,668,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,623,623,623,623,623,669,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,623,623,623,623,623,670,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,669,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,664,655,610,655,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,672,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,673,674,606,606,606,606,606,675,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,676,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,677,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,678,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,679,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,680,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,681,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,682,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,683,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,684,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,685,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,686,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,682,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,687,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,686,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,688,606,689,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,690,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,691,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,692,606,606,606,606,606,606,606,606,606,606,606,606,693,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,694,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,695,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,696,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,697,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,698,606,606,606,606,606,606,606,606,606,606,699,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,701,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,691,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,702,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,703,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,647,704,704,704,704,704,704,704,704,704,704,704,704,704,704,606,606,606,606,606,606,606,606,606,606,704,704,704,647,704,647,704,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,704,704,704,704,606,704,606,606,606,606,606,606,606,606,705,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,704,704,704,704,704,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,706,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,707,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,708,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,709,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,710,606,711,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,712,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,684,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,714,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,715,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,716,606,606,606,606,606,606,606,606,606,606,606,606,606,638,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,698,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,684,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,717,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,718,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,719,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,720,606,606,606,721,606,606,606,606,606,722,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,722,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,723,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,724,606,606,606,606,606,606,606,606,606,606,606,606,606,606,725,726,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,727,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,728,606,606,729,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,695,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,730,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,731,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,732,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,638,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,733,606,606,606,606,606,606,606,606,606,727,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,695,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,734,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,735,606,606,606,606,606,606,606,736,606,606,606,606,606,606,606,737,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,701,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,721,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,738,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,695,606,606,606,719,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,739,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,740,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,689,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,618,650,742,743,743,743,742,743,743,743,743,744,743,744,744,744,743,743,743,743,743,743,743,743,743,743,743,743,742,743,743,743,743,743,744,743,743,745,743,743,743,743,743,743,743,743,743,743,746,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,743,747,743,743,741,743,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,743,743,743,743,743,741,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,110,748,748,748,748,748,748,748,748,748,748,748,748,748,748,109,109,109,109,109,109,109,109,109,109,111,748,748,748,748,110,748,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,748,748,748,748,109,748,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,748,748,748,748,748,109,744,749,744,744,744,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,744,749,750,751,752,753,754,748,755,748,756,758,759,759,759,758,759,759,759,759,760,761,760,760,760,759,759,759,759,759,759,759,759,759,759,759,759,758,759,759,759,759,759,760,762,759,763,759,764,765,759,759,759,766,767,759,767,759,764,759,759,759,759,759,759,759,759,759,759,759,759,768,769,770,759,759,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,772,773,759,764,757,764,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,759,774,759,767,759,757,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,776,775,775,775,775,775,775,775,775,775,775,775,775,775,775,757,757,757,757,757,757,757,757,757,757,775,775,775,775,775,776,775,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,775,775,775,775,757,775,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,775,775,775,775,775,757,778,777,779,760,780,760,760,760,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,760,780,781,764,782,782,764,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,764,782,783,784,785,786,764,782,764,782,764,782,764,787,782,764,782,789,764,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,764,788,764,782,764,764,782,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,776,790,790,790,790,790,790,790,790,790,790,790,790,790,790,771,771,771,771,771,771,771,771,771,771,790,790,790,790,790,776,790,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,790,790,790,790,771,790,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,790,790,790,790,790,771,789,788,761,788,764,782,792,791,791,791,792,791,791,791,791,793,794,793,793,793,791,791,791,791,791,791,791,791,791,791,791,791,792,791,791,791,791,791,793,791,791,795,791,120,796,791,797,791,798,120,151,799,153,120,791,791,791,791,791,791,791,791,791,791,800,791,801,151,802,803,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,151,804,151,120,791,791,791,791,791,791,791,791,791,791,805,791,791,791,791,791,791,791,791,806,791,791,807,791,808,791,791,791,164,165,791,120,791,809,809,809,809,809,809,809,809,809,793,809,793,793,793,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,793,809,809,809,809,146,147,809,148,809,149,150,151,152,153,146,809,809,809,809,809,809,809,809,809,809,154,809,155,151,156,157,809,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,158,159,151,120,115,809,115,115,115,115,115,115,115,115,160,115,115,115,115,115,115,115,115,161,115,115,162,115,163,115,115,115,164,165,809,120,809,115,810,811,811,811,810,811,811,811,811,151,812,151,151,151,811,811,811,811,811,811,811,811,811,811,811,811,810,811,811,811,811,811,151,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,151,811,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,120,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,813,151,812,151,151,151,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,151,814,814,814,814,814,814,814,814,814,815,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,151,814,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,151,114,816,810,151,810,818,817,820,821,820,820,820,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,820,819,822,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,116,810,810,810,810,810,810,810,810,810,810,810,810,810,810,115,115,115,115,115,115,115,115,115,115,117,810,810,810,810,116,810,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,810,810,810,810,115,810,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,810,810,810,810,810,115,823,151,812,151,151,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,120,810,824,825,826,827,828,829,151,812,151,151,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,120,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,151,817,120,830,120,830,831,832,831,831,831,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,831,819,833,830,834,834,834,834,834,834,834,834,834,123,834,123,123,123,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,123,834,834,834,834,124,125,834,126,834,127,128,129,130,131,124,834,834,834,834,834,834,834,834,834,834,132,834,133,129,134,135,834,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,136,137,129,138,122,834,122,122,122,122,122,122,122,122,139,122,122,122,122,122,122,122,122,140,122,122,141,122,142,122,122,122,143,144,834,138,834,122,151,830,835,830,836,830,837,830,838,190,190,190,838,190,190,190,190,839,190,839,839,839,190,190,190,190,190,190,190,190,190,190,190,190,838,190,190,190,190,190,839,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,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,190,840,190,190,192,190,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,190,190,190,190,190,192,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,841,189,189,189,189,189,189,189,189,189,189,189,189,189,189,192,192,192,192,192,192,192,192,192,192,190,189,189,189,189,841,189,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,189,189,189,189,192,189,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,189,189,189,189,189,192,842,842,842,842,842,842,842,842,842,193,842,193,193,193,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,193,842,842,842,842,842,842,842,194,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,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,842,195,842,842,192,842,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,842,842,842,842,842,192,843,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,841,842,842,842,842,842,842,842,842,842,842,842,842,842,842,192,192,192,192,192,192,192,192,192,192,190,842,842,842,842,841,842,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,842,842,842,842,192,842,192,192,192,192,192,192,192,192,192,192,192,192,192,192,844,192,192,192,192,192,192,192,192,192,192,192,842,842,842,842,842,192,197,842,846,845,845,845,846,845,845,845,845,847,845,847,847,847,845,845,845,845,845,845,845,845,845,845,845,845,846,845,845,845,845,845,847,845,845,848,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,849,845,845,845,845,845,845,845,850,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,851,845,847,852,847,847,847,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,847,852,853,854,855,856,858,857,859,860,857,861,863,864,864,864,863,864,864,864,864,865,866,865,865,865,864,864,864,864,864,864,864,864,864,864,864,864,863,864,864,864,864,864,865,864,864,867,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,864,868,864,864,862,864,862,862,862,862,862,862,862,862,869,862,862,862,862,862,862,862,862,870,862,862,871,862,872,862,862,862,864,864,864,864,864,862,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,862,862,862,862,862,862,862,862,862,862,873,873,873,873,873,873,873,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,873,873,873,873,862,873,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,873,873,873,873,873,862,865,874,865,865,865,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,865,874,875,876,877,878,879,881,880,882,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,885,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,886,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,887,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,888,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,889,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,890,862,862,862,862,862,862,862,891,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,892,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,893,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,884,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,894,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,895,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,896,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,888,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,898,221,221,221,898,221,221,221,221,899,900,899,899,899,221,221,221,221,221,221,221,221,221,221,221,221,898,221,221,221,221,221,899,901,221,902,221,903,904,221,905,221,906,907,221,908,909,910,221,221,221,221,221,221,221,221,221,221,911,221,912,913,914,915,221,916,917,916,916,918,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,919,920,221,921,922,221,923,924,925,926,927,928,897,897,929,897,897,897,930,931,932,897,897,933,934,935,936,897,937,897,938,897,939,940,221,921,221,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,945,944,944,946,944,947,949,950,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,951,948,953,952,954,955,956,899,957,899,899,899,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,899,957,959,958,961,962,961,961,961,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,961,960,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,221,963,964,965,966,967,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,968,968,968,968,968,968,968,968,968,968,969,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,969,969,969,969,969,968,972,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,221,971,973,975,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,221,974,221,211,222,223,222,222,222,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,222,971,971,224,971,971,971,971,971,971,971,971,971,971,971,971,225,225,225,225,225,225,225,225,225,225,971,971,971,221,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,226,971,239,240,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,222,223,222,222,222,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,222,971,971,224,971,971,971,971,971,971,971,971,971,971,971,971,225,225,225,225,225,225,225,225,225,225,971,971,971,221,221,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,226,971,977,963,979,978,981,980,963,982,982,982,963,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,963,982,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,984,985,963,986,247,987,985,963,963,988,989,963,989,963,247,963,963,963,963,963,963,963,963,963,963,990,963,991,992,993,963,994,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,995,963,963,247,983,247,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,963,996,963,997,963,983,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,999,998,998,998,998,998,998,998,998,998,998,998,998,998,998,983,983,983,983,983,983,983,983,983,983,998,998,998,1e3,998,999,998,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,998,998,998,998,983,998,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,998,998,998,998,998,983,1002,1001,1003,1005,1006,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1007,1004,1009,1010,1008,1011,1012,1013,1014,247,998,998,1015,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,247,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,246,246,246,246,246,246,246,246,246,246,998,998,998,998,998,998,998,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,998,998,998,998,246,998,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,998,998,998,998,998,246,249,249,249,249,249,249,249,249,249,249,998,1016,998,247,998,247,998,247,1017,998,247,998,247,998,247,247,998,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1018,1018,1018,1018,1018,1018,1021,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1018,1018,1018,1018,1019,1018,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1018,1018,1018,1018,1018,1019,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1022,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1024,1024,1024,1024,1024,1024,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1024,1024,1024,1024,1025,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1024,1024,1024,1024,1024,1025,1016,998,1015,998,1027,1028,963,1029,262,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,263,252,264,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,263,253,263,266,221,963,921,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,221,963,221,972,963,1033,1032,1032,1032,1033,1032,1032,1032,1032,1034,1035,1034,1034,1034,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1033,1032,1032,1032,1032,1032,1034,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1032,1037,1032,1032,1036,1032,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1032,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1038,1038,1038,1038,1039,1038,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1038,1038,1038,1038,1038,1039,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1040,1040,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1041,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1040,1041,1044,1043,1043,1043,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1045,1045,1045,1045,1045,1045,1045,1045,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1046,1043,1043,1043,1043,1043,1043,1043,1043,1043,1047,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1048,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1049,1043,1043,1050,1043,1051,1052,1054,1054,1054,1054,1054,1054,1054,1054,1053,1055,1055,1055,1055,1055,1055,1055,1055,1053,1053,1056,1056,290,290,290,1056,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1056,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1057,290,1058,1059,1060,1060,290,290,290,1060,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1060,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1061,290,289,1060,1062,1063,1064,1064,275,275,275,1064,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1064,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,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,1065,275,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1064,1064,1064,1064,1064,1064,1064,1066,1066,1066,1066,1066,1066,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1066,1066,1066,1066,1066,1066,1064,1068,1068,1068,1068,1068,1068,1068,1068,1068,1068,1067,1067,1067,1067,1067,1067,1067,1068,1068,1068,1068,1068,1068,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1068,1068,1068,1068,1068,1068,1067,1067,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1060,1060,1060,1060,1060,1060,1060,1069,1069,1069,1069,1069,1069,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1069,1069,1069,1069,1069,1069,1060,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1070,1070,1060,268,268,268,1060,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1060,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1072,268,1056,275,275,275,1056,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1056,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,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,277,275,1056,1073,1073,1073,1056,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1056,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1074,1073,1075,1076,1076,1073,1073,1073,1076,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1076,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1077,1073,1078,1078,1078,1078,1078,1078,1078,1078,1078,1078,1076,1076,1076,1076,1076,1076,1076,1078,1078,1078,1078,1078,1078,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1078,1078,1078,1078,1078,1078,1076,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1079,1079,1076,268,268,268,1076,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1076,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1072,268,1081,1076,1076,275,275,275,1076,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1076,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,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,277,275,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1084,1082,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1082,1082,1082,1082,1082,1082,1082,1085,1085,1085,1085,1085,1085,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1085,1085,1085,1085,1085,1085,1082,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1082,1082,1082,1082,1082,1082,1082,1086,1086,1086,1086,1086,1086,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1086,1086,1086,1086,1086,1086,1082,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1082,1082,1082,1082,1082,1082,1082,1087,1087,1087,1087,1087,1087,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1087,1087,1087,1087,1087,1087,1082,1088,1091,1090,1090,1090,1091,1090,1090,1090,1090,1092,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1091,1090,1090,1090,1090,1090,1092,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1094,1090,1091,1090,1090,1090,1091,1090,1090,1090,1090,1089,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1091,1090,1090,1090,1090,1090,1089,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1096,1090,1089,1091,1095,1095,1095,1091,1095,1095,1095,1095,1089,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1091,1095,1095,1095,1095,1095,1089,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1089,1095,1097,1091,1098,1098,1098,1091,1098,1098,1098,1098,1092,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1092,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1103,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1121,1122,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1123,1123,1123,1123,1123,1123,1123,1124,1124,1124,1124,1124,1124,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1124,1124,1124,1124,1124,1124,1123,1123,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,295,295,295,295,295,295,295,295,295,295,297,211,211,298,211,296,211,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,211,211,211,211,295,211,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,211,211,211,211,211,295,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,296,963,963,963,963,963,963,963,963,963,963,963,963,963,963,295,295,295,295,295,295,295,295,295,295,297,963,963,298,963,296,963,295,295,295,295,1125,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,963,963,963,963,295,963,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,963,963,963,963,963,295,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,296,963,963,963,963,963,963,963,963,963,963,963,963,963,963,295,295,295,295,295,295,295,295,295,295,297,963,963,298,963,296,963,295,295,295,295,295,295,295,295,295,295,295,295,295,1126,295,295,295,295,295,295,295,295,295,295,295,295,963,963,963,963,295,963,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,963,963,963,963,963,295,1127,1128,963,958,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1129,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,1130,1131,897,897,897,897,897,1132,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1133,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,1134,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1135,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,1136,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1137,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1138,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,1139,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1140,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1141,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,897,897,897,897,897,897,897,897,897,897,297,211,211,298,211,296,211,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,211,211,211,211,897,211,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,211,211,211,211,211,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1142,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,1143,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,1139,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1144,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1143,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1145,897,1146,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1147,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1148,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1149,897,897,897,897,897,897,897,897,897,897,897,897,1150,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,1151,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1152,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1153,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1154,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1155,897,897,897,897,897,897,897,897,897,897,1156,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1158,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1148,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1160,897,1161,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1162,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1141,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1163,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1164,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1165,897,897,897,897,897,897,897,897,897,897,897,897,897,932,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1155,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,1166,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1167,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1168,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1169,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1170,897,897,897,1171,897,897,897,897,897,1172,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1172,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1173,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1174,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1175,1176,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,1177,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1178,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1179,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1182,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1183,1180,1180,1184,1180,1182,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1180,1180,1180,1180,1181,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1180,1180,1180,1180,1180,1181,949,1185,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,951,948,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1186,897,897,1187,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1152,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1188,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1189,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1190,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,932,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,1191,897,897,897,897,897,897,897,897,897,1192,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1152,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1193,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1194,897,897,897,897,897,897,897,1195,897,897,897,897,897,897,897,1196,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1197,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1198,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1166,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1199,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1166,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,1200,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1152,897,897,897,1201,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1202,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1166,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1203,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1204,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1146,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,1205,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,1206,963,1208,1207,1207,1207,1208,1207,1207,1207,1207,1209,1210,1209,1209,1209,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1208,1207,1207,1207,1207,1207,1209,1207,1207,1211,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1212,1207,1209,1213,1209,1209,1209,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1209,1213,1214,1215,1216,1217,1218,1220,1219,1221,1223,1224,1224,1224,1223,1224,1224,1224,1224,1225,1226,1225,1225,1225,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1223,1224,1224,1224,1224,1224,1225,1224,1227,1228,1224,1224,1224,1227,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1224,1229,1224,1224,1222,1224,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1224,1224,1224,1224,1224,1222,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,304,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,303,303,303,303,303,303,303,303,303,303,305,1230,1230,1230,1230,304,1230,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,1230,1230,1230,1230,303,1230,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,1230,1230,1230,1230,1230,303,1225,1231,1225,1225,1225,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1225,1231,1232,1233,1234,1235,1236,1237,1230,1238,1240,1241,1241,1241,1240,1241,1241,1241,1241,1242,1243,1242,1242,1242,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1240,1241,1241,1241,1241,1241,1242,1244,1245,1246,1247,1248,1249,1245,1250,1251,1252,1248,1253,1254,1255,1248,1256,1257,1257,1257,1257,1257,1257,1257,1257,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1265,1265,1267,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1268,1269,1270,1248,1271,1245,1272,1273,1274,1275,1276,1277,1239,1239,1278,1239,1239,1239,1279,1280,1281,1239,1239,1282,1283,1284,1285,1239,1286,1239,1287,1239,1288,1289,1290,1291,1241,1239,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,1292,313,313,313,313,313,313,313,313,313,313,313,313,313,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,313,1292,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,1239,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,313,1239,1294,1293,1295,1242,1296,1242,1242,1242,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1242,1296,1297,1299,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1299,1298,1300,1301,1302,1303,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,308,308,1304,308,1304,308,308,1304,1304,308,308,308,1305,308,308,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,308,308,308,308,308,308,308,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,308,1304,1304,325,308,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,308,1304,325,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,1307,1307,1307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,325,1307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,1307,325,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1307,1308,313,1248,1309,1309,1309,1309,1309,1309,1309,1310,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1308,1309,1311,1312,1248,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1308,1313,1308,1314,1309,1316,1315,312,312,312,312,312,312,312,312,312,312,1315,1318,1317,1319,1317,312,312,312,312,312,312,312,312,312,312,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1321,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1322,1320,1320,1320,1320,1320,1321,1320,311,311,311,311,311,311,311,311,311,311,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,310,1320,1324,1323,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1323,1323,1323,1323,1323,1323,1323,1323,1326,1323,1327,1328,1323,1323,1323,1323,1323,1323,1323,1323,1323,1329,1323,1323,1323,1323,1323,1323,1323,1323,1330,1323,1323,1323,1323,1323,1323,1331,1323,1323,1326,1323,1327,1328,1323,1323,1323,1332,1323,1323,1323,1323,1323,1329,1323,1323,1333,1323,1323,1323,1323,1323,1330,1323,314,314,314,314,314,314,314,314,314,314,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1335,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1336,1334,1334,1334,1334,1334,1335,1334,1334,1334,1337,1334,1334,1334,1334,1334,1334,1334,1334,1338,1334,1339,313,1339,313,313,315,315,315,315,315,315,315,315,315,315,313,315,315,315,315,315,315,315,315,315,315,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1339,1340,1340,1340,1340,1340,1340,1340,1340,1340,1341,1340,1343,1342,1344,1346,1345,1345,1345,1347,1345,1348,1349,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1331,1323,1323,1323,1323,1323,1323,1323,1323,1323,1332,1323,1323,1323,1323,1323,1323,1323,1323,1333,1323,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1351,1323,1323,1323,1323,1323,1323,1323,1323,1323,1332,1323,1323,1323,1323,1323,1323,1323,1323,1333,1323,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1354,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1359,1358,1360,1362,1361,1361,1361,1363,1361,1365,1364,1366,1367,1369,1369,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1370,1368,1368,1368,1368,1368,1368,1368,1368,1368,1371,1368,1368,1368,1368,1368,1368,1368,1368,1372,1368,1373,1373,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1374,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1373,1373,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1376,1376,1376,1376,1376,1376,1376,1376,1376,1376,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1377,1375,1375,1375,1375,1375,1375,1375,1375,1375,1378,1375,1375,1375,1375,1375,1375,1375,1375,1379,1375,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1382,1380,1380,1380,1380,1380,1380,1380,1380,1380,1383,1380,1380,1380,1380,1380,1380,1380,1380,1384,1380,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1385,1385,1385,1385,1385,1385,1385,1386,1386,1386,1386,1386,1386,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1387,1385,1386,1386,1386,1386,1386,1386,1385,1385,1388,1385,1385,1385,1385,1385,1385,1385,1385,1389,1385,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1391,1352,1390,1390,1390,1390,1390,1390,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1390,1390,1390,1390,1390,1390,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1393,1392,1394,1394,1394,1394,1394,1394,1394,1394,1394,1394,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1395,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1396,1392,1392,1392,1392,1392,1395,1392,1392,1392,1397,1392,1392,1392,1392,1392,1392,1392,1392,1398,1392,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1400,1392,1392,1392,1392,1392,1392,1392,1392,1392,1397,1392,1392,1392,1392,1392,1392,1392,1392,1398,1392,1401,1352,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1403,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1404,1352,1352,1352,1352,1352,1403,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1310,1317,1248,1405,1309,1299,1309,1406,1407,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1299,1317,1299,1309,1299,1248,1309,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,1304,1304,1408,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,325,1304,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,1304,325,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,1292,313,313,313,313,313,313,313,313,313,313,313,313,313,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,313,313,313,313,1292,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,313,313,313,313,1265,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,313,313,313,313,313,1265,1410,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1412,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1413,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1414,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1415,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1416,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1415,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1417,1419,1418,1420,1421,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1423,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1424,1425,1239,1239,1239,1239,1239,1426,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1427,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1428,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1429,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1430,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1431,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1432,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1433,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1434,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1435,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1436,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1437,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1438,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1439,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1440,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1441,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1437,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1442,1239,1443,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1444,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1445,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1446,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1448,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1449,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1450,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1451,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1452,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1453,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1455,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1456,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1458,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1459,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1460,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1461,1461,1461,1461,1461,1461,1461,1461,1461,327,328,327,327,327,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,327,1292,1461,329,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,1461,330,1461,1461,1292,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,331,1461,1461,1239,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,1461,1461,1461,1461,1239,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1463,1239,1239,1239,1239,1239,1239,1239,1239,1239,1464,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1465,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1292,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1466,1292,1466,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1239,1466,1239,1239,1239,1239,1239,1239,1239,1239,1467,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1466,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1468,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1469,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1470,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1471,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1472,1239,1473,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1474,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1447,1239,1239,1239,1475,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1476,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1477,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1478,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1281,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1479,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1480,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1482,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1483,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1484,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1485,1239,1239,1239,1486,1239,1239,1239,1239,1239,1487,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1488,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1490,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1491,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1492,1493,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1494,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1495,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1496,1239,1239,1497,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1498,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1499,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1500,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1501,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1502,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1503,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1504,1239,1239,1239,1239,1239,1239,1239,1239,1239,1505,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1451,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1480,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1506,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1507,1239,1239,1239,1239,1239,1239,1239,1508,1239,1239,1239,1239,1239,1239,1239,1509,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1510,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1446,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1511,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1512,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1513,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1514,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1451,1239,1239,1239,1515,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1516,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1517,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1518,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1519,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1520,1308,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1248,1298,1521,1523,1522,1523,1523,1523,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1523,1522,1522,1524,1522,1522,1525,1522,1522,1522,1522,1522,1522,1522,357,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1526,1522,353,354,353,353,353,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,353,1527,1527,355,1527,1527,356,1527,1527,1527,1527,1527,1527,1527,357,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,358,1527,360,1528,360,360,360,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,360,1528,1528,355,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,358,1528,1530,1529,1532,1531,363,362,368,1527,366,1527,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1535,1533,1534,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1537,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1538,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1539,1533,1541,1539,0]],$send(self,"_lex_indicies=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_trans_targs"),self.$private("_lex_trans_targs","_lex_trans_targs=")}(Opal.get_singleton_class(self),$nesting),$writer=[[186,2,3,4,192,6,7,8,9,10,186,186,195,198,195,12,199,200,14,195,207,208,211,212,224,221,213,214,215,19,216,217,218,226,228,229,233,234,235,230,25,18,209,210,27,258,259,261,263,261,30,264,265,32,261,272,273,276,277,289,286,278,279,280,37,281,282,283,291,293,294,298,299,300,295,43,36,274,275,45,323,324,331,333,331,48,334,335,50,337,340,337,52,341,342,54,348,347,0,56,349,350,58,351,352,352,352,352,465,61,62,63,465,465,494,65,66,494,494,498,498,70,65,71,496,497,499,500,498,494,501,502,504,67,68,505,506,69,498,72,73,78,85,508,509,71,496,497,499,500,498,494,501,502,504,67,68,505,506,69,72,73,78,85,508,509,507,74,75,76,77,79,80,83,81,82,84,86,87,494,89,90,91,93,96,94,95,97,99,525,525,525,526,101,528,102,529,103,526,101,528,102,529,563,104,563,105,106,104,563,105,563,563,563,109,110,111,112,574,563,563,563,115,116,117,563,120,115,116,117,563,120,118,118,116,117,584,119,118,118,116,117,584,119,116,563,601,563,122,602,608,126,617,618,131,132,126,127,616,127,616,563,128,129,130,619,133,563,633,634,637,638,650,647,639,640,641,138,642,643,644,652,654,655,659,660,661,656,144,137,635,636,146,697,698,148,565,107,567,150,151,700,802,153,154,155,802,810,810,810,158,832,831,810,834,836,810,163,164,165,840,810,167,168,851,820,873,171,172,173,177,178,171,172,173,177,178,174,174,172,173,175,176,174,174,172,173,175,176,921,172,810,990,179,992,181,185,993,183,990,180,990,182,992,182,992,184,992,990,186,186,187,188,189,191,193,194,186,186,186,190,186,190,186,1,186,186,186,5,195,195,196,195,197,201,195,195,11,13,195,195,195,195,202,203,204,15,21,26,236,28,195,195,195,205,206,195,16,195,195,195,17,195,195,195,20,219,195,220,222,195,223,225,227,22,195,195,23,231,195,232,24,195,237,241,238,239,240,195,195,242,243,246,248,257,244,245,195,247,249,251,250,195,252,253,254,255,256,195,195,195,260,261,261,261,262,266,261,29,31,261,261,261,261,267,268,269,33,39,44,301,46,261,261,261,270,271,261,34,261,261,261,35,261,261,261,38,284,261,285,287,261,288,290,292,40,261,261,41,296,261,297,42,261,302,306,303,304,305,261,261,307,308,311,313,322,309,310,261,312,314,316,315,261,317,318,319,320,321,261,261,261,325,326,326,327,326,328,326,326,326,329,329,329,330,329,329,329,331,331,331,332,331,47,49,331,331,331,336,336,336,337,337,338,337,339,337,337,51,53,337,337,337,343,343,344,343,343,345,346,345,55,57,347,347,347,353,352,352,354,355,356,357,359,362,363,364,365,352,366,367,369,371,372,373,377,379,380,381,397,402,409,414,421,428,431,432,436,430,440,448,452,454,459,461,464,352,352,352,352,352,352,358,352,358,352,360,59,361,352,60,352,352,368,370,352,374,375,376,372,378,352,382,383,392,395,384,385,386,387,388,389,390,391,353,393,394,396,398,401,399,400,403,406,404,405,407,408,410,412,411,413,415,416,352,417,418,419,420,352,422,425,423,424,426,427,429,433,434,435,437,439,438,441,442,443,445,444,446,447,449,450,451,453,455,456,457,458,460,462,463,466,465,465,467,468,470,471,465,465,465,469,465,469,64,472,465,474,473,473,477,478,479,480,473,482,483,484,485,487,489,490,491,492,493,473,475,473,476,473,473,473,473,473,481,473,481,486,473,488,473,494,494,495,510,511,497,513,514,501,515,516,517,518,519,521,522,523,524,494,494,494,494,494,494,498,503,494,494,494,494,494,494,494,494,494,512,494,512,494,494,494,494,520,494,88,92,98,525,527,530,100,525,525,526,531,531,532,533,535,537,538,531,531,534,531,534,531,536,531,531,531,540,539,539,541,542,543,545,547,548,553,560,539,539,539,539,544,539,544,539,546,539,539,540,549,550,551,552,554,555,558,556,557,559,561,562,564,563,572,573,575,576,578,579,580,581,583,585,586,589,590,615,621,622,623,700,701,702,703,704,582,706,723,728,735,740,742,748,751,752,756,750,760,771,775,778,786,790,793,794,563,104,105,563,107,566,563,563,568,570,571,563,569,563,563,563,563,563,108,563,563,563,563,563,577,563,577,563,563,113,563,114,563,563,582,563,587,563,588,563,563,563,591,600,563,121,603,604,605,563,606,123,609,610,124,613,614,563,592,594,563,593,563,563,595,598,599,563,596,597,563,563,563,563,563,563,607,563,601,611,612,563,611,563,601,611,125,620,563,563,563,624,563,563,563,625,627,563,626,563,626,563,628,629,630,134,140,145,662,147,563,563,563,631,632,563,135,563,563,563,136,563,563,563,139,645,563,646,648,563,649,651,653,141,563,563,142,657,563,658,143,563,663,667,664,665,666,563,563,668,669,672,683,696,670,671,563,673,674,675,677,676,563,678,679,680,681,682,684,691,685,686,687,688,689,690,692,693,694,695,563,563,563,699,149,152,563,705,707,708,718,721,709,710,711,712,713,714,715,716,717,719,720,722,724,727,725,726,729,732,730,731,733,734,736,738,737,739,741,743,745,744,746,747,749,717,753,754,755,757,759,758,761,762,763,768,764,765,766,563,564,565,107,767,570,769,770,772,773,774,776,777,779,780,781,784,782,783,785,787,788,789,791,792,563,582,795,795,796,797,798,800,795,795,795,799,795,799,795,801,795,803,802,802,804,805,802,806,808,802,802,802,802,807,802,807,809,802,811,810,810,814,815,816,810,817,819,822,823,824,825,826,810,827,828,833,861,865,810,866,868,870,810,871,872,874,878,880,881,883,884,902,907,914,922,929,936,941,942,946,940,951,961,967,970,979,983,987,988,989,822,812,810,813,810,810,810,810,810,810,818,810,818,810,156,821,810,810,810,810,810,810,810,810,810,829,810,830,810,810,157,159,810,160,842,853,856,835,857,858,843,847,849,810,835,160,837,839,161,810,837,810,838,810,810,162,841,810,810,844,846,810,844,845,847,849,846,810,848,810,810,850,852,810,166,810,810,810,854,846,847,849,854,855,810,844,846,847,849,810,844,846,847,849,810,859,846,847,849,859,860,810,160,861,835,862,847,849,863,846,160,863,835,864,867,869,810,169,170,810,810,875,876,877,872,879,810,810,882,810,810,810,885,886,895,900,887,888,889,890,891,892,893,894,811,896,897,898,899,811,901,903,906,904,905,811,811,908,911,909,910,912,913,811,915,917,916,918,919,920,810,810,923,811,924,810,925,926,927,928,812,930,933,931,932,934,935,937,938,939,811,943,944,945,947,949,950,948,811,952,953,954,957,955,956,958,959,960,962,964,963,965,966,968,969,971,972,974,977,973,975,976,978,980,981,982,984,985,986,810,810,990,991,995,996,997,990,990,990,994,990,990,999,998,1e3,998,1001,1002,1003,998,998]],$send(self,"_lex_trans_targs=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_trans_actions"),self.$private("_lex_trans_actions","_lex_trans_actions=")}(Opal.get_singleton_class(self),$nesting),$writer=[[1,0,0,0,0,0,0,0,0,0,2,3,4,0,5,0,0,0,0,6,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,9,0,10,0,0,0,0,11,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,12,0,13,0,0,0,0,14,0,15,0,0,0,0,0,16,0,0,0,0,0,0,17,18,19,20,21,0,0,0,22,23,24,0,0,25,26,27,28,29,30,30,31,32,30,33,32,34,32,30,30,31,30,35,30,30,36,30,30,30,30,30,30,0,37,38,0,39,38,40,38,0,0,37,0,41,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,0,0,0,0,0,0,43,44,45,46,0,0,0,46,29,47,30,30,30,47,48,0,49,0,29,30,50,30,51,52,53,0,0,0,0,0,54,55,56,0,29,0,57,0,30,58,30,59,30,60,61,62,61,63,61,0,64,65,64,66,64,67,68,0,69,0,0,0,0,70,70,0,0,71,71,72,0,29,73,0,0,0,70,0,74,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,0,75,0,0,0,0,75,76,0,0,0,77,78,79,80,0,7,7,81,82,82,83,0,0,0,0,84,0,0,0,0,0,0,29,0,0,0,30,58,30,30,30,60,61,62,61,61,61,0,64,65,64,64,64,85,67,86,87,0,88,0,89,89,0,90,0,91,60,92,0,93,29,94,95,98,99,0,29,0,7,0,7,100,101,102,60,103,0,104,0,105,106,107,0,108,109,0,110,7,7,111,112,0,0,113,114,115,116,117,117,117,117,117,117,117,117,118,119,120,0,0,121,0,122,123,124,0,125,126,127,0,0,128,0,0,129,0,7,0,0,130,131,0,0,132,0,29,133,0,0,0,0,0,134,135,0,0,0,0,0,0,0,136,0,0,0,0,137,0,0,0,0,0,138,139,140,0,141,142,143,7,7,144,0,0,145,146,147,148,117,117,117,117,117,117,117,117,149,150,151,0,0,152,0,153,154,155,0,156,157,158,0,0,159,0,0,160,0,7,0,0,161,162,0,0,163,0,29,164,0,0,0,0,0,165,166,0,0,0,0,0,0,0,167,0,0,0,0,168,0,0,0,0,0,169,170,171,0,172,173,0,174,0,175,176,177,178,179,180,0,181,182,183,184,185,186,7,187,0,0,188,189,190,191,192,193,194,195,0,196,7,197,198,0,0,199,200,201,202,203,0,204,205,206,0,207,0,0,208,209,210,211,212,213,0,29,0,0,7,7,0,0,0,214,0,0,0,0,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,218,219,220,221,60,222,0,223,0,0,0,224,0,225,226,0,0,227,0,0,0,228,0,229,0,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,231,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,7,232,233,0,0,7,0,234,235,236,60,237,0,0,29,238,0,239,240,0,29,0,0,241,0,0,0,0,0,0,0,0,0,0,242,0,243,0,244,245,246,247,248,60,249,0,0,250,0,251,252,253,254,29,0,28,0,0,28,0,0,0,0,0,0,7,7,7,255,256,257,258,259,260,261,0,262,263,264,265,266,267,268,269,270,60,271,0,272,273,274,275,276,277,0,0,0,278,7,7,0,279,280,281,282,283,0,0,0,0,0,284,285,60,286,0,287,29,288,289,290,291,292,293,0,29,0,0,0,0,0,0,294,295,296,297,60,298,0,299,29,300,301,302,0,0,0,0,0,0,0,0,0,0,0,0,303,304,0,8,0,0,7,305,0,0,305,305,0,0,7,306,0,306,0,306,306,306,0,0,306,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,0,0,307,308,308,309,310,0,311,312,0,75,0,313,0,314,315,316,317,318,30,319,320,321,322,323,60,324,0,325,326,0,327,0,328,329,305,330,0,331,0,332,333,334,0,0,335,0,0,0,0,336,0,0,0,0,0,0,0,337,0,0,338,0,339,340,0,0,0,341,0,0,342,343,344,345,346,347,0,348,349,349,0,350,0,351,352,352,0,0,353,354,355,0,356,357,358,0,7,359,360,361,0,362,117,117,117,117,117,117,117,117,363,364,365,0,0,366,0,367,368,369,0,370,371,372,0,0,373,0,0,374,0,7,0,0,375,376,0,0,377,0,29,378,0,0,0,0,0,379,380,0,0,0,0,0,0,0,381,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,383,384,385,0,0,0,386,29,303,303,303,303,303,303,303,303,303,303,303,303,75,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,387,303,303,303,303,303,303,303,303,303,303,303,303,388,389,390,391,392,392,388,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,393,394,395,396,0,29,0,0,397,398,399,60,400,0,401,29,402,7,403,404,0,29,405,0,0,406,407,408,409,60,410,0,29,411,412,413,414,0,29,0,415,0,7,416,0,0,0,0,417,0,0,418,418,0,419,0,0,0,420,7,421,421,421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,422,423,424,0,425,426,427,428,429,430,60,431,0,432,0,0,433,434,435,436,437,438,439,440,441,0,442,0,443,444,0,0,445,446,447,0,0,448,0,0,447,449,449,450,451,0,452,453,0,454,455,456,0,457,458,0,0,459,460,447,447,461,0,0,462,462,0,463,0,464,465,7,0,466,0,467,468,469,470,470,471,471,0,0,472,473,473,474,474,475,476,476,477,477,478,479,479,480,480,0,0,481,482,483,484,485,486,486,483,485,487,418,488,0,0,0,489,0,0,490,491,421,421,421,492,421,493,494,29,495,496,497,0,0,0,0,0,0,0,0,0,0,0,0,498,0,0,0,0,492,0,0,0,0,0,499,500,0,0,0,0,0,0,501,0,0,0,0,0,500,502,503,0,504,0,505,0,0,0,0,506,0,0,0,0,0,0,0,0,0,507,0,0,0,0,0,0,0,506,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,508,509,510,511,511,89,511,512,513,514,0,515,516,0,517,0,518,0,0,0,519,520]],$send(self,"_lex_trans_actions=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_to_state_actions"),self.$private("_lex_to_state_actions","_lex_to_state_actions=")}(Opal.get_singleton_class(self),$nesting),$writer=[[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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,96,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,96,0,96,0,0,0,0,96,96,0,0,0,0,0,96,0,96,0,96,0,0,0,0,96,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,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,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,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,96,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0]],$send(self,"_lex_to_state_actions=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_from_state_actions"),self.$private("_lex_from_state_actions","_lex_from_state_actions=")}(Opal.get_singleton_class(self),$nesting),$writer=[[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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,97,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,97,0,97,0,0,0,0,97,97,0,0,0,0,0,97,0,97,0,97,0,0,0,0,97,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,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,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,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,97,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0]],$send(self,"_lex_from_state_actions=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_eof_trans"),self.$private("_lex_eof_trans","_lex_eof_trans=")}(Opal.get_singleton_class(self),$nesting),$writer=[[0,1,1,1,1,1,1,1,1,1,1,13,13,13,13,20,20,20,20,20,20,20,20,20,20,20,20,20,20,48,48,48,48,55,55,55,55,55,55,55,55,55,55,55,55,55,55,83,83,83,83,90,90,90,90,0,0,0,0,105,107,109,109,109,109,115,115,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,180,180,180,180,180,180,180,180,180,180,180,180,190,192,192,192,204,204,204,212,214,214,214,214,214,220,212,212,212,212,212,212,212,246,246,246,246,246,246,212,262,212,262,246,246,212,268,268,268,268,268,268,268,268,268,268,268,268,268,268,212,246,246,246,246,303,303,303,308,310,310,310,314,314,317,317,317,317,322,322,322,308,314,314,314,314,314,314,314,314,314,353,360,362,362,362,362,353,0,378,379,380,382,384,386,384,384,0,396,397,401,401,402,403,412,413,414,414,414,417,417,419,420,421,421,421,423,424,425,425,425,428,428,421,431,431,421,417,417,436,437,437,437,440,440,437,437,437,443,443,443,443,449,450,450,450,450,458,450,450,450,450,463,450,450,450,450,450,450,469,470,471,471,0,478,482,482,483,484,493,494,495,495,495,498,498,500,501,502,502,502,504,505,506,506,506,509,509,502,512,512,502,498,498,517,518,518,518,521,521,518,518,518,524,524,524,524,530,531,531,531,531,539,531,531,531,531,544,531,531,531,531,531,531,550,551,552,552,0,559,560,0,566,0,573,577,577,578,0,0,587,588,592,592,593,0,598,0,601,0,604,604,605,606,0,647,649,650,651,652,654,656,660,660,651,651,651,651,662,651,651,656,651,651,647,666,666,666,666,666,666,656,656,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,705,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,651,0,749,750,751,753,749,749,757,0,776,778,780,781,782,783,784,786,783,783,783,783,783,789,783,783,791,789,789,783,0,810,811,115,115,814,815,115,811,811,818,820,823,811,824,811,825,826,828,830,811,818,831,831,820,831,835,831,831,831,831,0,190,843,844,843,843,0,853,854,856,858,860,858,862,0,874,875,876,877,879,881,883,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,0,942,945,948,949,953,955,956,957,958,959,961,964,965,967,969,972,974,975,212,972,977,972,964,979,981,964,964,999,1002,1004,1005,1009,1012,1013,1014,1015,999,999,999,999,999,999,999,999,999,999,1019,1023,1025,999,999,964,1030,1031,1031,1031,964,964,964,1032,1039,1039,1041,1043,1052,1053,1054,1054,1054,1057,1057,1059,1060,1061,1061,1061,1063,1064,1065,1065,1065,1068,1068,1061,1071,1071,1061,1057,1057,1076,1077,1077,1077,1080,1080,1077,1077,1077,1083,1083,1083,1083,1089,1090,1090,1090,1090,1098,1090,1090,1090,1090,1104,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1122,1123,1124,1124,212,964,964,1128,964,959,942,942,942,942,942,942,942,942,942,942,942,212,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1181,949,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1206,964,0,1214,1215,1216,1218,1220,1222,0,1231,1232,1233,1234,1236,1231,1239,0,314,1294,1296,1297,1298,1299,1301,1303,1305,1308,1308,314,1310,1312,1313,1314,1310,1316,1318,1318,1321,1321,1324,1335,314,1341,1343,1345,1346,1349,1350,1324,1324,1353,1353,1353,1359,1361,1362,1365,1367,1368,1369,1353,1353,1376,1381,1386,1353,1353,1393,1393,1353,1353,1318,1310,1310,1318,1310,1310,1305,314,1411,1412,1412,1412,1412,1412,1412,1418,1305,1421,1422,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1462,1463,1423,1423,1467,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1521,1299,1522,0,1528,1529,1530,1532,1528,1528,1528,0,1537,1537,1537,1537,1541]],$send(self,"_lex_eof_trans=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_start")}(Opal.get_singleton_class(self),$nesting),$writer=[186],$send(self,"lex_start=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_error")}(Opal.get_singleton_class(self),$nesting),$writer=[0],$send(self,"lex_error=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_interp_words")}(Opal.get_singleton_class(self),$nesting),$writer=[195],$send(self,"lex_en_interp_words=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_interp_string")}(Opal.get_singleton_class(self),$nesting),$writer=[261],$send(self,"lex_en_interp_string=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_plain_words")}(Opal.get_singleton_class(self),$nesting),$writer=[326],$send(self,"lex_en_plain_words=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_plain_string")}(Opal.get_singleton_class(self),$nesting),$writer=[329],$send(self,"lex_en_plain_string=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_interp_backslash_delimited")}(Opal.get_singleton_class(self),$nesting),$writer=[331],$send(self,"lex_en_interp_backslash_delimited=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_plain_backslash_delimited")}(Opal.get_singleton_class(self),$nesting),$writer=[336],$send(self,"lex_en_plain_backslash_delimited=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_interp_backslash_delimited_words")}(Opal.get_singleton_class(self),$nesting),$writer=[337],$send(self,"lex_en_interp_backslash_delimited_words=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_plain_backslash_delimited_words")}(Opal.get_singleton_class(self),$nesting),$writer=[343],$send(self,"lex_en_plain_backslash_delimited_words=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_regexp_modifiers")}(Opal.get_singleton_class(self),$nesting),$writer=[345],$send(self,"lex_en_regexp_modifiers=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_variable")}(Opal.get_singleton_class(self),$nesting),$writer=[347],$send(self,"lex_en_expr_variable=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_fname")}(Opal.get_singleton_class(self),$nesting),$writer=[352],$send(self,"lex_en_expr_fname=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_endfn")}(Opal.get_singleton_class(self),$nesting),$writer=[465],$send(self,"lex_en_expr_endfn=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_dot")}(Opal.get_singleton_class(self),$nesting),$writer=[473],$send(self,"lex_en_expr_dot=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_arg")}(Opal.get_singleton_class(self),$nesting),$writer=[494],$send(self,"lex_en_expr_arg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_cmdarg")}(Opal.get_singleton_class(self),$nesting),$writer=[525],$send(self,"lex_en_expr_cmdarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_endarg")}(Opal.get_singleton_class(self),$nesting),$writer=[531],$send(self,"lex_en_expr_endarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_mid")}(Opal.get_singleton_class(self),$nesting),$writer=[539],$send(self,"lex_en_expr_mid=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_beg")}(Opal.get_singleton_class(self),$nesting),$writer=[563],$send(self,"lex_en_expr_beg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_labelarg")}(Opal.get_singleton_class(self),$nesting),$writer=[795],$send(self,"lex_en_expr_labelarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_value")}(Opal.get_singleton_class(self),$nesting),$writer=[802],$send(self,"lex_en_expr_value=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_end")}(Opal.get_singleton_class(self),$nesting),$writer=[810],$send(self,"lex_en_expr_end=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_leading_dot")}(Opal.get_singleton_class(self),$nesting),$writer=[990],$send(self,"lex_en_leading_dot=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_line_comment")}(Opal.get_singleton_class(self),$nesting),$writer=[998],$send(self,"lex_en_line_comment=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_line_begin")}(Opal.get_singleton_class(self),$nesting),$writer=[186],$send(self,"lex_en_line_begin=",Opal.to_a($writer)),$rb_minus($writer.length,1),Opal.const_set($nesting[0],"ESCAPES",$hash("a".$ord(),"","b".$ord(),"\b","e".$ord(),"","f".$ord(),"\f","n".$ord(),"\n","r".$ord(),"\r","s".$ord()," ","t".$ord(),"\t","v".$ord(),"\v","\\".$ord(),"\\").$freeze()),Opal.const_set($nesting[0],"REGEXP_META_CHARACTERS",$send($$($nesting,"Regexp"),"union",Opal.to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()),self.$attr_reader("source_buffer"),self.$attr_accessor("diagnostics"),self.$attr_accessor("static_env"),self.$attr_accessor("force_utf32"),self.$attr_accessor("cond","cmdarg","context","command_start"),self.$attr_accessor("tokens","comments"),self.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack"),Opal.def(self,"$initialize",$Lexer_pop_literal$57=function(version){return this.version=version,this.static_env=nil,this.context=nil,this.tokens=nil,this.comments=nil,this.$reset()},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$reset",$Lexer_pop_literal$57=function(reset_state){return null==reset_state&&(reset_state=!0),$truthy(reset_state)&&(this.cs=this.$class().$lex_en_line_begin(),this.cond=$$($nesting,"StackState").$new("cond"),this.cmdarg=$$($nesting,"StackState").$new("cmdarg"),this.cond_stack=[],this.cmdarg_stack=[]),this.force_utf32=!1,this.source_pts=nil,this.p=0,this.ts=nil,this.te=nil,this.act=0,this.stack=[],this.top=0,this.token_queue=[],this.literal_stack=[],this.eq_begin_s=nil,this.sharp_s=nil,this.newline_s=nil,this.num_base=nil,this.num_digits_s=nil,this.num_suffix_s=nil,this.num_xfrm=nil,this.escape_s=nil,this.escape=nil,this.herebody_s=nil,this.paren_nest=0,this.lambda_stack=[],this.dedent_level=nil,this.command_start=!0,this.cs_before_block_comment=this.$class().$lex_en_line_begin()},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$source_buffer=",$Lexer_pop_literal$57=function(source_buffer){var source=nil;return this.source_buffer=source_buffer,$truthy(this.source_buffer)?((source=this.source_buffer.$source()).$encoding()["$=="]($$$($$($nesting,"Encoding"),"UTF_8"))?this.source_pts=source.$unpack("U*"):this.source_pts=source.$unpack("C*"),this.source_pts["$[]"](0)["$=="](65279)?this.p=1:nil):this.source_pts=nil},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$encoding",$Lexer_pop_literal$57=function(){return this.source_buffer.$source().$encoding()},$Lexer_pop_literal$57.$$arity=0),Opal.const_set($nesting[0],"LEX_STATES",$hash2(["line_begin","expr_dot","expr_fname","expr_value","expr_beg","expr_mid","expr_arg","expr_cmdarg","expr_end","expr_endarg","expr_endfn","expr_labelarg","interp_string","interp_words","plain_string","plain_words"],{line_begin:self.$lex_en_line_begin(),expr_dot:self.$lex_en_expr_dot(),expr_fname:self.$lex_en_expr_fname(),expr_value:self.$lex_en_expr_value(),expr_beg:self.$lex_en_expr_beg(),expr_mid:self.$lex_en_expr_mid(),expr_arg:self.$lex_en_expr_arg(),expr_cmdarg:self.$lex_en_expr_cmdarg(),expr_end:self.$lex_en_expr_end(),expr_endarg:self.$lex_en_expr_endarg(),expr_endfn:self.$lex_en_expr_endfn(),expr_labelarg:self.$lex_en_expr_labelarg(),interp_string:self.$lex_en_interp_string(),interp_words:self.$lex_en_interp_words(),plain_string:self.$lex_en_plain_string(),plain_words:self.$lex_en_plain_string()})),Opal.def(self,"$state",$Lexer_pop_literal$57=function(){return $$($nesting,"LEX_STATES").$invert().$fetch(this.cs,this.cs)},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$state=",$Lexer_pop_literal$57=function(state){return this.cs=$$($nesting,"LEX_STATES").$fetch(state)},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$push_cmdarg",$Lexer_pop_literal$57=function(){return this.cmdarg_stack.$push(this.cmdarg),this.cmdarg=$$($nesting,"StackState").$new("cmdarg."+this.cmdarg_stack.$count())},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$pop_cmdarg",$Lexer_pop_literal$57=function(){return this.cmdarg=this.cmdarg_stack.$pop()},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$push_cond",$Lexer_pop_literal$57=function(){return this.cond_stack.$push(this.cond),this.cond=$$($nesting,"StackState").$new("cond."+this.cond_stack.$count())},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$pop_cond",$Lexer_pop_literal$57=function(){return this.cond=this.cond_stack.$pop()},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$dedent_level",$Lexer_pop_literal$57=function(){var $a=[this.dedent_level,nil],dedent_level=$a[0];return this.dedent_level=$a[1],dedent_level},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$advance",$Lexer_pop_literal$57=function(){var $a,$b,$$13,$$14,$$15,$$16,$$17,$$18,$$19,$$20,$$21,$$22,$$23,$$24,$$25,$$26,$$27,$$28,$$29,$$30,$$31,$$32,$$33,$$34,$$35,$$36,$$37,$$38,$$39,$$40,$$41,pe,_slen,_keys,_inds,_wide,ident,new_herebody_s,indent,dedent_body,self=this,klass=nil,_lex_trans_keys=nil,_lex_key_spans=nil,_lex_index_offsets=nil,_lex_indicies=nil,_lex_trans_targs=nil,_lex_trans_actions=nil,_lex_to_state_actions=nil,_lex_from_state_actions=nil,_lex_eof_trans=nil,p=nil,eof=nil,cmd_state=nil,_trans=nil,_goto_level=nil,$case=nil,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil,tm=nil,heredoc_e=nil,diag_msg=nil,ident_tok=nil,ident_ts=nil,ident_te=nil,current_literal=nil,$writer=nil,line=nil,$ret_or_4=nil,string=nil,$ret_or_5=nil,lookahead=nil,$ret_or_6=nil,token=nil,message=nil,$ret_or_7=nil,$ret_or_8=nil,escaped_char=nil,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil,$ret_or_14=nil,$ret_or_15=nil,$ret_or_16=nil,$ret_or_17=nil,$ret_or_18=nil,$ret_or_19=nil,$ret_or_20=nil,$ret_or_21=nil,$ret_or_22=nil,$ret_or_23=nil,$ret_or_24=nil,$ret_or_25=nil,$ret_or_26=nil,$ret_or_27=nil,$ret_or_28=nil,$ret_or_29=nil,$ret_or_30=nil,$ret_or_31=nil,$ret_or_32=nil,$ret_or_33=nil,$ret_or_34=nil,$ret_or_35=nil,$ret_or_36=nil,$ret_or_37=nil,$ret_or_38=nil,$ret_or_39=nil,$ret_or_40=nil,$ret_or_41=nil,$ret_or_42=nil,$ret_or_43=nil,$ret_or_44=nil,$ret_or_45=nil,$ret_or_46=nil,$ret_or_47=nil,$ret_or_48=nil,$ret_or_49=nil,$ret_or_50=nil,$ret_or_51=nil,$ret_or_52=nil,$ret_or_53=nil,$ret_or_54=nil,$ret_or_55=nil,$ret_or_56=nil,$ret_or_57=nil,$ret_or_58=nil,$ret_or_59=nil,unknown_options=nil,type=nil,delimiter=nil,$ret_or_60=nil,escape=nil,$ret_or_61=nil,$ret_or_62=nil,$ret_or_63=nil,followed_by_nl=nil,nl_emitted=nil,dots_te=nil,$ret_or_64=nil,$ret_or_65=nil,$ret_or_66=nil,$ret_or_67=nil,$ret_or_68=nil,value=nil,$ret_or_69=nil,$ret_or_70=nil,$ret_or_71=nil,$ret_or_72=nil,digits=nil,$ret_or_73=nil,$ret_or_74=nil,$ret_or_75=nil,invalid_idx=nil,invalid_s=nil,$ret_or_76=nil,$ret_or_77=nil,$ret_or_78=nil,$ret_or_79=nil,$ret_or_80=nil,$ret_or_81=nil,$ret_or_82=nil,$ret_or_83=nil,$ret_or_84=nil,$ret_or_85=nil,$ret_or_86=nil,$ret_or_87=nil,$ret_or_88=nil,$ret_or_89=nil,$ret_or_90=nil,$ret_or_91=nil,$ret_or_92=nil,$ret_or_93=nil,$ret_or_94=nil,$ret_or_95=nil,$ret_or_96=nil,$ret_or_97=nil,$ret_or_98=nil,$ret_or_99=nil,$ret_or_100=nil,$ret_or_101=nil,$ret_or_102=nil,$ret_or_103=nil,$ret_or_104=nil,$ret_or_105=nil,$ret_or_106=nil,$ret_or_107=nil,$ret_or_108=nil,$ret_or_109=nil,$ret_or_110=nil,$ret_or_111=nil,codepoints=nil,codepoint_s=nil,$ret_or_112=nil,spaces_p=nil,$ret_or_113=nil,$ret_or_114=nil,$ret_or_115=nil,$ret_or_116=nil,$ret_or_117=nil,$ret_or_118=nil,$ret_or_119=nil,$ret_or_120=nil,$ret_or_121=nil,$ret_or_122=nil,$ret_or_123=nil,$ret_or_124=nil,$ret_or_125=nil,$ret_or_126=nil,$ret_or_127=nil,$ret_or_128=nil,$ret_or_129=nil,$ret_or_130=nil,codepoint=nil,$ret_or_131=nil,$ret_or_132=nil,$ret_or_133=nil,$ret_or_134=nil,$ret_or_135=nil,$ret_or_136=nil,$ret_or_137=nil,$ret_or_138=nil,$ret_or_139=nil,$ret_or_140=nil,$ret_or_141=nil,$ret_or_142=nil,$ret_or_143=nil,$ret_or_144=nil,$ret_or_145=nil,$ret_or_146=nil,$ret_or_147=nil,$ret_or_148=nil,$ret_or_149=nil,$ret_or_150=nil,$ret_or_151=nil,$ret_or_152=nil,$ret_or_153=nil,$ret_or_154=nil,$ret_or_155=nil,$ret_or_156=nil,$ret_or_157=nil,$ret_or_158=nil,$ret_or_159=nil,$ret_or_160=nil,$ret_or_161=nil,$ret_or_162=nil,$ret_or_163=nil,$ret_or_164=nil,$ret_or_165=nil,$ret_or_166=nil,$ret_or_167=nil,$ret_or_168=nil,$ret_or_169=nil,$ret_or_170=nil,$ret_or_171=nil,$ret_or_172=nil,$ret_or_173=nil,$ret_or_174=nil,$ret_or_175=nil,$ret_or_176=nil,$ret_or_177=nil,$ret_or_178=nil,$ret_or_179=nil,$ret_or_180=nil,$ret_or_181=nil,$ret_or_182=nil,$ret_or_183=nil,$ret_or_184=nil,$ret_or_185=nil,$ret_or_186=nil,$ret_or_187=nil,$ret_or_188=nil,$ret_or_189=nil,$ret_or_190=nil,$ret_or_191=nil,$ret_or_192=nil,$ret_or_193=nil,$ret_or_194=nil,$ret_or_195=nil,$ret_or_196=nil,$ret_or_197=nil,$ret_or_198=nil,$ret_or_199=nil,$ret_or_200=nil,$ret_or_201=nil,$ret_or_202=nil,$ret_or_203=nil,$ret_or_204=nil,$ret_or_205=nil,$ret_or_206=nil,$ret_or_207=nil,$ret_or_208=nil,$ret_or_209=nil,$ret_or_210=nil,$ret_or_211=nil,$ret_or_212=nil,$ret_or_213=nil,$ret_or_214=nil,$ret_or_215=nil,$ret_or_216=nil,$ret_or_217=nil,$ret_or_218=nil,$ret_or_219=nil,$ret_or_220=nil,$ret_or_221=nil,$ret_or_222=nil,$ret_or_223=nil,$ret_or_224=nil,$ret_or_225=nil,$ret_or_226=nil,$ret_or_227=nil,$ret_or_228=nil,$ret_or_229=nil,$ret_or_230=nil,$ret_or_231=nil,$ret_or_232=nil,$ret_or_233=nil,$ret_or_234=nil,$ret_or_235=nil,$ret_or_236=nil,$ret_or_237=nil,$ret_or_238=nil,$ret_or_239=nil,$ret_or_240=nil,$ret_or_241=nil,$ret_or_242=nil,$ret_or_243=nil,$ret_or_244=nil,$ret_or_245=nil,$ret_or_246=nil,$ret_or_247=nil,$ret_or_248=nil,$ret_or_249=nil,$ret_or_250=nil,$ret_or_251=nil,$ret_or_252=nil,$ret_or_253=nil,$ret_or_254=nil,$ret_or_255=nil,$ret_or_256=nil,$ret_or_257=nil,$ret_or_258=nil,$ret_or_259=nil,$ret_or_260=nil,$ret_or_261=nil,$ret_or_262=nil,$ret_or_263=nil,$ret_or_264=nil,$ret_or_265=nil,$ret_or_266=nil,$ret_or_267=nil,$ret_or_268=nil,$ret_or_269=nil,$ret_or_270=nil,$ret_or_271=nil,$ret_or_272=nil,$ret_or_273=nil,$ret_or_274=nil,$ret_or_275=nil,$ret_or_276=nil,$ret_or_277=nil,$ret_or_278=nil,$ret_or_279=nil,$ret_or_280=nil,$ret_or_281=nil,$ret_or_282=nil,$ret_or_283=nil,$ret_or_284=nil,$ret_or_285=nil,$ret_or_286=nil,$ret_or_287=nil,$ret_or_288=nil,$ret_or_289=nil,$ret_or_290=nil,$ret_or_291=nil,$ret_or_292=nil,$ret_or_293=nil,$ret_or_294=nil,$ret_or_295=nil,$ret_or_296=nil,$ret_or_297=nil,$ret_or_298=nil,$ret_or_299=nil,$ret_or_300=nil,$ret_or_301=nil,$ret_or_302=nil,$ret_or_303=nil,$ret_or_304=nil,$ret_or_305=nil,$ret_or_306=nil,$ret_or_307=nil,$ret_or_308=nil,$ret_or_309=nil,$ret_or_310=nil,$ret_or_311=nil,$ret_or_312=nil,$ret_or_313=nil,$ret_or_314=nil,$ret_or_315=nil,$ret_or_316=nil,$ret_or_317=nil,$ret_or_318=nil,$ret_or_319=nil,$ret_or_320=nil,$ret_or_321=nil,$ret_or_322=nil,$ret_or_323=nil,$ret_or_324=nil,$ret_or_325=nil,$ret_or_326=nil,$ret_or_327=nil,$ret_or_328=nil,$ret_or_329=nil,$ret_or_330=nil,$ret_or_331=nil,$ret_or_332=nil,$ret_or_333=nil,$ret_or_334=nil,$ret_or_335=nil,$ret_or_336=nil,$ret_or_337=nil,$ret_or_338=nil,$ret_or_339=nil,$ret_or_340=nil,$ret_or_341=nil,$ret_or_342=nil,$ret_or_343=nil,$ret_or_344=nil,$ret_or_345=nil,$ret_or_346=nil,$ret_or_347=nil,$ret_or_348=nil,$ret_or_349=nil,$ret_or_350=nil,$ret_or_351=nil,$ret_or_352=nil,$ret_or_353=nil,$ret_or_354=nil,$ret_or_355=nil,$ret_or_356=nil,$ret_or_357=nil,$ret_or_358=nil,$ret_or_359=nil,$ret_or_360=nil,$ret_or_361=nil,$ret_or_362=nil,$ret_or_363=nil,$ret_or_364=nil,$ret_or_365=nil,$ret_or_366=nil,$ret_or_367=nil,$ret_or_368=nil,$ret_or_369=nil,$ret_or_370=nil,$ret_or_371=nil,$ret_or_372=nil,$ret_or_373=nil,$ret_or_374=nil,$ret_or_375=nil,$ret_or_376=nil,$ret_or_377=nil,$ret_or_378=nil,$ret_or_379=nil,$ret_or_380=nil,$ret_or_381=nil,$ret_or_382=nil,$ret_or_383=nil,$ret_or_384=nil,$ret_or_385=nil,$ret_or_386=nil,$ret_or_387=nil,$ret_or_388=nil,$ret_or_389=nil,$ret_or_390=nil,$ret_or_391=nil,$ret_or_392=nil,$ret_or_393=nil,$ret_or_394=nil,$ret_or_395=nil,$ret_or_396=nil,$ret_or_397=nil,$ret_or_398=nil,$ret_or_399=nil,$ret_or_400=nil,$ret_or_401=nil,$ret_or_402=nil,$ret_or_403=nil,$ret_or_404=nil,$ret_or_405=nil,$ret_or_406=nil,$ret_or_407=nil,$ret_or_408=nil,$ret_or_409=nil,$ret_or_410=nil,$ret_or_411=nil,$ret_or_412=nil,$ret_or_413=nil,$ret_or_414=nil,$ret_or_415=nil,$ret_or_416=nil,$ret_or_417=nil,$ret_or_418=nil,$ret_or_419=nil,$ret_or_420=nil,$ret_or_421=nil,$ret_or_422=nil,$ret_or_423=nil,$ret_or_424=nil,$ret_or_425=nil,$ret_or_426=nil,$ret_or_427=nil,$ret_or_428=nil,$ret_or_429=nil,$ret_or_430=nil,$ret_or_431=nil,$ret_or_432=nil,$ret_or_433=nil,$ret_or_434=nil,$ret_or_435=nil,$ret_or_436=nil,$ret_or_437=nil,$ret_or_438=nil,$ret_or_439=nil,$ret_or_440=nil,$ret_or_441=nil,$ret_or_442=nil,$ret_or_443=nil,$ret_or_444=nil,$ret_or_445=nil,$ret_or_446=nil,$ret_or_447=nil,$ret_or_448=nil,$ret_or_449=nil,$ret_or_450=nil,$ret_or_451=nil,$ret_or_452=nil,$ret_or_453=nil,$ret_or_454=nil,$ret_or_455=nil,$ret_or_456=nil,$ret_or_457=nil,$ret_or_458=nil,$ret_or_459=nil,$ret_or_460=nil,$ret_or_461=nil,$ret_or_462=nil,$ret_or_463=nil,$ret_or_464=nil,$ret_or_465=nil,$ret_or_466=nil,$ret_or_467=nil,$ret_or_468=nil,$ret_or_469=nil,$ret_or_470=nil,$ret_or_471=nil,$ret_or_472=nil,$ret_or_473=nil,$ret_or_474=nil,$ret_or_475=nil,$ret_or_476=nil,$ret_or_477=nil,$ret_or_478=nil,$ret_or_479=nil,$ret_or_480=nil,$ret_or_481=nil,$ret_or_482=nil,$ret_or_483=nil,$ret_or_484=nil,$ret_or_485=nil,$ret_or_486=nil,$ret_or_487=nil,$ret_or_488=nil,$ret_or_489=nil,$ret_or_490=nil,$ret_or_491=nil,$ret_or_492=nil,$ret_or_493=nil,$ret_or_494=nil,$ret_or_495=nil,$ret_or_496=nil,$ret_or_497=nil,$ret_or_498=nil,$ret_or_499=nil,$ret_or_500=nil,$ret_or_501=nil,$ret_or_502=nil,$ret_or_503=nil,$ret_or_504=nil,$ret_or_505=nil,$ret_or_506=nil,$ret_or_507=nil,$ret_or_508=nil,$ret_or_509=nil,$ret_or_510=nil,$ret_or_511=nil,$ret_or_512=nil,$ret_or_513=nil,$ret_or_514=nil,$ret_or_515=nil,$ret_or_516=nil,$ret_or_517=nil,$ret_or_518=nil,$ret_or_519=nil,$ret_or_520=nil,$ret_or_521=nil,$ret_or_522=nil;if($truthy(self.token_queue["$any?"]()))return self.token_queue.$shift();for(klass=self.$class(),_lex_trans_keys=klass.$send("_lex_trans_keys"),_lex_key_spans=klass.$send("_lex_key_spans"),_lex_index_offsets=klass.$send("_lex_index_offsets"),_lex_indicies=klass.$send("_lex_indicies"),_lex_trans_targs=klass.$send("_lex_trans_targs"),_lex_trans_actions=klass.$send("_lex_trans_actions"),_lex_to_state_actions=klass.$send("_lex_to_state_actions"),_lex_from_state_actions=klass.$send("_lex_from_state_actions"),_lex_eof_trans=klass.$send("_lex_eof_trans"),pe=$rb_plus(self.source_pts.$size(),2),$a=[self.p,pe],p=$a[0],eof=$a[1],cmd_state=self.command_start,self.command_start=!1,$b=nil,$a=Opal.to_ary($b),null==$a[0]||$a[0],_trans=null==$a[1]?nil:$a[1],null==$a[2]||$a[2],null==$a[3]||$a[3],null==$a[4]||$a[4],null==$a[5]||$a[5],_goto_level=0,0;$truthy(!0);){if($truthy($rb_le(_goto_level,0))){if(p["$=="](pe)){_goto_level=30;continue}if(self.cs["$=="](0)){_goto_level=40;continue}}if($truthy($rb_le(_goto_level,10))&&($case=_lex_from_state_actions["$[]"](self.cs),97["$==="]($case)&&(self.ts=p),_keys=self.cs["$<<"](1),_inds=_lex_index_offsets["$[]"](self.cs),_slen=_lex_key_spans["$[]"](self.cs),_wide=$truthy($ret_or_1=self.source_pts["$[]"](p))?$ret_or_1:0,_trans=$truthy($truthy($ret_or_2=$truthy($ret_or_3=$rb_gt(_slen,0))?$rb_le(_lex_trans_keys["$[]"](_keys),_wide):$ret_or_3)?$rb_le(_wide,_lex_trans_keys["$[]"]($rb_plus(_keys,1))):$ret_or_2)?_lex_indicies["$[]"]($rb_minus($rb_plus(_inds,_wide),_lex_trans_keys["$[]"](_keys))):_lex_indicies["$[]"]($rb_plus(_inds,_slen))),$truthy($rb_le(_goto_level,15))&&(self.cs=_lex_trans_targs["$[]"](_trans),$truthy(_lex_trans_actions["$[]"](_trans)["$!="](0))))if($case=_lex_trans_actions["$[]"](_trans),29["$==="]($case))self.newline_s=p;else if(117["$==="]($case))self.escape_s=p,self.escape=nil;else if(30["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil);else if(60["$==="]($case))self.sharp_s=$rb_minus(p,1);else if(64["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p);else if(310["$==="]($case))tm=p;else if(37["$==="]($case))tm=p;else if(39["$==="]($case))tm=p;else if(41["$==="]($case))tm=p;else if(71["$==="]($case))heredoc_e=p;else if(349["$==="]($case))tm=$rb_minus(p,1),diag_msg="ivar_name";else if(352["$==="]($case))tm=$rb_minus(p,2),diag_msg="cvar_name";else if(360["$==="]($case))self.escape=nil;else if(392["$==="]($case))tm=p;else if(308["$==="]($case))ident_tok=self.$tok(),ident_ts=self.ts,ident_te=self.te;else if(479["$==="]($case))self.num_base=16,self.num_digits_s=p;else if(473["$==="]($case))self.num_base=10,self.num_digits_s=p;else if(476["$==="]($case))self.num_base=8,self.num_digits_s=p;else if(470["$==="]($case))self.num_base=2,self.num_digits_s=p;else if(485["$==="]($case))self.num_base=10,self.num_digits_s=self.ts;else if(447["$==="]($case))self.num_base=8,self.num_digits_s=self.ts;else if(462["$==="]($case))self.num_suffix_s=p;else if(455["$==="]($case))self.num_suffix_s=p;else if(452["$==="]($case))self.num_suffix_s=p;else if(89["$==="]($case))tm=p;else if(7["$==="]($case))self.te=$rb_plus(p,1);else{if(113["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(5["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(109["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_4=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_4)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(108["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_5=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_5)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_6=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_6)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(115["$==="]($case))p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if(114["$==="]($case)){p=$rb_minus(self.te=p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(111["$==="]($case))p=$rb_minus(self.te=p,1),self.$literal().$extend_space(self.ts,self.te);else if(112["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_7=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_7)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_8=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_8)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(6["$==="]($case))p=$rb_minus(self.te,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_9=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_9)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_10=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_10)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_11=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_11)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_12=$truthy($ret_or_13=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_13)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_12)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_14=self.escape)?$ret_or_14:self.$tok(),self.ts,self.te);else if(4["$==="]($case)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($truthy($ret_or_15=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_15)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_16=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_16)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if(145["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(10["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(142["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_17=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_17)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(141["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_18=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_18)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_19=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_19)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(147["$==="]($case))p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if(146["$==="]($case)){p=$rb_minus(self.te=p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(144["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_20=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_20)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_21=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_21)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(11["$==="]($case))p=$rb_minus(self.te,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_22=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_22)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_23=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_23)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_24=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_24)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_25=$truthy($ret_or_26=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_26)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_25)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_27=self.escape)?$ret_or_27:self.$tok(),self.ts,self.te);else if(9["$==="]($case)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($truthy($ret_or_28=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_28)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_29=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_29)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(173["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_30=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_30)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(172["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_31=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_31)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_32=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_32)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(175["$==="]($case))p=$rb_minus(self.te=p,1),self.$literal().$extend_space(self.ts,self.te);else if(176["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_33=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_33)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_34=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_34)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(179["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_35=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_35)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(178["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_36=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_36)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_37=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_37)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(181["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_38=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_38)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_39=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_39)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if(188["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(13["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(185["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_40=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_40)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(184["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_41=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_41)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_42=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_42)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(190["$==="]($case))p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if(189["$==="]($case)){p=$rb_minus(self.te=p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(187["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_43=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_43)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_44=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_44)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(12["$==="]($case)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($truthy($ret_or_45=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_45)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_46=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_46)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(192["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_47=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_47)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(191["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_48=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_48)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_49=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_49)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if(199["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(15["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(195["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_50=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_50)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(194["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_51=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_51)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_52=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_52)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(201["$==="]($case))p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if(200["$==="]($case)){p=$rb_minus(self.te=p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(197["$==="]($case))p=$rb_minus(self.te=p,1),self.$literal().$extend_space(self.ts,self.te);else if(198["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_53=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_53)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_54=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_54)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(14["$==="]($case)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($truthy($ret_or_55=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_55)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_56=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_56)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(203["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_57=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_57)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(202["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_58=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_58)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_59=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_59)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(205["$==="]($case))p=$rb_minus(self.te=p,1),self.$literal().$extend_space(self.ts,self.te);else{if(206["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tREGEXP_OPT",self.$tok(self.ts,$rb_minus(self.te,1)),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(207["$==="]($case)){p=$rb_minus(self.te=p,1),unknown_options=self.$tok().$scan(/[^imxouesn]/),$truthy(unknown_options["$any?"]())&&self.$diagnostic("error","regexp_options",$hash2(["options"],{options:unknown_options.$join()})),self.$emit("tREGEXP_OPT"),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(16["$==="]($case)){self.te=$rb_plus(p,1),$truthy(self.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?self.$emit("tNTH_REF",self.$tok($rb_plus(self.ts,1)).$to_i()):$truthy(self.$tok()["$=~"](/^\$([&`'+])$/))?self.$emit("tBACK_REF"):self.$emit("tGVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if(208["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy(self.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?self.$emit("tNTH_REF",self.$tok($rb_plus(self.ts,1)).$to_i()):$truthy(self.$tok()["$=~"](/^\$([&`'+])$/))?self.$emit("tBACK_REF"):self.$emit("tGVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if(210["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy(self.$tok()["$=~"](/^@@[0-9]/))&&self.$diagnostic("error","cvar_name",$hash2(["name"],{name:self.$tok()})),self.$emit("tCVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if(209["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy(self.$tok()["$=~"](/^@[0-9]/))&&self.$diagnostic("error","ivar_name",$hash2(["name"],{name:self.$tok()})),self.$emit("tIVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if(231["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(217["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(18["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(214["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(226["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(20["$==="]($case)){if(self.te=$rb_plus(p,1),$truthy(self["$version?"](23))){type=($b=[self.$tok()["$[]"]($range(0,-2,!1)),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(213["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(212["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(230["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(227["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tCONSTANT"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(229["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(224["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(220["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(225["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(218["$==="]($case))p=$rb_minus(self.te=p,1);else{if(223["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(19["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(17["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(216["$==="]($case)){if($case=self.act,43["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(44["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(45["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}}else{if(22["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tLABEL",self.$tok(self.ts,$rb_minus(self.te,2)),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=795,p=$rb_plus(p,1),_goto_level=40;continue}if(23["$==="]($case)){if(self.te=$rb_plus(p,1),$truthy($truthy($ret_or_60=$rb_ge(self.version,31))?self.context.$in_argdef():$ret_or_60)){self.$emit("tBDOT3","...".$freeze()),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,3),self.cs=810,_goto_level=20;continue}if(233["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(232["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(235["$==="]($case))p=$rb_minus(self.te=p,1);else{if(234["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(21["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(241["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(240["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(239["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(251["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(242["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tIDENTIFIER"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(247["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(245["$==="]($case))p=$rb_minus(self.te=p,1);else{if(250["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(274["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(257["$==="]($case)){self.te=$rb_plus(p,1),self.$tok(tm,$rb_plus(tm,1))["$=="]("/".$freeze())&&($truthy($rb_lt(self.version,30))?self.$diagnostic("warning","ambiguous_literal",nil,self.$range(tm,$rb_plus(tm,1))):self.$diagnostic("warning","ambiguous_regexp",nil,self.$range(tm,$rb_plus(tm,1)))),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if(263["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(25["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}if(265["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if(40["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(252["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(253["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(264["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(260["$==="]($case)){p=$rb_minus(self.te=p,1),self.$diagnostic("warning","ambiguous_prefix",$hash2(["prefix"],{prefix:self.$tok(tm,self.te)}),self.$range(tm,self.te)),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if(262["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(256["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(255["$==="]($case))p=$rb_minus(self.te=p,1);else{if(273["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(26["$==="]($case))p=$rb_minus(self.te,1);else{if(42["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(24["$==="]($case)){if($case=self.act,72["$==="]($case)){p=$rb_minus(self.te,1),self.$tok(tm,$rb_plus(tm,1))["$=="]("/".$freeze())&&($truthy($rb_lt(self.version,30))?self.$diagnostic("warning","ambiguous_literal",nil,self.$range(tm,$rb_plus(tm,1))):self.$diagnostic("warning","ambiguous_regexp",nil,self.$range(tm,$rb_plus(tm,1)))),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if(73["$==="]($case)){p=$rb_minus(self.te,1),self.$diagnostic("warning","ambiguous_prefix",$hash2(["prefix"],{prefix:self.$tok(tm,self.te)}),self.$range(tm,self.te)),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if(78["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}p=$rb_minus(self.te,1)}else{if(44["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if(278["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(279["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if(45["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if(43["$==="]($case)){if($case=self.act,85["$==="]($case)){p=$rb_minus(self.te,1),$truthy(self.cond["$active?"]())?self.$emit("kDO_COND","do".$freeze(),$rb_minus(self.te,2),self.te):self.$emit("kDO","do".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(86["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}}else{if(289["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_do(!0),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(282["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(283["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(284["$==="]($case))p=$rb_minus(self.te=p,1);else{if(287["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(293["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(292["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(301["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}if(295["$==="]($case))p=$rb_minus(self.te=p,1);else{if(299["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(294["$==="]($case)){if($case=self.act,93["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(94["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}}else{if(57["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(334["$==="]($case)){self.te=$rb_plus(p,1),type=delimiter=self.$tok()["$[]"](0).$chr(),p=$rb_minus(p,1),self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if(326["$==="]($case)){self.te=$rb_plus(p,1),type=($b=[self.source_buffer.$slice(self.ts).$chr(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if(55["$==="]($case)){self.te=$rb_plus(p,1),type=($b=[self.$tok()["$[]"]($range(0,-2,!1)),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if(347["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.$emit("tSYMBEG",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),self.cs=352,_goto_level=20;continue}if(335["$==="]($case)){self.te=$rb_plus(p,1),type=($b=[self.$tok(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if(346["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),$rb_plus(self.ts,2))),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(69["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1)),self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(357["$==="]($case)){self.te=$rb_plus(p,1),escape=$hash2([" ","\r","\n","\t","\v","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\v":"\\v","\f":"\\f"})["$[]"](self.source_buffer.$slice($rb_plus(self.ts,1))),self.$diagnostic("warning","invalid_escape_use",$hash2(["escape"],{escape:escape}),self.$range()),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(356["$==="]($case))self.te=$rb_plus(p,1),self.$diagnostic("fatal","incomplete_escape",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(336["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if(52["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),$truthy(self["$version?"](18))?(ident=self.$tok(self.ts,$rb_minus(self.te,2)),self.$emit($truthy(self.source_buffer.$slice(self.ts)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",ident,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,1),$truthy($truthy($ret_or_61=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](ident):$ret_or_61)?self.cs=810:self.cs=self.$arg_or_cmdarg(cmd_state)):(self.$emit("tLABEL",self.$tok(self.ts,$rb_minus(self.te,2)),self.ts,$rb_minus(self.te,1)),self.cs=795),p=$rb_plus(p,1),_goto_level=40;continue}if(49["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER",ident_tok,ident_ts,ident_te),p=$rb_minus(ident_te,1),$truthy($truthy($ret_or_62=$truthy($ret_or_63=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](ident_tok):$ret_or_63)?$rb_lt(self.version,25):$ret_or_62)?self.cs=465:self.cs=525,p=$rb_plus(p,1),_goto_level=40;continue}if(320["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if(56["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(304["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(330["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(329["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tSTAR","*".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(325["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("fatal","string_eof",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else if(354["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(337["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1)),self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(350["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(355["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("fatal","incomplete_escape",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(361["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(327["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if(331["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$emit("tBDOT2"):self.$emit("tDOT2"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(332["$==="]($case)){p=$rb_minus(self.te=p,1),followed_by_nl=$rb_minus(self.te,1)["$=="](self.newline_s),nl_emitted=!1,dots_te=$truthy(followed_by_nl)?$rb_minus(self.te,1):self.te,$truthy($rb_ge(self.version,30))?$truthy($truthy($ret_or_64=self.lambda_stack["$any?"]())?$rb_plus(self.lambda_stack.$last(),1)["$=="](self.paren_nest):$ret_or_64)?self.$emit("tDOT3","...".$freeze(),self.ts,dots_te):(self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te),$truthy($truthy($ret_or_65=$truthy($ret_or_66=$rb_ge(self.version,31))?followed_by_nl:$ret_or_66)?self.context.$in_argdef():$ret_or_65)&&(self.$emit("tNL",$rb_minus(self.te,1),self.te),nl_emitted=!0)):$truthy($rb_ge(self.version,27))?self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te):self.$emit("tDOT3","...".$freeze(),self.ts,dots_te),$truthy($truthy($ret_or_67=followed_by_nl)?nl_emitted["$!"]():$ret_or_67)&&(p=$rb_minus(p,1)),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(307["$==="]($case)){if(p=$rb_minus(self.te=p,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_68=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_68)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(317["$==="]($case))p=$rb_minus(self.te=p,1);else{if(319["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if(322["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(54["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("fatal","string_eof",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else if(73["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(74["$==="]($case)){p=$rb_minus(self.te,1),value=$truthy($ret_or_69=self.escape)?$ret_or_69:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(48["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_70=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_70)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(53["$==="]($case))p=$rb_minus(self.te,1);else{if(68["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(51["$==="]($case)){if($case=self.act,99["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(106["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(117["$==="]($case)){if(p=$rb_minus(self.te,1),$truthy($rb_ge(self.version,27))){self.$emit("tPIPE",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,2),self.cs=810,_goto_level=20;continue}if(121["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if(122["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(123["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(127["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(128["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_71=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_71)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(132["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}}}else{if(395["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(396["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(397["$==="]($case))p=$rb_minus(self.te=p,1);else{if(401["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(77["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(405["$==="]($case)){self.te=$rb_plus(p,1),self.cs=self.$push_literal(self.$tok(),self.$tok(),self.ts),_goto_level=20;continue}if(404["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(403["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(407["$==="]($case))p=$rb_minus(self.te=p,1);else{if(406["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(76["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(440["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tLAMBDA","->".$freeze(),self.ts,$rb_plus(self.ts,2)),self.lambda_stack.$push(self.paren_nest),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(86["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(415["$==="]($case)){self.te=$rb_plus(p,1),type=($b=[self.$tok(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts,nil,!1,!1,!0),_goto_level=20;continue}if(79["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(436["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=473,p=$rb_plus(p,1),_goto_level=40;continue}if(489["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(429["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(434["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tOP_ASGN",self.$tok(self.ts,$rb_minus(self.te,1))),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(420["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tEH","?".$freeze()),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(417["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(419["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tSEMI",";".$freeze()),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(494["$==="]($case))self.te=$rb_plus(p,1),self.$diagnostic("error","bare_backslash",nil,self.$range(self.ts,$rb_plus(self.ts,1))),p=$rb_minus(p,1);else if(414["$==="]($case))self.te=$rb_plus(p,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else{if(413["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(505["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if(503["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(502["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(444["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("error","no_dot_digit_literal");else{if(491["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(433["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(441["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=473,p=$rb_plus(p,1),_goto_level=40;continue}if(497["$==="]($case)){if(p=$rb_minus(self.te=p,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_72=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_72)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(439["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(435["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(428["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(442["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(426["$==="]($case))p=$rb_minus(self.te=p,1);else if(432["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else{if(84["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_73=$truthy($ret_or_74=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_74)?self["$version?"](18):$ret_or_73)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_75=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_75)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(80["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("error","no_dot_digit_literal");else{if(83["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(78["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else if(81["$==="]($case)){if($case=self.act,145["$==="]($case)){p=$rb_minus(self.te,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$tok()["$=="]("{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):self.$tok()["$=="]("{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),self.$tok()["$=="]("{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(146["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if(147["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(148["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(149["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(150["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(151["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),$truthy($truthy($ret_or_76=self["$version?"](18))?self.$tok()["$=="]("not".$freeze()):$ret_or_76)){self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(152["$==="]($case)){p=$rb_minus(self.te,1),$truthy(self["$version?"](18))?(self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_77=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_77)||(self.cs=self.$arg_or_cmdarg(cmd_state))):self.$emit("k__ENCODING__","__ENCODING__".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(153["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),p=$rb_plus(p,1),_goto_level=40;continue}if(154["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_78=$truthy($ret_or_79=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_79)?self["$version?"](18):$ret_or_78)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_80=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_80)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(156["$==="]($case)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tINTEGER",self.$tok(self.ts,$rb_minus(self.te,1)).$to_i(),self.ts,$rb_minus(self.te,1)),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else if(157["$==="]($case)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tFLOAT",self.$tok(self.ts,$rb_minus(self.te,1)).$to_f(),self.ts,$rb_minus(self.te,1)),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else{if(158["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(160["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(164["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_81=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_81)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(165["$==="]($case)){p=$rb_minus(self.te,1),tm["$=="](self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(167["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(168["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}}}else{if(516["$==="]($case)){if(self.te=$rb_plus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),$truthy($rb_lt(self.version,27))){p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tBDOT3"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(95["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if(510["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if(513["$==="]($case)){if(p=$rb_minus(self.te=p,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if(515["$==="]($case)){if(p=$rb_minus(self.te=p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),$truthy($rb_lt(self.version,27))){p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tBDOT2"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(514["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if(512["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if(90["$==="]($case)){if(p=$rb_minus(self.te,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if(87["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if(91["$==="]($case)){if($case=self.act,181["$==="]($case)){if(p=$rb_minus(self.te,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else if(185["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if(519["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_comment(self.eq_begin_s,self.te),self.cs=self.cs_before_block_comment,_goto_level=20;continue}if(518["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("fatal","embedded_document",nil,self.$range(self.eq_begin_s,$rb_plus(self.eq_begin_s,"=begin".$length())));else{if(106["$==="]($case)){self.te=$rb_plus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if(2["$==="]($case))self.te=$rb_plus(p,1),p=$rb_minus(pe,3);else{if(98["$==="]($case)){self.te=$rb_plus(p,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if(99["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(100["$==="]($case))p=$rb_minus(self.te=p,1);else{if(105["$==="]($case)){p=$rb_minus(self.te=p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if(104["$==="]($case)){p=$rb_minus(self.te=p,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if(1["$==="]($case)){p=$rb_minus(self.te,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if(67["$==="]($case))self.newline_s=p,self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p);else if(110["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_82=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_82)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(143["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_83=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_83)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(174["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_84=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_84)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(180["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_85=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_85)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(186["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_86=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_86)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(193["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_87=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_87)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(196["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_88=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_88)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(204["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_89=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_89)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else{if(275["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(266["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if(258["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(358["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),escape=$hash2([" ","\r","\n","\t","\v","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\v":"\\v","\f":"\\f"})["$[]"](self.source_buffer.$slice($rb_plus(self.ts,1))),self.$diagnostic("warning","invalid_escape_use",$hash2(["escape"],{escape:escape}),self.$range()),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(333["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),followed_by_nl=$rb_minus(self.te,1)["$=="](self.newline_s),nl_emitted=!1,dots_te=$truthy(followed_by_nl)?$rb_minus(self.te,1):self.te,$truthy($rb_ge(self.version,30))?$truthy($truthy($ret_or_90=self.lambda_stack["$any?"]())?$rb_plus(self.lambda_stack.$last(),1)["$=="](self.paren_nest):$ret_or_90)?self.$emit("tDOT3","...".$freeze(),self.ts,dots_te):(self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te),$truthy($truthy($ret_or_91=$truthy($ret_or_92=$rb_ge(self.version,31))?followed_by_nl:$ret_or_92)?self.context.$in_argdef():$ret_or_91)&&(self.$emit("tNL",$rb_minus(self.te,1),self.te),nl_emitted=!0)):$truthy($rb_ge(self.version,27))?self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te):self.$emit("tDOT3","...".$freeze(),self.ts,dots_te),$truthy($truthy($ret_or_93=followed_by_nl)?nl_emitted["$!"]():$ret_or_93)&&(p=$rb_minus(p,1)),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(321["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if(443["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),self.paren_nest["$=="](0)&&self.$diagnostic("warning","triple_dot_at_eol",nil,self.$range(self.ts,$rb_minus(self.te,1))),self.$emit("tDOT3","...".$freeze(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(520["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),self.$emit_comment(self.eq_begin_s,self.te),self.cs=self.cs_before_block_comment,_goto_level=20;continue}if(517["$==="]($case))self.newline_s=p,self.te=$rb_plus(p,1);else{if(107["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if(3["$==="]($case))self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(pe,3);else{if(465["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$13=function(chars){var self=null==$$13.$$s?this:$$13.$$s;return null==chars&&(chars=nil),self.$emit("tRATIONAL",self.$Rational(chars))}).$$s=self,$$13.$$arity=1,$$13)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_94=$truthy($ret_or_95=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_95)?self["$version?"](18):$ret_or_94)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_96=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_96)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(463["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$14=function(chars){var self=null==$$14.$$s?this:$$14.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,chars))}).$$s=self,$$14.$$arity=1,$$14)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_97=$truthy($ret_or_98=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_98)?self["$version?"](18):$ret_or_97)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_99=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_99)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(468["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$15=function(chars){var self=null==$$15.$$s?this:$$15.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Rational(chars)))}).$$s=self,$$15.$$arity=1,$$15)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_100=$truthy($ret_or_101=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_101)?self["$version?"](18):$ret_or_100)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_102=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_102)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(466["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$16=function(chars){var self=null==$$16.$$s?this:$$16.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}).$$s=self,$$16.$$arity=1,$$16)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_103=$truthy($ret_or_104=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_104)?self["$version?"](18):$ret_or_103)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_105=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_105)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(464["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$17=function(chars){var self=null==$$17.$$s?this:$$17.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}).$$s=self,$$17.$$arity=1,$$17)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_106=$truthy($ret_or_107=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_107)?self["$version?"](18):$ret_or_106)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_108=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_108)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(467["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$18=function(chars){var self=null==$$18.$$s?this:$$18.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,6)),p=$rb_minus(p,6)}).$$s=self,$$18.$$arity=1,$$18)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_109=$truthy($ret_or_110=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_110)?self["$version?"](18):$ret_or_109)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_111=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_111)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(456["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$19=function(chars){var self=null==$$19.$$s?this:$$19.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Float(chars)))}).$$s=self,$$19.$$arity=1,$$19)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(457["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$20=function(chars){var self=null==$$20.$$s?this:$$20.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars),self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}).$$s=self,$$20.$$arity=1,$$20)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(458["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$21=function(chars){var self=null==$$21.$$s?this:$$21.$$s;return null==chars&&(chars=nil),self.$emit("tRATIONAL",self.$Rational(chars))}).$$s=self,$$21.$$arity=1,$$21)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(460["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$22=function(chars){var self=null==$$22.$$s?this:$$22.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Rational(chars)))}).$$s=self,$$22.$$arity=1,$$22)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(459["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$23=function(chars){var self=null==$$23.$$s?this:$$23.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars),self.ts,$rb_minus(self.te,6)),p=$rb_minus(p,6)}).$$s=self,$$23.$$arity=1,$$23)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(137["$==="]($case))self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&($truthy($truthy($ret_or_112=codepoints["$start_with?"](" "))?$ret_or_112:codepoints["$start_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),$truthy($truthy($ret_or_113=codepoints["$end_with?"](" "))?$ret_or_113:codepoints["$end_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(($$24=function($c){var self=null==$$24.$$s?this:$$24.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$c&&($c=nil),$c=$c,codepoint_str=null==($c=Opal.to_ary($c))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],codepoint_s=$truthy(spaces)?$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$($nesting,"Encoding"),"UTF_8"))),$rb_plus(codepoint_s,codepoint_str.$length()))}).$$s=self,$$24.$$brk=$brk,$$24.$$arity=1,$$24.$$has_top_level_mlhs_arg=!0,$$24))}catch(err){if(err===$brk)return err.$v;throw err}}(),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_114=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_114)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_115=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_115)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_116=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_116)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_117=$truthy($ret_or_118=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_118)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_117)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_119=self.escape)?$ret_or_119:self.$tok(),self.ts,self.te);else if(168["$==="]($case))self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&($truthy($truthy($ret_or_120=codepoints["$start_with?"](" "))?$ret_or_120:codepoints["$start_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),$truthy($truthy($ret_or_121=codepoints["$end_with?"](" "))?$ret_or_121:codepoints["$end_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(($$25=function($c){var self=null==$$25.$$s?this:$$25.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$c&&($c=nil),$c=$c,codepoint_str=null==($c=Opal.to_ary($c))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],codepoint_s=$truthy(spaces)?$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$($nesting,"Encoding"),"UTF_8"))),$rb_plus(codepoint_s,codepoint_str.$length()))}).$$s=self,$$25.$$brk=$brk,$$25.$$arity=1,$$25.$$has_top_level_mlhs_arg=!0,$$25))}catch(err){if(err===$brk)return err.$v;throw err}}(),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_122=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_122)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_123=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_123)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_124=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_124)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_125=$truthy($ret_or_126=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_126)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_125)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_127=self.escape)?$ret_or_127:self.$tok(),self.ts,self.te);else{if(382["$==="]($case)){self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&($truthy($truthy($ret_or_128=codepoints["$start_with?"](" "))?$ret_or_128:codepoints["$start_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),$truthy($truthy($ret_or_129=codepoints["$end_with?"](" "))?$ret_or_129:codepoints["$end_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(($$26=function($c){var self=null==$$26.$$s?this:$$26.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$c&&($c=nil),$c=$c,codepoint_str=null==($c=Opal.to_ary($c))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],codepoint_s=$truthy(spaces)?$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$($nesting,"Encoding"),"UTF_8"))),$rb_plus(codepoint_s,codepoint_str.$length()))}).$$s=self,$$26.$$brk=$brk,$$26.$$arity=1,$$26.$$has_top_level_mlhs_arg=!0,$$26))}catch(err){if(err===$brk)return err.$v;throw err}}(),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_130=self.escape)?$ret_or_130:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(118["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_131=$rb_ge(self.version,30))?$truthy($ret_or_132=codepoint["$=="](117))?$ret_or_132:codepoint["$=="](85):$ret_or_131)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_133=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_133)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_134=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_134)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_135=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_135)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_136=$truthy($ret_or_137=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_137)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_136)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_138=self.escape)?$ret_or_138:self.$tok(),self.ts,self.te);else if(149["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_139=$rb_ge(self.version,30))?$truthy($ret_or_140=codepoint["$=="](117))?$ret_or_140:codepoint["$=="](85):$ret_or_139)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_141=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_141)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_142=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_142)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_143=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_143)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_144=$truthy($ret_or_145=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_145)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_144)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_146=self.escape)?$ret_or_146:self.$tok(),self.ts,self.te);else{if(363["$==="]($case)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_147=$rb_ge(self.version,30))?$truthy($ret_or_148=codepoint["$=="](117))?$ret_or_148:codepoint["$=="](85):$ret_or_147)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_149=self.escape)?$ret_or_149:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(121["$==="]($case))self.$diagnostic("fatal","invalid_escape"),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_150=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_150)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_151=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_151)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_152=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_152)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_153=$truthy($ret_or_154=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_154)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_153)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_155=self.escape)?$ret_or_155:self.$tok(),self.ts,self.te);else if(152["$==="]($case))self.$diagnostic("fatal","invalid_escape"),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_156=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_156)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_157=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_157)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_158=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_158)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_159=$truthy($ret_or_160=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_160)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_159)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_161=self.escape)?$ret_or_161:self.$tok(),self.ts,self.te);else{if(366["$==="]($case)){self.$diagnostic("fatal","invalid_escape"),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_162=self.escape)?$ret_or_162:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(123["$==="]($case))self.escape="",p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_163=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_163)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_164=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_164)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_165=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_165)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_166=$truthy($ret_or_167=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_167)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_166)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_168=self.escape)?$ret_or_168:self.$tok(),self.ts,self.te);else if(154["$==="]($case))self.escape="",p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_169=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_169)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_170=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_170)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_171=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_171)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_172=$truthy($ret_or_173=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_173)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_172)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_174=self.escape)?$ret_or_174:self.$tok(),self.ts,self.te);else{if(368["$==="]($case)){self.escape="",p=$rb_minus(self.te=p,1),value=$truthy($ret_or_175=self.escape)?$ret_or_175:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(120["$==="]($case))self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_176=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_176)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_177=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_177)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_178=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_178)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_179=$truthy($ret_or_180=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_180)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_179)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_181=self.escape)?$ret_or_181:self.$tok(),self.ts,self.te);else if(151["$==="]($case))self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_182=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_182)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_183=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_183)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_184=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_184)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_185=$truthy($ret_or_186=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_186)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_185)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_187=self.escape)?$ret_or_187:self.$tok(),self.ts,self.te);else{if(365["$==="]($case)){self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_188=self.escape)?$ret_or_188:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(140["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_189=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_189)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_190=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_190)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_191=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_191)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_192=$truthy($ret_or_193=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_193)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_192)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_194=self.escape)?$ret_or_194:self.$tok(),self.ts,self.te);else if(171["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_195=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_195)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_196=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_196)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_197=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_197)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_198=$truthy($ret_or_199=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_199)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_198)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_200=self.escape)?$ret_or_200:self.$tok(),self.ts,self.te);else{if(385["$==="]($case)){self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_201=self.escape)?$ret_or_201:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(139["$==="]($case))self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_202=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_202)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_203=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_203)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_204=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_204)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_205=$truthy($ret_or_206=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_206)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_205)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_207=self.escape)?$ret_or_207:self.$tok(),self.ts,self.te);else if(170["$==="]($case))self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_208=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_208)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_209=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_209)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_210=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_210)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_211=$truthy($ret_or_212=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_212)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_211)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_213=self.escape)?$ret_or_213:self.$tok(),self.ts,self.te);else{if(384["$==="]($case)){self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_214=self.escape)?$ret_or_214:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(134["$==="]($case))self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$($nesting,"Encoding"),"UTF_8")),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_215=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_215)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_216=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_216)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_217=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_217)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_218=$truthy($ret_or_219=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_219)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_218)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_220=self.escape)?$ret_or_220:self.$tok(),self.ts,self.te);else if(165["$==="]($case))self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$($nesting,"Encoding"),"UTF_8")),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_221=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_221)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_222=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_222)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_223=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_223)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_224=$truthy($ret_or_225=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_225)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_224)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_226=self.escape)?$ret_or_226:self.$tok(),self.ts,self.te);else{if(379["$==="]($case)){self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$($nesting,"Encoding"),"UTF_8")),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_227=self.escape)?$ret_or_227:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(133["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_228=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_228)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_229=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_229)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_230=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_230)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_231=$truthy($ret_or_232=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_232)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_231)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_233=self.escape)?$ret_or_233:self.$tok(),self.ts,self.te);else if(164["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_234=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_234)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_235=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_235)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_236=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_236)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_237=$truthy($ret_or_238=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_238)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_237)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_239=self.escape)?$ret_or_239:self.$tok(),self.ts,self.te);else{if(378["$==="]($case)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_240=self.escape)?$ret_or_240:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(138["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_241=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_241)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_242=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_242)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_243=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_243)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_244=$truthy($ret_or_245=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_245)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_244)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_246=self.escape)?$ret_or_246:self.$tok(),self.ts,self.te);else if(169["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_247=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_247)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_248=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_248)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_249=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_249)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_250=$truthy($ret_or_251=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_251)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_250)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_252=self.escape)?$ret_or_252:self.$tok(),self.ts,self.te);else{if(383["$==="]($case)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_253=self.escape)?$ret_or_253:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(135["$==="]($case))self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_254=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_254)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_255=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_255)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_256=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_256)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_257=$truthy($ret_or_258=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_258)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_257)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_259=self.escape)?$ret_or_259:self.$tok(),self.ts,self.te);else if(166["$==="]($case))self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_260=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_260)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_261=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_261)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_262=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_262)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_263=$truthy($ret_or_264=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_264)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_263)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_265=self.escape)?$ret_or_265:self.$tok(),self.ts,self.te);else{if(380["$==="]($case)){self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_266=self.escape)?$ret_or_266:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(119["$==="]($case))self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_267=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_267)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_268=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_268)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_269=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_269)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_270=$truthy($ret_or_271=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_271)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_270)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_272=self.escape)?$ret_or_272:self.$tok(),self.ts,self.te);else if(150["$==="]($case))self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_273=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_273)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_274=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_274)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_275=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_275)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_276=$truthy($ret_or_277=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_277)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_276)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_278=self.escape)?$ret_or_278:self.$tok(),self.ts,self.te);else{if(364["$==="]($case)){self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_279=self.escape)?$ret_or_279:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(177["$==="]($case))self.escape_s=p,self.escape=nil,self.te=$rb_plus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_280=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_280)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_281=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_281)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_282=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_282)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_283=$truthy($ret_or_284=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_284)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_283)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_285=self.escape)?$ret_or_285:self.$tok(),self.ts,self.te);else if(182["$==="]($case))self.escape_s=p,self.escape=nil,self.te=$rb_plus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_286=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_286)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_287=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_287)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_288=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_288)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_289=$truthy($ret_or_290=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_290)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_289)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_291=self.escape)?$ret_or_291:self.$tok(),self.ts,self.te);else if(58["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.newline_s=p;else if(31["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if(33["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if(35["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if(219["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else if(238["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else if(246["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(34["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(277["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(269["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(288["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else if(300["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(296["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(59["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(50["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER",ident_tok,ident_ts,ident_te),p=$rb_minus(ident_te,1),$truthy($truthy($ret_or_292=$truthy($ret_or_293=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](ident_tok):$ret_or_293)?$rb_lt(self.version,25):$ret_or_292)?self.cs=465:self.cs=525,p=$rb_plus(p,1),_goto_level=40;continue}if(318["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else if(402["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(398["$==="]($case)){if($truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),$truthy(self.context.$in_kwarg())){p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}self.cs=186,_goto_level=20;continue}if(411["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(408["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),self.cs=186,_goto_level=20;continue}if(495["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(427["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),self.cs=990,_goto_level=20;continue}if(101["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(268["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),p=$rb_minus(self.te=p,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$emit("tLAMBEG","{".$freeze(),$rb_minus(self.te,1),self.te)):self.$emit("tLCURLY","{".$freeze(),$rb_minus(self.te,1),self.te),self.command_start=!0,self.paren_nest=$rb_plus(self.paren_nest,1),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(290["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),p=$rb_minus(self.te=p,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$emit("tLAMBEG","{".$freeze())):self.$emit("tLBRACE_ARG","{".$freeze()),self.paren_nest=$rb_plus(self.paren_nest,1),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(393["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),p=$rb_minus(self.te=p,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.command_start=!0,self.$emit("tLAMBEG","{".$freeze())):self.$emit("tLBRACE","{".$freeze()),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_plus(p,1),_goto_level=40;continue}if(508["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),p=$rb_minus(self.te=p,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$tok()["$=="]("{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):self.$tok()["$=="]("{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),self.$tok()["$=="]("{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(509["$==="]($case)){if(current_literal=self.$literal(),$truthy(current_literal)&&$truthy(current_literal.$end_interp_brace_and_try_closing())){$truthy(self["$version?"](18,19))?(self.$emit("tRCURLY","}".$freeze(),$rb_minus(p,1),p),self.cond.$lexpop(),self.cmdarg.$lexpop()):self.$emit("tSTRING_DEND","}".$freeze(),$rb_minus(p,1),p),$truthy(current_literal.$saved_herebody_s())&&(self.herebody_s=current_literal.$saved_herebody_s()),p=$rb_minus(p,1),self.cs=self.$next_state_for_literal(current_literal),p=$rb_plus(p,1),_goto_level=40;continue}self.paren_nest=$rb_minus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),$truthy($truthy($ret_or_294=self.$tok()["$=="]("}".$freeze()))?$ret_or_294:self.$tok()["$=="]("]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if(61["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p);else if(65["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.newline_s=p;else if(222["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(237["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(249["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else{if(271["$==="]($case)){self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1),self.cs=810,_goto_level=20;continue}if(286["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(298["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(324["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(400["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(410["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(431["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(103["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else{if(243["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),self.$emit("tFID",self.$tok(self.ts,tm),self.ts,tm),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p=$rb_minus(tm,1),1),_goto_level=40;continue}if(338["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(309["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(424["$==="]($case)){if(tm=p,$case=self.act,145["$==="]($case)){p=$rb_minus(self.te,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$tok()["$=="]("{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):self.$tok()["$=="]("{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),self.$tok()["$=="]("{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(146["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if(147["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(148["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(149["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(150["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(151["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),$truthy($truthy($ret_or_295=self["$version?"](18))?self.$tok()["$=="]("not".$freeze()):$ret_or_295)){self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(152["$==="]($case)){p=$rb_minus(self.te,1),$truthy(self["$version?"](18))?(self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_296=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_296)||(self.cs=self.$arg_or_cmdarg(cmd_state))):self.$emit("k__ENCODING__","__ENCODING__".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(153["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),p=$rb_plus(p,1),_goto_level=40;continue}if(154["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_297=$truthy($ret_or_298=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_298)?self["$version?"](18):$ret_or_297)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_299=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_299)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(156["$==="]($case)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tINTEGER",self.$tok(self.ts,$rb_minus(self.te,1)).$to_i(),self.ts,$rb_minus(self.te,1)),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else if(157["$==="]($case)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tFLOAT",self.$tok(self.ts,$rb_minus(self.te,1)).$to_f(),self.ts,$rb_minus(self.te,1)),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else{if(158["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(160["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(164["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_300=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_300)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(165["$==="]($case)){p=$rb_minus(self.te,1),tm["$=="](self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(167["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(168["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}}}else{if(244["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tFID",self.$tok(self.ts,tm),self.ts,tm),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p=$rb_minus(tm,1),1),_goto_level=40;continue}if(339["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(311["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(425["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),tm["$=="](self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(340["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(312["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(341["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(313["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(345["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(316["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(344["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(315["$==="]($case)){if(tm=$rb_minus(p,2),$case=self.act,99["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(106["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(117["$==="]($case)){if(p=$rb_minus(self.te,1),$truthy($rb_ge(self.version,27))){self.$emit("tPIPE",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,2),self.cs=810,_goto_level=20;continue}if(121["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if(122["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(123["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(127["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(128["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_301=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_301)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(132["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}}}else{if(342["$==="]($case)){tm=$rb_minus(p,3),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(314["$==="]($case)){tm=$rb_minus(p,3),p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(343["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(490["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tCONSTANT",self.$tok(self.ts,tm),self.ts,tm),p=$rb_plus(p=$rb_minus(tm,1),1),_goto_level=40;continue}if(267["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit("tLBRACK","[".$freeze(),$rb_minus(self.te,1),self.te),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(386["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit("tLBRACK","[".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(493["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit("tLBRACK2","[".$freeze()),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(496["$==="]($case)){self.paren_nest=$rb_minus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),$truthy($truthy($ret_or_302=self.$tok()["$=="]("}".$freeze()))?$ret_or_302:self.$tok()["$=="]("]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if(259["$==="]($case)){if(self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),$truthy(self["$version?"](18))){self.$emit("tLPAREN2","(".$freeze(),$rb_minus(self.te,1),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tLPAREN_ARG","(".$freeze(),$rb_minus(self.te,1),self.te),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(272["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),self.$emit("tLPAREN2","(".$freeze()),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(280["$==="]($case)){if(self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),self.$emit("tLPAREN_ARG","(".$freeze(),$rb_minus(self.te,1),self.te),$truthy(self["$version?"](18))){self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(328["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),self.$emit("tLPAREN","(".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(437["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(438["$==="]($case)){self.paren_nest=$rb_minus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),$truthy($truthy($ret_or_303=self.$tok()["$=="]("}".$freeze()))?$ret_or_303:self.$tok()["$=="]("]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if(72["$==="]($case))heredoc_e=p,self.newline_s=p;else if(353["$==="]($case)){if(new_herebody_s=p,p=$rb_minus(self.te=p,1),self.$tok(self.ts,heredoc_e)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),indent=$truthy($ret_or_304=(($b=$gvars["~"])===nil?nil:$b["$[]"](1))["$empty?"]()["$!"]())?$ret_or_304:(($b=$gvars["~"])===nil?nil:$b["$[]"](2))["$empty?"]()["$!"](),dedent_body=(($b=$gvars["~"])===nil?nil:$b["$[]"](2))["$empty?"]()["$!"](),type=$truthy((($b=$gvars["~"])===nil?nil:$b["$[]"](3))["$empty?"]())?'<<"'.$freeze():$rb_plus("<<".$freeze(),($b=$gvars["~"])===nil?nil:$b["$[]"](3)),delimiter=($b=$gvars["~"])===nil?nil:$b["$[]"](4),$truthy($rb_ge(self.version,27))?$truthy($truthy($ret_or_305=$rb_gt(delimiter.$count("\n"),0))?$ret_or_305:$rb_gt(delimiter.$count("\r"),0))&&self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1))):$truthy($rb_ge(self.version,24))&&$truthy($rb_gt(delimiter.$count("\n"),0))&&($truthy(delimiter["$end_with?"]("\n"))?(self.$diagnostic("warning","heredoc_id_ends_with_nl",nil,self.$range(self.ts,$rb_plus(self.ts,1))),delimiter=delimiter.$rstrip()):self.$diagnostic("fatal","heredoc_id_has_newline",nil,self.$range(self.ts,$rb_plus(self.ts,1)))),$truthy($truthy($ret_or_306=dedent_body)?self["$version?"](18,19,20,21,22):$ret_or_306)){self.$emit("tLSHFT","<<".$freeze(),self.ts,$rb_plus(self.ts,2)),p=$rb_plus(self.ts,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$push_literal(type,delimiter,self.ts,heredoc_e,indent,dedent_body),self.herebody_s=$truthy($ret_or_307=self.herebody_s)?$ret_or_307:new_herebody_s,p=$rb_minus(self.herebody_s,1)}else{if(348["$==="]($case)){tm=$rb_minus(p,1),diag_msg="ivar_name",p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(351["$==="]($case)){tm=$rb_minus(p,2),diag_msg="cvar_name",p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(359["$==="]($case)){self.escape=nil,p=$rb_minus(self.te=p,1),value=$truthy($ret_or_308=self.escape)?$ret_or_308:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(389["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(480["$==="]($case))self.num_base=16,self.num_digits_s=p,self.num_suffix_s=p;else if(474["$==="]($case))self.num_base=10,self.num_digits_s=p,self.num_suffix_s=p;else if(477["$==="]($case))self.num_base=8,self.num_digits_s=p,self.num_suffix_s=p;else if(471["$==="]($case))self.num_base=2,self.num_digits_s=p,self.num_suffix_s=p;else if(486["$==="]($case))self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p;else if(449["$==="]($case))self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p;else if(487["$==="]($case))self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$27=function(chars){var self=null==$$27.$$s?this:$$27.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$27.$$arity=1,$$27));else if(8["$==="]($case))self.te=$rb_plus(p,1),self.newline_s=p;else if(453["$==="]($case))self.te=$rb_plus(p,1),self.num_suffix_s=p;else if(228["$==="]($case))self.te=$rb_plus(p,1),self.act=43;else if(215["$==="]($case))self.te=$rb_plus(p,1),self.act=44;else if(211["$==="]($case))self.te=$rb_plus(p,1),self.act=45;else if(27["$==="]($case))self.te=$rb_plus(p,1),self.act=72;else if(261["$==="]($case))self.te=$rb_plus(p,1),self.act=73;else if(28["$==="]($case))self.te=$rb_plus(p,1),self.act=78;else if(254["$==="]($case))self.te=$rb_plus(p,1),self.act=79;else if(281["$==="]($case))self.te=$rb_plus(p,1),self.act=85;else if(46["$==="]($case))self.te=$rb_plus(p,1),self.act=86;else if(302["$==="]($case))self.te=$rb_plus(p,1),self.act=93;else if(291["$==="]($case))self.te=$rb_plus(p,1),self.act=94;else if(70["$==="]($case))self.te=$rb_plus(p,1),self.act=106;else if(394["$==="]($case))self.te=$rb_plus(p,1),self.act=117;else if(305["$==="]($case))self.te=$rb_plus(p,1),self.act=121;else if(388["$==="]($case))self.te=$rb_plus(p,1),self.act=122;else if(387["$==="]($case))self.te=$rb_plus(p,1),self.act=123;else if(75["$==="]($case))self.te=$rb_plus(p,1),self.act=127;else if(303["$==="]($case))self.te=$rb_plus(p,1),self.act=128;else if(306["$==="]($case))self.te=$rb_plus(p,1),self.act=132;else if(504["$==="]($case))self.te=$rb_plus(p,1),self.act=145;else if(499["$==="]($case))self.te=$rb_plus(p,1),self.act=146;else if(507["$==="]($case))self.te=$rb_plus(p,1),self.act=148;else if(500["$==="]($case))self.te=$rb_plus(p,1),self.act=149;else if(501["$==="]($case))self.te=$rb_plus(p,1),self.act=150;else if(506["$==="]($case))self.te=$rb_plus(p,1),self.act=151;else if(498["$==="]($case))self.te=$rb_plus(p,1),self.act=152;else if(492["$==="]($case))self.te=$rb_plus(p,1),self.act=153;else if(418["$==="]($case))self.te=$rb_plus(p,1),self.act=154;else if(451["$==="]($case))self.te=$rb_plus(p,1),self.act=157;else if(82["$==="]($case))self.te=$rb_plus(p,1),self.act=158;else if(421["$==="]($case))self.te=$rb_plus(p,1),self.act=160;else if(412["$==="]($case))self.te=$rb_plus(p,1),self.act=164;else if(423["$==="]($case))self.te=$rb_plus(p,1),self.act=165;else if(416["$==="]($case))self.te=$rb_plus(p,1),self.act=167;else if(422["$==="]($case))self.te=$rb_plus(p,1),self.act=168;else if(88["$==="]($case))self.te=$rb_plus(p,1),self.act=181;else if(511["$==="]($case))self.te=$rb_plus(p,1),self.act=185;else if(183["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_309=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_309)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string()),self.escape_s=p,self.escape=nil}else if(124["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_310=$rb_ge(self.version,30))?$truthy($ret_or_311=codepoint["$=="](117))?$ret_or_311:codepoint["$=="](85):$ret_or_310)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_312=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_312)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_313=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_313)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_314=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_314)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_315=$truthy($ret_or_316=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_316)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_315)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_317=self.escape)?$ret_or_317:self.$tok(),self.ts,self.te);else if(155["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_318=$rb_ge(self.version,30))?$truthy($ret_or_319=codepoint["$=="](117))?$ret_or_319:codepoint["$=="](85):$ret_or_318)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_320=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_320)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_321=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_321)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_322=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_322)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_323=$truthy($ret_or_324=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_324)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_323)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_325=self.escape)?$ret_or_325:self.$tok(),self.ts,self.te);else{if(369["$==="]($case)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_326=$rb_ge(self.version,30))?$truthy($ret_or_327=codepoint["$=="](117))?$ret_or_327:codepoint["$=="](85):$ret_or_326)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_328=self.escape)?$ret_or_328:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(131["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_329=$rb_ge(self.version,30))?$truthy($ret_or_330=codepoint["$=="](117))?$ret_or_330:codepoint["$=="](85):$ret_or_329)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_331=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_331)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_332=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_332)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_333=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_333)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_334=$truthy($ret_or_335=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_335)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_334)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_336=self.escape)?$ret_or_336:self.$tok(),self.ts,self.te);else if(162["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_337=$rb_ge(self.version,30))?$truthy($ret_or_338=codepoint["$=="](117))?$ret_or_338:codepoint["$=="](85):$ret_or_337)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_339=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_339)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_340=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_340)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_341=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_341)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_342=$truthy($ret_or_343=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_343)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_342)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_344=self.escape)?$ret_or_344:self.$tok(),self.ts,self.te);else{if(376["$==="]($case)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_345=$rb_ge(self.version,30))?$truthy($ret_or_346=codepoint["$=="](117))?$ret_or_346:codepoint["$=="](85):$ret_or_345)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_347=self.escape)?$ret_or_347:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(122["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_348=$rb_ge(self.version,27))?$truthy($ret_or_349=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_349:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_348)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_350=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_350)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_351=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_351)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_352=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_352)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_353=$truthy($ret_or_354=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_354)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_353)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_355=self.escape)?$ret_or_355:self.$tok(),self.ts,self.te);else if(153["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_356=$rb_ge(self.version,27))?$truthy($ret_or_357=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_357:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_356)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_358=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_358)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_359=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_359)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_360=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_360)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_361=$truthy($ret_or_362=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_362)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_361)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_363=self.escape)?$ret_or_363:self.$tok(),self.ts,self.te);else{if(367["$==="]($case)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_364=$rb_ge(self.version,27))?$truthy($ret_or_365=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_365:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_364)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_366=self.escape)?$ret_or_366:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(130["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_367=$rb_ge(self.version,27))?$truthy($ret_or_368=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_368:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_367)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_369=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_369)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_370=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_370)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_371=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_371)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_372=$truthy($ret_or_373=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_373)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_372)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_374=self.escape)?$ret_or_374:self.$tok(),self.ts,self.te);else if(161["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_375=$rb_ge(self.version,27))?$truthy($ret_or_376=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_376:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_375)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_377=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_377)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_378=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_378)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_379=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_379)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_380=$truthy($ret_or_381=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_381)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_380)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_382=self.escape)?$ret_or_382:self.$tok(),self.ts,self.te);else{if(375["$==="]($case)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_383=$rb_ge(self.version,27))?$truthy($ret_or_384=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_384:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_383)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_385=self.escape)?$ret_or_385:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(126["$==="]($case))self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_386=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_386)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_387=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_387)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_388=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_388)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_389=$truthy($ret_or_390=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_390)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_389)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_391=self.escape)?$ret_or_391:self.$tok(),self.ts,self.te);else if(157["$==="]($case))self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_392=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_392)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_393=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_393)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_394=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_394)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_395=$truthy($ret_or_396=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_396)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_395)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_397=self.escape)?$ret_or_397:self.$tok(),self.ts,self.te);else{if(371["$==="]($case)){self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_398=self.escape)?$ret_or_398:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(129["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_399=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_399)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_400=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_400)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_401=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_401)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_402=$truthy($ret_or_403=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_403)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_402)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_404=self.escape)?$ret_or_404:self.$tok(),self.ts,self.te);else if(160["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_405=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_405)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_406=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_406)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_407=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_407)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_408=$truthy($ret_or_409=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_409)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_408)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_410=self.escape)?$ret_or_410:self.$tok(),self.ts,self.te);else{if(374["$==="]($case)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_411=self.escape)?$ret_or_411:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(136["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_412=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_412)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_413=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_413)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_414=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_414)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_415=$truthy($ret_or_416=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_416)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_415)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_417=self.escape)?$ret_or_417:self.$tok(),self.ts,self.te);else if(167["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_418=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_418)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_419=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_419)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_420=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_420)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_421=$truthy($ret_or_422=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_422)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_421)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_423=self.escape)?$ret_or_423:self.$tok(),self.ts,self.te);else{if(381["$==="]($case)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_424=self.escape)?$ret_or_424:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(116["$==="]($case))self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_425=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_425)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_426=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_426)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_427=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_427)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_428=$truthy($ret_or_429=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_429)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_428)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_430=self.escape)?$ret_or_430:self.$tok(),self.ts,self.te);else if(148["$==="]($case))self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_431=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_431)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_432=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_432)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_433=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_433)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_434=$truthy($ret_or_435=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_435)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_434)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_436=self.escape)?$ret_or_436:self.$tok(),self.ts,self.te);else{if(362["$==="]($case)){self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_437=self.escape)?$ret_or_437:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(62["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.newline_s=p;else if(221["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(236["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(248["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else{if(270["$==="]($case)){self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1),self.cs=810,_goto_level=20;continue}if(285["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(297["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(323["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(399["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(409["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(430["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(102["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(482["$==="]($case))self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$28=function(chars){var self=null==$$28.$$s?this:$$28.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$28.$$arity=1,$$28));else if(446["$==="]($case))self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$29=function(chars){var self=null==$$29.$$s?this:$$29.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$29.$$arity=1,$$29));else{if(461["$==="]($case)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$30=function(chars){var self=null==$$30.$$s?this:$$30.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$30.$$arity=1,$$30)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_438=$truthy($ret_or_439=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_439)?self["$version?"](18):$ret_or_438)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_440=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_440)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(454["$==="]($case)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$31=function(chars){var self=null==$$31.$$s?this:$$31.$$s;return null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars))}).$$s=self,$$31.$$arity=1,$$31)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(450["$==="]($case)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$32=function(chars){var self=null==$$32.$$s?this:$$32.$$s;return null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars))}).$$s=self,$$32.$$arity=1,$$32)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(276["$==="]($case))self.te=$rb_plus(p,1),self.newline_s=p,self.act=79;else if(36["$==="]($case))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=78;else if(47["$==="]($case))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=86;else if(94["$==="]($case))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=181;else if(66["$==="]($case))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=99;else if(85["$==="]($case))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=147;else if(93["$==="]($case))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=181;else if(38["$==="]($case))self.te=$rb_plus(p,1),tm=p,self.act=73;else if(391["$==="]($case))self.te=$rb_plus(p,1),tm=p,self.act=127;else if(390["$==="]($case))self.te=$rb_plus(p,1),tm=p,self.act=128;else if(483["$==="]($case))self.te=$rb_plus(p,1),self.num_base=10,self.num_digits_s=self.ts,self.act=154;else if(127["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_441=$rb_ge(self.version,30))?$truthy($ret_or_442=codepoint["$=="](117))?$ret_or_442:codepoint["$=="](85):$ret_or_441)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_443=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_443)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_444=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_444)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_445=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_445)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_446=$truthy($ret_or_447=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_447)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_446)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_448=self.escape)?$ret_or_448:self.$tok(),self.ts,self.te);else if(158["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_449=$rb_ge(self.version,30))?$truthy($ret_or_450=codepoint["$=="](117))?$ret_or_450:codepoint["$=="](85):$ret_or_449)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_451=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_451)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_452=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_452)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_453=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_453)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_454=$truthy($ret_or_455=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_455)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_454)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_456=self.escape)?$ret_or_456:self.$tok(),self.ts,self.te);else{if(372["$==="]($case)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_457=$rb_ge(self.version,30))?$truthy($ret_or_458=codepoint["$=="](117))?$ret_or_458:codepoint["$=="](85):$ret_or_457)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_459=self.escape)?$ret_or_459:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(125["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_460=$rb_ge(self.version,27))?$truthy($ret_or_461=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_461:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_460)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_462=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_462)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_463=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_463)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_464=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_464)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_465=$truthy($ret_or_466=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_466)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_465)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_467=self.escape)?$ret_or_467:self.$tok(),self.ts,self.te);else if(156["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_468=$rb_ge(self.version,27))?$truthy($ret_or_469=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_469:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_468)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_470=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_470)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_471=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_471)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_472=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_472)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_473=$truthy($ret_or_474=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_474)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_473)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_475=self.escape)?$ret_or_475:self.$tok(),self.ts,self.te);else{if(370["$==="]($case)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_476=$rb_ge(self.version,27))?$truthy($ret_or_477=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_477:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_476)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_478=self.escape)?$ret_or_478:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(132["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_479=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_479)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_480=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_480)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_481=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_481)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_482=$truthy($ret_or_483=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_483)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_482)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_484=self.escape)?$ret_or_484:self.$tok(),self.ts,self.te);else if(163["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_485=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_485)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_486=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_486)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_487=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_487)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_488=$truthy($ret_or_489=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_489)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_488)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_490=self.escape)?$ret_or_490:self.$tok(),self.ts,self.te);else{if(377["$==="]($case)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_491=self.escape)?$ret_or_491:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(128["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_492=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_492)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_493=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_493)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_494=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_494)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_495=$truthy($ret_or_496=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_496)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_495)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_497=self.escape)?$ret_or_497:self.$tok(),self.ts,self.te);else if(159["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_498=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_498)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_499=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_499)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_500=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_500)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_501=$truthy($ret_or_502=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_502)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_501)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_503=self.escape)?$ret_or_503:self.$tok(),self.ts,self.te);else{if(373["$==="]($case)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_504=self.escape)?$ret_or_504:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(478["$==="]($case)){self.num_base=16,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$33=function(chars){var self=null==$$33.$$s?this:$$33.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$33.$$arity=1,$$33)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_505=$truthy($ret_or_506=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_506)?self["$version?"](18):$ret_or_505)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_507=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_507)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(472["$==="]($case)){self.num_base=10,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$34=function(chars){var self=null==$$34.$$s?this:$$34.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$34.$$arity=1,$$34)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_508=$truthy($ret_or_509=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_509)?self["$version?"](18):$ret_or_508)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_510=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_510)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(475["$==="]($case)){self.num_base=8,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$35=function(chars){var self=null==$$35.$$s?this:$$35.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$35.$$arity=1,$$35)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_511=$truthy($ret_or_512=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_512)?self["$version?"](18):$ret_or_511)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_513=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_513)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(469["$==="]($case)){self.num_base=2,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$36=function(chars){var self=null==$$36.$$s?this:$$36.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$36.$$arity=1,$$36)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_514=$truthy($ret_or_515=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_515)?self["$version?"](18):$ret_or_514)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_516=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_516)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(481["$==="]($case)){self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$37=function(chars){var self=null==$$37.$$s?this:$$37.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$37.$$arity=1,$$37)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_517=$truthy($ret_or_518=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_518)?self["$version?"](18):$ret_or_517)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_519=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_519)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(445["$==="]($case)){self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$38=function(chars){var self=null==$$38.$$s?this:$$38.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$38.$$arity=1,$$38)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_520=$truthy($ret_or_521=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_521)?self["$version?"](18):$ret_or_520)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_522=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_522)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}32["$==="]($case)?(self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p,self.act=73):63["$==="]($case)?(self.te=$rb_plus(p,1),self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=99):92["$==="]($case)?(self.te=$rb_plus(p,1),self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=181):488["$==="]($case)?(self.te=$rb_plus(p,1),self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$39=function(chars){var self=null==$$39.$$s?this:$$39.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$39.$$arity=1,$$39)),self.act=156):484["$==="]($case)?(self.te=$rb_plus(p,1),self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$40=function(chars){var self=null==$$40.$$s?this:$$40.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$40.$$arity=1,$$40)),self.act=156):448["$==="]($case)&&(self.te=$rb_plus(p,1),self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$41=function(chars){var self=null==$$41.$$s?this:$$41.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$41.$$arity=1,$$41)),self.act=156)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if($truthy($rb_le(_goto_level,20))){if($case=_lex_to_state_actions["$[]"](self.cs),96["$==="]($case)&&(self.ts=nil),self.cs["$=="](0)){_goto_level=40;continue}if(p=$rb_plus(p,1),$truthy(p["$!="](pe))){_goto_level=10;continue}}if($truthy($rb_le(_goto_level,30))&&p["$=="](eof)&&$truthy($rb_gt(_lex_eof_trans["$[]"](self.cs),0)))_trans=$rb_minus(_lex_eof_trans["$[]"](self.cs),1),_goto_level=15;else if($truthy($rb_le(_goto_level,40)))break}return $truthy(!1),self.p=p,$truthy(self.token_queue["$any?"]())?self.token_queue.$shift():self.cs["$=="](klass.$lex_error())?[!1,["$error".$freeze(),self.$range($rb_minus(p,1),p)]]:(eof=self.source_pts.$size(),[!1,["$eof".$freeze(),self.$range(eof,eof)]])},$Lexer_pop_literal$57.$$arity=0),self.$protected(),Opal.def(self,"$eof_codepoint?",$Lexer_pop_literal$57=function(point){return[4,26,0]["$include?"](point)},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$version?",$Lexer_pop_literal$57=function($a){return Opal.slice.call(arguments,0,arguments.length)["$include?"](this.version)},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$stack_pop",$Lexer_pop_literal$57=function(){return this.top=$rb_minus(this.top,1),this.stack["$[]"](this.top)},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$encode_escape",$Lexer_pop_literal$57=function(ord){return ord.$chr().$force_encoding(this.source_buffer.$source().$encoding())},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$tok",$Lexer_pop_literal$57=function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),this.source_buffer.$slice(Opal.Range.$new(s,e,!0))},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$range",$Lexer_pop_literal$57=function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),$$$($$$($$($nesting,"Parser"),"Source"),"Range").$new(this.source_buffer,s,e)},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$emit",$Lexer_pop_literal$57=function(type,value,s,e){var token;return null==value&&(value=this.$tok()),null==s&&(s=this.ts),null==e&&(e=this.te),token=[type,[value,this.$range(s,e)]],this.token_queue.$push(token),$truthy(this.tokens)&&this.tokens.$push(token),token},$Lexer_pop_literal$57.$$arity=-2),Opal.def(self,"$emit_table",$Lexer_pop_literal$57=function(table,s,e){var value;return null==s&&(s=this.ts),null==e&&(e=this.te),value=this.$tok(s,e),this.$emit(table["$[]"](value),value,s,e)},$Lexer_pop_literal$57.$$arity=-2),Opal.def(self,"$emit_do",$Lexer_pop_literal$57=function(do_block){var self=this,$ret_or_523=nil;return null==do_block&&(do_block=!1),$truthy(self.cond["$active?"]())?self.$emit("kDO_COND","do".$freeze()):$truthy($truthy($ret_or_523=self.cmdarg["$active?"]())?$ret_or_523:do_block)?self.$emit("kDO_BLOCK","do".$freeze()):self.$emit("kDO","do".$freeze())},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$arg_or_cmdarg",$Lexer_pop_literal$57=function(cmd_state){return $truthy(cmd_state)?this.$class().$lex_en_expr_cmdarg():this.$class().$lex_en_expr_arg()},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$emit_comment",$Lexer_pop_literal$57=function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),$truthy(this.comments)&&this.comments.$push($$$($$$($$($nesting,"Parser"),"Source"),"Comment").$new(this.$range(s,e))),$truthy(this.tokens)&&this.tokens.$push(["tCOMMENT",[this.$tok(s,e),this.$range(s,e)]]),nil},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$diagnostic",$Lexer_pop_literal$57=function(type,reason,arguments$,location,highlights){return null==arguments$&&(arguments$=nil),null==location&&(location=this.$range()),null==highlights&&(highlights=[]),this.diagnostics.$process($$$($$($nesting,"Parser"),"Diagnostic").$new(type,reason,arguments$,location,highlights))},$Lexer_pop_literal$57.$$arity=-3),Opal.def(self,"$push_literal",$Lexer_pop_literal$57=function($a){var self=this,args=Opal.slice.call(arguments,0,arguments.length),new_literal=$send($$($nesting,"Literal"),"new",[self].concat(Opal.to_a(args)));return self.literal_stack.$push(new_literal),self.$next_state_for_literal(new_literal)},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$next_state_for_literal",$Lexer_pop_literal$57=function(literal){var $ret_or_524=nil,$ret_or_525=nil,$ret_or_526=nil;return $truthy($truthy($ret_or_524=literal["$words?"]())?literal["$backslash_delimited?"]():$ret_or_524)?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_backslash_delimited_words():this.$class().$lex_en_plain_backslash_delimited_words():$truthy($truthy($ret_or_525=literal["$words?"]())?literal["$backslash_delimited?"]()["$!"]():$ret_or_525)?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_words():this.$class().$lex_en_plain_words():$truthy($truthy($ret_or_526=literal["$words?"]()["$!"]())?literal["$backslash_delimited?"]():$ret_or_526)?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_backslash_delimited():this.$class().$lex_en_plain_backslash_delimited():$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_string():this.$class().$lex_en_plain_string()},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$literal",$Lexer_pop_literal$57=function(){return this.literal_stack.$last()},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$pop_literal",$Lexer_pop_literal$57=function(){var old_literal=nil,old_literal=this.literal_stack.$pop();return this.dedent_level=old_literal.$dedent_level(),old_literal.$type()["$=="]("tREGEXP_BEG")?this.$class().$lex_en_regexp_modifiers():this.$class().$lex_en_expr_end()},$Lexer_pop_literal$57.$$arity=0),Opal.const_set($nesting[0],"PUNCTUATION",$hash2(["=","&","|","!","^","+","-","*","/","%","~",",",";",".","..","...","[","]","(",")","?",":","&&","||","-@","+@","~@","**","->","=~","!~","==","!=",">",">>",">=","<","<<","<=","=>","::","===","<=>","[]","[]=","{","}","`","!@","&."],{"=":"tEQL","&":"tAMPER2","|":"tPIPE","!":"tBANG","^":"tCARET","+":"tPLUS","-":"tMINUS","*":"tSTAR2","/":"tDIVIDE","%":"tPERCENT","~":"tTILDE",",":"tCOMMA",";":"tSEMI",".":"tDOT","..":"tDOT2","...":"tDOT3","[":"tLBRACK2","]":"tRBRACK","(":"tLPAREN2",")":"tRPAREN","?":"tEH",":":"tCOLON","&&":"tANDOP","||":"tOROP","-@":"tUMINUS","+@":"tUPLUS","~@":"tTILDE","**":"tPOW","->":"tLAMBDA","=~":"tMATCH","!~":"tNMATCH","==":"tEQ","!=":"tNEQ",">":"tGT",">>":"tRSHFT",">=":"tGEQ","<":"tLT","<<":"tLSHFT","<=":"tLEQ","=>":"tASSOC","::":"tCOLON2","===":"tEQQ","<=>":"tCMP","[]":"tAREF","[]=":"tASET","{":"tLCURLY","}":"tRCURLY","`":"tBACK_REF2","!@":"tBANG","&.":"tANDDOT"})),Opal.const_set($nesting[0],"PUNCTUATION_BEGIN",$hash2(["&","*","**","+","-","::","(","{","["],{"&":"tAMPER","*":"tSTAR","**":"tDSTAR","+":"tUPLUS","-":"tUMINUS","::":"tCOLON3","(":"tLPAREN","{":"tLBRACE","[":"tLBRACK"})),Opal.const_set($nesting[0],"KEYWORDS",$hash2(["if","unless","while","until","rescue","defined?","BEGIN","END"],{if:"kIF_MOD",unless:"kUNLESS_MOD",while:"kWHILE_MOD",until:"kUNTIL_MOD",rescue:"kRESCUE_MOD","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),Opal.const_set($nesting[0],"KEYWORDS_BEGIN",$hash2(["if","unless","while","until","rescue","defined?","BEGIN","END"],{if:"kIF",unless:"kUNLESS",while:"kWHILE",until:"kUNTIL",rescue:"kRESCUE","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),$send(["class","module","def","undef","begin","end","then","elsif","else","ensure","case","when","for","break","next","redo","retry","in","do","return","yield","super","self","nil","true","false","and","or","not","alias","__FILE__","__LINE__","__ENCODING__"],"each",[],(($Lexer$58=function(keyword){null==$Lexer$58.$$s||$Lexer$58.$$s;return null==keyword&&(keyword=nil),$writer=[keyword,($writer=[keyword,"k"+keyword.$upcase()],$send($$($nesting,"KEYWORDS"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send($$($nesting,"KEYWORDS_BEGIN"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$Lexer$58.$$arity=1,$Lexer$58))}($$($nesting,"Parser"),$nesting)},Opal.modules["parser/lexer/literal"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$enc=Opal.enc,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$attr_accessor","$coerce_encoding","$include?","$send","$+","$[]","$fetch","$==","$!","$heredoc?","$start_with?","$freeze","$clear_buffer","$emit_start_tok","$type","$words?","$=~","$delimiter?","$-","$extend_space","$!=","$flush_string","$emit","$each_char","$===","$%","$nil?","$>","$<<","$empty?","$extend_content","$protected","$lstrip","$b","$dup","$force_encoding","$encoding","$source","$source_buffer","$length"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Literal_emit$25,$Literal_emit_start_tok$24){var $Literal_emit$25=$klass($Literal_emit$25,null,"Literal"),$nesting=[$Literal_emit$25].concat($Literal_emit_start_tok$24);return $Literal_emit$25.$$prototype.lexer=$Literal_emit$25.$$prototype.start_tok=$Literal_emit$25.$$prototype.str_type=$Literal_emit$25.$$prototype.monolithic=$Literal_emit$25.$$prototype.interpolate=$Literal_emit$25.$$prototype.heredoc_e=$Literal_emit$25.$$prototype.dedent_body=$Literal_emit$25.$$prototype.end_delim=$Literal_emit$25.$$prototype.start_delim=$Literal_emit$25.$$prototype.nesting=$Literal_emit$25.$$prototype.label_allowed=$Literal_emit$25.$$prototype.buffer=$Literal_emit$25.$$prototype.str_s=$Literal_emit$25.$$prototype.interp_braces=$Literal_emit$25.$$prototype.buffer_s=$Literal_emit$25.$$prototype.buffer_e=$Literal_emit$25.$$prototype.space_emitted=$Literal_emit$25.$$prototype.indent=nil,Opal.const_set($nesting[0],"DELIMITERS",$hash2(["(","[","{","<"],{"(":$enc(")","ASCII-8BIT"),"[":$enc("]","ASCII-8BIT"),"{":$enc("}","ASCII-8BIT"),"<":$enc(">","ASCII-8BIT")})),Opal.const_set($nesting[0],"TYPES",$hash2(["'","<<'","%q",'"','<<"',"%","%Q","%w","%W","%i","%I",":'","%s",':"',"/","%r","%x","`","<<`"],{"'":["tSTRING_BEG",!1],"<<'":["tSTRING_BEG",!1],"%q":["tSTRING_BEG",!1],'"':["tSTRING_BEG",!0],'<<"':["tSTRING_BEG",!0],"%":["tSTRING_BEG",!0],"%Q":["tSTRING_BEG",!0],"%w":["tQWORDS_BEG",!1],"%W":["tWORDS_BEG",!0],"%i":["tQSYMBOLS_BEG",!1],"%I":["tSYMBOLS_BEG",!0],":'":["tSYMBEG",!1],"%s":["tSYMBEG",!1],':"':["tSYMBEG",!0],"/":["tREGEXP_BEG",!0],"%r":["tREGEXP_BEG",!0],"%x":["tXSTRING_BEG",!0],"`":["tXSTRING_BEG",!0],"<<`":["tXSTRING_BEG",!0]})),$Literal_emit$25.$attr_reader("heredoc_e","str_s","dedent_level"),$Literal_emit$25.$attr_accessor("saved_herebody_s"),Opal.def($Literal_emit$25,"$initialize",$Literal_emit_start_tok$24=function(lexer,str_type,delimiter,$a,heredoc_e,indent,dedent_body,label_allowed){var self=this,$ret_or_1=nil,$ret_or_2=nil;return null==heredoc_e&&(heredoc_e=nil),null==indent&&(indent=!1),null==dedent_body&&(dedent_body=!1),null==label_allowed&&(label_allowed=!1),self.lexer=lexer,self.nesting=1,str_type=self.$coerce_encoding(str_type),delimiter=self.$coerce_encoding(delimiter),$truthy($$($nesting,"TYPES")["$include?"](str_type))||lexer.$send("diagnostic","error","unexpected_percent_str",$hash2(["type"],{type:str_type}),self.lexer.$send("range",$a,$rb_plus($a,2))),self.str_type=str_type,self.str_s=$a,$a=$$($nesting,"TYPES")["$[]"](str_type),$a=Opal.to_ary($a),self.start_tok=null==$a[0]?nil:$a[0],self.interpolate=null==$a[1]?nil:$a[1],self.start_delim=$truthy($$($nesting,"DELIMITERS")["$include?"](delimiter))?delimiter:nil,self.end_delim=$$($nesting,"DELIMITERS").$fetch(delimiter,delimiter),self.heredoc_e=heredoc_e,self.indent=indent,self.label_allowed=label_allowed,self.dedent_body=dedent_body,self.dedent_level=nil,self.interp_braces=0,self.space_emitted=!0,self.monolithic=$truthy($ret_or_1=$truthy($ret_or_2=self.start_tok["$=="]("tSTRING_BEG"))?[$enc("'","ASCII-8BIT"),$enc('"',"ASCII-8BIT")]["$include?"](str_type):$ret_or_2)?self["$heredoc?"]()["$!"]():$ret_or_1,$truthy(self.str_type["$start_with?"]($enc("%","ASCII-8BIT").$freeze()))&&(self.str_type=$rb_plus(self.str_type,delimiter)),self.$clear_buffer(),$truthy(self.monolithic)?nil:self.$emit_start_tok()},$Literal_emit_start_tok$24.$$arity=-5),Opal.def($Literal_emit$25,"$interpolate?",$Literal_emit_start_tok$24=function(){return this.interpolate},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$words?",$Literal_emit_start_tok$24=function(){var $ret_or_3,self=this,$ret_or_4=nil,$ret_or_5=nil;return $truthy($ret_or_3=$truthy($ret_or_4=$truthy($ret_or_5=self.$type()["$=="]("tWORDS_BEG"))?$ret_or_5:self.$type()["$=="]("tQWORDS_BEG"))?$ret_or_4:self.$type()["$=="]("tSYMBOLS_BEG"))?$ret_or_3:self.$type()["$=="]("tQSYMBOLS_BEG")},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$regexp?",$Literal_emit_start_tok$24=function(){return this.$type()["$=="]("tREGEXP_BEG")},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$heredoc?",$Literal_emit_start_tok$24=function(){return this.heredoc_e["$!"]()["$!"]()},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$plain_heredoc?",$Literal_emit_start_tok$24=function(){var $ret_or_6;return $truthy($ret_or_6=this["$heredoc?"]())?this.dedent_body["$!"]():$ret_or_6},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$squiggly_heredoc?",$Literal_emit_start_tok$24=function(){var $ret_or_7;return $truthy($ret_or_7=this["$heredoc?"]())?this.dedent_body:$ret_or_7},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$backslash_delimited?",$Literal_emit_start_tok$24=function(){return this.end_delim["$=="]($enc("\\","ASCII-8BIT").$freeze())},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$type",$Literal_emit_start_tok$24=function(){return this.start_tok},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$munge_escape?",$Literal_emit_start_tok$24=function(character){var self=this,$ret_or_8=nil;return character=self.$coerce_encoding(character),!!$truthy($truthy($ret_or_8=self["$words?"]())?character["$=~"](/[ \t\v\r\f\n]/):$ret_or_8)||[$enc("\\","ASCII-8BIT").$freeze(),self.start_delim,self.end_delim]["$include?"](character)},$Literal_emit_start_tok$24.$$arity=1),Opal.def($Literal_emit$25,"$nest_and_try_closing",$Literal_emit_start_tok$24=function(delimiter,ts,te,lookahead){var self=this,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil;return null==lookahead&&(lookahead=nil),delimiter=self.$coerce_encoding(delimiter),$truthy($truthy($ret_or_9=self.start_delim)?self.start_delim["$=="](delimiter):$ret_or_9)?self.nesting=$rb_plus(self.nesting,1):$truthy(self["$delimiter?"](delimiter))&&(self.nesting=$rb_minus(self.nesting,1)),self.nesting["$=="](0)?($truthy(self["$words?"]())&&self.$extend_space(ts,ts),$truthy($truthy($ret_or_10=$truthy($ret_or_11=$truthy($ret_or_12=$truthy($ret_or_13=lookahead)?self.label_allowed:$ret_or_13)?lookahead["$[]"](0)["$=="]($enc(":","ASCII-8BIT")):$ret_or_12)?lookahead["$[]"](1)["$!="]($enc(":","ASCII-8BIT")):$ret_or_11)?self.start_tok["$=="]("tSTRING_BEG"):$ret_or_10)?(self.$flush_string(),self.$emit("tLABEL_END",self.end_delim,ts,$rb_plus(te,1))):$truthy(self.monolithic)?self.$emit("tSTRING",self.buffer,self.str_s,te):($truthy(self["$heredoc?"]())||self.$flush_string(),self.$emit("tSTRING_END",self.end_delim,ts,te))):nil},$Literal_emit_start_tok$24.$$arity=-4),Opal.def($Literal_emit$25,"$infer_indent_level",$Literal_emit_start_tok$24=function(line){var $$13,self=this,indent_level=nil;return $truthy(self.dedent_body["$!"]())?nil:(indent_level=0,function(){var $brk=Opal.new_brk();try{return $send(line,"each_char",[],(($$13=function(char$){var self=null==$$13.$$s?this:$$13.$$s,lhs=nil,rhs=nil;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil)," "["$==="](lhs=char$)?indent_level=$rb_plus(indent_level,1):"\t"["$==="](lhs)?indent_level=$rb_plus(indent_level,$rb_minus(8,indent_level["$%"](8))):($truthy($truthy(rhs=self.dedent_level["$nil?"]())?rhs:(lhs=self.dedent_level,rhs=indent_level,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))&&(self.dedent_level=indent_level),void Opal.brk(nil,$brk))}).$$s=self,$$13.$$brk=$brk,$$13.$$arity=1,$$13))}catch(err){if(err===$brk)return err.$v;throw err}}())},$Literal_emit_start_tok$24.$$arity=1),Opal.def($Literal_emit$25,"$start_interp_brace",$Literal_emit_start_tok$24=function(){return this.interp_braces=$rb_plus(this.interp_braces,1)},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$end_interp_brace_and_try_closing",$Literal_emit_start_tok$24=function(){return this.interp_braces=$rb_minus(this.interp_braces,1),this.interp_braces["$=="](0)},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$extend_string",$Literal_emit_start_tok$24=function(string,ts,te){var self=this,$ret_or_15=nil;return self.buffer_s=$truthy($ret_or_15=self.buffer_s)?$ret_or_15:ts,self.buffer_e=te,self.buffer["$<<"](string)},$Literal_emit_start_tok$24.$$arity=3),Opal.def($Literal_emit$25,"$flush_string",$Literal_emit_start_tok$24=function(){return $truthy(this.monolithic)&&(this.$emit_start_tok(),this.monolithic=!1),$truthy(this.buffer["$empty?"]())?nil:(this.$emit("tSTRING_CONTENT",this.buffer,this.buffer_s,this.buffer_e),this.$clear_buffer(),this.$extend_content())},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$extend_content",$Literal_emit_start_tok$24=function(){return this.space_emitted=!1},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$extend_space",$Literal_emit_start_tok$24=function(ts,te){return this.$flush_string(),$truthy(this.space_emitted)?nil:(this.$emit("tSPACE",nil,ts,te),this.space_emitted=!0)},$Literal_emit_start_tok$24.$$arity=2),Opal.def($Literal_emit$25,"$supports_line_continuation_via_slash?",$Literal_emit_start_tok$24=function(){var $ret_or_16;return $truthy($ret_or_16=this["$words?"]()["$!"]())?this.interpolate:$ret_or_16},$Literal_emit_start_tok$24.$$arity=0),$Literal_emit$25.$protected(),Opal.def($Literal_emit$25,"$delimiter?",$Literal_emit_start_tok$24=function(delimiter){return $truthy(this.indent)?this.end_delim["$=="](delimiter.$lstrip()):this.end_delim["$=="](delimiter)},$Literal_emit_start_tok$24.$$arity=1),Opal.def($Literal_emit$25,"$coerce_encoding",$Literal_emit_start_tok$24=function(string){return string.$b()},$Literal_emit_start_tok$24.$$arity=1),Opal.def($Literal_emit$25,"$clear_buffer",$Literal_emit_start_tok$24=function(){return this.buffer=$enc("","ASCII-8BIT").$dup(),this.buffer.$force_encoding(this.lexer.$source_buffer().$source().$encoding()),this.buffer_s=nil,this.buffer_e=nil},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$emit_start_tok",$Literal_emit_start_tok$24=function(){var self=this,$ret_or_17=nil,str_e=$truthy($ret_or_17=self.heredoc_e)?$ret_or_17:$rb_plus(self.str_s,self.str_type.$length());return self.$emit(self.start_tok,self.str_type,self.str_s,str_e)},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$emit",$Literal_emit$25=function(token,type,s,e){return this.lexer.$send("emit",token,type,s,e)},$Literal_emit$25.$$arity=4),nil&&"emit"}($$($nesting,"Lexer"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer/stack_state"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs(["$freeze","$clear","$|","$<<","$&","$>>","$==","$[]","$to_s"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function(self,$StackState_to_s$8){self=$klass(self,null,"StackState"),[self].concat($StackState_to_s$8);return self.$$prototype.stack=self.$$prototype.name=nil,Opal.def(self,"$initialize",$StackState_to_s$8=function(name){return this.name=name.$freeze(),this.$clear()},$StackState_to_s$8.$$arity=1),Opal.def(self,"$clear",$StackState_to_s$8=function(){return this.stack=0},$StackState_to_s$8.$$arity=0),Opal.def(self,"$push",$StackState_to_s$8=function(bit){var bit_value=$truthy(bit)?1:0;return this.stack=this.stack["$<<"](1)["$|"](bit_value),bit},$StackState_to_s$8.$$arity=1),Opal.def(self,"$pop",$StackState_to_s$8=function(){var bit_value=nil,bit_value=this.stack["$&"](1);return this.stack=this.stack["$>>"](1),bit_value["$=="](1)},$StackState_to_s$8.$$arity=0),Opal.def(self,"$lexpop",$StackState_to_s$8=function(){return this.stack=this.stack["$>>"](1)["$|"](this.stack["$&"](1)),this.stack["$[]"](0)["$=="](1)},$StackState_to_s$8.$$arity=0),Opal.def(self,"$active?",$StackState_to_s$8=function(){return this.stack["$[]"](0)["$=="](1)},$StackState_to_s$8.$$arity=0),Opal.def(self,"$empty?",$StackState_to_s$8=function(){return this.stack["$=="](0)},$StackState_to_s$8.$$arity=0),Opal.def(self,"$to_s",$StackState_to_s$8=function(){return"["+this.stack.$to_s(2)+" <= "+this.name+"]"},$StackState_to_s$8.$$arity=0),$alias(self,"inspect","to_s")}($$($nesting,"Lexer"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer/dedenter"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs(["$encoding","$split","$force_encoding","$==","$length","$map!","$each","$each_char","$<=","$===","$+","$-","$>","$*","$/","$slice!","$replace","$join","$end_with?"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Dedenter_interrupt$6,$Dedenter_dedent$2){var $Dedenter_interrupt$6=$klass($Dedenter_interrupt$6,null,"Dedenter"),$nesting=[$Dedenter_interrupt$6].concat($Dedenter_dedent$2);return $Dedenter_interrupt$6.$$prototype.at_line_begin=nil,Opal.const_set($nesting[0],"TAB_WIDTH",8),Opal.def($Dedenter_interrupt$6,"$initialize",$Dedenter_dedent$2=function(dedent_level){return this.dedent_level=dedent_level,this.at_line_begin=!0,this.indent_level=0},$Dedenter_dedent$2.$$arity=1),Opal.def($Dedenter_interrupt$6,"$dedent",$Dedenter_dedent$2=function(string){var $$3,$a,$$4,self=this,lines=nil,lines_to_dedent=nil,original_encoding=string.$encoding();return(lines=string.$force_encoding($$$($$($nesting,"Encoding"),"BINARY")).$split("\\\n")).$length()["$=="](1)?lines=[string.$force_encoding(original_encoding)]:$send(lines,"map!",[],(($$3=function(s){null==$$3.$$s||$$3.$$s;return null==s&&(s=nil),s.$force_encoding(original_encoding)}).$$s=self,$$3.$$arity=1,$$3)),lines_to_dedent=$truthy(self.at_line_begin)?lines:($a=lines,null==($a=Opal.to_ary($a))[0]||$a[0],$slice.call($a,1)),function(){var $brk=Opal.new_brk();try{$send(lines_to_dedent,"each",[],(($$4=function(line){var $$5,self=null==$$4.$$s?this:$$4.$$s,left_to_remove=nil,remove=nil;return null==self.dedent_level&&(self.dedent_level=nil),null==line&&(line=nil),left_to_remove=self.dedent_level,remove=0,function(){var $brk=Opal.new_brk();try{$send(line,"each_char",[],(($$5=function(char$){var $case,lhs,rhs,self=null==$$5.$$s?this:$$5.$$s;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil),$truthy((rhs=0,"number"==typeof(lhs=left_to_remove)&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))&&Opal.brk(nil,$brk),function(){return" "["$==="]($case=char$)?(remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,1)):"\t"["$==="]($case)?($truthy(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}($$($nesting,"TAB_WIDTH"),$rb_plus((lhs=remove,rhs=$$($nesting,"TAB_WIDTH"),"number"==typeof lhs&&"number"==typeof rhs?lhs/rhs:lhs["$/"](rhs)),1)),self.dedent_level))&&Opal.brk(nil,$brk),remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,$$($nesting,"TAB_WIDTH"))):void Opal.brk(nil,$brk);var lhs,rhs}()}).$$s=self,$$5.$$brk=$brk,$$5.$$arity=1,$$5))}catch(err){if(err===$brk)return err.$v;throw err}}(),line["$slice!"](0,remove)}).$$s=self,$$4.$$brk=$brk,$$4.$$arity=1,$$4))}catch(err){if(err===$brk)return err.$v;throw err}}(),string.$replace(lines.$join()),self.at_line_begin=string["$end_with?"]("\n")},$Dedenter_dedent$2.$$arity=1),Opal.def($Dedenter_interrupt$6,"$interrupt",$Dedenter_interrupt$6=function(){return this.at_line_begin=!1},$Dedenter_interrupt$6.$$arity=0),nil&&"interrupt"}($$($nesting,"Lexer"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/builders/default"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_ge(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs=","$range_map","$variable_map","$name","$source_buffer","$dup","$line","$emit_encoding","$class","$any?","$end_with?","$to_s","$try_declare_numparam","$declared?","$static_env","$var_send_map","$top","$current_arg_stack","$parser","$constant_map","$in_def","$context","$check_assignment_to_numparam","$check_reserved_for_numparam","$declare","$with_expression","$with_operator","$join_exprs","$module_definition_map","$definition_map","$endless_definition_map","$validate_definee","$keyword_map","$check_duplicate_args","$validate_no_forward_arg_after_restarg","$emit_forward_arg","$forward_arg","$arg_prefix_map","$kwarg_map","$emit_procarg0","$emit_arg_inside_procarg0","$location","$resize","$end","$call_type_for_dot","$emit_kwargs","$rewrite_hash_args_to_kwargs","$send_map","$emit_lambda","$expr_map","$keyword","$include?","$block_map","$array","$emit_index","$index_map","$send_index_map","$send_binary_op_map","$static_regexp_node","$each","$names","$send_unary_op_map","$check_condition","$condition_map","$keyword_mod_map","$ternary_map","$for_map","$>","$count","$rescue_body_map","$eh_keyword_map","$push","$none?","$one?","$begin","$guard_map","$check_lvar_name","$check_duplicate_pattern_variable","$match_hash_var_from_str","$match_var","$check_duplicate_pattern_key","$static_string","$pair_quoted","$match_hash_var","$<=","$check_duplicate_arg","$is_a?","$[]=","$arg_name_collides?","$<","$in_dynamic_block?","$has_numparams?","$max_numparam_stack","$start_with?","$pattern_variables","$pattern_hash_keys","$with","$begin_pos","$end_pos","$encode","$valid_encoding?","$process","$diagnostics","$send","$kwargs?"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Default_kwargs$ques$207,$Default_rewrite_hash_args_to_kwargs$206){var $Default_kwargs$ques$207=$klass($Default_kwargs$ques$207,null,"Default"),$nesting=[$Default_kwargs$ques$207].concat($Default_rewrite_hash_args_to_kwargs$206);return $Default_kwargs$ques$207.$$prototype.parser=$Default_kwargs$ques$207.$$prototype.emit_file_line_as_literals=nil,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_lambda")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_lambda=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_procarg0")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_procarg0=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_encoding")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_encoding=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_index")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_index=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_arg_inside_procarg0")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_arg_inside_procarg0=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_forward_arg")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_forward_arg=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_kwargs")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_kwargs=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_match_pattern")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_match_pattern=!1,function($modernize$1,$parent_nesting){[$modernize$1].concat($parent_nesting),Opal.def($modernize$1,"$modernize",$modernize$1=function(){return this.emit_lambda=!0,this.emit_procarg0=!0,this.emit_encoding=!0,this.emit_index=!0,this.emit_arg_inside_procarg0=!0,this.emit_forward_arg=!0,this.emit_kwargs=!0,this.emit_match_pattern=!0},$modernize$1.$$arity=0)}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.$attr_accessor("parser"),$Default_kwargs$ques$207.$attr_accessor("emit_file_line_as_literals"),Opal.def($Default_kwargs$ques$207,"$initialize",$Default_rewrite_hash_args_to_kwargs$206=function(){return this.emit_file_line_as_literals=!0},$Default_rewrite_hash_args_to_kwargs$206.$$arity=0),Opal.def($Default_kwargs$ques$207,"$nil",$Default_rewrite_hash_args_to_kwargs$206=function(nil_t){return this.$n0("nil",this.$token_map(nil_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$true",$Default_rewrite_hash_args_to_kwargs$206=function(true_t){return this.$n0("true",this.$token_map(true_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$false",$Default_rewrite_hash_args_to_kwargs$206=function(false_t){return this.$n0("false",this.$token_map(false_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$integer",$Default_rewrite_hash_args_to_kwargs$206=function(integer_t){return this.$numeric("int",integer_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$float",$Default_rewrite_hash_args_to_kwargs$206=function(float_t){return this.$numeric("float",float_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$rational",$Default_rewrite_hash_args_to_kwargs$206=function(rational_t){return this.$numeric("rational",rational_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$complex",$Default_rewrite_hash_args_to_kwargs$206=function(complex_t){return this.$numeric("complex",complex_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$numeric",$Default_rewrite_hash_args_to_kwargs$206=function(kind,token){return this.$n(kind,[this.$value(token)],$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(nil,this.$loc(token)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),$Default_kwargs$ques$207.$private("numeric"),Opal.def($Default_kwargs$ques$207,"$unary_num",$Default_rewrite_hash_args_to_kwargs$206=function(unary_t,numeric){var value=nil,operator_loc=nil,$a=[].concat(Opal.to_a(numeric)),value=null==$a[0]?nil:$a[0],operator_loc=this.$loc(unary_t),$case=this.$value(unary_t);return"+"["$==="]($case)?value=value["$+@"]():"-"["$==="]($case)&&(value=value["$-@"]()),numeric.$updated(nil,[value],$hash2(["location"],{location:$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(operator_loc,operator_loc.$join(numeric.$loc().$expression()))}))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$__LINE__",$Default_rewrite_hash_args_to_kwargs$206=function(__LINE__t){return this.$n0("__LINE__",this.$token_map(__LINE__t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$string",$Default_rewrite_hash_args_to_kwargs$206=function(string_t){return this.$n("str",[this.$string_value(string_t)],this.$delimited_string_map(string_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$string_internal",$Default_rewrite_hash_args_to_kwargs$206=function(string_t){return this.$n("str",[this.$string_value(string_t)],this.$unquoted_map(string_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$string_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var $ret_or_1=nil;return $truthy(this["$collapse_string_parts?"](parts))?$truthy($truthy($ret_or_1=begin_t["$nil?"]())?end_t["$nil?"]():$ret_or_1)?parts.$first():this.$n("str",parts.$first().$children(),this.$string_map(begin_t,parts,end_t)):this.$n("dstr",[].concat(Opal.to_a(parts)),this.$string_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$character",$Default_rewrite_hash_args_to_kwargs$206=function(char_t){return this.$n("str",[this.$string_value(char_t)],this.$prefix_string_map(char_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$__FILE__",$Default_rewrite_hash_args_to_kwargs$206=function(__FILE__t){return this.$n0("__FILE__",this.$token_map(__FILE__t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$symbol",$Default_rewrite_hash_args_to_kwargs$206=function(symbol_t){return this.$n("sym",[this.$string_value(symbol_t).$to_sym()],this.$prefix_string_map(symbol_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$symbol_internal",$Default_rewrite_hash_args_to_kwargs$206=function(symbol_t){return this.$n("sym",[this.$string_value(symbol_t).$to_sym()],this.$unquoted_map(symbol_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$symbol_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var self=this,str=nil,$ret_or_2=nil;return $truthy(self["$collapse_string_parts?"](parts))?(str=parts.$first(),self.$n("sym",[str.$children().$first().$to_sym()],self.$collection_map(begin_t,str.$loc().$expression(),end_t))):$truthy($truthy($ret_or_2=self.parser.$version()["$=="](18))?parts["$empty?"]():$ret_or_2)?self.$diagnostic("error","empty_symbol",nil,self.$loc(begin_t).$join(self.$loc(end_t))):self.$n("dsym",[].concat(Opal.to_a(parts)),self.$collection_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$xstring_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){return this.$n("xstr",[].concat(Opal.to_a(parts)),this.$string_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$dedent_string",$Default_rewrite_hash_args_to_kwargs$206=function(node,dedent_level){var $$23,$case,dedenter=nil,str=nil,children=nil;return $truthy(dedent_level["$nil?"]()["$!"]())&&(dedenter=$$$($$($nesting,"Lexer"),"Dedenter").$new(dedent_level),$case=node.$type(),"str"["$==="]($case)?(str=node.$children().$first(),dedenter.$dedent(str)):("dstr"["$==="]($case)||"xstr"["$==="]($case))&&(children=$send(node.$children(),"map",[],(($$23=function(str_node){null==$$23.$$s||$$23.$$s;if(null==str_node&&(str_node=nil),str_node.$type()["$=="]("str")){if(str=str_node.$children().$first(),dedenter.$dedent(str),$truthy(str["$empty?"]()))return nil}else dedenter.$interrupt();return str_node}).$$s=this,$$23.$$arity=1,$$23)),node=node.$updated(nil,children.$compact()))),node},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$regexp_options",$Default_rewrite_hash_args_to_kwargs$206=function(regopt_t){var options=$send(this.$value(regopt_t).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc());return this.$n("regopt",options,this.$token_map(regopt_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$regexp_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t,options){var e=nil;try{this.$static_regexp(parts,options)}catch($err){if(!Opal.rescue($err,[$$($nesting,"RegexpError")]))throw $err;e=$err;try{this.$diagnostic("error","invalid_regexp",$hash2(["message"],{message:e.$message()}),this.$loc(begin_t).$join(this.$loc(end_t)))}finally{Opal.pop_exception()}}return this.$n("regexp",parts["$<<"](options),this.$regexp_map(begin_t,end_t,options))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$array",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,elements,end_t){return this.$n("array",elements,this.$collection_map(begin_t,elements,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$splat",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,arg){return null==arg&&(arg=nil),$truthy(arg["$nil?"]())?this.$n0("splat",this.$unary_op_map(star_t)):this.$n("splat",[arg],this.$unary_op_map(star_t,arg))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$word",$Default_rewrite_hash_args_to_kwargs$206=function(parts){return $truthy(this["$collapse_string_parts?"](parts))?parts.$first():this.$n("dstr",[].concat(Opal.to_a(parts)),this.$collection_map(nil,parts,nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$words_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){return this.$n("array",[].concat(Opal.to_a(parts)),this.$collection_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$symbols_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var $$31;return parts=$send(parts,"map",[],(($$31=function(part){null==$$31.$$s||$$31.$$s;var $a,$case=nil,value=nil;return null==part&&(part=nil),$case=part.$type(),"str"["$==="]($case)?($a=[].concat(Opal.to_a(part)),value=null==$a[0]?nil:$a[0],part.$updated("sym",[value.$to_sym()])):"dstr"["$==="]($case)?part.$updated("dsym"):part}).$$s=this,$$31.$$arity=1,$$31)),this.$n("array",[].concat(Opal.to_a(parts)),this.$collection_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$pair",$Default_rewrite_hash_args_to_kwargs$206=function(key,assoc_t,value){return this.$n("pair",[key,value],this.$binary_op_map(key,assoc_t,value))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$pair_list_18",$Default_rewrite_hash_args_to_kwargs$206=function(list){var $$34;return $truthy(list.$size()["$%"](2)["$!="](0))?this.$diagnostic("error","odd_hash",nil,list.$last().$loc().$expression()):$send(list.$each_slice(2),"map",[],(($$34=function(key,value){var self=null==$$34.$$s?this:$$34.$$s;return null==key&&(key=nil),null==value&&(value=nil),self.$n("pair",[key,value],self.$binary_op_map(key,nil,value))}).$$s=this,$$34.$$arity=2,$$34))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$pair_keyword",$Default_rewrite_hash_args_to_kwargs$206=function(key_t,value){var $a=this.$pair_keyword_map(key_t,value),$a=Opal.to_ary($a),key_map=null==$a[0]?nil:$a[0],pair_map=null==$a[1]?nil:$a[1],key=this.$n("sym",[this.$value(key_t).$to_sym()],key_map);return this.$n("pair",[key,value],pair_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$pair_quoted",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t,value){var pair_map,key,$a=this.$pair_quoted_map(begin_t,end_t,value),$a=Opal.to_ary($a);return end_t=null==$a[0]?nil:$a[0],pair_map=null==$a[1]?nil:$a[1],key=this.$symbol_compose(begin_t,parts,end_t),this.$n("pair",[key,value],pair_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$pair_label",$Default_rewrite_hash_args_to_kwargs$206=function(key_t){var self=this,label=nil,value_l=self.$loc(key_t).$adjust($hash2(["end_pos"],{end_pos:-1})),label=self.$value(key_t),value=$truthy(label["$=~"](/^[[:lower:]]/))?self.$n("ident",[label.$to_sym()],$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(value_l)):self.$n("const",[nil,label.$to_sym()],$$$($$$($$($nesting,"Source"),"Map"),"Constant").$new(nil,value_l,value_l));return self.$pair_keyword(key_t,self.$accessible(value))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$kwsplat",$Default_rewrite_hash_args_to_kwargs$206=function(dstar_t,arg){return this.$n("kwsplat",[arg],this.$unary_op_map(dstar_t,arg))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$associate",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,pairs,end_t){var $$40;return $send(0,"upto",[$rb_minus(pairs.$length(),1)],(($$40=function(i){var $$41,self=null==$$40.$$s?this:$$40.$$s;return null==i&&(i=nil),$send($rb_plus(i,1),"upto",[$rb_minus(pairs.$length(),1)],(($$41=function(j){var $a,$case,self=null==$$41.$$s?this:$$41.$$s,key1=nil,key2=nil,do_warn=nil,$ret_or_3=nil;return null==self.parser&&(self.parser=nil),null==j&&(j=nil),$a=[].concat(Opal.to_a(pairs["$[]"](i))),key1=null==$a[0]?nil:$a[0],$a=[].concat(Opal.to_a(pairs["$[]"](j))),key2=null==$a[0]?nil:$a[0],do_warn=!1,$case=key1.$type(),"sym"["$==="]($case)||"str"["$==="]($case)||"int"["$==="]($case)||"float"["$==="]($case)?key1["$=="](key2)&&(do_warn=!0):("rational"["$==="]($case)||"complex"["$==="]($case)||"regexp"["$==="]($case))&&$truthy($truthy($ret_or_3=$rb_ge(self.parser.$version(),31))?key1["$=="](key2):$ret_or_3)&&(do_warn=!0),$truthy(do_warn)?self.$diagnostic("warning","duplicate_hash_key",nil,key2.$loc().$expression()):nil}).$$s=self,$$41.$$arity=1,$$41))}).$$s=this,$$40.$$arity=1,$$40)),this.$n("hash",[].concat(Opal.to_a(pairs)),this.$collection_map(begin_t,pairs,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$range_inclusive",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,dot2_t,rhs){return this.$n("irange",[lhs,rhs],this.$range_map(lhs,dot2_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$range_exclusive",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,dot3_t,rhs){return this.$n("erange",[lhs,rhs],this.$range_map(lhs,dot3_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$self",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n0("self",this.$token_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$ident",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("ident",[this.$value(token).$to_sym()],this.$variable_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$ivar",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("ivar",[this.$value(token).$to_sym()],this.$variable_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$gvar",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("gvar",[this.$value(token).$to_sym()],this.$variable_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$cvar",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("cvar",[this.$value(token).$to_sym()],this.$variable_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$back_ref",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("back_ref",[this.$value(token).$to_sym()],this.$token_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$nth_ref",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("nth_ref",[this.$value(token)],this.$token_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$accessible",$Default_rewrite_hash_args_to_kwargs$206=function(node){var $$52,$a,self=this,name=nil,$ret_or_4=nil;return $a=node.$type(),"__FILE__"["$==="]($a)?$truthy(self.emit_file_line_as_literals)?self.$n("str",[node.$loc().$expression().$source_buffer().$name()],node.$loc().$dup()):node:"__LINE__"["$==="]($a)?$truthy(self.emit_file_line_as_literals)?self.$n("int",[node.$loc().$expression().$line()],node.$loc().$dup()):node:"__ENCODING__"["$==="]($a)?$truthy(self.$class().$emit_encoding()["$!"]())?self.$n("const",[self.$n("const",[nil,"Encoding"],nil),"UTF_8"],node.$loc().$dup()):node:"ident"["$==="]($a)?($a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],$truthy($send(["?","!"],"any?",[],(($$52=function(c){null==$$52.$$s||$$52.$$s;return null==c&&(c=nil),name.$to_s()["$end_with?"](c)}).$$s=self,$$52.$$arity=1,$$52)))&&self.$diagnostic("error","invalid_id_to_get",$hash2(["identifier"],{identifier:name.$to_s()}),node.$loc().$expression()),$truthy($truthy($ret_or_4=$rb_ge(self.parser.$version(),27))?self.parser.$try_declare_numparam(node):$ret_or_4)?node.$updated("lvar"):$truthy(self.parser.$static_env()["$declared?"](name))?(name.$to_s()["$=="](self.$parser().$current_arg_stack().$top())&&self.$diagnostic("error","circular_argument_reference",$hash2(["var_name"],{var_name:name.$to_s()}),node.$loc().$expression()),node.$updated("lvar")):self.$n("send",[nil,name],self.$var_send_map(node))):node},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$const",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return this.$n("const",[nil,this.$value(name_t).$to_sym()],this.$constant_map(nil,nil,name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$const_global",$Default_rewrite_hash_args_to_kwargs$206=function(t_colon3,name_t){var cbase=this.$n0("cbase",this.$token_map(t_colon3));return this.$n("const",[cbase,this.$value(name_t).$to_sym()],this.$constant_map(cbase,t_colon3,name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$const_fetch",$Default_rewrite_hash_args_to_kwargs$206=function(scope,t_colon2,name_t){return this.$n("const",[scope,this.$value(name_t).$to_sym()],this.$constant_map(scope,t_colon2,name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$__ENCODING__",$Default_rewrite_hash_args_to_kwargs$206=function(__ENCODING__t){return this.$n0("__ENCODING__",this.$token_map(__ENCODING__t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$assignable",$Default_rewrite_hash_args_to_kwargs$206=function(node){var $a,self=this,$case=nil,name=nil,var_name=nil,name_loc=nil;return $case=node.$type(),"cvar"["$==="]($case)?node.$updated("cvasgn"):"ivar"["$==="]($case)?node.$updated("ivasgn"):"gvar"["$==="]($case)?node.$updated("gvasgn"):"const"["$==="]($case)?($truthy(self.parser.$context().$in_def())&&self.$diagnostic("error","dynamic_const",nil,node.$loc().$expression()),node.$updated("casgn")):"ident"["$==="]($case)?($a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],var_name=node.$children()["$[]"](0).$to_s(),name_loc=node.$loc().$expression(),self.$check_assignment_to_numparam(var_name,name_loc),self.$check_reserved_for_numparam(var_name,name_loc),self.parser.$static_env().$declare(name),node.$updated("lvasgn")):"match_var"["$==="]($case)?($a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],var_name=node.$children()["$[]"](0).$to_s(),name_loc=node.$loc().$expression(),self.$check_assignment_to_numparam(var_name,name_loc),self.$check_reserved_for_numparam(var_name,name_loc),node):"nil"["$==="]($case)||"self"["$==="]($case)||"true"["$==="]($case)||"false"["$==="]($case)||"__FILE__"["$==="]($case)||"__LINE__"["$==="]($case)||"__ENCODING__"["$==="]($case)?self.$diagnostic("error","invalid_assignment",nil,node.$loc().$expression()):"back_ref"["$==="]($case)||"nth_ref"["$==="]($case)?self.$diagnostic("error","backref_assignment",nil,node.$loc().$expression()):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$const_op_assignable",$Default_rewrite_hash_args_to_kwargs$206=function(node){return node.$updated("casgn")},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$assign",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,eql_t,rhs){return lhs["$<<"](rhs).$updated(nil,nil,$hash2(["location"],{location:lhs.$loc().$with_operator(this.$loc(eql_t)).$with_expression(this.$join_exprs(lhs,rhs))}))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$op_assign",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,op_t,rhs){var self=this,$case=nil,operator=nil,source_map=nil;return $case=lhs.$type(),"gvasgn"["$==="]($case)||"ivasgn"["$==="]($case)||"lvasgn"["$==="]($case)||"cvasgn"["$==="]($case)||"casgn"["$==="]($case)||"send"["$==="]($case)||"csend"["$==="]($case)||"index"["$==="]($case)?(operator=self.$value(op_t)["$[]"]($range(0,-1,!1)).$to_sym(),source_map=lhs.$loc().$with_operator(self.$loc(op_t)).$with_expression(self.$join_exprs(lhs,rhs)),lhs.$type()["$=="]("index")&&(lhs=lhs.$updated("indexasgn")),"&&"["$==="]($case=operator)?self.$n("and_asgn",[lhs,rhs],source_map):"||"["$==="]($case)?self.$n("or_asgn",[lhs,rhs],source_map):self.$n("op_asgn",[lhs,operator,rhs],source_map)):"back_ref"["$==="]($case)||"nth_ref"["$==="]($case)?self.$diagnostic("error","backref_assignment",nil,lhs.$loc().$expression()):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$multi_lhs",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,items,end_t){return this.$n("mlhs",[].concat(Opal.to_a(items)),this.$collection_map(begin_t,items,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$multi_assign",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,eql_t,rhs){return this.$n("masgn",[lhs,rhs],this.$binary_op_map(lhs,eql_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$def_class",$Default_rewrite_hash_args_to_kwargs$206=function(class_t,name,lt_t,superclass,body,end_t){return this.$n("class",[name,superclass,body],this.$module_definition_map(class_t,name,lt_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$def_sclass",$Default_rewrite_hash_args_to_kwargs$206=function(class_t,lshft_t,expr,body,end_t){return this.$n("sclass",[expr,body],this.$module_definition_map(class_t,nil,lshft_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$def_module",$Default_rewrite_hash_args_to_kwargs$206=function(module_t,name,body,end_t){return this.$n("module",[name,body],this.$module_definition_map(module_t,name,nil,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$def_method",$Default_rewrite_hash_args_to_kwargs$206=function(def_t,name_t,args,body,end_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("def",[this.$value(name_t).$to_sym(),args,body],this.$definition_map(def_t,nil,name_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$def_endless_method",$Default_rewrite_hash_args_to_kwargs$206=function(def_t,name_t,args,assignment_t,body){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("def",[this.$value(name_t).$to_sym(),args,body],this.$endless_definition_map(def_t,nil,name_t,assignment_t,body))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$def_singleton",$Default_rewrite_hash_args_to_kwargs$206=function(def_t,definee,dot_t,name_t,args,body,end_t){return this.$validate_definee(definee),this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("defs",[definee,this.$value(name_t).$to_sym(),args,body],this.$definition_map(def_t,dot_t,name_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$def_endless_singleton",$Default_rewrite_hash_args_to_kwargs$206=function(def_t,definee,dot_t,name_t,args,assignment_t,body){return this.$validate_definee(definee),this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("defs",[definee,this.$value(name_t).$to_sym(),args,body],this.$endless_definition_map(def_t,dot_t,name_t,assignment_t,body))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$undef_method",$Default_rewrite_hash_args_to_kwargs$206=function(undef_t,names){return this.$n("undef",[].concat(Opal.to_a(names)),this.$keyword_map(undef_t,nil,names,nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$alias",$Default_rewrite_hash_args_to_kwargs$206=function(alias_t,to,from){return this.$n("alias",[to,from],this.$keyword_map(alias_t,nil,[to,from],nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$args",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,args,end_t,check_args){var map,self=this,$ret_or_5=nil,$ret_or_6=nil;return null==check_args&&(check_args=!0),$truthy(check_args)&&(args=self.$check_duplicate_args(args)),self.$validate_no_forward_arg_after_restarg(args),map=self.$collection_map(begin_t,args,end_t),$truthy($truthy($ret_or_5=$truthy($ret_or_6=self.$class().$emit_forward_arg()["$!"]())?args.$length()["$=="](1):$ret_or_6)?args["$[]"](0).$type()["$=="]("forward_arg"):$ret_or_5)?self.$n("forward_args",[],map):self.$n("args",args,map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-4),Opal.def($Default_kwargs$ques$207,"$numargs",$Default_rewrite_hash_args_to_kwargs$206=function(max_numparam){return this.$n("numargs",[max_numparam],nil)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$forward_only_args",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,dots_t,end_t){var arg;return $truthy(this.$class().$emit_forward_arg())?(arg=this.$forward_arg(dots_t),this.$n("args",[arg],this.$collection_map(begin_t,[arg],end_t))):this.$n("forward_args",[],this.$collection_map(begin_t,this.$token_map(dots_t),end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$forward_arg",$Default_rewrite_hash_args_to_kwargs$206=function(dots_t){return this.$n("forward_arg",[],this.$token_map(dots_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$arg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("arg",[this.$value(name_t).$to_sym()],this.$variable_map(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$optarg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t,eql_t,value){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("optarg",[this.$value(name_t).$to_sym(),value],this.$variable_map(name_t).$with_operator(this.$loc(eql_t)).$with_expression(this.$loc(name_t).$join(value.$loc().$expression())))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$restarg",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,name_t){return null==name_t&&(name_t=nil),$truthy(name_t)?(this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("restarg",[this.$value(name_t).$to_sym()],this.$arg_prefix_map(star_t,name_t))):this.$n0("restarg",this.$arg_prefix_map(star_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$kwarg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwarg",[this.$value(name_t).$to_sym()],this.$kwarg_map(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$kwoptarg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t,value){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwoptarg",[this.$value(name_t).$to_sym(),value],this.$kwarg_map(name_t,value))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$kwrestarg",$Default_rewrite_hash_args_to_kwargs$206=function(dstar_t,name_t){return null==name_t&&(name_t=nil),$truthy(name_t)?(this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwrestarg",[this.$value(name_t).$to_sym()],this.$arg_prefix_map(dstar_t,name_t))):this.$n0("kwrestarg",this.$arg_prefix_map(dstar_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$kwnilarg",$Default_rewrite_hash_args_to_kwargs$206=function(dstar_t,nil_t){return this.$n0("kwnilarg",this.$arg_prefix_map(dstar_t,nil_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$shadowarg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("shadowarg",[this.$value(name_t).$to_sym()],this.$variable_map(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$blockarg",$Default_rewrite_hash_args_to_kwargs$206=function(amper_t,name_t){var arg_name,self=this;return $truthy(name_t["$nil?"]()["$!"]())&&self.$check_reserved_for_numparam(self.$value(name_t),self.$loc(name_t)),arg_name=$truthy(name_t)?self.$value(name_t).$to_sym():nil,self.$n("blockarg",[arg_name],self.$arg_prefix_map(amper_t,name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$procarg0",$Default_rewrite_hash_args_to_kwargs$206=function(arg){var self=this,$ret_or_7=nil;return $truthy(self.$class().$emit_procarg0())?$truthy($truthy($ret_or_7=arg.$type()["$=="]("arg"))?self.$class().$emit_arg_inside_procarg0():$ret_or_7)?self.$n("procarg0",[arg],$$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(nil,nil,arg.$location().$expression())):arg.$updated("procarg0"):arg},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$arg_expr",$Default_rewrite_hash_args_to_kwargs$206=function(expr){return expr.$type()["$=="]("lvasgn")?expr.$updated("arg"):this.$n("arg_expr",[expr],expr.$loc().$dup())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$restarg_expr",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,expr){return null==expr&&(expr=nil),$truthy(expr["$nil?"]())?this.$n0("restarg",this.$token_map(star_t)):expr.$type()["$=="]("lvasgn")?expr.$updated("restarg"):this.$n("restarg_expr",[expr],expr.$loc().$dup())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$blockarg_expr",$Default_rewrite_hash_args_to_kwargs$206=function(amper_t,expr){return expr.$type()["$=="]("lvasgn")?expr.$updated("blockarg"):this.$n("blockarg_expr",[expr],expr.$loc().$dup())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$objc_kwarg",$Default_rewrite_hash_args_to_kwargs$206=function(kwname_t,assoc_t,name_t){var kwname_l=nil,operator_l=nil,kwname_l=this.$loc(kwname_t),operator_l=$truthy(assoc_t["$nil?"]())?(kwname_l=kwname_l.$resize($rb_minus(kwname_l.$size(),1))).$end().$resize(1):this.$loc(assoc_t);return this.$n("objc_kwarg",[this.$value(kwname_t).$to_sym(),this.$value(name_t).$to_sym()],$$$($$$($$($nesting,"Source"),"Map"),"ObjcKwarg").$new(kwname_l,operator_l,this.$loc(name_t),kwname_l.$join(this.$loc(name_t))))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$objc_restarg",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,name){return null==name&&(name=nil),$truthy(name["$nil?"]())?this.$n0("restarg",this.$arg_prefix_map(star_t)):name.$type()["$=="]("arg")?name.$updated("restarg",nil,$hash2(["location"],{location:name.$loc().$with_operator(this.$loc(star_t))})):this.$n("objc_restarg",[name],this.$unary_op_map(star_t,name))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$call_type_for_dot",$Default_rewrite_hash_args_to_kwargs$206=function(dot_t){var self=this,$ret_or_8=nil;return $truthy($truthy($ret_or_8=dot_t["$nil?"]()["$!"]())?self.$value(dot_t)["$=="]("anddot"):$ret_or_8)?"csend":"send"},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$forwarded_args",$Default_rewrite_hash_args_to_kwargs$206=function(dots_t){return this.$n("forwarded_args",[],this.$token_map(dots_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$call_method",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,dot_t,selector_t,lparen_t,args,rparen_t){var type;return null==lparen_t&&(lparen_t=nil),null==args&&(args=[]),null==rparen_t&&(rparen_t=nil),type=this.$call_type_for_dot(dot_t),$truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(args),$truthy(selector_t["$nil?"]())?this.$n(type,[receiver,"call"].concat(Opal.to_a(args)),this.$send_map(receiver,dot_t,nil,lparen_t,args,rparen_t)):this.$n(type,[receiver,this.$value(selector_t).$to_sym()].concat(Opal.to_a(args)),this.$send_map(receiver,dot_t,selector_t,lparen_t,args,rparen_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-4),Opal.def($Default_kwargs$ques$207,"$call_lambda",$Default_rewrite_hash_args_to_kwargs$206=function(lambda_t){return $truthy(this.$class().$emit_lambda())?this.$n0("lambda",this.$expr_map(this.$loc(lambda_t))):this.$n("send",[nil,"lambda"],this.$send_map(nil,nil,lambda_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$block",$Default_rewrite_hash_args_to_kwargs$206=function(method_call,begin_t,args,body,end_t){var block,call_args=nil,last_arg=nil,$ret_or_9=nil,$ret_or_10=nil,block_type=nil,actual_send=nil,$a=[].concat(Opal.to_a(method_call)),call_args=(null==$a[0]||$a[0],null==$a[1]||$a[1],$slice.call($a,2));return method_call.$type()["$=="]("yield")&&this.$diagnostic("error","block_given_to_yield",nil,method_call.$loc().$keyword(),[this.$loc(begin_t)]),last_arg=call_args.$last(),$truthy($truthy($ret_or_9=last_arg)?$truthy($ret_or_10=last_arg.$type()["$=="]("block_pass"))?$ret_or_10:last_arg.$type()["$=="]("forwarded_args"):$ret_or_9)&&this.$diagnostic("error","block_and_blockarg",nil,last_arg.$loc().$expression(),[this.$loc(begin_t)]),args.$type()["$=="]("numargs")?(block_type="numblock",args=args.$children()["$[]"](0)):block_type="block",$truthy(["send","csend","index","super","zsuper","lambda"]["$include?"](method_call.$type()))?this.$n(block_type,[method_call,args,body],this.$block_map(method_call.$loc().$expression(),begin_t,end_t)):(actual_send=null==($a=[].concat(Opal.to_a(method_call)))[0]?nil:$a[0],block=this.$n(block_type,[actual_send,args,body],this.$block_map(actual_send.$loc().$expression(),begin_t,end_t)),this.$n(method_call.$type(),[block],method_call.$loc().$with_expression(this.$join_exprs(method_call,block))))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$block_pass",$Default_rewrite_hash_args_to_kwargs$206=function(amper_t,arg){return this.$n("block_pass",[arg],this.$unary_op_map(amper_t,arg))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$objc_varargs",$Default_rewrite_hash_args_to_kwargs$206=function(pair,rest_of_varargs){var first_vararg=nil,vararg_array=nil,$a=[].concat(Opal.to_a(pair)),value=null==$a[0]?nil:$a[0],first_vararg=null==$a[1]?nil:$a[1],vararg_array=this.$array(nil,[first_vararg].concat(Opal.to_a(rest_of_varargs)),nil).$updated("objc_varargs");return pair.$updated(nil,[value,vararg_array],$hash2(["location"],{location:pair.$loc().$with_expression(pair.$loc().$expression().$join(vararg_array.$loc().$expression()))}))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$attr_asgn",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,dot_t,selector_t){var method_name=$rb_plus(this.$value(selector_t),"=").$to_sym(),type=this.$call_type_for_dot(dot_t);return this.$n(type,[receiver,method_name],this.$send_map(receiver,dot_t,selector_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$index",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,lbrack_t,indexes,rbrack_t){return $truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(indexes),$truthy(this.$class().$emit_index())?this.$n("index",[receiver].concat(Opal.to_a(indexes)),this.$index_map(receiver,lbrack_t,rbrack_t)):this.$n("send",[receiver,"[]"].concat(Opal.to_a(indexes)),this.$send_index_map(receiver,lbrack_t,rbrack_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$index_asgn",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,lbrack_t,indexes,rbrack_t){return $truthy(this.$class().$emit_index())?this.$n("indexasgn",[receiver].concat(Opal.to_a(indexes)),this.$index_map(receiver,lbrack_t,rbrack_t)):this.$n("send",[receiver,"[]="].concat(Opal.to_a(indexes)),this.$send_index_map(receiver,lbrack_t,rbrack_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$binary_op",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,operator_t,arg){var source_map=nil,operator=nil,method_call=nil,source_map=this.$send_binary_op_map(receiver,operator_t,arg);return this.parser.$version()["$=="](18)&&((operator=this.$value(operator_t))["$=="]("!=")?method_call=this.$n("send",[receiver,"==",arg],source_map):operator["$=="]("!~")&&(method_call=this.$n("send",[receiver,"=~",arg],source_map)),$truthy(["!=","!~"]["$include?"](operator)))?this.$n("not",[method_call],this.$expr_map(source_map.$expression())):this.$n("send",[receiver,this.$value(operator_t).$to_sym(),arg],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_op",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,match_t,arg){var $$103,regexp=nil,source_map=this.$send_binary_op_map(receiver,match_t,arg);return $truthy(regexp=this.$static_regexp_node(receiver))?($send(regexp.$names(),"each",[],(($$103=function(name){var self=null==$$103.$$s?this:$$103.$$s;return null==self.parser&&(self.parser=nil),null==name&&(name=nil),self.parser.$static_env().$declare(name)}).$$s=this,$$103.$$arity=1,$$103)),this.$n("match_with_lvasgn",[receiver,arg],source_map)):this.$n("send",[receiver,"=~",arg],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$unary_op",$Default_rewrite_hash_args_to_kwargs$206=function(op_t,receiver){var method=nil,$case=this.$value(op_t),method="+"["$==="]($case)||"-"["$==="]($case)?$rb_plus(this.$value(op_t),"@"):this.$value(op_t);return this.$n("send",[receiver,method.$to_sym()],this.$send_unary_op_map(op_t,receiver))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$not_op",$Default_rewrite_hash_args_to_kwargs$206=function(not_t,begin_t,receiver,end_t){var nil_node;return null==begin_t&&(begin_t=nil),null==receiver&&(receiver=nil),null==end_t&&(end_t=nil),this.parser.$version()["$=="](18)?this.$n("not",[this.$check_condition(receiver)],this.$unary_op_map(not_t,receiver)):$truthy(receiver["$nil?"]())?(nil_node=this.$n0("begin",this.$collection_map(begin_t,nil,end_t)),this.$n("send",[nil_node,"!"],this.$send_unary_op_map(not_t,nil_node))):this.$n("send",[this.$check_condition(receiver),"!"],this.$send_map(nil,nil,not_t,begin_t,[receiver],end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$logical_op",$Default_rewrite_hash_args_to_kwargs$206=function(type,lhs,op_t,rhs){return this.$n(type,[lhs,rhs],this.$binary_op_map(lhs,op_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$condition",$Default_rewrite_hash_args_to_kwargs$206=function(cond_t,cond,then_t,if_true,else_t,if_false,end_t){return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$condition_map(cond_t,cond,then_t,if_true,else_t,if_false,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$condition_mod",$Default_rewrite_hash_args_to_kwargs$206=function(if_true,if_false,cond_t,cond){var $ret_or_11=nil;return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$keyword_mod_map($truthy($ret_or_11=if_true)?$ret_or_11:if_false,cond_t,cond))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$ternary",$Default_rewrite_hash_args_to_kwargs$206=function(cond,question_t,if_true,colon_t,if_false){return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$ternary_map(cond,question_t,if_true,colon_t,if_false))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$when",$Default_rewrite_hash_args_to_kwargs$206=function(when_t,patterns,then_t,body){var children=patterns["$<<"](body);return this.$n("when",children,this.$keyword_map(when_t,then_t,children,nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$case",$Default_rewrite_hash_args_to_kwargs$206=function(case_t,expr,when_bodies,else_t,else_body,end_t){return this.$n("case",[expr].concat(Opal.to_a(when_bodies["$<<"](else_body))),this.$condition_map(case_t,expr,nil,nil,else_t,else_body,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$loop",$Default_rewrite_hash_args_to_kwargs$206=function(type,keyword_t,cond,do_t,body,end_t){return this.$n(type,[this.$check_condition(cond),body],this.$keyword_map(keyword_t,do_t,nil,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$loop_mod",$Default_rewrite_hash_args_to_kwargs$206=function(type,body,keyword_t,cond){return body.$type()["$=="]("kwbegin")&&(type+="_post"),this.$n(type,[this.$check_condition(cond),body],this.$keyword_mod_map(body,keyword_t,cond))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$for",$Default_rewrite_hash_args_to_kwargs$206=function(for_t,iterator,in_t,iteratee,do_t,body,end_t){return this.$n("for",[iterator,iteratee,body],this.$for_map(for_t,in_t,do_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$keyword_cmd",$Default_rewrite_hash_args_to_kwargs$206=function(type,keyword_t,lparen_t,args,rparen_t){var self=this,$ret_or_12=nil,last_arg=nil,$ret_or_13=nil;return null==lparen_t&&(lparen_t=nil),null==args&&(args=[]),null==rparen_t&&(rparen_t=nil),$truthy($truthy($ret_or_12=type["$=="]("yield"))?$rb_gt(args.$count(),0):$ret_or_12)&&(last_arg=args.$last()).$type()["$=="]("block_pass")&&self.$diagnostic("error","block_given_to_yield",nil,self.$loc(keyword_t),[last_arg.$loc().$expression()]),$truthy($truthy($ret_or_13=["yield","super"]["$include?"](type))?self.$class().$emit_kwargs():$ret_or_13)&&self.$rewrite_hash_args_to_kwargs(args),self.$n(type,args,self.$keyword_map(keyword_t,lparen_t,args,rparen_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-3),Opal.def($Default_kwargs$ques$207,"$preexe",$Default_rewrite_hash_args_to_kwargs$206=function(preexe_t,lbrace_t,compstmt,rbrace_t){return this.$n("preexe",[compstmt],this.$keyword_map(preexe_t,lbrace_t,[],rbrace_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$postexe",$Default_rewrite_hash_args_to_kwargs$206=function(postexe_t,lbrace_t,compstmt,rbrace_t){return this.$n("postexe",[compstmt],this.$keyword_map(postexe_t,lbrace_t,[],rbrace_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$rescue_body",$Default_rewrite_hash_args_to_kwargs$206=function(rescue_t,exc_list,assoc_t,exc_var,then_t,compound_stmt){return this.$n("resbody",[exc_list,exc_var,compound_stmt],this.$rescue_body_map(rescue_t,exc_list,assoc_t,exc_var,then_t,compound_stmt))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$begin_body",$Default_rewrite_hash_args_to_kwargs$206=function(compound_stmt,rescue_bodies,else_t,else_,ensure_t,ensure_){var statements=nil;return null==rescue_bodies&&(rescue_bodies=[]),null==else_t&&(else_t=nil),null==else_&&(else_=nil),null==ensure_t&&(ensure_t=nil),null==ensure_&&(ensure_=nil),$truthy(rescue_bodies["$any?"]())?compound_stmt=$truthy(else_t)?this.$n("rescue",[compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies,[else_]))),this.$eh_keyword_map(compound_stmt,nil,rescue_bodies,else_t,else_)):this.$n("rescue",[compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies,[nil]))),this.$eh_keyword_map(compound_stmt,nil,rescue_bodies,nil,nil)):$truthy(else_t)&&(statements=[],$truthy(compound_stmt["$nil?"]()["$!"]())&&(compound_stmt.$type()["$=="]("begin")?statements=$rb_plus(statements,compound_stmt.$children()):statements.$push(compound_stmt)),statements.$push(this.$n("begin",[else_],this.$collection_map(else_t,[else_],nil))),compound_stmt=this.$n("begin",statements,this.$collection_map(nil,statements,nil))),$truthy(ensure_t)&&(compound_stmt=this.$n("ensure",[compound_stmt,ensure_],this.$eh_keyword_map(compound_stmt,ensure_t,[ensure_],nil,nil))),compound_stmt},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$compstmt",$Default_rewrite_hash_args_to_kwargs$206=function(statements){var self=this;return $truthy(statements["$none?"]())?nil:$truthy(statements["$one?"]())?statements.$first():self.$n("begin",statements,self.$collection_map(nil,statements,nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$begin",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,body,end_t){var $ret_or_14=nil,$ret_or_15=nil,$ret_or_16=nil;return $truthy(body["$nil?"]())?this.$n0("begin",this.$collection_map(begin_t,nil,end_t)):$truthy($truthy($ret_or_14=body.$type()["$=="]("mlhs"))?$ret_or_14:$truthy($ret_or_15=$truthy($ret_or_16=body.$type()["$=="]("begin"))?body.$loc().$begin()["$nil?"]():$ret_or_16)?body.$loc().$end()["$nil?"]():$ret_or_15)?this.$n(body.$type(),body.$children(),this.$collection_map(begin_t,body.$children(),end_t)):this.$n("begin",[body],this.$collection_map(begin_t,[body],end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$begin_keyword",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,body,end_t){var $ret_or_17=nil,$ret_or_18=nil;return $truthy(body["$nil?"]())?this.$n0("kwbegin",this.$collection_map(begin_t,nil,end_t)):$truthy($truthy($ret_or_17=$truthy($ret_or_18=body.$type()["$=="]("begin"))?body.$loc().$begin()["$nil?"]():$ret_or_18)?body.$loc().$end()["$nil?"]():$ret_or_17)?this.$n("kwbegin",body.$children(),this.$collection_map(begin_t,body.$children(),end_t)):this.$n("kwbegin",[body],this.$collection_map(begin_t,[body],end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$case_match",$Default_rewrite_hash_args_to_kwargs$206=function(case_t,expr,in_bodies,else_t,else_body,end_t){var $ret_or_19=nil;return $truthy($truthy($ret_or_19=else_t)?else_body["$!"]():$ret_or_19)&&(else_body=this.$n("empty_else",nil,this.$token_map(else_t))),this.$n("case_match",[expr].concat(Opal.to_a(in_bodies["$<<"](else_body))),this.$condition_map(case_t,expr,nil,nil,else_t,else_body,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$in_match",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,in_t,rhs){return this.$n("in_match",[lhs,rhs],this.$binary_op_map(lhs,in_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,match_t,rhs){return this.$n("match_pattern",[lhs,rhs],this.$binary_op_map(lhs,match_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_pattern_p",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,match_t,rhs){return this.$n("match_pattern_p",[lhs,rhs],this.$binary_op_map(lhs,match_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$in_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(in_t,pattern,guard,then_t,body){var children=nil,children=[pattern,guard,body];return this.$n("in_pattern",children,this.$keyword_map(in_t,then_t,children.$compact(),nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$if_guard",$Default_rewrite_hash_args_to_kwargs$206=function(if_t,if_body){return this.$n("if_guard",[if_body],this.$guard_map(if_t,if_body))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$unless_guard",$Default_rewrite_hash_args_to_kwargs$206=function(unless_t,unless_body){return this.$n("unless_guard",[unless_body],this.$guard_map(unless_t,unless_body))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$match_var",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){var name=this.$value(name_t).$to_sym(),name_l=this.$loc(name_t);return this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),this.$n("match_var",[name],this.$variable_map(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$match_hash_var",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){var expr_l=nil,name=this.$value(name_t).$to_sym(),name_l=(expr_l=this.$loc(name_t)).$adjust($hash2(["end_pos"],{end_pos:-1}));return this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),this.$n("match_var",[name],$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(name_l,expr_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$match_hash_var_from_str",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,$a,end_t){var self=this,string=nil,$case=nil,name=nil,name_l=nil,begin_l=nil,end_l=nil,expr_l=nil;return $truthy($rb_gt($a.$length(),1))&&self.$diagnostic("error","pm_interp_in_var_name",nil,self.$loc(begin_t).$join(self.$loc(end_t))),string=$a["$[]"](0),$case=string.$type(),"str"["$==="]($case)?($a=[].concat(Opal.to_a(string)),name=null==$a[0]?nil:$a[0],name_l=string.$loc().$expression(),self.$check_lvar_name(name,name_l),self.$check_duplicate_pattern_variable(name,name_l),self.parser.$static_env().$declare(name),$truthy(begin_l=string.$loc().$begin())&&(name_l=name_l.$adjust($hash2(["begin_pos"],{begin_pos:begin_l.$length()}))),$truthy(end_l=string.$loc().$end())&&(name_l=name_l.$adjust($hash2(["end_pos"],{end_pos:end_l.$length()["$-@"]()}))),expr_l=self.$loc(begin_t).$join(string.$loc().$expression()).$join(self.$loc(end_t)),self.$n("match_var",[name.$to_sym()],$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(name_l,expr_l))):"begin"["$==="]($case)?self.$match_hash_var_from_str(begin_t,string.$children(),end_t):self.$diagnostic("error","pm_interp_in_var_name",nil,self.$loc(begin_t).$join(self.$loc(end_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_rest",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,name_t){var name;return null==name_t&&(name_t=nil),$truthy(name_t["$nil?"]())?this.$n0("match_rest",this.$unary_op_map(star_t)):(name=this.$match_var(name_t),this.$n("match_rest",[name],this.$unary_op_map(star_t,name)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$hash_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(lbrace_t,kwargs,rbrace_t){var args=this.$check_duplicate_args(kwargs);return this.$n("hash_pattern",args,this.$collection_map(lbrace_t,args,rbrace_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$array_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(lbrack_t,elements,rbrack_t){var $$136,node_elements,node_type,trailing_comma=nil;return $truthy(elements["$nil?"]())?this.$n("array_pattern",nil,this.$collection_map(lbrack_t,[],rbrack_t)):(trailing_comma=!1,node_elements=$send(elements,"map",[],(($$136=function(element){null==$$136.$$s||$$136.$$s;return null==element&&(element=nil),element.$type()["$=="]("match_with_trailing_comma")?(trailing_comma=!0,element.$children().$first()):(trailing_comma=!1,element)}).$$s=this,$$136.$$arity=1,$$136)),node_type=$truthy(trailing_comma)?"array_pattern_with_tail":"array_pattern",this.$n(node_type,node_elements,this.$collection_map(lbrack_t,elements,rbrack_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$find_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(lbrack_t,elements,rbrack_t){return this.$n("find_pattern",elements,this.$collection_map(lbrack_t,elements,rbrack_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_with_trailing_comma",$Default_rewrite_hash_args_to_kwargs$206=function(match,comma_t){return this.$n("match_with_trailing_comma",[match],this.$expr_map(match.$loc().$expression().$join(this.$loc(comma_t))))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$const_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(const$,ldelim_t,pattern,rdelim_t){return this.$n("const_pattern",[const$,pattern],$$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(this.$loc(ldelim_t),this.$loc(rdelim_t),const$.$loc().$expression().$join(this.$loc(rdelim_t))))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$pin",$Default_rewrite_hash_args_to_kwargs$206=function(pin_t,var$){return this.$n("pin",[var$],this.$send_unary_op_map(pin_t,var$))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$match_alt",$Default_rewrite_hash_args_to_kwargs$206=function(left,pipe_t,right){var source_map=this.$binary_op_map(left,pipe_t,right);return this.$n("match_alt",[left,right],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_as",$Default_rewrite_hash_args_to_kwargs$206=function(value,assoc_t,as){var source_map=this.$binary_op_map(value,assoc_t,as);return this.$n("match_as",[value,as],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_nil_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(dstar_t,nil_t){return this.$n0("match_nil_pattern",this.$arg_prefix_map(dstar_t,nil_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$match_pair",$Default_rewrite_hash_args_to_kwargs$206=function(label_type,$a,value){var begin_t,parts,end_t,label_loc,var_name;return label_type["$=="]("label")?(this.$check_duplicate_pattern_key($a["$[]"](0),$a["$[]"](1)),this.$pair_keyword($a,value)):($a=$a,begin_t=null==($a=Opal.to_ary($a))[0]?nil:$a[0],parts=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],label_loc=this.$loc(begin_t).$join(this.$loc(end_t)),$truthy(var_name=this.$static_string(parts))?this.$check_duplicate_pattern_key(var_name,label_loc):this.$diagnostic("error","pm_interp_in_var_name",nil,label_loc),this.$pair_quoted(begin_t,parts,end_t,value))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_label",$Default_rewrite_hash_args_to_kwargs$206=function(label_type,$a){var begin_t,strings,end_t;return label_type["$=="]("label")?this.$match_hash_var($a):($a=$a,begin_t=null==($a=Opal.to_ary($a))[0]?nil:$a[0],strings=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],this.$match_hash_var_from_str(begin_t,strings,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),$Default_kwargs$ques$207.$private(),Opal.def($Default_kwargs$ques$207,"$check_condition",$Default_rewrite_hash_args_to_kwargs$206=function(cond){var $a,lhs,rhs,self=this,$case=nil,type=nil,$ret_or_20=nil;return $case=cond.$type(),"masgn"["$==="]($case)?$truthy(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}(self.parser.$version(),23))?self.$diagnostic("error","masgn_as_condition",nil,cond.$loc().$expression()):cond:"begin"["$==="]($case)?cond.$children().$count()["$=="](1)?cond.$updated(nil,[self.$check_condition(cond.$children().$last())]):cond:"and"["$==="]($case)||"or"["$==="]($case)||"irange"["$==="]($case)||"erange"["$==="]($case)?($a=[].concat(Opal.to_a(cond)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],$case=cond.$type(),type="irange"["$==="]($case)?"iflipflop":"erange"["$==="]($case)?"eflipflop":nil,$truthy($truthy($ret_or_20=["and","or"]["$include?"](cond.$type()))?self.parser.$version()["$=="](18):$ret_or_20)?cond:cond.$updated(type,[self.$check_condition(lhs),self.$check_condition(rhs)])):"regexp"["$==="]($case)?self.$n("match_current_line",[cond],self.$expr_map(cond.$loc().$expression())):cond},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$check_duplicate_args",$Default_rewrite_hash_args_to_kwargs$206=function(args,map){var $$148;return null==map&&(map=$hash2([],{})),$send(args,"each",[],(($$148=function(this_arg){var self=null==$$148.$$s?this:$$148.$$s,$case=nil;return null==this_arg&&(this_arg=nil),$case=this_arg.$type(),"arg"["$==="]($case)||"optarg"["$==="]($case)||"restarg"["$==="]($case)||"blockarg"["$==="]($case)||"kwarg"["$==="]($case)||"kwoptarg"["$==="]($case)||"kwrestarg"["$==="]($case)||"shadowarg"["$==="]($case)?self.$check_duplicate_arg(this_arg,map):"procarg0"["$==="]($case)?$truthy(this_arg.$children()["$[]"](0)["$is_a?"]($$($nesting,"Symbol")))?self.$check_duplicate_arg(this_arg,map):self.$check_duplicate_args(this_arg.$children(),map):"mlhs"["$==="]($case)?self.$check_duplicate_args(this_arg.$children(),map):nil}).$$s=this,$$148.$$arity=1,$$148))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$check_duplicate_arg",$Default_rewrite_hash_args_to_kwargs$206=function(this_arg,map){var $a,this_name,that_name,$writer,that_arg=nil;return null==map&&(map=$hash2([],{})),this_name=null==($a=[].concat(Opal.to_a(this_arg)))[0]?nil:$a[0],that_arg=map["$[]"](this_name),that_name=null==($a=[].concat(Opal.to_a(that_arg)))[0]?nil:$a[0],$truthy(that_arg["$nil?"]())?($writer=[this_name,this_arg],$send(map,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy(this["$arg_name_collides?"](this_name,that_name))?this.$diagnostic("error","duplicate_argument",nil,this_arg.$loc().$name(),[that_arg.$loc().$name()]):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$validate_no_forward_arg_after_restarg",$Default_rewrite_hash_args_to_kwargs$206=function(args){var $$151,restarg=nil,forward_arg=nil,$ret_or_21=nil,restarg=nil,forward_arg=nil;return $send(args,"each",[],(($$151=function(arg){null==$$151.$$s||$$151.$$s;var $case=nil;return null==arg&&(arg=nil),$case=arg.$type(),"restarg"["$==="]($case)?restarg=arg:"forward_arg"["$==="]($case)?forward_arg=arg:nil}).$$s=this,$$151.$$arity=1,$$151)),$truthy($truthy($ret_or_21=forward_arg["$nil?"]()["$!"]())?restarg["$nil?"]()["$!"]():$ret_or_21)?this.$diagnostic("error","forward_arg_after_restarg",nil,forward_arg.$loc().$expression(),[restarg.$loc().$expression()]):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$check_assignment_to_numparam",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){var assigning_to_numparam,self=this,$ret_or_22=nil,$ret_or_23=nil;return $truthy($rb_lt(self.parser.$version(),27))?nil:(assigning_to_numparam=$truthy($ret_or_22=$truthy($ret_or_23=self.parser.$context()["$in_dynamic_block?"]())?name["$=~"](/^_([1-9])$/):$ret_or_23)?self.parser.$max_numparam_stack()["$has_numparams?"]():$ret_or_22,$truthy(assigning_to_numparam)?self.$diagnostic("error","cant_assign_to_numparam",$hash2(["name"],{name:name}),loc):nil)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$check_reserved_for_numparam",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){return!$truthy($rb_lt(this.parser.$version(),30))&&$truthy(name["$=~"](/^_([1-9])$/))?this.$diagnostic("error","reserved_for_numparam",$hash2(["name"],{name:name}),loc):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$arg_name_collides?",$Default_rewrite_hash_args_to_kwargs$206=function(this_name,that_name){var $case=nil,$ret_or_24=nil,$ret_or_25=nil,$ret_or_26=nil;return $case=this.parser.$version(),18["$==="]($case)?this_name["$=="](that_name):19["$==="]($case)?$truthy($ret_or_24=this_name["$!="]("_"))?this_name["$=="](that_name):$ret_or_24:$truthy($ret_or_25=$truthy($ret_or_26=this_name)?this_name["$[]"](0)["$!="]("_"):$ret_or_26)?this_name["$=="](that_name):$ret_or_25},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$check_lvar_name",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){return $truthy(name["$=~"](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?nil:this.$diagnostic("error","lvar_name",$hash2(["name"],{name:name}),loc)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$check_duplicate_pattern_variable",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){return $truthy(name.$to_s()["$start_with?"]("_"))?nil:($truthy(this.parser.$pattern_variables()["$declared?"](name))&&this.$diagnostic("error","duplicate_variable_name",$hash2(["name"],{name:name.$to_s()}),loc),this.parser.$pattern_variables().$declare(name))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$check_duplicate_pattern_key",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){return $truthy(this.parser.$pattern_hash_keys()["$declared?"](name))&&this.$diagnostic("error","duplicate_pattern_key",$hash2(["name"],{name:name.$to_s()}),loc),this.parser.$pattern_hash_keys().$declare(name)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$n",$Default_rewrite_hash_args_to_kwargs$206=function(type,children,source_map){return $$$($$($nesting,"AST"),"Node").$new(type,children,$hash2(["location"],{location:source_map}))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$n0",$Default_rewrite_hash_args_to_kwargs$206=function(type,source_map){return this.$n(type,[],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$join_exprs",$Default_rewrite_hash_args_to_kwargs$206=function(left_expr,right_expr){return left_expr.$loc().$expression().$join(right_expr.$loc().$expression())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$token_map",$Default_rewrite_hash_args_to_kwargs$206=function(token){return $$$($$($nesting,"Source"),"Map").$new(this.$loc(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$delimited_string_map",$Default_rewrite_hash_args_to_kwargs$206=function(string_t){var str_range=nil,begin_l=(str_range=this.$loc(string_t)).$with($hash2(["end_pos"],{end_pos:$rb_plus(str_range.$begin_pos(),1)})),end_l=str_range.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(str_range.$end_pos(),1)}));return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(begin_l,end_l,this.$loc(string_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$prefix_string_map",$Default_rewrite_hash_args_to_kwargs$206=function(symbol){var str_range=nil,begin_l=(str_range=this.$loc(symbol)).$with($hash2(["end_pos"],{end_pos:$rb_plus(str_range.$begin_pos(),1)}));return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(begin_l,nil,this.$loc(symbol))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$unquoted_map",$Default_rewrite_hash_args_to_kwargs$206=function(token){return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(nil,nil,this.$loc(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$pair_keyword_map",$Default_rewrite_hash_args_to_kwargs$206=function(key_t,value_e){var key_range=nil,key_l=(key_range=this.$loc(key_t)).$adjust($hash2(["end_pos"],{end_pos:-1})),colon_l=key_range.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(key_range.$end_pos(),1)}));return[$$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(nil,nil,key_l),$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(colon_l,key_range.$join(value_e.$loc().$expression()))]},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$pair_quoted_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,end_t,value_e){var end_l=nil,quote_l=(end_l=this.$loc(end_t)).$with($hash2(["begin_pos","end_pos"],{begin_pos:$rb_minus(end_l.$end_pos(),2),end_pos:$rb_minus(end_l.$end_pos(),1)})),colon_l=end_l.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(end_l.$end_pos(),1)}));return[[this.$value(end_t),quote_l],$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(colon_l,this.$loc(begin_t).$join(value_e.$loc().$expression()))]},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$expr_map",$Default_rewrite_hash_args_to_kwargs$206=function(loc){return $$$($$($nesting,"Source"),"Map").$new(loc)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$collection_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var $ret_or_27=nil,expr_l=nil;return $truthy($truthy($ret_or_27=begin_t["$nil?"]())?$ret_or_27:end_t["$nil?"]())?$truthy(parts["$any?"]())?expr_l=this.$join_exprs(parts.$first(),parts.$last()):$truthy(begin_t["$nil?"]()["$!"]())?expr_l=this.$loc(begin_t):$truthy(end_t["$nil?"]()["$!"]())&&(expr_l=this.$loc(end_t)):expr_l=this.$loc(begin_t).$join(this.$loc(end_t)),$$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$string_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var self=this,$ret_or_28=nil,expr_l=nil;return $truthy($truthy($ret_or_28=begin_t)?self.$value(begin_t)["$start_with?"]("<<"):$ret_or_28)?(expr_l=$truthy(parts["$any?"]())?self.$join_exprs(parts.$first(),parts.$last()):self.$loc(end_t).$begin(),$$$($$$($$($nesting,"Source"),"Map"),"Heredoc").$new(self.$loc(begin_t),expr_l,self.$loc(end_t))):self.$collection_map(begin_t,parts,end_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$regexp_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,end_t,options_e){return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),this.$loc(begin_t).$join(options_e.$loc().$expression()))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$constant_map",$Default_rewrite_hash_args_to_kwargs$206=function(scope,colon2_t,name_t){var expr_l=nil,expr_l=$truthy(scope["$nil?"]())?this.$loc(name_t):scope.$loc().$expression().$join(this.$loc(name_t));return $$$($$$($$($nesting,"Source"),"Map"),"Constant").$new(this.$loc(colon2_t),this.$loc(name_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$variable_map",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return $$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(this.$loc(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$binary_op_map",$Default_rewrite_hash_args_to_kwargs$206=function(left_e,op_t,right_e){return $$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(this.$loc(op_t),this.$join_exprs(left_e,right_e))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$unary_op_map",$Default_rewrite_hash_args_to_kwargs$206=function(op_t,arg_e){var expr_l=nil;return null==arg_e&&(arg_e=nil),expr_l=$truthy(arg_e["$nil?"]())?this.$loc(op_t):this.$loc(op_t).$join(arg_e.$loc().$expression()),$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(this.$loc(op_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$range_map",$Default_rewrite_hash_args_to_kwargs$206=function(start_e,op_t,end_e){var $ret_or_29=nil,expr_l=nil;return $truthy($truthy($ret_or_29=start_e)?end_e:$ret_or_29)?expr_l=this.$join_exprs(start_e,end_e):$truthy(start_e)?expr_l=start_e.$loc().$expression().$join(this.$loc(op_t)):$truthy(end_e)&&(expr_l=this.$loc(op_t).$join(end_e.$loc().$expression())),$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(this.$loc(op_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$arg_prefix_map",$Default_rewrite_hash_args_to_kwargs$206=function(op_t,name_t){var expr_l=nil;return null==name_t&&(name_t=nil),expr_l=$truthy(name_t["$nil?"]())?this.$loc(op_t):this.$loc(op_t).$join(this.$loc(name_t)),$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(this.$loc(name_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$kwarg_map",$Default_rewrite_hash_args_to_kwargs$206=function(name_t,value_e){var name_range,expr_l=nil;return null==value_e&&(value_e=nil),name_range=this.$loc(name_t).$adjust($hash2(["end_pos"],{end_pos:-1})),expr_l=$truthy(value_e)?this.$loc(name_t).$join(value_e.$loc().$expression()):this.$loc(name_t),$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(name_range,expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$module_definition_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,name_e,operator_t,end_t){var name_l=nil;return $truthy(name_e)&&(name_l=name_e.$loc().$expression()),$$$($$$($$($nesting,"Source"),"Map"),"Definition").$new(this.$loc(keyword_t),this.$loc(operator_t),name_l,this.$loc(end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$definition_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,operator_t,name_t,end_t){return $$$($$$($$($nesting,"Source"),"Map"),"MethodDefinition").$new(this.$loc(keyword_t),this.$loc(operator_t),this.$loc(name_t),this.$loc(end_t),nil,nil)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$endless_definition_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,operator_t,name_t,assignment_t,body_e){var body_l=body_e.$loc().$expression();return $$$($$$($$($nesting,"Source"),"Map"),"MethodDefinition").$new(this.$loc(keyword_t),this.$loc(operator_t),this.$loc(name_t),nil,this.$loc(assignment_t),body_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$send_map",$Default_rewrite_hash_args_to_kwargs$206=function(receiver_e,dot_t,selector_t,begin_t,args,end_t){var begin_l=nil,end_l=nil;return null==begin_t&&(begin_t=nil),null==args&&(args=[]),null==end_t&&(end_t=nil),$truthy(receiver_e)?begin_l=receiver_e.$loc().$expression():$truthy(selector_t)&&(begin_l=this.$loc(selector_t)),$truthy(end_t)?end_l=this.$loc(end_t):$truthy(args["$any?"]())?end_l=args.$last().$loc().$expression():$truthy(selector_t)&&(end_l=this.$loc(selector_t)),$$$($$$($$($nesting,"Source"),"Map"),"Send").$new(this.$loc(dot_t),this.$loc(selector_t),this.$loc(begin_t),this.$loc(end_t),begin_l.$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-4),Opal.def($Default_kwargs$ques$207,"$var_send_map",$Default_rewrite_hash_args_to_kwargs$206=function(variable_e){return $$$($$$($$($nesting,"Source"),"Map"),"Send").$new(nil,variable_e.$loc().$expression(),nil,nil,variable_e.$loc().$expression())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$send_binary_op_map",$Default_rewrite_hash_args_to_kwargs$206=function(lhs_e,selector_t,rhs_e){return $$$($$$($$($nesting,"Source"),"Map"),"Send").$new(nil,this.$loc(selector_t),nil,nil,this.$join_exprs(lhs_e,rhs_e))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$send_unary_op_map",$Default_rewrite_hash_args_to_kwargs$206=function(selector_t,arg_e){var expr_l=nil,expr_l=$truthy(arg_e["$nil?"]())?this.$loc(selector_t):this.$loc(selector_t).$join(arg_e.$loc().$expression());return $$$($$$($$($nesting,"Source"),"Map"),"Send").$new(nil,this.$loc(selector_t),nil,nil,expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$index_map",$Default_rewrite_hash_args_to_kwargs$206=function(receiver_e,lbrack_t,rbrack_t){return $$$($$$($$($nesting,"Source"),"Map"),"Index").$new(this.$loc(lbrack_t),this.$loc(rbrack_t),receiver_e.$loc().$expression().$join(this.$loc(rbrack_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$send_index_map",$Default_rewrite_hash_args_to_kwargs$206=function(receiver_e,lbrack_t,rbrack_t){return $$$($$$($$($nesting,"Source"),"Map"),"Send").$new(nil,this.$loc(lbrack_t).$join(this.$loc(rbrack_t)),nil,nil,receiver_e.$loc().$expression().$join(this.$loc(rbrack_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$block_map",$Default_rewrite_hash_args_to_kwargs$206=function(receiver_l,begin_t,end_t){return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),receiver_l.$join(this.$loc(end_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$keyword_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,begin_t,args,end_t){var $ret_or_30=nil,end_l=nil,$ret_or_31=nil,$ret_or_32=nil;return args=$truthy($ret_or_30=args)?$ret_or_30:[],end_l=$truthy(end_t)?this.$loc(end_t):$truthy($truthy($ret_or_31=args["$any?"]())?args.$last()["$nil?"]()["$!"]():$ret_or_31)?args.$last().$loc().$expression():$truthy($truthy($ret_or_32=args["$any?"]())?$rb_gt(args.$count(),1):$ret_or_32)?args["$[]"](-2).$loc().$expression():this.$loc(keyword_t),$$$($$$($$($nesting,"Source"),"Map"),"Keyword").$new(this.$loc(keyword_t),this.$loc(begin_t),this.$loc(end_t),this.$loc(keyword_t).$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$keyword_mod_map",$Default_rewrite_hash_args_to_kwargs$206=function(pre_e,keyword_t,post_e){return $$$($$$($$($nesting,"Source"),"Map"),"Keyword").$new(this.$loc(keyword_t),nil,nil,this.$join_exprs(pre_e,post_e))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$condition_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,cond_e,begin_t,body_e,else_t,else_e,end_t){var end_l=nil,$ret_or_33=nil,$ret_or_34=nil,end_l=$truthy(end_t)?this.$loc(end_t):$truthy($truthy($ret_or_33=else_e)?else_e.$loc().$expression():$ret_or_33)?else_e.$loc().$expression():$truthy(this.$loc(else_t))?this.$loc(else_t):$truthy($truthy($ret_or_34=body_e)?body_e.$loc().$expression():$ret_or_34)?body_e.$loc().$expression():$truthy(this.$loc(begin_t))?this.$loc(begin_t):cond_e.$loc().$expression();return $$$($$$($$($nesting,"Source"),"Map"),"Condition").$new(this.$loc(keyword_t),this.$loc(begin_t),this.$loc(else_t),this.$loc(end_t),this.$loc(keyword_t).$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$ternary_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_e,question_t,mid_e,colon_t,end_e){return $$$($$$($$($nesting,"Source"),"Map"),"Ternary").$new(this.$loc(question_t),this.$loc(colon_t),this.$join_exprs(begin_e,end_e))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$for_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,in_t,begin_t,end_t){return $$$($$$($$($nesting,"Source"),"Map"),"For").$new(this.$loc(keyword_t),this.$loc(in_t),this.$loc(begin_t),this.$loc(end_t),this.$loc(keyword_t).$join(this.$loc(end_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$rescue_body_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,exc_list_e,assoc_t,exc_var_e,then_t,compstmt_e){var end_l=nil,$ret_or_35=nil,$ret_or_36=nil,$ret_or_37=nil;return $truthy(compstmt_e)&&(end_l=compstmt_e.$loc().$expression()),$truthy($truthy($ret_or_35=end_l["$nil?"]())?then_t:$ret_or_35)&&(end_l=this.$loc(then_t)),$truthy($truthy($ret_or_36=end_l["$nil?"]())?exc_var_e:$ret_or_36)&&(end_l=exc_var_e.$loc().$expression()),$truthy($truthy($ret_or_37=end_l["$nil?"]())?exc_list_e:$ret_or_37)&&(end_l=exc_list_e.$loc().$expression()),$truthy(end_l["$nil?"]())&&(end_l=this.$loc(keyword_t)),$$$($$$($$($nesting,"Source"),"Map"),"RescueBody").$new(this.$loc(keyword_t),this.$loc(assoc_t),this.$loc(then_t),this.$loc(keyword_t).$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$eh_keyword_map",$Default_rewrite_hash_args_to_kwargs$206=function(compstmt_e,keyword_t,body_es,else_t,else_e){var begin_l=nil,end_l=nil,begin_l=$truthy(compstmt_e["$nil?"]())?$truthy(keyword_t["$nil?"]())?body_es.$first().$loc().$expression():this.$loc(keyword_t):compstmt_e.$loc().$expression(),end_l=$truthy(else_t)?$truthy(else_e["$nil?"]())?this.$loc(else_t):else_e.$loc().$expression():$truthy(body_es.$last()["$nil?"]()["$!"]())?body_es.$last().$loc().$expression():this.$loc(keyword_t);return $$$($$$($$($nesting,"Source"),"Map"),"Condition").$new(this.$loc(keyword_t),nil,this.$loc(else_t),nil,begin_l.$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$guard_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,guard_body_e){var keyword_l=nil,keyword_l=this.$loc(keyword_t),guard_body_l=guard_body_e.$loc().$expression();return $$$($$$($$($nesting,"Source"),"Map"),"Keyword").$new(keyword_l,nil,nil,keyword_l.$join(guard_body_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$static_string",$Default_rewrite_hash_args_to_kwargs$206=function(nodes){try{var $$197;return $send(nodes,"map",[],(($$197=function(node){var $case,string,self=null==$$197.$$s?this:$$197.$$s;return null==node&&(node=nil),function(){if($case=node.$type(),"str"["$==="]($case))return node.$children()["$[]"](0);if("begin"["$==="]($case)){if($truthy(string=self.$static_string(node.$children())))return string;Opal.ret(nil)}else Opal.ret(nil)}()}).$$s=this,$$197.$$arity=1,$$197)).$join()}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$static_regexp",$Default_rewrite_hash_args_to_kwargs$206=function(parts,options){var source=nil,source=this.$static_string(parts);return $truthy(source["$nil?"]())?nil:(source=$truthy(options.$children()["$include?"]("u"))?source.$encode($$$($$($nesting,"Encoding"),"UTF_8")):$truthy(options.$children()["$include?"]("e"))?source.$encode($$$($$($nesting,"Encoding"),"EUC_JP")):$truthy(options.$children()["$include?"]("s"))?source.$encode($$$($$($nesting,"Encoding"),"WINDOWS_31J")):$truthy(options.$children()["$include?"]("n"))?source.$encode($$$($$($nesting,"Encoding"),"BINARY")):source,$$($nesting,"Regexp").$new(source,$truthy(options.$children()["$include?"]("x"))?$$$($$($nesting,"Regexp"),"EXTENDED"):nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$static_regexp_node",$Default_rewrite_hash_args_to_kwargs$206=function($a){var parts,options;return $a.$type()["$=="]("regexp")?(parts=($a=[$a.$children()["$[]"]($range(0,-2,!1)),$a.$children()["$[]"](-1)])[0],options=$a[1],this.$static_regexp(parts,options)):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$collapse_string_parts?",$Default_rewrite_hash_args_to_kwargs$206=function(parts){var $ret_or_38;return $truthy($ret_or_38=parts["$one?"]())?["str","dstr"]["$include?"](parts.$first().$type()):$ret_or_38},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$value",$Default_rewrite_hash_args_to_kwargs$206=function(token){return token["$[]"](0)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$string_value",$Default_rewrite_hash_args_to_kwargs$206=function(token){return $truthy(token["$[]"](0)["$valid_encoding?"]())||this.$diagnostic("error","invalid_encoding",nil,token["$[]"](1)),token["$[]"](0)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$loc",$Default_rewrite_hash_args_to_kwargs$206=function(token){var $ret_or_39=nil;return $truthy($truthy($ret_or_39=token)?token["$[]"](0):$ret_or_39)?token["$[]"](1):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$diagnostic",$Default_rewrite_hash_args_to_kwargs$206=function(type,reason,arguments$,location,highlights){return null==highlights&&(highlights=[]),this.parser.$diagnostics().$process($$($nesting,"Diagnostic").$new(type,reason,arguments$,location,highlights)),type["$=="]("error")?this.parser.$send("yyerror"):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-5),Opal.def($Default_kwargs$ques$207,"$validate_definee",$Default_rewrite_hash_args_to_kwargs$206=function(definee){var self=this,$case=nil;return $case=definee.$type(),!("int"["$==="]($case)||"str"["$==="]($case)||"dstr"["$==="]($case)||"sym"["$==="]($case)||"dsym"["$==="]($case)||"regexp"["$==="]($case)||"array"["$==="]($case)||"hash"["$==="]($case))||(self.$diagnostic("error","singleton_literal",nil,definee.$loc().$expression()),!1)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$rewrite_hash_args_to_kwargs",$Default_rewrite_hash_args_to_kwargs$206=function(args){var self=this,$ret_or_40=nil,$writer=nil,$ret_or_41=nil,$ret_or_42=nil;return $truthy($truthy($ret_or_40=args["$any?"]())?self["$kwargs?"](args.$last()):$ret_or_40)?($writer=[$rb_minus(args.$length(),1),args["$[]"]($rb_minus(args.$length(),1)).$updated("kwargs")],$send(args,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy($truthy($ret_or_41=$truthy($ret_or_42=$rb_gt(args.$length(),1))?args.$last().$type()["$=="]("block_pass"):$ret_or_42)?self["$kwargs?"](args["$[]"]($rb_minus(args.$length(),2))):$ret_or_41)?($writer=[$rb_minus(args.$length(),2),args["$[]"]($rb_minus(args.$length(),2)).$updated("kwargs")],$send(args,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$kwargs?",$Default_kwargs$ques$207=function(node){var $ret_or_43,$ret_or_44=nil;return $truthy($ret_or_43=$truthy($ret_or_44=node.$type()["$=="]("hash"))?node.$loc().$begin()["$nil?"]():$ret_or_44)?node.$loc().$end()["$nil?"]():$ret_or_43},$Default_kwargs$ques$207.$$arity=1),nil&&"kwargs?"}($$($nesting,"Builders"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/context"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$reset","$attr_accessor","$in_block","$in_lambda"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($nesting,$Context_reset$2){var $Context_in_dynamic_block$ques$3=$klass($nesting,null,"Context"),$nesting=[$Context_in_dynamic_block$ques$3].concat($Context_reset$2);return Opal.const_set($nesting[0],"FLAGS",["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda"]),Opal.def($Context_in_dynamic_block$ques$3,"$initialize",$Context_reset$2=function(){return this.$reset()},$Context_reset$2.$$arity=0),Opal.def($Context_in_dynamic_block$ques$3,"$reset",$Context_reset$2=function(){return this.in_defined=!1,this.in_kwarg=!1,this.in_argdef=!1,this.in_def=!1,this.in_class=!1,this.in_block=!1,this.in_lambda=!1},$Context_reset$2.$$arity=0),$send($Context_in_dynamic_block$ques$3,"attr_accessor",Opal.to_a($$($nesting,"FLAGS"))),Opal.def($Context_in_dynamic_block$ques$3,"$in_dynamic_block?",$Context_in_dynamic_block$ques$3=function(){var $ret_or_1;return $truthy($ret_or_1=this.$in_block())?$ret_or_1:this.$in_lambda()},$Context_in_dynamic_block$ques$3.$$arity=0),nil&&"in_dynamic_block?"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/max_numparam_stack"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$==","$size","$set","$top","$>","$max","$[]","$last","$push","$pop","$private","$[]=","$-"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($MaxNumparamStack_set$10,$MaxNumparamStack_pop$9){var $MaxNumparamStack_set$10=$klass($MaxNumparamStack_set$10,null,"MaxNumparamStack"),$nesting=[$MaxNumparamStack_set$10].concat($MaxNumparamStack_pop$9);return $MaxNumparamStack_set$10.$$prototype.stack=nil,$MaxNumparamStack_set$10.$attr_reader("stack"),Opal.const_set($nesting[0],"ORDINARY_PARAMS",-1),Opal.def($MaxNumparamStack_set$10,"$initialize",$MaxNumparamStack_pop$9=function(){return this.stack=[]},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$empty?",$MaxNumparamStack_pop$9=function(){return this.stack.$size()["$=="](0)},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$has_ordinary_params!",$MaxNumparamStack_pop$9=function(){return this.$set($$($nesting,"ORDINARY_PARAMS"))},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$has_ordinary_params?",$MaxNumparamStack_pop$9=function(){return this.$top()["$=="]($$($nesting,"ORDINARY_PARAMS"))},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$has_numparams?",$MaxNumparamStack_pop$9=function(){var $ret_or_1,lhs,rhs;return $truthy($ret_or_1=this.$top())?(lhs=this.$top(),rhs=0,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)):$ret_or_1},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$register",$MaxNumparamStack_pop$9=function(numparam){return this.$set([this.$top(),numparam].$max())},$MaxNumparamStack_pop$9.$$arity=1),Opal.def($MaxNumparamStack_set$10,"$top",$MaxNumparamStack_pop$9=function(){return this.stack.$last()["$[]"]("value")},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$push",$MaxNumparamStack_pop$9=function(static$){if(null==static$)static$=$hash2([],{});else if(!static$.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call(static$.$$smap,"static"))throw Opal.ArgumentError.$new("missing keyword: static");return static$=static$.$$smap.static,this.stack.$push($hash2(["value","static"],{value:0,static:static$}))},$MaxNumparamStack_pop$9.$$arity=1),Opal.def($MaxNumparamStack_set$10,"$pop",$MaxNumparamStack_pop$9=function(){return this.stack.$pop()["$[]"]("value")},$MaxNumparamStack_pop$9.$$arity=0),$MaxNumparamStack_set$10.$private(),Opal.def($MaxNumparamStack_set$10,"$set",$MaxNumparamStack_set$10=function(rhs){var lhs=nil,lhs=["value",rhs];return $send(this.stack.$last(),"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]},$MaxNumparamStack_set$10.$$arity=1),nil&&"set"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/current_arg_stack"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$freeze","$==","$size","$<<","$-","$length","$[]=","$pop","$clear","$last"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($CurrentArgStack_top$7,$CurrentArgStack_reset$6){$CurrentArgStack_top$7=$klass($CurrentArgStack_top$7,null,"CurrentArgStack"),[$CurrentArgStack_top$7].concat($CurrentArgStack_reset$6);return $CurrentArgStack_top$7.$$prototype.stack=nil,$CurrentArgStack_top$7.$attr_reader("stack"),Opal.def($CurrentArgStack_top$7,"$initialize",$CurrentArgStack_reset$6=function(){return this.stack=[],this.$freeze()},$CurrentArgStack_reset$6.$$arity=0),Opal.def($CurrentArgStack_top$7,"$empty?",$CurrentArgStack_reset$6=function(){return this.stack.$size()["$=="](0)},$CurrentArgStack_reset$6.$$arity=0),Opal.def($CurrentArgStack_top$7,"$push",$CurrentArgStack_reset$6=function(value){return this.stack["$<<"](value)},$CurrentArgStack_reset$6.$$arity=1),Opal.def($CurrentArgStack_top$7,"$set",$CurrentArgStack_reset$6=function(value){var $writer=[$rb_minus(this.stack.$length(),1),value];return $send(this.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$CurrentArgStack_reset$6.$$arity=1),Opal.def($CurrentArgStack_top$7,"$pop",$CurrentArgStack_reset$6=function(){return this.stack.$pop()},$CurrentArgStack_reset$6.$$arity=0),Opal.def($CurrentArgStack_top$7,"$reset",$CurrentArgStack_reset$6=function(){return this.stack.$clear()},$CurrentArgStack_reset$6.$$arity=0),Opal.def($CurrentArgStack_top$7,"$top",$CurrentArgStack_top$7=function(){return this.stack.$last()},$CurrentArgStack_top$7.$$arity=0),nil&&"top"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/variables_stack"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$push","$empty?","$<<","$new","$pop","$clear","$last","$to_sym","$include?"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($VariablesStack_declared$ques$7,$VariablesStack_declare$6){var $VariablesStack_declared$ques$7=$klass($VariablesStack_declared$ques$7,null,"VariablesStack"),$nesting=[$VariablesStack_declared$ques$7].concat($VariablesStack_declare$6);return $VariablesStack_declared$ques$7.$$prototype.stack=nil,Opal.def($VariablesStack_declared$ques$7,"$initialize",$VariablesStack_declare$6=function(){return this.stack=[],this.$push()},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$empty?",$VariablesStack_declare$6=function(){return this.stack["$empty?"]()},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$push",$VariablesStack_declare$6=function(){return this.stack["$<<"]($$($nesting,"Set").$new())},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$pop",$VariablesStack_declare$6=function(){return this.stack.$pop()},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$reset",$VariablesStack_declare$6=function(){return this.stack.$clear()},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$declare",$VariablesStack_declare$6=function(name){return this.stack.$last()["$<<"](name.$to_sym())},$VariablesStack_declare$6.$$arity=1),Opal.def($VariablesStack_declared$ques$7,"$declared?",$VariablesStack_declared$ques$7=function(name){return this.stack.$last()["$include?"](name.$to_sym())},$VariablesStack_declared$ques$7.$$arity=1),nil&&"declared?"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/base"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$gvars=Opal.gvars,$truthy=Opal.truthy,$hash2=Opal.hash2;return Opal.add_stubs(["$default_parser","$setup_source_buffer","$default_encoding","$parse","$parse_with_comments","$read","$new","$all_errors_are_fatal=","$diagnostics","$-","$ignore_warnings=","$lambda","$puts","$render","$consumer=","$force_encoding","$dup","$==","$name","$raw_source=","$source=","$private_class_method","$attr_reader","$version","$diagnostics=","$static_env=","$context=","$parser=","$class","$[]","$reset","$source_buffer=","$do_parse","$comments=","$comments","$tokens=","$!","$raise","$tokens","$private","$advance","$===","$diagnostic","$map","$process","$yyerror","$token_to_str"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$Base_on_error$17,$Base_diagnostic$15){var $Base_on_error$17=$klass($base,$Base_on_error$17,"Base"),$nesting=[$Base_on_error$17].concat($Base_diagnostic$15);return $Base_on_error$17.$$prototype.diagnostics=$Base_on_error$17.$$prototype.lexer=$Base_on_error$17.$$prototype.static_env=$Base_on_error$17.$$prototype.context=$Base_on_error$17.$$prototype.builder=$Base_on_error$17.$$prototype.current_arg_stack=$Base_on_error$17.$$prototype.pattern_variables=$Base_on_error$17.$$prototype.pattern_hash_keys=nil,Opal.defs($Base_on_error$17,"$parse",$Base_diagnostic$15=function(string,file,line){var source_buffer,parser=nil;return null==file&&(file="(string)"),null==line&&(line=1),parser=this.$default_parser(),source_buffer=this.$setup_source_buffer(file,line,string,parser.$default_encoding()),parser.$parse(source_buffer)},$Base_diagnostic$15.$$arity=-2),Opal.defs($Base_on_error$17,"$parse_with_comments",$Base_diagnostic$15=function(string,file,line){var source_buffer,parser=nil;return null==file&&(file="(string)"),null==line&&(line=1),parser=this.$default_parser(),source_buffer=this.$setup_source_buffer(file,line,string,parser.$default_encoding()),parser.$parse_with_comments(source_buffer)},$Base_diagnostic$15.$$arity=-2),Opal.defs($Base_on_error$17,"$parse_file",$Base_diagnostic$15=function(filename){return this.$parse($$($nesting,"File").$read(filename),filename)},$Base_diagnostic$15.$$arity=1),Opal.defs($Base_on_error$17,"$parse_file_with_comments",$Base_diagnostic$15=function(filename){return this.$parse_with_comments($$($nesting,"File").$read(filename),filename)},$Base_diagnostic$15.$$arity=1),Opal.defs($Base_on_error$17,"$default_parser",$Base_diagnostic$15=function(){var $$6,parser=nil,parser=this.$new(),$writer=[!0];return $send(parser.$diagnostics(),"all_errors_are_fatal=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!0],$send(parser.$diagnostics(),"ignore_warnings=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[$send(this,"lambda",[],(($$6=function(diagnostic){null==$$6.$$s||$$6.$$s;return null==$gvars.stderr&&($gvars.stderr=nil),null==diagnostic&&(diagnostic=nil),$gvars.stderr.$puts(diagnostic.$render())}).$$s=this,$$6.$$arity=1,$$6))],$send(parser.$diagnostics(),"consumer=",Opal.to_a($writer)),$rb_minus($writer.length,1),parser},$Base_diagnostic$15.$$arity=0),Opal.defs($Base_on_error$17,"$setup_source_buffer",$Base_diagnostic$15=function(file,line,string,encoding){var source_buffer,$writer=nil;return string=string.$dup().$force_encoding(encoding),source_buffer=$$$($$($nesting,"Source"),"Buffer").$new(file,line),this.$name()["$=="]("Parser::Ruby18")?($writer=[string],$send(source_buffer,"raw_source=",Opal.to_a($writer))):($writer=[string],$send(source_buffer,"source=",Opal.to_a($writer))),$writer[$rb_minus($writer.length,1)],source_buffer},$Base_diagnostic$15.$$arity=4),$Base_on_error$17.$private_class_method("setup_source_buffer"),$Base_on_error$17.$attr_reader("lexer"),$Base_on_error$17.$attr_reader("diagnostics"),$Base_on_error$17.$attr_reader("builder"),$Base_on_error$17.$attr_reader("static_env"),$Base_on_error$17.$attr_reader("source_buffer"),$Base_on_error$17.$attr_reader("context"),$Base_on_error$17.$attr_reader("max_numparam_stack"),$Base_on_error$17.$attr_reader("current_arg_stack"),$Base_on_error$17.$attr_reader("pattern_variables"),$Base_on_error$17.$attr_reader("pattern_hash_keys"),Opal.def($Base_on_error$17,"$initialize",$Base_diagnostic$15=function(builder){var $writer,self=this,$ret_or_1=nil;return null==builder&&(builder=$$$($$$($$($nesting,"Parser"),"Builders"),"Default").$new()),self.diagnostics=$$$($$($nesting,"Diagnostic"),"Engine").$new(),self.static_env=$$($nesting,"StaticEnvironment").$new(),self.context=$$($nesting,"Context").$new(),self.max_numparam_stack=$$($nesting,"MaxNumparamStack").$new(),self.current_arg_stack=$$($nesting,"CurrentArgStack").$new(),self.pattern_variables=$$($nesting,"VariablesStack").$new(),self.pattern_hash_keys=$$($nesting,"VariablesStack").$new(),self.lexer=$$($nesting,"Lexer").$new(self.$version()),$writer=[self.diagnostics],$send(self.lexer,"diagnostics=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[self.static_env],$send(self.lexer,"static_env=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[self.context],$send(self.lexer,"context=",Opal.to_a($writer)),$rb_minus($writer.length,1),self.builder=builder,$writer=[self],$send(self.builder,"parser=",Opal.to_a($writer)),$rb_minus($writer.length,1),self.last_token=nil,$truthy($truthy($ret_or_1=$$$(self.$class(),"Racc_debug_parser"))?$$($nesting,"ENV")["$[]"]("RACC_DEBUG"):$ret_or_1)&&(self.yydebug=!0),self.$reset()},$Base_diagnostic$15.$$arity=-1),Opal.def($Base_on_error$17,"$reset",$Base_diagnostic$15=function(){return this.source_buffer=nil,this.lexer.$reset(),this.static_env.$reset(),this.context.$reset(),this.current_arg_stack.$reset(),this.pattern_variables.$reset(),this.pattern_hash_keys.$reset(),this},$Base_diagnostic$15.$$arity=0),Opal.def($Base_on_error$17,"$parse",$Base_diagnostic$15=function(source_buffer){var $ret_or_2,self=this,$writer=nil;return function(){try{return $writer=[source_buffer],$send(self.lexer,"source_buffer=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.source_buffer=source_buffer,$truthy($ret_or_2=self.$do_parse())?$ret_or_2:nil}finally{self.source_buffer=nil,$writer=[nil],$send(self.lexer,"source_buffer=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$Base_diagnostic$15.$$arity=1),Opal.def($Base_on_error$17,"$parse_with_comments",$Base_diagnostic$15=function(source_buffer){var self=this,$writer=nil;return function(){try{return $writer=[[]],$send(self.lexer,"comments=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],[self.$parse(source_buffer),self.lexer.$comments()]}finally{$writer=[nil],$send(self.lexer,"comments=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$Base_diagnostic$15.$$arity=1),Opal.def($Base_on_error$17,"$tokenize",$Base_diagnostic$15=function(source_buffer,recover){var self=this,$writer=nil,ast=nil;return null==recover&&(recover=!1),function(){try{$writer=[[]],$send(self.lexer,"tokens=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[[]],$send(self.lexer,"comments=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)];try{ast=self.$parse(source_buffer)}catch($err){if(!Opal.rescue($err,[$$$($$($nesting,"Parser"),"SyntaxError")]))throw $err;try{$truthy(recover["$!"]())&&self.$raise()}finally{Opal.pop_exception()}}return[ast,self.lexer.$comments(),self.lexer.$tokens()]}finally{$writer=[nil],$send(self.lexer,"tokens=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[nil],$send(self.lexer,"comments=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$Base_diagnostic$15.$$arity=-2),$Base_on_error$17.$private(),Opal.def($Base_on_error$17,"$next_token",$Base_diagnostic$15=function(){var token=this.lexer.$advance();return this.last_token=token},$Base_diagnostic$15.$$arity=0),Opal.def($Base_on_error$17,"$check_kwarg_name",$Base_diagnostic$15=function(name_t){var self=this,$case=nil;return $case=name_t["$[]"](0),!/^[a-z_]/["$==="]($case)&&/^[A-Z]/["$==="]($case)?self.$diagnostic("error","argument_const",nil,name_t):nil},$Base_diagnostic$15.$$arity=1),Opal.def($Base_on_error$17,"$diagnostic",$Base_diagnostic$15=function(level,reason,arguments$,$a,highlights_ts){var $$16,location,highlights;return null==highlights_ts&&(highlights_ts=[]),$a=$a,$a=Opal.to_ary($a),null==$a[0]||$a[0],location=null==$a[1]?nil:$a[1],highlights=$send(highlights_ts,"map",[],(($$16=function($c){null==$$16.$$s||$$16.$$s;return null==$c&&($c=nil),$c=$c,$c=Opal.to_ary($c),null==$c[0]||$c[0],null==$c[1]?nil:$c[1]}).$$s=this,$$16.$$arity=1,$$16)),this.diagnostics.$process($$($nesting,"Diagnostic").$new(level,reason,arguments$,location,highlights)),level["$=="]("error")?this.$yyerror():nil},$Base_diagnostic$15.$$arity=-5),Opal.def($Base_on_error$17,"$on_error",$Base_on_error$17=function(error_token_id,$a){var token_name=this.$token_to_str(error_token_id),$a=$a,$a=Opal.to_ary($a),location=(null==$a[0]||$a[0],null==$a[1]?nil:$a[1]);return this.diagnostics.$process($$($nesting,"Diagnostic").$new("error","unexpected_token",$hash2(["token"],{token:token_name}),location))},$Base_on_error$17.$$arity=3),nil&&"on_error"}($nesting[0],$$$($$($nesting,"Racc"),"Parser"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/rewriter"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$new","$process","$include?","$type","$remove","$wrap","$insert_before","$insert_after","$replace","$freeze","$join","$extend","$warn_of_deprecation","$class","$warned_of_deprecation=","$-"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,self,$Rewriter_replace$7){var $Rewriter_initialize$8,self=$klass($base,self,"Rewriter"),$nesting=[self].concat($Rewriter_replace$7);return self.$$prototype.source_rewriter=nil,Opal.def(self,"$rewrite",$Rewriter_replace$7=function(source_buffer,ast){return this.source_rewriter=$$$($$($nesting,"Source"),"Rewriter").$new(source_buffer),this.$process(ast),this.source_rewriter.$process()},$Rewriter_replace$7.$$arity=2),Opal.def(self,"$assignment?",$Rewriter_replace$7=function(node){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](node.$type())},$Rewriter_replace$7.$$arity=1),Opal.def(self,"$remove",$Rewriter_replace$7=function(range){return this.source_rewriter.$remove(range)},$Rewriter_replace$7.$$arity=1),Opal.def(self,"$wrap",$Rewriter_replace$7=function(range,before,after){return this.source_rewriter.$wrap(range,before,after)},$Rewriter_replace$7.$$arity=3),Opal.def(self,"$insert_before",$Rewriter_replace$7=function(range,content){return this.source_rewriter.$insert_before(range,content)},$Rewriter_replace$7.$$arity=2),Opal.def(self,"$insert_after",$Rewriter_replace$7=function(range,content){return this.source_rewriter.$insert_after(range,content)},$Rewriter_replace$7.$$arity=2),Opal.def(self,"$replace",$Rewriter_replace$7=function(range,content){return this.source_rewriter.$replace(range,content)},$Rewriter_replace$7.$$arity=2),Opal.const_set($nesting[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),self.$extend($$($nesting,"Deprecation")),Opal.def(self,"$initialize",$Rewriter_initialize$8=function($a){var $zuper_ii,rhs,$iter=$Rewriter_initialize$8.$$p,lhs=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Rewriter_initialize$8.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),this.$class().$warn_of_deprecation(),lhs=[!0],$send($$$($$($nesting,"Source"),"Rewriter"),"warned_of_deprecation=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),$send2(this,$find_super(this,"initialize",$Rewriter_initialize$8,!1,!0),"initialize",$zuper,$iter)},$Rewriter_initialize$8.$$arity=-1),nil&&"initialize"}($nesting[0],$$$($$$($$($nesting,"Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/tree_rewriter"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2;Opal.hash;return Opal.add_stubs(["$new","$process","$include?","$type","$remove","$wrap","$insert_before","$insert_after","$replace"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$TreeRewriter_replace$7,$TreeRewriter_insert_after$6){var $TreeRewriter_replace$7=$klass($base,$TreeRewriter_replace$7,"TreeRewriter"),$nesting=[$TreeRewriter_replace$7].concat($TreeRewriter_insert_after$6);return $TreeRewriter_replace$7.$$prototype.source_rewriter=nil,Opal.def($TreeRewriter_replace$7,"$rewrite",$TreeRewriter_insert_after$6=function(source_buffer,ast,policy){if(null==policy)policy=$hash2([],{});else if(!policy.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return policy=Opal.kwrestargs(policy,{}),this.source_rewriter=$$$($$$($$($nesting,"Parser"),"Source"),"TreeRewriter").$new(source_buffer,Opal.to_hash(policy)),this.$process(ast),this.source_rewriter.$process()},$TreeRewriter_insert_after$6.$$arity=-3),Opal.def($TreeRewriter_replace$7,"$assignment?",$TreeRewriter_insert_after$6=function(node){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](node.$type())},$TreeRewriter_insert_after$6.$$arity=1),Opal.def($TreeRewriter_replace$7,"$remove",$TreeRewriter_insert_after$6=function(range){return this.source_rewriter.$remove(range)},$TreeRewriter_insert_after$6.$$arity=1),Opal.def($TreeRewriter_replace$7,"$wrap",$TreeRewriter_insert_after$6=function(range,before,after){return this.source_rewriter.$wrap(range,before,after)},$TreeRewriter_insert_after$6.$$arity=3),Opal.def($TreeRewriter_replace$7,"$insert_before",$TreeRewriter_insert_after$6=function(range,content){return this.source_rewriter.$insert_before(range,content)},$TreeRewriter_insert_after$6.$$arity=2),Opal.def($TreeRewriter_replace$7,"$insert_after",$TreeRewriter_insert_after$6=function(range,content){return this.source_rewriter.$insert_after(range,content)},$TreeRewriter_insert_after$6.$$arity=2),Opal.def($TreeRewriter_replace$7,"$replace",$TreeRewriter_replace$7=function(range,content){return this.source_rewriter.$replace(range,content)},$TreeRewriter_replace$7.$$arity=2),nil&&"replace"}($nesting[0],$$$($$$($$($nesting,"Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)},Opal.modules.parser=function(Opal){var self=Opal.top,$nesting=[],$$$=(Opal.nil,Opal.$$$),$$=Opal.$$,$truthy=Opal.truthy,$module=Opal.module;return Opal.add_stubs(["$=~","$require","$raise"]),$truthy($$($nesting,"RUBY_VERSION")["$=~"](/^1\.[89]\./))&&(self.$require("parser/version"),self.$raise($$($nesting,"LoadError"),"parser v"+$$$($$($nesting,"Parser"),"VERSION")+" cannot run on Ruby "+$$($nesting,"RUBY_VERSION")+".\nPlease upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),self.$require("set"),self.$require("racc/parser"),self.$require("ast"),function(self,$nesting){self=$module(self,"Parser"),$nesting=[self].concat($nesting);return self.$require("parser/version"),self.$require("parser/messages"),self.$require("parser/deprecation"),function(self,$parent_nesting){[self=$module(self,"AST")].concat($parent_nesting),self.$require("parser/ast/node"),self.$require("parser/ast/processor"),self.$require("parser/meta")}($nesting[0],$nesting),function(self,$parent_nesting){[self=$module(self,"Source")].concat($parent_nesting),self.$require("parser/source/buffer"),self.$require("parser/source/range"),self.$require("parser/source/comment"),self.$require("parser/source/comment/associator"),self.$require("parser/source/rewriter"),self.$require("parser/source/rewriter/action"),self.$require("parser/source/tree_rewriter"),self.$require("parser/source/tree_rewriter/action"),self.$require("parser/source/map"),self.$require("parser/source/map/operator"),self.$require("parser/source/map/collection"),self.$require("parser/source/map/constant"),self.$require("parser/source/map/variable"),self.$require("parser/source/map/keyword"),self.$require("parser/source/map/definition"),self.$require("parser/source/map/method_definition"),self.$require("parser/source/map/send"),self.$require("parser/source/map/index"),self.$require("parser/source/map/condition"),self.$require("parser/source/map/ternary"),self.$require("parser/source/map/for"),self.$require("parser/source/map/rescue_body"),self.$require("parser/source/map/heredoc"),self.$require("parser/source/map/objc_kwarg")}($nesting[0],$nesting),self.$require("parser/syntax_error"),self.$require("parser/clobbering_error"),self.$require("parser/diagnostic"),self.$require("parser/diagnostic/engine"),self.$require("parser/static_environment"),self.$require("parser/lexer"),self.$require("parser/lexer/literal"),self.$require("parser/lexer/stack_state"),self.$require("parser/lexer/dedenter"),function(self,$parent_nesting){[self=$module(self,"Builders")].concat($parent_nesting),self.$require("parser/builders/default")}($nesting[0],$nesting),self.$require("parser/context"),self.$require("parser/max_numparam_stack"),self.$require("parser/current_arg_stack"),self.$require("parser/variables_stack"),self.$require("parser/base"),self.$require("parser/rewriter"),self.$require("parser/tree_rewriter")}($nesting[0],$nesting)},Opal.modules["parser/ruby30"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send,$hash=Opal.hash,$slice=Opal.slice;return Opal.add_stubs(["$require","$!","$include?","$[]","$end_with?","$diagnostic","$extend_static","$push","$cmdarg","$cond","$unextend","$pop","$children","$=~","$declared?","$static_env","$in_dynamic_block?","$expression","$loc","$has_ordinary_params?","$max_numparam_stack","$dup","$stack","$reverse_each","$>","$declare","$register","$to_i","$new","$each","$split","$empty?","$[]=","$-","$+","$compstmt","$<<","$preexe","$nil?","$begin_body","$state=","$alias","$gvar","$back_ref","$undef_method","$condition_mod","$loop_mod","$rescue_body","$postexe","$multi_assign","$assign","$array","$op_assign","$index","$call_method","$const_op_assignable","$const_fetch","$logical_op","$not_op","$command_start=","$in_kwarg","$in_kwarg=","$match_pattern","$match_pattern_p","$local_push","$in_def=","$in_block=","$in_block","$block","$keyword_cmd","$multi_lhs","$begin","$splat","$concat","$assignable","$index_asgn","$==","$attr_asgn","$const_global","$const","$symbol_internal","$range_inclusive","$range_exclusive","$binary_op","$unary_op","$match_op","$ternary","$endless_method_name","$def_endless_method","$local_pop","$in_def","$def_endless_singleton","$associate","$declared_forward_args?","$forwarded_args","$block_pass","$begin_keyword","$condition","$loop","$case","$case_match","$for","$in_class=","$def_class","$in_class","$def_sclass","$def_module","$def_method","$def_singleton","$context","$in_lambda","$arg","$restarg","$size","$procarg0","$args","$has_ordinary_params!","$set","$shadowarg","$extend_dynamic","$in_lambda=","$call_lambda","$has_numparams?","$numargs","$top","$any?","$when","$in_pattern","$if_guard","$unless_guard","$match_with_trailing_comma","$array_pattern","$find_pattern","$hash_pattern","$match_as","$match_alt","$const_pattern","$match_rest","$match_pair","$match_label","$match_nil_pattern","$accessible","$match_var","$ident","$pin","$string_compose","$dedent_string","$dedent_level","$string","$character","$xstring_compose","$regexp_options","$regexp_compose","$words_compose","$word","$symbols_compose","$string_internal","$ivar","$cvar","$symbol","$symbol_compose","$respond_to?","$negate","$unary_num","$integer","$float","$rational","$complex","$nil","$self","$true","$false","$__FILE__","$__LINE__","$__ENCODING__","$nth_ref","$forward_arg","$declare_forward_args","$forward_only_args","$check_kwarg_name","$kwoptarg","$kwarg","$kwnilarg","$kwrestarg","$optarg","$blockarg","$pair","$pair_keyword","$pair_quoted","$kwsplat","$yyerrok"]),self.$require("racc/parser.rb"),self.$require("parser"),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function(racc_reduce_table,$Ruby30__reduce_728$542,$Ruby30_try_declare_numparam$6){var $Ruby30$8,$Ruby30$10,$Ruby30$12,$Ruby30$14,clist,racc_action_table,racc_action_check,racc_action_pointer,racc_action_default,racc_goto_table,racc_goto_check,racc_goto_pointer,racc_goto_default,$Ruby30__reduce_none$543=$klass(racc_reduce_table,$Ruby30__reduce_728$542,"Ruby30"),$nesting=[$Ruby30__reduce_none$543].concat($Ruby30_try_declare_numparam$6),arr=nil,idx=nil;return $Ruby30__reduce_none$543.$$prototype.static_env=$Ruby30__reduce_none$543.$$prototype.lexer=$Ruby30__reduce_none$543.$$prototype.max_numparam_stack=$Ruby30__reduce_none$543.$$prototype.context=$Ruby30__reduce_none$543.$$prototype.current_arg_stack=$Ruby30__reduce_none$543.$$prototype.builder=$Ruby30__reduce_none$543.$$prototype.pattern_variables=$Ruby30__reduce_none$543.$$prototype.last_token=$Ruby30__reduce_none$543.$$prototype.pattern_hash_keys=nil,Opal.def($Ruby30__reduce_none$543,"$version",$Ruby30_try_declare_numparam$6=function(){return 30},$Ruby30_try_declare_numparam$6.$$arity=0),Opal.def($Ruby30__reduce_none$543,"$default_encoding",$Ruby30_try_declare_numparam$6=function(){return $$$($$($nesting,"Encoding"),"UTF_8")},$Ruby30_try_declare_numparam$6.$$arity=0),Opal.def($Ruby30__reduce_none$543,"$endless_method_name",$Ruby30_try_declare_numparam$6=function(name_t){var $ret_or_1=nil;return $truthy($truthy($ret_or_1=["===","==","!=","<=",">="]["$include?"](name_t["$[]"](0))["$!"]())?name_t["$[]"](0)["$end_with?"]("="):$ret_or_1)?this.$diagnostic("error","endless_setter",nil,name_t):nil},$Ruby30_try_declare_numparam$6.$$arity=1),Opal.def($Ruby30__reduce_none$543,"$local_push",$Ruby30_try_declare_numparam$6=function(){return this.static_env.$extend_static(),this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),this.max_numparam_stack.$push($hash2(["static"],{static:!0}))},$Ruby30_try_declare_numparam$6.$$arity=0),Opal.def($Ruby30__reduce_none$543,"$local_pop",$Ruby30_try_declare_numparam$6=function(){return this.static_env.$unextend(),this.lexer.$cmdarg().$pop(),this.lexer.$cond().$pop(),this.max_numparam_stack.$pop()},$Ruby30_try_declare_numparam$6.$$arity=0),Opal.def($Ruby30__reduce_none$543,"$try_declare_numparam",$Ruby30_try_declare_numparam$6=function(node){var $$7,location,self=this,name=nil,$ret_or_2=nil,$ret_or_3=nil,raw_max_numparam_stack=nil,name=node.$children()["$[]"](0);return!!$truthy($truthy($ret_or_2=$truthy($ret_or_3=name["$=~"](/^_[1-9]$/))?self.$static_env()["$declared?"](name)["$!"]():$ret_or_3)?self.context["$in_dynamic_block?"]():$ret_or_2)&&(location=node.$loc().$expression(),$truthy(self.$max_numparam_stack()["$has_ordinary_params?"]())&&self.$diagnostic("error","ordinary_param_defined",nil,[nil,location]),(raw_max_numparam_stack=self.$max_numparam_stack().$stack().$dup()).$pop(),function(){var $brk=Opal.new_brk();try{$send(raw_max_numparam_stack,"reverse_each",[],(($$7=function(rhs){var lhs,self=null==$$7.$$s?this:$$7.$$s,outer_scope_has_numparams=nil;if(null==rhs&&(rhs=nil),!$truthy(rhs["$[]"]("static")))return lhs=rhs["$[]"]("value"),rhs=0,outer_scope_has_numparams="number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs),$truthy(outer_scope_has_numparams)?self.$diagnostic("error","numparam_used_in_outer_scope",nil,[nil,location]):nil;Opal.brk(nil,$brk)}).$$s=self,$$7.$$brk=$brk,$$7.$$arity=1,$$7))}catch(err){if(err===$brk)return err.$v;throw err}}(),self.$static_env().$declare(name),self.$max_numparam_stack().$register(name["$[]"](1).$to_i()),!0)},$Ruby30_try_declare_numparam$6.$$arity=1),clist=["-707,680,617,1083,870,965,-120,-707,-707,-707,221,222,805,-707,-707","-606,-707,104,105,870,231,-113,-606,-116,-707,-707,660,1150,658,-716","866,-119,-118,1153,-114,1078,-707,-707,617,-707,-707,-707,-707,-707","-112,-119,232,617,617,920,1124,-118,426,1077,624,-117,870,428,427,810","-117,232,810,-115,-113,-501,-707,-707,-707,-707,-707,-707,-707,-707","-707,-707,-707,-707,-707,-707,-606,-112,-707,-707,-707,1084,685,-707","-703,-117,-707,-120,659,-707,657,106,107,-704,-707,232,-707,229,-707","-707,232,-707,-707,-707,-707,-707,-602,-707,-707,-707,964,-111,126,-602","-602,-602,126,125,-602,-602,-602,125,-602,-707,-704,-106,-707,-707,-107","-707,-602,-707,-602,-602,-602,-113,-110,-109,-707,-105,-113,-116,-602","-602,617,-602,-602,-602,-602,-602,-116,-114,126,-115,-117,954,-120,125","-112,-119,-108,126,126,-112,-119,-118,125,125,-106,-104,-118,232,-602","-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-103","617,-602,-602,-602,-106,-602,-602,301,852,-602,352,126,-602,-602,479","-602,125,-602,-120,-602,-716,-602,-602,-120,-602,-602,-602,-602,-602","-314,-602,1158,-602,301,221,222,-314,-314,-314,920,-703,624,-314,-314","-106,-314,-602,-106,1159,-602,-602,-602,-602,-314,-602,-716,-602,221","222,-106,232,-602,949,920,-602,-314,-314,-114,-314,-314,-314,-314,-314","-120,788,126,221,222,1043,-107,125,-116,-114,366,-115,-117,-116,-114","301,-115,-117,232,789,1043,300,-314,-314,-314,-314,-314,-314,-314,-314","-314,-314,-314,-314,-314,-314,301,1043,-314,-314,-314,-611,684,-314","351,126,-314,300,-611,-314,125,-105,104,105,-314,126,-314,-611,-314","-314,125,-314,-314,-314,-314,-314,-728,-314,-707,-314,290,-703,-107","865,679,-707,-707,-707,232,296,-707,-707,-707,-314,-707,126,-314,-314","1171,-314,125,-314,-707,-707,-707,-707,-707,232,-314,1172,296,-118,300","-108,-707,-707,-611,-707,-707,-707,-707,-707,-107,-612,1176,-107,-98","-105,645,-605,-612,645,774,300,1180,645,-605,-107,-84,-612,106,107,-115","-115,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707","-707,366,555,-707,-707,-707,645,867,-707,1182,-105,-707,630,-105,-707","-707,631,-707,1184,-707,555,-707,-108,-707,-707,-105,-707,-707,-707","-707,-707,-612,-707,-707,-707,647,646,-605,647,646,643,645,647,646,645","836,1186,645,-707,-110,645,-707,-707,-707,-707,1137,-707,-728,-707,1137","-314,-119,-108,-707,-614,-108,-116,-314,-314,-314,647,646,-314,-314","-314,227,-314,-108,1186,-119,838,630,547,-604,-314,895,-314,-314,-314","876,-604,545,974,-701,872,765,-314,-314,873,-314,-314,-314,-314,-314","223,647,646,643,647,646,643,647,646,648,647,646,656,852,-613,126,126","1119,745,-113,125,125,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314","-314,-314,-314,-314,228,-613,-314,-314,-314,-602,868,-314,-604,1200","-314,-114,-602,-314,-314,645,-314,-701,-314,1176,-314,-602,-314,-314","-105,-314,-314,-314,-314,-314,126,-314,220,-314,630,125,-114,-112,895","582,-701,579,578,577,587,580,680,-314,-103,-607,-314,-314,-314,-314","590,-314,-607,-314,-704,-707,-112,679,-314,1122,1123,-118,-707,-707","-707,-703,-602,609,-707,-707,611,-707,585,221,222,647,646,652,-610,-707","-707,595,594,598,597,-610,949,920,591,-108,90,-707,-707,232,-707,-707","-707,-707,-707,219,-614,-117,91,582,-106,579,578,577,587,580,-607,645","92,218,232,135,-115,232,590,1043,1174,-707,-707,-707,-707,-707,-707","-707,-707,-707,-707,-707,-707,-707,-707,1212,229,-707,-707,-707,585","685,-707,-610,1186,-707,645,-104,-707,595,594,598,597,-707,1186,-707","591,-707,-707,-113,-707,-707,-707,-707,-707,-314,-707,-707,-707,890","891,1186,-314,-314,-314,647,646,661,-314,-314,-608,-314,-707,-111,122","-707,-707,-608,-107,-314,-707,-609,-602,598,597,-120,576,-707,-609,-602","-116,-314,-314,1176,-314,-314,-314,-314,-314,1186,647,646,650,582,227","579,578,577,587,580,-599,627,129,130,131,132,133,-599,590,232,625,-314","-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-608","733,-314,-314,-314,585,684,-314,221,222,-314,-609,-602,-314,595,594","598,597,-314,232,-314,591,-314,-314,232,-314,-314,-314,-314,-314,-599","-314,609,-314,228,611,254,-599,-599,-599,-599,254,-599,-599,-599,227","-599,-314,254,254,-314,-314,294,-109,-599,-314,-599,-599,-599,232,609","576,-314,611,-98,-118,-599,-599,748,-599,-599,-599,-599,-599,232,-315","561,227,609,-305,227,608,-315,759,226,765,-305,294,766,232,768,-315","232,224,771,-305,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599","-599,-599,-599,228,774,-599,-599,-599,775,-599,-599,227,254,-599,777","779,-599,-599,1152,-599,689,-599,790,-599,791,-599,-599,635,-599,-599","-599,-599,-599,-315,-599,228,-599,-305,228,129,130,131,132,133,251,-314","793,296,253,252,-599,795,-314,-599,-599,-599,-599,-704,-599,227,-599","-314,796,232,798,-599,672,678,-599,323,81,82,83,11,65,670,228,801,71","72,677,232,806,75,-700,73,74,76,33,34,79,80,129,130,131,132,133,84,31","30,114,113,115,116,807,582,21,579,578,577,-314,580,10,51,325,12,118","117,119,108,64,110,109,111,228,112,120,121,-315,104,105,47,48,46,-314","-315,-599,811,227,271,272,-314,781,-599,-315,557,-704,673,-700,669,-314","785,-599,43,477,668,36,-287,835,66,67,227,839,68,840,38,666,665,1157","50,-288,-700,662,254,853,270,269,1155,22,513,637,513,232,102,90,93,94","870,95,97,96,98,986,-315,871,629,91,101,628,-314,894,-599,590,228,85","251,92,106,107,253,252,44,45,323,81,82,83,11,65,870,897,418,71,72,899","290,228,75,-707,73,74,76,33,34,79,80,624,905,907,909,591,84,31,30,114","113,115,116,527,529,21,529,1004,759,232,613,10,51,325,12,118,117,119","108,64,110,109,111,612,112,120,121,227,104,105,47,48,46,227,1152,-707","296,-349,296,759,633,254,-707,635,-349,232,920,-703,602,635,-620,-707","43,-349,941,36,942,232,66,67,227,562,68,920,38,951,952,476,50,582,-707","579,578,577,254,580,477,22,232,558,552,232,102,90,93,94,296,95,97,96","98,986,228,366,962,91,101,366,228,232,-707,590,-349,85,232,92,106,107","-289,305,44,45,323,81,82,83,11,65,232,548,973,71,72,541,540,228,75,719","73,74,76,33,34,79,80,246,232,-83,135,591,84,31,30,114,113,115,116,232","232,21,1000,1004,1001,1002,1005,10,51,325,12,118,117,119,108,64,110","109,111,529,112,120,121,527,104,105,47,48,46,254,258,259,260,261,271","272,266,267,262,263,525,247,248,907,1011,264,265,232,43,3,245,36,587","759,66,67,513,1029,68,-287,38,251,590,257,50,253,252,1033,249,250,270","269,255,22,256,232,1036,1038,102,90,93,94,774,95,97,96,98,789,1041,1043","1043,91,101,232,268,598,597,1051,1053,85,591,92,106,107,1062,1063,44","45,323,81,82,83,11,65,1068,830,831,71,72,832,120,121,75,1069,73,74,76","33,34,79,80,129,130,131,132,133,84,31,30,114,113,115,116,1070,-290,21","232,232,232,1074,674,10,51,325,12,118,117,119,108,64,110,109,111,231","112,120,121,232,104,105,47,48,46,254,258,259,260,261,271,272,266,267","262,263,232,247,248,232,870,264,265,1082,43,481,480,36,232,1091,66,67","774,1094,68,1097,38,251,1099,257,50,253,252,1101,249,250,270,269,255","22,256,232,1103,478,102,90,93,94,1118,95,97,96,98,1119,1128,429,870","91,101,1138,268,1140,-260,,,85,,92,106,107,,,44,45,323,81,82,83,11,65",",,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,",",21,,,,,945,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121",",104,105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,247,248",",,264,265,,43,,,36,587,,66,67,,,68,,38,251,590,257,50,253,252,,249,250","270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,268,598","597,,,85,591,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,674,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45","323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,917,10,51,325,12,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267","262,263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253","252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,1133,21,579,578","577,,580,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,247,248,,","264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269","255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,232,268,,,,,85,,92","106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79","80,,,,,,84,31,30,114,113,115,116,,1133,21,579,578,577,,580,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45","323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262","263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252",",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45","323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262","263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252",",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,327",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45","7,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,,10,51,9,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262","263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252",",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,582,21,579,578,577",",580,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,582,,579,578,577,,580,,781,,582,,579,578,577,,580,785,,43,",",327,,,66,67,,254,68,,38,,,,50,,781,,582,,579,578,577,22,580,785,781",",102,90,93,94,,95,97,96,98,,,251,,91,101,253,252,,249,250,,85,,92,106","107,,781,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79","80,,,,,,84,31,30,114,113,115,116,,,21,,,254,,,10,51,325,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261","271,272,251,,262,263,253,252,,249,250,264,265,,43,,,36,,,66,67,,,68",",38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,582,,579,578,577,85,580,92,106,107,,,44,45","323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,781,,,,,84,31","30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271,272,",",-729,-729,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252",",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74","76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12","118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,-729","-729,-729,-729,271,272,,,-729,-729,,,,,,264,265,,43,,,327,,,66,67,,","68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83","11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115","116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121",",104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729,,,,,,264","265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255","22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107",",,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,",",84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64","110,109,111,,112,120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271","272,,,-729,-729,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253","252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,,,,85,,92,106,107,,,44,45,7,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,9,12","118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258","259,260,261,271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36,,","66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81","82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,-729","-729,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250","270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85",",92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34","79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261","271,272,266,,262,263,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257","50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,","10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47","48,46,254,,,,,,,,,,,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257","50,253,252,,249,250,,,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,","73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323","81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114","113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729",",,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250","270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85",",92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34","79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261","271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36,,,66,67,,,68,","38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94,","95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729,,,,,,264","265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255","22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107",",,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,",",84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64","110,109,111,,112,120,121,,104,105,47,48,46,254,,,,,,,,,,,,,,,,264,265",",43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,,,255,22,256",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,254,,,,,,,,,,,,,,,,264,265,,237,,,243,,,66,67,,,68,,,251,,257","50,253,252,,249,250,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,",",,,,,85,,92,106,107,-270,,44,45,,,,-270,-270,-270,,,-270,-270,-270,","-270,254,,,,,,,-270,-270,-270,,,,,,,264,265,,-270,-270,,-270,-270,-270","-270,-270,,,,,,251,,511,460,253,252,512,249,250,,,,,,169,170,,166,148","149,150,157,154,156,,,151,152,-270,,,171,172,158,159,-270,,,,,296,-270",",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,-270","-270,174,,,,,,,,,,,,,-270,,,-270,,,,,-270,81,82,83,11,65,,-270,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,","10,51,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,254,,,,,,,,,,,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50","253,252,,249,250,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81","82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84","31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111","317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33","34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,",",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-432,,44,45,,,,-432,-432,-432",",,-432,-432,-432,,-432,,,,,,,,-432,-432,-432,-432,,,,,,,,,-432,-432",",-432,-432,-432,-432,-432,,,,,,,,,,,,,,,,,,,,,,,-432,-432,-432,-432","-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,,,-432,-432,-432,",",-432,,296,-432,,,-432,-432,,-432,,-432,,-432,,-432,-432,,-432,-432","-432,-432,-432,-321,-432,-432,-432,,,,-321,-321,-321,,,-321,-321,-321",",-321,-432,,,-432,-432,,-432,-321,-432,-321,-321,,,,,-432,,,,-321,-321",",-321,-321,-321,-321,-321,,,,,,,,,,,,,,,,,,,,,,,-321,-321,-321,-321","-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,,,-321,-321,-321,",",-321,,305,-321,,,-321,-321,,-321,,-321,,-321,,-321,-321,,-321,-321","-321,-321,-321,,-321,,-321,,,,,,,,,,,,,,-321,,,-321,-321,,-321,,-321","81,82,83,,65,,-321,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317","112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,",",68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34","79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,","237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,",",118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,",",,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242",",,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,,,,85,,92,106,107,-306,,44,45,,,,-306,-306,-306,,,-306","-306,-306,,-306,,,,,,,,-306,,-306,-306,-306,,,,114,113,115,116,-306","-306,,-306,-306,-306,-306,-306,,,,,118,117,119,,,,,,,,,,,104,105,,,348","-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,,102,90,93,94,,95,97,96,98,,,","-306,91,101,-306,-306,-306,-306,,-306,85,-306,92,106,107,,-306,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,21,,,,,,10,51,,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,",",50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111","317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,314,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,",",91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345","79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,","237,,,243,,,66,67,,,68,,,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,",",,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45",",75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51",",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,",",,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,126,,,,,125,85,,92,106,107,,,44,45,81","82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,21,,,,,,10,51,9,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,",",50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,418,85",",92,106,107,,,44,45,81,82,83,,65,,,,71,72,,,,75,,73,74,76,33,34,79,80",",,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79","80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,","243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,",",,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34","79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,","10,51,,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21",",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,232,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,","51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,",",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,","244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,","51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,",",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,","244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,","51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46",",,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,312,,50,,,318,,,,,,242",",,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,742,,,,50,,",",,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50",",,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,",",,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,515,,75,,73,74,76","33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,",",,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,",",,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,",",,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,232,,,81,82,83,85,65","92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,","10,51,,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,",",,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80",",,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,","243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33","34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,561,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45",",75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,",",,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,",",,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,",",,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80",",,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64","110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,742,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,515,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,",",,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45",",75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,","51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,",",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244",",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244",",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,312,,50,,","318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85","65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317","112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,",",68,,742,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345","79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72,,,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51",",12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,",",,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,",",,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,",",,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50",",,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85","65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",844,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,",",,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33","34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76","344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,",",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,",",,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,","102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244",",,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47","48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318",",,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314",",,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,",",66,67,,,68,,,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,",",,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,",",,,,237,,,243,,,66,67,,,68,,742,,,,50,,,318,,,,,,242,,,,,102,315,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-270,,44,45,,,,-270","-270,-270,,,-270,-270,-270,,-270,,,,,,,,-270,-270,-270,-270,,,,,,,,","-270,-270,,-270,-270,-270,-270,-270,,,,,,,,,,,,,,,,,,,,,,,-270,-270","-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,,,-270,-270","-270,,,-270,,296,-270,,,-270,-270,,-270,,-270,,-270,,-270,-270,,-270","-270,-270,-270,-270,,-270,-270,-270,,,,,,,,,,,,,,-270,,,-270,-270,,-270",",-270,81,82,83,,65,,-270,,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,,,,85,,92,106,107,-708,,44,45,,,,-708,-708,-708,,,-708,-708,-708",",-708,,,,,,,,-708,-708,-708,-708,-708,,,,,,,,-708,-708,,-708,-708,-708","-708,-708,,,,,,,,,,,,,,,,,,,,,,,-708,-708,-708,-708,-708,-708,-708,-708","-708,-708,-708,-708,-708,-708,,,-708,-708,-708,,,-708,,,-708,,,-708","-708,,-708,,-708,,-708,,-708,-708,,-708,-708,-708,-708,-708,,-708,-708","-708,,,,,,,,,,,,,,-708,,,-708,-708,-708,-708,,-708,-709,-708,,,,,-708","-709,-709,-709,,,-709,-709,-709,,-709,,,,,,,,-709,-709,-709,-709,-709",",,,,,,,-709,-709,,-709,-709,-709,-709,-709,,,,,,,,,,,,,,,,,,,,,,,-709","-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,,,-709","-709,-709,,,-709,,,-709,,,-709,-709,,-709,,-709,,-709,,-709,-709,,-709","-709,-709,-709,-709,,-709,-709,-709,,,,,,,,,,,,,,-709,,,-709,-709,-709","-709,,-709,,-709,,81,82,83,-709,65,,,,71,72,,,,75,,73,74,76,344,345","79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,",",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,",",,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,","102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79","80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64","110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95","97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71","72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,",",,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,418,85,,92,106,107,,,44","45,81,82,83,,65,,,,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,",",66,67,,,68,,,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,",",,,,237,,,243,,,66,67,,,68,,742,,312,,50,,,318,,,,,,242,,,,,102,315","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,",",,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46",",,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,,,,242,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244",",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50",",,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31","30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,1105,,,243,,,66,67",",,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,393,,,36,,,66,67,,,68",",38,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347","114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,",",,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85","65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,",",,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113","115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,",",,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106","107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,331,,,,,,,,,,,",",,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106","107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,,,,,,",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105",",,348,,,,,,,,,,,,,,,,,,,,1105,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244",",,,,,,340,,,118,117,119,398,64,110,109,399,,112,120,121,,104,105,,,348",",,,,,,,,,,,,,,,,405,,,400,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72",",,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244",",,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,348",",,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,","75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,",",,,340,,,118,117,119,398,64,110,109,399,,112,120,121,,104,105,,,348",",,,,,,,,,,,,,,,,,,,400,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,","75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,",",,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,348",",,,,,,,,,,,,,,,,,,,336,,,243,,,66,67,,,68,,,582,,579,578,577,587,580",",,,,,,,,590,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,350,,585,85,,92","106,107,81,82,83,,65,598,597,,71,72,591,,,75,,73,74,76,344,345,79,80",",,,,,84,339,347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,243",",,66,67,,,68,,,582,,579,578,577,587,580,,,,,,,,,590,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,543,,585,85,,92,106,107,81,82,83,,65,598,597",",71,72,591,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,,,348,,,,,,,,,,,,,,,,,,,,1111,,,243,,,66,67,,,68,,,,,,,,,,,,,,,",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,185,196","186,209,182,202,192,191,212,213,207,190,189,184,210,214,215,194,183","197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,","180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169,170,,166,148,149","150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162,,147","168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,,,,,,,,,,101","185,196,186,209,182,202,192,191,212,213,207,190,189,184,210,214,215","194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199",",,,,,180,187,178,179,175,176,177,138,140,137,,139,,,,,,,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163","162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,",",,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189,184","210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193","181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169","170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,",",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174","102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190","189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198","208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,",",,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167","146,,,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213","207,190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206","284,283,285,282,181,200,199,,,,,,180,187,178,179,279,280,281,277,140","110,109,278,,112,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152",",,,171,172,158,159,,,,,,289,,,,,,,,163,162,,147,168,165,164,173,160","161,155,153,145,167,146,,,174,114,113,115,116,,,,,,,,,,,,,118,117,119","719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,",",,721,,,703,,,585,701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102","90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,","707,708,,118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348",",,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,595,594,598,597",",,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116",",,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579,578,577,587","580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,",",,,,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114","113,115,116,,,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579","578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585","701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96","98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117,119","719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,",",,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,,,720,,,,102,90,93","94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708",",118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590",",,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,885,,,,,598,597,,,,591,,,","720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92","106,107,,,707,708,,118,117,119,719,,,582,722,579,578,577,587,580,104","105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,,,598","597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,","92,106,107,,,707,708,185,196,186,209,182,202,192,191,212,213,207,190","189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198","208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,",",,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167","146,,,174,114,113,115,116,,,582,,579,578,577,587,580,,,,118,117,119","719,,590,,722,986,,,,,104,105,,,348,590,,,,,,,,,585,,,,,,,,,,721,598","597,703,,,591,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94,,95","97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118","117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,",",,,,,,,,,,721,,,703,,,585,701,,,702,,885,,,595,594,598,597,,,,591,,",",720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,232,114,113,115,116,,85",",92,106,107,,,707,708,,,118,117,119,719,,,582,722,579,578,577,587,580","104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,595","594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114","113,115,116,,,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579","578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585","701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96","98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117,119","719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,",",,721,,,703,,,585,701,,,702,,999,,,,,598,597,,,,591,,,,720,,,,102,90","93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707","708,,118,117,119,719,,,,722,986,,,,,104,105,,,348,590,,,,,,,,,,,,,,",",,,,721,,,703,,,,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94",",95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,","118,117,119,719,,,,722,986,,,,,104,105,,,348,590,,,,,,,,,,,,,,,,,,,721",",,703,,,,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94,,95,97","96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117","119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,",",,,,,,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,,,720,,,,102,90","93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707","708,,118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,","590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,",",720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92","106,107,,,707,708,,118,117,119,719,,,,722,,,,,,104,105,,,348,,,,,,,","114,113,115,116,,,,,,,,,721,,,703,118,117,119,701,,,702,,885,,,,,104","105,,,348,,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,","92,106,107,,,707,708,582,,579,578,577,587,580,,,,,102,90,93,94,590,95","97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,585,641,,,,118","117,119,,595,594,598,597,,,,591,,104,105,,,348,114,113,115,116,,,,,",",,,,,,,118,117,119,,,,,,,,,,,104,105,,,348,,,,,,,,,,,,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,,,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,846,460,,,847,,85,,92,106,107,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,",",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,814,460,174",",815,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172","158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153","145,167,146,456,460,174,,457,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165","164,173,160,161,155,153,145,167,146,463,467,174,,462,,,,,,,,169,170",",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,",",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,816,467","174,,817,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171","172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155","153,145,167,146,755,467,174,,756,,,,,,,,169,170,,166,148,149,150,157","154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168","165,164,173,160,161,155,153,145,167,146,690,460,174,,691,,,,,,,,169","170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296",",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,1190","467,174,,1189,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152",",,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160","161,155,153,145,167,146,819,467,174,,820,,,,,,,,169,170,,166,148,149","150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162",",147,168,165,164,173,160,161,155,153,145,167,146,690,460,174,,691,,",",,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159",",,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167","146,692,467,174,,693,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151","152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173","160,161,155,153,145,167,146,752,460,174,,753,,,,,,,,169,170,,166,148","149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163","162,,147,168,165,164,173,160,161,155,153,145,167,146,511,460,174,,512",",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145","167,146,1193,460,174,,1194,,,,,,,,169,170,,166,148,149,150,157,154,156",",,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164","173,160,161,155,153,145,167,146,692,467,174,,693,,,,,,,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,",",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,1195,467,174",",1196,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172","158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153","145,167,146,849,467,174,,848,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165","164,173,160,161,155,153,145,167,146,,582,174,579,578,577,587,580,,582",",579,578,577,587,580,590,,,,,,,,590,,,,,,,,,,,,,,585,,,,,,,,585,595","594,598,597,,,,591,595,594,598,597,,,,591"],racc_action_table=arr=$$$("::","Array").$new(28007,nil),idx=0,$send(clist,"each",[],(($Ruby30$8=function(str){var $$9,self=null==$Ruby30$8.$$s?this:$Ruby30$8.$$s;return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(($$9=function(i){var $writer;null==$$9.$$s||$$9.$$s;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),idx=$rb_plus(idx,1)}).$$s=self,$$9.$$arity=1,$$9))}).$$s=$Ruby30__reduce_none$543,$Ruby30$8.$$arity=1,$Ruby30$8)),clist=["849,847,1052,999,1056,827,394,849,849,849,762,762,619,849,849,285,849","46,46,877,21,1109,285,816,849,849,415,1102,414,702,691,628,817,1105","956,988,849,849,812,849,849,849,849,849,1108,1158,702,383,1032,1199","1056,1196,137,988,622,815,1006,137,137,1199,847,21,622,814,391,877,849","849,849,849,849,849,849,849,849,849,849,849,849,849,285,390,849,849","849,999,849,849,816,691,849,1112,415,849,414,46,46,817,849,1006,849","441,849,849,762,849,849,849,849,849,111,849,849,849,827,394,619,111","111,111,1052,619,111,111,111,1052,111,849,1196,752,849,849,816,849,111","849,111,111,111,1109,628,817,849,956,1109,849,111,111,1054,111,111,111","111,111,1195,1206,812,1193,1194,812,441,812,1108,1158,815,383,1032,1108","1158,1196,383,1032,814,391,1196,51,111,111,111,111,111,111,111,111,111","111,111,111,111,111,390,382,111,111,111,752,111,111,730,970,111,43,321","111,111,238,111,321,111,1112,111,872,111,111,1112,111,111,111,111,111","848,111,1111,111,69,638,638,848,848,848,1061,1195,1061,848,848,752,848","111,752,1114,111,111,111,111,848,111,873,111,472,472,752,872,111,800","800,111,848,848,970,848,848,848,848,848,238,592,1054,508,508,1115,755","1054,1195,1206,52,1193,1194,1195,1206,29,1193,1194,873,592,1116,730","848,848,848,848,848,848,848,848,848,848,848,848,848,848,341,1117,848","848,848,333,848,848,40,382,848,69,333,848,382,914,348,348,848,638,848","333,848,848,638,848,848,848,848,848,52,848,692,848,25,755,755,690,846","692,692,692,472,29,692,692,692,848,692,600,848,848,1129,848,600,848","692,692,692,692,692,508,848,1130,341,848,29,753,692,692,333,692,692","692,692,692,755,334,1139,755,747,914,653,284,334,1076,1141,341,1144","1088,284,755,747,334,348,348,690,846,692,692,692,692,692,692,692,692","692,692,692,692,692,692,53,352,692,692,692,655,692,692,1145,914,692","400,914,692,692,400,692,1146,692,478,692,753,692,692,914,692,692,692","692,692,334,692,692,692,653,653,284,1076,1076,1076,531,1088,1088,409","653,1147,410,692,352,413,692,692,692,692,1076,692,53,692,1088,693,352","753,692,236,753,692,693,693,693,655,655,693,693,693,335,693,753,1149","478,655,876,335,283,693,876,693,693,693,700,283,335,869,399,700,1154","693,693,700,693,693,693,693,693,17,531,531,531,409,409,409,410,410,410","413,413,413,675,235,387,5,1164,531,236,387,5,693,693,693,693,693,693","693,693,693,693,693,693,693,693,335,41,693,693,693,399,693,693,283,1170","693,869,399,693,693,412,693,399,693,1175,693,399,693,693,675,693,693","693,693,693,960,693,15,693,721,960,675,235,721,907,399,907,907,907,907","907,457,693,41,282,693,693,693,693,907,693,282,693,1189,463,41,456,693","1055,1055,693,463,463,463,1190,399,378,463,463,378,463,907,16,16,412","412,412,281,463,463,907,907,907,907,281,1165,1165,907,457,88,463,463","1192,463,463,463,463,463,14,42,457,88,366,456,366,366,366,366,366,282","416,88,12,907,9,456,1131,366,1197,1131,463,463,463,463,463,463,463,463","463,463,463,463,463,463,1202,19,463,463,463,366,463,463,281,1203,463","411,42,463,366,366,366,366,463,1204,463,366,463,463,42,463,463,463,463","463,462,463,463,463,704,704,1205,462,462,462,416,416,416,462,462,280","462,463,19,3,463,463,280,463,462,463,279,278,774,774,19,366,463,279","278,463,462,462,1211,462,462,462,462,462,1217,411,411,411,768,392,768","768,768,768,768,277,392,371,371,371,371,371,277,768,516,392,462,462","462,462,462,462,462,462,462,462,462,462,462,462,280,517,462,462,462","768,462,462,381,381,462,279,278,462,768,768,768,768,462,518,462,768","462,462,522,462,462,462,462,462,108,462,799,462,392,799,491,108,108","108,277,490,108,108,108,276,108,462,489,488,462,462,276,462,108,462","108,108,108,538,375,768,462,375,539,462,108,108,542,108,108,108,108","108,544,548,549,18,374,337,27,374,548,553,18,563,337,27,564,567,568","548,569,18,570,337,108,108,108,108,108,108,108,108,108,108,108,108,108","108,276,571,108,108,108,573,108,108,1151,487,108,574,584,108,108,1151","108,474,108,596,108,599,108,108,1151,108,108,108,108,108,548,108,18","108,337,27,536,536,536,536,536,487,756,601,464,487,487,108,603,756,108","108,108,108,756,108,440,108,756,604,605,606,108,440,455,108,818,818","818,818,818,818,440,1151,616,818,818,454,452,620,818,398,818,818,818","818,818,818,818,324,324,324,324,324,818,818,818,818,818,818,818,621","585,818,585,585,585,756,585,818,818,818,818,818,818,818,818,818,818","818,818,440,818,818,818,631,818,818,818,818,818,820,631,398,623,353","49,49,820,585,398,631,353,820,442,398,438,820,585,398,818,353,435,818","433,650,818,818,1110,658,818,660,818,432,430,1110,818,667,398,424,486","676,49,49,1110,818,681,404,686,694,818,818,818,818,695,818,818,818,818","1074,631,697,395,818,818,393,820,720,398,1074,353,818,486,818,818,818","486,486,818,818,823,823,823,823,823,823,723,724,389,823,823,727,729","1110,823,819,823,823,823,823,823,823,823,388,735,736,737,1074,823,823","823,823,823,823,823,739,741,823,379,1074,749,751,377,823,823,823,823","823,823,823,823,823,823,823,823,376,823,823,823,1104,823,823,823,823","823,402,1104,819,754,54,757,758,402,761,819,1104,54,372,764,819,368","402,364,819,823,54,783,823,784,786,823,823,234,362,823,802,823,808,809","234,823,785,819,785,785,785,358,785,234,823,813,356,349,822,823,823","823,823,347,823,823,823,823,886,1104,343,826,823,823,342,402,828,819","886,54,823,340,823,823,823,843,339,823,823,834,834,834,834,834,834,845","336,854,834,834,330,329,234,834,870,834,834,834,834,834,834,834,23,328","326,325,886,834,834,834,834,834,834,834,878,879,834,883,886,884,885","888,834,834,834,834,834,834,834,834,834,834,834,834,313,834,834,834","310,834,834,834,834,834,23,23,23,23,23,23,23,23,23,23,23,309,23,23,900","903,23,23,904,834,1,23,834,771,913,834,834,295,918,834,921,834,23,771","23,834,23,23,922,23,23,23,23,23,834,23,925,927,928,834,834,834,834,930","834,834,834,834,932,934,935,937,834,834,940,23,771,771,947,950,834,771","834,834,834,957,959,834,834,1010,1010,1010,1010,1010,1010,966,646,646","1010,1010,646,646,646,1010,967,1010,1010,1010,1010,1010,1010,1010,8","8,8,8,8,1010,1010,1010,1010,1010,1010,1010,968,969,1010,979,980,981","982,445,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010","244,1010,1010,1010,991,1010,1010,1010,1010,1010,445,445,445,445,445","445,445,445,445,445,445,992,445,445,993,997,445,445,998,1010,240,239","1010,1003,1013,1010,1010,1014,1016,1010,1017,1010,445,1018,445,1010","445,445,1020,445,445,445,445,445,1010,445,1021,1022,237,1010,1010,1010","1010,1048,1010,1010,1010,1010,1049,1065,216,1075,1010,1010,1083,445","1085,445,,,1010,,1010,1010,1010,,,1010,1010,615,615,615,615,615,615",",,,615,615,,,,615,,615,615,615,615,615,615,615,,,,,,615,615,615,615","615,615,615,,,615,,,,,794,615,615,615,615,615,615,615,615,615,615,615","615,,615,615,615,,615,615,615,615,615,794,794,794,794,794,794,794,794","794,794,794,,794,794,,,794,794,,615,,,615,1091,,615,615,,,615,,615,794","1091,794,615,794,794,,794,794,794,794,794,615,794,,,,615,615,615,615",",615,615,615,615,,,,,615,615,,794,1091,1091,,,615,1091,615,615,615,",",615,615,618,618,618,618,618,618,,,,618,618,,,,618,,618,618,618,618","618,618,618,,,,,,618,618,618,618,618,618,618,,,618,,,,,451,618,618,618","618,618,618,618,618,618,618,618,618,,618,618,618,,618,618,618,618,618","451,451,451,451,451,451,451,451,451,451,451,,451,451,,,451,451,,618",",,618,,,618,618,,,618,,618,451,,451,618,451,451,,451,451,451,451,451","618,451,,,,618,618,618,618,,618,618,618,618,,,,,618,618,,451,,,,,618",",618,618,618,,,618,618,1029,1029,1029,1029,1029,1029,,,,1029,1029,,",",1029,,1029,1029,1029,1029,1029,1029,1029,,,,,,1029,1029,1029,1029,1029","1029,1029,,,1029,,,,,763,1029,1029,1029,1029,1029,1029,1029,1029,1029","1029,1029,1029,,1029,1029,1029,,1029,1029,1029,1029,1029,763,763,763","763,763,763,763,763,763,763,763,,763,763,,,763,763,,1029,,,1029,,,1029","1029,,,1029,,1029,763,,763,1029,763,763,,763,763,763,763,763,1029,763",",,,1029,1029,1029,1029,,1029,1029,1029,1029,,,,,1029,1029,,763,,,,,1029",",1029,1029,1029,,,1029,1029,218,218,218,218,218,218,,,,218,218,,,,218",",218,218,218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,1174","218,1174,1174,1174,,1174,218,218,218,218,218,218,218,218,218,218,218","218,,218,218,218,,218,218,218,218,218,505,505,505,505,505,505,505,505","505,505,505,,505,505,,,505,505,,218,,,218,,,218,218,,,218,,218,505,","505,218,505,505,,505,505,505,505,505,218,505,,,,218,218,218,218,,218","218,218,218,,,,,218,218,505,505,,,,,218,,218,218,218,,,218,218,1066","1066,1066,1066,1066,1066,,,,1066,1066,,,,1066,,1066,1066,1066,1066,1066","1066,1066,,,,,,1066,1066,1066,1066,1066,1066,1066,,1068,1066,1068,1068","1068,,1068,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066",",1066,1066,1066,,1066,1066,1066,1066,1066,851,851,851,851,851,851,851","851,851,851,851,,851,851,,,851,851,,1066,,,1066,,,1066,1066,,,1066,","1066,851,,851,1066,851,851,,851,851,851,851,851,1066,851,,,,1066,1066","1066,1066,,1066,1066,1066,1066,,,,,1066,1066,,851,,,,,1066,,1066,1066","1066,,,1066,1066,1067,1067,1067,1067,1067,1067,,,,1067,1067,,,,1067",",1067,1067,1067,1067,1067,1067,1067,,,,,,1067,1067,1067,1067,1067,1067","1067,,,1067,,,,,,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067","1067,,1067,1067,1067,,1067,1067,1067,1067,1067,307,307,307,307,307,307","307,307,307,307,307,,307,307,,,307,307,,1067,,,1067,,,1067,1067,,,1067",",1067,307,,307,1067,307,307,,307,307,307,307,307,1067,307,,,,1067,1067","1067,1067,,1067,1067,1067,1067,,,,,1067,1067,,307,,,,,1067,,1067,1067","1067,,,1067,1067,639,639,639,639,639,639,,,,639,639,,,,639,,639,639","639,639,639,639,639,,,,,,639,639,639,639,639,639,639,,,639,,,,,,639","639,639,639,639,639,639,639,639,639,639,639,,639,639,639,,639,639,639","639,639,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,,1050","1050,,,1050,1050,,639,,,639,,,639,639,,,639,,639,1050,,1050,639,1050","1050,,1050,1050,1050,1050,1050,639,1050,,,,639,639,639,639,,639,639","639,639,,,,,639,639,,1050,,,,,639,,639,639,639,,,639,639,386,386,386","386,386,386,,,,386,386,,,,386,,386,386,386,386,386,386,386,,,,,,386","386,386,386,386,386,386,,,386,,,,,,386,386,386,386,386,386,386,386,386","386,386,386,,386,386,386,,386,386,386,386,386,560,560,560,560,560,560","560,560,560,560,560,,560,560,,,560,560,,386,,,386,,,386,386,,,386,,386","560,,560,386,560,560,,560,560,560,560,560,386,560,,,,386,386,386,386",",386,386,386,386,,,,,386,386,,560,,,,,386,,386,386,386,,,386,386,36","36,36,36,36,36,,,,36,36,,,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36","36,36,36,,,36,,,,,,36,36,36,36,36,36,36,36,36,36,36,36,,36,36,36,,36","36,36,36,36,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,","1009,1009,,,1009,1009,,36,,,36,,,36,36,,,36,,36,1009,,1009,36,1009,1009",",1009,1009,1009,1009,1009,36,1009,,,,36,36,36,36,,36,36,36,36,,,,,36","36,,1009,,,,,36,,36,36,36,,,36,36,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,,135,135,135,135,135,1027,1027,1027,1027,1027,1027,1027,1027,1027","1027,1027,,1027,1027,,,1027,1027,,135,,,135,,,135,135,,,135,,135,1027",",1027,135,1027,1027,,1027,1027,1027,1027,1027,135,1027,,,,135,135,135","135,,135,135,135,135,,,,,135,135,,1027,,,,,135,,135,135,135,,,135,135","332,332,332,332,332,332,,,,332,332,,,,332,,332,332,332,332,332,332,332",",,,,,332,332,332,332,332,332,332,,941,332,941,941,941,,941,332,332,332","332,332,332,332,332,332,332,332,332,,332,332,332,,332,332,332,332,332","781,,781,781,781,,781,,941,,942,,942,942,942,,942,941,,332,,,332,,,332","332,,502,332,,332,,,,332,,781,,1119,,1119,1119,1119,332,1119,781,942",",332,332,332,332,,332,332,332,332,,,502,,332,332,502,502,,502,502,,332",",332,332,332,,1119,332,332,385,385,385,385,385,385,,,,385,385,,,,385",",385,385,385,385,385,385,385,,,,,,385,385,385,385,385,385,385,,,385",",,501,,,385,385,385,385,385,385,385,385,385,385,385,385,,385,385,385",",385,385,385,385,385,503,503,503,503,503,503,503,501,,503,503,501,501",",501,501,503,503,,385,,,385,,,385,385,,,385,,385,503,,503,385,503,503",",503,503,503,503,503,385,503,,,,385,385,385,385,,385,385,385,385,,,",",385,385,,1118,,1118,1118,1118,385,1118,385,385,385,,,385,385,1120,1120","1120,1120,1120,1120,,,,1120,1120,,,,1120,,1120,1120,1120,1120,1120,1120","1120,1118,,,,,1120,1120,1120,1120,1120,1120,1120,,,1120,,,,,,1120,1120","1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,,1120,1120,1120,,1120","1120,1120,1120,1120,499,499,499,499,499,499,499,,,499,499,,,,,,499,499",",1120,,,1120,,,1120,1120,,,1120,,1120,499,,499,1120,499,499,,499,499","499,499,499,1120,499,,,,1120,1120,1120,1120,,1120,1120,1120,1120,,,",",1120,1120,,,,,,,1120,,1120,1120,1120,,,1120,1120,327,327,327,327,327","327,,,,327,327,,,,327,,327,327,327,327,327,327,327,,,,,,327,327,327","327,327,327,327,,,327,,,,,,327,327,327,327,327,327,327,327,327,327,327","327,,327,327,327,,327,327,327,327,327,500,500,500,500,500,500,500,,","500,500,,,,,,500,500,,327,,,327,,,327,327,,,327,,327,500,,500,327,500","500,,500,500,500,500,500,327,500,,,,327,327,327,327,,327,327,327,327",",,,,327,327,,,,,,,327,,327,327,327,,,327,327,908,908,908,908,908,908",",,,908,908,,,,908,,908,908,908,908,908,908,908,,,,,,908,908,908,908","908,908,908,,,908,,,,,,908,908,908,908,908,908,908,908,908,908,908,908",",908,908,908,,908,908,908,908,908,498,498,498,498,498,498,498,,,498","498,,,,,,498,498,,908,,,908,,,908,908,,,908,,908,498,,498,908,498,498",",498,498,498,498,498,908,498,,,,908,908,908,908,,908,908,908,908,,,",",908,908,,,,,,,908,,908,908,908,,,908,908,1166,1166,1166,1166,1166,1166",",,,1166,1166,,,,1166,,1166,1166,1166,1166,1166,1166,1166,,,,,,1166,1166","1166,1166,1166,1166,1166,,,1166,,,,,,1166,1166,1166,1166,1166,1166,1166","1166,1166,1166,1166,1166,,1166,1166,1166,,1166,1166,1166,1166,1166,496","496,496,496,496,496,496,,,496,496,,,,,,496,496,,1166,,,1166,,,1166,1166",",,1166,,1166,496,,496,1166,496,496,,496,496,496,496,496,1166,496,,,","1166,1166,1166,1166,,1166,1166,1166,1166,,,,,1166,1166,,,,,,,1166,,1166","1166,1166,,,1166,1166,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2","2,2,2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,2,2,2,355,355","355,355,355,355,355,355,355,355,355,,355,355,,,355,355,,2,,,2,,,2,2",",,2,,2,355,,355,2,355,355,,355,355,355,355,355,2,355,,,,2,2,2,2,,2,2","2,2,,,,,2,2,,,,,,,2,,2,2,2,,,2,2,370,370,370,370,370,370,,,,370,370",",,,370,,370,370,370,370,370,370,370,,,,,,370,370,370,370,370,370,370",",,370,,,,,,370,370,370,370,370,370,370,370,370,370,370,370,,370,370","370,,370,370,370,370,370,354,354,354,354,354,354,354,354,354,354,354",",354,354,,,354,354,,370,,,370,,,370,370,,,370,,370,354,,354,370,354","354,,354,354,354,354,354,370,354,,,,370,370,370,370,,370,370,370,370",",,,,370,370,,,,,,,370,,370,370,370,,,370,370,369,369,369,369,369,369",",,,369,369,,,,369,,369,369,369,369,369,369,369,,,,,,369,369,369,369","369,369,369,,,369,,,,,,369,369,369,369,369,369,369,369,369,369,369,369",",369,369,369,,369,369,369,369,369,504,504,504,504,504,504,504,504,,504","504,,,,,,504,504,,369,,,369,,,369,369,,,369,,369,504,,504,369,504,504",",504,504,504,504,504,369,504,,,,369,369,369,369,,369,369,369,369,,,",",369,369,,,,,,,369,,369,369,369,,,369,369,920,920,920,920,920,920,,",",920,920,,,,920,,920,920,920,920,920,920,920,,,,,,920,920,920,920,920","920,920,,,920,,,,,,920,920,920,920,920,920,920,920,920,920,920,920,","920,920,920,,920,920,920,920,920,559,,,,,,,,,,,,,,,,559,559,,920,,,920",",,920,920,,,920,,920,559,,559,920,559,559,,559,559,,,559,920,559,,,","920,920,920,920,,920,920,920,920,,,,,920,920,,,,,,,920,,920,920,920",",,920,920,363,363,363,363,363,363,,,,363,363,,,,363,,363,363,363,363","363,363,363,,,,,,363,363,363,363,363,363,363,,,363,,,,,,363,363,363","363,363,363,363,363,363,363,363,363,,363,363,363,,363,363,363,363,363","484,484,484,484,484,484,484,484,484,484,484,,484,484,,,484,484,,363",",,363,,,363,363,,,363,,363,484,,484,363,484,484,,484,484,484,484,484","363,484,,,,363,363,363,363,,363,363,363,363,,,,,363,363,,,,,,,363,,363","363,363,,,363,363,1107,1107,1107,1107,1107,1107,,,,1107,1107,,,,1107",",1107,1107,1107,1107,1107,1107,1107,,,,,,1107,1107,1107,1107,1107,1107","1107,,,1107,,,,,,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107","1107,,1107,1107,1107,,1107,1107,1107,1107,1107,497,497,497,497,497,497","497,,,497,497,,,,,,497,497,,1107,,,1107,,,1107,1107,,,1107,,1107,497",",497,1107,497,497,,497,497,497,497,497,1107,497,,,,1107,1107,1107,1107",",1107,1107,1107,1107,,,,,1107,1107,,,,,,,1107,,1107,1107,1107,,,1107","1107,955,955,955,955,955,955,,,,955,955,,,,955,,955,955,955,955,955","955,955,,,,,,955,955,955,955,955,955,955,,,955,,,,,,955,955,955,955","955,955,955,955,955,955,955,955,,955,955,955,,955,955,955,955,955,485","485,485,485,485,485,485,485,485,485,485,,485,485,,,485,485,,955,,,955",",,955,955,,,955,,955,485,,485,955,485,485,,485,485,485,485,485,955,485",",,,955,955,955,955,,955,955,955,955,,,,,955,955,,,,,,,955,,955,955,955",",,955,955,961,961,961,961,961,961,,,,961,961,,,,961,,961,961,961,961","961,961,961,,,,,,961,961,961,961,961,961,961,,,961,,,,,,961,961,961","961,961,961,961,961,961,961,961,961,,961,961,961,,961,961,961,961,961","495,495,495,495,495,495,495,,,495,495,,,,,,495,495,,961,,,961,,,961","961,,,961,,961,495,,495,961,495,495,,495,495,495,495,495,961,495,,,","961,961,961,961,,961,961,961,961,,,,,961,961,,,,,,,961,,961,961,961",",,961,961,243,243,243,243,243,243,,,,243,243,,,,243,,243,243,243,243","243,243,243,,,,,,243,243,243,243,243,243,243,,,243,,,,,,243,243,243","243,243,243,243,243,243,243,243,243,,243,243,243,,243,243,243,243,243","506,,,,,,,,,,,,,,,,506,506,,243,,,243,,,243,243,,,243,,243,506,,506","243,506,506,,506,506,,,506,243,506,,,,243,243,243,243,,243,243,243,243",",,,,243,243,,,,132,132,132,243,132,243,243,243,132,132,243,243,,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,492,,,,,,,,,,,,,,,,492,492,,132,,,132,,,132,132,,,132,,,492",",492,132,492,492,,492,492,,,,132,,,,,132,132,132,132,,132,132,132,132",",,,,132,132,,,,,,,132,,132,132,132,510,,132,132,,,,510,510,510,,,510","510,510,,510,494,,,,,,,510,510,510,,,,,,,494,494,,510,510,,510,510,510","510,510,,,,,,494,,292,292,494,494,292,494,494,,,,,,292,292,,292,292","292,292,292,292,292,,,292,292,510,,,292,292,292,292,510,,,,,510,510",",,,,,,292,292,,292,292,292,292,292,292,292,292,292,292,292,292,510,510","292,,,,,,,,,,,,,510,,,510,,,,,510,7,7,7,7,7,,510,,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,,7","7,7,7,7,493,,,,,,,,,,,,,,,,493,493,,7,,,7,,,7,7,,,7,,7,493,,493,7,493","493,,493,493,,,,7,,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,1155,1155,1155,7,1155","7,7,7,1155,1155,7,7,,1155,,1155,1155,1155,1155,1155,1155,1155,,,,,,1155","1155,1155,1155,1155,1155,1155,,,1155,,,,,,,1155,,,1155,1155,1155,1155","1155,1155,1155,1155,1155,1155,1155,1155,,1155,1155,1155,1155,1155,,",",,,,,,,,,,,,,,,,,1155,,,1155,,,1155,1155,,,1155,,1155,,1155,,1155,,","1155,,,,,,1155,,,,,1155,1155,1155,1155,,1155,1155,1155,1155,,,,,1155","1155,,,,22,22,22,1155,22,1155,1155,1155,22,22,1155,1155,,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,,,22,,,22,22",",,22,,,,,,22,,,,,,,,,22,,,,,22,22,22,22,,22,22,22,22,,,,,22,22,,,,1123","1123,1123,22,1123,22,22,22,1123,1123,22,22,,1123,,1123,1123,1123,1123","1123,1123,1123,,,,,,1123,1123,1123,1123,1123,1123,1123,,,1123,,,,,,","1123,,,1123,1123,1123,1123,1123,1123,1123,1123,,1123,1123,1123,,1123","1123,1123,1123,1123,,,,,,,,,,,,,,,,,,,,1123,,,1123,,,1123,1123,,,1123",",,,,,1123,,,,,,,,,1123,,,,,1123,1123,1123,1123,,1123,1123,1123,1123",",,,,1123,1123,,,,,,,1123,,1123,1123,1123,30,,1123,1123,,,,30,30,30,",",30,30,30,,30,,,,,,,,30,30,30,30,,,,,,,,,30,30,,30,30,30,30,30,,,,,",",,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30",",,30,,30,30,,,30,30,,30,,30,,30,,30,30,,30,30,30,30,30,31,30,30,30,",",,31,31,31,,,31,31,31,,31,30,,,30,30,,30,31,30,31,31,,,,,30,,,,31,31",",31,31,31,31,31,,,,,,,,,,,,,,,,,,,,,,,31,31,31,31,31,31,31,31,31,31","31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,,31,,31,,31,31,,31,31","31,31,31,,31,,31,,,,,,,,,,,,,,31,,,31,31,,31,,31,32,32,32,,32,,31,,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,32,32,,,,,,,,,,,",",,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,32,,,,,,32,,,,,32,32,32,32",",32,32,32,32,,,,,32,32,,,,33,33,33,32,33,32,32,32,33,33,32,32,,33,,33","33,33,33,33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33","33,33,33,33,33,33,33,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33",",,33,33,,,33,,33,,33,,33,,,33,,,,,,33,,,,,33,33,33,33,,33,33,33,33,",",,,33,33,,,,34,34,34,33,34,33,33,33,34,34,33,33,,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,,34,,34,,34,,,34,,,,,,34,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,",",,1122,1122,1122,34,1122,34,34,34,1122,1122,34,34,,1122,,1122,1122,1122","1122,1122,1122,1122,,,,,,1122,1122,1122,1122,1122,1122,1122,,,1122,",",,,,,1122,,,1122,1122,1122,1122,1122,1122,1122,1122,,1122,1122,1122",",1122,1122,1122,1122,1122,,,,,,,,,,,,,,,,,,,,1122,,,1122,,,1122,1122",",,1122,,,,,,1122,,,,,,,,,1122,,,,,1122,1122,1122,1122,,1122,1122,1122","1122,,,,,1122,1122,,,,44,44,44,1122,44,1122,1122,1122,44,44,1122,1122",",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,,,,,,44,,,,,,,,,44,,,,,44,44,44,44,,44,44,44,44",",,,,44,44,,,,45,45,45,44,45,44,44,44,45,45,44,44,,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,,,,,,,,,45,,,,,45,45,45,45,,45,45,45,45,,,,,45,45,,,,47,47,47","45,47,45,45,45,47,47,45,45,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47","47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47","47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,",",47,47,47,47,,47,47,47,47,,,,,47,47,,,,48,48,48,47,48,47,47,47,48,48","47,47,,48,,48,48,48,48,48,48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,",",48,,,48,48,48,48,48,48,48,48,,48,48,48,,48,48,48,48,48,,,,,,,,,,,,",",,,,,,,48,,,48,,,48,48,,,48,,,,,,48,,,,,,,,,48,,,,,48,48,48,48,,48,48","48,48,,,,,48,48,,,,50,50,50,48,50,48,48,48,50,50,48,48,,50,,50,50,50","50,50,50,50,,,,,,50,50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50","50,50,50,,50,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50",",,50,,,,,,50,,,,,,,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,,",",50,,50,50,50,64,,50,50,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64","64,,,,707,707,707,707,64,64,,64,64,64,64,64,,,,,707,707,707,,,,,,,,",",,707,707,,,707,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64",",,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,707,707","707,707,,707,707,707,707,,,,64,707,707,64,64,64,64,,64,707,64,707,707","707,,64,66,66,66,66,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,,,66","66,66,66,66,66,66,,,66,,,,,,66,66,,66,66,66,66,66,66,66,66,66,,66,66","66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,66,,,,66",",,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66,66,,,,67,67,67,66,67","66,66,66,67,67,66,66,,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,,,67,,67,,,,67,,,67,,,,,,67,,",",,67,67,67,67,,67,67,67,67,,,,,67,67,,,,68,68,68,67,68,67,67,67,68,68","67,67,,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,,,,,,68,,,,,68,68,68,68,","68,68,68,68,,,,,68,68,,,,71,71,71,68,71,68,68,68,71,71,68,68,,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,71,71,71,,71,71,71,71,,,,,71","71,,,,72,72,72,71,72,71,71,71,72,72,71,71,,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",",,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,75,75,75,72,75","72,72,72,75,75,72,72,,75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75","75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75",",,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75","75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,124,124","124,124,124,,,,124,124,,,,124,,124,124,124,124,124,124,124,,,,,,124","124,124,124,124,124,124,,,124,,,,,,124,124,124,124,124,124,124,124,124","124,124,124,,124,124,124,,124,124,124,124,124,,,,,,,,,,,,,,,,,,,,124",",,124,,,124,124,,,124,,124,,,,124,,,,,,,,,124,,,,,124,124,124,124,,124","124,124,124,,,,,124,124,,,,,,124,124,,124,124,124,,,124,124,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,,,,,,,,,,,,,,,,,,,,129,,,129,,,129","129,,,129,,,,,,129,,,,,,,,,129,,,,,129,129,129,129,,129,129,129,129",",,,,129,129,,,,130,130,130,129,130,129,129,129,130,130,129,129,,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,,,,,,",",,130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,,,131,131,131","130,131,130,130,130,131,131,130,130,,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,,,,,,131,,,,,,,,,131,,,,,131,131,131,131,,131","131,131,131,,,,,131,131,,,,515,515,515,131,515,131,131,131,515,515,131","131,,515,,515,515,515,515,515,515,515,,,,,,515,515,515,515,515,515,515",",,515,,,,,,,515,,,515,515,515,515,515,515,515,515,,515,515,515,,515","515,515,515,515,,,,,,,,,,,,,,,,,,,,515,,,515,,,515,515,,,515,,,,,,515",",,,,,,,,515,,,,,515,515,515,515,,515,515,515,515,,,,,515,515,,,,,,,515",",515,515,515,,,515,515,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,133,133","133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,133,,,,133,,,,,,,",",133,,,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,231,231,231","133,231,133,133,133,231,231,133,133,,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,231,231,231,,231","231,231,231,,,,,231,231,231,,,242,242,242,231,242,231,231,231,242,242","231,231,,242,,242,242,242,242,242,242,242,,,,,,242,242,242,242,242,242","242,,,242,,,,,,,242,,,242,242,242,242,242,242,242,242,,242,242,242,","242,242,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242,,,",",,242,,,,,,,,,242,,,,,242,242,242,242,,242,242,242,242,,,,,242,242,",",,247,247,247,242,247,242,242,242,247,247,242,242,,247,,247,247,247","247,247,247,247,,,,,,247,247,247,247,247,247,247,,,247,,,,,,,247,,,247","247,247,247,247,247,247,247,,247,247,247,,247,247,247,247,247,,,,,,",",,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,,,,,,,,,247,,,,,247","247,247,247,,247,247,247,247,,,,,247,247,,,,248,248,248,247,248,247","247,247,248,248,247,247,,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",",,,,248,248,,,,249,249,249,248,249,248,248,248,249,249,248,248,,249",",249,249,249,249,249,249,249,,,,,,249,249,249,249,249,249,249,,,249",",,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249,,249,249,249","249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,",",,249,,,,,249,249,249,249,,249,249,249,249,,,,,249,249,,,,250,250,250","249,250,249,249,249,250,250,249,249,,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,250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250","250,250,250,,,,,250,250,,,,251,251,251,250,251,250,250,250,251,251,250","250,,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,,,251,251,,,251,,,,,,251",",,,,,,,,251,,,,,251,251,251,251,,251,251,251,251,,,,,251,251,,,,252","252,252,251,252,251,251,251,252,252,251,251,,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,252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252","252,,252,252,252,252,,,,,252,252,,,,253,253,253,252,253,252,252,252","253,253,252,252,,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,,,253,253,,,253",",,,,,253,,,,,,,,,253,,,,,253,253,253,253,,253,253,253,253,,,,,253,253",",,,254,254,254,253,254,253,253,253,254,254,253,253,,254,,254,254,254","254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254,,,,,,,254,,,254","254,254,254,254,254,254,254,,254,254,254,,254,254,254,254,254,,,,,,",",,,,,,,,,,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,,,,254,,,,,254","254,254,254,,254,254,254,254,,,,,254,254,,,,255,255,255,254,255,254","254,254,255,255,254,254,,255,,255,255,255,255,255,255,255,,,,,,255,255","255,255,255,255,255,,,255,,,,,,,255,,,255,255,255,255,255,255,255,255",",255,255,255,,255,255,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255","255,,,255,,,,,,255,,,,,,,,,255,,,,,255,255,255,255,,255,255,255,255",",,,,255,255,,,,256,256,256,255,256,255,255,255,256,256,255,255,,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,,,,,,256,,,,,,",",,256,,,,,256,256,256,256,,256,256,256,256,,,,,256,256,,,,257,257,257","256,257,256,256,256,257,257,256,256,,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,,,,,,257,,,,,,,,,257,,,,,257,257,257,257,,257","257,257,257,,,,,257,257,,,,258,258,258,257,258,257,257,257,258,258,257","257,,258,,258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258",",,258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258","258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258",",,,,,,,,258,,,,,258,258,258,258,,258,258,258,258,,,,,258,258,,,,259","259,259,258,259,258,258,258,259,259,258,258,,259,,259,259,259,259,259","259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259","259,259,259,259,259,,259,259,259,,259,259,259,259,259,,,,,,,,,,,,,,",",,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,,,,259,259,259","259,,259,259,259,259,,,,,259,259,,,,260,260,260,259,260,259,259,259","260,260,259,259,,260,,260,260,260,260,260,260,260,,,,,,260,260,260,260","260,260,260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260","260,,260,260,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260",",,,,,260,,,,,,,,,260,,,,,260,260,260,260,,260,260,260,260,,,,,260,260",",,,261,261,261,260,261,260,260,260,261,261,260,260,,261,,261,261,261","261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261","261,261,261,261,261,261,261,,261,261,261,,261,261,261,261,261,,,,,,",",,,,,,,,,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261","261,261,261,,261,261,261,261,,,,,261,261,,,,262,262,262,261,262,261","261,261,262,262,261,261,,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,,,,,,,,,262,,,,,262,262,262,262,,262,262,262,262",",,,,262,262,,,,263,263,263,262,263,262,262,262,263,263,262,262,,263",",263,263,263,263,263,263,263,,,,,,263,263,263,263,263,263,263,,,263",",,,,,,263,,,263,263,263,263,263,263,263,263,,263,263,263,,263,263,263","263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,",",,263,,,,,263,263,263,263,,263,263,263,263,,,,,263,263,,,,264,264,264","263,264,263,263,263,264,264,263,263,,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,264,264,264,,264","264,264,264,,,,,264,264,,,,265,265,265,264,265,264,264,264,265,265,264","264,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265,265,265,265",",,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265,265,,265","265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265,,,,,,265",",,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265,,,,266","266,266,265,266,265,265,265,266,266,265,265,,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,266,266","266,,266,266,266,266,,,,,266,266,,,,267,267,267,266,267,266,266,266","267,267,266,266,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267","267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267","267,,267,267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267",",,,,,267,,,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267",",,,268,268,268,267,268,267,267,267,268,268,267,267,,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","268,268,268,,268,268,268,268,,,,,268,268,,,,273,273,273,268,273,268","268,268,273,273,268,268,,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,,,273","273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273",",,,,273,273,,,,974,974,974,273,974,273,273,273,974,974,273,273,,974",",974,974,974,974,974,974,974,,,,,,974,974,974,974,974,974,974,,,974",",,,,,,974,,,974,974,974,974,974,974,974,974,,974,974,974,,974,974,974","974,974,,,,,,,,,,,,,,,,,,,,974,,,974,,,974,974,,,974,,,,,,974,,,,,,",",,974,,,,,974,974,974,974,,974,974,974,974,,,,,974,974,,,,973,973,973","974,973,974,974,974,973,973,974,974,,973,,973,973,973,973,973,973,973",",,,,,973,973,973,973,973,973,973,,,973,,,,,,,973,,,973,973,973,973,973","973,973,973,973,973,973,973,,973,973,973,973,973,,,,,,,,,,,,,,,,,,,","973,,,973,,,973,973,,,973,,,,973,,973,,,973,,,,,,973,,,,,973,973,973","973,,973,973,973,973,,,,,973,973,,,,954,954,954,973,954,973,973,973","954,954,973,973,,954,,954,954,954,954,954,954,954,,,,,,954,954,954,954","954,954,954,,,954,,,,,,,954,,,954,954,954,954,954,954,954,954,,954,954","954,,954,954,954,954,954,,,,,,,,,,,,,,,,,,,,954,,,954,,,954,954,,,954",",954,,,,954,,,,,,,,,954,,,,,954,954,954,954,,954,954,954,954,,,,,954","954,,,,949,949,949,954,949,954,954,954,949,949,954,954,,949,,949,949","949,949,949,949,949,,,,,,949,949,949,949,949,949,949,,,949,,,,,,,949",",,949,949,949,949,949,949,949,949,,949,949,949,,949,949,949,949,949",",,,,,,,,,,,,,,,,,,,949,,,949,,,949,949,,,949,,,,,,949,,,,,,,,,949,,",",,949,949,949,949,,949,949,949,949,,,,,949,949,,,,945,945,945,949,945","949,949,949,945,945,949,949,,945,,945,945,945,945,945,945,945,,,,,,945","945,945,945,945,945,945,,,945,,,,,,,945,,,945,945,945,945,945,945,945","945,,945,945,945,,945,945,945,945,945,,,,,,,,,,,,,,,,,,,,945,,,945,",",945,945,,,945,,,,,,945,,,,,,,,,945,,,,,945,945,945,945,,945,945,945","945,,,,,945,945,,,,289,289,289,945,289,945,945,945,289,289,945,945,","289,,289,289,289,289,289,289,289,,,,,,289,289,289,289,289,289,289,,","289,,,,,,,289,,,289,289,289,289,289,289,289,289,,289,289,289,,289,289","289,289,289,,,,,,,,,,,,,,,,,,,,289,,,289,,,289,289,,,289,,,,,,289,,",",,,,,,289,,,,,289,289,289,289,,289,289,289,289,,,,,289,289,,,,917,917","917,289,917,289,289,289,917,917,289,289,,917,,917,917,917,917,917,917","917,,,,,,917,917,917,917,917,917,917,,,917,,,,,,,917,,,917,917,917,917","917,917,917,917,,917,917,917,,917,917,917,917,917,,,,,,,,,,,,,,,,,,",",917,,,917,,,917,917,,,917,,,,,,917,,,,,,,,,917,,,,,917,917,917,917",",917,917,917,917,,,,,917,917,,,,296,296,296,917,296,917,917,917,296","296,917,917,,296,,296,296,296,296,296,296,296,,,,,,296,296,296,296,296","296,296,,,296,,,,,,,296,,,296,296,296,296,296,296,296,296,296,296,296","296,,296,296,296,296,296,,,,,,,,,,,,,,,,,,,,296,,,296,,,296,296,,,296",",296,,296,,296,,,296,,,,,,296,,,,,296,296,296,296,,296,296,296,296,",",,,296,296,,,,297,297,297,296,297,296,296,296,297,297,296,296,,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,","297,,,297,,,,,,297,,,,,297,297,297,297,,297,297,297,297,,,,,297,297",",,,305,305,305,297,305,297,297,297,305,305,297,297,,305,,305,305,305","305,305,305,305,,,,,,305,305,305,305,305,305,305,,,305,,,,,,,305,,,305","305,305,305,305,305,305,305,305,305,305,305,,305,305,305,305,305,,,",",,,,,,,,,,,,,,,,305,,,305,,,305,305,,,305,,305,,305,,305,,,305,,,,,","305,,,,,305,305,305,305,,305,305,305,305,,,,,305,305,305,,,897,897,897","305,897,305,305,305,897,897,305,305,,897,,897,897,897,897,897,897,897",",,,,,897,897,897,897,897,897,897,,,897,,,,,,,897,,,897,897,897,897,897","897,897,897,,897,897,897,,897,897,897,897,897,,,,,,,,,,,,,,,,,,,,897",",,897,,,897,897,,,897,,,,,,897,,,,,,,,,897,,,,,897,897,897,897,,897","897,897,897,,,,,897,897,,,,312,312,312,897,312,897,897,897,312,312,897","897,,312,,312,312,312,312,312,312,312,,,,,,312,312,312,312,312,312,312",",,312,,,,,,,312,,,312,312,312,312,312,312,312,312,,312,312,312,,312","312,312,312,312,,,,,,,,,,,,,,,,,,,,312,,,312,,,312,312,,,312,,,,,,312",",,,,,,,,312,,,,,312,312,312,312,,312,312,312,312,,,,,312,312,,,,314","314,314,312,314,312,312,312,314,314,312,312,,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,,,314,314,,,314,,,,,,314,,,,,,,,,314,,,,,314,314,314","314,,314,314,314,314,,,,,314,314,,,,317,317,317,314,317,314,314,314","317,317,314,314,,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,317,317,317,,317,317,317,317,,,,,317,317",",,,318,318,318,317,318,317,317,317,318,318,317,317,,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","318,318,318,,318,318,318,318,,,,,318,318,,,,,,,318,,318,318,318,,,318","318,323,323,323,323,323,,,,323,323,,,,323,,323,323,323,323,323,323,323",",,,,,323,323,323,323,323,323,323,,,323,,,,,,323,323,,323,323,323,323","323,323,323,323,323,,323,323,323,,323,323,323,323,323,,,,,,,,,,,,,,",",,,,,323,,,323,,,323,323,,,323,,323,,,,323,,,,,,,,,323,,,,,323,323,323","323,,323,323,323,323,,,,,323,323,,,,868,868,868,323,868,323,323,323","868,868,323,323,,868,,868,868,868,868,868,868,868,,,,,,868,868,868,868","868,868,868,,,868,,,,,,,868,,,868,868,868,868,868,868,868,868,,868,868","868,,868,868,868,868,868,,,,,,,,,,,,,,,,,,,,868,,,868,,,868,868,,,868",",,,,,868,,,,,,,,,868,,,,,868,868,868,868,,868,868,868,868,,,,,868,868",",,,867,867,867,868,867,868,868,868,867,867,868,868,,867,,867,867,867","867,867,867,867,,,,,,867,867,867,867,867,867,867,,,867,,,,,,,867,,,867","867,867,867,867,867,867,867,,867,867,867,,867,867,867,867,867,,,,,,",",,,,,,,,,,,,,867,,,867,,,867,867,,,867,,,,,,867,,,,,,,,,867,,,,,867","867,867,867,,867,867,867,867,,,,,867,867,,,,866,866,866,867,866,867","867,867,866,866,867,867,,866,,866,866,866,866,866,866,866,,,,,,866,866","866,866,866,866,866,,,866,,,,,,,866,,,866,866,866,866,866,866,866,866",",866,866,866,,866,866,866,866,866,,,,,,,,,,,,,,,,,,,,866,,,866,,,866","866,,,866,,,,,,866,,,,,,,,,866,,,,,866,866,866,866,,866,866,866,866",",,,,866,866,,,,865,865,865,866,865,866,866,866,865,865,866,866,,865",",865,865,865,865,865,865,865,,,,,,865,865,865,865,865,865,865,,,865",",,,,,,865,,,865,865,865,865,865,865,865,865,,865,865,865,,865,865,865","865,865,,,,,,,,,,,,,,,,,,,,865,,,865,,,865,865,,,865,,,,,,865,,,,,,",",,865,,,,,865,865,865,865,,865,865,865,865,,,,,865,865,,,,852,852,852","865,852,865,865,865,852,852,865,865,,852,,852,852,852,852,852,852,852",",,,,,852,852,852,852,852,852,852,,,852,,,,,,,852,,,852,852,852,852,852","852,852,852,,852,852,852,,852,852,852,852,852,,,,,,,,,,,,,,,,,,,,852",",,852,,,852,852,,,852,,,,,,852,,,,,,,,,852,,,,,852,852,852,852,,852","852,852,852,,,,,852,852,,,,844,844,844,852,844,852,852,852,844,844,852","852,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844",",,844,,,,,,,844,,,844,844,844,844,844,844,844,844,,844,844,844,,844","844,844,844,844,,,,,,,,,,,,,,,,,,,,844,,,844,,,844,844,,,844,,,,,,844",",,,,,,,,844,,,,,844,844,844,844,,844,844,844,844,,,,,844,844,,,,824","824,824,844,824,844,844,844,824,824,844,844,,824,,824,824,824,824,824","824,824,,,,,,824,824,824,824,824,824,824,,,824,,,,,,,824,,,824,824,824","824,824,824,824,824,,824,824,824,,824,824,824,824,824,,,,,,,,,,,,,,",",,,,,824,,,824,,,824,824,,,824,,,,,,824,,,,,,,,,824,,,,,824,824,824","824,,824,824,824,824,,,,,824,824,,,,359,359,359,824,359,824,824,824","359,359,824,824,,359,,359,359,359,359,359,359,359,,,,,,359,359,359,359","359,359,359,,,359,,,,,,,359,,,359,359,359,359,359,359,359,359,,359,359","359,,359,359,359,359,359,,,,,,,,,,,,,,,,,,,,359,,,359,,,359,359,,,359",",,,,,359,,,,,,,,,359,,,,,359,359,359,359,,359,359,359,359,,,,,359,359",",,,361,361,361,359,361,359,359,359,361,361,359,359,,361,,361,361,361","361,361,361,361,,,,,,361,361,361,361,361,361,361,,,361,,,,,,,361,,,361","361,361,361,361,361,361,361,,361,361,361,,361,361,361,361,361,,,,,,",",,,,,,,,,,,,,361,,,361,361,,361,361,,,361,,,,,,361,,,,,,,,,361,,,,,361","361,361,361,,361,361,361,361,,,,,361,361,,,,779,779,779,361,779,361","361,361,779,779,361,361,,779,,779,779,779,779,779,779,779,,,,,,779,779","779,779,779,779,779,,,779,,,,,,,779,,,779,779,779,779,779,779,779,779",",779,779,779,,779,779,779,779,779,,,,,,,,,,,,,,,,,,,,779,,,779,,,779","779,,,779,,,,,,779,,,,,,,,,779,,,,,779,779,779,779,,779,779,779,779",",,,,779,779,,,,765,765,765,779,765,779,779,779,765,765,779,779,,765",",765,765,765,765,765,765,765,,,,,,765,765,765,765,765,765,765,,,765",",,,,,,765,,,765,765,765,765,765,765,765,765,,765,765,765,,765,765,765","765,765,,,,,,,,,,,,,,,,,,,,765,,,765,,,765,765,,,765,,765,,,,765,,,",",,,,,765,,,,,765,765,765,765,,765,765,765,765,,,,,765,765,,,,745,745","745,765,745,765,765,765,745,745,765,765,,745,,745,745,745,745,745,745","745,,,,,,745,745,745,745,745,745,745,,,745,,,,,,,745,,,745,745,745,745","745,745,745,745,,745,745,745,,745,745,745,745,745,,,,,,,,,,,,,,,,,,",",745,,,745,,,745,745,,,745,,,,,,745,,,,,,,,,745,,,,,745,745,745,745",",745,745,745,745,,,,,745,745,,,,742,742,742,745,742,745,745,745,742","742,745,745,,742,,742,742,742,742,742,742,742,,,,,,742,742,742,742,742","742,742,,,742,,,,,,,742,,,742,742,742,742,742,742,742,742,,742,742,742",",742,742,742,742,742,,,,,,,,,,,,,,,,,,,,742,,,742,,,742,742,,,742,,",",,,742,,,,,,,,,742,,,,,742,742,742,742,,742,742,742,742,,,,,742,742",",,,384,384,384,742,384,742,742,742,384,384,742,742,,384,,384,384,384","384,384,384,384,,,,,,384,384,384,384,384,384,384,,,384,,,,,,,384,,,384","384,384,384,384,384,384,384,,384,384,384,,384,384,384,384,384,,,,,,",",,,,,,,,,,,,,384,,,384,,,384,384,,,384,,,,,,384,,,,,,,,,384,,,,,384","384,384,384,,384,384,384,384,,,,,384,384,,,,733,733,733,384,733,384","384,384,733,733,384,384,,733,,733,733,733,733,733,733,733,,,,,,733,733","733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733,733,733,733","733,733,733,733,,733,733,733,733,733,,,,,,,,,,,,,,,,,,,,733,,,733,,","733,733,,,733,,733,,733,,733,,,733,,,,,,733,,,,,733,733,733,733,,733","733,733,733,,,,,733,733,,,,685,685,685,733,685,733,733,733,685,685,733","733,,685,,685,685,685,685,685,685,685,,,,,,685,685,685,685,685,685,685",",,685,,,,,,,685,,,685,685,685,685,685,685,685,685,,685,685,685,,685","685,685,685,685,,,,,,,,,,,,,,,,,,,,685,,,685,,,685,685,,,685,,,,,,685",",,,,,,,,685,,,,,685,685,685,685,,685,685,685,685,,,,,685,685,,,,405","405,405,685,405,685,685,685,405,405,685,685,,405,,405,405,405,405,405","405,405,,,,,,405,405,405,405,405,405,405,,,405,,,,,,,405,,,405,405,405","405,405,405,405,405,,405,405,405,,405,405,405,405,405,,,,,,,,,,,,,,",",,,,,405,,,405,,,405,405,,,405,,,,,,405,,,,,,,,,405,,,,,405,405,405","405,,405,405,405,405,,,,,405,405,,,,684,684,684,405,684,405,405,405","684,684,405,405,,684,,684,684,684,684,684,684,684,,,,,,684,684,684,684","684,684,684,,,684,,,,,,,684,,,684,684,684,684,684,684,684,684,,684,684","684,,684,684,684,684,684,,,,,,,,,,,,,,,,,,,,684,,,684,,,684,684,,,684",",,,,,684,,,,,,,,,684,,,,,684,684,684,684,,684,684,684,684,,,,,684,684",",,,680,680,680,684,680,684,684,684,680,680,684,684,,680,,680,680,680","680,680,680,680,,,,,,680,680,680,680,680,680,680,,,680,,,,,,,680,,,680","680,680,680,680,680,680,680,,680,680,680,,680,680,680,680,680,,,,,,",",,,,,,,,,,,,,680,,,680,,,680,680,,,680,,,,,,680,,,,,,,,,680,,,,,680","680,680,680,,680,680,680,680,,,,,680,680,,,,679,679,679,680,679,680","680,680,679,679,680,680,,679,,679,679,679,679,679,679,679,,,,,,679,679","679,679,679,679,679,,,679,,,,,,,679,,,679,679,679,679,679,679,679,679",",679,679,679,,679,679,679,679,679,,,,,,,,,,,,,,,,,,,,679,,,679,,,679","679,,,679,,,,,,679,,,,,,,,,679,,,,,679,679,679,679,,679,679,679,679",",,,,679,679,,,,678,678,678,679,678,679,679,679,678,678,679,679,,678",",678,678,678,678,678,678,678,,,,,,678,678,678,678,678,678,678,,,678",",,,,,,678,,,678,678,678,678,678,678,678,678,678,678,678,678,,678,678","678,678,678,,,,,,,,,,,,,,,,,,,,678,,,678,,,678,678,,,678,,,,678,,678",",,678,,,,,,678,,,,,678,678,678,678,,678,678,678,678,,,,,678,678,,,,677","677,677,678,677,678,678,678,677,677,678,678,,677,,677,677,677,677,677","677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,,,677,,,677,677,677","677,677,677,677,677,677,677,677,677,,677,677,677,677,677,,,,,,,,,,,",",,,,,,,,677,,,677,,,677,677,,,677,,677,,677,,677,,,677,,,,,,677,,,,","677,677,677,677,,677,677,677,677,,,,,677,677,,,,674,674,674,677,674","677,677,677,674,674,677,677,,674,,674,674,674,674,674,674,674,,,,,,674","674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674,674,674,674,674","674,,674,674,674,,674,674,674,674,674,,,,,,,,,,,,,,,,,,,,674,,,674,",",674,674,,,674,,,,,,674,,,,,,,,,674,,,,,674,674,674,674,,674,674,674","674,,,,,674,674,,,,,,,674,,674,674,674,,,674,674,673,673,673,673,673",",,,673,673,,,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673","673,673,673,,,673,,,,,,673,673,,673,673,673,673,673,673,673,673,673",",673,673,673,,673,673,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673","673,,,673,,673,,,,673,,,,,,,,,673,,,,,673,673,673,673,,673,673,673,673",",,,,673,673,,,,670,670,670,673,670,673,673,673,670,670,673,673,,670",",670,670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,,,670",",,,,,,670,,,670,670,670,670,670,670,670,670,670,670,670,670,,670,670","670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670,670,,,670,,670,,670,","670,,,670,,,,,,670,,,,,670,670,670,670,,670,670,670,670,,,,,670,670",",,,669,669,669,670,669,670,670,670,669,669,670,670,,669,,669,669,669","669,669,669,669,,,,,,669,669,669,669,669,669,669,,,669,,,,,,,669,,,669","669,669,669,669,669,669,669,,669,669,669,,669,669,669,669,669,,,,,,",",,,,,,,,,,,,,669,,,669,,,669,669,,,669,,,,,,669,,,,,,,,,669,,,,,669","669,669,669,,669,669,669,669,,,,,669,669,,,,668,668,668,669,668,669","669,669,668,668,669,669,,668,,668,668,668,668,668,668,668,,,,,,668,668","668,668,668,668,668,,,668,,,,,,,668,,,668,668,668,668,668,668,668,668",",668,668,668,,668,668,668,668,668,,,,,,,,,,,,,,,,,,,,668,,,668,,,668","668,,,668,,668,,,,668,,,,,,,,,668,,,,,668,668,668,668,,668,668,668,668",",,,,668,668,,,,,,,668,,668,668,668,,,668,668,666,666,666,666,666,,,","666,666,,,,666,,666,666,666,666,666,666,666,,,,,,666,666,666,666,666","666,666,,,666,,,,,,666,666,,666,666,666,666,666,666,666,666,666,,666","666,666,,666,666,666,666,666,,,,,,,,,,,,,,,,,,,,666,,,666,,,666,666",",,666,,666,,,,666,,,,,,,,,666,,,,,666,666,666,666,,666,666,666,666,",",,,666,666,,,,434,434,434,666,434,666,666,666,434,434,666,666,,434,","434,434,434,434,434,434,434,,,,,,434,434,434,434,434,434,434,,,434,",",,,,,434,,,434,434,434,434,434,434,434,434,,434,434,434,,434,434,434","434,434,,,,,,,,,,,,,,,,,,,,434,,,434,,,434,434,,,434,,,,,,434,,,,,,",",,434,,,,,434,434,434,434,,434,434,434,434,,,,,434,434,,,,635,635,635","434,635,434,434,434,635,635,434,434,,635,,635,635,635,635,635,635,635",",,,,,635,635,635,635,635,635,635,,,635,,,,,,,635,,,635,635,635,635,635","635,635,635,635,635,635,635,,635,635,635,635,635,,,,,,,,,,,,,,,,,,,","635,,,635,,,635,635,,,635,,635,,635,,635,,,635,,,,,,635,,,,,635,635","635,635,,635,635,635,635,,,,,635,635,,,,625,625,625,635,625,635,635","635,625,625,635,635,,625,,625,625,625,625,625,625,625,,,,,,625,625,625","625,625,625,625,,,625,,,,,,,625,,,625,625,625,625,625,625,625,625,625","625,625,625,,625,625,625,625,625,,,,,,,,,,,,,,,,,,,,625,,,625,,,625","625,,,625,,625,,625,,625,,,625,,,,,,625,,,,,625,625,625,625,,625,625","625,625,,,,,625,625,,,,624,624,624,625,624,625,625,625,624,624,625,625",",624,,624,624,624,624,624,624,624,,,,,,624,624,624,624,624,624,624,",",624,,,,,,,624,,,624,624,624,624,624,624,624,624,,624,624,624,,624,624","624,624,624,,,,,,,,,,,,,,,,,,,,624,,,624,,,624,624,,,624,,624,,,,624",",,,,,,,,624,,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,,,611","611,611,624,611,624,624,624,611,611,624,624,,611,,611,611,611,611,611","611,611,,,,,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611","611,611,611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,",",,,,,,,,611,,,611,,,611,611,,,611,,,,,,611,,,611,,,,,,611,,,,,611,611","611,611,,611,611,611,611,,,,,611,611,,,,608,608,608,611,608,611,611","611,608,608,611,611,,608,,608,608,608,608,608,608,608,,,,,,608,608,608","608,608,608,608,,,608,,,,,,,608,,,608,608,608,608,608,608,608,608,608","608,608,608,,608,608,608,608,608,,,,,,,,,,,,,,,,,,,,608,,,608,,,608","608,,,608,,608,,,,608,,,608,,,,,,608,,,,,608,608,608,608,,608,608,608","608,,,,,608,608,,,,,,,608,,608,608,608,458,,608,608,,,,458,458,458,",",458,458,458,,458,,,,,,,,458,458,458,458,,,,,,,,,458,458,,458,458,458","458,458,,,,,,,,,,,,,,,,,,,,,,,458,458,458,458,458,458,458,458,458,458","458,458,458,458,,,458,458,458,,,458,,458,458,,,458,458,,458,,458,,458",",458,458,,458,458,458,458,458,,458,458,458,,,,,,,,,,,,,,458,,,458,458",",458,,458,602,602,602,,602,,458,,602,602,,,,602,,602,602,602,602,602","602,602,,,,,,602,602,602,602,602,602,602,,,602,,,,,,,602,,,602,602,602","602,602,602,602,602,,602,602,602,,602,602,602,602,602,,,,,,,,,,,,,,",",,,,,602,,,602,,,602,602,,,602,,,,,,602,,,,,,,,,602,,,,,602,602,602","602,,602,602,602,602,,,,,602,602,,,,,,,602,,602,602,602,467,,602,602",",,,467,467,467,,,467,467,467,,467,,,,,,,,467,467,467,467,467,,,,,,,","467,467,,467,467,467,467,467,,,,,,,,,,,,,,,,,,,,,,,467,467,467,467,467","467,467,467,467,467,467,467,467,467,,,467,467,467,,,467,,,467,,,467","467,,467,,467,,467,,467,467,,467,467,467,467,467,,467,467,467,,,,,,",",,,,,,,467,,,467,467,467,467,,467,468,467,,,,,467,468,468,468,,,468","468,468,,468,,,,,,,,468,468,468,468,468,,,,,,,,468,468,,468,468,468","468,468,,,,,,,,,,,,,,,,,,,,,,,468,468,468,468,468,468,468,468,468,468","468,468,468,468,,,468,468,468,,,468,,,468,,,468,468,,468,,468,,468,","468,468,,468,468,468,468,468,,468,468,468,,,,,,,,,,,,,,468,,,468,468","468,468,,468,,468,,588,588,588,468,588,,,,588,588,,,,588,,588,588,588","588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,,,588,,,588","588,588,588,588,588,588,588,,588,588,588,,588,588,588,588,588,,,,,,",",,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,588,,,,,,,,,588,,,,,588","588,588,588,,588,588,588,588,,,,,588,588,,,,562,562,562,588,562,588","588,588,562,562,588,588,,562,,562,562,562,562,562,562,562,,,,,,562,562","562,562,562,562,562,,,562,,,,,,,562,,,562,562,562,562,562,562,562,562",",562,562,562,,562,562,562,562,562,,,,,,,,,,,,,,,,,,,,562,,,562,,,562","562,,,562,,,,,,562,,,,,,,,,562,,,,,562,562,562,562,,562,562,562,562",",,,,562,562,,,,561,561,561,562,561,562,562,562,561,561,562,562,,561",",561,561,561,561,561,561,561,,,,,,561,561,561,561,561,561,561,,,561",",,,,,,561,,,561,561,561,561,561,561,561,561,,561,561,561,,561,561,561","561,561,,,,,,,,,,,,,,,,,,,,561,,,561,,,561,561,,,561,,,,,,561,,,,,,",",,561,,,,,561,561,561,561,,561,561,561,561,,,,,561,561,,,,477,477,477","561,477,561,561,561,477,477,561,561,,477,,477,477,477,477,477,477,477",",,,,,477,477,477,477,477,477,477,,,477,,,,,,,477,,,477,477,477,477,477","477,477,477,477,477,477,477,,477,477,477,477,477,,,,,,,,,,,,,,,,,,,","477,,,477,,,477,477,,,477,,477,,477,,477,,,477,,,,,,477,,,,,477,477","477,477,,477,477,477,477,,,,,477,477,,,,558,558,558,477,558,477,477","477,558,558,477,477,,558,,558,558,558,558,558,558,558,,,,,,558,558,558","558,558,558,558,,,558,,,,,,,558,,,558,558,558,558,558,558,558,558,,558","558,558,,558,558,558,558,558,,,,,,,,,,,,,,,,,,,,558,,,558,,,558,558",",,558,,,,,,558,,,,,,,,,558,,,,,558,558,558,558,,558,558,558,558,,,,","558,558,,,,479,479,479,558,479,558,558,558,479,479,558,558,,479,,479","479,479,479,479,479,479,,,,,,479,479,479,479,479,479,479,,,479,,,,,",",479,,,479,479,479,479,479,479,479,479,,479,479,479,,479,479,479,479","479,,,,,,,,,,,,,,,,,,,,479,,,479,,,479,479,,,479,,,,,,479,,,,,,,,,479",",,,,479,479,479,479,,479,479,479,479,,,,,479,479,,,,480,480,480,479","480,479,479,479,480,480,479,479,,480,,480,480,480,480,480,480,480,,",",,,480,480,480,480,480,480,480,,,480,,,,,,,480,,,480,480,480,480,480","480,480,480,,480,480,480,,480,480,480,480,480,,,,,,,,,,,,,,,,,,,,480",",,480,,,480,480,,,480,,,,,,480,,,,,,,,,480,,,,,480,480,480,480,,480","480,480,480,,,,,480,480,,,,481,481,481,480,481,480,480,480,481,481,480","480,,481,,481,481,481,481,481,481,481,,,,,,481,481,481,481,481,481,481",",,481,,,,,,,481,,,481,481,481,481,481,481,481,481,,481,481,481,,481","481,481,481,481,,,,,,,,,,,,,,,,,,,,481,,,481,,,481,481,,,481,,,,,,481",",,,,,,,,481,,,,,481,481,481,481,,481,481,481,481,,,,,481,481,,,,555","555,555,481,555,481,481,481,555,555,481,481,,555,,555,555,555,555,555","555,555,,,,,,555,555,555,555,555,555,555,,,555,,,,,,,555,,,555,555,555","555,555,555,555,555,,555,555,555,,555,555,555,555,555,,,,,,,,,,,,,,",",,,,,555,,,555,,,555,555,,,555,,,,,,555,,,,,,,,,555,,,,,555,555,555","555,,555,555,555,555,,,,,555,555,,,,545,545,545,555,545,555,555,555","545,545,555,555,,545,,545,545,545,545,545,545,545,,,,,,545,545,545,545","545,545,545,,,545,,,,,,,545,,,545,545,545,545,545,545,545,545,545,545","545,545,,545,545,545,545,545,,,,,,,,,,,,,,,,,,,,545,,,545,,,545,545",",,545,,545,,545,,545,,,545,,,,,,545,,,,,545,545,545,545,,545,545,545","545,,,,,545,545,,,,,,,545,,545,545,545,,,545,545,535,535,535,535,535",",,,535,535,,,,535,,535,535,535,535,535,535,535,,,,,,535,535,535,535","535,535,535,,,535,,,,,,535,535,535,535,535,535,535,535,535,535,535,535",",535,535,535,,535,535,535,535,535,,,,,,,,,,,,,,,,,,,,535,,,535,,,535","535,,,535,,535,,,,535,,,,,,,,,535,,,,,535,535,535,535,,535,535,535,535",",,,,535,535,,,,,,535,535,,535,535,535,,,535,535,529,529,529,,529,,,","529,529,,,,529,,529,529,529,529,529,529,529,,,,,,529,529,529,529,529","529,529,,,529,,,,,,,529,,,529,529,529,529,529,529,529,529,,529,529,529",",529,529,529,529,529,,,,,,,,,,,,,,,,,,,,529,,,529,,,529,529,,,529,,",",,,529,,,,,,,,,529,,,,,529,529,529,529,,529,529,529,529,,,,,529,529",",,,527,527,527,529,527,529,529,529,527,527,529,529,,527,,527,527,527","527,527,527,527,,,,,,527,527,527,527,527,527,527,,,527,,,,,,,527,,,527","527,527,527,527,527,527,527,527,527,527,527,,527,527,527,527,527,,,",",,,,,,,,,,,,,,,,527,,,527,,,527,527,,,527,,,,527,,527,,,527,,,,,,527",",,,,527,527,527,527,,527,527,527,527,,,,,527,527,,,,525,525,525,527","525,527,527,527,525,525,527,527,,525,,525,525,525,525,525,525,525,,",",,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525,525,525,525,525","525,525,525,525,525,525,525,,525,525,525,525,525,,,,,,,,,,,,,,,,,,,","525,,,525,,,525,525,,,525,,525,,525,,525,,,525,,,,,,525,,,,,525,525","525,525,,525,525,525,525,,,,,525,525,,,,219,219,219,525,219,525,525","525,219,219,525,525,,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,,,219,219",",,219,,219,,,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,",",,,219,219,,,,220,220,220,219,220,219,219,219,220,220,219,219,,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,,,220,220,,,220,,220,,,,220,,,",",,,,,220,,,,,220,220,220,220,,220,220,220,220,,,,,220,220,,,,221,221","221,220,221,220,220,220,221,221,220,220,,221,,221,221,221,221,221,221","221,,,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221","221,221,221,221,,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,",",221,,,221,,,221,221,,,221,,,,,,221,,,,,,,,,221,,,,,221,221,221,221",",221,221,221,221,,,,,221,221,,,,222,222,222,221,222,221,221,221,222","222,221,221,,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,222,222,222,,222,222,222,222,,,,,222,222",",,,223,223,223,222,223,222,222,222,223,223,222,222,,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","223,223,223,,223,223,223,223,,,,,223,223,,,,224,224,224,223,224,223","223,223,224,224,223,223,,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,224,,,224,,224,,224,,224,,,224,,,,,,224,,,,,224,224,224,224,,224","224,224,224,,,,,224,224,,,,229,229,229,224,229,224,224,224,229,229,224","224,,229,,229,229,229,229,229,229,229,,,,,,229,229,229,229,229,229,229",",,229,,,,,,,229,,,229,229,229,229,229,229,229,229,,229,229,229,,229","229,229,229,229,,,,,,,,,,,,,,,,,,,,229,,,229,,,229,229,,,229,,,,,,229",",,,,,,,,229,,,,,229,229,229,229,,229,229,229,229,,,,,229,229,,,,230","230,230,229,230,229,229,229,230,230,229,229,,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,230,230","230,,230,230,230,230,,,,,230,230,,,,1023,1023,1023,230,1023,230,230","230,1023,1023,230,230,,1023,,1023,1023,1023,1023,1023,1023,1023,,,,",",1023,1023,1023,1023,1023,1023,1023,,,1023,,,,,,,1023,,,1023,1023,1023","1023,1023,1023,1023,1023,,1023,1023,1023,,1023,1023,,,1023,,,,,,,,,",",,,,,,,,,,1023,,,1023,,,1023,1023,,,1023,,,,,,,,,,,,,,,,,,,,1023,1023","1023,1023,,1023,1023,1023,1023,,,,,1023,1023,,,,76,76,76,1023,76,1023","1023,1023,76,76,,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76",",,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,",",,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,","76,76,76,76,,,,,76,76,,,,748,748,748,76,748,76,76,76,748,748,,,,748",",748,748,748,748,748,748,748,,,,,,748,748,748,748,748,748,748,,,748",",,,,,,748,,,748,748,748,748,748,748,748,748,,748,748,748,,748,748,,","748,,,,,,,,,,,,,,,,,,,,748,,,748,,,748,748,,,748,,,,,,,,,,,,,,,,,,,","748,748,748,748,,748,748,748,748,,,,,748,748,,,,759,759,759,748,759","748,748,748,759,759,,,,759,,759,759,759,759,759,759,759,,,,,,759,759","759,759,759,759,759,,,759,,,,,,,759,,,759,759,759,759,759,759,759,759",",759,759,759,,759,759,,,759,,,,,,,,,,,,,,,,,,,,759,,,759,,,759,759,",",759,,,,,,,,,,,,,,,,,,,,759,759,759,759,,759,759,759,759,,,,,759,759",",,,350,350,350,759,350,759,759,759,350,350,,,,350,,350,350,350,350,350","350,350,,,,,,350,350,350,350,350,350,350,,,350,,,,,,,350,,,350,350,350","350,350,350,350,350,,350,350,350,,350,350,,,350,,,,,,,,,,,,,,,,,,,,350",",,350,,,350,350,,,350,,,,,,,,,,,,,,,,,,,,350,350,350,350,,350,350,350","350,,,,,350,350,,,,37,37,37,350,37,350,350,350,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,,37,,,,,,,,,,,,,,,,,,37,37,37,37,,37,37,37,37,,,,,37,37,,,,552,552","552,37,552,37,37,37,552,552,,,,552,,552,552,552,552,552,552,552,,,,",",552,552,552,552,552,552,552,,,552,,,,,,,552,,,552,552,552,552,552,552","552,552,,552,552,552,,552,552,,,552,,,,,,,,,,,,,,,,,,,,552,,,552,,,552","552,,,552,,,,,,,,,,,,,,,,,,,,552,552,552,552,,552,552,552,552,,,,,552","552,,,,1103,1103,1103,552,1103,552,552,552,1103,1103,,,,1103,,1103,1103","1103,1103,1103,1103,1103,,,,,,1103,1103,1103,1103,1103,1103,1103,,,1103",",,,,,,1103,,,1103,1103,1103,1103,1103,1103,1103,1103,,1103,1103,1103",",1103,1103,,,1103,,,,,,,,,,,,,,,,,,,,1103,,,1103,,,1103,1103,,,1103",",,,,,,,,,,,,,,,,,,,1103,1103,1103,1103,,1103,1103,1103,1103,,,,,1103","1103,,,,77,77,77,1103,77,1103,1103,1103,77,77,,,,77,,77,77,77,77,77","77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77","77,,77,77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,",",,,,,,,,,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,543,543,543","77,543,77,77,77,543,543,,,,543,,543,543,543,543,543,543,543,,,,,,543","543,543,543,543,543,543,,,543,,,,,,,543,,,543,543,543,543,543,543,543","543,,543,543,543,,543,543,,,543,,,,,,,,,,,,,,,,,,,,543,,,543,,,543,543",",,543,,,,,,,,,,,,,,,,,,,,543,543,543,543,,543,543,543,543,,,,,543,543",",,,78,78,78,543,78,543,543,543,78,78,,,,78,,78,78,78,78,78,78,78,,,",",,78,78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78","78,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,",",,,,,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,38,38,38,78,38,78,78,78","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,,,777,,777,777,777,777,777,,,,,,,,,777,,38","38,38,38,,38,38,38,38,,,,,38,38,,,,38,,777,38,,38,38,38,331,331,331",",331,777,777,,331,331,777,,,331,,331,331,331,331,331,331,331,,,,,,331","331,331,331,331,331,331,,,331,,,,,,,331,,,331,331,331,331,331,331,331","331,,331,331,331,,331,331,,,331,,,,,,,,,,,,,,,,,,,,331,,,331,,,331,331",",,331,,,1043,,1043,1043,1043,1043,1043,,,,,,,,,1043,,331,331,331,331",",331,331,331,331,,,,,331,331,,,,331,,1043,331,,331,331,331,1033,1033","1033,,1033,1043,1043,,1033,1033,1043,,,1033,,1033,1033,1033,1033,1033","1033,1033,,,,,,1033,1033,1033,1033,1033,1033,1033,,,1033,,,,,,,1033",",,1033,1033,1033,1033,1033,1033,1033,1033,,1033,1033,1033,,1033,1033",",,1033,,,,,,,,,,,,,,,,,,,,1033,,,1033,,,1033,1033,,,1033,,,,,,,,,,,",",,,,,,,,1033,1033,1033,1033,,1033,1033,1033,1033,,,,,1033,1033,,,,,",",1033,,1033,1033,1033,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,,,,,,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,11,11,11,11","11,,,11,11,,,,,,,,,,,,,,11,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,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,10,10,10,10,10","10,10,10,,,10,10,,,,,,,,,,,,,,10,664,664,664,664,664,664,664,664,664","664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,,,,664,664","664,664,664,664,664,664,664,664,,,,,,664,664,664,664,664,664,664,664","664,,,664,,,,,,,,664,664,,664,664,664,664,664,664,664,,,664,664,,,,664","664,664,664,,,,,,,,,,,,,,664,664,,664,664,664,664,664,664,664,664,664","664,664,664,,,664,664,,,,,,,,,,,,,,664,425,425,425,425,425,425,425,425","425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,,,,425","425,425,425,425,425,425,425,425,425,,,,,,425,425,425,425,425,425,425","425,425,,,425,,,,,,,,425,425,,425,425,425,425,425,425,425,,,425,425",",,,425,425,425,425,,,,,,,,,,,,,,425,425,,425,425,425,425,425,425,425","425,425,425,425,425,,,425,425,,,,,,,,,,,,,,425,24,24,24,24,24,24,24","24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,,,,24,24,24,24,24","24,24,24,24,24,,,,,,24,24,24,24,24,24,24,24,24,24,24,24,,24,,,,,,24","24,,24,24,24,24,24,24,24,,,24,24,,,,24,24,24,24,,,,,,24,,,,,,,,24,24",",24,24,24,24,24,24,24,24,24,24,24,24,,,24,1001,1001,1001,1001,,,,,,",",,,,,,1001,1001,1001,1001,,,367,1001,367,367,367,367,367,1001,1001,",",1001,,,,367,,,,,,,,,,,,,,,,1001,,,1001,,,367,1001,,,1001,,,,,367,367","367,367,,,,367,,,,1001,,,,1001,1001,1001,1001,,1001,1001,1001,1001,",",,,1001,1001,1084,1084,1084,1084,,,1001,,1001,1001,1001,,,1001,1001",",1084,1084,1084,1084,,,793,1084,793,793,793,793,793,1084,1084,,,1084",",,,793,,,,,,,,,,,,,,,,1084,,,1084,,,793,1084,,,1084,,,,,793,793,793","793,,,,793,,,,1084,,,,1084,1084,1084,1084,,1084,1084,1084,1084,,,,,1084","1084,985,985,985,985,,,1084,,1084,1084,1084,,,1084,1084,,985,985,985","985,,,1212,985,1212,1212,1212,1212,1212,985,985,,,985,,,,1212,,,,,,",",,,,,,,,,985,,,985,,,1212,985,,,985,,,,,,,1212,1212,,,,1212,,,,985,",",,985,985,985,985,,985,985,985,985,,,,,985,985,1138,1138,1138,1138,",",985,,985,985,985,,,985,985,,1138,1138,1138,1138,,,775,1138,775,775","775,775,775,1138,1138,,,1138,,,,775,,,,,,,,,,,,,,,,1138,,,1138,,,775","1138,,,1138,,,,,775,775,775,775,,,,775,,,,1138,,,,1138,1138,1138,1138",",1138,1138,1138,1138,,,,,1138,1138,1200,1200,1200,1200,,,1138,,1138","1138,1138,,,1138,1138,,1200,1200,1200,1200,,,1041,1200,1041,1041,1041","1041,1041,1200,1200,,,1200,,,,1041,,,,,,,,,,,,,,,,1200,,,1200,,,1041","1200,,,1200,,,,,,,1041,1041,,,,1041,,,,1200,,,,1200,1200,1200,1200,","1200,1200,1200,1200,,,,,1200,1200,1140,1140,1140,1140,,,1200,,1200,1200","1200,,,1200,1200,,1140,1140,1140,1140,,,1038,1140,1038,1038,1038,1038","1038,1140,1140,,,1140,,,,1038,,,,,,,,,,,,,,,,1140,,,1140,,,1038,1140",",,1140,,1140,,,,,1038,1038,,,,1038,,,,1140,,,,1140,1140,1140,1140,,1140","1140,1140,1140,,,,,1140,1140,1176,1176,1176,1176,,,1140,,1140,1140,1140",",,1140,1140,,1176,1176,1176,1176,,,1159,1176,1159,1159,1159,1159,1159","1176,1176,,,1176,,,,1159,,,,,,,,,,,,,,,,1176,,,1176,,,1159,1176,,,1176",",,,,,,1159,1159,,,,1159,,,,1176,,,,1176,1176,1176,1176,,1176,1176,1176","1176,,,,,1176,1176,,,,,,,1176,,1176,1176,1176,,,1176,1176,725,725,725","725,725,725,725,725,725,725,725,725,725,725,725,725,725,725,725,725","725,725,725,725,,,,725,725,725,725,725,725,725,725,725,725,,,,,,725","725,725,725,725,725,725,725,725,,,725,,,,,,,,725,725,,725,725,725,725","725,725,725,,,725,725,,,,725,725,725,725,,,,,,,,,,,,,,725,725,,725,725","725,725,725,725,725,725,725,725,725,725,,,725,953,953,953,953,,,1099",",1099,1099,1099,1099,1099,,,,953,953,953,953,,1099,,953,953,,,,,953","953,,,953,953,,,,,,,,,1099,,,,,,,,,,953,1099,1099,953,,,1099,953,,,953",",953,,,,,,,953,,,,,,,953,,,,953,953,953,953,,953,953,953,953,,,,,953","953,701,701,701,701,,,953,,953,953,953,,,953,953,,701,701,701,701,,","1036,701,1036,1036,1036,1036,1036,701,701,,,701,,,,1036,,,,,,,,,,,,",",,,701,,,701,,,1036,701,,,701,,701,,,1036,1036,1036,1036,,,,1036,,,","701,,,,701,701,701,701,,701,701,701,701,,,,,701,701,701,889,889,889","889,,701,,701,701,701,,,701,701,,,889,889,889,889,,,1094,889,1094,1094","1094,1094,1094,889,889,,,889,,,,1094,,,,,,,,,,,,,,,,889,,,889,,,1094","889,,,889,,,,,1094,1094,1094,1094,,,,1094,,,,889,,,,889,889,889,889",",889,889,889,889,,,,,889,889,482,482,482,482,,,889,,889,889,889,,,889","889,,482,482,482,482,,,1097,482,1097,1097,1097,1097,1097,482,482,,,482",",,,1097,,,,,,,,,,,,,,,,482,,,482,,,1097,482,,,482,,,,,1097,1097,1097","1097,,,,1097,,,,482,,,,482,482,482,482,,482,482,482,482,,,,,482,482","881,881,881,881,,,482,,482,482,482,,,482,482,,881,881,881,881,,,1186","881,1186,1186,1186,1186,1186,881,881,,,881,,,,1186,,,,,,,,,,,,,,,,881",",,881,,,1186,881,,,881,,881,,,,,1186,1186,,,,1186,,,,881,,,,881,881","881,881,,881,881,881,881,,,,,881,881,875,875,875,875,,,881,,881,881","881,,,881,881,,875,875,875,875,,,,875,875,,,,,875,875,,,875,875,,,,",",,,,,,,,,,,,,,875,,,875,,,,875,,,875,,875,,,,,,,875,,,,,,,875,,,,875","875,875,875,,875,875,875,875,,,,,875,875,874,874,874,874,,,875,,875","875,875,,,875,875,,874,874,874,874,,,,874,874,,,,,874,874,,,874,874",",,,,,,,,,,,,,,,,,,874,,,874,,,,874,,,874,,874,,,,,,,874,,,,,,,874,,",",874,874,874,874,,874,874,874,874,,,,,874,874,871,871,871,871,,,874",",874,874,874,,,874,874,,871,871,871,871,,,1184,871,1184,1184,1184,1184","1184,871,871,,,871,,,,1184,,,,,,,,,,,,,,,,871,,,871,,,1184,871,,,871",",,,,,,1184,1184,,,,1184,,,,871,,,,871,871,871,871,,871,871,871,871,",",,,871,871,483,483,483,483,,,871,,871,871,871,,,871,871,,483,483,483","483,,,1182,483,1182,1182,1182,1182,1182,483,483,,,483,,,,1182,,,,,,",",,,,,,,,,483,,,483,,,1182,483,,,483,,,,,,,1182,1182,,,,1182,,,,483,",",,483,483,483,483,,483,483,483,483,,,,,483,483,1124,1124,1124,1124,",",483,,483,483,483,,,483,483,,1124,1124,1124,1124,,,,1124,,,,,,1124,1124",",,1124,,,,,,,,708,708,708,708,,,,,,,,,1124,,,1124,708,708,708,1124,",",1124,,1124,,,,,708,708,,,708,,,,,1124,,,,1124,1124,1124,1124,,1124","1124,1124,1124,,,,,1124,1124,,,,,,,1124,,1124,1124,1124,,,1124,1124","407,,407,407,407,407,407,,,,,708,708,708,708,407,708,708,708,708,,,",",708,708,891,891,891,891,,,708,,708,708,708,407,407,,,,891,891,891,","407,407,407,407,,,,407,,891,891,,,891,890,890,890,890,,,,,,,,,,,,,890","890,890,,,,,,,,,,,890,890,,,890,,,,,,,,,,,,,,,,891,891,891,891,,891","891,891,891,,,,,891,891,,,,,,,891,,891,891,891,,,,,,,,,890,890,890,890",",890,890,890,890,,,,,890,890,671,671,,,671,,890,,890,890,890,,671,671",",671,671,671,671,671,671,671,,,671,671,,,,671,671,671,671,,,,,,671,",",,,,,,671,671,,671,671,671,671,671,671,671,671,671,671,671,671,626,626","671,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,,,626,626,,,,626","626,626,626,,,,,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,626","626,626,626,626,225,225,626,,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,226,226,225,,226,,,,,,,,226","226,,226,226,226,226,226,226,226,,,226,226,,,,226,226,226,226,,,,,,226",",,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226,226,627","627,226,,627,,,,,,,,627,627,,627,627,627,627,627,627,627,,,627,627,",",,627,627,627,627,,,,,,627,,,,,,,,627,627,,627,627,627,627,627,627,627","627,627,627,627,627,547,547,627,,547,,,,,,,,547,547,,547,547,547,547","547,547,547,,,547,547,,,,547,547,547,547,,,,,,547,,,,,,,,547,547,,547","547,547,547,547,547,547,547,547,547,547,547,475,475,547,,475,,,,,,,","475,475,,475,475,475,475,475,475,475,,,475,475,,,,475,475,475,475,,",",,,475,,,,,,,,475,475,,475,475,475,475,475,475,475,475,475,475,475,475","1152,1152,475,,1152,,,,,,,,1152,1152,,1152,1152,1152,1152,1152,1152","1152,,,1152,1152,,,,1152,1152,1152,1152,,,,,,1152,,,,,,,,1152,1152,","1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,633,633","1152,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,,,633,633,,,,633","633,633,633,,,,,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,633","633,633,633,633,556,556,633,,556,,,,,,,,556,556,,556,556,556,556,556","556,556,,,556,556,,,,556,556,556,556,,,,,,556,,,,,,,,556,556,,556,556","556,556,556,556,556,556,556,556,556,556,557,557,556,,557,,,,,,,,557","557,,557,557,557,557,557,557,557,,,557,557,,,,557,557,557,557,,,,,,557",",,,,,,,557,557,,557,557,557,557,557,557,557,557,557,557,557,557,546","546,557,,546,,,,,,,,546,546,,546,546,546,546,546,546,546,,,546,546,",",,546,546,546,546,,,,,,546,,,,,,,,546,546,,546,546,546,546,546,546,546","546,546,546,546,546,634,634,546,,634,,,,,,,,634,634,,634,634,634,634","634,634,634,,,634,634,,,,634,634,634,634,,,,,,634,,,,,,,,634,634,,634","634,634,634,634,634,634,634,634,634,634,634,1156,1156,634,,1156,,,,",",,,1156,1156,,1156,1156,1156,1156,1156,1156,1156,,,1156,1156,,,,1156","1156,1156,1156,,,,,,1156,,,,,,,,1156,1156,,1156,1156,1156,1156,1156","1156,1156,1156,1156,1156,1156,1156,476,476,1156,,476,,,,,,,,476,476",",476,476,476,476,476,476,476,,,476,476,,,,476,476,476,476,,,,,,476,",",,,,,,476,476,,476,476,476,476,476,476,476,476,476,476,476,476,1157","1157,476,,1157,,,,,,,,1157,1157,,1157,1157,1157,1157,1157,1157,1157",",,1157,1157,,,,1157,1157,1157,1157,,,,,,1157,,,,,,,,1157,1157,,1157","1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,672,672,1157",",672,,,,,,,,672,672,,672,672,672,672,672,672,672,,,672,672,,,,672,672","672,672,,,,,,672,,,,,,,,672,672,,672,672,672,672,672,672,672,672,672","672,672,672,,641,672,641,641,641,641,641,,1180,,1180,1180,1180,1180","1180,641,,,,,,,,1180,,,,,,,,,,,,,,641,,,,,,,,1180,641,641,641,641,,",",641,1180,1180,1180,1180,,,,1180"],racc_action_check=arr=$$$("::","Array").$new(28007,nil),idx=0,$send(clist,"each",[],(($Ruby30$10=function(str){var $$11,self=null==$Ruby30$10.$$s?this:$Ruby30$10.$$s;return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(($$11=function(i){var $writer;null==$$11.$$s||$$11.$$s;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),idx=$rb_plus(idx,1)}).$$s=self,$$11.$$arity=1,$$11))}).$$s=$Ruby30__reduce_none$543,$Ruby30$10.$$arity=1,$Ruby30$10)),racc_action_pointer=[nil,1349,3855,739,nil,401,nil,5413,1392,558,24440,24312,556,nil,509,438,592,429,800,605,nil,-69,5675,1263,24824,307,nil,803,nil,254,5947,6057,6191,6322,6453,nil,2703,23109,23895,nil,175,466,569,146,6715,6846,-44,6977,7108,975,7239,45,185,323,1112,nil,nil,nil,nil,nil,nil,nil,nil,nil,7380,nil,7521,7652,7783,199,nil,7914,8045,nil,nil,8176,22585,23502,23764,nil,nil,nil,nil,nil,nil,nil,nil,nil,529,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,830,nil,nil,110,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,8319,nil,nil,nil,nil,8462,8593,8724,5138,8998,nil,2847,nil,-1,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,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,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,1400,nil,1983,21406,21537,21668,21799,21930,22061,26978,27039,nil,nil,22192,22323,9129,nil,nil,1135,443,389,1466,119,1349,1407,nil,9260,5007,1374,nil,nil,9391,9522,9653,9784,9915,10046,10177,10308,10439,10570,10701,10832,10963,11094,11225,11356,11487,11618,11749,11880,12011,12142,nil,nil,nil,nil,12273,nil,nil,768,698,670,669,658,556,523,417,306,-62,nil,nil,nil,13059,nil,nil,5279,nil,nil,1260,13321,13452,nil,nil,nil,nil,nil,nil,nil,13583,nil,2271,nil,1207,1190,nil,13845,1232,13976,nil,nil,14107,14238,nil,nil,72,nil,14381,960,1178,1144,3423,1158,1186,1142,24034,2991,228,300,409,1216,802,nil,1172,1126,275,1160,1156,nil,nil,nil,1149,255,1099,22978,nil,327,968,3999,3855,1165,nil,1160,15429,nil,15560,1068,4431,1057,nil,607,24910,1055,4143,3999,738,1067,nil,748,730,1081,1049,492,1071,nil,772,179,35,16215,3135,2559,400,1127,993,57,40,692,1050,-18,1078,nil,nil,966,479,372,nil,1108,nil,980,16608,nil,26698,nil,395,398,641,506,401,-32,-34,606,nil,nil,nil,nil,nil,nil,nil,966,24696,nil,nil,nil,nil,961,nil,1030,931,18204,929,nil,nil,911,nil,889,15,1011,nil,nil,1407,nil,nil,nil,nil,nil,1695,858,nil,854,841,526,511,19e3,nil,nil,nil,720,610,865,nil,nil,19275,19411,nil,nil,nil,212,nil,837,27222,27710,19941,345,20203,20334,20465,26016,26506,4431,4719,1014,853,783,782,775,770,5138,5413,5230,4863,3711,4575,3567,3279,3423,3110,3019,3135,4143,1983,5007,nil,231,nil,5279,nil,nil,nil,nil,8855,654,668,689,nil,nil,nil,694,nil,nil,21275,nil,21144,nil,21013,nil,392,nil,nil,nil,20870,907,nil,729,731,nil,nil,735,23633,744,20727,27527,27161,798,787,nil,nil,23240,750,nil,20596,27405,27466,20072,4287,2559,19810,19679,878,879,nil,nil,759,757,762,761,778,nil,782,788,nil,nil,nil,nil,nil,nil,nil,nil,nil,777,961,nil,nil,19548,nil,nil,nil,232,nil,nil,nil,878,nil,nil,880,219,820,19134,949,960,840,881,nil,18859,nil,nil,18728,nil,nil,nil,1551,972,nil,1695,-14,980,1002,38,1035,18597,18466,26917,27100,7,nil,nil,958,nil,27344,27588,18335,nil,nil,189,2415,nil,27894,nil,nil,nil,nil,1362,nil,nil,nil,946,nil,nil,322,nil,357,nil,nil,935,nil,937,nil,nil,nil,24568,nil,18073,944,17930,17799,17668,26856,27832,17537,17394,442,987,17263,17132,17001,16870,990,nil,nil,16739,16477,992,nil,nil,nil,251,-56,332,471,959,1007,nil,992,nil,nil,416,25819,-84,nil,646,nil,nil,7380,26645,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,1056,534,nil,1039,995,25638,nil,1122,nil,1105,173,nil,nil,16346,nil,1031,1036,1137,nil,1022,nil,1069,16084,nil,nil,15953,nil,247,22716,1027,nil,1031,105,343,1099,246,875,1101,1058,22847,nil,1127,-26,1839,1184,15822,nil,nil,717,nil,nil,1296,nil,nil,649,25204,nil,23942,nil,15691,nil,3006,nil,1073,1075,1170,1079,nil,nil,nil,nil,nil,nil,25008,1551,nil,nil,nil,nil,702,240,nil,1201,nil,nil,nil,nil,nil,1208,1209,nil,nil,26,1100,39,31,-1,8,975,1110,964,nil,1103,1119,15298,nil,1237,-23,1121,nil,nil,nil,nil,nil,1263,nil,nil,nil,nil,nil,nil,nil,nil,1127,15167,1140,252,-85,220,0,nil,2127,15036,nil,1139,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,14905,14774,14643,14512,417,1228,26408,121,152,26310,26212,441,-68,1169,1170,nil,26114,nil,1169,1171,1254,1187,nil,1193,25918,26777,26743,nil,nil,nil,nil,nil,13714,nil,nil,1234,nil,nil,1231,1217,nil,nil,539,3567,nil,nil,nil,nil,1220,291,nil,nil,13190,1349,nil,4287,1226,1280,nil,nil,1245,nil,1243,1244,nil,1249,nil,1336,nil,1255,1256,nil,1257,nil,nil,1263,2977,3016,nil,nil,12928,nil,1388,nil,12797,1389,nil,nil,25721,12666,4719,10,1395,nil,1396,451,4863,nil,nil,nil,nil,1279,1333,1316,1311,113,nil,nil,12535,12404,nil,nil,nil,nil,1316,1317,1318,1316,nil,nil,25103,nil,nil,2,nil,nil,1337,1354,1357,nil,nil,nil,1401,1358,-48,nil,24907,nil,1366,nil,nil,-31,nil,nil,2703,1407,nil,nil,1364,1367,nil,1368,1370,1373,nil,1402,1389,1375,22454,nil,nil,nil,2847,nil,1839,nil,nil,36,24173,nil,nil,25822,nil,25400,nil,nil,25302,nil,24081,nil,nil,nil,nil,1393,1398,2415,nil,-10,nil,136,575,-83,nil,nil,nil,nil,216,nil,nil,nil,1523,2127,2271,2113,nil,nil,nil,nil,nil,1043,1447,325,nil,nil,nil,nil,nil,nil,1404,25005,1406,nil,nil,329,nil,nil,1584,nil,nil,25921,nil,nil,26019,nil,25708,nil,nil,-82,23371,1102,-22,nil,4575,32,9,991,167,79,nil,106,136,151,168,3215,3045,3279,nil,6584,5806,26604,nil,nil,nil,nil,239,354,542,nil,nil,nil,nil,nil,nil,25201,245,25397,253,nil,nil,255,287,296,324,nil,356,nil,841,27283,nil,499,5544,27649,27771,33,25498,nil,nil,nil,nil,399,628,3711,nil,nil,nil,427,nil,nil,nil,1969,437,25495,nil,nil,nil,27902,nil,26509,nil,26411,nil,26117,nil,nil,520,531,nil,518,145,146,142,39,541,nil,35,25299,nil,557,566,576,593,143,nil,nil,nil,nil,625,25106,nil,nil,nil,nil,631,nil],racc_action_default=[-1,-729,-4,-729,-2,-714,-5,-729,-8,-729,-729,-729,-729,-31,-729,-729,-36,-729,-729,-305,-48,-716,-729,-57,-729,-65,-66,-67,-71,-282,-282,-282,-318,-345,-346,-83,-13,-87,-95,-97,-729,-611,-612,-729,-729,-729,-729,-729,-729,-235,-729,-716,-626,-626,-253,-296,-297,-298,-299,-300,-301,-302,-303,-304,-702,-307,-311,-728,-692,-326,-328,-729,-729,-59,-59,-714,-729,-729,-729,-347,-348,-350,-351,-352,-353,-410,-551,-552,-553,-554,-575,-557,-558,-577,-579,-562,-567,-571,-573,-589,-590,-591,-575,-593,-595,-596,-597,-598,-700,-600,-601,-701,-603,-604,-605,-606,-607,-608,-609,-610,-615,-616,1219,-3,-715,-724,-725,-726,-7,-729,-729,-729,-729,-729,-9,-4,-19,-729,-126,-127,-128,-129,-130,-131,-132,-136,-137,-138,-139,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-24,-133,-13,-729,-729,-729,-729,-729,-272,-729,-729,-712,-713,-729,-729,-716,-717,-52,-729,-611,-612,-729,-305,-729,-729,-241,-729,-13,-729,-53,-55,-218,-219,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-254,-255,-256,-257,-729,-61,-62,-729,-126,-127,-166,-167,-168,-184,-189,-196,-199,-611,-612,-690,-729,-419,-421,-729,-710,-711,-72,-272,-729,-325,-425,-434,-436,-78,-431,-79,-716,-80,-260,-277,-286,-286,-281,-729,-287,-729,-575,-694,-729,-729,-81,-82,-714,-14,-729,-17,-729,-85,-13,-716,-729,-88,-91,-13,-103,-104,-729,-729,-111,-318,-321,-716,-729,-626,-626,-345,-346,-349,-432,-729,-93,-729,-99,-315,-729,-220,-221,-594,-229,-230,-729,-242,-729,-729,-13,-625,-621,-648,-648,-729,-13,-13,-309,-716,-261,-721,-721,-729,-729,-721,-729,-327,-58,-729,-729,-729,-13,-13,-714,-729,-715,-611,-612,-729,-729,-305,-729,-363,-364,-121,-122,-729,-124,-729,-305,-619,-729,-341,-648,-555,-729,-729,-729,-729,-729,-729,-729,-729,-6,-727,-25,-26,-27,-28,-29,-729,-729,-21,-22,-23,-134,-729,-32,-35,-292,-729,-729,-291,-33,-729,-37,-729,-305,-45,-47,-207,-265,-287,-49,-50,-38,-208,-265,-716,-273,-286,-286,-703,-704,-282,-429,-705,-706,-704,-703,-282,-428,-430,-705,-706,-44,-215,-51,-716,-324,-729,-729,-729,-272,-315,-729,-729,-729,-729,-729,-216,-217,-222,-223,-224,-225,-226,-227,-231,-232,-233,-234,-236,-237,-238,-239,-240,-243,-244,-245,-246,-716,-258,-63,-716,-440,-282,-703,-704,-69,-73,-649,-716,-286,-716,-283,-438,-440,-716,-320,-278,-729,-279,-729,-284,-729,-288,-729,-697,-699,-12,-715,-16,-18,-716,-84,-313,-100,-89,-729,-716,-272,-729,-729,-110,-729,-625,-594,-729,-96,-101,-729,-729,-729,-729,-259,-247,-729,-729,-543,-729,-376,-377,-716,-633,-716,-689,-689,-631,-633,-633,-647,-649,-650,-651,-652,-653,-654,-655,-656,-657,-729,-659,-661,-663,-668,-670,-671,-674,-679,-681,-682,-684,-685,-686,-729,-729,-633,-729,-729,-729,-716,-729,-262,-723,-722,-264,-723,-316,-317,-693,-13,-354,-355,-13,-729,-729,-729,-729,-729,-729,-272,-729,-729,-315,-59,-121,-122,-123,-729,-729,-272,-337,-617,-729,-13,-411,-648,-414,-556,-576,-581,-729,-583,-559,-578,-729,-580,-561,-729,-564,-729,-566,-569,-729,-570,-729,-592,-10,-20,-729,-30,-729,-295,-729,-729,-272,-729,-729,-729,-729,-433,-729,-274,-276,-729,-729,-74,-271,-426,-729,-729,-76,-427,-323,-718,-703,-704,-703,-704,-716,-54,-460,-462,-464,-467,-524,-716,-479,-482,-517,-522,-523,-729,-729,-527,-528,-529,-530,-531,-532,-533,-534,-535,-536,-537,-729,-729,-541,-56,-729,-729,-691,-729,-441,-68,-422,-438,-267,-274,-269,-729,-400,-729,-319,-286,-285,-289,-729,-695,-696,-729,-15,-86,-729,-92,-98,-716,-703,-704,-270,-707,-109,-729,-94,-729,-214,-228,-716,-249,-728,-728,-343,-622,-729,-640,-624,-729,-629,-630,-729,-729,-643,-729,-645,-729,-365,-729,-367,-369,-372,-375,-716,-662,-672,-673,-683,-687,-627,-729,-251,-344,-308,-310,-312,-721,-728,-356,-728,-60,-357,-358,-331,-332,-729,-729,-446,-334,-729,-716,-703,-704,-707,-314,-13,-121,-122,-125,-716,-13,-729,-339,-729,-729,-716,-582,-585,-586,-587,-588,-13,-560,-563,-565,-568,-572,-574,-135,-34,-293,-729,-716,-703,-704,-704,-703,-46,-266,-729,-719,-286,-40,-210,-41,-211,-75,-42,-213,-43,-212,-77,-729,-729,-729,-729,-433,-729,-729,-465,-466,-729,-729,-729,-484,-716,-716,-478,-485,-491,-729,-494,-498,-729,-481,-729,-729,-520,-521,-525,-526,-538,-122,-539,-729,-64,-420,-400,-424,-423,-729,-716,-435,-401,-716,-13,-437,-280,-290,-698,-90,-433,-102,-322,-729,-728,-361,-13,-544,-728,-545,-546,-716,-632,-633,-633,-660,-689,-669,-674,-688,-633,-633,-680,-633,-657,-675,-716,-729,-729,-374,-658,-729,-263,-729,-359,-729,-729,-333,-335,-729,-729,-13,-433,-729,-433,-729,-729,-13,-342,-412,-415,-417,-404,-729,-729,-294,-433,-39,-209,-275,-729,-461,-463,-471,-475,-716,-716,-716,-503,-505,-506,-509,-510,-575,-513,-515,-516,-716,-716,-716,-540,-476,-477,-501,-486,-489,-492,-729,-497,-716,-575,-720,-716,-518,-519,-248,-13,-70,-268,-689,-689,-381,-383,-383,-383,-399,-729,-716,-657,-665,-666,-677,-439,-250,-11,-13,-550,-362,-729,-729,-548,-623,-729,-636,-729,-638,-628,-729,-641,-729,-644,-646,-366,-368,-370,-373,-252,-329,-729,-330,-729,-451,-454,-457,-458,-459,-289,-728,-336,-338,-618,-729,-13,-13,-729,-413,-584,-468,-469,-470,-504,-508,-729,-512,-514,-472,-473,-474,-493,-487,-729,-495,-499,-480,-729,-483,-442,-729,-379,-380,-384,-390,-392,-729,-395,-729,-397,-402,-729,-729,-664,-729,-549,-13,-611,-612,-729,-729,-305,-547,-633,-633,-633,-633,-729,-729,-13,-447,-729,-729,-455,-443,-444,-445,-340,-729,-729,-716,-406,-408,-409,-502,-507,-511,-729,-490,-729,-689,-667,-382,-383,-383,-383,-383,-678,-383,-403,-676,-729,-315,-543,-272,-729,-729,-315,-729,-634,-637,-639,-642,-371,-728,-13,-452,-453,-456,-494,-416,-418,-405,-729,-488,-729,-496,-500,-378,-729,-387,-729,-389,-729,-393,-729,-396,-398,-314,-707,-542,-716,-703,-704,-707,-314,-633,-360,-728,-729,-407,-383,-383,-383,-383,-433,-635,-448,-449,-450,-495,-729,-385,-388,-391,-394,-383,-386],clist=["42,141,141,225,291,42,330,230,623,275,274,380,293,809,409,141,308,308","308,346,346,124,287,458,464,127,416,382,383,365,365,387,764,526,42,334","334,361,309,309,309,436,437,452,373,514,743,518,878,144,144,772,773","342,342,632,584,584,346,346,346,947,233,918,42,8,134,136,217,123,8,385","386,374,391,287,287,310,310,310,349,299,303,449,928,419,420,421,422","469,510,934,342,342,342,127,929,584,564,356,329,950,615,618,603,604","343,343,930,928,607,610,375,378,614,516,443,569,15,443,887,929,42,15","326,443,936,328,1085,371,743,42,932,42,567,600,879,369,735,388,1047","1017,575,575,908,343,343,343,740,292,740,4,15,553,295,302,304,786,967","1049,1134,128,695,723,306,319,320,1148,927,649,651,654,654,1132,1170","642,1032,568,526,892,893,2,15,575,550,550,1028,8,981,993,1177,727,396","927,653,655,423,743,8,746,1003,404,406,737,362,368,216,397,308,432,425","1139,482,483,803,276,42,468,725,475,731,979,991,1018,664,435,435,359","376,730,288,377,395,636,370,988,988,1020,605,531,15,42,808,372,823,961","639,988,1048,15,1148,15,998,1019,1095,1021,1131,640,963,431,442,293","407,442,827,1175,1134,1059,1066,442,1067,509,520,458,464,521,900,459","417,1201,308,308,430,1125,424,1054,1208,953,821,308,1166,1055,1058,975","976,874,694,875,886,889,740,740,517,309,1135,1136,922,329,1010,980,992","309,1,346,988,408,410,780,1047,554,546,42,411,412,413,42,549,1211,1144","334,42,584,346,414,15,1164,438,535,556,438,619,127,310,415,754,438,749","342,334,903,310,1102,1114,940,754,758,740,829,606,15,1126,42,1007,1008","751,834,342,42,42,824,931,929,1086,542,826,1142,896,626,,,,877,537,42","42,534,536,936,1057,776,778,329,,299,,,329,,507,303,343,551,,,,,,127",",828,1145,1040,837,1146,837,326,141,575,538,343,326,1087,929,544,754","671,1198,369,1141,519,,859,754,,,988,864,522,676,15,,,,15,813,,,,15","620,621,622,932,,822,1086,,,584,,,308,910,,144,584,,468,,458,464,1169",",29,,,,,29,15,717,717,663,584,904,15,15,,,845,,724,743,29,1092,1093","1202,,1209,,,15,15,29,29,29,,29,,1086,682,1178,554,780,929,,687,943",",925,,554,,,,346,,459,,308,,994,955,42,346,946,,29,468,855,857,334,29","29,860,862,29,1178,468,,334,913,,,877,877,,,959,342,,,682,,,443,,,342","1006,739,1086,,,,443,443,910,,,443,443,,681,,,935,923,937,686,1210,",",,,29,740,1022,459,,29,29,29,29,29,,29,,459,308,,,343,42,,,42,,468,308","792,343,1179,1191,468,,,818,,933,812,,933,1056,,729,,42,,804,,,,,,,",",675,,,15,,799,308,141,,,825,,,,,468,42,1075,,,,,,42,902,780,780,,,","459,800,676,1127,802,,,,459,676,888,29,29,29,29,29,29,29,1065,,,717","29,29,29,144,,717,717,,901,442,898,274,971,,29,,141,554,1016,442,442","841,854,459,442,442,584,,915,842,346,15,,,15,,850,676,,,,346,924,1037","1039,1090,334,,443,,1042,1044,1107,1045,,15,,334,,,29,,,,342,1015,,29","29,,,435,1120,,1121,342,29,,854,,960,,15,,1022,438,,1022,,15,,,,,29","438,438,,29,676,438,438,1130,29,877,,682,,676,687,,,,,966,,42,343,,",",42,,,,,,,343,,,676,42,,29,,,,,,29,29,,,,,,1115,,1116,780,780,1117,",",29,29,29,,676,,,,,676,676,,,,717,1022,,717,717,,,29,450,,717,,,957","470,,,,717,717,717,869,,442,966,,1030,,880,968,1034,,,,381,381,1052","42,381,1147,,1149,1076,,,,,,,42,,,,,,,,,,1088,,1160,1161,1162,1163,15",",,,,15,,,,,,,,914,29,933,15,717,1015,42,754,1015,,1015,,42,,381,381","381,381,,,,438,,1197,,1026,,1192,,,676,676,676,1064,,,717,1031,,,,,888",",1203,,1204,,1205,,,,717,,,,,,346,29,966,42,956,,,,1207,,346,29,,958","1061,,287,,1217,15,,,42,,,,1109,29,,,1023,15,,1015,342,1015,970,1015",",1015,,,,,342,,,1014,447,448,,,,,,,,471,472,42,42,,,,978,1015,15,,,995","996,,15,1167,1168,,,717,,,346,29,,,29,,,343,1106,,1156,29,,,,,287,343",",,42,29,,,,29,,,,,,,1173,42,342,,508,717,,,,15,18,,,1129,,18,470,,450","717,29,717,308,29,29,,468,29,15,,234,468,1113,29,29,,,,29,29,234,234","234,,18,335,335,42,,,,,,,1154,343,,717,,,,676,,,,15,15,1165,,,1079,1080","1081,,18,,,,,234,234,717,,234,392,402,402,,,,,459,760,,,,,718,718,381",",,1023,,,1023,15,,1023,,1023,17,,1199,,,17,,,15,638,,1014,,,1014,,1014",",,,,18,,,,,234,234,234,234,18,,18,,17,,,,,,,,,,1096,1098,1100,,,,,,",",15,,,,,,,29,,,17,,29,29,,,,,,,,,,29,,,1023,,1023,,1023,,1023,,,,,,",",,29,,1014,379,1014,,1014,,1014,,856,858,,,,861,863,1023,,,18,234,440","234,234,440,234,17,,,,440,234,234,1014,,17,,17,,,,,,,18,,,,,,,,,,,29",",,,,,,,,1206,,,29,,762,,,,,,,1181,1183,1185,1187,,1188,,,,,,,,,234,",",,,,29,234,234,,,,29,,,,234,,29,718,473,,,,,718,718,,,,17,,17,,18,17",",,18,,,17,335,18,1213,1214,1215,1216,,,,,,,,17,,,,1218,,335,,433,446",",,29,,,,,,,18,,,,,,18,18,,,,,29,,,,,,972,41,523,234,18,18,41,,,,,,,856","858,863,861,,,,,,,286,234,539,,,,,,29,29,,,41,333,333,,,,,,17,,,,17",",,,,17,,,,,,,,,,,,528,41,530,,,532,533,,29,,,390,286,286,,,,,,17,,29",",29,29,17,17,,,,,,234,718,,,718,718,,,,17,17,718,,,,,,,,718,718,718",",,29,,972,41,,,,,,,,29,41,,41,,,,,,,,,,,,,,,,381,,,,18,,,,,,,,335,,234",",,,,688,,335,,,,,,,,718,234,,,,,,667,,,,,,,,,,,,,,,,,,,726,,,,,,718",",732,,734,,41,,738,,,,,,,,718,,,,,,,18,747,,18,,,,750,41,,234,,,,,,",",,,234,17,,,18,,,,712,712,767,,770,,,,,,,,,381,,741,,379,,744,,,,18",",,440,234,,,18,,,,,,440,440,,,797,440,440,,,,,,718,,,,,,,,,,,,41,,,","41,,,,333,41,,,,17,,,17,,787,,,,,,,,,333,718,,,,,,,,,17,741,,41,379","718,,718,335,41,41,,,,,,,446,,335,,,,,,41,41,17,,,17,,,,17,,,,,,17,17",",718,,17,17,711,711,,,,,,,,,,,,,843,,,,,,718,,,741,379,,,,,,,18,,,,","18,234,,,,,381,381,,,,18,,,,,,916,,,,,,,,,,,,440,,,,,,,,,,712,,944,","741,,712,712,,,,,,911,,,912,,,,,,,,,,,,,,,,19,,,,921,19,,,,,,,,,18,",",,939,,,41,,,,17,18,,,333,17,,,,19,337,337,,333,,,17,,,,,,,,,,,,,,234","977,,,17,,18,,,19,,,18,,,,,,,394,403,403,,,,,,,969,,,,,1012,,,,,,,,",",,,,41,,,41,,,,,1035,,,711,,,17,18,,711,711,,,19,,1046,41,,17,,1104",",19,,19,,18,,,712,1110,,712,712,,,,,,712,,,,41,,,,712,712,712,41,,,17","1071,1072,1073,,,17,,,,18,18,,,,,,,,,,,,,,,,,1089,,,1060,,,,,,,,,,,",",,,,1151,710,710,379,18,,,19,17,441,,712,441,,,,,18,441,234,234,,709","709,,333,,17,,,,,19,,,,333,,,,,,,712,,,,,,,,,234,,,,,,,712,,,,18,17","17,,,,,,713,713,711,,,711,711,,,,,,711,,,,,,,,711,711,711,,41,,,,,41",",,,,17,,,,,,41,19,,,,19,,17,,337,19,,,,,,,,,,,,,,,,,,337,,,712,,,,32",",,,,32,19,,,711,,,19,19,,,,,17,,32,,,,,,,,19,19,32,32,32,,32,,712,,","41,,711,,,,,,,,,712,41,712,,,,,711,,,,,,,32,,,,,32,32,,,32,710,,,,,","710,710,,,,,41,,712,,,,41,,,709,,,,,,709,709,,,,,,,,,,712,,,,,715,715",",,,32,,,,,32,32,32,32,32,,32,,,,,,,711,41,,,713,,,,,,713,713,,,286,",",,,,41,,,,1108,,,,,,,,,,,,,,19,,711,,,,,,337,,,,,,,,711,337,711,41,41",",,,,,,,,,,,,,,,,,32,32,32,32,32,32,32,,,,,32,32,32,,,711,,286,,,,41",",,32,,,710,,,710,710,,,41,,,710,,711,,19,,,19,710,710,710,709,,,709","709,,,,,,709,,,,,,,19,709,709,709,,32,,833,,,,,32,32,,41,,,,,,32,,,",",,19,,,441,,713,,19,713,713,,,32,441,441,713,32,710,441,441,,32,,713","713,713,,715,,,,,,715,715,,,,709,,,,,,,,,,,710,,,32,,,,,,32,32,,,,,","710,,,,,709,,,32,32,32,,,,,,,337,,,,709,713,,,,,,337,32,,,,,,,,,,,,",",,,,,,,,,,,,713,,,,,,,,,,,,,,,,713,,,,,,,,,,,,,710,,,,19,,,,,19,,,,",",,,,32,,19,709,,,,,,,,,,,,,,,,,441,,710,,,,,716,716,,,715,,,715,715","710,,710,,,715,,709,,,,,,715,715,715,713,,,,,709,32,709,,,,,,,714,714","32,,,,,,710,,19,,,,,,,,32,,,,19,,,,713,,,709,,,710,,,,,,,,713,,713,",",,,715,,,,,,709,,,,19,,,,,,19,,,,,,,,,32,,,32,,,713,715,,,32,,,,,,241",",,,32,,,715,32,,307,307,307,,713,,,,,,,,354,355,19,357,358,,360,,,,",",,32,,403,32,32,,,32,19,,307,307,1112,32,32,,,,32,32,,,,,,,,,,,,,,,",",,,,,,,,,,19,19,,,,,,,,,715,,716,,,,,,716,716,,,,,,,,,,,,,,,,,,403,",",,19,,,,,,,,,715,714,,,19,,,714,714,,,,,,715,,715,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,19,,715,,,,,32,,,,,32,32,,,,307,445,,,451,307,32,,,715","451,,,,,,,,,,,,,241,32,,,,484,485,486,487,488,489,490,491,492,493,494","495,496,497,498,499,500,501,502,503,504,505,,,,,506,,,,,,,,,,,716,,","716,716,,,,,,716,,307,307,,32,,,716,716,716,307,,,,,,32,307,,307,,,307","307,,,,,714,,,714,714,,,,,,714,,,,,,,32,714,714,714,,,32,,,,,,32,,,",",,,559,,560,,,,,716,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,716,,,32,,,,714,",",,,,,,,716,,,,,,32,,,,,,,,,,,,,,307,,,714,,,,,,,,,,,,,,,,714,,,,32,32",",,,,,,,,,,,,,,,,,,307,,451,451,451,,,,,,,,,,,,,,,,716,32,,,,,,,,,,,",",32,,32,32,355,,,,,,,,,,307,,307,,307,,,,,,,714,716,,,,,,,,307,32,,",",,716,,716,,451,,32,761,,,,763,,,,,,,,,,,,,,714,,,,,,,,,,,,307,716,714",",714,,,,,,,,,,794,,,,,,307,,,307,,716,,,,,,,,,,,307,307,,,714,,,,,,","307,,,,,,,,,,,,,,,,,714,,,,,,,,,,,,,,,,307,451,307,,,,851,,,307,307","451,451,,,,451,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307",",,,,,,,,307,,,307,,,,,,,,,,,,,,,,,,,,307,,,,,,,,,,,,,,307,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307,,,,,,,,451",",,,,,,,,,,,,451,451,451,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1009,,,,,,,",",,,,,,,,,,,,1027,,,,,,,,,,,,,,,,,,,,,,,,,,,,1050,,,,,,,,,307,,,,,,,",",,,,,,,,,,,307,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307"],racc_goto_table=arr=$$$("::","Array").$new(4137,nil),idx=0,$send(clist,"each",[],(($Ruby30$12=function(str){var $$13,self=null==$Ruby30$12.$$s?this:$Ruby30$12.$$s;return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(($$13=function(i){var $writer;null==$$13.$$s||$$13.$$s;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),idx=$rb_plus(idx,1)}).$$s=self,$$13.$$arity=1,$$13))}).$$s=$Ruby30__reduce_none$543,$Ruby30$12.$$arity=1,$Ruby30$12)),clist=["71,74,74,33,154,71,67,35,111,42,44,106,33,112,194,74,51,51,51,82,82","7,71,54,54,116,194,19,19,86,86,19,12,93,71,71,71,35,87,87,87,24,24,31","86,56,233,91,171,76,76,135,135,45,45,72,224,224,82,82,82,110,22,13,71","8,9,17,17,5,8,40,40,87,71,71,71,89,89,89,68,90,90,28,142,19,19,19,19","28,54,142,45,45,45,116,225,224,10,79,11,13,109,109,10,10,47,47,131,142","88,88,89,89,88,31,20,91,23,20,183,225,71,23,63,20,229,64,188,8,233,71","196,71,153,153,172,118,57,5,125,141,219,219,143,47,47,47,94,49,94,2","23,69,55,55,55,127,145,128,148,6,37,37,62,62,62,230,223,209,209,209","209,147,189,153,201,140,93,198,198,3,23,219,218,218,14,8,174,174,189","157,23,223,208,208,8,233,8,16,174,73,73,157,81,81,18,21,51,25,27,188","38,39,41,48,71,74,50,33,59,171,171,142,77,87,87,83,85,92,104,105,113","115,119,196,196,145,120,194,23,71,111,121,122,123,124,196,129,23,230","23,187,133,138,139,146,149,150,22,22,33,151,22,152,188,148,174,155,22","156,158,160,54,54,161,164,90,6,147,51,51,11,165,2,166,167,168,72,51","169,170,173,176,178,179,31,180,184,185,94,94,87,87,191,192,200,11,143","172,172,87,1,82,196,204,205,126,125,67,33,71,206,207,210,71,35,188,141","71,71,224,82,211,23,128,23,7,33,23,19,116,89,212,54,23,69,45,71,57,89","145,142,127,54,69,94,213,35,23,13,71,198,198,31,214,45,71,71,217,227","225,187,68,10,228,72,33,,,,37,9,71,71,5,8,229,172,222,222,11,,90,,,11",",49,90,47,79,,,,,,116,,153,142,135,209,142,209,63,74,219,64,47,63,183","225,64,54,33,110,118,131,62,,56,54,,,196,56,62,35,23,,,,23,31,,,,23","11,11,5,196,,31,187,,,224,,,51,93,,76,224,,74,,54,54,171,,58,,,,,58","23,71,71,17,224,91,23,23,,,31,,35,233,58,135,135,142,,13,,,23,23,58","58,58,,58,,187,90,187,67,126,225,,90,126,,91,,67,,,,82,,90,,51,,72,109","71,82,88,,58,74,28,28,71,58,58,28,28,58,187,74,,71,69,,,37,37,,,10,45",",,90,,,20,,,45,37,89,187,,,,20,20,93,,,20,20,,55,,,140,24,140,55,112",",,,,58,94,224,90,,58,58,58,58,58,,58,,90,51,,,47,71,,,71,,74,51,116","47,135,12,74,,,40,,136,87,,136,37,,55,,71,,116,,,,,,,,,32,,,23,,89,51","74,,,116,,,,,74,71,37,,,,,,71,106,126,126,,,,90,11,35,111,11,,,,90,35","35,58,58,58,58,58,58,58,10,,,71,58,58,58,76,,71,71,,154,22,42,44,28",",58,,74,67,140,22,22,17,89,90,22,22,224,,67,8,82,23,,,23,,8,35,,,,82","86,222,222,10,71,,20,,222,222,109,222,,23,,71,,,58,,,,45,136,,58,58",",,87,109,,109,45,58,,89,,19,,23,,224,23,,224,,23,,,,,58,23,23,,58,35","23,23,10,58,37,,90,,35,90,,,,,35,,71,47,,,,71,,,,,,,47,,,35,71,,58,",",,,,58,58,,,,,,140,,140,126,126,140,,,58,58,58,,35,,,,,35,35,,,,71,224",",71,71,,,58,78,,71,,,11,78,,,,71,71,71,32,,22,35,,86,,32,11,86,,,,26","26,19,71,26,140,,140,194,,,,,,,71,,,,,,,,,,194,,222,222,222,222,23,",",,,23,,,,,,,,32,58,136,23,71,136,71,54,136,,136,,71,,26,26,26,26,,,","23,,140,,11,,31,,,35,35,35,116,,,71,11,,,,,35,,140,,140,,140,,,,71,",",,,,82,58,35,71,32,,,,222,,82,58,,32,11,,71,,140,23,,,71,,,,71,58,,","226,23,,136,45,136,32,136,,136,,,,,45,,,130,26,26,,,,,,,,26,26,71,71",",,,32,136,23,,,32,32,,23,19,19,,,71,,,82,58,,,58,,,47,11,,33,58,,,,","71,47,,,71,58,,,,58,,,,,,,35,71,45,,26,71,,,,23,30,,,11,,30,78,,78,71","58,71,51,58,58,,74,58,23,,30,74,23,58,58,,,,58,58,30,30,30,,30,30,30","71,,,,,,,11,47,,71,,,,35,,,,23,23,11,,,32,32,32,,30,,,,,30,30,71,,30","30,30,30,,,,,90,78,,,,,108,108,26,,,226,,,226,23,,226,,226,29,,11,,","29,,,23,26,,130,,,130,,130,,,,,30,,,,,30,30,30,30,30,,30,,29,,,,,,,",",,137,137,137,,,,,,,,23,,,,,,,58,,,29,,58,58,,,,,,,,,,58,,,226,,226",",226,,226,,,,,,,,,58,,130,84,130,,130,,130,,78,78,,,,78,78,226,,,30","30,30,30,30,30,30,29,,,,30,30,30,130,,29,,29,,,,,,,30,,,,,,,,,,,58,",",,,,,,,32,,,58,,26,,,,,,,137,137,137,137,,137,,,,,,,,,30,,,,,,58,30","30,,,,58,,,,30,,58,108,65,,,,,108,108,,,,29,,29,,30,29,,,30,,,29,30","30,137,137,137,137,,,,,,,,29,,,,137,,30,,84,84,,,58,,,,,,,30,,,,,,30","30,,,,,58,,,,,,78,70,65,30,30,30,70,,,,,,,78,78,78,78,,,,,,,70,30,65",",,,,,58,58,,,70,70,70,,,,,,29,,,,29,,,,,29,,,,,,,,,,,,84,70,84,,,84","84,,58,,,70,70,70,,,,,,29,,58,,58,58,29,29,,,,,,30,108,,,108,108,,,","29,29,108,,,,,,,,108,108,108,,,58,,78,70,,,,,,,,58,70,,70,,,,,,,,,,",",,,,,26,,,,30,,,,,,,,30,,30,,,,,65,,30,,,,,,,,108,30,,,,,,84,,,,,,,",",,,,,,,,,,,65,,,,,,108,,65,,65,,70,,65,,,,,,,,108,,,,,,,30,65,,30,,",",65,70,,30,,,,,,,,,,30,29,,,30,,,,99,99,65,,65,,,,,,,,,26,,84,,84,,84",",,,30,,,30,30,,,30,,,,,,30,30,,,65,30,30,,,,,,108,,,,,,,,,,,,70,,,,70",",,,70,70,,,,29,,,29,,84,,,,,,,,,70,108,,,,,,,,,29,84,,70,84,108,,108","30,70,70,,,,,,,84,,30,,,,,,70,70,29,,,29,,,,29,,,,,,29,29,,108,,29,29","98,98,,,,,,,,,,,,,84,,,,,,108,,,84,84,,,,,,,30,,,,,30,30,,,,,26,26,",",,30,,,,,,65,,,,,,,,,,,,30,,,,,,,,,,99,,65,,84,,99,99,,,,,,84,,,84,",",,,,,,,,,,,,,,34,,,,84,34,,,,,,,,,30,,,,84,,,70,,,,29,30,,,70,29,,,","34,34,34,,70,,,29,,,,,,,,,,,,,,30,65,,,29,,30,,,34,,,30,,,,,,,34,34","34,,,,,,,84,,,,,65,,,,,,,,,,,,,70,,,70,,,,,65,,,98,,,29,30,,98,98,,","34,,65,70,,29,,30,,34,,34,,30,,,99,30,,99,99,,,,,,99,,,,70,,,,99,99","99,70,,,29,65,65,65,,,29,,,,30,30,,,,,,,,,,,,,,,,,65,,,84,,,,,,,,,,",",,,,,30,97,97,84,30,,,34,29,34,,99,34,,,,,30,34,30,30,,96,96,,70,,29",",,,,34,,,,70,,,,,,,99,,,,,,,,,30,,,,,,,99,,,,30,29,29,,,,,,100,100,98",",,98,98,,,,,,98,,,,,,,,98,98,98,,70,,,,,70,,,,,29,,,,,,70,34,,,,34,","29,,34,34,,,,,,,,,,,,,,,,,,34,,,99,,,,61,,,,,61,34,,,98,,,34,34,,,,","29,,61,,,,,,,,34,34,61,61,61,,61,,99,,,70,,98,,,,,,,,,99,70,99,,,,,98",",,,,,,61,,,,,61,61,,,61,97,,,,,,97,97,,,,,70,,99,,,,70,,,96,,,,,,96","96,,,,,,,,,,99,,,,,102,102,,,,61,,,,,61,61,61,61,61,,61,,,,,,,98,70",",,100,,,,,,100,100,,,70,,,,,,70,,,,70,,,,,,,,,,,,,,34,,98,,,,,,34,,",",,,,,98,34,98,70,70,,,,,,,,,,,,,,,,,,61,61,61,61,61,61,61,,,,,61,61","61,,,98,,70,,,,70,,,61,,,97,,,97,97,,,70,,,97,,98,,34,,,34,97,97,97","96,,,96,96,,,,,,96,,,,,,,34,96,96,96,,61,,34,,,,,61,61,,70,,,,,,61,",",,,,34,,,34,,100,,34,100,100,,,61,34,34,100,61,97,34,34,,61,,100,100","100,,102,,,,,,102,102,,,,96,,,,,,,,,,,97,,,61,,,,,,61,61,,,,,,97,,,",",96,,,61,61,61,,,,,,,34,,,,96,100,,,,,,34,61,,,,,,,,,,,,,,,,,,,,,,,",",100,,,,,,,,,,,,,,,,100,,,,,,,,,,,,,97,,,,34,,,,,34,,,,,,,,,61,,34,96",",,,,,,,,,,,,,,,,34,,97,,,,,103,103,,,102,,,102,102,97,,97,,,102,,96",",,,,,102,102,102,100,,,,,96,61,96,,,,,,,101,101,61,,,,,,97,,34,,,,,",",,61,,,,34,,,,100,,,96,,,97,,,,,,,,100,,100,,,,,102,,,,,,96,,,,34,,",",,,34,,,,,,,,,61,,,61,,,100,102,,,61,,,,,,36,,,,61,,,102,61,,36,36,36",",100,,,,,,,,36,36,34,36,36,,36,,,,,,,61,,34,61,61,,,61,34,,36,36,34","61,61,,,,61,61,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,,,,,102,,103,,,,,","103,103,,,,,,,,,,,,,,,,,,34,,,,34,,,,,,,,,102,101,,,34,,,101,101,,,",",,102,,102,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,102,,,,,61,,,,,61,61",",,,36,36,,,36,36,61,,,102,36,,,,,,,,,,,,,36,61,,,,36,36,36,36,36,36","36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,,,,,36,,,,,,,,,,,103",",,103,103,,,,,,103,,36,36,,61,,,103,103,103,36,,,,,,61,36,,36,,,36,36",",,,,101,,,101,101,,,,,,101,,,,,,,61,101,101,101,,,61,,,,,,61,,,,,,,36",",36,,,,,103,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,103,,,61,,,,101,,,,,,,,,103",",,,,,61,,,,,,,,,,,,,,36,,,101,,,,,,,,,,,,,,,,101,,,,61,61,,,,,,,,,,",",,,,,,,,36,,36,36,36,,,,,,,,,,,,,,,,103,61,,,,,,,,,,,,,61,,61,61,36",",,,,,,,,,36,,36,,36,,,,,,,101,103,,,,,,,,36,61,,,,,103,,103,,36,,61","36,,,,36,,,,,,,,,,,,,,101,,,,,,,,,,,,36,103,101,,101,,,,,,,,,,36,,,",",,36,,,36,,103,,,,,,,,,,,36,36,,,101,,,,,,,36,,,,,,,,,,,,,,,,,101,,",",,,,,,,,,,,,,36,36,36,,,,36,,,36,36,36,36,,,,36,36,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,36,,,36,,,,,,,,,,,,,,,,,,,","36,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,36,,,,,,,,36,,,,,,,,,,,,,36,36,36,36,,,,,,,,,,,,,,,,",",,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,",",,,,,,,36,,,,,,,,,,,,,,,,,,,36,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,36"],racc_goto_check=arr=$$$("::","Array").$new(4137,nil),idx=0,$send(clist,"each",[],(($Ruby30$14=function(str){var $$15,self=null==$Ruby30$14.$$s?this:$Ruby30$14.$$s;return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(($$15=function(i){var $writer;null==$$15.$$s||$$15.$$s;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),idx=$rb_plus(idx,1)}).$$s=self,$$15.$$arity=1,$$15))}).$$s=$Ruby30__reduce_none$543,$Ruby30$14.$$arity=1,$Ruby30$14)),racc_goto_pointer=[nil,312,149,181,nil,64,154,16,63,57,-265,64,-531,-701,-732,nil,-336,57,195,-44,-104,131,40,116,-178,-10,832,74,-140,1226,1125,-181,196,-15,2017,-14,2981,-320,-33,-33,-2,-405,-15,nil,-14,16,nil,69,191,122,-289,-16,nil,nil,-202,125,-250,-382,471,-293,nil,2372,132,88,91,1203,nil,-31,42,-197,1505,-2,-345,124,-9,nil,39,-205,654,53,nil,152,-18,178,1258,161,-23,6,-264,45,52,-249,-281,-277,-377,nil,1768,1747,1430,1286,1817,2433,2009,2394,206,163,-58,nil,732,-280,-739,-380,-609,156,nil,-171,20,nil,84,169,-133,177,-392,-580,-160,-801,-268,-428,-783,-693,145,-663,nil,-654,nil,-519,-142,256,-762,-652,-189,-766,-684,-592,nil,-670,-812,-895,-908,-150,-569,177,-376,-232,-21,-696,-695,-318,-19,nil,-28,-26,nil,nil,-452,-778,-668,-913,-523,-831,-662,-653,-565,-661,-686,nil,-577,nil,-577,-405,-403,nil,nil,-582,-404,-404,nil,-629,-873,-950,nil,-770,-769,nil,-76,nil,-639,nil,-528,nil,-459,-746,nil,nil,227,223,228,228,-218,-241,228,236,245,-289,-282,nil,nil,-268,-158,-224,nil,nil,-184,-600,-310,-672,128,-401,-716,-649,-930,nil,nil,-481],racc_goto_default=[nil,nil,nil,nil,5,nil,6,389,324,nil,nil,563,nil,948,nil,321,322,nil,nil,nil,13,14,20,239,nil,nil,16,nil,439,240,353,nil,nil,634,238,474,23,997,nil,nil,nil,nil,nil,384,143,52,24,53,nil,nil,nil,25,26,27,757,nil,nil,nil,341,nil,28,338,453,35,nil,nil,37,40,39,nil,235,236,401,nil,461,142,87,nil,444,103,49,nil,54,273,313,nil,919,454,nil,455,466,nil,683,524,311,297,55,56,57,58,59,60,61,62,63,nil,298,69,70,nil,nil,nil,nil,nil,77,nil,616,78,363,nil,nil,nil,nil,nil,nil,782,583,nil,783,784,571,565,566,1143,1013,nil,572,nil,nil,nil,601,nil,574,nil,906,nil,nil,nil,581,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,465,nil,nil,736,728,nil,nil,nil,nil,nil,nil,nil,nil,nil,882,nil,696,705,697,698,nil,nil,699,700,nil,nil,nil,881,883,nil,884,982,983,984,985,nil,989,592,990,704,706,nil,nil,86,88,89,nil,nil,nil,nil,644,nil,nil,nil,nil,nil,99,100,nil,364,926,367,570,769,573,938,586,588,589,1024,593,1025,596,599,316],racc_reduce_table=[0,0,"racc_error",0,150,"_reduce_1",2,148,"_reduce_2",2,149,"_reduce_3",0,151,"_reduce_4",1,151,"_reduce_5",3,151,"_reduce_6",2,151,"_reduce_7",1,153,"_reduce_none",2,153,"_reduce_9",3,156,"_reduce_10",4,157,"_reduce_11",2,158,"_reduce_12",0,162,"_reduce_13",1,162,"_reduce_14",3,162,"_reduce_15",2,162,"_reduce_16",1,163,"_reduce_none",2,163,"_reduce_18",0,174,"_reduce_19",4,155,"_reduce_20",3,155,"_reduce_21",3,155,"_reduce_22",3,155,"_reduce_23",2,155,"_reduce_24",3,155,"_reduce_25",3,155,"_reduce_26",3,155,"_reduce_27",3,155,"_reduce_28",3,155,"_reduce_29",4,155,"_reduce_30",1,155,"_reduce_none",3,155,"_reduce_32",3,155,"_reduce_33",5,155,"_reduce_34",3,155,"_reduce_35",1,155,"_reduce_none",3,167,"_reduce_37",3,167,"_reduce_38",6,167,"_reduce_39",5,167,"_reduce_40",5,167,"_reduce_41",5,167,"_reduce_42",5,167,"_reduce_43",3,167,"_reduce_44",1,175,"_reduce_none",3,175,"_reduce_46",1,175,"_reduce_none",1,173,"_reduce_none",3,173,"_reduce_49",3,173,"_reduce_50",3,173,"_reduce_51",2,173,"_reduce_52",0,185,"_reduce_53",4,173,"_reduce_54",0,186,"_reduce_55",4,173,"_reduce_56",1,173,"_reduce_none",1,166,"_reduce_none",0,190,"_reduce_59",3,187,"_reduce_60",1,189,"_reduce_61",2,192,"_reduce_62",0,197,"_reduce_63",5,194,"_reduce_64",1,169,"_reduce_none",1,169,"_reduce_none",1,199,"_reduce_none",4,199,"_reduce_68",0,206,"_reduce_69",4,203,"_reduce_70",1,205,"_reduce_none",2,198,"_reduce_72",3,198,"_reduce_73",4,198,"_reduce_74",5,198,"_reduce_75",4,198,"_reduce_76",5,198,"_reduce_77",2,198,"_reduce_78",2,198,"_reduce_79",2,198,"_reduce_80",2,198,"_reduce_81",2,198,"_reduce_82",1,168,"_reduce_83",3,168,"_reduce_84",1,211,"_reduce_85",3,211,"_reduce_86",1,210,"_reduce_none",2,210,"_reduce_88",3,210,"_reduce_89",5,210,"_reduce_90",2,210,"_reduce_91",4,210,"_reduce_92",2,210,"_reduce_93",4,210,"_reduce_94",1,210,"_reduce_95",3,210,"_reduce_96",1,214,"_reduce_none",3,214,"_reduce_98",2,213,"_reduce_99",3,213,"_reduce_100",1,216,"_reduce_101",3,216,"_reduce_102",1,215,"_reduce_103",1,215,"_reduce_104",4,215,"_reduce_105",3,215,"_reduce_106",3,215,"_reduce_107",3,215,"_reduce_108",3,215,"_reduce_109",2,215,"_reduce_110",1,215,"_reduce_111",1,170,"_reduce_112",1,170,"_reduce_113",4,170,"_reduce_114",3,170,"_reduce_115",3,170,"_reduce_116",3,170,"_reduce_117",3,170,"_reduce_118",2,170,"_reduce_119",1,170,"_reduce_120",1,219,"_reduce_121",1,219,"_reduce_none",2,220,"_reduce_123",1,220,"_reduce_124",3,220,"_reduce_125",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,164,"_reduce_131",1,164,"_reduce_none",1,165,"_reduce_133",0,224,"_reduce_134",4,165,"_reduce_135",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",3,183,"_reduce_207",3,183,"_reduce_208",6,183,"_reduce_209",5,183,"_reduce_210",5,183,"_reduce_211",5,183,"_reduce_212",5,183,"_reduce_213",4,183,"_reduce_214",3,183,"_reduce_215",3,183,"_reduce_216",3,183,"_reduce_217",2,183,"_reduce_218",2,183,"_reduce_219",2,183,"_reduce_220",2,183,"_reduce_221",3,183,"_reduce_222",3,183,"_reduce_223",3,183,"_reduce_224",3,183,"_reduce_225",3,183,"_reduce_226",3,183,"_reduce_227",4,183,"_reduce_228",2,183,"_reduce_229",2,183,"_reduce_230",3,183,"_reduce_231",3,183,"_reduce_232",3,183,"_reduce_233",3,183,"_reduce_234",1,183,"_reduce_none",3,183,"_reduce_236",3,183,"_reduce_237",3,183,"_reduce_238",3,183,"_reduce_239",3,183,"_reduce_240",2,183,"_reduce_241",2,183,"_reduce_242",3,183,"_reduce_243",3,183,"_reduce_244",3,183,"_reduce_245",3,183,"_reduce_246",3,183,"_reduce_247",6,183,"_reduce_248",4,183,"_reduce_249",6,183,"_reduce_250",4,183,"_reduce_251",6,183,"_reduce_252",1,183,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",3,227,"_reduce_258",3,227,"_reduce_259",1,231,"_reduce_none",1,232,"_reduce_none",2,232,"_reduce_none",4,232,"_reduce_263",2,232,"_reduce_264",1,225,"_reduce_none",3,225,"_reduce_266",3,237,"_reduce_267",5,237,"_reduce_268",3,237,"_reduce_269",0,239,"_reduce_270",1,239,"_reduce_none",0,178,"_reduce_272",1,178,"_reduce_none",2,178,"_reduce_none",4,178,"_reduce_275",2,178,"_reduce_276",1,209,"_reduce_277",2,209,"_reduce_278",2,209,"_reduce_279",4,209,"_reduce_280",1,209,"_reduce_281",0,242,"_reduce_282",2,202,"_reduce_283",2,241,"_reduce_284",2,240,"_reduce_285",0,240,"_reduce_286",1,234,"_reduce_287",2,234,"_reduce_288",3,234,"_reduce_289",4,234,"_reduce_290",1,172,"_reduce_291",1,172,"_reduce_none",3,171,"_reduce_293",4,171,"_reduce_294",2,171,"_reduce_295",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_306",0,266,"_reduce_307",4,229,"_reduce_308",0,267,"_reduce_309",4,229,"_reduce_310",0,268,"_reduce_311",4,229,"_reduce_312",3,229,"_reduce_313",3,229,"_reduce_314",2,229,"_reduce_315",3,229,"_reduce_316",3,229,"_reduce_317",1,229,"_reduce_318",4,229,"_reduce_319",3,229,"_reduce_320",1,229,"_reduce_321",5,229,"_reduce_322",4,229,"_reduce_323",3,229,"_reduce_324",2,229,"_reduce_325",1,229,"_reduce_none",2,229,"_reduce_327",1,229,"_reduce_none",6,229,"_reduce_329",6,229,"_reduce_330",4,229,"_reduce_331",4,229,"_reduce_332",5,229,"_reduce_333",4,229,"_reduce_334",5,229,"_reduce_335",6,229,"_reduce_336",0,269,"_reduce_337",6,229,"_reduce_338",0,270,"_reduce_339",7,229,"_reduce_340",0,271,"_reduce_341",5,229,"_reduce_342",4,229,"_reduce_343",4,229,"_reduce_344",1,229,"_reduce_345",1,229,"_reduce_346",1,229,"_reduce_347",1,229,"_reduce_348",1,177,"_reduce_none",1,261,"_reduce_350",1,264,"_reduce_351",1,193,"_reduce_352",1,208,"_reduce_353",1,256,"_reduce_none",1,256,"_reduce_none",2,256,"_reduce_356",1,188,"_reduce_none",1,188,"_reduce_none",1,257,"_reduce_none",5,257,"_reduce_360",1,160,"_reduce_none",2,160,"_reduce_362",1,260,"_reduce_none",1,260,"_reduce_none",1,272,"_reduce_365",3,272,"_reduce_366",1,275,"_reduce_367",3,275,"_reduce_368",1,274,"_reduce_none",3,274,"_reduce_370",5,274,"_reduce_371",1,274,"_reduce_372",3,274,"_reduce_373",2,276,"_reduce_374",1,276,"_reduce_375",1,277,"_reduce_none",1,277,"_reduce_none",4,280,"_reduce_378",2,280,"_reduce_379",2,280,"_reduce_380",1,280,"_reduce_381",2,284,"_reduce_382",0,284,"_reduce_383",1,285,"_reduce_none",6,286,"_reduce_385",8,286,"_reduce_386",4,286,"_reduce_387",6,286,"_reduce_388",4,286,"_reduce_389",2,286,"_reduce_none",6,286,"_reduce_391",2,286,"_reduce_392",4,286,"_reduce_393",6,286,"_reduce_394",2,286,"_reduce_395",4,286,"_reduce_396",2,286,"_reduce_397",4,286,"_reduce_398",1,286,"_reduce_none",0,290,"_reduce_400",1,290,"_reduce_401",3,291,"_reduce_402",4,291,"_reduce_403",1,292,"_reduce_404",4,292,"_reduce_405",1,293,"_reduce_406",3,293,"_reduce_407",1,294,"_reduce_408",1,294,"_reduce_none",0,298,"_reduce_410",0,299,"_reduce_411",5,255,"_reduce_412",4,296,"_reduce_413",1,296,"_reduce_414",0,302,"_reduce_415",4,297,"_reduce_416",0,303,"_reduce_417",4,297,"_reduce_418",0,305,"_reduce_419",4,301,"_reduce_420",2,200,"_reduce_421",4,200,"_reduce_422",5,200,"_reduce_423",5,200,"_reduce_424",2,254,"_reduce_425",4,254,"_reduce_426",4,254,"_reduce_427",3,254,"_reduce_428",3,254,"_reduce_429",3,254,"_reduce_430",2,254,"_reduce_431",1,254,"_reduce_432",4,254,"_reduce_433",0,307,"_reduce_434",4,253,"_reduce_435",0,308,"_reduce_436",4,253,"_reduce_437",0,309,"_reduce_438",3,204,"_reduce_439",0,310,"_reduce_440",0,311,"_reduce_441",4,304,"_reduce_442",5,258,"_reduce_443",1,312,"_reduce_444",1,312,"_reduce_none",0,315,"_reduce_446",0,316,"_reduce_447",7,259,"_reduce_448",1,314,"_reduce_449",1,314,"_reduce_none",1,313,"_reduce_451",3,313,"_reduce_452",3,313,"_reduce_453",1,317,"_reduce_none",2,317,"_reduce_455",3,317,"_reduce_456",1,317,"_reduce_457",1,317,"_reduce_458",1,317,"_reduce_459",1,184,"_reduce_none",3,322,"_reduce_461",1,322,"_reduce_none",3,324,"_reduce_463",1,324,"_reduce_none",1,326,"_reduce_465",1,327,"_reduce_466",1,325,"_reduce_none",4,325,"_reduce_468",4,325,"_reduce_469",4,325,"_reduce_470",3,325,"_reduce_471",4,325,"_reduce_472",4,325,"_reduce_473",4,325,"_reduce_474",3,325,"_reduce_475",3,325,"_reduce_476",3,325,"_reduce_477",2,325,"_reduce_478",0,331,"_reduce_479",4,325,"_reduce_480",2,325,"_reduce_481",0,332,"_reduce_482",4,325,"_reduce_483",1,318,"_reduce_484",1,318,"_reduce_485",2,318,"_reduce_486",3,318,"_reduce_487",5,318,"_reduce_488",2,318,"_reduce_489",4,318,"_reduce_490",1,318,"_reduce_none",2,333,"_reduce_492",3,333,"_reduce_493",1,320,"_reduce_494",3,320,"_reduce_495",5,319,"_reduce_496",2,336,"_reduce_497",1,336,"_reduce_498",1,335,"_reduce_499",3,335,"_reduce_500",1,334,"_reduce_none",3,321,"_reduce_502",1,321,"_reduce_503",2,321,"_reduce_504",1,321,"_reduce_505",1,337,"_reduce_506",3,337,"_reduce_507",2,339,"_reduce_508",1,339,"_reduce_509",1,340,"_reduce_510",3,340,"_reduce_511",2,342,"_reduce_512",1,342,"_reduce_513",2,344,"_reduce_514",1,338,"_reduce_none",1,338,"_reduce_none",1,328,"_reduce_none",3,328,"_reduce_518",3,328,"_reduce_519",2,328,"_reduce_520",2,328,"_reduce_521",1,328,"_reduce_none",1,328,"_reduce_none",1,328,"_reduce_none",2,328,"_reduce_525",2,328,"_reduce_526",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_535",1,345,"_reduce_none",1,323,"_reduce_537",2,346,"_reduce_538",2,329,"_reduce_539",3,329,"_reduce_540",1,329,"_reduce_541",6,159,"_reduce_542",0,159,"_reduce_543",1,347,"_reduce_544",1,347,"_reduce_none",1,347,"_reduce_none",2,348,"_reduce_547",1,348,"_reduce_none",2,161,"_reduce_549",1,161,"_reduce_none",1,243,"_reduce_none",1,243,"_reduce_none",1,244,"_reduce_553",1,350,"_reduce_554",2,350,"_reduce_555",3,351,"_reduce_556",1,351,"_reduce_557",1,351,"_reduce_558",3,245,"_reduce_559",4,246,"_reduce_560",3,247,"_reduce_561",0,354,"_reduce_562",3,354,"_reduce_563",1,355,"_reduce_564",2,355,"_reduce_565",3,249,"_reduce_566",0,357,"_reduce_567",3,357,"_reduce_568",3,248,"_reduce_569",3,250,"_reduce_570",0,358,"_reduce_571",3,358,"_reduce_572",0,359,"_reduce_573",3,359,"_reduce_574",0,341,"_reduce_575",2,341,"_reduce_576",0,352,"_reduce_577",2,352,"_reduce_578",0,353,"_reduce_579",2,353,"_reduce_580",1,356,"_reduce_581",2,356,"_reduce_582",0,361,"_reduce_583",4,356,"_reduce_584",1,360,"_reduce_585",1,360,"_reduce_586",1,360,"_reduce_587",1,360,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,362,"_reduce_591",3,363,"_reduce_592",1,349,"_reduce_593",2,349,"_reduce_594",1,226,"_reduce_595",1,226,"_reduce_596",1,226,"_reduce_597",1,226,"_reduce_598",1,217,"_reduce_599",1,217,"_reduce_600",1,217,"_reduce_601",1,217,"_reduce_602",1,217,"_reduce_603",1,218,"_reduce_604",1,218,"_reduce_605",1,218,"_reduce_606",1,218,"_reduce_607",1,218,"_reduce_608",1,218,"_reduce_609",1,218,"_reduce_610",1,251,"_reduce_611",1,251,"_reduce_612",1,176,"_reduce_613",1,176,"_reduce_614",1,181,"_reduce_615",1,181,"_reduce_616",0,364,"_reduce_617",4,262,"_reduce_618",0,262,"_reduce_619",1,228,"_reduce_none",1,228,"_reduce_621",3,365,"_reduce_622",5,365,"_reduce_623",3,365,"_reduce_624",1,265,"_reduce_none",0,367,"_reduce_626",3,265,"_reduce_627",4,366,"_reduce_628",2,366,"_reduce_629",2,366,"_reduce_630",1,366,"_reduce_631",2,369,"_reduce_632",0,369,"_reduce_633",6,300,"_reduce_634",8,300,"_reduce_635",4,300,"_reduce_636",6,300,"_reduce_637",4,300,"_reduce_638",6,300,"_reduce_639",2,300,"_reduce_640",4,300,"_reduce_641",6,300,"_reduce_642",2,300,"_reduce_643",4,300,"_reduce_644",2,300,"_reduce_645",4,300,"_reduce_646",1,300,"_reduce_647",0,300,"_reduce_648",1,238,"_reduce_649",1,295,"_reduce_650",1,295,"_reduce_651",1,295,"_reduce_652",1,295,"_reduce_653",1,273,"_reduce_none",1,273,"_reduce_655",1,371,"_reduce_656",1,372,"_reduce_657",3,372,"_reduce_658",1,287,"_reduce_659",3,287,"_reduce_660",1,373,"_reduce_661",2,374,"_reduce_662",1,374,"_reduce_663",2,375,"_reduce_664",1,375,"_reduce_665",1,281,"_reduce_666",3,281,"_reduce_667",1,368,"_reduce_668",3,368,"_reduce_669",1,343,"_reduce_none",1,343,"_reduce_none",2,279,"_reduce_672",2,278,"_reduce_673",1,278,"_reduce_674",3,376,"_reduce_675",3,377,"_reduce_676",1,288,"_reduce_677",3,288,"_reduce_678",1,370,"_reduce_679",3,370,"_reduce_680",1,378,"_reduce_none",1,378,"_reduce_none",2,289,"_reduce_683",1,289,"_reduce_684",1,379,"_reduce_none",1,379,"_reduce_none",2,283,"_reduce_687",2,282,"_reduce_688",0,282,"_reduce_689",1,195,"_reduce_none",3,195,"_reduce_691",0,252,"_reduce_692",2,252,"_reduce_none",1,236,"_reduce_694",3,236,"_reduce_695",3,380,"_reduce_696",2,380,"_reduce_697",4,380,"_reduce_698",2,380,"_reduce_699",1,207,"_reduce_none",1,207,"_reduce_none",1,207,"_reduce_none",1,201,"_reduce_none",1,201,"_reduce_none",1,201,"_reduce_none",1,201,"_reduce_none",1,306,"_reduce_none",1,306,"_reduce_none",1,306,"_reduce_none",1,196,"_reduce_none",1,196,"_reduce_none",1,180,"_reduce_712",1,180,"_reduce_713",0,152,"_reduce_none",1,152,"_reduce_none",0,182,"_reduce_none",1,182,"_reduce_none",2,212,"_reduce_718",2,179,"_reduce_719",2,330,"_reduce_720",0,235,"_reduce_none",1,235,"_reduce_none",1,235,"_reduce_none",1,263,"_reduce_724",1,263,"_reduce_none",1,154,"_reduce_none",2,154,"_reduce_none",0,233,"_reduce_728"],$Ruby30__reduce_728$542=$hash(!1219,0,"error",1,"kCLASS",2,"kMODULE",3,"kDEF",4,"kUNDEF",5,"kBEGIN",6,"kRESCUE",7,"kENSURE",8,"kEND",9,"kIF",10,"kUNLESS",11,"kTHEN",12,"kELSIF",13,"kELSE",14,"kCASE",15,"kWHEN",16,"kWHILE",17,"kUNTIL",18,"kFOR",19,"kBREAK",20,"kNEXT",21,"kREDO",22,"kRETRY",23,"kIN",24,"kDO",25,"kDO_COND",26,"kDO_BLOCK",27,"kDO_LAMBDA",28,"kRETURN",29,"kYIELD",30,"kSUPER",31,"kSELF",32,"kNIL",33,"kTRUE",34,"kFALSE",35,"kAND",36,"kOR",37,"kNOT",38,"kIF_MOD",39,"kUNLESS_MOD",40,"kWHILE_MOD",41,"kUNTIL_MOD",42,"kRESCUE_MOD",43,"kALIAS",44,"kDEFINED",45,"klBEGIN",46,"klEND",47,"k__LINE__",48,"k__FILE__",49,"k__ENCODING__",50,"tIDENTIFIER",51,"tFID",52,"tGVAR",53,"tIVAR",54,"tCONSTANT",55,"tLABEL",56,"tCVAR",57,"tNTH_REF",58,"tBACK_REF",59,"tSTRING_CONTENT",60,"tINTEGER",61,"tFLOAT",62,"tUPLUS",63,"tUMINUS",64,"tUNARY_NUM",65,"tPOW",66,"tCMP",67,"tEQ",68,"tEQQ",69,"tNEQ",70,"tGEQ",71,"tLEQ",72,"tANDOP",73,"tOROP",74,"tMATCH",75,"tNMATCH",76,"tDOT",77,"tDOT2",78,"tDOT3",79,"tAREF",80,"tASET",81,"tLSHFT",82,"tRSHFT",83,"tCOLON2",84,"tCOLON3",85,"tOP_ASGN",86,"tASSOC",87,"tLPAREN",88,"tLPAREN2",89,"tRPAREN",90,"tLPAREN_ARG",91,"tLBRACK",92,"tLBRACK2",93,"tRBRACK",94,"tLBRACE",95,"tLBRACE_ARG",96,"tSTAR",97,"tSTAR2",98,"tAMPER",99,"tAMPER2",100,"tTILDE",101,"tPERCENT",102,"tDIVIDE",103,"tDSTAR",104,"tPLUS",105,"tMINUS",106,"tLT",107,"tGT",108,"tPIPE",109,"tBANG",110,"tCARET",111,"tLCURLY",112,"tRCURLY",113,"tBACK_REF2",114,"tSYMBEG",115,"tSTRING_BEG",116,"tXSTRING_BEG",117,"tREGEXP_BEG",118,"tREGEXP_OPT",119,"tWORDS_BEG",120,"tQWORDS_BEG",121,"tSYMBOLS_BEG",122,"tQSYMBOLS_BEG",123,"tSTRING_DBEG",124,"tSTRING_DVAR",125,"tSTRING_END",126,"tSTRING_DEND",127,"tSTRING",128,"tSYMBOL",129,"tNL",130,"tEH",131,"tCOLON",132,"tCOMMA",133,"tSPACE",134,"tSEMI",135,"tLAMBDA",136,"tLAMBEG",137,"tCHARACTER",138,"tRATIONAL",139,"tIMAGINARY",140,"tLABEL_END",141,"tANDDOT",142,"tBDOT2",143,"tBDOT3",144,"tEQL",145,"tLOWEST",146),Opal.const_set($nesting[0],"Racc_arg",[racc_action_table,racc_action_check,racc_action_default,racc_action_pointer,racc_goto_table,racc_goto_check,racc_goto_default,racc_goto_pointer,147,racc_reduce_table,$Ruby30__reduce_728$542,1219,729,!0]),Opal.const_set($nesting[0],"Racc_token_to_s_table",["$end","error","kCLASS","kMODULE","kDEF","kUNDEF","kBEGIN","kRESCUE","kENSURE","kEND","kIF","kUNLESS","kTHEN","kELSIF","kELSE","kCASE","kWHEN","kWHILE","kUNTIL","kFOR","kBREAK","kNEXT","kREDO","kRETRY","kIN","kDO","kDO_COND","kDO_BLOCK","kDO_LAMBDA","kRETURN","kYIELD","kSUPER","kSELF","kNIL","kTRUE","kFALSE","kAND","kOR","kNOT","kIF_MOD","kUNLESS_MOD","kWHILE_MOD","kUNTIL_MOD","kRESCUE_MOD","kALIAS","kDEFINED","klBEGIN","klEND","k__LINE__","k__FILE__","k__ENCODING__","tIDENTIFIER","tFID","tGVAR","tIVAR","tCONSTANT","tLABEL","tCVAR","tNTH_REF","tBACK_REF","tSTRING_CONTENT","tINTEGER","tFLOAT","tUPLUS","tUMINUS","tUNARY_NUM","tPOW","tCMP","tEQ","tEQQ","tNEQ","tGEQ","tLEQ","tANDOP","tOROP","tMATCH","tNMATCH","tDOT","tDOT2","tDOT3","tAREF","tASET","tLSHFT","tRSHFT","tCOLON2","tCOLON3","tOP_ASGN","tASSOC","tLPAREN","tLPAREN2","tRPAREN","tLPAREN_ARG","tLBRACK","tLBRACK2","tRBRACK","tLBRACE","tLBRACE_ARG","tSTAR","tSTAR2","tAMPER","tAMPER2","tTILDE","tPERCENT","tDIVIDE","tDSTAR","tPLUS","tMINUS","tLT","tGT","tPIPE","tBANG","tCARET","tLCURLY","tRCURLY","tBACK_REF2","tSYMBEG","tSTRING_BEG","tXSTRING_BEG","tREGEXP_BEG","tREGEXP_OPT","tWORDS_BEG","tQWORDS_BEG","tSYMBOLS_BEG","tQSYMBOLS_BEG","tSTRING_DBEG","tSTRING_DVAR","tSTRING_END","tSTRING_DEND","tSTRING","tSYMBOL","tNL","tEH","tCOLON","tCOMMA","tSPACE","tSEMI","tLAMBDA","tLAMBEG","tCHARACTER","tRATIONAL","tIMAGINARY","tLABEL_END","tANDDOT","tBDOT2","tBDOT3","tEQL","tLOWEST","$start","program","top_compstmt","@1","top_stmts","opt_terms","top_stmt","terms","stmt","begin_block","bodystmt","compstmt","opt_rescue","opt_else","opt_ensure","stmts","stmt_or_begin","fitem","undef_list","expr_value","command_asgn","mlhs","command_call","lhs","mrhs","mrhs_arg","expr","@2","command_rhs","var_lhs","primary_value","opt_call_args","rbracket","call_op","backref","opt_nl","arg","p_expr","@3","@4","expr_value_do","do","def_name","@5","fname","defn_head","k_def","defs_head","singleton","dot_or_colon","@6","command","block_command","block_call","operation2","command_args","cmd_brace_block","brace_body","fcall","@7","operation","k_return","call_args","mlhs_basic","mlhs_inner","rparen","mlhs_head","mlhs_item","mlhs_node","mlhs_post","user_variable","keyword_variable","cname","cpath","op","reswords","symbol","@8","arg_rhs","simple_numeric","rel_expr","f_opt_paren_args","primary","relop","arg_value","aref_args","none","args","trailer","assocs","paren_args","args_forward","opt_paren_args","opt_block_arg","block_arg","@9","literal","strings","xstring","regexp","words","qwords","symbols","qsymbols","var_ref","assoc_list","brace_block","method_call","lambda","then","if_tail","case_body","p_case_body","for_var","k_class","superclass","term","k_module","f_arglist","@10","@11","@12","@13","@14","@15","f_marg","f_norm_arg","f_margs","f_marg_list","f_rest_marg","f_any_kwrest","f_kwrest","f_no_kwarg","block_args_tail","f_block_kwarg","opt_f_block_arg","f_block_arg","opt_block_args_tail","excessed_comma","block_param","f_arg","f_block_optarg","f_rest_arg","opt_block_param","block_param_def","opt_bv_decl","bv_decls","bvar","f_bad_arg","f_larglist","lambda_body","@16","@17","f_args","do_block","@18","@19","do_body","@20","operation3","@21","@22","@23","@24","@25","cases","p_top_expr","p_cases","@26","@27","p_top_expr_body","p_args","p_find","p_args_tail","p_kwargs","p_as","p_variable","p_alt","p_expr_basic","p_lparen","p_lbracket","p_value","p_const","rbrace","@28","@29","p_args_head","p_arg","p_args_post","p_rest","p_kwarg","p_any_kwrest","p_kw","p_kw_label","string_contents","p_kwrest","kwrest_mark","p_kwnorest","p_primitive","p_var_ref","exc_list","exc_var","numeric","string","string1","xstring_contents","regexp_contents","word_list","word","string_content","symbol_list","qword_list","qsym_list","string_dvar","@30","ssym","dsym","@31","f_paren_args","args_tail","@32","f_kwarg","opt_args_tail","f_optarg","f_arg_asgn","f_arg_item","f_label","f_kw","f_block_kw","f_opt","f_block_opt","restarg_mark","blkarg_mark","assoc"]),Opal.const_set($nesting[0],"Racc_debug_parser",!1),Opal.def($Ruby30__reduce_none$543,"$_reduce_1",$Ruby30__reduce_728$542=function(val,_values,result){return this.current_arg_stack.$push(nil),this.max_numparam_stack.$push($hash2(["static"],{static:!0})),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_2",$Ruby30__reduce_728$542=function(val,_values,result){return result=val["$[]"](1),this.current_arg_stack.$pop(),this.max_numparam_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_3",$Ruby30__reduce_728$542=function(val){return this.builder.$compstmt(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_4",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_5",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_6",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_7",$Ruby30__reduce_728$542=function(val){return[val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_9",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"preexe",[val["$[]"](0)].concat(Opal.to_a(val["$[]"](1))))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_10",$Ruby30__reduce_728$542=function(val){return val},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_11",$Ruby30__reduce_728$542=function(val){var ensure_t,ensure_,rescue_bodies=nil,else_t=nil,$ret_or_4=nil,rescue_bodies=val["$[]"](1),$b=val["$[]"](2),$a=Opal.to_ary($b),else_t=null==$a[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1];return $b=val["$[]"](3),ensure_t=null==($a=Opal.to_ary($b))[0]?nil:$a[0],ensure_=null==$a[1]?nil:$a[1],$truthy($truthy($ret_or_4=rescue_bodies["$empty?"]())?else_t["$nil?"]()["$!"]():$ret_or_4)&&this.$diagnostic("error","useless_else",nil,else_t),this.builder.$begin_body(val["$[]"](0),rescue_bodies,else_t,else_,ensure_t,ensure_)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_12",$Ruby30__reduce_728$542=function(val){return this.builder.$compstmt(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_13",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_14",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_15",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_16",$Ruby30__reduce_728$542=function(val){return[val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_18",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","begin_in_method",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_19",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_fname"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_20",$Ruby30__reduce_728$542=function(val){return this.builder.$alias(val["$[]"](0),val["$[]"](1),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_21",$Ruby30__reduce_728$542=function(val){return this.builder.$alias(val["$[]"](0),this.builder.$gvar(val["$[]"](1)),this.builder.$gvar(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_22",$Ruby30__reduce_728$542=function(val){return this.builder.$alias(val["$[]"](0),this.builder.$gvar(val["$[]"](1)),this.builder.$back_ref(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_23",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","nth_ref_alias",nil,val["$[]"](2)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_24",$Ruby30__reduce_728$542=function(val){return this.builder.$undef_method(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_25",$Ruby30__reduce_728$542=function(val){return this.builder.$condition_mod(val["$[]"](0),nil,val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_26",$Ruby30__reduce_728$542=function(val){return this.builder.$condition_mod(nil,val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_27",$Ruby30__reduce_728$542=function(val){return this.builder.$loop_mod("while",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_28",$Ruby30__reduce_728$542=function(val){return this.builder.$loop_mod("until",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_29",$Ruby30__reduce_728$542=function(val){var rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2));return this.builder.$begin_body(val["$[]"](0),[rescue_body])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_30",$Ruby30__reduce_728$542=function(val){return this.builder.$postexe(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_32",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_33",$Ruby30__reduce_728$542=function(val){return this.builder.$assign(val["$[]"](0),val["$[]"](1),this.builder.$array(nil,val["$[]"](2),nil))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_34",$Ruby30__reduce_728$542=function(val){var rescue_body=this.builder.$rescue_body(val["$[]"](3),nil,nil,nil,nil,val["$[]"](4)),begin_body=this.builder.$begin_body(val["$[]"](2),[rescue_body]);return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),begin_body)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_35",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_37",$Ruby30__reduce_728$542=function(val){return this.builder.$assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_38",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_39",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3)),val["$[]"](4),val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_40",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_41",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_42",$Ruby30__reduce_728$542=function(val){var const$=this.builder.$const_op_assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)));return this.builder.$op_assign(const$,val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_43",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_44",$Ruby30__reduce_728$542=function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_46",$Ruby30__reduce_728$542=function(val){var rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2));return this.builder.$begin_body(val["$[]"](0),[rescue_body])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_49",$Ruby30__reduce_728$542=function(val){return this.builder.$logical_op("and",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_50",$Ruby30__reduce_728$542=function(val){return this.builder.$logical_op("or",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_51",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](2),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_52",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_53",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_beg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(this.lexer,"command_start=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.pattern_variables.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_54",$Ruby30__reduce_728$542=function(val){var $writer;return this.pattern_variables.$pop(),$writer=[val["$[]"](2)],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$match_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_55",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_beg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(this.lexer,"command_start=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.pattern_variables.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_56",$Ruby30__reduce_728$542=function(val){var $writer;return this.pattern_variables.$pop(),$writer=[val["$[]"](2)],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$match_pattern_p(val["$[]"](0),val["$[]"](1),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_59",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cond().$push(!0),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_60",$Ruby30__reduce_728$542=function(val){return this.lexer.$cond().$pop(),[val["$[]"](1),val["$[]"](2)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_61",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return this.$local_push(),this.current_arg_stack.$push(nil),result=[val["$[]"](0),this.context.$dup()],$writer=[!0],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_62",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_63",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_fname"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_64",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](4)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_68",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_69",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_70",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3)]),$writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_72",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(nil,nil,val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_73",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method(nil,nil,$a["$[]"](0),nil,$a["$[]"](1),nil),$a=$a["$[]"](2),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_74",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_75",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method($a["$[]"](0),$a["$[]"](1),$a["$[]"](2),nil,$a["$[]"](3),nil),$a=$a["$[]"](4),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_76",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_77",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method($a["$[]"](0),$a["$[]"](1),$a["$[]"](2),nil,$a["$[]"](3),nil),$a=$a["$[]"](4),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_78",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("super",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_79",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("yield",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_80",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("return",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_81",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("break",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_82",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("next",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_83",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_84",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_85",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_86",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_88",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_89",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1),val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_90",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1),val["$[]"](2))).$concat(val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_91",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_92",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1))).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_93",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_94",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))].concat(Opal.to_a(val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_95",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_96",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0))].concat(Opal.to_a(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_98",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_99",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_100",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_101",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_102",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_103",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_104",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_105",$Ruby30__reduce_728$542=function(val){return this.builder.$index_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_106",$Ruby30__reduce_728$542=function(val){return $truthy(val["$[]"](1)["$[]"](0)["$=="]("anddot"))&&this.$diagnostic("error","csend_in_lhs_of_masgn",nil,val["$[]"](1)),this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_107",$Ruby30__reduce_728$542=function(val){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_108",$Ruby30__reduce_728$542=function(val){return $truthy(val["$[]"](1)["$[]"](0)["$=="]("anddot"))&&this.$diagnostic("error","csend_in_lhs_of_masgn",nil,val["$[]"](1)),this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_109",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_110",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_111",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_112",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_113",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_114",$Ruby30__reduce_728$542=function(val){return this.builder.$index_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_115",$Ruby30__reduce_728$542=function(val){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_116",$Ruby30__reduce_728$542=function(val){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_117",$Ruby30__reduce_728$542=function(val){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_118",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_119",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_120",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_121",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","module_name_const",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_123",$Ruby30__reduce_728$542=function(val){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_124",$Ruby30__reduce_728$542=function(val){return this.builder.$const(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_125",$Ruby30__reduce_728$542=function(val){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_131",$Ruby30__reduce_728$542=function(val){return this.builder.$symbol_internal(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_133",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_134",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_fname"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_135",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_207",$Ruby30__reduce_728$542=function(val){return this.builder.$assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_208",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_209",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3)),val["$[]"](4),val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_210",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_211",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_212",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_213",$Ruby30__reduce_728$542=function(val){var const$=this.builder.$const_op_assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)));return this.builder.$op_assign(const$,val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_214",$Ruby30__reduce_728$542=function(val){var const$=this.builder.$const_op_assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)));return this.builder.$op_assign(const$,val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_215",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_216",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_217",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_218",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_219",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_220",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(nil,val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_221",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(nil,val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_222",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_223",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_224",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_225",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_226",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_227",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_228",$Ruby30__reduce_728$542=function(val){return this.builder.$unary_op(val["$[]"](0),this.builder.$binary_op(val["$[]"](1),val["$[]"](2),val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_229",$Ruby30__reduce_728$542=function(val){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_230",$Ruby30__reduce_728$542=function(val){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_231",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_232",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_233",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_234",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_236",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_237",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_238",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_239",$Ruby30__reduce_728$542=function(val){return this.builder.$match_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_240",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_241",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_242",$Ruby30__reduce_728$542=function(val){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_243",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_244",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_245",$Ruby30__reduce_728$542=function(val){return this.builder.$logical_op("and",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_246",$Ruby30__reduce_728$542=function(val){return this.builder.$logical_op("or",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_247",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("defined?",val["$[]"](0),nil,[val["$[]"](2)],nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_248",$Ruby30__reduce_728$542=function(val){return this.builder.$ternary(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](4),val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_249",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],$c=Opal.to_ary(null==$c[1]?nil:$c[1]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return this.$endless_method_name(name_t),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_250",$Ruby30__reduce_728$542=function(val,_values,result){var rescue_body,method_body,$writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],$c=Opal.to_ary(null==$c[1]?nil:$c[1]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_251",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],recv=null==$c[1]?nil:$c[1],dot_t=null==$c[2]?nil:$c[2],$c=Opal.to_ary(null==$c[3]?nil:$c[3]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return this.$endless_method_name(name_t),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_252",$Ruby30__reduce_728$542=function(val,_values,result){var rescue_body,method_body,$writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],recv=null==$c[1]?nil:$c[1],dot_t=null==$c[2]?nil:$c[2],$c=Opal.to_ary(null==$c[3]?nil:$c[3]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_258",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_259",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_263",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$associate(nil,val["$[]"](2),nil))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_264",$Ruby30__reduce_728$542=function(val){return[this.builder.$associate(nil,val["$[]"](0),nil)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_266",$Ruby30__reduce_728$542=function(val){var rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2));return this.builder.$begin_body(val["$[]"](0),[rescue_body])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_267",$Ruby30__reduce_728$542=function(val){return val},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_268",$Ruby30__reduce_728$542=function(val){return $truthy(this.static_env["$declared_forward_args?"]())||this.$diagnostic("error","unexpected_token",$hash2(["token"],{token:"tBDOT3"}),val["$[]"](3)),[val["$[]"](0),[].concat(Opal.to_a(val["$[]"](1))).concat([this.builder.$forwarded_args(val["$[]"](3))]),val["$[]"](4)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_269",$Ruby30__reduce_728$542=function(val){return $truthy(this.static_env["$declared_forward_args?"]())||this.$diagnostic("error","unexpected_token",$hash2(["token"],{token:"tBDOT3"}),val["$[]"](1)),[val["$[]"](0),[this.builder.$forwarded_args(val["$[]"](1))],val["$[]"](2)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_270",$Ruby30__reduce_728$542=function(){return[nil,[],nil]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_272",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_275",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$associate(nil,val["$[]"](2),nil))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_276",$Ruby30__reduce_728$542=function(val){return[this.builder.$associate(nil,val["$[]"](0),nil)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_277",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_278",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_279",$Ruby30__reduce_728$542=function(val,_values,result){return(result=[this.builder.$associate(nil,val["$[]"](0),nil)]).$concat(val["$[]"](1)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_280",$Ruby30__reduce_728$542=function(val,_values,result){var assocs=this.builder.$associate(nil,val["$[]"](2),nil);return(result=val["$[]"](0)["$<<"](assocs)).$concat(val["$[]"](3)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_281",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_282",$Ruby30__reduce_728$542=function(val,_values,result){var top,last_token=nil,$ret_or_5=nil,last_token=this.last_token["$[]"](0),lookahead=$truthy($ret_or_5=last_token["$=="]("tLBRACK"))?$ret_or_5:last_token["$=="]("tLPAREN_ARG");return $truthy(lookahead)?(top=this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$push(!0),this.lexer.$cmdarg().$push(top)):this.lexer.$cmdarg().$push(!0),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_283",$Ruby30__reduce_728$542=function(val){var top,lookahead=this.last_token["$[]"](0)["$=="]("tLBRACE_ARG");return $truthy(lookahead)?(top=this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$push(top)):this.lexer.$cmdarg().$pop(),val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_284",$Ruby30__reduce_728$542=function(val){return this.builder.$block_pass(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_285",$Ruby30__reduce_728$542=function(val){return[val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_286",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_287",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_288",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_289",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_290",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$splat(val["$[]"](2),val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_291",$Ruby30__reduce_728$542=function(val){return this.builder.$array(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_293",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_294",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$splat(val["$[]"](2),val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_295",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_306",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(nil,nil,val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_307",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_308",$Ruby30__reduce_728$542=function(val){return this.lexer.$cmdarg().$pop(),this.builder.$begin_keyword(val["$[]"](0),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_309",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_endarg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_310",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_311",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_endarg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_312",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),nil,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_313",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_314",$Ruby30__reduce_728$542=function(val){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_315",$Ruby30__reduce_728$542=function(val){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_316",$Ruby30__reduce_728$542=function(val){return this.builder.$array(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_317",$Ruby30__reduce_728$542=function(val){return this.builder.$associate(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_318",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("return",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_319",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("yield",val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_320",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("yield",val["$[]"](0),val["$[]"](1),[],val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_321",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("yield",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_322",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("defined?",val["$[]"](0),val["$[]"](2),[val["$[]"](3)],val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_323",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_324",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),val["$[]"](1),nil,val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_325",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method(nil,nil,$a["$[]"](0)),$a=$a["$[]"](1),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_327",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](1),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(val["$[]"](0),begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_329",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](4),$a=Opal.to_ary($a),else_t=null==$a[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1];return this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3),else_t,else_,val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_330",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](4),$a=Opal.to_ary($a),else_t=null==$a[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1];return this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),else_,else_t,val["$[]"](3),val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_331",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"loop",["while",val["$[]"](0)].concat(Opal.to_a(val["$[]"](1))).concat([val["$[]"](2),val["$[]"](3)]))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_332",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"loop",["until",val["$[]"](0)].concat(Opal.to_a(val["$[]"](1))).concat([val["$[]"](2),val["$[]"](3)]))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_333",$Ruby30__reduce_728$542=function(val){var when_bodies,else_t,else_body,$a=[].concat(Opal.to_a(val["$[]"](3))),$c=$a.length-1;return $c=$c<0?0:$c,when_bodies=$slice.call($a,0,$c),else_t=null==($c=Opal.to_ary(null==$a[$c]?nil:$a[$c]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case(val["$[]"](0),val["$[]"](1),when_bodies,else_t,else_body,val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_334",$Ruby30__reduce_728$542=function(val){var when_bodies,else_t,else_body,$a=[].concat(Opal.to_a(val["$[]"](2))),$c=$a.length-1;return $c=$c<0?0:$c,when_bodies=$slice.call($a,0,$c),else_t=null==($c=Opal.to_ary(null==$a[$c]?nil:$a[$c]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case(val["$[]"](0),nil,when_bodies,else_t,else_body,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_335",$Ruby30__reduce_728$542=function(val){var in_bodies,else_t,else_body,$a=[].concat(Opal.to_a(val["$[]"](3))),$c=$a.length-1;return $c=$c<0?0:$c,in_bodies=$slice.call($a,0,$c),else_t=null==($c=Opal.to_ary(null==$a[$c]?nil:$a[$c]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case_match(val["$[]"](0),val["$[]"](1),in_bodies,else_t,else_body,val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_336",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"for",[val["$[]"](0),val["$[]"](1),val["$[]"](2)].concat(Opal.to_a(val["$[]"](3))).concat([val["$[]"](4),val["$[]"](5)]))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_337",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=[!0];return $send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_338",$Ruby30__reduce_728$542=function(val,_values,result){var lt_t,superclass,$writer,ctx=nil,$b=val["$[]"](0),$a=Opal.to_ary($b),k_class=null==$a[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1];return $truthy(this.context.$in_def())&&this.$diagnostic("error","class_in_def",nil,k_class),$b=val["$[]"](2),lt_t=null==($a=Opal.to_ary($b))[0]?nil:$a[0],superclass=null==$a[1]?nil:$a[1],result=this.builder.$def_class(k_class,val["$[]"](1),lt_t,superclass,val["$[]"](4),val["$[]"](5)),this.$local_pop(),$writer=[ctx.$in_class()],$send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_339",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=[!1];return $send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_340",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$a=val["$[]"](0),$a=Opal.to_ary($a),k_class=null==$a[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1];return result=this.builder.$def_sclass(k_class,val["$[]"](1),val["$[]"](2),val["$[]"](5),val["$[]"](6)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[ctx.$in_class()],$send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_341",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=[!0];return $send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_342",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$a=val["$[]"](0),$a=Opal.to_ary($a),k_mod=null==$a[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1];return $truthy(this.context.$in_def())&&this.$diagnostic("error","module_in_def",nil,k_mod),result=this.builder.$def_module(k_mod,val["$[]"](1),val["$[]"](3),val["$[]"](4)),this.$local_pop(),$writer=[ctx.$in_class()],$send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_343",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],$c=Opal.to_ary(null==$c[1]?nil:$c[1]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return result=this.builder.$def_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_344",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],recv=null==$c[1]?nil:$c[1],dot_t=null==$c[2]?nil:$c[2],$c=Opal.to_ary(null==$c[3]?nil:$c[3]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return result=this.builder.$def_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_345",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("break",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_346",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("next",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_347",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("redo",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_348",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("retry",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_350",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),this.context.$dup()]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_351",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),this.context.$dup()]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_352",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_353",$Ruby30__reduce_728$542=function(val,_values,result){var self=this,$ret_or_6=nil,$ret_or_7=nil,$ret_or_8=nil;return $truthy($truthy($ret_or_6=$truthy($ret_or_7=self.context.$in_class())?self.context.$in_def()["$!"]():$ret_or_7)?($truthy($ret_or_8=self.$context().$in_block())?$ret_or_8:self.$context().$in_lambda())["$!"]():$ret_or_6)&&self.$diagnostic("error","invalid_return",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_356",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_360",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](4),$a=Opal.to_ary($a),else_t=null==$a[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1];return[val["$[]"](0),this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3),else_t,else_,nil)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_362",$Ruby30__reduce_728$542=function(val){return val},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_365",$Ruby30__reduce_728$542=function(val){return this.builder.$arg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_366",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_367",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_368",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_370",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_371",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(val["$[]"](2)).$concat(val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_372",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_373",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_374",$Ruby30__reduce_728$542=function(val){return this.builder.$restarg(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_375",$Ruby30__reduce_728$542=function(val){return this.builder.$restarg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_378",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_379",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_380",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_381",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_382",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_383",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_385",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_386",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](6)).$concat(val["$[]"](7))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_387",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_388",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_389",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_391",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_392",$Ruby30__reduce_728$542=function(val){var $ret_or_9=nil;return $truthy($truthy($ret_or_9=val["$[]"](1)["$empty?"]())?val["$[]"](0).$size()["$=="](1):$ret_or_9)?[this.builder.$procarg0(val["$[]"](0)["$[]"](0))]:val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_393",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_394",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_395",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_396",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_397",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_398",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_400",$Ruby30__reduce_728$542=function(){return this.builder.$args(nil,[],nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_401",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_value"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_402",$Ruby30__reduce_728$542=function(val){return this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(nil),this.builder.$args(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_403",$Ruby30__reduce_728$542=function(val){return this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(nil),this.builder.$args(val["$[]"](0),val["$[]"](1).$concat(val["$[]"](2)),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_404",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_405",$Ruby30__reduce_728$542=function(val){return val["$[]"](2)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_406",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_407",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_408",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.builder.$shadowarg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_410",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_411",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_412",$Ruby30__reduce_728$542=function(val){var $writer,self=this,lambda_call=self.builder.$call_lambda(val["$[]"](0)),args=$truthy(self.max_numparam_stack["$has_numparams?"]())?self.builder.$numargs(self.max_numparam_stack.$top()):val["$[]"](2),$a=val["$[]"](4),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2];return self.max_numparam_stack.$pop(),self.static_env.$unextend(),self.lexer.$cmdarg().$pop(),$writer=[val["$[]"](1).$in_lambda()],$send(self.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),self.builder.$block(lambda_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_413",$Ruby30__reduce_728$542=function(val){return this.max_numparam_stack["$has_ordinary_params!"](),this.builder.$args(val["$[]"](0),val["$[]"](1).$concat(val["$[]"](2)),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_414",$Ruby30__reduce_728$542=function(val){return $truthy(val["$[]"](0)["$any?"]())&&this.max_numparam_stack["$has_ordinary_params!"](),this.builder.$args(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_415",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_416",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0),val["$[]"](2),val["$[]"](3)],$writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_417",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_418",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0),val["$[]"](2),val["$[]"](3)],$writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_419",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_420",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3)]),$writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_421",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](1),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],block_args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(val["$[]"](0),begin_t,block_args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_422",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](3),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_423",$Ruby30__reduce_728$542=function(val){var begin_t,body,end_t,$b=val["$[]"](3),$a=Opal.to_ary($b),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t);return $b=val["$[]"](4),begin_t=null==($a=Opal.to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_424",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method($a["$[]"](0),$a["$[]"](1),$a["$[]"](2),nil,$a["$[]"](3),nil),$a=$a["$[]"](4),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_425",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](1),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(nil,nil,val["$[]"](0),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_426",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](3),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_427",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](3),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_428",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_429",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](2),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),nil,lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_430",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](2),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),nil,lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_431",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](1),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$keyword_cmd("super",val["$[]"](0),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_432",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("zsuper",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_433",$Ruby30__reduce_728$542=function(val){return this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_434",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_435",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3)]),$writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_436",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_437",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3)]),$writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_438",$Ruby30__reduce_728$542=function(val,_values,result){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_439",$Ruby30__reduce_728$542=function(val,_values,result){var self=this;return result=[$truthy(self.max_numparam_stack["$has_numparams?"]())?self.builder.$numargs(self.max_numparam_stack.$top()):val["$[]"](1),val["$[]"](2)],self.max_numparam_stack.$pop(),self.static_env.$unextend(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_440",$Ruby30__reduce_728$542=function(val,_values,result){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_441",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_442",$Ruby30__reduce_728$542=function(val,_values,result){var self=this;return result=[$truthy(self.max_numparam_stack["$has_numparams?"]())?self.builder.$numargs(self.max_numparam_stack.$top()):val["$[]"](2),val["$[]"](3)],self.max_numparam_stack.$pop(),self.static_env.$unextend(),self.lexer.$cmdarg().$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_443",$Ruby30__reduce_728$542=function(val){return[this.builder.$when(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))].concat(Opal.to_a(val["$[]"](4)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_444",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_446",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_beg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(this.lexer,"command_start=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.pattern_variables.$push(),this.pattern_hash_keys.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_447",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return this.pattern_variables.$pop(),this.pattern_hash_keys.$pop(),$writer=[val["$[]"](1)],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_448",$Ruby30__reduce_728$542=function(val){return[$send(this.builder,"in_pattern",[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3),val["$[]"](5)]))].concat(Opal.to_a(val["$[]"](6)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_449",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_451",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),nil]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_452",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),this.builder.$if_guard(val["$[]"](1),val["$[]"](2))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_453",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),this.builder.$unless_guard(val["$[]"](1),val["$[]"](2))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_455",$Ruby30__reduce_728$542=function(val){var item=this.builder.$match_with_trailing_comma(val["$[]"](0),val["$[]"](1));return this.builder.$array_pattern(nil,[item],nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_456",$Ruby30__reduce_728$542=function(val){return this.builder.$array_pattern(nil,[val["$[]"](0)].$concat(val["$[]"](2)),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_457",$Ruby30__reduce_728$542=function(val){return this.builder.$find_pattern(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_458",$Ruby30__reduce_728$542=function(val){return this.builder.$array_pattern(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_459",$Ruby30__reduce_728$542=function(val){return this.builder.$hash_pattern(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_461",$Ruby30__reduce_728$542=function(val){return this.builder.$match_as(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_463",$Ruby30__reduce_728$542=function(val){return this.builder.$match_alt(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_465",$Ruby30__reduce_728$542=function(val,_values,result){return result=val["$[]"](0),this.pattern_hash_keys.$push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_466",$Ruby30__reduce_728$542=function(val,_values,result){return result=val["$[]"](0),this.pattern_hash_keys.$push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_468",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$array_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_469",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$find_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_470",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$hash_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_471",$Ruby30__reduce_728$542=function(val){var pattern=this.builder.$array_pattern(val["$[]"](1),nil,val["$[]"](2));return this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_472",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$array_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_473",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$find_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_474",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$hash_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_475",$Ruby30__reduce_728$542=function(val){var pattern=this.builder.$array_pattern(val["$[]"](1),nil,val["$[]"](2));return this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_476",$Ruby30__reduce_728$542=function(val){return this.builder.$array_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_477",$Ruby30__reduce_728$542=function(val){return this.builder.$find_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_478",$Ruby30__reduce_728$542=function(val){return this.builder.$array_pattern(val["$[]"](0),[],val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_479",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return this.pattern_hash_keys.$push(),result=this.context.$in_kwarg(),$writer=[!1],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_480",$Ruby30__reduce_728$542=function(val){var $writer;return this.pattern_hash_keys.$pop(),$writer=[val["$[]"](1)],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$hash_pattern(val["$[]"](0),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_481",$Ruby30__reduce_728$542=function(val){return this.builder.$hash_pattern(val["$[]"](0),[],val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_482",$Ruby30__reduce_728$542=function(val,_values,result){return this.pattern_hash_keys.$push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_483",$Ruby30__reduce_728$542=function(val){return this.pattern_hash_keys.$pop(),this.builder.$begin(val["$[]"](0),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_484",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_485",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_486",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([val["$[]"](1)])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_487",$Ruby30__reduce_728$542=function(val){var match_rest=this.builder.$match_rest(val["$[]"](1),val["$[]"](2));return[].concat(Opal.to_a(val["$[]"](0))).concat([match_rest])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_488",$Ruby30__reduce_728$542=function(val){var match_rest=this.builder.$match_rest(val["$[]"](1),val["$[]"](2));return[].concat(Opal.to_a(val["$[]"](0))).concat([match_rest]).concat(Opal.to_a(val["$[]"](4)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_489",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([this.builder.$match_rest(val["$[]"](1))])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_490",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([this.builder.$match_rest(val["$[]"](1))]).concat(Opal.to_a(val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_492",$Ruby30__reduce_728$542=function(val){return[this.builder.$match_with_trailing_comma(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_493",$Ruby30__reduce_728$542=function(val){var last_item=this.builder.$match_with_trailing_comma(val["$[]"](1),val["$[]"](2));return[].concat(Opal.to_a(val["$[]"](0))).concat([last_item])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_494",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_495",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_496",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](4)])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_497",$Ruby30__reduce_728$542=function(val){return this.builder.$match_rest(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_498",$Ruby30__reduce_728$542=function(val){return this.builder.$match_rest(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_499",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_500",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([val["$[]"](2)])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_502",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat(Opal.to_a(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_503",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_504",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_505",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_506",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_507",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([val["$[]"](2)])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_508",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"match_pair",Opal.to_a(val["$[]"](0)).concat([val["$[]"](1)]))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_509",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"match_label",Opal.to_a(val["$[]"](0)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_510",$Ruby30__reduce_728$542=function(val){return["label",val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_511",$Ruby30__reduce_728$542=function(val){return["quoted",[val["$[]"](0),val["$[]"](1),val["$[]"](2)]]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_512",$Ruby30__reduce_728$542=function(val){return[this.builder.$match_rest(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_513",$Ruby30__reduce_728$542=function(val){return[this.builder.$match_rest(val["$[]"](0),nil)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_514",$Ruby30__reduce_728$542=function(val){return[this.builder.$match_nil_pattern(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_518",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_519",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_520",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_521",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_525",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(nil,val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_526",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(nil,val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_535",$Ruby30__reduce_728$542=function(val){return this.builder.$accessible(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_537",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$match_var(val["$[]"](0)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_538",$Ruby30__reduce_728$542=function(val){var lvar,name=val["$[]"](1)["$[]"](0);return $truthy(this.$static_env()["$declared?"](name))||this.$diagnostic("error","undefined_lvar",$hash2(["name"],{name:name}),val["$[]"](1)),lvar=this.builder.$accessible(this.builder.$ident(val["$[]"](1))),this.builder.$pin(val["$[]"](0),lvar)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_539",$Ruby30__reduce_728$542=function(val){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_540",$Ruby30__reduce_728$542=function(val){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_541",$Ruby30__reduce_728$542=function(val){return this.builder.$const(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_542",$Ruby30__reduce_728$542=function(val){var exc_list=nil,$a=val["$[]"](2),$a=Opal.to_ary($a),assoc_t=null==$a[0]?nil:$a[0],exc_var=null==$a[1]?nil:$a[1];return $truthy(val["$[]"](1))&&(exc_list=this.builder.$array(nil,val["$[]"](1),nil)),[this.builder.$rescue_body(val["$[]"](0),exc_list,assoc_t,exc_var,val["$[]"](3),val["$[]"](4))].concat(Opal.to_a(val["$[]"](5)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_543",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_544",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_547",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_549",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_553",$Ruby30__reduce_728$542=function(val){return this.builder.$string_compose(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_554",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_555",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_556",$Ruby30__reduce_728$542=function(val){var string=this.builder.$string_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2));return this.builder.$dedent_string(string,this.lexer.$dedent_level())},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_557",$Ruby30__reduce_728$542=function(val){var string=this.builder.$string(val["$[]"](0));return this.builder.$dedent_string(string,this.lexer.$dedent_level())},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_558",$Ruby30__reduce_728$542=function(val){return this.builder.$character(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_559",$Ruby30__reduce_728$542=function(val){var string=this.builder.$xstring_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2));return this.builder.$dedent_string(string,this.lexer.$dedent_level())},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_560",$Ruby30__reduce_728$542=function(val){var opts=this.builder.$regexp_options(val["$[]"](3));return this.builder.$regexp_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2),opts)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_561",$Ruby30__reduce_728$542=function(val){return this.builder.$words_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_562",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_563",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$word(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_564",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_565",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_566",$Ruby30__reduce_728$542=function(val){return this.builder.$symbols_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_567",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_568",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$word(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_569",$Ruby30__reduce_728$542=function(val){return this.builder.$words_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_570",$Ruby30__reduce_728$542=function(val){return this.builder.$symbols_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_571",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_572",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$string_internal(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_573",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_574",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$symbol_internal(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_575",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_576",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_577",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_578",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_579",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_580",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_581",$Ruby30__reduce_728$542=function(val){return this.builder.$string_internal(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_582",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_583",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_584",$Ruby30__reduce_728$542=function(val){return this.lexer.$cmdarg().$pop(),this.lexer.$cond().$pop(),this.builder.$begin(val["$[]"](0),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_585",$Ruby30__reduce_728$542=function(val){return this.builder.$gvar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_586",$Ruby30__reduce_728$542=function(val){return this.builder.$ivar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_587",$Ruby30__reduce_728$542=function(val){return this.builder.$cvar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_591",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$symbol(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_592",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$symbol_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_593",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_594",$Ruby30__reduce_728$542=function(val){return $truthy(this.builder["$respond_to?"]("negate"))?this.builder.$negate(val["$[]"](0),val["$[]"](1)):this.builder.$unary_num(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_595",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$integer(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_596",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$float(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_597",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$rational(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_598",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$complex(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_599",$Ruby30__reduce_728$542=function(val){return this.builder.$ident(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_600",$Ruby30__reduce_728$542=function(val){return this.builder.$ivar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_601",$Ruby30__reduce_728$542=function(val){return this.builder.$gvar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_602",$Ruby30__reduce_728$542=function(val){return this.builder.$const(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_603",$Ruby30__reduce_728$542=function(val){return this.builder.$cvar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_604",$Ruby30__reduce_728$542=function(val){return this.builder.$nil(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_605",$Ruby30__reduce_728$542=function(val){return this.builder.$self(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_606",$Ruby30__reduce_728$542=function(val){return this.builder.$true(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_607",$Ruby30__reduce_728$542=function(val){return this.builder.$false(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_608",$Ruby30__reduce_728$542=function(val){return this.builder.$__FILE__(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_609",$Ruby30__reduce_728$542=function(val){return this.builder.$__LINE__(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_610",$Ruby30__reduce_728$542=function(val){return this.builder.$__ENCODING__(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_611",$Ruby30__reduce_728$542=function(val){return this.builder.$accessible(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_612",$Ruby30__reduce_728$542=function(val){return this.builder.$accessible(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_613",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_614",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_615",$Ruby30__reduce_728$542=function(val){return this.builder.$nth_ref(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_616",$Ruby30__reduce_728$542=function(val){return this.builder.$back_ref(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_617",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_value"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_618",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](2)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_619",$Ruby30__reduce_728$542=function(){return nil},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_621",$Ruby30__reduce_728$542=function(){return this.builder.$args(nil,[],nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_622",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.builder.$args(val["$[]"](0),val["$[]"](1),val["$[]"](2)),$writer=["expr_value"],$send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_623",$Ruby30__reduce_728$542=function(val,_values,result){var args=[].concat(Opal.to_a(val["$[]"](1))).concat([this.builder.$forward_arg(val["$[]"](3))]);return result=this.builder.$args(val["$[]"](0),args,val["$[]"](4)),this.static_env.$declare_forward_args(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_624",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.builder.$forward_only_args(val["$[]"](0),val["$[]"](1),val["$[]"](2)),this.static_env.$declare_forward_args(),$writer=["expr_value"],$send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_626",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_627",$Ruby30__reduce_728$542=function(val){var $writer=[val["$[]"](0)];return $send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$args(nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_628",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_629",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_630",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_631",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_632",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_633",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_634",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_635",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](6)).$concat(val["$[]"](7))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_636",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_637",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_638",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_639",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_640",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_641",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_642",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_643",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_644",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_645",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_646",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_647",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_648",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_649",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_650",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","argument_const",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_651",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","argument_ivar",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_652",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","argument_gvar",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_653",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","argument_cvar",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_655",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_656",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(val["$[]"](0)["$[]"](0)),val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_657",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(0),this.builder.$arg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_658",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_659",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_660",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_661",$Ruby30__reduce_728$542=function(val){return this.$check_kwarg_name(val["$[]"](0)),this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(val["$[]"](0)["$[]"](0)),val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_662",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(nil),this.builder.$kwoptarg(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_663",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(nil),this.builder.$kwarg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_664",$Ruby30__reduce_728$542=function(val){return this.builder.$kwoptarg(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_665",$Ruby30__reduce_728$542=function(val){return this.builder.$kwarg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_666",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_667",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_668",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_669",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_672",$Ruby30__reduce_728$542=function(val){return[this.builder.$kwnilarg(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_673",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),[this.builder.$kwrestarg(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_674",$Ruby30__reduce_728$542=function(val){return[this.builder.$kwrestarg(val["$[]"](0))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_675",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(0),this.builder.$optarg(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_676",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(0),this.builder.$optarg(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_677",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_678",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_679",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_680",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_683",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),[this.builder.$restarg(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_684",$Ruby30__reduce_728$542=function(val){return[this.builder.$restarg(val["$[]"](0))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_687",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),this.builder.$blockarg(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_688",$Ruby30__reduce_728$542=function(val){return[val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_689",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_691",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_692",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_694",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_695",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_696",$Ruby30__reduce_728$542=function(val){return this.builder.$pair(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_697",$Ruby30__reduce_728$542=function(val){return this.builder.$pair_keyword(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_698",$Ruby30__reduce_728$542=function(val){return this.builder.$pair_quoted(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_699",$Ruby30__reduce_728$542=function(val){return this.builder.$kwsplat(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_712",$Ruby30__reduce_728$542=function(val){return["dot",val["$[]"](0)["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_713",$Ruby30__reduce_728$542=function(val){return["anddot",val["$[]"](0)["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_718",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_719",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_720",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_724",$Ruby30__reduce_728$542=function(val,_values,result){return this.$yyerrok(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_728",$Ruby30__reduce_728$542=function(){return nil},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_none",$Ruby30__reduce_none$543=function(val){return val["$[]"](0)},$Ruby30__reduce_none$543.$$arity=3),nil&&"_reduce_none"}($nesting[0],$$$($$($nesting,"Parser"),"Base"),$nesting)}($nesting[0],$nesting)},Opal.modules["opal/ast/builder"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=(Opal.$$,Opal.module),$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$emit_lambda=","$-","$new"]),self.$require("opal/ast/node"),self.$require("parser/ruby30"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($Builder_n$1,lhs,rhs){$Builder_n$1=$klass($Builder_n$1,lhs,"Builder"),[$Builder_n$1].concat(rhs),lhs=nil,lhs=[!0];return $send($Builder_n$1,"emit_lambda=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),Opal.def($Builder_n$1,"$n",$Builder_n$1=function(type,children,location){return $$$($$$($$$("::","Opal"),"AST"),"Node").$new(type,children,$hash2(["location"],{location:location}))},$Builder_n$1.$$arity=3),nil&&"n"}($nesting[0],$$$($$$($$$("::","Parser"),"Builders"),"Default"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/base"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$alias=Opal.alias,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$new","$current_node","$loc","$+","$stmts_of","$begin_with_stmts","$nil?","$include?","$type","$children","$length","$===","$[]","$s","$attr_accessor","$current_node=","$-","$location=","$raise"]),self.$require("parser"),self.$require("opal/ast/node"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$Base_error$16,$Base_begin_with_stmts$14){var $Base_process$15,$Base_error$16=$klass($base,$Base_error$16,"Base"),$nesting=[$Base_error$16].concat($Base_begin_with_stmts$14);return function($DummyLocation_last_line$8,$DummyLocation_column$7){var $nesting=[$DummyLocation_last_line$8=$klass($DummyLocation_last_line$8,null,"DummyLocation")].concat($DummyLocation_column$7);Opal.def($DummyLocation_last_line$8,"$node=",$DummyLocation_column$7=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$DummyLocation_column$7.$$arity=-1),Opal.def($DummyLocation_last_line$8,"$expression",$DummyLocation_column$7=function(){return this},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$begin_pos",$DummyLocation_column$7=function(){return 0},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$end_pos",$DummyLocation_column$7=function(){return 0},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$source",$DummyLocation_column$7=function(){return""},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$line",$DummyLocation_column$7=function(){return 0},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$column",$DummyLocation_column$7=function(){return 0},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$last_line",$DummyLocation_last_line$8=function(){return $$$($$($nesting,"Float"),"INFINITY")},$DummyLocation_last_line$8.$$arity=0)}($nesting[0],$nesting),Opal.const_set($nesting[0],"DUMMY_LOCATION",$$($nesting,"DummyLocation").$new()),Opal.def($Base_error$16,"$s",$Base_begin_with_stmts$14=function(type,$a){var self=this,children=Opal.slice.call(arguments,1,arguments.length),loc=$truthy(self.$current_node())?self.$current_node().$loc():$$($nesting,"DUMMY_LOCATION");return $$$($$$($$$("::","Opal"),"AST"),"Node").$new(type,children,$hash2(["location"],{location:loc}))},$Base_begin_with_stmts$14.$$arity=-2),Opal.defs($Base_error$16,"$s",$Base_begin_with_stmts$14=function(type,$a){var children=Opal.slice.call(arguments,1,arguments.length);return $$$($$$($$$("::","Opal"),"AST"),"Node").$new(type,children,$hash2(["location"],{location:$$($nesting,"DUMMY_LOCATION")}))},$Base_begin_with_stmts$14.$$arity=-2),$alias($Base_error$16,"on_iter","process_regular_node"),$alias($Base_error$16,"on_top","process_regular_node"),$alias($Base_error$16,"on_zsuper","process_regular_node"),$alias($Base_error$16,"on_jscall","on_send"),$alias($Base_error$16,"on_jsattr","process_regular_node"),$alias($Base_error$16,"on_jsattrasgn","process_regular_node"),$alias($Base_error$16,"on_kwsplat","process_regular_node"),Opal.def($Base_error$16,"$prepend_to_body",$Base_begin_with_stmts$14=function(body,node){var stmts=$rb_plus(this.$stmts_of(node),this.$stmts_of(body));return this.$begin_with_stmts(stmts)},$Base_begin_with_stmts$14.$$arity=2),Opal.def($Base_error$16,"$append_to_body",$Base_begin_with_stmts$14=function(body,node){var stmts=$rb_plus(this.$stmts_of(body),this.$stmts_of(node));return this.$begin_with_stmts(stmts)},$Base_begin_with_stmts$14.$$arity=2),Opal.def($Base_error$16,"$stmts_of",$Base_begin_with_stmts$14=function(node){return $truthy(node["$nil?"]())?[]:$truthy(["begin","kwbegin"]["$include?"](node.$type()))?node.$children():[node]},$Base_begin_with_stmts$14.$$arity=1),Opal.def($Base_error$16,"$begin_with_stmts",$Base_begin_with_stmts$14=function(stmts){var self=this,$case=nil;return $case=stmts.$length(),0["$==="]($case)?nil:1["$==="]($case)?stmts["$[]"](0):$send(self,"s",["begin"].concat(Opal.to_a(stmts)))},$Base_begin_with_stmts$14.$$arity=1),$Base_error$16.$attr_accessor("current_node"),Opal.def($Base_error$16,"$process",$Base_process$15=function(node){var $zuper_ii,$iter=$Base_process$15.$$p,self=this,$writer=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Base_process$15.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return function(){try{return $writer=[node],$send(self,"current_node=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send2(self,$find_super(self,"process",$Base_process$15,!1,!0),"process",$zuper,$iter)}finally{$writer=[nil],$send(self,"current_node=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$Base_process$15.$$arity=1),Opal.def($Base_error$16,"$error",$Base_error$16=function(msg){var $writer,error=$$$($$$("::","Opal"),"RewritingError").$new(msg);return $truthy(this.$current_node())&&($writer=[this.$current_node().$loc()],$send(error,"location=",Opal.to_a($writer)),$rb_minus($writer.length,1)),this.$raise(error)},$Base_error$16.$$arity=1),nil&&"error"}($nesting[0],$$$($$$($$$("::","Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/opal_engine_check"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$children","$skip_check_present?","$process","$s","$skip_check_present_not?","$=="]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$OpalEngineCheck_skip_check_present_not$ques$3){var $OpalEngineCheck_on_if$1,self=$klass($base,self,"OpalEngineCheck"),$nesting=[self].concat($OpalEngineCheck_skip_check_present_not$ques$3);return Opal.def(self,"$on_if",$OpalEngineCheck_on_if$1=function(node){var $a,test,true_body,false_body,$zuper_ii,$iter=$OpalEngineCheck_on_if$1.$$p,self=this,$ret_or_1=nil,$ret_or_2=nil,$zuper=nil,$zuper_i=nil;for($iter&&($OpalEngineCheck_on_if$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return test=null==($a=[].concat(Opal.to_a(node.$children())))[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],$truthy(self["$skip_check_present?"](test))?self.$process($truthy($ret_or_1=true_body)?$ret_or_1:self.$s("nil")):$truthy(self["$skip_check_present_not?"](test))?self.$process($truthy($ret_or_2=false_body)?$ret_or_2:self.$s("nil")):$send2(self,$find_super(self,"on_if",$OpalEngineCheck_on_if$1,!1,!0),"on_if",$zuper,$iter)},$OpalEngineCheck_on_if$1.$$arity=1),Opal.def(self,"$skip_check_present?",$OpalEngineCheck_skip_check_present_not$ques$3=function(test){var $ret_or_3;return $truthy($ret_or_3=test["$=="]($$($nesting,"RUBY_ENGINE_CHECK")))?$ret_or_3:test["$=="]($$($nesting,"RUBY_PLATFORM_CHECK"))},$OpalEngineCheck_skip_check_present_not$ques$3.$$arity=1),Opal.def(self,"$skip_check_present_not?",$OpalEngineCheck_skip_check_present_not$ques$3=function(test){var $ret_or_4;return $truthy($ret_or_4=test["$=="]($$($nesting,"RUBY_ENGINE_CHECK_NOT")))?$ret_or_4:test["$=="]($$($nesting,"RUBY_PLATFORM_CHECK_NOT"))},$OpalEngineCheck_skip_check_present_not$ques$3.$$arity=1),Opal.const_set($nesting[0],"RUBY_ENGINE_CHECK",self.$s("send",self.$s("const",nil,"RUBY_ENGINE"),"==",self.$s("str","opal"))),Opal.const_set($nesting[0],"RUBY_ENGINE_CHECK_NOT",self.$s("send",self.$s("const",nil,"RUBY_ENGINE"),"!=",self.$s("str","opal"))),Opal.const_set($nesting[0],"RUBY_PLATFORM_CHECK",self.$s("send",self.$s("const",nil,"RUBY_PLATFORM"),"==",self.$s("str","opal"))),Opal.const_set($nesting[0],"RUBY_PLATFORM_CHECK_NOT",self.$s("send",self.$s("const",nil,"RUBY_PLATFORM"),"!=",self.$s("str","opal")))}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/for_rewriter"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$+","$find","$map","$s","$next_tmp","$class","$type","$===","$<<","$prepend_to_body","$process","$attr_reader","$new","$to_a","$result"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$ForRewriter_on_for$3,$ForRewriter_next_tmp$2){var $ForRewriter_on_for$3=$klass($base,$ForRewriter_on_for$3,"ForRewriter"),$nesting=[$ForRewriter_on_for$3].concat($ForRewriter_next_tmp$2);return Opal.defs($ForRewriter_on_for$3,"$reset_tmp_counter!",$ForRewriter_next_tmp$2=function(){return this.counter=0},$ForRewriter_next_tmp$2.$$arity=0),Opal.defs($ForRewriter_on_for$3,"$next_tmp",$ForRewriter_next_tmp$2=function(){var self=this,$ret_or_1=nil;return null==self.counter&&(self.counter=nil),self.counter=$truthy($ret_or_1=self.counter)?$ret_or_1:0,self.counter=$rb_plus(self.counter,1),"$for_tmp"+self.counter},$ForRewriter_next_tmp$2.$$arity=0),Opal.def($ForRewriter_on_for$3,"$on_for",$ForRewriter_on_for$3=function(node){var $$4,self=this,loop_variable=nil,loop_variable_assignment=nil,$case=nil,$a=[].concat(Opal.to_a(node)),loop_variable=null==$a[0]?nil:$a[0],iterating_value=null==$a[1]?nil:$a[1],loop_body=null==$a[2]?nil:$a[2],iterating_lvars=$$($nesting,"LocalVariableAssigns").$find(loop_variable),lvars_declared_in_body=$$($nesting,"LocalVariableAssigns").$find(loop_body),outer_assigns=$send($rb_plus(iterating_lvars,lvars_declared_in_body),"map",[],(($$4=function(lvar_name){var self=null==$$4.$$s?this:$$4.$$s;return null==lvar_name&&(lvar_name=nil),self.$s("lvdeclare",lvar_name)}).$$s=self,$$4.$$arity=1,$$4)),tmp_loop_variable=self.$class().$next_tmp(),get_tmp_loop_variable=self.$s("js_tmp",tmp_loop_variable);return $case=loop_variable.$type(),loop_variable_assignment="mlhs"["$==="]($case)?self.$s("masgn",loop_variable,get_tmp_loop_variable):loop_variable["$<<"](get_tmp_loop_variable),loop_body=self.$prepend_to_body(loop_body,loop_variable_assignment),node=self.$s("send",iterating_value,"each",self.$s("iter",self.$s("args",self.$s("arg",tmp_loop_variable)),self.$process(loop_body))),$send(self,"s",["begin"].concat(Opal.to_a(outer_assigns)).concat([node]))},$ForRewriter_on_for$3.$$arity=1),function($base,self,$LocalVariableAssigns_initialize$6){var $LocalVariableAssigns_on_lvasgn$7,self=$klass($base,self,"LocalVariableAssigns"),$nesting=[self].concat($LocalVariableAssigns_initialize$6);return self.$attr_reader("result"),Opal.defs(self,"$find",$LocalVariableAssigns_initialize$6=function(node){var processor=nil;return(processor=this.$new()).$process(node),processor.$result().$to_a()},$LocalVariableAssigns_initialize$6.$$arity=1),Opal.def(self,"$initialize",$LocalVariableAssigns_initialize$6=function(){return this.result=$$($nesting,"Set").$new()},$LocalVariableAssigns_initialize$6.$$arity=0),Opal.def(self,"$on_lvasgn",$LocalVariableAssigns_on_lvasgn$7=function(node){var $a,name,$zuper_ii,$iter=$LocalVariableAssigns_on_lvasgn$7.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($LocalVariableAssigns_on_lvasgn$7.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return name=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],this.$result()["$<<"](name),$send2(this,$find_super(this,"on_lvasgn",$LocalVariableAssigns_on_lvasgn$7,!1,!0),"on_lvasgn",$zuper,$iter)},$LocalVariableAssigns_on_lvasgn$7.$$arity=1),nil&&"on_lvasgn"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/explicit_writer_return"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$send=Opal.send;return Opal.add_stubs(["$require","$s","$=~","$to_s","$==","$process_all","$updated"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$ExplicitWriterReturn_initialize$1){var $ExplicitWriterReturn_on_send$2,$ExplicitWriterReturn_on_masgn$3,self=$klass($base,self,"ExplicitWriterReturn"),$nesting=[self].concat($ExplicitWriterReturn_initialize$1);return self.$$prototype.in_masgn=nil,Opal.def(self,"$initialize",$ExplicitWriterReturn_initialize$1=function(){return this.in_masgn=!1},$ExplicitWriterReturn_initialize$1.$$arity=0),Opal.const_set($nesting[0],"TMP_NAME","$writer"),Opal.const_set($nesting[0],"GET_ARGS_NODE",self.$s("lvar",$$($nesting,"TMP_NAME"))),Opal.const_set($nesting[0],"RETURN_ARGS_NODE",self.$s("jsattr",$$($nesting,"GET_ARGS_NODE"),self.$s("send",self.$s("jsattr",$$($nesting,"GET_ARGS_NODE"),self.$s("str","length")),"-",self.$s("int",1)))),Opal.def(self,"$on_send",$ExplicitWriterReturn_on_send$2=function(node){var $a,recv,args,set_args_node,$zuper_ii,$iter=$ExplicitWriterReturn_on_send$2.$$p,method_name=nil,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ExplicitWriterReturn_on_send$2.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy(this.in_masgn)?$send2(this,$find_super(this,"on_send",$ExplicitWriterReturn_on_send$2,!1,!0),"on_send",$zuper,$iter):(recv=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy($truthy($ret_or_1=method_name.$to_s()["$=~"](Opal.regexp([$$($nesting,"REGEXP_START"),"\\w+=",$$($nesting,"REGEXP_END")])))?$ret_or_1:method_name.$to_s()["$=="]("[]="))?(set_args_node=this.$s("lvasgn",$$($nesting,"TMP_NAME"),$send(this,"s",["array"].concat(Opal.to_a(this.$process_all(args))))),this.$s("begin",set_args_node,node.$updated(nil,[recv,method_name,this.$s("splat",$$($nesting,"GET_ARGS_NODE"))]),$$($nesting,"RETURN_ARGS_NODE"))):$send2(this,$find_super(this,"on_send",$ExplicitWriterReturn_on_send$2,!1,!0),"on_send",$zuper,$iter))},$ExplicitWriterReturn_on_send$2.$$arity=1),Opal.def(self,"$on_masgn",$ExplicitWriterReturn_on_masgn$3=function(node){var result,$zuper_ii,$iter=$ExplicitWriterReturn_on_masgn$3.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($ExplicitWriterReturn_on_masgn$3.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return this.in_masgn=!0,result=$send2(this,$find_super(this,"on_masgn",$ExplicitWriterReturn_on_masgn$3,!1,!0),"on_masgn",$zuper,$iter),this.in_masgn=!1,result},$ExplicitWriterReturn_on_masgn$3.$$arity=1),nil&&"on_masgn"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/js_reserved_words"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$freeze","$=~","$!","$valid_name?","$class","$to_sym","$valid_ivar_name?","$[]","$to_s","$updated","$fix_var_name","$fix_ivar_name"]),self.$require("opal/rewriters/base"),self.$require("opal/regexp_anchors"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$JsReservedWords_on_restarg$9){var $JsReservedWords_on_lvar$5,$JsReservedWords_on_lvasgn$6,$JsReservedWords_on_ivar$7,$JsReservedWords_on_ivasgn$8,$JsReservedWords_on_argument$10,self=$klass($base,self,"JsReservedWords"),$nesting=[self].concat($JsReservedWords_on_restarg$9);return Opal.const_set($nesting[0],"ES51_RESERVED_WORD",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"ES3_RESERVED_WORD_EXCLUSIVE",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"PROTO_SPECIAL_PROPS",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"PROTO_SPECIAL_METHODS",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:hasOwnProperty|valueOf)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"IMMUTABLE_PROPS",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:NaN|Infinity|undefined)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"BASIC_IDENTIFIER_RULES",Opal.regexp([$$($nesting,"REGEXP_START"),"[$_a-z][$_a-z\\d]*",$$($nesting,"REGEXP_END")],"i").$freeze()),Opal.const_set($nesting[0],"RESERVED_FUNCTION_NAMES",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:Array)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.defs(self,"$valid_name?",$JsReservedWords_on_restarg$9=function(name){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$$($nesting,"BASIC_IDENTIFIER_RULES")["$=~"](name))?($truthy($ret_or_2=$truthy($ret_or_3=$$($nesting,"ES51_RESERVED_WORD")["$=~"](name))?$ret_or_3:$$($nesting,"ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](name))?$ret_or_2:$$($nesting,"IMMUTABLE_PROPS")["$=~"](name))["$!"]():$ret_or_1},$JsReservedWords_on_restarg$9.$$arity=1),Opal.defs(self,"$valid_ivar_name?",$JsReservedWords_on_restarg$9=function(name){var $ret_or_4=nil;return($truthy($ret_or_4=$$($nesting,"PROTO_SPECIAL_PROPS")["$=~"](name))?$ret_or_4:$$($nesting,"PROTO_SPECIAL_METHODS")["$=~"](name))["$!"]()},$JsReservedWords_on_restarg$9.$$arity=1),Opal.def(self,"$fix_var_name",$JsReservedWords_on_restarg$9=function(name){return $truthy(this.$class()["$valid_name?"](name))?name:(name+"$").$to_sym()},$JsReservedWords_on_restarg$9.$$arity=1),Opal.def(self,"$fix_ivar_name",$JsReservedWords_on_restarg$9=function(name){return $truthy(this.$class()["$valid_ivar_name?"](name.$to_s()["$[]"]($range(1,-1,!1))))?name:(name+"$").$to_sym()},$JsReservedWords_on_restarg$9.$$arity=1),Opal.def(self,"$on_lvar",$JsReservedWords_on_lvar$5=function(node){var name,$a=$JsReservedWords_on_lvar$5.$$p;return $a&&($JsReservedWords_on_lvar$5.$$p=null),name=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],node=node.$updated(nil,[this.$fix_var_name(name)]),$send2(this,$find_super(this,"on_lvar",$JsReservedWords_on_lvar$5,!1,!0),"on_lvar",[node],null)},$JsReservedWords_on_lvar$5.$$arity=1),Opal.def(self,"$on_lvasgn",$JsReservedWords_on_lvasgn$6=function(node){var name,value,$a=$JsReservedWords_on_lvasgn$6.$$p,self=this;return $a&&($JsReservedWords_on_lvasgn$6.$$p=null),$a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=$truthy(value)?node.$updated(nil,[self.$fix_var_name(name),value]):node.$updated(nil,[self.$fix_var_name(name)]),$send2(self,$find_super(self,"on_lvasgn",$JsReservedWords_on_lvasgn$6,!1,!0),"on_lvasgn",[node],null)},$JsReservedWords_on_lvasgn$6.$$arity=1),Opal.def(self,"$on_ivar",$JsReservedWords_on_ivar$7=function(node){var name,$a=$JsReservedWords_on_ivar$7.$$p;return $a&&($JsReservedWords_on_ivar$7.$$p=null),name=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],node=node.$updated(nil,[this.$fix_ivar_name(name)]),$send2(this,$find_super(this,"on_ivar",$JsReservedWords_on_ivar$7,!1,!0),"on_ivar",[node],null)},$JsReservedWords_on_ivar$7.$$arity=1),Opal.def(self,"$on_ivasgn",$JsReservedWords_on_ivasgn$8=function(node){var name,value,$a=$JsReservedWords_on_ivasgn$8.$$p,self=this;return $a&&($JsReservedWords_on_ivasgn$8.$$p=null),$a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=$truthy(value)?node.$updated(nil,[self.$fix_ivar_name(name),value]):node.$updated(nil,[self.$fix_ivar_name(name)]),$send2(self,$find_super(self,"on_ivasgn",$JsReservedWords_on_ivasgn$8,!1,!0),"on_ivasgn",[node],null)},$JsReservedWords_on_ivasgn$8.$$arity=1),Opal.def(self,"$on_restarg",$JsReservedWords_on_restarg$9=function(node){var $a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0];null==$a[1]||$a[1];return $truthy(name)&&(node=node.$updated(nil,[this.$fix_var_name(name)],$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:name})}))),node},$JsReservedWords_on_restarg$9.$$arity=1),Opal.def(self,"$on_argument",$JsReservedWords_on_argument$10=function(node){var name,value,fixed_name,new_children,$a=$JsReservedWords_on_argument$10.$$p;return $a&&($JsReservedWords_on_argument$10.$$p=null),node=$send2(this,$find_super(this,"on_argument",$JsReservedWords_on_argument$10,!1,!0),"on_argument",[node],null),name=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],fixed_name=this.$fix_var_name(name),new_children=$truthy(value)?[fixed_name,value]:[fixed_name],node.$updated(nil,new_children,$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:name})}))},$JsReservedWords_on_argument$10.$$arity=1),nil&&"on_argument"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/block_to_iter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$s","$updated","$+","$children"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$parent_nesting){var $BlockToIter_on_block$1,self=$klass($base,self,"BlockToIter");[self].concat($parent_nesting);return Opal.def(self,"$on_block",$BlockToIter_on_block$1=function(node){var args,body,$zuper_ii,$a=$BlockToIter_on_block$1.$$p,lhs=nil,rhs=nil,$zuper=nil,$zuper_i=nil;for($a&&($BlockToIter_on_block$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return lhs=null==($a=[].concat(Opal.to_a($send2(this,$find_super(this,"on_block",$BlockToIter_on_block$1,!1,!0),"on_block",$zuper,$a))))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],rhs=this.$s("iter",args,body),lhs.$updated(nil,(lhs=lhs.$children(),rhs=[rhs],"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)))},$BlockToIter_on_block$1.$$arity=1),nil&&"on_block"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$slice=Opal.slice,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send;return Opal.add_stubs(["$require","$==","$type","$===","$!=","$size","$error","$first","$to_js_attr_call","$to_js_attr_assign_call","$to_native_js_call","$s"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$DotJsSyntax_to_js_attr_assign_call$4,$DotJsSyntax_to_js_attr_call$3){var $DotJsSyntax_on_send$1,$DotJsSyntax_to_js_attr_assign_call$4=$klass($base,$DotJsSyntax_to_js_attr_assign_call$4,"DotJsSyntax");[$DotJsSyntax_to_js_attr_assign_call$4].concat($DotJsSyntax_to_js_attr_call$3);return Opal.def($DotJsSyntax_to_js_attr_assign_call$4,"$on_send",$DotJsSyntax_on_send$1=function(node){var $a,meth,recv_of_recv,$case,value,$zuper_ii,$iter=$DotJsSyntax_on_send$1.$$p,recv=nil,args=nil,$ret_or_1=nil,meth_of_recv=nil,property=nil,$zuper=nil,$zuper_i=nil;for($iter&&($DotJsSyntax_on_send$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $a=[].concat(Opal.to_a(node)),recv=null==$a[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy($truthy($ret_or_1=recv)?recv.$type()["$=="]("send"):$ret_or_1)?(recv_of_recv=null==($a=[].concat(Opal.to_a(recv)))[0]?nil:$a[0],meth_of_recv=null==$a[1]?nil:$a[1],null==$a[2]||$a[2],meth_of_recv["$=="]("JS")?(node="[]"["$==="]($case=meth)?($truthy(args.$size()["$!="](1))&&this.$error(".JS[:property] syntax supports only one argument"),property=args.$first(),this.$to_js_attr_call(recv_of_recv,property)):"[]="["$==="]($case)?($truthy(args.$size()["$!="](2))&&this.$error(".JS[:property]= syntax supports only two arguments"),property=null==($a=[].concat(Opal.to_a(args)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],this.$to_js_attr_assign_call(recv_of_recv,property,value)):this.$to_native_js_call(recv_of_recv,meth,args),$send2(this,$find_super(this,"on_send",$DotJsSyntax_on_send$1,!1,!0),"on_send",[node],null)):$send2(this,$find_super(this,"on_send",$DotJsSyntax_on_send$1,!1,!0),"on_send",$zuper,$iter)):$send2(this,$find_super(this,"on_send",$DotJsSyntax_on_send$1,!1,!0),"on_send",$zuper,$iter)},$DotJsSyntax_on_send$1.$$arity=1),Opal.def($DotJsSyntax_to_js_attr_assign_call$4,"$to_native_js_call",$DotJsSyntax_to_js_attr_call$3=function(recv,meth,args){return $send(this,"s",["jscall",recv,meth].concat(Opal.to_a(args)))},$DotJsSyntax_to_js_attr_call$3.$$arity=3),Opal.def($DotJsSyntax_to_js_attr_assign_call$4,"$to_js_attr_call",$DotJsSyntax_to_js_attr_call$3=function(recv,property){return this.$s("jsattr",recv,property)},$DotJsSyntax_to_js_attr_call$3.$$arity=2),Opal.def($DotJsSyntax_to_js_attr_assign_call$4,"$to_js_attr_assign_call",$DotJsSyntax_to_js_attr_assign_call$4=function(recv,property,value){return this.$s("jsattrasgn",recv,property,value)},$DotJsSyntax_to_js_attr_assign_call$4.$$arity=3),nil&&"to_js_attr_assign_call"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/pattern_matching"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$require","$s","$convert_full_pattern","$raise_no_matching_pattern_error","$+","$process","$single_case_match","$private","$shift","$type","$===","$!","$empty?","$!=","$==","$class","$new","$run!","$variables","$pattern","$map","$<<","$array","$on_literal","$first","$children","$to_proc","$method","$each","$to_ast","$on_array_pattern","$compact","$[]"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$PatternMatching_convert_full_pattern$7,$PatternMatching_single_case_match$6){var $PatternMatching_initialize$1,$PatternMatching_convert_full_pattern$7=$klass($base,$PatternMatching_convert_full_pattern$7,"PatternMatching"),$nesting=[$PatternMatching_convert_full_pattern$7].concat($PatternMatching_single_case_match$6);return $PatternMatching_convert_full_pattern$7.$$prototype.depth=nil,Opal.def($PatternMatching_convert_full_pattern$7,"$initialize",$PatternMatching_initialize$1=function(){var $zuper_ii,$iter=$PatternMatching_initialize$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($PatternMatching_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return this.depth=0,$send2(this,$find_super(this,"initialize",$PatternMatching_initialize$1,!1,!0),"initialize",$zuper,$iter)},$PatternMatching_initialize$1.$$arity=0),Opal.def($PatternMatching_convert_full_pattern$7,"$on_match_pattern",$PatternMatching_single_case_match$6=function($a){var $a=[].concat(Opal.to_a($a)),from=null==$a[0]?nil:$a[0],pat=null==$a[1]?nil:$a[1];return this.$s("begin",this.$s("lvasgn","$pmvar",from),this.$s("if",this.$convert_full_pattern(from,pat),nil,this.$raise_no_matching_pattern_error("$pmvar")))},$PatternMatching_single_case_match$6.$$arity=1),Opal.def($PatternMatching_convert_full_pattern$7,"$on_match_pattern_p",$PatternMatching_single_case_match$6=function($a){var $a=[].concat(Opal.to_a($a)),from=null==$a[0]?nil:$a[0],pat=null==$a[1]?nil:$a[1];return this.$s("if",this.$convert_full_pattern(from,pat),this.$s("true"),this.$s("false"))},$PatternMatching_single_case_match$6.$$arity=1),Opal.def($PatternMatching_convert_full_pattern$7,"$on_case_match",$PatternMatching_single_case_match$6=function($b){var $a,from,cases,cmvar=nil,els=nil;return this.depth=$rb_plus(this.depth,1),cmvar="$cmvar"+this.depth,from=null==($a=[].concat(Opal.to_a($b)))[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,cases=$slice.call($a,1,$b),els=null==$a[$b]?nil:$a[$b],$truthy(els)?this.$process(els):els=this.$raise_no_matching_pattern_error(cmvar),this.$s("begin",this.$s("lvasgn",cmvar,from),$send(this,"single_case_match",[cmvar].concat(Opal.to_a(cases)).concat([els])))},$PatternMatching_single_case_match$6.$$arity=1),$PatternMatching_convert_full_pattern$7.$private(),Opal.def($PatternMatching_convert_full_pattern$7,"$raise_no_matching_pattern_error",$PatternMatching_single_case_match$6=function(from){return this.$s("send",nil,"raise",this.$s("const",nil,"NoMatchingPatternError"),this.$s("lvar",from))},$PatternMatching_single_case_match$6.$$arity=1),Opal.def($PatternMatching_convert_full_pattern$7,"$single_case_match",$PatternMatching_single_case_match$6=function(from,$a,$b){var body,guard,$case,self=this,$c=nil,pat=nil,if_guard=nil,$post_args=Opal.slice.call(arguments,1,arguments.length),cases=$post_args.splice(0,$post_args.length-1),els=$post_args[0];return $post_args.splice(0,1),null==els&&(els=nil),$c=cases.$shift(),pat=null==($c=[].concat(Opal.to_a($c)))[0]?nil:$c[0],if_guard=null==$c[1]?nil:$c[1],body=null==$c[2]?nil:$c[2],pat=self.$convert_full_pattern(from,pat),$truthy(if_guard)&&(guard=null==($c=[].concat(Opal.to_a(if_guard)))[0]?nil:$c[0],$case=if_guard.$type(),"if_guard"["$==="]($case)?pat=self.$s("and",pat,guard):"unless_guard"["$==="]($case)&&(pat=self.$s("and",pat,self.$s("send",guard,"!")))),self.$s("if",pat,self.$process(body),$truthy(cases["$empty?"]()["$!"]())?$send(self,"single_case_match",[from].concat(Opal.to_a(cases)).concat([els])):$truthy(els["$!="](self.$s("empty_else")))?els:nil)},$PatternMatching_single_case_match$6.$$arity=-3),Opal.def($PatternMatching_convert_full_pattern$7,"$convert_full_pattern",$PatternMatching_convert_full_pattern$7=function(from,pat){var converter=nil;return from.$class()["$=="]($$($nesting,"Symbol"))&&(from=this.$s("lvar",from)),(converter=$$($nesting,"PatternConverter").$new(pat))["$run!"](),this.$s("masgn",$send(this,"s",["mlhs"].concat(Opal.to_a(converter.$variables()))),this.$s("send",this.$s("const",this.$s("cbase"),"PatternMatching"),"call",from,converter.$pattern()))},$PatternMatching_convert_full_pattern$7.$$arity=2),function($base,$PatternConverter_to_ast$27,$PatternConverter_array$26){var $PatternConverter_to_ast$27=$klass($base,$PatternConverter_to_ast$27,"PatternConverter"),$nesting=[$PatternConverter_to_ast$27].concat($PatternConverter_array$26);return $PatternConverter_to_ast$27.$$prototype.pat=$PatternConverter_to_ast$27.$$prototype.outpat=$PatternConverter_to_ast$27.$$prototype.variables=nil,Opal.def($PatternConverter_to_ast$27,"$initialize",$PatternConverter_array$26=function(pat){return this.pat=pat,this.variables=[]},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$run!",$PatternConverter_array$26=function(){return this.outpat=this.$process(this.pat)},$PatternConverter_array$26.$$arity=0),Opal.def($PatternConverter_to_ast$27,"$pattern",$PatternConverter_array$26=function(){return this.outpat},$PatternConverter_array$26.$$arity=0),Opal.def($PatternConverter_to_ast$27,"$variables",$PatternConverter_array$26=function(){var $$12;return $send(this.variables,"map",[],(($$12=function(i){var self=null==$$12.$$s?this:$$12.$$s;return null==i&&(i=nil),self.$s("lvasgn",i)}).$$s=this,$$12.$$arity=1,$$12))},$PatternConverter_array$26.$$arity=0),Opal.def($PatternConverter_to_ast$27,"$on_match_var",$PatternConverter_array$26=function($a){var $a=[].concat(Opal.to_a($a)),var$=null==$a[0]?nil:$a[0];return this.variables["$<<"](var$),this.$s("sym","var")},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_match_as",$PatternConverter_array$26=function($a){var $a=[].concat(Opal.to_a($a)),pat=null==$a[0]?nil:$a[0],save=null==$a[1]?nil:$a[1];return this.$process(save),this.$array(this.$s("sym","save"),this.$process(pat))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_literal",$PatternConverter_array$26=function(node){return this.$array(this.$s("sym","lit"),node)},$PatternConverter_array$26.$$arity=1),$alias($PatternConverter_to_ast$27,"on_int","on_literal"),$alias($PatternConverter_to_ast$27,"on_float","on_literal"),$alias($PatternConverter_to_ast$27,"on_complex","on_literal"),$alias($PatternConverter_to_ast$27,"on_rational","on_literal"),$alias($PatternConverter_to_ast$27,"on_array","on_literal"),$alias($PatternConverter_to_ast$27,"on_str","on_literal"),$alias($PatternConverter_to_ast$27,"on_dstr","on_literal"),$alias($PatternConverter_to_ast$27,"on_xstr","on_literal"),$alias($PatternConverter_to_ast$27,"on_sym","on_literal"),$alias($PatternConverter_to_ast$27,"on_irange","on_literal"),$alias($PatternConverter_to_ast$27,"on_erange","on_literal"),$alias($PatternConverter_to_ast$27,"on_const","on_literal"),$alias($PatternConverter_to_ast$27,"on_regexp","on_literal"),$alias($PatternConverter_to_ast$27,"on_lambda","on_literal"),$alias($PatternConverter_to_ast$27,"on_begin","on_literal"),Opal.def($PatternConverter_to_ast$27,"$on_pin",$PatternConverter_array$26=function(node){return this.$on_literal(node.$children().$first())},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_match_rest",$PatternConverter_array$26=function(node){return $truthy(node.$children()["$empty?"]())?this.$array(this.$s("sym","rest")):this.$array(this.$s("sym","rest"),this.$process(node.$children().$first()))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_match_alt",$PatternConverter_array$26=function(node){return $send(this,"array",[this.$s("sym","any")].concat(Opal.to_a($send(node.$children(),"map",[],this.$method("process").$to_proc()))))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_const_pattern",$PatternConverter_array$26=function(node){return $send(this,"array",[this.$s("sym","all")].concat(Opal.to_a($send(node.$children(),"map",[],this.$method("process").$to_proc()))))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_array_pattern",$PatternConverter_array$26=function(node,tail){var $$21,children=nil,fixed_size=nil,array_size=nil;return null==tail&&(tail=!1),children=[].concat(Opal.to_a(node)),$truthy(tail)&&children["$<<"](this.$s("match_rest")),fixed_size=!0,array_size=0,children=$send(children,"each",[],(($$21=function(i){null==$$21.$$s||$$21.$$s;var $case=nil;return null==i&&(i=nil),$case=i.$type(),"match_rest"["$==="]($case)?fixed_size=!1:array_size=$rb_plus(array_size,1)}).$$s=this,$$21.$$arity=1,$$21)),this.$array(this.$s("sym","array"),this.$to_ast(fixed_size),this.$to_ast(array_size),this.$to_ast($send(children,"map",[],this.$method("process").$to_proc())))},$PatternConverter_array$26.$$arity=-2),Opal.def($PatternConverter_to_ast$27,"$on_array_pattern_with_tail",$PatternConverter_array$26=function(node){return this.$on_array_pattern(node,!0)},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_hash_pattern",$PatternConverter_array$26=function(node){var $$24,self=this,children=nil,any_size=nil,children=[].concat(Opal.to_a(node)),any_size=$truthy(children["$empty?"]())?self.$to_ast(!1):self.$to_ast(!0);return children=$send(children,"map",[],(($$24=function(i){var self=null==$$24.$$s?this:$$24.$$s,$case=nil;return null==i&&(i=nil),$case=i.$type(),"pair"["$==="]($case)?self.$array(i.$children()["$[]"](0),self.$process(i.$children()["$[]"](1))):"match_var"["$==="]($case)?self.$array(self.$s("sym",i.$children()["$[]"](0)),self.$process(i)):("match_nil_pattern"["$==="]($case)?any_size=self.$to_ast(!1):"match_rest"["$==="]($case)&&(any_size=$truthy(i.$children().$first())?self.$process(i.$children().$first()):self.$to_ast(!0)),nil)}).$$s=self,$$24.$$arity=1,$$24)).$compact(),self.$array(self.$s("sym","hash"),any_size,$send(self,"array",Opal.to_a(children)))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_find_pattern",$PatternConverter_array$26=function(node){var children=[].concat(Opal.to_a(node));return children=$send(children,"map",[],this.$method("process").$to_proc()),this.$array(this.$s("sym","find"),$send(this,"array",Opal.to_a(children)))},$PatternConverter_array$26.$$arity=1),$PatternConverter_to_ast$27.$private(),Opal.def($PatternConverter_to_ast$27,"$array",$PatternConverter_array$26=function($a){var $post_args=Opal.slice.call(arguments,0,arguments.length);return this.$to_ast($post_args)},$PatternConverter_array$26.$$arity=-1),Opal.def($PatternConverter_to_ast$27,"$to_ast",$PatternConverter_to_ast$27=function(val){var self=this,$case=nil;return $case=val,$$($nesting,"Array")["$==="]($case)?$send(self,"s",["array"].concat(Opal.to_a(val))):$$($nesting,"Integer")["$==="]($case)?self.$s("int",val):(!0)["$==="]($case)?self.$s("true"):(!1)["$==="]($case)?self.$s("false"):nil["$==="]($case)?self.$s("nil"):nil},$PatternConverter_to_ast$27.$$arity=1),nil&&"to_ast"}($nesting[0],$$$($$$($$$("::","Opal"),"Rewriters"),"Base"),$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$truthy=Opal.truthy,$class_variable_get=Opal.class_variable_get,$lambda=Opal.lambda,$slice=Opal.slice,$hash2=Opal.hash2,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$+","$updated","$s","$include?","$==","$[]","$type","$new_temp","$freeze","$call","$fetch","$error","$process"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$LogicalOperatorAssignment_on_and_asgn$9){var $LogicalOperatorAssignment$3,$LogicalOperatorAssignment_on_defined$ques$11,self=$klass($base,self,"LogicalOperatorAssignment"),$nesting=[self].concat($LogicalOperatorAssignment_on_and_asgn$9);return Opal.defs(self,"$reset_tmp_counter!",$LogicalOperatorAssignment_on_and_asgn$9=function(){return $class_variable_set($nesting[0],"@@counter",0)},$LogicalOperatorAssignment_on_and_asgn$9.$$arity=0),Opal.defs(self,"$new_temp",$LogicalOperatorAssignment_on_and_asgn$9=function(){var lhs,rhs=nil;return $class_variable_set($nesting[0],"@@counter",$truthy(null!=$nesting[0].$$cvars["@@counter"]?"class variable":nil)&&$truthy(rhs=$class_variable_get($nesting[0],"@@counter",!1))?rhs:0),$class_variable_set($nesting[0],"@@counter",(lhs=$class_variable_get($nesting[0],"@@counter",!1),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))),"$logical_op_recvr_tmp_"+$class_variable_get($nesting[0],"@@counter",!1)},$LogicalOperatorAssignment_on_and_asgn$9.$$arity=0),Opal.const_set($nesting[0],"GET_SET",$lambda((($LogicalOperatorAssignment$3=function(get_type,set_type){var $$4,self=null==$LogicalOperatorAssignment$3.$$s?this:$LogicalOperatorAssignment$3.$$s;return null==get_type&&(get_type=nil),null==set_type&&(set_type=nil),$lambda((($$4=function(lhs,rhs,root_type){var get_node,defined_node,self=null==$$4.$$s?this:$$4.$$s,condition_node=nil,$ret_or_2=nil;return null==lhs&&(lhs=nil),null==rhs&&(rhs=nil),null==root_type&&(root_type=nil),get_node=lhs.$updated(get_type),condition_node=self.$s(root_type,get_node,rhs),$truthy($truthy($ret_or_2=["const","cvar"]["$include?"](get_type))?root_type["$=="]("or"):$ret_or_2)&&(defined_node=self.$s("defined?",get_node),condition_node=self.$s("if",defined_node,self.$s("begin",condition_node),rhs)),lhs.$updated(set_type,[].concat(Opal.to_a(lhs)).concat([condition_node]))}).$$s=self,$$4.$$arity=3,$$4))}).$$s=self,$LogicalOperatorAssignment$3.$$arity=2,$LogicalOperatorAssignment$3))),Opal.const_set($nesting[0],"LocalVariableHandler",$$($nesting,"GET_SET")["$[]"]("lvar","lvasgn")),Opal.const_set($nesting[0],"InstanceVariableHandler",$$($nesting,"GET_SET")["$[]"]("ivar","ivasgn")),Opal.const_set($nesting[0],"ConstantHandler",$$($nesting,"GET_SET")["$[]"]("const","casgn")),Opal.const_set($nesting[0],"GlobalVariableHandler",$$($nesting,"GET_SET")["$[]"]("gvar","gvasgn")),Opal.const_set($nesting[0],"ClassVariableHandler",$$($nesting,"GET_SET")["$[]"]("cvar","cvasgn")),function($base,$SendHandler_call$5,$parent_nesting){[$SendHandler_call$5=$klass($base,$SendHandler_call$5,"SendHandler")].concat($parent_nesting),Opal.defs($SendHandler_call$5,"$call",$SendHandler_call$5=function(lhs,rhs,root_type){var recvr_tmp,call_reader,call_writer,get_or_set,recvr=nil,reader_method=nil,$ret_or_3=nil,cache_recvr=nil,writer_method=nil,$a=[].concat(Opal.to_a(lhs)),recvr=null==$a[0]?nil:$a[0],reader_method=null==$a[1]?nil:$a[1],args=$slice.call($a,2);return $truthy($truthy($ret_or_3=recvr)?recvr.$type()["$=="]("send"):$ret_or_3)&&(recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp)),writer_method=reader_method+"=",call_reader=lhs.$updated("send",[recvr,reader_method].concat(Opal.to_a(args))),call_writer=lhs.$updated("send",[recvr,writer_method].concat(Opal.to_a(args)).concat([rhs])),get_or_set=this.$s(root_type,call_reader,call_writer),$truthy(cache_recvr)?this.$s("begin",cache_recvr,get_or_set):get_or_set},$SendHandler_call$5.$$arity=3)}($nesting[0],self,$nesting),function($base,$ConditionalSendHandler_call$6,$parent_nesting){[$ConditionalSendHandler_call$6=$klass($base,$ConditionalSendHandler_call$6,"ConditionalSendHandler")].concat($parent_nesting),Opal.defs($ConditionalSendHandler_call$6,"$call",$ConditionalSendHandler_call$6=function(lhs,rhs,root_type){var $a,args,recvr_tmp,cache_recvr,recvr_is_nil,plain_send,plain_or_asgn,recvr=nil,meth=nil;return root_type+="_asgn",recvr=null==($a=[].concat(Opal.to_a(lhs)))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp),recvr_is_nil=this.$s("send",recvr,"nil?"),plain_send=lhs.$updated("send",[recvr,meth].concat(Opal.to_a(args))),plain_or_asgn=this.$s(root_type,plain_send,rhs),this.$s("begin",cache_recvr,this.$s("if",recvr_is_nil,this.$s("nil"),plain_or_asgn))},$ConditionalSendHandler_call$6.$$arity=3)}($nesting[0],self,$nesting),Opal.const_set($nesting[0],"HANDLERS",$hash2(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:$$($nesting,"LocalVariableHandler"),ivasgn:$$($nesting,"InstanceVariableHandler"),casgn:$$($nesting,"ConstantHandler"),gvasgn:$$($nesting,"GlobalVariableHandler"),cvasgn:$$($nesting,"ClassVariableHandler"),send:$$($nesting,"SendHandler"),csend:$$($nesting,"ConditionalSendHandler")}).$freeze()),Opal.def(self,"$on_or_asgn",$LogicalOperatorAssignment_on_and_asgn$9=function($a){var $$8,lhs=nil,$a=[].concat(Opal.to_a($a)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],result=$send($$($nesting,"HANDLERS"),"fetch",[lhs.$type()],(($$8=function(){return(null==$$8.$$s?this:$$8.$$s).$error("cannot handle LHS type: "+lhs.$type())}).$$s=this,$$8.$$arity=0,$$8)).$call(lhs,rhs,"or");return this.$process(result)},$LogicalOperatorAssignment_on_and_asgn$9.$$arity=1),Opal.def(self,"$on_and_asgn",$LogicalOperatorAssignment_on_and_asgn$9=function($a){var $$10,lhs=nil,$a=[].concat(Opal.to_a($a)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],result=$send($$($nesting,"HANDLERS"),"fetch",[lhs.$type()],(($$10=function(){return(null==$$10.$$s?this:$$10.$$s).$error("cannot handle LHS type: "+lhs.$type())}).$$s=this,$$10.$$arity=0,$$10)).$call(lhs,rhs,"and");return this.$process(result)},$LogicalOperatorAssignment_on_and_asgn$9.$$arity=1),Opal.const_set($nesting[0],"ASSIGNMENT_STRING_NODE",self.$s("str","assignment")),Opal.def(self,"$on_defined?",$LogicalOperatorAssignment_on_defined$ques$11=function(node){var $a=$LogicalOperatorAssignment_on_defined$ques$11.$$p,inner=nil;return $a&&($LogicalOperatorAssignment_on_defined$ques$11.$$p=null),inner=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],$truthy(["or_asgn","and_asgn"]["$include?"](inner.$type()))?$$($nesting,"ASSIGNMENT_STRING_NODE"):$send2(this,$find_super(this,"on_defined?",$LogicalOperatorAssignment_on_defined$ques$11,!1,!0),"on_defined?",[node],null)},$LogicalOperatorAssignment_on_defined$ques$11.$$arity=1),nil&&"on_defined?"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$truthy=Opal.truthy,$class_variable_get=Opal.class_variable_get,$lambda=Opal.lambda,$slice=Opal.slice,$hash2=Opal.hash2,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$+","$updated","$s","$[]","$==","$type","$new_temp","$freeze","$call","$fetch","$error","$process"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$BinaryOperatorAssignment_on_op_asgn$7){var $BinaryOperatorAssignment$3,$BinaryOperatorAssignment_on_defined$ques$9,self=$klass($base,self,"BinaryOperatorAssignment"),$nesting=[self].concat($BinaryOperatorAssignment_on_op_asgn$7);return Opal.defs(self,"$reset_tmp_counter!",$BinaryOperatorAssignment_on_op_asgn$7=function(){return $class_variable_set($nesting[0],"@@counter",0)},$BinaryOperatorAssignment_on_op_asgn$7.$$arity=0),Opal.defs(self,"$new_temp",$BinaryOperatorAssignment_on_op_asgn$7=function(){var lhs,rhs=nil;return $class_variable_set($nesting[0],"@@counter",$truthy(null!=$nesting[0].$$cvars["@@counter"]?"class variable":nil)&&$truthy(rhs=$class_variable_get($nesting[0],"@@counter",!1))?rhs:0),$class_variable_set($nesting[0],"@@counter",(lhs=$class_variable_get($nesting[0],"@@counter",!1),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))),"$binary_op_recvr_tmp_"+$class_variable_get($nesting[0],"@@counter",!1)},$BinaryOperatorAssignment_on_op_asgn$7.$$arity=0),Opal.const_set($nesting[0],"GET_SET",$lambda((($BinaryOperatorAssignment$3=function(get_type,set_type){var $$4,self=null==$BinaryOperatorAssignment$3.$$s?this:$BinaryOperatorAssignment$3.$$s;return null==get_type&&(get_type=nil),null==set_type&&(set_type=nil),$lambda((($$4=function(lhs,operation,rhs){var get_node,set_node,self=null==$$4.$$s?this:$$4.$$s;return null==lhs&&(lhs=nil),null==operation&&(operation=nil),null==rhs&&(rhs=nil),get_node=lhs.$updated(get_type),set_node=self.$s("send",get_node,operation,rhs),lhs.$updated(set_type,[].concat(Opal.to_a(lhs)).concat([set_node]))}).$$s=self,$$4.$$arity=3,$$4))}).$$s=self,$BinaryOperatorAssignment$3.$$arity=2,$BinaryOperatorAssignment$3))),Opal.const_set($nesting[0],"LocalVariableHandler",$$($nesting,"GET_SET")["$[]"]("lvar","lvasgn")),Opal.const_set($nesting[0],"InstanceVariableHandler",$$($nesting,"GET_SET")["$[]"]("ivar","ivasgn")),Opal.const_set($nesting[0],"ConstantHandler",$$($nesting,"GET_SET")["$[]"]("const","casgn")),Opal.const_set($nesting[0],"GlobalVariableHandler",$$($nesting,"GET_SET")["$[]"]("gvar","gvasgn")),Opal.const_set($nesting[0],"ClassVariableHandler",$$($nesting,"GET_SET")["$[]"]("cvar","cvasgn")),function($base,$SendHandler_call$5,$parent_nesting){[$SendHandler_call$5=$klass($base,$SendHandler_call$5,"SendHandler")].concat($parent_nesting),Opal.defs($SendHandler_call$5,"$call",$SendHandler_call$5=function(lhs,operation,rhs){var recvr_tmp,call_reader,call_op,call_writer,recvr=nil,reader_method=nil,$ret_or_2=nil,cache_recvr=nil,writer_method=nil,$a=[].concat(Opal.to_a(lhs)),recvr=null==$a[0]?nil:$a[0],reader_method=null==$a[1]?nil:$a[1],args=$slice.call($a,2);return $truthy($truthy($ret_or_2=recvr)?recvr.$type()["$=="]("send"):$ret_or_2)&&(recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp)),writer_method=reader_method+"=",call_reader=lhs.$updated("send",[recvr,reader_method].concat(Opal.to_a(args))),call_op=this.$s("send",call_reader,operation,rhs),call_writer=lhs.$updated("send",[recvr,writer_method].concat(Opal.to_a(args)).concat([call_op])),$truthy(cache_recvr)?this.$s("begin",cache_recvr,call_writer):call_writer},$SendHandler_call$5.$$arity=3)}($nesting[0],self,$nesting),function($base,$ConditionalSendHandler_call$6,$parent_nesting){[$ConditionalSendHandler_call$6=$klass($base,$ConditionalSendHandler_call$6,"ConditionalSendHandler")].concat($parent_nesting),Opal.defs($ConditionalSendHandler_call$6,"$call",$ConditionalSendHandler_call$6=function(lhs,operation,rhs){var recvr_is_nil,plain_send,plain_op_asgn,recvr=nil,meth=nil,$a=[].concat(Opal.to_a(lhs)),recvr=null==$a[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr);return recvr=this.$s("js_tmp",recvr_tmp),recvr_is_nil=this.$s("send",recvr,"nil?"),plain_send=lhs.$updated("send",[recvr,meth].concat(Opal.to_a(args))),plain_op_asgn=this.$s("op_asgn",plain_send,operation,rhs),this.$s("begin",cache_recvr,this.$s("if",recvr_is_nil,this.$s("nil"),plain_op_asgn))},$ConditionalSendHandler_call$6.$$arity=3)}($nesting[0],self,$nesting),Opal.const_set($nesting[0],"HANDLERS",$hash2(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:$$($nesting,"LocalVariableHandler"),ivasgn:$$($nesting,"InstanceVariableHandler"),casgn:$$($nesting,"ConstantHandler"),gvasgn:$$($nesting,"GlobalVariableHandler"),cvasgn:$$($nesting,"ClassVariableHandler"),send:$$($nesting,"SendHandler"),csend:$$($nesting,"ConditionalSendHandler")}).$freeze()),Opal.def(self,"$on_op_asgn",$BinaryOperatorAssignment_on_op_asgn$7=function($a){var $$8,lhs=nil,$a=[].concat(Opal.to_a($a)),lhs=null==$a[0]?nil:$a[0],op=null==$a[1]?nil:$a[1],rhs=null==$a[2]?nil:$a[2],result=$send($$($nesting,"HANDLERS"),"fetch",[lhs.$type()],(($$8=function(){return(null==$$8.$$s?this:$$8.$$s).$error("cannot handle LHS type: "+lhs.$type())}).$$s=this,$$8.$$arity=0,$$8)).$call(lhs,op,rhs);return this.$process(result)},$BinaryOperatorAssignment_on_op_asgn$7.$$arity=1),Opal.const_set($nesting[0],"ASSIGNMENT_STRING_NODE",self.$s("str","assignment")),Opal.def(self,"$on_defined?",$BinaryOperatorAssignment_on_defined$ques$9=function(node){var $a=$BinaryOperatorAssignment_on_defined$ques$9.$$p,inner=nil;return $a&&($BinaryOperatorAssignment_on_defined$ques$9.$$p=null),inner=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],inner.$type()["$=="]("op_asgn")?$$($nesting,"ASSIGNMENT_STRING_NODE"):$send2(this,$find_super(this,"on_defined?",$BinaryOperatorAssignment_on_defined$ques$9,!1,!0),"on_defined?",[node],null)},$BinaryOperatorAssignment_on_defined$ques$9.$$arity=1),nil&&"on_defined?"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$new","$include?","$type","$<<","$==","$process_regular_node","$updated","$inspect","$warn"]),self.$require("opal/rewriters/base"),self.$require("set"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Hashes")].concat($nesting);return function($base,$KeyDuplicatesRewriter_on_kwsplat$4,$KeyDuplicatesRewriter_initialize$1){var $KeyDuplicatesRewriter_on_hash$2,$KeyDuplicatesRewriter_on_pair$3,$KeyDuplicatesRewriter_on_kwsplat$4=$klass($base,$KeyDuplicatesRewriter_on_kwsplat$4,"KeyDuplicatesRewriter"),$nesting=[$KeyDuplicatesRewriter_on_kwsplat$4].concat($KeyDuplicatesRewriter_initialize$1);return $KeyDuplicatesRewriter_on_kwsplat$4.$$prototype.keys=nil,Opal.def($KeyDuplicatesRewriter_on_kwsplat$4,"$initialize",$KeyDuplicatesRewriter_initialize$1=function(){return this.keys=$$($nesting,"UniqKeysSet").$new()},$KeyDuplicatesRewriter_initialize$1.$$arity=0),Opal.def($KeyDuplicatesRewriter_on_kwsplat$4,"$on_hash",$KeyDuplicatesRewriter_on_hash$2=function(node){var $a,$iter=$KeyDuplicatesRewriter_on_hash$2.$$p,self=this,previous_keys=nil;return $iter&&($KeyDuplicatesRewriter_on_hash$2.$$p=null),function(){try{return $a=[self.keys,$$($nesting,"UniqKeysSet").$new()],previous_keys=$a[0],self.keys=$a[1],$send2(self,$find_super(self,"on_hash",$KeyDuplicatesRewriter_on_hash$2,!1,!0),"on_hash",[node],null)}finally{self.keys=previous_keys}}()},$KeyDuplicatesRewriter_on_hash$2.$$arity=1),Opal.def($KeyDuplicatesRewriter_on_kwsplat$4,"$on_pair",$KeyDuplicatesRewriter_on_pair$3=function(node){var $a=$KeyDuplicatesRewriter_on_pair$3.$$p,key=nil;return $a&&($KeyDuplicatesRewriter_on_pair$3.$$p=null),key=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],$truthy(["str","sym"]["$include?"](key.$type()))&&this.keys["$<<"](key),$send2(this,$find_super(this,"on_pair",$KeyDuplicatesRewriter_on_pair$3,!1,!0),"on_pair",[node],null)},$KeyDuplicatesRewriter_on_pair$3.$$arity=1),Opal.def($KeyDuplicatesRewriter_on_kwsplat$4,"$on_kwsplat",$KeyDuplicatesRewriter_on_kwsplat$4=function(node){var hash=nil,$a=[].concat(Opal.to_a(node)),hash=null==$a[0]?nil:$a[0];null==$a[1]||$a[1];return hash.$type()["$=="]("hash")&&(hash=this.$process_regular_node(hash)),node.$updated(nil,[hash])},$KeyDuplicatesRewriter_on_kwsplat$4.$$arity=1),function($UniqKeysSet_$lt$lt$6,$UniqKeysSet_initialize$5){var $UniqKeysSet_$lt$lt$6=$klass($UniqKeysSet_$lt$lt$6,null,"UniqKeysSet"),$nesting=[$UniqKeysSet_$lt$lt$6].concat($UniqKeysSet_initialize$5);return $UniqKeysSet_$lt$lt$6.$$prototype.set=nil,Opal.def($UniqKeysSet_$lt$lt$6,"$initialize",$UniqKeysSet_initialize$5=function(){return this.set=$$($nesting,"Set").$new()},$UniqKeysSet_initialize$5.$$arity=0),Opal.def($UniqKeysSet_$lt$lt$6,"$<<",$UniqKeysSet_$lt$lt$6=function(element){var $a,key=nil;return $truthy(this.set["$include?"](element))?($a=[].concat(Opal.to_a(element)),key=null==$a[0]?nil:$a[0],null==$a[1]||$a[1],key=element.$type()["$=="]("str")?key.$inspect():":"+key,$$($nesting,"Kernel").$warn("warning: key "+key+" is duplicated and overwritten")):this.set["$<<"](element)},$UniqKeysSet_$lt$lt$6.$$arity=1),nil&&"<<"}($nesting[0],$nesting)}($nesting[0],$$$($$$($$$("::","Opal"),"Rewriters"),"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/dump_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$updated"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$parent_nesting){var $DumpArgs_on_def$1,$DumpArgs_on_defs$2,$DumpArgs_on_iter$3,self=$klass($base,self,"DumpArgs");[self].concat($parent_nesting);return Opal.def(self,"$on_def",$DumpArgs_on_def$1=function(node){var args,$a=$DumpArgs_on_def$1.$$p;return $a&&($DumpArgs_on_def$1.$$p=null),node=$send2(this,$find_super(this,"on_def",$DumpArgs_on_def$1,!1,!0),"on_def",[node],null),null==($a=[].concat(Opal.to_a(node)))[0]||$a[0],args=null==$a[1]?nil:$a[1],null==$a[2]||$a[2],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))},$DumpArgs_on_def$1.$$arity=1),Opal.def(self,"$on_defs",$DumpArgs_on_defs$2=function(node){var args,$a=$DumpArgs_on_defs$2.$$p;return $a&&($DumpArgs_on_defs$2.$$p=null),node=$send2(this,$find_super(this,"on_defs",$DumpArgs_on_defs$2,!1,!0),"on_defs",[node],null),null==($a=[].concat(Opal.to_a(node)))[0]||$a[0],null==$a[1]||$a[1],args=null==$a[2]?nil:$a[2],null==$a[3]||$a[3],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))},$DumpArgs_on_defs$2.$$arity=1),Opal.def(self,"$on_iter",$DumpArgs_on_iter$3=function(node){var args,$a=$DumpArgs_on_iter$3.$$p;return $a&&($DumpArgs_on_iter$3.$$p=null),node=$send2(this,$find_super(this,"on_iter",$DumpArgs_on_iter$3,!1,!0),"on_iter",[node],null),args=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))},$DumpArgs_on_iter$3.$$arity=1),nil&&"on_iter"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/mlhs_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$new","$updated","$rewritten","$initialization","$s","$prepend_to_body","$attr_reader","$split!","$+","$each","$children","$==","$type","$new_mlhs_tmp","$process","$<<","$length","$[]","$empty?"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$parent_nesting){var $MlhsArgs_on_def$1,$MlhsArgs_on_defs$2,$MlhsArgs_on_iter$3,self=$klass($base,self,"MlhsArgs"),$nesting=[self].concat($parent_nesting);return Opal.def(self,"$on_def",$MlhsArgs_on_def$1=function(node){var mid,$a=$MlhsArgs_on_def$1.$$p,self=this,args=nil,body=nil,arguments$=nil,$ret_or_1=nil;return $a&&($MlhsArgs_on_def$1.$$p=null),node=$send2(self,$find_super(self,"on_def",$MlhsArgs_on_def$1,!1,!0),"on_def",[node],null),mid=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],arguments$=$$($nesting,"Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_1=body)?$ret_or_1:self.$s("nil"),body=self.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[mid,args,body])},$MlhsArgs_on_def$1.$$arity=1),Opal.def(self,"$on_defs",$MlhsArgs_on_defs$2=function(node){var recv,mid,$a=$MlhsArgs_on_defs$2.$$p,self=this,args=nil,body=nil,arguments$=nil,$ret_or_2=nil;return $a&&($MlhsArgs_on_defs$2.$$p=null),node=$send2(self,$find_super(self,"on_defs",$MlhsArgs_on_defs$2,!1,!0),"on_defs",[node],null),recv=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],body=null==$a[3]?nil:$a[3],arguments$=$$($nesting,"Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_2=body)?$ret_or_2:self.$s("nil"),body=self.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[recv,mid,args,body])},$MlhsArgs_on_defs$2.$$arity=1),Opal.def(self,"$on_iter",$MlhsArgs_on_iter$3=function(node){var $a=$MlhsArgs_on_iter$3.$$p,self=this,args=nil,body=nil,arguments$=nil,$ret_or_3=nil;return $a&&($MlhsArgs_on_iter$3.$$p=null),node=$send2(self,$find_super(self,"on_iter",$MlhsArgs_on_iter$3,!1,!0),"on_iter",[node],null),args=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],arguments$=$$($nesting,"Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_3=body)?$ret_or_3:self.$s("nil"),body=self.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[args,body])},$MlhsArgs_on_iter$3.$$arity=1),function($base,$Arguments_split$excl$7,$Arguments_new_mlhs_tmp$6){var $nesting=[$Arguments_split$excl$7=$klass($base,$Arguments_split$excl$7,"Arguments")].concat($Arguments_new_mlhs_tmp$6);$Arguments_split$excl$7.$$prototype.counter=$Arguments_split$excl$7.$$prototype.args=$Arguments_split$excl$7.$$prototype.initialization=nil,$Arguments_split$excl$7.$attr_reader("rewritten","initialization"),Opal.def($Arguments_split$excl$7,"$initialize",$Arguments_new_mlhs_tmp$6=function(args){return this.args=args,this.rewritten=[],this.initialization=[],this.rewriter=$$($nesting,"MlhsRewriter").$new(),this["$split!"]()},$Arguments_new_mlhs_tmp$6.$$arity=1),Opal.def($Arguments_split$excl$7,"$reset_tmp_counter!",$Arguments_new_mlhs_tmp$6=function(){return this.counter=0},$Arguments_new_mlhs_tmp$6.$$arity=0),Opal.def($Arguments_split$excl$7,"$new_mlhs_tmp",$Arguments_new_mlhs_tmp$6=function(){var lhs,self=this,rhs=nil;return self.counter=$truthy(rhs=self.counter)?rhs:0,self.counter=(lhs=self.counter,rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),"$mlhs_tmp"+self.counter},$Arguments_new_mlhs_tmp$6.$$arity=0),Opal.def($Arguments_split$excl$7,"$split!",$Arguments_split$excl$7=function(){var $$8;return $send(this.args.$children(),"each",[],(($$8=function(arg){var var_name,rhs,mlhs,self=null==$$8.$$s?this:$$8.$$s;return null==self.rewriter&&(self.rewriter=nil),null==self.initialization&&(self.initialization=nil),null==self.rewritten&&(self.rewritten=nil),null==arg&&(arg=nil),arg.$type()["$=="]("mlhs")?(var_name=self.$new_mlhs_tmp(),rhs=self.$s("lvar",var_name),mlhs=self.rewriter.$process(arg),self.initialization["$<<"](self.$s("masgn",mlhs,rhs)),self.rewritten["$<<"](self.$s("arg",var_name).$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:var_name})})))):self.rewritten["$<<"](arg)}).$$s=this,$$8.$$arity=1,$$8)),this.initialization.$length()["$=="](1)?this.initialization=this.initialization["$[]"](0):$truthy(this.initialization["$empty?"]())?this.initialization=nil:this.initialization=$send(this,"s",["begin"].concat(Opal.to_a(this.initialization)))},$Arguments_split$excl$7.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$MlhsRewriter_on_restarg$10,$MlhsRewriter_on_arg$9){$MlhsRewriter_on_restarg$10=$klass($base,$MlhsRewriter_on_restarg$10,"MlhsRewriter"),[$MlhsRewriter_on_restarg$10].concat($MlhsRewriter_on_arg$9);return Opal.def($MlhsRewriter_on_restarg$10,"$on_arg",$MlhsRewriter_on_arg$9=function(node){return node.$updated("lvasgn")},$MlhsRewriter_on_arg$9.$$arity=1),Opal.def($MlhsRewriter_on_restarg$10,"$on_restarg",$MlhsRewriter_on_restarg$10=function(node){var name=node.$children()["$[]"](0);return $truthy(name)?this.$s("splat",node.$updated("lvasgn")):this.$s("splat")},$MlhsRewriter_on_restarg$10.$$arity=1),nil&&"on_restarg"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/arguments"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$attr_reader","$each","$type","$===","$<<","$any?","$raise","$!","$nil?","$has_any_kwargs?","$can_inline_kwargs?","$empty?"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($Arguments_can_inline_kwargs$ques$5,$Arguments_has_any_kwargs$ques$4){$Arguments_can_inline_kwargs$ques$5=$klass($Arguments_can_inline_kwargs$ques$5,null,"Arguments"),[$Arguments_can_inline_kwargs$ques$5].concat($Arguments_has_any_kwargs$ques$4);return $Arguments_can_inline_kwargs$ques$5.$$prototype.restarg=$Arguments_can_inline_kwargs$ques$5.$$prototype.postargs=$Arguments_can_inline_kwargs$ques$5.$$prototype.kwargs=$Arguments_can_inline_kwargs$ques$5.$$prototype.kwoptargs=$Arguments_can_inline_kwargs$ques$5.$$prototype.kwrestarg=$Arguments_can_inline_kwargs$ques$5.$$prototype.optargs=nil,$Arguments_can_inline_kwargs$ques$5.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),Opal.def($Arguments_can_inline_kwargs$ques$5,"$initialize",$Arguments_has_any_kwargs$ques$4=function(args){var $$2;return this.args=[],this.optargs=[],this.restarg=nil,this.postargs=[],this.kwargs=[],this.kwoptargs=[],this.kwrestarg=nil,this.kwnilarg=!1,this.shadowargs=[],this.blockarg=nil,$send(args,"each",[],(($$2=function(arg){var self=null==$$2.$$s?this:$$2.$$s,$case=nil,$ret_or_1=nil;return null==self.restarg&&(self.restarg=nil),null==self.optargs&&(self.optargs=nil),null==self.postargs&&(self.postargs=nil),null==self.args&&(self.args=nil),null==self.kwargs&&(self.kwargs=nil),null==self.kwoptargs&&(self.kwoptargs=nil),null==self.shadowargs&&(self.shadowargs=nil),null==arg&&(arg=nil),$case=arg.$type(),"arg"["$==="]($case)||"mlhs"["$==="]($case)?($truthy($truthy($ret_or_1=self.restarg)?$ret_or_1:self.optargs["$any?"]())?self.postargs:self.args)["$<<"](arg):"optarg"["$==="]($case)?self.optargs["$<<"](arg):"restarg"["$==="]($case)?self.restarg=arg:"kwarg"["$==="]($case)?self.kwargs["$<<"](arg):"kwoptarg"["$==="]($case)?self.kwoptargs["$<<"](arg):"kwnilarg"["$==="]($case)?self.kwnilarg=!0:"kwrestarg"["$==="]($case)?self.kwrestarg=arg:"shadowarg"["$==="]($case)?self.shadowargs["$<<"](arg):"blockarg"["$==="]($case)?self.blockarg=arg:self.$raise("Unsupported arg type "+arg.$type())}).$$s=this,$$2.$$arity=1,$$2))},$Arguments_has_any_kwargs$ques$4.$$arity=1),Opal.def($Arguments_can_inline_kwargs$ques$5,"$has_post_args?",$Arguments_has_any_kwargs$ques$4=function(){var $ret_or_2,$ret_or_4,self=this,$ret_or_3=nil;return $truthy($ret_or_2=$truthy($ret_or_3=self.restarg["$nil?"]()["$!"]())?$ret_or_3:self.postargs["$any?"]())?$ret_or_2:$truthy($ret_or_4=self["$has_any_kwargs?"]())?self["$can_inline_kwargs?"]()["$!"]():$ret_or_4},$Arguments_has_any_kwargs$ques$4.$$arity=0),Opal.def($Arguments_can_inline_kwargs$ques$5,"$has_any_kwargs?",$Arguments_has_any_kwargs$ques$4=function(){var $ret_or_5,self=this,$ret_or_6=nil;return $truthy($ret_or_5=$truthy($ret_or_6=self.kwargs["$any?"]())?$ret_or_6:self.kwoptargs["$any?"]())?$ret_or_5:self.kwrestarg["$nil?"]()["$!"]()},$Arguments_has_any_kwargs$ques$4.$$arity=0),Opal.def($Arguments_can_inline_kwargs$ques$5,"$can_inline_kwargs?",$Arguments_can_inline_kwargs$ques$5=function(){var $ret_or_7,self=this,$ret_or_8=nil;return $truthy($ret_or_7=$truthy($ret_or_8=self.optargs["$empty?"]())?self.restarg["$nil?"]():$ret_or_8)?self.postargs["$empty?"]():$ret_or_7},$Arguments_can_inline_kwargs$ques$5.$$arity=0),nil&&"can_inline_kwargs?"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/inline_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$require","$s","$new","$updated","$inline","$prepend_to_body","$initialization","$attr_reader","$freeze","$children","$each","$send","$any?","$blockarg","$<<","$shadowargs","$args","$==","$[]","$has_post_args?","$length","$has_any_kwargs?","$can_inline_kwargs?","$kwargs","$kwoptargs","$kwrestarg","$postargs","$optargs","$args_to_keep","$restarg"]),self.$require("opal/rewriters/base"),self.$require("opal/rewriters/arguments"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$parent_nesting){var $InlineArgs_on_def$1,$InlineArgs_on_defs$2,$InlineArgs_on_iter$3,self=$klass($base,self,"InlineArgs"),$nesting=[self].concat($parent_nesting);return Opal.def(self,"$on_def",$InlineArgs_on_def$1=function(node){var mid,inline_args,$a=$InlineArgs_on_def$1.$$p,self=this,args=nil,body=nil,$ret_or_1=nil,initializer=nil;return $a&&($InlineArgs_on_def$1.$$p=null),node=$send2(self,$find_super(self,"on_def",$InlineArgs_on_def$1,!1,!0),"on_def",[node],null),mid=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],body=$truthy($ret_or_1=body)?$ret_or_1:self.$s("nil"),initializer=$$($nesting,"Initializer").$new(args,$hash2(["type"],{type:"def"})),inline_args=args.$updated(nil,initializer.$inline()),body=self.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[mid,inline_args,body])},$InlineArgs_on_def$1.$$arity=1),Opal.def(self,"$on_defs",$InlineArgs_on_defs$2=function(node){var recv,mid,inline_args,$a=$InlineArgs_on_defs$2.$$p,self=this,args=nil,body=nil,$ret_or_2=nil,initializer=nil;return $a&&($InlineArgs_on_defs$2.$$p=null),node=$send2(self,$find_super(self,"on_defs",$InlineArgs_on_defs$2,!1,!0),"on_defs",[node],null),recv=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],body=null==$a[3]?nil:$a[3],body=$truthy($ret_or_2=body)?$ret_or_2:self.$s("nil"),initializer=$$($nesting,"Initializer").$new(args,$hash2(["type"],{type:"defs"})),inline_args=args.$updated(nil,initializer.$inline()),body=self.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[recv,mid,inline_args,body])},$InlineArgs_on_defs$2.$$arity=1),Opal.def(self,"$on_iter",$InlineArgs_on_iter$3=function(node){var inline_args,$a=$InlineArgs_on_iter$3.$$p,self=this,args=nil,body=nil,$ret_or_3=nil,initializer=nil;return $a&&($InlineArgs_on_iter$3.$$p=null),node=$send2(self,$find_super(self,"on_iter",$InlineArgs_on_iter$3,!1,!0),"on_iter",[node],null),args=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],body=$truthy($ret_or_3=body)?$ret_or_3:self.$s("nil"),initializer=$$($nesting,"Initializer").$new(args,$hash2(["type"],{type:"iter"})),inline_args=args.$updated(nil,initializer.$inline()),body=self.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[inline_args,body])},$InlineArgs_on_iter$3.$$arity=1),function($base,$Initializer_args_to_keep$23,$Initializer_extract_restarg$22){var $Initializer_args_to_keep$23=$klass($base,$Initializer_args_to_keep$23,"Initializer"),$nesting=[$Initializer_args_to_keep$23].concat($Initializer_extract_restarg$22);return $Initializer_args_to_keep$23.$$prototype.initialization=$Initializer_args_to_keep$23.$$prototype.args=$Initializer_args_to_keep$23.$$prototype.inline=nil,$Initializer_args_to_keep$23.$attr_reader("inline","initialization"),Opal.const_set($nesting[0],"STEPS",["extract_blockarg","initialize_shadowargs","extract_args","prepare_post_args","prepare_kwargs","extract_optargs","extract_restarg","extract_post_args","extract_kwargs","extract_kwoptargs","extract_kwrestarg"].$freeze()),Opal.def($Initializer_args_to_keep$23,"$initialize",$Initializer_extract_restarg$22=function(args,type){var $$5;if(null==type)type=$hash2([],{});else if(!type.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call(type.$$smap,"type"))throw Opal.ArgumentError.$new("missing keyword: type");return type=type.$$smap.type,this.args=$$($nesting,"Arguments").$new(args.$children()),this.inline=[],this.initialization=[],this.type=type,this.underscore_found=!1,$send($$($nesting,"STEPS"),"each",[],(($$5=function(step){var self=null==$$5.$$s?this:$$5.$$s;return null==step&&(step=nil),self.$send(step)}).$$s=this,$$5.$$arity=1,$$5)),$truthy(this.initialization["$any?"]())?this.initialization=$send(this,"s",["begin"].concat(Opal.to_a(this.initialization))):this.initialization=nil},$Initializer_extract_restarg$22.$$arity=2),Opal.def($Initializer_args_to_keep$23,"$extract_blockarg",$Initializer_extract_restarg$22=function(){var arg=nil;return $truthy(arg=this.args.$blockarg())?this.initialization["$<<"](arg.$updated("extract_blockarg")):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$initialize_shadowargs",$Initializer_extract_restarg$22=function(){var $$8;return $send(this.args.$shadowargs(),"each",[],(($$8=function(arg){var self=null==$$8.$$s?this:$$8.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("initialize_shadowarg"))}).$$s=this,$$8.$$arity=1,$$8))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_args",$Initializer_extract_restarg$22=function(){var $$10;return $send(this.args.$args(),"each",[],(($$10=function(arg){var self=null==$$10.$$s?this:$$10.$$s;return null==self.type&&(self.type=nil),null==self.initialization&&(self.initialization=nil),null==self.underscore_found&&(self.underscore_found=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),self.type["$=="]("iter")&&(self.initialization["$<<"](arg.$updated("initialize_iter_arg")),arg.$children()["$[]"](0)["$=="]("_")&&($truthy(self.underscore_found)&&(arg=self.$s("fake_arg")),self.underscore_found=!0)),self.inline["$<<"](arg)}).$$s=this,$$10.$$arity=1,$$10))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$prepare_post_args",$Initializer_extract_restarg$22=function(){return $truthy(this.args["$has_post_args?"]())?this.initialization["$<<"](this.$s("prepare_post_args",this.args.$args().$length())):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$prepare_kwargs",$Initializer_extract_restarg$22=function(){return $truthy(this.args["$has_any_kwargs?"]())?($truthy(this.args["$can_inline_kwargs?"]())?this.inline["$<<"](this.$s("arg","$kwargs")):(this.initialization["$<<"](this.$s("extract_kwargs")),this.inline["$<<"](this.$s("fake_arg"))),this.initialization["$<<"](this.$s("ensure_kwargs_are_kwargs"))):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_kwargs",$Initializer_extract_restarg$22=function(){var $$14;return $send(this.args.$kwargs(),"each",[],(($$14=function(arg){var self=null==$$14.$$s?this:$$14.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_kwarg"))}).$$s=this,$$14.$$arity=1,$$14))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_kwoptargs",$Initializer_extract_restarg$22=function(){var $$16;return $send(this.args.$kwoptargs(),"each",[],(($$16=function(arg){var self=null==$$16.$$s?this:$$16.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_kwoptarg"))}).$$s=this,$$16.$$arity=1,$$16))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_kwrestarg",$Initializer_extract_restarg$22=function(){var arg=nil;return $truthy(arg=this.args.$kwrestarg())?this.initialization["$<<"](arg.$updated("extract_kwrestarg")):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_post_args",$Initializer_extract_restarg$22=function(){var $$19;return $send(this.args.$postargs(),"each",[],(($$19=function(arg){var self=null==$$19.$$s?this:$$19.$$s;return null==self.initialization&&(self.initialization=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_post_arg")),self.inline["$<<"](self.$s("fake_arg"))}).$$s=this,$$19.$$arity=1,$$19))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_optargs",$Initializer_extract_restarg$22=function(){var $$21,has_post_args=this.args["$has_post_args?"]();return $send(this.args.$optargs(),"each",[],(($$21=function(arg){var $a,arg_name,default_value,self=null==$$21.$$s?this:$$21.$$s;return null==self.initialization&&(self.initialization=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),$truthy(has_post_args)?(arg_name=null==($a=[].concat(Opal.to_a(arg)))[0]?nil:$a[0],default_value=null==$a[1]?nil:$a[1],self.initialization["$<<"](arg.$updated("extract_post_optarg",[arg_name,default_value,self.$args_to_keep()])),self.inline["$<<"](self.$s("fake_arg"))):(self.inline["$<<"](arg.$updated("arg")),self.initialization["$<<"](arg.$updated("extract_optarg")))}).$$s=this,$$21.$$arity=1,$$21))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_restarg",$Initializer_extract_restarg$22=function(){var arg_name,arg=nil;return $truthy(arg=this.args.$restarg())?(arg_name=arg.$children()["$[]"](0),this.initialization["$<<"](arg.$updated("extract_restarg",[arg_name,this.$args_to_keep()])),this.inline["$<<"](this.$s("fake_arg"))):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$args_to_keep",$Initializer_args_to_keep$23=function(){return this.args.$postargs().$length()},$Initializer_args_to_keep$23.$$arity=0),nil&&"args_to_keep"}($nesting[0],$$$($$$($$$("::","Opal"),"Rewriters"),"Base"),$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/numblocks"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$children","$s","$gen_args","$map"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$Numblocks_gen_args$2,$Numblocks_on_numblock$1){$Numblocks_gen_args$2=$klass($base,$Numblocks_gen_args$2,"Numblocks"),[$Numblocks_gen_args$2].concat($Numblocks_on_numblock$1);return Opal.def($Numblocks_gen_args$2,"$on_numblock",$Numblocks_on_numblock$1=function($a){var $a=$a.$children(),$a=Opal.to_ary($a),left=null==$a[0]?nil:$a[0],arg_count=null==$a[1]?nil:$a[1],right=null==$a[2]?nil:$a[2];return this.$s("block",left,$send(this,"s",["args"].concat(Opal.to_a(this.$gen_args(arg_count)))),right)},$Numblocks_on_numblock$1.$$arity=1),Opal.def($Numblocks_gen_args$2,"$gen_args",$Numblocks_gen_args$2=function(arg_count){var $$3;return $send(Opal.Range.$new(1,arg_count,!1),"map",[],(($$3=function(i){var self=null==$$3.$$s?this:$$3.$$s;return null==i&&(i=nil),self.$s("arg","_"+i)}).$$s=this,$$3.$$arity=1,$$3))},$Numblocks_gen_args$2.$$arity=1),nil&&"gen_args"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/returnable_logic"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$+","$children","$next_tmp","$updated","$s","$process"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$ReturnableLogic_on_and$4,$ReturnableLogic_on_or$3){$ReturnableLogic_on_and$4=$klass($base,$ReturnableLogic_on_and$4,"ReturnableLogic"),[$ReturnableLogic_on_and$4].concat($ReturnableLogic_on_or$3);return $ReturnableLogic_on_and$4.$$prototype.counter=nil,Opal.def($ReturnableLogic_on_and$4,"$next_tmp",$ReturnableLogic_on_or$3=function(){var lhs,self=this,rhs=nil;return self.counter=$truthy(rhs=self.counter)?rhs:0,self.counter=(lhs=self.counter,rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),"$ret_or_"+self.counter},$ReturnableLogic_on_or$3.$$arity=0),Opal.def($ReturnableLogic_on_and$4,"$reset_tmp_counter!",$ReturnableLogic_on_or$3=function(){return this.counter=nil},$ReturnableLogic_on_or$3.$$arity=0),Opal.def($ReturnableLogic_on_and$4,"$on_or",$ReturnableLogic_on_or$3=function(node){var $a=[].concat(Opal.to_a(node.$children())),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],lhs_tmp=this.$next_tmp();return node.$updated("if",[this.$s("lvasgn",lhs_tmp,this.$process(lhs)),this.$s("js_tmp",lhs_tmp),this.$process(rhs)])},$ReturnableLogic_on_or$3.$$arity=1),Opal.def($ReturnableLogic_on_and$4,"$on_and",$ReturnableLogic_on_and$4=function(node){var $a=[].concat(Opal.to_a(node.$children())),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],lhs_tmp=this.$next_tmp();return node.$updated("if",[this.$s("lvasgn",lhs_tmp,this.$process(lhs)),this.$process(rhs),this.$s("js_tmp",lhs_tmp)])},$ReturnableLogic_on_and$4.$$arity=1),nil&&"on_and"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/forward_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$process","$s","$last","$children","$==","$type","$[]","$updated","$!=","$class"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$ForwardArgs_on_forward_args$1){var $ForwardArgs_on_args$2,$ForwardArgs_on_send$3,self=$klass($base,self,"ForwardArgs"),$nesting=[self].concat($ForwardArgs_on_forward_args$1);return Opal.def(self,"$on_forward_args",$ForwardArgs_on_forward_args$1=function(){return this.$process(this.$s("args",this.$s("forward_arg","$")))},$ForwardArgs_on_forward_args$1.$$arity=1),Opal.def(self,"$on_args",$ForwardArgs_on_args$2=function(node){var prev_children,$zuper_ii,$iter=$ForwardArgs_on_args$2.$$p,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ForwardArgs_on_args$2.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy($truthy($ret_or_1=node.$children().$last())?node.$children().$last().$type()["$=="]("forward_arg"):$ret_or_1)?(prev_children=node.$children()["$[]"]($range(0,-2,!1)),node.$updated(nil,[].concat(Opal.to_a(prev_children)).concat([this.$s("restarg","$fwd_rest"),this.$s("blockarg","$fwd_block")]))):$send2(this,$find_super(this,"on_args",$ForwardArgs_on_args$2,!1,!0),"on_args",$zuper,$iter)},$ForwardArgs_on_args$2.$$arity=1),Opal.def(self,"$on_send",$ForwardArgs_on_send$3=function(node){var prev_children,$zuper_ii,$iter=$ForwardArgs_on_send$3.$$p,$ret_or_2=nil,$ret_or_3=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ForwardArgs_on_send$3.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy($truthy($ret_or_2=$truthy($ret_or_3=node.$children().$last())?node.$children().$last().$class()["$!="]($$($nesting,"Symbol")):$ret_or_3)?node.$children().$last().$type()["$=="]("forwarded_args"):$ret_or_2)?(prev_children=node.$children()["$[]"]($range(0,-2,!1)),node.$updated(nil,[].concat(Opal.to_a(prev_children)).concat([this.$s("splat",this.$s("lvar","$fwd_rest")),this.$s("block_pass",this.$s("lvar","$fwd_block"))]))):$send2(this,$find_super(this,"on_send",$ForwardArgs_on_send$3,!1,!0),"on_send",$zuper,$iter)},$ForwardArgs_on_send$3.$$arity=1),nil&&"on_send"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriter"]=function(Opal){var $Rewriter_process$7,$disable$4,$delete$3=Opal.top,$disabled$ques$5=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$Rewriter_initialize$6=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$<<","$list","$delete","$use","$disabled?","$class","$each","$new","$process"]),$delete$3.$require("opal/rewriters/opal_engine_check"),$delete$3.$require("opal/rewriters/for_rewriter"),$delete$3.$require("opal/rewriters/explicit_writer_return"),$delete$3.$require("opal/rewriters/js_reserved_words"),$delete$3.$require("opal/rewriters/block_to_iter"),$delete$3.$require("opal/rewriters/dot_js_syntax"),$delete$3.$require("opal/rewriters/pattern_matching"),$delete$3.$require("opal/rewriters/logical_operator_assignment"),$delete$3.$require("opal/rewriters/binary_operator_assignment"),$delete$3.$require("opal/rewriters/hashes/key_duplicates_rewriter"),$delete$3.$require("opal/rewriters/dump_args"),$delete$3.$require("opal/rewriters/mlhs_args"),$delete$3.$require("opal/rewriters/inline_args"),$delete$3.$require("opal/rewriters/numblocks"),$delete$3.$require("opal/rewriters/returnable_logic"),$delete$3.$require("opal/rewriters/forward_args"),$Rewriter_initialize$6=[$Rewriter_initialize$6($delete$3=($Rewriter_process$7=$disabled$ques$5)[0],"Opal")].concat($Rewriter_process$7),$disabled$ques$5=$Rewriter_initialize$6[0],$delete$3=$Rewriter_initialize$6,$Rewriter_process$7=$klass($disabled$ques$5,null,"Rewriter"),$Rewriter_initialize$6=[$Rewriter_process$7].concat($delete$3),$Rewriter_process$7.$$prototype.sexp=nil,[$disabled$ques$5=Opal.get_singleton_class($Rewriter_process$7)].concat($delete$3=$Rewriter_initialize$6),Opal.def($disabled$ques$5,"$list",$delete$3=function(){var self=this,$ret_or_1=nil;return null==self.list&&(self.list=nil),self.list=$truthy($ret_or_1=self.list)?$ret_or_1:[]},$delete$3.$$arity=0),Opal.def($disabled$ques$5,"$use",$delete$3=function(rewriter){return this.$list()["$<<"](rewriter)},$delete$3.$$arity=1),Opal.def($disabled$ques$5,"$delete",$delete$3=function(rewriter){return this.$list().$delete(rewriter)},$delete$3.$$arity=1),Opal.def($disabled$ques$5,"$disable",$disable$4=function(){var $iter=$disable$4.$$p,$yield=$iter||nil,self=this;return $iter&&($disable$4.$$p=null),function(){try{return self.disabled=!0,Opal.yieldX($yield,[])}finally{self.disabled=!1}}()},$disable$4.$$arity=0),Opal.def($disabled$ques$5,"$disabled?",$disabled$ques$5=function(){var $a;return null==this.disabled&&(this.disabled=nil),$truthy(null!=($a=this.disabled)&&$a!==nil?"instance-variable":nil)?this.disabled:nil},$disabled$ques$5.$$arity=0),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"OpalEngineCheck")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"ForRewriter")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"Numblocks")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"ForwardArgs")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"BlockToIter")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"DotJsSyntax")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"PatternMatching")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"JsReservedWords")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"LogicalOperatorAssignment")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"BinaryOperatorAssignment")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"ExplicitWriterReturn")),$Rewriter_process$7.$use($$$($$$($$($Rewriter_initialize$6,"Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"ReturnableLogic")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"DumpArgs")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"MlhsArgs")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"InlineArgs")),Opal.def($Rewriter_process$7,"$initialize",$Rewriter_initialize$6=function(sexp){return this.sexp=sexp},$Rewriter_initialize$6.$$arity=1),Opal.def($Rewriter_process$7,"$process",$Rewriter_process$7=function(){var $$8;return $truthy(this.$class()["$disabled?"]())||$send(this.$class().$list(),"each",[],(($$8=function(rewriter_class){var self=null==$$8.$$s?this:$$8.$$s,rewriter=nil;return null==self.sexp&&(self.sexp=nil),null==rewriter_class&&(rewriter_class=nil),rewriter=rewriter_class.$new(),self.sexp=rewriter.$process(self.sexp)}).$$s=this,$$8.$$arity=1,$$8)),this.sexp},$Rewriter_process$7.$$arity=0),nil&&"process"},Opal.modules["opal/parser/source_buffer"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super;return function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,self,$parent_nesting){var $SourceBuffer_recognize_encoding$1,self=$klass($base,self,"SourceBuffer"),$nesting=[self].concat($parent_nesting);return Opal.defs(self,"$recognize_encoding",$SourceBuffer_recognize_encoding$1=function(string){var $ret_or_1,$zuper_ii,$iter=$SourceBuffer_recognize_encoding$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($SourceBuffer_recognize_encoding$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy($ret_or_1=$send2(this,$find_super(this,"recognize_encoding",$SourceBuffer_recognize_encoding$1,!1,!0),"recognize_encoding",$zuper,$iter))?$ret_or_1:$$$($$($nesting,"Encoding"),"UTF_8")},$SourceBuffer_recognize_encoding$1.$$arity=1),nil&&"recognize_encoding"}($nesting[0],$$$($$$($$$("::","Parser"),"Source"),"Buffer"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/default_config"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$lambda=Opal.lambda;return Opal.add_stubs(["$attr_accessor","$all_errors_are_fatal=","$diagnostics","$-","$ignore_warnings=","$diagnostics_consumer","$consumer=","$extend","$diagnostics_consumer=","$new","$rewrite","$process","$default_parser","$default_parser_class"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function(self,$nesting){self=$module(self,"Parser"),$nesting=[self].concat($nesting);return function($DefaultConfig_rewrite$6,$DefaultConfig_included$2){var $DefaultConfig_initialize$4,$DefaultConfig_parse$5,$nesting=[$DefaultConfig_rewrite$6=$module($DefaultConfig_rewrite$6,"DefaultConfig")].concat($DefaultConfig_included$2);(function(self,$parent_nesting){var $ClassMethods_default_parser$1;[self=$module(self,"ClassMethods")].concat($parent_nesting),self.$attr_accessor("diagnostics_consumer"),Opal.def(self,"$default_parser",$ClassMethods_default_parser$1=function(){var $writer,$zuper_ii,$iter=$ClassMethods_default_parser$1.$$p,parser=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ClassMethods_default_parser$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return parser=$send2(this,$find_super(this,"default_parser",$ClassMethods_default_parser$1,!1,!0),"default_parser",$zuper,$iter),$writer=[!0],$send(parser.$diagnostics(),"all_errors_are_fatal=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(parser.$diagnostics(),"ignore_warnings=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[this.$diagnostics_consumer()],$send(parser.$diagnostics(),"consumer=",Opal.to_a($writer)),$rb_minus($writer.length,1),parser},$ClassMethods_default_parser$1.$$arity=0)})($nesting[0],$nesting),Opal.defs($DefaultConfig_rewrite$6,"$included",$DefaultConfig_included$2=function(klass){var $$3,$writer;return klass.$extend($$($nesting,"ClassMethods")),$writer=[$lambda((($$3=function(diagnostic){null==$$3.$$s||$$3.$$s;return null==diagnostic&&(diagnostic=nil),nil}).$$s=this,$$3.$$arity=1,$$3))],$send(klass,"diagnostics_consumer=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$DefaultConfig_included$2.$$arity=1),Opal.def($DefaultConfig_rewrite$6,"$initialize",$DefaultConfig_initialize$4=function($a){var $iter=$DefaultConfig_initialize$4.$$p;return $iter&&($DefaultConfig_initialize$4.$$p=null),Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$DefaultConfig_initialize$4,!1,!0),"initialize",[$$$($$$($$($nesting,"Opal"),"AST"),"Builder").$new()],null)},$DefaultConfig_initialize$4.$$arity=-1),Opal.def($DefaultConfig_rewrite$6,"$parse",$DefaultConfig_parse$5=function(source_buffer){var parsed,$zuper_ii,$iter=$DefaultConfig_parse$5.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($DefaultConfig_parse$5.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return parsed=$send2(this,$find_super(this,"parse",$DefaultConfig_parse$5,!1,!0),"parse",$zuper,$iter),this.$rewrite(parsed)},$DefaultConfig_parse$5.$$arity=1),Opal.def($DefaultConfig_rewrite$6,"$rewrite",$DefaultConfig_rewrite$6=function(node){return $$$($$($nesting,"Opal"),"Rewriter").$new(node).$process()},$DefaultConfig_rewrite$6.$$arity=1)}($nesting[0],$nesting),function($default_parser$7,$parent_nesting){[$default_parser$7].concat($parent_nesting);return $default_parser$7.$attr_accessor("default_parser_class"),Opal.def($default_parser$7,"$default_parser",$default_parser$7=function(){return this.$default_parser_class().$default_parser()},$default_parser$7.$$arity=0),nil&&"default_parser"}(Opal.get_singleton_class(self),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/with_ruby_lexer"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$include","$default_parser_class=","$-"]),function(self,rhs,lhs){self=$klass(self,rhs,"WithRubyLexer"),rhs=[self].concat(lhs),lhs=nil;return self.$include($$$($$$($$(rhs,"Opal"),"Parser"),"DefaultConfig")),lhs=[self],$send($$$($$(rhs,"Opal"),"Parser"),"default_parser_class=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}($$$($$($nesting,"Opal"),"Parser"),$$$($$($nesting,"Parser"),"Ruby30"),$nesting)},Opal.modules["opal/parser/patch"]=function(Opal){Opal.top;var $Lexer_source_buffer$eq$1,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2,$module=Opal.module;return Opal.add_stubs(["$source","$unpack","$+","$to_a","$lines","$end_with?","$<<","$map","$chomp","$=~","$diagnostic","$nil?","$type","$[]","$respond_to?","$[]=","$-","$send","$value"]),$Lexer_source_buffer$eq$1=$$($nesting,"Parser"),$parent_nesting=$nesting,[$Lexer_source_buffer$eq$1=$klass($Lexer_source_buffer$eq$1,null,"Lexer")].concat($parent_nesting),$Lexer_source_buffer$eq$1.$$prototype.source_buffer=nil,Opal.def($Lexer_source_buffer$eq$1,"$source_buffer=",$Lexer_source_buffer$eq$1=function(source_buffer){var source=nil;return this.source_buffer=source_buffer,$truthy(this.source_buffer)?(source=this.source_buffer.$source(),this.source_pts=source.$unpack("U*")):this.source_pts=nil},$Lexer_source_buffer$eq$1.$$arity=1),function($Literal_extend_string$2,$parent_nesting){[$Literal_extend_string$2=$klass($Literal_extend_string$2,null,"Literal")].concat($parent_nesting),$Literal_extend_string$2.$$prototype.buffer_s=$Literal_extend_string$2.$$prototype.buffer=nil,Opal.udef($Literal_extend_string$2,"$extend_string"),Opal.def($Literal_extend_string$2,"$extend_string",$Literal_extend_string$2=function(rhs,ts,te){var lhs=this,$ret_or_1=nil;return lhs.buffer_s=$truthy($ret_or_1=lhs.buffer_s)?$ret_or_1:ts,lhs.buffer_e=te,lhs.buffer=(lhs=lhs.buffer,rhs=rhs,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))},$Literal_extend_string$2.$$arity=3)}($$$($$($nesting,"Parser"),"Lexer"),$nesting),function($Buffer_source_lines$3,$parent_nesting){[$Buffer_source_lines$3=$klass($Buffer_source_lines$3,null,"Buffer")].concat($parent_nesting),$Buffer_source_lines$3.$$prototype.lines=$Buffer_source_lines$3.$$prototype.source=nil,Opal.def($Buffer_source_lines$3,"$source_lines",$Buffer_source_lines$3=function(){var $$4,$ret_or_2,self=this,lines=nil;return self.lines=$truthy($ret_or_2=self.lines)?$ret_or_2:(lines=self.source.$lines().$to_a(),$truthy(self.source["$end_with?"]("\n"))&&lines["$<<"](""),$send(lines,"map",[],(($$4=function(line){null==$$4.$$s||$$4.$$s;return null==line&&(line=nil),line.$chomp("\n")}).$$s=self,$$4.$$arity=1,$$4)))},$Buffer_source_lines$3.$$arity=0)}($$$($$($nesting,"Parser"),"Source"),$nesting),function($Default_check_lvar_name$5,$parent_nesting){[$Default_check_lvar_name$5=$klass($Default_check_lvar_name$5,null,"Default")].concat($parent_nesting),Opal.def($Default_check_lvar_name$5,"$check_lvar_name",$Default_check_lvar_name$5=function(name,loc){return $truthy(name["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?nil:this.$diagnostic("error","lvar_name",$hash2(["name"],{name:name}),loc)},$Default_check_lvar_name$5.$$arity=2)}($$$($$($nesting,"Parser"),"Builders"),$nesting),function($Mixin_process$6,$parent_nesting){[$Mixin_process$6=$module($Mixin_process$6,"Mixin")].concat($parent_nesting),Opal.udef($Mixin_process$6,"$process"),Opal.def($Mixin_process$6,"$process",$Mixin_process$6=function(node){var type,on_handler,$ret_or_4,$ret_or_5,self=this,$ret_or_3=nil,lhs=nil,rhs=nil;return null==self._on_handler_cache&&(self._on_handler_cache=nil),$truthy(node["$nil?"]())?nil:(self._on_handler_cache=$truthy($ret_or_3=self._on_handler_cache)?$ret_or_3:$hash2([],{}),type=node.$type(),on_handler=$truthy($ret_or_4=self._on_handler_cache["$[]"](type))?$ret_or_4:(lhs=[type,(rhs="on_"+type,$truthy(self["$respond_to?"](rhs))||(rhs="handler_missing"),rhs)],$send(self._on_handler_cache,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]),$truthy($ret_or_5=self.$send(on_handler,node))?$ret_or_5:node)},$Mixin_process$6.$$arity=1)}($$$($$($nesting,"AST"),"Processor"),$nesting),function($Default_string_value$7,$parent_nesting){$Default_string_value$7=$klass($Default_string_value$7,null,"Default"),[$Default_string_value$7].concat($parent_nesting);return Opal.udef($Default_string_value$7,"$string_value"),Opal.def($Default_string_value$7,"$string_value",$Default_string_value$7=function(token){return this.$value(token)},$Default_string_value$7.$$arity=1),nil&&"string_value"}($$$($$($nesting,"Parser"),"Builders"),$nesting)},Opal.modules["opal/parser"]=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$require"]),self.$require("opal/ast/builder"),self.$require("opal/rewriter"),self.$require("opal/parser/source_buffer"),self.$require("opal/parser/default_config"),self.$require("opal/parser/with_ruby_lexer"),self.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$attr_reader","$to_s","$inspect","$type","$===","$first","$children","$[]","$line","$column"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($Fragment_column$5,$Fragment_line$4){$Fragment_column$5=$klass($Fragment_column$5,null,"Fragment"),[$Fragment_column$5].concat($Fragment_line$4);return $Fragment_column$5.$$prototype.code=$Fragment_column$5.$$prototype.sexp=nil,$Fragment_column$5.$attr_reader("code"),Opal.def($Fragment_column$5,"$initialize",$Fragment_line$4=function(code,scope,sexp){return null==sexp&&(sexp=nil),this.code=code.$to_s(),this.sexp=sexp,this.scope=scope},$Fragment_line$4.$$arity=-3),Opal.def($Fragment_column$5,"$inspect",$Fragment_line$4=function(){return"f("+this.code.$inspect()+")"},$Fragment_line$4.$$arity=0),Opal.def($Fragment_column$5,"$source_map_name",$Fragment_line$4=function(){var self=this,$case=nil;return $case=self.sexp.$type(),"top"["$==="]($case)||"begin"["$==="]($case)||"newline"["$==="]($case)||"js_return"["$==="]($case)?nil:"self"["$==="]($case)?"self":"module"["$==="]($case)?"module":"class"["$==="]($case)?"class":"int"["$==="]($case)||"def"["$==="]($case)?self.sexp.$children().$first():"defs"["$==="]($case)||"send"["$==="]($case)?self.sexp.$children()["$[]"](1):"lvar"["$==="]($case)||"lvasgn"["$==="]($case)||"lvdeclare"["$==="]($case)||"ivar"["$==="]($case)||"ivasgn"["$==="]($case)||"gvar"["$==="]($case)||"cvar"["$==="]($case)||"cvasgn"["$==="]($case)||"gvars"["$==="]($case)||"gvasgn"["$==="]($case)?self.sexp.$children().$first():nil},$Fragment_line$4.$$arity=0),Opal.def($Fragment_column$5,"$line",$Fragment_line$4=function(){return $truthy(this.sexp)?this.sexp.$line():nil},$Fragment_line$4.$$arity=0),Opal.def($Fragment_column$5,"$column",$Fragment_column$5=function(){return $truthy(this.sexp)?this.sexp.$column():nil},$Fragment_column$5.$$arity=0),nil&&"column"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/helpers"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$valid_name?","$inspect","$=~","$to_s","$+","$indent","$compiler","$to_proc","$parser_indent","$push","$current_indent","$js_truthy_optimize","$helper","$fragment","$expr","$==","$type","$[]","$children","$uses_block!","$scope","$block_name","$handlers","$include?","$truthy_optimize?","$new_temp","$wrap"]),self.$require("opal/regexp_anchors"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function(self,$Helpers_js_truthy_optimize$10){var $Helpers_indent$4,$Helpers_conditional_send$11,self=$module(self,"Helpers"),$nesting=[self].concat($Helpers_js_truthy_optimize$10);return Opal.def(self,"$property",$Helpers_js_truthy_optimize$10=function(name){return $truthy(this["$valid_name?"](name))?"."+name:"["+name.$inspect()+"]"},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$valid_name?",$Helpers_js_truthy_optimize$10=function(name){return $$$($$$($$($nesting,"Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](name)},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$mid_to_jsid",$Helpers_js_truthy_optimize$10=function(lhs){var rhs;return $truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[/["$=~"](lhs.$to_s()))?"['$"+lhs+"']":(rhs=lhs,"number"==typeof(lhs=".$")&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$indent",$Helpers_indent$4=function(){var $iter=$Helpers_indent$4.$$p,block=$iter||nil;return $iter&&($Helpers_indent$4.$$p=null),$iter&&($Helpers_indent$4.$$p=null),$send(this.$compiler(),"indent",[],block.$to_proc())},$Helpers_indent$4.$$arity=0),Opal.def(self,"$current_indent",$Helpers_js_truthy_optimize$10=function(){return this.$compiler().$parser_indent()},$Helpers_js_truthy_optimize$10.$$arity=0),Opal.def(self,"$line",$Helpers_js_truthy_optimize$10=function($a){var strs=Opal.slice.call(arguments,0,arguments.length);return this.$push("\n"+this.$current_indent()),$send(this,"push",Opal.to_a(strs))},$Helpers_js_truthy_optimize$10.$$arity=-1),Opal.def(self,"$empty_line",$Helpers_js_truthy_optimize$10=function(){return this.$push("\n")},$Helpers_js_truthy_optimize$10.$$arity=0),Opal.def(self,"$js_truthy",$Helpers_js_truthy_optimize$10=function(sexp){var optimize;return $truthy(optimize=this.$js_truthy_optimize(sexp))?optimize:(this.$helper("truthy"),[this.$fragment("$truthy("),this.$expr(sexp),this.$fragment(")")])},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$js_falsy",$Helpers_js_truthy_optimize$10=function(sexp){return sexp.$type()["$=="]("send")&&sexp.$children()["$[]"](1)["$=="]("block_given?")?(this.$scope()["$uses_block!"](),this.$scope().$block_name()+" === nil"):(this.$helper("falsy"),[this.$fragment("$falsy("),this.$expr(sexp),this.$fragment(")")])},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$js_truthy_optimize",$Helpers_js_truthy_optimize$10=function(sexp){var allow_optimization_on_type,self=this,mid=nil,receiver_handler_class=nil,$ret_or_1=nil,receiver=nil,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil;return sexp.$type()["$=="]("send")?(mid=sexp.$children()["$[]"](1),receiver_handler_class=$truthy($ret_or_1=receiver=sexp.$children()["$[]"](0))?self.$compiler().$handlers()["$[]"](receiver.$type()):$ret_or_1,allow_optimization_on_type=$truthy($ret_or_2=$truthy($ret_or_3=$$$($$($nesting,"Compiler"),"COMPARE")["$include?"](mid.$to_s()))?receiver_handler_class:$ret_or_3)?receiver_handler_class["$truthy_optimize?"]():$ret_or_2,$truthy($truthy($ret_or_4=$truthy($ret_or_5=allow_optimization_on_type)?$ret_or_5:mid["$=="]("block_given?"))?$ret_or_4:mid["$=="]("=="))?self.$expr(sexp):nil):nil},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$conditional_send",$Helpers_conditional_send$11=function(recvr){var receiver_temp,$iter=$Helpers_conditional_send$11.$$p,$yield=$iter||nil;return $iter&&($Helpers_conditional_send$11.$$p=null),receiver_temp=this.$scope().$new_temp(),this.$push(receiver_temp+" = ",recvr),this.$push(", ("+receiver_temp+" === nil || "+receiver_temp+" == null) ? nil : "),Opal.yield1($yield,receiver_temp),this.$wrap("(",")")},$Helpers_conditional_send$11.$$arity=1),nil&&"conditional_send"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/base"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$require","$include","$each","$[]=","$handlers","$-","$each_with_index","$define_method","$[]","$children","$attr_reader","$type","$compile","$raise","$is_a?","$fragment","$<<","$reverse_each","$unshift","$push","$new","$scope","$error","$top_scope","$s","$==","$process","$expr","$add_scope_local","$to_sym","$add_scope_ivar","$add_scope_gvar","$add_scope_temp","$helper","$with_temp","$to_proc","$in_while?","$instance_variable_get","$has_rescue_else?","$in_ensure","$in_ensure?","$in_resbody","$in_resbody?","$in_rescue","$!","$class_scope?","$sclass?","$+","$parent","$class_variable_owner_nesting_level","$comments","$compiler","$loc","$name","$source_buffer","$expression","$start_with?","$end_with?","$line"]),self.$require("opal/nodes/helpers"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($Base_source_location$47,$Base_comments$46){var $Base_with_temp$35,$Base_in_ensure$39,$Base_in_resbody$41,$Base_in_rescue$43,$Base_source_location$47=$klass($Base_source_location$47,null,"Base"),$nesting=[$Base_source_location$47].concat($Base_comments$46);return $Base_source_location$47.$$prototype.sexp=$Base_source_location$47.$$prototype.fragments=$Base_source_location$47.$$prototype.compiler=$Base_source_location$47.$$prototype.level=nil,$Base_source_location$47.$include($$($nesting,"Helpers")),Opal.defs($Base_source_location$47,"$handlers",$Base_comments$46=function(){var self=this,$ret_or_1=nil;return null==self.handlers&&(self.handlers=nil),self.handlers=$truthy($ret_or_1=self.handlers)?$ret_or_1:$hash2([],{})},$Base_comments$46.$$arity=0),Opal.defs($Base_source_location$47,"$handle",$Base_comments$46=function($a){var $$3,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"each",[],(($$3=function(type){var rhs=null==$$3.$$s?this:$$3.$$s,lhs=nil;return null==type&&(type=nil),lhs=[type,rhs],$send($$($nesting,"Base").$handlers(),"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}).$$s=this,$$3.$$arity=1,$$3))},$Base_comments$46.$$arity=-1),Opal.defs($Base_source_location$47,"$children",$Base_comments$46=function($a){var $$5,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"each_with_index",[],(($$5=function(name,idx){var $$6,self=null==$$5.$$s?this:$$5.$$s;return null==name&&(name=nil),null==idx&&(idx=nil),$send(self,"define_method",[name],(($$6=function(){var self=null==$$6.$$s?this:$$6.$$s;return null==self.sexp&&(self.sexp=nil),self.sexp.$children()["$[]"](idx)}).$$s=self,$$6.$$arity=0,$$6))}).$$s=this,$$5.$$arity=2,$$5))},$Base_comments$46.$$arity=-1),Opal.defs($Base_source_location$47,"$truthy_optimize?",$Base_comments$46=function(){return!1},$Base_comments$46.$$arity=0),$Base_source_location$47.$attr_reader("compiler","type"),Opal.def($Base_source_location$47,"$initialize",$Base_comments$46=function(sexp,level,compiler){return this.sexp=sexp,this.type=sexp.$type(),this.level=level,this.compiler=compiler},$Base_comments$46.$$arity=3),Opal.def($Base_source_location$47,"$children",$Base_comments$46=function(){return this.sexp.$children()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$compile_to_fragments",$Base_comments$46=function(){var $a;return $truthy(null!=($a=this.fragments)&&$a!==nil?"instance-variable":nil)||(this.fragments=[],this.$compile()),this.fragments},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$compile",$Base_comments$46=function(){return this.$raise("Not Implemented")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$push",$Base_comments$46=function($a){var $$13,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"each",[],(($$13=function(str){var self=null==$$13.$$s?this:$$13.$$s;return null==self.fragments&&(self.fragments=nil),null==str&&(str=nil),$truthy(str["$is_a?"]($$($nesting,"String")))&&(str=self.$fragment(str)),self.fragments["$<<"](str)}).$$s=this,$$13.$$arity=1,$$13))},$Base_comments$46.$$arity=-1),Opal.def($Base_source_location$47,"$unshift",$Base_comments$46=function($a){var $$15,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"reverse_each",[],(($$15=function(str){var self=null==$$15.$$s?this:$$15.$$s;return null==self.fragments&&(self.fragments=nil),null==str&&(str=nil),$truthy(str["$is_a?"]($$($nesting,"String")))&&(str=self.$fragment(str)),self.fragments.$unshift(str)}).$$s=this,$$15.$$arity=1,$$15))},$Base_comments$46.$$arity=-1),Opal.def($Base_source_location$47,"$wrap",$Base_comments$46=function(pre,post){return this.$unshift(pre),this.$push(post)},$Base_comments$46.$$arity=2),Opal.def($Base_source_location$47,"$fragment",$Base_comments$46=function(str){return $$$($$($nesting,"Opal"),"Fragment").$new(str,this.$scope(),this.sexp)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$error",$Base_comments$46=function(msg){return this.compiler.$error(msg)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$scope",$Base_comments$46=function(){return this.compiler.$scope()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$top_scope",$Base_comments$46=function(){return this.$scope().$top_scope()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$s",$Base_comments$46=function($a){var $post_args=Opal.slice.call(arguments,0,arguments.length);return $send(this.compiler,"s",Opal.to_a($post_args))},$Base_comments$46.$$arity=-1),Opal.def($Base_source_location$47,"$expr?",$Base_comments$46=function(){return this.level["$=="]("expr")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$recv?",$Base_comments$46=function(){return this.level["$=="]("recv")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$stmt?",$Base_comments$46=function(){return this.level["$=="]("stmt")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$process",$Base_comments$46=function(sexp,level){return null==level&&(level="expr"),this.compiler.$process(sexp,level)},$Base_comments$46.$$arity=-2),Opal.def($Base_source_location$47,"$expr",$Base_comments$46=function(sexp){return this.compiler.$process(sexp,"expr")},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$recv",$Base_comments$46=function(sexp){return this.compiler.$process(sexp,"recv")},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$stmt",$Base_comments$46=function(sexp){return this.compiler.$process(sexp,"stmt")},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$expr_or_nil",$Base_comments$46=function(sexp){return $truthy(sexp)?this.$expr(sexp):"nil"},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$add_local",$Base_comments$46=function(name){return this.$scope().$add_scope_local(name.$to_sym())},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$add_ivar",$Base_comments$46=function(name){return this.$scope().$add_scope_ivar(name)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$add_gvar",$Base_comments$46=function(name){return this.$scope().$add_scope_gvar(name)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$add_temp",$Base_comments$46=function(temp){return this.$scope().$add_scope_temp(temp)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$helper",$Base_comments$46=function(name){return this.compiler.$helper(name)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$with_temp",$Base_with_temp$35=function(){var $iter=$Base_with_temp$35.$$p,block=$iter||nil;return $iter&&($Base_with_temp$35.$$p=null),$iter&&($Base_with_temp$35.$$p=null),$send(this.compiler,"with_temp",[],block.$to_proc())},$Base_with_temp$35.$$arity=0),Opal.def($Base_source_location$47,"$in_while?",$Base_comments$46=function(){return this.compiler["$in_while?"]()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$while_loop",$Base_comments$46=function(){return this.compiler.$instance_variable_get("@while_loop")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$has_rescue_else?",$Base_comments$46=function(){return this.$scope()["$has_rescue_else?"]()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$in_ensure",$Base_in_ensure$39=function(){var $iter=$Base_in_ensure$39.$$p,block=$iter||nil;return $iter&&($Base_in_ensure$39.$$p=null),$iter&&($Base_in_ensure$39.$$p=null),$send(this.$scope(),"in_ensure",[],block.$to_proc())},$Base_in_ensure$39.$$arity=0),Opal.def($Base_source_location$47,"$in_ensure?",$Base_comments$46=function(){return this.$scope()["$in_ensure?"]()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$in_resbody",$Base_in_resbody$41=function(){var $iter=$Base_in_resbody$41.$$p,block=$iter||nil;return $iter&&($Base_in_resbody$41.$$p=null),$iter&&($Base_in_resbody$41.$$p=null),$send(this.$scope(),"in_resbody",[],block.$to_proc())},$Base_in_resbody$41.$$arity=0),Opal.def($Base_source_location$47,"$in_resbody?",$Base_comments$46=function(){return this.$scope()["$in_resbody?"]()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$in_rescue",$Base_in_rescue$43=function(node){var $iter=$Base_in_rescue$43.$$p,block=$iter||nil;return $iter&&($Base_in_rescue$43.$$p=null),$iter&&($Base_in_rescue$43.$$p=null),$send(this.$scope(),"in_rescue",[node],block.$to_proc())},$Base_in_rescue$43.$$arity=1),Opal.def($Base_source_location$47,"$class_variable_owner_nesting_level",$Base_comments$46=function(){for(var lhs,rhs,cvar_scope=nil,nesting_level=nil,$ret_or_2=nil,cvar_scope=this.$scope(),nesting_level=0;$truthy($truthy($ret_or_2=cvar_scope)?cvar_scope["$class_scope?"]()["$!"]():$ret_or_2);)$truthy(cvar_scope["$sclass?"]())&&(rhs=1,nesting_level="number"==typeof(lhs=nesting_level)&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),cvar_scope=cvar_scope.$parent();return nesting_level},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$class_variable_owner",$Base_comments$46=function(){return $truthy(this.$scope())?"$nesting["+this.$class_variable_owner_nesting_level()+"]":"Opal.Object"},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$comments",$Base_comments$46=function(){return this.$compiler().$comments()["$[]"](this.sexp.$loc())},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$source_location",$Base_source_location$47=function(){var file=nil,file=this.sexp.$loc().$expression().$source_buffer().$name();return $truthy(file["$start_with?"]("corelib/"))&&(file=""),$truthy(file["$end_with?"](".js"))&&(file=""),"['"+file+"', "+this.sexp.$loc().$line()+"]"},$Base_source_location$47.$$arity=0),nil&&"source_location"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/literal"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send,$lambda=Opal.lambda,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice;return Opal.add_stubs(["$require","$handle","$push","$to_s","$type","$children","$value","$recv?","$wrap","$freeze","$join","$keys","$gsub","$even?","$length","$last_match","$+","$chop","$[]","$inspect","$to_i","$to_utf16","$translate_escape_chars","$valid_encoding?","$helper","$upcase","$<=","$call","$-","$>>","$&","$attr_accessor","$extract_flags_and_value","$select!","$flags","$=~","$warning","$compiler","$==","$compile_static_regexp","$compile_dynamic_regexp","$each_with_index","$zero?","$expr","$any?","$===","$new","$map","$to_proc","$flags=","$empty?","$s","$single_line?","$value=","$include?","$is_a?","$updated","$delete","$source","$expression","$loc","$private","$>","$!=","$!","$regexp","$each","$compile_inline?","$compile_inline","$compile_range_initialize","$start","$finish","$raise","$expr_or_nil","$numerator","$denominator","$real","$imag"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ValueNode_truthy_optimize$ques$2,$ValueNode_compile$1){[$ValueNode_truthy_optimize$ques$2=$klass($base,$ValueNode_truthy_optimize$ques$2,"ValueNode")].concat($ValueNode_compile$1),$ValueNode_truthy_optimize$ques$2.$handle("true","false","self","nil"),Opal.def($ValueNode_truthy_optimize$ques$2,"$compile",$ValueNode_compile$1=function(){return this.$push(this.$type().$to_s())},$ValueNode_compile$1.$$arity=0),Opal.defs($ValueNode_truthy_optimize$ques$2,"$truthy_optimize?",$ValueNode_truthy_optimize$ques$2=function(){return!0},$ValueNode_truthy_optimize$ques$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$NumericNode_truthy_optimize$ques$4,$NumericNode_compile$3){[$NumericNode_truthy_optimize$ques$4=$klass($base,$NumericNode_truthy_optimize$ques$4,"NumericNode")].concat($NumericNode_compile$3),$NumericNode_truthy_optimize$ques$4.$handle("int","float"),$NumericNode_truthy_optimize$ques$4.$children("value"),Opal.def($NumericNode_truthy_optimize$ques$4,"$compile",$NumericNode_compile$3=function(){return this.$push(this.$value().$to_s()),$truthy(this["$recv?"]())?this.$wrap("(",")"):nil},$NumericNode_compile$3.$$arity=0),Opal.defs($NumericNode_truthy_optimize$ques$4,"$truthy_optimize?",$NumericNode_truthy_optimize$ques$4=function(){return!0},$NumericNode_truthy_optimize$ques$4.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$StringNode_to_utf16$9,$StringNode_compile$7){var $nesting=[$StringNode_to_utf16$9=$klass($base,$StringNode_to_utf16$9,"StringNode")].concat($StringNode_compile$7);$StringNode_to_utf16$9.$handle("str"),$StringNode_to_utf16$9.$children("value"),Opal.const_set($nesting[0],"ESCAPE_CHARS",$hash2(["a","e"],{a:"\\u0007",e:"\\u001b"}).$freeze()),Opal.const_set($nesting[0],"ESCAPE_REGEX",Opal.regexp(["(\\\\+)([",$$($nesting,"ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),Opal.def($StringNode_to_utf16$9,"$translate_escape_chars",$StringNode_compile$7=function(inspect_string){var $$6;return $send(inspect_string,"gsub",[$$($nesting,"ESCAPE_REGEX")],(($$6=function(original){null==$$6.$$s||$$6.$$s;return null==original&&(original=nil),$truthy($$($nesting,"Regexp").$last_match(1).$length()["$even?"]())?original:$rb_plus($$($nesting,"Regexp").$last_match(1).$chop(),$$($nesting,"ESCAPE_CHARS")["$[]"]($$($nesting,"Regexp").$last_match(2)))}).$$s=this,$$6.$$arity=1,$$6))},$StringNode_compile$7.$$arity=1),Opal.def($StringNode_to_utf16$9,"$compile",$StringNode_compile$7=function(){var $$8,string_value=nil,string_value=this.$value(),sanitized_value=$send(string_value.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],(($$8=function(){var self=null==$$8.$$s?this:$$8.$$s,code_point=$$($nesting,"Regexp").$last_match(1).$to_i(16);return self.$to_utf16(code_point)}).$$s=this,$$8.$$arity=0,$$8));return this.$push(this.$translate_escape_chars(sanitized_value)),$truthy(this.$value()["$valid_encoding?"]())?nil:(this.$helper("binary"),this.$wrap("$binary(",")"))},$StringNode_compile$7.$$arity=0),Opal.def($StringNode_to_utf16$9,"$to_utf16",$StringNode_to_utf16$9=function(code_point){var $$10,lead_surrogate,tail_surrogate,lhs,rhs,u=nil,u=$lambda((($$10=function(code_unit){null==$$10.$$s||$$10.$$s;return null==code_unit&&(code_unit=nil),$rb_plus("\\u",code_unit.$to_s(16).$upcase())}).$$s=this,$$10.$$arity=1,$$10));return $truthy((rhs=65535,"number"==typeof(lhs=code_point)&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))?u.$call(code_point):(lead_surrogate=$rb_plus(55296,(code_point=$rb_minus(code_point,65536))["$>>"](10)),tail_surrogate=$rb_plus(56320,code_point["$&"](1023)),$rb_plus(u.$call(lead_surrogate),u.$call(tail_surrogate)))},$StringNode_to_utf16$9.$$arity=1)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$SymbolNode_compile$11,$parent_nesting){[$SymbolNode_compile$11=$klass($base,$SymbolNode_compile$11,"SymbolNode")].concat($parent_nesting),$SymbolNode_compile$11.$handle("sym"),$SymbolNode_compile$11.$children("value"),Opal.def($SymbolNode_compile$11,"$compile",$SymbolNode_compile$11=function(){return this.$push(this.$value().$to_s().$inspect())},$SymbolNode_compile$11.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$RegexpNode_single_line$ques$21,$RegexpNode_raw_value$20){var $RegexpNode_initialize$12,$nesting=[$RegexpNode_single_line$ques$21=$klass($base,$RegexpNode_single_line$ques$21,"RegexpNode")].concat($RegexpNode_raw_value$20);$RegexpNode_single_line$ques$21.$$prototype.sexp=nil,$RegexpNode_single_line$ques$21.$handle("regexp"),$RegexpNode_single_line$ques$21.$attr_accessor("value","flags"),Opal.const_set($nesting[0],"SUPPORTED_FLAGS",/[gimuy]/.$freeze()),Opal.def($RegexpNode_single_line$ques$21,"$initialize",$RegexpNode_initialize$12=function($a){var $zuper_ii,$iter=$RegexpNode_initialize$12.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($RegexpNode_initialize$12.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$RegexpNode_initialize$12,!1,!0),"initialize",$zuper,$iter),this.$extract_flags_and_value()},$RegexpNode_initialize$12.$$arity=-1),Opal.def($RegexpNode_single_line$ques$21,"$compile",$RegexpNode_raw_value$20=function(){var $$14;return $send(this.$flags(),"select!",[],(($$14=function(flag){var self=null==$$14.$$s?this:$$14.$$s;return null==flag&&(flag=nil),!!$truthy($$($nesting,"SUPPORTED_FLAGS")["$=~"](flag))||(self.$compiler().$warning("Skipping the '"+flag+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)}).$$s=this,$$14.$$arity=1,$$14)),this.$value().$type()["$=="]("str")?this.$compile_static_regexp():this.$compile_dynamic_regexp()},$RegexpNode_raw_value$20.$$arity=0),Opal.def($RegexpNode_single_line$ques$21,"$compile_dynamic_regexp",$RegexpNode_raw_value$20=function(){var $$16;return this.$push("Opal.regexp(["),$send(this.$value().$children(),"each_with_index",[],(($$16=function(v,index){var self=null==$$16.$$s?this:$$16.$$s;return null==v&&(v=nil),null==index&&(index=nil),$truthy(index["$zero?"]())||self.$push(", "),self.$push(self.$expr(v))}).$$s=this,$$16.$$arity=2,$$16)),this.$push("]"),$truthy(this.$flags()["$any?"]())&&this.$push(", '"+this.$flags().$join()+"'"),this.$push(")")},$RegexpNode_raw_value$20.$$arity=0),Opal.def($RegexpNode_single_line$ques$21,"$compile_static_regexp",$RegexpNode_raw_value$20=function(){var self=this,value=self.$value().$children()["$[]"](0);return""["$==="](value)?self.$push("/(?:)/"):self.$push(""+$$($nesting,"Regexp").$new(value).$inspect()+self.$flags().$join())},$RegexpNode_raw_value$20.$$arity=0),Opal.def($RegexpNode_single_line$ques$21,"$extract_flags_and_value",$RegexpNode_raw_value$20=function(){var $$19,parts,self=this,values=nil,flags_sexp=nil,$writer=nil,$a=[].concat(Opal.to_a(self.$children())),$b=$a.length-1;return $b=$b<0?0:$b,values=$slice.call($a,0,$b),flags_sexp=null==$a[$b]?nil:$a[$b],$writer=[$send(flags_sexp.$children(),"map",[],"to_s".$to_proc())],$send(self,"flags=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$truthy(values["$empty?"]())?self.$s("str",""):$truthy(self["$single_line?"](values))?values["$[]"](0):$send(self,"s",["dstr"].concat(Opal.to_a(values)))],$send(self,"value=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(self.$flags()["$include?"]("x"))&&(parts=$send(self.$value().$children(),"map",[],(($$19=function(part){var trimmed_value,self=null==$$19.$$s?this:$$19.$$s,$ret_or_1=nil;return null==part&&(part=nil),$truthy($truthy($ret_or_1=part["$is_a?"]($$$($$$($$$("::","Opal"),"AST"),"Node")))?part.$type()["$=="]("str"):$ret_or_1)?(trimmed_value=part.$children()["$[]"](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),self.$s("str",trimmed_value)):part}).$$s=self,$$19.$$arity=1,$$19)),$writer=[self.$value().$updated(nil,parts)],$send(self,"value=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.$flags().$delete("x")),self.$value().$type()["$=="]("str")?($writer=[self.$s("str",self.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],$send(self,"value=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil},$RegexpNode_raw_value$20.$$arity=0),Opal.def($RegexpNode_single_line$ques$21,"$raw_value",$RegexpNode_raw_value$20=function(){var $writer=[this.sexp.$loc().$expression().$source()];return $send(this,"value=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$RegexpNode_raw_value$20.$$arity=0),$RegexpNode_single_line$ques$21.$private(),Opal.def($RegexpNode_single_line$ques$21,"$single_line?",$RegexpNode_single_line$ques$21=function(values){var $ret_or_2,lhs,rhs,value=nil;return!$truthy((lhs=values.$length(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))&&(value=values["$[]"](0),$truthy($ret_or_2=value.$type()["$!="]("str"))?$ret_or_2:value.$children()["$[]"](0)["$include?"]("\n")["$!"]())},$RegexpNode_single_line$ques$21.$$arity=1)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$MatchCurrentLineNode_compile$22,$parent_nesting){[$MatchCurrentLineNode_compile$22=$klass($base,$MatchCurrentLineNode_compile$22,"MatchCurrentLineNode")].concat($parent_nesting),$MatchCurrentLineNode_compile$22.$handle("match_current_line"),$MatchCurrentLineNode_compile$22.$children("regexp"),Opal.def($MatchCurrentLineNode_compile$22,"$compile",$MatchCurrentLineNode_compile$22=function(){var gvar_sexp=this.$s("gvar","$_"),send_node=this.$s("send",gvar_sexp,"=~",this.$regexp());return this.$push(this.$expr(send_node))},$MatchCurrentLineNode_compile$22.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$DynamicStringNode_compile$23,$parent_nesting){[$DynamicStringNode_compile$23=$klass($base,$DynamicStringNode_compile$23,"DynamicStringNode")].concat($parent_nesting),$DynamicStringNode_compile$23.$handle("dstr"),Opal.def($DynamicStringNode_compile$23,"$compile",$DynamicStringNode_compile$23=function(){var $$24;return this.$push('""'),$send(this.$children(),"each",[],(($$24=function(part){var self=null==$$24.$$s?this:$$24.$$s;return null==part&&(part=nil),self.$push(" + "),part.$type()["$=="]("str")?self.$push(part.$children()["$[]"](0).$inspect()):self.$push("(",self.$expr(part),")"),$truthy(self["$recv?"]())?self.$wrap("(",")"):nil}).$$s=this,$$24.$$arity=1,$$24))},$DynamicStringNode_compile$23.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,self,$parent_nesting){[self=$klass($base,self,"DynamicSymbolNode")].concat($parent_nesting),self.$handle("dsym")}($nesting[0],$$($nesting,"DynamicStringNode"),$nesting),function($base,$RangeNode_compile_range_initialize$28,$RangeNode_compile_inline$27){var $nesting=[$RangeNode_compile_range_initialize$28=$klass($base,$RangeNode_compile_range_initialize$28,"RangeNode")].concat($RangeNode_compile_inline$27);$RangeNode_compile_range_initialize$28.$children("start","finish"),Opal.const_set($nesting[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),Opal.def($RangeNode_compile_range_initialize$28,"$compile",$RangeNode_compile_inline$27=function(){return $truthy(this["$compile_inline?"]())?(this.$helper("range"),this.$compile_inline()):this.$compile_range_initialize()},$RangeNode_compile_inline$27.$$arity=0),Opal.def($RangeNode_compile_range_initialize$28,"$compile_inline?",$RangeNode_compile_inline$27=function(){var $ret_or_3,$ret_or_6,$ret_or_7,self=this,$ret_or_4=nil,$ret_or_5=nil;return $truthy($ret_or_3=$truthy($ret_or_4=self.$start()["$!"]())?$ret_or_4:$truthy($ret_or_5=self.$start().$type())?$$($nesting,"SIMPLE_CHILDREN_TYPES")["$include?"](self.$start().$type()):$ret_or_5)?$truthy($ret_or_6=self.$finish()["$!"]())?$ret_or_6:$truthy($ret_or_7=self.$finish().$type())?$$($nesting,"SIMPLE_CHILDREN_TYPES")["$include?"](self.$finish().$type()):$ret_or_7:$ret_or_3},$RangeNode_compile_inline$27.$$arity=0),Opal.def($RangeNode_compile_range_initialize$28,"$compile_inline",$RangeNode_compile_inline$27=function(){return this.$raise($$($nesting,"NotImplementedError"))},$RangeNode_compile_inline$27.$$arity=0),Opal.def($RangeNode_compile_range_initialize$28,"$compile_range_initialize",$RangeNode_compile_range_initialize$28=function(){return this.$raise($$($nesting,"NotImplementedError"))},$RangeNode_compile_range_initialize$28.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$InclusiveRangeNode_compile_range_initialize$30,$InclusiveRangeNode_compile_inline$29){[$InclusiveRangeNode_compile_range_initialize$30=$klass($base,$InclusiveRangeNode_compile_range_initialize$30,"InclusiveRangeNode")].concat($InclusiveRangeNode_compile_inline$29),$InclusiveRangeNode_compile_range_initialize$30.$handle("irange"),Opal.def($InclusiveRangeNode_compile_range_initialize$30,"$compile_inline",$InclusiveRangeNode_compile_inline$29=function(){return this.$push("$range(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", false)")},$InclusiveRangeNode_compile_inline$29.$$arity=0),Opal.def($InclusiveRangeNode_compile_range_initialize$30,"$compile_range_initialize",$InclusiveRangeNode_compile_range_initialize$30=function(){return this.$push("Opal.Range.$new(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", false)")},$InclusiveRangeNode_compile_range_initialize$30.$$arity=0)}($nesting[0],$$($nesting,"RangeNode"),$nesting),function($base,$ExclusiveRangeNode_compile_range_initialize$32,$ExclusiveRangeNode_compile_inline$31){[$ExclusiveRangeNode_compile_range_initialize$32=$klass($base,$ExclusiveRangeNode_compile_range_initialize$32,"ExclusiveRangeNode")].concat($ExclusiveRangeNode_compile_inline$31),$ExclusiveRangeNode_compile_range_initialize$32.$handle("erange"),Opal.def($ExclusiveRangeNode_compile_range_initialize$32,"$compile_inline",$ExclusiveRangeNode_compile_inline$31=function(){return this.$push("$range(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", true)")},$ExclusiveRangeNode_compile_inline$31.$$arity=0),Opal.def($ExclusiveRangeNode_compile_range_initialize$32,"$compile_range_initialize",$ExclusiveRangeNode_compile_range_initialize$32=function(){return this.$push("Opal.Range.$new(",this.$expr_or_nil(this.$start()),",",this.$expr_or_nil(this.$finish()),", true)")},$ExclusiveRangeNode_compile_range_initialize$32.$$arity=0)}($nesting[0],$$($nesting,"RangeNode"),$nesting),function($base,$RationalNode_compile$33,$parent_nesting){[$RationalNode_compile$33=$klass($base,$RationalNode_compile$33,"RationalNode")].concat($parent_nesting),$RationalNode_compile$33.$handle("rational"),$RationalNode_compile$33.$children("value"),Opal.def($RationalNode_compile$33,"$compile",$RationalNode_compile$33=function(){return this.$push("Opal.Rational.$new("+this.$value().$numerator()+", "+this.$value().$denominator()+")")},$RationalNode_compile$33.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ComplexNode_compile$34,$parent_nesting){$ComplexNode_compile$34=$klass($base,$ComplexNode_compile$34,"ComplexNode"),[$ComplexNode_compile$34].concat($parent_nesting);return $ComplexNode_compile$34.$handle("complex"),$ComplexNode_compile$34.$children("value"),Opal.def($ComplexNode_compile$34,"$compile",$ComplexNode_compile$34=function(){return this.$push("Opal.Complex.$new("+this.$value().$real()+", "+this.$value().$imag()+")")},$ComplexNode_compile$34.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/variables"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$handle","$children","$irb?","$compiler","$top?","$scope","$using_irb?","$push","$to_s","$var_name","$with_temp","$property","$wrap","$add_local","$expr","$value","$recv?","$expr?","$[]","$name","$add_ivar","$helper","$add_gvar","$===","$handle_global_match","$handle_post_match","$handle_pre_match","$raise","$index","$stmt?","$class_variable_owner","$inspect"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$LocalVariableNode_compile$2,$LocalVariableNode_using_irb$ques$1){[$LocalVariableNode_compile$2=$klass($base,$LocalVariableNode_compile$2,"LocalVariableNode")].concat($LocalVariableNode_using_irb$ques$1),$LocalVariableNode_compile$2.$handle("lvar"),$LocalVariableNode_compile$2.$children("var_name"),Opal.def($LocalVariableNode_compile$2,"$using_irb?",$LocalVariableNode_using_irb$ques$1=function(){var $ret_or_1;return $truthy($ret_or_1=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():$ret_or_1},$LocalVariableNode_using_irb$ques$1.$$arity=0),Opal.def($LocalVariableNode_compile$2,"$compile",$LocalVariableNode_compile$2=function(){var $$3;return $truthy(this["$using_irb?"]())?$send(this,"with_temp",[],(($$3=function(tmp){var self=null==$$3.$$s?this:$$3.$$s;return null==tmp&&(tmp=nil),self.$push(self.$property(self.$var_name().$to_s())),self.$wrap("(("+tmp+" = Opal.irb_vars",") == null ? nil : "+tmp+")")}).$$s=this,$$3.$$arity=1,$$3)):this.$push(this.$var_name().$to_s())},$LocalVariableNode_compile$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$LocalAssignNode_compile$5,$LocalAssignNode_using_irb$ques$4){[$LocalAssignNode_compile$5=$klass($base,$LocalAssignNode_compile$5,"LocalAssignNode")].concat($LocalAssignNode_using_irb$ques$4),$LocalAssignNode_compile$5.$handle("lvasgn"),$LocalAssignNode_compile$5.$children("var_name","value"),Opal.def($LocalAssignNode_compile$5,"$using_irb?",$LocalAssignNode_using_irb$ques$4=function(){var $ret_or_2;return $truthy($ret_or_2=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():$ret_or_2},$LocalAssignNode_using_irb$ques$4.$$arity=0),Opal.def($LocalAssignNode_compile$5,"$compile",$LocalAssignNode_compile$5=function(){var self=this,$ret_or_3=nil,$ret_or_4=nil;return $truthy(self["$using_irb?"]())?self.$push("Opal.irb_vars"+self.$property(self.$var_name().$to_s())+" = "):(self.$add_local(self.$var_name().$to_s()),self.$push(self.$var_name()+" = ")),self.$push(self.$expr(self.$value())),$truthy($truthy($ret_or_3=$truthy($ret_or_4=self["$recv?"]())?$ret_or_4:self["$expr?"]())?self.$value():$ret_or_3)?self.$wrap("(",")"):nil},$LocalAssignNode_compile$5.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$LocalDeclareNode_compile$6,$parent_nesting){[$LocalDeclareNode_compile$6=$klass($base,$LocalDeclareNode_compile$6,"LocalDeclareNode")].concat($parent_nesting),$LocalDeclareNode_compile$6.$handle("lvdeclare"),$LocalDeclareNode_compile$6.$children("var_name"),Opal.def($LocalDeclareNode_compile$6,"$compile",$LocalDeclareNode_compile$6=function(){return this.$add_local(this.$var_name().$to_s()),nil},$LocalDeclareNode_compile$6.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$InstanceVariableNode_compile$8,$InstanceVariableNode_var_name$7){[$InstanceVariableNode_compile$8=$klass($base,$InstanceVariableNode_compile$8,"InstanceVariableNode")].concat($InstanceVariableNode_var_name$7),$InstanceVariableNode_compile$8.$handle("ivar"),$InstanceVariableNode_compile$8.$children("name"),Opal.def($InstanceVariableNode_compile$8,"$var_name",$InstanceVariableNode_var_name$7=function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))},$InstanceVariableNode_var_name$7.$$arity=0),Opal.def($InstanceVariableNode_compile$8,"$compile",$InstanceVariableNode_compile$8=function(){var name=this.$property(this.$var_name());return this.$add_ivar(name),this.$push("self"+name)},$InstanceVariableNode_compile$8.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$InstanceAssignNode_compile$10,$InstanceAssignNode_var_name$9){[$InstanceAssignNode_compile$10=$klass($base,$InstanceAssignNode_compile$10,"InstanceAssignNode")].concat($InstanceAssignNode_var_name$9),$InstanceAssignNode_compile$10.$handle("ivasgn"),$InstanceAssignNode_compile$10.$children("name","value"),Opal.def($InstanceAssignNode_compile$10,"$var_name",$InstanceAssignNode_var_name$9=function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))},$InstanceAssignNode_var_name$9.$$arity=0),Opal.def($InstanceAssignNode_compile$10,"$compile",$InstanceAssignNode_compile$10=function(){var self=this,$ret_or_5=nil,$ret_or_6=nil,name=self.$property(self.$var_name());return self.$push("self"+name+" = "),self.$push(self.$expr(self.$value())),$truthy($truthy($ret_or_5=$truthy($ret_or_6=self["$recv?"]())?$ret_or_6:self["$expr?"]())?self.$value():$ret_or_5)?self.$wrap("(",")"):nil},$InstanceAssignNode_compile$10.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$GlobalVariableNode_compile$12,$GlobalVariableNode_var_name$11){[$GlobalVariableNode_compile$12=$klass($base,$GlobalVariableNode_compile$12,"GlobalVariableNode")].concat($GlobalVariableNode_var_name$11),$GlobalVariableNode_compile$12.$handle("gvar"),$GlobalVariableNode_compile$12.$children("name"),Opal.def($GlobalVariableNode_compile$12,"$var_name",$GlobalVariableNode_var_name$11=function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))},$GlobalVariableNode_var_name$11.$$arity=0),Opal.def($GlobalVariableNode_compile$12,"$compile",$GlobalVariableNode_compile$12=function(){var name;return this.$helper("gvars"),name=this.$property(this.$var_name()),this.$add_gvar(name),this.$push("$gvars"+name)},$GlobalVariableNode_compile$12.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$BackRefNode_handle_post_match$18,$BackRefNode_handle_pre_match$16){var $BackRefNode_compile$13,$nesting=[$BackRefNode_handle_post_match$18=$klass($base,$BackRefNode_handle_post_match$18,"BackRefNode")].concat($BackRefNode_handle_pre_match$16);$BackRefNode_handle_post_match$18.$handle("back_ref"),Opal.def($BackRefNode_handle_post_match$18,"$compile",$BackRefNode_compile$13=function(){var $zuper_ii,$iter=$BackRefNode_compile$13.$$p,self=this,$case=nil,$zuper=nil,$zuper_i=nil;for($iter&&($BackRefNode_compile$13.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return self.$helper("gvars"),$case=self.$var_name(),"&"["$==="]($case)?self.$handle_global_match():"'"["$==="]($case)?self.$handle_post_match():"`"["$==="]($case)?self.$handle_pre_match():"+"["$==="]($case)?$send2(self,$find_super(self,"compile",$BackRefNode_compile$13,!1,!0),"compile",$zuper,$iter):self.$raise($$($nesting,"NotImplementedError"))},$BackRefNode_compile$13.$$arity=0),Opal.def($BackRefNode_handle_post_match$18,"$handle_global_match",$BackRefNode_handle_pre_match$16=function(){var $$15;return $send(this,"with_temp",[],(($$15=function(tmp){var self=null==$$15.$$s?this:$$15.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+"['$[]'](0))")}).$$s=this,$$15.$$arity=1,$$15))},$BackRefNode_handle_pre_match$16.$$arity=0),Opal.def($BackRefNode_handle_post_match$18,"$handle_pre_match",$BackRefNode_handle_pre_match$16=function(){var $$17;return $send(this,"with_temp",[],(($$17=function(tmp){var self=null==$$17.$$s?this:$$17.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+".$pre_match())")}).$$s=this,$$17.$$arity=1,$$17))},$BackRefNode_handle_pre_match$16.$$arity=0),Opal.def($BackRefNode_handle_post_match$18,"$handle_post_match",$BackRefNode_handle_post_match$18=function(){var $$19;return $send(this,"with_temp",[],(($$19=function(tmp){var self=null==$$19.$$s?this:$$19.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+".$post_match())")}).$$s=this,$$19.$$arity=1,$$19))},$BackRefNode_handle_post_match$18.$$arity=0)}($nesting[0],$$($nesting,"GlobalVariableNode"),$nesting),function($base,$GlobalAssignNode_compile$21,$GlobalAssignNode_var_name$20){[$GlobalAssignNode_compile$21=$klass($base,$GlobalAssignNode_compile$21,"GlobalAssignNode")].concat($GlobalAssignNode_var_name$20),$GlobalAssignNode_compile$21.$handle("gvasgn"),$GlobalAssignNode_compile$21.$children("name","value"),Opal.def($GlobalAssignNode_compile$21,"$var_name",$GlobalAssignNode_var_name$20=function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))},$GlobalAssignNode_var_name$20.$$arity=0),Opal.def($GlobalAssignNode_compile$21,"$compile",$GlobalAssignNode_compile$21=function(){var name,self=this,$ret_or_7=nil,$ret_or_8=nil;return self.$helper("gvars"),name=self.$property(self.$var_name()),self.$push("$gvars"+name+" = "),self.$push(self.$expr(self.$value())),$truthy($truthy($ret_or_7=$truthy($ret_or_8=self["$recv?"]())?$ret_or_8:self["$expr?"]())?self.$value():$ret_or_7)?self.$wrap("(",")"):nil},$GlobalAssignNode_compile$21.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$NthrefNode_compile$22,$parent_nesting){[$NthrefNode_compile$22=$klass($base,$NthrefNode_compile$22,"NthrefNode")].concat($parent_nesting),$NthrefNode_compile$22.$handle("nth_ref"),$NthrefNode_compile$22.$children("index"),Opal.def($NthrefNode_compile$22,"$compile",$NthrefNode_compile$22=function(){var $$23;return this.$helper("gvars"),$send(this,"with_temp",[],(($$23=function(tmp){var self=null==$$23.$$s?this:$$23.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+"['$[]']("+self.$index()+"))")}).$$s=this,$$23.$$arity=1,$$23))},$NthrefNode_compile$22.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ClassVariableNode_compile$24,$parent_nesting){[$ClassVariableNode_compile$24=$klass($base,$ClassVariableNode_compile$24,"ClassVariableNode")].concat($parent_nesting),$ClassVariableNode_compile$24.$handle("cvar"),$ClassVariableNode_compile$24.$children("name"),Opal.def($ClassVariableNode_compile$24,"$compile",$ClassVariableNode_compile$24=function(){var tolerant=nil;return this.$helper("class_variable_get"),tolerant=!1,$truthy(this["$stmt?"]())&&(tolerant=!0),this.$push("$class_variable_get("+this.$class_variable_owner()+", '"+this.$name()+"', "+tolerant.$inspect()+")")},$ClassVariableNode_compile$24.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ClassVarAssignNode_compile$25,$parent_nesting){$ClassVarAssignNode_compile$25=$klass($base,$ClassVarAssignNode_compile$25,"ClassVarAssignNode"),[$ClassVarAssignNode_compile$25].concat($parent_nesting);return $ClassVarAssignNode_compile$25.$handle("cvasgn"),$ClassVarAssignNode_compile$25.$children("name","value"),Opal.def($ClassVarAssignNode_compile$25,"$compile",$ClassVarAssignNode_compile$25=function(){return this.$helper("class_variable_set"),this.$push("$class_variable_set("+this.$class_variable_owner()+", '"+this.$name()+"', ",this.$expr(this.$value()),")")},$ClassVarAssignNode_compile$25.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/constants"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$magical_data_const?","$push","$const_scope","$recv","$name","$eval?","$compiler","$nil?","$==","$eof_content","$base","$expr","$value"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ConstNode_magical_data_const$ques$2,$ConstNode_compile$1){[$ConstNode_magical_data_const$ques$2=$klass($base,$ConstNode_magical_data_const$ques$2,"ConstNode")].concat($ConstNode_compile$1),$ConstNode_magical_data_const$ques$2.$handle("const"),$ConstNode_magical_data_const$ques$2.$children("const_scope","name"),Opal.def($ConstNode_magical_data_const$ques$2,"$compile",$ConstNode_compile$1=function(){return $truthy(this["$magical_data_const?"]())?this.$push("$__END__"):$truthy(this.$const_scope())?this.$push("$$$(",this.$recv(this.$const_scope()),", '"+this.$name()+"')"):($truthy(this.$compiler()["$eval?"]()),this.$push("$$($nesting, '"+this.$name()+"')"))},$ConstNode_compile$1.$$arity=0),Opal.def($ConstNode_magical_data_const$ques$2,"$magical_data_const?",$ConstNode_magical_data_const$ques$2=function(){var $ret_or_1,self=this,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=self.$const_scope()["$nil?"]())?self.$name()["$=="]("DATA"):$ret_or_2)?self.$compiler().$eof_content():$ret_or_1},$ConstNode_magical_data_const$ques$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$CbaseNode_compile$3,$parent_nesting){[$CbaseNode_compile$3=$klass($base,$CbaseNode_compile$3,"CbaseNode")].concat($parent_nesting),$CbaseNode_compile$3.$handle("cbase"),Opal.def($CbaseNode_compile$3,"$compile",$CbaseNode_compile$3=function(){return this.$push("'::'")},$CbaseNode_compile$3.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ConstAssignNode_compile$4,$parent_nesting){$ConstAssignNode_compile$4=$klass($base,$ConstAssignNode_compile$4,"ConstAssignNode"),[$ConstAssignNode_compile$4].concat($parent_nesting);return $ConstAssignNode_compile$4.$handle("casgn"),$ConstAssignNode_compile$4.$children("base","name","value"),Opal.def($ConstAssignNode_compile$4,"$compile",$ConstAssignNode_compile$4=function(){return $truthy(this.$base())?this.$push("Opal.const_set(",this.$expr(this.$base()),", '"+this.$name()+"', ",this.$expr(this.$value()),")"):this.$push("Opal.const_set($nesting[0], '"+this.$name()+"', ",this.$expr(this.$value()),")")},$ConstAssignNode_compile$4.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/break_finder"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias;return Opal.add_stubs(["$require"]),self.$require("opal/rewriter"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$BreakFinder_stop_lookup$4){self=$klass($base,self,"BreakFinder"),[self].concat($BreakFinder_stop_lookup$4);return self.$$prototype.found_break=nil,Opal.def(self,"$initialize",$BreakFinder_stop_lookup$4=function(){return this.found_break=!1},$BreakFinder_stop_lookup$4.$$arity=0),Opal.def(self,"$found_break?",$BreakFinder_stop_lookup$4=function(){return this.found_break},$BreakFinder_stop_lookup$4.$$arity=0),Opal.def(self,"$on_break",$BreakFinder_stop_lookup$4=function(node){return this.found_break=!0,node},$BreakFinder_stop_lookup$4.$$arity=1),Opal.def(self,"$stop_lookup",$BreakFinder_stop_lookup$4=function(){return nil},$BreakFinder_stop_lookup$4.$$arity=1),$alias(self,"on_for","stop_lookup"),$alias(self,"on_while","stop_lookup"),$alias(self,"on_while_post","stop_lookup"),$alias(self,"on_until","stop_lookup"),$alias(self,"on_until_post","stop_lookup"),$alias(self,"on_block","stop_lookup")}($nesting[0],$$$($$$($$($nesting,"Opal"),"Rewriters"),"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/call"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs(["$require","$handle","$attr_reader","$freeze","$[]=","$-","$define_method","$to_proc","$include?","$type","$s","$handle_special","$record_method?","$<<","$method_calls","$compiler","$to_sym","$meth","$using_eval?","$compile_eval_var","$using_irb?","$compile_irb_var","$default_compile","$private","$iter","$new","$process","$found_break?","$splat?","$!","$empty?","$collect_refinements_temps","$scope","$invoke_using_refinement?","$compile_using_refined_send","$invoke_using_send?","$compile_using_send","$compile_simple_call_chain","$compile_break_catcher","$helper","$push","$compile_receiver","$compile_method_name","$compile_arguments","$compile_block_pass","$compile_refinements","$recv","$receiver_sexp","$expr","$arglist","$children","$map","$iter_has_break?","$unshift","$line","$method_jsid","$any?","$==","$recvr","$mid_to_jsid","$to_s","$with_temp","$intern","$irb?","$top?","$variable_like?","$eval?","$scope_variables","$nil?","$updated","$method","$arity","$[]","$each","$add_special","$inline_operators?","$operator_helpers","$fragment","$call","$resolve","$requires","$file","$dirname","$cleanpath","$join","$Pathname","$inspect","$class_scope?","$required_trees","$force_encoding","$encoding","$+","$handle_block_given_call","$def?","$mid","$accepts_using?","$count","$using_refinement","$first","$refinements_temp","$arity_check?","$defines_lambda","$push_nesting?","$!=","$length","$new_temp","$scope_locals","$source_location","$size","$last","$handle_part","$is_a?","$expand_path","$split","$dynamic_require_severity","$===","$error","$warning","$each_with_object","$pop"]),self.$require("set"),self.$require("pathname"),self.$require("opal/nodes/base"),self.$require("opal/rewriters/break_finder"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$CallNode_push_nesting$ques$51,$CallNode_using_refinement$42){var $CallNode_add_special$1,$CallNode_initialize$2,$CallNode_handle_special$31,$CallNode$32,$CallNode$34,$CallNode$35,$CallNode$36,$CallNode$37,$CallNode$38,$CallNode$39,$CallNode$40,$CallNode$41,$CallNode$43,$CallNode$44,$CallNode$45,$CallNode$47,$CallNode$48,$CallNode$49,$CallNode$50,$CallNode_push_nesting$ques$51=$klass($base,$CallNode_push_nesting$ques$51,"CallNode"),$nesting=[$CallNode_push_nesting$ques$51].concat($CallNode_using_refinement$42);return $CallNode_push_nesting$ques$51.$$prototype.sexp=$CallNode_push_nesting$ques$51.$$prototype.compiler=nil,$CallNode_push_nesting$ques$51.$handle("send"),$CallNode_push_nesting$ques$51.$attr_reader("recvr","meth","arglist","iter"),Opal.const_set($nesting[0],"SPECIALS",$hash2([],{})),Opal.const_set($nesting[0],"OPERATORS",$hash2(["+","-","*","/","<","<=",">",">="],{"+":"plus","-":"minus","*":"times","/":"divide","<":"lt","<=":"le",">":"gt",">=":"ge"}).$freeze()),Opal.defs($CallNode_push_nesting$ques$51,"$add_special",$CallNode_add_special$1=function(name,rhs){var $iter=$CallNode_add_special$1.$$p,handler=$iter||nil,lhs=nil;return $iter&&($CallNode_add_special$1.$$p=null),$iter&&($CallNode_add_special$1.$$p=null),null==rhs&&(rhs=$hash2([],{})),lhs=[name,rhs],$send($$($nesting,"SPECIALS"),"[]=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),$send(this,"define_method",["handle_"+name],handler.$to_proc())},$CallNode_add_special$1.$$arity=-2),Opal.def($CallNode_push_nesting$ques$51,"$initialize",$CallNode_initialize$2=function($a){var $b,rest,$zuper_ii,$c=$CallNode_initialize$2.$$p,args=nil,last_arg=nil,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($c&&($CallNode_initialize$2.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$CallNode_initialize$2,!1,!0),"initialize",$zuper,$c),$b=[].concat(Opal.to_a(this.sexp)),this.recvr=null==$b[0]?nil:$b[0],this.meth=null==$b[1]?nil:$b[1],args=$slice.call($b,2),$c=($c=($b=[].concat(Opal.to_a(args))).length-1)<0?0:$c,rest=$slice.call($b,0,$c),last_arg=null==$b[$c]?nil:$b[$c],$truthy($truthy($ret_or_1=last_arg)?["iter","block_pass"]["$include?"](last_arg.$type()):$ret_or_1)?(this.iter=last_arg,args=rest):this.iter=nil,this.arglist=$send(this,"s",["arglist"].concat(Opal.to_a(args)))},$CallNode_initialize$2.$$arity=-1),Opal.def($CallNode_push_nesting$ques$51,"$compile",$CallNode_using_refinement$42=function(){try{var $$4;return $send(this,"handle_special",[],(($$4=function(){var self=null==$$4.$$s?this:$$4.$$s;return $truthy(self["$record_method?"]())&&self.$compiler().$method_calls()["$<<"](self.$meth().$to_sym()),$truthy(self["$using_eval?"]())&&Opal.ret(self.$compile_eval_var()),$truthy(self["$using_irb?"]())&&Opal.ret(self.$compile_irb_var()),self.$default_compile()}).$$s=this,$$4.$$arity=0,$$4))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$CallNode_using_refinement$42.$$arity=0),$CallNode_push_nesting$ques$51.$private(),Opal.def($CallNode_push_nesting$ques$51,"$iter_has_break?",$CallNode_using_refinement$42=function(){var finder=nil;return!!$truthy(this.$iter())&&((finder=$$$($$$($$($nesting,"Opal"),"Rewriters"),"BreakFinder").$new()).$process(this.$iter()),finder["$found_break?"]())},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$invoke_using_send?",$CallNode_using_refinement$42=function(){var $ret_or_2;return $truthy($ret_or_2=this.$iter())?$ret_or_2:this["$splat?"]()},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$invoke_using_refinement?",$CallNode_using_refinement$42=function(){return this.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$default_compile",$CallNode_using_refinement$42=function(){return $truthy(this["$invoke_using_refinement?"]())?this.$compile_using_refined_send():$truthy(this["$invoke_using_send?"]())?this.$compile_using_send():this.$compile_simple_call_chain(),this.$compile_break_catcher()},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_using_send",$CallNode_using_refinement$42=function(){return this.$helper("send"),this.$push("$send("),this.$compile_receiver(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_using_refined_send",$CallNode_using_refinement$42=function(){return this.$helper("refined_send"),this.$push("$refined_send("),this.$compile_refinements(),this.$compile_receiver(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_receiver",$CallNode_using_refinement$42=function(){return this.$push(this.$recv(this.$receiver_sexp()))},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_method_name",$CallNode_using_refinement$42=function(){return this.$push(", '"+this.$meth()+"'")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_arguments",$CallNode_using_refinement$42=function(){return this.$push(", "),$truthy(this["$splat?"]())?this.$push(this.$expr(this.$arglist())):$truthy(this.$arglist().$children()["$empty?"]())?this.$push("[]"):this.$push("[",this.$expr(this.$arglist()),"]")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_block_pass",$CallNode_using_refinement$42=function(){return $truthy(this.$iter())?this.$push(", ",this.$expr(this.$iter())):nil},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_refinements",$CallNode_using_refinement$42=function(){var $$16,refinements=$send(this.$scope().$collect_refinements_temps(),"map",[],(($$16=function(i){var self=null==$$16.$$s?this:$$16.$$s;return null==i&&(i=nil),self.$s("js_tmp",i)}).$$s=this,$$16.$$arity=1,$$16));return this.$push(this.$expr($send(this,"s",["array"].concat(Opal.to_a(refinements)))),", ")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_break_catcher",$CallNode_using_refinement$42=function(){return $truthy(this["$iter_has_break?"]())?(this.$unshift("return "),this.$unshift("(function(){var $brk = Opal.new_brk(); try {"),this.$line("} catch (err) { if (err === $brk) { return err.$v } else { throw err } }})()")):nil},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_simple_call_chain",$CallNode_using_refinement$42=function(){return this.$push(this.$recv(this.$receiver_sexp()),this.$method_jsid(),"(",this.$expr(this.$arglist()),")")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$splat?",$CallNode_using_refinement$42=function(){var $$20;return $send(this.$arglist().$children(),"any?",[],(($$20=function(a){null==$$20.$$s||$$20.$$s;return null==a&&(a=nil),a.$type()["$=="]("splat")}).$$s=this,$$20.$$arity=1,$$20))},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$receiver_sexp",$CallNode_using_refinement$42=function(){var $ret_or_3;return $truthy($ret_or_3=this.$recvr())?$ret_or_3:this.$s("self")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$method_jsid",$CallNode_using_refinement$42=function(){return this.$mid_to_jsid(this.$meth().$to_s())},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$record_method?",$CallNode_using_refinement$42=function(){return!0},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_irb_var",$CallNode_using_refinement$42=function(){var $$25;return $send(this,"with_temp",[],(($$25=function(tmp){var lvar,call,self=null==$$25.$$s?this:$$25.$$s;return null==tmp&&(tmp=nil),lvar=self.$meth(),call=self.$s("send",self.$s("self"),self.$meth().$intern(),self.$s("arglist")),self.$push("(("+tmp+" = Opal.irb_vars."+lvar+") == null ? ",self.$expr(call)," : "+tmp+")")}).$$s=this,$$25.$$arity=1,$$25))},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_eval_var",$CallNode_using_refinement$42=function(){return this.$push(this.$meth().$to_s())},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$using_irb?",$CallNode_using_refinement$42=function(){var $ret_or_4,self=this,$ret_or_5=nil;return $truthy($ret_or_4=$truthy($ret_or_5=self.compiler["$irb?"]())?self.$scope()["$top?"]():$ret_or_5)?self["$variable_like?"]():$ret_or_4},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$using_eval?",$CallNode_using_refinement$42=function(){var $ret_or_6,self=this,$ret_or_7=nil;return $truthy($ret_or_6=$truthy($ret_or_7=self.compiler["$eval?"]())?self.$scope()["$top?"]():$ret_or_7)?self.compiler.$scope_variables()["$include?"](self.$meth()):$ret_or_6},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$variable_like?",$CallNode_using_refinement$42=function(){var $ret_or_8,self=this,$ret_or_9=nil;return $truthy($ret_or_8=$truthy($ret_or_9=self.$arglist()["$=="](self.$s("arglist")))?self.$recvr()["$nil?"]():$ret_or_9)?self.$iter()["$nil?"]():$ret_or_8},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$sexp_with_arglist",$CallNode_using_refinement$42=function(){return this.sexp.$updated(nil,[this.$recvr(),this.$meth(),this.$arglist()])},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$handle_special",$CallNode_handle_special$31=function(){var $iter=$CallNode_handle_special$31.$$p,compile_default=$iter||nil,method=nil;return $iter&&($CallNode_handle_special$31.$$p=null),$iter&&($CallNode_handle_special$31.$$p=null),$truthy($$($nesting,"SPECIALS")["$include?"](this.$meth()))?(method=this.$method("handle_"+this.$meth())).$arity()["$=="](1)?method["$[]"](compile_default):method["$[]"]():Opal.yieldX(compile_default,[])},$CallNode_handle_special$31.$$arity=0),$send($$($nesting,"OPERATORS"),"each",[],(($CallNode$32=function(operator,name){var $$33,self=null==$CallNode$32.$$s?this:$CallNode$32.$$s;return null==operator&&(operator=nil),null==name&&(name=nil),$send(self,"add_special",[operator.$to_sym()],(($$33=function(compile_default){var $a,lhs,rhs,self=null==$$33.$$s?this:$$33.$$s;return null==compile_default&&(compile_default=nil),$truthy(self.$compiler()["$inline_operators?"]())?($truthy(self["$record_method?"]())&&self.$compiler().$method_calls()["$<<"](operator.$to_sym()),self.$compiler().$operator_helpers()["$<<"](operator.$to_sym()),lhs=($a=[self.$expr(self.$recvr()),self.$expr(self.$arglist())])[0],rhs=$a[1],self.$push(self.$fragment("$rb_"+name+"(")),self.$push(lhs),self.$push(self.$fragment(", ")),self.$push(rhs),self.$push(self.$fragment(")"))):compile_default.$call()}).$$s=self,$$33.$$arity=1,$$33))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$32.$$arity=2,$CallNode$32)),$send($CallNode_push_nesting$ques$51,"add_special",["require"],(($CallNode$34=function(compile_default){var self=null==$CallNode$34.$$s?this:$CallNode$34.$$s,str=nil;return null==compile_default&&(compile_default=nil),str=$$($nesting,"DependencyResolver").$new(self.$compiler(),self.$arglist().$children()["$[]"](0)).$resolve(),$truthy(str["$nil?"]())||self.$compiler().$requires()["$<<"](str),compile_default.$call()}).$$s=$CallNode_push_nesting$ques$51,$CallNode$34.$$arity=1,$CallNode$34)),$send($CallNode_push_nesting$ques$51,"add_special",["require_relative"],(($CallNode$35=function(){var dir,self=null==$CallNode$35.$$s?this:$CallNode$35.$$s,arg=nil,file=nil,arg=self.$arglist().$children()["$[]"](0),file=self.$compiler().$file();return arg.$type()["$=="]("str")&&(dir=$$($nesting,"File").$dirname(file),self.$compiler().$requires()["$<<"](self.$Pathname(dir).$join(arg.$children()["$[]"](0)).$cleanpath().$to_s())),self.$push(self.$fragment("self.$require("+file.$inspect()+"+ '/../' + ")),self.$push(self.$process(self.$arglist())),self.$push(self.$fragment(")"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$35.$$arity=0,$CallNode$35)),$send($CallNode_push_nesting$ques$51,"add_special",["autoload"],(($CallNode$36=function(compile_default){var self=null==$CallNode$36.$$s?this:$CallNode$36.$$s,str=nil;return null==compile_default&&(compile_default=nil),$truthy(self.$scope()["$class_scope?"]())?(str=$$($nesting,"DependencyResolver").$new(self.$compiler(),self.$arglist().$children()["$[]"](1)).$resolve(),$truthy(str["$nil?"]())||self.$compiler().$requires()["$<<"](str),compile_default.$call()):nil}).$$s=$CallNode_push_nesting$ques$51,$CallNode$36.$$arity=1,$CallNode$36)),$send($CallNode_push_nesting$ques$51,"add_special",["require_tree"],(($CallNode$37=function(compile_default){var $a,dir,self=null==$CallNode$37.$$s?this:$CallNode$37.$$s,lhs=nil,rhs=nil,relative_path=nil,full_path=nil;return null==compile_default&&(compile_default=nil),lhs=null==($a=[].concat(Opal.to_a(self.$arglist().$children())))[0]?nil:$a[0],rhs=$slice.call($a,1),lhs.$type()["$=="]("str")&&(relative_path=lhs.$children()["$[]"](0),self.$compiler().$required_trees()["$<<"](relative_path),dir=$$($nesting,"File").$dirname(self.$compiler().$file()),(full_path=self.$Pathname(dir).$join(relative_path).$cleanpath().$to_s()).$force_encoding(relative_path.$encoding()),lhs=lhs.$updated(nil,[full_path])),self.arglist=self.$arglist().$updated(nil,(rhs=rhs,"number"==typeof(lhs=[lhs])&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))),compile_default.$call()}).$$s=$CallNode_push_nesting$ques$51,$CallNode$37.$$arity=1,$CallNode$37)),$send($CallNode_push_nesting$ques$51,"add_special",["block_given?"],(($CallNode$38=function(){var self=null==$CallNode$38.$$s?this:$CallNode$38.$$s;return null==self.sexp&&(self.sexp=nil),self.$push(self.$compiler().$handle_block_given_call(self.sexp))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$38.$$arity=0,$CallNode$38)),$send($CallNode_push_nesting$ques$51,"add_special",["__callee__"],(($CallNode$39=function(){var self=null==$CallNode$39.$$s?this:$CallNode$39.$$s;return $truthy(self.$scope()["$def?"]())?self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())):self.$push(self.$fragment("nil"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$39.$$arity=0,$CallNode$39)),$send($CallNode_push_nesting$ques$51,"add_special",["__method__"],(($CallNode$40=function(){var self=null==$CallNode$40.$$s?this:$CallNode$40.$$s;return $truthy(self.$scope()["$def?"]())?self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())):self.$push(self.$fragment("nil"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$40.$$arity=0,$CallNode$40)),$send($CallNode_push_nesting$ques$51,"add_special",["using"],(($CallNode$41=function(compile_default){var self=null==$CallNode$41.$$s?this:$CallNode$41.$$s,$ret_or_10=nil;return null==compile_default&&(compile_default=nil),$truthy($truthy($ret_or_10=self.$scope()["$accepts_using?"]())?self.$arglist().$children().$count()["$=="](1):$ret_or_10)?self.$using_refinement(self.$arglist().$children().$first()):compile_default.$call()}).$$s=$CallNode_push_nesting$ques$51,$CallNode$41.$$arity=1,$CallNode$41)),Opal.def($CallNode_push_nesting$ques$51,"$using_refinement",$CallNode_using_refinement$42=function(arg){var $a=[].concat(Opal.to_a(this.$scope().$refinements_temp())),prev=null==$a[0]?nil:$a[0],curr=null==$a[1]?nil:$a[1];return $truthy(prev)?this.$push("("+curr+" = "+prev+".slice(), "+curr+".push(",this.$expr(arg),"), self)"):this.$push("("+curr+" = [",this.$expr(arg),"], self)")},$CallNode_using_refinement$42.$$arity=1),$send($CallNode_push_nesting$ques$51,"add_special",["debugger"],(($CallNode$43=function(){var self=null==$CallNode$43.$$s?this:$CallNode$43.$$s;return self.$push(self.$fragment("debugger"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$43.$$arity=0,$CallNode$43)),$send($CallNode_push_nesting$ques$51,"add_special",["__OPAL_COMPILER_CONFIG__"],(($CallNode$44=function(){var self=null==$CallNode$44.$$s?this:$CallNode$44.$$s;return self.$push(self.$fragment("Opal.hash({ arity_check: "+self.$compiler()["$arity_check?"]()+" })"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$44.$$arity=0,$CallNode$44)),$send($CallNode_push_nesting$ques$51,"add_special",["lambda"],(($CallNode$45=function(compile_default){var $$46,self=null==$CallNode$45.$$s?this:$CallNode$45.$$s;return null==compile_default&&(compile_default=nil),$send(self.$scope(),"defines_lambda",[],(($$46=function(){null==$$46.$$s||$$46.$$s;return compile_default.$call()}).$$s=self,$$46.$$arity=0,$$46))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$45.$$arity=1,$CallNode$45)),$send($CallNode_push_nesting$ques$51,"add_special",["nesting"],(($CallNode$47=function(compile_default){var push_nesting,self=null==$CallNode$47.$$s?this:$CallNode$47.$$s;return null==compile_default&&(compile_default=nil),push_nesting=self["$push_nesting?"](),$truthy(push_nesting)&&self.$push("(Opal.Module.$$nesting = $nesting, "),compile_default.$call(),$truthy(push_nesting)?self.$push(")"):nil}).$$s=$CallNode_push_nesting$ques$51,$CallNode$47.$$arity=1,$CallNode$47)),$send($CallNode_push_nesting$ques$51,"add_special",["constants"],(($CallNode$48=function(compile_default){var push_nesting,self=null==$CallNode$48.$$s?this:$CallNode$48.$$s;return null==compile_default&&(compile_default=nil),push_nesting=self["$push_nesting?"](),$truthy(push_nesting)&&self.$push("(Opal.Module.$$nesting = $nesting, "),compile_default.$call(),$truthy(push_nesting)?self.$push(")"):nil}).$$s=$CallNode_push_nesting$ques$51,$CallNode$48.$$arity=1,$CallNode$48)),$send($CallNode_push_nesting$ques$51,"add_special",["eval"],(($CallNode$49=function(compile_default){var temp,scope_variables,self=null==$CallNode$49.$$s?this:$CallNode$49.$$s,$ret_or_11=nil;return null==compile_default&&(compile_default=nil),$truthy($truthy($ret_or_11=self.$arglist().$children().$length()["$!="](1))?$ret_or_11:[self.$s("self"),nil]["$include?"](self.$recvr())["$!"]())?compile_default.$call():(temp=self.$scope().$new_temp(),scope_variables=$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),self.$push("("+temp+" = ",self.$expr(self.$arglist())),self.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+temp),self.$push(", {scope_variables: ",scope_variables),self.$push(", arity_check: "+self.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),self.$push("self.$eval("+temp+"))"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$49.$$arity=1,$CallNode$49)),$send($CallNode_push_nesting$ques$51,"add_special",["binding"],(($CallNode$50=function(){var self=null==$CallNode$50.$$s?this:$CallNode$50.$$s;return self.$push("Opal.Binding.$new("),self.$push(" function($code, $value) {"),self.$push(" if (typeof $value === 'undefined') {"),self.$push(" return eval($code);"),self.$push(" }"),self.$push(" else {"),self.$push(" return eval($code + ' = $value');"),self.$push(" }"),self.$push(" },"),self.$push(" ",$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),self.$push(" self,"),self.$push(" ",self.$source_location()),self.$push(")")}).$$s=$CallNode_push_nesting$ques$51,$CallNode$50.$$arity=0,$CallNode$50)),Opal.def($CallNode_push_nesting$ques$51,"$push_nesting?",$CallNode_push_nesting$ques$51=function(){var $ret_or_12,$ret_or_13,$ret_or_14,recv=nil,recv=this.$children().$first();return $truthy($ret_or_12=this.$children().$size()["$=="](2))?$truthy($ret_or_13=recv["$nil?"]())?$ret_or_13:$truthy($ret_or_14=recv.$type()["$=="]("const"))?recv.$children().$last()["$=="]("Module"):$ret_or_14:$ret_or_12},$CallNode_push_nesting$ques$51.$$arity=0),function($DependencyResolver_expand_path$56,$DependencyResolver_handle_part$54){$DependencyResolver_expand_path$56=$klass($DependencyResolver_expand_path$56,null,"DependencyResolver"),[$DependencyResolver_expand_path$56].concat($DependencyResolver_handle_part$54);return $DependencyResolver_expand_path$56.$$prototype.sexp=$DependencyResolver_expand_path$56.$$prototype.compiler=nil,Opal.def($DependencyResolver_expand_path$56,"$initialize",$DependencyResolver_handle_part$54=function(compiler,sexp){return this.compiler=compiler,this.sexp=sexp},$DependencyResolver_handle_part$54.$$arity=2),Opal.def($DependencyResolver_expand_path$56,"$resolve",$DependencyResolver_handle_part$54=function(){return this.$handle_part(this.sexp)},$DependencyResolver_handle_part$54.$$arity=0),Opal.def($DependencyResolver_expand_path$56,"$handle_part",$DependencyResolver_handle_part$54=function($a){var $$55,args,msg,self=this,type=nil,recv=nil,meth=nil,parts=nil,$ret_or_15=nil,$ret_or_16=nil,$case=nil;if((type=$a.$type())["$=="]("str"))return $a.$children()["$[]"](0);if(type["$=="]("send")&&($a=$a.$children(),$a=Opal.to_ary($a),recv=null==$a[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),parts=$send(args,"map",[],(($$55=function(s){var self=null==$$55.$$s?this:$$55.$$s;return null==s&&(s=nil),self.$handle_part(s)}).$$s=self,$$55.$$arity=1,$$55)),$truthy($truthy($ret_or_15=$truthy($ret_or_16=recv["$is_a?"]($$$($$$($$$("::","Opal"),"AST"),"Node")))?recv.$type()["$=="]("const"):$ret_or_16)?recv.$children().$last()["$=="]("File"):$ret_or_15))){if(meth["$=="]("expand_path"))return $send(self,"expand_path",Opal.to_a(parts));if(meth["$=="]("join"))return self.$expand_path(parts.$join("/"));if(meth["$=="]("dirname"))return self.$expand_path(parts["$[]"](0).$split("/")["$[]"]($range(0,-1,!0)).$join("/"))}return msg="Cannot handle dynamic require",$case=self.compiler.$dynamic_require_severity(),"error"["$==="]($case)?self.compiler.$error(msg,self.sexp.$line()):"warning"["$==="]($case)?self.compiler.$warning(msg,self.sexp.$line()):nil},$DependencyResolver_handle_part$54.$$arity=1),Opal.def($DependencyResolver_expand_path$56,"$expand_path",$DependencyResolver_expand_path$56=function(path,base){var $$57;return null==base&&(base=""),$send((base+"/"+path).$split("/"),"each_with_object",[[]],(($$57=function(part,p){null==$$57.$$s||$$57.$$s;return null==part&&(part=nil),null==p&&(p=nil),part["$=="]("")?nil:part["$=="]("..")?p.$pop():p["$<<"](part)}).$$s=this,$$57.$$arity=2,$$57)).$join("/")},$DependencyResolver_expand_path$56.$$arity=-2),nil&&"expand_path"}($nesting[0],$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/csend"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$helper","$conditional_send","$recv","$receiver_sexp","$push","$compile_method_name","$compile_arguments","$compile_block_pass"]),self.$require("opal/nodes/call"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$CSendNode_default_compile$1,$parent_nesting){$CSendNode_default_compile$1=$klass($base,$CSendNode_default_compile$1,"CSendNode"),[$CSendNode_default_compile$1].concat($parent_nesting);return $CSendNode_default_compile$1.$handle("csend"),Opal.def($CSendNode_default_compile$1,"$default_compile",$CSendNode_default_compile$1=function(){var $$2;return this.$helper("send"),$send(this,"conditional_send",[this.$recv(this.$receiver_sexp())],(($$2=function(receiver_temp){var self=null==$$2.$$s?this:$$2.$$s;return null==receiver_temp&&(receiver_temp=nil),self.$push("$send(",receiver_temp),self.$compile_method_name(),self.$compile_arguments(),self.$compile_block_pass(),self.$push(")")}).$$s=this,$$2.$$arity=1,$$2))},$CSendNode_default_compile$1.$$arity=0),nil&&"default_compile"}($nesting[0],$$($nesting,"CallNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/call_special"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$push","$recv","$recvr","$expr","$property","$value","$<<","$default_compile","$meth","$receiver_sexp","$method_jsid","$compile_arguments","$iter","$s","$lhs","$rhs","$process"]),self.$require("opal/nodes/base"),self.$require("opal/nodes/call"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$JsAttrNode_compile$1,$parent_nesting){[$JsAttrNode_compile$1=$klass($base,$JsAttrNode_compile$1,"JsAttrNode")].concat($parent_nesting),$JsAttrNode_compile$1.$handle("jsattr"),$JsAttrNode_compile$1.$children("recvr","property"),Opal.def($JsAttrNode_compile$1,"$compile",$JsAttrNode_compile$1=function(){return this.$push(this.$recv(this.$recvr()),"[",this.$expr(this.$property()),"]")},$JsAttrNode_compile$1.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$JsAttrAsgnNode_compile$2,$parent_nesting){[$JsAttrAsgnNode_compile$2=$klass($base,$JsAttrAsgnNode_compile$2,"JsAttrAsgnNode")].concat($parent_nesting),$JsAttrAsgnNode_compile$2.$handle("jsattrasgn"),$JsAttrAsgnNode_compile$2.$children("recvr","property","value"),Opal.def($JsAttrAsgnNode_compile$2,"$compile",$JsAttrAsgnNode_compile$2=function(){return this.$push(this.$recv(this.$recvr()),"[",this.$expr(this.$property()),"] = ",this.$expr(this.$value()))},$JsAttrAsgnNode_compile$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$JsCallNode_compile_using_send$6,$JsCallNode_method_jsid$5){var $JsCallNode_initialize$3;[$JsCallNode_compile_using_send$6=$klass($base,$JsCallNode_compile_using_send$6,"JsCallNode")].concat($JsCallNode_method_jsid$5),$JsCallNode_compile_using_send$6.$$prototype.iter=$JsCallNode_compile_using_send$6.$$prototype.arglist=nil,$JsCallNode_compile_using_send$6.$handle("jscall"),Opal.def($JsCallNode_compile_using_send$6,"$initialize",$JsCallNode_initialize$3=function($a){var $zuper_ii,$iter=$JsCallNode_initialize$3.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($JsCallNode_initialize$3.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$JsCallNode_initialize$3,!1,!0),"initialize",$zuper,$iter),$truthy(this.iter)&&(this.arglist=this.arglist["$<<"](this.iter)),this.iter=nil},$JsCallNode_initialize$3.$$arity=-1),Opal.def($JsCallNode_compile_using_send$6,"$compile",$JsCallNode_method_jsid$5=function(){return this.$default_compile()},$JsCallNode_method_jsid$5.$$arity=0),Opal.def($JsCallNode_compile_using_send$6,"$method_jsid",$JsCallNode_method_jsid$5=function(){return"."+this.$meth()},$JsCallNode_method_jsid$5.$$arity=0),Opal.def($JsCallNode_compile_using_send$6,"$compile_using_send",$JsCallNode_compile_using_send$6=function(){return this.$push(this.$recv(this.$receiver_sexp()),this.$method_jsid(),".apply(null"),this.$compile_arguments(),$truthy(this.$iter())&&this.$push(".concat(",this.$expr(this.$iter()),")"),this.$push(")")},$JsCallNode_compile_using_send$6.$$arity=0)}($nesting[0],$$($nesting,"CallNode"),$nesting),function($base,$Match3Node_compile$7,$parent_nesting){$Match3Node_compile$7=$klass($base,$Match3Node_compile$7,"Match3Node"),[$Match3Node_compile$7].concat($parent_nesting);return $Match3Node_compile$7.$$prototype.level=nil,$Match3Node_compile$7.$handle("match_with_lvasgn"),$Match3Node_compile$7.$children("lhs","rhs"),Opal.def($Match3Node_compile$7,"$compile",$Match3Node_compile$7=function(){var sexp=this.$s("send",this.$lhs(),"=~",this.$rhs());return this.$push(this.$process(sexp,this.level))},$Match3Node_compile$7.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/scope"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$attr_accessor","$attr_reader","$indent","$scope","$compiler","$scope=","$-","$==","$top?","$top_scope","$parent","$iter?","$!","$class?","$dup","$push","$map","$ivars","$gvars","$parser_indent","$empty?","$join","$+","$fragment","$def_in_class?","$add_proto_ivar","$include?","$<<","$has_local?","$|","$scope_locals","$has_temp?","$pop","$next_temp","$loop","$succ","$uses_block!","$identify!","$compact","$name","$scope_name","$mid","$unique_temp","$add_scope_temp","$def?","$lambda?","$type","$nil?","$rescue_else_sexp","$last","$class","$collect_refinements_temps","$add_scope_local","$new_refinements_temp"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ScopeNode_refinements_temp$54,$ScopeNode_new_refinements_temp$53){var $ScopeNode_initialize$1,$ScopeNode_in_scope$2,$ScopeNode_defines_lambda$14,$ScopeNode_in_rescue$44,$ScopeNode_in_resbody$46,$ScopeNode_in_ensure$48,$ScopeNode_refinements_temp$54=$klass($base,$ScopeNode_refinements_temp$54,"ScopeNode"),$nesting=[$ScopeNode_refinements_temp$54].concat($ScopeNode_new_refinements_temp$53);return $ScopeNode_refinements_temp$54.$$prototype.type=$ScopeNode_refinements_temp$54.$$prototype.is_lambda=$ScopeNode_refinements_temp$54.$$prototype.lambda_definition=$ScopeNode_refinements_temp$54.$$prototype.defs=$ScopeNode_refinements_temp$54.$$prototype.parent=$ScopeNode_refinements_temp$54.$$prototype.temps=$ScopeNode_refinements_temp$54.$$prototype.locals=$ScopeNode_refinements_temp$54.$$prototype.compiler=$ScopeNode_refinements_temp$54.$$prototype.proto_ivars=$ScopeNode_refinements_temp$54.$$prototype.ivars=$ScopeNode_refinements_temp$54.$$prototype.gvars=$ScopeNode_refinements_temp$54.$$prototype.args=$ScopeNode_refinements_temp$54.$$prototype.queue=$ScopeNode_refinements_temp$54.$$prototype.while_stack=$ScopeNode_refinements_temp$54.$$prototype.identity=$ScopeNode_refinements_temp$54.$$prototype.uses_block=$ScopeNode_refinements_temp$54.$$prototype.rescues=$ScopeNode_refinements_temp$54.$$prototype.in_resbody=$ScopeNode_refinements_temp$54.$$prototype.in_ensure=$ScopeNode_refinements_temp$54.$$prototype.next_retry_id=$ScopeNode_refinements_temp$54.$$prototype.refinements_temp=nil,$ScopeNode_refinements_temp$54.$attr_accessor("parent"),$ScopeNode_refinements_temp$54.$attr_accessor("name"),$ScopeNode_refinements_temp$54.$attr_accessor("block_name"),$ScopeNode_refinements_temp$54.$attr_reader("scope_name"),$ScopeNode_refinements_temp$54.$attr_reader("locals"),$ScopeNode_refinements_temp$54.$attr_reader("ivars"),$ScopeNode_refinements_temp$54.$attr_reader("gvars"),$ScopeNode_refinements_temp$54.$attr_accessor("mid"),$ScopeNode_refinements_temp$54.$attr_accessor("defs"),$ScopeNode_refinements_temp$54.$attr_reader("methods"),$ScopeNode_refinements_temp$54.$attr_accessor("uses_super"),$ScopeNode_refinements_temp$54.$attr_accessor("uses_zuper"),$ScopeNode_refinements_temp$54.$attr_accessor("catch_return","has_break","has_retry"),$ScopeNode_refinements_temp$54.$attr_accessor("rescue_else_sexp"),Opal.def($ScopeNode_refinements_temp$54,"$initialize",$ScopeNode_initialize$1=function($a){var $zuper_ii,$iter=$ScopeNode_initialize$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($ScopeNode_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$ScopeNode_initialize$1,!1,!0),"initialize",$zuper,$iter),this.locals=[],this.temps=[],this.args=[],this.ivars=[],this.gvars=[],this.parent=nil,this.queue=[],this.unique="a",this.while_stack=[],this.identity=nil,this.defs=nil,this.methods=[],this.uses_block=!1,this.in_ensure=!1,this.proto_ivars=[]},$ScopeNode_initialize$1.$$arity=-1),Opal.def($ScopeNode_refinements_temp$54,"$in_scope",$ScopeNode_in_scope$2=function(){var $$3,$iter=$ScopeNode_in_scope$2.$$p,$yield=$iter||nil;return $iter&&($ScopeNode_in_scope$2.$$p=null),$send(this,"indent",[],(($$3=function(){var $writer,self=null==$$3.$$s?this:$$3.$$s;return null==self.parent&&(self.parent=nil),self.parent=self.$compiler().$scope(),$writer=[self],$send(self.$compiler(),"scope=",Opal.to_a($writer)),$rb_minus($writer.length,1),Opal.yield1($yield,self),$writer=[self.parent],$send(self.$compiler(),"scope=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$3.$$arity=0,$$3))},$ScopeNode_in_scope$2.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$class_scope?",$ScopeNode_new_refinements_temp$53=function(){var $ret_or_1;return $truthy($ret_or_1=this.type["$=="]("class"))?$ret_or_1:this.type["$=="]("module")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$class?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("class")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$module?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("module")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$sclass?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("sclass")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$top?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("top")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$top_scope",$ScopeNode_new_refinements_temp$53=function(){return $truthy(this["$top?"]())?this:this.$parent().$top_scope()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$iter?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("iter")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$def?",$ScopeNode_new_refinements_temp$53=function(){var $ret_or_2;return $truthy($ret_or_2=this.type["$=="]("def"))?$ret_or_2:this.type["$=="]("defs")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$lambda?",$ScopeNode_new_refinements_temp$53=function(){var $ret_or_3;return $truthy($ret_or_3=this["$iter?"]())?this.is_lambda:$ret_or_3},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$is_lambda!",$ScopeNode_new_refinements_temp$53=function(){return this.is_lambda=!0},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$defines_lambda",$ScopeNode_defines_lambda$14=function(){var $iter=$ScopeNode_defines_lambda$14.$$p,$yield=$iter||nil;return $iter&&($ScopeNode_defines_lambda$14.$$p=null),this.lambda_definition=!0,Opal.yieldX($yield,[]),this.lambda_definition=!1},$ScopeNode_defines_lambda$14.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$lambda_definition?",$ScopeNode_new_refinements_temp$53=function(){return this.lambda_definition},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$def_in_class?",$ScopeNode_new_refinements_temp$53=function(){var $ret_or_4,self=this,$ret_or_5=nil,$ret_or_6=nil;return $truthy($ret_or_4=$truthy($ret_or_5=$truthy($ret_or_6=self.defs["$!"]())?self.type["$=="]("def"):$ret_or_6)?self.parent:$ret_or_5)?self.parent["$class?"]():$ret_or_4},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$to_vars",$ScopeNode_new_refinements_temp$53=function(){var $$18,$$19,$$20,$$21,indent,self=this,vars=nil,iv=nil,gv=nil,str=nil,$ret_or_7=nil,result=nil,vars=self.temps.$dup();return $send(vars,"push",Opal.to_a($send(self.locals,"map",[],(($$18=function(l){null==$$18.$$s||$$18.$$s;return null==l&&(l=nil),l+" = nil"}).$$s=self,$$18.$$arity=1,$$18)))),iv=$send(self.$ivars(),"map",[],(($$19=function(ivar){null==$$19.$$s||$$19.$$s;return null==ivar&&(ivar=nil),"if (self"+ivar+" == null) self"+ivar+" = nil;\n"}).$$s=self,$$19.$$arity=1,$$19)),gv=$send(self.$gvars(),"map",[],(($$20=function(gvar){null==$$20.$$s||$$20.$$s;return null==gvar&&(gvar=nil),"if ($gvars"+gvar+" == null) $gvars"+gvar+" = nil;\n"}).$$s=self,$$20.$$arity=1,$$20)),indent=self.compiler.$parser_indent(),str=$truthy(vars["$empty?"]())?"":"var "+vars.$join(", ")+";\n",$truthy(self.$ivars()["$empty?"]())||(str=$rb_plus(str,""+indent+iv.$join(indent))),$truthy(self.$gvars()["$empty?"]())||(str=$rb_plus(str,""+indent+gv.$join(indent))),result=$truthy($truthy($ret_or_7=self["$class?"]())?self.proto_ivars["$empty?"]()["$!"]():$ret_or_7)?str+"\n"+indent+$send(self.proto_ivars,"map",[],(($$21=function(i){null==$$21.$$s||$$21.$$s;return null==i&&(i=nil),"self.$$prototype"+i}).$$s=self,$$21.$$arity=1,$$21)).$join(" = ")+" = nil;":str,self.$fragment(result)},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$add_scope_ivar",$ScopeNode_new_refinements_temp$53=function(ivar){return $truthy(this["$def_in_class?"]())?this.parent.$add_proto_ivar(ivar):$truthy(this.ivars["$include?"](ivar))?nil:this.ivars["$<<"](ivar)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$add_scope_gvar",$ScopeNode_new_refinements_temp$53=function(gvar){return $truthy(this.gvars["$include?"](gvar))?nil:this.gvars["$<<"](gvar)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$add_proto_ivar",$ScopeNode_new_refinements_temp$53=function(ivar){return $truthy(this.proto_ivars["$include?"](ivar))?nil:this.proto_ivars["$<<"](ivar)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$add_arg",$ScopeNode_new_refinements_temp$53=function(arg){return $truthy(this.args["$include?"](arg))||this.args["$<<"](arg),arg},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$add_scope_local",$ScopeNode_new_refinements_temp$53=function(local){return $truthy(this["$has_local?"](local))?nil:this.locals["$<<"](local)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$has_local?",$ScopeNode_new_refinements_temp$53=function(local){var self=this,$ret_or_8=nil,$ret_or_9=nil,$ret_or_10=nil;return!!$truthy($truthy($ret_or_8=$truthy($ret_or_9=self.locals["$include?"](local))?$ret_or_9:self.args["$include?"](local))?$ret_or_8:self.temps["$include?"](local))||!!$truthy($truthy($ret_or_10=self.parent)?self.type["$=="]("iter"):$ret_or_10)&&self.parent["$has_local?"](local)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$scope_locals",$ScopeNode_new_refinements_temp$53=function(){var self=this,$ret_or_11=nil;return self.locals["$|"](self.args)["$|"]($truthy($truthy($ret_or_11=self.parent)?self.type["$=="]("iter"):$ret_or_11)?self.parent.$scope_locals():[])},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$add_scope_temp",$ScopeNode_new_refinements_temp$53=function(tmp){return $truthy(this["$has_temp?"](tmp))?nil:this.temps.$push(tmp)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$has_temp?",$ScopeNode_new_refinements_temp$53=function(tmp){return this.temps["$include?"](tmp)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$new_temp",$ScopeNode_new_refinements_temp$53=function(){var tmp;return $truthy(this.queue["$empty?"]())?(tmp=this.$next_temp(),this.temps["$<<"](tmp),tmp):this.queue.$pop()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$next_temp",$ScopeNode_new_refinements_temp$53=function(){var $$33,self=this,tmp=nil,tmp=nil;return function(){var $brk=Opal.new_brk();try{$send(self,"loop",[],(($$33=function(){var self=null==$$33.$$s?this:$$33.$$s;if(null==self.unique&&(self.unique=nil),tmp="$"+self.unique,self.unique=self.unique.$succ(),$truthy(self["$has_local?"](tmp)))return nil;Opal.brk(nil,$brk)}).$$s=self,$$33.$$brk=$brk,$$33.$$arity=0,$$33))}catch(err){if(err===$brk)return err.$v;throw err}}(),tmp},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$queue_temp",$ScopeNode_new_refinements_temp$53=function(name){return this.queue["$<<"](name)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$push_while",$ScopeNode_new_refinements_temp$53=function(){var info=$hash2([],{});return this.while_stack.$push(info),info},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$pop_while",$ScopeNode_new_refinements_temp$53=function(){return this.while_stack.$pop()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_while?",$ScopeNode_new_refinements_temp$53=function(){return this.while_stack["$empty?"]()["$!"]()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$uses_block!",$ScopeNode_new_refinements_temp$53=function(){var self=this,$ret_or_12=nil;return $truthy($truthy($ret_or_12=self.type["$=="]("iter"))?self.parent:$ret_or_12)?self.parent["$uses_block!"]():(self.uses_block=!0,self["$identify!"]())},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$identify!",$ScopeNode_new_refinements_temp$53=function(name){var self=this,$ret_or_13=nil,$ret_or_14=nil,$ret_or_15=nil;return null==name&&(name=nil),$truthy(self.identity)||(name=$truthy($ret_or_13=name)?$ret_or_13:[$truthy($ret_or_14=self.$parent())?$truthy($ret_or_15=self.$parent().$name())?$ret_or_15:self.$parent().$scope_name():$ret_or_14,self.$mid()].$compact().$join("_"),self.identity=self.compiler.$unique_temp(name),$truthy(self.parent)&&self.parent.$add_scope_temp(self.identity)),self.identity},$ScopeNode_new_refinements_temp$53.$$arity=-1),$ScopeNode_refinements_temp$54.$attr_reader("identity"),Opal.def($ScopeNode_refinements_temp$54,"$find_parent_def",$ScopeNode_new_refinements_temp$53=function(){for(var scope=nil,$ret_or_16=nil,scope=this;$truthy(scope=scope.$parent());)if($truthy($truthy($ret_or_16=scope["$def?"]())?$ret_or_16:scope["$lambda?"]()))return scope;return nil},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$super_chain",$ScopeNode_new_refinements_temp$53=function(){for(var chain=nil,scope=nil,defn=nil,mid=nil,$a=[[],this,"null","null"],chain=$a[0],scope=$a[1],defn=$a[2],mid=$a[3];$truthy(scope);){if(!scope.$type()["$=="]("iter")){if($truthy(["def","defs"]["$include?"](scope.$type()))){defn=scope["$identify!"](),mid="'"+scope.$mid()+"'";break}break}chain["$<<"](scope["$identify!"]()),$truthy(scope.$parent())&&(scope=scope.$parent())}return[chain,defn,mid]},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$uses_block?",$ScopeNode_new_refinements_temp$53=function(){return this.uses_block},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$has_rescue_else?",$ScopeNode_new_refinements_temp$53=function(){return this.$rescue_else_sexp()["$nil?"]()["$!"]()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_rescue",$ScopeNode_in_rescue$44=function(node){var result,$iter=$ScopeNode_in_rescue$44.$$p,$yield=$iter||nil,self=this,$ret_or_17=nil;return $iter&&($ScopeNode_in_rescue$44.$$p=null),self.rescues=$truthy($ret_or_17=self.rescues)?$ret_or_17:[],self.rescues.$push(node),result=Opal.yieldX($yield,[]),self.rescues.$pop(),result},$ScopeNode_in_rescue$44.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$current_rescue",$ScopeNode_new_refinements_temp$53=function(){return this.rescues.$last()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_resbody",$ScopeNode_in_resbody$46=function(){var result,$iter=$ScopeNode_in_resbody$46.$$p,$yield=$iter||nil;return $iter&&($ScopeNode_in_resbody$46.$$p=null),$yield===nil?nil:(this.in_resbody=!0,result=Opal.yieldX($yield,[]),this.in_resbody=!1,result)},$ScopeNode_in_resbody$46.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_resbody?",$ScopeNode_new_refinements_temp$53=function(){return this.in_resbody},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_ensure",$ScopeNode_in_ensure$48=function(){var result,$iter=$ScopeNode_in_ensure$48.$$p,$yield=$iter||nil;return $iter&&($ScopeNode_in_ensure$48.$$p=null),$yield===nil?nil:(this.in_ensure=!0,result=Opal.yieldX($yield,[]),this.in_ensure=!1,result)},$ScopeNode_in_ensure$48.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_ensure?",$ScopeNode_new_refinements_temp$53=function(){return this.in_ensure},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$gen_retry_id",$ScopeNode_new_refinements_temp$53=function(){var self=this,$ret_or_18=nil;return self.next_retry_id=$truthy($ret_or_18=self.next_retry_id)?$ret_or_18:"retry_0",self.next_retry_id=self.next_retry_id.$succ()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$accepts_using?",$ScopeNode_new_refinements_temp$53=function(){return[$$($nesting,"TopNode"),$$($nesting,"ModuleNode"),$$($nesting,"ClassNode"),$$($nesting,"IterNode")]["$include?"](this.$class())},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$collect_refinements_temps",$ScopeNode_new_refinements_temp$53=function(temps){return null==temps&&(temps=[]),$truthy(this.refinements_temp)&&temps["$<<"](this.refinements_temp),$truthy(this.$parent())?this.$parent().$collect_refinements_temps(temps):temps},$ScopeNode_new_refinements_temp$53.$$arity=-1),Opal.def($ScopeNode_refinements_temp$54,"$new_refinements_temp",$ScopeNode_new_refinements_temp$53=function(){var var$=this.$compiler().$unique_temp("$refn");return this.$add_scope_local(var$),var$},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$refinements_temp",$ScopeNode_refinements_temp$54=function(){var $a=[this.refinements_temp,this.$new_refinements_temp()],curr=$a[1];return[$a[0],this.refinements_temp=curr]},$ScopeNode_refinements_temp$54.$$arity=0),nil&&"refinements_temp"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/module"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$name_and_base","$helper","$push","$line","$in_scope","$name=","$scope","$-","$compile_body","$private","$cid","$nil?","$expr","$add_temp","$stmt","$returns","$compiler","$body","$s","$empty_line","$to_vars"]),self.$require("opal/nodes/scope"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ModuleNode_compile_body$4,$ModuleNode_name_and_base$3){$ModuleNode_compile_body$4=$klass($base,$ModuleNode_compile_body$4,"ModuleNode"),[$ModuleNode_compile_body$4].concat($ModuleNode_name_and_base$3);return $ModuleNode_compile_body$4.$handle("module"),$ModuleNode_compile_body$4.$children("cid","body"),Opal.def($ModuleNode_compile_body$4,"$compile",$ModuleNode_name_and_base$3=function(){var $$2,$a=this.$name_and_base(),$a=Opal.to_ary($a),name=null==$a[0]?nil:$a[0],base=null==$a[1]?nil:$a[1];return this.$helper("module"),this.$push("(function($base, $parent_nesting) {"),this.$line(" var self = $module($base, '"+name+"');"),$send(this,"in_scope",[],(($$2=function(){var rhs,self=null==$$2.$$s?this:$$2.$$s,lhs=nil,lhs=[name];return $send(self.$scope(),"name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),self.$compile_body()}).$$s=this,$$2.$$arity=0,$$2)),this.$line("})(",base,", $nesting)")},$ModuleNode_name_and_base$3.$$arity=0),$ModuleNode_compile_body$4.$private(),Opal.def($ModuleNode_compile_body$4,"$name_and_base",$ModuleNode_name_and_base$3=function(){var base=nil,$a=this.$cid().$children(),$a=Opal.to_ary($a),base=null==$a[0]?nil:$a[0],name=null==$a[1]?nil:$a[1];return $truthy(base["$nil?"]())?[name,"$nesting[0]"]:[name,this.$expr(base)]},$ModuleNode_name_and_base$3.$$arity=0),Opal.def($ModuleNode_compile_body$4,"$compile_body",$ModuleNode_compile_body$4=function(){var body_code,self=this,$ret_or_1=nil;return self.$add_temp("$nesting = [self].concat($parent_nesting)"),body_code=self.$stmt(self.$compiler().$returns($truthy($ret_or_1=self.$body())?$ret_or_1:self.$s("nil"))),self.$empty_line(),self.$line(self.$scope().$to_vars()),self.$line(body_code)},$ModuleNode_compile_body$4.$$arity=0),nil&&"compile_body"}($nesting[0],$$($nesting,"ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$name_and_base","$helper","$push","$line","$in_scope","$name=","$scope","$-","$compile_body","$super_code","$sup","$expr"]),self.$require("opal/nodes/module"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ClassNode_super_code$3,$ClassNode_compile$1){$ClassNode_super_code$3=$klass($base,$ClassNode_super_code$3,"ClassNode"),[$ClassNode_super_code$3].concat($ClassNode_compile$1);return $ClassNode_super_code$3.$handle("class"),$ClassNode_super_code$3.$children("cid","sup","body"),Opal.def($ClassNode_super_code$3,"$compile",$ClassNode_compile$1=function(){var $$2,$a=this.$name_and_base(),$a=Opal.to_ary($a),name=null==$a[0]?nil:$a[0],base=null==$a[1]?nil:$a[1];return this.$helper("klass"),this.$push("(function($base, $super, $parent_nesting) {"),this.$line(" var self = $klass($base, $super, '"+name+"');"),$send(this,"in_scope",[],(($$2=function(){var rhs,self=null==$$2.$$s?this:$$2.$$s,lhs=nil,lhs=[name];return $send(self.$scope(),"name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),self.$compile_body()}).$$s=this,$$2.$$arity=0,$$2)),this.$line("})(",base,", ",this.$super_code(),", $nesting)")},$ClassNode_compile$1.$$arity=0),Opal.def($ClassNode_super_code$3,"$super_code",$ClassNode_super_code$3=function(){return $truthy(this.$sup())?this.$expr(this.$sup()):"null"},$ClassNode_super_code$3.$$arity=0),nil&&"super_code"}($nesting[0],$$($nesting,"ModuleNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/singleton_class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$push","$in_scope","$add_temp","$stmt","$returns","$compiler","$body","$line","$to_vars","$scope","$recv","$object"]),self.$require("opal/nodes/scope"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$SingletonClassNode_compile$1,$parent_nesting){$SingletonClassNode_compile$1=$klass($base,$SingletonClassNode_compile$1,"SingletonClassNode"),[$SingletonClassNode_compile$1].concat($parent_nesting);return $SingletonClassNode_compile$1.$handle("sclass"),$SingletonClassNode_compile$1.$children("object","body"),Opal.def($SingletonClassNode_compile$1,"$compile",$SingletonClassNode_compile$1=function(){var $$2;return this.$push("(function(self, $parent_nesting) {"),$send(this,"in_scope",[],(($$2=function(){var body_stmt,self=null==$$2.$$s?this:$$2.$$s;return self.$add_temp("$nesting = [self].concat($parent_nesting)"),body_stmt=self.$stmt(self.$compiler().$returns(self.$body())),self.$line(self.$scope().$to_vars()),self.$line(body_stmt)}).$$s=this,$$2.$$arity=0,$$2)),this.$line("})(Opal.get_singleton_class(",this.$recv(this.$object()),"), $nesting)")},$SingletonClassNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/arg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$add_arg","$scope","$name","$push","$to_s"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ArgNode_compile$1,$parent_nesting){$ArgNode_compile$1=$klass($base,$ArgNode_compile$1,"ArgNode"),[$ArgNode_compile$1].concat($parent_nesting);return $ArgNode_compile$1.$handle("arg"),$ArgNode_compile$1.$children("name"),Opal.def($ArgNode_compile$1,"$compile",$ArgNode_compile$1=function(){return this.$scope().$add_arg(this.$name()),this.$push(this.$name().$to_s())},$ArgNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/arity_check"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$new","$args_node","$args","$optargs","$restarg","$postargs","$kwargs","$kwoptargs","$kwrestarg","$kwnilarg","$arity","$arity=","$scope","$-","$arity_check?","$compiler","$empty?","$arity_checks","$helper","$inspect","$to_s","$mid","$line","$push","$join","$compact","$size","$all_args","$!","$-@","$<","$+","$>","$<<","$any?","$has_only_optional_kwargs?","$negative_arity","$positive_arity","$select","$include?","$type","$has_required_kwargs?","$all?","$==","$def?","$class_scope?","$top?","$parent","$class?","$name","$module?","$identity"]),self.$require("opal/nodes/base"),self.$require("opal/rewriters/arguments"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ArityCheckNode_has_required_kwargs$ques$12,$ArityCheckNode_has_only_optional_kwargs$ques$10){var $ArityCheckNode_initialize$1,$nesting=[$ArityCheckNode_has_required_kwargs$ques$12=$klass($base,$ArityCheckNode_has_required_kwargs$ques$12,"ArityCheckNode")].concat($ArityCheckNode_has_only_optional_kwargs$ques$10);$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.kwargs=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.kwoptargs=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.kwrestarg=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.all_args=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.args=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.optargs=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.restarg=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.postargs=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.arity_checks=nil,$ArityCheckNode_has_required_kwargs$ques$12.$handle("arity_check"),$ArityCheckNode_has_required_kwargs$ques$12.$children("args_node"),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$initialize",$ArityCheckNode_initialize$1=function($a){var $zuper_ii,$iter=$ArityCheckNode_initialize$1.$$p,arguments$=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ArityCheckNode_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$ArityCheckNode_initialize$1,!1,!0),"initialize",$zuper,$iter),arguments$=$$$($$($nesting,"Rewriters"),"Arguments").$new(this.$args_node().$children()),this.args=arguments$.$args(),this.optargs=arguments$.$optargs(),this.restarg=arguments$.$restarg(),this.postargs=arguments$.$postargs(),this.kwargs=arguments$.$kwargs(),this.kwoptargs=arguments$.$kwoptargs(),this.kwrestarg=arguments$.$kwrestarg(),this.kwnilarg=arguments$.$kwnilarg()},$ArityCheckNode_initialize$1.$$arity=-1),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$compile",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var meth,$writer=[this.$arity()];return $send(this.$scope(),"arity=",Opal.to_a($writer)),$rb_minus($writer.length,1),!$truthy(this.$compiler()["$arity_check?"]())||$truthy(this.$arity_checks()["$empty?"]())?nil:(this.$helper("ac"),meth=this.$scope().$mid().$to_s().$inspect(),this.$line("var $arity = arguments.length;"),this.$push(" if ("+this.$arity_checks().$join(" || ")+") { $ac($arity, "+this.$arity()+", this, "+meth+"); }"))},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$kwargs",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){return[].concat(Opal.to_a(this.kwargs)).concat(Opal.to_a(this.kwoptargs)).concat([this.kwrestarg]).$compact()},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$all_args",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var self=this,$ret_or_1=nil;return self.all_args=$truthy($ret_or_1=self.all_args)?$ret_or_1:[].concat(Opal.to_a(self.args)).concat(Opal.to_a(self.optargs)).concat([self.restarg]).concat(Opal.to_a(self.postargs)).concat(Opal.to_a(self.$kwargs())).$compact()},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$arity_checks",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var $a,min_arity,max_arity,self=this,arity=nil,lhs=nil,rhs=nil;return $truthy(null!=($a=self.arity_checks)&&$a!==nil?"instance-variable":nil)||(arity=$rb_minus(arity=self.$all_args().$size(),self.optargs.$size()),$truthy(self.restarg)&&(arity=$rb_minus(arity,1)),arity=$rb_minus(arity,self.$kwargs().$size()),$truthy($truthy(lhs=$truthy(rhs=self.optargs["$empty?"]()["$!"]())?rhs:self.$kwargs()["$empty?"]()["$!"]())?lhs:self.restarg)&&(arity=$rb_minus(arity["$-@"](),1)),self.arity_checks=[],$truthy((rhs=0,"number"==typeof(lhs=arity)&&"number"==typeof rhs?lhs"](rhs)}(min_arity,0))&&self.arity_checks["$<<"]("$arity < "+min_arity),$truthy(self.restarg)||self.arity_checks["$<<"]("$arity > "+max_arity)):self.arity_checks["$<<"]("$arity !== "+arity)),self.arity_checks},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$arity",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var self=this,$ret_or_4=nil,$ret_or_5=nil;return $truthy($truthy($ret_or_4=$truthy($ret_or_5=self.restarg)?$ret_or_5:self.optargs["$any?"]())?$ret_or_4:self["$has_only_optional_kwargs?"]())?self.$negative_arity():self.$positive_arity()},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$negative_arity",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var $$8,result=nil,result=$send(this.$all_args(),"select",[],(($$8=function(arg){null==$$8.$$s||$$8.$$s;return null==arg&&(arg=nil),["arg","mlhs"]["$include?"](arg.$type())}).$$s=this,$$8.$$arity=1,$$8)).$size();return $truthy(this["$has_required_kwargs?"]())&&(result=$rb_plus(result,1)),result=$rb_minus(result["$-@"](),1)},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$positive_arity",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var result=nil;return result=$rb_minus(result=this.$all_args().$size(),this.$kwargs().$size()),$truthy(this.$kwargs()["$any?"]())&&(result=$rb_plus(result,1)),result},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$has_only_optional_kwargs?",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var $$11,$ret_or_6;return $truthy($ret_or_6=this.$kwargs()["$any?"]())?$send(this.$kwargs(),"all?",[],(($$11=function(arg){null==$$11.$$s||$$11.$$s;return null==arg&&(arg=nil),["kwoptarg","kwrestarg"]["$include?"](arg.$type())}).$$s=this,$$11.$$arity=1,$$11)):$ret_or_6},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$has_required_kwargs?",$ArityCheckNode_has_required_kwargs$ques$12=function(){var $$13;return $send(this.$kwargs(),"any?",[],(($$13=function(arg){null==$$13.$$s||$$13.$$s;return null==arg&&(arg=nil),arg.$type()["$=="]("kwarg")}).$$s=this,$$13.$$arity=1,$$13))},$ArityCheckNode_has_required_kwargs$ques$12.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$IterArityCheckNode_compile$14,$parent_nesting){$IterArityCheckNode_compile$14=$klass($base,$IterArityCheckNode_compile$14,"IterArityCheckNode"),[$IterArityCheckNode_compile$14].concat($parent_nesting);return $IterArityCheckNode_compile$14.$handle("iter_arity_check"),Opal.def($IterArityCheckNode_compile$14,"$compile",$IterArityCheckNode_compile$14=function(){var context,identity,parent_scope=nil,$ret_or_7=nil,$ret_or_8=nil,$writer=[this.$arity()];if($send(this.$scope(),"arity=",Opal.to_a($writer)),$rb_minus($writer.length,1),!$truthy(this.$compiler()["$arity_check?"]()))return nil;if($truthy(this.$arity_checks()["$empty?"]()))return nil;for(parent_scope=this.$scope();!$truthy($truthy($ret_or_7=$truthy($ret_or_8=parent_scope["$def?"]())?$ret_or_8:parent_scope["$class_scope?"]())?$ret_or_7:parent_scope["$top?"]());)parent_scope=parent_scope.$parent();return context=$truthy(parent_scope["$top?"]())?"'
    '":$truthy(parent_scope["$def?"]())?"'"+parent_scope.$mid()+"'":$truthy(parent_scope["$class?"]())?"''":$truthy(parent_scope["$module?"]())?"''":nil,identity=this.$scope().$identity(),this.$line("if ("+identity+".$$is_lambda || "+identity+".$$define_meth) {"),this.$line(" var $arity = arguments.length;"),this.$line(" if ("+this.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+this.$arity()+", "+context+"); }"),this.$line("}")},$IterArityCheckNode_compile$14.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"ArityCheckNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$helper","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$EnsureKwargsAreKwargs_compile$1,$parent_nesting){$EnsureKwargsAreKwargs_compile$1=$klass($base,$EnsureKwargsAreKwargs_compile$1,"EnsureKwargsAreKwargs"),[$EnsureKwargsAreKwargs_compile$1].concat($parent_nesting);return $EnsureKwargsAreKwargs_compile$1.$handle("ensure_kwargs_are_kwargs"),Opal.def($EnsureKwargsAreKwargs_compile$1,"$compile",$EnsureKwargsAreKwargs_compile$1=function(){return this.$helper("hash2"),this.$line("if ($kwargs == null) {"),this.$line(" $kwargs = $hash2([], {});"),this.$line("} else if (!$kwargs.$$is_hash) {"),this.$line(" throw Opal.ArgumentError.$new('expected kwargs');"),this.$line("}")},$EnsureKwargsAreKwargs_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$uses_block!","$scope","$add_arg","$name","$block_name=","$-","$identity","$block_name","$add_temp","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractBlockarg_compile$1,$parent_nesting){$ExtractBlockarg_compile$1=$klass($base,$ExtractBlockarg_compile$1,"ExtractBlockarg"),[$ExtractBlockarg_compile$1].concat($parent_nesting);return $ExtractBlockarg_compile$1.$handle("extract_blockarg"),$ExtractBlockarg_compile$1.$children("name"),Opal.def($ExtractBlockarg_compile$1,"$compile",$ExtractBlockarg_compile$1=function(){var scope_name,yielder,rhs,lhs=nil;return this.$scope()["$uses_block!"](),this.$scope().$add_arg(this.$name()),lhs=[this.$name()],$send(this.$scope(),"block_name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),scope_name=this.$scope().$identity(),yielder=this.$scope().$block_name(),this.$add_temp("$iter = "+scope_name+".$$p"),this.$add_temp(yielder+" = $iter || nil"),this.$line("if ($iter) "+scope_name+".$$p = null;")},$ExtractBlockarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$[]","$meta","$<<","$used_kwargs","$scope","$add_temp","$lvar_name","$line","$inspect","$to_s"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractKwarg_compile$1,$parent_nesting){$ExtractKwarg_compile$1=$klass($base,$ExtractKwarg_compile$1,"ExtractKwarg"),[$ExtractKwarg_compile$1].concat($parent_nesting);return $ExtractKwarg_compile$1.$$prototype.sexp=nil,$ExtractKwarg_compile$1.$handle("extract_kwarg"),$ExtractKwarg_compile$1.$children("lvar_name"),Opal.def($ExtractKwarg_compile$1,"$compile",$ExtractKwarg_compile$1=function(){var key_name=nil,key_name=this.sexp.$meta()["$[]"]("arg_name");return this.$scope().$used_kwargs()["$<<"](key_name),this.$add_temp(this.$lvar_name()),this.$line("if (!Opal.hasOwnProperty.call($kwargs.$$smap, '"+key_name+"')) {"),this.$line(" throw Opal.ArgumentError.$new('missing keyword: "+key_name+"');"),this.$line("}"),this.$line(this.$lvar_name()+" = $kwargs.$$smap["+key_name.$to_s().$inspect()+"];")},$ExtractKwarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$add_temp","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractKwargs_compile$1,$parent_nesting){$ExtractKwargs_compile$1=$klass($base,$ExtractKwargs_compile$1,"ExtractKwargs"),[$ExtractKwargs_compile$1].concat($parent_nesting);return $ExtractKwargs_compile$1.$handle("extract_kwargs"),Opal.def($ExtractKwargs_compile$1,"$compile",$ExtractKwargs_compile$1=function(){return this.$add_temp("$kwargs"),this.$line("$kwargs = Opal.extract_kwargs($post_args)")},$ExtractKwargs_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$[]","$meta","$<<","$used_kwargs","$scope","$add_temp","$lvar_name","$line","$inspect","$to_s","$==","$default_value","$expr"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractKwoptarg_compile$1,$parent_nesting){$ExtractKwoptarg_compile$1=$klass($base,$ExtractKwoptarg_compile$1,"ExtractKwoptarg"),[$ExtractKwoptarg_compile$1].concat($parent_nesting);return $ExtractKwoptarg_compile$1.$$prototype.sexp=nil,$ExtractKwoptarg_compile$1.$handle("extract_kwoptarg"),$ExtractKwoptarg_compile$1.$children("lvar_name","default_value"),Opal.def($ExtractKwoptarg_compile$1,"$compile",$ExtractKwoptarg_compile$1=function(){var key_name=nil,key_name=this.sexp.$meta()["$[]"]("arg_name");return this.$scope().$used_kwargs()["$<<"](key_name),this.$add_temp(this.$lvar_name()),this.$line(this.$lvar_name()+" = $kwargs.$$smap["+key_name.$to_s().$inspect()+"];"),this.$default_value().$children()["$[]"](1)["$=="]("undefined")?nil:(this.$line("if ("+this.$lvar_name()+" == null) {"),this.$line(" "+this.$lvar_name()+" = ",this.$expr(this.$default_value())),this.$line("}"))},$ExtractKwoptarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$name","$add_temp","$line","$used_kwargs","$map","$scope","$join"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractKwrestarg_used_kwargs$2,$ExtractKwrestarg_compile$1){$ExtractKwrestarg_used_kwargs$2=$klass($base,$ExtractKwrestarg_used_kwargs$2,"ExtractKwrestarg"),[$ExtractKwrestarg_used_kwargs$2].concat($ExtractKwrestarg_compile$1);return $ExtractKwrestarg_used_kwargs$2.$handle("extract_kwrestarg"),$ExtractKwrestarg_used_kwargs$2.$children("name"),Opal.def($ExtractKwrestarg_used_kwargs$2,"$compile",$ExtractKwrestarg_compile$1=function(){return $truthy(this.$name())?(this.$add_temp(this.$name()),this.$line(this.$name()+" = Opal.kwrestargs($kwargs, "+this.$used_kwargs()+");")):nil},$ExtractKwrestarg_compile$1.$$arity=0),Opal.def($ExtractKwrestarg_used_kwargs$2,"$used_kwargs",$ExtractKwrestarg_used_kwargs$2=function(){var $$3;return"{"+$send(this.$scope().$used_kwargs(),"map",[],(($$3=function(arg_name){null==$$3.$$s||$$3.$$s;return null==arg_name&&(arg_name=nil),"'"+arg_name+"': true"}).$$s=this,$$3.$$arity=1,$$3)).$join(",")+"}"},$ExtractKwrestarg_used_kwargs$2.$$arity=0),nil&&"used_kwargs"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_optarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$==","$[]","$default_value","$line","$name","$expr"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractOptargNode_compile$1,$parent_nesting){$ExtractOptargNode_compile$1=$klass($base,$ExtractOptargNode_compile$1,"ExtractOptargNode"),[$ExtractOptargNode_compile$1].concat($parent_nesting);return $ExtractOptargNode_compile$1.$handle("extract_optarg"),$ExtractOptargNode_compile$1.$children("name","default_value"),Opal.def($ExtractOptargNode_compile$1,"$compile",$ExtractOptargNode_compile$1=function(){return this.$default_value().$children()["$[]"](1)["$=="]("undefined")?nil:(this.$line("if ("+this.$name()+" == null) {"),this.$line(" "+this.$name()+" = ",this.$expr(this.$default_value()),";"),this.$line("}"))},$ExtractOptargNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$add_temp","$name","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractPostArg_compile$1,$parent_nesting){$ExtractPostArg_compile$1=$klass($base,$ExtractPostArg_compile$1,"ExtractPostArg"),[$ExtractPostArg_compile$1].concat($parent_nesting);return $ExtractPostArg_compile$1.$handle("extract_post_arg"),$ExtractPostArg_compile$1.$children("name"),Opal.def($ExtractPostArg_compile$1,"$compile",$ExtractPostArg_compile$1=function(){return this.$add_temp(this.$name()),this.$line(this.$name()+" = $post_args[0];"),this.$line("$post_args.splice(0, 1);"),this.$line("if ("+this.$name()+" == null) {"),this.$line(" "+this.$name()+" = nil"),this.$line("}")},$ExtractPostArg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$add_temp","$name","$line","$args_to_keep","$==","$[]","$default_value","$expr"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractPostOptarg_compile$1,$parent_nesting){$ExtractPostOptarg_compile$1=$klass($base,$ExtractPostOptarg_compile$1,"ExtractPostOptarg"),[$ExtractPostOptarg_compile$1].concat($parent_nesting);return $ExtractPostOptarg_compile$1.$handle("extract_post_optarg"),$ExtractPostOptarg_compile$1.$children("name","default_value","args_to_keep"),Opal.def($ExtractPostOptarg_compile$1,"$compile",$ExtractPostOptarg_compile$1=function(){return this.$add_temp(this.$name()),this.$line("if ($post_args.length > "+this.$args_to_keep()+") {"),this.$line(" "+this.$name()+" = $post_args[0];"),this.$line(" $post_args.splice(0, 1);"),this.$line("}"),this.$default_value().$children()["$[]"](1)["$=="]("undefined")?nil:(this.$line("if ("+this.$name()+" == null) {"),this.$line(" "+this.$name()+" = ",this.$expr(this.$default_value()),";"),this.$line("}"))},$ExtractPostOptarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_restarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$name","$add_temp","$==","$args_to_keep","$line","$!="]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractRestarg_compile$1,$parent_nesting){$ExtractRestarg_compile$1=$klass($base,$ExtractRestarg_compile$1,"ExtractRestarg"),[$ExtractRestarg_compile$1].concat($parent_nesting);return $ExtractRestarg_compile$1.$handle("extract_restarg"),$ExtractRestarg_compile$1.$children("name","args_to_keep"),Opal.def($ExtractRestarg_compile$1,"$compile",$ExtractRestarg_compile$1=function(){return $truthy(this.$name())?(this.$add_temp(this.$name()),this.$args_to_keep()["$=="](0)?this.$line(this.$name()+" = $post_args;"):this.$line(this.$name()+" = $post_args.splice(0, $post_args.length - "+this.$args_to_keep()+");")):$truthy(this.$args_to_keep()["$!="](0))?this.$line("$post_args.splice(0, $post_args.length - "+this.$args_to_keep()+");"):nil},$ExtractRestarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/fake_arg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$next_temp","$scope","$add_arg","$push"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$FakeArgNode_compile$1,$parent_nesting){$FakeArgNode_compile$1=$klass($base,$FakeArgNode_compile$1,"FakeArgNode"),[$FakeArgNode_compile$1].concat($parent_nesting);return $FakeArgNode_compile$1.$handle("fake_arg"),Opal.def($FakeArgNode_compile$1,"$compile",$FakeArgNode_compile$1=function(){var name=this.$scope().$next_temp();return this.$scope().$add_arg(name),this.$push(name)},$FakeArgNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$line","$name"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$InitializeIterarg_compile$1,$parent_nesting){$InitializeIterarg_compile$1=$klass($base,$InitializeIterarg_compile$1,"InitializeIterarg"),[$InitializeIterarg_compile$1].concat($parent_nesting);return $InitializeIterarg_compile$1.$handle("initialize_iter_arg"),$InitializeIterarg_compile$1.$children("name"),Opal.def($InitializeIterarg_compile$1,"$compile",$InitializeIterarg_compile$1=function(){return this.$line("if ("+this.$name()+" == null) {"),this.$line(" "+this.$name()+" = nil;"),this.$line("}")},$InitializeIterarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$<<","$locals","$scope","$name","$add_arg","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$InitializeShadowarg_compile$1,$parent_nesting){$InitializeShadowarg_compile$1=$klass($base,$InitializeShadowarg_compile$1,"InitializeShadowarg"),[$InitializeShadowarg_compile$1].concat($parent_nesting);return $InitializeShadowarg_compile$1.$handle("initialize_shadowarg"),$InitializeShadowarg_compile$1.$children("name"),Opal.def($InitializeShadowarg_compile$1,"$compile",$InitializeShadowarg_compile$1=function(){return this.$scope().$locals()["$<<"](this.$name()),this.$scope().$add_arg(this.$name()),this.$line(this.$name()+" = nil;")},$InitializeShadowarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/parameters"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$children","$map","$public_send","$type","$join","$compact","$=="]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($Parameters_on_shadowarg$13,$Parameters_on_kwnilarg$12){$Parameters_on_shadowarg$13=$klass($Parameters_on_shadowarg$13,null,"Parameters"),[$Parameters_on_shadowarg$13].concat($Parameters_on_kwnilarg$12);return $Parameters_on_shadowarg$13.$$prototype.args=nil,Opal.def($Parameters_on_shadowarg$13,"$initialize",$Parameters_on_kwnilarg$12=function(args){return this.args=args.$children()},$Parameters_on_kwnilarg$12.$$arity=1),Opal.def($Parameters_on_shadowarg$13,"$to_code",$Parameters_on_kwnilarg$12=function(){var $$3;return"["+$send(this.args,"map",[],(($$3=function(arg){var self=null==$$3.$$s?this:$$3.$$s;return null==arg&&(arg=nil),$send(self,"public_send",["on_"+arg.$type()].concat(Opal.to_a(arg)))}).$$s=this,$$3.$$arity=1,$$3)).$compact().$join(", ")+"]"},$Parameters_on_kwnilarg$12.$$arity=0),Opal.def($Parameters_on_shadowarg$13,"$on_arg",$Parameters_on_kwnilarg$12=function(arg_name){return"['req', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=1),Opal.def($Parameters_on_shadowarg$13,"$on_mlhs",$Parameters_on_kwnilarg$12=function($a){Opal.slice.call(arguments,0,arguments.length);return"['req']"},$Parameters_on_kwnilarg$12.$$arity=-1),Opal.def($Parameters_on_shadowarg$13,"$on_optarg",$Parameters_on_kwnilarg$12=function(arg_name){return"['opt', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=2),Opal.def($Parameters_on_shadowarg$13,"$on_restarg",$Parameters_on_kwnilarg$12=function(arg_name){return null==arg_name&&(arg_name=nil),$truthy(arg_name)?(arg_name["$=="]("fwd_rest_arg")&&(arg_name="*"),"['rest', '"+arg_name+"']"):"['rest']"},$Parameters_on_kwnilarg$12.$$arity=-1),Opal.def($Parameters_on_shadowarg$13,"$on_kwarg",$Parameters_on_kwnilarg$12=function(arg_name){return"['keyreq', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=1),Opal.def($Parameters_on_shadowarg$13,"$on_kwoptarg",$Parameters_on_kwnilarg$12=function(arg_name){return"['key', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=2),Opal.def($Parameters_on_shadowarg$13,"$on_kwrestarg",$Parameters_on_kwnilarg$12=function(arg_name){return null==arg_name&&(arg_name=nil),$truthy(arg_name)?"['keyrest', '"+arg_name+"']":"['keyrest']"},$Parameters_on_kwnilarg$12.$$arity=-1),Opal.def($Parameters_on_shadowarg$13,"$on_blockarg",$Parameters_on_kwnilarg$12=function(arg_name){return arg_name["$=="]("fwd_block_arg")&&(arg_name="&"),"['block', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=1),Opal.def($Parameters_on_shadowarg$13,"$on_kwnilarg",$Parameters_on_kwnilarg$12=function(){return"['nokey']"},$Parameters_on_kwnilarg$12.$$arity=0),Opal.def($Parameters_on_shadowarg$13,"$on_shadowarg",$Parameters_on_shadowarg$13=function(){return nil},$Parameters_on_shadowarg$13.$$arity=1),nil&&"on_shadowarg"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$add_temp","$line","$offset"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$PreparePostArgs_compile$1,$parent_nesting){$PreparePostArgs_compile$1=$klass($base,$PreparePostArgs_compile$1,"PreparePostArgs"),[$PreparePostArgs_compile$1].concat($parent_nesting);return $PreparePostArgs_compile$1.$handle("prepare_post_args"),$PreparePostArgs_compile$1.$children("offset"),Opal.def($PreparePostArgs_compile$1,"$compile",$PreparePostArgs_compile$1=function(){return this.$add_temp("$post_args"),this.$line("$post_args = Opal.slice.call(arguments, "+this.$offset()+", arguments.length)")},$PreparePostArgs_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$each_with_index","$children","$multiple_underscore?","$[]","$[]=","$-","$+","$>","$s","$type","$!=","$push","$process","$==","$count","$start_with?","$to_s","$first"]),self.$require("opal/nodes/base"),self.$require("opal/nodes/args/arg"),self.$require("opal/nodes/args/arity_check"),self.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),self.$require("opal/nodes/args/extract_block_arg"),self.$require("opal/nodes/args/extract_kwarg"),self.$require("opal/nodes/args/extract_kwargs"),self.$require("opal/nodes/args/extract_kwoptarg"),self.$require("opal/nodes/args/extract_kwrestarg"),self.$require("opal/nodes/args/extract_optarg"),self.$require("opal/nodes/args/extract_post_arg"),self.$require("opal/nodes/args/extract_post_optarg"),self.$require("opal/nodes/args/extract_restarg"),self.$require("opal/nodes/args/fake_arg"),self.$require("opal/nodes/args/initialize_iterarg"),self.$require("opal/nodes/args/initialize_shadowarg"),self.$require("opal/nodes/args/parameters"),self.$require("opal/nodes/args/prepare_post_args"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ArgsNode_multiple_underscore$ques$3,$ArgsNode_compile$1){$ArgsNode_multiple_underscore$ques$3=$klass($base,$ArgsNode_multiple_underscore$ques$3,"ArgsNode"),[$ArgsNode_multiple_underscore$ques$3].concat($ArgsNode_compile$1);return $ArgsNode_multiple_underscore$ques$3.$handle("args"),Opal.def($ArgsNode_multiple_underscore$ques$3,"$compile",$ArgsNode_compile$1=function(){var $$2,same_arg_counter=nil,same_arg_counter=$hash2([],{});return $send(this.$children(),"each_with_index",[],(($$2=function(arg,idx){var lhs,rhs,self=null==$$2.$$s?this:$$2.$$s,$writer=nil;return null==arg&&(arg=nil),null==idx&&(idx=nil),$truthy(self["$multiple_underscore?"](arg))&&($truthy(same_arg_counter["$[]"](arg))||($writer=[arg,0],$send(same_arg_counter,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[arg,(lhs=same_arg_counter["$[]"](arg),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))],$send(same_arg_counter,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(same_arg_counter["$[]"](arg),1))&&(arg=self.$s(arg.$type(),arg.$children()["$[]"](0)+"_$"+same_arg_counter["$[]"](arg)))),$truthy(idx["$!="](0))&&self.$push(", "),self.$push(self.$process(arg))}).$$s=this,$$2.$$arity=2,$$2))},$ArgsNode_compile$1.$$arity=0),Opal.def($ArgsNode_multiple_underscore$ques$3,"$multiple_underscore?",$ArgsNode_multiple_underscore$ques$3=function(arg){var $ret_or_2,$ret_or_3=nil,$ret_or_4=nil;return $truthy($ret_or_2=$truthy($ret_or_3=$truthy($ret_or_4=arg.$type()["$=="]("arg"))?arg.$children().$count()["$=="](1):$ret_or_4)?arg.$children().$first().$to_s()["$start_with?"]("_"):$ret_or_3)?$rb_gt(this.$children().$count(arg),1):$ret_or_2},$ArgsNode_multiple_underscore$ques$3.$$arity=1),nil&&"multiple_underscore?"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/node_with_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$attr_reader","$attr_accessor","$[]","$meta","$s","$original_args","$push","$process","$arity_check_node","$uses_block?","$scope","$identity","$block_name","$add_temp","$line","$to_code","$new"]),self.$require("opal/nodes/scope"),self.$require("opal/nodes/args/parameters"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$NodeWithArgs_parameters_code$5,$NodeWithArgs_compile_block_arg$4){var $NodeWithArgs_initialize$1,$NodeWithArgs_parameters_code$5=$klass($base,$NodeWithArgs_parameters_code$5,"NodeWithArgs"),$nesting=[$NodeWithArgs_parameters_code$5].concat($NodeWithArgs_compile_block_arg$4);return $NodeWithArgs_parameters_code$5.$$prototype.sexp=nil,$NodeWithArgs_parameters_code$5.$attr_reader("used_kwargs"),$NodeWithArgs_parameters_code$5.$attr_accessor("arity"),$NodeWithArgs_parameters_code$5.$attr_reader("original_args"),Opal.def($NodeWithArgs_parameters_code$5,"$initialize",$NodeWithArgs_initialize$1=function($a){var $zuper_ii,$iter=$NodeWithArgs_initialize$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($NodeWithArgs_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$NodeWithArgs_initialize$1,!1,!0),"initialize",$zuper,$iter),this.original_args=this.sexp.$meta()["$[]"]("original_args"),this.used_kwargs=[],this.arity=0},$NodeWithArgs_initialize$1.$$arity=-1),Opal.def($NodeWithArgs_parameters_code$5,"$arity_check_node",$NodeWithArgs_compile_block_arg$4=function(){return this.$s("arity_check",this.$original_args())},$NodeWithArgs_compile_block_arg$4.$$arity=0),Opal.def($NodeWithArgs_parameters_code$5,"$compile_arity_check",$NodeWithArgs_compile_block_arg$4=function(){return this.$push(this.$process(this.$arity_check_node()))},$NodeWithArgs_compile_block_arg$4.$$arity=0),Opal.def($NodeWithArgs_parameters_code$5,"$compile_block_arg",$NodeWithArgs_compile_block_arg$4=function(){var scope_name,yielder,self=this,$ret_or_1=nil;return $truthy(self.$scope()["$uses_block?"]())?(scope_name=self.$scope().$identity(),yielder=$truthy($ret_or_1=self.$scope().$block_name())?$ret_or_1:"$yield",self.$add_temp("$iter = "+scope_name+".$$p"),self.$add_temp(yielder+" = $iter || nil"),self.$line("if ($iter) "+scope_name+".$$p = null;")):nil},$NodeWithArgs_compile_block_arg$4.$$arity=0),Opal.def($NodeWithArgs_parameters_code$5,"$parameters_code",$NodeWithArgs_parameters_code$5=function(){return $$$($$($nesting,"Args"),"Parameters").$new(this.$original_args()).$to_code()},$NodeWithArgs_parameters_code$5.$$arity=0),nil&&"parameters_code"}($nesting[0],$$($nesting,"ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/iter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$lambda_definition?","$scope","$is_lambda!","$in_scope","$identify!","$add_temp","$process","$inline_args","$compile_arity_check","$stmt","$returned_body","$to_vars","$line","$catch_return","$unshift","$push","$contains_break?","$arity","$arity_check?","$compiler","$parameters_code","$has_top_level_mlhs_arg?","$has_trailing_comma_in_args?","$block_arg","$block_name=","$-","$each","$args","$first","$==","$<<","$updated","$body","$returns","$s","$any?","$original_args","$type","$loc","$expression","$source","$match","$new","$found_break?"]),self.$require("opal/nodes/node_with_args"),self.$require("opal/rewriters/break_finder"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$IterNode_contains_break$ques$11,$IterNode_arity_check_node$10){var $IterNode_contains_break$ques$11=$klass($base,$IterNode_contains_break$ques$11,"IterNode"),$nesting=[$IterNode_contains_break$ques$11].concat($IterNode_arity_check_node$10);return $IterNode_contains_break$ques$11.$$prototype.sexp=nil,$IterNode_contains_break$ques$11.$handle("iter"),$IterNode_contains_break$ques$11.$children("inline_args","body"),Opal.def($IterNode_contains_break$ques$11,"$compile",$IterNode_arity_check_node$10=function(){var $$2,body_code,inline_params=nil,to_vars=nil,identity=nil;return $truthy(this.$scope()["$lambda_definition?"]())&&this["$is_lambda!"](),to_vars=identity=inline_params=nil,$send(this,"in_scope",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return identity=self.$scope()["$identify!"](),self.$add_temp("self = "+identity+".$$s == null ? this : "+identity+".$$s"),inline_params=self.$process(self.$inline_args()),self.$compile_arity_check(),body_code=self.$stmt(self.$returned_body()),to_vars=self.$scope().$to_vars(),self.$line(body_code),$truthy(self.$scope().$catch_return())?(self.$unshift("try {\n"),self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),self.$push(" throw $returner; }")):nil}).$$s=this,$$2.$$arity=0,$$2)),this.$unshift(to_vars),this.$unshift("("+identity+" = function(",inline_params,"){"),this.$push("}, "+identity+".$$s = self,"),$truthy(this["$contains_break?"]())&&this.$push(" "+identity+".$$brk = $brk,"),this.$push(" "+identity+".$$arity = "+this.$arity()+","),$truthy(this.$compiler()["$arity_check?"]())&&this.$push(" "+identity+".$$parameters = "+this.$parameters_code()+","),$truthy(this["$has_top_level_mlhs_arg?"]())&&this.$push(" "+identity+".$$has_top_level_mlhs_arg = true,"),$truthy(this["$has_trailing_comma_in_args?"]())&&this.$push(" "+identity+".$$has_trailing_comma_in_args = true,"),this.$push(" "+identity+")")},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$compile_block_arg",$IterNode_arity_check_node$10=function(){var scope_name,rhs,lhs=nil;return $truthy(this.$block_arg())?(lhs=[this.$block_arg()],$send(this.$scope(),"block_name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),this.$scope().$add_temp(this.$block_arg()),scope_name=this.$scope()["$identify!"](),this.$line(this.$block_arg()+" = "+scope_name+".$$p || nil;"),this.$line("if ("+this.$block_arg()+") "+scope_name+".$$p = null;")):nil},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$extract_underscore_args",$IterNode_arity_check_node$10=function(){var $$5,valid_args=nil,caught_blank_argument=nil,valid_args=[],caught_blank_argument=!1;return $send(this.$args().$children(),"each",[],(($$5=function(arg){null==$$5.$$s||$$5.$$s;return null==arg&&(arg=nil),arg.$children().$first()["$=="]("_")?$truthy(caught_blank_argument)?nil:(caught_blank_argument=!0,valid_args["$<<"](arg)):valid_args["$<<"](arg)}).$$s=this,$$5.$$arity=1,$$5)),this.sexp=this.sexp.$updated(nil,[this.$args().$updated(nil,valid_args),this.$body()])},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$returned_body",$IterNode_arity_check_node$10=function(){var self=this,$ret_or_1=nil;return self.$compiler().$returns($truthy($ret_or_1=self.$body())?$ret_or_1:self.$s("nil"))},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$has_top_level_mlhs_arg?",$IterNode_arity_check_node$10=function(){var $$8;return $send(this.$original_args().$children(),"any?",[],(($$8=function(arg){null==$$8.$$s||$$8.$$s;return null==arg&&(arg=nil),arg.$type()["$=="]("mlhs")}).$$s=this,$$8.$$arity=1,$$8))},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$has_trailing_comma_in_args?",$IterNode_arity_check_node$10=function(){var self=this,$ret_or_2=nil;return $truthy($truthy($ret_or_2=self.$original_args().$loc())?self.$original_args().$loc().$expression():$ret_or_2)?self.$original_args().$loc().$expression().$source().$match(/,\s*\|/):nil},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$arity_check_node",$IterNode_arity_check_node$10=function(){return this.$s("iter_arity_check",this.$original_args())},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$contains_break?",$IterNode_contains_break$ques$11=function(){var finder=nil;return(finder=$$$($$$($$($nesting,"Opal"),"Rewriters"),"BreakFinder").$new()).$process(this.sexp),finder["$found_break?"]()},$IterNode_contains_break$ques$11.$$arity=0),nil&&"contains_break?"}($nesting[0],$$($nesting,"NodeWithArgs"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/def"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$in_scope","$mid","$mid=","$scope","$-","$==","$type","$defs=","$identify!","$identity","$block_name=","$process","$inline_args","$stmt","$returns","$compiler","$stmts","$compile_block_arg","$add_temp","$compile_arity_check","$uses_zuper","$prepare_super","$unshift","$current_indent","$to_vars","$line","$catch_return","$push","$valid_name?","$arity","$arity_check?","$parameters_code","$parse_comments?","$comments_code","$enable_source_location?","$source_location","$wrap_with_definition","$wrap","$expr?","$+","$join","$map","$comments","$inspect","$text","$add_local"]),self.$require("opal/nodes/node_with_args"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$DefNode_prepare_super$6,$DefNode_comments_code$4){$DefNode_prepare_super$6=$klass($base,$DefNode_prepare_super$6,"DefNode"),[$DefNode_prepare_super$6].concat($DefNode_comments_code$4);return $DefNode_prepare_super$6.$handle("def"),$DefNode_prepare_super$6.$children("mid","inline_args","stmts"),Opal.def($DefNode_prepare_super$6,"$compile",$DefNode_comments_code$4=function(){var $$2,function_name,self=this,inline_params=nil,scope_name=nil,inline_params=nil,scope_name=nil;return $send(self,"in_scope",[],(($$2=function(){var stmt_code,self=null==$$2.$$s?this:$$2.$$s,$writer=nil;return null==self.sexp&&(self.sexp=nil),$writer=[self.$mid()],$send(self.$scope(),"mid=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.sexp.$type()["$=="]("defs")&&($writer=[!0],$send(self.$scope(),"defs=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),self.$scope()["$identify!"](),scope_name=self.$scope().$identity(),$writer=["$yield"],$send(self.$scope(),"block_name=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],inline_params=self.$process(self.$inline_args()),stmt_code=self.$stmt(self.$compiler().$returns(self.$stmts())),self.$compile_block_arg(),self.$add_temp("self = this"),self.$compile_arity_check(),$truthy(self.$scope().$uses_zuper())&&self.$prepare_super(),self.$unshift("\n"+self.$current_indent(),self.$scope().$to_vars()),self.$line(stmt_code),$truthy(self.$scope().$catch_return())?(self.$unshift("try {\n"),self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),self.$push(" throw $returner; }")):nil}).$$s=self,$$2.$$arity=0,$$2)),function_name=$truthy(self["$valid_name?"](self.$mid()))?" $$"+self.$mid():"",self.$unshift(") {"),self.$unshift(inline_params),self.$unshift("function"+function_name+"("),$truthy(scope_name)&&self.$unshift(scope_name+" = "),self.$line("}"),self.$push(", "+scope_name+".$$arity = "+self.$arity()),$truthy(self.$compiler()["$arity_check?"]())&&self.$push(", "+scope_name+".$$parameters = "+self.$parameters_code()),$truthy(self.$compiler()["$parse_comments?"]())&&self.$push(", "+scope_name+".$$comments = "+self.$comments_code()),$truthy(self.$compiler()["$enable_source_location?"]())&&self.$push(", "+scope_name+".$$source_location = "+self.$source_location()),self.$wrap_with_definition()},$DefNode_comments_code$4.$$arity=0),Opal.def($DefNode_prepare_super$6,"$wrap_with_definition",$DefNode_comments_code$4=function(){return this.$wrap("Opal.def(self, '$"+this.$mid()+"', ",")"),$truthy(this["$expr?"]())?this.$wrap("(",", nil) && '"+this.$mid()+"'"):this.$unshift("\n"+this.$current_indent())},$DefNode_comments_code$4.$$arity=0),Opal.def($DefNode_prepare_super$6,"$comments_code",$DefNode_comments_code$4=function(){var $$5;return $rb_plus($rb_plus("[",$send(this.$comments(),"map",[],(($$5=function(comment){null==$$5.$$s||$$5.$$s;return null==comment&&(comment=nil),comment.$text().$inspect()}).$$s=this,$$5.$$arity=1,$$5)).$join(", ")),"]")},$DefNode_comments_code$4.$$arity=0),Opal.def($DefNode_prepare_super$6,"$prepare_super",$DefNode_prepare_super$6=function(){return this.$add_local("$zuper"),this.$add_local("$zuper_i"),this.$add_local("$zuper_ii"),this.$line("// Prepare super implicit arguments"),this.$line("for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) {"),this.$line(" $zuper[$zuper_i] = arguments[$zuper_i];"),this.$line("}")},$DefNode_prepare_super$6.$$arity=0),nil&&"prepare_super"}($nesting[0],$$($nesting,"NodeWithArgs"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/defs"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$unshift","$expr","$recvr","$mid","$push","$expr?","$wrap"]),self.$require("opal/nodes/def"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$DefsNode_wrap_with_definition$1,$parent_nesting){$DefsNode_wrap_with_definition$1=$klass($base,$DefsNode_wrap_with_definition$1,"DefsNode"),[$DefsNode_wrap_with_definition$1].concat($parent_nesting);return $DefsNode_wrap_with_definition$1.$handle("defs"),$DefsNode_wrap_with_definition$1.$children("recvr","mid","inline_args","stmts"),Opal.def($DefsNode_wrap_with_definition$1,"$wrap_with_definition",$DefsNode_wrap_with_definition$1=function(){return this.$unshift("Opal.defs(",this.$expr(this.$recvr()),", '$"+this.$mid()+"', "),this.$push(")"),$truthy(this["$expr?"]())?this.$wrap("(",", nil) && '"+this.$mid()+"'"):nil},$DefsNode_wrap_with_definition$1.$$arity=0),nil&&"wrap_with_definition"}($nesting[0],$$($nesting,"DefNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/if"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$truthy","$falsy","$push","$js_truthy","$test","$indent","$line","$stmt","$==","$type","$needs_wrapper?","$wrap","$returns","$compiler","$true_body","$s","$false_body","$expr?","$recv?","$helper","$new_temp","$top_scope","$excl","$from","$to"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$IfNode_needs_wrapper$ques$6,$IfNode_falsy$5){[$IfNode_needs_wrapper$ques$6=$klass($base,$IfNode_needs_wrapper$ques$6,"IfNode")].concat($IfNode_falsy$5),$IfNode_needs_wrapper$ques$6.$handle("if"),$IfNode_needs_wrapper$ques$6.$children("test","true_body","false_body"),Opal.def($IfNode_needs_wrapper$ques$6,"$compile",$IfNode_falsy$5=function(){var $$2,$$3,falsy=nil,truthy=this.$truthy(),falsy=this.$falsy();return this.$push("if (",this.$js_truthy(this.$test()),") {"),$truthy(truthy)&&$send(this,"indent",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return self.$line(self.$stmt(truthy))}).$$s=this,$$2.$$arity=0,$$2)),$truthy(falsy)?falsy.$type()["$=="]("if")?this.$line("} else ",this.$stmt(falsy)):(this.$line("} else {"),$send(this,"indent",[],(($$3=function(){var self=null==$$3.$$s?this:$$3.$$s;return self.$line(self.$stmt(falsy))}).$$s=this,$$3.$$arity=0,$$3)),this.$line("}")):this.$push("}"),$truthy(this["$needs_wrapper?"]())?this.$wrap("(function() {","; return nil; })()"):nil},$IfNode_falsy$5.$$arity=0),Opal.def($IfNode_needs_wrapper$ques$6,"$truthy",$IfNode_falsy$5=function(){var self=this,$ret_or_1=nil;return $truthy(self["$needs_wrapper?"]())?self.$compiler().$returns($truthy($ret_or_1=self.$true_body())?$ret_or_1:self.$s("nil")):self.$true_body()},$IfNode_falsy$5.$$arity=0),Opal.def($IfNode_needs_wrapper$ques$6,"$falsy",$IfNode_falsy$5=function(){var self=this,$ret_or_2=nil;return $truthy(self["$needs_wrapper?"]())?self.$compiler().$returns($truthy($ret_or_2=self.$false_body())?$ret_or_2:self.$s("nil")):self.$false_body()},$IfNode_falsy$5.$$arity=0),Opal.def($IfNode_needs_wrapper$ques$6,"$needs_wrapper?",$IfNode_needs_wrapper$ques$6=function(){var $ret_or_3;return $truthy($ret_or_3=this["$expr?"]())?$ret_or_3:this["$recv?"]()},$IfNode_needs_wrapper$ques$6.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$IFlipFlop_compile$8,$IFlipFlop_excl$7){[$IFlipFlop_compile$8=$klass($base,$IFlipFlop_compile$8,"IFlipFlop")].concat($IFlipFlop_excl$7),$IFlipFlop_compile$8.$handle("iflipflop"),$IFlipFlop_compile$8.$children("from","to"),Opal.def($IFlipFlop_compile$8,"$excl",$IFlipFlop_excl$7=function(){return""},$IFlipFlop_excl$7.$$arity=0),Opal.def($IFlipFlop_compile$8,"$compile",$IFlipFlop_compile$8=function(){var fun_name,ff;return this.$helper("truthy"),ff=(fun_name=this.$top_scope().$new_temp())+".$$ff",this.$push("(typeof "+fun_name+" === 'undefined' ? ("+fun_name+" = function(from, to){"),this.$push(" if (typeof "+ff+" === 'undefined') "+ff+" = false;"),this.$push(" var retval = "+ff+";"),this.$push(" if (!"+ff+") {"),this.$push(" "+ff+" = retval = $truthy(from());"),this.$push(" }"),this.$push(" "+this.$excl()+"if ("+ff+") {"),this.$push(" if ($truthy(to())) "+ff+" = false;"),this.$push(" }"),this.$push(" return retval;"),this.$push("}) : "+fun_name+")("),this.$push(" function() { ",this.$stmt(this.$compiler().$returns(this.$from()))," },"),this.$push(" function() { ",this.$stmt(this.$compiler().$returns(this.$to()))," }"),this.$push(")")},$IFlipFlop_compile$8.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$EFlipFlop_excl$9,$parent_nesting){$EFlipFlop_excl$9=$klass($base,$EFlipFlop_excl$9,"EFlipFlop"),[$EFlipFlop_excl$9].concat($parent_nesting);return $EFlipFlop_excl$9.$handle("eflipflop"),Opal.def($EFlipFlop_excl$9,"$excl",$EFlipFlop_excl$9=function(){return"else "},$EFlipFlop_excl$9.$$arity=0),nil&&"excl"}($nesting[0],$$($nesting,"IFlipFlop"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/logic"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$in_while?","$push","$iter?","$scope","$expr_or_nil","$value","$error","$size","$children","$===","$s","$first","$compile_while","$compile_iter","$[]","$while_loop","$stmt?","$line","$break_val","$nil?","$expr","$[]=","$-","$helper","$identity","$==","$empty_splat?","$recv","$>","$!","$lambda?","$find_parent_def","$expr?","$def?","$return_in_iter?","$return_expr_in_def?","$scope_to_catch_return","$catch_return=","$return_val","$to_s"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$NextNode_value$2,$NextNode_compile$1){[$NextNode_value$2=$klass($base,$NextNode_value$2,"NextNode")].concat($NextNode_compile$1),$NextNode_value$2.$handle("next"),Opal.def($NextNode_value$2,"$compile",$NextNode_compile$1=function(){return $truthy(this["$in_while?"]())?this.$push("continue;"):$truthy(this.$scope()["$iter?"]())?this.$push("return ",this.$expr_or_nil(this.$value()),";"):this.$error("Invalid next")},$NextNode_compile$1.$$arity=0),Opal.def($NextNode_value$2,"$value",$NextNode_value$2=function(){var self=this,$case=nil;return $case=self.$children().$size(),0["$==="]($case)?self.$s("nil"):1["$==="]($case)?self.$children().$first():$send(self,"s",["array"].concat(Opal.to_a(self.$children())))},$NextNode_value$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$BreakNode_break_val$6,$BreakNode_compile_iter$5){[$BreakNode_break_val$6=$klass($base,$BreakNode_break_val$6,"BreakNode")].concat($BreakNode_compile_iter$5),$BreakNode_break_val$6.$handle("break"),$BreakNode_break_val$6.$children("value"),Opal.def($BreakNode_break_val$6,"$compile",$BreakNode_compile_iter$5=function(){return $truthy(this["$in_while?"]())?this.$compile_while():$truthy(this.$scope()["$iter?"]())?this.$compile_iter():this.$error("void value expression: cannot use break outside of iter/while")},$BreakNode_compile_iter$5.$$arity=0),Opal.def($BreakNode_break_val$6,"$compile_while",$BreakNode_compile_iter$5=function(){return $truthy(this.$while_loop()["$[]"]("closure"))?this.$push("return ",this.$expr_or_nil(this.$value())):this.$push("break;")},$BreakNode_compile_iter$5.$$arity=0),Opal.def($BreakNode_break_val$6,"$compile_iter",$BreakNode_compile_iter$5=function(){return $truthy(this["$stmt?"]())||this.$error("break must be used as a statement"),this.$line("Opal.brk(",this.$break_val(),", $brk)")},$BreakNode_compile_iter$5.$$arity=0),Opal.def($BreakNode_break_val$6,"$break_val",$BreakNode_break_val$6=function(){return $truthy(this.$value()["$nil?"]())?this.$expr(this.$s("nil")):this.$expr(this.$value())},$BreakNode_break_val$6.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$RedoNode_compile_iter$9,$RedoNode_compile_while$8){[$RedoNode_compile_iter$9=$klass($base,$RedoNode_compile_iter$9,"RedoNode")].concat($RedoNode_compile_while$8),$RedoNode_compile_iter$9.$handle("redo"),Opal.def($RedoNode_compile_iter$9,"$compile",$RedoNode_compile_while$8=function(){return $truthy(this["$in_while?"]())?this.$compile_while():$truthy(this.$scope()["$iter?"]())?this.$compile_iter():this.$push("REDO()")},$RedoNode_compile_while$8.$$arity=0),Opal.def($RedoNode_compile_iter$9,"$compile_while",$RedoNode_compile_while$8=function(){var $writer=["use_redo",!0];return $send(this.$while_loop(),"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$push(this.$while_loop()["$[]"]("redo_var")+" = true; continue;")},$RedoNode_compile_while$8.$$arity=0),Opal.def($RedoNode_compile_iter$9,"$compile_iter",$RedoNode_compile_iter$9=function(){return this.$helper("slice"),this.$push("return "+this.$scope().$identity()+".apply(null, $slice.call(arguments))")},$RedoNode_compile_iter$9.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$SplatNode_compile$11,$SplatNode_empty_splat$ques$10){[$SplatNode_compile$11=$klass($base,$SplatNode_compile$11,"SplatNode")].concat($SplatNode_empty_splat$ques$10),$SplatNode_compile$11.$handle("splat"),$SplatNode_compile$11.$children("value"),Opal.def($SplatNode_compile$11,"$empty_splat?",$SplatNode_empty_splat$ques$10=function(){return this.$value()["$=="](this.$s("array"))},$SplatNode_empty_splat$ques$10.$$arity=0),Opal.def($SplatNode_compile$11,"$compile",$SplatNode_compile$11=function(){return $truthy(this["$empty_splat?"]())?this.$push("[]"):this.$push("Opal.to_a(",this.$recv(this.$value()),")")},$SplatNode_compile$11.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ReturnNode_compile$16,$ReturnNode_scope_to_catch_return$15){[$ReturnNode_compile$16=$klass($base,$ReturnNode_compile$16,"ReturnNode")].concat($ReturnNode_scope_to_catch_return$15),$ReturnNode_compile$16.$handle("return"),$ReturnNode_compile$16.$children("value"),Opal.def($ReturnNode_compile$16,"$return_val",$ReturnNode_scope_to_catch_return$15=function(){var lhs,rhs;return $truthy(this.$value()["$nil?"]())?this.$expr(this.$s("nil")):$truthy((lhs=this.$children().$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))?this.$expr($send(this,"s",["array"].concat(Opal.to_a(this.$children())))):this.$expr(this.$value())},$ReturnNode_scope_to_catch_return$15.$$arity=0),Opal.def($ReturnNode_compile$16,"$return_in_iter?",$ReturnNode_scope_to_catch_return$15=function(){var self=this,$ret_or_1=nil,$ret_or_2=nil,parent_def=nil;return $truthy($truthy($ret_or_1=$truthy($ret_or_2=self.$scope()["$iter?"]())?self.$scope()["$lambda?"]()["$!"]():$ret_or_2)?parent_def=self.$scope().$find_parent_def():$ret_or_1)?parent_def:nil},$ReturnNode_scope_to_catch_return$15.$$arity=0),Opal.def($ReturnNode_compile$16,"$return_expr_in_def?",$ReturnNode_scope_to_catch_return$15=function(){var self=this,$ret_or_3=nil,$ret_or_4=nil;return $truthy($truthy($ret_or_3=self["$expr?"]())?$truthy($ret_or_4=self.$scope()["$def?"]())?$ret_or_4:self.$scope()["$lambda?"]():$ret_or_3)?self.$scope():nil},$ReturnNode_scope_to_catch_return$15.$$arity=0),Opal.def($ReturnNode_compile$16,"$scope_to_catch_return",$ReturnNode_scope_to_catch_return$15=function(){var $ret_or_5;return $truthy($ret_or_5=this["$return_in_iter?"]())?$ret_or_5:this["$return_expr_in_def?"]()},$ReturnNode_scope_to_catch_return$15.$$arity=0),Opal.def($ReturnNode_compile$16,"$compile",$ReturnNode_compile$16=function(){var def_scope,$writer;return $truthy(def_scope=this.$scope_to_catch_return())?($writer=[!0],$send(def_scope,"catch_return=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$push("Opal.ret(",this.$return_val(),")")):$truthy(this["$stmt?"]())?this.$push("return ",this.$return_val()):this.$error("void value expression: cannot return as an expression")},$ReturnNode_compile$16.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$JSReturnNode_compile$17,$parent_nesting){[$JSReturnNode_compile$17=$klass($base,$JSReturnNode_compile$17,"JSReturnNode")].concat($parent_nesting),$JSReturnNode_compile$17.$handle("js_return"),$JSReturnNode_compile$17.$children("value"),Opal.def($JSReturnNode_compile$17,"$compile",$JSReturnNode_compile$17=function(){return this.$push("return "),this.$push(this.$expr(this.$value()))},$JSReturnNode_compile$17.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$JSTempNode_compile$18,$parent_nesting){[$JSTempNode_compile$18=$klass($base,$JSTempNode_compile$18,"JSTempNode")].concat($parent_nesting),$JSTempNode_compile$18.$handle("js_tmp"),$JSTempNode_compile$18.$children("value"),Opal.def($JSTempNode_compile$18,"$compile",$JSTempNode_compile$18=function(){return this.$push(this.$value().$to_s())},$JSTempNode_compile$18.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$BlockPassNode_compile$19,$parent_nesting){$BlockPassNode_compile$19=$klass($base,$BlockPassNode_compile$19,"BlockPassNode"),[$BlockPassNode_compile$19].concat($parent_nesting);return $BlockPassNode_compile$19.$handle("block_pass"),$BlockPassNode_compile$19.$children("value"),Opal.def($BlockPassNode_compile$19,"$compile",$BlockPassNode_compile$19=function(){return this.$push(this.$expr(this.$s("send",this.$value(),"to_proc",this.$s("arglist"))))},$BlockPassNode_compile$19.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/definitions"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$range=Opal.range,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs(["$require","$handle","$children","$each","$line","$expr","$type","$new_name","$===","$helper","$inspect","$[]","$to_s","$first","$old_name","$push","$error","$empty?","$stmt?","$compile_children","$simple_children?","$compile_inline_children","$>","$size","$wrap","$==","$returned_children","$+","$returns","$compiler","$s","$process","$freeze","$none?","$include?","$map","$each_with_index","$reject","$to_proc"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$UndefNode_compile$1,$parent_nesting){[$UndefNode_compile$1=$klass($base,$UndefNode_compile$1,"UndefNode")].concat($parent_nesting),$UndefNode_compile$1.$handle("undef"),$UndefNode_compile$1.$children("value"),Opal.def($UndefNode_compile$1,"$compile",$UndefNode_compile$1=function(){var $$2;return $send(this.$children(),"each",[],(($$2=function(child){var self=null==$$2.$$s?this:$$2.$$s;return null==child&&(child=nil),self.$line("Opal.udef(self, '$' + ",self.$expr(child),");")}).$$s=this,$$2.$$arity=1,$$2))},$UndefNode_compile$1.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$AliasNode_compile$3,$parent_nesting){[$AliasNode_compile$3=$klass($base,$AliasNode_compile$3,"AliasNode")].concat($parent_nesting),$AliasNode_compile$3.$handle("alias"),$AliasNode_compile$3.$children("new_name","old_name"),Opal.def($AliasNode_compile$3,"$compile",$AliasNode_compile$3=function(){var self=this,$case=nil,new_name_str=nil,old_name_str=nil;return $case=self.$new_name().$type(),"gvar"["$==="]($case)?(self.$helper("alias_gvar"),new_name_str=self.$new_name().$children().$first().$to_s()["$[]"]($range(1,-1,!1)).$inspect(),old_name_str=self.$old_name().$children().$first().$to_s()["$[]"]($range(1,-1,!1)).$inspect(),self.$push("$alias_gvar(",new_name_str,", ",old_name_str,")")):"dsym"["$==="]($case)||"sym"["$==="]($case)?(self.$helper("alias"),self.$push("$alias(self, ",self.$expr(self.$new_name()),", ",self.$expr(self.$old_name()),")")):self.$error("Opal doesn't know yet how to alias with "+self.$new_name().$type())},$AliasNode_compile$3.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$BeginNode_compile_inline_children$10,$BeginNode_simple_children$ques$8){var $nesting=[$BeginNode_compile_inline_children$10=$klass($base,$BeginNode_compile_inline_children$10,"BeginNode")].concat($BeginNode_simple_children$ques$8);$BeginNode_compile_inline_children$10.$$prototype.level=$BeginNode_compile_inline_children$10.$$prototype.returned_children=nil,$BeginNode_compile_inline_children$10.$handle("begin"),Opal.def($BeginNode_compile_inline_children$10,"$compile",$BeginNode_simple_children$ques$8=function(){var lhs,rhs;return $truthy(this.$children()["$empty?"]())?this.$push("nil"):$truthy(this["$stmt?"]())?this.$compile_children(this.$children(),this.level):$truthy(this["$simple_children?"]())?(this.$compile_inline_children(this.$children(),this.level),$truthy((lhs=this.$children().$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))?this.$wrap("(",")"):nil):this.$children().$size()["$=="](1)?this.$compile_inline_children(this.$returned_children(),this.level):(this.$compile_children(this.$returned_children(),this.level),this.$wrap("(function() {","})()"))},$BeginNode_simple_children$ques$8.$$arity=0),Opal.def($BeginNode_compile_inline_children$10,"$returned_children",$BeginNode_simple_children$ques$8=function(){var $a,self=this,$b=nil,lhs=nil,rhs=nil;return self.returned_children=$truthy($b=self.returned_children)?$b:($a=[].concat(Opal.to_a(self.$children())),$b=($b=$a.length-1)<0?0:$b,lhs=$slice.call($a,0,$b),rhs=null==$a[$b]?nil:$a[$b],$truthy(rhs)?(lhs=lhs,rhs=[self.$compiler().$returns(rhs)],"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)):[self.$s("nil")])},$BeginNode_simple_children$ques$8.$$arity=0),Opal.def($BeginNode_compile_inline_children$10,"$compile_children",$BeginNode_simple_children$ques$8=function(children,level){var $$7;return $send(children,"each",[],(($$7=function(child){var self=null==$$7.$$s?this:$$7.$$s;return null==child&&(child=nil),self.$line(self.$process(child,level),";")}).$$s=this,$$7.$$arity=1,$$7))},$BeginNode_simple_children$ques$8.$$arity=2),Opal.const_set($nesting[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),Opal.def($BeginNode_compile_inline_children$10,"$simple_children?",$BeginNode_simple_children$ques$8=function(){var $$9;return $send(this.$children(),"none?",[],(($$9=function(child){null==$$9.$$s||$$9.$$s;return null==child&&(child=nil),$$($nesting,"COMPLEX_CHILDREN")["$include?"](child.$type())}).$$s=this,$$9.$$arity=1,$$9))},$BeginNode_simple_children$ques$8.$$arity=0),Opal.def($BeginNode_compile_inline_children$10,"$compile_inline_children",$BeginNode_compile_inline_children$10=function(children,level){var $$11,$$12,processed_children=$send(children,"map",[],(($$11=function(child){var self=null==$$11.$$s?this:$$11.$$s;return null==child&&(child=nil),self.$process(child,level)}).$$s=this,$$11.$$arity=1,$$11));return $send($send(processed_children,"reject",[],"empty?".$to_proc()),"each_with_index",[],(($$12=function(child,idx){var self=null==$$12.$$s?this:$$12.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),idx["$=="](0)||self.$push(", "),self.$push(child)}).$$s=this,$$12.$$arity=2,$$12))},$BeginNode_compile_inline_children$10.$$arity=2)}($nesting[0],$$($nesting,"ScopeNode"),$nesting),function($base,self,$parent_nesting){self=$klass($base,self,"KwBeginNode"),[self].concat($parent_nesting);return self.$handle("kwbegin")}($nesting[0],$$($nesting,"BeginNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/yield"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$find_yielding_scope","$uses_block!","$block_name","$block_name=","$-","$yields_single_arg?","$children","$push","$expr","$first","$wrap","$s","$uses_splat?","$scope","$def?","$parent","$!","$==","$size","$any?","$type","$handle","$compile_call"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$BaseYieldNode_uses_splat$ques$4,$BaseYieldNode_yields_single_arg$ques$3){[$BaseYieldNode_uses_splat$ques$4=$klass($base,$BaseYieldNode_uses_splat$ques$4,"BaseYieldNode")].concat($BaseYieldNode_yields_single_arg$ques$3),Opal.def($BaseYieldNode_uses_splat$ques$4,"$compile_call",$BaseYieldNode_yields_single_arg$ques$3=function(){var block_name,rhs,yielding_scope=nil,lhs=nil;return(yielding_scope=this.$find_yielding_scope())["$uses_block!"](),$truthy(yielding_scope.$block_name())||(lhs=["$yield"],$send(yielding_scope,"block_name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs)),block_name=yielding_scope.$block_name(),$truthy(this["$yields_single_arg?"](this.$children()))?(this.$push(this.$expr(this.$children().$first())),this.$wrap("Opal.yield1("+block_name+", ",")")):(this.$push(this.$expr($send(this,"s",["arglist"].concat(Opal.to_a(this.$children()))))),$truthy(this["$uses_splat?"](this.$children()))?this.$wrap("Opal.yieldX("+block_name+", ",")"):this.$wrap("Opal.yieldX("+block_name+", [","])"))},$BaseYieldNode_yields_single_arg$ques$3.$$arity=0),Opal.def($BaseYieldNode_uses_splat$ques$4,"$find_yielding_scope",$BaseYieldNode_yields_single_arg$ques$3=function(){for(var working=nil,$ret_or_2=nil,working=this.$scope();$truthy(working)&&!$truthy($truthy($ret_or_2=working.$block_name())?$ret_or_2:working["$def?"]());)working=working.$parent();return working},$BaseYieldNode_yields_single_arg$ques$3.$$arity=0),Opal.def($BaseYieldNode_uses_splat$ques$4,"$yields_single_arg?",$BaseYieldNode_yields_single_arg$ques$3=function(children){var $ret_or_3;return $truthy($ret_or_3=this["$uses_splat?"](children)["$!"]())?children.$size()["$=="](1):$ret_or_3},$BaseYieldNode_yields_single_arg$ques$3.$$arity=1),Opal.def($BaseYieldNode_uses_splat$ques$4,"$uses_splat?",$BaseYieldNode_uses_splat$ques$4=function(children){var $$5;return $send(children,"any?",[],(($$5=function(child){null==$$5.$$s||$$5.$$s;return null==child&&(child=nil),child.$type()["$=="]("splat")}).$$s=this,$$5.$$arity=1,$$5))},$BaseYieldNode_uses_splat$ques$4.$$arity=1)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$YieldNode_compile$6,$parent_nesting){[$YieldNode_compile$6=$klass($base,$YieldNode_compile$6,"YieldNode")].concat($parent_nesting),$YieldNode_compile$6.$handle("yield"),Opal.def($YieldNode_compile$6,"$compile",$YieldNode_compile$6=function(){return this.$compile_call()},$YieldNode_compile$6.$$arity=0)}($nesting[0],$$($nesting,"BaseYieldNode"),$nesting),function($base,$ReturnableYieldNode_compile$7,$parent_nesting){$ReturnableYieldNode_compile$7=$klass($base,$ReturnableYieldNode_compile$7,"ReturnableYieldNode"),[$ReturnableYieldNode_compile$7].concat($parent_nesting);return $ReturnableYieldNode_compile$7.$handle("returnable_yield"),Opal.def($ReturnableYieldNode_compile$7,"$compile",$ReturnableYieldNode_compile$7=function(){return this.$compile_call(),this.$wrap("return ",";")},$ReturnableYieldNode_compile$7.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"BaseYieldNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/rescue"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs(["$require","$handle","$children","$push","$in_ensure","$line","$stmt","$body_sexp","$indent","$has_rescue_else?","$unshift","$rescue_else_code","$process","$compiler","$ensr_sexp","$wrap_in_closure?","$wrap","$returns","$begn","$ensr","$s","$recv?","$expr?","$rescue_else_sexp","$scope","$stmt?","$detect","$[]","$!=","$type","$rescue_else_sexp=","$-","$handle_rescue_else_manually?","$in_rescue","$body_code","$each_with_index","$==","$retry_id","$nil?","$body","$!","$in_ensure?","$gen_retry_id","$attr_reader","$expr","$klasses","$lvar","$updated","$in_resbody","$rescue_body","$klasses_sexp","$in_resbody?","$error","$current_rescue"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$EnsureNode_rescue_else_code$9,$EnsureNode_wrap_in_closure$ques$8){[$EnsureNode_rescue_else_code$9=$klass($base,$EnsureNode_rescue_else_code$9,"EnsureNode")].concat($EnsureNode_wrap_in_closure$ques$8),$EnsureNode_rescue_else_code$9.$handle("ensure"),$EnsureNode_rescue_else_code$9.$children("begn","ensr"),Opal.def($EnsureNode_rescue_else_code$9,"$compile",$EnsureNode_wrap_in_closure$ques$8=function(){var $$2,$$3;return this.$push("try {"),$send(this,"in_ensure",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return self.$line(self.$stmt(self.$body_sexp()))}).$$s=this,$$2.$$arity=0,$$2)),this.$line("} finally {"),$send(this,"indent",[],(($$3=function(){var $$4,self=null==$$3.$$s?this:$$3.$$s;return null==self.level&&(self.level=nil),$truthy(self["$has_rescue_else?"]())?(self.$unshift("var $no_errors = true; "),self.$line("var $rescue_else_result;"),self.$line("if ($no_errors) { "),$send(self,"indent",[],(($$4=function(){var $$5,self=null==$$4.$$s?this:$$4.$$s;return self.$line("$rescue_else_result = (function() {"),$send(self,"indent",[],(($$5=function(){var self=null==$$5.$$s?this:$$5.$$s;return self.$line(self.$stmt(self.$rescue_else_code()))}).$$s=self,$$5.$$arity=0,$$5)),self.$line("})();")}).$$s=self,$$4.$$arity=0,$$4)),self.$line("}"),self.$line(self.$compiler().$process(self.$ensr_sexp(),self.level)),self.$line("if ($no_errors) { return $rescue_else_result; }")):self.$line(self.$compiler().$process(self.$ensr_sexp(),self.level))}).$$s=this,$$3.$$arity=0,$$3)),this.$line("}"),$truthy(this["$wrap_in_closure?"]())?this.$wrap("(function() { ","; })()"):nil},$EnsureNode_wrap_in_closure$ques$8.$$arity=0),Opal.def($EnsureNode_rescue_else_code$9,"$body_sexp",$EnsureNode_wrap_in_closure$ques$8=function(){return $truthy(this["$wrap_in_closure?"]())?this.$compiler().$returns(this.$begn()):this.$begn()},$EnsureNode_wrap_in_closure$ques$8.$$arity=0),Opal.def($EnsureNode_rescue_else_code$9,"$ensr_sexp",$EnsureNode_wrap_in_closure$ques$8=function(){var $ret_or_1;return $truthy($ret_or_1=this.$ensr())?$ret_or_1:this.$s("nil")},$EnsureNode_wrap_in_closure$ques$8.$$arity=0),Opal.def($EnsureNode_rescue_else_code$9,"$wrap_in_closure?",$EnsureNode_wrap_in_closure$ques$8=function(){var $ret_or_2,self=this,$ret_or_3=nil;return $truthy($ret_or_2=$truthy($ret_or_3=self["$recv?"]())?$ret_or_3:self["$expr?"]())?$ret_or_2:self["$has_rescue_else?"]()},$EnsureNode_wrap_in_closure$ques$8.$$arity=0),Opal.def($EnsureNode_rescue_else_code$9,"$rescue_else_code",$EnsureNode_rescue_else_code$9=function(){var rescue_else_code=nil,rescue_else_code=this.$scope().$rescue_else_sexp();return $truthy(this["$stmt?"]())||(rescue_else_code=this.$compiler().$returns(rescue_else_code)),rescue_else_code},$EnsureNode_rescue_else_code$9.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,self,$RescueNode_gen_retry_id$21){[self=$klass($base,self,"RescueNode")].concat($RescueNode_gen_retry_id$21),self.$$prototype.retry_id=nil,self.$handle("rescue"),self.$children("body"),Opal.def(self,"$compile",$RescueNode_gen_retry_id$21=function(){var $$11,$$12,rhs,self=this,lhs=nil,$ret_or_6=nil,lhs=[$send(self.$children()["$[]"]($range(1,-1,!1)),"detect",[],(($$11=function(sexp){var $ret_or_4;null==$$11.$$s||$$11.$$s;return null==sexp&&(sexp=nil),$truthy($ret_or_4=sexp)?sexp.$type()["$!="]("resbody"):$ret_or_4}).$$s=self,$$11.$$arity=1,$$11))];return $send(self.$scope(),"rescue_else_sexp=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),$truthy(self["$handle_rescue_else_manually?"]())&&self.$line("var $no_errors = true;"),$send(self,"in_rescue",[self],(($$12=function(){var $$13,$$14,$$16,self=null==$$12.$$s?this:$$12.$$s;return self.$push("try {"),$send(self,"indent",[],(($$13=function(){var self=null==$$13.$$s?this:$$13.$$s;return self.$line(self.$stmt(self.$body_code()))}).$$s=self,$$13.$$arity=0,$$13)),self.$line("} catch ($err) {"),$send(self,"indent",[],(($$14=function(){var $$15,self=null==$$14.$$s?this:$$14.$$s;return $truthy(self["$has_rescue_else?"]())&&self.$line("$no_errors = false;"),$send(self.$children()["$[]"]($range(1,-1,!1)),"each_with_index",[],(($$15=function(child,idx){var self=null==$$15.$$s?this:$$15.$$s,$ret_or_5=nil;return null==self.level&&(self.level=nil),null==child&&(child=nil),null==idx&&(idx=nil),$truthy($truthy($ret_or_5=child)?child.$type()["$=="]("resbody"):$ret_or_5)?(idx["$=="](0)||self.$push(" else "),self.$line(self.$process(child,self.level))):nil}).$$s=self,$$15.$$arity=2,$$15)),self.$push(" else { throw $err; }")}).$$s=self,$$14.$$arity=0,$$14)),self.$line("}"),$truthy(self["$handle_rescue_else_manually?"]())&&(self.$push("finally {"),$send(self,"indent",[],(($$16=function(){var $$17,self=null==$$16.$$s?this:$$16.$$s;return self.$line("if ($no_errors) { "),$send(self,"indent",[],(($$17=function(){var self=null==$$17.$$s?this:$$17.$$s;return self.$line(self.$stmt(self.$rescue_else_code()))}).$$s=self,$$17.$$arity=0,$$17)),self.$line("}")}).$$s=self,$$16.$$arity=0,$$16)),self.$push("}")),$truthy(self.$retry_id())?self.$wrap(self.$retry_id()+": do { "," break; } while(1)"):nil}).$$s=self,$$12.$$arity=0,$$12)),$truthy($truthy($ret_or_6=self["$expr?"]())?$ret_or_6:self["$recv?"]())?self.$wrap("(function() { ","})()"):nil},$RescueNode_gen_retry_id$21.$$arity=0),Opal.def(self,"$body_code",$RescueNode_gen_retry_id$21=function(){var self=this,body_code=nil,$ret_or_7=nil,body_code=$truthy($truthy($ret_or_7=self.$body()["$nil?"]())?$ret_or_7:self.$body().$type()["$=="]("resbody"))?self.$s("nil"):self.$body();return $truthy(self["$stmt?"]())||(body_code=self.$compiler().$returns(body_code)),body_code},$RescueNode_gen_retry_id$21.$$arity=0),Opal.def(self,"$rescue_else_code",$RescueNode_gen_retry_id$21=function(){var rescue_else_code=nil,rescue_else_code=this.$scope().$rescue_else_sexp();return $truthy(this["$stmt?"]())||(rescue_else_code=this.$compiler().$returns(rescue_else_code)),rescue_else_code},$RescueNode_gen_retry_id$21.$$arity=0),Opal.def(self,"$handle_rescue_else_manually?",$RescueNode_gen_retry_id$21=function(){var $ret_or_8;return $truthy($ret_or_8=this["$in_ensure?"]()["$!"]())?this["$has_rescue_else?"]():$ret_or_8},$RescueNode_gen_retry_id$21.$$arity=0),Opal.def(self,"$gen_retry_id",$RescueNode_gen_retry_id$21=function(){var self=this,$ret_or_9=nil;return self.retry_id=$truthy($ret_or_9=self.retry_id)?$ret_or_9:self.$scope().$gen_retry_id()},$RescueNode_gen_retry_id$21.$$arity=0),self.$attr_reader("retry_id")}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ResBodyNode_rescue_body$27,$ResBodyNode_klasses$26){[$ResBodyNode_rescue_body$27=$klass($base,$ResBodyNode_rescue_body$27,"ResBodyNode")].concat($ResBodyNode_klasses$26),$ResBodyNode_rescue_body$27.$handle("resbody"),$ResBodyNode_rescue_body$27.$children("klasses_sexp","lvar","body"),Opal.def($ResBodyNode_rescue_body$27,"$compile",$ResBodyNode_klasses$26=function(){var $$23;return this.$push("if (Opal.rescue($err, ",this.$expr(this.$klasses()),")) {"),$send(this,"indent",[],(($$23=function(){var $$24,self=null==$$23.$$s?this:$$23.$$s;return $truthy(self.$lvar())&&self.$push(self.$expr(self.$lvar().$updated(nil,[].concat(Opal.to_a(self.$lvar().$children())).concat([self.$s("js_tmp","$err")])))),self.$line("try {"),$send(self,"indent",[],(($$24=function(){var $$25,self=null==$$24.$$s?this:$$24.$$s;return $send(self,"in_resbody",[],(($$25=function(){var self=null==$$25.$$s?this:$$25.$$s;return self.$line(self.$stmt(self.$rescue_body()))}).$$s=self,$$25.$$arity=0,$$25))}).$$s=self,$$24.$$arity=0,$$24)),self.$line("} finally { Opal.pop_exception(); }")}).$$s=this,$$23.$$arity=0,$$23)),this.$line("}")},$ResBodyNode_klasses$26.$$arity=0),Opal.def($ResBodyNode_rescue_body$27,"$klasses",$ResBodyNode_klasses$26=function(){var $ret_or_10;return $truthy($ret_or_10=this.$klasses_sexp())?$ret_or_10:this.$s("array",this.$s("const",nil,"StandardError"))},$ResBodyNode_klasses$26.$$arity=0),Opal.def($ResBodyNode_rescue_body$27,"$rescue_body",$ResBodyNode_rescue_body$27=function(){var self=this,body_code=nil,$ret_or_11=nil,body_code=$truthy($ret_or_11=self.$body())?$ret_or_11:self.$s("nil");return $truthy(self["$stmt?"]())||(body_code=self.$compiler().$returns(body_code)),body_code},$ResBodyNode_rescue_body$27.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$RetryNode_compile$28,$parent_nesting){$RetryNode_compile$28=$klass($base,$RetryNode_compile$28,"RetryNode"),[$RetryNode_compile$28].concat($parent_nesting);return $RetryNode_compile$28.$handle("retry"),Opal.def($RetryNode_compile$28,"$compile",$RetryNode_compile$28=function(){return $truthy(this["$in_resbody?"]())||this.$error("Invalid retry"),this.$push("continue "+this.$scope().$current_rescue().$gen_retry_id())},$RetryNode_compile$28.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/case"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs(["$require","$handle","$children","$in_case","$compiler","$compile_code","$needs_closure?","$wrap","$condition","$[]=","$case_stmt","$-","$add_local","$push","$expr","$each_with_index","$case_parts","$line","$type","$===","$returns","$==","$stmt","$!","$stmt?","$[]","$when_checks","$js_truthy","$s","$process","$body_code","$last"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$CaseNode_case_stmt$7,$CaseNode_case_parts$6){[$CaseNode_case_stmt$7=$klass($base,$CaseNode_case_stmt$7,"CaseNode")].concat($CaseNode_case_parts$6),$CaseNode_case_stmt$7.$handle("case"),$CaseNode_case_stmt$7.$children("condition"),Opal.def($CaseNode_case_stmt$7,"$compile",$CaseNode_case_parts$6=function(){var $$2;return $send(this.$compiler(),"in_case",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return self.$compile_code(),$truthy(self["$needs_closure?"]())?self.$wrap("(function() {","})()"):nil}).$$s=this,$$2.$$arity=0,$$2))},$CaseNode_case_parts$6.$$arity=0),Opal.def($CaseNode_case_stmt$7,"$compile_code",$CaseNode_case_parts$6=function(){var $$4,rhs,self=this,handled_else=nil,lhs=nil,$ret_or_1=nil,handled_else=!1;return $truthy(self.$condition())&&(lhs=["cond",!0],$send(self.$case_stmt(),"[]=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),self.$add_local("$case"),self.$push("$case = ",self.$expr(self.$condition()),";")),$send(self.$case_parts(),"each_with_index",[],(($$4=function(wen,idx){var self=null==$$4.$$s?this:$$4.$$s,$case=nil;return null==wen&&(wen=nil),null==idx&&(idx=nil),$truthy(wen)?(self.$line(),$case=wen.$type(),"when"["$==="]($case)?($truthy(self["$needs_closure?"]())&&(wen=self.$compiler().$returns(wen)),idx["$=="](0)||self.$push("else "),self.$push(self.$stmt(wen))):(handled_else=!0,$truthy(self["$needs_closure?"]())&&(wen=self.$compiler().$returns(wen)),self.$push("else {",self.$stmt(wen),"}"))):nil}).$$s=self,$$4.$$arity=2,$$4)),$truthy($truthy($ret_or_1=self["$needs_closure?"]())?handled_else["$!"]():$ret_or_1)?(self.$line(),self.$push("else { return nil }")):nil},$CaseNode_case_parts$6.$$arity=0),Opal.def($CaseNode_case_stmt$7,"$needs_closure?",$CaseNode_case_parts$6=function(){return this["$stmt?"]()["$!"]()},$CaseNode_case_parts$6.$$arity=0),Opal.def($CaseNode_case_stmt$7,"$case_parts",$CaseNode_case_parts$6=function(){return this.$children()["$[]"]($range(1,-1,!1))},$CaseNode_case_parts$6.$$arity=0),Opal.def($CaseNode_case_stmt$7,"$case_stmt",$CaseNode_case_stmt$7=function(){return this.$compiler().$case_stmt()},$CaseNode_case_stmt$7.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$WhenNode_body_code$12,$WhenNode_case_stmt$11){$WhenNode_body_code$12=$klass($base,$WhenNode_body_code$12,"WhenNode"),[$WhenNode_body_code$12].concat($WhenNode_case_stmt$11);return $WhenNode_body_code$12.$$prototype.level=nil,$WhenNode_body_code$12.$handle("when"),$WhenNode_body_code$12.$children("whens","body"),Opal.def($WhenNode_body_code$12,"$compile",$WhenNode_case_stmt$11=function(){var $$9;return this.$push("if ("),$send(this.$when_checks(),"each_with_index",[],(($$9=function(check,idx){var call,self=null==$$9.$$s?this:$$9.$$s;return null==check&&(check=nil),null==idx&&(idx=nil),idx["$=="](0)||self.$push(" || "),check.$type()["$=="]("splat")?(self.$push("(function($splt) { for (var i = 0, ii = $splt.length; i < ii; i++) {"),$truthy(self.$case_stmt()["$[]"]("cond"))?self.$push("if ($splt[i]['$===']($case)) { return true; }"):self.$push("if (",self.$js_truthy(check),")) { return true; }"),self.$push("} return false; })(",self.$expr(check.$children()["$[]"](0)),")")):$truthy(self.$case_stmt()["$[]"]("cond"))?(call=self.$s("send",check,"===",self.$s("arglist",self.$s("js_tmp","$case"))),self.$push(self.$expr(call))):self.$push(self.$js_truthy(check))}).$$s=this,$$9.$$arity=2,$$9)),this.$push(") {",this.$process(this.$body_code(),this.level),"}")},$WhenNode_case_stmt$11.$$arity=0),Opal.def($WhenNode_body_code$12,"$when_checks",$WhenNode_case_stmt$11=function(){return this.$children()["$[]"]($range(0,-2,!1))},$WhenNode_case_stmt$11.$$arity=0),Opal.def($WhenNode_body_code$12,"$case_stmt",$WhenNode_case_stmt$11=function(){return this.$compiler().$case_stmt()},$WhenNode_case_stmt$11.$$arity=0),Opal.def($WhenNode_body_code$12,"$body_code",$WhenNode_body_code$12=function(){var $ret_or_2;return $truthy($ret_or_2=this.$children().$last())?$ret_or_2:this.$s("nil")},$WhenNode_body_code$12.$$arity=0),nil&&"body_code"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/super"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$include?","$type","$s","$helper","$push","$compile_receiver","$compile_method_body","$compile_method_name","$compile_arguments","$compile_block_pass","$private","$def?","$scope","$find_parent_def","$to_s","$mid","$def_scope","$identify!","$method_id","$def_scope_identity","$defined_check_param","$allow_stubs","$super_chain","$join","$map","$implicit_arguments_param","$super_method_invocation","$iter?","$super_block_invocation","$raise","$handle","$wrap","$uses_block!","$compile_using_send","$==","$iter","$uses_zuper=","$-","$block_name","$!","$<<","$empty?","$children","$arglist","$expr","$==="]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$BaseSuperNode_compile_method_name$13,$BaseSuperNode_compile_method_body$12){var $BaseSuperNode_initialize$1;[$BaseSuperNode_compile_method_name$13=$klass($base,$BaseSuperNode_compile_method_name$13,"BaseSuperNode")].concat($BaseSuperNode_compile_method_body$12),$BaseSuperNode_compile_method_name$13.$$prototype.sexp=$BaseSuperNode_compile_method_name$13.$$prototype.def_scope=nil,Opal.def($BaseSuperNode_compile_method_name$13,"$initialize",$BaseSuperNode_initialize$1=function($a){var $b,rest,$zuper_ii,$c=$BaseSuperNode_initialize$1.$$p,args=nil,last_child=nil,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($c&&($BaseSuperNode_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$BaseSuperNode_initialize$1,!1,!0),"initialize",$zuper,$c),args=[].concat(Opal.to_a(this.sexp)),$c=($c=($b=[].concat(Opal.to_a(args))).length-1)<0?0:$c,rest=$slice.call($b,0,$c),last_child=null==$b[$c]?nil:$b[$c],$truthy($truthy($ret_or_1=last_child)?["iter","block_pass"]["$include?"](last_child.$type()):$ret_or_1)?(this.iter=last_child,args=rest):this.iter=this.$s("js_tmp","null"),this.arglist=$send(this,"s",["arglist"].concat(Opal.to_a(args))),this.recvr=this.$s("self")},$BaseSuperNode_initialize$1.$$arity=-1),Opal.def($BaseSuperNode_compile_method_name$13,"$compile_using_send",$BaseSuperNode_compile_method_body$12=function(){return this.$helper("send2"),this.$push("$send2("),this.$compile_receiver(),this.$compile_method_body(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")},$BaseSuperNode_compile_method_body$12.$$arity=0),$BaseSuperNode_compile_method_name$13.$private(),Opal.def($BaseSuperNode_compile_method_name$13,"$def_scope",$BaseSuperNode_compile_method_body$12=function(){var self=this,$ret_or_2=nil;return self.def_scope=$truthy($ret_or_2=self.def_scope)?$ret_or_2:$truthy(self.$scope()["$def?"]())?self.$scope():self.$scope().$find_parent_def()},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$defined_check_param",$BaseSuperNode_compile_method_body$12=function(){return"false"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$implicit_arguments_param",$BaseSuperNode_compile_method_body$12=function(){return"false"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$method_id",$BaseSuperNode_compile_method_body$12=function(){return this.$def_scope().$mid().$to_s()},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$def_scope_identity",$BaseSuperNode_compile_method_body$12=function(){return this.$def_scope()["$identify!"](this.$def_scope().$mid())},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$allow_stubs",$BaseSuperNode_compile_method_body$12=function(){return"true"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$super_method_invocation",$BaseSuperNode_compile_method_body$12=function(){return this.$helper("find_super"),"$find_super(self, '"+this.$method_id()+"', "+this.$def_scope_identity()+", "+this.$defined_check_param()+", "+this.$allow_stubs()+")"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$super_block_invocation",$BaseSuperNode_compile_method_body$12=function(){var $a,$$11,chain,cur_defn;return this.$helper("find_block_super"),$a=this.$scope().$super_chain(),chain=null==($a=Opal.to_ary($a))[0]?nil:$a[0],cur_defn=null==$a[1]?nil:$a[1],"$find_block_super(self, "+(null==$a[2]?nil:$a[2])+", ("+$send(chain,"map",[],(($$11=function(c){null==$$11.$$s||$$11.$$s;return null==c&&(c=nil),c+".$$def"}).$$s=this,$$11.$$arity=1,$$11)).$join(" || ")+" || "+cur_defn+"), "+this.$defined_check_param()+", "+this.$implicit_arguments_param()+")"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$compile_method_body",$BaseSuperNode_compile_method_body$12=function(){return this.$push(", "),$truthy(this.$scope()["$def?"]())?this.$push(this.$super_method_invocation()):$truthy(this.$scope()["$iter?"]())?this.$push(this.$super_block_invocation()):this.$raise("super must be called from method body or block")},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$compile_method_name",$BaseSuperNode_compile_method_name$13=function(){var $a,mid;return $truthy(this.$scope()["$def?"]())?this.$push(", '"+this.$method_id()+"'"):$truthy(this.$scope()["$iter?"]())?($a=this.$scope().$super_chain(),null==($a=Opal.to_ary($a))[0]||$a[0],null==$a[1]||$a[1],mid=null==$a[2]?nil:$a[2],this.$push(", "+mid)):nil},$BaseSuperNode_compile_method_name$13.$$arity=0)}($nesting[0],$$($nesting,"CallNode"),$nesting),function($base,$DefinedSuperNode_compile$16,$DefinedSuperNode_defined_check_param$15){[$DefinedSuperNode_compile$16=$klass($base,$DefinedSuperNode_compile$16,"DefinedSuperNode")].concat($DefinedSuperNode_defined_check_param$15),$DefinedSuperNode_compile$16.$handle("defined_super"),Opal.def($DefinedSuperNode_compile$16,"$allow_stubs",$DefinedSuperNode_defined_check_param$15=function(){return"false"},$DefinedSuperNode_defined_check_param$15.$$arity=0),Opal.def($DefinedSuperNode_compile$16,"$defined_check_param",$DefinedSuperNode_defined_check_param$15=function(){return"true"},$DefinedSuperNode_defined_check_param$15.$$arity=0),Opal.def($DefinedSuperNode_compile$16,"$compile",$DefinedSuperNode_compile$16=function(){return this.$compile_receiver(),this.$compile_method_body(),this.$wrap("((",') != null ? "super" : nil)')},$DefinedSuperNode_compile$16.$$arity=0)}($nesting[0],$$($nesting,"BaseSuperNode"),$nesting),function($base,$SuperNode_compile$18,$parent_nesting){var $SuperNode_initialize$17;[$SuperNode_compile$18=$klass($base,$SuperNode_compile$18,"SuperNode")].concat($parent_nesting),$SuperNode_compile$18.$handle("super"),Opal.def($SuperNode_compile$18,"$initialize",$SuperNode_initialize$17=function($a){var $zuper_ii,$iter=$SuperNode_initialize$17.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($SuperNode_initialize$17.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$SuperNode_initialize$17,!1,!0),"initialize",$zuper,$iter),$truthy(this.$scope()["$def?"]())?this.$scope()["$uses_block!"]():nil},$SuperNode_initialize$17.$$arity=-1),Opal.def($SuperNode_compile$18,"$compile",$SuperNode_compile$18=function(){return this.$compile_using_send()},$SuperNode_compile$18.$$arity=0)}($nesting[0],$$($nesting,"BaseSuperNode"),$nesting),function($base,$ZsuperNode_block_name$23,$ZsuperNode_compile_arguments$22){var $ZsuperNode_initialize$20,$ZsuperNode_block_name$23=$klass($base,$ZsuperNode_block_name$23,"ZsuperNode"),$nesting=[$ZsuperNode_block_name$23].concat($ZsuperNode_compile_arguments$22);return $ZsuperNode_block_name$23.$handle("zsuper"),Opal.def($ZsuperNode_block_name$23,"$implicit_arguments_param",$ZsuperNode_compile_arguments$22=function(){return"true"},$ZsuperNode_compile_arguments$22.$$arity=0),Opal.def($ZsuperNode_block_name$23,"$initialize",$ZsuperNode_initialize$20=function($a){var $zuper_ii,$iter=$ZsuperNode_initialize$20.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($ZsuperNode_initialize$20.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$ZsuperNode_initialize$20,!1,!0),"initialize",$zuper,$iter),this.$iter().$type()["$=="]("iter")?nil:(this.$scope()["$uses_block!"](),this.iter=this.$s("js_tmp","$iter"))},$ZsuperNode_initialize$20.$$arity=-1),Opal.def($ZsuperNode_block_name$23,"$compile",$ZsuperNode_compile_arguments$22=function(){var block_pass,rhs,self=this,lhs=nil,implicit_args=nil,$ret_or_3=nil;return $truthy(self.$def_scope())&&(lhs=[!0],$send(self.$def_scope(),"uses_zuper=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),implicit_args=[self.$s("js_tmp","$zuper")],$truthy($truthy($ret_or_3=self.$block_name())?self.$iter()["$!"]():$ret_or_3)&&(block_pass=self.$s("block_pass",self.$s("lvar",self.$block_name())),implicit_args["$<<"](block_pass)),self.arglist=$send(self,"s",["arglist"].concat(Opal.to_a(implicit_args)))),self.$compile_using_send()},$ZsuperNode_compile_arguments$22.$$arity=0),Opal.def($ZsuperNode_block_name$23,"$compile_arguments",$ZsuperNode_compile_arguments$22=function(){return this.$push(", "),$truthy(this.$arglist().$children()["$empty?"]())?this.$push("[]"):this.$push(this.$expr(this.$arglist()))},$ZsuperNode_compile_arguments$22.$$arity=0),Opal.def($ZsuperNode_block_name$23,"$block_name",$ZsuperNode_block_name$23=function(){var self=this,$case=nil;return $case=self.$def_scope(),$$$($$$($$($nesting,"Opal"),"Nodes"),"IterNode")["$==="]($case)||$$$($$$($$($nesting,"Opal"),"Nodes"),"DefNode")["$==="]($case)?self.$def_scope().$block_name():self.$raise("Don't know what to do with super in the scope "+self.$def_scope())},$ZsuperNode_block_name$23.$$arity=0),nil&&"block_name"}($nesting[0],$$($nesting,"SuperNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/version"]=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return Opal.const_set($nesting[0],"VERSION","1.3.0.dev")}($nesting[0],$nesting)},Opal.modules["opal/nodes/top"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$push","$version_comment","$opening","$in_scope","$use_strict?","$compiler","$line","$stmt","$stmts","$is_a?","$eval?","$add_temp","$add_used_helpers","$add_used_operators","$to_vars","$scope","$compile_method_stubs","$compile_irb_vars","$compile_end_construct","$closing","$requirable?","$inspect","$module_name","$file","$esm?","$returns","$body","$irb?","$each","$to_a","$helpers","$operator_helpers","$[]","$method_missing?","$method_calls","$join","$map","$empty?","$eof_content"]),self.$require("pathname"),self.$require("opal/version"),self.$require("opal/nodes/scope"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$TopNode_version_comment$14,$TopNode_compile_end_construct$13){var $TopNode_version_comment$14=$klass($base,$TopNode_version_comment$14,"TopNode"),$nesting=[$TopNode_version_comment$14].concat($TopNode_compile_end_construct$13);return $TopNode_version_comment$14.$handle("top"),$TopNode_version_comment$14.$children("body"),Opal.def($TopNode_version_comment$14,"$compile",$TopNode_compile_end_construct$13=function(){var $$2;return this.$push(this.$version_comment()),this.$opening(),$send(this,"in_scope",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s,body_code=nil;return $truthy(self.$compiler()["$use_strict?"]())&&self.$line('"use strict";'),body_code=self.$stmt(self.$stmts()),$truthy(body_code["$is_a?"]($$($nesting,"Array")))||(body_code=[body_code]),$truthy(self.$compiler()["$eval?"]())?self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(self.$add_temp("self = Opal.top"),self.$add_temp("$nesting = []")),self.$add_temp("nil = Opal.nil"),self.$add_temp("$$$ = Opal.$$$"),self.$add_temp("$$ = Opal.$$"),self.$add_used_helpers(),self.$add_used_operators(),self.$line(self.$scope().$to_vars()),self.$compile_method_stubs(),self.$compile_irb_vars(),self.$compile_end_construct(),self.$line(body_code)}).$$s=this,$$2.$$arity=0,$$2)),this.$closing()},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$opening",$TopNode_compile_end_construct$13=function(){return $truthy(this.$compiler()["$requirable?"]())?this.$line("Opal.modules["+$$$($$($nesting,"Opal"),"Compiler").$module_name(this.$compiler().$file()).$inspect()+"] = function(Opal) {"):$truthy(this.$compiler()["$eval?"]())?this.$line("(function(Opal, self) {"):$truthy(this.$compiler()["$esm?"]())?this.$line("export default (function(Opal) {"):this.$line("(function(Opal) {")},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$closing",$TopNode_compile_end_construct$13=function(){return $truthy(this.$compiler()["$requirable?"]())?this.$line("};\n"):$truthy(this.$compiler()["$eval?"]())?this.$line("})(Opal, self)"):this.$line("})(Opal);\n")},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$stmts",$TopNode_compile_end_construct$13=function(){return this.$compiler().$returns(this.$body())},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$compile_irb_vars",$TopNode_compile_end_construct$13=function(){return $truthy(this.$compiler()["$irb?"]())?this.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):nil},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$add_used_helpers",$TopNode_compile_end_construct$13=function(){var $$8;return $send(this.$compiler().$helpers().$to_a(),"each",[],(($$8=function(h){var self=null==$$8.$$s?this:$$8.$$s;return null==h&&(h=nil),self.$add_temp("$"+h+" = Opal."+h)}).$$s=this,$$8.$$arity=1,$$8))},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$add_used_operators",$TopNode_compile_end_construct$13=function(){var $$10,operators=this.$compiler().$operator_helpers().$to_a();return $send(operators,"each",[],(($$10=function(op){var name,self=null==$$10.$$s?this:$$10.$$s;return null==op&&(op=nil),name=$$$($$$($$($nesting,"Nodes"),"CallNode"),"OPERATORS")["$[]"](op),self.$line("function $rb_"+name+"(lhs, rhs) {"),self.$line(" return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs "+op+" rhs : lhs['$"+op+"'](rhs);"),self.$line("}")}).$$s=this,$$10.$$arity=1,$$10))},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$compile_method_stubs",$TopNode_compile_end_construct$13=function(){var $$12,calls=nil,stubs=nil;return $truthy(this.$compiler()["$method_missing?"]())?(calls=this.$compiler().$method_calls(),stubs=$send(calls.$to_a(),"map",[],(($$12=function(k){null==$$12.$$s||$$12.$$s;return null==k&&(k=nil),"'$"+k+"'"}).$$s=this,$$12.$$arity=1,$$12)).$join(", "),$truthy(stubs["$empty?"]())?nil:this.$line("Opal.add_stubs(["+stubs+"]);")):nil},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$compile_end_construct",$TopNode_compile_end_construct$13=function(){var content=nil;return $truthy(content=this.$compiler().$eof_content())?(this.$line("var $__END__ = Opal.Object.$new();"),this.$line("$__END__.$read = function() { return "+content.$inspect()+"; };")):nil},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$version_comment",$TopNode_version_comment$14=function(){return"/* Generated by Opal "+$$$($$($nesting,"Opal"),"VERSION")+" */"},$TopNode_version_comment$14.$$arity=0),nil&&"version_comment"}($nesting[0],$$($nesting,"ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/while"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$js_truthy","$test","$with_temp","$in_while","$compiler","$wrap_in_closure?","$[]=","$while_loop","$-","$indent","$stmt","$body","$uses_redo?","$compile_with_redo","$compile_without_redo","$wrap","$private","$push","$compile_while","$while_open","$while_close","$line","$[]","$expr?","$recv?"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$WhileNode_wrap_in_closure$ques$12,$WhileNode_uses_redo$ques$11){[$WhileNode_wrap_in_closure$ques$12=$klass($base,$WhileNode_wrap_in_closure$ques$12,"WhileNode")].concat($WhileNode_uses_redo$ques$11),$WhileNode_wrap_in_closure$ques$12.$handle("while"),$WhileNode_wrap_in_closure$ques$12.$children("test","body"),Opal.def($WhileNode_wrap_in_closure$ques$12,"$compile",$WhileNode_uses_redo$ques$11=function(){var $$2,test_code=this.$js_truthy(this.$test());return $send(this,"with_temp",[],(($$2=function(redo_var){var $$3,self=null==$$2.$$s?this:$$2.$$s;return null==redo_var&&(redo_var=nil),$send(self.$compiler(),"in_while",[],(($$3=function(){var $$4,body_code,self=null==$$3.$$s?this:$$3.$$s,$writer=nil;return $truthy(self["$wrap_in_closure?"]())&&($writer=["closure",!0],$send(self.$while_loop(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=["redo_var",redo_var],$send(self.$while_loop(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],body_code=$send(self,"indent",[],(($$4=function(){var self=null==$$4.$$s?this:$$4.$$s;return self.$stmt(self.$body())}).$$s=self,$$4.$$arity=0,$$4)),$truthy(self["$uses_redo?"]())?self.$compile_with_redo(test_code,body_code,redo_var):self.$compile_without_redo(test_code,body_code)}).$$s=self,$$3.$$arity=0,$$3))}).$$s=this,$$2.$$arity=1,$$2)),$truthy(this["$wrap_in_closure?"]())?this.$wrap("(function() {","; return nil; })()"):nil},$WhileNode_uses_redo$ques$11.$$arity=0),$WhileNode_wrap_in_closure$ques$12.$private(),Opal.def($WhileNode_wrap_in_closure$ques$12,"$compile_with_redo",$WhileNode_uses_redo$ques$11=function(test_code,body_code,redo_var){return this.$push(redo_var+" = false; "),this.$compile_while([redo_var," || ",test_code],[redo_var+" = false;",body_code])},$WhileNode_uses_redo$ques$11.$$arity=3),Opal.def($WhileNode_wrap_in_closure$ques$12,"$compile_without_redo",$WhileNode_uses_redo$ques$11=function(test_code,body_code){return this.$compile_while([test_code],[body_code])},$WhileNode_uses_redo$ques$11.$$arity=2),Opal.def($WhileNode_wrap_in_closure$ques$12,"$compile_while",$WhileNode_uses_redo$ques$11=function(test_code,body_code){var $$8;return $send(this,"push",[this.$while_open()].concat(Opal.to_a(test_code)).concat([this.$while_close()])),$send(this,"indent",[],(($$8=function(){var self=null==$$8.$$s?this:$$8.$$s;return $send(self,"line",Opal.to_a(body_code))}).$$s=this,$$8.$$arity=0,$$8)),this.$line("}")},$WhileNode_uses_redo$ques$11.$$arity=2),Opal.def($WhileNode_wrap_in_closure$ques$12,"$while_open",$WhileNode_uses_redo$ques$11=function(){return"while ("},$WhileNode_uses_redo$ques$11.$$arity=0),Opal.def($WhileNode_wrap_in_closure$ques$12,"$while_close",$WhileNode_uses_redo$ques$11=function(){return") {"},$WhileNode_uses_redo$ques$11.$$arity=0),Opal.def($WhileNode_wrap_in_closure$ques$12,"$uses_redo?",$WhileNode_uses_redo$ques$11=function(){return this.$while_loop()["$[]"]("use_redo")},$WhileNode_uses_redo$ques$11.$$arity=0),Opal.def($WhileNode_wrap_in_closure$ques$12,"$wrap_in_closure?",$WhileNode_wrap_in_closure$ques$12=function(){var $ret_or_1;return $truthy($ret_or_1=this["$expr?"]())?$ret_or_1:this["$recv?"]()},$WhileNode_wrap_in_closure$ques$12.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$UntilNode_while_close$14,$UntilNode_while_open$13){[$UntilNode_while_close$14=$klass($base,$UntilNode_while_close$14,"UntilNode")].concat($UntilNode_while_open$13),$UntilNode_while_close$14.$handle("until"),$UntilNode_while_close$14.$private(),Opal.def($UntilNode_while_close$14,"$while_open",$UntilNode_while_open$13=function(){return"while (!("},$UntilNode_while_open$13.$$arity=0),Opal.def($UntilNode_while_close$14,"$while_close",$UntilNode_while_close$14=function(){return")) {"},$UntilNode_while_close$14.$$arity=0)}($nesting[0],$$($nesting,"WhileNode"),$nesting),function($base,$WhilePostNode_while_close$17,$WhilePostNode_compile_while$15){[$WhilePostNode_while_close$17=$klass($base,$WhilePostNode_while_close$17,"WhilePostNode")].concat($WhilePostNode_compile_while$15),$WhilePostNode_while_close$17.$handle("while_post"),$WhilePostNode_while_close$17.$private(),Opal.def($WhilePostNode_while_close$17,"$compile_while",$WhilePostNode_compile_while$15=function(test_code,body_code){var $$16;return this.$push("do {"),$send(this,"indent",[],(($$16=function(){var self=null==$$16.$$s?this:$$16.$$s;return $send(self,"line",Opal.to_a(body_code))}).$$s=this,$$16.$$arity=0,$$16)),$send(this,"line",["} ",this.$while_open()].concat(Opal.to_a(test_code)).concat([this.$while_close()]))},$WhilePostNode_compile_while$15.$$arity=2),Opal.def($WhilePostNode_while_close$17,"$while_close",$WhilePostNode_while_close$17=function(){return");"},$WhilePostNode_while_close$17.$$arity=0)}($nesting[0],$$($nesting,"WhileNode"),$nesting),function($base,$UntilPostNode_while_close$19,$UntilPostNode_while_open$18){$UntilPostNode_while_close$19=$klass($base,$UntilPostNode_while_close$19,"UntilPostNode"),[$UntilPostNode_while_close$19].concat($UntilPostNode_while_open$18);return $UntilPostNode_while_close$19.$handle("until_post"),$UntilPostNode_while_close$19.$private(),Opal.def($UntilPostNode_while_close$19,"$while_open",$UntilPostNode_while_open$18=function(){return"while(!("},$UntilPostNode_while_open$18.$$arity=0),Opal.def($UntilPostNode_while_close$19,"$while_close",$UntilPostNode_while_close$19=function(){return"));"},$UntilPostNode_while_close$19.$$arity=0),nil&&"while_close"}($nesting[0],$$($nesting,"WhilePostNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/hash"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$handle","$attr_accessor","$each","$children","$type","$===","$<<","$[]","$all?","$keys","$include?","$has_kwsplat","$compile_merge","$simple_keys?","$compile_hash2","$compile_hash","$helper","$==","$empty?","$expr","$s","$each_with_index","$push","$wrap","$times","$size","$inspect","$to_s","$values","$[]=","$-","$join","$value"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$HashNode_compile_hash2$11,$HashNode_compile_hash$9){var $HashNode_initialize$1;[$HashNode_compile_hash2$11=$klass($base,$HashNode_compile_hash2$11,"HashNode")].concat($HashNode_compile_hash$9),$HashNode_compile_hash2$11.$handle("hash"),$HashNode_compile_hash2$11.$attr_accessor("has_kwsplat","keys","values"),Opal.def($HashNode_compile_hash2$11,"$initialize",$HashNode_initialize$1=function($a){var $$2,$zuper_ii,$iter=$HashNode_initialize$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($HashNode_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$HashNode_initialize$1,!1,!0),"initialize",$zuper,$iter),this.has_kwsplat=!1,this.keys=[],this.values=[],$send(this.$children(),"each",[],(($$2=function(child){var self=null==$$2.$$s?this:$$2.$$s,$case=nil;return null==self.keys&&(self.keys=nil),null==self.values&&(self.values=nil),null==child&&(child=nil),$case=child.$type(),"kwsplat"["$==="]($case)?self.has_kwsplat=!0:"pair"["$==="]($case)?(self.keys["$<<"](child.$children()["$[]"](0)),self.values["$<<"](child.$children()["$[]"](1))):nil}).$$s=this,$$2.$$arity=1,$$2))},$HashNode_initialize$1.$$arity=-1),Opal.def($HashNode_compile_hash2$11,"$simple_keys?",$HashNode_compile_hash$9=function(){var $$4;return $send(this.$keys(),"all?",[],(($$4=function(key){null==$$4.$$s||$$4.$$s;return null==key&&(key=nil),["sym","str"]["$include?"](key.$type())}).$$s=this,$$4.$$arity=1,$$4))},$HashNode_compile_hash$9.$$arity=0),Opal.def($HashNode_compile_hash2$11,"$compile",$HashNode_compile_hash$9=function(){return $truthy(this.$has_kwsplat())?this.$compile_merge():$truthy(this["$simple_keys?"]())?this.$compile_hash2():this.$compile_hash()},$HashNode_compile_hash$9.$$arity=0),Opal.def($HashNode_compile_hash2$11,"$compile_merge",$HashNode_compile_hash$9=function(){var $a,$$7,$$8,result=nil,seq=nil;return this.$helper("hash"),result=($a=[[],[]])[0],seq=$a[1],$send(this.$children(),"each",[],(($$7=function(child){var self=null==$$7.$$s?this:$$7.$$s;return null==child&&(child=nil),child.$type()["$=="]("kwsplat")?($truthy(seq["$empty?"]())||result["$<<"](self.$expr($send(self,"s",["hash"].concat(Opal.to_a(seq))))),result["$<<"](self.$expr(child)),seq=[]):seq["$<<"](child)}).$$s=this,$$7.$$arity=1,$$7)),$truthy(seq["$empty?"]())||result["$<<"](this.$expr($send(this,"s",["hash"].concat(Opal.to_a(seq))))),$send(result,"each_with_index",[],(($$8=function(fragment,idx){var self=null==$$8.$$s?this:$$8.$$s;return null==fragment&&(fragment=nil),null==idx&&(idx=nil),idx["$=="](0)?self.$push(fragment):self.$push(".$merge(",fragment,")")}).$$s=this,$$8.$$arity=2,$$8))},$HashNode_compile_hash$9.$$arity=0),Opal.def($HashNode_compile_hash2$11,"$compile_hash",$HashNode_compile_hash$9=function(){var $$10;return this.$helper("hash"),$send(this.$children(),"each_with_index",[],(($$10=function($a,idx){var key,value,self=null==$$10.$$s?this:$$10.$$s;return null==$a&&($a=nil),null==idx&&(idx=nil),$a=$a.$children(),key=null==($a=Opal.to_ary($a))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],idx["$=="](0)||self.$push(", "),self.$push(self.$expr(key),", ",self.$expr(value))}).$$s=this,$$10.$$arity=2,$$10)),this.$wrap("$hash(",")")},$HashNode_compile_hash$9.$$arity=0),Opal.def($HashNode_compile_hash2$11,"$compile_hash2",$HashNode_compile_hash2$11=function(){var $$12,$$13,hash_obj=nil,hash_keys=nil,$a=[$hash2([],{}),[]],hash_obj=$a[0],hash_keys=$a[1];return this.$helper("hash2"),$send(this.$keys().$size(),"times",[],(($$12=function(rhs){var key,self=null==$$12.$$s?this:$$12.$$s,lhs=nil;return null==rhs&&(rhs=nil),key=self.$keys()["$[]"](rhs).$children()["$[]"](0).$to_s().$inspect(),$truthy(hash_obj["$include?"](key))||hash_keys["$<<"](key),lhs=[key,self.$expr(self.$values()["$[]"](rhs))],$send(hash_obj,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}).$$s=this,$$12.$$arity=1,$$12)),$send(hash_keys,"each_with_index",[],(($$13=function(key,idx){var self=null==$$13.$$s?this:$$13.$$s;return null==key&&(key=nil),null==idx&&(idx=nil),idx["$=="](0)||self.$push(", "),self.$push(key+": "),self.$push(hash_obj["$[]"](key))}).$$s=this,$$13.$$arity=2,$$13)),this.$wrap("$hash2(["+hash_keys.$join(", ")+"], {","})")},$HashNode_compile_hash2$11.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$KwSplatNode_compile$14,$parent_nesting){$KwSplatNode_compile$14=$klass($base,$KwSplatNode_compile$14,"KwSplatNode"),[$KwSplatNode_compile$14].concat($parent_nesting);return $KwSplatNode_compile$14.$handle("kwsplat"),$KwSplatNode_compile$14.$children("value"),Opal.def($KwSplatNode_compile$14,"$compile",$KwSplatNode_compile$14=function(){return this.$push("Opal.to_hash(",this.$expr(this.$value()),")")},$KwSplatNode_compile$14.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/array"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$empty?","$children","$push","$each","$==","$type","$expr","$<<","$fragment"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ArrayNode_compile$1,$parent_nesting){$ArrayNode_compile$1=$klass($base,$ArrayNode_compile$1,"ArrayNode"),[$ArrayNode_compile$1].concat($parent_nesting);return $ArrayNode_compile$1.$handle("array"),Opal.def($ArrayNode_compile$1,"$compile",$ArrayNode_compile$1=function(){var $a,$$2,join,code=nil,work=nil;return $truthy(this.$children()["$empty?"]())?this.$push("[]"):(code=($a=[[],[]])[0],work=$a[1],$send(this.$children(),"each",[],(($$2=function(child){var splat,part,self=null==$$2.$$s?this:$$2.$$s;return null==child&&(child=nil),splat=child.$type()["$=="]("splat"),part=self.$expr(child),$truthy(splat)?($truthy(work["$empty?"]())?($truthy(code["$empty?"]())?code["$<<"](self.$fragment("[].concat(")):code["$<<"](self.$fragment(".concat(")))["$<<"](part)["$<<"](self.$fragment(")")):($truthy(code["$empty?"]())?code["$<<"](self.$fragment("["))["$<<"](work)["$<<"](self.$fragment("]")):code["$<<"](self.$fragment(".concat(["))["$<<"](work)["$<<"](self.$fragment("])")),code["$<<"](self.$fragment(".concat("))["$<<"](part)["$<<"](self.$fragment(")"))),work=[]):($truthy(work["$empty?"]())||work["$<<"](self.$fragment(", ")),work["$<<"](part))}).$$s=this,$$2.$$arity=1,$$2)),$truthy(work["$empty?"]())||(join=[this.$fragment("["),work,this.$fragment("]")],$truthy(code["$empty?"]())?code=join:code.$push([this.$fragment(".concat("),join,this.$fragment(")")])),this.$push(code))},$ArrayNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/defined"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$slice=Opal.slice,$send=Opal.send,$range=Opal.range;return Opal.add_stubs(["$require","$handle","$children","$type","$value","$===","$push","$inspect","$to_s","$==","$size","$[]","$compile_defined_send","$wrap","$compile_defined_ivar","$compile_defined_super","$compile_defined_yield","$compile_defined_xstr","$compile_defined_const","$compile_defined_cvar","$compile_defined_gvar","$compile_defined_back_ref","$compile_defined_nth_ref","$compile_defined_array","$respond_to?","$__send__","$new_temp","$scope","$expr","$wrap_with_try_catch","$mid_to_jsid","$compile_defined","$compile_send_recv_doesnt_raise","$each","$s","$uses_block!","$block_name","$find_parent_def","$nil?","$class_variable_owner","$helper","$include?","$each_with_index"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$DefinedNode_compile_defined_array$16,$DefinedNode_compile_defined_nth_ref$15){$DefinedNode_compile_defined_array$16=$klass($base,$DefinedNode_compile_defined_array$16,"DefinedNode"),[$DefinedNode_compile_defined_array$16].concat($DefinedNode_compile_defined_nth_ref$15);return $DefinedNode_compile_defined_array$16.$handle("defined?"),$DefinedNode_compile_defined_array$16.$children("value"),Opal.def($DefinedNode_compile_defined_array$16,"$compile",$DefinedNode_compile_defined_nth_ref$15=function(){var self=this,$case=nil,$ret_or_1=nil;return $case=self.$value().$type(),"self"["$==="]($case)||"nil"["$==="]($case)||"false"["$==="]($case)||"true"["$==="]($case)?self.$push(self.$value().$type().$to_s().$inspect()):"lvasgn"["$==="]($case)||"ivasgn"["$==="]($case)||"gvasgn"["$==="]($case)||"cvasgn"["$==="]($case)||"casgn"["$==="]($case)||"op_asgn"["$==="]($case)||"or_asgn"["$==="]($case)||"and_asgn"["$==="]($case)?self.$push("'assignment'"):"lvar"["$==="]($case)?self.$push("'local-variable'"):"begin"["$==="]($case)?$truthy($truthy($ret_or_1=self.$value().$children().$size()["$=="](1))?self.$value().$children()["$[]"](0).$type()["$=="]("masgn"):$ret_or_1)?self.$push("'assignment'"):self.$push("'expression'"):"send"["$==="]($case)?(self.$compile_defined_send(self.$value()),self.$wrap("("," ? 'method' : nil)")):"ivar"["$==="]($case)?(self.$compile_defined_ivar(self.$value()),self.$wrap("("," ? 'instance-variable' : nil)")):"zsuper"["$==="]($case)||"super"["$==="]($case)?self.$compile_defined_super():"yield"["$==="]($case)?(self.$compile_defined_yield(),self.$wrap("("," ? 'yield' : nil)")):"xstr"["$==="]($case)?self.$compile_defined_xstr(self.$value()):"const"["$==="]($case)?(self.$compile_defined_const(self.$value()),self.$wrap("("," ? 'constant' : nil)")):"cvar"["$==="]($case)?(self.$compile_defined_cvar(self.$value()),self.$wrap("("," ? 'class variable' : nil)")):"gvar"["$==="]($case)?(self.$compile_defined_gvar(self.$value()),self.$wrap("("," ? 'global-variable' : nil)")):"back_ref"["$==="]($case)?(self.$compile_defined_back_ref(),self.$wrap("("," ? 'global-variable' : nil)")):"nth_ref"["$==="]($case)?(self.$compile_defined_nth_ref(),self.$wrap("("," ? 'global-variable' : nil)")):"array"["$==="]($case)?(self.$compile_defined_array(self.$value()),self.$wrap("("," ? 'expression' : nil)")):self.$push("'expression'")},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined",$DefinedNode_compile_defined_nth_ref$15=function(node){var node_tmp,type=node.$type();return $truthy(this["$respond_to?"]("compile_defined_"+type))?this.$__send__("compile_defined_"+type,node):(node_tmp=this.$scope().$new_temp(),this.$push("("+node_tmp+" = ",this.$expr(node),")"),node_tmp)},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$wrap_with_try_catch",$DefinedNode_compile_defined_nth_ref$15=function(code){var returning_tmp=this.$scope().$new_temp();return this.$push("("+returning_tmp+" = (function() { try {"),this.$push(" return "+code+";"),this.$push("} catch ($err) {"),this.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),this.$push(" try {"),this.$push(" return false;"),this.$push(" } finally { Opal.pop_exception() }"),this.$push(" } else { throw $err; }"),this.$push("}})())"),returning_tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_send_recv_doesnt_raise",$DefinedNode_compile_defined_nth_ref$15=function(recv_code){return this.$wrap_with_try_catch(recv_code)},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_send",$DefinedNode_compile_defined_nth_ref$15=function($a){var $$6,recv_value_tmp,meth_tmp,recv=nil,method_name=nil,recv_code=nil,recv_tmp=nil,$a=[].concat(Opal.to_a($a)),recv=null==$a[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],args=$slice.call($a,2),mid=this.$mid_to_jsid(method_name.$to_s());return $truthy(recv)?(recv_code=this.$compile_defined(recv),this.$push(" && "),recv.$type()["$=="]("send")&&(recv_code=this.$compile_send_recv_doesnt_raise(recv_code),this.$push(" && ")),recv_tmp=this.$scope().$new_temp(),this.$push("("+recv_tmp+" = ",recv_code,", "+recv_tmp+") && ")):recv_tmp="self",recv_value_tmp=this.$scope().$new_temp(),this.$push("("+recv_value_tmp+" = "+recv_tmp+") && "),meth_tmp=this.$scope().$new_temp(),this.$push("((("+meth_tmp+" = "+recv_value_tmp+mid+") && !"+meth_tmp+".$$stub)"),this.$push(" || "+recv_value_tmp+"['$respond_to_missing?']('"+method_name+"'))"),$send(args,"each",[],(($$6=function(arg){var self=null==$$6.$$s?this:$$6.$$s,$case=nil;return null==arg&&(arg=nil),$case=arg.$type(),"block_pass"["$==="]($case)?nil:(self.$push(" && "),self.$compile_defined(arg))}).$$s=this,$$6.$$arity=1,$$6)),this.$wrap("(",")"),meth_tmp+"()"},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_ivar",$DefinedNode_compile_defined_nth_ref$15=function(node){var name=node.$children()["$[]"](0).$to_s()["$[]"]($range(1,-1,!1)),tmp=this.$scope().$new_temp();return this.$push("("+tmp+" = self['"+name+"'], "+tmp+" != null && "+tmp+" !== nil)"),tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_super",$DefinedNode_compile_defined_nth_ref$15=function(){return this.$push(this.$expr(this.$s("defined_super")))},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_yield",$DefinedNode_compile_defined_nth_ref$15=function(){var block_name,self=this,$ret_or_2=nil;return self.$scope()["$uses_block!"](),block_name=$truthy($ret_or_2=self.$scope().$block_name())?$ret_or_2:self.$scope().$find_parent_def().$block_name(),self.$push("("+block_name+" != null && "+block_name+" !== nil)"),block_name},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_xstr",$DefinedNode_compile_defined_nth_ref$15=function(node){return this.$push("(typeof(",this.$expr(node),') !== "undefined")')},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_const",$DefinedNode_compile_defined_nth_ref$15=function($a){var const_scope_tmp,const_scope=nil,$a=[].concat(Opal.to_a($a)),const_scope=null==$a[0]?nil:$a[0],const_name=null==$a[1]?nil:$a[1],const_tmp=this.$scope().$new_temp();return $truthy(const_scope["$nil?"]())?this.$push("("+const_tmp+" = $$($nesting, '"+const_name+"', 'skip_raise'))"):const_scope["$=="](this.$s("cbase"))?this.$push("("+const_tmp+" = $$$('::', '"+const_name+"', 'skip_raise'))"):(const_scope_tmp=this.$compile_defined(const_scope),this.$push(" && ("+const_tmp+" = $$$("+const_scope_tmp+", '"+const_name+"', 'skip_raise'))")),const_tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_cvar",$DefinedNode_compile_defined_nth_ref$15=function($a){var $a=[].concat(Opal.to_a($a)),cvar_name=null==$a[0]?nil:$a[0],cvar_tmp=(null==$a[1]||$a[1],this.$scope().$new_temp());return this.$push("("+cvar_tmp+" = "+this.$class_variable_owner()+".$$cvars['"+cvar_name+"'], "+cvar_tmp+" != null)"),cvar_tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_gvar",$DefinedNode_compile_defined_nth_ref$15=function(node){var gvar_temp,name=nil;return this.$helper("gvars"),name=node.$children()["$[]"](0).$to_s()["$[]"]($range(1,-1,!1)),gvar_temp=this.$scope().$new_temp(),$truthy(["~","!"]["$include?"](name))?this.$push("("+gvar_temp+" = ",this.$expr(node)," || true)"):this.$push("("+gvar_temp+" = $gvars["+name.$inspect()+"], "+gvar_temp+" != null)"),gvar_temp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_back_ref",$DefinedNode_compile_defined_nth_ref$15=function(){var back_ref_temp;return this.$helper("gvars"),back_ref_temp=this.$scope().$new_temp(),this.$push("("+back_ref_temp+" = $gvars['~'], "+back_ref_temp+" != null && "+back_ref_temp+" !== nil)"),back_ref_temp},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_nth_ref",$DefinedNode_compile_defined_nth_ref$15=function(){var nth_ref_tmp;return this.$helper("gvars"),nth_ref_tmp=this.$scope().$new_temp(),this.$push("("+nth_ref_tmp+" = $gvars['~'], "+nth_ref_tmp+" != null && "+nth_ref_tmp+" != nil)"),nth_ref_tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_array",$DefinedNode_compile_defined_array$16=function(node){var $$17;return $send(node.$children(),"each_with_index",[],(($$17=function(child,idx){var self=null==$$17.$$s?this:$$17.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),idx["$=="](0)||self.$push(" && "),self.$compile_defined(child)}).$$s=this,$$17.$$arity=2,$$17))},$DefinedNode_compile_defined_array$16.$$arity=1),nil&&"compile_defined_array"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/masgn"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$freeze","$handle","$children","$new_temp","$scope","$==","$type","$rhs","$push","$expr","$any?","$size","$compile_masgn","$lhs","$queue_temp","$take_while","$!=","$drop","$each_with_index","$compile_assignment","$empty?","$shift","$[]","$helper","$<<","$dup","$s","$!","$>=","$updated","$include?","$+","$last","$raise"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$MassAssignNode_compile_assignment$7,$MassAssignNode_compile_masgn$3){var $MassAssignNode_compile_assignment$7=$klass($base,$MassAssignNode_compile_assignment$7,"MassAssignNode"),$nesting=[$MassAssignNode_compile_assignment$7].concat($MassAssignNode_compile_masgn$3);return Opal.const_set($nesting[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),$MassAssignNode_compile_assignment$7.$handle("masgn"),$MassAssignNode_compile_assignment$7.$children("lhs","rhs"),Opal.def($MassAssignNode_compile_assignment$7,"$compile",$MassAssignNode_compile_masgn$3=function(){var $$2,rhs_len,self=this,retval=nil,array=self.$scope().$new_temp();return self.$rhs().$type()["$=="]("array")?(self.$push(array+" = ",self.$expr(self.$rhs())),rhs_len=$truthy($send(self.$rhs().$children(),"any?",[],(($$2=function(c){null==$$2.$$s||$$2.$$s;return null==c&&(c=nil),c.$type()["$=="]("splat")}).$$s=self,$$2.$$arity=1,$$2)))?nil:self.$rhs().$children().$size(),self.$compile_masgn(self.$lhs().$children(),array,rhs_len),self.$push(", "+array)):(self.$rhs().$type()["$=="]("begin"),retval=self.$scope().$new_temp(),self.$push(retval+" = ",self.$expr(self.$rhs())),self.$push(", "+array+" = Opal.to_ary("+retval+")"),self.$compile_masgn(self.$lhs().$children(),array),self.$push(", "+retval),self.$scope().$queue_temp(retval)),self.$scope().$queue_temp(array)},$MassAssignNode_compile_masgn$3.$$arity=0),Opal.def($MassAssignNode_compile_assignment$7,"$compile_masgn",$MassAssignNode_compile_masgn$3=function(lhs_items,array,len){var $$4,$$5,$$6,tmp,pre_splat=nil,post_splat=nil,splat=nil,part=nil;return null==len&&(len=nil),pre_splat=$send(lhs_items,"take_while",[],(($$4=function(child){null==$$4.$$s||$$4.$$s;return null==child&&(child=nil),child.$type()["$!="]("splat")}).$$s=this,$$4.$$arity=1,$$4)),post_splat=lhs_items.$drop(pre_splat.$size()),$send(pre_splat,"each_with_index",[],(($$5=function(child,idx){var self=null==$$5.$$s?this:$$5.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),self.$compile_assignment(child,array,idx,len)}).$$s=this,$$5.$$arity=2,$$5)),$truthy(post_splat["$empty?"]())?nil:(splat=post_splat.$shift(),$truthy(post_splat["$empty?"]())?$truthy(part=splat.$children()["$[]"](0))?(this.$helper("slice"),part=part.$dup()["$<<"](this.$s("js_tmp","$slice.call("+array+", "+pre_splat.$size()+")")),this.$push(", "),this.$push(this.$expr(part))):nil:(tmp=this.$scope().$new_temp(),this.$push(", "+tmp+" = "+array+".length - "+post_splat.$size()),this.$push(", "+tmp+" = ("+tmp+" < "+pre_splat.$size()+") ? "+pre_splat.$size()+" : "+tmp),$truthy(part=splat.$children()["$[]"](0))&&(this.$helper("slice"),part=part.$dup()["$<<"](this.$s("js_tmp","$slice.call("+array+", "+pre_splat.$size()+", "+tmp+")")),this.$push(", "),this.$push(this.$expr(part))),$send(post_splat,"each_with_index",[],(($$6=function(child,idx){var self=null==$$6.$$s?this:$$6.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),idx["$=="](0)?self.$compile_assignment(child,array,tmp):self.$compile_assignment(child,array,tmp+" + "+idx)}).$$s=this,$$6.$$arity=2,$$6)),this.$scope().$queue_temp(tmp)))},$MassAssignNode_compile_masgn$3.$$arity=-3),Opal.def($MassAssignNode_compile_assignment$7,"$compile_assignment",$MassAssignNode_compile_assignment$7=function(child,array,idx,lhs){var tmp,self=this,assign=nil,rhs=nil,part=nil;if(null==lhs&&(lhs=nil),assign=$truthy($truthy(rhs=lhs["$!"]())?rhs:(rhs=lhs,"number"==typeof(lhs=idx)&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))?self.$s("js_tmp","("+array+"["+idx+"] == null ? nil : "+array+"["+idx+"])"):self.$s("js_tmp",array+"["+idx+"]"),part=child.$updated(),$truthy($$($nesting,"SIMPLE_ASSIGNMENT")["$include?"](child.$type())))part=part.$updated(nil,$rb_plus(part.$children(),[assign]));else if(child.$type()["$=="]("send"))part=part.$updated(nil,$rb_plus(part.$children(),[assign]));else if(child.$type()["$=="]("attrasgn"))part.$last()["$<<"](assign);else{if(child.$type()["$=="]("mlhs"))return tmp=self.$scope().$new_temp(),self.$push(", ("+tmp+" = Opal.to_ary("+assign.$children()["$[]"](0)+")"),self.$compile_masgn(child.$children(),tmp),self.$push(")"),self.$scope().$queue_temp(tmp),nil;self.$raise("Bad child node in masgn LHS: "+child+". LHS: "+self.$lhs())}return self.$push(", "),self.$push(self.$expr(part))},$MassAssignNode_compile_assignment$7.$$arity=-4),nil&&"compile_assignment"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/arglist"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$each","$children","$==","$type","$expr","$empty?","$<<","$fragment","$push"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ArglistNode_compile$1,$parent_nesting){$ArglistNode_compile$1=$klass($base,$ArglistNode_compile$1,"ArglistNode"),[$ArglistNode_compile$1].concat($parent_nesting);return $ArglistNode_compile$1.$handle("arglist"),Opal.def($ArglistNode_compile$1,"$compile",$ArglistNode_compile$1=function(){var $$2,join,code=nil,work=nil,$a=[[],[]],code=$a[0],work=$a[1];return $send(this.$children(),"each",[],(($$2=function(current){var splat,arg,self=null==$$2.$$s?this:$$2.$$s;return null==current&&(current=nil),splat=current.$type()["$=="]("splat"),arg=self.$expr(current),$truthy(splat)?($truthy(work["$empty?"]())?$truthy(code["$empty?"]())?code["$<<"](arg):code["$<<"](self.$fragment(".concat("))["$<<"](arg)["$<<"](self.$fragment(")")):($truthy(code["$empty?"]())?code["$<<"](self.$fragment("["))["$<<"](work)["$<<"](self.$fragment("]")):code["$<<"](self.$fragment(".concat(["))["$<<"](work)["$<<"](self.$fragment("])")),code["$<<"](self.$fragment(".concat("))["$<<"](arg)["$<<"](self.$fragment(")"))),work=[]):($truthy(work["$empty?"]())||work["$<<"](self.$fragment(", ")),work["$<<"](arg))}).$$s=this,$$2.$$arity=1,$$2)),$truthy(work["$empty?"]())||(join=work,$truthy(code["$empty?"]())?code=join:code["$<<"](this.$fragment(".concat(["))["$<<"](join)["$<<"](this.$fragment("])"))),$send(this,"push",Opal.to_a(code))},$ArglistNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/x_string"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$range=Opal.range,$lambda=Opal.lambda;return Opal.add_stubs(["$handle","$unpack_return","$children","$strip_empty_children","$single_line?","$compile_single_line","$each","$compile_child","$recv?","$wrap","$push","$private","$type","$===","$source","$expression","$loc","$new","$scope","$expr","$raise","$shift","$empty?","$s","$==","$strip","$=~","$!","$pop","$extract_last_value","$rstrip","$expr?","$end_with?","$warning","$compiler","$line","$[]","$size","$none?","$first","$dup","$nil?","$any?","$last"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$XStringNode_strip_empty_children$10,$XStringNode_unpack_return$9){var $XStringNode_strip_empty_children$10=$klass($base,$XStringNode_strip_empty_children$10,"XStringNode"),$nesting=[$XStringNode_strip_empty_children$10].concat($XStringNode_unpack_return$9);return $XStringNode_strip_empty_children$10.$$prototype.should_add_semicolon=$XStringNode_strip_empty_children$10.$$prototype.returning=nil,$XStringNode_strip_empty_children$10.$handle("xstr"),Opal.def($XStringNode_strip_empty_children$10,"$compile",$XStringNode_unpack_return$9=function(){var $$2,unpacked_children,stripped_children;return this.should_add_semicolon=!1,unpacked_children=this.$unpack_return(this.$children()),stripped_children=this.$strip_empty_children(unpacked_children),$truthy(this["$single_line?"](stripped_children))?this.$compile_single_line(stripped_children):$send(unpacked_children,"each",[],(($$2=function(c){var self=null==$$2.$$s?this:$$2.$$s;return null==c&&(c=nil),self.$compile_child(c)}).$$s=this,$$2.$$arity=1,$$2)),$truthy(this["$recv?"]())&&this.$wrap("(",")"),$truthy(this.should_add_semicolon)?this.$push(";"):nil},$XStringNode_unpack_return$9.$$arity=0),$XStringNode_strip_empty_children$10.$private(),Opal.def($XStringNode_strip_empty_children$10,"$compile_child",$XStringNode_unpack_return$9=function(child){var self=this,$case=nil,value=nil;return $case=child.$type(),"str"["$==="]($case)?(value=child.$loc().$expression().$source(),self.$push($$($nesting,"Fragment").$new(value,self.$scope(),child))):"begin"["$==="]($case)||"gvar"["$==="]($case)||"ivar"["$==="]($case)||"nil"["$==="]($case)?self.$push(self.$expr(child)):self.$raise("Unsupported xstr part: "+child.$type())},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$compile_single_line",$XStringNode_unpack_return$9=function(children){var $$5,self=this,has_embeded_return=nil,first_child=nil,$ret_or_1=nil,first_value=nil,$ret_or_2=nil,last_child=nil,$ret_or_3=nil,last_value=nil,has_embeded_return=!1,first_child=children.$shift(),single_child=children["$empty?"]();return(first_child=$truthy($ret_or_1=first_child)?$ret_or_1:self.$s("nil")).$type()["$=="]("str")&&(first_value=first_child.$loc().$expression().$source().$strip(),has_embeded_return=first_value["$=~"](/^return\b/)),$truthy($truthy($ret_or_2=self.returning)?has_embeded_return["$!"]():$ret_or_2)&&self.$push("return "),(last_child=$truthy($ret_or_3=children.$pop())?$ret_or_3:first_child).$type()["$=="]("str")&&(last_value=self.$extract_last_value(last_child)),$truthy(single_child)||(self.should_add_semicolon=!1,self.$compile_child(first_child),$send(children,"each",[],(($$5=function(c){var self=null==$$5.$$s?this:$$5.$$s;return null==c&&(c=nil),self.$compile_child(c)}).$$s=self,$$5.$$arity=1,$$5))),last_child.$type()["$=="]("str")?self.$push($$($nesting,"Fragment").$new(last_value,self.$scope(),last_child)):self.$compile_child(last_child)},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$extract_last_value",$XStringNode_unpack_return$9=function(last_child){var self=this,last_value=nil,$ret_or_4=nil,$ret_or_5=nil,last_value=last_child.$loc().$expression().$source().$rstrip();return $truthy($truthy($ret_or_4=$truthy($ret_or_5=self.returning)?$ret_or_5:self["$expr?"]())?last_value["$end_with?"](";"):$ret_or_4)&&(self.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",last_child.$line()),last_value=last_value["$[]"]($range(0,-2,!1))),$truthy(self.returning)&&(self.should_add_semicolon=!0),last_value},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$single_line?",$XStringNode_unpack_return$9=function(children){var $$8,$ret_or_6;return $truthy($ret_or_6=children.$size()["$=="](1))?$ret_or_6:$send(children,"none?",[],(($$8=function(c){var $ret_or_7;null==$$8.$$s||$$8.$$s;return null==c&&(c=nil),$truthy($ret_or_7=c.$type()["$=="]("str"))?c.$loc().$expression().$source()["$end_with?"]("\n"):$ret_or_7}).$$s=this,$$8.$$arity=1,$$8))},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$unpack_return",$XStringNode_unpack_return$9=function(children){var first_child=nil,first_child=children.$first();return this.returning=!1,first_child.$type()["$=="]("js_return")&&(this.returning=!0,children=first_child.$children()),children},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$strip_empty_children",$XStringNode_strip_empty_children$10=function(children){var $$11,empty_line=nil,$ret_or_10=nil,$ret_or_11=nil;for(children=children.$dup(),empty_line=$lambda((($$11=function(child){var $ret_or_8,$ret_or_9;null==$$11.$$s||$$11.$$s;return null==child&&(child=nil),$truthy($ret_or_8=child["$nil?"]())?$ret_or_8:$truthy($ret_or_9=child.$type()["$=="]("str"))?child.$loc().$expression().$source().$rstrip()["$empty?"]():$ret_or_9}).$$s=this,$$11.$$arity=1,$$11));$truthy($truthy($ret_or_10=children["$any?"]())?empty_line["$[]"](children.$first()):$ret_or_10);)children.$shift();for(;$truthy($truthy($ret_or_11=children["$any?"]())?empty_line["$[]"](children.$last()):$ret_or_11);)children.$pop();return children},$XStringNode_strip_empty_children$10.$$arity=1),nil&&"strip_empty_children"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/lambda"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$helper","$defines_lambda","$scope","$push","$expr","$iter"]),self.$require("opal/nodes/call"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$LambdaNode_compile$1,$parent_nesting){$LambdaNode_compile$1=$klass($base,$LambdaNode_compile$1,"LambdaNode"),[$LambdaNode_compile$1].concat($parent_nesting);return $LambdaNode_compile$1.$handle("lambda"),$LambdaNode_compile$1.$children("iter"),Opal.def($LambdaNode_compile$1,"$compile",$LambdaNode_compile$1=function(){var $$2;return this.$helper("lambda"),$send(this.$scope(),"defines_lambda",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return self.$push("$lambda(",self.$expr(self.$iter()),")")}).$$s=this,$$2.$$arity=0,$$2))},$LambdaNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes"]=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$require"]),self.$require("opal/nodes/base"),self.$require("opal/nodes/literal"),self.$require("opal/nodes/variables"),self.$require("opal/nodes/constants"),self.$require("opal/nodes/call"),self.$require("opal/nodes/csend"),self.$require("opal/nodes/call_special"),self.$require("opal/nodes/module"),self.$require("opal/nodes/class"),self.$require("opal/nodes/singleton_class"),self.$require("opal/nodes/args"),self.$require("opal/nodes/args/arity_check"),self.$require("opal/nodes/iter"),self.$require("opal/nodes/def"),self.$require("opal/nodes/defs"),self.$require("opal/nodes/if"),self.$require("opal/nodes/logic"),self.$require("opal/nodes/definitions"),self.$require("opal/nodes/yield"),self.$require("opal/nodes/rescue"),self.$require("opal/nodes/case"),self.$require("opal/nodes/super"),self.$require("opal/nodes/top"),self.$require("opal/nodes/while"),self.$require("opal/nodes/hash"),self.$require("opal/nodes/array"),self.$require("opal/nodes/defined"),self.$require("opal/nodes/masgn"),self.$require("opal/nodes/arglist"),self.$require("opal/nodes/x_string"),self.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$range=Opal.range;return Opal.add_stubs(["$empty?","$[]","$last_token_position","$drop_while","$lines","$==","$join","$private","$last","$end_pos"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($EofContent_last_token_position$4,$EofContent_eof$2){$EofContent_last_token_position$4=$klass($EofContent_last_token_position$4,null,"EofContent"),$EofContent_eof$2=[$EofContent_last_token_position$4].concat($EofContent_eof$2);return $EofContent_last_token_position$4.$$prototype.tokens=$EofContent_last_token_position$4.$$prototype.source=nil,Opal.const_set($EofContent_eof$2[0],"DATA_SEPARATOR","__END__\n"),Opal.def($EofContent_last_token_position$4,"$initialize",$EofContent_eof$2=function(tokens,source){return this.tokens=tokens,this.source=source},$EofContent_eof$2.$$arity=2),Opal.def($EofContent_last_token_position$4,"$eof",$EofContent_eof$2=function(){var $$3,eof_content=nil,$ret_or_1=nil;return $truthy(this.tokens["$empty?"]())?nil:(eof_content=this.source["$[]"](Opal.Range.$new(this.$last_token_position(),-1,!1)),$truthy(eof_content)?(eof_content=$send(eof_content.$lines(),"drop_while",[],(($$3=function(line){null==$$3.$$s||$$3.$$s;return null==line&&(line=nil),line["$=="]("\n")}).$$s=this,$$3.$$arity=1,$$3)))["$[]"](0)["$=="]("__END__\n")?(eof_content=$truthy($ret_or_1=eof_content["$[]"]($range(1,-1,!1)))?$ret_or_1:[]).$join():eof_content["$=="](["__END__"])?"":nil:nil)},$EofContent_eof$2.$$arity=0),$EofContent_last_token_position$4.$private(),Opal.def($EofContent_last_token_position$4,"$last_token_position",$EofContent_last_token_position$4=function(){var $b=this.tokens.$last(),$a=Opal.to_ary($b);null==$a[0]||$a[0];return $b=null==$a[1]?nil:$a[1],null==($a=Opal.to_ary($b))[0]||$a[0],(null==$a[1]?nil:$a[1]).$end_pos()},$EofContent_last_token_position$4.$$arity=0),nil&&"last_token_position"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/errors"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$attr_reader","$attr_accessor","$new","$respond_to?","$location","$location=","$-","$diagnostic","$diagnostic=","$to_a","$backtrace","$unshift","$to_s","$set_backtrace","$path","$lineno","$+","$label","$line","$lineno=","$source_line","$label=","$expression"]),function($Opal_add_opal_location_to_error$3,$Opal_opal_location_from_error$2){var $Opal_add_opal_location_to_error$3=$module($Opal_add_opal_location_to_error$3,"Opal"),$nesting=[$Opal_add_opal_location_to_error$3].concat($Opal_opal_location_from_error$2);return function($base,$super,$parent_nesting){[$klass($base,$super,"Error")].concat($parent_nesting)}($nesting[0],$$($nesting,"StandardError"),$nesting),function($base,self,$parent_nesting){var $GemNotFound_initialize$1;[self=$klass($base,self,"GemNotFound")].concat($parent_nesting),self.$attr_reader("gem_name"),Opal.def(self,"$initialize",$GemNotFound_initialize$1=function(gem_name){var $iter=$GemNotFound_initialize$1.$$p;return $iter&&($GemNotFound_initialize$1.$$p=null),this.gem_name=gem_name,$send2(this,$find_super(this,"initialize",$GemNotFound_initialize$1,!1,!0),"initialize",["can't find gem "+gem_name],null)},$GemNotFound_initialize$1.$$arity=1)}($nesting[0],$$($nesting,"Error"),$nesting),function($base,self,$parent_nesting){[self=$klass($base,self,"CompilationError")].concat($parent_nesting),self.$attr_accessor("location")}($nesting[0],$$($nesting,"Error"),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,"ParsingError")].concat($parent_nesting)}($nesting[0],$$($nesting,"CompilationError"),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,"RewritingError")].concat($parent_nesting)}($nesting[0],$$($nesting,"ParsingError"),$nesting),function($base,self,$parent_nesting){[self=$klass($base,self,"SyntaxError")].concat($parent_nesting),self.$attr_accessor("location")}($nesting[0],$$$("::","SyntaxError"),$nesting),Opal.defs($Opal_add_opal_location_to_error$3,"$opal_location_from_error",$Opal_opal_location_from_error$2=function(error){var $writer=nil,opal_location=$$($nesting,"OpalBacktraceLocation").$new();return $truthy(error["$respond_to?"]("location"))&&($writer=[error.$location()],$send(opal_location,"location=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(error["$respond_to?"]("diagnostic"))&&($writer=[error.$diagnostic()],$send(opal_location,"diagnostic=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),opal_location},$Opal_opal_location_from_error$2.$$arity=1),Opal.defs($Opal_add_opal_location_to_error$3,"$add_opal_location_to_error",$Opal_add_opal_location_to_error$3=function(opal_location,error){var backtrace=nil;return(backtrace=error.$backtrace().$to_a()).$unshift(opal_location.$to_s()),error.$set_backtrace(backtrace),error},$Opal_add_opal_location_to_error$3.$$arity=2),function($OpalBacktraceLocation_location$eq$7,$OpalBacktraceLocation_diagnostic$eq$6){$OpalBacktraceLocation_location$eq$7=$klass($OpalBacktraceLocation_location$eq$7,null,"OpalBacktraceLocation"),[$OpalBacktraceLocation_location$eq$7].concat($OpalBacktraceLocation_diagnostic$eq$6);return $OpalBacktraceLocation_location$eq$7.$attr_accessor("path","lineno","label"),Opal.def($OpalBacktraceLocation_location$eq$7,"$initialize",$OpalBacktraceLocation_diagnostic$eq$6=function(path,lineno,$a){return null==path&&(path=nil),null==lineno&&(lineno=nil),null==$a&&($a=nil),$a=[path,lineno,$a],this.path=$a[0],this.lineno=$a[1],this.label=$a[2],$a},$OpalBacktraceLocation_diagnostic$eq$6.$$arity=-1),Opal.def($OpalBacktraceLocation_location$eq$7,"$to_s",$OpalBacktraceLocation_diagnostic$eq$6=function(){var string=nil,string=this.$path();return $truthy(this.$lineno())&&(string=$rb_plus(string,":"+this.$lineno())),string=$rb_plus(string,":in "),string=$truthy(this.$label())?$rb_plus(string,"`"+this.$label()+"'"):$rb_plus(string,"unknown")},$OpalBacktraceLocation_diagnostic$eq$6.$$arity=0),$alias($OpalBacktraceLocation_location$eq$7,"line","lineno"),Opal.def($OpalBacktraceLocation_location$eq$7,"$diagnostic=",$OpalBacktraceLocation_diagnostic$eq$6=function(diagnostic){var $writer;return $truthy(diagnostic)?($writer=[diagnostic.$location()],$send(this,"location=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil},$OpalBacktraceLocation_diagnostic$eq$6.$$arity=1),Opal.def($OpalBacktraceLocation_location$eq$7,"$location=",$OpalBacktraceLocation_location$eq$7=function(location){var $writer=nil;return $truthy(location)?($writer=[location.$line()],$send(this,"lineno=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(location["$respond_to?"]("source_line"))?($writer=[location.$source_line()],$send(this,"label=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy(location["$respond_to?"]("expression"))?($writer=[location.$expression().$source_line()],$send(this,"label=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil):nil},$OpalBacktraceLocation_location$eq$7.$$arity=1),nil&&"location="}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/magic_comments"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$freeze","$line","$loc","$take","$each","$>=","$any?","$scan","$text","$to_sym","$===","$[]=","$-"]),function($MagicComments_parse$1,$parent_nesting){var $MagicComments_parse$1=$module($MagicComments_parse$1,"MagicComments"),$nesting=[$MagicComments_parse$1].concat($parent_nesting);return Opal.const_set($nesting[0],"MAGIC_COMMENT_RE",/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),Opal.const_set($nesting[0],"EMACS_MAGIC_COMMENT_RE",/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),Opal.defs($MagicComments_parse$1,"$parse",$MagicComments_parse$1=function(sexp,comments){var $$2,first_line=nil,flags=$hash2([],{});return $truthy(sexp)&&(first_line=sexp.$loc().$line(),comments=comments.$take(first_line)),$send(comments,"each",[],(($$2=function(comment){var $$3,$ret_or_1,lhs,rhs,self=null==$$2.$$s?this:$$2.$$s,$ret_or_2=nil,parts=nil;return null==comment&&(comment=nil),!$truthy($truthy($ret_or_1=first_line)?(lhs=comment.$loc().$line(),rhs=first_line,"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)):$ret_or_1)&&$truthy($truthy($ret_or_2=(parts=comment.$text().$scan($$($nesting,"MAGIC_COMMENT_RE")))["$any?"]())?$ret_or_2:(parts=comment.$text().$scan($$($nesting,"EMACS_MAGIC_COMMENT_RE")))["$any?"]())?$send(parts,"each",[],(($$3=function(key,rhs){null==$$3.$$s||$$3.$$s;var lhs=nil,$case=nil;return null==key&&(key=nil),null==rhs&&(rhs=nil),lhs=[key.$to_sym(),!!"true"["$==="]($case=rhs)||!"false"["$==="]($case)&&rhs],$send(flags,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}).$$s=self,$$3.$$arity=2,$$3)):nil}).$$s=this,$$2.$$arity=1,$$2)),flags},$MagicComments_parse$1.$$arity=2),nil&&"parse"}($$($nesting,"Opal"),$nesting)},Opal.modules["opal/compiler"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$hash2=Opal.hash2,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs(["$require","$compile","$new","$freeze","$join","$dirname","$first","$split","$basename","$to_s","$cleanpath","$Pathname","$fetch","$define_method","$option_value","$key?","$[]","$!","$include?","$raise","$inspect","$[]=","$-","$compiler_option","$attr_reader","$attr_accessor","$parse","$re_raise_with_location","$flatten","$process","$end_with?","$code","$last","$<<","$fragment","$s","$map","$to_proc","$file","$source=","$default_parser","$tokenize","$associate_locations","$eof","$magic_comments","$to_sym","$strip","$location=","$opal_location_from_error","$path=","$label","$lines","$to_i","$line","$label=","$message","$set_backtrace","$backtrace","$add_opal_location_to_error","$warn","$empty?","$gsub","$+","$start_with?","$helpers","$new_temp","$queue_temp","$push_while","$pop_while","$in_while?","$nil?","$scope","$handlers","$type","$compile_to_fragments","$error","$returns","$===","$updated","$children","$loc","$uses_block!","$block_name","$find_parent_def","$cache","$source_map"]),self.$require("set"),self.$require("opal/parser"),self.$require("opal/fragment"),self.$require("opal/nodes"),self.$require("opal/eof_content"),self.$require("opal/errors"),self.$require("opal/magic_comments"),function($Opal_compile$1,$parent_nesting){var $Opal_compile$1=$module($Opal_compile$1,"Opal"),$nesting=[$Opal_compile$1].concat($parent_nesting);return Opal.defs($Opal_compile$1,"$compile",$Opal_compile$1=function(source,options){return null==options&&(options=$hash2([],{})),$$($nesting,"Compiler").$new(source,options).$compile()},$Opal_compile$1.$$arity=-2),function($Compiler_marshal_load$37,$Compiler_marshal_dump$36){var $Compiler_re_raise_with_location$17,$Compiler_indent$24,$Compiler_with_temp$25,$Compiler_in_while$26,$Compiler_in_case$27,$Compiler_marshal_load$37=$klass($Compiler_marshal_load$37,null,"Compiler"),$nesting=[$Compiler_marshal_load$37].concat($Compiler_marshal_dump$36);return $Compiler_marshal_load$37.$$prototype.option_values=$Compiler_marshal_load$37.$$prototype.options=$Compiler_marshal_load$37.$$prototype.magic_comments=$Compiler_marshal_load$37.$$prototype.fragments=$Compiler_marshal_load$37.$$prototype.source=$Compiler_marshal_load$37.$$prototype.buffer=$Compiler_marshal_load$37.$$prototype.source_map=$Compiler_marshal_load$37.$$prototype.result=$Compiler_marshal_load$37.$$prototype.helpers=$Compiler_marshal_load$37.$$prototype.operator_helpers=$Compiler_marshal_load$37.$$prototype.method_calls=$Compiler_marshal_load$37.$$prototype.indent=$Compiler_marshal_load$37.$$prototype.unique=$Compiler_marshal_load$37.$$prototype.scope=$Compiler_marshal_load$37.$$prototype.case_stmt=$Compiler_marshal_load$37.$$prototype.handlers=$Compiler_marshal_load$37.$$prototype.requires=$Compiler_marshal_load$37.$$prototype.required_trees=nil,Opal.const_set($nesting[0],"INDENT"," "),Opal.const_set($nesting[0],"COMPARE",["<",">","<=",">="].$freeze()),Opal.defs($Compiler_marshal_load$37,"$module_name",$Compiler_marshal_dump$36=function(path){return path=$$($nesting,"File").$join($$($nesting,"File").$dirname(path),$$($nesting,"File").$basename(path).$split(".").$first()),this.$Pathname(path).$cleanpath().$to_s()},$Compiler_marshal_dump$36.$$arity=1),Opal.defs($Compiler_marshal_load$37,"$compiler_option",$Compiler_marshal_dump$36=function(name,config){var $$4,method_name;return null==config&&(config=$hash2([],{})),method_name=config.$fetch("as",name),$send(this,"define_method",[method_name],(($$4=function(){return(null==$$4.$$s?this:$$4.$$s).$option_value(name,config)}).$$s=this,$$4.$$arity=0,$$4))},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$option_value",$Compiler_marshal_dump$36=function(name,config){var default_value,magic_comment,$writer,self=this,valid_values=nil,value=nil,$ret_or_1=nil,$ret_or_2=nil;return $truthy(self.option_values["$key?"](name))?self.option_values["$[]"](name):(default_value=config["$[]"]("default"),valid_values=config["$[]"]("valid_values"),magic_comment=config["$[]"]("magic_comment"),value=self.options.$fetch(name,default_value),$truthy($truthy($ret_or_1=magic_comment)?self.magic_comments["$key?"](name):$ret_or_1)&&(value=self.magic_comments.$fetch(name)),$truthy($truthy($ret_or_2=valid_values)?valid_values["$include?"](value)["$!"]():$ret_or_2)&&self.$raise($$($nesting,"ArgumentError"),"invalid value "+value.$inspect()+" for option "+name.$inspect()+" (valid values: "+valid_values.$inspect()+")"),$writer=[name,value],$send(self.option_values,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])},$Compiler_marshal_dump$36.$$arity=2),$Compiler_marshal_load$37.$compiler_option("file",$hash2(["default"],{default:"(file)"})),$Compiler_marshal_load$37.$compiler_option("method_missing",$hash2(["default","as"],{default:!0,as:"method_missing?"})),$Compiler_marshal_load$37.$compiler_option("arity_check",$hash2(["default","as"],{default:!1,as:"arity_check?"})),$Compiler_marshal_load$37.$compiler_option("freezing",$hash2(["default","as"],{default:!0,as:"freezing?"})),$Compiler_marshal_load$37.$compiler_option("irb",$hash2(["default","as"],{default:!1,as:"irb?"})),$Compiler_marshal_load$37.$compiler_option("dynamic_require_severity",$hash2(["default","valid_values"],{default:"ignore",valid_values:["error","warning","ignore"]})),$Compiler_marshal_load$37.$compiler_option("requirable",$hash2(["default","as"],{default:!1,as:"requirable?"})),$Compiler_marshal_load$37.$compiler_option("esm",$hash2(["default","as"],{default:!1,as:"esm?"})),$Compiler_marshal_load$37.$compiler_option("inline_operators",$hash2(["default","as"],{default:!0,as:"inline_operators?"})),$Compiler_marshal_load$37.$compiler_option("eval",$hash2(["default","as"],{default:!1,as:"eval?"})),$Compiler_marshal_load$37.$compiler_option("enable_source_location",$hash2(["default","as"],{default:!1,as:"enable_source_location?"})),$Compiler_marshal_load$37.$compiler_option("use_strict",$hash2(["default","as","magic_comment"],{default:!1,as:"use_strict?",magic_comment:!0})),$Compiler_marshal_load$37.$compiler_option("parse_comments",$hash2(["default","as"],{default:!1,as:"parse_comments?"})),$Compiler_marshal_load$37.$compiler_option("scope_variables",$hash2(["default"],{default:[]})),$Compiler_marshal_load$37.$attr_reader("result"),$Compiler_marshal_load$37.$attr_reader("fragments"),$Compiler_marshal_load$37.$attr_accessor("scope"),$Compiler_marshal_load$37.$attr_reader("case_stmt"),$Compiler_marshal_load$37.$attr_reader("eof_content"),$Compiler_marshal_load$37.$attr_reader("comments"),$Compiler_marshal_load$37.$attr_reader("magic_comments"),Opal.def($Compiler_marshal_load$37,"$initialize",$Compiler_marshal_dump$36=function(source,options){return null==options&&(options=$hash2([],{})),this.source=source,this.indent="",this.unique=0,this.options=options,this.comments=$$($nesting,"Hash").$new([]),this.case_stmt=nil,this.option_values=$hash2([],{}),this.magic_comments=$hash2([],{})},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$compile",$Compiler_marshal_dump$36=function(){var $$8;return this.$parse(),this.fragments=$send(this,"re_raise_with_location",[],(($$8=function(){var self=null==$$8.$$s?this:$$8.$$s;return null==self.sexp&&(self.sexp=nil),self.$process(self.sexp).$flatten()}).$$s=this,$$8.$$arity=0,$$8)),$truthy(this.fragments.$last().$code()["$end_with?"]("\n"))||this.fragments["$<<"](this.$fragment("\n",nil,this.$s("newline"))),this.result=$send(this.fragments,"map",[],"code".$to_proc()).$join("")},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$parse",$Compiler_marshal_dump$36=function(){var $$10,$a,sexp,comments,tokens,self=this,$ret_or_3=nil;return self.buffer=$$$($$$($$$("::","Opal"),"Parser"),"SourceBuffer").$new(self.$file(),1),$a=[self.source],$send(self.buffer,"source=",Opal.to_a($a)),$rb_minus($a.length,1),self.parser=$$$($$($nesting,"Opal"),"Parser").$default_parser(),$a=$send(self,"re_raise_with_location",[],(($$10=function(){var self=null==$$10.$$s?this:$$10.$$s;return null==self.parser&&(self.parser=nil),null==self.buffer&&(self.buffer=nil),self.parser.$tokenize(self.buffer)}).$$s=self,$$10.$$arity=0,$$10)),$a=Opal.to_ary($a),sexp=null==$a[0]?nil:$a[0],comments=null==$a[1]?nil:$a[1],tokens=null==$a[2]?nil:$a[2],self.sexp=self.$s("top",$truthy($ret_or_3=sexp)?$ret_or_3:self.$s("nil")),self.comments=$$$($$$($$$("::","Parser"),"Source"),"Comment").$associate_locations(sexp,comments),self.magic_comments=$$($nesting,"MagicComments").$parse(sexp,comments),self.eof_content=$$($nesting,"EofContent").$new(tokens,self.source).$eof()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$source_map",$Compiler_marshal_dump$36=function(){var $ret_or_4;return $truthy($ret_or_4=this.source_map)?$ret_or_4:$$$($$$($$$("::","Opal"),"SourceMap"),"File").$new(this.fragments,this.$file(),this.source,this.result)},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$helpers",$Compiler_marshal_dump$36=function(){var $$13,$ret_or_5,self=this;return self.helpers=$truthy($ret_or_5=self.helpers)?$ret_or_5:$$($nesting,"Set").$new($send(self.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],(($$13=function(h){null==$$13.$$s||$$13.$$s;return null==h&&(h=nil),h.$strip().$to_sym()}).$$s=self,$$13.$$arity=1,$$13)))},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$operator_helpers",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_6=nil;return self.operator_helpers=$truthy($ret_or_6=self.operator_helpers)?$ret_or_6:$$($nesting,"Set").$new()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$method_calls",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_7=nil;return self.method_calls=$truthy($ret_or_7=self.method_calls)?$ret_or_7:$$($nesting,"Set").$new()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$error",$Compiler_marshal_dump$36=function(msg,line){var error,$writer;return null==line&&(line=nil),error=$$$($$$("::","Opal"),"SyntaxError").$new(msg),$writer=[$$$($$($nesting,"Opal"),"OpalBacktraceLocation").$new(this.$file(),line)],$send(error,"location=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$raise(error)},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$re_raise_with_location",$Compiler_re_raise_with_location$17=function(){var $writer,$iter=$Compiler_re_raise_with_location$17.$$p,$yield=$iter||nil,error=nil,opal_location=nil,new_error=nil;$iter&&($Compiler_re_raise_with_location$17.$$p=null);try{return Opal.yieldX($yield,[])}catch($err){if(!Opal.rescue($err,[$$($nesting,"StandardError"),$$$($$$("::","Opal"),"SyntaxError")]))throw $err;error=$err;try{return opal_location=$$$("::","Opal").$opal_location_from_error(error),$writer=[this.$file()],$send(opal_location,"path=",Opal.to_a($writer)),$rb_minus($writer.length,1),$truthy(opal_location.$label())||($writer=[this.source.$lines()["$[]"]($rb_minus(opal_location.$line().$to_i(),1)).$strip()],$send(opal_location,"label=",Opal.to_a($writer)),$rb_minus($writer.length,1)),(new_error=$$$($$$("::","Opal"),"SyntaxError").$new(error.$message())).$set_backtrace(error.$backtrace()),$$$("::","Opal").$add_opal_location_to_error(opal_location,new_error),this.$raise(new_error)}finally{Opal.pop_exception()}}},$Compiler_re_raise_with_location$17.$$arity=0),Opal.def($Compiler_marshal_load$37,"$warning",$Compiler_marshal_dump$36=function(msg,line){return null==line&&(line=nil),this.$warn("warning: "+msg+" -- "+this.$file()+":"+line)},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$parser_indent",$Compiler_marshal_dump$36=function(){return this.indent},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$s",$Compiler_marshal_dump$36=function(type,$a){var children=Opal.slice.call(arguments,1,arguments.length);return $$$($$$($$$("::","Opal"),"AST"),"Node").$new(type,children)},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$fragment",$Compiler_marshal_dump$36=function(str,scope,sexp){return null==sexp&&(sexp=nil),$$($nesting,"Fragment").$new(str,scope,sexp)},$Compiler_marshal_dump$36.$$arity=-3),Opal.def($Compiler_marshal_load$37,"$unique_temp",$Compiler_marshal_dump$36=function(name){var unique,$ret_or_9=nil;return name=name.$to_s(),$truthy($truthy($ret_or_9=name)?name["$empty?"]()["$!"]():$ret_or_9)&&(name=name.$to_s().$gsub("<=>","$lt_eq_gt").$gsub("===","$eq_eq_eq").$gsub("==","$eq_eq").$gsub("=~","$eq_tilde").$gsub("!~","$excl_tilde").$gsub("!=","$not_eq").$gsub("<=","$lt_eq").$gsub(">=","$gt_eq").$gsub("=","$eq").$gsub("?","$ques").$gsub("!","$excl").$gsub("/","$slash").$gsub("%","$percent").$gsub("+","$plus").$gsub("-","$minus").$gsub("<","$lt").$gsub(">","$gt").$gsub(/[^\w\$]/,"$")),unique=this.unique=$rb_plus(this.unique,1),""+($truthy(name["$start_with?"]("$"))?nil:"$")+name+"$"+unique},$Compiler_marshal_dump$36.$$arity=1),Opal.def($Compiler_marshal_load$37,"$helper",$Compiler_marshal_dump$36=function(name){return this.$helpers()["$<<"](name)},$Compiler_marshal_dump$36.$$arity=1),Opal.def($Compiler_marshal_load$37,"$indent",$Compiler_indent$24=function(){var indent,res,$iter=$Compiler_indent$24.$$p,$yield=$iter||nil;return $iter&&($Compiler_indent$24.$$p=null),indent=this.indent,this.indent=$rb_plus(this.indent,$$($nesting,"INDENT")),this.space="\n"+this.indent,res=Opal.yieldX($yield,[]),this.indent=indent,this.space="\n"+this.indent,res},$Compiler_indent$24.$$arity=0),Opal.def($Compiler_marshal_load$37,"$with_temp",$Compiler_with_temp$25=function(){var tmp,res,$iter=$Compiler_with_temp$25.$$p,$yield=$iter||nil;return $iter&&($Compiler_with_temp$25.$$p=null),tmp=this.scope.$new_temp(),res=Opal.yield1($yield,tmp),this.scope.$queue_temp(tmp),res},$Compiler_with_temp$25.$$arity=0),Opal.def($Compiler_marshal_load$37,"$in_while",$Compiler_in_while$26=function(){var result,$iter=$Compiler_in_while$26.$$p,$yield=$iter||nil;return $iter&&($Compiler_in_while$26.$$p=null),$yield===nil?nil:(this.while_loop=this.scope.$push_while(),result=Opal.yieldX($yield,[]),this.scope.$pop_while(),result)},$Compiler_in_while$26.$$arity=0),Opal.def($Compiler_marshal_load$37,"$in_case",$Compiler_in_case$27=function(){var old,$iter=$Compiler_in_case$27.$$p,$yield=$iter||nil;return $iter&&($Compiler_in_case$27.$$p=null),$yield===nil?nil:(old=this.case_stmt,this.case_stmt=$hash2([],{}),Opal.yieldX($yield,[]),this.case_stmt=old)},$Compiler_in_case$27.$$arity=0),Opal.def($Compiler_marshal_load$37,"$in_while?",$Compiler_marshal_dump$36=function(){return this.scope["$in_while?"]()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$process",$Compiler_marshal_dump$36=function(sexp,level){var handler=nil;return null==level&&(level="expr"),$truthy(sexp["$nil?"]())?this.$fragment("",this.$scope()):$truthy(handler=this.$handlers()["$[]"](sexp.$type()))?handler.$new(sexp,level,this).$compile_to_fragments():this.$error("Unsupported sexp: "+sexp.$type())},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$handlers",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_10=nil;return self.handlers=$truthy($ret_or_10=self.handlers)?$ret_or_10:$$$($$$($$($nesting,"Opal"),"Nodes"),"Base").$handlers()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$requires",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_11=nil;return self.requires=$truthy($ret_or_11=self.requires)?$ret_or_11:[]},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$required_trees",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_12=nil;return self.required_trees=$truthy($ret_or_12=self.required_trees)?$ret_or_12:[]},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$returns",$Compiler_marshal_dump$36=function(sexp){var $a,$b,$$34,$case,when_sexp,then_sexp,body_sexp,resbodies,klass,lvar,body,rescue_sexp,ensure_body,rest,last,cond,true_body,false_body,self=this,else_sexp=nil;return $truthy(sexp)?($case=sexp.$type(),"undef"["$==="]($case)?self.$returns(self.$s("begin",sexp,self.$s("nil"))):"break"["$==="]($case)||"next"["$==="]($case)||"redo"["$==="]($case)||"retry"["$==="]($case)?sexp:"yield"["$==="]($case)?sexp.$updated("returnable_yield",nil):"when"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),$b=($b=$a.length-1)<0?0:$b,when_sexp=$slice.call($a,0,$b),then_sexp=null==$a[$b]?nil:$a[$b],sexp.$updated(nil,[].concat(Opal.to_a(when_sexp)).concat([self.$returns(then_sexp)]))):"rescue"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),body_sexp=null==$a[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,resbodies=$slice.call($a,1,$b),else_sexp=null==$a[$b]?nil:$a[$b],resbodies=$send(resbodies,"map",[],(($$34=function(resbody){var self=null==$$34.$$s?this:$$34.$$s;return null==resbody&&(resbody=nil),self.$returns(resbody)}).$$s=self,$$34.$$arity=1,$$34)),$truthy(else_sexp)&&(else_sexp=self.$returns(else_sexp)),sexp.$updated(nil,[self.$returns(body_sexp)].concat(Opal.to_a(resbodies)).concat([else_sexp]))):"resbody"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),klass=null==$a[0]?nil:$a[0],lvar=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],sexp.$updated(nil,[klass,lvar,self.$returns(body)])):"ensure"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),rescue_sexp=null==$a[0]?nil:$a[0],ensure_body=null==$a[1]?nil:$a[1],sexp=sexp.$updated(nil,[self.$returns(rescue_sexp),ensure_body]),self.$s("js_return",sexp)):"begin"["$==="]($case)||"kwbegin"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),$b=($b=$a.length-1)<0?0:$b,rest=$slice.call($a,0,$b),last=null==$a[$b]?nil:$a[$b],sexp.$updated(nil,[].concat(Opal.to_a(rest)).concat([self.$returns(last)]))):"while"["$==="]($case)||"until"["$==="]($case)||"while_post"["$==="]($case)||"until_post"["$==="]($case)||"return"["$==="]($case)||"js_return"["$==="]($case)||"returnable_yield"["$==="]($case)?sexp:"xstr"["$==="]($case)?sexp.$updated(nil,[$send(self,"s",["js_return"].concat(Opal.to_a(sexp.$children())))]):"if"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),cond=null==$a[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],sexp.$updated(nil,[cond,self.$returns(true_body),self.$returns(false_body)])):self.$s("js_return",sexp).$updated(nil,nil,$hash2(["location"],{location:sexp.$loc()}))):self.$returns(self.$s("nil"))},$Compiler_marshal_dump$36.$$arity=1),Opal.def($Compiler_marshal_load$37,"$handle_block_given_call",$Compiler_marshal_dump$36=function(sexp){var self=this,$ret_or_13=nil,scope=nil;return self.scope["$uses_block!"](),$truthy(self.scope.$block_name())?self.$fragment("("+self.scope.$block_name()+" !== nil)",self.$scope(),sexp):$truthy($truthy($ret_or_13=scope=self.scope.$find_parent_def())?scope.$block_name():$ret_or_13)?self.$fragment("("+scope.$block_name()+" !== nil)",scope,sexp):self.$fragment("false",scope,sexp)},$Compiler_marshal_dump$36.$$arity=1),Opal.def($Compiler_marshal_load$37,"$marshal_dump",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_14=nil;return[self.options,self.option_values,self.source_map=$truthy($ret_or_14=self.source_map)?$ret_or_14:self.$source_map().$cache(),self.magic_comments,self.result,self.required_trees,self.requires]},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$marshal_load",$Compiler_marshal_load$37=function($a){var $b=$a,$a=Opal.to_ary($b);return this.options=null==$a[0]?nil:$a[0],this.option_values=null==$a[1]?nil:$a[1],this.source_map=null==$a[2]?nil:$a[2],this.magic_comments=null==$a[3]?nil:$a[3],this.result=null==$a[4]?nil:$a[4],this.required_trees=null==$a[5]?nil:$a[5],this.requires=null==$a[6]?nil:$a[6],$b},$Compiler_marshal_load$37.$$arity=1),nil&&"marshal_load"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/erb"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$compile","$new","$freeze","$fix_quotes","$find_contents","$find_code","$wrap_compiled","$require_erb","$prepared_source","$gsub","$+","$last_match","$=~","$sub"]),self.$require("opal/compiler"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($ERB_compile$1,$parent_nesting){var $ERB_compile$1=$module($ERB_compile$1,"ERB"),$nesting=[$ERB_compile$1].concat($parent_nesting);return Opal.defs($ERB_compile$1,"$compile",$ERB_compile$1=function(source,file_name){return null==file_name&&(file_name="(erb)"),$$($nesting,"Compiler").$new(source,file_name).$compile()},$ERB_compile$1.$$arity=-2),function($Compiler_wrap_compiled$11,$Compiler_find_code$9){var $Compiler_wrap_compiled$11=$klass($Compiler_wrap_compiled$11,null,"Compiler"),$nesting=[$Compiler_wrap_compiled$11].concat($Compiler_find_code$9);return $Compiler_wrap_compiled$11.$$prototype.prepared_source=$Compiler_wrap_compiled$11.$$prototype.source=$Compiler_wrap_compiled$11.$$prototype.file_name=nil,Opal.const_set($nesting[0],"BLOCK_EXPR",/\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()),Opal.def($Compiler_wrap_compiled$11,"$initialize",$Compiler_find_code$9=function($a,file_name){return null==file_name&&(file_name="(erb)"),$a=[$a,file_name,$a],this.source=$a[0],this.file_name=$a[1],this.result=$a[2],$a},$Compiler_find_code$9.$$arity=-2),Opal.def($Compiler_wrap_compiled$11,"$prepared_source",$Compiler_find_code$9=function(){var self=this,$ret_or_1=nil,source=nil;return self.prepared_source=$truthy($ret_or_1=self.prepared_source)?$ret_or_1:(source=self.source,source=self.$fix_quotes(source),source=self.$find_contents(source),source=self.$find_code(source),source=self.$wrap_compiled(source),source=self.$require_erb(source))},$Compiler_find_code$9.$$arity=0),Opal.def($Compiler_wrap_compiled$11,"$compile",$Compiler_find_code$9=function(){return $$($nesting,"Opal").$compile(this.$prepared_source())},$Compiler_find_code$9.$$arity=0),Opal.def($Compiler_wrap_compiled$11,"$fix_quotes",$Compiler_find_code$9=function(result){return result.$gsub('"','\\"')},$Compiler_find_code$9.$$arity=1),Opal.def($Compiler_wrap_compiled$11,"$require_erb",$Compiler_find_code$9=function(lhs){var rhs;return rhs=lhs,"number"==typeof(lhs='require "erb";')&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)},$Compiler_find_code$9.$$arity=1),Opal.def($Compiler_wrap_compiled$11,"$find_contents",$Compiler_find_code$9=function(result){var $$8;return $send(result,"gsub",[/<%=([\s\S]+?)%>/],(($$8=function(){null==$$8.$$s||$$8.$$s;var inner=nil,inner=$$($nesting,"Regexp").$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"');return $truthy(inner["$=~"]($$($nesting,"BLOCK_EXPR")))?'")\noutput_buffer.append= '+inner+'\noutput_buffer.append("':'")\noutput_buffer.append=('+inner+')\noutput_buffer.append("'}).$$s=this,$$8.$$arity=0,$$8))},$Compiler_find_code$9.$$arity=1),Opal.def($Compiler_wrap_compiled$11,"$find_code",$Compiler_find_code$9=function(result){var $$10;return $send(result,"gsub",[/<%([\s\S]+?)%>/],(($$10=function(){null==$$10.$$s||$$10.$$s;return'")\n'+$$($nesting,"Regexp").$last_match(1).$gsub(/\\"/,'"')+'\noutput_buffer.append("'}).$$s=this,$$10.$$arity=0,$$10))},$Compiler_find_code$9.$$arity=1),Opal.def($Compiler_wrap_compiled$11,"$wrap_compiled",$Compiler_wrap_compiled$11=function(result){return"Template.new('"+this.file_name.$sub(Opal.regexp(["\\.opalerb",$$($nesting,"REGEXP_END")]),"")+"') do |output_buffer|\noutput_buffer.append(\""+result+'")\noutput_buffer.join\nend\n'},$Compiler_wrap_compiled$11.$$arity=1),nil&&"wrap_compiled"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/builder_processors"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$end_with?","$+","$dup","$delete","$cache","$attr_reader","$to_s","$source","$join","$==","$size","$new","$register_processor","$is_a?","$match","$match_regexp","$raise","$inspect","$handles","$map","$with_index","$each_line","$index","$filename","$mark_as_required","$result","$compiled","$source_map","$fetch","$cache_key","$compiler_for","$compile","$class","$merge","$requires","$required_trees","$extname","$prepare","$private","$prepared_source","$module_name"]),self.$require("opal/compiler"),self.$require("opal/erb"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"BuilderProcessors")].concat($nesting);return function($Processor_mark_as_required$7,$Processor_to_s$3){var $nesting=[$Processor_mark_as_required$7=$klass($Processor_mark_as_required$7,null,"Processor")].concat($Processor_to_s$3);$Processor_mark_as_required$7.$$prototype.options=nil,Opal.def($Processor_mark_as_required$7,"$initialize",$Processor_to_s$3=function(source,filename,$a){var $$2;return null==$a&&($a=$hash2([],{})),$truthy(source["$end_with?"]("\n"))||(source=$rb_plus(source,"\n")),$a=[source,filename,$a.$dup()],this.source=$a[0],this.filename=$a[1],this.options=$a[2],this.cache=$send(this.options,"delete",["cache"],(($$2=function(){null==$$2.$$s||$$2.$$s;return $$($nesting,"Opal").$cache()}).$$s=this,$$2.$$arity=0,$$2)),this.requires=[],this.required_trees=[]},$Processor_to_s$3.$$arity=-3),$Processor_mark_as_required$7.$attr_reader("source","filename","options","requires","required_trees"),Opal.def($Processor_mark_as_required$7,"$to_s",$Processor_to_s$3=function(){return this.$source().$to_s()},$Processor_to_s$3.$$arity=0),function($match_regexp$6,$match$ques$5){var $nesting=[$match_regexp$6].concat($match$ques$5);$match_regexp$6.$attr_reader("extensions"),Opal.def($match_regexp$6,"$handles",$match$ques$5=function($a){var matches=nil,extensions=Opal.slice.call(arguments,0,arguments.length),matches=(this.extensions=extensions).$join("|");return extensions.$size()["$=="](1)||(matches="("+matches+")"),this.match_regexp=$$($nesting,"Regexp").$new("\\."+matches+$$($nesting,"REGEXP_END")),$$$($$$("::","Opal"),"Builder").$register_processor(this,extensions),nil},$match$ques$5.$$arity=-1),Opal.def($match_regexp$6,"$match?",$match$ques$5=function(other){var $ret_or_1;return $truthy($ret_or_1=other["$is_a?"]($$($nesting,"String")))?other.$match(this.$match_regexp()):$ret_or_1},$match$ques$5.$$arity=1),Opal.def($match_regexp$6,"$match_regexp",$match_regexp$6=function(){var $ret_or_2;return null==this.match_regexp&&(this.match_regexp=nil),$truthy($ret_or_2=this.match_regexp)?$ret_or_2:this.$raise($$($nesting,"NotImplementedError"))},$match_regexp$6.$$arity=0)}(Opal.get_singleton_class($Processor_mark_as_required$7),$nesting),Opal.def($Processor_mark_as_required$7,"$mark_as_required",$Processor_mark_as_required$7=function(filename){return"Opal.loaded(["+filename.$to_s().$inspect()+"]);"},$Processor_mark_as_required$7.$$arity=1)}($nesting[0],$nesting),function($base,$JsProcessor_source$10,$JsProcessor_source_map$8){var $nesting=[$JsProcessor_source$10=$klass($base,$JsProcessor_source$10,"JsProcessor")].concat($JsProcessor_source_map$8);$JsProcessor_source$10.$$prototype.source_map=$JsProcessor_source$10.$$prototype.source=$JsProcessor_source$10.$$prototype.filename=nil,$JsProcessor_source$10.$handles("js"),Opal.const_set($nesting[0],"ManualFragment",$$($nesting,"Struct").$new("line","column","code","source_map_name")),Opal.def($JsProcessor_source$10,"$source_map",$JsProcessor_source_map$8=function(){var $$9,$ret_or_3,manual_fragments,self=this;return self.source_map=$truthy($ret_or_3=self.source_map)?$ret_or_3:(manual_fragments=$send(self.$source().$each_line().$with_index(),"map",[],(($$9=function(line_source,index){var column,line;null==$$9.$$s||$$9.$$s;return null==line_source&&(line_source=nil),null==index&&(index=nil),column=line_source.$index(/\S/),line=$rb_plus(index,1),$$($nesting,"ManualFragment").$new(line,column,line_source,nil)}).$$s=self,$$9.$$arity=2,$$9)),$$$($$$($$$("::","Opal"),"SourceMap"),"File").$new(manual_fragments,self.$filename(),self.$source()))},$JsProcessor_source_map$8.$$arity=0),Opal.def($JsProcessor_source$10,"$source",$JsProcessor_source$10=function(){return $rb_plus(this.source.$to_s(),this.$mark_as_required(this.filename))},$JsProcessor_source$10.$$arity=0)}($nesting[0],$$($nesting,"Processor"),$nesting),function($base,self,$RubyProcessor_required_trees$18){var $RubyProcessor_match$ques$19,$nesting=[self=$klass($base,self,"RubyProcessor")].concat($RubyProcessor_required_trees$18);self.$$prototype.compiled=self.$$prototype.cache=self.$$prototype.filename=self.$$prototype.source=self.$$prototype.options=nil,self.$handles("rb","opal"),Opal.def(self,"$source",$RubyProcessor_required_trees$18=function(){return this.$compiled().$result()},$RubyProcessor_required_trees$18.$$arity=0),Opal.def(self,"$source_map",$RubyProcessor_required_trees$18=function(){return this.$compiled().$source_map()},$RubyProcessor_required_trees$18.$$arity=0),Opal.def(self,"$compiled",$RubyProcessor_required_trees$18=function(){var $$14,$ret_or_4,self=this;return self.compiled=$truthy($ret_or_4=self.compiled)?$ret_or_4:$send($$$($$($nesting,"Opal"),"Cache"),"fetch",[self.cache,self.$cache_key()],(($$14=function(){var self=null==$$14.$$s?this:$$14.$$s,compiler=nil;return null==self.source&&(self.source=nil),null==self.filename&&(self.filename=nil),(compiler=self.$compiler_for(self.source,$hash2(["file"],{file:self.filename}))).$compile(),compiler}).$$s=self,$$14.$$arity=0,$$14))},$RubyProcessor_required_trees$18.$$arity=0),Opal.def(self,"$cache_key",$RubyProcessor_required_trees$18=function(){return[this.$class(),this.filename,this.source,this.options]},$RubyProcessor_required_trees$18.$$arity=0),Opal.def(self,"$compiler_for",$RubyProcessor_required_trees$18=function(source,options){return null==options&&(options=$hash2([],{})),$$$($$$("::","Opal"),"Compiler").$new(source,this.options.$merge(options))},$RubyProcessor_required_trees$18.$$arity=-2),Opal.def(self,"$requires",$RubyProcessor_required_trees$18=function(){return this.$compiled().$requires()},$RubyProcessor_required_trees$18.$$arity=0),Opal.def(self,"$required_trees",$RubyProcessor_required_trees$18=function(){return this.$compiled().$required_trees()},$RubyProcessor_required_trees$18.$$arity=0),Opal.defs(self,"$match?",$RubyProcessor_match$ques$19=function(other){var $ret_or_5,$zuper_ii,$iter=$RubyProcessor_match$ques$19.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($RubyProcessor_match$ques$19.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy($ret_or_5=$send2(this,$find_super(this,"match?",$RubyProcessor_match$ques$19,!1,!0),"match?",$zuper,$iter))?$ret_or_5:$$($nesting,"File").$extname(other.$to_s())["$=="]("")},$RubyProcessor_match$ques$19.$$arity=1)}($nesting[0],$$($nesting,"Processor"),$nesting),function($base,$OpalERBProcessor_prepare$22,$parent_nesting){var $OpalERBProcessor_initialize$20,$OpalERBProcessor_requires$21;[$OpalERBProcessor_prepare$22=$klass($base,$OpalERBProcessor_prepare$22,"OpalERBProcessor")].concat($parent_nesting),$OpalERBProcessor_prepare$22.$$prototype.source=$OpalERBProcessor_prepare$22.$$prototype.filename=nil,$OpalERBProcessor_prepare$22.$handles("opalerb"),Opal.def($OpalERBProcessor_prepare$22,"$initialize",$OpalERBProcessor_initialize$20=function($a){var $zuper_ii,$iter=$OpalERBProcessor_initialize$20.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($OpalERBProcessor_initialize$20.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$OpalERBProcessor_initialize$20,!1,!0),"initialize",$zuper,$iter),this.source=this.$prepare(this.source,this.filename)},$OpalERBProcessor_initialize$20.$$arity=-1),Opal.def($OpalERBProcessor_prepare$22,"$requires",$OpalERBProcessor_requires$21=function(){var $zuper_ii,$iter=$OpalERBProcessor_requires$21.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($OpalERBProcessor_requires$21.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $rb_plus(["erb"],$send2(this,$find_super(this,"requires",$OpalERBProcessor_requires$21,!1,!0),"requires",$zuper,$iter))},$OpalERBProcessor_requires$21.$$arity=0),$OpalERBProcessor_prepare$22.$private(),Opal.def($OpalERBProcessor_prepare$22,"$prepare",$OpalERBProcessor_prepare$22=function(source,path){return $$$($$$($$$("::","Opal"),"ERB"),"Compiler").$new(source,path).$prepared_source()},$OpalERBProcessor_prepare$22.$$arity=2)}($nesting[0],$$($nesting,"RubyProcessor"),$nesting),function($base,$ERBProcessor_source$23,$parent_nesting){$ERBProcessor_source$23=$klass($base,$ERBProcessor_source$23,"ERBProcessor"),[$ERBProcessor_source$23].concat($parent_nesting);return $ERBProcessor_source$23.$$prototype.source=$ERBProcessor_source$23.$$prototype.filename=nil,$ERBProcessor_source$23.$handles("erb"),Opal.def($ERBProcessor_source$23,"$source",$ERBProcessor_source$23=function(){var result=$$$("::","ERB").$new(this.source.$to_s()).$result();return"Opal.modules["+$$$($$$("::","Opal"),"Compiler").$module_name(this.filename).$inspect()+"] = function() {"+result+"};"},$ERBProcessor_source$23.$$arity=0),nil&&"source"}($nesting[0],$$($nesting,"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules.base64=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$raise","$delete"]),function($base,$Base64_urlsafe_encode64$6){var self=$module($base,"Base64"),$nesting=[self].concat($Base64_urlsafe_encode64$6),chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode=function(input){for(var block,charCode,str=String(input),idx=0,map=chars,output="";str.charAt(0|idx)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8))255<(charCode=str.charCodeAt(idx+=.75))&&self.$raise($$($nesting,"ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),block=block<<8|charCode;return output},decode=function(input){var str=String(input).replace(/=+$/,"");str.length%4==1&&self.$raise($$($nesting,"ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var bs,buffer,bc=0,idx=0,output="";buffer=str.charAt(idx++);~buffer&&(bs=bc%4?64*bs+buffer:buffer,bc++%4)&&(output+=String.fromCharCode(255&bs>>(-2*bc&6))))buffer=chars.indexOf(buffer);return output};return Opal.defs(self,"$decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string.replace(/\r?\n/g,""))},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$encode64",$Base64_urlsafe_encode64$6=function(string){return encode(string).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$strict_decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string)},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$strict_encode64",$Base64_urlsafe_encode64$6=function(string){return encode(string)},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$urlsafe_decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string.replace(/\-/g,"+").replace(/_/g,"/"))},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$urlsafe_encode64",$Base64_urlsafe_encode64$6=function(string,padding){var str=nil;if(null==padding)padding=$hash2([],{});else if(!padding.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(padding=padding.$$smap.padding)&&(padding=!0),str=encode(string).replace(/\+/g,"-").replace(/\//g,"_"),$truthy(padding)||(str=str.$delete("=")),str},$Base64_urlsafe_encode64$6.$$arity=-2),nil&&"urlsafe_encode64"}($nesting[0],$nesting)},Opal.modules["corelib/pack_unpack/format_string_parser"]=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.$$$,Opal.$$),$module=Opal.module;return Opal.add_stubs(["$raise"]),function($base,$parent_nesting){var self=$module($base,"PackUnpack"),$nesting=[self].concat($parent_nesting),directives=["C","S","L","Q","J","c","s","l","q","j","n","N","v","V","U","w","D","d","F","f","E","e","G","g","A","a","Z","B","b","H","h","u","M","m","P","p","@","X","x"],modifiers=["!","_",">","<"];self.eachDirectiveAndCount=function(format,callback){var currentDirective,currentCount,currentModifiers,countSpecified;function reset(){currentDirective=null,currentCount=0,countSpecified=!(currentModifiers=[])}function yieldAndReset(){null!=currentDirective&&(!/[sSiIlLqQjJ]/.test(currentDirective)&&0")&&self.$raise($$($nesting,"RangeError"),"Can't use both '<' and '>'"),countSpecified||(currentCount=1),-1!==currentModifiers.indexOf(">")&&(currentDirective+=">"),callback(currentDirective,currentCount)),reset()}reset();for(var i=0;i":mapChunksToWords(invertChunks(chunkBy(2,identityFunction))),"L>":mapChunksToWords(invertChunks(chunkBy(4,identityFunction))),"Q>":mapChunksToWords(invertChunks(chunkBy(8,identityFunction))),c:toNByteSigned(1,identityFunction),s:toNByteSigned(2,mapChunksToWords(chunkBy(2,identityFunction))),l:toNByteSigned(4,mapChunksToWords(chunkBy(4,identityFunction))),q:toNByteSigned(8,mapChunksToWords(chunkBy(8,identityFunction))),j:null,"s>":toNByteSigned(2,mapChunksToWords(invertChunks(chunkBy(2,identityFunction)))),"l>":toNByteSigned(4,mapChunksToWords(invertChunks(chunkBy(4,identityFunction)))),"q>":toNByteSigned(8,mapChunksToWords(invertChunks(chunkBy(8,identityFunction)))),n:null,N:null,v:null,V:null,U:identityFunction,w:function(data){for(var bytes=callback(data),result=[],buffer="",i=0;i>4,b2=(b2-32&63)<<4|(b3-32&63)>>2,b3=(b3-32&63)<<6|bytes[i+3]-32&63;result.push(255&b1),result.push(255&b2),result.push(255&b3),i+=4,n-=3}++i}}return result.slice(0,length)}}(identityFunction))),M:function(callback){return function(data){return callback(data).replace(/[\t\x20]$/gm,"").replace(/=(?:\r\n?|\n|$)/g,"").replace(/=([a-fA-F0-9]{2})/g,function($0,codePoint){codePoint=parseInt(codePoint,16);return String.fromCharCode(codePoint)})}}(joinChars(bytesToAsciiChars(identityFunction))),m:function(callback){return function(data){return $$($nesting,"Base64").$decode64(callback(data))}}(joinChars(bytesToAsciiChars(identityFunction))),P:null,p:null};function readBytes(n){return function(bytes){return{chunk:bytes.slice(0,n),rest:bytes=bytes.slice(n,bytes.length)}}}function readNTimesAndMerge(callback){return function(buffer,count){var chunkData,chunk=[];if(count===1/0)for(;0":readNTimesAndMerge(readBytes(2)),"L>":readNTimesAndMerge(readBytes(4)),"Q>":readNTimesAndMerge(readBytes(8)),c:readNTimesAndMerge(readBytes(1)),s:readNTimesAndMerge(readBytes(2)),l:readNTimesAndMerge(readBytes(4)),q:readNTimesAndMerge(readBytes(8)),j:null,"s>":readNTimesAndMerge(readBytes(2)),"l>":readNTimesAndMerge(readBytes(4)),"q>":readNTimesAndMerge(readBytes(8)),n:null,N:null,v:null,V:null,U:readNTimesAndMerge(function(bytes){var currentByteIndex=0,bytesLength=bytes.length;function readByte(){var result=bytes[currentByteIndex++];return bytesLength=bytes.length-currentByteIndex,result}var extraLength,c=readByte();if(c>>7==0)return{chunk:[c],rest:bytes.slice(currentByteIndex)};c>>6==2&&self.$raise($$($nesting,"ArgumentError"),"malformed UTF-8 character"),c>>5==6?extraLength=1:c>>4==14?extraLength=2:c>>3==30?extraLength=3:c>>2==62?extraLength=4:c>>1==126?extraLength=5:self.$raise("malformed UTF-8 character"),bytesLength>6!=2&&self.$raise("Invalid multibyte sequence"),result=result<<6|63&c;return result<=65535?{chunk:[result],rest:bytes.slice(currentByteIndex)}:{chunk:[55296+((result-=65536)>>10&1023),56320+(1023&result)],rest:bytes.slice(currentByteIndex)}}),w:readNTimesAndMerge(function(buffer){for(var result=[],i=0;i":!0,"L>":!0,"Q>":!0,c:!0,s:!0,l:!0,q:!0,j:null,"s>":!0,"l>":!0,"q>":!0,n:null,N:null,v:null,V:null,U:!1,w:!1,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:!1,B:!1,b:!1,H:!1,h:!1,u:!1,M:!1,m:!1,P:null,p:null},optimized={"C*":handlers.C,"c*":handlers.c,"A*":handlers.A,"a*":handlers.a,"M*":wrapIntoArray(handlers.M),"m*":wrapIntoArray(handlers.m),"S*":handlers.S,"s*":handlers.s,"L*":handlers.L,"l*":handlers.l,"Q*":handlers.Q,"q*":handlers.q,"S>*":handlers["S>"],"s>*":handlers["s>"],"L>*":handlers["L>"],"l>*":handlers["l>"],"Q>*":handlers["Q>"],"q>*":handlers["q>"]};function alias(existingDirective,newDirective){readChunk[newDirective]=readChunk[existingDirective],handlers[newDirective]=handlers[existingDirective],autocompletion[newDirective]=autocompletion[existingDirective]}return alias("S>","n"),alias("L>","N"),alias("S","v"),alias("L","V"),Opal.def(self,"$unpack",$String_unpack1$2=function(format){var self=this;format=$$($nesting,"Opal")["$coerce_to!"](format,$$($nesting,"String"),"to_str").$gsub(/\s/,"").$delete("\0");var output=[];if("U*"==format&&"UTF-8"===self.internal_encoding.name&&"function"==typeof self.codePointAt){for(var j=0,output=new Array(self.length),i=0;i,<,===,raise,class,<=>,equal?"),function($base){var self=$module("::","Comparable"),$ret_or_1=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $truthy(cmp)||function(lhs,rhs){var class_name;class_name=$eqeqeq(nil,$ret_or_1=rhs)||$eqeqeq(!0,$ret_or_1)||$eqeqeq(!1,$ret_or_1)||$eqeqeq($$$("Integer"),$ret_or_1)||$eqeqeq($$$("Float"),$ret_or_1)?rhs.$inspect():rhs.$$class,$Kernel.$raise($$$("ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return $def(self,"$==",(function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))}),1),$def(self,"$>",(function(other){return cmp_or_fail(this,other)>0}),1),$def(self,"$>=",(function(other){return cmp_or_fail(this,other)>=0}),1),$def(self,"$<",(function(other){return cmp_or_fail(this,other)<0}),1),$def(self,"$<=",(function(other){return cmp_or_fail(this,other)<=0}),1),$def(self,"$between?",(function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)}),2),$def(self,"$clamp",(function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||$Kernel.$raise($$$("TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&$Kernel.$raise($$$("ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&cmp_or_fail(min,max)>0&&$Kernel.$raise($$$("ArgumentError"),"min argument must be smaller than max argument"),min!==nil){if(0==(c=cmp_or_fail(this,min)))return this;if(c<0)return min}return max!==nil&&(c=cmp_or_fail(this,max))>0?max:this}),-2)}()},Opal.modules.pathname=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def,$defs=Opal.defs,$to_ary=Opal.to_ary,$send=Opal.send,$to_a=Opal.to_a,$neqeq=Opal.neqeq,$rb_plus=Opal.rb_plus,$not=Opal.not,$alias=Opal.alias,$module=Opal.module;return Opal.add_stubs("require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries"),self.$require("corelib/comparable"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Pathname"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.path=nil,self.$include($$("Comparable")),$const_set($nesting[0],"SEPARATOR_PAT",$regexp([$$("Regexp").$quote($$$($$("File"),"SEPARATOR"))])),$def(self,"$initialize",(function(path){return $eqeqeq($$("Pathname"),path)?this.path=path.$path().$to_s():$truthy(path["$respond_to?"]("to_path"))?this.path=path.$to_path():$truthy(path["$is_a?"]($$("String")))?this.path=path:$truthy(path["$nil?"]())?this.$raise($$("TypeError"),"no implicit conversion of nil into String"):this.$raise($$("TypeError"),"no implicit conversion of "+path.$class()+" into String"),$eqeq(this.path,"\0")?this.$raise($$("ArgumentError")):nil}),1),$defs(self,"$pwd",(function(){return this.$new($$("Dir").$pwd())}),0),self.$attr_reader("path"),$def(self,"$==",(function(other){return other.$path()["$=="](this.path)}),1),$def(self,"$absolute?",(function(){return this["$relative?"]()["$!"]()}),0),$def(self,"$relative?",(function(){var $b,path=nil,r=nil;for(path=this.path;$truthy(r=this.$chop_basename(path));)path=null==($b=$to_ary(r))[0]?nil:$b[0];return path["$=="]("")}),0),$def(self,"$chop_basename",(function(path){var base;return base=$$("File").$basename(path),$truthy($$("Regexp").$new("^"+$$$($$("Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](base))?nil:[path["$[]"](0,path.$rindex(base)),base]}),1),$def(self,"$root?",(function(){return this.path["$=="]("/")}),0),$def(self,"$parent",(function(){var new_path=nil;return new_path=this.path.$sub(/\/([^\/]+\/?$)/,""),$eqeq(new_path,"")&&(new_path=$truthy(this["$absolute?"]())?"/":"."),$$("Pathname").$new(new_path)}),0),$def(self,"$sub",(function($a){var args,self=this;return args=Opal.slice.call(arguments),$$("Pathname").$new($send(self.path,"sub",$to_a(args)))}),-1),$def(self,"$cleanpath",(function(){return Opal.normalize(this.path)}),0),$def(self,"$to_path",(function(){return this.path}),0),$def(self,"$hash",(function(){return this.path}),0),$def(self,"$expand_path",(function(){return $$("Pathname").$new($$("File").$expand_path(this.path))}),0),$def(self,"$+",(function(other){return $eqeqeq($$("Pathname"),other)||(other=$$("Pathname").$new(other)),$$("Pathname").$new(this.$plus(this.path,other.$to_s()))}),1),$def(self,"$plus",(function(path1,path2){var $b,prefix2=nil,index_list2=nil,basename_list2=nil,r2=nil,basename2=nil,prefix1=nil,$ret_or_1=nil,r1=nil,basename1=nil,suffix2=nil;for(prefix2=path2,index_list2=[],basename_list2=[];$truthy(r2=this.$chop_basename(prefix2));)prefix2=null==($b=$to_ary(r2))[0]?nil:$b[0],basename2=null==$b[1]?nil:$b[1],index_list2.$unshift(prefix2.$length()),basename_list2.$unshift(basename2);if($neqeq(prefix2,""))return path2;for(prefix1=path1;$truthy(!0);){for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="]("."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();if(!$truthy(r1=this.$chop_basename(prefix1)))break;if(prefix1=null==($b=$to_ary(r1))[0]?nil:$b[0],basename1=null==$b[1]?nil:$b[1],!$eqeq(basename1,".")){if($eqeq(basename1,"..")||$truthy(basename_list2["$empty?"]())||$neqeq(basename_list2.$first(),"..")){prefix1=$rb_plus(prefix1,basename1);break}index_list2.$shift(),basename_list2.$shift()}}if(r1=this.$chop_basename(prefix1),$not(r1)&&$truthy($regexp([$$("SEPARATOR_PAT")])["$=~"]($$("File").$basename(prefix1))))for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="](".."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();return $not(basename_list2["$empty?"]())?(suffix2=path2["$[]"](Opal.Range.$new(index_list2.$first(),-1,!1)),$truthy(r1)?$$("File").$join(prefix1,suffix2):$rb_plus(prefix1,suffix2)):$truthy(r1)?prefix1:$$("File").$dirname(prefix1)}),2),$def(self,"$join",(function($a){try{var $post_args,args,self=this,result=nil;return $post_args=Opal.slice.call(arguments),$truthy((args=$post_args)["$empty?"]())?self:(result=args.$pop(),$eqeqeq($$("Pathname"),result)||(result=$$("Pathname").$new(result)),$truthy(result["$absolute?"]())?result:($send(args,"reverse_each",[],(function(arg){if(null==arg&&(arg=nil),$eqeqeq($$("Pathname"),arg)||(arg=$$("Pathname").$new(arg)),result=$rb_plus(arg,result),!$truthy(result["$absolute?"]()))return nil;Opal.ret(result)}),1),$rb_plus(self,result)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$split",(function(){return[this.$dirname(),this.$basename()]}),0),$def(self,"$dirname",(function(){return $$("Pathname").$new($$("File").$dirname(this.path))}),0),$def(self,"$basename",(function(){return $$("Pathname").$new($$("File").$basename(this.path))}),0),$def(self,"$directory?",(function(){return $$("File")["$directory?"](this.path)}),0),$def(self,"$extname",(function(){return $$("File").$extname(this.path)}),0),$def(self,"$<=>",(function(other){return this.$path()["$<=>"](other.$path())}),1),$const_set($nesting[0],"SAME_PATHS",$truthy($$$($$("File"),"FNM_SYSCASE")["$nonzero?"]())?$send(self,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a.$casecmp(b)["$=="](0)}),2):$send(self,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a["$=="](b)}),2)),$def(self,"$relative_path_from",(function(base_directory){var $b,dest_directory,dest_prefix=nil,dest_names=nil,r=nil,basename=nil,base_prefix=nil,base_names=nil,$ret_or_1=nil,$ret_or_2=nil,relpath_names=nil;for(dest_directory=this.$cleanpath().$to_s(),base_directory=base_directory.$cleanpath().$to_s(),dest_prefix=dest_directory,dest_names=[];$truthy(r=this.$chop_basename(dest_prefix));)dest_prefix=null==($b=$to_ary(r))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$neqeq(basename,".")&&dest_names.$unshift(basename);for(base_prefix=base_directory,base_names=[];$truthy(r=this.$chop_basename(base_prefix));)base_prefix=null==($b=$to_ary(r))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$neqeq(basename,".")&&base_names.$unshift(basename);for($truthy($$("SAME_PATHS")["$[]"](dest_prefix,base_prefix))||this.$raise($$("ArgumentError"),"different prefix: "+dest_prefix.$inspect()+" and "+base_directory.$inspect());$truthy($truthy($ret_or_1=$truthy($ret_or_2=dest_names["$empty?"]()["$!"]())?base_names["$empty?"]()["$!"]():$ret_or_2)?$$("SAME_PATHS")["$[]"](dest_names.$first(),base_names.$first()):$ret_or_1);)dest_names.$shift(),base_names.$shift();return $truthy(base_names["$include?"](".."))&&this.$raise($$("ArgumentError"),"base_directory has ..: "+base_directory.$inspect()),base_names.$fill(".."),relpath_names=$rb_plus(base_names,dest_names),$truthy(relpath_names["$empty?"]())?$$("Pathname").$new("."):$$("Pathname").$new($send($$("File"),"join",$to_a(relpath_names)))}),1),$def(self,"$entries",(function(){return $send($$("Dir").$entries(this.path),"map",[],(function $$11(f){return null==f&&(f=nil),(null==$$11.$$s?this:$$11.$$s).$class().$new(f)}),{$$arity:1,$$s:this})}),0),$alias(self,"===","=="),$alias(self,"eql?","=="),$alias(self,"to_s","to_path"),$alias(self,"to_str","to_path")}($nesting[0],0,$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$Pathname",(function(path){return $$("Pathname").$new(path)}),1)}($nesting[0],$nesting)},Opal.modules["opal/hike"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2,$def=Opal.def,$truthy=Opal.truthy,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$to_ary=Opal.to_ary,$regexp=Opal.regexp,$rb_plus=Opal.rb_plus;return Opal.add_stubs("require,attr_reader,freeze,dup,map,new,to_s,sub,=~,find_in_base_path,find_in_paths,[],directory?,sort,reject,entries,[]=,-,key?,exist?,stat,protected,is_a?,last,pop,split,each,match,join,to_proc,paths_contain?,pattern_for,select,sort_matches,file?,any?,paths,==,length,build_pattern_for,extensions,escape,sort_by,scan,inject,index,+,expand_path,concat,normalize_path,normalize_extension,find,root,private,start_with?,relative?"),self.$require("pathname"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Hike")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Index"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.root=$proto.entries=$proto.stats=$proto.pathnames=$proto.patterns=nil,self.$attr_reader("paths"),self.$attr_reader("extensions"),$def(self,"$initialize",(function(root,paths,extensions){return this.root=root,this.paths=paths.$dup().$freeze(),this.extensions=extensions.$dup().$freeze(),this.pathnames=$send(paths,"map",[],(function(path){return null==path&&(path=nil),$$("Pathname").$new(path)}),1),this.stats=$hash2([],{}),this.entries=$hash2([],{}),this.patterns=$hash2([],{})}),3),$def(self,"$root",(function(){return this.root.$to_s()}),0),$def(self,"$index",(function(){return this}),0),$def(self,"$find",(function(logical_path){try{var base_path;return base_path=$$("Pathname").$new(this.root),logical_path=$$("Pathname").$new(logical_path.$sub(/^\//,"")),$truthy(logical_path.$to_s()["$=~"](/^\.\.?\//))?$send(this,"find_in_base_path",[logical_path,base_path],(function(path){null==path&&(path=nil),Opal.ret(path)}),1):$send(this,"find_in_paths",[logical_path],(function(path){null==path&&(path=nil),Opal.ret(path)}),1),nil}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),1),$def(self,"$entries",(function(path){var $ret_or_1,$writer=nil,pathname=nil;return $truthy($ret_or_1=this.entries["$[]"](path.$to_s()))?$ret_or_1:($writer=[path.$to_s(),(pathname=$$("Pathname").$new(path),$truthy(pathname["$directory?"]())?$send(pathname.$entries(),"reject",[],(function(entry){return null==entry&&(entry=nil),entry.$to_s()["$=~"](/^\.|~$|^\#.*\#$/)}),1).$sort():[])],$send(this.entries,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),1),$def(self,"$stat",(function(path){var key,$writer=nil;return key=path.$to_s(),$truthy(this.stats["$key?"](key))?this.stats["$[]"](key):$truthy($$("File")["$exist?"](path))?($writer=[key,$$("File").$stat(path)],$send(this.stats,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):($writer=[key,nil],$send(this.stats,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),1),self.$protected(),$def(self,"$extract_options!",(function(arguments$){return $truthy(arguments$.$last()["$is_a?"]($$("Hash")))?arguments$.$pop().$dup():$hash2([],{})}),1),$def(self,"$find_in_paths",(function $$find_in_paths(logical_path){var $a,$b,dirname,basename,block=$$find_in_paths.$$p||nil;return delete $$find_in_paths.$$p,$b=logical_path.$split(),$a=$to_ary($b),dirname=null==$a[0]?nil:$a[0],basename=null==$a[1]?nil:$a[1],$send(this.pathnames,"each",[],(function $$6(base_path){return null==base_path&&(base_path=nil),$send(null==$$6.$$s?this:$$6.$$s,"match",[base_path.$join(dirname),basename],block.$to_proc())}),{$$arity:1,$$s:this})}),1),$def(self,"$find_in_base_path",(function $$find_in_base_path(logical_path,base_path){var $a,$b,dirname,basename,block=$$find_in_base_path.$$p||nil;return delete $$find_in_base_path.$$p,$b=base_path.$join(logical_path).$split(),dirname=null==($a=$to_ary($b))[0]?nil:$a[0],basename=null==$a[1]?nil:$a[1],$truthy(this["$paths_contain?"](dirname))?$send(this,"match",[dirname,basename],block.$to_proc()):nil}),2),$def(self,"$match",(function $$match(dirname,basename){var pattern,$yield=$$match.$$p||nil,matches=nil;return delete $$match.$$p,matches=this.$entries(dirname),pattern=this.$pattern_for(basename),matches=$send(matches,"select",[],(function(m){return null==m&&(m=nil),m.$to_s()["$=~"](pattern)}),1),$send(this.$sort_matches(matches,basename),"each",[],(function $$8(path){var self=null==$$8.$$s?this:$$8.$$s,pathname=nil,stat=nil;return null==path&&(path=nil),pathname=dirname.$join(path),stat=self.$stat(pathname),$truthy(stat)&&$truthy(stat["$file?"]())?Opal.yield1($yield,pathname.$to_s()):nil}),{$$arity:1,$$s:this})}),2),$def(self,"$paths_contain?",(function(dirname){return $send(this.$paths(),"any?",[],(function(path){return null==path&&(path=nil),dirname.$to_s()["$[]"](0,path.$length())["$=="](path)}),1)}),1),$def(self,"$pattern_for",(function(basename){var $ret_or_1,$writer=nil;return $truthy($ret_or_1=this.patterns["$[]"](basename))?$ret_or_1:($writer=[basename,this.$build_pattern_for(basename)],$send(this.patterns,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),1),$def(self,"$build_pattern_for",(function(basename){var extension_pattern;return extension_pattern=$send(this.$extensions(),"map",[],(function(e){return null==e&&(e=nil),$$("Regexp").$escape(e)}),1).$join("|"),$regexp(["^",basename,"(?:",extension_pattern,")*$"])}),1),$def(self,"$sort_matches",(function(matches,basename){return $send(matches,"sort_by",[],(function $$12(match){var extnames,self=null==$$12.$$s?this:$$12.$$s;return null==match&&(match=nil),extnames=match.$sub(basename.$to_s(),"").$to_s().$scan(/\.[^.]+/),$send(extnames,"inject",[0],(function $$13(sum,ext){var index;return null==sum&&(sum=nil),null==ext&&(ext=nil),index=(null==$$13.$$s?this:$$13.$$s).$extensions().$index(ext),$truthy(index)?$rb_plus($rb_plus(sum,index),1):sum}),{$$arity:2,$$s:self})}),{$$arity:1,$$s:this})}),2)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Trail"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.root=$proto.paths=$proto.extensions=nil,self.$attr_reader("paths"),self.$attr_reader("extensions"),$def(self,"$initialize",(function(root){return null==root&&(root="."),this.root=$$("Pathname").$new(root).$expand_path(),this.paths=[],this.extensions=[]}),-1),$def(self,"$root",(function(){return this.root.$to_s()}),0),$def(self,"$append_paths",(function($a){var paths,self=this;return paths=Opal.slice.call(arguments),self.paths.$concat($send(paths,"map",[],(function $$14(p){return null==p&&(p=nil),(null==$$14.$$s?this:$$14.$$s).$normalize_path(p)}),{$$arity:1,$$s:self}))}),-1),$def(self,"$append_extensions",(function($a){var extensions,self=this;return extensions=Opal.slice.call(arguments),self.extensions.$concat($send(extensions,"map",[],(function $$15(e){return null==e&&(e=nil),(null==$$15.$$s?this:$$15.$$s).$normalize_extension(e)}),{$$arity:1,$$s:self}))}),-1),$def(self,"$find",(function $$find($a){var args,block=$$find.$$p||nil,self=this;return delete $$find.$$p,args=Opal.slice.call(arguments),$send(self.$index(),"find",$to_a(args),block.$to_proc())}),-1),$def(self,"$index",(function(){return $$("Index").$new(this.$root(),this.$paths(),this.$extensions())}),0),$def(self,"$entries",(function(path){var pathname=nil;return pathname=$$("Pathname").$new(path),$truthy(pathname["$directory?"]())?$send(pathname.$entries(),"reject",[],(function(entry){return null==entry&&(entry=nil),entry.$to_s()["$=~"](/^\.|~$|^\#.*\#$/)}),1).$sort():[]}),1),$def(self,"$stat",(function(path){return $truthy($$("File")["$exist?"](path))?$$("File").$stat(path.$to_s()):nil}),1),self.$private(),$def(self,"$normalize_extension",(function(ext){return $truthy(ext["$start_with?"]("."))?ext:"."+ext}),1),$def(self,"$normalize_path",(function(path){return path=$$("Pathname").$new(path),$truthy(path["$relative?"]())&&(path=this.root.$join(path)),path.$expand_path().$to_s()}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/path_reader"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$send=Opal.send,$to_a=Opal.to_a,$def=Opal.def,$truthy=Opal.truthy;return Opal.add_stubs("require,freeze,quote,paths,new,append_paths,append_extensions,expand,nil?,exist?,open,to_proc,=~,absolute?,find_path,file_finder,extensions,private,Pathname,find,attr_reader"),self.$require("opal/regexp_anchors"),self.$require("opal/hike"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"PathReader"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.file_finder=nil,$const_set($nesting[0],"RELATIVE_PATH_REGEXP",$regexp([$$$($$("Opal"),"REGEXP_START"),"\\.?\\.",$$("Regexp").$quote($$$($$("File"),"SEPARATOR"))]).$freeze()),$const_set($nesting[0],"DEFAULT_EXTENSIONS",[".js",".js.rb",".rb",".opalerb"].$freeze()),$def(self,"$initialize",(function(paths,extensions){return null==paths&&(paths=$$("Opal").$paths()),null==extensions&&(extensions=$$("DEFAULT_EXTENSIONS")),this.file_finder=$$$($$("Hike"),"Trail").$new(),$send(this.file_finder,"append_paths",$to_a(paths)),$send(this.file_finder,"append_extensions",$to_a(extensions))}),-1),$def(self,"$read",(function(path){var full_path=nil;return full_path=this.$expand(path),$truthy(full_path["$nil?"]())?nil:$truthy($$("File")["$exist?"](full_path))?$send($$("File"),"open",[full_path,"rb:UTF-8"],"read".$to_proc()):nil}),1),$def(self,"$expand",(function(path){return $truthy($$("Pathname").$new(path)["$absolute?"]())||$truthy(path["$=~"]($$("RELATIVE_PATH_REGEXP")))?path:this.$find_path(path)}),1),$def(self,"$paths",(function(){return this.$file_finder().$paths()}),0),$def(self,"$extensions",(function(){return this.$file_finder().$extensions()}),0),$def(self,"$append_paths",(function($a){var paths,self=this;return paths=Opal.slice.call(arguments),$send(self.$file_finder(),"append_paths",$to_a(paths))}),-1),self.$private(),$def(self,"$find_path",(function(path){var pathname=nil;return pathname=this.$Pathname(path),$truthy(pathname["$absolute?"]())&&$truthy(pathname["$exist?"]())?path:this.$file_finder().$find(path)}),1),self.$attr_reader("file_finder")}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/paths"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$defs=Opal.defs,$send=Opal.send,$to_a=Opal.to_a,$def=Opal.def,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus;return Opal.add_stubs("expand_path,append_paths,concat,require_paths_for_gem,private,find_by_name,raise,each,runtime_dependencies,+,name,gem_dir,map,require_paths,<<,join,extend,freeze,core_dir,std_dir,reset_paths!"),function($base,$parent_nesting){var self=$module($base,"Opal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$gem_dir",(function(){return $$("File").$expand_path("../..","opal/paths.rb")}),0),$defs(self,"$core_dir",(function(){return $$("File").$expand_path("../../../opal","opal/paths.rb")}),0),$defs(self,"$std_dir",(function(){return $$("File").$expand_path("../../../stdlib","opal/paths.rb")}),0),$defs(self,"$append_path",(function(path){return this.$append_paths(path)}),1),$defs(self,"$append_paths",(function($a){var paths,self=this;return null==self.paths&&(self.paths=nil),paths=Opal.slice.call(arguments),self.paths.$concat(paths),nil}),-1),function($base,$parent_nesting){var self=$module($base,"UseGem"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$use_gem",(function(gem_name,include_dependencies){return null==include_dependencies&&(include_dependencies=!0),$send(this,"append_paths",$to_a(this.$require_paths_for_gem(gem_name,include_dependencies)))}),-2),self.$private(),$def(self,"$require_paths_for_gem",(function(gem_name,include_dependencies){var gem_dir,paths=nil,spec=nil;return paths=[],spec=$$$($$("Gem"),"Specification").$find_by_name(gem_name),$truthy(spec)||this.$raise($$("GemNotFound"),gem_name),$truthy(include_dependencies)&&$send(spec.$runtime_dependencies(),"each",[],(function $$1(dependency){return null==dependency&&(dependency=nil),paths=$rb_plus(paths,(null==$$1.$$s?this:$$1.$$s).$require_paths_for_gem(dependency.$name(),include_dependencies))}),{$$arity:1,$$s:this}),gem_dir=spec.$gem_dir(),$send(spec.$require_paths(),"map",[],(function(path){return null==path&&(path=nil),paths["$<<"]($$("File").$join(gem_dir,path))}),1),paths}),2)}($nesting[0],$nesting),self.$extend($$("UseGem")),$defs(self,"$paths",(function(){return null==this.paths&&(this.paths=nil),this.paths.$freeze()}),0),$defs(self,"$reset_paths!",(function(){return this.paths=[this.$core_dir(),this.$std_dir(),this.$gem_dir()],nil}),0),self["$reset_paths!"]()}($nesting[0],$nesting)},Opal.modules.set=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$defs=Opal.defs,$hash2=Opal.hash2,$truthy=Opal.truthy,$eqeqeq=Opal.eqeqeq,$Kernel=Opal.Kernel,$send=Opal.send,$def=Opal.def,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_lt=Opal.rb_lt,$rb_le=Opal.rb_le,$alias=Opal.alias,$module=Opal.module;return Opal.add_stubs("include,new,nil?,===,raise,each,add,merge,class,respond_to?,subtract,dup,join,to_a,equal?,instance_of?,==,instance_variable_get,size,is_a?,all?,include?,[]=,-,enum_for,[],<<,replace,delete,select,reject,delete_if,to_proc,keep_if,each_key,empty?,eql?,instance_eval,clear,<,<=,any?,!,intersect?,keys"),function($base,$super){var self=$klass("::",null,"Set");function is_set(set){$truthy(set["$is_a?"]($$$("Set")))||$Kernel.$raise($$$("ArgumentError"),"value must be a set")}self.$$prototype.hash=nil,self.$include($$$("Enumerable")),$defs(self,"$[]",(function($a){var ary,self=this;return ary=Opal.slice.call(arguments),self.$new(ary)}),-1),$def(self,"$initialize",(function $$initialize(enum$){var block=$$initialize.$$p||nil;return delete $$initialize.$$p,null==enum$&&(enum$=nil),this.hash=$hash2([],{}),$truthy(enum$["$nil?"]())?nil:($eqeqeq($$$("Enumerable"),enum$)||$Kernel.$raise($$$("ArgumentError"),"value must be enumerable"),$truthy(block)?$send(enum$,"each",[],(function $$2(item){return null==item&&(item=nil),(null==$$2.$$s?this:$$2.$$s).$add(Opal.yield1(block,item))}),{$$arity:1,$$s:this}):this.$merge(enum$))}),-1),$def(self,"$dup",(function(){return this.$class().$new().$merge(this)}),0),$def(self,"$-",(function(enum$){return $truthy(enum$["$respond_to?"]("each"))||$Kernel.$raise($$$("ArgumentError"),"value must be enumerable"),this.$dup().$subtract(enum$)}),1),$def(self,"$inspect",(function(){return"#"}),0),$def(self,"$==",(function(other){return!!$truthy(this["$equal?"](other))||($truthy(other["$instance_of?"](this.$class()))?this.hash["$=="](other.$instance_variable_get("@hash")):!(!$truthy(other["$is_a?"]($$$("Set")))||!$eqeq(this.$size(),other.$size()))&&$send(other,"all?",[],(function $$5(o){var self=null==$$5.$$s?this:$$5.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash["$include?"](o)}),{$$arity:1,$$s:this}))}),1),$def(self,"$add",(function(o){var $writer;return $writer=[o,!0],$send(this.hash,"[]=",$to_a($writer)),$rb_minus($writer.length,1),this}),1),$def(self,"$classify",(function $$classify(){var block=$$classify.$$p||nil,result=nil;return delete $$classify.$$p,block===nil?this.$enum_for("classify"):(result=$send($$$("Hash"),"new",[],(function $$6(h,k){var $writer;return null==h&&(h=nil),null==k&&(k=nil),$writer=[k,(null==$$6.$$s?this:$$6.$$s).$class().$new()],$send(h,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:2,$$s:this}),$send(this,"each",[],(function(item){return null==item&&(item=nil),result["$[]"](Opal.yield1(block,item)).$add(item)}),1),result)}),0),$def(self,"$collect!",(function $Set_collect$excl$8(){var block=$Set_collect$excl$8.$$p||nil,result=nil;return delete $Set_collect$excl$8.$$p,block===nil?this.$enum_for("collect!"):(result=this.$class().$new(),$send(this,"each",[],(function(item){return null==item&&(item=nil),result["$<<"](Opal.yield1(block,item))}),1),this.$replace(result))}),0),$def(self,"$delete",(function(o){return this.hash.$delete(o),this}),1),$def(self,"$delete?",(function(o){return $truthy(this["$include?"](o))?(this.$delete(o),this):nil}),1),$def(self,"$delete_if",(function $$delete_if(){var $yield=$$delete_if.$$p||nil;return delete $$delete_if.$$p,$yield===nil?this.$enum_for("delete_if"):($send($send(this,"select",[],(function(o){return null==o&&(o=nil),Opal.yield1($yield,o)}),1),"each",[],(function $$13(o){var self=null==$$13.$$s?this:$$13.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}),{$$arity:1,$$s:this}),this)}),0),$def(self,"$keep_if",(function $$keep_if(){var $yield=$$keep_if.$$p||nil;return delete $$keep_if.$$p,$yield===nil?this.$enum_for("keep_if"):($send($send(this,"reject",[],(function(o){return null==o&&(o=nil),Opal.yield1($yield,o)}),1),"each",[],(function $$15(o){var self=null==$$15.$$s?this:$$15.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}),{$$arity:1,$$s:this}),this)}),0),$def(self,"$reject!",(function $Set_reject$excl$16(){var before,block=$Set_reject$excl$16.$$p||nil;return delete $Set_reject$excl$16.$$p,block===nil?this.$enum_for("reject!"):(before=this.$size(),$send(this,"delete_if",[],block.$to_proc()),$eqeq(this.$size(),before)?nil:this)}),0),$def(self,"$select!",(function $Set_select$excl$17(){var before,block=$Set_select$excl$17.$$p||nil;return delete $Set_select$excl$17.$$p,block===nil?this.$enum_for("select!"):(before=this.$size(),$send(this,"keep_if",[],block.$to_proc()),$eqeq(this.$size(),before)?nil:this)}),0),$def(self,"$add?",(function(o){return $truthy(this["$include?"](o))?nil:this.$add(o)}),1),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;return delete $$each.$$p,block===nil?this.$enum_for("each"):($send(this.hash,"each_key",[],block.$to_proc()),this)}),0),$def(self,"$empty?",(function(){return this.hash["$empty?"]()}),0),$def(self,"$eql?",(function(other){return this.hash["$eql?"]($send(other,"instance_eval",[],(function $$21(){var self=null==$$21.$$s?this:$$21.$$s;return null==self.hash&&(self.hash=nil),self.hash}),{$$arity:0,$$s:this}))}),1),$def(self,"$clear",(function(){return this.hash.$clear(),this}),0),$def(self,"$include?",(function(o){return this.hash["$include?"](o)}),1),$def(self,"$merge",(function(enum$){return $send(enum$,"each",[],(function $$23(item){return null==item&&(item=nil),(null==$$23.$$s?this:$$23.$$s).$add(item)}),{$$arity:1,$$s:this}),this}),1),$def(self,"$replace",(function(enum$){return this.$clear(),this.$merge(enum$),this}),1),$def(self,"$size",(function(){return this.hash.$size()}),0),$def(self,"$subtract",(function(enum$){return $send(enum$,"each",[],(function $$24(item){return null==item&&(item=nil),(null==$$24.$$s?this:$$24.$$s).$delete(item)}),{$$arity:1,$$s:this}),this}),1),$def(self,"$|",(function(enum$){return $truthy(enum$["$respond_to?"]("each"))||$Kernel.$raise($$$("ArgumentError"),"value must be enumerable"),this.$dup().$merge(enum$)}),1),$def(self,"$superset?",(function(set){return is_set(set),!$truthy($rb_lt(this.$size(),set.$size()))&&$send(set,"all?",[],(function $$27(o){return null==o&&(o=nil),(null==$$27.$$s?this:$$27.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$proper_superset?",(function(set){return is_set(set),!$truthy($rb_le(this.$size(),set.$size()))&&$send(set,"all?",[],(function $$29(o){return null==o&&(o=nil),(null==$$29.$$s?this:$$29.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$subset?",(function(set){return is_set(set),!$truthy($rb_lt(set.$size(),this.$size()))&&$send(this,"all?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1)}),1),$def(self,"$proper_subset?",(function(set){return is_set(set),!$truthy($rb_le(set.$size(),this.$size()))&&$send(this,"all?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1)}),1),$def(self,"$intersect?",(function(set){return is_set(set),$truthy($rb_lt(this.$size(),set.$size()))?$send(this,"any?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1):$send(set,"any?",[],(function $$36(o){return null==o&&(o=nil),(null==$$36.$$s?this:$$36.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$disjoint?",(function(set){return this["$intersect?"](set)["$!"]()}),1),$def(self,"$to_a",(function(){return this.hash.$keys()}),0),$alias(self,"+","|"),$alias(self,"<","proper_subset?"),$alias(self,"<<","add"),$alias(self,"<=","subset?"),$alias(self,">","proper_superset?"),$alias(self,">=","superset?"),$alias(self,"difference","-"),$alias(self,"filter!","select!"),$alias(self,"length","size"),$alias(self,"map!","collect!"),$alias(self,"member?","include?"),$alias(self,"union","|")}(),function($base,$parent_nesting){var self=$module("::","Enumerable"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$to_set",(function $$to_set($a,$b){var $post_args,klass,block=$$to_set.$$p||nil,self=this;return delete $$to_set.$$p,($post_args=Opal.slice.call(arguments)).length>0&&(klass=$post_args.shift()),null==klass&&(klass=$$("Set")),$send(klass,"new",[self].concat($to_a($post_args)),block.$to_proc())}),-1)}(0,[])},Opal.modules["opal/config"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$truthy=Opal.truthy,$hash2=Opal.hash2,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$eqeqeq=Opal.eqeqeq,$lambda=Opal.lambda;return Opal.add_stubs("require,extend,private,fetch,[]=,config_options,-,define_singleton_method,config,any?,===,raise,inspect,public,each,call,default_config,config_option,new"),self.$require("set"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Config"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$extend(self),self.$private(),$def(self,"$config_options",(function(){var $ret_or_1;return null==this.config_options&&(this.config_options=nil),this.config_options=$truthy($ret_or_1=this.config_options)?$ret_or_1:$hash2([],{})}),0),$def(self,"$config_option",(function(name,default_value,options){var compiler,valid_values=nil,$writer=nil;return null==options&&(options=$hash2([],{})),compiler=options.$fetch("compiler_option",nil),valid_values=options.$fetch("valid_values",[!0,!1]),$writer=[name,$hash2(["default","compiler"],{default:default_value,compiler:compiler})],$send(this.$config_options(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(this,"define_singleton_method",[name],(function $$1(){return(null==$$1.$$s?this:$$1.$$s).$config().$fetch(name,default_value)}),{$$arity:0,$$s:this}),$send(this,"define_singleton_method",[name+"="],(function $$2(value){var self=null==$$2.$$s?this:$$2.$$s;return null==value&&(value=nil),$truthy($send(valid_values,"any?",[],(function(valid_value){return null==valid_value&&(valid_value=nil),valid_value["$==="](value)}),1))||self.$raise($$("ArgumentError"),"Not a valid value for option "+self+"."+name+", provided "+value.$inspect()+". Must be "+valid_values.$inspect()+" === "+value.$inspect()),$writer=[name,value],$send(self.$config(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this})}),-3),self.$public(),$def(self,"$default_config",(function(){var default_config;return default_config=$hash2([],{}),$send(this.$config_options(),"each",[],(function(name,options){var $writer,default_value=nil;return null==name&&(name=nil),null==options&&(options=nil),default_value=options.$fetch("default"),default_value=$eqeqeq($$("Proc"),default_value)?default_value.$call():default_value,$send(default_config,"[]=",$to_a($writer=[name,default_value])),$writer[$rb_minus($writer.length,1)]}),2),default_config}),0),$def(self,"$compiler_options",(function(){var compiler_options;return compiler_options=$hash2([],{}),$send(this.$config_options(),"each",[],(function $$5(name,options){var $writer,self=null==$$5.$$s?this:$$5.$$s;return null==name&&(name=nil),null==options&&(options=nil),$writer=[options.$fetch("compiler"),self.$config().$fetch(name)],$send(compiler_options,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:2,$$s:this}),compiler_options}),0),$def(self,"$config",(function(){var $ret_or_1;return null==this.config&&(this.config=nil),this.config=$truthy($ret_or_1=this.config)?$ret_or_1:this.$default_config()}),0),$def(self,"$reset!",(function(){return this.config=nil}),0),self.$config_option("method_missing_enabled",!0,$hash2(["compiler_option"],{compiler_option:"method_missing"})),self.$config_option("const_missing_enabled",!0,$hash2(["compiler_option"],{compiler_option:"const_missing"})),self.$config_option("arity_check_enabled",!1,$hash2(["compiler_option"],{compiler_option:"arity_check"})),self.$config_option("freezing_stubs_enabled",!0,$hash2(["compiler_option"],{compiler_option:"freezing"})),self.$config_option("esm",!1,$hash2(["compiler_option"],{compiler_option:"esm"})),self.$config_option("dynamic_require_severity","warning",$hash2(["compiler_option","valid_values"],{compiler_option:"dynamic_require_severity",valid_values:["error","warning","ignore"]})),self.$config_option("missing_require_severity","error",$hash2(["valid_values"],{valid_values:["error","warning","ignore"]})),self.$config_option("irb_enabled",!1,$hash2(["compiler_option"],{compiler_option:"irb"})),self.$config_option("inline_operators_enabled",!0,$hash2(["compiler_option"],{compiler_option:"inline_operators"})),self.$config_option("source_map_enabled",!0),self.$config_option("stubbed_files",$lambda((function(){return $$("Set").$new()}),0),$hash2(["valid_values"],{valid_values:[$$("Set")]}))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/cache"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$truthy=Opal.truthy,$not=Opal.not,$eqeq=Opal.eqeq,$defs=Opal.defs,$klass=Opal.klass,$def=Opal.def,$send=Opal.send,$rb_plus=Opal.rb_plus,$gvars=Opal.gvars,$range=Opal.range;return Opal.add_stubs("require,attr_writer,singleton_class,!,find_dir,[],==,new,module_function,respond_to?,fetch,to_proc,+,digest,join,runtime_key,get,dynamic_cache_result,set,expand_path,gem_dir,grep,map,sort,size,to_f,mtime,to_s,to_i,hexdigest"),self.$require("opal/paths"),function($base,$parent_nesting){var self=$module($base,"Opal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$singleton_class().$attr_writer("cache"),$defs(self,"$cache",(function(){var $ret_or_1;return null==this.cache&&(this.cache=nil),this.cache=$truthy($ret_or_1=this.cache)?$ret_or_1:$eqeq($$("RUBY_ENGINE"),"opal")||$truthy($$("ENV")["$[]"]("OPAL_CACHE_DISABLE"))||$not($$$($$("Cache"),"FileCache").$find_dir())?$$$($$("Cache"),"NullCache").$new():$$$($$("Cache"),"FileCache").$new()}),0),function($base,$parent_nesting){var self=$module($base,"Cache"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,null,"NullCache");$def(self,"$fetch",(function $$fetch($a){var $yield=$$fetch.$$p||nil;return delete $$fetch.$$p,Opal.slice.call(arguments),Opal.yieldX($yield,[])}),-1)}($nesting[0]),self.$module_function(),$def(self,"$fetch",(function $$fetch(cache,key){var data,$ret_or_1,block=$$fetch.$$p||nil,compiler=nil;return delete $$fetch.$$p,$truthy(cache["$respond_to?"]("fetch"))?$send(cache,"fetch",[key],block.$to_proc()):(key=$rb_plus($rb_plus(this.$digest(key.$join("/")),"-"),this.$runtime_key()),data=cache.$get(key),$truthy($ret_or_1=data)?$ret_or_1:(compiler=Opal.yieldX(block,[]),$truthy(compiler.$dynamic_cache_result())||cache.$set(key,compiler),compiler))}),2),$def(self,"$runtime_key",(function(){var $ret_or_1,opal_path=nil,files=nil;return null==this.runtime_key&&(this.runtime_key=nil),null==$gvars.LOADED_FEATURES&&($gvars.LOADED_FEATURES=nil),this.runtime_key=$truthy($ret_or_1=this.runtime_key)?$ret_or_1:(opal_path=$$("File").$expand_path("..",$$("Opal").$gem_dir()),files=$$("Dir")["$[]"](opal_path+"/{Gemfile*,*.gemspec,lib/**/*}"),files=$rb_plus(files,$gvars.LOADED_FEATURES.$grep(/lib\/(parser|ast)/)),this.$digest([$send(files.$sort(),"map",[],(function(f){return null==f&&(f=nil),f+":"+$$("File").$size(f)+":"+$$("File").$mtime(f).$to_f()}),1),$$("RUBY_VERSION"),$$("RUBY_PATCHLEVEL")].$join("/")))}),0),$def(self,"$digest",(function(string){return $$$($$$("Digest"),"SHA256").$hexdigest(string)["$[]"]($range(-32,-1,!1)).$to_i(16).$to_s(36)}),1)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/builder"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$defs=Opal.defs,$send=Opal.send,$hash2=Opal.hash2,$Opal=Opal.Opal,$def=Opal.def,$to_a=Opal.to_a,$rb_plus=Opal.rb_plus,$send2=Opal.send2,$find_super=Opal.find_super,$not=Opal.not,$lambda=Opal.lambda,$eqeqeq=Opal.eqeqeq;return Opal.add_stubs("require,include?,processors,<<,each,extensions,each_pair,public_send,new,paths,flatten,map,compiler_options,missing_require_severity,cache,build,to_proc,build_str,source_for,read,nil?,expand_path,expand_ext,processor_for,+,preload,requires,tree_requires,process_require,autoloads,processed,raise,inspect,message,backtrace,dup,stubs,path_reader,prerequired,to_sym,join,append_paths,include,attr_reader,attr_accessor,private,empty?,to_s,pwd,dirname,Pathname,flat_map,required_trees,find,start_with?,glob,relative_path_from,match?,!,merge,[],===,warn,already_processed,stub?,process_requires,expand,basename"),self.$require("opal/path_reader"),self.$require("opal/paths"),self.$require("opal/config"),self.$require("opal/cache"),self.$require("set"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Builder"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.stubs=$proto.preload=$proto.processors=$proto.path_reader=$proto.prerequired=$proto.compiler_options=$proto.missing_require_severity=$proto.cache=$proto.already_processed=nil,$defs(self,"$processors",(function(){var $ret_or_1;return null==this.processors&&(this.processors=nil),this.processors=$truthy($ret_or_1=this.processors)?$ret_or_1:[]}),0),$defs(self,"$extensions",(function(){var $ret_or_1;return null==this.extensions&&(this.extensions=nil),this.extensions=$truthy($ret_or_1=this.extensions)?$ret_or_1:[]}),0),$defs(self,"$register_processor",(function(processor,processor_extensions){return $truthy(this.$processors()["$include?"](processor))?nil:(this.$processors()["$<<"](processor),$send(processor_extensions,"each",[],(function $$1(ext){return null==ext&&(ext=nil),(null==$$1.$$s?this:$$1.$$s).$extensions()["$<<"](ext)}),{$$arity:1,$$s:this}))}),2),$klass($nesting[0],$$("LoadError"),"MissingRequire"),$klass($nesting[0],$$("LoadError"),"ProcessorNotFound"),$def(self,"$initialize",(function(options){var $ret_or_1=nil;return null==options&&(options=nil),$send($truthy($ret_or_1=options)?$ret_or_1:$hash2([],{}),"each_pair",[],(function $$2(k,v){return null==k&&(k=nil),null==v&&(v=nil),(null==$$2.$$s?this:$$2.$$s).$public_send(k+"=",v)}),{$$arity:2,$$s:this}),this.stubs=$truthy($ret_or_1=this.stubs)?$ret_or_1:[],this.preload=$truthy($ret_or_1=this.preload)?$ret_or_1:[],this.processors=$truthy($ret_or_1=this.processors)?$ret_or_1:$$$($Opal,"Builder").$processors(),this.path_reader=$truthy($ret_or_1=this.path_reader)?$ret_or_1:$$("PathReader").$new($$("Opal").$paths(),$send(this.$extensions(),"map",[],(function(e){return null==e&&(e=nil),["."+e,".js."+e]}),1).$flatten()),this.prerequired=$truthy($ret_or_1=this.prerequired)?$ret_or_1:[],this.compiler_options=$truthy($ret_or_1=this.compiler_options)?$ret_or_1:$$$($$("Opal"),"Config").$compiler_options(),this.missing_require_severity=$truthy($ret_or_1=this.missing_require_severity)?$ret_or_1:$$$($$("Opal"),"Config").$missing_require_severity(),this.cache=$truthy($ret_or_1=this.cache)?$ret_or_1:$$("Opal").$cache(),this.processed=[]}),-1),$defs(self,"$build",(function $$build($a){var args,block=$$build.$$p||nil,self=this;return delete $$build.$$p,args=Opal.slice.call(arguments),$send(self.$new(),"build",$to_a(args),block.$to_proc())}),-1),$def(self,"$build",(function(path,options){return null==options&&(options=$hash2([],{})),this.$build_str(this.$source_for(path),path,options)}),-2),$def(self,"$source_for",(function(path){return this.$read(path,!1)}),1),$def(self,"$build_str",(function(source,rel_path,options){var abs_path=nil,asset=nil,requires=nil,error=nil;null==options&&(options=$hash2([],{}));try{return $truthy(source["$nil?"]())?nil:(abs_path=this.$expand_path(rel_path),rel_path=this.$expand_ext(rel_path),asset=this.$processor_for(source,rel_path,abs_path,!1,options),requires=$rb_plus($rb_plus(this.$preload(),asset.$requires()),this.$tree_requires(asset,abs_path)),$send(requires,"map",[],(function $$4(r){return null==r&&(r=nil),(null==$$4.$$s?this:$$4.$$s).$process_require(r,asset.$autoloads(),options)}),{$$arity:1,$$s:this}),this.$processed()["$<<"](asset),this)}catch($err){if(!Opal.rescue($err,[$$("MissingRequire")]))throw $err;error=$err;try{return this.$raise(error,"A file required by "+rel_path.$inspect()+" wasn't found.\n"+error.$message(),error.$backtrace())}finally{Opal.pop_exception()}}}),-3),$def(self,"$build_require",(function(path,options){return null==options&&(options=$hash2([],{})),this.$process_require(path,[],options)}),-2),$def(self,"$initialize_copy",(function $$initialize_copy(other){var $yield=$$initialize_copy.$$p||nil;return delete $$initialize_copy.$$p,$send2(this,$find_super(this,"initialize_copy",$$initialize_copy,!1,!0),"initialize_copy",[other],$yield),this.stubs=other.$stubs().$dup(),this.preload=other.$preload().$dup(),this.processors=other.$processors().$dup(),this.path_reader=other.$path_reader().$dup(),this.prerequired=other.$prerequired().$dup(),this.compiler_options=other.$compiler_options().$dup(),this.missing_require_severity=other.$missing_require_severity().$to_sym(),this.processed=other.$processed().$dup()}),1),$def(self,"$to_s",(function(){return $send(this.$processed(),"map",[],"to_s".$to_proc()).$join("\n")}),0),$def(self,"$source_map",(function(){return $$$($$$($Opal,"SourceMap"),"Index").$new($send(this.$processed(),"map",[],"source_map".$to_proc()),$hash2(["join"],{join:"\n"}))}),0),$def(self,"$append_paths",(function($a){var paths,self=this;return paths=Opal.slice.call(arguments),$send(self.$path_reader(),"append_paths",$to_a(paths))}),-1),self.$include($$("UseGem")),self.$attr_reader("processed"),self.$attr_accessor("processors","path_reader","stubs","prerequired","preload","compiler_options","missing_require_severity","cache"),self.$private(),$def(self,"$tree_requires",(function(asset,asset_path){var abs_base_paths,dirname=nil;return dirname=$truthy(asset_path.$to_s()["$empty?"]())?$$("Pathname").$pwd():this.$Pathname(asset_path).$expand_path().$dirname(),abs_base_paths=$send(this.$path_reader().$paths(),"map",[],(function(p){return null==p&&(p=nil),$$("File").$expand_path(p)}),1),$send(asset.$required_trees(),"flat_map",[],(function $$6(tree){var self=null==$$6.$$s?this:$$6.$$s,abs_tree_path=nil,abs_base_path=nil,entries_glob=nil;return null==tree&&(tree=nil),abs_tree_path=dirname.$join(tree).$expand_path().$to_s(),abs_base_path=$send(abs_base_paths,"find",[],(function(p){return null==p&&(p=nil),abs_tree_path["$start_with?"](p)}),1),$truthy(abs_base_path)?(abs_base_path=self.$Pathname(abs_base_path),entries_glob=self.$Pathname(abs_tree_path).$join("**","*{.js,}.{"+self.$extensions().$join(",")+"}"),$send($$("Pathname").$glob(entries_glob),"map",[],(function(file){return null==file&&(file=nil),file.$relative_path_from(abs_base_path).$to_s()}),1)):[]}),{$$arity:1,$$s:this})}),2),$def(self,"$processor_for",(function(source,rel_path,abs_path,autoload,options){var processor=nil;return processor=$send(this.$processors(),"find",[],(function(p){return null==p&&(p=nil),p["$match?"](abs_path)}),1),$not(processor)&&$not(autoload)&&this.$raise($$("ProcessorNotFound"),"can't find processor for rel_path: "+rel_path.$inspect()+", abs_path: "+abs_path.$inspect()+", source: "+source.$inspect()+", processors: "+this.$processors().$inspect()),options=options.$merge($hash2(["cache"],{cache:this.$cache()})),processor.$new(source,rel_path,this.compiler_options.$merge(options))}),5),$def(self,"$read",(function(path,autoload){var $ret_or_1,print_list=nil,message=nil,$ret_or_2=nil;return $truthy($ret_or_1=this.$path_reader().$read(path))?$ret_or_1:(print_list=$lambda((function(list){return null==list&&(list=nil),"- "+list.$join("\n- ")+"\n"}),1),message=$rb_plus($rb_plus($rb_plus($rb_plus($rb_plus("can't find file: "+path.$inspect()+" in:\n",print_list["$[]"](this.$path_reader().$paths())),"\nWith the following extensions:\n"),print_list["$[]"](this.$path_reader().$extensions())),"\nAnd the following processors:\n"),print_list["$[]"](this.$processors())),$truthy(autoload)||($eqeqeq("error",$ret_or_2=this.$missing_require_severity())?this.$raise($$("MissingRequire"),message):$eqeqeq("warning",$ret_or_2)?this.$warn(message):$eqeqeq("ignore",$ret_or_2)),nil)}),2),$def(self,"$process_require",(function(rel_path,autoloads,options){var autoload,abs_path,source=nil,asset=nil;return $truthy(this.$prerequired()["$include?"](rel_path))||$truthy(this.$already_processed()["$include?"](rel_path))?nil:(this.$already_processed()["$<<"](rel_path),autoload=autoloads["$include?"](rel_path),source=$truthy(this["$stub?"](rel_path))?"":this.$read(rel_path,autoload),$truthy(source["$nil?"]())?nil:(abs_path=this.$expand_path(rel_path),rel_path=this.$expand_ext(rel_path),asset=this.$processor_for(source,rel_path,abs_path,autoload,options.$merge($hash2(["requirable"],{requirable:!0}))),this.$process_requires(rel_path,$rb_plus(asset.$requires(),this.$tree_requires(asset,abs_path)),asset.$autoloads(),options),this.$processed()["$<<"](asset)))}),3),$def(self,"$expand_ext",(function(path){var abs_path;return abs_path=this.$path_reader().$expand(path),$truthy(abs_path)?$$("File").$join($$("File").$dirname(path),$$("File").$basename(abs_path)):path}),1),$def(self,"$expand_path",(function(path){var $ret_or_1;return $truthy(this["$stub?"](path))?nil:($truthy($ret_or_1=this.$path_reader().$expand(path))?$ret_or_1:$$("File").$expand_path(path)).$to_s()}),1),$def(self,"$process_requires",(function(rel_path,requires,autoloads,options){var error=nil;try{return $send(requires,"map",[],(function $$11(r){return null==r&&(r=nil),(null==$$11.$$s?this:$$11.$$s).$process_require(r,autoloads,options)}),{$$arity:1,$$s:this})}catch($err){if(!Opal.rescue($err,[$$("MissingRequire")]))throw $err;error=$err;try{return this.$raise(error,"A file required by "+rel_path.$inspect()+" wasn't found.\n"+error.$message(),error.$backtrace())}finally{Opal.pop_exception()}}}),4),$def(self,"$already_processed",(function(){var $ret_or_1;return this.already_processed=$truthy($ret_or_1=this.already_processed)?$ret_or_1:$$("Set").$new()}),0),$def(self,"$stub?",(function(path){return this.$stubs()["$include?"](path)}),1),$def(self,"$extensions",(function(){return $$$($Opal,"Builder").$extensions()}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["ast/node"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias,$hash2=Opal.hash2,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$eqeq=Opal.eqeq,$rb_plus=Opal.rb_plus,$rb_times=Opal.rb_times,$to_a=Opal.to_a;return Opal.add_stubs("attr_reader,to_sym,freeze,to_a,assign_properties,hash,class,eql?,type,children,each,instance_variable_set,protected,private,nil?,==,original_dup,send,equal?,respond_to?,to_ast,updated,+,*,fancy_type,is_a?,to_sexp,inspect,map,to_sexp_array,gsub,to_s"),function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Node"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.type=$proto.children=nil,self.$attr_reader("type"),self.$attr_reader("children"),$alias(self,"to_a","children"),self.$attr_reader("hash"),$def(self,"$initialize",(function(type,children,properties){var $a;return null==children&&(children=[]),null==properties&&(properties=$hash2([],{})),$a=[type.$to_sym(),children.$to_a().$freeze()],this.type=$a[0],this.children=$a[1],this.$assign_properties(properties),this.hash=[this.type,this.children,this.$class()].$hash(),this.$freeze()}),-2),$def(self,"$eql?",(function(other){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.$class()["$eql?"](other.$class()))?this.type["$eql?"](other.$type()):$ret_or_2)?this.children["$eql?"](other.$children()):$ret_or_1}),1),$def(self,"$assign_properties",(function(properties){return $send(properties,"each",[],(function $$2(name,value){return null==name&&(name=nil),null==value&&(value=nil),(null==$$2.$$s?this:$$2.$$s).$instance_variable_set("@"+name,value)}),{$$arity:2,$$s:this}),nil}),1),self.$protected("assign_properties"),$alias(self,"original_dup","dup"),self.$private("original_dup"),$def(self,"$dup",(function(){return this}),0),$alias(self,"clone","dup"),$def(self,"$updated",(function(type,children,properties){var new_type,new_children,new_properties,$ret_or_1=nil,copy=nil;return null==type&&(type=nil),null==children&&(children=nil),null==properties&&(properties=nil),new_type=$truthy($ret_or_1=type)?$ret_or_1:this.type,new_children=$truthy($ret_or_1=children)?$ret_or_1:this.children,new_properties=$truthy($ret_or_1=properties)?$ret_or_1:$hash2([],{}),$eqeq(this.type,new_type)&&$eqeq(this.children,new_children)&&$truthy(properties["$nil?"]())?this:((copy=this.$original_dup()).$send("initialize",new_type,new_children,new_properties),copy)}),-1),$def(self,"$==",(function(other){var $ret_or_1=nil;return!!$truthy(this["$equal?"](other))||!!$truthy(other["$respond_to?"]("to_ast"))&&(other=other.$to_ast(),$truthy($ret_or_1=other.$type()["$=="](this.$type()))?other.$children()["$=="](this.$children()):$ret_or_1)}),1),$def(self,"$concat",(function(array){return this.$updated(nil,$rb_plus(this.children,array.$to_a()))}),1),$alias(self,"+","concat"),$def(self,"$append",(function(element){return this.$updated(nil,$rb_plus(this.children,[element]))}),1),$alias(self,"<<","append"),$def(self,"$to_sexp",(function(indent){var indented,sexp=nil;return null==indent&&(indent=0),indented=$rb_times(" ",indent),sexp=indented+"("+this.$fancy_type(),$send(this.$children(),"each",[],(function(child){return null==child&&(child=nil),sexp=$truthy(child["$is_a?"]($$("Node")))?$rb_plus(sexp,"\n"+child.$to_sexp($rb_plus(indent,1))):$rb_plus(sexp," "+child.$inspect())}),1),sexp=$rb_plus(sexp,")")}),-1),$alias(self,"to_s","to_sexp"),$def(self,"$inspect",(function(indent){var indented,sexp=nil;return null==indent&&(indent=0),indented=$rb_times(" ",indent),sexp=indented+"s(:"+this.type,$send(this.$children(),"each",[],(function(child){return null==child&&(child=nil),sexp=$truthy(child["$is_a?"]($$("Node")))?$rb_plus(sexp,",\n"+child.$inspect($rb_plus(indent,1))):$rb_plus(sexp,", "+child.$inspect())}),1),sexp=$rb_plus(sexp,")")}),-1),$def(self,"$to_ast",(function(){return this}),0),$def(self,"$to_sexp_array",(function(){var children_sexp_arrs;return children_sexp_arrs=$send(this.$children(),"map",[],(function(child){return null==child&&(child=nil),$truthy(child["$is_a?"]($$("Node")))?child.$to_sexp_array():child}),1),[this.$type()].concat($to_a(children_sexp_arrs))}),0),$def(self,"$deconstruct",(function(){return[this.$type()].concat($to_a(this.$children()))}),0),self.$protected(),$def(self,"$fancy_type",(function(){return this.type.$to_s().$gsub("_","-")}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["ast/processor/mixin"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("nil?,to_ast,type,respond_to?,send,handler_missing,map,to_a,process"),function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$super,$parent_nesting){return function($base){var self=$module($base,"Mixin");return $def(self,"$process",(function(node){var on_handler,new_node=nil;return $truthy(node["$nil?"]())?nil:(on_handler="on_"+(node=node.$to_ast()).$type(),new_node=$truthy(this["$respond_to?"](on_handler))?this.$send(on_handler,node):this.$handler_missing(node),$truthy(new_node)&&(node=new_node),node)}),1),$def(self,"$process_all",(function(nodes){return $send(nodes.$to_a(),"map",[],(function $$1(node){return null==node&&(node=nil),(null==$$1.$$s?this:$$1.$$s).$process(node)}),{$$arity:1,$$s:this})}),1),$def(self,"$handler_missing",(function(node){return nil}),1)}([$klass($base,null,"Processor")].concat($parent_nesting)[0])}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["ast/processor"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass;return Opal.add_stubs("require,include"),function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Processor"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$require("ast/processor/mixin"),self.$include($$("Mixin"))}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["ast/sexp"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$def=Opal.def;return Opal.add_stubs("new"),function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Sexp"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$s",(function(type,$a){var children;return children=Opal.slice.call(arguments,1),$$("Node").$new(type,children)}),-2)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules.ast=function(Opal){Opal.nil;var self,$module=Opal.module;return Opal.add_stubs("require"),(self=$module([][0],"AST")).$require("ast/node"),self.$require("ast/processor"),self.$require("ast/sexp")},Opal.modules["parser/ast/node"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def;return Opal.add_stubs("attr_reader,[],frozen?,dup,node=,-"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,$super,"Node");return self.$attr_reader("location"),$alias(self,"loc","location"),$def(self,"$assign_properties",(function(properties){var location=nil,$writer=nil;return $truthy(location=properties["$[]"]("location"))?($truthy(location["$frozen?"]())&&(location=location.$dup()),$send(location,"node=",$to_a($writer=[this])),$writer[$rb_minus($writer.length,1)],this.location=location):nil}),1)}([$module($base,"AST")].concat($parent_nesting)[0],$$$($$$("AST"),"Node"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/ast/node"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("require,attr_reader,[],frozen?,dup,merge!,loc,line,column"),self.$require("ast"),self.$require("parser/ast/node"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,$super,"Node");return self.$$prototype.meta=nil,self.$attr_reader("meta"),$def(self,"$assign_properties",(function $$assign_properties(properties){var $yield=$$assign_properties.$$p||nil,meta=nil,$ret_or_1=nil;return delete $$assign_properties.$$p,$truthy(meta=properties["$[]"]("meta"))?($truthy(meta["$frozen?"]())&&(meta=meta.$dup()),this.meta["$merge!"](meta)):this.meta=$truthy($ret_or_1=this.meta)?$ret_or_1:$hash2([],{}),$send2(this,$find_super(this,"assign_properties",$$assign_properties,!1,!0),"assign_properties",[properties],$yield)}),1),$def(self,"$line",(function(){return $truthy(this.$loc())?this.$loc().$line():nil}),0),$def(self,"$column",(function(){return $truthy(this.$loc())?this.$loc().$column():nil}),0)}([$module($base,"AST")].concat($parent_nesting)[0],$$$($$$($$$("Parser"),"AST"),"Node"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["racc/parser"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$const_set=Opal.const_set,$defs=Opal.defs,$gvars=Opal.gvars,$rb_lt=Opal.rb_lt,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$to_ary=Opal.to_ary,$neqeq=Opal.neqeq,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$rb_ge=Opal.rb_ge,$rb_gt=Opal.rb_gt,$eqeqeq=Opal.eqeqeq,$rb_le=Opal.rb_le,$rb_times=Opal.rb_times;return Opal.add_stubs("[],class,<,size,[]=,-,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,push,racc_shift,-@,_racc_do_reduce,===,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index"),function($base,$parent_nesting){var $nesting=[$module($base,"Racc")].concat($parent_nesting),$$=Opal.$r($nesting);$klass($nesting[0],$$("StandardError"),"ParseError")}($nesting[0],$nesting),$truthy($$$("::","ParseError","skip_raise")?"constant":nil)||$const_set($nesting[0],"ParseError",$$$($$("Racc"),"ParseError")),function($base,$parent_nesting){var $nesting=[$module($base,"Racc")].concat($parent_nesting),$$=Opal.$r($nesting);return $truthy($$("Racc_No_Extensions","skip_raise")?"constant":nil)||$const_set($nesting[0],"Racc_No_Extensions",!1),function($base,$super,$parent_nesting){var self=$klass($base,null,"Parser"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.yydebug=$proto.racc_debug_out=$proto.racc_error_status=$proto.racc_t=$proto.racc_vstack=$proto.racc_val=$proto.racc_state=$proto.racc_tstack=nil,$const_set($nesting[0],"Racc_Runtime_Version","1.4.6"),$const_set($nesting[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),$const_set($nesting[0],"Racc_Runtime_Core_Version_R","1.4.6"),$const_set($nesting[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),$const_set($nesting[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),$const_set($nesting[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),$const_set($nesting[0],"Racc_Runtime_Core_Version",$$("Racc_Runtime_Core_Version_R")),$const_set($nesting[0],"Racc_Runtime_Core_Revision",$$("Racc_Runtime_Core_Revision_R")),$const_set($nesting[0],"Racc_Runtime_Type","ruby"),$defs($$("Parser"),"$racc_runtime_type",(function(){return $$("Racc_Runtime_Type")}),0),$def(self,"$_racc_setup",(function(){var $a,$b,$ret_or_1=nil,arg=nil,$writer=nil;return null==$gvars.stderr&&($gvars.stderr=nil),$truthy($$$(this.$class(),"Racc_debug_parser"))||(this.yydebug=!1),$truthy(null!=($a=this.yydebug)&&$a!==nil?"instance-variable":nil)||(this.yydebug=!1),$truthy(this.yydebug)&&($truthy(null!=($b=this.racc_debug_out)&&$b!==nil?"instance-variable":nil)||(this.racc_debug_out=$gvars.stderr),this.racc_debug_out=$truthy($ret_or_1=this.racc_debug_out)?$ret_or_1:$gvars.stderr),arg=$$$(this.$class(),"Racc_arg"),$truthy($rb_lt(arg.$size(),14))&&($send(arg,"[]=",$to_a($writer=[13,!0])),$writer[$rb_minus($writer.length,1)]),arg}),0),$def(self,"$_racc_init_sysvars",(function(){return this.racc_state=[0],this.racc_tstack=[],this.racc_vstack=[],this.racc_t=nil,this.racc_val=nil,this.racc_read_next=!0,this.racc_user_yyerror=!1,this.racc_error_status=0}),0),$def(self,"$do_parse",(function(){return this.$__send__($$("Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)}),0),$def(self,"$next_token",(function(){return this.$raise($$("NotImplementedError"),this.$class()+"#next_token is not defined")}),0),$def(self,"$_racc_do_parse_rb",(function(arg,in_debug){var $a,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,tok=nil,act=nil,i=nil;return $a=$to_ary(arg),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],this.$_racc_init_sysvars(),tok=act=i=nil,$send(this,"catch",["racc_end_parse"],(function $$1(){var $d,$e,self=null==$$1.$$s?this:$$1.$$s,$ret_or_1=nil;for(null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==self.racc_t&&(self.racc_t=nil),null==self.yydebug&&(self.yydebug=nil),null==self.racc_val&&(self.racc_val=nil);$truthy(!0);)for($truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))?($truthy(self.racc_read_next)&&$neqeq(self.racc_t,0)&&($e=self.$next_token(),$d=$to_ary($e),tok=null==$d[0]?nil:$d[0],self.racc_val=null==$d[1]?nil:$d[1],$truthy(tok)?self.racc_t=$truthy($ret_or_1=token_table["$[]"](tok))?$ret_or_1:1:self.racc_t=0,$truthy(self.yydebug)&&self.$racc_read_token(self.racc_t,tok,self.racc_val),self.racc_read_next=!1),i=$rb_plus(i,self.racc_t),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)))):act=action_default["$[]"](self.racc_state["$[]"](-1));$truthy(act=self.$_racc_evalact(act,arg)););}),{$$arity:0,$$s:this})}),2),$def(self,"$yyparse",(function(recv,mid){return this.$__send__($$("Racc_YY_Parse_Method"),recv,mid,this.$_racc_setup(),!0)}),2),$def(self,"$_racc_yyparse_rb",(function(recv,mid,arg,c_debug){var $a,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil;return $a=$to_ary(arg),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],this.$_racc_init_sysvars(),act=nil,i=nil,$send(this,"catch",["racc_end_parse"],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;for(null==self.racc_state&&(self.racc_state=nil);!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)));)for(;$truthy(act=self.$_racc_evalact(action_default["$[]"](self.racc_state["$[]"](-1)),arg)););return $send(recv,"__send__",[mid],(function $$3(tok,val){var self=null==$$3.$$s?this:$$3.$$s,$ret_or_1=nil,$ret_or_2=nil;for(null==self.racc_t&&(self.racc_t=nil),null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==tok&&(tok=nil),null==val&&(val=nil),$truthy(tok)?self.racc_t=$truthy($ret_or_1=token_table["$[]"](tok))?$ret_or_1:1:self.racc_t=0,self.racc_val=val,self.racc_read_next=!1,i=$rb_plus(i,self.racc_t),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););for(;$truthy($truthy($ret_or_1=$truthy($ret_or_2=(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))["$!"]())?$ret_or_2:self.racc_read_next["$!"]())?$ret_or_1:self.racc_t["$=="](0));)for($truthy(i)&&$truthy(i=$rb_plus(i,self.racc_t))&&$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););}),{$$arity:2,$$s:self})}),{$$arity:0,$$s:this})}),4),$def(self,"$_racc_evalact",(function(act,arg){var $a,shift_n,action_table=nil,action_check=nil,action_pointer=nil,reduce_n=nil,code=nil,$ret_or_1=nil,i=nil;if(action_table=null==($a=$to_ary(arg))[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],null==$a[10]?nil:$a[10],shift_n=null==$a[11]?nil:$a[11],reduce_n=null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],null==$a[14]?nil:$a[14],$truthy($rb_gt(act,0))&&$truthy($rb_lt(act,shift_n)))$truthy($rb_gt(this.racc_error_status,0))&&($eqeq(this.racc_t,1)||(this.racc_error_status=$rb_minus(this.racc_error_status,1))),this.racc_vstack.$push(this.racc_val),this.racc_state.$push(act),this.racc_read_next=!0,$truthy(this.yydebug)&&(this.racc_tstack.$push(this.racc_t),this.$racc_shift(this.racc_t,this.racc_tstack,this.racc_vstack));else if($truthy($rb_lt(act,0))&&$truthy($rb_gt(act,reduce_n["$-@"]()))){if(code=$send(this,"catch",["racc_jump"],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s;return null==self.racc_state&&(self.racc_state=nil),self.racc_state.$push(self.$_racc_do_reduce(arg,act)),!1}),{$$arity:0,$$s:this}),$truthy(code)){if($eqeqeq(1,$ret_or_1=code))return this.racc_user_yyerror=!0,reduce_n["$-@"]();if($eqeqeq(2,$ret_or_1))return shift_n;this.$raise("[Racc Bug] unknown jump code")}}else if($eqeq(act,shift_n))$truthy(this.yydebug)&&this.$racc_accept(),this.$throw("racc_end_parse",this.racc_vstack["$[]"](0));else{if($eqeq(act,reduce_n["$-@"]())){for($eqeqeq(0,$ret_or_1=this.racc_error_status)?$truthy(arg["$[]"](21))||this.$on_error(this.racc_t,this.racc_val,this.racc_vstack):$eqeqeq(3,$ret_or_1)&&($eqeq(this.racc_t,0)&&this.$throw("racc_end_parse",nil),this.racc_read_next=!0),this.racc_user_yyerror=!1,this.racc_error_status=3;$truthy(!0)&&!($truthy(i=action_pointer["$[]"](this.racc_state["$[]"](-1)))&&(i=$rb_plus(i,1),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),this.racc_state["$[]"](-1))));)$truthy($rb_le(this.racc_state.$size(),1))&&this.$throw("racc_end_parse",nil),this.racc_state.$pop(),this.racc_vstack.$pop(),$truthy(this.yydebug)&&(this.racc_tstack.$pop(),this.$racc_e_pop(this.racc_state,this.racc_tstack,this.racc_vstack));return act}this.$raise("[Racc Bug] unknown action "+act.$inspect())}return $truthy(this.yydebug)&&this.$racc_next_state(this.racc_state["$[]"](-1),this.racc_state),nil}),2),$def(self,"$_racc_do_reduce",(function(arg,act){var $a,nt_base,use_result,reduce_to,method_id,void_array,k1,goto_table=nil,goto_check=nil,goto_default=nil,goto_pointer=nil,reduce_table=nil,state=nil,vstack=nil,tstack=nil,i=nil,len=nil,tmp_t=nil,tmp_v=nil,$writer=nil,curstate=nil;return null==($a=$to_ary(arg))[0]?nil:$a[0],null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],null==$a[3]?nil:$a[3],goto_table=null==$a[4]?nil:$a[4],goto_check=null==$a[5]?nil:$a[5],goto_default=null==$a[6]?nil:$a[6],goto_pointer=null==$a[7]?nil:$a[7],nt_base=null==$a[8]?nil:$a[8],reduce_table=null==$a[9]?nil:$a[9],null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],use_result=null==$a[13]?nil:$a[13],state=this.racc_state,vstack=this.racc_vstack,tstack=this.racc_tstack,i=$rb_times(act,-3),len=reduce_table["$[]"](i),reduce_to=reduce_table["$[]"]($rb_plus(i,1)),method_id=reduce_table["$[]"]($rb_plus(i,2)),void_array=[],$truthy(this.yydebug)&&(tmp_t=tstack["$[]"](len["$-@"](),len)),tmp_v=vstack["$[]"](len["$-@"](),len),$truthy(this.yydebug)&&($writer=[len["$-@"](),len,void_array],$send(tstack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[len["$-@"](),len,void_array],$send(vstack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[len["$-@"](),len,void_array],$send(state,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(use_result)?vstack.$push(this.$__send__(method_id,tmp_v,vstack,tmp_v["$[]"](0))):vstack.$push(this.$__send__(method_id,tmp_v,vstack)),tstack.$push(reduce_to),$truthy(this.yydebug)&&this.$racc_reduce(tmp_t,reduce_to,tstack,vstack),k1=$rb_minus(reduce_to,nt_base),$truthy(i=goto_pointer["$[]"](k1))&&(i=$rb_plus(i,state["$[]"](-1)),$truthy($rb_ge(i,0))&&$truthy(curstate=goto_table["$[]"](i))&&$eqeq(goto_check["$[]"](i),k1))?curstate:goto_default["$[]"](k1)}),2),$def(self,"$on_error",(function(t,val,vstack){var $ret_or_1;return this.$raise($$("ParseError"),this.$sprintf("\nparse error on value %s (%s)",val.$inspect(),$truthy($ret_or_1=this.$token_to_str(t))?$ret_or_1:"?"))}),3),$def(self,"$yyerror",(function(){return this.$throw("racc_jump",1)}),0),$def(self,"$yyaccept",(function(){return this.$throw("racc_jump",2)}),0),$def(self,"$yyerrok",(function(){return this.racc_error_status=0}),0),$def(self,"$racc_read_token",(function(t,tok,val){return this.racc_debug_out.$print("read "),this.racc_debug_out.$print(tok.$inspect(),"(",this.$racc_token2str(t),") "),this.racc_debug_out.$puts(val.$inspect()),this.racc_debug_out.$puts()}),3),$def(self,"$racc_shift",(function(tok,tstack,vstack){return this.racc_debug_out.$puts("shift "+this.$racc_token2str(tok)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),3),$def(self,"$racc_reduce",(function(toks,sim,tstack,vstack){var out=nil;return(out=this.racc_debug_out).$print("reduce "),$truthy(toks["$empty?"]())?out.$print(" "):$send(toks,"each",[],(function $$5(t){var self=null==$$5.$$s?this:$$5.$$s;return null==t&&(t=nil),out.$print(" ",self.$racc_token2str(t))}),{$$arity:1,$$s:this}),out.$puts(" --\x3e "+this.$racc_token2str(sim)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),4),$def(self,"$racc_accept",(function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()}),0),$def(self,"$racc_e_pop",(function(state,tstack,vstack){return this.racc_debug_out.$puts("error recovering mode: pop token"),this.$racc_print_states(state),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),3),$def(self,"$racc_next_state",(function(curstate,state){return this.racc_debug_out.$puts("goto "+curstate),this.$racc_print_states(state),this.racc_debug_out.$puts()}),2),$def(self,"$racc_print_stacks",(function(t,v){var out=nil;return(out=this.racc_debug_out).$print(" ["),$send(t,"each_index",[],(function $$6(i){var self=null==$$6.$$s?this:$$6.$$s;return null==i&&(i=nil),out.$print(" (",self.$racc_token2str(t["$[]"](i))," ",v["$[]"](i).$inspect(),")")}),{$$arity:1,$$s:this}),out.$puts(" ]")}),2),$def(self,"$racc_print_states",(function(s){var out=nil;return(out=this.racc_debug_out).$print(" ["),$send(s,"each",[],(function(st){return null==st&&(st=nil),out.$print(" ",st)}),1),out.$puts(" ]")}),1),$def(self,"$racc_token2str",(function(tok){var $ret_or_1;return $truthy($ret_or_1=$$$(this.$class(),"Racc_token_to_s_table")["$[]"](tok))?$ret_or_1:this.$raise("[Racc Bug] can't convert token "+tok+" to string")}),1),$def(self,"$token_to_str",(function(t){return $$$(this.$class(),"Racc_token_to_s_table")["$[]"](t)}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/version"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$const_set=Opal.const_set;return function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return $const_set($nesting[0],"VERSION","3.1.1.0")}($nesting[0],$nesting)},Opal.modules["racc/parser"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$const_set=Opal.const_set,$defs=Opal.defs,$gvars=Opal.gvars,$rb_lt=Opal.rb_lt,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$to_ary=Opal.to_ary,$neqeq=Opal.neqeq,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$rb_ge=Opal.rb_ge,$rb_gt=Opal.rb_gt,$eqeqeq=Opal.eqeqeq,$rb_le=Opal.rb_le,$rb_times=Opal.rb_times;return Opal.add_stubs("[],class,<,size,[]=,-,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,push,racc_shift,-@,_racc_do_reduce,===,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index"),function($base,$parent_nesting){var $nesting=[$module($base,"Racc")].concat($parent_nesting),$$=Opal.$r($nesting);$klass($nesting[0],$$("StandardError"),"ParseError")}($nesting[0],$nesting),$truthy($$$("::","ParseError","skip_raise")?"constant":nil)||$const_set($nesting[0],"ParseError",$$$($$("Racc"),"ParseError")),function($base,$parent_nesting){var $nesting=[$module($base,"Racc")].concat($parent_nesting),$$=Opal.$r($nesting);return $truthy($$("Racc_No_Extensions","skip_raise")?"constant":nil)||$const_set($nesting[0],"Racc_No_Extensions",!1),function($base,$super,$parent_nesting){var self=$klass($base,null,"Parser"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.yydebug=$proto.racc_debug_out=$proto.racc_error_status=$proto.racc_t=$proto.racc_vstack=$proto.racc_val=$proto.racc_state=$proto.racc_tstack=nil,$const_set($nesting[0],"Racc_Runtime_Version","1.4.6"),$const_set($nesting[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),$const_set($nesting[0],"Racc_Runtime_Core_Version_R","1.4.6"),$const_set($nesting[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),$const_set($nesting[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),$const_set($nesting[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),$const_set($nesting[0],"Racc_Runtime_Core_Version",$$("Racc_Runtime_Core_Version_R")),$const_set($nesting[0],"Racc_Runtime_Core_Revision",$$("Racc_Runtime_Core_Revision_R")),$const_set($nesting[0],"Racc_Runtime_Type","ruby"),$defs($$("Parser"),"$racc_runtime_type",(function(){return $$("Racc_Runtime_Type")}),0),$def(self,"$_racc_setup",(function(){var $a,$b,$ret_or_1=nil,arg=nil,$writer=nil;return null==$gvars.stderr&&($gvars.stderr=nil),$truthy($$$(this.$class(),"Racc_debug_parser"))||(this.yydebug=!1),$truthy(null!=($a=this.yydebug)&&$a!==nil?"instance-variable":nil)||(this.yydebug=!1),$truthy(this.yydebug)&&($truthy(null!=($b=this.racc_debug_out)&&$b!==nil?"instance-variable":nil)||(this.racc_debug_out=$gvars.stderr),this.racc_debug_out=$truthy($ret_or_1=this.racc_debug_out)?$ret_or_1:$gvars.stderr),arg=$$$(this.$class(),"Racc_arg"),$truthy($rb_lt(arg.$size(),14))&&($send(arg,"[]=",$to_a($writer=[13,!0])),$writer[$rb_minus($writer.length,1)]),arg}),0),$def(self,"$_racc_init_sysvars",(function(){return this.racc_state=[0],this.racc_tstack=[],this.racc_vstack=[],this.racc_t=nil,this.racc_val=nil,this.racc_read_next=!0,this.racc_user_yyerror=!1,this.racc_error_status=0}),0),$def(self,"$do_parse",(function(){return this.$__send__($$("Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)}),0),$def(self,"$next_token",(function(){return this.$raise($$("NotImplementedError"),this.$class()+"#next_token is not defined")}),0),$def(self,"$_racc_do_parse_rb",(function(arg,in_debug){var $a,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,tok=nil,act=nil,i=nil;return $a=$to_ary(arg),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],this.$_racc_init_sysvars(),tok=act=i=nil,$send(this,"catch",["racc_end_parse"],(function $$1(){var $d,$e,self=null==$$1.$$s?this:$$1.$$s,$ret_or_1=nil;for(null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==self.racc_t&&(self.racc_t=nil),null==self.yydebug&&(self.yydebug=nil),null==self.racc_val&&(self.racc_val=nil);$truthy(!0);)for($truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))?($truthy(self.racc_read_next)&&$neqeq(self.racc_t,0)&&($e=self.$next_token(),$d=$to_ary($e),tok=null==$d[0]?nil:$d[0],self.racc_val=null==$d[1]?nil:$d[1],$truthy(tok)?self.racc_t=$truthy($ret_or_1=token_table["$[]"](tok))?$ret_or_1:1:self.racc_t=0,$truthy(self.yydebug)&&self.$racc_read_token(self.racc_t,tok,self.racc_val),self.racc_read_next=!1),i=$rb_plus(i,self.racc_t),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)))):act=action_default["$[]"](self.racc_state["$[]"](-1));$truthy(act=self.$_racc_evalact(act,arg)););}),{$$arity:0,$$s:this})}),2),$def(self,"$yyparse",(function(recv,mid){return this.$__send__($$("Racc_YY_Parse_Method"),recv,mid,this.$_racc_setup(),!0)}),2),$def(self,"$_racc_yyparse_rb",(function(recv,mid,arg,c_debug){var $a,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil;return $a=$to_ary(arg),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],this.$_racc_init_sysvars(),act=nil,i=nil,$send(this,"catch",["racc_end_parse"],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;for(null==self.racc_state&&(self.racc_state=nil);!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)));)for(;$truthy(act=self.$_racc_evalact(action_default["$[]"](self.racc_state["$[]"](-1)),arg)););return $send(recv,"__send__",[mid],(function $$3(tok,val){var self=null==$$3.$$s?this:$$3.$$s,$ret_or_1=nil,$ret_or_2=nil;for(null==self.racc_t&&(self.racc_t=nil),null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==tok&&(tok=nil),null==val&&(val=nil),$truthy(tok)?self.racc_t=$truthy($ret_or_1=token_table["$[]"](tok))?$ret_or_1:1:self.racc_t=0,self.racc_val=val,self.racc_read_next=!1,i=$rb_plus(i,self.racc_t),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););for(;$truthy($truthy($ret_or_1=$truthy($ret_or_2=(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))["$!"]())?$ret_or_2:self.racc_read_next["$!"]())?$ret_or_1:self.racc_t["$=="](0));)for($truthy(i)&&$truthy(i=$rb_plus(i,self.racc_t))&&$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););}),{$$arity:2,$$s:self})}),{$$arity:0,$$s:this})}),4),$def(self,"$_racc_evalact",(function(act,arg){var $a,shift_n,action_table=nil,action_check=nil,action_pointer=nil,reduce_n=nil,code=nil,$ret_or_1=nil,i=nil;if(action_table=null==($a=$to_ary(arg))[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],null==$a[10]?nil:$a[10],shift_n=null==$a[11]?nil:$a[11],reduce_n=null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],null==$a[14]?nil:$a[14],$truthy($rb_gt(act,0))&&$truthy($rb_lt(act,shift_n)))$truthy($rb_gt(this.racc_error_status,0))&&($eqeq(this.racc_t,1)||(this.racc_error_status=$rb_minus(this.racc_error_status,1))),this.racc_vstack.$push(this.racc_val),this.racc_state.$push(act),this.racc_read_next=!0,$truthy(this.yydebug)&&(this.racc_tstack.$push(this.racc_t),this.$racc_shift(this.racc_t,this.racc_tstack,this.racc_vstack));else if($truthy($rb_lt(act,0))&&$truthy($rb_gt(act,reduce_n["$-@"]()))){if(code=$send(this,"catch",["racc_jump"],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s;return null==self.racc_state&&(self.racc_state=nil),self.racc_state.$push(self.$_racc_do_reduce(arg,act)),!1}),{$$arity:0,$$s:this}),$truthy(code)){if($eqeqeq(1,$ret_or_1=code))return this.racc_user_yyerror=!0,reduce_n["$-@"]();if($eqeqeq(2,$ret_or_1))return shift_n;this.$raise("[Racc Bug] unknown jump code")}}else if($eqeq(act,shift_n))$truthy(this.yydebug)&&this.$racc_accept(),this.$throw("racc_end_parse",this.racc_vstack["$[]"](0));else{if($eqeq(act,reduce_n["$-@"]())){for($eqeqeq(0,$ret_or_1=this.racc_error_status)?$truthy(arg["$[]"](21))||this.$on_error(this.racc_t,this.racc_val,this.racc_vstack):$eqeqeq(3,$ret_or_1)&&($eqeq(this.racc_t,0)&&this.$throw("racc_end_parse",nil),this.racc_read_next=!0),this.racc_user_yyerror=!1,this.racc_error_status=3;$truthy(!0)&&!($truthy(i=action_pointer["$[]"](this.racc_state["$[]"](-1)))&&(i=$rb_plus(i,1),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),this.racc_state["$[]"](-1))));)$truthy($rb_le(this.racc_state.$size(),1))&&this.$throw("racc_end_parse",nil),this.racc_state.$pop(),this.racc_vstack.$pop(),$truthy(this.yydebug)&&(this.racc_tstack.$pop(),this.$racc_e_pop(this.racc_state,this.racc_tstack,this.racc_vstack));return act}this.$raise("[Racc Bug] unknown action "+act.$inspect())}return $truthy(this.yydebug)&&this.$racc_next_state(this.racc_state["$[]"](-1),this.racc_state),nil}),2),$def(self,"$_racc_do_reduce",(function(arg,act){var $a,nt_base,use_result,reduce_to,method_id,void_array,k1,goto_table=nil,goto_check=nil,goto_default=nil,goto_pointer=nil,reduce_table=nil,state=nil,vstack=nil,tstack=nil,i=nil,len=nil,tmp_t=nil,tmp_v=nil,$writer=nil,curstate=nil;return null==($a=$to_ary(arg))[0]?nil:$a[0],null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],null==$a[3]?nil:$a[3],goto_table=null==$a[4]?nil:$a[4],goto_check=null==$a[5]?nil:$a[5],goto_default=null==$a[6]?nil:$a[6],goto_pointer=null==$a[7]?nil:$a[7],nt_base=null==$a[8]?nil:$a[8],reduce_table=null==$a[9]?nil:$a[9],null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],use_result=null==$a[13]?nil:$a[13],state=this.racc_state,vstack=this.racc_vstack,tstack=this.racc_tstack,i=$rb_times(act,-3),len=reduce_table["$[]"](i),reduce_to=reduce_table["$[]"]($rb_plus(i,1)),method_id=reduce_table["$[]"]($rb_plus(i,2)),void_array=[],$truthy(this.yydebug)&&(tmp_t=tstack["$[]"](len["$-@"](),len)),tmp_v=vstack["$[]"](len["$-@"](),len),$truthy(this.yydebug)&&($writer=[len["$-@"](),len,void_array],$send(tstack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[len["$-@"](),len,void_array],$send(vstack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[len["$-@"](),len,void_array],$send(state,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(use_result)?vstack.$push(this.$__send__(method_id,tmp_v,vstack,tmp_v["$[]"](0))):vstack.$push(this.$__send__(method_id,tmp_v,vstack)),tstack.$push(reduce_to),$truthy(this.yydebug)&&this.$racc_reduce(tmp_t,reduce_to,tstack,vstack),k1=$rb_minus(reduce_to,nt_base),$truthy(i=goto_pointer["$[]"](k1))&&(i=$rb_plus(i,state["$[]"](-1)),$truthy($rb_ge(i,0))&&$truthy(curstate=goto_table["$[]"](i))&&$eqeq(goto_check["$[]"](i),k1))?curstate:goto_default["$[]"](k1)}),2),$def(self,"$on_error",(function(t,val,vstack){var $ret_or_1;return this.$raise($$("ParseError"),this.$sprintf("\nparse error on value %s (%s)",val.$inspect(),$truthy($ret_or_1=this.$token_to_str(t))?$ret_or_1:"?"))}),3),$def(self,"$yyerror",(function(){return this.$throw("racc_jump",1)}),0),$def(self,"$yyaccept",(function(){return this.$throw("racc_jump",2)}),0),$def(self,"$yyerrok",(function(){return this.racc_error_status=0}),0),$def(self,"$racc_read_token",(function(t,tok,val){return this.racc_debug_out.$print("read "),this.racc_debug_out.$print(tok.$inspect(),"(",this.$racc_token2str(t),") "),this.racc_debug_out.$puts(val.$inspect()),this.racc_debug_out.$puts()}),3),$def(self,"$racc_shift",(function(tok,tstack,vstack){return this.racc_debug_out.$puts("shift "+this.$racc_token2str(tok)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),3),$def(self,"$racc_reduce",(function(toks,sim,tstack,vstack){var out=nil;return(out=this.racc_debug_out).$print("reduce "),$truthy(toks["$empty?"]())?out.$print(" "):$send(toks,"each",[],(function $$5(t){var self=null==$$5.$$s?this:$$5.$$s;return null==t&&(t=nil),out.$print(" ",self.$racc_token2str(t))}),{$$arity:1,$$s:this}),out.$puts(" --\x3e "+this.$racc_token2str(sim)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),4),$def(self,"$racc_accept",(function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()}),0),$def(self,"$racc_e_pop",(function(state,tstack,vstack){return this.racc_debug_out.$puts("error recovering mode: pop token"),this.$racc_print_states(state),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),3),$def(self,"$racc_next_state",(function(curstate,state){return this.racc_debug_out.$puts("goto "+curstate),this.$racc_print_states(state),this.racc_debug_out.$puts()}),2),$def(self,"$racc_print_stacks",(function(t,v){var out=nil;return(out=this.racc_debug_out).$print(" ["),$send(t,"each_index",[],(function $$6(i){var self=null==$$6.$$s?this:$$6.$$s;return null==i&&(i=nil),out.$print(" (",self.$racc_token2str(t["$[]"](i))," ",v["$[]"](i).$inspect(),")")}),{$$arity:1,$$s:this}),out.$puts(" ]")}),2),$def(self,"$racc_print_states",(function(s){var out=nil;return(out=this.racc_debug_out).$print(" ["),$send(s,"each",[],(function(st){return null==st&&(st=nil),out.$print(" ",st)}),1),out.$puts(" ]")}),1),$def(self,"$racc_token2str",(function(tok){var $ret_or_1;return $truthy($ret_or_1=$$$(this.$class(),"Racc_token_to_s_table")["$[]"](tok))?$ret_or_1:this.$raise("[Racc Bug] can't convert token "+tok+" to string")}),1),$def(self,"$token_to_str",(function(t){return $$$(this.$class(),"Racc_token_to_s_table")["$[]"](t)}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/messages"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$const_set=Opal.const_set,$hash2=Opal.hash2,$truthy=Opal.truthy,$eqeqeq=Opal.eqeqeq,$defs=Opal.defs;return Opal.add_stubs("freeze,[],empty?,===,format"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return $const_set($nesting[0],"MESSAGES",$hash2(["unicode_point_too_large","invalid_escape","incomplete_escape","invalid_hex_escape","invalid_unicode_escape","unterminated_unicode","escape_eof","string_eof","regexp_options","cvar_name","ivar_name","trailing_in_number","empty_numeric","invalid_octal","no_dot_digit_literal","bare_backslash","unexpected","embedded_document","heredoc_id_has_newline","heredoc_id_ends_with_nl","unterminated_heredoc_id","invalid_escape_use","ambiguous_literal","ambiguous_regexp","ambiguous_prefix","triple_dot_at_eol","nth_ref_alias","begin_in_method","backref_assignment","invalid_assignment","module_name_const","unexpected_token","argument_const","argument_ivar","argument_gvar","argument_cvar","duplicate_argument","empty_symbol","odd_hash","singleton_literal","dynamic_const","const_reassignment","module_in_def","class_in_def","unexpected_percent_str","block_and_blockarg","masgn_as_condition","block_given_to_yield","invalid_regexp","invalid_return","csend_in_lhs_of_masgn","cant_assign_to_numparam","reserved_for_numparam","ordinary_param_defined","numparam_used_in_outer_scope","circular_argument_reference","pm_interp_in_var_name","lvar_name","undefined_lvar","duplicate_variable_name","duplicate_pattern_key","endless_setter","invalid_id_to_get","forward_arg_after_restarg","no_anonymous_blockarg","useless_else","duplicate_hash_key","invalid_encoding","invalid_action","clobbered","different_replacements","swallowed_insertions","swallowed_insertions_conflict","crossing_deletions","crossing_deletions_conflict","crossing_insertions","crossing_insertions_conflict"],{unicode_point_too_large:"invalid Unicode codepoint (too large)",invalid_escape:"invalid escape character syntax",incomplete_escape:"incomplete character syntax",invalid_hex_escape:"invalid hex escape",invalid_unicode_escape:"invalid Unicode escape",unterminated_unicode:"unterminated Unicode escape",escape_eof:"escape sequence meets end of file",string_eof:"unterminated string meets end of file",regexp_options:"unknown regexp options: %{options}",cvar_name:"`%{name}' is not allowed as a class variable name",ivar_name:"`%{name}' is not allowed as an instance variable name",trailing_in_number:"trailing `%{character}' in number",empty_numeric:"numeric literal without digits",invalid_octal:"invalid octal digit",no_dot_digit_literal:"no . floating literal anymore; put 0 before dot",bare_backslash:"bare backslash only allowed before newline",unexpected:"unexpected `%{character}'",embedded_document:"embedded document meets end of file (and they embark on a romantic journey)",heredoc_id_has_newline:"here document identifier across newlines, never match",heredoc_id_ends_with_nl:"here document identifier ends with a newline",unterminated_heredoc_id:"unterminated heredoc id",invalid_escape_use:"invalid character syntax; use ?%{escape}",ambiguous_literal:"ambiguous first argument; put parentheses or a space even after the operator",ambiguous_regexp:"ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator",ambiguous_prefix:"`%{prefix}' interpreted as argument prefix",triple_dot_at_eol:"... at EOL, should be parenthesized",nth_ref_alias:"cannot define an alias for a back-reference variable",begin_in_method:"BEGIN in method",backref_assignment:"cannot assign to a back-reference variable",invalid_assignment:"cannot assign to a keyword",module_name_const:"class or module name must be a constant literal",unexpected_token:"unexpected token %{token}",argument_const:"formal argument cannot be a constant",argument_ivar:"formal argument cannot be an instance variable",argument_gvar:"formal argument cannot be a global variable",argument_cvar:"formal argument cannot be a class variable",duplicate_argument:"duplicate argument name",empty_symbol:"empty symbol literal",odd_hash:"odd number of entries for a hash",singleton_literal:"cannot define a singleton method for a literal",dynamic_const:"dynamic constant assignment",const_reassignment:"constant re-assignment",module_in_def:"module definition in method body",class_in_def:"class definition in method body",unexpected_percent_str:"%{type}: unknown type of percent-literal",block_and_blockarg:"both block argument and literal block are passed",masgn_as_condition:"multiple assignment in conditional context",block_given_to_yield:"block given to yield",invalid_regexp:"%{message}",invalid_return:"Invalid return in class/module body",csend_in_lhs_of_masgn:"&. inside multiple assignment destination",cant_assign_to_numparam:"cannot assign to numbered parameter %{name}",reserved_for_numparam:"%{name} is reserved for numbered parameter",ordinary_param_defined:"ordinary parameter is defined",numparam_used_in_outer_scope:"numbered parameter is already used in an outer scope",circular_argument_reference:"circular argument reference %{var_name}",pm_interp_in_var_name:"symbol literal with interpolation is not allowed",lvar_name:"`%{name}' is not allowed as a local variable name",undefined_lvar:"no such local variable: `%{name}'",duplicate_variable_name:"duplicate variable name %{name}",duplicate_pattern_key:"duplicate hash pattern key %{name}",endless_setter:"setter method cannot be defined in an endless method definition",invalid_id_to_get:"identifier %{identifier} is not valid to get",forward_arg_after_restarg:"... after rest argument",no_anonymous_blockarg:"no anonymous block parameter",useless_else:"else without rescue is useless",duplicate_hash_key:"key is duplicated and overwritten",invalid_encoding:"literal contains escape sequences incompatible with UTF-8",invalid_action:"cannot %{action}",clobbered:"clobbered by: %{action}",different_replacements:"different replacements: %{replacement} vs %{other_replacement}",swallowed_insertions:"this replacement:",swallowed_insertions_conflict:"swallows some inner rewriting actions:",crossing_deletions:"the deletion of:",crossing_deletions_conflict:"is crossing:",crossing_insertions:"the rewriting action on:",crossing_insertions_conflict:"is crossing that on:"}).$freeze()),function($base,$parent_nesting){var self=$module($base,"Messages"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$compile",(function(reason,arguments$){var template;return template=$$("MESSAGES")["$[]"](reason),$eqeqeq($$("Hash"),arguments$)&&$truthy(arguments$["$empty?"]())?template:this.$format(template,arguments$)}),2)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/deprecation"]=function(Opal){var $base,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("attr_writer,warn"),$base=$nesting[0],$parent_nesting=$nesting,function($base){var self=$module($base,"Deprecation");return self.$attr_writer("warned_of_deprecation"),$def(self,"$warn_of_deprecation",(function(){var $ret_or_1,$ret_or_2=nil;return null==this.warned_of_deprecation&&(this.warned_of_deprecation=nil),this.warned_of_deprecation=$truthy($ret_or_1=this.warned_of_deprecation)?$ret_or_1:!$truthy($ret_or_2=this.$warn($$$(this,"DEPRECATION_WARNING")))||$ret_or_2}),0)}([$module($base,"Parser")].concat($parent_nesting)[0])},Opal.modules["parser/ast/processor"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$alias=Opal.alias,$to_a=Opal.to_a,$not=Opal.not,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs("updated,process_all,on_var,!,nil?,process,on_vasgn,on_argument,is_a?,[],children,process_regular_node,warn"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Processor"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$process_regular_node",(function(node){return node.$updated(nil,this.$process_all(node))}),1),$alias(self,"on_dstr","process_regular_node"),$alias(self,"on_dsym","process_regular_node"),$alias(self,"on_regexp","process_regular_node"),$alias(self,"on_xstr","process_regular_node"),$alias(self,"on_splat","process_regular_node"),$alias(self,"on_kwsplat","process_regular_node"),$alias(self,"on_array","process_regular_node"),$alias(self,"on_pair","process_regular_node"),$alias(self,"on_hash","process_regular_node"),$alias(self,"on_kwargs","process_regular_node"),$alias(self,"on_irange","process_regular_node"),$alias(self,"on_erange","process_regular_node"),$def(self,"$on_var",(function(node){return node}),1),$def(self,"$process_variable_node",(function(node){return this.$on_var(node)}),1),$alias(self,"on_lvar","process_variable_node"),$alias(self,"on_ivar","process_variable_node"),$alias(self,"on_gvar","process_variable_node"),$alias(self,"on_cvar","process_variable_node"),$alias(self,"on_back_ref","process_variable_node"),$alias(self,"on_nth_ref","process_variable_node"),$def(self,"$on_vasgn",(function(node){var $a,name,value_node=nil;return name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value_node=null==$a[1]?nil:$a[1],$not(value_node["$nil?"]())?node.$updated(nil,[name,this.$process(value_node)]):node}),1),$def(self,"$process_var_asgn_node",(function(node){return this.$on_vasgn(node)}),1),$alias(self,"on_lvasgn","process_var_asgn_node"),$alias(self,"on_ivasgn","process_var_asgn_node"),$alias(self,"on_gvasgn","process_var_asgn_node"),$alias(self,"on_cvasgn","process_var_asgn_node"),$alias(self,"on_and_asgn","process_regular_node"),$alias(self,"on_or_asgn","process_regular_node"),$def(self,"$on_op_asgn",(function(node){var $a,var_node,method_name,value_node;return var_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],value_node=null==$a[2]?nil:$a[2],node.$updated(nil,[this.$process(var_node),method_name,this.$process(value_node)])}),1),$alias(self,"on_mlhs","process_regular_node"),$alias(self,"on_masgn","process_regular_node"),$def(self,"$on_const",(function(node){var $a,scope_node,name;return scope_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],node.$updated(nil,[this.$process(scope_node),name])}),1),$def(self,"$on_casgn",(function(node){var $a,scope_node,name,value_node=nil;return scope_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],value_node=null==$a[2]?nil:$a[2],$not(value_node["$nil?"]())?node.$updated(nil,[this.$process(scope_node),name,this.$process(value_node)]):node.$updated(nil,[this.$process(scope_node),name])}),1),$alias(self,"on_args","process_regular_node"),$def(self,"$on_argument",(function(node){var $a,arg_name,value_node=nil;return arg_name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value_node=null==$a[1]?nil:$a[1],$not(value_node["$nil?"]())?node.$updated(nil,[arg_name,this.$process(value_node)]):node}),1),$def(self,"$process_argument_node",(function(node){return this.$on_argument(node)}),1),$alias(self,"on_arg","process_argument_node"),$alias(self,"on_optarg","process_argument_node"),$alias(self,"on_restarg","process_argument_node"),$alias(self,"on_blockarg","process_argument_node"),$alias(self,"on_shadowarg","process_argument_node"),$alias(self,"on_kwarg","process_argument_node"),$alias(self,"on_kwoptarg","process_argument_node"),$alias(self,"on_kwrestarg","process_argument_node"),$alias(self,"on_forward_arg","process_argument_node"),$def(self,"$on_procarg0",(function(node){return $truthy(node.$children()["$[]"](0)["$is_a?"]($$("Symbol")))?this.$on_argument(node):this.$process_regular_node(node)}),1),$alias(self,"on_arg_expr","process_regular_node"),$alias(self,"on_restarg_expr","process_regular_node"),$alias(self,"on_blockarg_expr","process_regular_node"),$alias(self,"on_block_pass","process_regular_node"),$alias(self,"on_module","process_regular_node"),$alias(self,"on_class","process_regular_node"),$alias(self,"on_sclass","process_regular_node"),$def(self,"$on_def",(function(node){var $a,name,args_node,body_node;return name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args_node=null==$a[1]?nil:$a[1],body_node=null==$a[2]?nil:$a[2],node.$updated(nil,[name,this.$process(args_node),this.$process(body_node)])}),1),$def(self,"$on_defs",(function(node){var $a,definee_node,name,args_node,body_node;return definee_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],args_node=null==$a[2]?nil:$a[2],body_node=null==$a[3]?nil:$a[3],node.$updated(nil,[this.$process(definee_node),name,this.$process(args_node),this.$process(body_node)])}),1),$alias(self,"on_undef","process_regular_node"),$alias(self,"on_alias","process_regular_node"),$def(self,"$on_send",(function(node){var $a,arg_nodes,receiver_node=nil,method_name=nil;return receiver_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],arg_nodes=$slice.call($a,2),$truthy(receiver_node)&&(receiver_node=this.$process(receiver_node)),node.$updated(nil,[receiver_node,method_name].concat($to_a(this.$process_all(arg_nodes))))}),1),$alias(self,"on_csend","on_send"),$alias(self,"on_index","process_regular_node"),$alias(self,"on_indexasgn","process_regular_node"),$alias(self,"on_block","process_regular_node"),$alias(self,"on_lambda","process_regular_node"),$def(self,"$on_numblock",(function(node){var $a,method_call,max_numparam,body;return method_call=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],max_numparam=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],node.$updated(nil,[this.$process(method_call),max_numparam,this.$process(body)])}),1),$alias(self,"on_while","process_regular_node"),$alias(self,"on_while_post","process_regular_node"),$alias(self,"on_until","process_regular_node"),$alias(self,"on_until_post","process_regular_node"),$alias(self,"on_for","process_regular_node"),$alias(self,"on_return","process_regular_node"),$alias(self,"on_break","process_regular_node"),$alias(self,"on_next","process_regular_node"),$alias(self,"on_redo","process_regular_node"),$alias(self,"on_retry","process_regular_node"),$alias(self,"on_super","process_regular_node"),$alias(self,"on_yield","process_regular_node"),$alias(self,"on_defined?","process_regular_node"),$alias(self,"on_not","process_regular_node"),$alias(self,"on_and","process_regular_node"),$alias(self,"on_or","process_regular_node"),$alias(self,"on_if","process_regular_node"),$alias(self,"on_when","process_regular_node"),$alias(self,"on_case","process_regular_node"),$alias(self,"on_iflipflop","process_regular_node"),$alias(self,"on_eflipflop","process_regular_node"),$alias(self,"on_match_current_line","process_regular_node"),$alias(self,"on_match_with_lvasgn","process_regular_node"),$alias(self,"on_resbody","process_regular_node"),$alias(self,"on_rescue","process_regular_node"),$alias(self,"on_ensure","process_regular_node"),$alias(self,"on_begin","process_regular_node"),$alias(self,"on_kwbegin","process_regular_node"),$alias(self,"on_preexe","process_regular_node"),$alias(self,"on_postexe","process_regular_node"),$alias(self,"on_case_match","process_regular_node"),$alias(self,"on_in_match","process_regular_node"),$alias(self,"on_match_pattern","process_regular_node"),$alias(self,"on_match_pattern_p","process_regular_node"),$alias(self,"on_in_pattern","process_regular_node"),$alias(self,"on_if_guard","process_regular_node"),$alias(self,"on_unless_guard","process_regular_node"),$alias(self,"on_match_var","process_variable_node"),$alias(self,"on_match_rest","process_regular_node"),$alias(self,"on_pin","process_regular_node"),$alias(self,"on_match_alt","process_regular_node"),$alias(self,"on_match_as","process_regular_node"),$alias(self,"on_array_pattern","process_regular_node"),$alias(self,"on_array_pattern_with_tail","process_regular_node"),$alias(self,"on_hash_pattern","process_regular_node"),$alias(self,"on_const_pattern","process_regular_node"),$alias(self,"on_find_pattern","process_regular_node"),$def(self,"$process_variable_node",(function(node){return this.$warn("Parser::AST::Processor#process_variable_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_var instead."),this.$on_var(node)}),1),$def(self,"$process_var_asgn_node",(function(node){return this.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_vasgn instead."),this.$on_vasgn(node)}),1),$def(self,"$process_argument_node",(function(node){return this.$warn("Parser::AST::Processor#process_argument_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_argument instead."),this.$on_argument(node)}),1),$def(self,"$on_empty_else",(function(node){return node}),1)}($nesting[0],$$$($$$("AST"),"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/meta"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$const_set=Opal.const_set;return Opal.add_stubs("freeze,to_set"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Meta")].concat($parent_nesting);return $const_set($nesting[0],"NODE_TYPES",["true","false","nil","int","float","str","dstr","sym","dsym","xstr","regopt","regexp","array","splat","pair","kwsplat","hash","irange","erange","self","lvar","ivar","cvar","gvar","const","defined?","lvasgn","ivasgn","cvasgn","gvasgn","casgn","mlhs","masgn","op_asgn","and_asgn","ensure","rescue","arg_expr","or_asgn","back_ref","nth_ref","match_with_lvasgn","match_current_line","module","class","sclass","def","defs","undef","alias","args","cbase","arg","optarg","restarg","blockarg","block_pass","kwarg","kwoptarg","kwrestarg","kwnilarg","send","csend","super","zsuper","yield","block","and","not","or","if","when","case","while","until","while_post","until_post","for","break","next","redo","return","resbody","kwbegin","begin","retry","preexe","postexe","iflipflop","eflipflop","shadowarg","complex","rational","__FILE__","__LINE__","__ENCODING__","ident","lambda","indexasgn","index","procarg0","restarg_expr","blockarg_expr","objc_kwarg","objc_restarg","objc_varargs","numargs","numblock","forward_args","forwarded_args","forward_arg","case_match","in_match","in_pattern","match_var","pin","match_alt","match_as","match_rest","array_pattern","match_with_trailing_comma","array_pattern_with_tail","hash_pattern","const_pattern","if_guard","unless_guard","match_nil_pattern","empty_else","find_pattern","kwargs","match_pattern_p","match_pattern"].$to_set().$freeze())}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/buffer"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$enc=Opal.enc,$truthy=Opal.truthy,$gvars=Opal.gvars,$eqeq=Opal.eqeq,$neqeq=Opal.neqeq,$defs=Opal.defs,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$not=Opal.not,$rb_plus=Opal.rb_plus,$rb_ge=Opal.rb_ge,$rb_lt=Opal.rb_lt,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("attr_reader,empty?,=~,start_with?,freeze,==,[],!=,nil?,match,find,encoding,recognize_encoding,force_encoding,encode,to_s,source=,-,open,read,raise,frozen?,dup,reencode_string,class,valid_encoding?,name,raw_source=,gsub,!,ascii_only?,line_index_for_position,line_begins,+,to_a,lines,end_with?,<<,each,chomp!,fetch,source_lines,>=,size,<,new,source,source_range,private,index,bsearch,[]=,method_defined?,bsearch_index"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Buffer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.name=$proto.source=$proto.slice_source=$proto.first_line=$proto.lines=$proto.source_range=$proto.line_begins=$proto.line_index_for_position=$proto.line_range=nil,self.$attr_reader("name","first_line"),$const_set($nesting[0],"ENCODING_RE",$regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),$enc("(","ASCII-8BIT"),$enc("","ASCII-8BIT"),$enc("(utf8-mac)","ASCII-8BIT"),$enc("|","ASCII-8BIT"),$enc("","ASCII-8BIT"),$enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),$enc("|","ASCII-8BIT"),$enc("([A-Za-z0-9_-]+)","ASCII-8BIT"),$enc(")","ASCII-8BIT"),$enc("","ASCII-8BIT")])),$defs(self,"$recognize_encoding",(function(string){var $a,$b,second_line,first_line=nil,encoding_line=nil,result=nil,$ret_or_1=nil,$ret_or_2=nil;return $truthy(string["$empty?"]())?nil:(string["$=~"](/^(.*)\n?(.*\n)?/),second_line=($a=[($b=$gvars["~"])===nil?nil:$b["$[]"](1),($b=$gvars["~"])===nil?nil:$b["$[]"](2)])[1],$truthy((first_line=$a[0])["$start_with?"]($enc("","ASCII-8BIT").$freeze()))?$$$($$("Encoding"),"UTF_8"):(encoding_line=$eqeq(first_line["$[]"](0,2),$enc("#!","ASCII-8BIT").$freeze())?second_line:first_line,$truthy(encoding_line["$nil?"]())||$neqeq(encoding_line["$[]"](0),$enc("#","ASCII-8BIT"))?nil:$truthy(result=$$("ENCODING_RE").$match(encoding_line))?$$("Encoding").$find($truthy($ret_or_1=$truthy($ret_or_2=result["$[]"](3))?$ret_or_2:result["$[]"](4))?$ret_or_1:result["$[]"](6)):nil))}),1),$defs(self,"$reencode_string",(function(input){var original_encoding,detected_encoding=nil;return original_encoding=input.$encoding(),detected_encoding=this.$recognize_encoding(input.$force_encoding($$$($$("Encoding"),"BINARY"))),$truthy(detected_encoding["$nil?"]())?input.$force_encoding(original_encoding):$eqeq(detected_encoding,$$$($$("Encoding"),"BINARY"))?input:input.$force_encoding(detected_encoding).$encode($$$($$("Encoding"),"UTF_8"))}),1),$def(self,"$initialize",(function(name,$a,$b){var $post_args,$kwargs,first_line,source,self=this,$writer=nil;if($post_args=Opal.slice.call(arguments,1),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $post_args.length>0&&(first_line=$post_args.shift()),null==first_line&&(first_line=1),null==(source=$kwargs.$$smap.source)&&(source=nil),self.name=name.$to_s(),self.source=nil,self.first_line=first_line,self.lines=nil,self.line_begins=nil,self.slice_source=nil,self.line_index_for_position=$hash2([],{}),$truthy(source)?($send(self,"source=",$to_a($writer=[source])),$writer[$rb_minus($writer.length,1)]):nil}),-2),$def(self,"$read",(function(){return $send($$("File"),"open",[this.name,$enc("rb","ASCII-8BIT")],(function $$1(io){var $writer,self=null==$$1.$$s?this:$$1.$$s;return null==io&&(io=nil),$writer=[io.$read()],$send(self,"source=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),this}),0),$def(self,"$source",(function(){return $truthy(this.source["$nil?"]())&&this.$raise($$("RuntimeError"),$enc("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),this.source}),0),$def(self,"$source=",(function(input){var $writer;return $truthy(input["$frozen?"]())&&(input=input.$dup()),input=this.$class().$reencode_string(input),$truthy(input["$valid_encoding?"]())||this.$raise($$("EncodingError"),$enc("invalid byte sequence in ","ASCII-8BIT")+input.$encoding().$name()),$send(this,"raw_source=",$to_a($writer=[input])),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$raw_source=",(function(input){return $truthy(this.source)&&this.$raise($$("ArgumentError"),$enc("Source::Buffer is immutable","ASCII-8BIT")),this.source=input.$gsub($enc("\r\n","ASCII-8BIT").$freeze(),$enc("\n","ASCII-8BIT").$freeze()).$freeze(),$not(this.source["$ascii_only?"]())&&$neqeq(this.source.$encoding(),$$$($$("Encoding"),"UTF_32LE"))&&$neqeq(this.source.$encoding(),$$$($$("Encoding"),"BINARY"))?this.slice_source=this.source.$encode($$$($$("Encoding"),"UTF_32LE")):nil}),1),$def(self,"$slice",(function(range){return $truthy(this.slice_source["$nil?"]())?this.source["$[]"](range):this.slice_source["$[]"](range).$encode(this.source.$encoding())}),1),$def(self,"$decompose_position",(function(position){var line_index,line_begin;return line_index=this.$line_index_for_position(position),line_begin=this.$line_begins()["$[]"](line_index),[$rb_plus(this.first_line,line_index),$rb_minus(position,line_begin)]}),1),$def(self,"$line_for_position",(function(position){return $rb_plus(this.$line_index_for_position(position),this.first_line)}),1),$def(self,"$column_for_position",(function(position){var line_index;return line_index=this.$line_index_for_position(position),$rb_minus(position,this.$line_begins()["$[]"](line_index))}),1),$def(self,"$source_lines",(function(){var $ret_or_1,lines=nil;return this.lines=$truthy($ret_or_1=this.lines)?$ret_or_1:(lines=this.source.$lines().$to_a(),$truthy(this.source["$end_with?"]($enc("\n","ASCII-8BIT").$freeze()))&&lines["$<<"]($enc("","ASCII-8BIT").$dup()),$send(lines,"each",[],(function(line){return null==line&&(line=nil),line["$chomp!"]($enc("\n","ASCII-8BIT").$freeze()),line.$freeze()}),1),lines.$freeze())}),0),$def(self,"$source_line",(function(lineno){return this.$source_lines().$fetch($rb_minus(lineno,this.first_line)).$dup()}),1),$def(self,"$line_range",(function(lineno){var index;return index=$rb_minus(lineno,this.first_line),$truthy($rb_lt(index,0))||$truthy($rb_ge($rb_plus(index,1),this.$line_begins().$size()))?this.$raise($$("IndexError"),$enc("Parser::Source::Buffer: range for line ","ASCII-8BIT")+""+lineno+$enc(" requested, valid line numbers are ","ASCII-8BIT")+this.first_line+$enc("..","ASCII-8BIT")+$rb_minus($rb_plus(this.first_line,this.$line_begins().$size()),2)):$$("Range").$new(this,this.$line_begins()["$[]"](index),$rb_minus(this.$line_begins()["$[]"]($rb_plus(index,1)),1))}),1),$def(self,"$source_range",(function(){var $ret_or_1;return this.source_range=$truthy($ret_or_1=this.source_range)?$ret_or_1:$$("Range").$new(this,0,this.$source().$size())}),0),$def(self,"$last_line",(function(){return $rb_minus($rb_plus(this.$line_begins().$size(),this.first_line),2)}),0),$def(self,"$freeze",(function $$freeze(){var $yield=$$freeze.$$p||nil;return delete $$freeze.$$p,this.$source_lines(),this.$line_begins(),this.$source_range(),$send2(this,$find_super(this,"freeze",$$freeze,!1,!0),"freeze",[],$yield)}),0),$def(self,"$inspect",(function(){return $enc("#<","ASCII-8BIT")+this.$class()+$enc(" ","ASCII-8BIT")+this.$name()+$enc(">","ASCII-8BIT")}),0),self.$private(),$def(self,"$line_begins",(function(){var $ret_or_1,self=this,begins=nil,index=nil;return self.line_begins=$truthy($ret_or_1=self.line_begins)?$ret_or_1:(begins=[0],index=0,function(){for(;$truthy(index=self.source.$index($enc("\n","ASCII-8BIT").$freeze(),index));)index=$rb_plus(index,1),begins["$<<"](index)}(),begins["$<<"]($rb_plus(self.source.$size(),1)),begins)}),0),$def(self,"$line_index_for_position",(function(position){var $ret_or_1,index=nil,$writer=nil;return $truthy($ret_or_1=this.line_index_for_position["$[]"](position))?$ret_or_1:(index=$rb_minus(this.$bsearch(this.$line_begins(),position),1),$truthy(this.line_index_for_position["$frozen?"]())||($writer=[position,index],$send(this.line_index_for_position,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),index)}),1),$truthy($$("Array")["$method_defined?"]("bsearch_index"))?$def(self,"$bsearch",(function(line_begins,position){var $ret_or_1;return $truthy($ret_or_1=$send(line_begins,"bsearch_index",[],(function(line_begin){return null==line_begin&&(line_begin=nil),$rb_lt(position,line_begin)}),1))?$ret_or_1:$rb_minus(line_begins.$size(),1)}),2):$def(self,"$bsearch",(function(line_begins,position){var $ret_or_1=nil;return this.line_range=$truthy($ret_or_1=this.line_range)?$ret_or_1:Opal.Range.$new(0,line_begins.$size(),!0),$truthy($ret_or_1=$send(this.line_range,"bsearch",[],(function(i){return null==i&&(i=nil),$rb_lt(position,line_begins["$[]"](i))}),1))?$ret_or_1:$rb_minus(line_begins.$size(),1)}),2)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/range"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$rb_lt=Opal.rb_lt,$def=Opal.def,$hash2=Opal.hash2,$rb_minus=Opal.rb_minus,$alias=Opal.alias,$neqeq=Opal.neqeq,$to_ary=Opal.to_ary,$rb_plus=Opal.rb_plus,$rb_ge=Opal.rb_ge,$rb_times=Opal.rb_times,$eqeq=Opal.eqeq;return Opal.add_stubs("include,attr_reader,<,raise,nil?,freeze,with,-,line_for_position,alias_method,column_for_position,!=,line,last_line,inspect,column,last_column,source_line,slice,begin_pos,end_pos,include?,source,to_a,decompose_position,join,name,+,new,min,max,disjoint?,empty?,>=,!,<=>,contains?,overlaps?,==,*,source_buffer,is_a?,nonzero?,hash"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Range"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.begin_pos=$proto.end_pos=$proto.source_buffer=nil,self.$include($$("Comparable")),self.$attr_reader("source_buffer"),self.$attr_reader("begin_pos","end_pos"),$def(self,"$initialize",(function(source_buffer,begin_pos,end_pos){var $a;return $truthy($rb_lt(end_pos,begin_pos))&&this.$raise($$("ArgumentError"),"Parser::Source::Range: end_pos must not be less than begin_pos"),$truthy(source_buffer["$nil?"]())&&this.$raise($$("ArgumentError"),"Parser::Source::Range: source_buffer must not be nil"),this.source_buffer=source_buffer,$a=[begin_pos,end_pos],this.begin_pos=$a[0],this.end_pos=$a[1],this.$freeze()}),3),$def(self,"$begin",(function(){return this.$with($hash2(["end_pos"],{end_pos:this.begin_pos}))}),0),$def(self,"$end",(function(){return this.$with($hash2(["begin_pos"],{begin_pos:this.end_pos}))}),0),$def(self,"$size",(function(){return $rb_minus(this.end_pos,this.begin_pos)}),0),$alias(self,"length","size"),$def(self,"$line",(function(){return this.source_buffer.$line_for_position(this.begin_pos)}),0),self.$alias_method("first_line","line"),$def(self,"$column",(function(){return this.source_buffer.$column_for_position(this.begin_pos)}),0),$def(self,"$last_line",(function(){return this.source_buffer.$line_for_position(this.end_pos)}),0),$def(self,"$last_column",(function(){return this.source_buffer.$column_for_position(this.end_pos)}),0),$def(self,"$column_range",(function(){return $neqeq(this.$line(),this.$last_line())&&this.$raise($$("RangeError"),this.$inspect()+" spans more than one line"),Opal.Range.$new(this.$column(),this.$last_column(),!0)}),0),$def(self,"$source_line",(function(){return this.source_buffer.$source_line(this.$line())}),0),$def(self,"$source",(function(){return this.source_buffer.$slice(Opal.Range.$new(this.$begin_pos(),this.$end_pos(),!0))}),0),$def(self,"$is?",(function($a){var self=this;return Opal.slice.call(arguments)["$include?"](self.$source())}),-1),$def(self,"$to_a",(function(){return Opal.Range.$new(this.begin_pos,this.end_pos,!0).$to_a()}),0),$def(self,"$to_range",(function(){return Opal.Range.$new(this.$begin_pos(),this.$end_pos(),!0)}),0),$def(self,"$to_s",(function(){var $a,$b,column,line=nil;return $b=this.source_buffer.$decompose_position(this.begin_pos),line=null==($a=$to_ary($b))[0]?nil:$a[0],column=null==$a[1]?nil:$a[1],[this.source_buffer.$name(),line,$rb_plus(column,1)].$join(":")}),0),$def(self,"$with",(function($kwargs){var begin_pos,end_pos;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(begin_pos=$kwargs.$$smap.begin_pos)&&(begin_pos=this.begin_pos),null==(end_pos=$kwargs.$$smap.end_pos)&&(end_pos=this.end_pos),$$("Range").$new(this.source_buffer,begin_pos,end_pos)}),-1),$def(self,"$adjust",(function($kwargs){var begin_pos,end_pos;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(begin_pos=$kwargs.$$smap.begin_pos)&&(begin_pos=0),null==(end_pos=$kwargs.$$smap.end_pos)&&(end_pos=0),$$("Range").$new(this.source_buffer,$rb_plus(this.begin_pos,begin_pos),$rb_plus(this.end_pos,end_pos))}),-1),$def(self,"$resize",(function(new_size){return this.$with($hash2(["end_pos"],{end_pos:$rb_plus(this.begin_pos,new_size)}))}),1),$def(self,"$join",(function(other){return $$("Range").$new(this.source_buffer,[this.begin_pos,other.$begin_pos()].$min(),[this.end_pos,other.$end_pos()].$max())}),1),$def(self,"$intersect",(function(other){return $truthy(this["$disjoint?"](other))?nil:$$("Range").$new(this.source_buffer,[this.begin_pos,other.$begin_pos()].$max(),[this.end_pos,other.$end_pos()].$min())}),1),$def(self,"$disjoint?",(function(other){var $ret_or_1=nil;return $truthy(this["$empty?"]())&&$truthy(other["$empty?"]())?this.begin_pos["$!="](other.$begin_pos()):$truthy($ret_or_1=$rb_ge(this.begin_pos,other.$end_pos()))?$ret_or_1:$rb_ge(other.$begin_pos(),this.end_pos)}),1),$def(self,"$overlaps?",(function(other){return this["$disjoint?"](other)["$!"]()}),1),$def(self,"$contains?",(function(other){return $rb_ge($rb_plus(other.$begin_pos()["$<=>"](this.begin_pos),this.end_pos["$<=>"](other.$end_pos())),$truthy(other["$empty?"]())?2:1)}),1),$def(self,"$contained?",(function(other){return other["$contains?"](this)}),1),$def(self,"$crossing?",(function(other){return!!$truthy(this["$overlaps?"](other))&&$rb_times(this.begin_pos["$<=>"](other.$begin_pos()),this.end_pos["$<=>"](other.$end_pos()))["$=="](1)}),1),$def(self,"$empty?",(function(){return this.begin_pos["$=="](this.end_pos)}),0),$def(self,"$<=>",(function(other){var $ret_or_1;return $truthy(other["$is_a?"]($$$($$$($$$("Parser"),"Source"),"Range")))&&$eqeq(this.source_buffer,other.$source_buffer())?$truthy($ret_or_1=this.begin_pos["$<=>"](other.$begin_pos())["$nonzero?"]())?$ret_or_1:this.end_pos["$<=>"](other.$end_pos()):nil}),1),self.$alias_method("eql?","=="),$def(self,"$hash",(function(){return[this.source_buffer,this.begin_pos,this.end_pos].$hash()}),0),$def(self,"$inspect",(function(){return"#"}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/comment"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$defs=Opal.defs,$def=Opal.def,$truthy=Opal.truthy;return Opal.add_stubs("attr_reader,alias_method,new,associate,associate_locations,associate_by_identity,freeze,source,start_with?,text,==,type,is_a?,location,to_s,expression,inspect"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Comment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.location=nil,self.$attr_reader("text"),self.$attr_reader("location"),self.$alias_method("loc","location"),$defs(self,"$associate",(function(ast,comments){return $$("Associator").$new(ast,comments).$associate()}),2),$defs(self,"$associate_locations",(function(ast,comments){return $$("Associator").$new(ast,comments).$associate_locations()}),2),$defs(self,"$associate_by_identity",(function(ast,comments){return $$("Associator").$new(ast,comments).$associate_by_identity()}),2),$def(self,"$initialize",(function(range){return this.location=$$$($$$($$("Parser"),"Source"),"Map").$new(range),this.text=range.$source().$freeze(),this.$freeze()}),1),$def(self,"$type",(function(){return $truthy(this.$text()["$start_with?"]("#".$freeze()))?"inline":$truthy(this.$text()["$start_with?"]("=begin".$freeze()))?"document":nil}),0),$def(self,"$inline?",(function(){return this.$type()["$=="]("inline")}),0),$def(self,"$document?",(function(){return this.$type()["$=="]("document")}),0),$def(self,"$==",(function(other){var $ret_or_1;return $truthy($ret_or_1=other["$is_a?"]($$$($$("Source"),"Comment")))?this.location["$=="](other.$location()):$ret_or_1}),1),$def(self,"$inspect",(function(){return"#"}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/comment/associator"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$const_set=Opal.const_set,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$eqeq=Opal.eqeq,$rb_le=Opal.rb_le,$rb_plus=Opal.rb_plus,$not=Opal.not;return Opal.add_stubs("attr_accessor,do_associate,private,freeze,[],include?,type,sort_by,compact,children,begin_pos,expression,loc,select,is_a?,new,[]=,-,==,compare_by_identity,advance_comment,advance_through_directives,visit,process_leading_comments,location,<=,line,last_line,each,children_in_source_order,process_trailing_comments,current_comment_before?,associate_and_advance_comment,current_comment_before_end?,current_comment_decorates?,+,!,end_pos,<<,start_with?,text,=~"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Associator"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.map_using=$proto.mapping=$proto.skip_directives=$proto.ast=$proto.current_comment=$proto.comment_num=$proto.comments=nil,self.$attr_accessor("skip_directives"),$def(self,"$initialize",(function(ast,comments){return this.ast=ast,this.comments=comments,this.skip_directives=!0}),2),$def(self,"$associate",(function(){return this.map_using="eql",this.$do_associate()}),0),$def(self,"$associate_locations",(function(){return this.map_using="location",this.$do_associate()}),0),$def(self,"$associate_by_identity",(function(){return this.map_using="identity",this.$do_associate()}),0),self.$private(),$const_set($nesting[0],"POSTFIX_TYPES",$$("Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),$def(self,"$children_in_source_order",(function(node){return $truthy($$("POSTFIX_TYPES")["$include?"](node.$type()))?$send(node.$children().$compact(),"sort_by",[],(function(child){return null==child&&(child=nil),child.$loc().$expression().$begin_pos()}),1):$send(node.$children(),"select",[],(function(child){var $ret_or_1,$ret_or_2;return null==child&&(child=nil),$truthy($ret_or_1=$truthy($ret_or_2=child["$is_a?"]($$$($$("AST"),"Node")))?child.$loc():$ret_or_2)?child.$loc().$expression():$ret_or_1}),1)}),1),$def(self,"$do_associate",(function(){return this.mapping=$send($$("Hash"),"new",[],(function(h,k){var $writer;return null==h&&(h=nil),null==k&&(k=nil),$send(h,"[]=",$to_a($writer=[k,[]])),$writer[$rb_minus($writer.length,1)]}),2),$eqeq(this.map_using,"identity")&&this.mapping.$compare_by_identity(),this.comment_num=-1,this.$advance_comment(),$truthy(this.skip_directives)&&this.$advance_through_directives(),$truthy(this.ast)&&this.$visit(this.ast),this.mapping}),0),$def(self,"$visit",(function(node){var node_loc=nil;return this.$process_leading_comments(node),$truthy(this.current_comment)?(node_loc=node.$location(),$truthy($rb_le(this.current_comment.$location().$line(),node_loc.$last_line()))||$truthy(node_loc["$is_a?"]($$$($$("Map"),"Heredoc")))?($send(this.$children_in_source_order(node),"each",[],(function $$4(child){return null==child&&(child=nil),(null==$$4.$$s?this:$$4.$$s).$visit(child)}),{$$arity:1,$$s:this}),this.$process_trailing_comments(node)):nil):nil}),1),$def(self,"$process_leading_comments",(function(node){if($eqeq(node.$type(),"begin"))return nil;for(;$truthy(this["$current_comment_before?"](node));)this.$associate_and_advance_comment(node)}),1),$def(self,"$process_trailing_comments",(function(node){for(;$truthy(this["$current_comment_before_end?"](node));)this.$associate_and_advance_comment(node);for(;$truthy(this["$current_comment_decorates?"](node));)this.$associate_and_advance_comment(node)}),1),$def(self,"$advance_comment",(function(){return this.comment_num=$rb_plus(this.comment_num,1),this.current_comment=this.comments["$[]"](this.comment_num)}),0),$def(self,"$current_comment_before?",(function(node){var comment_loc=nil,node_loc=nil;return!$not(this.current_comment)&&(comment_loc=this.current_comment.$location().$expression(),node_loc=node.$location().$expression(),$rb_le(comment_loc.$end_pos(),node_loc.$begin_pos()))}),1),$def(self,"$current_comment_before_end?",(function(node){var comment_loc=nil,node_loc=nil;return!$not(this.current_comment)&&(comment_loc=this.current_comment.$location().$expression(),node_loc=node.$location().$expression(),$rb_le(comment_loc.$end_pos(),node_loc.$end_pos()))}),1),$def(self,"$current_comment_decorates?",(function(node){return!$not(this.current_comment)&&this.current_comment.$location().$line()["$=="](node.$location().$last_line())}),1),$def(self,"$associate_and_advance_comment",(function(node){var key;return key=$eqeq(this.map_using,"location")?node.$location():node,this.mapping["$[]"](key)["$<<"](this.current_comment),this.$advance_comment()}),1),$const_set($nesting[0],"MAGIC_COMMENT_RE",/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),$def(self,"$advance_through_directives",(function(){return $truthy(this.current_comment)&&$truthy(this.current_comment.$text()["$start_with?"]("#!".$freeze()))&&this.$advance_comment(),$truthy(this.current_comment)&&$truthy(this.current_comment.$text()["$=~"]($$("MAGIC_COMMENT_RE")))&&this.$advance_comment(),$truthy(this.current_comment)&&$truthy(this.current_comment.$text()["$=~"]($$$($$("Buffer"),"ENCODING_RE")))?this.$advance_comment():nil}),0)}(Opal.$r($nesting)("Comment"),0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/rewriter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$gvars=Opal.gvars,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$rb_plus=Opal.rb_plus,$truthy=Opal.truthy,$not=Opal.not,$neqeq=Opal.neqeq,$rb_le=Opal.rb_le,$rb_ge=Opal.rb_ge,$rb_lt=Opal.rb_lt,$hash2=Opal.hash2,$const_set=Opal.const_set;return Opal.add_stubs("attr_reader,warn_of_deprecation,class,new,lambda,puts,render,consumer=,-,append,freeze,begin,end,+,in_transaction?,raise,dup,source,each,sort,begin_pos,range,length,replacement,[]=,private,empty?,clobbered_insertion?,!,allow_multiple_insertions?,raise_clobber_error,record_insertion,adjacent_updates?,find,overlaps?,replace_compatible_with_insertion?,merge_actions!,<<,active_queue,adjacent_insertions?,merge_actions,delete,can_merge?,record_replace,|,active_insertions,active_insertions=,active_clobber,clobbered_position_mask,active_clobber=,size,!=,&,<=,end_pos,adjacent_insertion_mask,select,adjacent?,adjacent_position_mask,>=,==,[],all?,intersect,nil?,max,sort_by,push,join,first,max_by,merge_replacements,replace_actions,disjoint?,<,process,extend"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Rewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.diagnostics=$proto.insert_before_multi_order=$proto.insert_after_multi_order=$proto.source_buffer=$proto.queue=$proto.clobber=$proto.insertions=$proto.pending_queue=$proto.pending_clobber=$proto.pending_insertions=nil,self.$attr_reader("source_buffer"),self.$attr_reader("diagnostics"),$def(self,"$initialize",(function(source_buffer){var $writer;return this.$class().$warn_of_deprecation(),this.diagnostics=$$$($$("Diagnostic"),"Engine").$new(),$writer=[$send(this,"lambda",[],(function(diag){return null==$gvars.stderr&&($gvars.stderr=nil),null==diag&&(diag=nil),$gvars.stderr.$puts(diag.$render())}),1)],$send(this.diagnostics,"consumer=",$to_a($writer)),$rb_minus($writer.length,1),this.source_buffer=source_buffer,this.queue=[],this.clobber=0,this.insertions=0,this.insert_before_multi_order=0,this.insert_after_multi_order=0,this.pending_queue=nil,this.pending_clobber=nil,this.pending_insertions=nil}),1),$def(self,"$remove",(function(range){return this.$append($$$($$("Rewriter"),"Action").$new(range,"".$freeze()))}),1),$def(self,"$insert_before",(function(range,content){return this.$append($$$($$("Rewriter"),"Action").$new(range.$begin(),content))}),2),$def(self,"$wrap",(function(range,before,after){return this.$append($$$($$("Rewriter"),"Action").$new(range.$begin(),before)),this.$append($$$($$("Rewriter"),"Action").$new(range.$end(),after))}),3),$def(self,"$insert_before_multi",(function(range,content){return this.insert_before_multi_order=$rb_minus(this.insert_before_multi_order,1),this.$append($$$($$("Rewriter"),"Action").$new(range.$begin(),content,!0,this.insert_before_multi_order))}),2),$def(self,"$insert_after",(function(range,content){return this.$append($$$($$("Rewriter"),"Action").$new(range.$end(),content))}),2),$def(self,"$insert_after_multi",(function(range,content){return this.insert_after_multi_order=$rb_plus(this.insert_after_multi_order,1),this.$append($$$($$("Rewriter"),"Action").$new(range.$end(),content,!0,this.insert_after_multi_order))}),2),$def(self,"$replace",(function(range,content){return this.$append($$$($$("Rewriter"),"Action").$new(range,content))}),2),$def(self,"$process",(function(){var source,adjustment=nil;return $truthy(this["$in_transaction?"]())&&this.$raise("Do not call "+this.$class()+"#process inside a transaction"),adjustment=0,source=this.source_buffer.$source().$dup(),$send(this.queue.$sort(),"each",[],(function(action){var begin_pos,end_pos,$writer;return null==action&&(action=nil),begin_pos=$rb_plus(action.$range().$begin_pos(),adjustment),end_pos=$rb_plus(begin_pos,action.$range().$length()),$writer=[Opal.Range.$new(begin_pos,end_pos,!0),action.$replacement()],$send(source,"[]=",$to_a($writer)),$rb_minus($writer.length,1),adjustment=$rb_plus(adjustment,$rb_minus(action.$replacement().$length(),action.$range().$length()))}),1),source}),0),$def(self,"$transaction",(function $$transaction(){var $yield=$$transaction.$$p||nil,self=this;return delete $$transaction.$$p,function(){try{return $yield===nil&&self.$raise(self.$class()+"#transaction requires block"),$truthy(self["$in_transaction?"]())&&self.$raise("Nested transaction is not supported"),self.pending_queue=self.queue.$dup(),self.pending_clobber=self.clobber,self.pending_insertions=self.insertions,Opal.yieldX($yield,[]),self.queue=self.pending_queue,self.clobber=self.pending_clobber,self.insertions=self.pending_insertions,self}finally{self.pending_queue=nil,self.pending_clobber=nil,self.pending_insertions=nil}}()}),0),self.$private(),$def(self,"$append",(function(action){var range=nil,conflicting=nil,adjacent=nil,insertions=nil;if(range=action.$range(),$truthy(range["$empty?"]())){if($truthy(action.$replacement()["$empty?"]()))return this;$not(action["$allow_multiple_insertions?"]())&&$truthy(conflicting=this["$clobbered_insertion?"](range))&&this.$raise_clobber_error(action,[conflicting]),this.$record_insertion(range),$truthy(adjacent=this["$adjacent_updates?"](range))?(conflicting=$send(adjacent,"find",[],(function $$3(a){var $ret_or_1,self=null==$$3.$$s?this:$$3.$$s;return null==a&&(a=nil),$truthy($ret_or_1=a.$range()["$overlaps?"](range))?self["$replace_compatible_with_insertion?"](a,action)["$!"]():$ret_or_1}),{$$arity:1,$$s:this}),$truthy(conflicting)&&this.$raise_clobber_error(action,[conflicting]),this["$merge_actions!"](action,adjacent)):this.$active_queue()["$<<"](action)}else $truthy(insertions=this["$adjacent_insertions?"](range))&&$send(insertions,"each",[],(function $$4(insertion){var self=null==$$4.$$s?this:$$4.$$s;return null==insertion&&(insertion=nil),$truthy(range["$overlaps?"](insertion.$range()))&&$not(self["$replace_compatible_with_insertion?"](action,insertion))?self.$raise_clobber_error(action,[insertion]):(action=self.$merge_actions(action,[insertion]),self.$active_queue().$delete(insertion))}),{$$arity:1,$$s:this}),$truthy(adjacent=this["$adjacent_updates?"](range))?$truthy(this["$can_merge?"](action,adjacent))?(this.$record_replace(range),this["$merge_actions!"](action,adjacent)):this.$raise_clobber_error(action,adjacent):(this.$record_replace(range),this.$active_queue()["$<<"](action));return this}),1),$def(self,"$record_insertion",(function(range){var $writer;return $writer=[this.$active_insertions()["$|"](1["$<<"](range.$begin_pos()))],$send(this,"active_insertions=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$record_replace",(function(range){var $writer;return $writer=[this.$active_clobber()["$|"](this.$clobbered_position_mask(range))],$send(this,"active_clobber=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$clobbered_position_mask",(function(range){return $rb_minus(1["$<<"](range.$size()),1)["$<<"](range.$begin_pos())}),1),$def(self,"$adjacent_position_mask",(function(range){return $rb_minus(1["$<<"]($rb_plus(range.$size(),2)),1)["$<<"]($rb_minus(range.$begin_pos(),1))}),1),$def(self,"$adjacent_insertion_mask",(function(range){return $rb_minus(1["$<<"]($rb_plus(range.$size(),1)),1)["$<<"](range.$begin_pos())}),1),$def(self,"$clobbered_insertion?",(function(insertion){var insertion_pos;return insertion_pos=insertion.$begin_pos(),$neqeq(this.$active_insertions()["$&"](1["$<<"](insertion_pos)),0)?$send(this.$active_queue(),"find",[],(function(a){var $ret_or_1;return null==a&&(a=nil),$truthy($ret_or_1=$rb_le(a.$range().$begin_pos(),insertion_pos))?$rb_le(insertion_pos,a.$range().$end_pos()):$ret_or_1}),1):nil}),1),$def(self,"$adjacent_insertions?",(function(range){var result=nil;return $neqeq(this.$active_insertions()["$&"](this.$adjacent_insertion_mask(range)),0)?(result=$send(this.$active_queue(),"select",[],(function $$8(a){var $ret_or_1,self=null==$$8.$$s?this:$$8.$$s;return null==a&&(a=nil),$truthy($ret_or_1=a.$range()["$empty?"]())?self["$adjacent?"](range,a.$range()):$ret_or_1}),{$$arity:1,$$s:this}),$truthy(result["$empty?"]())?nil:result):nil}),1),$def(self,"$adjacent_updates?",(function(range){return $neqeq(this.$active_clobber()["$&"](this.$adjacent_position_mask(range)),0)?$send(this.$active_queue(),"select",[],(function $$10(a){return null==a&&(a=nil),(null==$$10.$$s?this:$$10.$$s)["$adjacent?"](range,a.$range())}),{$$arity:1,$$s:this}):nil}),1),$def(self,"$replace_compatible_with_insertion?",(function(replace,insertion){var $ret_or_1,$ret_or_2,offset=nil;return $truthy($ret_or_1=$truthy($ret_or_2=$rb_ge($rb_minus(replace.$replacement().$length(),replace.$range().$size()),insertion.$range().$size()))?offset=$rb_minus(insertion.$range().$begin_pos(),replace.$range().$begin_pos()):$ret_or_2)?replace.$replacement()["$[]"](offset,insertion.$replacement().$length())["$=="](insertion.$replacement()):$ret_or_1}),2),$def(self,"$can_merge?",(function(action,existing){var range=nil;return range=action.$range(),$send(existing,"all?",[],(function(other){var repl1_offset,repl2_offset,repl1_length,repl2_length,replacement2,overlap=nil,replacement1=nil,$ret_or_1=nil;return null==other&&(other=nil),overlap=range.$intersect(other.$range()),!!$truthy(overlap["$nil?"]())||(repl1_offset=$rb_minus(overlap.$begin_pos(),range.$begin_pos()),repl2_offset=$rb_minus(overlap.$begin_pos(),other.$range().$begin_pos()),repl1_length=[$rb_minus(other.$range().$length(),repl2_offset),$rb_minus(other.$replacement().$length(),repl2_offset)].$max(),repl2_length=[$rb_minus(range.$length(),repl1_offset),$rb_minus(action.$replacement().$length(),repl1_offset)].$max(),replacement1=$truthy($ret_or_1=action.$replacement()["$[]"](repl1_offset,repl1_length))?$ret_or_1:"".$freeze(),replacement2=$truthy($ret_or_1=other.$replacement()["$[]"](repl2_offset,repl2_length))?$ret_or_1:"".$freeze(),replacement1["$=="](replacement2))}),1)}),2),$def(self,"$merge_actions",(function(action,existing){var range,actions=nil;return range=(actions=$send(existing.$push(action),"sort_by",[],(function(a){return null==a&&(a=nil),[a.$range().$begin_pos(),a.$range().$end_pos()]}),1)).$first().$range().$join($send(actions,"max_by",[],(function(a){return null==a&&(a=nil),a.$range().$end_pos()}),1).$range()),$$$($$("Rewriter"),"Action").$new(range,this.$merge_replacements(actions))}),2),$def(self,"$merge_actions!",(function(action,existing){var new_action;return new_action=this.$merge_actions(action,existing),this.$active_queue().$delete(action),this.$replace_actions(existing,new_action)}),2),$def(self,"$merge_replacements",(function(actions){var result=nil,prev_act=nil;return result="".$dup(),prev_act=nil,$send(actions,"each",[],(function(act){var prev_end=nil,offset=nil;return null==act&&(act=nil),$not(prev_act)||$truthy(act.$range()["$disjoint?"](prev_act.$range()))?result["$<<"](act.$replacement()):(prev_end=[$rb_plus(prev_act.$range().$begin_pos(),prev_act.$replacement().$length()),prev_act.$range().$end_pos()].$max(),offset=$rb_minus(prev_end,act.$range().$begin_pos()),$truthy($rb_lt(offset,act.$replacement().$size()))&&result["$<<"](act.$replacement()["$[]"](Opal.Range.$new(offset,-1,!1)))),prev_act=act}),1),result}),1),$def(self,"$replace_actions",(function(old,updated){return $send(old,"each",[],(function $$18(act){return null==act&&(act=nil),(null==$$18.$$s?this:$$18.$$s).$active_queue().$delete(act)}),{$$arity:1,$$s:this}),this.$active_queue()["$<<"](updated)}),2),$def(self,"$raise_clobber_error",(function(action,existing){var diagnostic=nil;return diagnostic=$$("Diagnostic").$new("error","invalid_action",$hash2(["action"],{action:action}),action.$range()),this.diagnostics.$process(diagnostic),diagnostic=$$("Diagnostic").$new("note","clobbered",$hash2(["action"],{action:existing["$[]"](0)}),existing["$[]"](0).$range()),this.diagnostics.$process(diagnostic),this.$raise($$("ClobberingError"),"Parser::Source::Rewriter detected clobbering")}),2),$def(self,"$in_transaction?",(function(){return this.pending_queue["$nil?"]()["$!"]()}),0),$def(self,"$active_queue",(function(){var $ret_or_1;return $truthy($ret_or_1=this.pending_queue)?$ret_or_1:this.queue}),0),$def(self,"$active_clobber",(function(){var $ret_or_1;return $truthy($ret_or_1=this.pending_clobber)?$ret_or_1:this.clobber}),0),$def(self,"$active_insertions",(function(){var $ret_or_1;return $truthy($ret_or_1=this.pending_insertions)?$ret_or_1:this.insertions}),0),$def(self,"$active_clobber=",(function(value){return $truthy(this.pending_clobber)?this.pending_clobber=value:this.clobber=value}),1),$def(self,"$active_insertions=",(function(value){return $truthy(this.pending_insertions)?this.pending_insertions=value:this.insertions=value}),1),$def(self,"$adjacent?",(function(range1,range2){var $ret_or_1;return $truthy($ret_or_1=$rb_le(range1.$begin_pos(),range2.$end_pos()))?$rb_le(range2.$begin_pos(),range1.$end_pos()):$ret_or_1}),2),$const_set($nesting[0],"DEPRECATION_WARNING",["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()),self.$extend($$("Deprecation"))}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/rewriter/action"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy,$eqeq=Opal.eqeq;return Opal.add_stubs("include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Action"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.replacement=$proto.range=nil,self.$include($$("Comparable")),self.$attr_reader("range","replacement","allow_multiple_insertions","order"),self.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),$def(self,"$initialize",(function(range,replacement,allow_multiple_insertions,order){return null==replacement&&(replacement=""),null==allow_multiple_insertions&&(allow_multiple_insertions=!1),null==order&&(order=0),this.range=range,this.replacement=replacement,this.allow_multiple_insertions=allow_multiple_insertions,this.order=order,this.$freeze()}),-2),$def(self,"$<=>",(function(other){var result=nil;return result=this.$range().$begin_pos()["$<=>"](other.$range().$begin_pos()),$truthy(result["$zero?"]())?this.$order()["$<=>"](other.$order()):result}),1),$def(self,"$to_s",(function(){return $eqeq(this.range.$length(),0)&&$truthy(this.replacement["$empty?"]())?"do nothing":$eqeq(this.range.$length(),0)?"insert "+this.replacement.$inspect():$truthy(this.replacement["$empty?"]())?"remove "+this.range.$length()+" character(s)":"replace "+this.range.$length()+" character(s) with "+this.replacement.$inspect()}),0)}(Opal.$r($nesting)("Rewriter"),0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/tree_rewriter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$lambda=Opal.lambda,$gvars=Opal.gvars,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$const_set=Opal.const_set,$eqeqeq=Opal.eqeqeq,$range=Opal.range,$to_ary=Opal.to_ary,$rb_gt=(Opal.hash,Opal.rb_gt),$rb_lt=Opal.rb_lt,$slice=Opal.slice;return Opal.add_stubs("attr_reader,new,puts,render,consumer=,-,freeze,check_policy_validity,method,adjust,source_range,empty?,==,source_buffer,raise,combine,action_root,merge!,dup,contract,+,begin_pos,range,end_pos,check_range_validity,moved,to_s,replace,wrap,source,each,ordered_replacements,<<,[],length,join,nested_actions,class,name,action_summary,warn_of_deprecation,insert_before,insert_after,extend,protected,private,as_replacements,===,size,first,map,to_range,inspect,values,>,<,trigger_policy,process"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"TreeRewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.diagnostics=$proto.source_buffer=$proto.enforcer=$proto.action_root=$proto.in_transaction=$proto.policy=nil,self.$attr_reader("source_buffer"),self.$attr_reader("diagnostics"),$def(self,"$initialize",(function(source_buffer,$kwargs){var crossing_deletions,different_replacements,swallowed_insertions,$writer,all_encompassing_range;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(crossing_deletions=$kwargs.$$smap.crossing_deletions)&&(crossing_deletions="accept"),null==(different_replacements=$kwargs.$$smap.different_replacements)&&(different_replacements="accept"),null==(swallowed_insertions=$kwargs.$$smap.swallowed_insertions)&&(swallowed_insertions="accept"),this.diagnostics=$$$($$("Diagnostic"),"Engine").$new(),$writer=[$lambda((function(diag){return null==$gvars.stderr&&($gvars.stderr=nil),null==diag&&(diag=nil),$gvars.stderr.$puts(diag.$render())}),1)],$send(this.diagnostics,"consumer=",$to_a($writer)),$rb_minus($writer.length,1),this.source_buffer=source_buffer,this.in_transaction=!1,this.policy=$hash2(["crossing_deletions","different_replacements","swallowed_insertions"],{crossing_deletions:crossing_deletions,different_replacements:different_replacements,swallowed_insertions:swallowed_insertions}).$freeze(),this.$check_policy_validity(),this.enforcer=this.$method("enforce_policy"),all_encompassing_range=this.source_buffer.$source_range().$adjust($hash2(["begin_pos","end_pos"],{begin_pos:-1,end_pos:1})),this.action_root=$$$($$("TreeRewriter"),"Action").$new(all_encompassing_range,this.enforcer)}),-2),$def(self,"$empty?",(function(){return this.action_root["$empty?"]()}),0),$def(self,"$merge!",(function(with$){return $eqeq(this.$source_buffer(),with$.$source_buffer())||this.$raise("TreeRewriter are not for the same source_buffer"),this.action_root=this.action_root.$combine(with$.$action_root()),this}),1),$def(self,"$merge",(function(with$){return this.$dup()["$merge!"](with$)}),1),$def(self,"$import!",(function(foreign_rewriter,$kwargs){var offset,merge_effective_range,merge_with,contracted=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(offset=$kwargs.$$smap.offset)&&(offset=0),$truthy(foreign_rewriter["$empty?"]())||(contracted=foreign_rewriter.$action_root().$contract(),merge_effective_range=$$$($$$($$$("Parser"),"Source"),"Range").$new(this.source_buffer,$rb_plus(contracted.$range().$begin_pos(),offset),$rb_plus(contracted.$range().$end_pos(),offset)),this.$check_range_validity(merge_effective_range),merge_with=contracted.$moved(this.source_buffer,offset),this.action_root=this.action_root.$combine(merge_with)),this}),-2),$def(self,"$replace",(function(range,content){return this.$combine(range,$hash2(["replacement"],{replacement:content}))}),2),$def(self,"$wrap",(function(range,insert_before,insert_after){return this.$combine(range,$hash2(["insert_before","insert_after"],{insert_before:insert_before.$to_s(),insert_after:insert_after.$to_s()}))}),3),$def(self,"$remove",(function(range){return this.$replace(range,"".$freeze())}),1),$def(self,"$insert_before",(function(range,content){return this.$wrap(range,content,nil)}),2),$def(self,"$insert_after",(function(range,content){return this.$wrap(range,nil,content)}),2),$def(self,"$process",(function(){var source=nil,chunks=nil,last_end=nil;return source=this.source_buffer.$source(),chunks=[],last_end=0,$send(this.action_root.$ordered_replacements(),"each",[],(function(range,replacement){return null==range&&(range=nil),null==replacement&&(replacement=nil),chunks["$<<"](source["$[]"](Opal.Range.$new(last_end,range.$begin_pos(),!0)))["$<<"](replacement),last_end=range.$end_pos()}),2),chunks["$<<"](source["$[]"](Opal.Range.$new(last_end,source.$length(),!0))),chunks.$join()}),0),$def(self,"$as_replacements",(function(){return this.action_root.$ordered_replacements()}),0),$def(self,"$as_nested_actions",(function(){return this.action_root.$nested_actions()}),0),$def(self,"$transaction",(function $$transaction(){var $yield=$$transaction.$$p||nil,self=this,previous=nil,restore_root=nil;return delete $$transaction.$$p,function(){try{return $yield===nil&&self.$raise(self.$class()+"#transaction requires block"),previous=self.in_transaction,self.in_transaction=!0,restore_root=self.action_root,Opal.yieldX($yield,[]),restore_root=nil,self}finally{$truthy(restore_root)&&(self.action_root=restore_root),self.in_transaction=previous}}()}),0),$def(self,"$in_transaction?",(function(){return this.in_transaction}),0),$def(self,"$inspect",(function(){return"#<"+this.$class()+" "+this.$source_buffer().$name()+": "+this.$action_summary()+">"}),0),$def(self,"$insert_before_multi",(function(range,text){return this.$class().$warn_of_deprecation(),this.$insert_before(range,text)}),2),$def(self,"$insert_after_multi",(function(range,text){return this.$class().$warn_of_deprecation(),this.$insert_after(range,text)}),2),$const_set($nesting[0],"DEPRECATION_WARNING",["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.","Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()),self.$extend($$("Deprecation")),self.$protected(),self.$attr_reader("action_root"),self.$private(),$def(self,"$action_summary",(function(){var $ret_or_1,replacements=nil,suffix=nil,parts=nil;return replacements=this.$as_replacements(),$eqeqeq(0,$ret_or_1=replacements.$size())?"empty":($eqeqeq($range(1,3,!1),$ret_or_1)||(replacements=replacements.$first(3),suffix="…"),parts=$send(replacements,"map",[],(function($mlhs_tmp1){var $a,range=nil,str=nil;return null==$mlhs_tmp1&&($mlhs_tmp1=nil),range=null==($a=$to_ary($mlhs_tmp1))[0]?nil:$a[0],str=null==$a[1]?nil:$a[1],$truthy(str["$empty?"]())?"-"+range.$to_range():$eqeq(range.$size(),0)?"+"+str.$inspect()+"@"+range.$begin_pos():"^"+str.$inspect()+"@"+range.$to_range()}),{$$arity:1,$$has_top_level_mlhs_arg:!0}),$truthy(suffix)&&parts["$<<"](suffix),parts.$join(", "))}),0),$const_set($nesting[0],"ACTIONS",["accept","warn","raise"].$freeze()),$def(self,"$check_policy_validity",(function(){var invalid=nil;return invalid=$rb_minus(this.policy.$values(),$$("ACTIONS")),$truthy(invalid["$empty?"]())?nil:this.$raise($$("ArgumentError"),"Invalid policy: "+invalid.$join(", "))}),0),$def(self,"$combine",(function(range,attributes){var action;return range=this.$check_range_validity(range),action=$$$($$("TreeRewriter"),"Action").$new(range,this.enforcer,Opal.to_hash(attributes)),this.action_root=this.action_root.$combine(action),this}),2),$def(self,"$check_range_validity",(function(range){return($truthy($rb_lt(range.$begin_pos(),0))||$truthy($rb_gt(range.$end_pos(),this.source_buffer.$source().$size())))&&this.$raise($$("IndexError"),"The range "+range.$to_range()+" is outside the bounds of the source"),range}),1),$def(self,"$enforce_policy",(function $$enforce_policy(event){var values,$yield=$$enforce_policy.$$p||nil;return delete $$enforce_policy.$$p,$eqeq(this.policy["$[]"](event),"accept")?nil:$truthy(values=Opal.yieldX($yield,[]))?this.$trigger_policy(event,Opal.to_hash(values)):nil}),1),$const_set($nesting[0],"POLICY_TO_LEVEL",$hash2(["warn","raise"],{warn:"warning",raise:"error"}).$freeze()),$def(self,"$trigger_policy",(function(event,$kwargs){var range,conflict,arguments$,$a,action,$ret_or_1,diag=nil,highlights=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(range=$kwargs.$$smap.range)&&(range=this.$raise()),null==(conflict=$kwargs.$$smap.conflict)&&(conflict=nil),arguments$=Opal.kwrestargs($kwargs,{range:!0,conflict:!0}),action=$truthy($ret_or_1=this.policy["$[]"](event))?$ret_or_1:"raise",diag=$$$($$("Parser"),"Diagnostic").$new($$("POLICY_TO_LEVEL")["$[]"](action),event,arguments$,range),this.diagnostics.$process(diag),$truthy(conflict)&&(range=null==($a=$to_ary(conflict))[0]?nil:$a[0],highlights=$slice.call($a,1),diag=$$$($$("Parser"),"Diagnostic").$new($$("POLICY_TO_LEVEL")["$[]"](action),event+"_conflict",arguments$,range,highlights),this.diagnostics.$process(diag)),$eqeq(action,"raise")?this.$raise($$$($$("Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):nil}),-2)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/tree_rewriter/action"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$not=Opal.not,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$rb_gt=Opal.rb_gt,$rb_minus=Opal.rb_minus,$rb_ge=Opal.rb_ge,$eqeqeq=Opal.eqeqeq,$rb_le=Opal.rb_le,$rb_lt=Opal.rb_lt,$neqeq=Opal.neqeq;return Opal.add_stubs("attr_reader,freeze,empty?,do_combine,==,<<,begin,concat,flat_map,to_proc,end,!,insert_before,insert_after,replacement,raise,insertion?,with,begin_pos,range,first,children,end_pos,last,new,+,map,moved,protected,swallow,class,merge,place_in_hierarchy,analyse_hierarchy,[],fuse_deletions,combine_children,inject,size,bsearch,bsearch_child_index,>,-,>=,===,<=>,<=,check_fusible,<,shift,pop,compact!,each,call,call_enforcer_for_merge,!=,select"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super){var self=$klass($base,null,"Action"),$proto=self.$$prototype;return $proto.insert_before=$proto.insert_after=$proto.children=$proto.replacement=$proto.range=$proto.enforcer=nil,self.$attr_reader("range","replacement","insert_before","insert_after"),$def(self,"$initialize",(function(range,enforcer,$kwargs){var insert_before,replacement,insert_after,children,$a;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(insert_before=$kwargs.$$smap.insert_before)&&(insert_before=""),null==(replacement=$kwargs.$$smap.replacement)&&(replacement=nil),null==(insert_after=$kwargs.$$smap.insert_after)&&(insert_after=""),null==(children=$kwargs.$$smap.children)&&(children=[]),$a=[range,enforcer,children.$freeze(),insert_before.$freeze(),replacement,insert_after.$freeze()],this.range=$a[0],this.enforcer=$a[1],this.children=$a[2],this.insert_before=$a[3],this.replacement=$a[4],this.insert_after=$a[5],this.$freeze()}),-3),$def(self,"$combine",(function(action){return $truthy(action["$empty?"]())?this:this.$do_combine(action)}),1),$def(self,"$empty?",(function(){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=this.insert_before["$empty?"]())?this.insert_after["$empty?"]():$ret_or_3)?this.children["$empty?"]():$ret_or_2)?$truthy($ret_or_2=this.replacement["$=="](nil))?$ret_or_2:$truthy($ret_or_3=this.replacement["$empty?"]())?this.range["$empty?"]():$ret_or_3:$ret_or_1}),0),$def(self,"$ordered_replacements",(function(){var reps=nil;return reps=[],$truthy(this.insert_before["$empty?"]())||reps["$<<"]([this.range.$begin(),this.insert_before]),$truthy(this.replacement)&&reps["$<<"]([this.range,this.replacement]),reps.$concat($send(this.children,"flat_map",[],"ordered_replacements".$to_proc())),$truthy(this.insert_after["$empty?"]())||reps["$<<"]([this.range.$end(),this.insert_after]),reps}),0),$def(self,"$nested_actions",(function(){var actions=nil;return actions=[],($not(this.insert_before["$empty?"]())||$not(this.insert_after["$empty?"]()))&&actions["$<<"](["wrap",this.range,this.insert_before,this.insert_after]),$truthy(this.replacement)&&actions["$<<"](["replace",this.range,this.replacement]),actions.$concat($send(this.children,"flat_map",[],"nested_actions".$to_proc()))}),0),$def(self,"$insertion?",(function(){var $ret_or_1,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=this.$insert_before()["$empty?"]()["$!"]())?$ret_or_2:this.$insert_after()["$empty?"]()["$!"]())?$ret_or_1:$truthy($ret_or_2=this.$replacement())?this.$replacement()["$empty?"]()["$!"]():$ret_or_2}),0),$def(self,"$contract",(function(){var range;return $truthy(this["$empty?"]())&&this.$raise("Empty actions can not be contracted"),$truthy(this["$insertion?"]())?this:(range=this.range.$with($hash2(["begin_pos","end_pos"],{begin_pos:this.$children().$first().$range().$begin_pos(),end_pos:this.$children().$last().$range().$end_pos()})),this.$with($hash2(["range"],{range:range})))}),0),$def(self,"$moved",(function(source_buffer,offset){var moved_range;return moved_range=$$$($$$($$$("Parser"),"Source"),"Range").$new(source_buffer,$rb_plus(this.range.$begin_pos(),offset),$rb_plus(this.range.$end_pos(),offset)),this.$with($hash2(["range","children"],{range:moved_range,children:$send(this.$children(),"map",[],(function(child){return null==child&&(child=nil),child.$moved(source_buffer,offset)}),1)}))}),2),self.$protected(),self.$attr_reader("children"),$def(self,"$with",(function($kwargs){var range,enforcer,children,insert_before,replacement,insert_after;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(range=$kwargs.$$smap.range)&&(range=this.range),null==(enforcer=$kwargs.$$smap.enforcer)&&(enforcer=this.enforcer),null==(children=$kwargs.$$smap.children)&&(children=this.children),null==(insert_before=$kwargs.$$smap.insert_before)&&(insert_before=this.insert_before),null==(replacement=$kwargs.$$smap.replacement)&&(replacement=this.replacement),null==(insert_after=$kwargs.$$smap.insert_after)&&(insert_after=this.insert_after),$truthy(replacement)&&(children=this.$swallow(children)),this.$class().$new(range,enforcer,$hash2(["children","insert_before","replacement","insert_after"],{children:children,insert_before:insert_before,replacement:replacement,insert_after:insert_after}))}),-1),$def(self,"$do_combine",(function(action){return $eqeq(action.$range(),this.range)?this.$merge(action):this.$place_in_hierarchy(action)}),1),$def(self,"$place_in_hierarchy",(function(action){var family=nil,extra_sibbling=nil;return family=this.$analyse_hierarchy(action),$truthy(family["$[]"]("fusible"))?this.$fuse_deletions(action,family["$[]"]("fusible"),[].concat($to_a(family["$[]"]("sibbling_left"))).concat($to_a(family["$[]"]("child"))).concat($to_a(family["$[]"]("sibbling_right")))):(extra_sibbling=$truthy(family["$[]"]("parent"))?family["$[]"]("parent").$do_combine(action):$truthy(family["$[]"]("child"))?action.$with($hash2(["children","enforcer"],{children:family["$[]"]("child"),enforcer:this.enforcer})).$combine_children(action.$children()):action,this.$with($hash2(["children"],{children:[].concat($to_a(family["$[]"]("sibbling_left"))).concat([extra_sibbling]).concat($to_a(family["$[]"]("sibbling_right")))})))}),1),$def(self,"$combine_children",(function(more_children){return $send(more_children,"inject",[this],(function(parent,new_child){return null==parent&&(parent=nil),null==new_child&&(new_child=nil),parent.$place_in_hierarchy(new_child)}),2)}),1),$def(self,"$fuse_deletions",(function(action,fusible,other_sibblings){var fused_range,fused_deletion,without_fusible=nil;return without_fusible=this.$with($hash2(["children"],{children:other_sibblings})),fused_range=$send([action].concat($to_a(fusible)),"map",[],"range".$to_proc()).$inject("join"),fused_deletion=action.$with($hash2(["range"],{range:fused_range})),without_fusible.$do_combine(fused_deletion)}),3),$def(self,"$bsearch_child_index",(function $$bsearch_child_index(from){var size,$ret_or_1,$yield=$$bsearch_child_index.$$p||nil;return delete $$bsearch_child_index.$$p,null==from&&(from=0),size=this.children.$size(),$truthy($ret_or_1=$send(Opal.Range.$new(from,size,!0),"bsearch",[],(function $$6(i){var self=null==$$6.$$s?this:$$6.$$s;return null==self.children&&(self.children=nil),null==i&&(i=nil),Opal.yield1($yield,self.children["$[]"](i))}),{$$arity:1,$$s:this}))?$ret_or_1:size}),-1),$def(self,"$analyse_hierarchy",(function(action){var start,center,$ret_or_1,r=nil,left_index=nil,right_index=nil,parent=nil,overlap_left=nil,overlap_right=nil,contained=nil,fusible=nil;return r=action.$range(),left_index=$send(this,"bsearch_child_index",[],(function(child){return null==child&&(child=nil),$rb_gt(child.$range().$end_pos(),r.$begin_pos())}),1),start=$eqeq(left_index,0)?0:$rb_minus(left_index,1),right_index=$send(this,"bsearch_child_index",[start],(function(child){return null==child&&(child=nil),$rb_ge(child.$range().$begin_pos(),r.$end_pos())}),1),center=$rb_minus(right_index,left_index),$eqeqeq(0,$ret_or_1=center)||($eqeqeq(-1,$ret_or_1)?(left_index=$rb_minus(left_index,1),right_index=$rb_plus(right_index,1),parent=this.children["$[]"](left_index)):(overlap_left=this.children["$[]"](left_index).$range().$begin_pos()["$<=>"](r.$begin_pos()),overlap_right=this.children["$[]"]($rb_minus(right_index,1)).$range().$end_pos()["$<=>"](r.$end_pos()),$eqeq(center,1)&&$truthy($rb_le(overlap_left,0))&&$truthy($rb_ge(overlap_right,0))?parent=this.children["$[]"](left_index):(contained=this.children["$[]"](Opal.Range.$new(left_index,right_index,!0)),fusible=this.$check_fusible(action,$truthy($rb_lt(overlap_left,0))?contained.$shift():nil,$truthy($rb_gt(overlap_right,0))?contained.$pop():nil)))),$hash2(["parent","sibbling_left","sibbling_right","fusible","child"],{parent:parent,sibbling_left:this.children["$[]"](Opal.Range.$new(0,left_index,!0)),sibbling_right:this.children["$[]"](Opal.Range.$new(right_index,this.children.$size(),!0)),fusible:fusible,child:contained})}),1),$def(self,"$check_fusible",(function(action,$a){var fusible,self=this;return(fusible=Opal.slice.call(arguments,1))["$compact!"](),$truthy(fusible["$empty?"]())?nil:($send(fusible,"each",[],(function $$9(child){var kind,self=null==$$9.$$s?this:$$9.$$s;return null==self.enforcer&&(self.enforcer=nil),null==child&&(child=nil),kind=$truthy(action["$insertion?"]())||$truthy(child["$insertion?"]())?"crossing_insertions":"crossing_deletions",$send(self.enforcer,"call",[kind],(function(){return $hash2(["range","conflict"],{range:action.$range(),conflict:child.$range()})}),0)}),{$$arity:1,$$s:self}),fusible)}),-2),$def(self,"$merge",(function(action){var $ret_or_1;return this.$call_enforcer_for_merge(action),this.$with($hash2(["insert_before","replacement","insert_after"],{insert_before:""+action.$insert_before()+this.$insert_before(),replacement:$truthy($ret_or_1=action.$replacement())?$ret_or_1:this.replacement,insert_after:""+this.$insert_after()+action.$insert_after()})).$combine_children(action.$children())}),1),$def(self,"$call_enforcer_for_merge",(function(action){return $send(this.enforcer,"call",["different_replacements"],(function $$11(){var self=null==$$11.$$s?this:$$11.$$s;return null==self.replacement&&(self.replacement=nil),null==self.range&&(self.range=nil),$truthy(self.replacement)&&$truthy(action.$replacement())&&$neqeq(self.replacement,action.$replacement())?$hash2(["range","replacement","other_replacement"],{range:self.range,replacement:action.$replacement(),other_replacement:self.replacement}):nil}),{$$arity:0,$$s:this})}),1),$def(self,"$swallow",(function(children){return $send(this.enforcer,"call",["swallowed_insertions"],(function $$12(){var self=null==$$12.$$s?this:$$12.$$s,insertions=nil;return null==self.range&&(self.range=nil),insertions=$send(children,"select",[],"insertion?".$to_proc()),$truthy(insertions["$empty?"]())?nil:$hash2(["range","conflict"],{range:self.range,conflict:$send(insertions,"map",[],"range".$to_proc())})}),{$$arity:0,$$s:this}),[]}),1)}(Opal.$r($nesting)("TreeRewriter"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy,$hash2=Opal.hash2,$eqeq=Opal.eqeq,$range=Opal.range,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus;return Opal.add_stubs("attr_reader,freeze,line,alias_method,column,last_line,last_column,with,update_expression,==,class,reduce,map,instance_variables,instance_variable_get,send,inject,to_sym,[],[]=,-,protected,tap,dup,to_proc"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,null,"Map"),$proto=self.$$prototype;return $proto.node=$proto.expression=nil,self.$attr_reader("node"),self.$attr_reader("expression"),$def(self,"$initialize",(function(expression){return this.expression=expression}),1),$def(self,"$initialize_copy",(function $$initialize_copy(other){var $yield=$$initialize_copy.$$p||nil;return delete $$initialize_copy.$$p,$send2(this,$find_super(this,"initialize_copy",$$initialize_copy,!1,!0),"initialize_copy",[other],$yield),this.node=nil}),1),$def(self,"$node=",(function(node){return this.node=node,this.$freeze(),this.node}),1),$def(self,"$line",(function(){return this.expression.$line()}),0),self.$alias_method("first_line","line"),$def(self,"$column",(function(){return this.expression.$column()}),0),$def(self,"$last_line",(function(){return this.expression.$last_line()}),0),$def(self,"$last_column",(function(){return this.expression.$last_column()}),0),$def(self,"$with_expression",(function(expression_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_expression(expression_l)}),1)}),1),$def(self,"$==",(function(other){var $ret_or_1;return $truthy($ret_or_1=other.$class()["$=="](this.$class()))?$send(this.$instance_variables(),"map",[],(function $$4(ivar){return null==ivar&&(ivar=nil),(null==$$4.$$s?this:$$4.$$s).$instance_variable_get(ivar)["$=="](other.$send("instance_variable_get",ivar))}),{$$arity:1,$$s:this}).$reduce("&"):$ret_or_1}),1),$def(self,"$to_hash",(function(){return $send(this.$instance_variables(),"inject",[$hash2([],{})],(function $$5(hash,ivar){var $writer,self=null==$$5.$$s?this:$$5.$$s;return null==hash&&(hash=nil),null==ivar&&(ivar=nil),$eqeq(ivar.$to_sym(),"@node")||($writer=[ivar["$[]"]($range(1,-1,!1)).$to_sym(),self.$instance_variable_get(ivar)],$send(hash,"[]=",$to_a($writer)),$rb_minus($writer.length,1)),hash}),{$$arity:2,$$s:this})}),0),self.$protected(),$def(self,"$with",(function $Map_with$6(){var block=$Map_with$6.$$p||nil;return delete $Map_with$6.$$p,$send(this.$dup(),"tap",[],block.$to_proc())}),0),$def(self,"$update_expression",(function(expression_l){return this.expression=expression_l}),1)}([$module($base,"Source")].concat($parent_nesting)[0])}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/operator"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Operator");return self.$attr_reader("operator"),$def(self,"$initialize",(function $$initialize(operator,expression){return delete $$initialize.$$p,this.operator=operator,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression],null)}),2)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/collection"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Collection");return self.$attr_reader("begin"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),3)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/constant"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("attr_reader,with,update_operator,protected"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Constant");return self.$attr_reader("double_colon"),self.$attr_reader("name"),self.$attr_reader("operator"),$def(self,"$initialize",(function $$initialize(double_colon,name,expression){var $a;return delete $$initialize.$$p,$a=[double_colon,name],this.double_colon=$a[0],this.name=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression],null)}),3),$def(self,"$with_operator",(function(operator_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_operator(operator_l)}),1)}),1),self.$protected(),$def(self,"$update_operator",(function(operator_l){return this.operator=operator_l}),1)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/variable"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("attr_reader,with,update_operator,protected"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Variable");return self.$attr_reader("name"),self.$attr_reader("operator"),$def(self,"$initialize",(function $$initialize(name_l,expression_l){return delete $$initialize.$$p,null==expression_l&&(expression_l=name_l),this.name=name_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),-2),$def(self,"$with_operator",(function(operator_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_operator(operator_l)}),1)}),1),self.$protected(),$def(self,"$update_operator",(function(operator_l){return this.operator=operator_l}),1)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/keyword"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Keyword");return self.$attr_reader("keyword"),self.$attr_reader("begin"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(keyword_l,begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,this.keyword=keyword_l,$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),4)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/definition"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader,join"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Definition"),$proto=self.$$prototype;return $proto.keyword=$proto.end=nil,self.$attr_reader("keyword"),self.$attr_reader("operator"),self.$attr_reader("name"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(keyword_l,operator_l,name_l,end_l){return delete $$initialize.$$p,this.keyword=keyword_l,this.operator=operator_l,this.name=name_l,this.end=end_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[this.keyword.$join(this.end)],null)}),4)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/method_definition"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("attr_reader,join"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"MethodDefinition");return self.$$prototype.keyword=nil,self.$attr_reader("keyword"),self.$attr_reader("operator"),self.$attr_reader("name"),self.$attr_reader("end"),self.$attr_reader("assignment"),$def(self,"$initialize",(function $$initialize(keyword_l,operator_l,name_l,end_l,assignment_l,body_l){var $ret_or_1;return delete $$initialize.$$p,this.keyword=keyword_l,this.operator=operator_l,this.name=name_l,this.end=end_l,this.assignment=assignment_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[this.keyword.$join($truthy($ret_or_1=end_l)?$ret_or_1:body_l)],null)}),6)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/send"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("attr_reader,with,update_operator,protected"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Send");return self.$attr_reader("dot"),self.$attr_reader("selector"),self.$attr_reader("operator"),self.$attr_reader("begin"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(dot_l,selector_l,begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,this.dot=dot_l,this.selector=selector_l,$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),5),$def(self,"$with_operator",(function(operator_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_operator(operator_l)}),1)}),1),self.$protected(),$def(self,"$update_operator",(function(operator_l){return this.operator=operator_l}),1)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/index"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("attr_reader,with,update_operator,protected"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Index");return self.$attr_reader("begin"),self.$attr_reader("end"),self.$attr_reader("operator"),$def(self,"$initialize",(function $$initialize(begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],this.operator=nil,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),3),$def(self,"$with_operator",(function(operator_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_operator(operator_l)}),1)}),1),self.$protected(),$def(self,"$update_operator",(function(operator_l){return this.operator=operator_l}),1)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/condition"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Condition");return self.$attr_reader("keyword"),self.$attr_reader("begin"),self.$attr_reader("else"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(keyword_l,begin_l,else_l,end_l,expression_l){var $a;return delete $$initialize.$$p,this.keyword=keyword_l,$a=[begin_l,else_l,end_l],this.begin=$a[0],this.else=$a[1],this.end=$a[2],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),5)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/ternary"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Ternary");return self.$attr_reader("question"),self.$attr_reader("colon"),$def(self,"$initialize",(function $$initialize(question_l,colon_l,expression_l){var $a;return delete $$initialize.$$p,$a=[question_l,colon_l],this.question=$a[0],this.colon=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),3)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/for"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"For");return self.$attr_reader("keyword","in"),self.$attr_reader("begin","end"),$def(self,"$initialize",(function $$initialize(keyword_l,in_l,begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,$a=[keyword_l,in_l],this.keyword=$a[0],this.in=$a[1],$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),5)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/rescue_body"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"RescueBody");return self.$attr_reader("keyword"),self.$attr_reader("assoc"),self.$attr_reader("begin"),$def(self,"$initialize",(function $$initialize(keyword_l,assoc_l,begin_l,expression_l){return delete $$initialize.$$p,this.keyword=keyword_l,this.assoc=assoc_l,this.begin=begin_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),4)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/heredoc"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Heredoc");return self.$attr_reader("heredoc_body"),self.$attr_reader("heredoc_end"),$def(self,"$initialize",(function $$initialize(begin_l,body_l,end_l){return delete $$initialize.$$p,this.heredoc_body=body_l,this.heredoc_end=end_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[begin_l],null)}),3)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/objc_kwarg"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ObjcKwarg");return self.$attr_reader("keyword"),self.$attr_reader("operator"),self.$attr_reader("argument"),$def(self,"$initialize",(function $$initialize(keyword_l,operator_l,argument_l,expression_l){var $a;return delete $$initialize.$$p,$a=[keyword_l,operator_l,argument_l],this.keyword=$a[0],this.operator=$a[1],this.argument=$a[2],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),4)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/syntax_error"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader,message"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"SyntaxError");return self.$attr_reader("diagnostic"),$def(self,"$initialize",(function $$initialize(diagnostic){return delete $$initialize.$$p,this.diagnostic=diagnostic,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[diagnostic.$message()],null)}),1)}($nesting[0],$$("StandardError"))}($nesting[0],$nesting)},Opal.modules["parser/clobbering_error"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass;return function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return $klass($nesting[0],$$("RuntimeError"),"ClobberingError"),nil}($nesting[0],$nesting)},Opal.modules["parser/diagnostic"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$truthy=Opal.truthy,$hash2=Opal.hash2,$def=Opal.def,$eqeq=Opal.eqeq,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$to_ary=Opal.to_ary,$rb_gt=Opal.rb_gt,$rb_times=Opal.rb_times,$send=Opal.send,$to_a=Opal.to_a,$rb_ge=Opal.rb_ge,$not=Opal.not,$neqeq=Opal.neqeq;return Opal.add_stubs("freeze,attr_reader,include?,raise,join,inspect,dup,compile,is?,==,line,last_line,+,message,render_line,first_line_only,last_line_only,-,source_buffer,decompose_position,end_pos,>,private,source_line,*,length,each,line_range,intersect,column_range,size,[]=,>=,!,map,name,!=,resize,=~,source,adjust"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Diagnostic"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.reason=$proto.arguments=$proto.location=$proto.level=$proto.highlights=nil,$const_set($nesting[0],"LEVELS",["note","warning","error","fatal"].$freeze()),self.$attr_reader("level","reason","arguments"),self.$attr_reader("location","highlights"),$def(self,"$initialize",(function(level,reason,arguments$,location,highlights){var $ret_or_1;return null==highlights&&(highlights=[]),$truthy($$("LEVELS")["$include?"](level))||this.$raise($$("ArgumentError"),"Diagnostic#level must be one of "+$$("LEVELS").$join(", ")+"; "+level.$inspect()+" provided."),$truthy(location)||this.$raise("Expected a location"),this.level=level,this.reason=reason,this.arguments=($truthy($ret_or_1=arguments$)?$ret_or_1:$hash2([],{})).$dup().$freeze(),this.location=location,this.highlights=highlights.$dup().$freeze(),this.$freeze()}),-5),$def(self,"$message",(function(){return $$("Messages").$compile(this.reason,this.arguments)}),0),$def(self,"$render",(function(){var $a,$b,first_line=nil,last_line=nil,num_lines=nil,last_lineno=nil,last_column=nil;return $eqeq(this.location.$line(),this.location.$last_line())||$truthy(this.location["$is?"]("\n"))?$rb_plus([this.location+": "+this.level+": "+this.$message()],this.$render_line(this.location)):(first_line=this.$first_line_only(this.location),last_line=this.$last_line_only(this.location),num_lines=$rb_plus($rb_minus(this.location.$last_line(),this.location.$line()),1),$b=this.location.$source_buffer().$decompose_position(this.location.$end_pos()),last_lineno=null==($a=$to_ary($b))[0]?nil:$a[0],last_column=null==$a[1]?nil:$a[1],$rb_plus($rb_plus([this.location+"-"+last_lineno+":"+last_column+": "+this.level+": "+this.$message()],this.$render_line(first_line,$rb_gt(num_lines,2),!1)),this.$render_line(last_line,!1,!0)))}),0),self.$private(),$def(self,"$render_line",(function(range,ellipsis,range_end){var source_line=nil,highlight_line=nil,$writer=nil;return null==ellipsis&&(ellipsis=!1),null==range_end&&(range_end=!1),source_line=range.$source_line(),highlight_line=$rb_times(" ",source_line.$length()),$send(this.highlights,"each",[],(function(highlight){var line_range,$writer=nil;return null==highlight&&(highlight=nil),line_range=range.$source_buffer().$line_range(range.$line()),$truthy(highlight=highlight.$intersect(line_range))?($writer=[highlight.$column_range(),$rb_times("~",highlight.$size())],$send(highlight_line,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),1),$truthy(range["$is?"]("\n"))?highlight_line=$rb_plus(highlight_line,"^"):$not(range_end)&&$truthy($rb_ge(range.$size(),1))?($writer=[range.$column_range(),$rb_plus("^",$rb_times("~",$rb_minus(range.$size(),1)))],$send(highlight_line,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):($writer=[range.$column_range(),$rb_times("~",range.$size())],$send(highlight_line,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(ellipsis)&&(highlight_line=$rb_plus(highlight_line,"...")),$send([source_line,highlight_line],"map",[],(function(line){return null==line&&(line=nil),range.$source_buffer().$name()+":"+range.$line()+": "+line}),1)}),-2),$def(self,"$first_line_only",(function(range){return $neqeq(range.$line(),range.$last_line())?range.$resize(range.$source()["$=~"](/\n/)):range}),1),$def(self,"$last_line_only",(function(range){return $neqeq(range.$line(),range.$last_line())?range.$adjust($hash2(["begin_pos"],{begin_pos:range.$source()["$=~"](/[^\n]*$/)})):range}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/diagnostic/engine"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy;return Opal.add_stubs("attr_accessor,ignore?,call,raise?,raise,protected,==,level"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Engine"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.consumer=$proto.ignore_warnings=$proto.all_errors_are_fatal=nil,self.$attr_accessor("consumer"),self.$attr_accessor("all_errors_are_fatal"),self.$attr_accessor("ignore_warnings"),$def(self,"$initialize",(function(consumer){return null==consumer&&(consumer=nil),this.consumer=consumer,this.all_errors_are_fatal=!1,this.ignore_warnings=!1}),-1),$def(self,"$process",(function(diagnostic){return $truthy(this["$ignore?"](diagnostic))||$truthy(this.consumer)&&this.consumer.$call(diagnostic),$truthy(this["$raise?"](diagnostic))&&this.$raise($$$($$("Parser"),"SyntaxError"),diagnostic),this}),1),self.$protected(),$def(self,"$ignore?",(function(diagnostic){var $ret_or_1;return $truthy($ret_or_1=this.ignore_warnings)?diagnostic.$level()["$=="]("warning"):$ret_or_1}),1),$def(self,"$raise?",(function(diagnostic){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.all_errors_are_fatal)?diagnostic.$level()["$=="]("error"):$ret_or_2)?$ret_or_1:diagnostic.$level()["$=="]("fatal")}),1)}(Opal.$r($nesting)("Diagnostic"),0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/static_environment"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def;return Opal.add_stubs("reset,[],push,dup,pop,add,to_sym,include?,declare,declared?,empty?"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"StaticEnvironment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.stack=$proto.variables=nil,$const_set($nesting[0],"FORWARD_ARGS","FORWARD_ARGS"),$const_set($nesting[0],"ANONYMOUS_BLOCKARG","ANONYMOUS_BLOCKARG"),$def(self,"$initialize",(function(){return this.$reset()}),0),$def(self,"$reset",(function(){return this.variables=$$("Set")["$[]"](),this.stack=[]}),0),$def(self,"$extend_static",(function(){return this.stack.$push(this.variables),this.variables=$$("Set")["$[]"](),this}),0),$def(self,"$extend_dynamic",(function(){return this.stack.$push(this.variables),this.variables=this.variables.$dup(),this}),0),$def(self,"$unextend",(function(){return this.variables=this.stack.$pop(),this}),0),$def(self,"$declare",(function(name){return this.variables.$add(name.$to_sym()),this}),1),$def(self,"$declared?",(function(name){return this.variables["$include?"](name.$to_sym())}),1),$def(self,"$declare_forward_args",(function(){return this.$declare($$("FORWARD_ARGS"))}),0),$def(self,"$declared_forward_args?",(function(){return this["$declared?"]($$("FORWARD_ARGS"))}),0),$def(self,"$declare_anonymous_blockarg",(function(){return this.$declare($$("ANONYMOUS_BLOCKARG"))}),0),$def(self,"$declared_anonymous_blockarg?",(function(){return this["$declared?"]($$("ANONYMOUS_BLOCKARG"))}),0),$def(self,"$empty?",(function(){return this.stack["$empty?"]()}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$const_set=Opal.const_set,$hash=Opal.hash,$def=Opal.def,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$hash2=Opal.hash2,$rb_plus=Opal.rb_plus,$to_ary=Opal.to_ary,$rb_le=Opal.rb_le,$eqeqeq=Opal.eqeqeq,$rb_gt=Opal.rb_gt,$neqeq=Opal.neqeq,$not=Opal.not,$rb_ge=Opal.rb_ge,$range=Opal.range,$rb_lt=Opal.rb_lt,$gvars=Opal.gvars;return Opal.add_stubs("attr_accessor,private,_lex_trans_keys=,-,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_interp_words=,lex_en_interp_string=,lex_en_plain_words=,lex_en_plain_string=,lex_en_interp_backslash_delimited=,lex_en_plain_backslash_delimited=,lex_en_interp_backslash_delimited_words=,lex_en_plain_backslash_delimited_words=,lex_en_regexp_modifiers=,lex_en_expr_variable=,lex_en_expr_fname=,lex_en_expr_endfn=,lex_en_expr_dot=,lex_en_expr_arg=,lex_en_expr_cmdarg=,lex_en_expr_endarg=,lex_en_expr_mid=,lex_en_expr_beg=,lex_en_expr_labelarg=,lex_en_expr_value=,lex_en_expr_end=,lex_en_leading_dot=,lex_en_line_comment=,lex_en_line_begin=,freeze,ord,union,chars,attr_reader,reset,lex_en_line_begin,class,new,source,==,encoding,unpack,[],lex_en_expr_dot,lex_en_expr_fname,lex_en_expr_value,lex_en_expr_beg,lex_en_expr_mid,lex_en_expr_arg,lex_en_expr_cmdarg,lex_en_expr_end,lex_en_expr_endarg,lex_en_expr_endfn,lex_en_expr_labelarg,lex_en_interp_string,lex_en_interp_words,lex_en_plain_string,fetch,invert,push,count,pop,any?,shift,send,+,size,<=,===,<<,>,!=,emit_comment,tok,literal,flush_string,extend_content,emit,heredoc?,saved_herebody_s=,start_interp_brace,[]=,diagnostic,range,str_s,gsub,version?,nest_and_try_closing,heredoc_e,pop_literal,infer_indent_level,!,eof_codepoint?,words?,extend_space,extend_string,active?,>=,slice,start_with?,chr,munge_escape?,match,regexp?,squiggly_heredoc?,supports_line_continuation_via_slash?,include?,scan,join,=~,to_i,stack_pop,emit_table,push_literal,in_argdef,arg_or_cmdarg,<,emit_do,declared?,nil?,last,getbyte,inspect,end_with?,empty?,index,call,Float,to_f,length,lambda,Rational,Complex,each,encode_escape,%,in_kwarg,end_interp_brace_and_try_closing,lexpop,saved_herebody_s,next_state_for_literal,rstrip,&,|,lex_error,protected,force_encoding,process,backslash_delimited?,interpolate?,lex_en_interp_backslash_delimited_words,lex_en_plain_backslash_delimited_words,lex_en_plain_words,lex_en_interp_backslash_delimited,lex_en_plain_backslash_delimited,dedent_level,type,lex_en_regexp_modifiers,upcase"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Lexer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$writer=nil,$proto=self.$$prototype;return $proto.source_buffer=$proto.source_pts=$proto.cs=$proto.cmdarg_stack=$proto.cmdarg=$proto.cond_stack=$proto.cond=$proto.dedent_level=$proto.token_queue=$proto.p=$proto.command_start=$proto.herebody_s=$proto.sharp_s=$proto.ts=$proto.te=$proto.top=$proto.stack=$proto.version=$proto.escape_s=$proto.escape=$proto.act=$proto.context=$proto.static_env=$proto.newline_s=$proto.lambda_stack=$proto.paren_nest=$proto.num_digits_s=$proto.num_suffix_s=$proto.num_base=$proto.num_xfrm=$proto.eq_begin_s=$proto.cs_before_block_comment=$proto.tokens=$proto.comments=$proto.diagnostics=$proto.literal_stack=nil,function(self,$parent_nesting){self.$attr_accessor("_lex_trans_keys"),self.$private("_lex_trans_keys","_lex_trans_keys=")}(Opal.get_singleton_class(self)),$send(self,"_lex_trans_keys=",$to_a($writer=[[0,0,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,46,46,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,127,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0,92,9,32,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,48,57,0,127,0,26,0,35,9,32,36,123,0,127,48,57,0,127,0,32,9,32,65,122,65,122,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,46,46,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,0,127,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,10,10,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,122,0,0,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,46,46,46,46,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_key_spans"),self.$private("_lex_key_spans","_lex_key_spans=")}(Opal.get_singleton_class(self)),$send(self,"_lex_key_spans=",$to_a($writer=[[0,1,1,1,1,1,1,1,1,1,27,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,128,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,96,24,0,1,1,1,24,1,1,93,24,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,24,27,93,27,36,88,128,10,128,27,36,24,88,128,10,128,33,24,58,58,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,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,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,128,128,128,128,128,1,128,128,24,1,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,128,24,0,20,1,84,84,84,1,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,123,0,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,55,0,128,128,128,0,1,0,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,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,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,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,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,84,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,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,0,64,0,84,84,84,1,1,1,1,1,52,1,92,101,91,1]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_index_offsets"),self.$private("_lex_index_offsets","_lex_index_offsets=")}(Opal.get_singleton_class(self)),$send(self,"_lex_index_offsets=",$to_a($writer=[[0,0,2,4,6,8,10,12,14,16,18,46,175,304,433,562,609,731,853,947,1069,1191,1238,1360,1482,1516,1518,1612,1734,1838,1967,2096,2225,2354,2401,2523,2645,2739,2861,2983,3030,3152,3274,3308,3310,3404,3526,3630,3759,3888,4017,4146,4275,4404,4533,4662,4791,4920,5049,5178,5307,5436,5565,5567,5569,5571,5700,5702,5704,5706,5708,5837,5966,6095,6224,6353,6482,6611,6740,6869,6998,7127,7256,7385,7514,7643,7772,7901,8030,8032,8034,8036,8038,8048,8050,8052,8054,8056,8058,8060,8062,8064,8193,8195,8324,8409,8411,8496,8498,8500,8502,8504,8506,8508,8637,8639,8724,8809,8894,8979,9064,9066,9195,9324,9391,9393,9522,9651,9653,9655,9657,9659,9788,9876,9878,9925,10047,10169,10263,10385,10507,10554,10676,10798,10832,10834,10928,11050,11154,11283,11412,11541,11670,11799,11928,11930,11932,12061,12077,12088,12099,12110,12121,12123,12125,12127,12129,12131,12133,12135,12264,12266,12351,12436,12521,12606,12691,12776,12778,12780,12865,12950,12952,12954,12956,12958,12960,13057,13082,13083,13085,13087,13089,13114,13116,13118,13212,13237,13326,13455,13466,13595,13717,13718,13719,13728,13737,13738,13739,13833,13834,13835,13836,13930,13932,13933,13934,13935,14029,14085,14141,14142,14198,14254,14255,14302,14396,14490,14491,14492,14586,14642,14698,14699,14746,14748,14842,14919,14975,15031,15087,15088,15215,15342,15343,15470,15471,15598,15725,15852,15979,15980,16107,16234,16361,16488,16615,16742,16743,16744,16800,16801,16895,16984,17113,17124,17253,17375,17376,17377,17386,17395,17396,17397,17491,17492,17493,17494,17588,17590,17591,17592,17593,17687,17743,17799,17800,17856,17912,17913,17960,18054,18148,18149,18150,18244,18300,18356,18357,18404,18406,18500,18577,18633,18689,18745,18746,18873,19e3,19001,19128,19129,19256,19383,19510,19637,19638,19765,19892,20019,20146,20273,20400,20401,20402,20458,20459,20553,20578,20606,20700,20728,20765,20854,20983,20994,21123,21151,21188,21213,21302,21431,21442,21571,21605,21630,21689,21748,21778,21907,21918,22047,22176,22305,22434,22459,22460,22527,22529,22531,22660,22789,22800,22802,22804,22806,22808,22810,22813,22815,22882,22884,22887,23016,23145,23274,23403,23532,23661,23790,23792,23794,23923,24052,24181,24310,24439,24568,24697,24826,24955,25084,25213,25342,25471,25600,25729,25858,25987,26116,26245,26374,26503,26632,26761,26890,27019,27148,27277,27406,27535,27664,27793,27922,28051,28180,28309,28438,28567,28696,28825,28954,29083,29212,29341,29470,29599,29728,29857,29986,30115,30244,30373,30502,30631,30760,30889,31018,31147,31276,31405,31534,31663,31792,31921,32050,32179,32308,32437,32566,32695,32824,32953,33082,33211,33340,33469,33598,33727,33856,33985,34114,34243,34372,34501,34503,34632,34761,34786,34788,34790,34792,34794,34795,34924,35053,35055,35056,35081,35082,35149,35151,35153,35155,35157,35159,35162,35164,35231,35233,35236,35365,35367,35369,35371,35499,35628,35691,35745,35799,35800,35854,35909,35911,35913,35915,35940,35941,36070,36071,36188,36189,36191,36193,36194,36248,36250,36252,36254,36279,36281,36410,36412,36414,36416,36418,36547,36676,36805,36806,36935,36937,37062,37087,37089,37091,37093,37094,37096,37097,37226,37355,37380,37381,37383,37385,37387,37388,37517,37646,37775,37904,38033,38162,38291,38420,38549,38678,38807,38936,39065,39194,39323,39452,39581,39710,39715,39716,39783,39785,39786,39787,39788,39813,39815,39840,39907,39909,39911,40040,40065,40066,40087,40089,40174,40259,40344,40346,40348,40350,40378,40507,40636,40638,40639,40706,40709,40710,40711,40712,40713,40780,40909,40920,40922,40924,40926,40929,40931,40933,40936,41065,41076,41205,41207,41209,41212,41213,41239,41270,41272,41274,41341,41344,41468,41469,41598,41727,41849,41850,41851,41860,41869,41870,41871,41965,41966,41967,41968,42062,42064,42065,42066,42067,42161,42217,42273,42274,42330,42386,42387,42434,42528,42622,42623,42624,42718,42774,42830,42831,42878,42880,42974,43051,43107,43163,43219,43220,43347,43474,43475,43602,43603,43730,43857,43984,44111,44112,44239,44366,44493,44620,44747,44874,45001,45128,45255,45382,45509,45636,45763,45890,46017,46144,46271,46398,46525,46526,46527,46583,46584,46713,46842,46971,46972,46974,46975,47104,47233,47362,47491,47620,47749,47878,48007,48136,48265,48394,48523,48652,48781,48910,49039,49168,49297,49426,49555,49684,49813,49942,50071,50200,50329,50458,50587,50716,50845,50974,51103,51232,51361,51490,51619,51748,51877,52006,52135,52264,52393,52522,52651,52780,52909,53038,53167,53296,53425,53554,53683,53812,53941,54070,54199,54328,54457,54586,54715,54844,54911,55040,55169,55298,55427,55556,55685,55814,55943,56072,56201,56330,56459,56588,56717,56846,56975,57104,57233,57362,57491,57620,57749,57878,58007,58136,58137,58202,58296,58321,58322,58324,58326,58328,58329,58458,58587,58612,58613,58615,58617,58619,58620,58749,58878,58880,58881,58906,58907,58974,58976,58978,59107,59236,59247,59249,59274,59275,59276,59297,59300,59313,59315,59317,59372,59421,59497,59565,59581,59640,59642,59643,59649,59650,59651,59719,59787,59855,59923,59934,59936,59937,59943,59945,59946,59947,60015,60083,60151,60219,60287,60355,60423,60491,60561,60629,60699,60767,60769,60772,60774,60841,60843,60846,60975,61104,61105,61234,61363,61492,61621,61750,61879,61880,61882,61883,61884,62013,62142,62271,62400,62529,62658,62787,62916,63045,63174,63303,63432,63561,63690,63819,63948,64077,64206,64335,64464,64593,64722,64851,64980,65109,65238,65367,65496,65625,65754,65883,66012,66141,66270,66399,66528,66657,66742,66871,67e3,67129,67258,67387,67516,67645,67774,67903,68032,68161,68290,68419,68548,68677,68806,68935,69064,69193,69322,69451,69580,69709,69838,69967,70096,70225,70354,70483,70612,70741,70870,70999,71128,71257,71386,71515,71644,71773,71902,72031,72160,72289,72418,72547,72676,72805,72934,73063,73192,73321,73450,73579,73708,73837,73966,74095,74224,74353,74482,74611,74740,74869,74998,75127,75128,75193,75194,75279,75364,75449,75451,75453,75455,75457,75459,75512,75514,75607,75709,75801]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_indicies"),self.$private("_lex_indicies","_lex_indicies=")}(Opal.get_singleton_class(self)),$send(self,"_lex_indicies=",$to_a($writer=[[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,0,0,10,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,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,14,14,12,14,12,14,14,12,12,14,14,14,15,14,14,16,16,16,16,16,16,16,16,16,16,14,14,14,14,14,14,14,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,12,14,12,12,13,14,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,12,12,12,14,12,13,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,14,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,14,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,18,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,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,12,12,12,12,12,13,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,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,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,12,12,12,12,12,13,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,20,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,24,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,22,22,22,22,22,22,22,22,25,22,19,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,26,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,22,22,22,22,22,22,22,22,25,22,19,27,27,27,19,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,19,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,19,30,30,30,19,30,30,30,30,30,31,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,32,30,19,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,32,30,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,33,20,19,34,34,34,19,34,34,34,34,34,35,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,19,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,34,36,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,37,34,34,34,34,34,34,38,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,39,34,19,34,34,34,19,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,19,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,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,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,39,34,40,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,41,19,41,19,19,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,44,42,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,26,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,22,22,22,22,22,22,22,22,25,22,19,45,45,45,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,45,45,45,45,45,45,45,46,46,46,46,46,46,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,46,46,46,46,46,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,47,49,47,49,49,47,47,49,49,49,50,49,49,51,51,51,51,51,51,51,51,51,51,49,49,49,49,49,49,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,49,47,47,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,49,47,48,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,49,49,49,49,49,49,49,49,47,47,47,47,47,47,47,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,47,47,47,47,49,47,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,47,47,47,47,47,49,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,52,52,52,52,52,52,52,52,52,52,47,47,47,47,47,47,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,52,52,52,52,52,52,52,52,52,52,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,55,54,57,57,57,54,57,57,57,57,57,58,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,59,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,61,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,62,62,62,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,54,65,65,65,54,65,65,65,65,65,66,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,67,65,54,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,67,65,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,68,55,54,69,69,69,54,69,69,69,69,69,70,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,71,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,72,69,69,69,69,69,69,73,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,69,54,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,69,75,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,76,54,76,54,54,77,77,77,54,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,54,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,79,77,54,57,57,57,54,57,57,57,57,57,58,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,61,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,80,80,80,54,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,54,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,80,80,80,80,80,80,80,81,81,81,81,81,81,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,80,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,82,84,82,84,84,82,82,84,84,84,85,84,84,86,86,86,86,86,86,86,86,86,86,84,84,84,84,84,84,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,84,82,82,83,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,84,82,83,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,84,84,84,84,84,84,84,84,82,82,82,82,82,82,82,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,82,82,82,82,84,82,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,82,82,82,82,82,84,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,87,87,87,87,87,87,87,87,87,87,82,82,82,82,82,82,88,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,87,87,87,87,87,87,87,87,87,87,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,91,91,89,91,89,91,91,89,89,91,91,91,92,91,91,93,93,93,93,93,93,93,93,93,93,91,91,91,91,91,91,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,91,89,89,90,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,91,89,90,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,91,91,91,91,91,91,91,91,91,91,89,89,89,89,89,89,89,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,89,89,89,89,91,89,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,89,89,89,89,89,91,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,94,94,94,94,94,94,94,94,94,94,89,89,89,89,89,89,95,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,90,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,89,90,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,94,94,94,94,94,94,94,94,94,94,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,90,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,89,90,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97,98,97,98,97,97,98,98,97,97,97,99,97,97,100,100,100,100,100,100,100,100,100,100,97,97,97,97,97,97,97,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,97,98,98,96,97,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,98,98,97,98,96,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,97,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,97,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,101,101,101,101,101,101,101,101,101,101,98,98,98,98,98,98,102,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,98,98,98,98,101,98,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,98,98,98,98,98,101,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,103,103,103,103,103,103,103,103,103,103,98,98,98,98,98,98,98,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,98,98,98,98,103,98,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,98,98,98,98,98,103,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,104,104,104,104,105,104,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,104,104,104,104,104,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,106,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,110,108,108,108,108,108,108,108,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109,109,111,108,108,108,108,110,108,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,108,108,108,108,109,108,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,108,108,108,108,108,109,111,108,108,112,113,108,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,116,114,114,114,114,114,114,114,114,114,114,114,114,114,114,115,115,115,115,115,115,115,115,115,115,117,114,114,114,114,116,114,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,114,114,114,114,115,114,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,114,114,114,114,114,115,117,114,119,118,120,118,121,118,118,118,118,118,118,118,118,118,118,123,118,123,123,123,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,123,118,118,118,118,124,125,118,126,118,127,128,129,130,131,124,118,118,118,118,118,118,118,118,118,118,132,118,133,129,134,135,118,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,136,137,129,138,122,118,122,122,122,122,122,122,122,122,139,122,122,122,122,122,122,122,122,140,122,122,141,122,142,122,122,122,143,144,118,138,118,122,118,118,118,118,118,118,118,118,118,145,118,145,145,145,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,145,118,118,118,118,146,147,118,148,118,149,150,151,152,153,146,118,118,118,118,118,118,118,118,118,118,154,118,155,151,156,157,118,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,158,159,151,120,115,118,115,115,115,115,115,115,115,115,160,115,115,115,115,115,115,115,115,161,115,115,162,115,163,115,115,115,164,165,118,120,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,167,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,168,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,169,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,170,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,171,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,173,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,174,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,175,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,166,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,176,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,177,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,178,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,180,179,181,179,182,179,151,179,183,179,179,179,179,179,179,179,184,179,185,179,186,179,151,179,187,179,151,179,188,179,182,179,190,189,191,191,191,191,191,191,191,191,191,193,191,193,193,193,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,193,191,191,191,191,191,191,191,194,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,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,191,195,191,191,192,191,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,191,191,191,191,191,192,197,191,191,191,191,191,191,191,191,191,191,199,191,199,199,199,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,199,191,191,191,191,191,191,191,200,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,191,201,191,191,198,191,198,198,198,202,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,191,191,191,191,191,198,204,203,204,204,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,204,203,203,203,203,203,203,203,205,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,203,203,203,203,203,203,203,203,203,203,203,203,206,203,207,203,208,203,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,203,203,203,203,203,203,203,209,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,203,203,203,203,203,203,203,203,203,203,203,203,210,203,211,212,214,213,215,213,216,213,217,213,218,213,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,220,220,220,220,220,220,220,220,220,220,220,220,220,219,219,219,219,219,219,219,219,219,219,220,220,220,220,220,220,220,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,220,220,220,220,220,220,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,220,220,220,220,220,219,221,211,222,223,222,222,222,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,222,211,211,224,211,211,211,211,211,211,211,211,211,211,211,211,225,225,225,225,225,225,225,225,225,225,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,226,211,227,228,227,227,227,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,227,211,211,229,211,211,211,211,211,211,211,211,211,211,211,211,230,230,230,230,230,230,230,230,230,230,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,231,211,233,234,233,233,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,235,232,232,232,232,232,232,232,232,232,232,232,232,236,236,236,236,236,236,236,236,236,236,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,237,232,239,240,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,239,244,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,223,211,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,247,245,247,245,247,247,245,245,247,247,247,248,247,247,249,249,249,249,249,249,249,249,249,249,247,247,247,247,247,247,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,247,245,245,246,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,245,245,247,245,246,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,247,247,247,247,247,247,247,247,247,245,245,245,245,245,245,245,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,245,245,245,245,247,245,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,245,245,245,245,245,247,250,247,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,245,250,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,252,245,245,245,245,253,245,245,245,245,245,254,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,221,245,245,245,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,245,245,245,245,251,255,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,245,245,245,254,245,251,257,257,257,257,257,257,257,257,257,257,258,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,256,256,256,256,256,256,256,256,256,256,257,257,257,257,257,257,257,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,257,257,257,257,256,257,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,257,257,257,257,257,256,260,259,263,262,258,257,263,264,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,252,245,245,245,245,253,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,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,245,245,245,245,251,255,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,245,245,245,245,245,251,266,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,263,265,263,266,267,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,268,267,270,270,270,267,270,270,270,270,270,271,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,272,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,274,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,275,275,275,267,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,267,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,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,277,275,267,278,278,278,267,278,278,278,278,278,279,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,267,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,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,278,278,278,278,278,278,278,278,278,278,278,280,278,267,278,278,278,267,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,267,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,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,278,278,278,278,278,278,278,278,278,278,278,280,278,267,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,281,268,267,282,282,282,267,282,282,282,282,282,283,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,284,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,285,282,282,282,282,282,282,286,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,287,282,267,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,287,282,288,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,289,267,289,267,267,290,290,290,267,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,267,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,292,290,267,270,270,270,267,270,270,270,270,270,271,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,274,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,293,293,293,267,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,267,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,294,294,294,294,293,293,293,293,293,293,293,294,294,294,294,294,294,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,293,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,295,295,295,295,295,295,295,295,295,295,297,211,211,298,211,296,211,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,211,211,211,211,295,211,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,211,211,211,211,211,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,299,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,295,295,300,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,295,295,295,295,295,295,295,301,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,301,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,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,304,302,302,302,302,302,302,302,302,302,302,302,302,302,302,303,303,303,303,303,303,303,303,303,303,305,302,302,302,302,304,302,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,302,302,302,302,303,302,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,302,302,302,302,302,303,305,302,302,306,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,307,307,307,307,307,307,307,307,307,307,308,308,308,308,308,308,308,308,308,308,307,307,307,307,307,307,307,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,308,307,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,308,310,309,310,309,309,311,311,311,311,311,311,311,311,311,311,309,311,311,311,311,311,311,311,311,311,311,309,312,312,312,312,312,312,312,312,312,312,309,314,314,314,314,314,314,314,314,314,314,313,315,315,315,315,315,315,315,315,315,315,313,317,316,318,316,319,316,320,316,322,321,323,321,324,321,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,307,307,307,307,307,307,307,307,307,307,325,325,325,325,325,325,325,325,325,325,307,307,307,307,307,307,307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,307,307,307,307,325,307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,307,307,307,307,307,325,326,313,327,328,327,327,327,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,327,313,313,329,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,330,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,331,313,332,333,332,332,332,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,332,313,313,334,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,335,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,336,313,338,339,338,338,338,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,338,337,337,340,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,341,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,342,337,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,347,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,344,350,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,347,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,351,313,328,313,353,354,353,353,353,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,353,352,352,355,352,352,356,352,352,352,352,352,352,352,357,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,358,352,360,354,360,360,360,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,360,359,359,355,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,358,359,363,362,365,364,366,361,367,361,368,352,370,369,369,369,370,369,369,369,369,371,372,371,371,371,369,369,369,369,369,369,369,369,369,369,369,369,370,369,369,369,369,369,371,369,369,373,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,374,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,375,369,369,376,369,371,377,371,371,371,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,371,377,378,379,380,381,382,384,383,386,387,386,386,386,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,385,372,383,388,383,390,389,389,389,390,389,389,389,389,391,392,391,391,391,389,389,389,389,389,389,389,389,389,389,389,389,390,389,389,389,389,389,391,389,389,393,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,394,389,391,395,391,391,391,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,391,395,397,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,398,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,399,396,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,13,13,13,13,13,13,13,13,13,13,400,400,400,400,400,400,400,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,400,400,400,400,13,400,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,400,400,400,400,400,13,16,16,16,16,16,16,16,16,16,16,400,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,13,13,13,13,13,13,13,13,13,13,401,401,401,401,401,401,401,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,401,401,401,401,17,401,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,401,401,401,401,401,17,404,403,403,403,404,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,404,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,405,405,405,405,405,405,405,405,403,403,403,403,403,403,403,403,403,403,403,406,403,403,403,403,403,403,403,403,403,407,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,408,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,409,403,403,410,403,411,412,414,414,414,414,414,414,414,414,413,415,415,415,415,415,415,415,415,413,413,416,416,42,42,42,416,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,416,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,417,42,418,419,420,420,42,42,42,420,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,420,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,421,42,41,420,422,423,424,424,27,27,27,424,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,424,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,425,27,426,426,426,426,426,426,426,426,426,426,424,424,424,424,424,424,424,426,426,426,426,426,426,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,426,426,426,426,426,426,424,428,428,428,428,428,428,428,428,428,428,427,427,427,427,427,427,427,428,428,428,428,428,428,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,428,428,428,428,428,428,427,427,429,429,429,429,429,429,429,429,429,429,420,420,420,420,420,420,420,429,429,429,429,429,429,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,429,429,429,429,429,429,420,431,431,431,431,431,431,431,431,431,431,430,430,430,430,430,430,430,431,431,431,431,431,431,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,431,431,431,431,431,431,430,430,420,20,20,20,420,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,420,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,432,20,416,27,27,27,416,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,416,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,416,433,433,433,416,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,416,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,434,433,435,436,436,433,433,433,436,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,436,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,437,433,438,438,438,438,438,438,438,438,438,438,436,436,436,436,436,436,436,438,438,438,438,438,438,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,438,438,438,438,438,438,436,440,440,440,440,440,440,440,440,440,440,439,439,439,439,439,439,439,440,440,440,440,440,440,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,440,440,440,440,440,440,439,439,436,20,20,20,436,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,436,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,432,20,441,436,436,27,27,27,436,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,436,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,443,443,443,443,443,443,443,443,443,443,442,442,442,442,442,442,442,443,443,443,443,443,443,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,443,443,443,443,443,443,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,444,442,445,445,445,445,445,445,445,445,445,445,442,442,442,442,442,442,442,445,445,445,445,445,445,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,445,445,445,445,445,445,442,446,446,446,446,446,446,446,446,446,446,442,442,442,442,442,442,442,446,446,446,446,446,446,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,446,446,446,446,446,446,442,447,447,447,447,447,447,447,447,447,447,442,442,442,442,442,442,442,447,447,447,447,447,447,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,447,447,447,447,447,447,442,448,451,450,450,450,451,450,450,450,450,452,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,451,450,450,450,450,450,452,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,453,453,453,453,453,453,453,453,453,453,450,450,450,450,450,450,450,453,453,453,453,453,453,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,453,453,453,453,453,453,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,454,450,451,450,450,450,451,450,450,450,450,449,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,451,450,450,450,450,450,449,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,455,455,455,455,455,455,455,455,455,455,450,450,450,450,450,450,450,455,455,455,455,455,455,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,455,455,455,455,455,455,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,456,450,449,451,455,455,455,451,455,455,455,455,449,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,451,455,455,455,455,455,449,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,449,455,457,451,458,458,458,451,458,458,458,458,452,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,452,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,453,453,453,453,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,449,458,451,458,458,458,451,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,455,455,455,455,455,455,455,455,455,455,458,458,458,458,458,458,458,455,455,455,455,455,455,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,455,455,455,455,455,455,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,460,460,460,460,460,460,460,460,460,460,458,458,458,458,458,458,458,460,460,460,460,460,460,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,460,460,460,460,460,460,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,453,453,453,453,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,462,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,463,463,463,463,463,463,463,463,463,463,458,458,458,458,458,458,458,463,463,463,463,463,463,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,463,463,463,463,463,463,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,464,464,464,464,464,464,464,464,464,464,458,458,458,458,458,458,458,464,464,464,464,464,464,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,464,464,464,464,464,464,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,465,465,465,465,465,465,465,465,465,465,458,458,458,458,458,458,458,465,465,465,465,465,465,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,465,465,465,465,465,465,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,466,466,466,466,466,466,466,466,466,466,458,458,458,458,458,458,458,466,466,466,466,466,466,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,466,466,466,466,466,466,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,467,467,467,467,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,467,467,467,467,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,449,458,468,469,471,471,471,471,471,471,471,471,471,471,470,470,470,470,470,470,470,471,471,471,471,471,471,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,471,471,471,471,471,471,470,470,473,472,472,472,473,472,472,472,472,472,474,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,473,472,472,472,472,472,472,472,472,475,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,476,472,478,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,479,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,480,477,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,48,48,48,48,48,48,48,48,48,48,481,481,481,481,481,481,481,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,481,481,481,481,48,481,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,481,481,481,481,481,48,51,51,51,51,51,51,51,51,51,51,481,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,48,48,48,48,48,48,48,48,48,48,482,482,482,482,482,482,482,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,482,482,482,482,52,482,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,482,482,482,482,482,52,485,484,484,484,485,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,485,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,486,486,486,486,486,486,486,486,484,484,484,484,484,484,484,484,484,484,484,487,484,484,484,484,484,484,484,484,484,488,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,489,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,490,484,484,491,484,492,493,495,495,495,495,495,495,495,495,494,496,496,496,496,496,496,496,496,494,494,497,497,77,77,77,497,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,497,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,498,77,499,500,501,501,77,77,77,501,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,501,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,502,77,76,501,503,504,505,505,62,62,62,505,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,505,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,506,62,507,507,507,507,507,507,507,507,507,507,505,505,505,505,505,505,505,507,507,507,507,507,507,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,507,507,507,507,507,507,505,509,509,509,509,509,509,509,509,509,509,508,508,508,508,508,508,508,509,509,509,509,509,509,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,509,509,509,509,509,509,508,508,510,510,510,510,510,510,510,510,510,510,501,501,501,501,501,501,501,510,510,510,510,510,510,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,510,510,510,510,510,510,501,512,512,512,512,512,512,512,512,512,512,511,511,511,511,511,511,511,512,512,512,512,512,512,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,512,512,512,512,512,512,511,511,501,55,55,55,501,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,501,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,513,55,497,62,62,62,497,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,497,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,497,514,514,514,497,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,497,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,515,514,516,517,517,514,514,514,517,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,517,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,518,514,519,519,519,519,519,519,519,519,519,519,517,517,517,517,517,517,517,519,519,519,519,519,519,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,519,519,519,519,519,519,517,521,521,521,521,521,521,521,521,521,521,520,520,520,520,520,520,520,521,521,521,521,521,521,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,521,521,521,521,521,521,520,520,517,55,55,55,517,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,517,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,513,55,522,517,517,62,62,62,517,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,517,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,524,524,524,524,524,524,524,524,524,524,523,523,523,523,523,523,523,524,524,524,524,524,524,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,524,524,524,524,524,524,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,525,523,526,526,526,526,526,526,526,526,526,526,523,523,523,523,523,523,523,526,526,526,526,526,526,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,526,526,526,526,526,526,523,527,527,527,527,527,527,527,527,527,527,523,523,523,523,523,523,523,527,527,527,527,527,527,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,527,527,527,527,527,527,523,528,528,528,528,528,528,528,528,528,528,523,523,523,523,523,523,523,528,528,528,528,528,528,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,528,528,528,528,528,528,523,529,532,531,531,531,532,531,531,531,531,533,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,532,531,531,531,531,531,533,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,534,534,534,534,534,534,534,534,534,534,531,531,531,531,531,531,531,534,534,534,534,534,534,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,534,534,534,534,534,534,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,535,531,532,531,531,531,532,531,531,531,531,530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,532,531,531,531,531,531,530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,536,536,536,536,536,536,536,536,536,536,531,531,531,531,531,531,531,536,536,536,536,536,536,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,536,536,536,536,536,536,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,537,531,530,532,536,536,536,532,536,536,536,536,530,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,532,536,536,536,536,536,530,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,530,536,538,532,539,539,539,532,539,539,539,539,533,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,533,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,534,534,534,534,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,530,539,532,539,539,539,532,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,536,536,536,536,536,536,536,536,536,536,539,539,539,539,539,539,539,536,536,536,536,536,536,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,536,536,536,536,536,536,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,541,541,541,541,541,541,541,541,541,539,539,539,539,539,539,539,541,541,541,541,541,541,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,541,541,541,541,541,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,534,534,534,534,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,543,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,544,544,544,544,544,544,544,544,544,544,539,539,539,539,539,539,539,544,544,544,544,544,544,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,544,544,544,544,544,544,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,545,545,545,545,545,545,545,545,545,545,539,539,539,539,539,539,539,545,545,545,545,545,545,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,545,545,545,545,545,545,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,546,546,546,546,546,546,546,546,546,546,539,539,539,539,539,539,539,546,546,546,546,546,546,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,546,546,546,546,546,546,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,547,547,547,547,547,547,547,547,547,547,539,539,539,539,539,539,539,547,547,547,547,547,547,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,547,547,547,547,547,547,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,548,548,548,548,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,548,548,548,548,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,530,539,549,550,552,552,552,552,552,552,552,552,552,552,551,551,551,551,551,551,551,552,552,552,552,552,552,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,552,552,552,552,552,552,551,551,554,553,553,553,554,553,553,553,553,555,556,555,555,555,553,553,553,553,553,553,553,553,553,553,553,553,554,553,553,553,553,553,555,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,557,553,555,558,555,555,555,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,555,558,559,560,560,560,559,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,559,560,562,561,561,561,562,561,561,561,561,561,563,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,562,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,564,561,565,566,566,566,565,566,566,566,566,566,567,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,565,566,569,568,568,568,569,568,568,568,568,568,570,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,569,568,568,568,568,568,568,568,568,571,568,573,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,574,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,575,572,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,83,83,83,83,83,83,83,83,83,83,576,576,576,576,576,576,576,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,576,576,576,576,83,576,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,576,576,576,576,576,83,86,86,86,86,86,86,86,86,86,86,576,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,83,83,83,83,83,83,83,83,83,83,577,577,577,577,577,577,577,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,577,577,577,577,87,577,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,577,577,577,577,577,87,579,578,578,578,579,578,578,578,578,578,580,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,579,578,582,581,581,581,582,581,581,581,581,583,584,583,583,583,581,581,581,581,581,581,581,581,581,581,581,581,582,581,581,581,581,581,583,581,581,585,581,583,586,583,583,583,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,583,586,588,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,589,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,590,587,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,90,90,90,90,90,90,90,90,90,90,591,591,591,591,591,591,591,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,591,591,591,591,90,591,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,591,591,591,591,591,90,93,93,93,93,93,93,93,93,93,93,591,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,90,90,90,90,90,90,90,90,90,90,592,592,592,592,592,592,592,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,592,592,592,592,94,592,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,592,592,592,592,592,94,594,593,593,593,594,593,593,593,593,595,596,595,595,595,593,593,593,593,593,593,593,593,593,593,593,593,594,593,593,593,593,593,595,593,595,597,595,595,595,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,595,597,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,598,598,598,598,598,598,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,598,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,600,600,600,600,600,600,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,600,601,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,602,98,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,96,96,96,96,96,96,96,96,96,96,603,603,603,603,603,603,603,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,603,603,603,603,96,603,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,603,603,603,603,603,96,100,100,100,100,100,100,100,100,100,100,603,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,101,101,101,101,101,101,101,101,101,101,604,604,604,604,604,604,604,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,604,604,604,604,101,604,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,604,604,604,604,604,101,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,103,103,103,103,103,103,103,103,103,103,605,605,605,605,605,605,605,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,605,605,605,605,103,605,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,605,605,605,605,605,103,607,608,608,608,607,608,608,608,608,609,610,609,609,609,608,608,608,608,608,608,608,608,608,608,608,608,607,608,608,608,608,608,609,611,608,612,613,614,615,608,608,608,616,617,608,617,608,618,608,608,608,608,608,608,608,608,608,608,619,608,620,621,622,608,608,623,624,623,623,625,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,626,627,608,618,628,618,629,630,631,632,633,634,606,606,635,606,606,606,636,637,638,606,606,639,640,641,642,606,643,606,644,606,608,645,608,617,608,606,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,647,646,646,646,646,646,646,646,646,646,646,646,646,646,646,606,606,606,606,606,606,606,606,606,606,646,646,646,647,646,647,646,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,646,646,646,646,606,646,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,646,646,646,646,646,606,609,648,609,609,609,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,609,648,649,618,650,650,618,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,618,650,651,652,653,654,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,105,105,655,105,655,105,105,655,655,105,105,105,657,105,105,658,658,658,658,658,658,658,658,658,658,105,105,105,105,105,105,105,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,655,105,655,655,656,105,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,655,655,655,105,655,656,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,656,656,656,656,656,656,656,656,656,656,659,659,659,659,659,659,659,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,659,659,659,659,656,659,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,659,659,659,659,659,656,658,658,658,658,658,658,658,658,658,658,659,660,650,618,650,618,650,618,650,662,661,618,663,650,618,650,664,618,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,618,655,618,650,618,618,650,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,647,646,646,646,646,646,646,646,646,646,646,646,646,646,646,623,623,623,623,623,623,623,623,623,623,646,646,646,647,646,647,646,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,646,646,646,646,623,646,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,646,646,646,646,646,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,666,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,667,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,668,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,623,623,623,623,623,669,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,623,623,623,623,623,670,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,669,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,664,655,610,655,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,672,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,673,674,606,606,606,606,606,675,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,676,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,677,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,678,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,679,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,680,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,681,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,682,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,683,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,684,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,685,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,686,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,682,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,687,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,686,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,688,606,689,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,690,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,691,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,692,606,606,606,606,606,606,606,606,606,606,606,606,693,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,694,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,695,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,696,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,697,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,698,606,606,606,606,606,606,606,606,606,606,699,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,701,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,691,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,702,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,703,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,647,704,704,704,704,704,704,704,704,704,704,704,704,704,704,606,606,606,606,606,606,606,606,606,606,704,704,704,647,704,647,704,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,704,704,704,704,606,704,606,606,606,606,606,606,606,606,705,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,704,704,704,704,704,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,706,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,707,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,708,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,709,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,710,606,711,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,712,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,684,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,714,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,715,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,716,606,606,606,606,606,606,606,606,606,606,606,606,606,638,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,698,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,684,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,717,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,718,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,719,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,720,606,606,606,721,606,606,606,606,606,722,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,722,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,723,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,724,606,606,606,606,606,606,606,606,606,606,606,606,606,606,725,726,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,727,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,728,606,606,729,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,695,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,730,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,731,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,732,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,638,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,733,606,606,606,606,606,606,606,606,606,727,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,695,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,734,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,735,606,606,606,606,606,606,606,736,606,606,606,606,606,606,606,737,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,701,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,721,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,738,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,695,606,606,606,719,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,739,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,740,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,689,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,618,650,742,743,743,743,742,743,743,743,743,744,743,744,744,744,743,743,743,743,743,743,743,743,743,743,743,743,742,743,743,743,743,743,744,743,743,745,743,743,743,743,743,743,743,743,743,743,746,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,743,747,743,743,741,743,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,743,743,743,743,743,741,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,110,748,748,748,748,748,748,748,748,748,748,748,748,748,748,109,109,109,109,109,109,109,109,109,109,111,748,748,748,748,110,748,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,748,748,748,748,109,748,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,748,748,748,748,748,109,744,749,744,744,744,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,744,749,750,751,752,753,754,748,755,748,756,758,759,759,759,758,759,759,759,759,760,761,760,760,760,759,759,759,759,759,759,759,759,759,759,759,759,758,759,759,759,759,759,760,762,759,763,759,764,765,759,759,759,766,767,759,767,759,764,759,759,759,759,759,759,759,759,759,759,759,759,768,769,770,759,759,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,772,773,759,764,757,764,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,759,774,759,767,759,757,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,776,775,775,775,775,775,775,775,775,775,775,775,775,775,775,757,757,757,757,757,757,757,757,757,757,775,775,775,775,775,776,775,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,775,775,775,775,757,775,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,775,775,775,775,775,757,778,777,779,760,780,760,760,760,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,760,780,781,764,782,782,764,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,764,782,783,784,785,786,764,782,764,782,764,782,764,787,782,764,782,789,764,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,764,788,764,782,764,764,782,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,776,790,790,790,790,790,790,790,790,790,790,790,790,790,790,771,771,771,771,771,771,771,771,771,771,790,790,790,790,790,776,790,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,790,790,790,790,771,790,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,790,790,790,790,790,771,789,788,761,788,764,782,792,791,791,791,792,791,791,791,791,793,794,793,793,793,791,791,791,791,791,791,791,791,791,791,791,791,792,791,791,791,791,791,793,791,791,795,791,120,796,791,797,791,798,120,151,799,153,120,791,791,791,791,791,791,791,791,791,791,800,791,801,151,802,803,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,151,804,151,120,791,791,791,791,791,791,791,791,791,791,805,791,791,791,791,791,791,791,791,806,791,791,807,791,808,791,791,791,164,165,791,120,791,809,809,809,809,809,809,809,809,809,793,809,793,793,793,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,793,809,809,809,809,146,147,809,148,809,149,150,151,152,153,146,809,809,809,809,809,809,809,809,809,809,154,809,155,151,156,157,809,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,158,159,151,120,115,809,115,115,115,115,115,115,115,115,160,115,115,115,115,115,115,115,115,161,115,115,162,115,163,115,115,115,164,165,809,120,809,115,810,811,811,811,810,811,811,811,811,151,812,151,151,151,811,811,811,811,811,811,811,811,811,811,811,811,810,811,811,811,811,811,151,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,151,811,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,120,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,813,151,812,151,151,151,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,151,814,814,814,814,814,814,814,814,814,815,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,151,814,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,151,114,816,810,151,810,818,817,820,821,820,820,820,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,820,819,822,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,116,810,810,810,810,810,810,810,810,810,810,810,810,810,810,115,115,115,115,115,115,115,115,115,115,117,810,810,810,810,116,810,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,810,810,810,810,115,810,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,810,810,810,810,810,115,823,151,812,151,151,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,120,810,824,825,826,827,828,829,151,812,151,151,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,120,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,151,817,120,830,120,830,831,832,831,831,831,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,831,819,833,830,834,834,834,834,834,834,834,834,834,123,834,123,123,123,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,123,834,834,834,834,124,125,834,126,834,127,128,129,130,131,124,834,834,834,834,834,834,834,834,834,834,132,834,133,129,134,135,834,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,136,137,129,138,122,834,122,122,122,122,122,122,122,122,139,122,122,122,122,122,122,122,122,140,122,122,141,122,142,122,122,122,143,144,834,138,834,122,151,830,835,830,836,830,837,830,838,190,190,190,838,190,190,190,190,839,190,839,839,839,190,190,190,190,190,190,190,190,190,190,190,190,838,190,190,190,190,190,839,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,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,190,840,190,190,192,190,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,190,190,190,190,190,192,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,841,189,189,189,189,189,189,189,189,189,189,189,189,189,189,192,192,192,192,192,192,192,192,192,192,190,189,189,189,189,841,189,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,189,189,189,189,192,189,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,189,189,189,189,189,192,842,842,842,842,842,842,842,842,842,193,842,193,193,193,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,193,842,842,842,842,842,842,842,194,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,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,842,195,842,842,192,842,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,842,842,842,842,842,192,843,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,841,842,842,842,842,842,842,842,842,842,842,842,842,842,842,192,192,192,192,192,192,192,192,192,192,190,842,842,842,842,841,842,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,842,842,842,842,192,842,192,192,192,192,192,192,192,192,192,192,192,192,192,192,844,192,192,192,192,192,192,192,192,192,192,192,842,842,842,842,842,192,197,842,846,845,845,845,846,845,845,845,845,847,845,847,847,847,845,845,845,845,845,845,845,845,845,845,845,845,846,845,845,845,845,845,847,845,845,848,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,849,845,845,845,845,845,845,845,850,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,851,845,847,852,847,847,847,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,847,852,853,854,855,856,858,857,859,860,857,861,863,864,864,864,863,864,864,864,864,865,866,865,865,865,864,864,864,864,864,864,864,864,864,864,864,864,863,864,864,864,864,864,865,864,864,867,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,864,868,864,864,862,864,862,862,862,862,862,862,862,862,869,862,862,862,862,862,862,862,862,870,862,862,871,862,872,862,862,862,864,864,864,864,864,862,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,862,862,862,862,862,862,862,862,862,862,873,873,873,873,873,873,873,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,873,873,873,873,862,873,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,873,873,873,873,873,862,865,874,865,865,865,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,865,874,875,876,877,878,879,881,880,882,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,885,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,886,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,887,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,888,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,889,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,890,862,862,862,862,862,862,862,891,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,892,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,893,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,884,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,894,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,895,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,896,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,888,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,898,221,221,221,898,221,221,221,221,899,900,899,899,899,221,221,221,221,221,221,221,221,221,221,221,221,898,221,221,221,221,221,899,901,221,902,221,903,904,221,905,221,906,907,221,908,909,910,221,221,221,221,221,221,221,221,221,221,911,221,912,913,914,915,221,916,917,916,916,918,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,919,920,221,921,922,221,923,924,925,926,927,928,897,897,929,897,897,897,930,931,932,897,897,933,934,935,936,897,937,897,938,897,939,940,221,921,221,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,945,944,944,946,944,947,949,950,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,951,948,953,952,954,955,956,899,957,899,899,899,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,899,957,959,958,961,962,961,961,961,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,961,960,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,221,963,964,965,966,967,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,968,968,968,968,968,968,968,968,968,968,969,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,969,969,969,969,969,968,972,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,221,971,973,975,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,221,974,221,211,222,223,222,222,222,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,222,971,971,224,971,971,971,971,971,971,971,971,971,971,971,971,225,225,225,225,225,225,225,225,225,225,971,971,971,221,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,226,971,239,240,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,222,223,222,222,222,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,222,971,971,224,971,971,971,971,971,971,971,971,971,971,971,971,225,225,225,225,225,225,225,225,225,225,971,971,971,221,221,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,226,971,977,963,979,978,981,980,963,982,982,982,963,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,963,982,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,984,985,963,986,247,987,985,963,963,988,989,963,989,963,247,963,963,963,963,963,963,963,963,963,963,990,963,991,992,993,963,994,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,995,963,963,247,983,247,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,963,996,963,997,963,983,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,999,998,998,998,998,998,998,998,998,998,998,998,998,998,998,983,983,983,983,983,983,983,983,983,983,998,998,998,1e3,998,999,998,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,998,998,998,998,983,998,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,998,998,998,998,998,983,1002,1001,1003,1005,1006,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1007,1004,1009,1010,1008,1011,1012,1013,1014,247,998,998,1015,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,247,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,246,246,246,246,246,246,246,246,246,246,998,998,998,998,998,998,998,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,998,998,998,998,246,998,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,998,998,998,998,998,246,249,249,249,249,249,249,249,249,249,249,998,1016,998,247,998,247,998,247,1017,998,247,998,247,998,247,247,998,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1018,1018,1018,1018,1018,1018,1021,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1018,1018,1018,1018,1019,1018,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1018,1018,1018,1018,1018,1019,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1022,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1024,1024,1024,1024,1024,1024,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1024,1024,1024,1024,1025,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1024,1024,1024,1024,1024,1025,1016,998,1015,998,1027,1028,963,1029,262,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,263,252,264,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,263,253,263,266,221,963,921,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,221,963,221,972,963,1033,1032,1032,1032,1033,1032,1032,1032,1032,1034,1035,1034,1034,1034,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1033,1032,1032,1032,1032,1032,1034,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1032,1037,1032,1032,1036,1032,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1032,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1038,1038,1038,1038,1039,1038,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1038,1038,1038,1038,1038,1039,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1040,1040,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1041,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1040,1041,1044,1043,1043,1043,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1045,1045,1045,1045,1045,1045,1045,1045,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1046,1043,1043,1043,1043,1043,1043,1043,1043,1043,1047,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1048,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1049,1043,1043,1050,1043,1051,1052,1054,1054,1054,1054,1054,1054,1054,1054,1053,1055,1055,1055,1055,1055,1055,1055,1055,1053,1053,1056,1056,290,290,290,1056,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1056,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1057,290,1058,1059,1060,1060,290,290,290,1060,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1060,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1061,290,289,1060,1062,1063,1064,1064,275,275,275,1064,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1064,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,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,1065,275,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1064,1064,1064,1064,1064,1064,1064,1066,1066,1066,1066,1066,1066,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1066,1066,1066,1066,1066,1066,1064,1068,1068,1068,1068,1068,1068,1068,1068,1068,1068,1067,1067,1067,1067,1067,1067,1067,1068,1068,1068,1068,1068,1068,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1068,1068,1068,1068,1068,1068,1067,1067,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1060,1060,1060,1060,1060,1060,1060,1069,1069,1069,1069,1069,1069,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1069,1069,1069,1069,1069,1069,1060,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1070,1070,1060,268,268,268,1060,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1060,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1072,268,1056,275,275,275,1056,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1056,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,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,277,275,1056,1073,1073,1073,1056,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1056,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1074,1073,1075,1076,1076,1073,1073,1073,1076,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1076,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1077,1073,1078,1078,1078,1078,1078,1078,1078,1078,1078,1078,1076,1076,1076,1076,1076,1076,1076,1078,1078,1078,1078,1078,1078,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1078,1078,1078,1078,1078,1078,1076,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1079,1079,1076,268,268,268,1076,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1076,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1072,268,1081,1076,1076,275,275,275,1076,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1076,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,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,277,275,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1084,1082,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1082,1082,1082,1082,1082,1082,1082,1085,1085,1085,1085,1085,1085,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1085,1085,1085,1085,1085,1085,1082,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1082,1082,1082,1082,1082,1082,1082,1086,1086,1086,1086,1086,1086,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1086,1086,1086,1086,1086,1086,1082,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1082,1082,1082,1082,1082,1082,1082,1087,1087,1087,1087,1087,1087,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1087,1087,1087,1087,1087,1087,1082,1088,1091,1090,1090,1090,1091,1090,1090,1090,1090,1092,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1091,1090,1090,1090,1090,1090,1092,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1094,1090,1091,1090,1090,1090,1091,1090,1090,1090,1090,1089,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1091,1090,1090,1090,1090,1090,1089,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1096,1090,1089,1091,1095,1095,1095,1091,1095,1095,1095,1095,1089,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1091,1095,1095,1095,1095,1095,1089,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1089,1095,1097,1091,1098,1098,1098,1091,1098,1098,1098,1098,1092,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1092,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1103,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1121,1122,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1123,1123,1123,1123,1123,1123,1123,1124,1124,1124,1124,1124,1124,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1124,1124,1124,1124,1124,1124,1123,1123,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,295,295,295,295,295,295,295,295,295,295,297,211,211,298,211,296,211,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,211,211,211,211,295,211,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,211,211,211,211,211,295,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,296,963,963,963,963,963,963,963,963,963,963,963,963,963,963,295,295,295,295,295,295,295,295,295,295,297,963,963,298,963,296,963,295,295,295,295,1125,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,963,963,963,963,295,963,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,963,963,963,963,963,295,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,296,963,963,963,963,963,963,963,963,963,963,963,963,963,963,295,295,295,295,295,295,295,295,295,295,297,963,963,298,963,296,963,295,295,295,295,295,295,295,295,295,295,295,295,295,1126,295,295,295,295,295,295,295,295,295,295,295,295,963,963,963,963,295,963,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,963,963,963,963,963,295,1127,1128,963,958,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1129,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,1130,1131,897,897,897,897,897,1132,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1133,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,1134,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1135,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,1136,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1137,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1138,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,1139,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1140,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1141,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,897,897,897,897,897,897,897,897,897,897,297,211,211,298,211,296,211,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,211,211,211,211,897,211,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,211,211,211,211,211,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1142,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,1143,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,1139,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1144,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1143,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1145,897,1146,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1147,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1148,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1149,897,897,897,897,897,897,897,897,897,897,897,897,1150,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,1151,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1152,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1153,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1154,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1155,897,897,897,897,897,897,897,897,897,897,1156,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1158,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1148,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1160,897,1161,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1162,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1141,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1163,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1164,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1165,897,897,897,897,897,897,897,897,897,897,897,897,897,932,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1155,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,1166,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1167,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1168,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1169,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1170,897,897,897,1171,897,897,897,897,897,1172,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1172,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1173,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1174,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1175,1176,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,1177,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1178,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1179,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1182,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1183,1180,1180,1184,1180,1182,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1180,1180,1180,1180,1181,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1180,1180,1180,1180,1180,1181,949,1185,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,951,948,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1186,897,897,1187,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1152,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1188,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1189,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1190,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,932,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,1191,897,897,897,897,897,897,897,897,897,1192,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1152,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1193,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1194,897,897,897,897,897,897,897,1195,897,897,897,897,897,897,897,1196,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1197,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1198,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1166,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1199,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1166,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,1200,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1152,897,897,897,1201,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1202,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1166,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1203,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1204,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1146,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,1205,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,1206,963,1208,1207,1207,1207,1208,1207,1207,1207,1207,1209,1210,1209,1209,1209,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1208,1207,1207,1207,1207,1207,1209,1207,1207,1211,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1212,1207,1209,1213,1209,1209,1209,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1209,1213,1214,1215,1216,1217,1218,1220,1219,1221,1223,1224,1224,1224,1223,1224,1224,1224,1224,1225,1226,1225,1225,1225,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1223,1224,1224,1224,1224,1224,1225,1224,1227,1228,1224,1224,1224,1227,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1224,1229,1224,1224,1222,1224,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1224,1224,1224,1224,1224,1222,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,304,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,303,303,303,303,303,303,303,303,303,303,305,1230,1230,1230,1230,304,1230,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,1230,1230,1230,1230,303,1230,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,1230,1230,1230,1230,1230,303,1225,1231,1225,1225,1225,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1225,1231,1232,1233,1234,1235,1236,1237,1230,1238,1240,1241,1241,1241,1240,1241,1241,1241,1241,1242,1243,1242,1242,1242,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1240,1241,1241,1241,1241,1241,1242,1244,1245,1246,1247,1248,1249,1245,1250,1251,1252,1248,1253,1254,1255,1248,1256,1257,1257,1257,1257,1257,1257,1257,1257,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1265,1265,1267,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1268,1269,1270,1248,1271,1245,1272,1273,1274,1275,1276,1277,1239,1239,1278,1239,1239,1239,1279,1280,1281,1239,1239,1282,1283,1284,1285,1239,1286,1239,1287,1239,1288,1289,1290,1291,1241,1239,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,1292,313,313,313,313,313,313,313,313,313,313,313,313,313,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,313,1292,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,1239,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,313,1239,1294,1293,1295,1242,1296,1242,1242,1242,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1242,1296,1297,1299,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1299,1298,1300,1301,1302,1303,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,308,308,1304,308,1304,308,308,1304,1304,308,308,308,1305,308,308,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,308,308,308,308,308,308,308,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,308,1304,1304,325,308,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,308,1304,325,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,1307,1307,1307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,325,1307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,1307,325,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1307,1308,313,1248,1309,1309,1309,1309,1309,1309,1309,1310,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1308,1309,1311,1312,1248,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1308,1313,1308,1314,1309,1316,1315,312,312,312,312,312,312,312,312,312,312,1315,1318,1317,1319,1317,312,312,312,312,312,312,312,312,312,312,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1321,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1322,1320,1320,1320,1320,1320,1321,1320,311,311,311,311,311,311,311,311,311,311,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,310,1320,1324,1323,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1323,1323,1323,1323,1323,1323,1323,1323,1326,1323,1327,1328,1323,1323,1323,1323,1323,1323,1323,1323,1323,1329,1323,1323,1323,1323,1323,1323,1323,1323,1330,1323,1323,1323,1323,1323,1323,1331,1323,1323,1326,1323,1327,1328,1323,1323,1323,1332,1323,1323,1323,1323,1323,1329,1323,1323,1333,1323,1323,1323,1323,1323,1330,1323,314,314,314,314,314,314,314,314,314,314,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1335,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1336,1334,1334,1334,1334,1334,1335,1334,1334,1334,1337,1334,1334,1334,1334,1334,1334,1334,1334,1338,1334,1339,313,1339,313,313,315,315,315,315,315,315,315,315,315,315,313,315,315,315,315,315,315,315,315,315,315,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1339,1340,1340,1340,1340,1340,1340,1340,1340,1340,1341,1340,1343,1342,1344,1346,1345,1345,1345,1347,1345,1348,1349,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1331,1323,1323,1323,1323,1323,1323,1323,1323,1323,1332,1323,1323,1323,1323,1323,1323,1323,1323,1333,1323,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1351,1323,1323,1323,1323,1323,1323,1323,1323,1323,1332,1323,1323,1323,1323,1323,1323,1323,1323,1333,1323,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1354,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1359,1358,1360,1362,1361,1361,1361,1363,1361,1365,1364,1366,1367,1369,1369,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1370,1368,1368,1368,1368,1368,1368,1368,1368,1368,1371,1368,1368,1368,1368,1368,1368,1368,1368,1372,1368,1373,1373,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1374,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1373,1373,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1376,1376,1376,1376,1376,1376,1376,1376,1376,1376,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1377,1375,1375,1375,1375,1375,1375,1375,1375,1375,1378,1375,1375,1375,1375,1375,1375,1375,1375,1379,1375,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1382,1380,1380,1380,1380,1380,1380,1380,1380,1380,1383,1380,1380,1380,1380,1380,1380,1380,1380,1384,1380,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1385,1385,1385,1385,1385,1385,1385,1386,1386,1386,1386,1386,1386,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1387,1385,1386,1386,1386,1386,1386,1386,1385,1385,1388,1385,1385,1385,1385,1385,1385,1385,1385,1389,1385,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1391,1352,1390,1390,1390,1390,1390,1390,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1390,1390,1390,1390,1390,1390,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1393,1392,1394,1394,1394,1394,1394,1394,1394,1394,1394,1394,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1395,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1396,1392,1392,1392,1392,1392,1395,1392,1392,1392,1397,1392,1392,1392,1392,1392,1392,1392,1392,1398,1392,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1400,1392,1392,1392,1392,1392,1392,1392,1392,1392,1397,1392,1392,1392,1392,1392,1392,1392,1392,1398,1392,1401,1352,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1403,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1404,1352,1352,1352,1352,1352,1403,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1310,1317,1248,1405,1309,1299,1309,1406,1407,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1299,1317,1299,1309,1299,1248,1309,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,1304,1304,1408,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,325,1304,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,1304,325,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,1292,313,313,313,313,313,313,313,313,313,313,313,313,313,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,313,313,313,313,1292,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,313,313,313,313,1265,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,313,313,313,313,313,1265,1410,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1412,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1413,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1414,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1415,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1416,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1415,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1417,1419,1418,1420,1421,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1423,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1424,1425,1239,1239,1239,1239,1239,1426,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1427,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1428,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1429,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1430,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1431,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1432,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1433,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1434,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1435,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1436,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1437,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1438,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1439,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1440,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1441,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1437,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1442,1239,1443,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1444,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1445,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1446,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1448,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1449,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1450,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1451,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1452,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1453,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1455,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1456,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1458,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1459,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1460,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1461,1461,1461,1461,1461,1461,1461,1461,1461,327,328,327,327,327,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,327,1292,1461,329,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,1461,330,1461,1461,1292,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,331,1461,1461,1239,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,1461,1461,1461,1461,1239,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1463,1239,1239,1239,1239,1239,1239,1239,1239,1239,1464,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1465,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1292,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1466,1292,1466,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1239,1466,1239,1239,1239,1239,1239,1239,1239,1239,1467,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1466,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1468,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1469,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1470,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1471,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1472,1239,1473,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1474,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1447,1239,1239,1239,1475,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1476,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1477,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1478,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1281,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1479,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1480,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1482,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1483,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1484,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1485,1239,1239,1239,1486,1239,1239,1239,1239,1239,1487,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1488,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1490,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1491,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1492,1493,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1494,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1495,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1496,1239,1239,1497,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1498,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1499,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1500,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1501,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1502,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1503,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1504,1239,1239,1239,1239,1239,1239,1239,1239,1239,1505,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1451,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1480,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1506,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1507,1239,1239,1239,1239,1239,1239,1239,1508,1239,1239,1239,1239,1239,1239,1239,1509,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1510,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1446,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1511,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1512,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1513,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1514,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1451,1239,1239,1239,1515,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1516,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1517,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1518,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1519,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1520,1308,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1248,1298,1521,1523,1522,1523,1523,1523,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1523,1522,1522,1524,1522,1522,1525,1522,1522,1522,1522,1522,1522,1522,357,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1526,1522,353,354,353,353,353,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,353,1527,1527,355,1527,1527,356,1527,1527,1527,1527,1527,1527,1527,357,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,358,1527,360,1528,360,360,360,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,360,1528,1528,355,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,358,1528,1530,1529,1532,1531,363,362,368,1527,366,1527,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1535,1533,1534,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1537,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1538,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1539,1533,1541,1539,0]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_trans_targs"),self.$private("_lex_trans_targs","_lex_trans_targs=")}(Opal.get_singleton_class(self)),$send(self,"_lex_trans_targs=",$to_a($writer=[[186,2,3,4,192,6,7,8,9,10,186,186,195,198,195,12,199,200,14,195,207,208,211,212,224,221,213,214,215,19,216,217,218,226,228,229,233,234,235,230,25,18,209,210,27,258,259,261,263,261,30,264,265,32,261,272,273,276,277,289,286,278,279,280,37,281,282,283,291,293,294,298,299,300,295,43,36,274,275,45,323,324,331,333,331,48,334,335,50,337,340,337,52,341,342,54,348,347,0,56,349,350,58,351,352,352,352,352,465,61,62,63,465,465,494,65,66,494,494,498,498,70,65,71,496,497,499,500,498,494,501,502,504,67,68,505,506,69,498,72,73,78,85,508,509,71,496,497,499,500,498,494,501,502,504,67,68,505,506,69,72,73,78,85,508,509,507,74,75,76,77,79,80,83,81,82,84,86,87,494,89,90,91,93,96,94,95,97,99,525,525,525,526,101,528,102,529,103,526,101,528,102,529,563,104,563,105,106,104,563,105,563,563,563,109,110,111,112,574,563,563,563,115,116,117,563,120,115,116,117,563,120,118,118,116,117,584,119,118,118,116,117,584,119,116,563,601,563,122,602,608,126,617,618,131,132,126,127,616,127,616,563,128,129,130,619,133,563,633,634,637,638,650,647,639,640,641,138,642,643,644,652,654,655,659,660,661,656,144,137,635,636,146,697,698,148,565,107,567,150,151,700,802,153,154,155,802,810,810,810,158,832,831,810,834,836,810,163,164,165,840,810,167,168,851,820,873,171,172,173,177,178,171,172,173,177,178,174,174,172,173,175,176,174,174,172,173,175,176,921,172,810,990,179,992,181,185,993,183,990,180,990,182,992,182,992,184,992,990,186,186,187,188,189,191,193,194,186,186,186,190,186,190,186,1,186,186,186,5,195,195,196,195,197,201,195,195,11,13,195,195,195,195,202,203,204,15,21,26,236,28,195,195,195,205,206,195,16,195,195,195,17,195,195,195,20,219,195,220,222,195,223,225,227,22,195,195,23,231,195,232,24,195,237,241,238,239,240,195,195,242,243,246,248,257,244,245,195,247,249,251,250,195,252,253,254,255,256,195,195,195,260,261,261,261,262,266,261,29,31,261,261,261,261,267,268,269,33,39,44,301,46,261,261,261,270,271,261,34,261,261,261,35,261,261,261,38,284,261,285,287,261,288,290,292,40,261,261,41,296,261,297,42,261,302,306,303,304,305,261,261,307,308,311,313,322,309,310,261,312,314,316,315,261,317,318,319,320,321,261,261,261,325,326,326,327,326,328,326,326,326,329,329,329,330,329,329,329,331,331,331,332,331,47,49,331,331,331,336,336,336,337,337,338,337,339,337,337,51,53,337,337,337,343,343,344,343,343,345,346,345,55,57,347,347,347,353,352,352,354,355,356,357,359,362,363,364,365,352,366,367,369,371,372,373,377,379,380,381,397,402,409,414,421,428,431,432,436,430,440,448,452,454,459,461,464,352,352,352,352,352,352,358,352,358,352,360,59,361,352,60,352,352,368,370,352,374,375,376,372,378,352,382,383,392,395,384,385,386,387,388,389,390,391,353,393,394,396,398,401,399,400,403,406,404,405,407,408,410,412,411,413,415,416,352,417,418,419,420,352,422,425,423,424,426,427,429,433,434,435,437,439,438,441,442,443,445,444,446,447,449,450,451,453,455,456,457,458,460,462,463,466,465,465,467,468,470,471,465,465,465,469,465,469,64,472,465,474,473,473,477,478,479,480,473,482,483,484,485,487,489,490,491,492,493,473,475,473,476,473,473,473,473,473,481,473,481,486,473,488,473,494,494,495,510,511,497,513,514,501,515,516,517,518,519,521,522,523,524,494,494,494,494,494,494,498,503,494,494,494,494,494,494,494,494,494,512,494,512,494,494,494,494,520,494,88,92,98,525,527,530,100,525,525,526,531,531,532,533,535,537,538,531,531,534,531,534,531,536,531,531,531,540,539,539,541,542,543,545,547,548,553,560,539,539,539,539,544,539,544,539,546,539,539,540,549,550,551,552,554,555,558,556,557,559,561,562,564,563,572,573,575,576,578,579,580,581,583,585,586,589,590,615,621,622,623,700,701,702,703,704,582,706,723,728,735,740,742,748,751,752,756,750,760,771,775,778,786,790,793,794,563,104,105,563,107,566,563,563,568,570,571,563,569,563,563,563,563,563,108,563,563,563,563,563,577,563,577,563,563,113,563,114,563,563,582,563,587,563,588,563,563,563,591,600,563,121,603,604,605,563,606,123,609,610,124,613,614,563,592,594,563,593,563,563,595,598,599,563,596,597,563,563,563,563,563,563,607,563,601,611,612,563,611,563,601,611,125,620,563,563,563,624,563,563,563,625,627,563,626,563,626,563,628,629,630,134,140,145,662,147,563,563,563,631,632,563,135,563,563,563,136,563,563,563,139,645,563,646,648,563,649,651,653,141,563,563,142,657,563,658,143,563,663,667,664,665,666,563,563,668,669,672,683,696,670,671,563,673,674,675,677,676,563,678,679,680,681,682,684,691,685,686,687,688,689,690,692,693,694,695,563,563,563,699,149,152,563,705,707,708,718,721,709,710,711,712,713,714,715,716,717,719,720,722,724,727,725,726,729,732,730,731,733,734,736,738,737,739,741,743,745,744,746,747,749,717,753,754,755,757,759,758,761,762,763,768,764,765,766,563,564,565,107,767,570,769,770,772,773,774,776,777,779,780,781,784,782,783,785,787,788,789,791,792,563,582,795,795,796,797,798,800,795,795,795,799,795,799,795,801,795,803,802,802,804,805,802,806,808,802,802,802,802,807,802,807,809,802,811,810,810,814,815,816,810,817,819,822,823,824,825,826,810,827,828,833,861,865,810,866,868,870,810,871,872,874,878,880,881,883,884,902,907,914,922,929,936,941,942,946,940,951,961,967,970,979,983,987,988,989,822,812,810,813,810,810,810,810,810,810,818,810,818,810,156,821,810,810,810,810,810,810,810,810,810,829,810,830,810,810,157,159,810,160,842,853,856,835,857,858,843,847,849,810,835,160,837,839,161,810,837,810,838,810,810,162,841,810,810,844,846,810,844,845,847,849,846,810,848,810,810,850,852,810,166,810,810,810,854,846,847,849,854,855,810,844,846,847,849,810,844,846,847,849,810,859,846,847,849,859,860,810,160,861,835,862,847,849,863,846,160,863,835,864,867,869,810,169,170,810,810,875,876,877,872,879,810,810,882,810,810,810,885,886,895,900,887,888,889,890,891,892,893,894,811,896,897,898,899,811,901,903,906,904,905,811,811,908,911,909,910,912,913,811,915,917,916,918,919,920,810,810,923,811,924,810,925,926,927,928,812,930,933,931,932,934,935,937,938,939,811,943,944,945,947,949,950,948,811,952,953,954,957,955,956,958,959,960,962,964,963,965,966,968,969,971,972,974,977,973,975,976,978,980,981,982,984,985,986,810,810,990,991,995,996,997,990,990,990,994,990,990,999,998,1e3,998,1001,1002,1003,998,998]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_trans_actions"),self.$private("_lex_trans_actions","_lex_trans_actions=")}(Opal.get_singleton_class(self)),$send(self,"_lex_trans_actions=",$to_a($writer=[[1,0,0,0,0,0,0,0,0,0,2,3,4,0,5,0,0,0,0,6,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,9,0,10,0,0,0,0,11,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,12,0,13,0,0,0,0,14,0,15,0,0,0,0,0,16,0,0,0,0,0,0,17,18,19,20,21,0,0,0,22,23,24,0,0,25,26,27,28,29,30,30,31,32,30,33,32,34,32,30,30,31,30,35,30,30,36,30,30,30,30,30,30,0,37,38,0,39,38,40,38,0,0,37,0,41,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,0,0,0,0,0,0,43,44,45,46,0,0,0,46,29,47,30,30,30,47,48,0,49,0,29,30,50,30,51,52,53,0,0,0,0,0,54,55,56,0,29,0,57,0,30,58,30,59,30,60,61,62,61,63,61,0,64,65,64,66,64,67,68,0,69,0,0,0,0,70,70,0,0,71,71,72,0,29,73,0,0,0,70,0,74,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,0,75,0,0,0,0,75,76,0,0,0,77,78,79,80,0,7,7,81,82,82,83,0,0,0,0,84,0,0,0,0,0,0,29,0,0,0,30,58,30,30,30,60,61,62,61,61,61,0,64,65,64,64,64,85,67,86,87,0,88,0,89,89,0,90,0,91,60,92,0,93,29,94,95,98,99,0,29,0,7,0,7,100,101,102,60,103,0,104,0,105,106,107,0,108,109,0,110,7,7,111,112,0,0,113,114,115,116,117,117,117,117,117,117,117,117,118,119,120,0,0,121,0,122,123,124,0,125,126,127,0,0,128,0,0,129,0,7,0,0,130,131,0,0,132,0,29,133,0,0,0,0,0,134,135,0,0,0,0,0,0,0,136,0,0,0,0,137,0,0,0,0,0,138,139,140,0,141,142,143,7,7,144,0,0,145,146,147,148,117,117,117,117,117,117,117,117,149,150,151,0,0,152,0,153,154,155,0,156,157,158,0,0,159,0,0,160,0,7,0,0,161,162,0,0,163,0,29,164,0,0,0,0,0,165,166,0,0,0,0,0,0,0,167,0,0,0,0,168,0,0,0,0,0,169,170,171,0,172,173,0,174,0,175,176,177,178,179,180,0,181,182,183,184,185,186,7,187,0,0,188,189,190,191,192,193,194,195,0,196,7,197,198,0,0,199,200,201,202,203,0,204,205,206,0,207,0,0,208,209,210,211,212,213,0,29,0,0,7,7,0,0,0,214,0,0,0,0,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,218,219,220,221,60,222,0,223,0,0,0,224,0,225,226,0,0,227,0,0,0,228,0,229,0,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,231,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,7,232,233,0,0,7,0,234,235,236,60,237,0,0,29,238,0,239,240,0,29,0,0,241,0,0,0,0,0,0,0,0,0,0,242,0,243,0,244,245,246,247,248,60,249,0,0,250,0,251,252,253,254,29,0,28,0,0,28,0,0,0,0,0,0,7,7,7,255,256,257,258,259,260,261,0,262,263,264,265,266,267,268,269,270,60,271,0,272,273,274,275,276,277,0,0,0,278,7,7,0,279,280,281,282,283,0,0,0,0,0,284,285,60,286,0,287,29,288,289,290,291,292,293,0,29,0,0,0,0,0,0,294,295,296,297,60,298,0,299,29,300,301,302,0,0,0,0,0,0,0,0,0,0,0,0,303,304,0,8,0,0,7,305,0,0,305,305,0,0,7,306,0,306,0,306,306,306,0,0,306,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,0,0,307,308,308,309,310,0,311,312,0,75,0,313,0,314,315,316,317,318,30,319,320,321,322,323,60,324,0,325,326,0,327,0,328,329,305,330,0,331,0,332,333,334,0,0,335,0,0,0,0,336,0,0,0,0,0,0,0,337,0,0,338,0,339,340,0,0,0,341,0,0,342,343,344,345,346,347,0,348,349,349,0,350,0,351,352,352,0,0,353,354,355,0,356,357,358,0,7,359,360,361,0,362,117,117,117,117,117,117,117,117,363,364,365,0,0,366,0,367,368,369,0,370,371,372,0,0,373,0,0,374,0,7,0,0,375,376,0,0,377,0,29,378,0,0,0,0,0,379,380,0,0,0,0,0,0,0,381,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,383,384,385,0,0,0,386,29,303,303,303,303,303,303,303,303,303,303,303,303,75,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,387,303,303,303,303,303,303,303,303,303,303,303,303,388,389,390,391,392,392,388,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,393,394,395,396,0,29,0,0,397,398,399,60,400,0,401,29,402,7,403,404,0,29,405,0,0,406,407,408,409,60,410,0,29,411,412,413,414,0,29,0,415,0,7,416,0,0,0,0,417,0,0,418,418,0,419,0,0,0,420,7,421,421,421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,422,423,424,0,425,426,427,428,429,430,60,431,0,432,0,0,433,434,435,436,437,438,439,440,441,0,442,0,443,444,0,0,445,446,447,0,0,448,0,0,447,449,449,450,451,0,452,453,0,454,455,456,0,457,458,0,0,459,460,447,447,461,0,0,462,462,0,463,0,464,465,7,0,466,0,467,468,469,470,470,471,471,0,0,472,473,473,474,474,475,476,476,477,477,478,479,479,480,480,0,0,481,482,483,484,485,486,486,483,485,487,418,488,0,0,0,489,0,0,490,491,421,421,421,492,421,493,494,29,495,496,497,0,0,0,0,0,0,0,0,0,0,0,0,498,0,0,0,0,492,0,0,0,0,0,499,500,0,0,0,0,0,0,501,0,0,0,0,0,500,502,503,0,504,0,505,0,0,0,0,506,0,0,0,0,0,0,0,0,0,507,0,0,0,0,0,0,0,506,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,508,509,510,511,511,89,511,512,513,514,0,515,516,0,517,0,518,0,0,0,519,520]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_to_state_actions"),self.$private("_lex_to_state_actions","_lex_to_state_actions=")}(Opal.get_singleton_class(self)),$send(self,"_lex_to_state_actions=",$to_a($writer=[[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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,96,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,96,0,96,0,0,0,0,96,96,0,0,0,0,0,96,0,96,0,96,0,0,0,0,96,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,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,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,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,96,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_from_state_actions"),self.$private("_lex_from_state_actions","_lex_from_state_actions=")}(Opal.get_singleton_class(self)),$send(self,"_lex_from_state_actions=",$to_a($writer=[[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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,97,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,97,0,97,0,0,0,0,97,97,0,0,0,0,0,97,0,97,0,97,0,0,0,0,97,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,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,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,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,97,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_eof_trans"),self.$private("_lex_eof_trans","_lex_eof_trans=")}(Opal.get_singleton_class(self)),$send(self,"_lex_eof_trans=",$to_a($writer=[[0,1,1,1,1,1,1,1,1,1,1,13,13,13,13,20,20,20,20,20,20,20,20,20,20,20,20,20,20,48,48,48,48,55,55,55,55,55,55,55,55,55,55,55,55,55,55,83,83,83,83,90,90,90,90,0,0,0,0,105,107,109,109,109,109,115,115,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,180,180,180,180,180,180,180,180,180,180,180,180,190,192,192,192,204,204,204,212,214,214,214,214,214,220,212,212,212,212,212,212,212,246,246,246,246,246,246,212,262,212,262,246,246,212,268,268,268,268,268,268,268,268,268,268,268,268,268,268,212,246,246,246,246,303,303,303,308,310,310,310,314,314,317,317,317,317,322,322,322,308,314,314,314,314,314,314,314,314,314,353,360,362,362,362,362,353,0,378,379,380,382,384,386,384,384,0,396,397,401,401,402,403,412,413,414,414,414,417,417,419,420,421,421,421,423,424,425,425,425,428,428,421,431,431,421,417,417,436,437,437,437,440,440,437,437,437,443,443,443,443,449,450,450,450,450,458,450,450,450,450,463,450,450,450,450,450,450,469,470,471,471,0,478,482,482,483,484,493,494,495,495,495,498,498,500,501,502,502,502,504,505,506,506,506,509,509,502,512,512,502,498,498,517,518,518,518,521,521,518,518,518,524,524,524,524,530,531,531,531,531,539,531,531,531,531,544,531,531,531,531,531,531,550,551,552,552,0,559,560,0,566,0,573,577,577,578,0,0,587,588,592,592,593,0,598,0,601,0,604,604,605,606,0,647,649,650,651,652,654,656,660,660,651,651,651,651,662,651,651,656,651,651,647,666,666,666,666,666,666,656,656,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,705,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,651,0,749,750,751,753,749,749,757,0,776,778,780,781,782,783,784,786,783,783,783,783,783,789,783,783,791,789,789,783,0,810,811,115,115,814,815,115,811,811,818,820,823,811,824,811,825,826,828,830,811,818,831,831,820,831,835,831,831,831,831,0,190,843,844,843,843,0,853,854,856,858,860,858,862,0,874,875,876,877,879,881,883,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,0,942,945,948,949,953,955,956,957,958,959,961,964,965,967,969,972,974,975,212,972,977,972,964,979,981,964,964,999,1002,1004,1005,1009,1012,1013,1014,1015,999,999,999,999,999,999,999,999,999,999,1019,1023,1025,999,999,964,1030,1031,1031,1031,964,964,964,1032,1039,1039,1041,1043,1052,1053,1054,1054,1054,1057,1057,1059,1060,1061,1061,1061,1063,1064,1065,1065,1065,1068,1068,1061,1071,1071,1061,1057,1057,1076,1077,1077,1077,1080,1080,1077,1077,1077,1083,1083,1083,1083,1089,1090,1090,1090,1090,1098,1090,1090,1090,1090,1104,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1122,1123,1124,1124,212,964,964,1128,964,959,942,942,942,942,942,942,942,942,942,942,942,212,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1181,949,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1206,964,0,1214,1215,1216,1218,1220,1222,0,1231,1232,1233,1234,1236,1231,1239,0,314,1294,1296,1297,1298,1299,1301,1303,1305,1308,1308,314,1310,1312,1313,1314,1310,1316,1318,1318,1321,1321,1324,1335,314,1341,1343,1345,1346,1349,1350,1324,1324,1353,1353,1353,1359,1361,1362,1365,1367,1368,1369,1353,1353,1376,1381,1386,1353,1353,1393,1393,1353,1353,1318,1310,1310,1318,1310,1310,1305,314,1411,1412,1412,1412,1412,1412,1412,1418,1305,1421,1422,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1462,1463,1423,1423,1467,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1521,1299,1522,0,1528,1529,1530,1532,1528,1528,1528,0,1537,1537,1537,1537,1541]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_start")}(Opal.get_singleton_class(self)),$send(self,"lex_start=",$to_a($writer=[186])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_error")}(Opal.get_singleton_class(self)),$send(self,"lex_error=",$to_a($writer=[0])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_interp_words")}(Opal.get_singleton_class(self)),$send(self,"lex_en_interp_words=",$to_a($writer=[195])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_interp_string")}(Opal.get_singleton_class(self)),$send(self,"lex_en_interp_string=",$to_a($writer=[261])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_plain_words")}(Opal.get_singleton_class(self)),$send(self,"lex_en_plain_words=",$to_a($writer=[326])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_plain_string")}(Opal.get_singleton_class(self)),$send(self,"lex_en_plain_string=",$to_a($writer=[329])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_interp_backslash_delimited")}(Opal.get_singleton_class(self)),$send(self,"lex_en_interp_backslash_delimited=",$to_a($writer=[331])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_plain_backslash_delimited")}(Opal.get_singleton_class(self)),$send(self,"lex_en_plain_backslash_delimited=",$to_a($writer=[336])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_interp_backslash_delimited_words")}(Opal.get_singleton_class(self)),$send(self,"lex_en_interp_backslash_delimited_words=",$to_a($writer=[337])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_plain_backslash_delimited_words")}(Opal.get_singleton_class(self)),$send(self,"lex_en_plain_backslash_delimited_words=",$to_a($writer=[343])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_regexp_modifiers")}(Opal.get_singleton_class(self)),$send(self,"lex_en_regexp_modifiers=",$to_a($writer=[345])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_variable")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_variable=",$to_a($writer=[347])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_fname")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_fname=",$to_a($writer=[352])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_endfn")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_endfn=",$to_a($writer=[465])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_dot")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_dot=",$to_a($writer=[473])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_arg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_arg=",$to_a($writer=[494])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_cmdarg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_cmdarg=",$to_a($writer=[525])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_endarg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_endarg=",$to_a($writer=[531])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_mid")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_mid=",$to_a($writer=[539])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_beg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_beg=",$to_a($writer=[563])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_labelarg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_labelarg=",$to_a($writer=[795])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_value")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_value=",$to_a($writer=[802])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_end")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_end=",$to_a($writer=[810])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_leading_dot")}(Opal.get_singleton_class(self)),$send(self,"lex_en_leading_dot=",$to_a($writer=[990])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_line_comment")}(Opal.get_singleton_class(self)),$send(self,"lex_en_line_comment=",$to_a($writer=[998])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_line_begin")}(Opal.get_singleton_class(self)),$send(self,"lex_en_line_begin=",$to_a($writer=[186])),$writer[$rb_minus($writer.length,1)],$const_set($nesting[0],"ESCAPES",$hash("a".$ord(),"","b".$ord(),"\b","e".$ord(),"","f".$ord(),"\f","n".$ord(),"\n","r".$ord(),"\r","s".$ord()," ","t".$ord(),"\t","v".$ord(),"\v","\\".$ord(),"\\").$freeze()),$const_set($nesting[0],"REGEXP_META_CHARACTERS",$send($$("Regexp"),"union",$to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()),self.$attr_reader("source_buffer"),self.$attr_accessor("diagnostics"),self.$attr_accessor("static_env"),self.$attr_accessor("force_utf32"),self.$attr_accessor("cond","cmdarg","context","command_start"),self.$attr_accessor("tokens","comments"),self.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack"),$def(self,"$initialize",(function(version){return this.version=version,this.static_env=nil,this.context=nil,this.tokens=nil,this.comments=nil,this.$reset()}),1),$def(self,"$reset",(function(reset_state){return null==reset_state&&(reset_state=!0),$truthy(reset_state)&&(this.cs=this.$class().$lex_en_line_begin(),this.cond=$$("StackState").$new("cond"),this.cmdarg=$$("StackState").$new("cmdarg"),this.cond_stack=[],this.cmdarg_stack=[]),this.force_utf32=!1,this.source_pts=nil,this.p=0,this.ts=nil,this.te=nil,this.act=0,this.stack=[],this.top=0,this.token_queue=[],this.literal_stack=[],this.eq_begin_s=nil,this.sharp_s=nil,this.newline_s=nil,this.num_base=nil,this.num_digits_s=nil,this.num_suffix_s=nil,this.num_xfrm=nil,this.escape_s=nil,this.escape=nil,this.herebody_s=nil,this.paren_nest=0,this.lambda_stack=[],this.dedent_level=nil,this.command_start=!0,this.cs_before_block_comment=this.$class().$lex_en_line_begin()}),-1),$def(self,"$source_buffer=",(function(source_buffer){var source=nil;return this.source_buffer=source_buffer,$truthy(this.source_buffer)?(source=this.source_buffer.$source(),$eqeq(source.$encoding(),$$$($$("Encoding"),"UTF_8"))?this.source_pts=source.$unpack("U*"):this.source_pts=source.$unpack("C*"),$eqeq(this.source_pts["$[]"](0),65279)?this.p=1:nil):this.source_pts=nil}),1),$def(self,"$encoding",(function(){return this.source_buffer.$source().$encoding()}),0),$const_set($nesting[0],"LEX_STATES",$hash2(["line_begin","expr_dot","expr_fname","expr_value","expr_beg","expr_mid","expr_arg","expr_cmdarg","expr_end","expr_endarg","expr_endfn","expr_labelarg","interp_string","interp_words","plain_string","plain_words"],{line_begin:self.$lex_en_line_begin(),expr_dot:self.$lex_en_expr_dot(),expr_fname:self.$lex_en_expr_fname(),expr_value:self.$lex_en_expr_value(),expr_beg:self.$lex_en_expr_beg(),expr_mid:self.$lex_en_expr_mid(),expr_arg:self.$lex_en_expr_arg(),expr_cmdarg:self.$lex_en_expr_cmdarg(),expr_end:self.$lex_en_expr_end(),expr_endarg:self.$lex_en_expr_endarg(),expr_endfn:self.$lex_en_expr_endfn(),expr_labelarg:self.$lex_en_expr_labelarg(),interp_string:self.$lex_en_interp_string(),interp_words:self.$lex_en_interp_words(),plain_string:self.$lex_en_plain_string(),plain_words:self.$lex_en_plain_string()})),$def(self,"$state",(function(){return $$("LEX_STATES").$invert().$fetch(this.cs,this.cs)}),0),$def(self,"$state=",(function(state){return this.cs=$$("LEX_STATES").$fetch(state)}),1),$def(self,"$push_cmdarg",(function(){return this.cmdarg_stack.$push(this.cmdarg),this.cmdarg=$$("StackState").$new("cmdarg."+this.cmdarg_stack.$count())}),0),$def(self,"$pop_cmdarg",(function(){return this.cmdarg=this.cmdarg_stack.$pop()}),0),$def(self,"$push_cond",(function(){return this.cond_stack.$push(this.cond),this.cond=$$("StackState").$new("cond."+this.cond_stack.$count())}),0),$def(self,"$pop_cond",(function(){return this.cond=this.cond_stack.$pop()}),0),$def(self,"$dedent_level",(function(){var $a,dedent_level;return dedent_level=($a=[this.dedent_level,nil])[0],this.dedent_level=$a[1],dedent_level}),0),$def(self,"$advance",(function(){var $a,$b,pe,self=this,klass=nil,_lex_trans_keys=nil,_lex_key_spans=nil,_lex_index_offsets=nil,_lex_indicies=nil,_lex_trans_targs=nil,_lex_trans_actions=nil,_lex_to_state_actions=nil,_lex_from_state_actions=nil,_lex_eof_trans=nil,p=nil,eof=nil,cmd_state=nil,_slen=nil,_trans=nil,_keys=nil,_inds=nil,_goto_level=nil,$ret_or_1=nil,_wide=nil,tm=nil,heredoc_e=nil,diag_msg=nil,ident_tok=nil,ident_ts=nil,ident_te=nil,current_literal=nil,$writer=nil,line=nil,string=nil,lookahead=nil,token=nil,message=nil,escaped_char=nil,$ret_or_2=nil,unknown_options=nil,type=nil,delimiter=nil,escape=nil,ident=nil,followed_by_nl=nil,nl_emitted=nil,dots_te=nil,value=nil,digits=nil,invalid_idx=nil,invalid_s=nil,codepoints=nil,codepoint_s=nil,spaces_p=nil,codepoint=nil,new_herebody_s=nil,indent=nil,dedent_body=nil;if($truthy(self.token_queue["$any?"]()))return self.token_queue.$shift();for(_lex_trans_keys=(klass=self.$class()).$send("_lex_trans_keys"),_lex_key_spans=klass.$send("_lex_key_spans"),_lex_index_offsets=klass.$send("_lex_index_offsets"),_lex_indicies=klass.$send("_lex_indicies"),_lex_trans_targs=klass.$send("_lex_trans_targs"),_lex_trans_actions=klass.$send("_lex_trans_actions"),_lex_to_state_actions=klass.$send("_lex_to_state_actions"),_lex_from_state_actions=klass.$send("_lex_from_state_actions"),_lex_eof_trans=klass.$send("_lex_eof_trans"),pe=$rb_plus(self.source_pts.$size(),2),$a=[self.p,pe],p=$a[0],eof=$a[1],cmd_state=self.command_start,self.command_start=!1,!1,_slen=null==($a=$to_ary($b=nil))[0]?nil:$a[0],_trans=null==$a[1]?nil:$a[1],_keys=null==$a[2]?nil:$a[2],_inds=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],_goto_level=0,10,15,20,30,40;$truthy(!0);){if($truthy($rb_le(_goto_level,0))){if($eqeq(p,pe)){_goto_level=30;continue}if($eqeq(self.cs,0)){_goto_level=40;continue}}if($truthy($rb_le(_goto_level,10))&&($eqeqeq(97,$ret_or_1=_lex_from_state_actions["$[]"](self.cs))&&(self.ts=p),_keys=self.cs["$<<"](1),_inds=_lex_index_offsets["$[]"](self.cs),_slen=_lex_key_spans["$[]"](self.cs),_wide=$truthy($ret_or_1=self.source_pts["$[]"](p))?$ret_or_1:0,_trans=$truthy($rb_gt(_slen,0))&&$truthy($rb_le(_lex_trans_keys["$[]"](_keys),_wide))&&$truthy($rb_le(_wide,_lex_trans_keys["$[]"]($rb_plus(_keys,1))))?_lex_indicies["$[]"]($rb_minus($rb_plus(_inds,_wide),_lex_trans_keys["$[]"](_keys))):_lex_indicies["$[]"]($rb_plus(_inds,_slen))),$truthy($rb_le(_goto_level,15))&&(self.cs=_lex_trans_targs["$[]"](_trans),$neqeq(_lex_trans_actions["$[]"](_trans),0)))if($eqeqeq(29,$ret_or_1=_lex_trans_actions["$[]"](_trans)))self.newline_s=p;else if($eqeqeq(117,$ret_or_1))self.escape_s=p,self.escape=nil;else if($eqeqeq(30,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil);else if($eqeqeq(60,$ret_or_1))self.sharp_s=$rb_minus(p,1);else if($eqeqeq(64,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p);else if($eqeqeq(310,$ret_or_1))tm=p;else if($eqeqeq(37,$ret_or_1))tm=p;else if($eqeqeq(39,$ret_or_1))tm=p;else if($eqeqeq(41,$ret_or_1))tm=p;else if($eqeqeq(71,$ret_or_1))heredoc_e=p;else if($eqeqeq(349,$ret_or_1))tm=$rb_minus(p,1),diag_msg="ivar_name";else if($eqeqeq(352,$ret_or_1))tm=$rb_minus(p,2),diag_msg="cvar_name";else if($eqeqeq(360,$ret_or_1))self.escape=nil;else if($eqeqeq(392,$ret_or_1))tm=p;else if($eqeqeq(308,$ret_or_1))ident_tok=self.$tok(),ident_ts=self.ts,ident_te=self.te;else if($eqeqeq(479,$ret_or_1))self.num_base=16,self.num_digits_s=p;else if($eqeqeq(473,$ret_or_1))self.num_base=10,self.num_digits_s=p;else if($eqeqeq(476,$ret_or_1))self.num_base=8,self.num_digits_s=p;else if($eqeqeq(470,$ret_or_1))self.num_base=2,self.num_digits_s=p;else if($eqeqeq(485,$ret_or_1))self.num_base=10,self.num_digits_s=self.ts;else if($eqeqeq(447,$ret_or_1))self.num_base=8,self.num_digits_s=self.ts;else if($eqeqeq(462,$ret_or_1))self.num_suffix_s=p;else if($eqeqeq(455,$ret_or_1))self.num_suffix_s=p;else if($eqeqeq(452,$ret_or_1))self.num_suffix_s=p;else if($eqeqeq(89,$ret_or_1))tm=p;else if($eqeqeq(7,$ret_or_1))self.te=$rb_plus(p,1);else{if($eqeqeq(113,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(5,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(109,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(108,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(115,$ret_or_1))self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if($eqeqeq(114,$ret_or_1)){self.te=p,p=$rb_minus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(111,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$literal().$extend_space(self.ts,self.te);else if($eqeqeq(112,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(6,$ret_or_1))p=$rb_minus(self.te,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(4,$ret_or_1)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if($eqeqeq(145,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(10,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(142,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(141,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(147,$ret_or_1))self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if($eqeqeq(146,$ret_or_1)){self.te=p,p=$rb_minus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(144,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(11,$ret_or_1))p=$rb_minus(self.te,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(9,$ret_or_1)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(173,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(172,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(175,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$literal().$extend_space(self.ts,self.te);else if($eqeqeq(176,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(179,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(178,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(181,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if($eqeqeq(188,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(13,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(185,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(184,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(190,$ret_or_1))self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if($eqeqeq(189,$ret_or_1)){self.te=p,p=$rb_minus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(187,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(12,$ret_or_1)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(192,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(191,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if($eqeqeq(199,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(15,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(195,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(194,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(201,$ret_or_1))self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if($eqeqeq(200,$ret_or_1)){self.te=p,p=$rb_minus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(197,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$literal().$extend_space(self.ts,self.te);else if($eqeqeq(198,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(14,$ret_or_1)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(203,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(202,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(205,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$literal().$extend_space(self.ts,self.te);else{if($eqeqeq(206,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tREGEXP_OPT",self.$tok(self.ts,$rb_minus(self.te,1)),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(207,$ret_or_1)){self.te=p,p=$rb_minus(p,1),unknown_options=self.$tok().$scan(/[^imxouesn]/),$truthy(unknown_options["$any?"]())&&self.$diagnostic("error","regexp_options",$hash2(["options"],{options:unknown_options.$join()})),self.$emit("tREGEXP_OPT"),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(16,$ret_or_1)){self.te=$rb_plus(p,1),$truthy(self.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?self.$emit("tNTH_REF",self.$tok($rb_plus(self.ts,1)).$to_i()):$truthy(self.$tok()["$=~"](/^\$([&`'+])$/))?self.$emit("tBACK_REF"):self.$emit("tGVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(208,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy(self.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?self.$emit("tNTH_REF",self.$tok($rb_plus(self.ts,1)).$to_i()):$truthy(self.$tok()["$=~"](/^\$([&`'+])$/))?self.$emit("tBACK_REF"):self.$emit("tGVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(210,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy(self.$tok()["$=~"](/^@@[0-9]/))&&self.$diagnostic("error","cvar_name",$hash2(["name"],{name:self.$tok()})),self.$emit("tCVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(209,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy(self.$tok()["$=~"](/^@[0-9]/))&&self.$diagnostic("error","ivar_name",$hash2(["name"],{name:self.$tok()})),self.$emit("tIVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(231,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(217,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(18,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(214,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(226,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(20,$ret_or_1)){if(self.te=$rb_plus(p,1),$truthy(self["$version?"](23))){type=($b=[self.$tok()["$[]"]($range(0,-2,!1)),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(213,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(212,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(230,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(227,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tCONSTANT"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(229,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(224,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(220,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(225,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(218,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(223,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(19,$ret_or_1)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(17,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(216,$ret_or_1)){if($eqeqeq(43,$ret_or_2=self.act)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(44,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(45,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}}else{if($eqeqeq(22,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tLABEL",self.$tok(self.ts,$rb_minus(self.te,2)),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=795,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(23,$ret_or_1)){if(self.te=$rb_plus(p,1),$truthy($rb_ge(self.version,31))&&$truthy(self.context.$in_argdef())){self.$emit("tBDOT3","...".$freeze()),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,3),self.cs=810,_goto_level=20;continue}if($eqeqeq(233,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(232,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(235,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(234,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(21,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(241,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(240,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(239,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(251,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(242,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tIDENTIFIER"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(247,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(245,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(250,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(274,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(257,$ret_or_1)){self.te=$rb_plus(p,1),$eqeq(self.$tok(tm,$rb_plus(tm,1)),"/".$freeze())&&($truthy($rb_lt(self.version,30))?self.$diagnostic("warning","ambiguous_literal",nil,self.$range(tm,$rb_plus(tm,1))):self.$diagnostic("warning","ambiguous_regexp",nil,self.$range(tm,$rb_plus(tm,1)))),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(263,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(25,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(265,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(40,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(252,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(253,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(264,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(260,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$diagnostic("warning","ambiguous_prefix",$hash2(["prefix"],{prefix:self.$tok(tm,self.te)}),self.$range(tm,self.te)),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(262,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(256,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(255,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(273,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(26,$ret_or_1))p=$rb_minus(self.te,1);else{if($eqeqeq(42,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(24,$ret_or_1)){if($eqeqeq(72,$ret_or_2=self.act)){p=$rb_minus(self.te,1),$eqeq(self.$tok(tm,$rb_plus(tm,1)),"/".$freeze())&&($truthy($rb_lt(self.version,30))?self.$diagnostic("warning","ambiguous_literal",nil,self.$range(tm,$rb_plus(tm,1))):self.$diagnostic("warning","ambiguous_regexp",nil,self.$range(tm,$rb_plus(tm,1)))),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(73,$ret_or_2)){p=$rb_minus(self.te,1),self.$diagnostic("warning","ambiguous_prefix",$hash2(["prefix"],{prefix:self.$tok(tm,self.te)}),self.$range(tm,self.te)),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(78,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}p=$rb_minus(self.te,1)}else{if($eqeqeq(44,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if($eqeqeq(278,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(279,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if($eqeqeq(45,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if($eqeqeq(43,$ret_or_1)){if($eqeqeq(85,$ret_or_2=self.act)){p=$rb_minus(self.te,1),$truthy(self.cond["$active?"]())?self.$emit("kDO_COND","do".$freeze(),$rb_minus(self.te,2),self.te):self.$emit("kDO","do".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(86,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}}else{if($eqeqeq(289,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_do(!0),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(282,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(283,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(284,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(287,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(293,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(292,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(301,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(295,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(299,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(294,$ret_or_1)){if($eqeqeq(93,$ret_or_2=self.act)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(94,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}}else{if($eqeqeq(57,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(334,$ret_or_1)){self.te=$rb_plus(p,1),type=delimiter=self.$tok()["$[]"](0).$chr(),p=$rb_minus(p,1),self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if($eqeqeq(326,$ret_or_1)){self.te=$rb_plus(p,1),type=($b=[self.source_buffer.$slice(self.ts).$chr(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if($eqeqeq(55,$ret_or_1)){self.te=$rb_plus(p,1),type=($b=[self.$tok()["$[]"]($range(0,-2,!1)),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if($eqeqeq(347,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.$emit("tSYMBEG",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),self.cs=352,_goto_level=20;continue}if($eqeqeq(335,$ret_or_1)){self.te=$rb_plus(p,1),type=($b=[self.$tok(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if($eqeqeq(346,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),$rb_plus(self.ts,2))),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(69,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1)),self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(357,$ret_or_1)){self.te=$rb_plus(p,1),escape=$hash2([" ","\r","\n","\t","\v","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\v":"\\v","\f":"\\f"})["$[]"](self.source_buffer.$slice($rb_plus(self.ts,1))),self.$diagnostic("warning","invalid_escape_use",$hash2(["escape"],{escape:escape}),self.$range()),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(356,$ret_or_1))self.te=$rb_plus(p,1),self.$diagnostic("fatal","incomplete_escape",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(336,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(52,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),$truthy(self["$version?"](18))?(ident=self.$tok(self.ts,$rb_minus(self.te,2)),self.$emit($truthy(self.source_buffer.$slice(self.ts)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",ident,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,1),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](ident))?self.cs=810:self.cs=self.$arg_or_cmdarg(cmd_state)):(self.$emit("tLABEL",self.$tok(self.ts,$rb_minus(self.te,2)),self.ts,$rb_minus(self.te,1)),self.cs=795),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(49,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER",ident_tok,ident_ts,ident_te),p=$rb_minus(ident_te,1),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](ident_tok))&&$truthy($rb_lt(self.version,25))?self.cs=465:self.cs=525,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(320,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if($eqeqeq(56,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(304,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(330,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(329,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tSTAR","*".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(325,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("fatal","string_eof",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else if($eqeqeq(354,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(337,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1)),self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(350,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(355,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("fatal","incomplete_escape",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(361,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(327,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(331,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$emit("tBDOT2"):self.$emit("tDOT2"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(332,$ret_or_1)){self.te=p,p=$rb_minus(p,1),followed_by_nl=$rb_minus(self.te,1)["$=="](self.newline_s),nl_emitted=!1,dots_te=$truthy(followed_by_nl)?$rb_minus(self.te,1):self.te,$truthy($rb_ge(self.version,30))?$truthy(self.lambda_stack["$any?"]())&&$eqeq($rb_plus(self.lambda_stack.$last(),1),self.paren_nest)?self.$emit("tDOT3","...".$freeze(),self.ts,dots_te):(self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te),$truthy($rb_ge(self.version,31))&&$truthy(followed_by_nl)&&$truthy(self.context.$in_argdef())&&(self.$emit("tNL",$rb_minus(self.te,1),self.te),nl_emitted=!0)):$truthy($rb_ge(self.version,27))?self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te):self.$emit("tDOT3","...".$freeze(),self.ts,dots_te),$truthy(followed_by_nl)&&$not(nl_emitted)&&(p=$rb_minus(p,1)),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(307,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(317,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(319,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if($eqeqeq(322,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(54,$ret_or_1))p=$rb_minus(self.te,1),self.$diagnostic("fatal","string_eof",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else if($eqeqeq(73,$ret_or_1))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(74,$ret_or_1)){p=$rb_minus(self.te,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(48,$ret_or_1)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(53,$ret_or_1))p=$rb_minus(self.te,1);else{if($eqeqeq(68,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(51,$ret_or_1)){if($eqeqeq(99,$ret_or_2=self.act)){p=$rb_minus(self.te,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(106,$ret_or_2))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(117,$ret_or_2)){if(p=$rb_minus(self.te,1),$truthy($rb_ge(self.version,27))){self.$emit("tPIPE",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,2),self.cs=810,_goto_level=20;continue}if($eqeqeq(121,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(122,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(123,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(127,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(128,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(132,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}}}else{if($eqeqeq(395,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(396,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(397,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(401,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(77,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(405,$ret_or_1)){self.te=$rb_plus(p,1),self.cs=self.$push_literal(self.$tok(),self.$tok(),self.ts),_goto_level=20;continue}if($eqeqeq(404,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(403,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(407,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(406,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(76,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(440,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tLAMBDA","->".$freeze(),self.ts,$rb_plus(self.ts,2)),self.lambda_stack.$push(self.paren_nest),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(86,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(415,$ret_or_1)){self.te=$rb_plus(p,1),type=($b=[self.$tok(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts,nil,!1,!1,!0),_goto_level=20;continue}if($eqeqeq(79,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(436,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=473,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(489,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(429,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(434,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tOP_ASGN",self.$tok(self.ts,$rb_minus(self.te,1))),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(420,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tEH","?".$freeze()),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(417,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(419,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tSEMI",";".$freeze()),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(494,$ret_or_1))self.te=$rb_plus(p,1),self.$diagnostic("error","bare_backslash",nil,self.$range(self.ts,$rb_plus(self.ts,1))),p=$rb_minus(p,1);else if($eqeqeq(414,$ret_or_1))self.te=$rb_plus(p,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else{if($eqeqeq(413,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(505,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(503,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(502,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(444,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("error","no_dot_digit_literal");else{if($eqeqeq(491,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(433,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(441,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=473,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(497,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(439,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(435,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(428,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(442,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(426,$ret_or_1))self.te=p,p=$rb_minus(p,1);else if($eqeqeq(432,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else{if($eqeqeq(84,$ret_or_1)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(80,$ret_or_1))p=$rb_minus(self.te,1),self.$diagnostic("error","no_dot_digit_literal");else{if($eqeqeq(83,$ret_or_1)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(78,$ret_or_1))p=$rb_minus(self.te,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else if($eqeqeq(81,$ret_or_1)){if($eqeqeq(145,$ret_or_2=self.act)){p=$rb_minus(self.te,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),$eqeq(self.$tok(),"{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(146,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(147,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(148,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(149,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(150,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(151,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),$truthy(self["$version?"](18))&&$eqeq(self.$tok(),"not".$freeze())){self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(152,$ret_or_2)){p=$rb_minus(self.te,1),$truthy(self["$version?"](18))?(self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))||(self.cs=self.$arg_or_cmdarg(cmd_state))):self.$emit("k__ENCODING__","__ENCODING__".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(153,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(154,$ret_or_2)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(156,$ret_or_2)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tINTEGER",self.$tok(self.ts,$rb_minus(self.te,1)).$to_i(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else if($eqeqeq(157,$ret_or_2)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tFLOAT",self.$tok(self.ts,$rb_minus(self.te,1)).$to_f(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else{if($eqeqeq(158,$ret_or_2)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(160,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(164,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(165,$ret_or_2)){p=$rb_minus(self.te,1),$eqeq(tm,self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(167,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(168,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}}}else{if($eqeqeq(516,$ret_or_1)){if(self.te=$rb_plus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),$truthy($rb_lt(self.version,27))){p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tBDOT3"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(95,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(510,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(513,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if($eqeqeq(515,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),$truthy($rb_lt(self.version,27))){p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tBDOT2"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(514,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(512,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(90,$ret_or_1)){if(p=$rb_minus(self.te,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if($eqeqeq(87,$ret_or_1)){p=$rb_minus(self.te,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(91,$ret_or_1)){if($eqeqeq(181,$ret_or_2=self.act)){if(p=$rb_minus(self.te,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else if($eqeqeq(185,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if($eqeqeq(519,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_comment(self.eq_begin_s,self.te),self.cs=self.cs_before_block_comment,_goto_level=20;continue}if($eqeqeq(518,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("fatal","embedded_document",nil,self.$range(self.eq_begin_s,$rb_plus(self.eq_begin_s,"=begin".$length())));else{if($eqeqeq(106,$ret_or_1)){self.te=$rb_plus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if($eqeqeq(2,$ret_or_1))self.te=$rb_plus(p,1),p=$rb_minus(pe,3);else{if($eqeqeq(98,$ret_or_1)){self.te=$rb_plus(p,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if($eqeqeq(99,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(100,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(105,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if($eqeqeq(104,$ret_or_1)){self.te=p,p=$rb_minus(p,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if($eqeqeq(1,$ret_or_1)){p=$rb_minus(self.te,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if($eqeqeq(67,$ret_or_1))self.newline_s=p,self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p);else if($eqeqeq(110,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(143,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(174,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(180,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(186,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(193,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(196,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(204,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else{if($eqeqeq(275,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(266,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(258,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(358,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),escape=$hash2([" ","\r","\n","\t","\v","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\v":"\\v","\f":"\\f"})["$[]"](self.source_buffer.$slice($rb_plus(self.ts,1))),self.$diagnostic("warning","invalid_escape_use",$hash2(["escape"],{escape:escape}),self.$range()),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(333,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),followed_by_nl=$rb_minus(self.te,1)["$=="](self.newline_s),nl_emitted=!1,dots_te=$truthy(followed_by_nl)?$rb_minus(self.te,1):self.te,$truthy($rb_ge(self.version,30))?$truthy(self.lambda_stack["$any?"]())&&$eqeq($rb_plus(self.lambda_stack.$last(),1),self.paren_nest)?self.$emit("tDOT3","...".$freeze(),self.ts,dots_te):(self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te),$truthy($rb_ge(self.version,31))&&$truthy(followed_by_nl)&&$truthy(self.context.$in_argdef())&&(self.$emit("tNL",$rb_minus(self.te,1),self.te),nl_emitted=!0)):$truthy($rb_ge(self.version,27))?self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te):self.$emit("tDOT3","...".$freeze(),self.ts,dots_te),$truthy(followed_by_nl)&&$not(nl_emitted)&&(p=$rb_minus(p,1)),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(321,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if($eqeqeq(443,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),$eqeq(self.paren_nest,0)&&self.$diagnostic("warning","triple_dot_at_eol",nil,self.$range(self.ts,$rb_minus(self.te,1))),self.$emit("tDOT3","...".$freeze(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(520,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),self.$emit_comment(self.eq_begin_s,self.te),self.cs=self.cs_before_block_comment,_goto_level=20;continue}if($eqeqeq(517,$ret_or_1))self.newline_s=p,self.te=$rb_plus(p,1);else{if($eqeqeq(107,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if($eqeqeq(3,$ret_or_1))self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(pe,3);else{if($eqeqeq(465,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$3(chars){var self=null==$$3.$$s?this:$$3.$$s;return null==chars&&(chars=nil),self.$emit("tRATIONAL",self.$Rational(chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(463,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$4(chars){var self=null==$$4.$$s?this:$$4.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(468,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$5(chars){var self=null==$$5.$$s?this:$$5.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Rational(chars)))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(466,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$6(chars){var self=null==$$6.$$s?this:$$6.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(464,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$7(chars){var self=null==$$7.$$s?this:$$7.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(467,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$8(chars){var self=null==$$8.$$s?this:$$8.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,6)),p=$rb_minus(p,6)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(456,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$9(chars){var self=null==$$9.$$s?this:$$9.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Float(chars)))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(457,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$10(chars){var self=null==$$10.$$s?this:$$10.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars),self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(458,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$11(chars){var self=null==$$11.$$s?this:$$11.$$s;return null==chars&&(chars=nil),self.$emit("tRATIONAL",self.$Rational(chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(460,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$12(chars){var self=null==$$12.$$s?this:$$12.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Rational(chars)))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(459,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$13(chars){var self=null==$$13.$$s?this:$$13.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars),self.ts,$rb_minus(self.te,6)),p=$rb_minus(p,6)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(137,$ret_or_1))self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&(($truthy(codepoints["$start_with?"](" "))||$truthy(codepoints["$start_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),($truthy(codepoints["$end_with?"](" "))||$truthy(codepoints["$end_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(function $$14($mlhs_tmp1){var $c,self=null==$$14.$$s?this:$$14.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$mlhs_tmp1&&($mlhs_tmp1=nil),codepoint_str=null==($c=$to_ary($mlhs_tmp1))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],$truthy(spaces)?codepoint_s=$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$("Encoding"),"UTF_8"))),codepoint_s=$rb_plus(codepoint_s,codepoint_str.$length()))}),{$$arity:1,$$s:self,$$brk:$brk,$$has_top_level_mlhs_arg:!0})}catch(err){if(err===$brk)return err.$v;throw err}}(),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(168,$ret_or_1))self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&(($truthy(codepoints["$start_with?"](" "))||$truthy(codepoints["$start_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),($truthy(codepoints["$end_with?"](" "))||$truthy(codepoints["$end_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(function $$15($mlhs_tmp1){var $c,self=null==$$15.$$s?this:$$15.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$mlhs_tmp1&&($mlhs_tmp1=nil),codepoint_str=null==($c=$to_ary($mlhs_tmp1))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],$truthy(spaces)?codepoint_s=$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$("Encoding"),"UTF_8"))),codepoint_s=$rb_plus(codepoint_s,codepoint_str.$length()))}),{$$arity:1,$$s:self,$$brk:$brk,$$has_top_level_mlhs_arg:!0})}catch(err){if(err===$brk)return err.$v;throw err}}(),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(382,$ret_or_1)){self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&(($truthy(codepoints["$start_with?"](" "))||$truthy(codepoints["$start_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),($truthy(codepoints["$end_with?"](" "))||$truthy(codepoints["$end_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(function $$16($mlhs_tmp1){var $c,self=null==$$16.$$s?this:$$16.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$mlhs_tmp1&&($mlhs_tmp1=nil),codepoint_str=null==($c=$to_ary($mlhs_tmp1))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],$truthy(spaces)?codepoint_s=$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$("Encoding"),"UTF_8"))),codepoint_s=$rb_plus(codepoint_s,codepoint_str.$length()))}),{$$arity:1,$$s:self,$$brk:$brk,$$has_top_level_mlhs_arg:!0})}catch(err){if(err===$brk)return err.$v;throw err}}(),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(118,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(149,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(363,$ret_or_1)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(121,$ret_or_1))self.$diagnostic("fatal","invalid_escape"),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(152,$ret_or_1))self.$diagnostic("fatal","invalid_escape"),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(366,$ret_or_1)){self.$diagnostic("fatal","invalid_escape"),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(123,$ret_or_1))self.escape="",self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(154,$ret_or_1))self.escape="",self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(368,$ret_or_1)){self.escape="",self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(120,$ret_or_1))self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(151,$ret_or_1))self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(365,$ret_or_1)){self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(140,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(171,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(385,$ret_or_1)){self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(139,$ret_or_1))self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(170,$ret_or_1))self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(384,$ret_or_1)){self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(134,$ret_or_1))self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$("Encoding"),"UTF_8")),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(165,$ret_or_1))self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$("Encoding"),"UTF_8")),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(379,$ret_or_1)){self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$("Encoding"),"UTF_8")),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(133,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(164,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(378,$ret_or_1)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(138,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(169,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(383,$ret_or_1)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(135,$ret_or_1))self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(166,$ret_or_1))self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(380,$ret_or_1)){self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(119,$ret_or_1))self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(150,$ret_or_1))self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(364,$ret_or_1)){self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(177,$ret_or_1))self.escape_s=p,self.escape=nil,self.te=$rb_plus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(182,$ret_or_1))self.escape_s=p,self.escape=nil,self.te=$rb_plus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(58,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.newline_s=p;else if($eqeqeq(31,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if($eqeqeq(33,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if($eqeqeq(35,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if($eqeqeq(219,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(238,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(246,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(34,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(277,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(269,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(288,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(300,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(296,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(59,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(50,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER",ident_tok,ident_ts,ident_te),p=$rb_minus(ident_te,1),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](ident_tok))&&$truthy($rb_lt(self.version,25))?self.cs=465:self.cs=525,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(318,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(402,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(398,$ret_or_1)){if($truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),$truthy(self.context.$in_kwarg())){p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}self.cs=186,_goto_level=20;continue}if($eqeqeq(411,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(408,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),self.cs=186,_goto_level=20;continue}if($eqeqeq(495,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(427,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),self.cs=990,_goto_level=20;continue}if($eqeqeq(101,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(268,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),self.te=p,p=$rb_minus(p,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),self.$emit("tLAMBEG","{".$freeze(),$rb_minus(self.te,1),self.te)):self.$emit("tLCURLY","{".$freeze(),$rb_minus(self.te,1),self.te),self.command_start=!0,self.paren_nest=$rb_plus(self.paren_nest,1),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(290,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),self.te=p,p=$rb_minus(p,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),self.$emit("tLAMBEG","{".$freeze())):self.$emit("tLBRACE_ARG","{".$freeze()),self.paren_nest=$rb_plus(self.paren_nest,1),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(393,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),self.te=p,p=$rb_minus(p,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),self.command_start=!0,self.$emit("tLAMBEG","{".$freeze())):self.$emit("tLBRACE","{".$freeze()),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(508,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),self.te=p,p=$rb_minus(p,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),$eqeq(self.$tok(),"{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(509,$ret_or_1)){if(current_literal=self.$literal(),$truthy(current_literal)&&$truthy(current_literal.$end_interp_brace_and_try_closing())){$truthy(self["$version?"](18,19))?(self.$emit("tRCURLY","}".$freeze(),$rb_minus(p,1),p),self.cond.$lexpop(),self.cmdarg.$lexpop()):self.$emit("tSTRING_DEND","}".$freeze(),$rb_minus(p,1),p),$truthy(current_literal.$saved_herebody_s())&&(self.herebody_s=current_literal.$saved_herebody_s()),p=$rb_minus(p,1),self.cs=self.$next_state_for_literal(current_literal),p=$rb_plus(p,1),_goto_level=40;continue}self.paren_nest=$rb_minus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),($eqeq(self.$tok(),"}".$freeze())||$eqeq(self.$tok(),"]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(61,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p);else if($eqeqeq(65,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.newline_s=p;else if($eqeqeq(222,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(237,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(249,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(271,$ret_or_1)){self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(286,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(298,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(324,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(400,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(410,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(431,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(103,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(243,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),self.$emit("tFID",self.$tok(self.ts,tm),self.ts,tm),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_minus(tm,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(338,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(309,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(424,$ret_or_1)){if(tm=p,$eqeqeq(145,$ret_or_2=self.act)){p=$rb_minus(self.te,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),$eqeq(self.$tok(),"{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(146,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(147,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(148,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(149,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(150,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(151,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),$truthy(self["$version?"](18))&&$eqeq(self.$tok(),"not".$freeze())){self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(152,$ret_or_2)){p=$rb_minus(self.te,1),$truthy(self["$version?"](18))?(self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))||(self.cs=self.$arg_or_cmdarg(cmd_state))):self.$emit("k__ENCODING__","__ENCODING__".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(153,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(154,$ret_or_2)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(156,$ret_or_2)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tINTEGER",self.$tok(self.ts,$rb_minus(self.te,1)).$to_i(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else if($eqeqeq(157,$ret_or_2)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tFLOAT",self.$tok(self.ts,$rb_minus(self.te,1)).$to_f(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else{if($eqeqeq(158,$ret_or_2)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(160,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(164,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(165,$ret_or_2)){p=$rb_minus(self.te,1),$eqeq(tm,self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(167,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(168,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}}}else{if($eqeqeq(244,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tFID",self.$tok(self.ts,tm),self.ts,tm),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_minus(tm,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(339,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(311,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(425,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),$eqeq(tm,self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(340,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(312,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(341,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(313,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(345,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(316,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(344,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(315,$ret_or_1)){if(tm=$rb_minus(p,2),$eqeqeq(99,$ret_or_2=self.act)){p=$rb_minus(self.te,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(106,$ret_or_2))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(117,$ret_or_2)){if(p=$rb_minus(self.te,1),$truthy($rb_ge(self.version,27))){self.$emit("tPIPE",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,2),self.cs=810,_goto_level=20;continue}if($eqeqeq(121,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(122,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(123,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(127,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(128,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(132,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}}}else{if($eqeqeq(342,$ret_or_1)){tm=$rb_minus(p,3),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(314,$ret_or_1)){tm=$rb_minus(p,3),self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(343,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(490,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tCONSTANT",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(267,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit("tLBRACK","[".$freeze(),$rb_minus(self.te,1),self.te),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(386,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit("tLBRACK","[".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(493,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit("tLBRACK2","[".$freeze()),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(496,$ret_or_1)){self.paren_nest=$rb_minus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),($eqeq(self.$tok(),"}".$freeze())||$eqeq(self.$tok(),"]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(259,$ret_or_1)){if(self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),$truthy(self["$version?"](18))){self.$emit("tLPAREN2","(".$freeze(),$rb_minus(self.te,1),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tLPAREN_ARG","(".$freeze(),$rb_minus(self.te,1),self.te),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(272,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),self.$emit("tLPAREN2","(".$freeze()),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(280,$ret_or_1)){if(self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),self.$emit("tLPAREN_ARG","(".$freeze(),$rb_minus(self.te,1),self.te),$truthy(self["$version?"](18))){self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(328,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),self.$emit("tLPAREN","(".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(437,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(438,$ret_or_1)){self.paren_nest=$rb_minus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),($eqeq(self.$tok(),"}".$freeze())||$eqeq(self.$tok(),"]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(72,$ret_or_1))heredoc_e=p,self.newline_s=p;else if($eqeqeq(353,$ret_or_1)){if(new_herebody_s=p,self.te=p,p=$rb_minus(p,1),self.$tok(self.ts,heredoc_e)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),indent=$truthy($ret_or_2=(($b=$gvars["~"])===nil?nil:$b["$[]"](1))["$empty?"]()["$!"]())?$ret_or_2:(($b=$gvars["~"])===nil?nil:$b["$[]"](2))["$empty?"]()["$!"](),dedent_body=(($b=$gvars["~"])===nil?nil:$b["$[]"](2))["$empty?"]()["$!"](),type=$truthy((($b=$gvars["~"])===nil?nil:$b["$[]"](3))["$empty?"]())?'<<"'.$freeze():$rb_plus("<<".$freeze(),($b=$gvars["~"])===nil?nil:$b["$[]"](3)),delimiter=($b=$gvars["~"])===nil?nil:$b["$[]"](4),$truthy($rb_ge(self.version,27))?($truthy($rb_gt(delimiter.$count("\n"),0))||$truthy($rb_gt(delimiter.$count("\r"),0)))&&self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1))):$truthy($rb_ge(self.version,24))&&$truthy($rb_gt(delimiter.$count("\n"),0))&&($truthy(delimiter["$end_with?"]("\n"))?(self.$diagnostic("warning","heredoc_id_ends_with_nl",nil,self.$range(self.ts,$rb_plus(self.ts,1))),delimiter=delimiter.$rstrip()):self.$diagnostic("fatal","heredoc_id_has_newline",nil,self.$range(self.ts,$rb_plus(self.ts,1)))),$truthy(dedent_body)&&$truthy(self["$version?"](18,19,20,21,22))){self.$emit("tLSHFT","<<".$freeze(),self.ts,$rb_plus(self.ts,2)),p=$rb_plus(self.ts,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$push_literal(type,delimiter,self.ts,heredoc_e,indent,dedent_body),self.herebody_s=$truthy($ret_or_2=self.herebody_s)?$ret_or_2:new_herebody_s,p=$rb_minus(self.herebody_s,1)}else{if($eqeqeq(348,$ret_or_1)){tm=$rb_minus(p,1),diag_msg="ivar_name",self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(351,$ret_or_1)){tm=$rb_minus(p,2),diag_msg="cvar_name",self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(359,$ret_or_1)){self.escape=nil,self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(389,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(480,$ret_or_1))self.num_base=16,self.num_digits_s=p,self.num_suffix_s=p;else if($eqeqeq(474,$ret_or_1))self.num_base=10,self.num_digits_s=p,self.num_suffix_s=p;else if($eqeqeq(477,$ret_or_1))self.num_base=8,self.num_digits_s=p,self.num_suffix_s=p;else if($eqeqeq(471,$ret_or_1))self.num_base=2,self.num_digits_s=p,self.num_suffix_s=p;else if($eqeqeq(486,$ret_or_1))self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p;else if($eqeqeq(449,$ret_or_1))self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p;else if($eqeqeq(487,$ret_or_1))self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$17(chars){return null==chars&&(chars=nil),(null==$$17.$$s?this:$$17.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self});else if($eqeqeq(8,$ret_or_1))self.te=$rb_plus(p,1),self.newline_s=p;else if($eqeqeq(453,$ret_or_1))self.te=$rb_plus(p,1),self.num_suffix_s=p;else if($eqeqeq(228,$ret_or_1))self.te=$rb_plus(p,1),self.act=43;else if($eqeqeq(215,$ret_or_1))self.te=$rb_plus(p,1),self.act=44;else if($eqeqeq(211,$ret_or_1))self.te=$rb_plus(p,1),self.act=45;else if($eqeqeq(27,$ret_or_1))self.te=$rb_plus(p,1),self.act=72;else if($eqeqeq(261,$ret_or_1))self.te=$rb_plus(p,1),self.act=73;else if($eqeqeq(28,$ret_or_1))self.te=$rb_plus(p,1),self.act=78;else if($eqeqeq(254,$ret_or_1))self.te=$rb_plus(p,1),self.act=79;else if($eqeqeq(281,$ret_or_1))self.te=$rb_plus(p,1),self.act=85;else if($eqeqeq(46,$ret_or_1))self.te=$rb_plus(p,1),self.act=86;else if($eqeqeq(302,$ret_or_1))self.te=$rb_plus(p,1),self.act=93;else if($eqeqeq(291,$ret_or_1))self.te=$rb_plus(p,1),self.act=94;else if($eqeqeq(70,$ret_or_1))self.te=$rb_plus(p,1),self.act=106;else if($eqeqeq(394,$ret_or_1))self.te=$rb_plus(p,1),self.act=117;else if($eqeqeq(305,$ret_or_1))self.te=$rb_plus(p,1),self.act=121;else if($eqeqeq(388,$ret_or_1))self.te=$rb_plus(p,1),self.act=122;else if($eqeqeq(387,$ret_or_1))self.te=$rb_plus(p,1),self.act=123;else if($eqeqeq(75,$ret_or_1))self.te=$rb_plus(p,1),self.act=127;else if($eqeqeq(303,$ret_or_1))self.te=$rb_plus(p,1),self.act=128;else if($eqeqeq(306,$ret_or_1))self.te=$rb_plus(p,1),self.act=132;else if($eqeqeq(504,$ret_or_1))self.te=$rb_plus(p,1),self.act=145;else if($eqeqeq(499,$ret_or_1))self.te=$rb_plus(p,1),self.act=146;else if($eqeqeq(507,$ret_or_1))self.te=$rb_plus(p,1),self.act=148;else if($eqeqeq(500,$ret_or_1))self.te=$rb_plus(p,1),self.act=149;else if($eqeqeq(501,$ret_or_1))self.te=$rb_plus(p,1),self.act=150;else if($eqeqeq(506,$ret_or_1))self.te=$rb_plus(p,1),self.act=151;else if($eqeqeq(498,$ret_or_1))self.te=$rb_plus(p,1),self.act=152;else if($eqeqeq(492,$ret_or_1))self.te=$rb_plus(p,1),self.act=153;else if($eqeqeq(418,$ret_or_1))self.te=$rb_plus(p,1),self.act=154;else if($eqeqeq(451,$ret_or_1))self.te=$rb_plus(p,1),self.act=157;else if($eqeqeq(82,$ret_or_1))self.te=$rb_plus(p,1),self.act=158;else if($eqeqeq(421,$ret_or_1))self.te=$rb_plus(p,1),self.act=160;else if($eqeqeq(412,$ret_or_1))self.te=$rb_plus(p,1),self.act=164;else if($eqeqeq(423,$ret_or_1))self.te=$rb_plus(p,1),self.act=165;else if($eqeqeq(416,$ret_or_1))self.te=$rb_plus(p,1),self.act=167;else if($eqeqeq(422,$ret_or_1))self.te=$rb_plus(p,1),self.act=168;else if($eqeqeq(88,$ret_or_1))self.te=$rb_plus(p,1),self.act=181;else if($eqeqeq(511,$ret_or_1))self.te=$rb_plus(p,1),self.act=185;else if($eqeqeq(183,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string()),self.escape_s=p,self.escape=nil}else if($eqeqeq(124,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(155,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(369,$ret_or_1)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(131,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(162,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(376,$ret_or_1)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(122,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(153,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(367,$ret_or_1)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(130,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(161,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(375,$ret_or_1)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(126,$ret_or_1))self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(157,$ret_or_1))self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(371,$ret_or_1)){self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(129,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(160,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(374,$ret_or_1)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(136,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(167,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(381,$ret_or_1)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(116,$ret_or_1))self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(148,$ret_or_1))self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(362,$ret_or_1)){self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(62,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.newline_s=p;else if($eqeqeq(221,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(236,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(248,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(270,$ret_or_1)){self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(285,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(297,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(323,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(399,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(409,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(430,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(102,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(482,$ret_or_1))self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$18(chars){return null==chars&&(chars=nil),(null==$$18.$$s?this:$$18.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self});else if($eqeqeq(446,$ret_or_1))self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$19(chars){return null==chars&&(chars=nil),(null==$$19.$$s?this:$$19.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self});else{if($eqeqeq(461,$ret_or_1)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$20(chars){return null==chars&&(chars=nil),(null==$$20.$$s?this:$$20.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(454,$ret_or_1)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$21(chars){var self=null==$$21.$$s?this:$$21.$$s;return null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(450,$ret_or_1)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$22(chars){var self=null==$$22.$$s?this:$$22.$$s;return null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(276,$ret_or_1))self.te=$rb_plus(p,1),self.newline_s=p,self.act=79;else if($eqeqeq(36,$ret_or_1))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=78;else if($eqeqeq(47,$ret_or_1))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=86;else if($eqeqeq(94,$ret_or_1))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=181;else if($eqeqeq(66,$ret_or_1))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=99;else if($eqeqeq(85,$ret_or_1))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=147;else if($eqeqeq(93,$ret_or_1))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=181;else if($eqeqeq(38,$ret_or_1))self.te=$rb_plus(p,1),tm=p,self.act=73;else if($eqeqeq(391,$ret_or_1))self.te=$rb_plus(p,1),tm=p,self.act=127;else if($eqeqeq(390,$ret_or_1))self.te=$rb_plus(p,1),tm=p,self.act=128;else if($eqeqeq(483,$ret_or_1))self.te=$rb_plus(p,1),self.num_base=10,self.num_digits_s=self.ts,self.act=154;else if($eqeqeq(127,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(158,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(372,$ret_or_1)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(125,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(156,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(370,$ret_or_1)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(132,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(163,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(377,$ret_or_1)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(128,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(159,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(373,$ret_or_1)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(478,$ret_or_1)){self.num_base=16,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$23(chars){return null==chars&&(chars=nil),(null==$$23.$$s?this:$$23.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(472,$ret_or_1)){self.num_base=10,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$24(chars){return null==chars&&(chars=nil),(null==$$24.$$s?this:$$24.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(475,$ret_or_1)){self.num_base=8,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$25(chars){return null==chars&&(chars=nil),(null==$$25.$$s?this:$$25.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(469,$ret_or_1)){self.num_base=2,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$26(chars){return null==chars&&(chars=nil),(null==$$26.$$s?this:$$26.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(481,$ret_or_1)){self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$27(chars){return null==chars&&(chars=nil),(null==$$27.$$s?this:$$27.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(445,$ret_or_1)){self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$28(chars){return null==chars&&(chars=nil),(null==$$28.$$s?this:$$28.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}$eqeqeq(32,$ret_or_1)?(self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p,self.act=73):$eqeqeq(63,$ret_or_1)?(self.te=$rb_plus(p,1),self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=99):$eqeqeq(92,$ret_or_1)?(self.te=$rb_plus(p,1),self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=181):$eqeqeq(488,$ret_or_1)?(self.te=$rb_plus(p,1),self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$29(chars){return null==chars&&(chars=nil),(null==$$29.$$s?this:$$29.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.act=156):$eqeqeq(484,$ret_or_1)?(self.te=$rb_plus(p,1),self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$30(chars){return null==chars&&(chars=nil),(null==$$30.$$s?this:$$30.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.act=156):$eqeqeq(448,$ret_or_1)&&(self.te=$rb_plus(p,1),self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$31(chars){return null==chars&&(chars=nil),(null==$$31.$$s?this:$$31.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.act=156)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if($truthy($rb_le(_goto_level,20))){if($eqeqeq(96,$ret_or_1=_lex_to_state_actions["$[]"](self.cs))&&(self.ts=nil),$eqeq(self.cs,0)){_goto_level=40;continue}if(p=$rb_plus(p,1),$neqeq(p,pe)){_goto_level=10;continue}}if($truthy($rb_le(_goto_level,30))&&$eqeq(p,eof)&&$truthy($rb_gt(_lex_eof_trans["$[]"](self.cs),0)))_trans=$rb_minus(_lex_eof_trans["$[]"](self.cs),1),_goto_level=15;else if($truthy($rb_le(_goto_level,40)))break}return $truthy(!1),self.p=p,$truthy(self.token_queue["$any?"]())?self.token_queue.$shift():$eqeq(self.cs,klass.$lex_error())?[!1,["$error".$freeze(),self.$range($rb_minus(p,1),p)]]:(eof=self.source_pts.$size(),[!1,["$eof".$freeze(),self.$range(eof,eof)]])}),0),self.$protected(),$def(self,"$eof_codepoint?",(function(point){return[4,26,0]["$include?"](point)}),1),$def(self,"$version?",(function($a){var self=this;return Opal.slice.call(arguments)["$include?"](self.version)}),-1),$def(self,"$stack_pop",(function(){return this.top=$rb_minus(this.top,1),this.stack["$[]"](this.top)}),0),$def(self,"$encode_escape",(function(ord){return ord.$chr().$force_encoding(this.source_buffer.$source().$encoding())}),1),$def(self,"$tok",(function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),this.source_buffer.$slice(Opal.Range.$new(s,e,!0))}),-1),$def(self,"$range",(function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),$$$($$$($$("Parser"),"Source"),"Range").$new(this.source_buffer,s,e)}),-1),$def(self,"$emit",(function(type,value,s,e){var token;return null==value&&(value=this.$tok()),null==s&&(s=this.ts),null==e&&(e=this.te),token=[type,[value,this.$range(s,e)]],this.token_queue.$push(token),$truthy(this.tokens)&&this.tokens.$push(token),token}),-2),$def(self,"$emit_table",(function(table,s,e){var value;return null==s&&(s=this.ts),null==e&&(e=this.te),value=this.$tok(s,e),this.$emit(table["$[]"](value),value,s,e)}),-2),$def(self,"$emit_do",(function(do_block){return null==do_block&&(do_block=!1),$truthy(this.cond["$active?"]())?this.$emit("kDO_COND","do".$freeze()):$truthy(this.cmdarg["$active?"]())||$truthy(do_block)?this.$emit("kDO_BLOCK","do".$freeze()):this.$emit("kDO","do".$freeze())}),-1),$def(self,"$arg_or_cmdarg",(function(cmd_state){return $truthy(cmd_state)?this.$class().$lex_en_expr_cmdarg():this.$class().$lex_en_expr_arg()}),1),$def(self,"$emit_comment",(function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),$truthy(this.comments)&&this.comments.$push($$$($$$($$("Parser"),"Source"),"Comment").$new(this.$range(s,e))),$truthy(this.tokens)&&this.tokens.$push(["tCOMMENT",[this.$tok(s,e),this.$range(s,e)]]),nil}),-1),$def(self,"$diagnostic",(function(type,reason,arguments$,location,highlights){return null==arguments$&&(arguments$=nil),null==location&&(location=this.$range()),null==highlights&&(highlights=[]),this.diagnostics.$process($$$($$("Parser"),"Diagnostic").$new(type,reason,arguments$,location,highlights))}),-3),$def(self,"$push_literal",(function($a){var args,self=this,new_literal=nil;return args=Opal.slice.call(arguments),new_literal=$send($$("Literal"),"new",[self].concat($to_a(args))),self.literal_stack.$push(new_literal),self.$next_state_for_literal(new_literal)}),-1),$def(self,"$next_state_for_literal",(function(literal){return $truthy(literal["$words?"]())&&$truthy(literal["$backslash_delimited?"]())?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_backslash_delimited_words():this.$class().$lex_en_plain_backslash_delimited_words():$truthy(literal["$words?"]())&&$not(literal["$backslash_delimited?"]())?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_words():this.$class().$lex_en_plain_words():$not(literal["$words?"]())&&$truthy(literal["$backslash_delimited?"]())?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_backslash_delimited():this.$class().$lex_en_plain_backslash_delimited():$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_string():this.$class().$lex_en_plain_string()}),1),$def(self,"$literal",(function(){return this.literal_stack.$last()}),0),$def(self,"$pop_literal",(function(){var old_literal=nil;return old_literal=this.literal_stack.$pop(),this.dedent_level=old_literal.$dedent_level(),$eqeq(old_literal.$type(),"tREGEXP_BEG")?this.$class().$lex_en_regexp_modifiers():this.$class().$lex_en_expr_end()}),0),$const_set($nesting[0],"PUNCTUATION",$hash2(["=","&","|","!","^","+","-","*","/","%","~",",",";",".","..","...","[","]","(",")","?",":","&&","||","-@","+@","~@","**","->","=~","!~","==","!=",">",">>",">=","<","<<","<=","=>","::","===","<=>","[]","[]=","{","}","`","!@","&."],{"=":"tEQL","&":"tAMPER2","|":"tPIPE","!":"tBANG","^":"tCARET","+":"tPLUS","-":"tMINUS","*":"tSTAR2","/":"tDIVIDE","%":"tPERCENT","~":"tTILDE",",":"tCOMMA",";":"tSEMI",".":"tDOT","..":"tDOT2","...":"tDOT3","[":"tLBRACK2","]":"tRBRACK","(":"tLPAREN2",")":"tRPAREN","?":"tEH",":":"tCOLON","&&":"tANDOP","||":"tOROP","-@":"tUMINUS","+@":"tUPLUS","~@":"tTILDE","**":"tPOW","->":"tLAMBDA","=~":"tMATCH","!~":"tNMATCH","==":"tEQ","!=":"tNEQ",">":"tGT",">>":"tRSHFT",">=":"tGEQ","<":"tLT","<<":"tLSHFT","<=":"tLEQ","=>":"tASSOC","::":"tCOLON2","===":"tEQQ","<=>":"tCMP","[]":"tAREF","[]=":"tASET","{":"tLCURLY","}":"tRCURLY","`":"tBACK_REF2","!@":"tBANG","&.":"tANDDOT"})),$const_set($nesting[0],"PUNCTUATION_BEGIN",$hash2(["&","*","**","+","-","::","(","{","["],{"&":"tAMPER","*":"tSTAR","**":"tDSTAR","+":"tUPLUS","-":"tUMINUS","::":"tCOLON3","(":"tLPAREN","{":"tLBRACE","[":"tLBRACK"})),$const_set($nesting[0],"KEYWORDS",$hash2(["if","unless","while","until","rescue","defined?","BEGIN","END"],{if:"kIF_MOD",unless:"kUNLESS_MOD",while:"kWHILE_MOD",until:"kUNTIL_MOD",rescue:"kRESCUE_MOD","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),$const_set($nesting[0],"KEYWORDS_BEGIN",$hash2(["if","unless","while","until","rescue","defined?","BEGIN","END"],{if:"kIF",unless:"kUNLESS",while:"kWHILE",until:"kUNTIL",rescue:"kRESCUE","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),$send(["class","module","def","undef","begin","end","then","elsif","else","ensure","case","when","for","break","next","redo","retry","in","do","return","yield","super","self","nil","true","false","and","or","not","alias","__FILE__","__LINE__","__ENCODING__"],"each",[],(function(keyword){return null==keyword&&(keyword=nil),$writer=[keyword,($writer=[keyword,"k"+keyword.$upcase()],$send($$("KEYWORDS"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send($$("KEYWORDS_BEGIN"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1)}($$("Parser"),0,$nesting)},Opal.modules["parser/lexer/literal"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$hash2=Opal.hash2,$enc=Opal.enc,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$to_ary=Opal.to_ary,$def=Opal.def,$eqeq=Opal.eqeq,$rb_minus=Opal.rb_minus,$neqeq=Opal.neqeq,$not=Opal.not,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$rb_gt=Opal.rb_gt;return Opal.add_stubs("attr_reader,attr_accessor,coerce_encoding,include?,send,+,[],fetch,==,!,heredoc?,start_with?,freeze,clear_buffer,emit_start_tok,type,=~,words?,delimiter?,-,extend_space,!=,flush_string,emit,each_char,===,%,>,nil?,<<,empty?,extend_content,protected,lstrip,b,dup,force_encoding,encoding,source,source_buffer,length"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Literal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.lexer=$proto.start_tok=$proto.str_type=$proto.monolithic=$proto.interpolate=$proto.heredoc_e=$proto.dedent_body=$proto.end_delim=$proto.start_delim=$proto.nesting=$proto.label_allowed=$proto.buffer=$proto.str_s=$proto.interp_braces=$proto.buffer_s=$proto.buffer_e=$proto.space_emitted=$proto.indent=nil,$const_set($nesting[0],"DELIMITERS",$hash2(["(","[","{","<"],{"(":$enc(")","ASCII-8BIT"),"[":$enc("]","ASCII-8BIT"),"{":$enc("}","ASCII-8BIT"),"<":$enc(">","ASCII-8BIT")})),$const_set($nesting[0],"TYPES",$hash2(["'","<<'","%q",'"','<<"',"%","%Q","%w","%W","%i","%I",":'","%s",':"',"/","%r","%x","`","<<`"],{"'":["tSTRING_BEG",!1],"<<'":["tSTRING_BEG",!1],"%q":["tSTRING_BEG",!1],'"':["tSTRING_BEG",!0],'<<"':["tSTRING_BEG",!0],"%":["tSTRING_BEG",!0],"%Q":["tSTRING_BEG",!0],"%w":["tQWORDS_BEG",!1],"%W":["tWORDS_BEG",!0],"%i":["tQSYMBOLS_BEG",!1],"%I":["tSYMBOLS_BEG",!0],":'":["tSYMBEG",!1],"%s":["tSYMBEG",!1],':"':["tSYMBEG",!0],"/":["tREGEXP_BEG",!0],"%r":["tREGEXP_BEG",!0],"%x":["tXSTRING_BEG",!0],"`":["tXSTRING_BEG",!0],"<<`":["tXSTRING_BEG",!0]})),self.$attr_reader("heredoc_e","str_s","dedent_level"),self.$attr_accessor("saved_herebody_s"),$def(self,"$initialize",(function(lexer,str_type,delimiter,str_s,heredoc_e,indent,dedent_body,label_allowed){var $a,$b,$ret_or_1,$ret_or_2;return null==heredoc_e&&(heredoc_e=nil),null==indent&&(indent=!1),null==dedent_body&&(dedent_body=!1),null==label_allowed&&(label_allowed=!1),this.lexer=lexer,this.nesting=1,str_type=this.$coerce_encoding(str_type),delimiter=this.$coerce_encoding(delimiter),$truthy($$("TYPES")["$include?"](str_type))||lexer.$send("diagnostic","error","unexpected_percent_str",$hash2(["type"],{type:str_type}),this.lexer.$send("range",str_s,$rb_plus(str_s,2))),this.str_type=str_type,this.str_s=str_s,$b=$$("TYPES")["$[]"](str_type),$a=$to_ary($b),this.start_tok=null==$a[0]?nil:$a[0],this.interpolate=null==$a[1]?nil:$a[1],this.start_delim=$truthy($$("DELIMITERS")["$include?"](delimiter))?delimiter:nil,this.end_delim=$$("DELIMITERS").$fetch(delimiter,delimiter),this.heredoc_e=heredoc_e,this.indent=indent,this.label_allowed=label_allowed,this.dedent_body=dedent_body,this.dedent_level=nil,this.interp_braces=0,this.space_emitted=!0,this.monolithic=$truthy($ret_or_1=$truthy($ret_or_2=this.start_tok["$=="]("tSTRING_BEG"))?[$enc("'","ASCII-8BIT"),$enc('"',"ASCII-8BIT")]["$include?"](str_type):$ret_or_2)?this["$heredoc?"]()["$!"]():$ret_or_1,$truthy(this.str_type["$start_with?"]($enc("%","ASCII-8BIT").$freeze()))&&(this.str_type=$rb_plus(this.str_type,delimiter)),this.$clear_buffer(),$truthy(this.monolithic)?nil:this.$emit_start_tok()}),-5),$def(self,"$interpolate?",(function(){return this.interpolate}),0),$def(self,"$words?",(function(){var $ret_or_1,$ret_or_2,$ret_or_3;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=this.$type()["$=="]("tWORDS_BEG"))?$ret_or_3:this.$type()["$=="]("tQWORDS_BEG"))?$ret_or_2:this.$type()["$=="]("tSYMBOLS_BEG"))?$ret_or_1:this.$type()["$=="]("tQSYMBOLS_BEG")}),0),$def(self,"$regexp?",(function(){return this.$type()["$=="]("tREGEXP_BEG")}),0),$def(self,"$heredoc?",(function(){return this.heredoc_e["$!"]()["$!"]()}),0),$def(self,"$plain_heredoc?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$heredoc?"]())?this.dedent_body["$!"]():$ret_or_1}),0),$def(self,"$squiggly_heredoc?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$heredoc?"]())?this.dedent_body:$ret_or_1}),0),$def(self,"$backslash_delimited?",(function(){return this.end_delim["$=="]($enc("\\","ASCII-8BIT").$freeze())}),0),$def(self,"$type",(function(){return this.start_tok}),0),$def(self,"$munge_escape?",(function(character){return character=this.$coerce_encoding(character),!(!$truthy(this["$words?"]())||!$truthy(character["$=~"](/[ \t\v\r\f\n]/)))||[$enc("\\","ASCII-8BIT").$freeze(),this.start_delim,this.end_delim]["$include?"](character)}),1),$def(self,"$nest_and_try_closing",(function(delimiter,ts,te,lookahead){return null==lookahead&&(lookahead=nil),delimiter=this.$coerce_encoding(delimiter),$truthy(this.start_delim)&&$eqeq(this.start_delim,delimiter)?this.nesting=$rb_plus(this.nesting,1):$truthy(this["$delimiter?"](delimiter))&&(this.nesting=$rb_minus(this.nesting,1)),$eqeq(this.nesting,0)?($truthy(this["$words?"]())&&this.$extend_space(ts,ts),$truthy(lookahead)&&$truthy(this.label_allowed)&&$eqeq(lookahead["$[]"](0),$enc(":","ASCII-8BIT"))&&$neqeq(lookahead["$[]"](1),$enc(":","ASCII-8BIT"))&&$eqeq(this.start_tok,"tSTRING_BEG")?(this.$flush_string(),this.$emit("tLABEL_END",this.end_delim,ts,$rb_plus(te,1))):$truthy(this.monolithic)?this.$emit("tSTRING",this.buffer,this.str_s,te):($truthy(this["$heredoc?"]())||this.$flush_string(),this.$emit("tSTRING_END",this.end_delim,ts,te))):nil}),-4),$def(self,"$infer_indent_level",(function(line){var self=this,indent_level=nil;return $not(self.dedent_body)?nil:(indent_level=0,function(){var $brk=Opal.new_brk();try{return $send(line,"each_char",[],(function $$9(char$){var $ret_or_1,self=null==$$9.$$s?this:$$9.$$s;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil),$eqeqeq(" ",$ret_or_1=char$)?indent_level=$rb_plus(indent_level,1):$eqeqeq("\t",$ret_or_1)?indent_level=$rb_plus(indent_level,$rb_minus(8,indent_level["$%"](8))):(($truthy(self.dedent_level["$nil?"]())||$truthy($rb_gt(self.dedent_level,indent_level)))&&(self.dedent_level=indent_level),void Opal.brk(nil,$brk))}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}())}),1),$def(self,"$start_interp_brace",(function(){return this.interp_braces=$rb_plus(this.interp_braces,1)}),0),$def(self,"$end_interp_brace_and_try_closing",(function(){return this.interp_braces=$rb_minus(this.interp_braces,1),this.interp_braces["$=="](0)}),0),$def(self,"$extend_string",(function(string,ts,te){var $ret_or_1;return this.buffer_s=$truthy($ret_or_1=this.buffer_s)?$ret_or_1:ts,this.buffer_e=te,this.buffer["$<<"](string)}),3),$def(self,"$flush_string",(function(){return $truthy(this.monolithic)&&(this.$emit_start_tok(),this.monolithic=!1),$truthy(this.buffer["$empty?"]())?nil:(this.$emit("tSTRING_CONTENT",this.buffer,this.buffer_s,this.buffer_e),this.$clear_buffer(),this.$extend_content())}),0),$def(self,"$extend_content",(function(){return this.space_emitted=!1}),0),$def(self,"$extend_space",(function(ts,te){return this.$flush_string(),$truthy(this.space_emitted)?nil:(this.$emit("tSPACE",nil,ts,te),this.space_emitted=!0)}),2),$def(self,"$supports_line_continuation_via_slash?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$words?"]()["$!"]())?this.interpolate:$ret_or_1}),0),self.$protected(),$def(self,"$delimiter?",(function(delimiter){return $truthy(this.indent)?this.end_delim["$=="](delimiter.$lstrip()):this.end_delim["$=="](delimiter)}),1),$def(self,"$coerce_encoding",(function(string){return string.$b()}),1),$def(self,"$clear_buffer",(function(){return this.buffer=$enc("","ASCII-8BIT").$dup(),this.buffer.$force_encoding(this.lexer.$source_buffer().$source().$encoding()),this.buffer_s=nil,this.buffer_e=nil}),0),$def(self,"$emit_start_tok",(function(){var str_e,$ret_or_1;return str_e=$truthy($ret_or_1=this.heredoc_e)?$ret_or_1:$rb_plus(this.str_s,this.str_type.$length()),this.$emit(this.start_tok,this.str_type,this.str_s,str_e)}),0),$def(self,"$emit",(function(token,type,s,e){return this.lexer.$send("emit",token,type,s,e)}),4)}(Opal.$r($nesting)("Lexer"),0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer/stack_state"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs("freeze,clear,|,<<,&,>>,==,[],to_s"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super){var self=$klass($base,null,"StackState"),$proto=self.$$prototype;return $proto.stack=$proto.name=nil,$def(self,"$initialize",(function(name){return this.name=name.$freeze(),this.$clear()}),1),$def(self,"$clear",(function(){return this.stack=0}),0),$def(self,"$push",(function(bit){var bit_value;return bit_value=$truthy(bit)?1:0,this.stack=this.stack["$<<"](1)["$|"](bit_value),bit}),1),$def(self,"$pop",(function(){var bit_value=nil;return bit_value=this.stack["$&"](1),this.stack=this.stack["$>>"](1),bit_value["$=="](1)}),0),$def(self,"$lexpop",(function(){return this.stack=this.stack["$>>"](1)["$|"](this.stack["$&"](1)),this.stack["$[]"](0)["$=="](1)}),0),$def(self,"$active?",(function(){return this.stack["$[]"](0)["$=="](1)}),0),$def(self,"$empty?",(function(){return this.stack["$=="](0)}),0),$def(self,"$to_s",(function(){return"["+this.stack.$to_s(2)+" <= "+this.name+"]"}),0),$alias(self,"inspect","to_s")}(Opal.$r($nesting)("Lexer"))}($nesting[0],$nesting)},Opal.modules["parser/lexer/dedenter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$eqeq=Opal.eqeq,$send=Opal.send,$truthy=Opal.truthy,$to_ary=Opal.to_ary,$slice=Opal.slice,$rb_le=Opal.rb_le,$eqeqeq=Opal.eqeqeq,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt,$rb_times=Opal.rb_times,$rb_divide=Opal.rb_divide;return Opal.add_stubs("encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Dedenter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.at_line_begin=nil,$const_set($nesting[0],"TAB_WIDTH",8),$def(self,"$initialize",(function(dedent_level){return this.dedent_level=dedent_level,this.at_line_begin=!0,this.indent_level=0}),1),$def(self,"$dedent",(function(string){var $a,original_encoding,self=this,lines=nil,lines_to_dedent=nil;return original_encoding=string.$encoding(),lines=string.$force_encoding($$$($$("Encoding"),"BINARY")).$split("\\\n"),$eqeq(lines.$length(),1)?lines=[string.$force_encoding(original_encoding)]:$send(lines,"map!",[],(function(s){return null==s&&(s=nil),s.$force_encoding(original_encoding)}),1),$truthy(self.at_line_begin)?lines_to_dedent=lines:(null==($a=$to_ary(lines))[0]?nil:$a[0],lines_to_dedent=$slice.call($a,1)),function(){var $brk=Opal.new_brk();try{$send(lines_to_dedent,"each",[],(function $$2(line){var self=null==$$2.$$s?this:$$2.$$s,left_to_remove=nil,remove=nil;return null==self.dedent_level&&(self.dedent_level=nil),null==line&&(line=nil),left_to_remove=self.dedent_level,remove=0,function(){var $brk=Opal.new_brk();try{$send(line,"each_char",[],(function $$3(char$){var $ret_or_1,self=null==$$3.$$s?this:$$3.$$s;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil),$truthy($rb_le(left_to_remove,0))&&Opal.brk(nil,$brk),$eqeqeq(" ",$ret_or_1=char$)?(remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,1)):$eqeqeq("\t",$ret_or_1)?($truthy($rb_gt($rb_times($$("TAB_WIDTH"),$rb_plus($rb_divide(remove,$$("TAB_WIDTH")),1)),self.dedent_level))&&Opal.brk(nil,$brk),remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,$$("TAB_WIDTH"))):void Opal.brk(nil,$brk)}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),line["$slice!"](0,remove)}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),string.$replace(lines.$join()),self.at_line_begin=string["$end_with?"]("\n")}),1),$def(self,"$interrupt",(function(){return this.at_line_begin=!1}),0)}(Opal.$r($nesting)("Lexer"),0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/builders/default"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$to_a=Opal.to_a,$eqeqeq=Opal.eqeqeq,$hash2=Opal.hash2,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$not=Opal.not,$send=Opal.send,$neqeq=Opal.neqeq,$to_ary=Opal.to_ary,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$rb_ge=Opal.rb_ge,$range=Opal.range,$slice=Opal.slice,$rb_gt=Opal.rb_gt,$rb_le=Opal.rb_le,$rb_lt=Opal.rb_lt;return Opal.add_stubs("attr_accessor,n0,token_map,numeric,n,value,new,loc,private,===,+@,-@,updated,join,expression,string_value,delimited_string_map,unquoted_map,collapse_string_parts?,nil?,first,children,string_map,prefix_string_map,to_sym,collection_map,empty?,==,version,diagnostic,!,type,dedent,map,interrupt,compact,uniq,sort,each_char,to_proc,static_regexp,message,<<,regexp_map,unary_op_map,binary_op_map,!=,%,size,last,each_slice,pair_keyword_map,pair_quoted_map,symbol_compose,adjust,=~,pair_keyword,accessible,upto,-,length,+,[],>=,range_map,variable_map,name,source_buffer,dup,line,emit_encoding,class,any?,end_with?,to_s,try_declare_numparam,declared?,static_env,var_send_map,top,current_arg_stack,parser,constant_map,in_def,context,check_assignment_to_numparam,check_reserved_for_numparam,declare,with_expression,with_operator,join_exprs,module_definition_map,definition_map,endless_definition_map,validate_definee,keyword_map,check_duplicate_args,validate_no_forward_arg_after_restarg,emit_forward_arg,forward_arg,arg_prefix_map,kwarg_map,emit_procarg0,emit_arg_inside_procarg0,location,resize,end,call_type_for_dot,emit_kwargs,rewrite_hash_args_to_kwargs,send_map,emit_lambda,expr_map,keyword,include?,block_map,array,emit_index,index_map,send_index_map,send_binary_op_map,static_regexp_node,each,names,send_unary_op_map,check_condition,condition_map,keyword_mod_map,ternary_map,for_map,>,count,rescue_body_map,eh_keyword_map,push,none?,one?,begin,guard_map,check_lvar_name,check_duplicate_pattern_variable,match_hash_var_from_str,match_var,check_duplicate_pattern_key,static_string,pair_quoted,match_hash_var,<=,check_duplicate_arg,is_a?,[]=,arg_name_collides?,<,in_dynamic_block?,has_numparams?,max_numparam_stack,start_with?,pattern_variables,pattern_hash_keys,with,begin_pos,end_pos,encode,valid_encoding?,process,diagnostics,send,kwargs?"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Default"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.parser=$proto.emit_file_line_as_literals=nil,function(self,$parent_nesting){self.$attr_accessor("emit_lambda")}(Opal.get_singleton_class(self)),self.emit_lambda=!1,function(self,$parent_nesting){self.$attr_accessor("emit_procarg0")}(Opal.get_singleton_class(self)),self.emit_procarg0=!1,function(self,$parent_nesting){self.$attr_accessor("emit_encoding")}(Opal.get_singleton_class(self)),self.emit_encoding=!1,function(self,$parent_nesting){self.$attr_accessor("emit_index")}(Opal.get_singleton_class(self)),self.emit_index=!1,function(self,$parent_nesting){self.$attr_accessor("emit_arg_inside_procarg0")}(Opal.get_singleton_class(self)),self.emit_arg_inside_procarg0=!1,function(self,$parent_nesting){self.$attr_accessor("emit_forward_arg")}(Opal.get_singleton_class(self)),self.emit_forward_arg=!1,function(self,$parent_nesting){self.$attr_accessor("emit_kwargs")}(Opal.get_singleton_class(self)),self.emit_kwargs=!1,function(self,$parent_nesting){self.$attr_accessor("emit_match_pattern")}(Opal.get_singleton_class(self)),self.emit_match_pattern=!1,function(self,$parent_nesting){$def(self,"$modernize",(function(){return this.emit_lambda=!0,this.emit_procarg0=!0,this.emit_encoding=!0,this.emit_index=!0,this.emit_arg_inside_procarg0=!0,this.emit_forward_arg=!0,this.emit_kwargs=!0,this.emit_match_pattern=!0}),0)}(Opal.get_singleton_class(self)),self.$attr_accessor("parser"),self.$attr_accessor("emit_file_line_as_literals"),$def(self,"$initialize",(function(){return this.emit_file_line_as_literals=!0}),0),$def(self,"$nil",(function(nil_t){return this.$n0("nil",this.$token_map(nil_t))}),1),$def(self,"$true",(function(true_t){return this.$n0("true",this.$token_map(true_t))}),1),$def(self,"$false",(function(false_t){return this.$n0("false",this.$token_map(false_t))}),1),$def(self,"$integer",(function(integer_t){return this.$numeric("int",integer_t)}),1),$def(self,"$float",(function(float_t){return this.$numeric("float",float_t)}),1),$def(self,"$rational",(function(rational_t){return this.$numeric("rational",rational_t)}),1),$def(self,"$complex",(function(complex_t){return this.$numeric("complex",complex_t)}),1),$def(self,"$numeric",(function(kind,token){return this.$n(kind,[this.$value(token)],$$$($$$($$("Source"),"Map"),"Operator").$new(nil,this.$loc(token)))}),2),self.$private("numeric"),$def(self,"$unary_num",(function(unary_t,numeric){var $a,$ret_or_1,value=nil,operator_loc=nil;return value=null==($a=[].concat($to_a(numeric)))[0]?nil:$a[0],operator_loc=this.$loc(unary_t),$eqeqeq("+",$ret_or_1=this.$value(unary_t))?value=value["$+@"]():$eqeqeq("-",$ret_or_1)&&(value=value["$-@"]()),numeric.$updated(nil,[value],$hash2(["location"],{location:$$$($$$($$("Source"),"Map"),"Operator").$new(operator_loc,operator_loc.$join(numeric.$loc().$expression()))}))}),2),$def(self,"$__LINE__",(function(__LINE__t){return this.$n0("__LINE__",this.$token_map(__LINE__t))}),1),$def(self,"$string",(function(string_t){return this.$n("str",[this.$string_value(string_t)],this.$delimited_string_map(string_t))}),1),$def(self,"$string_internal",(function(string_t){return this.$n("str",[this.$string_value(string_t)],this.$unquoted_map(string_t))}),1),$def(self,"$string_compose",(function(begin_t,parts,end_t){return $truthy(this["$collapse_string_parts?"](parts))?$truthy(begin_t["$nil?"]())&&$truthy(end_t["$nil?"]())?parts.$first():this.$n("str",parts.$first().$children(),this.$string_map(begin_t,parts,end_t)):this.$n("dstr",[].concat($to_a(parts)),this.$string_map(begin_t,parts,end_t))}),3),$def(self,"$character",(function(char_t){return this.$n("str",[this.$string_value(char_t)],this.$prefix_string_map(char_t))}),1),$def(self,"$__FILE__",(function(__FILE__t){return this.$n0("__FILE__",this.$token_map(__FILE__t))}),1),$def(self,"$symbol",(function(symbol_t){return this.$n("sym",[this.$string_value(symbol_t).$to_sym()],this.$prefix_string_map(symbol_t))}),1),$def(self,"$symbol_internal",(function(symbol_t){return this.$n("sym",[this.$string_value(symbol_t).$to_sym()],this.$unquoted_map(symbol_t))}),1),$def(self,"$symbol_compose",(function(begin_t,parts,end_t){var str=nil;return $truthy(this["$collapse_string_parts?"](parts))?(str=parts.$first(),this.$n("sym",[str.$children().$first().$to_sym()],this.$collection_map(begin_t,str.$loc().$expression(),end_t))):$eqeq(this.parser.$version(),18)&&$truthy(parts["$empty?"]())?this.$diagnostic("error","empty_symbol",nil,this.$loc(begin_t).$join(this.$loc(end_t))):this.$n("dsym",[].concat($to_a(parts)),this.$collection_map(begin_t,parts,end_t))}),3),$def(self,"$xstring_compose",(function(begin_t,parts,end_t){return this.$n("xstr",[].concat($to_a(parts)),this.$string_map(begin_t,parts,end_t))}),3),$def(self,"$dedent_string",(function(node,dedent_level){var dedenter=nil,$ret_or_1=nil,str=nil,children=nil;return $not(dedent_level["$nil?"]())&&(dedenter=$$$($$("Lexer"),"Dedenter").$new(dedent_level),$eqeqeq("str",$ret_or_1=node.$type())?(str=node.$children().$first(),dedenter.$dedent(str)):($eqeqeq("dstr",$ret_or_1)||$eqeqeq("xstr",$ret_or_1))&&(children=$send(node.$children(),"map",[],(function(str_node){if(null==str_node&&(str_node=nil),$eqeq(str_node.$type(),"str")){if(str=str_node.$children().$first(),dedenter.$dedent(str),$truthy(str["$empty?"]()))return nil}else dedenter.$interrupt();return str_node}),1),node=node.$updated(nil,children.$compact()))),node}),2),$def(self,"$regexp_options",(function(regopt_t){var options;return options=$send(this.$value(regopt_t).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc()),this.$n("regopt",options,this.$token_map(regopt_t))}),1),$def(self,"$regexp_compose",(function(begin_t,parts,end_t,options){var e=nil;try{this.$static_regexp(parts,options)}catch($err){if(!Opal.rescue($err,[$$("RegexpError")]))throw $err;e=$err;try{this.$diagnostic("error","invalid_regexp",$hash2(["message"],{message:e.$message()}),this.$loc(begin_t).$join(this.$loc(end_t)))}finally{Opal.pop_exception()}}return this.$n("regexp",parts["$<<"](options),this.$regexp_map(begin_t,end_t,options))}),4),$def(self,"$array",(function(begin_t,elements,end_t){return this.$n("array",elements,this.$collection_map(begin_t,elements,end_t))}),3),$def(self,"$splat",(function(star_t,arg){return null==arg&&(arg=nil),$truthy(arg["$nil?"]())?this.$n0("splat",this.$unary_op_map(star_t)):this.$n("splat",[arg],this.$unary_op_map(star_t,arg))}),-2),$def(self,"$word",(function(parts){return $truthy(this["$collapse_string_parts?"](parts))?parts.$first():this.$n("dstr",[].concat($to_a(parts)),this.$collection_map(nil,parts,nil))}),1),$def(self,"$words_compose",(function(begin_t,parts,end_t){return this.$n("array",[].concat($to_a(parts)),this.$collection_map(begin_t,parts,end_t))}),3),$def(self,"$symbols_compose",(function(begin_t,parts,end_t){return parts=$send(parts,"map",[],(function(part){var $a,$ret_or_1,value=nil;return null==part&&(part=nil),$eqeqeq("str",$ret_or_1=part.$type())?(value=null==($a=[].concat($to_a(part)))[0]?nil:$a[0],part.$updated("sym",[value.$to_sym()])):$eqeqeq("dstr",$ret_or_1)?part.$updated("dsym"):part}),1),this.$n("array",[].concat($to_a(parts)),this.$collection_map(begin_t,parts,end_t))}),3),$def(self,"$pair",(function(key,assoc_t,value){return this.$n("pair",[key,value],this.$binary_op_map(key,assoc_t,value))}),3),$def(self,"$pair_list_18",(function(list){return $neqeq(list.$size()["$%"](2),0)?this.$diagnostic("error","odd_hash",nil,list.$last().$loc().$expression()):$send(list.$each_slice(2),"map",[],(function $$6(key,value){var self=null==$$6.$$s?this:$$6.$$s;return null==key&&(key=nil),null==value&&(value=nil),self.$n("pair",[key,value],self.$binary_op_map(key,nil,value))}),{$$arity:2,$$s:this})}),1),$def(self,"$pair_keyword",(function(key_t,value){var $a,$b,key_map,pair_map,key;return $b=this.$pair_keyword_map(key_t,value),key_map=null==($a=$to_ary($b))[0]?nil:$a[0],pair_map=null==$a[1]?nil:$a[1],key=this.$n("sym",[this.$value(key_t).$to_sym()],key_map),this.$n("pair",[key,value],pair_map)}),2),$def(self,"$pair_quoted",(function(begin_t,parts,end_t,value){var $a,$b,pair_map,key;return $b=this.$pair_quoted_map(begin_t,end_t,value),end_t=null==($a=$to_ary($b))[0]?nil:$a[0],pair_map=null==$a[1]?nil:$a[1],key=this.$symbol_compose(begin_t,parts,end_t),this.$n("pair",[key,value],pair_map)}),4),$def(self,"$pair_label",(function(key_t){var value_l,value,label=nil;return value_l=this.$loc(key_t).$adjust($hash2(["end_pos"],{end_pos:-1})),label=this.$value(key_t),value=$truthy(label["$=~"](/^[[:lower:]]/))?this.$n("ident",[label.$to_sym()],$$$($$$($$("Source"),"Map"),"Variable").$new(value_l)):this.$n("const",[nil,label.$to_sym()],$$$($$$($$("Source"),"Map"),"Constant").$new(nil,value_l,value_l)),this.$pair_keyword(key_t,this.$accessible(value))}),1),$def(self,"$kwsplat",(function(dstar_t,arg){return this.$n("kwsplat",[arg],this.$unary_op_map(dstar_t,arg))}),2),$def(self,"$associate",(function(begin_t,pairs,end_t){return $send(0,"upto",[$rb_minus(pairs.$length(),1)],(function $$7(i){var self=null==$$7.$$s?this:$$7.$$s;return null==i&&(i=nil),$send($rb_plus(i,1),"upto",[$rb_minus(pairs.$length(),1)],(function $$8(j){var $a,$ret_or_1,self=null==$$8.$$s?this:$$8.$$s,key1=nil,key2=nil,do_warn=nil;return null==self.parser&&(self.parser=nil),null==j&&(j=nil),key1=null==($a=[].concat($to_a(pairs["$[]"](i))))[0]?nil:$a[0],key2=null==($a=[].concat($to_a(pairs["$[]"](j))))[0]?nil:$a[0],do_warn=!1,$eqeqeq("sym",$ret_or_1=key1.$type())||$eqeqeq("str",$ret_or_1)||$eqeqeq("int",$ret_or_1)||$eqeqeq("float",$ret_or_1)?$eqeq(key1,key2)&&(do_warn=!0):($eqeqeq("rational",$ret_or_1)||$eqeqeq("complex",$ret_or_1)||$eqeqeq("regexp",$ret_or_1))&&$truthy($rb_ge(self.parser.$version(),31))&&$eqeq(key1,key2)&&(do_warn=!0),$truthy(do_warn)?self.$diagnostic("warning","duplicate_hash_key",nil,key2.$loc().$expression()):nil}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),this.$n("hash",[].concat($to_a(pairs)),this.$collection_map(begin_t,pairs,end_t))}),3),$def(self,"$range_inclusive",(function(lhs,dot2_t,rhs){return this.$n("irange",[lhs,rhs],this.$range_map(lhs,dot2_t,rhs))}),3),$def(self,"$range_exclusive",(function(lhs,dot3_t,rhs){return this.$n("erange",[lhs,rhs],this.$range_map(lhs,dot3_t,rhs))}),3),$def(self,"$self",(function(token){return this.$n0("self",this.$token_map(token))}),1),$def(self,"$ident",(function(token){return this.$n("ident",[this.$value(token).$to_sym()],this.$variable_map(token))}),1),$def(self,"$ivar",(function(token){return this.$n("ivar",[this.$value(token).$to_sym()],this.$variable_map(token))}),1),$def(self,"$gvar",(function(token){return this.$n("gvar",[this.$value(token).$to_sym()],this.$variable_map(token))}),1),$def(self,"$cvar",(function(token){return this.$n("cvar",[this.$value(token).$to_sym()],this.$variable_map(token))}),1),$def(self,"$back_ref",(function(token){return this.$n("back_ref",[this.$value(token).$to_sym()],this.$token_map(token))}),1),$def(self,"$nth_ref",(function(token){return this.$n("nth_ref",[this.$value(token)],this.$token_map(token))}),1),$def(self,"$accessible",(function(node){var $a,$ret_or_1,name=nil;return $eqeqeq("__FILE__",$ret_or_1=node.$type())?$truthy(this.emit_file_line_as_literals)?this.$n("str",[node.$loc().$expression().$source_buffer().$name()],node.$loc().$dup()):node:$eqeqeq("__LINE__",$ret_or_1)?$truthy(this.emit_file_line_as_literals)?this.$n("int",[node.$loc().$expression().$line()],node.$loc().$dup()):node:$eqeqeq("__ENCODING__",$ret_or_1)?$not(this.$class().$emit_encoding())?this.$n("const",[this.$n("const",[nil,"Encoding"],nil),"UTF_8"],node.$loc().$dup()):node:$eqeqeq("ident",$ret_or_1)?($a=[].concat($to_a(node)),name=null==$a[0]?nil:$a[0],$truthy($send(["?","!"],"any?",[],(function(c){return null==c&&(c=nil),name.$to_s()["$end_with?"](c)}),1))&&this.$diagnostic("error","invalid_id_to_get",$hash2(["identifier"],{identifier:name.$to_s()}),node.$loc().$expression()),$truthy($rb_ge(this.parser.$version(),27))&&$truthy(this.parser.$try_declare_numparam(node))?node.$updated("lvar"):$truthy(this.parser.$static_env()["$declared?"](name))?($eqeq(name.$to_s(),this.$parser().$current_arg_stack().$top())&&this.$diagnostic("error","circular_argument_reference",$hash2(["var_name"],{var_name:name.$to_s()}),node.$loc().$expression()),node.$updated("lvar")):this.$n("send",[nil,name],this.$var_send_map(node))):node}),1),$def(self,"$const",(function(name_t){return this.$n("const",[nil,this.$value(name_t).$to_sym()],this.$constant_map(nil,nil,name_t))}),1),$def(self,"$const_global",(function(t_colon3,name_t){var cbase;return cbase=this.$n0("cbase",this.$token_map(t_colon3)),this.$n("const",[cbase,this.$value(name_t).$to_sym()],this.$constant_map(cbase,t_colon3,name_t))}),2),$def(self,"$const_fetch",(function(scope,t_colon2,name_t){return this.$n("const",[scope,this.$value(name_t).$to_sym()],this.$constant_map(scope,t_colon2,name_t))}),3),$def(self,"$__ENCODING__",(function(__ENCODING__t){return this.$n0("__ENCODING__",this.$token_map(__ENCODING__t))}),1),$def(self,"$assignable",(function(node){var $a,$ret_or_1,name=nil,var_name=nil,name_loc=nil;return $eqeqeq("cvar",$ret_or_1=node.$type())?node.$updated("cvasgn"):$eqeqeq("ivar",$ret_or_1)?node.$updated("ivasgn"):$eqeqeq("gvar",$ret_or_1)?node.$updated("gvasgn"):$eqeqeq("const",$ret_or_1)?($truthy(this.parser.$context().$in_def())&&this.$diagnostic("error","dynamic_const",nil,node.$loc().$expression()),node.$updated("casgn")):$eqeqeq("ident",$ret_or_1)?(name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],var_name=node.$children()["$[]"](0).$to_s(),name_loc=node.$loc().$expression(),this.$check_assignment_to_numparam(var_name,name_loc),this.$check_reserved_for_numparam(var_name,name_loc),this.parser.$static_env().$declare(name),node.$updated("lvasgn")):$eqeqeq("match_var",$ret_or_1)?(name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],var_name=node.$children()["$[]"](0).$to_s(),name_loc=node.$loc().$expression(),this.$check_assignment_to_numparam(var_name,name_loc),this.$check_reserved_for_numparam(var_name,name_loc),node):$eqeqeq("nil",$ret_or_1)||$eqeqeq("self",$ret_or_1)||$eqeqeq("true",$ret_or_1)||$eqeqeq("false",$ret_or_1)||$eqeqeq("__FILE__",$ret_or_1)||$eqeqeq("__LINE__",$ret_or_1)||$eqeqeq("__ENCODING__",$ret_or_1)?this.$diagnostic("error","invalid_assignment",nil,node.$loc().$expression()):$eqeqeq("back_ref",$ret_or_1)||$eqeqeq("nth_ref",$ret_or_1)?this.$diagnostic("error","backref_assignment",nil,node.$loc().$expression()):nil}),1),$def(self,"$const_op_assignable",(function(node){return node.$updated("casgn")}),1),$def(self,"$assign",(function(lhs,eql_t,rhs){return lhs["$<<"](rhs).$updated(nil,nil,$hash2(["location"],{location:lhs.$loc().$with_operator(this.$loc(eql_t)).$with_expression(this.$join_exprs(lhs,rhs))}))}),3),$def(self,"$op_assign",(function(lhs,op_t,rhs){var $ret_or_1,operator=nil,source_map=nil,$ret_or_2=nil;return $eqeqeq("gvasgn",$ret_or_1=lhs.$type())||$eqeqeq("ivasgn",$ret_or_1)||$eqeqeq("lvasgn",$ret_or_1)||$eqeqeq("cvasgn",$ret_or_1)||$eqeqeq("casgn",$ret_or_1)||$eqeqeq("send",$ret_or_1)||$eqeqeq("csend",$ret_or_1)||$eqeqeq("index",$ret_or_1)?(operator=this.$value(op_t)["$[]"]($range(0,-1,!1)).$to_sym(),source_map=lhs.$loc().$with_operator(this.$loc(op_t)).$with_expression(this.$join_exprs(lhs,rhs)),$eqeq(lhs.$type(),"index")&&(lhs=lhs.$updated("indexasgn")),$eqeqeq("&&",$ret_or_2=operator)?this.$n("and_asgn",[lhs,rhs],source_map):$eqeqeq("||",$ret_or_2)?this.$n("or_asgn",[lhs,rhs],source_map):this.$n("op_asgn",[lhs,operator,rhs],source_map)):$eqeqeq("back_ref",$ret_or_1)||$eqeqeq("nth_ref",$ret_or_1)?this.$diagnostic("error","backref_assignment",nil,lhs.$loc().$expression()):nil}),3),$def(self,"$multi_lhs",(function(begin_t,items,end_t){return this.$n("mlhs",[].concat($to_a(items)),this.$collection_map(begin_t,items,end_t))}),3),$def(self,"$multi_assign",(function(lhs,eql_t,rhs){return this.$n("masgn",[lhs,rhs],this.$binary_op_map(lhs,eql_t,rhs))}),3),$def(self,"$def_class",(function(class_t,name,lt_t,superclass,body,end_t){return this.$n("class",[name,superclass,body],this.$module_definition_map(class_t,name,lt_t,end_t))}),6),$def(self,"$def_sclass",(function(class_t,lshft_t,expr,body,end_t){return this.$n("sclass",[expr,body],this.$module_definition_map(class_t,nil,lshft_t,end_t))}),5),$def(self,"$def_module",(function(module_t,name,body,end_t){return this.$n("module",[name,body],this.$module_definition_map(module_t,name,nil,end_t))}),4),$def(self,"$def_method",(function(def_t,name_t,args,body,end_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("def",[this.$value(name_t).$to_sym(),args,body],this.$definition_map(def_t,nil,name_t,end_t))}),5),$def(self,"$def_endless_method",(function(def_t,name_t,args,assignment_t,body){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("def",[this.$value(name_t).$to_sym(),args,body],this.$endless_definition_map(def_t,nil,name_t,assignment_t,body))}),5),$def(self,"$def_singleton",(function(def_t,definee,dot_t,name_t,args,body,end_t){return this.$validate_definee(definee),this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("defs",[definee,this.$value(name_t).$to_sym(),args,body],this.$definition_map(def_t,dot_t,name_t,end_t))}),7),$def(self,"$def_endless_singleton",(function(def_t,definee,dot_t,name_t,args,assignment_t,body){return this.$validate_definee(definee),this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("defs",[definee,this.$value(name_t).$to_sym(),args,body],this.$endless_definition_map(def_t,dot_t,name_t,assignment_t,body))}),7),$def(self,"$undef_method",(function(undef_t,names){return this.$n("undef",[].concat($to_a(names)),this.$keyword_map(undef_t,nil,names,nil))}),2),$def(self,"$alias",(function(alias_t,to,from){return this.$n("alias",[to,from],this.$keyword_map(alias_t,nil,[to,from],nil))}),3),$def(self,"$args",(function(begin_t,args,end_t,check_args){var map;return null==check_args&&(check_args=!0),$truthy(check_args)&&(args=this.$check_duplicate_args(args)),this.$validate_no_forward_arg_after_restarg(args),map=this.$collection_map(begin_t,args,end_t),$not(this.$class().$emit_forward_arg())&&$eqeq(args.$length(),1)&&$eqeq(args["$[]"](0).$type(),"forward_arg")?this.$n("forward_args",[],map):this.$n("args",args,map)}),-4),$def(self,"$numargs",(function(max_numparam){return this.$n("numargs",[max_numparam],nil)}),1),$def(self,"$forward_only_args",(function(begin_t,dots_t,end_t){var arg=nil;return $truthy(this.$class().$emit_forward_arg())?(arg=this.$forward_arg(dots_t),this.$n("args",[arg],this.$collection_map(begin_t,[arg],end_t))):this.$n("forward_args",[],this.$collection_map(begin_t,this.$token_map(dots_t),end_t))}),3),$def(self,"$forward_arg",(function(dots_t){return this.$n("forward_arg",[],this.$token_map(dots_t))}),1),$def(self,"$arg",(function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("arg",[this.$value(name_t).$to_sym()],this.$variable_map(name_t))}),1),$def(self,"$optarg",(function(name_t,eql_t,value){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("optarg",[this.$value(name_t).$to_sym(),value],this.$variable_map(name_t).$with_operator(this.$loc(eql_t)).$with_expression(this.$loc(name_t).$join(value.$loc().$expression())))}),3),$def(self,"$restarg",(function(star_t,name_t){return null==name_t&&(name_t=nil),$truthy(name_t)?(this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("restarg",[this.$value(name_t).$to_sym()],this.$arg_prefix_map(star_t,name_t))):this.$n0("restarg",this.$arg_prefix_map(star_t))}),-2),$def(self,"$kwarg",(function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwarg",[this.$value(name_t).$to_sym()],this.$kwarg_map(name_t))}),1),$def(self,"$kwoptarg",(function(name_t,value){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwoptarg",[this.$value(name_t).$to_sym(),value],this.$kwarg_map(name_t,value))}),2),$def(self,"$kwrestarg",(function(dstar_t,name_t){return null==name_t&&(name_t=nil),$truthy(name_t)?(this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwrestarg",[this.$value(name_t).$to_sym()],this.$arg_prefix_map(dstar_t,name_t))):this.$n0("kwrestarg",this.$arg_prefix_map(dstar_t))}),-2),$def(self,"$kwnilarg",(function(dstar_t,nil_t){return this.$n0("kwnilarg",this.$arg_prefix_map(dstar_t,nil_t))}),2),$def(self,"$shadowarg",(function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("shadowarg",[this.$value(name_t).$to_sym()],this.$variable_map(name_t))}),1),$def(self,"$blockarg",(function(amper_t,name_t){var arg_name;return $not(name_t["$nil?"]())&&this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),arg_name=$truthy(name_t)?this.$value(name_t).$to_sym():nil,this.$n("blockarg",[arg_name],this.$arg_prefix_map(amper_t,name_t))}),2),$def(self,"$procarg0",(function(arg){return $truthy(this.$class().$emit_procarg0())?$eqeq(arg.$type(),"arg")&&$truthy(this.$class().$emit_arg_inside_procarg0())?this.$n("procarg0",[arg],$$$($$$($$("Source"),"Map"),"Collection").$new(nil,nil,arg.$location().$expression())):arg.$updated("procarg0"):arg}),1),$def(self,"$arg_expr",(function(expr){return $eqeq(expr.$type(),"lvasgn")?expr.$updated("arg"):this.$n("arg_expr",[expr],expr.$loc().$dup())}),1),$def(self,"$restarg_expr",(function(star_t,expr){return null==expr&&(expr=nil),$truthy(expr["$nil?"]())?this.$n0("restarg",this.$token_map(star_t)):$eqeq(expr.$type(),"lvasgn")?expr.$updated("restarg"):this.$n("restarg_expr",[expr],expr.$loc().$dup())}),-2),$def(self,"$blockarg_expr",(function(amper_t,expr){return $eqeq(expr.$type(),"lvasgn")?expr.$updated("blockarg"):this.$n("blockarg_expr",[expr],expr.$loc().$dup())}),2),$def(self,"$objc_kwarg",(function(kwname_t,assoc_t,name_t){var kwname_l=nil,operator_l=nil;return kwname_l=this.$loc(kwname_t),operator_l=$truthy(assoc_t["$nil?"]())?(kwname_l=kwname_l.$resize($rb_minus(kwname_l.$size(),1))).$end().$resize(1):this.$loc(assoc_t),this.$n("objc_kwarg",[this.$value(kwname_t).$to_sym(),this.$value(name_t).$to_sym()],$$$($$$($$("Source"),"Map"),"ObjcKwarg").$new(kwname_l,operator_l,this.$loc(name_t),kwname_l.$join(this.$loc(name_t))))}),3),$def(self,"$objc_restarg",(function(star_t,name){return null==name&&(name=nil),$truthy(name["$nil?"]())?this.$n0("restarg",this.$arg_prefix_map(star_t)):$eqeq(name.$type(),"arg")?name.$updated("restarg",nil,$hash2(["location"],{location:name.$loc().$with_operator(this.$loc(star_t))})):this.$n("objc_restarg",[name],this.$unary_op_map(star_t,name))}),-2),$def(self,"$call_type_for_dot",(function(dot_t){return $not(dot_t["$nil?"]())&&$eqeq(this.$value(dot_t),"anddot")?"csend":"send"}),1),$def(self,"$forwarded_args",(function(dots_t){return this.$n("forwarded_args",[],this.$token_map(dots_t))}),1),$def(self,"$call_method",(function(receiver,dot_t,selector_t,lparen_t,args,rparen_t){var type;return null==lparen_t&&(lparen_t=nil),null==args&&(args=[]),null==rparen_t&&(rparen_t=nil),type=this.$call_type_for_dot(dot_t),$truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(args),$truthy(selector_t["$nil?"]())?this.$n(type,[receiver,"call"].concat($to_a(args)),this.$send_map(receiver,dot_t,nil,lparen_t,args,rparen_t)):this.$n(type,[receiver,this.$value(selector_t).$to_sym()].concat($to_a(args)),this.$send_map(receiver,dot_t,selector_t,lparen_t,args,rparen_t))}),-4),$def(self,"$call_lambda",(function(lambda_t){return $truthy(this.$class().$emit_lambda())?this.$n0("lambda",this.$expr_map(this.$loc(lambda_t))):this.$n("send",[nil,"lambda"],this.$send_map(nil,nil,lambda_t))}),1),$def(self,"$block",(function(method_call,begin_t,args,body,end_t){var $a,call_args=nil,last_arg=nil,block_type=nil,actual_send=nil,block=nil;return null==($a=[].concat($to_a(method_call)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],call_args=$slice.call($a,2),$eqeq(method_call.$type(),"yield")&&this.$diagnostic("error","block_given_to_yield",nil,method_call.$loc().$keyword(),[this.$loc(begin_t)]),last_arg=call_args.$last(),$truthy(last_arg)&&($eqeq(last_arg.$type(),"block_pass")||$eqeq(last_arg.$type(),"forwarded_args"))&&this.$diagnostic("error","block_and_blockarg",nil,last_arg.$loc().$expression(),[this.$loc(begin_t)]),$eqeq(args.$type(),"numargs")?(block_type="numblock",args=args.$children()["$[]"](0)):block_type="block",$truthy(["send","csend","index","super","zsuper","lambda"]["$include?"](method_call.$type()))?this.$n(block_type,[method_call,args,body],this.$block_map(method_call.$loc().$expression(),begin_t,end_t)):(actual_send=null==($a=[].concat($to_a(method_call)))[0]?nil:$a[0],block=this.$n(block_type,[actual_send,args,body],this.$block_map(actual_send.$loc().$expression(),begin_t,end_t)),this.$n(method_call.$type(),[block],method_call.$loc().$with_expression(this.$join_exprs(method_call,block))))}),5),$def(self,"$block_pass",(function(amper_t,arg){return this.$n("block_pass",[arg],this.$unary_op_map(amper_t,arg))}),2),$def(self,"$objc_varargs",(function(pair,rest_of_varargs){var $a,value,first_vararg=nil,vararg_array=nil;return value=null==($a=[].concat($to_a(pair)))[0]?nil:$a[0],first_vararg=null==$a[1]?nil:$a[1],vararg_array=this.$array(nil,[first_vararg].concat($to_a(rest_of_varargs)),nil).$updated("objc_varargs"),pair.$updated(nil,[value,vararg_array],$hash2(["location"],{location:pair.$loc().$with_expression(pair.$loc().$expression().$join(vararg_array.$loc().$expression()))}))}),2),$def(self,"$attr_asgn",(function(receiver,dot_t,selector_t){var method_name,type;return method_name=$rb_plus(this.$value(selector_t),"=").$to_sym(),type=this.$call_type_for_dot(dot_t),this.$n(type,[receiver,method_name],this.$send_map(receiver,dot_t,selector_t))}),3),$def(self,"$index",(function(receiver,lbrack_t,indexes,rbrack_t){return $truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(indexes),$truthy(this.$class().$emit_index())?this.$n("index",[receiver].concat($to_a(indexes)),this.$index_map(receiver,lbrack_t,rbrack_t)):this.$n("send",[receiver,"[]"].concat($to_a(indexes)),this.$send_index_map(receiver,lbrack_t,rbrack_t))}),4),$def(self,"$index_asgn",(function(receiver,lbrack_t,indexes,rbrack_t){return $truthy(this.$class().$emit_index())?this.$n("indexasgn",[receiver].concat($to_a(indexes)),this.$index_map(receiver,lbrack_t,rbrack_t)):this.$n("send",[receiver,"[]="].concat($to_a(indexes)),this.$send_index_map(receiver,lbrack_t,rbrack_t))}),4),$def(self,"$binary_op",(function(receiver,operator_t,arg){var source_map=nil,operator=nil,method_call=nil;return source_map=this.$send_binary_op_map(receiver,operator_t,arg),$eqeq(this.parser.$version(),18)&&(operator=this.$value(operator_t),$eqeq(operator,"!=")?method_call=this.$n("send",[receiver,"==",arg],source_map):$eqeq(operator,"!~")&&(method_call=this.$n("send",[receiver,"=~",arg],source_map)),$truthy(["!=","!~"]["$include?"](operator)))?this.$n("not",[method_call],this.$expr_map(source_map.$expression())):this.$n("send",[receiver,this.$value(operator_t).$to_sym(),arg],source_map)}),3),$def(self,"$match_op",(function(receiver,match_t,arg){var source_map,regexp=nil;return source_map=this.$send_binary_op_map(receiver,match_t,arg),$truthy(regexp=this.$static_regexp_node(receiver))?($send(regexp.$names(),"each",[],(function $$11(name){var self=null==$$11.$$s?this:$$11.$$s;return null==self.parser&&(self.parser=nil),null==name&&(name=nil),self.parser.$static_env().$declare(name)}),{$$arity:1,$$s:this}),this.$n("match_with_lvasgn",[receiver,arg],source_map)):this.$n("send",[receiver,"=~",arg],source_map)}),3),$def(self,"$unary_op",(function(op_t,receiver){var $ret_or_1,method=nil;return method=$eqeqeq("+",$ret_or_1=this.$value(op_t))||$eqeqeq("-",$ret_or_1)?$rb_plus(this.$value(op_t),"@"):this.$value(op_t),this.$n("send",[receiver,method.$to_sym()],this.$send_unary_op_map(op_t,receiver))}),2),$def(self,"$not_op",(function(not_t,begin_t,receiver,end_t){var nil_node=nil;return null==begin_t&&(begin_t=nil),null==receiver&&(receiver=nil),null==end_t&&(end_t=nil),$eqeq(this.parser.$version(),18)?this.$n("not",[this.$check_condition(receiver)],this.$unary_op_map(not_t,receiver)):$truthy(receiver["$nil?"]())?(nil_node=this.$n0("begin",this.$collection_map(begin_t,nil,end_t)),this.$n("send",[nil_node,"!"],this.$send_unary_op_map(not_t,nil_node))):this.$n("send",[this.$check_condition(receiver),"!"],this.$send_map(nil,nil,not_t,begin_t,[receiver],end_t))}),-2),$def(self,"$logical_op",(function(type,lhs,op_t,rhs){return this.$n(type,[lhs,rhs],this.$binary_op_map(lhs,op_t,rhs))}),4),$def(self,"$condition",(function(cond_t,cond,then_t,if_true,else_t,if_false,end_t){return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$condition_map(cond_t,cond,then_t,if_true,else_t,if_false,end_t))}),7),$def(self,"$condition_mod",(function(if_true,if_false,cond_t,cond){var $ret_or_1;return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$keyword_mod_map($truthy($ret_or_1=if_true)?$ret_or_1:if_false,cond_t,cond))}),4),$def(self,"$ternary",(function(cond,question_t,if_true,colon_t,if_false){return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$ternary_map(cond,question_t,if_true,colon_t,if_false))}),5),$def(self,"$when",(function(when_t,patterns,then_t,body){var children;return children=patterns["$<<"](body),this.$n("when",children,this.$keyword_map(when_t,then_t,children,nil))}),4),$def(self,"$case",(function(case_t,expr,when_bodies,else_t,else_body,end_t){return this.$n("case",[expr].concat($to_a(when_bodies["$<<"](else_body))),this.$condition_map(case_t,expr,nil,nil,else_t,else_body,end_t))}),6),$def(self,"$loop",(function(type,keyword_t,cond,do_t,body,end_t){return this.$n(type,[this.$check_condition(cond),body],this.$keyword_map(keyword_t,do_t,nil,end_t))}),6),$def(self,"$loop_mod",(function(type,body,keyword_t,cond){return $eqeq(body.$type(),"kwbegin")&&(type+="_post"),this.$n(type,[this.$check_condition(cond),body],this.$keyword_mod_map(body,keyword_t,cond))}),4),$def(self,"$for",(function(for_t,iterator,in_t,iteratee,do_t,body,end_t){return this.$n("for",[iterator,iteratee,body],this.$for_map(for_t,in_t,do_t,end_t))}),7),$def(self,"$keyword_cmd",(function(type,keyword_t,lparen_t,args,rparen_t){var last_arg=nil;return null==lparen_t&&(lparen_t=nil),null==args&&(args=[]),null==rparen_t&&(rparen_t=nil),$eqeq(type,"yield")&&$truthy($rb_gt(args.$count(),0))&&(last_arg=args.$last(),$eqeq(last_arg.$type(),"block_pass")&&this.$diagnostic("error","block_given_to_yield",nil,this.$loc(keyword_t),[last_arg.$loc().$expression()])),$truthy(["yield","super"]["$include?"](type))&&$truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(args),this.$n(type,args,this.$keyword_map(keyword_t,lparen_t,args,rparen_t))}),-3),$def(self,"$preexe",(function(preexe_t,lbrace_t,compstmt,rbrace_t){return this.$n("preexe",[compstmt],this.$keyword_map(preexe_t,lbrace_t,[],rbrace_t))}),4),$def(self,"$postexe",(function(postexe_t,lbrace_t,compstmt,rbrace_t){return this.$n("postexe",[compstmt],this.$keyword_map(postexe_t,lbrace_t,[],rbrace_t))}),4),$def(self,"$rescue_body",(function(rescue_t,exc_list,assoc_t,exc_var,then_t,compound_stmt){return this.$n("resbody",[exc_list,exc_var,compound_stmt],this.$rescue_body_map(rescue_t,exc_list,assoc_t,exc_var,then_t,compound_stmt))}),6),$def(self,"$begin_body",(function(compound_stmt,rescue_bodies,else_t,else_,ensure_t,ensure_){var statements=nil;return null==rescue_bodies&&(rescue_bodies=[]),null==else_t&&(else_t=nil),null==else_&&(else_=nil),null==ensure_t&&(ensure_t=nil),null==ensure_&&(ensure_=nil),$truthy(rescue_bodies["$any?"]())?compound_stmt=$truthy(else_t)?this.$n("rescue",[compound_stmt].concat($to_a($rb_plus(rescue_bodies,[else_]))),this.$eh_keyword_map(compound_stmt,nil,rescue_bodies,else_t,else_)):this.$n("rescue",[compound_stmt].concat($to_a($rb_plus(rescue_bodies,[nil]))),this.$eh_keyword_map(compound_stmt,nil,rescue_bodies,nil,nil)):$truthy(else_t)&&(statements=[],$not(compound_stmt["$nil?"]())&&($eqeq(compound_stmt.$type(),"begin")?statements=$rb_plus(statements,compound_stmt.$children()):statements.$push(compound_stmt)),statements.$push(this.$n("begin",[else_],this.$collection_map(else_t,[else_],nil))),compound_stmt=this.$n("begin",statements,this.$collection_map(nil,statements,nil))),$truthy(ensure_t)&&(compound_stmt=this.$n("ensure",[compound_stmt,ensure_],this.$eh_keyword_map(compound_stmt,ensure_t,[ensure_],nil,nil))),compound_stmt}),-2),$def(self,"$compstmt",(function(statements){return $truthy(statements["$none?"]())?nil:$truthy(statements["$one?"]())?statements.$first():this.$n("begin",statements,this.$collection_map(nil,statements,nil))}),1),$def(self,"$begin",(function(begin_t,body,end_t){return $truthy(body["$nil?"]())?this.$n0("begin",this.$collection_map(begin_t,nil,end_t)):$eqeq(body.$type(),"mlhs")||$eqeq(body.$type(),"begin")&&$truthy(body.$loc().$begin()["$nil?"]())&&$truthy(body.$loc().$end()["$nil?"]())?this.$n(body.$type(),body.$children(),this.$collection_map(begin_t,body.$children(),end_t)):this.$n("begin",[body],this.$collection_map(begin_t,[body],end_t))}),3),$def(self,"$begin_keyword",(function(begin_t,body,end_t){return $truthy(body["$nil?"]())?this.$n0("kwbegin",this.$collection_map(begin_t,nil,end_t)):$eqeq(body.$type(),"begin")&&$truthy(body.$loc().$begin()["$nil?"]())&&$truthy(body.$loc().$end()["$nil?"]())?this.$n("kwbegin",body.$children(),this.$collection_map(begin_t,body.$children(),end_t)):this.$n("kwbegin",[body],this.$collection_map(begin_t,[body],end_t))}),3),$def(self,"$case_match",(function(case_t,expr,in_bodies,else_t,else_body,end_t){return $truthy(else_t)&&$not(else_body)&&(else_body=this.$n("empty_else",nil,this.$token_map(else_t))),this.$n("case_match",[expr].concat($to_a(in_bodies["$<<"](else_body))),this.$condition_map(case_t,expr,nil,nil,else_t,else_body,end_t))}),6),$def(self,"$in_match",(function(lhs,in_t,rhs){return this.$n("in_match",[lhs,rhs],this.$binary_op_map(lhs,in_t,rhs))}),3),$def(self,"$match_pattern",(function(lhs,match_t,rhs){return this.$n("match_pattern",[lhs,rhs],this.$binary_op_map(lhs,match_t,rhs))}),3),$def(self,"$match_pattern_p",(function(lhs,match_t,rhs){return this.$n("match_pattern_p",[lhs,rhs],this.$binary_op_map(lhs,match_t,rhs))}),3),$def(self,"$in_pattern",(function(in_t,pattern,guard,then_t,body){var children=nil;return children=[pattern,guard,body],this.$n("in_pattern",children,this.$keyword_map(in_t,then_t,children.$compact(),nil))}),5),$def(self,"$if_guard",(function(if_t,if_body){return this.$n("if_guard",[if_body],this.$guard_map(if_t,if_body))}),2),$def(self,"$unless_guard",(function(unless_t,unless_body){return this.$n("unless_guard",[unless_body],this.$guard_map(unless_t,unless_body))}),2),$def(self,"$match_var",(function(name_t){var name,name_l;return name=this.$value(name_t).$to_sym(),name_l=this.$loc(name_t),this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),this.$n("match_var",[name],this.$variable_map(name_t))}),1),$def(self,"$match_hash_var",(function(name_t){var name,name_l,expr_l=nil;return name=this.$value(name_t).$to_sym(),name_l=(expr_l=this.$loc(name_t)).$adjust($hash2(["end_pos"],{end_pos:-1})),this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),this.$n("match_var",[name],$$$($$$($$("Source"),"Map"),"Variable").$new(name_l,expr_l))}),1),$def(self,"$match_hash_var_from_str",(function(begin_t,strings,end_t){var $a,$ret_or_1,string=nil,name=nil,name_l=nil,begin_l=nil,end_l=nil,expr_l=nil;return $truthy($rb_gt(strings.$length(),1))&&this.$diagnostic("error","pm_interp_in_var_name",nil,this.$loc(begin_t).$join(this.$loc(end_t))),string=strings["$[]"](0),$eqeqeq("str",$ret_or_1=string.$type())?(name=null==($a=[].concat($to_a(string)))[0]?nil:$a[0],name_l=string.$loc().$expression(),this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),$truthy(begin_l=string.$loc().$begin())&&(name_l=name_l.$adjust($hash2(["begin_pos"],{begin_pos:begin_l.$length()}))),$truthy(end_l=string.$loc().$end())&&(name_l=name_l.$adjust($hash2(["end_pos"],{end_pos:end_l.$length()["$-@"]()}))),expr_l=this.$loc(begin_t).$join(string.$loc().$expression()).$join(this.$loc(end_t)),this.$n("match_var",[name.$to_sym()],$$$($$$($$("Source"),"Map"),"Variable").$new(name_l,expr_l))):$eqeqeq("begin",$ret_or_1)?this.$match_hash_var_from_str(begin_t,string.$children(),end_t):this.$diagnostic("error","pm_interp_in_var_name",nil,this.$loc(begin_t).$join(this.$loc(end_t)))}),3),$def(self,"$match_rest",(function(star_t,name_t){var name=nil;return null==name_t&&(name_t=nil),$truthy(name_t["$nil?"]())?this.$n0("match_rest",this.$unary_op_map(star_t)):(name=this.$match_var(name_t),this.$n("match_rest",[name],this.$unary_op_map(star_t,name)))}),-2),$def(self,"$hash_pattern",(function(lbrace_t,kwargs,rbrace_t){var args;return args=this.$check_duplicate_args(kwargs),this.$n("hash_pattern",args,this.$collection_map(lbrace_t,args,rbrace_t))}),3),$def(self,"$array_pattern",(function(lbrack_t,elements,rbrack_t){var node_elements,node_type,trailing_comma=nil;return $truthy(elements["$nil?"]())?this.$n("array_pattern",nil,this.$collection_map(lbrack_t,[],rbrack_t)):(trailing_comma=!1,node_elements=$send(elements,"map",[],(function(element){return null==element&&(element=nil),$eqeq(element.$type(),"match_with_trailing_comma")?(trailing_comma=!0,element.$children().$first()):(trailing_comma=!1,element)}),1),node_type=$truthy(trailing_comma)?"array_pattern_with_tail":"array_pattern",this.$n(node_type,node_elements,this.$collection_map(lbrack_t,elements,rbrack_t)))}),3),$def(self,"$find_pattern",(function(lbrack_t,elements,rbrack_t){return this.$n("find_pattern",elements,this.$collection_map(lbrack_t,elements,rbrack_t))}),3),$def(self,"$match_with_trailing_comma",(function(match,comma_t){return this.$n("match_with_trailing_comma",[match],this.$expr_map(match.$loc().$expression().$join(this.$loc(comma_t))))}),2),$def(self,"$const_pattern",(function(const$,ldelim_t,pattern,rdelim_t){return this.$n("const_pattern",[const$,pattern],$$$($$$($$("Source"),"Map"),"Collection").$new(this.$loc(ldelim_t),this.$loc(rdelim_t),const$.$loc().$expression().$join(this.$loc(rdelim_t))))}),4),$def(self,"$pin",(function(pin_t,var$){return this.$n("pin",[var$],this.$send_unary_op_map(pin_t,var$))}),2),$def(self,"$match_alt",(function(left,pipe_t,right){var source_map;return source_map=this.$binary_op_map(left,pipe_t,right),this.$n("match_alt",[left,right],source_map)}),3),$def(self,"$match_as",(function(value,assoc_t,as){var source_map;return source_map=this.$binary_op_map(value,assoc_t,as),this.$n("match_as",[value,as],source_map)}),3),$def(self,"$match_nil_pattern",(function(dstar_t,nil_t){return this.$n0("match_nil_pattern",this.$arg_prefix_map(dstar_t,nil_t))}),2),$def(self,"$match_pair",(function(label_type,label,value){var $a,begin_t=nil,parts=nil,end_t=nil,label_loc=nil,var_name=nil;return $eqeq(label_type,"label")?(this.$check_duplicate_pattern_key(label["$[]"](0),label["$[]"](1)),this.$pair_keyword(label,value)):(begin_t=null==($a=$to_ary(label))[0]?nil:$a[0],parts=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],label_loc=this.$loc(begin_t).$join(this.$loc(end_t)),$truthy(var_name=this.$static_string(parts))?this.$check_duplicate_pattern_key(var_name,label_loc):this.$diagnostic("error","pm_interp_in_var_name",nil,label_loc),this.$pair_quoted(begin_t,parts,end_t,value))}),3),$def(self,"$match_label",(function(label_type,label){var $a,begin_t=nil,strings=nil,end_t=nil;return $eqeq(label_type,"label")?this.$match_hash_var(label):(begin_t=null==($a=$to_ary(label))[0]?nil:$a[0],strings=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],this.$match_hash_var_from_str(begin_t,strings,end_t))}),2),self.$private(),$def(self,"$check_condition",(function(cond){var $a,$ret_or_1,lhs=nil,rhs=nil,type=nil,$ret_or_2=nil;return $eqeqeq("masgn",$ret_or_1=cond.$type())?$truthy($rb_le(this.parser.$version(),23))?this.$diagnostic("error","masgn_as_condition",nil,cond.$loc().$expression()):cond:$eqeqeq("begin",$ret_or_1)?$eqeq(cond.$children().$count(),1)?cond.$updated(nil,[this.$check_condition(cond.$children().$last())]):cond:$eqeqeq("and",$ret_or_1)||$eqeqeq("or",$ret_or_1)||$eqeqeq("irange",$ret_or_1)||$eqeqeq("erange",$ret_or_1)?(lhs=null==($a=[].concat($to_a(cond)))[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],type=$eqeqeq("irange",$ret_or_2=cond.$type())?"iflipflop":$eqeqeq("erange",$ret_or_2)?"eflipflop":nil,$truthy(["and","or"]["$include?"](cond.$type()))&&$eqeq(this.parser.$version(),18)?cond:cond.$updated(type,[this.$check_condition(lhs),this.$check_condition(rhs)])):$eqeqeq("regexp",$ret_or_1)?this.$n("match_current_line",[cond],this.$expr_map(cond.$loc().$expression())):cond}),1),$def(self,"$check_duplicate_args",(function(args,map){return null==map&&(map=$hash2([],{})),$send(args,"each",[],(function $$15(this_arg){var $ret_or_1,self=null==$$15.$$s?this:$$15.$$s;return null==this_arg&&(this_arg=nil),$eqeqeq("arg",$ret_or_1=this_arg.$type())||$eqeqeq("optarg",$ret_or_1)||$eqeqeq("restarg",$ret_or_1)||$eqeqeq("blockarg",$ret_or_1)||$eqeqeq("kwarg",$ret_or_1)||$eqeqeq("kwoptarg",$ret_or_1)||$eqeqeq("kwrestarg",$ret_or_1)||$eqeqeq("shadowarg",$ret_or_1)?self.$check_duplicate_arg(this_arg,map):$eqeqeq("procarg0",$ret_or_1)?$truthy(this_arg.$children()["$[]"](0)["$is_a?"]($$("Symbol")))?self.$check_duplicate_arg(this_arg,map):self.$check_duplicate_args(this_arg.$children(),map):$eqeqeq("mlhs",$ret_or_1)?self.$check_duplicate_args(this_arg.$children(),map):nil}),{$$arity:1,$$s:this})}),-2),$def(self,"$check_duplicate_arg",(function(this_arg,map){var $a,this_name,that_name,that_arg=nil,$writer=nil;return null==map&&(map=$hash2([],{})),this_name=null==($a=[].concat($to_a(this_arg)))[0]?nil:$a[0],that_arg=map["$[]"](this_name),that_name=null==($a=[].concat($to_a(that_arg)))[0]?nil:$a[0],$truthy(that_arg["$nil?"]())?($send(map,"[]=",$to_a($writer=[this_name,this_arg])),$writer[$rb_minus($writer.length,1)]):$truthy(this["$arg_name_collides?"](this_name,that_name))?this.$diagnostic("error","duplicate_argument",nil,this_arg.$loc().$name(),[that_arg.$loc().$name()]):nil}),-2),$def(self,"$validate_no_forward_arg_after_restarg",(function(args){var restarg=nil,forward_arg=nil;return restarg=nil,forward_arg=nil,$send(args,"each",[],(function(arg){var $ret_or_1;return null==arg&&(arg=nil),$eqeqeq("restarg",$ret_or_1=arg.$type())?restarg=arg:$eqeqeq("forward_arg",$ret_or_1)?forward_arg=arg:nil}),1),$not(forward_arg["$nil?"]())&&$not(restarg["$nil?"]())?this.$diagnostic("error","forward_arg_after_restarg",nil,forward_arg.$loc().$expression(),[restarg.$loc().$expression()]):nil}),1),$def(self,"$check_assignment_to_numparam",(function(name,loc){var assigning_to_numparam,$ret_or_1,$ret_or_2;return $truthy($rb_lt(this.parser.$version(),27))?nil:(assigning_to_numparam=$truthy($ret_or_1=$truthy($ret_or_2=this.parser.$context()["$in_dynamic_block?"]())?name["$=~"](/^_([1-9])$/):$ret_or_2)?this.parser.$max_numparam_stack()["$has_numparams?"]():$ret_or_1,$truthy(assigning_to_numparam)?this.$diagnostic("error","cant_assign_to_numparam",$hash2(["name"],{name:name}),loc):nil)}),2),$def(self,"$check_reserved_for_numparam",(function(name,loc){return $truthy($rb_lt(this.parser.$version(),30))?nil:$truthy(name["$=~"](/^_([1-9])$/))?this.$diagnostic("error","reserved_for_numparam",$hash2(["name"],{name:name}),loc):nil}),2),$def(self,"$arg_name_collides?",(function(this_name,that_name){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $eqeqeq(18,$ret_or_1=this.parser.$version())?this_name["$=="](that_name):$eqeqeq(19,$ret_or_1)?$truthy($ret_or_2=this_name["$!="]("_"))?this_name["$=="](that_name):$ret_or_2:$truthy($ret_or_2=$truthy($ret_or_3=this_name)?this_name["$[]"](0)["$!="]("_"):$ret_or_3)?this_name["$=="](that_name):$ret_or_2}),2),$def(self,"$check_lvar_name",(function(name,loc){return $truthy(name["$=~"](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?nil:this.$diagnostic("error","lvar_name",$hash2(["name"],{name:name}),loc)}),2),$def(self,"$check_duplicate_pattern_variable",(function(name,loc){return $truthy(name.$to_s()["$start_with?"]("_"))?nil:($truthy(this.parser.$pattern_variables()["$declared?"](name))&&this.$diagnostic("error","duplicate_variable_name",$hash2(["name"],{name:name.$to_s()}),loc),this.parser.$pattern_variables().$declare(name))}),2),$def(self,"$check_duplicate_pattern_key",(function(name,loc){return $truthy(this.parser.$pattern_hash_keys()["$declared?"](name))&&this.$diagnostic("error","duplicate_pattern_key",$hash2(["name"],{name:name.$to_s()}),loc),this.parser.$pattern_hash_keys().$declare(name)}),2),$def(self,"$n",(function(type,children,source_map){return $$$($$("AST"),"Node").$new(type,children,$hash2(["location"],{location:source_map}))}),3),$def(self,"$n0",(function(type,source_map){return this.$n(type,[],source_map)}),2),$def(self,"$join_exprs",(function(left_expr,right_expr){return left_expr.$loc().$expression().$join(right_expr.$loc().$expression())}),2),$def(self,"$token_map",(function(token){return $$$($$("Source"),"Map").$new(this.$loc(token))}),1),$def(self,"$delimited_string_map",(function(string_t){var begin_l,end_l,str_range=nil;return begin_l=(str_range=this.$loc(string_t)).$with($hash2(["end_pos"],{end_pos:$rb_plus(str_range.$begin_pos(),1)})),end_l=str_range.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(str_range.$end_pos(),1)})),$$$($$$($$("Source"),"Map"),"Collection").$new(begin_l,end_l,this.$loc(string_t))}),1),$def(self,"$prefix_string_map",(function(symbol){var begin_l,str_range=nil;return begin_l=(str_range=this.$loc(symbol)).$with($hash2(["end_pos"],{end_pos:$rb_plus(str_range.$begin_pos(),1)})),$$$($$$($$("Source"),"Map"),"Collection").$new(begin_l,nil,this.$loc(symbol))}),1),$def(self,"$unquoted_map",(function(token){return $$$($$$($$("Source"),"Map"),"Collection").$new(nil,nil,this.$loc(token))}),1),$def(self,"$pair_keyword_map",(function(key_t,value_e){var key_l,colon_l,key_range=nil;return key_l=(key_range=this.$loc(key_t)).$adjust($hash2(["end_pos"],{end_pos:-1})),colon_l=key_range.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(key_range.$end_pos(),1)})),[$$$($$$($$("Source"),"Map"),"Collection").$new(nil,nil,key_l),$$$($$$($$("Source"),"Map"),"Operator").$new(colon_l,key_range.$join(value_e.$loc().$expression()))]}),2),$def(self,"$pair_quoted_map",(function(begin_t,end_t,value_e){var quote_l,colon_l,end_l=nil;return quote_l=(end_l=this.$loc(end_t)).$with($hash2(["begin_pos","end_pos"],{begin_pos:$rb_minus(end_l.$end_pos(),2),end_pos:$rb_minus(end_l.$end_pos(),1)})),colon_l=end_l.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(end_l.$end_pos(),1)})),[[this.$value(end_t),quote_l],$$$($$$($$("Source"),"Map"),"Operator").$new(colon_l,this.$loc(begin_t).$join(value_e.$loc().$expression()))]}),3),$def(self,"$expr_map",(function(loc){return $$$($$("Source"),"Map").$new(loc)}),1),$def(self,"$collection_map",(function(begin_t,parts,end_t){var expr_l=nil;return $truthy(begin_t["$nil?"]())||$truthy(end_t["$nil?"]())?$truthy(parts["$any?"]())?expr_l=this.$join_exprs(parts.$first(),parts.$last()):$not(begin_t["$nil?"]())?expr_l=this.$loc(begin_t):$not(end_t["$nil?"]())&&(expr_l=this.$loc(end_t)):expr_l=this.$loc(begin_t).$join(this.$loc(end_t)),$$$($$$($$("Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),expr_l)}),3),$def(self,"$string_map",(function(begin_t,parts,end_t){var expr_l=nil;return $truthy(begin_t)&&$truthy(this.$value(begin_t)["$start_with?"]("<<"))?(expr_l=$truthy(parts["$any?"]())?this.$join_exprs(parts.$first(),parts.$last()):this.$loc(end_t).$begin(),$$$($$$($$("Source"),"Map"),"Heredoc").$new(this.$loc(begin_t),expr_l,this.$loc(end_t))):this.$collection_map(begin_t,parts,end_t)}),3),$def(self,"$regexp_map",(function(begin_t,end_t,options_e){return $$$($$$($$("Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),this.$loc(begin_t).$join(options_e.$loc().$expression()))}),3),$def(self,"$constant_map",(function(scope,colon2_t,name_t){var expr_l=nil;return expr_l=$truthy(scope["$nil?"]())?this.$loc(name_t):scope.$loc().$expression().$join(this.$loc(name_t)),$$$($$$($$("Source"),"Map"),"Constant").$new(this.$loc(colon2_t),this.$loc(name_t),expr_l)}),3),$def(self,"$variable_map",(function(name_t){return $$$($$$($$("Source"),"Map"),"Variable").$new(this.$loc(name_t))}),1),$def(self,"$binary_op_map",(function(left_e,op_t,right_e){return $$$($$$($$("Source"),"Map"),"Operator").$new(this.$loc(op_t),this.$join_exprs(left_e,right_e))}),3),$def(self,"$unary_op_map",(function(op_t,arg_e){var expr_l=nil;return null==arg_e&&(arg_e=nil),expr_l=$truthy(arg_e["$nil?"]())?this.$loc(op_t):this.$loc(op_t).$join(arg_e.$loc().$expression()),$$$($$$($$("Source"),"Map"),"Operator").$new(this.$loc(op_t),expr_l)}),-2),$def(self,"$range_map",(function(start_e,op_t,end_e){var expr_l=nil;return $truthy(start_e)&&$truthy(end_e)?expr_l=this.$join_exprs(start_e,end_e):$truthy(start_e)?expr_l=start_e.$loc().$expression().$join(this.$loc(op_t)):$truthy(end_e)&&(expr_l=this.$loc(op_t).$join(end_e.$loc().$expression())),$$$($$$($$("Source"),"Map"),"Operator").$new(this.$loc(op_t),expr_l)}),3),$def(self,"$arg_prefix_map",(function(op_t,name_t){var expr_l=nil;return null==name_t&&(name_t=nil),expr_l=$truthy(name_t["$nil?"]())?this.$loc(op_t):this.$loc(op_t).$join(this.$loc(name_t)),$$$($$$($$("Source"),"Map"),"Variable").$new(this.$loc(name_t),expr_l)}),-2),$def(self,"$kwarg_map",(function(name_t,value_e){var name_range,expr_l=nil;return null==value_e&&(value_e=nil),name_range=this.$loc(name_t).$adjust($hash2(["end_pos"],{end_pos:-1})),expr_l=$truthy(value_e)?this.$loc(name_t).$join(value_e.$loc().$expression()):this.$loc(name_t),$$$($$$($$("Source"),"Map"),"Variable").$new(name_range,expr_l)}),-2),$def(self,"$module_definition_map",(function(keyword_t,name_e,operator_t,end_t){var name_l=nil;return $truthy(name_e)&&(name_l=name_e.$loc().$expression()),$$$($$$($$("Source"),"Map"),"Definition").$new(this.$loc(keyword_t),this.$loc(operator_t),name_l,this.$loc(end_t))}),4),$def(self,"$definition_map",(function(keyword_t,operator_t,name_t,end_t){return $$$($$$($$("Source"),"Map"),"MethodDefinition").$new(this.$loc(keyword_t),this.$loc(operator_t),this.$loc(name_t),this.$loc(end_t),nil,nil)}),4),$def(self,"$endless_definition_map",(function(keyword_t,operator_t,name_t,assignment_t,body_e){var body_l;return body_l=body_e.$loc().$expression(),$$$($$$($$("Source"),"Map"),"MethodDefinition").$new(this.$loc(keyword_t),this.$loc(operator_t),this.$loc(name_t),nil,this.$loc(assignment_t),body_l)}),5),$def(self,"$send_map",(function(receiver_e,dot_t,selector_t,begin_t,args,end_t){var begin_l=nil,end_l=nil;return null==begin_t&&(begin_t=nil),null==args&&(args=[]),null==end_t&&(end_t=nil),$truthy(receiver_e)?begin_l=receiver_e.$loc().$expression():$truthy(selector_t)&&(begin_l=this.$loc(selector_t)),$truthy(end_t)?end_l=this.$loc(end_t):$truthy(args["$any?"]())?end_l=args.$last().$loc().$expression():$truthy(selector_t)&&(end_l=this.$loc(selector_t)),$$$($$$($$("Source"),"Map"),"Send").$new(this.$loc(dot_t),this.$loc(selector_t),this.$loc(begin_t),this.$loc(end_t),begin_l.$join(end_l))}),-4),$def(self,"$var_send_map",(function(variable_e){return $$$($$$($$("Source"),"Map"),"Send").$new(nil,variable_e.$loc().$expression(),nil,nil,variable_e.$loc().$expression())}),1),$def(self,"$send_binary_op_map",(function(lhs_e,selector_t,rhs_e){return $$$($$$($$("Source"),"Map"),"Send").$new(nil,this.$loc(selector_t),nil,nil,this.$join_exprs(lhs_e,rhs_e))}),3),$def(self,"$send_unary_op_map",(function(selector_t,arg_e){var expr_l=nil;return expr_l=$truthy(arg_e["$nil?"]())?this.$loc(selector_t):this.$loc(selector_t).$join(arg_e.$loc().$expression()),$$$($$$($$("Source"),"Map"),"Send").$new(nil,this.$loc(selector_t),nil,nil,expr_l)}),2),$def(self,"$index_map",(function(receiver_e,lbrack_t,rbrack_t){return $$$($$$($$("Source"),"Map"),"Index").$new(this.$loc(lbrack_t),this.$loc(rbrack_t),receiver_e.$loc().$expression().$join(this.$loc(rbrack_t)))}),3),$def(self,"$send_index_map",(function(receiver_e,lbrack_t,rbrack_t){return $$$($$$($$("Source"),"Map"),"Send").$new(nil,this.$loc(lbrack_t).$join(this.$loc(rbrack_t)),nil,nil,receiver_e.$loc().$expression().$join(this.$loc(rbrack_t)))}),3),$def(self,"$block_map",(function(receiver_l,begin_t,end_t){return $$$($$$($$("Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),receiver_l.$join(this.$loc(end_t)))}),3),$def(self,"$keyword_map",(function(keyword_t,begin_t,args,end_t){var $ret_or_1,end_l=nil;return args=$truthy($ret_or_1=args)?$ret_or_1:[],end_l=$truthy(end_t)?this.$loc(end_t):$truthy(args["$any?"]())&&$not(args.$last()["$nil?"]())?args.$last().$loc().$expression():$truthy(args["$any?"]())&&$truthy($rb_gt(args.$count(),1))?args["$[]"](-2).$loc().$expression():this.$loc(keyword_t),$$$($$$($$("Source"),"Map"),"Keyword").$new(this.$loc(keyword_t),this.$loc(begin_t),this.$loc(end_t),this.$loc(keyword_t).$join(end_l))}),4),$def(self,"$keyword_mod_map",(function(pre_e,keyword_t,post_e){return $$$($$$($$("Source"),"Map"),"Keyword").$new(this.$loc(keyword_t),nil,nil,this.$join_exprs(pre_e,post_e))}),3),$def(self,"$condition_map",(function(keyword_t,cond_e,begin_t,body_e,else_t,else_e,end_t){var end_l=nil;return end_l=$truthy(end_t)?this.$loc(end_t):$truthy(else_e)&&$truthy(else_e.$loc().$expression())?else_e.$loc().$expression():$truthy(this.$loc(else_t))?this.$loc(else_t):$truthy(body_e)&&$truthy(body_e.$loc().$expression())?body_e.$loc().$expression():$truthy(this.$loc(begin_t))?this.$loc(begin_t):cond_e.$loc().$expression(),$$$($$$($$("Source"),"Map"),"Condition").$new(this.$loc(keyword_t),this.$loc(begin_t),this.$loc(else_t),this.$loc(end_t),this.$loc(keyword_t).$join(end_l))}),7),$def(self,"$ternary_map",(function(begin_e,question_t,mid_e,colon_t,end_e){return $$$($$$($$("Source"),"Map"),"Ternary").$new(this.$loc(question_t),this.$loc(colon_t),this.$join_exprs(begin_e,end_e))}),5),$def(self,"$for_map",(function(keyword_t,in_t,begin_t,end_t){return $$$($$$($$("Source"),"Map"),"For").$new(this.$loc(keyword_t),this.$loc(in_t),this.$loc(begin_t),this.$loc(end_t),this.$loc(keyword_t).$join(this.$loc(end_t)))}),4),$def(self,"$rescue_body_map",(function(keyword_t,exc_list_e,assoc_t,exc_var_e,then_t,compstmt_e){var end_l=nil;return $truthy(compstmt_e)&&(end_l=compstmt_e.$loc().$expression()),$truthy(end_l["$nil?"]())&&$truthy(then_t)&&(end_l=this.$loc(then_t)),$truthy(end_l["$nil?"]())&&$truthy(exc_var_e)&&(end_l=exc_var_e.$loc().$expression()),$truthy(end_l["$nil?"]())&&$truthy(exc_list_e)&&(end_l=exc_list_e.$loc().$expression()),$truthy(end_l["$nil?"]())&&(end_l=this.$loc(keyword_t)),$$$($$$($$("Source"),"Map"),"RescueBody").$new(this.$loc(keyword_t),this.$loc(assoc_t),this.$loc(then_t),this.$loc(keyword_t).$join(end_l))}),6),$def(self,"$eh_keyword_map",(function(compstmt_e,keyword_t,body_es,else_t,else_e){var begin_l=nil,end_l=nil;return begin_l=$truthy(compstmt_e["$nil?"]())?$truthy(keyword_t["$nil?"]())?body_es.$first().$loc().$expression():this.$loc(keyword_t):compstmt_e.$loc().$expression(),end_l=$truthy(else_t)?$truthy(else_e["$nil?"]())?this.$loc(else_t):else_e.$loc().$expression():$not(body_es.$last()["$nil?"]())?body_es.$last().$loc().$expression():this.$loc(keyword_t),$$$($$$($$("Source"),"Map"),"Condition").$new(this.$loc(keyword_t),nil,this.$loc(else_t),nil,begin_l.$join(end_l))}),5),$def(self,"$guard_map",(function(keyword_t,guard_body_e){var guard_body_l,keyword_l=nil;return keyword_l=this.$loc(keyword_t),guard_body_l=guard_body_e.$loc().$expression(),$$$($$$($$("Source"),"Map"),"Keyword").$new(keyword_l,nil,nil,keyword_l.$join(guard_body_l))}),2),$def(self,"$static_string",(function(nodes){try{return $send(nodes,"map",[],(function $$18(node){var $ret_or_1,self=null==$$18.$$s?this:$$18.$$s,string=nil;if(null==node&&(node=nil),$eqeqeq("str",$ret_or_1=node.$type()))return node.$children()["$[]"](0);if($eqeqeq("begin",$ret_or_1)){if($truthy(string=self.$static_string(node.$children())))return string;Opal.ret(nil)}else Opal.ret(nil)}),{$$arity:1,$$s:this}).$join()}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),1),$def(self,"$static_regexp",(function(parts,options){var source=nil;return source=this.$static_string(parts),$truthy(source["$nil?"]())?nil:(source=$truthy(options.$children()["$include?"]("u"))?source.$encode($$$($$("Encoding"),"UTF_8")):$truthy(options.$children()["$include?"]("e"))?source.$encode($$$($$("Encoding"),"EUC_JP")):$truthy(options.$children()["$include?"]("s"))?source.$encode($$$($$("Encoding"),"WINDOWS_31J")):$truthy(options.$children()["$include?"]("n"))?source.$encode($$$($$("Encoding"),"BINARY")):source,$$("Regexp").$new(source,$truthy(options.$children()["$include?"]("x"))?$$$($$("Regexp"),"EXTENDED"):nil))}),2),$def(self,"$static_regexp_node",(function(node){var $a,parts=nil,options=nil;return $eqeq(node.$type(),"regexp")?(parts=($a=[node.$children()["$[]"]($range(0,-2,!1)),node.$children()["$[]"](-1)])[0],options=$a[1],this.$static_regexp(parts,options)):nil}),1),$def(self,"$collapse_string_parts?",(function(parts){var $ret_or_1;return $truthy($ret_or_1=parts["$one?"]())?["str","dstr"]["$include?"](parts.$first().$type()):$ret_or_1}),1),$def(self,"$value",(function(token){return token["$[]"](0)}),1),$def(self,"$string_value",(function(token){return $truthy(token["$[]"](0)["$valid_encoding?"]())||this.$diagnostic("error","invalid_encoding",nil,token["$[]"](1)),token["$[]"](0)}),1),$def(self,"$loc",(function(token){return $truthy(token)&&$truthy(token["$[]"](0))?token["$[]"](1):nil}),1),$def(self,"$diagnostic",(function(type,reason,arguments$,location,highlights){return null==highlights&&(highlights=[]),this.parser.$diagnostics().$process($$("Diagnostic").$new(type,reason,arguments$,location,highlights)),$eqeq(type,"error")?this.parser.$send("yyerror"):nil}),-5),$def(self,"$validate_definee",(function(definee){var $ret_or_1;return!($eqeqeq("int",$ret_or_1=definee.$type())||$eqeqeq("str",$ret_or_1)||$eqeqeq("dstr",$ret_or_1)||$eqeqeq("sym",$ret_or_1)||$eqeqeq("dsym",$ret_or_1)||$eqeqeq("regexp",$ret_or_1)||$eqeqeq("array",$ret_or_1)||$eqeqeq("hash",$ret_or_1))||(this.$diagnostic("error","singleton_literal",nil,definee.$loc().$expression()),!1)}),1),$def(self,"$rewrite_hash_args_to_kwargs",(function(args){var $writer=nil;return $truthy(args["$any?"]())&&$truthy(this["$kwargs?"](args.$last()))?($writer=[$rb_minus(args.$length(),1),args["$[]"]($rb_minus(args.$length(),1)).$updated("kwargs")],$send(args,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy($rb_gt(args.$length(),1))&&$eqeq(args.$last().$type(),"block_pass")&&$truthy(this["$kwargs?"](args["$[]"]($rb_minus(args.$length(),2))))?($writer=[$rb_minus(args.$length(),2),args["$[]"]($rb_minus(args.$length(),2)).$updated("kwargs")],$send(args,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),1),$def(self,"$kwargs?",(function(node){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=node.$type()["$=="]("hash"))?node.$loc().$begin()["$nil?"]():$ret_or_2)?node.$loc().$end()["$nil?"]():$ret_or_1}),1)}(Opal.$r($nesting)("Builders"),0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/context"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$truthy=Opal.truthy;return Opal.add_stubs("reset,attr_accessor,in_block,in_lambda"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Context"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"FLAGS",["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda"]),$def(self,"$initialize",(function(){return this.$reset()}),0),$def(self,"$reset",(function(){return this.in_defined=!1,this.in_kwarg=!1,this.in_argdef=!1,this.in_def=!1,this.in_class=!1,this.in_block=!1,this.in_lambda=!1}),0),$send(self,"attr_accessor",$to_a($$("FLAGS"))),$def(self,"$in_dynamic_block?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$in_block())?$ret_or_1:this.$in_lambda()}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/max_numparam_stack"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus;return Opal.add_stubs("attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]=,-"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"MaxNumparamStack"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.stack=nil,self.$attr_reader("stack"),$const_set($nesting[0],"ORDINARY_PARAMS",-1),$def(self,"$initialize",(function(){return this.stack=[]}),0),$def(self,"$empty?",(function(){return this.stack.$size()["$=="](0)}),0),$def(self,"$has_ordinary_params!",(function(){return this.$set($$("ORDINARY_PARAMS"))}),0),$def(self,"$has_ordinary_params?",(function(){return this.$top()["$=="]($$("ORDINARY_PARAMS"))}),0),$def(self,"$has_numparams?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$top())?$rb_gt(this.$top(),0):$ret_or_1}),0),$def(self,"$register",(function(numparam){return this.$set([this.$top(),numparam].$max())}),1),$def(self,"$top",(function(){return this.stack.$last()["$[]"]("value")}),0),$def(self,"$push",(function($kwargs){var static$;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call($kwargs.$$smap,"static"))throw Opal.ArgumentError.$new("missing keyword: static");return static$=$kwargs.$$smap.static,this.stack.$push($hash2(["value","static"],{value:0,static:static$}))}),1),$def(self,"$pop",(function(){return this.stack.$pop()["$[]"]("value")}),0),self.$private(),$def(self,"$set",(function(value){var $writer;return $writer=["value",value],$send(this.stack.$last(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/current_arg_stack"]=function(Opal){var $base,$parent_nesting,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$rb_minus=Opal.rb_minus,$send=Opal.send,$to_a=Opal.to_a;return Opal.add_stubs("attr_reader,freeze,==,size,<<,-,length,[]=,pop,clear,last"),$base=$nesting[0],$parent_nesting=$nesting,function($base,$super){var self=$klass($base,null,"CurrentArgStack");return self.$$prototype.stack=nil,self.$attr_reader("stack"),$def(self,"$initialize",(function(){return this.stack=[],this.$freeze()}),0),$def(self,"$empty?",(function(){return this.stack.$size()["$=="](0)}),0),$def(self,"$push",(function(value){return this.stack["$<<"](value)}),1),$def(self,"$set",(function(value){var $writer;return $writer=[$rb_minus(this.stack.$length(),1),value],$send(this.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$pop",(function(){return this.stack.$pop()}),0),$def(self,"$reset",(function(){return this.stack.$clear()}),0),$def(self,"$top",(function(){return this.stack.$last()}),0)}([$module($base,"Parser")].concat($parent_nesting)[0])},Opal.modules["parser/variables_stack"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("push,empty?,<<,new,pop,clear,last,to_sym,include?"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"VariablesStack"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.stack=nil,$def(self,"$initialize",(function(){return this.stack=[],this.$push()}),0),$def(self,"$empty?",(function(){return this.stack["$empty?"]()}),0),$def(self,"$push",(function(){return this.stack["$<<"]($$("Set").$new())}),0),$def(self,"$pop",(function(){return this.stack.$pop()}),0),$def(self,"$reset",(function(){return this.stack.$clear()}),0),$def(self,"$declare",(function(name){return this.stack.$last()["$<<"](name.$to_sym())}),1),$def(self,"$declared?",(function(name){return this.stack.$last()["$include?"](name.$to_sym())}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/base"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$defs=Opal.defs,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$gvars=Opal.gvars,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$def=Opal.def,$not=Opal.not,$eqeqeq=Opal.eqeqeq,$to_ary=Opal.to_ary,$hash2=Opal.hash2;return Opal.add_stubs("default_parser,setup_source_buffer,default_encoding,parse,parse_with_comments,read,new,all_errors_are_fatal=,diagnostics,-,ignore_warnings=,lambda,puts,render,consumer=,force_encoding,dup,==,name,raw_source=,source=,private_class_method,attr_reader,version,diagnostics=,static_env=,context=,parser=,[],class,reset,source_buffer=,do_parse,comments=,comments,tokens=,!,raise,tokens,private,advance,===,diagnostic,map,process,yyerror,token_to_str"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Base"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.diagnostics=$proto.lexer=$proto.static_env=$proto.context=$proto.builder=$proto.current_arg_stack=$proto.pattern_variables=$proto.pattern_hash_keys=nil,$defs(self,"$parse",(function(string,file,line){var source_buffer,parser=nil;return null==file&&(file="(string)"),null==line&&(line=1),parser=this.$default_parser(),source_buffer=this.$setup_source_buffer(file,line,string,parser.$default_encoding()),parser.$parse(source_buffer)}),-2),$defs(self,"$parse_with_comments",(function(string,file,line){var source_buffer,parser=nil;return null==file&&(file="(string)"),null==line&&(line=1),parser=this.$default_parser(),source_buffer=this.$setup_source_buffer(file,line,string,parser.$default_encoding()),parser.$parse_with_comments(source_buffer)}),-2),$defs(self,"$parse_file",(function(filename){return this.$parse($$("File").$read(filename),filename)}),1),$defs(self,"$parse_file_with_comments",(function(filename){return this.$parse_with_comments($$("File").$read(filename),filename)}),1),$defs(self,"$default_parser",(function(){var parser=nil,$writer=nil;return parser=this.$new(),$writer=[!0],$send(parser.$diagnostics(),"all_errors_are_fatal=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send(parser.$diagnostics(),"ignore_warnings=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$send(this,"lambda",[],(function(diagnostic){return null==$gvars.stderr&&($gvars.stderr=nil),null==diagnostic&&(diagnostic=nil),$gvars.stderr.$puts(diagnostic.$render())}),1)],$send(parser.$diagnostics(),"consumer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],parser}),0),$defs(self,"$setup_source_buffer",(function(file,line,string,encoding){var source_buffer,$writer=nil;return string=string.$dup().$force_encoding(encoding),source_buffer=$$$($$("Source"),"Buffer").$new(file,line),$eqeq(this.$name(),"Parser::Ruby18")?($send(source_buffer,"raw_source=",$to_a($writer=[string])),$writer[$rb_minus($writer.length,1)]):($send(source_buffer,"source=",$to_a($writer=[string])),$writer[$rb_minus($writer.length,1)]),source_buffer}),4),self.$private_class_method("setup_source_buffer"),self.$attr_reader("lexer"),self.$attr_reader("diagnostics"),self.$attr_reader("builder"),self.$attr_reader("static_env"),self.$attr_reader("source_buffer"),self.$attr_reader("context"),self.$attr_reader("max_numparam_stack"),self.$attr_reader("current_arg_stack"),self.$attr_reader("pattern_variables"),self.$attr_reader("pattern_hash_keys"),$def(self,"$initialize",(function(builder){var $writer=nil;return null==builder&&(builder=$$$($$$($$("Parser"),"Builders"),"Default").$new()),this.diagnostics=$$$($$("Diagnostic"),"Engine").$new(),this.static_env=$$("StaticEnvironment").$new(),this.context=$$("Context").$new(),this.max_numparam_stack=$$("MaxNumparamStack").$new(),this.current_arg_stack=$$("CurrentArgStack").$new(),this.pattern_variables=$$("VariablesStack").$new(),this.pattern_hash_keys=$$("VariablesStack").$new(),this.lexer=$$("Lexer").$new(this.$version()),$writer=[this.diagnostics],$send(this.lexer,"diagnostics=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[this.static_env],$send(this.lexer,"static_env=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[this.context],$send(this.lexer,"context=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.builder=builder,$writer=[this],$send(this.builder,"parser=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.last_token=nil,$truthy($$$(this.$class(),"Racc_debug_parser"))&&$truthy($$("ENV")["$[]"]("RACC_DEBUG"))&&(this.yydebug=!0),this.$reset()}),-1),$def(self,"$reset",(function(){return this.source_buffer=nil,this.lexer.$reset(),this.static_env.$reset(),this.context.$reset(),this.current_arg_stack.$reset(),this.pattern_variables.$reset(),this.pattern_hash_keys.$reset(),this}),0),$def(self,"$parse",(function(source_buffer){var self=this,$writer=nil,$ret_or_1=nil;return function(){try{return $writer=[source_buffer],$send(self.lexer,"source_buffer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.source_buffer=source_buffer,$truthy($ret_or_1=self.$do_parse())?$ret_or_1:nil}finally{self.source_buffer=nil,$writer=[nil],$send(self.lexer,"source_buffer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()}),1),$def(self,"$parse_with_comments",(function(source_buffer){var self=this,$writer=nil;return function(){try{return $writer=[[]],$send(self.lexer,"comments=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],[self.$parse(source_buffer),self.lexer.$comments()]}finally{$writer=[nil],$send(self.lexer,"comments=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()}),1),$def(self,"$tokenize",(function(source_buffer,recover){var self=this,$writer=nil,ast=nil;return null==recover&&(recover=!1),function(){try{$writer=[[]],$send(self.lexer,"tokens=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[[]],$send(self.lexer,"comments=",$to_a($writer)),$writer[$rb_minus($writer.length,1)];try{ast=self.$parse(source_buffer)}catch($err){if(!Opal.rescue($err,[$$$($$("Parser"),"SyntaxError")]))throw $err;try{$not(recover)&&self.$raise()}finally{Opal.pop_exception()}}return[ast,self.lexer.$comments(),self.lexer.$tokens()]}finally{$writer=[nil],$send(self.lexer,"tokens=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[nil],$send(self.lexer,"comments=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()}),-2),self.$private(),$def(self,"$next_token",(function(){var token;return token=this.lexer.$advance(),this.last_token=token,token}),0),$def(self,"$check_kwarg_name",(function(name_t){var $ret_or_1;return $eqeqeq(/^[a-z_]/,$ret_or_1=name_t["$[]"](0))?nil:$eqeqeq(/^[A-Z]/,$ret_or_1)?this.$diagnostic("error","argument_const",nil,name_t):nil}),1),$def(self,"$diagnostic",(function(level,reason,arguments$,location_t,highlights_ts){var $a,location,highlights;return null==highlights_ts&&(highlights_ts=[]),$a=$to_ary(location_t),null==$a[0]?nil:$a[0],location=null==$a[1]?nil:$a[1],highlights=$send(highlights_ts,"map",[],(function(token){var $c;return null==token&&(token=nil),$c=$to_ary(token),null==$c[0]?nil:$c[0],null==$c[1]?nil:$c[1]}),1),this.diagnostics.$process($$("Diagnostic").$new(level,reason,arguments$,location,highlights)),$eqeq(level,"error")?this.$yyerror():nil}),-5),$def(self,"$on_error",(function(error_token_id,error_value,value_stack){var $a,token_name,location;return token_name=this.$token_to_str(error_token_id),null==($a=$to_ary(error_value))[0]?nil:$a[0],location=null==$a[1]?nil:$a[1],this.diagnostics.$process($$("Diagnostic").$new("error","unexpected_token",$hash2(["token"],{token:token_name}),location))}),3)}($nesting[0],$$$($$("Racc"),"Parser"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/rewriter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$const_set=Opal.const_set,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation=,-"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Rewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.source_rewriter=nil,$def(self,"$rewrite",(function(source_buffer,ast){return this.source_rewriter=$$$($$("Source"),"Rewriter").$new(source_buffer),this.$process(ast),this.source_rewriter.$process()}),2),$def(self,"$assignment?",(function(node){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](node.$type())}),1),$def(self,"$remove",(function(range){return this.source_rewriter.$remove(range)}),1),$def(self,"$wrap",(function(range,before,after){return this.source_rewriter.$wrap(range,before,after)}),3),$def(self,"$insert_before",(function(range,content){return this.source_rewriter.$insert_before(range,content)}),2),$def(self,"$insert_after",(function(range,content){return this.source_rewriter.$insert_after(range,content)}),2),$def(self,"$replace",(function(range,content){return this.source_rewriter.$replace(range,content)}),2),$const_set($nesting[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),self.$extend($$("Deprecation")),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this,$writer=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),self.$class().$warn_of_deprecation(),$writer=[!0],$send($$$($$("Source"),"Rewriter"),"warned_of_deprecation=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield)}),-1)}($nesting[0],$$$($$$($$("Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/tree_rewriter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$def=(Opal.hash,Opal.def);return Opal.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"TreeRewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.source_rewriter=nil,$def(self,"$rewrite",(function(source_buffer,ast,$kwargs){var policy;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return policy=Opal.kwrestargs($kwargs,{}),this.source_rewriter=$$$($$$($$("Parser"),"Source"),"TreeRewriter").$new(source_buffer,Opal.to_hash(policy)),this.$process(ast),this.source_rewriter.$process()}),-3),$def(self,"$assignment?",(function(node){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](node.$type())}),1),$def(self,"$remove",(function(range){return this.source_rewriter.$remove(range)}),1),$def(self,"$wrap",(function(range,before,after){return this.source_rewriter.$wrap(range,before,after)}),3),$def(self,"$insert_before",(function(range,content){return this.source_rewriter.$insert_before(range,content)}),2),$def(self,"$insert_after",(function(range,content){return this.source_rewriter.$insert_after(range,content)}),2),$def(self,"$replace",(function(range,content){return this.source_rewriter.$replace(range,content)}),2)}($nesting[0],$$$($$$($$("Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)},Opal.modules.parser=function(Opal){var self=Opal.top,$nesting=[],$$=Opal.$r($nesting),$$$=(Opal.nil,Opal.$$$),$truthy=Opal.truthy,$module=Opal.module;return Opal.add_stubs("=~,require,raise"),$truthy($$("RUBY_VERSION")["$=~"](/^1\.[89]\./))&&(self.$require("parser/version"),self.$raise($$("LoadError"),"parser v"+$$$($$("Parser"),"VERSION")+" cannot run on Ruby "+$$("RUBY_VERSION")+".\nPlease upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),self.$require("set"),self.$require("racc/parser"),self.$require("ast"),function($base,$parent_nesting){var self=$module($base,"Parser"),$nesting=[self].concat($parent_nesting);return self.$require("parser/version"),self.$require("parser/messages"),self.$require("parser/deprecation"),function($base){var self=$module($base,"AST");self.$require("parser/ast/node"),self.$require("parser/ast/processor"),self.$require("parser/meta")}($nesting[0]),function($base){var self=$module($base,"Source");self.$require("parser/source/buffer"),self.$require("parser/source/range"),self.$require("parser/source/comment"),self.$require("parser/source/comment/associator"),self.$require("parser/source/rewriter"),self.$require("parser/source/rewriter/action"),self.$require("parser/source/tree_rewriter"),self.$require("parser/source/tree_rewriter/action"),self.$require("parser/source/map"),self.$require("parser/source/map/operator"),self.$require("parser/source/map/collection"),self.$require("parser/source/map/constant"),self.$require("parser/source/map/variable"),self.$require("parser/source/map/keyword"),self.$require("parser/source/map/definition"),self.$require("parser/source/map/method_definition"),self.$require("parser/source/map/send"),self.$require("parser/source/map/index"),self.$require("parser/source/map/condition"),self.$require("parser/source/map/ternary"),self.$require("parser/source/map/for"),self.$require("parser/source/map/rescue_body"),self.$require("parser/source/map/heredoc"),self.$require("parser/source/map/objc_kwarg")}($nesting[0]),self.$require("parser/syntax_error"),self.$require("parser/clobbering_error"),self.$require("parser/diagnostic"),self.$require("parser/diagnostic/engine"),self.$require("parser/static_environment"),self.$require("parser/lexer"),self.$require("parser/lexer/literal"),self.$require("parser/lexer/stack_state"),self.$require("parser/lexer/dedenter"),function($base){$module($base,"Builders").$require("parser/builders/default")}($nesting[0]),self.$require("parser/context"),self.$require("parser/max_numparam_stack"),self.$require("parser/current_arg_stack"),self.$require("parser/variables_stack"),self.$require("parser/base"),self.$require("parser/rewriter"),self.$require("parser/tree_rewriter")}($nesting[0],$nesting)},Opal.modules["parser/ruby31"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy,$not=Opal.not,$hash2=Opal.hash2,$send=Opal.send,$rb_gt=Opal.rb_gt,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$hash=Opal.hash,$const_set=Opal.const_set,$to_ary=Opal.to_ary,$eqeq=Opal.eqeq,$slice=Opal.slice;return Opal.add_stubs("require,end_with?,[],!,include?,diagnostic,extend_static,push,cmdarg,cond,unextend,pop,children,in_dynamic_block?,declared?,static_env,=~,expression,loc,has_ordinary_params?,max_numparam_stack,dup,stack,reverse_each,>,declare,register,to_i,new,each,split,empty?,[]=,-,+,compstmt,<<,preexe,nil?,begin_body,state=,alias,gvar,back_ref,undef_method,condition_mod,loop_mod,rescue_body,postexe,multi_assign,assign,array,op_assign,index,call_method,const_op_assignable,const_fetch,endless_method_name,def_endless_method,local_pop,in_def,in_def=,def_endless_singleton,logical_op,not_op,command_start=,in_kwarg,in_kwarg=,match_pattern,match_pattern_p,local_push,in_argdef=,in_block=,in_block,block,keyword_cmd,multi_lhs,begin,splat,concat,assignable,index_asgn,==,attr_asgn,const_global,const,symbol_internal,range_inclusive,range_exclusive,binary_op,unary_op,match_op,in_defined=,ternary,associate,declared_forward_args?,forwarded_args,block_pass,declared_anonymous_blockarg?,begin_keyword,condition,loop,case,case_match,for,in_class=,def_class,in_class,def_sclass,def_module,def_method,def_singleton,context,in_lambda,arg,restarg,size,procarg0,args,has_ordinary_params!,set,shadowarg,extend_dynamic,in_lambda=,call_lambda,has_numparams?,numargs,top,any?,when,in_pattern,if_guard,unless_guard,match_with_trailing_comma,array_pattern,find_pattern,hash_pattern,match_as,match_alt,const_pattern,match_rest,match_pair,match_label,match_nil_pattern,accessible,match_var,ident,pin,string_compose,dedent_string,dedent_level,string,character,xstring_compose,regexp_options,regexp_compose,words_compose,word,symbols_compose,string_internal,ivar,cvar,symbol,symbol_compose,respond_to?,negate,unary_num,integer,float,rational,complex,nil,self,true,false,__FILE__,__LINE__,__ENCODING__,nth_ref,declare_forward_args,forward_arg,check_kwarg_name,kwoptarg,kwarg,kwnilarg,kwrestarg,optarg,blockarg,declare_anonymous_blockarg,pair,pair_keyword,pair_label,pair_quoted,kwsplat,yyerrok"),self.$require("racc/parser.rb"),self.$require("parser"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var racc_action_table,racc_action_check,racc_action_pointer,racc_action_default,racc_goto_table,racc_goto_check,racc_goto_pointer,racc_goto_default,racc_reduce_table,racc_token_table,self=$klass($base,$super,"Ruby31"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),clist=nil,arr=nil,idx=nil,$proto=self.$$prototype;return $proto.static_env=$proto.lexer=$proto.max_numparam_stack=$proto.context=$proto.current_arg_stack=$proto.builder=$proto.pattern_variables=$proto.last_token=$proto.pattern_hash_keys=nil,$def(self,"$version",(function(){return 31}),0),$def(self,"$default_encoding",(function(){return $$$($$("Encoding"),"UTF_8")}),0),$def(self,"$endless_method_name",(function(name_t){return $not(["===","==","!=","<=",">="]["$include?"](name_t["$[]"](0)))&&$truthy(name_t["$[]"](0)["$end_with?"]("="))?this.$diagnostic("error","endless_setter",nil,name_t):nil}),1),$def(self,"$local_push",(function(){return this.static_env.$extend_static(),this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),this.max_numparam_stack.$push($hash2(["static"],{static:!0}))}),0),$def(self,"$local_pop",(function(){return this.static_env.$unextend(),this.lexer.$cmdarg().$pop(),this.lexer.$cond().$pop(),this.max_numparam_stack.$pop()}),0),$def(self,"$try_declare_numparam",(function(node){var self=this,name=nil,location=nil,raw_max_numparam_stack=nil;return name=node.$children()["$[]"](0),!!($truthy(name["$=~"](/^_[1-9]$/))&&$not(self.$static_env()["$declared?"](name))&&$truthy(self.context["$in_dynamic_block?"]()))&&(location=node.$loc().$expression(),$truthy(self.$max_numparam_stack()["$has_ordinary_params?"]())&&self.$diagnostic("error","ordinary_param_defined",nil,[nil,location]),(raw_max_numparam_stack=self.$max_numparam_stack().$stack().$dup()).$pop(),function(){var $brk=Opal.new_brk();try{$send(raw_max_numparam_stack,"reverse_each",[],(function $$1(outer_scope){var self=null==$$1.$$s?this:$$1.$$s,outer_scope_has_numparams=nil;if(null==outer_scope&&(outer_scope=nil),!$truthy(outer_scope["$[]"]("static")))return outer_scope_has_numparams=$rb_gt(outer_scope["$[]"]("value"),0),$truthy(outer_scope_has_numparams)?self.$diagnostic("error","numparam_used_in_outer_scope",nil,[nil,location]):nil;Opal.brk(nil,$brk)}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),self.$static_env().$declare(name),self.$max_numparam_stack().$register(name["$[]"](1).$to_i()),!0)}),1),clist=["-320,600,620,-119,1214,-121,-118,-320,-320,-320,221,222,1124,-320,-320","-624,-320,239,620,-123,620,925,-624,-110,-320,-732,237,428,-124,311","122,-122,430,429,717,311,-320,-320,620,-320,-320,-320,-320,-320,-116","-117,-124,620,620,-116,1001,828,718,627,892,925,627,126,240,-732,-123","833,125,-117,240,240,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320","-320,-320,-320,-320,-624,-123,-320,-320,-320,-124,687,-320,-119,-110","-320,-121,-120,-320,1125,240,-720,135,-320,306,-320,-511,-320,-320,240","-320,-320,-320,-320,-320,-320,-320,-110,-320,-112,-109,310,-320,-320","-320,126,-120,310,-320,-320,125,-320,-320,-114,-110,-320,-320,-110,-113","-320,-320,126,-115,126,990,-113,125,-320,125,-110,-122,-320,-320,-122","-320,-320,-320,-320,-320,-118,126,126,-719,-107,1000,125,125,-116,-117","-124,126,126,-116,-117,-124,125,125,-108,221,222,218,-320,-320,-320","-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,221,222,-320","-320,-320,311,687,-320,-719,-123,-320,-111,661,-320,-123,648,-119,925","-320,-121,-320,-119,-320,-320,-121,-320,-320,-320,-320,-320,233,-320","-723,-320,-628,-720,-629,221,222,-723,-723,-723,104,105,-723,-723,-723","-320,-723,-120,-320,-320,-102,-320,-120,-320,-723,-723,-723,-723,-723","663,-320,924,-88,-122,219,-112,-723,-723,522,-723,-723,-723,-723,-723","-122,240,660,650,649,-122,-118,-111,-109,220,-744,-118,311,648,233,223","310,-116,240,-117,1063,300,-723,-723,-723,-723,-723,-723,-723,-723,-723","-723,-723,-723,-723,-723,233,682,-723,-723,-723,648,921,-723,106,107","-723,104,105,-723,-723,662,-723,-124,-723,126,-723,-112,-723,-723,125","-723,-723,-723,-723,-723,361,-723,-723,-723,-744,683,-719,-111,-109","648,306,650,649,646,648,362,648,-723,-110,648,-723,-723,-723,-723,240","-723,-744,-723,800,-320,-119,-112,-723,310,-112,-120,-320,-320,-320","650,649,-320,-320,-320,892,-320,-112,-111,-109,859,-111,-109,-112,-320","833,-320,-320,-320,875,106,107,919,-111,-109,-121,-320,-320,431,-320","-320,-320,-320,-320,650,649,646,949,471,650,649,650,649,655,650,649","653,920,1035,861,633,1063,233,-732,634,948,-320,-320,-320,-320,-320","-320,-320,-320,-320,-320,-320,-320,-320,-320,240,-629,-320,-320,-320","648,922,-320,-118,-635,-320,-119,-625,-320,-320,648,-320,-617,-320,-625","-320,510,-320,-320,-617,-320,-320,-320,-320,-320,683,-320,682,-320,507","506,-121,-118,-744,491,648,488,487,486,496,489,521,-320,-108,-623,-320","-320,-320,-320,499,-320,-623,-320,126,-723,-117,612,-320,125,614,-122","-723,-723,-723,650,649,651,-723,-723,633,-723,494,-625,960,650,649,664","-617,-723,-723,504,503,507,506,-121,633,-119,500,523,960,-723,-723,524","-723,-723,-723,-723,-723,239,650,649,659,491,-321,488,487,486,496,489","-623,-321,600,491,240,488,487,486,499,489,-321,-723,-723,-723,-723,-723","-723,-723,-723,-723,-723,-723,-723,-723,-723,558,-628,-723,-723,-723","494,688,-723,570,126,-723,648,572,-723,125,710,507,506,-723,574,-723","500,-723,-723,-114,-723,-723,-723,-723,-723,-614,-723,-723,-723,-321","126,-123,-614,-614,-614,125,135,-614,-614,-614,-614,-614,-723,-107,-87","-723,-723,-614,-723,-614,-723,-614,-614,-614,931,-116,485,-723,240,927","-120,-614,-614,928,-614,-614,-614,-614,-614,585,650,649,646,586,-311","227,-620,-621,227,950,951,-311,304,-620,-621,304,612,593,237,611,-311","-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614","-614,227,-614,-614,-614,227,-614,-614,592,315,-614,240,1188,-614,-614","233,-614,590,-614,126,-614,638,-614,-614,125,-614,-614,-614,-614,-614","-115,-614,-617,-614,-311,228,-620,-621,228,-617,-617,-617,-124,233,-617","-617,-617,-614,-617,306,-614,-614,-614,-614,597,-614,-617,-614,-617","-617,-617,612,-614,603,614,-614,228,264,-617,-617,228,-617,-617,-617","-617,-617,606,227,240,227,615,-356,-619,-622,675,616,636,574,-356,-619","-622,612,627,673,614,638,420,-356,-617,-617,-617,-617,-617,-617,-617","-617,-617,-617,-617,-617,-617,-617,631,754,-617,-617,-617,227,-617,-617","1149,1150,-617,499,630,-617,-617,632,-617,875,-617,640,-617,628,-617","-617,665,-617,-617,-617,-617,-617,228,-617,228,-617,-356,-619,-622,668","227,669,954,240,958,957,1197,1188,959,-617,-293,500,-617,-617,-617,-617","638,-617,671,-617,672,-723,676,1056,-617,240,-109,-617,-723,-723,-723","496,228,680,-723,-723,-320,-723,-118,956,264,499,681,-320,306,-723,-723","694,-720,985,892,695,-320,114,113,115,116,-723,-723,240,-723,-723,-723","-723,-723,228,221,222,697,118,117,119,261,700,507,506,263,262,701,500","703,264,104,105,221,222,358,-723,-723,-723,-723,-723,-723,-723,-723","-723,-723,-723,-723,-723,-723,-320,705,-723,-723,-723,-385,688,-723","227,719,-723,720,261,-723,227,1164,263,262,-723,724,-723,226,-723,-723","1162,-723,-723,-723,-723,-723,224,-723,-723,-723,726,102,90,93,94,732","95,97,96,98,754,985,892,-723,91,101,-723,-723,90,-111,499,-723,85,733","92,106,107,264,-723,264,91,-120,333,81,82,83,11,65,264,228,92,71,72","264,240,228,75,-723,73,74,76,35,36,79,80,788,240,240,500,240,84,33,32","114,113,115,116,-102,803,23,1056,240,606,281,282,10,53,335,12,118,117","119,108,64,110,109,111,814,112,120,121,-320,104,105,49,50,48,-321,-320","-723,819,-626,240,-720,-321,821,-723,-320,-626,280,279,-719,824,-321","829,-723,45,-626,830,38,834,858,66,67,227,862,68,863,40,-294,876,602","52,491,-723,488,487,486,558,489,520,24,558,888,892,910,102,90,93,94","913,95,97,96,98,914,-320,240,917,91,101,240,-321,926,-723,943,-626,85","944,92,106,107,945,962,46,47,333,81,82,83,11,65,964,300,970,71,72,972","974,228,75,-716,73,74,76,35,36,79,80,572,574,496,814,240,84,33,32,114","113,115,116,499,1159,23,488,487,486,306,489,10,53,335,12,118,117,119","108,64,110,109,111,306,112,120,121,227,104,105,49,50,48,-627,519,-614","507,506,814,264,-627,500,-614,520,892,987,988,-716,240,-627,240,-614","45,998,240,38,-295,240,66,67,1009,1013,68,1159,40,488,487,486,52,489","-716,-293,491,1017,488,487,486,24,489,700,718,1020,102,90,93,94,1022","95,97,96,98,1024,228,1026,1026,91,101,240,-627,774,-614,240,240,85,1054","92,106,107,1057,710,46,47,333,81,82,83,11,65,714,853,854,71,72,855,120","121,75,-717,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32,114,113","115,116,925,491,23,488,487,486,972,489,10,53,335,12,118,117,119,108","64,110,109,111,1069,112,120,121,240,104,105,49,50,48,814,491,-617,488","487,486,1086,489,710,-617,1088,1093,1094,1099,-717,1100,1101,714,-617","45,-296,1114,38,1115,1116,66,67,240,240,68,240,40,240,240,240,52,925","-717,710,491,1123,488,487,486,24,489,240,714,1129,102,90,93,94,1130","95,97,96,98,1132,700,1135,1138,91,101,1140,1142,240,-617,-385,1154,85","1165,92,106,107,1166,710,46,47,333,81,82,83,11,65,1026,1026,1026,71","72,1173,1186,1189,75,1194,73,74,76,35,36,79,80,256,1195,694,1115,1205","84,33,32,114,113,115,116,1205,700,23,129,130,131,132,133,10,53,335,12","118,117,119,108,64,110,109,111,1208,112,120,121,1210,104,105,49,50,48","264,268,269,270,271,281,282,276,277,272,273,1212,257,258,1214,1214,274","275,240,45,1026,255,38,1205,-720,66,67,-719,1231,68,1214,40,261,1214","267,52,263,262,1214,259,260,280,279,265,24,266,3,,,102,90,93,94,,95","97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32","114,113,115,116,,,23,,,,,677,10,53,335,12,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277","272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263","262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,278,,-265,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72",",,,75,,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32,114,113,115","116,,,23,,,,,889,10,53,335,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257","258,,,274,275,,45,,,337,,,66,67,,,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,","85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35","36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,677,10,53,335,12,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269","270,271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,337,,,66,67",",,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,918,10,53,335,12,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273",",257,258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259","260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278",",,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74","76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12","118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268","269,270,271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66","67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81","82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257","258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,","85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35","36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270","271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68",",40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,7,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258,,","274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279","265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,240,278,,,,,85,,92","106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79","80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271","281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258",",,274,275,,45,,,337,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280","279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,","92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271","281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258",",,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280","279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,","92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271","281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745,-745",",,274,275,,45,,,38,,,66,67,,264,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,261,,91,101,263,262",",259,260,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,","73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,264,491,23,488,487","486,,489,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,264,,261,,,,263,262,710,259,260,,,,,,274,275,,45,,,38,",",66,67,,,68,,40,261,,267,52,263,262,,259,260,,,265,24,266,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745","-745,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85",",92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271","281,282,276,277,272,273,,-745,-745,,,274,275,,45,,,38,,,66,67,,,68,","40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,","95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,,,265,24,266,,,,102,90,93,94,,95,97,96","98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71","72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,",",,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,264,268,269,270,271,281,282,276,,272,273,,,,,,274,275,,45,",",38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47","7,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,264,268,269,270,271,281,282,,,272,273",",,,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85",",92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,-745,-745,-745","-745,281,282,,,-745,-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40,261",",267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95,97,96","98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71","72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,",",,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274,275,,45",",,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47","333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745","-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259","260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,",",85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76","35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,-745,-745","-745,-745,281,282,,,-745,-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65",",,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,",",23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274,275",",45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24","266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106","107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113","115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274","275,,245,,,253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,280,279,265","250,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745","-745,,,274,275,,245,,,253,,,66,67,,,68,,,261,,267,52,263,262,,259,260","280,279,265,250,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,245,",",253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,,,,250,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47",",75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,",",,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,264,,,,,,,,,,,,,,,,274,275,,245,,,253,,,66,67,,,68,,,261,,,52,263","262,,259,260,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,245,",",253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,,,,250,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,",",,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79","80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,","254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,436,,,,52,,,,,,",",,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79","80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35","36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,,,,85,,92,106,107,-441,,46,47,,,,-441,-441,-441",",,-441,-441,-441,,-441,,,,,,,,-441,-441,-441,-441,,,,,,,,,-441,-441",",-441,-441,-441,-441,-441,,,,,,,,,,,,,,,,,,,,,,,-441,-441,-441,-441","-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,,,-441,-441,-441,",",-441,,306,-441,,,-441,-441,,-441,,-441,,-441,,-441,-441,,-441,-441","-441,-441,-441,,-441,-441,-441,,,,,,,,,,,,,,-441,,,-441,-441,,-441,","-441,81,82,83,,65,,-441,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,","81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,",",84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,",",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,",",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,",",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-327,,46,47,,,,-327","-327,-327,,,-327,-327,-327,,-327,,,,,,,,-327,,-327,-327,,,,,,,,,-327","-327,,-327,-327,-327,-327,-327,,,,,,,,,,,,,,,,,,,,,,,-327,-327,-327","-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,,,-327,-327,-327",",,-327,,315,-327,,,-327,-327,,-327,,-327,,-327,,-327,-327,,-327,-327","-327,-327,-327,,-327,,-327,,,,,,,,,,,,,,-327,,,-327,-327,,-327,,-327","81,82,83,,65,,-327,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355","79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,","245,,,253,,,66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,",",52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,797,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,",",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,",",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,867,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,",",52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355","79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35","36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,",",,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,",",,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,",",,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,",",,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76","354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,",",,,,,245,,,253,,,66,67,,,68,,324,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,",",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47",",75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,",",,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49","50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,328,,,,,,250",",,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121",",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,797,,,","52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,240,,,81","82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,","84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,",",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47",",75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49","50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328",",,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106","107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,",",84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38",",,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,","91,101,,,,,,420,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,","73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53",",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,",",,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121",",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,322,","52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,",",66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76","354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,",",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,",",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,",",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46","47,,,,-275,-275,-275,,,-275,-275,-275,491,-275,488,487,486,496,489,",",-275,-275,-275,,,,499,,,,,,-275,-275,,-275,-275,-275,-275,-275,,491",",488,487,486,496,489,494,,,,,,,,499,504,503,507,506,,,,500,,491,,488","487,486,496,489,-275,,,,,494,,-275,499,,,,306,-275,504,503,507,506,",",,500,,,,,,,,,494,485,,,,-275,-275,,,,,507,506,,,,500,,,,-275,,,-275",",81,82,83,-275,65,,485,,71,72,-275,,,75,,73,74,76,354,355,79,80,,,,",",84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79","80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,",",,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121",",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52",",,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,",",,,,245,,,253,,,66,67,,,68,,324,,,,52,,,328,,,,,,250,,,,,102,325,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,",",,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52",",,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,",",,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,",",,,,245,,,253,,,66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","560,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49","50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328",",,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,46,560,,75,,73,74,76,354,355,79,80,,,,,,84,349,357","114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,",",,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76","35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,",",,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325","93,94,,95,97,96,98,,,,,91,101,240,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,","254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,",",,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79","80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,","254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,",",,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74","76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,,12,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,",",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47",",75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53",",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,",",,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,",",,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48",",,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,",",,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47","81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114","113,115,116,,,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40",",,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,420,85",",92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80",",,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76","35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-725,,46,47,,,,-725,-725","-725,,,-725,-725,-725,,-725,,,,,,,,-725,-725,-725,-725,-725,,,,,,,,-725","-725,,-725,-725,-725,-725,-725,,,,,,,,,,,,,,,,,,,,,,,-725,-725,-725","-725,-725,-725,-725,-725,-725,-725,-725,-725,-725,-725,,,-725,-725,-725",",,-725,,,-725,,,-725,-725,,-725,,-725,,-725,,-725,-725,,-725,-725,-725","-725,-725,,-725,-725,-725,,,,,,,,,,,,,,-725,,,-725,-725,-725,-725,,-725","-724,-725,,,,,-725,-724,-724,-724,,,-724,-724,-724,,-724,,,,,,,,-724","-724,-724,-724,-724,,,,114,113,115,116,-724,-724,,-724,-724,-724,-724","-724,,,,,118,117,119,,,,,,,,,,,104,105,,,358,-724,-724,-724,-724,-724","-724,-724,-724,-724,-724,-724,-724,-724,-724,,,-724,-724,-724,,,-724",",,-724,,,-724,-724,,-724,,-724,,-724,,-724,-724,,-724,-724,-724,-724","-724,,-724,-724,-724,,102,90,93,94,,95,97,96,98,,,,-724,91,101,-724","-724,-724,-724,,-724,85,-724,92,106,107,-275,-724,81,82,83,11,65,-275","-275,-275,71,72,-275,-275,-275,75,-275,73,74,76,35,36,79,80,-275,-275","-275,-275,,84,33,32,114,113,115,116,-275,-275,23,-275,-275,-275,-275","-275,10,53,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275","-275,-275,,,-275,-275,-275,45,,-275,38,306,-275,66,67,-275,-275,68,-275","40,-275,,-275,52,-275,-275,,-275,-275,-275,-275,-275,24,-275,-275,-275",",102,90,93,94,,95,97,96,98,,,,-275,91,101,-275,-275,,-275,,-275,85,","92,106,107,,-275,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79","80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,",",,91,101,126,,,,,125,85,,92,106,107,-312,,46,47,,,,-312,-312,-312,,","-312,-312,-312,,-312,,,,,,,,-312,,-312,-312,-312,,,,,,,,-312,-312,,-312","-312,-312,-312,-312,,,,,,,,,,,,,,,,,,,,,,,-312,-312,-312,-312,-312,-312","-312,-312,-312,-312,-312,-312,-312,-312,,,-312,-312,-312,,,-312,,,-312",",,-312,-312,,-312,,-312,,-312,,-312,-312,,-312,-312,-312,-312,-312,","-312,,-312,,,,,,,,,,,,,,-312,,,-312,-312,-312,-312,,-312,,-312,,81,82","83,-312,65,,,,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,436,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,",",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,",",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,",",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52",",,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",436,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81","82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84","33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1107,,,253",",,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,",",,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1146,,,253,,","66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,",",,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,",",84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,253,,,66","67,,,68,,,491,,488,487,486,496,489,,,,,,,,,499,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,588,,494,85,,92,106,107,81,82,83,,65,507,506,,71","72,500,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105",",,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72",",,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,358",",,,,,,,,,,,,,,,,,,,346,,,253,,,66,67,,,68,,,491,,488,487,486,496,489",",,,,,,,,499,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,360,,494,85,,92","106,107,81,82,83,,65,507,506,,71,72,500,,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342",",,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,",",,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66","67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81","82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1146,,,253,,,66,67,,","68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,400,64,110,109,401",",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,407,,,402,,,253,,,66,67",",,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68",",,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357","114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,,",",,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85","65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,341,,",",,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113","115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,,,358,,,,,,,,,,,,,,,,,,,,395,,,38,,,66,67,,,68,,40,,,,,,,,",",,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106","107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,350,,,118,117,119,400,64,110,109,401,,112,120,121,,104","105,,,358,,,,,,,,,,,,,,,,,,,,402,,,253,,,66,67,,,68,,,,,,,,,,,,,,,,",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,185,196","186,209,182,202,192,191,212,213,207,190,189,184,210,214,215,194,183","197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,","180,187,178,179,175,176,177,138,140,137,,139,,,,,,,,169,170,,166,148","149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162",",147,168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,,,,,",",,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189,184,210","214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193,181","200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169,170",",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,",",,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174,102",",,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189","184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208","193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,",",,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159",",,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146",",,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207","190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205","198,208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139",",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167","146,,,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213","207,190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206","294,293,295,292,181,200,199,,,,,,180,187,178,179,289,290,291,287,140","110,109,288,,112,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152",",,,171,172,158,159,,,,,,299,,,,,,,,163,162,,147,168,165,164,173,160","161,155,153,145,167,146,,,174,114,113,115,116,,,,,,491,,488,487,486","496,489,118,117,119,774,,,,777,499,,,,,104,105,,,358,,,,,,,,,,,,,494",",,,,,,776,,,747,507,506,,745,,500,746,,,,,,,,,,,,,,,,775,,,,102,90,93","94,,95,97,96,98,,,,,91,101,114,113,115,116,485,,85,,92,106,107,,,762","763,,118,117,119,774,,,491,777,488,487,486,496,489,104,105,,,358,,,","499,,,,,,,,,,,,,,,,776,,,747,,,494,745,,,746,,,,,504,503,507,506,,,","500,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,",",85,,92,106,107,,,762,763,,118,117,119,774,,,491,777,488,487,486,496","489,104,105,,,358,,,,499,,,,,,,,,,,,,,,,776,,,747,,,494,745,,,746,,749",",,504,503,507,506,,,,500,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91","101,114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,,777","754,,,,,104,105,,,358,499,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,","749,,,,,,,500,,,,,,,775,,,,102,755,93,94,,95,97,96,98,,,,,91,101,114","113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,491,777,488","487,486,496,489,104,105,,,358,,,,499,,,,,,,,,,,,,,,,776,,,747,,,494","745,,,746,,,,,504,503,507,506,,,,500,,,,775,,,,102,90,93,94,,95,97,96","98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119","774,,,491,777,488,487,486,496,489,104,105,,,358,,,,499,,,,,,,,,,,,,",",,776,,,747,,,494,745,,,746,,749,,,,,507,506,,,,500,,,,775,,,,102,90","93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762","763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776",",,747,,,,745,,,746,,749,,,,,,,491,,488,487,486,496,489,775,,,,102,90","93,94,499,95,97,96,98,,,,,91,101,240,114,113,115,116,,85,,92,106,107","494,,762,763,,,118,117,119,774,,507,506,777,,,500,,,104,105,,,358,,",",,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,485,,,,,,,,,,,,,775,,,,102","90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,","762,763,,118,117,119,774,,,,777,754,,,,,104,105,,,358,499,,,,,,,,,,",",,,,,,,,776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775,,,,102,755,93","94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763",",118,117,119,774,,,,777,754,,,,,104,105,,,358,499,,,,,,,,,,,,,,,,,,","776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775,,,,102,755,93,94,,95","97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,762,763,185,196,186,209,182","202,192,191,212,213,207,190,189,184,210,214,215,194,183,197,201,203","195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,,180,187,178","179,175,176,177,138,140,,,139,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162,,147,168,165,164","173,160,161,155,153,145,167,146,,,174,114,113,115,116,,,491,,488,487","486,496,489,,,,118,117,119,774,,499,,777,754,,,,,104,105,,,358,499,",",,,,,,,494,,,,,,,,,,776,507,506,747,,,500,745,,,746,,749,,,,,,,500,",",,,,,775,,,,102,755,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,","85,,92,106,107,,,762,763,,118,117,119,774,,,,777,754,,,,,104,105,,,358","499,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775",",,,102,755,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106","107,,,762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,",",,,,,,,,776,,,747,,,,745,,,746,,,,,,,,,,,,,,,,775,,,,102,90,93,94,,95","97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763,,118","117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776,,,747,",",,745,,,746,,,,,,,,,,,,,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101","114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,,777,",",,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,,,,,,",",,,,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,",",85,,92,106,107,,,762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358",",,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,,,,,,,,,,,,,,775,,,,102","90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,","762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,114,113,115","116,,,,,,,,,776,,,747,118,117,119,745,,,746,,1053,,,,,104,105,,,358",",,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107",",,762,763,491,,488,487,486,496,489,,,,,102,90,93,94,499,95,97,96,98",",,,,91,101,114,113,115,116,,,85,,92,106,107,494,,,,,118,117,119,,504","503,507,506,,,,500,,104,105,,,358,,,,,,,,,,,,491,,488,487,486,496,489",",,,,,,,,499,,,,,,491,485,488,487,486,496,489,,,,,,,,,499,494,102,90","93,94,,95,97,96,98,,507,506,,91,101,500,,,,,494,85,,92,106,107,,,,504","503,507,506,,,491,500,488,487,486,496,489,,491,,488,487,486,496,489","499,,,,,485,,,499,,491,,488,487,486,496,489,,,,,,494,644,,499,485,,",",494,504,503,507,506,,,,500,504,503,507,506,,,,500,494,,,,,,,,,504,503","507,506,,,491,500,488,487,486,496,489,,,,,,,,,499,485,,,,,,,,485,,,",",,,,,,,,,494,,,,485,,,,,,,507,506,872,469,,500,871,,,,,,,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,485",",,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,842,469,174",",843,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172","158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153","145,167,146,837,462,174,,838,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165","164,173,160,161,155,153,145,167,146,465,469,174,,464,,,,,,,,169,170",",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,",",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,729,469","174,,730,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171","172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155","153,145,167,146,556,462,174,,557,,,,,,,,169,170,,166,148,149,150,157","154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168","165,164,173,160,161,155,153,145,167,146,458,462,174,,459,,,,,,,,169","170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306",",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,556","462,174,,557,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,",",,171,172,158,159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161","155,153,145,167,146,729,469,174,,730,,,,,,,,169,170,,166,148,149,150","157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147","168,165,164,173,160,161,155,153,145,167,146,727,462,174,,728,,,,,,,","169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,",",,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146","807,462,174,,808,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152",",,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160","161,155,153,145,167,146,810,469,174,,811,,,,,,,,169,170,,166,148,149","150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162",",147,168,165,164,173,160,161,155,153,145,167,146,1200,462,174,,1201",",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145","167,146,869,462,174,,870,,,,,,,,169,170,,166,148,149,150,157,154,156",",,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164","173,160,161,155,153,145,167,146,1202,469,174,,1203,,,,,,,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,",",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,839,469,174",",840,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172","158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153","145,167,146,1218,469,174,,1217,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165","164,173,160,161,155,153,145,167,146,727,462,174,,728,,,,,,,,169,170",",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,",",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174"],racc_action_table=arr=$$$("Array").$new(28717,nil),idx=0,$send(clist,"each",[],(function(str){return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(function(i){var $writer=nil;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),idx=$rb_plus(idx,1)}),1)}),1),clist=["464,521,1016,837,1236,838,992,464,464,464,515,515,1053,464,464,289,464","23,835,631,1087,1058,289,807,464,927,443,137,396,785,3,840,137,137,501","31,464,464,1089,464,464,464,464,464,1104,1105,1108,384,385,392,850,622","501,625,1092,932,1092,331,23,928,521,625,331,393,1058,927,464,464,464","464,464,464,464,464,464,464,464,464,464,464,289,1165,464,464,464,443","464,464,1200,807,464,1201,839,464,1053,928,840,9,464,31,464,932,464","464,515,464,464,464,464,464,871,464,837,464,838,992,785,871,871,871","1016,1202,31,871,871,1016,871,464,631,807,464,464,807,464,871,464,835","396,1087,835,840,835,464,1087,807,464,871,871,1203,871,871,871,871,871","1222,622,1089,839,392,850,622,1089,1104,1105,1108,384,385,1104,1105","1108,384,385,393,981,981,12,871,871,871,871,871,871,871,871,871,871","871,871,871,871,553,553,871,871,871,69,871,871,1202,1165,871,839,416","871,1165,1127,1200,735,871,1201,871,1200,871,871,1201,871,871,871,871","871,251,871,729,871,243,1203,244,641,641,729,729,729,358,358,729,729","729,871,729,1202,871,871,802,871,1202,871,729,729,729,729,729,417,871","735,802,871,14,808,729,729,246,729,729,729,729,729,1203,981,416,1127","1127,1203,1222,810,979,15,251,1222,351,576,252,17,69,243,553,244,1127","27,729,729,729,729,729,729,729,729,729,729,729,729,729,729,20,458,729","729,729,656,729,729,358,358,729,48,48,729,729,417,729,246,729,641,729","808,729,729,641,729,729,729,729,729,42,729,729,729,252,459,810,810,979","947,351,576,576,576,658,45,414,729,458,413,729,729,729,729,53,729,20","729,576,730,458,808,729,351,808,729,730,730,730,656,656,730,730,730","1220,730,808,810,979,656,810,979,459,730,1220,730,730,730,1006,48,48","727,810,979,459,730,730,216,730,730,730,730,730,947,947,947,756,229","658,658,414,414,414,413,413,413,728,923,658,402,947,19,746,402,756,730","730,730,730,730,730,730,730,730,730,730,730,730,730,746,44,730,730,730","412,730,730,1006,231,730,727,291,730,730,418,730,288,730,291,730,235","730,730,288,730,730,730,730,730,870,730,869,730,700,700,728,923,19,972","415,972,972,972,972,972,245,730,44,290,730,730,730,730,972,730,290,730","996,872,44,822,730,996,822,730,872,872,872,412,412,412,872,872,776,872","972,291,776,418,418,418,288,872,872,972,972,972,972,870,931,869,972","247,931,872,872,248,872,872,872,872,872,254,415,415,415,1022,634,1022","1022,1022,1022,1022,290,634,362,914,972,914,914,914,1022,914,634,872","872,872,872,872,872,872,872,872,872,872,872,872,872,305,43,872,872,872","1022,872,872,319,389,872,411,320,872,389,914,1022,1022,872,323,872,1022","872,872,362,872,872,872,872,872,108,872,872,872,634,5,362,108,108,108","5,335,108,108,108,287,108,872,43,336,872,872,287,872,108,872,108,108","108,744,43,1022,872,338,744,872,108,108,744,108,108,108,108,108,339","411,411,411,340,347,286,294,295,29,759,759,347,286,294,295,29,376,346","21,376,347,108,108,108,108,108,108,108,108,108,108,108,108,108,108,287","345,108,108,108,1187,108,108,345,349,108,350,1187,108,108,352,108,345","108,509,108,1187,108,108,509,108,108,108,108,108,21,108,111,108,347","286,294,295,29,111,111,111,21,353,111,111,111,108,111,357,108,108,108","108,359,108,111,108,111,111,111,377,108,366,377,108,345,368,111,111","1187,111,111,111,111,111,371,442,374,404,378,54,293,292,442,379,404","381,54,293,292,380,390,442,380,404,391,54,111,111,111,111,111,111,111","111,111,111,111,111,111,111,395,939,111,111,111,394,111,111,1090,1090","111,939,394,111,111,397,111,678,111,406,111,394,111,111,426,111,111","111,111,111,442,111,404,111,54,293,292,432,1145,434,775,1157,775,775","1157,1145,775,111,435,939,111,111,111,111,1145,111,437,111,440,465,444","939,111,454,678,111,465,465,465,1132,394,456,465,465,811,465,678,775","531,1132,457,811,466,465,465,472,811,823,823,473,811,762,762,762,762","465,465,476,465,465,465,465,465,1145,383,383,477,762,762,762,531,478","1132,1132,531,531,481,1132,482,532,762,762,16,16,762,465,465,465,465","465,465,465,465,465,465,465,465,465,465,811,483,465,465,465,493,465","465,1106,505,465,508,532,465,18,1106,532,532,465,511,465,18,465,465","1106,465,465,465,465,465,18,465,465,465,517,762,762,762,762,525,762","762,762,762,945,1190,1190,465,762,762,465,465,88,465,945,465,762,526","762,762,762,533,465,534,88,465,387,387,387,387,387,387,535,1106,88,387","387,536,561,18,387,842,387,387,387,387,387,387,387,562,563,567,945,583","387,387,387,387,387,387,387,584,587,387,945,589,594,51,51,387,387,387","387,387,387,387,387,387,387,387,387,598,387,387,387,843,387,387,387","387,387,593,843,842,607,343,608,843,593,609,842,843,343,51,51,842,619","593,623,842,387,343,624,387,626,653,387,387,363,661,387,663,387,670","679,363,387,714,842,714,714,714,684,714,363,387,689,691,693,707,387","387,387,387,712,387,387,387,387,713,843,715,722,387,387,731,593,740","842,748,343,387,749,387,387,387,750,779,387,387,841,841,841,841,841","841,782,784,790,841,841,791,792,363,841,400,841,841,841,841,841,841","841,794,796,697,804,806,841,841,841,841,841,841,841,697,1099,841,1099","1099,1099,809,1099,841,841,841,841,841,841,841,841,841,841,841,841,812","841,841,841,242,841,841,841,841,841,344,242,400,697,697,813,816,344","697,400,242,825,831,832,400,836,344,845,400,841,849,851,841,866,868","841,841,877,890,841,1197,841,1197,1197,1197,841,1197,400,893,913,894","913,913,913,841,913,897,899,902,841,841,841,841,903,841,841,841,841","905,242,906,908,841,841,912,344,925,400,933,934,841,938,841,841,841","941,913,841,841,236,236,236,236,236,236,913,649,649,236,236,649,649","649,236,401,236,236,236,236,236,236,236,8,8,8,8,8,236,236,236,236,236","236,236,946,494,236,494,494,494,965,494,236,236,236,236,236,236,236","236,236,236,236,236,968,236,236,236,969,236,236,236,236,236,978,710","401,710,710,710,983,710,494,401,986,993,995,1002,401,1003,1004,494,401","236,1005,1031,236,1032,1037,236,236,1042,1043,236,1044,236,1045,1046","1047,236,1051,401,710,1114,1052,1114,1114,1114,236,1114,1055,710,1059","236,236,236,236,1066,236,236,236,236,1071,1072,1074,1075,236,236,1076","1078,1079,401,1080,1096,236,1107,236,236,236,1110,1114,236,236,1103","1103,1103,1103,1103,1103,1111,1112,1113,1103,1103,1124,1143,1146,1103","1155,1103,1103,1103,1103,1103,1103,1103,25,1156,1161,1171,1172,1103","1103,1103,1103,1103,1103,1103,1174,1177,1103,581,581,581,581,581,1103","1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1180,1103,1103","1103,1181,1103,1103,1103,1103,1103,25,25,25,25,25,25,25,25,25,25,25","1182,25,25,1183,1185,25,25,1199,1103,1204,25,1103,1206,1217,1103,1103","1218,1224,1103,1225,1103,25,1226,25,1103,25,25,1227,25,25,25,25,25,1103","25,1,,,1103,1103,1103,1103,,1103,1103,1103,1103,,,,,1103,1103,,25,,",",,1103,,1103,1103,1103,,,1103,1103,997,997,997,997,997,997,,,,997,997",",,,997,,997,997,997,997,997,997,997,373,373,373,373,373,997,997,997","997,997,997,997,,,997,,,,,447,997,997,997,997,997,997,997,997,997,997","997,997,,997,997,997,,997,997,997,997,997,447,447,447,447,447,447,447","447,447,447,447,,447,447,,,447,447,,997,,,997,,,997,997,,,997,,997,447",",447,997,447,447,,447,447,447,447,447,997,447,,,,997,997,997,997,,997","997,997,997,,,,,997,997,,447,,447,,,997,,997,997,997,,,997,997,337,337","337,337,337,337,,,,337,337,,,,337,,337,337,337,337,337,337,337,334,334","334,334,334,337,337,337,337,337,337,337,,,337,,,,,692,337,337,337,337","337,337,337,337,337,337,337,337,,337,337,337,,337,337,337,337,337,692","692,692,692,692,692,692,692,692,692,692,,692,692,,,692,692,,337,,,337",",,337,337,,,337,,337,692,,692,337,692,692,,692,692,692,692,692,337,692",",,,337,337,337,337,,337,337,337,337,,,,,337,337,,692,,,,,337,,337,337","337,,,337,337,38,38,38,38,38,38,,,,38,38,,,,38,,38,38,38,38,38,38,38",",,,,,38,38,38,38,38,38,38,,,38,,,,,453,38,38,38,38,38,38,38,38,38,38","38,38,,38,38,38,,38,38,38,38,38,453,453,453,453,453,453,453,453,453","453,453,,453,453,,,453,453,,38,,,38,,,38,38,,,38,,38,453,,453,38,453","453,,453,453,453,453,453,38,453,,,,38,38,38,38,,38,38,38,38,,,,,38,38",",453,,,,,38,,38,38,38,,,38,38,642,642,642,642,642,642,,,,642,642,,,","642,,642,642,642,642,642,642,642,,,,,,642,642,642,642,642,642,642,,","642,,,,,723,642,642,642,642,642,642,642,642,642,642,642,642,,642,642","642,,642,642,642,642,642,723,723,723,723,723,723,723,723,723,723,723",",723,723,,,723,723,,642,,,642,,,642,642,,,642,,642,723,,723,642,723","723,,723,723,723,723,723,642,723,,,,642,642,642,642,,642,642,642,642",",,,,642,642,,723,,,,,642,,642,642,642,,,642,642,1068,1068,1068,1068","1068,1068,,,,1068,1068,,,,1068,,1068,1068,1068,1068,1068,1068,1068,",",,,,1068,1068,1068,1068,1068,1068,1068,,,1068,,,,,,1068,1068,1068,1068","1068,1068,1068,1068,1068,1068,1068,1068,,1068,1068,1068,,1068,1068,1068","1068,1068,817,817,817,817,817,817,817,817,817,817,817,,817,817,,,817","817,,1068,,,1068,,,1068,1068,,,1068,,1068,817,,817,1068,817,817,,817","817,817,817,817,1068,817,,,,1068,1068,1068,1068,,1068,1068,1068,1068",",,,,1068,1068,,817,,,,,1068,,1068,1068,1068,,,1068,1068,372,372,372","372,372,372,,,,372,372,,,,372,,372,372,372,372,372,372,372,,,,,,372","372,372,372,372,372,372,,,372,,,,,,372,372,372,372,372,372,372,372,372","372,372,372,,372,372,372,,372,372,372,372,372,874,874,874,874,874,874","874,874,874,874,874,,874,874,,,874,874,,372,,,372,,,372,372,,,372,,372","874,,874,372,874,874,,874,874,874,874,874,372,874,,,,372,372,372,372",",372,372,372,372,,,,,372,372,,874,,,,,372,,372,372,372,,,372,372,973","973,973,973,973,973,,,,973,973,,,,973,,973,973,973,973,973,973,973,",",,,,973,973,973,973,973,973,973,,,973,,,,,,973,973,973,973,973,973,973","973,973,973,973,973,,973,973,973,,973,973,973,973,973,317,317,317,317","317,317,317,317,317,317,317,,317,317,,,317,317,,973,,,973,,,973,973",",,973,,973,317,,317,973,317,317,,317,317,317,317,317,973,317,,,,973","973,973,973,,973,973,973,973,,,,,973,973,,317,,,,,973,,973,973,973,",",973,973,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2,2,2,2,2,2,2,",",2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,2,2,2,550,550,550,550,550","550,550,550,550,550,550,,550,550,,,550,550,,2,,,2,,,2,2,,,2,,2,550,","550,2,550,550,,550,550,550,550,550,2,550,,,,2,2,2,2,,2,2,2,2,,,,,2,2","550,550,,,,,2,,2,2,2,,,2,2,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,230,230,230,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067",",1067,1067,,,1067,1067,,230,,,230,,,230,230,,,230,,230,1067,,1067,230","1067,1067,,1067,1067,1067,1067,1067,230,1067,,,,230,230,230,230,,230","230,230,230,,,,,230,230,,1067,,,,,230,,230,230,230,,,230,230,342,342","342,342,342,342,,,,342,342,,,,342,,342,342,342,342,342,342,342,,,,,","342,342,342,342,342,342,342,,,342,,,,,,342,342,342,342,342,342,342,342","342,342,342,342,,342,342,342,,342,342,342,342,342,1034,1034,1034,1034","1034,1034,1034,1034,1034,1034,1034,,1034,1034,,,1034,1034,,342,,,342",",,342,342,,,342,,342,1034,,1034,342,1034,1034,,1034,1034,1034,1034,1034","342,1034,,,,342,342,342,342,,342,342,342,342,,,,,342,342,,1034,,,,,342",",342,342,342,,,342,342,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,253,,253,253,253,,253,253","253,253,253,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,","1033,1033,,,1033,1033,,253,,,253,,,253,253,,,253,,253,1033,,1033,253","1033,1033,,1033,1033,1033,1033,1033,253,1033,,,,253,253,253,253,,253","253,253,253,,,,,253,253,,1033,,,,,253,,253,253,253,,,253,253,1013,1013","1013,1013,1013,1013,,,,1013,1013,,,,1013,,1013,1013,1013,1013,1013,1013","1013,,,,,,1013,1013,1013,1013,1013,1013,1013,,,1013,,,,,,1013,1013,1013","1013,1013,1013,1013,1013,1013,1013,1013,1013,,1013,1013,1013,,1013,1013","1013,1013,1013,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011",",1011,1011,,,1011,1011,,1013,,,1013,,,1013,1013,,,1013,,1013,1011,,1011","1013,1011,1011,,1011,1011,1011,1011,1011,1013,1011,,,,1013,1013,1013","1013,,1013,1013,1013,1013,,,,,1013,1013,,1011,,,,,1013,,1013,1013,1013",",,1013,1013,1098,1098,1098,1098,1098,1098,,,,1098,1098,,,,1098,,1098","1098,1098,1098,1098,1098,1098,,,,,,1098,1098,1098,1098,1098,1098,1098",",,1098,,,,,,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098",",1098,1098,1098,,1098,1098,1098,1098,1098,1010,1010,1010,1010,1010,1010","1010,1010,1010,1010,1010,,1010,1010,,,1010,1010,,1098,,,1098,,,1098","1098,,,1098,,1098,1010,,1010,1098,1010,1010,,1010,1010,1010,1010,1010","1098,1010,,,,1098,1098,1098,1098,,1098,1098,1098,1098,,,,,1098,1098",",1010,,,,,1098,,1098,1098,1098,,,1098,1098,1097,1097,1097,1097,1097","1097,,,,1097,1097,,,,1097,,1097,1097,1097,1097,1097,1097,1097,,,,,,1097","1097,1097,1097,1097,1097,1097,,,1097,,,,,,1097,1097,1097,1097,1097,1097","1097,1097,1097,1097,1097,1097,,1097,1097,1097,,1097,1097,1097,1097,1097","529,529,529,529,529,529,529,529,529,529,529,,529,529,,,529,529,,1097",",,1097,,,1097,1097,,546,1097,,1097,529,,529,1097,529,529,,529,529,529","529,529,1097,529,,,,1097,1097,1097,1097,,1097,1097,1097,1097,,,546,","1097,1097,546,546,,546,546,,1097,,1097,1097,1097,,,1097,1097,1147,1147","1147,1147,1147,1147,,,,1147,1147,,,,1147,,1147,1147,1147,1147,1147,1147","1147,,,,,,1147,1147,1147,1147,1147,1147,1147,547,1115,1147,1115,1115","1115,,1115,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147",",1147,1147,1147,,1147,1147,1147,1147,1147,604,,547,,,,547,547,1115,547","547,,,,,,604,604,,1147,,,1147,,,1147,1147,,,1147,,1147,604,,604,1147","604,604,,604,604,,,604,1147,604,,,,1147,1147,1147,1147,,1147,1147,1147","1147,,,,,1147,1147,,,,,,,1147,,1147,1147,1147,,,1147,1147,621,621,621","621,621,621,,,,621,621,,,,621,,621,621,621,621,621,621,621,,,,,,621","621,621,621,621,621,621,,,621,,,,,,621,621,621,621,621,621,621,621,621","621,621,621,,621,621,621,,621,621,621,621,621,364,364,364,364,364,364","364,364,364,364,364,,364,364,,,364,364,,621,,,621,,,621,621,,,621,,621","364,,364,621,364,364,,364,364,364,364,364,621,364,,,,621,621,621,621",",621,621,621,621,,,,,621,621,,,,,,,621,,621,621,621,,,621,621,892,892","892,892,892,892,,,,892,892,,,,892,,892,892,892,892,892,892,892,,,,,","892,892,892,892,892,892,892,,,892,,,,,,892,892,892,892,892,892,892,892","892,892,892,892,,892,892,892,,892,892,892,892,892,365,365,365,365,365","365,365,365,365,365,365,,365,365,,,365,365,,892,,,892,,,892,892,,,892",",892,365,,365,892,365,365,,365,365,365,365,365,892,365,,,,892,892,892","892,,892,892,892,892,,,,,892,892,,,,,,,892,,892,892,892,,,892,892,618","618,618,618,618,618,,,,618,618,,,,618,,618,618,618,618,618,618,618,",",,,,618,618,618,618,618,618,618,,,618,,,,,,618,618,618,618,618,618,618","618,618,618,618,618,,618,618,618,,618,618,618,618,618,551,,,,,,,,,,",",,,,,551,551,,618,,,618,,,618,618,,,618,,618,551,,551,618,551,551,,551","551,,,551,618,551,,,,618,618,618,618,,618,618,618,618,,,,,618,618,,",",,,,618,,618,618,618,,,618,618,1191,1191,1191,1191,1191,1191,,,,1191","1191,,,,1191,,1191,1191,1191,1191,1191,1191,1191,,,,,,1191,1191,1191","1191,1191,1191,1191,,,1191,,,,,,1191,1191,1191,1191,1191,1191,1191,1191","1191,1191,1191,1191,,1191,1191,1191,,1191,1191,1191,1191,1191,549,549","549,549,549,549,549,549,,549,549,,,,,,549,549,,1191,,,1191,,,1191,1191",",,1191,,1191,549,,549,1191,549,549,,549,549,549,549,549,1191,549,,,","1191,1191,1191,1191,,1191,1191,1191,1191,,,,,1191,1191,,,,,,,1191,,1191","1191,1191,,,1191,1191,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,,135,135","135,135,135,548,548,548,548,548,548,548,,,548,548,,,,,,548,548,,135",",,135,,,135,135,,,135,,135,548,,548,135,548,548,,548,548,548,548,548","135,548,,,,135,135,135,135,,135,135,135,135,,,,,135,135,,,,,,,135,,135","135,135,,,135,135,218,218,218,218,218,218,,,,218,218,,,,218,,218,218","218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,,218,,,,,,218","218,218,218,218,218,218,218,218,218,218,218,,218,218,218,,218,218,218","218,218,545,545,545,545,545,545,545,,,545,545,,,,,,545,545,,218,,,218",",,218,218,,,218,,218,545,,545,218,545,545,,545,545,545,545,545,218,545",",,,218,218,218,218,,218,218,218,218,,,,,218,218,,,,,,,218,,218,218,218",",,218,218,846,846,846,846,846,846,,,,846,846,,,,846,,846,846,846,846","846,846,846,,,,,,846,846,846,846,846,846,846,,,846,,,,,,846,846,846","846,846,846,846,846,846,846,846,846,,846,846,846,,846,846,846,846,846","544,544,544,544,544,544,544,,,544,544,,,,,,544,544,,846,,,846,,,846","846,,,846,,846,544,,544,846,544,544,,544,544,544,544,544,846,544,,,","846,846,846,846,,846,846,846,846,,,,,846,846,,,,,,,846,,846,846,846",",,846,846,857,857,857,857,857,857,,,,857,857,,,,857,,857,857,857,857","857,857,857,,,,,,857,857,857,857,857,857,857,,,857,,,,,,857,857,857","857,857,857,857,857,857,857,857,857,,857,857,857,,857,857,857,857,857","543,543,543,543,543,543,543,,,543,543,,,,,,543,543,,857,,,857,,,857","857,,,857,,857,543,,543,857,543,543,,543,543,543,543,543,857,543,,,","857,857,857,857,,857,857,857,857,,,,,857,857,,,,,,,857,,857,857,857",",,857,857,388,388,388,388,388,388,,,,388,388,,,,388,,388,388,388,388","388,388,388,,,,,,388,388,388,388,388,388,388,,,388,,,,,,388,388,388","388,388,388,388,388,388,388,388,388,,388,388,388,,388,388,388,388,388","542,542,542,542,542,542,542,,,542,542,,,,,,542,542,,388,,,388,,,388","388,,,388,,388,542,,542,388,542,542,,542,542,542,542,542,388,542,,,","388,388,388,388,,388,388,388,388,,,,,388,388,,,,,,,388,,388,388,388",",,388,388,991,991,991,991,991,991,,,,991,991,,,,991,,991,991,991,991","991,991,991,,,,,,991,991,991,991,991,991,991,,,991,,,,,,991,991,991","991,991,991,991,991,991,991,991,991,,991,991,991,,991,991,991,991,991","541,541,541,541,541,541,541,,,541,541,,,,,,541,541,,991,,,991,,,991","991,,,991,,991,541,,541,991,541,541,,541,541,541,541,541,991,541,,,","991,991,991,991,,991,991,991,991,,,,,991,991,,,,920,920,920,991,920","991,991,991,920,920,991,991,,920,,920,920,920,920,920,920,920,,,,,,920","920,920,920,920,920,920,,,920,,,,,,,920,,,920,920,920,920,920,920,920","920,,920,920,920,,920,920,920,920,920,540,540,540,540,540,540,540,,","540,540,,,,,,540,540,,920,,,920,,,920,920,,,920,,,540,,540,920,540,540",",540,540,540,540,540,920,540,,,,920,920,920,920,,920,920,920,920,,,",",920,920,,,,921,921,921,920,921,920,920,920,921,921,920,920,,921,,921","921,921,921,921,921,921,,,,,,921,921,921,921,921,921,921,,,921,,,,,",",921,,,921,921,921,921,921,921,921,921,,921,921,921,,921,921,921,921","921,530,530,530,530,530,530,530,530,530,530,530,,530,530,,,530,530,","921,,,921,,,921,921,,,921,,,530,,530,921,530,530,,530,530,530,530,530","921,530,,,,921,921,921,921,,921,921,921,921,,,,,921,921,,,,922,922,922","921,922,921,921,921,922,922,921,921,,922,,922,922,922,922,922,922,922",",,,,,922,922,922,922,922,922,922,,,922,,,,,,,922,,,922,922,922,922,922","922,922,922,,922,922,922,,922,922,922,922,922,538,,,,,,,,,,,,,,,,538","538,,922,,,922,,,922,922,,,922,,,538,,538,922,538,538,,538,538,,,,922",",,,,922,922,922,922,,922,922,922,922,,,,,922,922,,,,733,733,733,922","733,922,922,922,733,733,922,922,,733,,733,733,733,733,733,733,733,,",",,,733,733,733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733","733,733,733,,733,733,733,,733,733,733,733,733,539,,,,,,,,,,,,,,,,539","539,,733,,,733,,,733,733,,,733,,,539,,,733,539,539,,539,539,,,,733,",",,,733,733,733,733,,733,733,733,733,,,,,733,733,,,,732,732,732,733,732","733,733,733,732,732,733,733,,732,,732,732,732,732,732,732,732,,,,,,732","732,732,732,732,732,732,,,732,,,,,,,732,,,732,732,732,732,732,732,732","732,,732,732,732,,732,732,732,732,732,537,,,,,,,,,,,,,,,,537,537,,732",",,732,,,732,732,,,732,,,537,,537,732,537,537,,537,537,,,,732,,,,,732","732,732,732,,732,732,732,732,,,,,732,732,,,,,,,732,,732,732,732,,,732","732,333,333,333,333,333,,,,333,333,,,,333,,333,333,333,333,333,333,333",",,,,,333,333,333,333,333,333,333,,,333,,,,,,333,333,,333,333,333,333","333,333,333,333,333,,333,333,333,,333,333,333,333,333,,,,,,,,,,,,,,",",,,,,333,,,333,,,333,333,,,333,,333,,,,333,,,,,,,,,333,,,,,333,333,333","333,,333,333,333,333,,,,,333,333,,,,265,265,265,333,265,333,333,333","265,265,333,333,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265","265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265","265,,265,265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265",",,,,,265,,,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265",",,,264,264,264,265,264,265,265,265,264,264,265,265,,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","264,264,264,,264,264,264,264,,,,,264,264,,,,263,263,263,264,263,264","264,264,263,263,264,264,,263,,263,263,263,263,263,263,263,,,,,,263,263","263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263,263",",263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263","263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263,263,,263,263,263,263",",,,,263,263,,,,262,262,262,263,262,263,263,263,262,262,263,263,,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,,,,,,",",,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,261,261,261","262,261,262,262,262,261,261,262,262,,261,,261,261,261,261,261,261,261",",,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261","261,261,261,,261,261,261,,261,261,261,261,261,,,,,,,,,,,,,,,,,,,,261",",,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261,261,261,261,,261","261,261,261,,,,,261,261,,,,708,708,708,261,708,261,261,261,708,708,261","261,,708,,708,708,708,708,708,708,708,,,,,,708,708,708,708,708,708,708",",,708,,,,,,,708,,,708,708,708,708,708,708,708,708,,708,708,708,,708","708,708,708,708,,,,,,,,,,,,,,,,,,,,708,,,708,,,708,708,,,708,,,,,,708",",,,,,,,,708,,,,,708,708,708,708,,708,708,708,708,,,,,708,708,,,,260","260,260,708,260,708,708,708,260,260,708,708,,260,,260,260,260,260,260","260,260,,,,,,260,260,260,260,260,260,260,,,260,,,,,,,260,,,260,260,260","260,260,260,260,260,,260,260,260,,260,260,260,260,260,,,,,,,,,,,,,,",",,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,,,,260,,,,,260,260,260","260,,260,260,260,260,,,,,260,260,,,,694,694,694,260,694,260,260,260","694,694,260,260,,694,,694,694,694,694,694,694,694,,,,,,694,694,694,694","694,694,694,,,694,,,,,,,694,,,694,694,694,694,694,694,694,694,,694,694","694,,694,694,694,694,694,,,,,,,,,,,,,,,,,,,,694,,,694,,,694,694,,,694",",694,,,,694,,,,,,,,,694,,,,,694,694,694,694,,694,694,694,694,,,,,694","694,,,,259,259,259,694,259,694,694,694,259,259,694,694,,259,,259,259","259,259,259,259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259",",,259,259,259,259,259,259,259,259,,259,259,259,,259,259,259,259,259",",,,,,,,,,,,,,,,,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,",",,259,259,259,259,,259,259,259,259,,,,,259,259,,,,258,258,258,259,258","259,259,259,258,258,259,259,,258,,258,258,258,258,258,258,258,,,,,,258","258,258,258,258,258,258,,,258,,,,,,,258,,,258,258,258,258,258,258,258","258,,258,258,258,,258,258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,",",258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258,258,258,258,,258,258,258","258,,,,,258,258,,,,257,257,257,258,257,258,258,258,257,257,258,258,","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,,,,,,257,,",",,,,,,257,,,,,257,257,257,257,,257,257,257,257,,,,,257,257,,,,688,688","688,257,688,257,257,257,688,688,257,257,,688,,688,688,688,688,688,688","688,,,,,,688,688,688,688,688,688,688,,,688,,,,,,,688,,,688,688,688,688","688,688,688,688,,688,688,688,,688,688,688,688,688,,,,,,,,,,,,,,,,,,",",688,,,688,,,688,688,,,688,,,,,,688,,,,,,,,,688,,,,,688,688,688,688",",688,688,688,688,,,,,688,688,,,,687,687,687,688,687,688,688,688,687","687,688,688,,687,,687,687,687,687,687,687,687,,,,,,687,687,687,687,687","687,687,,,687,,,,,,,687,,,687,687,687,687,687,687,687,687,,687,687,687",",687,687,687,687,687,,,,,,,,,,,,,,,,,,,,687,,,687,,,687,687,,,687,,",",,,687,,,,,,,,,687,,,,,687,687,687,687,,687,687,687,687,,,,,687,687",",,,,,,687,,687,687,687,32,,687,687,,,,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,32,,,32,,32,32,,,32,32",",32,,32,,32,,32,32,,32,32,32,32,32,,32,32,32,,,,,,,,,,,,,,32,,,32,32",",32,,32,683,683,683,,683,,32,,683,683,,,,683,,683,683,683,683,683,683","683,,,,,,683,683,683,683,683,683,683,,,683,,,,,,,683,,,683,683,683,683","683,683,683,683,,683,683,683,,683,683,683,683,683,,,,,,,,,,,,,,,,,,",",683,,,683,,,683,683,,,683,,,,,,683,,,,,,,,,683,,,,,683,683,683,683",",683,683,683,683,,,,,683,683,,,,682,682,682,683,682,683,683,683,682","682,683,683,,682,,682,682,682,682,682,682,682,,,,,,682,682,682,682,682","682,682,,,682,,,,,,,682,,,682,682,682,682,682,682,682,682,,682,682,682",",682,682,682,682,682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682,682,,,682,,",",,,682,,,,,,,,,682,,,,,682,682,682,682,,682,682,682,682,,,,,682,682",",,,681,681,681,682,681,682,682,682,681,681,682,682,,681,,681,681,681","681,681,681,681,,,,,,681,681,681,681,681,681,681,,,681,,,,,,,681,,,681","681,681,681,681,681,681,681,681,681,681,681,,681,681,681,681,681,,,",",,,,,,,,,,,,,,,,681,,,681,,,681,681,,,681,,,,681,,681,,,681,,,,,,681",",,,,681,681,681,681,,681,681,681,681,,,,,681,681,,,,956,956,956,681","956,681,681,681,956,956,681,681,,956,,956,956,956,956,956,956,956,,",",,,956,956,956,956,956,956,956,,,956,,,,,,,956,,,956,956,956,956,956","956,956,956,,956,956,956,,956,956,956,956,956,,,,,,,,,,,,,,,,,,,,956",",,956,,,956,956,,,956,,,,,,956,,,,,,,,,956,,,,,956,956,956,956,,956","956,956,956,,,,,956,956,,,,962,962,962,956,962,956,956,956,962,962,956","956,,962,,962,962,962,962,962,962,962,,,,,,962,962,962,962,962,962,962",",,962,,,,,,,962,,,962,962,962,962,962,962,962,962,,962,962,962,,962","962,962,962,962,,,,,,,,,,,,,,,,,,,,962,,,962,,,962,962,,,962,,,,,,962",",,,,,,,,962,,,,,962,962,962,962,,962,962,962,962,,,,,962,962,,,,,,,962",",962,962,962,33,,962,962,,,,33,33,33,,,33,33,33,,33,,,,,,,,33,,33,33",",,,,,,,,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,,,,33,33,33,33,33,33","33,33,33,33,33,33,33,33,,,33,33,33,,,33,,33,33,,,33,33,,33,,33,,33,","33,33,,33,33,33,33,33,,33,,33,,,,,,,,,,,,,,33,,,33,33,,33,,33,34,34","34,,34,,33,,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,34,,,34,,34,,34,,34,,,34,,,,,,34",",,,,34,34,34,34,,34,34,34,34,,,,,34,34,,,,680,680,680,34,680,34,34,34","680,680,34,34,,680,,680,680,680,680,680,680,680,,,,,,680,680,680,680","680,680,680,,,680,,,,,,,680,,,680,680,680,680,680,680,680,680,680,680","680,680,,680,680,680,680,680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680",",,680,,680,,680,,680,,,680,,,,,,680,,,,,680,680,680,680,,680,680,680","680,,,,,680,680,,,,677,677,677,680,677,680,680,680,677,677,680,680,","677,,677,677,677,677,677,677,677,,,,,,677,677,677,677,677,677,677,,","677,,,,,,,677,,,677,677,677,677,677,677,677,677,,677,677,677,,677,677","677,677,677,,,,,,,,,,,,,,,,,,,,677,,,677,,,677,677,,,677,,,,,,677,,",",,,,,,677,,,,,677,677,677,677,,677,677,677,677,,,,,677,677,,,,,,,677",",677,677,677,,,677,677,676,676,676,676,676,,,,676,676,,,,676,,676,676","676,676,676,676,676,,,,,,676,676,676,676,676,676,676,,,676,,,,,,676","676,,676,676,676,676,676,676,676,676,676,,676,676,676,,676,676,676,676","676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676,676,,,676,,676,,,,676,,,,,,,",",676,,,,,676,676,676,676,,676,676,676,676,,,,,676,676,,,,985,985,985","676,985,676,676,676,985,985,676,676,,985,,985,985,985,985,985,985,985",",,,,,985,985,985,985,985,985,985,,,985,,,,,,,985,,,985,985,985,985,985","985,985,985,,985,985,985,,985,985,985,985,985,,,,,,,,,,,,,,,,,,,,985",",,985,,,985,985,,,985,,,,,,985,,,,,,,,,985,,,,,985,985,985,985,,985","985,985,985,,,,,985,985,,,,673,673,673,985,673,985,985,985,673,673,985","985,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673,673,673,673",",,673,,,,,,,673,,,673,673,673,673,673,673,673,673,673,673,673,673,,673","673,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673,673,,,673,,673,,673",",673,,,673,,,,,,673,,,,,673,673,673,673,,673,673,673,673,,,,,673,673",",,,672,672,672,673,672,673,673,673,672,672,673,673,,672,,672,672,672","672,672,672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,,672,,,672","672,672,672,672,672,672,672,,672,672,672,,672,672,672,672,672,,,,,,",",,,,,,,,,,,,,672,,,672,,,672,672,,,672,,,,,,672,,,,,,,,,672,,,,,672","672,672,672,,672,672,672,672,,,,,672,672,,,,990,990,990,672,990,672","672,672,990,990,672,672,,990,,990,990,990,990,990,990,990,,,,,,990,990","990,990,990,990,990,,,990,,,,,,,990,,,990,990,990,990,990,990,990,990",",990,990,990,,990,990,990,990,990,,,,,,,,,,,,,,,,,,,,990,,,990,,,990","990,,,990,,990,,,,990,,,,,,,,,990,,,,,990,990,990,990,,990,990,990,990",",,,,990,990,,,,671,671,671,990,671,990,990,990,671,671,990,990,,671",",671,671,671,671,671,671,671,,,,,,671,671,671,671,671,671,671,,,671",",,,,,,671,,,671,671,671,671,671,671,671,671,,671,671,671,,671,671,671","671,671,,,,,,,,,,,,,,,,,,,,671,,,671,,,671,671,,,671,,671,,,,671,,,",",,,,,671,,,,,671,671,671,671,,671,671,671,671,,,,,671,671,,,,,,,671",",671,671,671,,,671,671,669,669,669,669,669,,,,669,669,,,,669,,669,669","669,669,669,669,669,,,,,,669,669,669,669,669,669,669,,,669,,,,,,669","669,,669,669,669,669,669,669,669,669,669,,669,669,669,,669,669,669,669","669,,,,,,,,,,,,,,,,,,,,669,,,669,,,669,669,,,669,,669,,,,669,,,,,,,",",669,,,,,669,669,669,669,,669,669,669,669,,,,,669,669,,,,35,35,35,669","35,669,669,669,35,35,669,669,,35,,35,35,35,35,35,35,35,,,,,,35,35,35","35,35,35,35,,,35,,,,,,,35,,,35,35,35,35,35,35,35,35,35,35,35,35,,35","35,35,35,35,,,,,,,,,,,,,,,,,,,,35,,,35,,,35,35,,,35,,35,,35,,35,,,35",",,,,,35,,,,,35,35,35,35,,35,35,35,35,,,,,35,35,,,,250,250,250,35,250","35,35,35,250,250,35,35,,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","250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250,250,250,250",",,,,250,250,,,,36,36,36,250,36,250,250,250,36,36,250,250,,36,,36,36","36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,,36,,,36,36,36,36","36,36,36,36,36,36,36,36,,36,36,36,36,36,,,,,,,,,,,,,,,,,,,,36,,,36,",",36,36,,,36,,36,,36,,36,,,36,,,,,,36,,,,,36,36,36,36,,36,36,36,36,,",",,36,36,,,,638,638,638,36,638,36,36,36,638,638,36,36,,638,,638,638,638","638,638,638,638,,,,,,638,638,638,638,638,638,638,,,638,,,,,,,638,,,638","638,638,638,638,638,638,638,638,638,638,638,,638,638,638,638,638,,,",",,,,,,,,,,,,,,,,638,,,638,,,638,638,,,638,,638,,638,,638,,,638,,,,,","638,,,,,638,638,638,638,,638,638,638,638,,,,,638,638,,,,1009,1009,1009","638,1009,638,638,638,1009,1009,638,638,,1009,,1009,1009,1009,1009,1009","1009,1009,,,,,,1009,1009,1009,1009,1009,1009,1009,,,1009,,,,,,,1009",",,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,,1009","1009,1009,1009,1009,,,,,,,,,,,,,,,,,,,,1009,,,1009,,,1009,1009,,,1009",",,,1009,,1009,,,1009,,,,,,1009,,,,,1009,1009,1009,1009,,1009,1009,1009","1009,,,,,1009,1009,,,,628,628,628,1009,628,1009,1009,1009,628,628,1009","1009,,628,,628,628,628,628,628,628,628,,,,,,628,628,628,628,628,628","628,,,628,,,,,,,628,,,628,628,628,628,628,628,628,628,628,628,628,628",",628,628,628,628,628,,,,,,,,,,,,,,,,,,,,628,,,628,,,628,628,,,628,,628",",628,,628,,,628,,,,,,628,,,,,628,628,628,628,,628,628,628,628,,,,,628","628,,,,627,627,627,628,627,628,628,628,627,627,628,628,,627,,627,627","627,627,627,627,627,,,,,,627,627,627,627,627,627,627,,,627,,,,,,,627",",,627,627,627,627,627,627,627,627,,627,627,627,,627,627,627,627,627",",,,,,,,,,,,,,,,,,,,627,,,627,,,627,627,,,627,,627,,,,627,,,,,,,,,627",",,,,627,627,627,627,,627,627,627,627,,,,,627,627,,,,818,818,818,627","818,627,627,627,818,818,627,627,,818,,818,818,818,818,818,818,818,,",",,,818,818,818,818,818,818,818,,,818,,,,,,,818,,,818,818,818,818,818","818,818,818,,818,818,818,,818,818,818,818,818,,,,,,,,,,,,,,,,,,,,818",",,818,,,818,818,,,818,,,,,,818,,,,,,,,,818,,,,,818,818,818,818,,818","818,818,818,,,,,818,818,,,,614,614,614,818,614,818,818,818,614,614,818","818,,614,,614,614,614,614,614,614,614,,,,,,614,614,614,614,614,614,614",",,614,,,,,,,614,,,614,614,614,614,614,614,614,614,614,614,614,614,,614","614,614,614,614,,,,,,,,,,,,,,,,,,,,614,,,614,,,614,614,,,614,,,,,,614",",,614,,,,,,614,,,,,614,614,614,614,,614,614,614,614,,,,,614,614,,,,611","611,611,614,611,614,614,614,611,611,614,614,,611,,611,611,611,611,611","611,611,,,,,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611","611,611,611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,",",,,,,,,,611,,,611,,,611,611,,,611,,611,,,,611,,,611,,,,,,611,,,,,611","611,611,611,,611,611,611,611,,,,,611,611,,,,239,239,239,611,239,611","611,611,239,239,611,611,,239,,239,239,239,239,239,239,239,,,,,,239,239","239,239,239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239",",239,239,239,,239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239","239,,,239,,,,,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239",",,,,239,239,239,,,605,605,605,239,605,239,239,239,605,605,239,239,,605",",605,605,605,605,605,605,605,,,,,,605,605,605,605,605,605,605,,,605",",,,,,,605,,,605,605,605,605,605,605,605,605,,605,605,605,,605,605,605","605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605,605,,,605,,,,,,605,,,,,,",",,605,,,,,605,605,605,605,,605,605,605,605,,,,,605,605,,,,1035,1035","1035,605,1035,605,605,605,1035,1035,605,605,,1035,,1035,1035,1035,1035","1035,1035,1035,,,,,,1035,1035,1035,1035,1035,1035,1035,,,1035,,,,,,","1035,,,1035,1035,1035,1035,1035,1035,1035,1035,,1035,1035,1035,,1035","1035,1035,1035,1035,,,,,,,,,,,,,,,,,,,,1035,,,1035,,,1035,1035,,,1035",",,,,,1035,,,,,,,,,1035,,,,,1035,1035,1035,1035,,1035,1035,1035,1035",",,,,1035,1035,,,,603,603,603,1035,603,1035,1035,1035,603,603,1035,1035",",603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603,",",603,,,,,,,603,,,603,603,603,603,603,603,603,603,,603,603,603,,603,603","603,603,603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603,,,603,,,,,,603,,",",,,,,,603,,,,,603,603,603,603,,603,603,603,603,,,,,603,603,,,,600,600","600,603,600,603,603,603,600,600,603,603,,600,,600,600,600,600,600,600","600,,,,,,600,600,600,600,600,600,600,,,600,,,,,,,600,,,600,600,600,600","600,600,600,600,,600,600,600,,600,600,600,600,600,,,,,,,,,,,,,,,,,,",",600,,,600,,,600,600,,,600,,,,,,600,,,,,,,,,600,,,,,600,600,600,600",",600,600,600,600,,,,,600,600,,,,238,238,238,600,238,600,600,600,238","238,600,600,,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,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,",",,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238,238,,,,,238,238",",,,237,237,237,238,237,238,238,238,237,237,238,238,,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","237,237,237,,237,237,237,237,,,,,237,237,,,,590,590,590,237,590,237","237,237,590,590,237,237,,590,,590,590,590,590,590,590,590,,,,,,590,590","590,590,590,590,590,,,590,,,,,,,590,,,590,590,590,590,590,590,590,590","590,590,590,590,,590,590,590,590,590,,,,,,,,,,,,,,,,,,,,590,,,590,,","590,590,,,590,,590,,590,,590,,,590,,,,,,590,,,,,590,590,590,590,,590","590,590,590,,,,,590,590,,,,,,,590,,590,590,590,,,590,590,580,580,580","580,580,,,,580,580,,,,580,,580,580,580,580,580,580,580,,,,,,580,580","580,580,580,580,580,,,580,,,,,,580,580,580,580,580,580,580,580,580,580","580,580,,580,580,580,,580,580,580,580,580,,,,,,,,,,,,,,,,,,,,580,,,580",",,580,580,,,580,,580,,,,580,,,,,,,,,580,,,,,580,580,580,580,,580,580","580,580,,,,,580,580,,,,,,580,580,,580,580,580,,,580,580,574,574,574",",574,,,,574,574,,,,574,,574,574,574,574,574,574,574,,,,,,574,574,574","574,574,574,574,,,574,,,,,,,574,,,574,574,574,574,574,574,574,574,,574","574,574,,574,574,574,574,574,,,,,,,,,,,,,,,,,,,,574,,,574,,,574,574",",,574,,,,,,574,,,,,,,,,574,,,,,574,574,574,574,,574,574,574,574,,,,","574,574,,,,369,369,369,574,369,574,574,574,369,369,574,574,,369,,369","369,369,369,369,369,369,,,,,,369,369,369,369,369,369,369,,,369,,,,,",",369,,,369,369,369,369,369,369,369,369,,369,369,369,,369,369,369,369","369,,,,,,,,,,,,,,,,,,,,369,,,369,,,369,369,,,369,,,,,,369,,,,,,,,,369",",,,,369,369,369,369,,369,369,369,369,,,,,369,369,,,,46,46,46,369,46","369,369,369,46,46,369,369,,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,,,,,,,,,46,,,",",46,46,46,46,,46,46,46,46,,,,,46,46,,,,572,572,572,46,572,46,46,46,572","572,46,46,,572,,572,572,572,572,572,572,572,,,,,,572,572,572,572,572","572,572,,,572,,,,,,,572,,,572,572,572,572,572,572,572,572,572,572,572","572,,572,572,572,572,572,,,,,,,,,,,,,,,,,,,,572,,,572,,,572,572,,,572",",,,572,,572,,,572,,,,,,572,,,,,572,572,572,572,,572,572,572,572,,,,","572,572,,,,570,570,570,572,570,572,572,572,570,570,572,572,,570,,570","570,570,570,570,570,570,,,,,,570,570,570,570,570,570,570,,,570,,,,,",",570,,,570,570,570,570,570,570,570,570,570,570,570,570,,570,570,570","570,570,,,,,,,,,,,,,,,,,,,,570,,,570,,,570,570,,,570,,570,,570,,570",",,570,,,,,,570,,,,,570,570,570,570,,570,570,570,570,,,,,570,570,,,,47","47,47,570,47,570,570,570,47,47,570,570,,47,,47,47,47,47,47,47,47,,,",",,47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47","47,,47,47,47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,",",,,,,,,47,,,,,47,47,47,47,,47,47,47,47,,,,,47,47,,,,560,560,560,47,560","47,47,47,560,560,47,47,,560,,560,560,560,560,560,560,560,,,,,,560,560","560,560,560,560,560,,,560,,,,,,,560,,,560,560,560,560,560,560,560,560",",560,560,560,,560,560,560,560,560,,,,,,,,,,,,,,,,,,,,560,,,560,,,560","560,,,560,,,,,,560,,,,,,,,,560,,,,,560,560,560,560,,560,560,560,560",",,,,560,560,,,,49,49,49,560,49,560,560,560,49,49,560,560,,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,,,,,,,,,49,,,,,49,49,49,49,,49,49,49,49,,,,,49,49,,",",,,,49,,49,49,49,555,,49,49,,,,555,555,555,,,555,555,555,703,555,703","703,703,703,703,,,555,555,555,,,,703,,,,,,555,555,,555,555,555,555,555",",701,,701,701,701,701,701,703,,,,,,,,701,703,703,703,703,,,,703,,1140",",1140,1140,1140,1140,1140,555,,,,,701,,555,1140,,,,555,555,701,701,701","701,,,,701,,,,,,,,,1140,703,,,,555,555,,,,,1140,1140,,,,1140,,,,555",",,555,,283,283,283,555,283,,701,,283,283,555,,,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,,,283,,,,,,283,,,,,,,,,283,,,,,283,283","283,283,,283,283,283,283,,,,,283,283,,,,224,224,224,283,224,283,283","283,224,224,283,283,,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","224,,,224,,224,,224,,224,,,224,,,,,,224,,,,,224,224,224,224,,224,224","224,224,,,,,224,224,,,,223,223,223,224,223,224,224,224,223,223,224,224",",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,223,223,223,,223,223,223,223,,,,,223,223,,,,50,50","50,223,50,223,223,223,50,50,223,223,,50,,50,50,50,50,50,50,50,,,,,,50","50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50,50,50,50,,50,50,50",",50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50,,,50,,,,,,50,,,,",",,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,222,222,222,50,222","50,50,50,222,222,50,50,,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,222,222,222,,222,222,222,222",",,,,222,222,,,,72,72,72,222,72,222,222,222,72,72,222,222,,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,,,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,",",71,71,71,72,71,72,72,72,71,71,72,72,,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,71,71,71,,71,71,71,71,,,,,71,71,,,,436,436,436,71,436","71,71,71,436,436,71,71,,436,,436,436,436,436,436,436,436,,,,,,436,436","436,436,436,436,436,,,436,,,,,,,436,,,436,436,436,436,436,436,436,436",",436,436,436,,436,436,436,436,436,,,,,,,,,,,,,,,,,,,,436,,,436,,,436","436,,,436,,,,,,436,,,,,,,,,436,,,,,436,436,436,436,,436,436,436,436",",,,,436,436,,,,68,68,68,436,68,436,436,436,68,68,436,436,,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,,,,,,68,,,,,68,68,68,68,,68,68,68,68,,,,,68","68,,,,407,407,407,68,407,68,68,68,407,407,68,68,,407,,407,407,407,407","407,407,407,,,,,,407,407,407,407,407,407,407,,,407,,,,,,,407,,,407,407","407,407,407,407,407,407,,407,407,407,,407,407,407,407,407,,,,,,,,,,",",,,,,,,,,407,,,407,,,407,407,,,407,,,,,,407,,,,,,,,,407,,,,,407,407","407,407,,407,407,407,407,,,,,407,407,,,,847,847,847,407,847,407,407","407,847,847,407,407,,847,,847,847,847,847,847,847,847,,,,,,847,847,847","847,847,847,847,,,847,,,,,,,847,,,847,847,847,847,847,847,847,847,,847","847,847,,847,847,847,847,847,,,,,,,,,,,,,,,,,,,,847,,,847,,,847,847",",,847,,,,,,847,,,,,,,,,847,,,,,847,847,847,847,,847,847,847,847,,,,","847,847,,,,276,276,276,847,276,847,847,847,276,276,847,847,,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,276,276,276,,276,276,276,276,,,,,276,276,,,,275,275,275,276","275,276,276,276,275,275,276,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,,,,,,,,,275,,,,,275,275,275,275,,275","275,275,275,,,,,275,275,,,,67,67,67,275,67,275,275,275,67,67,275,275",",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,,,67,,67,,,,67,,,67,,,,,,67,,,,,67,67,67,67,,67,67","67,67,,,,,67,67,,,,,,,67,,67,67,67,,,67,67,66,66,66,66,66,,,,66,66,",",,66,,66,66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,66,66",",66,66,66,66,66,66,66,66,66,,66,66,66,,66,66,66,66,66,,,,,,,,,,,,,,",",,,,,66,,,66,,,66,66,,,66,,66,,,,66,,,,,,,,,66,,,,,66,66,66,66,,66,66","66,66,,,,,66,66,,,,299,299,299,66,299,66,66,66,299,299,66,66,,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,,,,,,,,,299",",,,,299,299,299,299,,299,299,299,299,,,,,299,299,,,,274,274,274,299","274,299,299,299,274,274,299,299,,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,,,,,,274,,,,,,,,,274,,,,,274,274,274,274,,274","274,274,274,,,,,274,274,,,,867,867,867,274,867,274,274,274,867,867,274","274,,867,,867,867,867,867,867,867,867,,,,,,867,867,867,867,867,867,867",",,867,,,,,,,867,,,867,867,867,867,867,867,867,867,,867,867,867,,867","867,867,867,867,,,,,,,,,,,,,,,,,,,,867,,,867,,,867,867,,,867,,,,,,867",",,,,,,,,867,,,,,867,867,867,867,,867,867,867,867,,,,,867,867,,,,24,24","24,867,24,867,867,867,24,24,867,867,,24,,24,24,24,24,24,24,24,,,,,,24","24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24,,24,24,24",",24,24,24,24,24,,,,,,,,,,,,,,,,,,,,24,,,24,,,24,24,,,24,,,,,,24,,,,",",,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,273,273,273,24,273","24,24,24,273,273,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,,,273","273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273",",,,,273,273,,,,788,788,788,273,788,273,273,273,788,788,273,273,,788",",788,788,788,788,788,788,788,,,,,,788,788,788,788,788,788,788,,,788",",,,,,,788,,,788,788,788,788,788,788,788,788,788,788,788,788,,788,788","788,788,788,,,,,,,,,,,,,,,,,,,,788,,,788,,,788,788,,,788,,788,,788,","788,,,788,,,,,,788,,,,,788,788,788,788,,788,788,788,788,,,,,788,788",",,,272,272,272,788,272,788,788,788,272,272,788,788,,272,,272,272,272","272,272,272,272,,,,,,272,272,272,272,272,272,272,,,272,,,,,,,272,,,272","272,272,272,272,272,272,272,,272,272,272,,272,272,272,272,272,,,,,,",",,,,,,,,,,,,,272,,,272,,,272,272,,,272,,,,,,272,,,,,,,,,272,,,,,272","272,272,272,,272,272,272,272,,,,,272,272,,,,875,875,875,272,875,272","272,272,875,875,272,272,,875,,875,875,875,875,875,875,875,,,,,,875,875","875,875,875,875,875,,,875,,,,,,,875,,,875,875,875,875,875,875,875,875",",875,875,875,,875,875,875,875,875,,,,,,,,,,,,,,,,,,,,875,,,875,,,875","875,,,875,,,,,,875,,,,,,,,,875,,,,,875,875,875,875,,875,875,875,875",",,,,875,875,,,,306,306,306,875,306,875,875,875,306,306,875,875,,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,306,,,306,,306,,306,","306,,,306,,,,,,306,,,,,306,306,306,306,,306,306,306,306,,,,,306,306",",,,888,888,888,306,888,306,306,306,888,888,306,306,,888,,888,888,888","888,888,888,888,,,,,,888,888,888,888,888,888,888,,,888,,,,,,,888,,,888","888,888,888,888,888,888,888,,888,888,888,,888,888,888,888,888,,,,,,",",,,,,,,,,,,,,888,,,888,,,888,888,,,888,,,,,,888,,,,,,,,,888,,,,,888","888,888,888,,888,888,888,888,,,,,888,888,,,,889,889,889,888,889,888","888,888,889,889,888,888,,889,,889,889,889,889,889,889,889,,,,,,889,889","889,889,889,889,889,,,889,,,,,,,889,,,889,889,889,889,889,889,889,889",",889,889,889,,889,889,889,889,889,,,,,,,,,,,,,,,,,,,,889,,,889,,,889","889,,,889,,,,,,889,,,,,,,,,889,,,,,889,889,889,889,,889,889,889,889",",,,,889,889,,,,307,307,307,889,307,889,889,889,307,307,889,889,,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,,,307,,307,,307,","307,,,307,,,,,,307,,,,,307,307,307,307,,307,307,307,307,,,,,307,307",",,,315,315,315,307,315,307,307,307,315,315,307,307,,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,,315,,315,,315,,,315,,,,,","315,,,,,315,315,315,315,,315,315,315,315,,,,,315,315,315,,,271,271,271","315,271,315,315,315,271,271,315,315,,271,,271,271,271,271,271,271,271",",,,,,271,271,271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271","271,271,271,,271,271,271,,271,271,271,271,271,,,,,,,,,,,,,,,,,,,,271",",,271,,,271,271,,,271,,,,,,271,,,,,,,,,271,,,,,271,271,271,271,,271","271,271,271,,,,,271,271,,,,270,270,270,271,270,271,271,271,270,270,271","271,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270,270",",,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,,270","270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270",",,,,,,,,270,,,,,270,270,270,270,,270,270,270,270,,,,,270,270,,,,269","269,269,270,269,270,270,270,269,269,270,270,,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,269,269","269,,269,269,269,269,,,,,269,269,,,,322,322,322,269,322,269,269,269","322,322,269,269,,322,,322,322,322,322,322,322,322,,,,,,322,322,322,322","322,322,322,,,322,,,,,,,322,,,322,322,322,322,322,322,322,322,,322,322","322,,322,322,322,322,322,,,,,,,,,,,,,,,,,,,,322,,,322,,,322,322,,,322",",,,,,322,,,,,,,,,322,,,,,322,322,322,322,,322,322,322,322,,,,,322,322",",,,324,324,324,322,324,322,322,322,324,324,322,322,,324,,324,324,324","324,324,324,324,,,,,,324,324,324,324,324,324,324,,,324,,,,,,,324,,,324","324,324,324,324,324,324,324,,324,324,324,,324,324,324,324,324,,,,,,",",,,,,,,,,,,,,324,,,324,,,324,324,,,324,,,,,,324,,,,,,,,,324,,,,,324","324,324,324,,324,324,324,324,,,,,324,324,,,,327,327,327,324,327,324","324,324,327,327,324,324,,327,,327,327,327,327,327,327,327,,,,,,327,327","327,327,327,327,327,,,327,,,,,,,327,,,327,327,327,327,327,327,327,327",",327,327,327,,327,327,327,327,327,,,,,,,,,,,,,,,,,,,,327,,,327,,,327","327,,,327,,,,,,327,,,,,,,,,327,,,,,327,327,327,327,,327,327,327,327",",,,,327,327,,,,328,328,328,327,328,327,327,327,328,328,327,327,,328",",328,328,328,328,328,328,328,,,,,,328,328,328,328,328,328,328,,,328",",,,,,,328,,,328,328,328,328,328,328,328,328,,328,328,328,,328,328,328","328,328,,,,,,,,,,,,,,,,,,,,328,,,328,,,328,328,,,328,,,,,,328,,,,,,",",,328,,,,,328,328,328,328,,328,328,328,328,,,,,328,328,,,,268,268,268","328,268,328,328,328,268,268,328,328,,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,268,268,268,,268","268,268,268,,,,,268,268,,,,267,267,267,268,267,268,268,268,267,267,268","268,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267,267,267,267",",,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267,267,,267","267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267,,,,,,267",",,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267,,,,266","266,266,267,266,267,267,267,266,266,267,267,,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,266,266","266,,266,266,266,266,,,,,266,266,,,,917,917,917,266,917,266,266,266","917,917,266,266,,917,,917,917,917,917,917,917,917,,,,,,917,917,917,917","917,917,917,,,917,,,,,,,917,,,917,917,917,917,917,917,917,917,,917,917","917,,917,917,917,917,917,,,,,,,,,,,,,,,,,,,,917,,,917,,,917,917,,,917",",,,,,917,,,,,,,,,917,,,,,917,917,917,917,,917,917,917,917,,,,,917,917",",,,918,918,918,917,918,917,917,917,918,918,917,917,,918,,918,918,918","918,918,918,918,,,,,,918,918,918,918,918,918,918,,,918,,,,,,,918,,,918","918,918,918,918,918,918,918,,918,918,918,,918,918,918,918,918,,,,,,",",,,,,,,,,,,,,918,,,918,,,918,918,,,918,,,,,,918,,,,,,,,,918,,,,,918","918,918,918,,918,918,918,918,,,,,918,918,,,,919,919,919,918,919,918","918,918,919,919,918,918,,919,,919,919,919,919,919,919,919,,,,,,919,919","919,919,919,919,919,,,919,,,,,,,919,,,919,919,919,919,919,919,919,919",",919,919,919,,919,919,919,919,919,,,,,,,,,,,,,,,,,,,,919,,,919,,,919","919,,,919,,,,,,919,,,,,,,,,919,,,,,919,919,919,919,,919,919,919,919",",,,,919,919,,,,497,497,497,919,497,919,919,919,497,497,919,919,,497",",497,497,497,497,497,497,497,,,,,,497,497,497,497,497,497,497,,,497",",,,,,,497,,,497,497,497,497,497,497,497,497,,497,497,497,,497,497,497","497,497,,,,,,,,,,,,,,,,,,,,497,,,497,,,497,497,,,497,,,,,,497,,,,,,",",,497,,,,,497,497,497,497,,497,497,497,497,,,,,497,497,,,,,,,497,,497","497,497,,,497,497,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,133,133,133",",,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,133,,,,133,,,,,,,,,133",",,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,132,132,132,133","132,133,133,133,132,132,133,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,,,,,,,,,132,,,,,132,132,132,132,,132","132,132,132,,,,,132,132,,,,131,131,131,132,131,132,132,132,131,131,132","132,,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,,,,,,131",",,,,,,,,131,,,,,131,131,131,131,,131,131,131,131,,,,,131,131,,,,130","130,130,131,130,131,131,131,130,130,131,131,,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,,,,,,,,,130,,,,,130,130,130","130,,130,130,130,130,,,,,130,130,,,,1149,1149,1149,130,1149,130,130","130,1149,1149,130,130,,1149,,1149,1149,1149,1149,1149,1149,1149,,,,",",1149,1149,1149,1149,1149,1149,1149,,,1149,,,,,,,1149,,,1149,1149,1149","1149,1149,1149,1149,1149,,1149,1149,1149,,1149,1149,1149,1149,1149,",",,,,,,,,,,,,,,,,,,1149,,,1149,,,1149,1149,,,1149,,,,,,1149,,,,,,,,,1149",",,,,1149,1149,1149,1149,,1149,1149,1149,1149,,,,,1149,1149,,,,1150,1150","1150,1149,1150,1149,1149,1149,1150,1150,1149,1149,,1150,,1150,1150,1150","1150,1150,1150,1150,,,,,,1150,1150,1150,1150,1150,1150,1150,,,1150,",",,,,,1150,,,1150,1150,1150,1150,1150,1150,1150,1150,,1150,1150,1150",",1150,1150,1150,1150,1150,,,,,,,,,,,,,,,,,,,,1150,,,1150,,,1150,1150",",,1150,,,,,,1150,,,,,,,,,1150,,,,,1150,1150,1150,1150,,1150,1150,1150","1150,,,,,1150,1150,,,,52,52,52,1150,52,1150,1150,1150,52,52,1150,1150",",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,,,,,,52,,,,,,,,,52,,,,,52,52,52,52,,52,52,52,52",",,,,52,52,,,,129,129,129,52,129,52,52,52,129,129,52,52,,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,,,,,,,,,129,,",",,129,129,129,129,,129,129,129,129,,,,,129,129,,,,,,,129,,129,129,129",",,129,129,124,124,124,124,124,,,,124,124,,,,124,,124,124,124,124,124","124,124,,,,,,124,124,124,124,124,124,124,,,124,,,,,,124,124,124,124","124,124,124,124,124,124,124,124,,124,124,124,,124,124,124,124,124,,",",,,,,,,,,,,,,,,,,124,,,124,,,124,124,,,124,,124,,,,124,,,,,,,,,124,",",,,124,124,124,124,,124,124,124,124,,,,,124,124,,,,,,124,124,,124,124","124,,,124,124,1162,1162,1162,,1162,,,,1162,1162,,,,1162,,1162,1162,1162","1162,1162,1162,1162,,,,,,1162,1162,1162,1162,1162,1162,1162,,,1162,",",,,,,1162,,,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162",",1162,1162,1162,1162,1162,,,,,,,,,,,,,,,,,,,,1162,,,1162,,,1162,1162",",,1162,,1162,,1162,,1162,,,1162,,,,,,1162,,,,,1162,1162,1162,1162,,1162","1162,1162,1162,,,,,1162,1162,,,,471,471,471,1162,471,1162,1162,1162","471,471,1162,1162,,471,,471,471,471,471,471,471,471,,,,,,471,471,471","471,471,471,471,,,471,,,,,,,471,,,471,471,471,471,471,471,471,471,,471","471,471,,471,471,471,471,471,,,,,,,,,,,,,,,,,,,,471,,,471,,,471,471",",,471,,,,,,471,,,,,,,,,471,,,,,471,471,471,471,,471,471,471,471,,,,","471,471,,,,277,277,277,471,277,471,471,471,277,277,471,471,,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,277,277,277,,277,277,277,277,,,,,277,277,,,,,,,277,,277,277","277,470,,277,277,,,,470,470,470,,,470,470,470,,470,,,,,,,,470,470,470","470,470,,,,,,,,470,470,,470,470,470,470,470,,,,,,,,,,,,,,,,,,,,,,,470","470,470,470,470,470,470,470,470,470,470,470,470,470,,,470,470,470,,","470,,,470,,,470,470,,470,,470,,470,,470,470,,470,470,470,470,470,,470","470,470,,,,,,,,,,,,,,470,,,470,470,470,470,,470,469,470,,,,,470,469","469,469,,,469,469,469,,469,,,,,,,,469,469,469,469,469,,,,951,951,951","951,469,469,,469,469,469,469,469,,,,,951,951,951,,,,,,,,,,,951,951,",",951,469,469,469,469,469,469,469,469,469,469,469,469,469,469,,,469,469","469,,,469,,,469,,,469,469,,469,,469,,469,,469,469,,469,469,469,469,469",",469,469,469,,951,951,951,951,,951,951,951,951,,,,469,951,951,469,469","469,469,,469,951,469,951,951,951,460,469,7,7,7,7,7,460,460,460,7,7,460","460,460,7,460,7,7,7,7,7,7,7,460,460,460,460,,7,7,7,7,7,7,7,460,460,7","460,460,460,460,460,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7,7,7,7,7,460,460","460,460,460,460,460,460,460,460,460,460,460,460,,,460,460,460,7,,460","7,460,460,7,7,460,460,7,460,7,460,,460,7,460,460,,460,460,460,460,460","7,460,460,460,,7,7,7,7,,7,7,7,7,,,,460,7,7,460,460,,460,,460,7,,7,7","7,,460,7,7,75,75,75,,75,,,,75,75,,,,75,,75,75,75,75,75,75,75,,,,,,75","75,75,75,75,75,75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75",",75,75,75,75,75,,,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,",",,,,75,,,,,75,75,75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75","64,,75,75,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64,64,,,,,,,,64,64",",64,64,64,64,64,,,,,,,,,,,,,,,,,,,,,,,64,64,64,64,64,64,64,64,64,64","64,64,64,64,,,64,64,64,,,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64","64,64,,64,,64,,,,,,,,,,,,,,64,,,64,64,64,64,,64,,64,,278,278,278,64","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,,,,,,278,,,,,,,,,278,,,,,278,278,278,278,,278,278,278,278,,,,","278,278,,,,221,221,221,278,221,278,278,278,221,221,278,278,,221,,221","221,221,221,221,221,221,,,,,,221,221,221,221,221,221,221,,,221,,,,,",",221,,,221,221,221,221,221,221,221,221,,221,221,221,,221,221,221,221","221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,,,,,221,,,,,,,,,221",",,,,221,221,221,221,,221,221,221,221,,,,,221,221,,,,220,220,220,221","220,221,221,221,220,220,221,221,,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,,,220,220,,,220,,220,,,,220,,,,,,,,,220,,,,,220,220,220,220,,220","220,220,220,,,,,220,220,,,,800,800,800,220,800,220,220,220,800,800,220","220,,800,,800,800,800,800,800,800,800,,,,,,800,800,800,800,800,800,800",",,800,,,,,,,800,,,800,800,800,800,800,800,800,800,,800,800,800,,800","800,800,800,800,,,,,,,,,,,,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,800",",,,,,,,,800,,,,,800,800,800,800,,800,800,800,800,,,,,800,800,,,,797","797,797,800,797,800,800,800,797,797,800,800,,797,,797,797,797,797,797","797,797,,,,,,797,797,797,797,797,797,797,,,797,,,,,,,797,,,797,797,797","797,797,797,797,797,,797,797,797,,797,797,797,797,797,,,,,,,,,,,,,,",",,,,,797,,,797,,,797,797,,,797,,,,,,797,,,,,,,,,797,,,,,797,797,797","797,,797,797,797,797,,,,,797,797,,,,386,386,386,797,386,797,797,797","386,386,797,797,,386,,386,386,386,386,386,386,386,,,,,,386,386,386,386","386,386,386,,,386,,,,,,,386,,,386,386,386,386,386,386,386,386,,386,386","386,,386,386,386,386,386,,,,,,,,,,,,,,,,,,,,386,,,386,,,386,386,,,386",",,,,,386,,,,,,,,,386,,,,,386,386,386,386,,386,386,386,386,,,,,386,386",",,,524,524,524,386,524,386,386,386,524,524,386,386,,524,,524,524,524","524,524,524,524,,,,,,524,524,524,524,524,524,524,,,524,,,,,,,524,,,524","524,524,524,524,524,524,524,,524,524,524,,524,524,524,524,524,,,,,,",",,,,,,,,,,,,,524,,,524,,,524,524,,,524,,,,,,524,,,,,,,,,524,,,,,524","524,524,524,,524,524,524,524,,,,,524,524,,,,523,523,523,524,523,524","524,524,523,523,524,524,,523,,523,523,523,523,523,523,523,,,,,,523,523","523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523,523,523,523",",523,523,523,,523,523,523,523,523,,,,,,,,,,,,,,,,,,,,523,,,523,,,523","523,,,523,,,,,,523,,,,,,,,,523,,,,,523,523,523,523,,523,523,523,523",",,,,523,523,,,,522,522,522,523,522,523,523,523,522,522,523,523,,522",",522,522,522,522,522,522,522,,,,,,522,522,522,522,522,522,522,,,522",",,,,,,522,,,522,522,522,522,522,522,522,522,,522,522,522,,522,522,522","522,522,,,,,,,,,,,,,,,,,,,,522,,,522,,,522,522,,,522,,,,,,522,,,,,,",",,522,,,,,522,522,522,522,,522,522,522,522,,,,,522,522,,,,520,520,520","522,520,522,522,522,520,520,522,522,,520,,520,520,520,520,520,520,520",",,,,,520,520,520,520,520,520,520,,,520,,,,,,,520,,,520,520,520,520,520","520,520,520,520,520,520,520,,520,520,520,520,520,,,,,,,,,,,,,,,,,,,","520,,,520,,,520,520,,,520,,520,,520,,520,,,520,,,,,,520,,,,,520,520","520,520,,520,520,520,520,,,,,520,520,,,,219,219,219,520,219,520,520","520,219,219,520,520,,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,,,219,219",",,219,,219,,,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,",",,,219,219,,,,510,510,510,219,510,219,219,219,510,510,219,219,,510,","510,510,510,510,510,510,510,,,,,,510,510,510,510,510,510,510,,,510,",",,,,,510,,,510,510,510,510,510,510,510,510,,510,510,510,,510,510,510","510,510,,,,,,,,,,,,,,,,,,,,510,,,510,,,510,510,,,510,,,,,,510,,,,,,",",,510,,,,,510,510,510,510,,510,510,510,510,,,,,510,510,,,,1017,1017","1017,510,1017,510,510,510,1017,1017,510,510,,1017,,1017,1017,1017,1017","1017,1017,1017,,,,,,1017,1017,1017,1017,1017,1017,1017,,,1017,,,,,,","1017,,,1017,1017,1017,1017,1017,1017,1017,1017,,1017,1017,1017,,1017","1017,,,1017,,,,,,,,,,,,,,,,,,,,1017,,,1017,,,1017,1017,,,1017,,,,,,",",,,,,,,,,,,,,1017,1017,1017,1017,,1017,1017,1017,1017,,,,,1017,1017",",,,1081,1081,1081,1017,1081,1017,1017,1017,1081,1081,,,,1081,,1081,1081","1081,1081,1081,1081,1081,,,,,,1081,1081,1081,1081,1081,1081,1081,,,1081",",,,,,,1081,,,1081,1081,1081,1081,1081,1081,1081,1081,,1081,1081,1081",",1081,1081,,,1081,,,,,,,,,,,,,,,,,,,,1081,,,1081,,,1081,1081,,,1081",",,,,,,,,,,,,,,,,,,,1081,1081,1081,1081,,1081,1081,1081,1081,,,,,1081","1081,,,,341,341,341,1081,341,1081,1081,1081,341,341,,,,341,,341,341","341,341,341,341,341,,,,,,341,341,341,341,341,341,341,,,341,,,,,,,341",",,341,341,341,341,341,341,341,341,,341,341,341,,341,341,,,341,,,,,,",",,,,,,,,,,,,,341,,,341,,,341,341,,,341,,,1214,,1214,1214,1214,1214,1214",",,,,,,,,1214,,341,341,341,341,,341,341,341,341,,,,,341,341,,,,341,,1214","341,,341,341,341,588,588,588,,588,1214,1214,,588,588,1214,,,588,,588","588,588,588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,",",588,,,588,588,588,588,588,588,588,588,,588,588,588,,588,588,,,588,",",,,,,,,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,,,,,,,,,,,,,,,588,588","588,588,,588,588,588,588,,,,,588,588,,,,40,40,40,588,40,588,588,588","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,,,1210,,1210,1210,1210,1210,1210,,,,,,,,,1210",",40,40,40,40,,40,40,40,40,,,,,40,40,,,,40,,1210,40,,40,40,40,803,803","803,,803,1210,1210,,803,803,1210,,,803,,803,803,803,803,803,803,803",",,,,,803,803,803,803,803,803,803,,,803,,,,,,,803,,,803,803,803,803,803","803,803,803,,803,803,803,,803,803,,,803,,,,,,,,,,,,,,,,,,,,803,,,803",",,803,803,,,803,,,,,,,,,,,,,,,,,,,,803,803,803,803,,803,803,803,803",",,,,803,803,,,,360,360,360,803,360,803,803,803,360,360,,,,360,,360,360","360,360,360,360,360,,,,,,360,360,360,360,360,360,360,,,360,,,,,,,360",",,360,360,360,360,360,360,360,360,,360,360,360,,360,360,,,360,,,,,,",",,,,,,,,,,,,,360,,,360,,,360,360,,,360,,,,,,,,,,,,,,,,,,,,360,360,360","360,,360,360,360,360,,,,,360,360,,,,1144,1144,1144,360,1144,360,360","360,1144,1144,,,,1144,,1144,1144,1144,1144,1144,1144,1144,,,,,,1144","1144,1144,1144,1144,1144,1144,,,1144,,,,,,,1144,,,1144,1144,1144,1144","1144,1144,1144,1144,,1144,1144,1144,,1144,1144,,,1144,,,,,,,,,,,,,,",",,,,,1144,,,1144,,,1144,1144,,,1144,,,,,,,,,,,,,,,,,,,,1144,1144,1144","1144,,1144,1144,1144,1144,,,,,1144,1144,,,,77,77,77,1144,77,1144,1144","1144,77,77,,,,77,,77,77,77,77,77,77,77,,,,,,77,77,77,77,77,77,77,,,77",",,,,,,77,,,77,77,77,77,77,77,77,77,,77,77,77,,77,77,,,77,,,,,,,,,,,",",,,,,77,,,77,,,77,,,77,77,,,77,,,,,,,,,,,,,,,,,,,,77,77,77,77,,77,77","77,77,,,,,77,77,,,,814,814,814,77,814,77,77,77,814,814,,,,814,,814,814","814,814,814,814,814,,,,,,814,814,814,814,814,814,814,,,814,,,,,,,814",",,814,814,814,814,814,814,814,814,,814,814,814,,814,814,,,814,,,,,,",",,,,,,,,,,,,,814,,,814,,,814,814,,,814,,,,,,,,,,,,,,,,,,,,814,814,814","814,,814,814,814,814,,,,,814,814,,,,597,597,597,814,597,814,814,814","597,597,,,,597,,597,597,597,597,597,597,597,,,,,,597,597,597,597,597","597,597,,,597,,,,,,,597,,,597,597,597,597,597,597,597,597,,597,597,597",",597,597,,,597,,,,,,,,,,,,,,,,,,,,597,,,597,,,597,597,,,597,,,,,,,,",",,,,,,,,,,,597,597,597,597,,597,597,597,597,,,,,597,597,,,,39,39,39","597,39,597,597,597,39,39,,,,39,,39,39,39,39,39,39,39,,,,,,39,39,39,39","39,39,39,,,39,,,,,,,39,,,39,39,39,39,39,39,39,39,,39,39,39,,39,39,,","39,,,,,,,,,,,,,,,,,,,,39,,,39,,,39,39,,,39,,39,,,,,,,,,,,,,,,,,,39,39","39,39,,39,39,39,39,,,,,39,39,,,,76,76,76,39,76,39,39,39,76,76,,,,76",",76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76,,,76,,,,,,,76,,,76,76","76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,,,,,,,,,,,,,,,76,,,76,",",76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,,76,76,76,76,,,,,76,76",",,,78,78,78,76,78,76,76,76,78,78,,,,78,,78,78,78,78,78,78,78,,,,,,78","78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78,78",",78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,,,,",",,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,,,,78,,78,78,78,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,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,10,10,10,10,10,10,10,10,,,10,10,,,,,,,,,,,,,,10,427","427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427","427,427,427,427,427,427,,,,427,427,427,427,427,427,427,427,427,427,",",,,,427,427,427,427,427,427,427,427,427,,,427,,,,,,,,427,427,,427,427","427,427,427,427,427,,,427,427,,,,427,427,427,427,,,,,,,,,,,,,,427,427",",427,427,427,427,427,427,427,427,427,427,427,427,,,427,427,,,,,,,,,",",,,,427,667,667,667,667,667,667,667,667,667,667,667,667,667,667,667","667,667,667,667,667,667,667,667,667,,,,667,667,667,667,667,667,667,667","667,667,,,,,,667,667,667,667,667,667,667,667,667,,,667,,,,,,,,667,667",",667,667,667,667,667,667,667,,,667,667,,,,667,667,667,667,,,,,,,,,,",",,,667,667,,667,667,667,667,667,667,667,667,667,667,667,667,,,667,667",",,,,,,,,,,,,,667,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,,,,,,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,11,11,11,11,11",",,11,11,,,,,,,,,,,,,,11,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26","26,26,26,26,26,26,26,26,26,,,,26,26,26,26,26,26,26,26,26,26,,,,,,26","26,26,26,26,26,26,26,26,26,26,26,,26,,,,,,26,26,,26,26,26,26,26,26,26",",,26,26,,,,26,26,26,26,,,,,,26,,,,,,,,26,26,,26,26,26,26,26,26,26,26","26,26,26,26,,,26,753,753,753,753,,,,,,1026,,1026,1026,1026,1026,1026","753,753,753,753,,,,753,1026,,,,,753,753,,,753,,,,,,,,,,,,,1026,,,,,",",753,,,753,1026,1026,,753,,1026,753,,,,,,,,,,,,,,,,753,,,,753,753,753","753,,753,753,753,753,,,,,753,753,1205,1205,1205,1205,1026,,753,,753","753,753,,,753,753,,1205,1205,1205,1205,,,1208,1205,1208,1208,1208,1208","1208,1205,1205,,,1205,,,,1208,,,,,,,,,,,,,,,,1205,,,1205,,,1208,1205",",,1205,,,,,1208,1208,1208,1208,,,,1208,,,,1205,,,,1205,1205,1205,1205",",1205,1205,1205,1205,,,,,1205,1205,1129,1129,1129,1129,,,1205,,1205","1205,1205,,,1205,1205,,1129,1129,1129,1129,,,1138,1129,1138,1138,1138","1138,1138,1129,1129,,,1129,,,,1138,,,,,,,,,,,,,,,,1129,,,1129,,,1138","1129,,,1129,,1129,,,1138,1138,1138,1138,,,,1138,,,,1129,,,,1129,1129","1129,1129,,1129,1129,1129,1129,,,,,1129,1129,989,989,989,989,,,1129",",1129,1129,1129,,,1129,1129,,989,989,989,989,,,,989,989,,,,,989,989",",,989,989,,,,,,,,,,,,,,,,,,,989,,,989,,,,989,,,989,,989,,,,,,,989,,",",,,,989,,,,989,989,989,989,,989,989,989,989,,,,,989,989,942,942,942","942,,,989,,989,989,989,,,989,989,,942,942,942,942,,,1135,942,1135,1135","1135,1135,1135,942,942,,,942,,,,1135,,,,,,,,,,,,,,,,942,,,942,,,1135","942,,,942,,,,,1135,1135,1135,1135,,,,1135,,,,942,,,,942,942,942,942",",942,942,942,942,,,,,942,942,924,924,924,924,,,942,,942,942,942,,,942","942,,924,924,924,924,,,1231,924,1231,1231,1231,1231,1231,924,924,,,924",",,,1231,,,,,,,,,,,,,,,,924,,,924,,,1231,924,,,924,,924,,,,,1231,1231",",,,1231,,,,924,,,,924,924,924,924,,924,924,924,924,,,,,924,924,745,745","745,745,,,924,,924,924,924,,,924,924,,745,745,745,745,,,,745,,,,,,745","745,,,745,,,,,,,,,,,,,,,,,,,,745,,,745,,,,745,,,745,,745,,,,,,,1166",",1166,1166,1166,1166,1166,745,,,,745,745,745,745,1166,745,745,745,745",",,,,745,745,745,943,943,943,943,,745,,745,745,745,1166,,745,745,,,943","943,943,943,,1166,1166,943,,,1166,,,943,943,,,943,,,,,,,,,,,,,,,,,,",",943,,,943,,,,943,,,943,,,1166,,,,,,,,,,,,,943,,,,943,943,943,943,,943","943,943,943,,,,,943,943,930,930,930,930,,,943,,943,943,943,,,943,943",",930,930,930,930,,,,930,930,,,,,930,930,,,930,930,,,,,,,,,,,,,,,,,,","930,,,930,,,,930,,,930,,930,,,,,,,930,,,,,,,930,,,,930,930,930,930,","930,930,930,930,,,,,930,930,929,929,929,929,,,930,,930,930,930,,,930","930,,929,929,929,929,,,,929,929,,,,,929,929,,,929,929,,,,,,,,,,,,,,",",,,,929,,,929,,,,929,,,929,,929,,,,,,,929,,,,,,,929,,,,929,929,929,929",",929,929,929,929,,,,,929,929,,,,,,,929,,929,929,929,,,929,929,780,780","780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780","780,780,780,780,780,,,,780,780,780,780,780,780,780,780,780,780,,,,,","780,780,780,780,780,780,780,780,780,,,780,,,,,,,,780,780,,780,780,780","780,780,780,780,,,780,780,,,,780,780,780,780,,,,,,,,,,,,,,780,780,,780","780,780,780,780,780,780,780,780,780,780,780,,,780,528,528,528,528,,","1212,,1212,1212,1212,1212,1212,,,,528,528,528,528,,1212,,528,528,,,",",528,528,,,528,528,,,,,,,,,1212,,,,,,,,,,528,1212,1212,528,,,1212,528",",,528,,528,,,,,,,528,,,,,,,528,,,,528,528,528,528,,528,528,528,528,",",,,528,528,527,527,527,527,,,528,,528,528,528,,,528,528,,527,527,527","527,,,,527,527,,,,,527,527,,,527,527,,,,,,,,,,,,,,,,,,,527,,,527,,,","527,,,527,,527,,,,,,,527,,,,,,,527,,,,527,527,527,527,,527,527,527,527",",,,,527,527,1173,1173,1173,1173,,,527,,527,527,527,,,527,527,,1173,1173","1173,1173,,,,1173,,,,,,1173,1173,,,1173,,,,,,,,,,,,,,,,,,,,1173,,,1173",",,,1173,,,1173,,,,,,,,,,,,,,,,1173,,,,1173,1173,1173,1173,,1173,1173","1173,1173,,,,,1173,1173,1116,1116,1116,1116,,,1173,,1173,1173,1173,",",1173,1173,,1116,1116,1116,1116,,,,1116,,,,,,1116,1116,,,1116,,,,,,",",,,,,,,,,,,,,1116,,,1116,,,,1116,,,1116,,,,,,,,,,,,,,,,1116,,,,1116","1116,1116,1116,,1116,1116,1116,1116,,,,,1116,1116,926,926,926,926,,","1116,,1116,1116,1116,,,1116,1116,,926,926,926,926,,,,926,,,,,,926,926",",,926,,,,,,,,,,,,,,,,,,,,926,,,926,,,,926,,,926,,,,,,,,,,,,,,,,926,",",,926,926,926,926,,926,926,926,926,,,,,926,926,1125,1125,1125,1125,",",926,,926,926,926,,,926,926,,1125,1125,1125,1125,,,,1125,,,,,,1125,1125",",,1125,,,,,,,,,,,,,,,,,,,,1125,,,1125,,,,1125,,,1125,,,,,,,,,,,,,,,","1125,,,,1125,1125,1125,1125,,1125,1125,1125,1125,,,,,1125,1125,936,936","936,936,,,1125,,1125,1125,1125,,,1125,1125,,936,936,936,936,,,,936,",",,,,936,936,,,936,,,,,,,,763,763,763,763,,,,,,,,,936,,,936,763,763,763","936,,,936,,936,,,,,763,763,,,763,,,,,936,,,,936,936,936,936,,936,936","936,936,,,,,936,936,,,,,,,936,,936,936,936,,,936,936,233,,233,233,233","233,233,,,,,763,763,763,763,233,763,763,763,763,,,,,763,763,950,950","950,950,,,763,,763,763,763,233,,,,,950,950,950,,233,233,233,233,,,,233",",950,950,,,950,,,,,,,,,,,,705,,705,705,705,705,705,,,,,,,,,705,,,,,","234,233,234,234,234,234,234,,,,,,,,,234,705,950,950,950,950,,950,950","950,950,,705,705,,950,950,705,,,,,234,950,,950,950,950,,,,234,234,234","234,,,409,234,409,409,409,409,409,,1020,,1020,1020,1020,1020,1020,409",",,,,705,,,1020,,644,,644,644,644,644,644,,,,,,409,409,,644,234,,,,1020","409,409,409,409,,,,409,1020,1020,1020,1020,,,,1020,644,,,,,,,,,644,644","644,644,,,1024,644,1024,1024,1024,1024,1024,,,,,,,,,1024,409,,,,,,,","1020,,,,,,,,,,,,,1024,,,,644,,,,,,,1024,1024,675,675,,1024,675,,,,,",",,675,675,,675,675,675,675,675,675,675,,,675,675,,,,675,675,675,675",",,,,,675,,,,,1024,,,675,675,,675,675,675,675,675,675,675,675,675,675","675,675,636,636,675,,636,,,,,,,,636,636,,636,636,636,636,636,636,636",",,636,636,,,,636,636,636,636,,,,,,636,,,,,,,,636,636,,636,636,636,636","636,636,636,636,636,636,636,636,629,629,636,,629,,,,,,,,629,629,,629","629,629,629,629,629,629,,,629,629,,,,629,629,629,629,,,,,,629,,,,,,",",629,629,,629,629,629,629,629,629,629,629,629,629,629,629,226,226,629",",226,,,,,,,,226,226,,226,226,226,226,226,226,226,,,226,226,,,,226,226","226,226,,,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226","226,226,226,602,602,226,,602,,,,,,,,602,602,,602,602,602,602,602,602","602,,,602,602,,,,602,602,602,602,,,,,,602,,,,,,,,602,602,,602,602,602","602,602,602,602,602,602,602,602,602,637,637,602,,637,,,,,,,,637,637",",637,637,637,637,637,637,637,,,637,637,,,,637,637,637,637,,,,,,637,",",,,,,,637,637,,637,637,637,637,637,637,637,637,637,637,637,637,225,225","637,,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,302,302,225,,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,519,519,302,,519,,,,,,,,519,519",",519,519,519,519,519,519,519,,,519,519,,,,519,519,519,519,,,,,,519,",",,,,,,519,519,,519,519,519,519,519,519,519,519,519,519,519,519,518,518","519,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,,,518,518,,,,518","518,518,518,,,,,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,518","518,518,518,518,591,591,518,,591,,,,,,,,591,591,,591,591,591,591,591","591,591,,,591,591,,,,591,591,591,591,,,,,,591,,,,,,,,591,591,,591,591","591,591,591,591,591,591,591,591,591,591,592,592,591,,592,,,,,,,,592","592,,592,592,592,592,592,592,592,,,592,592,,,,592,592,592,592,,,,,,592",",,,,,,,592,592,,592,592,592,592,592,592,592,592,592,592,592,592,1163","1163,592,,1163,,,,,,,,1163,1163,,1163,1163,1163,1163,1163,1163,1163",",,1163,1163,,,,1163,1163,1163,1163,,,,,,1163,,,,,,,,1163,1163,,1163","1163,1163,1163,1163,1163,1163,1163,1163,1163,1163,1163,674,674,1163",",674,,,,,,,,674,674,,674,674,674,674,674,674,674,,,674,674,,,,674,674","674,674,,,,,,674,,,,,,,,674,674,,674,674,674,674,674,674,674,674,674","674,674,674,1164,1164,674,,1164,,,,,,,,1164,1164,,1164,1164,1164,1164","1164,1164,1164,,,1164,1164,,,,1164,1164,1164,1164,,,,,,1164,,,,,,,,1164","1164,,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,630","630,1164,,630,,,,,,,,630,630,,630,630,630,630,630,630,630,,,630,630",",,,630,630,630,630,,,,,,630,,,,,,,,630,630,,630,630,630,630,630,630","630,630,630,630,630,630,1188,1188,630,,1188,,,,,,,,1188,1188,,1188,1188","1188,1188,1188,1188,1188,,,1188,1188,,,,1188,1188,1188,1188,,,,,,1188",",,,,,,,1188,1188,,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188","1188,1188,601,601,1188,,601,,,,,,,,601,601,,601,601,601,601,601,601","601,,,601,601,,,,601,601,601,601,,,,,,601,,,,,,,,601,601,,601,601,601","601,601,601,601,601,601,601,601,601,,,601"],racc_action_check=arr=$$$("Array").$new(28717,nil),idx=0,$send(clist,"each",[],(function(str){return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(function(i){var $writer=nil;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),idx=$rb_plus(idx,1)}),1)}),1),racc_action_pointer=[nil,1550,2590,30,nil,485,nil,21057,1279,-15,24908,25292,63,nil,111,130,888,195,878,334,213,587,nil,-72,16018,1438,25420,260,nil,586,nil,10,7680,8479,8613,9947,10209,nil,1870,24507,23582,nil,199,495,356,292,12722,13115,252,13377,14041,977,19960,226,694,nil,nil,nil,nil,nil,nil,nil,nil,nil,21341,nil,15494,15351,14696,170,nil,14434,14303,nil,nil,21200,24638,24114,24769,nil,nil,nil,nil,nil,nil,nil,nil,nil,877,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,610,nil,nil,722,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,20234,nil,nil,nil,nil,20091,19567,19436,19305,19174,nil,4318,nil,-26,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,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,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,266,nil,4462,22788,21740,21609,14172,13910,13779,27931,27748,nil,nil,264,2734,305,nil,27294,27386,317,1294,12043,11912,11257,nil,nil,1133,138,140,432,174,389,452,nil,10078,131,191,3022,455,nil,nil,7277,7146,7015,6753,6491,6360,6229,6098,5967,18507,18376,18245,17590,17459,17328,16411,16149,15756,15220,15089,20639,21478,nil,nil,nil,nil,13648,nil,nil,583,548,381,-62,413,376,696,695,584,585,nil,nil,nil,15625,nil,nil,27992,nil,nil,484,16673,17066,nil,nil,nil,nil,nil,nil,nil,17197,nil,2446,nil,455,459,nil,17721,512,17852,nil,nil,17983,18114,nil,nil,-73,nil,5836,1711,509,484,1726,513,564,525,23312,2878,999,1139,614,617,582,nil,610,571,253,616,644,nil,nil,nil,650,171,611,23852,nil,471,1022,3742,3886,687,nil,691,12591,nil,677,2302,1567,638,nil,541,621,676,662,651,690,nil,870,35,36,22133,1006,4894,459,766,651,25,39,730,747,4,793,nil,nil,1141,1285,370,nil,692,nil,714,14827,nil,27438,nil,531,386,291,288,421,142,191,396,nil,nil,nil,nil,nil,nil,nil,713,25036,nil,nil,nil,nil,726,nil,798,717,14565,725,nil,nil,715,nil,690,-60,819,nil,nil,1582,nil,nil,nil,nil,nil,1870,735,nil,740,749,217,251,21057,nil,nil,nil,0,861,795,nil,nil,20916,20780,20508,880,882,nil,nil,769,775,780,nil,nil,785,787,809,nil,nil,nil,nil,nil,nil,nil,nil,nil,801,1280,nil,nil,19031,nil,nil,nil,1,nil,nil,nil,899,nil,nil,901,579,22919,951,nil,nil,nil,-26,nil,885,28114,28053,22657,-85,22526,22395,22264,835,853,26710,26612,3454,5300,814,855,936,938,947,952,5693,5431,5562,5169,5038,4894,4750,4606,4462,3482,3568,4318,4174,2590,4030,nil,154,nil,13518,nil,nil,nil,nil,13246,889,897,901,nil,nil,nil,902,nil,nil,12984,nil,12853,nil,12460,nil,219,nil,nil,nil,12317,1438,nil,904,909,nil,nil,910,23451,916,12174,28175,28236,995,958,nil,nil,24376,929,nil,11781,28602,27809,11650,3598,11388,nil,1066,947,990,nil,11126,nil,nil,10995,nil,nil,nil,4030,1075,nil,3742,25,1080,1084,37,1086,10733,10602,27687,28480,-5,nil,nil,472,nil,27626,27870,10340,nil,nil,191,2014,nil,27463,nil,nil,nil,nil,1249,nil,nil,nil,977,nil,nil,247,nil,286,nil,nil,966,nil,968,nil,nil,nil,25164,nil,9816,971,9673,9411,9280,28358,27565,9018,8875,733,1011,8744,8076,7945,7814,1017,nil,nil,7539,7408,1021,nil,1075,1726,1105,6884,nil,nil,1120,nil,nil,376,13512,nil,13482,nil,27365,nil,975,6622,nil,1310,nil,992,997,1057,1002,nil,nil,nil,nil,nil,nil,1090,2014,nil,nil,nil,307,332,222,361,1006,5693,5562,nil,120,nil,nil,nil,nil,1029,nil,nil,nil,555,26091,311,nil,1007,1092,1014,nil,nil,25503,nil,nil,375,nil,nil,586,nil,nil,861,27241,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,791,464,nil,nil,1016,26529,nil,1148,nil,1131,4,nil,nil,16280,nil,1046,1053,1154,nil,1041,nil,1088,22002,nil,nil,21871,nil,109,23721,1044,nil,1048,-1,233,1103,249,799,1117,1088,24245,nil,1156,2158,10864,nil,nil,nil,372,876,nil,1213,nil,nil,nil,nil,nil,1219,1220,nil,nil,6,1101,-21,-19,68,7,1150,997,989,nil,1103,4606,14958,nil,1227,22,1107,nil,nil,nil,nil,nil,4750,nil,nil,nil,nil,nil,nil,nil,nil,1106,15887,1110,387,385,110,500,nil,2302,16542,nil,1110,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,16804,16935,1236,nil,3886,1121,1169,nil,nil,1129,nil,1212,nil,nil,1131,1136,nil,1141,1143,nil,1144,nil,nil,nil,1150,1204,507,nil,nil,18638,18769,18900,5169,5300,5431,333,25993,1231,27004,-65,-35,26386,26288,480,-32,1154,1155,nil,27200,nil,1154,747,nil,1178,25895,26190,nil,929,1243,281,nil,nil,27339,20916,nil,nil,nil,nil,8207,nil,nil,nil,nil,nil,8338,nil,nil,1227,nil,nil,1237,1224,nil,nil,429,2446,nil,nil,nil,nil,1227,250,nil,137,nil,1357,nil,9149,1361,nil,nil,25797,9542,5038,-18,1362,nil,1363,369,1582,nil,nil,nil,nil,1238,1285,1249,1247,304,nil,nil,10471,3310,3166,nil,3166,nil,nil,-10,23050,nil,nil,27446,nil,497,nil,27515,nil,25493,nil,nil,nil,nil,1248,1250,3022,2878,11519,nil,1251,nil,nil,nil,nil,1257,1258,1260,1262,1263,1264,nil,nil,nil,1309,1267,-39,nil,1276,nil,nil,-66,1275,nil,nil,nil,nil,nil,nil,1323,2734,2158,nil,nil,1285,1286,nil,1287,1288,1291,nil,1316,1296,1283,23181,nil,nil,nil,nil,nil,8,nil,26,771,nil,40,nil,nil,nil,1420,3454,3310,1136,nil,nil,nil,1438,32,33,872,1376,34,nil,1302,1312,1313,1314,1348,3584,26906,nil,nil,nil,nil,nil,nil,nil,1317,27102,nil,145,nil,25699,nil,nil,815,nil,nil,25898,nil,nil,25702,nil,13537,nil,nil,1342,23983,763,1397,3598,nil,19698,19829,nil,nil,nil,nil,1341,1454,713,nil,nil,nil,1457,20377,28297,28419,69,26144,nil,nil,nil,nil,1332,1333,26808,1341,nil,nil,1342,nil,nil,1361,1365,1382,1385,nil,1386,nil,618,28541,nil,973,4174,nil,nil,nil,nil,nil,1195,nil,1392,76,79,109,136,1391,25601,1394,nil,25604,nil,23629,nil,26599,nil,23359,nil,nil,1439,1442,nil,362,nil,142,nil,1399,1401,1404,1409,nil,nil,nil,25996,nil,nil,nil,nil,-129,nil],racc_action_default=[-1,-745,-4,-745,-2,-730,-5,-745,-8,-745,-745,-745,-745,-31,-745,-745,-36,-745,-745,-639,-639,-311,-52,-732,-745,-61,-745,-69,-70,-71,-75,-287,-287,-287,-324,-352,-353,-87,-13,-91,-99,-101,-745,-626,-627,-745,-745,-745,-745,-745,-745,-239,-745,-732,-258,-302,-303,-304,-305,-306,-307,-308,-309,-310,-718,-313,-317,-744,-707,-333,-335,-745,-745,-63,-63,-730,-745,-745,-745,-354,-355,-357,-358,-359,-360,-419,-563,-564,-565,-566,-587,-569,-570,-589,-591,-574,-579,-583,-585,-601,-602,-603,-587,-605,-607,-608,-609,-610,-716,-615,-616,-717,-618,-619,-620,-621,-622,-623,-624,-625,-630,-631,1238,-3,-731,-740,-741,-742,-7,-745,-745,-745,-745,-745,-9,-4,-19,-745,-130,-131,-132,-133,-134,-135,-136,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-207,-208,-209,-210,-24,-137,-13,-745,-745,-745,-745,-745,-277,-745,-745,-728,-729,-745,-13,-638,-636,-662,-662,-745,-13,-745,-745,-732,-733,-56,-745,-626,-627,-745,-311,-745,-745,-245,-745,-639,-639,-13,-745,-57,-59,-222,-223,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-259,-260,-261,-262,-745,-65,-66,-745,-130,-131,-170,-171,-172,-188,-193,-200,-203,-626,-627,-705,-745,-428,-430,-745,-726,-727,-76,-277,-745,-332,-434,-443,-445,-82,-440,-83,-732,-84,-265,-282,-292,-292,-286,-290,-293,-745,-587,-709,-713,-745,-85,-86,-730,-14,-745,-17,-745,-89,-13,-732,-745,-92,-95,-13,-107,-108,-745,-745,-115,-324,-327,-732,-745,-639,-639,-352,-353,-356,-441,-745,-97,-745,-103,-321,-745,-224,-225,-606,-233,-234,-745,-246,-251,-13,-315,-732,-266,-737,-737,-745,-745,-737,-745,-334,-62,-745,-745,-745,-13,-13,-730,-745,-731,-626,-627,-745,-745,-311,-745,-370,-371,-125,-126,-745,-128,-745,-311,-634,-745,-348,-662,-567,-745,-745,-745,-745,-745,-745,-745,-745,-6,-743,-25,-26,-27,-28,-29,-745,-745,-21,-22,-23,-138,-745,-32,-35,-298,-745,-745,-297,-33,-745,-37,-745,-311,-49,-51,-211,-270,-293,-53,-54,-38,-212,-270,-732,-278,-292,-292,-719,-720,-287,-438,-721,-722,-720,-719,-287,-437,-439,-721,-722,-745,-555,-745,-383,-384,-732,-704,-704,-644,-645,-647,-647,-647,-661,-663,-664,-665,-666,-667,-668,-669,-670,-671,-745,-673,-675,-677,-682,-684,-685,-688,-693,-695,-696,-698,-699,-700,-702,-745,-745,-745,-48,-219,-55,-732,-331,-745,-745,-745,-277,-321,-745,-745,-745,-745,-745,-745,-745,-220,-221,-226,-227,-228,-229,-230,-231,-235,-236,-237,-238,-240,-241,-242,-243,-244,-247,-248,-249,-250,-732,-263,-67,-732,-449,-287,-719,-720,-73,-77,-663,-732,-292,-732,-288,-447,-449,-732,-326,-283,-745,-284,-745,-289,-745,-294,-745,-712,-715,-12,-731,-16,-18,-732,-88,-319,-104,-93,-745,-732,-277,-745,-745,-114,-745,-638,-606,-745,-100,-105,-745,-745,-745,-745,-264,-745,-328,-745,-732,-745,-267,-739,-738,-269,-739,-322,-323,-708,-13,-361,-362,-13,-745,-745,-745,-745,-745,-745,-277,-745,-745,-321,-63,-125,-126,-127,-745,-745,-277,-344,-632,-745,-13,-420,-662,-423,-568,-588,-593,-745,-595,-571,-590,-745,-592,-573,-745,-576,-745,-578,-581,-745,-582,-745,-604,-10,-20,-745,-30,-745,-301,-745,-745,-277,-745,-745,-745,-745,-442,-745,-279,-281,-745,-745,-78,-276,-435,-745,-745,-80,-436,-44,-254,-744,-744,-350,-637,-745,-642,-643,-745,-745,-654,-745,-657,-745,-659,-745,-745,-372,-745,-374,-376,-379,-382,-732,-676,-686,-687,-697,-701,-640,-46,-256,-351,-330,-734,-719,-720,-719,-720,-732,-745,-745,-58,-463,-466,-467,-468,-469,-471,-473,-476,-477,-534,-732,-489,-492,-504,-508,-513,-515,-516,-519,-520,-587,-523,-525,-526,-527,-532,-533,-745,-745,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-745,-745,-553,-60,-745,-745,-706,-745,-450,-72,-431,-447,-272,-279,-274,-745,-409,-745,-325,-292,-291,-295,-745,-710,-711,-745,-15,-90,-745,-96,-102,-732,-719,-720,-275,-723,-113,-745,-98,-745,-218,-232,-252,-745,-314,-316,-318,-737,-744,-363,-744,-64,-364,-365,-338,-339,-745,-745,-455,-341,-745,-732,-719,-720,-723,-320,-13,-125,-126,-129,-732,-13,-745,-346,-745,-745,-732,-594,-597,-598,-599,-600,-13,-572,-575,-577,-580,-584,-586,-139,-34,-299,-745,-732,-719,-720,-720,-719,-50,-271,-745,-735,-292,-40,-214,-41,-215,-79,-42,-217,-43,-216,-81,-745,-745,-744,-368,-13,-556,-744,-557,-558,-704,-683,-688,-703,-646,-647,-647,-674,-647,-647,-694,-647,-671,-386,-689,-732,-745,-745,-381,-672,-745,-745,-745,-745,-745,-745,-442,-464,-745,-745,-474,-475,-745,-745,-745,-494,-732,-732,-488,-495,-501,-745,-745,-491,-745,-745,-745,-507,-514,-518,-745,-522,-524,-530,-531,-535,-536,-548,-549,-745,-611,-612,-613,-126,-551,-745,-68,-429,-409,-433,-432,-745,-732,-444,-410,-732,-13,-446,-285,-296,-714,-94,-442,-106,-732,-268,-745,-366,-745,-745,-340,-342,-745,-745,-13,-442,-745,-442,-745,-745,-13,-349,-421,-424,-426,-413,-745,-745,-300,-442,-39,-213,-280,-45,-255,-11,-13,-562,-369,-745,-745,-560,-641,-745,-650,-745,-652,-745,-655,-745,-658,-660,-373,-375,-377,-380,-47,-257,-745,-465,-504,-470,-472,-481,-485,-732,-732,-732,-732,-732,-732,-552,-486,-487,-511,-496,-499,-502,-732,-587,-736,-732,-505,-509,-512,-517,-521,-528,-529,-745,-253,-13,-74,-273,-704,-704,-390,-392,-392,-392,-408,-745,-732,-671,-679,-680,-691,-448,-329,-336,-745,-337,-745,-460,-295,-744,-343,-345,-633,-745,-13,-13,-745,-422,-596,-561,-13,-626,-627,-745,-745,-311,-559,-647,-647,-647,-647,-745,-745,-745,-478,-479,-480,-482,-483,-484,-503,-497,-745,-490,-745,-493,-745,-550,-451,-745,-388,-389,-393,-399,-401,-745,-404,-745,-406,-411,-745,-745,-678,-745,-13,-456,-745,-745,-452,-453,-454,-347,-745,-745,-732,-415,-417,-418,-555,-277,-745,-745,-321,-745,-648,-651,-653,-656,-378,-505,-745,-500,-506,-510,-704,-681,-391,-392,-392,-392,-392,-692,-392,-412,-690,-745,-321,-744,-13,-461,-462,-425,-427,-414,-745,-554,-732,-719,-720,-723,-320,-647,-745,-498,-387,-745,-396,-745,-398,-745,-402,-745,-405,-407,-320,-723,-367,-744,-416,-442,-649,-392,-392,-392,-392,-457,-458,-459,-745,-394,-397,-400,-403,-392,-395],clist=["44,411,301,309,313,44,141,141,318,318,318,340,285,418,454,493,493,284","382,384,385,473,141,389,297,19,626,511,709,832,19,693,460,466,356,356","44,344,344,635,127,698,699,571,225,618,621,339,563,702,704,706,144,144","890,303,708,598,897,241,983,19,352,352,44,134,387,388,366,136,217,356","356,356,393,297,297,421,422,423,424,798,232,232,305,312,314,907,8,19","795,445,795,8,445,302,561,678,940,352,352,352,359,734,778,737,737,790","445,555,127,124,438,439,1003,451,383,383,236,559,383,715,44,798,610","613,1160,1059,617,512,375,44,904,44,1158,484,484,756,756,123,229,235","336,1037,4,476,509,19,320,320,320,1030,373,973,1032,1184,19,1075,19","1016,782,128,2,607,656,658,17,1012,338,1044,1047,17,792,801,383,383","383,383,216,1055,571,377,380,933,595,595,986,399,516,434,798,493,934","406,408,427,527,461,318,528,795,795,17,826,952,953,286,780,786,390,8","667,652,654,657,657,44,369,605,425,378,8,470,785,1160,1184,298,432,44","379,17,397,1221,639,44,1078,576,372,608,374,818,19,846,19,709,997,19","642,915,1031,1077,44,1136,19,433,444,1079,1157,444,19,19,831,339,903","568,905,449,450,518,319,319,319,444,844,643,999,19,426,419,409,318,318","850,514,515,804,1097,584,17,318,1098,554,565,566,813,965,1151,17,1089","17,1172,1228,376,989,1191,1038,1039,899,795,1174,731,484,303,929,232","232,316,329,330,930,1180,645,939,309,942,460,466,1068,968,313,1061,44","599,1062,622,44,356,912,955,344,44,894,1143,1,553,410,339,412,1175,413","236,339,552,1030,1171,356,19,1206,344,414,19,415,1036,416,352,19,127","1042,1045,417,44,591,525,526,923,852,1043,1046,596,857,806,847,17,352","17,44,44,17,935,601,902,582,1064,1065,17,19,623,624,809,898,17,17,1178","587,907,,,1126,809,,19,19,,961,,,,17,836,581,629,320,,141,127,696,493","1219,845,320,,383,685,849,,,809,580,690,,,336,,,809,691,336,709,709","979,,236,641,1152,437,437,860,904,860,,,1019,,868,725,579,,583,674,144","1021,1023,589,1025,1027,,1028,,,992,,460,466,493,722,493,666,,994,,461",",,1177,318,,991,17,882,,978,17,781,887,,,17,238,,,787,1006,789,684,452","470,793,975,798,689,,,,625,,772,772,685,513,795,969,,802,,1076,,17,371","805,756,756,562,319,445,721,,484,,,756,319,17,17,445,445,756,851,820","445,445,599,735,735,461,318,1090,904,737,1048,599,982,1041,,461,878","880,1049,1050,44,883,885,1229,1110,356,1052,,344,895,470,564,,1060,356",",,344,,567,470,756,975,461,318,19,,,,,784,461,,352,318,,,,44,,,44,352",",,,1230,841,470,823,,,825,,470,,,1133,1134,995,,,44,19,,1144,19,904","461,318,709,709,,,,,,,,827,,,,,,141,916,19,947,44,,,900,470,,900,44",",848,1103,1167,1168,1169,1170,,,794,,,,1120,1121,1122,,19,,,19,,1181",",19,1182,,,,,19,19,444,,144,19,19,,,,,,444,444,,1198,,444,444,,822,864",",1153,,,,,,967,,,,,,,1207,899,772,17,,445,,1147,,1148,772,,,1080,865",",896,,966,772,772,873,,1060,,963,1007,,,1224,284,1223,1060,,599,141","1176,,932,,685,17,,690,17,980,946,1096,,,,,,877,996,,,356,,,344,493",",,,17,,,356,,,344,513,,452,,,,,,1060,,,,,352,,,,,1072,,17,594,,17,352",",44,17,,1222,,44,,17,17,,,993,17,17,1176,,44,,,609,1131,,1029,835,981","19,,1004,,,19,,,,,,,1040,,,,19,,,,,,,,,1156,44,815,383,,,,,,19,,,1015","877,,1066,,,,,,444,,,,,19,,1080,1070,,1080,,772,,772,,,772,772,437,1085",",,1087,772,,,,679,,772,772,,,,1073,,,772,772,,,1199,1014,,,,1018,932",",,,,932,932,,,1127,,,809,44,,879,881,,1058,,884,886,,,1084,,,,,772,","44,1080,1117,1118,1119,1072,44,19,1072,,1072,1092,383,,,,17,,1128,,","17,44,356,,19,1105,,,,31,19,17,1102,735,31,,,,,,383,1095,,,779,,19,",",17,352,31,,,,,,,,,,31,31,31,,31,17,,,,,,,,,,44,1072,,1072,,1072,,1072",",,356,,,297,,,,31,,,,,31,31,1072,19,31,,,44,44,1192,1193,,,44,,,352","900,1155,,1073,,,1073,1161,1073,772,,906,,908,,19,19,,772,,,19,772,",",,,1163,,,461,318,17,,356,,31,297,765,765,44,31,31,31,31,31,,31,,,17","1190,,,,470,17,,,,,1008,352,,,19,772,,,,,,17,,,,1073,,1073,470,1073",",1073,,44,,,,,383,383,,,,,1220,,1081,772,1073,,,,,,879,881,886,884,19","679,,,,,,,,,,,,,,679,941,,17,,,31,31,31,31,31,31,31,,,,,,31,,,,,,31","31,31,31,,,,,17,17,381,18,,,17,,18,31,,,,,,,,,,,,,,,,242,,,,679,,,,",",242,242,242,,18,345,345,,,,,,,,,17,,,,,31,,,,679,,,31,31,,1008,,18","679,,,31,242,242,1002,,242,394,404,404,,,1137,1139,1141,,,,,31,,679",",31,17,,,,31,,765,1081,,,1081,,,1081,765,1081,,,,,,764,764,765,765,",",,,,1074,18,,,31,,242,242,242,242,18,,18,,,,,,31,31,31,,,,,,,679,,435","448,,679,679,,,,,,31,,,,,,,,,1111,,1112,,1113,1081,,1081,,1081,,1081",",,,,1209,1211,1213,1215,,1216,,1002,,,,,1081,,,,,,,,,,,,,,,,,,,18,242","442,242,242,442,242,,31,,,,18,1232,1233,1234,1235,,18,442,242,242,,",",1237,,,,,,,,,,18,,573,,575,,,577,578,,,,31,,679,679,679,,,,,,31,,941","765,,765,,,765,765,,,,,1183,765,1185,,,,,765,765,,242,,1002,,,765,765","242,242,,,,,,,,242,,1204,,,,,,,,,,,,,,,764,18,,31,,18,,,764,345,18,765",",31,,,,764,764,,,,,,,,,1225,345,1226,,1227,,20,,,,670,20,,18,31,,,31",",,1196,,,1236,31,,,242,18,18,,,,,31,,,,31,,,,20,353,353,,,,242,,,,,",",,,,,,,,679,,,31,,,31,31,20,716,31,,,,,,31,31,353,353,353,31,31,,,,",",,,,,,,,,,,,,,,,,,,,,,765,242,,,,,,,,765,,,,765,,,,20,,,,,,,,,20,,20",",,,,796,,381,,799,,,242,764,,764,,,764,764,,,242,,,764,,,,765,,764,764",",,,,,,764,764,,,,,,796,,,381,,,,,,,,,,,,765,448,,,,,,,,,,,,,31,,,764",",,,18,20,,20,,,20,,345,,242,,,20,,,31,345,,20,20,31,31,,866,,,,,,,,31","796,381,,20,,18,,,18,,,,,,893,242,,31,,,,,,,,242,,,911,18,,,,,31,,,",",,,,,,,,,,,,,,,,,,18,,,442,242,,,18,,,,,,442,442,,,,442,442,,,,,,,,20",",,,20,,,764,353,20,,,,,,31,764,,,,764,,,,,796,,353,,,,,31,,976,,,977",",20,,,,,31,,,,,,31,,,,20,20,31,,,,,,,,764,,,,,,,,31,,,,,,,,,,,,,,,,",",,,,,,,764,,,,,,,,1005,,,345,,,,,15,,,,,15,345,,,,242,,,,,31,,,,,,,",",,,,,,,,,,18,,,15,,18,242,,,,,31,31,,,,18,31,,,21,,,,,21,,,,,,15,,,442",",,,,,,398,773,773,,,,,,,,18,,,,,21,347,347,,,31,,31,31,,,,,,,,,,,,31",",,,,,1091,,21,,,,,15,,,,,396,405,405,,15,,15,381,20,,,31,,,,,353,,,",",242,,,,353,,,,,,,,,,,,,18,,,,,,,,20,,21,20,242,,,771,771,,18,21,,21",",,18,,,,,,,,20,,,,,,,,18,,,,1106,,,,,,,15,,440,,,440,,,20,,,20,15,,","20,,,15,440,,20,20,,,,20,20,,,,,,,,15,,,,,,,,,18,,,,,,,,,21,,443,,1145","443,,,,,,,21,,,,,,21,443,18,18,,,773,,18,,,,,,773,,,21,,,,,,773,773",",770,770,,,,,,,,,,,,,,,,,15,,,,15,1187,,,18,15,242,242,,,,,,,,,,,,242",",,,353,,,,,,,,,,,353,15,,,,,,,,,,,,,18,21,15,15,,21,,,,347,21,,,20,","771,,,20,,,,,771,,,,,347,20,,,771,771,,,,,,,21,,,,,,,20,43,,,,,43,,21","21,,,,,,,,20,,,,,,,,296,,,,,,,,,,,,43,343,343,,,773,,773,,,773,773,",",,,,773,,,,,,773,773,,,,43,,,773,773,,,,,,392,296,296,,,,,,,,,,,,,,",",,,769,769,,20,,,770,,,,,,773,,770,,,,,,,20,,770,770,,,20,43,,,,,,,",",43,,43,,,,20,,768,768,353,,,,,771,15,771,,,771,771,,,,,,771,,,,,,771","771,,,,,,,771,771,,,,,,,,,,,,15,,,15,,,,20,,,,,,,,21,,,,,353,,,347,15",",771,,,,,43,347,,,,20,20,,,,,20,43,767,767,,,773,43,,15,,21,440,,21","773,15,,,773,,,440,440,43,,,440,440,,,,,,,21,,,,,,353,856,,20,,,,,,",",770,,770,,,770,770,,,,21,773,770,443,,,,21,770,770,,,,443,443,,770","770,443,443,,,,769,,,20,,,,,769,,773,,,,,,,769,769,43,,,,43,,,771,343","43,,,,770,,,771,,,,771,,,,,,768,343,,,,,,,768,,,,,43,,,,768,768,,,,",",,,,,43,43,,,,,,,,,771,,,,,,,,,,,,,15,,,,,15,,,,,,,,,,347,15,,,771,",",,,,,347,,,,,,,,440,,,,,767,,,,,,,,767,,,,15,,21,,,767,767,21,,,,,770",",,,,,21,,,770,,,,770,,,,,,,769,,769,,443,769,769,,,,,,769,,,,,,769,769",",21,,,,,769,769,,,,,,,,,,770,,766,766,,,,,768,,768,,15,768,768,,,,,","768,,,,,,768,768,769,,15,,770,,768,768,15,,,,,,,,,,,,,,43,,15,,,,1109",",343,,,,,,,21,,343,,,,,,768,,,,,,,,,,21,,,,,43,21,,43,,,,,,,767,,767",",,767,767,21,,15,,1108,767,,43,,,,767,767,34,,,,,34,767,767,,,,,,,,",",,15,15,,43,34,,15,,,,43,,,,34,34,34,,34,769,,,,,21,,,767,769,,,,769",",,,,405,,,,,,,,,34,,,,15,34,34,21,21,34,,,,21,,,,,768,,,,,,,,,768,,","769,768,,,,,,,766,,,,,,,,766,,15,,,,,,405,766,766,21,34,,,,769,34,34","34,34,34,,34,,,,,,768,,,,,,,,,,,,,,,,343,,,,,,,,,,21,343,,,,,768,767",",,,,,,,,767,,,,767,,,,,,,,43,,,,,43,,,,,,,,,,,43,,,,,,,34,34,34,34,34","34,34,,,,,,34,767,,,,,34,34,34,34,,,,,,,43,,,,,,,34,,,,,,,,,,767,,,",",,,,,,,,,,,,,,,,766,,766,,,766,766,,,,,,766,,,,34,,766,766,,,,34,34",",766,766,,,,,34,,,,,,,,,,,,43,,,,,,34,,,,34,,,,,34,,,43,,,766,,,43,",",,,,,,,,,,,,,,43,,,,1104,34,,,,,,,,,,,,,,34,34,34,,,,,,,,,,,,,,,,,,","34,,,,,,,,,,,,,,,43,,,,,,,,,,,,,296,,,,,,,,,,,,,,,,43,43,,,,,43,,,,",",,,,,,249,,,34,,,,766,,,317,317,317,,,,766,,,,766,,364,365,,367,368",",370,,296,,,43,,,,,,,,,34,317,317,,,,,,,,34,,,,,,,,,,,,766,,,,,,,,,",",,,43,,,,,,,,,,,,,,,,,,,766,,,,,,,,,,,,,,,,34,,,,,,,,,,34,,,,,,,,,,",",,,,,,,,,,,,,,,,,34,,,34,,,,,,,34,,,,,,,,,,34,,,,34,,,,,,,,,,,,,,,,",",,,,317,447,,,453,317,34,,,34,34,,,34,,,,,453,34,34,,,,34,34,,,,,,249",",,,,,,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544","545,546,547,548,549,550,,,,,551,,,,,,,,,,,,,,,,,,,,,,,317,317,,,,,,",",317,,,,,,,317,,317,,,317,317,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,604,,,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,34,34,,,,,,,,,,34,,,,,,,,",",,,,,,,,,34,,,,,317,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,692,,,,,,,,",",,,,,,,,,,,,,,,,,317,,,,,,,,,,,,,723,,34,,,,,,,,317,,453,453,453,,,",",34,,,,,,,,,,,,34,,,,,,34,,,,,,34,,,,,,,365,,,,,,,,,34,317,,317,,317",",,,,,,,,,,,,,,,317,,,,,,,,,,453,,,816,,817,,,,,,317,,,317,,,,,,,,,,34",",,317,317,,,,,,,,,,317,,,,,,,,,,,,,,,34,34,,,,,34,,,,,,,,,,,,317,453","317,,,,874,,,317,317,453,453,,,,453,453,,,,,,317,,,,,,,,,34,,34,34,","317,,,,,,,,,,34,,,,,,,,,,,,,,692,723,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,317,,,,,,,,,317,,,317,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317,,,,,,,,453,,,,,,,,",",,,,1010,1011,,,,,,,,,,,,,,,,,,,,,,,,,,,,1033,1034,453,453,453,453,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1067,,,,,,,,,,,,,,,,,,,,,,,,,",",,317,,,,,,,,,,,,,,,,,,,317,,,,,,,,,,,,,,,,,,,,,,,,,,453,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317"],racc_goto_table=arr=$$$("Array").$new(4752,nil),idx=0,$send(clist,"each",[],(function(str){return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(function(i){var $writer=nil;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),idx=$rb_plus(idx,1)}),1)}),1),clist=["72,198,158,91,91,72,75,75,36,36,36,68,46,198,31,230,230,48,107,19,19","10,75,19,72,34,112,10,128,113,34,12,55,55,82,82,72,72,72,73,117,139","139,94,33,110,110,11,92,228,228,228,77,77,13,33,135,70,133,22,111,34","34,34,72,9,44,44,80,17,17,82,82,82,72,72,72,19,19,19,19,239,87,87,56","56,56,235,8,34,95,20,95,8,20,51,31,32,187,34,34,34,69,41,41,177,177","58,20,55,117,7,24,24,149,28,26,26,119,57,26,129,72,239,89,89,152,192","89,28,87,72,231,72,151,225,225,200,200,5,35,35,64,193,2,157,157,34,90","90,90,127,8,147,130,236,34,145,34,207,161,6,3,10,214,214,29,14,65,178","178,29,161,16,26,26,26,26,18,178,94,90,90,175,224,224,13,21,66,25,239","230,176,74,74,27,42,91,36,43,95,95,29,45,202,202,50,52,60,5,8,78,215","215,215,215,72,83,84,8,86,8,75,93,152,236,105,11,72,106,29,114,151,116","72,149,198,120,121,122,123,34,124,34,128,125,34,126,128,131,136,72,142","34,22,22,143,150,22,34,34,112,11,146,66,146,26,26,33,88,88,88,22,73","153,154,34,2,6,155,36,36,156,26,26,70,159,66,29,36,160,162,164,165,70","168,169,29,170,29,192,171,88,172,173,180,182,200,95,192,31,225,33,183","87,87,63,63,63,184,145,157,188,91,189,55,55,147,58,91,195,72,68,196","19,72,82,129,205,72,72,206,149,1,26,210,11,211,193,212,119,11,51,127","130,82,34,192,72,213,34,216,175,217,34,34,117,175,175,218,72,33,35,35","32,219,176,176,80,220,31,223,29,34,29,72,72,29,32,33,229,9,202,202,29","34,11,11,55,233,29,29,234,69,235,,,187,55,,34,34,,73,,,,29,31,8,33,90",",75,117,66,230,111,31,90,,26,91,10,,,55,7,91,,,64,,,55,36,64,128,128","32,,119,26,13,88,88,215,231,215,,,139,,31,66,5,,65,33,77,228,228,65","228,228,,228,,,32,,55,55,230,36,230,17,,32,,91,,,133,36,,110,29,57,","70,29,66,57,,,29,40,,,66,32,66,56,79,75,66,94,239,56,,,,5,,72,72,91","79,95,92,,66,,146,,29,40,66,200,200,88,88,20,117,,225,,,200,88,29,29","20,20,200,157,66,20,20,68,174,174,91,36,41,231,177,73,68,89,32,,91,28","28,32,32,72,28,28,13,146,82,191,,72,24,75,63,,191,82,,,72,,63,75,200","94,91,36,34,,,,,56,91,,34,36,,,,72,,,72,34,,,,113,44,75,11,,,11,,75",",,139,139,10,,,72,34,,135,34,231,91,36,128,128,,,,,,,,117,,,,,,75,66","34,198,72,,,140,75,,140,72,,117,110,228,228,228,228,,,90,,,,32,32,32",",34,,,34,,146,,34,146,,,,,34,34,22,,77,34,34,,,,,,22,22,,12,,22,22,","90,17,,112,,,,,,107,,,,,,,139,200,72,29,,20,,110,,110,72,,,230,8,,87",",158,72,72,8,,191,,46,28,,,146,48,228,191,,68,75,191,,174,,91,29,,91","29,68,174,10,,,,,,90,19,,,82,,,72,230,,,,29,,,82,,,72,79,,79,,,,,,191",",,,,34,,,,,132,,29,40,,29,34,,72,29,,32,,72,,29,29,,,11,29,29,191,,72",",,40,10,,66,88,26,34,,11,,,34,,,,,,,66,,,,34,,,,,,,,,10,72,79,26,,,",",,34,,,11,90,,19,,,,,,22,,,,,34,,230,66,,230,,72,,72,,,72,72,88,66,",",19,72,,,,40,,72,72,,,,140,,,72,72,,,31,87,,,,87,174,,,,,174,174,,,198",",,55,72,,79,79,,174,,79,79,,,11,,,,,72,,72,230,66,66,66,132,72,34,132",",132,11,26,,,,29,,66,,,29,72,82,,34,72,,,,59,34,29,11,174,59,,,,,,26","117,,,40,,34,,,29,34,59,,,,,,,,,,59,59,59,,59,29,,,,,,,,,,72,132,,132",",132,,132,,,82,,,72,,,,59,,,,,59,59,132,34,59,,,72,72,19,19,,,72,,,34","140,11,,140,,,140,11,140,72,,144,,144,,34,34,,72,,,34,72,,,,,33,,,91","36,29,,82,,59,72,98,98,72,59,59,59,59,59,,59,,,29,11,,,,75,29,,,,,79","34,,,34,72,,,,,,29,,,,140,,140,75,140,,140,,72,,,,,26,26,,,,,11,,232","72,140,,,,,,79,79,79,79,34,40,,,,,,,,,,,,,,40,40,,29,,,59,59,59,59,59","59,59,,,,,,59,,,,,,59,59,59,59,,,,,29,29,85,30,,,29,,30,59,,,,,,,,,",",,,,,,30,,,,40,,,,,,30,30,30,,30,30,30,,,,,,,,,29,,,,,59,,,,40,,,59","59,,79,,30,40,,,59,30,30,40,,30,30,30,30,,,141,141,141,,,,,59,,40,,59","29,,,,59,,98,232,,,232,,,232,98,232,,,,,,97,97,98,98,,,,,,144,30,,,59",",30,30,30,30,30,,30,,,,,,59,59,59,,,,,,,40,,85,85,,40,40,,,,,,59,,,",",,,,,144,,144,,144,232,,232,,232,,232,,,,,141,141,141,141,,141,,40,",",,,232,,,,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,,59,,,,30,141,141,141","141,,30,30,30,30,,,,141,,,,,,,,,,30,,85,,85,,,85,85,,,,59,,40,40,40",",,,,,59,,40,98,,98,,,98,98,,,,,144,98,144,,,,,98,98,,30,,40,,,98,98","30,30,,,,,,,,30,,144,,,,,,,,,,,,,,,97,30,,59,,30,,,97,30,30,98,,59,",",,97,97,,,,,,,,,144,30,144,,144,,38,,,,85,38,,30,59,,,59,,,40,,,144","59,,,30,30,30,,,,,59,,,,59,,,,38,38,38,,,,30,,,,,,,,,,,,,,40,,,59,,","59,59,38,85,59,,,,,,59,59,38,38,38,59,59,,,,,,,,,,,,,,,,,,,,,,,,,,,98","30,,,,,,,,98,,,,98,,,,38,,,,,,,,,38,,38,,,,,85,,85,,85,,,30,97,,97,",",97,97,,,30,,,97,,,,98,,97,97,,,,,,,97,97,,,,,,85,,,85,,,,,,,,,,,,98","85,,,,,,,,,,,,,59,,,97,,,,30,38,,38,,,38,,30,,30,,,38,,,59,30,,38,38","59,59,,85,,,,,,,,59,85,85,,38,,30,,,30,,,,,,85,30,,59,,,,,,,,30,,,85","30,,,,,59,,,,,,,,,,,,,,,,,,,,,,30,,,30,30,,,30,,,,,,30,30,,,,30,30,",",,,,,,38,,,,38,,,97,38,38,,,,,,59,97,,,,97,,,,,85,,38,,,,,59,,85,,,85",",38,,,,,59,,,,,,59,,,,38,38,59,,,,,,,,97,,,,,,,,59,,,,,,,,,,,,,,,,,",",,,,,,97,,,,,,,,85,,,30,,,,,23,,,,,23,30,,,,30,,,,,59,,,,,,,,,,,,,,",",,,30,,,23,,30,30,,,,,59,59,,,,30,59,,,39,,,,,39,,,,,,23,,,30,,,,,,","23,109,109,,,,,,,,30,,,,,39,39,39,,,59,,59,59,,,,,,,,,,,,59,,,,,,85",",39,,,,,23,,,,,39,39,39,,23,,23,85,38,,,59,,,,,38,,,,,30,,,,38,,,,,",",,,,,,,30,,,,,,,,38,,39,38,30,,,104,104,,30,39,,39,,,30,,,,,,,,38,,",",,,,,30,,,,30,,,,,,,23,,23,,,23,,,38,,,38,23,,,38,,,23,23,,38,38,,,","38,38,,,,,,,,23,,,,,,,,,30,,,,,,,,,39,,39,,30,39,,,,,,,39,,,,,,39,39","30,30,,,109,,30,,,,,,109,,,39,,,,,,109,109,,103,103,,,,,,,,,,,,,,,,","23,,,,23,30,,,30,23,30,30,,,,,,,,,,,,30,,,,38,,,,,,,,,,,38,23,,,,,,",",,,,,,30,39,23,23,,39,,,,39,39,,,38,,104,,,38,,,,,104,,,,,39,38,,,104","104,,,,,,,39,,,,,,,38,71,,,,,71,,39,39,,,,,,,,38,,,,,,,,71,,,,,,,,,",",,71,71,71,,,109,,109,,,109,109,,,,,,109,,,,,,109,109,,,,71,,,109,109",",,,,,71,71,71,,,,,,,,,,,,,,,,,,102,102,,38,,,103,,,,,,109,,103,,,,,",",38,,103,103,,,38,71,,,,,,,,,71,,71,,,,38,,101,101,38,,,,,104,23,104",",,104,104,,,,,,104,,,,,,104,104,,,,,,,104,104,,,,,,,,,,,,23,,,23,,,","38,,,,,,,,39,,,,,38,,,39,23,,104,,,,,71,39,,,,38,38,,,,,38,71,100,100",",,109,71,,23,,39,23,,39,109,23,,,109,,,23,23,71,,,23,23,,,,,,,39,,,",",,38,39,,38,,,,,,,,103,,103,,,103,103,,,,39,109,103,39,,,,39,103,103",",,,39,39,,103,103,39,39,,,,102,,,38,,,,,102,,109,,,,,,,102,102,71,,",",71,,,104,71,71,,,,103,,,104,,,,104,,,,,,101,71,,,,,,,101,,,,,71,,,","101,101,,,,,,,,,,71,71,,,,,,,,,104,,,,,,,,,,,,,23,,,,,23,,,,,,,,,,39","23,,,104,,,,,,,39,,,,,,,,23,,,,,100,,,,,,,,100,,,,23,,39,,,100,100,39",",,,,103,,,,,,39,,,103,,,,103,,,,,,,102,,102,,39,102,102,,,,,,102,,,",",,102,102,,39,,,,,102,102,,,,,,,,,,103,,99,99,,,,,101,,101,,23,101,101",",,,,,101,,,,,,101,101,102,,23,,103,,101,101,23,,,,,,,,,,,,,,71,,23,",",,23,,71,,,,,,,39,,71,,,,,,101,,,,,,,,,,39,,,,,71,39,,71,,,,,,,100,","100,,,100,100,39,,23,,39,100,,71,,,,100,100,62,,,,,62,100,100,,,,,,",",,,,23,23,,71,62,,23,,,,71,,,,62,62,62,,62,102,,,,,39,,,100,102,,,,102",",,,,39,,,,,,,,,62,,,,23,62,62,39,39,62,,,,39,,,,,101,,,,,,,,,101,,,102","101,,,,,,,99,,,,,,,,99,,23,,,,,,39,99,99,39,62,,,,102,62,62,62,62,62",",62,,,,,,101,,,,,,,,,,,,,,,,71,,,,,,,,,,39,71,,,,,101,100,,,,,,,,,100",",,,100,,,,,,,,71,,,,,71,,,,,,,,,,,71,,,,,,,62,62,62,62,62,62,62,,,,",",62,100,,,,,62,62,62,62,,,,,,,71,,,,,,,62,,,,,,,,,,100,,,,,,,,,,,,,",",,,,,,99,,99,,,99,99,,,,,,99,,,,62,,99,99,,,,62,62,,99,99,,,,,62,,,",",,,,,,,,71,,,,,,62,,,,62,,,,,62,,,71,,,99,,,71,,,,,,,,,,,,,,,,71,,,","71,62,,,,,,,,,,,,,,62,62,62,,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,71,,",",,,,,,,,,,71,,,,,,,,,,,,,,,,71,71,,,,,71,,,,,,,,,,,37,,,62,,,,99,,,37","37,37,,,,99,,,,99,,37,37,,37,37,,37,,71,,,71,,,,,,,,,62,37,37,,,,,,",",62,,,,,,,,,,,,99,,,,,,,,,,,,,71,,,,,,,,,,,,,,,,,,,99,,,,,,,,,,,,,,",",62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,,,62,,,,,,,62,,,,,,,,",",62,,,,62,,,,,,,,,,,,,,,,,,,,,37,37,,,37,37,62,,,62,62,,,62,,,,,37,62","62,,,,62,62,,,,,,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,,,,","62,,,,,,,,,,,,,,,,,,,,,,,62,,,,,62,62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,62",",,,,37,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,",",,,37,,,,,,,,,,,,,37,,62,,,,,,,,37,,37,37,37,,,,,62,,,,,,,,,,,,62,,",",,,62,,,,,,62,,,,,,,37,,,,,,,,,62,37,,37,,37,,,,,,,,,,,,,,,,37,,,,,",",,,,37,,,37,,37,,,,,,37,,,37,,,,,,,,,,62,,,37,37,,,,,,,,,,37,,,,,,,",",,,,,,,62,62,,,,,62,,,,,,,,,,,,37,37,37,,,,37,,,37,37,37,37,,,,37,37",",,,,,37,,,,,,,,,62,,62,62,,37,,,,,,,,,,62,,,,,,,,,,,,,,37,37,,,,,,,",",,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,37,,,37",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37",",,,,,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,37,37","37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,",",,,,37,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37"],racc_goto_check=arr=$$$("Array").$new(4752,nil),idx=0,$send(clist,"each",[],(function(str){return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(function(i){var $writer=nil;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),idx=$rb_plus(idx,1)}),1)}),1),racc_goto_pointer=[nil,343,142,162,nil,134,154,106,86,56,-209,9,-441,-639,-723,nil,-407,59,167,-52,-129,111,35,2068,-107,-30,45,59,-108,164,1262,-210,-357,26,23,121,-26,3589,1625,2121,484,-424,-59,-57,-7,-419,-14,nil,-9,nil,180,66,-345,nil,nil,-193,53,-186,-458,1017,-350,nil,3145,282,104,130,-51,nil,-28,62,-303,2499,-2,-363,116,-4,nil,42,-220,291,20,nil,-5,166,-153,1195,153,63,235,-252,114,-28,-258,-332,-277,-480,nil,849,616,2504,2203,2113,2068,1856,1723,200,161,-51,nil,1618,-339,-763,-364,-596,155,nil,-173,35,nil,98,172,-135,173,-366,-397,-603,-161,-762,-466,-373,-760,-664,-141,-639,nil,-437,-722,nil,nil,-436,-27,269,-822,-716,413,-815,-438,-638,nil,-737,-842,-965,-973,-135,-575,194,-361,-88,-25,-714,-711,-394,-9,nil,-18,-18,nil,nil,-488,-796,-691,-919,-530,-844,34,-562,-553,-422,-760,nil,-620,nil,-620,-431,-425,nil,nil,-648,-424,-423,nil,-352,-816,-781,nil,-615,-612,nil,-89,nil,-390,nil,-558,nil,nil,-437,-353,-735,nil,nil,257,254,255,264,-250,-200,265,266,271,-274,-271,nil,nil,-259,-168,-98,nil,nil,-432,-311,-218,-569,230,-298,-730,-616,-983,nil,nil,-491],racc_goto_default=[nil,nil,nil,nil,5,nil,6,391,334,nil,nil,472,nil,984,nil,331,332,nil,nil,nil,13,14,22,247,nil,nil,16,nil,441,248,363,nil,nil,637,251,nil,27,25,252,246,517,nil,nil,nil,nil,nil,nil,386,143,26,nil,nil,nil,28,29,812,nil,nil,nil,351,nil,30,348,455,37,nil,nil,39,42,41,nil,243,244,403,nil,463,142,87,nil,446,103,51,54,283,nil,323,nil,891,456,nil,457,468,480,686,569,321,307,55,56,57,58,59,60,61,62,63,nil,308,69,70,nil,nil,nil,nil,nil,77,nil,619,78,230,nil,nil,nil,nil,nil,nil,nil,711,492,nil,712,713,478,474,475,nil,1179,707,1071,nil,479,nil,nil,nil,481,nil,483,nil,971,nil,nil,nil,490,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,467,nil,nil,791,783,nil,nil,nil,nil,nil,nil,1051,nil,736,937,738,739,743,740,741,nil,nil,742,744,nil,nil,nil,936,938,nil,748,750,751,752,753,nil,757,501,758,759,760,761,nil,nil,nil,86,88,89,nil,nil,nil,nil,647,nil,nil,nil,nil,nil,99,100,nil,231,901,234,477,nil,482,909,495,497,498,1082,502,1083,505,508,326],racc_reduce_table=[0,0,"racc_error",0,150,"_reduce_1",2,148,"_reduce_2",2,149,"_reduce_3",0,151,"_reduce_4",1,151,"_reduce_5",3,151,"_reduce_6",2,151,"_reduce_7",1,153,"_reduce_none",2,153,"_reduce_9",3,156,"_reduce_10",4,157,"_reduce_11",2,158,"_reduce_12",0,162,"_reduce_13",1,162,"_reduce_14",3,162,"_reduce_15",2,162,"_reduce_16",1,163,"_reduce_none",2,163,"_reduce_18",0,174,"_reduce_19",4,155,"_reduce_20",3,155,"_reduce_21",3,155,"_reduce_22",3,155,"_reduce_23",2,155,"_reduce_24",3,155,"_reduce_25",3,155,"_reduce_26",3,155,"_reduce_27",3,155,"_reduce_28",3,155,"_reduce_29",4,155,"_reduce_30",1,155,"_reduce_none",3,155,"_reduce_32",3,155,"_reduce_33",5,155,"_reduce_34",3,155,"_reduce_35",1,155,"_reduce_none",3,167,"_reduce_37",3,167,"_reduce_38",6,167,"_reduce_39",5,167,"_reduce_40",5,167,"_reduce_41",5,167,"_reduce_42",5,167,"_reduce_43",4,167,"_reduce_44",6,167,"_reduce_45",4,167,"_reduce_46",6,167,"_reduce_47",3,167,"_reduce_48",1,175,"_reduce_none",3,175,"_reduce_50",1,175,"_reduce_none",1,173,"_reduce_none",3,173,"_reduce_53",3,173,"_reduce_54",3,173,"_reduce_55",2,173,"_reduce_56",0,189,"_reduce_57",4,173,"_reduce_58",0,190,"_reduce_59",4,173,"_reduce_60",1,173,"_reduce_none",1,166,"_reduce_none",0,194,"_reduce_63",3,191,"_reduce_64",1,193,"_reduce_65",2,181,"_reduce_66",0,199,"_reduce_67",5,185,"_reduce_68",1,169,"_reduce_none",1,169,"_reduce_none",1,200,"_reduce_none",4,200,"_reduce_72",0,207,"_reduce_73",4,204,"_reduce_74",1,206,"_reduce_none",2,183,"_reduce_76",3,183,"_reduce_77",4,183,"_reduce_78",5,183,"_reduce_79",4,183,"_reduce_80",5,183,"_reduce_81",2,183,"_reduce_82",2,183,"_reduce_83",2,183,"_reduce_84",2,183,"_reduce_85",2,183,"_reduce_86",1,168,"_reduce_87",3,168,"_reduce_88",1,212,"_reduce_89",3,212,"_reduce_90",1,211,"_reduce_none",2,211,"_reduce_92",3,211,"_reduce_93",5,211,"_reduce_94",2,211,"_reduce_95",4,211,"_reduce_96",2,211,"_reduce_97",4,211,"_reduce_98",1,211,"_reduce_99",3,211,"_reduce_100",1,215,"_reduce_none",3,215,"_reduce_102",2,214,"_reduce_103",3,214,"_reduce_104",1,217,"_reduce_105",3,217,"_reduce_106",1,216,"_reduce_107",1,216,"_reduce_108",4,216,"_reduce_109",3,216,"_reduce_110",3,216,"_reduce_111",3,216,"_reduce_112",3,216,"_reduce_113",2,216,"_reduce_114",1,216,"_reduce_115",1,170,"_reduce_116",1,170,"_reduce_117",4,170,"_reduce_118",3,170,"_reduce_119",3,170,"_reduce_120",3,170,"_reduce_121",3,170,"_reduce_122",2,170,"_reduce_123",1,170,"_reduce_124",1,220,"_reduce_125",1,220,"_reduce_none",2,221,"_reduce_127",1,221,"_reduce_128",3,221,"_reduce_129",1,195,"_reduce_none",1,195,"_reduce_none",1,195,"_reduce_none",1,195,"_reduce_none",1,195,"_reduce_none",1,164,"_reduce_135",1,164,"_reduce_none",1,165,"_reduce_137",0,225,"_reduce_138",4,165,"_reduce_139",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",3,184,"_reduce_211",3,184,"_reduce_212",6,184,"_reduce_213",5,184,"_reduce_214",5,184,"_reduce_215",5,184,"_reduce_216",5,184,"_reduce_217",4,184,"_reduce_218",3,184,"_reduce_219",3,184,"_reduce_220",3,184,"_reduce_221",2,184,"_reduce_222",2,184,"_reduce_223",2,184,"_reduce_224",2,184,"_reduce_225",3,184,"_reduce_226",3,184,"_reduce_227",3,184,"_reduce_228",3,184,"_reduce_229",3,184,"_reduce_230",3,184,"_reduce_231",4,184,"_reduce_232",2,184,"_reduce_233",2,184,"_reduce_234",3,184,"_reduce_235",3,184,"_reduce_236",3,184,"_reduce_237",3,184,"_reduce_238",1,184,"_reduce_none",3,184,"_reduce_240",3,184,"_reduce_241",3,184,"_reduce_242",3,184,"_reduce_243",3,184,"_reduce_244",2,184,"_reduce_245",2,184,"_reduce_246",3,184,"_reduce_247",3,184,"_reduce_248",3,184,"_reduce_249",3,184,"_reduce_250",0,231,"_reduce_251",4,184,"_reduce_252",6,184,"_reduce_253",4,184,"_reduce_254",6,184,"_reduce_255",4,184,"_reduce_256",6,184,"_reduce_257",1,184,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",3,228,"_reduce_263",3,228,"_reduce_264",1,232,"_reduce_none",1,233,"_reduce_none",2,233,"_reduce_none",4,233,"_reduce_268",2,233,"_reduce_269",1,226,"_reduce_none",3,226,"_reduce_271",3,238,"_reduce_272",5,238,"_reduce_273",3,238,"_reduce_274",0,240,"_reduce_275",1,240,"_reduce_none",0,178,"_reduce_277",1,178,"_reduce_none",2,178,"_reduce_none",4,178,"_reduce_280",2,178,"_reduce_281",1,210,"_reduce_282",2,210,"_reduce_283",2,210,"_reduce_284",4,210,"_reduce_285",1,210,"_reduce_286",0,243,"_reduce_287",2,203,"_reduce_288",2,242,"_reduce_289",1,242,"_reduce_290",2,241,"_reduce_291",0,241,"_reduce_292",1,235,"_reduce_293",2,235,"_reduce_294",3,235,"_reduce_295",4,235,"_reduce_296",1,172,"_reduce_297",1,172,"_reduce_none",3,171,"_reduce_299",4,171,"_reduce_300",2,171,"_reduce_301",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_312",0,267,"_reduce_313",4,229,"_reduce_314",0,268,"_reduce_315",4,229,"_reduce_316",0,269,"_reduce_317",4,229,"_reduce_318",3,229,"_reduce_319",3,229,"_reduce_320",2,229,"_reduce_321",3,229,"_reduce_322",3,229,"_reduce_323",1,229,"_reduce_324",4,229,"_reduce_325",3,229,"_reduce_326",1,229,"_reduce_327",0,270,"_reduce_328",6,229,"_reduce_329",4,229,"_reduce_330",3,229,"_reduce_331",2,229,"_reduce_332",1,229,"_reduce_none",2,229,"_reduce_334",1,229,"_reduce_none",6,229,"_reduce_336",6,229,"_reduce_337",4,229,"_reduce_338",4,229,"_reduce_339",5,229,"_reduce_340",4,229,"_reduce_341",5,229,"_reduce_342",6,229,"_reduce_343",0,271,"_reduce_344",6,229,"_reduce_345",0,272,"_reduce_346",7,229,"_reduce_347",0,273,"_reduce_348",5,229,"_reduce_349",4,229,"_reduce_350",4,229,"_reduce_351",1,229,"_reduce_352",1,229,"_reduce_353",1,229,"_reduce_354",1,229,"_reduce_355",1,177,"_reduce_none",1,262,"_reduce_357",1,265,"_reduce_358",1,196,"_reduce_359",1,209,"_reduce_360",1,257,"_reduce_none",1,257,"_reduce_none",2,257,"_reduce_363",1,192,"_reduce_none",1,192,"_reduce_none",1,258,"_reduce_none",5,258,"_reduce_367",1,160,"_reduce_none",2,160,"_reduce_369",1,261,"_reduce_none",1,261,"_reduce_none",1,274,"_reduce_372",3,274,"_reduce_373",1,277,"_reduce_374",3,277,"_reduce_375",1,276,"_reduce_none",3,276,"_reduce_377",5,276,"_reduce_378",1,276,"_reduce_379",3,276,"_reduce_380",2,278,"_reduce_381",1,278,"_reduce_382",1,279,"_reduce_none",1,279,"_reduce_none",0,284,"_reduce_385",2,282,"_reduce_386",4,283,"_reduce_387",2,283,"_reduce_388",2,283,"_reduce_389",1,283,"_reduce_390",2,288,"_reduce_391",0,288,"_reduce_392",1,289,"_reduce_none",6,290,"_reduce_394",8,290,"_reduce_395",4,290,"_reduce_396",6,290,"_reduce_397",4,290,"_reduce_398",2,290,"_reduce_none",6,290,"_reduce_400",2,290,"_reduce_401",4,290,"_reduce_402",6,290,"_reduce_403",2,290,"_reduce_404",4,290,"_reduce_405",2,290,"_reduce_406",4,290,"_reduce_407",1,290,"_reduce_none",0,294,"_reduce_409",1,294,"_reduce_410",3,295,"_reduce_411",4,295,"_reduce_412",1,296,"_reduce_413",4,296,"_reduce_414",1,297,"_reduce_415",3,297,"_reduce_416",1,298,"_reduce_417",1,298,"_reduce_none",0,302,"_reduce_419",0,303,"_reduce_420",5,256,"_reduce_421",4,300,"_reduce_422",1,300,"_reduce_423",0,306,"_reduce_424",4,301,"_reduce_425",0,307,"_reduce_426",4,301,"_reduce_427",0,309,"_reduce_428",4,305,"_reduce_429",2,201,"_reduce_430",4,201,"_reduce_431",5,201,"_reduce_432",5,201,"_reduce_433",2,255,"_reduce_434",4,255,"_reduce_435",4,255,"_reduce_436",3,255,"_reduce_437",3,255,"_reduce_438",3,255,"_reduce_439",2,255,"_reduce_440",1,255,"_reduce_441",4,255,"_reduce_442",0,311,"_reduce_443",4,254,"_reduce_444",0,312,"_reduce_445",4,254,"_reduce_446",0,313,"_reduce_447",3,205,"_reduce_448",0,314,"_reduce_449",0,315,"_reduce_450",4,308,"_reduce_451",5,259,"_reduce_452",1,316,"_reduce_453",1,316,"_reduce_none",0,319,"_reduce_455",0,320,"_reduce_456",7,260,"_reduce_457",1,318,"_reduce_458",1,318,"_reduce_none",1,317,"_reduce_460",3,317,"_reduce_461",3,317,"_reduce_462",1,188,"_reduce_none",2,188,"_reduce_464",3,188,"_reduce_465",1,188,"_reduce_466",1,188,"_reduce_467",1,188,"_reduce_468",1,321,"_reduce_none",3,326,"_reduce_470",1,326,"_reduce_none",3,328,"_reduce_472",1,328,"_reduce_none",1,330,"_reduce_474",1,331,"_reduce_475",1,329,"_reduce_none",1,329,"_reduce_none",4,329,"_reduce_478",4,329,"_reduce_479",4,329,"_reduce_480",3,329,"_reduce_481",4,329,"_reduce_482",4,329,"_reduce_483",4,329,"_reduce_484",3,329,"_reduce_485",3,329,"_reduce_486",3,329,"_reduce_487",2,329,"_reduce_488",0,335,"_reduce_489",4,329,"_reduce_490",2,329,"_reduce_491",0,336,"_reduce_492",4,329,"_reduce_493",1,322,"_reduce_494",1,322,"_reduce_495",2,322,"_reduce_496",3,322,"_reduce_497",5,322,"_reduce_498",2,322,"_reduce_499",4,322,"_reduce_500",1,322,"_reduce_none",2,337,"_reduce_502",3,337,"_reduce_503",1,324,"_reduce_504",3,324,"_reduce_505",5,323,"_reduce_506",2,340,"_reduce_507",1,340,"_reduce_508",1,339,"_reduce_509",3,339,"_reduce_510",1,338,"_reduce_none",3,325,"_reduce_512",1,325,"_reduce_513",2,325,"_reduce_514",1,325,"_reduce_515",1,341,"_reduce_516",3,341,"_reduce_517",2,343,"_reduce_518",1,343,"_reduce_519",1,344,"_reduce_520",3,344,"_reduce_521",2,346,"_reduce_522",1,346,"_reduce_523",2,348,"_reduce_524",1,342,"_reduce_none",1,342,"_reduce_none",1,332,"_reduce_none",3,332,"_reduce_528",3,332,"_reduce_529",2,332,"_reduce_530",2,332,"_reduce_531",1,332,"_reduce_none",1,332,"_reduce_none",1,332,"_reduce_none",2,332,"_reduce_535",2,332,"_reduce_536",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_545",1,349,"_reduce_none",1,327,"_reduce_547",2,350,"_reduce_548",2,350,"_reduce_549",4,351,"_reduce_550",2,333,"_reduce_551",3,333,"_reduce_552",1,333,"_reduce_553",6,159,"_reduce_554",0,159,"_reduce_555",1,353,"_reduce_556",1,353,"_reduce_none",1,353,"_reduce_none",2,354,"_reduce_559",1,354,"_reduce_none",2,161,"_reduce_561",1,161,"_reduce_none",1,244,"_reduce_none",1,244,"_reduce_none",1,245,"_reduce_565",1,356,"_reduce_566",2,356,"_reduce_567",3,357,"_reduce_568",1,357,"_reduce_569",1,357,"_reduce_570",3,246,"_reduce_571",4,247,"_reduce_572",3,248,"_reduce_573",0,360,"_reduce_574",3,360,"_reduce_575",1,361,"_reduce_576",2,361,"_reduce_577",3,250,"_reduce_578",0,363,"_reduce_579",3,363,"_reduce_580",3,249,"_reduce_581",3,251,"_reduce_582",0,364,"_reduce_583",3,364,"_reduce_584",0,365,"_reduce_585",3,365,"_reduce_586",0,345,"_reduce_587",2,345,"_reduce_588",0,358,"_reduce_589",2,358,"_reduce_590",0,359,"_reduce_591",2,359,"_reduce_592",1,362,"_reduce_593",2,362,"_reduce_594",0,367,"_reduce_595",4,362,"_reduce_596",1,366,"_reduce_597",1,366,"_reduce_598",1,366,"_reduce_599",1,366,"_reduce_none",1,224,"_reduce_none",1,224,"_reduce_none",1,368,"_reduce_603",3,369,"_reduce_604",1,355,"_reduce_605",2,355,"_reduce_606",1,227,"_reduce_607",1,227,"_reduce_608",1,227,"_reduce_609",1,227,"_reduce_610",1,352,"_reduce_611",1,352,"_reduce_612",1,352,"_reduce_613",1,218,"_reduce_614",1,218,"_reduce_615",1,218,"_reduce_616",1,218,"_reduce_617",1,218,"_reduce_618",1,219,"_reduce_619",1,219,"_reduce_620",1,219,"_reduce_621",1,219,"_reduce_622",1,219,"_reduce_623",1,219,"_reduce_624",1,219,"_reduce_625",1,252,"_reduce_626",1,252,"_reduce_627",1,176,"_reduce_628",1,176,"_reduce_629",1,186,"_reduce_630",1,186,"_reduce_631",0,370,"_reduce_632",4,263,"_reduce_633",0,263,"_reduce_634",1,182,"_reduce_none",1,182,"_reduce_636",3,371,"_reduce_637",1,266,"_reduce_none",0,373,"_reduce_639",3,266,"_reduce_640",4,372,"_reduce_641",2,372,"_reduce_642",2,372,"_reduce_643",1,372,"_reduce_644",1,372,"_reduce_645",2,375,"_reduce_646",0,375,"_reduce_647",6,304,"_reduce_648",8,304,"_reduce_649",4,304,"_reduce_650",6,304,"_reduce_651",4,304,"_reduce_652",6,304,"_reduce_653",2,304,"_reduce_654",4,304,"_reduce_655",6,304,"_reduce_656",2,304,"_reduce_657",4,304,"_reduce_658",2,304,"_reduce_659",4,304,"_reduce_660",1,304,"_reduce_661",0,304,"_reduce_662",1,239,"_reduce_663",1,299,"_reduce_664",1,299,"_reduce_665",1,299,"_reduce_666",1,299,"_reduce_667",1,275,"_reduce_none",1,275,"_reduce_669",1,377,"_reduce_670",1,378,"_reduce_671",3,378,"_reduce_672",1,291,"_reduce_673",3,291,"_reduce_674",1,379,"_reduce_675",2,380,"_reduce_676",1,380,"_reduce_677",2,381,"_reduce_678",1,381,"_reduce_679",1,285,"_reduce_680",3,285,"_reduce_681",1,374,"_reduce_682",3,374,"_reduce_683",1,347,"_reduce_none",1,347,"_reduce_none",2,281,"_reduce_686",2,280,"_reduce_687",1,280,"_reduce_688",3,382,"_reduce_689",3,383,"_reduce_690",1,292,"_reduce_691",3,292,"_reduce_692",1,376,"_reduce_693",3,376,"_reduce_694",1,384,"_reduce_none",1,384,"_reduce_none",2,293,"_reduce_697",1,293,"_reduce_698",1,385,"_reduce_none",1,385,"_reduce_none",2,287,"_reduce_701",1,287,"_reduce_702",2,286,"_reduce_703",0,286,"_reduce_704",1,197,"_reduce_none",3,197,"_reduce_706",0,253,"_reduce_707",2,253,"_reduce_none",1,237,"_reduce_709",3,237,"_reduce_710",3,386,"_reduce_711",2,386,"_reduce_712",1,386,"_reduce_713",4,386,"_reduce_714",2,386,"_reduce_715",1,208,"_reduce_none",1,208,"_reduce_none",1,208,"_reduce_none",1,202,"_reduce_none",1,202,"_reduce_none",1,202,"_reduce_none",1,202,"_reduce_none",1,310,"_reduce_none",1,310,"_reduce_none",1,310,"_reduce_none",1,198,"_reduce_none",1,198,"_reduce_none",1,180,"_reduce_728",1,180,"_reduce_729",0,152,"_reduce_none",1,152,"_reduce_none",0,187,"_reduce_none",1,187,"_reduce_none",2,213,"_reduce_734",2,179,"_reduce_735",2,334,"_reduce_736",0,236,"_reduce_none",1,236,"_reduce_none",1,236,"_reduce_none",1,264,"_reduce_740",1,264,"_reduce_none",1,154,"_reduce_none",2,154,"_reduce_none",0,234,"_reduce_744"],745,1238,racc_token_table=$hash(!1,0,"error",1,"kCLASS",2,"kMODULE",3,"kDEF",4,"kUNDEF",5,"kBEGIN",6,"kRESCUE",7,"kENSURE",8,"kEND",9,"kIF",10,"kUNLESS",11,"kTHEN",12,"kELSIF",13,"kELSE",14,"kCASE",15,"kWHEN",16,"kWHILE",17,"kUNTIL",18,"kFOR",19,"kBREAK",20,"kNEXT",21,"kREDO",22,"kRETRY",23,"kIN",24,"kDO",25,"kDO_COND",26,"kDO_BLOCK",27,"kDO_LAMBDA",28,"kRETURN",29,"kYIELD",30,"kSUPER",31,"kSELF",32,"kNIL",33,"kTRUE",34,"kFALSE",35,"kAND",36,"kOR",37,"kNOT",38,"kIF_MOD",39,"kUNLESS_MOD",40,"kWHILE_MOD",41,"kUNTIL_MOD",42,"kRESCUE_MOD",43,"kALIAS",44,"kDEFINED",45,"klBEGIN",46,"klEND",47,"k__LINE__",48,"k__FILE__",49,"k__ENCODING__",50,"tIDENTIFIER",51,"tFID",52,"tGVAR",53,"tIVAR",54,"tCONSTANT",55,"tLABEL",56,"tCVAR",57,"tNTH_REF",58,"tBACK_REF",59,"tSTRING_CONTENT",60,"tINTEGER",61,"tFLOAT",62,"tUPLUS",63,"tUMINUS",64,"tUNARY_NUM",65,"tPOW",66,"tCMP",67,"tEQ",68,"tEQQ",69,"tNEQ",70,"tGEQ",71,"tLEQ",72,"tANDOP",73,"tOROP",74,"tMATCH",75,"tNMATCH",76,"tDOT",77,"tDOT2",78,"tDOT3",79,"tAREF",80,"tASET",81,"tLSHFT",82,"tRSHFT",83,"tCOLON2",84,"tCOLON3",85,"tOP_ASGN",86,"tASSOC",87,"tLPAREN",88,"tLPAREN2",89,"tRPAREN",90,"tLPAREN_ARG",91,"tLBRACK",92,"tLBRACK2",93,"tRBRACK",94,"tLBRACE",95,"tLBRACE_ARG",96,"tSTAR",97,"tSTAR2",98,"tAMPER",99,"tAMPER2",100,"tTILDE",101,"tPERCENT",102,"tDIVIDE",103,"tDSTAR",104,"tPLUS",105,"tMINUS",106,"tLT",107,"tGT",108,"tPIPE",109,"tBANG",110,"tCARET",111,"tLCURLY",112,"tRCURLY",113,"tBACK_REF2",114,"tSYMBEG",115,"tSTRING_BEG",116,"tXSTRING_BEG",117,"tREGEXP_BEG",118,"tREGEXP_OPT",119,"tWORDS_BEG",120,"tQWORDS_BEG",121,"tSYMBOLS_BEG",122,"tQSYMBOLS_BEG",123,"tSTRING_DBEG",124,"tSTRING_DVAR",125,"tSTRING_END",126,"tSTRING_DEND",127,"tSTRING",128,"tSYMBOL",129,"tNL",130,"tEH",131,"tCOLON",132,"tCOMMA",133,"tSPACE",134,"tSEMI",135,"tLAMBDA",136,"tLAMBEG",137,"tCHARACTER",138,"tRATIONAL",139,"tIMAGINARY",140,"tLABEL_END",141,"tANDDOT",142,"tBDOT2",143,"tBDOT3",144,"tEQL",145,"tLOWEST",146),147,!0,$const_set($nesting[0],"Racc_arg",[racc_action_table,racc_action_check,racc_action_default,racc_action_pointer,racc_goto_table,racc_goto_check,racc_goto_default,racc_goto_pointer,147,racc_reduce_table,racc_token_table,1238,745,true]),$const_set($nesting[0],"Racc_token_to_s_table",["$end","error","kCLASS","kMODULE","kDEF","kUNDEF","kBEGIN","kRESCUE","kENSURE","kEND","kIF","kUNLESS","kTHEN","kELSIF","kELSE","kCASE","kWHEN","kWHILE","kUNTIL","kFOR","kBREAK","kNEXT","kREDO","kRETRY","kIN","kDO","kDO_COND","kDO_BLOCK","kDO_LAMBDA","kRETURN","kYIELD","kSUPER","kSELF","kNIL","kTRUE","kFALSE","kAND","kOR","kNOT","kIF_MOD","kUNLESS_MOD","kWHILE_MOD","kUNTIL_MOD","kRESCUE_MOD","kALIAS","kDEFINED","klBEGIN","klEND","k__LINE__","k__FILE__","k__ENCODING__","tIDENTIFIER","tFID","tGVAR","tIVAR","tCONSTANT","tLABEL","tCVAR","tNTH_REF","tBACK_REF","tSTRING_CONTENT","tINTEGER","tFLOAT","tUPLUS","tUMINUS","tUNARY_NUM","tPOW","tCMP","tEQ","tEQQ","tNEQ","tGEQ","tLEQ","tANDOP","tOROP","tMATCH","tNMATCH","tDOT","tDOT2","tDOT3","tAREF","tASET","tLSHFT","tRSHFT","tCOLON2","tCOLON3","tOP_ASGN","tASSOC","tLPAREN","tLPAREN2","tRPAREN","tLPAREN_ARG","tLBRACK","tLBRACK2","tRBRACK","tLBRACE","tLBRACE_ARG","tSTAR","tSTAR2","tAMPER","tAMPER2","tTILDE","tPERCENT","tDIVIDE","tDSTAR","tPLUS","tMINUS","tLT","tGT","tPIPE","tBANG","tCARET","tLCURLY","tRCURLY","tBACK_REF2","tSYMBEG","tSTRING_BEG","tXSTRING_BEG","tREGEXP_BEG","tREGEXP_OPT","tWORDS_BEG","tQWORDS_BEG","tSYMBOLS_BEG","tQSYMBOLS_BEG","tSTRING_DBEG","tSTRING_DVAR","tSTRING_END","tSTRING_DEND","tSTRING","tSYMBOL","tNL","tEH","tCOLON","tCOMMA","tSPACE","tSEMI","tLAMBDA","tLAMBEG","tCHARACTER","tRATIONAL","tIMAGINARY","tLABEL_END","tANDDOT","tBDOT2","tBDOT3","tEQL","tLOWEST","$start","program","top_compstmt","@1","top_stmts","opt_terms","top_stmt","terms","stmt","begin_block","bodystmt","compstmt","opt_rescue","opt_else","opt_ensure","stmts","stmt_or_begin","fitem","undef_list","expr_value","command_asgn","mlhs","command_call","lhs","mrhs","mrhs_arg","expr","@2","command_rhs","var_lhs","primary_value","opt_call_args","rbracket","call_op","defn_head","f_opt_paren_args","command","arg","defs_head","backref","opt_nl","p_top_expr_body","@3","@4","expr_value_do","do","def_name","@5","fname","k_def","singleton","dot_or_colon","@6","block_command","block_call","operation2","command_args","cmd_brace_block","brace_body","fcall","@7","operation","k_return","call_args","mlhs_basic","mlhs_inner","rparen","mlhs_head","mlhs_item","mlhs_node","mlhs_post","user_variable","keyword_variable","cname","cpath","op","reswords","symbol","@8","arg_rhs","simple_numeric","rel_expr","primary","relop","@9","arg_value","aref_args","none","args","trailer","assocs","paren_args","args_forward","opt_paren_args","opt_block_arg","block_arg","@10","literal","strings","xstring","regexp","words","qwords","symbols","qsymbols","var_ref","assoc_list","brace_block","method_call","lambda","then","if_tail","case_body","p_case_body","for_var","k_class","superclass","term","k_module","f_arglist","@11","@12","@13","@14","@15","@16","@17","f_marg","f_norm_arg","f_margs","f_marg_list","f_rest_marg","f_any_kwrest","f_kwrest","f_no_kwarg","f_eq","block_args_tail","@18","f_block_kwarg","opt_f_block_arg","f_block_arg","opt_block_args_tail","excessed_comma","block_param","f_arg","f_block_optarg","f_rest_arg","opt_block_param","block_param_def","opt_bv_decl","bv_decls","bvar","f_bad_arg","f_larglist","lambda_body","@19","@20","f_args","do_block","@21","@22","do_body","@23","operation3","@24","@25","@26","@27","@28","cases","p_top_expr","p_cases","@29","@30","p_expr","p_args","p_find","p_args_tail","p_kwargs","p_as","p_variable","p_alt","p_expr_basic","p_lparen","p_lbracket","p_value","p_const","rbrace","@31","@32","p_args_head","p_arg","p_args_post","p_rest","p_kwarg","p_any_kwrest","p_kw","p_kw_label","string_contents","p_kwrest","kwrest_mark","p_kwnorest","p_primitive","p_var_ref","p_expr_ref","nonlocal_var","exc_list","exc_var","numeric","string","string1","xstring_contents","regexp_contents","word_list","word","string_content","symbol_list","qword_list","qsym_list","string_dvar","@33","ssym","dsym","@34","f_paren_args","args_tail","@35","f_kwarg","opt_args_tail","f_optarg","f_arg_asgn","f_arg_item","f_label","f_kw","f_block_kw","f_opt","f_block_opt","restarg_mark","blkarg_mark","assoc"]),$const_set($nesting[0],"Racc_debug_parser",!1),$def(self,"$_reduce_1",(function(val,_values,result){return this.current_arg_stack.$push(nil),this.max_numparam_stack.$push($hash2(["static"],{static:!0})),result}),3),$def(self,"$_reduce_2",(function(val,_values,result){return result=val["$[]"](1),this.current_arg_stack.$pop(),this.max_numparam_stack.$pop(),result}),3),$def(self,"$_reduce_3",(function(val,_values,result){return this.builder.$compstmt(val["$[]"](0))}),3),$def(self,"$_reduce_4",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_5",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_6",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_7",(function(val,_values,result){return[val["$[]"](1)]}),3),$def(self,"$_reduce_9",(function(val,_values,result){return $send(this.builder,"preexe",[val["$[]"](0)].concat($to_a(val["$[]"](1))))}),3),$def(self,"$_reduce_10",(function(val,_values,result){return val}),3),$def(self,"$_reduce_11",(function(val,_values,result){var $a,$b,else_,ensure_t,ensure_,rescue_bodies=nil,else_t=nil;return rescue_bodies=val["$[]"](1),$b=val["$[]"](2),else_t=null==($a=$to_ary($b))[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1],$b=val["$[]"](3),ensure_t=null==($a=$to_ary($b))[0]?nil:$a[0],ensure_=null==$a[1]?nil:$a[1],$truthy(rescue_bodies["$empty?"]())&&$not(else_t["$nil?"]())&&this.$diagnostic("error","useless_else",nil,else_t),this.builder.$begin_body(val["$[]"](0),rescue_bodies,else_t,else_,ensure_t,ensure_)}),3),$def(self,"$_reduce_12",(function(val,_values,result){return this.builder.$compstmt(val["$[]"](0))}),3),$def(self,"$_reduce_13",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_14",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_15",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_16",(function(val,_values,result){return[val["$[]"](1)]}),3),$def(self,"$_reduce_18",(function(val,_values,result){return this.$diagnostic("error","begin_in_method",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_19",(function(val,_values,result){var $writer;return $writer=["expr_fname"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_20",(function(val,_values,result){return this.builder.$alias(val["$[]"](0),val["$[]"](1),val["$[]"](3))}),3),$def(self,"$_reduce_21",(function(val,_values,result){return this.builder.$alias(val["$[]"](0),this.builder.$gvar(val["$[]"](1)),this.builder.$gvar(val["$[]"](2)))}),3),$def(self,"$_reduce_22",(function(val,_values,result){return this.builder.$alias(val["$[]"](0),this.builder.$gvar(val["$[]"](1)),this.builder.$back_ref(val["$[]"](2)))}),3),$def(self,"$_reduce_23",(function(val,_values,result){return this.$diagnostic("error","nth_ref_alias",nil,val["$[]"](2)),result}),3),$def(self,"$_reduce_24",(function(val,_values,result){return this.builder.$undef_method(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_25",(function(val,_values,result){return this.builder.$condition_mod(val["$[]"](0),nil,val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_26",(function(val,_values,result){return this.builder.$condition_mod(nil,val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_27",(function(val,_values,result){return this.builder.$loop_mod("while",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_28",(function(val,_values,result){return this.builder.$loop_mod("until",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_29",(function(val,_values,result){var rescue_body;return rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2)),this.builder.$begin_body(val["$[]"](0),[rescue_body])}),3),$def(self,"$_reduce_30",(function(val,_values,result){return this.builder.$postexe(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_32",(function(val,_values,result){return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_33",(function(val,_values,result){return this.builder.$assign(val["$[]"](0),val["$[]"](1),this.builder.$array(nil,val["$[]"](2),nil))}),3),$def(self,"$_reduce_34",(function(val,_values,result){var rescue_body,begin_body;return rescue_body=this.builder.$rescue_body(val["$[]"](3),nil,nil,nil,nil,val["$[]"](4)),begin_body=this.builder.$begin_body(val["$[]"](2),[rescue_body]),this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),begin_body)}),3),$def(self,"$_reduce_35",(function(val,_values,result){return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_37",(function(val,_values,result){return this.builder.$assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_38",(function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_39",(function(val,_values,result){return this.builder.$op_assign(this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3)),val["$[]"](4),val["$[]"](5))}),3),$def(self,"$_reduce_40",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_41",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_42",(function(val,_values,result){var const$;return const$=this.builder.$const_op_assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))),this.builder.$op_assign(const$,val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_43",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_44",(function(val,_values,result){var $a,$b,$c,def_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_45",(function(val,_values,result){var $a,$b,$c,def_t,name_t,rescue_body,method_body,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_46",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_47",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,rescue_body,method_body,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_48",(function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2)),result}),3),$def(self,"$_reduce_50",(function(val,_values,result){var rescue_body;return rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2)),this.builder.$begin_body(val["$[]"](0),[rescue_body])}),3),$def(self,"$_reduce_53",(function(val,_values,result){return this.builder.$logical_op("and",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_54",(function(val,_values,result){return this.builder.$logical_op("or",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_55",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](2),nil)}),3),$def(self,"$_reduce_56",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_57",(function(val,_values,result){var $writer=nil;return $writer=["expr_beg"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.lexer,"command_start=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.pattern_variables.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_58",(function(val,_values,result){var $writer;return this.pattern_variables.$pop(),$writer=[val["$[]"](2)],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$match_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](3))}),3),$def(self,"$_reduce_59",(function(val,_values,result){var $writer=nil;return $writer=["expr_beg"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.lexer,"command_start=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.pattern_variables.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_60",(function(val,_values,result){var $writer;return this.pattern_variables.$pop(),$writer=[val["$[]"](2)],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$match_pattern_p(val["$[]"](0),val["$[]"](1),val["$[]"](3))}),3),$def(self,"$_reduce_63",(function(val,_values,result){return this.lexer.$cond().$push(!0),result}),3),$def(self,"$_reduce_64",(function(val,_values,result){return this.lexer.$cond().$pop(),[val["$[]"](1),val["$[]"](2)]}),3),$def(self,"$_reduce_65",(function(val,_values,result){var $writer;return this.$local_push(),this.current_arg_stack.$push(nil),result=[val["$[]"](0),this.context.$dup()],$writer=[!0],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_66",(function(val,_values,result){return[val["$[]"](0),val["$[]"](1)]}),3),$def(self,"$_reduce_67",(function(val,_values,result){var $writer=nil;return $writer=["expr_fname"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_68",(function(val,_values,result){return[val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](4)]}),3),$def(self,"$_reduce_72",(function(val,_values,result){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)}),3),$def(self,"$_reduce_73",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_74",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3)])}),3),$def(self,"$_reduce_76",(function(val,_values,result){return this.builder.$call_method(nil,nil,val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_77",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(nil,nil,val["$[]"](0),nil,val["$[]"](1),nil),$b=val["$[]"](2),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_78",(function(val,_values,result){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)}),3),$def(self,"$_reduce_79",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_80",(function(val,_values,result){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)}),3),$def(self,"$_reduce_81",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_82",(function(val,_values,result){return this.builder.$keyword_cmd("super",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_83",(function(val,_values,result){return this.builder.$keyword_cmd("yield",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_84",(function(val,_values,result){return this.builder.$keyword_cmd("return",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_85",(function(val,_values,result){return this.builder.$keyword_cmd("break",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_86",(function(val,_values,result){return this.builder.$keyword_cmd("next",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_87",(function(val,_values,result){return this.builder.$multi_lhs(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_88",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_89",(function(val,_values,result){return this.builder.$multi_lhs(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_90",(function(val,_values,result){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_92",(function(val,_values,result){return val["$[]"](0).$push(val["$[]"](1))}),3),$def(self,"$_reduce_93",(function(val,_values,result){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1),val["$[]"](2)))}),3),$def(self,"$_reduce_94",(function(val,_values,result){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1),val["$[]"](2))).$concat(val["$[]"](4))}),3),$def(self,"$_reduce_95",(function(val,_values,result){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1)))}),3),$def(self,"$_reduce_96",(function(val,_values,result){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1))).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_97",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_98",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))].concat($to_a(val["$[]"](3)))}),3),$def(self,"$_reduce_99",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0))]}),3),$def(self,"$_reduce_100",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0))].concat($to_a(val["$[]"](2)))}),3),$def(self,"$_reduce_102",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_103",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_104",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_105",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_106",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_107",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_108",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_109",(function(val,_values,result){return this.builder.$index_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_110",(function(val,_values,result){return $eqeq(val["$[]"](1)["$[]"](0),"anddot")&&this.$diagnostic("error","csend_in_lhs_of_masgn",nil,val["$[]"](1)),this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_111",(function(val,_values,result){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_112",(function(val,_values,result){return $eqeq(val["$[]"](1)["$[]"](0),"anddot")&&this.$diagnostic("error","csend_in_lhs_of_masgn",nil,val["$[]"](1)),this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_113",(function(val,_values,result){return this.builder.$assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)))}),3),$def(self,"$_reduce_114",(function(val,_values,result){return this.builder.$assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)))}),3),$def(self,"$_reduce_115",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_116",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_117",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_118",(function(val,_values,result){return this.builder.$index_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_119",(function(val,_values,result){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_120",(function(val,_values,result){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_121",(function(val,_values,result){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_122",(function(val,_values,result){return this.builder.$assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)))}),3),$def(self,"$_reduce_123",(function(val,_values,result){return this.builder.$assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)))}),3),$def(self,"$_reduce_124",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_125",(function(val,_values,result){return this.$diagnostic("error","module_name_const",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_127",(function(val,_values,result){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_128",(function(val,_values,result){return this.builder.$const(val["$[]"](0))}),3),$def(self,"$_reduce_129",(function(val,_values,result){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_135",(function(val,_values,result){return this.builder.$symbol_internal(val["$[]"](0))}),3),$def(self,"$_reduce_137",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_138",(function(val,_values,result){var $writer;return $writer=["expr_fname"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_139",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](3))}),3),$def(self,"$_reduce_211",(function(val,_values,result){return this.builder.$assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_212",(function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_213",(function(val,_values,result){return this.builder.$op_assign(this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3)),val["$[]"](4),val["$[]"](5))}),3),$def(self,"$_reduce_214",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_215",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_216",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_217",(function(val,_values,result){var const$;return const$=this.builder.$const_op_assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))),this.builder.$op_assign(const$,val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_218",(function(val,_values,result){var const$;return const$=this.builder.$const_op_assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1))),this.builder.$op_assign(const$,val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_219",(function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_220",(function(val,_values,result){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_221",(function(val,_values,result){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_222",(function(val,_values,result){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),nil)}),3),$def(self,"$_reduce_223",(function(val,_values,result){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),nil)}),3),$def(self,"$_reduce_224",(function(val,_values,result){return this.builder.$range_inclusive(nil,val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_225",(function(val,_values,result){return this.builder.$range_exclusive(nil,val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_226",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_227",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_228",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_229",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_230",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_231",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_232",(function(val,_values,result){return this.builder.$unary_op(val["$[]"](0),this.builder.$binary_op(val["$[]"](1),val["$[]"](2),val["$[]"](3)))}),3),$def(self,"$_reduce_233",(function(val,_values,result){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_234",(function(val,_values,result){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_235",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_236",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_237",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_238",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_240",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_241",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_242",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_243",(function(val,_values,result){return this.builder.$match_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_244",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_245",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_246",(function(val,_values,result){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_247",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_248",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_249",(function(val,_values,result){return this.builder.$logical_op("and",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_250",(function(val,_values,result){return this.builder.$logical_op("or",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_251",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_defined=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_252",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_defined=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$keyword_cmd("defined?",val["$[]"](0),nil,[val["$[]"](3)],nil)}),3),$def(self,"$_reduce_253",(function(val,_values,result){return this.builder.$ternary(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](4),val["$[]"](5))}),3),$def(self,"$_reduce_254",(function(val,_values,result){var $a,$b,$c,def_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_255",(function(val,_values,result){var $a,$b,$c,def_t,name_t,rescue_body,method_body,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_256",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_257",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,rescue_body,method_body,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_263",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_264",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_268",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$associate(nil,val["$[]"](2),nil))}),3),$def(self,"$_reduce_269",(function(val,_values,result){return[this.builder.$associate(nil,val["$[]"](0),nil)]}),3),$def(self,"$_reduce_271",(function(val,_values,result){var rescue_body;return rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2)),this.builder.$begin_body(val["$[]"](0),[rescue_body])}),3),$def(self,"$_reduce_272",(function(val,_values,result){return val}),3),$def(self,"$_reduce_273",(function(val,_values,result){return $truthy(this.static_env["$declared_forward_args?"]())||this.$diagnostic("error","unexpected_token",$hash2(["token"],{token:"tBDOT3"}),val["$[]"](3)),[val["$[]"](0),[].concat($to_a(val["$[]"](1))).concat([this.builder.$forwarded_args(val["$[]"](3))]),val["$[]"](4)]}),3),$def(self,"$_reduce_274",(function(val,_values,result){return $truthy(this.static_env["$declared_forward_args?"]())||this.$diagnostic("error","unexpected_token",$hash2(["token"],{token:"tBDOT3"}),val["$[]"](1)),[val["$[]"](0),[this.builder.$forwarded_args(val["$[]"](1))],val["$[]"](2)]}),3),$def(self,"$_reduce_275",(function(val,_values,result){return[nil,[],nil]}),3),$def(self,"$_reduce_277",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_280",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$associate(nil,val["$[]"](2),nil))}),3),$def(self,"$_reduce_281",(function(val,_values,result){return[this.builder.$associate(nil,val["$[]"](0),nil)]}),3),$def(self,"$_reduce_282",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_283",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_284",(function(val,_values,result){return(result=[this.builder.$associate(nil,val["$[]"](0),nil)]).$concat(val["$[]"](1)),result}),3),$def(self,"$_reduce_285",(function(val,_values,result){var assocs;return assocs=this.builder.$associate(nil,val["$[]"](2),nil),(result=val["$[]"](0)["$<<"](assocs)).$concat(val["$[]"](3)),result}),3),$def(self,"$_reduce_286",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_287",(function(val,_values,result){var lookahead,$ret_or_1,last_token=nil,top=nil;return last_token=this.last_token["$[]"](0),lookahead=$truthy($ret_or_1=last_token["$=="]("tLBRACK"))?$ret_or_1:last_token["$=="]("tLPAREN_ARG"),$truthy(lookahead)?(top=this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$push(!0),this.lexer.$cmdarg().$push(top)):this.lexer.$cmdarg().$push(!0),result}),3),$def(self,"$_reduce_288",(function(val,_values,result){var lookahead,top=nil;return lookahead=this.last_token["$[]"](0)["$=="]("tLBRACE_ARG"),$truthy(lookahead)?(top=this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$push(top)):this.lexer.$cmdarg().$pop(),val["$[]"](1)}),3),$def(self,"$_reduce_289",(function(val,_values,result){return this.builder.$block_pass(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_290",(function(val,_values,result){return $not(this.static_env["$declared_anonymous_blockarg?"]())&&this.$diagnostic("error","no_anonymous_blockarg",nil,val["$[]"](0)),this.builder.$block_pass(val["$[]"](0),nil)}),3),$def(self,"$_reduce_291",(function(val,_values,result){return[val["$[]"](1)]}),3),$def(self,"$_reduce_292",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_293",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_294",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_295",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_296",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$splat(val["$[]"](2),val["$[]"](3)))}),3),$def(self,"$_reduce_297",(function(val,_values,result){return this.builder.$array(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_299",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_300",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$splat(val["$[]"](2),val["$[]"](3)))}),3),$def(self,"$_reduce_301",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_312",(function(val,_values,result){return this.builder.$call_method(nil,nil,val["$[]"](0))}),3),$def(self,"$_reduce_313",(function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result}),3),$def(self,"$_reduce_314",(function(val,_values,result){return this.lexer.$cmdarg().$pop(),this.builder.$begin_keyword(val["$[]"](0),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_315",(function(val,_values,result){var $writer;return $writer=["expr_endarg"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_316",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](3))}),3),$def(self,"$_reduce_317",(function(val,_values,result){var $writer;return $writer=["expr_endarg"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_318",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),nil,val["$[]"](3))}),3),$def(self,"$_reduce_319",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_320",(function(val,_values,result){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_321",(function(val,_values,result){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_322",(function(val,_values,result){return this.builder.$array(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_323",(function(val,_values,result){return this.builder.$associate(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_324",(function(val,_values,result){return this.builder.$keyword_cmd("return",val["$[]"](0))}),3),$def(self,"$_reduce_325",(function(val,_values,result){return this.builder.$keyword_cmd("yield",val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_326",(function(val,_values,result){return this.builder.$keyword_cmd("yield",val["$[]"](0),val["$[]"](1),[],val["$[]"](2))}),3),$def(self,"$_reduce_327",(function(val,_values,result){return this.builder.$keyword_cmd("yield",val["$[]"](0))}),3),$def(self,"$_reduce_328",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_defined=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_329",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_defined=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$keyword_cmd("defined?",val["$[]"](0),val["$[]"](2),[val["$[]"](4)],val["$[]"](5))}),3),$def(self,"$_reduce_330",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_331",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),val["$[]"](1),nil,val["$[]"](2))}),3),$def(self,"$_reduce_332",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(nil,nil,val["$[]"](0)),$b=val["$[]"](1),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_334",(function(val,_values,result){var $a,$b,begin_t,args,body,end_t;return $b=val["$[]"](1),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(val["$[]"](0),begin_t,args,body,end_t)}),3),$def(self,"$_reduce_336",(function(val,_values,result){var $a,$b,else_t,else_;return $b=val["$[]"](4),else_t=null==($a=$to_ary($b))[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1],this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3),else_t,else_,val["$[]"](5))}),3),$def(self,"$_reduce_337",(function(val,_values,result){var $a,$b,else_t,else_;return $b=val["$[]"](4),else_t=null==($a=$to_ary($b))[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1],this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),else_,else_t,val["$[]"](3),val["$[]"](5))}),3),$def(self,"$_reduce_338",(function(val,_values,result){return $send(this.builder,"loop",["while",val["$[]"](0)].concat($to_a(val["$[]"](1))).concat([val["$[]"](2),val["$[]"](3)]))}),3),$def(self,"$_reduce_339",(function(val,_values,result){return $send(this.builder,"loop",["until",val["$[]"](0)].concat($to_a(val["$[]"](1))).concat([val["$[]"](2),val["$[]"](3)]))}),3),$def(self,"$_reduce_340",(function(val,_values,result){var $a,$b,$c,when_bodies,else_t,else_body;return $b=($b=($a=[].concat($to_a(val["$[]"](3)))).length-1)<0?0:$b,when_bodies=$slice.call($a,0,$b),else_t=null==($c=$to_ary(null==$a[$b]?nil:$a[$b]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case(val["$[]"](0),val["$[]"](1),when_bodies,else_t,else_body,val["$[]"](4))}),3),$def(self,"$_reduce_341",(function(val,_values,result){var $a,$b,$c,when_bodies,else_t,else_body;return $b=($b=($a=[].concat($to_a(val["$[]"](2)))).length-1)<0?0:$b,when_bodies=$slice.call($a,0,$b),else_t=null==($c=$to_ary(null==$a[$b]?nil:$a[$b]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case(val["$[]"](0),nil,when_bodies,else_t,else_body,val["$[]"](3))}),3),$def(self,"$_reduce_342",(function(val,_values,result){var $a,$b,$c,in_bodies,else_t,else_body;return $b=($b=($a=[].concat($to_a(val["$[]"](3)))).length-1)<0?0:$b,in_bodies=$slice.call($a,0,$b),else_t=null==($c=$to_ary(null==$a[$b]?nil:$a[$b]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case_match(val["$[]"](0),val["$[]"](1),in_bodies,else_t,else_body,val["$[]"](4))}),3),$def(self,"$_reduce_343",(function(val,_values,result){return $send(this.builder,"for",[val["$[]"](0),val["$[]"](1),val["$[]"](2)].concat($to_a(val["$[]"](3))).concat([val["$[]"](4),val["$[]"](5)]))}),3),$def(self,"$_reduce_344",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_class=",$to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result}),3),$def(self,"$_reduce_345",(function(val,_values,result){var $a,$b,k_class,lt_t,superclass,$writer,ctx=nil;return $b=val["$[]"](0),k_class=null==($a=$to_ary($b))[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1],$truthy(this.context.$in_def())&&this.$diagnostic("error","class_in_def",nil,k_class),$b=val["$[]"](2),lt_t=null==($a=$to_ary($b))[0]?nil:$a[0],superclass=null==$a[1]?nil:$a[1],result=this.builder.$def_class(k_class,val["$[]"](1),lt_t,superclass,val["$[]"](4),val["$[]"](5)),this.$local_pop(),$writer=[ctx.$in_class()],$send(this.context,"in_class=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_346",(function(val,_values,result){var $writer=nil;return $writer=[!1],$send(this.context,"in_def=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.context,"in_class=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.$local_push(),result}),3),$def(self,"$_reduce_347",(function(val,_values,result){var $a,$b,k_class,ctx=nil,$writer=nil;return $b=val["$[]"](0),k_class=null==($a=$to_ary($b))[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1],result=this.builder.$def_sclass(k_class,val["$[]"](1),val["$[]"](2),val["$[]"](5),val["$[]"](6)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[ctx.$in_class()],$send(this.context,"in_class=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_348",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_class=",$to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result}),3),$def(self,"$_reduce_349",(function(val,_values,result){var $a,$b,k_mod,$writer,ctx=nil;return $b=val["$[]"](0),k_mod=null==($a=$to_ary($b))[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1],$truthy(this.context.$in_def())&&this.$diagnostic("error","module_in_def",nil,k_mod),result=this.builder.$def_module(k_mod,val["$[]"](1),val["$[]"](3),val["$[]"](4)),this.$local_pop(),$writer=[ctx.$in_class()],$send(this.context,"in_class=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_350",(function(val,_values,result){var $a,$b,$c,def_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],result=this.builder.$def_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_351",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],result=this.builder.$def_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_352",(function(val,_values,result){return this.builder.$keyword_cmd("break",val["$[]"](0))}),3),$def(self,"$_reduce_353",(function(val,_values,result){return this.builder.$keyword_cmd("next",val["$[]"](0))}),3),$def(self,"$_reduce_354",(function(val,_values,result){return this.builder.$keyword_cmd("redo",val["$[]"](0))}),3),$def(self,"$_reduce_355",(function(val,_values,result){return this.builder.$keyword_cmd("retry",val["$[]"](0))}),3),$def(self,"$_reduce_357",(function(val,_values,result){return[val["$[]"](0),this.context.$dup()]}),3),$def(self,"$_reduce_358",(function(val,_values,result){return[val["$[]"](0),this.context.$dup()]}),3),$def(self,"$_reduce_359",(function(val,_values,result){var $writer;return result=val["$[]"](0),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_360",(function(val,_values,result){var $ret_or_1=nil;return $truthy(this.context.$in_class())&&$not(this.context.$in_def())&&$not($truthy($ret_or_1=this.$context().$in_block())?$ret_or_1:this.$context().$in_lambda())&&this.$diagnostic("error","invalid_return",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_363",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_367",(function(val,_values,result){var $a,$b,else_t,else_;return $b=val["$[]"](4),else_t=null==($a=$to_ary($b))[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1],[val["$[]"](0),this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3),else_t,else_,nil)]}),3),$def(self,"$_reduce_369",(function(val,_values,result){return val}),3),$def(self,"$_reduce_372",(function(val,_values,result){return this.builder.$arg(val["$[]"](0))}),3),$def(self,"$_reduce_373",(function(val,_values,result){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_374",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_375",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_377",(function(val,_values,result){return val["$[]"](0).$push(val["$[]"](2))}),3),$def(self,"$_reduce_378",(function(val,_values,result){return val["$[]"](0).$push(val["$[]"](2)).$concat(val["$[]"](4))}),3),$def(self,"$_reduce_379",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_380",(function(val,_values,result){return[val["$[]"](0)].concat($to_a(val["$[]"](2)))}),3),$def(self,"$_reduce_381",(function(val,_values,result){return this.builder.$restarg(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_382",(function(val,_values,result){return this.builder.$restarg(val["$[]"](0))}),3),$def(self,"$_reduce_385",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_386",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_387",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_388",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_389",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_390",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_391",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_392",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_394",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_395",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](6)).$concat(val["$[]"](7))}),3),$def(self,"$_reduce_396",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_397",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_398",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_400",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_401",(function(val,_values,result){return $truthy(val["$[]"](1)["$empty?"]())&&$eqeq(val["$[]"](0).$size(),1)?[this.builder.$procarg0(val["$[]"](0)["$[]"](0))]:val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_402",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_403",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_404",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_405",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_406",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_407",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_409",(function(val,_values,result){return this.builder.$args(nil,[],nil)}),3),$def(self,"$_reduce_410",(function(val,_values,result){var $writer;return $writer=["expr_value"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_411",(function(val,_values,result){var $writer;return this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(nil),$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$args(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_412",(function(val,_values,result){var $writer;return this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(nil),$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$args(val["$[]"](0),val["$[]"](1).$concat(val["$[]"](2)),val["$[]"](3))}),3),$def(self,"$_reduce_413",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_414",(function(val,_values,result){return val["$[]"](2)}),3),$def(self,"$_reduce_415",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_416",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_417",(function(val,_values,result){return this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.builder.$shadowarg(val["$[]"](0))}),3),$def(self,"$_reduce_419",(function(val,_values,result){var $writer;return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_420",(function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result}),3),$def(self,"$_reduce_421",(function(val,_values,result){var $a,$b,lambda_call,args,begin_t,body,end_t,$writer;return lambda_call=this.builder.$call_lambda(val["$[]"](0)),args=$truthy(this.max_numparam_stack["$has_numparams?"]())?this.builder.$numargs(this.max_numparam_stack.$top()):val["$[]"](2),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],this.max_numparam_stack.$pop(),this.static_env.$unextend(),this.lexer.$cmdarg().$pop(),$writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$block(lambda_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_422",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.max_numparam_stack["$has_ordinary_params!"](),this.builder.$args(val["$[]"](0),val["$[]"](1).$concat(val["$[]"](2)),val["$[]"](3))}),3),$def(self,"$_reduce_423",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),$truthy(val["$[]"](0)["$any?"]())&&this.max_numparam_stack["$has_ordinary_params!"](),this.builder.$args(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_424",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_425",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0),val["$[]"](2),val["$[]"](3)]}),3),$def(self,"$_reduce_426",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_427",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0),val["$[]"](2),val["$[]"](3)]}),3),$def(self,"$_reduce_428",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_429",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3)])}),3),$def(self,"$_reduce_430",(function(val,_values,result){var $a,$b,begin_t,block_args,body,end_t;return $b=val["$[]"](1),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],block_args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(val["$[]"](0),begin_t,block_args,body,end_t)}),3),$def(self,"$_reduce_431",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](3),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_432",(function(val,_values,result){var $a,$b,lparen_t,rparen_t,method_call,begin_t,body,end_t,args=nil;return $b=val["$[]"](3),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_433",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_434",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](1),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(nil,nil,val["$[]"](0),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_435",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](3),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_436",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](3),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_437",(function(val,_values,result){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_438",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](2),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),nil,lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_439",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](2),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),nil,lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_440",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](1),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$keyword_cmd("super",val["$[]"](0),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_441",(function(val,_values,result){return this.builder.$keyword_cmd("zsuper",val["$[]"](0))}),3),$def(self,"$_reduce_442",(function(val,_values,result){return this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_443",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_444",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3)])}),3),$def(self,"$_reduce_445",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_446",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3)])}),3),$def(self,"$_reduce_447",(function(val,_values,result){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result}),3),$def(self,"$_reduce_448",(function(val,_values,result){return result=[$truthy(this.max_numparam_stack["$has_numparams?"]())?this.builder.$numargs(this.max_numparam_stack.$top()):val["$[]"](1),val["$[]"](2)],this.max_numparam_stack.$pop(),this.static_env.$unextend(),result}),3),$def(self,"$_reduce_449",(function(val,_values,result){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result}),3),$def(self,"$_reduce_450",(function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result}),3),$def(self,"$_reduce_451",(function(val,_values,result){return result=[$truthy(this.max_numparam_stack["$has_numparams?"]())?this.builder.$numargs(this.max_numparam_stack.$top()):val["$[]"](2),val["$[]"](3)],this.max_numparam_stack.$pop(),this.static_env.$unextend(),this.lexer.$cmdarg().$pop(),result}),3),$def(self,"$_reduce_452",(function(val,_values,result){return[this.builder.$when(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))].concat($to_a(val["$[]"](4)))}),3),$def(self,"$_reduce_453",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_455",(function(val,_values,result){var $writer=nil;return $writer=["expr_beg"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.lexer,"command_start=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.pattern_variables.$push(),this.pattern_hash_keys.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_456",(function(val,_values,result){var $writer;return this.pattern_variables.$pop(),this.pattern_hash_keys.$pop(),$writer=[val["$[]"](1)],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_457",(function(val,_values,result){return[$send(this.builder,"in_pattern",[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3),val["$[]"](5)]))].concat($to_a(val["$[]"](6)))}),3),$def(self,"$_reduce_458",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_460",(function(val,_values,result){return[val["$[]"](0),nil]}),3),$def(self,"$_reduce_461",(function(val,_values,result){return[val["$[]"](0),this.builder.$if_guard(val["$[]"](1),val["$[]"](2))]}),3),$def(self,"$_reduce_462",(function(val,_values,result){return[val["$[]"](0),this.builder.$unless_guard(val["$[]"](1),val["$[]"](2))]}),3),$def(self,"$_reduce_464",(function(val,_values,result){var item;return item=this.builder.$match_with_trailing_comma(val["$[]"](0),val["$[]"](1)),this.builder.$array_pattern(nil,[item],nil)}),3),$def(self,"$_reduce_465",(function(val,_values,result){return this.builder.$array_pattern(nil,[val["$[]"](0)].$concat(val["$[]"](2)),nil)}),3),$def(self,"$_reduce_466",(function(val,_values,result){return this.builder.$find_pattern(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_467",(function(val,_values,result){return this.builder.$array_pattern(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_468",(function(val,_values,result){return this.builder.$hash_pattern(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_470",(function(val,_values,result){return this.builder.$match_as(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_472",(function(val,_values,result){return this.builder.$match_alt(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_474",(function(val,_values,result){return result=val["$[]"](0),this.pattern_hash_keys.$push(),result}),3),$def(self,"$_reduce_475",(function(val,_values,result){return result=val["$[]"](0),this.pattern_hash_keys.$push(),result}),3),$def(self,"$_reduce_478",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$array_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_479",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$find_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_480",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$hash_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_481",(function(val,_values,result){var pattern;return pattern=this.builder.$array_pattern(val["$[]"](1),nil,val["$[]"](2)),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](2))}),3),$def(self,"$_reduce_482",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$array_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_483",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$find_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_484",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$hash_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_485",(function(val,_values,result){var pattern;return pattern=this.builder.$array_pattern(val["$[]"](1),nil,val["$[]"](2)),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](2))}),3),$def(self,"$_reduce_486",(function(val,_values,result){return this.builder.$array_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_487",(function(val,_values,result){return this.builder.$find_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_488",(function(val,_values,result){return this.builder.$array_pattern(val["$[]"](0),[],val["$[]"](1))}),3),$def(self,"$_reduce_489",(function(val,_values,result){var $writer;return this.pattern_hash_keys.$push(),result=this.context.$in_kwarg(),$writer=[!1],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_490",(function(val,_values,result){var $writer;return this.pattern_hash_keys.$pop(),$writer=[val["$[]"](1)],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$hash_pattern(val["$[]"](0),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_491",(function(val,_values,result){return this.builder.$hash_pattern(val["$[]"](0),[],val["$[]"](1))}),3),$def(self,"$_reduce_492",(function(val,_values,result){return this.pattern_hash_keys.$push(),result}),3),$def(self,"$_reduce_493",(function(val,_values,result){return this.pattern_hash_keys.$pop(),this.builder.$begin(val["$[]"](0),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_494",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_495",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_496",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([val["$[]"](1)])}),3),$def(self,"$_reduce_497",(function(val,_values,result){var match_rest;return match_rest=this.builder.$match_rest(val["$[]"](1),val["$[]"](2)),[].concat($to_a(val["$[]"](0))).concat([match_rest])}),3),$def(self,"$_reduce_498",(function(val,_values,result){var match_rest;return match_rest=this.builder.$match_rest(val["$[]"](1),val["$[]"](2)),[].concat($to_a(val["$[]"](0))).concat([match_rest]).concat($to_a(val["$[]"](4)))}),3),$def(self,"$_reduce_499",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([this.builder.$match_rest(val["$[]"](1))])}),3),$def(self,"$_reduce_500",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([this.builder.$match_rest(val["$[]"](1))]).concat($to_a(val["$[]"](3)))}),3),$def(self,"$_reduce_502",(function(val,_values,result){return[this.builder.$match_with_trailing_comma(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_503",(function(val,_values,result){var last_item;return last_item=this.builder.$match_with_trailing_comma(val["$[]"](1),val["$[]"](2)),[].concat($to_a(val["$[]"](0))).concat([last_item])}),3),$def(self,"$_reduce_504",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_505",(function(val,_values,result){return[val["$[]"](0)].concat($to_a(val["$[]"](2)))}),3),$def(self,"$_reduce_506",(function(val,_values,result){return[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](4)])}),3),$def(self,"$_reduce_507",(function(val,_values,result){return this.builder.$match_rest(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_508",(function(val,_values,result){return this.builder.$match_rest(val["$[]"](0))}),3),$def(self,"$_reduce_509",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_510",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([val["$[]"](2)])}),3),$def(self,"$_reduce_512",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat($to_a(val["$[]"](2)))}),3),$def(self,"$_reduce_513",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_514",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_515",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_516",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_517",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([val["$[]"](2)])}),3),$def(self,"$_reduce_518",(function(val,_values,result){return $send(this.builder,"match_pair",$to_a(val["$[]"](0)).concat([val["$[]"](1)]))}),3),$def(self,"$_reduce_519",(function(val,_values,result){return $send(this.builder,"match_label",$to_a(val["$[]"](0)))}),3),$def(self,"$_reduce_520",(function(val,_values,result){return["label",val["$[]"](0)]}),3),$def(self,"$_reduce_521",(function(val,_values,result){return["quoted",[val["$[]"](0),val["$[]"](1),val["$[]"](2)]]}),3),$def(self,"$_reduce_522",(function(val,_values,result){return[this.builder.$match_rest(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_523",(function(val,_values,result){return[this.builder.$match_rest(val["$[]"](0),nil)]}),3),$def(self,"$_reduce_524",(function(val,_values,result){return[this.builder.$match_nil_pattern(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_528",(function(val,_values,result){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_529",(function(val,_values,result){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_530",(function(val,_values,result){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),nil)}),3),$def(self,"$_reduce_531",(function(val,_values,result){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),nil)}),3),$def(self,"$_reduce_535",(function(val,_values,result){return this.builder.$range_inclusive(nil,val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_536",(function(val,_values,result){return this.builder.$range_exclusive(nil,val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_545",(function(val,_values,result){return this.builder.$accessible(val["$[]"](0))}),3),$def(self,"$_reduce_547",(function(val,_values,result){return this.builder.$assignable(this.builder.$match_var(val["$[]"](0)))}),3),$def(self,"$_reduce_548",(function(val,_values,result){var name,lvar;return name=val["$[]"](1)["$[]"](0),$truthy(this.$static_env()["$declared?"](name))||this.$diagnostic("error","undefined_lvar",$hash2(["name"],{name:name}),val["$[]"](1)),lvar=this.builder.$accessible(this.builder.$ident(val["$[]"](1))),this.builder.$pin(val["$[]"](0),lvar)}),3),$def(self,"$_reduce_549",(function(val,_values,result){var non_lvar;return non_lvar=this.builder.$accessible(val["$[]"](1)),this.builder.$pin(val["$[]"](0),non_lvar)}),3),$def(self,"$_reduce_550",(function(val,_values,result){var expr;return expr=this.builder.$begin(val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.builder.$pin(val["$[]"](0),expr)}),3),$def(self,"$_reduce_551",(function(val,_values,result){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_552",(function(val,_values,result){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_553",(function(val,_values,result){return this.builder.$const(val["$[]"](0))}),3),$def(self,"$_reduce_554",(function(val,_values,result){var $a,$b,assoc_t,exc_var,exc_list=nil;return $b=val["$[]"](2),assoc_t=null==($a=$to_ary($b))[0]?nil:$a[0],exc_var=null==$a[1]?nil:$a[1],$truthy(val["$[]"](1))&&(exc_list=this.builder.$array(nil,val["$[]"](1),nil)),[this.builder.$rescue_body(val["$[]"](0),exc_list,assoc_t,exc_var,val["$[]"](3),val["$[]"](4))].concat($to_a(val["$[]"](5)))}),3),$def(self,"$_reduce_555",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_556",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_559",(function(val,_values,result){return[val["$[]"](0),val["$[]"](1)]}),3),$def(self,"$_reduce_561",(function(val,_values,result){return[val["$[]"](0),val["$[]"](1)]}),3),$def(self,"$_reduce_565",(function(val,_values,result){return this.builder.$string_compose(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_566",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_567",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_568",(function(val,_values,result){var string;return string=this.builder.$string_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2)),this.builder.$dedent_string(string,this.lexer.$dedent_level())}),3),$def(self,"$_reduce_569",(function(val,_values,result){var string;return string=this.builder.$string(val["$[]"](0)),this.builder.$dedent_string(string,this.lexer.$dedent_level())}),3),$def(self,"$_reduce_570",(function(val,_values,result){return this.builder.$character(val["$[]"](0))}),3),$def(self,"$_reduce_571",(function(val,_values,result){var string;return string=this.builder.$xstring_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2)),this.builder.$dedent_string(string,this.lexer.$dedent_level())}),3),$def(self,"$_reduce_572",(function(val,_values,result){var opts;return opts=this.builder.$regexp_options(val["$[]"](3)),this.builder.$regexp_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2),opts)}),3),$def(self,"$_reduce_573",(function(val,_values,result){return this.builder.$words_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_574",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_575",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$word(val["$[]"](1)))}),3),$def(self,"$_reduce_576",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_577",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_578",(function(val,_values,result){return this.builder.$symbols_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_579",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_580",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$word(val["$[]"](1)))}),3),$def(self,"$_reduce_581",(function(val,_values,result){return this.builder.$words_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_582",(function(val,_values,result){return this.builder.$symbols_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_583",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_584",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$string_internal(val["$[]"](1)))}),3),$def(self,"$_reduce_585",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_586",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$symbol_internal(val["$[]"](1)))}),3),$def(self,"$_reduce_587",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_588",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_589",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_590",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_591",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_592",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_593",(function(val,_values,result){return this.builder.$string_internal(val["$[]"](0))}),3),$def(self,"$_reduce_594",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_595",(function(val,_values,result){return this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),result}),3),$def(self,"$_reduce_596",(function(val,_values,result){return this.lexer.$cmdarg().$pop(),this.lexer.$cond().$pop(),this.builder.$begin(val["$[]"](0),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_597",(function(val,_values,result){return this.builder.$gvar(val["$[]"](0))}),3),$def(self,"$_reduce_598",(function(val,_values,result){return this.builder.$ivar(val["$[]"](0))}),3),$def(self,"$_reduce_599",(function(val,_values,result){return this.builder.$cvar(val["$[]"](0))}),3),$def(self,"$_reduce_603",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$symbol(val["$[]"](0))}),3),$def(self,"$_reduce_604",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$symbol_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_605",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_606",(function(val,_values,result){return $truthy(this.builder["$respond_to?"]("negate"))?this.builder.$negate(val["$[]"](0),val["$[]"](1)):this.builder.$unary_num(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_607",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$integer(val["$[]"](0))}),3),$def(self,"$_reduce_608",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$float(val["$[]"](0))}),3),$def(self,"$_reduce_609",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$rational(val["$[]"](0))}),3),$def(self,"$_reduce_610",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$complex(val["$[]"](0))}),3),$def(self,"$_reduce_611",(function(val,_values,result){return this.builder.$ivar(val["$[]"](0))}),3),$def(self,"$_reduce_612",(function(val,_values,result){return this.builder.$gvar(val["$[]"](0))}),3),$def(self,"$_reduce_613",(function(val,_values,result){return this.builder.$cvar(val["$[]"](0))}),3),$def(self,"$_reduce_614",(function(val,_values,result){return this.builder.$ident(val["$[]"](0))}),3),$def(self,"$_reduce_615",(function(val,_values,result){return this.builder.$ivar(val["$[]"](0))}),3),$def(self,"$_reduce_616",(function(val,_values,result){return this.builder.$gvar(val["$[]"](0))}),3),$def(self,"$_reduce_617",(function(val,_values,result){return this.builder.$const(val["$[]"](0))}),3),$def(self,"$_reduce_618",(function(val,_values,result){return this.builder.$cvar(val["$[]"](0))}),3),$def(self,"$_reduce_619",(function(val,_values,result){return this.builder.$nil(val["$[]"](0))}),3),$def(self,"$_reduce_620",(function(val,_values,result){return this.builder.$self(val["$[]"](0))}),3),$def(self,"$_reduce_621",(function(val,_values,result){return this.builder.$true(val["$[]"](0))}),3),$def(self,"$_reduce_622",(function(val,_values,result){return this.builder.$false(val["$[]"](0))}),3),$def(self,"$_reduce_623",(function(val,_values,result){return this.builder.$__FILE__(val["$[]"](0))}),3),$def(self,"$_reduce_624",(function(val,_values,result){return this.builder.$__LINE__(val["$[]"](0))}),3),$def(self,"$_reduce_625",(function(val,_values,result){return this.builder.$__ENCODING__(val["$[]"](0))}),3),$def(self,"$_reduce_626",(function(val,_values,result){return this.builder.$accessible(val["$[]"](0))}),3),$def(self,"$_reduce_627",(function(val,_values,result){return this.builder.$accessible(val["$[]"](0))}),3),$def(self,"$_reduce_628",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_629",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_630",(function(val,_values,result){return this.builder.$nth_ref(val["$[]"](0))}),3),$def(self,"$_reduce_631",(function(val,_values,result){return this.builder.$back_ref(val["$[]"](0))}),3),$def(self,"$_reduce_632",(function(val,_values,result){var $writer;return $writer=["expr_value"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_633",(function(val,_values,result){return[val["$[]"](0),val["$[]"](2)]}),3),$def(self,"$_reduce_634",(function(val,_values,result){return nil}),3),$def(self,"$_reduce_636",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$args(nil,[],nil)}),3),$def(self,"$_reduce_637",(function(val,_values,result){var $writer=nil;return result=this.builder.$args(val["$[]"](0),val["$[]"](1),val["$[]"](2)),$writer=["expr_value"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_639",(function(val,_values,result){var $writer=nil;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_640",(function(val,_values,result){var $writer=nil;return $writer=[val["$[]"](0).$in_kwarg()],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.builder.$args(nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_641",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_642",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_643",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_644",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_645",(function(val,_values,result){return this.static_env.$declare_forward_args(),[this.builder.$forward_arg(val["$[]"](0))]}),3),$def(self,"$_reduce_646",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_647",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_648",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_649",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](6)).$concat(val["$[]"](7))}),3),$def(self,"$_reduce_650",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_651",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_652",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_653",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_654",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_655",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_656",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_657",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_658",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_659",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_660",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_661",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_662",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_663",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_664",(function(val,_values,result){return this.$diagnostic("error","argument_const",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_665",(function(val,_values,result){return this.$diagnostic("error","argument_ivar",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_666",(function(val,_values,result){return this.$diagnostic("error","argument_gvar",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_667",(function(val,_values,result){return this.$diagnostic("error","argument_cvar",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_669",(function(val,_values,result){return this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),val["$[]"](0)}),3),$def(self,"$_reduce_670",(function(val,_values,result){return this.current_arg_stack.$set(val["$[]"](0)["$[]"](0)),val["$[]"](0)}),3),$def(self,"$_reduce_671",(function(val,_values,result){return this.current_arg_stack.$set(0),this.builder.$arg(val["$[]"](0))}),3),$def(self,"$_reduce_672",(function(val,_values,result){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_673",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_674",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_675",(function(val,_values,result){var $writer;return this.$check_kwarg_name(val["$[]"](0)),this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(val["$[]"](0)["$[]"](0)),$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),val["$[]"](0)}),3),$def(self,"$_reduce_676",(function(val,_values,result){var $writer;return this.current_arg_stack.$set(nil),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$kwoptarg(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_677",(function(val,_values,result){var $writer;return this.current_arg_stack.$set(nil),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$kwarg(val["$[]"](0))}),3),$def(self,"$_reduce_678",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$kwoptarg(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_679",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$kwarg(val["$[]"](0))}),3),$def(self,"$_reduce_680",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_681",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_682",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_683",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_686",(function(val,_values,result){return[this.builder.$kwnilarg(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_687",(function(val,_values,result){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),[this.builder.$kwrestarg(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_688",(function(val,_values,result){return[this.builder.$kwrestarg(val["$[]"](0))]}),3),$def(self,"$_reduce_689",(function(val,_values,result){var $writer;return this.current_arg_stack.$set(0),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$optarg(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_690",(function(val,_values,result){var $writer;return this.current_arg_stack.$set(0),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$optarg(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_691",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_692",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_693",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_694",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_697",(function(val,_values,result){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),[this.builder.$restarg(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_698",(function(val,_values,result){return[this.builder.$restarg(val["$[]"](0))]}),3),$def(self,"$_reduce_701",(function(val,_values,result){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),this.builder.$blockarg(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_702",(function(val,_values,result){return this.static_env.$declare_anonymous_blockarg(),this.builder.$blockarg(val["$[]"](0),nil)}),3),$def(self,"$_reduce_703",(function(val,_values,result){return[val["$[]"](1)]}),3),$def(self,"$_reduce_704",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_706",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_707",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_709",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_710",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_711",(function(val,_values,result){return this.builder.$pair(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_712",(function(val,_values,result){return this.builder.$pair_keyword(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_713",(function(val,_values,result){return this.builder.$pair_label(val["$[]"](0))}),3),$def(self,"$_reduce_714",(function(val,_values,result){return this.builder.$pair_quoted(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_715",(function(val,_values,result){return this.builder.$kwsplat(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_728",(function(val,_values,result){return["dot",val["$[]"](0)["$[]"](1)]}),3),$def(self,"$_reduce_729",(function(val,_values,result){return["anddot",val["$[]"](0)["$[]"](1)]}),3),$def(self,"$_reduce_734",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_735",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_736",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_740",(function(val,_values,result){return this.$yyerrok(),result}),3),$def(self,"$_reduce_744",(function(val,_values,result){return nil}),3),$def(self,"$_reduce_none",(function(val,_values,result){return val["$[]"](0)}),3)}($nesting[0],$$$($$("Parser"),"Base"),$nesting)}($nesting[0],$nesting)},Opal.modules["opal/ast/builder"]=function(Opal){var self=Opal.top,$nesting=[],$$$=(Opal.nil,Opal.$$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$Opal=Opal.Opal,$hash2=Opal.hash2,$def=Opal.def;return Opal.add_stubs("require,emit_lambda=,-,new"),self.$require("opal/ast/node"),self.$require("parser/ruby31"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var $writer,self=$klass($base,$super,"Builder");return $send(self,"emit_lambda=",$to_a($writer=[!0])),$rb_minus($writer.length,1),$def(self,"$n",(function(type,children,location){return $$$($$$($Opal,"AST"),"Node").$new(type,children,$hash2(["location"],{location:location}))}),3)}([$module($base,"AST")].concat($parent_nesting)[0],$$$($$$($$$("Parser"),"Builders"),"Default"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/base"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$const_set=Opal.const_set,$truthy=Opal.truthy,$Opal=Opal.Opal,$hash2=Opal.hash2,$defs=Opal.defs,$alias=Opal.alias,$rb_plus=Opal.rb_plus,$eqeqeq=Opal.eqeqeq,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,new,current_node,loc,+,stmts_of,begin_with_stmts,nil?,include?,type,children,===,length,[],s,attr_accessor,current_node=,-,location=,raise,process_regular_node,[]=,meta"),self.$require("parser"),self.$require("opal/ast/node"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Base"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.dynamic_cache_result=nil,function($base,$super,$parent_nesting){var self=$klass($base,null,"DummyLocation"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$node=",(function($a){return Opal.slice.call(arguments),nil}),-1),$def(self,"$expression",(function(){return this}),0),$def(self,"$begin_pos",(function(){return 0}),0),$def(self,"$end_pos",(function(){return 0}),0),$def(self,"$source",(function(){return""}),0),$def(self,"$line",(function(){return 0}),0),$def(self,"$column",(function(){return 0}),0),$def(self,"$last_line",(function(){return $$$($$("Float"),"INFINITY")}),0)}($nesting[0],0,$nesting),$const_set($nesting[0],"DUMMY_LOCATION",$$("DummyLocation").$new()),$def(self,"$s",(function(type,$a){var children,self=this,loc=nil;return children=Opal.slice.call(arguments,1),loc=$truthy(self.$current_node())?self.$current_node().$loc():$$("DUMMY_LOCATION"),$$$($$$($Opal,"AST"),"Node").$new(type,children,$hash2(["location"],{location:loc}))}),-2),$defs(self,"$s",(function(type,$a){var children;return children=Opal.slice.call(arguments,1),$$$($$$($Opal,"AST"),"Node").$new(type,children,$hash2(["location"],{location:$$("DUMMY_LOCATION")}))}),-2),$alias(self,"on_iter","process_regular_node"),$alias(self,"on_zsuper","process_regular_node"),$alias(self,"on_jscall","on_send"),$alias(self,"on_jsattr","process_regular_node"),$alias(self,"on_jsattrasgn","process_regular_node"),$alias(self,"on_kwsplat","process_regular_node"),$def(self,"$prepend_to_body",(function(body,node){var stmts;return stmts=$rb_plus(this.$stmts_of(node),this.$stmts_of(body)),this.$begin_with_stmts(stmts)}),2),$def(self,"$append_to_body",(function(body,node){var stmts;return stmts=$rb_plus(this.$stmts_of(body),this.$stmts_of(node)),this.$begin_with_stmts(stmts)}),2),$def(self,"$stmts_of",(function(node){return $truthy(node["$nil?"]())?[]:$truthy(["begin","kwbegin"]["$include?"](node.$type()))?node.$children():[node]}),1),$def(self,"$begin_with_stmts",(function(stmts){var $ret_or_1;return $eqeqeq(0,$ret_or_1=stmts.$length())?nil:$eqeqeq(1,$ret_or_1)?stmts["$[]"](0):$send(this,"s",["begin"].concat($to_a(stmts)))}),1),self.$attr_accessor("current_node"),$def(self,"$process",(function $$process(node){var $yield=$$process.$$p||nil,self=this,$writer=nil;return delete $$process.$$p,function(){try{return $send(self,"current_node=",$to_a($writer=[node])),$writer[$rb_minus($writer.length,1)],$send2(self,$find_super(self,"process",$$process,!1,!0),"process",[node],$yield)}finally{$send(self,"current_node=",$to_a($writer=[nil])),$writer[$rb_minus($writer.length,1)]}}()}),1),$def(self,"$error",(function(msg){var error,$writer=nil;return error=$$$($Opal,"RewritingError").$new(msg),$truthy(this.$current_node())&&($writer=[this.$current_node().$loc()],$send(error,"location=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),this.$raise(error)}),1),$def(self,"$on_top",(function(node){var $writer=nil;return node=this.$process_regular_node(node),$truthy(this.dynamic_cache_result)&&($writer=["dynamic_cache_result",!0],$send(node.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),node}),1),$def(self,"$dynamic!",(function(){return this.dynamic_cache_result=!0}),0)}($nesting[0],$$$($$$($$$("Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/opal_engine_check"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_a=Opal.to_a,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$const_set=Opal.const_set;return Opal.add_stubs("require,children,skip_check_present?,process,s,skip_check_present_not?,=="),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"OpalEngineCheck"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$on_if",(function $$on_if(node){var $a,test,true_body,false_body,$yield=$$on_if.$$p||nil,$ret_or_1=nil;return delete $$on_if.$$p,test=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],$truthy(this["$skip_check_present?"](test))?this.$process($truthy($ret_or_1=true_body)?$ret_or_1:this.$s("nil")):$truthy(this["$skip_check_present_not?"](test))?this.$process($truthy($ret_or_1=false_body)?$ret_or_1:this.$s("nil")):$send2(this,$find_super(this,"on_if",$$on_if,!1,!0),"on_if",[node],$yield)}),1),$def(self,"$skip_check_present?",(function(test){var $ret_or_1;return $truthy($ret_or_1=test["$=="]($$("RUBY_ENGINE_CHECK")))?$ret_or_1:test["$=="]($$("RUBY_PLATFORM_CHECK"))}),1),$def(self,"$skip_check_present_not?",(function(test){var $ret_or_1;return $truthy($ret_or_1=test["$=="]($$("RUBY_ENGINE_CHECK_NOT")))?$ret_or_1:test["$=="]($$("RUBY_PLATFORM_CHECK_NOT"))}),1),$const_set($nesting[0],"RUBY_ENGINE_CHECK",self.$s("send",self.$s("const",nil,"RUBY_ENGINE"),"==",self.$s("str","opal"))),$const_set($nesting[0],"RUBY_ENGINE_CHECK_NOT",self.$s("send",self.$s("const",nil,"RUBY_ENGINE"),"!=",self.$s("str","opal"))),$const_set($nesting[0],"RUBY_PLATFORM_CHECK",self.$s("send",self.$s("const",nil,"RUBY_PLATFORM"),"==",self.$s("str","opal"))),$const_set($nesting[0],"RUBY_PLATFORM_CHECK_NOT",self.$s("send",self.$s("const",nil,"RUBY_PLATFORM"),"!=",self.$s("str","opal")))}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/for_rewriter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$defs=Opal.defs,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$to_a=Opal.to_a,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,+,find,map,s,next_tmp,class,===,type,updated,<<,prepend_to_body,process,attr_reader,new,to_a,result"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ForRewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$reset_tmp_counter!",(function(){return this.counter=0}),0),$defs(self,"$next_tmp",(function(){var $ret_or_1;return null==this.counter&&(this.counter=nil),this.counter=$truthy($ret_or_1=this.counter)?$ret_or_1:0,this.counter=$rb_plus(this.counter,1),"$for_tmp"+this.counter}),0),$def(self,"$on_for",(function(node){var $a,iterating_value,iterating_lvars,lvars_declared_in_body,outer_assigns,tmp_loop_variable,get_tmp_loop_variable,loop_variable_assignment,loop_variable=nil,loop_body=nil;return loop_variable=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],iterating_value=null==$a[1]?nil:$a[1],loop_body=null==$a[2]?nil:$a[2],iterating_lvars=$$("LocalVariableAssigns").$find(loop_variable),lvars_declared_in_body=$$("LocalVariableAssigns").$find(loop_body),outer_assigns=$send($rb_plus(iterating_lvars,lvars_declared_in_body),"map",[],(function $$2(lvar_name){return null==lvar_name&&(lvar_name=nil),(null==$$2.$$s?this:$$2.$$s).$s("lvdeclare",lvar_name)}),{$$arity:1,$$s:this}),tmp_loop_variable=this.$class().$next_tmp(),get_tmp_loop_variable=this.$s("js_tmp",tmp_loop_variable),loop_variable_assignment=$eqeqeq("mlhs",loop_variable.$type())?loop_variable.$updated("masgn",[loop_variable,get_tmp_loop_variable]):loop_variable["$<<"](get_tmp_loop_variable),loop_body=this.$prepend_to_body(loop_body,loop_variable_assignment),(node=node.$updated("send",[iterating_value,"each",node.$updated("iter",[this.$s("args",this.$s("arg",tmp_loop_variable)),this.$process(loop_body)])])).$updated("begin",[].concat($to_a(outer_assigns)).concat([node]))}),1),function($base,$super,$parent_nesting){var self=$klass($base,$super,"LocalVariableAssigns"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$attr_reader("result"),$defs(self,"$find",(function(node){var processor=nil;return(processor=this.$new()).$process(node),processor.$result().$to_a()}),1),$def(self,"$initialize",(function(){return this.result=$$("Set").$new()}),0),$def(self,"$on_lvasgn",(function $$on_lvasgn(node){var $a,name,$yield=$$on_lvasgn.$$p||nil;return delete $$on_lvasgn.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],this.$result()["$<<"](name),$send2(this,$find_super(this,"on_lvasgn",$$on_lvasgn,!1,!0),"on_lvasgn",[node],$yield)}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/explicit_writer_return"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$const_set=Opal.const_set,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$slice=Opal.slice,$eqeq=Opal.eqeq,$regexp=Opal.regexp,$send=Opal.send;return Opal.add_stubs("require,s,==,to_s,=~,process_all,updated"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ExplicitWriterReturn"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.in_masgn=nil,$def(self,"$initialize",(function(){return this.in_masgn=!1}),0),$const_set($nesting[0],"TMP_NAME","$writer"),$const_set($nesting[0],"GET_ARGS_NODE",self.$s("lvar",$$("TMP_NAME"))),$const_set($nesting[0],"RETURN_ARGS_NODE",self.$s("jsattr",$$("GET_ARGS_NODE"),self.$s("send",self.$s("jsattr",$$("GET_ARGS_NODE"),self.$s("str","length")),"-",self.$s("int",1)))),$def(self,"$on_send",(function $$on_send(node){var $a,recv,args,$yield=$$on_send.$$p||nil,method_name=nil,set_args_node=nil;return delete $$on_send.$$p,$truthy(this.in_masgn)?$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield):(recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy(method_name.$to_s()["$=~"]($regexp([$$("REGEXP_START"),"\\w+=",$$("REGEXP_END")])))||$eqeq(method_name.$to_s(),"[]=")?(set_args_node=this.$s("lvasgn",$$("TMP_NAME"),$send(this,"s",["array"].concat($to_a(this.$process_all(args))))),this.$s("begin",set_args_node,node.$updated(nil,[recv,method_name,this.$s("splat",$$("GET_ARGS_NODE"))]),$$("RETURN_ARGS_NODE"))):$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield))}),1),$def(self,"$on_masgn",(function $$on_masgn(node){var result,$yield=$$on_masgn.$$p||nil;return delete $$on_masgn.$$p,this.in_masgn=!0,result=$send2(this,$find_super(this,"on_masgn",$$on_masgn,!1,!0),"on_masgn",[node],$yield),this.in_masgn=!1,result}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/js_reserved_words"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$truthy=Opal.truthy,$defs=Opal.defs,$def=Opal.def,$range=Opal.range,$to_a=Opal.to_a,$send2=Opal.send2,$find_super=Opal.find_super,$hash2=Opal.hash2,$alias=Opal.alias;return Opal.add_stubs("require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name"),self.$require("opal/rewriters/base"),self.$require("opal/regexp_anchors"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"JsReservedWords"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"ES51_RESERVED_WORD",$regexp([$$("REGEXP_START"),"(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"ES3_RESERVED_WORD_EXCLUSIVE",$regexp([$$("REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"PROTO_SPECIAL_PROPS",$regexp([$$("REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"PROTO_SPECIAL_METHODS",$regexp([$$("REGEXP_START"),"(?:hasOwnProperty|valueOf)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"IMMUTABLE_PROPS",$regexp([$$("REGEXP_START"),"(?:NaN|Infinity|undefined)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"BASIC_IDENTIFIER_RULES",$regexp([$$("REGEXP_START"),"[$_a-z][$_a-z\\d]*",$$("REGEXP_END")],"i").$freeze()),$const_set($nesting[0],"RESERVED_FUNCTION_NAMES",$regexp([$$("REGEXP_START"),"(?:Array)",$$("REGEXP_END")]).$freeze()),$defs(self,"$valid_name?",(function(name){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$$("BASIC_IDENTIFIER_RULES")["$=~"](name))?($truthy($ret_or_2=$truthy($ret_or_3=$$("ES51_RESERVED_WORD")["$=~"](name))?$ret_or_3:$$("ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](name))?$ret_or_2:$$("IMMUTABLE_PROPS")["$=~"](name))["$!"]():$ret_or_1}),1),$defs(self,"$valid_ivar_name?",(function(name){var $ret_or_1;return($truthy($ret_or_1=$$("PROTO_SPECIAL_PROPS")["$=~"](name))?$ret_or_1:$$("PROTO_SPECIAL_METHODS")["$=~"](name))["$!"]()}),1),$def(self,"$fix_var_name",(function(name){return $truthy(this.$class()["$valid_name?"](name))?name:(name+"$").$to_sym()}),1),$def(self,"$fix_ivar_name",(function(name){return $truthy(this.$class()["$valid_ivar_name?"](name.$to_s()["$[]"]($range(1,-1,!1))))?name:(name+"$").$to_sym()}),1),$def(self,"$on_lvar",(function $$on_lvar(node){var $a,name;return delete $$on_lvar.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],node=node.$updated(nil,[this.$fix_var_name(name)]),$send2(this,$find_super(this,"on_lvar",$$on_lvar,!1,!0),"on_lvar",[node],null)}),1),$def(self,"$on_lvasgn",(function $$on_lvasgn(node){var $a,name,value;return delete $$on_lvasgn.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=$truthy(value)?node.$updated(nil,[this.$fix_var_name(name),value]):node.$updated(nil,[this.$fix_var_name(name)]),$send2(this,$find_super(this,"on_lvasgn",$$on_lvasgn,!1,!0),"on_lvasgn",[node],null)}),1),$def(self,"$on_ivar",(function $$on_ivar(node){var $a,name;return delete $$on_ivar.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],node=node.$updated(nil,[this.$fix_ivar_name(name)]),$send2(this,$find_super(this,"on_ivar",$$on_ivar,!1,!0),"on_ivar",[node],null)}),1),$def(self,"$on_ivasgn",(function $$on_ivasgn(node){var $a,name,value;return delete $$on_ivasgn.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=$truthy(value)?node.$updated(nil,[this.$fix_ivar_name(name),value]):node.$updated(nil,[this.$fix_ivar_name(name)]),$send2(this,$find_super(this,"on_ivasgn",$$on_ivasgn,!1,!0),"on_ivasgn",[node],null)}),1),$def(self,"$on_restarg",(function(node){var $a,name;return name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$truthy(name)&&(node=node.$updated(nil,[this.$fix_var_name(name)],$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:name})}))),node}),1),$alias(self,"on_kwrestarg","on_restarg"),$def(self,"$on_argument",(function $$on_argument(node){var $a,name,value,fixed_name,new_children;return delete $$on_argument.$$p,node=$send2(this,$find_super(this,"on_argument",$$on_argument,!1,!0),"on_argument",[node],null),name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],fixed_name=this.$fix_var_name(name),new_children=$truthy(value)?[fixed_name,value]:[fixed_name],node.$updated(nil,new_children,$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:name})}))}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/block_to_iter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_a=Opal.to_a,$rb_plus=Opal.rb_plus,$def=Opal.def;return Opal.add_stubs("require,s,process,updated,+,children"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"BlockToIter");return $def(self,"$on_block",(function(node){var $a,args,body,iter_node,recvr=nil;return recvr=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],iter_node=this.$s("iter",args,body),this.$process(recvr.$updated(nil,$rb_plus(recvr.$children(),[iter_node])))}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_a=Opal.to_a,$slice=Opal.slice,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$eqeqeq=Opal.eqeqeq,$neqeq=Opal.neqeq,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("require,==,type,===,!=,size,error,first,to_js_attr_call,to_js_attr_assign_call,to_native_js_call,s"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DotJsSyntax");return $def(self,"$on_send",(function $$on_send(node){var $a,meth,$yield=$$on_send.$$p||nil,recv=nil,args=nil,recv_of_recv=nil,meth_of_recv=nil,$ret_or_1=nil,property=nil,value=nil;return delete $$on_send.$$p,recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy(recv)&&$eqeq(recv.$type(),"send")?(recv_of_recv=null==($a=[].concat($to_a(recv)))[0]?nil:$a[0],meth_of_recv=null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],$eqeq(meth_of_recv,"JS")?($eqeqeq("[]",$ret_or_1=meth)?($neqeq(args.$size(),1)&&this.$error(".JS[:property] syntax supports only one argument"),property=args.$first(),node=this.$to_js_attr_call(recv_of_recv,property)):$eqeqeq("[]=",$ret_or_1)?($neqeq(args.$size(),2)&&this.$error(".JS[:property]= syntax supports only two arguments"),property=null==($a=[].concat($to_a(args)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=this.$to_js_attr_assign_call(recv_of_recv,property,value)):node=this.$to_native_js_call(recv_of_recv,meth,args),$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],null)):$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield)):$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield)}),1),$def(self,"$to_native_js_call",(function(recv,meth,args){return $send(this,"s",["jscall",recv,meth].concat($to_a(args)))}),3),$def(self,"$to_js_attr_call",(function(recv,property){return this.$s("jsattr",recv,property)}),2),$def(self,"$to_js_attr_assign_call",(function(recv,property,value){return this.$s("jsattrasgn",recv,property,value)}),3)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/pattern_matching"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$to_a=Opal.to_a,$rb_plus=Opal.rb_plus,$slice=Opal.slice,$truthy=Opal.truthy,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$not=Opal.not,$neqeq=Opal.neqeq,$eqeq=Opal.eqeq,$alias=Opal.alias,$Opal=Opal.Opal;return Opal.add_stubs("require,s,convert_full_pattern,raise_no_matching_pattern_error,+,process,single_case_match,private,shift,===,type,!,empty?,!=,==,class,new,run!,variables,pattern,map,<<,array,on_literal,first,children,to_proc,method,each,to_ast,on_array_pattern,compact,[]"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"PatternMatching"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.depth=nil,$def(self,"$initialize",(function $$initialize(){var $yield=$$initialize.$$p||nil;return delete $$initialize.$$p,this.depth=0,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[],$yield)}),0),$def(self,"$on_match_pattern",(function(node){var $a,from,pat;return from=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],pat=null==$a[1]?nil:$a[1],this.$s("begin",this.$s("lvasgn","$pmvar",from),this.$s("if",this.$convert_full_pattern(from,pat),nil,this.$raise_no_matching_pattern_error("$pmvar")))}),1),$def(self,"$on_match_pattern_p",(function(node){var $a,from,pat;return from=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],pat=null==$a[1]?nil:$a[1],this.$s("if",this.$convert_full_pattern(from,pat),this.$s("true"),this.$s("false"))}),1),$def(self,"$on_case_match",(function(node){var $a,$b,from,cases,cmvar=nil,els=nil;return this.depth=$rb_plus(this.depth,1),cmvar="$cmvar"+this.depth,from=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,cases=$slice.call($a,1,$b),els=null==$a[$b]?nil:$a[$b],$truthy(els)?this.$process(els):els=this.$raise_no_matching_pattern_error(cmvar),this.$s("begin",this.$s("lvasgn",cmvar,from),$send(this,"single_case_match",[cmvar].concat($to_a(cases)).concat([els])))}),1),self.$private(),$def(self,"$raise_no_matching_pattern_error",(function(from){return this.$s("send",nil,"raise",this.$s("const",this.$s("cbase"),"NoMatchingPatternError"),this.$s("lvar",from))}),1),$def(self,"$single_case_match",(function(from,$a,$b){var $post_args,cases,els,$c,self=this,cas=nil,pat=nil,if_guard=nil,body=nil,guard=nil,$ret_or_1=nil;return cases=($post_args=Opal.slice.call(arguments,1)).splice(0,$post_args.length-1),null==(els=$post_args.shift())&&(els=nil),cas=cases.$shift(),pat=null==($c=[].concat($to_a(cas)))[0]?nil:$c[0],if_guard=null==$c[1]?nil:$c[1],body=null==$c[2]?nil:$c[2],pat=self.$convert_full_pattern(from,pat),$truthy(if_guard)&&(guard=null==($c=[].concat($to_a(if_guard)))[0]?nil:$c[0],$eqeqeq("if_guard",$ret_or_1=if_guard.$type())?pat=self.$s("and",pat,guard):$eqeqeq("unless_guard",$ret_or_1)&&(pat=self.$s("and",pat,self.$s("send",guard,"!")))),self.$s("if",pat,self.$process(body),$not(cases["$empty?"]())?$send(self,"single_case_match",[from].concat($to_a(cases)).concat([els])):$neqeq(els,self.$s("empty_else"))?els:nil)}),-3),$def(self,"$convert_full_pattern",(function(from,pat){var converter=nil;return $eqeq(from.$class(),$$("Symbol"))&&(from=this.$s("lvar",from)),(converter=$$("PatternConverter").$new(pat))["$run!"](),this.$s("masgn",$send(this,"s",["mlhs"].concat($to_a(converter.$variables()))),this.$s("send",this.$s("const",this.$s("cbase"),"PatternMatching"),"call",from,converter.$pattern()))}),2),function($base,$super,$parent_nesting){var self=$klass($base,$super,"PatternConverter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.pat=$proto.outpat=$proto.variables=nil,$def(self,"$initialize",(function(pat){return this.pat=pat,this.variables=[]}),1),$def(self,"$run!",(function(){return this.outpat=this.$process(this.pat)}),0),$def(self,"$pattern",(function(){return this.outpat}),0),$def(self,"$variables",(function(){return $send(this.variables,"map",[],(function $$2(i){return null==i&&(i=nil),(null==$$2.$$s?this:$$2.$$s).$s("lvasgn",i)}),{$$arity:1,$$s:this})}),0),$def(self,"$on_match_var",(function(node){var $a,var$;return var$=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],this.variables["$<<"](var$),this.$s("sym","var")}),1),$def(self,"$on_match_as",(function(node){var $a,pat,save;return pat=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],save=null==$a[1]?nil:$a[1],this.$process(save),this.$array(this.$s("sym","save"),this.$process(pat))}),1),$def(self,"$on_literal",(function(node){return this.$array(this.$s("sym","lit"),node)}),1),$alias(self,"on_int","on_literal"),$alias(self,"on_float","on_literal"),$alias(self,"on_complex","on_literal"),$alias(self,"on_rational","on_literal"),$alias(self,"on_array","on_literal"),$alias(self,"on_str","on_literal"),$alias(self,"on_dstr","on_literal"),$alias(self,"on_xstr","on_literal"),$alias(self,"on_sym","on_literal"),$alias(self,"on_irange","on_literal"),$alias(self,"on_erange","on_literal"),$alias(self,"on_const","on_literal"),$alias(self,"on_regexp","on_literal"),$alias(self,"on_lambda","on_literal"),$alias(self,"on_begin","on_literal"),$def(self,"$on_pin",(function(node){return this.$on_literal(node.$children().$first())}),1),$def(self,"$on_match_rest",(function(node){return $truthy(node.$children()["$empty?"]())?this.$array(this.$s("sym","rest")):this.$array(this.$s("sym","rest"),this.$process(node.$children().$first()))}),1),$def(self,"$on_match_alt",(function(node){return $send(this,"array",[this.$s("sym","any")].concat($to_a($send(node.$children(),"map",[],this.$method("process").$to_proc()))))}),1),$def(self,"$on_const_pattern",(function(node){return $send(this,"array",[this.$s("sym","all")].concat($to_a($send(node.$children(),"map",[],this.$method("process").$to_proc()))))}),1),$def(self,"$on_array_pattern",(function(node,tail){var children=nil,fixed_size=nil,array_size=nil;return null==tail&&(tail=!1),children=[].concat($to_a(node)),$truthy(tail)&&children["$<<"](this.$s("match_rest")),fixed_size=!0,array_size=0,children=$send(children,"each",[],(function(i){return null==i&&(i=nil),$eqeqeq("match_rest",i.$type())?fixed_size=!1:array_size=$rb_plus(array_size,1)}),1),this.$array(this.$s("sym","array"),this.$to_ast(fixed_size),this.$to_ast(array_size),this.$to_ast($send(children,"map",[],this.$method("process").$to_proc())))}),-2),$def(self,"$on_array_pattern_with_tail",(function(node){return this.$on_array_pattern(node,!0)}),1),$def(self,"$on_hash_pattern",(function(node){var children=nil,any_size=nil;return children=[].concat($to_a(node)),any_size=$truthy(children["$empty?"]())?this.$to_ast(!1):this.$to_ast(!0),children=$send(children,"map",[],(function $$4(i){var $ret_or_1,self=null==$$4.$$s?this:$$4.$$s;return null==i&&(i=nil),$eqeqeq("pair",$ret_or_1=i.$type())?self.$array(i.$children()["$[]"](0),self.$process(i.$children()["$[]"](1))):$eqeqeq("match_var",$ret_or_1)?self.$array(self.$s("sym",i.$children()["$[]"](0)),self.$process(i)):$eqeqeq("match_nil_pattern",$ret_or_1)?(any_size=self.$to_ast(!1),nil):$eqeqeq("match_rest",$ret_or_1)?(any_size=$truthy(i.$children().$first())?self.$process(i.$children().$first()):self.$to_ast(!0),nil):nil}),{$$arity:1,$$s:this}).$compact(),this.$array(this.$s("sym","hash"),any_size,$send(this,"array",$to_a(children)))}),1),$def(self,"$on_find_pattern",(function(node){var children=nil;return children=[].concat($to_a(node)),children=$send(children,"map",[],this.$method("process").$to_proc()),this.$array(this.$s("sym","find"),$send(this,"array",$to_a(children)))}),1),self.$private(),$def(self,"$array",(function($a){var args,self=this;return args=Opal.slice.call(arguments),self.$to_ast(args)}),-1),$def(self,"$to_ast",(function(val){var $ret_or_1;return $eqeqeq($$("Array"),$ret_or_1=val)?$send(this,"s",["array"].concat($to_a(val))):$eqeqeq($$("Integer"),$ret_or_1)?this.$s("int",val):$eqeqeq(!0,$ret_or_1)?this.$s("true"):$eqeqeq(!1,$ret_or_1)?this.$s("false"):$eqeqeq(nil,$ret_or_1)?this.$s("nil"):nil}),1)}($nesting[0],$$$($$$($Opal,"Rewriters"),"Base"),$nesting)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$defs=Opal.defs,$truthy=Opal.truthy,$class_variable_get=Opal.class_variable_get,$rb_plus=Opal.rb_plus,$const_set=Opal.const_set,$lambda=Opal.lambda,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$slice=Opal.slice,$hash2=Opal.hash2,$send=Opal.send,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"LogicalOperatorAssignment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$reset_tmp_counter!",(function(){return $class_variable_set($nesting[0],"@@counter",0)}),0),$defs(self,"$new_temp",(function(){var $ret_or_1=nil;return $class_variable_set($nesting[0],"@@counter",$truthy(null!=$nesting[0].$$cvars["@@counter"]?"class variable":nil)&&$truthy($ret_or_1=$class_variable_get($nesting[0],"@@counter",!1))?$ret_or_1:0),$class_variable_set($nesting[0],"@@counter",$rb_plus($class_variable_get($nesting[0],"@@counter",!1),1)),"$logical_op_recvr_tmp_"+$class_variable_get($nesting[0],"@@counter",!1)}),0),$const_set($nesting[0],"GET_SET",$lambda((function $LogicalOperatorAssignment$2(get_type,set_type){return null==get_type&&(get_type=nil),null==set_type&&(set_type=nil),$lambda((function $$3(lhs,rhs,root_type){var get_node,self=null==$$3.$$s?this:$$3.$$s,condition_node=nil,defined_node=nil;return null==lhs&&(lhs=nil),null==rhs&&(rhs=nil),null==root_type&&(root_type=nil),get_node=lhs.$updated(get_type),condition_node=self.$s(root_type,get_node,rhs),$truthy(["const","cvar"]["$include?"](get_type))&&$eqeq(root_type,"or")&&(defined_node=self.$s("defined?",get_node),condition_node=self.$s("if",defined_node,self.$s("begin",condition_node),rhs)),lhs.$updated(set_type,[].concat($to_a(lhs)).concat([condition_node]))}),{$$arity:3,$$s:null==$LogicalOperatorAssignment$2.$$s?this:$LogicalOperatorAssignment$2.$$s})}),{$$arity:2,$$s:self})),$const_set($nesting[0],"LocalVariableHandler",$$("GET_SET")["$[]"]("lvar","lvasgn")),$const_set($nesting[0],"InstanceVariableHandler",$$("GET_SET")["$[]"]("ivar","ivasgn")),$const_set($nesting[0],"ConstantHandler",$$("GET_SET")["$[]"]("const","casgn")),$const_set($nesting[0],"GlobalVariableHandler",$$("GET_SET")["$[]"]("gvar","gvasgn")),$const_set($nesting[0],"ClassVariableHandler",$$("GET_SET")["$[]"]("cvar","cvasgn")),function($base,$super){var self=$klass($base,$super,"SendHandler");$defs(self,"$call",(function(lhs,rhs,root_type){var $a,args,call_reader,call_writer,get_or_set,recvr=nil,reader_method=nil,recvr_tmp=nil,cache_recvr=nil,writer_method=nil;return recvr=null==($a=[].concat($to_a(lhs)))[0]?nil:$a[0],reader_method=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy(recvr)&&$eqeq(recvr.$type(),"send")&&(recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp)),writer_method=reader_method+"=",call_reader=lhs.$updated("send",[recvr,reader_method].concat($to_a(args))),call_writer=lhs.$updated("send",[recvr,writer_method].concat($to_a(args)).concat([rhs])),get_or_set=this.$s(root_type,call_reader,call_writer),$truthy(cache_recvr)?this.$s("begin",cache_recvr,get_or_set):get_or_set}),3)}($nesting[0],self),function($base,$super){var self=$klass($base,$super,"ConditionalSendHandler");$defs(self,"$call",(function(lhs,rhs,root_type){var $a,args,recvr_tmp,cache_recvr,recvr_is_nil,plain_send,plain_or_asgn,recvr=nil,meth=nil;return root_type+="_asgn",recvr=null==($a=[].concat($to_a(lhs)))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp),recvr_is_nil=this.$s("send",recvr,"nil?"),plain_send=lhs.$updated("send",[recvr,meth].concat($to_a(args))),plain_or_asgn=this.$s(root_type,plain_send,rhs),this.$s("begin",cache_recvr,this.$s("if",recvr_is_nil,this.$s("nil"),plain_or_asgn))}),3)}($nesting[0],self),$const_set($nesting[0],"HANDLERS",$hash2(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:$$("LocalVariableHandler"),ivasgn:$$("InstanceVariableHandler"),casgn:$$("ConstantHandler"),gvasgn:$$("GlobalVariableHandler"),cvasgn:$$("ClassVariableHandler"),send:$$("SendHandler"),csend:$$("ConditionalSendHandler")}).$freeze()),$def(self,"$on_or_asgn",(function(node){var $a,rhs,result,lhs=nil;return $a=[].concat($to_a(node)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],result=$send($$("HANDLERS"),"fetch",[lhs.$type()],(function $$4(){return(null==$$4.$$s?this:$$4.$$s).$error("cannot handle LHS type: "+lhs.$type())}),{$$arity:0,$$s:this}).$call(lhs,rhs,"or"),this.$process(result)}),1),$def(self,"$on_and_asgn",(function(node){var $a,rhs,result,lhs=nil;return $a=[].concat($to_a(node)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],result=$send($$("HANDLERS"),"fetch",[lhs.$type()],(function $$5(){return(null==$$5.$$s?this:$$5.$$s).$error("cannot handle LHS type: "+lhs.$type())}),{$$arity:0,$$s:this}).$call(lhs,rhs,"and"),this.$process(result)}),1),$const_set($nesting[0],"ASSIGNMENT_STRING_NODE",self.$s("str","assignment")),$def(self,"$on_defined?",(function $LogicalOperatorAssignment_on_defined$ques$6(node){var $a,inner=nil;return delete $LogicalOperatorAssignment_on_defined$ques$6.$$p,inner=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$truthy(["or_asgn","and_asgn"]["$include?"](inner.$type()))?$$("ASSIGNMENT_STRING_NODE"):$send2(this,$find_super(this,"on_defined?",$LogicalOperatorAssignment_on_defined$ques$6,!1,!0),"on_defined?",[node],null)}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$defs=Opal.defs,$truthy=Opal.truthy,$class_variable_get=Opal.class_variable_get,$rb_plus=Opal.rb_plus,$const_set=Opal.const_set,$lambda=Opal.lambda,$to_a=Opal.to_a,$slice=Opal.slice,$eqeq=Opal.eqeq,$hash2=Opal.hash2,$send=Opal.send,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"BinaryOperatorAssignment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$reset_tmp_counter!",(function(){return $class_variable_set($nesting[0],"@@counter",0)}),0),$defs(self,"$new_temp",(function(){var $ret_or_1=nil;return $class_variable_set($nesting[0],"@@counter",$truthy(null!=$nesting[0].$$cvars["@@counter"]?"class variable":nil)&&$truthy($ret_or_1=$class_variable_get($nesting[0],"@@counter",!1))?$ret_or_1:0),$class_variable_set($nesting[0],"@@counter",$rb_plus($class_variable_get($nesting[0],"@@counter",!1),1)),"$binary_op_recvr_tmp_"+$class_variable_get($nesting[0],"@@counter",!1)}),0),$const_set($nesting[0],"GET_SET",$lambda((function(get_type,set_type){return null==get_type&&(get_type=nil),null==set_type&&(set_type=nil),$lambda((function(node,lhs,operation,rhs){var get_node,set_node;return null==node&&(node=nil),null==lhs&&(lhs=nil),null==operation&&(operation=nil),null==rhs&&(rhs=nil),get_node=lhs.$updated(get_type),set_node=node.$updated("send",[get_node,operation,rhs]),lhs.$updated(set_type,[].concat($to_a(lhs)).concat([set_node]))}),4)}),2)),$const_set($nesting[0],"LocalVariableHandler",$$("GET_SET")["$[]"]("lvar","lvasgn")),$const_set($nesting[0],"InstanceVariableHandler",$$("GET_SET")["$[]"]("ivar","ivasgn")),$const_set($nesting[0],"ConstantHandler",$$("GET_SET")["$[]"]("const","casgn")),$const_set($nesting[0],"GlobalVariableHandler",$$("GET_SET")["$[]"]("gvar","gvasgn")),$const_set($nesting[0],"ClassVariableHandler",$$("GET_SET")["$[]"]("cvar","cvasgn")),function($base,$super){var self=$klass($base,$super,"SendHandler");$defs(self,"$call",(function(node,lhs,operation,rhs){var $a,args,call_reader,call_op,call_writer,recvr=nil,reader_method=nil,recvr_tmp=nil,cache_recvr=nil,writer_method=nil;return recvr=null==($a=[].concat($to_a(lhs)))[0]?nil:$a[0],reader_method=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy(recvr)&&$eqeq(recvr.$type(),"send")&&(recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp)),writer_method=reader_method+"=",call_reader=lhs.$updated("send",[recvr,reader_method].concat($to_a(args))),call_op=node.$updated("send",[call_reader,operation,rhs]),call_writer=lhs.$updated("send",[recvr,writer_method].concat($to_a(args)).concat([call_op])),$truthy(cache_recvr)?node.$updated("begin",[cache_recvr,call_writer]):call_writer}),4)}($nesting[0],self),function($base,$super){var self=$klass($base,$super,"ConditionalSendHandler");$defs(self,"$call",(function(node,lhs,operation,rhs){var $a,args,recvr_tmp,cache_recvr,recvr_is_nil,plain_send,plain_op_asgn,recvr=nil,meth=nil;return recvr=null==($a=[].concat($to_a(lhs)))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp),recvr_is_nil=this.$s("send",recvr,"nil?"),plain_send=lhs.$updated("send",[recvr,meth].concat($to_a(args))),plain_op_asgn=node.$updated("op_asgn",[plain_send,operation,rhs]),this.$s("begin",cache_recvr,this.$s("if",recvr_is_nil,this.$s("nil"),plain_op_asgn))}),4)}($nesting[0],self),$const_set($nesting[0],"HANDLERS",$hash2(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:$$("LocalVariableHandler"),ivasgn:$$("InstanceVariableHandler"),casgn:$$("ConstantHandler"),gvasgn:$$("GlobalVariableHandler"),cvasgn:$$("ClassVariableHandler"),send:$$("SendHandler"),csend:$$("ConditionalSendHandler")}).$freeze()),$def(self,"$on_op_asgn",(function(node){var $a,op,rhs,result,lhs=nil;return $a=[].concat($to_a(node)),lhs=null==$a[0]?nil:$a[0],op=null==$a[1]?nil:$a[1],rhs=null==$a[2]?nil:$a[2],result=$send($$("HANDLERS"),"fetch",[lhs.$type()],(function $$4(){return(null==$$4.$$s?this:$$4.$$s).$error("cannot handle LHS type: "+lhs.$type())}),{$$arity:0,$$s:this}).$call(node,lhs,op,rhs),this.$process(result)}),1),$const_set($nesting[0],"ASSIGNMENT_STRING_NODE",self.$s("str","assignment")),$def(self,"$on_defined?",(function $BinaryOperatorAssignment_on_defined$ques$5(node){var $a,inner=nil;return delete $BinaryOperatorAssignment_on_defined$ques$5.$$p,inner=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$eqeq(inner.$type(),"op_asgn")?$$("ASSIGNMENT_STRING_NODE"):$send2(this,$find_super(this,"on_defined?",$BinaryOperatorAssignment_on_defined$ques$5,!1,!0),"on_defined?",[node],null)}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$Opal=Opal.Opal;return Opal.add_stubs("require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn"),self.$require("opal/rewriters/base"),self.$require("set"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Hashes")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"KeyDuplicatesRewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.keys=nil,$def(self,"$initialize",(function(){return this.keys=$$("UniqKeysSet").$new()}),0),$def(self,"$on_hash",(function $$on_hash(node){var $a,self=this,previous_keys=nil;return delete $$on_hash.$$p,function(){try{return $a=[self.keys,$$("UniqKeysSet").$new()],previous_keys=$a[0],self.keys=$a[1],$send2(self,$find_super(self,"on_hash",$$on_hash,!1,!0),"on_hash",[node],null)}finally{self.keys=previous_keys}}()}),1),$def(self,"$on_pair",(function $$on_pair(node){var $a,key=nil;return delete $$on_pair.$$p,key=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$truthy(["str","sym"]["$include?"](key.$type()))&&this.keys["$<<"](key),$send2(this,$find_super(this,"on_pair",$$on_pair,!1,!0),"on_pair",[node],null)}),1),$def(self,"$on_kwsplat",(function(node){var $a,hash=nil;return hash=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$eqeq(hash.$type(),"hash")&&(hash=this.$process_regular_node(hash)),node.$updated(nil,[hash])}),1),function($base,$super,$parent_nesting){var self=$klass($base,null,"UniqKeysSet"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.set=nil,$def(self,"$initialize",(function(){return this.set=$$("Set").$new()}),0),$def(self,"$<<",(function(element){var $a,key=nil;return $truthy(this.set["$include?"](element))?(key=null==($a=[].concat($to_a(element)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],key=$eqeq(element.$type(),"str")?key.$inspect():":"+key,$$("Kernel").$warn("warning: key "+key+" is duplicated and overwritten")):this.set["$<<"](element)}),1)}($nesting[0],0,$nesting)}($nesting[0],$$$($$$($Opal,"Rewriters"),"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/dump_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$hash2=Opal.hash2,$def=Opal.def;return Opal.add_stubs("require,updated"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DumpArgs");return $def(self,"$on_def",(function $$on_def(node){var $a,args;return delete $$on_def.$$p,node=$send2(this,$find_super(this,"on_def",$$on_def,!1,!0),"on_def",[node],null),null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))}),1),$def(self,"$on_defs",(function $$on_defs(node){var $a,args;return delete $$on_defs.$$p,node=$send2(this,$find_super(this,"on_defs",$$on_defs,!1,!0),"on_defs",[node],null),null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],null==$a[3]?nil:$a[3],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))}),1),$def(self,"$on_iter",(function $$on_iter(node){var $a,args;return delete $$on_iter.$$p,node=$send2(this,$find_super(this,"on_iter",$$on_iter,!1,!0),"on_iter",[node],null),args=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/mlhs_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$truthy=Opal.truthy,$def=Opal.def,$rb_plus=Opal.rb_plus,$send=Opal.send,$eqeq=Opal.eqeq,$hash2=Opal.hash2;return Opal.add_stubs("require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"MlhsArgs"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$on_def",(function $$on_def(node){var $a,mid,args=nil,body=nil,arguments$=nil,$ret_or_1=nil;return delete $$on_def.$$p,node=$send2(this,$find_super(this,"on_def",$$on_def,!1,!0),"on_def",[node],null),mid=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],arguments$=$$("Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),body=this.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[mid,args,body])}),1),$def(self,"$on_defs",(function $$on_defs(node){var $a,recv,mid,args=nil,body=nil,arguments$=nil,$ret_or_1=nil;return delete $$on_defs.$$p,node=$send2(this,$find_super(this,"on_defs",$$on_defs,!1,!0),"on_defs",[node],null),recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],body=null==$a[3]?nil:$a[3],arguments$=$$("Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),body=this.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[recv,mid,args,body])}),1),$def(self,"$on_iter",(function $$on_iter(node){var $a,args=nil,body=nil,arguments$=nil,$ret_or_1=nil;return delete $$on_iter.$$p,node=$send2(this,$find_super(this,"on_iter",$$on_iter,!1,!0),"on_iter",[node],null),args=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],arguments$=$$("Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),body=this.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[args,body])}),1),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Arguments"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.counter=$proto.args=$proto.initialization=nil,self.$attr_reader("rewritten","initialization"),$def(self,"$initialize",(function(args){return this.args=args,this.rewritten=[],this.initialization=[],this.rewriter=$$("MlhsRewriter").$new(),this["$split!"]()}),1),$def(self,"$reset_tmp_counter!",(function(){return this.counter=0}),0),$def(self,"$new_mlhs_tmp",(function(){var $ret_or_1;return this.counter=$truthy($ret_or_1=this.counter)?$ret_or_1:0,this.counter=$rb_plus(this.counter,1),"$mlhs_tmp"+this.counter}),0),$def(self,"$split!",(function(){return $send(this.args.$children(),"each",[],(function $$3(arg){var self=null==$$3.$$s?this:$$3.$$s,var_name=nil,rhs=nil,mlhs=nil;return null==self.rewriter&&(self.rewriter=nil),null==self.initialization&&(self.initialization=nil),null==self.rewritten&&(self.rewritten=nil),null==arg&&(arg=nil),$eqeq(arg.$type(),"mlhs")?(var_name=self.$new_mlhs_tmp(),rhs=self.$s("lvar",var_name),mlhs=self.rewriter.$process(arg),self.initialization["$<<"](self.$s("masgn",mlhs,rhs)),self.rewritten["$<<"](self.$s("arg",var_name).$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:var_name})})))):self.rewritten["$<<"](arg)}),{$$arity:1,$$s:this}),$eqeq(this.initialization.$length(),1)?this.initialization=this.initialization["$[]"](0):$truthy(this.initialization["$empty?"]())?this.initialization=nil:this.initialization=$send(this,"s",["begin"].concat($to_a(this.initialization)))}),0)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"MlhsRewriter");return $def(self,"$on_arg",(function(node){return node.$updated("lvasgn")}),1),$def(self,"$on_restarg",(function(node){var name;return name=node.$children()["$[]"](0),$truthy(name)?this.$s("splat",node.$updated("lvasgn")):this.$s("splat")}),1)}($nesting[0],$$("Base"))}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/arguments"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("attr_reader,each,===,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,null,"Arguments"),$proto=self.$$prototype;return $proto.restarg=$proto.postargs=$proto.kwargs=$proto.kwoptargs=$proto.kwrestarg=$proto.optargs=nil,self.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),$def(self,"$initialize",(function(args){return this.args=[],this.optargs=[],this.restarg=nil,this.postargs=[],this.kwargs=[],this.kwoptargs=[],this.kwrestarg=nil,this.kwnilarg=!1,this.shadowargs=[],this.blockarg=nil,$send(args,"each",[],(function $$1(arg){var $ret_or_1,self=null==$$1.$$s?this:$$1.$$s;return null==self.optargs&&(self.optargs=nil),null==self.restarg&&(self.restarg=nil),null==self.postargs&&(self.postargs=nil),null==self.args&&(self.args=nil),null==self.kwargs&&(self.kwargs=nil),null==self.kwoptargs&&(self.kwoptargs=nil),null==self.shadowargs&&(self.shadowargs=nil),null==arg&&(arg=nil),$eqeqeq("arg",$ret_or_1=arg.$type())||$eqeqeq("mlhs",$ret_or_1)?($truthy(self.restarg)||$truthy(self.optargs["$any?"]())?self.postargs:self.args)["$<<"](arg):$eqeqeq("optarg",$ret_or_1)?self.optargs["$<<"](arg):$eqeqeq("restarg",$ret_or_1)?self.restarg=arg:$eqeqeq("kwarg",$ret_or_1)?self.kwargs["$<<"](arg):$eqeqeq("kwoptarg",$ret_or_1)?self.kwoptargs["$<<"](arg):$eqeqeq("kwnilarg",$ret_or_1)?self.kwnilarg=!0:$eqeqeq("kwrestarg",$ret_or_1)?self.kwrestarg=arg:$eqeqeq("shadowarg",$ret_or_1)?self.shadowargs["$<<"](arg):$eqeqeq("blockarg",$ret_or_1)?self.blockarg=arg:self.$raise("Unsupported arg type "+arg.$type())}),{$$arity:1,$$s:this})}),1),$def(self,"$has_post_args?",(function(){var $ret_or_1,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=this.restarg["$nil?"]()["$!"]())?$ret_or_2:this.postargs["$any?"]())?$ret_or_1:$truthy($ret_or_2=this["$has_any_kwargs?"]())?this["$can_inline_kwargs?"]()["$!"]():$ret_or_2}),0),$def(self,"$has_any_kwargs?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.kwargs["$any?"]())?$ret_or_2:this.kwoptargs["$any?"]())?$ret_or_1:this.kwrestarg["$nil?"]()["$!"]()}),0),$def(self,"$can_inline_kwargs?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.optargs["$empty?"]())?this.restarg["$nil?"]():$ret_or_2)?this.postargs["$empty?"]():$ret_or_1}),0)}([$module($base,"Rewriters")].concat($parent_nesting)[0])}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/inline_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$truthy=Opal.truthy,$hash2=Opal.hash2,$def=Opal.def,$const_set=Opal.const_set,$send=Opal.send,$eqeq=Opal.eqeq,$Opal=Opal.Opal;return Opal.add_stubs("require,s,new,updated,inline,prepend_to_body,initialization,attr_reader,freeze,children,each,send,any?,blockarg,<<,shadowargs,args,==,[],has_post_args?,length,has_any_kwargs?,can_inline_kwargs?,kwargs,kwoptargs,kwrestarg,postargs,optargs,args_to_keep,restarg"),self.$require("opal/rewriters/base"),self.$require("opal/rewriters/arguments"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"InlineArgs"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$on_def",(function $$on_def(node){var $a,mid,$ret_or_1,inline_args,args=nil,body=nil,initializer=nil;return delete $$on_def.$$p,node=$send2(this,$find_super(this,"on_def",$$on_def,!1,!0),"on_def",[node],null),mid=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),initializer=$$("Initializer").$new(args,$hash2(["type"],{type:"def"})),inline_args=args.$updated(nil,initializer.$inline()),body=this.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[mid,inline_args,body])}),1),$def(self,"$on_defs",(function $$on_defs(node){var $a,recv,mid,$ret_or_1,inline_args,args=nil,body=nil,initializer=nil;return delete $$on_defs.$$p,node=$send2(this,$find_super(this,"on_defs",$$on_defs,!1,!0),"on_defs",[node],null),recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],body=null==$a[3]?nil:$a[3],body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),initializer=$$("Initializer").$new(args,$hash2(["type"],{type:"defs"})),inline_args=args.$updated(nil,initializer.$inline()),body=this.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[recv,mid,inline_args,body])}),1),$def(self,"$on_iter",(function $$on_iter(node){var $a,$ret_or_1,inline_args,args=nil,body=nil,initializer=nil;return delete $$on_iter.$$p,node=$send2(this,$find_super(this,"on_iter",$$on_iter,!1,!0),"on_iter",[node],null),args=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),initializer=$$("Initializer").$new(args,$hash2(["type"],{type:"iter"})),inline_args=args.$updated(nil,initializer.$inline()),body=this.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[inline_args,body])}),1),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Initializer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.initialization=$proto.args=$proto.inline=nil,self.$attr_reader("inline","initialization"),$const_set($nesting[0],"STEPS",["extract_blockarg","initialize_shadowargs","extract_args","prepare_post_args","prepare_kwargs","extract_optargs","extract_restarg","extract_post_args","extract_kwargs","extract_kwoptargs","extract_kwrestarg"].$freeze()),$def(self,"$initialize",(function(args,$kwargs){var type;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call($kwargs.$$smap,"type"))throw Opal.ArgumentError.$new("missing keyword: type");return type=$kwargs.$$smap.type,this.args=$$("Arguments").$new(args.$children()),this.inline=[],this.initialization=[],this.type=type,this.underscore_found=!1,$send($$("STEPS"),"each",[],(function $$1(step){return null==step&&(step=nil),(null==$$1.$$s?this:$$1.$$s).$send(step)}),{$$arity:1,$$s:this}),$truthy(this.initialization["$any?"]())?this.initialization=$send(this,"s",["begin"].concat($to_a(this.initialization))):this.initialization=nil}),2),$def(self,"$extract_blockarg",(function(){var arg=nil;return $truthy(arg=this.args.$blockarg())?this.initialization["$<<"](arg.$updated("extract_blockarg")):nil}),0),$def(self,"$initialize_shadowargs",(function(){return $send(this.args.$shadowargs(),"each",[],(function $$2(arg){var self=null==$$2.$$s?this:$$2.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("initialize_shadowarg"))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_args",(function(){return $send(this.args.$args(),"each",[],(function $$3(arg){var self=null==$$3.$$s?this:$$3.$$s;return null==self.type&&(self.type=nil),null==self.initialization&&(self.initialization=nil),null==self.underscore_found&&(self.underscore_found=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),$eqeq(self.type,"iter")&&(self.initialization["$<<"](arg.$updated("initialize_iter_arg")),$eqeq(arg.$children()["$[]"](0),"_")&&($truthy(self.underscore_found)&&(arg=self.$s("fake_arg")),self.underscore_found=!0)),self.inline["$<<"](arg)}),{$$arity:1,$$s:this})}),0),$def(self,"$prepare_post_args",(function(){return $truthy(this.args["$has_post_args?"]())?this.initialization["$<<"](this.$s("prepare_post_args",this.args.$args().$length())):nil}),0),$def(self,"$prepare_kwargs",(function(){return $truthy(this.args["$has_any_kwargs?"]())?($truthy(this.args["$can_inline_kwargs?"]())?this.inline["$<<"](this.$s("arg","$kwargs")):(this.initialization["$<<"](this.$s("extract_kwargs")),this.inline["$<<"](this.$s("fake_arg"))),this.initialization["$<<"](this.$s("ensure_kwargs_are_kwargs"))):nil}),0),$def(self,"$extract_kwargs",(function(){return $send(this.args.$kwargs(),"each",[],(function $$4(arg){var self=null==$$4.$$s?this:$$4.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_kwarg"))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_kwoptargs",(function(){return $send(this.args.$kwoptargs(),"each",[],(function $$5(arg){var self=null==$$5.$$s?this:$$5.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_kwoptarg"))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_kwrestarg",(function(){var arg=nil;return $truthy(arg=this.args.$kwrestarg())?this.initialization["$<<"](arg.$updated("extract_kwrestarg")):nil}),0),$def(self,"$extract_post_args",(function(){return $send(this.args.$postargs(),"each",[],(function $$6(arg){var self=null==$$6.$$s?this:$$6.$$s;return null==self.initialization&&(self.initialization=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_post_arg")),self.inline["$<<"](self.$s("fake_arg"))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_optargs",(function(){var has_post_args;return has_post_args=this.args["$has_post_args?"](),$send(this.args.$optargs(),"each",[],(function $$7(arg){var $a,self=null==$$7.$$s?this:$$7.$$s,arg_name=nil,default_value=nil;return null==self.initialization&&(self.initialization=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),$truthy(has_post_args)?(arg_name=null==($a=[].concat($to_a(arg)))[0]?nil:$a[0],default_value=null==$a[1]?nil:$a[1],self.initialization["$<<"](arg.$updated("extract_post_optarg",[arg_name,default_value,self.$args_to_keep()])),self.inline["$<<"](self.$s("fake_arg"))):(self.inline["$<<"](arg.$updated("arg")),self.initialization["$<<"](arg.$updated("extract_optarg")))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_restarg",(function(){var arg=nil,arg_name=nil;return $truthy(arg=this.args.$restarg())?(arg_name=arg.$children()["$[]"](0),this.initialization["$<<"](arg.$updated("extract_restarg",[arg_name,this.$args_to_keep()])),this.inline["$<<"](this.$s("fake_arg"))):nil}),0),$def(self,"$args_to_keep",(function(){return this.args.$postargs().$length()}),0)}($nesting[0],$$$($$$($Opal,"Rewriters"),"Base"),$nesting)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/numblocks"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_ary=Opal.to_ary,$send=Opal.send,$to_a=Opal.to_a,$def=Opal.def;return Opal.add_stubs("require,children,s,gen_args,map"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Numblocks");return $def(self,"$on_numblock",(function(node){var $a,$b,left,arg_count,right;return $b=node.$children(),left=null==($a=$to_ary($b))[0]?nil:$a[0],arg_count=null==$a[1]?nil:$a[1],right=null==$a[2]?nil:$a[2],this.$s("block",left,$send(this,"s",["args"].concat($to_a(this.$gen_args(arg_count)))),right)}),1),$def(self,"$gen_args",(function(arg_count){return $send(Opal.Range.$new(1,arg_count,!1),"map",[],(function $$1(i){return null==i&&(i=nil),(null==$$1.$$s?this:$$1.$$s).$s("arg","_"+i)}),{$$arity:1,$$s:this})}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/returnable_logic"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$def=Opal.def,$rb_minus=Opal.rb_minus,$to_a=Opal.to_a,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$eqeq=Opal.eqeq;return Opal.add_stubs("require,+,-,children,[]=,meta,s,next_tmp,build_if_from_when,free_tmp,[],process,updated,==,count,first,delete,private,build_rule_from_parts,empty?,type"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ReturnableLogic");return self.$$prototype.counter=nil,$def(self,"$next_tmp",(function(){var $ret_or_1;return this.counter=$truthy($ret_or_1=this.counter)?$ret_or_1:0,this.counter=$rb_plus(this.counter,1),"$ret_or_"+this.counter}),0),$def(self,"$free_tmp",(function(){return this.counter=$rb_minus(this.counter,1)}),0),$def(self,"$reset_tmp_counter!",(function(){return this.counter=nil}),0),$def(self,"$on_if",(function $$on_if(node){var $a,$yield=$$on_if.$$p||nil,test=nil,$writer=nil;return delete $$on_if.$$p,test=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],$truthy(test)&&($writer=["if_test",!0],$send(test.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$send2(this,$find_super(this,"on_if",$$on_if,!1,!0),"on_if",[node],$yield)}),1),$def(self,"$on_case",(function(node){var $a,$b,lhs,whens,$ret_or_1,out,els=nil,lhs_tmp=nil;return lhs=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,whens=$slice.call($a,1,$b),els=null==$a[$b]?nil:$a[$b],els=$truthy($ret_or_1=els)?$ret_or_1:this.$s("nil"),$truthy(lhs)&&(lhs_tmp=this.$next_tmp()),out=this.$build_if_from_when(node,lhs,lhs_tmp,whens,els),$truthy(lhs)&&this.$free_tmp(),out}),1),$def(self,"$on_or",(function(node){var $a,lhs=nil,rhs=nil,$writer=nil,out=nil,lhs_tmp=nil;return lhs=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],$truthy(node.$meta()["$[]"]("if_test"))?($writer=["if_test",($writer=["if_test",!0],$send(rhs.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send(lhs.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],out=this.$process(node.$updated("if",[lhs,this.$s("true"),rhs]))):(lhs_tmp=this.$next_tmp(),out=this.$process(node.$updated("if",[this.$s("lvasgn",lhs_tmp,lhs),this.$s("js_tmp",lhs_tmp),rhs])),this.$free_tmp()),out}),1),$def(self,"$on_and",(function(node){var $a,lhs=nil,rhs=nil,$writer=nil,out=nil,lhs_tmp=nil;return lhs=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],$truthy(node.$meta()["$[]"]("if_test"))?($writer=["if_test",($writer=["if_test",!0],$send(rhs.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send(lhs.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],out=this.$process(node.$updated("if",[lhs,rhs,this.$s("false")]))):(lhs_tmp=this.$next_tmp(),out=this.$process(node.$updated("if",[this.$s("lvasgn",lhs_tmp,lhs),rhs,this.$s("js_tmp",lhs_tmp)])),this.$free_tmp()),out}),1),$def(self,"$on_begin",(function $$on_begin(node){var $yield=$$on_begin.$$p||nil,$writer=nil;return delete $$on_begin.$$p,$truthy(node.$meta()["$[]"]("if_test"))&&$eqeq(node.$children().$count(),1)&&($writer=["if_test",!0],$send(node.$children().$first().$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),node.$meta().$delete("if_test"),$send2(this,$find_super(this,"on_begin",$$on_begin,!1,!0),"on_begin",[node],$yield)}),1),self.$private(),$def(self,"$build_if_from_when",(function(node,lhs,lhs_tmp,whens,els){var $a,$b,parts,expr,rule,first_when=nil,next_whens=nil;return first_when=null==($a=[].concat($to_a(whens)))[0]?nil:$a[0],next_whens=$slice.call($a,1),$b=($b=($a=[].concat($to_a(first_when.$children()))).length-1)<0?0:$b,parts=$slice.call($a,0,$b),expr=null==$a[$b]?nil:$a[$b],rule=this.$build_rule_from_parts(node,lhs,lhs_tmp,parts),first_when.$updated("if",[rule,this.$process(expr),$truthy(next_whens["$empty?"]())?this.$process(els):this.$build_if_from_when(nil,nil,lhs_tmp,next_whens,els)])}),5),$def(self,"$build_rule_from_parts",(function(node,lhs,lhs_tmp,parts){var $a,subrule,first_part=nil,next_parts=nil,splat_on=nil,iter_val=nil,block=nil;return lhs=$truthy(node)&&$truthy(lhs_tmp)?node.$updated("lvasgn",[lhs_tmp,this.$process(lhs)]):this.$s("js_tmp",lhs_tmp),first_part=null==($a=[].concat($to_a(parts)))[0]?nil:$a[0],next_parts=$slice.call($a,1),subrule=$eqeq(first_part.$type(),"splat")?(splat_on=first_part.$children().$first(),iter_val=this.$next_tmp(),block=this.$s("send",this.$process(splat_on),"any?",this.$s("iter",this.$s("args",this.$s("arg",iter_val)),this.$build_rule_from_parts(nil,nil,lhs_tmp,[this.$s("lvar",iter_val)]))),$truthy(node)&&$truthy(lhs_tmp)?this.$s("begin",lhs,block):block):$truthy(lhs_tmp)?this.$s("send",this.$process(first_part),"===",lhs):this.$process(first_part),$truthy(next_parts["$empty?"]())?subrule:this.$s("if",subrule,this.$s("true"),this.$build_rule_from_parts(nil,nil,lhs_tmp,next_parts))}),4)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/forward_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$range=Opal.range,$to_a=Opal.to_a,$send2=Opal.send2,$find_super=Opal.find_super,$neqeq=Opal.neqeq;return Opal.add_stubs("require,process,s,==,type,last,children,[],updated,!=,class"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ForwardArgs"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$on_forward_args",(function(_node){return this.$process(this.$s("args",this.$s("forward_arg","$")))}),1),$def(self,"$on_args",(function $$on_args(node){var $yield=$$on_args.$$p||nil,prev_children=nil;return delete $$on_args.$$p,$truthy(node.$children().$last())&&$eqeq(node.$children().$last().$type(),"forward_arg")?(prev_children=node.$children()["$[]"]($range(0,-2,!1)),node.$updated(nil,[].concat($to_a(prev_children)).concat([this.$s("restarg","$fwd_rest"),this.$s("blockarg","$fwd_block")]))):$send2(this,$find_super(this,"on_args",$$on_args,!1,!0),"on_args",[node],$yield)}),1),$def(self,"$on_send",(function $$on_send(node){var $yield=$$on_send.$$p||nil,prev_children=nil;return delete $$on_send.$$p,$truthy(node.$children().$last())&&$neqeq(node.$children().$last().$class(),$$("Symbol"))&&$eqeq(node.$children().$last().$type(),"forwarded_args")?(prev_children=node.$children()["$[]"]($range(0,-2,!1)),node.$updated(nil,[].concat($to_a(prev_children)).concat([this.$s("splat",this.$s("lvar","$fwd_rest")),this.$s("block_pass",this.$s("lvar","$fwd_block"))]))):$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield)}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$hash2=Opal.hash2,$eqeq=Opal.eqeq,$send=Opal.send;return Opal.add_stubs("require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process"),self.$require("opal/rewriters/opal_engine_check"),self.$require("opal/rewriters/for_rewriter"),self.$require("opal/rewriters/explicit_writer_return"),self.$require("opal/rewriters/js_reserved_words"),self.$require("opal/rewriters/block_to_iter"),self.$require("opal/rewriters/dot_js_syntax"),self.$require("opal/rewriters/pattern_matching"),self.$require("opal/rewriters/logical_operator_assignment"),self.$require("opal/rewriters/binary_operator_assignment"),self.$require("opal/rewriters/hashes/key_duplicates_rewriter"),self.$require("opal/rewriters/dump_args"),self.$require("opal/rewriters/mlhs_args"),self.$require("opal/rewriters/inline_args"),self.$require("opal/rewriters/numblocks"),self.$require("opal/rewriters/returnable_logic"),self.$require("opal/rewriters/forward_args"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Rewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.sexp=nil,self.disabled=!1,function(self,$parent_nesting){$def(self,"$list",(function(){var $ret_or_1;return null==this.list&&(this.list=nil),this.list=$truthy($ret_or_1=this.list)?$ret_or_1:[]}),0),$def(self,"$use",(function(rewriter){return this.$list()["$<<"](rewriter)}),1),$def(self,"$delete",(function(rewriter){return this.$list().$delete(rewriter)}),1),$def(self,"$disable",(function $$disable($kwargs){var except,$yield=$$disable.$$p||nil,self=this,old_disabled=nil,$ret_or_1=nil;if(null==self.disabled&&(self.disabled=nil),delete $$disable.$$p,null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(except=$kwargs.$$smap.except)&&(except=nil),function(){try{return old_disabled=self.disabled,self.disabled=!$truthy($ret_or_1=except)||$ret_or_1,Opal.yieldX($yield,[])}finally{self.disabled=old_disabled}}()}),-1),$def(self,"$disabled?",(function(){return null==this.disabled&&(this.disabled=nil),this.disabled["$=="](!0)}),0),$def(self,"$rewritter_disabled?",(function(rewriter){return null==this.disabled&&(this.disabled=nil),!$eqeq(this.disabled,!1)&&this.disabled["$!="](rewriter)}),1)}(Opal.get_singleton_class(self)),self.$use($$$($$("Rewriters"),"OpalEngineCheck")),self.$use($$$($$("Rewriters"),"ForRewriter")),self.$use($$$($$("Rewriters"),"Numblocks")),self.$use($$$($$("Rewriters"),"ForwardArgs")),self.$use($$$($$("Rewriters"),"BlockToIter")),self.$use($$$($$("Rewriters"),"DotJsSyntax")),self.$use($$$($$("Rewriters"),"PatternMatching")),self.$use($$$($$("Rewriters"),"JsReservedWords")),self.$use($$$($$("Rewriters"),"LogicalOperatorAssignment")),self.$use($$$($$("Rewriters"),"BinaryOperatorAssignment")),self.$use($$$($$("Rewriters"),"ExplicitWriterReturn")),self.$use($$$($$$($$("Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),self.$use($$$($$("Rewriters"),"ReturnableLogic")),self.$use($$$($$("Rewriters"),"DumpArgs")),self.$use($$$($$("Rewriters"),"MlhsArgs")),self.$use($$$($$("Rewriters"),"InlineArgs")),$def(self,"$initialize",(function(sexp){return this.sexp=sexp}),1),$def(self,"$process",(function(){return $truthy(this.$class()["$disabled?"]())||$send(this.$class().$list(),"each",[],(function $$4(rewriter_class){var self=null==$$4.$$s?this:$$4.$$s,rewriter=nil;return null==self.sexp&&(self.sexp=nil),null==rewriter_class&&(rewriter_class=nil),$truthy(self.$class()["$rewritter_disabled?"](rewriter_class))?nil:(rewriter=rewriter_class.$new(),self.sexp=rewriter.$process(self.sexp))}),{$$arity:1,$$s:this}),this.sexp}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/source_buffer"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$defs=Opal.defs;return function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"SourceBuffer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$recognize_encoding",(function $$recognize_encoding(string){var $ret_or_1,$yield=$$recognize_encoding.$$p||nil;return delete $$recognize_encoding.$$p,$truthy($ret_or_1=$send2(this,$find_super(this,"recognize_encoding",$$recognize_encoding,!1,!0),"recognize_encoding",[string],$yield))?$ret_or_1:$$$($$("Encoding"),"UTF_8")}),1)}($nesting[0],$$$($$$($$$("Parser"),"Source"),"Buffer"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/default_config"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$lambda=Opal.lambda,$defs=Opal.defs,$truthy=Opal.truthy,$Opal=Opal.Opal;return Opal.add_stubs("attr_accessor,all_errors_are_fatal=,diagnostics,-,ignore_warnings=,diagnostics_consumer,consumer=,extend,diagnostics_consumer=,new,rewrite,process,default_parser,default_parser_class"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Parser"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"DefaultConfig"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);(function($base){var self=$module($base,"ClassMethods");self.$attr_accessor("diagnostics_consumer"),$def(self,"$default_parser",(function $$default_parser(){var $yield=$$default_parser.$$p||nil,parser=nil,$writer=nil;return delete $$default_parser.$$p,parser=$send2(this,$find_super(this,"default_parser",$$default_parser,!1,!0),"default_parser",[],$yield),$writer=[!0],$send(parser.$diagnostics(),"all_errors_are_fatal=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(parser.$diagnostics(),"ignore_warnings=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[this.$diagnostics_consumer()],$send(parser.$diagnostics(),"consumer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],parser}),0)})($nesting[0]),$defs(self,"$included",(function(klass){var $writer;return klass.$extend($$("ClassMethods")),$writer=[$lambda((function(diagnostic){return null==diagnostic&&(diagnostic=nil),nil}),1)],$send(klass,"diagnostics_consumer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$initialize",(function $$initialize($a){var self=this;return delete $$initialize.$$p,Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",[$$$($$$($$("Opal"),"AST"),"Builder").$new()],null)}),-1),$def(self,"$parse",(function $$parse(source_buffer){var parsed,$ret_or_1,wrapped,$yield=$$parse.$$p||nil;return delete $$parse.$$p,parsed=$truthy($ret_or_1=$send2(this,$find_super(this,"parse",$$parse,!1,!0),"parse",[source_buffer],$yield))?$ret_or_1:$$$($$$($Opal,"AST"),"Node").$new("nil"),wrapped=$$$($$$($Opal,"AST"),"Node").$new("top",[parsed]),this.$rewrite(wrapped)}),1),$def(self,"$rewrite",(function(node){return $$$($$("Opal"),"Rewriter").$new(node).$process()}),1)}($nesting[0],$nesting),function(self,$parent_nesting){return self.$attr_accessor("default_parser_class"),$def(self,"$default_parser",(function(){return this.$default_parser_class().$default_parser()}),0)}(Opal.get_singleton_class(self))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/with_ruby_lexer"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),$$$=(Opal.nil,Opal.$$$),$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus;return Opal.add_stubs("include,default_parser_class=,-"),function($base,$super,$parent_nesting){var $writer,self=$klass($base,$super,"WithRubyLexer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$include($$$($$$($$("Opal"),"Parser"),"DefaultConfig")),$writer=[self],$send($$$($$("Opal"),"Parser"),"default_parser_class=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}($$$($$("Opal"),"Parser"),$$$($$("Parser"),"Ruby31"),$nesting)},Opal.modules["opal/parser/patch"]=function(Opal){var $base,self,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$rb_plus=Opal.rb_plus,$send=Opal.send,$hash2=Opal.hash2,$eqeqeq=Opal.eqeqeq,$eqeq=Opal.eqeq,$not=Opal.not,$rb_le=Opal.rb_le,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt,$rb_times=Opal.rb_times,$rb_divide=Opal.rb_divide,$to_a=Opal.to_a,$module=Opal.module;return Opal.add_stubs("source,unpack,+,to_a,lines,end_with?,<<,map,chomp,=~,diagnostic,nil?,new,===,type,updated,dedent,first,children,==,empty?,interrupt,compact,encoding,split,force_encoding,length,map!,each_with_index,!,each_char,<=,-,>,*,/,[],[]=,join,respond_to?,send,value"),$base=$$("Parser"),(self=$klass($base,null,"Lexer")).$$prototype.source_buffer=nil,$def(self,"$source_buffer=",(function(source_buffer){var source=nil;return this.source_buffer=source_buffer,$truthy(this.source_buffer)?(source=this.source_buffer.$source(),this.source_pts=source.$unpack("U*")):this.source_pts=nil}),1),function($base,$super){var self=$klass($base,null,"Literal"),$proto=self.$$prototype;$proto.buffer_s=$proto.buffer=nil,Opal.udef(self,"$extend_string"),$def(self,"$extend_string",(function(string,ts,te){var $ret_or_1;return this.buffer_s=$truthy($ret_or_1=this.buffer_s)?$ret_or_1:ts,this.buffer_e=te,this.buffer=$rb_plus(this.buffer,string)}),3)}($$$($$("Parser"),"Lexer")),function($base,$super){var self=$klass($base,null,"Buffer"),$proto=self.$$prototype;$proto.lines=$proto.source=nil,$def(self,"$source_lines",(function(){var $ret_or_1,lines=nil;return this.lines=$truthy($ret_or_1=this.lines)?$ret_or_1:(lines=this.source.$lines().$to_a(),$truthy(this.source["$end_with?"]("\n"))&&lines["$<<"](""),$send(lines,"map",[],(function(line){return null==line&&(line=nil),line.$chomp("\n")}),1))}),0)}($$$($$("Parser"),"Source")),function($base,$super){var self=$klass($base,null,"Default");$def(self,"$check_lvar_name",(function(name,loc){return $truthy(name["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?nil:this.$diagnostic("error","lvar_name",$hash2(["name"],{name:name}),loc)}),2),$def(self,"$dedent_string",(function(node,dedent_level){var dedenter=nil,$ret_or_1=nil,children=nil;return $truthy(dedent_level["$nil?"]())||(dedenter=$$$($$$($$$("Parser"),"Lexer"),"Dedenter").$new(dedent_level),$eqeqeq("str",$ret_or_1=node.$type())?node=node.$updated(nil,[dedenter.$dedent(node.$children().$first())]):($eqeqeq("dstr",$ret_or_1)||$eqeqeq("xstr",$ret_or_1))&&(children=$send(node.$children(),"map",[],(function(str_node){if(null==str_node&&(str_node=nil),$eqeq(str_node.$type(),"str")){if(str_node=str_node.$updated(nil,[dedenter.$dedent(str_node.$children().$first())]),$truthy(str_node.$children().$first()["$empty?"]()))return nil}else dedenter.$interrupt();return str_node}),1),node=node.$updated(nil,children.$compact()))),node}),2)}($$$($$("Parser"),"Builders")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Dedenter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$dedent",(function(string){var original_encoding,self=this,lines=nil;return original_encoding=string.$encoding(),lines=string.$force_encoding($$$($$("Encoding"),"BINARY")).$split("\\\n"),$eqeq(lines.$length(),1)?lines=[string.$force_encoding(original_encoding)]:$send(lines,"map!",[],(function(s){return null==s&&(s=nil),s.$force_encoding(original_encoding)}),1),function(){var $brk=Opal.new_brk();try{$send(lines,"each_with_index",[],(function $$5(line,index){var $writer,self=null==$$5.$$s?this:$$5.$$s,left_to_remove=nil,remove=nil;return null==self.at_line_begin&&(self.at_line_begin=nil),null==self.dedent_level&&(self.dedent_level=nil),null==line&&(line=nil),null==index&&(index=nil),$eqeq(index,0)&&$not(self.at_line_begin)?nil:(left_to_remove=self.dedent_level,remove=0,function(){var $brk=Opal.new_brk();try{$send(line,"each_char",[],(function $$6(char$){var $ret_or_1,self=null==$$6.$$s?this:$$6.$$s;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil),$truthy($rb_le(left_to_remove,0))&&Opal.brk(nil,$brk),$eqeqeq(" ",$ret_or_1=char$)?(remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,1)):$eqeqeq("\t",$ret_or_1)?($truthy($rb_gt($rb_times($$("TAB_WIDTH"),$rb_plus($rb_divide(remove,$$("TAB_WIDTH")),1)),self.dedent_level))&&Opal.brk(nil,$brk),remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,$$("TAB_WIDTH"))):void Opal.brk(nil,$brk)}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),$writer=[index,line["$[]"](Opal.Range.$new(remove,-1,!1))],$send(lines,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),{$$arity:2,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),string=lines.$join(),self.at_line_begin=string["$end_with?"]("\n"),string}),1)}($$$($$("Parser"),"Lexer"),0,$nesting),function($base){var self=$module($base,"Mixin");Opal.udef(self,"$process"),$def(self,"$process",(function(node){var type,on_handler,$ret_or_1=nil,$writer=nil,handler=nil;return null==this._on_handler_cache&&(this._on_handler_cache=nil),$truthy(node["$nil?"]())?nil:(this._on_handler_cache=$truthy($ret_or_1=this._on_handler_cache)?$ret_or_1:$hash2([],{}),type=node.$type(),on_handler=$truthy($ret_or_1=this._on_handler_cache["$[]"](type))?$ret_or_1:($writer=[type,(handler="on_"+type,$truthy(this["$respond_to?"](handler))||(handler="handler_missing"),handler)],$send(this._on_handler_cache,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy($ret_or_1=this.$send(on_handler,node))?$ret_or_1:node)}),1)}($$$($$("AST"),"Processor")),function($base,$super){var self=$klass($base,null,"Default");return Opal.udef(self,"$string_value"),$def(self,"$string_value",(function(token){return this.$value(token)}),1)}($$$($$("Parser"),"Builders"))},Opal.modules["opal/parser"]=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("require"),self.$require("opal/ast/builder"),self.$require("opal/rewriter"),self.$require("opal/parser/source_buffer"),self.$require("opal/parser/default_config"),self.$require("opal/parser/with_ruby_lexer"),self.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$rb_plus=Opal.rb_plus,$rb_gt=Opal.rb_gt,$to_a=Opal.to_a,$not=Opal.not,$send=Opal.send;return Opal.add_stubs("attr_reader,to_s,inspect,===,type,[],meta,source_map_name_for,sexp,==,class,+,parent,>,!,first,children,loc,respond_to?,dot,selector,operator,begin,line,location,column"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Fragment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.code=$proto.scope=$proto.sexp=nil,self.$attr_reader("code"),$def(self,"$initialize",(function(code,scope,sexp){return null==sexp&&(sexp=nil),this.code=code.$to_s(),this.sexp=sexp,this.scope=scope}),-3),$def(self,"$inspect",(function(){return"f("+this.code.$inspect()+")"}),0),$def(self,"$source_map_name_for",(function(sexp){var $a,$ret_or_1,$ret_or_2=nil,scope=nil,iters=nil,level=nil,const$=nil,name=nil;if($eqeqeq("top",$ret_or_1=sexp.$type()))return $eqeqeq("require",$ret_or_2=sexp.$meta()["$[]"]("kind"))?"":$eqeqeq("eval",$ret_or_2)?"(eval)":$eqeqeq("main",$ret_or_2)?"
    ":nil;if($eqeqeq("begin",$ret_or_1)||$eqeqeq("newline",$ret_or_1)||$eqeqeq("js_return",$ret_or_1))return $truthy(this.scope)?this.$source_map_name_for(this.scope.$sexp()):nil;if($eqeqeq("iter",$ret_or_1)){for(scope=this.scope,iters=1;$truthy(scope)&&$eqeq(scope.$class(),$$$($$("Nodes"),"IterNode"));)iters=$rb_plus(iters,1),scope=scope.$parent();return $truthy($rb_gt(iters,1))&&(level=" ("+iters+" levels)"),"block"+level+" in "+this.$source_map_name_for(scope.$sexp())}return $eqeqeq("self",$ret_or_1)?"self":$eqeqeq("module",$ret_or_1)?(const$=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],""):$eqeqeq("class",$ret_or_1)?(const$=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],""):$eqeqeq("const",$ret_or_1)?(scope=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],$not(scope)||$eqeq(scope.$type(),"cbase")?name.$to_s():this.$source_map_name_for(scope)+"::"+name):$eqeqeq("int",$ret_or_1)||$eqeqeq("def",$ret_or_1)?sexp.$children().$first():$eqeqeq("defs",$ret_or_1)||$eqeqeq("send",$ret_or_1)?sexp.$children()["$[]"](1):$eqeqeq("lvar",$ret_or_1)||$eqeqeq("lvasgn",$ret_or_1)||$eqeqeq("lvdeclare",$ret_or_1)||$eqeqeq("ivar",$ret_or_1)||$eqeqeq("ivasgn",$ret_or_1)||$eqeqeq("gvar",$ret_or_1)||$eqeqeq("cvar",$ret_or_1)||$eqeqeq("cvasgn",$ret_or_1)||$eqeqeq("gvars",$ret_or_1)||$eqeqeq("gvasgn",$ret_or_1)||$eqeqeq("arg",$ret_or_1)?sexp.$children().$first():$eqeqeq("str",$ret_or_1)||$eqeqeq("xstr",$ret_or_1)?this.$source_map_name_for(this.scope.$sexp()):nil}),1),$def(self,"$source_map_name",(function(){return $truthy(this.sexp)?this.$source_map_name_for(this.sexp):nil}),0),$def(self,"$location",(function(){var loc=nil,$ret_or_1=nil;return $not(this.sexp)?nil:$eqeq(this.sexp.$type(),"send")?(loc=this.sexp.$loc(),$truthy(loc["$respond_to?"]("dot"))?$truthy($ret_or_1=loc.$dot())?$ret_or_1:loc.$selector():$truthy(loc["$respond_to?"]("operator"))?loc.$operator():this.sexp):$eqeq(this.sexp.$type(),"iter")&&$truthy(loc["$respond_to?"]("begin"))?this.sexp.$loc().$begin():this.sexp}),0),$def(self,"$line",(function(){var $a;return($a=this.$location())===nil||null==$a?nil:$send($a,"line",[])}),0),$def(self,"$column",(function(){var $a;return($a=this.$location())===nil||null==$a?nil:$send($a,"column",[])}),0),$def(self,"$skip_source_map?",(function(){return this.sexp["$=="](!1)}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/helpers"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$truthy=Opal.truthy,$def=Opal.def,$rb_plus=Opal.rb_plus,$send=Opal.send,$hash2=Opal.hash2,$to_a=Opal.to_a,$eqeqeq=Opal.eqeqeq,$slice=Opal.slice,$eqeq=Opal.eqeq,$rb_minus=Opal.rb_minus;return Opal.add_stubs("require,valid_name?,inspect,=~,to_s,+,indent,compiler,to_proc,parser_indent,push,fragment,current_indent,js_truthy_optimize,helper,expr,===,type,[],handlers,include?,truthy_optimize?,==,count,<<,method_calls,first,children,s,[]=,meta,-,new_temp,scope,wrap"),self.$require("opal/regexp_anchors"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Helpers"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$property",(function(name){return $truthy(this["$valid_name?"](name))?"."+name:"["+name.$inspect()+"]"}),1),$def(self,"$valid_name?",(function(name){return $$$($$$($$("Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](name)}),1),$def(self,"$mid_to_jsid",(function(mid){return $truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/["$=~"](mid.$to_s()))?"['$"+mid+"']":$rb_plus(".$",mid)}),1),$def(self,"$indent",(function $$indent(){var block=$$indent.$$p||nil;return delete $$indent.$$p,$send(this.$compiler(),"indent",[],block.$to_proc())}),0),$def(self,"$current_indent",(function(){return this.$compiler().$parser_indent()}),0),$def(self,"$line",(function($a){var strs,self=this;return strs=Opal.slice.call(arguments),self.$push(self.$fragment("\n"+self.$current_indent(),$hash2(["loc"],{loc:!1}))),$send(self,"push",$to_a(strs))}),-1),$def(self,"$empty_line",(function(){return this.$push(this.$fragment("\n",$hash2(["loc"],{loc:!1})))}),0),$def(self,"$js_truthy",(function(sexp){var optimize;return $truthy(optimize=this.$js_truthy_optimize(sexp))?optimize:(this.$helper("truthy"),[this.$fragment("$truthy("),this.$expr(sexp),this.$fragment(")")])}),1),$def(self,"$js_truthy_optimize",(function(sexp){var $a,$ret_or_1,receiver=nil,mid=nil,args=nil,receiver_handler_class=nil,$ret_or_2=nil,allow_optimization_on_type=nil,$ret_or_3=nil,true_body=nil,false_body=nil,$writer=nil;return $eqeqeq("send",$ret_or_1=sexp.$type())?(receiver=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=$slice.call($a,2),receiver_handler_class=$truthy($ret_or_2=receiver)?this.$compiler().$handlers()["$[]"](receiver.$type()):$ret_or_2,allow_optimization_on_type=$truthy($ret_or_2=$truthy($ret_or_3=$$$($$("Compiler"),"COMPARE")["$include?"](mid.$to_s()))?receiver_handler_class:$ret_or_3)?receiver_handler_class["$truthy_optimize?"]():$ret_or_2,$truthy(allow_optimization_on_type)||$eqeq(mid,"block_given?")?this.$expr(sexp):$eqeq(args.$count(),1)?$eqeqeq("==",$ret_or_2=mid)?(this.$helper("eqeq"),this.$compiler().$method_calls()["$<<"](mid),[this.$fragment("$eqeq("),this.$expr(receiver),this.$fragment(", "),this.$expr(args.$first()),this.$fragment(")")]):$eqeqeq("===",$ret_or_2)?(this.$helper("eqeqeq"),this.$compiler().$method_calls()["$<<"](mid),[this.$fragment("$eqeqeq("),this.$expr(receiver),this.$fragment(", "),this.$expr(args.$first()),this.$fragment(")")]):$eqeqeq("!=",$ret_or_2)?(this.$helper("neqeq"),this.$compiler().$method_calls()["$<<"](mid),[this.$fragment("$neqeq("),this.$expr(receiver),this.$fragment(", "),this.$expr(args.$first()),this.$fragment(")")]):nil:$eqeq(args.$count(),0)&&$eqeqeq("!",$ret_or_2=mid)?(this.$helper("not"),this.$compiler().$method_calls()["$<<"](mid),[this.$fragment("$not("),this.$expr(receiver),this.$fragment(")")]):nil):$eqeqeq("begin",$ret_or_1)?$eqeq(sexp.$children().$count(),1)?this.$js_truthy_optimize(sexp.$children().$first()):nil:$eqeqeq("if",$ret_or_1)?(null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],$eqeq(true_body,this.$s("true"))?($writer=["do_js_truthy_on_false_body",!0],$send(sexp.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.$expr(sexp)):$eqeq(false_body,this.$s("false"))?($writer=["do_js_truthy_on_true_body",!0],$send(sexp.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.$expr(sexp)):nil):nil}),1),$def(self,"$conditional_send",(function $$conditional_send(recvr){var receiver_temp,$yield=$$conditional_send.$$p||nil;return delete $$conditional_send.$$p,receiver_temp=this.$scope().$new_temp(),this.$push(receiver_temp+" = ",recvr),this.$push(", ("+receiver_temp+" === nil || "+receiver_temp+" == null) ? nil : "),Opal.yield1($yield,receiver_temp),this.$wrap("(",")")}),1)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/base"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$defs=Opal.defs,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$Opal=Opal.Opal,$rb_plus=Opal.rb_plus;return Opal.add_stubs("require,include,each,[]=,handlers,-,each_with_index,define_method,[],children,attr_reader,type,top_scope,top_scope=,compile,raise,is_a?,fragment,<<,reverse_each,unshift,push,new,scope,error,loc,==,process,expr,add_scope_local,to_sym,add_scope_ivar,add_scope_gvar,add_scope_temp,helper,with_temp,to_proc,in_while?,instance_variable_get,has_rescue_else?,in_ensure,in_ensure?,in_resbody,in_resbody?,in_rescue,!,class_scope?,sclass?,+,parent,nesting,class_variable_owner_nesting_level,comments,compiler,name,source_buffer,expression,start_with?,end_with?,line"),self.$require("opal/nodes/helpers"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Base"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.compiler=$proto.sexp=$proto.fragments=$proto.level=nil,self.$include($$("Helpers")),$defs(self,"$handlers",(function(){var $ret_or_1;return null==this.handlers&&(this.handlers=nil),this.handlers=$truthy($ret_or_1=this.handlers)?$ret_or_1:$hash2([],{})}),0),$defs(self,"$handle",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$1(type){var $writer;return null==type&&(type=nil),$writer=[type,null==$$1.$$s?this:$$1.$$s],$send($$("Base").$handlers(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),-1),$defs(self,"$children",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each_with_index",[],(function $$2(name,idx){var self=null==$$2.$$s?this:$$2.$$s;return null==name&&(name=nil),null==idx&&(idx=nil),$send(self,"define_method",[name],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return null==self.sexp&&(self.sexp=nil),self.sexp.$children()["$[]"](idx)}),{$$arity:0,$$s:self})}),{$$arity:2,$$s:self})}),-1),$defs(self,"$truthy_optimize?",(function(){return!1}),0),self.$attr_reader("compiler","type","sexp"),$def(self,"$initialize",(function(sexp,level,compiler){var $ret_or_1,$writer=nil;return this.sexp=sexp,this.type=sexp.$type(),this.level=level,this.compiler=compiler,$truthy($ret_or_1=this.compiler.$top_scope())?$ret_or_1:($writer=[this],$send(this.compiler,"top_scope=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),3),$def(self,"$children",(function(){return this.sexp.$children()}),0),$def(self,"$compile_to_fragments",(function(){var $a;return $truthy(null!=($a=this.fragments)&&$a!==nil?"instance-variable":nil)||(this.fragments=[],this.$compile()),this.fragments}),0),$def(self,"$compile",(function(){return this.$raise("Not Implemented")}),0),$def(self,"$push",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$5(str){var self=null==$$5.$$s?this:$$5.$$s;return null==self.fragments&&(self.fragments=nil),null==str&&(str=nil),$truthy(str["$is_a?"]($$("String")))&&(str=self.$fragment(str)),self.fragments["$<<"](str)}),{$$arity:1,$$s:self})}),-1),$def(self,"$unshift",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"reverse_each",[],(function $$6(str){var self=null==$$6.$$s?this:$$6.$$s;return null==self.fragments&&(self.fragments=nil),null==str&&(str=nil),$truthy(str["$is_a?"]($$("String")))&&(str=self.$fragment(str)),self.fragments.$unshift(str)}),{$$arity:1,$$s:self})}),-1),$def(self,"$wrap",(function(pre,post){return this.$unshift(pre),this.$push(post)}),2),$def(self,"$fragment",(function(str,$kwargs){var loc,$ret_or_1;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(loc=$kwargs.$$smap.loc)&&(loc=!0),$$$($$("Opal"),"Fragment").$new(str,this.$scope(),$truthy($ret_or_1=loc)?this.sexp:$ret_or_1)}),-2),$def(self,"$error",(function(msg){return this.compiler.$error(msg)}),1),$def(self,"$scope",(function(){return this.compiler.$scope()}),0),$def(self,"$top_scope",(function(){return this.compiler.$top_scope()}),0),$def(self,"$s",(function(type,$a){var children,self=this;return children=Opal.slice.call(arguments,1),$$$($$$($Opal,"AST"),"Node").$new(type,children,$hash2(["location"],{location:self.sexp.$loc()}))}),-2),$def(self,"$expr?",(function(){return this.level["$=="]("expr")}),0),$def(self,"$recv?",(function(){return this.level["$=="]("recv")}),0),$def(self,"$stmt?",(function(){return this.level["$=="]("stmt")}),0),$def(self,"$process",(function(sexp,level){return null==level&&(level="expr"),this.compiler.$process(sexp,level)}),-2),$def(self,"$expr",(function(sexp){return this.compiler.$process(sexp,"expr")}),1),$def(self,"$recv",(function(sexp){return this.compiler.$process(sexp,"recv")}),1),$def(self,"$stmt",(function(sexp){return this.compiler.$process(sexp,"stmt")}),1),$def(self,"$expr_or_nil",(function(sexp){return $truthy(sexp)?this.$expr(sexp):"nil"}),1),$def(self,"$add_local",(function(name){return this.$scope().$add_scope_local(name.$to_sym())}),1),$def(self,"$add_ivar",(function(name){return this.$scope().$add_scope_ivar(name)}),1),$def(self,"$add_gvar",(function(name){return this.$scope().$add_scope_gvar(name)}),1),$def(self,"$add_temp",(function(temp){return this.$scope().$add_scope_temp(temp)}),1),$def(self,"$helper",(function(name){return this.compiler.$helper(name)}),1),$def(self,"$with_temp",(function $$with_temp(){var block=$$with_temp.$$p||nil;return delete $$with_temp.$$p,$send(this.compiler,"with_temp",[],block.$to_proc())}),0),$def(self,"$in_while?",(function(){return this.compiler["$in_while?"]()}),0),$def(self,"$while_loop",(function(){return this.compiler.$instance_variable_get("@while_loop")}),0),$def(self,"$has_rescue_else?",(function(){return this.$scope()["$has_rescue_else?"]()}),0),$def(self,"$in_ensure",(function $$in_ensure(){var block=$$in_ensure.$$p||nil;return delete $$in_ensure.$$p,$send(this.$scope(),"in_ensure",[],block.$to_proc())}),0),$def(self,"$in_ensure?",(function(){return this.$scope()["$in_ensure?"]()}),0),$def(self,"$in_resbody",(function $$in_resbody(){var block=$$in_resbody.$$p||nil;return delete $$in_resbody.$$p,$send(this.$scope(),"in_resbody",[],block.$to_proc())}),0),$def(self,"$in_resbody?",(function(){return this.$scope()["$in_resbody?"]()}),0),$def(self,"$in_rescue",(function $$in_rescue(node){var block=$$in_rescue.$$p||nil;return delete $$in_rescue.$$p,$send(this.$scope(),"in_rescue",[node],block.$to_proc())}),1),$def(self,"$class_variable_owner_nesting_level",(function(){var cvar_scope=nil,nesting_level=nil,$ret_or_1=nil;for(cvar_scope=this.$scope(),nesting_level=0;$truthy($truthy($ret_or_1=cvar_scope)?cvar_scope["$class_scope?"]()["$!"]():$ret_or_1);)$truthy(cvar_scope["$sclass?"]())&&(nesting_level=$rb_plus(nesting_level,1)),cvar_scope=cvar_scope.$parent();return nesting_level}),0),$def(self,"$class_variable_owner",(function(){return $truthy(this.$scope())?this.$scope().$nesting()+"["+this.$class_variable_owner_nesting_level()+"]":"Opal.Object"}),0),$def(self,"$comments",(function(){return this.$compiler().$comments()["$[]"](this.sexp.$loc())}),0),$def(self,"$source_location",(function(){var file=nil;return file=this.sexp.$loc().$expression().$source_buffer().$name(),$truthy(file["$start_with?"]("corelib/"))&&(file=""),$truthy(file["$end_with?"](".js"))&&(file=""),"['"+file+"', "+this.sexp.$loc().$line()+"]"}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/literal"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def,$defs=Opal.defs,$truthy=Opal.truthy,$const_set=Opal.const_set,$hash2=Opal.hash2,$regexp=Opal.regexp,$send=Opal.send,$rb_plus=Opal.rb_plus,$lambda=Opal.lambda,$rb_le=Opal.rb_le,$rb_minus=Opal.rb_minus,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$eqeqeq=Opal.eqeqeq,$slice=Opal.slice,$Opal=Opal.Opal,$rb_gt=Opal.rb_gt;return Opal.add_stubs("require,handle,==,type,push,self,scope,to_s,children,value,recv?,wrap,freeze,join,keys,gsub,even?,length,last_match,+,chop,[],inspect,to_i,to_utf16,translate_escape_chars,valid_encoding?,helper,upcase,<=,call,-,>>,&,attr_accessor,extract_flags_and_value,select!,flags,=~,warning,compiler,compile_static_regexp,compile_dynamic_regexp,each_with_index,zero?,expr,any?,===,new,map,to_proc,flags=,empty?,s,single_line?,value=,include?,is_a?,updated,delete,source,expression,loc,private,>,!=,!,regexp,first,each,compile_inline?,compile_inline,compile_range_initialize,start,finish,raise,expr_or_nil,absolute_const,top_scope,numerator,denominator,real,imag"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ValueNode");self.$handle("true","false","self","nil"),$def(self,"$compile",(function(){return $eqeq(this.$type(),"self")?this.$push(this.$scope().$self()):this.$push(this.$type().$to_s())}),0),$defs(self,"$truthy_optimize?",(function(){return!0}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"NumericNode");self.$handle("int","float"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$value().$to_s()),$truthy(this["$recv?"]())?this.$wrap("(",")"):nil}),0),$defs(self,"$truthy_optimize?",(function(){return!0}),0)}($nesting[0],$$("Base")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"StringNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$handle("str"),self.$children("value"),$const_set($nesting[0],"ESCAPE_CHARS",$hash2(["a","e"],{a:"\\u0007",e:"\\u001b"}).$freeze()),$const_set($nesting[0],"ESCAPE_REGEX",$regexp(["(\\\\+)([",$$("ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),$def(self,"$translate_escape_chars",(function(inspect_string){return $send(inspect_string,"gsub",[$$("ESCAPE_REGEX")],(function(original){return null==original&&(original=nil),$truthy($$("Regexp").$last_match(1).$length()["$even?"]())?original:$rb_plus($$("Regexp").$last_match(1).$chop(),$$("ESCAPE_CHARS")["$[]"]($$("Regexp").$last_match(2)))}),1)}),1),$def(self,"$compile",(function(){var sanitized_value,string_value=nil;return string_value=this.$value(),sanitized_value=$send(string_value.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],(function $$4(){var code_point,self=null==$$4.$$s?this:$$4.$$s;return code_point=$$("Regexp").$last_match(1).$to_i(16),self.$to_utf16(code_point)}),{$$arity:0,$$s:this}),this.$push(this.$translate_escape_chars(sanitized_value)),$truthy(this.$value()["$valid_encoding?"]())?nil:(this.$helper("binary"),this.$wrap("$binary(",")"))}),0),$def(self,"$to_utf16",(function(code_point){var lead_surrogate,tail_surrogate,u=nil;return 1023,u=$lambda((function(code_unit){return null==code_unit&&(code_unit=nil),$rb_plus("\\u",code_unit.$to_s(16).$upcase())}),1),$truthy($rb_le(code_point,65535))?u.$call(code_point):(code_point=$rb_minus(code_point,65536),lead_surrogate=$rb_plus(55296,code_point["$>>"](10)),tail_surrogate=$rb_plus(56320,code_point["$&"](1023)),$rb_plus(u.$call(lead_surrogate),u.$call(tail_surrogate)))}),1)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"SymbolNode");self.$handle("sym"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$value().$to_s().$inspect())}),0)}($nesting[0],$$("Base")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"RegexpNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.sexp=nil,self.$handle("regexp"),self.$attr_accessor("value","flags"),$const_set($nesting[0],"SUPPORTED_FLAGS",/[gimuy]/.$freeze()),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),self.$extract_flags_and_value()}),-1),$def(self,"$compile",(function(){return $send(this.$flags(),"select!",[],(function $$6(flag){var self=null==$$6.$$s?this:$$6.$$s;return null==flag&&(flag=nil),!!$truthy($$("SUPPORTED_FLAGS")["$=~"](flag))||(self.$compiler().$warning("Skipping the '"+flag+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)}),{$$arity:1,$$s:this}),$eqeq(this.$value().$type(),"str")?this.$compile_static_regexp():this.$compile_dynamic_regexp()}),0),$def(self,"$compile_dynamic_regexp",(function(){return this.$helper("regexp"),this.$push("$regexp(["),$send(this.$value().$children(),"each_with_index",[],(function $$7(v,index){var self=null==$$7.$$s?this:$$7.$$s;return null==v&&(v=nil),null==index&&(index=nil),$truthy(index["$zero?"]())||self.$push(", "),self.$push(self.$expr(v))}),{$$arity:2,$$s:this}),this.$push("]"),$truthy(this.$flags()["$any?"]())&&this.$push(", '"+this.$flags().$join()+"'"),this.$push(")")}),0),$def(self,"$compile_static_regexp",(function(){var value;return value=this.$value().$children()["$[]"](0),$eqeqeq("",value)?this.$push("/(?:)/"):this.$push(""+$$("Regexp").$new(value).$inspect()+this.$flags().$join())}),0),$def(self,"$extract_flags_and_value",(function(){var $a,$b,values=nil,flags_sexp=nil,$writer=nil,parts=nil;return $b=($b=($a=[].concat($to_a(this.$children()))).length-1)<0?0:$b,values=$slice.call($a,0,$b),flags_sexp=null==$a[$b]?nil:$a[$b],$writer=[$send(flags_sexp.$children(),"map",[],"to_s".$to_proc())],$send(this,"flags=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$truthy(values["$empty?"]())?this.$s("str",""):$truthy(this["$single_line?"](values))?values["$[]"](0):$send(this,"s",["dstr"].concat($to_a(values)))],$send(this,"value=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(this.$flags()["$include?"]("x"))&&(parts=$send(this.$value().$children(),"map",[],(function $$8(part){var self=null==$$8.$$s?this:$$8.$$s,trimmed_value=nil;return null==part&&(part=nil),$truthy(part["$is_a?"]($$$($$$($Opal,"AST"),"Node")))&&$eqeq(part.$type(),"str")?(trimmed_value=part.$children()["$[]"](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),self.$s("str",trimmed_value)):part}),{$$arity:1,$$s:this}),$writer=[this.$value().$updated(nil,parts)],$send(this,"value=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.$flags().$delete("x")),$eqeq(this.$value().$type(),"str")?($writer=[this.$s("str",this.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],$send(this,"value=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),0),$def(self,"$raw_value",(function(){var $writer;return $writer=[this.sexp.$loc().$expression().$source()],$send(this,"value=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),0),self.$private(),$def(self,"$single_line?",(function(values){var $ret_or_1,value=nil;return!$truthy($rb_gt(values.$length(),1))&&(value=values["$[]"](0),$truthy($ret_or_1=value.$type()["$!="]("str"))?$ret_or_1:value.$children()["$[]"](0)["$include?"]("\n")["$!"]())}),1)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"MatchCurrentLineNode");self.$handle("match_current_line"),self.$children("regexp"),$def(self,"$compile",(function(){var gvar_sexp,send_node;return gvar_sexp=this.$s("gvar","$_"),send_node=this.$s("send",gvar_sexp,"=~",this.$regexp()),this.$push(this.$expr(send_node))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"DynamicStringNode");self.$handle("dstr"),$def(self,"$compile",(function(){var skip_empty=nil;return $truthy($rb_gt(this.$children().$length(),1))&&$eqeq(this.$children().$first().$type(),"str")?skip_empty=!0:this.$push('""'),$send(this.$children(),"each",[],(function $$10(part){var self=null==$$10.$$s?this:$$10.$$s;return null==part&&(part=nil),$truthy(skip_empty)?skip_empty=!1:self.$push(" + "),$eqeq(part.$type(),"str")?self.$push(self.$expr(part)):self.$push("(",self.$expr(part),")"),$truthy(self["$recv?"]())?self.$wrap("(",")"):nil}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("Base")),function($base,$super){$klass($base,$super,"DynamicSymbolNode").$handle("dsym")}($nesting[0],$$("DynamicStringNode")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"RangeNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$children("start","finish"),$const_set($nesting[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),$def(self,"$compile",(function(){return $truthy(this["$compile_inline?"]())?(this.$helper("range"),this.$compile_inline()):this.$compile_range_initialize()}),0),$def(self,"$compile_inline?",(function(){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$truthy($ret_or_2=this.$start()["$!"]())?$ret_or_2:$truthy($ret_or_3=this.$start().$type())?$$("SIMPLE_CHILDREN_TYPES")["$include?"](this.$start().$type()):$ret_or_3)?$truthy($ret_or_2=this.$finish()["$!"]())?$ret_or_2:$truthy($ret_or_3=this.$finish().$type())?$$("SIMPLE_CHILDREN_TYPES")["$include?"](this.$finish().$type()):$ret_or_3:$ret_or_1}),0),$def(self,"$compile_inline",(function(){return this.$raise($$("NotImplementedError"))}),0),$def(self,"$compile_range_initialize",(function(){return this.$raise($$("NotImplementedError"))}),0)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"InclusiveRangeNode");self.$handle("irange"),$def(self,"$compile_inline",(function(){return this.$push("$range(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", false)")}),0),$def(self,"$compile_range_initialize",(function(){return this.$push("Opal.Range.$new(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", false)")}),0)}($nesting[0],$$("RangeNode")),function($base,$super){var self=$klass($base,$super,"ExclusiveRangeNode");self.$handle("erange"),$def(self,"$compile_inline",(function(){return this.$push("$range(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", true)")}),0),$def(self,"$compile_range_initialize",(function(){return this.$push("Opal.Range.$new(",this.$expr_or_nil(this.$start()),",",this.$expr_or_nil(this.$finish()),", true)")}),0)}($nesting[0],$$("RangeNode")),function($base,$super){var self=$klass($base,$super,"RationalNode");self.$handle("rational"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$top_scope().$absolute_const()+"('Rational').$new("+this.$value().$numerator()+", "+this.$value().$denominator()+")")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ComplexNode");return self.$handle("complex"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$top_scope().$absolute_const()+"('Complex').$new("+this.$value().$real()+", "+this.$value().$imag()+")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/variables"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$send=Opal.send,$range=Opal.range,$eqeqeq=Opal.eqeqeq,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,handle,children,irb?,compiler,top?,scope,using_irb?,push,to_s,var_name,with_temp,property,wrap,add_local,expr,value,expr?,recv?,[],name,add_ivar,self,helper,add_gvar,===,handle_global_match,handle_post_match,handle_pre_match,raise,index,stmt?,class_variable_owner,inspect"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"LocalVariableNode");self.$handle("lvar"),self.$children("var_name"),$def(self,"$using_irb?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():$ret_or_1}),0),$def(self,"$compile",(function(){return $truthy(this["$using_irb?"]())?$send(this,"with_temp",[],(function $$2(tmp){var self=null==$$2.$$s?this:$$2.$$s;return null==tmp&&(tmp=nil),self.$push(self.$property(self.$var_name().$to_s())),self.$wrap("(("+tmp+" = Opal.irb_vars",") == null ? nil : "+tmp+")")}),{$$arity:1,$$s:this}):this.$push(this.$var_name().$to_s())}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"LocalAssignNode");self.$handle("lvasgn"),self.$children("var_name","value"),$def(self,"$using_irb?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():$ret_or_1}),0),$def(self,"$compile",(function(){return $truthy(this["$using_irb?"]())?this.$push("Opal.irb_vars"+this.$property(this.$var_name().$to_s())+" = "):(this.$add_local(this.$var_name().$to_s()),this.$push(this.$var_name()+" = ")),this.$push(this.$expr(this.$value())),($truthy(this["$recv?"]())||$truthy(this["$expr?"]()))&&$truthy(this.$value())?this.$wrap("(",")"):nil}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"LocalDeclareNode");self.$handle("lvdeclare"),self.$children("var_name"),$def(self,"$compile",(function(){return this.$add_local(this.$var_name().$to_s()),nil}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"InstanceVariableNode");self.$handle("ivar"),self.$children("name"),$def(self,"$var_name",(function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))}),0),$def(self,"$compile",(function(){var name;return name=this.$property(this.$var_name()),this.$add_ivar(name),this.$push(""+this.$scope().$self()+name)}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"InstanceAssignNode");self.$handle("ivasgn"),self.$children("name","value"),$def(self,"$var_name",(function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))}),0),$def(self,"$compile",(function(){var name;return name=this.$property(this.$var_name()),this.$push(""+this.$scope().$self()+name+" = "),this.$push(this.$expr(this.$value())),($truthy(this["$recv?"]())||$truthy(this["$expr?"]()))&&$truthy(this.$value())?this.$wrap("(",")"):nil}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"GlobalVariableNode");self.$handle("gvar"),self.$children("name"),$def(self,"$var_name",(function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))}),0),$def(self,"$compile",(function(){var name;return this.$helper("gvars"),name=this.$property(this.$var_name()),this.$add_gvar(name),this.$push("$gvars"+name)}),0)}($nesting[0],$$("Base")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"BackRefNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$handle("back_ref"),$def(self,"$compile",(function $$compile(){var $ret_or_1,$yield=$$compile.$$p||nil;return delete $$compile.$$p,this.$helper("gvars"),$eqeqeq("&",$ret_or_1=this.$var_name())?this.$handle_global_match():$eqeqeq("'",$ret_or_1)?this.$handle_post_match():$eqeqeq("`",$ret_or_1)?this.$handle_pre_match():$eqeqeq("+",$ret_or_1)?$send2(this,$find_super(this,"compile",$$compile,!1,!0),"compile",[],$yield):this.$raise($$("NotImplementedError"))}),0),$def(self,"$handle_global_match",(function(){return $send(this,"with_temp",[],(function $$4(tmp){return null==tmp&&(tmp=nil),(null==$$4.$$s?this:$$4.$$s).$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+"['$[]'](0))")}),{$$arity:1,$$s:this})}),0),$def(self,"$handle_pre_match",(function(){return $send(this,"with_temp",[],(function $$5(tmp){return null==tmp&&(tmp=nil),(null==$$5.$$s?this:$$5.$$s).$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+".$pre_match())")}),{$$arity:1,$$s:this})}),0),$def(self,"$handle_post_match",(function(){return $send(this,"with_temp",[],(function $$6(tmp){return null==tmp&&(tmp=nil),(null==$$6.$$s?this:$$6.$$s).$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+".$post_match())")}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("GlobalVariableNode"),$nesting),function($base,$super){var self=$klass($base,$super,"GlobalAssignNode");self.$handle("gvasgn"),self.$children("name","value"),$def(self,"$var_name",(function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))}),0),$def(self,"$compile",(function(){var name;return this.$helper("gvars"),name=this.$property(this.$var_name()),this.$push("$gvars"+name+" = "),this.$push(this.$expr(this.$value())),($truthy(this["$recv?"]())||$truthy(this["$expr?"]()))&&$truthy(this.$value())?this.$wrap("(",")"):nil}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"NthrefNode");self.$handle("nth_ref"),self.$children("index"),$def(self,"$compile",(function(){return this.$helper("gvars"),$send(this,"with_temp",[],(function $$7(tmp){var self=null==$$7.$$s?this:$$7.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+"['$[]']("+self.$index()+"))")}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ClassVariableNode");self.$handle("cvar"),self.$children("name"),$def(self,"$compile",(function(){var tolerant=nil;return this.$helper("class_variable_get"),tolerant=!1,$truthy(this["$stmt?"]())&&(tolerant=!0),this.$push("$class_variable_get("+this.$class_variable_owner()+", '"+this.$name()+"', "+tolerant.$inspect()+")")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ClassVarAssignNode");return self.$handle("cvasgn"),self.$children("name","value"),$def(self,"$compile",(function(){return this.$helper("class_variable_set"),this.$push("$class_variable_set("+this.$class_variable_owner()+", '"+this.$name()+"', ",this.$expr(this.$value()),")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/constants"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def,$const_set=Opal.const_set;return Opal.add_stubs("require,handle,children,magical_data_const?,push,optimized_access?,helper,name,==,const_scope,s,absolute_const,top_scope,recv,eval?,compiler,relative_access,scope,nil?,eof_content,freeze,include?,base,expr,value,nesting"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ConstNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$handle("const"),self.$children("const_scope","name"),$def(self,"$compile",(function(){return $truthy(this["$magical_data_const?"]())?this.$push("$__END__"):$truthy(this["$optimized_access?"]())?(this.$helper(""+this.$name()),this.$push("$"+this.$name())):$eqeq(this.$const_scope(),this.$s("cbase"))?this.$push(this.$top_scope().$absolute_const()+"('"+this.$name()+"')"):$truthy(this.$const_scope())?this.$push(this.$top_scope().$absolute_const()+"(",this.$recv(this.$const_scope()),", '"+this.$name()+"')"):($truthy(this.$compiler()["$eval?"]()),this.$push(this.$scope().$relative_access()+"('"+this.$name()+"')"))}),0),$def(self,"$magical_data_const?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.$const_scope()["$nil?"]())?this.$name()["$=="]("DATA"):$ret_or_2)?this.$compiler().$eof_content():$ret_or_1}),0),$const_set($nesting[0],"OPTIMIZED_ACCESS_CONSTS",["BasicObject","Object","Module","Class","Opal","Kernel","NilClass"].$freeze()),$def(self,"$optimized_access?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$const_scope()["$=="](this.$s("cbase")))?$$("OPTIMIZED_ACCESS_CONSTS")["$include?"](this.$name()):$ret_or_1}),0)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"CbaseNode");self.$handle("cbase"),$def(self,"$compile",(function(){return this.$push("'::'")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ConstAssignNode");return self.$handle("casgn"),self.$children("base","name","value"),$def(self,"$compile",(function(){return this.$helper("const_set"),$truthy(this.$base())?this.$push("$const_set(",this.$expr(this.$base()),", '"+this.$name()+"', ",this.$expr(this.$value()),")"):this.$push("$const_set("+this.$scope().$nesting()+"[0], '"+this.$name()+"', ",this.$expr(this.$value()),")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/break_finder"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$alias=Opal.alias;return Opal.add_stubs("require"),self.$require("opal/rewriter"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"BreakFinder");return self.$$prototype.found_break=nil,$def(self,"$initialize",(function(){return this.found_break=!1}),0),$def(self,"$found_break?",(function(){return this.found_break}),0),$def(self,"$on_break",(function(node){return this.found_break=!0,node}),1),$def(self,"$stop_lookup",(function(node){return nil}),1),$alias(self,"on_for","stop_lookup"),$alias(self,"on_while","stop_lookup"),$alias(self,"on_while_post","stop_lookup"),$alias(self,"on_until","stop_lookup"),$alias(self,"on_until_post","stop_lookup"),$alias(self,"on_block","stop_lookup")}($nesting[0],$$$($$$($$("Opal"),"Rewriters"),"Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/call"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$defs=Opal.defs,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$truthy=Opal.truthy,$def=Opal.def,$eqeq=Opal.eqeq,$rb_plus=Opal.rb_plus,$not=Opal.not,$neqeq=Opal.neqeq,$eqeqeq=Opal.eqeqeq,$to_ary=Opal.to_ary,$Opal=Opal.Opal,$range=Opal.range;return Opal.add_stubs("require,handle,attr_reader,freeze,[]=,-,define_method,to_proc,include?,type,s,handle_special,record_method?,<<,method_calls,compiler,to_sym,meth,using_eval?,compile_eval_var,using_irb?,compile_irb_var,default_compile,private,iter,new,process,found_break?,splat?,!,empty?,collect_refinements_temps,scope,auto_await?,push,await_encountered=,invoke_using_refinement?,compile_using_refined_send,invoke_using_send?,compile_using_send,compile_simple_call_chain,compile_break_catcher,helper,compile_receiver,compile_method_name,compile_arguments,compile_block_pass,compile_refinements,recv,receiver_sexp,expr,arglist,children,map,iter_has_break?,unshift,line,method_jsid,any?,==,recvr,mid_to_jsid,to_s,with_temp,intern,irb?,top?,variable_like?,eval?,scope_variables,nil?,updated,async_await,!=,match?,method,arity,[],each,add_special,call,inline_operators?,fragment,resolve,requires,file,dirname,cleanpath,join,Pathname,self,inspect,length,warning,autoloads,required_trees,force_encoding,encoding,+,handle_block_given_call,def?,mid,module_name,count,accepts_using?,using_refinement,first,refinements_temp,arity_check?,defines_lambda,push_nesting?,nesting,new_temp,scope_locals,source_location,size,last,dynamic_require_severity,handle_part,===,is_a?,expand_path,split,error,each_with_object,pop"),self.$require("set"),self.$require("pathname"),self.$require("opal/nodes/base"),self.$require("opal/rewriters/break_finder"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"CallNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.sexp=$proto.compiler=nil,self.$handle("send"),self.$attr_reader("recvr","meth","arglist","iter"),$const_set($nesting[0],"SPECIALS",$hash2([],{})),$const_set($nesting[0],"OPERATORS",$hash2(["+","-","*","/","<","<=",">",">="],{"+":"plus","-":"minus","*":"times","/":"divide","<":"lt","<=":"le",">":"gt",">=":"ge"}).$freeze()),$defs(self,"$add_special",(function $$add_special(name,options){var $writer,handler=$$add_special.$$p||nil;return delete $$add_special.$$p,null==options&&(options=$hash2([],{})),$writer=[name,options],$send($$("SPECIALS"),"[]=",$to_a($writer)),$rb_minus($writer.length,1),$send(this,"define_method",["handle_"+name],handler.$to_proc())}),-2),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$b,$c,$yield=$$initialize.$$p||nil,self=this,args=nil,rest=nil,last_arg=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),$b=[].concat($to_a(self.sexp)),self.recvr=null==$b[0]?nil:$b[0],self.meth=null==$b[1]?nil:$b[1],args=$slice.call($b,2),$c=($c=($b=[].concat($to_a(args))).length-1)<0?0:$c,rest=$slice.call($b,0,$c),last_arg=null==$b[$c]?nil:$b[$c],$truthy(last_arg)&&$truthy(["iter","block_pass"]["$include?"](last_arg.$type()))?(self.iter=last_arg,args=rest):self.iter=nil,self.arglist=$send(self,"s",["arglist"].concat($to_a(args)))}),-1),$def(self,"$compile",(function(){try{return $send(this,"handle_special",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return $truthy(self["$record_method?"]())&&self.$compiler().$method_calls()["$<<"](self.$meth().$to_sym()),$truthy(self["$using_eval?"]())&&Opal.ret(self.$compile_eval_var()),$truthy(self["$using_irb?"]())&&Opal.ret(self.$compile_irb_var()),self.$default_compile()}),{$$arity:0,$$s:this})}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),self.$private(),$def(self,"$iter_has_break?",(function(){var finder=nil;return!!$truthy(this.$iter())&&((finder=$$$($$$($$("Opal"),"Rewriters"),"BreakFinder").$new()).$process(this.$iter()),finder["$found_break?"]())}),0),$def(self,"$invoke_using_send?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$iter())?$ret_or_1:this["$splat?"]()}),0),$def(self,"$invoke_using_refinement?",(function(){return this.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()}),0),$def(self,"$default_compile",(function(){var $writer=nil;return $truthy(this["$auto_await?"]())&&(this.$push("await "),$writer=[!0],$send(this.$scope(),"await_encountered=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(this["$invoke_using_refinement?"]())?this.$compile_using_refined_send():$truthy(this["$invoke_using_send?"]())?this.$compile_using_send():this.$compile_simple_call_chain(),this.$compile_break_catcher()}),0),$def(self,"$compile_using_send",(function(){return this.$helper("send"),this.$push("$send("),this.$compile_receiver(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")}),0),$def(self,"$compile_using_refined_send",(function(){return this.$helper("refined_send"),this.$push("$refined_send("),this.$compile_refinements(),this.$compile_receiver(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")}),0),$def(self,"$compile_receiver",(function(){return this.$push(this.$recv(this.$receiver_sexp()))}),0),$def(self,"$compile_method_name",(function(){return this.$push(", '"+this.$meth()+"'")}),0),$def(self,"$compile_arguments",(function(){return this.$push(", "),$truthy(this["$splat?"]())?this.$push(this.$expr(this.$arglist())):$truthy(this.$arglist().$children()["$empty?"]())?this.$push("[]"):this.$push("[",this.$expr(this.$arglist()),"]")}),0),$def(self,"$compile_block_pass",(function(){return $truthy(this.$iter())?this.$push(", ",this.$expr(this.$iter())):nil}),0),$def(self,"$compile_refinements",(function(){var refinements;return refinements=$send(this.$scope().$collect_refinements_temps(),"map",[],(function $$5(i){return null==i&&(i=nil),(null==$$5.$$s?this:$$5.$$s).$s("js_tmp",i)}),{$$arity:1,$$s:this}),this.$push(this.$expr($send(this,"s",["array"].concat($to_a(refinements)))),", ")}),0),$def(self,"$compile_break_catcher",(function(){return $truthy(this["$iter_has_break?"]())?(this.$unshift("return "),this.$unshift("(function(){var $brk = Opal.new_brk(); try {"),this.$line("} catch (err) { if (err === $brk) { return err.$v } else { throw err } }})()")):nil}),0),$def(self,"$compile_simple_call_chain",(function(){return this.$push(this.$recv(this.$receiver_sexp()),this.$method_jsid(),"(",this.$expr(this.$arglist()),")")}),0),$def(self,"$splat?",(function(){return $send(this.$arglist().$children(),"any?",[],(function(a){return null==a&&(a=nil),a.$type()["$=="]("splat")}),1)}),0),$def(self,"$receiver_sexp",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$recvr())?$ret_or_1:this.$s("self")}),0),$def(self,"$method_jsid",(function(){return this.$mid_to_jsid(this.$meth().$to_s())}),0),$def(self,"$record_method?",(function(){return!0}),0),$def(self,"$compile_irb_var",(function(){return $send(this,"with_temp",[],(function $$9(tmp){var lvar,call,self=null==$$9.$$s?this:$$9.$$s;return null==tmp&&(tmp=nil),lvar=self.$meth(),call=self.$s("send",self.$s("self"),self.$meth().$intern(),self.$s("arglist")),self.$push("(("+tmp+" = Opal.irb_vars."+lvar+") == null ? ",self.$expr(call)," : "+tmp+")")}),{$$arity:1,$$s:this})}),0),$def(self,"$compile_eval_var",(function(){return this.$push(this.$meth().$to_s())}),0),$def(self,"$using_irb?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.compiler["$irb?"]())?this.$scope()["$top?"]():$ret_or_2)?this["$variable_like?"]():$ret_or_1}),0),$def(self,"$using_eval?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.compiler["$eval?"]())?this.$scope()["$top?"]():$ret_or_2)?this.compiler.$scope_variables()["$include?"](this.$meth()):$ret_or_1}),0),$def(self,"$variable_like?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.$arglist()["$=="](this.$s("arglist")))?this.$recvr()["$nil?"]():$ret_or_2)?this.$iter()["$nil?"]():$ret_or_1}),0),$def(self,"$sexp_with_arglist",(function(){return this.sexp.$updated(nil,[this.$recvr(),this.$meth(),this.$arglist()])}),0),$def(self,"$auto_await?",(function(){var $ret_or_1,$ret_or_2,awaited_set=nil;return awaited_set=this.$compiler().$async_await(),$truthy($ret_or_1=$truthy($ret_or_2=awaited_set)?awaited_set["$!="](!0):$ret_or_2)?awaited_set["$match?"](this.$meth().$to_s()):$ret_or_1}),0),$def(self,"$handle_special",(function $$handle_special(){var compile_default=$$handle_special.$$p||nil,method=nil;return delete $$handle_special.$$p,$truthy($$("SPECIALS")["$include?"](this.$meth()))?(method=this.$method("handle_"+this.$meth()),$eqeq(method.$arity(),1)?method["$[]"](compile_default):method["$[]"]()):Opal.yieldX(compile_default,[])}),0),$send($$("OPERATORS"),"each",[],(function $CallNode$14(operator,name){var self=null==$CallNode$14.$$s?this:$CallNode$14.$$s;return null==operator&&(operator=nil),null==name&&(name=nil),$send(self,"add_special",[operator.$to_sym()],(function $$15(compile_default){var $a,self=null==$$15.$$s?this:$$15.$$s,lhs=nil,rhs=nil;return null==compile_default&&(compile_default=nil),$truthy(self["$invoke_using_refinement?"]())?compile_default.$call():$truthy(self.$compiler()["$inline_operators?"]())?($truthy(self["$record_method?"]())&&self.$compiler().$method_calls()["$<<"](operator.$to_sym()),self.$helper("rb_"+name),lhs=($a=[self.$expr(self.$recvr()),self.$expr(self.$arglist())])[0],rhs=$a[1],self.$push(self.$fragment("$rb_"+name+"(")),self.$push(lhs),self.$push(self.$fragment(", ")),self.$push(rhs),self.$push(self.$fragment(")"))):compile_default.$call()}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:self}),$send(self,"add_special",["require"],(function $CallNode$16(compile_default){var self=null==$CallNode$16.$$s?this:$CallNode$16.$$s,str=nil;return null==compile_default&&(compile_default=nil),str=$$("DependencyResolver").$new(self.$compiler(),self.$arglist().$children()["$[]"](0)).$resolve(),$truthy(str["$nil?"]())||self.$compiler().$requires()["$<<"](str),compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["require_relative"],(function $CallNode$17(){var self=null==$CallNode$17.$$s?this:$CallNode$17.$$s,arg=nil,file=nil,dir=nil;return arg=self.$arglist().$children()["$[]"](0),file=self.$compiler().$file(),$eqeq(arg.$type(),"str")&&(dir=$$("File").$dirname(file),self.$compiler().$requires()["$<<"](self.$Pathname(dir).$join(arg.$children()["$[]"](0)).$cleanpath().$to_s())),self.$push(self.$fragment(self.$scope().$self()+".$require("+file.$inspect()+"+ '/../' + ")),self.$push(self.$process(self.$arglist())),self.$push(self.$fragment(")"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["autoload"],(function $CallNode$18(compile_default){var self=null==$CallNode$18.$$s?this:$CallNode$18.$$s,args=nil,str=nil;return null==compile_default&&(compile_default=nil),args=self.$arglist().$children(),$eqeq(args.$length(),2)&&$eqeq(args["$[]"](0).$type(),"sym")&&(str=$$("DependencyResolver").$new(self.$compiler(),args["$[]"](1),"ignore").$resolve(),$truthy(str["$nil?"]())?self.$compiler().$warning("File for autoload of constant '"+args["$[]"](0).$children()["$[]"](0)+"' could not be bundled!"):(self.$compiler().$requires()["$<<"](str),self.$compiler().$autoloads()["$<<"](str))),compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["require_tree"],(function $CallNode$19(compile_default){var $a,rest,self=null==$CallNode$19.$$s?this:$CallNode$19.$$s,first_arg=nil,relative_path=nil,dir=nil,full_path=nil;return null==compile_default&&(compile_default=nil),first_arg=null==($a=[].concat($to_a(self.$arglist().$children())))[0]?nil:$a[0],rest=$slice.call($a,1),$eqeq(first_arg.$type(),"str")&&(relative_path=first_arg.$children()["$[]"](0),self.$compiler().$required_trees()["$<<"](relative_path),dir=$$("File").$dirname(self.$compiler().$file()),(full_path=self.$Pathname(dir).$join(relative_path).$cleanpath().$to_s()).$force_encoding(relative_path.$encoding()),first_arg=first_arg.$updated(nil,[full_path])),self.arglist=self.$arglist().$updated(nil,$rb_plus([first_arg],rest)),compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["block_given?"],(function $CallNode$20(){var self=null==$CallNode$20.$$s?this:$CallNode$20.$$s;return null==self.sexp&&(self.sexp=nil),self.$push(self.$compiler().$handle_block_given_call(self.sexp))}),{$$arity:0,$$s:self}),$send(self,"add_special",["__callee__"],(function $CallNode$21(){var self=null==$CallNode$21.$$s?this:$CallNode$21.$$s;return $truthy(self.$scope()["$def?"]())?self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())):self.$push(self.$fragment("nil"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["__method__"],(function $CallNode$22(){var self=null==$CallNode$22.$$s?this:$CallNode$22.$$s;return $truthy(self.$scope()["$def?"]())?self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())):self.$push(self.$fragment("nil"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["__dir__"],(function $CallNode$23(){var self=null==$CallNode$23.$$s?this:$CallNode$23.$$s;return self.$push($$("File").$dirname($$$($$("Opal"),"Compiler").$module_name(self.$compiler().$file())).$inspect())}),{$$arity:0,$$s:self}),$send(self,"add_special",["using"],(function $CallNode$24(compile_default){var self=null==$CallNode$24.$$s?this:$CallNode$24.$$s;return null==compile_default&&(compile_default=nil),$truthy(self.$scope()["$accepts_using?"]())&&$eqeq(self.$arglist().$children().$count(),1)?self.$using_refinement(self.$arglist().$children().$first()):compile_default.$call()}),{$$arity:1,$$s:self}),$def(self,"$using_refinement",(function(arg){var $a,prev,curr;return prev=null==($a=[].concat($to_a(this.$scope().$refinements_temp())))[0]?nil:$a[0],curr=null==$a[1]?nil:$a[1],$truthy(prev)?this.$push("("+curr+" = "+prev+".slice(), "+curr+".push(",this.$expr(arg),"), "+this.$scope().$self()+")"):this.$push("("+curr+" = [",this.$expr(arg),"], "+this.$scope().$self()+")")}),1),$send(self,"add_special",["debugger"],(function $CallNode$25(){var self=null==$CallNode$25.$$s?this:$CallNode$25.$$s;return self.$push(self.$fragment("debugger"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["__OPAL_COMPILER_CONFIG__"],(function $CallNode$26(){var self=null==$CallNode$26.$$s?this:$CallNode$26.$$s;return self.$push(self.$fragment("Opal.hash({ arity_check: "+self.$compiler()["$arity_check?"]()+" })"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["lambda"],(function $CallNode$27(compile_default){return null==compile_default&&(compile_default=nil),$send((null==$CallNode$27.$$s?this:$CallNode$27.$$s).$scope(),"defines_lambda",[],(function(){return compile_default.$call()}),0)}),{$$arity:1,$$s:self}),$send(self,"add_special",["nesting"],(function $CallNode$29(compile_default){var push_nesting,self=null==$CallNode$29.$$s?this:$CallNode$29.$$s;return null==compile_default&&(compile_default=nil),push_nesting=self["$push_nesting?"](),$truthy(push_nesting)&&self.$push("(Opal.Module.$$nesting = "+self.$scope().$nesting()+", "),compile_default.$call(),$truthy(push_nesting)?self.$push(")"):nil}),{$$arity:1,$$s:self}),$send(self,"add_special",["constants"],(function $CallNode$30(compile_default){var push_nesting,self=null==$CallNode$30.$$s?this:$CallNode$30.$$s;return null==compile_default&&(compile_default=nil),push_nesting=self["$push_nesting?"](),$truthy(push_nesting)&&self.$push("(Opal.Module.$$nesting = "+self.$scope().$nesting()+", "),compile_default.$call(),$truthy(push_nesting)?self.$push(")"):nil}),{$$arity:1,$$s:self}),$send(self,"add_special",["eval"],(function $CallNode$31(compile_default){var temp,scope_variables,self=null==$CallNode$31.$$s?this:$CallNode$31.$$s;return null==compile_default&&(compile_default=nil),$neqeq(self.$arglist().$children().$length(),1)||$not([self.$s("self"),nil]["$include?"](self.$recvr()))?compile_default.$call():(self.$scope().$nesting(),temp=self.$scope().$new_temp(),scope_variables=$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),self.$push("("+temp+" = ",self.$expr(self.$arglist())),self.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+temp),self.$push(", {scope_variables: ",scope_variables),self.$push(", arity_check: "+self.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),self.$push(self.$scope().$self()+".$eval("+temp+"))"))}),{$$arity:1,$$s:self}),$send(self,"add_special",["local_variables"],(function $CallNode$32(compile_default){var scope_variables,self=null==$CallNode$32.$$s?this:$CallNode$32.$$s;return null==compile_default&&(compile_default=nil),$truthy([self.$s("self"),nil]["$include?"](self.$recvr()))?(scope_variables=$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),self.$push(scope_variables)):compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["binding"],(function $CallNode$33(compile_default){var self=null==$CallNode$33.$$s?this:$CallNode$33.$$s;return null==compile_default&&(compile_default=nil),$truthy(self.$recvr()["$nil?"]())?(self.$scope().$nesting(),self.$push("Opal.Binding.$new("),self.$push(" function($code, $value) {"),self.$push(" if (typeof $value === 'undefined') {"),self.$push(" return eval($code);"),self.$push(" }"),self.$push(" else {"),self.$push(" return eval($code + ' = $value');"),self.$push(" }"),self.$push(" },"),self.$push(" ",$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),self.$push(" ",self.$scope().$self(),","),self.$push(" ",self.$source_location()),self.$push(")")):compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["__await__"],(function $CallNode$34(compile_default){var self=null==$CallNode$34.$$s?this:$CallNode$34.$$s,$writer=nil;return null==compile_default&&(compile_default=nil),$truthy(self.$compiler().$async_await())?(self.$push(self.$fragment("(await (")),self.$push(self.$process(self.$recvr())),self.$push(self.$fragment("))")),$writer=[!0],$send(self.$scope(),"await_encountered=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):compile_default.$call()}),{$$arity:1,$$s:self}),$def(self,"$push_nesting?",(function(){var $ret_or_1,recv=nil,$ret_or_2=nil,$ret_or_3=nil;return recv=this.$children().$first(),$truthy($ret_or_1=this.$children().$size()["$=="](2))?$truthy($ret_or_2=recv["$nil?"]())?$ret_or_2:$truthy($ret_or_3=recv.$type()["$=="]("const"))?recv.$children().$last()["$=="]("Module"):$ret_or_3:$ret_or_1}),0),function($base,$super,$parent_nesting){var self=$klass($base,null,"DependencyResolver"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.compiler=$proto.sexp=$proto.missing_dynamic_require=nil,$def(self,"$initialize",(function(compiler,sexp,missing_dynamic_require){var $ret_or_1;return null==missing_dynamic_require&&(missing_dynamic_require=nil),this.compiler=compiler,this.sexp=sexp,this.missing_dynamic_require=$truthy($ret_or_1=missing_dynamic_require)?$ret_or_1:this.compiler.$dynamic_require_severity()}),-3),$def(self,"$resolve",(function(){return this.$handle_part(this.sexp)}),0),$def(self,"$handle_part",(function(sexp,missing_dynamic_require){var $a,$b,$ret_or_1=nil,recv=nil,meth=nil,args=nil,parts=nil;if(null==missing_dynamic_require&&(missing_dynamic_require=this.missing_dynamic_require),$truthy(sexp)){if($eqeqeq("str",$ret_or_1=sexp.$type()))return sexp.$children()["$[]"](0);if($eqeqeq("dstr",$ret_or_1))return $send(sexp.$children(),"map",[],(function $$36(i){return null==i&&(i=nil),(null==$$36.$$s?this:$$36.$$s).$handle_part(i)}),{$$arity:1,$$s:this}).$join();if($eqeqeq("begin",$ret_or_1)){if($eqeq(sexp.$children().$length(),1))return this.$handle_part(sexp.$children()["$[]"](0))}else if($eqeqeq("send",$ret_or_1)){if($b=sexp.$children(),recv=null==($a=$to_ary($b))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),parts=$send(args,"map",[],(function $$37(s){return null==s&&(s=nil),(null==$$37.$$s?this:$$37.$$s).$handle_part(s,"ignore")}),{$$arity:1,$$s:this}),$truthy(parts["$include?"](nil)))return nil;if($truthy(recv["$is_a?"]($$$($$$($Opal,"AST"),"Node")))&&$eqeq(recv.$type(),"const")&&$eqeq(recv.$children().$last(),"File")){if($eqeq(meth,"expand_path"))return $send(this,"expand_path",$to_a(parts));if($eqeq(meth,"join"))return this.$expand_path(parts.$join("/"));if($eqeq(meth,"dirname"))return this.$expand_path(parts["$[]"](0).$split("/")["$[]"]($range(0,-1,!0)).$join("/"))}else if($eqeq(meth,"__dir__"))return $$("File").$dirname($$$($$("Opal"),"Compiler").$module_name(this.compiler.$file()))}}return $eqeqeq("error",$ret_or_1=missing_dynamic_require)?this.compiler.$error("Cannot handle dynamic require",this.sexp.$line()):$eqeqeq("warning",$ret_or_1)?this.compiler.$warning("Cannot handle dynamic require",this.sexp.$line()):nil}),-2),$def(self,"$expand_path",(function(path,base){return null==base&&(base=""),$send((base+"/"+path).$split("/"),"each_with_object",[[]],(function(part,p){return null==part&&(part=nil),null==p&&(p=nil),$eqeq(part,"")?nil:$eqeq(part,"..")?p.$pop():p["$<<"](part)}),2).$join("/")}),-2)}($nesting[0],0,$nesting)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/csend"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$def=Opal.def;return Opal.add_stubs("require,handle,helper,conditional_send,recv,receiver_sexp,push,compile_method_name,compile_arguments,compile_block_pass"),self.$require("opal/nodes/call"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"CSendNode");return self.$handle("csend"),$def(self,"$default_compile",(function(){return this.$helper("send"),$send(this,"conditional_send",[this.$recv(this.$receiver_sexp())],(function $$1(receiver_temp){var self=null==$$1.$$s?this:$$1.$$s;return null==receiver_temp&&(receiver_temp=nil),self.$push("$send(",receiver_temp),self.$compile_method_name(),self.$compile_arguments(),self.$compile_block_pass(),self.$push(")")}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("CallNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/call_special"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$send=Opal.send;return Opal.add_stubs("require,handle,children,push,recv,recvr,expr,property,value,<<,default_compile,meth,receiver_sexp,method_jsid,compile_arguments,iter,s,lhs,rhs,==,type,first,map,flatten,scan,to_proc,empty?,stmt?,process"),self.$require("opal/nodes/base"),self.$require("opal/nodes/call"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"JsAttrNode");self.$handle("jsattr"),self.$children("recvr","property"),$def(self,"$compile",(function(){return this.$push(this.$recv(this.$recvr()),"[",this.$expr(this.$property()),"]")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"JsAttrAsgnNode");self.$handle("jsattrasgn"),self.$children("recvr","property","value"),$def(self,"$compile",(function(){return this.$push(this.$recv(this.$recvr()),"[",this.$expr(this.$property()),"] = ",this.$expr(this.$value()))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"JsCallNode"),$proto=self.$$prototype;$proto.iter=$proto.arglist=nil,self.$handle("jscall"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),$truthy(self.iter)&&(self.arglist=self.arglist["$<<"](self.iter)),self.iter=nil}),-1),$def(self,"$compile",(function(){return this.$default_compile()}),0),$def(self,"$method_jsid",(function(){return"."+this.$meth()}),0),$def(self,"$compile_using_send",(function(){return this.$push(this.$recv(this.$receiver_sexp()),this.$method_jsid(),".apply(null"),this.$compile_arguments(),$truthy(this.$iter())&&this.$push(".concat(",this.$expr(this.$iter()),")"),this.$push(")")}),0)}($nesting[0],$$("CallNode")),function($base,$super){var self=$klass($base,$super,"Match3Node");return self.$$prototype.level=nil,self.$handle("match_with_lvasgn"),self.$children("lhs","rhs"),$def(self,"$compile",(function(){var sexp=nil,re=nil,names=nil,names_def=nil;return sexp=this.$s("send",this.$lhs(),"=~",this.$rhs()),$eqeq(this.$lhs().$type(),"regexp")&&$eqeq(this.$lhs().$children().$first().$type(),"str")&&(re=this.$lhs().$children().$first().$children().$first(),names=$send(re.$scan(/\(\?<([^>]*)>/).$flatten(),"map",[],"to_sym".$to_proc()),$truthy(names["$empty?"]())||(names_def=this.$s("lvasgn","$m3names",this.$s("if",this.$s("gvar","$~"),this.$s("send",this.$s("gvar","$~"),"named_captures"),this.$s("hash"))),names=$send(names,"map",[],(function $$1(name){var self=null==$$1.$$s?this:$$1.$$s;return null==name&&(name=nil),self.$s("lvasgn",name,self.$s("send",self.$s("lvar","$m3names"),"[]",self.$s("sym",name)))}),{$$arity:1,$$s:this}),sexp=$truthy(this["$stmt?"]())?$send(this,"s",["begin",sexp,names_def].concat($to_a(names))):$send(this,"s",["begin",this.$s("lvasgn","$m3tmp",sexp),names_def].concat($to_a(names)).concat([this.$s("lvar","$m3tmp")])))),this.$push(this.$process(sexp,this.level))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/scope"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$def=Opal.def,$send=Opal.send,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$not=Opal.not,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$hash2=Opal.hash2;return Opal.add_stubs("require,attr_accessor,attr_reader,indent,scope,compiler,scope=,-,==,iter?,!,class?,dup,push,map,ivars,gvars,empty?,<<,parser_indent,join,+,fragment,def_in_class?,add_proto_ivar,include?,has_local?,|,scope_locals,reject,start_with?,to_s,has_temp?,pop,next_temp,loop,succ,uses_block!,identify!,valid_name?,mid,compact,parent,name,scope_name,unique_temp,lambda?,def?,type,nil?,rescue_else_sexp,last,class,collect_refinements_temps,add_scope_local,new_refinements_temp,identity,block_name=,add_temp,block_name,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ScopeNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.type=$proto.is_lambda=$proto.lambda_definition=$proto.defs=$proto.parent=$proto.temps=$proto.locals=$proto.proto_ivars=$proto.compiler=$proto.ivars=$proto.gvars=$proto.args=$proto.queue=$proto.while_stack=$proto.identity=$proto.uses_block=$proto.rescues=$proto.in_resbody=$proto.in_ensure=$proto.next_retry_id=$proto.refinements_temp=$proto.block_prepared=nil,self.$attr_accessor("parent"),self.$attr_accessor("name"),self.$attr_accessor("block_name"),self.$attr_reader("scope_name"),self.$attr_reader("locals"),self.$attr_reader("ivars"),self.$attr_reader("gvars"),self.$attr_accessor("mid"),self.$attr_accessor("defs"),self.$attr_reader("methods"),self.$attr_accessor("catch_return","has_break","has_retry"),self.$attr_accessor("rescue_else_sexp"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),self.locals=[],self.temps=[],self.args=[],self.ivars=[],self.gvars=[],self.parent=nil,self.queue=[],self.unique="a",self.while_stack=[],self.identity=nil,self.defs=nil,self.methods=[],self.uses_block=!1,self.in_ensure=!1,self.proto_ivars=[]}),-1),$def(self,"$in_scope",(function $$in_scope(){var $yield=$$in_scope.$$p||nil;return delete $$in_scope.$$p,$send(this,"indent",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s,$writer=nil;return null==self.parent&&(self.parent=nil),self.parent=self.$compiler().$scope(),$writer=[self],$send(self.$compiler(),"scope=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],Opal.yield1($yield,self),$writer=[self.parent],$send(self.$compiler(),"scope=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:0,$$s:this})}),0),$def(self,"$class_scope?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.type["$=="]("class"))?$ret_or_1:this.type["$=="]("module")}),0),$def(self,"$class?",(function(){return this.type["$=="]("class")}),0),$def(self,"$module?",(function(){return this.type["$=="]("module")}),0),$def(self,"$sclass?",(function(){return this.type["$=="]("sclass")}),0),$def(self,"$top?",(function(){return this.type["$=="]("top")}),0),$def(self,"$iter?",(function(){return this.type["$=="]("iter")}),0),$def(self,"$def?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.type["$=="]("def"))?$ret_or_1:this.type["$=="]("defs")}),0),$def(self,"$lambda?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$iter?"]())?this.is_lambda:$ret_or_1}),0),$def(self,"$is_lambda!",(function(){return this.is_lambda=!0}),0),$def(self,"$defines_lambda",(function $$defines_lambda(){var $yield=$$defines_lambda.$$p||nil;return delete $$defines_lambda.$$p,this.lambda_definition=!0,Opal.yieldX($yield,[]),this.lambda_definition=!1}),0),$def(self,"$lambda_definition?",(function(){return this.lambda_definition}),0),$def(self,"$def_in_class?",(function(){var $ret_or_1,$ret_or_2,$ret_or_3;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=this.defs["$!"]())?this.type["$=="]("def"):$ret_or_3)?this.parent:$ret_or_2)?this.parent["$class?"]():$ret_or_1}),0),$def(self,"$to_vars",(function(){var indent,vars=nil,iv=nil,gv=nil,str=nil;return vars=this.temps.$dup(),$send(vars,"push",$to_a($send(this.locals,"map",[],(function(l){return null==l&&(l=nil),l+" = nil"}),1))),iv=$send(this.$ivars(),"map",[],(function(ivar){return null==ivar&&(ivar=nil),"if (self"+ivar+" == null) self"+ivar+" = nil;\n"}),1),gv=$send(this.$gvars(),"map",[],(function(gvar){return null==gvar&&(gvar=nil),"if ($gvars"+gvar+" == null) $gvars"+gvar+" = nil;\n"}),1),$truthy(this["$class?"]())&&$not(this.proto_ivars["$empty?"]())&&vars["$<<"]("$proto = self.$$prototype"),indent=this.compiler.$parser_indent(),str=$truthy(vars["$empty?"]())?"":"var "+vars.$join(", ")+";\n",$truthy(this.$ivars()["$empty?"]())||(str=$rb_plus(str,""+indent+iv.$join(indent))),$truthy(this.$gvars()["$empty?"]())||(str=$rb_plus(str,""+indent+gv.$join(indent))),$truthy(this["$class?"]())&&$not(this.proto_ivars["$empty?"]())&&(str=str+"\n"+indent+$send(this.proto_ivars,"map",[],(function(i){return null==i&&(i=nil),"$proto"+i}),1).$join(" = ")+" = nil;"),this.$fragment(str)}),0),$def(self,"$add_scope_ivar",(function(ivar){return $truthy(this["$def_in_class?"]())?this.parent.$add_proto_ivar(ivar):$truthy(this.ivars["$include?"](ivar))?nil:this.ivars["$<<"](ivar)}),1),$def(self,"$add_scope_gvar",(function(gvar){return $truthy(this.gvars["$include?"](gvar))?nil:this.gvars["$<<"](gvar)}),1),$def(self,"$add_proto_ivar",(function(ivar){return $truthy(this.proto_ivars["$include?"](ivar))?nil:this.proto_ivars["$<<"](ivar)}),1),$def(self,"$add_arg",(function(arg){return $truthy(this.args["$include?"](arg))||this.args["$<<"](arg),arg}),1),$def(self,"$add_scope_local",(function(local){return $truthy(this["$has_local?"](local))?nil:this.locals["$<<"](local)}),1),$def(self,"$has_local?",(function(local){return!!($truthy(this.locals["$include?"](local))||$truthy(this.args["$include?"](local))||$truthy(this.temps["$include?"](local)))||!(!$truthy(this.parent)||!$eqeq(this.type,"iter"))&&this.parent["$has_local?"](local)}),1),$def(self,"$scope_locals",(function(){var locals;return locals=this.locals["$|"](this.args)["$|"]($truthy(this.parent)&&$eqeq(this.type,"iter")?this.parent.$scope_locals():[]),$send(locals,"reject",[],(function(i){return null==i&&(i=nil),i.$to_s()["$start_with?"]("$")}),1)}),0),$def(self,"$add_scope_temp",(function(tmp){return $truthy(this["$has_temp?"](tmp))?nil:this.temps.$push(tmp)}),1),$def(self,"$has_temp?",(function(tmp){return this.temps["$include?"](tmp)}),1),$def(self,"$new_temp",(function(){var tmp;return $truthy(this.queue["$empty?"]())?(tmp=this.$next_temp(),this.temps["$<<"](tmp),tmp):this.queue.$pop()}),0),$def(self,"$next_temp",(function(){var self=this,tmp=nil;return tmp=nil,function(){var $brk=Opal.new_brk();try{$send(self,"loop",[],(function $$20(){var self=null==$$20.$$s?this:$$20.$$s;if(null==self.unique&&(self.unique=nil),tmp="$"+self.unique,self.unique=self.unique.$succ(),$truthy(self["$has_local?"](tmp)))return nil;Opal.brk(nil,$brk)}),{$$arity:0,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),tmp}),0),$def(self,"$queue_temp",(function(name){return this.queue["$<<"](name)}),1),$def(self,"$push_while",(function(){var info;return info=$hash2([],{}),this.while_stack.$push(info),info}),0),$def(self,"$pop_while",(function(){return this.while_stack.$pop()}),0),$def(self,"$in_while?",(function(){return this.while_stack["$empty?"]()["$!"]()}),0),$def(self,"$uses_block!",(function(){return $eqeq(this.type,"iter")&&$truthy(this.parent)?this.parent["$uses_block!"]():(this.uses_block=!0,this["$identify!"]())}),0),$def(self,"$identify!",(function(name){var $ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return null==name&&(name=nil),$truthy(this.identity)||($truthy(this["$valid_name?"](this.$mid()))?this.identity="$$"+this.$mid():(name=$truthy($ret_or_1=name)?$ret_or_1:[$truthy($ret_or_2=this.$parent())?$truthy($ret_or_3=this.$parent().$name())?$ret_or_3:this.$parent().$scope_name():$ret_or_2,this.$mid()].$compact().$join("_"),this.identity=this.compiler.$unique_temp(name))),this.identity}),-1),self.$attr_reader("identity"),$def(self,"$find_parent_def",(function(){var scope=nil;for(scope=this;$truthy(scope=scope.$parent());)if($truthy(scope["$def?"]())||$truthy(scope["$lambda?"]()))return scope;return nil}),0),$def(self,"$super_chain",(function(){var $a,chain=nil,scope=nil,defn=nil,mid=nil;for(chain=($a=[[],this,"null","null"])[0],scope=$a[1],defn=$a[2],mid=$a[3];$truthy(scope);){if(!$eqeq(scope.$type(),"iter")){if($truthy(["def","defs"]["$include?"](scope.$type()))){defn=scope["$identify!"](),mid="'"+scope.$mid()+"'";break}break}chain["$<<"](scope["$identify!"]()),$truthy(scope.$parent())&&(scope=scope.$parent())}return[chain,defn,mid]}),0),$def(self,"$uses_block?",(function(){return this.uses_block}),0),$def(self,"$has_rescue_else?",(function(){return this.$rescue_else_sexp()["$nil?"]()["$!"]()}),0),$def(self,"$in_rescue",(function $$in_rescue(node){var $ret_or_1,result,$yield=$$in_rescue.$$p||nil;return delete $$in_rescue.$$p,this.rescues=$truthy($ret_or_1=this.rescues)?$ret_or_1:[],this.rescues.$push(node),result=Opal.yieldX($yield,[]),this.rescues.$pop(),result}),1),$def(self,"$current_rescue",(function(){return this.rescues.$last()}),0),$def(self,"$in_resbody",(function $$in_resbody(){var result,$yield=$$in_resbody.$$p||nil;return delete $$in_resbody.$$p,$yield===nil?nil:(this.in_resbody=!0,result=Opal.yieldX($yield,[]),this.in_resbody=!1,result)}),0),$def(self,"$in_resbody?",(function(){return this.in_resbody}),0),$def(self,"$in_ensure",(function $$in_ensure(){var result,$yield=$$in_ensure.$$p||nil;return delete $$in_ensure.$$p,$yield===nil?nil:(this.in_ensure=!0,result=Opal.yieldX($yield,[]),this.in_ensure=!1,result)}),0),$def(self,"$in_ensure?",(function(){return this.in_ensure}),0),$def(self,"$gen_retry_id",(function(){var $ret_or_1;return this.next_retry_id=$truthy($ret_or_1=this.next_retry_id)?$ret_or_1:"retry_0",this.next_retry_id=this.next_retry_id.$succ()}),0),$def(self,"$accepts_using?",(function(){return[$$("TopNode"),$$("ModuleNode"),$$("ClassNode"),$$("IterNode")]["$include?"](this.$class())}),0),$def(self,"$collect_refinements_temps",(function(temps){return null==temps&&(temps=[]),$truthy(this.refinements_temp)&&temps["$<<"](this.refinements_temp),$truthy(this.$parent())?this.$parent().$collect_refinements_temps(temps):temps}),-1),$def(self,"$new_refinements_temp",(function(){var var$;return var$=this.$compiler().$unique_temp("$refn"),this.$add_scope_local(var$),var$}),0),$def(self,"$refinements_temp",(function(){var $a,prev,curr;return prev=($a=[this.refinements_temp,this.$new_refinements_temp()])[0],curr=$a[1],this.refinements_temp=curr,[prev,curr]}),0),$def(self,"$self",(function(){return this.define_self=!0,"self"}),0),$def(self,"$nesting",(function(){return this.define_nesting=!0,"$nesting"}),0),$def(self,"$relative_access",(function(){return this.define_relative_access=this.define_nesting=!0,"$$"}),0),$def(self,"$prepare_block",(function(block_name){var scope_name,$writer=nil;return null==block_name&&(block_name=nil),scope_name=this.$scope().$identity(),$truthy(block_name)&&($send(this,"block_name=",$to_a($writer=[block_name])),$writer[$rb_minus($writer.length,1)]),this.$add_temp(this.$block_name()+" = "+scope_name+".$$p || nil"),$truthy(this.block_prepared)?nil:(this.$line("delete "+scope_name+".$$p;"),this.block_prepared=!0)}),-1),self.$attr_accessor("await_encountered")}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/module"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_ary=Opal.to_ary,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$def=Opal.def;return Opal.add_stubs("require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,line,in_scope,name=,scope,-,compile_body,await_encountered,await_encountered=,parent,+,nesting,private,cid,expr,stmt,returns,compiler,empty_line,add_temp,to_vars"),self.$require("opal/nodes/scope"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ModuleNode"),$proto=self.$$prototype;return $proto.define_nesting=$proto.define_relative_access=nil,self.$handle("module"),self.$children("cid","body"),$def(self,"$compile",(function(){var $a,$b,name,base,await_begin=nil,await_end=nil,async=nil,$writer=nil;return $b=this.$name_and_base(),$a=$to_ary($b),name=null==$a[0]?nil:$a[0],base=null==$a[1]?nil:$a[1],this.$helper("module"),$truthy(this.$body()["$nil?"]())?$truthy(this["$stmt?"]())?this.$unshift("$module(",base,", '"+name+"')"):this.$unshift("($module(",base,", '"+name+"'), nil)"):(this.$line(" var self = $module($base, '"+name+"');"),$send(this,"in_scope",[],(function $$1(){var $writer,self=null==$$1.$$s?this:$$1.$$s;return $writer=[name],$send(self.$scope(),"name=",$to_a($writer)),$rb_minus($writer.length,1),self.$compile_body()}),{$$arity:0,$$s:this}),$truthy(this.$await_encountered())?(await_begin="(await ",await_end=")",async="async ",$writer=[!0],$send(this.$parent(),"await_encountered=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):(await_begin=($a=["","",""])[0],await_end=$a[1],async=$a[2]),this.$unshift(await_begin+"("+async+"function($base"+($truthy(this.define_nesting)?", $parent_nesting":nil)+") {"),this.$line("})(",base,($truthy(this.define_nesting)?$rb_plus(", ",this.$scope().$nesting()):nil)+")"+await_end))}),0),self.$private(),$def(self,"$name_and_base",(function(){var $a,$b,name,base=nil;return $b=this.$cid().$children(),base=null==($a=$to_ary($b))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],$truthy(base["$nil?"]())?[name,this.$scope().$nesting()+"[0]"]:[name,this.$expr(base)]}),0),$def(self,"$compile_body",(function(){var body_code;return body_code=this.$stmt(this.$compiler().$returns(this.$body())),this.$empty_line(),$truthy(this.define_nesting)&&this.$add_temp("$nesting = [self].concat($parent_nesting)"),$truthy(this.define_relative_access)&&this.$add_temp("$$ = Opal.$r($nesting)"),this.$line(this.$scope().$to_vars()),this.$line(body_code)}),0)}($nesting[0],$$("ScopeNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_ary=Opal.to_ary,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$def=Opal.def;return Opal.add_stubs("require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,super_code,line,in_scope,name=,scope,-,compile_body,await_encountered,await_encountered=,parent,+,nesting,sup,expr"),self.$require("opal/nodes/module"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ClassNode");return self.$$prototype.define_nesting=nil,self.$handle("class"),self.$children("cid","sup","body"),$def(self,"$compile",(function(){var $a,$b,name,base,await_begin=nil,await_end=nil,async=nil,$writer=nil;return $b=this.$name_and_base(),$a=$to_ary($b),name=null==$a[0]?nil:$a[0],base=null==$a[1]?nil:$a[1],this.$helper("klass"),$truthy(this.$body()["$nil?"]())?$truthy(this["$stmt?"]())?this.$unshift("$klass(",base,", ",this.$super_code(),", '"+name+"')"):this.$unshift("($klass(",base,", ",this.$super_code(),", '"+name+"'), nil)"):(this.$line(" var self = $klass($base, $super, '"+name+"');"),$send(this,"in_scope",[],(function $$1(){var $writer,self=null==$$1.$$s?this:$$1.$$s;return $writer=[name],$send(self.$scope(),"name=",$to_a($writer)),$rb_minus($writer.length,1),self.$compile_body()}),{$$arity:0,$$s:this}),$truthy(this.$await_encountered())?(await_begin="(await ",await_end=")",async="async ",$writer=[!0],$send(this.$parent(),"await_encountered=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):(await_begin=($a=["","",""])[0],await_end=$a[1],async=$a[2]),this.$unshift(await_begin+"("+async+"function($base, $super"+($truthy(this.define_nesting)?", $parent_nesting":nil)+") {"),this.$line("})(",base,", ",this.$super_code(),($truthy(this.define_nesting)?$rb_plus(", ",this.$scope().$nesting()):nil)+")"+await_end))}),0),$def(self,"$super_code",(function(){return $truthy(this.$sup())?this.$expr(this.$sup()):"null"}),0)}($nesting[0],$$("ModuleNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/singleton_class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting"),self.$require("opal/nodes/scope"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"SingletonClassNode");return self.$handle("sclass"),self.$children("object","body"),$def(self,"$compile",(function(){return this.$push("(function(self, $parent_nesting) {"),$send(this,"in_scope",[],(function $$1(){var body_stmt,self=null==$$1.$$s?this:$$1.$$s;return null==self.define_nesting&&(self.define_nesting=nil),null==self.define_relative_access&&(self.define_relative_access=nil),body_stmt=self.$stmt(self.$compiler().$returns(self.$body())),$truthy(self.define_nesting)&&self.$add_temp("$nesting = [self].concat($parent_nesting)"),$truthy(self.define_relative_access)&&self.$add_temp("$$ = Opal.$r($nesting)"),self.$line(self.$scope().$to_vars()),self.$line(body_stmt)}),{$$arity:0,$$s:this}),this.$line("})(Opal.get_singleton_class(",this.$recv(this.$object()),"), "+this.$scope().$nesting()+")")}),0)}($nesting[0],$$("ScopeNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/arg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,add_arg,scope,name,push,to_s"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ArgNode");return self.$handle("arg"),self.$children("name"),$def(self,"$compile",(function(){return this.$scope().$add_arg(this.$name()),this.$push(this.$name().$to_s())}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/arity_check"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$def=Opal.def,$send=Opal.send,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$not=Opal.not,$rb_lt=Opal.rb_lt,$rb_plus=Opal.rb_plus,$rb_gt=Opal.rb_gt;return Opal.add_stubs("require,handle,children,new,args_node,args,optargs,restarg,postargs,kwargs,kwoptargs,kwrestarg,kwnilarg,arity,arity=,scope,-,arity_check?,compiler,empty?,arity_checks,helper,inspect,to_s,mid,line,push,join,compact,size,all_args,!,-@,<,+,>,<<,has_only_optional_kwargs?,any?,negative_arity,positive_arity,select,include?,type,has_required_kwargs?,all?,==,def?,class_scope?,top?,parent,class?,name,module?,identity"),self.$require("opal/nodes/base"),self.$require("opal/rewriters/arguments"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ArityCheckNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.kwargs=$proto.kwoptargs=$proto.kwrestarg=$proto.all_args=$proto.args=$proto.optargs=$proto.restarg=$proto.postargs=$proto.arity_checks=nil,self.$handle("arity_check"),self.$children("args_node"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this,arguments$=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),arguments$=$$$($$("Rewriters"),"Arguments").$new(self.$args_node().$children()),self.args=arguments$.$args(),self.optargs=arguments$.$optargs(),self.restarg=arguments$.$restarg(),self.postargs=arguments$.$postargs(),self.kwargs=arguments$.$kwargs(),self.kwoptargs=arguments$.$kwoptargs(),self.kwrestarg=arguments$.$kwrestarg(),self.kwnilarg=arguments$.$kwnilarg()}),-1),$def(self,"$compile",(function(){var $writer,meth=nil;return $writer=[this.$arity()],$send(this.$scope(),"arity=",$to_a($writer)),$rb_minus($writer.length,1),$truthy(this.$compiler()["$arity_check?"]())?$truthy(this.$arity_checks()["$empty?"]())?nil:(this.$helper("ac"),meth=this.$scope().$mid().$to_s().$inspect(),this.$line("var $arity = arguments.length;"),this.$push(" if ("+this.$arity_checks().$join(" || ")+") { $ac($arity, "+this.$arity()+", this, "+meth+"); }")):nil}),0),$def(self,"$kwargs",(function(){return[].concat($to_a(this.kwargs)).concat($to_a(this.kwoptargs)).concat([this.kwrestarg]).$compact()}),0),$def(self,"$all_args",(function(){var $ret_or_1;return this.all_args=$truthy($ret_or_1=this.all_args)?$ret_or_1:[].concat($to_a(this.args)).concat($to_a(this.optargs)).concat([this.restarg]).concat($to_a(this.postargs)).concat($to_a(this.$kwargs())).$compact()}),0),$def(self,"$arity_checks",(function(){var $a,arity=nil,min_arity=nil,max_arity=nil;return $truthy(null!=($a=this.arity_checks)&&$a!==nil?"instance-variable":nil)||(arity=this.$all_args().$size(),arity=$rb_minus(arity,this.optargs.$size()),$truthy(this.restarg)&&(arity=$rb_minus(arity,1)),arity=$rb_minus(arity,this.$kwargs().$size()),($not(this.optargs["$empty?"]())||$not(this.$kwargs()["$empty?"]())||$truthy(this.restarg))&&(arity=$rb_minus(arity["$-@"](),1)),this.arity_checks=[],$truthy($rb_lt(arity,0))?(min_arity=$rb_plus(arity,1)["$-@"](),max_arity=this.$all_args().$size(),$truthy($rb_gt(min_arity,0))&&this.arity_checks["$<<"]("$arity < "+min_arity),$truthy(this.restarg)||this.arity_checks["$<<"]("$arity > "+max_arity)):this.arity_checks["$<<"]("$arity !== "+arity)),this.arity_checks}),0),$def(self,"$arity",(function(){return $truthy(this.restarg)||$truthy(this.optargs["$any?"]())||$truthy(this["$has_only_optional_kwargs?"]())?this.$negative_arity():this.$positive_arity()}),0),$def(self,"$negative_arity",(function(){var result=nil;return result=$send(this.$all_args(),"select",[],(function(arg){return null==arg&&(arg=nil),["arg","mlhs"]["$include?"](arg.$type())}),1).$size(),$truthy(this["$has_required_kwargs?"]())&&(result=$rb_plus(result,1)),result=$rb_minus(result["$-@"](),1)}),0),$def(self,"$positive_arity",(function(){var result=nil;return result=this.$all_args().$size(),result=$rb_minus(result,this.$kwargs().$size()),$truthy(this.$kwargs()["$any?"]())&&(result=$rb_plus(result,1)),result}),0),$def(self,"$has_only_optional_kwargs?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$kwargs()["$any?"]())?$send(this.$kwargs(),"all?",[],(function(arg){return null==arg&&(arg=nil),["kwoptarg","kwrestarg"]["$include?"](arg.$type())}),1):$ret_or_1}),0),$def(self,"$has_required_kwargs?",(function(){return $send(this.$kwargs(),"any?",[],(function(arg){return null==arg&&(arg=nil),arg.$type()["$=="]("kwarg")}),1)}),0)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"IterArityCheckNode");return self.$handle("iter_arity_check"),$def(self,"$compile",(function(){var $writer,parent_scope=nil,$ret_or_1=nil,$ret_or_2=nil,context=nil,identity=nil;if($writer=[this.$arity()],$send(this.$scope(),"arity=",$to_a($writer)),$rb_minus($writer.length,1),!$truthy(this.$compiler()["$arity_check?"]()))return nil;if($truthy(this.$arity_checks()["$empty?"]()))return nil;for(parent_scope=this.$scope();!$truthy($truthy($ret_or_1=$truthy($ret_or_2=parent_scope["$def?"]())?$ret_or_2:parent_scope["$class_scope?"]())?$ret_or_1:parent_scope["$top?"]());)parent_scope=parent_scope.$parent();return context=$truthy(parent_scope["$top?"]())?"'
    '":$truthy(parent_scope["$def?"]())?"'"+parent_scope.$mid()+"'":$truthy(parent_scope["$class?"]())?"''":$truthy(parent_scope["$module?"]())?"''":nil,identity=this.$scope().$identity(),this.$line("if ("+identity+".$$is_lambda || "+identity+".$$define_meth) {"),this.$line(" var $arity = arguments.length;"),this.$line(" if ("+this.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+this.$arity()+", "+context+"); }"),this.$line("}")}),0)}($nesting[0],$$("ArityCheckNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,helper,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"EnsureKwargsAreKwargs");return self.$handle("ensure_kwargs_are_kwargs"),$def(self,"$compile",(function(){return this.$helper("hash2"),this.$line("if ($kwargs == null) {"),this.$line(" $kwargs = $hash2([], {});"),this.$line("} else if (!$kwargs.$$is_hash) {"),this.$line(" throw Opal.ArgumentError.$new('expected kwargs');"),this.$line("}")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,uses_block!,scope,add_arg,name,prepare_block"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractBlockarg");return self.$handle("extract_blockarg"),self.$children("name"),$def(self,"$compile",(function(){return this.$scope()["$uses_block!"](),this.$scope().$add_arg(this.$name()),this.$scope().$prepare_block(this.$name())}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractKwarg");return self.$$prototype.sexp=nil,self.$handle("extract_kwarg"),self.$children("lvar_name"),$def(self,"$compile",(function(){var key_name=nil;return key_name=this.sexp.$meta()["$[]"]("arg_name"),this.$scope().$used_kwargs()["$<<"](key_name),this.$add_temp(this.$lvar_name()),this.$line("if (!Opal.hasOwnProperty.call($kwargs.$$smap, '"+key_name+"')) {"),this.$line(" throw Opal.ArgumentError.$new('missing keyword: "+key_name+"');"),this.$line("}"),this.$line(this.$lvar_name()+" = $kwargs.$$smap["+key_name.$to_s().$inspect()+"];")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,add_temp,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractKwargs");return self.$handle("extract_kwargs"),$def(self,"$compile",(function(){return this.$add_temp("$kwargs"),this.$line("$kwargs = Opal.extract_kwargs($post_args)")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,expr"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractKwoptarg");return self.$$prototype.sexp=nil,self.$handle("extract_kwoptarg"),self.$children("lvar_name","default_value"),$def(self,"$compile",(function(){var key_name=nil;return key_name=this.sexp.$meta()["$[]"]("arg_name"),this.$scope().$used_kwargs()["$<<"](key_name),this.$add_temp(this.$lvar_name()),this.$line(this.$lvar_name()+" = $kwargs.$$smap["+key_name.$to_s().$inspect()+"];"),$eqeq(this.$default_value().$children()["$[]"](1),"undefined")?nil:this.$line("if ("+this.$lvar_name()+" == null) "+this.$lvar_name()+" = ",this.$expr(this.$default_value()))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("require,handle,children,name,add_temp,line,used_kwargs,map,scope,join"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractKwrestarg");return self.$handle("extract_kwrestarg"),self.$children("name"),$def(self,"$compile",(function(){var name,$ret_or_1;return name=$truthy($ret_or_1=this.$name())?$ret_or_1:"$kw_rest_arg",this.$add_temp(name),this.$line(name+" = Opal.kwrestargs($kwargs, "+this.$used_kwargs()+");")}),0),$def(self,"$used_kwargs",(function(){return"{"+$send(this.$scope().$used_kwargs(),"map",[],(function(arg_name){return null==arg_name&&(arg_name=nil),"'"+arg_name+"': true"}),1).$join(",")+"}"}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_optarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,==,[],default_value,line,name,expr"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractOptargNode");return self.$handle("extract_optarg"),self.$children("name","default_value"),$def(self,"$compile",(function(){return $eqeq(this.$default_value().$children()["$[]"](1),"undefined")?nil:this.$line("if ("+this.$name()+" == null) "+this.$name()+" = ",this.$expr(this.$default_value()),";")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,add_temp,name,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractPostArg");return self.$handle("extract_post_arg"),self.$children("name"),$def(self,"$compile",(function(){return this.$add_temp(this.$name()),this.$line(this.$name()+" = $post_args.shift();"),this.$line("if ("+this.$name()+" == null) "+this.$name()+" = nil;")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,expr"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractPostOptarg");return self.$handle("extract_post_optarg"),self.$children("name","default_value","args_to_keep"),$def(self,"$compile",(function(){return this.$add_temp(this.$name()),this.$line("if ($post_args.length > "+this.$args_to_keep()+") "+this.$name()+" = $post_args.shift();"),$eqeq(this.$default_value().$children()["$[]"](1),"undefined")?nil:this.$line("if ("+this.$name()+" == null) "+this.$name()+" = ",this.$expr(this.$default_value()),";")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_restarg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,name,add_temp,==,args_to_keep,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractRestarg");return self.$handle("extract_restarg"),self.$children("name","args_to_keep"),$def(self,"$compile",(function(){var name,$ret_or_1;return name=$truthy($ret_or_1=this.$name())?$ret_or_1:"$rest_arg",this.$add_temp(name),$eqeq(this.$args_to_keep(),0)?this.$line(name+" = $post_args;"):this.$line(name+" = $post_args.splice(0, $post_args.length - "+this.$args_to_keep()+");")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/fake_arg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,next_temp,scope,add_arg,push"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"FakeArgNode");return self.$handle("fake_arg"),$def(self,"$compile",(function(){var name;return name=this.$scope().$next_temp(),this.$scope().$add_arg(name),this.$push(name)}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,line,name"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"InitializeIterarg");return self.$handle("initialize_iter_arg"),self.$children("name"),$def(self,"$compile",(function(){return this.$line("if ("+this.$name()+" == null) "+this.$name()+" = nil;")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,<<,locals,scope,name,add_arg,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"InitializeShadowarg");return self.$handle("initialize_shadowarg"),self.$children("name"),$def(self,"$compile",(function(){return this.$scope().$locals()["$<<"](this.$name()),this.$scope().$add_arg(this.$name()),this.$line(this.$name()+" = nil;")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/parameters"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$truthy=Opal.truthy,$eqeq=Opal.eqeq;return Opal.add_stubs("children,map,public_send,type,join,compact,=="),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,null,"Parameters");return self.$$prototype.args=nil,$def(self,"$initialize",(function(args){return this.args=args.$children()}),1),$def(self,"$to_code",(function(){return"["+$send(this.args,"map",[],(function $$1(arg){return null==arg&&(arg=nil),$send(null==$$1.$$s?this:$$1.$$s,"public_send",["on_"+arg.$type()].concat($to_a(arg)))}),{$$arity:1,$$s:this}).$compact().$join(", ")+"]"}),0),$def(self,"$on_arg",(function(arg_name){return"['req', '"+arg_name+"']"}),1),$def(self,"$on_mlhs",(function($a){return Opal.slice.call(arguments),"['req']"}),-1),$def(self,"$on_optarg",(function(arg_name,_default_value){return"['opt', '"+arg_name+"']"}),2),$def(self,"$on_restarg",(function(arg_name){return null==arg_name&&(arg_name=nil),$truthy(arg_name)?($eqeq(arg_name,"fwd_rest_arg")&&(arg_name="*"),"['rest', '"+arg_name+"']"):"['rest']"}),-1),$def(self,"$on_kwarg",(function(arg_name){return"['keyreq', '"+arg_name+"']"}),1),$def(self,"$on_kwoptarg",(function(arg_name,_default_value){return"['key', '"+arg_name+"']"}),2),$def(self,"$on_kwrestarg",(function(arg_name){return null==arg_name&&(arg_name=nil),$truthy(arg_name)?"['keyrest', '"+arg_name+"']":"['keyrest']"}),-1),$def(self,"$on_blockarg",(function(arg_name){return $eqeq(arg_name,"fwd_block_arg")&&(arg_name="&"),"['block', '"+arg_name+"']"}),1),$def(self,"$on_kwnilarg",(function(){return"['nokey']"}),0),$def(self,"$on_shadowarg",(function(_arg_name){return nil}),1)}([$module($base,"Args")].concat($parent_nesting)[0])}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,add_temp,==,offset,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"PreparePostArgs");return self.$handle("prepare_post_args"),self.$children("offset"),$def(self,"$compile",(function(){return this.$add_temp("$post_args"),$eqeq(this.$offset(),0)?this.$line("$post_args = Opal.slice.call(arguments)"):this.$line("$post_args = Opal.slice.call(arguments, "+this.$offset()+")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$send=Opal.send,$truthy=Opal.truthy,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$rb_gt=Opal.rb_gt,$neqeq=Opal.neqeq,$def=Opal.def;return Opal.add_stubs("require,handle,each_with_index,children,multiple_underscore?,[],[]=,-,+,>,s,type,!=,push,process,==,count,start_with?,to_s,first"),self.$require("opal/nodes/base"),self.$require("opal/nodes/args/arg"),self.$require("opal/nodes/args/arity_check"),self.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),self.$require("opal/nodes/args/extract_block_arg"),self.$require("opal/nodes/args/extract_kwarg"),self.$require("opal/nodes/args/extract_kwargs"),self.$require("opal/nodes/args/extract_kwoptarg"),self.$require("opal/nodes/args/extract_kwrestarg"),self.$require("opal/nodes/args/extract_optarg"),self.$require("opal/nodes/args/extract_post_arg"),self.$require("opal/nodes/args/extract_post_optarg"),self.$require("opal/nodes/args/extract_restarg"),self.$require("opal/nodes/args/fake_arg"),self.$require("opal/nodes/args/initialize_iterarg"),self.$require("opal/nodes/args/initialize_shadowarg"),self.$require("opal/nodes/args/parameters"),self.$require("opal/nodes/args/prepare_post_args"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ArgsNode");return self.$handle("args"),$def(self,"$compile",(function(){var same_arg_counter=nil;return same_arg_counter=$hash2([],{}),$send(this.$children(),"each_with_index",[],(function $$1(arg,idx){var self=null==$$1.$$s?this:$$1.$$s,$writer=nil;return null==arg&&(arg=nil),null==idx&&(idx=nil),$truthy(self["$multiple_underscore?"](arg))&&($truthy(same_arg_counter["$[]"](arg))||($send(same_arg_counter,"[]=",$to_a($writer=[arg,0])),$writer[$rb_minus($writer.length,1)]),$writer=[arg,$rb_plus(same_arg_counter["$[]"](arg),1)],$send(same_arg_counter,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(same_arg_counter["$[]"](arg),1))&&(arg=self.$s(arg.$type(),arg.$children()["$[]"](0)+"_$"+same_arg_counter["$[]"](arg)))),$neqeq(idx,0)&&self.$push(", "),self.$push(self.$process(arg))}),{$$arity:2,$$s:this})}),0),$def(self,"$multiple_underscore?",(function(arg){var $ret_or_1,$ret_or_2,$ret_or_3;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=arg.$type()["$=="]("arg"))?arg.$children().$count()["$=="](1):$ret_or_3)?arg.$children().$first().$to_s()["$start_with?"]("_"):$ret_or_2)?$rb_gt(this.$children().$count(arg),1):$ret_or_1}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/node_with_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$def=Opal.def,$truthy=Opal.truthy;return Opal.add_stubs("require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new"),self.$require("opal/nodes/scope"),self.$require("opal/nodes/args/parameters"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"NodeWithArgs"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.sexp=nil,self.$attr_reader("used_kwargs"),self.$attr_accessor("arity"),self.$attr_reader("original_args"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),self.original_args=self.sexp.$meta()["$[]"]("original_args"),self.used_kwargs=[],self.arity=0}),-1),$def(self,"$arity_check_node",(function(){return this.$s("arity_check",this.$original_args())}),0),$def(self,"$compile_arity_check",(function(){return this.$push(this.$process(this.$arity_check_node()))}),0),$def(self,"$compile_block_arg",(function(){return $truthy(this.$scope()["$uses_block?"]())?this.$scope().$prepare_block():nil}),0),$def(self,"$parameters_code",(function(){return $$$($$("Args"),"Parameters").$new(this.$original_args()).$to_code()}),0)}($nesting[0],$$("ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/iter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$eqeq=Opal.eqeq,$rb_gt=Opal.rb_gt,$def=Opal.def;return Opal.add_stubs("require,handle,children,lambda_definition?,scope,is_lambda!,in_scope,identify!,process,inline_args,compile_arity_check,stmt,returned_body,add_temp,to_vars,line,catch_return,unshift,push,await_encountered,<<,arity,self,contains_break?,arity_check?,compiler,parameters_code,has_top_level_mlhs_arg?,has_trailing_comma_in_args?,==,length,>,join,nesting,relative_access,block_arg,prepare_block,each,args,first,updated,body,returns,s,any?,original_args,type,expression,loc,source,match,new,found_break?"),self.$require("opal/nodes/node_with_args"),self.$require("opal/rewriters/break_finder"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"IterNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.define_self=$proto.define_nesting=$proto.define_relative_access=$proto.sexp=nil,self.$handle("iter"),self.$children("inline_args","body"),$def(self,"$compile",(function(){var inline_params=nil,to_vars=nil,identity=nil,body_code=nil,blockopts=nil;return $truthy(this.$scope()["$lambda_definition?"]())&&this["$is_lambda!"](),inline_params=nil,to_vars=identity=body_code=nil,$send(this,"in_scope",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return null==self.define_self&&(self.define_self=nil),identity=self.$scope()["$identify!"](),inline_params=self.$process(self.$inline_args()),self.$compile_arity_check(),body_code=self.$stmt(self.$returned_body()),$truthy(self.define_self)&&self.$add_temp("self = "+identity+".$$s == null ? this : "+identity+".$$s"),to_vars=self.$scope().$to_vars(),self.$line(body_code),$truthy(self.$scope().$catch_return())?(self.$unshift("try {\n"),self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),self.$push(" throw $returner; }")):nil}),{$$arity:0,$$s:this}),this.$unshift(to_vars),$truthy(this.$await_encountered())?this.$unshift("async function "+identity+"(",inline_params,"){"):this.$unshift("function "+identity+"(",inline_params,"){"),this.$push("}"),(blockopts=[])["$<<"]("$$arity: "+this.$arity()),$truthy(this.define_self)&&blockopts["$<<"]("$$s: "+this.$scope().$self()),$truthy(this["$contains_break?"]())&&blockopts["$<<"]("$$brk: $brk"),$truthy(this.$compiler()["$arity_check?"]())&&blockopts["$<<"]("$$parameters: "+this.$parameters_code()),$truthy(this["$has_top_level_mlhs_arg?"]())&&blockopts["$<<"]("$$has_top_level_mlhs_arg: true"),$truthy(this["$has_trailing_comma_in_args?"]())&&blockopts["$<<"]("$$has_trailing_comma_in_args: true"),$eqeq(blockopts.$length(),1)?this.$push(", "+this.$arity()):$truthy($rb_gt(blockopts.$length(),1))&&this.$push(", {",blockopts.$join(", "),"}"),$truthy(this.define_nesting)&&this.$scope().$nesting(),$truthy(this.define_relative_access)?this.$scope().$relative_access():nil}),0),$def(self,"$compile_block_arg",(function(){return $truthy(this.$block_arg())?this.$scope().$prepare_block():nil}),0),$def(self,"$extract_underscore_args",(function(){var valid_args=nil,caught_blank_argument=nil;return valid_args=[],caught_blank_argument=!1,$send(this.$args().$children(),"each",[],(function(arg){var arg_name;return null==arg&&(arg=nil),arg_name=arg.$children().$first(),$eqeq(arg_name,"_")?$truthy(caught_blank_argument)?nil:(caught_blank_argument=!0,valid_args["$<<"](arg)):valid_args["$<<"](arg)}),1),this.sexp=this.sexp.$updated(nil,[this.$args().$updated(nil,valid_args),this.$body()])}),0),$def(self,"$returned_body",(function(){var $ret_or_1;return this.$compiler().$returns($truthy($ret_or_1=this.$body())?$ret_or_1:this.$s("nil"))}),0),$def(self,"$has_top_level_mlhs_arg?",(function(){return $send(this.$original_args().$children(),"any?",[],(function(arg){return null==arg&&(arg=nil),arg.$type()["$=="]("mlhs")}),1)}),0),$def(self,"$has_trailing_comma_in_args?",(function(){return $truthy(this.$original_args().$loc())&&$truthy(this.$original_args().$loc().$expression())?this.$original_args().$loc().$expression().$source().$match(/,\s*\|/):nil}),0),$def(self,"$arity_check_node",(function(){return this.$s("iter_arity_check",this.$original_args())}),0),$def(self,"$contains_break?",(function(){var finder=nil;return(finder=$$$($$$($$("Opal"),"Rewriters"),"BreakFinder").$new()).$process(this.sexp),finder["$found_break?"]()}),0)}($nesting[0],$$("NodeWithArgs"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/def"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$def=Opal.def,$rb_plus=Opal.rb_plus;return Opal.add_stubs("require,handle,children,in_scope,mid,mid=,scope,-,==,type,defs=,identify!,identity,block_name=,process,inline_args,stmt,returns,compiler,stmts,compile_block_arg,add_temp,compile_arity_check,unshift,current_indent,to_vars,line,catch_return,push,await_encountered,<<,arity,arity_check?,parameters_code,parse_comments?,comments_code,enable_source_location?,source_location,length,>,join,wrap_with_definition,nesting,relative_access,helper,wrap,self,expr?,+,map,comments,inspect,text"),self.$require("opal/nodes/node_with_args"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DefNode"),$proto=self.$$prototype;return $proto.define_nesting=$proto.define_relative_access=nil,self.$handle("def"),self.$children("mid","inline_args","stmts"),$def(self,"$compile",(function(){var inline_params=nil,scope_name=nil,blockopts=nil;return inline_params=nil,scope_name=nil,$send(this,"in_scope",[],(function $$1(){var stmt_code,self=null==$$1.$$s?this:$$1.$$s,$writer=nil;return null==self.sexp&&(self.sexp=nil),null==self.define_self&&(self.define_self=nil),$writer=[self.$mid()],$send(self.$scope(),"mid=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$eqeq(self.sexp.$type(),"defs")&&($writer=[!0],$send(self.$scope(),"defs=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),self.$scope()["$identify!"](),scope_name=self.$scope().$identity(),$writer=["$yield"],$send(self.$scope(),"block_name=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],inline_params=self.$process(self.$inline_args()),stmt_code=self.$stmt(self.$compiler().$returns(self.$stmts())),self.$compile_block_arg(),$truthy(self.define_self)&&self.$add_temp("self = this"),self.$compile_arity_check(),self.$unshift("\n"+self.$current_indent(),self.$scope().$to_vars()),self.$line(stmt_code),$truthy(self.$scope().$catch_return())?(self.$unshift("try {\n"),self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),self.$push(" throw $returner; }")):nil}),{$$arity:0,$$s:this}),this.$unshift(") {"),this.$unshift(inline_params),this.$unshift("function "+scope_name+"("),$truthy(this.$await_encountered())&&this.$unshift("async "),this.$line("}"),(blockopts=[])["$<<"]("$$arity: "+this.$arity()),$truthy(this.$compiler()["$arity_check?"]())&&blockopts["$<<"]("$$parameters: "+this.$parameters_code()),$truthy(this.$compiler()["$parse_comments?"]())&&blockopts["$<<"]("$$comments: "+this.$comments_code()),$truthy(this.$compiler()["$enable_source_location?"]())&&blockopts["$<<"]("$$source_location: "+this.$source_location()),$eqeq(blockopts.$length(),1)?this.$push(", "+this.$arity()):$truthy($rb_gt(blockopts.$length(),1))&&this.$push(", {",blockopts.$join(", "),"}"),this.$wrap_with_definition(),$truthy(this.define_nesting)&&this.$scope().$nesting(),$truthy(this.define_relative_access)?this.$scope().$relative_access():nil}),0),$def(self,"$wrap_with_definition",(function(){return this.$helper("def"),this.$wrap("$def("+this.$scope().$self()+", '$"+this.$mid()+"', ",")"),$truthy(this["$expr?"]())?nil:this.$unshift("\n"+this.$current_indent())}),0),$def(self,"$comments_code",(function(){return $rb_plus($rb_plus("[",$send(this.$comments(),"map",[],(function(comment){return null==comment&&(comment=nil),comment.$text().$inspect()}),1).$join(", ")),"]")}),0)}($nesting[0],$$("NodeWithArgs"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/defs"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,helper,unshift,expr,recvr,mid,push"),self.$require("opal/nodes/def"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DefsNode");return self.$handle("defs"),self.$children("recvr","mid","inline_args","stmts"),$def(self,"$wrap_with_definition",(function(){return this.$helper("defs"),this.$unshift("$defs(",this.$expr(this.$recvr()),", '$"+this.$mid()+"', "),this.$push(")")}),0)}($nesting[0],$$("DefNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/if"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def,$not=Opal.not,$send=Opal.send,$eqeqeq=Opal.eqeqeq;return Opal.add_stubs("require,handle,children,should_compile_as_simple_expression?,==,true_body,s,compile_with_binary_or,false_body,compile_with_binary_and,compile_with_ternary,compile_with_if,truthy,falsy,!,push,js_truthy,test,indent,line,stmt,type,expects_expression?,await_encountered,scope,wrap,returnify,returns,compiler,expr?,recv?,simple?,expr,[],meta,sexp,===,single_line?,strip_empty_children,all?,helper,new_temp,top_scope,excl,from,to"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"IfNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$handle("if"),self.$children("test","true_body","false_body"),$def(self,"$compile",(function(){return $truthy(this["$should_compile_as_simple_expression?"]())?$eqeq(this.$true_body(),this.$s("true"))?this.$compile_with_binary_or():$eqeq(this.$false_body(),this.$s("false"))?this.$compile_with_binary_and():this.$compile_with_ternary():this.$compile_with_if()}),0),$def(self,"$compile_with_if",(function(){var $a,truthy=nil,falsy=nil;return truthy=this.$truthy(),falsy=this.$falsy(),$truthy(falsy)&&$not(truthy)?(this.$push("if (!",this.$js_truthy(this.$test()),") {"),falsy=($a=[truthy,falsy])[0],truthy=$a[1]):this.$push("if (",this.$js_truthy(this.$test()),") {"),$truthy(truthy)&&$send(this,"indent",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return self.$line(self.$stmt(truthy))}),{$$arity:0,$$s:this}),$truthy(falsy)?$eqeq(falsy.$type(),"if")?this.$line("} else ",this.$stmt(falsy)):(this.$line("} else {"),$send(this,"indent",[],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;return self.$line(self.$stmt(falsy))}),{$$arity:0,$$s:this}),this.$line("}")):(this.$line("}"),$truthy(this["$expects_expression?"]())&&this.$line("return nil;")),$truthy(this["$expects_expression?"]())?$truthy(this.$scope().$await_encountered())?this.$wrap("(await (async function() {","})())"):this.$wrap("(function() {","})()"):nil}),0),$def(self,"$truthy",(function(){return this.$returnify(this.$true_body())}),0),$def(self,"$falsy",(function(){return this.$returnify(this.$false_body())}),0),$def(self,"$returnify",(function(body){return $truthy(this["$expects_expression?"]())&&$truthy(body)?this.$compiler().$returns(body):body}),1),$def(self,"$expects_expression?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$expr?"]())?$ret_or_1:this["$recv?"]()}),0),$def(self,"$should_compile_as_simple_expression?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this["$expects_expression?"]())?this["$simple?"](this.$true_body()):$ret_or_2)?this["$simple?"](this.$false_body()):$ret_or_1}),0),$def(self,"$compile_with_ternary",(function(){var truthy,falsy=nil,$ret_or_1=nil;return truthy=this.$true_body(),falsy=this.$false_body(),this.$push("("),this.$push(this.$js_truthy(this.$test())," ? "),this.$push("(",this.$expr($truthy($ret_or_1=truthy)?$ret_or_1:this.$s("nil")),") : "),$not(falsy)||$eqeq(falsy.$type(),"if")?this.$push(this.$expr($truthy($ret_or_1=falsy)?$ret_or_1:this.$s("nil"))):this.$push("(",this.$expr($truthy($ret_or_1=falsy)?$ret_or_1:this.$s("nil")),")"),this.$push(")")}),0),$def(self,"$compile_with_binary_and",(function(){var truthy=nil,$ret_or_1=nil;return truthy=$truthy(this.$sexp().$meta()["$[]"]("do_js_truthy_on_true_body"))?this.$js_truthy($truthy($ret_or_1=this.$true_body())?$ret_or_1:this.$s("nil")):this.$expr($truthy($ret_or_1=this.$true_body())?$ret_or_1:this.$s("nil")),this.$push("("),this.$push(this.$js_truthy(this.$test())," && "),this.$push("(",truthy,")"),this.$push(")")}),0),$def(self,"$compile_with_binary_or",(function(){var falsy=nil,$ret_or_1=nil;return falsy=$truthy(this.$sexp().$meta()["$[]"]("do_js_truthy_on_false_body"))?this.$js_truthy($truthy($ret_or_1=this.$false_body())?$ret_or_1:this.$s("nil")):this.$expr($truthy($ret_or_1=this.$false_body())?$ret_or_1:this.$s("nil")),this.$push("("),this.$push(this.$js_truthy(this.$test())," || "),this.$push("(",falsy,")"),this.$push(")")}),0),$def(self,"$simple?",(function(body){var $ret_or_2=nil;return!$eqeqeq($$$($$("AST"),"Node"),body)||!($eqeqeq("return",$ret_or_2=body.$type())||$eqeqeq("js_return",$ret_or_2)||$eqeqeq("break",$ret_or_2)||$eqeqeq("next",$ret_or_2)||$eqeqeq("redo",$ret_or_2)||$eqeqeq("retry",$ret_or_2))&&($eqeqeq("xstr",$ret_or_2)?$$("XStringNode")["$single_line?"]($$("XStringNode").$strip_empty_children(body.$children())):$send(body.$children(),"all?",[],(function $$6(i){return null==i&&(i=nil),(null==$$6.$$s?this:$$6.$$s)["$simple?"](i)}),{$$arity:1,$$s:this}))}),1)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"IFlipFlop");self.$handle("iflipflop"),self.$children("from","to"),$def(self,"$excl",(function(){return""}),0),$def(self,"$compile",(function(){var fun_name,ff;return this.$helper("truthy"),ff=(fun_name=this.$top_scope().$new_temp())+".$$ff",this.$push("(typeof "+fun_name+" === 'undefined' ? ("+fun_name+" = function(from, to){"),this.$push(" if (typeof "+ff+" === 'undefined') "+ff+" = false;"),this.$push(" var retval = "+ff+";"),this.$push(" if (!"+ff+") {"),this.$push(" "+ff+" = retval = $truthy(from());"),this.$push(" }"),this.$push(" "+this.$excl()+"if ("+ff+") {"),this.$push(" if ($truthy(to())) "+ff+" = false;"),this.$push(" }"),this.$push(" return retval;"),this.$push("}) : "+fun_name+")("),this.$push(" function() { ",this.$stmt(this.$compiler().$returns(this.$from()))," },"),this.$push(" function() { ",this.$stmt(this.$compiler().$returns(this.$to()))," }"),this.$push(")")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"EFlipFlop");return self.$handle("eflipflop"),$def(self,"$excl",(function(){return"else "}),0)}($nesting[0],$$("IFlipFlop"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/logic"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt,$not=Opal.not;return Opal.add_stubs("require,handle,in_while?,push,iter?,scope,expr_or_nil,value,error,===,size,children,s,first,compile_while,compile_iter,[],while_loop,stmt?,line,break_val,nil?,expr,[]=,-,helper,identity,==,empty_splat?,recv,>,find_parent_def,!,lambda?,def?,expr?,return_in_iter?,return_expr_in_def?,scope_to_catch_return,catch_return=,return_val,to_s"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"NextNode");self.$handle("next"),$def(self,"$compile",(function(){return $truthy(this["$in_while?"]())?this.$push("continue;"):$truthy(this.$scope()["$iter?"]())?this.$push("return ",this.$expr_or_nil(this.$value()),";"):this.$error("Invalid next")}),0),$def(self,"$value",(function(){var $ret_or_1;return $eqeqeq(0,$ret_or_1=this.$children().$size())?this.$s("nil"):$eqeqeq(1,$ret_or_1)?this.$children().$first():$send(this,"s",["array"].concat($to_a(this.$children())))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"BreakNode");self.$handle("break"),self.$children("value"),$def(self,"$compile",(function(){return $truthy(this["$in_while?"]())?this.$compile_while():$truthy(this.$scope()["$iter?"]())?this.$compile_iter():this.$error("void value expression: cannot use break outside of iter/while")}),0),$def(self,"$compile_while",(function(){return $truthy(this.$while_loop()["$[]"]("closure"))?this.$push("return ",this.$expr_or_nil(this.$value())):this.$push("break;")}),0),$def(self,"$compile_iter",(function(){return $truthy(this["$stmt?"]())||this.$error("break must be used as a statement"),this.$line("Opal.brk(",this.$break_val(),", $brk)")}),0),$def(self,"$break_val",(function(){return $truthy(this.$value()["$nil?"]())?this.$expr(this.$s("nil")):this.$expr(this.$value())}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"RedoNode");self.$handle("redo"),$def(self,"$compile",(function(){return $truthy(this["$in_while?"]())?this.$compile_while():$truthy(this.$scope()["$iter?"]())?this.$compile_iter():this.$push("REDO()")}),0),$def(self,"$compile_while",(function(){var $writer;return $writer=["use_redo",!0],$send(this.$while_loop(),"[]=",$to_a($writer)),$rb_minus($writer.length,1),this.$push(this.$while_loop()["$[]"]("redo_var")+" = true; continue;")}),0),$def(self,"$compile_iter",(function(){return this.$helper("slice"),this.$push("return "+this.$scope().$identity()+".apply(null, $slice.call(arguments))")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"SplatNode");self.$handle("splat"),self.$children("value"),$def(self,"$empty_splat?",(function(){return this.$value()["$=="](this.$s("array"))}),0),$def(self,"$compile",(function(){return $truthy(this["$empty_splat?"]())?this.$push("[]"):(this.$helper("to_a"),this.$push("$to_a(",this.$recv(this.$value()),")"))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ReturnNode");self.$handle("return"),self.$children("value"),$def(self,"$return_val",(function(){return $truthy(this.$value()["$nil?"]())?this.$expr(this.$s("nil")):$truthy($rb_gt(this.$children().$size(),1))?this.$expr($send(this,"s",["array"].concat($to_a(this.$children())))):this.$expr(this.$value())}),0),$def(self,"$return_in_iter?",(function(){var parent_def=nil;return $truthy(this.$scope()["$iter?"]())&&$not(this.$scope()["$lambda?"]())&&$truthy(parent_def=this.$scope().$find_parent_def())?parent_def:nil}),0),$def(self,"$return_expr_in_def?",(function(){return $truthy(this["$expr?"]())&&($truthy(this.$scope()["$def?"]())||$truthy(this.$scope()["$lambda?"]()))?this.$scope():nil}),0),$def(self,"$scope_to_catch_return",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$return_in_iter?"]())?$ret_or_1:this["$return_expr_in_def?"]()}),0),$def(self,"$compile",(function(){var def_scope,$writer=nil;return $truthy(def_scope=this.$scope_to_catch_return())?($send(def_scope,"catch_return=",$to_a($writer=[!0])),$writer[$rb_minus($writer.length,1)],this.$push("Opal.ret(",this.$return_val(),")")):$truthy(this["$stmt?"]())?this.$push("return ",this.$return_val()):this.$error("void value expression: cannot return as an expression")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"JSReturnNode");self.$handle("js_return"),self.$children("value"),$def(self,"$compile",(function(){return this.$push("return "),this.$push(this.$expr(this.$value()))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"JSTempNode");self.$handle("js_tmp"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$value().$to_s())}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"BlockPassNode");return self.$handle("block_pass"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$expr(this.$s("send",this.$value(),"to_proc",this.$s("arglist"))))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/definitions"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$range=Opal.range,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$slice=Opal.slice,$rb_plus=Opal.rb_plus,$hash2=Opal.hash2,$const_set=Opal.const_set;return Opal.add_stubs("require,handle,children,each,line,self,scope,expr,===,type,new_name,helper,inspect,[],to_s,first,old_name,push,error,empty?,stmt?,compile_children,simple_children?,compile_inline_children,>,size,wrap,==,returned_children,await_encountered,parent,+,returns,compiler,s,process,fragment,freeze,none?,include?,map,each_with_index,reject,to_proc"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"UndefNode");self.$handle("undef"),self.$children("value"),$def(self,"$compile",(function(){return $send(this.$children(),"each",[],(function $$1(child){var self=null==$$1.$$s?this:$$1.$$s;return null==child&&(child=nil),self.$line("Opal.udef("+self.$scope().$self()+", '$' + ",self.$expr(child),");")}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"AliasNode");self.$handle("alias"),self.$children("new_name","old_name"),$def(self,"$compile",(function(){var $ret_or_1,new_name_str=nil,old_name_str=nil;return $eqeqeq("gvar",$ret_or_1=this.$new_name().$type())?(this.$helper("alias_gvar"),new_name_str=this.$new_name().$children().$first().$to_s()["$[]"]($range(1,-1,!1)).$inspect(),old_name_str=this.$old_name().$children().$first().$to_s()["$[]"]($range(1,-1,!1)).$inspect(),this.$push("$alias_gvar(",new_name_str,", ",old_name_str,")")):$eqeqeq("dsym",$ret_or_1)||$eqeqeq("sym",$ret_or_1)?(this.$helper("alias"),this.$push("$alias("+this.$scope().$self()+", ",this.$expr(this.$new_name()),", ",this.$expr(this.$old_name()),")")):this.$error("Opal doesn't know yet how to alias with "+this.$new_name().$type())}),0)}($nesting[0],$$("Base")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"BeginNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.level=$proto.returned_children=nil,self.$handle("begin"),$def(self,"$compile",(function(){return $truthy(this.$children()["$empty?"]())?this.$push("nil"):$truthy(this["$stmt?"]())?this.$compile_children(this.$children(),this.level):$truthy(this["$simple_children?"]())?(this.$compile_inline_children(this.$children(),this.level),$truthy($rb_gt(this.$children().$size(),1))?this.$wrap("(",")"):nil):$eqeq(this.$children().$size(),1)?this.$compile_inline_children(this.$returned_children(),this.level):(this.$compile_children(this.$returned_children(),this.level),$truthy(this.$scope().$parent().$await_encountered())?this.$wrap("(await (async function() {","})())"):this.$wrap("(function() {","})()"))}),0),$def(self,"$returned_children",(function(){var $a,$b,$ret_or_1,rest=nil,last_child=nil;return this.returned_children=$truthy($ret_or_1=this.returned_children)?$ret_or_1:($b=($b=($a=[].concat($to_a(this.$children()))).length-1)<0?0:$b,rest=$slice.call($a,0,$b),last_child=null==$a[$b]?nil:$a[$b],$truthy(last_child)?$rb_plus(rest,[this.$compiler().$returns(last_child)]):[this.$s("nil")])}),0),$def(self,"$compile_children",(function(children,level){return $send(children,"each",[],(function $$2(child){var self=null==$$2.$$s?this:$$2.$$s;return null==child&&(child=nil),self.$line(self.$process(child,level),self.$fragment(";",$hash2(["loc"],{loc:!1})))}),{$$arity:1,$$s:this})}),2),$const_set($nesting[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),$def(self,"$simple_children?",(function(){return $send(this.$children(),"none?",[],(function(child){return null==child&&(child=nil),$$("COMPLEX_CHILDREN")["$include?"](child.$type())}),1)}),0),$def(self,"$compile_inline_children",(function(children,level){var processed_children;return processed_children=$send(children,"map",[],(function $$5(child){return null==child&&(child=nil),(null==$$5.$$s?this:$$5.$$s).$process(child,level)}),{$$arity:1,$$s:this}),$send($send(processed_children,"reject",[],"empty?".$to_proc()),"each_with_index",[],(function $$6(child,idx){var self=null==$$6.$$s?this:$$6.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),$eqeq(idx,0)||self.$push(self.$fragment(", ",$hash2(["loc"],{loc:!1}))),self.$push(child)}),{$$arity:2,$$s:this})}),2)}($nesting[0],$$("ScopeNode"),$nesting),function($base,$super){return $klass($base,$super,"KwBeginNode").$handle("kwbegin")}($nesting[0],$$("BeginNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/yield"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def;return Opal.add_stubs("require,find_yielding_scope,uses_block!,block_name,block_name=,-,yields_single_arg?,children,push,expr,first,wrap,s,uses_splat?,scope,def?,parent,!,==,size,any?,type,handle,compile_call"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"BaseYieldNode");$def(self,"$compile_call",(function(){var block_name,yielding_scope=nil,$writer=nil;return(yielding_scope=this.$find_yielding_scope())["$uses_block!"](),$truthy(yielding_scope.$block_name())||($send(yielding_scope,"block_name=",$to_a($writer=["$yield"])),$writer[$rb_minus($writer.length,1)]),block_name=yielding_scope.$block_name(),$truthy(this["$yields_single_arg?"](this.$children()))?(this.$push(this.$expr(this.$children().$first())),this.$wrap("Opal.yield1("+block_name+", ",")")):(this.$push(this.$expr($send(this,"s",["arglist"].concat($to_a(this.$children()))))),$truthy(this["$uses_splat?"](this.$children()))?this.$wrap("Opal.yieldX("+block_name+", ",")"):this.$wrap("Opal.yieldX("+block_name+", [","])"))}),0),$def(self,"$find_yielding_scope",(function(){var working=nil;for(working=this.$scope();$truthy(working)&&!$truthy(working.$block_name())&&!$truthy(working["$def?"]());)working=working.$parent();return working}),0),$def(self,"$yields_single_arg?",(function(children){var $ret_or_1;return $truthy($ret_or_1=this["$uses_splat?"](children)["$!"]())?children.$size()["$=="](1):$ret_or_1}),1),$def(self,"$uses_splat?",(function(children){return $send(children,"any?",[],(function(child){return null==child&&(child=nil),child.$type()["$=="]("splat")}),1)}),1)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"YieldNode");self.$handle("yield"),$def(self,"$compile",(function(){return this.$compile_call()}),0)}($nesting[0],$$("BaseYieldNode")),function($base,$super){var self=$klass($base,$super,"ReturnableYieldNode");return self.$handle("returnable_yield"),$def(self,"$compile",(function(){return this.$compile_call(),this.$wrap("return ",";")}),0)}($nesting[0],$$("BaseYieldNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/rescue"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$def=Opal.def,$range=Opal.range,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$eqeq=Opal.eqeq;return Opal.add_stubs("require,handle,children,push,in_ensure,line,stmt,body_sexp,indent,has_rescue_else?,unshift,rescue_else_code,process,compiler,ensr_sexp,wrap_in_closure?,await_encountered,scope,wrap,returns,begn,ensr,s,recv?,expr?,rescue_else_sexp,stmt?,detect,[],!=,type,rescue_else_sexp=,-,handle_rescue_else_manually?,in_rescue,body_code,each_with_index,==,retry_id,body,nil?,!,in_ensure?,gen_retry_id,attr_reader,expr,klasses,lvar,updated,in_resbody,rescue_body,klasses_sexp,in_resbody?,error,current_rescue"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"EnsureNode");self.$handle("ensure"),self.$children("begn","ensr"),$def(self,"$compile",(function(){return this.$push("try {"),$send(this,"in_ensure",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return self.$line(self.$stmt(self.$body_sexp()))}),{$$arity:0,$$s:this}),this.$line("} finally {"),$send(this,"indent",[],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;return null==self.level&&(self.level=nil),$truthy(self["$has_rescue_else?"]())?(self.$unshift("var $no_errors = true; "),self.$line("var $rescue_else_result;"),self.$line("if ($no_errors) { "),$send(self,"indent",[],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return self.$line("$rescue_else_result = (function() {"),$send(self,"indent",[],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s;return self.$line(self.$stmt(self.$rescue_else_code()))}),{$$arity:0,$$s:self}),self.$line("})();")}),{$$arity:0,$$s:self}),self.$line("}"),self.$line(self.$compiler().$process(self.$ensr_sexp(),self.level)),self.$line("if ($no_errors) { return $rescue_else_result; }")):self.$line(self.$compiler().$process(self.$ensr_sexp(),self.level))}),{$$arity:0,$$s:this}),this.$line("}"),$truthy(this["$wrap_in_closure?"]())?$truthy(this.$scope().$await_encountered())?this.$wrap("(await (async function() { ","; })())"):this.$wrap("(function() { ","; })()"):nil}),0),$def(self,"$body_sexp",(function(){return $truthy(this["$wrap_in_closure?"]())?this.$compiler().$returns(this.$begn()):this.$begn()}),0),$def(self,"$ensr_sexp",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$ensr())?$ret_or_1:this.$s("nil")}),0),$def(self,"$wrap_in_closure?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this["$recv?"]())?$ret_or_2:this["$expr?"]())?$ret_or_1:this["$has_rescue_else?"]()}),0),$def(self,"$rescue_else_code",(function(){var rescue_else_code=nil;return rescue_else_code=this.$scope().$rescue_else_sexp(),$truthy(this["$stmt?"]())||(rescue_else_code=this.$compiler().$returns(rescue_else_code)),rescue_else_code}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"RescueNode");self.$$prototype.retry_id=nil,self.$handle("rescue"),self.$children("body"),$def(self,"$compile",(function(){var $writer;return $writer=[$send(this.$children()["$[]"]($range(1,-1,!1)),"detect",[],(function(sexp){var $ret_or_1;return null==sexp&&(sexp=nil),$truthy($ret_or_1=sexp)?sexp.$type()["$!="]("resbody"):$ret_or_1}),1)],$send(this.$scope(),"rescue_else_sexp=",$to_a($writer)),$rb_minus($writer.length,1),!1,$truthy(this["$handle_rescue_else_manually?"]())&&this.$line("var $no_errors = true;"),$send(this,"in_rescue",[this],(function $$7(){var self=null==$$7.$$s?this:$$7.$$s;return self.$push("try {"),$send(self,"indent",[],(function $$8(){var self=null==$$8.$$s?this:$$8.$$s;return self.$line(self.$stmt(self.$body_code()))}),{$$arity:0,$$s:self}),self.$line("} catch ($err) {"),$send(self,"indent",[],(function $$9(){var self=null==$$9.$$s?this:$$9.$$s;return $truthy(self["$has_rescue_else?"]())&&self.$line("$no_errors = false;"),$send(self.$children()["$[]"]($range(1,-1,!1)),"each_with_index",[],(function $$10(child,idx){var self=null==$$10.$$s?this:$$10.$$s;return null==self.level&&(self.level=nil),null==child&&(child=nil),null==idx&&(idx=nil),$truthy(child)&&$eqeq(child.$type(),"resbody")?(!0,$eqeq(idx,0)||self.$push(" else "),self.$line(self.$process(child,self.level))):nil}),{$$arity:2,$$s:self}),self.$push(" else { throw $err; }")}),{$$arity:0,$$s:self}),self.$line("}"),$truthy(self["$handle_rescue_else_manually?"]())&&(self.$push("finally {"),$send(self,"indent",[],(function $$11(){var self=null==$$11.$$s?this:$$11.$$s;return self.$line("if ($no_errors) { "),$send(self,"indent",[],(function $$12(){var self=null==$$12.$$s?this:$$12.$$s;return self.$line(self.$stmt(self.$rescue_else_code()))}),{$$arity:0,$$s:self}),self.$line("}")}),{$$arity:0,$$s:self}),self.$push("}")),$truthy(self.$retry_id())?self.$wrap(self.$retry_id()+": do { "," break; } while(1)"):nil}),{$$arity:0,$$s:this}),$truthy(this["$expr?"]())||$truthy(this["$recv?"]())?$truthy(this.$scope().$await_encountered())?this.$wrap("(await (async function() { ","})())"):this.$wrap("(function() { ","})()"):nil}),0),$def(self,"$body_code",(function(){var body_code=nil;return body_code=$truthy(this.$body()["$nil?"]())||$eqeq(this.$body().$type(),"resbody")?this.$s("nil"):this.$body(),$truthy(this["$stmt?"]())||(body_code=this.$compiler().$returns(body_code)),body_code}),0),$def(self,"$rescue_else_code",(function(){var rescue_else_code=nil;return rescue_else_code=this.$scope().$rescue_else_sexp(),$truthy(this["$stmt?"]())||(rescue_else_code=this.$compiler().$returns(rescue_else_code)),rescue_else_code}),0),$def(self,"$handle_rescue_else_manually?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$in_ensure?"]()["$!"]())?this["$has_rescue_else?"]():$ret_or_1}),0),$def(self,"$gen_retry_id",(function(){var $ret_or_1;return this.retry_id=$truthy($ret_or_1=this.retry_id)?$ret_or_1:this.$scope().$gen_retry_id()}),0),self.$attr_reader("retry_id")}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ResBodyNode");self.$handle("resbody"),self.$children("klasses_sexp","lvar","body"),$def(self,"$compile",(function(){return this.$push("if (Opal.rescue($err, ",this.$expr(this.$klasses()),")) {"),$send(this,"indent",[],(function $$14(){var self=null==$$14.$$s?this:$$14.$$s;return $truthy(self.$lvar())&&self.$push(self.$expr(self.$lvar().$updated(nil,[].concat($to_a(self.$lvar().$children())).concat([self.$s("js_tmp","$err")])))),self.$line("try {"),$send(self,"indent",[],(function $$15(){var self=null==$$15.$$s?this:$$15.$$s;return $send(self,"in_resbody",[],(function $$16(){var self=null==$$16.$$s?this:$$16.$$s;return self.$line(self.$stmt(self.$rescue_body()))}),{$$arity:0,$$s:self})}),{$$arity:0,$$s:self}),self.$line("} finally { Opal.pop_exception(); }")}),{$$arity:0,$$s:this}),this.$line("}")}),0),$def(self,"$klasses",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$klasses_sexp())?$ret_or_1:this.$s("array",this.$s("const",nil,"StandardError"))}),0),$def(self,"$rescue_body",(function(){var $ret_or_1,body_code=nil;return body_code=$truthy($ret_or_1=this.$body())?$ret_or_1:this.$s("nil"),$truthy(this["$stmt?"]())||(body_code=this.$compiler().$returns(body_code)),body_code}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"RetryNode");return self.$handle("retry"),$def(self,"$compile",(function(){return $truthy(this["$in_resbody?"]())||this.$error("Invalid retry"),this.$push("continue "+this.$scope().$current_rescue().$gen_retry_id())}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/super"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$slice=Opal.slice,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def,$to_ary=Opal.to_ary,$eqeq=Opal.eqeq,$not=Opal.not,$eqeqeq=Opal.eqeqeq,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt;return Opal.add_stubs("require,include?,type,s,helper,push,compile_receiver,compile_method_body,compile_method_name,compile_arguments,compile_block_pass,private,def?,scope,find_parent_def,to_s,mid,def_scope,identify!,self,method_id,def_scope_identity,defined_check_param,allow_stubs,super_chain,join,map,implicit_arguments_param,super_method_invocation,iter?,super_block_invocation,raise,handle,wrap,uses_block!,compile_using_send,==,iter,block_name,implicit_arglist,!,<<,new,each,children,original_args,[],===,+,[]=,-,>,meta,empty?"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"BaseSuperNode"),$proto=self.$$prototype;$proto.sexp=$proto.def_scope=nil,$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$b,$c,$yield=$$initialize.$$p||nil,self=this,args=nil,rest=nil,last_child=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),args=[].concat($to_a(self.sexp)),$c=($c=($b=[].concat($to_a(args))).length-1)<0?0:$c,rest=$slice.call($b,0,$c),last_child=null==$b[$c]?nil:$b[$c],$truthy(last_child)&&$truthy(["iter","block_pass"]["$include?"](last_child.$type()))?(self.iter=last_child,args=rest):self.iter=self.$s("js_tmp","null"),self.arglist=$send(self,"s",["arglist"].concat($to_a(args))),self.recvr=self.$s("self")}),-1),$def(self,"$compile_using_send",(function(){return this.$helper("send2"),this.$push("$send2("),this.$compile_receiver(),this.$compile_method_body(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")}),0),self.$private(),$def(self,"$def_scope",(function(){var $ret_or_1;return this.def_scope=$truthy($ret_or_1=this.def_scope)?$ret_or_1:$truthy(this.$scope()["$def?"]())?this.$scope():this.$scope().$find_parent_def()}),0),$def(self,"$defined_check_param",(function(){return"false"}),0),$def(self,"$implicit_arguments_param",(function(){return"false"}),0),$def(self,"$method_id",(function(){return this.$def_scope().$mid().$to_s()}),0),$def(self,"$def_scope_identity",(function(){return this.$def_scope()["$identify!"](this.$def_scope().$mid())}),0),$def(self,"$allow_stubs",(function(){return"true"}),0),$def(self,"$super_method_invocation",(function(){return this.$helper("find_super"),"$find_super("+this.$scope().$self()+", '"+this.$method_id()+"', "+this.$def_scope_identity()+", "+this.$defined_check_param()+", "+this.$allow_stubs()+")"}),0),$def(self,"$super_block_invocation",(function(){var $a,$b,chain,cur_defn,mid,trys;return this.$helper("find_block_super"),$b=this.$scope().$super_chain(),chain=null==($a=$to_ary($b))[0]?nil:$a[0],cur_defn=null==$a[1]?nil:$a[1],mid=null==$a[2]?nil:$a[2],trys=$send(chain,"map",[],(function(c){return null==c&&(c=nil),c+".$$def"}),1).$join(" || "),"$find_block_super("+this.$scope().$self()+", "+mid+", ("+trys+" || "+cur_defn+"), "+this.$defined_check_param()+", "+this.$implicit_arguments_param()+")"}),0),$def(self,"$compile_method_body",(function(){return this.$push(", "),$truthy(this.$scope()["$def?"]())?this.$push(this.$super_method_invocation()):$truthy(this.$scope()["$iter?"]())?this.$push(this.$super_block_invocation()):this.$raise("super must be called from method body or block")}),0),$def(self,"$compile_method_name",(function(){var $a,$b,mid=nil;return $truthy(this.$scope()["$def?"]())?this.$push(", '"+this.$method_id()+"'"):$truthy(this.$scope()["$iter?"]())?($b=this.$scope().$super_chain(),null==($a=$to_ary($b))[0]?nil:$a[0],null==$a[1]?nil:$a[1],mid=null==$a[2]?nil:$a[2],this.$push(", "+mid)):nil}),0)}($nesting[0],$$("CallNode")),function($base,$super){var self=$klass($base,$super,"DefinedSuperNode");self.$handle("defined_super"),$def(self,"$allow_stubs",(function(){return"false"}),0),$def(self,"$defined_check_param",(function(){return"true"}),0),$def(self,"$compile",(function(){return this.$compile_receiver(),this.$compile_method_body(),this.$wrap("((",') != null ? "super" : nil)')}),0)}($nesting[0],$$("BaseSuperNode")),function($base,$super){var self=$klass($base,$super,"SuperNode");self.$handle("super"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),$truthy(self.$scope()["$def?"]())?self.$scope()["$uses_block!"]():nil}),-1),$def(self,"$compile",(function(){return this.$compile_using_send()}),0)}($nesting[0],$$("BaseSuperNode")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"ZsuperNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$handle("zsuper"),$def(self,"$implicit_arguments_param",(function(){return"true"}),0),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this,$ret_or_1=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),$eqeq(self.$iter().$type(),"iter")?nil:(self.$scope()["$uses_block!"](),self.iter=self.$s("js_tmp",$truthy($ret_or_1=self.$scope().$block_name())?$ret_or_1:"$yield"))}),-1),$def(self,"$compile",(function(){var implicit_args=nil,block_pass=nil;return $truthy(this.$def_scope())&&(implicit_args=this.$implicit_arglist(),$truthy(this.$block_name())&&$not(this.$iter())&&(block_pass=this.$s("block_pass",this.$s("lvar",this.$block_name())),implicit_args["$<<"](block_pass)),this.arglist=$send(this,"s",["arglist"].concat($to_a(implicit_args)))),this.$compile_using_send()}),0),$def(self,"$implicit_arglist",(function(){var args=nil,kwargs=nil,same_arg_counter=nil;return args=[],kwargs=[],same_arg_counter=$$("Hash").$new(0),$send(this.$def_scope().$original_args().$children(),"each",[],(function $$2(sexp){var $ret_or_1,self=null==$$2.$$s?this:$$2.$$s,lvar_name=nil,arg_node=nil,$writer=nil,key_name=nil;return null==sexp&&(sexp=nil),lvar_name=sexp.$children()["$[]"](0),$eqeqeq("arg",$ret_or_1=sexp.$type())||$eqeqeq("optarg",$ret_or_1)?(arg_node=self.$s("lvar",lvar_name),$eqeq(lvar_name["$[]"](0),"_")&&($writer=[lvar_name,$rb_plus(same_arg_counter["$[]"](lvar_name),1)],$send(same_arg_counter,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(same_arg_counter["$[]"](lvar_name),1))&&(arg_node=self.$s("js_tmp",lvar_name+"_$"+same_arg_counter["$[]"](lvar_name)))),args["$<<"](arg_node)):$eqeqeq("restarg",$ret_or_1)?(arg_node=$truthy(lvar_name)?self.$s("lvar",lvar_name):self.$s("js_tmp","$rest_arg"),args["$<<"](self.$s("splat",arg_node))):$eqeqeq("kwarg",$ret_or_1)||$eqeqeq("kwoptarg",$ret_or_1)?(key_name=sexp.$meta()["$[]"]("arg_name"),kwargs["$<<"](self.$s("pair",self.$s("sym",key_name),self.$s("lvar",lvar_name)))):$eqeqeq("kwrestarg",$ret_or_1)?(arg_node=$truthy(lvar_name)?self.$s("lvar",lvar_name):self.$s("js_tmp","$kw_rest_arg"),kwargs["$<<"](self.$s("kwsplat",arg_node))):nil}),{$$arity:1,$$s:this}),$truthy(kwargs["$empty?"]())||args["$<<"]($send(this,"s",["hash"].concat($to_a(kwargs)))),args}),0),$def(self,"$block_name",(function(){var $ret_or_1;return $eqeqeq($$$($$$($$("Opal"),"Nodes"),"IterNode"),$ret_or_1=this.$def_scope())||$eqeqeq($$$($$$($$("Opal"),"Nodes"),"DefNode"),$ret_or_1)?this.$def_scope().$block_name():this.$raise("Don't know what to do with super in the scope "+this.$def_scope())}),0)}($nesting[0],$$("SuperNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/version"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$const_set=Opal.const_set;return function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return $const_set($nesting[0],"VERSION","1.5.0.dev")}($nesting[0],$nesting)},Opal.modules["opal/nodes/top"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,top_scope=,compiler,-,[],meta,sexp,dynamic_cache_result=,push,version_comment,in_scope,==,body,s,line,use_strict?,stmt,stmts,is_a?,eval?,add_temp,add_used_helpers,to_vars,scope,compile_method_stubs,compile_irb_vars,compile_end_construct,opening,closing,await_encountered,requirable?,unshift,inspect,module_name,file,esm?,returns,irb?,each,to_a,helpers,method_missing?,method_calls,join,map,to_proc,empty?,eof_content"),self.$require("pathname"),self.$require("opal/version"),self.$require("opal/nodes/scope"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"TopNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$handle("top"),self.$children("body"),$def(self,"$compile",(function(){var $writer=nil;return $writer=[this],$send(this.$compiler(),"top_scope=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(this.$sexp().$meta()["$[]"]("dynamic_cache_result"))&&($writer=[!0],$send(this.$compiler(),"dynamic_cache_result=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),this.$push(this.$version_comment()),$send(this,"in_scope",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s,body_code=nil;return null==self.define_nesting&&(self.define_nesting=nil),null==self.define_self&&(self.define_self=nil),null==self.define_relative_access&&(self.define_relative_access=nil),null==self.define_absolute_const&&(self.define_absolute_const=nil),$eqeq(self.$body(),self.$s("nil"))?self.$line("return Opal.nil;"):($truthy(self.$compiler()["$use_strict?"]())&&self.$line('"use strict";'),body_code=self.$stmt(self.$stmts()),$truthy(body_code["$is_a?"]($$("Array")))||(body_code=[body_code]),$truthy(self.$compiler()["$eval?"]())?$truthy(self.define_nesting)&&self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):($truthy(self.define_self)&&self.$add_temp("self = Opal.top"),$truthy(self.define_nesting)&&self.$add_temp("$nesting = []")),$truthy(self.define_relative_access)&&self.$add_temp("$$ = Opal.$r($nesting)"),self.$add_temp("nil = Opal.nil"),$truthy(self.define_absolute_const)&&self.$add_temp("$$$ = Opal.$$$"),self.$add_used_helpers(),self.$line(self.$scope().$to_vars()),self.$compile_method_stubs(),self.$compile_irb_vars(),self.$compile_end_construct(),self.$line(body_code))}),{$$arity:0,$$s:this}),this.$opening(),this.$closing()}),0),$def(self,"$opening",(function(){var async_prefix=nil;return $truthy(this.$await_encountered())&&(async_prefix="async "),$truthy(this.$compiler()["$requirable?"]())?this.$unshift("Opal.modules["+$$$($$("Opal"),"Compiler").$module_name(this.$compiler().$file()).$inspect()+"] = "+async_prefix+"function(Opal) {"):$truthy(this.$compiler()["$eval?"]())?this.$unshift("("+async_prefix+"function(Opal, self) {"):$truthy(this.$compiler()["$esm?"]())?this.$unshift("export default Opal.queue("+async_prefix+"function(Opal) {"):this.$unshift("Opal.queue("+async_prefix+"function(Opal) {")}),0),$def(self,"$closing",(function(){return $truthy(this.$compiler()["$requirable?"]())?this.$line("};\n"):$truthy(this.$compiler()["$eval?"]())?this.$line("})(Opal, self);"):this.$line("});\n")}),0),$def(self,"$stmts",(function(){return this.$compiler().$returns(this.$body())}),0),$def(self,"$absolute_const",(function(){return this.define_absolute_const=!0,"$$$"}),0),$def(self,"$compile_irb_vars",(function(){return $truthy(this.$compiler()["$irb?"]())?this.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):nil}),0),$def(self,"$add_used_helpers",(function(){return $send(this.$compiler().$helpers().$to_a(),"each",[],(function $$2(h){return null==h&&(h=nil),(null==$$2.$$s?this:$$2.$$s).$add_temp("$"+h+" = Opal."+h)}),{$$arity:1,$$s:this})}),0),$def(self,"$compile_method_stubs",(function(){var calls=nil,stubs=nil;return $truthy(this.$compiler()["$method_missing?"]())?(calls=this.$compiler().$method_calls(),stubs=$send(calls.$to_a(),"map",[],"to_s".$to_proc()).$join(","),$truthy(stubs["$empty?"]())?nil:this.$line("Opal.add_stubs('"+stubs+"');")):nil}),0),$def(self,"$compile_end_construct",(function(){var content=nil;return $truthy(content=this.$compiler().$eof_content())?(this.$line("var $__END__ = Opal.Object.$new();"),this.$line("$__END__.$read = function() { return "+content.$inspect()+"; };")):nil}),0),$def(self,"$version_comment",(function(){return"/* Generated by Opal "+$$$($$("Opal"),"VERSION")+" */"}),0)}($nesting[0],$$("ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/while"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def;return Opal.add_stubs("require,handle,children,js_truthy,test,with_temp,in_while,compiler,wrap_in_closure?,[]=,while_loop,-,indent,stmt,body,uses_redo?,compile_with_redo,compile_without_redo,await_encountered,scope,wrap,private,push,compile_while,while_open,while_close,line,[],expr?,recv?"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"WhileNode");self.$handle("while"),self.$children("test","body"),$def(self,"$compile",(function(){var test_code;return test_code=this.$js_truthy(this.$test()),$send(this,"with_temp",[],(function $$1(redo_var){var self=null==$$1.$$s?this:$$1.$$s;return null==redo_var&&(redo_var=nil),$send(self.$compiler(),"in_while",[],(function $$2(){var body_code,self=null==$$2.$$s?this:$$2.$$s,$writer=nil;return $truthy(self["$wrap_in_closure?"]())&&($writer=["closure",!0],$send(self.$while_loop(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=["redo_var",redo_var],$send(self.$while_loop(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],body_code=$send(self,"indent",[],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return self.$stmt(self.$body())}),{$$arity:0,$$s:self}),$truthy(self["$uses_redo?"]())?self.$compile_with_redo(test_code,body_code,redo_var):self.$compile_without_redo(test_code,body_code)}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:this}),$truthy(this["$wrap_in_closure?"]())?$truthy(this.$scope().$await_encountered())?this.$wrap("(await (async function() {","; return nil; })())"):this.$wrap("(function() {","; return nil; })()"):nil}),0),self.$private(),$def(self,"$compile_with_redo",(function(test_code,body_code,redo_var){return this.$push(redo_var+" = false; "),this.$compile_while([redo_var," || ",test_code],[redo_var+" = false;",body_code])}),3),$def(self,"$compile_without_redo",(function(test_code,body_code){return this.$compile_while([test_code],[body_code])}),2),$def(self,"$compile_while",(function(test_code,body_code){return $send(this,"push",[this.$while_open()].concat($to_a(test_code)).concat([this.$while_close()])),$send(this,"indent",[],(function $$4(){return $send(null==$$4.$$s?this:$$4.$$s,"line",$to_a(body_code))}),{$$arity:0,$$s:this}),this.$line("}")}),2),$def(self,"$while_open",(function(){return"while ("}),0),$def(self,"$while_close",(function(){return") {"}),0),$def(self,"$uses_redo?",(function(){return this.$while_loop()["$[]"]("use_redo")}),0),$def(self,"$wrap_in_closure?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$expr?"]())?$ret_or_1:this["$recv?"]()}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"UntilNode");self.$handle("until"),self.$private(),$def(self,"$while_open",(function(){return"while (!("}),0),$def(self,"$while_close",(function(){return")) {"}),0)}($nesting[0],$$("WhileNode")),function($base,$super){var self=$klass($base,$super,"WhilePostNode");self.$handle("while_post"),self.$private(),$def(self,"$compile_while",(function(test_code,body_code){return this.$push("do {"),$send(this,"indent",[],(function $$7(){return $send(null==$$7.$$s?this:$$7.$$s,"line",$to_a(body_code))}),{$$arity:0,$$s:this}),$send(this,"line",["} ",this.$while_open()].concat($to_a(test_code)).concat([this.$while_close()]))}),2),$def(self,"$while_close",(function(){return");"}),0)}($nesting[0],$$("WhileNode")),function($base,$super){var self=$klass($base,$super,"UntilPostNode");return self.$handle("until_post"),self.$private(),$def(self,"$while_open",(function(){return"while(!("}),0),$def(self,"$while_close",(function(){return"));"}),0)}($nesting[0],$$("WhilePostNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/hash"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$def=Opal.def,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$to_ary=Opal.to_ary,$hash2=Opal.hash2,$rb_minus=Opal.rb_minus;return Opal.add_stubs("require,handle,attr_accessor,each,children,===,type,<<,[],all?,keys,include?,has_kwsplat,compile_merge,simple_keys?,compile_hash2,compile_hash,helper,==,empty?,expr,s,each_with_index,push,wrap,times,size,inspect,to_s,values,[]=,-,join,value"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"HashNode");self.$handle("hash"),self.$attr_accessor("has_kwsplat","keys","values"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),self.has_kwsplat=!1,self.keys=[],self.values=[],$send(self.$children(),"each",[],(function $$1(child){var $ret_or_1,self=null==$$1.$$s?this:$$1.$$s;return null==self.keys&&(self.keys=nil),null==self.values&&(self.values=nil),null==child&&(child=nil),$eqeqeq("kwsplat",$ret_or_1=child.$type())?self.has_kwsplat=!0:$eqeqeq("pair",$ret_or_1)?(self.keys["$<<"](child.$children()["$[]"](0)),self.values["$<<"](child.$children()["$[]"](1))):nil}),{$$arity:1,$$s:self})}),-1),$def(self,"$simple_keys?",(function(){return $send(this.$keys(),"all?",[],(function(key){return null==key&&(key=nil),["sym","str"]["$include?"](key.$type())}),1)}),0),$def(self,"$compile",(function(){return $truthy(this.$has_kwsplat())?this.$compile_merge():$truthy(this["$simple_keys?"]())?this.$compile_hash2():this.$compile_hash()}),0),$def(self,"$compile_merge",(function(){var $a,result=nil,seq=nil;return this.$helper("hash"),result=($a=[[],[]])[0],seq=$a[1],$send(this.$children(),"each",[],(function $$4(child){var self=null==$$4.$$s?this:$$4.$$s;return null==child&&(child=nil),$eqeq(child.$type(),"kwsplat")?($truthy(seq["$empty?"]())||result["$<<"](self.$expr($send(self,"s",["hash"].concat($to_a(seq))))),result["$<<"](self.$expr(child)),seq=[]):seq["$<<"](child)}),{$$arity:1,$$s:this}),$truthy(seq["$empty?"]())||result["$<<"](this.$expr($send(this,"s",["hash"].concat($to_a(seq))))),$send(result,"each_with_index",[],(function $$5(fragment,idx){var self=null==$$5.$$s?this:$$5.$$s;return null==fragment&&(fragment=nil),null==idx&&(idx=nil),$eqeq(idx,0)?self.$push(fragment):self.$push(".$merge(",fragment,")")}),{$$arity:2,$$s:this})}),0),$def(self,"$compile_hash",(function(){return this.$helper("hash"),$send(this.$children(),"each_with_index",[],(function $$6(pair,idx){var $a,$b,key,value,self=null==$$6.$$s?this:$$6.$$s;return null==pair&&(pair=nil),null==idx&&(idx=nil),$b=pair.$children(),key=null==($a=$to_ary($b))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],$eqeq(idx,0)||self.$push(", "),self.$push(self.$expr(key),", ",self.$expr(value))}),{$$arity:2,$$s:this}),this.$wrap("$hash(",")")}),0),$def(self,"$compile_hash2",(function(){var $a,hash_obj=nil,hash_keys=nil;return $a=[$hash2([],{}),[]],hash_obj=$a[0],hash_keys=$a[1],this.$helper("hash2"),$send(this.$keys().$size(),"times",[],(function $$7(idx){var key,$writer,self=null==$$7.$$s?this:$$7.$$s;return null==idx&&(idx=nil),key=self.$keys()["$[]"](idx).$children()["$[]"](0).$to_s().$inspect(),$truthy(hash_obj["$include?"](key))||hash_keys["$<<"](key),$writer=[key,self.$expr(self.$values()["$[]"](idx))],$send(hash_obj,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$send(hash_keys,"each_with_index",[],(function $$8(key,idx){var self=null==$$8.$$s?this:$$8.$$s;return null==key&&(key=nil),null==idx&&(idx=nil),$eqeq(idx,0)||self.$push(", "),self.$push(key+": "),self.$push(hash_obj["$[]"](key))}),{$$arity:2,$$s:this}),this.$wrap("$hash2(["+hash_keys.$join(", ")+"], {","})")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"KwSplatNode");return self.$handle("kwsplat"),self.$children("value"),$def(self,"$compile",(function(){return this.$push("Opal.to_hash(",this.$expr(this.$value()),")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/array"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def;return Opal.add_stubs("require,handle,empty?,children,push,each,==,type,expr,<<,fragment"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ArrayNode");return self.$handle("array"),$def(self,"$compile",(function(){var $a,code=nil,work=nil,join=nil;return $truthy(this.$children()["$empty?"]())?this.$push("[]"):(code=($a=[[],[]])[0],work=$a[1],$send(this.$children(),"each",[],(function $$1(child){var splat,part,self=null==$$1.$$s?this:$$1.$$s;return null==child&&(child=nil),splat=child.$type()["$=="]("splat"),part=self.$expr(child),$truthy(splat)?($truthy(work["$empty?"]())?$truthy(code["$empty?"]())?code["$<<"](self.$fragment("[].concat("))["$<<"](part)["$<<"](self.$fragment(")")):code["$<<"](self.$fragment(".concat("))["$<<"](part)["$<<"](self.$fragment(")")):($truthy(code["$empty?"]())?code["$<<"](self.$fragment("["))["$<<"](work)["$<<"](self.$fragment("]")):code["$<<"](self.$fragment(".concat(["))["$<<"](work)["$<<"](self.$fragment("])")),code["$<<"](self.$fragment(".concat("))["$<<"](part)["$<<"](self.$fragment(")"))),work=[]):($truthy(work["$empty?"]())||work["$<<"](self.$fragment(", ")),work["$<<"](part))}),{$$arity:1,$$s:this}),$truthy(work["$empty?"]())||(join=[this.$fragment("["),work,this.$fragment("]")],$truthy(code["$empty?"]())?code=join:code.$push([this.$fragment(".concat("),join,this.$fragment(")")])),this.$push(code))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/defined"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$eqeqeq=Opal.eqeqeq,$eqeq=Opal.eqeq,$def=Opal.def,$truthy=Opal.truthy,$to_a=Opal.to_a,$slice=Opal.slice,$send=Opal.send,$range=Opal.range;return Opal.add_stubs("require,handle,children,===,type,value,push,inspect,to_s,==,[],size,compile_defined_send,wrap,compile_defined_ivar,compile_defined_super,compile_defined_yield,compile_defined_xstr,compile_defined_const,compile_defined_cvar,compile_defined_gvar,compile_defined_back_ref,compile_defined_nth_ref,compile_defined_array,respond_to?,__send__,new_temp,scope,expr,wrap_with_try_catch,mid_to_jsid,compile_defined,compile_send_recv_doesnt_raise,self,each,s,uses_block!,block_name,find_parent_def,nil?,relative_access,absolute_const,top_scope,class_variable_owner,helper,include?,each_with_index"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DefinedNode");return self.$handle("defined?"),self.$children("value"),$def(self,"$compile",(function(){var $ret_or_1;return $eqeqeq("self",$ret_or_1=this.$value().$type())||$eqeqeq("nil",$ret_or_1)||$eqeqeq("false",$ret_or_1)||$eqeqeq("true",$ret_or_1)?this.$push(this.$value().$type().$to_s().$inspect()):$eqeqeq("lvasgn",$ret_or_1)||$eqeqeq("ivasgn",$ret_or_1)||$eqeqeq("gvasgn",$ret_or_1)||$eqeqeq("cvasgn",$ret_or_1)||$eqeqeq("casgn",$ret_or_1)||$eqeqeq("op_asgn",$ret_or_1)||$eqeqeq("or_asgn",$ret_or_1)||$eqeqeq("and_asgn",$ret_or_1)?this.$push("'assignment'"):$eqeqeq("lvar",$ret_or_1)?this.$push("'local-variable'"):$eqeqeq("begin",$ret_or_1)?$eqeq(this.$value().$children().$size(),1)&&$eqeq(this.$value().$children()["$[]"](0).$type(),"masgn")?this.$push("'assignment'"):this.$push("'expression'"):$eqeqeq("send",$ret_or_1)?(this.$compile_defined_send(this.$value()),this.$wrap("("," ? 'method' : nil)")):$eqeqeq("ivar",$ret_or_1)?(this.$compile_defined_ivar(this.$value()),this.$wrap("("," ? 'instance-variable' : nil)")):$eqeqeq("zsuper",$ret_or_1)||$eqeqeq("super",$ret_or_1)?this.$compile_defined_super():$eqeqeq("yield",$ret_or_1)?(this.$compile_defined_yield(),this.$wrap("("," ? 'yield' : nil)")):$eqeqeq("xstr",$ret_or_1)?this.$compile_defined_xstr(this.$value()):$eqeqeq("const",$ret_or_1)?(this.$compile_defined_const(this.$value()),this.$wrap("("," ? 'constant' : nil)")):$eqeqeq("cvar",$ret_or_1)?(this.$compile_defined_cvar(this.$value()),this.$wrap("("," ? 'class variable' : nil)")):$eqeqeq("gvar",$ret_or_1)?(this.$compile_defined_gvar(this.$value()),this.$wrap("("," ? 'global-variable' : nil)")):$eqeqeq("back_ref",$ret_or_1)?(this.$compile_defined_back_ref(),this.$wrap("("," ? 'global-variable' : nil)")):$eqeqeq("nth_ref",$ret_or_1)?(this.$compile_defined_nth_ref(),this.$wrap("("," ? 'global-variable' : nil)")):$eqeqeq("array",$ret_or_1)?(this.$compile_defined_array(this.$value()),this.$wrap("("," ? 'expression' : nil)")):this.$push("'expression'")}),0),$def(self,"$compile_defined",(function(node){var type,node_tmp=nil;return type=node.$type(),$truthy(this["$respond_to?"]("compile_defined_"+type))?this.$__send__("compile_defined_"+type,node):(node_tmp=this.$scope().$new_temp(),this.$push("("+node_tmp+" = ",this.$expr(node),")"),node_tmp)}),1),$def(self,"$wrap_with_try_catch",(function(code){var returning_tmp;return returning_tmp=this.$scope().$new_temp(),this.$push("("+returning_tmp+" = (function() { try {"),this.$push(" return "+code+";"),this.$push("} catch ($err) {"),this.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),this.$push(" try {"),this.$push(" return false;"),this.$push(" } finally { Opal.pop_exception() }"),this.$push(" } else { throw $err; }"),this.$push("}})())"),returning_tmp}),1),$def(self,"$compile_send_recv_doesnt_raise",(function(recv_code){return this.$wrap_with_try_catch(recv_code)}),1),$def(self,"$compile_defined_send",(function(node){var $a,args,mid,recv_value_tmp,meth_tmp,recv=nil,method_name=nil,recv_code=nil,recv_tmp=nil;return recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],args=$slice.call($a,2),mid=this.$mid_to_jsid(method_name.$to_s()),$truthy(recv)?(recv_code=this.$compile_defined(recv),this.$push(" && "),$eqeq(recv.$type(),"send")&&(recv_code=this.$compile_send_recv_doesnt_raise(recv_code),this.$push(" && ")),recv_tmp=this.$scope().$new_temp(),this.$push("("+recv_tmp+" = ",recv_code,", "+recv_tmp+") && ")):recv_tmp=this.$scope().$self(),recv_value_tmp=this.$scope().$new_temp(),this.$push("("+recv_value_tmp+" = "+recv_tmp+") && "),meth_tmp=this.$scope().$new_temp(),this.$push("((("+meth_tmp+" = "+recv_value_tmp+mid+") && !"+meth_tmp+".$$stub)"),this.$push(" || "+recv_value_tmp+"['$respond_to_missing?']('"+method_name+"'))"),$send(args,"each",[],(function $$1(arg){var self=null==$$1.$$s?this:$$1.$$s;return null==arg&&(arg=nil),$eqeqeq("block_pass",arg.$type())?nil:(self.$push(" && "),self.$compile_defined(arg))}),{$$arity:1,$$s:this}),this.$wrap("(",")"),meth_tmp+"()"}),1),$def(self,"$compile_defined_ivar",(function(node){var name,tmp;return name=node.$children()["$[]"](0).$to_s()["$[]"]($range(1,-1,!1)),tmp=this.$scope().$new_temp(),this.$push("("+tmp+" = "+this.$scope().$self()+"['"+name+"'], "+tmp+" != null && "+tmp+" !== nil)"),tmp}),1),$def(self,"$compile_defined_super",(function(){return this.$push(this.$expr(this.$s("defined_super")))}),0),$def(self,"$compile_defined_yield",(function(){var block_name,$ret_or_1;return this.$scope()["$uses_block!"](),block_name=$truthy($ret_or_1=this.$scope().$block_name())?$ret_or_1:this.$scope().$find_parent_def().$block_name(),this.$push("("+block_name+" != null && "+block_name+" !== nil)"),block_name}),0),$def(self,"$compile_defined_xstr",(function(node){return this.$push("(typeof(",this.$expr(node),') !== "undefined")')}),1),$def(self,"$compile_defined_const",(function(node){var $a,const_name,const_tmp,const_scope=nil,const_scope_tmp=nil;return const_scope=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],const_name=null==$a[1]?nil:$a[1],const_tmp=this.$scope().$new_temp(),$truthy(const_scope["$nil?"]())?this.$push("("+const_tmp+" = "+this.$scope().$relative_access()+"('"+const_name+"', 'skip_raise'))"):$eqeq(const_scope,this.$s("cbase"))?this.$push("("+const_tmp+" = "+this.$top_scope().$absolute_const()+"('::', '"+const_name+"', 'skip_raise'))"):(const_scope_tmp=this.$compile_defined(const_scope),this.$push(" && ("+const_tmp+" = "+this.$top_scope().$absolute_const()+"("+const_scope_tmp+", '"+const_name+"', 'skip_raise'))")),const_tmp}),1),$def(self,"$compile_defined_cvar",(function(node){var $a,cvar_name,cvar_tmp;return cvar_name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],cvar_tmp=this.$scope().$new_temp(),this.$push("("+cvar_tmp+" = "+this.$class_variable_owner()+".$$cvars['"+cvar_name+"'], "+cvar_tmp+" != null)"),cvar_tmp}),1),$def(self,"$compile_defined_gvar",(function(node){var gvar_temp,name=nil;return this.$helper("gvars"),name=node.$children()["$[]"](0).$to_s()["$[]"]($range(1,-1,!1)),gvar_temp=this.$scope().$new_temp(),$truthy(["~","!"]["$include?"](name))?this.$push("("+gvar_temp+" = ",this.$expr(node)," || true)"):this.$push("("+gvar_temp+" = $gvars["+name.$inspect()+"], "+gvar_temp+" != null)"),gvar_temp}),1),$def(self,"$compile_defined_back_ref",(function(){var back_ref_temp;return this.$helper("gvars"),back_ref_temp=this.$scope().$new_temp(),this.$push("("+back_ref_temp+" = $gvars['~'], "+back_ref_temp+" != null && "+back_ref_temp+" !== nil)"),back_ref_temp}),0),$def(self,"$compile_defined_nth_ref",(function(){var nth_ref_tmp;return this.$helper("gvars"),nth_ref_tmp=this.$scope().$new_temp(),this.$push("("+nth_ref_tmp+" = $gvars['~'], "+nth_ref_tmp+" != null && "+nth_ref_tmp+" != nil)"),nth_ref_tmp}),0),$def(self,"$compile_defined_array",(function(node){return $send(node.$children(),"each_with_index",[],(function $$2(child,idx){var self=null==$$2.$$s?this:$$2.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),$eqeq(idx,0)||self.$push(" && "),self.$compile_defined(child)}),{$$arity:2,$$s:this})}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/masgn"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def,$rb_ge=Opal.rb_ge,$not=Opal.not,$rb_plus=Opal.rb_plus;return Opal.add_stubs("require,freeze,handle,children,new_temp,scope,==,type,rhs,push,expr,any?,size,compile_masgn,lhs,helper,queue_temp,take_while,!=,drop,each_with_index,compile_assignment,empty?,shift,[],<<,dup,s,>=,!,updated,include?,+,last,raise"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"MassAssignNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),self.$handle("masgn"),self.$children("lhs","rhs"),$def(self,"$compile",(function(){var array,rhs_len=nil,retval=nil;return array=this.$scope().$new_temp(),$eqeq(this.$rhs().$type(),"array")?(this.$push(array+" = ",this.$expr(this.$rhs())),rhs_len=$truthy($send(this.$rhs().$children(),"any?",[],(function(c){return null==c&&(c=nil),c.$type()["$=="]("splat")}),1))?nil:this.$rhs().$children().$size(),this.$compile_masgn(this.$lhs().$children(),array,rhs_len),this.$push(", "+array)):(this.$helper("to_ary"),retval=this.$scope().$new_temp(),this.$push(retval+" = ",this.$expr(this.$rhs())),this.$push(", "+array+" = $to_ary("+retval+")"),this.$compile_masgn(this.$lhs().$children(),array),this.$push(", "+retval),this.$scope().$queue_temp(retval)),this.$scope().$queue_temp(array)}),0),$def(self,"$compile_masgn",(function(lhs_items,array,len){var pre_splat=nil,post_splat=nil,splat=nil,part=nil,tmp=nil;return null==len&&(len=nil),pre_splat=$send(lhs_items,"take_while",[],(function(child){return null==child&&(child=nil),child.$type()["$!="]("splat")}),1),post_splat=lhs_items.$drop(pre_splat.$size()),$send(pre_splat,"each_with_index",[],(function $$3(child,idx){return null==child&&(child=nil),null==idx&&(idx=nil),(null==$$3.$$s?this:$$3.$$s).$compile_assignment(child,array,idx,len)}),{$$arity:2,$$s:this}),$truthy(post_splat["$empty?"]())?nil:(splat=post_splat.$shift(),$truthy(post_splat["$empty?"]())?$truthy(part=splat.$children()["$[]"](0))?(this.$helper("slice"),part=part.$dup()["$<<"](this.$s("js_tmp","$slice.call("+array+", "+pre_splat.$size()+")")),this.$push(", "),this.$push(this.$expr(part))):nil:(tmp=this.$scope().$new_temp(),this.$push(", "+tmp+" = "+array+".length - "+post_splat.$size()),this.$push(", "+tmp+" = ("+tmp+" < "+pre_splat.$size()+") ? "+pre_splat.$size()+" : "+tmp),$truthy(part=splat.$children()["$[]"](0))&&(this.$helper("slice"),part=part.$dup()["$<<"](this.$s("js_tmp","$slice.call("+array+", "+pre_splat.$size()+", "+tmp+")")),this.$push(", "),this.$push(this.$expr(part))),$send(post_splat,"each_with_index",[],(function $$4(child,idx){var self=null==$$4.$$s?this:$$4.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),$eqeq(idx,0)?self.$compile_assignment(child,array,tmp):self.$compile_assignment(child,array,tmp+" + "+idx)}),{$$arity:2,$$s:this}),this.$scope().$queue_temp(tmp)))}),-3),$def(self,"$compile_assignment",(function(child,array,idx,len){var assign=nil,part=nil,tmp=nil;if(null==len&&(len=nil),assign=$not(len)||$truthy($rb_ge(idx,len))?this.$s("js_tmp","("+array+"["+idx+"] == null ? nil : "+array+"["+idx+"])"):this.$s("js_tmp",array+"["+idx+"]"),part=child.$updated(),$truthy($$("SIMPLE_ASSIGNMENT")["$include?"](child.$type())))part=part.$updated(nil,$rb_plus(part.$children(),[assign]));else if($eqeq(child.$type(),"send"))part=part.$updated(nil,$rb_plus(part.$children(),[assign]));else if($eqeq(child.$type(),"attrasgn"))part.$last()["$<<"](assign);else{if($eqeq(child.$type(),"mlhs"))return this.$helper("to_ary"),tmp=this.$scope().$new_temp(),this.$push(", ("+tmp+" = $to_ary("+assign.$children()["$[]"](0)+")"),this.$compile_masgn(child.$children(),tmp),this.$push(")"),this.$scope().$queue_temp(tmp),nil;this.$raise("Bad child node in masgn LHS: "+child+". LHS: "+this.$lhs())}return this.$push(", "),this.$push(this.$expr(part))}),-4)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/arglist"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$to_a=Opal.to_a,$def=Opal.def;return Opal.add_stubs("require,handle,each,children,==,type,expr,empty?,<<,fragment,push"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ArglistNode");return self.$handle("arglist"),$def(self,"$compile",(function(){var $a,code=nil,work=nil,join=nil;return code=($a=[[],[]])[0],work=$a[1],$send(this.$children(),"each",[],(function $$1(current){var splat,arg,self=null==$$1.$$s?this:$$1.$$s;return null==current&&(current=nil),splat=current.$type()["$=="]("splat"),arg=self.$expr(current),$truthy(splat)?($truthy(work["$empty?"]())?$truthy(code["$empty?"]())?code["$<<"](arg):code["$<<"](self.$fragment(".concat("))["$<<"](arg)["$<<"](self.$fragment(")")):($truthy(code["$empty?"]())?code["$<<"](self.$fragment("["))["$<<"](work)["$<<"](self.$fragment("]")):code["$<<"](self.$fragment(".concat(["))["$<<"](work)["$<<"](self.$fragment("])")),code["$<<"](self.$fragment(".concat("))["$<<"](arg)["$<<"](self.$fragment(")"))),work=[]):($truthy(work["$empty?"]())||work["$<<"](self.$fragment(", ")),work["$<<"](arg))}),{$$arity:1,$$s:this}),$truthy(work["$empty?"]())||(join=work,$truthy(code["$empty?"]())?code=join:code["$<<"](this.$fragment(".concat(["))["$<<"](join)["$<<"](this.$fragment("])"))),$send(this,"push",$to_a(code))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/x_string"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def,$defs=Opal.defs,$lambda=Opal.lambda,$eqeqeq=Opal.eqeqeq,$eqeq=Opal.eqeq,$not=Opal.not,$range=Opal.range;return Opal.add_stubs("handle,unpack_return,children,strip_empty_children,single_line?,compile_single_line,each,compile_child,recv?,wrap,push,==,size,none?,type,end_with?,source,expression,loc,dup,nil?,empty?,rstrip,any?,[],first,shift,last,pop,private,===,include?,self,scope,new,expr,raise,s,strip,=~,!,extract_last_value,expr?,warning,compiler,line"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"XStringNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.should_add_semicolon=$proto.returning=nil,self.$handle("xstr"),$def(self,"$compile",(function(){var unpacked_children,stripped_children;return this.should_add_semicolon=!1,unpacked_children=this.$unpack_return(this.$children()),stripped_children=$$("XStringNode").$strip_empty_children(unpacked_children),$truthy($$("XStringNode")["$single_line?"](stripped_children))?this.$compile_single_line(stripped_children):$send(unpacked_children,"each",[],(function $$1(c){return null==c&&(c=nil),(null==$$1.$$s?this:$$1.$$s).$compile_child(c)}),{$$arity:1,$$s:this}),$truthy(this["$recv?"]())&&this.$wrap("(",")"),$truthy(this.should_add_semicolon)?this.$push(";"):nil}),0),$defs(self,"$single_line?",(function(children){var $ret_or_1;return $truthy($ret_or_1=children.$size()["$=="](1))?$ret_or_1:$send(children,"none?",[],(function(c){var $ret_or_2;return null==c&&(c=nil),$truthy($ret_or_2=c.$type()["$=="]("str"))?c.$loc().$expression().$source()["$end_with?"]("\n"):$ret_or_2}),1)}),1),$defs(self,"$strip_empty_children",(function(children){var empty_line=nil,$ret_or_1=nil;for(children=children.$dup(),empty_line=$lambda((function(child){var $ret_or_1,$ret_or_2=nil;return null==child&&(child=nil),$truthy($ret_or_1=child["$nil?"]())?$ret_or_1:$truthy($ret_or_2=child.$type()["$=="]("str"))?child.$loc().$expression().$source().$rstrip()["$empty?"]():$ret_or_2}),1);$truthy($truthy($ret_or_1=children["$any?"]())?empty_line["$[]"](children.$first()):$ret_or_1);)children.$shift();for(;$truthy($truthy($ret_or_1=children["$any?"]())?empty_line["$[]"](children.$last()):$ret_or_1);)children.$pop();return children}),1),self.$private(),$def(self,"$compile_child",(function(child){var $ret_or_1,value=nil;return $eqeqeq("str",$ret_or_1=child.$type())?(value=child.$loc().$expression().$source(),$truthy(value["$include?"]("self"))&&this.$scope().$self(),this.$push($$("Fragment").$new(value,this.$scope(),child))):$eqeqeq("begin",$ret_or_1)||$eqeqeq("gvar",$ret_or_1)||$eqeqeq("ivar",$ret_or_1)||$eqeqeq("nil",$ret_or_1)?this.$push(this.$expr(child)):this.$raise("Unsupported xstr part: "+child.$type())}),1),$def(self,"$compile_single_line",(function(children){var single_child,has_embeded_return=nil,first_child=nil,$ret_or_1=nil,last_child=nil,last_value=nil;return has_embeded_return=!1,first_child=children.$shift(),single_child=children["$empty?"](),first_child=$truthy($ret_or_1=first_child)?$ret_or_1:this.$s("nil"),$eqeq(first_child.$type(),"str")&&(has_embeded_return=first_child.$loc().$expression().$source().$strip()["$=~"](/^return\b/)),$truthy(this.returning)&&$not(has_embeded_return)&&this.$push("return "),last_child=$truthy($ret_or_1=children.$pop())?$ret_or_1:first_child,$eqeq(last_child.$type(),"str")&&(last_value=this.$extract_last_value(last_child)),$truthy(single_child)||(this.should_add_semicolon=!1,this.$compile_child(first_child),$send(children,"each",[],(function $$5(c){return null==c&&(c=nil),(null==$$5.$$s?this:$$5.$$s).$compile_child(c)}),{$$arity:1,$$s:this})),$eqeq(last_child.$type(),"str")?this.$push($$("Fragment").$new(last_value,this.$scope(),last_child)):this.$compile_child(last_child)}),1),$def(self,"$extract_last_value",(function(last_child){var last_value=nil;return last_value=last_child.$loc().$expression().$source().$rstrip(),$truthy(last_value["$include?"]("self"))&&this.$scope().$self(),($truthy(this.returning)||$truthy(this["$expr?"]()))&&$truthy(last_value["$end_with?"](";"))&&(this.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",last_child.$line()),last_value=last_value["$[]"]($range(0,-2,!1))),$truthy(this.returning)&&(this.should_add_semicolon=!0),last_value}),1),$def(self,"$unpack_return",(function(children){var first_child=nil;return first_child=children.$first(),this.returning=!1,$eqeq(first_child.$type(),"js_return")&&(this.returning=!0,children=first_child.$children()),children}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/lambda"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send=Opal.send,$def=Opal.def;return Opal.add_stubs("require,handle,children,helper,defines_lambda,scope,push,expr,iter"),self.$require("opal/nodes/call"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"LambdaNode");return self.$handle("lambda"),self.$children("iter"),$def(self,"$compile",(function(){return this.$helper("lambda"),$send(this.$scope(),"defines_lambda",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return self.$push("$lambda(",self.$expr(self.$iter()),")")}),{$$arity:0,$$s:this})}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes"]=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("require"),self.$require("opal/nodes/base"),self.$require("opal/nodes/literal"),self.$require("opal/nodes/variables"),self.$require("opal/nodes/constants"),self.$require("opal/nodes/call"),self.$require("opal/nodes/csend"),self.$require("opal/nodes/call_special"),self.$require("opal/nodes/module"),self.$require("opal/nodes/class"),self.$require("opal/nodes/singleton_class"),self.$require("opal/nodes/args"),self.$require("opal/nodes/args/arity_check"),self.$require("opal/nodes/iter"),self.$require("opal/nodes/def"),self.$require("opal/nodes/defs"),self.$require("opal/nodes/if"),self.$require("opal/nodes/logic"),self.$require("opal/nodes/definitions"),self.$require("opal/nodes/yield"),self.$require("opal/nodes/rescue"),self.$require("opal/nodes/super"),self.$require("opal/nodes/top"),self.$require("opal/nodes/while"),self.$require("opal/nodes/hash"),self.$require("opal/nodes/array"),self.$require("opal/nodes/defined"),self.$require("opal/nodes/masgn"),self.$require("opal/nodes/arglist"),self.$require("opal/nodes/x_string"),self.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$eqeq=Opal.eqeq,$range=Opal.range,$to_ary=Opal.to_ary;return Opal.add_stubs("empty?,[],last_token_position,drop_while,lines,==,join,private,last,end_pos"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"EofContent"),$nesting=[self].concat($parent_nesting),$proto=self.$$prototype;return $proto.tokens=$proto.source=nil,$const_set($nesting[0],"DATA_SEPARATOR","__END__\n"),$def(self,"$initialize",(function(tokens,source){return this.tokens=tokens,this.source=source}),2),$def(self,"$eof",(function(){var eof_content=nil,$ret_or_1=nil;return $truthy(this.tokens["$empty?"]())?nil:(eof_content=this.source["$[]"](Opal.Range.$new(this.$last_token_position(),-1,!1)),$truthy(eof_content)?(eof_content=$send(eof_content.$lines(),"drop_while",[],(function(line){return null==line&&(line=nil),line["$=="]("\n")}),1),$eqeq(eof_content["$[]"](0),"__END__\n")?(eof_content=$truthy($ret_or_1=eof_content["$[]"]($range(1,-1,!1)))?$ret_or_1:[]).$join():$eqeq(eof_content,["__END__"])?"":nil):nil)}),0),self.$private(),$def(self,"$last_token_position",(function(){var $a,$b,last_token_info;return $b=this.tokens.$last(),null==($a=$to_ary($b))[0]?nil:$a[0],last_token_info=null==$a[1]?nil:$a[1],null==($a=$to_ary($b=last_token_info))[0]?nil:$a[0],(null==$a[1]?nil:$a[1]).$end_pos()}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/errors"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$defs=Opal.defs,$rb_plus=Opal.rb_plus,$alias=Opal.alias;return Opal.add_stubs("attr_reader,attr_accessor,new,respond_to?,location,location=,-,diagnostic,diagnostic=,to_a,backtrace,unshift,to_s,set_backtrace,path,lineno,+,label,line,lineno=,source_line,label=,expression"),function($base,$parent_nesting){var self=$module($base,"Opal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $klass($nesting[0],$$("StandardError"),"Error"),function($base,$super){var self=$klass($base,$super,"GemNotFound");self.$attr_reader("gem_name"),$def(self,"$initialize",(function $$initialize(gem_name){return delete $$initialize.$$p,this.gem_name=gem_name,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",["can't find gem "+gem_name],null)}),1)}($nesting[0],$$("Error")),function($base,$super){$klass($base,$super,"CompilationError").$attr_accessor("location")}($nesting[0],$$("Error")),$klass($nesting[0],$$("CompilationError"),"ParsingError"),$klass($nesting[0],$$("ParsingError"),"RewritingError"),function($base,$super){$klass($base,$super,"SyntaxError").$attr_accessor("location")}($nesting[0],$$$("SyntaxError")),$defs(self,"$opal_location_from_error",(function(error){var opal_location,$writer=nil;return opal_location=$$("OpalBacktraceLocation").$new(),$truthy(error["$respond_to?"]("location"))&&($writer=[error.$location()],$send(opal_location,"location=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(error["$respond_to?"]("diagnostic"))&&($writer=[error.$diagnostic()],$send(opal_location,"diagnostic=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),opal_location}),1),$defs(self,"$add_opal_location_to_error",(function(opal_location,error){var backtrace=nil;return(backtrace=error.$backtrace().$to_a()).$unshift(opal_location.$to_s()),error.$set_backtrace(backtrace),error}),2),function($base,$super){var self=$klass($base,null,"OpalBacktraceLocation");return self.$attr_accessor("path","lineno","label"),$def(self,"$initialize",(function(path,lineno,label){var $a;return null==path&&(path=nil),null==lineno&&(lineno=nil),null==label&&(label=nil),$a=[path,lineno,label],this.path=$a[0],this.lineno=$a[1],this.label=$a[2],$a}),-1),$def(self,"$to_s",(function(){var string=nil;return string=this.$path(),$truthy(this.$lineno())&&(string=$rb_plus(string,":"+this.$lineno())),string=$rb_plus(string,":in "),string=$truthy(this.$label())?$rb_plus(string,"`"+this.$label()+"'"):$rb_plus(string,"unknown")}),0),$alias(self,"line","lineno"),$def(self,"$diagnostic=",(function(diagnostic){var $writer;return $truthy(diagnostic)?($writer=[diagnostic.$location()],$send(this,"location=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),1),$def(self,"$location=",(function(location){var $writer=nil;return $truthy(location)?($writer=[location.$line()],$send(this,"lineno=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(location["$respond_to?"]("source_line"))?($writer=[location.$source_line()],$send(this,"label=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy(location["$respond_to?"]("expression"))?($writer=[location.$expression().$source_line()],$send(this,"label=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil):nil}),1)}($nesting[0])}($nesting[0],$nesting)},Opal.modules["opal/magic_comments"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$module=Opal.module,$const_set=Opal.const_set,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$rb_ge=Opal.rb_ge,$eqeqeq=Opal.eqeqeq,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$defs=Opal.defs;return Opal.add_stubs("freeze,line,loc,take,each,>=,any?,scan,text,to_sym,===,[]=,-"),function($base,$parent_nesting){var self=$module($base,"MagicComments"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"MAGIC_COMMENT_RE",/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),$const_set($nesting[0],"EMACS_MAGIC_COMMENT_RE",/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),$defs(self,"$parse",(function(sexp,comments){var flags,first_line=nil;return flags=$hash2([],{}),$truthy(sexp)&&(first_line=sexp.$loc().$line(),comments=comments.$take(first_line)),$send(comments,"each",[],(function(comment){var parts=nil;return null==comment&&(comment=nil),$truthy(first_line)&&$truthy($rb_ge(comment.$loc().$line(),first_line))?nil:$truthy((parts=comment.$text().$scan($$("MAGIC_COMMENT_RE")))["$any?"]())||$truthy((parts=comment.$text().$scan($$("EMACS_MAGIC_COMMENT_RE")))["$any?"]())?$send(parts,"each",[],(function(key,value){var $writer,$ret_or_1;return null==key&&(key=nil),null==value&&(value=nil),$writer=[key.$to_sym(),$eqeqeq("true",$ret_or_1=value)||!$eqeqeq("false",$ret_or_1)&&value],$send(flags,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2):nil}),1),flags}),2)}($$("Opal"),$nesting)},Opal.modules["opal/compiler"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$hash2=Opal.hash2,$defs=Opal.defs,$klass=Opal.klass,$const_set=Opal.const_set,$send=Opal.send,$truthy=Opal.truthy,$not=Opal.not,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$Opal=Opal.Opal,$to_ary=Opal.to_ary,$alias=Opal.alias,$eqeqeq=Opal.eqeqeq,$regexp=Opal.regexp,$rb_plus=Opal.rb_plus,$slice=Opal.slice,$eqeq=Opal.eqeq;return Opal.add_stubs("require,compile,new,freeze,join,dirname,first,split,basename,to_s,cleanpath,Pathname,fetch,define_method,option_value,key?,[],!,include?,raise,inspect,[]=,-,compiler_option,attr_reader,attr_accessor,parse,re_raise_with_location,flatten,process,end_with?,code,last,<<,fragment,s,map,to_proc,file,source=,default_parser,tokenize,requirable?,eval?,tap,meta,location,children,associate_locations,eof,magic_comments,to_sym,strip,async_await_before_typecasting,===,async_await_set_to_regexp,to_a,gsub,escape,location=,opal_location_from_error,path=,label,lines,to_i,line,label=,message,set_backtrace,backtrace,add_opal_location_to_error,warn,empty?,+,start_with?,helpers,new_temp,queue_temp,push_while,pop_while,in_while?,nil?,scope,handlers,type,compile_to_fragments,error,returns,updated,==,uses_block!,block_name,find_parent_def,cache,source_map"),self.$require("set"),self.$require("opal/parser"),self.$require("opal/fragment"),self.$require("opal/nodes"),self.$require("opal/eof_content"),self.$require("opal/errors"),self.$require("opal/magic_comments"),function($base,$parent_nesting){var self=$module($base,"Opal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$compile",(function(source,options){return null==options&&(options=$hash2([],{})),$$("Compiler").$new(source,options).$compile()}),-2),function($base,$super,$parent_nesting){var self=$klass($base,null,"Compiler"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.option_values=$proto.options=$proto.magic_comments=$proto.fragments=$proto.source=$proto.buffer=$proto.source_map=$proto.result=$proto.helpers=$proto.method_calls=$proto.async_await=$proto.indent=$proto.unique=$proto.scope=$proto.case_stmt=$proto.handlers=$proto.requires=$proto.required_trees=$proto.autoloads=nil,$const_set($nesting[0],"INDENT"," "),$const_set($nesting[0],"COMPARE",["<",">","<=",">="].$freeze()),$defs(self,"$module_name",(function(path){return path=$$("File").$join($$("File").$dirname(path),$$("File").$basename(path).$split(".").$first()),this.$Pathname(path).$cleanpath().$to_s()}),1),$defs(self,"$compiler_option",(function(name,config){var method_name;return null==config&&(config=$hash2([],{})),method_name=config.$fetch("as",name),$send(this,"define_method",[method_name],(function $$1(){return(null==$$1.$$s?this:$$1.$$s).$option_value(name,config)}),{$$arity:0,$$s:this})}),-2),$def(self,"$option_value",(function(name,config){var default_value,magic_comment,$writer,valid_values=nil,value=nil;return $truthy(this.option_values["$key?"](name))?this.option_values["$[]"](name):(default_value=config["$[]"]("default"),valid_values=config["$[]"]("valid_values"),magic_comment=config["$[]"]("magic_comment"),value=this.options.$fetch(name,default_value),$truthy(magic_comment)&&$truthy(this.magic_comments["$key?"](name))&&(value=this.magic_comments.$fetch(name)),$truthy(valid_values)&&$not(valid_values["$include?"](value))&&this.$raise($$("ArgumentError"),"invalid value "+value.$inspect()+" for option "+name.$inspect()+" (valid values: "+valid_values.$inspect()+")"),$writer=[name,value],$send(this.option_values,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),2),self.$compiler_option("file",$hash2(["default"],{default:"(file)"})),self.$compiler_option("method_missing",$hash2(["default","as"],{default:!0,as:"method_missing?"})),self.$compiler_option("arity_check",$hash2(["default","as"],{default:!1,as:"arity_check?"})),self.$compiler_option("freezing",$hash2(["default","as"],{default:!0,as:"freezing?"})),self.$compiler_option("irb",$hash2(["default","as"],{default:!1,as:"irb?"})),self.$compiler_option("dynamic_require_severity",$hash2(["default","valid_values"],{default:"ignore",valid_values:["error","warning","ignore"]})),self.$compiler_option("requirable",$hash2(["default","as"],{default:!1,as:"requirable?"})),self.$compiler_option("esm",$hash2(["default","as"],{default:!1,as:"esm?"})),self.$compiler_option("inline_operators",$hash2(["default","as"],{default:!0,as:"inline_operators?"})),self.$compiler_option("eval",$hash2(["default","as"],{default:!1,as:"eval?"})),self.$compiler_option("enable_source_location",$hash2(["default","as"],{default:!1,as:"enable_source_location?"})),self.$compiler_option("use_strict",$hash2(["default","as","magic_comment"],{default:!1,as:"use_strict?",magic_comment:!0})),self.$compiler_option("parse_comments",$hash2(["default","as"],{default:!1,as:"parse_comments?"})),self.$compiler_option("scope_variables",$hash2(["default"],{default:[]})),self.$compiler_option("await",$hash2(["default","as","magic_comment"],{default:!1,as:"async_await",magic_comment:!0})),self.$attr_reader("result"),self.$attr_reader("fragments"),self.$attr_accessor("scope"),self.$attr_accessor("top_scope"),self.$attr_reader("case_stmt"),self.$attr_reader("eof_content"),self.$attr_reader("comments"),self.$attr_reader("magic_comments"),self.$attr_accessor("dynamic_cache_result"),$def(self,"$initialize",(function(source,options){return null==options&&(options=$hash2([],{})),this.source=source,this.indent="",this.unique=0,this.options=options,this.comments=$$("Hash").$new([]),this.case_stmt=nil,this.option_values=$hash2([],{}),this.magic_comments=$hash2([],{}),this.dynamic_cache_result=!1}),-2),$def(self,"$compile",(function(){return this.$parse(),this.fragments=$send(this,"re_raise_with_location",[],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;return null==self.sexp&&(self.sexp=nil),self.$process(self.sexp).$flatten()}),{$$arity:0,$$s:this}),$truthy(this.fragments.$last().$code()["$end_with?"]("\n"))||this.fragments["$<<"](this.$fragment("\n",nil,this.$s("newline"))),this.result=$send(this.fragments,"map",[],"code".$to_proc()).$join("")}),0),$def(self,"$parse",(function(){var $a,$b,comments,tokens,kind,$writer=nil,sexp=nil,first_node=nil;return this.buffer=$$$($$$($Opal,"Parser"),"SourceBuffer").$new(this.$file(),1),$writer=[this.source],$send(this.buffer,"source=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.parser=$$$($$("Opal"),"Parser").$default_parser(),$b=$send(this,"re_raise_with_location",[],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return null==self.parser&&(self.parser=nil),null==self.buffer&&(self.buffer=nil),self.parser.$tokenize(self.buffer)}),{$$arity:0,$$s:this}),sexp=null==($a=$to_ary($b))[0]?nil:$a[0],comments=null==$a[1]?nil:$a[1],tokens=null==$a[2]?nil:$a[2],kind=$truthy(this["$requirable?"]())?"require":$truthy(this["$eval?"]())?"eval":"main",this.sexp=$send(sexp,"tap",[],(function(i){return null==i&&(i=nil),$writer=["kind",kind],$send(i.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$truthy(sexp.$children().$first().$location())&&(first_node=sexp.$children().$first()),this.comments=$$$($$$($$$("Parser"),"Source"),"Comment").$associate_locations(first_node,comments),this.magic_comments=$$("MagicComments").$parse(first_node,comments),this.eof_content=$$("EofContent").$new(tokens,this.source).$eof()}),0),$def(self,"$source_map",(function(){var $ret_or_1;return $truthy($ret_or_1=this.source_map)?$ret_or_1:$$$($$$($Opal,"SourceMap"),"File").$new(this.fragments,this.$file(),this.source,this.result)}),0),$def(self,"$helpers",(function(){var $ret_or_1;return this.helpers=$truthy($ret_or_1=this.helpers)?$ret_or_1:$$("Set").$new($send(this.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],(function(h){return null==h&&(h=nil),h.$strip().$to_sym()}),1))}),0),$def(self,"$method_calls",(function(){var $ret_or_1;return this.method_calls=$truthy($ret_or_1=this.method_calls)?$ret_or_1:$$("Set").$new()}),0),$alias(self,"async_await_before_typecasting","async_await"),$def(self,"$async_await",(function(){var $a,original=nil,$ret_or_1=nil;return $truthy(null!=($a=this.async_await)&&$a!==nil?"instance-variable":nil)?this.async_await:(original=this.$async_await_before_typecasting(),this.async_await=$eqeqeq($$("String"),$ret_or_1=original)?this.$async_await_set_to_regexp($send(original.$split(","),"map",[],(function(h){return null==h&&(h=nil),h.$strip().$to_sym()}),1)):$eqeqeq($$("Array"),$ret_or_1)||$eqeqeq($$("Set"),$ret_or_1)?this.$async_await_set_to_regexp($send(original.$to_a(),"map",[],"to_sym".$to_proc())):$eqeqeq($$("Regexp"),$ret_or_1)||$eqeqeq(!0,$ret_or_1)||$eqeqeq(!1,$ret_or_1)?original:this.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean."))}),0),$def(self,"$async_await_set_to_regexp",(function(set){return set=(set=$send(set,"map",[],(function(name){return null==name&&(name=nil),$$("Regexp").$escape(name.$to_s()).$gsub("\\*",".*?")}),1)).$join("|"),$regexp(["^(",set,")$"])}),1),$def(self,"$error",(function(msg,line){var error,$writer;return null==line&&(line=nil),error=$$$($Opal,"SyntaxError").$new(msg),$writer=[$$$($$("Opal"),"OpalBacktraceLocation").$new(this.$file(),line)],$send(error,"location=",$to_a($writer)),$rb_minus($writer.length,1),this.$raise(error)}),-2),$def(self,"$re_raise_with_location",(function $$re_raise_with_location(){var $yield=$$re_raise_with_location.$$p||nil,error=nil,opal_location=nil,$writer=nil,new_error=nil;delete $$re_raise_with_location.$$p;try{return Opal.yieldX($yield,[])}catch($err){if(!Opal.rescue($err,[$$("StandardError"),$$$($Opal,"SyntaxError")]))throw $err;error=$err;try{return opal_location=$Opal.$opal_location_from_error(error),$writer=[this.$file()],$send(opal_location,"path=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(opal_location.$label())||($writer=[this.source.$lines()["$[]"]($rb_minus(opal_location.$line().$to_i(),1)).$strip()],$send(opal_location,"label=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),(new_error=$$$($Opal,"SyntaxError").$new(error.$message())).$set_backtrace(error.$backtrace()),$Opal.$add_opal_location_to_error(opal_location,new_error),this.$raise(new_error)}finally{Opal.pop_exception()}}}),0),$def(self,"$warning",(function(msg,line){return null==line&&(line=nil),this.$warn("warning: "+msg+" -- "+this.$file()+":"+line)}),-2),$def(self,"$parser_indent",(function(){return this.indent}),0),$def(self,"$s",(function(type,$a){var children;return children=Opal.slice.call(arguments,1),$$$($$$($Opal,"AST"),"Node").$new(type,children)}),-2),$def(self,"$fragment",(function(str,scope,sexp){return null==sexp&&(sexp=nil),$$("Fragment").$new(str,scope,sexp)}),-3),$def(self,"$unique_temp",(function(name){var unique;return name=name.$to_s(),$truthy(name)&&$not(name["$empty?"]())&&(name=name.$to_s().$gsub("<=>","$lt_eq_gt").$gsub("===","$eq_eq_eq").$gsub("==","$eq_eq").$gsub("=~","$eq_tilde").$gsub("!~","$excl_tilde").$gsub("!=","$not_eq").$gsub("<=","$lt_eq").$gsub(">=","$gt_eq").$gsub("=","$eq").$gsub("?","$ques").$gsub("!","$excl").$gsub("/","$slash").$gsub("%","$percent").$gsub("+","$plus").$gsub("-","$minus").$gsub("<","$lt").$gsub(">","$gt").$gsub(/[^\w\$]/,"$")),unique=this.unique=$rb_plus(this.unique,1),""+($truthy(name["$start_with?"]("$"))?nil:"$")+name+"$"+unique}),1),$def(self,"$helper",(function(name){return this.$helpers()["$<<"](name)}),1),$def(self,"$indent",(function $$indent(){var indent,res,$yield=$$indent.$$p||nil;return delete $$indent.$$p,indent=this.indent,this.indent=$rb_plus(this.indent,$$("INDENT")),this.space="\n"+this.indent,res=Opal.yieldX($yield,[]),this.indent=indent,this.space="\n"+this.indent,res}),0),$def(self,"$with_temp",(function $$with_temp(){var tmp,res,$yield=$$with_temp.$$p||nil;return delete $$with_temp.$$p,tmp=this.scope.$new_temp(),res=Opal.yield1($yield,tmp),this.scope.$queue_temp(tmp),res}),0),$def(self,"$in_while",(function $$in_while(){var result,$yield=$$in_while.$$p||nil;return delete $$in_while.$$p,$yield===nil?nil:(this.while_loop=this.scope.$push_while(),result=Opal.yieldX($yield,[]),this.scope.$pop_while(),result)}),0),$def(self,"$in_case",(function $$in_case(){var old,$yield=$$in_case.$$p||nil;return delete $$in_case.$$p,$yield===nil?nil:(old=this.case_stmt,this.case_stmt=$hash2([],{}),Opal.yieldX($yield,[]),this.case_stmt=old)}),0),$def(self,"$in_while?",(function(){return this.scope["$in_while?"]()}),0),$def(self,"$process",(function(sexp,level){var handler=nil;return null==level&&(level="expr"),$truthy(sexp["$nil?"]())?this.$fragment("",this.$scope()):$truthy(handler=this.$handlers()["$[]"](sexp.$type()))?handler.$new(sexp,level,this).$compile_to_fragments():this.$error("Unsupported sexp: "+sexp.$type())}),-2),$def(self,"$handlers",(function(){var $ret_or_1;return this.handlers=$truthy($ret_or_1=this.handlers)?$ret_or_1:$$$($$$($$("Opal"),"Nodes"),"Base").$handlers()}),0),$def(self,"$requires",(function(){var $ret_or_1;return this.requires=$truthy($ret_or_1=this.requires)?$ret_or_1:[]}),0),$def(self,"$required_trees",(function(){var $ret_or_1;return this.required_trees=$truthy($ret_or_1=this.required_trees)?$ret_or_1:[]}),0),$def(self,"$autoloads",(function(){var $ret_or_1;return this.autoloads=$truthy($ret_or_1=this.autoloads)?$ret_or_1:[]}),0),$def(self,"$returns",(function(sexp){var $a,$b,$ret_or_1,when_sexp=nil,then_sexp=nil,body_sexp=nil,resbodies=nil,else_sexp=nil,klass=nil,lvar=nil,body=nil,rescue_sexp=nil,ensure_body=nil,rest=nil,last=nil,cond=nil,true_body=nil,false_body=nil;return $truthy(sexp)?$eqeqeq("undef",$ret_or_1=sexp.$type())?this.$returns(sexp.$updated("begin",[sexp,this.$s("nil")])):$eqeqeq("break",$ret_or_1)||$eqeqeq("next",$ret_or_1)||$eqeqeq("redo",$ret_or_1)||$eqeqeq("retry",$ret_or_1)?sexp:$eqeqeq("yield",$ret_or_1)?sexp.$updated("returnable_yield",nil):$eqeqeq("when",$ret_or_1)?($b=($b=($a=[].concat($to_a(sexp))).length-1)<0?0:$b,when_sexp=$slice.call($a,0,$b),then_sexp=null==$a[$b]?nil:$a[$b],sexp.$updated(nil,[].concat($to_a(when_sexp)).concat([this.$returns(then_sexp)]))):$eqeqeq("rescue",$ret_or_1)?(body_sexp=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,resbodies=$slice.call($a,1,$b),else_sexp=null==$a[$b]?nil:$a[$b],resbodies=$send(resbodies,"map",[],(function $$9(resbody){return null==resbody&&(resbody=nil),(null==$$9.$$s?this:$$9.$$s).$returns(resbody)}),{$$arity:1,$$s:this}),$truthy(else_sexp)&&(else_sexp=this.$returns(else_sexp)),sexp.$updated(nil,[this.$returns(body_sexp)].concat($to_a(resbodies)).concat([else_sexp]))):$eqeqeq("resbody",$ret_or_1)?(klass=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],lvar=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],sexp.$updated(nil,[klass,lvar,this.$returns(body)])):$eqeqeq("ensure",$ret_or_1)?(rescue_sexp=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],ensure_body=null==$a[1]?nil:$a[1],(sexp=sexp.$updated(nil,[this.$returns(rescue_sexp),ensure_body])).$updated("js_return",[sexp])):$eqeqeq("begin",$ret_or_1)||$eqeqeq("kwbegin",$ret_or_1)?($b=($b=($a=[].concat($to_a(sexp))).length-1)<0?0:$b,rest=$slice.call($a,0,$b),last=null==$a[$b]?nil:$a[$b],sexp.$updated(nil,[].concat($to_a(rest)).concat([this.$returns(last)]))):$eqeqeq("while",$ret_or_1)||$eqeqeq("until",$ret_or_1)||$eqeqeq("while_post",$ret_or_1)||$eqeqeq("until_post",$ret_or_1)||$eqeqeq("return",$ret_or_1)||$eqeqeq("js_return",$ret_or_1)||$eqeqeq("returnable_yield",$ret_or_1)?sexp:$eqeqeq("xstr",$ret_or_1)?sexp.$updated(nil,[$send(this,"s",["js_return"].concat($to_a(sexp.$children())))]):$eqeqeq("if",$ret_or_1)?(cond=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],sexp.$updated(nil,[cond,this.$returns(true_body),this.$returns(false_body)])):$eqeq(sexp.$type(),"send")&&$eqeq(sexp.$children()["$[]"](1),"debugger")?sexp.$updated("begin",[sexp,this.$s("js_return",this.$s("nil"))]):sexp.$updated("js_return",[sexp]):this.$returns(this.$s("nil"))}),1),$def(self,"$handle_block_given_call",(function(sexp){var scope=nil;return this.scope["$uses_block!"](),$truthy(this.scope.$block_name())?this.$fragment("("+this.scope.$block_name()+" !== nil)",this.$scope(),sexp):$truthy(scope=this.scope.$find_parent_def())&&$truthy(scope.$block_name())?this.$fragment("("+scope.$block_name()+" !== nil)",scope,sexp):this.$fragment("false",scope,sexp)}),1),$def(self,"$marshal_dump",(function(){var $ret_or_1;return[this.options,this.option_values,this.source_map=$truthy($ret_or_1=this.source_map)?$ret_or_1:this.$source_map().$cache(),this.magic_comments,this.result,this.required_trees,this.requires,this.autoloads]}),0),$def(self,"$marshal_load",(function(src){var $a,$b;return $a=$to_ary($b=src),this.options=null==$a[0]?nil:$a[0],this.option_values=null==$a[1]?nil:$a[1],this.source_map=null==$a[2]?nil:$a[2],this.magic_comments=null==$a[3]?nil:$a[3],this.result=null==$a[4]?nil:$a[4],this.required_trees=null==$a[5]?nil:$a[5],this.requires=null==$a[6]?nil:$a[6],this.autoloads=null==$a[7]?nil:$a[7],$b}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/erb"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$defs=Opal.defs,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$send=Opal.send,$regexp=Opal.regexp;return Opal.add_stubs("require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub"),self.$require("opal/compiler"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"ERB"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$compile",(function(source,file_name){return null==file_name&&(file_name="(erb)"),$$("Compiler").$new(source,file_name).$compile()}),-2),function($base,$super,$parent_nesting){var self=$klass($base,null,"Compiler"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.prepared_source=$proto.source=$proto.file_name=nil,$const_set($nesting[0],"BLOCK_EXPR",/\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()),$def(self,"$initialize",(function(source,file_name){var $a;return null==file_name&&(file_name="(erb)"),$a=[source,file_name,source],this.source=$a[0],this.file_name=$a[1],this.result=$a[2],$a}),-2),$def(self,"$prepared_source",(function(){var $ret_or_1,source=nil;return this.prepared_source=$truthy($ret_or_1=this.prepared_source)?$ret_or_1:(source=this.source,source=this.$fix_quotes(source),source=this.$find_contents(source),source=this.$find_code(source),source=this.$wrap_compiled(source),source=this.$require_erb(source))}),0),$def(self,"$compile",(function(){return $$("Opal").$compile(this.$prepared_source())}),0),$def(self,"$fix_quotes",(function(result){return result.$gsub('"','\\"')}),1),$def(self,"$require_erb",(function(result){return $rb_plus('require "erb";',result)}),1),$def(self,"$find_contents",(function(result){return $send(result,"gsub",[/<%=([\s\S]+?)%>/],(function(){var inner=nil;return inner=$$("Regexp").$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"'),$truthy(inner["$=~"]($$("BLOCK_EXPR")))?'")\noutput_buffer.append= '+inner+'\noutput_buffer.append("':'")\noutput_buffer.append=('+inner+')\noutput_buffer.append("'}),0)}),1),$def(self,"$find_code",(function(result){return $send(result,"gsub",[/<%([\s\S]+?)%>/],(function(){return'")\n'+$$("Regexp").$last_match(1).$gsub(/\\"/,'"')+'\noutput_buffer.append("'}),0)}),1),$def(self,"$wrap_compiled",(function(result){return"Template.new('"+this.file_name.$sub($regexp(["\\.opalerb",$$("REGEXP_END")]),"")+"') do |output_buffer|\noutput_buffer.append(\""+result+'")\noutput_buffer.join\nend\n'}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/builder_processors"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$send=Opal.send,$def=Opal.def,$eqeq=Opal.eqeq,$Opal=Opal.Opal,$const_set=Opal.const_set,$send2=Opal.send2,$find_super=Opal.find_super,$defs=Opal.defs,$to_a=Opal.to_a;return Opal.add_stubs("require,end_with?,+,dup,delete,cache,attr_reader,to_s,source,join,==,size,new,register_processor,is_a?,match,match_regexp,raise,inspect,handles,map,with_index,each_line,index,filename,mark_as_required,result,compiled,source_map,fetch,cache_key,compiler_for,compile,class,merge,requires,required_trees,autoloads,extname,prepare,private,prepared_source,module_name"),self.$require("opal/compiler"),self.$require("opal/erb"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"BuilderProcessors")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Processor"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.options=nil,$def(self,"$initialize",(function(source,filename,options){var $a;return null==options&&(options=$hash2([],{})),$truthy(source["$end_with?"]("\n"))||(source=$rb_plus(source,"\n")),$a=[source,filename,options.$dup()],this.source=$a[0],this.filename=$a[1],this.options=$a[2],this.cache=$send(this.options,"delete",["cache"],(function(){return $$("Opal").$cache()}),0),this.requires=[],this.required_trees=[],this.autoloads=[]}),-3),self.$attr_reader("source","filename","options","requires","required_trees","autoloads"),$def(self,"$to_s",(function(){return this.$source().$to_s()}),0),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$attr_reader("extensions"),$def(self,"$handles",(function($a){var extensions,self=this,matches=nil;return extensions=Opal.slice.call(arguments),self.extensions=extensions,matches=extensions.$join("|"),$eqeq(extensions.$size(),1)||(matches="("+matches+")"),self.match_regexp=$$("Regexp").$new("\\."+matches+$$("REGEXP_END")),$$$($Opal,"Builder").$register_processor(self,extensions),nil}),-1),$def(self,"$match?",(function(other){var $ret_or_1;return $truthy($ret_or_1=other["$is_a?"]($$("String")))?other.$match(this.$match_regexp()):$ret_or_1}),1),$def(self,"$match_regexp",(function(){var $ret_or_1;return null==this.match_regexp&&(this.match_regexp=nil),$truthy($ret_or_1=this.match_regexp)?$ret_or_1:this.$raise($$("NotImplementedError"))}),0)}(Opal.get_singleton_class(self),$nesting),$def(self,"$mark_as_required",(function(filename){return"Opal.loaded(["+filename.$to_s().$inspect()+"]);"}),1)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"JsProcessor"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.source_map=$proto.source=$proto.filename=nil,self.$handles("js"),$const_set($nesting[0],"ManualFragment",$$("Struct").$new("line","column","code","source_map_name")),$def(self,"$source_map",(function(){var $ret_or_1,manual_fragments=nil;return this.source_map=$truthy($ret_or_1=this.source_map)?$ret_or_1:(manual_fragments=$send(this.$source().$each_line().$with_index(),"map",[],(function(line_source,index){var column,line;return null==line_source&&(line_source=nil),null==index&&(index=nil),column=line_source.$index(/\S/),line=$rb_plus(index,1),$$("ManualFragment").$new(line,column,line_source,nil)}),2),$$$($$$($Opal,"SourceMap"),"File").$new(manual_fragments,this.$filename(),this.$source()))}),0),$def(self,"$source",(function(){return $rb_plus(this.source.$to_s(),this.$mark_as_required(this.filename))}),0)}($nesting[0],$$("Processor"),$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"RubyProcessor"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.compiled=$proto.cache=$proto.filename=$proto.source=$proto.options=nil,self.$handles("rb","opal"),$def(self,"$source",(function(){return this.$compiled().$result()}),0),$def(self,"$source_map",(function(){return this.$compiled().$source_map()}),0),$def(self,"$compiled",(function(){var $ret_or_1;return this.compiled=$truthy($ret_or_1=this.compiled)?$ret_or_1:$send($$$($$("Opal"),"Cache"),"fetch",[this.cache,this.$cache_key()],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s,compiler=nil;return null==self.source&&(self.source=nil),null==self.filename&&(self.filename=nil),(compiler=self.$compiler_for(self.source,$hash2(["file"],{file:self.filename}))).$compile(),compiler}),{$$arity:0,$$s:this})}),0),$def(self,"$cache_key",(function(){return[this.$class(),this.filename,this.source,this.options]}),0),$def(self,"$compiler_for",(function(source,options){return null==options&&(options=$hash2([],{})),$$$($Opal,"Compiler").$new(source,this.options.$merge(options))}),-2),$def(self,"$requires",(function(){return this.$compiled().$requires()}),0),$def(self,"$required_trees",(function(){return this.$compiled().$required_trees()}),0),$def(self,"$autoloads",(function(){return this.$compiled().$autoloads()}),0),$defs(self,"$match?",(function $RubyProcessor_match$ques$5(other){var $ret_or_1,$yield=$RubyProcessor_match$ques$5.$$p||nil;return delete $RubyProcessor_match$ques$5.$$p,$truthy($ret_or_1=$send2(this,$find_super(this,"match?",$RubyProcessor_match$ques$5,!1,!0),"match?",[other],$yield))?$ret_or_1:$$("File").$extname(other.$to_s())["$=="]("")}),1)}($nesting[0],$$("Processor"),$nesting),function($base,$super){var self=$klass($base,$super,"OpalERBProcessor"),$proto=self.$$prototype;$proto.source=$proto.filename=nil,self.$handles("opalerb"),$def(self,"$initialize",(function $$initialize($a){var args,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,args=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a(args),$yield),self.source=self.$prepare(self.source,self.filename)}),-1),$def(self,"$requires",(function $$requires(){var $yield=$$requires.$$p||nil;return delete $$requires.$$p,$rb_plus(["erb"],$send2(this,$find_super(this,"requires",$$requires,!1,!0),"requires",[],$yield))}),0),self.$private(),$def(self,"$prepare",(function(source,path){return $$$($$$($Opal,"ERB"),"Compiler").$new(source,path).$prepared_source()}),2)}($nesting[0],$$("RubyProcessor")),function($base,$super){var self=$klass($base,$super,"ERBProcessor"),$proto=self.$$prototype;return $proto.source=$proto.filename=nil,self.$handles("erb"),$def(self,"$source",(function(){var result;return result=$$$("ERB").$new(this.source.$to_s()).$result(),"Opal.modules["+$$$($Opal,"Compiler").$module_name(this.filename).$inspect()+"] = function() {"+result+"};"}),0)}($nesting[0],$$("Processor"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules.base64=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$defs=Opal.defs,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs("raise,delete"),function($base,$parent_nesting){var encode,decode,self=$module($base,"Base64"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return encode=function(input){for(var block,charCode,str=String(input),idx=0,map=chars,output="";str.charAt(0|idx)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8))(charCode=str.charCodeAt(idx+=3/4))>255&&self.$raise($$("ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),block=block<<8|charCode;return output},decode=function(input){var str=String(input).replace(/=+$/,"");str.length%4==1&&self.$raise($$("ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var bs,buffer,bc=0,idx=0,output="";buffer=str.charAt(idx++);~buffer&&(bs=bc%4?64*bs+buffer:buffer,bc++%4)?output+=String.fromCharCode(255&bs>>(-2*bc&6)):0)buffer=chars.indexOf(buffer);return output},$defs(self,"$decode64",(function(string){return decode(string.replace(/\r?\n/g,""))}),1),$defs(self,"$encode64",(function(string){return encode(string).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")}),1),$defs(self,"$strict_decode64",(function(string){return decode(string)}),1),$defs(self,"$strict_encode64",(function(string){return encode(string)}),1),$defs(self,"$urlsafe_decode64",(function(string){return decode(string.replace(/\-/g,"+").replace(/_/g,"/"))}),1),$defs(self,"$urlsafe_encode64",(function(string,$kwargs){var padding,str=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(padding=$kwargs.$$smap.padding)&&(padding=!0),str=encode(string).replace(/\+/g,"-").replace(/\//g,"_"),$truthy(padding)||(str=str.$delete("=")),str}),-2)}($nesting[0],$nesting)},Opal.modules["corelib/pack_unpack/format_string_parser"]=function(Opal){Opal.nil;var self,directives,modifiers,$$$=Opal.$$$,$module=Opal.module,$Kernel=Opal.Kernel;return Opal.add_stubs("raise"),self=$module("::","PackUnpack"),directives=["C","S","L","Q","J","c","s","l","q","j","n","N","v","V","U","w","D","d","F","f","E","e","G","g","A","a","Z","B","b","H","h","u","M","m","P","p","@","X","x"],modifiers=["!","_",">","<"],void(self.eachDirectiveAndCount=function(format,callback){var currentDirective,currentCount,currentModifiers,countSpecified;function reset(){currentDirective=null,currentCount=0,currentModifiers=[],countSpecified=!1}function yieldAndReset(){null!=currentDirective?(!/[sSiIlLqQjJ]/.test(currentDirective)&¤tModifiers.length>0&&$Kernel.$raise($$$("ArgumentError"),"'"+currentModifiers[0]+"' allowed only after types sSiIlLqQjJ"),-1!==currentModifiers.indexOf("<")&&-1!==currentModifiers.indexOf(">")&&$Kernel.$raise($$$("RangeError"),"Can't use both '<' and '>'"),countSpecified||(currentCount=1),-1!==currentModifiers.indexOf(">")&&(currentDirective+=">"),callback(currentDirective,currentCount),reset()):reset()}reset();for(var i=0;i,length,inspect,[],unpack"),self.$require("base64"),self.$require("corelib/pack_unpack/format_string_parser"),function($base,$super,$parent_nesting){var self=$klass("::",null,"String"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),expected=nil,given=nil,eachDirectiveAndCount=Opal.PackUnpack.eachDirectiveAndCount;function mapChunksToWords(callback){return function(data){return callback(data).map((function(chunk){return chunk.reverse().reduce((function(result,singleByte){return 256*result+singleByte}),0)}))}}function chunkBy(chunkSize,callback){return function(data){for(var array=callback(data),chunks=[],chunksCount=array.length/chunkSize,i=0;i=limit/2&&(n-=limit),n}))}}function bytesToAsciiChars(callback){return function(data){return callback(data).map((function(singleByte){return String.fromCharCode(singleByte)}))}}function joinChars(callback){return function(data){return callback(data).join("")}}function wrapIntoArray(callback){return function(data){return[callback(data)]}}var charCodesToFilter,filterTrailingZerosAndSpaces=(charCodesToFilter=["\0"," "].map((function(s){return s.charCodeAt(0)})),function(callback){return function(data){for(var charCodes=callback(data);-1!==charCodesToFilter.indexOf(charCodes[charCodes.length-1]);)charCodes=charCodes.slice(0,charCodes.length-1);return charCodes}});function invertChunks(callback){return function(data){return callback(data).map((function(chunk){return chunk.reverse()}))}}function identityFunction(value){return value}var callback,handlers={C:identityFunction,S:mapChunksToWords(chunkBy(2,identityFunction)),L:mapChunksToWords(chunkBy(4,identityFunction)),Q:mapChunksToWords(chunkBy(8,identityFunction)),J:null,"S>":mapChunksToWords(invertChunks(chunkBy(2,identityFunction))),"L>":mapChunksToWords(invertChunks(chunkBy(4,identityFunction))),"Q>":mapChunksToWords(invertChunks(chunkBy(8,identityFunction))),c:toNByteSigned(1,identityFunction),s:toNByteSigned(2,mapChunksToWords(chunkBy(2,identityFunction))),l:toNByteSigned(4,mapChunksToWords(chunkBy(4,identityFunction))),q:toNByteSigned(8,mapChunksToWords(chunkBy(8,identityFunction))),j:null,"s>":toNByteSigned(2,mapChunksToWords(invertChunks(chunkBy(2,identityFunction)))),"l>":toNByteSigned(4,mapChunksToWords(invertChunks(chunkBy(4,identityFunction)))),"q>":toNByteSigned(8,mapChunksToWords(invertChunks(chunkBy(8,identityFunction)))),n:null,N:null,v:null,V:null,U:identityFunction,w:(callback=identityFunction,function(data){for(var bytes=callback(data),result=[],buffer="",i=0;i45)return"";for(length+=n;n>0;){var c1=bytes[i],c2=bytes[i+1],c3=bytes[i+2],b1=(c1-32&63)<<2|(c2-32&63)>>4,b2=(c2-32&63)<<4|(c3-32&63)>>2,b3=(c3-32&63)<<6|bytes[i+3]-32&63;result.push(255&b1),result.push(255&b2),result.push(255&b3),i+=4,n-=3}++i}}return result.slice(0,length)}}(identityFunction))),M:function(callback){return function(data){return callback(data).replace(/[\t\x20]$/gm,"").replace(/=(?:\r\n?|\n|$)/g,"").replace(/=([a-fA-F0-9]{2})/g,(function($0,$1){var codePoint=parseInt($1,16);return String.fromCharCode(codePoint)}))}}(joinChars(bytesToAsciiChars(identityFunction))),m:function(callback){return function(data){return $$("Base64").$decode64(callback(data))}}(joinChars(bytesToAsciiChars(identityFunction))),P:null,p:null};function readBytes(n){return function(bytes){return{chunk:bytes.slice(0,n),rest:bytes=bytes.slice(n,bytes.length)}}}function readNTimesAndMerge(callback){return function(buffer,count){var chunkData,chunk=[];if(count===1/0)for(;buffer.length>0;)buffer=(chunkData=callback(buffer)).rest,chunk=chunk.concat(chunkData.chunk);else for(var i=0;i":readNTimesAndMerge(readBytes(2)),"L>":readNTimesAndMerge(readBytes(4)),"Q>":readNTimesAndMerge(readBytes(8)),c:readNTimesAndMerge(readBytes(1)),s:readNTimesAndMerge(readBytes(2)),l:readNTimesAndMerge(readBytes(4)),q:readNTimesAndMerge(readBytes(8)),j:null,"s>":readNTimesAndMerge(readBytes(2)),"l>":readNTimesAndMerge(readBytes(4)),"q>":readNTimesAndMerge(readBytes(8)),n:null,N:null,v:null,V:null,U:readNTimesAndMerge((function(bytes){var currentByteIndex=0,bytesLength=bytes.length;function readByte(){var result=bytes[currentByteIndex++];return bytesLength=bytes.length-currentByteIndex,result}var extraLength,c=readByte();if(c>>7==0)return{chunk:[c],rest:bytes.slice(currentByteIndex)};c>>6==2&&$Kernel.$raise($$$("ArgumentError"),"malformed UTF-8 character"),c>>5==6?extraLength=1:c>>4==14?extraLength=2:c>>3==30?extraLength=3:c>>2==62?extraLength=4:c>>1==126?extraLength=5:$Kernel.$raise("malformed UTF-8 character"),extraLength>bytesLength&&(expected=extraLength+1,given=bytesLength+1,$Kernel.$raise($$$("ArgumentError"),"malformed UTF-8 character (expected "+expected+" bytes, given "+given+" bytes)"));for(var result=c&(1<<8-extraLength-1)-1,i=0;i>6!=2&&$Kernel.$raise("Invalid multibyte sequence"),result=result<<6|63&c;return result<=65535?{chunk:[result],rest:bytes.slice(currentByteIndex)}:{chunk:[55296+((result-=65536)>>10&1023),56320+(1023&result)],rest:bytes.slice(currentByteIndex)}})),w:readNTimesAndMerge((function(buffer){for(var result=[],i=0;i0&&buffer.length>0;){var singleByte=buffer[0],bitsToTake=Math.min(count,8);Math.ceil(bitsToTake/8);if(buffer=buffer.slice(1,buffer.length),null!=singleByte){var bits=singleByte.toString(2);bits=Array(8-bits.length+1).join("0").concat(bits);for(var j=0;j0&&buffer.length>0;){var singleByte=buffer[0],bitsToTake=Math.min(count,8);Math.ceil(bitsToTake/8);if(buffer=buffer.slice(1,buffer.length),null!=singleByte){var bits=singleByte.toString(2);bits=Array(8-bits.length+1).join("0").concat(bits).split("").reverse().join("");for(var j=0;j0&&buffer.length>0;){var hex=buffer[0].toString(16);buffer=buffer.slice(1,buffer.length),hex=Array(2-hex.length+1).join("0").concat(hex),1===count?(result.push(hex[0]),count--):(result.push(hex[0],hex[1]),count-=2)}return{chunk:result,rest:buffer}},h:function(buffer,count){for(var result=[];count>0&&buffer.length>0;){var hex=buffer[0].toString(16);buffer=buffer.slice(1,buffer.length),hex=Array(2-hex.length+1).join("0").concat(hex),1===count?(result.push(hex[1]),count--):(result.push(hex[1],hex[0]),count-=2)}return{chunk:result,rest:buffer}},u:readNTimesAndMerge((function(buffer){var length=buffer.indexOf(32);return-1===length?{chunk:buffer,rest:[]}:{chunk:buffer.slice(0,length),rest:buffer.slice(length,buffer.length)}})),M:readAll,m:readAll,P:null,p:null},autocompletion={C:!0,S:!0,L:!0,Q:!0,J:null,"S>":!0,"L>":!0,"Q>":!0,c:!0,s:!0,l:!0,q:!0,j:null,"s>":!0,"l>":!0,"q>":!0,n:null,N:null,v:null,V:null,U:!1,w:!1,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:!1,B:!1,b:!1,H:!1,h:!1,u:!1,M:!1,m:!1,P:null,p:null},optimized={"C*":handlers.C,"c*":handlers.c,"A*":handlers.A,"a*":handlers.a,"M*":wrapIntoArray(handlers.M),"m*":wrapIntoArray(handlers.m),"S*":handlers.S,"s*":handlers.s,"L*":handlers.L,"l*":handlers.l,"Q*":handlers.Q,"q*":handlers.q,"S>*":handlers["S>"],"s>*":handlers["s>"],"L>*":handlers["L>"],"l>*":handlers["l>"],"Q>*":handlers["Q>"],"q>*":handlers["q>"]};function alias(existingDirective,newDirective){readChunk[newDirective]=readChunk[existingDirective],handlers[newDirective]=handlers[existingDirective],autocompletion[newDirective]=autocompletion[existingDirective]}return alias("S>","n"),alias("L>","N"),alias("S","v"),alias("L","V"),$def(self,"$unpack",(function(format,$kwargs){var offset;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");null==(offset=$kwargs.$$smap.offset)&&(offset=0),$truthy($rb_lt(offset,0))&&$Kernel.$raise($$$("ArgumentError"),"offset can't be negative"),format=$Opal["$coerce_to!"](format,$$$("String"),"to_str").$gsub(/\s/,"").$delete("\0");var output=[];if("U*"==format&&"UTF-8"===this.internal_encoding.name&&"function"==typeof this.codePointAt){var j=0;output=new Array(this.length);for(var i=offset;i65535&&i++;return output.slice(0,j)}var buffer=this.$bytes();$truthy($rb_gt(offset,buffer.$length()))&&$Kernel.$raise($$$("ArgumentError"),"offset outside of string"),buffer=buffer.slice(offset);var optimizedHandler=optimized[format];if(optimizedHandler)return optimizedHandler(buffer);return eachDirectiveAndCount(format,(function(directive,count){var part=function(directive,count){var chunk,chunkReader=readChunk[directive];null==chunkReader&&$Kernel.$raise("Unsupported unpack directive "+directive.$inspect()+" (no chunk reader defined)");var chunkData=chunkReader(buffer,count);chunk=chunkData.chunk,buffer=chunkData.rest;var handler=handlers[directive];return null==handler&&$Kernel.$raise("Unsupported unpack directive "+directive.$inspect()+" (no handler defined)"),handler(chunk)}(directive,count);if(count!==1/0){var shouldAutocomplete=autocompletion[directive];null==shouldAutocomplete&&$Kernel.$raise("Unsupported unpack directive "+directive.$inspect()+" (no autocompletion rule defined)"),shouldAutocomplete&&function(array,size){for(;array.length 0xFF) { - self.$raise($$($nesting, 'ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); + self.$raise($$('ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); } block = block << 8 | charCode; } @@ -43,7 +42,7 @@ Opal.modules["base64"] = function(Opal) { decode = function (input) { var str = String(input).replace(/=+$/, ''); if (str.length % 4 == 1) { - self.$raise($$($nesting, 'ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); + self.$raise($$('ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); } /* eslint-disable */ for ( @@ -64,33 +63,28 @@ Opal.modules["base64"] = function(Opal) { /* eslint-enable */ }; ; - Opal.defs(self, '$decode64', $Base64_decode64$1 = function $$decode64(string) { - var self = this; - + $defs(self, '$decode64', function $$decode64(string) { + return decode(string.replace(/\r?\n/g, '')); - }, $Base64_decode64$1.$$arity = 1); - Opal.defs(self, '$encode64', $Base64_encode64$2 = function $$encode64(string) { - var self = this; - + }, 1); + $defs(self, '$encode64', function $$encode64(string) { + return encode(string).replace(/(.{60})/g, "$1\n").replace(/([^\n])$/g, "$1\n"); - }, $Base64_encode64$2.$$arity = 1); - Opal.defs(self, '$strict_decode64', $Base64_strict_decode64$3 = function $$strict_decode64(string) { - var self = this; - + }, 1); + $defs(self, '$strict_decode64', function $$strict_decode64(string) { + return decode(string); - }, $Base64_strict_decode64$3.$$arity = 1); - Opal.defs(self, '$strict_encode64', $Base64_strict_encode64$4 = function $$strict_encode64(string) { - var self = this; - + }, 1); + $defs(self, '$strict_encode64', function $$strict_encode64(string) { + return encode(string); - }, $Base64_strict_encode64$4.$$arity = 1); - Opal.defs(self, '$urlsafe_decode64', $Base64_urlsafe_decode64$5 = function $$urlsafe_decode64(string) { - var self = this; - + }, 1); + $defs(self, '$urlsafe_decode64', function $$urlsafe_decode64(string) { + return decode(string.replace(/\-/g, '+').replace(/_/g, '/')); - }, $Base64_urlsafe_decode64$5.$$arity = 1); - return (Opal.defs(self, '$urlsafe_encode64', $Base64_urlsafe_encode64$6 = function $$urlsafe_encode64(string, $kwargs) { - var padding, self = this, str = nil; + }, 1); + return $defs(self, '$urlsafe_encode64', function $$urlsafe_encode64(string, $kwargs) { + var padding, str = nil; @@ -101,29 +95,24 @@ Opal.modules["base64"] = function(Opal) { }; padding = $kwargs.$$smap["padding"]; - if (padding == null) { - padding = true - }; + if (padding == null) padding = true; str = encode(string).replace(/\+/g, '-').replace(/\//g, '_'); - if ($truthy(padding)) { - } else { + if (!$truthy(padding)) { str = str.$delete("=") }; return str; - }, $Base64_urlsafe_encode64$6.$$arity = -2), nil) && 'urlsafe_encode64'; + }, -2); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $Kernel = Opal.Kernel; - Opal.add_stubs(['$raise']); - return (function($base, $parent_nesting) { + Opal.add_stubs('raise'); + return (function($base) { var self = $module($base, 'PackUnpack'); - var $nesting = [self].concat($parent_nesting); - + var directives = [ // Integer @@ -209,11 +198,11 @@ Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { var directiveSupportsModifiers = /[sSiIlLqQjJ]/.test(currentDirective); if (!directiveSupportsModifiers && currentModifiers.length > 0) { - self.$raise($$($nesting, 'ArgumentError'), "" + "'" + (currentModifiers[0]) + "' allowed only after types sSiIlLqQjJ") + $Kernel.$raise($$$('ArgumentError'), "'" + (currentModifiers[0]) + "' allowed only after types sSiIlLqQjJ") } if (currentModifiers.indexOf('<') !== -1 && currentModifiers.indexOf('>') !== -1) { - self.$raise($$($nesting, 'RangeError'), "Can't use both '<' and '>'") + $Kernel.$raise($$$('RangeError'), "Can't use both '<' and '>'") } if (!countSpecified) { @@ -257,21 +246,20 @@ Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { yieldAndReset(); } - })($nesting[0], $nesting) + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/string/unpack"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; +Opal.modules["corelib/string/unpack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $Kernel = Opal.Kernel, $hash2 = Opal.hash2, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $Opal = Opal.Opal, $rb_gt = Opal.rb_gt, $def = Opal.def; - Opal.add_stubs(['$require', '$flatten', '$decode64', '$raise', '$delete', '$gsub', '$coerce_to!', '$inspect', '$[]', '$unpack']); + Opal.add_stubs('require,flatten,decode64,raise,<,delete,gsub,coerce_to!,>,length,inspect,[],unpack'); self.$require("base64"); self.$require("corelib/pack_unpack/format_string_parser"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_unpack$1, $String_unpack1$2, expected = nil, given = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), expected = nil, given = nil; @@ -475,7 +463,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { function base64Decode(callback) { return function(data) { - return $$($nesting, 'Base64').$decode64(callback(data)); + return $$('Base64').$decode64(callback(data)); } } @@ -577,7 +565,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { } if (c >> 6 == 0x02) { - self.$raise($$($nesting, 'ArgumentError'), "malformed UTF-8 character") + $Kernel.$raise($$$('ArgumentError'), "malformed UTF-8 character") } if (c >> 5 == 0x06) { @@ -596,11 +584,11 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { // 1111 110x (six bytes) extraLength = 5; } else { - self.$raise("malformed UTF-8 character") + $Kernel.$raise("malformed UTF-8 character") } if (extraLength > bytesLength) { - ((expected = extraLength + 1), (given = bytesLength + 1), self.$raise($$($nesting, 'ArgumentError'), "" + "malformed UTF-8 character (expected " + (expected) + " bytes, given " + (given) + " bytes)")) + ((expected = extraLength + 1), (given = bytesLength + 1), $Kernel.$raise($$$('ArgumentError'), "malformed UTF-8 character (expected " + (expected) + " bytes, given " + (given) + " bytes)")) } // Remove the UTF-8 prefix from the char @@ -611,7 +599,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { c = readByte(); if (c >> 6 != 0x02) { - self.$raise("Invalid multibyte sequence") + $Kernel.$raise("Invalid multibyte sequence") } result = (result << 6) | (c & 0x3f); @@ -943,11 +931,23 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { alias('L', 'V'); ; - Opal.def(self, '$unpack', $String_unpack$1 = function $$unpack(format) { - var self = this; + $def(self, '$unpack', function $$unpack(format, $kwargs) { + var offset, self = this; - format = $$($nesting, 'Opal')['$coerce_to!'](format, $$($nesting, 'String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + offset = $kwargs.$$smap["offset"]; + if (offset == null) offset = 0; + if ($truthy($rb_lt(offset, 0))) { + $Kernel.$raise($$$('ArgumentError'), "offset can't be negative") + }; + format = $Opal['$coerce_to!'](format, $$$('String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); var output = []; @@ -959,7 +959,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { var cp, j = 0; output = new Array(self.length); - for (var i = 0; i < self.length; i++) { + for (var i = offset; i < self.length; i++) { cp = output[j++] = self.codePointAt(i); if (cp > 0xffff) i++; } @@ -968,6 +968,10 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { var buffer = self.$bytes(); + ($truthy($rb_gt(offset, (buffer).$length())) ? ($Kernel.$raise($$$('ArgumentError'), "offset outside of string")) : nil) + + buffer = buffer.slice(offset); + // optimization var optimizedHandler = optimized[format]; @@ -988,7 +992,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { chunkReader = readChunk[directive]; if (chunkReader == null) { - self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no chunk reader defined)") + $Kernel.$raise("Unsupported unpack directive " + ((directive).$inspect()) + " (no chunk reader defined)") } var chunkData = chunkReader(buffer, count); @@ -998,7 +1002,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { var handler = handlers[directive]; if (handler == null) { - self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no handler defined)") + $Kernel.$raise("Unsupported unpack directive " + ((directive).$inspect()) + " (no handler defined)") } return handler(chunk); @@ -1011,7 +1015,7 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { var shouldAutocomplete = autocompletion[directive]; if (shouldAutocomplete == null) { - self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no autocompletion rule defined)") + $Kernel.$raise("Unsupported unpack directive " + ((directive).$inspect()) + " (no autocompletion rule defined)") } if (shouldAutocomplete) { @@ -1024,216 +1028,186 @@ Opal.modules["corelib/string/unpack"] = function(Opal) { return output; ; - }, $String_unpack$1.$$arity = 1); - return (Opal.def(self, '$unpack1', $String_unpack1$2 = function $$unpack1(format) { - var self = this; + }, -2); + return $def(self, '$unpack1', function $$unpack1(format, $kwargs) { + var offset, self = this; - format = $$($nesting, 'Opal')['$coerce_to!'](format, $$($nesting, 'String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); - return self.$unpack(format['$[]'](0))['$[]'](0); - }, $String_unpack1$2.$$arity = 1), nil) && 'unpack1'; - })($nesting[0], null, $nesting); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + offset = $kwargs.$$smap["offset"]; + if (offset == null) offset = 0; + format = $Opal['$coerce_to!'](format, $$$('String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); + return self.$unpack(format['$[]'](0), $hash2(["offset"], {"offset": offset}))['$[]'](0); + }, -2); + })('::', null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["set"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; +Opal.modules["set"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $defs = Opal.defs, $hash2 = Opal.hash2, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $send = Opal.send, $def = Opal.def, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_lt = Opal.rb_lt, $rb_le = Opal.rb_le, $alias = Opal.alias, $module = Opal.module; - Opal.add_stubs(['$include', '$new', '$nil?', '$===', '$raise', '$each', '$add', '$merge', '$class', '$respond_to?', '$subtract', '$dup', '$join', '$to_a', '$equal?', '$instance_of?', '$==', '$instance_variable_get', '$is_a?', '$size', '$all?', '$include?', '$[]=', '$-', '$enum_for', '$[]', '$<<', '$replace', '$delete', '$select', '$reject', '$delete_if', '$to_proc', '$keep_if', '$each_key', '$empty?', '$eql?', '$instance_eval', '$clear', '$<', '$<=', '$any?', '$!', '$intersect?', '$keys']); + Opal.add_stubs('include,new,nil?,===,raise,each,add,merge,class,respond_to?,subtract,dup,join,to_a,equal?,instance_of?,==,instance_variable_get,size,is_a?,all?,include?,[]=,-,enum_for,[],<<,replace,delete,select,reject,delete_if,to_proc,keep_if,each_key,empty?,eql?,instance_eval,clear,<,<=,any?,!,intersect?,keys'); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Set'); - var $nesting = [self].concat($parent_nesting), $Set_$$$1, $Set_initialize$2, $Set_dup$4, $Set_$minus$5, $Set_inspect$6, $Set_$eq_eq$7, $Set_add$9, $Set_classify$10, $Set_collect$excl$13, $Set_delete$15, $Set_delete$ques$16, $Set_delete_if$17, $Set_keep_if$20, $Set_reject$excl$23, $Set_select$excl$24, $Set_add$ques$25, $Set_each$26, $Set_empty$ques$27, $Set_eql$ques$28, $Set_clear$30, $Set_include$ques$31, $Set_merge$32, $Set_replace$34, $Set_size$35, $Set_subtract$36, $Set_$$38, $Set_superset$ques$39, $Set_proper_superset$ques$41, $Set_subset$ques$43, $Set_proper_subset$ques$45, $Set_intersect$ques$47, $Set_disjoint$ques$50, $Set_to_a$51; + var $ret_or_1 = nil, $proto = self.$$prototype; - self.$$prototype.hash = nil; + $proto.hash = nil; - self.$include($$($nesting, 'Enumerable')); - Opal.defs(self, '$[]', $Set_$$$1 = function($a) { + self.$include($$$('Enumerable')); + $defs(self, '$[]', function $Set_$$$1($a) { var $post_args, ary, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); ary = $post_args;; return self.$new(ary); - }, $Set_$$$1.$$arity = -1); + }, -1); - Opal.def(self, '$initialize', $Set_initialize$2 = function $$initialize(enum$) { - var $iter = $Set_initialize$2.$$p, block = $iter || nil, $$3, self = this; + $def(self, '$initialize', function $$initialize(enum$) { + var block = $$initialize.$$p || nil, self = this; - if ($iter) $Set_initialize$2.$$p = null; + delete $$initialize.$$p; + ; - if ($iter) $Set_initialize$2.$$p = null;; - - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; self.hash = $hash2([], {}); if ($truthy(enum$['$nil?']())) { - return nil}; - if ($truthy($$($nesting, 'Enumerable')['$==='](enum$))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + return nil + }; + if (!$eqeqeq($$$('Enumerable'), enum$)) { + $Kernel.$raise($$$('ArgumentError'), "value must be enumerable") }; if ($truthy(block)) { - return $send(enum$, 'each', [], ($$3 = function(item){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(enum$, 'each', [], function $$2(item){var self = $$2.$$s == null ? this : $$2.$$s; - if (item == null) { - item = nil; - }; - return self.$add(Opal.yield1(block, item));}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + if (item == null) item = nil;; + return self.$add(Opal.yield1(block, item));}, {$$arity: 1, $$s: self}) } else { return self.$merge(enum$) }; - }, $Set_initialize$2.$$arity = -1); + }, -1); - Opal.def(self, '$dup', $Set_dup$4 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this, result = nil; result = self.$class().$new(); return result.$merge(self); - }, $Set_dup$4.$$arity = 0); + }, 0); - Opal.def(self, '$-', $Set_$minus$5 = function(enum$) { + $def(self, '$-', function $Set_$minus$3(enum$) { var self = this; - if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + if (!$truthy(enum$['$respond_to?']("each"))) { + $Kernel.$raise($$$('ArgumentError'), "value must be enumerable") }; return self.$dup().$subtract(enum$); - }, $Set_$minus$5.$$arity = 1); - $alias(self, "difference", "-"); + }, 1); - Opal.def(self, '$inspect', $Set_inspect$6 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Set_inspect$6.$$arity = 0); + return "#" + }, 0); - Opal.def(self, '$==', $Set_$eq_eq$7 = function(other) { - var $$8, self = this, $ret_or_1 = nil; + $def(self, '$==', function $Set_$eq_eq$4(other) { + var self = this; if ($truthy(self['$equal?'](other))) { return true } else if ($truthy(other['$instance_of?'](self.$class()))) { return self.hash['$=='](other.$instance_variable_get("@hash")) - } else if ($truthy((function() {if ($truthy(($ret_or_1 = other['$is_a?']($$($nesting, 'Set'))))) { - return self.$size()['$=='](other.$size()) - } else { - return $ret_or_1 - }; return nil; })())) { - return $send(other, 'all?', [], ($$8 = function(o){var self = $$8.$$s == null ? this : $$8.$$s; + } else if (($truthy(other['$is_a?']($$$('Set'))) && ($eqeq(self.$size(), other.$size())))) { + return $send(other, 'all?', [], function $$5(o){var self = $$5.$$s == null ? this : $$5.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash['$include?'](o);}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + if (o == null) o = nil;; + return self.hash['$include?'](o);}, {$$arity: 1, $$s: self}) } else { return false } - }, $Set_$eq_eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$add', $Set_add$9 = function $$add(o) { + $def(self, '$add', function $$add(o) { var self = this, $writer = nil; $writer = [o, true]; - $send(self.hash, '[]=', Opal.to_a($writer)); + $send(self.hash, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self; - }, $Set_add$9.$$arity = 1); - $alias(self, "<<", "add"); + }, 1); - Opal.def(self, '$classify', $Set_classify$10 = function $$classify() { - var $iter = $Set_classify$10.$$p, block = $iter || nil, $$11, $$12, self = this, result = nil; + $def(self, '$classify', function $$classify() { + var block = $$classify.$$p || nil, self = this, result = nil; - if ($iter) $Set_classify$10.$$p = null; - + delete $$classify.$$p; - if ($iter) $Set_classify$10.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("classify") }; - result = $send($$($nesting, 'Hash'), 'new', [], ($$11 = function(h, k){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; + result = $send($$$('Hash'), 'new', [], function $$6(h, k){var self = $$6.$$s == null ? this : $$6.$$s, $writer = nil; - if (h == null) { - h = nil; - }; + if (h == null) h = nil;; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [k, self.$class().$new()]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$11.$$s = self, $$11.$$arity = 2, $$11)); - $send(self, 'each', [], ($$12 = function(item){var self = $$12.$$s == null ? this : $$12.$$s; - + $send(h, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 2, $$s: self}); + $send(self, 'each', [], function $$7(item){ - if (item == null) { - item = nil; - }; - return result['$[]'](Opal.yield1(block, item)).$add(item);}, $$12.$$s = self, $$12.$$arity = 1, $$12)); + if (item == null) item = nil;; + return result['$[]'](Opal.yield1(block, item)).$add(item);}, 1); return result; - }, $Set_classify$10.$$arity = 0); + }, 0); - Opal.def(self, '$collect!', $Set_collect$excl$13 = function() { - var $iter = $Set_collect$excl$13.$$p, block = $iter || nil, $$14, self = this, result = nil; + $def(self, '$collect!', function $Set_collect$excl$8() { + var block = $Set_collect$excl$8.$$p || nil, self = this, result = nil; - if ($iter) $Set_collect$excl$13.$$p = null; - + delete $Set_collect$excl$8.$$p; - if ($iter) $Set_collect$excl$13.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("collect!") }; result = self.$class().$new(); - $send(self, 'each', [], ($$14 = function(item){var self = $$14.$$s == null ? this : $$14.$$s; - + $send(self, 'each', [], function $$9(item){ - if (item == null) { - item = nil; - }; - return result['$<<'](Opal.yield1(block, item));}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + if (item == null) item = nil;; + return result['$<<'](Opal.yield1(block, item));}, 1); return self.$replace(result); - }, $Set_collect$excl$13.$$arity = 0); - $alias(self, "map!", "collect!"); + }, 0); - Opal.def(self, '$delete', $Set_delete$15 = function(o) { + $def(self, '$delete', function $Set_delete$10(o) { var self = this; self.hash.$delete(o); return self; - }, $Set_delete$15.$$arity = 1); + }, 1); - Opal.def(self, '$delete?', $Set_delete$ques$16 = function(o) { + $def(self, '$delete?', function $Set_delete$ques$11(o) { var self = this; if ($truthy(self['$include?'](o))) { @@ -1243,106 +1217,89 @@ Opal.modules["set"] = function(Opal) { } else { return nil } - }, $Set_delete$ques$16.$$arity = 1); + }, 1); - Opal.def(self, '$delete_if', $Set_delete_if$17 = function $$delete_if() { - var $$18, $$19, $iter = $Set_delete_if$17.$$p, $yield = $iter || nil, self = this; + $def(self, '$delete_if', function $$delete_if() { + var $yield = $$delete_if.$$p || nil, self = this; - if ($iter) $Set_delete_if$17.$$p = null; + delete $$delete_if.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$enum_for("delete_if") }; - $send($send(self, 'select', [], ($$18 = function(o){var self = $$18.$$s == null ? this : $$18.$$s; - + $send($send(self, 'select', [], function $$12(o){ - if (o == null) { - o = nil; - }; - return Opal.yield1($yield, o);;}, $$18.$$s = self, $$18.$$arity = 1, $$18)), 'each', [], ($$19 = function(o){var self = $$19.$$s == null ? this : $$19.$$s; + if (o == null) o = nil;; + return Opal.yield1($yield, o);;}, 1), 'each', [], function $$13(o){var self = $$13.$$s == null ? this : $$13.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash.$delete(o);}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + if (o == null) o = nil;; + return self.hash.$delete(o);}, {$$arity: 1, $$s: self}); return self; - }, $Set_delete_if$17.$$arity = 0); + }, 0); - Opal.def(self, '$keep_if', $Set_keep_if$20 = function $$keep_if() { - var $$21, $$22, $iter = $Set_keep_if$20.$$p, $yield = $iter || nil, self = this; + $def(self, '$keep_if', function $$keep_if() { + var $yield = $$keep_if.$$p || nil, self = this; - if ($iter) $Set_keep_if$20.$$p = null; + delete $$keep_if.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$enum_for("keep_if") }; - $send($send(self, 'reject', [], ($$21 = function(o){var self = $$21.$$s == null ? this : $$21.$$s; - + $send($send(self, 'reject', [], function $$14(o){ - if (o == null) { - o = nil; - }; - return Opal.yield1($yield, o);;}, $$21.$$s = self, $$21.$$arity = 1, $$21)), 'each', [], ($$22 = function(o){var self = $$22.$$s == null ? this : $$22.$$s; + if (o == null) o = nil;; + return Opal.yield1($yield, o);;}, 1), 'each', [], function $$15(o){var self = $$15.$$s == null ? this : $$15.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash.$delete(o);}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + if (o == null) o = nil;; + return self.hash.$delete(o);}, {$$arity: 1, $$s: self}); return self; - }, $Set_keep_if$20.$$arity = 0); + }, 0); - Opal.def(self, '$reject!', $Set_reject$excl$23 = function() { - var $iter = $Set_reject$excl$23.$$p, block = $iter || nil, self = this, before = nil; + $def(self, '$reject!', function $Set_reject$excl$16() { + var block = $Set_reject$excl$16.$$p || nil, self = this, before = nil; - if ($iter) $Set_reject$excl$23.$$p = null; + delete $Set_reject$excl$16.$$p; - - if ($iter) $Set_reject$excl$23.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("reject!") }; before = self.$size(); $send(self, 'delete_if', [], block.$to_proc()); - if (self.$size()['$=='](before)) { + if ($eqeq(self.$size(), before)) { return nil } else { return self }; - }, $Set_reject$excl$23.$$arity = 0); + }, 0); - Opal.def(self, '$select!', $Set_select$excl$24 = function() { - var $iter = $Set_select$excl$24.$$p, block = $iter || nil, self = this, before = nil; + $def(self, '$select!', function $Set_select$excl$17() { + var block = $Set_select$excl$17.$$p || nil, self = this, before = nil; - if ($iter) $Set_select$excl$24.$$p = null; + delete $Set_select$excl$17.$$p; - - if ($iter) $Set_select$excl$24.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("select!") }; before = self.$size(); $send(self, 'keep_if', [], block.$to_proc()); - if (self.$size()['$=='](before)) { + if ($eqeq(self.$size(), before)) { return nil } else { return self }; - }, $Set_select$excl$24.$$arity = 0); - $alias(self, "filter!", "select!"); + }, 0); - Opal.def(self, '$add?', $Set_add$ques$25 = function(o) { + $def(self, '$add?', function $Set_add$ques$18(o) { var self = this; if ($truthy(self['$include?'](o))) { @@ -1350,280 +1307,240 @@ Opal.modules["set"] = function(Opal) { } else { return self.$add(o) } - }, $Set_add$ques$25.$$arity = 1); + }, 1); - Opal.def(self, '$each', $Set_each$26 = function $$each() { - var $iter = $Set_each$26.$$p, block = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Set_each$26.$$p = null; - + delete $$each.$$p; - if ($iter) $Set_each$26.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("each") }; $send(self.hash, 'each_key', [], block.$to_proc()); return self; - }, $Set_each$26.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $Set_empty$ques$27 = function() { + $def(self, '$empty?', function $Set_empty$ques$19() { var self = this; return self.hash['$empty?']() - }, $Set_empty$ques$27.$$arity = 0); + }, 0); - Opal.def(self, '$eql?', $Set_eql$ques$28 = function(other) { - var $$29, self = this; + $def(self, '$eql?', function $Set_eql$ques$20(other) { + var self = this; - return self.hash['$eql?']($send(other, 'instance_eval', [], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; + return self.hash['$eql?']($send(other, 'instance_eval', [], function $$21(){var self = $$21.$$s == null ? this : $$21.$$s; if (self.hash == null) self.hash = nil; - return self.hash}, $$29.$$s = self, $$29.$$arity = 0, $$29))) - }, $Set_eql$ques$28.$$arity = 1); + return self.hash}, {$$arity: 0, $$s: self})) + }, 1); - Opal.def(self, '$clear', $Set_clear$30 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; self.hash.$clear(); return self; - }, $Set_clear$30.$$arity = 0); + }, 0); - Opal.def(self, '$include?', $Set_include$ques$31 = function(o) { + $def(self, '$include?', function $Set_include$ques$22(o) { var self = this; return self.hash['$include?'](o) - }, $Set_include$ques$31.$$arity = 1); - $alias(self, "member?", "include?"); + }, 1); - Opal.def(self, '$merge', $Set_merge$32 = function $$merge(enum$) { - var $$33, self = this; + $def(self, '$merge', function $$merge(enum$) { + var self = this; - $send(enum$, 'each', [], ($$33 = function(item){var self = $$33.$$s == null ? this : $$33.$$s; + $send(enum$, 'each', [], function $$23(item){var self = $$23.$$s == null ? this : $$23.$$s; - if (item == null) { - item = nil; - }; - return self.$add(item);}, $$33.$$s = self, $$33.$$arity = 1, $$33)); + if (item == null) item = nil;; + return self.$add(item);}, {$$arity: 1, $$s: self}); return self; - }, $Set_merge$32.$$arity = 1); + }, 1); - Opal.def(self, '$replace', $Set_replace$34 = function $$replace(enum$) { + $def(self, '$replace', function $$replace(enum$) { var self = this; self.$clear(); self.$merge(enum$); return self; - }, $Set_replace$34.$$arity = 1); + }, 1); - Opal.def(self, '$size', $Set_size$35 = function $$size() { + $def(self, '$size', function $$size() { var self = this; return self.hash.$size() - }, $Set_size$35.$$arity = 0); - $alias(self, "length", "size"); + }, 0); - Opal.def(self, '$subtract', $Set_subtract$36 = function $$subtract(enum$) { - var $$37, self = this; + $def(self, '$subtract', function $$subtract(enum$) { + var self = this; - $send(enum$, 'each', [], ($$37 = function(item){var self = $$37.$$s == null ? this : $$37.$$s; + $send(enum$, 'each', [], function $$24(item){var self = $$24.$$s == null ? this : $$24.$$s; - if (item == null) { - item = nil; - }; - return self.$delete(item);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + if (item == null) item = nil;; + return self.$delete(item);}, {$$arity: 1, $$s: self}); return self; - }, $Set_subtract$36.$$arity = 1); + }, 1); - Opal.def(self, '$|', $Set_$$38 = function(enum$) { + $def(self, '$|', function $Set_$$25(enum$) { var self = this; - if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + if (!$truthy(enum$['$respond_to?']("each"))) { + $Kernel.$raise($$$('ArgumentError'), "value must be enumerable") }; return self.$dup().$merge(enum$); - }, $Set_$$38.$$arity = 1); + }, 1); + + function is_set(set) { + ($truthy(($ret_or_1 = (set)['$is_a?']($$$('Set')))) ? ($ret_or_1) : ($Kernel.$raise($$$('ArgumentError'), "value must be a set"))) + } + ; - Opal.def(self, '$superset?', $Set_superset$ques$39 = function(set) { - var $$40, self = this, $ret_or_2 = nil; + $def(self, '$superset?', function $Set_superset$ques$26(set) { + var self = this; - if ($truthy(($ret_or_2 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_2 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(self.$size(), set.$size()))) { - return false}; - return $send(set, 'all?', [], ($$40 = function(o){var self = $$40.$$s == null ? this : $$40.$$s; + return false + }; + return $send(set, 'all?', [], function $$27(o){var self = $$27.$$s == null ? this : $$27.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$40.$$s = self, $$40.$$arity = 1, $$40)); - }, $Set_superset$ques$39.$$arity = 1); - $alias(self, ">=", "superset?"); + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}); + }, 1); - Opal.def(self, '$proper_superset?', $Set_proper_superset$ques$41 = function(set) { - var $$42, self = this, $ret_or_3 = nil; + $def(self, '$proper_superset?', function $Set_proper_superset$ques$28(set) { + var self = this; - if ($truthy(($ret_or_3 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_3 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_le(self.$size(), set.$size()))) { - return false}; - return $send(set, 'all?', [], ($$42 = function(o){var self = $$42.$$s == null ? this : $$42.$$s; + return false + }; + return $send(set, 'all?', [], function $$29(o){var self = $$29.$$s == null ? this : $$29.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$42.$$s = self, $$42.$$arity = 1, $$42)); - }, $Set_proper_superset$ques$41.$$arity = 1); - $alias(self, ">", "proper_superset?"); + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}); + }, 1); - Opal.def(self, '$subset?', $Set_subset$ques$43 = function(set) { - var $$44, self = this, $ret_or_4 = nil; + $def(self, '$subset?', function $Set_subset$ques$30(set) { + var self = this; - if ($truthy(($ret_or_4 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_4 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(set.$size(), self.$size()))) { - return false}; - return $send(self, 'all?', [], ($$44 = function(o){var self = $$44.$$s == null ? this : $$44.$$s; - + return false + }; + return $send(self, 'all?', [], function $$31(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$44.$$s = self, $$44.$$arity = 1, $$44)); - }, $Set_subset$ques$43.$$arity = 1); - $alias(self, "<=", "subset?"); + if (o == null) o = nil;; + return set['$include?'](o);}, 1); + }, 1); - Opal.def(self, '$proper_subset?', $Set_proper_subset$ques$45 = function(set) { - var $$46, self = this, $ret_or_5 = nil; + $def(self, '$proper_subset?', function $Set_proper_subset$ques$32(set) { + var self = this; - if ($truthy(($ret_or_5 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_5 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_le(set.$size(), self.$size()))) { - return false}; - return $send(self, 'all?', [], ($$46 = function(o){var self = $$46.$$s == null ? this : $$46.$$s; - + return false + }; + return $send(self, 'all?', [], function $$33(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$46.$$s = self, $$46.$$arity = 1, $$46)); - }, $Set_proper_subset$ques$45.$$arity = 1); - $alias(self, "<", "proper_subset?"); + if (o == null) o = nil;; + return set['$include?'](o);}, 1); + }, 1); - Opal.def(self, '$intersect?', $Set_intersect$ques$47 = function(set) { - var $$48, $$49, self = this; + $def(self, '$intersect?', function $Set_intersect$ques$34(set) { + var self = this; - if ($truthy(set['$is_a?']($$($nesting, 'Set')))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(self.$size(), set.$size()))) { - return $send(self, 'any?', [], ($$48 = function(o){var self = $$48.$$s == null ? this : $$48.$$s; - + return $send(self, 'any?', [], function $$35(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$48.$$s = self, $$48.$$arity = 1, $$48)) + if (o == null) o = nil;; + return set['$include?'](o);}, 1) } else { - return $send(set, 'any?', [], ($$49 = function(o){var self = $$49.$$s == null ? this : $$49.$$s; + return $send(set, 'any?', [], function $$36(o){var self = $$36.$$s == null ? this : $$36.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$49.$$s = self, $$49.$$arity = 1, $$49)) + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}) }; - }, $Set_intersect$ques$47.$$arity = 1); + }, 1); - Opal.def(self, '$disjoint?', $Set_disjoint$ques$50 = function(set) { + $def(self, '$disjoint?', function $Set_disjoint$ques$37(set) { var self = this; return self['$intersect?'](set)['$!']() - }, $Set_disjoint$ques$50.$$arity = 1); - $alias(self, "+", "|"); - $alias(self, "union", "|"); - return (Opal.def(self, '$to_a', $Set_to_a$51 = function $$to_a() { + }, 1); + + $def(self, '$to_a', function $$to_a() { var self = this; return self.hash.$keys() - }, $Set_to_a$51.$$arity = 0), nil) && 'to_a'; - })($nesting[0], null, $nesting); + }, 0); + $alias(self, "+", "|"); + $alias(self, "<", "proper_subset?"); + $alias(self, "<<", "add"); + $alias(self, "<=", "subset?"); + $alias(self, ">", "proper_superset?"); + $alias(self, ">=", "superset?"); + $alias(self, "difference", "-"); + $alias(self, "filter!", "select!"); + $alias(self, "length", "size"); + $alias(self, "map!", "collect!"); + $alias(self, "member?", "include?"); + return $alias(self, "union", "|"); + })('::', null); return (function($base, $parent_nesting) { var self = $module($base, 'Enumerable'); - var $nesting = [self].concat($parent_nesting), $Enumerable_to_set$52; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_set', $Enumerable_to_set$52 = function $$to_set($a, $b) { - var $iter = $Enumerable_to_set$52.$$p, block = $iter || nil, $post_args, klass, args, self = this; + return $def(self, '$to_set', function $$to_set($a, $b) { + var block = $$to_set.$$p || nil, $post_args, klass, args, self = this; - if ($iter) $Enumerable_to_set$52.$$p = null; + delete $$to_set.$$p; + ; - if ($iter) $Enumerable_to_set$52.$$p = null;; + $post_args = Opal.slice.call(arguments); - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - if ($post_args.length > 0) { - klass = $post_args[0]; - $post_args.splice(0, 1); - } - if (klass == null) { - klass = $$($nesting, 'Set'); - }; + if ($post_args.length > 0) klass = $post_args.shift(); + if (klass == null) klass = $$('Set');; args = $post_args;; - return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()); - }, $Enumerable_to_set$52.$$arity = -1), nil) && 'to_set' - })($nesting[0], $nesting); + return $send(klass, 'new', [self].concat($to_a(args)), block.$to_proc()); + }, -1) + })('::', $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast/node"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["ast/node"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $hash2 = Opal.hash2, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $rb_times = Opal.rb_times, $to_a = Opal.to_a; - Opal.add_stubs(['$attr_reader', '$to_sym', '$freeze', '$to_a', '$assign_properties', '$hash', '$class', '$eql?', '$type', '$children', '$each', '$instance_variable_set', '$protected', '$private', '$==', '$nil?', '$original_dup', '$send', '$equal?', '$respond_to?', '$to_ast', '$updated', '$+', '$*', '$fancy_type', '$is_a?', '$to_sexp', '$inspect', '$map', '$to_sexp_array', '$gsub', '$to_s']); + Opal.add_stubs('attr_reader,to_sym,freeze,to_a,assign_properties,hash,class,eql?,type,children,each,instance_variable_set,protected,private,nil?,==,original_dup,send,equal?,respond_to?,to_ast,updated,+,*,fancy_type,is_a?,to_sexp,inspect,map,to_sexp_array,gsub,to_s'); return (function($base, $parent_nesting) { var self = $module($base, 'AST'); @@ -1632,116 +1549,78 @@ Opal.modules["ast/node"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Node'); - var $nesting = [self].concat($parent_nesting), $Node_initialize$1, $Node_eql$ques$2, $Node_assign_properties$3, $Node_dup$5, $Node_updated$6, $Node_$eq_eq$7, $Node_concat$8, $Node_append$9, $Node_to_sexp$10, $Node_inspect$12, $Node_to_ast$14, $Node_to_sexp_array$15, $Node_deconstruct$17, $Node_fancy_type$18; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.type = self.$$prototype.children = nil; + $proto.type = $proto.children = nil; self.$attr_reader("type"); self.$attr_reader("children"); $alias(self, "to_a", "children"); self.$attr_reader("hash"); - Opal.def(self, '$initialize', $Node_initialize$1 = function $$initialize(type, children, properties) { + $def(self, '$initialize', function $$initialize(type, children, properties) { var $a, self = this; - if (children == null) { - children = []; - }; + if (children == null) children = [];; - if (properties == null) { - properties = $hash2([], {}); - }; + if (properties == null) properties = $hash2([], {});; $a = [type.$to_sym(), children.$to_a().$freeze()], (self.type = $a[0]), (self.children = $a[1]), $a; self.$assign_properties(properties); self.hash = [self.type, self.children, self.$class()].$hash(); return self.$freeze(); - }, $Node_initialize$1.$$arity = -2); + }, -2); - Opal.def(self, '$eql?', $Node_eql$ques$2 = function(other) { + $def(self, '$eql?', function $Node_eql$ques$1(other) { var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$class()['$eql?'](other.$class())))) { - return self.type['$eql?'](other.$type()) - } else { - return $ret_or_2 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$class()['$eql?'](other.$class()))) ? (self.type['$eql?'](other.$type())) : ($ret_or_2))))) { return self.children['$eql?'](other.$children()) } else { return $ret_or_1 } - }, $Node_eql$ques$2.$$arity = 1); + }, 1); - Opal.def(self, '$assign_properties', $Node_assign_properties$3 = function $$assign_properties(properties) { - var $$4, self = this; + $def(self, '$assign_properties', function $$assign_properties(properties) { + var self = this; - $send(properties, 'each', [], ($$4 = function(name, value){var self = $$4.$$s == null ? this : $$4.$$s; + $send(properties, 'each', [], function $$2(name, value){var self = $$2.$$s == null ? this : $$2.$$s; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (value == null) { - value = nil; - }; - return self.$instance_variable_set("" + "@" + (name), value);}, $$4.$$s = self, $$4.$$arity = 2, $$4)); + if (value == null) value = nil;; + return self.$instance_variable_set("@" + (name), value);}, {$$arity: 2, $$s: self}); return nil; - }, $Node_assign_properties$3.$$arity = 1); + }, 1); self.$protected("assign_properties"); $alias(self, "original_dup", "dup"); self.$private("original_dup"); - Opal.def(self, '$dup', $Node_dup$5 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this; return self - }, $Node_dup$5.$$arity = 0); + }, 0); $alias(self, "clone", "dup"); - Opal.def(self, '$updated', $Node_updated$6 = function $$updated(type, children, properties) { - var self = this, new_type = nil, $ret_or_3 = nil, new_children = nil, $ret_or_4 = nil, new_properties = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, copy = nil; + $def(self, '$updated', function $$updated(type, children, properties) { + var self = this, new_type = nil, $ret_or_1 = nil, new_children = nil, new_properties = nil, copy = nil; - if (type == null) { - type = nil; - }; + if (type == null) type = nil;; - if (children == null) { - children = nil; - }; + if (children == null) children = nil;; - if (properties == null) { - properties = nil; - }; - new_type = (function() {if ($truthy(($ret_or_3 = type))) { - return $ret_or_3 - } else { - return self.type - }; return nil; })(); - new_children = (function() {if ($truthy(($ret_or_4 = children))) { - return $ret_or_4 - } else { - return self.children - }; return nil; })(); - new_properties = (function() {if ($truthy(($ret_or_5 = properties))) { - return $ret_or_5 - } else { - return $hash2([], {}) - }; return nil; })(); - if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = self.type['$=='](new_type)))) { - return self.children['$=='](new_children) - } else { - return $ret_or_7 - }; return nil; })()))) { - return properties['$nil?']() - } else { - return $ret_or_6 - }; return nil; })())) { + if (properties == null) properties = nil;; + new_type = ($truthy(($ret_or_1 = type)) ? ($ret_or_1) : (self.type)); + new_children = ($truthy(($ret_or_1 = children)) ? ($ret_or_1) : (self.children)); + new_properties = ($truthy(($ret_or_1 = properties)) ? ($ret_or_1) : ($hash2([], {}))); + if ((($eqeq(self.type, new_type) && ($eqeq(self.children, new_children))) && ($truthy(properties['$nil?']())))) { return self } else { @@ -1749,138 +1628,124 @@ Opal.modules["ast/node"] = function(Opal) { copy.$send("initialize", new_type, new_children, new_properties); return copy; }; - }, $Node_updated$6.$$arity = -1); + }, -1); - Opal.def(self, '$==', $Node_$eq_eq$7 = function(other) { - var self = this, $ret_or_8 = nil; + $def(self, '$==', function $Node_$eq_eq$3(other) { + var self = this, $ret_or_1 = nil; if ($truthy(self['$equal?'](other))) { return true } else if ($truthy(other['$respond_to?']("to_ast"))) { other = other.$to_ast(); - if ($truthy(($ret_or_8 = other.$type()['$=='](self.$type())))) { + if ($truthy(($ret_or_1 = other.$type()['$=='](self.$type())))) { return other.$children()['$=='](self.$children()) } else { - return $ret_or_8 + return $ret_or_1 }; } else { return false } - }, $Node_$eq_eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$concat', $Node_concat$8 = function $$concat(array) { + $def(self, '$concat', function $$concat(array) { var self = this; return self.$updated(nil, $rb_plus(self.children, array.$to_a())) - }, $Node_concat$8.$$arity = 1); + }, 1); $alias(self, "+", "concat"); - Opal.def(self, '$append', $Node_append$9 = function $$append(element) { + $def(self, '$append', function $$append(element) { var self = this; return self.$updated(nil, $rb_plus(self.children, [element])) - }, $Node_append$9.$$arity = 1); + }, 1); $alias(self, "<<", "append"); - Opal.def(self, '$to_sexp', $Node_to_sexp$10 = function $$to_sexp(indent) { - var $$11, self = this, indented = nil, sexp = nil; + $def(self, '$to_sexp', function $$to_sexp(indent) { + var self = this, indented = nil, sexp = nil; - if (indent == null) { - indent = 0; - }; + if (indent == null) indent = 0;; indented = $rb_times(" ", indent); sexp = "" + (indented) + "(" + (self.$fancy_type()); - $send(self.$children(), 'each', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; - + $send(self.$children(), 'each', [], function $$4(child){ - if (child == null) { - child = nil; - }; - if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { - return (sexp = $rb_plus(sexp, "" + "\n" + (child.$to_sexp($rb_plus(indent, 1))))) + if (child == null) child = nil;; + if ($truthy(child['$is_a?']($$('Node')))) { + return (sexp = $rb_plus(sexp, "\n" + (child.$to_sexp($rb_plus(indent, 1))))) } else { - return (sexp = $rb_plus(sexp, "" + " " + (child.$inspect()))) - };}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + return (sexp = $rb_plus(sexp, " " + (child.$inspect()))) + };}, 1); sexp = $rb_plus(sexp, ")"); return sexp; - }, $Node_to_sexp$10.$$arity = -1); + }, -1); $alias(self, "to_s", "to_sexp"); - Opal.def(self, '$inspect', $Node_inspect$12 = function $$inspect(indent) { - var $$13, self = this, indented = nil, sexp = nil; + $def(self, '$inspect', function $$inspect(indent) { + var self = this, indented = nil, sexp = nil; - if (indent == null) { - indent = 0; - }; + if (indent == null) indent = 0;; indented = $rb_times(" ", indent); sexp = "" + (indented) + "s(:" + (self.type); - $send(self.$children(), 'each', [], ($$13 = function(child){var self = $$13.$$s == null ? this : $$13.$$s; - + $send(self.$children(), 'each', [], function $$5(child){ - if (child == null) { - child = nil; - }; - if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { - return (sexp = $rb_plus(sexp, "" + ",\n" + (child.$inspect($rb_plus(indent, 1))))) + if (child == null) child = nil;; + if ($truthy(child['$is_a?']($$('Node')))) { + return (sexp = $rb_plus(sexp, ",\n" + (child.$inspect($rb_plus(indent, 1))))) } else { - return (sexp = $rb_plus(sexp, "" + ", " + (child.$inspect()))) - };}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + return (sexp = $rb_plus(sexp, ", " + (child.$inspect()))) + };}, 1); sexp = $rb_plus(sexp, ")"); return sexp; - }, $Node_inspect$12.$$arity = -1); + }, -1); - Opal.def(self, '$to_ast', $Node_to_ast$14 = function $$to_ast() { + $def(self, '$to_ast', function $$to_ast() { var self = this; return self - }, $Node_to_ast$14.$$arity = 0); + }, 0); - Opal.def(self, '$to_sexp_array', $Node_to_sexp_array$15 = function $$to_sexp_array() { - var $$16, self = this, children_sexp_arrs = nil; + $def(self, '$to_sexp_array', function $$to_sexp_array() { + var self = this, children_sexp_arrs = nil; - children_sexp_arrs = $send(self.$children(), 'map', [], ($$16 = function(child){var self = $$16.$$s == null ? this : $$16.$$s; - + children_sexp_arrs = $send(self.$children(), 'map', [], function $$6(child){ - if (child == null) { - child = nil; - }; - if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { + if (child == null) child = nil;; + if ($truthy(child['$is_a?']($$('Node')))) { return child.$to_sexp_array() } else { return child - };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - return [self.$type()].concat(Opal.to_a(children_sexp_arrs)); - }, $Node_to_sexp_array$15.$$arity = 0); + };}, 1); + return [self.$type()].concat($to_a(children_sexp_arrs)); + }, 0); - Opal.def(self, '$deconstruct', $Node_deconstruct$17 = function $$deconstruct() { + $def(self, '$deconstruct', function $$deconstruct() { var self = this; - return [self.$type()].concat(Opal.to_a(self.$children())) - }, $Node_deconstruct$17.$$arity = 0); + return [self.$type()].concat($to_a(self.$children())) + }, 0); self.$protected(); - return (Opal.def(self, '$fancy_type', $Node_fancy_type$18 = function $$fancy_type() { + return $def(self, '$fancy_type', function $$fancy_type() { var self = this; return self.type.$to_s().$gsub("_", "-") - }, $Node_fancy_type$18.$$arity = 0), nil) && 'fancy_type'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast/processor/mixin"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["ast/processor/mixin"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$nil?', '$to_ast', '$type', '$respond_to?', '$send', '$handler_missing', '$map', '$to_a', '$process']); + Opal.add_stubs('nil?,to_ast,type,respond_to?,send,handler_missing,map,to_a,process'); return (function($base, $parent_nesting) { var self = $module($base, 'AST'); @@ -1891,58 +1756,55 @@ Opal.modules["ast/processor/mixin"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $parent_nesting) { + return (function($base) { var self = $module($base, 'Mixin'); - var $nesting = [self].concat($parent_nesting), $Mixin_process$1, $Mixin_process_all$2, $Mixin_handler_missing$4; - - Opal.def(self, '$process', $Mixin_process$1 = function $$process(node) { + + $def(self, '$process', function $$process(node) { var self = this, on_handler = nil, new_node = nil; if ($truthy(node['$nil?']())) { - return nil}; + return nil + }; node = node.$to_ast(); - on_handler = "" + "on_" + (node.$type()); + on_handler = "on_" + (node.$type()); if ($truthy(self['$respond_to?'](on_handler))) { new_node = self.$send(on_handler, node) } else { new_node = self.$handler_missing(node) }; if ($truthy(new_node)) { - node = new_node}; + node = new_node + }; return node; - }, $Mixin_process$1.$$arity = 1); + }, 1); - Opal.def(self, '$process_all', $Mixin_process_all$2 = function $$process_all(nodes) { - var $$3, self = this; + $def(self, '$process_all', function $$process_all(nodes) { + var self = this; - return $send(nodes.$to_a(), 'map', [], ($$3 = function(node){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(nodes.$to_a(), 'map', [], function $$1(node){var self = $$1.$$s == null ? this : $$1.$$s; - if (node == null) { - node = nil; - }; - return self.$process(node);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Mixin_process_all$2.$$arity = 1); - return (Opal.def(self, '$handler_missing', $Mixin_handler_missing$4 = function $$handler_missing(node) { - var self = this; - + if (node == null) node = nil;; + return self.$process(node);}, {$$arity: 1, $$s: self}) + }, 1); + return $def(self, '$handler_missing', function $$handler_missing(node) { + return nil - }, $Mixin_handler_missing$4.$$arity = 1), nil) && 'handler_missing'; - })($nesting[0], $nesting) + }, 1); + })($nesting[0]) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast/processor"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["ast/processor"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$include']); + Opal.add_stubs('require,include'); return (function($base, $parent_nesting) { var self = $module($base, 'AST'); @@ -1951,20 +1813,19 @@ Opal.modules["ast/processor"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Processor'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$require("ast/processor/mixin"); - return self.$include($$($nesting, 'Mixin')); + return self.$include($$('Mixin')); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast/sexp"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["ast/sexp"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $def = Opal.def; - Opal.add_stubs(['$new']); + Opal.add_stubs('new'); return (function($base, $parent_nesting) { var self = $module($base, 'AST'); @@ -1973,47 +1834,41 @@ Opal.modules["ast/sexp"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Sexp'); - var $nesting = [self].concat($parent_nesting), $Sexp_s$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$s', $Sexp_s$1 = function $$s(type, $a) { - var $post_args, children, self = this; + return $def(self, '$s', function $$s(type, $a) { + var $post_args, children; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); children = $post_args;; - return $$($nesting, 'Node').$new(type, children); - }, $Sexp_s$1.$$arity = -2), nil) && 's' + return $$('Node').$new(type, children); + }, -2) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ast"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["ast"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module; - Opal.add_stubs(['$require']); - return (function($base, $parent_nesting) { + Opal.add_stubs('require'); + return (function($base) { var self = $module($base, 'AST'); - var $nesting = [self].concat($parent_nesting); - + self.$require("ast/node"); self.$require("ast/processor"); return self.$require("ast/sexp"); - })($nesting[0], $nesting) + })($nesting[0]) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/ast/node"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["parser/ast/node"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$[]', '$frozen?', '$dup', '$node=', '$-']); + Opal.add_stubs('attr_reader,[],frozen?,dup,node=,-'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -2024,40 +1879,39 @@ Opal.modules["parser/ast/node"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Node'); - var $nesting = [self].concat($parent_nesting), $Node_assign_properties$1; - + self.$attr_reader("location"); $alias(self, "loc", "location"); - return (Opal.def(self, '$assign_properties', $Node_assign_properties$1 = function $$assign_properties(properties) { + return $def(self, '$assign_properties', function $$assign_properties(properties) { var self = this, location = nil, $writer = nil; if ($truthy((location = properties['$[]']("location")))) { if ($truthy(location['$frozen?']())) { - location = location.$dup()}; + location = location.$dup() + }; $writer = [self]; - $send(location, 'node=', Opal.to_a($writer)); + $send(location, 'node=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return (self.location = location); } else { return nil } - }, $Node_assign_properties$1.$$arity = 1), nil) && 'assign_properties'; - })($nesting[0], $$$($$$('::', 'AST'), 'Node'), $nesting) + }, 1); + })($nesting[0], $$$($$$('AST'), 'Node')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/ast/node"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/ast/node"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$require', '$attr_reader', '$[]', '$frozen?', '$dup', '$merge!', '$loc', '$line', '$column']); + Opal.add_stubs('require,attr_reader,[],frozen?,dup,merge!,loc,line,column'); self.$require("ast"); self.$require("parser/ast/node"); @@ -2071,40 +1925,33 @@ Opal.modules["opal/ast/node"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Node'); - var $nesting = [self].concat($parent_nesting), $Node_assign_properties$1, $Node_line$2, $Node_column$3; + var $proto = self.$$prototype; - self.$$prototype.meta = nil; + $proto.meta = nil; self.$attr_reader("meta"); - Opal.def(self, '$assign_properties', $Node_assign_properties$1 = function $$assign_properties(properties) { - var $iter = $Node_assign_properties$1.$$p, $yield = $iter || nil, self = this, meta = nil, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$assign_properties', function $$assign_properties(properties) { + var $yield = $$assign_properties.$$p || nil, self = this, meta = nil, $ret_or_1 = nil; - if ($iter) $Node_assign_properties$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$assign_properties.$$p; if ($truthy((meta = properties['$[]']("meta")))) { if ($truthy(meta['$frozen?']())) { - meta = meta.$dup()}; + meta = meta.$dup() + }; self.meta['$merge!'](meta); } else { - self.meta = (function() {if ($truthy(($ret_or_1 = self.meta))) { - return $ret_or_1 - } else { - return $hash2([], {}) - }; return nil; })() + self.meta = ($truthy(($ret_or_1 = self.meta)) ? ($ret_or_1) : ($hash2([], {}))) }; - return $send2(self, $find_super(self, 'assign_properties', $Node_assign_properties$1, false, true), 'assign_properties', $zuper, $iter); - }, $Node_assign_properties$1.$$arity = 1); + return $send2(self, $find_super(self, 'assign_properties', $$assign_properties, false, true), 'assign_properties', [properties], $yield); + }, 1); - Opal.def(self, '$line', $Node_line$2 = function $$line() { + $def(self, '$line', function $$line() { var self = this; if ($truthy(self.$loc())) { @@ -2112,8 +1959,8 @@ Opal.modules["opal/ast/node"] = function(Opal) { } else { return nil } - }, $Node_line$2.$$arity = 0); - return (Opal.def(self, '$column', $Node_column$3 = function $$column() { + }, 0); + return $def(self, '$column', function $$column() { var self = this; if ($truthy(self.$loc())) { @@ -2121,122 +1968,86 @@ Opal.modules["opal/ast/node"] = function(Opal) { } else { return nil } - }, $Node_column$3.$$arity = 0), nil) && 'column'; - })($nesting[0], $$$($$$($$$('::', 'Parser'), 'AST'), 'Node'), $nesting) + }, 0); + })($nesting[0], $$$($$$($$$('Parser'), 'AST'), 'Node')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["racc/parser"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send; +Opal.modules["racc/parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $a, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $const_set = Opal.const_set, $defs = Opal.defs, $gvars = Opal.gvars, $rb_lt = Opal.rb_lt, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $to_ary = Opal.to_ary, $neqeq = Opal.neqeq, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $rb_ge = Opal.rb_ge, $rb_gt = Opal.rb_gt, $eqeqeq = Opal.eqeqeq, $rb_le = Opal.rb_le, $rb_times = Opal.rb_times; - Opal.add_stubs(['$[]', '$class', '$<', '$size', '$[]=', '$-', '$__send__', '$_racc_setup', '$raise', '$_racc_init_sysvars', '$catch', '$!=', '$next_token', '$racc_read_token', '$+', '$>=', '$==', '$_racc_evalact', '$!', '$>', '$push', '$racc_shift', '$-@', '$_racc_do_reduce', '$===', '$racc_accept', '$throw', '$on_error', '$<=', '$pop', '$racc_e_pop', '$inspect', '$racc_next_state', '$*', '$racc_reduce', '$sprintf', '$token_to_str', '$print', '$racc_token2str', '$puts', '$racc_print_stacks', '$empty?', '$each', '$racc_print_states', '$each_index']); + Opal.add_stubs('[],class,<,size,[]=,-,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,push,racc_shift,-@,_racc_do_reduce,===,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index'); (function($base, $parent_nesting) { var self = $module($base, 'Racc'); - var $nesting = [self].concat($parent_nesting); - - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ParseError'); - - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting) + return ($klass($nesting[0], $$('StandardError'), 'ParseError'), nil) })($nesting[0], $nesting); - if ($truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'ParseError', $$$($$($nesting, 'Racc'), 'ParseError')) + if (!$truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'ParseError', $$$($$('Racc'), 'ParseError')) }; return (function($base, $parent_nesting) { var self = $module($base, 'Racc'); - var $nesting = [self].concat($parent_nesting), $a; + var $a, $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - if ($truthy((($a = $$($nesting, 'Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'Racc_No_Extensions', false) + if (!$truthy((($a = $$('Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'Racc_No_Extensions', false) }; return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Parser'); - var $nesting = [self].concat($parent_nesting), $Parser_racc_runtime_type$1, $Parser__racc_setup$2, $Parser__racc_init_sysvars$3, $Parser_do_parse$4, $Parser_next_token$5, $Parser__racc_do_parse_rb$6, $Parser_yyparse$8, $Parser__racc_yyparse_rb$9, $Parser__racc_evalact$12, $Parser__racc_do_reduce$14, $Parser_on_error$15, $Parser_yyerror$16, $Parser_yyaccept$17, $Parser_yyerrok$18, $Parser_racc_read_token$19, $Parser_racc_shift$20, $Parser_racc_reduce$21, $Parser_racc_accept$23, $Parser_racc_e_pop$24, $Parser_racc_next_state$25, $Parser_racc_print_stacks$26, $Parser_racc_print_states$28, $Parser_racc_token2str$30, $Parser_token_to_str$31; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.yydebug = self.$$prototype.racc_debug_out = self.$$prototype.racc_error_status = self.$$prototype.racc_t = self.$$prototype.racc_vstack = self.$$prototype.racc_val = self.$$prototype.racc_state = self.$$prototype.racc_tstack = nil; + $proto.yydebug = $proto.racc_debug_out = $proto.racc_error_status = $proto.racc_t = $proto.racc_vstack = $proto.racc_val = $proto.racc_state = $proto.racc_tstack = nil; - Opal.const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); - Opal.const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version', $$($nesting, 'Racc_Runtime_Core_Version_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$($nesting, 'Racc_Runtime_Core_Revision_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); - Opal.defs($$($nesting, 'Parser'), '$racc_runtime_type', $Parser_racc_runtime_type$1 = function $$racc_runtime_type() { - var self = this; - - return $$($nesting, 'Racc_Runtime_Type') - }, $Parser_racc_runtime_type$1.$$arity = 0); + $const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); + $const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); + $const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); + $const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); + $const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); + $const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); + $const_set($nesting[0], 'Racc_Runtime_Core_Version', $$('Racc_Runtime_Core_Version_R')); + $const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$('Racc_Runtime_Core_Revision_R')); + $const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); + $defs($$('Parser'), '$racc_runtime_type', function $$racc_runtime_type() { + + return $$('Racc_Runtime_Type') + }, 0); - Opal.def(self, '$_racc_setup', $Parser__racc_setup$2 = function $$_racc_setup() { + $def(self, '$_racc_setup', function $$_racc_setup() { var $a, $b, self = this, $ret_or_1 = nil, arg = nil, $writer = nil; if ($gvars.stderr == null) $gvars.stderr = nil; - if ($truthy($$$(self.$class(), 'Racc_debug_parser'))) { - } else { + if (!$truthy($$$(self.$class(), 'Racc_debug_parser'))) { self.yydebug = false }; - if ($truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - } else { + if (!$truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { self.yydebug = false }; if ($truthy(self.yydebug)) { - if ($truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { - } else { + if (!$truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { self.racc_debug_out = $gvars.stderr }; - self.racc_debug_out = (function() {if ($truthy(($ret_or_1 = self.racc_debug_out))) { - return $ret_or_1 - } else { - return $gvars.stderr - }; return nil; })();}; + self.racc_debug_out = ($truthy(($ret_or_1 = self.racc_debug_out)) ? ($ret_or_1) : ($gvars.stderr)); + }; arg = $$$(self.$class(), 'Racc_arg'); if ($truthy($rb_lt(arg.$size(), 14))) { $writer = [13, true]; - $send(arg, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(arg, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; return arg; - }, $Parser__racc_setup$2.$$arity = 0); + }, 0); - Opal.def(self, '$_racc_init_sysvars', $Parser__racc_init_sysvars$3 = function $$_racc_init_sysvars() { + $def(self, '$_racc_init_sysvars', function $$_racc_init_sysvars() { var self = this; @@ -2248,28 +2059,28 @@ Opal.modules["racc/parser"] = function(Opal) { self.racc_read_next = true; self.racc_user_yyerror = false; return (self.racc_error_status = 0); - }, $Parser__racc_init_sysvars$3.$$arity = 0); + }, 0); - Opal.def(self, '$do_parse', $Parser_do_parse$4 = function $$do_parse() { + $def(self, '$do_parse', function $$do_parse() { var self = this; - return self.$__send__($$($nesting, 'Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) - }, $Parser_do_parse$4.$$arity = 0); + return self.$__send__($$('Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) + }, 0); - Opal.def(self, '$next_token', $Parser_next_token$5 = function $$next_token() { + $def(self, '$next_token', function $$next_token() { var self = this; - return self.$raise($$($nesting, 'NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") - }, $Parser_next_token$5.$$arity = 0); + return self.$raise($$('NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") + }, 0); - Opal.def(self, '$_racc_do_parse_rb', $Parser__racc_do_parse_rb$6 = function $$_racc_do_parse_rb(arg, in_debug) { - var $a, $b, $$7, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; + $def(self, '$_racc_do_parse_rb', function $$_racc_do_parse_rb(arg, in_debug) { + var $a, $b, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; self.$_racc_init_sysvars(); tok = (act = (i = nil)); - return $send(self, 'catch', ["racc_end_parse"], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s, $c, $d, $e, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + return $send(self, 'catch', ["racc_end_parse"], function $$1(){var $c, $d, $e, self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; if (self.racc_state == null) self.racc_state = nil; if (self.racc_read_next == null) self.racc_read_next = nil; if (self.racc_t == null) self.racc_t = nil; @@ -2281,32 +2092,22 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { if ($truthy(self.racc_read_next)) { - if ($truthy(self.racc_t['$!='](0))) { + if ($neqeq(self.racc_t, 0)) { - $e = self.$next_token(), $d = Opal.to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; + $e = self.$next_token(), $d = $to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; if ($truthy(tok)) { - self.racc_t = (function() {if ($truthy(($ret_or_2 = token_table['$[]'](tok)))) { - return $ret_or_2 - } else { - return 1 - }; return nil; })() + self.racc_t = ($truthy(($ret_or_1 = token_table['$[]'](tok))) ? ($ret_or_1) : (1)) } else { self.racc_t = 0 }; if ($truthy(self.yydebug)) { - self.$racc_read_token(self.racc_t, tok, self.racc_val)}; - self.racc_read_next = false;}}; + self.$racc_read_token(self.racc_t, tok, self.racc_val) + }; + self.racc_read_next = false; + } + }; i = $rb_plus(i, self.racc_t); - if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = $rb_ge(i, 0)))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_4 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_3 - }; return nil; })())) { - } else { + if (!(($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; } else { @@ -2315,24 +2116,24 @@ Opal.modules["racc/parser"] = function(Opal) { while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - }}, $$7.$$s = self, $$7.$$arity = 0, $$7)); - }, $Parser__racc_do_parse_rb$6.$$arity = 2); + }}, {$$arity: 0, $$s: self}); + }, 2); - Opal.def(self, '$yyparse', $Parser_yyparse$8 = function $$yyparse(recv, mid) { + $def(self, '$yyparse', function $$yyparse(recv, mid) { var self = this; - return self.$__send__($$($nesting, 'Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) - }, $Parser_yyparse$8.$$arity = 2); + return self.$__send__($$('Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) + }, 2); - Opal.def(self, '$_racc_yyparse_rb', $Parser__racc_yyparse_rb$9 = function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { - var $a, $b, $$10, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; + $def(self, '$_racc_yyparse_rb', function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { + var $a, $b, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; self.$_racc_init_sysvars(); act = nil; i = nil; - return $send(self, 'catch', ["racc_end_parse"], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $c, $d, $$11; + return $send(self, 'catch', ["racc_end_parse"], function $$2(){var $c, $d, self = $$2.$$s == null ? this : $$2.$$s; if (self.racc_state == null) self.racc_state = nil; @@ -2341,141 +2142,101 @@ Opal.modules["racc/parser"] = function(Opal) { } }; - return $send(recv, '__send__', [mid], ($$11 = function(tok, val){var self = $$11.$$s == null ? this : $$11.$$s, $e, $f, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + return $send(recv, '__send__', [mid], function $$3(tok, val){var $e, $f, self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil, $ret_or_2 = nil; if (self.racc_t == null) self.racc_t = nil; if (self.racc_state == null) self.racc_state = nil; if (self.racc_read_next == null) self.racc_read_next = nil; - if (tok == null) { - tok = nil; - }; + if (tok == null) tok = nil;; - if (val == null) { - val = nil; - }; + if (val == null) val = nil;; if ($truthy(tok)) { - self.racc_t = (function() {if ($truthy(($ret_or_5 = token_table['$[]'](tok)))) { - return $ret_or_5 - } else { - return 1 - }; return nil; })() + self.racc_t = ($truthy(($ret_or_1 = token_table['$[]'](tok))) ? ($ret_or_1) : (1)) } else { self.racc_t = 0 }; self.racc_val = val; self.racc_read_next = false; i = $rb_plus(i, self.racc_t); - if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge(i, 0)))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_7 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_6 - }; return nil; })())) { - } else { + if (!(($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - while ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']()))) { - return $ret_or_9 - } else { - return self.racc_read_next['$!']() - }; return nil; })()))) { - return $ret_or_8 - } else { - return self.racc_t['$=='](0) - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']())) ? ($ret_or_2) : (self.racc_read_next['$!']())))) ? ($ret_or_1) : (self.racc_t['$=='](0))))) { - if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = i))) { - return (i = $rb_plus(i, self.racc_t)) - } else { - return $ret_or_13 - }; return nil; })()))) { - return $rb_ge(i, 0) - } else { - return $ret_or_12 - }; return nil; })()))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_11 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_10 - }; return nil; })())) { - } else { + if (!(((($truthy(i) && ($truthy((i = $rb_plus(i, self.racc_t))))) && ($truthy($rb_ge(i, 0)))) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - };}, $$11.$$s = self, $$11.$$arity = 2, $$11));}, $$10.$$s = self, $$10.$$arity = 0, $$10)); - }, $Parser__racc_yyparse_rb$9.$$arity = 4); + };}, {$$arity: 2, $$s: self});}, {$$arity: 0, $$s: self}); + }, 4); - Opal.def(self, '$_racc_evalact', $Parser__racc_evalact$12 = function $$_racc_evalact(act, arg) { - var $a, $b, $$13, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, $ret_or_14 = nil, $ret_or_15 = nil, code = nil, $case = nil, i = nil, $ret_or_16 = nil, $ret_or_17 = nil; + $def(self, '$_racc_evalact', function $$_racc_evalact(act, arg) { + var $a, $b, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, code = nil, $ret_or_1 = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; - if ($truthy((function() {if ($truthy(($ret_or_14 = $rb_gt(act, 0)))) { - return $rb_lt(act, shift_n) - } else { - return $ret_or_14 - }; return nil; })())) { + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; + if (($truthy($rb_gt(act, 0)) && ($truthy($rb_lt(act, shift_n))))) { if ($truthy($rb_gt(self.racc_error_status, 0))) { - if (self.racc_t['$=='](1)) { - } else { + if (!$eqeq(self.racc_t, 1)) { self.racc_error_status = $rb_minus(self.racc_error_status, 1) - }}; + } + }; self.racc_vstack.$push(self.racc_val); self.racc_state.$push(act); self.racc_read_next = true; if ($truthy(self.yydebug)) { self.racc_tstack.$push(self.racc_t); - self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack);}; - } else if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_lt(act, 0)))) { - return $rb_gt(act, reduce_n['$-@']()) - } else { - return $ret_or_15 - }; return nil; })())) { + self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack); + }; + } else if (($truthy($rb_lt(act, 0)) && ($truthy($rb_gt(act, reduce_n['$-@']()))))) { - code = $send(self, 'catch', ["racc_jump"], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + code = $send(self, 'catch', ["racc_jump"], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; if (self.racc_state == null) self.racc_state = nil; self.racc_state.$push(self.$_racc_do_reduce(arg, act)); - return false;}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return false;}, {$$arity: 0, $$s: self}); if ($truthy(code)) { - $case = code; - if ((1)['$===']($case)) { - self.racc_user_yyerror = true; - return reduce_n['$-@']();} - else if ((2)['$===']($case)) {return shift_n} - else {self.$raise("[Racc Bug] unknown jump code")}}; - } else if (act['$=='](shift_n)) { - - if ($truthy(self.yydebug)) { - self.$racc_accept()}; + if ($eqeqeq(1, ($ret_or_1 = code))) { + + self.racc_user_yyerror = true; + return reduce_n['$-@'](); + } else if ($eqeqeq(2, $ret_or_1)) { + return shift_n + } else { + self.$raise("[Racc Bug] unknown jump code") + } + }; + } else if ($eqeq(act, shift_n)) { + + if ($truthy(self.yydebug)) { + self.$racc_accept() + }; self.$throw("racc_end_parse", self.racc_vstack['$[]'](0)); - } else if (act['$=='](reduce_n['$-@']())) { + } else if ($eqeq(act, reduce_n['$-@']())) { - $case = self.racc_error_status; - if ((0)['$===']($case)) {if ($truthy(arg['$[]'](21))) { + if ($eqeqeq(0, ($ret_or_1 = self.racc_error_status))) { + if (!$truthy(arg['$[]'](21))) { + self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) + } + } else if ($eqeqeq(3, $ret_or_1)) { + + if ($eqeq(self.racc_t, 0)) { + self.$throw("racc_end_parse", nil) + }; + self.racc_read_next = true; } else { - self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) - }} - else if ((3)['$===']($case)) { - if (self.racc_t['$=='](0)) { - self.$throw("racc_end_parse", nil)}; - self.racc_read_next = true;}; + nil + }; self.racc_user_yyerror = false; self.racc_error_status = 3; while ($truthy(true)) { @@ -2483,40 +2244,36 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { i = $rb_plus(i, 1); - if ($truthy((function() {if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = $rb_ge(i, 0)))) { - - return (act = action_table['$[]'](i)); - } else { - return $ret_or_17 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_16 - }; return nil; })())) { - break;};}; + if ((($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { + break; + }; + }; if ($truthy($rb_le(self.racc_state.$size(), 1))) { - self.$throw("racc_end_parse", nil)}; + self.$throw("racc_end_parse", nil) + }; self.racc_state.$pop(); self.racc_vstack.$pop(); if ($truthy(self.yydebug)) { self.racc_tstack.$pop(); - self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack);}; + self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack); + }; }; return act; } else { - self.$raise("" + "[Racc Bug] unknown action " + (act.$inspect())) + self.$raise("[Racc Bug] unknown action " + (act.$inspect())) }; if ($truthy(self.yydebug)) { - self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state)}; + self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state) + }; return nil; - }, $Parser__racc_evalact$12.$$arity = 2); + }, 2); - Opal.def(self, '$_racc_do_reduce', $Parser__racc_do_reduce$14 = function $$_racc_do_reduce(arg, act) { - var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, $ret_or_18 = nil, $ret_or_19 = nil, curstate = nil; + $def(self, '$_racc_do_reduce', function $$_racc_do_reduce(arg, act) { + var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, curstate = nil; - $b = arg, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; state = self.racc_state; vstack = self.racc_vstack; tstack = self.racc_tstack; @@ -2526,20 +2283,22 @@ Opal.modules["racc/parser"] = function(Opal) { method_id = reduce_table['$[]']($rb_plus(i, 2)); void_array = []; if ($truthy(self.yydebug)) { - tmp_t = tstack['$[]'](len['$-@'](), len)}; + tmp_t = tstack['$[]'](len['$-@'](), len) + }; tmp_v = vstack['$[]'](len['$-@'](), len); if ($truthy(self.yydebug)) { $writer = [len['$-@'](), len, void_array]; - $send(tstack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(tstack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; $writer = [len['$-@'](), len, void_array]; - $send(vstack, '[]=', Opal.to_a($writer)); + $send(vstack, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [len['$-@'](), len, void_array]; - $send(state, '[]=', Opal.to_a($writer)); + $send(state, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(use_result)) { vstack.$push(self.$__send__(method_id, tmp_v, vstack, tmp_v['$[]'](0))) @@ -2548,54 +2307,44 @@ Opal.modules["racc/parser"] = function(Opal) { }; tstack.$push(reduce_to); if ($truthy(self.yydebug)) { - self.$racc_reduce(tmp_t, reduce_to, tstack, vstack)}; + self.$racc_reduce(tmp_t, reduce_to, tstack, vstack) + }; k1 = $rb_minus(reduce_to, nt_base); if ($truthy((i = goto_pointer['$[]'](k1)))) { i = $rb_plus(i, state['$[]'](-1)); - if ($truthy((function() {if ($truthy(($ret_or_18 = (function() {if ($truthy(($ret_or_19 = $rb_ge(i, 0)))) { - - return (curstate = goto_table['$[]'](i)); - } else { - return $ret_or_19 - }; return nil; })()))) { - return goto_check['$[]'](i)['$=='](k1) - } else { - return $ret_or_18 - }; return nil; })())) { - return curstate};}; + if ((($truthy($rb_ge(i, 0)) && ($truthy((curstate = goto_table['$[]'](i))))) && ($eqeq(goto_check['$[]'](i), k1)))) { + return curstate + }; + }; return goto_default['$[]'](k1); - }, $Parser__racc_do_reduce$14.$$arity = 2); + }, 2); - Opal.def(self, '$on_error', $Parser_on_error$15 = function $$on_error(t, val, vstack) { - var self = this, $ret_or_20 = nil; + $def(self, '$on_error', function $$on_error(t, val, vstack) { + var self = this, $ret_or_1 = nil; - return self.$raise($$($nesting, 'ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), (function() {if ($truthy(($ret_or_20 = self.$token_to_str(t)))) { - return $ret_or_20 - } else { - return "?" - }; return nil; })())) - }, $Parser_on_error$15.$$arity = 3); + return self.$raise($$('ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), ($truthy(($ret_or_1 = self.$token_to_str(t))) ? ($ret_or_1) : ("?")))) + }, 3); - Opal.def(self, '$yyerror', $Parser_yyerror$16 = function $$yyerror() { + $def(self, '$yyerror', function $$yyerror() { var self = this; return self.$throw("racc_jump", 1) - }, $Parser_yyerror$16.$$arity = 0); + }, 0); - Opal.def(self, '$yyaccept', $Parser_yyaccept$17 = function $$yyaccept() { + $def(self, '$yyaccept', function $$yyaccept() { var self = this; return self.$throw("racc_jump", 2) - }, $Parser_yyaccept$17.$$arity = 0); + }, 0); - Opal.def(self, '$yyerrok', $Parser_yyerrok$18 = function $$yyerrok() { + $def(self, '$yyerrok', function $$yyerrok() { var self = this; return (self.racc_error_status = 0) - }, $Parser_yyerrok$18.$$arity = 0); + }, 0); - Opal.def(self, '$racc_read_token', $Parser_racc_read_token$19 = function $$racc_read_token(t, tok, val) { + $def(self, '$racc_read_token', function $$racc_read_token(t, tok, val) { var self = this; @@ -2603,19 +2352,19 @@ Opal.modules["racc/parser"] = function(Opal) { self.racc_debug_out.$print(tok.$inspect(), "(", self.$racc_token2str(t), ") "); self.racc_debug_out.$puts(val.$inspect()); return self.racc_debug_out.$puts(); - }, $Parser_racc_read_token$19.$$arity = 3); + }, 3); - Opal.def(self, '$racc_shift', $Parser_racc_shift$20 = function $$racc_shift(tok, tstack, vstack) { + $def(self, '$racc_shift', function $$racc_shift(tok, tstack, vstack) { var self = this; - self.racc_debug_out.$puts("" + "shift " + (self.$racc_token2str(tok))); + self.racc_debug_out.$puts("shift " + (self.$racc_token2str(tok))); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_shift$20.$$arity = 3); + }, 3); - Opal.def(self, '$racc_reduce', $Parser_racc_reduce$21 = function $$racc_reduce(toks, sim, tstack, vstack) { - var $$22, self = this, out = nil; + $def(self, '$racc_reduce', function $$racc_reduce(toks, sim, tstack, vstack) { + var self = this, out = nil; out = self.racc_debug_out; @@ -2623,29 +2372,27 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy(toks['$empty?']())) { out.$print(" ") } else { - $send(toks, 'each', [], ($$22 = function(t){var self = $$22.$$s == null ? this : $$22.$$s; + $send(toks, 'each', [], function $$5(t){var self = $$5.$$s == null ? this : $$5.$$s; - if (t == null) { - t = nil; - }; - return out.$print(" ", self.$racc_token2str(t));}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + if (t == null) t = nil;; + return out.$print(" ", self.$racc_token2str(t));}, {$$arity: 1, $$s: self}) }; - out.$puts("" + " --> " + (self.$racc_token2str(sim))); + out.$puts(" --> " + (self.$racc_token2str(sim))); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_reduce$21.$$arity = 4); + }, 4); - Opal.def(self, '$racc_accept', $Parser_racc_accept$23 = function $$racc_accept() { + $def(self, '$racc_accept', function $$racc_accept() { var self = this; self.racc_debug_out.$puts("accept"); return self.racc_debug_out.$puts(); - }, $Parser_racc_accept$23.$$arity = 0); + }, 0); - Opal.def(self, '$racc_e_pop', $Parser_racc_e_pop$24 = function $$racc_e_pop(state, tstack, vstack) { + $def(self, '$racc_e_pop', function $$racc_e_pop(state, tstack, vstack) { var self = this; @@ -2653,192 +2400,150 @@ Opal.modules["racc/parser"] = function(Opal) { self.$racc_print_states(state); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_e_pop$24.$$arity = 3); + }, 3); - Opal.def(self, '$racc_next_state', $Parser_racc_next_state$25 = function $$racc_next_state(curstate, state) { + $def(self, '$racc_next_state', function $$racc_next_state(curstate, state) { var self = this; - self.racc_debug_out.$puts("" + "goto " + (curstate)); + self.racc_debug_out.$puts("goto " + (curstate)); self.$racc_print_states(state); return self.racc_debug_out.$puts(); - }, $Parser_racc_next_state$25.$$arity = 2); + }, 2); - Opal.def(self, '$racc_print_stacks', $Parser_racc_print_stacks$26 = function $$racc_print_stacks(t, v) { - var $$27, self = this, out = nil; + $def(self, '$racc_print_stacks', function $$racc_print_stacks(t, v) { + var self = this, out = nil; out = self.racc_debug_out; out.$print(" ["); - $send(t, 'each_index', [], ($$27 = function(i){var self = $$27.$$s == null ? this : $$27.$$s; + $send(t, 'each_index', [], function $$6(i){var self = $$6.$$s == null ? this : $$6.$$s; - if (i == null) { - i = nil; - }; - return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, $$27.$$s = self, $$27.$$arity = 1, $$27)); + if (i == null) i = nil;; + return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, {$$arity: 1, $$s: self}); return out.$puts(" ]"); - }, $Parser_racc_print_stacks$26.$$arity = 2); + }, 2); - Opal.def(self, '$racc_print_states', $Parser_racc_print_states$28 = function $$racc_print_states(s) { - var $$29, self = this, out = nil; + $def(self, '$racc_print_states', function $$racc_print_states(s) { + var self = this, out = nil; out = self.racc_debug_out; out.$print(" ["); - $send(s, 'each', [], ($$29 = function(st){var self = $$29.$$s == null ? this : $$29.$$s; - + $send(s, 'each', [], function $$7(st){ - if (st == null) { - st = nil; - }; - return out.$print(" ", st);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + if (st == null) st = nil;; + return out.$print(" ", st);}, 1); return out.$puts(" ]"); - }, $Parser_racc_print_states$28.$$arity = 1); + }, 1); - Opal.def(self, '$racc_token2str', $Parser_racc_token2str$30 = function $$racc_token2str(tok) { - var self = this, $ret_or_21 = nil; + $def(self, '$racc_token2str', function $$racc_token2str(tok) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_21 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { - return $ret_or_21 + if ($truthy(($ret_or_1 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { + return $ret_or_1 } else { - return self.$raise("" + "[Racc Bug] can't convert token " + (tok) + " to string") + return self.$raise("[Racc Bug] can't convert token " + (tok) + " to string") } - }, $Parser_racc_token2str$30.$$arity = 1); - return (Opal.def(self, '$token_to_str', $Parser_token_to_str$31 = function $$token_to_str(t) { + }, 1); + return $def(self, '$token_to_str', function $$token_to_str(t) { var self = this; return $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](t) - }, $Parser_token_to_str$31.$$arity = 1), nil) && 'token_to_str'; + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["parser/version"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set; return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); var $nesting = [self].concat($parent_nesting); - return Opal.const_set($nesting[0], 'VERSION', "3.1.1.0") + return $const_set($nesting[0], 'VERSION', "3.1.1.0") })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["racc/parser"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send; +Opal.modules["racc/parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $a, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $const_set = Opal.const_set, $defs = Opal.defs, $gvars = Opal.gvars, $rb_lt = Opal.rb_lt, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $to_ary = Opal.to_ary, $neqeq = Opal.neqeq, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $rb_ge = Opal.rb_ge, $rb_gt = Opal.rb_gt, $eqeqeq = Opal.eqeqeq, $rb_le = Opal.rb_le, $rb_times = Opal.rb_times; - Opal.add_stubs(['$[]', '$class', '$<', '$size', '$[]=', '$-', '$__send__', '$_racc_setup', '$raise', '$_racc_init_sysvars', '$catch', '$!=', '$next_token', '$racc_read_token', '$+', '$>=', '$==', '$_racc_evalact', '$!', '$>', '$push', '$racc_shift', '$-@', '$_racc_do_reduce', '$===', '$racc_accept', '$throw', '$on_error', '$<=', '$pop', '$racc_e_pop', '$inspect', '$racc_next_state', '$*', '$racc_reduce', '$sprintf', '$token_to_str', '$print', '$racc_token2str', '$puts', '$racc_print_stacks', '$empty?', '$each', '$racc_print_states', '$each_index']); + Opal.add_stubs('[],class,<,size,[]=,-,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,push,racc_shift,-@,_racc_do_reduce,===,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index'); (function($base, $parent_nesting) { var self = $module($base, 'Racc'); - var $nesting = [self].concat($parent_nesting); - - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ParseError'); - - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting) + return ($klass($nesting[0], $$('StandardError'), 'ParseError'), nil) })($nesting[0], $nesting); - if ($truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'ParseError', $$$($$($nesting, 'Racc'), 'ParseError')) + if (!$truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'ParseError', $$$($$('Racc'), 'ParseError')) }; return (function($base, $parent_nesting) { var self = $module($base, 'Racc'); - var $nesting = [self].concat($parent_nesting), $a; + var $a, $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - if ($truthy((($a = $$($nesting, 'Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'Racc_No_Extensions', false) + if (!$truthy((($a = $$('Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { + $const_set($nesting[0], 'Racc_No_Extensions', false) }; return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Parser'); - var $nesting = [self].concat($parent_nesting), $Parser_racc_runtime_type$1, $Parser__racc_setup$2, $Parser__racc_init_sysvars$3, $Parser_do_parse$4, $Parser_next_token$5, $Parser__racc_do_parse_rb$6, $Parser_yyparse$8, $Parser__racc_yyparse_rb$9, $Parser__racc_evalact$12, $Parser__racc_do_reduce$14, $Parser_on_error$15, $Parser_yyerror$16, $Parser_yyaccept$17, $Parser_yyerrok$18, $Parser_racc_read_token$19, $Parser_racc_shift$20, $Parser_racc_reduce$21, $Parser_racc_accept$23, $Parser_racc_e_pop$24, $Parser_racc_next_state$25, $Parser_racc_print_stacks$26, $Parser_racc_print_states$28, $Parser_racc_token2str$30, $Parser_token_to_str$31; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.yydebug = self.$$prototype.racc_debug_out = self.$$prototype.racc_error_status = self.$$prototype.racc_t = self.$$prototype.racc_vstack = self.$$prototype.racc_val = self.$$prototype.racc_state = self.$$prototype.racc_tstack = nil; + $proto.yydebug = $proto.racc_debug_out = $proto.racc_error_status = $proto.racc_t = $proto.racc_vstack = $proto.racc_val = $proto.racc_state = $proto.racc_tstack = nil; - Opal.const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); - Opal.const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version', $$($nesting, 'Racc_Runtime_Core_Version_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$($nesting, 'Racc_Runtime_Core_Revision_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); - Opal.defs($$($nesting, 'Parser'), '$racc_runtime_type', $Parser_racc_runtime_type$1 = function $$racc_runtime_type() { - var self = this; - - return $$($nesting, 'Racc_Runtime_Type') - }, $Parser_racc_runtime_type$1.$$arity = 0); + $const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); + $const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); + $const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); + $const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); + $const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); + $const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); + $const_set($nesting[0], 'Racc_Runtime_Core_Version', $$('Racc_Runtime_Core_Version_R')); + $const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$('Racc_Runtime_Core_Revision_R')); + $const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); + $defs($$('Parser'), '$racc_runtime_type', function $$racc_runtime_type() { + + return $$('Racc_Runtime_Type') + }, 0); - Opal.def(self, '$_racc_setup', $Parser__racc_setup$2 = function $$_racc_setup() { + $def(self, '$_racc_setup', function $$_racc_setup() { var $a, $b, self = this, $ret_or_1 = nil, arg = nil, $writer = nil; if ($gvars.stderr == null) $gvars.stderr = nil; - if ($truthy($$$(self.$class(), 'Racc_debug_parser'))) { - } else { + if (!$truthy($$$(self.$class(), 'Racc_debug_parser'))) { self.yydebug = false }; - if ($truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - } else { + if (!$truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { self.yydebug = false }; if ($truthy(self.yydebug)) { - if ($truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { - } else { + if (!$truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { self.racc_debug_out = $gvars.stderr }; - self.racc_debug_out = (function() {if ($truthy(($ret_or_1 = self.racc_debug_out))) { - return $ret_or_1 - } else { - return $gvars.stderr - }; return nil; })();}; + self.racc_debug_out = ($truthy(($ret_or_1 = self.racc_debug_out)) ? ($ret_or_1) : ($gvars.stderr)); + }; arg = $$$(self.$class(), 'Racc_arg'); if ($truthy($rb_lt(arg.$size(), 14))) { $writer = [13, true]; - $send(arg, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(arg, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; return arg; - }, $Parser__racc_setup$2.$$arity = 0); + }, 0); - Opal.def(self, '$_racc_init_sysvars', $Parser__racc_init_sysvars$3 = function $$_racc_init_sysvars() { + $def(self, '$_racc_init_sysvars', function $$_racc_init_sysvars() { var self = this; @@ -2850,28 +2555,28 @@ Opal.modules["racc/parser"] = function(Opal) { self.racc_read_next = true; self.racc_user_yyerror = false; return (self.racc_error_status = 0); - }, $Parser__racc_init_sysvars$3.$$arity = 0); + }, 0); - Opal.def(self, '$do_parse', $Parser_do_parse$4 = function $$do_parse() { + $def(self, '$do_parse', function $$do_parse() { var self = this; - return self.$__send__($$($nesting, 'Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) - }, $Parser_do_parse$4.$$arity = 0); + return self.$__send__($$('Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) + }, 0); - Opal.def(self, '$next_token', $Parser_next_token$5 = function $$next_token() { + $def(self, '$next_token', function $$next_token() { var self = this; - return self.$raise($$($nesting, 'NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") - }, $Parser_next_token$5.$$arity = 0); + return self.$raise($$('NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") + }, 0); - Opal.def(self, '$_racc_do_parse_rb', $Parser__racc_do_parse_rb$6 = function $$_racc_do_parse_rb(arg, in_debug) { - var $a, $b, $$7, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; + $def(self, '$_racc_do_parse_rb', function $$_racc_do_parse_rb(arg, in_debug) { + var $a, $b, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; self.$_racc_init_sysvars(); tok = (act = (i = nil)); - return $send(self, 'catch', ["racc_end_parse"], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s, $c, $d, $e, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + return $send(self, 'catch', ["racc_end_parse"], function $$1(){var $c, $d, $e, self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; if (self.racc_state == null) self.racc_state = nil; if (self.racc_read_next == null) self.racc_read_next = nil; if (self.racc_t == null) self.racc_t = nil; @@ -2883,32 +2588,22 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { if ($truthy(self.racc_read_next)) { - if ($truthy(self.racc_t['$!='](0))) { + if ($neqeq(self.racc_t, 0)) { - $e = self.$next_token(), $d = Opal.to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; + $e = self.$next_token(), $d = $to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; if ($truthy(tok)) { - self.racc_t = (function() {if ($truthy(($ret_or_2 = token_table['$[]'](tok)))) { - return $ret_or_2 - } else { - return 1 - }; return nil; })() + self.racc_t = ($truthy(($ret_or_1 = token_table['$[]'](tok))) ? ($ret_or_1) : (1)) } else { self.racc_t = 0 }; if ($truthy(self.yydebug)) { - self.$racc_read_token(self.racc_t, tok, self.racc_val)}; - self.racc_read_next = false;}}; + self.$racc_read_token(self.racc_t, tok, self.racc_val) + }; + self.racc_read_next = false; + } + }; i = $rb_plus(i, self.racc_t); - if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = $rb_ge(i, 0)))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_4 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_3 - }; return nil; })())) { - } else { + if (!(($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; } else { @@ -2917,24 +2612,24 @@ Opal.modules["racc/parser"] = function(Opal) { while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - }}, $$7.$$s = self, $$7.$$arity = 0, $$7)); - }, $Parser__racc_do_parse_rb$6.$$arity = 2); + }}, {$$arity: 0, $$s: self}); + }, 2); - Opal.def(self, '$yyparse', $Parser_yyparse$8 = function $$yyparse(recv, mid) { + $def(self, '$yyparse', function $$yyparse(recv, mid) { var self = this; - return self.$__send__($$($nesting, 'Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) - }, $Parser_yyparse$8.$$arity = 2); + return self.$__send__($$('Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) + }, 2); - Opal.def(self, '$_racc_yyparse_rb', $Parser__racc_yyparse_rb$9 = function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { - var $a, $b, $$10, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; + $def(self, '$_racc_yyparse_rb', function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { + var $a, $b, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; self.$_racc_init_sysvars(); act = nil; i = nil; - return $send(self, 'catch', ["racc_end_parse"], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $c, $d, $$11; + return $send(self, 'catch', ["racc_end_parse"], function $$2(){var $c, $d, self = $$2.$$s == null ? this : $$2.$$s; if (self.racc_state == null) self.racc_state = nil; @@ -2943,141 +2638,101 @@ Opal.modules["racc/parser"] = function(Opal) { } }; - return $send(recv, '__send__', [mid], ($$11 = function(tok, val){var self = $$11.$$s == null ? this : $$11.$$s, $e, $f, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + return $send(recv, '__send__', [mid], function $$3(tok, val){var $e, $f, self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil, $ret_or_2 = nil; if (self.racc_t == null) self.racc_t = nil; if (self.racc_state == null) self.racc_state = nil; if (self.racc_read_next == null) self.racc_read_next = nil; - if (tok == null) { - tok = nil; - }; + if (tok == null) tok = nil;; - if (val == null) { - val = nil; - }; + if (val == null) val = nil;; if ($truthy(tok)) { - self.racc_t = (function() {if ($truthy(($ret_or_5 = token_table['$[]'](tok)))) { - return $ret_or_5 - } else { - return 1 - }; return nil; })() + self.racc_t = ($truthy(($ret_or_1 = token_table['$[]'](tok))) ? ($ret_or_1) : (1)) } else { self.racc_t = 0 }; self.racc_val = val; self.racc_read_next = false; i = $rb_plus(i, self.racc_t); - if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge(i, 0)))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_7 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_6 - }; return nil; })())) { - } else { + if (!(($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - while ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']()))) { - return $ret_or_9 - } else { - return self.racc_read_next['$!']() - }; return nil; })()))) { - return $ret_or_8 - } else { - return self.racc_t['$=='](0) - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']())) ? ($ret_or_2) : (self.racc_read_next['$!']())))) ? ($ret_or_1) : (self.racc_t['$=='](0))))) { - if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = i))) { - return (i = $rb_plus(i, self.racc_t)) - } else { - return $ret_or_13 - }; return nil; })()))) { - return $rb_ge(i, 0) - } else { - return $ret_or_12 - }; return nil; })()))) { - return (act = action_table['$[]'](i)) - } else { - return $ret_or_11 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_10 - }; return nil; })())) { - } else { + if (!(((($truthy(i) && ($truthy((i = $rb_plus(i, self.racc_t))))) && ($truthy($rb_ge(i, 0)))) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { act = action_default['$[]'](self.racc_state['$[]'](-1)) }; while ($truthy((act = self.$_racc_evalact(act, arg)))) { }; - };}, $$11.$$s = self, $$11.$$arity = 2, $$11));}, $$10.$$s = self, $$10.$$arity = 0, $$10)); - }, $Parser__racc_yyparse_rb$9.$$arity = 4); + };}, {$$arity: 2, $$s: self});}, {$$arity: 0, $$s: self}); + }, 4); - Opal.def(self, '$_racc_evalact', $Parser__racc_evalact$12 = function $$_racc_evalact(act, arg) { - var $a, $b, $$13, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, $ret_or_14 = nil, $ret_or_15 = nil, code = nil, $case = nil, i = nil, $ret_or_16 = nil, $ret_or_17 = nil; + $def(self, '$_racc_evalact', function $$_racc_evalact(act, arg) { + var $a, $b, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, code = nil, $ret_or_1 = nil, i = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; - if ($truthy((function() {if ($truthy(($ret_or_14 = $rb_gt(act, 0)))) { - return $rb_lt(act, shift_n) - } else { - return $ret_or_14 - }; return nil; })())) { + $b = arg, $a = $to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; + if (($truthy($rb_gt(act, 0)) && ($truthy($rb_lt(act, shift_n))))) { if ($truthy($rb_gt(self.racc_error_status, 0))) { - if (self.racc_t['$=='](1)) { - } else { + if (!$eqeq(self.racc_t, 1)) { self.racc_error_status = $rb_minus(self.racc_error_status, 1) - }}; + } + }; self.racc_vstack.$push(self.racc_val); self.racc_state.$push(act); self.racc_read_next = true; if ($truthy(self.yydebug)) { self.racc_tstack.$push(self.racc_t); - self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack);}; - } else if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_lt(act, 0)))) { - return $rb_gt(act, reduce_n['$-@']()) - } else { - return $ret_or_15 - }; return nil; })())) { + self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack); + }; + } else if (($truthy($rb_lt(act, 0)) && ($truthy($rb_gt(act, reduce_n['$-@']()))))) { - code = $send(self, 'catch', ["racc_jump"], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + code = $send(self, 'catch', ["racc_jump"], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; if (self.racc_state == null) self.racc_state = nil; self.racc_state.$push(self.$_racc_do_reduce(arg, act)); - return false;}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return false;}, {$$arity: 0, $$s: self}); if ($truthy(code)) { - $case = code; - if ((1)['$===']($case)) { - self.racc_user_yyerror = true; - return reduce_n['$-@']();} - else if ((2)['$===']($case)) {return shift_n} - else {self.$raise("[Racc Bug] unknown jump code")}}; - } else if (act['$=='](shift_n)) { + if ($eqeqeq(1, ($ret_or_1 = code))) { + + self.racc_user_yyerror = true; + return reduce_n['$-@'](); + } else if ($eqeqeq(2, $ret_or_1)) { + return shift_n + } else { + self.$raise("[Racc Bug] unknown jump code") + } + }; + } else if ($eqeq(act, shift_n)) { if ($truthy(self.yydebug)) { - self.$racc_accept()}; + self.$racc_accept() + }; self.$throw("racc_end_parse", self.racc_vstack['$[]'](0)); - } else if (act['$=='](reduce_n['$-@']())) { + } else if ($eqeq(act, reduce_n['$-@']())) { - $case = self.racc_error_status; - if ((0)['$===']($case)) {if ($truthy(arg['$[]'](21))) { + if ($eqeqeq(0, ($ret_or_1 = self.racc_error_status))) { + if (!$truthy(arg['$[]'](21))) { + self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) + } + } else if ($eqeqeq(3, $ret_or_1)) { + + if ($eqeq(self.racc_t, 0)) { + self.$throw("racc_end_parse", nil) + }; + self.racc_read_next = true; } else { - self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) - }} - else if ((3)['$===']($case)) { - if (self.racc_t['$=='](0)) { - self.$throw("racc_end_parse", nil)}; - self.racc_read_next = true;}; + nil + }; self.racc_user_yyerror = false; self.racc_error_status = 3; while ($truthy(true)) { @@ -3085,40 +2740,36 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { i = $rb_plus(i, 1); - if ($truthy((function() {if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = $rb_ge(i, 0)))) { - - return (act = action_table['$[]'](i)); - } else { - return $ret_or_17 - }; return nil; })()))) { - return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) - } else { - return $ret_or_16 - }; return nil; })())) { - break;};}; + if ((($truthy($rb_ge(i, 0)) && ($truthy((act = action_table['$[]'](i))))) && ($eqeq(action_check['$[]'](i), self.racc_state['$[]'](-1))))) { + break; + }; + }; if ($truthy($rb_le(self.racc_state.$size(), 1))) { - self.$throw("racc_end_parse", nil)}; + self.$throw("racc_end_parse", nil) + }; self.racc_state.$pop(); self.racc_vstack.$pop(); if ($truthy(self.yydebug)) { self.racc_tstack.$pop(); - self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack);}; + self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack); + }; }; return act; } else { - self.$raise("" + "[Racc Bug] unknown action " + (act.$inspect())) + self.$raise("[Racc Bug] unknown action " + (act.$inspect())) }; if ($truthy(self.yydebug)) { - self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state)}; + self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state) + }; return nil; - }, $Parser__racc_evalact$12.$$arity = 2); + }, 2); - Opal.def(self, '$_racc_do_reduce', $Parser__racc_do_reduce$14 = function $$_racc_do_reduce(arg, act) { - var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, $ret_or_18 = nil, $ret_or_19 = nil, curstate = nil; + $def(self, '$_racc_do_reduce', function $$_racc_do_reduce(arg, act) { + var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, curstate = nil; - $b = arg, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; + $b = arg, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; state = self.racc_state; vstack = self.racc_vstack; tstack = self.racc_tstack; @@ -3128,20 +2779,22 @@ Opal.modules["racc/parser"] = function(Opal) { method_id = reduce_table['$[]']($rb_plus(i, 2)); void_array = []; if ($truthy(self.yydebug)) { - tmp_t = tstack['$[]'](len['$-@'](), len)}; + tmp_t = tstack['$[]'](len['$-@'](), len) + }; tmp_v = vstack['$[]'](len['$-@'](), len); if ($truthy(self.yydebug)) { $writer = [len['$-@'](), len, void_array]; - $send(tstack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(tstack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; $writer = [len['$-@'](), len, void_array]; - $send(vstack, '[]=', Opal.to_a($writer)); + $send(vstack, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [len['$-@'](), len, void_array]; - $send(state, '[]=', Opal.to_a($writer)); + $send(state, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(use_result)) { vstack.$push(self.$__send__(method_id, tmp_v, vstack, tmp_v['$[]'](0))) @@ -3150,54 +2803,44 @@ Opal.modules["racc/parser"] = function(Opal) { }; tstack.$push(reduce_to); if ($truthy(self.yydebug)) { - self.$racc_reduce(tmp_t, reduce_to, tstack, vstack)}; + self.$racc_reduce(tmp_t, reduce_to, tstack, vstack) + }; k1 = $rb_minus(reduce_to, nt_base); if ($truthy((i = goto_pointer['$[]'](k1)))) { i = $rb_plus(i, state['$[]'](-1)); - if ($truthy((function() {if ($truthy(($ret_or_18 = (function() {if ($truthy(($ret_or_19 = $rb_ge(i, 0)))) { - - return (curstate = goto_table['$[]'](i)); - } else { - return $ret_or_19 - }; return nil; })()))) { - return goto_check['$[]'](i)['$=='](k1) - } else { - return $ret_or_18 - }; return nil; })())) { - return curstate};}; + if ((($truthy($rb_ge(i, 0)) && ($truthy((curstate = goto_table['$[]'](i))))) && ($eqeq(goto_check['$[]'](i), k1)))) { + return curstate + }; + }; return goto_default['$[]'](k1); - }, $Parser__racc_do_reduce$14.$$arity = 2); + }, 2); - Opal.def(self, '$on_error', $Parser_on_error$15 = function $$on_error(t, val, vstack) { - var self = this, $ret_or_20 = nil; + $def(self, '$on_error', function $$on_error(t, val, vstack) { + var self = this, $ret_or_1 = nil; - return self.$raise($$($nesting, 'ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), (function() {if ($truthy(($ret_or_20 = self.$token_to_str(t)))) { - return $ret_or_20 - } else { - return "?" - }; return nil; })())) - }, $Parser_on_error$15.$$arity = 3); + return self.$raise($$('ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), ($truthy(($ret_or_1 = self.$token_to_str(t))) ? ($ret_or_1) : ("?")))) + }, 3); - Opal.def(self, '$yyerror', $Parser_yyerror$16 = function $$yyerror() { + $def(self, '$yyerror', function $$yyerror() { var self = this; return self.$throw("racc_jump", 1) - }, $Parser_yyerror$16.$$arity = 0); + }, 0); - Opal.def(self, '$yyaccept', $Parser_yyaccept$17 = function $$yyaccept() { + $def(self, '$yyaccept', function $$yyaccept() { var self = this; return self.$throw("racc_jump", 2) - }, $Parser_yyaccept$17.$$arity = 0); + }, 0); - Opal.def(self, '$yyerrok', $Parser_yyerrok$18 = function $$yyerrok() { + $def(self, '$yyerrok', function $$yyerrok() { var self = this; return (self.racc_error_status = 0) - }, $Parser_yyerrok$18.$$arity = 0); + }, 0); - Opal.def(self, '$racc_read_token', $Parser_racc_read_token$19 = function $$racc_read_token(t, tok, val) { + $def(self, '$racc_read_token', function $$racc_read_token(t, tok, val) { var self = this; @@ -3205,19 +2848,19 @@ Opal.modules["racc/parser"] = function(Opal) { self.racc_debug_out.$print(tok.$inspect(), "(", self.$racc_token2str(t), ") "); self.racc_debug_out.$puts(val.$inspect()); return self.racc_debug_out.$puts(); - }, $Parser_racc_read_token$19.$$arity = 3); + }, 3); - Opal.def(self, '$racc_shift', $Parser_racc_shift$20 = function $$racc_shift(tok, tstack, vstack) { + $def(self, '$racc_shift', function $$racc_shift(tok, tstack, vstack) { var self = this; - self.racc_debug_out.$puts("" + "shift " + (self.$racc_token2str(tok))); + self.racc_debug_out.$puts("shift " + (self.$racc_token2str(tok))); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_shift$20.$$arity = 3); + }, 3); - Opal.def(self, '$racc_reduce', $Parser_racc_reduce$21 = function $$racc_reduce(toks, sim, tstack, vstack) { - var $$22, self = this, out = nil; + $def(self, '$racc_reduce', function $$racc_reduce(toks, sim, tstack, vstack) { + var self = this, out = nil; out = self.racc_debug_out; @@ -3225,29 +2868,27 @@ Opal.modules["racc/parser"] = function(Opal) { if ($truthy(toks['$empty?']())) { out.$print(" ") } else { - $send(toks, 'each', [], ($$22 = function(t){var self = $$22.$$s == null ? this : $$22.$$s; + $send(toks, 'each', [], function $$5(t){var self = $$5.$$s == null ? this : $$5.$$s; - if (t == null) { - t = nil; - }; - return out.$print(" ", self.$racc_token2str(t));}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + if (t == null) t = nil;; + return out.$print(" ", self.$racc_token2str(t));}, {$$arity: 1, $$s: self}) }; - out.$puts("" + " --> " + (self.$racc_token2str(sim))); + out.$puts(" --> " + (self.$racc_token2str(sim))); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_reduce$21.$$arity = 4); + }, 4); - Opal.def(self, '$racc_accept', $Parser_racc_accept$23 = function $$racc_accept() { + $def(self, '$racc_accept', function $$racc_accept() { var self = this; self.racc_debug_out.$puts("accept"); return self.racc_debug_out.$puts(); - }, $Parser_racc_accept$23.$$arity = 0); + }, 0); - Opal.def(self, '$racc_e_pop', $Parser_racc_e_pop$24 = function $$racc_e_pop(state, tstack, vstack) { + $def(self, '$racc_e_pop', function $$racc_e_pop(state, tstack, vstack) { var self = this; @@ -3255,141 +2896,123 @@ Opal.modules["racc/parser"] = function(Opal) { self.$racc_print_states(state); self.$racc_print_stacks(tstack, vstack); return self.racc_debug_out.$puts(); - }, $Parser_racc_e_pop$24.$$arity = 3); + }, 3); - Opal.def(self, '$racc_next_state', $Parser_racc_next_state$25 = function $$racc_next_state(curstate, state) { + $def(self, '$racc_next_state', function $$racc_next_state(curstate, state) { var self = this; - self.racc_debug_out.$puts("" + "goto " + (curstate)); + self.racc_debug_out.$puts("goto " + (curstate)); self.$racc_print_states(state); return self.racc_debug_out.$puts(); - }, $Parser_racc_next_state$25.$$arity = 2); + }, 2); - Opal.def(self, '$racc_print_stacks', $Parser_racc_print_stacks$26 = function $$racc_print_stacks(t, v) { - var $$27, self = this, out = nil; + $def(self, '$racc_print_stacks', function $$racc_print_stacks(t, v) { + var self = this, out = nil; out = self.racc_debug_out; out.$print(" ["); - $send(t, 'each_index', [], ($$27 = function(i){var self = $$27.$$s == null ? this : $$27.$$s; + $send(t, 'each_index', [], function $$6(i){var self = $$6.$$s == null ? this : $$6.$$s; - if (i == null) { - i = nil; - }; - return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, $$27.$$s = self, $$27.$$arity = 1, $$27)); + if (i == null) i = nil;; + return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, {$$arity: 1, $$s: self}); return out.$puts(" ]"); - }, $Parser_racc_print_stacks$26.$$arity = 2); + }, 2); - Opal.def(self, '$racc_print_states', $Parser_racc_print_states$28 = function $$racc_print_states(s) { - var $$29, self = this, out = nil; + $def(self, '$racc_print_states', function $$racc_print_states(s) { + var self = this, out = nil; out = self.racc_debug_out; out.$print(" ["); - $send(s, 'each', [], ($$29 = function(st){var self = $$29.$$s == null ? this : $$29.$$s; - + $send(s, 'each', [], function $$7(st){ - if (st == null) { - st = nil; - }; - return out.$print(" ", st);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + if (st == null) st = nil;; + return out.$print(" ", st);}, 1); return out.$puts(" ]"); - }, $Parser_racc_print_states$28.$$arity = 1); + }, 1); - Opal.def(self, '$racc_token2str', $Parser_racc_token2str$30 = function $$racc_token2str(tok) { - var self = this, $ret_or_21 = nil; + $def(self, '$racc_token2str', function $$racc_token2str(tok) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_21 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { - return $ret_or_21 + if ($truthy(($ret_or_1 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { + return $ret_or_1 } else { - return self.$raise("" + "[Racc Bug] can't convert token " + (tok) + " to string") + return self.$raise("[Racc Bug] can't convert token " + (tok) + " to string") } - }, $Parser_racc_token2str$30.$$arity = 1); - return (Opal.def(self, '$token_to_str', $Parser_token_to_str$31 = function $$token_to_str(t) { + }, 1); + return $def(self, '$token_to_str', function $$token_to_str(t) { var self = this; return $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](t) - }, $Parser_token_to_str$31.$$arity = 1), nil) && 'token_to_str'; + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/messages"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["parser/messages"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set, $hash2 = Opal.hash2, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $defs = Opal.defs; - Opal.add_stubs(['$freeze', '$[]', '$===', '$empty?', '$format']); + Opal.add_stubs('freeze,[],empty?,===,format'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'MESSAGES', $hash2(["unicode_point_too_large", "invalid_escape", "incomplete_escape", "invalid_hex_escape", "invalid_unicode_escape", "unterminated_unicode", "escape_eof", "string_eof", "regexp_options", "cvar_name", "ivar_name", "trailing_in_number", "empty_numeric", "invalid_octal", "no_dot_digit_literal", "bare_backslash", "unexpected", "embedded_document", "heredoc_id_has_newline", "heredoc_id_ends_with_nl", "unterminated_heredoc_id", "invalid_escape_use", "ambiguous_literal", "ambiguous_regexp", "ambiguous_prefix", "triple_dot_at_eol", "nth_ref_alias", "begin_in_method", "backref_assignment", "invalid_assignment", "module_name_const", "unexpected_token", "argument_const", "argument_ivar", "argument_gvar", "argument_cvar", "duplicate_argument", "empty_symbol", "odd_hash", "singleton_literal", "dynamic_const", "const_reassignment", "module_in_def", "class_in_def", "unexpected_percent_str", "block_and_blockarg", "masgn_as_condition", "block_given_to_yield", "invalid_regexp", "invalid_return", "csend_in_lhs_of_masgn", "cant_assign_to_numparam", "reserved_for_numparam", "ordinary_param_defined", "numparam_used_in_outer_scope", "circular_argument_reference", "pm_interp_in_var_name", "lvar_name", "undefined_lvar", "duplicate_variable_name", "duplicate_pattern_key", "endless_setter", "invalid_id_to_get", "forward_arg_after_restarg", "no_anonymous_blockarg", "useless_else", "duplicate_hash_key", "invalid_encoding", "invalid_action", "clobbered", "different_replacements", "swallowed_insertions", "swallowed_insertions_conflict", "crossing_deletions", "crossing_deletions_conflict", "crossing_insertions", "crossing_insertions_conflict"], {"unicode_point_too_large": "invalid Unicode codepoint (too large)", "invalid_escape": "invalid escape character syntax", "incomplete_escape": "incomplete character syntax", "invalid_hex_escape": "invalid hex escape", "invalid_unicode_escape": "invalid Unicode escape", "unterminated_unicode": "unterminated Unicode escape", "escape_eof": "escape sequence meets end of file", "string_eof": "unterminated string meets end of file", "regexp_options": "unknown regexp options: %{options}", "cvar_name": "`%{name}' is not allowed as a class variable name", "ivar_name": "`%{name}' is not allowed as an instance variable name", "trailing_in_number": "trailing `%{character}' in number", "empty_numeric": "numeric literal without digits", "invalid_octal": "invalid octal digit", "no_dot_digit_literal": "no . floating literal anymore; put 0 before dot", "bare_backslash": "bare backslash only allowed before newline", "unexpected": "unexpected `%{character}'", "embedded_document": "embedded document meets end of file (and they embark on a romantic journey)", "heredoc_id_has_newline": "here document identifier across newlines, never match", "heredoc_id_ends_with_nl": "here document identifier ends with a newline", "unterminated_heredoc_id": "unterminated heredoc id", "invalid_escape_use": "invalid character syntax; use ?%{escape}", "ambiguous_literal": "ambiguous first argument; put parentheses or a space even after the operator", "ambiguous_regexp": "ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator", "ambiguous_prefix": "`%{prefix}' interpreted as argument prefix", "triple_dot_at_eol": "... at EOL, should be parenthesized", "nth_ref_alias": "cannot define an alias for a back-reference variable", "begin_in_method": "BEGIN in method", "backref_assignment": "cannot assign to a back-reference variable", "invalid_assignment": "cannot assign to a keyword", "module_name_const": "class or module name must be a constant literal", "unexpected_token": "unexpected token %{token}", "argument_const": "formal argument cannot be a constant", "argument_ivar": "formal argument cannot be an instance variable", "argument_gvar": "formal argument cannot be a global variable", "argument_cvar": "formal argument cannot be a class variable", "duplicate_argument": "duplicate argument name", "empty_symbol": "empty symbol literal", "odd_hash": "odd number of entries for a hash", "singleton_literal": "cannot define a singleton method for a literal", "dynamic_const": "dynamic constant assignment", "const_reassignment": "constant re-assignment", "module_in_def": "module definition in method body", "class_in_def": "class definition in method body", "unexpected_percent_str": "%{type}: unknown type of percent-literal", "block_and_blockarg": "both block argument and literal block are passed", "masgn_as_condition": "multiple assignment in conditional context", "block_given_to_yield": "block given to yield", "invalid_regexp": "%{message}", "invalid_return": "Invalid return in class/module body", "csend_in_lhs_of_masgn": "&. inside multiple assignment destination", "cant_assign_to_numparam": "cannot assign to numbered parameter %{name}", "reserved_for_numparam": "%{name} is reserved for numbered parameter", "ordinary_param_defined": "ordinary parameter is defined", "numparam_used_in_outer_scope": "numbered parameter is already used in an outer scope", "circular_argument_reference": "circular argument reference %{var_name}", "pm_interp_in_var_name": "symbol literal with interpolation is not allowed", "lvar_name": "`%{name}' is not allowed as a local variable name", "undefined_lvar": "no such local variable: `%{name}'", "duplicate_variable_name": "duplicate variable name %{name}", "duplicate_pattern_key": "duplicate hash pattern key %{name}", "endless_setter": "setter method cannot be defined in an endless method definition", "invalid_id_to_get": "identifier %{identifier} is not valid to get", "forward_arg_after_restarg": "... after rest argument", "no_anonymous_blockarg": "no anonymous block parameter", "useless_else": "else without rescue is useless", "duplicate_hash_key": "key is duplicated and overwritten", "invalid_encoding": "literal contains escape sequences incompatible with UTF-8", "invalid_action": "cannot %{action}", "clobbered": "clobbered by: %{action}", "different_replacements": "different replacements: %{replacement} vs %{other_replacement}", "swallowed_insertions": "this replacement:", "swallowed_insertions_conflict": "swallows some inner rewriting actions:", "crossing_deletions": "the deletion of:", "crossing_deletions_conflict": "is crossing:", "crossing_insertions": "the rewriting action on:", "crossing_insertions_conflict": "is crossing that on:"}).$freeze()); + $const_set($nesting[0], 'MESSAGES', $hash2(["unicode_point_too_large", "invalid_escape", "incomplete_escape", "invalid_hex_escape", "invalid_unicode_escape", "unterminated_unicode", "escape_eof", "string_eof", "regexp_options", "cvar_name", "ivar_name", "trailing_in_number", "empty_numeric", "invalid_octal", "no_dot_digit_literal", "bare_backslash", "unexpected", "embedded_document", "heredoc_id_has_newline", "heredoc_id_ends_with_nl", "unterminated_heredoc_id", "invalid_escape_use", "ambiguous_literal", "ambiguous_regexp", "ambiguous_prefix", "triple_dot_at_eol", "nth_ref_alias", "begin_in_method", "backref_assignment", "invalid_assignment", "module_name_const", "unexpected_token", "argument_const", "argument_ivar", "argument_gvar", "argument_cvar", "duplicate_argument", "empty_symbol", "odd_hash", "singleton_literal", "dynamic_const", "const_reassignment", "module_in_def", "class_in_def", "unexpected_percent_str", "block_and_blockarg", "masgn_as_condition", "block_given_to_yield", "invalid_regexp", "invalid_return", "csend_in_lhs_of_masgn", "cant_assign_to_numparam", "reserved_for_numparam", "ordinary_param_defined", "numparam_used_in_outer_scope", "circular_argument_reference", "pm_interp_in_var_name", "lvar_name", "undefined_lvar", "duplicate_variable_name", "duplicate_pattern_key", "endless_setter", "invalid_id_to_get", "forward_arg_after_restarg", "no_anonymous_blockarg", "useless_else", "duplicate_hash_key", "invalid_encoding", "invalid_action", "clobbered", "different_replacements", "swallowed_insertions", "swallowed_insertions_conflict", "crossing_deletions", "crossing_deletions_conflict", "crossing_insertions", "crossing_insertions_conflict"], {"unicode_point_too_large": "invalid Unicode codepoint (too large)", "invalid_escape": "invalid escape character syntax", "incomplete_escape": "incomplete character syntax", "invalid_hex_escape": "invalid hex escape", "invalid_unicode_escape": "invalid Unicode escape", "unterminated_unicode": "unterminated Unicode escape", "escape_eof": "escape sequence meets end of file", "string_eof": "unterminated string meets end of file", "regexp_options": "unknown regexp options: %{options}", "cvar_name": "`%{name}' is not allowed as a class variable name", "ivar_name": "`%{name}' is not allowed as an instance variable name", "trailing_in_number": "trailing `%{character}' in number", "empty_numeric": "numeric literal without digits", "invalid_octal": "invalid octal digit", "no_dot_digit_literal": "no . floating literal anymore; put 0 before dot", "bare_backslash": "bare backslash only allowed before newline", "unexpected": "unexpected `%{character}'", "embedded_document": "embedded document meets end of file (and they embark on a romantic journey)", "heredoc_id_has_newline": "here document identifier across newlines, never match", "heredoc_id_ends_with_nl": "here document identifier ends with a newline", "unterminated_heredoc_id": "unterminated heredoc id", "invalid_escape_use": "invalid character syntax; use ?%{escape}", "ambiguous_literal": "ambiguous first argument; put parentheses or a space even after the operator", "ambiguous_regexp": "ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator", "ambiguous_prefix": "`%{prefix}' interpreted as argument prefix", "triple_dot_at_eol": "... at EOL, should be parenthesized", "nth_ref_alias": "cannot define an alias for a back-reference variable", "begin_in_method": "BEGIN in method", "backref_assignment": "cannot assign to a back-reference variable", "invalid_assignment": "cannot assign to a keyword", "module_name_const": "class or module name must be a constant literal", "unexpected_token": "unexpected token %{token}", "argument_const": "formal argument cannot be a constant", "argument_ivar": "formal argument cannot be an instance variable", "argument_gvar": "formal argument cannot be a global variable", "argument_cvar": "formal argument cannot be a class variable", "duplicate_argument": "duplicate argument name", "empty_symbol": "empty symbol literal", "odd_hash": "odd number of entries for a hash", "singleton_literal": "cannot define a singleton method for a literal", "dynamic_const": "dynamic constant assignment", "const_reassignment": "constant re-assignment", "module_in_def": "module definition in method body", "class_in_def": "class definition in method body", "unexpected_percent_str": "%{type}: unknown type of percent-literal", "block_and_blockarg": "both block argument and literal block are passed", "masgn_as_condition": "multiple assignment in conditional context", "block_given_to_yield": "block given to yield", "invalid_regexp": "%{message}", "invalid_return": "Invalid return in class/module body", "csend_in_lhs_of_masgn": "&. inside multiple assignment destination", "cant_assign_to_numparam": "cannot assign to numbered parameter %{name}", "reserved_for_numparam": "%{name} is reserved for numbered parameter", "ordinary_param_defined": "ordinary parameter is defined", "numparam_used_in_outer_scope": "numbered parameter is already used in an outer scope", "circular_argument_reference": "circular argument reference %{var_name}", "pm_interp_in_var_name": "symbol literal with interpolation is not allowed", "lvar_name": "`%{name}' is not allowed as a local variable name", "undefined_lvar": "no such local variable: `%{name}'", "duplicate_variable_name": "duplicate variable name %{name}", "duplicate_pattern_key": "duplicate hash pattern key %{name}", "endless_setter": "setter method cannot be defined in an endless method definition", "invalid_id_to_get": "identifier %{identifier} is not valid to get", "forward_arg_after_restarg": "... after rest argument", "no_anonymous_blockarg": "no anonymous block parameter", "useless_else": "else without rescue is useless", "duplicate_hash_key": "key is duplicated and overwritten", "invalid_encoding": "literal contains escape sequences incompatible with UTF-8", "invalid_action": "cannot %{action}", "clobbered": "clobbered by: %{action}", "different_replacements": "different replacements: %{replacement} vs %{other_replacement}", "swallowed_insertions": "this replacement:", "swallowed_insertions_conflict": "swallows some inner rewriting actions:", "crossing_deletions": "the deletion of:", "crossing_deletions_conflict": "is crossing:", "crossing_insertions": "the rewriting action on:", "crossing_insertions_conflict": "is crossing that on:"}).$freeze()); return (function($base, $parent_nesting) { var self = $module($base, 'Messages'); - var $nesting = [self].concat($parent_nesting), $Messages_compile$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.defs(self, '$compile', $Messages_compile$1 = function $$compile(reason, arguments$) { - var self = this, template = nil, $ret_or_1 = nil; + return $defs(self, '$compile', function $$compile(reason, arguments$) { + var self = this, template = nil; - template = $$($nesting, 'MESSAGES')['$[]'](reason); - if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Hash')['$==='](arguments$)))) { - return arguments$['$empty?']() - } else { - return $ret_or_1 - }; return nil; })())) { - return template}; + template = $$('MESSAGES')['$[]'](reason); + if (($eqeqeq($$('Hash'), arguments$) && ($truthy(arguments$['$empty?']())))) { + return template + }; return self.$format(template, arguments$); - }, $Messages_compile$1.$$arity = 2), nil) && 'compile' + }, 2) })($nesting[0], $nesting); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/deprecation"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["parser/deprecation"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$attr_writer', '$warn']); + Opal.add_stubs('attr_writer,warn'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); var $nesting = [self].concat($parent_nesting); - return (function($base, $parent_nesting) { + return (function($base) { var self = $module($base, 'Deprecation'); - var $nesting = [self].concat($parent_nesting), $Deprecation_warn_of_deprecation$1; - + self.$attr_writer("warned_of_deprecation"); - return (Opal.def(self, '$warn_of_deprecation', $Deprecation_warn_of_deprecation$1 = function $$warn_of_deprecation() { + return $def(self, '$warn_of_deprecation', function $$warn_of_deprecation() { var self = this, $ret_or_1 = nil, $ret_or_2 = nil; if (self.warned_of_deprecation == null) self.warned_of_deprecation = nil; - return (self.warned_of_deprecation = (function() {if ($truthy(($ret_or_1 = self.warned_of_deprecation))) { - return $ret_or_1 - } else if ($truthy(($ret_or_2 = self.$warn($$$(self, 'DEPRECATION_WARNING'))))) { - return $ret_or_2 - } else { - return true - }; return nil; })()) - }, $Deprecation_warn_of_deprecation$1.$$arity = 0), nil) && 'warn_of_deprecation'; - })($nesting[0], $nesting) + return (self.warned_of_deprecation = ($truthy(($ret_or_1 = self.warned_of_deprecation)) ? ($ret_or_1) : ($truthy(($ret_or_2 = self.$warn($$$(self, 'DEPRECATION_WARNING')))) ? ($ret_or_2) : (true)))) + }, 0); + })($nesting[0]) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/ast/processor"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $slice = Opal.slice; +Opal.modules["parser/ast/processor"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $alias = Opal.alias, $to_a = Opal.to_a, $not = Opal.not, $truthy = Opal.truthy, $slice = Opal.slice; - Opal.add_stubs(['$updated', '$process_all', '$on_var', '$!', '$nil?', '$process', '$on_vasgn', '$on_argument', '$is_a?', '$[]', '$children', '$process_regular_node', '$warn']); + Opal.add_stubs('updated,process_all,on_var,!,nil?,process,on_vasgn,on_argument,is_a?,[],children,process_regular_node,warn'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -3403,15 +3026,15 @@ Opal.modules["parser/ast/processor"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Processor'); - var $nesting = [self].concat($parent_nesting), $Processor_process_regular_node$1, $Processor_on_var$2, $Processor_process_variable_node$3, $Processor_on_vasgn$4, $Processor_process_var_asgn_node$5, $Processor_on_op_asgn$6, $Processor_on_const$7, $Processor_on_casgn$8, $Processor_on_argument$9, $Processor_process_argument_node$10, $Processor_on_procarg0$11, $Processor_on_def$12, $Processor_on_defs$13, $Processor_on_send$14, $Processor_on_numblock$15, $Processor_process_variable_node$16, $Processor_process_var_asgn_node$17, $Processor_process_argument_node$18, $Processor_on_empty_else$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$process_regular_node', $Processor_process_regular_node$1 = function $$process_regular_node(node) { + $def(self, '$process_regular_node', function $$process_regular_node(node) { var self = this; return node.$updated(nil, self.$process_all(node)) - }, $Processor_process_regular_node$1.$$arity = 1); + }, 1); $alias(self, "on_dstr", "process_regular_node"); $alias(self, "on_dsym", "process_regular_node"); $alias(self, "on_regexp", "process_regular_node"); @@ -3425,17 +3048,16 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_irange", "process_regular_node"); $alias(self, "on_erange", "process_regular_node"); - Opal.def(self, '$on_var', $Processor_on_var$2 = function $$on_var(node) { - var self = this; - + $def(self, '$on_var', function $$on_var(node) { + return node - }, $Processor_on_var$2.$$arity = 1); + }, 1); - Opal.def(self, '$process_variable_node', $Processor_process_variable_node$3 = function $$process_variable_node(node) { + $def(self, '$process_variable_node', function $$process_variable_node(node) { var self = this; return self.$on_var(node) - }, $Processor_process_variable_node$3.$$arity = 1); + }, 1); $alias(self, "on_lvar", "process_variable_node"); $alias(self, "on_ivar", "process_variable_node"); $alias(self, "on_gvar", "process_variable_node"); @@ -3443,23 +3065,23 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_back_ref", "process_variable_node"); $alias(self, "on_nth_ref", "process_variable_node"); - Opal.def(self, '$on_vasgn', $Processor_on_vasgn$4 = function $$on_vasgn(node) { + $def(self, '$on_vasgn', function $$on_vasgn(node) { var $a, self = this, name = nil, value_node = nil; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; + if ($not(value_node['$nil?']())) { return node.$updated(nil, [name, self.$process(value_node)]) } else { return node }; - }, $Processor_on_vasgn$4.$$arity = 1); + }, 1); - Opal.def(self, '$process_var_asgn_node', $Processor_process_var_asgn_node$5 = function $$process_var_asgn_node(node) { + $def(self, '$process_var_asgn_node', function $$process_var_asgn_node(node) { var self = this; return self.$on_vasgn(node) - }, $Processor_process_var_asgn_node$5.$$arity = 1); + }, 1); $alias(self, "on_lvasgn", "process_var_asgn_node"); $alias(self, "on_ivasgn", "process_var_asgn_node"); $alias(self, "on_gvasgn", "process_var_asgn_node"); @@ -3467,54 +3089,54 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_and_asgn", "process_regular_node"); $alias(self, "on_or_asgn", "process_regular_node"); - Opal.def(self, '$on_op_asgn', $Processor_on_op_asgn$6 = function $$on_op_asgn(node) { + $def(self, '$on_op_asgn', function $$on_op_asgn(node) { var $a, self = this, var_node = nil, method_name = nil, value_node = nil; - $a = [].concat(Opal.to_a(node)), (var_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node)), (var_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; return node.$updated(nil, [self.$process(var_node), method_name, self.$process(value_node)]); - }, $Processor_on_op_asgn$6.$$arity = 1); + }, 1); $alias(self, "on_mlhs", "process_regular_node"); $alias(self, "on_masgn", "process_regular_node"); - Opal.def(self, '$on_const', $Processor_on_const$7 = function $$on_const(node) { + $def(self, '$on_const', function $$on_const(node) { var $a, self = this, scope_node = nil, name = nil; - $a = [].concat(Opal.to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; return node.$updated(nil, [self.$process(scope_node), name]); - }, $Processor_on_const$7.$$arity = 1); + }, 1); - Opal.def(self, '$on_casgn', $Processor_on_casgn$8 = function $$on_casgn(node) { + $def(self, '$on_casgn', function $$on_casgn(node) { var $a, self = this, scope_node = nil, name = nil, value_node = nil; - $a = [].concat(Opal.to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { + $a = [].concat($to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; + if ($not(value_node['$nil?']())) { return node.$updated(nil, [self.$process(scope_node), name, self.$process(value_node)]) } else { return node.$updated(nil, [self.$process(scope_node), name]) }; - }, $Processor_on_casgn$8.$$arity = 1); + }, 1); $alias(self, "on_args", "process_regular_node"); - Opal.def(self, '$on_argument', $Processor_on_argument$9 = function $$on_argument(node) { + $def(self, '$on_argument', function $$on_argument(node) { var $a, self = this, arg_name = nil, value_node = nil; - $a = [].concat(Opal.to_a(node)), (arg_name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { + $a = [].concat($to_a(node)), (arg_name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; + if ($not(value_node['$nil?']())) { return node.$updated(nil, [arg_name, self.$process(value_node)]) } else { return node }; - }, $Processor_on_argument$9.$$arity = 1); + }, 1); - Opal.def(self, '$process_argument_node', $Processor_process_argument_node$10 = function $$process_argument_node(node) { + $def(self, '$process_argument_node', function $$process_argument_node(node) { var self = this; return self.$on_argument(node) - }, $Processor_process_argument_node$10.$$arity = 1); + }, 1); $alias(self, "on_arg", "process_argument_node"); $alias(self, "on_optarg", "process_argument_node"); $alias(self, "on_restarg", "process_argument_node"); @@ -3525,15 +3147,15 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_kwrestarg", "process_argument_node"); $alias(self, "on_forward_arg", "process_argument_node"); - Opal.def(self, '$on_procarg0', $Processor_on_procarg0$11 = function $$on_procarg0(node) { + $def(self, '$on_procarg0', function $$on_procarg0(node) { var self = this; - if ($truthy(node.$children()['$[]'](0)['$is_a?']($$($nesting, 'Symbol')))) { + if ($truthy(node.$children()['$[]'](0)['$is_a?']($$('Symbol')))) { return self.$on_argument(node) } else { return self.$process_regular_node(node) } - }, $Processor_on_procarg0$11.$$arity = 1); + }, 1); $alias(self, "on_arg_expr", "process_regular_node"); $alias(self, "on_restarg_expr", "process_regular_node"); $alias(self, "on_blockarg_expr", "process_regular_node"); @@ -3542,46 +3164,47 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_class", "process_regular_node"); $alias(self, "on_sclass", "process_regular_node"); - Opal.def(self, '$on_def', $Processor_on_def$12 = function $$on_def(node) { + $def(self, '$on_def', function $$on_def(node) { var $a, self = this, name = nil, args_node = nil, body_node = nil; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (args_node = ($a[1] == null ? nil : $a[1])), (body_node = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (args_node = ($a[1] == null ? nil : $a[1])), (body_node = ($a[2] == null ? nil : $a[2])), $a; return node.$updated(nil, [name, self.$process(args_node), self.$process(body_node)]); - }, $Processor_on_def$12.$$arity = 1); + }, 1); - Opal.def(self, '$on_defs', $Processor_on_defs$13 = function $$on_defs(node) { + $def(self, '$on_defs', function $$on_defs(node) { var $a, self = this, definee_node = nil, name = nil, args_node = nil, body_node = nil; - $a = [].concat(Opal.to_a(node)), (definee_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (args_node = ($a[2] == null ? nil : $a[2])), (body_node = ($a[3] == null ? nil : $a[3])), $a; + $a = [].concat($to_a(node)), (definee_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (args_node = ($a[2] == null ? nil : $a[2])), (body_node = ($a[3] == null ? nil : $a[3])), $a; return node.$updated(nil, [self.$process(definee_node), name, self.$process(args_node), self.$process(body_node)]); - }, $Processor_on_defs$13.$$arity = 1); + }, 1); $alias(self, "on_undef", "process_regular_node"); $alias(self, "on_alias", "process_regular_node"); - Opal.def(self, '$on_send', $Processor_on_send$14 = function $$on_send(node) { + $def(self, '$on_send', function $$on_send(node) { var $a, self = this, receiver_node = nil, method_name = nil, arg_nodes = nil; - $a = [].concat(Opal.to_a(node)), (receiver_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (arg_nodes = $slice.call($a, 2)), $a; + $a = [].concat($to_a(node)), (receiver_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (arg_nodes = $slice.call($a, 2)), $a; if ($truthy(receiver_node)) { - receiver_node = self.$process(receiver_node)}; - return node.$updated(nil, [receiver_node, method_name].concat(Opal.to_a(self.$process_all(arg_nodes)))); - }, $Processor_on_send$14.$$arity = 1); + receiver_node = self.$process(receiver_node) + }; + return node.$updated(nil, [receiver_node, method_name].concat($to_a(self.$process_all(arg_nodes)))); + }, 1); $alias(self, "on_csend", "on_send"); $alias(self, "on_index", "process_regular_node"); $alias(self, "on_indexasgn", "process_regular_node"); $alias(self, "on_block", "process_regular_node"); $alias(self, "on_lambda", "process_regular_node"); - Opal.def(self, '$on_numblock', $Processor_on_numblock$15 = function $$on_numblock(node) { + $def(self, '$on_numblock', function $$on_numblock(node) { var $a, self = this, method_call = nil, max_numparam = nil, body = nil; - $a = [].concat(Opal.to_a(node)), (method_call = ($a[0] == null ? nil : $a[0])), (max_numparam = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node)), (method_call = ($a[0] == null ? nil : $a[0])), (max_numparam = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; return node.$updated(nil, [self.$process(method_call), max_numparam, self.$process(body)]); - }, $Processor_on_numblock$15.$$arity = 1); + }, 1); $alias(self, "on_while", "process_regular_node"); $alias(self, "on_while_post", "process_regular_node"); $alias(self, "on_until", "process_regular_node"); @@ -3630,44 +3253,42 @@ Opal.modules["parser/ast/processor"] = function(Opal) { $alias(self, "on_const_pattern", "process_regular_node"); $alias(self, "on_find_pattern", "process_regular_node"); - Opal.def(self, '$process_variable_node', $Processor_process_variable_node$16 = function $$process_variable_node(node) { + $def(self, '$process_variable_node', function $$process_variable_node(node) { var self = this; - self.$warn("" + "Parser::AST::Processor#process_variable_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_var instead."); + self.$warn("Parser::AST::Processor#process_variable_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_var instead."); return self.$on_var(node); - }, $Processor_process_variable_node$16.$$arity = 1); + }, 1); - Opal.def(self, '$process_var_asgn_node', $Processor_process_var_asgn_node$17 = function $$process_var_asgn_node(node) { + $def(self, '$process_var_asgn_node', function $$process_var_asgn_node(node) { var self = this; - self.$warn("" + "Parser::AST::Processor#process_var_asgn_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_vasgn instead."); + self.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_vasgn instead."); return self.$on_vasgn(node); - }, $Processor_process_var_asgn_node$17.$$arity = 1); + }, 1); - Opal.def(self, '$process_argument_node', $Processor_process_argument_node$18 = function $$process_argument_node(node) { + $def(self, '$process_argument_node', function $$process_argument_node(node) { var self = this; - self.$warn("" + "Parser::AST::Processor#process_argument_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_argument instead."); + self.$warn("Parser::AST::Processor#process_argument_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_argument instead."); return self.$on_argument(node); - }, $Processor_process_argument_node$18.$$arity = 1); - return (Opal.def(self, '$on_empty_else', $Processor_on_empty_else$19 = function $$on_empty_else(node) { - var self = this; - + }, 1); + return $def(self, '$on_empty_else', function $$on_empty_else(node) { + return node - }, $Processor_on_empty_else$19.$$arity = 1), nil) && 'on_empty_else'; - })($nesting[0], $$$($$$('::', 'AST'), 'Processor'), $nesting) + }, 1); + })($nesting[0], $$$($$$('AST'), 'Processor'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/meta"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["parser/meta"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set; - Opal.add_stubs(['$freeze', '$to_set']); + Opal.add_stubs('freeze,to_set'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -3678,28 +3299,15 @@ Opal.modules["parser/meta"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return Opal.const_set($nesting[0], 'NODE_TYPES', ["true", "false", "nil", "int", "float", "str", "dstr", "sym", "dsym", "xstr", "regopt", "regexp", "array", "splat", "pair", "kwsplat", "hash", "irange", "erange", "self", "lvar", "ivar", "cvar", "gvar", "const", "defined?", "lvasgn", "ivasgn", "cvasgn", "gvasgn", "casgn", "mlhs", "masgn", "op_asgn", "and_asgn", "ensure", "rescue", "arg_expr", "or_asgn", "back_ref", "nth_ref", "match_with_lvasgn", "match_current_line", "module", "class", "sclass", "def", "defs", "undef", "alias", "args", "cbase", "arg", "optarg", "restarg", "blockarg", "block_pass", "kwarg", "kwoptarg", "kwrestarg", "kwnilarg", "send", "csend", "super", "zsuper", "yield", "block", "and", "not", "or", "if", "when", "case", "while", "until", "while_post", "until_post", "for", "break", "next", "redo", "return", "resbody", "kwbegin", "begin", "retry", "preexe", "postexe", "iflipflop", "eflipflop", "shadowarg", "complex", "rational", "__FILE__", "__LINE__", "__ENCODING__", "ident", "lambda", "indexasgn", "index", "procarg0", "restarg_expr", "blockarg_expr", "objc_kwarg", "objc_restarg", "objc_varargs", "numargs", "numblock", "forward_args", "forwarded_args", "forward_arg", "case_match", "in_match", "in_pattern", "match_var", "pin", "match_alt", "match_as", "match_rest", "array_pattern", "match_with_trailing_comma", "array_pattern_with_tail", "hash_pattern", "const_pattern", "if_guard", "unless_guard", "match_nil_pattern", "empty_else", "find_pattern", "kwargs", "match_pattern_p", "match_pattern"].$to_set().$freeze()) + return $const_set($nesting[0], 'NODE_TYPES', ["true", "false", "nil", "int", "float", "str", "dstr", "sym", "dsym", "xstr", "regopt", "regexp", "array", "splat", "pair", "kwsplat", "hash", "irange", "erange", "self", "lvar", "ivar", "cvar", "gvar", "const", "defined?", "lvasgn", "ivasgn", "cvasgn", "gvasgn", "casgn", "mlhs", "masgn", "op_asgn", "and_asgn", "ensure", "rescue", "arg_expr", "or_asgn", "back_ref", "nth_ref", "match_with_lvasgn", "match_current_line", "module", "class", "sclass", "def", "defs", "undef", "alias", "args", "cbase", "arg", "optarg", "restarg", "blockarg", "block_pass", "kwarg", "kwoptarg", "kwrestarg", "kwnilarg", "send", "csend", "super", "zsuper", "yield", "block", "and", "not", "or", "if", "when", "case", "while", "until", "while_post", "until_post", "for", "break", "next", "redo", "return", "resbody", "kwbegin", "begin", "retry", "preexe", "postexe", "iflipflop", "eflipflop", "shadowarg", "complex", "rational", "__FILE__", "__LINE__", "__ENCODING__", "ident", "lambda", "indexasgn", "index", "procarg0", "restarg_expr", "blockarg_expr", "objc_kwarg", "objc_restarg", "objc_varargs", "numargs", "numblock", "forward_args", "forwarded_args", "forward_arg", "case_match", "in_match", "in_pattern", "match_var", "pin", "match_alt", "match_as", "match_rest", "array_pattern", "match_with_trailing_comma", "array_pattern_with_tail", "hash_pattern", "const_pattern", "if_guard", "unless_guard", "match_nil_pattern", "empty_else", "find_pattern", "kwargs", "match_pattern_p", "match_pattern"].$to_set().$freeze()) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/buffer"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $enc = Opal.enc, $truthy = Opal.truthy, $gvars = Opal.gvars, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/buffer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $enc = Opal.enc, $truthy = Opal.truthy, $gvars = Opal.gvars, $eqeq = Opal.eqeq, $neqeq = Opal.neqeq, $defs = Opal.defs, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $not = Opal.not, $rb_plus = Opal.rb_plus, $rb_ge = Opal.rb_ge, $rb_lt = Opal.rb_lt, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$attr_reader', '$empty?', '$=~', '$start_with?', '$freeze', '$==', '$[]', '$nil?', '$!=', '$match', '$find', '$encoding', '$recognize_encoding', '$force_encoding', '$encode', '$to_s', '$source=', '$-', '$open', '$read', '$raise', '$frozen?', '$dup', '$reencode_string', '$class', '$valid_encoding?', '$name', '$raw_source=', '$gsub', '$!', '$ascii_only?', '$line_index_for_position', '$line_begins', '$+', '$to_a', '$lines', '$end_with?', '$<<', '$each', '$chomp!', '$fetch', '$source_lines', '$<', '$>=', '$size', '$new', '$source', '$source_range', '$private', '$index', '$bsearch', '$[]=', '$method_defined?', '$bsearch_index']); + Opal.add_stubs('attr_reader,empty?,=~,start_with?,freeze,==,[],!=,nil?,match,find,encoding,recognize_encoding,force_encoding,encode,to_s,source=,-,open,read,raise,frozen?,dup,reencode_string,class,valid_encoding?,name,raw_source=,gsub,!,ascii_only?,line_index_for_position,line_begins,+,to_a,lines,end_with?,<<,each,chomp!,fetch,source_lines,>=,size,<,new,source,source_range,private,index,bsearch,[]=,method_defined?,bsearch_index'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -3713,68 +3321,58 @@ Opal.modules["parser/source/buffer"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Buffer'); - var $nesting = [self].concat($parent_nesting), $Buffer_recognize_encoding$1, $Buffer_reencode_string$2, $Buffer_initialize$3, $Buffer_read$4, $Buffer_source$6, $Buffer_source$eq$7, $Buffer_raw_source$eq$8, $Buffer_slice$9, $Buffer_decompose_position$10, $Buffer_line_for_position$11, $Buffer_column_for_position$12, $Buffer_source_lines$13, $Buffer_source_line$15, $Buffer_line_range$16, $Buffer_source_range$17, $Buffer_last_line$18, $Buffer_freeze$19, $Buffer_inspect$20, $Buffer_line_begins$21, $Buffer_line_index_for_position$22, $Buffer_bsearch$23, $Buffer_bsearch$25; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.name = self.$$prototype.source = self.$$prototype.slice_source = self.$$prototype.first_line = self.$$prototype.lines = self.$$prototype.source_range = self.$$prototype.line_begins = self.$$prototype.line_index_for_position = self.$$prototype.line_range = nil; + $proto.name = $proto.source = $proto.slice_source = $proto.first_line = $proto.lines = $proto.source_range = $proto.line_begins = $proto.line_index_for_position = $proto.line_range = nil; self.$attr_reader("name", "first_line"); - Opal.const_set($nesting[0], 'ENCODING_RE', Opal.regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*", "ASCII-8BIT"), $enc("(", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("(utf8-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+)", "ASCII-8BIT"), $enc(")", "ASCII-8BIT"), $enc("", "ASCII-8BIT")])); - Opal.defs(self, '$recognize_encoding', $Buffer_recognize_encoding$1 = function $$recognize_encoding(string) { - var $a, $b, self = this, first_line = nil, second_line = nil, encoding_line = nil, $ret_or_1 = nil, result = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $const_set($nesting[0], 'ENCODING_RE', $regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*", "ASCII-8BIT"), $enc("(", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("(utf8-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+)", "ASCII-8BIT"), $enc(")", "ASCII-8BIT"), $enc("", "ASCII-8BIT")])); + $defs(self, '$recognize_encoding', function $$recognize_encoding(string) { + var $a, $b, first_line = nil, second_line = nil, encoding_line = nil, result = nil, $ret_or_1 = nil, $ret_or_2 = nil; if ($truthy(string['$empty?']())) { - return nil}; + return nil + }; string['$=~'](/^(.*)\n?(.*\n)?/); $a = [(($b = $gvars['~']) === nil ? nil : $b['$[]'](1)), (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))], (first_line = $a[0]), (second_line = $a[1]), $a; if ($truthy(first_line['$start_with?']($enc("\xEF\xBB\xBF", "ASCII-8BIT").$freeze()))) { - return $$$($$($nesting, 'Encoding'), 'UTF_8') - } else if (first_line['$[]'](0, 2)['$==']($enc("#!", "ASCII-8BIT").$freeze())) { + return $$$($$('Encoding'), 'UTF_8') + } else if ($eqeq(first_line['$[]'](0, 2), $enc("#!", "ASCII-8BIT").$freeze())) { encoding_line = second_line } else { encoding_line = first_line }; - if ($truthy((function() {if ($truthy(($ret_or_1 = encoding_line['$nil?']()))) { - return $ret_or_1 - } else { - return encoding_line['$[]'](0)['$!=']($enc("#", "ASCII-8BIT")) - }; return nil; })())) { - return nil}; - if ($truthy((result = $$($nesting, 'ENCODING_RE').$match(encoding_line)))) { - return $$($nesting, 'Encoding').$find((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = result['$[]'](3)))) { - return $ret_or_3 - } else { - return result['$[]'](4) - }; return nil; })()))) { - return $ret_or_2 - } else { - return result['$[]'](6) - }; return nil; })()) + if (($truthy(encoding_line['$nil?']()) || ($neqeq(encoding_line['$[]'](0), $enc("#", "ASCII-8BIT"))))) { + return nil + }; + if ($truthy((result = $$('ENCODING_RE').$match(encoding_line)))) { + return $$('Encoding').$find(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = result['$[]'](3))) ? ($ret_or_2) : (result['$[]'](4))))) ? ($ret_or_1) : (result['$[]'](6)))) } else { return nil }; - }, $Buffer_recognize_encoding$1.$$arity = 1); - Opal.defs(self, '$reencode_string', $Buffer_reencode_string$2 = function $$reencode_string(input) { + }, 1); + $defs(self, '$reencode_string', function $$reencode_string(input) { var self = this, original_encoding = nil, detected_encoding = nil; original_encoding = input.$encoding(); - detected_encoding = self.$recognize_encoding(input.$force_encoding($$$($$($nesting, 'Encoding'), 'BINARY'))); + detected_encoding = self.$recognize_encoding(input.$force_encoding($$$($$('Encoding'), 'BINARY'))); if ($truthy(detected_encoding['$nil?']())) { return input.$force_encoding(original_encoding) - } else if (detected_encoding['$==']($$$($$($nesting, 'Encoding'), 'BINARY'))) { + } else if ($eqeq(detected_encoding, $$$($$('Encoding'), 'BINARY'))) { return input } else { - return input.$force_encoding(detected_encoding).$encode($$$($$($nesting, 'Encoding'), 'UTF_8')) + return input.$force_encoding(detected_encoding).$encode($$$($$('Encoding'), 'UTF_8')) }; - }, $Buffer_reencode_string$2.$$arity = 1); + }, 1); - Opal.def(self, '$initialize', $Buffer_initialize$3 = function $$initialize(name, $a, $b) { + $def(self, '$initialize', function $$initialize(name, $a, $b) { var $post_args, $kwargs, first_line, source, self = this, $writer = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); $kwargs = Opal.extract_kwargs($post_args); @@ -3784,18 +3382,11 @@ Opal.modules["parser/source/buffer"] = function(Opal) { throw Opal.ArgumentError.$new('expected kwargs'); }; - if ($post_args.length > 0) { - first_line = $post_args[0]; - $post_args.splice(0, 1); - } - if (first_line == null) { - first_line = 1; - }; + if ($post_args.length > 0) first_line = $post_args.shift(); + if (first_line == null) first_line = 1;; source = $kwargs.$$smap["source"]; - if (source == null) { - source = nil - }; + if (source == null) source = nil; self.name = name.$to_s(); self.source = nil; self.first_line = first_line; @@ -3806,79 +3397,71 @@ Opal.modules["parser/source/buffer"] = function(Opal) { if ($truthy(source)) { $writer = [source]; - $send(self, 'source=', Opal.to_a($writer)); + $send(self, 'source=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil }; - }, $Buffer_initialize$3.$$arity = -2); + }, -2); - Opal.def(self, '$read', $Buffer_read$4 = function $$read() { - var $$5, self = this; + $def(self, '$read', function $$read() { + var self = this; - $send($$($nesting, 'File'), 'open', [self.name, $enc("rb", "ASCII-8BIT")], ($$5 = function(io){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; + $send($$('File'), 'open', [self.name, $enc("rb", "ASCII-8BIT")], function $$1(io){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; - if (io == null) { - io = nil; - }; + if (io == null) io = nil;; $writer = [io.$read()]; - $send(self, 'source=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + $send(self, 'source=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); return self; - }, $Buffer_read$4.$$arity = 0); + }, 0); - Opal.def(self, '$source', $Buffer_source$6 = function $$source() { + $def(self, '$source', function $$source() { var self = this; if ($truthy(self.source['$nil?']())) { - self.$raise($$($nesting, 'RuntimeError'), $enc("Cannot extract source from uninitialized Source::Buffer", "ASCII-8BIT"))}; + self.$raise($$('RuntimeError'), $enc("Cannot extract source from uninitialized Source::Buffer", "ASCII-8BIT")) + }; return self.source; - }, $Buffer_source$6.$$arity = 0); + }, 0); - Opal.def(self, '$source=', $Buffer_source$eq$7 = function(input) { + $def(self, '$source=', function $Buffer_source$eq$2(input) { var self = this, $writer = nil; if ($truthy(input['$frozen?']())) { - input = input.$dup()}; + input = input.$dup() + }; input = self.$class().$reencode_string(input); - if ($truthy(input['$valid_encoding?']())) { - } else { - self.$raise($$($nesting, 'EncodingError'), "" + "invalid byte sequence in " + (input.$encoding().$name())) + if (!$truthy(input['$valid_encoding?']())) { + self.$raise($$('EncodingError'), $enc("invalid byte sequence in ", "ASCII-8BIT") + (input.$encoding().$name())) }; $writer = [input]; - $send(self, 'raw_source=', Opal.to_a($writer)); + $send(self, 'raw_source=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $Buffer_source$eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$raw_source=', $Buffer_raw_source$eq$8 = function(input) { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$raw_source=', function $Buffer_raw_source$eq$3(input) { + var self = this; if ($truthy(self.source)) { - self.$raise($$($nesting, 'ArgumentError'), $enc("Source::Buffer is immutable", "ASCII-8BIT"))}; + self.$raise($$('ArgumentError'), $enc("Source::Buffer is immutable", "ASCII-8BIT")) + }; self.source = input.$gsub($enc("\r\n", "ASCII-8BIT").$freeze(), $enc("\n", "ASCII-8BIT").$freeze()).$freeze(); - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.source['$ascii_only?']()['$!']()))) { - return self.source.$encoding()['$!=']($$$($$($nesting, 'Encoding'), 'UTF_32LE')) - } else { - return $ret_or_5 - }; return nil; })()))) { - return self.source.$encoding()['$!=']($$$($$($nesting, 'Encoding'), 'BINARY')) - } else { - return $ret_or_4 - }; return nil; })())) { - return (self.slice_source = self.source.$encode($$$($$($nesting, 'Encoding'), 'UTF_32LE'))) + if ((($not(self.source['$ascii_only?']()) && ($neqeq(self.source.$encoding(), $$$($$('Encoding'), 'UTF_32LE')))) && ($neqeq(self.source.$encoding(), $$$($$('Encoding'), 'BINARY'))))) { + return (self.slice_source = self.source.$encode($$$($$('Encoding'), 'UTF_32LE'))) } else { return nil }; - }, $Buffer_raw_source$eq$8.$$arity = 1); + }, 1); - Opal.def(self, '$slice', $Buffer_slice$9 = function $$slice(range) { + $def(self, '$slice', function $$slice(range) { var self = this; if ($truthy(self.slice_source['$nil?']())) { @@ -3886,217 +3469,162 @@ Opal.modules["parser/source/buffer"] = function(Opal) { } else { return self.slice_source['$[]'](range).$encode(self.source.$encoding()) } - }, $Buffer_slice$9.$$arity = 1); + }, 1); - Opal.def(self, '$decompose_position', $Buffer_decompose_position$10 = function $$decompose_position(position) { + $def(self, '$decompose_position', function $$decompose_position(position) { var self = this, line_index = nil, line_begin = nil; line_index = self.$line_index_for_position(position); line_begin = self.$line_begins()['$[]'](line_index); return [$rb_plus(self.first_line, line_index), $rb_minus(position, line_begin)]; - }, $Buffer_decompose_position$10.$$arity = 1); + }, 1); - Opal.def(self, '$line_for_position', $Buffer_line_for_position$11 = function $$line_for_position(position) { + $def(self, '$line_for_position', function $$line_for_position(position) { var self = this; return $rb_plus(self.$line_index_for_position(position), self.first_line) - }, $Buffer_line_for_position$11.$$arity = 1); + }, 1); - Opal.def(self, '$column_for_position', $Buffer_column_for_position$12 = function $$column_for_position(position) { + $def(self, '$column_for_position', function $$column_for_position(position) { var self = this, line_index = nil; line_index = self.$line_index_for_position(position); return $rb_minus(position, self.$line_begins()['$[]'](line_index)); - }, $Buffer_column_for_position$12.$$arity = 1); + }, 1); - Opal.def(self, '$source_lines', $Buffer_source_lines$13 = function $$source_lines() { - var $$14, self = this, $ret_or_6 = nil, lines = nil; + $def(self, '$source_lines', function $$source_lines() { + var self = this, $ret_or_1 = nil, lines = nil; - return (self.lines = (function() {if ($truthy(($ret_or_6 = self.lines))) { - return $ret_or_6 - } else { + return (self.lines = ($truthy(($ret_or_1 = self.lines)) ? ($ret_or_1) : (((lines = self.source.$lines().$to_a()), ($truthy(self.source['$end_with?']($enc("\n", "ASCII-8BIT").$freeze())) ? (lines['$<<']($enc("", "ASCII-8BIT").$dup())) : nil), $send(lines, 'each', [], function $$4(line){ - lines = self.source.$lines().$to_a(); - if ($truthy(self.source['$end_with?']($enc("\n", "ASCII-8BIT").$freeze()))) { - lines['$<<']($enc("", "ASCII-8BIT").$dup())}; - $send(lines, 'each', [], ($$14 = function(line){var self = $$14.$$s == null ? this : $$14.$$s; - - - - if (line == null) { - line = nil; - }; - line['$chomp!']($enc("\n", "ASCII-8BIT").$freeze()); - return line.$freeze();}, $$14.$$s = self, $$14.$$arity = 1, $$14)); - return lines.$freeze(); - }; return nil; })()) - }, $Buffer_source_lines$13.$$arity = 0); + + if (line == null) line = nil;; + line['$chomp!']($enc("\n", "ASCII-8BIT").$freeze()); + return line.$freeze();}, 1), lines.$freeze())))) + }, 0); - Opal.def(self, '$source_line', $Buffer_source_line$15 = function $$source_line(lineno) { + $def(self, '$source_line', function $$source_line(lineno) { var self = this; return self.$source_lines().$fetch($rb_minus(lineno, self.first_line)).$dup() - }, $Buffer_source_line$15.$$arity = 1); + }, 1); - Opal.def(self, '$line_range', $Buffer_line_range$16 = function $$line_range(lineno) { - var self = this, index = nil, $ret_or_7 = nil; + $def(self, '$line_range', function $$line_range(lineno) { + var self = this, index = nil; index = $rb_minus(lineno, self.first_line); - if ($truthy((function() {if ($truthy(($ret_or_7 = $rb_lt(index, 0)))) { - return $ret_or_7 + if (($truthy($rb_lt(index, 0)) || ($truthy($rb_ge($rb_plus(index, 1), self.$line_begins().$size()))))) { + return self.$raise($$('IndexError'), $enc("Parser::Source::Buffer: range for line ", "ASCII-8BIT") + ("" + (lineno) + $enc(" requested, valid line numbers are ", "ASCII-8BIT") + (self.first_line) + $enc("..", "ASCII-8BIT")) + ("" + ($rb_minus($rb_plus(self.first_line, self.$line_begins().$size()), 2)))) } else { - return $rb_ge($rb_plus(index, 1), self.$line_begins().$size()) - }; return nil; })())) { - return self.$raise($$($nesting, 'IndexError'), "" + "Parser::Source::Buffer: range for line " + ("" + (lineno) + " requested, valid line numbers are " + (self.first_line) + "..") + ("" + ($rb_minus($rb_plus(self.first_line, self.$line_begins().$size()), 2)))) - } else { - return $$($nesting, 'Range').$new(self, self.$line_begins()['$[]'](index), $rb_minus(self.$line_begins()['$[]']($rb_plus(index, 1)), 1)) + return $$('Range').$new(self, self.$line_begins()['$[]'](index), $rb_minus(self.$line_begins()['$[]']($rb_plus(index, 1)), 1)) }; - }, $Buffer_line_range$16.$$arity = 1); + }, 1); - Opal.def(self, '$source_range', $Buffer_source_range$17 = function $$source_range() { - var self = this, $ret_or_8 = nil; + $def(self, '$source_range', function $$source_range() { + var self = this, $ret_or_1 = nil; - return (self.source_range = (function() {if ($truthy(($ret_or_8 = self.source_range))) { - return $ret_or_8 - } else { - return $$($nesting, 'Range').$new(self, 0, self.$source().$size()) - }; return nil; })()) - }, $Buffer_source_range$17.$$arity = 0); + return (self.source_range = ($truthy(($ret_or_1 = self.source_range)) ? ($ret_or_1) : ($$('Range').$new(self, 0, self.$source().$size())))) + }, 0); - Opal.def(self, '$last_line', $Buffer_last_line$18 = function $$last_line() { + $def(self, '$last_line', function $$last_line() { var self = this; return $rb_minus($rb_plus(self.$line_begins().$size(), self.first_line), 2) - }, $Buffer_last_line$18.$$arity = 0); + }, 0); - Opal.def(self, '$freeze', $Buffer_freeze$19 = function $$freeze() { - var $iter = $Buffer_freeze$19.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$freeze', function $$freeze() { + var $yield = $$freeze.$$p || nil, self = this; - if ($iter) $Buffer_freeze$19.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$freeze.$$p; self.$source_lines(); self.$line_begins(); self.$source_range(); - return $send2(self, $find_super(self, 'freeze', $Buffer_freeze$19, false, true), 'freeze', $zuper, $iter); - }, $Buffer_freeze$19.$$arity = 0); + return $send2(self, $find_super(self, 'freeze', $$freeze, false, true), 'freeze', [], $yield); + }, 0); - Opal.def(self, '$inspect', $Buffer_inspect$20 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#<" + (self.$class()) + " " + (self.$name()) + ">" - }, $Buffer_inspect$20.$$arity = 0); + return $enc("#<", "ASCII-8BIT") + (self.$class()) + $enc(" ", "ASCII-8BIT") + (self.$name()) + $enc(">", "ASCII-8BIT") + }, 0); self.$private(); - Opal.def(self, '$line_begins', $Buffer_line_begins$21 = function $$line_begins() { - var $a, self = this, $ret_or_9 = nil, begins = nil, index = nil; + $def(self, '$line_begins', function $$line_begins() { + var $a, self = this, $ret_or_1 = nil, begins = nil, index = nil; - return (self.line_begins = (function() {if ($truthy(($ret_or_9 = self.line_begins))) { - return $ret_or_9 - } else { + return (self.line_begins = ($truthy(($ret_or_1 = self.line_begins)) ? ($ret_or_1) : ((function() { + (begins = [0]); + (index = 0); + (function() {while ($truthy((index = self.source.$index($enc("\n", "ASCII-8BIT").$freeze(), index)))) { - begins = [0]; - index = 0; - while ($truthy((index = self.source.$index($enc("\n", "ASCII-8BIT").$freeze(), index)))) { - - index = $rb_plus(index, 1); - begins['$<<'](index); - }; - begins['$<<']($rb_plus(self.source.$size(), 1)); - return begins; - }; return nil; })()) - }, $Buffer_line_begins$21.$$arity = 0); + index = $rb_plus(index, 1); + begins['$<<'](index); + }; return nil; })(); + begins['$<<']($rb_plus(self.source.$size(), 1)); + return begins;})()))) + }, 0); - Opal.def(self, '$line_index_for_position', $Buffer_line_index_for_position$22 = function $$line_index_for_position(position) { - var self = this, $ret_or_10 = nil, index = nil, $writer = nil; + $def(self, '$line_index_for_position', function $$line_index_for_position(position) { + var self = this, $ret_or_1 = nil, index = nil, $writer = nil; - if ($truthy(($ret_or_10 = self.line_index_for_position['$[]'](position)))) { - return $ret_or_10 + if ($truthy(($ret_or_1 = self.line_index_for_position['$[]'](position)))) { + return $ret_or_1 } else { index = $rb_minus(self.$bsearch(self.$line_begins(), position), 1); - if ($truthy(self.line_index_for_position['$frozen?']())) { - } else { + if (!$truthy(self.line_index_for_position['$frozen?']())) { $writer = [position, index]; - $send(self.line_index_for_position, '[]=', Opal.to_a($writer)); + $send(self.line_index_for_position, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return index; } - }, $Buffer_line_index_for_position$22.$$arity = 1); - if ($truthy($$($nesting, 'Array')['$method_defined?']("bsearch_index"))) { - return (Opal.def(self, '$bsearch', $Buffer_bsearch$23 = function $$bsearch(line_begins, position) { - var $$24, self = this, $ret_or_11 = nil; - - if ($truthy(($ret_or_11 = $send(line_begins, 'bsearch_index', [], ($$24 = function(line_begin){var self = $$24.$$s == null ? this : $$24.$$s; + }, 1); + if ($truthy($$('Array')['$method_defined?']("bsearch_index"))) { + return $def(self, '$bsearch', function $$bsearch(line_begins, position) { + var $ret_or_1 = nil; + if ($truthy(($ret_or_1 = $send(line_begins, 'bsearch_index', [], function $$5(line_begin){ - if (line_begin == null) { - line_begin = nil; - }; - return $rb_lt(position, line_begin);}, $$24.$$s = self, $$24.$$arity = 1, $$24))))) { - return $ret_or_11 + if (line_begin == null) line_begin = nil;; + return $rb_lt(position, line_begin);}, 1)))) { + return $ret_or_1 } else { return $rb_minus(line_begins.$size(), 1) } - }, $Buffer_bsearch$23.$$arity = 2), nil) && 'bsearch' + }, 2) } else { - return (Opal.def(self, '$bsearch', $Buffer_bsearch$25 = function $$bsearch(line_begins, position) { - var $$26, self = this, $ret_or_12 = nil, $ret_or_13 = nil; + return $def(self, '$bsearch', function $$bsearch(line_begins, position) { + var self = this, $ret_or_1 = nil; - self.line_range = (function() {if ($truthy(($ret_or_12 = self.line_range))) { - return $ret_or_12 - } else { - return Opal.Range.$new(0,line_begins.$size(), true) - }; return nil; })(); - if ($truthy(($ret_or_13 = $send(self.line_range, 'bsearch', [], ($$26 = function(i){var self = $$26.$$s == null ? this : $$26.$$s; - + self.line_range = ($truthy(($ret_or_1 = self.line_range)) ? ($ret_or_1) : (Opal.Range.$new(0,line_begins.$size(), true))); + if ($truthy(($ret_or_1 = $send(self.line_range, 'bsearch', [], function $$6(i){ - if (i == null) { - i = nil; - }; - return $rb_lt(position, line_begins['$[]'](i));}, $$26.$$s = self, $$26.$$arity = 1, $$26))))) { - return $ret_or_13 + if (i == null) i = nil;; + return $rb_lt(position, line_begins['$[]'](i));}, 1)))) { + return $ret_or_1 } else { return $rb_minus(line_begins.$size(), 1) }; - }, $Buffer_bsearch$25.$$arity = 2), nil) && 'bsearch' + }, 2) }; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/range"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $alias = Opal.alias; +Opal.modules["parser/source/range"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $def = Opal.def, $hash2 = Opal.hash2, $rb_minus = Opal.rb_minus, $alias = Opal.alias, $neqeq = Opal.neqeq, $to_ary = Opal.to_ary, $rb_plus = Opal.rb_plus, $rb_ge = Opal.rb_ge, $rb_times = Opal.rb_times, $eqeq = Opal.eqeq; - Opal.add_stubs(['$include', '$attr_reader', '$<', '$raise', '$nil?', '$freeze', '$with', '$-', '$line_for_position', '$alias_method', '$column_for_position', '$!=', '$line', '$last_line', '$inspect', '$column', '$last_column', '$source_line', '$slice', '$begin_pos', '$end_pos', '$include?', '$source', '$to_a', '$decompose_position', '$join', '$name', '$+', '$new', '$min', '$max', '$disjoint?', '$empty?', '$>=', '$!', '$<=>', '$contains?', '$overlaps?', '$==', '$*', '$is_a?', '$source_buffer', '$nonzero?', '$hash']); + Opal.add_stubs('include,attr_reader,<,raise,nil?,freeze,with,-,line_for_position,alias_method,column_for_position,!=,line,last_line,inspect,column,last_column,source_line,slice,begin_pos,end_pos,include?,source,to_a,decompose_position,join,name,+,new,min,max,disjoint?,empty?,>=,!,<=>,contains?,overlaps?,==,*,source_buffer,is_a?,nonzero?,hash'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -4110,124 +3638,127 @@ Opal.modules["parser/source/range"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Range'); - var $nesting = [self].concat($parent_nesting), $Range_initialize$1, $Range_begin$2, $Range_end$3, $Range_size$4, $Range_line$5, $Range_column$6, $Range_last_line$7, $Range_last_column$8, $Range_column_range$9, $Range_source_line$10, $Range_source$11, $Range_is$ques$12, $Range_to_a$13, $Range_to_range$14, $Range_to_s$15, $Range_with$16, $Range_adjust$17, $Range_resize$18, $Range_join$19, $Range_intersect$20, $Range_disjoint$ques$21, $Range_overlaps$ques$22, $Range_contains$ques$23, $Range_contained$ques$24, $Range_crossing$ques$25, $Range_empty$ques$26, $Range_$lt_eq_gt$27, $Range_hash$28, $Range_inspect$29; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.begin_pos = self.$$prototype.end_pos = self.$$prototype.source_buffer = nil; + $proto.begin_pos = $proto.end_pos = $proto.source_buffer = nil; - self.$include($$($nesting, 'Comparable')); + self.$include($$('Comparable')); self.$attr_reader("source_buffer"); self.$attr_reader("begin_pos", "end_pos"); - Opal.def(self, '$initialize', $Range_initialize$1 = function $$initialize(source_buffer, begin_pos, end_pos) { + $def(self, '$initialize', function $$initialize(source_buffer, begin_pos, end_pos) { var $a, self = this; if ($truthy($rb_lt(end_pos, begin_pos))) { - self.$raise($$($nesting, 'ArgumentError'), "Parser::Source::Range: end_pos must not be less than begin_pos")}; + self.$raise($$('ArgumentError'), "Parser::Source::Range: end_pos must not be less than begin_pos") + }; if ($truthy(source_buffer['$nil?']())) { - self.$raise($$($nesting, 'ArgumentError'), "Parser::Source::Range: source_buffer must not be nil")}; + self.$raise($$('ArgumentError'), "Parser::Source::Range: source_buffer must not be nil") + }; self.source_buffer = source_buffer; $a = [begin_pos, end_pos], (self.begin_pos = $a[0]), (self.end_pos = $a[1]), $a; return self.$freeze(); - }, $Range_initialize$1.$$arity = 3); + }, 3); - Opal.def(self, '$begin', $Range_begin$2 = function $$begin() { + $def(self, '$begin', function $$begin() { var self = this; return self.$with($hash2(["end_pos"], {"end_pos": self.begin_pos})) - }, $Range_begin$2.$$arity = 0); + }, 0); - Opal.def(self, '$end', $Range_end$3 = function $$end() { + $def(self, '$end', function $$end() { var self = this; return self.$with($hash2(["begin_pos"], {"begin_pos": self.end_pos})) - }, $Range_end$3.$$arity = 0); + }, 0); - Opal.def(self, '$size', $Range_size$4 = function $$size() { + $def(self, '$size', function $$size() { var self = this; return $rb_minus(self.end_pos, self.begin_pos) - }, $Range_size$4.$$arity = 0); + }, 0); $alias(self, "length", "size"); - Opal.def(self, '$line', $Range_line$5 = function $$line() { + $def(self, '$line', function $$line() { var self = this; return self.source_buffer.$line_for_position(self.begin_pos) - }, $Range_line$5.$$arity = 0); + }, 0); self.$alias_method("first_line", "line"); - Opal.def(self, '$column', $Range_column$6 = function $$column() { + $def(self, '$column', function $$column() { var self = this; return self.source_buffer.$column_for_position(self.begin_pos) - }, $Range_column$6.$$arity = 0); + }, 0); - Opal.def(self, '$last_line', $Range_last_line$7 = function $$last_line() { + $def(self, '$last_line', function $$last_line() { var self = this; return self.source_buffer.$line_for_position(self.end_pos) - }, $Range_last_line$7.$$arity = 0); + }, 0); - Opal.def(self, '$last_column', $Range_last_column$8 = function $$last_column() { + $def(self, '$last_column', function $$last_column() { var self = this; return self.source_buffer.$column_for_position(self.end_pos) - }, $Range_last_column$8.$$arity = 0); + }, 0); - Opal.def(self, '$column_range', $Range_column_range$9 = function $$column_range() { + $def(self, '$column_range', function $$column_range() { var self = this; - if ($truthy(self.$line()['$!='](self.$last_line()))) { - self.$raise($$($nesting, 'RangeError'), "" + (self.$inspect()) + " spans more than one line")}; + if ($neqeq(self.$line(), self.$last_line())) { + self.$raise($$('RangeError'), "" + (self.$inspect()) + " spans more than one line") + }; return Opal.Range.$new(self.$column(),self.$last_column(), true); - }, $Range_column_range$9.$$arity = 0); + }, 0); - Opal.def(self, '$source_line', $Range_source_line$10 = function $$source_line() { + $def(self, '$source_line', function $$source_line() { var self = this; return self.source_buffer.$source_line(self.$line()) - }, $Range_source_line$10.$$arity = 0); + }, 0); - Opal.def(self, '$source', $Range_source$11 = function $$source() { + $def(self, '$source', function $$source() { var self = this; return self.source_buffer.$slice(Opal.Range.$new(self.$begin_pos(),self.$end_pos(), true)) - }, $Range_source$11.$$arity = 0); + }, 0); - Opal.def(self, '$is?', $Range_is$ques$12 = function($a) { + $def(self, '$is?', function $Range_is$ques$1($a) { var $post_args, what, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); what = $post_args;; return what['$include?'](self.$source()); - }, $Range_is$ques$12.$$arity = -1); + }, -1); - Opal.def(self, '$to_a', $Range_to_a$13 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; return Opal.Range.$new(self.begin_pos,self.end_pos, true).$to_a() - }, $Range_to_a$13.$$arity = 0); + }, 0); - Opal.def(self, '$to_range', $Range_to_range$14 = function $$to_range() { + $def(self, '$to_range', function $$to_range() { var self = this; return Opal.Range.$new(self.$begin_pos(),self.$end_pos(), true) - }, $Range_to_range$14.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Range_to_s$15 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var $a, $b, self = this, line = nil, column = nil; - $b = self.source_buffer.$decompose_position(self.begin_pos), $a = Opal.to_ary($b), (line = ($a[0] == null ? nil : $a[0])), (column = ($a[1] == null ? nil : $a[1])), $b; + $b = self.source_buffer.$decompose_position(self.begin_pos), $a = $to_ary($b), (line = ($a[0] == null ? nil : $a[0])), (column = ($a[1] == null ? nil : $a[1])), $b; return [self.source_buffer.$name(), line, $rb_plus(column, 1)].$join(":"); - }, $Range_to_s$15.$$arity = 0); + }, 0); - Opal.def(self, '$with', $Range_with$16 = function($kwargs) { + $def(self, '$with', function $Range_with$2($kwargs) { var begin_pos, end_pos, self = this; @@ -4239,18 +3770,14 @@ Opal.modules["parser/source/range"] = function(Opal) { }; begin_pos = $kwargs.$$smap["begin_pos"]; - if (begin_pos == null) { - begin_pos = self.begin_pos - }; + if (begin_pos == null) begin_pos = self.begin_pos; end_pos = $kwargs.$$smap["end_pos"]; - if (end_pos == null) { - end_pos = self.end_pos - }; - return $$($nesting, 'Range').$new(self.source_buffer, begin_pos, end_pos); - }, $Range_with$16.$$arity = -1); + if (end_pos == null) end_pos = self.end_pos; + return $$('Range').$new(self.source_buffer, begin_pos, end_pos); + }, -1); - Opal.def(self, '$adjust', $Range_adjust$17 = function $$adjust($kwargs) { + $def(self, '$adjust', function $$adjust($kwargs) { var begin_pos, end_pos, self = this; @@ -4262,135 +3789,116 @@ Opal.modules["parser/source/range"] = function(Opal) { }; begin_pos = $kwargs.$$smap["begin_pos"]; - if (begin_pos == null) { - begin_pos = 0 - }; + if (begin_pos == null) begin_pos = 0; end_pos = $kwargs.$$smap["end_pos"]; - if (end_pos == null) { - end_pos = 0 - }; - return $$($nesting, 'Range').$new(self.source_buffer, $rb_plus(self.begin_pos, begin_pos), $rb_plus(self.end_pos, end_pos)); - }, $Range_adjust$17.$$arity = -1); + if (end_pos == null) end_pos = 0; + return $$('Range').$new(self.source_buffer, $rb_plus(self.begin_pos, begin_pos), $rb_plus(self.end_pos, end_pos)); + }, -1); - Opal.def(self, '$resize', $Range_resize$18 = function $$resize(new_size) { + $def(self, '$resize', function $$resize(new_size) { var self = this; return self.$with($hash2(["end_pos"], {"end_pos": $rb_plus(self.begin_pos, new_size)})) - }, $Range_resize$18.$$arity = 1); + }, 1); - Opal.def(self, '$join', $Range_join$19 = function $$join(other) { + $def(self, '$join', function $$join(other) { var self = this; - return $$($nesting, 'Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$min(), [self.end_pos, other.$end_pos()].$max()) - }, $Range_join$19.$$arity = 1); + return $$('Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$min(), [self.end_pos, other.$end_pos()].$max()) + }, 1); - Opal.def(self, '$intersect', $Range_intersect$20 = function $$intersect(other) { + $def(self, '$intersect', function $$intersect(other) { var self = this; if ($truthy(self['$disjoint?'](other))) { return nil } else { - return $$($nesting, 'Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$max(), [self.end_pos, other.$end_pos()].$min()) + return $$('Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$max(), [self.end_pos, other.$end_pos()].$min()) } - }, $Range_intersect$20.$$arity = 1); + }, 1); - Opal.def(self, '$disjoint?', $Range_disjoint$ques$21 = function(other) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + $def(self, '$disjoint?', function $Range_disjoint$ques$3(other) { + var self = this, $ret_or_1 = nil; - if ($truthy((function() {if ($truthy(($ret_or_1 = self['$empty?']()))) { - return other['$empty?']() - } else { - return $ret_or_1 - }; return nil; })())) { + if (($truthy(self['$empty?']()) && ($truthy(other['$empty?']())))) { return self.begin_pos['$!='](other.$begin_pos()) - } else if ($truthy(($ret_or_2 = $rb_ge(self.begin_pos, other.$end_pos())))) { - return $ret_or_2 + } else if ($truthy(($ret_or_1 = $rb_ge(self.begin_pos, other.$end_pos())))) { + return $ret_or_1 } else { return $rb_ge(other.$begin_pos(), self.end_pos) } - }, $Range_disjoint$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$overlaps?', $Range_overlaps$ques$22 = function(other) { + $def(self, '$overlaps?', function $Range_overlaps$ques$4(other) { var self = this; return self['$disjoint?'](other)['$!']() - }, $Range_overlaps$ques$22.$$arity = 1); + }, 1); - Opal.def(self, '$contains?', $Range_contains$ques$23 = function(other) { + $def(self, '$contains?', function $Range_contains$ques$5(other) { var self = this; - return $rb_ge($rb_plus(other.$begin_pos()['$<=>'](self.begin_pos), self.end_pos['$<=>'](other.$end_pos())), (function() {if ($truthy(other['$empty?']())) { - return 2 - } else { - return 1 - }; return nil; })()) - }, $Range_contains$ques$23.$$arity = 1); + return $rb_ge($rb_plus(other.$begin_pos()['$<=>'](self.begin_pos), self.end_pos['$<=>'](other.$end_pos())), ($truthy(other['$empty?']()) ? (2) : (1))) + }, 1); - Opal.def(self, '$contained?', $Range_contained$ques$24 = function(other) { + $def(self, '$contained?', function $Range_contained$ques$6(other) { var self = this; return other['$contains?'](self) - }, $Range_contained$ques$24.$$arity = 1); + }, 1); - Opal.def(self, '$crossing?', $Range_crossing$ques$25 = function(other) { + $def(self, '$crossing?', function $Range_crossing$ques$7(other) { var self = this; - if ($truthy(self['$overlaps?'](other))) { - } else { + if (!$truthy(self['$overlaps?'](other))) { return false }; return $rb_times(self.begin_pos['$<=>'](other.$begin_pos()), self.end_pos['$<=>'](other.$end_pos()))['$=='](1); - }, $Range_crossing$ques$25.$$arity = 1); + }, 1); - Opal.def(self, '$empty?', $Range_empty$ques$26 = function() { + $def(self, '$empty?', function $Range_empty$ques$8() { var self = this; return self.begin_pos['$=='](self.end_pos) - }, $Range_empty$ques$26.$$arity = 0); + }, 0); - Opal.def(self, '$<=>', $Range_$lt_eq_gt$27 = function(other) { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil; + $def(self, '$<=>', function $Range_$lt_eq_gt$9(other) { + var self = this, $ret_or_1 = nil; - if ($truthy((function() {if ($truthy(($ret_or_3 = other['$is_a?']($$$($$$($$$('::', 'Parser'), 'Source'), 'Range'))))) { - return self.source_buffer['$=='](other.$source_buffer()) - } else { - return $ret_or_3 - }; return nil; })())) { - } else { + if (!($truthy(other['$is_a?']($$$($$$($$$('Parser'), 'Source'), 'Range'))) && ($eqeq(self.source_buffer, other.$source_buffer())))) { return nil }; - if ($truthy(($ret_or_4 = self.begin_pos['$<=>'](other.$begin_pos())['$nonzero?']()))) { - return $ret_or_4 + if ($truthy(($ret_or_1 = self.begin_pos['$<=>'](other.$begin_pos())['$nonzero?']()))) { + return $ret_or_1 } else { return self.end_pos['$<=>'](other.$end_pos()); }; - }, $Range_$lt_eq_gt$27.$$arity = 1); + }, 1); self.$alias_method("eql?", "=="); - Opal.def(self, '$hash', $Range_hash$28 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return [self.source_buffer, self.begin_pos, self.end_pos].$hash() - }, $Range_hash$28.$$arity = 0); - return (Opal.def(self, '$inspect', $Range_inspect$29 = function $$inspect() { + }, 0); + return $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Range_inspect$29.$$arity = 0), nil) && 'inspect'; + return "#" + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/comment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["parser/source/comment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $defs = Opal.defs, $def = Opal.def, $truthy = Opal.truthy; - Opal.add_stubs(['$attr_reader', '$alias_method', '$new', '$associate', '$associate_locations', '$associate_by_identity', '$freeze', '$source', '$start_with?', '$text', '$==', '$type', '$is_a?', '$location', '$to_s', '$expression', '$inspect']); + Opal.add_stubs('attr_reader,alias_method,new,associate,associate_locations,associate_by_identity,freeze,source,start_with?,text,==,type,is_a?,location,to_s,expression,inspect'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -4404,45 +3912,45 @@ Opal.modules["parser/source/comment"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Comment'); - var $nesting = [self].concat($parent_nesting), $Comment_associate$1, $Comment_associate_locations$2, $Comment_associate_by_identity$3, $Comment_initialize$4, $Comment_type$5, $Comment_inline$ques$6, $Comment_document$ques$7, $Comment_$eq_eq$8, $Comment_inspect$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.location = nil; + $proto.location = nil; self.$attr_reader("text"); self.$attr_reader("location"); self.$alias_method("loc", "location"); - Opal.defs(self, '$associate', $Comment_associate$1 = function $$associate(ast, comments) { - var self = this, associator = nil; + $defs(self, '$associate', function $$associate(ast, comments) { + var associator = nil; - associator = $$($nesting, 'Associator').$new(ast, comments); + associator = $$('Associator').$new(ast, comments); return associator.$associate(); - }, $Comment_associate$1.$$arity = 2); - Opal.defs(self, '$associate_locations', $Comment_associate_locations$2 = function $$associate_locations(ast, comments) { - var self = this, associator = nil; + }, 2); + $defs(self, '$associate_locations', function $$associate_locations(ast, comments) { + var associator = nil; - associator = $$($nesting, 'Associator').$new(ast, comments); + associator = $$('Associator').$new(ast, comments); return associator.$associate_locations(); - }, $Comment_associate_locations$2.$$arity = 2); - Opal.defs(self, '$associate_by_identity', $Comment_associate_by_identity$3 = function $$associate_by_identity(ast, comments) { - var self = this, associator = nil; + }, 2); + $defs(self, '$associate_by_identity', function $$associate_by_identity(ast, comments) { + var associator = nil; - associator = $$($nesting, 'Associator').$new(ast, comments); + associator = $$('Associator').$new(ast, comments); return associator.$associate_by_identity(); - }, $Comment_associate_by_identity$3.$$arity = 2); + }, 2); - Opal.def(self, '$initialize', $Comment_initialize$4 = function $$initialize(range) { + $def(self, '$initialize', function $$initialize(range) { var self = this; - self.location = $$$($$$($$($nesting, 'Parser'), 'Source'), 'Map').$new(range); + self.location = $$$($$$($$('Parser'), 'Source'), 'Map').$new(range); self.text = range.$source().$freeze(); return self.$freeze(); - }, $Comment_initialize$4.$$arity = 1); + }, 1); - Opal.def(self, '$type', $Comment_type$5 = function $$type() { + $def(self, '$type', function $$type() { var self = this; if ($truthy(self.$text()['$start_with?']("#".$freeze()))) { @@ -4452,53 +3960,43 @@ Opal.modules["parser/source/comment"] = function(Opal) { } else { return nil } - }, $Comment_type$5.$$arity = 0); + }, 0); - Opal.def(self, '$inline?', $Comment_inline$ques$6 = function() { + $def(self, '$inline?', function $Comment_inline$ques$1() { var self = this; return self.$type()['$==']("inline") - }, $Comment_inline$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$document?', $Comment_document$ques$7 = function() { + $def(self, '$document?', function $Comment_document$ques$2() { var self = this; return self.$type()['$==']("document") - }, $Comment_document$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$==', $Comment_$eq_eq$8 = function(other) { + $def(self, '$==', function $Comment_$eq_eq$3(other) { var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_1 = other['$is_a?']($$$($$($nesting, 'Source'), 'Comment'))))) { + if ($truthy(($ret_or_1 = other['$is_a?']($$$($$('Source'), 'Comment'))))) { return self.location['$=='](other.$location()) } else { return $ret_or_1 } - }, $Comment_$eq_eq$8.$$arity = 1); - return (Opal.def(self, '$inspect', $Comment_inspect$9 = function $$inspect() { + }, 1); + return $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Comment_inspect$9.$$arity = 0), nil) && 'inspect'; + return "#" + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/comment/associator"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["parser/source/comment/associator"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $const_set = Opal.const_set, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq, $rb_le = Opal.rb_le, $rb_plus = Opal.rb_plus, $not = Opal.not; - Opal.add_stubs(['$attr_accessor', '$do_associate', '$private', '$freeze', '$[]', '$include?', '$type', '$sort_by', '$compact', '$children', '$begin_pos', '$expression', '$loc', '$select', '$is_a?', '$new', '$[]=', '$-', '$==', '$compare_by_identity', '$advance_comment', '$advance_through_directives', '$visit', '$process_leading_comments', '$location', '$<=', '$line', '$last_line', '$each', '$children_in_source_order', '$process_trailing_comments', '$current_comment_before?', '$associate_and_advance_comment', '$current_comment_before_end?', '$current_comment_decorates?', '$+', '$!', '$end_pos', '$<<', '$start_with?', '$text', '$=~']); + Opal.add_stubs('attr_accessor,do_associate,private,freeze,[],include?,type,sort_by,compact,children,begin_pos,expression,loc,select,is_a?,new,[]=,-,==,compare_by_identity,advance_comment,advance_through_directives,visit,process_leading_comments,location,<=,line,last_line,each,children_in_source_order,process_trailing_comments,current_comment_before?,associate_and_advance_comment,current_comment_before_end?,current_comment_decorates?,+,!,end_pos,<<,start_with?,text,=~'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -4507,155 +4005,138 @@ Opal.modules["parser/source/comment/associator"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Associator'); - var $nesting = [self].concat($parent_nesting), $Associator_initialize$1, $Associator_associate$2, $Associator_associate_locations$3, $Associator_associate_by_identity$4, $Associator_children_in_source_order$5, $Associator_do_associate$8, $Associator_visit$10, $Associator_process_leading_comments$12, $Associator_process_trailing_comments$13, $Associator_advance_comment$14, $Associator_current_comment_before$ques$15, $Associator_current_comment_before_end$ques$16, $Associator_current_comment_decorates$ques$17, $Associator_associate_and_advance_comment$18, $Associator_advance_through_directives$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.map_using = self.$$prototype.mapping = self.$$prototype.skip_directives = self.$$prototype.ast = self.$$prototype.current_comment = self.$$prototype.comment_num = self.$$prototype.comments = nil; + $proto.map_using = $proto.mapping = $proto.skip_directives = $proto.ast = $proto.current_comment = $proto.comment_num = $proto.comments = nil; self.$attr_accessor("skip_directives"); - Opal.def(self, '$initialize', $Associator_initialize$1 = function $$initialize(ast, comments) { + $def(self, '$initialize', function $$initialize(ast, comments) { var self = this; self.ast = ast; self.comments = comments; return (self.skip_directives = true); - }, $Associator_initialize$1.$$arity = 2); + }, 2); - Opal.def(self, '$associate', $Associator_associate$2 = function $$associate() { + $def(self, '$associate', function $$associate() { var self = this; self.map_using = "eql"; return self.$do_associate(); - }, $Associator_associate$2.$$arity = 0); + }, 0); - Opal.def(self, '$associate_locations', $Associator_associate_locations$3 = function $$associate_locations() { + $def(self, '$associate_locations', function $$associate_locations() { var self = this; self.map_using = "location"; return self.$do_associate(); - }, $Associator_associate_locations$3.$$arity = 0); + }, 0); - Opal.def(self, '$associate_by_identity', $Associator_associate_by_identity$4 = function $$associate_by_identity() { + $def(self, '$associate_by_identity', function $$associate_by_identity() { var self = this; self.map_using = "identity"; return self.$do_associate(); - }, $Associator_associate_by_identity$4.$$arity = 0); + }, 0); self.$private(); - Opal.const_set($nesting[0], 'POSTFIX_TYPES', $$($nesting, 'Set')['$[]']("if", "while", "while_post", "until", "until_post", "masgn").$freeze()); + $const_set($nesting[0], 'POSTFIX_TYPES', $$('Set')['$[]']("if", "while", "while_post", "until", "until_post", "masgn").$freeze()); - Opal.def(self, '$children_in_source_order', $Associator_children_in_source_order$5 = function $$children_in_source_order(node) { - var $$6, $$7, self = this; - - if ($truthy($$($nesting, 'POSTFIX_TYPES')['$include?'](node.$type()))) { - return $send(node.$children().$compact(), 'sort_by', [], ($$6 = function(child){var self = $$6.$$s == null ? this : $$6.$$s; - + $def(self, '$children_in_source_order', function $$children_in_source_order(node) { + + if ($truthy($$('POSTFIX_TYPES')['$include?'](node.$type()))) { + return $send(node.$children().$compact(), 'sort_by', [], function $$1(child){ - if (child == null) { - child = nil; - }; - return child.$loc().$expression().$begin_pos();}, $$6.$$s = self, $$6.$$arity = 1, $$6)) + if (child == null) child = nil;; + return child.$loc().$expression().$begin_pos();}, 1) } else { - return $send(node.$children(), 'select', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s, $ret_or_1 = nil, $ret_or_2 = nil; + return $send(node.$children(), 'select', [], function $$2(child){var $ret_or_1 = nil, $ret_or_2 = nil; - if (child == null) { - child = nil; - }; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = child['$is_a?']($$$($$($nesting, 'AST'), 'Node'))))) { - return child.$loc() - } else { - return $ret_or_2 - }; return nil; })()))) { + if (child == null) child = nil;; + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = child['$is_a?']($$$($$('AST'), 'Node')))) ? (child.$loc()) : ($ret_or_2))))) { return child.$loc().$expression() } else { return $ret_or_1 - };}, $$7.$$s = self, $$7.$$arity = 1, $$7)) + };}, 1) } - }, $Associator_children_in_source_order$5.$$arity = 1); + }, 1); - Opal.def(self, '$do_associate', $Associator_do_associate$8 = function $$do_associate() { - var $$9, self = this; + $def(self, '$do_associate', function $$do_associate() { + var self = this; - self.mapping = $send($$($nesting, 'Hash'), 'new', [], ($$9 = function(h, k){var self = $$9.$$s == null ? this : $$9.$$s, $writer = nil; + self.mapping = $send($$('Hash'), 'new', [], function $$3(h, k){var $writer = nil; - if (h == null) { - h = nil; - }; + if (h == null) h = nil;; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [k, []]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$9.$$s = self, $$9.$$arity = 2, $$9)); - if (self.map_using['$==']("identity")) { - self.mapping.$compare_by_identity()}; + $send(h, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 2); + if ($eqeq(self.map_using, "identity")) { + self.mapping.$compare_by_identity() + }; self.comment_num = -1; self.$advance_comment(); if ($truthy(self.skip_directives)) { - self.$advance_through_directives()}; + self.$advance_through_directives() + }; if ($truthy(self.ast)) { - self.$visit(self.ast)}; + self.$visit(self.ast) + }; return self.mapping; - }, $Associator_do_associate$8.$$arity = 0); + }, 0); - Opal.def(self, '$visit', $Associator_visit$10 = function $$visit(node) { - var $$11, self = this, node_loc = nil, $ret_or_3 = nil; + $def(self, '$visit', function $$visit(node) { + var self = this, node_loc = nil; self.$process_leading_comments(node); - if ($truthy(self.current_comment)) { - } else { + if (!$truthy(self.current_comment)) { return nil }; node_loc = node.$location(); - if ($truthy((function() {if ($truthy(($ret_or_3 = $rb_le(self.current_comment.$location().$line(), node_loc.$last_line())))) { - return $ret_or_3 - } else { - return node_loc['$is_a?']($$$($$($nesting, 'Map'), 'Heredoc')) - }; return nil; })())) { + if (($truthy($rb_le(self.current_comment.$location().$line(), node_loc.$last_line())) || ($truthy(node_loc['$is_a?']($$$($$('Map'), 'Heredoc')))))) { - $send(self.$children_in_source_order(node), 'each', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; + $send(self.$children_in_source_order(node), 'each', [], function $$4(child){var self = $$4.$$s == null ? this : $$4.$$s; - if (child == null) { - child = nil; - }; - return self.$visit(child);}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + if (child == null) child = nil;; + return self.$visit(child);}, {$$arity: 1, $$s: self}); return self.$process_trailing_comments(node); } else { return nil }; - }, $Associator_visit$10.$$arity = 1); + }, 1); - Opal.def(self, '$process_leading_comments', $Associator_process_leading_comments$12 = function $$process_leading_comments(node) { + $def(self, '$process_leading_comments', function $$process_leading_comments(node) { var $a, self = this; - if (node.$type()['$==']("begin")) { - return nil}; + if ($eqeq(node.$type(), "begin")) { + return nil + }; while ($truthy(self['$current_comment_before?'](node))) { self.$associate_and_advance_comment(node) }; - }, $Associator_process_leading_comments$12.$$arity = 1); + }, 1); - Opal.def(self, '$process_trailing_comments', $Associator_process_trailing_comments$13 = function $$process_trailing_comments(node) { + $def(self, '$process_trailing_comments', function $$process_trailing_comments(node) { var $a, self = this; @@ -4665,111 +4146,84 @@ Opal.modules["parser/source/comment/associator"] = function(Opal) { while ($truthy(self['$current_comment_decorates?'](node))) { self.$associate_and_advance_comment(node) }; - }, $Associator_process_trailing_comments$13.$$arity = 1); + }, 1); - Opal.def(self, '$advance_comment', $Associator_advance_comment$14 = function $$advance_comment() { + $def(self, '$advance_comment', function $$advance_comment() { var self = this; self.comment_num = $rb_plus(self.comment_num, 1); return (self.current_comment = self.comments['$[]'](self.comment_num)); - }, $Associator_advance_comment$14.$$arity = 0); + }, 0); - Opal.def(self, '$current_comment_before?', $Associator_current_comment_before$ques$15 = function(node) { + $def(self, '$current_comment_before?', function $Associator_current_comment_before$ques$5(node) { var self = this, comment_loc = nil, node_loc = nil; - if ($truthy(self.current_comment['$!']())) { - return false}; + if ($not(self.current_comment)) { + return false + }; comment_loc = self.current_comment.$location().$expression(); node_loc = node.$location().$expression(); return $rb_le(comment_loc.$end_pos(), node_loc.$begin_pos()); - }, $Associator_current_comment_before$ques$15.$$arity = 1); + }, 1); - Opal.def(self, '$current_comment_before_end?', $Associator_current_comment_before_end$ques$16 = function(node) { + $def(self, '$current_comment_before_end?', function $Associator_current_comment_before_end$ques$6(node) { var self = this, comment_loc = nil, node_loc = nil; - if ($truthy(self.current_comment['$!']())) { - return false}; + if ($not(self.current_comment)) { + return false + }; comment_loc = self.current_comment.$location().$expression(); node_loc = node.$location().$expression(); return $rb_le(comment_loc.$end_pos(), node_loc.$end_pos()); - }, $Associator_current_comment_before_end$ques$16.$$arity = 1); + }, 1); - Opal.def(self, '$current_comment_decorates?', $Associator_current_comment_decorates$ques$17 = function(node) { + $def(self, '$current_comment_decorates?', function $Associator_current_comment_decorates$ques$7(node) { var self = this; - if ($truthy(self.current_comment['$!']())) { - return false}; + if ($not(self.current_comment)) { + return false + }; return self.current_comment.$location().$line()['$=='](node.$location().$last_line()); - }, $Associator_current_comment_decorates$ques$17.$$arity = 1); + }, 1); - Opal.def(self, '$associate_and_advance_comment', $Associator_associate_and_advance_comment$18 = function $$associate_and_advance_comment(node) { + $def(self, '$associate_and_advance_comment', function $$associate_and_advance_comment(node) { var self = this, key = nil; - key = (function() {if (self.map_using['$==']("location")) { - return node.$location() - } else { - return node - }; return nil; })(); + key = ($eqeq(self.map_using, "location") ? (node.$location()) : (node)); self.mapping['$[]'](key)['$<<'](self.current_comment); return self.$advance_comment(); - }, $Associator_associate_and_advance_comment$18.$$arity = 1); - Opal.const_set($nesting[0], 'MAGIC_COMMENT_RE', /^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/); - return (Opal.def(self, '$advance_through_directives', $Associator_advance_through_directives$19 = function $$advance_through_directives() { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; + }, 1); + $const_set($nesting[0], 'MAGIC_COMMENT_RE', /^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/); + return $def(self, '$advance_through_directives', function $$advance_through_directives() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_4 = self.current_comment))) { - return self.current_comment.$text()['$start_with?']("#!".$freeze()) - } else { - return $ret_or_4 - }; return nil; })())) { - self.$advance_comment()}; - if ($truthy((function() {if ($truthy(($ret_or_5 = self.current_comment))) { - return self.current_comment.$text()['$=~']($$($nesting, 'MAGIC_COMMENT_RE')) - } else { - return $ret_or_5 - }; return nil; })())) { - self.$advance_comment()}; - if ($truthy((function() {if ($truthy(($ret_or_6 = self.current_comment))) { - return self.current_comment.$text()['$=~']($$$($$($nesting, 'Buffer'), 'ENCODING_RE')) - } else { - return $ret_or_6 - }; return nil; })())) { + if (($truthy(self.current_comment) && ($truthy(self.current_comment.$text()['$start_with?']("#!".$freeze()))))) { + self.$advance_comment() + }; + if (($truthy(self.current_comment) && ($truthy(self.current_comment.$text()['$=~']($$('MAGIC_COMMENT_RE')))))) { + self.$advance_comment() + }; + if (($truthy(self.current_comment) && ($truthy(self.current_comment.$text()['$=~']($$$($$('Buffer'), 'ENCODING_RE')))))) { return self.$advance_comment() } else { return nil }; - }, $Associator_advance_through_directives$19.$$arity = 0), nil) && 'advance_through_directives'; - })($$($nesting, 'Comment'), null, $nesting) + }, 0); + })($$('Comment'), null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/rewriter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["parser/source/rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $rb_plus = Opal.rb_plus, $truthy = Opal.truthy, $not = Opal.not, $neqeq = Opal.neqeq, $rb_le = Opal.rb_le, $rb_ge = Opal.rb_ge, $rb_lt = Opal.rb_lt, $hash2 = Opal.hash2, $const_set = Opal.const_set; - Opal.add_stubs(['$attr_reader', '$warn_of_deprecation', '$class', '$new', '$lambda', '$puts', '$render', '$consumer=', '$-', '$append', '$freeze', '$begin', '$end', '$+', '$in_transaction?', '$raise', '$dup', '$source', '$each', '$sort', '$begin_pos', '$range', '$length', '$replacement', '$[]=', '$private', '$empty?', '$!', '$allow_multiple_insertions?', '$clobbered_insertion?', '$raise_clobber_error', '$record_insertion', '$adjacent_updates?', '$find', '$overlaps?', '$replace_compatible_with_insertion?', '$merge_actions!', '$<<', '$active_queue', '$adjacent_insertions?', '$merge_actions', '$delete', '$can_merge?', '$record_replace', '$|', '$active_insertions', '$active_insertions=', '$active_clobber', '$clobbered_position_mask', '$active_clobber=', '$size', '$!=', '$&', '$<=', '$end_pos', '$adjacent_insertion_mask', '$select', '$adjacent?', '$adjacent_position_mask', '$>=', '$==', '$[]', '$all?', '$intersect', '$nil?', '$max', '$sort_by', '$push', '$join', '$first', '$max_by', '$merge_replacements', '$replace_actions', '$disjoint?', '$<', '$process', '$extend']); + Opal.add_stubs('attr_reader,warn_of_deprecation,class,new,lambda,puts,render,consumer=,-,append,freeze,begin,end,+,in_transaction?,raise,dup,source,each,sort,begin_pos,range,length,replacement,[]=,private,empty?,clobbered_insertion?,!,allow_multiple_insertions?,raise_clobber_error,record_insertion,adjacent_updates?,find,overlaps?,replace_compatible_with_insertion?,merge_actions!,<<,active_queue,adjacent_insertions?,merge_actions,delete,can_merge?,record_replace,|,active_insertions,active_insertions=,active_clobber,clobbered_position_mask,active_clobber=,size,!=,&,<=,end_pos,adjacent_insertion_mask,select,adjacent?,adjacent_position_mask,>=,==,[],all?,intersect,nil?,max,sort_by,push,join,first,max_by,merge_replacements,replace_actions,disjoint?,<,process,extend'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -4783,30 +4237,27 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Rewriter'); - var $nesting = [self].concat($parent_nesting), $Rewriter_initialize$1, $Rewriter_remove$3, $Rewriter_insert_before$4, $Rewriter_wrap$5, $Rewriter_insert_before_multi$6, $Rewriter_insert_after$7, $Rewriter_insert_after_multi$8, $Rewriter_replace$9, $Rewriter_process$10, $Rewriter_transaction$12, $Rewriter_append$13, $Rewriter_record_insertion$16, $Rewriter_record_replace$17, $Rewriter_clobbered_position_mask$18, $Rewriter_adjacent_position_mask$19, $Rewriter_adjacent_insertion_mask$20, $Rewriter_clobbered_insertion$ques$21, $Rewriter_adjacent_insertions$ques$23, $Rewriter_adjacent_updates$ques$25, $Rewriter_replace_compatible_with_insertion$ques$27, $Rewriter_can_merge$ques$28, $Rewriter_merge_actions$30, $Rewriter_merge_actions$excl$33, $Rewriter_merge_replacements$34, $Rewriter_replace_actions$36, $Rewriter_raise_clobber_error$38, $Rewriter_in_transaction$ques$39, $Rewriter_active_queue$40, $Rewriter_active_clobber$41, $Rewriter_active_insertions$42, $Rewriter_active_clobber$eq$43, $Rewriter_active_insertions$eq$44, $Rewriter_adjacent$ques$45; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.diagnostics = self.$$prototype.insert_before_multi_order = self.$$prototype.insert_after_multi_order = self.$$prototype.source_buffer = self.$$prototype.queue = self.$$prototype.clobber = self.$$prototype.insertions = self.$$prototype.pending_queue = self.$$prototype.pending_clobber = self.$$prototype.pending_insertions = nil; + $proto.diagnostics = $proto.insert_before_multi_order = $proto.insert_after_multi_order = $proto.source_buffer = $proto.queue = $proto.clobber = $proto.insertions = $proto.pending_queue = $proto.pending_clobber = $proto.pending_insertions = nil; self.$attr_reader("source_buffer"); self.$attr_reader("diagnostics"); - Opal.def(self, '$initialize', $Rewriter_initialize$1 = function $$initialize(source_buffer) { - var $$2, self = this, $writer = nil; + $def(self, '$initialize', function $$initialize(source_buffer) { + var self = this, $writer = nil; self.$class().$warn_of_deprecation(); - self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); + self.diagnostics = $$$($$('Diagnostic'), 'Engine').$new(); - $writer = [$send(self, 'lambda', [], ($$2 = function(diag){var self = $$2.$$s == null ? this : $$2.$$s; - if ($gvars.stderr == null) $gvars.stderr = nil; + $writer = [$send(self, 'lambda', [], function $$1(diag){ if ($gvars.stderr == null) $gvars.stderr = nil; - if (diag == null) { - diag = nil; - }; - return $gvars.stderr.$puts(diag.$render());}, $$2.$$s = self, $$2.$$arity = 1, $$2))]; - $send(self.diagnostics, 'consumer=', Opal.to_a($writer)); + if (diag == null) diag = nil;; + return $gvars.stderr.$puts(diag.$render());}, 1)]; + $send(self.diagnostics, 'consumer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.source_buffer = source_buffer; self.queue = []; @@ -4817,93 +4268,92 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { self.pending_queue = nil; self.pending_clobber = nil; return (self.pending_insertions = nil); - }, $Rewriter_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$remove', $Rewriter_remove$3 = function $$remove(range) { + $def(self, '$remove', function $$remove(range) { var self = this; - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range, "".$freeze())) - }, $Rewriter_remove$3.$$arity = 1); + return self.$append($$$($$('Rewriter'), 'Action').$new(range, "".$freeze())) + }, 1); - Opal.def(self, '$insert_before', $Rewriter_insert_before$4 = function $$insert_before(range, content) { + $def(self, '$insert_before', function $$insert_before(range, content) { var self = this; - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), content)) - }, $Rewriter_insert_before$4.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$begin(), content)) + }, 2); - Opal.def(self, '$wrap', $Rewriter_wrap$5 = function $$wrap(range, before, after) { + $def(self, '$wrap', function $$wrap(range, before, after) { var self = this; - self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), before)); - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), after)); - }, $Rewriter_wrap$5.$$arity = 3); + self.$append($$$($$('Rewriter'), 'Action').$new(range.$begin(), before)); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$end(), after)); + }, 3); - Opal.def(self, '$insert_before_multi', $Rewriter_insert_before_multi$6 = function $$insert_before_multi(range, content) { + $def(self, '$insert_before_multi', function $$insert_before_multi(range, content) { var self = this; self.insert_before_multi_order = $rb_minus(self.insert_before_multi_order, 1); - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), content, true, self.insert_before_multi_order)); - }, $Rewriter_insert_before_multi$6.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$begin(), content, true, self.insert_before_multi_order)); + }, 2); - Opal.def(self, '$insert_after', $Rewriter_insert_after$7 = function $$insert_after(range, content) { + $def(self, '$insert_after', function $$insert_after(range, content) { var self = this; - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), content)) - }, $Rewriter_insert_after$7.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$end(), content)) + }, 2); - Opal.def(self, '$insert_after_multi', $Rewriter_insert_after_multi$8 = function $$insert_after_multi(range, content) { + $def(self, '$insert_after_multi', function $$insert_after_multi(range, content) { var self = this; self.insert_after_multi_order = $rb_plus(self.insert_after_multi_order, 1); - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), content, true, self.insert_after_multi_order)); - }, $Rewriter_insert_after_multi$8.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range.$end(), content, true, self.insert_after_multi_order)); + }, 2); - Opal.def(self, '$replace', $Rewriter_replace$9 = function $$replace(range, content) { + $def(self, '$replace', function $$replace(range, content) { var self = this; - return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range, content)) - }, $Rewriter_replace$9.$$arity = 2); + return self.$append($$$($$('Rewriter'), 'Action').$new(range, content)) + }, 2); - Opal.def(self, '$process', $Rewriter_process$10 = function $$process() { - var $$11, self = this, adjustment = nil, source = nil; + $def(self, '$process', function $$process() { + var self = this, adjustment = nil, source = nil; if ($truthy(self['$in_transaction?']())) { - self.$raise("" + "Do not call " + (self.$class()) + "#" + ("process") + " inside a transaction")}; + self.$raise("Do not call " + (self.$class()) + "#" + ("process") + " inside a transaction") + }; adjustment = 0; source = self.source_buffer.$source().$dup(); - $send(self.queue.$sort(), 'each', [], ($$11 = function(action){var self = $$11.$$s == null ? this : $$11.$$s, begin_pos = nil, end_pos = nil, $writer = nil; + $send(self.queue.$sort(), 'each', [], function $$2(action){var begin_pos = nil, end_pos = nil, $writer = nil; - if (action == null) { - action = nil; - }; + if (action == null) action = nil;; begin_pos = $rb_plus(action.$range().$begin_pos(), adjustment); end_pos = $rb_plus(begin_pos, action.$range().$length()); $writer = [Opal.Range.$new(begin_pos,end_pos, true), action.$replacement()]; - $send(source, '[]=', Opal.to_a($writer)); + $send(source, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return (adjustment = $rb_plus(adjustment, $rb_minus(action.$replacement().$length(), action.$range().$length())));}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + return (adjustment = $rb_plus(adjustment, $rb_minus(action.$replacement().$length(), action.$range().$length())));}, 1); return source; - }, $Rewriter_process$10.$$arity = 0); + }, 0); - Opal.def(self, '$transaction', $Rewriter_transaction$12 = function $$transaction() { - var $iter = $Rewriter_transaction$12.$$p, $yield = $iter || nil, self = this; + $def(self, '$transaction', function $$transaction() { + var $yield = $$transaction.$$p || nil, self = this; - if ($iter) $Rewriter_transaction$12.$$p = null; + delete $$transaction.$$p; return (function() { try { - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { self.$raise("" + (self.$class()) + "#" + ("transaction") + " requires block") }; if ($truthy(self['$in_transaction?']())) { - self.$raise("Nested transaction is not supported")}; + self.$raise("Nested transaction is not supported") + }; self.pending_queue = self.queue.$dup(); self.pending_clobber = self.clobber; self.pending_insertions = self.insertions; @@ -4915,42 +4365,38 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } finally { ((self.pending_queue = nil), (self.pending_clobber = nil), (self.pending_insertions = nil)) }; })() - }, $Rewriter_transaction$12.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$append', $Rewriter_append$13 = function $$append(action) { - var $$14, $$15, self = this, range = nil, $ret_or_1 = nil, conflicting = nil, adjacent = nil, insertions = nil; + $def(self, '$append', function $$append(action) { + var self = this, range = nil, conflicting = nil, adjacent = nil, insertions = nil; range = action.$range(); if ($truthy(range['$empty?']())) { if ($truthy(action.$replacement()['$empty?']())) { - return self}; - if ($truthy((function() {if ($truthy(($ret_or_1 = action['$allow_multiple_insertions?']()['$!']()))) { - - return (conflicting = self['$clobbered_insertion?'](range)); - } else { - return $ret_or_1 - }; return nil; })())) { - self.$raise_clobber_error(action, [conflicting])}; + return self + }; + if (($not(action['$allow_multiple_insertions?']()) && ($truthy((conflicting = self['$clobbered_insertion?'](range)))))) { + self.$raise_clobber_error(action, [conflicting]) + }; self.$record_insertion(range); if ($truthy((adjacent = self['$adjacent_updates?'](range)))) { - conflicting = $send(adjacent, 'find', [], ($$14 = function(a){var self = $$14.$$s == null ? this : $$14.$$s, $ret_or_2 = nil; + conflicting = $send(adjacent, 'find', [], function $$3(a){var self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil; - if (a == null) { - a = nil; - }; - if ($truthy(($ret_or_2 = a.$range()['$overlaps?'](range)))) { + if (a == null) a = nil;; + if ($truthy(($ret_or_1 = a.$range()['$overlaps?'](range)))) { return self['$replace_compatible_with_insertion?'](a, action)['$!']() } else { - return $ret_or_2 - };}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + return $ret_or_1 + };}, {$$arity: 1, $$s: self}); if ($truthy(conflicting)) { - self.$raise_clobber_error(action, [conflicting])}; + self.$raise_clobber_error(action, [conflicting]) + }; self['$merge_actions!'](action, adjacent); } else { self.$active_queue()['$<<'](action) @@ -4958,24 +4404,19 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } else { if ($truthy((insertions = self['$adjacent_insertions?'](range)))) { - $send(insertions, 'each', [], ($$15 = function(insertion){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_3 = nil; + $send(insertions, 'each', [], function $$4(insertion){var self = $$4.$$s == null ? this : $$4.$$s; - if (insertion == null) { - insertion = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_3 = range['$overlaps?'](insertion.$range())))) { - return self['$replace_compatible_with_insertion?'](action, insertion)['$!']() - } else { - return $ret_or_3 - }; return nil; })())) { + if (insertion == null) insertion = nil;; + if (($truthy(range['$overlaps?'](insertion.$range())) && ($not(self['$replace_compatible_with_insertion?'](action, insertion))))) { return self.$raise_clobber_error(action, [insertion]) } else { action = self.$merge_actions(action, [insertion]); return self.$active_queue().$delete(insertion); - };}, $$15.$$s = self, $$15.$$arity = 1, $$15))}; + };}, {$$arity: 1, $$s: self}) + }; if ($truthy((adjacent = self['$adjacent_updates?'](range)))) { if ($truthy(self['$can_merge?'](action, adjacent))) { @@ -4991,84 +4432,77 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { }; }; return self; - }, $Rewriter_append$13.$$arity = 1); + }, 1); - Opal.def(self, '$record_insertion', $Rewriter_record_insertion$16 = function $$record_insertion(range) { + $def(self, '$record_insertion', function $$record_insertion(range) { var self = this, $writer = nil; $writer = [self.$active_insertions()['$|']((1)['$<<'](range.$begin_pos()))]; - $send(self, 'active_insertions=', Opal.to_a($writer)); + $send(self, 'active_insertions=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Rewriter_record_insertion$16.$$arity = 1); + }, 1); - Opal.def(self, '$record_replace', $Rewriter_record_replace$17 = function $$record_replace(range) { + $def(self, '$record_replace', function $$record_replace(range) { var self = this, $writer = nil; $writer = [self.$active_clobber()['$|'](self.$clobbered_position_mask(range))]; - $send(self, 'active_clobber=', Opal.to_a($writer)); + $send(self, 'active_clobber=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Rewriter_record_replace$17.$$arity = 1); + }, 1); - Opal.def(self, '$clobbered_position_mask', $Rewriter_clobbered_position_mask$18 = function $$clobbered_position_mask(range) { - var self = this; - + $def(self, '$clobbered_position_mask', function $$clobbered_position_mask(range) { + return $rb_minus((1)['$<<'](range.$size()), 1)['$<<'](range.$begin_pos()) - }, $Rewriter_clobbered_position_mask$18.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent_position_mask', $Rewriter_adjacent_position_mask$19 = function $$adjacent_position_mask(range) { - var self = this; - + $def(self, '$adjacent_position_mask', function $$adjacent_position_mask(range) { + return $rb_minus((1)['$<<']($rb_plus(range.$size(), 2)), 1)['$<<']($rb_minus(range.$begin_pos(), 1)) - }, $Rewriter_adjacent_position_mask$19.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent_insertion_mask', $Rewriter_adjacent_insertion_mask$20 = function $$adjacent_insertion_mask(range) { - var self = this; - + $def(self, '$adjacent_insertion_mask', function $$adjacent_insertion_mask(range) { + return $rb_minus((1)['$<<']($rb_plus(range.$size(), 1)), 1)['$<<'](range.$begin_pos()) - }, $Rewriter_adjacent_insertion_mask$20.$$arity = 1); + }, 1); - Opal.def(self, '$clobbered_insertion?', $Rewriter_clobbered_insertion$ques$21 = function(insertion) { - var $$22, self = this, insertion_pos = nil; + $def(self, '$clobbered_insertion?', function $Rewriter_clobbered_insertion$ques$5(insertion) { + var self = this, insertion_pos = nil; insertion_pos = insertion.$begin_pos(); - if ($truthy(self.$active_insertions()['$&']((1)['$<<'](insertion_pos))['$!='](0))) { - return $send(self.$active_queue(), 'find', [], ($$22 = function(a){var self = $$22.$$s == null ? this : $$22.$$s, $ret_or_4 = nil; + if ($neqeq(self.$active_insertions()['$&']((1)['$<<'](insertion_pos)), 0)) { + return $send(self.$active_queue(), 'find', [], function $$6(a){var $ret_or_1 = nil; - if (a == null) { - a = nil; - }; - if ($truthy(($ret_or_4 = $rb_le(a.$range().$begin_pos(), insertion_pos)))) { + if (a == null) a = nil;; + if ($truthy(($ret_or_1 = $rb_le(a.$range().$begin_pos(), insertion_pos)))) { return $rb_le(insertion_pos, a.$range().$end_pos()) } else { - return $ret_or_4 - };}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + return $ret_or_1 + };}, 1) } else { return nil }; - }, $Rewriter_clobbered_insertion$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent_insertions?', $Rewriter_adjacent_insertions$ques$23 = function(range) { - var $$24, self = this, result = nil; + $def(self, '$adjacent_insertions?', function $Rewriter_adjacent_insertions$ques$7(range) { + var self = this, result = nil; - if ($truthy(self.$active_insertions()['$&'](self.$adjacent_insertion_mask(range))['$!='](0))) { + if ($neqeq(self.$active_insertions()['$&'](self.$adjacent_insertion_mask(range)), 0)) { - result = $send(self.$active_queue(), 'select', [], ($$24 = function(a){var self = $$24.$$s == null ? this : $$24.$$s, $ret_or_5 = nil; + result = $send(self.$active_queue(), 'select', [], function $$8(a){var self = $$8.$$s == null ? this : $$8.$$s, $ret_or_1 = nil; - if (a == null) { - a = nil; - }; - if ($truthy(($ret_or_5 = a.$range()['$empty?']()))) { + if (a == null) a = nil;; + if ($truthy(($ret_or_1 = a.$range()['$empty?']()))) { return self['$adjacent?'](range, a.$range()) } else { - return $ret_or_5 - };}, $$24.$$s = self, $$24.$$arity = 1, $$24)); + return $ret_or_1 + };}, {$$arity: 1, $$s: self}); if ($truthy(result['$empty?']())) { return nil } else { @@ -5077,197 +4511,168 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } else { return nil } - }, $Rewriter_adjacent_insertions$ques$23.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent_updates?', $Rewriter_adjacent_updates$ques$25 = function(range) { - var $$26, self = this; + $def(self, '$adjacent_updates?', function $Rewriter_adjacent_updates$ques$9(range) { + var self = this; - if ($truthy(self.$active_clobber()['$&'](self.$adjacent_position_mask(range))['$!='](0))) { - return $send(self.$active_queue(), 'select', [], ($$26 = function(a){var self = $$26.$$s == null ? this : $$26.$$s; + if ($neqeq(self.$active_clobber()['$&'](self.$adjacent_position_mask(range)), 0)) { + return $send(self.$active_queue(), 'select', [], function $$10(a){var self = $$10.$$s == null ? this : $$10.$$s; - if (a == null) { - a = nil; - }; - return self['$adjacent?'](range, a.$range());}, $$26.$$s = self, $$26.$$arity = 1, $$26)) + if (a == null) a = nil;; + return self['$adjacent?'](range, a.$range());}, {$$arity: 1, $$s: self}) } else { return nil } - }, $Rewriter_adjacent_updates$ques$25.$$arity = 1); + }, 1); - Opal.def(self, '$replace_compatible_with_insertion?', $Rewriter_replace_compatible_with_insertion$ques$27 = function(replace, insertion) { - var self = this, $ret_or_6 = nil, $ret_or_7 = nil, offset = nil; + $def(self, '$replace_compatible_with_insertion?', function $Rewriter_replace_compatible_with_insertion$ques$11(replace, insertion) { + var $ret_or_1 = nil, $ret_or_2 = nil, offset = nil; - if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge($rb_minus(replace.$replacement().$length(), replace.$range().$size()), insertion.$range().$size())))) { - - return (offset = $rb_minus(insertion.$range().$begin_pos(), replace.$range().$begin_pos())); - } else { - return $ret_or_7 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = $rb_ge($rb_minus(replace.$replacement().$length(), replace.$range().$size()), insertion.$range().$size()))) ? ((offset = $rb_minus(insertion.$range().$begin_pos(), replace.$range().$begin_pos()))) : ($ret_or_2))))) { return replace.$replacement()['$[]'](offset, insertion.$replacement().$length())['$=='](insertion.$replacement()) } else { - return $ret_or_6 + return $ret_or_1 } - }, $Rewriter_replace_compatible_with_insertion$ques$27.$$arity = 2); + }, 2); - Opal.def(self, '$can_merge?', $Rewriter_can_merge$ques$28 = function(action, existing) { - var $$29, self = this, range = nil; + $def(self, '$can_merge?', function $Rewriter_can_merge$ques$12(action, existing) { + var range = nil; range = action.$range(); - return $send(existing, 'all?', [], ($$29 = function(other){var self = $$29.$$s == null ? this : $$29.$$s, overlap = nil, repl1_offset = nil, repl2_offset = nil, repl1_length = nil, repl2_length = nil, replacement1 = nil, $ret_or_8 = nil, replacement2 = nil, $ret_or_9 = nil; + return $send(existing, 'all?', [], function $$13(other){var overlap = nil, repl1_offset = nil, repl2_offset = nil, repl1_length = nil, repl2_length = nil, replacement1 = nil, $ret_or_1 = nil, replacement2 = nil; - if (other == null) { - other = nil; - }; + if (other == null) other = nil;; overlap = range.$intersect(other.$range()); if ($truthy(overlap['$nil?']())) { - return true;}; + return true; + }; repl1_offset = $rb_minus(overlap.$begin_pos(), range.$begin_pos()); repl2_offset = $rb_minus(overlap.$begin_pos(), other.$range().$begin_pos()); repl1_length = [$rb_minus(other.$range().$length(), repl2_offset), $rb_minus(other.$replacement().$length(), repl2_offset)].$max(); repl2_length = [$rb_minus(range.$length(), repl1_offset), $rb_minus(action.$replacement().$length(), repl1_offset)].$max(); - replacement1 = (function() {if ($truthy(($ret_or_8 = action.$replacement()['$[]'](repl1_offset, repl1_length)))) { - return $ret_or_8 - } else { - return "".$freeze() - }; return nil; })(); - replacement2 = (function() {if ($truthy(($ret_or_9 = other.$replacement()['$[]'](repl2_offset, repl2_length)))) { - return $ret_or_9 - } else { - return "".$freeze() - }; return nil; })(); - return replacement1['$=='](replacement2);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); - }, $Rewriter_can_merge$ques$28.$$arity = 2); + replacement1 = ($truthy(($ret_or_1 = action.$replacement()['$[]'](repl1_offset, repl1_length))) ? ($ret_or_1) : ("".$freeze())); + replacement2 = ($truthy(($ret_or_1 = other.$replacement()['$[]'](repl2_offset, repl2_length))) ? ($ret_or_1) : ("".$freeze())); + return replacement1['$=='](replacement2);}, 1); + }, 2); - Opal.def(self, '$merge_actions', $Rewriter_merge_actions$30 = function $$merge_actions(action, existing) { - var $$31, $$32, self = this, actions = nil, range = nil; + $def(self, '$merge_actions', function $$merge_actions(action, existing) { + var self = this, actions = nil, range = nil; - actions = $send(existing.$push(action), 'sort_by', [], ($$31 = function(a){var self = $$31.$$s == null ? this : $$31.$$s; - + actions = $send(existing.$push(action), 'sort_by', [], function $$14(a){ - if (a == null) { - a = nil; - }; - return [a.$range().$begin_pos(), a.$range().$end_pos()];}, $$31.$$s = self, $$31.$$arity = 1, $$31)); - range = actions.$first().$range().$join($send(actions, 'max_by', [], ($$32 = function(a){var self = $$32.$$s == null ? this : $$32.$$s; - + if (a == null) a = nil;; + return [a.$range().$begin_pos(), a.$range().$end_pos()];}, 1); + range = actions.$first().$range().$join($send(actions, 'max_by', [], function $$15(a){ - if (a == null) { - a = nil; - }; - return a.$range().$end_pos();}, $$32.$$s = self, $$32.$$arity = 1, $$32)).$range()); - return $$$($$($nesting, 'Rewriter'), 'Action').$new(range, self.$merge_replacements(actions)); - }, $Rewriter_merge_actions$30.$$arity = 2); + if (a == null) a = nil;; + return a.$range().$end_pos();}, 1).$range()); + return $$$($$('Rewriter'), 'Action').$new(range, self.$merge_replacements(actions)); + }, 2); - Opal.def(self, '$merge_actions!', $Rewriter_merge_actions$excl$33 = function(action, existing) { + $def(self, '$merge_actions!', function $Rewriter_merge_actions$excl$16(action, existing) { var self = this, new_action = nil; new_action = self.$merge_actions(action, existing); self.$active_queue().$delete(action); return self.$replace_actions(existing, new_action); - }, $Rewriter_merge_actions$excl$33.$$arity = 2); + }, 2); - Opal.def(self, '$merge_replacements', $Rewriter_merge_replacements$34 = function $$merge_replacements(actions) { - var $$35, self = this, result = nil, prev_act = nil; + $def(self, '$merge_replacements', function $$merge_replacements(actions) { + var result = nil, prev_act = nil; result = "".$dup(); prev_act = nil; - $send(actions, 'each', [], ($$35 = function(act){var self = $$35.$$s == null ? this : $$35.$$s, $ret_or_10 = nil, prev_end = nil, offset = nil; + $send(actions, 'each', [], function $$17(act){var prev_end = nil, offset = nil; - if (act == null) { - act = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_10 = prev_act['$!']()))) { - return $ret_or_10 - } else { - return act.$range()['$disjoint?'](prev_act.$range()) - }; return nil; })())) { + if (act == null) act = nil;; + if (($not(prev_act) || ($truthy(act.$range()['$disjoint?'](prev_act.$range()))))) { result['$<<'](act.$replacement()) } else { prev_end = [$rb_plus(prev_act.$range().$begin_pos(), prev_act.$replacement().$length()), prev_act.$range().$end_pos()].$max(); offset = $rb_minus(prev_end, act.$range().$begin_pos()); if ($truthy($rb_lt(offset, act.$replacement().$size()))) { - result['$<<'](act.$replacement()['$[]'](Opal.Range.$new(offset, -1, false)))}; + result['$<<'](act.$replacement()['$[]'](Opal.Range.$new(offset, -1, false))) + }; }; - return (prev_act = act);}, $$35.$$s = self, $$35.$$arity = 1, $$35)); + return (prev_act = act);}, 1); return result; - }, $Rewriter_merge_replacements$34.$$arity = 1); + }, 1); - Opal.def(self, '$replace_actions', $Rewriter_replace_actions$36 = function $$replace_actions(old, updated) { - var $$37, self = this; + $def(self, '$replace_actions', function $$replace_actions(old, updated) { + var self = this; - $send(old, 'each', [], ($$37 = function(act){var self = $$37.$$s == null ? this : $$37.$$s; + $send(old, 'each', [], function $$18(act){var self = $$18.$$s == null ? this : $$18.$$s; - if (act == null) { - act = nil; - }; - return self.$active_queue().$delete(act);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + if (act == null) act = nil;; + return self.$active_queue().$delete(act);}, {$$arity: 1, $$s: self}); return self.$active_queue()['$<<'](updated); - }, $Rewriter_replace_actions$36.$$arity = 2); + }, 2); - Opal.def(self, '$raise_clobber_error', $Rewriter_raise_clobber_error$38 = function $$raise_clobber_error(action, existing) { + $def(self, '$raise_clobber_error', function $$raise_clobber_error(action, existing) { var self = this, diagnostic = nil; - diagnostic = $$($nesting, 'Diagnostic').$new("error", "invalid_action", $hash2(["action"], {"action": action}), action.$range()); + diagnostic = $$('Diagnostic').$new("error", "invalid_action", $hash2(["action"], {"action": action}), action.$range()); self.diagnostics.$process(diagnostic); - diagnostic = $$($nesting, 'Diagnostic').$new("note", "clobbered", $hash2(["action"], {"action": existing['$[]'](0)}), existing['$[]'](0).$range()); + diagnostic = $$('Diagnostic').$new("note", "clobbered", $hash2(["action"], {"action": existing['$[]'](0)}), existing['$[]'](0).$range()); self.diagnostics.$process(diagnostic); - return self.$raise($$($nesting, 'ClobberingError'), "Parser::Source::Rewriter detected clobbering"); - }, $Rewriter_raise_clobber_error$38.$$arity = 2); + return self.$raise($$('ClobberingError'), "Parser::Source::Rewriter detected clobbering"); + }, 2); - Opal.def(self, '$in_transaction?', $Rewriter_in_transaction$ques$39 = function() { + $def(self, '$in_transaction?', function $Rewriter_in_transaction$ques$19() { var self = this; return self.pending_queue['$nil?']()['$!']() - }, $Rewriter_in_transaction$ques$39.$$arity = 0); + }, 0); - Opal.def(self, '$active_queue', $Rewriter_active_queue$40 = function $$active_queue() { - var self = this, $ret_or_11 = nil; + $def(self, '$active_queue', function $$active_queue() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_11 = self.pending_queue))) { - return $ret_or_11 + if ($truthy(($ret_or_1 = self.pending_queue))) { + return $ret_or_1 } else { return self.queue } - }, $Rewriter_active_queue$40.$$arity = 0); + }, 0); - Opal.def(self, '$active_clobber', $Rewriter_active_clobber$41 = function $$active_clobber() { - var self = this, $ret_or_12 = nil; + $def(self, '$active_clobber', function $$active_clobber() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_12 = self.pending_clobber))) { - return $ret_or_12 + if ($truthy(($ret_or_1 = self.pending_clobber))) { + return $ret_or_1 } else { return self.clobber } - }, $Rewriter_active_clobber$41.$$arity = 0); + }, 0); - Opal.def(self, '$active_insertions', $Rewriter_active_insertions$42 = function $$active_insertions() { - var self = this, $ret_or_13 = nil; + $def(self, '$active_insertions', function $$active_insertions() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_13 = self.pending_insertions))) { - return $ret_or_13 + if ($truthy(($ret_or_1 = self.pending_insertions))) { + return $ret_or_1 } else { return self.insertions } - }, $Rewriter_active_insertions$42.$$arity = 0); + }, 0); - Opal.def(self, '$active_clobber=', $Rewriter_active_clobber$eq$43 = function(value) { + $def(self, '$active_clobber=', function $Rewriter_active_clobber$eq$20(value) { var self = this; if ($truthy(self.pending_clobber)) { @@ -5275,9 +4680,9 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } else { return (self.clobber = value) } - }, $Rewriter_active_clobber$eq$43.$$arity = 1); + }, 1); - Opal.def(self, '$active_insertions=', $Rewriter_active_insertions$eq$44 = function(value) { + $def(self, '$active_insertions=', function $Rewriter_active_insertions$eq$21(value) { var self = this; if ($truthy(self.pending_insertions)) { @@ -5285,29 +4690,28 @@ Opal.modules["parser/source/rewriter"] = function(Opal) { } else { return (self.insertions = value) } - }, $Rewriter_active_insertions$eq$44.$$arity = 1); + }, 1); - Opal.def(self, '$adjacent?', $Rewriter_adjacent$ques$45 = function(range1, range2) { - var self = this, $ret_or_14 = nil; + $def(self, '$adjacent?', function $Rewriter_adjacent$ques$22(range1, range2) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_14 = $rb_le(range1.$begin_pos(), range2.$end_pos())))) { + if ($truthy(($ret_or_1 = $rb_le(range1.$begin_pos(), range2.$end_pos())))) { return $rb_le(range2.$begin_pos(), range1.$end_pos()) } else { - return $ret_or_14 + return $ret_or_1 } - }, $Rewriter_adjacent$ques$45.$$arity = 2); - Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Source::Rewriter is deprecated.", "Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()); - return self.$extend($$($nesting, 'Deprecation')); + }, 2); + $const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Source::Rewriter is deprecated.", "Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()); + return self.$extend($$('Deprecation')); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/rewriter/action"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["parser/source/rewriter/action"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $eqeq = Opal.eqeq; - Opal.add_stubs(['$include', '$attr_reader', '$alias_method', '$freeze', '$<=>', '$begin_pos', '$range', '$zero?', '$order', '$==', '$length', '$empty?', '$inspect']); + Opal.add_stubs('include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -5316,92 +4720,68 @@ Opal.modules["parser/source/rewriter/action"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Action'); - var $nesting = [self].concat($parent_nesting), $Action_initialize$1, $Action_$lt_eq_gt$2, $Action_to_s$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.range = self.$$prototype.replacement = nil; + $proto.replacement = $proto.range = nil; - self.$include($$($nesting, 'Comparable')); + self.$include($$('Comparable')); self.$attr_reader("range", "replacement", "allow_multiple_insertions", "order"); self.$alias_method("allow_multiple_insertions?", "allow_multiple_insertions"); - Opal.def(self, '$initialize', $Action_initialize$1 = function $$initialize(range, replacement, allow_multiple_insertions, order) { + $def(self, '$initialize', function $$initialize(range, replacement, allow_multiple_insertions, order) { var self = this; - if (replacement == null) { - replacement = ""; - }; + if (replacement == null) replacement = "";; - if (allow_multiple_insertions == null) { - allow_multiple_insertions = false; - }; + if (allow_multiple_insertions == null) allow_multiple_insertions = false;; - if (order == null) { - order = 0; - }; + if (order == null) order = 0;; self.range = range; self.replacement = replacement; self.allow_multiple_insertions = allow_multiple_insertions; self.order = order; return self.$freeze(); - }, $Action_initialize$1.$$arity = -2); + }, -2); - Opal.def(self, '$<=>', $Action_$lt_eq_gt$2 = function(other) { + $def(self, '$<=>', function $Action_$lt_eq_gt$1(other) { var self = this, result = nil; result = self.$range().$begin_pos()['$<=>'](other.$range().$begin_pos()); - if ($truthy(result['$zero?']())) { - } else { + if (!$truthy(result['$zero?']())) { return result }; return self.$order()['$<=>'](other.$order()); - }, $Action_$lt_eq_gt$2.$$arity = 1); - return (Opal.def(self, '$to_s', $Action_to_s$3 = function $$to_s() { - var self = this, $ret_or_1 = nil; + }, 1); + return $def(self, '$to_s', function $$to_s() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_1 = self.range.$length()['$=='](0)))) { - return self.replacement['$empty?']() - } else { - return $ret_or_1 - }; return nil; })())) { + if (($eqeq(self.range.$length(), 0) && ($truthy(self.replacement['$empty?']())))) { return "do nothing" - } else if (self.range.$length()['$=='](0)) { - return "" + "insert " + (self.replacement.$inspect()) + } else if ($eqeq(self.range.$length(), 0)) { + return "insert " + (self.replacement.$inspect()) } else if ($truthy(self.replacement['$empty?']())) { - return "" + "remove " + (self.range.$length()) + " character(s)" + return "remove " + (self.range.$length()) + " character(s)" } else { - return "" + "replace " + (self.range.$length()) + " character(s) with " + (self.replacement.$inspect()) + return "replace " + (self.range.$length()) + " character(s) with " + (self.replacement.$inspect()) } - }, $Action_to_s$3.$$arity = 0), nil) && 'to_s'; - })($$($nesting, 'Rewriter'), null, $nesting) + }, 0); + })($$('Rewriter'), null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/tree_rewriter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $lambda = Opal.lambda, $gvars = Opal.gvars, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $hash = Opal.hash, $slice = Opal.slice; +Opal.modules["parser/source/tree_rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $lambda = Opal.lambda, $gvars = Opal.gvars, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $const_set = Opal.const_set, $eqeqeq = Opal.eqeqeq, $range = Opal.range, $to_ary = Opal.to_ary, $hash = Opal.hash, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $slice = Opal.slice; - Opal.add_stubs(['$attr_reader', '$new', '$puts', '$render', '$consumer=', '$-', '$freeze', '$check_policy_validity', '$method', '$adjust', '$source_range', '$empty?', '$==', '$source_buffer', '$raise', '$combine', '$action_root', '$merge!', '$dup', '$contract', '$+', '$begin_pos', '$range', '$end_pos', '$check_range_validity', '$moved', '$to_s', '$replace', '$wrap', '$source', '$each', '$ordered_replacements', '$<<', '$[]', '$length', '$join', '$nested_actions', '$class', '$name', '$action_summary', '$warn_of_deprecation', '$insert_before', '$insert_after', '$extend', '$protected', '$private', '$as_replacements', '$size', '$===', '$first', '$map', '$to_range', '$inspect', '$values', '$<', '$>', '$trigger_policy', '$process']); + Opal.add_stubs('attr_reader,new,puts,render,consumer=,-,freeze,check_policy_validity,method,adjust,source_range,empty?,==,source_buffer,raise,combine,action_root,merge!,dup,contract,+,begin_pos,range,end_pos,check_range_validity,moved,to_s,replace,wrap,source,each,ordered_replacements,<<,[],length,join,nested_actions,class,name,action_summary,warn_of_deprecation,insert_before,insert_after,extend,protected,private,as_replacements,===,size,first,map,to_range,inspect,values,>,<,trigger_policy,process'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -5415,15 +4795,15 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'TreeRewriter'); - var $nesting = [self].concat($parent_nesting), $TreeRewriter_initialize$1, $TreeRewriter_empty$ques$3, $TreeRewriter_merge$excl$4, $TreeRewriter_merge$5, $TreeRewriter_import$excl$6, $TreeRewriter_replace$7, $TreeRewriter_wrap$8, $TreeRewriter_remove$9, $TreeRewriter_insert_before$10, $TreeRewriter_insert_after$11, $TreeRewriter_process$12, $TreeRewriter_as_replacements$14, $TreeRewriter_as_nested_actions$15, $TreeRewriter_transaction$16, $TreeRewriter_in_transaction$ques$17, $TreeRewriter_inspect$18, $TreeRewriter_insert_before_multi$19, $TreeRewriter_insert_after_multi$20, $TreeRewriter_action_summary$21, $TreeRewriter_check_policy_validity$23, $TreeRewriter_combine$24, $TreeRewriter_check_range_validity$25, $TreeRewriter_enforce_policy$26, $TreeRewriter_trigger_policy$27; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.diagnostics = self.$$prototype.source_buffer = self.$$prototype.enforcer = self.$$prototype.action_root = self.$$prototype.in_transaction = self.$$prototype.policy = nil; + $proto.diagnostics = $proto.source_buffer = $proto.enforcer = $proto.action_root = $proto.in_transaction = $proto.policy = nil; self.$attr_reader("source_buffer"); self.$attr_reader("diagnostics"); - Opal.def(self, '$initialize', $TreeRewriter_initialize$1 = function $$initialize(source_buffer, $kwargs) { - var crossing_deletions, different_replacements, swallowed_insertions, $$2, self = this, $writer = nil, all_encompassing_range = nil; + $def(self, '$initialize', function $$initialize(source_buffer, $kwargs) { + var crossing_deletions, different_replacements, swallowed_insertions, self = this, $writer = nil, all_encompassing_range = nil; @@ -5434,31 +4814,22 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { }; crossing_deletions = $kwargs.$$smap["crossing_deletions"]; - if (crossing_deletions == null) { - crossing_deletions = "accept" - }; + if (crossing_deletions == null) crossing_deletions = "accept"; different_replacements = $kwargs.$$smap["different_replacements"]; - if (different_replacements == null) { - different_replacements = "accept" - }; + if (different_replacements == null) different_replacements = "accept"; swallowed_insertions = $kwargs.$$smap["swallowed_insertions"]; - if (swallowed_insertions == null) { - swallowed_insertions = "accept" - }; - self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); + if (swallowed_insertions == null) swallowed_insertions = "accept"; + self.diagnostics = $$$($$('Diagnostic'), 'Engine').$new(); - $writer = [$lambda(($$2 = function(diag){var self = $$2.$$s == null ? this : $$2.$$s; - if ($gvars.stderr == null) $gvars.stderr = nil; + $writer = [$lambda(function $$1(diag){ if ($gvars.stderr == null) $gvars.stderr = nil; - if (diag == null) { - diag = nil; - }; - return $gvars.stderr.$puts(diag.$render());}, $$2.$$s = self, $$2.$$arity = 1, $$2))]; - $send(self.diagnostics, 'consumer=', Opal.to_a($writer)); + if (diag == null) diag = nil;; + return $gvars.stderr.$puts(diag.$render());}, 1)]; + $send(self.diagnostics, 'consumer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.source_buffer = source_buffer; self.in_transaction = false; @@ -5466,34 +4837,33 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { self.$check_policy_validity(); self.enforcer = self.$method("enforce_policy"); all_encompassing_range = self.source_buffer.$source_range().$adjust($hash2(["begin_pos", "end_pos"], {"begin_pos": -1, "end_pos": 1})); - return (self.action_root = $$$($$($nesting, 'TreeRewriter'), 'Action').$new(all_encompassing_range, self.enforcer)); - }, $TreeRewriter_initialize$1.$$arity = -2); + return (self.action_root = $$$($$('TreeRewriter'), 'Action').$new(all_encompassing_range, self.enforcer)); + }, -2); - Opal.def(self, '$empty?', $TreeRewriter_empty$ques$3 = function() { + $def(self, '$empty?', function $TreeRewriter_empty$ques$2() { var self = this; return self.action_root['$empty?']() - }, $TreeRewriter_empty$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$merge!', $TreeRewriter_merge$excl$4 = function(with$) { + $def(self, '$merge!', function $TreeRewriter_merge$excl$3(with$) { var self = this; - if (self.$source_buffer()['$=='](with$.$source_buffer())) { - } else { + if (!$eqeq(self.$source_buffer(), with$.$source_buffer())) { self.$raise("TreeRewriter are not for the same source_buffer") }; self.action_root = self.action_root.$combine(with$.$action_root()); return self; - }, $TreeRewriter_merge$excl$4.$$arity = 1); + }, 1); - Opal.def(self, '$merge', $TreeRewriter_merge$5 = function $$merge(with$) { + $def(self, '$merge', function $$merge(with$) { var self = this; return self.$dup()['$merge!'](with$) - }, $TreeRewriter_merge$5.$$arity = 1); + }, 1); - Opal.def(self, '$import!', $TreeRewriter_import$excl$6 = function(foreign_rewriter, $kwargs) { + $def(self, '$import!', function $TreeRewriter_import$excl$4(foreign_rewriter, $kwargs) { var offset, self = this, contracted = nil, merge_effective_range = nil, merge_with = nil; @@ -5505,93 +4875,86 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { }; offset = $kwargs.$$smap["offset"]; - if (offset == null) { - offset = 0 - }; + if (offset == null) offset = 0; if ($truthy(foreign_rewriter['$empty?']())) { - return self}; + return self + }; contracted = foreign_rewriter.$action_root().$contract(); - merge_effective_range = $$$($$$($$$('::', 'Parser'), 'Source'), 'Range').$new(self.source_buffer, $rb_plus(contracted.$range().$begin_pos(), offset), $rb_plus(contracted.$range().$end_pos(), offset)); + merge_effective_range = $$$($$$($$$('Parser'), 'Source'), 'Range').$new(self.source_buffer, $rb_plus(contracted.$range().$begin_pos(), offset), $rb_plus(contracted.$range().$end_pos(), offset)); self.$check_range_validity(merge_effective_range); merge_with = contracted.$moved(self.source_buffer, offset); self.action_root = self.action_root.$combine(merge_with); return self; - }, $TreeRewriter_import$excl$6.$$arity = -2); + }, -2); - Opal.def(self, '$replace', $TreeRewriter_replace$7 = function $$replace(range, content) { + $def(self, '$replace', function $$replace(range, content) { var self = this; return self.$combine(range, $hash2(["replacement"], {"replacement": content})) - }, $TreeRewriter_replace$7.$$arity = 2); + }, 2); - Opal.def(self, '$wrap', $TreeRewriter_wrap$8 = function $$wrap(range, insert_before, insert_after) { + $def(self, '$wrap', function $$wrap(range, insert_before, insert_after) { var self = this; return self.$combine(range, $hash2(["insert_before", "insert_after"], {"insert_before": insert_before.$to_s(), "insert_after": insert_after.$to_s()})) - }, $TreeRewriter_wrap$8.$$arity = 3); + }, 3); - Opal.def(self, '$remove', $TreeRewriter_remove$9 = function $$remove(range) { + $def(self, '$remove', function $$remove(range) { var self = this; return self.$replace(range, "".$freeze()) - }, $TreeRewriter_remove$9.$$arity = 1); + }, 1); - Opal.def(self, '$insert_before', $TreeRewriter_insert_before$10 = function $$insert_before(range, content) { + $def(self, '$insert_before', function $$insert_before(range, content) { var self = this; return self.$wrap(range, content, nil) - }, $TreeRewriter_insert_before$10.$$arity = 2); + }, 2); - Opal.def(self, '$insert_after', $TreeRewriter_insert_after$11 = function $$insert_after(range, content) { + $def(self, '$insert_after', function $$insert_after(range, content) { var self = this; return self.$wrap(range, nil, content) - }, $TreeRewriter_insert_after$11.$$arity = 2); + }, 2); - Opal.def(self, '$process', $TreeRewriter_process$12 = function $$process() { - var $$13, self = this, source = nil, chunks = nil, last_end = nil; + $def(self, '$process', function $$process() { + var self = this, source = nil, chunks = nil, last_end = nil; source = self.source_buffer.$source(); chunks = []; last_end = 0; - $send(self.action_root.$ordered_replacements(), 'each', [], ($$13 = function(range, replacement){var self = $$13.$$s == null ? this : $$13.$$s; - + $send(self.action_root.$ordered_replacements(), 'each', [], function $$5(range, replacement){ - if (range == null) { - range = nil; - }; + if (range == null) range = nil;; - if (replacement == null) { - replacement = nil; - }; + if (replacement == null) replacement = nil;; chunks['$<<'](source['$[]'](Opal.Range.$new(last_end,range.$begin_pos(), true)))['$<<'](replacement); - return (last_end = range.$end_pos());}, $$13.$$s = self, $$13.$$arity = 2, $$13)); + return (last_end = range.$end_pos());}, 2); chunks['$<<'](source['$[]'](Opal.Range.$new(last_end,source.$length(), true))); return chunks.$join(); - }, $TreeRewriter_process$12.$$arity = 0); + }, 0); - Opal.def(self, '$as_replacements', $TreeRewriter_as_replacements$14 = function $$as_replacements() { + $def(self, '$as_replacements', function $$as_replacements() { var self = this; return self.action_root.$ordered_replacements() - }, $TreeRewriter_as_replacements$14.$$arity = 0); + }, 0); - Opal.def(self, '$as_nested_actions', $TreeRewriter_as_nested_actions$15 = function $$as_nested_actions() { + $def(self, '$as_nested_actions', function $$as_nested_actions() { var self = this; return self.action_root.$nested_actions() - }, $TreeRewriter_as_nested_actions$15.$$arity = 0); + }, 0); - Opal.def(self, '$transaction', $TreeRewriter_transaction$16 = function $$transaction() { - var $iter = $TreeRewriter_transaction$16.$$p, $yield = $iter || nil, self = this, previous = nil, restore_root = nil; + $def(self, '$transaction', function $$transaction() { + var $yield = $$transaction.$$p || nil, self = this, previous = nil, restore_root = nil; - if ($iter) $TreeRewriter_transaction$16.$$p = null; + delete $$transaction.$$p; return (function() { try { - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { self.$raise("" + (self.$class()) + "#" + ("transaction") + " requires block") }; previous = self.in_transaction; @@ -5601,130 +4964,123 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { restore_root = nil; return self; } finally { - ((function() {if ($truthy(restore_root)) { - return (self.action_root = restore_root) - } else { - return nil - }; return nil; })(), (self.in_transaction = previous)) + (($truthy(restore_root) ? ((self.action_root = restore_root)) : nil), (self.in_transaction = previous)) }; })() - }, $TreeRewriter_transaction$16.$$arity = 0); + }, 0); - Opal.def(self, '$in_transaction?', $TreeRewriter_in_transaction$ques$17 = function() { + $def(self, '$in_transaction?', function $TreeRewriter_in_transaction$ques$6() { var self = this; return self.in_transaction - }, $TreeRewriter_in_transaction$ques$17.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $TreeRewriter_inspect$18 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#<" + (self.$class()) + " " + (self.$source_buffer().$name()) + ": " + (self.$action_summary()) + ">" - }, $TreeRewriter_inspect$18.$$arity = 0); + return "#<" + (self.$class()) + " " + (self.$source_buffer().$name()) + ": " + (self.$action_summary()) + ">" + }, 0); - Opal.def(self, '$insert_before_multi', $TreeRewriter_insert_before_multi$19 = function $$insert_before_multi(range, text) { + $def(self, '$insert_before_multi', function $$insert_before_multi(range, text) { var self = this; self.$class().$warn_of_deprecation(); return self.$insert_before(range, text); - }, $TreeRewriter_insert_before_multi$19.$$arity = 2); + }, 2); - Opal.def(self, '$insert_after_multi', $TreeRewriter_insert_after_multi$20 = function $$insert_after_multi(range, text) { + $def(self, '$insert_after_multi', function $$insert_after_multi(range, text) { var self = this; self.$class().$warn_of_deprecation(); return self.$insert_after(range, text); - }, $TreeRewriter_insert_after_multi$20.$$arity = 2); - Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.", "Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()); - self.$extend($$($nesting, 'Deprecation')); + }, 2); + $const_set($nesting[0], 'DEPRECATION_WARNING', ["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.", "Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()); + self.$extend($$('Deprecation')); self.$protected(); self.$attr_reader("action_root"); self.$private(); - Opal.def(self, '$action_summary', $TreeRewriter_action_summary$21 = function $$action_summary() { - var $$22, self = this, replacements = nil, $case = nil, suffix = nil, parts = nil; + $def(self, '$action_summary', function $$action_summary() { + var self = this, replacements = nil, $ret_or_1 = nil, suffix = nil, parts = nil; replacements = self.$as_replacements(); - $case = replacements.$size(); - if ((0)['$===']($case)) {return "empty"} - else if ($range(1, 3, false)['$===']($case)) {nil} - else { - replacements = replacements.$first(3); - suffix = "…";}; - parts = $send(replacements, 'map', [], ($$22 = function($mlhs_tmp1){var self = $$22.$$s == null ? this : $$22.$$s, $a, $b, range = nil, str = nil; + if ($eqeqeq(0, ($ret_or_1 = replacements.$size()))) { + return "empty" + } else if (!$eqeqeq($range(1, 3, false), $ret_or_1)) { + + replacements = replacements.$first(3); + suffix = "…"; + }; + parts = $send(replacements, 'map', [], function $$7($mlhs_tmp1){var $a, $b, range = nil, str = nil; - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $b = $mlhs_tmp1, $a = Opal.to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (str = ($a[1] == null ? nil : $a[1])), $b; + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $b = $mlhs_tmp1, $a = $to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (str = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(str['$empty?']())) { - return "" + "-" + (range.$to_range()) - } else if (range.$size()['$=='](0)) { - return "" + "+" + (str.$inspect()) + "@" + (range.$begin_pos()) + return "-" + (range.$to_range()) + } else if ($eqeq(range.$size(), 0)) { + return "+" + (str.$inspect()) + "@" + (range.$begin_pos()) } else { - return "" + "^" + (str.$inspect()) + "@" + (range.$to_range()) - };}, $$22.$$s = self, $$22.$$arity = 1, $$22.$$has_top_level_mlhs_arg = true, $$22)); + return "^" + (str.$inspect()) + "@" + (range.$to_range()) + };}, {$$arity: 1, $$has_top_level_mlhs_arg: true}); if ($truthy(suffix)) { - parts['$<<'](suffix)}; + parts['$<<'](suffix) + }; return parts.$join(", "); - }, $TreeRewriter_action_summary$21.$$arity = 0); - Opal.const_set($nesting[0], 'ACTIONS', ["accept", "warn", "raise"].$freeze()); + }, 0); + $const_set($nesting[0], 'ACTIONS', ["accept", "warn", "raise"].$freeze()); - Opal.def(self, '$check_policy_validity', $TreeRewriter_check_policy_validity$23 = function $$check_policy_validity() { + $def(self, '$check_policy_validity', function $$check_policy_validity() { var self = this, invalid = nil; - invalid = $rb_minus(self.policy.$values(), $$($nesting, 'ACTIONS')); + invalid = $rb_minus(self.policy.$values(), $$('ACTIONS')); if ($truthy(invalid['$empty?']())) { return nil } else { - return self.$raise($$($nesting, 'ArgumentError'), "" + "Invalid policy: " + (invalid.$join(", "))) + return self.$raise($$('ArgumentError'), "Invalid policy: " + (invalid.$join(", "))) }; - }, $TreeRewriter_check_policy_validity$23.$$arity = 0); + }, 0); - Opal.def(self, '$combine', $TreeRewriter_combine$24 = function $$combine(range, attributes) { + $def(self, '$combine', function $$combine(range, attributes) { var self = this, action = nil; range = self.$check_range_validity(range); - action = $$$($$($nesting, 'TreeRewriter'), 'Action').$new(range, self.enforcer, Opal.to_hash(attributes)); + action = $$$($$('TreeRewriter'), 'Action').$new(range, self.enforcer, Opal.to_hash(attributes)); self.action_root = self.action_root.$combine(action); return self; - }, $TreeRewriter_combine$24.$$arity = 2); + }, 2); - Opal.def(self, '$check_range_validity', $TreeRewriter_check_range_validity$25 = function $$check_range_validity(range) { - var self = this, $ret_or_1 = nil; + $def(self, '$check_range_validity', function $$check_range_validity(range) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_1 = $rb_lt(range.$begin_pos(), 0)))) { - return $ret_or_1 - } else { - return $rb_gt(range.$end_pos(), self.source_buffer.$source().$size()) - }; return nil; })())) { - self.$raise($$($nesting, 'IndexError'), "" + "The range " + (range.$to_range()) + " is outside the bounds of the source")}; + if (($truthy($rb_lt(range.$begin_pos(), 0)) || ($truthy($rb_gt(range.$end_pos(), self.source_buffer.$source().$size()))))) { + self.$raise($$('IndexError'), "The range " + (range.$to_range()) + " is outside the bounds of the source") + }; return range; - }, $TreeRewriter_check_range_validity$25.$$arity = 1); + }, 1); - Opal.def(self, '$enforce_policy', $TreeRewriter_enforce_policy$26 = function $$enforce_policy(event) { - var $iter = $TreeRewriter_enforce_policy$26.$$p, $yield = $iter || nil, self = this, values = nil; + $def(self, '$enforce_policy', function $$enforce_policy(event) { + var $yield = $$enforce_policy.$$p || nil, self = this, values = nil; - if ($iter) $TreeRewriter_enforce_policy$26.$$p = null; + delete $$enforce_policy.$$p; - if (self.policy['$[]'](event)['$==']("accept")) { - return nil}; - if ($truthy((values = Opal.yieldX($yield, [])))) { - } else { + if ($eqeq(self.policy['$[]'](event), "accept")) { + return nil + }; + if (!$truthy((values = Opal.yieldX($yield, [])))) { return nil }; return self.$trigger_policy(event, Opal.to_hash(values)); - }, $TreeRewriter_enforce_policy$26.$$arity = 1); - Opal.const_set($nesting[0], 'POLICY_TO_LEVEL', $hash2(["warn", "raise"], {"warn": "warning", "raise": "error"}).$freeze()); - return (Opal.def(self, '$trigger_policy', $TreeRewriter_trigger_policy$27 = function $$trigger_policy(event, $kwargs) { - var range, conflict, arguments$, $a, $b, self = this, action = nil, $ret_or_2 = nil, diag = nil, highlights = nil; + }, 1); + $const_set($nesting[0], 'POLICY_TO_LEVEL', $hash2(["warn", "raise"], {"warn": "warning", "raise": "error"}).$freeze()); + return $def(self, '$trigger_policy', function $$trigger_policy(event, $kwargs) { + var range, conflict, arguments$, $a, $b, self = this, action = nil, $ret_or_1 = nil, diag = nil, highlights = nil; @@ -5735,62 +5091,36 @@ Opal.modules["parser/source/tree_rewriter"] = function(Opal) { }; range = $kwargs.$$smap["range"]; - if (range == null) { - range = self.$raise() - }; + if (range == null) range = self.$raise(); conflict = $kwargs.$$smap["conflict"]; - if (conflict == null) { - conflict = nil - }; + if (conflict == null) conflict = nil; arguments$ = Opal.kwrestargs($kwargs, {'range': true,'conflict': true});; - action = (function() {if ($truthy(($ret_or_2 = self.policy['$[]'](event)))) { - return $ret_or_2 - } else { - return "raise" - }; return nil; })(); - diag = $$$($$($nesting, 'Parser'), 'Diagnostic').$new($$($nesting, 'POLICY_TO_LEVEL')['$[]'](action), event, arguments$, range); + action = ($truthy(($ret_or_1 = self.policy['$[]'](event))) ? ($ret_or_1) : ("raise")); + diag = $$$($$('Parser'), 'Diagnostic').$new($$('POLICY_TO_LEVEL')['$[]'](action), event, arguments$, range); self.diagnostics.$process(diag); if ($truthy(conflict)) { - $b = conflict, $a = Opal.to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (highlights = $slice.call($a, 1)), $b; - diag = $$$($$($nesting, 'Parser'), 'Diagnostic').$new($$($nesting, 'POLICY_TO_LEVEL')['$[]'](action), "" + (event) + "_conflict", arguments$, range, highlights); - self.diagnostics.$process(diag);}; - if (action['$==']("raise")) { - return self.$raise($$$($$($nesting, 'Parser'), 'ClobberingError'), "Parser::Source::TreeRewriter detected clobbering") + $b = conflict, $a = $to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (highlights = $slice.call($a, 1)), $b; + diag = $$$($$('Parser'), 'Diagnostic').$new($$('POLICY_TO_LEVEL')['$[]'](action), "" + (event) + "_conflict", arguments$, range, highlights); + self.diagnostics.$process(diag); + }; + if ($eqeq(action, "raise")) { + return self.$raise($$$($$('Parser'), 'ClobberingError'), "Parser::Source::TreeRewriter detected clobbering") } else { return nil }; - }, $TreeRewriter_trigger_policy$27.$$arity = -2), nil) && 'trigger_policy'; + }, -2); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $not = Opal.not, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $rb_gt = Opal.rb_gt, $rb_minus = Opal.rb_minus, $rb_ge = Opal.rb_ge, $eqeqeq = Opal.eqeqeq, $rb_le = Opal.rb_le, $rb_lt = Opal.rb_lt, $neqeq = Opal.neqeq; - Opal.add_stubs(['$attr_reader', '$freeze', '$empty?', '$do_combine', '$==', '$<<', '$begin', '$concat', '$flat_map', '$to_proc', '$end', '$!', '$insert_before', '$insert_after', '$replacement', '$raise', '$insertion?', '$with', '$begin_pos', '$range', '$first', '$children', '$end_pos', '$last', '$new', '$+', '$map', '$moved', '$protected', '$swallow', '$class', '$merge', '$place_in_hierarchy', '$analyse_hierarchy', '$[]', '$fuse_deletions', '$combine_children', '$inject', '$size', '$bsearch', '$bsearch_child_index', '$>', '$-', '$>=', '$===', '$<=>', '$<=', '$check_fusible', '$<', '$shift', '$pop', '$compact!', '$each', '$call', '$call_enforcer_for_merge', '$!=', '$select']); + Opal.add_stubs('attr_reader,freeze,empty?,do_combine,==,<<,begin,concat,flat_map,to_proc,end,!,insert_before,insert_after,replacement,raise,insertion?,with,begin_pos,range,first,children,end_pos,last,new,+,map,moved,protected,swallow,class,merge,place_in_hierarchy,analyse_hierarchy,[],fuse_deletions,combine_children,inject,size,bsearch,bsearch_child_index,>,-,>=,===,<=>,<=,check_fusible,<,shift,pop,compact!,each,call,call_enforcer_for_merge,!=,select'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -5799,18 +5129,18 @@ Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Action'); - var $nesting = [self].concat($parent_nesting), $Action_initialize$1, $Action_combine$2, $Action_empty$ques$3, $Action_ordered_replacements$4, $Action_nested_actions$5, $Action_insertion$ques$6, $Action_contract$7, $Action_moved$8, $Action_with$10, $Action_do_combine$11, $Action_place_in_hierarchy$12, $Action_combine_children$13, $Action_fuse_deletions$15, $Action_bsearch_child_index$16, $Action_analyse_hierarchy$18, $Action_check_fusible$21, $Action_merge$24, $Action_call_enforcer_for_merge$25, $Action_swallow$27; + var $proto = self.$$prototype; - self.$$prototype.insert_before = self.$$prototype.insert_after = self.$$prototype.children = self.$$prototype.replacement = self.$$prototype.range = self.$$prototype.enforcer = nil; + $proto.insert_before = $proto.insert_after = $proto.children = $proto.replacement = $proto.range = $proto.enforcer = nil; self.$attr_reader("range", "replacement", "insert_before", "insert_after"); - Opal.def(self, '$initialize', $Action_initialize$1 = function $$initialize(range, enforcer, $kwargs) { + $def(self, '$initialize', function $$initialize(range, enforcer, $kwargs) { var insert_before, replacement, insert_after, children, $a, self = this; @@ -5822,149 +5152,126 @@ Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { }; insert_before = $kwargs.$$smap["insert_before"]; - if (insert_before == null) { - insert_before = "" - }; + if (insert_before == null) insert_before = ""; replacement = $kwargs.$$smap["replacement"]; - if (replacement == null) { - replacement = nil - }; + if (replacement == null) replacement = nil; insert_after = $kwargs.$$smap["insert_after"]; - if (insert_after == null) { - insert_after = "" - }; + if (insert_after == null) insert_after = ""; children = $kwargs.$$smap["children"]; - if (children == null) { - children = [] - }; + if (children == null) children = []; $a = [range, enforcer, children.$freeze(), insert_before.$freeze(), replacement, insert_after.$freeze()], (self.range = $a[0]), (self.enforcer = $a[1]), (self.children = $a[2]), (self.insert_before = $a[3]), (self.replacement = $a[4]), (self.insert_after = $a[5]), $a; return self.$freeze(); - }, $Action_initialize$1.$$arity = -3); + }, -3); - Opal.def(self, '$combine', $Action_combine$2 = function $$combine(action) { + $def(self, '$combine', function $$combine(action) { var self = this; if ($truthy(action['$empty?']())) { - return self}; + return self + }; return self.$do_combine(action); - }, $Action_combine$2.$$arity = 1); + }, 1); - Opal.def(self, '$empty?', $Action_empty$ques$3 = function() { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$empty?', function $Action_empty$ques$1() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.insert_before['$empty?']()))) { - return self.insert_after['$empty?']() - } else { - return $ret_or_3 - }; return nil; })()))) { - return self.children['$empty?']() - } else { - return $ret_or_2 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = self.insert_before['$empty?']())) ? (self.insert_after['$empty?']()) : ($ret_or_3)))) ? (self.children['$empty?']()) : ($ret_or_2))))) { - if ($truthy(($ret_or_4 = self.replacement['$=='](nil)))) { - return $ret_or_4 + if ($truthy(($ret_or_2 = self.replacement['$=='](nil)))) { + return $ret_or_2 } else { - if ($truthy(($ret_or_5 = self.replacement['$empty?']()))) { + if ($truthy(($ret_or_3 = self.replacement['$empty?']()))) { return self.range['$empty?']() } else { - return $ret_or_5 + return $ret_or_3 }; }; } else { return $ret_or_1 } - }, $Action_empty$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$ordered_replacements', $Action_ordered_replacements$4 = function $$ordered_replacements() { + $def(self, '$ordered_replacements', function $$ordered_replacements() { var self = this, reps = nil; reps = []; - if ($truthy(self.insert_before['$empty?']())) { - } else { + if (!$truthy(self.insert_before['$empty?']())) { reps['$<<']([self.range.$begin(), self.insert_before]) }; if ($truthy(self.replacement)) { - reps['$<<']([self.range, self.replacement])}; + reps['$<<']([self.range, self.replacement]) + }; reps.$concat($send(self.children, 'flat_map', [], "ordered_replacements".$to_proc())); - if ($truthy(self.insert_after['$empty?']())) { - } else { + if (!$truthy(self.insert_after['$empty?']())) { reps['$<<']([self.range.$end(), self.insert_after]) }; return reps; - }, $Action_ordered_replacements$4.$$arity = 0); + }, 0); - Opal.def(self, '$nested_actions', $Action_nested_actions$5 = function $$nested_actions() { - var self = this, actions = nil, $ret_or_6 = nil; + $def(self, '$nested_actions', function $$nested_actions() { + var self = this, actions = nil; actions = []; - if ($truthy((function() {if ($truthy(($ret_or_6 = self.insert_before['$empty?']()['$!']()))) { - return $ret_or_6 - } else { - return self.insert_after['$empty?']()['$!']() - }; return nil; })())) { - actions['$<<'](["wrap", self.range, self.insert_before, self.insert_after])}; + if (($not(self.insert_before['$empty?']()) || ($not(self.insert_after['$empty?']())))) { + actions['$<<'](["wrap", self.range, self.insert_before, self.insert_after]) + }; if ($truthy(self.replacement)) { - actions['$<<'](["replace", self.range, self.replacement])}; + actions['$<<'](["replace", self.range, self.replacement]) + }; return actions.$concat($send(self.children, 'flat_map', [], "nested_actions".$to_proc())); - }, $Action_nested_actions$5.$$arity = 0); + }, 0); - Opal.def(self, '$insertion?', $Action_insertion$ques$6 = function() { - var self = this, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil; + $def(self, '$insertion?', function $Action_insertion$ques$2() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self.$insert_before()['$empty?']()['$!']()))) { - return $ret_or_8 - } else { - return self.$insert_after()['$empty?']()['$!']() - }; return nil; })()))) { - return $ret_or_7 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$insert_before()['$empty?']()['$!']())) ? ($ret_or_2) : (self.$insert_after()['$empty?']()['$!']()))))) { + return $ret_or_1 } else { - if ($truthy(($ret_or_9 = self.$replacement()))) { + if ($truthy(($ret_or_2 = self.$replacement()))) { return self.$replacement()['$empty?']()['$!']() } else { - return $ret_or_9 + return $ret_or_2 }; } - }, $Action_insertion$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$contract', $Action_contract$7 = function $$contract() { + $def(self, '$contract', function $$contract() { var self = this, range = nil; if ($truthy(self['$empty?']())) { - self.$raise("Empty actions can not be contracted")}; + self.$raise("Empty actions can not be contracted") + }; if ($truthy(self['$insertion?']())) { - return self}; + return self + }; range = self.range.$with($hash2(["begin_pos", "end_pos"], {"begin_pos": self.$children().$first().$range().$begin_pos(), "end_pos": self.$children().$last().$range().$end_pos()})); return self.$with($hash2(["range"], {"range": range})); - }, $Action_contract$7.$$arity = 0); + }, 0); - Opal.def(self, '$moved', $Action_moved$8 = function $$moved(source_buffer, offset) { - var $$9, self = this, moved_range = nil; + $def(self, '$moved', function $$moved(source_buffer, offset) { + var self = this, moved_range = nil; - moved_range = $$$($$$($$$('::', 'Parser'), 'Source'), 'Range').$new(source_buffer, $rb_plus(self.range.$begin_pos(), offset), $rb_plus(self.range.$end_pos(), offset)); - return self.$with($hash2(["range", "children"], {"range": moved_range, "children": $send(self.$children(), 'map', [], ($$9 = function(child){var self = $$9.$$s == null ? this : $$9.$$s; - + moved_range = $$$($$$($$$('Parser'), 'Source'), 'Range').$new(source_buffer, $rb_plus(self.range.$begin_pos(), offset), $rb_plus(self.range.$end_pos(), offset)); + return self.$with($hash2(["range", "children"], {"range": moved_range, "children": $send(self.$children(), 'map', [], function $$3(child){ - if (child == null) { - child = nil; - }; - return child.$moved(source_buffer, offset);}, $$9.$$s = self, $$9.$$arity = 1, $$9))})); - }, $Action_moved$8.$$arity = 2); + if (child == null) child = nil;; + return child.$moved(source_buffer, offset);}, 1)})); + }, 2); self.$protected(); self.$attr_reader("children"); - Opal.def(self, '$with', $Action_with$10 = function($kwargs) { + $def(self, '$with', function $Action_with$4($kwargs) { var range, enforcer, children, insert_before, replacement, insert_after, self = this; @@ -5976,255 +5283,184 @@ Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { }; range = $kwargs.$$smap["range"]; - if (range == null) { - range = self.range - }; + if (range == null) range = self.range; enforcer = $kwargs.$$smap["enforcer"]; - if (enforcer == null) { - enforcer = self.enforcer - }; + if (enforcer == null) enforcer = self.enforcer; children = $kwargs.$$smap["children"]; - if (children == null) { - children = self.children - }; + if (children == null) children = self.children; insert_before = $kwargs.$$smap["insert_before"]; - if (insert_before == null) { - insert_before = self.insert_before - }; + if (insert_before == null) insert_before = self.insert_before; replacement = $kwargs.$$smap["replacement"]; - if (replacement == null) { - replacement = self.replacement - }; + if (replacement == null) replacement = self.replacement; insert_after = $kwargs.$$smap["insert_after"]; - if (insert_after == null) { - insert_after = self.insert_after - }; + if (insert_after == null) insert_after = self.insert_after; if ($truthy(replacement)) { - children = self.$swallow(children)}; + children = self.$swallow(children) + }; return self.$class().$new(range, enforcer, $hash2(["children", "insert_before", "replacement", "insert_after"], {"children": children, "insert_before": insert_before, "replacement": replacement, "insert_after": insert_after})); - }, $Action_with$10.$$arity = -1); + }, -1); - Opal.def(self, '$do_combine', $Action_do_combine$11 = function $$do_combine(action) { + $def(self, '$do_combine', function $$do_combine(action) { var self = this; - if (action.$range()['$=='](self.range)) { + if ($eqeq(action.$range(), self.range)) { return self.$merge(action) } else { return self.$place_in_hierarchy(action) } - }, $Action_do_combine$11.$$arity = 1); + }, 1); - Opal.def(self, '$place_in_hierarchy', $Action_place_in_hierarchy$12 = function $$place_in_hierarchy(action) { + $def(self, '$place_in_hierarchy', function $$place_in_hierarchy(action) { var self = this, family = nil, extra_sibbling = nil; family = self.$analyse_hierarchy(action); if ($truthy(family['$[]']("fusible"))) { - return self.$fuse_deletions(action, family['$[]']("fusible"), [].concat(Opal.to_a(family['$[]']("sibbling_left"))).concat(Opal.to_a(family['$[]']("child"))).concat(Opal.to_a(family['$[]']("sibbling_right")))) + return self.$fuse_deletions(action, family['$[]']("fusible"), [].concat($to_a(family['$[]']("sibbling_left"))).concat($to_a(family['$[]']("child"))).concat($to_a(family['$[]']("sibbling_right")))) } else { - extra_sibbling = (function() {if ($truthy(family['$[]']("parent"))) { - return family['$[]']("parent").$do_combine(action) - } else if ($truthy(family['$[]']("child"))) { - return action.$with($hash2(["children", "enforcer"], {"children": family['$[]']("child"), "enforcer": self.enforcer})).$combine_children(action.$children()) - } else { - return action - }; return nil; })(); - return self.$with($hash2(["children"], {"children": [].concat(Opal.to_a(family['$[]']("sibbling_left"))).concat([extra_sibbling]).concat(Opal.to_a(family['$[]']("sibbling_right")))})); + extra_sibbling = ($truthy(family['$[]']("parent")) ? (family['$[]']("parent").$do_combine(action)) : ($truthy(family['$[]']("child")) ? (action.$with($hash2(["children", "enforcer"], {"children": family['$[]']("child"), "enforcer": self.enforcer})).$combine_children(action.$children())) : (action))); + return self.$with($hash2(["children"], {"children": [].concat($to_a(family['$[]']("sibbling_left"))).concat([extra_sibbling]).concat($to_a(family['$[]']("sibbling_right")))})); }; - }, $Action_place_in_hierarchy$12.$$arity = 1); + }, 1); - Opal.def(self, '$combine_children', $Action_combine_children$13 = function $$combine_children(more_children) { - var $$14, self = this; - - return $send(more_children, 'inject', [self], ($$14 = function(parent, new_child){var self = $$14.$$s == null ? this : $$14.$$s; + $def(self, '$combine_children', function $$combine_children(more_children) { + var self = this; + return $send(more_children, 'inject', [self], function $$5(parent, new_child){ - if (parent == null) { - parent = nil; - }; + if (parent == null) parent = nil;; - if (new_child == null) { - new_child = nil; - }; - return parent.$place_in_hierarchy(new_child);}, $$14.$$s = self, $$14.$$arity = 2, $$14)) - }, $Action_combine_children$13.$$arity = 1); + if (new_child == null) new_child = nil;; + return parent.$place_in_hierarchy(new_child);}, 2) + }, 1); - Opal.def(self, '$fuse_deletions', $Action_fuse_deletions$15 = function $$fuse_deletions(action, fusible, other_sibblings) { + $def(self, '$fuse_deletions', function $$fuse_deletions(action, fusible, other_sibblings) { var self = this, without_fusible = nil, fused_range = nil, fused_deletion = nil; without_fusible = self.$with($hash2(["children"], {"children": other_sibblings})); - fused_range = $send([action].concat(Opal.to_a(fusible)), 'map', [], "range".$to_proc()).$inject("join"); + fused_range = $send([action].concat($to_a(fusible)), 'map', [], "range".$to_proc()).$inject("join"); fused_deletion = action.$with($hash2(["range"], {"range": fused_range})); return without_fusible.$do_combine(fused_deletion); - }, $Action_fuse_deletions$15.$$arity = 3); + }, 3); - Opal.def(self, '$bsearch_child_index', $Action_bsearch_child_index$16 = function $$bsearch_child_index(from) { - var $$17, $iter = $Action_bsearch_child_index$16.$$p, $yield = $iter || nil, self = this, size = nil, $ret_or_10 = nil; + $def(self, '$bsearch_child_index', function $$bsearch_child_index(from) { + var $yield = $$bsearch_child_index.$$p || nil, self = this, size = nil, $ret_or_1 = nil; - if ($iter) $Action_bsearch_child_index$16.$$p = null; + delete $$bsearch_child_index.$$p; - if (from == null) { - from = 0; - }; + if (from == null) from = 0;; size = self.children.$size(); - if ($truthy(($ret_or_10 = $send(Opal.Range.$new(from,size, true), 'bsearch', [], ($$17 = function(i){var self = $$17.$$s == null ? this : $$17.$$s; + if ($truthy(($ret_or_1 = $send(Opal.Range.$new(from,size, true), 'bsearch', [], function $$6(i){var self = $$6.$$s == null ? this : $$6.$$s; if (self.children == null) self.children = nil; - if (i == null) { - i = nil; - }; - return Opal.yield1($yield, self.children['$[]'](i));;}, $$17.$$s = self, $$17.$$arity = 1, $$17))))) { - return $ret_or_10 + if (i == null) i = nil;; + return Opal.yield1($yield, self.children['$[]'](i));;}, {$$arity: 1, $$s: self})))) { + return $ret_or_1 } else { return size }; - }, $Action_bsearch_child_index$16.$$arity = -1); + }, -1); - Opal.def(self, '$analyse_hierarchy', $Action_analyse_hierarchy$18 = function $$analyse_hierarchy(action) { - var $$19, $$20, self = this, r = nil, left_index = nil, start = nil, right_index = nil, center = nil, $case = nil, parent = nil, overlap_left = nil, overlap_right = nil, $ret_or_11 = nil, $ret_or_12 = nil, contained = nil, fusible = nil; + $def(self, '$analyse_hierarchy', function $$analyse_hierarchy(action) { + var self = this, r = nil, left_index = nil, start = nil, right_index = nil, center = nil, $ret_or_1 = nil, parent = nil, overlap_left = nil, overlap_right = nil, contained = nil, fusible = nil; r = action.$range(); - left_index = $send(self, 'bsearch_child_index', [], ($$19 = function(child){var self = $$19.$$s == null ? this : $$19.$$s; - + left_index = $send(self, 'bsearch_child_index', [], function $$7(child){ - if (child == null) { - child = nil; - }; - return $rb_gt(child.$range().$end_pos(), r.$begin_pos());}, $$19.$$s = self, $$19.$$arity = 1, $$19)); - start = (function() {if (left_index['$=='](0)) { - return 0 - } else { - return $rb_minus(left_index, 1) - }; return nil; })(); - right_index = $send(self, 'bsearch_child_index', [start], ($$20 = function(child){var self = $$20.$$s == null ? this : $$20.$$s; - + if (child == null) child = nil;; + return $rb_gt(child.$range().$end_pos(), r.$begin_pos());}, 1); + start = ($eqeq(left_index, 0) ? (0) : ($rb_minus(left_index, 1))); + right_index = $send(self, 'bsearch_child_index', [start], function $$8(child){ - if (child == null) { - child = nil; - }; - return $rb_ge(child.$range().$begin_pos(), r.$end_pos());}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + if (child == null) child = nil;; + return $rb_ge(child.$range().$begin_pos(), r.$end_pos());}, 1); center = $rb_minus(right_index, left_index); - $case = center; - if ((0)['$===']($case)) {nil} - else if ((-1)['$===']($case)) { - left_index = $rb_minus(left_index, 1); - right_index = $rb_plus(right_index, 1); - parent = self.children['$[]'](left_index);} - else { - overlap_left = self.children['$[]'](left_index).$range().$begin_pos()['$<=>'](r.$begin_pos()); - overlap_right = self.children['$[]']($rb_minus(right_index, 1)).$range().$end_pos()['$<=>'](r.$end_pos()); - if ($truthy((function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = center['$=='](1)))) { - return $rb_le(overlap_left, 0) - } else { - return $ret_or_12 - }; return nil; })()))) { - return $rb_ge(overlap_right, 0) - } else { - return $ret_or_11 - }; return nil; })())) { - parent = self.children['$[]'](left_index) - } else { - - contained = self.children['$[]'](Opal.Range.$new(left_index,right_index, true)); - fusible = self.$check_fusible(action, (function() {if ($truthy($rb_lt(overlap_left, 0))) { - return contained.$shift() - } else { - return nil - }; return nil; })(), (function() {if ($truthy($rb_gt(overlap_right, 0))) { - return contained.$pop() + if (!$eqeqeq(0, ($ret_or_1 = center))) { + if ($eqeqeq(-1, $ret_or_1)) { + + left_index = $rb_minus(left_index, 1); + right_index = $rb_plus(right_index, 1); + parent = self.children['$[]'](left_index); } else { - return nil - }; return nil; })()); - };}; + + overlap_left = self.children['$[]'](left_index).$range().$begin_pos()['$<=>'](r.$begin_pos()); + overlap_right = self.children['$[]']($rb_minus(right_index, 1)).$range().$end_pos()['$<=>'](r.$end_pos()); + if ((($eqeq(center, 1) && ($truthy($rb_le(overlap_left, 0)))) && ($truthy($rb_ge(overlap_right, 0))))) { + parent = self.children['$[]'](left_index) + } else { + + contained = self.children['$[]'](Opal.Range.$new(left_index,right_index, true)); + fusible = self.$check_fusible(action, ($truthy($rb_lt(overlap_left, 0)) ? (contained.$shift()) : nil), ($truthy($rb_gt(overlap_right, 0)) ? (contained.$pop()) : nil)); + }; + } + }; return $hash2(["parent", "sibbling_left", "sibbling_right", "fusible", "child"], {"parent": parent, "sibbling_left": self.children['$[]'](Opal.Range.$new(0,left_index, true)), "sibbling_right": self.children['$[]'](Opal.Range.$new(right_index,self.children.$size(), true)), "fusible": fusible, "child": contained}); - }, $Action_analyse_hierarchy$18.$$arity = 1); + }, 1); - Opal.def(self, '$check_fusible', $Action_check_fusible$21 = function $$check_fusible(action, $a) { - var $post_args, fusible, $$22, self = this; + $def(self, '$check_fusible', function $$check_fusible(action, $a) { + var $post_args, fusible, self = this; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); fusible = $post_args;; fusible['$compact!'](); if ($truthy(fusible['$empty?']())) { - return nil}; - $send(fusible, 'each', [], ($$22 = function(child){var self = $$22.$$s == null ? this : $$22.$$s, $$23, kind = nil, $ret_or_13 = nil; + return nil + }; + $send(fusible, 'each', [], function $$9(child){var self = $$9.$$s == null ? this : $$9.$$s, kind = nil; if (self.enforcer == null) self.enforcer = nil; - if (child == null) { - child = nil; - }; - kind = (function() {if ($truthy((function() {if ($truthy(($ret_or_13 = action['$insertion?']()))) { - return $ret_or_13 - } else { - return child['$insertion?']() - }; return nil; })())) { - return "crossing_insertions" - } else { - return "crossing_deletions" - }; return nil; })(); - return $send(self.enforcer, 'call', [kind], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; - - return $hash2(["range", "conflict"], {"range": action.$range(), "conflict": child.$range()})}, $$23.$$s = self, $$23.$$arity = 0, $$23));}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + if (child == null) child = nil;; + kind = (($truthy(action['$insertion?']()) || ($truthy(child['$insertion?']()))) ? ("crossing_insertions") : ("crossing_deletions")); + return $send(self.enforcer, 'call', [kind], function $$10(){ + return $hash2(["range", "conflict"], {"range": action.$range(), "conflict": child.$range()})}, 0);}, {$$arity: 1, $$s: self}); return fusible; - }, $Action_check_fusible$21.$$arity = -2); + }, -2); - Opal.def(self, '$merge', $Action_merge$24 = function $$merge(action) { - var self = this, $ret_or_14 = nil; + $def(self, '$merge', function $$merge(action) { + var self = this, $ret_or_1 = nil; self.$call_enforcer_for_merge(action); - return self.$with($hash2(["insert_before", "replacement", "insert_after"], {"insert_before": "" + (action.$insert_before()) + (self.$insert_before()), "replacement": (function() {if ($truthy(($ret_or_14 = action.$replacement()))) { - return $ret_or_14 - } else { - return self.replacement - }; return nil; })(), "insert_after": "" + (self.$insert_after()) + (action.$insert_after())})).$combine_children(action.$children()); - }, $Action_merge$24.$$arity = 1); + return self.$with($hash2(["insert_before", "replacement", "insert_after"], {"insert_before": "" + (action.$insert_before()) + (self.$insert_before()), "replacement": ($truthy(($ret_or_1 = action.$replacement())) ? ($ret_or_1) : (self.replacement)), "insert_after": "" + (self.$insert_after()) + (action.$insert_after())})).$combine_children(action.$children()); + }, 1); - Opal.def(self, '$call_enforcer_for_merge', $Action_call_enforcer_for_merge$25 = function $$call_enforcer_for_merge(action) { - var $$26, self = this; + $def(self, '$call_enforcer_for_merge', function $$call_enforcer_for_merge(action) { + var self = this; - return $send(self.enforcer, 'call', ["different_replacements"], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s, $ret_or_15 = nil, $ret_or_16 = nil; + return $send(self.enforcer, 'call', ["different_replacements"], function $$11(){var self = $$11.$$s == null ? this : $$11.$$s; if (self.replacement == null) self.replacement = nil; if (self.range == null) self.range = nil; - if ($truthy((function() {if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = self.replacement))) { - return action.$replacement() - } else { - return $ret_or_16 - }; return nil; })()))) { - return self.replacement['$!='](action.$replacement()) - } else { - return $ret_or_15 - }; return nil; })())) { + if ((($truthy(self.replacement) && ($truthy(action.$replacement()))) && ($neqeq(self.replacement, action.$replacement())))) { return $hash2(["range", "replacement", "other_replacement"], {"range": self.range, "replacement": action.$replacement(), "other_replacement": self.replacement}) } else { return nil - }}, $$26.$$s = self, $$26.$$arity = 0, $$26)) - }, $Action_call_enforcer_for_merge$25.$$arity = 1); - return (Opal.def(self, '$swallow', $Action_swallow$27 = function $$swallow(children) { - var $$28, self = this; + }}, {$$arity: 0, $$s: self}) + }, 1); + return $def(self, '$swallow', function $$swallow(children) { + var self = this; - $send(self.enforcer, 'call', ["swallowed_insertions"], ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s, insertions = nil; + $send(self.enforcer, 'call', ["swallowed_insertions"], function $$12(){var self = $$12.$$s == null ? this : $$12.$$s, insertions = nil; if (self.range == null) self.range = nil; @@ -6233,22 +5469,18 @@ Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) { return nil } else { return $hash2(["range", "conflict"], {"range": self.range, "conflict": $send(insertions, 'map', [], "range".$to_proc())}) - };}, $$28.$$s = self, $$28.$$arity = 0, $$28)); + };}, {$$arity: 0, $$s: self}); return []; - }, $Action_swallow$27.$$arity = 1), nil) && 'swallow'; - })($$($nesting, 'TreeRewriter'), null, $nesting) + }, 1); + })($$('TreeRewriter'), null) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $range = Opal.range; +Opal.modules["parser/source/map"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $eqeq = Opal.eqeq, $range = Opal.range, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$attr_reader', '$freeze', '$line', '$alias_method', '$column', '$last_line', '$last_column', '$with', '$update_expression', '$==', '$class', '$reduce', '$map', '$instance_variables', '$instance_variable_get', '$send', '$inject', '$to_sym', '$[]', '$[]=', '$-', '$protected', '$tap', '$dup', '$to_proc']); + Opal.add_stubs('attr_reader,freeze,line,alias_method,column,last_line,last_column,with,update_expression,==,class,reduce,map,instance_variables,instance_variable_get,send,inject,to_sym,[],[]=,-,protected,tap,dup,to_proc'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6259,147 +5491,133 @@ Opal.modules["parser/source/map"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Map'); - var $nesting = [self].concat($parent_nesting), $Map_initialize$1, $Map_initialize_copy$2, $Map_node$eq$3, $Map_line$4, $Map_column$5, $Map_last_line$6, $Map_last_column$7, $Map_with_expression$8, $Map_$eq_eq$10, $Map_to_hash$12, $Map_with$14, $Map_update_expression$15; + var $proto = self.$$prototype; - self.$$prototype.node = self.$$prototype.expression = nil; + $proto.node = $proto.expression = nil; self.$attr_reader("node"); self.$attr_reader("expression"); - Opal.def(self, '$initialize', $Map_initialize$1 = function $$initialize(expression) { + $def(self, '$initialize', function $$initialize(expression) { var self = this; return (self.expression = expression) - }, $Map_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$initialize_copy', $Map_initialize_copy$2 = function $$initialize_copy(other) { - var $iter = $Map_initialize_copy$2.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize_copy', function $$initialize_copy(other) { + var $yield = $$initialize_copy.$$p || nil, self = this; - if ($iter) $Map_initialize_copy$2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize_copy.$$p; - $send2(self, $find_super(self, 'initialize_copy', $Map_initialize_copy$2, false, true), 'initialize_copy', $zuper, $iter); + $send2(self, $find_super(self, 'initialize_copy', $$initialize_copy, false, true), 'initialize_copy', [other], $yield); return (self.node = nil); - }, $Map_initialize_copy$2.$$arity = 1); + }, 1); - Opal.def(self, '$node=', $Map_node$eq$3 = function(node) { + $def(self, '$node=', function $Map_node$eq$1(node) { var self = this; self.node = node; self.$freeze(); return self.node; - }, $Map_node$eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$line', $Map_line$4 = function $$line() { + $def(self, '$line', function $$line() { var self = this; return self.expression.$line() - }, $Map_line$4.$$arity = 0); + }, 0); self.$alias_method("first_line", "line"); - Opal.def(self, '$column', $Map_column$5 = function $$column() { + $def(self, '$column', function $$column() { var self = this; return self.expression.$column() - }, $Map_column$5.$$arity = 0); + }, 0); - Opal.def(self, '$last_line', $Map_last_line$6 = function $$last_line() { + $def(self, '$last_line', function $$last_line() { var self = this; return self.expression.$last_line() - }, $Map_last_line$6.$$arity = 0); + }, 0); - Opal.def(self, '$last_column', $Map_last_column$7 = function $$last_column() { + $def(self, '$last_column', function $$last_column() { var self = this; return self.expression.$last_column() - }, $Map_last_column$7.$$arity = 0); + }, 0); - Opal.def(self, '$with_expression', $Map_with_expression$8 = function $$with_expression(expression_l) { - var $$9, self = this; - - return $send(self, 'with', [], ($$9 = function(map){var self = $$9.$$s == null ? this : $$9.$$s; + $def(self, '$with_expression', function $$with_expression(expression_l) { + var self = this; + return $send(self, 'with', [], function $$2(map){ - if (map == null) { - map = nil; - }; - return map.$update_expression(expression_l);}, $$9.$$s = self, $$9.$$arity = 1, $$9)) - }, $Map_with_expression$8.$$arity = 1); + if (map == null) map = nil;; + return map.$update_expression(expression_l);}, 1) + }, 1); - Opal.def(self, '$==', $Map_$eq_eq$10 = function(other) { - var $$11, self = this, $ret_or_1 = nil; + $def(self, '$==', function $Map_$eq_eq$3(other) { + var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = other.$class()['$=='](self.$class())))) { - return $send(self.$instance_variables(), 'map', [], ($$11 = function(ivar){var self = $$11.$$s == null ? this : $$11.$$s; + return $send(self.$instance_variables(), 'map', [], function $$4(ivar){var self = $$4.$$s == null ? this : $$4.$$s; - if (ivar == null) { - ivar = nil; - }; - return self.$instance_variable_get(ivar)['$=='](other.$send("instance_variable_get", ivar));}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$reduce("&") + if (ivar == null) ivar = nil;; + return self.$instance_variable_get(ivar)['$=='](other.$send("instance_variable_get", ivar));}, {$$arity: 1, $$s: self}).$reduce("&") } else { return $ret_or_1 } - }, $Map_$eq_eq$10.$$arity = 1); + }, 1); - Opal.def(self, '$to_hash', $Map_to_hash$12 = function $$to_hash() { - var $$13, self = this; + $def(self, '$to_hash', function $$to_hash() { + var self = this; - return $send(self.$instance_variables(), 'inject', [$hash2([], {})], ($$13 = function(hash, ivar){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + return $send(self.$instance_variables(), 'inject', [$hash2([], {})], function $$5(hash, ivar){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; - if (hash == null) { - hash = nil; - }; + if (hash == null) hash = nil;; - if (ivar == null) { - ivar = nil; + if (ivar == null) ivar = nil;; + if ($eqeq(ivar.$to_sym(), "@node")) { + return hash; }; - if (ivar.$to_sym()['$==']("@node")) { - return hash;}; $writer = [ivar['$[]']($range(1, -1, false)).$to_sym(), self.$instance_variable_get(ivar)]; - $send(hash, '[]=', Opal.to_a($writer)); + $send(hash, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return hash;}, $$13.$$s = self, $$13.$$arity = 2, $$13)) - }, $Map_to_hash$12.$$arity = 0); + return hash;}, {$$arity: 2, $$s: self}) + }, 0); self.$protected(); - Opal.def(self, '$with', $Map_with$14 = function() { - var $iter = $Map_with$14.$$p, block = $iter || nil, self = this; + $def(self, '$with', function $Map_with$6() { + var block = $Map_with$6.$$p || nil, self = this; - if ($iter) $Map_with$14.$$p = null; + delete $Map_with$6.$$p; - - if ($iter) $Map_with$14.$$p = null;; + ; return $send(self.$dup(), 'tap', [], block.$to_proc()); - }, $Map_with$14.$$arity = 0); - return (Opal.def(self, '$update_expression', $Map_update_expression$15 = function $$update_expression(expression_l) { + }, 0); + return $def(self, '$update_expression', function $$update_expression(expression_l) { var self = this; return (self.expression = expression_l) - }, $Map_update_expression$15.$$arity = 1), nil) && 'update_expression'; - })($nesting[0], null, $nesting) + }, 1); + })($nesting[0], null) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/operator"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/operator"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6408,33 +5626,31 @@ Opal.modules["parser/source/map/operator"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Operator'); - var $nesting = [self].concat($parent_nesting), $Operator_initialize$1; - + self.$attr_reader("operator"); - return (Opal.def(self, '$initialize', $Operator_initialize$1 = function $$initialize(operator, expression) { - var $iter = $Operator_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(operator, expression) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Operator_initialize$1.$$p = null; + delete $$initialize.$$p; self.operator = operator; - return $send2(self, $find_super(self, 'initialize', $Operator_initialize$1, false, true), 'initialize', [expression], null); - }, $Operator_initialize$1.$$arity = 2), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression], null); + }, 2); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/collection"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/collection"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6443,34 +5659,32 @@ Opal.modules["parser/source/map/collection"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Collection'); - var $nesting = [self].concat($parent_nesting), $Collection_initialize$1; - + self.$attr_reader("begin"); self.$attr_reader("end"); - return (Opal.def(self, '$initialize', $Collection_initialize$1 = function $$initialize(begin_l, end_l, expression_l) { - var $a, $iter = $Collection_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Collection_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Collection_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Collection_initialize$1.$$arity = 3), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 3); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/constant"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["parser/source/map/constant"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + Opal.add_stubs('attr_reader,with,update_operator,protected'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6479,55 +5693,50 @@ Opal.modules["parser/source/map/constant"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Constant'); - var $nesting = [self].concat($parent_nesting), $Constant_initialize$1, $Constant_with_operator$2, $Constant_update_operator$4; - + self.$attr_reader("double_colon"); self.$attr_reader("name"); self.$attr_reader("operator"); - Opal.def(self, '$initialize', $Constant_initialize$1 = function $$initialize(double_colon, name, expression) { - var $a, $iter = $Constant_initialize$1.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(double_colon, name, expression) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Constant_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [double_colon, name], (self.double_colon = $a[0]), (self.name = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Constant_initialize$1, false, true), 'initialize', [expression], null); - }, $Constant_initialize$1.$$arity = 3); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression], null); + }, 3); - Opal.def(self, '$with_operator', $Constant_with_operator$2 = function $$with_operator(operator_l) { - var $$3, self = this; - - return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + $def(self, '$with_operator', function $$with_operator(operator_l) { + var self = this; + return $send(self, 'with', [], function $$1(map){ - if (map == null) { - map = nil; - }; - return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Constant_with_operator$2.$$arity = 1); + if (map == null) map = nil;; + return map.$update_operator(operator_l);}, 1) + }, 1); self.$protected(); - return (Opal.def(self, '$update_operator', $Constant_update_operator$4 = function $$update_operator(operator_l) { + return $def(self, '$update_operator', function $$update_operator(operator_l) { var self = this; return (self.operator = operator_l) - }, $Constant_update_operator$4.$$arity = 1), nil) && 'update_operator'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + }, 1); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/variable"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["parser/source/map/variable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + Opal.add_stubs('attr_reader,with,update_operator,protected'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6536,58 +5745,51 @@ Opal.modules["parser/source/map/variable"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Variable'); - var $nesting = [self].concat($parent_nesting), $Variable_initialize$1, $Variable_with_operator$2, $Variable_update_operator$4; - + self.$attr_reader("name"); self.$attr_reader("operator"); - Opal.def(self, '$initialize', $Variable_initialize$1 = function $$initialize(name_l, expression_l) { - var $iter = $Variable_initialize$1.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(name_l, expression_l) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Variable_initialize$1.$$p = null; + delete $$initialize.$$p; - if (expression_l == null) { - expression_l = name_l; - }; + if (expression_l == null) expression_l = name_l;; self.name = name_l; - return $send2(self, $find_super(self, 'initialize', $Variable_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Variable_initialize$1.$$arity = -2); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, -2); - Opal.def(self, '$with_operator', $Variable_with_operator$2 = function $$with_operator(operator_l) { - var $$3, self = this; - - return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + $def(self, '$with_operator', function $$with_operator(operator_l) { + var self = this; + return $send(self, 'with', [], function $$1(map){ - if (map == null) { - map = nil; - }; - return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Variable_with_operator$2.$$arity = 1); + if (map == null) map = nil;; + return map.$update_operator(operator_l);}, 1) + }, 1); self.$protected(); - return (Opal.def(self, '$update_operator', $Variable_update_operator$4 = function $$update_operator(operator_l) { + return $def(self, '$update_operator', function $$update_operator(operator_l) { var self = this; return (self.operator = operator_l) - }, $Variable_update_operator$4.$$arity = 1), nil) && 'update_operator'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + }, 1); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/keyword"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/keyword"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6596,36 +5798,34 @@ Opal.modules["parser/source/map/keyword"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Keyword'); - var $nesting = [self].concat($parent_nesting), $Keyword_initialize$1; - + self.$attr_reader("keyword"); self.$attr_reader("begin"); self.$attr_reader("end"); - return (Opal.def(self, '$initialize', $Keyword_initialize$1 = function $$initialize(keyword_l, begin_l, end_l, expression_l) { - var $a, $iter = $Keyword_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Keyword_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Keyword_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Keyword_initialize$1.$$arity = 4), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 4); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/definition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/definition"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$join']); + Opal.add_stubs('attr_reader,join'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6634,40 +5834,39 @@ Opal.modules["parser/source/map/definition"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Definition'); - var $nesting = [self].concat($parent_nesting), $Definition_initialize$1; + var $proto = self.$$prototype; - self.$$prototype.keyword = self.$$prototype.end = nil; + $proto.keyword = $proto.end = nil; self.$attr_reader("keyword"); self.$attr_reader("operator"); self.$attr_reader("name"); self.$attr_reader("end"); - return (Opal.def(self, '$initialize', $Definition_initialize$1 = function $$initialize(keyword_l, operator_l, name_l, end_l) { - var $iter = $Definition_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, operator_l, name_l, end_l) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Definition_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; self.operator = operator_l; self.name = name_l; self.end = end_l; - return $send2(self, $find_super(self, 'initialize', $Definition_initialize$1, false, true), 'initialize', [self.keyword.$join(self.end)], null); - }, $Definition_initialize$1.$$arity = 4), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [self.keyword.$join(self.end)], null); + }, 4); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/method_definition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; +Opal.modules["parser/source/map/method_definition"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$join']); + Opal.add_stubs('attr_reader,join'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6676,46 +5875,41 @@ Opal.modules["parser/source/map/method_definition"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'MethodDefinition'); - var $nesting = [self].concat($parent_nesting), $MethodDefinition_initialize$1; + var $proto = self.$$prototype; - self.$$prototype.keyword = nil; + $proto.keyword = nil; self.$attr_reader("keyword"); self.$attr_reader("operator"); self.$attr_reader("name"); self.$attr_reader("end"); self.$attr_reader("assignment"); - return (Opal.def(self, '$initialize', $MethodDefinition_initialize$1 = function $$initialize(keyword_l, operator_l, name_l, end_l, assignment_l, body_l) { - var $iter = $MethodDefinition_initialize$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil; + return $def(self, '$initialize', function $$initialize(keyword_l, operator_l, name_l, end_l, assignment_l, body_l) { + var $yield = $$initialize.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $MethodDefinition_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; self.operator = operator_l; self.name = name_l; self.end = end_l; self.assignment = assignment_l; - return $send2(self, $find_super(self, 'initialize', $MethodDefinition_initialize$1, false, true), 'initialize', [self.keyword.$join((function() {if ($truthy(($ret_or_1 = end_l))) { - return $ret_or_1 - } else { - return body_l - }; return nil; })())], null); - }, $MethodDefinition_initialize$1.$$arity = 6), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [self.keyword.$join(($truthy(($ret_or_1 = end_l)) ? ($ret_or_1) : (body_l)))], null); + }, 6); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/send"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["parser/source/map/send"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + Opal.add_stubs('attr_reader,with,update_operator,protected'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6724,13 +5918,12 @@ Opal.modules["parser/source/map/send"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Send'); - var $nesting = [self].concat($parent_nesting), $Send_initialize$1, $Send_with_operator$2, $Send_update_operator$4; - + self.$attr_reader("dot"); self.$attr_reader("selector"); @@ -6738,45 +5931,41 @@ Opal.modules["parser/source/map/send"] = function(Opal) { self.$attr_reader("begin"); self.$attr_reader("end"); - Opal.def(self, '$initialize', $Send_initialize$1 = function $$initialize(dot_l, selector_l, begin_l, end_l, expression_l) { - var $a, $iter = $Send_initialize$1.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(dot_l, selector_l, begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Send_initialize$1.$$p = null; + delete $$initialize.$$p; self.dot = dot_l; self.selector = selector_l; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Send_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Send_initialize$1.$$arity = 5); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 5); - Opal.def(self, '$with_operator', $Send_with_operator$2 = function $$with_operator(operator_l) { - var $$3, self = this; - - return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + $def(self, '$with_operator', function $$with_operator(operator_l) { + var self = this; + return $send(self, 'with', [], function $$1(map){ - if (map == null) { - map = nil; - }; - return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Send_with_operator$2.$$arity = 1); + if (map == null) map = nil;; + return map.$update_operator(operator_l);}, 1) + }, 1); self.$protected(); - return (Opal.def(self, '$update_operator', $Send_update_operator$4 = function $$update_operator(operator_l) { + return $def(self, '$update_operator', function $$update_operator(operator_l) { var self = this; return (self.operator = operator_l) - }, $Send_update_operator$4.$$arity = 1), nil) && 'update_operator'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + }, 1); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/index"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["parser/source/map/index"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + Opal.add_stubs('attr_reader,with,update_operator,protected'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6785,56 +5974,51 @@ Opal.modules["parser/source/map/index"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Index'); - var $nesting = [self].concat($parent_nesting), $Index_initialize$1, $Index_with_operator$2, $Index_update_operator$4; - + self.$attr_reader("begin"); self.$attr_reader("end"); self.$attr_reader("operator"); - Opal.def(self, '$initialize', $Index_initialize$1 = function $$initialize(begin_l, end_l, expression_l) { - var $a, $iter = $Index_initialize$1.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Index_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; self.operator = nil; - return $send2(self, $find_super(self, 'initialize', $Index_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Index_initialize$1.$$arity = 3); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 3); - Opal.def(self, '$with_operator', $Index_with_operator$2 = function $$with_operator(operator_l) { - var $$3, self = this; - - return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + $def(self, '$with_operator', function $$with_operator(operator_l) { + var self = this; + return $send(self, 'with', [], function $$1(map){ - if (map == null) { - map = nil; - }; - return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Index_with_operator$2.$$arity = 1); + if (map == null) map = nil;; + return map.$update_operator(operator_l);}, 1) + }, 1); self.$protected(); - return (Opal.def(self, '$update_operator', $Index_update_operator$4 = function $$update_operator(operator_l) { + return $def(self, '$update_operator', function $$update_operator(operator_l) { var self = this; return (self.operator = operator_l) - }, $Index_update_operator$4.$$arity = 1), nil) && 'update_operator'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + }, 1); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/condition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/condition"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6843,37 +6027,35 @@ Opal.modules["parser/source/map/condition"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Condition'); - var $nesting = [self].concat($parent_nesting), $Condition_initialize$1; - + self.$attr_reader("keyword"); self.$attr_reader("begin"); self.$attr_reader("else"); self.$attr_reader("end"); - return (Opal.def(self, '$initialize', $Condition_initialize$1 = function $$initialize(keyword_l, begin_l, else_l, end_l, expression_l) { - var $a, $iter = $Condition_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, begin_l, else_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Condition_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; $a = [begin_l, else_l, end_l], (self.begin = $a[0]), (self["else"] = $a[1]), (self.end = $a[2]), $a; - return $send2(self, $find_super(self, 'initialize', $Condition_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Condition_initialize$1.$$arity = 5), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 5); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/ternary"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/ternary"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6882,34 +6064,32 @@ Opal.modules["parser/source/map/ternary"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Ternary'); - var $nesting = [self].concat($parent_nesting), $Ternary_initialize$1; - + self.$attr_reader("question"); self.$attr_reader("colon"); - return (Opal.def(self, '$initialize', $Ternary_initialize$1 = function $$initialize(question_l, colon_l, expression_l) { - var $a, $iter = $Ternary_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(question_l, colon_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Ternary_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [question_l, colon_l], (self.question = $a[0]), (self.colon = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $Ternary_initialize$1, false, true), 'initialize', [expression_l], null); - }, $Ternary_initialize$1.$$arity = 3), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 3); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/for"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/for"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6918,35 +6098,33 @@ Opal.modules["parser/source/map/for"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'For'); - var $nesting = [self].concat($parent_nesting), $For_initialize$1; - + self.$attr_reader("keyword", "in"); self.$attr_reader("begin", "end"); - return (Opal.def(self, '$initialize', $For_initialize$1 = function $$initialize(keyword_l, in_l, begin_l, end_l, expression_l) { - var $a, $iter = $For_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, in_l, begin_l, end_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $For_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [keyword_l, in_l], (self.keyword = $a[0]), (self["in"] = $a[1]), $a; $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send2(self, $find_super(self, 'initialize', $For_initialize$1, false, true), 'initialize', [expression_l], null); - }, $For_initialize$1.$$arity = 5), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 5); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/rescue_body"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/rescue_body"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6955,37 +6133,35 @@ Opal.modules["parser/source/map/rescue_body"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'RescueBody'); - var $nesting = [self].concat($parent_nesting), $RescueBody_initialize$1; - + self.$attr_reader("keyword"); self.$attr_reader("assoc"); self.$attr_reader("begin"); - return (Opal.def(self, '$initialize', $RescueBody_initialize$1 = function $$initialize(keyword_l, assoc_l, begin_l, expression_l) { - var $iter = $RescueBody_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, assoc_l, begin_l, expression_l) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $RescueBody_initialize$1.$$p = null; + delete $$initialize.$$p; self.keyword = keyword_l; self.assoc = assoc_l; self.begin = begin_l; - return $send2(self, $find_super(self, 'initialize', $RescueBody_initialize$1, false, true), 'initialize', [expression_l], null); - }, $RescueBody_initialize$1.$$arity = 4), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 4); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/heredoc"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/heredoc"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -6994,35 +6170,33 @@ Opal.modules["parser/source/map/heredoc"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Heredoc'); - var $nesting = [self].concat($parent_nesting), $Heredoc_initialize$1; - + self.$attr_reader("heredoc_body"); self.$attr_reader("heredoc_end"); - return (Opal.def(self, '$initialize', $Heredoc_initialize$1 = function $$initialize(begin_l, body_l, end_l) { - var $iter = $Heredoc_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(begin_l, body_l, end_l) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Heredoc_initialize$1.$$p = null; + delete $$initialize.$$p; self.heredoc_body = body_l; self.heredoc_end = end_l; - return $send2(self, $find_super(self, 'initialize', $Heredoc_initialize$1, false, true), 'initialize', [begin_l], null); - }, $Heredoc_initialize$1.$$arity = 3), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [begin_l], null); + }, 3); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/source/map/objc_kwarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/source/map/objc_kwarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs('attr_reader'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7031,98 +6205,72 @@ Opal.modules["parser/source/map/objc_kwarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ObjcKwarg'); - var $nesting = [self].concat($parent_nesting), $ObjcKwarg_initialize$1; - + self.$attr_reader("keyword"); self.$attr_reader("operator"); self.$attr_reader("argument"); - return (Opal.def(self, '$initialize', $ObjcKwarg_initialize$1 = function $$initialize(keyword_l, operator_l, argument_l, expression_l) { - var $a, $iter = $ObjcKwarg_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(keyword_l, operator_l, argument_l, expression_l) { + var $a, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $ObjcKwarg_initialize$1.$$p = null; + delete $$initialize.$$p; $a = [keyword_l, operator_l, argument_l], (self.keyword = $a[0]), (self.operator = $a[1]), (self.argument = $a[2]), $a; - return $send2(self, $find_super(self, 'initialize', $ObjcKwarg_initialize$1, false, true), 'initialize', [expression_l], null); - }, $ObjcKwarg_initialize$1.$$arity = 4), nil) && 'initialize'; - })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [expression_l], null); + }, 4); + })($$('Map'), $$('Map')) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/syntax_error"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/syntax_error"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$message']); + Opal.add_stubs('attr_reader,message'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'SyntaxError'); - var $nesting = [self].concat($parent_nesting), $SyntaxError_initialize$1; - + self.$attr_reader("diagnostic"); - return (Opal.def(self, '$initialize', $SyntaxError_initialize$1 = function $$initialize(diagnostic) { - var $iter = $SyntaxError_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(diagnostic) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $SyntaxError_initialize$1.$$p = null; + delete $$initialize.$$p; self.diagnostic = diagnostic; - return $send2(self, $find_super(self, 'initialize', $SyntaxError_initialize$1, false, true), 'initialize', [diagnostic.$message()], null); - }, $SyntaxError_initialize$1.$$arity = 1), nil) && 'initialize'; - })($nesting[0], $$($nesting, 'StandardError'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [diagnostic.$message()], null); + }, 1); + })($nesting[0], $$('StandardError')) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/clobbering_error"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["parser/clobbering_error"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass; return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); - - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ClobberingError'); - - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return nil - })($nesting[0], $$($nesting, 'RuntimeError'), $nesting) + return ($klass($nesting[0], $$('RuntimeError'), 'ClobberingError'), nil) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/diagnostic"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["parser/diagnostic"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $truthy = Opal.truthy, $hash2 = Opal.hash2, $def = Opal.def, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $to_ary = Opal.to_ary, $rb_gt = Opal.rb_gt, $rb_times = Opal.rb_times, $send = Opal.send, $to_a = Opal.to_a, $rb_ge = Opal.rb_ge, $not = Opal.not, $neqeq = Opal.neqeq; - Opal.add_stubs(['$freeze', '$attr_reader', '$include?', '$raise', '$join', '$inspect', '$dup', '$compile', '$==', '$line', '$last_line', '$is?', '$+', '$message', '$render_line', '$first_line_only', '$last_line_only', '$-', '$source_buffer', '$decompose_position', '$end_pos', '$>', '$private', '$source_line', '$*', '$length', '$each', '$line_range', '$intersect', '$column_range', '$size', '$[]=', '$!', '$>=', '$map', '$name', '$!=', '$resize', '$=~', '$source', '$adjust']); + Opal.add_stubs('freeze,attr_reader,include?,raise,join,inspect,dup,compile,is?,==,line,last_line,+,message,render_line,first_line_only,last_line_only,-,source_buffer,decompose_position,end_pos,>,private,source_line,*,length,each,line_range,intersect,column_range,size,[]=,>=,!,map,name,!=,resize,=~,source,adjust'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7131,56 +6279,44 @@ Opal.modules["parser/diagnostic"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Diagnostic'); - var $nesting = [self].concat($parent_nesting), $Diagnostic_initialize$1, $Diagnostic_message$2, $Diagnostic_render$3, $Diagnostic_render_line$4, $Diagnostic_first_line_only$7, $Diagnostic_last_line_only$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.reason = self.$$prototype["arguments"] = self.$$prototype.location = self.$$prototype.level = self.$$prototype.highlights = nil; + $proto.reason = $proto["arguments"] = $proto.location = $proto.level = $proto.highlights = nil; - Opal.const_set($nesting[0], 'LEVELS', ["note", "warning", "error", "fatal"].$freeze()); + $const_set($nesting[0], 'LEVELS', ["note", "warning", "error", "fatal"].$freeze()); self.$attr_reader("level", "reason", "arguments"); self.$attr_reader("location", "highlights"); - Opal.def(self, '$initialize', $Diagnostic_initialize$1 = function $$initialize(level, reason, arguments$, location, highlights) { + $def(self, '$initialize', function $$initialize(level, reason, arguments$, location, highlights) { var self = this, $ret_or_1 = nil; - if (highlights == null) { - highlights = []; + if (highlights == null) highlights = [];; + if (!$truthy($$('LEVELS')['$include?'](level))) { + self.$raise($$('ArgumentError'), "" + ("Diagnostic#level must be one of " + ($$('LEVELS').$join(", ")) + "; ") + ("" + (level.$inspect()) + " provided.")) }; - if ($truthy($$($nesting, 'LEVELS')['$include?'](level))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + ("" + "Diagnostic#level must be one of " + ($$($nesting, 'LEVELS').$join(", ")) + "; ") + ("" + (level.$inspect()) + " provided.")) - }; - if ($truthy(location)) { - } else { + if (!$truthy(location)) { self.$raise("Expected a location") }; self.level = level; self.reason = reason; - self["arguments"] = (function() {if ($truthy(($ret_or_1 = arguments$))) { - return $ret_or_1 - } else { - return $hash2([], {}) - }; return nil; })().$dup().$freeze(); + self["arguments"] = ($truthy(($ret_or_1 = arguments$)) ? ($ret_or_1) : ($hash2([], {}))).$dup().$freeze(); self.location = location; self.highlights = highlights.$dup().$freeze(); return self.$freeze(); - }, $Diagnostic_initialize$1.$$arity = -5); + }, -5); - Opal.def(self, '$message', $Diagnostic_message$2 = function $$message() { + $def(self, '$message', function $$message() { var self = this; - return $$($nesting, 'Messages').$compile(self.reason, self["arguments"]) - }, $Diagnostic_message$2.$$arity = 0); + return $$('Messages').$compile(self.reason, self["arguments"]) + }, 0); - Opal.def(self, '$render', $Diagnostic_render$3 = function $$render() { - var $a, $b, self = this, $ret_or_2 = nil, first_line = nil, last_line = nil, num_lines = nil, buffer = nil, last_lineno = nil, last_column = nil; + $def(self, '$render', function $$render() { + var $a, $b, self = this, first_line = nil, last_line = nil, num_lines = nil, buffer = nil, last_lineno = nil, last_column = nil; - if ($truthy((function() {if ($truthy(($ret_or_2 = self.location.$line()['$=='](self.location.$last_line())))) { - return $ret_or_2 - } else { - return self.location['$is?']("\n") - }; return nil; })())) { + if (($eqeq(self.location.$line(), self.location.$last_line()) || ($truthy(self.location['$is?']("\n"))))) { return $rb_plus(["" + (self.location) + ": " + (self.level) + ": " + (self.$message())], self.$render_line(self.location)) } else { @@ -7188,141 +6324,127 @@ Opal.modules["parser/diagnostic"] = function(Opal) { last_line = self.$last_line_only(self.location); num_lines = $rb_plus($rb_minus(self.location.$last_line(), self.location.$line()), 1); buffer = self.location.$source_buffer(); - $b = buffer.$decompose_position(self.location.$end_pos()), $a = Opal.to_ary($b), (last_lineno = ($a[0] == null ? nil : $a[0])), (last_column = ($a[1] == null ? nil : $a[1])), $b; + $b = buffer.$decompose_position(self.location.$end_pos()), $a = $to_ary($b), (last_lineno = ($a[0] == null ? nil : $a[0])), (last_column = ($a[1] == null ? nil : $a[1])), $b; return $rb_plus($rb_plus(["" + (self.location) + "-" + (last_lineno) + ":" + (last_column) + ": " + (self.level) + ": " + (self.$message())], self.$render_line(first_line, $rb_gt(num_lines, 2), false)), self.$render_line(last_line, false, true)); } - }, $Diagnostic_render$3.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$render_line', $Diagnostic_render_line$4 = function $$render_line(range, ellipsis, range_end) { - var $$5, $$6, self = this, source_line = nil, highlight_line = nil, $ret_or_3 = nil, $writer = nil; + $def(self, '$render_line', function $$render_line(range, ellipsis, range_end) { + var self = this, source_line = nil, highlight_line = nil, $writer = nil; - if (ellipsis == null) { - ellipsis = false; - }; + if (ellipsis == null) ellipsis = false;; - if (range_end == null) { - range_end = false; - }; + if (range_end == null) range_end = false;; source_line = range.$source_line(); highlight_line = $rb_times(" ", source_line.$length()); - $send(self.highlights, 'each', [], ($$5 = function(highlight){var self = $$5.$$s == null ? this : $$5.$$s, line_range = nil, $writer = nil; + $send(self.highlights, 'each', [], function $$1(highlight){var line_range = nil, $writer = nil; - if (highlight == null) { - highlight = nil; - }; + if (highlight == null) highlight = nil;; line_range = range.$source_buffer().$line_range(range.$line()); if ($truthy((highlight = highlight.$intersect(line_range)))) { $writer = [highlight.$column_range(), $rb_times("~", highlight.$size())]; - $send(highlight_line, '[]=', Opal.to_a($writer)); + $send(highlight_line, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil - };}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + };}, 1); if ($truthy(range['$is?']("\n"))) { highlight_line = $rb_plus(highlight_line, "^") - } else if ($truthy((function() {if ($truthy(($ret_or_3 = range_end['$!']()))) { - return $rb_ge(range.$size(), 1) - } else { - return $ret_or_3 - }; return nil; })())) { + } else if (($not(range_end) && ($truthy($rb_ge(range.$size(), 1))))) { $writer = [range.$column_range(), $rb_plus("^", $rb_times("~", $rb_minus(range.$size(), 1)))]; - $send(highlight_line, '[]=', Opal.to_a($writer)); + $send(highlight_line, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } else { $writer = [range.$column_range(), $rb_times("~", range.$size())]; - $send(highlight_line, '[]=', Opal.to_a($writer)); + $send(highlight_line, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; if ($truthy(ellipsis)) { - highlight_line = $rb_plus(highlight_line, "...")}; - return $send([source_line, highlight_line], 'map', [], ($$6 = function(line){var self = $$6.$$s == null ? this : $$6.$$s; - + highlight_line = $rb_plus(highlight_line, "...") + }; + return $send([source_line, highlight_line], 'map', [], function $$2(line){ - if (line == null) { - line = nil; - }; - return "" + (range.$source_buffer().$name()) + ":" + (range.$line()) + ": " + (line);}, $$6.$$s = self, $$6.$$arity = 1, $$6)); - }, $Diagnostic_render_line$4.$$arity = -2); + if (line == null) line = nil;; + return "" + (range.$source_buffer().$name()) + ":" + (range.$line()) + ": " + (line);}, 1); + }, -2); - Opal.def(self, '$first_line_only', $Diagnostic_first_line_only$7 = function $$first_line_only(range) { - var self = this; - - if ($truthy(range.$line()['$!='](range.$last_line()))) { + $def(self, '$first_line_only', function $$first_line_only(range) { + + if ($neqeq(range.$line(), range.$last_line())) { return range.$resize(range.$source()['$=~'](/\n/)) } else { return range } - }, $Diagnostic_first_line_only$7.$$arity = 1); - return (Opal.def(self, '$last_line_only', $Diagnostic_last_line_only$8 = function $$last_line_only(range) { - var self = this; - - if ($truthy(range.$line()['$!='](range.$last_line()))) { + }, 1); + return $def(self, '$last_line_only', function $$last_line_only(range) { + + if ($neqeq(range.$line(), range.$last_line())) { return range.$adjust($hash2(["begin_pos"], {"begin_pos": range.$source()['$=~'](/[^\n]*$/)})) } else { return range } - }, $Diagnostic_last_line_only$8.$$arity = 1), nil) && 'last_line_only'; + }, 1); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/diagnostic/engine"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["parser/diagnostic/engine"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy; - Opal.add_stubs(['$attr_accessor', '$ignore?', '$call', '$raise?', '$raise', '$protected', '$==', '$level']); + Opal.add_stubs('attr_accessor,ignore?,call,raise?,raise,protected,==,level'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Engine'); - var $nesting = [self].concat($parent_nesting), $Engine_initialize$1, $Engine_process$2, $Engine_ignore$ques$3, $Engine_raise$ques$4; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.consumer = self.$$prototype.ignore_warnings = self.$$prototype.all_errors_are_fatal = nil; + $proto.consumer = $proto.ignore_warnings = $proto.all_errors_are_fatal = nil; self.$attr_accessor("consumer"); self.$attr_accessor("all_errors_are_fatal"); self.$attr_accessor("ignore_warnings"); - Opal.def(self, '$initialize', $Engine_initialize$1 = function $$initialize(consumer) { + $def(self, '$initialize', function $$initialize(consumer) { var self = this; - if (consumer == null) { - consumer = nil; - }; + if (consumer == null) consumer = nil;; self.consumer = consumer; self.all_errors_are_fatal = false; return (self.ignore_warnings = false); - }, $Engine_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$process', $Engine_process$2 = function $$process(diagnostic) { + $def(self, '$process', function $$process(diagnostic) { var self = this; - if ($truthy(self['$ignore?'](diagnostic))) { - } else if ($truthy(self.consumer)) { - self.consumer.$call(diagnostic)}; + if (!$truthy(self['$ignore?'](diagnostic))) { + if ($truthy(self.consumer)) { + self.consumer.$call(diagnostic) + } + }; if ($truthy(self['$raise?'](diagnostic))) { - self.$raise($$$($$($nesting, 'Parser'), 'SyntaxError'), diagnostic)}; + self.$raise($$$($$('Parser'), 'SyntaxError'), diagnostic) + }; return self; - }, $Engine_process$2.$$arity = 1); + }, 1); self.$protected(); - Opal.def(self, '$ignore?', $Engine_ignore$ques$3 = function(diagnostic) { + $def(self, '$ignore?', function $Engine_ignore$ques$1(diagnostic) { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.ignore_warnings))) { @@ -7330,29 +6452,24 @@ Opal.modules["parser/diagnostic/engine"] = function(Opal) { } else { return $ret_or_1 } - }, $Engine_ignore$ques$3.$$arity = 1); - return (Opal.def(self, '$raise?', $Engine_raise$ques$4 = function(diagnostic) { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil; + }, 1); + return $def(self, '$raise?', function $Engine_raise$ques$2(diagnostic) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.all_errors_are_fatal))) { - return diagnostic.$level()['$==']("error") - } else { - return $ret_or_3 - }; return nil; })()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.all_errors_are_fatal)) ? (diagnostic.$level()['$==']("error")) : ($ret_or_2))))) { + return $ret_or_1 } else { return diagnostic.$level()['$==']("fatal") } - }, $Engine_raise$ques$4.$$arity = 1), nil) && 'raise?'; - })($$($nesting, 'Diagnostic'), null, $nesting) + }, 1); + })($$('Diagnostic'), null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/static_environment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["parser/static_environment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def; - Opal.add_stubs(['$reset', '$[]', '$push', '$dup', '$pop', '$add', '$to_sym', '$include?', '$declare', '$declared?', '$empty?']); + Opal.add_stubs('reset,[],push,dup,pop,add,to_sym,include?,declare,declared?,empty?'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -7361,464 +6478,410 @@ Opal.modules["parser/static_environment"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'StaticEnvironment'); - var $nesting = [self].concat($parent_nesting), $StaticEnvironment_initialize$1, $StaticEnvironment_reset$2, $StaticEnvironment_extend_static$3, $StaticEnvironment_extend_dynamic$4, $StaticEnvironment_unextend$5, $StaticEnvironment_declare$6, $StaticEnvironment_declared$ques$7, $StaticEnvironment_declare_forward_args$8, $StaticEnvironment_declared_forward_args$ques$9, $StaticEnvironment_declare_anonymous_blockarg$10, $StaticEnvironment_declared_anonymous_blockarg$ques$11, $StaticEnvironment_empty$ques$12; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.stack = self.$$prototype.variables = nil; + $proto.stack = $proto.variables = nil; - Opal.const_set($nesting[0], 'FORWARD_ARGS', "FORWARD_ARGS"); - Opal.const_set($nesting[0], 'ANONYMOUS_BLOCKARG', "ANONYMOUS_BLOCKARG"); + $const_set($nesting[0], 'FORWARD_ARGS', "FORWARD_ARGS"); + $const_set($nesting[0], 'ANONYMOUS_BLOCKARG', "ANONYMOUS_BLOCKARG"); - Opal.def(self, '$initialize', $StaticEnvironment_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return self.$reset() - }, $StaticEnvironment_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $StaticEnvironment_reset$2 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; - self.variables = $$($nesting, 'Set')['$[]'](); + self.variables = $$('Set')['$[]'](); return (self.stack = []); - }, $StaticEnvironment_reset$2.$$arity = 0); + }, 0); - Opal.def(self, '$extend_static', $StaticEnvironment_extend_static$3 = function $$extend_static() { + $def(self, '$extend_static', function $$extend_static() { var self = this; self.stack.$push(self.variables); - self.variables = $$($nesting, 'Set')['$[]'](); + self.variables = $$('Set')['$[]'](); return self; - }, $StaticEnvironment_extend_static$3.$$arity = 0); + }, 0); - Opal.def(self, '$extend_dynamic', $StaticEnvironment_extend_dynamic$4 = function $$extend_dynamic() { + $def(self, '$extend_dynamic', function $$extend_dynamic() { var self = this; self.stack.$push(self.variables); self.variables = self.variables.$dup(); return self; - }, $StaticEnvironment_extend_dynamic$4.$$arity = 0); + }, 0); - Opal.def(self, '$unextend', $StaticEnvironment_unextend$5 = function $$unextend() { + $def(self, '$unextend', function $$unextend() { var self = this; self.variables = self.stack.$pop(); return self; - }, $StaticEnvironment_unextend$5.$$arity = 0); + }, 0); - Opal.def(self, '$declare', $StaticEnvironment_declare$6 = function $$declare(name) { + $def(self, '$declare', function $$declare(name) { var self = this; self.variables.$add(name.$to_sym()); return self; - }, $StaticEnvironment_declare$6.$$arity = 1); + }, 1); - Opal.def(self, '$declared?', $StaticEnvironment_declared$ques$7 = function(name) { + $def(self, '$declared?', function $StaticEnvironment_declared$ques$1(name) { var self = this; return self.variables['$include?'](name.$to_sym()) - }, $StaticEnvironment_declared$ques$7.$$arity = 1); + }, 1); - Opal.def(self, '$declare_forward_args', $StaticEnvironment_declare_forward_args$8 = function $$declare_forward_args() { + $def(self, '$declare_forward_args', function $$declare_forward_args() { var self = this; - return self.$declare($$($nesting, 'FORWARD_ARGS')) - }, $StaticEnvironment_declare_forward_args$8.$$arity = 0); + return self.$declare($$('FORWARD_ARGS')) + }, 0); - Opal.def(self, '$declared_forward_args?', $StaticEnvironment_declared_forward_args$ques$9 = function() { + $def(self, '$declared_forward_args?', function $StaticEnvironment_declared_forward_args$ques$2() { var self = this; - return self['$declared?']($$($nesting, 'FORWARD_ARGS')) - }, $StaticEnvironment_declared_forward_args$ques$9.$$arity = 0); + return self['$declared?']($$('FORWARD_ARGS')) + }, 0); - Opal.def(self, '$declare_anonymous_blockarg', $StaticEnvironment_declare_anonymous_blockarg$10 = function $$declare_anonymous_blockarg() { + $def(self, '$declare_anonymous_blockarg', function $$declare_anonymous_blockarg() { var self = this; - return self.$declare($$($nesting, 'ANONYMOUS_BLOCKARG')) - }, $StaticEnvironment_declare_anonymous_blockarg$10.$$arity = 0); + return self.$declare($$('ANONYMOUS_BLOCKARG')) + }, 0); - Opal.def(self, '$declared_anonymous_blockarg?', $StaticEnvironment_declared_anonymous_blockarg$ques$11 = function() { + $def(self, '$declared_anonymous_blockarg?', function $StaticEnvironment_declared_anonymous_blockarg$ques$3() { var self = this; - return self['$declared?']($$($nesting, 'ANONYMOUS_BLOCKARG')) - }, $StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity = 0); - return (Opal.def(self, '$empty?', $StaticEnvironment_empty$ques$12 = function() { + return self['$declared?']($$('ANONYMOUS_BLOCKARG')) + }, 0); + return $def(self, '$empty?', function $StaticEnvironment_empty$ques$4() { var self = this; return self.stack['$empty?']() - }, $StaticEnvironment_empty$ques$12.$$arity = 0), nil) && 'empty?'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/lexer"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash = Opal.hash, $truthy = Opal.truthy, $hash2 = Opal.hash2, $range = Opal.range, $gvars = Opal.gvars; +Opal.modules["parser/lexer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $const_set = Opal.const_set, $hash = Opal.hash, $def = Opal.def, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $hash2 = Opal.hash2, $rb_plus = Opal.rb_plus, $to_ary = Opal.to_ary, $rb_le = Opal.rb_le, $eqeqeq = Opal.eqeqeq, $rb_gt = Opal.rb_gt, $neqeq = Opal.neqeq, $not = Opal.not, $rb_ge = Opal.rb_ge, $range = Opal.range, $rb_lt = Opal.rb_lt, $gvars = Opal.gvars; - Opal.add_stubs(['$attr_accessor', '$private', '$_lex_trans_keys=', '$-', '$_lex_key_spans=', '$_lex_index_offsets=', '$_lex_indicies=', '$_lex_trans_targs=', '$_lex_trans_actions=', '$_lex_to_state_actions=', '$_lex_from_state_actions=', '$_lex_eof_trans=', '$lex_start=', '$lex_error=', '$lex_en_interp_words=', '$lex_en_interp_string=', '$lex_en_plain_words=', '$lex_en_plain_string=', '$lex_en_interp_backslash_delimited=', '$lex_en_plain_backslash_delimited=', '$lex_en_interp_backslash_delimited_words=', '$lex_en_plain_backslash_delimited_words=', '$lex_en_regexp_modifiers=', '$lex_en_expr_variable=', '$lex_en_expr_fname=', '$lex_en_expr_endfn=', '$lex_en_expr_dot=', '$lex_en_expr_arg=', '$lex_en_expr_cmdarg=', '$lex_en_expr_endarg=', '$lex_en_expr_mid=', '$lex_en_expr_beg=', '$lex_en_expr_labelarg=', '$lex_en_expr_value=', '$lex_en_expr_end=', '$lex_en_leading_dot=', '$lex_en_line_comment=', '$lex_en_line_begin=', '$freeze', '$ord', '$union', '$chars', '$attr_reader', '$reset', '$lex_en_line_begin', '$class', '$new', '$source', '$==', '$encoding', '$unpack', '$[]', '$lex_en_expr_dot', '$lex_en_expr_fname', '$lex_en_expr_value', '$lex_en_expr_beg', '$lex_en_expr_mid', '$lex_en_expr_arg', '$lex_en_expr_cmdarg', '$lex_en_expr_end', '$lex_en_expr_endarg', '$lex_en_expr_endfn', '$lex_en_expr_labelarg', '$lex_en_interp_string', '$lex_en_interp_words', '$lex_en_plain_string', '$fetch', '$invert', '$push', '$count', '$pop', '$any?', '$shift', '$send', '$+', '$size', '$<=', '$===', '$<<', '$>', '$!=', '$emit_comment', '$tok', '$literal', '$flush_string', '$extend_content', '$emit', '$heredoc?', '$saved_herebody_s=', '$start_interp_brace', '$[]=', '$diagnostic', '$range', '$str_s', '$gsub', '$version?', '$nest_and_try_closing', '$heredoc_e', '$pop_literal', '$infer_indent_level', '$words?', '$!', '$eof_codepoint?', '$extend_space', '$extend_string', '$>=', '$active?', '$slice', '$start_with?', '$chr', '$munge_escape?', '$regexp?', '$match', '$squiggly_heredoc?', '$supports_line_continuation_via_slash?', '$include?', '$scan', '$join', '$=~', '$to_i', '$stack_pop', '$emit_table', '$push_literal', '$in_argdef', '$arg_or_cmdarg', '$<', '$emit_do', '$nil?', '$declared?', '$last', '$getbyte', '$inspect', '$end_with?', '$empty?', '$index', '$call', '$Float', '$to_f', '$length', '$lambda', '$Rational', '$Complex', '$each', '$encode_escape', '$%', '$in_kwarg', '$end_interp_brace_and_try_closing', '$lexpop', '$saved_herebody_s', '$next_state_for_literal', '$rstrip', '$&', '$|', '$lex_error', '$protected', '$force_encoding', '$process', '$backslash_delimited?', '$interpolate?', '$lex_en_interp_backslash_delimited_words', '$lex_en_plain_backslash_delimited_words', '$lex_en_plain_words', '$lex_en_interp_backslash_delimited', '$lex_en_plain_backslash_delimited', '$dedent_level', '$type', '$lex_en_regexp_modifiers', '$upcase']); + Opal.add_stubs('attr_accessor,private,_lex_trans_keys=,-,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_interp_words=,lex_en_interp_string=,lex_en_plain_words=,lex_en_plain_string=,lex_en_interp_backslash_delimited=,lex_en_plain_backslash_delimited=,lex_en_interp_backslash_delimited_words=,lex_en_plain_backslash_delimited_words=,lex_en_regexp_modifiers=,lex_en_expr_variable=,lex_en_expr_fname=,lex_en_expr_endfn=,lex_en_expr_dot=,lex_en_expr_arg=,lex_en_expr_cmdarg=,lex_en_expr_endarg=,lex_en_expr_mid=,lex_en_expr_beg=,lex_en_expr_labelarg=,lex_en_expr_value=,lex_en_expr_end=,lex_en_leading_dot=,lex_en_line_comment=,lex_en_line_begin=,freeze,ord,union,chars,attr_reader,reset,lex_en_line_begin,class,new,source,==,encoding,unpack,[],lex_en_expr_dot,lex_en_expr_fname,lex_en_expr_value,lex_en_expr_beg,lex_en_expr_mid,lex_en_expr_arg,lex_en_expr_cmdarg,lex_en_expr_end,lex_en_expr_endarg,lex_en_expr_endfn,lex_en_expr_labelarg,lex_en_interp_string,lex_en_interp_words,lex_en_plain_string,fetch,invert,push,count,pop,any?,shift,send,+,size,<=,===,<<,>,!=,emit_comment,tok,literal,flush_string,extend_content,emit,heredoc?,saved_herebody_s=,start_interp_brace,[]=,diagnostic,range,str_s,gsub,version?,nest_and_try_closing,heredoc_e,pop_literal,infer_indent_level,!,eof_codepoint?,words?,extend_space,extend_string,active?,>=,slice,start_with?,chr,munge_escape?,match,regexp?,squiggly_heredoc?,supports_line_continuation_via_slash?,include?,scan,join,=~,to_i,stack_pop,emit_table,push_literal,in_argdef,arg_or_cmdarg,<,emit_do,declared?,nil?,last,getbyte,inspect,end_with?,empty?,index,call,Float,to_f,length,lambda,Rational,Complex,each,encode_escape,%,in_kwarg,end_interp_brace_and_try_closing,lexpop,saved_herebody_s,next_state_for_literal,rstrip,&,|,lex_error,protected,force_encoding,process,backslash_delimited?,interpolate?,lex_en_interp_backslash_delimited_words,lex_en_plain_backslash_delimited_words,lex_en_plain_words,lex_en_interp_backslash_delimited,lex_en_plain_backslash_delimited,dedent_level,type,lex_en_regexp_modifiers,upcase'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Lexer'); - var $nesting = [self].concat($parent_nesting), $Lexer_initialize$1, $Lexer_reset$2, $Lexer_source_buffer$eq$3, $Lexer_encoding$4, $Lexer_state$5, $Lexer_state$eq$6, $Lexer_push_cmdarg$7, $Lexer_pop_cmdarg$8, $Lexer_push_cond$9, $Lexer_pop_cond$10, $Lexer_dedent_level$11, $Lexer_advance$12, $Lexer_eof_codepoint$ques$42, $Lexer_version$ques$43, $Lexer_stack_pop$44, $Lexer_encode_escape$45, $Lexer_tok$46, $Lexer_range$47, $Lexer_emit$48, $Lexer_emit_table$49, $Lexer_emit_do$50, $Lexer_arg_or_cmdarg$51, $Lexer_emit_comment$52, $Lexer_diagnostic$53, $Lexer_push_literal$54, $Lexer_next_state_for_literal$55, $Lexer_literal$56, $Lexer_pop_literal$57, $Lexer$58, $writer = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $writer = nil, $proto = self.$$prototype; - self.$$prototype.source_buffer = self.$$prototype.source_pts = self.$$prototype.cs = self.$$prototype.cmdarg_stack = self.$$prototype.cmdarg = self.$$prototype.cond_stack = self.$$prototype.cond = self.$$prototype.dedent_level = self.$$prototype.token_queue = self.$$prototype.p = self.$$prototype.command_start = self.$$prototype.herebody_s = self.$$prototype.sharp_s = self.$$prototype.ts = self.$$prototype.te = self.$$prototype.top = self.$$prototype.stack = self.$$prototype.version = self.$$prototype.escape_s = self.$$prototype.escape = self.$$prototype.act = self.$$prototype.context = self.$$prototype.static_env = self.$$prototype.newline_s = self.$$prototype.lambda_stack = self.$$prototype.paren_nest = self.$$prototype.num_digits_s = self.$$prototype.num_suffix_s = self.$$prototype.num_base = self.$$prototype.num_xfrm = self.$$prototype.eq_begin_s = self.$$prototype.cs_before_block_comment = self.$$prototype.tokens = self.$$prototype.comments = self.$$prototype.diagnostics = self.$$prototype.literal_stack = nil; + $proto.source_buffer = $proto.source_pts = $proto.cs = $proto.cmdarg_stack = $proto.cmdarg = $proto.cond_stack = $proto.cond = $proto.dedent_level = $proto.token_queue = $proto.p = $proto.command_start = $proto.herebody_s = $proto.sharp_s = $proto.ts = $proto.te = $proto.top = $proto.stack = $proto.version = $proto.escape_s = $proto.escape = $proto.act = $proto.context = $proto.static_env = $proto.newline_s = $proto.lambda_stack = $proto.paren_nest = $proto.num_digits_s = $proto.num_suffix_s = $proto.num_base = $proto.num_xfrm = $proto.eq_begin_s = $proto.cs_before_block_comment = $proto.tokens = $proto.comments = $proto.diagnostics = $proto.literal_stack = nil; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_trans_keys"); return self.$private("_lex_trans_keys", "_lex_trans_keys="); })(Opal.get_singleton_class(self), $nesting); $writer = [[0, 0, 101, 101, 103, 103, 105, 105, 110, 110, 69, 69, 78, 78, 68, 68, 95, 95, 95, 95, 0, 26, 0, 127, 0, 127, 0, 127, 0, 127, 0, 45, 0, 120, 0, 120, 0, 92, 0, 120, 0, 120, 0, 45, 0, 120, 0, 120, 67, 99, 45, 45, 0, 92, 0, 120, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 45, 0, 120, 0, 120, 0, 92, 0, 120, 0, 120, 0, 45, 0, 120, 0, 120, 67, 99, 45, 45, 0, 92, 0, 120, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 58, 58, 58, 46, 46, 0, 127, 58, 58, 60, 60, 62, 62, 10, 10, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 115, 115, 99, 99, 117, 117, 101, 101, 108, 116, 101, 101, 115, 115, 115, 115, 105, 105, 108, 108, 105, 105, 108, 108, 58, 58, 0, 127, 10, 10, 0, 127, 9, 92, 10, 10, 9, 92, 58, 58, 98, 98, 101, 101, 103, 103, 105, 105, 110, 110, 0, 127, 61, 61, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 10, 10, 0, 127, 0, 127, 61, 126, 93, 93, 0, 127, 0, 127, 10, 10, 34, 34, 10, 10, 39, 39, 0, 127, 10, 96, 96, 96, 0, 45, 0, 120, 0, 120, 0, 92, 0, 120, 0, 120, 0, 45, 0, 120, 0, 120, 67, 99, 45, 45, 0, 92, 0, 120, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 58, 58, 58, 0, 127, 43, 57, 48, 57, 48, 57, 48, 57, 48, 57, 115, 115, 99, 99, 117, 117, 101, 101, 99, 99, 117, 117, 101, 101, 0, 127, 58, 58, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 60, 60, 10, 10, 9, 92, 9, 92, 10, 10, 10, 10, 10, 10, 10, 10, 46, 46, 0, 95, 9, 32, 0, 0, 10, 10, 10, 10, 98, 98, 9, 32, 10, 10, 95, 95, 0, 92, 9, 32, 36, 123, 0, 127, 48, 57, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 48, 102, 48, 102, 0, 0, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 92, 36, 123, 0, 127, 48, 57, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 48, 102, 48, 102, 0, 0, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 92, 9, 32, 0, 26, 0, 92, 0, 26, 0, 35, 36, 123, 0, 127, 48, 57, 0, 127, 0, 26, 0, 35, 9, 32, 36, 123, 0, 127, 48, 57, 0, 127, 0, 32, 9, 32, 65, 122, 65, 122, 36, 64, 0, 127, 48, 57, 0, 127, 0, 127, 0, 127, 0, 127, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 0, 127, 0, 127, 48, 57, 115, 115, 38, 38, 42, 42, 64, 64, 58, 58, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 93, 93, 10, 10, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 124, 124, 0, 127, 0, 127, 9, 32, 10, 10, 10, 10, 46, 46, 10, 10, 0, 0, 0, 127, 0, 127, 61, 61, 0, 0, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 38, 38, 42, 42, 64, 64, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 93, 93, 10, 10, 124, 124, 0, 126, 0, 127, 0, 61, 9, 61, 9, 61, 0, 0, 9, 61, 9, 62, 46, 46, 46, 46, 58, 58, 9, 32, 0, 0, 0, 127, 0, 0, 9, 124, 0, 0, 10, 10, 10, 10, 0, 0, 9, 61, 58, 58, 60, 60, 62, 62, 9, 32, 10, 10, 0, 127, 102, 102, 101, 101, 110, 110, 104, 104, 0, 127, 0, 127, 0, 127, 0, 0, 0, 127, 10, 10, 0, 123, 9, 32, 10, 10, 10, 10, 10, 10, 0, 0, 111, 111, 0, 0, 0, 127, 0, 127, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 61, 0, 0, 61, 126, 61, 61, 0, 0, 0, 0, 0, 0, 9, 32, 61, 61, 9, 32, 61, 126, 10, 10, 10, 10, 0, 127, 38, 61, 0, 0, 42, 61, 61, 61, 9, 92, 9, 92, 9, 92, 46, 46, 46, 46, 10, 10, 0, 26, 0, 127, 0, 127, 61, 61, 0, 0, 61, 126, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 61, 126, 0, 127, 48, 57, 38, 38, 42, 42, 64, 64, 60, 61, 62, 62, 61, 61, 61, 62, 0, 127, 48, 57, 0, 127, 124, 124, 64, 64, 60, 61, 0, 0, 10, 34, 10, 39, 96, 96, 62, 62, 61, 126, 61, 62, 0, 122, 0, 0, 0, 127, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 48, 102, 48, 102, 0, 0, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 48, 102, 48, 102, 0, 0, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 127, 0, 127, 0, 127, 0, 0, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 61, 126, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 61, 124, 0, 92, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 61, 61, 0, 0, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 0, 127, 0, 127, 48, 57, 61, 61, 38, 61, 0, 0, 0, 0, 42, 61, 61, 62, 46, 57, 46, 46, 10, 10, 48, 101, 48, 95, 46, 120, 48, 114, 43, 57, 48, 105, 102, 102, 0, 0, 101, 105, 0, 0, 0, 0, 48, 114, 48, 114, 48, 114, 48, 114, 105, 114, 102, 102, 0, 0, 101, 105, 115, 115, 0, 0, 0, 0, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 46, 114, 48, 114, 46, 114, 48, 114, 58, 58, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 0, 127, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 10, 10, 0, 0, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 9, 92, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 61, 124, 0, 0, 9, 92, 9, 92, 9, 92, 46, 46, 46, 46, 10, 10, 46, 46, 10, 10, 10, 61, 10, 10, 10, 101, 10, 110, 10, 100, 10, 10, 0]]; - $send(self, '_lex_trans_keys=', Opal.to_a($writer)); + $send(self, '_lex_trans_keys=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_key_spans"); return self.$private("_lex_key_spans", "_lex_key_spans="); })(Opal.get_singleton_class(self), $nesting); $writer = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27, 128, 128, 128, 128, 46, 121, 121, 93, 121, 121, 46, 121, 121, 33, 1, 93, 121, 103, 128, 128, 128, 128, 46, 121, 121, 93, 121, 121, 46, 121, 121, 33, 1, 93, 121, 103, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 1, 1, 1, 128, 1, 1, 1, 1, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 128, 1, 128, 84, 1, 84, 1, 1, 1, 1, 1, 1, 128, 1, 84, 84, 84, 84, 84, 1, 128, 128, 66, 1, 128, 128, 1, 1, 1, 1, 128, 87, 1, 46, 121, 121, 93, 121, 121, 46, 121, 121, 33, 1, 93, 121, 103, 128, 128, 128, 128, 128, 128, 1, 1, 128, 15, 10, 10, 10, 10, 1, 1, 1, 1, 1, 1, 1, 128, 1, 84, 84, 84, 84, 84, 84, 1, 1, 84, 84, 1, 1, 1, 1, 1, 96, 24, 0, 1, 1, 1, 24, 1, 1, 93, 24, 88, 128, 10, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 55, 55, 0, 55, 55, 0, 46, 93, 93, 0, 0, 93, 55, 55, 0, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 93, 88, 128, 10, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 55, 55, 0, 55, 55, 0, 46, 93, 93, 0, 0, 93, 55, 55, 0, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 93, 24, 27, 93, 27, 36, 88, 128, 10, 128, 27, 36, 24, 88, 128, 10, 128, 33, 24, 58, 58, 29, 128, 10, 128, 128, 128, 128, 24, 0, 66, 1, 1, 128, 128, 10, 1, 1, 1, 1, 1, 2, 1, 66, 1, 2, 128, 128, 128, 128, 128, 128, 128, 1, 1, 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, 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, 128, 128, 128, 128, 128, 1, 128, 128, 24, 1, 1, 1, 1, 0, 128, 128, 1, 0, 24, 0, 66, 1, 1, 1, 1, 1, 2, 1, 66, 1, 2, 128, 1, 1, 1, 127, 128, 62, 53, 53, 0, 53, 54, 1, 1, 1, 24, 0, 128, 0, 116, 0, 1, 1, 0, 53, 1, 1, 1, 24, 1, 128, 1, 1, 1, 1, 128, 128, 128, 0, 128, 1, 124, 24, 1, 1, 1, 0, 1, 0, 128, 128, 24, 0, 1, 1, 1, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 4, 0, 66, 1, 0, 0, 0, 24, 1, 24, 66, 1, 1, 128, 24, 0, 20, 1, 84, 84, 84, 1, 1, 1, 27, 128, 128, 1, 0, 66, 2, 0, 0, 0, 0, 66, 128, 10, 1, 1, 1, 2, 1, 1, 2, 128, 10, 128, 1, 1, 2, 0, 25, 30, 1, 1, 66, 2, 123, 0, 128, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 55, 55, 0, 55, 55, 0, 46, 93, 93, 0, 0, 93, 55, 55, 0, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 128, 128, 128, 0, 1, 0, 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, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 66, 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, 0, 64, 93, 24, 0, 1, 1, 1, 0, 128, 128, 24, 0, 1, 1, 1, 0, 128, 128, 1, 0, 24, 0, 66, 1, 1, 128, 128, 10, 1, 24, 0, 0, 20, 2, 12, 1, 1, 54, 48, 75, 67, 15, 58, 1, 0, 5, 0, 0, 67, 67, 67, 67, 10, 1, 0, 5, 1, 0, 0, 67, 67, 67, 67, 67, 67, 67, 67, 69, 67, 69, 67, 1, 2, 1, 66, 1, 2, 128, 128, 0, 128, 128, 128, 128, 128, 128, 0, 1, 0, 0, 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, 84, 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, 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, 0, 64, 0, 84, 84, 84, 1, 1, 1, 1, 1, 52, 1, 92, 101, 91, 1]]; - $send(self, '_lex_key_spans=', Opal.to_a($writer)); + $send(self, '_lex_key_spans=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_index_offsets"); return self.$private("_lex_index_offsets", "_lex_index_offsets="); })(Opal.get_singleton_class(self), $nesting); $writer = [[0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 46, 175, 304, 433, 562, 609, 731, 853, 947, 1069, 1191, 1238, 1360, 1482, 1516, 1518, 1612, 1734, 1838, 1967, 2096, 2225, 2354, 2401, 2523, 2645, 2739, 2861, 2983, 3030, 3152, 3274, 3308, 3310, 3404, 3526, 3630, 3759, 3888, 4017, 4146, 4275, 4404, 4533, 4662, 4791, 4920, 5049, 5178, 5307, 5436, 5565, 5567, 5569, 5571, 5700, 5702, 5704, 5706, 5708, 5837, 5966, 6095, 6224, 6353, 6482, 6611, 6740, 6869, 6998, 7127, 7256, 7385, 7514, 7643, 7772, 7901, 8030, 8032, 8034, 8036, 8038, 8048, 8050, 8052, 8054, 8056, 8058, 8060, 8062, 8064, 8193, 8195, 8324, 8409, 8411, 8496, 8498, 8500, 8502, 8504, 8506, 8508, 8637, 8639, 8724, 8809, 8894, 8979, 9064, 9066, 9195, 9324, 9391, 9393, 9522, 9651, 9653, 9655, 9657, 9659, 9788, 9876, 9878, 9925, 10047, 10169, 10263, 10385, 10507, 10554, 10676, 10798, 10832, 10834, 10928, 11050, 11154, 11283, 11412, 11541, 11670, 11799, 11928, 11930, 11932, 12061, 12077, 12088, 12099, 12110, 12121, 12123, 12125, 12127, 12129, 12131, 12133, 12135, 12264, 12266, 12351, 12436, 12521, 12606, 12691, 12776, 12778, 12780, 12865, 12950, 12952, 12954, 12956, 12958, 12960, 13057, 13082, 13083, 13085, 13087, 13089, 13114, 13116, 13118, 13212, 13237, 13326, 13455, 13466, 13595, 13717, 13718, 13719, 13728, 13737, 13738, 13739, 13833, 13834, 13835, 13836, 13930, 13932, 13933, 13934, 13935, 14029, 14085, 14141, 14142, 14198, 14254, 14255, 14302, 14396, 14490, 14491, 14492, 14586, 14642, 14698, 14699, 14746, 14748, 14842, 14919, 14975, 15031, 15087, 15088, 15215, 15342, 15343, 15470, 15471, 15598, 15725, 15852, 15979, 15980, 16107, 16234, 16361, 16488, 16615, 16742, 16743, 16744, 16800, 16801, 16895, 16984, 17113, 17124, 17253, 17375, 17376, 17377, 17386, 17395, 17396, 17397, 17491, 17492, 17493, 17494, 17588, 17590, 17591, 17592, 17593, 17687, 17743, 17799, 17800, 17856, 17912, 17913, 17960, 18054, 18148, 18149, 18150, 18244, 18300, 18356, 18357, 18404, 18406, 18500, 18577, 18633, 18689, 18745, 18746, 18873, 19000, 19001, 19128, 19129, 19256, 19383, 19510, 19637, 19638, 19765, 19892, 20019, 20146, 20273, 20400, 20401, 20402, 20458, 20459, 20553, 20578, 20606, 20700, 20728, 20765, 20854, 20983, 20994, 21123, 21151, 21188, 21213, 21302, 21431, 21442, 21571, 21605, 21630, 21689, 21748, 21778, 21907, 21918, 22047, 22176, 22305, 22434, 22459, 22460, 22527, 22529, 22531, 22660, 22789, 22800, 22802, 22804, 22806, 22808, 22810, 22813, 22815, 22882, 22884, 22887, 23016, 23145, 23274, 23403, 23532, 23661, 23790, 23792, 23794, 23923, 24052, 24181, 24310, 24439, 24568, 24697, 24826, 24955, 25084, 25213, 25342, 25471, 25600, 25729, 25858, 25987, 26116, 26245, 26374, 26503, 26632, 26761, 26890, 27019, 27148, 27277, 27406, 27535, 27664, 27793, 27922, 28051, 28180, 28309, 28438, 28567, 28696, 28825, 28954, 29083, 29212, 29341, 29470, 29599, 29728, 29857, 29986, 30115, 30244, 30373, 30502, 30631, 30760, 30889, 31018, 31147, 31276, 31405, 31534, 31663, 31792, 31921, 32050, 32179, 32308, 32437, 32566, 32695, 32824, 32953, 33082, 33211, 33340, 33469, 33598, 33727, 33856, 33985, 34114, 34243, 34372, 34501, 34503, 34632, 34761, 34786, 34788, 34790, 34792, 34794, 34795, 34924, 35053, 35055, 35056, 35081, 35082, 35149, 35151, 35153, 35155, 35157, 35159, 35162, 35164, 35231, 35233, 35236, 35365, 35367, 35369, 35371, 35499, 35628, 35691, 35745, 35799, 35800, 35854, 35909, 35911, 35913, 35915, 35940, 35941, 36070, 36071, 36188, 36189, 36191, 36193, 36194, 36248, 36250, 36252, 36254, 36279, 36281, 36410, 36412, 36414, 36416, 36418, 36547, 36676, 36805, 36806, 36935, 36937, 37062, 37087, 37089, 37091, 37093, 37094, 37096, 37097, 37226, 37355, 37380, 37381, 37383, 37385, 37387, 37388, 37517, 37646, 37775, 37904, 38033, 38162, 38291, 38420, 38549, 38678, 38807, 38936, 39065, 39194, 39323, 39452, 39581, 39710, 39715, 39716, 39783, 39785, 39786, 39787, 39788, 39813, 39815, 39840, 39907, 39909, 39911, 40040, 40065, 40066, 40087, 40089, 40174, 40259, 40344, 40346, 40348, 40350, 40378, 40507, 40636, 40638, 40639, 40706, 40709, 40710, 40711, 40712, 40713, 40780, 40909, 40920, 40922, 40924, 40926, 40929, 40931, 40933, 40936, 41065, 41076, 41205, 41207, 41209, 41212, 41213, 41239, 41270, 41272, 41274, 41341, 41344, 41468, 41469, 41598, 41727, 41849, 41850, 41851, 41860, 41869, 41870, 41871, 41965, 41966, 41967, 41968, 42062, 42064, 42065, 42066, 42067, 42161, 42217, 42273, 42274, 42330, 42386, 42387, 42434, 42528, 42622, 42623, 42624, 42718, 42774, 42830, 42831, 42878, 42880, 42974, 43051, 43107, 43163, 43219, 43220, 43347, 43474, 43475, 43602, 43603, 43730, 43857, 43984, 44111, 44112, 44239, 44366, 44493, 44620, 44747, 44874, 45001, 45128, 45255, 45382, 45509, 45636, 45763, 45890, 46017, 46144, 46271, 46398, 46525, 46526, 46527, 46583, 46584, 46713, 46842, 46971, 46972, 46974, 46975, 47104, 47233, 47362, 47491, 47620, 47749, 47878, 48007, 48136, 48265, 48394, 48523, 48652, 48781, 48910, 49039, 49168, 49297, 49426, 49555, 49684, 49813, 49942, 50071, 50200, 50329, 50458, 50587, 50716, 50845, 50974, 51103, 51232, 51361, 51490, 51619, 51748, 51877, 52006, 52135, 52264, 52393, 52522, 52651, 52780, 52909, 53038, 53167, 53296, 53425, 53554, 53683, 53812, 53941, 54070, 54199, 54328, 54457, 54586, 54715, 54844, 54911, 55040, 55169, 55298, 55427, 55556, 55685, 55814, 55943, 56072, 56201, 56330, 56459, 56588, 56717, 56846, 56975, 57104, 57233, 57362, 57491, 57620, 57749, 57878, 58007, 58136, 58137, 58202, 58296, 58321, 58322, 58324, 58326, 58328, 58329, 58458, 58587, 58612, 58613, 58615, 58617, 58619, 58620, 58749, 58878, 58880, 58881, 58906, 58907, 58974, 58976, 58978, 59107, 59236, 59247, 59249, 59274, 59275, 59276, 59297, 59300, 59313, 59315, 59317, 59372, 59421, 59497, 59565, 59581, 59640, 59642, 59643, 59649, 59650, 59651, 59719, 59787, 59855, 59923, 59934, 59936, 59937, 59943, 59945, 59946, 59947, 60015, 60083, 60151, 60219, 60287, 60355, 60423, 60491, 60561, 60629, 60699, 60767, 60769, 60772, 60774, 60841, 60843, 60846, 60975, 61104, 61105, 61234, 61363, 61492, 61621, 61750, 61879, 61880, 61882, 61883, 61884, 62013, 62142, 62271, 62400, 62529, 62658, 62787, 62916, 63045, 63174, 63303, 63432, 63561, 63690, 63819, 63948, 64077, 64206, 64335, 64464, 64593, 64722, 64851, 64980, 65109, 65238, 65367, 65496, 65625, 65754, 65883, 66012, 66141, 66270, 66399, 66528, 66657, 66742, 66871, 67000, 67129, 67258, 67387, 67516, 67645, 67774, 67903, 68032, 68161, 68290, 68419, 68548, 68677, 68806, 68935, 69064, 69193, 69322, 69451, 69580, 69709, 69838, 69967, 70096, 70225, 70354, 70483, 70612, 70741, 70870, 70999, 71128, 71257, 71386, 71515, 71644, 71773, 71902, 72031, 72160, 72289, 72418, 72547, 72676, 72805, 72934, 73063, 73192, 73321, 73450, 73579, 73708, 73837, 73966, 74095, 74224, 74353, 74482, 74611, 74740, 74869, 74998, 75127, 75128, 75193, 75194, 75279, 75364, 75449, 75451, 75453, 75455, 75457, 75459, 75512, 75514, 75607, 75709, 75801]]; - $send(self, '_lex_index_offsets=', Opal.to_a($writer)); + $send(self, '_lex_index_offsets=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_indicies"); return self.$private("_lex_indicies", "_lex_indicies="); })(Opal.get_singleton_class(self), $nesting); $writer = [[1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 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, 14, 14, 12, 14, 12, 14, 14, 12, 12, 14, 14, 14, 15, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 14, 14, 14, 14, 14, 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, 12, 14, 12, 12, 13, 14, 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, 12, 12, 12, 14, 12, 13, 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, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 14, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 12, 14, 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, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 12, 12, 12, 12, 12, 12, 18, 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, 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, 12, 12, 12, 12, 12, 13, 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, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 12, 12, 12, 12, 12, 12, 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, 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, 12, 12, 12, 12, 12, 13, 19, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 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, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, 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, 22, 22, 22, 22, 22, 22, 22, 22, 25, 22, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 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, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 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, 22, 22, 22, 22, 22, 22, 22, 22, 25, 22, 19, 27, 27, 27, 19, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 19, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 27, 19, 30, 30, 30, 19, 30, 30, 30, 30, 30, 31, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 19, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 32, 30, 19, 30, 30, 30, 19, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 19, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 32, 30, 19, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 33, 20, 19, 34, 34, 34, 19, 34, 34, 34, 34, 34, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 19, 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, 34, 36, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 34, 34, 34, 34, 34, 34, 38, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 39, 34, 19, 34, 34, 34, 19, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 19, 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, 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, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 39, 34, 40, 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, 41, 19, 41, 19, 19, 42, 42, 42, 19, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 19, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 44, 42, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 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, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 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, 22, 22, 22, 22, 22, 22, 22, 22, 25, 22, 19, 45, 45, 45, 19, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 19, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 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, 46, 46, 46, 46, 46, 45, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 49, 49, 47, 49, 47, 49, 49, 47, 47, 49, 49, 49, 50, 49, 49, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 49, 49, 49, 49, 49, 49, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 49, 47, 47, 48, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 49, 47, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 47, 47, 47, 47, 47, 47, 47, 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, 47, 47, 47, 47, 49, 47, 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, 47, 47, 47, 47, 47, 49, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 47, 47, 47, 47, 47, 47, 53, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 48, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 47, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 48, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 47, 48, 54, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 55, 54, 57, 57, 57, 54, 57, 57, 57, 57, 57, 58, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 54, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 59, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 60, 57, 54, 57, 57, 57, 54, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 54, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 61, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 60, 57, 54, 62, 62, 62, 54, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 54, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 64, 62, 54, 65, 65, 65, 54, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 54, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 67, 65, 54, 65, 65, 65, 54, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 54, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 67, 65, 54, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 68, 55, 54, 69, 69, 69, 54, 69, 69, 69, 69, 69, 70, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 54, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 71, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 72, 69, 69, 69, 69, 69, 69, 73, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 74, 69, 54, 69, 69, 69, 54, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 54, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 74, 69, 75, 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, 76, 54, 76, 54, 54, 77, 77, 77, 54, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 54, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 79, 77, 54, 57, 57, 57, 54, 57, 57, 57, 57, 57, 58, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 54, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 61, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 60, 57, 54, 80, 80, 80, 54, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 54, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 80, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 84, 84, 82, 84, 82, 84, 84, 82, 82, 84, 84, 84, 85, 84, 84, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 84, 84, 84, 84, 84, 84, 84, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 84, 82, 82, 83, 84, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 84, 82, 83, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 82, 82, 82, 82, 82, 82, 82, 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, 82, 82, 82, 82, 84, 82, 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, 82, 82, 82, 82, 82, 84, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 82, 82, 82, 82, 82, 82, 88, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 83, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 83, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 83, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 83, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 91, 91, 89, 91, 89, 91, 91, 89, 89, 91, 91, 91, 92, 91, 91, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 91, 91, 91, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 91, 89, 89, 90, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 91, 89, 90, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 89, 89, 89, 89, 89, 89, 89, 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, 89, 89, 89, 89, 91, 89, 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, 89, 89, 89, 89, 89, 91, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 89, 89, 89, 89, 89, 89, 95, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 90, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 90, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 89, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 90, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 90, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 97, 97, 98, 97, 98, 97, 97, 98, 98, 97, 97, 97, 99, 97, 97, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 97, 97, 97, 97, 97, 97, 97, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 98, 97, 98, 98, 96, 97, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 98, 98, 98, 97, 98, 96, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 97, 98, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 98, 98, 98, 98, 98, 98, 102, 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, 98, 98, 98, 98, 101, 98, 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, 98, 98, 98, 98, 98, 101, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 98, 98, 98, 98, 98, 98, 98, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 98, 98, 98, 98, 103, 98, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 98, 98, 98, 98, 98, 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, 104, 104, 104, 105, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 104, 104, 104, 104, 104, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 106, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 111, 108, 108, 108, 108, 110, 108, 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, 108, 108, 108, 108, 109, 108, 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, 108, 108, 108, 108, 108, 109, 111, 108, 108, 112, 113, 108, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 116, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 114, 114, 114, 114, 116, 114, 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, 114, 114, 114, 114, 115, 114, 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, 114, 114, 114, 114, 114, 115, 117, 114, 119, 118, 120, 118, 121, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 123, 118, 123, 123, 123, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 123, 118, 118, 118, 118, 124, 125, 118, 126, 118, 127, 128, 129, 130, 131, 124, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 132, 118, 133, 129, 134, 135, 118, 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, 136, 137, 129, 138, 122, 118, 122, 122, 122, 122, 122, 122, 122, 122, 139, 122, 122, 122, 122, 122, 122, 122, 122, 140, 122, 122, 141, 122, 142, 122, 122, 122, 143, 144, 118, 138, 118, 122, 118, 118, 118, 118, 118, 118, 118, 118, 118, 145, 118, 145, 145, 145, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 145, 118, 118, 118, 118, 146, 147, 118, 148, 118, 149, 150, 151, 152, 153, 146, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 154, 118, 155, 151, 156, 157, 118, 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, 158, 159, 151, 120, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 160, 115, 115, 115, 115, 115, 115, 115, 115, 161, 115, 115, 162, 115, 163, 115, 115, 115, 164, 165, 118, 120, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 166, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 167, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 168, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 169, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 170, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 166, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 171, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 172, 115, 115, 115, 115, 115, 115, 115, 173, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 174, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 175, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 166, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 176, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 166, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 177, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 178, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 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, 116, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 118, 118, 118, 118, 116, 118, 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, 118, 118, 118, 118, 115, 118, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 170, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 118, 118, 118, 118, 118, 115, 180, 179, 181, 179, 182, 179, 151, 179, 183, 179, 179, 179, 179, 179, 179, 179, 184, 179, 185, 179, 186, 179, 151, 179, 187, 179, 151, 179, 188, 179, 182, 179, 190, 189, 191, 191, 191, 191, 191, 191, 191, 191, 191, 193, 191, 193, 193, 193, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 193, 191, 191, 191, 191, 191, 191, 191, 194, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 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, 191, 195, 191, 191, 192, 191, 192, 192, 192, 196, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 191, 191, 191, 191, 191, 192, 197, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 199, 191, 199, 199, 199, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 199, 191, 191, 191, 191, 191, 191, 191, 200, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 191, 201, 191, 191, 198, 191, 198, 198, 198, 202, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 191, 191, 191, 191, 191, 198, 204, 203, 204, 204, 204, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 204, 203, 203, 203, 203, 203, 203, 203, 205, 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, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 206, 203, 207, 203, 208, 203, 208, 208, 208, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 208, 203, 203, 203, 203, 203, 203, 203, 209, 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, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 210, 203, 211, 212, 214, 213, 215, 213, 216, 213, 217, 213, 218, 213, 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, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220, 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, 220, 220, 220, 220, 220, 220, 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, 220, 220, 220, 220, 220, 219, 221, 211, 222, 223, 222, 222, 222, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 222, 211, 211, 224, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 226, 211, 227, 228, 227, 227, 227, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 227, 211, 211, 229, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 231, 211, 233, 234, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, 232, 232, 235, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 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, 237, 232, 239, 240, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 238, 238, 241, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 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, 238, 243, 238, 239, 244, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 238, 238, 241, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 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, 238, 243, 238, 223, 211, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 247, 245, 247, 245, 247, 247, 245, 245, 247, 247, 247, 248, 247, 247, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 247, 245, 245, 246, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 247, 245, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 245, 245, 245, 245, 245, 245, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 245, 245, 245, 245, 247, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 245, 245, 245, 245, 245, 247, 250, 247, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 250, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 252, 245, 245, 245, 245, 253, 245, 245, 245, 245, 245, 254, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 221, 245, 245, 245, 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, 245, 245, 245, 245, 251, 255, 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, 245, 245, 245, 254, 245, 251, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 258, 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, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 257, 257, 257, 257, 257, 257, 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, 257, 257, 257, 257, 256, 257, 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, 257, 257, 257, 257, 257, 256, 260, 259, 263, 262, 258, 257, 263, 264, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 252, 245, 245, 245, 245, 253, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 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, 245, 245, 245, 245, 251, 255, 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, 245, 245, 245, 245, 245, 251, 266, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 263, 265, 263, 266, 267, 268, 268, 268, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 268, 267, 270, 270, 270, 267, 270, 270, 270, 270, 270, 271, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 267, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 272, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 273, 270, 267, 270, 270, 270, 267, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 267, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 274, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 273, 270, 267, 275, 275, 275, 267, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 267, 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, 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, 277, 275, 267, 278, 278, 278, 267, 278, 278, 278, 278, 278, 279, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 267, 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, 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, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 280, 278, 267, 278, 278, 278, 267, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 267, 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, 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, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 280, 278, 267, 268, 268, 268, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 267, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 281, 268, 267, 282, 282, 282, 267, 282, 282, 282, 282, 282, 283, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 267, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 284, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 285, 282, 282, 282, 282, 282, 282, 286, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 287, 282, 267, 282, 282, 282, 267, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 267, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 287, 282, 288, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 289, 267, 289, 267, 267, 290, 290, 290, 267, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 267, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 292, 290, 267, 270, 270, 270, 267, 270, 270, 270, 270, 270, 271, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 267, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 274, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 273, 270, 267, 293, 293, 293, 267, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 267, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 293, 293, 293, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 293, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 296, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 211, 211, 298, 211, 296, 211, 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, 211, 211, 211, 211, 295, 211, 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, 211, 211, 211, 211, 211, 295, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 296, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 245, 245, 298, 245, 296, 245, 295, 295, 295, 295, 295, 295, 299, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 245, 245, 245, 245, 295, 245, 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, 245, 245, 245, 245, 245, 295, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 296, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 245, 245, 298, 245, 296, 245, 295, 295, 295, 295, 295, 295, 295, 295, 300, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 245, 245, 245, 245, 295, 245, 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, 245, 245, 245, 245, 245, 295, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 296, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 245, 245, 298, 245, 296, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 301, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 245, 245, 245, 245, 295, 245, 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, 245, 245, 245, 245, 245, 295, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 296, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 245, 245, 298, 245, 296, 245, 295, 295, 295, 301, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 245, 245, 245, 245, 295, 245, 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, 245, 245, 245, 245, 245, 295, 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, 304, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 305, 302, 302, 302, 302, 304, 302, 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, 302, 302, 302, 302, 303, 302, 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, 302, 302, 302, 302, 302, 303, 305, 302, 302, 306, 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, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 307, 307, 307, 307, 307, 307, 307, 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, 308, 307, 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, 308, 310, 309, 310, 309, 309, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 309, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 309, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 309, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 313, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 313, 317, 316, 318, 316, 319, 316, 320, 316, 322, 321, 323, 321, 324, 321, 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, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 307, 307, 307, 307, 307, 307, 307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 307, 307, 307, 307, 325, 307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 307, 307, 307, 307, 307, 325, 326, 313, 327, 328, 327, 327, 327, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 327, 313, 313, 329, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 330, 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, 331, 313, 332, 333, 332, 332, 332, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 332, 313, 313, 334, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 335, 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, 336, 313, 338, 339, 338, 338, 338, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 338, 337, 337, 340, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 341, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 342, 337, 344, 345, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 347, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 348, 343, 344, 345, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 349, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 348, 343, 344, 350, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 347, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 348, 343, 351, 313, 328, 313, 353, 354, 353, 353, 353, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 353, 352, 352, 355, 352, 352, 356, 352, 352, 352, 352, 352, 352, 352, 357, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 358, 352, 360, 354, 360, 360, 360, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 360, 359, 359, 355, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 358, 359, 363, 362, 365, 364, 366, 361, 367, 361, 368, 352, 370, 369, 369, 369, 370, 369, 369, 369, 369, 371, 372, 371, 371, 371, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 370, 369, 369, 369, 369, 369, 371, 369, 369, 373, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 374, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 375, 369, 369, 376, 369, 371, 377, 371, 371, 371, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 371, 377, 378, 379, 380, 381, 382, 384, 383, 386, 387, 386, 386, 386, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 386, 385, 372, 383, 388, 383, 390, 389, 389, 389, 390, 389, 389, 389, 389, 391, 392, 391, 391, 391, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 390, 389, 389, 389, 389, 389, 391, 389, 389, 393, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 394, 389, 391, 395, 391, 391, 391, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 391, 395, 397, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 398, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 399, 396, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 400, 400, 400, 400, 400, 400, 400, 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, 400, 400, 400, 400, 13, 400, 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, 400, 400, 400, 400, 400, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 401, 401, 401, 401, 401, 401, 401, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 401, 401, 401, 401, 17, 401, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 401, 401, 401, 401, 401, 17, 404, 403, 403, 403, 404, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 404, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 405, 405, 405, 405, 405, 405, 405, 405, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 408, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 409, 403, 403, 410, 403, 411, 412, 414, 414, 414, 414, 414, 414, 414, 414, 413, 415, 415, 415, 415, 415, 415, 415, 415, 413, 413, 416, 416, 42, 42, 42, 416, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 416, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 417, 42, 418, 419, 420, 420, 42, 42, 42, 420, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 420, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 421, 42, 41, 420, 422, 423, 424, 424, 27, 27, 27, 424, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 424, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 425, 27, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 424, 424, 424, 424, 424, 424, 424, 426, 426, 426, 426, 426, 426, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 426, 426, 426, 426, 426, 426, 424, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 427, 427, 427, 427, 427, 427, 427, 428, 428, 428, 428, 428, 428, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 428, 428, 428, 428, 428, 428, 427, 427, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 420, 420, 420, 420, 420, 420, 420, 429, 429, 429, 429, 429, 429, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 429, 429, 429, 429, 429, 429, 420, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 430, 430, 430, 430, 430, 430, 430, 431, 431, 431, 431, 431, 431, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 431, 431, 431, 431, 431, 431, 430, 430, 420, 20, 20, 20, 420, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 420, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 432, 20, 416, 27, 27, 27, 416, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 416, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 27, 416, 433, 433, 433, 416, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 416, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 434, 433, 435, 436, 436, 433, 433, 433, 436, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 436, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 437, 433, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 436, 436, 436, 436, 436, 436, 436, 438, 438, 438, 438, 438, 438, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 438, 438, 438, 438, 438, 438, 436, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 439, 439, 439, 439, 439, 439, 439, 440, 440, 440, 440, 440, 440, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 440, 440, 440, 440, 440, 440, 439, 439, 436, 20, 20, 20, 436, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 436, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 432, 20, 441, 436, 436, 27, 27, 27, 436, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 436, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 27, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 442, 442, 442, 442, 442, 442, 442, 443, 443, 443, 443, 443, 443, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 443, 443, 443, 443, 443, 443, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 444, 442, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 442, 442, 442, 442, 442, 442, 442, 445, 445, 445, 445, 445, 445, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 445, 445, 445, 445, 445, 445, 442, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 442, 442, 442, 442, 442, 442, 442, 446, 446, 446, 446, 446, 446, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 446, 446, 446, 446, 446, 446, 442, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 442, 442, 442, 442, 442, 442, 442, 447, 447, 447, 447, 447, 447, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 447, 447, 447, 447, 447, 447, 442, 448, 451, 450, 450, 450, 451, 450, 450, 450, 450, 452, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 451, 450, 450, 450, 450, 450, 452, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 450, 450, 450, 450, 450, 450, 450, 453, 453, 453, 453, 453, 453, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 453, 453, 453, 453, 453, 453, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 454, 450, 451, 450, 450, 450, 451, 450, 450, 450, 450, 449, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 451, 450, 450, 450, 450, 450, 449, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 450, 450, 450, 450, 450, 450, 450, 455, 455, 455, 455, 455, 455, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 455, 455, 455, 455, 455, 455, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 456, 450, 449, 451, 455, 455, 455, 451, 455, 455, 455, 455, 449, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 451, 455, 455, 455, 455, 455, 449, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 449, 455, 457, 451, 458, 458, 458, 451, 458, 458, 458, 458, 452, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 452, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 449, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 449, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 449, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 458, 458, 458, 458, 458, 458, 458, 455, 455, 455, 455, 455, 455, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 455, 455, 455, 455, 455, 455, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 458, 458, 458, 458, 458, 458, 458, 460, 460, 460, 460, 460, 460, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 460, 460, 460, 460, 460, 460, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 453, 453, 453, 453, 453, 453, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 462, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 458, 458, 458, 458, 458, 458, 458, 463, 463, 463, 463, 463, 463, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 463, 463, 463, 463, 463, 463, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 458, 458, 458, 458, 458, 458, 458, 464, 464, 464, 464, 464, 464, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 464, 464, 464, 464, 464, 464, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 458, 458, 458, 458, 458, 458, 458, 465, 465, 465, 465, 465, 465, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 465, 465, 465, 465, 465, 465, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 458, 458, 458, 458, 458, 458, 458, 466, 466, 466, 466, 466, 466, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 466, 466, 466, 466, 466, 466, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 459, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 461, 458, 451, 458, 458, 458, 451, 458, 458, 458, 458, 449, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 451, 458, 458, 458, 458, 458, 449, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 467, 467, 467, 467, 467, 467, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 449, 458, 468, 469, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 470, 470, 470, 470, 470, 470, 470, 471, 471, 471, 471, 471, 471, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 471, 471, 471, 471, 471, 471, 470, 470, 473, 472, 472, 472, 473, 472, 472, 472, 472, 472, 474, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 473, 472, 472, 472, 472, 472, 472, 472, 472, 475, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 476, 472, 478, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 479, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 480, 477, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 481, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 481, 481, 481, 481, 481, 481, 481, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 481, 481, 481, 481, 48, 481, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 481, 481, 481, 481, 481, 48, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 481, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 482, 482, 482, 482, 482, 482, 482, 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, 482, 482, 482, 482, 52, 482, 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, 482, 482, 482, 482, 482, 52, 485, 484, 484, 484, 485, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 485, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 486, 486, 486, 486, 486, 486, 486, 486, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 487, 484, 484, 484, 484, 484, 484, 484, 484, 484, 488, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 489, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 490, 484, 484, 491, 484, 492, 493, 495, 495, 495, 495, 495, 495, 495, 495, 494, 496, 496, 496, 496, 496, 496, 496, 496, 494, 494, 497, 497, 77, 77, 77, 497, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 497, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 498, 77, 499, 500, 501, 501, 77, 77, 77, 501, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 501, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 502, 77, 76, 501, 503, 504, 505, 505, 62, 62, 62, 505, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 505, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 506, 62, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 505, 505, 505, 505, 505, 505, 505, 507, 507, 507, 507, 507, 507, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 507, 507, 507, 507, 507, 507, 505, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 508, 508, 508, 508, 508, 508, 508, 509, 509, 509, 509, 509, 509, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 509, 509, 509, 509, 509, 509, 508, 508, 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, 501, 501, 501, 501, 501, 501, 501, 510, 510, 510, 510, 510, 510, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 510, 510, 510, 510, 510, 510, 501, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 511, 511, 511, 511, 511, 511, 511, 512, 512, 512, 512, 512, 512, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 512, 512, 512, 512, 512, 512, 511, 511, 501, 55, 55, 55, 501, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 501, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 513, 55, 497, 62, 62, 62, 497, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 497, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 64, 62, 497, 514, 514, 514, 497, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 497, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 515, 514, 516, 517, 517, 514, 514, 514, 517, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 517, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 518, 514, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 517, 517, 517, 517, 517, 517, 517, 519, 519, 519, 519, 519, 519, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 519, 519, 519, 519, 519, 519, 517, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 520, 520, 520, 520, 520, 520, 520, 521, 521, 521, 521, 521, 521, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 521, 521, 521, 521, 521, 521, 520, 520, 517, 55, 55, 55, 517, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 517, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 513, 55, 522, 517, 517, 62, 62, 62, 517, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 517, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 64, 62, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 523, 523, 523, 523, 523, 523, 523, 524, 524, 524, 524, 524, 524, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 524, 524, 524, 524, 524, 524, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 525, 523, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 523, 523, 523, 523, 523, 523, 523, 526, 526, 526, 526, 526, 526, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 526, 526, 526, 526, 526, 526, 523, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 523, 523, 523, 523, 523, 523, 523, 527, 527, 527, 527, 527, 527, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 527, 527, 527, 527, 527, 527, 523, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 523, 523, 523, 523, 523, 523, 523, 528, 528, 528, 528, 528, 528, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 528, 528, 528, 528, 528, 528, 523, 529, 532, 531, 531, 531, 532, 531, 531, 531, 531, 533, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 532, 531, 531, 531, 531, 531, 533, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 531, 531, 531, 531, 531, 531, 531, 534, 534, 534, 534, 534, 534, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 534, 534, 534, 534, 534, 534, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 535, 531, 532, 531, 531, 531, 532, 531, 531, 531, 531, 530, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 532, 531, 531, 531, 531, 531, 530, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 531, 531, 531, 531, 531, 531, 531, 536, 536, 536, 536, 536, 536, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 536, 536, 536, 536, 536, 536, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 537, 531, 530, 532, 536, 536, 536, 532, 536, 536, 536, 536, 530, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 532, 536, 536, 536, 536, 536, 530, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 530, 536, 538, 532, 539, 539, 539, 532, 539, 539, 539, 539, 533, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 533, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 530, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 530, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 530, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 539, 539, 539, 539, 539, 539, 539, 536, 536, 536, 536, 536, 536, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 536, 536, 536, 536, 536, 536, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 539, 539, 539, 539, 539, 539, 539, 541, 541, 541, 541, 541, 541, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 541, 541, 541, 541, 541, 541, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 534, 534, 534, 534, 534, 534, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 543, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, 539, 539, 539, 539, 539, 539, 539, 544, 544, 544, 544, 544, 544, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 544, 544, 544, 544, 544, 544, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 539, 539, 539, 539, 539, 539, 539, 545, 545, 545, 545, 545, 545, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 545, 545, 545, 545, 545, 545, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 539, 539, 539, 539, 539, 539, 539, 546, 546, 546, 546, 546, 546, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 546, 546, 546, 546, 546, 546, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 539, 539, 539, 539, 539, 539, 539, 547, 547, 547, 547, 547, 547, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 547, 547, 547, 547, 547, 547, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 542, 539, 532, 539, 539, 539, 532, 539, 539, 539, 539, 530, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 532, 539, 539, 539, 539, 539, 530, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 548, 548, 548, 548, 548, 548, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 530, 539, 549, 550, 552, 552, 552, 552, 552, 552, 552, 552, 552, 552, 551, 551, 551, 551, 551, 551, 551, 552, 552, 552, 552, 552, 552, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 552, 552, 552, 552, 552, 552, 551, 551, 554, 553, 553, 553, 554, 553, 553, 553, 553, 555, 556, 555, 555, 555, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 554, 553, 553, 553, 553, 553, 555, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 557, 553, 555, 558, 555, 555, 555, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 555, 558, 559, 560, 560, 560, 559, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 559, 560, 562, 561, 561, 561, 562, 561, 561, 561, 561, 561, 563, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 562, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 564, 561, 565, 566, 566, 566, 565, 566, 566, 566, 566, 566, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 566, 569, 568, 568, 568, 569, 568, 568, 568, 568, 568, 570, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 568, 568, 568, 568, 568, 568, 568, 568, 571, 568, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 574, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 575, 572, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 576, 576, 576, 576, 576, 576, 576, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 576, 576, 576, 576, 83, 576, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 576, 576, 576, 576, 576, 83, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 577, 577, 577, 577, 577, 577, 577, 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, 577, 577, 577, 577, 87, 577, 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, 577, 577, 577, 577, 577, 87, 579, 578, 578, 578, 579, 578, 578, 578, 578, 578, 580, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 578, 582, 581, 581, 581, 582, 581, 581, 581, 581, 583, 584, 583, 583, 583, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 581, 581, 581, 581, 581, 583, 581, 581, 585, 581, 583, 586, 583, 583, 583, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 583, 586, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 589, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 590, 587, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 591, 591, 591, 591, 591, 591, 591, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 591, 591, 591, 591, 90, 591, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 591, 591, 591, 591, 591, 90, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 592, 592, 592, 592, 592, 592, 592, 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, 592, 592, 592, 592, 94, 592, 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, 592, 592, 592, 592, 592, 94, 594, 593, 593, 593, 594, 593, 593, 593, 593, 595, 596, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 594, 593, 593, 593, 593, 593, 595, 593, 595, 597, 595, 595, 595, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 595, 597, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 601, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 602, 98, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 603, 603, 603, 603, 603, 603, 603, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 603, 603, 603, 603, 96, 603, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 603, 603, 603, 603, 603, 96, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 603, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 604, 604, 604, 604, 604, 604, 604, 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, 604, 604, 604, 604, 101, 604, 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, 604, 604, 604, 604, 604, 101, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 605, 605, 605, 605, 605, 605, 605, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 605, 605, 605, 605, 103, 605, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 605, 605, 605, 605, 605, 103, 607, 608, 608, 608, 607, 608, 608, 608, 608, 609, 610, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 608, 608, 608, 608, 608, 609, 611, 608, 612, 613, 614, 615, 608, 608, 608, 616, 617, 608, 617, 608, 618, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 619, 608, 620, 621, 622, 608, 608, 623, 624, 623, 623, 625, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 626, 627, 608, 618, 628, 618, 629, 630, 631, 632, 633, 634, 606, 606, 635, 606, 606, 606, 636, 637, 638, 606, 606, 639, 640, 641, 642, 606, 643, 606, 644, 606, 608, 645, 608, 617, 608, 606, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 647, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 646, 646, 646, 647, 646, 647, 646, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 646, 646, 646, 646, 606, 646, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 646, 646, 646, 646, 646, 606, 609, 648, 609, 609, 609, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 609, 648, 649, 618, 650, 650, 618, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 618, 650, 651, 652, 653, 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 105, 105, 655, 105, 655, 105, 105, 655, 655, 105, 105, 105, 657, 105, 105, 658, 658, 658, 658, 658, 658, 658, 658, 658, 658, 105, 105, 105, 105, 105, 105, 105, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 655, 105, 655, 655, 656, 105, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 655, 655, 655, 105, 655, 656, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 659, 659, 659, 659, 659, 659, 659, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 659, 659, 659, 659, 656, 659, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 659, 659, 659, 659, 659, 656, 658, 658, 658, 658, 658, 658, 658, 658, 658, 658, 659, 660, 650, 618, 650, 618, 650, 618, 650, 662, 661, 618, 663, 650, 618, 650, 664, 618, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 618, 655, 618, 650, 618, 618, 650, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 647, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 646, 646, 646, 647, 646, 647, 646, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 646, 646, 646, 646, 623, 646, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 646, 646, 646, 646, 646, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 666, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 623, 623, 667, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 623, 623, 623, 623, 668, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 669, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 670, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 647, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 647, 665, 647, 665, 623, 623, 623, 669, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 623, 665, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 665, 665, 665, 665, 665, 623, 664, 655, 610, 655, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 672, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 673, 674, 606, 606, 606, 606, 606, 675, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 676, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 677, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 678, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 679, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 680, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 681, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 682, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 683, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 684, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 685, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 686, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 682, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 687, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 686, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 688, 606, 689, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 690, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 691, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 692, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 693, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 694, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 695, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 696, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 697, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 698, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 699, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 700, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 701, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 691, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 702, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 703, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 647, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 704, 704, 704, 647, 704, 647, 704, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 704, 704, 704, 704, 606, 704, 606, 606, 606, 606, 606, 606, 606, 606, 705, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 704, 704, 704, 704, 704, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 706, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 707, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 708, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 709, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 710, 606, 711, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 712, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 684, 606, 606, 606, 713, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 714, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 715, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 700, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 716, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 638, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 698, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 717, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 718, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 719, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 700, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 720, 606, 606, 606, 721, 606, 606, 606, 606, 606, 722, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 722, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 723, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 724, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 725, 726, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 727, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 700, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 728, 606, 606, 729, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 684, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 695, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 730, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 731, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 713, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 732, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 638, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 733, 606, 606, 606, 606, 606, 606, 606, 606, 606, 727, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 695, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 734, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 735, 606, 606, 606, 606, 606, 606, 606, 736, 606, 606, 606, 606, 606, 606, 606, 737, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 713, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 701, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 721, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 738, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 695, 606, 606, 606, 719, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 739, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 740, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 647, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 647, 671, 647, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 606, 671, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 689, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 671, 671, 671, 671, 671, 606, 618, 650, 742, 743, 743, 743, 742, 743, 743, 743, 743, 744, 743, 744, 744, 744, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 742, 743, 743, 743, 743, 743, 744, 743, 743, 745, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 746, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 743, 747, 743, 743, 741, 743, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 743, 743, 743, 743, 743, 741, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 110, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 111, 748, 748, 748, 748, 110, 748, 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, 748, 748, 748, 748, 109, 748, 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, 748, 748, 748, 748, 748, 109, 744, 749, 744, 744, 744, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 744, 749, 750, 751, 752, 753, 754, 748, 755, 748, 756, 758, 759, 759, 759, 758, 759, 759, 759, 759, 760, 761, 760, 760, 760, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 758, 759, 759, 759, 759, 759, 760, 762, 759, 763, 759, 764, 765, 759, 759, 759, 766, 767, 759, 767, 759, 764, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 768, 769, 770, 759, 759, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 772, 773, 759, 764, 757, 764, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 759, 774, 759, 767, 759, 757, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 776, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 775, 775, 775, 775, 775, 776, 775, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 775, 775, 775, 775, 757, 775, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 775, 775, 775, 775, 775, 757, 778, 777, 779, 760, 780, 760, 760, 760, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 760, 780, 781, 764, 782, 782, 764, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 764, 782, 783, 784, 785, 786, 764, 782, 764, 782, 764, 782, 764, 787, 782, 764, 782, 789, 764, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 764, 788, 764, 782, 764, 764, 782, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 776, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 790, 790, 790, 790, 790, 776, 790, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 790, 790, 790, 790, 771, 790, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 790, 790, 790, 790, 790, 771, 789, 788, 761, 788, 764, 782, 792, 791, 791, 791, 792, 791, 791, 791, 791, 793, 794, 793, 793, 793, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 792, 791, 791, 791, 791, 791, 793, 791, 791, 795, 791, 120, 796, 791, 797, 791, 798, 120, 151, 799, 153, 120, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 800, 791, 801, 151, 802, 803, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 151, 804, 151, 120, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 805, 791, 791, 791, 791, 791, 791, 791, 791, 806, 791, 791, 807, 791, 808, 791, 791, 791, 164, 165, 791, 120, 791, 809, 809, 809, 809, 809, 809, 809, 809, 809, 793, 809, 793, 793, 793, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 793, 809, 809, 809, 809, 146, 147, 809, 148, 809, 149, 150, 151, 152, 153, 146, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 154, 809, 155, 151, 156, 157, 809, 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, 158, 159, 151, 120, 115, 809, 115, 115, 115, 115, 115, 115, 115, 115, 160, 115, 115, 115, 115, 115, 115, 115, 115, 161, 115, 115, 162, 115, 163, 115, 115, 115, 164, 165, 809, 120, 809, 115, 810, 811, 811, 811, 810, 811, 811, 811, 811, 151, 812, 151, 151, 151, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 811, 811, 811, 811, 811, 151, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 151, 811, 151, 812, 151, 151, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 114, 114, 114, 114, 120, 114, 114, 114, 114, 114, 114, 114, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 151, 812, 151, 151, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 813, 151, 812, 151, 151, 151, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 151, 814, 814, 814, 814, 814, 814, 814, 814, 814, 815, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 151, 814, 151, 812, 151, 151, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 151, 151, 114, 816, 810, 151, 810, 818, 817, 820, 821, 820, 820, 820, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 820, 819, 822, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 116, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 117, 810, 810, 810, 810, 116, 810, 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, 810, 810, 810, 810, 115, 810, 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, 810, 810, 810, 810, 810, 115, 823, 151, 812, 151, 151, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 120, 810, 824, 825, 826, 827, 828, 829, 151, 812, 151, 151, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 151, 810, 810, 810, 810, 810, 810, 810, 810, 810, 120, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 151, 810, 151, 817, 120, 830, 120, 830, 831, 832, 831, 831, 831, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 831, 819, 833, 830, 834, 834, 834, 834, 834, 834, 834, 834, 834, 123, 834, 123, 123, 123, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 123, 834, 834, 834, 834, 124, 125, 834, 126, 834, 127, 128, 129, 130, 131, 124, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 132, 834, 133, 129, 134, 135, 834, 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, 136, 137, 129, 138, 122, 834, 122, 122, 122, 122, 122, 122, 122, 122, 139, 122, 122, 122, 122, 122, 122, 122, 122, 140, 122, 122, 141, 122, 142, 122, 122, 122, 143, 144, 834, 138, 834, 122, 151, 830, 835, 830, 836, 830, 837, 830, 838, 190, 190, 190, 838, 190, 190, 190, 190, 839, 190, 839, 839, 839, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 838, 190, 190, 190, 190, 190, 839, 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, 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, 190, 840, 190, 190, 192, 190, 192, 192, 192, 196, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 190, 190, 190, 190, 190, 192, 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, 841, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 190, 189, 189, 189, 189, 841, 189, 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, 189, 189, 189, 189, 192, 189, 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, 189, 189, 189, 189, 189, 192, 842, 842, 842, 842, 842, 842, 842, 842, 842, 193, 842, 193, 193, 193, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 193, 842, 842, 842, 842, 842, 842, 842, 194, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 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, 842, 195, 842, 842, 192, 842, 192, 192, 192, 196, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 842, 842, 842, 842, 842, 192, 843, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 841, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 190, 842, 842, 842, 842, 841, 842, 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, 842, 842, 842, 842, 192, 842, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 844, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 842, 842, 842, 842, 842, 192, 197, 842, 846, 845, 845, 845, 846, 845, 845, 845, 845, 847, 845, 847, 847, 847, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 846, 845, 845, 845, 845, 845, 847, 845, 845, 848, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 849, 845, 845, 845, 845, 845, 845, 845, 850, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 851, 845, 847, 852, 847, 847, 847, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 847, 852, 853, 854, 855, 856, 858, 857, 859, 860, 857, 861, 863, 864, 864, 864, 863, 864, 864, 864, 864, 865, 866, 865, 865, 865, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 863, 864, 864, 864, 864, 864, 865, 864, 864, 867, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 864, 868, 864, 864, 862, 864, 862, 862, 862, 862, 862, 862, 862, 862, 869, 862, 862, 862, 862, 862, 862, 862, 862, 870, 862, 862, 871, 862, 872, 862, 862, 862, 864, 864, 864, 864, 864, 862, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 873, 873, 873, 873, 873, 873, 873, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 873, 873, 873, 873, 862, 873, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 873, 873, 873, 873, 873, 862, 865, 874, 865, 865, 865, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, 865, 874, 875, 876, 877, 878, 879, 881, 880, 882, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 884, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 885, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 886, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 887, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 888, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 884, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 889, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 890, 862, 862, 862, 862, 862, 862, 862, 891, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 892, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 893, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 884, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 894, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 884, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 895, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 896, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 883, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 862, 883, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 888, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 883, 883, 883, 883, 883, 862, 898, 221, 221, 221, 898, 221, 221, 221, 221, 899, 900, 899, 899, 899, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 898, 221, 221, 221, 221, 221, 899, 901, 221, 902, 221, 903, 904, 221, 905, 221, 906, 907, 221, 908, 909, 910, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 911, 221, 912, 913, 914, 915, 221, 916, 917, 916, 916, 918, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 919, 920, 221, 921, 922, 221, 923, 924, 925, 926, 927, 928, 897, 897, 929, 897, 897, 897, 930, 931, 932, 897, 897, 933, 934, 935, 936, 897, 937, 897, 938, 897, 939, 940, 221, 921, 221, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 945, 944, 944, 946, 944, 947, 949, 950, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 951, 948, 953, 952, 954, 955, 956, 899, 957, 899, 899, 899, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, 899, 957, 959, 958, 961, 962, 961, 961, 961, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 961, 960, 221, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 221, 963, 964, 965, 966, 967, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 969, 969, 969, 969, 969, 969, 969, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 969, 969, 969, 969, 969, 969, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 969, 969, 969, 969, 969, 968, 972, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 221, 971, 973, 975, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 221, 974, 221, 211, 222, 223, 222, 222, 222, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 222, 971, 971, 224, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 971, 971, 971, 221, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 226, 971, 239, 240, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 238, 238, 241, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 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, 238, 243, 238, 222, 223, 222, 222, 222, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 222, 971, 971, 224, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 971, 971, 971, 221, 221, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 226, 971, 977, 963, 979, 978, 981, 980, 963, 982, 982, 982, 963, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 963, 982, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 984, 985, 963, 986, 247, 987, 985, 963, 963, 988, 989, 963, 989, 963, 247, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 990, 963, 991, 992, 993, 963, 994, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 995, 963, 963, 247, 983, 247, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 963, 996, 963, 997, 963, 983, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 999, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 998, 998, 998, 1000, 998, 999, 998, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 998, 998, 998, 998, 983, 998, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 998, 998, 998, 998, 998, 983, 1002, 1001, 1003, 1005, 1006, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1007, 1004, 1009, 1010, 1008, 1011, 1012, 1013, 1014, 247, 998, 998, 1015, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 247, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 998, 998, 998, 998, 998, 998, 998, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 998, 998, 998, 998, 246, 998, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 998, 998, 998, 998, 998, 246, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 998, 1016, 998, 247, 998, 247, 998, 247, 1017, 998, 247, 998, 247, 998, 247, 247, 998, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1018, 1018, 1018, 1018, 1018, 1018, 1021, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1018, 1018, 1018, 1018, 1019, 1018, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1018, 1018, 1018, 1018, 1018, 1019, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1022, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1024, 1024, 1024, 1024, 1025, 1024, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1024, 1024, 1024, 1024, 1024, 1025, 1016, 998, 1015, 998, 1027, 1028, 963, 1029, 262, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 263, 252, 264, 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, 263, 253, 263, 266, 221, 963, 921, 221, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 221, 963, 221, 972, 963, 1033, 1032, 1032, 1032, 1033, 1032, 1032, 1032, 1032, 1034, 1035, 1034, 1034, 1034, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1033, 1032, 1032, 1032, 1032, 1032, 1034, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1032, 1037, 1032, 1032, 1036, 1032, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1032, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1038, 1038, 1038, 1038, 1039, 1038, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1038, 1038, 1038, 1038, 1038, 1039, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1040, 1040, 1040, 1040, 1041, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1040, 1040, 1040, 1040, 1040, 1041, 1044, 1043, 1043, 1043, 1044, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1044, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1046, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1047, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1048, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1049, 1043, 1043, 1050, 1043, 1051, 1052, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1053, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1053, 1053, 1056, 1056, 290, 290, 290, 1056, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1056, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1057, 290, 1058, 1059, 1060, 1060, 290, 290, 290, 1060, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1060, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1061, 290, 289, 1060, 1062, 1063, 1064, 1064, 275, 275, 275, 1064, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 1064, 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, 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, 1065, 275, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1066, 1066, 1066, 1066, 1066, 1066, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1066, 1066, 1066, 1066, 1066, 1066, 1064, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1067, 1067, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1069, 1069, 1069, 1069, 1069, 1069, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1069, 1069, 1069, 1069, 1069, 1069, 1060, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1060, 268, 268, 268, 1060, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1060, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1072, 268, 1056, 275, 275, 275, 1056, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 1056, 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, 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, 277, 275, 1056, 1073, 1073, 1073, 1056, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1056, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1074, 1073, 1075, 1076, 1076, 1073, 1073, 1073, 1076, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1076, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1077, 1073, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1078, 1078, 1078, 1078, 1078, 1078, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1078, 1078, 1078, 1078, 1078, 1078, 1076, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1080, 1080, 1080, 1080, 1080, 1080, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1080, 1080, 1080, 1080, 1080, 1080, 1079, 1079, 1076, 268, 268, 268, 1076, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1076, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1072, 268, 1081, 1076, 1076, 275, 275, 275, 1076, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 1076, 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, 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, 277, 275, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1084, 1082, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1085, 1085, 1085, 1085, 1085, 1085, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1085, 1085, 1085, 1085, 1085, 1085, 1082, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1086, 1086, 1086, 1086, 1086, 1086, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1086, 1086, 1086, 1086, 1086, 1086, 1082, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1087, 1087, 1087, 1087, 1087, 1087, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1087, 1087, 1087, 1087, 1087, 1087, 1082, 1088, 1091, 1090, 1090, 1090, 1091, 1090, 1090, 1090, 1090, 1092, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1091, 1090, 1090, 1090, 1090, 1090, 1092, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1093, 1093, 1093, 1093, 1093, 1093, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1093, 1093, 1093, 1093, 1093, 1093, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1094, 1090, 1091, 1090, 1090, 1090, 1091, 1090, 1090, 1090, 1090, 1089, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1091, 1090, 1090, 1090, 1090, 1090, 1089, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1095, 1095, 1095, 1095, 1095, 1095, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1095, 1095, 1095, 1095, 1095, 1095, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1096, 1090, 1089, 1091, 1095, 1095, 1095, 1091, 1095, 1095, 1095, 1095, 1089, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1091, 1095, 1095, 1095, 1095, 1095, 1089, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1089, 1095, 1097, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1092, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1092, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1089, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1095, 1095, 1095, 1095, 1095, 1095, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1095, 1095, 1095, 1095, 1095, 1095, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1101, 1101, 1101, 1101, 1101, 1101, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1101, 1101, 1101, 1101, 1101, 1101, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 1099, 1099, 1099, 1099, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1103, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1104, 1104, 1104, 1104, 1104, 1104, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1104, 1104, 1104, 1104, 1104, 1104, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1105, 1105, 1105, 1105, 1105, 1105, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1105, 1105, 1105, 1105, 1105, 1105, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1106, 1106, 1106, 1106, 1106, 1106, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1106, 1106, 1106, 1106, 1106, 1106, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1107, 1107, 1107, 1107, 1107, 1107, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1107, 1107, 1107, 1107, 1107, 1107, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1100, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1089, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1110, 1110, 1110, 1110, 1110, 1110, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1110, 1110, 1110, 1110, 1110, 1110, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1111, 1111, 1111, 1111, 1111, 1111, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1111, 1111, 1111, 1111, 1111, 1111, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1112, 1112, 1112, 1112, 1112, 1112, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1112, 1112, 1112, 1112, 1112, 1112, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1113, 1113, 1113, 1113, 1113, 1113, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1113, 1113, 1113, 1113, 1113, 1113, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1114, 1114, 1114, 1114, 1114, 1114, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1114, 1114, 1114, 1114, 1114, 1114, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1115, 1115, 1115, 1115, 1115, 1115, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1115, 1115, 1115, 1115, 1115, 1115, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1116, 1116, 1116, 1116, 1116, 1116, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1116, 1116, 1116, 1116, 1116, 1116, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1089, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1117, 1117, 1117, 1117, 1117, 1117, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1117, 1117, 1117, 1117, 1117, 1117, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1118, 1118, 1118, 1118, 1118, 1118, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1118, 1118, 1118, 1118, 1118, 1118, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1119, 1119, 1119, 1119, 1119, 1119, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1119, 1119, 1119, 1119, 1119, 1119, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1120, 1120, 1120, 1120, 1120, 1120, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1120, 1120, 1120, 1120, 1120, 1120, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1091, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1091, 1098, 1098, 1098, 1098, 1098, 1109, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1108, 1108, 1108, 1108, 1108, 1108, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1102, 1098, 1121, 1122, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1123, 1123, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 296, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 211, 211, 298, 211, 296, 211, 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, 211, 211, 211, 211, 295, 211, 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, 211, 211, 211, 211, 211, 295, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 296, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 963, 963, 298, 963, 296, 963, 295, 295, 295, 295, 1125, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 963, 963, 963, 963, 295, 963, 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, 963, 963, 963, 963, 963, 295, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 296, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 297, 963, 963, 298, 963, 296, 963, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 1126, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 963, 963, 963, 963, 295, 963, 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, 963, 963, 963, 963, 963, 295, 1127, 1128, 963, 958, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 1129, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 1130, 1131, 897, 897, 897, 897, 897, 1132, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1133, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 1134, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1135, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 1136, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1137, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1138, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 1139, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 1140, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 1141, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 296, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 211, 211, 298, 211, 296, 211, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 211, 211, 211, 211, 897, 211, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 211, 211, 211, 211, 211, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1142, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1143, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 1139, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1144, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1143, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1145, 897, 1146, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1147, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1148, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1149, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1150, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 1151, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1152, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1153, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1154, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1155, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1156, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1157, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1158, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1148, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1159, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1160, 897, 1161, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1162, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1141, 897, 897, 897, 1159, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1163, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1164, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1157, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 1165, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 932, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1155, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 1166, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1167, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1168, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1169, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1157, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1170, 897, 897, 897, 1171, 897, 897, 897, 897, 897, 1172, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1172, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1173, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1174, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1175, 1176, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 1177, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1178, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1179, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1182, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1183, 1180, 1180, 1184, 1180, 1182, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1180, 1180, 1180, 1180, 1181, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1180, 1180, 1180, 1180, 1180, 1181, 949, 1185, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 951, 948, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1186, 897, 897, 1187, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1141, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1152, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1188, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1189, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1159, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1190, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 932, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 1191, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1192, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1152, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1157, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1193, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 1194, 897, 897, 897, 897, 897, 897, 897, 1195, 897, 897, 897, 897, 897, 897, 897, 1196, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1159, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1197, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1198, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1166, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1199, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1166, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 1200, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1152, 897, 897, 897, 1201, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1202, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1166, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 1203, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 1204, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 941, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 296, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 297, 941, 941, 298, 941, 296, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 943, 941, 941, 897, 941, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 1146, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 941, 941, 941, 941, 941, 897, 1205, 221, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 1206, 963, 1208, 1207, 1207, 1207, 1208, 1207, 1207, 1207, 1207, 1209, 1210, 1209, 1209, 1209, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208, 1207, 1207, 1207, 1207, 1207, 1209, 1207, 1207, 1211, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1212, 1207, 1209, 1213, 1209, 1209, 1209, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1209, 1213, 1214, 1215, 1216, 1217, 1218, 1220, 1219, 1221, 1223, 1224, 1224, 1224, 1223, 1224, 1224, 1224, 1224, 1225, 1226, 1225, 1225, 1225, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1223, 1224, 1224, 1224, 1224, 1224, 1225, 1224, 1227, 1228, 1224, 1224, 1224, 1227, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1224, 1229, 1224, 1224, 1222, 1224, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1224, 1224, 1224, 1224, 1224, 1222, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 304, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 305, 1230, 1230, 1230, 1230, 304, 1230, 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, 1230, 1230, 1230, 1230, 303, 1230, 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, 1230, 1230, 1230, 1230, 1230, 303, 1225, 1231, 1225, 1225, 1225, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1225, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1230, 1238, 1240, 1241, 1241, 1241, 1240, 1241, 1241, 1241, 1241, 1242, 1243, 1242, 1242, 1242, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1240, 1241, 1241, 1241, 1241, 1241, 1242, 1244, 1245, 1246, 1247, 1248, 1249, 1245, 1250, 1251, 1252, 1248, 1253, 1254, 1255, 1248, 1256, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1265, 1265, 1267, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1268, 1269, 1270, 1248, 1271, 1245, 1272, 1273, 1274, 1275, 1276, 1277, 1239, 1239, 1278, 1239, 1239, 1239, 1279, 1280, 1281, 1239, 1239, 1282, 1283, 1284, 1285, 1239, 1286, 1239, 1287, 1239, 1288, 1289, 1290, 1291, 1241, 1239, 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, 1292, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 313, 313, 313, 313, 313, 1292, 313, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 313, 313, 313, 313, 1239, 313, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 313, 313, 313, 313, 313, 1239, 1294, 1293, 1295, 1242, 1296, 1242, 1242, 1242, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1242, 1296, 1297, 1299, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1299, 1298, 1300, 1301, 1302, 1303, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 308, 308, 1304, 308, 1304, 308, 308, 1304, 1304, 308, 308, 308, 1305, 308, 308, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 308, 308, 308, 308, 308, 308, 308, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 308, 1304, 1304, 325, 308, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 1304, 1304, 308, 1304, 325, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1307, 1307, 1307, 1307, 325, 1307, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1307, 1307, 1307, 1307, 1307, 325, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1308, 313, 1248, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1310, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1308, 1309, 1311, 1312, 1248, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1308, 1313, 1308, 1314, 1309, 1316, 1315, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 1315, 1318, 1317, 1319, 1317, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1321, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1322, 1320, 1320, 1320, 1320, 1320, 1321, 1320, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 310, 1320, 1324, 1323, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1326, 1323, 1327, 1328, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1329, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1330, 1323, 1323, 1323, 1323, 1323, 1323, 1331, 1323, 1323, 1326, 1323, 1327, 1328, 1323, 1323, 1323, 1332, 1323, 1323, 1323, 1323, 1323, 1329, 1323, 1323, 1333, 1323, 1323, 1323, 1323, 1323, 1330, 1323, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1335, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1336, 1334, 1334, 1334, 1334, 1334, 1335, 1334, 1334, 1334, 1337, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1338, 1334, 1339, 313, 1339, 313, 313, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 313, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1339, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1341, 1340, 1343, 1342, 1344, 1346, 1345, 1345, 1345, 1347, 1345, 1348, 1349, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1331, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1332, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1333, 1323, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1351, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1332, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1333, 1323, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1354, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1359, 1358, 1360, 1362, 1361, 1361, 1361, 1363, 1361, 1365, 1364, 1366, 1367, 1369, 1369, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1370, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1371, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1372, 1368, 1373, 1373, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1374, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1373, 1373, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1377, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1378, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1379, 1375, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1382, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1383, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1384, 1380, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1386, 1386, 1386, 1386, 1386, 1386, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1387, 1385, 1386, 1386, 1386, 1386, 1386, 1386, 1385, 1385, 1388, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1389, 1385, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1391, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1352, 1390, 1390, 1390, 1390, 1390, 1390, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1393, 1392, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1395, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1396, 1392, 1392, 1392, 1392, 1392, 1395, 1392, 1392, 1392, 1397, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1398, 1392, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1400, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1397, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1398, 1392, 1401, 1352, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1403, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1404, 1352, 1352, 1352, 1352, 1352, 1403, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1355, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1356, 1352, 1310, 1317, 1248, 1405, 1309, 1299, 1309, 1406, 1407, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1299, 1317, 1299, 1309, 1299, 1248, 1309, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 1304, 1304, 1304, 1304, 1304, 1408, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 1304, 1304, 1304, 325, 1304, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 1304, 1304, 1304, 1304, 1304, 325, 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, 1292, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 313, 313, 313, 313, 1292, 313, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 313, 313, 313, 313, 1265, 313, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 313, 313, 313, 313, 313, 1265, 1410, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1412, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1413, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1414, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1415, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1416, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1292, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1409, 1411, 1411, 1411, 1411, 1292, 1411, 1265, 1265, 1265, 1415, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1265, 1411, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1411, 1411, 1411, 1411, 1411, 1265, 1417, 1419, 1418, 1420, 1421, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1423, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1424, 1425, 1239, 1239, 1239, 1239, 1239, 1426, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1427, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1428, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1429, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1430, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1431, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1432, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1433, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1434, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1435, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1436, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1437, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1438, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1439, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1440, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1441, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1437, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1442, 1239, 1443, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1444, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1445, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1446, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1448, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1449, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1450, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1451, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1452, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1453, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1454, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1455, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1456, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1457, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1458, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1459, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1460, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 327, 328, 327, 327, 327, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 327, 1292, 1461, 329, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1461, 1461, 330, 1461, 1461, 1292, 1461, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1461, 331, 1461, 1461, 1239, 1461, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1461, 1461, 1461, 1461, 1461, 1239, 344, 345, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 349, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 348, 343, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1463, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1464, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1465, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1292, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1466, 1466, 1466, 1466, 1466, 1292, 1466, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1466, 1466, 1466, 1466, 1239, 1466, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1467, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1466, 1466, 1466, 1466, 1466, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1468, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1469, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1470, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1471, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1472, 1239, 1473, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1474, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1475, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1476, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1477, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1457, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1478, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1281, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1479, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1480, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1447, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1482, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1483, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1484, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1457, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1485, 1239, 1239, 1239, 1486, 1239, 1239, 1239, 1239, 1239, 1487, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1488, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1454, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1489, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1490, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1491, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1492, 1493, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1494, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1495, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1496, 1239, 1239, 1497, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1440, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1498, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1454, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1499, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1500, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1501, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1440, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1502, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1503, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1489, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1504, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1505, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1451, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1480, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1506, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1507, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1508, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1509, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1510, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1446, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1511, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1512, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1513, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1514, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1451, 1239, 1239, 1239, 1515, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1516, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1481, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1517, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1518, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1519, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1292, 1422, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1239, 1422, 1239, 1239, 1239, 1489, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1422, 1422, 1422, 1422, 1422, 1239, 1520, 1308, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1248, 1298, 1521, 1523, 1522, 1523, 1523, 1523, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1523, 1522, 1522, 1524, 1522, 1522, 1525, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 357, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1526, 1522, 353, 354, 353, 353, 353, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 353, 1527, 1527, 355, 1527, 1527, 356, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 357, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 358, 1527, 360, 1528, 360, 360, 360, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 360, 1528, 1528, 355, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 358, 1528, 1530, 1529, 1532, 1531, 363, 362, 368, 1527, 366, 1527, 1534, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1535, 1533, 1534, 1533, 1534, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1537, 1533, 1534, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1538, 1533, 1534, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1539, 1533, 1541, 1539, 0]]; - $send(self, '_lex_indicies=', Opal.to_a($writer)); + $send(self, '_lex_indicies=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_trans_targs"); return self.$private("_lex_trans_targs", "_lex_trans_targs="); })(Opal.get_singleton_class(self), $nesting); $writer = [[186, 2, 3, 4, 192, 6, 7, 8, 9, 10, 186, 186, 195, 198, 195, 12, 199, 200, 14, 195, 207, 208, 211, 212, 224, 221, 213, 214, 215, 19, 216, 217, 218, 226, 228, 229, 233, 234, 235, 230, 25, 18, 209, 210, 27, 258, 259, 261, 263, 261, 30, 264, 265, 32, 261, 272, 273, 276, 277, 289, 286, 278, 279, 280, 37, 281, 282, 283, 291, 293, 294, 298, 299, 300, 295, 43, 36, 274, 275, 45, 323, 324, 331, 333, 331, 48, 334, 335, 50, 337, 340, 337, 52, 341, 342, 54, 348, 347, 0, 56, 349, 350, 58, 351, 352, 352, 352, 352, 465, 61, 62, 63, 465, 465, 494, 65, 66, 494, 494, 498, 498, 70, 65, 71, 496, 497, 499, 500, 498, 494, 501, 502, 504, 67, 68, 505, 506, 69, 498, 72, 73, 78, 85, 508, 509, 71, 496, 497, 499, 500, 498, 494, 501, 502, 504, 67, 68, 505, 506, 69, 72, 73, 78, 85, 508, 509, 507, 74, 75, 76, 77, 79, 80, 83, 81, 82, 84, 86, 87, 494, 89, 90, 91, 93, 96, 94, 95, 97, 99, 525, 525, 525, 526, 101, 528, 102, 529, 103, 526, 101, 528, 102, 529, 563, 104, 563, 105, 106, 104, 563, 105, 563, 563, 563, 109, 110, 111, 112, 574, 563, 563, 563, 115, 116, 117, 563, 120, 115, 116, 117, 563, 120, 118, 118, 116, 117, 584, 119, 118, 118, 116, 117, 584, 119, 116, 563, 601, 563, 122, 602, 608, 126, 617, 618, 131, 132, 126, 127, 616, 127, 616, 563, 128, 129, 130, 619, 133, 563, 633, 634, 637, 638, 650, 647, 639, 640, 641, 138, 642, 643, 644, 652, 654, 655, 659, 660, 661, 656, 144, 137, 635, 636, 146, 697, 698, 148, 565, 107, 567, 150, 151, 700, 802, 153, 154, 155, 802, 810, 810, 810, 158, 832, 831, 810, 834, 836, 810, 163, 164, 165, 840, 810, 167, 168, 851, 820, 873, 171, 172, 173, 177, 178, 171, 172, 173, 177, 178, 174, 174, 172, 173, 175, 176, 174, 174, 172, 173, 175, 176, 921, 172, 810, 990, 179, 992, 181, 185, 993, 183, 990, 180, 990, 182, 992, 182, 992, 184, 992, 990, 186, 186, 187, 188, 189, 191, 193, 194, 186, 186, 186, 190, 186, 190, 186, 1, 186, 186, 186, 5, 195, 195, 196, 195, 197, 201, 195, 195, 11, 13, 195, 195, 195, 195, 202, 203, 204, 15, 21, 26, 236, 28, 195, 195, 195, 205, 206, 195, 16, 195, 195, 195, 17, 195, 195, 195, 20, 219, 195, 220, 222, 195, 223, 225, 227, 22, 195, 195, 23, 231, 195, 232, 24, 195, 237, 241, 238, 239, 240, 195, 195, 242, 243, 246, 248, 257, 244, 245, 195, 247, 249, 251, 250, 195, 252, 253, 254, 255, 256, 195, 195, 195, 260, 261, 261, 261, 262, 266, 261, 29, 31, 261, 261, 261, 261, 267, 268, 269, 33, 39, 44, 301, 46, 261, 261, 261, 270, 271, 261, 34, 261, 261, 261, 35, 261, 261, 261, 38, 284, 261, 285, 287, 261, 288, 290, 292, 40, 261, 261, 41, 296, 261, 297, 42, 261, 302, 306, 303, 304, 305, 261, 261, 307, 308, 311, 313, 322, 309, 310, 261, 312, 314, 316, 315, 261, 317, 318, 319, 320, 321, 261, 261, 261, 325, 326, 326, 327, 326, 328, 326, 326, 326, 329, 329, 329, 330, 329, 329, 329, 331, 331, 331, 332, 331, 47, 49, 331, 331, 331, 336, 336, 336, 337, 337, 338, 337, 339, 337, 337, 51, 53, 337, 337, 337, 343, 343, 344, 343, 343, 345, 346, 345, 55, 57, 347, 347, 347, 353, 352, 352, 354, 355, 356, 357, 359, 362, 363, 364, 365, 352, 366, 367, 369, 371, 372, 373, 377, 379, 380, 381, 397, 402, 409, 414, 421, 428, 431, 432, 436, 430, 440, 448, 452, 454, 459, 461, 464, 352, 352, 352, 352, 352, 352, 358, 352, 358, 352, 360, 59, 361, 352, 60, 352, 352, 368, 370, 352, 374, 375, 376, 372, 378, 352, 382, 383, 392, 395, 384, 385, 386, 387, 388, 389, 390, 391, 353, 393, 394, 396, 398, 401, 399, 400, 403, 406, 404, 405, 407, 408, 410, 412, 411, 413, 415, 416, 352, 417, 418, 419, 420, 352, 422, 425, 423, 424, 426, 427, 429, 433, 434, 435, 437, 439, 438, 441, 442, 443, 445, 444, 446, 447, 449, 450, 451, 453, 455, 456, 457, 458, 460, 462, 463, 466, 465, 465, 467, 468, 470, 471, 465, 465, 465, 469, 465, 469, 64, 472, 465, 474, 473, 473, 477, 478, 479, 480, 473, 482, 483, 484, 485, 487, 489, 490, 491, 492, 493, 473, 475, 473, 476, 473, 473, 473, 473, 473, 481, 473, 481, 486, 473, 488, 473, 494, 494, 495, 510, 511, 497, 513, 514, 501, 515, 516, 517, 518, 519, 521, 522, 523, 524, 494, 494, 494, 494, 494, 494, 498, 503, 494, 494, 494, 494, 494, 494, 494, 494, 494, 512, 494, 512, 494, 494, 494, 494, 520, 494, 88, 92, 98, 525, 527, 530, 100, 525, 525, 526, 531, 531, 532, 533, 535, 537, 538, 531, 531, 534, 531, 534, 531, 536, 531, 531, 531, 540, 539, 539, 541, 542, 543, 545, 547, 548, 553, 560, 539, 539, 539, 539, 544, 539, 544, 539, 546, 539, 539, 540, 549, 550, 551, 552, 554, 555, 558, 556, 557, 559, 561, 562, 564, 563, 572, 573, 575, 576, 578, 579, 580, 581, 583, 585, 586, 589, 590, 615, 621, 622, 623, 700, 701, 702, 703, 704, 582, 706, 723, 728, 735, 740, 742, 748, 751, 752, 756, 750, 760, 771, 775, 778, 786, 790, 793, 794, 563, 104, 105, 563, 107, 566, 563, 563, 568, 570, 571, 563, 569, 563, 563, 563, 563, 563, 108, 563, 563, 563, 563, 563, 577, 563, 577, 563, 563, 113, 563, 114, 563, 563, 582, 563, 587, 563, 588, 563, 563, 563, 591, 600, 563, 121, 603, 604, 605, 563, 606, 123, 609, 610, 124, 613, 614, 563, 592, 594, 563, 593, 563, 563, 595, 598, 599, 563, 596, 597, 563, 563, 563, 563, 563, 563, 607, 563, 601, 611, 612, 563, 611, 563, 601, 611, 125, 620, 563, 563, 563, 624, 563, 563, 563, 625, 627, 563, 626, 563, 626, 563, 628, 629, 630, 134, 140, 145, 662, 147, 563, 563, 563, 631, 632, 563, 135, 563, 563, 563, 136, 563, 563, 563, 139, 645, 563, 646, 648, 563, 649, 651, 653, 141, 563, 563, 142, 657, 563, 658, 143, 563, 663, 667, 664, 665, 666, 563, 563, 668, 669, 672, 683, 696, 670, 671, 563, 673, 674, 675, 677, 676, 563, 678, 679, 680, 681, 682, 684, 691, 685, 686, 687, 688, 689, 690, 692, 693, 694, 695, 563, 563, 563, 699, 149, 152, 563, 705, 707, 708, 718, 721, 709, 710, 711, 712, 713, 714, 715, 716, 717, 719, 720, 722, 724, 727, 725, 726, 729, 732, 730, 731, 733, 734, 736, 738, 737, 739, 741, 743, 745, 744, 746, 747, 749, 717, 753, 754, 755, 757, 759, 758, 761, 762, 763, 768, 764, 765, 766, 563, 564, 565, 107, 767, 570, 769, 770, 772, 773, 774, 776, 777, 779, 780, 781, 784, 782, 783, 785, 787, 788, 789, 791, 792, 563, 582, 795, 795, 796, 797, 798, 800, 795, 795, 795, 799, 795, 799, 795, 801, 795, 803, 802, 802, 804, 805, 802, 806, 808, 802, 802, 802, 802, 807, 802, 807, 809, 802, 811, 810, 810, 814, 815, 816, 810, 817, 819, 822, 823, 824, 825, 826, 810, 827, 828, 833, 861, 865, 810, 866, 868, 870, 810, 871, 872, 874, 878, 880, 881, 883, 884, 902, 907, 914, 922, 929, 936, 941, 942, 946, 940, 951, 961, 967, 970, 979, 983, 987, 988, 989, 822, 812, 810, 813, 810, 810, 810, 810, 810, 810, 818, 810, 818, 810, 156, 821, 810, 810, 810, 810, 810, 810, 810, 810, 810, 829, 810, 830, 810, 810, 157, 159, 810, 160, 842, 853, 856, 835, 857, 858, 843, 847, 849, 810, 835, 160, 837, 839, 161, 810, 837, 810, 838, 810, 810, 162, 841, 810, 810, 844, 846, 810, 844, 845, 847, 849, 846, 810, 848, 810, 810, 850, 852, 810, 166, 810, 810, 810, 854, 846, 847, 849, 854, 855, 810, 844, 846, 847, 849, 810, 844, 846, 847, 849, 810, 859, 846, 847, 849, 859, 860, 810, 160, 861, 835, 862, 847, 849, 863, 846, 160, 863, 835, 864, 867, 869, 810, 169, 170, 810, 810, 875, 876, 877, 872, 879, 810, 810, 882, 810, 810, 810, 885, 886, 895, 900, 887, 888, 889, 890, 891, 892, 893, 894, 811, 896, 897, 898, 899, 811, 901, 903, 906, 904, 905, 811, 811, 908, 911, 909, 910, 912, 913, 811, 915, 917, 916, 918, 919, 920, 810, 810, 923, 811, 924, 810, 925, 926, 927, 928, 812, 930, 933, 931, 932, 934, 935, 937, 938, 939, 811, 943, 944, 945, 947, 949, 950, 948, 811, 952, 953, 954, 957, 955, 956, 958, 959, 960, 962, 964, 963, 965, 966, 968, 969, 971, 972, 974, 977, 973, 975, 976, 978, 980, 981, 982, 984, 985, 986, 810, 810, 990, 991, 995, 996, 997, 990, 990, 990, 994, 990, 990, 999, 998, 1000, 998, 1001, 1002, 1003, 998, 998]]; - $send(self, '_lex_trans_targs=', Opal.to_a($writer)); + $send(self, '_lex_trans_targs=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_trans_actions"); return self.$private("_lex_trans_actions", "_lex_trans_actions="); })(Opal.get_singleton_class(self), $nesting); $writer = [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 0, 0, 0, 0, 6, 0, 7, 0, 8, 0, 0, 7, 0, 0, 0, 0, 8, 0, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, 11, 0, 7, 0, 8, 0, 0, 7, 0, 0, 0, 0, 8, 0, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0, 14, 0, 15, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, 0, 0, 0, 22, 23, 24, 0, 0, 25, 26, 27, 28, 29, 30, 30, 31, 32, 30, 33, 32, 34, 32, 30, 30, 31, 30, 35, 30, 30, 36, 30, 30, 30, 30, 30, 30, 0, 37, 38, 0, 39, 38, 40, 38, 0, 0, 37, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 0, 0, 0, 46, 29, 47, 30, 30, 30, 47, 48, 0, 49, 0, 29, 30, 50, 30, 51, 52, 53, 0, 0, 0, 0, 0, 54, 55, 56, 0, 29, 0, 57, 0, 30, 58, 30, 59, 30, 60, 61, 62, 61, 63, 61, 0, 64, 65, 64, 66, 64, 67, 68, 0, 69, 0, 0, 0, 0, 70, 70, 0, 0, 71, 71, 72, 0, 29, 73, 0, 0, 0, 70, 0, 74, 0, 7, 0, 8, 0, 0, 7, 0, 0, 0, 0, 8, 0, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 75, 76, 0, 0, 0, 77, 78, 79, 80, 0, 7, 7, 81, 82, 82, 83, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 30, 58, 30, 30, 30, 60, 61, 62, 61, 61, 61, 0, 64, 65, 64, 64, 64, 85, 67, 86, 87, 0, 88, 0, 89, 89, 0, 90, 0, 91, 60, 92, 0, 93, 29, 94, 95, 98, 99, 0, 29, 0, 7, 0, 7, 100, 101, 102, 60, 103, 0, 104, 0, 105, 106, 107, 0, 108, 109, 0, 110, 7, 7, 111, 112, 0, 0, 113, 114, 115, 116, 117, 117, 117, 117, 117, 117, 117, 117, 118, 119, 120, 0, 0, 121, 0, 122, 123, 124, 0, 125, 126, 127, 0, 0, 128, 0, 0, 129, 0, 7, 0, 0, 130, 131, 0, 0, 132, 0, 29, 133, 0, 0, 0, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 138, 139, 140, 0, 141, 142, 143, 7, 7, 144, 0, 0, 145, 146, 147, 148, 117, 117, 117, 117, 117, 117, 117, 117, 149, 150, 151, 0, 0, 152, 0, 153, 154, 155, 0, 156, 157, 158, 0, 0, 159, 0, 0, 160, 0, 7, 0, 0, 161, 162, 0, 0, 163, 0, 29, 164, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 169, 170, 171, 0, 172, 173, 0, 174, 0, 175, 176, 177, 178, 179, 180, 0, 181, 182, 183, 184, 185, 186, 7, 187, 0, 0, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 7, 197, 198, 0, 0, 199, 200, 201, 202, 203, 0, 204, 205, 206, 0, 207, 0, 0, 208, 209, 210, 211, 212, 213, 0, 29, 0, 0, 7, 7, 0, 0, 0, 214, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 217, 218, 219, 220, 221, 60, 222, 0, 223, 0, 0, 0, 224, 0, 225, 226, 0, 0, 227, 0, 0, 0, 228, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 231, 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, 7, 232, 233, 0, 0, 7, 0, 234, 235, 236, 60, 237, 0, 0, 29, 238, 0, 239, 240, 0, 29, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 243, 0, 244, 245, 246, 247, 248, 60, 249, 0, 0, 250, 0, 251, 252, 253, 254, 29, 0, 28, 0, 0, 28, 0, 0, 0, 0, 0, 0, 7, 7, 7, 255, 256, 257, 258, 259, 260, 261, 0, 262, 263, 264, 265, 266, 267, 268, 269, 270, 60, 271, 0, 272, 273, 274, 275, 276, 277, 0, 0, 0, 278, 7, 7, 0, 279, 280, 281, 282, 283, 0, 0, 0, 0, 0, 284, 285, 60, 286, 0, 287, 29, 288, 289, 290, 291, 292, 293, 0, 29, 0, 0, 0, 0, 0, 0, 294, 295, 296, 297, 60, 298, 0, 299, 29, 300, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 304, 0, 8, 0, 0, 7, 305, 0, 0, 305, 305, 0, 0, 7, 306, 0, 306, 0, 306, 306, 306, 0, 0, 306, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 0, 0, 307, 308, 308, 309, 310, 0, 311, 312, 0, 75, 0, 313, 0, 314, 315, 316, 317, 318, 30, 319, 320, 321, 322, 323, 60, 324, 0, 325, 326, 0, 327, 0, 328, 329, 305, 330, 0, 331, 0, 332, 333, 334, 0, 0, 335, 0, 0, 0, 0, 336, 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 338, 0, 339, 340, 0, 0, 0, 341, 0, 0, 342, 343, 344, 345, 346, 347, 0, 348, 349, 349, 0, 350, 0, 351, 352, 352, 0, 0, 353, 354, 355, 0, 356, 357, 358, 0, 7, 359, 360, 361, 0, 362, 117, 117, 117, 117, 117, 117, 117, 117, 363, 364, 365, 0, 0, 366, 0, 367, 368, 369, 0, 370, 371, 372, 0, 0, 373, 0, 0, 374, 0, 7, 0, 0, 375, 376, 0, 0, 377, 0, 29, 378, 0, 0, 0, 0, 0, 379, 380, 0, 0, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 384, 385, 0, 0, 0, 386, 29, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 75, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 387, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 388, 389, 390, 391, 392, 392, 388, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 393, 394, 395, 396, 0, 29, 0, 0, 397, 398, 399, 60, 400, 0, 401, 29, 402, 7, 403, 404, 0, 29, 405, 0, 0, 406, 407, 408, 409, 60, 410, 0, 29, 411, 412, 413, 414, 0, 29, 0, 415, 0, 7, 416, 0, 0, 0, 0, 417, 0, 0, 418, 418, 0, 419, 0, 0, 0, 420, 7, 421, 421, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 423, 424, 0, 425, 426, 427, 428, 429, 430, 60, 431, 0, 432, 0, 0, 433, 434, 435, 436, 437, 438, 439, 440, 441, 0, 442, 0, 443, 444, 0, 0, 445, 446, 447, 0, 0, 448, 0, 0, 447, 449, 449, 450, 451, 0, 452, 453, 0, 454, 455, 456, 0, 457, 458, 0, 0, 459, 460, 447, 447, 461, 0, 0, 462, 462, 0, 463, 0, 464, 465, 7, 0, 466, 0, 467, 468, 469, 470, 470, 471, 471, 0, 0, 472, 473, 473, 474, 474, 475, 476, 476, 477, 477, 478, 479, 479, 480, 480, 0, 0, 481, 482, 483, 484, 485, 486, 486, 483, 485, 487, 418, 488, 0, 0, 0, 489, 0, 0, 490, 491, 421, 421, 421, 492, 421, 493, 494, 29, 495, 496, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 499, 500, 0, 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 500, 502, 503, 0, 504, 0, 505, 0, 0, 0, 0, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 506, 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, 508, 509, 510, 511, 511, 89, 511, 512, 513, 514, 0, 515, 516, 0, 517, 0, 518, 0, 0, 0, 519, 520]]; - $send(self, '_lex_trans_actions=', Opal.to_a($writer)); + $send(self, '_lex_trans_actions=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_to_state_actions"); return self.$private("_lex_to_state_actions", "_lex_to_state_actions="); })(Opal.get_singleton_class(self), $nesting); $writer = [[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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 96, 0, 96, 0, 0, 0, 0, 96, 96, 0, 0, 0, 0, 0, 96, 0, 96, 0, 96, 0, 0, 0, 0, 96, 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, 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, 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, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 96, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0]]; - $send(self, '_lex_to_state_actions=', Opal.to_a($writer)); + $send(self, '_lex_to_state_actions=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_from_state_actions"); return self.$private("_lex_from_state_actions", "_lex_from_state_actions="); })(Opal.get_singleton_class(self), $nesting); $writer = [[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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 97, 0, 97, 0, 0, 0, 0, 97, 97, 0, 0, 0, 0, 0, 97, 0, 97, 0, 97, 0, 0, 0, 0, 97, 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, 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, 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, 97, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 97, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 97, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0]]; - $send(self, '_lex_from_state_actions=', Opal.to_a($writer)); + $send(self, '_lex_from_state_actions=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + self.$attr_accessor("_lex_eof_trans"); return self.$private("_lex_eof_trans", "_lex_eof_trans="); })(Opal.get_singleton_class(self), $nesting); $writer = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 48, 48, 48, 48, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 83, 83, 83, 83, 90, 90, 90, 90, 0, 0, 0, 0, 105, 107, 109, 109, 109, 109, 115, 115, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 190, 192, 192, 192, 204, 204, 204, 212, 214, 214, 214, 214, 214, 220, 212, 212, 212, 212, 212, 212, 212, 246, 246, 246, 246, 246, 246, 212, 262, 212, 262, 246, 246, 212, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 212, 246, 246, 246, 246, 303, 303, 303, 308, 310, 310, 310, 314, 314, 317, 317, 317, 317, 322, 322, 322, 308, 314, 314, 314, 314, 314, 314, 314, 314, 314, 353, 360, 362, 362, 362, 362, 353, 0, 378, 379, 380, 382, 384, 386, 384, 384, 0, 396, 397, 401, 401, 402, 403, 412, 413, 414, 414, 414, 417, 417, 419, 420, 421, 421, 421, 423, 424, 425, 425, 425, 428, 428, 421, 431, 431, 421, 417, 417, 436, 437, 437, 437, 440, 440, 437, 437, 437, 443, 443, 443, 443, 449, 450, 450, 450, 450, 458, 450, 450, 450, 450, 463, 450, 450, 450, 450, 450, 450, 469, 470, 471, 471, 0, 478, 482, 482, 483, 484, 493, 494, 495, 495, 495, 498, 498, 500, 501, 502, 502, 502, 504, 505, 506, 506, 506, 509, 509, 502, 512, 512, 502, 498, 498, 517, 518, 518, 518, 521, 521, 518, 518, 518, 524, 524, 524, 524, 530, 531, 531, 531, 531, 539, 531, 531, 531, 531, 544, 531, 531, 531, 531, 531, 531, 550, 551, 552, 552, 0, 559, 560, 0, 566, 0, 573, 577, 577, 578, 0, 0, 587, 588, 592, 592, 593, 0, 598, 0, 601, 0, 604, 604, 605, 606, 0, 647, 649, 650, 651, 652, 654, 656, 660, 660, 651, 651, 651, 651, 662, 651, 651, 656, 651, 651, 647, 666, 666, 666, 666, 666, 666, 656, 656, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 705, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 651, 0, 749, 750, 751, 753, 749, 749, 757, 0, 776, 778, 780, 781, 782, 783, 784, 786, 783, 783, 783, 783, 783, 789, 783, 783, 791, 789, 789, 783, 0, 810, 811, 115, 115, 814, 815, 115, 811, 811, 818, 820, 823, 811, 824, 811, 825, 826, 828, 830, 811, 818, 831, 831, 820, 831, 835, 831, 831, 831, 831, 0, 190, 843, 844, 843, 843, 0, 853, 854, 856, 858, 860, 858, 862, 0, 874, 875, 876, 877, 879, 881, 883, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 0, 942, 945, 948, 949, 953, 955, 956, 957, 958, 959, 961, 964, 965, 967, 969, 972, 974, 975, 212, 972, 977, 972, 964, 979, 981, 964, 964, 999, 1002, 1004, 1005, 1009, 1012, 1013, 1014, 1015, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1019, 1023, 1025, 999, 999, 964, 1030, 1031, 1031, 1031, 964, 964, 964, 1032, 1039, 1039, 1041, 1043, 1052, 1053, 1054, 1054, 1054, 1057, 1057, 1059, 1060, 1061, 1061, 1061, 1063, 1064, 1065, 1065, 1065, 1068, 1068, 1061, 1071, 1071, 1061, 1057, 1057, 1076, 1077, 1077, 1077, 1080, 1080, 1077, 1077, 1077, 1083, 1083, 1083, 1083, 1089, 1090, 1090, 1090, 1090, 1098, 1090, 1090, 1090, 1090, 1104, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1122, 1123, 1124, 1124, 212, 964, 964, 1128, 964, 959, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 212, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 1181, 949, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 1206, 964, 0, 1214, 1215, 1216, 1218, 1220, 1222, 0, 1231, 1232, 1233, 1234, 1236, 1231, 1239, 0, 314, 1294, 1296, 1297, 1298, 1299, 1301, 1303, 1305, 1308, 1308, 314, 1310, 1312, 1313, 1314, 1310, 1316, 1318, 1318, 1321, 1321, 1324, 1335, 314, 1341, 1343, 1345, 1346, 1349, 1350, 1324, 1324, 1353, 1353, 1353, 1359, 1361, 1362, 1365, 1367, 1368, 1369, 1353, 1353, 1376, 1381, 1386, 1353, 1353, 1393, 1393, 1353, 1353, 1318, 1310, 1310, 1318, 1310, 1310, 1305, 314, 1411, 1412, 1412, 1412, 1412, 1412, 1412, 1418, 1305, 1421, 1422, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1462, 1463, 1423, 1423, 1467, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1521, 1299, 1522, 0, 1528, 1529, 1530, 1532, 1528, 1528, 1528, 0, 1537, 1537, 1537, 1537, 1541]]; - $send(self, '_lex_eof_trans=', Opal.to_a($writer)); + $send(self, '_lex_eof_trans=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_start") })(Opal.get_singleton_class(self), $nesting); $writer = [186]; - $send(self, 'lex_start=', Opal.to_a($writer)); + $send(self, 'lex_start=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_error") })(Opal.get_singleton_class(self), $nesting); $writer = [0]; - $send(self, 'lex_error=', Opal.to_a($writer)); + $send(self, 'lex_error=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_interp_words") })(Opal.get_singleton_class(self), $nesting); $writer = [195]; - $send(self, 'lex_en_interp_words=', Opal.to_a($writer)); + $send(self, 'lex_en_interp_words=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_interp_string") })(Opal.get_singleton_class(self), $nesting); $writer = [261]; - $send(self, 'lex_en_interp_string=', Opal.to_a($writer)); + $send(self, 'lex_en_interp_string=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_plain_words") })(Opal.get_singleton_class(self), $nesting); $writer = [326]; - $send(self, 'lex_en_plain_words=', Opal.to_a($writer)); + $send(self, 'lex_en_plain_words=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_plain_string") })(Opal.get_singleton_class(self), $nesting); $writer = [329]; - $send(self, 'lex_en_plain_string=', Opal.to_a($writer)); + $send(self, 'lex_en_plain_string=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_interp_backslash_delimited") })(Opal.get_singleton_class(self), $nesting); $writer = [331]; - $send(self, 'lex_en_interp_backslash_delimited=', Opal.to_a($writer)); + $send(self, 'lex_en_interp_backslash_delimited=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_plain_backslash_delimited") })(Opal.get_singleton_class(self), $nesting); $writer = [336]; - $send(self, 'lex_en_plain_backslash_delimited=', Opal.to_a($writer)); + $send(self, 'lex_en_plain_backslash_delimited=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_interp_backslash_delimited_words") })(Opal.get_singleton_class(self), $nesting); $writer = [337]; - $send(self, 'lex_en_interp_backslash_delimited_words=', Opal.to_a($writer)); + $send(self, 'lex_en_interp_backslash_delimited_words=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_plain_backslash_delimited_words") })(Opal.get_singleton_class(self), $nesting); $writer = [343]; - $send(self, 'lex_en_plain_backslash_delimited_words=', Opal.to_a($writer)); + $send(self, 'lex_en_plain_backslash_delimited_words=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_regexp_modifiers") })(Opal.get_singleton_class(self), $nesting); $writer = [345]; - $send(self, 'lex_en_regexp_modifiers=', Opal.to_a($writer)); + $send(self, 'lex_en_regexp_modifiers=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_variable") })(Opal.get_singleton_class(self), $nesting); $writer = [347]; - $send(self, 'lex_en_expr_variable=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_variable=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_fname") })(Opal.get_singleton_class(self), $nesting); $writer = [352]; - $send(self, 'lex_en_expr_fname=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_fname=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_endfn") })(Opal.get_singleton_class(self), $nesting); $writer = [465]; - $send(self, 'lex_en_expr_endfn=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_endfn=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_dot") })(Opal.get_singleton_class(self), $nesting); $writer = [473]; - $send(self, 'lex_en_expr_dot=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_dot=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_arg") })(Opal.get_singleton_class(self), $nesting); $writer = [494]; - $send(self, 'lex_en_expr_arg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_arg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_cmdarg") })(Opal.get_singleton_class(self), $nesting); $writer = [525]; - $send(self, 'lex_en_expr_cmdarg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_cmdarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_endarg") })(Opal.get_singleton_class(self), $nesting); $writer = [531]; - $send(self, 'lex_en_expr_endarg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_endarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_mid") })(Opal.get_singleton_class(self), $nesting); $writer = [539]; - $send(self, 'lex_en_expr_mid=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_mid=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_beg") })(Opal.get_singleton_class(self), $nesting); $writer = [563]; - $send(self, 'lex_en_expr_beg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_beg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_labelarg") })(Opal.get_singleton_class(self), $nesting); $writer = [795]; - $send(self, 'lex_en_expr_labelarg=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_labelarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_value") })(Opal.get_singleton_class(self), $nesting); $writer = [802]; - $send(self, 'lex_en_expr_value=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_value=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_expr_end") })(Opal.get_singleton_class(self), $nesting); $writer = [810]; - $send(self, 'lex_en_expr_end=', Opal.to_a($writer)); + $send(self, 'lex_en_expr_end=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_leading_dot") })(Opal.get_singleton_class(self), $nesting); $writer = [990]; - $send(self, 'lex_en_leading_dot=', Opal.to_a($writer)); + $send(self, 'lex_en_leading_dot=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_line_comment") })(Opal.get_singleton_class(self), $nesting); $writer = [998]; - $send(self, 'lex_en_line_comment=', Opal.to_a($writer)); + $send(self, 'lex_en_line_comment=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("lex_en_line_begin") })(Opal.get_singleton_class(self), $nesting); $writer = [186]; - $send(self, 'lex_en_line_begin=', Opal.to_a($writer)); + $send(self, 'lex_en_line_begin=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.const_set($nesting[0], 'ESCAPES', $hash("a".$ord(), "\u0007", "b".$ord(), "\b", "e".$ord(), "\u001b", "f".$ord(), "\f", "n".$ord(), "\n", "r".$ord(), "\r", "s".$ord(), " ", "t".$ord(), "\t", "v".$ord(), "\v", "\\".$ord(), "\\").$freeze()); - Opal.const_set($nesting[0], 'REGEXP_META_CHARACTERS', $send($$($nesting, 'Regexp'), 'union', Opal.to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()); + $const_set($nesting[0], 'ESCAPES', $hash("a".$ord(), "\u0007", "b".$ord(), "\b", "e".$ord(), "\u001b", "f".$ord(), "\f", "n".$ord(), "\n", "r".$ord(), "\r", "s".$ord(), " ", "t".$ord(), "\t", "v".$ord(), "\v", "\\".$ord(), "\\").$freeze()); + $const_set($nesting[0], 'REGEXP_META_CHARACTERS', $send($$('Regexp'), 'union', $to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()); self.$attr_reader("source_buffer"); self.$attr_accessor("diagnostics"); self.$attr_accessor("static_env"); @@ -7827,7 +6890,7 @@ Opal.modules["parser/lexer"] = function(Opal) { self.$attr_accessor("tokens", "comments"); self.$attr_reader("paren_nest", "cmdarg_stack", "cond_stack", "lambda_stack"); - Opal.def(self, '$initialize', $Lexer_initialize$1 = function $$initialize(version) { + $def(self, '$initialize', function $$initialize(version) { var self = this; @@ -7837,23 +6900,22 @@ Opal.modules["parser/lexer"] = function(Opal) { self.tokens = nil; self.comments = nil; return self.$reset(); - }, $Lexer_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$reset', $Lexer_reset$2 = function $$reset(reset_state) { + $def(self, '$reset', function $$reset(reset_state) { var self = this; - if (reset_state == null) { - reset_state = true; - }; + if (reset_state == null) reset_state = true;; if ($truthy(reset_state)) { self.cs = self.$class().$lex_en_line_begin(); - self.cond = $$($nesting, 'StackState').$new("cond"); - self.cmdarg = $$($nesting, 'StackState').$new("cmdarg"); + self.cond = $$('StackState').$new("cond"); + self.cmdarg = $$('StackState').$new("cmdarg"); self.cond_stack = []; - self.cmdarg_stack = [];}; + self.cmdarg_stack = []; + }; self.force_utf32 = false; self.source_pts = nil; self.p = 0; @@ -7879,9 +6941,9 @@ Opal.modules["parser/lexer"] = function(Opal) { self.dedent_level = nil; self.command_start = true; return (self.cs_before_block_comment = self.$class().$lex_en_line_begin()); - }, $Lexer_reset$2.$$arity = -1); + }, -1); - Opal.def(self, '$source_buffer=', $Lexer_source_buffer$eq$3 = function(source_buffer) { + $def(self, '$source_buffer=', function $Lexer_source_buffer$eq$1(source_buffer) { var self = this, source = nil; @@ -7889,12 +6951,12 @@ Opal.modules["parser/lexer"] = function(Opal) { if ($truthy(self.source_buffer)) { source = self.source_buffer.$source(); - if (source.$encoding()['$==']($$$($$($nesting, 'Encoding'), 'UTF_8'))) { + if ($eqeq(source.$encoding(), $$$($$('Encoding'), 'UTF_8'))) { self.source_pts = source.$unpack("U*") } else { self.source_pts = source.$unpack("C*") }; - if (self.source_pts['$[]'](0)['$=='](65279)) { + if ($eqeq(self.source_pts['$[]'](0), 65279)) { return (self.p = 1) } else { return nil @@ -7902,69 +6964,70 @@ Opal.modules["parser/lexer"] = function(Opal) { } else { return (self.source_pts = nil) }; - }, $Lexer_source_buffer$eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$encoding', $Lexer_encoding$4 = function $$encoding() { + $def(self, '$encoding', function $$encoding() { var self = this; return self.source_buffer.$source().$encoding() - }, $Lexer_encoding$4.$$arity = 0); - Opal.const_set($nesting[0], 'LEX_STATES', $hash2(["line_begin", "expr_dot", "expr_fname", "expr_value", "expr_beg", "expr_mid", "expr_arg", "expr_cmdarg", "expr_end", "expr_endarg", "expr_endfn", "expr_labelarg", "interp_string", "interp_words", "plain_string", "plain_words"], {"line_begin": self.$lex_en_line_begin(), "expr_dot": self.$lex_en_expr_dot(), "expr_fname": self.$lex_en_expr_fname(), "expr_value": self.$lex_en_expr_value(), "expr_beg": self.$lex_en_expr_beg(), "expr_mid": self.$lex_en_expr_mid(), "expr_arg": self.$lex_en_expr_arg(), "expr_cmdarg": self.$lex_en_expr_cmdarg(), "expr_end": self.$lex_en_expr_end(), "expr_endarg": self.$lex_en_expr_endarg(), "expr_endfn": self.$lex_en_expr_endfn(), "expr_labelarg": self.$lex_en_expr_labelarg(), "interp_string": self.$lex_en_interp_string(), "interp_words": self.$lex_en_interp_words(), "plain_string": self.$lex_en_plain_string(), "plain_words": self.$lex_en_plain_string()})); + }, 0); + $const_set($nesting[0], 'LEX_STATES', $hash2(["line_begin", "expr_dot", "expr_fname", "expr_value", "expr_beg", "expr_mid", "expr_arg", "expr_cmdarg", "expr_end", "expr_endarg", "expr_endfn", "expr_labelarg", "interp_string", "interp_words", "plain_string", "plain_words"], {"line_begin": self.$lex_en_line_begin(), "expr_dot": self.$lex_en_expr_dot(), "expr_fname": self.$lex_en_expr_fname(), "expr_value": self.$lex_en_expr_value(), "expr_beg": self.$lex_en_expr_beg(), "expr_mid": self.$lex_en_expr_mid(), "expr_arg": self.$lex_en_expr_arg(), "expr_cmdarg": self.$lex_en_expr_cmdarg(), "expr_end": self.$lex_en_expr_end(), "expr_endarg": self.$lex_en_expr_endarg(), "expr_endfn": self.$lex_en_expr_endfn(), "expr_labelarg": self.$lex_en_expr_labelarg(), "interp_string": self.$lex_en_interp_string(), "interp_words": self.$lex_en_interp_words(), "plain_string": self.$lex_en_plain_string(), "plain_words": self.$lex_en_plain_string()})); - Opal.def(self, '$state', $Lexer_state$5 = function $$state() { + $def(self, '$state', function $$state() { var self = this; - return $$($nesting, 'LEX_STATES').$invert().$fetch(self.cs, self.cs) - }, $Lexer_state$5.$$arity = 0); + return $$('LEX_STATES').$invert().$fetch(self.cs, self.cs) + }, 0); - Opal.def(self, '$state=', $Lexer_state$eq$6 = function(state) { + $def(self, '$state=', function $Lexer_state$eq$2(state) { var self = this; - return (self.cs = $$($nesting, 'LEX_STATES').$fetch(state)) - }, $Lexer_state$eq$6.$$arity = 1); + return (self.cs = $$('LEX_STATES').$fetch(state)) + }, 1); - Opal.def(self, '$push_cmdarg', $Lexer_push_cmdarg$7 = function $$push_cmdarg() { + $def(self, '$push_cmdarg', function $$push_cmdarg() { var self = this; self.cmdarg_stack.$push(self.cmdarg); - return (self.cmdarg = $$($nesting, 'StackState').$new("" + "cmdarg." + (self.cmdarg_stack.$count()))); - }, $Lexer_push_cmdarg$7.$$arity = 0); + return (self.cmdarg = $$('StackState').$new("cmdarg." + (self.cmdarg_stack.$count()))); + }, 0); - Opal.def(self, '$pop_cmdarg', $Lexer_pop_cmdarg$8 = function $$pop_cmdarg() { + $def(self, '$pop_cmdarg', function $$pop_cmdarg() { var self = this; return (self.cmdarg = self.cmdarg_stack.$pop()) - }, $Lexer_pop_cmdarg$8.$$arity = 0); + }, 0); - Opal.def(self, '$push_cond', $Lexer_push_cond$9 = function $$push_cond() { + $def(self, '$push_cond', function $$push_cond() { var self = this; self.cond_stack.$push(self.cond); - return (self.cond = $$($nesting, 'StackState').$new("" + "cond." + (self.cond_stack.$count()))); - }, $Lexer_push_cond$9.$$arity = 0); + return (self.cond = $$('StackState').$new("cond." + (self.cond_stack.$count()))); + }, 0); - Opal.def(self, '$pop_cond', $Lexer_pop_cond$10 = function $$pop_cond() { + $def(self, '$pop_cond', function $$pop_cond() { var self = this; return (self.cond = self.cond_stack.$pop()) - }, $Lexer_pop_cond$10.$$arity = 0); + }, 0); - Opal.def(self, '$dedent_level', $Lexer_dedent_level$11 = function $$dedent_level() { + $def(self, '$dedent_level', function $$dedent_level() { var $a, self = this, dedent_level = nil; $a = [self.dedent_level, nil], (dedent_level = $a[0]), (self.dedent_level = $a[1]), $a; return dedent_level; - }, $Lexer_dedent_level$11.$$arity = 0); + }, 0); - Opal.def(self, '$advance', $Lexer_advance$12 = function $$advance() { - var $a, $b, $$13, $$14, $$15, $$16, $$17, $$18, $$19, $$20, $$21, $$22, $$23, $$24, $$25, $$26, $$27, $$28, $$29, $$30, $$31, $$32, $$33, $$34, $$35, $$36, $$37, $$38, $$39, $$40, $$41, self = this, klass = nil, _lex_trans_keys = nil, _lex_key_spans = nil, _lex_index_offsets = nil, _lex_indicies = nil, _lex_trans_targs = nil, _lex_trans_actions = nil, _lex_to_state_actions = nil, _lex_from_state_actions = nil, _lex_eof_trans = nil, pe = nil, p = nil, eof = nil, cmd_state = nil, testEof = nil, _slen = nil, _trans = nil, _keys = nil, _inds = nil, _acts = nil, _nacts = nil, _goto_level = nil, _resume = nil, _eof_trans = nil, _again = nil, _test_eof = nil, _out = nil, $case = nil, _wide = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, tm = nil, heredoc_e = nil, diag_msg = nil, ident_tok = nil, ident_ts = nil, ident_te = nil, current_literal = nil, $writer = nil, line = nil, $ret_or_4 = nil, string = nil, $ret_or_5 = nil, lookahead = nil, $ret_or_6 = nil, token = nil, message = nil, $ret_or_7 = nil, $ret_or_8 = nil, escaped_char = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil, $ret_or_14 = nil, $ret_or_15 = nil, $ret_or_16 = nil, $ret_or_17 = nil, $ret_or_18 = nil, $ret_or_19 = nil, $ret_or_20 = nil, $ret_or_21 = nil, $ret_or_22 = nil, $ret_or_23 = nil, $ret_or_24 = nil, $ret_or_25 = nil, $ret_or_26 = nil, $ret_or_27 = nil, $ret_or_28 = nil, $ret_or_29 = nil, $ret_or_30 = nil, $ret_or_31 = nil, $ret_or_32 = nil, $ret_or_33 = nil, $ret_or_34 = nil, $ret_or_35 = nil, $ret_or_36 = nil, $ret_or_37 = nil, $ret_or_38 = nil, $ret_or_39 = nil, $ret_or_40 = nil, $ret_or_41 = nil, $ret_or_42 = nil, $ret_or_43 = nil, $ret_or_44 = nil, $ret_or_45 = nil, $ret_or_46 = nil, $ret_or_47 = nil, $ret_or_48 = nil, $ret_or_49 = nil, $ret_or_50 = nil, $ret_or_51 = nil, $ret_or_52 = nil, $ret_or_53 = nil, $ret_or_54 = nil, $ret_or_55 = nil, $ret_or_56 = nil, $ret_or_57 = nil, $ret_or_58 = nil, $ret_or_59 = nil, unknown_options = nil, type = nil, delimiter = nil, $ret_or_60 = nil, escape = nil, ident = nil, $ret_or_61 = nil, $ret_or_62 = nil, $ret_or_63 = nil, followed_by_nl = nil, nl_emitted = nil, dots_te = nil, $ret_or_64 = nil, $ret_or_65 = nil, $ret_or_66 = nil, $ret_or_67 = nil, $ret_or_68 = nil, value = nil, $ret_or_69 = nil, $ret_or_70 = nil, $ret_or_71 = nil, $ret_or_72 = nil, digits = nil, $ret_or_73 = nil, $ret_or_74 = nil, $ret_or_75 = nil, invalid_idx = nil, invalid_s = nil, $ret_or_76 = nil, $ret_or_77 = nil, $ret_or_78 = nil, $ret_or_79 = nil, $ret_or_80 = nil, $ret_or_81 = nil, $ret_or_82 = nil, $ret_or_83 = nil, $ret_or_84 = nil, $ret_or_85 = nil, $ret_or_86 = nil, $ret_or_87 = nil, $ret_or_88 = nil, $ret_or_89 = nil, $ret_or_90 = nil, $ret_or_91 = nil, $ret_or_92 = nil, $ret_or_93 = nil, $ret_or_94 = nil, $ret_or_95 = nil, $ret_or_96 = nil, $ret_or_97 = nil, $ret_or_98 = nil, $ret_or_99 = nil, $ret_or_100 = nil, $ret_or_101 = nil, $ret_or_102 = nil, $ret_or_103 = nil, $ret_or_104 = nil, $ret_or_105 = nil, $ret_or_106 = nil, $ret_or_107 = nil, $ret_or_108 = nil, $ret_or_109 = nil, $ret_or_110 = nil, $ret_or_111 = nil, codepoints = nil, codepoint_s = nil, $ret_or_112 = nil, spaces_p = nil, $ret_or_113 = nil, $ret_or_114 = nil, $ret_or_115 = nil, $ret_or_116 = nil, $ret_or_117 = nil, $ret_or_118 = nil, $ret_or_119 = nil, $ret_or_120 = nil, $ret_or_121 = nil, $ret_or_122 = nil, $ret_or_123 = nil, $ret_or_124 = nil, $ret_or_125 = nil, $ret_or_126 = nil, $ret_or_127 = nil, $ret_or_128 = nil, $ret_or_129 = nil, $ret_or_130 = nil, codepoint = nil, $ret_or_131 = nil, $ret_or_132 = nil, $ret_or_133 = nil, $ret_or_134 = nil, $ret_or_135 = nil, $ret_or_136 = nil, $ret_or_137 = nil, $ret_or_138 = nil, $ret_or_139 = nil, $ret_or_140 = nil, $ret_or_141 = nil, $ret_or_142 = nil, $ret_or_143 = nil, $ret_or_144 = nil, $ret_or_145 = nil, $ret_or_146 = nil, $ret_or_147 = nil, $ret_or_148 = nil, $ret_or_149 = nil, $ret_or_150 = nil, $ret_or_151 = nil, $ret_or_152 = nil, $ret_or_153 = nil, $ret_or_154 = nil, $ret_or_155 = nil, $ret_or_156 = nil, $ret_or_157 = nil, $ret_or_158 = nil, $ret_or_159 = nil, $ret_or_160 = nil, $ret_or_161 = nil, $ret_or_162 = nil, $ret_or_163 = nil, $ret_or_164 = nil, $ret_or_165 = nil, $ret_or_166 = nil, $ret_or_167 = nil, $ret_or_168 = nil, $ret_or_169 = nil, $ret_or_170 = nil, $ret_or_171 = nil, $ret_or_172 = nil, $ret_or_173 = nil, $ret_or_174 = nil, $ret_or_175 = nil, $ret_or_176 = nil, $ret_or_177 = nil, $ret_or_178 = nil, $ret_or_179 = nil, $ret_or_180 = nil, $ret_or_181 = nil, $ret_or_182 = nil, $ret_or_183 = nil, $ret_or_184 = nil, $ret_or_185 = nil, $ret_or_186 = nil, $ret_or_187 = nil, $ret_or_188 = nil, $ret_or_189 = nil, $ret_or_190 = nil, $ret_or_191 = nil, $ret_or_192 = nil, $ret_or_193 = nil, $ret_or_194 = nil, $ret_or_195 = nil, $ret_or_196 = nil, $ret_or_197 = nil, $ret_or_198 = nil, $ret_or_199 = nil, $ret_or_200 = nil, $ret_or_201 = nil, $ret_or_202 = nil, $ret_or_203 = nil, $ret_or_204 = nil, $ret_or_205 = nil, $ret_or_206 = nil, $ret_or_207 = nil, $ret_or_208 = nil, $ret_or_209 = nil, $ret_or_210 = nil, $ret_or_211 = nil, $ret_or_212 = nil, $ret_or_213 = nil, $ret_or_214 = nil, $ret_or_215 = nil, $ret_or_216 = nil, $ret_or_217 = nil, $ret_or_218 = nil, $ret_or_219 = nil, $ret_or_220 = nil, $ret_or_221 = nil, $ret_or_222 = nil, $ret_or_223 = nil, $ret_or_224 = nil, $ret_or_225 = nil, $ret_or_226 = nil, $ret_or_227 = nil, $ret_or_228 = nil, $ret_or_229 = nil, $ret_or_230 = nil, $ret_or_231 = nil, $ret_or_232 = nil, $ret_or_233 = nil, $ret_or_234 = nil, $ret_or_235 = nil, $ret_or_236 = nil, $ret_or_237 = nil, $ret_or_238 = nil, $ret_or_239 = nil, $ret_or_240 = nil, $ret_or_241 = nil, $ret_or_242 = nil, $ret_or_243 = nil, $ret_or_244 = nil, $ret_or_245 = nil, $ret_or_246 = nil, $ret_or_247 = nil, $ret_or_248 = nil, $ret_or_249 = nil, $ret_or_250 = nil, $ret_or_251 = nil, $ret_or_252 = nil, $ret_or_253 = nil, $ret_or_254 = nil, $ret_or_255 = nil, $ret_or_256 = nil, $ret_or_257 = nil, $ret_or_258 = nil, $ret_or_259 = nil, $ret_or_260 = nil, $ret_or_261 = nil, $ret_or_262 = nil, $ret_or_263 = nil, $ret_or_264 = nil, $ret_or_265 = nil, $ret_or_266 = nil, $ret_or_267 = nil, $ret_or_268 = nil, $ret_or_269 = nil, $ret_or_270 = nil, $ret_or_271 = nil, $ret_or_272 = nil, $ret_or_273 = nil, $ret_or_274 = nil, $ret_or_275 = nil, $ret_or_276 = nil, $ret_or_277 = nil, $ret_or_278 = nil, $ret_or_279 = nil, $ret_or_280 = nil, $ret_or_281 = nil, $ret_or_282 = nil, $ret_or_283 = nil, $ret_or_284 = nil, $ret_or_285 = nil, $ret_or_286 = nil, $ret_or_287 = nil, $ret_or_288 = nil, $ret_or_289 = nil, $ret_or_290 = nil, $ret_or_291 = nil, $ret_or_292 = nil, $ret_or_293 = nil, $ret_or_294 = nil, $ret_or_295 = nil, $ret_or_296 = nil, $ret_or_297 = nil, $ret_or_298 = nil, $ret_or_299 = nil, $ret_or_300 = nil, $ret_or_301 = nil, $ret_or_302 = nil, $ret_or_303 = nil, new_herebody_s = nil, indent = nil, $ret_or_304 = nil, dedent_body = nil, $ret_or_305 = nil, $ret_or_306 = nil, $ret_or_307 = nil, $ret_or_308 = nil, $ret_or_309 = nil, $ret_or_310 = nil, $ret_or_311 = nil, $ret_or_312 = nil, $ret_or_313 = nil, $ret_or_314 = nil, $ret_or_315 = nil, $ret_or_316 = nil, $ret_or_317 = nil, $ret_or_318 = nil, $ret_or_319 = nil, $ret_or_320 = nil, $ret_or_321 = nil, $ret_or_322 = nil, $ret_or_323 = nil, $ret_or_324 = nil, $ret_or_325 = nil, $ret_or_326 = nil, $ret_or_327 = nil, $ret_or_328 = nil, $ret_or_329 = nil, $ret_or_330 = nil, $ret_or_331 = nil, $ret_or_332 = nil, $ret_or_333 = nil, $ret_or_334 = nil, $ret_or_335 = nil, $ret_or_336 = nil, $ret_or_337 = nil, $ret_or_338 = nil, $ret_or_339 = nil, $ret_or_340 = nil, $ret_or_341 = nil, $ret_or_342 = nil, $ret_or_343 = nil, $ret_or_344 = nil, $ret_or_345 = nil, $ret_or_346 = nil, $ret_or_347 = nil, $ret_or_348 = nil, $ret_or_349 = nil, $ret_or_350 = nil, $ret_or_351 = nil, $ret_or_352 = nil, $ret_or_353 = nil, $ret_or_354 = nil, $ret_or_355 = nil, $ret_or_356 = nil, $ret_or_357 = nil, $ret_or_358 = nil, $ret_or_359 = nil, $ret_or_360 = nil, $ret_or_361 = nil, $ret_or_362 = nil, $ret_or_363 = nil, $ret_or_364 = nil, $ret_or_365 = nil, $ret_or_366 = nil, $ret_or_367 = nil, $ret_or_368 = nil, $ret_or_369 = nil, $ret_or_370 = nil, $ret_or_371 = nil, $ret_or_372 = nil, $ret_or_373 = nil, $ret_or_374 = nil, $ret_or_375 = nil, $ret_or_376 = nil, $ret_or_377 = nil, $ret_or_378 = nil, $ret_or_379 = nil, $ret_or_380 = nil, $ret_or_381 = nil, $ret_or_382 = nil, $ret_or_383 = nil, $ret_or_384 = nil, $ret_or_385 = nil, $ret_or_386 = nil, $ret_or_387 = nil, $ret_or_388 = nil, $ret_or_389 = nil, $ret_or_390 = nil, $ret_or_391 = nil, $ret_or_392 = nil, $ret_or_393 = nil, $ret_or_394 = nil, $ret_or_395 = nil, $ret_or_396 = nil, $ret_or_397 = nil, $ret_or_398 = nil, $ret_or_399 = nil, $ret_or_400 = nil, $ret_or_401 = nil, $ret_or_402 = nil, $ret_or_403 = nil, $ret_or_404 = nil, $ret_or_405 = nil, $ret_or_406 = nil, $ret_or_407 = nil, $ret_or_408 = nil, $ret_or_409 = nil, $ret_or_410 = nil, $ret_or_411 = nil, $ret_or_412 = nil, $ret_or_413 = nil, $ret_or_414 = nil, $ret_or_415 = nil, $ret_or_416 = nil, $ret_or_417 = nil, $ret_or_418 = nil, $ret_or_419 = nil, $ret_or_420 = nil, $ret_or_421 = nil, $ret_or_422 = nil, $ret_or_423 = nil, $ret_or_424 = nil, $ret_or_425 = nil, $ret_or_426 = nil, $ret_or_427 = nil, $ret_or_428 = nil, $ret_or_429 = nil, $ret_or_430 = nil, $ret_or_431 = nil, $ret_or_432 = nil, $ret_or_433 = nil, $ret_or_434 = nil, $ret_or_435 = nil, $ret_or_436 = nil, $ret_or_437 = nil, $ret_or_438 = nil, $ret_or_439 = nil, $ret_or_440 = nil, $ret_or_441 = nil, $ret_or_442 = nil, $ret_or_443 = nil, $ret_or_444 = nil, $ret_or_445 = nil, $ret_or_446 = nil, $ret_or_447 = nil, $ret_or_448 = nil, $ret_or_449 = nil, $ret_or_450 = nil, $ret_or_451 = nil, $ret_or_452 = nil, $ret_or_453 = nil, $ret_or_454 = nil, $ret_or_455 = nil, $ret_or_456 = nil, $ret_or_457 = nil, $ret_or_458 = nil, $ret_or_459 = nil, $ret_or_460 = nil, $ret_or_461 = nil, $ret_or_462 = nil, $ret_or_463 = nil, $ret_or_464 = nil, $ret_or_465 = nil, $ret_or_466 = nil, $ret_or_467 = nil, $ret_or_468 = nil, $ret_or_469 = nil, $ret_or_470 = nil, $ret_or_471 = nil, $ret_or_472 = nil, $ret_or_473 = nil, $ret_or_474 = nil, $ret_or_475 = nil, $ret_or_476 = nil, $ret_or_477 = nil, $ret_or_478 = nil, $ret_or_479 = nil, $ret_or_480 = nil, $ret_or_481 = nil, $ret_or_482 = nil, $ret_or_483 = nil, $ret_or_484 = nil, $ret_or_485 = nil, $ret_or_486 = nil, $ret_or_487 = nil, $ret_or_488 = nil, $ret_or_489 = nil, $ret_or_490 = nil, $ret_or_491 = nil, $ret_or_492 = nil, $ret_or_493 = nil, $ret_or_494 = nil, $ret_or_495 = nil, $ret_or_496 = nil, $ret_or_497 = nil, $ret_or_498 = nil, $ret_or_499 = nil, $ret_or_500 = nil, $ret_or_501 = nil, $ret_or_502 = nil, $ret_or_503 = nil, $ret_or_504 = nil, $ret_or_505 = nil, $ret_or_506 = nil, $ret_or_507 = nil, $ret_or_508 = nil, $ret_or_509 = nil, $ret_or_510 = nil, $ret_or_511 = nil, $ret_or_512 = nil, $ret_or_513 = nil, $ret_or_514 = nil, $ret_or_515 = nil, $ret_or_516 = nil, $ret_or_517 = nil, $ret_or_518 = nil, $ret_or_519 = nil, $ret_or_520 = nil, $ret_or_521 = nil, $ret_or_522 = nil; + $def(self, '$advance', function $$advance() { + var $a, $b, self = this, klass = nil, _lex_trans_keys = nil, _lex_key_spans = nil, _lex_index_offsets = nil, _lex_indicies = nil, _lex_trans_targs = nil, _lex_trans_actions = nil, _lex_to_state_actions = nil, _lex_from_state_actions = nil, _lex_eof_trans = nil, pe = nil, p = nil, eof = nil, cmd_state = nil, testEof = nil, _slen = nil, _trans = nil, _keys = nil, _inds = nil, _acts = nil, _nacts = nil, _goto_level = nil, _resume = nil, _eof_trans = nil, _again = nil, _test_eof = nil, _out = nil, $ret_or_1 = nil, _wide = nil, tm = nil, heredoc_e = nil, diag_msg = nil, ident_tok = nil, ident_ts = nil, ident_te = nil, current_literal = nil, $writer = nil, line = nil, string = nil, lookahead = nil, token = nil, message = nil, escaped_char = nil, $ret_or_2 = nil, unknown_options = nil, type = nil, delimiter = nil, escape = nil, ident = nil, followed_by_nl = nil, nl_emitted = nil, dots_te = nil, value = nil, digits = nil, invalid_idx = nil, invalid_s = nil, codepoints = nil, codepoint_s = nil, spaces_p = nil, codepoint = nil, new_herebody_s = nil, indent = nil, dedent_body = nil; if ($truthy(self.token_queue['$any?']())) { - return self.token_queue.$shift()}; + return self.token_queue.$shift() + }; klass = self.$class(); _lex_trans_keys = klass.$send("_lex_trans_keys"); _lex_key_spans = klass.$send("_lex_key_spans"); @@ -7981,7 +7044,7 @@ Opal.modules["parser/lexer"] = function(Opal) { self.command_start = false; testEof = false; - $b = nil, $a = Opal.to_ary($b), (_slen = ($a[0] == null ? nil : $a[0])), (_trans = ($a[1] == null ? nil : $a[1])), (_keys = ($a[2] == null ? nil : $a[2])), (_inds = ($a[3] == null ? nil : $a[3])), (_acts = ($a[4] == null ? nil : $a[4])), (_nacts = ($a[5] == null ? nil : $a[5])), $b; + $b = nil, $a = $to_ary($b), (_slen = ($a[0] == null ? nil : $a[0])), (_trans = ($a[1] == null ? nil : $a[1])), (_keys = ($a[2] == null ? nil : $a[2])), (_inds = ($a[3] == null ? nil : $a[3])), (_acts = ($a[4] == null ? nil : $a[4])), (_nacts = ($a[5] == null ? nil : $a[5])), $b; _goto_level = 0; _resume = 10; _eof_trans = 15; @@ -7992,11015 +7055,9462 @@ Opal.modules["parser/lexer"] = function(Opal) { if ($truthy($rb_le(_goto_level, 0))) { - if (p['$=='](pe)) { + if ($eqeq(p, pe)) { _goto_level = _test_eof; - continue;;}; - if (self.cs['$=='](0)) { + continue;; + }; + if ($eqeq(self.cs, 0)) { _goto_level = _out; - continue;;};}; + continue;; + }; + }; if ($truthy($rb_le(_goto_level, _resume))) { - $case = _lex_from_state_actions['$[]'](self.cs); - if ((97)['$===']($case)) { - self.ts = p;}; + if ($eqeqeq(97, ($ret_or_1 = _lex_from_state_actions['$[]'](self.cs)))) { + + self.ts = p; + } else { + nil + }; _keys = self.cs['$<<'](1); _inds = _lex_index_offsets['$[]'](self.cs); _slen = _lex_key_spans['$[]'](self.cs); - _wide = (function() {if ($truthy(($ret_or_1 = self.source_pts['$[]'](p)))) { - return $ret_or_1 - } else { - return 0 - }; return nil; })(); - _trans = (function() {if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $rb_gt(_slen, 0)))) { - return $rb_le(_lex_trans_keys['$[]'](_keys), _wide) - } else { - return $ret_or_3 - }; return nil; })()))) { - return $rb_le(_wide, _lex_trans_keys['$[]']($rb_plus(_keys, 1))) - } else { - return $ret_or_2 - }; return nil; })())) { - return _lex_indicies['$[]']($rb_minus($rb_plus(_inds, _wide), _lex_trans_keys['$[]'](_keys))) - } else { - return _lex_indicies['$[]']($rb_plus(_inds, _slen)) - }; return nil; })();}; + _wide = ($truthy(($ret_or_1 = self.source_pts['$[]'](p))) ? ($ret_or_1) : (0)); + _trans = ((($truthy($rb_gt(_slen, 0)) && ($truthy($rb_le(_lex_trans_keys['$[]'](_keys), _wide)))) && ($truthy($rb_le(_wide, _lex_trans_keys['$[]']($rb_plus(_keys, 1)))))) ? (_lex_indicies['$[]']($rb_minus($rb_plus(_inds, _wide), _lex_trans_keys['$[]'](_keys)))) : (_lex_indicies['$[]']($rb_plus(_inds, _slen)))); + }; if ($truthy($rb_le(_goto_level, _eof_trans))) { self.cs = _lex_trans_targs['$[]'](_trans); - if ($truthy(_lex_trans_actions['$[]'](_trans)['$!='](0))) { - $case = _lex_trans_actions['$[]'](_trans); - if ((29)['$===']($case)) { - self.newline_s = p;} - else if ((117)['$===']($case)) { - self.escape_s = p; - self.escape = nil;} - else if ((30)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};} - else if ((60)['$===']($case)) { - self.sharp_s = $rb_minus(p, 1);} - else if ((64)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());} - else if ((310)['$===']($case)) { - tm = p;} - else if ((37)['$===']($case)) { - tm = p;} - else if ((39)['$===']($case)) { - tm = p;} - else if ((41)['$===']($case)) { - tm = p;} - else if ((71)['$===']($case)) { - heredoc_e = p;} - else if ((349)['$===']($case)) { - tm = $rb_minus(p, 1); - diag_msg = "ivar_name";} - else if ((352)['$===']($case)) { - tm = $rb_minus(p, 2); - diag_msg = "cvar_name";} - else if ((360)['$===']($case)) { - self.escape = nil;} - else if ((392)['$===']($case)) { - tm = p;} - else if ((308)['$===']($case)) { - ident_tok = self.$tok(); - ident_ts = self.ts; - ident_te = self.te;} - else if ((479)['$===']($case)) { - self.num_base = 16; - self.num_digits_s = p;} - else if ((473)['$===']($case)) { - self.num_base = 10; - self.num_digits_s = p;} - else if ((476)['$===']($case)) { - self.num_base = 8; - self.num_digits_s = p;} - else if ((470)['$===']($case)) { - self.num_base = 2; - self.num_digits_s = p;} - else if ((485)['$===']($case)) { - self.num_base = 10; - self.num_digits_s = self.ts;} - else if ((447)['$===']($case)) { - self.num_base = 8; - self.num_digits_s = self.ts;} - else if ((462)['$===']($case)) { - self.num_suffix_s = p;} - else if ((455)['$===']($case)) { - self.num_suffix_s = p;} - else if ((452)['$===']($case)) { - self.num_suffix_s = p;} - else if ((89)['$===']($case)) { - tm = p;} - else if ((7)['$===']($case)) { - self.te = $rb_plus(p, 1);} - else if ((113)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { - - - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((5)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((109)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + if ($neqeq(_lex_trans_actions['$[]'](_trans), 0)) { + if ($eqeqeq(29, ($ret_or_1 = _lex_trans_actions['$[]'](_trans)))) { + + self.newline_s = p; + } else if ($eqeqeq(117, $ret_or_1)) { + + self.escape_s = p; + self.escape = nil; + } else if ($eqeqeq(30, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; if ($truthy(self.herebody_s)) { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_4 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_4 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + p = self.herebody_s; + self.herebody_s = nil; + }; + } else if ($eqeqeq(60, $ret_or_1)) { - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((108)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_5 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_5 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_6 = current_literal['$heredoc?']()['$!']()))) { + self.sharp_s = $rb_minus(p, 1); + } else if ($eqeqeq(64, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_6 - }; return nil; })())) { + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p))); + } else if ($eqeqeq(310, $ret_or_1)) { - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() - }; + tm = p; + } else if ($eqeqeq(37, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((115)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$literal().$extend_string(self.$tok(), self.ts, self.te) - } else { + tm = p; + } else if ($eqeqeq(39, $ret_or_1)) { - message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { - return "cvar_name" - } else { - return "ivar_name" - }; return nil; })(); - self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); - };;} - else if ((114)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((111)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$literal().$extend_space(self.ts, self.te);;} - else if ((112)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_7 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_7 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_8 = current_literal['$heredoc?']()['$!']()))) { + tm = p; + } else if ($eqeqeq(41, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_8 - }; return nil; })())) { + tm = p; + } else if ($eqeqeq(71, $ret_or_1)) { + + heredoc_e = p; + } else if ($eqeqeq(349, $ret_or_1)) { + + tm = $rb_minus(p, 1); + diag_msg = "ivar_name"; + } else if ($eqeqeq(352, $ret_or_1)) { + + tm = $rb_minus(p, 2); + diag_msg = "cvar_name"; + } else if ($eqeqeq(360, $ret_or_1)) { + + self.escape = nil; + } else if ($eqeqeq(392, $ret_or_1)) { + + tm = p; + } else if ($eqeqeq(308, $ret_or_1)) { + + ident_tok = self.$tok(); + ident_ts = self.ts; + ident_te = self.te; + } else if ($eqeqeq(479, $ret_or_1)) { + + self.num_base = 16; + self.num_digits_s = p; + } else if ($eqeqeq(473, $ret_or_1)) { + + self.num_base = 10; + self.num_digits_s = p; + } else if ($eqeqeq(476, $ret_or_1)) { + + self.num_base = 8; + self.num_digits_s = p; + } else if ($eqeqeq(470, $ret_or_1)) { + + self.num_base = 2; + self.num_digits_s = p; + } else if ($eqeqeq(485, $ret_or_1)) { + + self.num_base = 10; + self.num_digits_s = self.ts; + } else if ($eqeqeq(447, $ret_or_1)) { + + self.num_base = 8; + self.num_digits_s = self.ts; + } else if ($eqeqeq(462, $ret_or_1)) { + + self.num_suffix_s = p; + } else if ($eqeqeq(455, $ret_or_1)) { + + self.num_suffix_s = p; + } else if ($eqeqeq(452, $ret_or_1)) { + + self.num_suffix_s = p; + } else if ($eqeqeq(89, $ret_or_1)) { - if (token['$[]'](0)['$==']("tLABEL_END")) { + tm = p; + } else if ($eqeqeq(7, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + } else if ($eqeqeq(113, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil; }; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 802; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((6)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_9 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_9 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_10 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_10 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_11 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_11 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_13 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_12 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_14 = self.escape))) { - return $ret_or_14 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;} - else if ((4)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_15 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_16 = current_literal['$heredoc?']()['$!']()))) { - - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_16 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(5, $ret_or_1)) { - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() - }; + self.te = $rb_plus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((145)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((10)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((142)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(109, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; - } else { + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(108, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(115, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_17 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_17 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + message = ($truthy(self.$tok()['$start_with?']("\#@@")) ? ("cvar_name") : ("ivar_name")); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };; + } else if ($eqeqeq(114, $ret_or_1)) { - current_literal.$extend_string(self.$tok(), self.ts, self.te); + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); current_literal.$flush_string(); - };;} - else if ((141)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_18 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_18 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_19 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_19 - }; return nil; })())) { - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() - }; + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(111, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((147)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$literal().$extend_string(self.$tok(), self.ts, self.te) - } else { + self.te = p; + p = $rb_minus(p, 1); - message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { - return "cvar_name" - } else { - return "ivar_name" - }; return nil; })(); - self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); - };;} - else if ((146)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((144)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_20 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_20 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_21 = current_literal['$heredoc?']()['$!']()))) { + self.$literal().$extend_space(self.ts, self.te);; + } else if ($eqeqeq(112, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_21 - }; return nil; })())) { + self.te = p; + p = $rb_minus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(6, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((11)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_22 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_22 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_23 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_23 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_24 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_24 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_25 = (function() {if ($truthy(($ret_or_26 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_26 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_25 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_27 = self.escape))) { - return $ret_or_27 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;} - else if ((9)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_28 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_28 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_29 = current_literal['$heredoc?']()['$!']()))) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_29 - }; return nil; })())) { + p = $rb_minus(self.te, 1);; - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };; + } else if ($eqeqeq(4, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((173)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + p = $rb_minus(self.te, 1);; + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(145, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_30 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_30 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal = self.$literal(); current_literal.$flush_string(); - };;} - else if ((172)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_31 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_31 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_32 = current_literal['$heredoc?']()['$!']()))) { - - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_32 - }; return nil; })())) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil; }; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 802; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((175)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$literal().$extend_space(self.ts, self.te);;} - else if ((176)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_33 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_33 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_34 = current_literal['$heredoc?']()['$!']()))) { + continue;;;; + } else if ($eqeqeq(10, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_34 - }; return nil; })())) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(142, $ret_or_1)) { - if (token['$[]'](0)['$==']("tLABEL_END")) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - self.cs = self.$pop_literal() + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(141, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((179)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = $rb_plus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(147, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + message = ($truthy(self.$tok()['$start_with?']("\#@@")) ? ("cvar_name") : ("ivar_name")); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };; + } else if ($eqeqeq(146, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(144, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_35 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_35 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(11, $ret_or_1)) { - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((178)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_36 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_36 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_37 = current_literal['$heredoc?']()['$!']()))) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_37 - }; return nil; })())) { + p = $rb_minus(self.te, 1);; - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };; + } else if ($eqeqeq(9, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((181)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_38 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_38 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_39 = current_literal['$heredoc?']()['$!']()))) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_39 - }; return nil; })())) { + p = $rb_minus(self.te, 1);; - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((188)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(173, $ret_or_1)) { + self.te = $rb_plus(p, 1); - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((13)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((185)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_40 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_40 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((184)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_41 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_41 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_42 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(172, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_42 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(175, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((190)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$literal().$extend_string(self.$tok(), self.ts, self.te) - } else { + self.te = p; + p = $rb_minus(p, 1); - message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { - return "cvar_name" - } else { - return "ivar_name" - }; return nil; })(); - self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); - };;} - else if ((189)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((187)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_43 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_43 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_44 = current_literal['$heredoc?']()['$!']()))) { + self.$literal().$extend_space(self.ts, self.te);; + } else if ($eqeqeq(176, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_44 - }; return nil; })())) { + self.te = p; + p = $rb_minus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((12)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_45 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_45 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_46 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(179, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_46 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - self.cs = self.$pop_literal() + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(178, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((192)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = $rb_plus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(181, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_47 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_47 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((191)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_48 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_48 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_49 = current_literal['$heredoc?']()['$!']()))) { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(188, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_49 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; - } else { - self.cs = self.$pop_literal() + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil; }; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 802; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((199)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { + continue;;;; + } else if ($eqeqeq(13, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((15)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((195)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(185, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; - } else { + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(184, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(190, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_50 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_50 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + message = ($truthy(self.$tok()['$start_with?']("\#@@")) ? ("cvar_name") : ("ivar_name")); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };; + } else if ($eqeqeq(189, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal = self.$literal(); current_literal.$flush_string(); - };;} - else if ((194)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_51 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_51 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_52 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_52 - }; return nil; })())) { - if (token['$[]'](0)['$==']("tLABEL_END")) { + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(187, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((201)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$literal().$extend_string(self.$tok(), self.ts, self.te) - } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(12, $ret_or_1)) { - message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { - return "cvar_name" - } else { - return "ivar_name" - }; return nil; })(); - self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); - };;} - else if ((200)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((197)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$literal().$extend_space(self.ts, self.te);;} - else if ((198)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_53 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_53 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_54 = current_literal['$heredoc?']()['$!']()))) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_54 - }; return nil; })())) { + p = $rb_minus(self.te, 1);; - if (token['$[]'](0)['$==']("tLABEL_END")) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((14)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_55 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_55 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_56 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(192, $ret_or_1)) { - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_56 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - if (token['$[]'](0)['$==']("tLABEL_END")) { + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - self.cs = self.$pop_literal() + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(191, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((203)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.te = $rb_plus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(199, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { + + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil; }; - } else { + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(15, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(195, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(194, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { - self.cs = self.$pop_literal(); + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(201, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_57 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_57 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + message = ($truthy(self.$tok()['$start_with?']("\#@@")) ? ("cvar_name") : ("ivar_name")); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };; + } else if ($eqeqeq(200, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal = self.$literal(); current_literal.$flush_string(); - };;} - else if ((202)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy((function() {if ($truthy(($ret_or_58 = $rb_ge(self.version, 22)))) { - return self.cond['$active?']()['$!']() - } else { - return $ret_or_58 - }; return nil; })())) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy((function() {if ($truthy(($ret_or_59 = current_literal['$heredoc?']()['$!']()))) { + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; - return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); - } else { - return $ret_or_59 - }; return nil; })())) { - if (token['$[]'](0)['$==']("tLABEL_END")) { + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(197, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$literal().$extend_space(self.ts, self.te);; + } else if ($eqeqeq(198, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 795; + _goto_level = _out; + continue;;; } else { - self.cs = self.$pop_literal() + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(14, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(203, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((205)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$literal().$extend_space(self.ts, self.te);;} - else if ((206)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tREGEXP_OPT", self.$tok(self.ts, $rb_minus(self.te, 1)), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((207)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - unknown_options = self.$tok().$scan(/[^imxouesn]/); - if ($truthy(unknown_options['$any?']())) { - self.$diagnostic("error", "regexp_options", $hash2(["options"], {"options": unknown_options.$join()}))}; - self.$emit("tREGEXP_OPT"); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((16)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { - self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) - } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { - self.$emit("tBACK_REF") - } else { - self.$emit("tGVAR") - }; - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((208)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { - self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) - } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { - self.$emit("tBACK_REF") - } else { - self.$emit("tGVAR") - }; - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((210)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self.$tok()['$=~'](/^@@[0-9]/))) { - self.$diagnostic("error", "cvar_name", $hash2(["name"], {"name": self.$tok()}))}; - self.$emit("tCVAR"); - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((209)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self.$tok()['$=~'](/^@[0-9]/))) { - self.$diagnostic("error", "ivar_name", $hash2(["name"], {"name": self.$tok()}))}; - self.$emit("tIVAR"); - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((231)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((217)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tIDENTIFIER"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((18)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs = 810; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((214)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((226)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((20)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if ($truthy(self['$version?'](23))) { + self.te = $rb_plus(p, 1); - $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };; + } else if ($eqeqeq(202, $ret_or_1)) { - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;; - } else { + self.te = $rb_plus(p, 1); - p = $rb_minus(self.ts, 1); + string = self.$tok(); + if (($truthy($rb_ge(self.version, 22)) && ($not(self.cond['$active?']())))) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true)) + }; + current_literal = self.$literal(); + if (($not(current_literal['$heredoc?']()) && ($truthy((token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)))))) { + + if ($eqeq(token['$[]'](0), "tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 795; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };; + } else if ($eqeqeq(205, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$literal().$extend_space(self.ts, self.te);; + } else if ($eqeqeq(206, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tREGEXP_OPT", self.$tok(self.ts, $rb_minus(self.te, 1)), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); self.cs = 810; _goto_level = _again; - continue;;; - };;} - else if ((213)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((212)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((230)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((227)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tCONSTANT"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((229)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tIDENTIFIER"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((224)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs = 810; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((220)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((225)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((218)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((223)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((19)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((17)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((216)['$===']($case)) { - $case = self.act; - if ((43)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((44)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((45)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};} - else if ((22)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - self.cs = 795; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((23)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if ($truthy((function() {if ($truthy(($ret_or_60 = $rb_ge(self.version, 31)))) { - return self.context.$in_argdef() - } else { - return $ret_or_60 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(207, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); - self.$emit("tBDOT3", "...".$freeze()); + unknown_options = self.$tok().$scan(/[^imxouesn]/); + if ($truthy(unknown_options['$any?']())) { + self.$diagnostic("error", "regexp_options", $hash2(["options"], {"options": unknown_options.$join()})) + }; + self.$emit("tREGEXP_OPT"); self.cs = 810; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(16, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { + self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) + } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { + self.$emit("tBACK_REF") + } else { + self.$emit("tGVAR") + }; + self.cs = self.$stack_pop(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(208, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { + self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) + } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { + self.$emit("tBACK_REF") + } else { + self.$emit("tGVAR") + }; + self.cs = self.$stack_pop(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(210, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^@@[0-9]/))) { + self.$diagnostic("error", "cvar_name", $hash2(["name"], {"name": self.$tok()})) + }; + self.$emit("tCVAR"); + self.cs = self.$stack_pop(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(209, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^@[0-9]/))) { + self.$diagnostic("error", "ivar_name", $hash2(["name"], {"name": self.$tok()})) + }; + self.$emit("tIVAR"); + self.cs = self.$stack_pop(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(231, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - p = $rb_minus(p, 3); + self.$emit_table($$('KEYWORDS_BEGIN')); + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(217, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tIDENTIFIER"); + self.cs = 465; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(18, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); self.cs = 810; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; _goto_level = _again; - continue;;; - };;} - else if ((233)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((232)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((235)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((234)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((21)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((241)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((240)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((239)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((251)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((242)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tIDENTIFIER"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((247)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((245)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((250)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((274)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((257)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if (self.$tok(tm, $rb_plus(tm, 1))['$==']("/".$freeze())) { - if ($truthy($rb_lt(self.version, 30))) { - self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) - } else { - self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) - }}; - p = $rb_minus(tm, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((263)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((25)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((265)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((40)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((252)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((253)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((264)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((260)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); - p = $rb_minus(tm, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((262)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((256)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((255)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((273)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((26)['$===']($case)) { - - p = $rb_minus(self.te, 1);;} - else if ((42)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((24)['$===']($case)) { - $case = self.act; - if ((72)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (self.$tok(tm, $rb_plus(tm, 1))['$==']("/".$freeze())) { - if ($truthy($rb_lt(self.version, 30))) { - self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) - } else { - self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) - }}; - p = $rb_minus(tm, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;} - else if ((73)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); - p = $rb_minus(tm, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;} - else if ((78)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;} - else { - - p = $rb_minus(self.te, 1);;};} - else if ((44)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 494; - _goto_level = _again; - continue;;;;} - else if ((278)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((279)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 494; - _goto_level = _again; - continue;;;;} - else if ((45)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(self.ts, 1); - - self.cs = 494; - _goto_level = _again; - continue;;;;} - else if ((43)['$===']($case)) { - $case = self.act; - if ((85)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self.cond['$active?']())) { - self.$emit("kDO_COND", "do".$freeze(), $rb_minus(self.te, 2), self.te) - } else { - self.$emit("kDO", "do".$freeze(), $rb_minus(self.te, 2), self.te) - }; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((86)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 494; - _goto_level = _again; - continue;;;};} - else if ((289)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_do(true); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((282)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((283)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((284)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((287)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((293)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((292)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((301)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((295)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((299)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((294)['$===']($case)) { - $case = self.act; - if ((93)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((94)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;};} - else if ((57)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((334)['$===']($case)) { - self.te = $rb_plus(p, 1); - - type = (delimiter = self.$tok()['$[]'](0).$chr()); - p = $rb_minus(p, 1); - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((326)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.source_buffer.$slice(self.ts).$chr(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((55)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((347)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - p = $rb_minus(p, 1); - self.$emit("tSYMBEG", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - - self.cs = 352; - _goto_level = _again; - continue;;;;} - else if ((335)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((346)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), $rb_plus(self.ts, 2))); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((69)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((357)['$===']($case)) { - self.te = $rb_plus(p, 1); - - escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); - self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((356)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((336)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((52)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - if ($truthy(self['$version?'](18))) { + continue;;;; + } else if ($eqeqeq(214, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(226, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - ident = self.$tok(self.ts, $rb_minus(self.te, 2)); - self.$emit((function() {if ($truthy(self.source_buffer.$slice(self.ts)['$=~'](/[A-Z]/))) { - return "tCONSTANT" - } else { - return "tIDENTIFIER" - }; return nil; })(), ident, self.ts, $rb_minus(self.te, 2)); p = $rb_minus(p, 1); - if ($truthy((function() {if ($truthy(($ret_or_61 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](ident) - } else { - return $ret_or_61 - }; return nil; })())) { - self.cs = 810 - } else { - self.cs = self.$arg_or_cmdarg(cmd_state) - }; - } else { + p = $rb_minus(p, 1); - self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); - self.cs = 795; - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((49)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); - p = $rb_minus(ident_te, 1); - if ($truthy((function() {if ($truthy(($ret_or_62 = (function() {if ($truthy(($ret_or_63 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](ident_tok) - } else { - return $ret_or_63 - }; return nil; })()))) { - return $rb_lt(self.version, 25) - } else { - return $ret_or_62 - }; return nil; })())) { - self.cs = 465 - } else { - self.cs = 525 - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((320)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs_before_block_comment = self.cs; - - self.cs = 186; - _goto_level = _again; - continue;;;;} - else if ((56)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((304)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((330)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((329)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSTAR", "*".$freeze()); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((325)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((354)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((337)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((350)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) - } else { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(20, $ret_or_1)) { - self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((355)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((361)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((327)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((331)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$emit("tBDOT2") - } else { - self.$emit("tDOT2") - }; - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((332)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - followed_by_nl = $rb_minus(self.te, 1)['$=='](self.newline_s); - nl_emitted = false; - dots_te = (function() {if ($truthy(followed_by_nl)) { - return $rb_minus(self.te, 1) - } else { - return self.te - }; return nil; })(); - if ($truthy($rb_ge(self.version, 30))) { - if ($truthy((function() {if ($truthy(($ret_or_64 = self.lambda_stack['$any?']()))) { - return $rb_plus(self.lambda_stack.$last(), 1)['$=='](self.paren_nest) - } else { - return $ret_or_64 - }; return nil; })())) { - self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + self.te = $rb_plus(p, 1); + + if ($truthy(self['$version?'](23))) { + + $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;; } else { - self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te); - if ($truthy((function() {if ($truthy(($ret_or_65 = (function() {if ($truthy(($ret_or_66 = $rb_ge(self.version, 31)))) { - return followed_by_nl - } else { - return $ret_or_66 - }; return nil; })()))) { - return self.context.$in_argdef() - } else { - return $ret_or_65 - }; return nil; })())) { - - self.$emit("tNL", $rb_minus(self.te, 1), self.te); - nl_emitted = true;}; - } - } else if ($truthy($rb_ge(self.version, 27))) { - self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te) - } else { - self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) - }; - if ($truthy((function() {if ($truthy(($ret_or_67 = followed_by_nl))) { - return nl_emitted['$!']() - } else { - return $ret_or_67 - }; return nil; })())) { - p = $rb_minus(p, 1)}; - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((307)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_68 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_68 - }; return nil; })())) { + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; + };; + } else if ($eqeqeq(213, $ret_or_1)) { - self.cs = 465; + self.te = $rb_plus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + p = $rb_minus(p, 1); - self.cs = self.$arg_or_cmdarg(cmd_state); + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(212, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };;} - else if ((317)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((319)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs_before_block_comment = self.cs; - - self.cs = 186; - _goto_level = _again; - continue;;;;} - else if ((322)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((54)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((73)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((74)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - value = (function() {if ($truthy(($ret_or_69 = self.escape))) { - return $ret_or_69 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((48)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_70 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_70 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(230, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + self.$emit_table($$('KEYWORDS_BEGIN')); self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(227, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tCONSTANT"); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };;} - else if ((53)['$===']($case)) { - - p = $rb_minus(self.te, 1);;} - else if ((68)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((51)['$===']($case)) { - $case = self.act; - if ((99)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((106)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));} - else if ((117)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy($rb_ge(self.version, 27))) { + continue;;;; + } else if ($eqeqeq(229, $ret_or_1)) { - self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + self.te = p; p = $rb_minus(p, 1); - self.cs = 563; + + self.$emit("tIDENTIFIER"); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(224, $ret_or_1)) { - p = $rb_minus(p, 2); + self.te = p; + p = $rb_minus(p, 1); + p = $rb_minus(self.ts, 1); self.cs = 810; - _goto_level = _again; - continue;;; - };} - else if ((121)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((122)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((123)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((127)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;} - else if ((128)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_71 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_71 - }; return nil; })())) { + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(220, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(225, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); + self.te = p; + p = $rb_minus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((132)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;};} - else if ((395)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((396)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((397)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((401)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((77)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((405)['$===']($case)) { - self.te = $rb_plus(p, 1); - - - self.cs = self.$push_literal(self.$tok(), self.$tok(), self.ts); - _goto_level = _again; - continue;;;;} - else if ((404)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((403)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((407)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((406)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((76)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - p = $rb_minus(p, 1); - - self.cs = 563; - _goto_level = _again; - continue;;;;} - else if ((440)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tLAMBDA", "->".$freeze(), self.ts, $rb_plus(self.ts, 2)); - self.lambda_stack.$push(self.paren_nest); - self.cs = 465; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((86)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((415)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts, nil, false, false, true); - _goto_level = _again; - continue;;;;} - else if ((79)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((436)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 473; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((489)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((429)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((434)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tOP_ASGN", self.$tok(self.ts, $rb_minus(self.te, 1))); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((420)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tEH", "?".$freeze()); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((417)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((419)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tSEMI", ";".$freeze()); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((494)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$diagnostic("error", "bare_backslash", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); - p = $rb_minus(p, 1);;} - else if ((414)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((413)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((505)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 352; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((503)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((502)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'KEYWORDS')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((444)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("error", "no_dot_digit_literal");;} - else if ((491)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((433)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 347; - _goto_level = _again; - continue;;;;} - else if ((441)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 473; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((497)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_72 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_72 - }; return nil; })())) { + p = $rb_minus(p, 1); - self.cs = 465; + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(218, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(223, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(19, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$emit_table($$('PUNCTUATION')); + self.cs = 465; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };;} - else if ((439)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((435)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((428)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((442)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((426)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((432)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((84)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_73 = (function() {if ($truthy(($ret_or_74 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_74 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_73 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_75 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_75 - }; return nil; })())) { + continue;;;; + } else if ($eqeqeq(17, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((80)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("error", "no_dot_digit_literal");;} - else if ((83)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_minus(self.te, 1);; - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((78)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((81)['$===']($case)) { - $case = self.act; - if ((145)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(216, $ret_or_1)) { - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) + if ($eqeqeq(43, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS_BEGIN')); + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(44, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(45, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) + nil }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - if (self.$tok()['$==']("{".$freeze())) { - self.paren_nest = $rb_plus(self.paren_nest, 1)}; - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((146)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 352; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((147)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((148)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((149)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((150)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((151)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - if ($truthy((function() {if ($truthy(($ret_or_76 = self['$version?'](18)))) { - return self.$tok()['$==']("not".$freeze()) - } else { - return $ret_or_76 - }; return nil; })())) { - - self.cs = 563; + } else if ($eqeqeq(22, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.te = $rb_plus(p, 1); - self.cs = 494; + self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + self.cs = 795; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };} - else if ((152)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18))) { + continue;;;; + } else if ($eqeqeq(23, $ret_or_1)) { - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_77 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_77 - }; return nil; })())) { + self.te = $rb_plus(p, 1); + + if (($truthy($rb_ge(self.version, 31)) && ($truthy(self.context.$in_argdef())))) { + + self.$emit("tBDOT3", "...".$freeze()); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - self.cs = self.$arg_or_cmdarg(cmd_state) - }; - } else { - self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((153)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((154)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_78 = (function() {if ($truthy(($ret_or_79 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_79 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_78 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_80 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_80 - }; return nil; })())) { + + p = $rb_minus(p, 3); + + self.cs = 810; + _goto_level = _again; + continue;;; + };; + } else if ($eqeqeq(233, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = $rb_plus(p, 1); - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((156)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(232, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); p = $rb_minus(p, 1); p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };} - else if ((157)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + continue;;;; + } else if ($eqeqeq(235, $ret_or_1)) { - self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + self.te = p; p = $rb_minus(p, 1); + } else if ($eqeqeq(234, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((158)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = p; + p = $rb_minus(p, 1); - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((160)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((164)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_81 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_81 - }; return nil; })())) { + p = $rb_minus(p, 1); - self.cs = 465; + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(21, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - self.cs = self.$arg_or_cmdarg(cmd_state); + p = $rb_minus(self.te, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((165)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { + p = $rb_minus(p, 1); - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - }; - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((167)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((168)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};} - else if ((516)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - if ($truthy($rb_lt(self.version, 27))) { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(241, $ret_or_1)) { - p = $rb_minus(p, 1); - self.cs = 186; + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 494; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(240, $ret_or_1)) { - self.$emit("tBDOT3"); - self.cs = 563; + self.te = $rb_plus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;} - else if ((95)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((510)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((513)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_lt(self.version, 27))) { + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(239, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); p = $rb_minus(p, 1); - self.cs = 186; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;};;} - else if ((515)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - if ($truthy($rb_lt(self.version, 27))) { + continue;;;; + } else if ($eqeqeq(251, $ret_or_1)) { + self.te = p; p = $rb_minus(p, 1); - self.cs = 186; + + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;; + } else if ($eqeqeq(242, $ret_or_1)) { - self.$emit("tBDOT2"); - self.cs = 563; + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tIDENTIFIER"); + self.cs = self.$arg_or_cmdarg(cmd_state); p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };;} - else if ((514)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;} - else if ((512)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((90)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - if ($truthy($rb_lt(self.version, 27))) { + continue;;;; + } else if ($eqeqeq(247, $ret_or_1)) { - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + self.te = p; p = $rb_minus(p, 1); - self.cs = 186; + + self.$emit_table($$('PUNCTUATION')); + self.cs = 494; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;};;} - else if ((87)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((91)['$===']($case)) { - $case = self.act; - if ((181)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy($rb_lt(self.version, 27))) { + continue;;;; + } else if ($eqeqeq(245, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(250, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(274, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(257, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + if ($eqeq(self.$tok(tm, $rb_plus(tm, 1)), "/".$freeze())) { + if ($truthy($rb_lt(self.version, 30))) { + self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) + } else { + self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) + } + }; + p = $rb_minus(tm, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(263, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(25, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(265, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(tm, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(40, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(252, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(253, $ret_or_1)) { + + self.te = $rb_plus(p, 1); - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); p = $rb_minus(p, 1); - self.cs = 186; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;};} - else if ((185)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 186; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};} - else if ((519)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_comment(self.eq_begin_s, self.te); - - self.cs = self.cs_before_block_comment; - _goto_level = _again; - continue;;;;} - else if ((518)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "embedded_document", nil, self.$range(self.eq_begin_s, $rb_plus(self.eq_begin_s, "=begin".$length())));;} - else if ((106)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.eq_begin_s = self.ts; - - self.cs = 998; - _goto_level = _again; - continue;;;;} - else if ((2)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(pe, 3);;} - else if ((98)['$===']($case)) { - self.te = $rb_plus(p, 1); - - cmd_state = true; - p = $rb_minus(p, 1); - - self.cs = 802; - _goto_level = _again; - continue;;;;} - else if ((99)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((100)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((105)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.eq_begin_s = self.ts; - - self.cs = 998; - _goto_level = _again; - continue;;;;} - else if ((104)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - cmd_state = true; - p = $rb_minus(p, 1); - - self.cs = 802; - _goto_level = _again; - continue;;;;} - else if ((1)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - cmd_state = true; - p = $rb_minus(p, 1); - - self.cs = 802; - _goto_level = _again; - continue;;;;} - else if ((67)['$===']($case)) { - - self.newline_s = p;; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());;} - else if ((110)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + continue;;;; + } else if ($eqeqeq(264, $ret_or_1)) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(260, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); + p = $rb_minus(tm, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(262, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(256, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(255, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(273, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(26, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + } else if ($eqeqeq(42, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(24, $ret_or_1)) { + + if ($eqeqeq(72, ($ret_or_2 = self.act))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - p = $rb_plus(p, 1); - _goto_level = _out; + p = $rb_minus(self.te, 1);; + if ($eqeq(self.$tok(tm, $rb_plus(tm, 1)), "/".$freeze())) { + if ($truthy($rb_lt(self.version, 30))) { + self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) + } else { + self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) + } + }; + p = $rb_minus(tm, 1); + + self.cs = 563; + _goto_level = _again; continue;;; - } else { + } else if ($eqeqeq(73, $ret_or_2)) { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); + p = $rb_minus(tm, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + self.cs = 563; + _goto_level = _again; + continue;;; + } else if ($eqeqeq(78, $ret_or_2)) { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_82 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_82 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((143)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); - p = $rb_plus(p, 1); - _goto_level = _out; + self.cs = 810; + _goto_level = _again; continue;;; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + + p = $rb_minus(self.te, 1);; }; - } else { + } else if ($eqeqeq(44, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_83 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_83 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((174)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + p = $rb_minus(self.ts, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + self.cs = 494; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(278, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(279, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 494; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(45, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(self.ts, 1); + + self.cs = 494; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(43, $ret_or_1)) { + + if ($eqeqeq(85, ($ret_or_2 = self.act))) { + - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + if ($truthy(self.cond['$active?']())) { + self.$emit("kDO_COND", "do".$freeze(), $rb_minus(self.te, 2), self.te) + } else { + self.$emit("kDO", "do".$freeze(), $rb_minus(self.te, 2), self.te) + }; + self.cs = 802; p = $rb_plus(p, 1); _goto_level = _out; continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + } else if ($eqeqeq(86, $ret_or_2)) { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_84 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_84 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((180)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); - p = $rb_plus(p, 1); - _goto_level = _out; + self.cs = 494; + _goto_level = _again; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + nil }; - } else { + } else if ($eqeqeq(289, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_85 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_85 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((186)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.$emit_do(true); + self.cs = 802; - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(282, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_86 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_86 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((193)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + p = $rb_minus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(283, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_87 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_87 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((196)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + p = $rb_minus(p, 1); - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(284, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(287, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(293, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(292, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(301, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(295, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(299, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(294, $ret_or_1)) { + + if ($eqeqeq(93, ($ret_or_2 = self.act))) { + - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 563; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + continue;;; + } else if ($eqeqeq(94, $ret_or_2)) { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_88 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_88 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((204)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); - p = $rb_plus(p, 1); - _goto_level = _out; + self.cs = 563; + _goto_level = _again; continue;;; } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + nil }; - } else { + } else if ($eqeqeq(57, $ret_or_1)) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_89 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_89 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + self.te = $rb_plus(p, 1); - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((275)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((266)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((258)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((358)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); - self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((333)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - followed_by_nl = $rb_minus(self.te, 1)['$=='](self.newline_s); - nl_emitted = false; - dots_te = (function() {if ($truthy(followed_by_nl)) { - return $rb_minus(self.te, 1) - } else { - return self.te - }; return nil; })(); - if ($truthy($rb_ge(self.version, 30))) { - if ($truthy((function() {if ($truthy(($ret_or_90 = self.lambda_stack['$any?']()))) { - return $rb_plus(self.lambda_stack.$last(), 1)['$=='](self.paren_nest) - } else { - return $ret_or_90 - }; return nil; })())) { - self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) - } else { - - self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te); - if ($truthy((function() {if ($truthy(($ret_or_91 = (function() {if ($truthy(($ret_or_92 = $rb_ge(self.version, 31)))) { - return followed_by_nl - } else { - return $ret_or_92 - }; return nil; })()))) { - return self.context.$in_argdef() - } else { - return $ret_or_91 - }; return nil; })())) { - - self.$emit("tNL", $rb_minus(self.te, 1), self.te); - nl_emitted = true;}; - } - } else if ($truthy($rb_ge(self.version, 27))) { - self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te) - } else { - self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) - }; - if ($truthy((function() {if ($truthy(($ret_or_93 = followed_by_nl))) { - return nl_emitted['$!']() - } else { - return $ret_or_93 - }; return nil; })())) { - p = $rb_minus(p, 1)}; - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((321)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - self.cs_before_block_comment = self.cs; - - self.cs = 186; - _goto_level = _again; - continue;;;;;} - else if ((443)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - if (self.paren_nest['$=='](0)) { - self.$diagnostic("warning", "triple_dot_at_eol", nil, self.$range(self.ts, $rb_minus(self.te, 1)))}; - self.$emit("tDOT3", "...".$freeze(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((520)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - self.$emit_comment(self.eq_begin_s, self.te); - - self.cs = self.cs_before_block_comment; - _goto_level = _again; - continue;;;;;} - else if ((517)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1);;} - else if ((107)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - self.eq_begin_s = self.ts; - - self.cs = 998; - _goto_level = _again; - continue;;;;;} - else if ((3)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(pe, 3);;;} - else if ((465)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$13 = function(chars){var self = $$13.$$s == null ? this : $$13.$$s; - + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(334, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tRATIONAL", self.$Rational(chars));}, $$13.$$s = self, $$13.$$arity = 1, $$13));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_94 = (function() {if ($truthy(($ret_or_95 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_95 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_94 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_96 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_96 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + type = (delimiter = self.$tok()['$[]'](0).$chr()); + p = $rb_minus(p, 1); - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((463)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$14 = function(chars){var self = $$14.$$s == null ? this : $$14.$$s; - + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(326, $ret_or_1)) { + self.te = $rb_plus(p, 1); - if (chars == null) { - chars = nil; - }; - return self.$emit("tIMAGINARY", self.$Complex(0, chars));}, $$14.$$s = self, $$14.$$arity = 1, $$14));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_97 = (function() {if ($truthy(($ret_or_98 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_98 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_97 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_99 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_99 - }; return nil; })())) { + $b = [self.source_buffer.$slice(self.ts).$chr(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(55, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((468)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$15 = function(chars){var self = $$15.$$s == null ? this : $$15.$$s; - + self.te = $rb_plus(p, 1); + $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - if (chars == null) { - chars = nil; - }; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, $$15.$$s = self, $$15.$$arity = 1, $$15));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_100 = (function() {if ($truthy(($ret_or_101 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_101 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_100 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_102 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_102 - }; return nil; })())) { + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(347, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = $rb_plus(p, 1); - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((466)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$16 = function(chars){var self = $$16.$$s == null ? this : $$16.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + p = $rb_minus(p, 1); + p = $rb_minus(p, 1); + self.$emit("tSYMBEG", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + self.cs = 352; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(335, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); - return (p = $rb_minus(p, 2));}, $$16.$$s = self, $$16.$$arity = 1, $$16));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_103 = (function() {if ($truthy(($ret_or_104 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_104 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_103 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_105 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_105 - }; return nil; })())) { + self.te = $rb_plus(p, 1); - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((464)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$17 = function(chars){var self = $$17.$$s == null ? this : $$17.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(346, $ret_or_1)) { + self.te = $rb_plus(p, 1); - if (chars == null) { - chars = nil; - }; - self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); - return (p = $rb_minus(p, 2));}, $$17.$$s = self, $$17.$$arity = 1, $$17));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_106 = (function() {if ($truthy(($ret_or_107 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_107 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_106 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_108 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_108 - }; return nil; })())) { + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), $rb_plus(self.ts, 2))); + self.cs = 810; - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(69, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((467)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$18 = function(chars){var self = $$18.$$s == null ? this : $$18.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + self.te = $rb_plus(p, 1); + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); + self.cs = 810; - if (chars == null) { - chars = nil; - }; - self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 6)); - return (p = $rb_minus(p, 6));}, $$18.$$s = self, $$18.$$arity = 1, $$18));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_109 = (function() {if ($truthy(($ret_or_110 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_110 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_109 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_111 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_111 - }; return nil; })())) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(357, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = $rb_plus(p, 1); - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((456)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$19 = function(chars){var self = $$19.$$s == null ? this : $$19.$$s; - + escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); + self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); + p = $rb_minus(self.ts, 1); + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(356, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Float(chars)));}, $$19.$$s = self, $$19.$$arity = 1, $$19));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = $rb_plus(p, 1); - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((457)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$20 = function(chars){var self = $$20.$$s == null ? this : $$20.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(336, $ret_or_1)) { + self.te = $rb_plus(p, 1); - if (chars == null) { - chars = nil; - }; - self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 2)); - return (p = $rb_minus(p, 2));}, $$20.$$s = self, $$20.$$arity = 1, $$20));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.$emit_table($$('PUNCTUATION_BEGIN')); - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((458)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$21 = function(chars){var self = $$21.$$s == null ? this : $$21.$$s; - + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(52, $ret_or_1)) { + self.te = $rb_plus(p, 1); - if (chars == null) { - chars = nil; + p = $rb_minus(p, 1); + if ($truthy(self['$version?'](18))) { + + ident = self.$tok(self.ts, $rb_minus(self.te, 2)); + self.$emit(($truthy(self.source_buffer.$slice(self.ts)['$=~'](/[A-Z]/)) ? ("tCONSTANT") : ("tIDENTIFIER")), ident, self.ts, $rb_minus(self.te, 2)); + p = $rb_minus(p, 1); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](ident))))) { + self.cs = 810 + } else { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; + } else { + + self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); + self.cs = 795; }; - return self.$emit("tRATIONAL", self.$Rational(chars));}, $$21.$$s = self, $$21.$$arity = 1, $$21));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((460)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$22 = function(chars){var self = $$22.$$s == null ? this : $$22.$$s; - + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(49, $ret_or_1)) { + self.te = $rb_plus(p, 1); - if (chars == null) { - chars = nil; + self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); + p = $rb_minus(ident_te, 1); + if ((($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](ident_tok)))) && ($truthy($rb_lt(self.version, 25))))) { + self.cs = 465 + } else { + self.cs = 525 }; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, $$22.$$s = self, $$22.$$arity = 1, $$22));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((459)['$===']($case)) { - - self.num_xfrm = $send(self, 'lambda', [], ($$23 = function(chars){var self = $$23.$$s == null ? this : $$23.$$s; - if (self.ts == null) self.ts = nil; - if (self.te == null) self.te = nil; - + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(320, $ret_or_1)) { + self.te = $rb_plus(p, 1); - if (chars == null) { - chars = nil; - }; - self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 6)); - return (p = $rb_minus(p, 6));}, $$23.$$s = self, $$23.$$arity = 1, $$23));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((137)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - if ($truthy($rb_lt(self.version, 24))) { + self.cs = 186; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(56, $ret_or_1)) { - if ($truthy((function() {if ($truthy(($ret_or_112 = codepoints['$start_with?'](" ")))) { - return $ret_or_112 - } else { - return codepoints['$start_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; - if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; - if ($truthy((function() {if ($truthy(($ret_or_113 = codepoints['$end_with?'](" ")))) { - return $ret_or_113 - } else { - return codepoints['$end_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$24 = function($mlhs_tmp1){var self = $$24.$$s == null ? this : $$24.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; - if (self.escape == null) self.escape = nil; - + self.te = $rb_plus(p, 1); + p = $rb_minus(self.ts, 1); - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; - if ($truthy(spaces)) { - return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(304, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(330, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(329, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSTAR", "*".$freeze()); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(325, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(354, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(337, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(350, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) } else { - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); - - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); - };}, $$24.$$s = self, $$24.$$brk = $brk, $$24.$$arity = 1, $$24.$$has_top_level_mlhs_arg = true, $$24)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_114 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_114 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_115 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_115 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_116 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_116 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_117 = (function() {if ($truthy(($ret_or_118 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_118 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_117 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_119 = self.escape))) { - return $ret_or_119 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((168)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - if ($truthy($rb_lt(self.version, 24))) { - - if ($truthy((function() {if ($truthy(($ret_or_120 = codepoints['$start_with?'](" ")))) { - return $ret_or_120 - } else { - return codepoints['$start_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; - if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; - if ($truthy((function() {if ($truthy(($ret_or_121 = codepoints['$end_with?'](" ")))) { - return $ret_or_121 - } else { - return codepoints['$end_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$25 = function($mlhs_tmp1){var self = $$25.$$s == null ? this : $$25.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; - if (self.escape == null) self.escape = nil; - + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(355, $ret_or_1)) { + self.te = p; + p = $rb_minus(p, 1); - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; - if ($truthy(spaces)) { - return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(361, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(327, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION_BEGIN')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(331, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$emit("tBDOT2") } else { - - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + self.$emit("tDOT2") + }; + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(332, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + followed_by_nl = $rb_minus(self.te, 1)['$=='](self.newline_s); + nl_emitted = false; + dots_te = ($truthy(followed_by_nl) ? ($rb_minus(self.te, 1)) : (self.te)); + if ($truthy($rb_ge(self.version, 30))) { + if (($truthy(self.lambda_stack['$any?']()) && ($eqeq($rb_plus(self.lambda_stack.$last(), 1), self.paren_nest)))) { + self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + } else { - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); - };}, $$25.$$s = self, $$25.$$brk = $brk, $$25.$$arity = 1, $$25.$$has_top_level_mlhs_arg = true, $$25)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_122 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_122 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_123 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_123 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_124 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_124 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_125 = (function() {if ($truthy(($ret_or_126 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_126 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_125 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_127 = self.escape))) { - return $ret_or_127 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((382)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - if ($truthy($rb_lt(self.version, 24))) { - - if ($truthy((function() {if ($truthy(($ret_or_128 = codepoints['$start_with?'](" ")))) { - return $ret_or_128 - } else { - return codepoints['$start_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; - if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; - if ($truthy((function() {if ($truthy(($ret_or_129 = codepoints['$end_with?'](" ")))) { - return $ret_or_129 + self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te); + if ((($truthy($rb_ge(self.version, 31)) && ($truthy(followed_by_nl))) && ($truthy(self.context.$in_argdef())))) { + + self.$emit("tNL", $rb_minus(self.te, 1), self.te); + nl_emitted = true; + }; + } + } else if ($truthy($rb_ge(self.version, 27))) { + self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te) } else { - return codepoints['$end_with?']("\t") - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$26 = function($mlhs_tmp1){var self = $$26.$$s == null ? this : $$26.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; - if (self.escape == null) self.escape = nil; - + self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + }; + if (($truthy(followed_by_nl) && ($not(nl_emitted)))) { + p = $rb_minus(p, 1) + }; + self.cs = 563; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(307, $ret_or_1)) { - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; - if ($truthy(spaces)) { - return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); - - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); - };}, $$26.$$s = self, $$26.$$brk = $brk, $$26.$$arity = 1, $$26.$$has_top_level_mlhs_arg = true, $$26)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_130 = self.escape))) { - return $ret_or_130 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((118)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_131 = $rb_ge(self.version, 30)))) { + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(317, $ret_or_1)) { - if ($truthy(($ret_or_132 = codepoint['$=='](117)))) { - return $ret_or_132 - } else { - return codepoint['$=='](85) - }; - } else { - return $ret_or_131 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_133 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_133 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_134 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_134 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_135 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_135 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_136 = (function() {if ($truthy(($ret_or_137 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_137 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_136 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_138 = self.escape))) { - return $ret_or_138 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((149)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_139 = $rb_ge(self.version, 30)))) { + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(319, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; + + self.cs = 186; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(322, $ret_or_1)) { - if ($truthy(($ret_or_140 = codepoint['$=='](117)))) { - return $ret_or_140 + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(54, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(73, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));; + } else if ($eqeqeq(74, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return codepoint['$=='](85) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_139 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_141 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_141 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_142 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_142 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_143 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_143 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_144 = (function() {if ($truthy(($ret_or_145 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_145 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_144 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_146 = self.escape))) { - return $ret_or_146 + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(48, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((363)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_147 = $rb_ge(self.version, 30)))) { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(53, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + } else if ($eqeqeq(68, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; - if ($truthy(($ret_or_148 = codepoint['$=='](117)))) { - return $ret_or_148 + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(51, $ret_or_1)) { + + if ($eqeqeq(99, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(106, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + } else if ($eqeqeq(117, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy($rb_ge(self.version, 27))) { + + self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + p = $rb_minus(p, 2); + + self.cs = 810; + _goto_level = _again; + continue;;; + }; + } else if ($eqeqeq(121, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION_BEGIN')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(122, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(123, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS_BEGIN')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(127, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; + } else if ($eqeqeq(128, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(132, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; } else { - return codepoint['$=='](85) + nil }; - } else { - return $ret_or_147 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_149 = self.escape))) { - return $ret_or_149 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((121)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_escape");; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_150 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_150 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_151 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_151 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_152 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_152 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_153 = (function() {if ($truthy(($ret_or_154 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_154 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_153 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_155 = self.escape))) { - return $ret_or_155 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((152)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_escape");; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_156 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_156 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_157 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_157 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_158 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_158 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_159 = (function() {if ($truthy(($ret_or_160 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_160 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_159 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_161 = self.escape))) { - return $ret_or_161 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((366)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_escape");; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_162 = self.escape))) { - return $ret_or_162 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((123)['$===']($case)) { - - self.escape = "\u007F";; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_163 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_163 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_164 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_164 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_165 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_165 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_166 = (function() {if ($truthy(($ret_or_167 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_167 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_166 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_168 = self.escape))) { - return $ret_or_168 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((154)['$===']($case)) { - - self.escape = "\u007F";; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_169 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_169 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_170 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_170 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_171 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_171 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_172 = (function() {if ($truthy(($ret_or_173 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_173 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_172 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_174 = self.escape))) { - return $ret_or_174 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((368)['$===']($case)) { - - self.escape = "\u007F";; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_175 = self.escape))) { - return $ret_or_175 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((120)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_176 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_176 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_177 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_177 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_178 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_178 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_179 = (function() {if ($truthy(($ret_or_180 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_180 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_179 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_181 = self.escape))) { - return $ret_or_181 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((151)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_182 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_182 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_183 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_183 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_184 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_184 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_185 = (function() {if ($truthy(($ret_or_186 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_186 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_185 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_187 = self.escape))) { - return $ret_or_187 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((365)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_188 = self.escape))) { - return $ret_or_188 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((140)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_189 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_189 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_190 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_190 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_191 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_191 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_192 = (function() {if ($truthy(($ret_or_193 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_193 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_192 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_194 = self.escape))) { - return $ret_or_194 + } else if ($eqeqeq(395, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(396, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(397, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(401, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(77, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(405, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + + self.cs = self.$push_literal(self.$tok(), self.$tok(), self.ts); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(404, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(403, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(407, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(406, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(76, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(p, 1); + + self.cs = 563; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(440, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tLAMBDA", "->".$freeze(), self.ts, $rb_plus(self.ts, 2)); + self.lambda_stack.$push(self.paren_nest); + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(86, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(415, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts, nil, false, false, true); + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(79, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(436, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 473; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(489, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(429, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(434, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tOP_ASGN", self.$tok(self.ts, $rb_minus(self.te, 1))); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(420, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tEH", "?".$freeze()); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(417, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(419, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tSEMI", ";".$freeze()); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(494, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$diagnostic("error", "bare_backslash", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + p = $rb_minus(p, 1);; + } else if ($eqeqeq(414, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));; + } else if ($eqeqeq(413, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(505, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('KEYWORDS')); + self.cs = 352; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(503, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(502, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('KEYWORDS')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(444, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("error", "no_dot_digit_literal");; + } else if ($eqeqeq(491, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(433, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 347; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(441, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 473; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(497, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((171)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_195 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(439, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(435, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(428, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(442, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(426, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(432, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));; + } else if ($eqeqeq(84, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - return $ret_or_195 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(80, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$diagnostic("error", "no_dot_digit_literal");; + } else if ($eqeqeq(83, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_196 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_196 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_197 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_197 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_198 = (function() {if ($truthy(($ret_or_199 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_199 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_198 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_200 = self.escape))) { - return $ret_or_200 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((385)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_201 = self.escape))) { - return $ret_or_201 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((139)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_202 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_202 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_203 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_203 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_204 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_204 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_205 = (function() {if ($truthy(($ret_or_206 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_206 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_205 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_207 = self.escape))) { - return $ret_or_207 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((170)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_208 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_208 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_209 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_209 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_210 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_210 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_211 = (function() {if ($truthy(($ret_or_212 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_212 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_211 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_213 = self.escape))) { - return $ret_or_213 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((384)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_214 = self.escape))) { - return $ret_or_214 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((134)['$===']($case)) { - - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_215 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_215 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_216 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_216 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_217 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_217 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_218 = (function() {if ($truthy(($ret_or_219 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_219 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_218 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_220 = self.escape))) { - return $ret_or_220 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((165)['$===']($case)) { - - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_221 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(78, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));; + } else if ($eqeqeq(81, $ret_or_1)) { + + if ($eqeqeq(145, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) + } else { + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) + } else { + self.$emit_do() + }; + if ($eqeq(self.$tok(), "{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1) + }; + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(146, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 352; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(147, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(148, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(149, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(150, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(151, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + if (($truthy(self['$version?'](18)) && ($eqeq(self.$tok(), "not".$freeze())))) { + + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(152, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18))) { + + self.$emit("tIDENTIFIER"); + if (!($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; + } else { + self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(153, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(154, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(156, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(157, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(158, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(160, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(164, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(165, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(tm, self.te)) { + self.$emit("tFID") + } else { + + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + }; + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(167, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(168, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return $ret_or_221 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + nil + }; + } else if ($eqeqeq(516, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + if ($truthy($rb_lt(self.version, 27))) { + + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_222 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_222 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_223 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_223 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_224 = (function() {if ($truthy(($ret_or_225 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_225 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_224 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_226 = self.escape))) { - return $ret_or_226 + + self.$emit("tBDOT3"); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(95, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(tm, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(510, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(513, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_lt(self.version, 27))) { + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(515, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + if ($truthy($rb_lt(self.version, 27))) { + + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((379)['$===']($case)) { - - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_227 = self.escape))) { - return $ret_or_227 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((133)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_228 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + self.$emit("tBDOT2"); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(514, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(tm, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(512, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(90, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + if ($truthy($rb_lt(self.version, 27))) { + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };; + } else if ($eqeqeq(87, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(91, $ret_or_1)) { + + if ($eqeqeq(181, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + if ($truthy($rb_lt(self.version, 27))) { + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(185, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 186; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - return $ret_or_228 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + nil + }; + } else if ($eqeqeq(519, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_comment(self.eq_begin_s, self.te); + + self.cs = self.cs_before_block_comment; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(518, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("fatal", "embedded_document", nil, self.$range(self.eq_begin_s, $rb_plus(self.eq_begin_s, "=begin".$length())));; + } else if ($eqeqeq(106, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + self.eq_begin_s = self.ts; + + self.cs = 998; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(2, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(pe, 3);; + } else if ($eqeqeq(98, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + cmd_state = true; + p = $rb_minus(p, 1); + + self.cs = 802; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(99, $ret_or_1)) { + + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;; + } else if ($eqeqeq(100, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + } else if ($eqeqeq(105, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + self.eq_begin_s = self.ts; + + self.cs = 998; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(104, $ret_or_1)) { + + self.te = p; + p = $rb_minus(p, 1); + + cmd_state = true; + p = $rb_minus(p, 1); + + self.cs = 802; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(1, $ret_or_1)) { + + + p = $rb_minus(self.te, 1);; + + cmd_state = true; + p = $rb_minus(p, 1); + + self.cs = 802; + _goto_level = _again; + continue;;;; + } else if ($eqeqeq(67, $ret_or_1)) { + + + self.newline_s = p;; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + } else if ($eqeqeq(110, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_229 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_229 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_230 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_230 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_231 = (function() {if ($truthy(($ret_or_232 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_232 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_231 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_233 = self.escape))) { - return $ret_or_233 + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((164)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_234 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(143, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - return $ret_or_234 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_235 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_235 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_236 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_236 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_237 = (function() {if ($truthy(($ret_or_238 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_238 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_237 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_239 = self.escape))) { - return $ret_or_239 + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(174, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((378)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_240 = self.escape))) { - return $ret_or_240 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((138)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_241 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) } else { - return $ret_or_241 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(180, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_242 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_242 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_243 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_243 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_244 = (function() {if ($truthy(($ret_or_245 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_245 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_244 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_246 = self.escape))) { - return $ret_or_246 + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((169)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_247 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(186, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - return $ret_or_247 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_248 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_248 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_249 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_249 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_250 = (function() {if ($truthy(($ret_or_251 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_251 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_250 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_252 = self.escape))) { - return $ret_or_252 + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(193, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((383)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_253 = self.escape))) { - return $ret_or_253 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((135)['$===']($case)) { - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_254 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) } else { - return $ret_or_254 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(196, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_255 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_255 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_256 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_256 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_257 = (function() {if ($truthy(($ret_or_258 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_258 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_257 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_259 = self.escape))) { - return $ret_or_259 + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((166)['$===']($case)) { - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_260 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(204, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - return $ret_or_260 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; + }; + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_261 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_261 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_262 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_262 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_263 = (function() {if ($truthy(($ret_or_264 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_264 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_263 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_265 = self.escape))) { - return $ret_or_265 + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; + } else if ($eqeqeq(275, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(266, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(tm, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(258, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(358, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); + self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(333, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + followed_by_nl = $rb_minus(self.te, 1)['$=='](self.newline_s); + nl_emitted = false; + dots_te = ($truthy(followed_by_nl) ? ($rb_minus(self.te, 1)) : (self.te)); + if ($truthy($rb_ge(self.version, 30))) { + if (($truthy(self.lambda_stack['$any?']()) && ($eqeq($rb_plus(self.lambda_stack.$last(), 1), self.paren_nest)))) { + self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + } else { + + self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te); + if ((($truthy($rb_ge(self.version, 31)) && ($truthy(followed_by_nl))) && ($truthy(self.context.$in_argdef())))) { + + self.$emit("tNL", $rb_minus(self.te, 1), self.te); + nl_emitted = true; + }; + } + } else if ($truthy($rb_ge(self.version, 27))) { + self.$emit("tBDOT3", "...".$freeze(), self.ts, dots_te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((380)['$===']($case)) { - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_266 = self.escape))) { - return $ret_or_266 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((119)['$===']($case)) { - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_267 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tDOT3", "...".$freeze(), self.ts, dots_te) + }; + if (($truthy(followed_by_nl) && ($not(nl_emitted)))) { + p = $rb_minus(p, 1) + }; + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(321, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; + + self.cs = 186; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(443, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + if ($eqeq(self.paren_nest, 0)) { + self.$diagnostic("warning", "triple_dot_at_eol", nil, self.$range(self.ts, $rb_minus(self.te, 1))) + }; + self.$emit("tDOT3", "...".$freeze(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(520, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + self.$emit_comment(self.eq_begin_s, self.te); + + self.cs = self.cs_before_block_comment; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(517, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1);; + } else if ($eqeqeq(107, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + self.eq_begin_s = self.ts; + + self.cs = 998; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(3, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(pe, 3);;; + } else if ($eqeqeq(465, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$3(chars){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tRATIONAL", self.$Rational(chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - return $ret_or_267 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(463, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$4(chars){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tIMAGINARY", self.$Complex(0, chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_268 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_268 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_269 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_269 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_270 = (function() {if ($truthy(($ret_or_271 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_271 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_270 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_272 = self.escape))) { - return $ret_or_272 + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(468, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$5(chars){var self = $$5.$$s == null ? this : $$5.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((150)['$===']($case)) { - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_273 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(466, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$6(chars){var self = $$6.$$s == null ? this : $$6.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - return $ret_or_273 - }; return nil; })())) { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(464, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$7(chars){var self = $$7.$$s == null ? this : $$7.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(467, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$8(chars){var self = $$8.$$s == null ? this : $$8.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 6)); + return (p = $rb_minus(p, 6));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(456, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$9(chars){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Float(chars)));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(457, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$10(chars){var self = $$10.$$s == null ? this : $$10.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(458, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$11(chars){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tRATIONAL", self.$Rational(chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(460, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$12(chars){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(459, $ret_or_1)) { + + + self.num_xfrm = $send(self, 'lambda', [], function $$13(chars){var self = $$13.$$s == null ? this : $$13.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) chars = nil;; + self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 6)); + return (p = $rb_minus(p, 6));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(137, $ret_or_1)) { + + + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if (($truthy(codepoints['$start_with?'](" ")) || ($truthy(codepoints['$start_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3))) + }; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2))) + }; + if (($truthy(codepoints['$end_with?'](" ")) || ($truthy(codepoints['$end_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p)) + }; + }; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], function $$14($mlhs_tmp1){var $c, $d, self = $$14.$$s == null ? this : $$14.$$s, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + + + + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $d = $mlhs_tmp1, $c = $to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + } else { + + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk); + }; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$('Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, {$$arity: 1, $$s: self, $$brk: $brk, $$has_top_level_mlhs_arg: true}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(168, $ret_or_1)) { + + + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if (($truthy(codepoints['$start_with?'](" ")) || ($truthy(codepoints['$start_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3))) + }; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2))) + }; + if (($truthy(codepoints['$end_with?'](" ")) || ($truthy(codepoints['$end_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p)) + }; + }; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], function $$15($mlhs_tmp1){var $c, $d, self = $$15.$$s == null ? this : $$15.$$s, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + + + + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $d = $mlhs_tmp1, $c = $to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + } else { + + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk); + }; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$('Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, {$$arity: 1, $$s: self, $$brk: $brk, $$has_top_level_mlhs_arg: true}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(382, $ret_or_1)) { + + + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if (($truthy(codepoints['$start_with?'](" ")) || ($truthy(codepoints['$start_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3))) + }; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2))) + }; + if (($truthy(codepoints['$end_with?'](" ")) || ($truthy(codepoints['$end_with?']("\t"))))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p)) + }; + }; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], function $$16($mlhs_tmp1){var $c, $d, self = $$16.$$s == null ? this : $$16.$$s, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + + + + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $d = $mlhs_tmp1, $c = $to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + } else { + + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk); + }; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$('Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, {$$arity: 1, $$s: self, $$brk: $brk, $$has_top_level_mlhs_arg: true}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_274 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_274 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_275 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_275 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_276 = (function() {if ($truthy(($ret_or_277 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_277 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_276 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_278 = self.escape))) { - return $ret_or_278 + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(118, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") + }; + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((364)['$===']($case)) { - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_279 = self.escape))) { - return $ret_or_279 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((177)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_280 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(149, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") + }; + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(363, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") + }; + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_280 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(121, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_escape");; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_281 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_281 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_282 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_282 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_283 = (function() {if ($truthy(($ret_or_284 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_284 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_283 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_285 = self.escape))) { - return $ret_or_285 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(152, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_escape");; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((182)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_286 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(366, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_escape");; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_286 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(123, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_287 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_287 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_288 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_288 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_289 = (function() {if ($truthy(($ret_or_290 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_290 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_289 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_291 = self.escape))) { - return $ret_or_291 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(154, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(368, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(120, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(151, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(365, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(140, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(171, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(385, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(139, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(170, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(384, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(134, $ret_or_1)) { + + + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$('Encoding'), 'UTF_8'));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(165, $ret_or_1)) { + + + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$('Encoding'), 'UTF_8'));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(379, $ret_or_1)) { + + + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$('Encoding'), 'UTF_8'));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(133, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(164, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(378, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(138, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(169, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(383, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(135, $ret_or_1)) { + + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(166, $ret_or_1)) { + + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(380, $ret_or_1)) { + + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(119, $ret_or_1)) { + + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(150, $ret_or_1)) { + + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(364, $ret_or_1)) { + + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(177, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(182, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(58, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.newline_s = p;; + } else if ($eqeqeq(31, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + tm = p;; + } else if ($eqeqeq(33, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + tm = p;; + } else if ($eqeqeq(35, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + tm = p;; + } else if ($eqeqeq(219, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(238, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(246, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(34, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(277, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(269, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(288, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(300, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(296, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(59, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = $rb_plus(p, 1); + + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(50, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = $rb_plus(p, 1); + + self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); + p = $rb_minus(ident_te, 1); + if ((($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](ident_tok)))) && ($truthy($rb_lt(self.version, 25))))) { + self.cs = 465 + } else { + self.cs = 525 + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(318, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(402, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(398, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.context.$in_kwarg())) { + + p = $rb_minus(p, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; + } else { + + self.cs = 186; + _goto_level = _again; + continue;; + };;; + } else if ($eqeqeq(411, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(408, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 186; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(495, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(427, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 990; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(101, $ret_or_1)) { + + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(268, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace() + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + self.$emit("tLAMBEG", "{".$freeze(), $rb_minus(self.te, 1), self.te); + } else { + self.$emit("tLCURLY", "{".$freeze(), $rb_minus(self.te, 1), self.te) + }; + self.command_start = true; + self.paren_nest = $rb_plus(self.paren_nest, 1); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(290, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace() + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + self.$emit("tLAMBEG", "{".$freeze()); + } else { + self.$emit("tLBRACE_ARG", "{".$freeze()) + }; + self.paren_nest = $rb_plus(self.paren_nest, 1); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(393, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace() + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + self.command_start = true; + self.$emit("tLAMBEG", "{".$freeze()); + } else { + self.$emit("tLBRACE", "{".$freeze()) + }; + self.paren_nest = $rb_plus(self.paren_nest, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(508, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace() + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) + } else { + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) + } else { + self.$emit_do() + }; + if ($eqeq(self.$tok(), "{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1) + }; + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(509, $ret_or_1)) { + + + current_literal = self.$literal(); + if ($truthy(current_literal)) { + if ($truthy(current_literal.$end_interp_brace_and_try_closing())) { + + if ($truthy(self['$version?'](18, 19))) { + + self.$emit("tRCURLY", "}".$freeze(), $rb_minus(p, 1), p); + self.cond.$lexpop(); + self.cmdarg.$lexpop(); + } else { + self.$emit("tSTRING_DEND", "}".$freeze(), $rb_minus(p, 1), p) + }; + if ($truthy(current_literal.$saved_herebody_s())) { + self.herebody_s = current_literal.$saved_herebody_s() + }; + p = $rb_minus(p, 1); + self.cs = self.$next_state_for_literal(current_literal); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } + }; + self.paren_nest = $rb_minus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { + + self.cond.$lexpop(); + self.cmdarg.$lexpop(); + } else { + + self.cond.$pop(); + self.cmdarg.$pop(); + }; + if (($eqeq(self.$tok(), "}".$freeze()) || ($eqeq(self.$tok(), "]".$freeze())))) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 810 + } else { + self.cs = 531 + } + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(61, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + } else if ($eqeqeq(65, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.newline_s = p;; + } else if ($eqeqeq(222, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(237, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(249, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(271, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(286, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(298, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(324, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(400, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(410, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(431, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(103, $ret_or_1)) { + + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(243, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); + self.cs = self.$arg_or_cmdarg(cmd_state); + p = $rb_minus(tm, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(338, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(309, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(424, $ret_or_1)) { + + + tm = p;; + + if ($eqeqeq(145, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(self.lambda_stack.$last(), self.paren_nest)) { + + self.lambda_stack.$pop(); + if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) + } else { + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if ($eqeq(self.$tok(), "{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) + } else { + self.$emit_do() + }; + if ($eqeq(self.$tok(), "{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1) + }; + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(146, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 352; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(147, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(148, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(149, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(150, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(151, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + if (($truthy(self['$version?'](18)) && ($eqeq(self.$tok(), "not".$freeze())))) { + + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(152, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18))) { + + self.$emit("tIDENTIFIER"); + if (!($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; + } else { + self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(153, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(154, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(156, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(157, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(158, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(160, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(164, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(165, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($eqeq(tm, self.te)) { + self.$emit("tFID") + } else { + + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + }; + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(167, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION')); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(168, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + nil + };; + } else if ($eqeqeq(244, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); + self.cs = self.$arg_or_cmdarg(cmd_state); + p = $rb_minus(tm, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(339, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(311, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(425, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + if ($eqeq(tm, self.te)) { + self.$emit("tFID") + } else { + + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + }; + self.cs = 494; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(340, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(312, $ret_or_1)) { + + + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(341, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(313, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(345, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(316, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(344, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(315, $ret_or_1)) { + + + tm = $rb_minus(p, 2);; + + if ($eqeqeq(99, ($ret_or_2 = self.act))) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(106, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + } else if ($eqeqeq(117, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + if ($truthy($rb_ge(self.version, 27))) { + + self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + p = $rb_minus(p, 2); + + self.cs = 810; + _goto_level = _again; + continue;;; + }; + } else if ($eqeqeq(121, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('PUNCTUATION_BEGIN')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(122, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 539; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(123, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit_table($$('KEYWORDS_BEGIN')); + self.command_start = true; + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else if ($eqeqeq(127, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; + } else if ($eqeqeq(128, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if (($not(self.static_env['$nil?']()) && ($truthy(self.static_env['$declared?'](self.$tok()))))) { + + self.cs = 465; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + } else if ($eqeqeq(132, $ret_or_2)) { + + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 810; + _goto_level = _again; + continue;;; } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((58)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + nil + };; + } else if ($eqeqeq(342, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.newline_s = p;;} - else if ((31)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;;} - else if ((33)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + tm = $rb_minus(p, 3);; - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;;} - else if ((35)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = p; + p = $rb_minus(p, 1); - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;;} - else if ((219)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((238)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(314, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((246)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((34)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + tm = $rb_minus(p, 3);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((277)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = p; + p = $rb_minus(p, 1); - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((269)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + p = $rb_minus(self.ts, 1); - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((288)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(343, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((300)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((296)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + tm = $rb_minus(p, 2);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((59)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = p; + p = $rb_minus(p, 1); - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = $rb_plus(p, 1); - - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((50)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 810; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = $rb_plus(p, 1); - - self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); - p = $rb_minus(ident_te, 1); - if ($truthy((function() {if ($truthy(($ret_or_292 = (function() {if ($truthy(($ret_or_293 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](ident_tok) - } else { - return $ret_or_293 - }; return nil; })()))) { - return $rb_lt(self.version, 25) - } else { - return $ret_or_292 - }; return nil; })())) { - self.cs = 465 - } else { - self.cs = 525 - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((318)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(490, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((402)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((398)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + tm = $rb_minus(p, 2);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self.context.$in_kwarg())) { + self.te = p; + p = $rb_minus(p, 1); + self.$emit("tCONSTANT", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(267, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; + + self.te = p; p = $rb_minus(p, 1); - self.cs = 810; - _goto_level = _again; - continue;;; - } else { + self.$emit("tLBRACK", "[".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 563; - self.cs = 186; - _goto_level = _again; - continue;; - };;;} - else if ((411)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(386, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((408)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - - self.cs = 186; - _goto_level = _again; - continue;;;;;} - else if ((495)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((427)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.te = p; + p = $rb_minus(p, 1); - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1); - - - self.cs = 990; - _goto_level = _again; - continue;;;;;} - else if ((101)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.$emit("tLBRACK", "[".$freeze()); - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((268)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; - - self.te = p; - p = $rb_minus(p, 1); - - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(493, $ret_or_1)) { - self.lambda_stack.$pop(); - self.$emit("tLAMBEG", "{".$freeze(), $rb_minus(self.te, 1), self.te); - } else { - self.$emit("tLCURLY", "{".$freeze(), $rb_minus(self.te, 1), self.te) - }; - self.command_start = true; - self.paren_nest = $rb_plus(self.paren_nest, 1); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((290)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; - - self.te = p; - p = $rb_minus(p, 1); - - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - self.lambda_stack.$pop(); - self.$emit("tLAMBEG", "{".$freeze()); - } else { - self.$emit("tLBRACE_ARG", "{".$freeze()) - }; - self.paren_nest = $rb_plus(self.paren_nest, 1); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((393)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; - - self.te = p; - p = $rb_minus(p, 1); - - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; - self.lambda_stack.$pop(); - self.command_start = true; - self.$emit("tLAMBEG", "{".$freeze()); - } else { - self.$emit("tLBRACE", "{".$freeze()) - }; - self.paren_nest = $rb_plus(self.paren_nest, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((508)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; - - self.te = p; - p = $rb_minus(p, 1); - - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLBRACK2", "[".$freeze()); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(496, $ret_or_1)) { - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) + + self.paren_nest = $rb_minus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { + + self.cond.$lexpop(); + self.cmdarg.$lexpop(); } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) - }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - if (self.$tok()['$==']("{".$freeze())) { - self.paren_nest = $rb_plus(self.paren_nest, 1)}; - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((509)['$===']($case)) { - - current_literal = self.$literal(); - if ($truthy(current_literal)) { - if ($truthy(current_literal.$end_interp_brace_and_try_closing())) { - if ($truthy(self['$version?'](18, 19))) { - - self.$emit("tRCURLY", "}".$freeze(), $rb_minus(p, 1), p); - self.cond.$lexpop(); - self.cmdarg.$lexpop(); + self.cond.$pop(); + self.cmdarg.$pop(); + }; + if (($eqeq(self.$tok(), "}".$freeze()) || ($eqeq(self.$tok(), "]".$freeze())))) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 810 } else { - self.$emit("tSTRING_DEND", "}".$freeze(), $rb_minus(p, 1), p) - }; - if ($truthy(current_literal.$saved_herebody_s())) { - self.herebody_s = current_literal.$saved_herebody_s()}; - p = $rb_minus(p, 1); - self.cs = self.$next_state_for_literal(current_literal); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}}; - self.paren_nest = $rb_minus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - if ($truthy($rb_lt(self.version, 24))) { + self.cs = 531 + } + }; - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - } else { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(259, $ret_or_1)) { - self.cond.$pop(); - self.cmdarg.$pop(); - }; - if ($truthy((function() {if ($truthy(($ret_or_294 = self.$tok()['$==']("}".$freeze())))) { - return $ret_or_294 - } else { - return self.$tok()['$==']("]".$freeze()) - }; return nil; })())) { - if ($truthy($rb_ge(self.version, 25))) { - self.cs = 810 - } else { - self.cs = 531 - }}; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((61)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());;} - else if ((65)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.newline_s = p;;} - else if ((222)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((237)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((249)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((271)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1); - - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((286)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((298)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((324)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((400)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((410)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((431)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((103)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((243)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); - self.cs = self.$arg_or_cmdarg(cmd_state); - p = $rb_minus(tm, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((338)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((309)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((424)['$===']($case)) { - - tm = p;; - - $case = self.act; - if ((145)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self['$version?'](18))) { + + self.$emit("tLPAREN2", "(".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) - }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - if (self.$tok()['$==']("{".$freeze())) { - self.paren_nest = $rb_plus(self.paren_nest, 1)}; - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((146)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 352; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((147)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((148)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((149)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((150)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((151)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - if ($truthy((function() {if ($truthy(($ret_or_295 = self['$version?'](18)))) { - return self.$tok()['$==']("not".$freeze()) - } else { - return $ret_or_295 - }; return nil; })())) { + + self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };;; + } else if ($eqeqeq(272, $ret_or_1)) { + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLPAREN2", "(".$freeze()); self.cs = 563; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;;; + } else if ($eqeqeq(280, $ret_or_1)) { - self.cs = 494; + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); + if ($truthy(self['$version?'](18))) { + + self.cs = 802; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };;; + } else if ($eqeqeq(328, $ret_or_1)) { + + + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLPAREN", "(".$freeze()); p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };} - else if ((152)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18))) { + continue;;;;; + } else if ($eqeqeq(437, $ret_or_1)) { - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_296 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_296 - }; return nil; })())) { - } else { - self.cs = self.$arg_or_cmdarg(cmd_state) - }; - } else { - self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((153)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((154)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_297 = (function() {if ($truthy(($ret_or_298 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_298 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_297 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_299 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_299 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true + };; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$('PUNCTUATION')); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(438, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((156)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { - self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); + self.paren_nest = $rb_minus(self.paren_nest, 1);; + + self.te = p; p = $rb_minus(p, 1); + self.$emit_table($$('PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { + + self.cond.$lexpop(); + self.cmdarg.$lexpop(); + } else { + + self.cond.$pop(); + self.cmdarg.$pop(); + }; + if (($eqeq(self.$tok(), "}".$freeze()) || ($eqeq(self.$tok(), "]".$freeze())))) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 810 + } else { + self.cs = 531 + } + }; + p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };} - else if ((157)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + continue;;;;; + } else if ($eqeqeq(72, $ret_or_1)) { + + + heredoc_e = p;; + + self.newline_s = p;; + } else if ($eqeqeq(353, $ret_or_1)) { + + + new_herebody_s = p;; + + self.te = p; + p = $rb_minus(p, 1); + + self.$tok(self.ts, heredoc_e)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m); + indent = ($truthy(($ret_or_2 = (($b = $gvars['~']) === nil ? nil : $b['$[]'](1))['$empty?']()['$!']())) ? ($ret_or_2) : ((($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!']())); + dedent_body = (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!'](); + type = ($truthy((($b = $gvars['~']) === nil ? nil : $b['$[]'](3))['$empty?']()) ? ("<<\"".$freeze()) : ($rb_plus("<<".$freeze(), (($b = $gvars['~']) === nil ? nil : $b['$[]'](3))))); + delimiter = (($b = $gvars['~']) === nil ? nil : $b['$[]'](4)); + if ($truthy($rb_ge(self.version, 27))) { + if (($truthy($rb_gt(delimiter.$count("\n"), 0)) || ($truthy($rb_gt(delimiter.$count("\r"), 0))))) { + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1))) + } + } else if ($truthy($rb_ge(self.version, 24))) { + if ($truthy($rb_gt(delimiter.$count("\n"), 0))) { + if ($truthy(delimiter['$end_with?']("\n"))) { + + self.$diagnostic("warning", "heredoc_id_ends_with_nl", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + delimiter = delimiter.$rstrip(); + } else { + self.$diagnostic("fatal", "heredoc_id_has_newline", nil, self.$range(self.ts, $rb_plus(self.ts, 1))) + } + } + }; + if (($truthy(dedent_body) && ($truthy(self['$version?'](18, 19, 20, 21, 22))))) { + + self.$emit("tLSHFT", "<<".$freeze(), self.ts, $rb_plus(self.ts, 2)); + p = $rb_plus(self.ts, 1); + self.cs = 563; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$push_literal(type, delimiter, self.ts, heredoc_e, indent, dedent_body); + self.herebody_s = ($truthy(($ret_or_2 = self.herebody_s)) ? ($ret_or_2) : (new_herebody_s)); + p = $rb_minus(self.herebody_s, 1); + };;; + } else if ($eqeqeq(348, $ret_or_1)) { + - self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + tm = $rb_minus(p, 1); + diag_msg = "ivar_name";; + + self.te = p; p = $rb_minus(p, 1); + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) + } else { + + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + }; + self.cs = 810; + p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };} - else if ((158)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + continue;;;;; + } else if ($eqeqeq(351, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((160)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(cmd_state); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((164)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_300 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_300 - }; return nil; })())) { - self.cs = 465; + tm = $rb_minus(p, 2); + diag_msg = "cvar_name";; + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) + } else { + + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + }; + self.cs = 810; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;;; + } else if ($eqeqeq(359, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); + + self.escape = nil;; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };} - else if ((165)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { + continue;;;;; + } else if ($eqeqeq(389, $ret_or_1)) { - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - }; - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((167)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((168)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};;} - else if ((244)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); - self.cs = self.$arg_or_cmdarg(cmd_state); - p = $rb_minus(tm, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((339)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((311)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((425)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - }; - self.cs = 494; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((340)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((312)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((341)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((313)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((345)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((316)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((344)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((315)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - $case = self.act; - if ((99)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = $rb_minus(p, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((106)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));} - else if ((117)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy($rb_ge(self.version, 27))) { + tm = p;; - self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + self.te = p; p = $rb_minus(p, 1); - self.cs = 563; + + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 539; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - } else { + continue;;;;; + } else if ($eqeqeq(480, $ret_or_1)) { + + + self.num_base = 16; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(474, $ret_or_1)) { + + + self.num_base = 10; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(477, $ret_or_1)) { + + + self.num_base = 8; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(471, $ret_or_1)) { + + + self.num_base = 2; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(486, $ret_or_1)) { + + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(449, $ret_or_1)) { + + + self.num_base = 8; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + } else if ($eqeqeq(487, $ret_or_1)) { + + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$17(chars){var self = $$17.$$s == null ? this : $$17.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + } else if ($eqeqeq(8, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.newline_s = p;; + } else if ($eqeqeq(453, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.num_suffix_s = p;; + } else if ($eqeqeq(228, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 43;; + } else if ($eqeqeq(215, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 44;; + } else if ($eqeqeq(211, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 45;; + } else if ($eqeqeq(27, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 72;; + } else if ($eqeqeq(261, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 73;; + } else if ($eqeqeq(28, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 78;; + } else if ($eqeqeq(254, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 79;; + } else if ($eqeqeq(281, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 85;; + } else if ($eqeqeq(46, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; - p = $rb_minus(p, 2); + self.act = 86;; + } else if ($eqeqeq(302, $ret_or_1)) { - self.cs = 810; - _goto_level = _again; - continue;;; - };} - else if ((121)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((122)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((123)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); - self.command_start = true; - self.cs = 802; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((127)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;} - else if ((128)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy((function() {if ($truthy(($ret_or_301 = self.static_env['$nil?']()['$!']()))) { - return self.static_env['$declared?'](self.$tok()) - } else { - return $ret_or_301 - }; return nil; })())) { - self.cs = 465; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.act = 93;; + } else if ($eqeqeq(291, $ret_or_1)) { - self.cs = self.$arg_or_cmdarg(cmd_state); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((132)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;};;} - else if ((342)['$===']($case)) { - - tm = $rb_minus(p, 3);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((314)['$===']($case)) { - - tm = $rb_minus(p, 3);; - - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((343)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((490)['$===']($case)) { - - tm = $rb_minus(p, 2);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tCONSTANT", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((267)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLBRACK", "[".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((386)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLBRACK", "[".$freeze()); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((493)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLBRACK2", "[".$freeze()); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((496)['$===']($case)) { - - self.paren_nest = $rb_minus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - if ($truthy($rb_lt(self.version, 24))) { + self.te = $rb_plus(p, 1);; - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - } else { + self.act = 94;; + } else if ($eqeqeq(70, $ret_or_1)) { - self.cond.$pop(); - self.cmdarg.$pop(); - }; - if ($truthy((function() {if ($truthy(($ret_or_302 = self.$tok()['$==']("}".$freeze())))) { - return $ret_or_302 - } else { - return self.$tok()['$==']("]".$freeze()) - }; return nil; })())) { - if ($truthy($rb_ge(self.version, 25))) { - self.cs = 810 - } else { - self.cs = 531 - }}; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((259)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy(self['$version?'](18))) { - self.$emit("tLPAREN2", "(".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 802; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.act = 106;; + } else if ($eqeqeq(394, $ret_or_1)) { - self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 563; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;;} - else if ((272)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLPAREN2", "(".$freeze()); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((280)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); - if ($truthy(self['$version?'](18))) { + self.te = $rb_plus(p, 1);; - self.cs = 802; + self.act = 117;; + } else if ($eqeqeq(305, $ret_or_1)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - self.cs = 563; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;;} - else if ((328)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("tLPAREN", "(".$freeze()); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((437)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1); - if ($truthy(self['$version?'](18))) { - self.command_start = true};; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - self.cs = 563; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((438)['$===']($case)) { - - self.paren_nest = $rb_minus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table($$($nesting, 'PUNCTUATION')); - if ($truthy($rb_lt(self.version, 24))) { + self.act = 121;; + } else if ($eqeqeq(388, $ret_or_1)) { - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - } else { - self.cond.$pop(); - self.cmdarg.$pop(); - }; - if ($truthy((function() {if ($truthy(($ret_or_303 = self.$tok()['$==']("}".$freeze())))) { - return $ret_or_303 - } else { - return self.$tok()['$==']("]".$freeze()) - }; return nil; })())) { - if ($truthy($rb_ge(self.version, 25))) { - self.cs = 810 - } else { - self.cs = 531 - }}; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((72)['$===']($case)) { - - heredoc_e = p;; - - self.newline_s = p;;} - else if ((353)['$===']($case)) { - - new_herebody_s = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$tok(self.ts, heredoc_e)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m); - indent = (function() {if ($truthy(($ret_or_304 = (($b = $gvars['~']) === nil ? nil : $b['$[]'](1))['$empty?']()['$!']()))) { - return $ret_or_304 - } else { - return (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!']() - }; return nil; })(); - dedent_body = (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!'](); - type = (function() {if ($truthy((($b = $gvars['~']) === nil ? nil : $b['$[]'](3))['$empty?']())) { - return "<<\"".$freeze() - } else { + self.te = $rb_plus(p, 1);; - return $rb_plus("<<".$freeze(), (($b = $gvars['~']) === nil ? nil : $b['$[]'](3))); - }; return nil; })(); - delimiter = (($b = $gvars['~']) === nil ? nil : $b['$[]'](4)); - if ($truthy($rb_ge(self.version, 27))) { - if ($truthy((function() {if ($truthy(($ret_or_305 = $rb_gt(delimiter.$count("\n"), 0)))) { - return $ret_or_305 - } else { - return $rb_gt(delimiter.$count("\r"), 0) - }; return nil; })())) { - self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)))} - } else if ($truthy($rb_ge(self.version, 24))) { - if ($truthy($rb_gt(delimiter.$count("\n"), 0))) { - if ($truthy(delimiter['$end_with?']("\n"))) { - - self.$diagnostic("warning", "heredoc_id_ends_with_nl", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); - delimiter = delimiter.$rstrip(); - } else { - self.$diagnostic("fatal", "heredoc_id_has_newline", nil, self.$range(self.ts, $rb_plus(self.ts, 1))) - }}}; - if ($truthy((function() {if ($truthy(($ret_or_306 = dedent_body))) { - return self['$version?'](18, 19, 20, 21, 22) - } else { - return $ret_or_306 - }; return nil; })())) { + self.act = 122;; + } else if ($eqeqeq(387, $ret_or_1)) { - self.$emit("tLSHFT", "<<".$freeze(), self.ts, $rb_plus(self.ts, 2)); - p = $rb_plus(self.ts, 1); - self.cs = 563; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + self.te = $rb_plus(p, 1);; - self.cs = self.$push_literal(type, delimiter, self.ts, heredoc_e, indent, dedent_body); - self.herebody_s = (function() {if ($truthy(($ret_or_307 = self.herebody_s))) { - return $ret_or_307 - } else { - return new_herebody_s - }; return nil; })(); - p = $rb_minus(self.herebody_s, 1); - };;;} - else if ((348)['$===']($case)) { - - tm = $rb_minus(p, 1); - diag_msg = "ivar_name";; - - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) - } else { + self.act = 123;; + } else if ($eqeqeq(75, $ret_or_1)) { - self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((351)['$===']($case)) { - - tm = $rb_minus(p, 2); - diag_msg = "cvar_name";; - - self.te = p; - p = $rb_minus(p, 1); - - if ($truthy($rb_ge(self.version, 27))) { - self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) - } else { - self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((359)['$===']($case)) { - - self.escape = nil;; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_308 = self.escape))) { - return $ret_or_308 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((389)['$===']($case)) { - - tm = p;; - - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 539; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((480)['$===']($case)) { - - self.num_base = 16; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((474)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((477)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((471)['$===']($case)) { - - self.num_base = 2; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((486)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;;} - else if ((449)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;;} - else if ((487)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$27 = function(chars){var self = $$27.$$s == null ? this : $$27.$$s; - + self.te = $rb_plus(p, 1);; + self.act = 127;; + } else if ($eqeqeq(303, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$27.$$s = self, $$27.$$arity = 1, $$27));;} - else if ((8)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.newline_s = p;;} - else if ((453)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_suffix_s = p;;} - else if ((228)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 43;;} - else if ((215)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 44;;} - else if ((211)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 45;;} - else if ((27)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 72;;} - else if ((261)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 73;;} - else if ((28)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 78;;} - else if ((254)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 79;;} - else if ((281)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 85;;} - else if ((46)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 86;;} - else if ((302)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 93;;} - else if ((291)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 94;;} - else if ((70)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 106;;} - else if ((394)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 117;;} - else if ((305)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 121;;} - else if ((388)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 122;;} - else if ((387)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 123;;} - else if ((75)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 127;;} - else if ((303)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 128;;} - else if ((306)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 132;;} - else if ((504)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 145;;} - else if ((499)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 146;;} - else if ((507)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 148;;} - else if ((500)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 149;;} - else if ((501)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 150;;} - else if ((506)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 151;;} - else if ((498)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 152;;} - else if ((492)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 153;;} - else if ((418)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 154;;} - else if ((451)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 157;;} - else if ((82)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 158;;} - else if ((421)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 160;;} - else if ((412)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 164;;} - else if ((423)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 165;;} - else if ((416)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 167;;} - else if ((422)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 168;;} - else if ((88)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 181;;} - else if ((511)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 185;;} - else if ((183)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); + self.te = $rb_plus(p, 1);; + + self.act = 128;; + } else if ($eqeqeq(306, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 132;; + } else if ($eqeqeq(504, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 145;; + } else if ($eqeqeq(499, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 146;; + } else if ($eqeqeq(507, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 148;; + } else if ($eqeqeq(500, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 149;; + } else if ($eqeqeq(501, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 150;; + } else if ($eqeqeq(506, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 151;; + } else if ($eqeqeq(498, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 152;; + } else if ($eqeqeq(492, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 153;; + } else if ($eqeqeq(418, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 154;; + } else if ($eqeqeq(451, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 157;; + } else if ($eqeqeq(82, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 158;; + } else if ($eqeqeq(421, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 160;; + } else if ($eqeqeq(412, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 164;; + } else if ($eqeqeq(423, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 165;; + } else if ($eqeqeq(416, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 167;; + } else if ($eqeqeq(422, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 168;; + } else if ($eqeqeq(88, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 181;; + } else if ($eqeqeq(511, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.act = 185;; + } else if ($eqeqeq(183, $ret_or_1)) { + + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if ($eqeq(self.te, pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1))) + }; + if ($truthy(current_literal['$heredoc?']())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze()) + }; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; } else { - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + }; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil; + }; }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { + if (($truthy(current_literal['$words?']()) && ($not(self['$eof_codepoint?'](self.source_pts['$[]'](p)))))) { + current_literal.$extend_space(self.ts, self.te) + } else { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy((function() {if ($truthy(($ret_or_309 = current_literal['$words?']()))) { - return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() - } else { - return $ret_or_309 - }; return nil; })())) { - current_literal.$extend_space(self.ts, self.te) - } else { + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;; - - self.escape_s = p; - self.escape = nil;;} - else if ((124)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_310 = $rb_ge(self.version, 30)))) { + self.escape_s = p; + self.escape = nil;; + } else if ($eqeqeq(124, $ret_or_1)) { - if ($truthy(($ret_or_311 = codepoint['$=='](117)))) { - return $ret_or_311 - } else { - return codepoint['$=='](85) - }; - } else { - return $ret_or_310 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_312 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_312 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_313 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_313 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_314 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_314 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_315 = (function() {if ($truthy(($ret_or_316 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_316 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_315 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_317 = self.escape))) { - return $ret_or_317 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((155)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_318 = $rb_ge(self.version, 30)))) { - if ($truthy(($ret_or_319 = codepoint['$=='](117)))) { - return $ret_or_319 - } else { - return codepoint['$=='](85) + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_318 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_320 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_320 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_321 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_321 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_322 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_322 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_323 = (function() {if ($truthy(($ret_or_324 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_324 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_323 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_325 = self.escape))) { - return $ret_or_325 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((369)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_326 = $rb_ge(self.version, 30)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(155, $ret_or_1)) { - if ($truthy(($ret_or_327 = codepoint['$=='](117)))) { - return $ret_or_327 - } else { - return codepoint['$=='](85) - }; - } else { - return $ret_or_326 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_328 = self.escape))) { - return $ret_or_328 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((131)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_329 = $rb_ge(self.version, 30)))) { - if ($truthy(($ret_or_330 = codepoint['$=='](117)))) { - return $ret_or_330 - } else { - return codepoint['$=='](85) + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_329 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_331 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_331 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_332 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_332 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_333 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_333 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_334 = (function() {if ($truthy(($ret_or_335 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_335 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_334 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_336 = self.escape))) { - return $ret_or_336 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((162)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_337 = $rb_ge(self.version, 30)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(369, $ret_or_1)) { - if ($truthy(($ret_or_338 = codepoint['$=='](117)))) { - return $ret_or_338 - } else { - return codepoint['$=='](85) + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_337 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_339 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_339 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_340 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_340 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_341 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_341 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_342 = (function() {if ($truthy(($ret_or_343 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_343 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_342 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_344 = self.escape))) { - return $ret_or_344 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((376)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_345 = $rb_ge(self.version, 30)))) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(($ret_or_346 = codepoint['$=='](117)))) { - return $ret_or_346 + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return codepoint['$=='](85) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_345 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_347 = self.escape))) { - return $ret_or_347 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((122)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_348 = $rb_ge(self.version, 27)))) { + self.cs = 810; - if ($truthy(($ret_or_349 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_349 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(131, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_348 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_350 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_350 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_351 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_351 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_352 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_352 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_353 = (function() {if ($truthy(($ret_or_354 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_354 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_353 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_355 = self.escape))) { - return $ret_or_355 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((153)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_356 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(162, $ret_or_1)) { - if ($truthy(($ret_or_357 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_357 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_356 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_358 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_358 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_359 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_359 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_360 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_360 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_361 = (function() {if ($truthy(($ret_or_362 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_362 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_361 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_363 = self.escape))) { - return $ret_or_363 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((367)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_364 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(376, $ret_or_1)) { - if ($truthy(($ret_or_365 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_365 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) - }; - } else { - return $ret_or_364 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_366 = self.escape))) { - return $ret_or_366 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((130)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_367 = $rb_ge(self.version, 27)))) { - if ($truthy(($ret_or_368 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_368 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_367 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_369 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_369 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_370 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_370 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_371 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_371 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_372 = (function() {if ($truthy(($ret_or_373 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_373 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_372 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_374 = self.escape))) { - return $ret_or_374 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((161)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_375 = $rb_ge(self.version, 27)))) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(($ret_or_376 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_376 + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_375 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_377 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_377 - }; return nil; })())) { + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(122, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_378 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_378 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_379 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_379 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_380 = (function() {if ($truthy(($ret_or_381 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_381 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_380 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_382 = self.escape))) { - return $ret_or_382 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(153, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((375)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_383 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(367, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - if ($truthy(($ret_or_384 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_384 + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_383 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_385 = self.escape))) { - return $ret_or_385 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((126)['$===']($case)) { - - self.escape = "\u007F";; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_386 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_386 - }; return nil; })())) { + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(130, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_387 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_387 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_388 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_388 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_389 = (function() {if ($truthy(($ret_or_390 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_390 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_389 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_391 = self.escape))) { - return $ret_or_391 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((157)['$===']($case)) { - - self.escape = "\u007F";; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_392 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_392 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(161, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_393 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_393 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_394 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_394 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_395 = (function() {if ($truthy(($ret_or_396 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_396 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_395 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_397 = self.escape))) { - return $ret_or_397 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((371)['$===']($case)) { - - self.escape = "\u007F";; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_398 = self.escape))) { - return $ret_or_398 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((129)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_399 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(375, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_399 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(126, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_400 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_400 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_401 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_401 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_402 = (function() {if ($truthy(($ret_or_403 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_403 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_402 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_404 = self.escape))) { - return $ret_or_404 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((160)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_405 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_405 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(157, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_406 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_406 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_407 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_407 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_408 = (function() {if ($truthy(($ret_or_409 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_409 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_408 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_410 = self.escape))) { - return $ret_or_410 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((374)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_411 = self.escape))) { - return $ret_or_411 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((136)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_412 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(371, $ret_or_1)) { + + + self.escape = "\u007F";; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_412 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(129, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_413 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_413 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_414 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_414 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_415 = (function() {if ($truthy(($ret_or_416 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_416 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_415 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_417 = self.escape))) { - return $ret_or_417 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(160, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((167)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_418 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(374, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_418 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(136, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_419 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_419 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_420 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_420 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_421 = (function() {if ($truthy(($ret_or_422 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_422 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_421 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_423 = self.escape))) { - return $ret_or_423 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(167, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((381)['$===']($case)) { - - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_424 = self.escape))) { - return $ret_or_424 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((116)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_425 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(381, $ret_or_1)) { + + + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_425 - }; return nil; })())) { + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(116, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_426 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_426 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_427 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_427 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_428 = (function() {if ($truthy(($ret_or_429 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_429 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_428 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_430 = self.escape))) { - return $ret_or_430 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(148, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((148)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_431 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(362, $ret_or_1)) { + + + self.escape_s = p; + self.escape = nil;; + + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $ret_or_431 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(62, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.newline_s = p;; + } else if ($eqeqeq(221, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(236, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(248, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(270, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 810; + _goto_level = _again; + continue;;;;; + } else if ($eqeqeq(285, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(297, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(323, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(399, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(409, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(430, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(102, $ret_or_1)) { + + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.te = p; + p = $rb_minus(p, 1);; + } else if ($eqeqeq(482, $ret_or_1)) { + + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$18(chars){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + } else if ($eqeqeq(446, $ret_or_1)) { + + + self.num_base = 8; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$19(chars){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + } else if ($eqeqeq(461, $ret_or_1)) { + + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$20(chars){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_432 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_432 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_433 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_433 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_434 = (function() {if ($truthy(($ret_or_435 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_435 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_434 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_436 = self.escape))) { - return $ret_or_436 + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(454, $ret_or_1)) { + + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$21(chars){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tFLOAT", self.$Float(chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((362)['$===']($case)) { - - self.escape_s = p; - self.escape = nil;; - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_437 = self.escape))) { - return $ret_or_437 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((62)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.newline_s = p;;} - else if ((221)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((236)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((248)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((270)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1); - - - self.cs = 810; - _goto_level = _again; - continue;;;;;} - else if ((285)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((297)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((323)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((399)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((409)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((430)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((102)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((482)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$28 = function(chars){var self = $$28.$$s == null ? this : $$28.$$s; + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(450, $ret_or_1)) { + + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$22(chars){var self = $$22.$$s == null ? this : $$22.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tFLOAT", self.$Float(chars));}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(276, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.newline_s = p;; + + self.act = 79;; + } else if ($eqeqeq(36, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.act = 78;; + } else if ($eqeqeq(47, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.act = 86;; + } else if ($eqeqeq(94, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + self.act = 181;; + } else if ($eqeqeq(66, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.act = 99;; + } else if ($eqeqeq(85, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.act = 147;; + } else if ($eqeqeq(93, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$28.$$s = self, $$28.$$arity = 1, $$28));;} - else if ((446)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$29 = function(chars){var self = $$29.$$s == null ? this : $$29.$$s; - + self.act = 181;; + } else if ($eqeqeq(38, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$29.$$s = self, $$29.$$arity = 1, $$29));;} - else if ((461)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$30 = function(chars){var self = $$30.$$s == null ? this : $$30.$$s; - + self.te = $rb_plus(p, 1);; + tm = p;; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$30.$$s = self, $$30.$$arity = 1, $$30));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_438 = (function() {if ($truthy(($ret_or_439 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_439 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_438 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_440 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_440 - }; return nil; })())) { + self.act = 73;; + } else if ($eqeqeq(391, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((454)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$31 = function(chars){var self = $$31.$$s == null ? this : $$31.$$s; - + self.te = $rb_plus(p, 1);; + tm = p;; - if (chars == null) { - chars = nil; - }; - return self.$emit("tFLOAT", self.$Float(chars));}, $$31.$$s = self, $$31.$$arity = 1, $$31));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + self.act = 127;; + } else if ($eqeqeq(390, $ret_or_1)) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((450)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$32 = function(chars){var self = $$32.$$s == null ? this : $$32.$$s; - + self.te = $rb_plus(p, 1);; - if (chars == null) { - chars = nil; - }; - return self.$emit("tFLOAT", self.$Float(chars));}, $$32.$$s = self, $$32.$$arity = 1, $$32));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { + tm = p;; - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((276)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.newline_s = p;; - - self.act = 79;;} - else if ((36)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { + self.act = 128;; + } else if ($eqeqeq(483, $ret_or_1)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.act = 78;;} - else if ((47)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { - p = self.herebody_s; - self.herebody_s = nil;};; - - self.act = 86;;} - else if ((94)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { + self.te = $rb_plus(p, 1);; - p = self.herebody_s; - self.herebody_s = nil;};; - - self.act = 181;;} - else if ((66)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 99;;} - else if ((85)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 147;;} - else if ((93)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 181;;} - else if ((38)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - tm = p;; - - self.act = 73;;} - else if ((391)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - tm = p;; - - self.act = 127;;} - else if ((390)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - tm = p;; - - self.act = 128;;} - else if ((483)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.act = 154;;} - else if ((127)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_441 = $rb_ge(self.version, 30)))) { + self.num_base = 10; + self.num_digits_s = self.ts;; - if ($truthy(($ret_or_442 = codepoint['$=='](117)))) { - return $ret_or_442 - } else { - return codepoint['$=='](85) + self.act = 154;; + } else if ($eqeqeq(127, $ret_or_1)) { + + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_441 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_443 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_443 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_444 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_444 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_445 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_445 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_446 = (function() {if ($truthy(($ret_or_447 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_447 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_446 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_448 = self.escape))) { - return $ret_or_448 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((158)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_449 = $rb_ge(self.version, 30)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(158, $ret_or_1)) { - if ($truthy(($ret_or_450 = codepoint['$=='](117)))) { - return $ret_or_450 - } else { - return codepoint['$=='](85) + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_449 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_451 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_451 - }; return nil; })())) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_452 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_452 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_453 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_453 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_454 = (function() {if ($truthy(($ret_or_455 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_455 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_454 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_456 = self.escape))) { - return $ret_or_456 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((372)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((function() {if ($truthy(($ret_or_457 = $rb_ge(self.version, 30)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(372, $ret_or_1)) { - if ($truthy(($ret_or_458 = codepoint['$=='](117)))) { - return $ret_or_458 - } else { - return codepoint['$=='](85) + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if (($truthy($rb_ge(self.version, 30)) && (($eqeq(codepoint, 117) || ($eqeq(codepoint, 85)))))) { + self.$diagnostic("fatal", "invalid_escape") }; - } else { - return $ret_or_457 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")}; - if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_459 = self.escape))) { - return $ret_or_459 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((125)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_460 = $rb_ge(self.version, 27)))) { + if ($truthy((self.escape = $$('ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1))) + };; - if ($truthy(($ret_or_461 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_461 + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_460 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_462 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_462 - }; return nil; })())) { + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(125, $ret_or_1)) { + + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_463 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_463 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_464 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_464 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_465 = (function() {if ($truthy(($ret_or_466 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_466 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_465 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_467 = self.escape))) { - return $ret_or_467 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((156)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_468 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(156, $ret_or_1)) { - if ($truthy(($ret_or_469 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_469 - } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) - }; - } else { - return $ret_or_468 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_470 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_470 - }; return nil; })())) { + + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_471 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_471 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_472 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_472 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_473 = (function() {if ($truthy(($ret_or_474 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_474 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_473 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_475 = self.escape))) { - return $ret_or_475 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((370)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); - if ($truthy((function() {if ($truthy(($ret_or_476 = $rb_ge(self.version, 27)))) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(370, $ret_or_1)) { + - if ($truthy(($ret_or_477 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { - return $ret_or_477 + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if (($truthy($rb_ge(self.version, 27)) && (($truthy($range(0, 8, false)['$include?'](self.escape.$ord())) || ($truthy($range(14, 31, false)['$include?'](self.escape.$ord()))))))) { + self.$diagnostic("fatal", "invalid_escape") + };; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return $range(14, 31, false)['$include?'](self.escape.$ord()) + self.$emit("tCHARACTER", value) }; - } else { - return $ret_or_476 - }; return nil; })())) { - self.$diagnostic("fatal", "invalid_escape")};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_478 = self.escape))) { - return $ret_or_478 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((132)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_479 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_479 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_480 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_480 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_481 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_481 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_482 = (function() {if ($truthy(($ret_or_483 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_483 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_482 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_484 = self.escape))) { - return $ret_or_484 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((163)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_485 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) - } else { - return $ret_or_485 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_486 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_486 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_487 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_487 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_488 = (function() {if ($truthy(($ret_or_489 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_489 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_488 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_490 = self.escape))) { - return $ret_or_490 - } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((377)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_491 = self.escape))) { - return $ret_or_491 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((128)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_492 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(132, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return $ret_or_492 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(163, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_493 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_493 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_494 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_494 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_495 = (function() {if ($truthy(($ret_or_496 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_496 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_495 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_497 = self.escape))) { - return $ret_or_497 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(377, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((159)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy((function() {if ($truthy(($ret_or_498 = current_literal['$regexp?']()))) { - return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(128, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - return $ret_or_498 - }; return nil; })())) { + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(159, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if (($truthy(current_literal['$regexp?']()) && ($truthy($$('REGEXP_META_CHARACTERS').$match(escaped_char))))) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if (($truthy(current_literal['$squiggly_heredoc?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if (($truthy(current_literal['$supports_line_continuation_via_slash?']()) && ($eqeq(escaped_char, "\n".$freeze())))) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ((($truthy(current_literal['$regexp?']()) && ($truthy($rb_ge(self.version, 31)))) && ($truthy(["c", "C", "m", "M"]['$include?'](escaped_char))))) { + current_literal.$extend_string(self.escape, self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy((function() {if ($truthy(($ret_or_499 = current_literal['$squiggly_heredoc?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_499 - }; return nil; })())) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_500 = current_literal['$supports_line_continuation_via_slash?']()))) { - return escaped_char['$==']("\n".$freeze()) - } else { - return $ret_or_500 - }; return nil; })())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else if ($truthy((function() {if ($truthy(($ret_or_501 = (function() {if ($truthy(($ret_or_502 = current_literal['$regexp?']()))) { - return $rb_ge(self.version, 31) - } else { - return $ret_or_502 - }; return nil; })()))) { - return ["c", "C", "m", "M"]['$include?'](escaped_char) - } else { - return $ret_or_501 - }; return nil; })())) { - current_literal.$extend_string(self.escape, self.ts, self.te) - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string((function() {if ($truthy(($ret_or_503 = self.escape))) { - return $ret_or_503 + current_literal.$extend_string(($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok())), self.ts, self.te) + };;; + } else if ($eqeqeq(373, $ret_or_1)) { + + + self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + + self.te = p; + p = $rb_minus(p, 1); + + value = ($truthy(($ret_or_2 = self.escape)) ? ($ret_or_2) : (self.$tok($rb_plus(self.ts, 1)))); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) } else { - return self.$tok() - }; return nil; })(), self.ts, self.te) - };;;} - else if ((373)['$===']($case)) { - - self.escape = self.$encode_escape(self.$tok($rb_minus(p, 2), p).$to_i(16));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - value = (function() {if ($truthy(($ret_or_504 = self.escape))) { - return $ret_or_504 - } else { - return self.$tok($rb_plus(self.ts, 1)) - }; return nil; })(); - if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", value.$getbyte(0)) - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 810; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((478)['$===']($case)) { - - self.num_base = 16; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$33 = function(chars){var self = $$33.$$s == null ? this : $$33.$$s; + self.$emit("tCHARACTER", value) + }; + self.cs = 810; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(478, $ret_or_1)) { + + + self.num_base = 16; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$23(chars){var self = $$23.$$s == null ? this : $$23.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.te = p; + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; - return self.$emit("tINTEGER", chars);}, $$33.$$s = self, $$33.$$arity = 1, $$33));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_505 = (function() {if ($truthy(($ret_or_506 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_506 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_505 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_507 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_507 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(472, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((472)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$34 = function(chars){var self = $$34.$$s == null ? this : $$34.$$s; + + self.num_base = 10; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$24(chars){var self = $$24.$$s == null ? this : $$24.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.te = p; + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); }; - return self.$emit("tINTEGER", chars);}, $$34.$$s = self, $$34.$$arity = 1, $$34));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_508 = (function() {if ($truthy(($ret_or_509 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_509 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_508 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_510 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_510 - }; return nil; })())) { + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(475, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((475)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$35 = function(chars){var self = $$35.$$s == null ? this : $$35.$$s; + self.num_base = 8; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$25(chars){var self = $$25.$$s == null ? this : $$25.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.te = p; + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); }; - return self.$emit("tINTEGER", chars);}, $$35.$$s = self, $$35.$$arity = 1, $$35));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_511 = (function() {if ($truthy(($ret_or_512 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_512 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_511 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_513 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_513 - }; return nil; })())) { + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(469, $ret_or_1)) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((469)['$===']($case)) { - - self.num_base = 2; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$36 = function(chars){var self = $$36.$$s == null ? this : $$36.$$s; + self.num_base = 2; + self.num_digits_s = p;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$26(chars){var self = $$26.$$s == null ? this : $$26.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.te = p; + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; - return self.$emit("tINTEGER", chars);}, $$36.$$s = self, $$36.$$arity = 1, $$36));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_514 = (function() {if ($truthy(($ret_or_515 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_515 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_514 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_516 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_516 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(481, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((481)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$37 = function(chars){var self = $$37.$$s == null ? this : $$37.$$s; + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$27(chars){var self = $$27.$$s == null ? this : $$27.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.te = p; + p = $rb_minus(p, 1); - if (chars == null) { - chars = nil; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; - return self.$emit("tINTEGER", chars);}, $$37.$$s = self, $$37.$$arity = 1, $$37));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_517 = (function() {if ($truthy(($ret_or_518 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_518 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_517 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_519 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_519 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(445, $ret_or_1)) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((445)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$38 = function(chars){var self = $$38.$$s == null ? this : $$38.$$s; + + self.num_base = 8; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$28(chars){var self = $$28.$$s == null ? this : $$28.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ((($truthy(digits['$empty?']()) && ($eqeq(self.num_base, 8))) && ($truthy(self['$version?'](18))))) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if (($eqeq(self.num_base, 8) && ($truthy((invalid_idx = digits.$index(/[89]/)))))) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1))); + }; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;; + } else if ($eqeqeq(32, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil; + };; + + tm = p;; + + self.act = 73;; + } else if ($eqeqeq(63, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.act = 99;; + } else if ($eqeqeq(92, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, ($eqeq(p, pe) ? ($rb_minus(p, 2)) : (p)));; + + self.act = 181;; + } else if ($eqeqeq(488, $ret_or_1)) { + + + self.te = $rb_plus(p, 1);; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$29(chars){var self = $$29.$$s == null ? this : $$29.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.act = 156;; + } else if ($eqeqeq(484, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$38.$$s = self, $$38.$$arity = 1, $$38));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy((function() {if ($truthy(($ret_or_520 = (function() {if ($truthy(($ret_or_521 = digits['$empty?']()))) { - return self.num_base['$=='](8) - } else { - return $ret_or_521 - }; return nil; })()))) { - return self['$version?'](18) - } else { - return $ret_or_520 - }; return nil; })())) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((function() {if ($truthy(($ret_or_522 = self.num_base['$=='](8)))) { - - return (invalid_idx = digits.$index(/[89]/)); - } else { - return $ret_or_522 - }; return nil; })())) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.te = $rb_plus(p, 1);; - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((32)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { + self.num_base = 10; + self.num_digits_s = self.ts;; - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;; - - self.act = 73;;} - else if ((63)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 99;;} - else if ((92)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.act = 181;;} - else if ((488)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$39 = function(chars){var self = $$39.$$s == null ? this : $$39.$$s; + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], function $$30(chars){var self = $$30.$$s == null ? this : $$30.$$s; + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + self.act = 156;; + } else if ($eqeqeq(448, $ret_or_1)) { - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$39.$$s = self, $$39.$$arity = 1, $$39));; - - self.act = 156;;} - else if ((484)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$40 = function(chars){var self = $$40.$$s == null ? this : $$40.$$s; - + self.te = $rb_plus(p, 1);; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$40.$$s = self, $$40.$$arity = 1, $$40));; - - self.act = 156;;} - else if ((448)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], ($$41 = function(chars){var self = $$41.$$s == null ? this : $$41.$$s; - + self.num_base = 8; + self.num_digits_s = self.ts;; + self.num_suffix_s = p;; - if (chars == null) { - chars = nil; - }; - return self.$emit("tINTEGER", chars);}, $$41.$$s = self, $$41.$$arity = 1, $$41));; - - self.act = 156;;}};}; + self.num_xfrm = $send(self, 'lambda', [], function $$31(chars){var self = $$31.$$s == null ? this : $$31.$$s; + + + + if (chars == null) chars = nil;; + return self.$emit("tINTEGER", chars);}, {$$arity: 1, $$s: self});; + + self.act = 156;; + } else { + nil + } + }; + }; if ($truthy($rb_le(_goto_level, _again))) { - $case = _lex_to_state_actions['$[]'](self.cs); - if ((96)['$===']($case)) { - self.ts = nil;}; - if (self.cs['$=='](0)) { + if ($eqeqeq(96, ($ret_or_1 = _lex_to_state_actions['$[]'](self.cs)))) { + + self.ts = nil; + } else { + nil + }; + if ($eqeq(self.cs, 0)) { _goto_level = _out; - continue;;}; + continue;; + }; p = $rb_plus(p, 1); - if ($truthy(p['$!='](pe))) { + if ($neqeq(p, pe)) { _goto_level = _resume; - continue;;};}; + continue;; + }; + }; if ($truthy($rb_le(_goto_level, _test_eof))) { - if (p['$=='](eof)) { + if ($eqeq(p, eof)) { if ($truthy($rb_gt(_lex_eof_trans['$[]'](self.cs), 0))) { _trans = $rb_minus(_lex_eof_trans['$[]'](self.cs), 1); _goto_level = _eof_trans; - continue;;}}}; + continue;; + } + } + }; if ($truthy($rb_le(_goto_level, _out))) { - break;}; + break; + }; };; if ($truthy(false)) { - testEof}; + testEof + }; self.p = p; if ($truthy(self.token_queue['$any?']())) { return self.token_queue.$shift() - } else if (self.cs['$=='](klass.$lex_error())) { + } else if ($eqeq(self.cs, klass.$lex_error())) { return [false, ["$error".$freeze(), self.$range($rb_minus(p, 1), p)]] } else { eof = self.source_pts.$size(); return [false, ["$eof".$freeze(), self.$range(eof, eof)]]; }; - }, $Lexer_advance$12.$$arity = 0); + }, 0); self.$protected(); - Opal.def(self, '$eof_codepoint?', $Lexer_eof_codepoint$ques$42 = function(point) { - var self = this; - + $def(self, '$eof_codepoint?', function $Lexer_eof_codepoint$ques$32(point) { + return [4, 26, 0]['$include?'](point) - }, $Lexer_eof_codepoint$ques$42.$$arity = 1); + }, 1); - Opal.def(self, '$version?', $Lexer_version$ques$43 = function($a) { + $def(self, '$version?', function $Lexer_version$ques$33($a) { var $post_args, versions, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); versions = $post_args;; return versions['$include?'](self.version); - }, $Lexer_version$ques$43.$$arity = -1); + }, -1); - Opal.def(self, '$stack_pop', $Lexer_stack_pop$44 = function $$stack_pop() { + $def(self, '$stack_pop', function $$stack_pop() { var self = this; self.top = $rb_minus(self.top, 1); return self.stack['$[]'](self.top); - }, $Lexer_stack_pop$44.$$arity = 0); + }, 0); - Opal.def(self, '$encode_escape', $Lexer_encode_escape$45 = function $$encode_escape(ord) { + $def(self, '$encode_escape', function $$encode_escape(ord) { var self = this; return ord.$chr().$force_encoding(self.source_buffer.$source().$encoding()) - }, $Lexer_encode_escape$45.$$arity = 1); + }, 1); - Opal.def(self, '$tok', $Lexer_tok$46 = function $$tok(s, e) { + $def(self, '$tok', function $$tok(s, e) { var self = this; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; + if (e == null) e = self.te;; return self.source_buffer.$slice(Opal.Range.$new(s,e, true)); - }, $Lexer_tok$46.$$arity = -1); + }, -1); - Opal.def(self, '$range', $Lexer_range$47 = function $$range(s, e) { + $def(self, '$range', function $$range(s, e) { var self = this; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; - return $$$($$$($$($nesting, 'Parser'), 'Source'), 'Range').$new(self.source_buffer, s, e); - }, $Lexer_range$47.$$arity = -1); + if (e == null) e = self.te;; + return $$$($$$($$('Parser'), 'Source'), 'Range').$new(self.source_buffer, s, e); + }, -1); - Opal.def(self, '$emit', $Lexer_emit$48 = function $$emit(type, value, s, e) { + $def(self, '$emit', function $$emit(type, value, s, e) { var self = this, token = nil; - if (value == null) { - value = self.$tok(); - }; + if (value == null) value = self.$tok();; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; + if (e == null) e = self.te;; token = [type, [value, self.$range(s, e)]]; self.token_queue.$push(token); if ($truthy(self.tokens)) { - self.tokens.$push(token)}; + self.tokens.$push(token) + }; return token; - }, $Lexer_emit$48.$$arity = -2); + }, -2); - Opal.def(self, '$emit_table', $Lexer_emit_table$49 = function $$emit_table(table, s, e) { + $def(self, '$emit_table', function $$emit_table(table, s, e) { var self = this, value = nil; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; + if (e == null) e = self.te;; value = self.$tok(s, e); return self.$emit(table['$[]'](value), value, s, e); - }, $Lexer_emit_table$49.$$arity = -2); + }, -2); - Opal.def(self, '$emit_do', $Lexer_emit_do$50 = function $$emit_do(do_block) { - var self = this, $ret_or_523 = nil; + $def(self, '$emit_do', function $$emit_do(do_block) { + var self = this; - if (do_block == null) { - do_block = false; - }; + if (do_block == null) do_block = false;; if ($truthy(self.cond['$active?']())) { return self.$emit("kDO_COND", "do".$freeze()) - } else if ($truthy((function() {if ($truthy(($ret_or_523 = self.cmdarg['$active?']()))) { - return $ret_or_523 - } else { - return do_block - }; return nil; })())) { + } else if (($truthy(self.cmdarg['$active?']()) || ($truthy(do_block)))) { return self.$emit("kDO_BLOCK", "do".$freeze()) } else { return self.$emit("kDO", "do".$freeze()) }; - }, $Lexer_emit_do$50.$$arity = -1); + }, -1); - Opal.def(self, '$arg_or_cmdarg', $Lexer_arg_or_cmdarg$51 = function $$arg_or_cmdarg(cmd_state) { + $def(self, '$arg_or_cmdarg', function $$arg_or_cmdarg(cmd_state) { var self = this; if ($truthy(cmd_state)) { @@ -19008,87 +16518,67 @@ Opal.modules["parser/lexer"] = function(Opal) { } else { return self.$class().$lex_en_expr_arg() } - }, $Lexer_arg_or_cmdarg$51.$$arity = 1); + }, 1); - Opal.def(self, '$emit_comment', $Lexer_emit_comment$52 = function $$emit_comment(s, e) { + $def(self, '$emit_comment', function $$emit_comment(s, e) { var self = this; - if (s == null) { - s = self.ts; - }; + if (s == null) s = self.ts;; - if (e == null) { - e = self.te; - }; + if (e == null) e = self.te;; if ($truthy(self.comments)) { - self.comments.$push($$$($$$($$($nesting, 'Parser'), 'Source'), 'Comment').$new(self.$range(s, e)))}; + self.comments.$push($$$($$$($$('Parser'), 'Source'), 'Comment').$new(self.$range(s, e))) + }; if ($truthy(self.tokens)) { - self.tokens.$push(["tCOMMENT", [self.$tok(s, e), self.$range(s, e)]])}; + self.tokens.$push(["tCOMMENT", [self.$tok(s, e), self.$range(s, e)]]) + }; return nil; - }, $Lexer_emit_comment$52.$$arity = -1); + }, -1); - Opal.def(self, '$diagnostic', $Lexer_diagnostic$53 = function $$diagnostic(type, reason, arguments$, location, highlights) { + $def(self, '$diagnostic', function $$diagnostic(type, reason, arguments$, location, highlights) { var self = this; - if (arguments$ == null) { - arguments$ = nil; - }; + if (arguments$ == null) arguments$ = nil;; - if (location == null) { - location = self.$range(); - }; + if (location == null) location = self.$range();; - if (highlights == null) { - highlights = []; - }; - return self.diagnostics.$process($$$($$($nesting, 'Parser'), 'Diagnostic').$new(type, reason, arguments$, location, highlights)); - }, $Lexer_diagnostic$53.$$arity = -3); + if (highlights == null) highlights = [];; + return self.diagnostics.$process($$$($$('Parser'), 'Diagnostic').$new(type, reason, arguments$, location, highlights)); + }, -3); - Opal.def(self, '$push_literal', $Lexer_push_literal$54 = function $$push_literal($a) { + $def(self, '$push_literal', function $$push_literal($a) { var $post_args, args, self = this, new_literal = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - new_literal = $send($$($nesting, 'Literal'), 'new', [self].concat(Opal.to_a(args))); + new_literal = $send($$('Literal'), 'new', [self].concat($to_a(args))); self.literal_stack.$push(new_literal); return self.$next_state_for_literal(new_literal); - }, $Lexer_push_literal$54.$$arity = -1); + }, -1); - Opal.def(self, '$next_state_for_literal', $Lexer_next_state_for_literal$55 = function $$next_state_for_literal(literal) { - var self = this, $ret_or_524 = nil, $ret_or_525 = nil, $ret_or_526 = nil; + $def(self, '$next_state_for_literal', function $$next_state_for_literal(literal) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_524 = literal['$words?']()))) { - return literal['$backslash_delimited?']() - } else { - return $ret_or_524 - }; return nil; })())) { + if (($truthy(literal['$words?']()) && ($truthy(literal['$backslash_delimited?']())))) { if ($truthy(literal['$interpolate?']())) { return self.$class().$lex_en_interp_backslash_delimited_words() } else { return self.$class().$lex_en_plain_backslash_delimited_words() } - } else if ($truthy((function() {if ($truthy(($ret_or_525 = literal['$words?']()))) { - return literal['$backslash_delimited?']()['$!']() - } else { - return $ret_or_525 - }; return nil; })())) { + } else if (($truthy(literal['$words?']()) && ($not(literal['$backslash_delimited?']())))) { if ($truthy(literal['$interpolate?']())) { return self.$class().$lex_en_interp_words() } else { return self.$class().$lex_en_plain_words() } - } else if ($truthy((function() {if ($truthy(($ret_or_526 = literal['$words?']()['$!']()))) { - return literal['$backslash_delimited?']() - } else { - return $ret_or_526 - }; return nil; })())) { + } else if (($not(literal['$words?']()) && ($truthy(literal['$backslash_delimited?']())))) { if ($truthy(literal['$interpolate?']())) { return self.$class().$lex_en_interp_backslash_delimited() } else { @@ -19099,111 +16589,85 @@ Opal.modules["parser/lexer"] = function(Opal) { } else { return self.$class().$lex_en_plain_string() } - }, $Lexer_next_state_for_literal$55.$$arity = 1); + }, 1); - Opal.def(self, '$literal', $Lexer_literal$56 = function $$literal() { + $def(self, '$literal', function $$literal() { var self = this; return self.literal_stack.$last() - }, $Lexer_literal$56.$$arity = 0); + }, 0); - Opal.def(self, '$pop_literal', $Lexer_pop_literal$57 = function $$pop_literal() { + $def(self, '$pop_literal', function $$pop_literal() { var self = this, old_literal = nil; old_literal = self.literal_stack.$pop(); self.dedent_level = old_literal.$dedent_level(); - if (old_literal.$type()['$==']("tREGEXP_BEG")) { + if ($eqeq(old_literal.$type(), "tREGEXP_BEG")) { return self.$class().$lex_en_regexp_modifiers() } else { return self.$class().$lex_en_expr_end() }; - }, $Lexer_pop_literal$57.$$arity = 0); - Opal.const_set($nesting[0], 'PUNCTUATION', $hash2(["=", "&", "|", "!", "^", "+", "-", "*", "/", "%", "~", ",", ";", ".", "..", "...", "[", "]", "(", ")", "?", ":", "&&", "||", "-@", "+@", "~@", "**", "->", "=~", "!~", "==", "!=", ">", ">>", ">=", "<", "<<", "<=", "=>", "::", "===", "<=>", "[]", "[]=", "{", "}", "`", "!@", "&."], {"=": "tEQL", "&": "tAMPER2", "|": "tPIPE", "!": "tBANG", "^": "tCARET", "+": "tPLUS", "-": "tMINUS", "*": "tSTAR2", "/": "tDIVIDE", "%": "tPERCENT", "~": "tTILDE", ",": "tCOMMA", ";": "tSEMI", ".": "tDOT", "..": "tDOT2", "...": "tDOT3", "[": "tLBRACK2", "]": "tRBRACK", "(": "tLPAREN2", ")": "tRPAREN", "?": "tEH", ":": "tCOLON", "&&": "tANDOP", "||": "tOROP", "-@": "tUMINUS", "+@": "tUPLUS", "~@": "tTILDE", "**": "tPOW", "->": "tLAMBDA", "=~": "tMATCH", "!~": "tNMATCH", "==": "tEQ", "!=": "tNEQ", ">": "tGT", ">>": "tRSHFT", ">=": "tGEQ", "<": "tLT", "<<": "tLSHFT", "<=": "tLEQ", "=>": "tASSOC", "::": "tCOLON2", "===": "tEQQ", "<=>": "tCMP", "[]": "tAREF", "[]=": "tASET", "{": "tLCURLY", "}": "tRCURLY", "`": "tBACK_REF2", "!@": "tBANG", "&.": "tANDDOT"})); - Opal.const_set($nesting[0], 'PUNCTUATION_BEGIN', $hash2(["&", "*", "**", "+", "-", "::", "(", "{", "["], {"&": "tAMPER", "*": "tSTAR", "**": "tDSTAR", "+": "tUPLUS", "-": "tUMINUS", "::": "tCOLON3", "(": "tLPAREN", "{": "tLBRACE", "[": "tLBRACK"})); - Opal.const_set($nesting[0], 'KEYWORDS', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF_MOD", "unless": "kUNLESS_MOD", "while": "kWHILE_MOD", "until": "kUNTIL_MOD", "rescue": "kRESCUE_MOD", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); - Opal.const_set($nesting[0], 'KEYWORDS_BEGIN', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF", "unless": "kUNLESS", "while": "kWHILE", "until": "kUNTIL", "rescue": "kRESCUE", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); - return $send(["class", "module", "def", "undef", "begin", "end", "then", "elsif", "else", "ensure", "case", "when", "for", "break", "next", "redo", "retry", "in", "do", "return", "yield", "super", "self", "nil", "true", "false", "and", "or", "not", "alias", "__FILE__", "__LINE__", "__ENCODING__"], 'each', [], ($Lexer$58 = function(keyword){var self = $Lexer$58.$$s == null ? this : $Lexer$58.$$s; - - - - if (keyword == null) { - keyword = nil; - }; - $writer = [keyword, (($writer = [keyword, "" + "k" + (keyword.$upcase())]), $send($$($nesting, 'KEYWORDS'), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; - $send($$($nesting, 'KEYWORDS_BEGIN'), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $Lexer$58.$$s = self, $Lexer$58.$$arity = 1, $Lexer$58)); - })($$($nesting, 'Parser'), null, $nesting) + }, 0); + $const_set($nesting[0], 'PUNCTUATION', $hash2(["=", "&", "|", "!", "^", "+", "-", "*", "/", "%", "~", ",", ";", ".", "..", "...", "[", "]", "(", ")", "?", ":", "&&", "||", "-@", "+@", "~@", "**", "->", "=~", "!~", "==", "!=", ">", ">>", ">=", "<", "<<", "<=", "=>", "::", "===", "<=>", "[]", "[]=", "{", "}", "`", "!@", "&."], {"=": "tEQL", "&": "tAMPER2", "|": "tPIPE", "!": "tBANG", "^": "tCARET", "+": "tPLUS", "-": "tMINUS", "*": "tSTAR2", "/": "tDIVIDE", "%": "tPERCENT", "~": "tTILDE", ",": "tCOMMA", ";": "tSEMI", ".": "tDOT", "..": "tDOT2", "...": "tDOT3", "[": "tLBRACK2", "]": "tRBRACK", "(": "tLPAREN2", ")": "tRPAREN", "?": "tEH", ":": "tCOLON", "&&": "tANDOP", "||": "tOROP", "-@": "tUMINUS", "+@": "tUPLUS", "~@": "tTILDE", "**": "tPOW", "->": "tLAMBDA", "=~": "tMATCH", "!~": "tNMATCH", "==": "tEQ", "!=": "tNEQ", ">": "tGT", ">>": "tRSHFT", ">=": "tGEQ", "<": "tLT", "<<": "tLSHFT", "<=": "tLEQ", "=>": "tASSOC", "::": "tCOLON2", "===": "tEQQ", "<=>": "tCMP", "[]": "tAREF", "[]=": "tASET", "{": "tLCURLY", "}": "tRCURLY", "`": "tBACK_REF2", "!@": "tBANG", "&.": "tANDDOT"})); + $const_set($nesting[0], 'PUNCTUATION_BEGIN', $hash2(["&", "*", "**", "+", "-", "::", "(", "{", "["], {"&": "tAMPER", "*": "tSTAR", "**": "tDSTAR", "+": "tUPLUS", "-": "tUMINUS", "::": "tCOLON3", "(": "tLPAREN", "{": "tLBRACE", "[": "tLBRACK"})); + $const_set($nesting[0], 'KEYWORDS', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF_MOD", "unless": "kUNLESS_MOD", "while": "kWHILE_MOD", "until": "kUNTIL_MOD", "rescue": "kRESCUE_MOD", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); + $const_set($nesting[0], 'KEYWORDS_BEGIN', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF", "unless": "kUNLESS", "while": "kWHILE", "until": "kUNTIL", "rescue": "kRESCUE", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); + return $send(["class", "module", "def", "undef", "begin", "end", "then", "elsif", "else", "ensure", "case", "when", "for", "break", "next", "redo", "retry", "in", "do", "return", "yield", "super", "self", "nil", "true", "false", "and", "or", "not", "alias", "__FILE__", "__LINE__", "__ENCODING__"], 'each', [], function $Lexer$34(keyword){ + + + if (keyword == null) keyword = nil;; + $writer = [keyword, (($writer = [keyword, "k" + (keyword.$upcase())]), $send($$('KEYWORDS'), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; + $send($$('KEYWORDS_BEGIN'), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + })($$('Parser'), null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/lexer/literal"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $enc = Opal.enc, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["parser/lexer/literal"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $hash2 = Opal.hash2, $enc = Opal.enc, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $to_ary = Opal.to_ary, $def = Opal.def, $eqeq = Opal.eqeq, $rb_minus = Opal.rb_minus, $neqeq = Opal.neqeq, $not = Opal.not, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $rb_gt = Opal.rb_gt; - Opal.add_stubs(['$attr_reader', '$attr_accessor', '$coerce_encoding', '$include?', '$send', '$+', '$[]', '$fetch', '$==', '$!', '$heredoc?', '$start_with?', '$freeze', '$clear_buffer', '$emit_start_tok', '$type', '$words?', '$=~', '$delimiter?', '$-', '$extend_space', '$!=', '$flush_string', '$emit', '$each_char', '$===', '$%', '$nil?', '$>', '$<<', '$empty?', '$extend_content', '$protected', '$lstrip', '$b', '$dup', '$force_encoding', '$encoding', '$source', '$source_buffer', '$length']); + Opal.add_stubs('attr_reader,attr_accessor,coerce_encoding,include?,send,+,[],fetch,==,!,heredoc?,start_with?,freeze,clear_buffer,emit_start_tok,type,=~,words?,delimiter?,-,extend_space,!=,flush_string,emit,each_char,===,%,>,nil?,<<,empty?,extend_content,protected,lstrip,b,dup,force_encoding,encoding,source,source_buffer,length'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Literal'); - var $nesting = [self].concat($parent_nesting), $Literal_initialize$1, $Literal_interpolate$ques$2, $Literal_words$ques$3, $Literal_regexp$ques$4, $Literal_heredoc$ques$5, $Literal_plain_heredoc$ques$6, $Literal_squiggly_heredoc$ques$7, $Literal_backslash_delimited$ques$8, $Literal_type$9, $Literal_munge_escape$ques$10, $Literal_nest_and_try_closing$11, $Literal_infer_indent_level$12, $Literal_start_interp_brace$14, $Literal_end_interp_brace_and_try_closing$15, $Literal_extend_string$16, $Literal_flush_string$17, $Literal_extend_content$18, $Literal_extend_space$19, $Literal_supports_line_continuation_via_slash$ques$20, $Literal_delimiter$ques$21, $Literal_coerce_encoding$22, $Literal_clear_buffer$23, $Literal_emit_start_tok$24, $Literal_emit$25; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.lexer = self.$$prototype.start_tok = self.$$prototype.str_type = self.$$prototype.monolithic = self.$$prototype.interpolate = self.$$prototype.heredoc_e = self.$$prototype.dedent_body = self.$$prototype.end_delim = self.$$prototype.start_delim = self.$$prototype.nesting = self.$$prototype.label_allowed = self.$$prototype.buffer = self.$$prototype.str_s = self.$$prototype.interp_braces = self.$$prototype.buffer_s = self.$$prototype.buffer_e = self.$$prototype.space_emitted = self.$$prototype.indent = nil; + $proto.lexer = $proto.start_tok = $proto.str_type = $proto.monolithic = $proto.interpolate = $proto.heredoc_e = $proto.dedent_body = $proto.end_delim = $proto.start_delim = $proto.nesting = $proto.label_allowed = $proto.buffer = $proto.str_s = $proto.interp_braces = $proto.buffer_s = $proto.buffer_e = $proto.space_emitted = $proto.indent = nil; - Opal.const_set($nesting[0], 'DELIMITERS', $hash2(["(", "[", "{", "<"], {"(": $enc(")", "ASCII-8BIT"), "[": $enc("]", "ASCII-8BIT"), "{": $enc("}", "ASCII-8BIT"), "<": $enc(">", "ASCII-8BIT")})); - Opal.const_set($nesting[0], 'TYPES', $hash2(["'", "<<'", "%q", "\"", "<<\"", "%", "%Q", "%w", "%W", "%i", "%I", ":'", "%s", ":\"", "/", "%r", "%x", "`", "<<`"], {"'": ["tSTRING_BEG", false], "<<'": ["tSTRING_BEG", false], "%q": ["tSTRING_BEG", false], "\"": ["tSTRING_BEG", true], "<<\"": ["tSTRING_BEG", true], "%": ["tSTRING_BEG", true], "%Q": ["tSTRING_BEG", true], "%w": ["tQWORDS_BEG", false], "%W": ["tWORDS_BEG", true], "%i": ["tQSYMBOLS_BEG", false], "%I": ["tSYMBOLS_BEG", true], ":'": ["tSYMBEG", false], "%s": ["tSYMBEG", false], ":\"": ["tSYMBEG", true], "/": ["tREGEXP_BEG", true], "%r": ["tREGEXP_BEG", true], "%x": ["tXSTRING_BEG", true], "`": ["tXSTRING_BEG", true], "<<`": ["tXSTRING_BEG", true]})); + $const_set($nesting[0], 'DELIMITERS', $hash2(["(", "[", "{", "<"], {"(": $enc(")", "ASCII-8BIT"), "[": $enc("]", "ASCII-8BIT"), "{": $enc("}", "ASCII-8BIT"), "<": $enc(">", "ASCII-8BIT")})); + $const_set($nesting[0], 'TYPES', $hash2(["'", "<<'", "%q", "\"", "<<\"", "%", "%Q", "%w", "%W", "%i", "%I", ":'", "%s", ":\"", "/", "%r", "%x", "`", "<<`"], {"'": ["tSTRING_BEG", false], "<<'": ["tSTRING_BEG", false], "%q": ["tSTRING_BEG", false], "\"": ["tSTRING_BEG", true], "<<\"": ["tSTRING_BEG", true], "%": ["tSTRING_BEG", true], "%Q": ["tSTRING_BEG", true], "%w": ["tQWORDS_BEG", false], "%W": ["tWORDS_BEG", true], "%i": ["tQSYMBOLS_BEG", false], "%I": ["tSYMBOLS_BEG", true], ":'": ["tSYMBEG", false], "%s": ["tSYMBEG", false], ":\"": ["tSYMBEG", true], "/": ["tREGEXP_BEG", true], "%r": ["tREGEXP_BEG", true], "%x": ["tXSTRING_BEG", true], "`": ["tXSTRING_BEG", true], "<<`": ["tXSTRING_BEG", true]})); self.$attr_reader("heredoc_e", "str_s", "dedent_level"); self.$attr_accessor("saved_herebody_s"); - Opal.def(self, '$initialize', $Literal_initialize$1 = function $$initialize(lexer, str_type, delimiter, str_s, heredoc_e, indent, dedent_body, label_allowed) { + $def(self, '$initialize', function $$initialize(lexer, str_type, delimiter, str_s, heredoc_e, indent, dedent_body, label_allowed) { var $a, $b, self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if (heredoc_e == null) { - heredoc_e = nil; - }; + if (heredoc_e == null) heredoc_e = nil;; - if (indent == null) { - indent = false; - }; + if (indent == null) indent = false;; - if (dedent_body == null) { - dedent_body = false; - }; + if (dedent_body == null) dedent_body = false;; - if (label_allowed == null) { - label_allowed = false; - }; + if (label_allowed == null) label_allowed = false;; self.lexer = lexer; self.nesting = 1; str_type = self.$coerce_encoding(str_type); delimiter = self.$coerce_encoding(delimiter); - if ($truthy($$($nesting, 'TYPES')['$include?'](str_type))) { - } else { + if (!$truthy($$('TYPES')['$include?'](str_type))) { lexer.$send("diagnostic", "error", "unexpected_percent_str", $hash2(["type"], {"type": str_type}), self.lexer.$send("range", str_s, $rb_plus(str_s, 2))) }; self.str_type = str_type; self.str_s = str_s; - $b = $$($nesting, 'TYPES')['$[]'](str_type), $a = Opal.to_ary($b), (self.start_tok = ($a[0] == null ? nil : $a[0])), (self.interpolate = ($a[1] == null ? nil : $a[1])), $b; - self.start_delim = (function() {if ($truthy($$($nesting, 'DELIMITERS')['$include?'](delimiter))) { - return delimiter - } else { - return nil - }; return nil; })(); - self.end_delim = $$($nesting, 'DELIMITERS').$fetch(delimiter, delimiter); + $b = $$('TYPES')['$[]'](str_type), $a = $to_ary($b), (self.start_tok = ($a[0] == null ? nil : $a[0])), (self.interpolate = ($a[1] == null ? nil : $a[1])), $b; + self.start_delim = ($truthy($$('DELIMITERS')['$include?'](delimiter)) ? (delimiter) : (nil)); + self.end_delim = $$('DELIMITERS').$fetch(delimiter, delimiter); self.heredoc_e = heredoc_e; self.indent = indent; self.label_allowed = label_allowed; @@ -19211,147 +16675,108 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { self.dedent_level = nil; self.interp_braces = 0; self.space_emitted = true; - self.monolithic = (function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.start_tok['$==']("tSTRING_BEG")))) { - return [$enc("'", "ASCII-8BIT"), $enc("\"", "ASCII-8BIT")]['$include?'](str_type) - } else { - return $ret_or_2 - }; return nil; })()))) { - return self['$heredoc?']()['$!']() - } else { - return $ret_or_1 - }; return nil; })(); + self.monolithic = ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.start_tok['$==']("tSTRING_BEG"))) ? ([$enc("'", "ASCII-8BIT"), $enc("\"", "ASCII-8BIT")]['$include?'](str_type)) : ($ret_or_2)))) ? (self['$heredoc?']()['$!']()) : ($ret_or_1)); if ($truthy(self.str_type['$start_with?']($enc("%", "ASCII-8BIT").$freeze()))) { - self.str_type = $rb_plus(self.str_type, delimiter)}; + self.str_type = $rb_plus(self.str_type, delimiter) + }; self.$clear_buffer(); if ($truthy(self.monolithic)) { return nil } else { return self.$emit_start_tok() }; - }, $Literal_initialize$1.$$arity = -5); + }, -5); - Opal.def(self, '$interpolate?', $Literal_interpolate$ques$2 = function() { + $def(self, '$interpolate?', function $Literal_interpolate$ques$1() { var self = this; return self.interpolate - }, $Literal_interpolate$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$words?', $Literal_words$ques$3 = function() { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$words?', function $Literal_words$ques$2() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.$type()['$==']("tWORDS_BEG")))) { - return $ret_or_5 - } else { - return self.$type()['$==']("tQWORDS_BEG") - }; return nil; })()))) { - return $ret_or_4 - } else { - return self.$type()['$==']("tSYMBOLS_BEG") - }; return nil; })()))) { - return $ret_or_3 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = self.$type()['$==']("tWORDS_BEG"))) ? ($ret_or_3) : (self.$type()['$==']("tQWORDS_BEG"))))) ? ($ret_or_2) : (self.$type()['$==']("tSYMBOLS_BEG")))))) { + return $ret_or_1 } else { return self.$type()['$==']("tQSYMBOLS_BEG") } - }, $Literal_words$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$regexp?', $Literal_regexp$ques$4 = function() { + $def(self, '$regexp?', function $Literal_regexp$ques$3() { var self = this; return self.$type()['$==']("tREGEXP_BEG") - }, $Literal_regexp$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$heredoc?', $Literal_heredoc$ques$5 = function() { + $def(self, '$heredoc?', function $Literal_heredoc$ques$4() { var self = this; return self.heredoc_e['$!']()['$!']() - }, $Literal_heredoc$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$plain_heredoc?', $Literal_plain_heredoc$ques$6 = function() { - var self = this, $ret_or_6 = nil; + $def(self, '$plain_heredoc?', function $Literal_plain_heredoc$ques$5() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_6 = self['$heredoc?']()))) { + if ($truthy(($ret_or_1 = self['$heredoc?']()))) { return self.dedent_body['$!']() } else { - return $ret_or_6 + return $ret_or_1 } - }, $Literal_plain_heredoc$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$squiggly_heredoc?', $Literal_squiggly_heredoc$ques$7 = function() { - var self = this, $ret_or_7 = nil; + $def(self, '$squiggly_heredoc?', function $Literal_squiggly_heredoc$ques$6() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_7 = self['$heredoc?']()))) { + if ($truthy(($ret_or_1 = self['$heredoc?']()))) { return self.dedent_body } else { - return $ret_or_7 + return $ret_or_1 } - }, $Literal_squiggly_heredoc$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$backslash_delimited?', $Literal_backslash_delimited$ques$8 = function() { + $def(self, '$backslash_delimited?', function $Literal_backslash_delimited$ques$7() { var self = this; return self.end_delim['$==']($enc("\\", "ASCII-8BIT").$freeze()) - }, $Literal_backslash_delimited$ques$8.$$arity = 0); + }, 0); - Opal.def(self, '$type', $Literal_type$9 = function $$type() { + $def(self, '$type', function $$type() { var self = this; return self.start_tok - }, $Literal_type$9.$$arity = 0); + }, 0); - Opal.def(self, '$munge_escape?', $Literal_munge_escape$ques$10 = function(character) { - var self = this, $ret_or_8 = nil; + $def(self, '$munge_escape?', function $Literal_munge_escape$ques$8(character) { + var self = this; character = self.$coerce_encoding(character); - if ($truthy((function() {if ($truthy(($ret_or_8 = self['$words?']()))) { - return character['$=~'](/[ \t\v\r\f\n]/) - } else { - return $ret_or_8 - }; return nil; })())) { + if (($truthy(self['$words?']()) && ($truthy(character['$=~'](/[ \t\v\r\f\n]/))))) { return true } else { return [$enc("\\", "ASCII-8BIT").$freeze(), self.start_delim, self.end_delim]['$include?'](character) }; - }, $Literal_munge_escape$ques$10.$$arity = 1); + }, 1); - Opal.def(self, '$nest_and_try_closing', $Literal_nest_and_try_closing$11 = function $$nest_and_try_closing(delimiter, ts, te, lookahead) { - var self = this, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + $def(self, '$nest_and_try_closing', function $$nest_and_try_closing(delimiter, ts, te, lookahead) { + var self = this; - if (lookahead == null) { - lookahead = nil; - }; + if (lookahead == null) lookahead = nil;; delimiter = self.$coerce_encoding(delimiter); - if ($truthy((function() {if ($truthy(($ret_or_9 = self.start_delim))) { - return self.start_delim['$=='](delimiter) - } else { - return $ret_or_9 - }; return nil; })())) { + if (($truthy(self.start_delim) && ($eqeq(self.start_delim, delimiter)))) { self.nesting = $rb_plus(self.nesting, 1) } else if ($truthy(self['$delimiter?'](delimiter))) { - self.nesting = $rb_minus(self.nesting, 1)}; - if (self.nesting['$=='](0)) { + self.nesting = $rb_minus(self.nesting, 1) + }; + if ($eqeq(self.nesting, 0)) { if ($truthy(self['$words?']())) { - self.$extend_space(ts, ts)}; - if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = lookahead))) { - return self.label_allowed - } else { - return $ret_or_13 - }; return nil; })()))) { - return lookahead['$[]'](0)['$==']($enc(":", "ASCII-8BIT")) - } else { - return $ret_or_12 - }; return nil; })()))) { - return lookahead['$[]'](1)['$!=']($enc(":", "ASCII-8BIT")) - } else { - return $ret_or_11 - }; return nil; })()))) { - return self.start_tok['$==']("tSTRING_BEG") - } else { - return $ret_or_10 - }; return nil; })())) { + self.$extend_space(ts, ts) + }; + if ((((($truthy(lookahead) && ($truthy(self.label_allowed))) && ($eqeq(lookahead['$[]'](0), $enc(":", "ASCII-8BIT")))) && ($neqeq(lookahead['$[]'](1), $enc(":", "ASCII-8BIT")))) && ($eqeq(self.start_tok, "tSTRING_BEG")))) { self.$flush_string(); return self.$emit("tLABEL_END", self.end_delim, ts, $rb_plus(te, 1)); @@ -19359,8 +16784,7 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { return self.$emit("tSTRING", self.buffer, self.str_s, te) } else { - if ($truthy(self['$heredoc?']())) { - } else { + if (!$truthy(self['$heredoc?']())) { self.$flush_string() }; return self.$emit("tSTRING_END", self.end_delim, ts, te); @@ -19368,74 +16792,70 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { } else { return nil }; - }, $Literal_nest_and_try_closing$11.$$arity = -4); + }, -4); - Opal.def(self, '$infer_indent_level', $Literal_infer_indent_level$12 = function $$infer_indent_level(line) { - var $$13, self = this, indent_level = nil; + $def(self, '$infer_indent_level', function $$infer_indent_level(line) { + var self = this, indent_level = nil; - if ($truthy(self.dedent_body['$!']())) { - return nil}; + if ($not(self.dedent_body)) { + return nil + }; indent_level = 0; - return (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], ($$13 = function(char$){var self = $$13.$$s == null ? this : $$13.$$s, $case = nil, $ret_or_14 = nil; + return (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], function $$9(char$){var self = $$9.$$s == null ? this : $$9.$$s, $ret_or_1 = nil; if (self.dedent_level == null) self.dedent_level = nil; - if (char$ == null) { - char$ = nil; - }; - return (function() {$case = char$; - if (" "['$===']($case)) {return (indent_level = $rb_plus(indent_level, 1))} - else if ("\t"['$===']($case)) {return (indent_level = $rb_plus(indent_level, $rb_minus(8, indent_level['$%'](8))))} - else { - if ($truthy((function() {if ($truthy(($ret_or_14 = self.dedent_level['$nil?']()))) { - return $ret_or_14 + if (char$ == null) char$ = nil;; + if ($eqeqeq(" ", ($ret_or_1 = char$))) { + return (indent_level = $rb_plus(indent_level, 1)) + } else if ($eqeqeq("\t", $ret_or_1)) { + return (indent_level = $rb_plus(indent_level, $rb_minus(8, indent_level['$%'](8)))) } else { - return $rb_gt(self.dedent_level, indent_level) - }; return nil; })())) { - self.dedent_level = indent_level}; - - Opal.brk(nil, $brk);}})();}, $$13.$$s = self, $$13.$$brk = $brk, $$13.$$arity = 1, $$13)) + + if (($truthy(self.dedent_level['$nil?']()) || ($truthy($rb_gt(self.dedent_level, indent_level))))) { + self.dedent_level = indent_level + }; + + Opal.brk(nil, $brk); + };}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); - }, $Literal_infer_indent_level$12.$$arity = 1); + }, 1); - Opal.def(self, '$start_interp_brace', $Literal_start_interp_brace$14 = function $$start_interp_brace() { + $def(self, '$start_interp_brace', function $$start_interp_brace() { var self = this; return (self.interp_braces = $rb_plus(self.interp_braces, 1)) - }, $Literal_start_interp_brace$14.$$arity = 0); + }, 0); - Opal.def(self, '$end_interp_brace_and_try_closing', $Literal_end_interp_brace_and_try_closing$15 = function $$end_interp_brace_and_try_closing() { + $def(self, '$end_interp_brace_and_try_closing', function $$end_interp_brace_and_try_closing() { var self = this; self.interp_braces = $rb_minus(self.interp_braces, 1); return self.interp_braces['$=='](0);; - }, $Literal_end_interp_brace_and_try_closing$15.$$arity = 0); + }, 0); - Opal.def(self, '$extend_string', $Literal_extend_string$16 = function $$extend_string(string, ts, te) { - var self = this, $ret_or_15 = nil; + $def(self, '$extend_string', function $$extend_string(string, ts, te) { + var self = this, $ret_or_1 = nil; - self.buffer_s = (function() {if ($truthy(($ret_or_15 = self.buffer_s))) { - return $ret_or_15 - } else { - return ts - }; return nil; })(); + self.buffer_s = ($truthy(($ret_or_1 = self.buffer_s)) ? ($ret_or_1) : (ts)); self.buffer_e = te; return self.buffer['$<<'](string); - }, $Literal_extend_string$16.$$arity = 3); + }, 3); - Opal.def(self, '$flush_string', $Literal_flush_string$17 = function $$flush_string() { + $def(self, '$flush_string', function $$flush_string() { var self = this; if ($truthy(self.monolithic)) { self.$emit_start_tok(); - self.monolithic = false;}; + self.monolithic = false; + }; if ($truthy(self.buffer['$empty?']())) { return nil } else { @@ -19444,15 +16864,15 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { self.$clear_buffer(); return self.$extend_content(); }; - }, $Literal_flush_string$17.$$arity = 0); + }, 0); - Opal.def(self, '$extend_content', $Literal_extend_content$18 = function $$extend_content() { + $def(self, '$extend_content', function $$extend_content() { var self = this; return (self.space_emitted = false) - }, $Literal_extend_content$18.$$arity = 0); + }, 0); - Opal.def(self, '$extend_space', $Literal_extend_space$19 = function $$extend_space(ts, te) { + $def(self, '$extend_space', function $$extend_space(ts, te) { var self = this; @@ -19464,20 +16884,20 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { self.$emit("tSPACE", nil, ts, te); return (self.space_emitted = true); }; - }, $Literal_extend_space$19.$$arity = 2); + }, 2); - Opal.def(self, '$supports_line_continuation_via_slash?', $Literal_supports_line_continuation_via_slash$ques$20 = function() { - var self = this, $ret_or_16 = nil; + $def(self, '$supports_line_continuation_via_slash?', function $Literal_supports_line_continuation_via_slash$ques$10() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_16 = self['$words?']()['$!']()))) { + if ($truthy(($ret_or_1 = self['$words?']()['$!']()))) { return self.interpolate } else { - return $ret_or_16 + return $ret_or_1 } - }, $Literal_supports_line_continuation_via_slash$ques$20.$$arity = 0); + }, 0); self.$protected(); - Opal.def(self, '$delimiter?', $Literal_delimiter$ques$21 = function(delimiter) { + $def(self, '$delimiter?', function $Literal_delimiter$ques$11(delimiter) { var self = this; if ($truthy(self.indent)) { @@ -19485,15 +16905,14 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { } else { return self.end_delim['$=='](delimiter) } - }, $Literal_delimiter$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$coerce_encoding', $Literal_coerce_encoding$22 = function $$coerce_encoding(string) { - var self = this; - + $def(self, '$coerce_encoding', function $$coerce_encoding(string) { + return string.$b() - }, $Literal_coerce_encoding$22.$$arity = 1); + }, 1); - Opal.def(self, '$clear_buffer', $Literal_clear_buffer$23 = function $$clear_buffer() { + $def(self, '$clear_buffer', function $$clear_buffer() { var self = this; @@ -19501,316 +16920,258 @@ Opal.modules["parser/lexer/literal"] = function(Opal) { self.buffer.$force_encoding(self.lexer.$source_buffer().$source().$encoding()); self.buffer_s = nil; return (self.buffer_e = nil); - }, $Literal_clear_buffer$23.$$arity = 0); + }, 0); - Opal.def(self, '$emit_start_tok', $Literal_emit_start_tok$24 = function $$emit_start_tok() { - var self = this, str_e = nil, $ret_or_17 = nil; + $def(self, '$emit_start_tok', function $$emit_start_tok() { + var self = this, str_e = nil, $ret_or_1 = nil; - str_e = (function() {if ($truthy(($ret_or_17 = self.heredoc_e))) { - return $ret_or_17 - } else { - return $rb_plus(self.str_s, self.str_type.$length()) - }; return nil; })(); + str_e = ($truthy(($ret_or_1 = self.heredoc_e)) ? ($ret_or_1) : ($rb_plus(self.str_s, self.str_type.$length()))); return self.$emit(self.start_tok, self.str_type, self.str_s, str_e); - }, $Literal_emit_start_tok$24.$$arity = 0); - return (Opal.def(self, '$emit', $Literal_emit$25 = function $$emit(token, type, s, e) { + }, 0); + return $def(self, '$emit', function $$emit(token, type, s, e) { var self = this; return self.lexer.$send("emit", token, type, s, e) - }, $Literal_emit$25.$$arity = 4), nil) && 'emit'; - })($$($nesting, 'Lexer'), null, $nesting) + }, 4); + })($$('Lexer'), null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/lexer/stack_state"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias; +Opal.modules["parser/lexer/stack_state"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$freeze', '$clear', '$|', '$<<', '$&', '$>>', '$==', '$[]', '$to_s']); + Opal.add_stubs('freeze,clear,|,<<,&,>>,==,[],to_s'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'StackState'); - var $nesting = [self].concat($parent_nesting), $StackState_initialize$1, $StackState_clear$2, $StackState_push$3, $StackState_pop$4, $StackState_lexpop$5, $StackState_active$ques$6, $StackState_empty$ques$7, $StackState_to_s$8; + var $proto = self.$$prototype; - self.$$prototype.stack = self.$$prototype.name = nil; + $proto.stack = $proto.name = nil; - Opal.def(self, '$initialize', $StackState_initialize$1 = function $$initialize(name) { + $def(self, '$initialize', function $$initialize(name) { var self = this; self.name = name.$freeze(); return self.$clear(); - }, $StackState_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$clear', $StackState_clear$2 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; return (self.stack = 0) - }, $StackState_clear$2.$$arity = 0); + }, 0); - Opal.def(self, '$push', $StackState_push$3 = function $$push(bit) { + $def(self, '$push', function $$push(bit) { var self = this, bit_value = nil; - bit_value = (function() {if ($truthy(bit)) { - return 1 - } else { - return 0 - }; return nil; })(); + bit_value = ($truthy(bit) ? (1) : (0)); self.stack = self.stack['$<<'](1)['$|'](bit_value); return bit; - }, $StackState_push$3.$$arity = 1); + }, 1); - Opal.def(self, '$pop', $StackState_pop$4 = function $$pop() { + $def(self, '$pop', function $$pop() { var self = this, bit_value = nil; bit_value = self.stack['$&'](1); self.stack = self.stack['$>>'](1); return bit_value['$=='](1); - }, $StackState_pop$4.$$arity = 0); + }, 0); - Opal.def(self, '$lexpop', $StackState_lexpop$5 = function $$lexpop() { + $def(self, '$lexpop', function $$lexpop() { var self = this; self.stack = self.stack['$>>'](1)['$|'](self.stack['$&'](1)); return self.stack['$[]'](0)['$=='](1); - }, $StackState_lexpop$5.$$arity = 0); + }, 0); - Opal.def(self, '$active?', $StackState_active$ques$6 = function() { + $def(self, '$active?', function $StackState_active$ques$1() { var self = this; return self.stack['$[]'](0)['$=='](1) - }, $StackState_active$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $StackState_empty$ques$7 = function() { + $def(self, '$empty?', function $StackState_empty$ques$2() { var self = this; return self.stack['$=='](0) - }, $StackState_empty$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $StackState_to_s$8 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; - return "" + "[" + (self.stack.$to_s(2)) + " <= " + (self.name) + "]" - }, $StackState_to_s$8.$$arity = 0); + return "[" + (self.stack.$to_s(2)) + " <= " + (self.name) + "]" + }, 0); return $alias(self, "inspect", "to_s"); - })($$($nesting, 'Lexer'), null, $nesting) + })($$('Lexer'), null) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/lexer/dedenter"] = function(Opal) { - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $slice = Opal.slice; +Opal.modules["parser/lexer/dedenter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $eqeq = Opal.eqeq, $send = Opal.send, $truthy = Opal.truthy, $to_ary = Opal.to_ary, $slice = Opal.slice, $rb_le = Opal.rb_le, $eqeqeq = Opal.eqeqeq, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt, $rb_times = Opal.rb_times, $rb_divide = Opal.rb_divide; - Opal.add_stubs(['$encoding', '$split', '$force_encoding', '$==', '$length', '$map!', '$each', '$each_char', '$<=', '$===', '$+', '$-', '$>', '$*', '$/', '$slice!', '$replace', '$join', '$end_with?']); + Opal.add_stubs('encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Dedenter'); - var $nesting = [self].concat($parent_nesting), $Dedenter_initialize$1, $Dedenter_dedent$2, $Dedenter_interrupt$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.at_line_begin = nil; + $proto.at_line_begin = nil; - Opal.const_set($nesting[0], 'TAB_WIDTH', 8); + $const_set($nesting[0], 'TAB_WIDTH', 8); - Opal.def(self, '$initialize', $Dedenter_initialize$1 = function $$initialize(dedent_level) { + $def(self, '$initialize', function $$initialize(dedent_level) { var self = this; self.dedent_level = dedent_level; self.at_line_begin = true; return (self.indent_level = 0); - }, $Dedenter_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$dedent', $Dedenter_dedent$2 = function $$dedent(string) { - var $$3, $a, $b, $$4, self = this, original_encoding = nil, lines = nil, lines_to_dedent = nil, _first = nil; + $def(self, '$dedent', function $$dedent(string) { + var $a, $b, self = this, original_encoding = nil, lines = nil, lines_to_dedent = nil, _first = nil; original_encoding = string.$encoding(); - lines = string.$force_encoding($$$($$($nesting, 'Encoding'), 'BINARY')).$split("\\\n"); - if (lines.$length()['$=='](1)) { + lines = string.$force_encoding($$$($$('Encoding'), 'BINARY')).$split("\\\n"); + if ($eqeq(lines.$length(), 1)) { lines = [string.$force_encoding(original_encoding)] } else { - $send(lines, 'map!', [], ($$3 = function(s){var self = $$3.$$s == null ? this : $$3.$$s; - + $send(lines, 'map!', [], function $$1(s){ - if (s == null) { - s = nil; - }; - return s.$force_encoding(original_encoding);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + if (s == null) s = nil;; + return s.$force_encoding(original_encoding);}, 1) }; if ($truthy(self.at_line_begin)) { lines_to_dedent = lines } else { - $b = lines, $a = Opal.to_ary($b), (_first = ($a[0] == null ? nil : $a[0])), (lines_to_dedent = $slice.call($a, 1)), $b + $b = lines, $a = $to_ary($b), (_first = ($a[0] == null ? nil : $a[0])), (lines_to_dedent = $slice.call($a, 1)), $b }; - (function(){var $brk = Opal.new_brk(); try {return $send(lines_to_dedent, 'each', [], ($$4 = function(line){var self = $$4.$$s == null ? this : $$4.$$s, $$5, left_to_remove = nil, remove = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(lines_to_dedent, 'each', [], function $$2(line){var self = $$2.$$s == null ? this : $$2.$$s, left_to_remove = nil, remove = nil; if (self.dedent_level == null) self.dedent_level = nil; - if (line == null) { - line = nil; - }; + if (line == null) line = nil;; left_to_remove = self.dedent_level; remove = 0; - (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], ($$5 = function(char$){var self = $$5.$$s == null ? this : $$5.$$s, $case = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], function $$3(char$){var self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil; if (self.dedent_level == null) self.dedent_level = nil; - if (char$ == null) { - char$ = nil; - }; + if (char$ == null) char$ = nil;; if ($truthy($rb_le(left_to_remove, 0))) { - Opal.brk(nil, $brk)}; - return (function() {$case = char$; - if (" "['$===']($case)) { - remove = $rb_plus(remove, 1); - return (left_to_remove = $rb_minus(left_to_remove, 1));} - else if ("\t"['$===']($case)) { - if ($truthy($rb_gt($rb_times($$($nesting, 'TAB_WIDTH'), $rb_plus($rb_divide(remove, $$($nesting, 'TAB_WIDTH')), 1)), self.dedent_level))) { + Opal.brk(nil, $brk) + }; + if ($eqeqeq(" ", ($ret_or_1 = char$))) { - Opal.brk(nil, $brk)}; - remove = $rb_plus(remove, 1); - return (left_to_remove = $rb_minus(left_to_remove, $$($nesting, 'TAB_WIDTH')));} - else { - Opal.brk(nil, $brk)}})();}, $$5.$$s = self, $$5.$$brk = $brk, $$5.$$arity = 1, $$5)) + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, 1)); + } else if ($eqeqeq("\t", $ret_or_1)) { + + if ($truthy($rb_gt($rb_times($$('TAB_WIDTH'), $rb_plus($rb_divide(remove, $$('TAB_WIDTH')), 1)), self.dedent_level))) { + + Opal.brk(nil, $brk) + }; + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, $$('TAB_WIDTH'))); + } else { + + Opal.brk(nil, $brk) + };}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); - return line['$slice!'](0, remove);}, $$4.$$s = self, $$4.$$brk = $brk, $$4.$$arity = 1, $$4)) + return line['$slice!'](0, remove);}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); string.$replace(lines.$join()); return (self.at_line_begin = string['$end_with?']("\n")); - }, $Dedenter_dedent$2.$$arity = 1); - return (Opal.def(self, '$interrupt', $Dedenter_interrupt$6 = function $$interrupt() { + }, 1); + return $def(self, '$interrupt', function $$interrupt() { var self = this; return (self.at_line_begin = false) - }, $Dedenter_interrupt$6.$$arity = 0), nil) && 'interrupt'; - })($$($nesting, 'Lexer'), null, $nesting) + }, 0); + })($$('Lexer'), null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/builders/default"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $slice = Opal.slice; +Opal.modules["parser/builders/default"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $to_a = Opal.to_a, $eqeqeq = Opal.eqeqeq, $hash2 = Opal.hash2, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $not = Opal.not, $send = Opal.send, $neqeq = Opal.neqeq, $to_ary = Opal.to_ary, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $rb_ge = Opal.rb_ge, $range = Opal.range, $slice = Opal.slice, $rb_gt = Opal.rb_gt, $rb_le = Opal.rb_le, $rb_lt = Opal.rb_lt; - Opal.add_stubs(['$attr_accessor', '$n0', '$token_map', '$numeric', '$n', '$value', '$new', '$loc', '$private', '$===', '$+@', '$-@', '$updated', '$join', '$expression', '$string_value', '$delimited_string_map', '$unquoted_map', '$collapse_string_parts?', '$nil?', '$first', '$children', '$string_map', '$prefix_string_map', '$to_sym', '$collection_map', '$==', '$version', '$empty?', '$diagnostic', '$!', '$type', '$dedent', '$map', '$interrupt', '$compact', '$uniq', '$sort', '$each_char', '$to_proc', '$static_regexp', '$message', '$<<', '$regexp_map', '$unary_op_map', '$binary_op_map', '$!=', '$%', '$size', '$last', '$each_slice', '$pair_keyword_map', '$pair_quoted_map', '$symbol_compose', '$adjust', '$=~', '$pair_keyword', '$accessible', '$upto', '$-', '$length', '$+', '$[]', '$>=', '$range_map', '$variable_map', '$name', '$source_buffer', '$dup', '$line', '$emit_encoding', '$class', '$any?', '$end_with?', '$to_s', '$try_declare_numparam', '$declared?', '$static_env', '$var_send_map', '$top', '$current_arg_stack', '$parser', '$constant_map', '$in_def', '$context', '$check_assignment_to_numparam', '$check_reserved_for_numparam', '$declare', '$with_expression', '$with_operator', '$join_exprs', '$module_definition_map', '$definition_map', '$endless_definition_map', '$validate_definee', '$keyword_map', '$check_duplicate_args', '$validate_no_forward_arg_after_restarg', '$emit_forward_arg', '$forward_arg', '$arg_prefix_map', '$kwarg_map', '$emit_procarg0', '$emit_arg_inside_procarg0', '$location', '$resize', '$end', '$call_type_for_dot', '$emit_kwargs', '$rewrite_hash_args_to_kwargs', '$send_map', '$emit_lambda', '$expr_map', '$keyword', '$include?', '$block_map', '$array', '$emit_index', '$index_map', '$send_index_map', '$send_binary_op_map', '$static_regexp_node', '$each', '$names', '$send_unary_op_map', '$check_condition', '$condition_map', '$keyword_mod_map', '$ternary_map', '$for_map', '$>', '$count', '$rescue_body_map', '$eh_keyword_map', '$push', '$none?', '$one?', '$begin', '$guard_map', '$check_lvar_name', '$check_duplicate_pattern_variable', '$match_hash_var_from_str', '$match_var', '$check_duplicate_pattern_key', '$static_string', '$pair_quoted', '$match_hash_var', '$<=', '$check_duplicate_arg', '$is_a?', '$[]=', '$arg_name_collides?', '$<', '$in_dynamic_block?', '$has_numparams?', '$max_numparam_stack', '$start_with?', '$pattern_variables', '$pattern_hash_keys', '$with', '$begin_pos', '$end_pos', '$encode', '$valid_encoding?', '$process', '$diagnostics', '$send', '$kwargs?']); + Opal.add_stubs('attr_accessor,n0,token_map,numeric,n,value,new,loc,private,===,+@,-@,updated,join,expression,string_value,delimited_string_map,unquoted_map,collapse_string_parts?,nil?,first,children,string_map,prefix_string_map,to_sym,collection_map,empty?,==,version,diagnostic,!,type,dedent,map,interrupt,compact,uniq,sort,each_char,to_proc,static_regexp,message,<<,regexp_map,unary_op_map,binary_op_map,!=,%,size,last,each_slice,pair_keyword_map,pair_quoted_map,symbol_compose,adjust,=~,pair_keyword,accessible,upto,-,length,+,[],>=,range_map,variable_map,name,source_buffer,dup,line,emit_encoding,class,any?,end_with?,to_s,try_declare_numparam,declared?,static_env,var_send_map,top,current_arg_stack,parser,constant_map,in_def,context,check_assignment_to_numparam,check_reserved_for_numparam,declare,with_expression,with_operator,join_exprs,module_definition_map,definition_map,endless_definition_map,validate_definee,keyword_map,check_duplicate_args,validate_no_forward_arg_after_restarg,emit_forward_arg,forward_arg,arg_prefix_map,kwarg_map,emit_procarg0,emit_arg_inside_procarg0,location,resize,end,call_type_for_dot,emit_kwargs,rewrite_hash_args_to_kwargs,send_map,emit_lambda,expr_map,keyword,include?,block_map,array,emit_index,index_map,send_index_map,send_binary_op_map,static_regexp_node,each,names,send_unary_op_map,check_condition,condition_map,keyword_mod_map,ternary_map,for_map,>,count,rescue_body_map,eh_keyword_map,push,none?,one?,begin,guard_map,check_lvar_name,check_duplicate_pattern_variable,match_hash_var_from_str,match_var,check_duplicate_pattern_key,static_string,pair_quoted,match_hash_var,<=,check_duplicate_arg,is_a?,[]=,arg_name_collides?,<,in_dynamic_block?,has_numparams?,max_numparam_stack,start_with?,pattern_variables,pattern_hash_keys,with,begin_pos,end_pos,encode,valid_encoding?,process,diagnostics,send,kwargs?'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Default'); - var $nesting = [self].concat($parent_nesting), $Default_initialize$2, $Default_nil$3, $Default_true$4, $Default_false$5, $Default_integer$6, $Default_float$7, $Default_rational$8, $Default_complex$9, $Default_numeric$10, $Default_unary_num$11, $Default___LINE__$12, $Default_string$13, $Default_string_internal$14, $Default_string_compose$15, $Default_character$16, $Default___FILE__$17, $Default_symbol$18, $Default_symbol_internal$19, $Default_symbol_compose$20, $Default_xstring_compose$21, $Default_dedent_string$22, $Default_regexp_options$24, $Default_regexp_compose$25, $Default_array$26, $Default_splat$27, $Default_word$28, $Default_words_compose$29, $Default_symbols_compose$30, $Default_pair$32, $Default_pair_list_18$33, $Default_pair_keyword$35, $Default_pair_quoted$36, $Default_pair_label$37, $Default_kwsplat$38, $Default_associate$39, $Default_range_inclusive$42, $Default_range_exclusive$43, $Default_self$44, $Default_ident$45, $Default_ivar$46, $Default_gvar$47, $Default_cvar$48, $Default_back_ref$49, $Default_nth_ref$50, $Default_accessible$51, $Default_const$53, $Default_const_global$54, $Default_const_fetch$55, $Default___ENCODING__$56, $Default_assignable$57, $Default_const_op_assignable$58, $Default_assign$59, $Default_op_assign$60, $Default_multi_lhs$61, $Default_multi_assign$62, $Default_def_class$63, $Default_def_sclass$64, $Default_def_module$65, $Default_def_method$66, $Default_def_endless_method$67, $Default_def_singleton$68, $Default_def_endless_singleton$69, $Default_undef_method$70, $Default_alias$71, $Default_args$72, $Default_numargs$73, $Default_forward_only_args$74, $Default_forward_arg$75, $Default_arg$76, $Default_optarg$77, $Default_restarg$78, $Default_kwarg$79, $Default_kwoptarg$80, $Default_kwrestarg$81, $Default_kwnilarg$82, $Default_shadowarg$83, $Default_blockarg$84, $Default_procarg0$85, $Default_arg_expr$86, $Default_restarg_expr$87, $Default_blockarg_expr$88, $Default_objc_kwarg$89, $Default_objc_restarg$90, $Default_call_type_for_dot$91, $Default_forwarded_args$92, $Default_call_method$93, $Default_call_lambda$94, $Default_block$95, $Default_block_pass$96, $Default_objc_varargs$97, $Default_attr_asgn$98, $Default_index$99, $Default_index_asgn$100, $Default_binary_op$101, $Default_match_op$102, $Default_unary_op$104, $Default_not_op$105, $Default_logical_op$106, $Default_condition$107, $Default_condition_mod$108, $Default_ternary$109, $Default_when$110, $Default_case$111, $Default_loop$112, $Default_loop_mod$113, $Default_for$114, $Default_keyword_cmd$115, $Default_preexe$116, $Default_postexe$117, $Default_rescue_body$118, $Default_begin_body$119, $Default_compstmt$120, $Default_begin$121, $Default_begin_keyword$122, $Default_case_match$123, $Default_in_match$124, $Default_match_pattern$125, $Default_match_pattern_p$126, $Default_in_pattern$127, $Default_if_guard$128, $Default_unless_guard$129, $Default_match_var$130, $Default_match_hash_var$131, $Default_match_hash_var_from_str$132, $Default_match_rest$133, $Default_hash_pattern$134, $Default_array_pattern$135, $Default_find_pattern$137, $Default_match_with_trailing_comma$138, $Default_const_pattern$139, $Default_pin$140, $Default_match_alt$141, $Default_match_as$142, $Default_match_nil_pattern$143, $Default_match_pair$144, $Default_match_label$145, $Default_check_condition$146, $Default_check_duplicate_args$147, $Default_check_duplicate_arg$149, $Default_validate_no_forward_arg_after_restarg$150, $Default_check_assignment_to_numparam$152, $Default_check_reserved_for_numparam$153, $Default_arg_name_collides$ques$154, $Default_check_lvar_name$155, $Default_check_duplicate_pattern_variable$156, $Default_check_duplicate_pattern_key$157, $Default_n$158, $Default_n0$159, $Default_join_exprs$160, $Default_token_map$161, $Default_delimited_string_map$162, $Default_prefix_string_map$163, $Default_unquoted_map$164, $Default_pair_keyword_map$165, $Default_pair_quoted_map$166, $Default_expr_map$167, $Default_collection_map$168, $Default_string_map$169, $Default_regexp_map$170, $Default_constant_map$171, $Default_variable_map$172, $Default_binary_op_map$173, $Default_unary_op_map$174, $Default_range_map$175, $Default_arg_prefix_map$176, $Default_kwarg_map$177, $Default_module_definition_map$178, $Default_definition_map$179, $Default_endless_definition_map$180, $Default_send_map$181, $Default_var_send_map$182, $Default_send_binary_op_map$183, $Default_send_unary_op_map$184, $Default_index_map$185, $Default_send_index_map$186, $Default_block_map$187, $Default_keyword_map$188, $Default_keyword_mod_map$189, $Default_condition_map$190, $Default_ternary_map$191, $Default_for_map$192, $Default_rescue_body_map$193, $Default_eh_keyword_map$194, $Default_guard_map$195, $Default_static_string$196, $Default_static_regexp$198, $Default_static_regexp_node$199, $Default_collapse_string_parts$ques$200, $Default_value$201, $Default_string_value$202, $Default_loc$203, $Default_diagnostic$204, $Default_validate_definee$205, $Default_rewrite_hash_args_to_kwargs$206, $Default_kwargs$ques$207; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.parser = self.$$prototype.emit_file_line_as_literals = nil; + $proto.parser = $proto.emit_file_line_as_literals = nil; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_lambda") })(Opal.get_singleton_class(self), $nesting); self.emit_lambda = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_procarg0") })(Opal.get_singleton_class(self), $nesting); self.emit_procarg0 = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_encoding") })(Opal.get_singleton_class(self), $nesting); self.emit_encoding = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_index") })(Opal.get_singleton_class(self), $nesting); self.emit_index = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_arg_inside_procarg0") })(Opal.get_singleton_class(self), $nesting); self.emit_arg_inside_procarg0 = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_forward_arg") })(Opal.get_singleton_class(self), $nesting); self.emit_forward_arg = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_kwargs") })(Opal.get_singleton_class(self), $nesting); self.emit_kwargs = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("emit_match_pattern") })(Opal.get_singleton_class(self), $nesting); self.emit_match_pattern = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $modernize$1; - - return (Opal.def(self, '$modernize', $modernize$1 = function $$modernize() { + + return $def(self, '$modernize', function $$modernize() { var self = this; @@ -19822,204 +17183,203 @@ Opal.modules["parser/builders/default"] = function(Opal) { self.emit_forward_arg = true; self.emit_kwargs = true; return (self.emit_match_pattern = true); - }, $modernize$1.$$arity = 0), nil) && 'modernize' + }, 0) })(Opal.get_singleton_class(self), $nesting); self.$attr_accessor("parser"); self.$attr_accessor("emit_file_line_as_literals"); - Opal.def(self, '$initialize', $Default_initialize$2 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.emit_file_line_as_literals = true) - }, $Default_initialize$2.$$arity = 0); + }, 0); - Opal.def(self, '$nil', $Default_nil$3 = function $$nil(nil_t) { + $def(self, '$nil', function $$nil(nil_t) { var self = this; return self.$n0("nil", self.$token_map(nil_t)) - }, $Default_nil$3.$$arity = 1); + }, 1); - Opal.def(self, '$true', $Default_true$4 = function(true_t) { + $def(self, '$true', function $Default_true$1(true_t) { var self = this; return self.$n0("true", self.$token_map(true_t)) - }, $Default_true$4.$$arity = 1); + }, 1); - Opal.def(self, '$false', $Default_false$5 = function(false_t) { + $def(self, '$false', function $Default_false$2(false_t) { var self = this; return self.$n0("false", self.$token_map(false_t)) - }, $Default_false$5.$$arity = 1); + }, 1); - Opal.def(self, '$integer', $Default_integer$6 = function $$integer(integer_t) { + $def(self, '$integer', function $$integer(integer_t) { var self = this; return self.$numeric("int", integer_t) - }, $Default_integer$6.$$arity = 1); + }, 1); - Opal.def(self, '$float', $Default_float$7 = function(float_t) { + $def(self, '$float', function $Default_float$3(float_t) { var self = this; return self.$numeric("float", float_t) - }, $Default_float$7.$$arity = 1); + }, 1); - Opal.def(self, '$rational', $Default_rational$8 = function $$rational(rational_t) { + $def(self, '$rational', function $$rational(rational_t) { var self = this; return self.$numeric("rational", rational_t) - }, $Default_rational$8.$$arity = 1); + }, 1); - Opal.def(self, '$complex', $Default_complex$9 = function $$complex(complex_t) { + $def(self, '$complex', function $$complex(complex_t) { var self = this; return self.$numeric("complex", complex_t) - }, $Default_complex$9.$$arity = 1); + }, 1); - Opal.def(self, '$numeric', $Default_numeric$10 = function $$numeric(kind, token) { + $def(self, '$numeric', function $$numeric(kind, token) { var self = this; - return self.$n(kind, [self.$value(token)], $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(nil, self.$loc(token))) - }, $Default_numeric$10.$$arity = 2); + return self.$n(kind, [self.$value(token)], $$$($$$($$('Source'), 'Map'), 'Operator').$new(nil, self.$loc(token))) + }, 2); self.$private("numeric"); - Opal.def(self, '$unary_num', $Default_unary_num$11 = function $$unary_num(unary_t, numeric) { - var $a, self = this, value = nil, operator_loc = nil, $case = nil; + $def(self, '$unary_num', function $$unary_num(unary_t, numeric) { + var $a, self = this, value = nil, operator_loc = nil, $ret_or_1 = nil; - $a = [].concat(Opal.to_a(numeric)), (value = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(numeric)), (value = ($a[0] == null ? nil : $a[0])), $a; operator_loc = self.$loc(unary_t); - $case = self.$value(unary_t); - if ("+"['$===']($case)) {value = value['$+@']()} - else if ("-"['$===']($case)) {value = value['$-@']()}; - return numeric.$updated(nil, [value], $hash2(["location"], {"location": $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(operator_loc, operator_loc.$join(numeric.$loc().$expression()))})); - }, $Default_unary_num$11.$$arity = 2); + if ($eqeqeq("+", ($ret_or_1 = self.$value(unary_t)))) { + value = value['$+@']() + } else if ($eqeqeq("-", $ret_or_1)) { + value = value['$-@']() + } else { + nil + }; + return numeric.$updated(nil, [value], $hash2(["location"], {"location": $$$($$$($$('Source'), 'Map'), 'Operator').$new(operator_loc, operator_loc.$join(numeric.$loc().$expression()))})); + }, 2); - Opal.def(self, '$__LINE__', $Default___LINE__$12 = function $$__LINE__(__LINE__t) { + $def(self, '$__LINE__', function $$__LINE__(__LINE__t) { var self = this; return self.$n0("__LINE__", self.$token_map(__LINE__t)) - }, $Default___LINE__$12.$$arity = 1); + }, 1); - Opal.def(self, '$string', $Default_string$13 = function $$string(string_t) { + $def(self, '$string', function $$string(string_t) { var self = this; return self.$n("str", [self.$string_value(string_t)], self.$delimited_string_map(string_t)) - }, $Default_string$13.$$arity = 1); + }, 1); - Opal.def(self, '$string_internal', $Default_string_internal$14 = function $$string_internal(string_t) { + $def(self, '$string_internal', function $$string_internal(string_t) { var self = this; return self.$n("str", [self.$string_value(string_t)], self.$unquoted_map(string_t)) - }, $Default_string_internal$14.$$arity = 1); + }, 1); - Opal.def(self, '$string_compose', $Default_string_compose$15 = function $$string_compose(begin_t, parts, end_t) { - var self = this, $ret_or_1 = nil; + $def(self, '$string_compose', function $$string_compose(begin_t, parts, end_t) { + var self = this; if ($truthy(self['$collapse_string_parts?'](parts))) { - if ($truthy((function() {if ($truthy(($ret_or_1 = begin_t['$nil?']()))) { - return end_t['$nil?']() - } else { - return $ret_or_1 - }; return nil; })())) { + if (($truthy(begin_t['$nil?']()) && ($truthy(end_t['$nil?']())))) { return parts.$first() } else { return self.$n("str", parts.$first().$children(), self.$string_map(begin_t, parts, end_t)) } } else { - return self.$n("dstr", [].concat(Opal.to_a(parts)), self.$string_map(begin_t, parts, end_t)) + return self.$n("dstr", [].concat($to_a(parts)), self.$string_map(begin_t, parts, end_t)) } - }, $Default_string_compose$15.$$arity = 3); + }, 3); - Opal.def(self, '$character', $Default_character$16 = function $$character(char_t) { + $def(self, '$character', function $$character(char_t) { var self = this; return self.$n("str", [self.$string_value(char_t)], self.$prefix_string_map(char_t)) - }, $Default_character$16.$$arity = 1); + }, 1); - Opal.def(self, '$__FILE__', $Default___FILE__$17 = function $$__FILE__(__FILE__t) { + $def(self, '$__FILE__', function $$__FILE__(__FILE__t) { var self = this; return self.$n0("__FILE__", self.$token_map(__FILE__t)) - }, $Default___FILE__$17.$$arity = 1); + }, 1); - Opal.def(self, '$symbol', $Default_symbol$18 = function $$symbol(symbol_t) { + $def(self, '$symbol', function $$symbol(symbol_t) { var self = this; return self.$n("sym", [self.$string_value(symbol_t).$to_sym()], self.$prefix_string_map(symbol_t)) - }, $Default_symbol$18.$$arity = 1); + }, 1); - Opal.def(self, '$symbol_internal', $Default_symbol_internal$19 = function $$symbol_internal(symbol_t) { + $def(self, '$symbol_internal', function $$symbol_internal(symbol_t) { var self = this; return self.$n("sym", [self.$string_value(symbol_t).$to_sym()], self.$unquoted_map(symbol_t)) - }, $Default_symbol_internal$19.$$arity = 1); + }, 1); - Opal.def(self, '$symbol_compose', $Default_symbol_compose$20 = function $$symbol_compose(begin_t, parts, end_t) { - var self = this, str = nil, $ret_or_2 = nil; + $def(self, '$symbol_compose', function $$symbol_compose(begin_t, parts, end_t) { + var self = this, str = nil; if ($truthy(self['$collapse_string_parts?'](parts))) { str = parts.$first(); return self.$n("sym", [str.$children().$first().$to_sym()], self.$collection_map(begin_t, str.$loc().$expression(), end_t)); - } else if ($truthy((function() {if ($truthy(($ret_or_2 = self.parser.$version()['$=='](18)))) { - return parts['$empty?']() - } else { - return $ret_or_2 - }; return nil; })())) { + } else if (($eqeq(self.parser.$version(), 18) && ($truthy(parts['$empty?']())))) { return self.$diagnostic("error", "empty_symbol", nil, self.$loc(begin_t).$join(self.$loc(end_t))) } else { - return self.$n("dsym", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)) + return self.$n("dsym", [].concat($to_a(parts)), self.$collection_map(begin_t, parts, end_t)) } - }, $Default_symbol_compose$20.$$arity = 3); + }, 3); - Opal.def(self, '$xstring_compose', $Default_xstring_compose$21 = function $$xstring_compose(begin_t, parts, end_t) { + $def(self, '$xstring_compose', function $$xstring_compose(begin_t, parts, end_t) { var self = this; - return self.$n("xstr", [].concat(Opal.to_a(parts)), self.$string_map(begin_t, parts, end_t)) - }, $Default_xstring_compose$21.$$arity = 3); + return self.$n("xstr", [].concat($to_a(parts)), self.$string_map(begin_t, parts, end_t)) + }, 3); - Opal.def(self, '$dedent_string', $Default_dedent_string$22 = function $$dedent_string(node, dedent_level) { - var $$23, self = this, dedenter = nil, $case = nil, str = nil, children = nil; + $def(self, '$dedent_string', function $$dedent_string(node, dedent_level) { + var dedenter = nil, $ret_or_1 = nil, str = nil, children = nil; - if ($truthy(dedent_level['$nil?']()['$!']())) { + if ($not(dedent_level['$nil?']())) { - dedenter = $$$($$($nesting, 'Lexer'), 'Dedenter').$new(dedent_level); - $case = node.$type(); - if ("str"['$===']($case)) { - str = node.$children().$first(); - dedenter.$dedent(str);} - else if ("dstr"['$===']($case) || "xstr"['$===']($case)) { - children = $send(node.$children(), 'map', [], ($$23 = function(str_node){var self = $$23.$$s == null ? this : $$23.$$s; - + dedenter = $$$($$('Lexer'), 'Dedenter').$new(dedent_level); + if ($eqeqeq("str", ($ret_or_1 = node.$type()))) { + str = node.$children().$first(); + dedenter.$dedent(str); + } else if (($eqeqeq("dstr", $ret_or_1) || ($eqeqeq("xstr", $ret_or_1)))) { - if (str_node == null) { - str_node = nil; - }; - if (str_node.$type()['$==']("str")) { + children = $send(node.$children(), 'map', [], function $$4(str_node){ - str = str_node.$children().$first(); - dedenter.$dedent(str); - if ($truthy(str['$empty?']())) { - return nil;}; - } else { - dedenter.$interrupt() - }; - return str_node;}, $$23.$$s = self, $$23.$$arity = 1, $$23)); - node = node.$updated(nil, children.$compact());};}; + + if (str_node == null) str_node = nil;; + if ($eqeq(str_node.$type(), "str")) { + + str = str_node.$children().$first(); + dedenter.$dedent(str); + if ($truthy(str['$empty?']())) { + return nil; + }; + } else { + dedenter.$interrupt() + }; + return str_node;}, 1); + node = node.$updated(nil, children.$compact()); + } else { + nil + }; + }; return node; - }, $Default_dedent_string$22.$$arity = 2); + }, 2); - Opal.def(self, '$regexp_options', $Default_regexp_options$24 = function $$regexp_options(regopt_t) { + $def(self, '$regexp_options', function $$regexp_options(regopt_t) { var self = this, options = nil; options = $send(self.$value(regopt_t).$each_char().$sort().$uniq(), 'map', [], "to_sym".$to_proc()); return self.$n("regopt", options, self.$token_map(regopt_t)); - }, $Default_regexp_options$24.$$arity = 1); + }, 1); - Opal.def(self, '$regexp_compose', $Default_regexp_compose$25 = function $$regexp_compose(begin_t, parts, end_t, options) { + $def(self, '$regexp_compose', function $$regexp_compose(begin_t, parts, end_t, options) { var self = this, e = nil; @@ -20027,473 +17387,469 @@ Opal.modules["parser/builders/default"] = function(Opal) { try { self.$static_regexp(parts, options) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'RegexpError')])) {(e = $err) + if (Opal.rescue($err, [$$('RegexpError')])) {(e = $err) try { self.$diagnostic("error", "invalid_regexp", $hash2(["message"], {"message": e.$message()}), self.$loc(begin_t).$join(self.$loc(end_t))) } finally { Opal.pop_exception(); } } else { throw $err; } };; return self.$n("regexp", parts['$<<'](options), self.$regexp_map(begin_t, end_t, options)); - }, $Default_regexp_compose$25.$$arity = 4); + }, 4); - Opal.def(self, '$array', $Default_array$26 = function $$array(begin_t, elements, end_t) { + $def(self, '$array', function $$array(begin_t, elements, end_t) { var self = this; return self.$n("array", elements, self.$collection_map(begin_t, elements, end_t)) - }, $Default_array$26.$$arity = 3); + }, 3); - Opal.def(self, '$splat', $Default_splat$27 = function $$splat(star_t, arg) { + $def(self, '$splat', function $$splat(star_t, arg) { var self = this; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; if ($truthy(arg['$nil?']())) { return self.$n0("splat", self.$unary_op_map(star_t)) } else { return self.$n("splat", [arg], self.$unary_op_map(star_t, arg)) }; - }, $Default_splat$27.$$arity = -2); + }, -2); - Opal.def(self, '$word', $Default_word$28 = function $$word(parts) { + $def(self, '$word', function $$word(parts) { var self = this; if ($truthy(self['$collapse_string_parts?'](parts))) { return parts.$first() } else { - return self.$n("dstr", [].concat(Opal.to_a(parts)), self.$collection_map(nil, parts, nil)) + return self.$n("dstr", [].concat($to_a(parts)), self.$collection_map(nil, parts, nil)) } - }, $Default_word$28.$$arity = 1); + }, 1); - Opal.def(self, '$words_compose', $Default_words_compose$29 = function $$words_compose(begin_t, parts, end_t) { + $def(self, '$words_compose', function $$words_compose(begin_t, parts, end_t) { var self = this; - return self.$n("array", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)) - }, $Default_words_compose$29.$$arity = 3); + return self.$n("array", [].concat($to_a(parts)), self.$collection_map(begin_t, parts, end_t)) + }, 3); - Opal.def(self, '$symbols_compose', $Default_symbols_compose$30 = function $$symbols_compose(begin_t, parts, end_t) { - var $$31, self = this; + $def(self, '$symbols_compose', function $$symbols_compose(begin_t, parts, end_t) { + var self = this; - parts = $send(parts, 'map', [], ($$31 = function(part){var self = $$31.$$s == null ? this : $$31.$$s, $a, $case = nil, value = nil; + parts = $send(parts, 'map', [], function $$5(part){var $a, $ret_or_1 = nil, value = nil; - if (part == null) { - part = nil; - }; - return (function() {$case = part.$type(); - if ("str"['$===']($case)) { - $a = [].concat(Opal.to_a(part)), (value = ($a[0] == null ? nil : $a[0])), $a; - return part.$updated("sym", [value.$to_sym()]);} - else if ("dstr"['$===']($case)) {return part.$updated("dsym")} - else {return part}})();}, $$31.$$s = self, $$31.$$arity = 1, $$31)); - return self.$n("array", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)); - }, $Default_symbols_compose$30.$$arity = 3); + if (part == null) part = nil;; + if ($eqeqeq("str", ($ret_or_1 = part.$type()))) { + + $a = [].concat($to_a(part)), (value = ($a[0] == null ? nil : $a[0])), $a; + return part.$updated("sym", [value.$to_sym()]); + } else if ($eqeqeq("dstr", $ret_or_1)) { + return part.$updated("dsym") + } else { + return part + };}, 1); + return self.$n("array", [].concat($to_a(parts)), self.$collection_map(begin_t, parts, end_t)); + }, 3); - Opal.def(self, '$pair', $Default_pair$32 = function $$pair(key, assoc_t, value) { + $def(self, '$pair', function $$pair(key, assoc_t, value) { var self = this; return self.$n("pair", [key, value], self.$binary_op_map(key, assoc_t, value)) - }, $Default_pair$32.$$arity = 3); + }, 3); - Opal.def(self, '$pair_list_18', $Default_pair_list_18$33 = function $$pair_list_18(list) { - var $$34, self = this; + $def(self, '$pair_list_18', function $$pair_list_18(list) { + var self = this; - if ($truthy(list.$size()['$%'](2)['$!='](0))) { + if ($neqeq(list.$size()['$%'](2), 0)) { return self.$diagnostic("error", "odd_hash", nil, list.$last().$loc().$expression()) } else { - return $send(list.$each_slice(2), 'map', [], ($$34 = function(key, value){var self = $$34.$$s == null ? this : $$34.$$s; + return $send(list.$each_slice(2), 'map', [], function $$6(key, value){var self = $$6.$$s == null ? this : $$6.$$s; - if (key == null) { - key = nil; - }; + if (key == null) key = nil;; - if (value == null) { - value = nil; - }; - return self.$n("pair", [key, value], self.$binary_op_map(key, nil, value));}, $$34.$$s = self, $$34.$$arity = 2, $$34)) + if (value == null) value = nil;; + return self.$n("pair", [key, value], self.$binary_op_map(key, nil, value));}, {$$arity: 2, $$s: self}) } - }, $Default_pair_list_18$33.$$arity = 1); + }, 1); - Opal.def(self, '$pair_keyword', $Default_pair_keyword$35 = function $$pair_keyword(key_t, value) { + $def(self, '$pair_keyword', function $$pair_keyword(key_t, value) { var $a, $b, self = this, key_map = nil, pair_map = nil, key = nil; - $b = self.$pair_keyword_map(key_t, value), $a = Opal.to_ary($b), (key_map = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$pair_keyword_map(key_t, value), $a = $to_ary($b), (key_map = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; key = self.$n("sym", [self.$value(key_t).$to_sym()], key_map); return self.$n("pair", [key, value], pair_map); - }, $Default_pair_keyword$35.$$arity = 2); + }, 2); - Opal.def(self, '$pair_quoted', $Default_pair_quoted$36 = function $$pair_quoted(begin_t, parts, end_t, value) { + $def(self, '$pair_quoted', function $$pair_quoted(begin_t, parts, end_t, value) { var $a, $b, self = this, pair_map = nil, key = nil; - $b = self.$pair_quoted_map(begin_t, end_t, value), $a = Opal.to_ary($b), (end_t = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$pair_quoted_map(begin_t, end_t, value), $a = $to_ary($b), (end_t = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; key = self.$symbol_compose(begin_t, parts, end_t); return self.$n("pair", [key, value], pair_map); - }, $Default_pair_quoted$36.$$arity = 4); + }, 4); - Opal.def(self, '$pair_label', $Default_pair_label$37 = function $$pair_label(key_t) { + $def(self, '$pair_label', function $$pair_label(key_t) { var self = this, key_l = nil, value_l = nil, label = nil, value = nil; key_l = self.$loc(key_t); value_l = key_l.$adjust($hash2(["end_pos"], {"end_pos": -1})); label = self.$value(key_t); - value = (function() {if ($truthy(label['$=~'](/^[[:lower:]]/))) { - return self.$n("ident", [label.$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(value_l)) - } else { - return self.$n("const", [nil, label.$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'Constant').$new(nil, value_l, value_l)) - }; return nil; })(); + value = ($truthy(label['$=~'](/^[[:lower:]]/)) ? (self.$n("ident", [label.$to_sym()], $$$($$$($$('Source'), 'Map'), 'Variable').$new(value_l))) : (self.$n("const", [nil, label.$to_sym()], $$$($$$($$('Source'), 'Map'), 'Constant').$new(nil, value_l, value_l)))); return self.$pair_keyword(key_t, self.$accessible(value)); - }, $Default_pair_label$37.$$arity = 1); + }, 1); - Opal.def(self, '$kwsplat', $Default_kwsplat$38 = function $$kwsplat(dstar_t, arg) { + $def(self, '$kwsplat', function $$kwsplat(dstar_t, arg) { var self = this; return self.$n("kwsplat", [arg], self.$unary_op_map(dstar_t, arg)) - }, $Default_kwsplat$38.$$arity = 2); + }, 2); - Opal.def(self, '$associate', $Default_associate$39 = function $$associate(begin_t, pairs, end_t) { - var $$40, self = this; + $def(self, '$associate', function $$associate(begin_t, pairs, end_t) { + var self = this; - $send((0), 'upto', [$rb_minus(pairs.$length(), 1)], ($$40 = function(i){var self = $$40.$$s == null ? this : $$40.$$s, $$41; + $send((0), 'upto', [$rb_minus(pairs.$length(), 1)], function $$7(i){var self = $$7.$$s == null ? this : $$7.$$s; - if (i == null) { - i = nil; - }; - return $send($rb_plus(i, 1), 'upto', [$rb_minus(pairs.$length(), 1)], ($$41 = function(j){var self = $$41.$$s == null ? this : $$41.$$s, $a, key1 = nil, key2 = nil, do_warn = nil, $case = nil, $ret_or_3 = nil; + if (i == null) i = nil;; + return $send($rb_plus(i, 1), 'upto', [$rb_minus(pairs.$length(), 1)], function $$8(j){var $a, self = $$8.$$s == null ? this : $$8.$$s, key1 = nil, key2 = nil, do_warn = nil, $ret_or_1 = nil; if (self.parser == null) self.parser = nil; - if (j == null) { - j = nil; - }; - $a = [].concat(Opal.to_a(pairs['$[]'](i))), (key1 = ($a[0] == null ? nil : $a[0])), $a; - $a = [].concat(Opal.to_a(pairs['$[]'](j))), (key2 = ($a[0] == null ? nil : $a[0])), $a; + if (j == null) j = nil;; + $a = [].concat($to_a(pairs['$[]'](i))), (key1 = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(pairs['$[]'](j))), (key2 = ($a[0] == null ? nil : $a[0])), $a; do_warn = false; - $case = key1.$type(); - if ("sym"['$===']($case) || "str"['$===']($case) || "int"['$===']($case) || "float"['$===']($case)) {if (key1['$=='](key2)) { - do_warn = true}} - else if ("rational"['$===']($case) || "complex"['$===']($case) || "regexp"['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_3 = $rb_ge(self.parser.$version(), 31)))) { - return key1['$=='](key2) + if (($eqeqeq("sym", ($ret_or_1 = key1.$type())) || (($eqeqeq("str", $ret_or_1) || (($eqeqeq("int", $ret_or_1) || ($eqeqeq("float", $ret_or_1)))))))) { + if ($eqeq(key1, key2)) { + do_warn = true + } + } else if (($eqeqeq("rational", $ret_or_1) || (($eqeqeq("complex", $ret_or_1) || ($eqeqeq("regexp", $ret_or_1)))))) { + if (($truthy($rb_ge(self.parser.$version(), 31)) && ($eqeq(key1, key2)))) { + do_warn = true + } } else { - return $ret_or_3 - }; return nil; })())) { - do_warn = true}}; + nil + }; if ($truthy(do_warn)) { return self.$diagnostic("warning", "duplicate_hash_key", nil, key2.$loc().$expression()) } else { return nil - };}, $$41.$$s = self, $$41.$$arity = 1, $$41));}, $$40.$$s = self, $$40.$$arity = 1, $$40)); - return self.$n("hash", [].concat(Opal.to_a(pairs)), self.$collection_map(begin_t, pairs, end_t)); - }, $Default_associate$39.$$arity = 3); + };}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self}); + return self.$n("hash", [].concat($to_a(pairs)), self.$collection_map(begin_t, pairs, end_t)); + }, 3); - Opal.def(self, '$range_inclusive', $Default_range_inclusive$42 = function $$range_inclusive(lhs, dot2_t, rhs) { + $def(self, '$range_inclusive', function $$range_inclusive(lhs, dot2_t, rhs) { var self = this; return self.$n("irange", [lhs, rhs], self.$range_map(lhs, dot2_t, rhs)) - }, $Default_range_inclusive$42.$$arity = 3); + }, 3); - Opal.def(self, '$range_exclusive', $Default_range_exclusive$43 = function $$range_exclusive(lhs, dot3_t, rhs) { + $def(self, '$range_exclusive', function $$range_exclusive(lhs, dot3_t, rhs) { var self = this; return self.$n("erange", [lhs, rhs], self.$range_map(lhs, dot3_t, rhs)) - }, $Default_range_exclusive$43.$$arity = 3); + }, 3); - Opal.def(self, '$self', $Default_self$44 = function $$self(token) { + $def(self, '$self', function $$self(token) { var self = this; return self.$n0("self", self.$token_map(token)) - }, $Default_self$44.$$arity = 1); + }, 1); - Opal.def(self, '$ident', $Default_ident$45 = function $$ident(token) { + $def(self, '$ident', function $$ident(token) { var self = this; return self.$n("ident", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, $Default_ident$45.$$arity = 1); + }, 1); - Opal.def(self, '$ivar', $Default_ivar$46 = function $$ivar(token) { + $def(self, '$ivar', function $$ivar(token) { var self = this; return self.$n("ivar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, $Default_ivar$46.$$arity = 1); + }, 1); - Opal.def(self, '$gvar', $Default_gvar$47 = function $$gvar(token) { + $def(self, '$gvar', function $$gvar(token) { var self = this; return self.$n("gvar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, $Default_gvar$47.$$arity = 1); + }, 1); - Opal.def(self, '$cvar', $Default_cvar$48 = function $$cvar(token) { + $def(self, '$cvar', function $$cvar(token) { var self = this; return self.$n("cvar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, $Default_cvar$48.$$arity = 1); + }, 1); - Opal.def(self, '$back_ref', $Default_back_ref$49 = function $$back_ref(token) { + $def(self, '$back_ref', function $$back_ref(token) { var self = this; return self.$n("back_ref", [self.$value(token).$to_sym()], self.$token_map(token)) - }, $Default_back_ref$49.$$arity = 1); + }, 1); - Opal.def(self, '$nth_ref', $Default_nth_ref$50 = function $$nth_ref(token) { + $def(self, '$nth_ref', function $$nth_ref(token) { var self = this; return self.$n("nth_ref", [self.$value(token)], self.$token_map(token)) - }, $Default_nth_ref$50.$$arity = 1); + }, 1); - Opal.def(self, '$accessible', $Default_accessible$51 = function $$accessible(node) { - var $a, $$52, self = this, $case = nil, name = nil, $ret_or_4 = nil; - - return (function() {$case = node.$type(); - if ("__FILE__"['$===']($case)) {if ($truthy(self.emit_file_line_as_literals)) { - return self.$n("str", [node.$loc().$expression().$source_buffer().$name()], node.$loc().$dup()) - } else { - return node - }} - else if ("__LINE__"['$===']($case)) {if ($truthy(self.emit_file_line_as_literals)) { - return self.$n("int", [node.$loc().$expression().$line()], node.$loc().$dup()) - } else { - return node - }} - else if ("__ENCODING__"['$===']($case)) {if ($truthy(self.$class().$emit_encoding()['$!']())) { - return self.$n("const", [self.$n("const", [nil, "Encoding"], nil), "UTF_8"], node.$loc().$dup()) - } else { - return node - }} - else if ("ident"['$===']($case)) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - if ($truthy($send(["?", "!"], 'any?', [], ($$52 = function(c){var self = $$52.$$s == null ? this : $$52.$$s; + $def(self, '$accessible', function $$accessible(node) { + var $a, self = this, $ret_or_1 = nil, name = nil; + if ($eqeqeq("__FILE__", ($ret_or_1 = node.$type()))) { + if ($truthy(self.emit_file_line_as_literals)) { + return self.$n("str", [node.$loc().$expression().$source_buffer().$name()], node.$loc().$dup()) + } else { + return node + } + } else if ($eqeqeq("__LINE__", $ret_or_1)) { + if ($truthy(self.emit_file_line_as_literals)) { + return self.$n("int", [node.$loc().$expression().$line()], node.$loc().$dup()) + } else { + return node + } + } else if ($eqeqeq("__ENCODING__", $ret_or_1)) { + if ($not(self.$class().$emit_encoding())) { + return self.$n("const", [self.$n("const", [nil, "Encoding"], nil), "UTF_8"], node.$loc().$dup()) + } else { + return node + } + } else if ($eqeqeq("ident", $ret_or_1)) { - - if (c == null) { - c = nil; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + if ($truthy($send(["?", "!"], 'any?', [], function $$9(c){ + + + if (c == null) c = nil;; + return name.$to_s()['$end_with?'](c);}, 1))) { + self.$diagnostic("error", "invalid_id_to_get", $hash2(["identifier"], {"identifier": name.$to_s()}), node.$loc().$expression()) }; - return name.$to_s()['$end_with?'](c);}, $$52.$$s = self, $$52.$$arity = 1, $$52)))) { - self.$diagnostic("error", "invalid_id_to_get", $hash2(["identifier"], {"identifier": name.$to_s()}), node.$loc().$expression())}; - if ($truthy((function() {if ($truthy(($ret_or_4 = $rb_ge(self.parser.$version(), 27)))) { - return self.parser.$try_declare_numparam(node) - } else { - return $ret_or_4 - }; return nil; })())) { - return node.$updated("lvar")}; - if ($truthy(self.parser.$static_env()['$declared?'](name))) { + if (($truthy($rb_ge(self.parser.$version(), 27)) && ($truthy(self.parser.$try_declare_numparam(node))))) { + return node.$updated("lvar") + }; + if (!$truthy(self.parser.$static_env()['$declared?'](name))) { + return self.$n("send", [nil, name], self.$var_send_map(node)) + }; + if ($eqeq(name.$to_s(), self.$parser().$current_arg_stack().$top())) { + self.$diagnostic("error", "circular_argument_reference", $hash2(["var_name"], {"var_name": name.$to_s()}), node.$loc().$expression()) + }; + return node.$updated("lvar"); } else { - return self.$n("send", [nil, name], self.$var_send_map(node)) - }; - if (name.$to_s()['$=='](self.$parser().$current_arg_stack().$top())) { - self.$diagnostic("error", "circular_argument_reference", $hash2(["var_name"], {"var_name": name.$to_s()}), node.$loc().$expression())}; - return node.$updated("lvar");} - else {return node}})() - }, $Default_accessible$51.$$arity = 1); + return node + } + }, 1); - Opal.def(self, '$const', $Default_const$53 = function(name_t) { + $def(self, '$const', function $Default_const$10(name_t) { var self = this; return self.$n("const", [nil, self.$value(name_t).$to_sym()], self.$constant_map(nil, nil, name_t)) - }, $Default_const$53.$$arity = 1); + }, 1); - Opal.def(self, '$const_global', $Default_const_global$54 = function $$const_global(t_colon3, name_t) { + $def(self, '$const_global', function $$const_global(t_colon3, name_t) { var self = this, cbase = nil; cbase = self.$n0("cbase", self.$token_map(t_colon3)); return self.$n("const", [cbase, self.$value(name_t).$to_sym()], self.$constant_map(cbase, t_colon3, name_t)); - }, $Default_const_global$54.$$arity = 2); + }, 2); - Opal.def(self, '$const_fetch', $Default_const_fetch$55 = function $$const_fetch(scope, t_colon2, name_t) { + $def(self, '$const_fetch', function $$const_fetch(scope, t_colon2, name_t) { var self = this; return self.$n("const", [scope, self.$value(name_t).$to_sym()], self.$constant_map(scope, t_colon2, name_t)) - }, $Default_const_fetch$55.$$arity = 3); + }, 3); - Opal.def(self, '$__ENCODING__', $Default___ENCODING__$56 = function $$__ENCODING__(__ENCODING__t) { + $def(self, '$__ENCODING__', function $$__ENCODING__(__ENCODING__t) { var self = this; return self.$n0("__ENCODING__", self.$token_map(__ENCODING__t)) - }, $Default___ENCODING__$56.$$arity = 1); - - Opal.def(self, '$assignable', $Default_assignable$57 = function $$assignable(node) { - var $a, self = this, $case = nil, name = nil, var_name = nil, name_loc = nil; - - return (function() {$case = node.$type(); - if ("cvar"['$===']($case)) {return node.$updated("cvasgn")} - else if ("ivar"['$===']($case)) {return node.$updated("ivasgn")} - else if ("gvar"['$===']($case)) {return node.$updated("gvasgn")} - else if ("const"['$===']($case)) { - if ($truthy(self.parser.$context().$in_def())) { - self.$diagnostic("error", "dynamic_const", nil, node.$loc().$expression())}; - return node.$updated("casgn");} - else if ("ident"['$===']($case)) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - var_name = node.$children()['$[]'](0).$to_s(); - name_loc = node.$loc().$expression(); - self.$check_assignment_to_numparam(var_name, name_loc); - self.$check_reserved_for_numparam(var_name, name_loc); - self.parser.$static_env().$declare(name); - return node.$updated("lvasgn");} - else if ("match_var"['$===']($case)) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - var_name = node.$children()['$[]'](0).$to_s(); - name_loc = node.$loc().$expression(); - self.$check_assignment_to_numparam(var_name, name_loc); - self.$check_reserved_for_numparam(var_name, name_loc); - return node;} - else if ("nil"['$===']($case) || "self"['$===']($case) || "true"['$===']($case) || "false"['$===']($case) || "__FILE__"['$===']($case) || "__LINE__"['$===']($case) || "__ENCODING__"['$===']($case)) {return self.$diagnostic("error", "invalid_assignment", nil, node.$loc().$expression())} - else if ("back_ref"['$===']($case) || "nth_ref"['$===']($case)) {return self.$diagnostic("error", "backref_assignment", nil, node.$loc().$expression())} - else { return nil }})() - }, $Default_assignable$57.$$arity = 1); - - Opal.def(self, '$const_op_assignable', $Default_const_op_assignable$58 = function $$const_op_assignable(node) { - var self = this; + }, 1); + + $def(self, '$assignable', function $$assignable(node) { + var $a, self = this, $ret_or_1 = nil, name = nil, var_name = nil, name_loc = nil; + if ($eqeqeq("cvar", ($ret_or_1 = node.$type()))) { + return node.$updated("cvasgn") + } else if ($eqeqeq("ivar", $ret_or_1)) { + return node.$updated("ivasgn") + } else if ($eqeqeq("gvar", $ret_or_1)) { + return node.$updated("gvasgn") + } else if ($eqeqeq("const", $ret_or_1)) { + + if ($truthy(self.parser.$context().$in_def())) { + self.$diagnostic("error", "dynamic_const", nil, node.$loc().$expression()) + }; + return node.$updated("casgn"); + } else if ($eqeqeq("ident", $ret_or_1)) { + + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + var_name = node.$children()['$[]'](0).$to_s(); + name_loc = node.$loc().$expression(); + self.$check_assignment_to_numparam(var_name, name_loc); + self.$check_reserved_for_numparam(var_name, name_loc); + self.parser.$static_env().$declare(name); + return node.$updated("lvasgn"); + } else if ($eqeqeq("match_var", $ret_or_1)) { + + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + var_name = node.$children()['$[]'](0).$to_s(); + name_loc = node.$loc().$expression(); + self.$check_assignment_to_numparam(var_name, name_loc); + self.$check_reserved_for_numparam(var_name, name_loc); + return node; + } else if (($eqeqeq("nil", $ret_or_1) || (($eqeqeq("self", $ret_or_1) || (($eqeqeq("true", $ret_or_1) || (($eqeqeq("false", $ret_or_1) || (($eqeqeq("__FILE__", $ret_or_1) || (($eqeqeq("__LINE__", $ret_or_1) || ($eqeqeq("__ENCODING__", $ret_or_1)))))))))))))) { + return self.$diagnostic("error", "invalid_assignment", nil, node.$loc().$expression()) + } else if (($eqeqeq("back_ref", $ret_or_1) || ($eqeqeq("nth_ref", $ret_or_1)))) { + return self.$diagnostic("error", "backref_assignment", nil, node.$loc().$expression()) + } else { + return nil + } + }, 1); + + $def(self, '$const_op_assignable', function $$const_op_assignable(node) { + return node.$updated("casgn") - }, $Default_const_op_assignable$58.$$arity = 1); + }, 1); - Opal.def(self, '$assign', $Default_assign$59 = function $$assign(lhs, eql_t, rhs) { + $def(self, '$assign', function $$assign(lhs, eql_t, rhs) { var self = this; return lhs['$<<'](rhs).$updated(nil, nil, $hash2(["location"], {"location": lhs.$loc().$with_operator(self.$loc(eql_t)).$with_expression(self.$join_exprs(lhs, rhs))})) - }, $Default_assign$59.$$arity = 3); + }, 3); - Opal.def(self, '$op_assign', $Default_op_assign$60 = function $$op_assign(lhs, op_t, rhs) { - var self = this, $case = nil, operator = nil, source_map = nil; + $def(self, '$op_assign', function $$op_assign(lhs, op_t, rhs) { + var self = this, $ret_or_1 = nil, operator = nil, source_map = nil, $ret_or_2 = nil; - return (function() {$case = lhs.$type(); - if ("gvasgn"['$===']($case) || "ivasgn"['$===']($case) || "lvasgn"['$===']($case) || "cvasgn"['$===']($case) || "casgn"['$===']($case) || "send"['$===']($case) || "csend"['$===']($case) || "index"['$===']($case)) { - operator = self.$value(op_t)['$[]']($range(0, -1, false)).$to_sym(); - source_map = lhs.$loc().$with_operator(self.$loc(op_t)).$with_expression(self.$join_exprs(lhs, rhs)); - if (lhs.$type()['$==']("index")) { - lhs = lhs.$updated("indexasgn")}; - return (function() {$case = operator; - if ("&&"['$===']($case)) {return self.$n("and_asgn", [lhs, rhs], source_map)} - else if ("||"['$===']($case)) {return self.$n("or_asgn", [lhs, rhs], source_map)} - else {return self.$n("op_asgn", [lhs, operator, rhs], source_map)}})();} - else if ("back_ref"['$===']($case) || "nth_ref"['$===']($case)) {return self.$diagnostic("error", "backref_assignment", nil, lhs.$loc().$expression())} - else { return nil }})() - }, $Default_op_assign$60.$$arity = 3); + if (($eqeqeq("gvasgn", ($ret_or_1 = lhs.$type())) || (($eqeqeq("ivasgn", $ret_or_1) || (($eqeqeq("lvasgn", $ret_or_1) || (($eqeqeq("cvasgn", $ret_or_1) || (($eqeqeq("casgn", $ret_or_1) || (($eqeqeq("send", $ret_or_1) || (($eqeqeq("csend", $ret_or_1) || ($eqeqeq("index", $ret_or_1)))))))))))))))) { + + operator = self.$value(op_t)['$[]']($range(0, -1, false)).$to_sym(); + source_map = lhs.$loc().$with_operator(self.$loc(op_t)).$with_expression(self.$join_exprs(lhs, rhs)); + if ($eqeq(lhs.$type(), "index")) { + lhs = lhs.$updated("indexasgn") + }; + if ($eqeqeq("&&", ($ret_or_2 = operator))) { + return self.$n("and_asgn", [lhs, rhs], source_map) + } else if ($eqeqeq("||", $ret_or_2)) { + return self.$n("or_asgn", [lhs, rhs], source_map) + } else { + return self.$n("op_asgn", [lhs, operator, rhs], source_map) + }; + } else if (($eqeqeq("back_ref", $ret_or_1) || ($eqeqeq("nth_ref", $ret_or_1)))) { + return self.$diagnostic("error", "backref_assignment", nil, lhs.$loc().$expression()) + } else { + return nil + } + }, 3); - Opal.def(self, '$multi_lhs', $Default_multi_lhs$61 = function $$multi_lhs(begin_t, items, end_t) { + $def(self, '$multi_lhs', function $$multi_lhs(begin_t, items, end_t) { var self = this; - return self.$n("mlhs", [].concat(Opal.to_a(items)), self.$collection_map(begin_t, items, end_t)) - }, $Default_multi_lhs$61.$$arity = 3); + return self.$n("mlhs", [].concat($to_a(items)), self.$collection_map(begin_t, items, end_t)) + }, 3); - Opal.def(self, '$multi_assign', $Default_multi_assign$62 = function $$multi_assign(lhs, eql_t, rhs) { + $def(self, '$multi_assign', function $$multi_assign(lhs, eql_t, rhs) { var self = this; return self.$n("masgn", [lhs, rhs], self.$binary_op_map(lhs, eql_t, rhs)) - }, $Default_multi_assign$62.$$arity = 3); + }, 3); - Opal.def(self, '$def_class', $Default_def_class$63 = function $$def_class(class_t, name, lt_t, superclass, body, end_t) { + $def(self, '$def_class', function $$def_class(class_t, name, lt_t, superclass, body, end_t) { var self = this; return self.$n("class", [name, superclass, body], self.$module_definition_map(class_t, name, lt_t, end_t)) - }, $Default_def_class$63.$$arity = 6); + }, 6); - Opal.def(self, '$def_sclass', $Default_def_sclass$64 = function $$def_sclass(class_t, lshft_t, expr, body, end_t) { + $def(self, '$def_sclass', function $$def_sclass(class_t, lshft_t, expr, body, end_t) { var self = this; return self.$n("sclass", [expr, body], self.$module_definition_map(class_t, nil, lshft_t, end_t)) - }, $Default_def_sclass$64.$$arity = 5); + }, 5); - Opal.def(self, '$def_module', $Default_def_module$65 = function $$def_module(module_t, name, body, end_t) { + $def(self, '$def_module', function $$def_module(module_t, name, body, end_t) { var self = this; return self.$n("module", [name, body], self.$module_definition_map(module_t, name, nil, end_t)) - }, $Default_def_module$65.$$arity = 4); + }, 4); - Opal.def(self, '$def_method', $Default_def_method$66 = function $$def_method(def_t, name_t, args, body, end_t) { + $def(self, '$def_method', function $$def_method(def_t, name_t, args, body, end_t) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("def", [self.$value(name_t).$to_sym(), args, body], self.$definition_map(def_t, nil, name_t, end_t)); - }, $Default_def_method$66.$$arity = 5); + }, 5); - Opal.def(self, '$def_endless_method', $Default_def_endless_method$67 = function $$def_endless_method(def_t, name_t, args, assignment_t, body) { + $def(self, '$def_endless_method', function $$def_endless_method(def_t, name_t, args, assignment_t, body) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("def", [self.$value(name_t).$to_sym(), args, body], self.$endless_definition_map(def_t, nil, name_t, assignment_t, body)); - }, $Default_def_endless_method$67.$$arity = 5); + }, 5); - Opal.def(self, '$def_singleton', $Default_def_singleton$68 = function $$def_singleton(def_t, definee, dot_t, name_t, args, body, end_t) { + $def(self, '$def_singleton', function $$def_singleton(def_t, definee, dot_t, name_t, args, body, end_t) { var self = this; self.$validate_definee(definee); self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("defs", [definee, self.$value(name_t).$to_sym(), args, body], self.$definition_map(def_t, dot_t, name_t, end_t)); - }, $Default_def_singleton$68.$$arity = 7); + }, 7); - Opal.def(self, '$def_endless_singleton', $Default_def_endless_singleton$69 = function $$def_endless_singleton(def_t, definee, dot_t, name_t, args, assignment_t, body) { + $def(self, '$def_endless_singleton', function $$def_endless_singleton(def_t, definee, dot_t, name_t, args, assignment_t, body) { var self = this; self.$validate_definee(definee); self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("defs", [definee, self.$value(name_t).$to_sym(), args, body], self.$endless_definition_map(def_t, dot_t, name_t, assignment_t, body)); - }, $Default_def_endless_singleton$69.$$arity = 7); + }, 7); - Opal.def(self, '$undef_method', $Default_undef_method$70 = function $$undef_method(undef_t, names) { + $def(self, '$undef_method', function $$undef_method(undef_t, names) { var self = this; - return self.$n("undef", [].concat(Opal.to_a(names)), self.$keyword_map(undef_t, nil, names, nil)) - }, $Default_undef_method$70.$$arity = 2); + return self.$n("undef", [].concat($to_a(names)), self.$keyword_map(undef_t, nil, names, nil)) + }, 2); - Opal.def(self, '$alias', $Default_alias$71 = function $$alias(alias_t, to, from) { + $def(self, '$alias', function $$alias(alias_t, to, from) { var self = this; return self.$n("alias", [to, from], self.$keyword_map(alias_t, nil, [to, from], nil)) - }, $Default_alias$71.$$arity = 3); + }, 3); - Opal.def(self, '$args', $Default_args$72 = function $$args(begin_t, args, end_t, check_args) { - var self = this, map = nil, $ret_or_5 = nil, $ret_or_6 = nil; + $def(self, '$args', function $$args(begin_t, args, end_t, check_args) { + var self = this, map = nil; - if (check_args == null) { - check_args = true; - }; + if (check_args == null) check_args = true;; if ($truthy(check_args)) { - args = self.$check_duplicate_args(args)}; + args = self.$check_duplicate_args(args) + }; self.$validate_no_forward_arg_after_restarg(args); map = self.$collection_map(begin_t, args, end_t); - if ($truthy((function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.$class().$emit_forward_arg()['$!']()))) { - return args.$length()['$=='](1) - } else { - return $ret_or_6 - }; return nil; })()))) { - return args['$[]'](0).$type()['$==']("forward_arg") - } else { - return $ret_or_5 - }; return nil; })())) { + if ((($not(self.$class().$emit_forward_arg()) && ($eqeq(args.$length(), 1))) && ($eqeq(args['$[]'](0).$type(), "forward_arg")))) { return self.$n("forward_args", [], map) } else { return self.$n("args", args, map) }; - }, $Default_args$72.$$arity = -4); + }, -4); - Opal.def(self, '$numargs', $Default_numargs$73 = function $$numargs(max_numparam) { + $def(self, '$numargs', function $$numargs(max_numparam) { var self = this; return self.$n("numargs", [max_numparam], nil) - }, $Default_numargs$73.$$arity = 1); + }, 1); - Opal.def(self, '$forward_only_args', $Default_forward_only_args$74 = function $$forward_only_args(begin_t, dots_t, end_t) { + $def(self, '$forward_only_args', function $$forward_only_args(begin_t, dots_t, end_t) { var self = this, arg = nil; if ($truthy(self.$class().$emit_forward_arg())) { @@ -20503,38 +17859,36 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n("forward_args", [], self.$collection_map(begin_t, self.$token_map(dots_t), end_t)) } - }, $Default_forward_only_args$74.$$arity = 3); + }, 3); - Opal.def(self, '$forward_arg', $Default_forward_arg$75 = function $$forward_arg(dots_t) { + $def(self, '$forward_arg', function $$forward_arg(dots_t) { var self = this; return self.$n("forward_arg", [], self.$token_map(dots_t)) - }, $Default_forward_arg$75.$$arity = 1); + }, 1); - Opal.def(self, '$arg', $Default_arg$76 = function $$arg(name_t) { + $def(self, '$arg', function $$arg(name_t) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("arg", [self.$value(name_t).$to_sym()], self.$variable_map(name_t)); - }, $Default_arg$76.$$arity = 1); + }, 1); - Opal.def(self, '$optarg', $Default_optarg$77 = function $$optarg(name_t, eql_t, value) { + $def(self, '$optarg', function $$optarg(name_t, eql_t, value) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("optarg", [self.$value(name_t).$to_sym(), value], self.$variable_map(name_t).$with_operator(self.$loc(eql_t)).$with_expression(self.$loc(name_t).$join(value.$loc().$expression()))); - }, $Default_optarg$77.$$arity = 3); + }, 3); - Opal.def(self, '$restarg', $Default_restarg$78 = function $$restarg(star_t, name_t) { + $def(self, '$restarg', function $$restarg(star_t, name_t) { var self = this; - if (name_t == null) { - name_t = nil; - }; + if (name_t == null) name_t = nil;; if ($truthy(name_t)) { self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); @@ -20542,32 +17896,30 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n0("restarg", self.$arg_prefix_map(star_t)) }; - }, $Default_restarg$78.$$arity = -2); + }, -2); - Opal.def(self, '$kwarg', $Default_kwarg$79 = function $$kwarg(name_t) { + $def(self, '$kwarg', function $$kwarg(name_t) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("kwarg", [self.$value(name_t).$to_sym()], self.$kwarg_map(name_t)); - }, $Default_kwarg$79.$$arity = 1); + }, 1); - Opal.def(self, '$kwoptarg', $Default_kwoptarg$80 = function $$kwoptarg(name_t, value) { + $def(self, '$kwoptarg', function $$kwoptarg(name_t, value) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("kwoptarg", [self.$value(name_t).$to_sym(), value], self.$kwarg_map(name_t, value)); - }, $Default_kwoptarg$80.$$arity = 2); + }, 2); - Opal.def(self, '$kwrestarg', $Default_kwrestarg$81 = function $$kwrestarg(dstar_t, name_t) { + $def(self, '$kwrestarg', function $$kwrestarg(dstar_t, name_t) { var self = this; - if (name_t == null) { - name_t = nil; - }; + if (name_t == null) name_t = nil;; if ($truthy(name_t)) { self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); @@ -20575,92 +17927,83 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n0("kwrestarg", self.$arg_prefix_map(dstar_t)) }; - }, $Default_kwrestarg$81.$$arity = -2); + }, -2); - Opal.def(self, '$kwnilarg', $Default_kwnilarg$82 = function $$kwnilarg(dstar_t, nil_t) { + $def(self, '$kwnilarg', function $$kwnilarg(dstar_t, nil_t) { var self = this; return self.$n0("kwnilarg", self.$arg_prefix_map(dstar_t, nil_t)) - }, $Default_kwnilarg$82.$$arity = 2); + }, 2); - Opal.def(self, '$shadowarg', $Default_shadowarg$83 = function $$shadowarg(name_t) { + $def(self, '$shadowarg', function $$shadowarg(name_t) { var self = this; self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); return self.$n("shadowarg", [self.$value(name_t).$to_sym()], self.$variable_map(name_t)); - }, $Default_shadowarg$83.$$arity = 1); + }, 1); - Opal.def(self, '$blockarg', $Default_blockarg$84 = function $$blockarg(amper_t, name_t) { + $def(self, '$blockarg', function $$blockarg(amper_t, name_t) { var self = this, arg_name = nil; - if ($truthy(name_t['$nil?']()['$!']())) { - self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t))}; - arg_name = (function() {if ($truthy(name_t)) { - return self.$value(name_t).$to_sym() - } else { - return nil - }; return nil; })(); + if ($not(name_t['$nil?']())) { + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)) + }; + arg_name = ($truthy(name_t) ? (self.$value(name_t).$to_sym()) : (nil)); return self.$n("blockarg", [arg_name], self.$arg_prefix_map(amper_t, name_t)); - }, $Default_blockarg$84.$$arity = 2); + }, 2); - Opal.def(self, '$procarg0', $Default_procarg0$85 = function $$procarg0(arg) { - var self = this, $ret_or_7 = nil; + $def(self, '$procarg0', function $$procarg0(arg) { + var self = this; if ($truthy(self.$class().$emit_procarg0())) { - if ($truthy((function() {if ($truthy(($ret_or_7 = arg.$type()['$==']("arg")))) { - return self.$class().$emit_arg_inside_procarg0() - } else { - return $ret_or_7 - }; return nil; })())) { - return self.$n("procarg0", [arg], $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, arg.$location().$expression())) + if (($eqeq(arg.$type(), "arg") && ($truthy(self.$class().$emit_arg_inside_procarg0())))) { + return self.$n("procarg0", [arg], $$$($$$($$('Source'), 'Map'), 'Collection').$new(nil, nil, arg.$location().$expression())) } else { return arg.$updated("procarg0") } } else { return arg } - }, $Default_procarg0$85.$$arity = 1); + }, 1); - Opal.def(self, '$arg_expr', $Default_arg_expr$86 = function $$arg_expr(expr) { + $def(self, '$arg_expr', function $$arg_expr(expr) { var self = this; - if (expr.$type()['$==']("lvasgn")) { + if ($eqeq(expr.$type(), "lvasgn")) { return expr.$updated("arg") } else { return self.$n("arg_expr", [expr], expr.$loc().$dup()) } - }, $Default_arg_expr$86.$$arity = 1); + }, 1); - Opal.def(self, '$restarg_expr', $Default_restarg_expr$87 = function $$restarg_expr(star_t, expr) { + $def(self, '$restarg_expr', function $$restarg_expr(star_t, expr) { var self = this; - if (expr == null) { - expr = nil; - }; + if (expr == null) expr = nil;; if ($truthy(expr['$nil?']())) { return self.$n0("restarg", self.$token_map(star_t)) - } else if (expr.$type()['$==']("lvasgn")) { + } else if ($eqeq(expr.$type(), "lvasgn")) { return expr.$updated("restarg") } else { return self.$n("restarg_expr", [expr], expr.$loc().$dup()) }; - }, $Default_restarg_expr$87.$$arity = -2); + }, -2); - Opal.def(self, '$blockarg_expr', $Default_blockarg_expr$88 = function $$blockarg_expr(amper_t, expr) { + $def(self, '$blockarg_expr', function $$blockarg_expr(amper_t, expr) { var self = this; - if (expr.$type()['$==']("lvasgn")) { + if ($eqeq(expr.$type(), "lvasgn")) { return expr.$updated("blockarg") } else { return self.$n("blockarg_expr", [expr], expr.$loc().$dup()) } - }, $Default_blockarg_expr$88.$$arity = 2); + }, 2); - Opal.def(self, '$objc_kwarg', $Default_objc_kwarg$89 = function $$objc_kwarg(kwname_t, assoc_t, name_t) { + $def(self, '$objc_kwarg', function $$objc_kwarg(kwname_t, assoc_t, name_t) { var self = this, kwname_l = nil, operator_l = nil; @@ -20672,73 +18015,62 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { operator_l = self.$loc(assoc_t) }; - return self.$n("objc_kwarg", [self.$value(kwname_t).$to_sym(), self.$value(name_t).$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'ObjcKwarg').$new(kwname_l, operator_l, self.$loc(name_t), kwname_l.$join(self.$loc(name_t)))); - }, $Default_objc_kwarg$89.$$arity = 3); + return self.$n("objc_kwarg", [self.$value(kwname_t).$to_sym(), self.$value(name_t).$to_sym()], $$$($$$($$('Source'), 'Map'), 'ObjcKwarg').$new(kwname_l, operator_l, self.$loc(name_t), kwname_l.$join(self.$loc(name_t)))); + }, 3); - Opal.def(self, '$objc_restarg', $Default_objc_restarg$90 = function $$objc_restarg(star_t, name) { + $def(self, '$objc_restarg', function $$objc_restarg(star_t, name) { var self = this; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; if ($truthy(name['$nil?']())) { return self.$n0("restarg", self.$arg_prefix_map(star_t)) - } else if (name.$type()['$==']("arg")) { + } else if ($eqeq(name.$type(), "arg")) { return name.$updated("restarg", nil, $hash2(["location"], {"location": name.$loc().$with_operator(self.$loc(star_t))})) } else { return self.$n("objc_restarg", [name], self.$unary_op_map(star_t, name)) }; - }, $Default_objc_restarg$90.$$arity = -2); + }, -2); - Opal.def(self, '$call_type_for_dot', $Default_call_type_for_dot$91 = function $$call_type_for_dot(dot_t) { - var self = this, $ret_or_8 = nil; + $def(self, '$call_type_for_dot', function $$call_type_for_dot(dot_t) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_8 = dot_t['$nil?']()['$!']()))) { - return self.$value(dot_t)['$==']("anddot") - } else { - return $ret_or_8 - }; return nil; })())) { + if (($not(dot_t['$nil?']()) && ($eqeq(self.$value(dot_t), "anddot")))) { return "csend" } else { return "send" } - }, $Default_call_type_for_dot$91.$$arity = 1); + }, 1); - Opal.def(self, '$forwarded_args', $Default_forwarded_args$92 = function $$forwarded_args(dots_t) { + $def(self, '$forwarded_args', function $$forwarded_args(dots_t) { var self = this; return self.$n("forwarded_args", [], self.$token_map(dots_t)) - }, $Default_forwarded_args$92.$$arity = 1); + }, 1); - Opal.def(self, '$call_method', $Default_call_method$93 = function $$call_method(receiver, dot_t, selector_t, lparen_t, args, rparen_t) { + $def(self, '$call_method', function $$call_method(receiver, dot_t, selector_t, lparen_t, args, rparen_t) { var self = this, type = nil; - if (lparen_t == null) { - lparen_t = nil; - }; + if (lparen_t == null) lparen_t = nil;; - if (args == null) { - args = []; - }; + if (args == null) args = [];; - if (rparen_t == null) { - rparen_t = nil; - }; + if (rparen_t == null) rparen_t = nil;; type = self.$call_type_for_dot(dot_t); if ($truthy(self.$class().$emit_kwargs())) { - self.$rewrite_hash_args_to_kwargs(args)}; + self.$rewrite_hash_args_to_kwargs(args) + }; if ($truthy(selector_t['$nil?']())) { - return self.$n(type, [receiver, "call"].concat(Opal.to_a(args)), self.$send_map(receiver, dot_t, nil, lparen_t, args, rparen_t)) + return self.$n(type, [receiver, "call"].concat($to_a(args)), self.$send_map(receiver, dot_t, nil, lparen_t, args, rparen_t)) } else { - return self.$n(type, [receiver, self.$value(selector_t).$to_sym()].concat(Opal.to_a(args)), self.$send_map(receiver, dot_t, selector_t, lparen_t, args, rparen_t)) + return self.$n(type, [receiver, self.$value(selector_t).$to_sym()].concat($to_a(args)), self.$send_map(receiver, dot_t, selector_t, lparen_t, args, rparen_t)) }; - }, $Default_call_method$93.$$arity = -4); + }, -4); - Opal.def(self, '$call_lambda', $Default_call_lambda$94 = function $$call_lambda(lambda_t) { + $def(self, '$call_lambda', function $$call_lambda(lambda_t) { var self = this; if ($truthy(self.$class().$emit_lambda())) { @@ -20746,28 +18078,21 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n("send", [nil, "lambda"], self.$send_map(nil, nil, lambda_t)) } - }, $Default_call_lambda$94.$$arity = 1); + }, 1); - Opal.def(self, '$block', $Default_block$95 = function $$block(method_call, begin_t, args, body, end_t) { - var $a, self = this, _receiver = nil, _selector = nil, call_args = nil, last_arg = nil, $ret_or_9 = nil, $ret_or_10 = nil, block_type = nil, actual_send = nil, block = nil; + $def(self, '$block', function $$block(method_call, begin_t, args, body, end_t) { + var $a, self = this, _receiver = nil, _selector = nil, call_args = nil, last_arg = nil, block_type = nil, actual_send = nil, block = nil; - $a = [].concat(Opal.to_a(method_call)), (_receiver = ($a[0] == null ? nil : $a[0])), (_selector = ($a[1] == null ? nil : $a[1])), (call_args = $slice.call($a, 2)), $a; - if (method_call.$type()['$==']("yield")) { - self.$diagnostic("error", "block_given_to_yield", nil, method_call.$loc().$keyword(), [self.$loc(begin_t)])}; + $a = [].concat($to_a(method_call)), (_receiver = ($a[0] == null ? nil : $a[0])), (_selector = ($a[1] == null ? nil : $a[1])), (call_args = $slice.call($a, 2)), $a; + if ($eqeq(method_call.$type(), "yield")) { + self.$diagnostic("error", "block_given_to_yield", nil, method_call.$loc().$keyword(), [self.$loc(begin_t)]) + }; last_arg = call_args.$last(); - if ($truthy((function() {if ($truthy(($ret_or_9 = last_arg))) { - - if ($truthy(($ret_or_10 = last_arg.$type()['$==']("block_pass")))) { - return $ret_or_10 - } else { - return last_arg.$type()['$==']("forwarded_args") - }; - } else { - return $ret_or_9 - }; return nil; })())) { - self.$diagnostic("error", "block_and_blockarg", nil, last_arg.$loc().$expression(), [self.$loc(begin_t)])}; - if (args.$type()['$==']("numargs")) { + if (($truthy(last_arg) && (($eqeq(last_arg.$type(), "block_pass") || ($eqeq(last_arg.$type(), "forwarded_args")))))) { + self.$diagnostic("error", "block_and_blockarg", nil, last_arg.$loc().$expression(), [self.$loc(begin_t)]) + }; + if ($eqeq(args.$type(), "numargs")) { block_type = "numblock"; args = args.$children()['$[]'](0); @@ -20778,125 +18103,123 @@ Opal.modules["parser/builders/default"] = function(Opal) { return self.$n(block_type, [method_call, args, body], self.$block_map(method_call.$loc().$expression(), begin_t, end_t)) } else { - $a = [].concat(Opal.to_a(method_call)), (actual_send = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(method_call)), (actual_send = ($a[0] == null ? nil : $a[0])), $a; block = self.$n(block_type, [actual_send, args, body], self.$block_map(actual_send.$loc().$expression(), begin_t, end_t)); return self.$n(method_call.$type(), [block], method_call.$loc().$with_expression(self.$join_exprs(method_call, block))); }; - }, $Default_block$95.$$arity = 5); + }, 5); - Opal.def(self, '$block_pass', $Default_block_pass$96 = function $$block_pass(amper_t, arg) { + $def(self, '$block_pass', function $$block_pass(amper_t, arg) { var self = this; return self.$n("block_pass", [arg], self.$unary_op_map(amper_t, arg)) - }, $Default_block_pass$96.$$arity = 2); + }, 2); - Opal.def(self, '$objc_varargs', $Default_objc_varargs$97 = function $$objc_varargs(pair, rest_of_varargs) { + $def(self, '$objc_varargs', function $$objc_varargs(pair, rest_of_varargs) { var $a, self = this, value = nil, first_vararg = nil, vararg_array = nil; - $a = [].concat(Opal.to_a(pair)), (value = ($a[0] == null ? nil : $a[0])), (first_vararg = ($a[1] == null ? nil : $a[1])), $a; - vararg_array = self.$array(nil, [first_vararg].concat(Opal.to_a(rest_of_varargs)), nil).$updated("objc_varargs"); + $a = [].concat($to_a(pair)), (value = ($a[0] == null ? nil : $a[0])), (first_vararg = ($a[1] == null ? nil : $a[1])), $a; + vararg_array = self.$array(nil, [first_vararg].concat($to_a(rest_of_varargs)), nil).$updated("objc_varargs"); return pair.$updated(nil, [value, vararg_array], $hash2(["location"], {"location": pair.$loc().$with_expression(pair.$loc().$expression().$join(vararg_array.$loc().$expression()))})); - }, $Default_objc_varargs$97.$$arity = 2); + }, 2); - Opal.def(self, '$attr_asgn', $Default_attr_asgn$98 = function $$attr_asgn(receiver, dot_t, selector_t) { + $def(self, '$attr_asgn', function $$attr_asgn(receiver, dot_t, selector_t) { var self = this, method_name = nil, type = nil; method_name = $rb_plus(self.$value(selector_t), "=").$to_sym(); type = self.$call_type_for_dot(dot_t); return self.$n(type, [receiver, method_name], self.$send_map(receiver, dot_t, selector_t)); - }, $Default_attr_asgn$98.$$arity = 3); + }, 3); - Opal.def(self, '$index', $Default_index$99 = function $$index(receiver, lbrack_t, indexes, rbrack_t) { + $def(self, '$index', function $$index(receiver, lbrack_t, indexes, rbrack_t) { var self = this; if ($truthy(self.$class().$emit_kwargs())) { - self.$rewrite_hash_args_to_kwargs(indexes)}; + self.$rewrite_hash_args_to_kwargs(indexes) + }; if ($truthy(self.$class().$emit_index())) { - return self.$n("index", [receiver].concat(Opal.to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) + return self.$n("index", [receiver].concat($to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) } else { - return self.$n("send", [receiver, "[]"].concat(Opal.to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) + return self.$n("send", [receiver, "[]"].concat($to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) }; - }, $Default_index$99.$$arity = 4); + }, 4); - Opal.def(self, '$index_asgn', $Default_index_asgn$100 = function $$index_asgn(receiver, lbrack_t, indexes, rbrack_t) { + $def(self, '$index_asgn', function $$index_asgn(receiver, lbrack_t, indexes, rbrack_t) { var self = this; if ($truthy(self.$class().$emit_index())) { - return self.$n("indexasgn", [receiver].concat(Opal.to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) + return self.$n("indexasgn", [receiver].concat($to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) } else { - return self.$n("send", [receiver, "[]="].concat(Opal.to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) + return self.$n("send", [receiver, "[]="].concat($to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) } - }, $Default_index_asgn$100.$$arity = 4); + }, 4); - Opal.def(self, '$binary_op', $Default_binary_op$101 = function $$binary_op(receiver, operator_t, arg) { + $def(self, '$binary_op', function $$binary_op(receiver, operator_t, arg) { var self = this, source_map = nil, operator = nil, method_call = nil; source_map = self.$send_binary_op_map(receiver, operator_t, arg); - if (self.parser.$version()['$=='](18)) { + if ($eqeq(self.parser.$version(), 18)) { operator = self.$value(operator_t); - if (operator['$==']("!=")) { + if ($eqeq(operator, "!=")) { method_call = self.$n("send", [receiver, "==", arg], source_map) - } else if (operator['$==']("!~")) { - method_call = self.$n("send", [receiver, "=~", arg], source_map)}; + } else if ($eqeq(operator, "!~")) { + method_call = self.$n("send", [receiver, "=~", arg], source_map) + }; if ($truthy(["!=", "!~"]['$include?'](operator))) { - return self.$n("not", [method_call], self.$expr_map(source_map.$expression()))};}; + return self.$n("not", [method_call], self.$expr_map(source_map.$expression())) + }; + }; return self.$n("send", [receiver, self.$value(operator_t).$to_sym(), arg], source_map); - }, $Default_binary_op$101.$$arity = 3); + }, 3); - Opal.def(self, '$match_op', $Default_match_op$102 = function $$match_op(receiver, match_t, arg) { - var $$103, self = this, source_map = nil, regexp = nil; + $def(self, '$match_op', function $$match_op(receiver, match_t, arg) { + var self = this, source_map = nil, regexp = nil; source_map = self.$send_binary_op_map(receiver, match_t, arg); if ($truthy((regexp = self.$static_regexp_node(receiver)))) { - $send(regexp.$names(), 'each', [], ($$103 = function(name){var self = $$103.$$s == null ? this : $$103.$$s; + $send(regexp.$names(), 'each', [], function $$11(name){var self = $$11.$$s == null ? this : $$11.$$s; if (self.parser == null) self.parser = nil; - if (name == null) { - name = nil; - }; - return self.parser.$static_env().$declare(name);}, $$103.$$s = self, $$103.$$arity = 1, $$103)); + if (name == null) name = nil;; + return self.parser.$static_env().$declare(name);}, {$$arity: 1, $$s: self}); return self.$n("match_with_lvasgn", [receiver, arg], source_map); } else { return self.$n("send", [receiver, "=~", arg], source_map) }; - }, $Default_match_op$102.$$arity = 3); + }, 3); - Opal.def(self, '$unary_op', $Default_unary_op$104 = function $$unary_op(op_t, receiver) { - var self = this, $case = nil, method = nil; + $def(self, '$unary_op', function $$unary_op(op_t, receiver) { + var self = this, $ret_or_1 = nil, method = nil; - $case = self.$value(op_t); - if ("+"['$===']($case) || "-"['$===']($case)) {method = $rb_plus(self.$value(op_t), "@")} - else {method = self.$value(op_t)}; + if (($eqeqeq("+", ($ret_or_1 = self.$value(op_t))) || ($eqeqeq("-", $ret_or_1)))) { + method = $rb_plus(self.$value(op_t), "@") + } else { + method = self.$value(op_t) + }; return self.$n("send", [receiver, method.$to_sym()], self.$send_unary_op_map(op_t, receiver)); - }, $Default_unary_op$104.$$arity = 2); + }, 2); - Opal.def(self, '$not_op', $Default_not_op$105 = function $$not_op(not_t, begin_t, receiver, end_t) { + $def(self, '$not_op', function $$not_op(not_t, begin_t, receiver, end_t) { var self = this, nil_node = nil; - if (begin_t == null) { - begin_t = nil; - }; + if (begin_t == null) begin_t = nil;; - if (receiver == null) { - receiver = nil; - }; + if (receiver == null) receiver = nil;; - if (end_t == null) { - end_t = nil; - }; - if (self.parser.$version()['$=='](18)) { + if (end_t == null) end_t = nil;; + if ($eqeq(self.parser.$version(), 18)) { return self.$n("not", [self.$check_condition(receiver)], self.$unary_op_map(not_t, receiver)) } else if ($truthy(receiver['$nil?']())) { @@ -20905,275 +18228,233 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$n("send", [self.$check_condition(receiver), "!"], self.$send_map(nil, nil, not_t, begin_t, [receiver], end_t)) }; - }, $Default_not_op$105.$$arity = -2); + }, -2); - Opal.def(self, '$logical_op', $Default_logical_op$106 = function $$logical_op(type, lhs, op_t, rhs) { + $def(self, '$logical_op', function $$logical_op(type, lhs, op_t, rhs) { var self = this; return self.$n(type, [lhs, rhs], self.$binary_op_map(lhs, op_t, rhs)) - }, $Default_logical_op$106.$$arity = 4); + }, 4); - Opal.def(self, '$condition', $Default_condition$107 = function $$condition(cond_t, cond, then_t, if_true, else_t, if_false, end_t) { + $def(self, '$condition', function $$condition(cond_t, cond, then_t, if_true, else_t, if_false, end_t) { var self = this; return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$condition_map(cond_t, cond, then_t, if_true, else_t, if_false, end_t)) - }, $Default_condition$107.$$arity = 7); + }, 7); - Opal.def(self, '$condition_mod', $Default_condition_mod$108 = function $$condition_mod(if_true, if_false, cond_t, cond) { - var self = this, $ret_or_11 = nil; + $def(self, '$condition_mod', function $$condition_mod(if_true, if_false, cond_t, cond) { + var self = this, $ret_or_1 = nil; - return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$keyword_mod_map((function() {if ($truthy(($ret_or_11 = if_true))) { - return $ret_or_11 - } else { - return if_false - }; return nil; })(), cond_t, cond)) - }, $Default_condition_mod$108.$$arity = 4); + return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$keyword_mod_map(($truthy(($ret_or_1 = if_true)) ? ($ret_or_1) : (if_false)), cond_t, cond)) + }, 4); - Opal.def(self, '$ternary', $Default_ternary$109 = function $$ternary(cond, question_t, if_true, colon_t, if_false) { + $def(self, '$ternary', function $$ternary(cond, question_t, if_true, colon_t, if_false) { var self = this; return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$ternary_map(cond, question_t, if_true, colon_t, if_false)) - }, $Default_ternary$109.$$arity = 5); + }, 5); - Opal.def(self, '$when', $Default_when$110 = function $$when(when_t, patterns, then_t, body) { + $def(self, '$when', function $$when(when_t, patterns, then_t, body) { var self = this, children = nil; children = patterns['$<<'](body); return self.$n("when", children, self.$keyword_map(when_t, then_t, children, nil)); - }, $Default_when$110.$$arity = 4); + }, 4); - Opal.def(self, '$case', $Default_case$111 = function(case_t, expr, when_bodies, else_t, else_body, end_t) { + $def(self, '$case', function $Default_case$12(case_t, expr, when_bodies, else_t, else_body, end_t) { var self = this; - return self.$n("case", [expr].concat(Opal.to_a(when_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)) - }, $Default_case$111.$$arity = 6); + return self.$n("case", [expr].concat($to_a(when_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)) + }, 6); - Opal.def(self, '$loop', $Default_loop$112 = function $$loop(type, keyword_t, cond, do_t, body, end_t) { + $def(self, '$loop', function $$loop(type, keyword_t, cond, do_t, body, end_t) { var self = this; return self.$n(type, [self.$check_condition(cond), body], self.$keyword_map(keyword_t, do_t, nil, end_t)) - }, $Default_loop$112.$$arity = 6); + }, 6); - Opal.def(self, '$loop_mod', $Default_loop_mod$113 = function $$loop_mod(type, body, keyword_t, cond) { + $def(self, '$loop_mod', function $$loop_mod(type, body, keyword_t, cond) { var self = this; - if (body.$type()['$==']("kwbegin")) { - type = "" + (type) + "_post"}; + if ($eqeq(body.$type(), "kwbegin")) { + type = "" + (type) + "_post" + }; return self.$n(type, [self.$check_condition(cond), body], self.$keyword_mod_map(body, keyword_t, cond)); - }, $Default_loop_mod$113.$$arity = 4); + }, 4); - Opal.def(self, '$for', $Default_for$114 = function(for_t, iterator, in_t, iteratee, do_t, body, end_t) { + $def(self, '$for', function $Default_for$13(for_t, iterator, in_t, iteratee, do_t, body, end_t) { var self = this; return self.$n("for", [iterator, iteratee, body], self.$for_map(for_t, in_t, do_t, end_t)) - }, $Default_for$114.$$arity = 7); + }, 7); - Opal.def(self, '$keyword_cmd', $Default_keyword_cmd$115 = function $$keyword_cmd(type, keyword_t, lparen_t, args, rparen_t) { - var self = this, $ret_or_12 = nil, last_arg = nil, $ret_or_13 = nil; + $def(self, '$keyword_cmd', function $$keyword_cmd(type, keyword_t, lparen_t, args, rparen_t) { + var self = this, last_arg = nil; - if (lparen_t == null) { - lparen_t = nil; - }; + if (lparen_t == null) lparen_t = nil;; - if (args == null) { - args = []; - }; + if (args == null) args = [];; - if (rparen_t == null) { - rparen_t = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_12 = type['$==']("yield")))) { - return $rb_gt(args.$count(), 0) - } else { - return $ret_or_12 - }; return nil; })())) { + if (rparen_t == null) rparen_t = nil;; + if (($eqeq(type, "yield") && ($truthy($rb_gt(args.$count(), 0))))) { last_arg = args.$last(); - if (last_arg.$type()['$==']("block_pass")) { - self.$diagnostic("error", "block_given_to_yield", nil, self.$loc(keyword_t), [last_arg.$loc().$expression()])};}; - if ($truthy((function() {if ($truthy(($ret_or_13 = ["yield", "super"]['$include?'](type)))) { - return self.$class().$emit_kwargs() - } else { - return $ret_or_13 - }; return nil; })())) { - self.$rewrite_hash_args_to_kwargs(args)}; + if ($eqeq(last_arg.$type(), "block_pass")) { + self.$diagnostic("error", "block_given_to_yield", nil, self.$loc(keyword_t), [last_arg.$loc().$expression()]) + }; + }; + if (($truthy(["yield", "super"]['$include?'](type)) && ($truthy(self.$class().$emit_kwargs())))) { + self.$rewrite_hash_args_to_kwargs(args) + }; return self.$n(type, args, self.$keyword_map(keyword_t, lparen_t, args, rparen_t)); - }, $Default_keyword_cmd$115.$$arity = -3); + }, -3); - Opal.def(self, '$preexe', $Default_preexe$116 = function $$preexe(preexe_t, lbrace_t, compstmt, rbrace_t) { + $def(self, '$preexe', function $$preexe(preexe_t, lbrace_t, compstmt, rbrace_t) { var self = this; return self.$n("preexe", [compstmt], self.$keyword_map(preexe_t, lbrace_t, [], rbrace_t)) - }, $Default_preexe$116.$$arity = 4); + }, 4); - Opal.def(self, '$postexe', $Default_postexe$117 = function $$postexe(postexe_t, lbrace_t, compstmt, rbrace_t) { + $def(self, '$postexe', function $$postexe(postexe_t, lbrace_t, compstmt, rbrace_t) { var self = this; return self.$n("postexe", [compstmt], self.$keyword_map(postexe_t, lbrace_t, [], rbrace_t)) - }, $Default_postexe$117.$$arity = 4); + }, 4); - Opal.def(self, '$rescue_body', $Default_rescue_body$118 = function $$rescue_body(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt) { + $def(self, '$rescue_body', function $$rescue_body(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt) { var self = this; return self.$n("resbody", [exc_list, exc_var, compound_stmt], self.$rescue_body_map(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt)) - }, $Default_rescue_body$118.$$arity = 6); + }, 6); - Opal.def(self, '$begin_body', $Default_begin_body$119 = function $$begin_body(compound_stmt, rescue_bodies, else_t, else_, ensure_t, ensure_) { + $def(self, '$begin_body', function $$begin_body(compound_stmt, rescue_bodies, else_t, else_, ensure_t, ensure_) { var self = this, statements = nil; - if (rescue_bodies == null) { - rescue_bodies = []; - }; + if (rescue_bodies == null) rescue_bodies = [];; - if (else_t == null) { - else_t = nil; - }; + if (else_t == null) else_t = nil;; - if (else_ == null) { - else_ = nil; - }; + if (else_ == null) else_ = nil;; - if (ensure_t == null) { - ensure_t = nil; - }; + if (ensure_t == null) ensure_t = nil;; - if (ensure_ == null) { - ensure_ = nil; - }; + if (ensure_ == null) ensure_ = nil;; if ($truthy(rescue_bodies['$any?']())) { if ($truthy(else_t)) { - compound_stmt = self.$n("rescue", [compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies, [else_]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, else_t, else_)) + compound_stmt = self.$n("rescue", [compound_stmt].concat($to_a($rb_plus(rescue_bodies, [else_]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, else_t, else_)) } else { - compound_stmt = self.$n("rescue", [compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies, [nil]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil)) + compound_stmt = self.$n("rescue", [compound_stmt].concat($to_a($rb_plus(rescue_bodies, [nil]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil)) } } else if ($truthy(else_t)) { statements = []; - if ($truthy(compound_stmt['$nil?']()['$!']())) { - if (compound_stmt.$type()['$==']("begin")) { + if ($not(compound_stmt['$nil?']())) { + if ($eqeq(compound_stmt.$type(), "begin")) { statements = $rb_plus(statements, compound_stmt.$children()) } else { statements.$push(compound_stmt) - }}; + } + }; statements.$push(self.$n("begin", [else_], self.$collection_map(else_t, [else_], nil))); - compound_stmt = self.$n("begin", statements, self.$collection_map(nil, statements, nil));}; + compound_stmt = self.$n("begin", statements, self.$collection_map(nil, statements, nil)); + }; if ($truthy(ensure_t)) { - compound_stmt = self.$n("ensure", [compound_stmt, ensure_], self.$eh_keyword_map(compound_stmt, ensure_t, [ensure_], nil, nil))}; + compound_stmt = self.$n("ensure", [compound_stmt, ensure_], self.$eh_keyword_map(compound_stmt, ensure_t, [ensure_], nil, nil)) + }; return compound_stmt; - }, $Default_begin_body$119.$$arity = -2); + }, -2); - Opal.def(self, '$compstmt', $Default_compstmt$120 = function $$compstmt(statements) { + $def(self, '$compstmt', function $$compstmt(statements) { var self = this; - return (function() { - if ($truthy(statements['$none?']())) {return nil} - else if ($truthy(statements['$one?']())) {return statements.$first()} - else {return self.$n("begin", statements, self.$collection_map(nil, statements, nil))}})() - }, $Default_compstmt$120.$$arity = 1); + if ($truthy(statements['$none?']())) { + return nil + } else if ($truthy(statements['$one?']())) { + return statements.$first() + } else { + return self.$n("begin", statements, self.$collection_map(nil, statements, nil)) + } + }, 1); - Opal.def(self, '$begin', $Default_begin$121 = function $$begin(begin_t, body, end_t) { - var self = this, $ret_or_14 = nil, $ret_or_15 = nil, $ret_or_16 = nil; + $def(self, '$begin', function $$begin(begin_t, body, end_t) { + var self = this; if ($truthy(body['$nil?']())) { return self.$n0("begin", self.$collection_map(begin_t, nil, end_t)) - } else if ($truthy((function() {if ($truthy(($ret_or_14 = body.$type()['$==']("mlhs")))) { - return $ret_or_14 - } else { - - if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = body.$type()['$==']("begin")))) { - return body.$loc().$begin()['$nil?']() - } else { - return $ret_or_16 - }; return nil; })()))) { - return body.$loc().$end()['$nil?']() - } else { - return $ret_or_15 - }; - }; return nil; })())) { + } else if (($eqeq(body.$type(), "mlhs") || ((($eqeq(body.$type(), "begin") && ($truthy(body.$loc().$begin()['$nil?']()))) && ($truthy(body.$loc().$end()['$nil?']())))))) { return self.$n(body.$type(), body.$children(), self.$collection_map(begin_t, body.$children(), end_t)) } else { return self.$n("begin", [body], self.$collection_map(begin_t, [body], end_t)) } - }, $Default_begin$121.$$arity = 3); + }, 3); - Opal.def(self, '$begin_keyword', $Default_begin_keyword$122 = function $$begin_keyword(begin_t, body, end_t) { - var self = this, $ret_or_17 = nil, $ret_or_18 = nil; + $def(self, '$begin_keyword', function $$begin_keyword(begin_t, body, end_t) { + var self = this; if ($truthy(body['$nil?']())) { return self.$n0("kwbegin", self.$collection_map(begin_t, nil, end_t)) - } else if ($truthy((function() {if ($truthy(($ret_or_17 = (function() {if ($truthy(($ret_or_18 = body.$type()['$==']("begin")))) { - return body.$loc().$begin()['$nil?']() - } else { - return $ret_or_18 - }; return nil; })()))) { - return body.$loc().$end()['$nil?']() - } else { - return $ret_or_17 - }; return nil; })())) { + } else if ((($eqeq(body.$type(), "begin") && ($truthy(body.$loc().$begin()['$nil?']()))) && ($truthy(body.$loc().$end()['$nil?']())))) { return self.$n("kwbegin", body.$children(), self.$collection_map(begin_t, body.$children(), end_t)) } else { return self.$n("kwbegin", [body], self.$collection_map(begin_t, [body], end_t)) } - }, $Default_begin_keyword$122.$$arity = 3); + }, 3); - Opal.def(self, '$case_match', $Default_case_match$123 = function $$case_match(case_t, expr, in_bodies, else_t, else_body, end_t) { - var self = this, $ret_or_19 = nil; + $def(self, '$case_match', function $$case_match(case_t, expr, in_bodies, else_t, else_body, end_t) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_19 = else_t))) { - return else_body['$!']() - } else { - return $ret_or_19 - }; return nil; })())) { - else_body = self.$n("empty_else", nil, self.$token_map(else_t))}; - return self.$n("case_match", [expr].concat(Opal.to_a(in_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)); - }, $Default_case_match$123.$$arity = 6); + if (($truthy(else_t) && ($not(else_body)))) { + else_body = self.$n("empty_else", nil, self.$token_map(else_t)) + }; + return self.$n("case_match", [expr].concat($to_a(in_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)); + }, 6); - Opal.def(self, '$in_match', $Default_in_match$124 = function $$in_match(lhs, in_t, rhs) { + $def(self, '$in_match', function $$in_match(lhs, in_t, rhs) { var self = this; return self.$n("in_match", [lhs, rhs], self.$binary_op_map(lhs, in_t, rhs)) - }, $Default_in_match$124.$$arity = 3); + }, 3); - Opal.def(self, '$match_pattern', $Default_match_pattern$125 = function $$match_pattern(lhs, match_t, rhs) { + $def(self, '$match_pattern', function $$match_pattern(lhs, match_t, rhs) { var self = this; return self.$n("match_pattern", [lhs, rhs], self.$binary_op_map(lhs, match_t, rhs)) - }, $Default_match_pattern$125.$$arity = 3); + }, 3); - Opal.def(self, '$match_pattern_p', $Default_match_pattern_p$126 = function $$match_pattern_p(lhs, match_t, rhs) { + $def(self, '$match_pattern_p', function $$match_pattern_p(lhs, match_t, rhs) { var self = this; return self.$n("match_pattern_p", [lhs, rhs], self.$binary_op_map(lhs, match_t, rhs)) - }, $Default_match_pattern_p$126.$$arity = 3); + }, 3); - Opal.def(self, '$in_pattern', $Default_in_pattern$127 = function $$in_pattern(in_t, pattern, guard, then_t, body) { + $def(self, '$in_pattern', function $$in_pattern(in_t, pattern, guard, then_t, body) { var self = this, children = nil; children = [pattern, guard, body]; return self.$n("in_pattern", children, self.$keyword_map(in_t, then_t, children.$compact(), nil)); - }, $Default_in_pattern$127.$$arity = 5); + }, 5); - Opal.def(self, '$if_guard', $Default_if_guard$128 = function $$if_guard(if_t, if_body) { + $def(self, '$if_guard', function $$if_guard(if_t, if_body) { var self = this; return self.$n("if_guard", [if_body], self.$guard_map(if_t, if_body)) - }, $Default_if_guard$128.$$arity = 2); + }, 2); - Opal.def(self, '$unless_guard', $Default_unless_guard$129 = function $$unless_guard(unless_t, unless_body) { + $def(self, '$unless_guard', function $$unless_guard(unless_t, unless_body) { var self = this; return self.$n("unless_guard", [unless_body], self.$guard_map(unless_t, unless_body)) - }, $Default_unless_guard$129.$$arity = 2); + }, 2); - Opal.def(self, '$match_var', $Default_match_var$130 = function $$match_var(name_t) { + $def(self, '$match_var', function $$match_var(name_t) { var self = this, name = nil, name_l = nil; @@ -21183,9 +18464,9 @@ Opal.modules["parser/builders/default"] = function(Opal) { self.$check_duplicate_pattern_variable(name, name_l); self.parser.$static_env().$declare(name); return self.$n("match_var", [name], self.$variable_map(name_t)); - }, $Default_match_var$130.$$arity = 1); + }, 1); - Opal.def(self, '$match_hash_var', $Default_match_hash_var$131 = function $$match_hash_var(name_t) { + $def(self, '$match_hash_var', function $$match_hash_var(name_t) { var self = this, name = nil, expr_l = nil, name_l = nil; @@ -21195,41 +18476,45 @@ Opal.modules["parser/builders/default"] = function(Opal) { self.$check_lvar_name(name, name_l); self.$check_duplicate_pattern_variable(name, name_l); self.parser.$static_env().$declare(name); - return self.$n("match_var", [name], $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_l, expr_l)); - }, $Default_match_hash_var$131.$$arity = 1); + return self.$n("match_var", [name], $$$($$$($$('Source'), 'Map'), 'Variable').$new(name_l, expr_l)); + }, 1); - Opal.def(self, '$match_hash_var_from_str', $Default_match_hash_var_from_str$132 = function $$match_hash_var_from_str(begin_t, strings, end_t) { - var $a, self = this, string = nil, $case = nil, name = nil, name_l = nil, begin_l = nil, end_l = nil, expr_l = nil; + $def(self, '$match_hash_var_from_str', function $$match_hash_var_from_str(begin_t, strings, end_t) { + var $a, self = this, string = nil, $ret_or_1 = nil, name = nil, name_l = nil, begin_l = nil, end_l = nil, expr_l = nil; if ($truthy($rb_gt(strings.$length(), 1))) { - self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t)))}; + self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t))) + }; string = strings['$[]'](0); - return (function() {$case = string.$type(); - if ("str"['$===']($case)) { - $a = [].concat(Opal.to_a(string)), (name = ($a[0] == null ? nil : $a[0])), $a; - name_l = string.$loc().$expression(); - self.$check_lvar_name(name, name_l); - self.$check_duplicate_pattern_variable(name, name_l); - self.parser.$static_env().$declare(name); - if ($truthy((begin_l = string.$loc().$begin()))) { - name_l = name_l.$adjust($hash2(["begin_pos"], {"begin_pos": begin_l.$length()}))}; - if ($truthy((end_l = string.$loc().$end()))) { - name_l = name_l.$adjust($hash2(["end_pos"], {"end_pos": end_l.$length()['$-@']()}))}; - expr_l = self.$loc(begin_t).$join(string.$loc().$expression()).$join(self.$loc(end_t)); - return self.$n("match_var", [name.$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_l, expr_l));} - else if ("begin"['$===']($case)) {return self.$match_hash_var_from_str(begin_t, string.$children(), end_t)} - else {return self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t)))}})(); - }, $Default_match_hash_var_from_str$132.$$arity = 3); - - Opal.def(self, '$match_rest', $Default_match_rest$133 = function $$match_rest(star_t, name_t) { + if ($eqeqeq("str", ($ret_or_1 = string.$type()))) { + + $a = [].concat($to_a(string)), (name = ($a[0] == null ? nil : $a[0])), $a; + name_l = string.$loc().$expression(); + self.$check_lvar_name(name, name_l); + self.$check_duplicate_pattern_variable(name, name_l); + self.parser.$static_env().$declare(name); + if ($truthy((begin_l = string.$loc().$begin()))) { + name_l = name_l.$adjust($hash2(["begin_pos"], {"begin_pos": begin_l.$length()})) + }; + if ($truthy((end_l = string.$loc().$end()))) { + name_l = name_l.$adjust($hash2(["end_pos"], {"end_pos": end_l.$length()['$-@']()})) + }; + expr_l = self.$loc(begin_t).$join(string.$loc().$expression()).$join(self.$loc(end_t)); + return self.$n("match_var", [name.$to_sym()], $$$($$$($$('Source'), 'Map'), 'Variable').$new(name_l, expr_l)); + } else if ($eqeqeq("begin", $ret_or_1)) { + return self.$match_hash_var_from_str(begin_t, string.$children(), end_t) + } else { + return self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t))) + }; + }, 3); + + $def(self, '$match_rest', function $$match_rest(star_t, name_t) { var self = this, name = nil; - if (name_t == null) { - name_t = nil; - }; + if (name_t == null) name_t = nil;; if ($truthy(name_t['$nil?']())) { return self.$n0("match_rest", self.$unary_op_map(star_t)) } else { @@ -21237,31 +18522,29 @@ Opal.modules["parser/builders/default"] = function(Opal) { name = self.$match_var(name_t); return self.$n("match_rest", [name], self.$unary_op_map(star_t, name)); }; - }, $Default_match_rest$133.$$arity = -2); + }, -2); - Opal.def(self, '$hash_pattern', $Default_hash_pattern$134 = function $$hash_pattern(lbrace_t, kwargs, rbrace_t) { + $def(self, '$hash_pattern', function $$hash_pattern(lbrace_t, kwargs, rbrace_t) { var self = this, args = nil; args = self.$check_duplicate_args(kwargs); return self.$n("hash_pattern", args, self.$collection_map(lbrace_t, args, rbrace_t)); - }, $Default_hash_pattern$134.$$arity = 3); + }, 3); - Opal.def(self, '$array_pattern', $Default_array_pattern$135 = function $$array_pattern(lbrack_t, elements, rbrack_t) { - var $$136, self = this, trailing_comma = nil, node_elements = nil, node_type = nil; + $def(self, '$array_pattern', function $$array_pattern(lbrack_t, elements, rbrack_t) { + var self = this, trailing_comma = nil, node_elements = nil, node_type = nil; if ($truthy(elements['$nil?']())) { - return self.$n("array_pattern", nil, self.$collection_map(lbrack_t, [], rbrack_t))}; + return self.$n("array_pattern", nil, self.$collection_map(lbrack_t, [], rbrack_t)) + }; trailing_comma = false; - node_elements = $send(elements, 'map', [], ($$136 = function(element){var self = $$136.$$s == null ? this : $$136.$$s; - + node_elements = $send(elements, 'map', [], function $$14(element){ - if (element == null) { - element = nil; - }; - if (element.$type()['$==']("match_with_trailing_comma")) { + if (element == null) element = nil;; + if ($eqeq(element.$type(), "match_with_trailing_comma")) { trailing_comma = true; return element.$children().$first(); @@ -21269,71 +18552,67 @@ Opal.modules["parser/builders/default"] = function(Opal) { trailing_comma = false; return element; - };}, $$136.$$s = self, $$136.$$arity = 1, $$136)); - node_type = (function() {if ($truthy(trailing_comma)) { - return "array_pattern_with_tail" - } else { - return "array_pattern" - }; return nil; })(); + };}, 1); + node_type = ($truthy(trailing_comma) ? ("array_pattern_with_tail") : ("array_pattern")); return self.$n(node_type, node_elements, self.$collection_map(lbrack_t, elements, rbrack_t)); - }, $Default_array_pattern$135.$$arity = 3); + }, 3); - Opal.def(self, '$find_pattern', $Default_find_pattern$137 = function $$find_pattern(lbrack_t, elements, rbrack_t) { + $def(self, '$find_pattern', function $$find_pattern(lbrack_t, elements, rbrack_t) { var self = this; return self.$n("find_pattern", elements, self.$collection_map(lbrack_t, elements, rbrack_t)) - }, $Default_find_pattern$137.$$arity = 3); + }, 3); - Opal.def(self, '$match_with_trailing_comma', $Default_match_with_trailing_comma$138 = function $$match_with_trailing_comma(match, comma_t) { + $def(self, '$match_with_trailing_comma', function $$match_with_trailing_comma(match, comma_t) { var self = this; return self.$n("match_with_trailing_comma", [match], self.$expr_map(match.$loc().$expression().$join(self.$loc(comma_t)))) - }, $Default_match_with_trailing_comma$138.$$arity = 2); + }, 2); - Opal.def(self, '$const_pattern', $Default_const_pattern$139 = function $$const_pattern(const$, ldelim_t, pattern, rdelim_t) { + $def(self, '$const_pattern', function $$const_pattern(const$, ldelim_t, pattern, rdelim_t) { var self = this; - return self.$n("const_pattern", [const$, pattern], $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(ldelim_t), self.$loc(rdelim_t), const$.$loc().$expression().$join(self.$loc(rdelim_t)))) - }, $Default_const_pattern$139.$$arity = 4); + return self.$n("const_pattern", [const$, pattern], $$$($$$($$('Source'), 'Map'), 'Collection').$new(self.$loc(ldelim_t), self.$loc(rdelim_t), const$.$loc().$expression().$join(self.$loc(rdelim_t)))) + }, 4); - Opal.def(self, '$pin', $Default_pin$140 = function $$pin(pin_t, var$) { + $def(self, '$pin', function $$pin(pin_t, var$) { var self = this; return self.$n("pin", [var$], self.$send_unary_op_map(pin_t, var$)) - }, $Default_pin$140.$$arity = 2); + }, 2); - Opal.def(self, '$match_alt', $Default_match_alt$141 = function $$match_alt(left, pipe_t, right) { + $def(self, '$match_alt', function $$match_alt(left, pipe_t, right) { var self = this, source_map = nil; source_map = self.$binary_op_map(left, pipe_t, right); return self.$n("match_alt", [left, right], source_map); - }, $Default_match_alt$141.$$arity = 3); + }, 3); - Opal.def(self, '$match_as', $Default_match_as$142 = function $$match_as(value, assoc_t, as) { + $def(self, '$match_as', function $$match_as(value, assoc_t, as) { var self = this, source_map = nil; source_map = self.$binary_op_map(value, assoc_t, as); return self.$n("match_as", [value, as], source_map); - }, $Default_match_as$142.$$arity = 3); + }, 3); - Opal.def(self, '$match_nil_pattern', $Default_match_nil_pattern$143 = function $$match_nil_pattern(dstar_t, nil_t) { + $def(self, '$match_nil_pattern', function $$match_nil_pattern(dstar_t, nil_t) { var self = this; return self.$n0("match_nil_pattern", self.$arg_prefix_map(dstar_t, nil_t)) - }, $Default_match_nil_pattern$143.$$arity = 2); + }, 2); - Opal.def(self, '$match_pair', $Default_match_pair$144 = function $$match_pair(label_type, label, value) { + $def(self, '$match_pair', function $$match_pair(label_type, label, value) { var $a, $b, self = this, begin_t = nil, parts = nil, end_t = nil, label_loc = nil, var_name = nil; - if (label_type['$==']("label")) { + if ($eqeq(label_type, "label")) { self.$check_duplicate_pattern_key(label['$[]'](0), label['$[]'](1)); return self.$pair_keyword(label, value); } else { - $b = label, $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (parts = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + $b = label, $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (parts = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; label_loc = self.$loc(begin_t).$join(self.$loc(end_t)); if ($truthy((var_name = self.$static_string(parts)))) { self.$check_duplicate_pattern_key(var_name, label_loc) @@ -21342,188 +18621,172 @@ Opal.modules["parser/builders/default"] = function(Opal) { }; return self.$pair_quoted(begin_t, parts, end_t, value); } - }, $Default_match_pair$144.$$arity = 3); + }, 3); - Opal.def(self, '$match_label', $Default_match_label$145 = function $$match_label(label_type, label) { + $def(self, '$match_label', function $$match_label(label_type, label) { var $a, $b, self = this, begin_t = nil, strings = nil, end_t = nil; - if (label_type['$==']("label")) { + if ($eqeq(label_type, "label")) { return self.$match_hash_var(label) } else { - $b = label, $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (strings = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + $b = label, $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (strings = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; return self.$match_hash_var_from_str(begin_t, strings, end_t); } - }, $Default_match_label$145.$$arity = 2); + }, 2); self.$private(); - Opal.def(self, '$check_condition', $Default_check_condition$146 = function $$check_condition(cond) { - var $a, self = this, $case = nil, lhs = nil, rhs = nil, type = nil, $ret_or_20 = nil; + $def(self, '$check_condition', function $$check_condition(cond) { + var $a, self = this, $ret_or_1 = nil, lhs = nil, rhs = nil, type = nil, $ret_or_2 = nil; - return (function() {$case = cond.$type(); - if ("masgn"['$===']($case)) {if ($truthy($rb_le(self.parser.$version(), 23))) { - return self.$diagnostic("error", "masgn_as_condition", nil, cond.$loc().$expression()) - } else { - return cond - }} - else if ("begin"['$===']($case)) {if (cond.$children().$count()['$=='](1)) { - return cond.$updated(nil, [self.$check_condition(cond.$children().$last())]) - } else { - return cond - }} - else if ("and"['$===']($case) || "or"['$===']($case) || "irange"['$===']($case) || "erange"['$===']($case)) { - $a = [].concat(Opal.to_a(cond)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - type = (function() {$case = cond.$type(); - if ("irange"['$===']($case)) {return "iflipflop"} - else if ("erange"['$===']($case)) {return "eflipflop"} - else { return nil }})(); - if ($truthy((function() {if ($truthy(($ret_or_20 = ["and", "or"]['$include?'](cond.$type())))) { - return self.parser.$version()['$=='](18) + if ($eqeqeq("masgn", ($ret_or_1 = cond.$type()))) { + if ($truthy($rb_le(self.parser.$version(), 23))) { + return self.$diagnostic("error", "masgn_as_condition", nil, cond.$loc().$expression()) + } else { + return cond + } + } else if ($eqeqeq("begin", $ret_or_1)) { + if ($eqeq(cond.$children().$count(), 1)) { + return cond.$updated(nil, [self.$check_condition(cond.$children().$last())]) + } else { + return cond + } + } else if (($eqeqeq("and", $ret_or_1) || (($eqeqeq("or", $ret_or_1) || (($eqeqeq("irange", $ret_or_1) || ($eqeqeq("erange", $ret_or_1)))))))) { + + $a = [].concat($to_a(cond)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + type = ($eqeqeq("irange", ($ret_or_2 = cond.$type())) ? ("iflipflop") : ($eqeqeq("erange", $ret_or_2) ? ("eflipflop") : (nil))); + if (($truthy(["and", "or"]['$include?'](cond.$type())) && ($eqeq(self.parser.$version(), 18)))) { + return cond + } else { + return cond.$updated(type, [self.$check_condition(lhs), self.$check_condition(rhs)]) + }; + } else if ($eqeqeq("regexp", $ret_or_1)) { + return self.$n("match_current_line", [cond], self.$expr_map(cond.$loc().$expression())) } else { - return $ret_or_20 - }; return nil; })())) { return cond - } else { - return cond.$updated(type, [self.$check_condition(lhs), self.$check_condition(rhs)]) - };} - else if ("regexp"['$===']($case)) {return self.$n("match_current_line", [cond], self.$expr_map(cond.$loc().$expression()))} - else {return cond}})() - }, $Default_check_condition$146.$$arity = 1); + } + }, 1); - Opal.def(self, '$check_duplicate_args', $Default_check_duplicate_args$147 = function $$check_duplicate_args(args, map) { - var $$148, self = this; + $def(self, '$check_duplicate_args', function $$check_duplicate_args(args, map) { + var self = this; - if (map == null) { - map = $hash2([], {}); - }; - return $send(args, 'each', [], ($$148 = function(this_arg){var self = $$148.$$s == null ? this : $$148.$$s, $case = nil; + if (map == null) map = $hash2([], {});; + return $send(args, 'each', [], function $$15(this_arg){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_1 = nil; - if (this_arg == null) { - this_arg = nil; - }; - return (function() {$case = this_arg.$type(); - if ("arg"['$===']($case) || "optarg"['$===']($case) || "restarg"['$===']($case) || "blockarg"['$===']($case) || "kwarg"['$===']($case) || "kwoptarg"['$===']($case) || "kwrestarg"['$===']($case) || "shadowarg"['$===']($case)) {return self.$check_duplicate_arg(this_arg, map)} - else if ("procarg0"['$===']($case)) {if ($truthy(this_arg.$children()['$[]'](0)['$is_a?']($$($nesting, 'Symbol')))) { + if (this_arg == null) this_arg = nil;; + if (($eqeqeq("arg", ($ret_or_1 = this_arg.$type())) || (($eqeqeq("optarg", $ret_or_1) || (($eqeqeq("restarg", $ret_or_1) || (($eqeqeq("blockarg", $ret_or_1) || (($eqeqeq("kwarg", $ret_or_1) || (($eqeqeq("kwoptarg", $ret_or_1) || (($eqeqeq("kwrestarg", $ret_or_1) || ($eqeqeq("shadowarg", $ret_or_1)))))))))))))))) { return self.$check_duplicate_arg(this_arg, map) - } else { + } else if ($eqeqeq("procarg0", $ret_or_1)) { + if ($truthy(this_arg.$children()['$[]'](0)['$is_a?']($$('Symbol')))) { + return self.$check_duplicate_arg(this_arg, map) + } else { + return self.$check_duplicate_args(this_arg.$children(), map) + } + } else if ($eqeqeq("mlhs", $ret_or_1)) { return self.$check_duplicate_args(this_arg.$children(), map) - }} - else if ("mlhs"['$===']($case)) {return self.$check_duplicate_args(this_arg.$children(), map)} - else { return nil }})();}, $$148.$$s = self, $$148.$$arity = 1, $$148)); - }, $Default_check_duplicate_args$147.$$arity = -2); + } else { + return nil + };}, {$$arity: 1, $$s: self}); + }, -2); - Opal.def(self, '$check_duplicate_arg', $Default_check_duplicate_arg$149 = function $$check_duplicate_arg(this_arg, map) { + $def(self, '$check_duplicate_arg', function $$check_duplicate_arg(this_arg, map) { var $a, self = this, this_name = nil, that_arg = nil, that_name = nil, $writer = nil; - if (map == null) { - map = $hash2([], {}); - }; - $a = [].concat(Opal.to_a(this_arg)), (this_name = ($a[0] == null ? nil : $a[0])), $a; + if (map == null) map = $hash2([], {});; + $a = [].concat($to_a(this_arg)), (this_name = ($a[0] == null ? nil : $a[0])), $a; that_arg = map['$[]'](this_name); - $a = [].concat(Opal.to_a(that_arg)), (that_name = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(that_arg)), (that_name = ($a[0] == null ? nil : $a[0])), $a; if ($truthy(that_arg['$nil?']())) { $writer = [this_name, this_arg]; - $send(map, '[]=', Opal.to_a($writer)); + $send(map, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else if ($truthy(self['$arg_name_collides?'](this_name, that_name))) { return self.$diagnostic("error", "duplicate_argument", nil, this_arg.$loc().$name(), [that_arg.$loc().$name()]) } else { return nil }; - }, $Default_check_duplicate_arg$149.$$arity = -2); + }, -2); - Opal.def(self, '$validate_no_forward_arg_after_restarg', $Default_validate_no_forward_arg_after_restarg$150 = function $$validate_no_forward_arg_after_restarg(args) { - var $$151, self = this, restarg = nil, forward_arg = nil, $ret_or_21 = nil; + $def(self, '$validate_no_forward_arg_after_restarg', function $$validate_no_forward_arg_after_restarg(args) { + var self = this, restarg = nil, forward_arg = nil; restarg = nil; forward_arg = nil; - $send(args, 'each', [], ($$151 = function(arg){var self = $$151.$$s == null ? this : $$151.$$s, $case = nil; + $send(args, 'each', [], function $$16(arg){var $ret_or_1 = nil; - if (arg == null) { - arg = nil; - }; - return (function() {$case = arg.$type(); - if ("restarg"['$===']($case)) {return (restarg = arg)} - else if ("forward_arg"['$===']($case)) {return (forward_arg = arg)} - else { return nil }})();}, $$151.$$s = self, $$151.$$arity = 1, $$151)); - if ($truthy((function() {if ($truthy(($ret_or_21 = forward_arg['$nil?']()['$!']()))) { - return restarg['$nil?']()['$!']() - } else { - return $ret_or_21 - }; return nil; })())) { + if (arg == null) arg = nil;; + if ($eqeqeq("restarg", ($ret_or_1 = arg.$type()))) { + return (restarg = arg) + } else if ($eqeqeq("forward_arg", $ret_or_1)) { + return (forward_arg = arg) + } else { + return nil + };}, 1); + if (($not(forward_arg['$nil?']()) && ($not(restarg['$nil?']())))) { return self.$diagnostic("error", "forward_arg_after_restarg", nil, forward_arg.$loc().$expression(), [restarg.$loc().$expression()]) } else { return nil }; - }, $Default_validate_no_forward_arg_after_restarg$150.$$arity = 1); + }, 1); - Opal.def(self, '$check_assignment_to_numparam', $Default_check_assignment_to_numparam$152 = function $$check_assignment_to_numparam(name, loc) { - var self = this, assigning_to_numparam = nil, $ret_or_22 = nil, $ret_or_23 = nil; + $def(self, '$check_assignment_to_numparam', function $$check_assignment_to_numparam(name, loc) { + var self = this, assigning_to_numparam = nil, $ret_or_1 = nil, $ret_or_2 = nil; if ($truthy($rb_lt(self.parser.$version(), 27))) { - return nil}; - assigning_to_numparam = (function() {if ($truthy(($ret_or_22 = (function() {if ($truthy(($ret_or_23 = self.parser.$context()['$in_dynamic_block?']()))) { - return name['$=~'](/^_([1-9])$/) - } else { - return $ret_or_23 - }; return nil; })()))) { - return self.parser.$max_numparam_stack()['$has_numparams?']() - } else { - return $ret_or_22 - }; return nil; })(); + return nil + }; + assigning_to_numparam = ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.parser.$context()['$in_dynamic_block?']())) ? (name['$=~'](/^_([1-9])$/)) : ($ret_or_2)))) ? (self.parser.$max_numparam_stack()['$has_numparams?']()) : ($ret_or_1)); if ($truthy(assigning_to_numparam)) { return self.$diagnostic("error", "cant_assign_to_numparam", $hash2(["name"], {"name": name}), loc) } else { return nil }; - }, $Default_check_assignment_to_numparam$152.$$arity = 2); + }, 2); - Opal.def(self, '$check_reserved_for_numparam', $Default_check_reserved_for_numparam$153 = function $$check_reserved_for_numparam(name, loc) { + $def(self, '$check_reserved_for_numparam', function $$check_reserved_for_numparam(name, loc) { var self = this; if ($truthy($rb_lt(self.parser.$version(), 30))) { - return nil}; + return nil + }; if ($truthy(name['$=~'](/^_([1-9])$/))) { return self.$diagnostic("error", "reserved_for_numparam", $hash2(["name"], {"name": name}), loc) } else { return nil }; - }, $Default_check_reserved_for_numparam$153.$$arity = 2); + }, 2); - Opal.def(self, '$arg_name_collides?', $Default_arg_name_collides$ques$154 = function(this_name, that_name) { - var self = this, $case = nil, $ret_or_24 = nil, $ret_or_25 = nil, $ret_or_26 = nil; + $def(self, '$arg_name_collides?', function $Default_arg_name_collides$ques$17(this_name, that_name) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - return (function() {$case = self.parser.$version(); - if ((18)['$===']($case)) {return this_name['$=='](that_name)} - else if ((19)['$===']($case)) {if ($truthy(($ret_or_24 = this_name['$!=']("_")))) { + if ($eqeqeq(18, ($ret_or_1 = self.parser.$version()))) { return this_name['$=='](that_name) - } else { - return $ret_or_24 - }} - else {if ($truthy(($ret_or_25 = (function() {if ($truthy(($ret_or_26 = this_name))) { - return this_name['$[]'](0)['$!=']("_") - } else { - return $ret_or_26 - }; return nil; })()))) { + } else if ($eqeqeq(19, $ret_or_1)) { + if ($truthy(($ret_or_2 = this_name['$!=']("_")))) { + return this_name['$=='](that_name) + } else { + return $ret_or_2 + } + } else if ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = this_name)) ? (this_name['$[]'](0)['$!=']("_")) : ($ret_or_3))))) { return this_name['$=='](that_name) } else { - return $ret_or_25 - }}})() - }, $Default_arg_name_collides$ques$154.$$arity = 2); + return $ret_or_2 + } + }, 2); - Opal.def(self, '$check_lvar_name', $Default_check_lvar_name$155 = function $$check_lvar_name(name, loc) { + $def(self, '$check_lvar_name', function $$check_lvar_name(name, loc) { var self = this; if ($truthy(name['$=~'](/^[[[:lower:]]_][[[:alnum:]]_]*$/))) { @@ -21531,151 +18794,144 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { return self.$diagnostic("error", "lvar_name", $hash2(["name"], {"name": name}), loc) } - }, $Default_check_lvar_name$155.$$arity = 2); + }, 2); - Opal.def(self, '$check_duplicate_pattern_variable', $Default_check_duplicate_pattern_variable$156 = function $$check_duplicate_pattern_variable(name, loc) { + $def(self, '$check_duplicate_pattern_variable', function $$check_duplicate_pattern_variable(name, loc) { var self = this; if ($truthy(name.$to_s()['$start_with?']("_"))) { - return nil}; + return nil + }; if ($truthy(self.parser.$pattern_variables()['$declared?'](name))) { - self.$diagnostic("error", "duplicate_variable_name", $hash2(["name"], {"name": name.$to_s()}), loc)}; + self.$diagnostic("error", "duplicate_variable_name", $hash2(["name"], {"name": name.$to_s()}), loc) + }; return self.parser.$pattern_variables().$declare(name); - }, $Default_check_duplicate_pattern_variable$156.$$arity = 2); + }, 2); - Opal.def(self, '$check_duplicate_pattern_key', $Default_check_duplicate_pattern_key$157 = function $$check_duplicate_pattern_key(name, loc) { + $def(self, '$check_duplicate_pattern_key', function $$check_duplicate_pattern_key(name, loc) { var self = this; if ($truthy(self.parser.$pattern_hash_keys()['$declared?'](name))) { - self.$diagnostic("error", "duplicate_pattern_key", $hash2(["name"], {"name": name.$to_s()}), loc)}; + self.$diagnostic("error", "duplicate_pattern_key", $hash2(["name"], {"name": name.$to_s()}), loc) + }; return self.parser.$pattern_hash_keys().$declare(name); - }, $Default_check_duplicate_pattern_key$157.$$arity = 2); + }, 2); - Opal.def(self, '$n', $Default_n$158 = function $$n(type, children, source_map) { - var self = this; - - return $$$($$($nesting, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": source_map})) - }, $Default_n$158.$$arity = 3); + $def(self, '$n', function $$n(type, children, source_map) { + + return $$$($$('AST'), 'Node').$new(type, children, $hash2(["location"], {"location": source_map})) + }, 3); - Opal.def(self, '$n0', $Default_n0$159 = function $$n0(type, source_map) { + $def(self, '$n0', function $$n0(type, source_map) { var self = this; return self.$n(type, [], source_map) - }, $Default_n0$159.$$arity = 2); + }, 2); - Opal.def(self, '$join_exprs', $Default_join_exprs$160 = function $$join_exprs(left_expr, right_expr) { - var self = this; - + $def(self, '$join_exprs', function $$join_exprs(left_expr, right_expr) { + return left_expr.$loc().$expression().$join(right_expr.$loc().$expression()) - }, $Default_join_exprs$160.$$arity = 2); + }, 2); - Opal.def(self, '$token_map', $Default_token_map$161 = function $$token_map(token) { + $def(self, '$token_map', function $$token_map(token) { var self = this; - return $$$($$($nesting, 'Source'), 'Map').$new(self.$loc(token)) - }, $Default_token_map$161.$$arity = 1); + return $$$($$('Source'), 'Map').$new(self.$loc(token)) + }, 1); - Opal.def(self, '$delimited_string_map', $Default_delimited_string_map$162 = function $$delimited_string_map(string_t) { + $def(self, '$delimited_string_map', function $$delimited_string_map(string_t) { var self = this, str_range = nil, begin_l = nil, end_l = nil; str_range = self.$loc(string_t); begin_l = str_range.$with($hash2(["end_pos"], {"end_pos": $rb_plus(str_range.$begin_pos(), 1)})); end_l = str_range.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(str_range.$end_pos(), 1)})); - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(begin_l, end_l, self.$loc(string_t)); - }, $Default_delimited_string_map$162.$$arity = 1); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(begin_l, end_l, self.$loc(string_t)); + }, 1); - Opal.def(self, '$prefix_string_map', $Default_prefix_string_map$163 = function $$prefix_string_map(symbol) { + $def(self, '$prefix_string_map', function $$prefix_string_map(symbol) { var self = this, str_range = nil, begin_l = nil; str_range = self.$loc(symbol); begin_l = str_range.$with($hash2(["end_pos"], {"end_pos": $rb_plus(str_range.$begin_pos(), 1)})); - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(begin_l, nil, self.$loc(symbol)); - }, $Default_prefix_string_map$163.$$arity = 1); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(begin_l, nil, self.$loc(symbol)); + }, 1); - Opal.def(self, '$unquoted_map', $Default_unquoted_map$164 = function $$unquoted_map(token) { + $def(self, '$unquoted_map', function $$unquoted_map(token) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, self.$loc(token)) - }, $Default_unquoted_map$164.$$arity = 1); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(nil, nil, self.$loc(token)) + }, 1); - Opal.def(self, '$pair_keyword_map', $Default_pair_keyword_map$165 = function $$pair_keyword_map(key_t, value_e) { + $def(self, '$pair_keyword_map', function $$pair_keyword_map(key_t, value_e) { var self = this, key_range = nil, key_l = nil, colon_l = nil; key_range = self.$loc(key_t); key_l = key_range.$adjust($hash2(["end_pos"], {"end_pos": -1})); colon_l = key_range.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(key_range.$end_pos(), 1)})); - return [$$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, key_l), $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(colon_l, key_range.$join(value_e.$loc().$expression()))]; - }, $Default_pair_keyword_map$165.$$arity = 2); + return [$$$($$$($$('Source'), 'Map'), 'Collection').$new(nil, nil, key_l), $$$($$$($$('Source'), 'Map'), 'Operator').$new(colon_l, key_range.$join(value_e.$loc().$expression()))]; + }, 2); - Opal.def(self, '$pair_quoted_map', $Default_pair_quoted_map$166 = function $$pair_quoted_map(begin_t, end_t, value_e) { + $def(self, '$pair_quoted_map', function $$pair_quoted_map(begin_t, end_t, value_e) { var self = this, end_l = nil, quote_l = nil, colon_l = nil; end_l = self.$loc(end_t); quote_l = end_l.$with($hash2(["begin_pos", "end_pos"], {"begin_pos": $rb_minus(end_l.$end_pos(), 2), "end_pos": $rb_minus(end_l.$end_pos(), 1)})); colon_l = end_l.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(end_l.$end_pos(), 1)})); - return [[self.$value(end_t), quote_l], $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(colon_l, self.$loc(begin_t).$join(value_e.$loc().$expression()))]; - }, $Default_pair_quoted_map$166.$$arity = 3); + return [[self.$value(end_t), quote_l], $$$($$$($$('Source'), 'Map'), 'Operator').$new(colon_l, self.$loc(begin_t).$join(value_e.$loc().$expression()))]; + }, 3); - Opal.def(self, '$expr_map', $Default_expr_map$167 = function $$expr_map(loc) { - var self = this; - - return $$$($$($nesting, 'Source'), 'Map').$new(loc) - }, $Default_expr_map$167.$$arity = 1); + $def(self, '$expr_map', function $$expr_map(loc) { + + return $$$($$('Source'), 'Map').$new(loc) + }, 1); - Opal.def(self, '$collection_map', $Default_collection_map$168 = function $$collection_map(begin_t, parts, end_t) { - var self = this, $ret_or_27 = nil, expr_l = nil; + $def(self, '$collection_map', function $$collection_map(begin_t, parts, end_t) { + var self = this, expr_l = nil; - if ($truthy((function() {if ($truthy(($ret_or_27 = begin_t['$nil?']()))) { - return $ret_or_27 - } else { - return end_t['$nil?']() - }; return nil; })())) { + if (($truthy(begin_t['$nil?']()) || ($truthy(end_t['$nil?']())))) { if ($truthy(parts['$any?']())) { expr_l = self.$join_exprs(parts.$first(), parts.$last()) - } else if ($truthy(begin_t['$nil?']()['$!']())) { + } else if ($not(begin_t['$nil?']())) { expr_l = self.$loc(begin_t) - } else if ($truthy(end_t['$nil?']()['$!']())) { - expr_l = self.$loc(end_t)} + } else if ($not(end_t['$nil?']())) { + expr_l = self.$loc(end_t) + } } else { expr_l = self.$loc(begin_t).$join(self.$loc(end_t)) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), expr_l); - }, $Default_collection_map$168.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), expr_l); + }, 3); - Opal.def(self, '$string_map', $Default_string_map$169 = function $$string_map(begin_t, parts, end_t) { - var self = this, $ret_or_28 = nil, expr_l = nil; + $def(self, '$string_map', function $$string_map(begin_t, parts, end_t) { + var self = this, expr_l = nil; - if ($truthy((function() {if ($truthy(($ret_or_28 = begin_t))) { - return self.$value(begin_t)['$start_with?']("<<") - } else { - return $ret_or_28 - }; return nil; })())) { + if (($truthy(begin_t) && ($truthy(self.$value(begin_t)['$start_with?']("<<"))))) { if ($truthy(parts['$any?']())) { expr_l = self.$join_exprs(parts.$first(), parts.$last()) } else { expr_l = self.$loc(end_t).$begin() }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Heredoc').$new(self.$loc(begin_t), expr_l, self.$loc(end_t)); + return $$$($$$($$('Source'), 'Map'), 'Heredoc').$new(self.$loc(begin_t), expr_l, self.$loc(end_t)); } else { return self.$collection_map(begin_t, parts, end_t) } - }, $Default_string_map$169.$$arity = 3); + }, 3); - Opal.def(self, '$regexp_map', $Default_regexp_map$170 = function $$regexp_map(begin_t, end_t, options_e) { + $def(self, '$regexp_map', function $$regexp_map(begin_t, end_t, options_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), self.$loc(begin_t).$join(options_e.$loc().$expression())) - }, $Default_regexp_map$170.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), self.$loc(begin_t).$join(options_e.$loc().$expression())) + }, 3); - Opal.def(self, '$constant_map', $Default_constant_map$171 = function $$constant_map(scope, colon2_t, name_t) { + $def(self, '$constant_map', function $$constant_map(scope, colon2_t, name_t) { var self = this, expr_l = nil; @@ -21684,78 +18940,69 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { expr_l = scope.$loc().$expression().$join(self.$loc(name_t)) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Constant').$new(self.$loc(colon2_t), self.$loc(name_t), expr_l); - }, $Default_constant_map$171.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Constant').$new(self.$loc(colon2_t), self.$loc(name_t), expr_l); + }, 3); - Opal.def(self, '$variable_map', $Default_variable_map$172 = function $$variable_map(name_t) { + $def(self, '$variable_map', function $$variable_map(name_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(self.$loc(name_t)) - }, $Default_variable_map$172.$$arity = 1); + return $$$($$$($$('Source'), 'Map'), 'Variable').$new(self.$loc(name_t)) + }, 1); - Opal.def(self, '$binary_op_map', $Default_binary_op_map$173 = function $$binary_op_map(left_e, op_t, right_e) { + $def(self, '$binary_op_map', function $$binary_op_map(left_e, op_t, right_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), self.$join_exprs(left_e, right_e)) - }, $Default_binary_op_map$173.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Operator').$new(self.$loc(op_t), self.$join_exprs(left_e, right_e)) + }, 3); - Opal.def(self, '$unary_op_map', $Default_unary_op_map$174 = function $$unary_op_map(op_t, arg_e) { + $def(self, '$unary_op_map', function $$unary_op_map(op_t, arg_e) { var self = this, expr_l = nil; - if (arg_e == null) { - arg_e = nil; - }; + if (arg_e == null) arg_e = nil;; if ($truthy(arg_e['$nil?']())) { expr_l = self.$loc(op_t) } else { expr_l = self.$loc(op_t).$join(arg_e.$loc().$expression()) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); - }, $Default_unary_op_map$174.$$arity = -2); + return $$$($$$($$('Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); + }, -2); - Opal.def(self, '$range_map', $Default_range_map$175 = function $$range_map(start_e, op_t, end_e) { - var self = this, $ret_or_29 = nil, expr_l = nil; + $def(self, '$range_map', function $$range_map(start_e, op_t, end_e) { + var self = this, expr_l = nil; - if ($truthy((function() {if ($truthy(($ret_or_29 = start_e))) { - return end_e - } else { - return $ret_or_29 - }; return nil; })())) { + if (($truthy(start_e) && ($truthy(end_e)))) { expr_l = self.$join_exprs(start_e, end_e) } else if ($truthy(start_e)) { expr_l = start_e.$loc().$expression().$join(self.$loc(op_t)) } else if ($truthy(end_e)) { - expr_l = self.$loc(op_t).$join(end_e.$loc().$expression())}; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); - }, $Default_range_map$175.$$arity = 3); + expr_l = self.$loc(op_t).$join(end_e.$loc().$expression()) + }; + return $$$($$$($$('Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); + }, 3); - Opal.def(self, '$arg_prefix_map', $Default_arg_prefix_map$176 = function $$arg_prefix_map(op_t, name_t) { + $def(self, '$arg_prefix_map', function $$arg_prefix_map(op_t, name_t) { var self = this, expr_l = nil; - if (name_t == null) { - name_t = nil; - }; + if (name_t == null) name_t = nil;; if ($truthy(name_t['$nil?']())) { expr_l = self.$loc(op_t) } else { expr_l = self.$loc(op_t).$join(self.$loc(name_t)) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(self.$loc(name_t), expr_l); - }, $Default_arg_prefix_map$176.$$arity = -2); + return $$$($$$($$('Source'), 'Map'), 'Variable').$new(self.$loc(name_t), expr_l); + }, -2); - Opal.def(self, '$kwarg_map', $Default_kwarg_map$177 = function $$kwarg_map(name_t, value_e) { + $def(self, '$kwarg_map', function $$kwarg_map(name_t, value_e) { var self = this, label_range = nil, name_range = nil, expr_l = nil; - if (value_e == null) { - value_e = nil; - }; + if (value_e == null) value_e = nil;; label_range = self.$loc(name_t); name_range = label_range.$adjust($hash2(["end_pos"], {"end_pos": -1})); if ($truthy(value_e)) { @@ -21763,74 +19010,70 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { expr_l = self.$loc(name_t) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_range, expr_l); - }, $Default_kwarg_map$177.$$arity = -2); + return $$$($$$($$('Source'), 'Map'), 'Variable').$new(name_range, expr_l); + }, -2); - Opal.def(self, '$module_definition_map', $Default_module_definition_map$178 = function $$module_definition_map(keyword_t, name_e, operator_t, end_t) { + $def(self, '$module_definition_map', function $$module_definition_map(keyword_t, name_e, operator_t, end_t) { var self = this, name_l = nil; if ($truthy(name_e)) { - name_l = name_e.$loc().$expression()}; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Definition').$new(self.$loc(keyword_t), self.$loc(operator_t), name_l, self.$loc(end_t)); - }, $Default_module_definition_map$178.$$arity = 4); + name_l = name_e.$loc().$expression() + }; + return $$$($$$($$('Source'), 'Map'), 'Definition').$new(self.$loc(keyword_t), self.$loc(operator_t), name_l, self.$loc(end_t)); + }, 4); - Opal.def(self, '$definition_map', $Default_definition_map$179 = function $$definition_map(keyword_t, operator_t, name_t, end_t) { + $def(self, '$definition_map', function $$definition_map(keyword_t, operator_t, name_t, end_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), self.$loc(end_t), nil, nil) - }, $Default_definition_map$179.$$arity = 4); + return $$$($$$($$('Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), self.$loc(end_t), nil, nil) + }, 4); - Opal.def(self, '$endless_definition_map', $Default_endless_definition_map$180 = function $$endless_definition_map(keyword_t, operator_t, name_t, assignment_t, body_e) { + $def(self, '$endless_definition_map', function $$endless_definition_map(keyword_t, operator_t, name_t, assignment_t, body_e) { var self = this, body_l = nil; body_l = body_e.$loc().$expression(); - return $$$($$$($$($nesting, 'Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), nil, self.$loc(assignment_t), body_l); - }, $Default_endless_definition_map$180.$$arity = 5); + return $$$($$$($$('Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), nil, self.$loc(assignment_t), body_l); + }, 5); - Opal.def(self, '$send_map', $Default_send_map$181 = function $$send_map(receiver_e, dot_t, selector_t, begin_t, args, end_t) { + $def(self, '$send_map', function $$send_map(receiver_e, dot_t, selector_t, begin_t, args, end_t) { var self = this, begin_l = nil, end_l = nil; - if (begin_t == null) { - begin_t = nil; - }; + if (begin_t == null) begin_t = nil;; - if (args == null) { - args = []; - }; + if (args == null) args = [];; - if (end_t == null) { - end_t = nil; - }; + if (end_t == null) end_t = nil;; if ($truthy(receiver_e)) { begin_l = receiver_e.$loc().$expression() } else if ($truthy(selector_t)) { - begin_l = self.$loc(selector_t)}; + begin_l = self.$loc(selector_t) + }; if ($truthy(end_t)) { end_l = self.$loc(end_t) } else if ($truthy(args['$any?']())) { end_l = args.$last().$loc().$expression() } else if ($truthy(selector_t)) { - end_l = self.$loc(selector_t)}; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(self.$loc(dot_t), self.$loc(selector_t), self.$loc(begin_t), self.$loc(end_t), begin_l.$join(end_l)); - }, $Default_send_map$181.$$arity = -4); + end_l = self.$loc(selector_t) + }; + return $$$($$$($$('Source'), 'Map'), 'Send').$new(self.$loc(dot_t), self.$loc(selector_t), self.$loc(begin_t), self.$loc(end_t), begin_l.$join(end_l)); + }, -4); - Opal.def(self, '$var_send_map', $Default_var_send_map$182 = function $$var_send_map(variable_e) { - var self = this; - - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, variable_e.$loc().$expression(), nil, nil, variable_e.$loc().$expression()) - }, $Default_var_send_map$182.$$arity = 1); + $def(self, '$var_send_map', function $$var_send_map(variable_e) { + + return $$$($$$($$('Source'), 'Map'), 'Send').$new(nil, variable_e.$loc().$expression(), nil, nil, variable_e.$loc().$expression()) + }, 1); - Opal.def(self, '$send_binary_op_map', $Default_send_binary_op_map$183 = function $$send_binary_op_map(lhs_e, selector_t, rhs_e) { + $def(self, '$send_binary_op_map', function $$send_binary_op_map(lhs_e, selector_t, rhs_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, self.$join_exprs(lhs_e, rhs_e)) - }, $Default_send_binary_op_map$183.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, self.$join_exprs(lhs_e, rhs_e)) + }, 3); - Opal.def(self, '$send_unary_op_map', $Default_send_unary_op_map$184 = function $$send_unary_op_map(selector_t, arg_e) { + $def(self, '$send_unary_op_map', function $$send_unary_op_map(selector_t, arg_e) { var self = this, expr_l = nil; @@ -21839,132 +19082,105 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { expr_l = self.$loc(selector_t).$join(arg_e.$loc().$expression()) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, expr_l); - }, $Default_send_unary_op_map$184.$$arity = 2); + return $$$($$$($$('Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, expr_l); + }, 2); - Opal.def(self, '$index_map', $Default_index_map$185 = function $$index_map(receiver_e, lbrack_t, rbrack_t) { + $def(self, '$index_map', function $$index_map(receiver_e, lbrack_t, rbrack_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Index').$new(self.$loc(lbrack_t), self.$loc(rbrack_t), receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) - }, $Default_index_map$185.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Index').$new(self.$loc(lbrack_t), self.$loc(rbrack_t), receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) + }, 3); - Opal.def(self, '$send_index_map', $Default_send_index_map$186 = function $$send_index_map(receiver_e, lbrack_t, rbrack_t) { + $def(self, '$send_index_map', function $$send_index_map(receiver_e, lbrack_t, rbrack_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(lbrack_t).$join(self.$loc(rbrack_t)), nil, nil, receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) - }, $Default_send_index_map$186.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Send').$new(nil, self.$loc(lbrack_t).$join(self.$loc(rbrack_t)), nil, nil, receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) + }, 3); - Opal.def(self, '$block_map', $Default_block_map$187 = function $$block_map(receiver_l, begin_t, end_t) { + $def(self, '$block_map', function $$block_map(receiver_l, begin_t, end_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), receiver_l.$join(self.$loc(end_t))) - }, $Default_block_map$187.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), receiver_l.$join(self.$loc(end_t))) + }, 3); - Opal.def(self, '$keyword_map', $Default_keyword_map$188 = function $$keyword_map(keyword_t, begin_t, args, end_t) { - var self = this, $ret_or_30 = nil, end_l = nil, $ret_or_31 = nil, $ret_or_32 = nil; + $def(self, '$keyword_map', function $$keyword_map(keyword_t, begin_t, args, end_t) { + var self = this, $ret_or_1 = nil, end_l = nil; - args = (function() {if ($truthy(($ret_or_30 = args))) { - return $ret_or_30 - } else { - return [] - }; return nil; })(); + args = ($truthy(($ret_or_1 = args)) ? ($ret_or_1) : ([])); if ($truthy(end_t)) { end_l = self.$loc(end_t) - } else if ($truthy((function() {if ($truthy(($ret_or_31 = args['$any?']()))) { - return args.$last()['$nil?']()['$!']() - } else { - return $ret_or_31 - }; return nil; })())) { + } else if (($truthy(args['$any?']()) && ($not(args.$last()['$nil?']())))) { end_l = args.$last().$loc().$expression() - } else if ($truthy((function() {if ($truthy(($ret_or_32 = args['$any?']()))) { - return $rb_gt(args.$count(), 1) - } else { - return $ret_or_32 - }; return nil; })())) { + } else if (($truthy(args['$any?']()) && ($truthy($rb_gt(args.$count(), 1))))) { end_l = args['$[]'](-2).$loc().$expression() } else { end_l = self.$loc(keyword_t) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); - }, $Default_keyword_map$188.$$arity = 4); + return $$$($$$($$('Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); + }, 4); - Opal.def(self, '$keyword_mod_map', $Default_keyword_mod_map$189 = function $$keyword_mod_map(pre_e, keyword_t, post_e) { + $def(self, '$keyword_mod_map', function $$keyword_mod_map(pre_e, keyword_t, post_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), nil, nil, self.$join_exprs(pre_e, post_e)) - }, $Default_keyword_mod_map$189.$$arity = 3); + return $$$($$$($$('Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), nil, nil, self.$join_exprs(pre_e, post_e)) + }, 3); - Opal.def(self, '$condition_map', $Default_condition_map$190 = function $$condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t) { - var self = this, end_l = nil, $ret_or_33 = nil, $ret_or_34 = nil; + $def(self, '$condition_map', function $$condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t) { + var self = this, end_l = nil; if ($truthy(end_t)) { end_l = self.$loc(end_t) - } else if ($truthy((function() {if ($truthy(($ret_or_33 = else_e))) { - return else_e.$loc().$expression() - } else { - return $ret_or_33 - }; return nil; })())) { + } else if (($truthy(else_e) && ($truthy(else_e.$loc().$expression())))) { end_l = else_e.$loc().$expression() } else if ($truthy(self.$loc(else_t))) { end_l = self.$loc(else_t) - } else if ($truthy((function() {if ($truthy(($ret_or_34 = body_e))) { - return body_e.$loc().$expression() - } else { - return $ret_or_34 - }; return nil; })())) { + } else if (($truthy(body_e) && ($truthy(body_e.$loc().$expression())))) { end_l = body_e.$loc().$expression() } else if ($truthy(self.$loc(begin_t))) { end_l = self.$loc(begin_t) } else { end_l = cond_e.$loc().$expression() }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(else_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); - }, $Default_condition_map$190.$$arity = 7); + return $$$($$$($$('Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(else_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); + }, 7); - Opal.def(self, '$ternary_map', $Default_ternary_map$191 = function $$ternary_map(begin_e, question_t, mid_e, colon_t, end_e) { + $def(self, '$ternary_map', function $$ternary_map(begin_e, question_t, mid_e, colon_t, end_e) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Ternary').$new(self.$loc(question_t), self.$loc(colon_t), self.$join_exprs(begin_e, end_e)) - }, $Default_ternary_map$191.$$arity = 5); + return $$$($$$($$('Source'), 'Map'), 'Ternary').$new(self.$loc(question_t), self.$loc(colon_t), self.$join_exprs(begin_e, end_e)) + }, 5); - Opal.def(self, '$for_map', $Default_for_map$192 = function $$for_map(keyword_t, in_t, begin_t, end_t) { + $def(self, '$for_map', function $$for_map(keyword_t, in_t, begin_t, end_t) { var self = this; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'For').$new(self.$loc(keyword_t), self.$loc(in_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(self.$loc(end_t))) - }, $Default_for_map$192.$$arity = 4); + return $$$($$$($$('Source'), 'Map'), 'For').$new(self.$loc(keyword_t), self.$loc(in_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(self.$loc(end_t))) + }, 4); - Opal.def(self, '$rescue_body_map', $Default_rescue_body_map$193 = function $$rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e) { - var self = this, end_l = nil, $ret_or_35 = nil, $ret_or_36 = nil, $ret_or_37 = nil; + $def(self, '$rescue_body_map', function $$rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e) { + var self = this, end_l = nil; if ($truthy(compstmt_e)) { - end_l = compstmt_e.$loc().$expression()}; - if ($truthy((function() {if ($truthy(($ret_or_35 = end_l['$nil?']()))) { - return then_t - } else { - return $ret_or_35 - }; return nil; })())) { - end_l = self.$loc(then_t)}; - if ($truthy((function() {if ($truthy(($ret_or_36 = end_l['$nil?']()))) { - return exc_var_e - } else { - return $ret_or_36 - }; return nil; })())) { - end_l = exc_var_e.$loc().$expression()}; - if ($truthy((function() {if ($truthy(($ret_or_37 = end_l['$nil?']()))) { - return exc_list_e - } else { - return $ret_or_37 - }; return nil; })())) { - end_l = exc_list_e.$loc().$expression()}; + end_l = compstmt_e.$loc().$expression() + }; + if (($truthy(end_l['$nil?']()) && ($truthy(then_t)))) { + end_l = self.$loc(then_t) + }; + if (($truthy(end_l['$nil?']()) && ($truthy(exc_var_e)))) { + end_l = exc_var_e.$loc().$expression() + }; + if (($truthy(end_l['$nil?']()) && ($truthy(exc_list_e)))) { + end_l = exc_list_e.$loc().$expression() + }; if ($truthy(end_l['$nil?']())) { - end_l = self.$loc(keyword_t)}; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'RescueBody').$new(self.$loc(keyword_t), self.$loc(assoc_t), self.$loc(then_t), self.$loc(keyword_t).$join(end_l)); - }, $Default_rescue_body_map$193.$$arity = 6); + end_l = self.$loc(keyword_t) + }; + return $$$($$$($$('Source'), 'Map'), 'RescueBody').$new(self.$loc(keyword_t), self.$loc(assoc_t), self.$loc(then_t), self.$loc(keyword_t).$join(end_l)); + }, 6); - Opal.def(self, '$eh_keyword_map', $Default_eh_keyword_map$194 = function $$eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e) { + $def(self, '$eh_keyword_map', function $$eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e) { var self = this, begin_l = nil, end_l = nil; @@ -21983,195 +19199,164 @@ Opal.modules["parser/builders/default"] = function(Opal) { } else { end_l = else_e.$loc().$expression() } - } else if ($truthy(body_es.$last()['$nil?']()['$!']())) { + } else if ($not(body_es.$last()['$nil?']())) { end_l = body_es.$last().$loc().$expression() } else { end_l = self.$loc(keyword_t) }; - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), nil, self.$loc(else_t), nil, begin_l.$join(end_l)); - }, $Default_eh_keyword_map$194.$$arity = 5); + return $$$($$$($$('Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), nil, self.$loc(else_t), nil, begin_l.$join(end_l)); + }, 5); - Opal.def(self, '$guard_map', $Default_guard_map$195 = function $$guard_map(keyword_t, guard_body_e) { + $def(self, '$guard_map', function $$guard_map(keyword_t, guard_body_e) { var self = this, keyword_l = nil, guard_body_l = nil; keyword_l = self.$loc(keyword_t); guard_body_l = guard_body_e.$loc().$expression(); - return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(keyword_l, nil, nil, keyword_l.$join(guard_body_l)); - }, $Default_guard_map$195.$$arity = 2); + return $$$($$$($$('Source'), 'Map'), 'Keyword').$new(keyword_l, nil, nil, keyword_l.$join(guard_body_l)); + }, 2); - Opal.def(self, '$static_string', $Default_static_string$196 = function $$static_string(nodes) {try { + $def(self, '$static_string', function $$static_string(nodes) {try { - var $$197, self = this; + var self = this; - return $send(nodes, 'map', [], ($$197 = function(node){var self = $$197.$$s == null ? this : $$197.$$s, $case = nil, string = nil; + return $send(nodes, 'map', [], function $$18(node){var self = $$18.$$s == null ? this : $$18.$$s, $ret_or_1 = nil, string = nil; - if (node == null) { - node = nil; - }; - return (function() {$case = node.$type(); - if ("str"['$===']($case)) {return node.$children()['$[]'](0)} - else if ("begin"['$===']($case)) {if ($truthy((string = self.$static_string(node.$children())))) { - return string + if (node == null) node = nil;; + if ($eqeqeq("str", ($ret_or_1 = node.$type()))) { + return node.$children()['$[]'](0) + } else if ($eqeqeq("begin", $ret_or_1)) { + if ($truthy((string = self.$static_string(node.$children())))) { + return string + } else { + Opal.ret(nil) + } } else { Opal.ret(nil) - }} - else {Opal.ret(nil)}})();}, $$197.$$s = self, $$197.$$arity = 1, $$197)).$join() + };}, {$$arity: 1, $$s: self}).$join() } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Default_static_string$196.$$arity = 1); + }, 1); - Opal.def(self, '$static_regexp', $Default_static_regexp$198 = function $$static_regexp(parts, options) { + $def(self, '$static_regexp', function $$static_regexp(parts, options) { var self = this, source = nil; source = self.$static_string(parts); if ($truthy(source['$nil?']())) { - return nil}; - source = (function() { - if ($truthy(options.$children()['$include?']("u"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'UTF_8'))} - else if ($truthy(options.$children()['$include?']("e"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'EUC_JP'))} - else if ($truthy(options.$children()['$include?']("s"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'WINDOWS_31J'))} - else if ($truthy(options.$children()['$include?']("n"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'BINARY'))} - else {return source}})(); - return $$($nesting, 'Regexp').$new(source, (function() {if ($truthy(options.$children()['$include?']("x"))) { - return $$$($$($nesting, 'Regexp'), 'EXTENDED') - } else { return nil - }; return nil; })()); - }, $Default_static_regexp$198.$$arity = 2); + }; + source = ($truthy(options.$children()['$include?']("u")) ? (source.$encode($$$($$('Encoding'), 'UTF_8'))) : ($truthy(options.$children()['$include?']("e")) ? (source.$encode($$$($$('Encoding'), 'EUC_JP'))) : ($truthy(options.$children()['$include?']("s")) ? (source.$encode($$$($$('Encoding'), 'WINDOWS_31J'))) : ($truthy(options.$children()['$include?']("n")) ? (source.$encode($$$($$('Encoding'), 'BINARY'))) : (source))))); + return $$('Regexp').$new(source, ($truthy(options.$children()['$include?']("x")) ? ($$$($$('Regexp'), 'EXTENDED')) : nil)); + }, 2); - Opal.def(self, '$static_regexp_node', $Default_static_regexp_node$199 = function $$static_regexp_node(node) { + $def(self, '$static_regexp_node', function $$static_regexp_node(node) { var $a, self = this, parts = nil, options = nil; - if (node.$type()['$==']("regexp")) { + if ($eqeq(node.$type(), "regexp")) { $a = [node.$children()['$[]']($range(0, -2, false)), node.$children()['$[]'](-1)], (parts = $a[0]), (options = $a[1]), $a; return self.$static_regexp(parts, options); } else { return nil } - }, $Default_static_regexp_node$199.$$arity = 1); + }, 1); - Opal.def(self, '$collapse_string_parts?', $Default_collapse_string_parts$ques$200 = function(parts) { - var self = this, $ret_or_38 = nil; + $def(self, '$collapse_string_parts?', function $Default_collapse_string_parts$ques$19(parts) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_38 = parts['$one?']()))) { + if ($truthy(($ret_or_1 = parts['$one?']()))) { return ["str", "dstr"]['$include?'](parts.$first().$type()) } else { - return $ret_or_38 + return $ret_or_1 } - }, $Default_collapse_string_parts$ques$200.$$arity = 1); + }, 1); - Opal.def(self, '$value', $Default_value$201 = function $$value(token) { - var self = this; - + $def(self, '$value', function $$value(token) { + return token['$[]'](0) - }, $Default_value$201.$$arity = 1); + }, 1); - Opal.def(self, '$string_value', $Default_string_value$202 = function $$string_value(token) { + $def(self, '$string_value', function $$string_value(token) { var self = this; - if ($truthy(token['$[]'](0)['$valid_encoding?']())) { - } else { + if (!$truthy(token['$[]'](0)['$valid_encoding?']())) { self.$diagnostic("error", "invalid_encoding", nil, token['$[]'](1)) }; return token['$[]'](0); - }, $Default_string_value$202.$$arity = 1); + }, 1); - Opal.def(self, '$loc', $Default_loc$203 = function $$loc(token) { - var self = this, $ret_or_39 = nil; - - if ($truthy((function() {if ($truthy(($ret_or_39 = token))) { - return token['$[]'](0) - } else { - return $ret_or_39 - }; return nil; })())) { + $def(self, '$loc', function $$loc(token) { + + if (($truthy(token) && ($truthy(token['$[]'](0))))) { return token['$[]'](1) } else { return nil } - }, $Default_loc$203.$$arity = 1); + }, 1); - Opal.def(self, '$diagnostic', $Default_diagnostic$204 = function $$diagnostic(type, reason, arguments$, location, highlights) { + $def(self, '$diagnostic', function $$diagnostic(type, reason, arguments$, location, highlights) { var self = this; - if (highlights == null) { - highlights = []; - }; - self.parser.$diagnostics().$process($$($nesting, 'Diagnostic').$new(type, reason, arguments$, location, highlights)); - if (type['$==']("error")) { + if (highlights == null) highlights = [];; + self.parser.$diagnostics().$process($$('Diagnostic').$new(type, reason, arguments$, location, highlights)); + if ($eqeq(type, "error")) { return self.parser.$send("yyerror") } else { return nil }; - }, $Default_diagnostic$204.$$arity = -5); + }, -5); - Opal.def(self, '$validate_definee', $Default_validate_definee$205 = function $$validate_definee(definee) { - var self = this, $case = nil; + $def(self, '$validate_definee', function $$validate_definee(definee) { + var self = this, $ret_or_1 = nil; - return (function() {$case = definee.$type(); - if ("int"['$===']($case) || "str"['$===']($case) || "dstr"['$===']($case) || "sym"['$===']($case) || "dsym"['$===']($case) || "regexp"['$===']($case) || "array"['$===']($case) || "hash"['$===']($case)) { - self.$diagnostic("error", "singleton_literal", nil, definee.$loc().$expression()); - return false;} - else {return true}})() - }, $Default_validate_definee$205.$$arity = 1); + if (($eqeqeq("int", ($ret_or_1 = definee.$type())) || (($eqeqeq("str", $ret_or_1) || (($eqeqeq("dstr", $ret_or_1) || (($eqeqeq("sym", $ret_or_1) || (($eqeqeq("dsym", $ret_or_1) || (($eqeqeq("regexp", $ret_or_1) || (($eqeqeq("array", $ret_or_1) || ($eqeqeq("hash", $ret_or_1)))))))))))))))) { + + self.$diagnostic("error", "singleton_literal", nil, definee.$loc().$expression()); + return false; + } else { + return true + } + }, 1); - Opal.def(self, '$rewrite_hash_args_to_kwargs', $Default_rewrite_hash_args_to_kwargs$206 = function $$rewrite_hash_args_to_kwargs(args) { - var self = this, $ret_or_40 = nil, $writer = nil, $ret_or_41 = nil, $ret_or_42 = nil; + $def(self, '$rewrite_hash_args_to_kwargs', function $$rewrite_hash_args_to_kwargs(args) { + var self = this, $writer = nil; - if ($truthy((function() {if ($truthy(($ret_or_40 = args['$any?']()))) { - return self['$kwargs?'](args.$last()) - } else { - return $ret_or_40 - }; return nil; })())) { + if (($truthy(args['$any?']()) && ($truthy(self['$kwargs?'](args.$last()))))) { $writer = [$rb_minus(args.$length(), 1), args['$[]']($rb_minus(args.$length(), 1)).$updated("kwargs")]; - $send(args, '[]=', Opal.to_a($writer)); + $send(args, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy((function() {if ($truthy(($ret_or_41 = (function() {if ($truthy(($ret_or_42 = $rb_gt(args.$length(), 1)))) { - return args.$last().$type()['$==']("block_pass") - } else { - return $ret_or_42 - }; return nil; })()))) { - return self['$kwargs?'](args['$[]']($rb_minus(args.$length(), 2))) - } else { - return $ret_or_41 - }; return nil; })())) { + } else if ((($truthy($rb_gt(args.$length(), 1)) && ($eqeq(args.$last().$type(), "block_pass"))) && ($truthy(self['$kwargs?'](args['$[]']($rb_minus(args.$length(), 2))))))) { $writer = [$rb_minus(args.$length(), 2), args['$[]']($rb_minus(args.$length(), 2)).$updated("kwargs")]; - $send(args, '[]=', Opal.to_a($writer)); + $send(args, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil } - }, $Default_rewrite_hash_args_to_kwargs$206.$$arity = 1); - return (Opal.def(self, '$kwargs?', $Default_kwargs$ques$207 = function(node) { - var self = this, $ret_or_43 = nil, $ret_or_44 = nil; + }, 1); + return $def(self, '$kwargs?', function $Default_kwargs$ques$20(node) { + var $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_43 = (function() {if ($truthy(($ret_or_44 = node.$type()['$==']("hash")))) { - return node.$loc().$begin()['$nil?']() - } else { - return $ret_or_44 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = node.$type()['$==']("hash"))) ? (node.$loc().$begin()['$nil?']()) : ($ret_or_2))))) { return node.$loc().$end()['$nil?']() } else { - return $ret_or_43 + return $ret_or_1 } - }, $Default_kwargs$ques$207.$$arity = 1), nil) && 'kwargs?'; - })($$($nesting, 'Builders'), null, $nesting) + }, 1); + })($$('Builders'), null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/context"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["parser/context"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $truthy = Opal.truthy; - Opal.add_stubs(['$reset', '$attr_accessor', '$in_block', '$in_lambda']); + Opal.add_stubs('reset,attr_accessor,in_block,in_lambda'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -22180,18 +19365,18 @@ Opal.modules["parser/context"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Context'); - var $nesting = [self].concat($parent_nesting), $Context_initialize$1, $Context_reset$2, $Context_in_dynamic_block$ques$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'FLAGS', ["in_defined", "in_kwarg", "in_argdef", "in_def", "in_class", "in_block", "in_lambda"]); + $const_set($nesting[0], 'FLAGS', ["in_defined", "in_kwarg", "in_argdef", "in_def", "in_class", "in_block", "in_lambda"]); - Opal.def(self, '$initialize', $Context_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return self.$reset() - }, $Context_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $Context_reset$2 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; @@ -22202,9 +19387,9 @@ Opal.modules["parser/context"] = function(Opal) { self.in_class = false; self.in_block = false; return (self.in_lambda = false); - }, $Context_reset$2.$$arity = 0); - $send(self, 'attr_accessor', Opal.to_a($$($nesting, 'FLAGS'))); - return (Opal.def(self, '$in_dynamic_block?', $Context_in_dynamic_block$ques$3 = function() { + }, 0); + $send(self, 'attr_accessor', $to_a($$('FLAGS'))); + return $def(self, '$in_dynamic_block?', function $Context_in_dynamic_block$ques$1() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$in_block()))) { @@ -22212,22 +19397,15 @@ Opal.modules["parser/context"] = function(Opal) { } else { return self.$in_lambda() } - }, $Context_in_dynamic_block$ques$3.$$arity = 0), nil) && 'in_dynamic_block?'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/max_numparam_stack"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["parser/max_numparam_stack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$attr_reader', '$==', '$size', '$set', '$top', '$>', '$max', '$[]', '$last', '$push', '$pop', '$private', '$[]=', '$-']); + Opal.add_stubs('attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]=,-'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -22236,38 +19414,38 @@ Opal.modules["parser/max_numparam_stack"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'MaxNumparamStack'); - var $nesting = [self].concat($parent_nesting), $MaxNumparamStack_initialize$1, $MaxNumparamStack_empty$ques$2, $MaxNumparamStack_has_ordinary_params$excl$3, $MaxNumparamStack_has_ordinary_params$ques$4, $MaxNumparamStack_has_numparams$ques$5, $MaxNumparamStack_register$6, $MaxNumparamStack_top$7, $MaxNumparamStack_push$8, $MaxNumparamStack_pop$9, $MaxNumparamStack_set$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.stack = nil; + $proto.stack = nil; self.$attr_reader("stack"); - Opal.const_set($nesting[0], 'ORDINARY_PARAMS', -1); + $const_set($nesting[0], 'ORDINARY_PARAMS', -1); - Opal.def(self, '$initialize', $MaxNumparamStack_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.stack = []) - }, $MaxNumparamStack_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $MaxNumparamStack_empty$ques$2 = function() { + $def(self, '$empty?', function $MaxNumparamStack_empty$ques$1() { var self = this; return self.stack.$size()['$=='](0) - }, $MaxNumparamStack_empty$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$has_ordinary_params!', $MaxNumparamStack_has_ordinary_params$excl$3 = function() { + $def(self, '$has_ordinary_params!', function $MaxNumparamStack_has_ordinary_params$excl$2() { var self = this; - return self.$set($$($nesting, 'ORDINARY_PARAMS')) - }, $MaxNumparamStack_has_ordinary_params$excl$3.$$arity = 0); + return self.$set($$('ORDINARY_PARAMS')) + }, 0); - Opal.def(self, '$has_ordinary_params?', $MaxNumparamStack_has_ordinary_params$ques$4 = function() { + $def(self, '$has_ordinary_params?', function $MaxNumparamStack_has_ordinary_params$ques$3() { var self = this; - return self.$top()['$==']($$($nesting, 'ORDINARY_PARAMS')) - }, $MaxNumparamStack_has_ordinary_params$ques$4.$$arity = 0); + return self.$top()['$==']($$('ORDINARY_PARAMS')) + }, 0); - Opal.def(self, '$has_numparams?', $MaxNumparamStack_has_numparams$ques$5 = function() { + $def(self, '$has_numparams?', function $MaxNumparamStack_has_numparams$ques$4() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$top()))) { @@ -22275,21 +19453,21 @@ Opal.modules["parser/max_numparam_stack"] = function(Opal) { } else { return $ret_or_1 } - }, $MaxNumparamStack_has_numparams$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$register', $MaxNumparamStack_register$6 = function $$register(numparam) { + $def(self, '$register', function $$register(numparam) { var self = this; return self.$set([self.$top(), numparam].$max()) - }, $MaxNumparamStack_register$6.$$arity = 1); + }, 1); - Opal.def(self, '$top', $MaxNumparamStack_top$7 = function $$top() { + $def(self, '$top', function $$top() { var self = this; return self.stack.$last()['$[]']("value") - }, $MaxNumparamStack_top$7.$$arity = 0); + }, 0); - Opal.def(self, '$push', $MaxNumparamStack_push$8 = function $$push($kwargs) { + $def(self, '$push', function $$push($kwargs) { var static$, self = this; @@ -22305,102 +19483,97 @@ Opal.modules["parser/max_numparam_stack"] = function(Opal) { } static$ = $kwargs.$$smap["static"];; return self.stack.$push($hash2(["value", "static"], {"value": 0, "static": static$})); - }, $MaxNumparamStack_push$8.$$arity = 1); + }, 1); - Opal.def(self, '$pop', $MaxNumparamStack_pop$9 = function $$pop() { + $def(self, '$pop', function $$pop() { var self = this; return self.stack.$pop()['$[]']("value") - }, $MaxNumparamStack_pop$9.$$arity = 0); + }, 0); self.$private(); - return (Opal.def(self, '$set', $MaxNumparamStack_set$10 = function $$set(value) { + return $def(self, '$set', function $$set(value) { var self = this, $writer = nil; $writer = ["value", value]; - $send(self.stack.$last(), '[]=', Opal.to_a($writer)); + $send(self.stack.$last(), '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $MaxNumparamStack_set$10.$$arity = 1), nil) && 'set'; + }, 1); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/current_arg_stack"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["parser/current_arg_stack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $rb_minus = Opal.rb_minus, $send = Opal.send, $to_a = Opal.to_a; - Opal.add_stubs(['$attr_reader', '$freeze', '$==', '$size', '$<<', '$-', '$length', '$[]=', '$pop', '$clear', '$last']); + Opal.add_stubs('attr_reader,freeze,==,size,<<,-,length,[]=,pop,clear,last'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'CurrentArgStack'); - var $nesting = [self].concat($parent_nesting), $CurrentArgStack_initialize$1, $CurrentArgStack_empty$ques$2, $CurrentArgStack_push$3, $CurrentArgStack_set$4, $CurrentArgStack_pop$5, $CurrentArgStack_reset$6, $CurrentArgStack_top$7; + var $proto = self.$$prototype; - self.$$prototype.stack = nil; + $proto.stack = nil; self.$attr_reader("stack"); - Opal.def(self, '$initialize', $CurrentArgStack_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; self.stack = []; return self.$freeze(); - }, $CurrentArgStack_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $CurrentArgStack_empty$ques$2 = function() { + $def(self, '$empty?', function $CurrentArgStack_empty$ques$1() { var self = this; return self.stack.$size()['$=='](0) - }, $CurrentArgStack_empty$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$push', $CurrentArgStack_push$3 = function $$push(value) { + $def(self, '$push', function $$push(value) { var self = this; return self.stack['$<<'](value) - }, $CurrentArgStack_push$3.$$arity = 1); + }, 1); - Opal.def(self, '$set', $CurrentArgStack_set$4 = function $$set(value) { + $def(self, '$set', function $$set(value) { var self = this, $writer = nil; $writer = [$rb_minus(self.stack.$length(), 1), value]; - $send(self.stack, '[]=', Opal.to_a($writer)); + $send(self.stack, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $CurrentArgStack_set$4.$$arity = 1); + }, 1); - Opal.def(self, '$pop', $CurrentArgStack_pop$5 = function $$pop() { + $def(self, '$pop', function $$pop() { var self = this; return self.stack.$pop() - }, $CurrentArgStack_pop$5.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $CurrentArgStack_reset$6 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; return self.stack.$clear() - }, $CurrentArgStack_reset$6.$$arity = 0); - return (Opal.def(self, '$top', $CurrentArgStack_top$7 = function $$top() { + }, 0); + return $def(self, '$top', function $$top() { var self = this; return self.stack.$last() - }, $CurrentArgStack_top$7.$$arity = 0), nil) && 'top'; - })($nesting[0], null, $nesting) + }, 0); + })($nesting[0], null) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/variables_stack"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["parser/variables_stack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$push', '$empty?', '$<<', '$new', '$pop', '$clear', '$last', '$to_sym', '$include?']); + Opal.add_stubs('push,empty?,<<,new,pop,clear,last,to_sym,include?'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); @@ -22409,165 +19582,150 @@ Opal.modules["parser/variables_stack"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'VariablesStack'); - var $nesting = [self].concat($parent_nesting), $VariablesStack_initialize$1, $VariablesStack_empty$ques$2, $VariablesStack_push$3, $VariablesStack_pop$4, $VariablesStack_reset$5, $VariablesStack_declare$6, $VariablesStack_declared$ques$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.stack = nil; + $proto.stack = nil; - Opal.def(self, '$initialize', $VariablesStack_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; self.stack = []; return self.$push(); - }, $VariablesStack_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $VariablesStack_empty$ques$2 = function() { + $def(self, '$empty?', function $VariablesStack_empty$ques$1() { var self = this; return self.stack['$empty?']() - }, $VariablesStack_empty$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$push', $VariablesStack_push$3 = function $$push() { + $def(self, '$push', function $$push() { var self = this; - return self.stack['$<<']($$($nesting, 'Set').$new()) - }, $VariablesStack_push$3.$$arity = 0); + return self.stack['$<<']($$('Set').$new()) + }, 0); - Opal.def(self, '$pop', $VariablesStack_pop$4 = function $$pop() { + $def(self, '$pop', function $$pop() { var self = this; return self.stack.$pop() - }, $VariablesStack_pop$4.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $VariablesStack_reset$5 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; return self.stack.$clear() - }, $VariablesStack_reset$5.$$arity = 0); + }, 0); - Opal.def(self, '$declare', $VariablesStack_declare$6 = function $$declare(name) { + $def(self, '$declare', function $$declare(name) { var self = this; return self.stack.$last()['$<<'](name.$to_sym()) - }, $VariablesStack_declare$6.$$arity = 1); - return (Opal.def(self, '$declared?', $VariablesStack_declared$ques$7 = function(name) { + }, 1); + return $def(self, '$declared?', function $VariablesStack_declared$ques$2(name) { var self = this; return self.stack.$last()['$include?'](name.$to_sym()) - }, $VariablesStack_declared$ques$7.$$arity = 1), nil) && 'declared?'; + }, 1); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/base"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["parser/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $defs = Opal.defs, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $gvars = Opal.gvars, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $def = Opal.def, $not = Opal.not, $eqeqeq = Opal.eqeqeq, $to_ary = Opal.to_ary, $hash2 = Opal.hash2; - Opal.add_stubs(['$default_parser', '$setup_source_buffer', '$default_encoding', '$parse', '$parse_with_comments', '$read', '$new', '$all_errors_are_fatal=', '$diagnostics', '$-', '$ignore_warnings=', '$lambda', '$puts', '$render', '$consumer=', '$force_encoding', '$dup', '$==', '$name', '$raw_source=', '$source=', '$private_class_method', '$attr_reader', '$version', '$diagnostics=', '$static_env=', '$context=', '$parser=', '$class', '$[]', '$reset', '$source_buffer=', '$do_parse', '$comments=', '$comments', '$tokens=', '$!', '$raise', '$tokens', '$private', '$advance', '$===', '$diagnostic', '$map', '$process', '$yyerror', '$token_to_str']); + Opal.add_stubs('default_parser,setup_source_buffer,default_encoding,parse,parse_with_comments,read,new,all_errors_are_fatal=,diagnostics,-,ignore_warnings=,lambda,puts,render,consumer=,force_encoding,dup,==,name,raw_source=,source=,private_class_method,attr_reader,version,diagnostics=,static_env=,context=,parser=,[],class,reset,source_buffer=,do_parse,comments=,comments,tokens=,!,raise,tokens,private,advance,===,diagnostic,map,process,yyerror,token_to_str'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Base'); - var $nesting = [self].concat($parent_nesting), $Base_parse$1, $Base_parse_with_comments$2, $Base_parse_file$3, $Base_parse_file_with_comments$4, $Base_default_parser$5, $Base_setup_source_buffer$7, $Base_initialize$8, $Base_reset$9, $Base_parse$10, $Base_parse_with_comments$11, $Base_tokenize$12, $Base_next_token$13, $Base_check_kwarg_name$14, $Base_diagnostic$15, $Base_on_error$17; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.diagnostics = self.$$prototype.lexer = self.$$prototype.static_env = self.$$prototype.context = self.$$prototype.builder = self.$$prototype.current_arg_stack = self.$$prototype.pattern_variables = self.$$prototype.pattern_hash_keys = nil; + $proto.diagnostics = $proto.lexer = $proto.static_env = $proto.context = $proto.builder = $proto.current_arg_stack = $proto.pattern_variables = $proto.pattern_hash_keys = nil; - Opal.defs(self, '$parse', $Base_parse$1 = function $$parse(string, file, line) { + $defs(self, '$parse', function $$parse(string, file, line) { var self = this, parser = nil, source_buffer = nil; - if (file == null) { - file = "(string)"; - }; + if (file == null) file = "(string)";; - if (line == null) { - line = 1; - }; + if (line == null) line = 1;; parser = self.$default_parser(); source_buffer = self.$setup_source_buffer(file, line, string, parser.$default_encoding()); return parser.$parse(source_buffer); - }, $Base_parse$1.$$arity = -2); - Opal.defs(self, '$parse_with_comments', $Base_parse_with_comments$2 = function $$parse_with_comments(string, file, line) { + }, -2); + $defs(self, '$parse_with_comments', function $$parse_with_comments(string, file, line) { var self = this, parser = nil, source_buffer = nil; - if (file == null) { - file = "(string)"; - }; + if (file == null) file = "(string)";; - if (line == null) { - line = 1; - }; + if (line == null) line = 1;; parser = self.$default_parser(); source_buffer = self.$setup_source_buffer(file, line, string, parser.$default_encoding()); return parser.$parse_with_comments(source_buffer); - }, $Base_parse_with_comments$2.$$arity = -2); - Opal.defs(self, '$parse_file', $Base_parse_file$3 = function $$parse_file(filename) { + }, -2); + $defs(self, '$parse_file', function $$parse_file(filename) { var self = this; - return self.$parse($$($nesting, 'File').$read(filename), filename) - }, $Base_parse_file$3.$$arity = 1); - Opal.defs(self, '$parse_file_with_comments', $Base_parse_file_with_comments$4 = function $$parse_file_with_comments(filename) { + return self.$parse($$('File').$read(filename), filename) + }, 1); + $defs(self, '$parse_file_with_comments', function $$parse_file_with_comments(filename) { var self = this; - return self.$parse_with_comments($$($nesting, 'File').$read(filename), filename) - }, $Base_parse_file_with_comments$4.$$arity = 1); - Opal.defs(self, '$default_parser', $Base_default_parser$5 = function $$default_parser() { - var $$6, self = this, parser = nil, $writer = nil; + return self.$parse_with_comments($$('File').$read(filename), filename) + }, 1); + $defs(self, '$default_parser', function $$default_parser() { + var self = this, parser = nil, $writer = nil; parser = self.$new(); $writer = [true]; - $send(parser.$diagnostics(), 'all_errors_are_fatal=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'all_errors_are_fatal=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [true]; - $send(parser.$diagnostics(), 'ignore_warnings=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'ignore_warnings=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $writer = [$send(self, 'lambda', [], ($$6 = function(diagnostic){var self = $$6.$$s == null ? this : $$6.$$s; - if ($gvars.stderr == null) $gvars.stderr = nil; + $writer = [$send(self, 'lambda', [], function $$1(diagnostic){ if ($gvars.stderr == null) $gvars.stderr = nil; - if (diagnostic == null) { - diagnostic = nil; - }; - return $gvars.stderr.$puts(diagnostic.$render());}, $$6.$$s = self, $$6.$$arity = 1, $$6))]; - $send(parser.$diagnostics(), 'consumer=', Opal.to_a($writer)); + if (diagnostic == null) diagnostic = nil;; + return $gvars.stderr.$puts(diagnostic.$render());}, 1)]; + $send(parser.$diagnostics(), 'consumer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return parser; - }, $Base_default_parser$5.$$arity = 0); - Opal.defs(self, '$setup_source_buffer', $Base_setup_source_buffer$7 = function $$setup_source_buffer(file, line, string, encoding) { + }, 0); + $defs(self, '$setup_source_buffer', function $$setup_source_buffer(file, line, string, encoding) { var self = this, source_buffer = nil, $writer = nil; string = string.$dup().$force_encoding(encoding); - source_buffer = $$$($$($nesting, 'Source'), 'Buffer').$new(file, line); - if (self.$name()['$==']("Parser::Ruby18")) { + source_buffer = $$$($$('Source'), 'Buffer').$new(file, line); + if ($eqeq(self.$name(), "Parser::Ruby18")) { $writer = [string]; - $send(source_buffer, 'raw_source=', Opal.to_a($writer)); + $send(source_buffer, 'raw_source=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } else { $writer = [string]; - $send(source_buffer, 'source=', Opal.to_a($writer)); + $send(source_buffer, 'source=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return source_buffer; - }, $Base_setup_source_buffer$7.$$arity = 4); + }, 4); self.$private_class_method("setup_source_buffer"); self.$attr_reader("lexer"); self.$attr_reader("diagnostics"); @@ -22580,50 +19738,45 @@ Opal.modules["parser/base"] = function(Opal) { self.$attr_reader("pattern_variables"); self.$attr_reader("pattern_hash_keys"); - Opal.def(self, '$initialize', $Base_initialize$8 = function $$initialize(builder) { - var self = this, $writer = nil, $ret_or_1 = nil; + $def(self, '$initialize', function $$initialize(builder) { + var self = this, $writer = nil; - if (builder == null) { - builder = $$$($$$($$($nesting, 'Parser'), 'Builders'), 'Default').$new(); - }; - self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); - self.static_env = $$($nesting, 'StaticEnvironment').$new(); - self.context = $$($nesting, 'Context').$new(); - self.max_numparam_stack = $$($nesting, 'MaxNumparamStack').$new(); - self.current_arg_stack = $$($nesting, 'CurrentArgStack').$new(); - self.pattern_variables = $$($nesting, 'VariablesStack').$new(); - self.pattern_hash_keys = $$($nesting, 'VariablesStack').$new(); - self.lexer = $$($nesting, 'Lexer').$new(self.$version()); + if (builder == null) builder = $$$($$$($$('Parser'), 'Builders'), 'Default').$new();; + self.diagnostics = $$$($$('Diagnostic'), 'Engine').$new(); + self.static_env = $$('StaticEnvironment').$new(); + self.context = $$('Context').$new(); + self.max_numparam_stack = $$('MaxNumparamStack').$new(); + self.current_arg_stack = $$('CurrentArgStack').$new(); + self.pattern_variables = $$('VariablesStack').$new(); + self.pattern_hash_keys = $$('VariablesStack').$new(); + self.lexer = $$('Lexer').$new(self.$version()); $writer = [self.diagnostics]; - $send(self.lexer, 'diagnostics=', Opal.to_a($writer)); + $send(self.lexer, 'diagnostics=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [self.static_env]; - $send(self.lexer, 'static_env=', Opal.to_a($writer)); + $send(self.lexer, 'static_env=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [self.context]; - $send(self.lexer, 'context=', Opal.to_a($writer)); + $send(self.lexer, 'context=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.builder = builder; $writer = [self]; - $send(self.builder, 'parser=', Opal.to_a($writer)); + $send(self.builder, 'parser=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.last_token = nil; - if ($truthy((function() {if ($truthy(($ret_or_1 = $$$(self.$class(), 'Racc_debug_parser')))) { - return $$($nesting, 'ENV')['$[]']("RACC_DEBUG") - } else { - return $ret_or_1 - }; return nil; })())) { - self.yydebug = true}; + if (($truthy($$$(self.$class(), 'Racc_debug_parser')) && ($truthy($$('ENV')['$[]']("RACC_DEBUG"))))) { + self.yydebug = true + }; return self.$reset(); - }, $Base_initialize$8.$$arity = -1); + }, -1); - Opal.def(self, '$reset', $Base_reset$9 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; @@ -22635,243 +19788,232 @@ Opal.modules["parser/base"] = function(Opal) { self.pattern_variables.$reset(); self.pattern_hash_keys.$reset(); return self; - }, $Base_reset$9.$$arity = 0); + }, 0); - Opal.def(self, '$parse', $Base_parse$10 = function $$parse(source_buffer) { - var self = this, $writer = nil, $ret_or_2 = nil; + $def(self, '$parse', function $$parse(source_buffer) { + var self = this, $writer = nil, $ret_or_1 = nil; return (function() { try { $writer = [source_buffer]; - $send(self.lexer, 'source_buffer=', Opal.to_a($writer)); + $send(self.lexer, 'source_buffer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.source_buffer = source_buffer; - if ($truthy(($ret_or_2 = self.$do_parse()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self.$do_parse()))) { + return $ret_or_1 } else { return nil }; } finally { - ((self.source_buffer = nil), (($writer = [nil]), $send(self.lexer, 'source_buffer=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) + ((self.source_buffer = nil), (($writer = [nil]), $send(self.lexer, 'source_buffer=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) }; })() - }, $Base_parse$10.$$arity = 1); + }, 1); - Opal.def(self, '$parse_with_comments', $Base_parse_with_comments$11 = function $$parse_with_comments(source_buffer) { + $def(self, '$parse_with_comments', function $$parse_with_comments(source_buffer) { var self = this, $writer = nil; return (function() { try { $writer = [[]]; - $send(self.lexer, 'comments=', Opal.to_a($writer)); + $send(self.lexer, 'comments=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return [self.$parse(source_buffer), self.lexer.$comments()]; } finally { - (($writer = [nil]), $send(self.lexer, 'comments=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) + (($writer = [nil]), $send(self.lexer, 'comments=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) }; })() - }, $Base_parse_with_comments$11.$$arity = 1); + }, 1); - Opal.def(self, '$tokenize', $Base_tokenize$12 = function $$tokenize(source_buffer, recover) { + $def(self, '$tokenize', function $$tokenize(source_buffer, recover) { var self = this, $writer = nil, ast = nil; - if (recover == null) { - recover = false; - }; + if (recover == null) recover = false;; return (function() { try { $writer = [[]]; - $send(self.lexer, 'tokens=', Opal.to_a($writer)); + $send(self.lexer, 'tokens=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [[]]; - $send(self.lexer, 'comments=', Opal.to_a($writer)); + $send(self.lexer, 'comments=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; try { ast = self.$parse(source_buffer) } catch ($err) { - if (Opal.rescue($err, [$$$($$($nesting, 'Parser'), 'SyntaxError')])) { + if (Opal.rescue($err, [$$$($$('Parser'), 'SyntaxError')])) { try { - if ($truthy(recover['$!']())) { - self.$raise()} + if ($not(recover)) { + self.$raise() + } } finally { Opal.pop_exception(); } } else { throw $err; } };; return [ast, self.lexer.$comments(), self.lexer.$tokens()]; } finally { - ((($writer = [nil]), $send(self.lexer, 'tokens=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]), (($writer = [nil]), $send(self.lexer, 'comments=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) + ((($writer = [nil]), $send(self.lexer, 'tokens=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]), (($writer = [nil]), $send(self.lexer, 'comments=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) }; })(); - }, $Base_tokenize$12.$$arity = -2); + }, -2); self.$private(); - Opal.def(self, '$next_token', $Base_next_token$13 = function $$next_token() { + $def(self, '$next_token', function $$next_token() { var self = this, token = nil; token = self.lexer.$advance(); self.last_token = token; return token; - }, $Base_next_token$13.$$arity = 0); + }, 0); - Opal.def(self, '$check_kwarg_name', $Base_check_kwarg_name$14 = function $$check_kwarg_name(name_t) { - var self = this, $case = nil; + $def(self, '$check_kwarg_name', function $$check_kwarg_name(name_t) { + var self = this, $ret_or_1 = nil; - return (function() {$case = name_t['$[]'](0); - if (/^[a-z_]/['$===']($case)) {return nil} - else if (/^[A-Z]/['$===']($case)) {return self.$diagnostic("error", "argument_const", nil, name_t)} - else { return nil }})() - }, $Base_check_kwarg_name$14.$$arity = 1); + if ($eqeqeq(/^[a-z_]/, ($ret_or_1 = name_t['$[]'](0)))) { + return nil + } else if ($eqeqeq(/^[A-Z]/, $ret_or_1)) { + return self.$diagnostic("error", "argument_const", nil, name_t) + } else { + return nil + } + }, 1); - Opal.def(self, '$diagnostic', $Base_diagnostic$15 = function $$diagnostic(level, reason, arguments$, location_t, highlights_ts) { - var $a, $b, $$16, self = this, _ = nil, location = nil, highlights = nil; + $def(self, '$diagnostic', function $$diagnostic(level, reason, arguments$, location_t, highlights_ts) { + var $a, $b, self = this, _ = nil, location = nil, highlights = nil; - if (highlights_ts == null) { - highlights_ts = []; - }; - $b = location_t, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; - highlights = $send(highlights_ts, 'map', [], ($$16 = function(token){var self = $$16.$$s == null ? this : $$16.$$s, $c, $d, range = nil; + if (highlights_ts == null) highlights_ts = [];; + $b = location_t, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; + highlights = $send(highlights_ts, 'map', [], function $$2(token){var $c, $d, range = nil; - if (token == null) { - token = nil; - }; - $d = token, $c = Opal.to_ary($d), (_ = ($c[0] == null ? nil : $c[0])), (range = ($c[1] == null ? nil : $c[1])), $d; - return range;}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - self.diagnostics.$process($$($nesting, 'Diagnostic').$new(level, reason, arguments$, location, highlights)); - if (level['$==']("error")) { + if (token == null) token = nil;; + $d = token, $c = $to_ary($d), (_ = ($c[0] == null ? nil : $c[0])), (range = ($c[1] == null ? nil : $c[1])), $d; + return range;}, 1); + self.diagnostics.$process($$('Diagnostic').$new(level, reason, arguments$, location, highlights)); + if ($eqeq(level, "error")) { return self.$yyerror() } else { return nil }; - }, $Base_diagnostic$15.$$arity = -5); - return (Opal.def(self, '$on_error', $Base_on_error$17 = function $$on_error(error_token_id, error_value, value_stack) { + }, -5); + return $def(self, '$on_error', function $$on_error(error_token_id, error_value, value_stack) { var $a, $b, self = this, token_name = nil, _ = nil, location = nil; token_name = self.$token_to_str(error_token_id); - $b = error_value, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; - return self.diagnostics.$process($$($nesting, 'Diagnostic').$new("error", "unexpected_token", $hash2(["token"], {"token": token_name}), location)); - }, $Base_on_error$17.$$arity = 3), nil) && 'on_error'; - })($nesting[0], $$$($$($nesting, 'Racc'), 'Parser'), $nesting) + $b = error_value, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; + return self.diagnostics.$process($$('Diagnostic').$new("error", "unexpected_token", $hash2(["token"], {"token": token_name}), location)); + }, 3); + })($nesting[0], $$$($$('Racc'), 'Parser'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/rewriter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["parser/rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $const_set = Opal.const_set, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$new', '$process', '$include?', '$type', '$remove', '$wrap', '$insert_before', '$insert_after', '$replace', '$freeze', '$join', '$extend', '$warn_of_deprecation', '$class', '$warned_of_deprecation=', '$-']); + Opal.add_stubs('new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation=,-'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Rewriter'); - var $nesting = [self].concat($parent_nesting), $Rewriter_rewrite$1, $Rewriter_assignment$ques$2, $Rewriter_remove$3, $Rewriter_wrap$4, $Rewriter_insert_before$5, $Rewriter_insert_after$6, $Rewriter_replace$7, $Rewriter_initialize$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.source_rewriter = nil; + $proto.source_rewriter = nil; - Opal.def(self, '$rewrite', $Rewriter_rewrite$1 = function $$rewrite(source_buffer, ast) { + $def(self, '$rewrite', function $$rewrite(source_buffer, ast) { var self = this; - self.source_rewriter = $$$($$($nesting, 'Source'), 'Rewriter').$new(source_buffer); + self.source_rewriter = $$$($$('Source'), 'Rewriter').$new(source_buffer); self.$process(ast); return self.source_rewriter.$process(); - }, $Rewriter_rewrite$1.$$arity = 2); + }, 2); - Opal.def(self, '$assignment?', $Rewriter_assignment$ques$2 = function(node) { - var self = this; - + $def(self, '$assignment?', function $Rewriter_assignment$ques$1(node) { + return ["lvasgn", "ivasgn", "gvasgn", "cvasgn", "casgn"]['$include?'](node.$type()) - }, $Rewriter_assignment$ques$2.$$arity = 1); + }, 1); - Opal.def(self, '$remove', $Rewriter_remove$3 = function $$remove(range) { + $def(self, '$remove', function $$remove(range) { var self = this; return self.source_rewriter.$remove(range) - }, $Rewriter_remove$3.$$arity = 1); + }, 1); - Opal.def(self, '$wrap', $Rewriter_wrap$4 = function $$wrap(range, before, after) { + $def(self, '$wrap', function $$wrap(range, before, after) { var self = this; return self.source_rewriter.$wrap(range, before, after) - }, $Rewriter_wrap$4.$$arity = 3); + }, 3); - Opal.def(self, '$insert_before', $Rewriter_insert_before$5 = function $$insert_before(range, content) { + $def(self, '$insert_before', function $$insert_before(range, content) { var self = this; return self.source_rewriter.$insert_before(range, content) - }, $Rewriter_insert_before$5.$$arity = 2); + }, 2); - Opal.def(self, '$insert_after', $Rewriter_insert_after$6 = function $$insert_after(range, content) { + $def(self, '$insert_after', function $$insert_after(range, content) { var self = this; return self.source_rewriter.$insert_after(range, content) - }, $Rewriter_insert_after$6.$$arity = 2); + }, 2); - Opal.def(self, '$replace', $Rewriter_replace$7 = function $$replace(range, content) { + $def(self, '$replace', function $$replace(range, content) { var self = this; return self.source_rewriter.$replace(range, content) - }, $Rewriter_replace$7.$$arity = 2); - Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Rewriter is deprecated.", "Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()); - self.$extend($$($nesting, 'Deprecation')); - return (Opal.def(self, '$initialize', $Rewriter_initialize$8 = function $$initialize($a) { - var $post_args, $iter = $Rewriter_initialize$8.$$p, $yield = $iter || nil, self = this, $writer = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $Rewriter_initialize$8.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + }, 2); + $const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Rewriter is deprecated.", "Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()); + self.$extend($$('Deprecation')); + return $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this, $writer = nil; + + delete $$initialize.$$p; + + $post_args = Opal.slice.call(arguments); - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $rest_arg = $post_args;; self.$class().$warn_of_deprecation(); $writer = [true]; - $send($$$($$($nesting, 'Source'), 'Rewriter'), 'warned_of_deprecation=', Opal.to_a($writer)); + $send($$$($$('Source'), 'Rewriter'), 'warned_of_deprecation=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send2(self, $find_super(self, 'initialize', $Rewriter_initialize$8, false, true), 'initialize', $zuper, $iter); - }, $Rewriter_initialize$8.$$arity = -1), nil) && 'initialize'; - })($nesting[0], $$$($$$($$($nesting, 'Parser'), 'AST'), 'Processor'), $nesting) + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + }, -1); + })($nesting[0], $$$($$$($$('Parser'), 'AST'), 'Processor'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/tree_rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $hash = Opal.hash; +Opal.modules["parser/tree_rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $hash = Opal.hash, $def = Opal.def; - Opal.add_stubs(['$new', '$process', '$include?', '$type', '$remove', '$wrap', '$insert_before', '$insert_after', '$replace']); + Opal.add_stubs('new,process,include?,type,remove,wrap,insert_before,insert_after,replace'); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'TreeRewriter'); - var $nesting = [self].concat($parent_nesting), $TreeRewriter_rewrite$1, $TreeRewriter_assignment$ques$2, $TreeRewriter_remove$3, $TreeRewriter_wrap$4, $TreeRewriter_insert_before$5, $TreeRewriter_insert_after$6, $TreeRewriter_replace$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.source_rewriter = nil; + $proto.source_rewriter = nil; - Opal.def(self, '$rewrite', $TreeRewriter_rewrite$1 = function $$rewrite(source_buffer, ast, $kwargs) { + $def(self, '$rewrite', function $$rewrite(source_buffer, ast, $kwargs) { var policy, self = this; @@ -22883,59 +20025,58 @@ Opal.modules["parser/tree_rewriter"] = function(Opal) { }; policy = Opal.kwrestargs($kwargs, {});; - self.source_rewriter = $$$($$$($$($nesting, 'Parser'), 'Source'), 'TreeRewriter').$new(source_buffer, Opal.to_hash(policy)); + self.source_rewriter = $$$($$$($$('Parser'), 'Source'), 'TreeRewriter').$new(source_buffer, Opal.to_hash(policy)); self.$process(ast); return self.source_rewriter.$process(); - }, $TreeRewriter_rewrite$1.$$arity = -3); + }, -3); - Opal.def(self, '$assignment?', $TreeRewriter_assignment$ques$2 = function(node) { - var self = this; - + $def(self, '$assignment?', function $TreeRewriter_assignment$ques$1(node) { + return ["lvasgn", "ivasgn", "gvasgn", "cvasgn", "casgn"]['$include?'](node.$type()) - }, $TreeRewriter_assignment$ques$2.$$arity = 1); + }, 1); - Opal.def(self, '$remove', $TreeRewriter_remove$3 = function $$remove(range) { + $def(self, '$remove', function $$remove(range) { var self = this; return self.source_rewriter.$remove(range) - }, $TreeRewriter_remove$3.$$arity = 1); + }, 1); - Opal.def(self, '$wrap', $TreeRewriter_wrap$4 = function $$wrap(range, before, after) { + $def(self, '$wrap', function $$wrap(range, before, after) { var self = this; return self.source_rewriter.$wrap(range, before, after) - }, $TreeRewriter_wrap$4.$$arity = 3); + }, 3); - Opal.def(self, '$insert_before', $TreeRewriter_insert_before$5 = function $$insert_before(range, content) { + $def(self, '$insert_before', function $$insert_before(range, content) { var self = this; return self.source_rewriter.$insert_before(range, content) - }, $TreeRewriter_insert_before$5.$$arity = 2); + }, 2); - Opal.def(self, '$insert_after', $TreeRewriter_insert_after$6 = function $$insert_after(range, content) { + $def(self, '$insert_after', function $$insert_after(range, content) { var self = this; return self.source_rewriter.$insert_after(range, content) - }, $TreeRewriter_insert_after$6.$$arity = 2); - return (Opal.def(self, '$replace', $TreeRewriter_replace$7 = function $$replace(range, content) { + }, 2); + return $def(self, '$replace', function $$replace(range, content) { var self = this; return self.source_rewriter.$replace(range, content) - }, $TreeRewriter_replace$7.$$arity = 2), nil) && 'replace'; - })($nesting[0], $$$($$$($$($nesting, 'Parser'), 'AST'), 'Processor'), $nesting) + }, 2); + })($nesting[0], $$$($$$($$('Parser'), 'AST'), 'Processor'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $module = Opal.module; +Opal.modules["parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $module = Opal.module; - Opal.add_stubs(['$=~', '$require', '$raise']); + Opal.add_stubs('=~,require,raise'); - if ($truthy($$($nesting, 'RUBY_VERSION')['$=~'](/^1\.[89]\./))) { + if ($truthy($$('RUBY_VERSION')['$=~'](/^1\.[89]\./))) { self.$require("parser/version"); - self.$raise($$($nesting, 'LoadError'), "" + "parser v" + ($$$($$($nesting, 'Parser'), 'VERSION')) + " cannot run on Ruby " + ($$($nesting, 'RUBY_VERSION')) + ".\n" + "Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n");}; + self.$raise($$('LoadError'), "parser v" + ($$$($$('Parser'), 'VERSION')) + " cannot run on Ruby " + ($$('RUBY_VERSION')) + ".\n" + "Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n"); + }; self.$require("set"); self.$require("racc/parser"); self.$require("ast"); @@ -22948,21 +20089,19 @@ Opal.modules["parser"] = function(Opal) { self.$require("parser/version"); self.$require("parser/messages"); self.$require("parser/deprecation"); - (function($base, $parent_nesting) { + (function($base) { var self = $module($base, 'AST'); - var $nesting = [self].concat($parent_nesting); - + self.$require("parser/ast/node"); self.$require("parser/ast/processor"); return self.$require("parser/meta"); - })($nesting[0], $nesting); - (function($base, $parent_nesting) { + })($nesting[0]); + (function($base) { var self = $module($base, 'Source'); - var $nesting = [self].concat($parent_nesting); - + self.$require("parser/source/buffer"); self.$require("parser/source/range"); @@ -22988,7 +20127,7 @@ Opal.modules["parser"] = function(Opal) { self.$require("parser/source/map/rescue_body"); self.$require("parser/source/map/heredoc"); return self.$require("parser/source/map/objc_kwarg"); - })($nesting[0], $nesting); + })($nesting[0]); self.$require("parser/syntax_error"); self.$require("parser/clobbering_error"); self.$require("parser/diagnostic"); @@ -22998,13 +20137,12 @@ Opal.modules["parser"] = function(Opal) { self.$require("parser/lexer/literal"); self.$require("parser/lexer/stack_state"); self.$require("parser/lexer/dedenter"); - (function($base, $parent_nesting) { + (function($base) { var self = $module($base, 'Builders'); - var $nesting = [self].concat($parent_nesting); - + return self.$require("parser/builders/default") - })($nesting[0], $nesting); + })($nesting[0]); self.$require("parser/context"); self.$require("parser/max_numparam_stack"); self.$require("parser/current_arg_stack"); @@ -23015,63 +20153,47 @@ Opal.modules["parser"] = function(Opal) { })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["parser/ruby30"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $hash = Opal.hash, $slice = Opal.slice; +Opal.modules["parser/ruby31"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $not = Opal.not, $hash2 = Opal.hash2, $send = Opal.send, $rb_gt = Opal.rb_gt, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $hash = Opal.hash, $const_set = Opal.const_set, $to_ary = Opal.to_ary, $eqeq = Opal.eqeq, $slice = Opal.slice; - Opal.add_stubs(['$require', '$!', '$include?', '$[]', '$end_with?', '$diagnostic', '$extend_static', '$push', '$cmdarg', '$cond', '$unextend', '$pop', '$children', '$=~', '$declared?', '$static_env', '$in_dynamic_block?', '$expression', '$loc', '$has_ordinary_params?', '$max_numparam_stack', '$dup', '$stack', '$reverse_each', '$>', '$declare', '$register', '$to_i', '$new', '$each', '$split', '$empty?', '$[]=', '$-', '$+', '$compstmt', '$<<', '$preexe', '$nil?', '$begin_body', '$state=', '$alias', '$gvar', '$back_ref', '$undef_method', '$condition_mod', '$loop_mod', '$rescue_body', '$postexe', '$multi_assign', '$assign', '$array', '$op_assign', '$index', '$call_method', '$const_op_assignable', '$const_fetch', '$logical_op', '$not_op', '$command_start=', '$in_kwarg', '$in_kwarg=', '$match_pattern', '$match_pattern_p', '$local_push', '$in_def=', '$in_block=', '$in_block', '$block', '$keyword_cmd', '$multi_lhs', '$begin', '$splat', '$concat', '$assignable', '$index_asgn', '$==', '$attr_asgn', '$const_global', '$const', '$symbol_internal', '$range_inclusive', '$range_exclusive', '$binary_op', '$unary_op', '$match_op', '$ternary', '$endless_method_name', '$def_endless_method', '$local_pop', '$in_def', '$def_endless_singleton', '$associate', '$declared_forward_args?', '$forwarded_args', '$block_pass', '$begin_keyword', '$condition', '$loop', '$case', '$case_match', '$for', '$in_class=', '$def_class', '$in_class', '$def_sclass', '$def_module', '$def_method', '$def_singleton', '$context', '$in_lambda', '$arg', '$restarg', '$size', '$procarg0', '$args', '$has_ordinary_params!', '$set', '$shadowarg', '$extend_dynamic', '$in_lambda=', '$call_lambda', '$has_numparams?', '$numargs', '$top', '$any?', '$when', '$in_pattern', '$if_guard', '$unless_guard', '$match_with_trailing_comma', '$array_pattern', '$find_pattern', '$hash_pattern', '$match_as', '$match_alt', '$const_pattern', '$match_rest', '$match_pair', '$match_label', '$match_nil_pattern', '$accessible', '$match_var', '$ident', '$pin', '$string_compose', '$dedent_string', '$dedent_level', '$string', '$character', '$xstring_compose', '$regexp_options', '$regexp_compose', '$words_compose', '$word', '$symbols_compose', '$string_internal', '$ivar', '$cvar', '$symbol', '$symbol_compose', '$respond_to?', '$negate', '$unary_num', '$integer', '$float', '$rational', '$complex', '$nil', '$self', '$true', '$false', '$__FILE__', '$__LINE__', '$__ENCODING__', '$nth_ref', '$forward_arg', '$declare_forward_args', '$forward_only_args', '$check_kwarg_name', '$kwoptarg', '$kwarg', '$kwnilarg', '$kwrestarg', '$optarg', '$blockarg', '$pair', '$pair_keyword', '$pair_quoted', '$kwsplat', '$yyerrok']); + Opal.add_stubs('require,end_with?,[],!,include?,diagnostic,extend_static,push,cmdarg,cond,unextend,pop,children,in_dynamic_block?,declared?,static_env,=~,expression,loc,has_ordinary_params?,max_numparam_stack,dup,stack,reverse_each,>,declare,register,to_i,new,each,split,empty?,[]=,-,+,compstmt,<<,preexe,nil?,begin_body,state=,alias,gvar,back_ref,undef_method,condition_mod,loop_mod,rescue_body,postexe,multi_assign,assign,array,op_assign,index,call_method,const_op_assignable,const_fetch,endless_method_name,def_endless_method,local_pop,in_def,in_def=,def_endless_singleton,logical_op,not_op,command_start=,in_kwarg,in_kwarg=,match_pattern,match_pattern_p,local_push,in_argdef=,in_block=,in_block,block,keyword_cmd,multi_lhs,begin,splat,concat,assignable,index_asgn,==,attr_asgn,const_global,const,symbol_internal,range_inclusive,range_exclusive,binary_op,unary_op,match_op,in_defined=,ternary,associate,declared_forward_args?,forwarded_args,block_pass,declared_anonymous_blockarg?,begin_keyword,condition,loop,case,case_match,for,in_class=,def_class,in_class,def_sclass,def_module,def_method,def_singleton,context,in_lambda,arg,restarg,size,procarg0,args,has_ordinary_params!,set,shadowarg,extend_dynamic,in_lambda=,call_lambda,has_numparams?,numargs,top,any?,when,in_pattern,if_guard,unless_guard,match_with_trailing_comma,array_pattern,find_pattern,hash_pattern,match_as,match_alt,const_pattern,match_rest,match_pair,match_label,match_nil_pattern,accessible,match_var,ident,pin,string_compose,dedent_string,dedent_level,string,character,xstring_compose,regexp_options,regexp_compose,words_compose,word,symbols_compose,string_internal,ivar,cvar,symbol,symbol_compose,respond_to?,negate,unary_num,integer,float,rational,complex,nil,self,true,false,__FILE__,__LINE__,__ENCODING__,nth_ref,declare_forward_args,forward_arg,check_kwarg_name,kwoptarg,kwarg,kwnilarg,kwrestarg,optarg,blockarg,declare_anonymous_blockarg,pair,pair_keyword,pair_label,pair_quoted,kwsplat,yyerrok'); self.$require("racc/parser.rb"); self.$require("parser"); return (function($base, $parent_nesting) { var self = $module($base, 'Parser'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Ruby30'); + var self = $klass($base, $super, 'Ruby31'); - var $nesting = [self].concat($parent_nesting), $Ruby30_version$1, $Ruby30_default_encoding$2, $Ruby30_endless_method_name$3, $Ruby30_local_push$4, $Ruby30_local_pop$5, $Ruby30_try_declare_numparam$6, $Ruby30$8, $Ruby30$10, $Ruby30$12, $Ruby30$14, $Ruby30__reduce_1$16, $Ruby30__reduce_2$17, $Ruby30__reduce_3$18, $Ruby30__reduce_4$19, $Ruby30__reduce_5$20, $Ruby30__reduce_6$21, $Ruby30__reduce_7$22, $Ruby30__reduce_9$23, $Ruby30__reduce_10$24, $Ruby30__reduce_11$25, $Ruby30__reduce_12$26, $Ruby30__reduce_13$27, $Ruby30__reduce_14$28, $Ruby30__reduce_15$29, $Ruby30__reduce_16$30, $Ruby30__reduce_18$31, $Ruby30__reduce_19$32, $Ruby30__reduce_20$33, $Ruby30__reduce_21$34, $Ruby30__reduce_22$35, $Ruby30__reduce_23$36, $Ruby30__reduce_24$37, $Ruby30__reduce_25$38, $Ruby30__reduce_26$39, $Ruby30__reduce_27$40, $Ruby30__reduce_28$41, $Ruby30__reduce_29$42, $Ruby30__reduce_30$43, $Ruby30__reduce_32$44, $Ruby30__reduce_33$45, $Ruby30__reduce_34$46, $Ruby30__reduce_35$47, $Ruby30__reduce_37$48, $Ruby30__reduce_38$49, $Ruby30__reduce_39$50, $Ruby30__reduce_40$51, $Ruby30__reduce_41$52, $Ruby30__reduce_42$53, $Ruby30__reduce_43$54, $Ruby30__reduce_44$55, $Ruby30__reduce_46$56, $Ruby30__reduce_49$57, $Ruby30__reduce_50$58, $Ruby30__reduce_51$59, $Ruby30__reduce_52$60, $Ruby30__reduce_53$61, $Ruby30__reduce_54$62, $Ruby30__reduce_55$63, $Ruby30__reduce_56$64, $Ruby30__reduce_59$65, $Ruby30__reduce_60$66, $Ruby30__reduce_61$67, $Ruby30__reduce_62$68, $Ruby30__reduce_63$69, $Ruby30__reduce_64$70, $Ruby30__reduce_68$71, $Ruby30__reduce_69$72, $Ruby30__reduce_70$73, $Ruby30__reduce_72$74, $Ruby30__reduce_73$75, $Ruby30__reduce_74$76, $Ruby30__reduce_75$77, $Ruby30__reduce_76$78, $Ruby30__reduce_77$79, $Ruby30__reduce_78$80, $Ruby30__reduce_79$81, $Ruby30__reduce_80$82, $Ruby30__reduce_81$83, $Ruby30__reduce_82$84, $Ruby30__reduce_83$85, $Ruby30__reduce_84$86, $Ruby30__reduce_85$87, $Ruby30__reduce_86$88, $Ruby30__reduce_88$89, $Ruby30__reduce_89$90, $Ruby30__reduce_90$91, $Ruby30__reduce_91$92, $Ruby30__reduce_92$93, $Ruby30__reduce_93$94, $Ruby30__reduce_94$95, $Ruby30__reduce_95$96, $Ruby30__reduce_96$97, $Ruby30__reduce_98$98, $Ruby30__reduce_99$99, $Ruby30__reduce_100$100, $Ruby30__reduce_101$101, $Ruby30__reduce_102$102, $Ruby30__reduce_103$103, $Ruby30__reduce_104$104, $Ruby30__reduce_105$105, $Ruby30__reduce_106$106, $Ruby30__reduce_107$107, $Ruby30__reduce_108$108, $Ruby30__reduce_109$109, $Ruby30__reduce_110$110, $Ruby30__reduce_111$111, $Ruby30__reduce_112$112, $Ruby30__reduce_113$113, $Ruby30__reduce_114$114, $Ruby30__reduce_115$115, $Ruby30__reduce_116$116, $Ruby30__reduce_117$117, $Ruby30__reduce_118$118, $Ruby30__reduce_119$119, $Ruby30__reduce_120$120, $Ruby30__reduce_121$121, $Ruby30__reduce_123$122, $Ruby30__reduce_124$123, $Ruby30__reduce_125$124, $Ruby30__reduce_131$125, $Ruby30__reduce_133$126, $Ruby30__reduce_134$127, $Ruby30__reduce_135$128, $Ruby30__reduce_207$129, $Ruby30__reduce_208$130, $Ruby30__reduce_209$131, $Ruby30__reduce_210$132, $Ruby30__reduce_211$133, $Ruby30__reduce_212$134, $Ruby30__reduce_213$135, $Ruby30__reduce_214$136, $Ruby30__reduce_215$137, $Ruby30__reduce_216$138, $Ruby30__reduce_217$139, $Ruby30__reduce_218$140, $Ruby30__reduce_219$141, $Ruby30__reduce_220$142, $Ruby30__reduce_221$143, $Ruby30__reduce_222$144, $Ruby30__reduce_223$145, $Ruby30__reduce_224$146, $Ruby30__reduce_225$147, $Ruby30__reduce_226$148, $Ruby30__reduce_227$149, $Ruby30__reduce_228$150, $Ruby30__reduce_229$151, $Ruby30__reduce_230$152, $Ruby30__reduce_231$153, $Ruby30__reduce_232$154, $Ruby30__reduce_233$155, $Ruby30__reduce_234$156, $Ruby30__reduce_236$157, $Ruby30__reduce_237$158, $Ruby30__reduce_238$159, $Ruby30__reduce_239$160, $Ruby30__reduce_240$161, $Ruby30__reduce_241$162, $Ruby30__reduce_242$163, $Ruby30__reduce_243$164, $Ruby30__reduce_244$165, $Ruby30__reduce_245$166, $Ruby30__reduce_246$167, $Ruby30__reduce_247$168, $Ruby30__reduce_248$169, $Ruby30__reduce_249$170, $Ruby30__reduce_250$171, $Ruby30__reduce_251$172, $Ruby30__reduce_252$173, $Ruby30__reduce_258$174, $Ruby30__reduce_259$175, $Ruby30__reduce_263$176, $Ruby30__reduce_264$177, $Ruby30__reduce_266$178, $Ruby30__reduce_267$179, $Ruby30__reduce_268$180, $Ruby30__reduce_269$181, $Ruby30__reduce_270$182, $Ruby30__reduce_272$183, $Ruby30__reduce_275$184, $Ruby30__reduce_276$185, $Ruby30__reduce_277$186, $Ruby30__reduce_278$187, $Ruby30__reduce_279$188, $Ruby30__reduce_280$189, $Ruby30__reduce_281$190, $Ruby30__reduce_282$191, $Ruby30__reduce_283$192, $Ruby30__reduce_284$193, $Ruby30__reduce_285$194, $Ruby30__reduce_286$195, $Ruby30__reduce_287$196, $Ruby30__reduce_288$197, $Ruby30__reduce_289$198, $Ruby30__reduce_290$199, $Ruby30__reduce_291$200, $Ruby30__reduce_293$201, $Ruby30__reduce_294$202, $Ruby30__reduce_295$203, $Ruby30__reduce_306$204, $Ruby30__reduce_307$205, $Ruby30__reduce_308$206, $Ruby30__reduce_309$207, $Ruby30__reduce_310$208, $Ruby30__reduce_311$209, $Ruby30__reduce_312$210, $Ruby30__reduce_313$211, $Ruby30__reduce_314$212, $Ruby30__reduce_315$213, $Ruby30__reduce_316$214, $Ruby30__reduce_317$215, $Ruby30__reduce_318$216, $Ruby30__reduce_319$217, $Ruby30__reduce_320$218, $Ruby30__reduce_321$219, $Ruby30__reduce_322$220, $Ruby30__reduce_323$221, $Ruby30__reduce_324$222, $Ruby30__reduce_325$223, $Ruby30__reduce_327$224, $Ruby30__reduce_329$225, $Ruby30__reduce_330$226, $Ruby30__reduce_331$227, $Ruby30__reduce_332$228, $Ruby30__reduce_333$229, $Ruby30__reduce_334$230, $Ruby30__reduce_335$231, $Ruby30__reduce_336$232, $Ruby30__reduce_337$233, $Ruby30__reduce_338$234, $Ruby30__reduce_339$235, $Ruby30__reduce_340$236, $Ruby30__reduce_341$237, $Ruby30__reduce_342$238, $Ruby30__reduce_343$239, $Ruby30__reduce_344$240, $Ruby30__reduce_345$241, $Ruby30__reduce_346$242, $Ruby30__reduce_347$243, $Ruby30__reduce_348$244, $Ruby30__reduce_350$245, $Ruby30__reduce_351$246, $Ruby30__reduce_352$247, $Ruby30__reduce_353$248, $Ruby30__reduce_356$249, $Ruby30__reduce_360$250, $Ruby30__reduce_362$251, $Ruby30__reduce_365$252, $Ruby30__reduce_366$253, $Ruby30__reduce_367$254, $Ruby30__reduce_368$255, $Ruby30__reduce_370$256, $Ruby30__reduce_371$257, $Ruby30__reduce_372$258, $Ruby30__reduce_373$259, $Ruby30__reduce_374$260, $Ruby30__reduce_375$261, $Ruby30__reduce_378$262, $Ruby30__reduce_379$263, $Ruby30__reduce_380$264, $Ruby30__reduce_381$265, $Ruby30__reduce_382$266, $Ruby30__reduce_383$267, $Ruby30__reduce_385$268, $Ruby30__reduce_386$269, $Ruby30__reduce_387$270, $Ruby30__reduce_388$271, $Ruby30__reduce_389$272, $Ruby30__reduce_391$273, $Ruby30__reduce_392$274, $Ruby30__reduce_393$275, $Ruby30__reduce_394$276, $Ruby30__reduce_395$277, $Ruby30__reduce_396$278, $Ruby30__reduce_397$279, $Ruby30__reduce_398$280, $Ruby30__reduce_400$281, $Ruby30__reduce_401$282, $Ruby30__reduce_402$283, $Ruby30__reduce_403$284, $Ruby30__reduce_404$285, $Ruby30__reduce_405$286, $Ruby30__reduce_406$287, $Ruby30__reduce_407$288, $Ruby30__reduce_408$289, $Ruby30__reduce_410$290, $Ruby30__reduce_411$291, $Ruby30__reduce_412$292, $Ruby30__reduce_413$293, $Ruby30__reduce_414$294, $Ruby30__reduce_415$295, $Ruby30__reduce_416$296, $Ruby30__reduce_417$297, $Ruby30__reduce_418$298, $Ruby30__reduce_419$299, $Ruby30__reduce_420$300, $Ruby30__reduce_421$301, $Ruby30__reduce_422$302, $Ruby30__reduce_423$303, $Ruby30__reduce_424$304, $Ruby30__reduce_425$305, $Ruby30__reduce_426$306, $Ruby30__reduce_427$307, $Ruby30__reduce_428$308, $Ruby30__reduce_429$309, $Ruby30__reduce_430$310, $Ruby30__reduce_431$311, $Ruby30__reduce_432$312, $Ruby30__reduce_433$313, $Ruby30__reduce_434$314, $Ruby30__reduce_435$315, $Ruby30__reduce_436$316, $Ruby30__reduce_437$317, $Ruby30__reduce_438$318, $Ruby30__reduce_439$319, $Ruby30__reduce_440$320, $Ruby30__reduce_441$321, $Ruby30__reduce_442$322, $Ruby30__reduce_443$323, $Ruby30__reduce_444$324, $Ruby30__reduce_446$325, $Ruby30__reduce_447$326, $Ruby30__reduce_448$327, $Ruby30__reduce_449$328, $Ruby30__reduce_451$329, $Ruby30__reduce_452$330, $Ruby30__reduce_453$331, $Ruby30__reduce_455$332, $Ruby30__reduce_456$333, $Ruby30__reduce_457$334, $Ruby30__reduce_458$335, $Ruby30__reduce_459$336, $Ruby30__reduce_461$337, $Ruby30__reduce_463$338, $Ruby30__reduce_465$339, $Ruby30__reduce_466$340, $Ruby30__reduce_468$341, $Ruby30__reduce_469$342, $Ruby30__reduce_470$343, $Ruby30__reduce_471$344, $Ruby30__reduce_472$345, $Ruby30__reduce_473$346, $Ruby30__reduce_474$347, $Ruby30__reduce_475$348, $Ruby30__reduce_476$349, $Ruby30__reduce_477$350, $Ruby30__reduce_478$351, $Ruby30__reduce_479$352, $Ruby30__reduce_480$353, $Ruby30__reduce_481$354, $Ruby30__reduce_482$355, $Ruby30__reduce_483$356, $Ruby30__reduce_484$357, $Ruby30__reduce_485$358, $Ruby30__reduce_486$359, $Ruby30__reduce_487$360, $Ruby30__reduce_488$361, $Ruby30__reduce_489$362, $Ruby30__reduce_490$363, $Ruby30__reduce_492$364, $Ruby30__reduce_493$365, $Ruby30__reduce_494$366, $Ruby30__reduce_495$367, $Ruby30__reduce_496$368, $Ruby30__reduce_497$369, $Ruby30__reduce_498$370, $Ruby30__reduce_499$371, $Ruby30__reduce_500$372, $Ruby30__reduce_502$373, $Ruby30__reduce_503$374, $Ruby30__reduce_504$375, $Ruby30__reduce_505$376, $Ruby30__reduce_506$377, $Ruby30__reduce_507$378, $Ruby30__reduce_508$379, $Ruby30__reduce_509$380, $Ruby30__reduce_510$381, $Ruby30__reduce_511$382, $Ruby30__reduce_512$383, $Ruby30__reduce_513$384, $Ruby30__reduce_514$385, $Ruby30__reduce_518$386, $Ruby30__reduce_519$387, $Ruby30__reduce_520$388, $Ruby30__reduce_521$389, $Ruby30__reduce_525$390, $Ruby30__reduce_526$391, $Ruby30__reduce_535$392, $Ruby30__reduce_537$393, $Ruby30__reduce_538$394, $Ruby30__reduce_539$395, $Ruby30__reduce_540$396, $Ruby30__reduce_541$397, $Ruby30__reduce_542$398, $Ruby30__reduce_543$399, $Ruby30__reduce_544$400, $Ruby30__reduce_547$401, $Ruby30__reduce_549$402, $Ruby30__reduce_553$403, $Ruby30__reduce_554$404, $Ruby30__reduce_555$405, $Ruby30__reduce_556$406, $Ruby30__reduce_557$407, $Ruby30__reduce_558$408, $Ruby30__reduce_559$409, $Ruby30__reduce_560$410, $Ruby30__reduce_561$411, $Ruby30__reduce_562$412, $Ruby30__reduce_563$413, $Ruby30__reduce_564$414, $Ruby30__reduce_565$415, $Ruby30__reduce_566$416, $Ruby30__reduce_567$417, $Ruby30__reduce_568$418, $Ruby30__reduce_569$419, $Ruby30__reduce_570$420, $Ruby30__reduce_571$421, $Ruby30__reduce_572$422, $Ruby30__reduce_573$423, $Ruby30__reduce_574$424, $Ruby30__reduce_575$425, $Ruby30__reduce_576$426, $Ruby30__reduce_577$427, $Ruby30__reduce_578$428, $Ruby30__reduce_579$429, $Ruby30__reduce_580$430, $Ruby30__reduce_581$431, $Ruby30__reduce_582$432, $Ruby30__reduce_583$433, $Ruby30__reduce_584$434, $Ruby30__reduce_585$435, $Ruby30__reduce_586$436, $Ruby30__reduce_587$437, $Ruby30__reduce_591$438, $Ruby30__reduce_592$439, $Ruby30__reduce_593$440, $Ruby30__reduce_594$441, $Ruby30__reduce_595$442, $Ruby30__reduce_596$443, $Ruby30__reduce_597$444, $Ruby30__reduce_598$445, $Ruby30__reduce_599$446, $Ruby30__reduce_600$447, $Ruby30__reduce_601$448, $Ruby30__reduce_602$449, $Ruby30__reduce_603$450, $Ruby30__reduce_604$451, $Ruby30__reduce_605$452, $Ruby30__reduce_606$453, $Ruby30__reduce_607$454, $Ruby30__reduce_608$455, $Ruby30__reduce_609$456, $Ruby30__reduce_610$457, $Ruby30__reduce_611$458, $Ruby30__reduce_612$459, $Ruby30__reduce_613$460, $Ruby30__reduce_614$461, $Ruby30__reduce_615$462, $Ruby30__reduce_616$463, $Ruby30__reduce_617$464, $Ruby30__reduce_618$465, $Ruby30__reduce_619$466, $Ruby30__reduce_621$467, $Ruby30__reduce_622$468, $Ruby30__reduce_623$469, $Ruby30__reduce_624$470, $Ruby30__reduce_626$471, $Ruby30__reduce_627$472, $Ruby30__reduce_628$473, $Ruby30__reduce_629$474, $Ruby30__reduce_630$475, $Ruby30__reduce_631$476, $Ruby30__reduce_632$477, $Ruby30__reduce_633$478, $Ruby30__reduce_634$479, $Ruby30__reduce_635$480, $Ruby30__reduce_636$481, $Ruby30__reduce_637$482, $Ruby30__reduce_638$483, $Ruby30__reduce_639$484, $Ruby30__reduce_640$485, $Ruby30__reduce_641$486, $Ruby30__reduce_642$487, $Ruby30__reduce_643$488, $Ruby30__reduce_644$489, $Ruby30__reduce_645$490, $Ruby30__reduce_646$491, $Ruby30__reduce_647$492, $Ruby30__reduce_648$493, $Ruby30__reduce_649$494, $Ruby30__reduce_650$495, $Ruby30__reduce_651$496, $Ruby30__reduce_652$497, $Ruby30__reduce_653$498, $Ruby30__reduce_655$499, $Ruby30__reduce_656$500, $Ruby30__reduce_657$501, $Ruby30__reduce_658$502, $Ruby30__reduce_659$503, $Ruby30__reduce_660$504, $Ruby30__reduce_661$505, $Ruby30__reduce_662$506, $Ruby30__reduce_663$507, $Ruby30__reduce_664$508, $Ruby30__reduce_665$509, $Ruby30__reduce_666$510, $Ruby30__reduce_667$511, $Ruby30__reduce_668$512, $Ruby30__reduce_669$513, $Ruby30__reduce_672$514, $Ruby30__reduce_673$515, $Ruby30__reduce_674$516, $Ruby30__reduce_675$517, $Ruby30__reduce_676$518, $Ruby30__reduce_677$519, $Ruby30__reduce_678$520, $Ruby30__reduce_679$521, $Ruby30__reduce_680$522, $Ruby30__reduce_683$523, $Ruby30__reduce_684$524, $Ruby30__reduce_687$525, $Ruby30__reduce_688$526, $Ruby30__reduce_689$527, $Ruby30__reduce_691$528, $Ruby30__reduce_692$529, $Ruby30__reduce_694$530, $Ruby30__reduce_695$531, $Ruby30__reduce_696$532, $Ruby30__reduce_697$533, $Ruby30__reduce_698$534, $Ruby30__reduce_699$535, $Ruby30__reduce_712$536, $Ruby30__reduce_713$537, $Ruby30__reduce_718$538, $Ruby30__reduce_719$539, $Ruby30__reduce_720$540, $Ruby30__reduce_724$541, $Ruby30__reduce_728$542, $Ruby30__reduce_none$543, clist = nil, racc_action_table = nil, arr = nil, idx = nil, racc_action_check = nil, racc_action_pointer = nil, racc_action_default = nil, racc_goto_table = nil, racc_goto_check = nil, racc_goto_pointer = nil, racc_goto_default = nil, racc_reduce_table = nil, racc_reduce_n = nil, racc_shift_n = nil, racc_token_table = nil, racc_nt_base = nil, racc_use_result_var = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), clist = nil, racc_action_table = nil, arr = nil, idx = nil, racc_action_check = nil, racc_action_pointer = nil, racc_action_default = nil, racc_goto_table = nil, racc_goto_check = nil, racc_goto_pointer = nil, racc_goto_default = nil, racc_reduce_table = nil, racc_reduce_n = nil, racc_shift_n = nil, racc_token_table = nil, racc_nt_base = nil, racc_use_result_var = nil, $proto = self.$$prototype; - self.$$prototype.static_env = self.$$prototype.lexer = self.$$prototype.max_numparam_stack = self.$$prototype.context = self.$$prototype.current_arg_stack = self.$$prototype.builder = self.$$prototype.pattern_variables = self.$$prototype.last_token = self.$$prototype.pattern_hash_keys = nil; + $proto.static_env = $proto.lexer = $proto.max_numparam_stack = $proto.context = $proto.current_arg_stack = $proto.builder = $proto.pattern_variables = $proto.last_token = $proto.pattern_hash_keys = nil; - Opal.def(self, '$version', $Ruby30_version$1 = function $$version() { - var self = this; - - return 30 - }, $Ruby30_version$1.$$arity = 0); + $def(self, '$version', function $$version() { + + return 31 + }, 0); - Opal.def(self, '$default_encoding', $Ruby30_default_encoding$2 = function $$default_encoding() { - var self = this; - - return $$$($$($nesting, 'Encoding'), 'UTF_8') - }, $Ruby30_default_encoding$2.$$arity = 0); + $def(self, '$default_encoding', function $$default_encoding() { + + return $$$($$('Encoding'), 'UTF_8') + }, 0); - Opal.def(self, '$endless_method_name', $Ruby30_endless_method_name$3 = function $$endless_method_name(name_t) { - var self = this, $ret_or_1 = nil; + $def(self, '$endless_method_name', function $$endless_method_name(name_t) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_1 = ["===", "==", "!=", "<=", ">="]['$include?'](name_t['$[]'](0))['$!']()))) { - return name_t['$[]'](0)['$end_with?']("=") - } else { - return $ret_or_1 - }; return nil; })())) { + if (($not(["===", "==", "!=", "<=", ">="]['$include?'](name_t['$[]'](0))) && ($truthy(name_t['$[]'](0)['$end_with?']("="))))) { return self.$diagnostic("error", "endless_setter", nil, name_t) } else { return nil } - }, $Ruby30_endless_method_name$3.$$arity = 1); + }, 1); - Opal.def(self, '$local_push', $Ruby30_local_push$4 = function $$local_push() { + $def(self, '$local_push', function $$local_push() { var self = this; @@ -23079,9 +20201,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.lexer.$cmdarg().$push(false); self.lexer.$cond().$push(false); return self.max_numparam_stack.$push($hash2(["static"], {"static": true})); - }, $Ruby30_local_push$4.$$arity = 0); + }, 0); - Opal.def(self, '$local_pop', $Ruby30_local_pop$5 = function $$local_pop() { + $def(self, '$local_pop', function $$local_pop() { var self = this; @@ -23089,35 +20211,26 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.lexer.$cmdarg().$pop(); self.lexer.$cond().$pop(); return self.max_numparam_stack.$pop(); - }, $Ruby30_local_pop$5.$$arity = 0); + }, 0); - Opal.def(self, '$try_declare_numparam', $Ruby30_try_declare_numparam$6 = function $$try_declare_numparam(node) { - var $$7, self = this, name = nil, $ret_or_2 = nil, $ret_or_3 = nil, location = nil, raw_max_numparam_stack = nil; + $def(self, '$try_declare_numparam', function $$try_declare_numparam(node) { + var self = this, name = nil, location = nil, raw_max_numparam_stack = nil; name = node.$children()['$[]'](0); - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = name['$=~'](/^_[1-9]$/)))) { - return self.$static_env()['$declared?'](name)['$!']() - } else { - return $ret_or_3 - }; return nil; })()))) { - return self.context['$in_dynamic_block?']() - } else { - return $ret_or_2 - }; return nil; })())) { + if ((($truthy(name['$=~'](/^_[1-9]$/)) && ($not(self.$static_env()['$declared?'](name)))) && ($truthy(self.context['$in_dynamic_block?']())))) { location = node.$loc().$expression(); if ($truthy(self.$max_numparam_stack()['$has_ordinary_params?']())) { - self.$diagnostic("error", "ordinary_param_defined", nil, [nil, location])}; + self.$diagnostic("error", "ordinary_param_defined", nil, [nil, location]) + }; raw_max_numparam_stack = self.$max_numparam_stack().$stack().$dup(); raw_max_numparam_stack.$pop(); - (function(){var $brk = Opal.new_brk(); try {return $send(raw_max_numparam_stack, 'reverse_each', [], ($$7 = function(outer_scope){var self = $$7.$$s == null ? this : $$7.$$s, outer_scope_has_numparams = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(raw_max_numparam_stack, 'reverse_each', [], function $$1(outer_scope){var self = $$1.$$s == null ? this : $$1.$$s, outer_scope_has_numparams = nil; - if (outer_scope == null) { - outer_scope = nil; - }; + if (outer_scope == null) outer_scope = nil;; if ($truthy(outer_scope['$[]']("static"))) { Opal.brk(nil, $brk) @@ -23129,7 +20242,7 @@ Opal.modules["parser/ruby30"] = function(Opal) { } else { return nil }; - };}, $$7.$$s = self, $$7.$$brk = $brk, $$7.$$arity = 1, $$7)) + };}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); self.$static_env().$declare(name); self.$max_numparam_stack().$register(name['$[]'](1).$to_i()); @@ -23137,131 +20250,107 @@ Opal.modules["parser/ruby30"] = function(Opal) { } else { return false }; - }, $Ruby30_try_declare_numparam$6.$$arity = 1); - clist = ["-707,680,617,1083,870,965,-120,-707,-707,-707,221,222,805,-707,-707", "-606,-707,104,105,870,231,-113,-606,-116,-707,-707,660,1150,658,-716", "866,-119,-118,1153,-114,1078,-707,-707,617,-707,-707,-707,-707,-707", "-112,-119,232,617,617,920,1124,-118,426,1077,624,-117,870,428,427,810", "-117,232,810,-115,-113,-501,-707,-707,-707,-707,-707,-707,-707,-707", "-707,-707,-707,-707,-707,-707,-606,-112,-707,-707,-707,1084,685,-707", "-703,-117,-707,-120,659,-707,657,106,107,-704,-707,232,-707,229,-707", "-707,232,-707,-707,-707,-707,-707,-602,-707,-707,-707,964,-111,126,-602", "-602,-602,126,125,-602,-602,-602,125,-602,-707,-704,-106,-707,-707,-107", "-707,-602,-707,-602,-602,-602,-113,-110,-109,-707,-105,-113,-116,-602", "-602,617,-602,-602,-602,-602,-602,-116,-114,126,-115,-117,954,-120,125", "-112,-119,-108,126,126,-112,-119,-118,125,125,-106,-104,-118,232,-602", "-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-103", "617,-602,-602,-602,-106,-602,-602,301,852,-602,352,126,-602,-602,479", "-602,125,-602,-120,-602,-716,-602,-602,-120,-602,-602,-602,-602,-602", "-314,-602,1158,-602,301,221,222,-314,-314,-314,920,-703,624,-314,-314", "-106,-314,-602,-106,1159,-602,-602,-602,-602,-314,-602,-716,-602,221", "222,-106,232,-602,949,920,-602,-314,-314,-114,-314,-314,-314,-314,-314", "-120,788,126,221,222,1043,-107,125,-116,-114,366,-115,-117,-116,-114", "301,-115,-117,232,789,1043,300,-314,-314,-314,-314,-314,-314,-314,-314", "-314,-314,-314,-314,-314,-314,301,1043,-314,-314,-314,-611,684,-314", "351,126,-314,300,-611,-314,125,-105,104,105,-314,126,-314,-611,-314", "-314,125,-314,-314,-314,-314,-314,-728,-314,-707,-314,290,-703,-107", "865,679,-707,-707,-707,232,296,-707,-707,-707,-314,-707,126,-314,-314", "1171,-314,125,-314,-707,-707,-707,-707,-707,232,-314,1172,296,-118,300", "-108,-707,-707,-611,-707,-707,-707,-707,-707,-107,-612,1176,-107,-98", "-105,645,-605,-612,645,774,300,1180,645,-605,-107,-84,-612,106,107,-115", "-115,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707", "-707,366,555,-707,-707,-707,645,867,-707,1182,-105,-707,630,-105,-707", "-707,631,-707,1184,-707,555,-707,-108,-707,-707,-105,-707,-707,-707", "-707,-707,-612,-707,-707,-707,647,646,-605,647,646,643,645,647,646,645", "836,1186,645,-707,-110,645,-707,-707,-707,-707,1137,-707,-728,-707,1137", "-314,-119,-108,-707,-614,-108,-116,-314,-314,-314,647,646,-314,-314", "-314,227,-314,-108,1186,-119,838,630,547,-604,-314,895,-314,-314,-314", "876,-604,545,974,-701,872,765,-314,-314,873,-314,-314,-314,-314,-314", "223,647,646,643,647,646,643,647,646,648,647,646,656,852,-613,126,126", "1119,745,-113,125,125,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314", "-314,-314,-314,-314,228,-613,-314,-314,-314,-602,868,-314,-604,1200", "-314,-114,-602,-314,-314,645,-314,-701,-314,1176,-314,-602,-314,-314", "-105,-314,-314,-314,-314,-314,126,-314,220,-314,630,125,-114,-112,895", "582,-701,579,578,577,587,580,680,-314,-103,-607,-314,-314,-314,-314", "590,-314,-607,-314,-704,-707,-112,679,-314,1122,1123,-118,-707,-707", "-707,-703,-602,609,-707,-707,611,-707,585,221,222,647,646,652,-610,-707", "-707,595,594,598,597,-610,949,920,591,-108,90,-707,-707,232,-707,-707", "-707,-707,-707,219,-614,-117,91,582,-106,579,578,577,587,580,-607,645", "92,218,232,135,-115,232,590,1043,1174,-707,-707,-707,-707,-707,-707", "-707,-707,-707,-707,-707,-707,-707,-707,1212,229,-707,-707,-707,585", "685,-707,-610,1186,-707,645,-104,-707,595,594,598,597,-707,1186,-707", "591,-707,-707,-113,-707,-707,-707,-707,-707,-314,-707,-707,-707,890", "891,1186,-314,-314,-314,647,646,661,-314,-314,-608,-314,-707,-111,122", "-707,-707,-608,-107,-314,-707,-609,-602,598,597,-120,576,-707,-609,-602", "-116,-314,-314,1176,-314,-314,-314,-314,-314,1186,647,646,650,582,227", "579,578,577,587,580,-599,627,129,130,131,132,133,-599,590,232,625,-314", "-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-608", "733,-314,-314,-314,585,684,-314,221,222,-314,-609,-602,-314,595,594", "598,597,-314,232,-314,591,-314,-314,232,-314,-314,-314,-314,-314,-599", "-314,609,-314,228,611,254,-599,-599,-599,-599,254,-599,-599,-599,227", "-599,-314,254,254,-314,-314,294,-109,-599,-314,-599,-599,-599,232,609", "576,-314,611,-98,-118,-599,-599,748,-599,-599,-599,-599,-599,232,-315", "561,227,609,-305,227,608,-315,759,226,765,-305,294,766,232,768,-315", "232,224,771,-305,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599", "-599,-599,-599,228,774,-599,-599,-599,775,-599,-599,227,254,-599,777", "779,-599,-599,1152,-599,689,-599,790,-599,791,-599,-599,635,-599,-599", "-599,-599,-599,-315,-599,228,-599,-305,228,129,130,131,132,133,251,-314", "793,296,253,252,-599,795,-314,-599,-599,-599,-599,-704,-599,227,-599", "-314,796,232,798,-599,672,678,-599,323,81,82,83,11,65,670,228,801,71", "72,677,232,806,75,-700,73,74,76,33,34,79,80,129,130,131,132,133,84,31", "30,114,113,115,116,807,582,21,579,578,577,-314,580,10,51,325,12,118", "117,119,108,64,110,109,111,228,112,120,121,-315,104,105,47,48,46,-314", "-315,-599,811,227,271,272,-314,781,-599,-315,557,-704,673,-700,669,-314", "785,-599,43,477,668,36,-287,835,66,67,227,839,68,840,38,666,665,1157", "50,-288,-700,662,254,853,270,269,1155,22,513,637,513,232,102,90,93,94", "870,95,97,96,98,986,-315,871,629,91,101,628,-314,894,-599,590,228,85", "251,92,106,107,253,252,44,45,323,81,82,83,11,65,870,897,418,71,72,899", "290,228,75,-707,73,74,76,33,34,79,80,624,905,907,909,591,84,31,30,114", "113,115,116,527,529,21,529,1004,759,232,613,10,51,325,12,118,117,119", "108,64,110,109,111,612,112,120,121,227,104,105,47,48,46,227,1152,-707", "296,-349,296,759,633,254,-707,635,-349,232,920,-703,602,635,-620,-707", "43,-349,941,36,942,232,66,67,227,562,68,920,38,951,952,476,50,582,-707", "579,578,577,254,580,477,22,232,558,552,232,102,90,93,94,296,95,97,96", "98,986,228,366,962,91,101,366,228,232,-707,590,-349,85,232,92,106,107", "-289,305,44,45,323,81,82,83,11,65,232,548,973,71,72,541,540,228,75,719", "73,74,76,33,34,79,80,246,232,-83,135,591,84,31,30,114,113,115,116,232", "232,21,1000,1004,1001,1002,1005,10,51,325,12,118,117,119,108,64,110", "109,111,529,112,120,121,527,104,105,47,48,46,254,258,259,260,261,271", "272,266,267,262,263,525,247,248,907,1011,264,265,232,43,3,245,36,587", "759,66,67,513,1029,68,-287,38,251,590,257,50,253,252,1033,249,250,270", "269,255,22,256,232,1036,1038,102,90,93,94,774,95,97,96,98,789,1041,1043", "1043,91,101,232,268,598,597,1051,1053,85,591,92,106,107,1062,1063,44", "45,323,81,82,83,11,65,1068,830,831,71,72,832,120,121,75,1069,73,74,76", "33,34,79,80,129,130,131,132,133,84,31,30,114,113,115,116,1070,-290,21", "232,232,232,1074,674,10,51,325,12,118,117,119,108,64,110,109,111,231", "112,120,121,232,104,105,47,48,46,254,258,259,260,261,271,272,266,267", "262,263,232,247,248,232,870,264,265,1082,43,481,480,36,232,1091,66,67", "774,1094,68,1097,38,251,1099,257,50,253,252,1101,249,250,270,269,255", "22,256,232,1103,478,102,90,93,94,1118,95,97,96,98,1119,1128,429,870", "91,101,1138,268,1140,-260,,,85,,92,106,107,,,44,45,323,81,82,83,11,65", ",,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,", ",21,,,,,945,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,247,248", ",,264,265,,43,,,36,587,,66,67,,,68,,38,251,590,257,50,253,252,,249,250", "270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,268,598", "597,,,85,591,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,674,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45", "323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,917,10,51,325,12,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267", "262,263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253", "252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,1133,21,579,578", "577,,580,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,247,248,,", "264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269", "255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,232,268,,,,,85,,92", "106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79", "80,,,,,,84,31,30,114,113,115,116,,1133,21,579,578,577,,580,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45", "323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262", "263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252", ",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45", "323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262", "263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252", ",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,327", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45", "7,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,,10,51,9,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262", "263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252", ",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,582,21,579,578,577", ",580,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,582,,579,578,577,,580,,781,,582,,579,578,577,,580,785,,43,", ",327,,,66,67,,254,68,,38,,,,50,,781,,582,,579,578,577,22,580,785,781", ",102,90,93,94,,95,97,96,98,,,251,,91,101,253,252,,249,250,,85,,92,106", "107,,781,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79", "80,,,,,,84,31,30,114,113,115,116,,,21,,,254,,,10,51,325,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261", "271,272,251,,262,263,253,252,,249,250,264,265,,43,,,36,,,66,67,,,68", ",38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,582,,579,578,577,85,580,92,106,107,,,44,45", "323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,781,,,,,84,31", "30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271,272,", ",-729,-729,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252", ",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74", "76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,-729", "-729,-729,-729,271,272,,,-729,-729,,,,,,264,265,,43,,,327,,,66,67,,", "68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83", "11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115", "116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729,,,,,,264", "265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255", "22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107", ",,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,", ",84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271", "272,,,-729,-729,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253", "252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,,,,85,,92,106,107,,,44,45,7,81,82,83,11,65,,,,71,72,,,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,9,12", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258", "259,260,261,271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36,,", "66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81", "82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,-729", "-729,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250", "270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85", ",92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34", "79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261", "271,272,266,,262,263,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257", "50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,", "10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47", "48,46,254,,,,,,,,,,,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257", "50,253,252,,249,250,,,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,", "73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325", "12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254", "258,259,260,261,271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36", ",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323", "81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114", "113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729", ",,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250", "270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85", ",92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34", "79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261", "271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36,,,66,67,,,68,", "38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94,", "95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729,,,,,,264", "265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255", "22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107", ",,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,", ",84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,47,48,46,254,,,,,,,,,,,,,,,,264,265", ",43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,,,255,22,256", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,254,,,,,,,,,,,,,,,,264,265,,237,,,243,,,66,67,,,68,,,251,,257", "50,253,252,,249,250,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,", ",,,,,85,,92,106,107,-270,,44,45,,,,-270,-270,-270,,,-270,-270,-270,", "-270,254,,,,,,,-270,-270,-270,,,,,,,264,265,,-270,-270,,-270,-270,-270", "-270,-270,,,,,,251,,511,460,253,252,512,249,250,,,,,,169,170,,166,148", "149,150,157,154,156,,,151,152,-270,,,171,172,158,159,-270,,,,,296,-270", ",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,-270", "-270,174,,,,,,,,,,,,,-270,,,-270,,,,,-270,81,82,83,11,65,,-270,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,", "10,51,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,254,,,,,,,,,,,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50", "253,252,,249,250,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81", "82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84", "31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", "317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33", "34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,", ",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-432,,44,45,,,,-432,-432,-432", ",,-432,-432,-432,,-432,,,,,,,,-432,-432,-432,-432,,,,,,,,,-432,-432", ",-432,-432,-432,-432,-432,,,,,,,,,,,,,,,,,,,,,,,-432,-432,-432,-432", "-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,,,-432,-432,-432,", ",-432,,296,-432,,,-432,-432,,-432,,-432,,-432,,-432,-432,,-432,-432", "-432,-432,-432,-321,-432,-432,-432,,,,-321,-321,-321,,,-321,-321,-321", ",-321,-432,,,-432,-432,,-432,-321,-432,-321,-321,,,,,-432,,,,-321,-321", ",-321,-321,-321,-321,-321,,,,,,,,,,,,,,,,,,,,,,,-321,-321,-321,-321", "-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,,,-321,-321,-321,", ",-321,,305,-321,,,-321,-321,,-321,,-321,,-321,,-321,-321,,-321,-321", "-321,-321,-321,,-321,,-321,,,,,,,,,,,,,,-321,,,-321,-321,,-321,,-321", "81,82,83,,65,,-321,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317", "112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,", ",68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34", "79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,", "237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,", ",118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,", ",,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242", ",,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,,,,85,,92,106,107,-306,,44,45,,,,-306,-306,-306,,,-306", "-306,-306,,-306,,,,,,,,-306,,-306,-306,-306,,,,114,113,115,116,-306", "-306,,-306,-306,-306,-306,-306,,,,,118,117,119,,,,,,,,,,,104,105,,,348", "-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,,102,90,93,94,,95,97,96,98,,,", "-306,91,101,-306,-306,-306,-306,,-306,85,-306,92,106,107,,-306,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,21,,,,,,10,51,,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,", ",50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", "317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,314,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,", ",91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345", "79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,", "237,,,243,,,66,67,,,68,,,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,", ",,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45", ",75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51", ",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,", ",,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,126,,,,,125,85,,92,106,107,,,44,45,81", "82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,21,,,,,,10,51,9,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,", ",50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,418,85", ",92,106,107,,,44,45,81,82,83,,65,,,,71,72,,,,75,,73,74,76,33,34,79,80", ",,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79", "80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,", "243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,", ",,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34", "79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,", "10,51,,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21", ",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,232,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,", "51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,", ",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,", "244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,", "51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,", ",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,", "244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,", "51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46", ",,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,312,,50,,,318,,,,,,242", ",,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,742,,,,50,,", ",,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50", ",,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,", ",,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,515,,75,,73,74,76", "33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,", ",,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,", ",,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,", ",,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,232,,,81,82,83,85,65", "92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79", "80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,", "10,51,,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,", ",,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80", ",,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,", "243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33", "34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,561,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45", ",75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,", ",,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,", ",,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,", ",,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80", ",,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64", "110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,742,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,515,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,", ",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,", ",,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45", ",75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,", "51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,", ",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244", ",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244", ",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,312,,50,,", "318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85", "65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317", "112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,", ",68,,742,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345", "79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72,,,,75", ",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51", ",12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,", ",,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,", ",,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,", ",,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113", "115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50", ",,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85", "65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",844,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,", ",,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33", "34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76", "344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,", ",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,", ",,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,", "102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244", ",,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47", "48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318", ",,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314", ",,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,", ",66,67,,,68,,,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,", ",,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,", ",,,,237,,,243,,,66,67,,,68,,742,,,,50,,,318,,,,,,242,,,,,102,315,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-270,,44,45,,,,-270", "-270,-270,,,-270,-270,-270,,-270,,,,,,,,-270,-270,-270,-270,,,,,,,,", "-270,-270,,-270,-270,-270,-270,-270,,,,,,,,,,,,,,,,,,,,,,,-270,-270", "-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,,,-270,-270", "-270,,,-270,,296,-270,,,-270,-270,,-270,,-270,,-270,,-270,-270,,-270", "-270,-270,-270,-270,,-270,-270,-270,,,,,,,,,,,,,,-270,,,-270,-270,,-270", ",-270,81,82,83,,65,,-270,,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66", "67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,,,,85,,92,106,107,-708,,44,45,,,,-708,-708,-708,,,-708,-708,-708", ",-708,,,,,,,,-708,-708,-708,-708,-708,,,,,,,,-708,-708,,-708,-708,-708", "-708,-708,,,,,,,,,,,,,,,,,,,,,,,-708,-708,-708,-708,-708,-708,-708,-708", "-708,-708,-708,-708,-708,-708,,,-708,-708,-708,,,-708,,,-708,,,-708", "-708,,-708,,-708,,-708,,-708,-708,,-708,-708,-708,-708,-708,,-708,-708", "-708,,,,,,,,,,,,,,-708,,,-708,-708,-708,-708,,-708,-709,-708,,,,,-708", "-709,-709,-709,,,-709,-709,-709,,-709,,,,,,,,-709,-709,-709,-709,-709", ",,,,,,,-709,-709,,-709,-709,-709,-709,-709,,,,,,,,,,,,,,,,,,,,,,,-709", "-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,,,-709", "-709,-709,,,-709,,,-709,,,-709,-709,,-709,,-709,,-709,,-709,-709,,-709", "-709,-709,-709,-709,,-709,-709,-709,,,,,,,,,,,,,,-709,,,-709,-709,-709", "-709,,-709,,-709,,81,82,83,-709,65,,,,71,72,,,,75,,73,74,76,344,345", "79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,", ",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74", "76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,", ",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118", "117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,", ",,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,", "102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,", ",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,", ",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67", ",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,", ",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243", ",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79", "80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64", "110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237", ",,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95", "97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71", "72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,", ",,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,418,85,,92,106,107,,,44", "45,81,82,83,,65,,,,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109", "111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,", ",66,67,,,68,,,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344", "345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119", "108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,", ",,,,237,,,243,,,66,67,,,68,,742,,312,,50,,,318,,,,,,242,,,,,102,315", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,", ",,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46", ",,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,,,,242,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244", ",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48", "46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116", ",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104", "105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50", ",,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30", "114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31", "30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68", ",,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84", "339,347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,1105,,,243,,,66,67", ",,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339", "347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,393,,,36,,,66,67,,,68", ",38,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347", "114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,", ",,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85", "65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114", "113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,", ",,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113", "115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,", ",,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106", "107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,331,,,,,,,,,,,", ",,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106", "107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,,,,,,", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116", ",,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", ",,348,,,,,,,,,,,,,,,,,,,,1105,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244", ",,,,,,340,,,118,117,119,398,64,110,109,399,,112,120,121,,104,105,,,348", ",,,,,,,,,,,,,,,,405,,,400,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", ",,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244", ",,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,348", ",,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,", "75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,", ",,,340,,,118,117,119,398,64,110,109,399,,112,120,121,,104,105,,,348", ",,,,,,,,,,,,,,,,,,,400,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,", "75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,", ",,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,348", ",,,,,,,,,,,,,,,,,,,336,,,243,,,66,67,,,68,,,582,,579,578,577,587,580", ",,,,,,,,590,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,350,,585,85,,92", "106,107,81,82,83,,65,598,597,,71,72,591,,,75,,73,74,76,344,345,79,80", ",,,,,84,339,347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,243", ",,66,67,,,68,,,582,,579,578,577,587,580,,,,,,,,,590,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,543,,585,85,,92,106,107,81,82,83,,65,598,597", ",71,72,591,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115", "116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,,,348,,,,,,,,,,,,,,,,,,,,1111,,,243,,,66,67,,,68,,,,,,,,,,,,,,,", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,185,196", "186,209,182,202,192,191,212,213,207,190,189,184,210,214,215,194,183", "197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,", "180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169,170,,166,148,149", "150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162,,147", "168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,,,,,,,,,,101", "185,196,186,209,182,202,192,191,212,213,207,190,189,184,210,214,215", "194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199", ",,,,,180,187,178,179,175,176,177,138,140,137,,139,,,,,,,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163", "162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,", ",,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189,184", "210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193", "181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169", "170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,", ",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174", "102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190", "189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198", "208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,", ",,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167", "146,,,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213", "207,190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206", "284,283,285,282,181,200,199,,,,,,180,187,178,179,279,280,281,277,140", "110,109,278,,112,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152", ",,,171,172,158,159,,,,,,289,,,,,,,,163,162,,147,168,165,164,173,160", "161,155,153,145,167,146,,,174,114,113,115,116,,,,,,,,,,,,,118,117,119", "719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,", ",,721,,,703,,,585,701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,", "707,708,,118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348", ",,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,595,594,598,597", ",,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116", ",,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579,578,577,587", "580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,", ",,,,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114", "113,115,116,,,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579", "578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585", "701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117,119", "719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,", ",,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,,,720,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708", ",118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590", ",,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,885,,,,,598,597,,,,591,,,", "720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92", "106,107,,,707,708,,118,117,119,719,,,582,722,579,578,577,587,580,104", "105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,,,598", "597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,", "92,106,107,,,707,708,185,196,186,209,182,202,192,191,212,213,207,190", "189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198", "208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,", ",,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167", "146,,,174,114,113,115,116,,,582,,579,578,577,587,580,,,,118,117,119", "719,,590,,722,986,,,,,104,105,,,348,590,,,,,,,,,585,,,,,,,,,,721,598", "597,703,,,591,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94,,95", "97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118", "117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,", ",,,,,,,,,,721,,,703,,,585,701,,,702,,885,,,595,594,598,597,,,,591,,", ",720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,232,114,113,115,116,,85", ",92,106,107,,,707,708,,,118,117,119,719,,,582,722,579,578,577,587,580", "104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,595", "594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114", "113,115,116,,,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579", "578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585", "701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117,119", "719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,", ",,721,,,703,,,585,701,,,702,,999,,,,,598,597,,,,591,,,,720,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707", "708,,118,117,119,719,,,,722,986,,,,,104,105,,,348,590,,,,,,,,,,,,,,", ",,,,721,,,703,,,,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94", ",95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,", "118,117,119,719,,,,722,986,,,,,104,105,,,348,590,,,,,,,,,,,,,,,,,,,721", ",,703,,,,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94,,95,97", "96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117", "119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,", ",,,,,,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,,,720,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707", "708,,118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,", "590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,", ",720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92", "106,107,,,707,708,,118,117,119,719,,,,722,,,,,,104,105,,,348,,,,,,,", "114,113,115,116,,,,,,,,,721,,,703,118,117,119,701,,,702,,885,,,,,104", "105,,,348,,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,", "92,106,107,,,707,708,582,,579,578,577,587,580,,,,,102,90,93,94,590,95", "97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,585,641,,,,118", "117,119,,595,594,598,597,,,,591,,104,105,,,348,114,113,115,116,,,,,", ",,,,,,,118,117,119,,,,,,,,,,,104,105,,,348,,,,,,,,,,,,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,,,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,846,460,,,847,,85,,92,106,107,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,", ",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,814,460,174", ",815,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172", "158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153", "145,167,146,456,460,174,,457,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165", "164,173,160,161,155,153,145,167,146,463,467,174,,462,,,,,,,,169,170", ",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,", ",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,816,467", "174,,817,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171", "172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155", "153,145,167,146,755,467,174,,756,,,,,,,,169,170,,166,148,149,150,157", "154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168", "165,164,173,160,161,155,153,145,167,146,690,460,174,,691,,,,,,,,169", "170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296", ",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,1190", "467,174,,1189,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152", ",,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160", "161,155,153,145,167,146,819,467,174,,820,,,,,,,,169,170,,166,148,149", "150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162", ",147,168,165,164,173,160,161,155,153,145,167,146,690,460,174,,691,,", ",,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159", ",,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167", "146,692,467,174,,693,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151", "152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173", "160,161,155,153,145,167,146,752,460,174,,753,,,,,,,,169,170,,166,148", "149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163", "162,,147,168,165,164,173,160,161,155,153,145,167,146,511,460,174,,512", ",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145", "167,146,1193,460,174,,1194,,,,,,,,169,170,,166,148,149,150,157,154,156", ",,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164", "173,160,161,155,153,145,167,146,692,467,174,,693,,,,,,,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,", ",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,1195,467,174", ",1196,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172", "158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153", "145,167,146,849,467,174,,848,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165", "164,173,160,161,155,153,145,167,146,,582,174,579,578,577,587,580,,582", ",579,578,577,587,580,590,,,,,,,,590,,,,,,,,,,,,,,585,,,,,,,,585,595", "594,598,597,,,,591,595,594,598,597,,,,591"]; - racc_action_table = (arr = $$$('::', 'Array').$new(28007, nil)); + }, 1); + clist = ["-320,600,620,-119,1214,-121,-118,-320,-320,-320,221,222,1124,-320,-320", "-624,-320,239,620,-123,620,925,-624,-110,-320,-732,237,428,-124,311", "122,-122,430,429,717,311,-320,-320,620,-320,-320,-320,-320,-320,-116", "-117,-124,620,620,-116,1001,828,718,627,892,925,627,126,240,-732,-123", "833,125,-117,240,240,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320", "-320,-320,-320,-320,-624,-123,-320,-320,-320,-124,687,-320,-119,-110", "-320,-121,-120,-320,1125,240,-720,135,-320,306,-320,-511,-320,-320,240", "-320,-320,-320,-320,-320,-320,-320,-110,-320,-112,-109,310,-320,-320", "-320,126,-120,310,-320,-320,125,-320,-320,-114,-110,-320,-320,-110,-113", "-320,-320,126,-115,126,990,-113,125,-320,125,-110,-122,-320,-320,-122", "-320,-320,-320,-320,-320,-118,126,126,-719,-107,1000,125,125,-116,-117", "-124,126,126,-116,-117,-124,125,125,-108,221,222,218,-320,-320,-320", "-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,221,222,-320", "-320,-320,311,687,-320,-719,-123,-320,-111,661,-320,-123,648,-119,925", "-320,-121,-320,-119,-320,-320,-121,-320,-320,-320,-320,-320,233,-320", "-723,-320,-628,-720,-629,221,222,-723,-723,-723,104,105,-723,-723,-723", "-320,-723,-120,-320,-320,-102,-320,-120,-320,-723,-723,-723,-723,-723", "663,-320,924,-88,-122,219,-112,-723,-723,522,-723,-723,-723,-723,-723", "-122,240,660,650,649,-122,-118,-111,-109,220,-744,-118,311,648,233,223", "310,-116,240,-117,1063,300,-723,-723,-723,-723,-723,-723,-723,-723,-723", "-723,-723,-723,-723,-723,233,682,-723,-723,-723,648,921,-723,106,107", "-723,104,105,-723,-723,662,-723,-124,-723,126,-723,-112,-723,-723,125", "-723,-723,-723,-723,-723,361,-723,-723,-723,-744,683,-719,-111,-109", "648,306,650,649,646,648,362,648,-723,-110,648,-723,-723,-723,-723,240", "-723,-744,-723,800,-320,-119,-112,-723,310,-112,-120,-320,-320,-320", "650,649,-320,-320,-320,892,-320,-112,-111,-109,859,-111,-109,-112,-320", "833,-320,-320,-320,875,106,107,919,-111,-109,-121,-320,-320,431,-320", "-320,-320,-320,-320,650,649,646,949,471,650,649,650,649,655,650,649", "653,920,1035,861,633,1063,233,-732,634,948,-320,-320,-320,-320,-320", "-320,-320,-320,-320,-320,-320,-320,-320,-320,240,-629,-320,-320,-320", "648,922,-320,-118,-635,-320,-119,-625,-320,-320,648,-320,-617,-320,-625", "-320,510,-320,-320,-617,-320,-320,-320,-320,-320,683,-320,682,-320,507", "506,-121,-118,-744,491,648,488,487,486,496,489,521,-320,-108,-623,-320", "-320,-320,-320,499,-320,-623,-320,126,-723,-117,612,-320,125,614,-122", "-723,-723,-723,650,649,651,-723,-723,633,-723,494,-625,960,650,649,664", "-617,-723,-723,504,503,507,506,-121,633,-119,500,523,960,-723,-723,524", "-723,-723,-723,-723,-723,239,650,649,659,491,-321,488,487,486,496,489", "-623,-321,600,491,240,488,487,486,499,489,-321,-723,-723,-723,-723,-723", "-723,-723,-723,-723,-723,-723,-723,-723,-723,558,-628,-723,-723,-723", "494,688,-723,570,126,-723,648,572,-723,125,710,507,506,-723,574,-723", "500,-723,-723,-114,-723,-723,-723,-723,-723,-614,-723,-723,-723,-321", "126,-123,-614,-614,-614,125,135,-614,-614,-614,-614,-614,-723,-107,-87", "-723,-723,-614,-723,-614,-723,-614,-614,-614,931,-116,485,-723,240,927", "-120,-614,-614,928,-614,-614,-614,-614,-614,585,650,649,646,586,-311", "227,-620,-621,227,950,951,-311,304,-620,-621,304,612,593,237,611,-311", "-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614", "-614,227,-614,-614,-614,227,-614,-614,592,315,-614,240,1188,-614,-614", "233,-614,590,-614,126,-614,638,-614,-614,125,-614,-614,-614,-614,-614", "-115,-614,-617,-614,-311,228,-620,-621,228,-617,-617,-617,-124,233,-617", "-617,-617,-614,-617,306,-614,-614,-614,-614,597,-614,-617,-614,-617", "-617,-617,612,-614,603,614,-614,228,264,-617,-617,228,-617,-617,-617", "-617,-617,606,227,240,227,615,-356,-619,-622,675,616,636,574,-356,-619", "-622,612,627,673,614,638,420,-356,-617,-617,-617,-617,-617,-617,-617", "-617,-617,-617,-617,-617,-617,-617,631,754,-617,-617,-617,227,-617,-617", "1149,1150,-617,499,630,-617,-617,632,-617,875,-617,640,-617,628,-617", "-617,665,-617,-617,-617,-617,-617,228,-617,228,-617,-356,-619,-622,668", "227,669,954,240,958,957,1197,1188,959,-617,-293,500,-617,-617,-617,-617", "638,-617,671,-617,672,-723,676,1056,-617,240,-109,-617,-723,-723,-723", "496,228,680,-723,-723,-320,-723,-118,956,264,499,681,-320,306,-723,-723", "694,-720,985,892,695,-320,114,113,115,116,-723,-723,240,-723,-723,-723", "-723,-723,228,221,222,697,118,117,119,261,700,507,506,263,262,701,500", "703,264,104,105,221,222,358,-723,-723,-723,-723,-723,-723,-723,-723", "-723,-723,-723,-723,-723,-723,-320,705,-723,-723,-723,-385,688,-723", "227,719,-723,720,261,-723,227,1164,263,262,-723,724,-723,226,-723,-723", "1162,-723,-723,-723,-723,-723,224,-723,-723,-723,726,102,90,93,94,732", "95,97,96,98,754,985,892,-723,91,101,-723,-723,90,-111,499,-723,85,733", "92,106,107,264,-723,264,91,-120,333,81,82,83,11,65,264,228,92,71,72", "264,240,228,75,-723,73,74,76,35,36,79,80,788,240,240,500,240,84,33,32", "114,113,115,116,-102,803,23,1056,240,606,281,282,10,53,335,12,118,117", "119,108,64,110,109,111,814,112,120,121,-320,104,105,49,50,48,-321,-320", "-723,819,-626,240,-720,-321,821,-723,-320,-626,280,279,-719,824,-321", "829,-723,45,-626,830,38,834,858,66,67,227,862,68,863,40,-294,876,602", "52,491,-723,488,487,486,558,489,520,24,558,888,892,910,102,90,93,94", "913,95,97,96,98,914,-320,240,917,91,101,240,-321,926,-723,943,-626,85", "944,92,106,107,945,962,46,47,333,81,82,83,11,65,964,300,970,71,72,972", "974,228,75,-716,73,74,76,35,36,79,80,572,574,496,814,240,84,33,32,114", "113,115,116,499,1159,23,488,487,486,306,489,10,53,335,12,118,117,119", "108,64,110,109,111,306,112,120,121,227,104,105,49,50,48,-627,519,-614", "507,506,814,264,-627,500,-614,520,892,987,988,-716,240,-627,240,-614", "45,998,240,38,-295,240,66,67,1009,1013,68,1159,40,488,487,486,52,489", "-716,-293,491,1017,488,487,486,24,489,700,718,1020,102,90,93,94,1022", "95,97,96,98,1024,228,1026,1026,91,101,240,-627,774,-614,240,240,85,1054", "92,106,107,1057,710,46,47,333,81,82,83,11,65,714,853,854,71,72,855,120", "121,75,-717,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32,114,113", "115,116,925,491,23,488,487,486,972,489,10,53,335,12,118,117,119,108", "64,110,109,111,1069,112,120,121,240,104,105,49,50,48,814,491,-617,488", "487,486,1086,489,710,-617,1088,1093,1094,1099,-717,1100,1101,714,-617", "45,-296,1114,38,1115,1116,66,67,240,240,68,240,40,240,240,240,52,925", "-717,710,491,1123,488,487,486,24,489,240,714,1129,102,90,93,94,1130", "95,97,96,98,1132,700,1135,1138,91,101,1140,1142,240,-617,-385,1154,85", "1165,92,106,107,1166,710,46,47,333,81,82,83,11,65,1026,1026,1026,71", "72,1173,1186,1189,75,1194,73,74,76,35,36,79,80,256,1195,694,1115,1205", "84,33,32,114,113,115,116,1205,700,23,129,130,131,132,133,10,53,335,12", "118,117,119,108,64,110,109,111,1208,112,120,121,1210,104,105,49,50,48", "264,268,269,270,271,281,282,276,277,272,273,1212,257,258,1214,1214,274", "275,240,45,1026,255,38,1205,-720,66,67,-719,1231,68,1214,40,261,1214", "267,52,263,262,1214,259,260,280,279,265,24,266,3,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32", "114,113,115,116,,,23,,,,,677,10,53,335,12,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277", "272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263", "262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,278,,-265,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72", ",,,75,,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32,114,113,115", "116,,,23,,,,,889,10,53,335,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257", "258,,,274,275,,45,,,337,,,66,67,,,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,", "85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35", "36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,677,10,53,335,12,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269", "270,271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,337,,,66,67", ",,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,918,10,53,335,12,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273", ",257,258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259", "260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278", ",,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74", "76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268", "269,270,271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66", "67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81", "82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257", "258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,", "85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35", "36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270", "271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68", ",40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,7,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258,,", "274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279", "265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,240,278,,,,,85,,92", "106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79", "80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271", "281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258", ",,274,275,,45,,,337,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280", "279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,", "92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271", "281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258", ",,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280", "279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,", "92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271", "281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745,-745", ",,274,275,,45,,,38,,,66,67,,264,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,261,,91,101,263,262", ",259,260,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,", "73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,264,491,23,488,487", "486,,489,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,264,,261,,,,263,262,710,259,260,,,,,,274,275,,45,,,38,", ",66,67,,,68,,40,261,,267,52,263,262,,259,260,,,265,24,266,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745", "-745,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85", ",92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271", "281,282,276,277,272,273,,-745,-745,,,274,275,,45,,,38,,,66,67,,,68,", "40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,", "95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,", "104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,,,265,24,266,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71", "72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,", ",,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,264,268,269,270,271,281,282,276,,272,273,,,,,,274,275,,45,", ",38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47", "7,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,264,268,269,270,271,281,282,,,272,273", ",,,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260", "280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85", ",92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,-745,-745,-745", "-745,281,282,,,-745,-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40,261", ",267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71", "72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,", ",,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274,275,,45", ",,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47", "333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745", "-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259", "260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,", ",85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76", "35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,-745,-745", "-745,-745,281,282,,,-745,-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40", "261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65", ",,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,", ",23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274,275", ",45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24", "266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106", "107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113", "115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274", "275,,245,,,253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,280,279,265", "250,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745", "-745,,,274,275,,245,,,253,,,66,67,,,68,,,261,,267,52,263,262,,259,260", "280,279,265,250,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,245,", ",253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,,,,250,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47", ",75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,", ",,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,264,,,,,,,,,,,,,,,,274,275,,245,,,253,,,66,67,,,68,,,261,,,52,263", "262,,259,260,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,245,", ",253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,,,,250,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,", ",,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79", "80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,", "254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,436,,,,52,,,,,,", ",,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79", "80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35", "36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,,,,85,,92,106,107,-441,,46,47,,,,-441,-441,-441", ",,-441,-441,-441,,-441,,,,,,,,-441,-441,-441,-441,,,,,,,,,-441,-441", ",-441,-441,-441,-441,-441,,,,,,,,,,,,,,,,,,,,,,,-441,-441,-441,-441", "-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,,,-441,-441,-441,", ",-441,,306,-441,,,-441,-441,,-441,,-441,,-441,,-441,-441,,-441,-441", "-441,-441,-441,,-441,-441,-441,,,,,,,,,,,,,,-441,,,-441,-441,,-441,", "-441,81,82,83,,65,,-441,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,", "81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,", ",84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,", ",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,", ",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,", ",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-327,,46,47,,,,-327", "-327,-327,,,-327,-327,-327,,-327,,,,,,,,-327,,-327,-327,,,,,,,,,-327", "-327,,-327,-327,-327,-327,-327,,,,,,,,,,,,,,,,,,,,,,,-327,-327,-327", "-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,,,-327,-327,-327", ",,-327,,315,-327,,,-327,-327,,-327,,-327,,-327,,-327,-327,,-327,-327", "-327,-327,-327,,-327,,-327,,,,,,,,,,,,,,-327,,,-327,-327,,-327,,-327", "81,82,83,,65,,-327,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355", "79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,", "245,,,253,,,66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,", ",52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36", "79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,797,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,", ",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,", ",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,867,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82", "83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,", ",52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,", "91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355", "79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35", "36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,", ",,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,", ",,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,", ",,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,", ",,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76", "354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,", ",,,,,245,,,253,,,66,67,,,68,,324,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,", ",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47", ",75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,", ",,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49", "50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,328,,,,,,250", ",,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121", ",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,797,,,", "52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,240,,,81", "82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,", "84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,", ",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47", ",75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49", "50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328", ",,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106", "107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,", ",84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38", ",,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,", "91,101,,,,,,420,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,", "73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53", ",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,", ",,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121", ",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,322,", "52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,", ",66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76", "354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,", ",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,", ",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,", ",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46", "47,,,,-275,-275,-275,,,-275,-275,-275,491,-275,488,487,486,496,489,", ",-275,-275,-275,,,,499,,,,,,-275,-275,,-275,-275,-275,-275,-275,,491", ",488,487,486,496,489,494,,,,,,,,499,504,503,507,506,,,,500,,491,,488", "487,486,496,489,-275,,,,,494,,-275,499,,,,306,-275,504,503,507,506,", ",,500,,,,,,,,,494,485,,,,-275,-275,,,,,507,506,,,,500,,,,-275,,,-275", ",81,82,83,-275,65,,485,,71,72,-275,,,75,,73,74,76,354,355,79,80,,,,", ",84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79", "80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,", ",,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121", ",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52", ",,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,", ",,,,245,,,253,,,66,67,,,68,,324,,,,52,,,328,,,,,,250,,,,,102,325,93", "94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11", "65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,", ",,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113", "115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52", ",,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,", ",,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,", ",,,,245,,,253,,,66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "560,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49", "50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328", ",,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,46,560,,75,,73,74,76,354,355,79,80,,,,,,84,349,357", "114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84", "349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109", "111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66", "67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,", ",,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76", "35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,", ",,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325", "93,94,,95,97,96,98,,,,,91,101,240,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,", "254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,", ",,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79", "80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108", "64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245", ",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98", ",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,", "53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,", ",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,", "254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,", ",,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92", "106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74", "76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,,12,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75", ",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,", "118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,", ",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47", ",75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53", ",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,", ",,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,", ",,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48", ",,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", "46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,", ",,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,", "102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47", "81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114", "113,115,116,,,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40", ",,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,420,85", ",92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80", ",,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110", "109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253", ",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96", "98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76", "35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118", "117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,", ",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94", ",95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-725,,46,47,,,,-725,-725", "-725,,,-725,-725,-725,,-725,,,,,,,,-725,-725,-725,-725,-725,,,,,,,,-725", "-725,,-725,-725,-725,-725,-725,,,,,,,,,,,,,,,,,,,,,,,-725,-725,-725", "-725,-725,-725,-725,-725,-725,-725,-725,-725,-725,-725,,,-725,-725,-725", ",,-725,,,-725,,,-725,-725,,-725,,-725,,-725,,-725,-725,,-725,-725,-725", "-725,-725,,-725,-725,-725,,,,,,,,,,,,,,-725,,,-725,-725,-725,-725,,-725", "-724,-725,,,,,-725,-724,-724,-724,,,-724,-724,-724,,-724,,,,,,,,-724", "-724,-724,-724,-724,,,,114,113,115,116,-724,-724,,-724,-724,-724,-724", "-724,,,,,118,117,119,,,,,,,,,,,104,105,,,358,-724,-724,-724,-724,-724", "-724,-724,-724,-724,-724,-724,-724,-724,-724,,,-724,-724,-724,,,-724", ",,-724,,,-724,-724,,-724,,-724,,-724,,-724,-724,,-724,-724,-724,-724", "-724,,-724,-724,-724,,102,90,93,94,,95,97,96,98,,,,-724,91,101,-724", "-724,-724,-724,,-724,85,-724,92,106,107,-275,-724,81,82,83,11,65,-275", "-275,-275,71,72,-275,-275,-275,75,-275,73,74,76,35,36,79,80,-275,-275", "-275,-275,,84,33,32,114,113,115,116,-275,-275,23,-275,-275,-275,-275", "-275,10,53,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275", "-275,-275,,,-275,-275,-275,45,,-275,38,306,-275,66,67,-275,-275,68,-275", "40,-275,,-275,52,-275,-275,,-275,-275,-275,-275,-275,24,-275,-275,-275", ",102,90,93,94,,95,97,96,98,,,,-275,91,101,-275,-275,,-275,,-275,85,", "92,106,107,,-275,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79", "80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,", ",,91,101,126,,,,,125,85,,92,106,107,-312,,46,47,,,,-312,-312,-312,,", "-312,-312,-312,,-312,,,,,,,,-312,,-312,-312,-312,,,,,,,,-312,-312,,-312", "-312,-312,-312,-312,,,,,,,,,,,,,,,,,,,,,,,-312,-312,-312,-312,-312,-312", "-312,-312,-312,-312,-312,-312,-312,-312,,,-312,-312,-312,,,-312,,,-312", ",,-312,-312,,-312,,-312,,-312,,-312,-312,,-312,-312,-312,-312,-312,", "-312,,-312,,,,,,,,,,,,,,-312,,,-312,-312,-312,-312,,-312,,-312,,81,82", "83,-312,65,,,,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,", ",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33", "32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,", "112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,", ",68,,436,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,", "253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,", ",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354", "355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119", "108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,", ",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74", "76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117", "119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,", ",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73", "74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,", ",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,", ",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46", "47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50", "48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,", ",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71", "72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", "49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250", ",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107", "71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116", ",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104", "105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52", ",,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32", "114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68", ",436,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81", "82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84", "33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67", ",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,", ",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,", ",,,,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1107,,,253", ",,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,", ",,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1146,,,253,,", "66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,", ",,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,", ",84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,253,,,66", "67,,,68,,,491,,488,487,486,496,489,,,,,,,,,499,,102,90,93,94,,95,97", "96,98,,,,,91,101,,,,588,,494,85,,92,106,107,81,82,83,,65,507,506,,71", "72,500,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116", ",,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105", ",,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72", ",,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254", ",,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,358", ",,,,,,,,,,,,,,,,,,,346,,,253,,,66,67,,,68,,,491,,488,487,486,496,489", ",,,,,,,,499,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,360,,494,85,,92", "106,107,81,82,83,,65,507,506,,71,72,500,,,75,,73,74,76,354,355,79,80", ",,,,,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64", "110,109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342", ",,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101", ",,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,", ",,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110", "109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66", "67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81", "82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1146,,,253,,,66,67,,", "68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,400,64,110,109,401", ",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,407,,,402,,,253,,,66,67", ",,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82", "83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349", "357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111", ",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68", ",,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83", "85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357", "114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112", "120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,,", ",,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85", "65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114", "113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120", "121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,341,,", ",,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65", "92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113", "115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121", ",104,105,,,358,,,,,,,,,,,,,,,,,,,,395,,,38,,,66,67,,,68,,40,,,,,,,,", ",,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106", "107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115", "116,,,254,,,,,,,350,,,118,117,119,400,64,110,109,401,,112,120,121,,104", "105,,,358,,,,,,,,,,,,,,,,,,,,402,,,253,,,66,67,,,68,,,,,,,,,,,,,,,,", ",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,185,196", "186,209,182,202,192,191,212,213,207,190,189,184,210,214,215,194,183", "197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,", "180,187,178,179,175,176,177,138,140,137,,139,,,,,,,,169,170,,166,148", "149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162", ",147,168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,,,,,", ",,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189,184,210", "214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193,181", "200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169,170", ",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,", ",,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174,102", ",,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189", "184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208", "193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,", ",,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159", ",,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146", ",,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207", "190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205", "198,208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139", ",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167", "146,,,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213", "207,190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206", "294,293,295,292,181,200,199,,,,,,180,187,178,179,289,290,291,287,140", "110,109,288,,112,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152", ",,,171,172,158,159,,,,,,299,,,,,,,,163,162,,147,168,165,164,173,160", "161,155,153,145,167,146,,,174,114,113,115,116,,,,,,491,,488,487,486", "496,489,118,117,119,774,,,,777,499,,,,,104,105,,,358,,,,,,,,,,,,,494", ",,,,,,776,,,747,507,506,,745,,500,746,,,,,,,,,,,,,,,,775,,,,102,90,93", "94,,95,97,96,98,,,,,91,101,114,113,115,116,485,,85,,92,106,107,,,762", "763,,118,117,119,774,,,491,777,488,487,486,496,489,104,105,,,358,,,", "499,,,,,,,,,,,,,,,,776,,,747,,,494,745,,,746,,,,,504,503,507,506,,,", "500,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,", ",85,,92,106,107,,,762,763,,118,117,119,774,,,491,777,488,487,486,496", "489,104,105,,,358,,,,499,,,,,,,,,,,,,,,,776,,,747,,,494,745,,,746,,749", ",,504,503,507,506,,,,500,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91", "101,114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,,777", "754,,,,,104,105,,,358,499,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,", "749,,,,,,,500,,,,,,,775,,,,102,755,93,94,,95,97,96,98,,,,,91,101,114", "113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,491,777,488", "487,486,496,489,104,105,,,358,,,,499,,,,,,,,,,,,,,,,776,,,747,,,494", "745,,,746,,,,,504,503,507,506,,,,500,,,,775,,,,102,90,93,94,,95,97,96", "98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119", "774,,,491,777,488,487,486,496,489,104,105,,,358,,,,499,,,,,,,,,,,,,", ",,776,,,747,,,494,745,,,746,,749,,,,,507,506,,,,500,,,,775,,,,102,90", "93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762", "763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776", ",,747,,,,745,,,746,,749,,,,,,,491,,488,487,486,496,489,775,,,,102,90", "93,94,499,95,97,96,98,,,,,91,101,240,114,113,115,116,,85,,92,106,107", "494,,762,763,,,118,117,119,774,,507,506,777,,,500,,,104,105,,,358,,", ",,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,485,,,,,,,,,,,,,775,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,", "762,763,,118,117,119,774,,,,777,754,,,,,104,105,,,358,499,,,,,,,,,,", ",,,,,,,,776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775,,,,102,755,93", "94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763", ",118,117,119,774,,,,777,754,,,,,104,105,,,358,499,,,,,,,,,,,,,,,,,,", "776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775,,,,102,755,93,94,,95", "97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,762,763,185,196,186,209,182", "202,192,191,212,213,207,190,189,184,210,214,215,194,183,197,201,203", "195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,,180,187,178", "179,175,176,177,138,140,,,139,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162,,147,168,165,164", "173,160,161,155,153,145,167,146,,,174,114,113,115,116,,,491,,488,487", "486,496,489,,,,118,117,119,774,,499,,777,754,,,,,104,105,,,358,499,", ",,,,,,,494,,,,,,,,,,776,507,506,747,,,500,745,,,746,,749,,,,,,,500,", ",,,,,775,,,,102,755,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,", "85,,92,106,107,,,762,763,,118,117,119,774,,,,777,754,,,,,104,105,,,358", "499,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775", ",,,102,755,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106", "107,,,762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,", ",,,,,,,,776,,,747,,,,745,,,746,,,,,,,,,,,,,,,,775,,,,102,90,93,94,,95", "97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763,,118", "117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776,,,747,", ",,745,,,746,,,,,,,,,,,,,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101", "114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,,777,", ",,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,,,,,,", ",,,,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,", ",85,,92,106,107,,,762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358", ",,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,,,,,,,,,,,,,,775,,,,102", "90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,", "762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,114,113,115", "116,,,,,,,,,776,,,747,118,117,119,745,,,746,,1053,,,,,104,105,,,358", ",,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107", ",,762,763,491,,488,487,486,496,489,,,,,102,90,93,94,499,95,97,96,98", ",,,,91,101,114,113,115,116,,,85,,92,106,107,494,,,,,118,117,119,,504", "503,507,506,,,,500,,104,105,,,358,,,,,,,,,,,,491,,488,487,486,496,489", ",,,,,,,,499,,,,,,491,485,488,487,486,496,489,,,,,,,,,499,494,102,90", "93,94,,95,97,96,98,,507,506,,91,101,500,,,,,494,85,,92,106,107,,,,504", "503,507,506,,,491,500,488,487,486,496,489,,491,,488,487,486,496,489", "499,,,,,485,,,499,,491,,488,487,486,496,489,,,,,,494,644,,499,485,,", ",494,504,503,507,506,,,,500,504,503,507,506,,,,500,494,,,,,,,,,504,503", "507,506,,,491,500,488,487,486,496,489,,,,,,,,,499,485,,,,,,,,485,,,", ",,,,,,,,,494,,,,485,,,,,,,507,506,872,469,,500,871,,,,,,,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,485", ",,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,842,469,174", ",843,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172", "158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153", "145,167,146,837,462,174,,838,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165", "164,173,160,161,155,153,145,167,146,465,469,174,,464,,,,,,,,169,170", ",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,", ",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,729,469", "174,,730,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171", "172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155", "153,145,167,146,556,462,174,,557,,,,,,,,169,170,,166,148,149,150,157", "154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168", "165,164,173,160,161,155,153,145,167,146,458,462,174,,459,,,,,,,,169", "170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306", ",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,556", "462,174,,557,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,", ",,171,172,158,159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161", "155,153,145,167,146,729,469,174,,730,,,,,,,,169,170,,166,148,149,150", "157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147", "168,165,164,173,160,161,155,153,145,167,146,727,462,174,,728,,,,,,,", "169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,", ",,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146", "807,462,174,,808,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152", ",,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160", "161,155,153,145,167,146,810,469,174,,811,,,,,,,,169,170,,166,148,149", "150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162", ",147,168,165,164,173,160,161,155,153,145,167,146,1200,462,174,,1201", ",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158", "159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145", "167,146,869,462,174,,870,,,,,,,,169,170,,166,148,149,150,157,154,156", ",,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164", "173,160,161,155,153,145,167,146,1202,469,174,,1203,,,,,,,,169,170,,166", "148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,", ",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,839,469,174", ",840,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172", "158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153", "145,167,146,1218,469,174,,1217,,,,,,,,169,170,,166,148,149,150,157,154", "156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165", "164,173,160,161,155,153,145,167,146,727,462,174,,728,,,,,,,,169,170", ",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,", ",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174"]; + racc_action_table = (arr = $$$('Array').$new(28717, nil)); idx = 0; - $send(clist, 'each', [], ($Ruby30$8 = function(str){var self = $Ruby30$8.$$s == null ? this : $Ruby30$8.$$s, $$9; - + $send(clist, 'each', [], function $Ruby31$2(str){ - if (str == null) { - str = nil; - }; - return $send(str.$split(",", -1), 'each', [], ($$9 = function(i){var self = $$9.$$s == null ? this : $$9.$$s, $writer = nil; + if (str == null) str = nil;; + return $send(str.$split(",", -1), 'each', [], function $$3(i){var $writer = nil; - if (i == null) { - i = nil; - }; - if ($truthy(i['$empty?']())) { - } else { + if (i == null) i = nil;; + if (!$truthy(i['$empty?']())) { $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); + $send(arr, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - return (idx = $rb_plus(idx, 1));}, $$9.$$s = self, $$9.$$arity = 1, $$9));}, $Ruby30$8.$$s = self, $Ruby30$8.$$arity = 1, $Ruby30$8)); - clist = ["849,847,1052,999,1056,827,394,849,849,849,762,762,619,849,849,285,849", "46,46,877,21,1109,285,816,849,849,415,1102,414,702,691,628,817,1105", "956,988,849,849,812,849,849,849,849,849,1108,1158,702,383,1032,1199", "1056,1196,137,988,622,815,1006,137,137,1199,847,21,622,814,391,877,849", "849,849,849,849,849,849,849,849,849,849,849,849,849,285,390,849,849", "849,999,849,849,816,691,849,1112,415,849,414,46,46,817,849,1006,849", "441,849,849,762,849,849,849,849,849,111,849,849,849,827,394,619,111", "111,111,1052,619,111,111,111,1052,111,849,1196,752,849,849,816,849,111", "849,111,111,111,1109,628,817,849,956,1109,849,111,111,1054,111,111,111", "111,111,1195,1206,812,1193,1194,812,441,812,1108,1158,815,383,1032,1108", "1158,1196,383,1032,814,391,1196,51,111,111,111,111,111,111,111,111,111", "111,111,111,111,111,390,382,111,111,111,752,111,111,730,970,111,43,321", "111,111,238,111,321,111,1112,111,872,111,111,1112,111,111,111,111,111", "848,111,1111,111,69,638,638,848,848,848,1061,1195,1061,848,848,752,848", "111,752,1114,111,111,111,111,848,111,873,111,472,472,752,872,111,800", "800,111,848,848,970,848,848,848,848,848,238,592,1054,508,508,1115,755", "1054,1195,1206,52,1193,1194,1195,1206,29,1193,1194,873,592,1116,730", "848,848,848,848,848,848,848,848,848,848,848,848,848,848,341,1117,848", "848,848,333,848,848,40,382,848,69,333,848,382,914,348,348,848,638,848", "333,848,848,638,848,848,848,848,848,52,848,692,848,25,755,755,690,846", "692,692,692,472,29,692,692,692,848,692,600,848,848,1129,848,600,848", "692,692,692,692,692,508,848,1130,341,848,29,753,692,692,333,692,692", "692,692,692,755,334,1139,755,747,914,653,284,334,1076,1141,341,1144", "1088,284,755,747,334,348,348,690,846,692,692,692,692,692,692,692,692", "692,692,692,692,692,692,53,352,692,692,692,655,692,692,1145,914,692", "400,914,692,692,400,692,1146,692,478,692,753,692,692,914,692,692,692", "692,692,334,692,692,692,653,653,284,1076,1076,1076,531,1088,1088,409", "653,1147,410,692,352,413,692,692,692,692,1076,692,53,692,1088,693,352", "753,692,236,753,692,693,693,693,655,655,693,693,693,335,693,753,1149", "478,655,876,335,283,693,876,693,693,693,700,283,335,869,399,700,1154", "693,693,700,693,693,693,693,693,17,531,531,531,409,409,409,410,410,410", "413,413,413,675,235,387,5,1164,531,236,387,5,693,693,693,693,693,693", "693,693,693,693,693,693,693,693,335,41,693,693,693,399,693,693,283,1170", "693,869,399,693,693,412,693,399,693,1175,693,399,693,693,675,693,693", "693,693,693,960,693,15,693,721,960,675,235,721,907,399,907,907,907,907", "907,457,693,41,282,693,693,693,693,907,693,282,693,1189,463,41,456,693", "1055,1055,693,463,463,463,1190,399,378,463,463,378,463,907,16,16,412", "412,412,281,463,463,907,907,907,907,281,1165,1165,907,457,88,463,463", "1192,463,463,463,463,463,14,42,457,88,366,456,366,366,366,366,366,282", "416,88,12,907,9,456,1131,366,1197,1131,463,463,463,463,463,463,463,463", "463,463,463,463,463,463,1202,19,463,463,463,366,463,463,281,1203,463", "411,42,463,366,366,366,366,463,1204,463,366,463,463,42,463,463,463,463", "463,462,463,463,463,704,704,1205,462,462,462,416,416,416,462,462,280", "462,463,19,3,463,463,280,463,462,463,279,278,774,774,19,366,463,279", "278,463,462,462,1211,462,462,462,462,462,1217,411,411,411,768,392,768", "768,768,768,768,277,392,371,371,371,371,371,277,768,516,392,462,462", "462,462,462,462,462,462,462,462,462,462,462,462,280,517,462,462,462", "768,462,462,381,381,462,279,278,462,768,768,768,768,462,518,462,768", "462,462,522,462,462,462,462,462,108,462,799,462,392,799,491,108,108", "108,277,490,108,108,108,276,108,462,489,488,462,462,276,462,108,462", "108,108,108,538,375,768,462,375,539,462,108,108,542,108,108,108,108", "108,544,548,549,18,374,337,27,374,548,553,18,563,337,27,564,567,568", "548,569,18,570,337,108,108,108,108,108,108,108,108,108,108,108,108,108", "108,276,571,108,108,108,573,108,108,1151,487,108,574,584,108,108,1151", "108,474,108,596,108,599,108,108,1151,108,108,108,108,108,548,108,18", "108,337,27,536,536,536,536,536,487,756,601,464,487,487,108,603,756,108", "108,108,108,756,108,440,108,756,604,605,606,108,440,455,108,818,818", "818,818,818,818,440,1151,616,818,818,454,452,620,818,398,818,818,818", "818,818,818,818,324,324,324,324,324,818,818,818,818,818,818,818,621", "585,818,585,585,585,756,585,818,818,818,818,818,818,818,818,818,818", "818,818,440,818,818,818,631,818,818,818,818,818,820,631,398,623,353", "49,49,820,585,398,631,353,820,442,398,438,820,585,398,818,353,435,818", "433,650,818,818,1110,658,818,660,818,432,430,1110,818,667,398,424,486", "676,49,49,1110,818,681,404,686,694,818,818,818,818,695,818,818,818,818", "1074,631,697,395,818,818,393,820,720,398,1074,353,818,486,818,818,818", "486,486,818,818,823,823,823,823,823,823,723,724,389,823,823,727,729", "1110,823,819,823,823,823,823,823,823,823,388,735,736,737,1074,823,823", "823,823,823,823,823,739,741,823,379,1074,749,751,377,823,823,823,823", "823,823,823,823,823,823,823,823,376,823,823,823,1104,823,823,823,823", "823,402,1104,819,754,54,757,758,402,761,819,1104,54,372,764,819,368", "402,364,819,823,54,783,823,784,786,823,823,234,362,823,802,823,808,809", "234,823,785,819,785,785,785,358,785,234,823,813,356,349,822,823,823", "823,823,347,823,823,823,823,886,1104,343,826,823,823,342,402,828,819", "886,54,823,340,823,823,823,843,339,823,823,834,834,834,834,834,834,845", "336,854,834,834,330,329,234,834,870,834,834,834,834,834,834,834,23,328", "326,325,886,834,834,834,834,834,834,834,878,879,834,883,886,884,885", "888,834,834,834,834,834,834,834,834,834,834,834,834,313,834,834,834", "310,834,834,834,834,834,23,23,23,23,23,23,23,23,23,23,23,309,23,23,900", "903,23,23,904,834,1,23,834,771,913,834,834,295,918,834,921,834,23,771", "23,834,23,23,922,23,23,23,23,23,834,23,925,927,928,834,834,834,834,930", "834,834,834,834,932,934,935,937,834,834,940,23,771,771,947,950,834,771", "834,834,834,957,959,834,834,1010,1010,1010,1010,1010,1010,966,646,646", "1010,1010,646,646,646,1010,967,1010,1010,1010,1010,1010,1010,1010,8", "8,8,8,8,1010,1010,1010,1010,1010,1010,1010,968,969,1010,979,980,981", "982,445,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010", "244,1010,1010,1010,991,1010,1010,1010,1010,1010,445,445,445,445,445", "445,445,445,445,445,445,992,445,445,993,997,445,445,998,1010,240,239", "1010,1003,1013,1010,1010,1014,1016,1010,1017,1010,445,1018,445,1010", "445,445,1020,445,445,445,445,445,1010,445,1021,1022,237,1010,1010,1010", "1010,1048,1010,1010,1010,1010,1049,1065,216,1075,1010,1010,1083,445", "1085,445,,,1010,,1010,1010,1010,,,1010,1010,615,615,615,615,615,615", ",,,615,615,,,,615,,615,615,615,615,615,615,615,,,,,,615,615,615,615", "615,615,615,,,615,,,,,794,615,615,615,615,615,615,615,615,615,615,615", "615,,615,615,615,,615,615,615,615,615,794,794,794,794,794,794,794,794", "794,794,794,,794,794,,,794,794,,615,,,615,1091,,615,615,,,615,,615,794", "1091,794,615,794,794,,794,794,794,794,794,615,794,,,,615,615,615,615", ",615,615,615,615,,,,,615,615,,794,1091,1091,,,615,1091,615,615,615,", ",615,615,618,618,618,618,618,618,,,,618,618,,,,618,,618,618,618,618", "618,618,618,,,,,,618,618,618,618,618,618,618,,,618,,,,,451,618,618,618", "618,618,618,618,618,618,618,618,618,,618,618,618,,618,618,618,618,618", "451,451,451,451,451,451,451,451,451,451,451,,451,451,,,451,451,,618", ",,618,,,618,618,,,618,,618,451,,451,618,451,451,,451,451,451,451,451", "618,451,,,,618,618,618,618,,618,618,618,618,,,,,618,618,,451,,,,,618", ",618,618,618,,,618,618,1029,1029,1029,1029,1029,1029,,,,1029,1029,,", ",1029,,1029,1029,1029,1029,1029,1029,1029,,,,,,1029,1029,1029,1029,1029", "1029,1029,,,1029,,,,,763,1029,1029,1029,1029,1029,1029,1029,1029,1029", "1029,1029,1029,,1029,1029,1029,,1029,1029,1029,1029,1029,763,763,763", "763,763,763,763,763,763,763,763,,763,763,,,763,763,,1029,,,1029,,,1029", "1029,,,1029,,1029,763,,763,1029,763,763,,763,763,763,763,763,1029,763", ",,,1029,1029,1029,1029,,1029,1029,1029,1029,,,,,1029,1029,,763,,,,,1029", ",1029,1029,1029,,,1029,1029,218,218,218,218,218,218,,,,218,218,,,,218", ",218,218,218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,1174", "218,1174,1174,1174,,1174,218,218,218,218,218,218,218,218,218,218,218", "218,,218,218,218,,218,218,218,218,218,505,505,505,505,505,505,505,505", "505,505,505,,505,505,,,505,505,,218,,,218,,,218,218,,,218,,218,505,", "505,218,505,505,,505,505,505,505,505,218,505,,,,218,218,218,218,,218", "218,218,218,,,,,218,218,505,505,,,,,218,,218,218,218,,,218,218,1066", "1066,1066,1066,1066,1066,,,,1066,1066,,,,1066,,1066,1066,1066,1066,1066", "1066,1066,,,,,,1066,1066,1066,1066,1066,1066,1066,,1068,1066,1068,1068", "1068,,1068,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066", ",1066,1066,1066,,1066,1066,1066,1066,1066,851,851,851,851,851,851,851", "851,851,851,851,,851,851,,,851,851,,1066,,,1066,,,1066,1066,,,1066,", "1066,851,,851,1066,851,851,,851,851,851,851,851,1066,851,,,,1066,1066", "1066,1066,,1066,1066,1066,1066,,,,,1066,1066,,851,,,,,1066,,1066,1066", "1066,,,1066,1066,1067,1067,1067,1067,1067,1067,,,,1067,1067,,,,1067", ",1067,1067,1067,1067,1067,1067,1067,,,,,,1067,1067,1067,1067,1067,1067", "1067,,,1067,,,,,,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067", "1067,,1067,1067,1067,,1067,1067,1067,1067,1067,307,307,307,307,307,307", "307,307,307,307,307,,307,307,,,307,307,,1067,,,1067,,,1067,1067,,,1067", ",1067,307,,307,1067,307,307,,307,307,307,307,307,1067,307,,,,1067,1067", "1067,1067,,1067,1067,1067,1067,,,,,1067,1067,,307,,,,,1067,,1067,1067", "1067,,,1067,1067,639,639,639,639,639,639,,,,639,639,,,,639,,639,639", "639,639,639,639,639,,,,,,639,639,639,639,639,639,639,,,639,,,,,,639", "639,639,639,639,639,639,639,639,639,639,639,,639,639,639,,639,639,639", "639,639,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,,1050", "1050,,,1050,1050,,639,,,639,,,639,639,,,639,,639,1050,,1050,639,1050", "1050,,1050,1050,1050,1050,1050,639,1050,,,,639,639,639,639,,639,639", "639,639,,,,,639,639,,1050,,,,,639,,639,639,639,,,639,639,386,386,386", "386,386,386,,,,386,386,,,,386,,386,386,386,386,386,386,386,,,,,,386", "386,386,386,386,386,386,,,386,,,,,,386,386,386,386,386,386,386,386,386", "386,386,386,,386,386,386,,386,386,386,386,386,560,560,560,560,560,560", "560,560,560,560,560,,560,560,,,560,560,,386,,,386,,,386,386,,,386,,386", "560,,560,386,560,560,,560,560,560,560,560,386,560,,,,386,386,386,386", ",386,386,386,386,,,,,386,386,,560,,,,,386,,386,386,386,,,386,386,36", "36,36,36,36,36,,,,36,36,,,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36", "36,36,36,,,36,,,,,,36,36,36,36,36,36,36,36,36,36,36,36,,36,36,36,,36", "36,36,36,36,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,", "1009,1009,,,1009,1009,,36,,,36,,,36,36,,,36,,36,1009,,1009,36,1009,1009", ",1009,1009,1009,1009,1009,36,1009,,,,36,36,36,36,,36,36,36,36,,,,,36", "36,,1009,,,,,36,,36,36,36,,,36,36,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,,135,135,135,135,135,1027,1027,1027,1027,1027,1027,1027,1027,1027", "1027,1027,,1027,1027,,,1027,1027,,135,,,135,,,135,135,,,135,,135,1027", ",1027,135,1027,1027,,1027,1027,1027,1027,1027,135,1027,,,,135,135,135", "135,,135,135,135,135,,,,,135,135,,1027,,,,,135,,135,135,135,,,135,135", "332,332,332,332,332,332,,,,332,332,,,,332,,332,332,332,332,332,332,332", ",,,,,332,332,332,332,332,332,332,,941,332,941,941,941,,941,332,332,332", "332,332,332,332,332,332,332,332,332,,332,332,332,,332,332,332,332,332", "781,,781,781,781,,781,,941,,942,,942,942,942,,942,941,,332,,,332,,,332", "332,,502,332,,332,,,,332,,781,,1119,,1119,1119,1119,332,1119,781,942", ",332,332,332,332,,332,332,332,332,,,502,,332,332,502,502,,502,502,,332", ",332,332,332,,1119,332,332,385,385,385,385,385,385,,,,385,385,,,,385", ",385,385,385,385,385,385,385,,,,,,385,385,385,385,385,385,385,,,385", ",,501,,,385,385,385,385,385,385,385,385,385,385,385,385,,385,385,385", ",385,385,385,385,385,503,503,503,503,503,503,503,501,,503,503,501,501", ",501,501,503,503,,385,,,385,,,385,385,,,385,,385,503,,503,385,503,503", ",503,503,503,503,503,385,503,,,,385,385,385,385,,385,385,385,385,,,", ",385,385,,1118,,1118,1118,1118,385,1118,385,385,385,,,385,385,1120,1120", "1120,1120,1120,1120,,,,1120,1120,,,,1120,,1120,1120,1120,1120,1120,1120", "1120,1118,,,,,1120,1120,1120,1120,1120,1120,1120,,,1120,,,,,,1120,1120", "1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,,1120,1120,1120,,1120", "1120,1120,1120,1120,499,499,499,499,499,499,499,,,499,499,,,,,,499,499", ",1120,,,1120,,,1120,1120,,,1120,,1120,499,,499,1120,499,499,,499,499", "499,499,499,1120,499,,,,1120,1120,1120,1120,,1120,1120,1120,1120,,,", ",1120,1120,,,,,,,1120,,1120,1120,1120,,,1120,1120,327,327,327,327,327", "327,,,,327,327,,,,327,,327,327,327,327,327,327,327,,,,,,327,327,327", "327,327,327,327,,,327,,,,,,327,327,327,327,327,327,327,327,327,327,327", "327,,327,327,327,,327,327,327,327,327,500,500,500,500,500,500,500,,", "500,500,,,,,,500,500,,327,,,327,,,327,327,,,327,,327,500,,500,327,500", "500,,500,500,500,500,500,327,500,,,,327,327,327,327,,327,327,327,327", ",,,,327,327,,,,,,,327,,327,327,327,,,327,327,908,908,908,908,908,908", ",,,908,908,,,,908,,908,908,908,908,908,908,908,,,,,,908,908,908,908", "908,908,908,,,908,,,,,,908,908,908,908,908,908,908,908,908,908,908,908", ",908,908,908,,908,908,908,908,908,498,498,498,498,498,498,498,,,498", "498,,,,,,498,498,,908,,,908,,,908,908,,,908,,908,498,,498,908,498,498", ",498,498,498,498,498,908,498,,,,908,908,908,908,,908,908,908,908,,,", ",908,908,,,,,,,908,,908,908,908,,,908,908,1166,1166,1166,1166,1166,1166", ",,,1166,1166,,,,1166,,1166,1166,1166,1166,1166,1166,1166,,,,,,1166,1166", "1166,1166,1166,1166,1166,,,1166,,,,,,1166,1166,1166,1166,1166,1166,1166", "1166,1166,1166,1166,1166,,1166,1166,1166,,1166,1166,1166,1166,1166,496", "496,496,496,496,496,496,,,496,496,,,,,,496,496,,1166,,,1166,,,1166,1166", ",,1166,,1166,496,,496,1166,496,496,,496,496,496,496,496,1166,496,,,", "1166,1166,1166,1166,,1166,1166,1166,1166,,,,,1166,1166,,,,,,,1166,,1166", "1166,1166,,,1166,1166,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2", "2,2,2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,2,2,2,355,355", "355,355,355,355,355,355,355,355,355,,355,355,,,355,355,,2,,,2,,,2,2", ",,2,,2,355,,355,2,355,355,,355,355,355,355,355,2,355,,,,2,2,2,2,,2,2", "2,2,,,,,2,2,,,,,,,2,,2,2,2,,,2,2,370,370,370,370,370,370,,,,370,370", ",,,370,,370,370,370,370,370,370,370,,,,,,370,370,370,370,370,370,370", ",,370,,,,,,370,370,370,370,370,370,370,370,370,370,370,370,,370,370", "370,,370,370,370,370,370,354,354,354,354,354,354,354,354,354,354,354", ",354,354,,,354,354,,370,,,370,,,370,370,,,370,,370,354,,354,370,354", "354,,354,354,354,354,354,370,354,,,,370,370,370,370,,370,370,370,370", ",,,,370,370,,,,,,,370,,370,370,370,,,370,370,369,369,369,369,369,369", ",,,369,369,,,,369,,369,369,369,369,369,369,369,,,,,,369,369,369,369", "369,369,369,,,369,,,,,,369,369,369,369,369,369,369,369,369,369,369,369", ",369,369,369,,369,369,369,369,369,504,504,504,504,504,504,504,504,,504", "504,,,,,,504,504,,369,,,369,,,369,369,,,369,,369,504,,504,369,504,504", ",504,504,504,504,504,369,504,,,,369,369,369,369,,369,369,369,369,,,", ",369,369,,,,,,,369,,369,369,369,,,369,369,920,920,920,920,920,920,,", ",920,920,,,,920,,920,920,920,920,920,920,920,,,,,,920,920,920,920,920", "920,920,,,920,,,,,,920,920,920,920,920,920,920,920,920,920,920,920,", "920,920,920,,920,920,920,920,920,559,,,,,,,,,,,,,,,,559,559,,920,,,920", ",,920,920,,,920,,920,559,,559,920,559,559,,559,559,,,559,920,559,,,", "920,920,920,920,,920,920,920,920,,,,,920,920,,,,,,,920,,920,920,920", ",,920,920,363,363,363,363,363,363,,,,363,363,,,,363,,363,363,363,363", "363,363,363,,,,,,363,363,363,363,363,363,363,,,363,,,,,,363,363,363", "363,363,363,363,363,363,363,363,363,,363,363,363,,363,363,363,363,363", "484,484,484,484,484,484,484,484,484,484,484,,484,484,,,484,484,,363", ",,363,,,363,363,,,363,,363,484,,484,363,484,484,,484,484,484,484,484", "363,484,,,,363,363,363,363,,363,363,363,363,,,,,363,363,,,,,,,363,,363", "363,363,,,363,363,1107,1107,1107,1107,1107,1107,,,,1107,1107,,,,1107", ",1107,1107,1107,1107,1107,1107,1107,,,,,,1107,1107,1107,1107,1107,1107", "1107,,,1107,,,,,,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107", "1107,,1107,1107,1107,,1107,1107,1107,1107,1107,497,497,497,497,497,497", "497,,,497,497,,,,,,497,497,,1107,,,1107,,,1107,1107,,,1107,,1107,497", ",497,1107,497,497,,497,497,497,497,497,1107,497,,,,1107,1107,1107,1107", ",1107,1107,1107,1107,,,,,1107,1107,,,,,,,1107,,1107,1107,1107,,,1107", "1107,955,955,955,955,955,955,,,,955,955,,,,955,,955,955,955,955,955", "955,955,,,,,,955,955,955,955,955,955,955,,,955,,,,,,955,955,955,955", "955,955,955,955,955,955,955,955,,955,955,955,,955,955,955,955,955,485", "485,485,485,485,485,485,485,485,485,485,,485,485,,,485,485,,955,,,955", ",,955,955,,,955,,955,485,,485,955,485,485,,485,485,485,485,485,955,485", ",,,955,955,955,955,,955,955,955,955,,,,,955,955,,,,,,,955,,955,955,955", ",,955,955,961,961,961,961,961,961,,,,961,961,,,,961,,961,961,961,961", "961,961,961,,,,,,961,961,961,961,961,961,961,,,961,,,,,,961,961,961", "961,961,961,961,961,961,961,961,961,,961,961,961,,961,961,961,961,961", "495,495,495,495,495,495,495,,,495,495,,,,,,495,495,,961,,,961,,,961", "961,,,961,,961,495,,495,961,495,495,,495,495,495,495,495,961,495,,,", "961,961,961,961,,961,961,961,961,,,,,961,961,,,,,,,961,,961,961,961", ",,961,961,243,243,243,243,243,243,,,,243,243,,,,243,,243,243,243,243", "243,243,243,,,,,,243,243,243,243,243,243,243,,,243,,,,,,243,243,243", "243,243,243,243,243,243,243,243,243,,243,243,243,,243,243,243,243,243", "506,,,,,,,,,,,,,,,,506,506,,243,,,243,,,243,243,,,243,,243,506,,506", "243,506,506,,506,506,,,506,243,506,,,,243,243,243,243,,243,243,243,243", ",,,,243,243,,,,132,132,132,243,132,243,243,243,132,132,243,243,,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,492,,,,,,,,,,,,,,,,492,492,,132,,,132,,,132,132,,,132,,,492", ",492,132,492,492,,492,492,,,,132,,,,,132,132,132,132,,132,132,132,132", ",,,,132,132,,,,,,,132,,132,132,132,510,,132,132,,,,510,510,510,,,510", "510,510,,510,494,,,,,,,510,510,510,,,,,,,494,494,,510,510,,510,510,510", "510,510,,,,,,494,,292,292,494,494,292,494,494,,,,,,292,292,,292,292", "292,292,292,292,292,,,292,292,510,,,292,292,292,292,510,,,,,510,510", ",,,,,,292,292,,292,292,292,292,292,292,292,292,292,292,292,292,510,510", "292,,,,,,,,,,,,,510,,,510,,,,,510,7,7,7,7,7,,510,,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,,7", "7,7,7,7,493,,,,,,,,,,,,,,,,493,493,,7,,,7,,,7,7,,,7,,7,493,,493,7,493", "493,,493,493,,,,7,,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,1155,1155,1155,7,1155", "7,7,7,1155,1155,7,7,,1155,,1155,1155,1155,1155,1155,1155,1155,,,,,,1155", "1155,1155,1155,1155,1155,1155,,,1155,,,,,,,1155,,,1155,1155,1155,1155", "1155,1155,1155,1155,1155,1155,1155,1155,,1155,1155,1155,1155,1155,,", ",,,,,,,,,,,,,,,,,1155,,,1155,,,1155,1155,,,1155,,1155,,1155,,1155,,", "1155,,,,,,1155,,,,,1155,1155,1155,1155,,1155,1155,1155,1155,,,,,1155", "1155,,,,22,22,22,1155,22,1155,1155,1155,22,22,1155,1155,,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,,,22,,,22,22", ",,22,,,,,,22,,,,,,,,,22,,,,,22,22,22,22,,22,22,22,22,,,,,22,22,,,,1123", "1123,1123,22,1123,22,22,22,1123,1123,22,22,,1123,,1123,1123,1123,1123", "1123,1123,1123,,,,,,1123,1123,1123,1123,1123,1123,1123,,,1123,,,,,,", "1123,,,1123,1123,1123,1123,1123,1123,1123,1123,,1123,1123,1123,,1123", "1123,1123,1123,1123,,,,,,,,,,,,,,,,,,,,1123,,,1123,,,1123,1123,,,1123", ",,,,,1123,,,,,,,,,1123,,,,,1123,1123,1123,1123,,1123,1123,1123,1123", ",,,,1123,1123,,,,,,,1123,,1123,1123,1123,30,,1123,1123,,,,30,30,30,", ",30,30,30,,30,,,,,,,,30,30,30,30,,,,,,,,,30,30,,30,30,30,30,30,,,,,", ",,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30", ",,30,,30,30,,,30,30,,30,,30,,30,,30,30,,30,30,30,30,30,31,30,30,30,", ",,31,31,31,,,31,31,31,,31,30,,,30,30,,30,31,30,31,31,,,,,30,,,,31,31", ",31,31,31,31,31,,,,,,,,,,,,,,,,,,,,,,,31,31,31,31,31,31,31,31,31,31", "31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,,31,,31,,31,31,,31,31", "31,31,31,,31,,31,,,,,,,,,,,,,,31,,,31,31,,31,,31,32,32,32,,32,,31,,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,32,32,,,,,,,,,,,", ",,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,32,,,,,,32,,,,,32,32,32,32", ",32,32,32,32,,,,,32,32,,,,33,33,33,32,33,32,32,32,33,33,32,32,,33,,33", "33,33,33,33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33", "33,33,33,33,33,33,33,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33", ",,33,33,,,33,,33,,33,,33,,,33,,,,,,33,,,,,33,33,33,33,,33,33,33,33,", ",,,33,33,,,,34,34,34,33,34,33,33,33,34,34,33,33,,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,,34,,34,,34,,,34,,,,,,34,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,", ",,1122,1122,1122,34,1122,34,34,34,1122,1122,34,34,,1122,,1122,1122,1122", "1122,1122,1122,1122,,,,,,1122,1122,1122,1122,1122,1122,1122,,,1122,", ",,,,,1122,,,1122,1122,1122,1122,1122,1122,1122,1122,,1122,1122,1122", ",1122,1122,1122,1122,1122,,,,,,,,,,,,,,,,,,,,1122,,,1122,,,1122,1122", ",,1122,,,,,,1122,,,,,,,,,1122,,,,,1122,1122,1122,1122,,1122,1122,1122", "1122,,,,,1122,1122,,,,44,44,44,1122,44,1122,1122,1122,44,44,1122,1122", ",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,,,,,,44,,,,,,,,,44,,,,,44,44,44,44,,44,44,44,44", ",,,,44,44,,,,45,45,45,44,45,44,44,44,45,45,44,44,,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,,,,,,,,,45,,,,,45,45,45,45,,45,45,45,45,,,,,45,45,,,,47,47,47", "45,47,45,45,45,47,47,45,45,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47", "47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47", "47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,", ",47,47,47,47,,47,47,47,47,,,,,47,47,,,,48,48,48,47,48,47,47,47,48,48", "47,47,,48,,48,48,48,48,48,48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,", ",48,,,48,48,48,48,48,48,48,48,,48,48,48,,48,48,48,48,48,,,,,,,,,,,,", ",,,,,,,48,,,48,,,48,48,,,48,,,,,,48,,,,,,,,,48,,,,,48,48,48,48,,48,48", "48,48,,,,,48,48,,,,50,50,50,48,50,48,48,48,50,50,48,48,,50,,50,50,50", "50,50,50,50,,,,,,50,50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50", "50,50,50,,50,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50", ",,50,,,,,,50,,,,,,,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,,", ",50,,50,50,50,64,,50,50,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64", "64,,,,707,707,707,707,64,64,,64,64,64,64,64,,,,,707,707,707,,,,,,,,", ",,707,707,,,707,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64", ",,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,707,707", "707,707,,707,707,707,707,,,,64,707,707,64,64,64,64,,64,707,64,707,707", "707,,64,66,66,66,66,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,,,66", "66,66,66,66,66,66,,,66,,,,,,66,66,,66,66,66,66,66,66,66,66,66,,66,66", "66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,66,,,,66", ",,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66,66,,,,67,67,67,66,67", "66,66,66,67,67,66,66,,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,,,67,,67,,,,67,,,67,,,,,,67,,", ",,67,67,67,67,,67,67,67,67,,,,,67,67,,,,68,68,68,67,68,67,67,67,68,68", "67,67,,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,,,,,,68,,,,,68,68,68,68,", "68,68,68,68,,,,,68,68,,,,71,71,71,68,71,68,68,68,71,71,68,68,,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,71,71,71,,71,71,71,71,,,,,71", "71,,,,72,72,72,71,72,71,71,71,72,72,71,71,,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", ",,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,75,75,75,72,75", "72,72,72,75,75,72,72,,75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75", "75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75", ",,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75", "75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,124,124", "124,124,124,,,,124,124,,,,124,,124,124,124,124,124,124,124,,,,,,124", "124,124,124,124,124,124,,,124,,,,,,124,124,124,124,124,124,124,124,124", "124,124,124,,124,124,124,,124,124,124,124,124,,,,,,,,,,,,,,,,,,,,124", ",,124,,,124,124,,,124,,124,,,,124,,,,,,,,,124,,,,,124,124,124,124,,124", "124,124,124,,,,,124,124,,,,,,124,124,,124,124,124,,,124,124,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,,,,,,,,,,,,,,,,,,,,129,,,129,,,129", "129,,,129,,,,,,129,,,,,,,,,129,,,,,129,129,129,129,,129,129,129,129", ",,,,129,129,,,,130,130,130,129,130,129,129,129,130,130,129,129,,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,,,,,,", ",,130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,,,131,131,131", "130,131,130,130,130,131,131,130,130,,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,,,,,,131,,,,,,,,,131,,,,,131,131,131,131,,131", "131,131,131,,,,,131,131,,,,515,515,515,131,515,131,131,131,515,515,131", "131,,515,,515,515,515,515,515,515,515,,,,,,515,515,515,515,515,515,515", ",,515,,,,,,,515,,,515,515,515,515,515,515,515,515,,515,515,515,,515", "515,515,515,515,,,,,,,,,,,,,,,,,,,,515,,,515,,,515,515,,,515,,,,,,515", ",,,,,,,,515,,,,,515,515,515,515,,515,515,515,515,,,,,515,515,,,,,,,515", ",515,515,515,,,515,515,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,133,133", "133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,133,,,,133,,,,,,,", ",133,,,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,231,231,231", "133,231,133,133,133,231,231,133,133,,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,231,231,231,,231", "231,231,231,,,,,231,231,231,,,242,242,242,231,242,231,231,231,242,242", "231,231,,242,,242,242,242,242,242,242,242,,,,,,242,242,242,242,242,242", "242,,,242,,,,,,,242,,,242,242,242,242,242,242,242,242,,242,242,242,", "242,242,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242,,,", ",,242,,,,,,,,,242,,,,,242,242,242,242,,242,242,242,242,,,,,242,242,", ",,247,247,247,242,247,242,242,242,247,247,242,242,,247,,247,247,247", "247,247,247,247,,,,,,247,247,247,247,247,247,247,,,247,,,,,,,247,,,247", "247,247,247,247,247,247,247,,247,247,247,,247,247,247,247,247,,,,,,", ",,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,,,,,,,,,247,,,,,247", "247,247,247,,247,247,247,247,,,,,247,247,,,,248,248,248,247,248,247", "247,247,248,248,247,247,,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", ",,,,248,248,,,,249,249,249,248,249,248,248,248,249,249,248,248,,249", ",249,249,249,249,249,249,249,,,,,,249,249,249,249,249,249,249,,,249", ",,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249,,249,249,249", "249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,", ",,249,,,,,249,249,249,249,,249,249,249,249,,,,,249,249,,,,250,250,250", "249,250,249,249,249,250,250,249,249,,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,250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250", "250,250,250,,,,,250,250,,,,251,251,251,250,251,250,250,250,251,251,250", "250,,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,,,251,251,,,251,,,,,,251", ",,,,,,,,251,,,,,251,251,251,251,,251,251,251,251,,,,,251,251,,,,252", "252,252,251,252,251,251,251,252,252,251,251,,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,252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252", "252,,252,252,252,252,,,,,252,252,,,,253,253,253,252,253,252,252,252", "253,253,252,252,,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,,,253,253,,,253", ",,,,,253,,,,,,,,,253,,,,,253,253,253,253,,253,253,253,253,,,,,253,253", ",,,254,254,254,253,254,253,253,253,254,254,253,253,,254,,254,254,254", "254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254,,,,,,,254,,,254", "254,254,254,254,254,254,254,,254,254,254,,254,254,254,254,254,,,,,,", ",,,,,,,,,,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,,,,254,,,,,254", "254,254,254,,254,254,254,254,,,,,254,254,,,,255,255,255,254,255,254", "254,254,255,255,254,254,,255,,255,255,255,255,255,255,255,,,,,,255,255", "255,255,255,255,255,,,255,,,,,,,255,,,255,255,255,255,255,255,255,255", ",255,255,255,,255,255,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255", "255,,,255,,,,,,255,,,,,,,,,255,,,,,255,255,255,255,,255,255,255,255", ",,,,255,255,,,,256,256,256,255,256,255,255,255,256,256,255,255,,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,,,,,,256,,,,,,", ",,256,,,,,256,256,256,256,,256,256,256,256,,,,,256,256,,,,257,257,257", "256,257,256,256,256,257,257,256,256,,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,,,,,,257,,,,,,,,,257,,,,,257,257,257,257,,257", "257,257,257,,,,,257,257,,,,258,258,258,257,258,257,257,257,258,258,257", "257,,258,,258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258", ",,258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258", "258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258", ",,,,,,,,258,,,,,258,258,258,258,,258,258,258,258,,,,,258,258,,,,259", "259,259,258,259,258,258,258,259,259,258,258,,259,,259,259,259,259,259", "259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259", "259,259,259,259,259,,259,259,259,,259,259,259,259,259,,,,,,,,,,,,,,", ",,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,,,,259,259,259", "259,,259,259,259,259,,,,,259,259,,,,260,260,260,259,260,259,259,259", "260,260,259,259,,260,,260,260,260,260,260,260,260,,,,,,260,260,260,260", "260,260,260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260", "260,,260,260,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260", ",,,,,260,,,,,,,,,260,,,,,260,260,260,260,,260,260,260,260,,,,,260,260", ",,,261,261,261,260,261,260,260,260,261,261,260,260,,261,,261,261,261", "261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261", "261,261,261,261,261,261,261,,261,261,261,,261,261,261,261,261,,,,,,", ",,,,,,,,,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261", "261,261,261,,261,261,261,261,,,,,261,261,,,,262,262,262,261,262,261", "261,261,262,262,261,261,,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,,,,,,,,,262,,,,,262,262,262,262,,262,262,262,262", ",,,,262,262,,,,263,263,263,262,263,262,262,262,263,263,262,262,,263", ",263,263,263,263,263,263,263,,,,,,263,263,263,263,263,263,263,,,263", ",,,,,,263,,,263,263,263,263,263,263,263,263,,263,263,263,,263,263,263", "263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,", ",,263,,,,,263,263,263,263,,263,263,263,263,,,,,263,263,,,,264,264,264", "263,264,263,263,263,264,264,263,263,,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,264,264,264,,264", "264,264,264,,,,,264,264,,,,265,265,265,264,265,264,264,264,265,265,264", "264,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265,265,265,265", ",,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265,265,,265", "265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265,,,,,,265", ",,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265,,,,266", "266,266,265,266,265,265,265,266,266,265,265,,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,266,266", "266,,266,266,266,266,,,,,266,266,,,,267,267,267,266,267,266,266,266", "267,267,266,266,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267", "267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267", "267,,267,267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267", ",,,,,267,,,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267", ",,,268,268,268,267,268,267,267,267,268,268,267,267,,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", "268,268,268,,268,268,268,268,,,,,268,268,,,,273,273,273,268,273,268", "268,268,273,273,268,268,,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,,,273", "273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273", ",,,,273,273,,,,974,974,974,273,974,273,273,273,974,974,273,273,,974", ",974,974,974,974,974,974,974,,,,,,974,974,974,974,974,974,974,,,974", ",,,,,,974,,,974,974,974,974,974,974,974,974,,974,974,974,,974,974,974", "974,974,,,,,,,,,,,,,,,,,,,,974,,,974,,,974,974,,,974,,,,,,974,,,,,,", ",,974,,,,,974,974,974,974,,974,974,974,974,,,,,974,974,,,,973,973,973", "974,973,974,974,974,973,973,974,974,,973,,973,973,973,973,973,973,973", ",,,,,973,973,973,973,973,973,973,,,973,,,,,,,973,,,973,973,973,973,973", "973,973,973,973,973,973,973,,973,973,973,973,973,,,,,,,,,,,,,,,,,,,", "973,,,973,,,973,973,,,973,,,,973,,973,,,973,,,,,,973,,,,,973,973,973", "973,,973,973,973,973,,,,,973,973,,,,954,954,954,973,954,973,973,973", "954,954,973,973,,954,,954,954,954,954,954,954,954,,,,,,954,954,954,954", "954,954,954,,,954,,,,,,,954,,,954,954,954,954,954,954,954,954,,954,954", "954,,954,954,954,954,954,,,,,,,,,,,,,,,,,,,,954,,,954,,,954,954,,,954", ",954,,,,954,,,,,,,,,954,,,,,954,954,954,954,,954,954,954,954,,,,,954", "954,,,,949,949,949,954,949,954,954,954,949,949,954,954,,949,,949,949", "949,949,949,949,949,,,,,,949,949,949,949,949,949,949,,,949,,,,,,,949", ",,949,949,949,949,949,949,949,949,,949,949,949,,949,949,949,949,949", ",,,,,,,,,,,,,,,,,,,949,,,949,,,949,949,,,949,,,,,,949,,,,,,,,,949,,", ",,949,949,949,949,,949,949,949,949,,,,,949,949,,,,945,945,945,949,945", "949,949,949,945,945,949,949,,945,,945,945,945,945,945,945,945,,,,,,945", "945,945,945,945,945,945,,,945,,,,,,,945,,,945,945,945,945,945,945,945", "945,,945,945,945,,945,945,945,945,945,,,,,,,,,,,,,,,,,,,,945,,,945,", ",945,945,,,945,,,,,,945,,,,,,,,,945,,,,,945,945,945,945,,945,945,945", "945,,,,,945,945,,,,289,289,289,945,289,945,945,945,289,289,945,945,", "289,,289,289,289,289,289,289,289,,,,,,289,289,289,289,289,289,289,,", "289,,,,,,,289,,,289,289,289,289,289,289,289,289,,289,289,289,,289,289", "289,289,289,,,,,,,,,,,,,,,,,,,,289,,,289,,,289,289,,,289,,,,,,289,,", ",,,,,,289,,,,,289,289,289,289,,289,289,289,289,,,,,289,289,,,,917,917", "917,289,917,289,289,289,917,917,289,289,,917,,917,917,917,917,917,917", "917,,,,,,917,917,917,917,917,917,917,,,917,,,,,,,917,,,917,917,917,917", "917,917,917,917,,917,917,917,,917,917,917,917,917,,,,,,,,,,,,,,,,,,", ",917,,,917,,,917,917,,,917,,,,,,917,,,,,,,,,917,,,,,917,917,917,917", ",917,917,917,917,,,,,917,917,,,,296,296,296,917,296,917,917,917,296", "296,917,917,,296,,296,296,296,296,296,296,296,,,,,,296,296,296,296,296", "296,296,,,296,,,,,,,296,,,296,296,296,296,296,296,296,296,296,296,296", "296,,296,296,296,296,296,,,,,,,,,,,,,,,,,,,,296,,,296,,,296,296,,,296", ",296,,296,,296,,,296,,,,,,296,,,,,296,296,296,296,,296,296,296,296,", ",,,296,296,,,,297,297,297,296,297,296,296,296,297,297,296,296,,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,", "297,,,297,,,,,,297,,,,,297,297,297,297,,297,297,297,297,,,,,297,297", ",,,305,305,305,297,305,297,297,297,305,305,297,297,,305,,305,305,305", "305,305,305,305,,,,,,305,305,305,305,305,305,305,,,305,,,,,,,305,,,305", "305,305,305,305,305,305,305,305,305,305,305,,305,305,305,305,305,,,", ",,,,,,,,,,,,,,,,305,,,305,,,305,305,,,305,,305,,305,,305,,,305,,,,,", "305,,,,,305,305,305,305,,305,305,305,305,,,,,305,305,305,,,897,897,897", "305,897,305,305,305,897,897,305,305,,897,,897,897,897,897,897,897,897", ",,,,,897,897,897,897,897,897,897,,,897,,,,,,,897,,,897,897,897,897,897", "897,897,897,,897,897,897,,897,897,897,897,897,,,,,,,,,,,,,,,,,,,,897", ",,897,,,897,897,,,897,,,,,,897,,,,,,,,,897,,,,,897,897,897,897,,897", "897,897,897,,,,,897,897,,,,312,312,312,897,312,897,897,897,312,312,897", "897,,312,,312,312,312,312,312,312,312,,,,,,312,312,312,312,312,312,312", ",,312,,,,,,,312,,,312,312,312,312,312,312,312,312,,312,312,312,,312", "312,312,312,312,,,,,,,,,,,,,,,,,,,,312,,,312,,,312,312,,,312,,,,,,312", ",,,,,,,,312,,,,,312,312,312,312,,312,312,312,312,,,,,312,312,,,,314", "314,314,312,314,312,312,312,314,314,312,312,,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,,,314,314,,,314,,,,,,314,,,,,,,,,314,,,,,314,314,314", "314,,314,314,314,314,,,,,314,314,,,,317,317,317,314,317,314,314,314", "317,317,314,314,,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,317,317,317,,317,317,317,317,,,,,317,317", ",,,318,318,318,317,318,317,317,317,318,318,317,317,,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", "318,318,318,,318,318,318,318,,,,,318,318,,,,,,,318,,318,318,318,,,318", "318,323,323,323,323,323,,,,323,323,,,,323,,323,323,323,323,323,323,323", ",,,,,323,323,323,323,323,323,323,,,323,,,,,,323,323,,323,323,323,323", "323,323,323,323,323,,323,323,323,,323,323,323,323,323,,,,,,,,,,,,,,", ",,,,,323,,,323,,,323,323,,,323,,323,,,,323,,,,,,,,,323,,,,,323,323,323", "323,,323,323,323,323,,,,,323,323,,,,868,868,868,323,868,323,323,323", "868,868,323,323,,868,,868,868,868,868,868,868,868,,,,,,868,868,868,868", "868,868,868,,,868,,,,,,,868,,,868,868,868,868,868,868,868,868,,868,868", "868,,868,868,868,868,868,,,,,,,,,,,,,,,,,,,,868,,,868,,,868,868,,,868", ",,,,,868,,,,,,,,,868,,,,,868,868,868,868,,868,868,868,868,,,,,868,868", ",,,867,867,867,868,867,868,868,868,867,867,868,868,,867,,867,867,867", "867,867,867,867,,,,,,867,867,867,867,867,867,867,,,867,,,,,,,867,,,867", "867,867,867,867,867,867,867,,867,867,867,,867,867,867,867,867,,,,,,", ",,,,,,,,,,,,,867,,,867,,,867,867,,,867,,,,,,867,,,,,,,,,867,,,,,867", "867,867,867,,867,867,867,867,,,,,867,867,,,,866,866,866,867,866,867", "867,867,866,866,867,867,,866,,866,866,866,866,866,866,866,,,,,,866,866", "866,866,866,866,866,,,866,,,,,,,866,,,866,866,866,866,866,866,866,866", ",866,866,866,,866,866,866,866,866,,,,,,,,,,,,,,,,,,,,866,,,866,,,866", "866,,,866,,,,,,866,,,,,,,,,866,,,,,866,866,866,866,,866,866,866,866", ",,,,866,866,,,,865,865,865,866,865,866,866,866,865,865,866,866,,865", ",865,865,865,865,865,865,865,,,,,,865,865,865,865,865,865,865,,,865", ",,,,,,865,,,865,865,865,865,865,865,865,865,,865,865,865,,865,865,865", "865,865,,,,,,,,,,,,,,,,,,,,865,,,865,,,865,865,,,865,,,,,,865,,,,,,", ",,865,,,,,865,865,865,865,,865,865,865,865,,,,,865,865,,,,852,852,852", "865,852,865,865,865,852,852,865,865,,852,,852,852,852,852,852,852,852", ",,,,,852,852,852,852,852,852,852,,,852,,,,,,,852,,,852,852,852,852,852", "852,852,852,,852,852,852,,852,852,852,852,852,,,,,,,,,,,,,,,,,,,,852", ",,852,,,852,852,,,852,,,,,,852,,,,,,,,,852,,,,,852,852,852,852,,852", "852,852,852,,,,,852,852,,,,844,844,844,852,844,852,852,852,844,844,852", "852,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844", ",,844,,,,,,,844,,,844,844,844,844,844,844,844,844,,844,844,844,,844", "844,844,844,844,,,,,,,,,,,,,,,,,,,,844,,,844,,,844,844,,,844,,,,,,844", ",,,,,,,,844,,,,,844,844,844,844,,844,844,844,844,,,,,844,844,,,,824", "824,824,844,824,844,844,844,824,824,844,844,,824,,824,824,824,824,824", "824,824,,,,,,824,824,824,824,824,824,824,,,824,,,,,,,824,,,824,824,824", "824,824,824,824,824,,824,824,824,,824,824,824,824,824,,,,,,,,,,,,,,", ",,,,,824,,,824,,,824,824,,,824,,,,,,824,,,,,,,,,824,,,,,824,824,824", "824,,824,824,824,824,,,,,824,824,,,,359,359,359,824,359,824,824,824", "359,359,824,824,,359,,359,359,359,359,359,359,359,,,,,,359,359,359,359", "359,359,359,,,359,,,,,,,359,,,359,359,359,359,359,359,359,359,,359,359", "359,,359,359,359,359,359,,,,,,,,,,,,,,,,,,,,359,,,359,,,359,359,,,359", ",,,,,359,,,,,,,,,359,,,,,359,359,359,359,,359,359,359,359,,,,,359,359", ",,,361,361,361,359,361,359,359,359,361,361,359,359,,361,,361,361,361", "361,361,361,361,,,,,,361,361,361,361,361,361,361,,,361,,,,,,,361,,,361", "361,361,361,361,361,361,361,,361,361,361,,361,361,361,361,361,,,,,,", ",,,,,,,,,,,,,361,,,361,361,,361,361,,,361,,,,,,361,,,,,,,,,361,,,,,361", "361,361,361,,361,361,361,361,,,,,361,361,,,,779,779,779,361,779,361", "361,361,779,779,361,361,,779,,779,779,779,779,779,779,779,,,,,,779,779", "779,779,779,779,779,,,779,,,,,,,779,,,779,779,779,779,779,779,779,779", ",779,779,779,,779,779,779,779,779,,,,,,,,,,,,,,,,,,,,779,,,779,,,779", "779,,,779,,,,,,779,,,,,,,,,779,,,,,779,779,779,779,,779,779,779,779", ",,,,779,779,,,,765,765,765,779,765,779,779,779,765,765,779,779,,765", ",765,765,765,765,765,765,765,,,,,,765,765,765,765,765,765,765,,,765", ",,,,,,765,,,765,765,765,765,765,765,765,765,,765,765,765,,765,765,765", "765,765,,,,,,,,,,,,,,,,,,,,765,,,765,,,765,765,,,765,,765,,,,765,,,", ",,,,,765,,,,,765,765,765,765,,765,765,765,765,,,,,765,765,,,,745,745", "745,765,745,765,765,765,745,745,765,765,,745,,745,745,745,745,745,745", "745,,,,,,745,745,745,745,745,745,745,,,745,,,,,,,745,,,745,745,745,745", "745,745,745,745,,745,745,745,,745,745,745,745,745,,,,,,,,,,,,,,,,,,", ",745,,,745,,,745,745,,,745,,,,,,745,,,,,,,,,745,,,,,745,745,745,745", ",745,745,745,745,,,,,745,745,,,,742,742,742,745,742,745,745,745,742", "742,745,745,,742,,742,742,742,742,742,742,742,,,,,,742,742,742,742,742", "742,742,,,742,,,,,,,742,,,742,742,742,742,742,742,742,742,,742,742,742", ",742,742,742,742,742,,,,,,,,,,,,,,,,,,,,742,,,742,,,742,742,,,742,,", ",,,742,,,,,,,,,742,,,,,742,742,742,742,,742,742,742,742,,,,,742,742", ",,,384,384,384,742,384,742,742,742,384,384,742,742,,384,,384,384,384", "384,384,384,384,,,,,,384,384,384,384,384,384,384,,,384,,,,,,,384,,,384", "384,384,384,384,384,384,384,,384,384,384,,384,384,384,384,384,,,,,,", ",,,,,,,,,,,,,384,,,384,,,384,384,,,384,,,,,,384,,,,,,,,,384,,,,,384", "384,384,384,,384,384,384,384,,,,,384,384,,,,733,733,733,384,733,384", "384,384,733,733,384,384,,733,,733,733,733,733,733,733,733,,,,,,733,733", "733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733,733,733,733", "733,733,733,733,,733,733,733,733,733,,,,,,,,,,,,,,,,,,,,733,,,733,,", "733,733,,,733,,733,,733,,733,,,733,,,,,,733,,,,,733,733,733,733,,733", "733,733,733,,,,,733,733,,,,685,685,685,733,685,733,733,733,685,685,733", "733,,685,,685,685,685,685,685,685,685,,,,,,685,685,685,685,685,685,685", ",,685,,,,,,,685,,,685,685,685,685,685,685,685,685,,685,685,685,,685", "685,685,685,685,,,,,,,,,,,,,,,,,,,,685,,,685,,,685,685,,,685,,,,,,685", ",,,,,,,,685,,,,,685,685,685,685,,685,685,685,685,,,,,685,685,,,,405", "405,405,685,405,685,685,685,405,405,685,685,,405,,405,405,405,405,405", "405,405,,,,,,405,405,405,405,405,405,405,,,405,,,,,,,405,,,405,405,405", "405,405,405,405,405,,405,405,405,,405,405,405,405,405,,,,,,,,,,,,,,", ",,,,,405,,,405,,,405,405,,,405,,,,,,405,,,,,,,,,405,,,,,405,405,405", "405,,405,405,405,405,,,,,405,405,,,,684,684,684,405,684,405,405,405", "684,684,405,405,,684,,684,684,684,684,684,684,684,,,,,,684,684,684,684", "684,684,684,,,684,,,,,,,684,,,684,684,684,684,684,684,684,684,,684,684", "684,,684,684,684,684,684,,,,,,,,,,,,,,,,,,,,684,,,684,,,684,684,,,684", ",,,,,684,,,,,,,,,684,,,,,684,684,684,684,,684,684,684,684,,,,,684,684", ",,,680,680,680,684,680,684,684,684,680,680,684,684,,680,,680,680,680", "680,680,680,680,,,,,,680,680,680,680,680,680,680,,,680,,,,,,,680,,,680", "680,680,680,680,680,680,680,,680,680,680,,680,680,680,680,680,,,,,,", ",,,,,,,,,,,,,680,,,680,,,680,680,,,680,,,,,,680,,,,,,,,,680,,,,,680", "680,680,680,,680,680,680,680,,,,,680,680,,,,679,679,679,680,679,680", "680,680,679,679,680,680,,679,,679,679,679,679,679,679,679,,,,,,679,679", "679,679,679,679,679,,,679,,,,,,,679,,,679,679,679,679,679,679,679,679", ",679,679,679,,679,679,679,679,679,,,,,,,,,,,,,,,,,,,,679,,,679,,,679", "679,,,679,,,,,,679,,,,,,,,,679,,,,,679,679,679,679,,679,679,679,679", ",,,,679,679,,,,678,678,678,679,678,679,679,679,678,678,679,679,,678", ",678,678,678,678,678,678,678,,,,,,678,678,678,678,678,678,678,,,678", ",,,,,,678,,,678,678,678,678,678,678,678,678,678,678,678,678,,678,678", "678,678,678,,,,,,,,,,,,,,,,,,,,678,,,678,,,678,678,,,678,,,,678,,678", ",,678,,,,,,678,,,,,678,678,678,678,,678,678,678,678,,,,,678,678,,,,677", "677,677,678,677,678,678,678,677,677,678,678,,677,,677,677,677,677,677", "677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,,,677,,,677,677,677", "677,677,677,677,677,677,677,677,677,,677,677,677,677,677,,,,,,,,,,,", ",,,,,,,,677,,,677,,,677,677,,,677,,677,,677,,677,,,677,,,,,,677,,,,", "677,677,677,677,,677,677,677,677,,,,,677,677,,,,674,674,674,677,674", "677,677,677,674,674,677,677,,674,,674,674,674,674,674,674,674,,,,,,674", "674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674,674,674,674,674", "674,,674,674,674,,674,674,674,674,674,,,,,,,,,,,,,,,,,,,,674,,,674,", ",674,674,,,674,,,,,,674,,,,,,,,,674,,,,,674,674,674,674,,674,674,674", "674,,,,,674,674,,,,,,,674,,674,674,674,,,674,674,673,673,673,673,673", ",,,673,673,,,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673", "673,673,673,,,673,,,,,,673,673,,673,673,673,673,673,673,673,673,673", ",673,673,673,,673,673,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673", "673,,,673,,673,,,,673,,,,,,,,,673,,,,,673,673,673,673,,673,673,673,673", ",,,,673,673,,,,670,670,670,673,670,673,673,673,670,670,673,673,,670", ",670,670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,,,670", ",,,,,,670,,,670,670,670,670,670,670,670,670,670,670,670,670,,670,670", "670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670,670,,,670,,670,,670,", "670,,,670,,,,,,670,,,,,670,670,670,670,,670,670,670,670,,,,,670,670", ",,,669,669,669,670,669,670,670,670,669,669,670,670,,669,,669,669,669", "669,669,669,669,,,,,,669,669,669,669,669,669,669,,,669,,,,,,,669,,,669", "669,669,669,669,669,669,669,,669,669,669,,669,669,669,669,669,,,,,,", ",,,,,,,,,,,,,669,,,669,,,669,669,,,669,,,,,,669,,,,,,,,,669,,,,,669", "669,669,669,,669,669,669,669,,,,,669,669,,,,668,668,668,669,668,669", "669,669,668,668,669,669,,668,,668,668,668,668,668,668,668,,,,,,668,668", "668,668,668,668,668,,,668,,,,,,,668,,,668,668,668,668,668,668,668,668", ",668,668,668,,668,668,668,668,668,,,,,,,,,,,,,,,,,,,,668,,,668,,,668", "668,,,668,,668,,,,668,,,,,,,,,668,,,,,668,668,668,668,,668,668,668,668", ",,,,668,668,,,,,,,668,,668,668,668,,,668,668,666,666,666,666,666,,,", "666,666,,,,666,,666,666,666,666,666,666,666,,,,,,666,666,666,666,666", "666,666,,,666,,,,,,666,666,,666,666,666,666,666,666,666,666,666,,666", "666,666,,666,666,666,666,666,,,,,,,,,,,,,,,,,,,,666,,,666,,,666,666", ",,666,,666,,,,666,,,,,,,,,666,,,,,666,666,666,666,,666,666,666,666,", ",,,666,666,,,,434,434,434,666,434,666,666,666,434,434,666,666,,434,", "434,434,434,434,434,434,434,,,,,,434,434,434,434,434,434,434,,,434,", ",,,,,434,,,434,434,434,434,434,434,434,434,,434,434,434,,434,434,434", "434,434,,,,,,,,,,,,,,,,,,,,434,,,434,,,434,434,,,434,,,,,,434,,,,,,", ",,434,,,,,434,434,434,434,,434,434,434,434,,,,,434,434,,,,635,635,635", "434,635,434,434,434,635,635,434,434,,635,,635,635,635,635,635,635,635", ",,,,,635,635,635,635,635,635,635,,,635,,,,,,,635,,,635,635,635,635,635", "635,635,635,635,635,635,635,,635,635,635,635,635,,,,,,,,,,,,,,,,,,,", "635,,,635,,,635,635,,,635,,635,,635,,635,,,635,,,,,,635,,,,,635,635", "635,635,,635,635,635,635,,,,,635,635,,,,625,625,625,635,625,635,635", "635,625,625,635,635,,625,,625,625,625,625,625,625,625,,,,,,625,625,625", "625,625,625,625,,,625,,,,,,,625,,,625,625,625,625,625,625,625,625,625", "625,625,625,,625,625,625,625,625,,,,,,,,,,,,,,,,,,,,625,,,625,,,625", "625,,,625,,625,,625,,625,,,625,,,,,,625,,,,,625,625,625,625,,625,625", "625,625,,,,,625,625,,,,624,624,624,625,624,625,625,625,624,624,625,625", ",624,,624,624,624,624,624,624,624,,,,,,624,624,624,624,624,624,624,", ",624,,,,,,,624,,,624,624,624,624,624,624,624,624,,624,624,624,,624,624", "624,624,624,,,,,,,,,,,,,,,,,,,,624,,,624,,,624,624,,,624,,624,,,,624", ",,,,,,,,624,,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,,,611", "611,611,624,611,624,624,624,611,611,624,624,,611,,611,611,611,611,611", "611,611,,,,,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611", "611,611,611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,", ",,,,,,,,611,,,611,,,611,611,,,611,,,,,,611,,,611,,,,,,611,,,,,611,611", "611,611,,611,611,611,611,,,,,611,611,,,,608,608,608,611,608,611,611", "611,608,608,611,611,,608,,608,608,608,608,608,608,608,,,,,,608,608,608", "608,608,608,608,,,608,,,,,,,608,,,608,608,608,608,608,608,608,608,608", "608,608,608,,608,608,608,608,608,,,,,,,,,,,,,,,,,,,,608,,,608,,,608", "608,,,608,,608,,,,608,,,608,,,,,,608,,,,,608,608,608,608,,608,608,608", "608,,,,,608,608,,,,,,,608,,608,608,608,458,,608,608,,,,458,458,458,", ",458,458,458,,458,,,,,,,,458,458,458,458,,,,,,,,,458,458,,458,458,458", "458,458,,,,,,,,,,,,,,,,,,,,,,,458,458,458,458,458,458,458,458,458,458", "458,458,458,458,,,458,458,458,,,458,,458,458,,,458,458,,458,,458,,458", ",458,458,,458,458,458,458,458,,458,458,458,,,,,,,,,,,,,,458,,,458,458", ",458,,458,602,602,602,,602,,458,,602,602,,,,602,,602,602,602,602,602", "602,602,,,,,,602,602,602,602,602,602,602,,,602,,,,,,,602,,,602,602,602", "602,602,602,602,602,,602,602,602,,602,602,602,602,602,,,,,,,,,,,,,,", ",,,,,602,,,602,,,602,602,,,602,,,,,,602,,,,,,,,,602,,,,,602,602,602", "602,,602,602,602,602,,,,,602,602,,,,,,,602,,602,602,602,467,,602,602", ",,,467,467,467,,,467,467,467,,467,,,,,,,,467,467,467,467,467,,,,,,,", "467,467,,467,467,467,467,467,,,,,,,,,,,,,,,,,,,,,,,467,467,467,467,467", "467,467,467,467,467,467,467,467,467,,,467,467,467,,,467,,,467,,,467", "467,,467,,467,,467,,467,467,,467,467,467,467,467,,467,467,467,,,,,,", ",,,,,,,467,,,467,467,467,467,,467,468,467,,,,,467,468,468,468,,,468", "468,468,,468,,,,,,,,468,468,468,468,468,,,,,,,,468,468,,468,468,468", "468,468,,,,,,,,,,,,,,,,,,,,,,,468,468,468,468,468,468,468,468,468,468", "468,468,468,468,,,468,468,468,,,468,,,468,,,468,468,,468,,468,,468,", "468,468,,468,468,468,468,468,,468,468,468,,,,,,,,,,,,,,468,,,468,468", "468,468,,468,,468,,588,588,588,468,588,,,,588,588,,,,588,,588,588,588", "588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,,,588,,,588", "588,588,588,588,588,588,588,,588,588,588,,588,588,588,588,588,,,,,,", ",,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,588,,,,,,,,,588,,,,,588", "588,588,588,,588,588,588,588,,,,,588,588,,,,562,562,562,588,562,588", "588,588,562,562,588,588,,562,,562,562,562,562,562,562,562,,,,,,562,562", "562,562,562,562,562,,,562,,,,,,,562,,,562,562,562,562,562,562,562,562", ",562,562,562,,562,562,562,562,562,,,,,,,,,,,,,,,,,,,,562,,,562,,,562", "562,,,562,,,,,,562,,,,,,,,,562,,,,,562,562,562,562,,562,562,562,562", ",,,,562,562,,,,561,561,561,562,561,562,562,562,561,561,562,562,,561", ",561,561,561,561,561,561,561,,,,,,561,561,561,561,561,561,561,,,561", ",,,,,,561,,,561,561,561,561,561,561,561,561,,561,561,561,,561,561,561", "561,561,,,,,,,,,,,,,,,,,,,,561,,,561,,,561,561,,,561,,,,,,561,,,,,,", ",,561,,,,,561,561,561,561,,561,561,561,561,,,,,561,561,,,,477,477,477", "561,477,561,561,561,477,477,561,561,,477,,477,477,477,477,477,477,477", ",,,,,477,477,477,477,477,477,477,,,477,,,,,,,477,,,477,477,477,477,477", "477,477,477,477,477,477,477,,477,477,477,477,477,,,,,,,,,,,,,,,,,,,", "477,,,477,,,477,477,,,477,,477,,477,,477,,,477,,,,,,477,,,,,477,477", "477,477,,477,477,477,477,,,,,477,477,,,,558,558,558,477,558,477,477", "477,558,558,477,477,,558,,558,558,558,558,558,558,558,,,,,,558,558,558", "558,558,558,558,,,558,,,,,,,558,,,558,558,558,558,558,558,558,558,,558", "558,558,,558,558,558,558,558,,,,,,,,,,,,,,,,,,,,558,,,558,,,558,558", ",,558,,,,,,558,,,,,,,,,558,,,,,558,558,558,558,,558,558,558,558,,,,", "558,558,,,,479,479,479,558,479,558,558,558,479,479,558,558,,479,,479", "479,479,479,479,479,479,,,,,,479,479,479,479,479,479,479,,,479,,,,,", ",479,,,479,479,479,479,479,479,479,479,,479,479,479,,479,479,479,479", "479,,,,,,,,,,,,,,,,,,,,479,,,479,,,479,479,,,479,,,,,,479,,,,,,,,,479", ",,,,479,479,479,479,,479,479,479,479,,,,,479,479,,,,480,480,480,479", "480,479,479,479,480,480,479,479,,480,,480,480,480,480,480,480,480,,", ",,,480,480,480,480,480,480,480,,,480,,,,,,,480,,,480,480,480,480,480", "480,480,480,,480,480,480,,480,480,480,480,480,,,,,,,,,,,,,,,,,,,,480", ",,480,,,480,480,,,480,,,,,,480,,,,,,,,,480,,,,,480,480,480,480,,480", "480,480,480,,,,,480,480,,,,481,481,481,480,481,480,480,480,481,481,480", "480,,481,,481,481,481,481,481,481,481,,,,,,481,481,481,481,481,481,481", ",,481,,,,,,,481,,,481,481,481,481,481,481,481,481,,481,481,481,,481", "481,481,481,481,,,,,,,,,,,,,,,,,,,,481,,,481,,,481,481,,,481,,,,,,481", ",,,,,,,,481,,,,,481,481,481,481,,481,481,481,481,,,,,481,481,,,,555", "555,555,481,555,481,481,481,555,555,481,481,,555,,555,555,555,555,555", "555,555,,,,,,555,555,555,555,555,555,555,,,555,,,,,,,555,,,555,555,555", "555,555,555,555,555,,555,555,555,,555,555,555,555,555,,,,,,,,,,,,,,", ",,,,,555,,,555,,,555,555,,,555,,,,,,555,,,,,,,,,555,,,,,555,555,555", "555,,555,555,555,555,,,,,555,555,,,,545,545,545,555,545,555,555,555", "545,545,555,555,,545,,545,545,545,545,545,545,545,,,,,,545,545,545,545", "545,545,545,,,545,,,,,,,545,,,545,545,545,545,545,545,545,545,545,545", "545,545,,545,545,545,545,545,,,,,,,,,,,,,,,,,,,,545,,,545,,,545,545", ",,545,,545,,545,,545,,,545,,,,,,545,,,,,545,545,545,545,,545,545,545", "545,,,,,545,545,,,,,,,545,,545,545,545,,,545,545,535,535,535,535,535", ",,,535,535,,,,535,,535,535,535,535,535,535,535,,,,,,535,535,535,535", "535,535,535,,,535,,,,,,535,535,535,535,535,535,535,535,535,535,535,535", ",535,535,535,,535,535,535,535,535,,,,,,,,,,,,,,,,,,,,535,,,535,,,535", "535,,,535,,535,,,,535,,,,,,,,,535,,,,,535,535,535,535,,535,535,535,535", ",,,,535,535,,,,,,535,535,,535,535,535,,,535,535,529,529,529,,529,,,", "529,529,,,,529,,529,529,529,529,529,529,529,,,,,,529,529,529,529,529", "529,529,,,529,,,,,,,529,,,529,529,529,529,529,529,529,529,,529,529,529", ",529,529,529,529,529,,,,,,,,,,,,,,,,,,,,529,,,529,,,529,529,,,529,,", ",,,529,,,,,,,,,529,,,,,529,529,529,529,,529,529,529,529,,,,,529,529", ",,,527,527,527,529,527,529,529,529,527,527,529,529,,527,,527,527,527", "527,527,527,527,,,,,,527,527,527,527,527,527,527,,,527,,,,,,,527,,,527", "527,527,527,527,527,527,527,527,527,527,527,,527,527,527,527,527,,,", ",,,,,,,,,,,,,,,,527,,,527,,,527,527,,,527,,,,527,,527,,,527,,,,,,527", ",,,,527,527,527,527,,527,527,527,527,,,,,527,527,,,,525,525,525,527", "525,527,527,527,525,525,527,527,,525,,525,525,525,525,525,525,525,,", ",,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525,525,525,525,525", "525,525,525,525,525,525,525,,525,525,525,525,525,,,,,,,,,,,,,,,,,,,", "525,,,525,,,525,525,,,525,,525,,525,,525,,,525,,,,,,525,,,,,525,525", "525,525,,525,525,525,525,,,,,525,525,,,,219,219,219,525,219,525,525", "525,219,219,525,525,,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,,,219,219", ",,219,,219,,,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,", ",,,219,219,,,,220,220,220,219,220,219,219,219,220,220,219,219,,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,,,220,220,,,220,,220,,,,220,,,", ",,,,,220,,,,,220,220,220,220,,220,220,220,220,,,,,220,220,,,,221,221", "221,220,221,220,220,220,221,221,220,220,,221,,221,221,221,221,221,221", "221,,,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221", "221,221,221,221,,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,", ",221,,,221,,,221,221,,,221,,,,,,221,,,,,,,,,221,,,,,221,221,221,221", ",221,221,221,221,,,,,221,221,,,,222,222,222,221,222,221,221,221,222", "222,221,221,,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,222,222,222,,222,222,222,222,,,,,222,222", ",,,223,223,223,222,223,222,222,222,223,223,222,222,,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", "223,223,223,,223,223,223,223,,,,,223,223,,,,224,224,224,223,224,223", "223,223,224,224,223,223,,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,224,,,224,,224,,224,,224,,,224,,,,,,224,,,,,224,224,224,224,,224", "224,224,224,,,,,224,224,,,,229,229,229,224,229,224,224,224,229,229,224", "224,,229,,229,229,229,229,229,229,229,,,,,,229,229,229,229,229,229,229", ",,229,,,,,,,229,,,229,229,229,229,229,229,229,229,,229,229,229,,229", "229,229,229,229,,,,,,,,,,,,,,,,,,,,229,,,229,,,229,229,,,229,,,,,,229", ",,,,,,,,229,,,,,229,229,229,229,,229,229,229,229,,,,,229,229,,,,230", "230,230,229,230,229,229,229,230,230,229,229,,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,230,230", "230,,230,230,230,230,,,,,230,230,,,,1023,1023,1023,230,1023,230,230", "230,1023,1023,230,230,,1023,,1023,1023,1023,1023,1023,1023,1023,,,,", ",1023,1023,1023,1023,1023,1023,1023,,,1023,,,,,,,1023,,,1023,1023,1023", "1023,1023,1023,1023,1023,,1023,1023,1023,,1023,1023,,,1023,,,,,,,,,", ",,,,,,,,,,1023,,,1023,,,1023,1023,,,1023,,,,,,,,,,,,,,,,,,,,1023,1023", "1023,1023,,1023,1023,1023,1023,,,,,1023,1023,,,,76,76,76,1023,76,1023", "1023,1023,76,76,,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76", ",,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,", ",,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,", "76,76,76,76,,,,,76,76,,,,748,748,748,76,748,76,76,76,748,748,,,,748", ",748,748,748,748,748,748,748,,,,,,748,748,748,748,748,748,748,,,748", ",,,,,,748,,,748,748,748,748,748,748,748,748,,748,748,748,,748,748,,", "748,,,,,,,,,,,,,,,,,,,,748,,,748,,,748,748,,,748,,,,,,,,,,,,,,,,,,,", "748,748,748,748,,748,748,748,748,,,,,748,748,,,,759,759,759,748,759", "748,748,748,759,759,,,,759,,759,759,759,759,759,759,759,,,,,,759,759", "759,759,759,759,759,,,759,,,,,,,759,,,759,759,759,759,759,759,759,759", ",759,759,759,,759,759,,,759,,,,,,,,,,,,,,,,,,,,759,,,759,,,759,759,", ",759,,,,,,,,,,,,,,,,,,,,759,759,759,759,,759,759,759,759,,,,,759,759", ",,,350,350,350,759,350,759,759,759,350,350,,,,350,,350,350,350,350,350", "350,350,,,,,,350,350,350,350,350,350,350,,,350,,,,,,,350,,,350,350,350", "350,350,350,350,350,,350,350,350,,350,350,,,350,,,,,,,,,,,,,,,,,,,,350", ",,350,,,350,350,,,350,,,,,,,,,,,,,,,,,,,,350,350,350,350,,350,350,350", "350,,,,,350,350,,,,37,37,37,350,37,350,350,350,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,,37,,,,,,,,,,,,,,,,,,37,37,37,37,,37,37,37,37,,,,,37,37,,,,552,552", "552,37,552,37,37,37,552,552,,,,552,,552,552,552,552,552,552,552,,,,", ",552,552,552,552,552,552,552,,,552,,,,,,,552,,,552,552,552,552,552,552", "552,552,,552,552,552,,552,552,,,552,,,,,,,,,,,,,,,,,,,,552,,,552,,,552", "552,,,552,,,,,,,,,,,,,,,,,,,,552,552,552,552,,552,552,552,552,,,,,552", "552,,,,1103,1103,1103,552,1103,552,552,552,1103,1103,,,,1103,,1103,1103", "1103,1103,1103,1103,1103,,,,,,1103,1103,1103,1103,1103,1103,1103,,,1103", ",,,,,,1103,,,1103,1103,1103,1103,1103,1103,1103,1103,,1103,1103,1103", ",1103,1103,,,1103,,,,,,,,,,,,,,,,,,,,1103,,,1103,,,1103,1103,,,1103", ",,,,,,,,,,,,,,,,,,,1103,1103,1103,1103,,1103,1103,1103,1103,,,,,1103", "1103,,,,77,77,77,1103,77,1103,1103,1103,77,77,,,,77,,77,77,77,77,77", "77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77", "77,,77,77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,", ",,,,,,,,,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,543,543,543", "77,543,77,77,77,543,543,,,,543,,543,543,543,543,543,543,543,,,,,,543", "543,543,543,543,543,543,,,543,,,,,,,543,,,543,543,543,543,543,543,543", "543,,543,543,543,,543,543,,,543,,,,,,,,,,,,,,,,,,,,543,,,543,,,543,543", ",,543,,,,,,,,,,,,,,,,,,,,543,543,543,543,,543,543,543,543,,,,,543,543", ",,,78,78,78,543,78,543,543,543,78,78,,,,78,,78,78,78,78,78,78,78,,,", ",,78,78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78", "78,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,", ",,,,,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,38,38,38,78,38,78,78,78", "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,,,777,,777,777,777,777,777,,,,,,,,,777,,38", "38,38,38,,38,38,38,38,,,,,38,38,,,,38,,777,38,,38,38,38,331,331,331", ",331,777,777,,331,331,777,,,331,,331,331,331,331,331,331,331,,,,,,331", "331,331,331,331,331,331,,,331,,,,,,,331,,,331,331,331,331,331,331,331", "331,,331,331,331,,331,331,,,331,,,,,,,,,,,,,,,,,,,,331,,,331,,,331,331", ",,331,,,1043,,1043,1043,1043,1043,1043,,,,,,,,,1043,,331,331,331,331", ",331,331,331,331,,,,,331,331,,,,331,,1043,331,,331,331,331,1033,1033", "1033,,1033,1043,1043,,1033,1033,1043,,,1033,,1033,1033,1033,1033,1033", "1033,1033,,,,,,1033,1033,1033,1033,1033,1033,1033,,,1033,,,,,,,1033", ",,1033,1033,1033,1033,1033,1033,1033,1033,,1033,1033,1033,,1033,1033", ",,1033,,,,,,,,,,,,,,,,,,,,1033,,,1033,,,1033,1033,,,1033,,,,,,,,,,,", ",,,,,,,,1033,1033,1033,1033,,1033,1033,1033,1033,,,,,1033,1033,,,,,", ",1033,,1033,1033,1033,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,,,,,,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,11,11,11,11", "11,,,11,11,,,,,,,,,,,,,,11,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,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,10,10,10,10,10", "10,10,10,,,10,10,,,,,,,,,,,,,,10,664,664,664,664,664,664,664,664,664", "664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,,,,664,664", "664,664,664,664,664,664,664,664,,,,,,664,664,664,664,664,664,664,664", "664,,,664,,,,,,,,664,664,,664,664,664,664,664,664,664,,,664,664,,,,664", "664,664,664,,,,,,,,,,,,,,664,664,,664,664,664,664,664,664,664,664,664", "664,664,664,,,664,664,,,,,,,,,,,,,,664,425,425,425,425,425,425,425,425", "425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,,,,425", "425,425,425,425,425,425,425,425,425,,,,,,425,425,425,425,425,425,425", "425,425,,,425,,,,,,,,425,425,,425,425,425,425,425,425,425,,,425,425", ",,,425,425,425,425,,,,,,,,,,,,,,425,425,,425,425,425,425,425,425,425", "425,425,425,425,425,,,425,425,,,,,,,,,,,,,,425,24,24,24,24,24,24,24", "24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,,,,24,24,24,24,24", "24,24,24,24,24,,,,,,24,24,24,24,24,24,24,24,24,24,24,24,,24,,,,,,24", "24,,24,24,24,24,24,24,24,,,24,24,,,,24,24,24,24,,,,,,24,,,,,,,,24,24", ",24,24,24,24,24,24,24,24,24,24,24,24,,,24,1001,1001,1001,1001,,,,,,", ",,,,,,1001,1001,1001,1001,,,367,1001,367,367,367,367,367,1001,1001,", ",1001,,,,367,,,,,,,,,,,,,,,,1001,,,1001,,,367,1001,,,1001,,,,,367,367", "367,367,,,,367,,,,1001,,,,1001,1001,1001,1001,,1001,1001,1001,1001,", ",,,1001,1001,1084,1084,1084,1084,,,1001,,1001,1001,1001,,,1001,1001", ",1084,1084,1084,1084,,,793,1084,793,793,793,793,793,1084,1084,,,1084", ",,,793,,,,,,,,,,,,,,,,1084,,,1084,,,793,1084,,,1084,,,,,793,793,793", "793,,,,793,,,,1084,,,,1084,1084,1084,1084,,1084,1084,1084,1084,,,,,1084", "1084,985,985,985,985,,,1084,,1084,1084,1084,,,1084,1084,,985,985,985", "985,,,1212,985,1212,1212,1212,1212,1212,985,985,,,985,,,,1212,,,,,,", ",,,,,,,,,985,,,985,,,1212,985,,,985,,,,,,,1212,1212,,,,1212,,,,985,", ",,985,985,985,985,,985,985,985,985,,,,,985,985,1138,1138,1138,1138,", ",985,,985,985,985,,,985,985,,1138,1138,1138,1138,,,775,1138,775,775", "775,775,775,1138,1138,,,1138,,,,775,,,,,,,,,,,,,,,,1138,,,1138,,,775", "1138,,,1138,,,,,775,775,775,775,,,,775,,,,1138,,,,1138,1138,1138,1138", ",1138,1138,1138,1138,,,,,1138,1138,1200,1200,1200,1200,,,1138,,1138", "1138,1138,,,1138,1138,,1200,1200,1200,1200,,,1041,1200,1041,1041,1041", "1041,1041,1200,1200,,,1200,,,,1041,,,,,,,,,,,,,,,,1200,,,1200,,,1041", "1200,,,1200,,,,,,,1041,1041,,,,1041,,,,1200,,,,1200,1200,1200,1200,", "1200,1200,1200,1200,,,,,1200,1200,1140,1140,1140,1140,,,1200,,1200,1200", "1200,,,1200,1200,,1140,1140,1140,1140,,,1038,1140,1038,1038,1038,1038", "1038,1140,1140,,,1140,,,,1038,,,,,,,,,,,,,,,,1140,,,1140,,,1038,1140", ",,1140,,1140,,,,,1038,1038,,,,1038,,,,1140,,,,1140,1140,1140,1140,,1140", "1140,1140,1140,,,,,1140,1140,1176,1176,1176,1176,,,1140,,1140,1140,1140", ",,1140,1140,,1176,1176,1176,1176,,,1159,1176,1159,1159,1159,1159,1159", "1176,1176,,,1176,,,,1159,,,,,,,,,,,,,,,,1176,,,1176,,,1159,1176,,,1176", ",,,,,,1159,1159,,,,1159,,,,1176,,,,1176,1176,1176,1176,,1176,1176,1176", "1176,,,,,1176,1176,,,,,,,1176,,1176,1176,1176,,,1176,1176,725,725,725", "725,725,725,725,725,725,725,725,725,725,725,725,725,725,725,725,725", "725,725,725,725,,,,725,725,725,725,725,725,725,725,725,725,,,,,,725", "725,725,725,725,725,725,725,725,,,725,,,,,,,,725,725,,725,725,725,725", "725,725,725,,,725,725,,,,725,725,725,725,,,,,,,,,,,,,,725,725,,725,725", "725,725,725,725,725,725,725,725,725,725,,,725,953,953,953,953,,,1099", ",1099,1099,1099,1099,1099,,,,953,953,953,953,,1099,,953,953,,,,,953", "953,,,953,953,,,,,,,,,1099,,,,,,,,,,953,1099,1099,953,,,1099,953,,,953", ",953,,,,,,,953,,,,,,,953,,,,953,953,953,953,,953,953,953,953,,,,,953", "953,701,701,701,701,,,953,,953,953,953,,,953,953,,701,701,701,701,,", "1036,701,1036,1036,1036,1036,1036,701,701,,,701,,,,1036,,,,,,,,,,,,", ",,,701,,,701,,,1036,701,,,701,,701,,,1036,1036,1036,1036,,,,1036,,,", "701,,,,701,701,701,701,,701,701,701,701,,,,,701,701,701,889,889,889", "889,,701,,701,701,701,,,701,701,,,889,889,889,889,,,1094,889,1094,1094", "1094,1094,1094,889,889,,,889,,,,1094,,,,,,,,,,,,,,,,889,,,889,,,1094", "889,,,889,,,,,1094,1094,1094,1094,,,,1094,,,,889,,,,889,889,889,889", ",889,889,889,889,,,,,889,889,482,482,482,482,,,889,,889,889,889,,,889", "889,,482,482,482,482,,,1097,482,1097,1097,1097,1097,1097,482,482,,,482", ",,,1097,,,,,,,,,,,,,,,,482,,,482,,,1097,482,,,482,,,,,1097,1097,1097", "1097,,,,1097,,,,482,,,,482,482,482,482,,482,482,482,482,,,,,482,482", "881,881,881,881,,,482,,482,482,482,,,482,482,,881,881,881,881,,,1186", "881,1186,1186,1186,1186,1186,881,881,,,881,,,,1186,,,,,,,,,,,,,,,,881", ",,881,,,1186,881,,,881,,881,,,,,1186,1186,,,,1186,,,,881,,,,881,881", "881,881,,881,881,881,881,,,,,881,881,875,875,875,875,,,881,,881,881", "881,,,881,881,,875,875,875,875,,,,875,875,,,,,875,875,,,875,875,,,,", ",,,,,,,,,,,,,,875,,,875,,,,875,,,875,,875,,,,,,,875,,,,,,,875,,,,875", "875,875,875,,875,875,875,875,,,,,875,875,874,874,874,874,,,875,,875", "875,875,,,875,875,,874,874,874,874,,,,874,874,,,,,874,874,,,874,874", ",,,,,,,,,,,,,,,,,,874,,,874,,,,874,,,874,,874,,,,,,,874,,,,,,,874,,", ",874,874,874,874,,874,874,874,874,,,,,874,874,871,871,871,871,,,874", ",874,874,874,,,874,874,,871,871,871,871,,,1184,871,1184,1184,1184,1184", "1184,871,871,,,871,,,,1184,,,,,,,,,,,,,,,,871,,,871,,,1184,871,,,871", ",,,,,,1184,1184,,,,1184,,,,871,,,,871,871,871,871,,871,871,871,871,", ",,,871,871,483,483,483,483,,,871,,871,871,871,,,871,871,,483,483,483", "483,,,1182,483,1182,1182,1182,1182,1182,483,483,,,483,,,,1182,,,,,,", ",,,,,,,,,483,,,483,,,1182,483,,,483,,,,,,,1182,1182,,,,1182,,,,483,", ",,483,483,483,483,,483,483,483,483,,,,,483,483,1124,1124,1124,1124,", ",483,,483,483,483,,,483,483,,1124,1124,1124,1124,,,,1124,,,,,,1124,1124", ",,1124,,,,,,,,708,708,708,708,,,,,,,,,1124,,,1124,708,708,708,1124,", ",1124,,1124,,,,,708,708,,,708,,,,,1124,,,,1124,1124,1124,1124,,1124", "1124,1124,1124,,,,,1124,1124,,,,,,,1124,,1124,1124,1124,,,1124,1124", "407,,407,407,407,407,407,,,,,708,708,708,708,407,708,708,708,708,,,", ",708,708,891,891,891,891,,,708,,708,708,708,407,407,,,,891,891,891,", "407,407,407,407,,,,407,,891,891,,,891,890,890,890,890,,,,,,,,,,,,,890", "890,890,,,,,,,,,,,890,890,,,890,,,,,,,,,,,,,,,,891,891,891,891,,891", "891,891,891,,,,,891,891,,,,,,,891,,891,891,891,,,,,,,,,890,890,890,890", ",890,890,890,890,,,,,890,890,671,671,,,671,,890,,890,890,890,,671,671", ",671,671,671,671,671,671,671,,,671,671,,,,671,671,671,671,,,,,,671,", ",,,,,,671,671,,671,671,671,671,671,671,671,671,671,671,671,671,626,626", "671,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,,,626,626,,,,626", "626,626,626,,,,,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,626", "626,626,626,626,225,225,626,,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,226,226,225,,226,,,,,,,,226", "226,,226,226,226,226,226,226,226,,,226,226,,,,226,226,226,226,,,,,,226", ",,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226,226,627", "627,226,,627,,,,,,,,627,627,,627,627,627,627,627,627,627,,,627,627,", ",,627,627,627,627,,,,,,627,,,,,,,,627,627,,627,627,627,627,627,627,627", "627,627,627,627,627,547,547,627,,547,,,,,,,,547,547,,547,547,547,547", "547,547,547,,,547,547,,,,547,547,547,547,,,,,,547,,,,,,,,547,547,,547", "547,547,547,547,547,547,547,547,547,547,547,475,475,547,,475,,,,,,,", "475,475,,475,475,475,475,475,475,475,,,475,475,,,,475,475,475,475,,", ",,,475,,,,,,,,475,475,,475,475,475,475,475,475,475,475,475,475,475,475", "1152,1152,475,,1152,,,,,,,,1152,1152,,1152,1152,1152,1152,1152,1152", "1152,,,1152,1152,,,,1152,1152,1152,1152,,,,,,1152,,,,,,,,1152,1152,", "1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,633,633", "1152,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,,,633,633,,,,633", "633,633,633,,,,,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,633", "633,633,633,633,556,556,633,,556,,,,,,,,556,556,,556,556,556,556,556", "556,556,,,556,556,,,,556,556,556,556,,,,,,556,,,,,,,,556,556,,556,556", "556,556,556,556,556,556,556,556,556,556,557,557,556,,557,,,,,,,,557", "557,,557,557,557,557,557,557,557,,,557,557,,,,557,557,557,557,,,,,,557", ",,,,,,,557,557,,557,557,557,557,557,557,557,557,557,557,557,557,546", "546,557,,546,,,,,,,,546,546,,546,546,546,546,546,546,546,,,546,546,", ",,546,546,546,546,,,,,,546,,,,,,,,546,546,,546,546,546,546,546,546,546", "546,546,546,546,546,634,634,546,,634,,,,,,,,634,634,,634,634,634,634", "634,634,634,,,634,634,,,,634,634,634,634,,,,,,634,,,,,,,,634,634,,634", "634,634,634,634,634,634,634,634,634,634,634,1156,1156,634,,1156,,,,", ",,,1156,1156,,1156,1156,1156,1156,1156,1156,1156,,,1156,1156,,,,1156", "1156,1156,1156,,,,,,1156,,,,,,,,1156,1156,,1156,1156,1156,1156,1156", "1156,1156,1156,1156,1156,1156,1156,476,476,1156,,476,,,,,,,,476,476", ",476,476,476,476,476,476,476,,,476,476,,,,476,476,476,476,,,,,,476,", ",,,,,,476,476,,476,476,476,476,476,476,476,476,476,476,476,476,1157", "1157,476,,1157,,,,,,,,1157,1157,,1157,1157,1157,1157,1157,1157,1157", ",,1157,1157,,,,1157,1157,1157,1157,,,,,,1157,,,,,,,,1157,1157,,1157", "1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,672,672,1157", ",672,,,,,,,,672,672,,672,672,672,672,672,672,672,,,672,672,,,,672,672", "672,672,,,,,,672,,,,,,,,672,672,,672,672,672,672,672,672,672,672,672", "672,672,672,,641,672,641,641,641,641,641,,1180,,1180,1180,1180,1180", "1180,641,,,,,,,,1180,,,,,,,,,,,,,,641,,,,,,,,1180,641,641,641,641,,", ",641,1180,1180,1180,1180,,,,1180"]; - racc_action_check = (arr = $$$('::', 'Array').$new(28007, nil)); + return (idx = $rb_plus(idx, 1));}, 1);}, 1); + clist = ["464,521,1016,837,1236,838,992,464,464,464,515,515,1053,464,464,289,464", "23,835,631,1087,1058,289,807,464,927,443,137,396,785,3,840,137,137,501", "31,464,464,1089,464,464,464,464,464,1104,1105,1108,384,385,392,850,622", "501,625,1092,932,1092,331,23,928,521,625,331,393,1058,927,464,464,464", "464,464,464,464,464,464,464,464,464,464,464,289,1165,464,464,464,443", "464,464,1200,807,464,1201,839,464,1053,928,840,9,464,31,464,932,464", "464,515,464,464,464,464,464,871,464,837,464,838,992,785,871,871,871", "1016,1202,31,871,871,1016,871,464,631,807,464,464,807,464,871,464,835", "396,1087,835,840,835,464,1087,807,464,871,871,1203,871,871,871,871,871", "1222,622,1089,839,392,850,622,1089,1104,1105,1108,384,385,1104,1105", "1108,384,385,393,981,981,12,871,871,871,871,871,871,871,871,871,871", "871,871,871,871,553,553,871,871,871,69,871,871,1202,1165,871,839,416", "871,1165,1127,1200,735,871,1201,871,1200,871,871,1201,871,871,871,871", "871,251,871,729,871,243,1203,244,641,641,729,729,729,358,358,729,729", "729,871,729,1202,871,871,802,871,1202,871,729,729,729,729,729,417,871", "735,802,871,14,808,729,729,246,729,729,729,729,729,1203,981,416,1127", "1127,1203,1222,810,979,15,251,1222,351,576,252,17,69,243,553,244,1127", "27,729,729,729,729,729,729,729,729,729,729,729,729,729,729,20,458,729", "729,729,656,729,729,358,358,729,48,48,729,729,417,729,246,729,641,729", "808,729,729,641,729,729,729,729,729,42,729,729,729,252,459,810,810,979", "947,351,576,576,576,658,45,414,729,458,413,729,729,729,729,53,729,20", "729,576,730,458,808,729,351,808,729,730,730,730,656,656,730,730,730", "1220,730,808,810,979,656,810,979,459,730,1220,730,730,730,1006,48,48", "727,810,979,459,730,730,216,730,730,730,730,730,947,947,947,756,229", "658,658,414,414,414,413,413,413,728,923,658,402,947,19,746,402,756,730", "730,730,730,730,730,730,730,730,730,730,730,730,730,746,44,730,730,730", "412,730,730,1006,231,730,727,291,730,730,418,730,288,730,291,730,235", "730,730,288,730,730,730,730,730,870,730,869,730,700,700,728,923,19,972", "415,972,972,972,972,972,245,730,44,290,730,730,730,730,972,730,290,730", "996,872,44,822,730,996,822,730,872,872,872,412,412,412,872,872,776,872", "972,291,776,418,418,418,288,872,872,972,972,972,972,870,931,869,972", "247,931,872,872,248,872,872,872,872,872,254,415,415,415,1022,634,1022", "1022,1022,1022,1022,290,634,362,914,972,914,914,914,1022,914,634,872", "872,872,872,872,872,872,872,872,872,872,872,872,872,305,43,872,872,872", "1022,872,872,319,389,872,411,320,872,389,914,1022,1022,872,323,872,1022", "872,872,362,872,872,872,872,872,108,872,872,872,634,5,362,108,108,108", "5,335,108,108,108,287,108,872,43,336,872,872,287,872,108,872,108,108", "108,744,43,1022,872,338,744,872,108,108,744,108,108,108,108,108,339", "411,411,411,340,347,286,294,295,29,759,759,347,286,294,295,29,376,346", "21,376,347,108,108,108,108,108,108,108,108,108,108,108,108,108,108,287", "345,108,108,108,1187,108,108,345,349,108,350,1187,108,108,352,108,345", "108,509,108,1187,108,108,509,108,108,108,108,108,21,108,111,108,347", "286,294,295,29,111,111,111,21,353,111,111,111,108,111,357,108,108,108", "108,359,108,111,108,111,111,111,377,108,366,377,108,345,368,111,111", "1187,111,111,111,111,111,371,442,374,404,378,54,293,292,442,379,404", "381,54,293,292,380,390,442,380,404,391,54,111,111,111,111,111,111,111", "111,111,111,111,111,111,111,395,939,111,111,111,394,111,111,1090,1090", "111,939,394,111,111,397,111,678,111,406,111,394,111,111,426,111,111", "111,111,111,442,111,404,111,54,293,292,432,1145,434,775,1157,775,775", "1157,1145,775,111,435,939,111,111,111,111,1145,111,437,111,440,465,444", "939,111,454,678,111,465,465,465,1132,394,456,465,465,811,465,678,775", "531,1132,457,811,466,465,465,472,811,823,823,473,811,762,762,762,762", "465,465,476,465,465,465,465,465,1145,383,383,477,762,762,762,531,478", "1132,1132,531,531,481,1132,482,532,762,762,16,16,762,465,465,465,465", "465,465,465,465,465,465,465,465,465,465,811,483,465,465,465,493,465", "465,1106,505,465,508,532,465,18,1106,532,532,465,511,465,18,465,465", "1106,465,465,465,465,465,18,465,465,465,517,762,762,762,762,525,762", "762,762,762,945,1190,1190,465,762,762,465,465,88,465,945,465,762,526", "762,762,762,533,465,534,88,465,387,387,387,387,387,387,535,1106,88,387", "387,536,561,18,387,842,387,387,387,387,387,387,387,562,563,567,945,583", "387,387,387,387,387,387,387,584,587,387,945,589,594,51,51,387,387,387", "387,387,387,387,387,387,387,387,387,598,387,387,387,843,387,387,387", "387,387,593,843,842,607,343,608,843,593,609,842,843,343,51,51,842,619", "593,623,842,387,343,624,387,626,653,387,387,363,661,387,663,387,670", "679,363,387,714,842,714,714,714,684,714,363,387,689,691,693,707,387", "387,387,387,712,387,387,387,387,713,843,715,722,387,387,731,593,740", "842,748,343,387,749,387,387,387,750,779,387,387,841,841,841,841,841", "841,782,784,790,841,841,791,792,363,841,400,841,841,841,841,841,841", "841,794,796,697,804,806,841,841,841,841,841,841,841,697,1099,841,1099", "1099,1099,809,1099,841,841,841,841,841,841,841,841,841,841,841,841,812", "841,841,841,242,841,841,841,841,841,344,242,400,697,697,813,816,344", "697,400,242,825,831,832,400,836,344,845,400,841,849,851,841,866,868", "841,841,877,890,841,1197,841,1197,1197,1197,841,1197,400,893,913,894", "913,913,913,841,913,897,899,902,841,841,841,841,903,841,841,841,841", "905,242,906,908,841,841,912,344,925,400,933,934,841,938,841,841,841", "941,913,841,841,236,236,236,236,236,236,913,649,649,236,236,649,649", "649,236,401,236,236,236,236,236,236,236,8,8,8,8,8,236,236,236,236,236", "236,236,946,494,236,494,494,494,965,494,236,236,236,236,236,236,236", "236,236,236,236,236,968,236,236,236,969,236,236,236,236,236,978,710", "401,710,710,710,983,710,494,401,986,993,995,1002,401,1003,1004,494,401", "236,1005,1031,236,1032,1037,236,236,1042,1043,236,1044,236,1045,1046", "1047,236,1051,401,710,1114,1052,1114,1114,1114,236,1114,1055,710,1059", "236,236,236,236,1066,236,236,236,236,1071,1072,1074,1075,236,236,1076", "1078,1079,401,1080,1096,236,1107,236,236,236,1110,1114,236,236,1103", "1103,1103,1103,1103,1103,1111,1112,1113,1103,1103,1124,1143,1146,1103", "1155,1103,1103,1103,1103,1103,1103,1103,25,1156,1161,1171,1172,1103", "1103,1103,1103,1103,1103,1103,1174,1177,1103,581,581,581,581,581,1103", "1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1180,1103,1103", "1103,1181,1103,1103,1103,1103,1103,25,25,25,25,25,25,25,25,25,25,25", "1182,25,25,1183,1185,25,25,1199,1103,1204,25,1103,1206,1217,1103,1103", "1218,1224,1103,1225,1103,25,1226,25,1103,25,25,1227,25,25,25,25,25,1103", "25,1,,,1103,1103,1103,1103,,1103,1103,1103,1103,,,,,1103,1103,,25,,", ",,1103,,1103,1103,1103,,,1103,1103,997,997,997,997,997,997,,,,997,997", ",,,997,,997,997,997,997,997,997,997,373,373,373,373,373,997,997,997", "997,997,997,997,,,997,,,,,447,997,997,997,997,997,997,997,997,997,997", "997,997,,997,997,997,,997,997,997,997,997,447,447,447,447,447,447,447", "447,447,447,447,,447,447,,,447,447,,997,,,997,,,997,997,,,997,,997,447", ",447,997,447,447,,447,447,447,447,447,997,447,,,,997,997,997,997,,997", "997,997,997,,,,,997,997,,447,,447,,,997,,997,997,997,,,997,997,337,337", "337,337,337,337,,,,337,337,,,,337,,337,337,337,337,337,337,337,334,334", "334,334,334,337,337,337,337,337,337,337,,,337,,,,,692,337,337,337,337", "337,337,337,337,337,337,337,337,,337,337,337,,337,337,337,337,337,692", "692,692,692,692,692,692,692,692,692,692,,692,692,,,692,692,,337,,,337", ",,337,337,,,337,,337,692,,692,337,692,692,,692,692,692,692,692,337,692", ",,,337,337,337,337,,337,337,337,337,,,,,337,337,,692,,,,,337,,337,337", "337,,,337,337,38,38,38,38,38,38,,,,38,38,,,,38,,38,38,38,38,38,38,38", ",,,,,38,38,38,38,38,38,38,,,38,,,,,453,38,38,38,38,38,38,38,38,38,38", "38,38,,38,38,38,,38,38,38,38,38,453,453,453,453,453,453,453,453,453", "453,453,,453,453,,,453,453,,38,,,38,,,38,38,,,38,,38,453,,453,38,453", "453,,453,453,453,453,453,38,453,,,,38,38,38,38,,38,38,38,38,,,,,38,38", ",453,,,,,38,,38,38,38,,,38,38,642,642,642,642,642,642,,,,642,642,,,", "642,,642,642,642,642,642,642,642,,,,,,642,642,642,642,642,642,642,,", "642,,,,,723,642,642,642,642,642,642,642,642,642,642,642,642,,642,642", "642,,642,642,642,642,642,723,723,723,723,723,723,723,723,723,723,723", ",723,723,,,723,723,,642,,,642,,,642,642,,,642,,642,723,,723,642,723", "723,,723,723,723,723,723,642,723,,,,642,642,642,642,,642,642,642,642", ",,,,642,642,,723,,,,,642,,642,642,642,,,642,642,1068,1068,1068,1068", "1068,1068,,,,1068,1068,,,,1068,,1068,1068,1068,1068,1068,1068,1068,", ",,,,1068,1068,1068,1068,1068,1068,1068,,,1068,,,,,,1068,1068,1068,1068", "1068,1068,1068,1068,1068,1068,1068,1068,,1068,1068,1068,,1068,1068,1068", "1068,1068,817,817,817,817,817,817,817,817,817,817,817,,817,817,,,817", "817,,1068,,,1068,,,1068,1068,,,1068,,1068,817,,817,1068,817,817,,817", "817,817,817,817,1068,817,,,,1068,1068,1068,1068,,1068,1068,1068,1068", ",,,,1068,1068,,817,,,,,1068,,1068,1068,1068,,,1068,1068,372,372,372", "372,372,372,,,,372,372,,,,372,,372,372,372,372,372,372,372,,,,,,372", "372,372,372,372,372,372,,,372,,,,,,372,372,372,372,372,372,372,372,372", "372,372,372,,372,372,372,,372,372,372,372,372,874,874,874,874,874,874", "874,874,874,874,874,,874,874,,,874,874,,372,,,372,,,372,372,,,372,,372", "874,,874,372,874,874,,874,874,874,874,874,372,874,,,,372,372,372,372", ",372,372,372,372,,,,,372,372,,874,,,,,372,,372,372,372,,,372,372,973", "973,973,973,973,973,,,,973,973,,,,973,,973,973,973,973,973,973,973,", ",,,,973,973,973,973,973,973,973,,,973,,,,,,973,973,973,973,973,973,973", "973,973,973,973,973,,973,973,973,,973,973,973,973,973,317,317,317,317", "317,317,317,317,317,317,317,,317,317,,,317,317,,973,,,973,,,973,973", ",,973,,973,317,,317,973,317,317,,317,317,317,317,317,973,317,,,,973", "973,973,973,,973,973,973,973,,,,,973,973,,317,,,,,973,,973,973,973,", ",973,973,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2,2,2,2,2,2,2,", ",2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,2,2,2,550,550,550,550,550", "550,550,550,550,550,550,,550,550,,,550,550,,2,,,2,,,2,2,,,2,,2,550,", "550,2,550,550,,550,550,550,550,550,2,550,,,,2,2,2,2,,2,2,2,2,,,,,2,2", "550,550,,,,,2,,2,2,2,,,2,2,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,230,230,230,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067", ",1067,1067,,,1067,1067,,230,,,230,,,230,230,,,230,,230,1067,,1067,230", "1067,1067,,1067,1067,1067,1067,1067,230,1067,,,,230,230,230,230,,230", "230,230,230,,,,,230,230,,1067,,,,,230,,230,230,230,,,230,230,342,342", "342,342,342,342,,,,342,342,,,,342,,342,342,342,342,342,342,342,,,,,", "342,342,342,342,342,342,342,,,342,,,,,,342,342,342,342,342,342,342,342", "342,342,342,342,,342,342,342,,342,342,342,342,342,1034,1034,1034,1034", "1034,1034,1034,1034,1034,1034,1034,,1034,1034,,,1034,1034,,342,,,342", ",,342,342,,,342,,342,1034,,1034,342,1034,1034,,1034,1034,1034,1034,1034", "342,1034,,,,342,342,342,342,,342,342,342,342,,,,,342,342,,1034,,,,,342", ",342,342,342,,,342,342,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,253,,253,253,253,,253,253", "253,253,253,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,", "1033,1033,,,1033,1033,,253,,,253,,,253,253,,,253,,253,1033,,1033,253", "1033,1033,,1033,1033,1033,1033,1033,253,1033,,,,253,253,253,253,,253", "253,253,253,,,,,253,253,,1033,,,,,253,,253,253,253,,,253,253,1013,1013", "1013,1013,1013,1013,,,,1013,1013,,,,1013,,1013,1013,1013,1013,1013,1013", "1013,,,,,,1013,1013,1013,1013,1013,1013,1013,,,1013,,,,,,1013,1013,1013", "1013,1013,1013,1013,1013,1013,1013,1013,1013,,1013,1013,1013,,1013,1013", "1013,1013,1013,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011", ",1011,1011,,,1011,1011,,1013,,,1013,,,1013,1013,,,1013,,1013,1011,,1011", "1013,1011,1011,,1011,1011,1011,1011,1011,1013,1011,,,,1013,1013,1013", "1013,,1013,1013,1013,1013,,,,,1013,1013,,1011,,,,,1013,,1013,1013,1013", ",,1013,1013,1098,1098,1098,1098,1098,1098,,,,1098,1098,,,,1098,,1098", "1098,1098,1098,1098,1098,1098,,,,,,1098,1098,1098,1098,1098,1098,1098", ",,1098,,,,,,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098", ",1098,1098,1098,,1098,1098,1098,1098,1098,1010,1010,1010,1010,1010,1010", "1010,1010,1010,1010,1010,,1010,1010,,,1010,1010,,1098,,,1098,,,1098", "1098,,,1098,,1098,1010,,1010,1098,1010,1010,,1010,1010,1010,1010,1010", "1098,1010,,,,1098,1098,1098,1098,,1098,1098,1098,1098,,,,,1098,1098", ",1010,,,,,1098,,1098,1098,1098,,,1098,1098,1097,1097,1097,1097,1097", "1097,,,,1097,1097,,,,1097,,1097,1097,1097,1097,1097,1097,1097,,,,,,1097", "1097,1097,1097,1097,1097,1097,,,1097,,,,,,1097,1097,1097,1097,1097,1097", "1097,1097,1097,1097,1097,1097,,1097,1097,1097,,1097,1097,1097,1097,1097", "529,529,529,529,529,529,529,529,529,529,529,,529,529,,,529,529,,1097", ",,1097,,,1097,1097,,546,1097,,1097,529,,529,1097,529,529,,529,529,529", "529,529,1097,529,,,,1097,1097,1097,1097,,1097,1097,1097,1097,,,546,", "1097,1097,546,546,,546,546,,1097,,1097,1097,1097,,,1097,1097,1147,1147", "1147,1147,1147,1147,,,,1147,1147,,,,1147,,1147,1147,1147,1147,1147,1147", "1147,,,,,,1147,1147,1147,1147,1147,1147,1147,547,1115,1147,1115,1115", "1115,,1115,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147", ",1147,1147,1147,,1147,1147,1147,1147,1147,604,,547,,,,547,547,1115,547", "547,,,,,,604,604,,1147,,,1147,,,1147,1147,,,1147,,1147,604,,604,1147", "604,604,,604,604,,,604,1147,604,,,,1147,1147,1147,1147,,1147,1147,1147", "1147,,,,,1147,1147,,,,,,,1147,,1147,1147,1147,,,1147,1147,621,621,621", "621,621,621,,,,621,621,,,,621,,621,621,621,621,621,621,621,,,,,,621", "621,621,621,621,621,621,,,621,,,,,,621,621,621,621,621,621,621,621,621", "621,621,621,,621,621,621,,621,621,621,621,621,364,364,364,364,364,364", "364,364,364,364,364,,364,364,,,364,364,,621,,,621,,,621,621,,,621,,621", "364,,364,621,364,364,,364,364,364,364,364,621,364,,,,621,621,621,621", ",621,621,621,621,,,,,621,621,,,,,,,621,,621,621,621,,,621,621,892,892", "892,892,892,892,,,,892,892,,,,892,,892,892,892,892,892,892,892,,,,,", "892,892,892,892,892,892,892,,,892,,,,,,892,892,892,892,892,892,892,892", "892,892,892,892,,892,892,892,,892,892,892,892,892,365,365,365,365,365", "365,365,365,365,365,365,,365,365,,,365,365,,892,,,892,,,892,892,,,892", ",892,365,,365,892,365,365,,365,365,365,365,365,892,365,,,,892,892,892", "892,,892,892,892,892,,,,,892,892,,,,,,,892,,892,892,892,,,892,892,618", "618,618,618,618,618,,,,618,618,,,,618,,618,618,618,618,618,618,618,", ",,,,618,618,618,618,618,618,618,,,618,,,,,,618,618,618,618,618,618,618", "618,618,618,618,618,,618,618,618,,618,618,618,618,618,551,,,,,,,,,,", ",,,,,551,551,,618,,,618,,,618,618,,,618,,618,551,,551,618,551,551,,551", "551,,,551,618,551,,,,618,618,618,618,,618,618,618,618,,,,,618,618,,", ",,,,618,,618,618,618,,,618,618,1191,1191,1191,1191,1191,1191,,,,1191", "1191,,,,1191,,1191,1191,1191,1191,1191,1191,1191,,,,,,1191,1191,1191", "1191,1191,1191,1191,,,1191,,,,,,1191,1191,1191,1191,1191,1191,1191,1191", "1191,1191,1191,1191,,1191,1191,1191,,1191,1191,1191,1191,1191,549,549", "549,549,549,549,549,549,,549,549,,,,,,549,549,,1191,,,1191,,,1191,1191", ",,1191,,1191,549,,549,1191,549,549,,549,549,549,549,549,1191,549,,,", "1191,1191,1191,1191,,1191,1191,1191,1191,,,,,1191,1191,,,,,,,1191,,1191", "1191,1191,,,1191,1191,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,,135,135", "135,135,135,548,548,548,548,548,548,548,,,548,548,,,,,,548,548,,135", ",,135,,,135,135,,,135,,135,548,,548,135,548,548,,548,548,548,548,548", "135,548,,,,135,135,135,135,,135,135,135,135,,,,,135,135,,,,,,,135,,135", "135,135,,,135,135,218,218,218,218,218,218,,,,218,218,,,,218,,218,218", "218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,,218,,,,,,218", "218,218,218,218,218,218,218,218,218,218,218,,218,218,218,,218,218,218", "218,218,545,545,545,545,545,545,545,,,545,545,,,,,,545,545,,218,,,218", ",,218,218,,,218,,218,545,,545,218,545,545,,545,545,545,545,545,218,545", ",,,218,218,218,218,,218,218,218,218,,,,,218,218,,,,,,,218,,218,218,218", ",,218,218,846,846,846,846,846,846,,,,846,846,,,,846,,846,846,846,846", "846,846,846,,,,,,846,846,846,846,846,846,846,,,846,,,,,,846,846,846", "846,846,846,846,846,846,846,846,846,,846,846,846,,846,846,846,846,846", "544,544,544,544,544,544,544,,,544,544,,,,,,544,544,,846,,,846,,,846", "846,,,846,,846,544,,544,846,544,544,,544,544,544,544,544,846,544,,,", "846,846,846,846,,846,846,846,846,,,,,846,846,,,,,,,846,,846,846,846", ",,846,846,857,857,857,857,857,857,,,,857,857,,,,857,,857,857,857,857", "857,857,857,,,,,,857,857,857,857,857,857,857,,,857,,,,,,857,857,857", "857,857,857,857,857,857,857,857,857,,857,857,857,,857,857,857,857,857", "543,543,543,543,543,543,543,,,543,543,,,,,,543,543,,857,,,857,,,857", "857,,,857,,857,543,,543,857,543,543,,543,543,543,543,543,857,543,,,", "857,857,857,857,,857,857,857,857,,,,,857,857,,,,,,,857,,857,857,857", ",,857,857,388,388,388,388,388,388,,,,388,388,,,,388,,388,388,388,388", "388,388,388,,,,,,388,388,388,388,388,388,388,,,388,,,,,,388,388,388", "388,388,388,388,388,388,388,388,388,,388,388,388,,388,388,388,388,388", "542,542,542,542,542,542,542,,,542,542,,,,,,542,542,,388,,,388,,,388", "388,,,388,,388,542,,542,388,542,542,,542,542,542,542,542,388,542,,,", "388,388,388,388,,388,388,388,388,,,,,388,388,,,,,,,388,,388,388,388", ",,388,388,991,991,991,991,991,991,,,,991,991,,,,991,,991,991,991,991", "991,991,991,,,,,,991,991,991,991,991,991,991,,,991,,,,,,991,991,991", "991,991,991,991,991,991,991,991,991,,991,991,991,,991,991,991,991,991", "541,541,541,541,541,541,541,,,541,541,,,,,,541,541,,991,,,991,,,991", "991,,,991,,991,541,,541,991,541,541,,541,541,541,541,541,991,541,,,", "991,991,991,991,,991,991,991,991,,,,,991,991,,,,920,920,920,991,920", "991,991,991,920,920,991,991,,920,,920,920,920,920,920,920,920,,,,,,920", "920,920,920,920,920,920,,,920,,,,,,,920,,,920,920,920,920,920,920,920", "920,,920,920,920,,920,920,920,920,920,540,540,540,540,540,540,540,,", "540,540,,,,,,540,540,,920,,,920,,,920,920,,,920,,,540,,540,920,540,540", ",540,540,540,540,540,920,540,,,,920,920,920,920,,920,920,920,920,,,", ",920,920,,,,921,921,921,920,921,920,920,920,921,921,920,920,,921,,921", "921,921,921,921,921,921,,,,,,921,921,921,921,921,921,921,,,921,,,,,", ",921,,,921,921,921,921,921,921,921,921,,921,921,921,,921,921,921,921", "921,530,530,530,530,530,530,530,530,530,530,530,,530,530,,,530,530,", "921,,,921,,,921,921,,,921,,,530,,530,921,530,530,,530,530,530,530,530", "921,530,,,,921,921,921,921,,921,921,921,921,,,,,921,921,,,,922,922,922", "921,922,921,921,921,922,922,921,921,,922,,922,922,922,922,922,922,922", ",,,,,922,922,922,922,922,922,922,,,922,,,,,,,922,,,922,922,922,922,922", "922,922,922,,922,922,922,,922,922,922,922,922,538,,,,,,,,,,,,,,,,538", "538,,922,,,922,,,922,922,,,922,,,538,,538,922,538,538,,538,538,,,,922", ",,,,922,922,922,922,,922,922,922,922,,,,,922,922,,,,733,733,733,922", "733,922,922,922,733,733,922,922,,733,,733,733,733,733,733,733,733,,", ",,,733,733,733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733", "733,733,733,,733,733,733,,733,733,733,733,733,539,,,,,,,,,,,,,,,,539", "539,,733,,,733,,,733,733,,,733,,,539,,,733,539,539,,539,539,,,,733,", ",,,733,733,733,733,,733,733,733,733,,,,,733,733,,,,732,732,732,733,732", "733,733,733,732,732,733,733,,732,,732,732,732,732,732,732,732,,,,,,732", "732,732,732,732,732,732,,,732,,,,,,,732,,,732,732,732,732,732,732,732", "732,,732,732,732,,732,732,732,732,732,537,,,,,,,,,,,,,,,,537,537,,732", ",,732,,,732,732,,,732,,,537,,537,732,537,537,,537,537,,,,732,,,,,732", "732,732,732,,732,732,732,732,,,,,732,732,,,,,,,732,,732,732,732,,,732", "732,333,333,333,333,333,,,,333,333,,,,333,,333,333,333,333,333,333,333", ",,,,,333,333,333,333,333,333,333,,,333,,,,,,333,333,,333,333,333,333", "333,333,333,333,333,,333,333,333,,333,333,333,333,333,,,,,,,,,,,,,,", ",,,,,333,,,333,,,333,333,,,333,,333,,,,333,,,,,,,,,333,,,,,333,333,333", "333,,333,333,333,333,,,,,333,333,,,,265,265,265,333,265,333,333,333", "265,265,333,333,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265", "265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265", "265,,265,265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265", ",,,,,265,,,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265", ",,,264,264,264,265,264,265,265,265,264,264,265,265,,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", "264,264,264,,264,264,264,264,,,,,264,264,,,,263,263,263,264,263,264", "264,264,263,263,264,264,,263,,263,263,263,263,263,263,263,,,,,,263,263", "263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263,263", ",263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263", "263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263,263,,263,263,263,263", ",,,,263,263,,,,262,262,262,263,262,263,263,263,262,262,263,263,,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,,,,,,", ",,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,261,261,261", "262,261,262,262,262,261,261,262,262,,261,,261,261,261,261,261,261,261", ",,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261", "261,261,261,,261,261,261,,261,261,261,261,261,,,,,,,,,,,,,,,,,,,,261", ",,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261,261,261,261,,261", "261,261,261,,,,,261,261,,,,708,708,708,261,708,261,261,261,708,708,261", "261,,708,,708,708,708,708,708,708,708,,,,,,708,708,708,708,708,708,708", ",,708,,,,,,,708,,,708,708,708,708,708,708,708,708,,708,708,708,,708", "708,708,708,708,,,,,,,,,,,,,,,,,,,,708,,,708,,,708,708,,,708,,,,,,708", ",,,,,,,,708,,,,,708,708,708,708,,708,708,708,708,,,,,708,708,,,,260", "260,260,708,260,708,708,708,260,260,708,708,,260,,260,260,260,260,260", "260,260,,,,,,260,260,260,260,260,260,260,,,260,,,,,,,260,,,260,260,260", "260,260,260,260,260,,260,260,260,,260,260,260,260,260,,,,,,,,,,,,,,", ",,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,,,,260,,,,,260,260,260", "260,,260,260,260,260,,,,,260,260,,,,694,694,694,260,694,260,260,260", "694,694,260,260,,694,,694,694,694,694,694,694,694,,,,,,694,694,694,694", "694,694,694,,,694,,,,,,,694,,,694,694,694,694,694,694,694,694,,694,694", "694,,694,694,694,694,694,,,,,,,,,,,,,,,,,,,,694,,,694,,,694,694,,,694", ",694,,,,694,,,,,,,,,694,,,,,694,694,694,694,,694,694,694,694,,,,,694", "694,,,,259,259,259,694,259,694,694,694,259,259,694,694,,259,,259,259", "259,259,259,259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259", ",,259,259,259,259,259,259,259,259,,259,259,259,,259,259,259,259,259", ",,,,,,,,,,,,,,,,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,", ",,259,259,259,259,,259,259,259,259,,,,,259,259,,,,258,258,258,259,258", "259,259,259,258,258,259,259,,258,,258,258,258,258,258,258,258,,,,,,258", "258,258,258,258,258,258,,,258,,,,,,,258,,,258,258,258,258,258,258,258", "258,,258,258,258,,258,258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,", ",258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258,258,258,258,,258,258,258", "258,,,,,258,258,,,,257,257,257,258,257,258,258,258,257,257,258,258,", "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,,,,,,257,,", ",,,,,,257,,,,,257,257,257,257,,257,257,257,257,,,,,257,257,,,,688,688", "688,257,688,257,257,257,688,688,257,257,,688,,688,688,688,688,688,688", "688,,,,,,688,688,688,688,688,688,688,,,688,,,,,,,688,,,688,688,688,688", "688,688,688,688,,688,688,688,,688,688,688,688,688,,,,,,,,,,,,,,,,,,", ",688,,,688,,,688,688,,,688,,,,,,688,,,,,,,,,688,,,,,688,688,688,688", ",688,688,688,688,,,,,688,688,,,,687,687,687,688,687,688,688,688,687", "687,688,688,,687,,687,687,687,687,687,687,687,,,,,,687,687,687,687,687", "687,687,,,687,,,,,,,687,,,687,687,687,687,687,687,687,687,,687,687,687", ",687,687,687,687,687,,,,,,,,,,,,,,,,,,,,687,,,687,,,687,687,,,687,,", ",,,687,,,,,,,,,687,,,,,687,687,687,687,,687,687,687,687,,,,,687,687", ",,,,,,687,,687,687,687,32,,687,687,,,,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,32,,,32,,32,32,,,32,32", ",32,,32,,32,,32,32,,32,32,32,32,32,,32,32,32,,,,,,,,,,,,,,32,,,32,32", ",32,,32,683,683,683,,683,,32,,683,683,,,,683,,683,683,683,683,683,683", "683,,,,,,683,683,683,683,683,683,683,,,683,,,,,,,683,,,683,683,683,683", "683,683,683,683,,683,683,683,,683,683,683,683,683,,,,,,,,,,,,,,,,,,", ",683,,,683,,,683,683,,,683,,,,,,683,,,,,,,,,683,,,,,683,683,683,683", ",683,683,683,683,,,,,683,683,,,,682,682,682,683,682,683,683,683,682", "682,683,683,,682,,682,682,682,682,682,682,682,,,,,,682,682,682,682,682", "682,682,,,682,,,,,,,682,,,682,682,682,682,682,682,682,682,,682,682,682", ",682,682,682,682,682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682,682,,,682,,", ",,,682,,,,,,,,,682,,,,,682,682,682,682,,682,682,682,682,,,,,682,682", ",,,681,681,681,682,681,682,682,682,681,681,682,682,,681,,681,681,681", "681,681,681,681,,,,,,681,681,681,681,681,681,681,,,681,,,,,,,681,,,681", "681,681,681,681,681,681,681,681,681,681,681,,681,681,681,681,681,,,", ",,,,,,,,,,,,,,,,681,,,681,,,681,681,,,681,,,,681,,681,,,681,,,,,,681", ",,,,681,681,681,681,,681,681,681,681,,,,,681,681,,,,956,956,956,681", "956,681,681,681,956,956,681,681,,956,,956,956,956,956,956,956,956,,", ",,,956,956,956,956,956,956,956,,,956,,,,,,,956,,,956,956,956,956,956", "956,956,956,,956,956,956,,956,956,956,956,956,,,,,,,,,,,,,,,,,,,,956", ",,956,,,956,956,,,956,,,,,,956,,,,,,,,,956,,,,,956,956,956,956,,956", "956,956,956,,,,,956,956,,,,962,962,962,956,962,956,956,956,962,962,956", "956,,962,,962,962,962,962,962,962,962,,,,,,962,962,962,962,962,962,962", ",,962,,,,,,,962,,,962,962,962,962,962,962,962,962,,962,962,962,,962", "962,962,962,962,,,,,,,,,,,,,,,,,,,,962,,,962,,,962,962,,,962,,,,,,962", ",,,,,,,,962,,,,,962,962,962,962,,962,962,962,962,,,,,962,962,,,,,,,962", ",962,962,962,33,,962,962,,,,33,33,33,,,33,33,33,,33,,,,,,,,33,,33,33", ",,,,,,,,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,,,,33,33,33,33,33,33", "33,33,33,33,33,33,33,33,,,33,33,33,,,33,,33,33,,,33,33,,33,,33,,33,", "33,33,,33,33,33,33,33,,33,,33,,,,,,,,,,,,,,33,,,33,33,,33,,33,34,34", "34,,34,,33,,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,34,,,34,,34,,34,,34,,,34,,,,,,34", ",,,,34,34,34,34,,34,34,34,34,,,,,34,34,,,,680,680,680,34,680,34,34,34", "680,680,34,34,,680,,680,680,680,680,680,680,680,,,,,,680,680,680,680", "680,680,680,,,680,,,,,,,680,,,680,680,680,680,680,680,680,680,680,680", "680,680,,680,680,680,680,680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680", ",,680,,680,,680,,680,,,680,,,,,,680,,,,,680,680,680,680,,680,680,680", "680,,,,,680,680,,,,677,677,677,680,677,680,680,680,677,677,680,680,", "677,,677,677,677,677,677,677,677,,,,,,677,677,677,677,677,677,677,,", "677,,,,,,,677,,,677,677,677,677,677,677,677,677,,677,677,677,,677,677", "677,677,677,,,,,,,,,,,,,,,,,,,,677,,,677,,,677,677,,,677,,,,,,677,,", ",,,,,,677,,,,,677,677,677,677,,677,677,677,677,,,,,677,677,,,,,,,677", ",677,677,677,,,677,677,676,676,676,676,676,,,,676,676,,,,676,,676,676", "676,676,676,676,676,,,,,,676,676,676,676,676,676,676,,,676,,,,,,676", "676,,676,676,676,676,676,676,676,676,676,,676,676,676,,676,676,676,676", "676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676,676,,,676,,676,,,,676,,,,,,,", ",676,,,,,676,676,676,676,,676,676,676,676,,,,,676,676,,,,985,985,985", "676,985,676,676,676,985,985,676,676,,985,,985,985,985,985,985,985,985", ",,,,,985,985,985,985,985,985,985,,,985,,,,,,,985,,,985,985,985,985,985", "985,985,985,,985,985,985,,985,985,985,985,985,,,,,,,,,,,,,,,,,,,,985", ",,985,,,985,985,,,985,,,,,,985,,,,,,,,,985,,,,,985,985,985,985,,985", "985,985,985,,,,,985,985,,,,673,673,673,985,673,985,985,985,673,673,985", "985,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673,673,673,673", ",,673,,,,,,,673,,,673,673,673,673,673,673,673,673,673,673,673,673,,673", "673,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673,673,,,673,,673,,673", ",673,,,673,,,,,,673,,,,,673,673,673,673,,673,673,673,673,,,,,673,673", ",,,672,672,672,673,672,673,673,673,672,672,673,673,,672,,672,672,672", "672,672,672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,,672,,,672", "672,672,672,672,672,672,672,,672,672,672,,672,672,672,672,672,,,,,,", ",,,,,,,,,,,,,672,,,672,,,672,672,,,672,,,,,,672,,,,,,,,,672,,,,,672", "672,672,672,,672,672,672,672,,,,,672,672,,,,990,990,990,672,990,672", "672,672,990,990,672,672,,990,,990,990,990,990,990,990,990,,,,,,990,990", "990,990,990,990,990,,,990,,,,,,,990,,,990,990,990,990,990,990,990,990", ",990,990,990,,990,990,990,990,990,,,,,,,,,,,,,,,,,,,,990,,,990,,,990", "990,,,990,,990,,,,990,,,,,,,,,990,,,,,990,990,990,990,,990,990,990,990", ",,,,990,990,,,,671,671,671,990,671,990,990,990,671,671,990,990,,671", ",671,671,671,671,671,671,671,,,,,,671,671,671,671,671,671,671,,,671", ",,,,,,671,,,671,671,671,671,671,671,671,671,,671,671,671,,671,671,671", "671,671,,,,,,,,,,,,,,,,,,,,671,,,671,,,671,671,,,671,,671,,,,671,,,", ",,,,,671,,,,,671,671,671,671,,671,671,671,671,,,,,671,671,,,,,,,671", ",671,671,671,,,671,671,669,669,669,669,669,,,,669,669,,,,669,,669,669", "669,669,669,669,669,,,,,,669,669,669,669,669,669,669,,,669,,,,,,669", "669,,669,669,669,669,669,669,669,669,669,,669,669,669,,669,669,669,669", "669,,,,,,,,,,,,,,,,,,,,669,,,669,,,669,669,,,669,,669,,,,669,,,,,,,", ",669,,,,,669,669,669,669,,669,669,669,669,,,,,669,669,,,,35,35,35,669", "35,669,669,669,35,35,669,669,,35,,35,35,35,35,35,35,35,,,,,,35,35,35", "35,35,35,35,,,35,,,,,,,35,,,35,35,35,35,35,35,35,35,35,35,35,35,,35", "35,35,35,35,,,,,,,,,,,,,,,,,,,,35,,,35,,,35,35,,,35,,35,,35,,35,,,35", ",,,,,35,,,,,35,35,35,35,,35,35,35,35,,,,,35,35,,,,250,250,250,35,250", "35,35,35,250,250,35,35,,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", "250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250,250,250,250", ",,,,250,250,,,,36,36,36,250,36,250,250,250,36,36,250,250,,36,,36,36", "36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,,36,,,36,36,36,36", "36,36,36,36,36,36,36,36,,36,36,36,36,36,,,,,,,,,,,,,,,,,,,,36,,,36,", ",36,36,,,36,,36,,36,,36,,,36,,,,,,36,,,,,36,36,36,36,,36,36,36,36,,", ",,36,36,,,,638,638,638,36,638,36,36,36,638,638,36,36,,638,,638,638,638", "638,638,638,638,,,,,,638,638,638,638,638,638,638,,,638,,,,,,,638,,,638", "638,638,638,638,638,638,638,638,638,638,638,,638,638,638,638,638,,,", ",,,,,,,,,,,,,,,,638,,,638,,,638,638,,,638,,638,,638,,638,,,638,,,,,", "638,,,,,638,638,638,638,,638,638,638,638,,,,,638,638,,,,1009,1009,1009", "638,1009,638,638,638,1009,1009,638,638,,1009,,1009,1009,1009,1009,1009", "1009,1009,,,,,,1009,1009,1009,1009,1009,1009,1009,,,1009,,,,,,,1009", ",,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,,1009", "1009,1009,1009,1009,,,,,,,,,,,,,,,,,,,,1009,,,1009,,,1009,1009,,,1009", ",,,1009,,1009,,,1009,,,,,,1009,,,,,1009,1009,1009,1009,,1009,1009,1009", "1009,,,,,1009,1009,,,,628,628,628,1009,628,1009,1009,1009,628,628,1009", "1009,,628,,628,628,628,628,628,628,628,,,,,,628,628,628,628,628,628", "628,,,628,,,,,,,628,,,628,628,628,628,628,628,628,628,628,628,628,628", ",628,628,628,628,628,,,,,,,,,,,,,,,,,,,,628,,,628,,,628,628,,,628,,628", ",628,,628,,,628,,,,,,628,,,,,628,628,628,628,,628,628,628,628,,,,,628", "628,,,,627,627,627,628,627,628,628,628,627,627,628,628,,627,,627,627", "627,627,627,627,627,,,,,,627,627,627,627,627,627,627,,,627,,,,,,,627", ",,627,627,627,627,627,627,627,627,,627,627,627,,627,627,627,627,627", ",,,,,,,,,,,,,,,,,,,627,,,627,,,627,627,,,627,,627,,,,627,,,,,,,,,627", ",,,,627,627,627,627,,627,627,627,627,,,,,627,627,,,,818,818,818,627", "818,627,627,627,818,818,627,627,,818,,818,818,818,818,818,818,818,,", ",,,818,818,818,818,818,818,818,,,818,,,,,,,818,,,818,818,818,818,818", "818,818,818,,818,818,818,,818,818,818,818,818,,,,,,,,,,,,,,,,,,,,818", ",,818,,,818,818,,,818,,,,,,818,,,,,,,,,818,,,,,818,818,818,818,,818", "818,818,818,,,,,818,818,,,,614,614,614,818,614,818,818,818,614,614,818", "818,,614,,614,614,614,614,614,614,614,,,,,,614,614,614,614,614,614,614", ",,614,,,,,,,614,,,614,614,614,614,614,614,614,614,614,614,614,614,,614", "614,614,614,614,,,,,,,,,,,,,,,,,,,,614,,,614,,,614,614,,,614,,,,,,614", ",,614,,,,,,614,,,,,614,614,614,614,,614,614,614,614,,,,,614,614,,,,611", "611,611,614,611,614,614,614,611,611,614,614,,611,,611,611,611,611,611", "611,611,,,,,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611", "611,611,611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,", ",,,,,,,,611,,,611,,,611,611,,,611,,611,,,,611,,,611,,,,,,611,,,,,611", "611,611,611,,611,611,611,611,,,,,611,611,,,,239,239,239,611,239,611", "611,611,239,239,611,611,,239,,239,239,239,239,239,239,239,,,,,,239,239", "239,239,239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239", ",239,239,239,,239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239", "239,,,239,,,,,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239", ",,,,239,239,239,,,605,605,605,239,605,239,239,239,605,605,239,239,,605", ",605,605,605,605,605,605,605,,,,,,605,605,605,605,605,605,605,,,605", ",,,,,,605,,,605,605,605,605,605,605,605,605,,605,605,605,,605,605,605", "605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605,605,,,605,,,,,,605,,,,,,", ",,605,,,,,605,605,605,605,,605,605,605,605,,,,,605,605,,,,1035,1035", "1035,605,1035,605,605,605,1035,1035,605,605,,1035,,1035,1035,1035,1035", "1035,1035,1035,,,,,,1035,1035,1035,1035,1035,1035,1035,,,1035,,,,,,", "1035,,,1035,1035,1035,1035,1035,1035,1035,1035,,1035,1035,1035,,1035", "1035,1035,1035,1035,,,,,,,,,,,,,,,,,,,,1035,,,1035,,,1035,1035,,,1035", ",,,,,1035,,,,,,,,,1035,,,,,1035,1035,1035,1035,,1035,1035,1035,1035", ",,,,1035,1035,,,,603,603,603,1035,603,1035,1035,1035,603,603,1035,1035", ",603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603,", ",603,,,,,,,603,,,603,603,603,603,603,603,603,603,,603,603,603,,603,603", "603,603,603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603,,,603,,,,,,603,,", ",,,,,,603,,,,,603,603,603,603,,603,603,603,603,,,,,603,603,,,,600,600", "600,603,600,603,603,603,600,600,603,603,,600,,600,600,600,600,600,600", "600,,,,,,600,600,600,600,600,600,600,,,600,,,,,,,600,,,600,600,600,600", "600,600,600,600,,600,600,600,,600,600,600,600,600,,,,,,,,,,,,,,,,,,", ",600,,,600,,,600,600,,,600,,,,,,600,,,,,,,,,600,,,,,600,600,600,600", ",600,600,600,600,,,,,600,600,,,,238,238,238,600,238,600,600,600,238", "238,600,600,,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,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,", ",,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238,238,,,,,238,238", ",,,237,237,237,238,237,238,238,238,237,237,238,238,,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", "237,237,237,,237,237,237,237,,,,,237,237,,,,590,590,590,237,590,237", "237,237,590,590,237,237,,590,,590,590,590,590,590,590,590,,,,,,590,590", "590,590,590,590,590,,,590,,,,,,,590,,,590,590,590,590,590,590,590,590", "590,590,590,590,,590,590,590,590,590,,,,,,,,,,,,,,,,,,,,590,,,590,,", "590,590,,,590,,590,,590,,590,,,590,,,,,,590,,,,,590,590,590,590,,590", "590,590,590,,,,,590,590,,,,,,,590,,590,590,590,,,590,590,580,580,580", "580,580,,,,580,580,,,,580,,580,580,580,580,580,580,580,,,,,,580,580", "580,580,580,580,580,,,580,,,,,,580,580,580,580,580,580,580,580,580,580", "580,580,,580,580,580,,580,580,580,580,580,,,,,,,,,,,,,,,,,,,,580,,,580", ",,580,580,,,580,,580,,,,580,,,,,,,,,580,,,,,580,580,580,580,,580,580", "580,580,,,,,580,580,,,,,,580,580,,580,580,580,,,580,580,574,574,574", ",574,,,,574,574,,,,574,,574,574,574,574,574,574,574,,,,,,574,574,574", "574,574,574,574,,,574,,,,,,,574,,,574,574,574,574,574,574,574,574,,574", "574,574,,574,574,574,574,574,,,,,,,,,,,,,,,,,,,,574,,,574,,,574,574", ",,574,,,,,,574,,,,,,,,,574,,,,,574,574,574,574,,574,574,574,574,,,,", "574,574,,,,369,369,369,574,369,574,574,574,369,369,574,574,,369,,369", "369,369,369,369,369,369,,,,,,369,369,369,369,369,369,369,,,369,,,,,", ",369,,,369,369,369,369,369,369,369,369,,369,369,369,,369,369,369,369", "369,,,,,,,,,,,,,,,,,,,,369,,,369,,,369,369,,,369,,,,,,369,,,,,,,,,369", ",,,,369,369,369,369,,369,369,369,369,,,,,369,369,,,,46,46,46,369,46", "369,369,369,46,46,369,369,,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,,,,,,,,,46,,,", ",46,46,46,46,,46,46,46,46,,,,,46,46,,,,572,572,572,46,572,46,46,46,572", "572,46,46,,572,,572,572,572,572,572,572,572,,,,,,572,572,572,572,572", "572,572,,,572,,,,,,,572,,,572,572,572,572,572,572,572,572,572,572,572", "572,,572,572,572,572,572,,,,,,,,,,,,,,,,,,,,572,,,572,,,572,572,,,572", ",,,572,,572,,,572,,,,,,572,,,,,572,572,572,572,,572,572,572,572,,,,", "572,572,,,,570,570,570,572,570,572,572,572,570,570,572,572,,570,,570", "570,570,570,570,570,570,,,,,,570,570,570,570,570,570,570,,,570,,,,,", ",570,,,570,570,570,570,570,570,570,570,570,570,570,570,,570,570,570", "570,570,,,,,,,,,,,,,,,,,,,,570,,,570,,,570,570,,,570,,570,,570,,570", ",,570,,,,,,570,,,,,570,570,570,570,,570,570,570,570,,,,,570,570,,,,47", "47,47,570,47,570,570,570,47,47,570,570,,47,,47,47,47,47,47,47,47,,,", ",,47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47", "47,,47,47,47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,", ",,,,,,,47,,,,,47,47,47,47,,47,47,47,47,,,,,47,47,,,,560,560,560,47,560", "47,47,47,560,560,47,47,,560,,560,560,560,560,560,560,560,,,,,,560,560", "560,560,560,560,560,,,560,,,,,,,560,,,560,560,560,560,560,560,560,560", ",560,560,560,,560,560,560,560,560,,,,,,,,,,,,,,,,,,,,560,,,560,,,560", "560,,,560,,,,,,560,,,,,,,,,560,,,,,560,560,560,560,,560,560,560,560", ",,,,560,560,,,,49,49,49,560,49,560,560,560,49,49,560,560,,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,,,,,,,,,49,,,,,49,49,49,49,,49,49,49,49,,,,,49,49,,", ",,,,49,,49,49,49,555,,49,49,,,,555,555,555,,,555,555,555,703,555,703", "703,703,703,703,,,555,555,555,,,,703,,,,,,555,555,,555,555,555,555,555", ",701,,701,701,701,701,701,703,,,,,,,,701,703,703,703,703,,,,703,,1140", ",1140,1140,1140,1140,1140,555,,,,,701,,555,1140,,,,555,555,701,701,701", "701,,,,701,,,,,,,,,1140,703,,,,555,555,,,,,1140,1140,,,,1140,,,,555", ",,555,,283,283,283,555,283,,701,,283,283,555,,,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,,,283,,,,,,283,,,,,,,,,283,,,,,283,283", "283,283,,283,283,283,283,,,,,283,283,,,,224,224,224,283,224,283,283", "283,224,224,283,283,,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", "224,,,224,,224,,224,,224,,,224,,,,,,224,,,,,224,224,224,224,,224,224", "224,224,,,,,224,224,,,,223,223,223,224,223,224,224,224,223,223,224,224", ",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,223,223,223,,223,223,223,223,,,,,223,223,,,,50,50", "50,223,50,223,223,223,50,50,223,223,,50,,50,50,50,50,50,50,50,,,,,,50", "50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50,50,50,50,,50,50,50", ",50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50,,,50,,,,,,50,,,,", ",,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,222,222,222,50,222", "50,50,50,222,222,50,50,,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,222,222,222,,222,222,222,222", ",,,,222,222,,,,72,72,72,222,72,222,222,222,72,72,222,222,,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,,,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,", ",71,71,71,72,71,72,72,72,71,71,72,72,,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,71,71,71,,71,71,71,71,,,,,71,71,,,,436,436,436,71,436", "71,71,71,436,436,71,71,,436,,436,436,436,436,436,436,436,,,,,,436,436", "436,436,436,436,436,,,436,,,,,,,436,,,436,436,436,436,436,436,436,436", ",436,436,436,,436,436,436,436,436,,,,,,,,,,,,,,,,,,,,436,,,436,,,436", "436,,,436,,,,,,436,,,,,,,,,436,,,,,436,436,436,436,,436,436,436,436", ",,,,436,436,,,,68,68,68,436,68,436,436,436,68,68,436,436,,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,,,,,,68,,,,,68,68,68,68,,68,68,68,68,,,,,68", "68,,,,407,407,407,68,407,68,68,68,407,407,68,68,,407,,407,407,407,407", "407,407,407,,,,,,407,407,407,407,407,407,407,,,407,,,,,,,407,,,407,407", "407,407,407,407,407,407,,407,407,407,,407,407,407,407,407,,,,,,,,,,", ",,,,,,,,,407,,,407,,,407,407,,,407,,,,,,407,,,,,,,,,407,,,,,407,407", "407,407,,407,407,407,407,,,,,407,407,,,,847,847,847,407,847,407,407", "407,847,847,407,407,,847,,847,847,847,847,847,847,847,,,,,,847,847,847", "847,847,847,847,,,847,,,,,,,847,,,847,847,847,847,847,847,847,847,,847", "847,847,,847,847,847,847,847,,,,,,,,,,,,,,,,,,,,847,,,847,,,847,847", ",,847,,,,,,847,,,,,,,,,847,,,,,847,847,847,847,,847,847,847,847,,,,", "847,847,,,,276,276,276,847,276,847,847,847,276,276,847,847,,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,276,276,276,,276,276,276,276,,,,,276,276,,,,275,275,275,276", "275,276,276,276,275,275,276,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,,,,,,,,,275,,,,,275,275,275,275,,275", "275,275,275,,,,,275,275,,,,67,67,67,275,67,275,275,275,67,67,275,275", ",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,,,67,,67,,,,67,,,67,,,,,,67,,,,,67,67,67,67,,67,67", "67,67,,,,,67,67,,,,,,,67,,67,67,67,,,67,67,66,66,66,66,66,,,,66,66,", ",,66,,66,66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,66,66", ",66,66,66,66,66,66,66,66,66,,66,66,66,,66,66,66,66,66,,,,,,,,,,,,,,", ",,,,,66,,,66,,,66,66,,,66,,66,,,,66,,,,,,,,,66,,,,,66,66,66,66,,66,66", "66,66,,,,,66,66,,,,299,299,299,66,299,66,66,66,299,299,66,66,,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,,,,,,,,,299", ",,,,299,299,299,299,,299,299,299,299,,,,,299,299,,,,274,274,274,299", "274,299,299,299,274,274,299,299,,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,,,,,,274,,,,,,,,,274,,,,,274,274,274,274,,274", "274,274,274,,,,,274,274,,,,867,867,867,274,867,274,274,274,867,867,274", "274,,867,,867,867,867,867,867,867,867,,,,,,867,867,867,867,867,867,867", ",,867,,,,,,,867,,,867,867,867,867,867,867,867,867,,867,867,867,,867", "867,867,867,867,,,,,,,,,,,,,,,,,,,,867,,,867,,,867,867,,,867,,,,,,867", ",,,,,,,,867,,,,,867,867,867,867,,867,867,867,867,,,,,867,867,,,,24,24", "24,867,24,867,867,867,24,24,867,867,,24,,24,24,24,24,24,24,24,,,,,,24", "24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24,,24,24,24", ",24,24,24,24,24,,,,,,,,,,,,,,,,,,,,24,,,24,,,24,24,,,24,,,,,,24,,,,", ",,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,273,273,273,24,273", "24,24,24,273,273,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,,,273", "273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273", ",,,,273,273,,,,788,788,788,273,788,273,273,273,788,788,273,273,,788", ",788,788,788,788,788,788,788,,,,,,788,788,788,788,788,788,788,,,788", ",,,,,,788,,,788,788,788,788,788,788,788,788,788,788,788,788,,788,788", "788,788,788,,,,,,,,,,,,,,,,,,,,788,,,788,,,788,788,,,788,,788,,788,", "788,,,788,,,,,,788,,,,,788,788,788,788,,788,788,788,788,,,,,788,788", ",,,272,272,272,788,272,788,788,788,272,272,788,788,,272,,272,272,272", "272,272,272,272,,,,,,272,272,272,272,272,272,272,,,272,,,,,,,272,,,272", "272,272,272,272,272,272,272,,272,272,272,,272,272,272,272,272,,,,,,", ",,,,,,,,,,,,,272,,,272,,,272,272,,,272,,,,,,272,,,,,,,,,272,,,,,272", "272,272,272,,272,272,272,272,,,,,272,272,,,,875,875,875,272,875,272", "272,272,875,875,272,272,,875,,875,875,875,875,875,875,875,,,,,,875,875", "875,875,875,875,875,,,875,,,,,,,875,,,875,875,875,875,875,875,875,875", ",875,875,875,,875,875,875,875,875,,,,,,,,,,,,,,,,,,,,875,,,875,,,875", "875,,,875,,,,,,875,,,,,,,,,875,,,,,875,875,875,875,,875,875,875,875", ",,,,875,875,,,,306,306,306,875,306,875,875,875,306,306,875,875,,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,306,,,306,,306,,306,", "306,,,306,,,,,,306,,,,,306,306,306,306,,306,306,306,306,,,,,306,306", ",,,888,888,888,306,888,306,306,306,888,888,306,306,,888,,888,888,888", "888,888,888,888,,,,,,888,888,888,888,888,888,888,,,888,,,,,,,888,,,888", "888,888,888,888,888,888,888,,888,888,888,,888,888,888,888,888,,,,,,", ",,,,,,,,,,,,,888,,,888,,,888,888,,,888,,,,,,888,,,,,,,,,888,,,,,888", "888,888,888,,888,888,888,888,,,,,888,888,,,,889,889,889,888,889,888", "888,888,889,889,888,888,,889,,889,889,889,889,889,889,889,,,,,,889,889", "889,889,889,889,889,,,889,,,,,,,889,,,889,889,889,889,889,889,889,889", ",889,889,889,,889,889,889,889,889,,,,,,,,,,,,,,,,,,,,889,,,889,,,889", "889,,,889,,,,,,889,,,,,,,,,889,,,,,889,889,889,889,,889,889,889,889", ",,,,889,889,,,,307,307,307,889,307,889,889,889,307,307,889,889,,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,,,307,,307,,307,", "307,,,307,,,,,,307,,,,,307,307,307,307,,307,307,307,307,,,,,307,307", ",,,315,315,315,307,315,307,307,307,315,315,307,307,,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,,315,,315,,315,,,315,,,,,", "315,,,,,315,315,315,315,,315,315,315,315,,,,,315,315,315,,,271,271,271", "315,271,315,315,315,271,271,315,315,,271,,271,271,271,271,271,271,271", ",,,,,271,271,271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271", "271,271,271,,271,271,271,,271,271,271,271,271,,,,,,,,,,,,,,,,,,,,271", ",,271,,,271,271,,,271,,,,,,271,,,,,,,,,271,,,,,271,271,271,271,,271", "271,271,271,,,,,271,271,,,,270,270,270,271,270,271,271,271,270,270,271", "271,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270,270", ",,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,,270", "270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270", ",,,,,,,,270,,,,,270,270,270,270,,270,270,270,270,,,,,270,270,,,,269", "269,269,270,269,270,270,270,269,269,270,270,,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,269,269", "269,,269,269,269,269,,,,,269,269,,,,322,322,322,269,322,269,269,269", "322,322,269,269,,322,,322,322,322,322,322,322,322,,,,,,322,322,322,322", "322,322,322,,,322,,,,,,,322,,,322,322,322,322,322,322,322,322,,322,322", "322,,322,322,322,322,322,,,,,,,,,,,,,,,,,,,,322,,,322,,,322,322,,,322", ",,,,,322,,,,,,,,,322,,,,,322,322,322,322,,322,322,322,322,,,,,322,322", ",,,324,324,324,322,324,322,322,322,324,324,322,322,,324,,324,324,324", "324,324,324,324,,,,,,324,324,324,324,324,324,324,,,324,,,,,,,324,,,324", "324,324,324,324,324,324,324,,324,324,324,,324,324,324,324,324,,,,,,", ",,,,,,,,,,,,,324,,,324,,,324,324,,,324,,,,,,324,,,,,,,,,324,,,,,324", "324,324,324,,324,324,324,324,,,,,324,324,,,,327,327,327,324,327,324", "324,324,327,327,324,324,,327,,327,327,327,327,327,327,327,,,,,,327,327", "327,327,327,327,327,,,327,,,,,,,327,,,327,327,327,327,327,327,327,327", ",327,327,327,,327,327,327,327,327,,,,,,,,,,,,,,,,,,,,327,,,327,,,327", "327,,,327,,,,,,327,,,,,,,,,327,,,,,327,327,327,327,,327,327,327,327", ",,,,327,327,,,,328,328,328,327,328,327,327,327,328,328,327,327,,328", ",328,328,328,328,328,328,328,,,,,,328,328,328,328,328,328,328,,,328", ",,,,,,328,,,328,328,328,328,328,328,328,328,,328,328,328,,328,328,328", "328,328,,,,,,,,,,,,,,,,,,,,328,,,328,,,328,328,,,328,,,,,,328,,,,,,", ",,328,,,,,328,328,328,328,,328,328,328,328,,,,,328,328,,,,268,268,268", "328,268,328,328,328,268,268,328,328,,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,268,268,268,,268", "268,268,268,,,,,268,268,,,,267,267,267,268,267,268,268,268,267,267,268", "268,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267,267,267,267", ",,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267,267,,267", "267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267,,,,,,267", ",,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267,,,,266", "266,266,267,266,267,267,267,266,266,267,267,,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,266,266", "266,,266,266,266,266,,,,,266,266,,,,917,917,917,266,917,266,266,266", "917,917,266,266,,917,,917,917,917,917,917,917,917,,,,,,917,917,917,917", "917,917,917,,,917,,,,,,,917,,,917,917,917,917,917,917,917,917,,917,917", "917,,917,917,917,917,917,,,,,,,,,,,,,,,,,,,,917,,,917,,,917,917,,,917", ",,,,,917,,,,,,,,,917,,,,,917,917,917,917,,917,917,917,917,,,,,917,917", ",,,918,918,918,917,918,917,917,917,918,918,917,917,,918,,918,918,918", "918,918,918,918,,,,,,918,918,918,918,918,918,918,,,918,,,,,,,918,,,918", "918,918,918,918,918,918,918,,918,918,918,,918,918,918,918,918,,,,,,", ",,,,,,,,,,,,,918,,,918,,,918,918,,,918,,,,,,918,,,,,,,,,918,,,,,918", "918,918,918,,918,918,918,918,,,,,918,918,,,,919,919,919,918,919,918", "918,918,919,919,918,918,,919,,919,919,919,919,919,919,919,,,,,,919,919", "919,919,919,919,919,,,919,,,,,,,919,,,919,919,919,919,919,919,919,919", ",919,919,919,,919,919,919,919,919,,,,,,,,,,,,,,,,,,,,919,,,919,,,919", "919,,,919,,,,,,919,,,,,,,,,919,,,,,919,919,919,919,,919,919,919,919", ",,,,919,919,,,,497,497,497,919,497,919,919,919,497,497,919,919,,497", ",497,497,497,497,497,497,497,,,,,,497,497,497,497,497,497,497,,,497", ",,,,,,497,,,497,497,497,497,497,497,497,497,,497,497,497,,497,497,497", "497,497,,,,,,,,,,,,,,,,,,,,497,,,497,,,497,497,,,497,,,,,,497,,,,,,", ",,497,,,,,497,497,497,497,,497,497,497,497,,,,,497,497,,,,,,,497,,497", "497,497,,,497,497,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,133,133,133", ",,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,133,,,,133,,,,,,,,,133", ",,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,132,132,132,133", "132,133,133,133,132,132,133,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,,,,,,,,,132,,,,,132,132,132,132,,132", "132,132,132,,,,,132,132,,,,131,131,131,132,131,132,132,132,131,131,132", "132,,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,,,,,,131", ",,,,,,,,131,,,,,131,131,131,131,,131,131,131,131,,,,,131,131,,,,130", "130,130,131,130,131,131,131,130,130,131,131,,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,,,,,,,,,130,,,,,130,130,130", "130,,130,130,130,130,,,,,130,130,,,,1149,1149,1149,130,1149,130,130", "130,1149,1149,130,130,,1149,,1149,1149,1149,1149,1149,1149,1149,,,,", ",1149,1149,1149,1149,1149,1149,1149,,,1149,,,,,,,1149,,,1149,1149,1149", "1149,1149,1149,1149,1149,,1149,1149,1149,,1149,1149,1149,1149,1149,", ",,,,,,,,,,,,,,,,,,1149,,,1149,,,1149,1149,,,1149,,,,,,1149,,,,,,,,,1149", ",,,,1149,1149,1149,1149,,1149,1149,1149,1149,,,,,1149,1149,,,,1150,1150", "1150,1149,1150,1149,1149,1149,1150,1150,1149,1149,,1150,,1150,1150,1150", "1150,1150,1150,1150,,,,,,1150,1150,1150,1150,1150,1150,1150,,,1150,", ",,,,,1150,,,1150,1150,1150,1150,1150,1150,1150,1150,,1150,1150,1150", ",1150,1150,1150,1150,1150,,,,,,,,,,,,,,,,,,,,1150,,,1150,,,1150,1150", ",,1150,,,,,,1150,,,,,,,,,1150,,,,,1150,1150,1150,1150,,1150,1150,1150", "1150,,,,,1150,1150,,,,52,52,52,1150,52,1150,1150,1150,52,52,1150,1150", ",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,,,,,,52,,,,,,,,,52,,,,,52,52,52,52,,52,52,52,52", ",,,,52,52,,,,129,129,129,52,129,52,52,52,129,129,52,52,,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,,,,,,,,,129,,", ",,129,129,129,129,,129,129,129,129,,,,,129,129,,,,,,,129,,129,129,129", ",,129,129,124,124,124,124,124,,,,124,124,,,,124,,124,124,124,124,124", "124,124,,,,,,124,124,124,124,124,124,124,,,124,,,,,,124,124,124,124", "124,124,124,124,124,124,124,124,,124,124,124,,124,124,124,124,124,,", ",,,,,,,,,,,,,,,,,124,,,124,,,124,124,,,124,,124,,,,124,,,,,,,,,124,", ",,,124,124,124,124,,124,124,124,124,,,,,124,124,,,,,,124,124,,124,124", "124,,,124,124,1162,1162,1162,,1162,,,,1162,1162,,,,1162,,1162,1162,1162", "1162,1162,1162,1162,,,,,,1162,1162,1162,1162,1162,1162,1162,,,1162,", ",,,,,1162,,,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162", ",1162,1162,1162,1162,1162,,,,,,,,,,,,,,,,,,,,1162,,,1162,,,1162,1162", ",,1162,,1162,,1162,,1162,,,1162,,,,,,1162,,,,,1162,1162,1162,1162,,1162", "1162,1162,1162,,,,,1162,1162,,,,471,471,471,1162,471,1162,1162,1162", "471,471,1162,1162,,471,,471,471,471,471,471,471,471,,,,,,471,471,471", "471,471,471,471,,,471,,,,,,,471,,,471,471,471,471,471,471,471,471,,471", "471,471,,471,471,471,471,471,,,,,,,,,,,,,,,,,,,,471,,,471,,,471,471", ",,471,,,,,,471,,,,,,,,,471,,,,,471,471,471,471,,471,471,471,471,,,,", "471,471,,,,277,277,277,471,277,471,471,471,277,277,471,471,,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,277,277,277,,277,277,277,277,,,,,277,277,,,,,,,277,,277,277", "277,470,,277,277,,,,470,470,470,,,470,470,470,,470,,,,,,,,470,470,470", "470,470,,,,,,,,470,470,,470,470,470,470,470,,,,,,,,,,,,,,,,,,,,,,,470", "470,470,470,470,470,470,470,470,470,470,470,470,470,,,470,470,470,,", "470,,,470,,,470,470,,470,,470,,470,,470,470,,470,470,470,470,470,,470", "470,470,,,,,,,,,,,,,,470,,,470,470,470,470,,470,469,470,,,,,470,469", "469,469,,,469,469,469,,469,,,,,,,,469,469,469,469,469,,,,951,951,951", "951,469,469,,469,469,469,469,469,,,,,951,951,951,,,,,,,,,,,951,951,", ",951,469,469,469,469,469,469,469,469,469,469,469,469,469,469,,,469,469", "469,,,469,,,469,,,469,469,,469,,469,,469,,469,469,,469,469,469,469,469", ",469,469,469,,951,951,951,951,,951,951,951,951,,,,469,951,951,469,469", "469,469,,469,951,469,951,951,951,460,469,7,7,7,7,7,460,460,460,7,7,460", "460,460,7,460,7,7,7,7,7,7,7,460,460,460,460,,7,7,7,7,7,7,7,460,460,7", "460,460,460,460,460,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7,7,7,7,7,460,460", "460,460,460,460,460,460,460,460,460,460,460,460,,,460,460,460,7,,460", "7,460,460,7,7,460,460,7,460,7,460,,460,7,460,460,,460,460,460,460,460", "7,460,460,460,,7,7,7,7,,7,7,7,7,,,,460,7,7,460,460,,460,,460,7,,7,7", "7,,460,7,7,75,75,75,,75,,,,75,75,,,,75,,75,75,75,75,75,75,75,,,,,,75", "75,75,75,75,75,75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75", ",75,75,75,75,75,,,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,", ",,,,75,,,,,75,75,75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75", "64,,75,75,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64,64,,,,,,,,64,64", ",64,64,64,64,64,,,,,,,,,,,,,,,,,,,,,,,64,64,64,64,64,64,64,64,64,64", "64,64,64,64,,,64,64,64,,,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64", "64,64,,64,,64,,,,,,,,,,,,,,64,,,64,64,64,64,,64,,64,,278,278,278,64", "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,,,,,,278,,,,,,,,,278,,,,,278,278,278,278,,278,278,278,278,,,,", "278,278,,,,221,221,221,278,221,278,278,278,221,221,278,278,,221,,221", "221,221,221,221,221,221,,,,,,221,221,221,221,221,221,221,,,221,,,,,", ",221,,,221,221,221,221,221,221,221,221,,221,221,221,,221,221,221,221", "221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,,,,,221,,,,,,,,,221", ",,,,221,221,221,221,,221,221,221,221,,,,,221,221,,,,220,220,220,221", "220,221,221,221,220,220,221,221,,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,,,220,220,,,220,,220,,,,220,,,,,,,,,220,,,,,220,220,220,220,,220", "220,220,220,,,,,220,220,,,,800,800,800,220,800,220,220,220,800,800,220", "220,,800,,800,800,800,800,800,800,800,,,,,,800,800,800,800,800,800,800", ",,800,,,,,,,800,,,800,800,800,800,800,800,800,800,,800,800,800,,800", "800,800,800,800,,,,,,,,,,,,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,800", ",,,,,,,,800,,,,,800,800,800,800,,800,800,800,800,,,,,800,800,,,,797", "797,797,800,797,800,800,800,797,797,800,800,,797,,797,797,797,797,797", "797,797,,,,,,797,797,797,797,797,797,797,,,797,,,,,,,797,,,797,797,797", "797,797,797,797,797,,797,797,797,,797,797,797,797,797,,,,,,,,,,,,,,", ",,,,,797,,,797,,,797,797,,,797,,,,,,797,,,,,,,,,797,,,,,797,797,797", "797,,797,797,797,797,,,,,797,797,,,,386,386,386,797,386,797,797,797", "386,386,797,797,,386,,386,386,386,386,386,386,386,,,,,,386,386,386,386", "386,386,386,,,386,,,,,,,386,,,386,386,386,386,386,386,386,386,,386,386", "386,,386,386,386,386,386,,,,,,,,,,,,,,,,,,,,386,,,386,,,386,386,,,386", ",,,,,386,,,,,,,,,386,,,,,386,386,386,386,,386,386,386,386,,,,,386,386", ",,,524,524,524,386,524,386,386,386,524,524,386,386,,524,,524,524,524", "524,524,524,524,,,,,,524,524,524,524,524,524,524,,,524,,,,,,,524,,,524", "524,524,524,524,524,524,524,,524,524,524,,524,524,524,524,524,,,,,,", ",,,,,,,,,,,,,524,,,524,,,524,524,,,524,,,,,,524,,,,,,,,,524,,,,,524", "524,524,524,,524,524,524,524,,,,,524,524,,,,523,523,523,524,523,524", "524,524,523,523,524,524,,523,,523,523,523,523,523,523,523,,,,,,523,523", "523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523,523,523,523", ",523,523,523,,523,523,523,523,523,,,,,,,,,,,,,,,,,,,,523,,,523,,,523", "523,,,523,,,,,,523,,,,,,,,,523,,,,,523,523,523,523,,523,523,523,523", ",,,,523,523,,,,522,522,522,523,522,523,523,523,522,522,523,523,,522", ",522,522,522,522,522,522,522,,,,,,522,522,522,522,522,522,522,,,522", ",,,,,,522,,,522,522,522,522,522,522,522,522,,522,522,522,,522,522,522", "522,522,,,,,,,,,,,,,,,,,,,,522,,,522,,,522,522,,,522,,,,,,522,,,,,,", ",,522,,,,,522,522,522,522,,522,522,522,522,,,,,522,522,,,,520,520,520", "522,520,522,522,522,520,520,522,522,,520,,520,520,520,520,520,520,520", ",,,,,520,520,520,520,520,520,520,,,520,,,,,,,520,,,520,520,520,520,520", "520,520,520,520,520,520,520,,520,520,520,520,520,,,,,,,,,,,,,,,,,,,", "520,,,520,,,520,520,,,520,,520,,520,,520,,,520,,,,,,520,,,,,520,520", "520,520,,520,520,520,520,,,,,520,520,,,,219,219,219,520,219,520,520", "520,219,219,520,520,,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,,,219,219", ",,219,,219,,,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,", ",,,219,219,,,,510,510,510,219,510,219,219,219,510,510,219,219,,510,", "510,510,510,510,510,510,510,,,,,,510,510,510,510,510,510,510,,,510,", ",,,,,510,,,510,510,510,510,510,510,510,510,,510,510,510,,510,510,510", "510,510,,,,,,,,,,,,,,,,,,,,510,,,510,,,510,510,,,510,,,,,,510,,,,,,", ",,510,,,,,510,510,510,510,,510,510,510,510,,,,,510,510,,,,1017,1017", "1017,510,1017,510,510,510,1017,1017,510,510,,1017,,1017,1017,1017,1017", "1017,1017,1017,,,,,,1017,1017,1017,1017,1017,1017,1017,,,1017,,,,,,", "1017,,,1017,1017,1017,1017,1017,1017,1017,1017,,1017,1017,1017,,1017", "1017,,,1017,,,,,,,,,,,,,,,,,,,,1017,,,1017,,,1017,1017,,,1017,,,,,,", ",,,,,,,,,,,,,1017,1017,1017,1017,,1017,1017,1017,1017,,,,,1017,1017", ",,,1081,1081,1081,1017,1081,1017,1017,1017,1081,1081,,,,1081,,1081,1081", "1081,1081,1081,1081,1081,,,,,,1081,1081,1081,1081,1081,1081,1081,,,1081", ",,,,,,1081,,,1081,1081,1081,1081,1081,1081,1081,1081,,1081,1081,1081", ",1081,1081,,,1081,,,,,,,,,,,,,,,,,,,,1081,,,1081,,,1081,1081,,,1081", ",,,,,,,,,,,,,,,,,,,1081,1081,1081,1081,,1081,1081,1081,1081,,,,,1081", "1081,,,,341,341,341,1081,341,1081,1081,1081,341,341,,,,341,,341,341", "341,341,341,341,341,,,,,,341,341,341,341,341,341,341,,,341,,,,,,,341", ",,341,341,341,341,341,341,341,341,,341,341,341,,341,341,,,341,,,,,,", ",,,,,,,,,,,,,341,,,341,,,341,341,,,341,,,1214,,1214,1214,1214,1214,1214", ",,,,,,,,1214,,341,341,341,341,,341,341,341,341,,,,,341,341,,,,341,,1214", "341,,341,341,341,588,588,588,,588,1214,1214,,588,588,1214,,,588,,588", "588,588,588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,", ",588,,,588,588,588,588,588,588,588,588,,588,588,588,,588,588,,,588,", ",,,,,,,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,,,,,,,,,,,,,,,588,588", "588,588,,588,588,588,588,,,,,588,588,,,,40,40,40,588,40,588,588,588", "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,,,1210,,1210,1210,1210,1210,1210,,,,,,,,,1210", ",40,40,40,40,,40,40,40,40,,,,,40,40,,,,40,,1210,40,,40,40,40,803,803", "803,,803,1210,1210,,803,803,1210,,,803,,803,803,803,803,803,803,803", ",,,,,803,803,803,803,803,803,803,,,803,,,,,,,803,,,803,803,803,803,803", "803,803,803,,803,803,803,,803,803,,,803,,,,,,,,,,,,,,,,,,,,803,,,803", ",,803,803,,,803,,,,,,,,,,,,,,,,,,,,803,803,803,803,,803,803,803,803", ",,,,803,803,,,,360,360,360,803,360,803,803,803,360,360,,,,360,,360,360", "360,360,360,360,360,,,,,,360,360,360,360,360,360,360,,,360,,,,,,,360", ",,360,360,360,360,360,360,360,360,,360,360,360,,360,360,,,360,,,,,,", ",,,,,,,,,,,,,360,,,360,,,360,360,,,360,,,,,,,,,,,,,,,,,,,,360,360,360", "360,,360,360,360,360,,,,,360,360,,,,1144,1144,1144,360,1144,360,360", "360,1144,1144,,,,1144,,1144,1144,1144,1144,1144,1144,1144,,,,,,1144", "1144,1144,1144,1144,1144,1144,,,1144,,,,,,,1144,,,1144,1144,1144,1144", "1144,1144,1144,1144,,1144,1144,1144,,1144,1144,,,1144,,,,,,,,,,,,,,", ",,,,,1144,,,1144,,,1144,1144,,,1144,,,,,,,,,,,,,,,,,,,,1144,1144,1144", "1144,,1144,1144,1144,1144,,,,,1144,1144,,,,77,77,77,1144,77,1144,1144", "1144,77,77,,,,77,,77,77,77,77,77,77,77,,,,,,77,77,77,77,77,77,77,,,77", ",,,,,,77,,,77,77,77,77,77,77,77,77,,77,77,77,,77,77,,,77,,,,,,,,,,,", ",,,,,77,,,77,,,77,,,77,77,,,77,,,,,,,,,,,,,,,,,,,,77,77,77,77,,77,77", "77,77,,,,,77,77,,,,814,814,814,77,814,77,77,77,814,814,,,,814,,814,814", "814,814,814,814,814,,,,,,814,814,814,814,814,814,814,,,814,,,,,,,814", ",,814,814,814,814,814,814,814,814,,814,814,814,,814,814,,,814,,,,,,", ",,,,,,,,,,,,,814,,,814,,,814,814,,,814,,,,,,,,,,,,,,,,,,,,814,814,814", "814,,814,814,814,814,,,,,814,814,,,,597,597,597,814,597,814,814,814", "597,597,,,,597,,597,597,597,597,597,597,597,,,,,,597,597,597,597,597", "597,597,,,597,,,,,,,597,,,597,597,597,597,597,597,597,597,,597,597,597", ",597,597,,,597,,,,,,,,,,,,,,,,,,,,597,,,597,,,597,597,,,597,,,,,,,,", ",,,,,,,,,,,597,597,597,597,,597,597,597,597,,,,,597,597,,,,39,39,39", "597,39,597,597,597,39,39,,,,39,,39,39,39,39,39,39,39,,,,,,39,39,39,39", "39,39,39,,,39,,,,,,,39,,,39,39,39,39,39,39,39,39,,39,39,39,,39,39,,", "39,,,,,,,,,,,,,,,,,,,,39,,,39,,,39,39,,,39,,39,,,,,,,,,,,,,,,,,,39,39", "39,39,,39,39,39,39,,,,,39,39,,,,76,76,76,39,76,39,39,39,76,76,,,,76", ",76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76,,,76,,,,,,,76,,,76,76", "76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,,,,,,,,,,,,,,,76,,,76,", ",76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,,76,76,76,76,,,,,76,76", ",,,78,78,78,76,78,76,76,76,78,78,,,,78,,78,78,78,78,78,78,78,,,,,,78", "78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78,78", ",78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,,,,", ",,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,,,,78,,78,78,78,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,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,10,10,10,10,10,10,10,10,,,10,10,,,,,,,,,,,,,,10,427", "427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427", "427,427,427,427,427,427,,,,427,427,427,427,427,427,427,427,427,427,", ",,,,427,427,427,427,427,427,427,427,427,,,427,,,,,,,,427,427,,427,427", "427,427,427,427,427,,,427,427,,,,427,427,427,427,,,,,,,,,,,,,,427,427", ",427,427,427,427,427,427,427,427,427,427,427,427,,,427,427,,,,,,,,,", ",,,,427,667,667,667,667,667,667,667,667,667,667,667,667,667,667,667", "667,667,667,667,667,667,667,667,667,,,,667,667,667,667,667,667,667,667", "667,667,,,,,,667,667,667,667,667,667,667,667,667,,,667,,,,,,,,667,667", ",667,667,667,667,667,667,667,,,667,667,,,,667,667,667,667,,,,,,,,,,", ",,,667,667,,667,667,667,667,667,667,667,667,667,667,667,667,,,667,667", ",,,,,,,,,,,,,667,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,,,,,,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,11,11,11,11,11", ",,11,11,,,,,,,,,,,,,,11,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26", "26,26,26,26,26,26,26,26,26,,,,26,26,26,26,26,26,26,26,26,26,,,,,,26", "26,26,26,26,26,26,26,26,26,26,26,,26,,,,,,26,26,,26,26,26,26,26,26,26", ",,26,26,,,,26,26,26,26,,,,,,26,,,,,,,,26,26,,26,26,26,26,26,26,26,26", "26,26,26,26,,,26,753,753,753,753,,,,,,1026,,1026,1026,1026,1026,1026", "753,753,753,753,,,,753,1026,,,,,753,753,,,753,,,,,,,,,,,,,1026,,,,,", ",753,,,753,1026,1026,,753,,1026,753,,,,,,,,,,,,,,,,753,,,,753,753,753", "753,,753,753,753,753,,,,,753,753,1205,1205,1205,1205,1026,,753,,753", "753,753,,,753,753,,1205,1205,1205,1205,,,1208,1205,1208,1208,1208,1208", "1208,1205,1205,,,1205,,,,1208,,,,,,,,,,,,,,,,1205,,,1205,,,1208,1205", ",,1205,,,,,1208,1208,1208,1208,,,,1208,,,,1205,,,,1205,1205,1205,1205", ",1205,1205,1205,1205,,,,,1205,1205,1129,1129,1129,1129,,,1205,,1205", "1205,1205,,,1205,1205,,1129,1129,1129,1129,,,1138,1129,1138,1138,1138", "1138,1138,1129,1129,,,1129,,,,1138,,,,,,,,,,,,,,,,1129,,,1129,,,1138", "1129,,,1129,,1129,,,1138,1138,1138,1138,,,,1138,,,,1129,,,,1129,1129", "1129,1129,,1129,1129,1129,1129,,,,,1129,1129,989,989,989,989,,,1129", ",1129,1129,1129,,,1129,1129,,989,989,989,989,,,,989,989,,,,,989,989", ",,989,989,,,,,,,,,,,,,,,,,,,989,,,989,,,,989,,,989,,989,,,,,,,989,,", ",,,,989,,,,989,989,989,989,,989,989,989,989,,,,,989,989,942,942,942", "942,,,989,,989,989,989,,,989,989,,942,942,942,942,,,1135,942,1135,1135", "1135,1135,1135,942,942,,,942,,,,1135,,,,,,,,,,,,,,,,942,,,942,,,1135", "942,,,942,,,,,1135,1135,1135,1135,,,,1135,,,,942,,,,942,942,942,942", ",942,942,942,942,,,,,942,942,924,924,924,924,,,942,,942,942,942,,,942", "942,,924,924,924,924,,,1231,924,1231,1231,1231,1231,1231,924,924,,,924", ",,,1231,,,,,,,,,,,,,,,,924,,,924,,,1231,924,,,924,,924,,,,,1231,1231", ",,,1231,,,,924,,,,924,924,924,924,,924,924,924,924,,,,,924,924,745,745", "745,745,,,924,,924,924,924,,,924,924,,745,745,745,745,,,,745,,,,,,745", "745,,,745,,,,,,,,,,,,,,,,,,,,745,,,745,,,,745,,,745,,745,,,,,,,1166", ",1166,1166,1166,1166,1166,745,,,,745,745,745,745,1166,745,745,745,745", ",,,,745,745,745,943,943,943,943,,745,,745,745,745,1166,,745,745,,,943", "943,943,943,,1166,1166,943,,,1166,,,943,943,,,943,,,,,,,,,,,,,,,,,,", ",943,,,943,,,,943,,,943,,,1166,,,,,,,,,,,,,943,,,,943,943,943,943,,943", "943,943,943,,,,,943,943,930,930,930,930,,,943,,943,943,943,,,943,943", ",930,930,930,930,,,,930,930,,,,,930,930,,,930,930,,,,,,,,,,,,,,,,,,", "930,,,930,,,,930,,,930,,930,,,,,,,930,,,,,,,930,,,,930,930,930,930,", "930,930,930,930,,,,,930,930,929,929,929,929,,,930,,930,930,930,,,930", "930,,929,929,929,929,,,,929,929,,,,,929,929,,,929,929,,,,,,,,,,,,,,", ",,,,929,,,929,,,,929,,,929,,929,,,,,,,929,,,,,,,929,,,,929,929,929,929", ",929,929,929,929,,,,,929,929,,,,,,,929,,929,929,929,,,929,929,780,780", "780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780", "780,780,780,780,780,,,,780,780,780,780,780,780,780,780,780,780,,,,,", "780,780,780,780,780,780,780,780,780,,,780,,,,,,,,780,780,,780,780,780", "780,780,780,780,,,780,780,,,,780,780,780,780,,,,,,,,,,,,,,780,780,,780", "780,780,780,780,780,780,780,780,780,780,780,,,780,528,528,528,528,,", "1212,,1212,1212,1212,1212,1212,,,,528,528,528,528,,1212,,528,528,,,", ",528,528,,,528,528,,,,,,,,,1212,,,,,,,,,,528,1212,1212,528,,,1212,528", ",,528,,528,,,,,,,528,,,,,,,528,,,,528,528,528,528,,528,528,528,528,", ",,,528,528,527,527,527,527,,,528,,528,528,528,,,528,528,,527,527,527", "527,,,,527,527,,,,,527,527,,,527,527,,,,,,,,,,,,,,,,,,,527,,,527,,,", "527,,,527,,527,,,,,,,527,,,,,,,527,,,,527,527,527,527,,527,527,527,527", ",,,,527,527,1173,1173,1173,1173,,,527,,527,527,527,,,527,527,,1173,1173", "1173,1173,,,,1173,,,,,,1173,1173,,,1173,,,,,,,,,,,,,,,,,,,,1173,,,1173", ",,,1173,,,1173,,,,,,,,,,,,,,,,1173,,,,1173,1173,1173,1173,,1173,1173", "1173,1173,,,,,1173,1173,1116,1116,1116,1116,,,1173,,1173,1173,1173,", ",1173,1173,,1116,1116,1116,1116,,,,1116,,,,,,1116,1116,,,1116,,,,,,", ",,,,,,,,,,,,,1116,,,1116,,,,1116,,,1116,,,,,,,,,,,,,,,,1116,,,,1116", "1116,1116,1116,,1116,1116,1116,1116,,,,,1116,1116,926,926,926,926,,", "1116,,1116,1116,1116,,,1116,1116,,926,926,926,926,,,,926,,,,,,926,926", ",,926,,,,,,,,,,,,,,,,,,,,926,,,926,,,,926,,,926,,,,,,,,,,,,,,,,926,", ",,926,926,926,926,,926,926,926,926,,,,,926,926,1125,1125,1125,1125,", ",926,,926,926,926,,,926,926,,1125,1125,1125,1125,,,,1125,,,,,,1125,1125", ",,1125,,,,,,,,,,,,,,,,,,,,1125,,,1125,,,,1125,,,1125,,,,,,,,,,,,,,,", "1125,,,,1125,1125,1125,1125,,1125,1125,1125,1125,,,,,1125,1125,936,936", "936,936,,,1125,,1125,1125,1125,,,1125,1125,,936,936,936,936,,,,936,", ",,,,936,936,,,936,,,,,,,,763,763,763,763,,,,,,,,,936,,,936,763,763,763", "936,,,936,,936,,,,,763,763,,,763,,,,,936,,,,936,936,936,936,,936,936", "936,936,,,,,936,936,,,,,,,936,,936,936,936,,,936,936,233,,233,233,233", "233,233,,,,,763,763,763,763,233,763,763,763,763,,,,,763,763,950,950", "950,950,,,763,,763,763,763,233,,,,,950,950,950,,233,233,233,233,,,,233", ",950,950,,,950,,,,,,,,,,,,705,,705,705,705,705,705,,,,,,,,,705,,,,,", "234,233,234,234,234,234,234,,,,,,,,,234,705,950,950,950,950,,950,950", "950,950,,705,705,,950,950,705,,,,,234,950,,950,950,950,,,,234,234,234", "234,,,409,234,409,409,409,409,409,,1020,,1020,1020,1020,1020,1020,409", ",,,,705,,,1020,,644,,644,644,644,644,644,,,,,,409,409,,644,234,,,,1020", "409,409,409,409,,,,409,1020,1020,1020,1020,,,,1020,644,,,,,,,,,644,644", "644,644,,,1024,644,1024,1024,1024,1024,1024,,,,,,,,,1024,409,,,,,,,", "1020,,,,,,,,,,,,,1024,,,,644,,,,,,,1024,1024,675,675,,1024,675,,,,,", ",,675,675,,675,675,675,675,675,675,675,,,675,675,,,,675,675,675,675", ",,,,,675,,,,,1024,,,675,675,,675,675,675,675,675,675,675,675,675,675", "675,675,636,636,675,,636,,,,,,,,636,636,,636,636,636,636,636,636,636", ",,636,636,,,,636,636,636,636,,,,,,636,,,,,,,,636,636,,636,636,636,636", "636,636,636,636,636,636,636,636,629,629,636,,629,,,,,,,,629,629,,629", "629,629,629,629,629,629,,,629,629,,,,629,629,629,629,,,,,,629,,,,,,", ",629,629,,629,629,629,629,629,629,629,629,629,629,629,629,226,226,629", ",226,,,,,,,,226,226,,226,226,226,226,226,226,226,,,226,226,,,,226,226", "226,226,,,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226", "226,226,226,602,602,226,,602,,,,,,,,602,602,,602,602,602,602,602,602", "602,,,602,602,,,,602,602,602,602,,,,,,602,,,,,,,,602,602,,602,602,602", "602,602,602,602,602,602,602,602,602,637,637,602,,637,,,,,,,,637,637", ",637,637,637,637,637,637,637,,,637,637,,,,637,637,637,637,,,,,,637,", ",,,,,,637,637,,637,637,637,637,637,637,637,637,637,637,637,637,225,225", "637,,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,302,302,225,,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,519,519,302,,519,,,,,,,,519,519", ",519,519,519,519,519,519,519,,,519,519,,,,519,519,519,519,,,,,,519,", ",,,,,,519,519,,519,519,519,519,519,519,519,519,519,519,519,519,518,518", "519,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,,,518,518,,,,518", "518,518,518,,,,,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,518", "518,518,518,518,591,591,518,,591,,,,,,,,591,591,,591,591,591,591,591", "591,591,,,591,591,,,,591,591,591,591,,,,,,591,,,,,,,,591,591,,591,591", "591,591,591,591,591,591,591,591,591,591,592,592,591,,592,,,,,,,,592", "592,,592,592,592,592,592,592,592,,,592,592,,,,592,592,592,592,,,,,,592", ",,,,,,,592,592,,592,592,592,592,592,592,592,592,592,592,592,592,1163", "1163,592,,1163,,,,,,,,1163,1163,,1163,1163,1163,1163,1163,1163,1163", ",,1163,1163,,,,1163,1163,1163,1163,,,,,,1163,,,,,,,,1163,1163,,1163", "1163,1163,1163,1163,1163,1163,1163,1163,1163,1163,1163,674,674,1163", ",674,,,,,,,,674,674,,674,674,674,674,674,674,674,,,674,674,,,,674,674", "674,674,,,,,,674,,,,,,,,674,674,,674,674,674,674,674,674,674,674,674", "674,674,674,1164,1164,674,,1164,,,,,,,,1164,1164,,1164,1164,1164,1164", "1164,1164,1164,,,1164,1164,,,,1164,1164,1164,1164,,,,,,1164,,,,,,,,1164", "1164,,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,630", "630,1164,,630,,,,,,,,630,630,,630,630,630,630,630,630,630,,,630,630", ",,,630,630,630,630,,,,,,630,,,,,,,,630,630,,630,630,630,630,630,630", "630,630,630,630,630,630,1188,1188,630,,1188,,,,,,,,1188,1188,,1188,1188", "1188,1188,1188,1188,1188,,,1188,1188,,,,1188,1188,1188,1188,,,,,,1188", ",,,,,,,1188,1188,,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188", "1188,1188,601,601,1188,,601,,,,,,,,601,601,,601,601,601,601,601,601", "601,,,601,601,,,,601,601,601,601,,,,,,601,,,,,,,,601,601,,601,601,601", "601,601,601,601,601,601,601,601,601,,,601"]; + racc_action_check = (arr = $$$('Array').$new(28717, nil)); idx = 0; - $send(clist, 'each', [], ($Ruby30$10 = function(str){var self = $Ruby30$10.$$s == null ? this : $Ruby30$10.$$s, $$11; - + $send(clist, 'each', [], function $Ruby31$4(str){ - if (str == null) { - str = nil; - }; - return $send(str.$split(",", -1), 'each', [], ($$11 = function(i){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; + if (str == null) str = nil;; + return $send(str.$split(",", -1), 'each', [], function $$5(i){var $writer = nil; - if (i == null) { - i = nil; - }; - if ($truthy(i['$empty?']())) { - } else { + if (i == null) i = nil;; + if (!$truthy(i['$empty?']())) { $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); + $send(arr, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - return (idx = $rb_plus(idx, 1));}, $$11.$$s = self, $$11.$$arity = 1, $$11));}, $Ruby30$10.$$s = self, $Ruby30$10.$$arity = 1, $Ruby30$10)); - racc_action_pointer = [nil, 1349, 3855, 739, nil, 401, nil, 5413, 1392, 558, 24440, 24312, 556, nil, 509, 438, 592, 429, 800, 605, nil, -69, 5675, 1263, 24824, 307, nil, 803, nil, 254, 5947, 6057, 6191, 6322, 6453, nil, 2703, 23109, 23895, nil, 175, 466, 569, 146, 6715, 6846, -44, 6977, 7108, 975, 7239, 45, 185, 323, 1112, nil, nil, nil, nil, nil, nil, nil, nil, nil, 7380, nil, 7521, 7652, 7783, 199, nil, 7914, 8045, nil, nil, 8176, 22585, 23502, 23764, nil, nil, nil, nil, nil, nil, nil, nil, nil, 529, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 830, nil, nil, 110, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 8319, nil, nil, nil, nil, 8462, 8593, 8724, 5138, 8998, nil, 2847, nil, -1, 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, 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, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1400, nil, 1983, 21406, 21537, 21668, 21799, 21930, 22061, 26978, 27039, nil, nil, 22192, 22323, 9129, nil, nil, 1135, 443, 389, 1466, 119, 1349, 1407, nil, 9260, 5007, 1374, nil, nil, 9391, 9522, 9653, 9784, 9915, 10046, 10177, 10308, 10439, 10570, 10701, 10832, 10963, 11094, 11225, 11356, 11487, 11618, 11749, 11880, 12011, 12142, nil, nil, nil, nil, 12273, nil, nil, 768, 698, 670, 669, 658, 556, 523, 417, 306, -62, nil, nil, nil, 13059, nil, nil, 5279, nil, nil, 1260, 13321, 13452, nil, nil, nil, nil, nil, nil, nil, 13583, nil, 2271, nil, 1207, 1190, nil, 13845, 1232, 13976, nil, nil, 14107, 14238, nil, nil, 72, nil, 14381, 960, 1178, 1144, 3423, 1158, 1186, 1142, 24034, 2991, 228, 300, 409, 1216, 802, nil, 1172, 1126, 275, 1160, 1156, nil, nil, nil, 1149, 255, 1099, 22978, nil, 327, 968, 3999, 3855, 1165, nil, 1160, 15429, nil, 15560, 1068, 4431, 1057, nil, 607, 24910, 1055, 4143, 3999, 738, 1067, nil, 748, 730, 1081, 1049, 492, 1071, nil, 772, 179, 35, 16215, 3135, 2559, 400, 1127, 993, 57, 40, 692, 1050, -18, 1078, nil, nil, 966, 479, 372, nil, 1108, nil, 980, 16608, nil, 26698, nil, 395, 398, 641, 506, 401, -32, -34, 606, nil, nil, nil, nil, nil, nil, nil, 966, 24696, nil, nil, nil, nil, 961, nil, 1030, 931, 18204, 929, nil, nil, 911, nil, 889, 15, 1011, nil, nil, 1407, nil, nil, nil, nil, nil, 1695, 858, nil, 854, 841, 526, 511, 19000, nil, nil, nil, 720, 610, 865, nil, nil, 19275, 19411, nil, nil, nil, 212, nil, 837, 27222, 27710, 19941, 345, 20203, 20334, 20465, 26016, 26506, 4431, 4719, 1014, 853, 783, 782, 775, 770, 5138, 5413, 5230, 4863, 3711, 4575, 3567, 3279, 3423, 3110, 3019, 3135, 4143, 1983, 5007, nil, 231, nil, 5279, nil, nil, nil, nil, 8855, 654, 668, 689, nil, nil, nil, 694, nil, nil, 21275, nil, 21144, nil, 21013, nil, 392, nil, nil, nil, 20870, 907, nil, 729, 731, nil, nil, 735, 23633, 744, 20727, 27527, 27161, 798, 787, nil, nil, 23240, 750, nil, 20596, 27405, 27466, 20072, 4287, 2559, 19810, 19679, 878, 879, nil, nil, 759, 757, 762, 761, 778, nil, 782, 788, nil, nil, nil, nil, nil, nil, nil, nil, nil, 777, 961, nil, nil, 19548, nil, nil, nil, 232, nil, nil, nil, 878, nil, nil, 880, 219, 820, 19134, 949, 960, 840, 881, nil, 18859, nil, nil, 18728, nil, nil, nil, 1551, 972, nil, 1695, -14, 980, 1002, 38, 1035, 18597, 18466, 26917, 27100, 7, nil, nil, 958, nil, 27344, 27588, 18335, nil, nil, 189, 2415, nil, 27894, nil, nil, nil, nil, 1362, nil, nil, nil, 946, nil, nil, 322, nil, 357, nil, nil, 935, nil, 937, nil, nil, nil, 24568, nil, 18073, 944, 17930, 17799, 17668, 26856, 27832, 17537, 17394, 442, 987, 17263, 17132, 17001, 16870, 990, nil, nil, 16739, 16477, 992, nil, nil, nil, 251, -56, 332, 471, 959, 1007, nil, 992, nil, nil, 416, 25819, -84, nil, 646, nil, nil, 7380, 26645, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1056, 534, nil, 1039, 995, 25638, nil, 1122, nil, 1105, 173, nil, nil, 16346, nil, 1031, 1036, 1137, nil, 1022, nil, 1069, 16084, nil, nil, 15953, nil, 247, 22716, 1027, nil, 1031, 105, 343, 1099, 246, 875, 1101, 1058, 22847, nil, 1127, -26, 1839, 1184, 15822, nil, nil, 717, nil, nil, 1296, nil, nil, 649, 25204, nil, 23942, nil, 15691, nil, 3006, nil, 1073, 1075, 1170, 1079, nil, nil, nil, nil, nil, nil, 25008, 1551, nil, nil, nil, nil, 702, 240, nil, 1201, nil, nil, nil, nil, nil, 1208, 1209, nil, nil, 26, 1100, 39, 31, -1, 8, 975, 1110, 964, nil, 1103, 1119, 15298, nil, 1237, -23, 1121, nil, nil, nil, nil, nil, 1263, nil, nil, nil, nil, nil, nil, nil, nil, 1127, 15167, 1140, 252, -85, 220, 0, nil, 2127, 15036, nil, 1139, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 14905, 14774, 14643, 14512, 417, 1228, 26408, 121, 152, 26310, 26212, 441, -68, 1169, 1170, nil, 26114, nil, 1169, 1171, 1254, 1187, nil, 1193, 25918, 26777, 26743, nil, nil, nil, nil, nil, 13714, nil, nil, 1234, nil, nil, 1231, 1217, nil, nil, 539, 3567, nil, nil, nil, nil, 1220, 291, nil, nil, 13190, 1349, nil, 4287, 1226, 1280, nil, nil, 1245, nil, 1243, 1244, nil, 1249, nil, 1336, nil, 1255, 1256, nil, 1257, nil, nil, 1263, 2977, 3016, nil, nil, 12928, nil, 1388, nil, 12797, 1389, nil, nil, 25721, 12666, 4719, 10, 1395, nil, 1396, 451, 4863, nil, nil, nil, nil, 1279, 1333, 1316, 1311, 113, nil, nil, 12535, 12404, nil, nil, nil, nil, 1316, 1317, 1318, 1316, nil, nil, 25103, nil, nil, 2, nil, nil, 1337, 1354, 1357, nil, nil, nil, 1401, 1358, -48, nil, 24907, nil, 1366, nil, nil, -31, nil, nil, 2703, 1407, nil, nil, 1364, 1367, nil, 1368, 1370, 1373, nil, 1402, 1389, 1375, 22454, nil, nil, nil, 2847, nil, 1839, nil, nil, 36, 24173, nil, nil, 25822, nil, 25400, nil, nil, 25302, nil, 24081, nil, nil, nil, nil, 1393, 1398, 2415, nil, -10, nil, 136, 575, -83, nil, nil, nil, nil, 216, nil, nil, nil, 1523, 2127, 2271, 2113, nil, nil, nil, nil, nil, 1043, 1447, 325, nil, nil, nil, nil, nil, nil, 1404, 25005, 1406, nil, nil, 329, nil, nil, 1584, nil, nil, 25921, nil, nil, 26019, nil, 25708, nil, nil, -82, 23371, 1102, -22, nil, 4575, 32, 9, 991, 167, 79, nil, 106, 136, 151, 168, 3215, 3045, 3279, nil, 6584, 5806, 26604, nil, nil, nil, nil, 239, 354, 542, nil, nil, nil, nil, nil, nil, 25201, 245, 25397, 253, nil, nil, 255, 287, 296, 324, nil, 356, nil, 841, 27283, nil, 499, 5544, 27649, 27771, 33, 25498, nil, nil, nil, nil, 399, 628, 3711, nil, nil, nil, 427, nil, nil, nil, 1969, 437, 25495, nil, nil, nil, 27902, nil, 26509, nil, 26411, nil, 26117, nil, nil, 520, 531, nil, 518, 145, 146, 142, 39, 541, nil, 35, 25299, nil, 557, 566, 576, 593, 143, nil, nil, nil, nil, 625, 25106, nil, nil, nil, nil, 631, nil]; - racc_action_default = [-1, -729, -4, -729, -2, -714, -5, -729, -8, -729, -729, -729, -729, -31, -729, -729, -36, -729, -729, -305, -48, -716, -729, -57, -729, -65, -66, -67, -71, -282, -282, -282, -318, -345, -346, -83, -13, -87, -95, -97, -729, -611, -612, -729, -729, -729, -729, -729, -729, -235, -729, -716, -626, -626, -253, -296, -297, -298, -299, -300, -301, -302, -303, -304, -702, -307, -311, -728, -692, -326, -328, -729, -729, -59, -59, -714, -729, -729, -729, -347, -348, -350, -351, -352, -353, -410, -551, -552, -553, -554, -575, -557, -558, -577, -579, -562, -567, -571, -573, -589, -590, -591, -575, -593, -595, -596, -597, -598, -700, -600, -601, -701, -603, -604, -605, -606, -607, -608, -609, -610, -615, -616, 1219, -3, -715, -724, -725, -726, -7, -729, -729, -729, -729, -729, -9, -4, -19, -729, -126, -127, -128, -129, -130, -131, -132, -136, -137, -138, -139, -140, -141, -142, -143, -144, -145, -146, -147, -148, -149, -150, -151, -152, -153, -154, -155, -156, -157, -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, -178, -179, -180, -181, -182, -183, -184, -185, -186, -187, -188, -189, -190, -191, -192, -193, -194, -195, -196, -197, -198, -199, -200, -201, -202, -203, -204, -205, -206, -24, -133, -13, -729, -729, -729, -729, -729, -272, -729, -729, -712, -713, -729, -729, -716, -717, -52, -729, -611, -612, -729, -305, -729, -729, -241, -729, -13, -729, -53, -55, -218, -219, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -729, -254, -255, -256, -257, -729, -61, -62, -729, -126, -127, -166, -167, -168, -184, -189, -196, -199, -611, -612, -690, -729, -419, -421, -729, -710, -711, -72, -272, -729, -325, -425, -434, -436, -78, -431, -79, -716, -80, -260, -277, -286, -286, -281, -729, -287, -729, -575, -694, -729, -729, -81, -82, -714, -14, -729, -17, -729, -85, -13, -716, -729, -88, -91, -13, -103, -104, -729, -729, -111, -318, -321, -716, -729, -626, -626, -345, -346, -349, -432, -729, -93, -729, -99, -315, -729, -220, -221, -594, -229, -230, -729, -242, -729, -729, -13, -625, -621, -648, -648, -729, -13, -13, -309, -716, -261, -721, -721, -729, -729, -721, -729, -327, -58, -729, -729, -729, -13, -13, -714, -729, -715, -611, -612, -729, -729, -305, -729, -363, -364, -121, -122, -729, -124, -729, -305, -619, -729, -341, -648, -555, -729, -729, -729, -729, -729, -729, -729, -729, -6, -727, -25, -26, -27, -28, -29, -729, -729, -21, -22, -23, -134, -729, -32, -35, -292, -729, -729, -291, -33, -729, -37, -729, -305, -45, -47, -207, -265, -287, -49, -50, -38, -208, -265, -716, -273, -286, -286, -703, -704, -282, -429, -705, -706, -704, -703, -282, -428, -430, -705, -706, -44, -215, -51, -716, -324, -729, -729, -729, -272, -315, -729, -729, -729, -729, -729, -216, -217, -222, -223, -224, -225, -226, -227, -231, -232, -233, -234, -236, -237, -238, -239, -240, -243, -244, -245, -246, -716, -258, -63, -716, -440, -282, -703, -704, -69, -73, -649, -716, -286, -716, -283, -438, -440, -716, -320, -278, -729, -279, -729, -284, -729, -288, -729, -697, -699, -12, -715, -16, -18, -716, -84, -313, -100, -89, -729, -716, -272, -729, -729, -110, -729, -625, -594, -729, -96, -101, -729, -729, -729, -729, -259, -247, -729, -729, -543, -729, -376, -377, -716, -633, -716, -689, -689, -631, -633, -633, -647, -649, -650, -651, -652, -653, -654, -655, -656, -657, -729, -659, -661, -663, -668, -670, -671, -674, -679, -681, -682, -684, -685, -686, -729, -729, -633, -729, -729, -729, -716, -729, -262, -723, -722, -264, -723, -316, -317, -693, -13, -354, -355, -13, -729, -729, -729, -729, -729, -729, -272, -729, -729, -315, -59, -121, -122, -123, -729, -729, -272, -337, -617, -729, -13, -411, -648, -414, -556, -576, -581, -729, -583, -559, -578, -729, -580, -561, -729, -564, -729, -566, -569, -729, -570, -729, -592, -10, -20, -729, -30, -729, -295, -729, -729, -272, -729, -729, -729, -729, -433, -729, -274, -276, -729, -729, -74, -271, -426, -729, -729, -76, -427, -323, -718, -703, -704, -703, -704, -716, -54, -460, -462, -464, -467, -524, -716, -479, -482, -517, -522, -523, -729, -729, -527, -528, -529, -530, -531, -532, -533, -534, -535, -536, -537, -729, -729, -541, -56, -729, -729, -691, -729, -441, -68, -422, -438, -267, -274, -269, -729, -400, -729, -319, -286, -285, -289, -729, -695, -696, -729, -15, -86, -729, -92, -98, -716, -703, -704, -270, -707, -109, -729, -94, -729, -214, -228, -716, -249, -728, -728, -343, -622, -729, -640, -624, -729, -629, -630, -729, -729, -643, -729, -645, -729, -365, -729, -367, -369, -372, -375, -716, -662, -672, -673, -683, -687, -627, -729, -251, -344, -308, -310, -312, -721, -728, -356, -728, -60, -357, -358, -331, -332, -729, -729, -446, -334, -729, -716, -703, -704, -707, -314, -13, -121, -122, -125, -716, -13, -729, -339, -729, -729, -716, -582, -585, -586, -587, -588, -13, -560, -563, -565, -568, -572, -574, -135, -34, -293, -729, -716, -703, -704, -704, -703, -46, -266, -729, -719, -286, -40, -210, -41, -211, -75, -42, -213, -43, -212, -77, -729, -729, -729, -729, -433, -729, -729, -465, -466, -729, -729, -729, -484, -716, -716, -478, -485, -491, -729, -494, -498, -729, -481, -729, -729, -520, -521, -525, -526, -538, -122, -539, -729, -64, -420, -400, -424, -423, -729, -716, -435, -401, -716, -13, -437, -280, -290, -698, -90, -433, -102, -322, -729, -728, -361, -13, -544, -728, -545, -546, -716, -632, -633, -633, -660, -689, -669, -674, -688, -633, -633, -680, -633, -657, -675, -716, -729, -729, -374, -658, -729, -263, -729, -359, -729, -729, -333, -335, -729, -729, -13, -433, -729, -433, -729, -729, -13, -342, -412, -415, -417, -404, -729, -729, -294, -433, -39, -209, -275, -729, -461, -463, -471, -475, -716, -716, -716, -503, -505, -506, -509, -510, -575, -513, -515, -516, -716, -716, -716, -540, -476, -477, -501, -486, -489, -492, -729, -497, -716, -575, -720, -716, -518, -519, -248, -13, -70, -268, -689, -689, -381, -383, -383, -383, -399, -729, -716, -657, -665, -666, -677, -439, -250, -11, -13, -550, -362, -729, -729, -548, -623, -729, -636, -729, -638, -628, -729, -641, -729, -644, -646, -366, -368, -370, -373, -252, -329, -729, -330, -729, -451, -454, -457, -458, -459, -289, -728, -336, -338, -618, -729, -13, -13, -729, -413, -584, -468, -469, -470, -504, -508, -729, -512, -514, -472, -473, -474, -493, -487, -729, -495, -499, -480, -729, -483, -442, -729, -379, -380, -384, -390, -392, -729, -395, -729, -397, -402, -729, -729, -664, -729, -549, -13, -611, -612, -729, -729, -305, -547, -633, -633, -633, -633, -729, -729, -13, -447, -729, -729, -455, -443, -444, -445, -340, -729, -729, -716, -406, -408, -409, -502, -507, -511, -729, -490, -729, -689, -667, -382, -383, -383, -383, -383, -678, -383, -403, -676, -729, -315, -543, -272, -729, -729, -315, -729, -634, -637, -639, -642, -371, -728, -13, -452, -453, -456, -494, -416, -418, -405, -729, -488, -729, -496, -500, -378, -729, -387, -729, -389, -729, -393, -729, -396, -398, -314, -707, -542, -716, -703, -704, -707, -314, -633, -360, -728, -729, -407, -383, -383, -383, -383, -433, -635, -448, -449, -450, -495, -729, -385, -388, -391, -394, -383, -386]; - clist = ["42,141,141,225,291,42,330,230,623,275,274,380,293,809,409,141,308,308", "308,346,346,124,287,458,464,127,416,382,383,365,365,387,764,526,42,334", "334,361,309,309,309,436,437,452,373,514,743,518,878,144,144,772,773", "342,342,632,584,584,346,346,346,947,233,918,42,8,134,136,217,123,8,385", "386,374,391,287,287,310,310,310,349,299,303,449,928,419,420,421,422", "469,510,934,342,342,342,127,929,584,564,356,329,950,615,618,603,604", "343,343,930,928,607,610,375,378,614,516,443,569,15,443,887,929,42,15", "326,443,936,328,1085,371,743,42,932,42,567,600,879,369,735,388,1047", "1017,575,575,908,343,343,343,740,292,740,4,15,553,295,302,304,786,967", "1049,1134,128,695,723,306,319,320,1148,927,649,651,654,654,1132,1170", "642,1032,568,526,892,893,2,15,575,550,550,1028,8,981,993,1177,727,396", "927,653,655,423,743,8,746,1003,404,406,737,362,368,216,397,308,432,425", "1139,482,483,803,276,42,468,725,475,731,979,991,1018,664,435,435,359", "376,730,288,377,395,636,370,988,988,1020,605,531,15,42,808,372,823,961", "639,988,1048,15,1148,15,998,1019,1095,1021,1131,640,963,431,442,293", "407,442,827,1175,1134,1059,1066,442,1067,509,520,458,464,521,900,459", "417,1201,308,308,430,1125,424,1054,1208,953,821,308,1166,1055,1058,975", "976,874,694,875,886,889,740,740,517,309,1135,1136,922,329,1010,980,992", "309,1,346,988,408,410,780,1047,554,546,42,411,412,413,42,549,1211,1144", "334,42,584,346,414,15,1164,438,535,556,438,619,127,310,415,754,438,749", "342,334,903,310,1102,1114,940,754,758,740,829,606,15,1126,42,1007,1008", "751,834,342,42,42,824,931,929,1086,542,826,1142,896,626,,,,877,537,42", "42,534,536,936,1057,776,778,329,,299,,,329,,507,303,343,551,,,,,,127", ",828,1145,1040,837,1146,837,326,141,575,538,343,326,1087,929,544,754", "671,1198,369,1141,519,,859,754,,,988,864,522,676,15,,,,15,813,,,,15", "620,621,622,932,,822,1086,,,584,,,308,910,,144,584,,468,,458,464,1169", ",29,,,,,29,15,717,717,663,584,904,15,15,,,845,,724,743,29,1092,1093", "1202,,1209,,,15,15,29,29,29,,29,,1086,682,1178,554,780,929,,687,943", ",925,,554,,,,346,,459,,308,,994,955,42,346,946,,29,468,855,857,334,29", "29,860,862,29,1178,468,,334,913,,,877,877,,,959,342,,,682,,,443,,,342", "1006,739,1086,,,,443,443,910,,,443,443,,681,,,935,923,937,686,1210,", ",,,29,740,1022,459,,29,29,29,29,29,,29,,459,308,,,343,42,,,42,,468,308", "792,343,1179,1191,468,,,818,,933,812,,933,1056,,729,,42,,804,,,,,,,", ",675,,,15,,799,308,141,,,825,,,,,468,42,1075,,,,,,42,902,780,780,,,", "459,800,676,1127,802,,,,459,676,888,29,29,29,29,29,29,29,1065,,,717", "29,29,29,144,,717,717,,901,442,898,274,971,,29,,141,554,1016,442,442", "841,854,459,442,442,584,,915,842,346,15,,,15,,850,676,,,,346,924,1037", "1039,1090,334,,443,,1042,1044,1107,1045,,15,,334,,,29,,,,342,1015,,29", "29,,,435,1120,,1121,342,29,,854,,960,,15,,1022,438,,1022,,15,,,,,29", "438,438,,29,676,438,438,1130,29,877,,682,,676,687,,,,,966,,42,343,,", ",42,,,,,,,343,,,676,42,,29,,,,,,29,29,,,,,,1115,,1116,780,780,1117,", ",29,29,29,,676,,,,,676,676,,,,717,1022,,717,717,,,29,450,,717,,,957", "470,,,,717,717,717,869,,442,966,,1030,,880,968,1034,,,,381,381,1052", "42,381,1147,,1149,1076,,,,,,,42,,,,,,,,,,1088,,1160,1161,1162,1163,15", ",,,,15,,,,,,,,914,29,933,15,717,1015,42,754,1015,,1015,,42,,381,381", "381,381,,,,438,,1197,,1026,,1192,,,676,676,676,1064,,,717,1031,,,,,888", ",1203,,1204,,1205,,,,717,,,,,,346,29,966,42,956,,,,1207,,346,29,,958", "1061,,287,,1217,15,,,42,,,,1109,29,,,1023,15,,1015,342,1015,970,1015", ",1015,,,,,342,,,1014,447,448,,,,,,,,471,472,42,42,,,,978,1015,15,,,995", "996,,15,1167,1168,,,717,,,346,29,,,29,,,343,1106,,1156,29,,,,,287,343", ",,42,29,,,,29,,,,,,,1173,42,342,,508,717,,,,15,18,,,1129,,18,470,,450", "717,29,717,308,29,29,,468,29,15,,234,468,1113,29,29,,,,29,29,234,234", "234,,18,335,335,42,,,,,,,1154,343,,717,,,,676,,,,15,15,1165,,,1079,1080", "1081,,18,,,,,234,234,717,,234,392,402,402,,,,,459,760,,,,,718,718,381", ",,1023,,,1023,15,,1023,,1023,17,,1199,,,17,,,15,638,,1014,,,1014,,1014", ",,,,18,,,,,234,234,234,234,18,,18,,17,,,,,,,,,,1096,1098,1100,,,,,,", ",15,,,,,,,29,,,17,,29,29,,,,,,,,,,29,,,1023,,1023,,1023,,1023,,,,,,", ",,29,,1014,379,1014,,1014,,1014,,856,858,,,,861,863,1023,,,18,234,440", "234,234,440,234,17,,,,440,234,234,1014,,17,,17,,,,,,,18,,,,,,,,,,,29", ",,,,,,,,1206,,,29,,762,,,,,,,1181,1183,1185,1187,,1188,,,,,,,,,234,", ",,,,29,234,234,,,,29,,,,234,,29,718,473,,,,,718,718,,,,17,,17,,18,17", ",,18,,,17,335,18,1213,1214,1215,1216,,,,,,,,17,,,,1218,,335,,433,446", ",,29,,,,,,,18,,,,,,18,18,,,,,29,,,,,,972,41,523,234,18,18,41,,,,,,,856", "858,863,861,,,,,,,286,234,539,,,,,,29,29,,,41,333,333,,,,,,17,,,,17", ",,,,17,,,,,,,,,,,,528,41,530,,,532,533,,29,,,390,286,286,,,,,,17,,29", ",29,29,17,17,,,,,,234,718,,,718,718,,,,17,17,718,,,,,,,,718,718,718", ",,29,,972,41,,,,,,,,29,41,,41,,,,,,,,,,,,,,,,381,,,,18,,,,,,,,335,,234", ",,,,688,,335,,,,,,,,718,234,,,,,,667,,,,,,,,,,,,,,,,,,,726,,,,,,718", ",732,,734,,41,,738,,,,,,,,718,,,,,,,18,747,,18,,,,750,41,,234,,,,,,", ",,,234,17,,,18,,,,712,712,767,,770,,,,,,,,,381,,741,,379,,744,,,,18", ",,440,234,,,18,,,,,,440,440,,,797,440,440,,,,,,718,,,,,,,,,,,,41,,,", "41,,,,333,41,,,,17,,,17,,787,,,,,,,,,333,718,,,,,,,,,17,741,,41,379", "718,,718,335,41,41,,,,,,,446,,335,,,,,,41,41,17,,,17,,,,17,,,,,,17,17", ",718,,17,17,711,711,,,,,,,,,,,,,843,,,,,,718,,,741,379,,,,,,,18,,,,", "18,234,,,,,381,381,,,,18,,,,,,916,,,,,,,,,,,,440,,,,,,,,,,712,,944,", "741,,712,712,,,,,,911,,,912,,,,,,,,,,,,,,,,19,,,,921,19,,,,,,,,,18,", ",,939,,,41,,,,17,18,,,333,17,,,,19,337,337,,333,,,17,,,,,,,,,,,,,,234", "977,,,17,,18,,,19,,,18,,,,,,,394,403,403,,,,,,,969,,,,,1012,,,,,,,,", ",,,,41,,,41,,,,,1035,,,711,,,17,18,,711,711,,,19,,1046,41,,17,,1104", ",19,,19,,18,,,712,1110,,712,712,,,,,,712,,,,41,,,,712,712,712,41,,,17", "1071,1072,1073,,,17,,,,18,18,,,,,,,,,,,,,,,,,1089,,,1060,,,,,,,,,,,", ",,,,1151,710,710,379,18,,,19,17,441,,712,441,,,,,18,441,234,234,,709", "709,,333,,17,,,,,19,,,,333,,,,,,,712,,,,,,,,,234,,,,,,,712,,,,18,17", "17,,,,,,713,713,711,,,711,711,,,,,,711,,,,,,,,711,711,711,,41,,,,,41", ",,,,17,,,,,,41,19,,,,19,,17,,337,19,,,,,,,,,,,,,,,,,,337,,,712,,,,32", ",,,,32,19,,,711,,,19,19,,,,,17,,32,,,,,,,,19,19,32,32,32,,32,,712,,", "41,,711,,,,,,,,,712,41,712,,,,,711,,,,,,,32,,,,,32,32,,,32,710,,,,,", "710,710,,,,,41,,712,,,,41,,,709,,,,,,709,709,,,,,,,,,,712,,,,,715,715", ",,,32,,,,,32,32,32,32,32,,32,,,,,,,711,41,,,713,,,,,,713,713,,,286,", ",,,,41,,,,1108,,,,,,,,,,,,,,19,,711,,,,,,337,,,,,,,,711,337,711,41,41", ",,,,,,,,,,,,,,,,,32,32,32,32,32,32,32,,,,,32,32,32,,,711,,286,,,,41", ",,32,,,710,,,710,710,,,41,,,710,,711,,19,,,19,710,710,710,709,,,709", "709,,,,,,709,,,,,,,19,709,709,709,,32,,833,,,,,32,32,,41,,,,,,32,,,", ",,19,,,441,,713,,19,713,713,,,32,441,441,713,32,710,441,441,,32,,713", "713,713,,715,,,,,,715,715,,,,709,,,,,,,,,,,710,,,32,,,,,,32,32,,,,,", "710,,,,,709,,,32,32,32,,,,,,,337,,,,709,713,,,,,,337,32,,,,,,,,,,,,", ",,,,,,,,,,,,713,,,,,,,,,,,,,,,,713,,,,,,,,,,,,,710,,,,19,,,,,19,,,,", ",,,,32,,19,709,,,,,,,,,,,,,,,,,441,,710,,,,,716,716,,,715,,,715,715", "710,,710,,,715,,709,,,,,,715,715,715,713,,,,,709,32,709,,,,,,,714,714", "32,,,,,,710,,19,,,,,,,,32,,,,19,,,,713,,,709,,,710,,,,,,,,713,,713,", ",,,715,,,,,,709,,,,19,,,,,,19,,,,,,,,,32,,,32,,,713,715,,,32,,,,,,241", ",,,32,,,715,32,,307,307,307,,713,,,,,,,,354,355,19,357,358,,360,,,,", ",,32,,403,32,32,,,32,19,,307,307,1112,32,32,,,,32,32,,,,,,,,,,,,,,,", ",,,,,,,,,,19,19,,,,,,,,,715,,716,,,,,,716,716,,,,,,,,,,,,,,,,,,403,", ",,19,,,,,,,,,715,714,,,19,,,714,714,,,,,,715,,715,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,19,,715,,,,,32,,,,,32,32,,,,307,445,,,451,307,32,,,715", "451,,,,,,,,,,,,,241,32,,,,484,485,486,487,488,489,490,491,492,493,494", "495,496,497,498,499,500,501,502,503,504,505,,,,,506,,,,,,,,,,,716,,", "716,716,,,,,,716,,307,307,,32,,,716,716,716,307,,,,,,32,307,,307,,,307", "307,,,,,714,,,714,714,,,,,,714,,,,,,,32,714,714,714,,,32,,,,,,32,,,", ",,,559,,560,,,,,716,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,716,,,32,,,,714,", ",,,,,,,716,,,,,,32,,,,,,,,,,,,,,307,,,714,,,,,,,,,,,,,,,,714,,,,32,32", ",,,,,,,,,,,,,,,,,,307,,451,451,451,,,,,,,,,,,,,,,,716,32,,,,,,,,,,,", ",32,,32,32,355,,,,,,,,,,307,,307,,307,,,,,,,714,716,,,,,,,,307,32,,", ",,716,,716,,451,,32,761,,,,763,,,,,,,,,,,,,,714,,,,,,,,,,,,307,716,714", ",714,,,,,,,,,,794,,,,,,307,,,307,,716,,,,,,,,,,,307,307,,,714,,,,,,", "307,,,,,,,,,,,,,,,,,714,,,,,,,,,,,,,,,,307,451,307,,,,851,,,307,307", "451,451,,,,451,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307", ",,,,,,,,307,,,307,,,,,,,,,,,,,,,,,,,,307,,,,,,,,,,,,,,307,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307,,,,,,,,451", ",,,,,,,,,,,,451,451,451,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1009,,,,,,,", ",,,,,,,,,,,,1027,,,,,,,,,,,,,,,,,,,,,,,,,,,,1050,,,,,,,,,307,,,,,,,", ",,,,,,,,,,,307,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307"]; - racc_goto_table = (arr = $$$('::', 'Array').$new(4137, nil)); + return (idx = $rb_plus(idx, 1));}, 1);}, 1); + racc_action_pointer = [nil, 1550, 2590, 30, nil, 485, nil, 21057, 1279, -15, 24908, 25292, 63, nil, 111, 130, 888, 195, 878, 334, 213, 587, nil, -72, 16018, 1438, 25420, 260, nil, 586, nil, 10, 7680, 8479, 8613, 9947, 10209, nil, 1870, 24507, 23582, nil, 199, 495, 356, 292, 12722, 13115, 252, 13377, 14041, 977, 19960, 226, 694, nil, nil, nil, nil, nil, nil, nil, nil, nil, 21341, nil, 15494, 15351, 14696, 170, nil, 14434, 14303, nil, nil, 21200, 24638, 24114, 24769, nil, nil, nil, nil, nil, nil, nil, nil, nil, 877, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 610, nil, nil, 722, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 20234, nil, nil, nil, nil, 20091, 19567, 19436, 19305, 19174, nil, 4318, nil, -26, 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, 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, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 266, nil, 4462, 22788, 21740, 21609, 14172, 13910, 13779, 27931, 27748, nil, nil, 264, 2734, 305, nil, 27294, 27386, 317, 1294, 12043, 11912, 11257, nil, nil, 1133, 138, 140, 432, 174, 389, 452, nil, 10078, 131, 191, 3022, 455, nil, nil, 7277, 7146, 7015, 6753, 6491, 6360, 6229, 6098, 5967, 18507, 18376, 18245, 17590, 17459, 17328, 16411, 16149, 15756, 15220, 15089, 20639, 21478, nil, nil, nil, nil, 13648, nil, nil, 583, 548, 381, -62, 413, 376, 696, 695, 584, 585, nil, nil, nil, 15625, nil, nil, 27992, nil, nil, 484, 16673, 17066, nil, nil, nil, nil, nil, nil, nil, 17197, nil, 2446, nil, 455, 459, nil, 17721, 512, 17852, nil, nil, 17983, 18114, nil, nil, -73, nil, 5836, 1711, 509, 484, 1726, 513, 564, 525, 23312, 2878, 999, 1139, 614, 617, 582, nil, 610, 571, 253, 616, 644, nil, nil, nil, 650, 171, 611, 23852, nil, 471, 1022, 3742, 3886, 687, nil, 691, 12591, nil, 677, 2302, 1567, 638, nil, 541, 621, 676, 662, 651, 690, nil, 870, 35, 36, 22133, 1006, 4894, 459, 766, 651, 25, 39, 730, 747, 4, 793, nil, nil, 1141, 1285, 370, nil, 692, nil, 714, 14827, nil, 27438, nil, 531, 386, 291, 288, 421, 142, 191, 396, nil, nil, nil, nil, nil, nil, nil, 713, 25036, nil, nil, nil, nil, 726, nil, 798, 717, 14565, 725, nil, nil, 715, nil, 690, -60, 819, nil, nil, 1582, nil, nil, nil, nil, nil, 1870, 735, nil, 740, 749, 217, 251, 21057, nil, nil, nil, 0, 861, 795, nil, nil, 20916, 20780, 20508, 880, 882, nil, nil, 769, 775, 780, nil, nil, 785, 787, 809, nil, nil, nil, nil, nil, nil, nil, nil, nil, 801, 1280, nil, nil, 19031, nil, nil, nil, 1, nil, nil, nil, 899, nil, nil, 901, 579, 22919, 951, nil, nil, nil, -26, nil, 885, 28114, 28053, 22657, -85, 22526, 22395, 22264, 835, 853, 26710, 26612, 3454, 5300, 814, 855, 936, 938, 947, 952, 5693, 5431, 5562, 5169, 5038, 4894, 4750, 4606, 4462, 3482, 3568, 4318, 4174, 2590, 4030, nil, 154, nil, 13518, nil, nil, nil, nil, 13246, 889, 897, 901, nil, nil, nil, 902, nil, nil, 12984, nil, 12853, nil, 12460, nil, 219, nil, nil, nil, 12317, 1438, nil, 904, 909, nil, nil, 910, 23451, 916, 12174, 28175, 28236, 995, 958, nil, nil, 24376, 929, nil, 11781, 28602, 27809, 11650, 3598, 11388, nil, 1066, 947, 990, nil, 11126, nil, nil, 10995, nil, nil, nil, 4030, 1075, nil, 3742, 25, 1080, 1084, 37, 1086, 10733, 10602, 27687, 28480, -5, nil, nil, 472, nil, 27626, 27870, 10340, nil, nil, 191, 2014, nil, 27463, nil, nil, nil, nil, 1249, nil, nil, nil, 977, nil, nil, 247, nil, 286, nil, nil, 966, nil, 968, nil, nil, nil, 25164, nil, 9816, 971, 9673, 9411, 9280, 28358, 27565, 9018, 8875, 733, 1011, 8744, 8076, 7945, 7814, 1017, nil, nil, 7539, 7408, 1021, nil, 1075, 1726, 1105, 6884, nil, nil, 1120, nil, nil, 376, 13512, nil, 13482, nil, 27365, nil, 975, 6622, nil, 1310, nil, 992, 997, 1057, 1002, nil, nil, nil, nil, nil, nil, 1090, 2014, nil, nil, nil, 307, 332, 222, 361, 1006, 5693, 5562, nil, 120, nil, nil, nil, nil, 1029, nil, nil, nil, 555, 26091, 311, nil, 1007, 1092, 1014, nil, nil, 25503, nil, nil, 375, nil, nil, 586, nil, nil, 861, 27241, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 791, 464, nil, nil, 1016, 26529, nil, 1148, nil, 1131, 4, nil, nil, 16280, nil, 1046, 1053, 1154, nil, 1041, nil, 1088, 22002, nil, nil, 21871, nil, 109, 23721, 1044, nil, 1048, -1, 233, 1103, 249, 799, 1117, 1088, 24245, nil, 1156, 2158, 10864, nil, nil, nil, 372, 876, nil, 1213, nil, nil, nil, nil, nil, 1219, 1220, nil, nil, 6, 1101, -21, -19, 68, 7, 1150, 997, 989, nil, 1103, 4606, 14958, nil, 1227, 22, 1107, nil, nil, nil, nil, nil, 4750, nil, nil, nil, nil, nil, nil, nil, nil, 1106, 15887, 1110, 387, 385, 110, 500, nil, 2302, 16542, nil, 1110, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 16804, 16935, 1236, nil, 3886, 1121, 1169, nil, nil, 1129, nil, 1212, nil, nil, 1131, 1136, nil, 1141, 1143, nil, 1144, nil, nil, nil, 1150, 1204, 507, nil, nil, 18638, 18769, 18900, 5169, 5300, 5431, 333, 25993, 1231, 27004, -65, -35, 26386, 26288, 480, -32, 1154, 1155, nil, 27200, nil, 1154, 747, nil, 1178, 25895, 26190, nil, 929, 1243, 281, nil, nil, 27339, 20916, nil, nil, nil, nil, 8207, nil, nil, nil, nil, nil, 8338, nil, nil, 1227, nil, nil, 1237, 1224, nil, nil, 429, 2446, nil, nil, nil, nil, 1227, 250, nil, 137, nil, 1357, nil, 9149, 1361, nil, nil, 25797, 9542, 5038, -18, 1362, nil, 1363, 369, 1582, nil, nil, nil, nil, 1238, 1285, 1249, 1247, 304, nil, nil, 10471, 3310, 3166, nil, 3166, nil, nil, -10, 23050, nil, nil, 27446, nil, 497, nil, 27515, nil, 25493, nil, nil, nil, nil, 1248, 1250, 3022, 2878, 11519, nil, 1251, nil, nil, nil, nil, 1257, 1258, 1260, 1262, 1263, 1264, nil, nil, nil, 1309, 1267, -39, nil, 1276, nil, nil, -66, 1275, nil, nil, nil, nil, nil, nil, 1323, 2734, 2158, nil, nil, 1285, 1286, nil, 1287, 1288, 1291, nil, 1316, 1296, 1283, 23181, nil, nil, nil, nil, nil, 8, nil, 26, 771, nil, 40, nil, nil, nil, 1420, 3454, 3310, 1136, nil, nil, nil, 1438, 32, 33, 872, 1376, 34, nil, 1302, 1312, 1313, 1314, 1348, 3584, 26906, nil, nil, nil, nil, nil, nil, nil, 1317, 27102, nil, 145, nil, 25699, nil, nil, 815, nil, nil, 25898, nil, nil, 25702, nil, 13537, nil, nil, 1342, 23983, 763, 1397, 3598, nil, 19698, 19829, nil, nil, nil, nil, 1341, 1454, 713, nil, nil, nil, 1457, 20377, 28297, 28419, 69, 26144, nil, nil, nil, nil, 1332, 1333, 26808, 1341, nil, nil, 1342, nil, nil, 1361, 1365, 1382, 1385, nil, 1386, nil, 618, 28541, nil, 973, 4174, nil, nil, nil, nil, nil, 1195, nil, 1392, 76, 79, 109, 136, 1391, 25601, 1394, nil, 25604, nil, 23629, nil, 26599, nil, 23359, nil, nil, 1439, 1442, nil, 362, nil, 142, nil, 1399, 1401, 1404, 1409, nil, nil, nil, 25996, nil, nil, nil, nil, -129, nil]; + racc_action_default = [-1, -745, -4, -745, -2, -730, -5, -745, -8, -745, -745, -745, -745, -31, -745, -745, -36, -745, -745, -639, -639, -311, -52, -732, -745, -61, -745, -69, -70, -71, -75, -287, -287, -287, -324, -352, -353, -87, -13, -91, -99, -101, -745, -626, -627, -745, -745, -745, -745, -745, -745, -239, -745, -732, -258, -302, -303, -304, -305, -306, -307, -308, -309, -310, -718, -313, -317, -744, -707, -333, -335, -745, -745, -63, -63, -730, -745, -745, -745, -354, -355, -357, -358, -359, -360, -419, -563, -564, -565, -566, -587, -569, -570, -589, -591, -574, -579, -583, -585, -601, -602, -603, -587, -605, -607, -608, -609, -610, -716, -615, -616, -717, -618, -619, -620, -621, -622, -623, -624, -625, -630, -631, 1238, -3, -731, -740, -741, -742, -7, -745, -745, -745, -745, -745, -9, -4, -19, -745, -130, -131, -132, -133, -134, -135, -136, -140, -141, -142, -143, -144, -145, -146, -147, -148, -149, -150, -151, -152, -153, -154, -155, -156, -157, -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, -178, -179, -180, -181, -182, -183, -184, -185, -186, -187, -188, -189, -190, -191, -192, -193, -194, -195, -196, -197, -198, -199, -200, -201, -202, -203, -204, -205, -206, -207, -208, -209, -210, -24, -137, -13, -745, -745, -745, -745, -745, -277, -745, -745, -728, -729, -745, -13, -638, -636, -662, -662, -745, -13, -745, -745, -732, -733, -56, -745, -626, -627, -745, -311, -745, -745, -245, -745, -639, -639, -13, -745, -57, -59, -222, -223, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -745, -259, -260, -261, -262, -745, -65, -66, -745, -130, -131, -170, -171, -172, -188, -193, -200, -203, -626, -627, -705, -745, -428, -430, -745, -726, -727, -76, -277, -745, -332, -434, -443, -445, -82, -440, -83, -732, -84, -265, -282, -292, -292, -286, -290, -293, -745, -587, -709, -713, -745, -85, -86, -730, -14, -745, -17, -745, -89, -13, -732, -745, -92, -95, -13, -107, -108, -745, -745, -115, -324, -327, -732, -745, -639, -639, -352, -353, -356, -441, -745, -97, -745, -103, -321, -745, -224, -225, -606, -233, -234, -745, -246, -251, -13, -315, -732, -266, -737, -737, -745, -745, -737, -745, -334, -62, -745, -745, -745, -13, -13, -730, -745, -731, -626, -627, -745, -745, -311, -745, -370, -371, -125, -126, -745, -128, -745, -311, -634, -745, -348, -662, -567, -745, -745, -745, -745, -745, -745, -745, -745, -6, -743, -25, -26, -27, -28, -29, -745, -745, -21, -22, -23, -138, -745, -32, -35, -298, -745, -745, -297, -33, -745, -37, -745, -311, -49, -51, -211, -270, -293, -53, -54, -38, -212, -270, -732, -278, -292, -292, -719, -720, -287, -438, -721, -722, -720, -719, -287, -437, -439, -721, -722, -745, -555, -745, -383, -384, -732, -704, -704, -644, -645, -647, -647, -647, -661, -663, -664, -665, -666, -667, -668, -669, -670, -671, -745, -673, -675, -677, -682, -684, -685, -688, -693, -695, -696, -698, -699, -700, -702, -745, -745, -745, -48, -219, -55, -732, -331, -745, -745, -745, -277, -321, -745, -745, -745, -745, -745, -745, -745, -220, -221, -226, -227, -228, -229, -230, -231, -235, -236, -237, -238, -240, -241, -242, -243, -244, -247, -248, -249, -250, -732, -263, -67, -732, -449, -287, -719, -720, -73, -77, -663, -732, -292, -732, -288, -447, -449, -732, -326, -283, -745, -284, -745, -289, -745, -294, -745, -712, -715, -12, -731, -16, -18, -732, -88, -319, -104, -93, -745, -732, -277, -745, -745, -114, -745, -638, -606, -745, -100, -105, -745, -745, -745, -745, -264, -745, -328, -745, -732, -745, -267, -739, -738, -269, -739, -322, -323, -708, -13, -361, -362, -13, -745, -745, -745, -745, -745, -745, -277, -745, -745, -321, -63, -125, -126, -127, -745, -745, -277, -344, -632, -745, -13, -420, -662, -423, -568, -588, -593, -745, -595, -571, -590, -745, -592, -573, -745, -576, -745, -578, -581, -745, -582, -745, -604, -10, -20, -745, -30, -745, -301, -745, -745, -277, -745, -745, -745, -745, -442, -745, -279, -281, -745, -745, -78, -276, -435, -745, -745, -80, -436, -44, -254, -744, -744, -350, -637, -745, -642, -643, -745, -745, -654, -745, -657, -745, -659, -745, -745, -372, -745, -374, -376, -379, -382, -732, -676, -686, -687, -697, -701, -640, -46, -256, -351, -330, -734, -719, -720, -719, -720, -732, -745, -745, -58, -463, -466, -467, -468, -469, -471, -473, -476, -477, -534, -732, -489, -492, -504, -508, -513, -515, -516, -519, -520, -587, -523, -525, -526, -527, -532, -533, -745, -745, -537, -538, -539, -540, -541, -542, -543, -544, -545, -546, -547, -745, -745, -553, -60, -745, -745, -706, -745, -450, -72, -431, -447, -272, -279, -274, -745, -409, -745, -325, -292, -291, -295, -745, -710, -711, -745, -15, -90, -745, -96, -102, -732, -719, -720, -275, -723, -113, -745, -98, -745, -218, -232, -252, -745, -314, -316, -318, -737, -744, -363, -744, -64, -364, -365, -338, -339, -745, -745, -455, -341, -745, -732, -719, -720, -723, -320, -13, -125, -126, -129, -732, -13, -745, -346, -745, -745, -732, -594, -597, -598, -599, -600, -13, -572, -575, -577, -580, -584, -586, -139, -34, -299, -745, -732, -719, -720, -720, -719, -50, -271, -745, -735, -292, -40, -214, -41, -215, -79, -42, -217, -43, -216, -81, -745, -745, -744, -368, -13, -556, -744, -557, -558, -704, -683, -688, -703, -646, -647, -647, -674, -647, -647, -694, -647, -671, -386, -689, -732, -745, -745, -381, -672, -745, -745, -745, -745, -745, -745, -442, -464, -745, -745, -474, -475, -745, -745, -745, -494, -732, -732, -488, -495, -501, -745, -745, -491, -745, -745, -745, -507, -514, -518, -745, -522, -524, -530, -531, -535, -536, -548, -549, -745, -611, -612, -613, -126, -551, -745, -68, -429, -409, -433, -432, -745, -732, -444, -410, -732, -13, -446, -285, -296, -714, -94, -442, -106, -732, -268, -745, -366, -745, -745, -340, -342, -745, -745, -13, -442, -745, -442, -745, -745, -13, -349, -421, -424, -426, -413, -745, -745, -300, -442, -39, -213, -280, -45, -255, -11, -13, -562, -369, -745, -745, -560, -641, -745, -650, -745, -652, -745, -655, -745, -658, -660, -373, -375, -377, -380, -47, -257, -745, -465, -504, -470, -472, -481, -485, -732, -732, -732, -732, -732, -732, -552, -486, -487, -511, -496, -499, -502, -732, -587, -736, -732, -505, -509, -512, -517, -521, -528, -529, -745, -253, -13, -74, -273, -704, -704, -390, -392, -392, -392, -408, -745, -732, -671, -679, -680, -691, -448, -329, -336, -745, -337, -745, -460, -295, -744, -343, -345, -633, -745, -13, -13, -745, -422, -596, -561, -13, -626, -627, -745, -745, -311, -559, -647, -647, -647, -647, -745, -745, -745, -478, -479, -480, -482, -483, -484, -503, -497, -745, -490, -745, -493, -745, -550, -451, -745, -388, -389, -393, -399, -401, -745, -404, -745, -406, -411, -745, -745, -678, -745, -13, -456, -745, -745, -452, -453, -454, -347, -745, -745, -732, -415, -417, -418, -555, -277, -745, -745, -321, -745, -648, -651, -653, -656, -378, -505, -745, -500, -506, -510, -704, -681, -391, -392, -392, -392, -392, -692, -392, -412, -690, -745, -321, -744, -13, -461, -462, -425, -427, -414, -745, -554, -732, -719, -720, -723, -320, -647, -745, -498, -387, -745, -396, -745, -398, -745, -402, -745, -405, -407, -320, -723, -367, -744, -416, -442, -649, -392, -392, -392, -392, -457, -458, -459, -745, -394, -397, -400, -403, -392, -395]; + clist = ["44,411,301,309,313,44,141,141,318,318,318,340,285,418,454,493,493,284", "382,384,385,473,141,389,297,19,626,511,709,832,19,693,460,466,356,356", "44,344,344,635,127,698,699,571,225,618,621,339,563,702,704,706,144,144", "890,303,708,598,897,241,983,19,352,352,44,134,387,388,366,136,217,356", "356,356,393,297,297,421,422,423,424,798,232,232,305,312,314,907,8,19", "795,445,795,8,445,302,561,678,940,352,352,352,359,734,778,737,737,790", "445,555,127,124,438,439,1003,451,383,383,236,559,383,715,44,798,610", "613,1160,1059,617,512,375,44,904,44,1158,484,484,756,756,123,229,235", "336,1037,4,476,509,19,320,320,320,1030,373,973,1032,1184,19,1075,19", "1016,782,128,2,607,656,658,17,1012,338,1044,1047,17,792,801,383,383", "383,383,216,1055,571,377,380,933,595,595,986,399,516,434,798,493,934", "406,408,427,527,461,318,528,795,795,17,826,952,953,286,780,786,390,8", "667,652,654,657,657,44,369,605,425,378,8,470,785,1160,1184,298,432,44", "379,17,397,1221,639,44,1078,576,372,608,374,818,19,846,19,709,997,19", "642,915,1031,1077,44,1136,19,433,444,1079,1157,444,19,19,831,339,903", "568,905,449,450,518,319,319,319,444,844,643,999,19,426,419,409,318,318", "850,514,515,804,1097,584,17,318,1098,554,565,566,813,965,1151,17,1089", "17,1172,1228,376,989,1191,1038,1039,899,795,1174,731,484,303,929,232", "232,316,329,330,930,1180,645,939,309,942,460,466,1068,968,313,1061,44", "599,1062,622,44,356,912,955,344,44,894,1143,1,553,410,339,412,1175,413", "236,339,552,1030,1171,356,19,1206,344,414,19,415,1036,416,352,19,127", "1042,1045,417,44,591,525,526,923,852,1043,1046,596,857,806,847,17,352", "17,44,44,17,935,601,902,582,1064,1065,17,19,623,624,809,898,17,17,1178", "587,907,,,1126,809,,19,19,,961,,,,17,836,581,629,320,,141,127,696,493", "1219,845,320,,383,685,849,,,809,580,690,,,336,,,809,691,336,709,709", "979,,236,641,1152,437,437,860,904,860,,,1019,,868,725,579,,583,674,144", "1021,1023,589,1025,1027,,1028,,,992,,460,466,493,722,493,666,,994,,461", ",,1177,318,,991,17,882,,978,17,781,887,,,17,238,,,787,1006,789,684,452", "470,793,975,798,689,,,,625,,772,772,685,513,795,969,,802,,1076,,17,371", "805,756,756,562,319,445,721,,484,,,756,319,17,17,445,445,756,851,820", "445,445,599,735,735,461,318,1090,904,737,1048,599,982,1041,,461,878", "880,1049,1050,44,883,885,1229,1110,356,1052,,344,895,470,564,,1060,356", ",,344,,567,470,756,975,461,318,19,,,,,784,461,,352,318,,,,44,,,44,352", ",,,1230,841,470,823,,,825,,470,,,1133,1134,995,,,44,19,,1144,19,904", "461,318,709,709,,,,,,,,827,,,,,,141,916,19,947,44,,,900,470,,900,44", ",848,1103,1167,1168,1169,1170,,,794,,,,1120,1121,1122,,19,,,19,,1181", ",19,1182,,,,,19,19,444,,144,19,19,,,,,,444,444,,1198,,444,444,,822,864", ",1153,,,,,,967,,,,,,,1207,899,772,17,,445,,1147,,1148,772,,,1080,865", ",896,,966,772,772,873,,1060,,963,1007,,,1224,284,1223,1060,,599,141", "1176,,932,,685,17,,690,17,980,946,1096,,,,,,877,996,,,356,,,344,493", ",,,17,,,356,,,344,513,,452,,,,,,1060,,,,,352,,,,,1072,,17,594,,17,352", ",44,17,,1222,,44,,17,17,,,993,17,17,1176,,44,,,609,1131,,1029,835,981", "19,,1004,,,19,,,,,,,1040,,,,19,,,,,,,,,1156,44,815,383,,,,,,19,,,1015", "877,,1066,,,,,,444,,,,,19,,1080,1070,,1080,,772,,772,,,772,772,437,1085", ",,1087,772,,,,679,,772,772,,,,1073,,,772,772,,,1199,1014,,,,1018,932", ",,,,932,932,,,1127,,,809,44,,879,881,,1058,,884,886,,,1084,,,,,772,", "44,1080,1117,1118,1119,1072,44,19,1072,,1072,1092,383,,,,17,,1128,,", "17,44,356,,19,1105,,,,31,19,17,1102,735,31,,,,,,383,1095,,,779,,19,", ",17,352,31,,,,,,,,,,31,31,31,,31,17,,,,,,,,,,44,1072,,1072,,1072,,1072", ",,356,,,297,,,,31,,,,,31,31,1072,19,31,,,44,44,1192,1193,,,44,,,352", "900,1155,,1073,,,1073,1161,1073,772,,906,,908,,19,19,,772,,,19,772,", ",,,1163,,,461,318,17,,356,,31,297,765,765,44,31,31,31,31,31,,31,,,17", "1190,,,,470,17,,,,,1008,352,,,19,772,,,,,,17,,,,1073,,1073,470,1073", ",1073,,44,,,,,383,383,,,,,1220,,1081,772,1073,,,,,,879,881,886,884,19", "679,,,,,,,,,,,,,,679,941,,17,,,31,31,31,31,31,31,31,,,,,,31,,,,,,31", "31,31,31,,,,,17,17,381,18,,,17,,18,31,,,,,,,,,,,,,,,,242,,,,679,,,,", ",242,242,242,,18,345,345,,,,,,,,,17,,,,,31,,,,679,,,31,31,,1008,,18", "679,,,31,242,242,1002,,242,394,404,404,,,1137,1139,1141,,,,,31,,679", ",31,17,,,,31,,765,1081,,,1081,,,1081,765,1081,,,,,,764,764,765,765,", ",,,,1074,18,,,31,,242,242,242,242,18,,18,,,,,,31,31,31,,,,,,,679,,435", "448,,679,679,,,,,,31,,,,,,,,,1111,,1112,,1113,1081,,1081,,1081,,1081", ",,,,1209,1211,1213,1215,,1216,,1002,,,,,1081,,,,,,,,,,,,,,,,,,,18,242", "442,242,242,442,242,,31,,,,18,1232,1233,1234,1235,,18,442,242,242,,", ",1237,,,,,,,,,,18,,573,,575,,,577,578,,,,31,,679,679,679,,,,,,31,,941", "765,,765,,,765,765,,,,,1183,765,1185,,,,,765,765,,242,,1002,,,765,765", "242,242,,,,,,,,242,,1204,,,,,,,,,,,,,,,764,18,,31,,18,,,764,345,18,765", ",31,,,,764,764,,,,,,,,,1225,345,1226,,1227,,20,,,,670,20,,18,31,,,31", ",,1196,,,1236,31,,,242,18,18,,,,,31,,,,31,,,,20,353,353,,,,242,,,,,", ",,,,,,,,679,,,31,,,31,31,20,716,31,,,,,,31,31,353,353,353,31,31,,,,", ",,,,,,,,,,,,,,,,,,,,,,765,242,,,,,,,,765,,,,765,,,,20,,,,,,,,,20,,20", ",,,,796,,381,,799,,,242,764,,764,,,764,764,,,242,,,764,,,,765,,764,764", ",,,,,,764,764,,,,,,796,,,381,,,,,,,,,,,,765,448,,,,,,,,,,,,,31,,,764", ",,,18,20,,20,,,20,,345,,242,,,20,,,31,345,,20,20,31,31,,866,,,,,,,,31", "796,381,,20,,18,,,18,,,,,,893,242,,31,,,,,,,,242,,,911,18,,,,,31,,,", ",,,,,,,,,,,,,,,,,,18,,,442,242,,,18,,,,,,442,442,,,,442,442,,,,,,,,20", ",,,20,,,764,353,20,,,,,,31,764,,,,764,,,,,796,,353,,,,,31,,976,,,977", ",20,,,,,31,,,,,,31,,,,20,20,31,,,,,,,,764,,,,,,,,31,,,,,,,,,,,,,,,,", ",,,,,,,764,,,,,,,,1005,,,345,,,,,15,,,,,15,345,,,,242,,,,,31,,,,,,,", ",,,,,,,,,,18,,,15,,18,242,,,,,31,31,,,,18,31,,,21,,,,,21,,,,,,15,,,442", ",,,,,,398,773,773,,,,,,,,18,,,,,21,347,347,,,31,,31,31,,,,,,,,,,,,31", ",,,,,1091,,21,,,,,15,,,,,396,405,405,,15,,15,381,20,,,31,,,,,353,,,", ",242,,,,353,,,,,,,,,,,,,18,,,,,,,,20,,21,20,242,,,771,771,,18,21,,21", ",,18,,,,,,,,20,,,,,,,,18,,,,1106,,,,,,,15,,440,,,440,,,20,,,20,15,,", "20,,,15,440,,20,20,,,,20,20,,,,,,,,15,,,,,,,,,18,,,,,,,,,21,,443,,1145", "443,,,,,,,21,,,,,,21,443,18,18,,,773,,18,,,,,,773,,,21,,,,,,773,773", ",770,770,,,,,,,,,,,,,,,,,15,,,,15,1187,,,18,15,242,242,,,,,,,,,,,,242", ",,,353,,,,,,,,,,,353,15,,,,,,,,,,,,,18,21,15,15,,21,,,,347,21,,,20,", "771,,,20,,,,,771,,,,,347,20,,,771,771,,,,,,,21,,,,,,,20,43,,,,,43,,21", "21,,,,,,,,20,,,,,,,,296,,,,,,,,,,,,43,343,343,,,773,,773,,,773,773,", ",,,,773,,,,,,773,773,,,,43,,,773,773,,,,,,392,296,296,,,,,,,,,,,,,,", ",,,769,769,,20,,,770,,,,,,773,,770,,,,,,,20,,770,770,,,20,43,,,,,,,", ",43,,43,,,,20,,768,768,353,,,,,771,15,771,,,771,771,,,,,,771,,,,,,771", "771,,,,,,,771,771,,,,,,,,,,,,15,,,15,,,,20,,,,,,,,21,,,,,353,,,347,15", ",771,,,,,43,347,,,,20,20,,,,,20,43,767,767,,,773,43,,15,,21,440,,21", "773,15,,,773,,,440,440,43,,,440,440,,,,,,,21,,,,,,353,856,,20,,,,,,", ",770,,770,,,770,770,,,,21,773,770,443,,,,21,770,770,,,,443,443,,770", "770,443,443,,,,769,,,20,,,,,769,,773,,,,,,,769,769,43,,,,43,,,771,343", "43,,,,770,,,771,,,,771,,,,,,768,343,,,,,,,768,,,,,43,,,,768,768,,,,", ",,,,,43,43,,,,,,,,,771,,,,,,,,,,,,,15,,,,,15,,,,,,,,,,347,15,,,771,", ",,,,,347,,,,,,,,440,,,,,767,,,,,,,,767,,,,15,,21,,,767,767,21,,,,,770", ",,,,,21,,,770,,,,770,,,,,,,769,,769,,443,769,769,,,,,,769,,,,,,769,769", ",21,,,,,769,769,,,,,,,,,,770,,766,766,,,,,768,,768,,15,768,768,,,,,", "768,,,,,,768,768,769,,15,,770,,768,768,15,,,,,,,,,,,,,,43,,15,,,,1109", ",343,,,,,,,21,,343,,,,,,768,,,,,,,,,,21,,,,,43,21,,43,,,,,,,767,,767", ",,767,767,21,,15,,1108,767,,43,,,,767,767,34,,,,,34,767,767,,,,,,,,", ",,15,15,,43,34,,15,,,,43,,,,34,34,34,,34,769,,,,,21,,,767,769,,,,769", ",,,,405,,,,,,,,,34,,,,15,34,34,21,21,34,,,,21,,,,,768,,,,,,,,,768,,", "769,768,,,,,,,766,,,,,,,,766,,15,,,,,,405,766,766,21,34,,,,769,34,34", "34,34,34,,34,,,,,,768,,,,,,,,,,,,,,,,343,,,,,,,,,,21,343,,,,,768,767", ",,,,,,,,767,,,,767,,,,,,,,43,,,,,43,,,,,,,,,,,43,,,,,,,34,34,34,34,34", "34,34,,,,,,34,767,,,,,34,34,34,34,,,,,,,43,,,,,,,34,,,,,,,,,,767,,,", ",,,,,,,,,,,,,,,,766,,766,,,766,766,,,,,,766,,,,34,,766,766,,,,34,34", ",766,766,,,,,34,,,,,,,,,,,,43,,,,,,34,,,,34,,,,,34,,,43,,,766,,,43,", ",,,,,,,,,,,,,,43,,,,1104,34,,,,,,,,,,,,,,34,34,34,,,,,,,,,,,,,,,,,,", "34,,,,,,,,,,,,,,,43,,,,,,,,,,,,,296,,,,,,,,,,,,,,,,43,43,,,,,43,,,,", ",,,,,,249,,,34,,,,766,,,317,317,317,,,,766,,,,766,,364,365,,367,368", ",370,,296,,,43,,,,,,,,,34,317,317,,,,,,,,34,,,,,,,,,,,,766,,,,,,,,,", ",,,43,,,,,,,,,,,,,,,,,,,766,,,,,,,,,,,,,,,,34,,,,,,,,,,34,,,,,,,,,,", ",,,,,,,,,,,,,,,,,34,,,34,,,,,,,34,,,,,,,,,,34,,,,34,,,,,,,,,,,,,,,,", ",,,,317,447,,,453,317,34,,,34,34,,,34,,,,,453,34,34,,,,34,34,,,,,,249", ",,,,,,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544", "545,546,547,548,549,550,,,,,551,,,,,,,,,,,,,,,,,,,,,,,317,317,,,,,,", ",317,,,,,,,317,,317,,,317,317,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,604,,,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,34,34,,,,,,,,,,34,,,,,,,,", ",,,,,,,,,34,,,,,317,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,692,,,,,,,,", ",,,,,,,,,,,,,,,,,317,,,,,,,,,,,,,723,,34,,,,,,,,317,,453,453,453,,,", ",34,,,,,,,,,,,,34,,,,,,34,,,,,,34,,,,,,,365,,,,,,,,,34,317,,317,,317", ",,,,,,,,,,,,,,,317,,,,,,,,,,453,,,816,,817,,,,,,317,,,317,,,,,,,,,,34", ",,317,317,,,,,,,,,,317,,,,,,,,,,,,,,,34,34,,,,,34,,,,,,,,,,,,317,453", "317,,,,874,,,317,317,453,453,,,,453,453,,,,,,317,,,,,,,,,34,,34,34,", "317,,,,,,,,,,34,,,,,,,,,,,,,,692,723,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,317,,,,,,,,,317,,,317,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317,,,,,,,,453,,,,,,,,", ",,,,1010,1011,,,,,,,,,,,,,,,,,,,,,,,,,,,,1033,1034,453,453,453,453,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1067,,,,,,,,,,,,,,,,,,,,,,,,,", ",,317,,,,,,,,,,,,,,,,,,,317,,,,,,,,,,,,,,,,,,,,,,,,,,453,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317"]; + racc_goto_table = (arr = $$$('Array').$new(4752, nil)); idx = 0; - $send(clist, 'each', [], ($Ruby30$12 = function(str){var self = $Ruby30$12.$$s == null ? this : $Ruby30$12.$$s, $$13; - + $send(clist, 'each', [], function $Ruby31$6(str){ - if (str == null) { - str = nil; - }; - return $send(str.$split(",", -1), 'each', [], ($$13 = function(i){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + if (str == null) str = nil;; + return $send(str.$split(",", -1), 'each', [], function $$7(i){var $writer = nil; - if (i == null) { - i = nil; - }; - if ($truthy(i['$empty?']())) { - } else { + if (i == null) i = nil;; + if (!$truthy(i['$empty?']())) { $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); + $send(arr, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - return (idx = $rb_plus(idx, 1));}, $$13.$$s = self, $$13.$$arity = 1, $$13));}, $Ruby30$12.$$s = self, $Ruby30$12.$$arity = 1, $Ruby30$12)); - clist = ["71,74,74,33,154,71,67,35,111,42,44,106,33,112,194,74,51,51,51,82,82", "7,71,54,54,116,194,19,19,86,86,19,12,93,71,71,71,35,87,87,87,24,24,31", "86,56,233,91,171,76,76,135,135,45,45,72,224,224,82,82,82,110,22,13,71", "8,9,17,17,5,8,40,40,87,71,71,71,89,89,89,68,90,90,28,142,19,19,19,19", "28,54,142,45,45,45,116,225,224,10,79,11,13,109,109,10,10,47,47,131,142", "88,88,89,89,88,31,20,91,23,20,183,225,71,23,63,20,229,64,188,8,233,71", "196,71,153,153,172,118,57,5,125,141,219,219,143,47,47,47,94,49,94,2", "23,69,55,55,55,127,145,128,148,6,37,37,62,62,62,230,223,209,209,209", "209,147,189,153,201,140,93,198,198,3,23,219,218,218,14,8,174,174,189", "157,23,223,208,208,8,233,8,16,174,73,73,157,81,81,18,21,51,25,27,188", "38,39,41,48,71,74,50,33,59,171,171,142,77,87,87,83,85,92,104,105,113", "115,119,196,196,145,120,194,23,71,111,121,122,123,124,196,129,23,230", "23,187,133,138,139,146,149,150,22,22,33,151,22,152,188,148,174,155,22", "156,158,160,54,54,161,164,90,6,147,51,51,11,165,2,166,167,168,72,51", "169,170,173,176,178,179,31,180,184,185,94,94,87,87,191,192,200,11,143", "172,172,87,1,82,196,204,205,126,125,67,33,71,206,207,210,71,35,188,141", "71,71,224,82,211,23,128,23,7,33,23,19,116,89,212,54,23,69,45,71,57,89", "145,142,127,54,69,94,213,35,23,13,71,198,198,31,214,45,71,71,217,227", "225,187,68,10,228,72,33,,,,37,9,71,71,5,8,229,172,222,222,11,,90,,,11", ",49,90,47,79,,,,,,116,,153,142,135,209,142,209,63,74,219,64,47,63,183", "225,64,54,33,110,118,131,62,,56,54,,,196,56,62,35,23,,,,23,31,,,,23", "11,11,5,196,,31,187,,,224,,,51,93,,76,224,,74,,54,54,171,,58,,,,,58", "23,71,71,17,224,91,23,23,,,31,,35,233,58,135,135,142,,13,,,23,23,58", "58,58,,58,,187,90,187,67,126,225,,90,126,,91,,67,,,,82,,90,,51,,72,109", "71,82,88,,58,74,28,28,71,58,58,28,28,58,187,74,,71,69,,,37,37,,,10,45", ",,90,,,20,,,45,37,89,187,,,,20,20,93,,,20,20,,55,,,140,24,140,55,112", ",,,,58,94,224,90,,58,58,58,58,58,,58,,90,51,,,47,71,,,71,,74,51,116", "47,135,12,74,,,40,,136,87,,136,37,,55,,71,,116,,,,,,,,,32,,,23,,89,51", "74,,,116,,,,,74,71,37,,,,,,71,106,126,126,,,,90,11,35,111,11,,,,90,35", "35,58,58,58,58,58,58,58,10,,,71,58,58,58,76,,71,71,,154,22,42,44,28", ",58,,74,67,140,22,22,17,89,90,22,22,224,,67,8,82,23,,,23,,8,35,,,,82", "86,222,222,10,71,,20,,222,222,109,222,,23,,71,,,58,,,,45,136,,58,58", ",,87,109,,109,45,58,,89,,19,,23,,224,23,,224,,23,,,,,58,23,23,,58,35", "23,23,10,58,37,,90,,35,90,,,,,35,,71,47,,,,71,,,,,,,47,,,35,71,,58,", ",,,,58,58,,,,,,140,,140,126,126,140,,,58,58,58,,35,,,,,35,35,,,,71,224", ",71,71,,,58,78,,71,,,11,78,,,,71,71,71,32,,22,35,,86,,32,11,86,,,,26", "26,19,71,26,140,,140,194,,,,,,,71,,,,,,,,,,194,,222,222,222,222,23,", ",,,23,,,,,,,,32,58,136,23,71,136,71,54,136,,136,,71,,26,26,26,26,,,", "23,,140,,11,,31,,,35,35,35,116,,,71,11,,,,,35,,140,,140,,140,,,,71,", ",,,,82,58,35,71,32,,,,222,,82,58,,32,11,,71,,140,23,,,71,,,,71,58,,", "226,23,,136,45,136,32,136,,136,,,,,45,,,130,26,26,,,,,,,,26,26,71,71", ",,,32,136,23,,,32,32,,23,19,19,,,71,,,82,58,,,58,,,47,11,,33,58,,,,", "71,47,,,71,58,,,,58,,,,,,,35,71,45,,26,71,,,,23,30,,,11,,30,78,,78,71", "58,71,51,58,58,,74,58,23,,30,74,23,58,58,,,,58,58,30,30,30,,30,30,30", "71,,,,,,,11,47,,71,,,,35,,,,23,23,11,,,32,32,32,,30,,,,,30,30,71,,30", "30,30,30,,,,,90,78,,,,,108,108,26,,,226,,,226,23,,226,,226,29,,11,,", "29,,,23,26,,130,,,130,,130,,,,,30,,,,,30,30,30,30,30,,30,,29,,,,,,,", ",,137,137,137,,,,,,,,23,,,,,,,58,,,29,,58,58,,,,,,,,,,58,,,226,,226", ",226,,226,,,,,,,,,58,,130,84,130,,130,,130,,78,78,,,,78,78,226,,,30", "30,30,30,30,30,30,29,,,,30,30,30,130,,29,,29,,,,,,,30,,,,,,,,,,,58,", ",,,,,,,32,,,58,,26,,,,,,,137,137,137,137,,137,,,,,,,,,30,,,,,,58,30", "30,,,,58,,,,30,,58,108,65,,,,,108,108,,,,29,,29,,30,29,,,30,,,29,30", "30,137,137,137,137,,,,,,,,29,,,,137,,30,,84,84,,,58,,,,,,,30,,,,,,30", "30,,,,,58,,,,,,78,70,65,30,30,30,70,,,,,,,78,78,78,78,,,,,,,70,30,65", ",,,,,58,58,,,70,70,70,,,,,,29,,,,29,,,,,29,,,,,,,,,,,,84,70,84,,,84", "84,,58,,,70,70,70,,,,,,29,,58,,58,58,29,29,,,,,,30,108,,,108,108,,,", "29,29,108,,,,,,,,108,108,108,,,58,,78,70,,,,,,,,58,70,,70,,,,,,,,,,", ",,,,,26,,,,30,,,,,,,,30,,30,,,,,65,,30,,,,,,,,108,30,,,,,,84,,,,,,,", ",,,,,,,,,,,65,,,,,,108,,65,,65,,70,,65,,,,,,,,108,,,,,,,30,65,,30,,", ",65,70,,30,,,,,,,,,,30,29,,,30,,,,99,99,65,,65,,,,,,,,,26,,84,,84,,84", ",,,30,,,30,30,,,30,,,,,,30,30,,,65,30,30,,,,,,108,,,,,,,,,,,,70,,,,70", ",,,70,70,,,,29,,,29,,84,,,,,,,,,70,108,,,,,,,,,29,84,,70,84,108,,108", "30,70,70,,,,,,,84,,30,,,,,,70,70,29,,,29,,,,29,,,,,,29,29,,108,,29,29", "98,98,,,,,,,,,,,,,84,,,,,,108,,,84,84,,,,,,,30,,,,,30,30,,,,,26,26,", ",,30,,,,,,65,,,,,,,,,,,,30,,,,,,,,,,99,,65,,84,,99,99,,,,,,84,,,84,", ",,,,,,,,,,,,,,34,,,,84,34,,,,,,,,,30,,,,84,,,70,,,,29,30,,,70,29,,,", "34,34,34,,70,,,29,,,,,,,,,,,,,,30,65,,,29,,30,,,34,,,30,,,,,,,34,34", "34,,,,,,,84,,,,,65,,,,,,,,,,,,,70,,,70,,,,,65,,,98,,,29,30,,98,98,,", "34,,65,70,,29,,30,,34,,34,,30,,,99,30,,99,99,,,,,,99,,,,70,,,,99,99", "99,70,,,29,65,65,65,,,29,,,,30,30,,,,,,,,,,,,,,,,,65,,,84,,,,,,,,,,", ",,,,,30,97,97,84,30,,,34,29,34,,99,34,,,,,30,34,30,30,,96,96,,70,,29", ",,,,34,,,,70,,,,,,,99,,,,,,,,,30,,,,,,,99,,,,30,29,29,,,,,,100,100,98", ",,98,98,,,,,,98,,,,,,,,98,98,98,,70,,,,,70,,,,,29,,,,,,70,34,,,,34,", "29,,34,34,,,,,,,,,,,,,,,,,,34,,,99,,,,61,,,,,61,34,,,98,,,34,34,,,,", "29,,61,,,,,,,,34,34,61,61,61,,61,,99,,,70,,98,,,,,,,,,99,70,99,,,,,98", ",,,,,,61,,,,,61,61,,,61,97,,,,,,97,97,,,,,70,,99,,,,70,,,96,,,,,,96", "96,,,,,,,,,,99,,,,,102,102,,,,61,,,,,61,61,61,61,61,,61,,,,,,,98,70", ",,100,,,,,,100,100,,,70,,,,,,70,,,,70,,,,,,,,,,,,,,34,,98,,,,,,34,,", ",,,,,98,34,98,70,70,,,,,,,,,,,,,,,,,,61,61,61,61,61,61,61,,,,,61,61", "61,,,98,,70,,,,70,,,61,,,97,,,97,97,,,70,,,97,,98,,34,,,34,97,97,97", "96,,,96,96,,,,,,96,,,,,,,34,96,96,96,,61,,34,,,,,61,61,,70,,,,,,61,", ",,,,34,,,34,,100,,34,100,100,,,61,34,34,100,61,97,34,34,,61,,100,100", "100,,102,,,,,,102,102,,,,96,,,,,,,,,,,97,,,61,,,,,,61,61,,,,,,97,,,", ",96,,,61,61,61,,,,,,,34,,,,96,100,,,,,,34,61,,,,,,,,,,,,,,,,,,,,,,,", ",100,,,,,,,,,,,,,,,,100,,,,,,,,,,,,,97,,,,34,,,,,34,,,,,,,,,61,,34,96", ",,,,,,,,,,,,,,,,34,,97,,,,,103,103,,,102,,,102,102,97,,97,,,102,,96", ",,,,,102,102,102,100,,,,,96,61,96,,,,,,,101,101,61,,,,,,97,,34,,,,,", ",,61,,,,34,,,,100,,,96,,,97,,,,,,,,100,,100,,,,,102,,,,,,96,,,,34,,", ",,,34,,,,,,,,,61,,,61,,,100,102,,,61,,,,,,36,,,,61,,,102,61,,36,36,36", ",100,,,,,,,,36,36,34,36,36,,36,,,,,,,61,,34,61,61,,,61,34,,36,36,34", "61,61,,,,61,61,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,,,,,102,,103,,,,,", "103,103,,,,,,,,,,,,,,,,,,34,,,,34,,,,,,,,,102,101,,,34,,,101,101,,,", ",,102,,102,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,102,,,,,61,,,,,61,61", ",,,36,36,,,36,36,61,,,102,36,,,,,,,,,,,,,36,61,,,,36,36,36,36,36,36", "36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,,,,,36,,,,,,,,,,,103", ",,103,103,,,,,,103,,36,36,,61,,,103,103,103,36,,,,,,61,36,,36,,,36,36", ",,,,101,,,101,101,,,,,,101,,,,,,,61,101,101,101,,,61,,,,,,61,,,,,,,36", ",36,,,,,103,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,103,,,61,,,,101,,,,,,,,,103", ",,,,,61,,,,,,,,,,,,,,36,,,101,,,,,,,,,,,,,,,,101,,,,61,61,,,,,,,,,,", ",,,,,,,,36,,36,36,36,,,,,,,,,,,,,,,,103,61,,,,,,,,,,,,,61,,61,61,36", ",,,,,,,,,36,,36,,36,,,,,,,101,103,,,,,,,,36,61,,,,,103,,103,,36,,61", "36,,,,36,,,,,,,,,,,,,,101,,,,,,,,,,,,36,103,101,,101,,,,,,,,,,36,,,", ",,36,,,36,,103,,,,,,,,,,,36,36,,,101,,,,,,,36,,,,,,,,,,,,,,,,,101,,", ",,,,,,,,,,,,,36,36,36,,,,36,,,36,36,36,36,,,,36,36,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,36,,,36,,,,,,,,,,,,,,,,,,,", "36,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,36,,,,,,,,36,,,,,,,,,,,,,36,36,36,36,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,", ",,,,,,,36,,,,,,,,,,,,,,,,,,,36,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,36"]; - racc_goto_check = (arr = $$$('::', 'Array').$new(4137, nil)); + return (idx = $rb_plus(idx, 1));}, 1);}, 1); + clist = ["72,198,158,91,91,72,75,75,36,36,36,68,46,198,31,230,230,48,107,19,19", "10,75,19,72,34,112,10,128,113,34,12,55,55,82,82,72,72,72,73,117,139", "139,94,33,110,110,11,92,228,228,228,77,77,13,33,135,70,133,22,111,34", "34,34,72,9,44,44,80,17,17,82,82,82,72,72,72,19,19,19,19,239,87,87,56", "56,56,235,8,34,95,20,95,8,20,51,31,32,187,34,34,34,69,41,41,177,177", "58,20,55,117,7,24,24,149,28,26,26,119,57,26,129,72,239,89,89,152,192", "89,28,87,72,231,72,151,225,225,200,200,5,35,35,64,193,2,157,157,34,90", "90,90,127,8,147,130,236,34,145,34,207,161,6,3,10,214,214,29,14,65,178", "178,29,161,16,26,26,26,26,18,178,94,90,90,175,224,224,13,21,66,25,239", "230,176,74,74,27,42,91,36,43,95,95,29,45,202,202,50,52,60,5,8,78,215", "215,215,215,72,83,84,8,86,8,75,93,152,236,105,11,72,106,29,114,151,116", "72,149,198,120,121,122,123,34,124,34,128,125,34,126,128,131,136,72,142", "34,22,22,143,150,22,34,34,112,11,146,66,146,26,26,33,88,88,88,22,73", "153,154,34,2,6,155,36,36,156,26,26,70,159,66,29,36,160,162,164,165,70", "168,169,29,170,29,192,171,88,172,173,180,182,200,95,192,31,225,33,183", "87,87,63,63,63,184,145,157,188,91,189,55,55,147,58,91,195,72,68,196", "19,72,82,129,205,72,72,206,149,1,26,210,11,211,193,212,119,11,51,127", "130,82,34,192,72,213,34,216,175,217,34,34,117,175,175,218,72,33,35,35", "32,219,176,176,80,220,31,223,29,34,29,72,72,29,32,33,229,9,202,202,29", "34,11,11,55,233,29,29,234,69,235,,,187,55,,34,34,,73,,,,29,31,8,33,90", ",75,117,66,230,111,31,90,,26,91,10,,,55,7,91,,,64,,,55,36,64,128,128", "32,,119,26,13,88,88,215,231,215,,,139,,31,66,5,,65,33,77,228,228,65", "228,228,,228,,,32,,55,55,230,36,230,17,,32,,91,,,133,36,,110,29,57,", "70,29,66,57,,,29,40,,,66,32,66,56,79,75,66,94,239,56,,,,5,,72,72,91", "79,95,92,,66,,146,,29,40,66,200,200,88,88,20,117,,225,,,200,88,29,29", "20,20,200,157,66,20,20,68,174,174,91,36,41,231,177,73,68,89,32,,91,28", "28,32,32,72,28,28,13,146,82,191,,72,24,75,63,,191,82,,,72,,63,75,200", "94,91,36,34,,,,,56,91,,34,36,,,,72,,,72,34,,,,113,44,75,11,,,11,,75", ",,139,139,10,,,72,34,,135,34,231,91,36,128,128,,,,,,,,117,,,,,,75,66", "34,198,72,,,140,75,,140,72,,117,110,228,228,228,228,,,90,,,,32,32,32", ",34,,,34,,146,,34,146,,,,,34,34,22,,77,34,34,,,,,,22,22,,12,,22,22,", "90,17,,112,,,,,,107,,,,,,,139,200,72,29,,20,,110,,110,72,,,230,8,,87", ",158,72,72,8,,191,,46,28,,,146,48,228,191,,68,75,191,,174,,91,29,,91", "29,68,174,10,,,,,,90,19,,,82,,,72,230,,,,29,,,82,,,72,79,,79,,,,,,191", ",,,,34,,,,,132,,29,40,,29,34,,72,29,,32,,72,,29,29,,,11,29,29,191,,72", ",,40,10,,66,88,26,34,,11,,,34,,,,,,,66,,,,34,,,,,,,,,10,72,79,26,,,", ",,34,,,11,90,,19,,,,,,22,,,,,34,,230,66,,230,,72,,72,,,72,72,88,66,", ",19,72,,,,40,,72,72,,,,140,,,72,72,,,31,87,,,,87,174,,,,,174,174,,,198", ",,55,72,,79,79,,174,,79,79,,,11,,,,,72,,72,230,66,66,66,132,72,34,132", ",132,11,26,,,,29,,66,,,29,72,82,,34,72,,,,59,34,29,11,174,59,,,,,,26", "117,,,40,,34,,,29,34,59,,,,,,,,,,59,59,59,,59,29,,,,,,,,,,72,132,,132", ",132,,132,,,82,,,72,,,,59,,,,,59,59,132,34,59,,,72,72,19,19,,,72,,,34", "140,11,,140,,,140,11,140,72,,144,,144,,34,34,,72,,,34,72,,,,,33,,,91", "36,29,,82,,59,72,98,98,72,59,59,59,59,59,,59,,,29,11,,,,75,29,,,,,79", "34,,,34,72,,,,,,29,,,,140,,140,75,140,,140,,72,,,,,26,26,,,,,11,,232", "72,140,,,,,,79,79,79,79,34,40,,,,,,,,,,,,,,40,40,,29,,,59,59,59,59,59", "59,59,,,,,,59,,,,,,59,59,59,59,,,,,29,29,85,30,,,29,,30,59,,,,,,,,,", ",,,,,,30,,,,40,,,,,,30,30,30,,30,30,30,,,,,,,,,29,,,,,59,,,,40,,,59", "59,,79,,30,40,,,59,30,30,40,,30,30,30,30,,,141,141,141,,,,,59,,40,,59", "29,,,,59,,98,232,,,232,,,232,98,232,,,,,,97,97,98,98,,,,,,144,30,,,59", ",30,30,30,30,30,,30,,,,,,59,59,59,,,,,,,40,,85,85,,40,40,,,,,,59,,,", ",,,,,144,,144,,144,232,,232,,232,,232,,,,,141,141,141,141,,141,,40,", ",,,232,,,,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,,59,,,,30,141,141,141", "141,,30,30,30,30,,,,141,,,,,,,,,,30,,85,,85,,,85,85,,,,59,,40,40,40", ",,,,,59,,40,98,,98,,,98,98,,,,,144,98,144,,,,,98,98,,30,,40,,,98,98", "30,30,,,,,,,,30,,144,,,,,,,,,,,,,,,97,30,,59,,30,,,97,30,30,98,,59,", ",,97,97,,,,,,,,,144,30,144,,144,,38,,,,85,38,,30,59,,,59,,,40,,,144", "59,,,30,30,30,,,,,59,,,,59,,,,38,38,38,,,,30,,,,,,,,,,,,,,40,,,59,,", "59,59,38,85,59,,,,,,59,59,38,38,38,59,59,,,,,,,,,,,,,,,,,,,,,,,,,,,98", "30,,,,,,,,98,,,,98,,,,38,,,,,,,,,38,,38,,,,,85,,85,,85,,,30,97,,97,", ",97,97,,,30,,,97,,,,98,,97,97,,,,,,,97,97,,,,,,85,,,85,,,,,,,,,,,,98", "85,,,,,,,,,,,,,59,,,97,,,,30,38,,38,,,38,,30,,30,,,38,,,59,30,,38,38", "59,59,,85,,,,,,,,59,85,85,,38,,30,,,30,,,,,,85,30,,59,,,,,,,,30,,,85", "30,,,,,59,,,,,,,,,,,,,,,,,,,,,,30,,,30,30,,,30,,,,,,30,30,,,,30,30,", ",,,,,,38,,,,38,,,97,38,38,,,,,,59,97,,,,97,,,,,85,,38,,,,,59,,85,,,85", ",38,,,,,59,,,,,,59,,,,38,38,59,,,,,,,,97,,,,,,,,59,,,,,,,,,,,,,,,,,", ",,,,,,97,,,,,,,,85,,,30,,,,,23,,,,,23,30,,,,30,,,,,59,,,,,,,,,,,,,,", ",,,30,,,23,,30,30,,,,,59,59,,,,30,59,,,39,,,,,39,,,,,,23,,,30,,,,,,", "23,109,109,,,,,,,,30,,,,,39,39,39,,,59,,59,59,,,,,,,,,,,,59,,,,,,85", ",39,,,,,23,,,,,39,39,39,,23,,23,85,38,,,59,,,,,38,,,,,30,,,,38,,,,,", ",,,,,,,30,,,,,,,,38,,39,38,30,,,104,104,,30,39,,39,,,30,,,,,,,,38,,", ",,,,,30,,,,30,,,,,,,23,,23,,,23,,,38,,,38,23,,,38,,,23,23,,38,38,,,", "38,38,,,,,,,,23,,,,,,,,,30,,,,,,,,,39,,39,,30,39,,,,,,,39,,,,,,39,39", "30,30,,,109,,30,,,,,,109,,,39,,,,,,109,109,,103,103,,,,,,,,,,,,,,,,", "23,,,,23,30,,,30,23,30,30,,,,,,,,,,,,30,,,,38,,,,,,,,,,,38,23,,,,,,", ",,,,,,30,39,23,23,,39,,,,39,39,,,38,,104,,,38,,,,,104,,,,,39,38,,,104", "104,,,,,,,39,,,,,,,38,71,,,,,71,,39,39,,,,,,,,38,,,,,,,,71,,,,,,,,,", ",,71,71,71,,,109,,109,,,109,109,,,,,,109,,,,,,109,109,,,,71,,,109,109", ",,,,,71,71,71,,,,,,,,,,,,,,,,,,102,102,,38,,,103,,,,,,109,,103,,,,,", ",38,,103,103,,,38,71,,,,,,,,,71,,71,,,,38,,101,101,38,,,,,104,23,104", ",,104,104,,,,,,104,,,,,,104,104,,,,,,,104,104,,,,,,,,,,,,23,,,23,,,", "38,,,,,,,,39,,,,,38,,,39,23,,104,,,,,71,39,,,,38,38,,,,,38,71,100,100", ",,109,71,,23,,39,23,,39,109,23,,,109,,,23,23,71,,,23,23,,,,,,,39,,,", ",,38,39,,38,,,,,,,,103,,103,,,103,103,,,,39,109,103,39,,,,39,103,103", ",,,39,39,,103,103,39,39,,,,102,,,38,,,,,102,,109,,,,,,,102,102,71,,", ",71,,,104,71,71,,,,103,,,104,,,,104,,,,,,101,71,,,,,,,101,,,,,71,,,", "101,101,,,,,,,,,,71,71,,,,,,,,,104,,,,,,,,,,,,,23,,,,,23,,,,,,,,,,39", "23,,,104,,,,,,,39,,,,,,,,23,,,,,100,,,,,,,,100,,,,23,,39,,,100,100,39", ",,,,103,,,,,,39,,,103,,,,103,,,,,,,102,,102,,39,102,102,,,,,,102,,,", ",,102,102,,39,,,,,102,102,,,,,,,,,,103,,99,99,,,,,101,,101,,23,101,101", ",,,,,101,,,,,,101,101,102,,23,,103,,101,101,23,,,,,,,,,,,,,,71,,23,", ",,23,,71,,,,,,,39,,71,,,,,,101,,,,,,,,,,39,,,,,71,39,,71,,,,,,,100,", "100,,,100,100,39,,23,,39,100,,71,,,,100,100,62,,,,,62,100,100,,,,,,", ",,,,23,23,,71,62,,23,,,,71,,,,62,62,62,,62,102,,,,,39,,,100,102,,,,102", ",,,,39,,,,,,,,,62,,,,23,62,62,39,39,62,,,,39,,,,,101,,,,,,,,,101,,,102", "101,,,,,,,99,,,,,,,,99,,23,,,,,,39,99,99,39,62,,,,102,62,62,62,62,62", ",62,,,,,,101,,,,,,,,,,,,,,,,71,,,,,,,,,,39,71,,,,,101,100,,,,,,,,,100", ",,,100,,,,,,,,71,,,,,71,,,,,,,,,,,71,,,,,,,62,62,62,62,62,62,62,,,,", ",62,100,,,,,62,62,62,62,,,,,,,71,,,,,,,62,,,,,,,,,,100,,,,,,,,,,,,,", ",,,,,,99,,99,,,99,99,,,,,,99,,,,62,,99,99,,,,62,62,,99,99,,,,,62,,,", ",,,,,,,,71,,,,,,62,,,,62,,,,,62,,,71,,,99,,,71,,,,,,,,,,,,,,,,71,,,", "71,62,,,,,,,,,,,,,,62,62,62,,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,71,,", ",,,,,,,,,,71,,,,,,,,,,,,,,,,71,71,,,,,71,,,,,,,,,,,37,,,62,,,,99,,,37", "37,37,,,,99,,,,99,,37,37,,37,37,,37,,71,,,71,,,,,,,,,62,37,37,,,,,,", ",62,,,,,,,,,,,,99,,,,,,,,,,,,,71,,,,,,,,,,,,,,,,,,,99,,,,,,,,,,,,,,", ",62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,,,62,,,,,,,62,,,,,,,,", ",62,,,,62,,,,,,,,,,,,,,,,,,,,,37,37,,,37,37,62,,,62,62,,,62,,,,,37,62", "62,,,,62,62,,,,,,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,,,,", "62,,,,,,,,,,,,,,,,,,,,,,,62,,,,,62,62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,62", ",,,,37,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,", ",,,37,,,,,,,,,,,,,37,,62,,,,,,,,37,,37,37,37,,,,,62,,,,,,,,,,,,62,,", ",,,62,,,,,,62,,,,,,,37,,,,,,,,,62,37,,37,,37,,,,,,,,,,,,,,,,37,,,,,", ",,,,37,,,37,,37,,,,,,37,,,37,,,,,,,,,,62,,,37,37,,,,,,,,,,37,,,,,,,", ",,,,,,,62,62,,,,,62,,,,,,,,,,,,37,37,37,,,,37,,,37,37,37,37,,,,37,37", ",,,,,37,,,,,,,,,62,,62,62,,37,,,,,,,,,,62,,,,,,,,,,,,,,37,37,,,,,,,", ",,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,37,,,37", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37", ",,,,,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,37,37", "37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,", ",,,,37,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37"]; + racc_goto_check = (arr = $$$('Array').$new(4752, nil)); idx = 0; - $send(clist, 'each', [], ($Ruby30$14 = function(str){var self = $Ruby30$14.$$s == null ? this : $Ruby30$14.$$s, $$15; - + $send(clist, 'each', [], function $Ruby31$8(str){ - if (str == null) { - str = nil; - }; - return $send(str.$split(",", -1), 'each', [], ($$15 = function(i){var self = $$15.$$s == null ? this : $$15.$$s, $writer = nil; + if (str == null) str = nil;; + return $send(str.$split(",", -1), 'each', [], function $$9(i){var $writer = nil; - if (i == null) { - i = nil; - }; - if ($truthy(i['$empty?']())) { - } else { + if (i == null) i = nil;; + if (!$truthy(i['$empty?']())) { $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); + $send(arr, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - return (idx = $rb_plus(idx, 1));}, $$15.$$s = self, $$15.$$arity = 1, $$15));}, $Ruby30$14.$$s = self, $Ruby30$14.$$arity = 1, $Ruby30$14)); - racc_goto_pointer = [nil, 312, 149, 181, nil, 64, 154, 16, 63, 57, -265, 64, -531, -701, -732, nil, -336, 57, 195, -44, -104, 131, 40, 116, -178, -10, 832, 74, -140, 1226, 1125, -181, 196, -15, 2017, -14, 2981, -320, -33, -33, -2, -405, -15, nil, -14, 16, nil, 69, 191, 122, -289, -16, nil, nil, -202, 125, -250, -382, 471, -293, nil, 2372, 132, 88, 91, 1203, nil, -31, 42, -197, 1505, -2, -345, 124, -9, nil, 39, -205, 654, 53, nil, 152, -18, 178, 1258, 161, -23, 6, -264, 45, 52, -249, -281, -277, -377, nil, 1768, 1747, 1430, 1286, 1817, 2433, 2009, 2394, 206, 163, -58, nil, 732, -280, -739, -380, -609, 156, nil, -171, 20, nil, 84, 169, -133, 177, -392, -580, -160, -801, -268, -428, -783, -693, 145, -663, nil, -654, nil, -519, -142, 256, -762, -652, -189, -766, -684, -592, nil, -670, -812, -895, -908, -150, -569, 177, -376, -232, -21, -696, -695, -318, -19, nil, -28, -26, nil, nil, -452, -778, -668, -913, -523, -831, -662, -653, -565, -661, -686, nil, -577, nil, -577, -405, -403, nil, nil, -582, -404, -404, nil, -629, -873, -950, nil, -770, -769, nil, -76, nil, -639, nil, -528, nil, -459, -746, nil, nil, 227, 223, 228, 228, -218, -241, 228, 236, 245, -289, -282, nil, nil, -268, -158, -224, nil, nil, -184, -600, -310, -672, 128, -401, -716, -649, -930, nil, nil, -481]; - racc_goto_default = [nil, nil, nil, nil, 5, nil, 6, 389, 324, nil, nil, 563, nil, 948, nil, 321, 322, nil, nil, nil, 13, 14, 20, 239, nil, nil, 16, nil, 439, 240, 353, nil, nil, 634, 238, 474, 23, 997, nil, nil, nil, nil, nil, 384, 143, 52, 24, 53, nil, nil, nil, 25, 26, 27, 757, nil, nil, nil, 341, nil, 28, 338, 453, 35, nil, nil, 37, 40, 39, nil, 235, 236, 401, nil, 461, 142, 87, nil, 444, 103, 49, nil, 54, 273, 313, nil, 919, 454, nil, 455, 466, nil, 683, 524, 311, 297, 55, 56, 57, 58, 59, 60, 61, 62, 63, nil, 298, 69, 70, nil, nil, nil, nil, nil, 77, nil, 616, 78, 363, nil, nil, nil, nil, nil, nil, 782, 583, nil, 783, 784, 571, 565, 566, 1143, 1013, nil, 572, nil, nil, nil, 601, nil, 574, nil, 906, nil, nil, nil, 581, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 465, nil, nil, 736, 728, nil, nil, nil, nil, nil, nil, nil, nil, nil, 882, nil, 696, 705, 697, 698, nil, nil, 699, 700, nil, nil, nil, 881, 883, nil, 884, 982, 983, 984, 985, nil, 989, 592, 990, 704, 706, nil, nil, 86, 88, 89, nil, nil, nil, nil, 644, nil, nil, nil, nil, nil, 99, 100, nil, 364, 926, 367, 570, 769, 573, 938, 586, 588, 589, 1024, 593, 1025, 596, 599, 316]; - racc_reduce_table = [0, 0, "racc_error", 0, 150, "_reduce_1", 2, 148, "_reduce_2", 2, 149, "_reduce_3", 0, 151, "_reduce_4", 1, 151, "_reduce_5", 3, 151, "_reduce_6", 2, 151, "_reduce_7", 1, 153, "_reduce_none", 2, 153, "_reduce_9", 3, 156, "_reduce_10", 4, 157, "_reduce_11", 2, 158, "_reduce_12", 0, 162, "_reduce_13", 1, 162, "_reduce_14", 3, 162, "_reduce_15", 2, 162, "_reduce_16", 1, 163, "_reduce_none", 2, 163, "_reduce_18", 0, 174, "_reduce_19", 4, 155, "_reduce_20", 3, 155, "_reduce_21", 3, 155, "_reduce_22", 3, 155, "_reduce_23", 2, 155, "_reduce_24", 3, 155, "_reduce_25", 3, 155, "_reduce_26", 3, 155, "_reduce_27", 3, 155, "_reduce_28", 3, 155, "_reduce_29", 4, 155, "_reduce_30", 1, 155, "_reduce_none", 3, 155, "_reduce_32", 3, 155, "_reduce_33", 5, 155, "_reduce_34", 3, 155, "_reduce_35", 1, 155, "_reduce_none", 3, 167, "_reduce_37", 3, 167, "_reduce_38", 6, 167, "_reduce_39", 5, 167, "_reduce_40", 5, 167, "_reduce_41", 5, 167, "_reduce_42", 5, 167, "_reduce_43", 3, 167, "_reduce_44", 1, 175, "_reduce_none", 3, 175, "_reduce_46", 1, 175, "_reduce_none", 1, 173, "_reduce_none", 3, 173, "_reduce_49", 3, 173, "_reduce_50", 3, 173, "_reduce_51", 2, 173, "_reduce_52", 0, 185, "_reduce_53", 4, 173, "_reduce_54", 0, 186, "_reduce_55", 4, 173, "_reduce_56", 1, 173, "_reduce_none", 1, 166, "_reduce_none", 0, 190, "_reduce_59", 3, 187, "_reduce_60", 1, 189, "_reduce_61", 2, 192, "_reduce_62", 0, 197, "_reduce_63", 5, 194, "_reduce_64", 1, 169, "_reduce_none", 1, 169, "_reduce_none", 1, 199, "_reduce_none", 4, 199, "_reduce_68", 0, 206, "_reduce_69", 4, 203, "_reduce_70", 1, 205, "_reduce_none", 2, 198, "_reduce_72", 3, 198, "_reduce_73", 4, 198, "_reduce_74", 5, 198, "_reduce_75", 4, 198, "_reduce_76", 5, 198, "_reduce_77", 2, 198, "_reduce_78", 2, 198, "_reduce_79", 2, 198, "_reduce_80", 2, 198, "_reduce_81", 2, 198, "_reduce_82", 1, 168, "_reduce_83", 3, 168, "_reduce_84", 1, 211, "_reduce_85", 3, 211, "_reduce_86", 1, 210, "_reduce_none", 2, 210, "_reduce_88", 3, 210, "_reduce_89", 5, 210, "_reduce_90", 2, 210, "_reduce_91", 4, 210, "_reduce_92", 2, 210, "_reduce_93", 4, 210, "_reduce_94", 1, 210, "_reduce_95", 3, 210, "_reduce_96", 1, 214, "_reduce_none", 3, 214, "_reduce_98", 2, 213, "_reduce_99", 3, 213, "_reduce_100", 1, 216, "_reduce_101", 3, 216, "_reduce_102", 1, 215, "_reduce_103", 1, 215, "_reduce_104", 4, 215, "_reduce_105", 3, 215, "_reduce_106", 3, 215, "_reduce_107", 3, 215, "_reduce_108", 3, 215, "_reduce_109", 2, 215, "_reduce_110", 1, 215, "_reduce_111", 1, 170, "_reduce_112", 1, 170, "_reduce_113", 4, 170, "_reduce_114", 3, 170, "_reduce_115", 3, 170, "_reduce_116", 3, 170, "_reduce_117", 3, 170, "_reduce_118", 2, 170, "_reduce_119", 1, 170, "_reduce_120", 1, 219, "_reduce_121", 1, 219, "_reduce_none", 2, 220, "_reduce_123", 1, 220, "_reduce_124", 3, 220, "_reduce_125", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 164, "_reduce_131", 1, 164, "_reduce_none", 1, 165, "_reduce_133", 0, 224, "_reduce_134", 4, 165, "_reduce_135", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 3, 183, "_reduce_207", 3, 183, "_reduce_208", 6, 183, "_reduce_209", 5, 183, "_reduce_210", 5, 183, "_reduce_211", 5, 183, "_reduce_212", 5, 183, "_reduce_213", 4, 183, "_reduce_214", 3, 183, "_reduce_215", 3, 183, "_reduce_216", 3, 183, "_reduce_217", 2, 183, "_reduce_218", 2, 183, "_reduce_219", 2, 183, "_reduce_220", 2, 183, "_reduce_221", 3, 183, "_reduce_222", 3, 183, "_reduce_223", 3, 183, "_reduce_224", 3, 183, "_reduce_225", 3, 183, "_reduce_226", 3, 183, "_reduce_227", 4, 183, "_reduce_228", 2, 183, "_reduce_229", 2, 183, "_reduce_230", 3, 183, "_reduce_231", 3, 183, "_reduce_232", 3, 183, "_reduce_233", 3, 183, "_reduce_234", 1, 183, "_reduce_none", 3, 183, "_reduce_236", 3, 183, "_reduce_237", 3, 183, "_reduce_238", 3, 183, "_reduce_239", 3, 183, "_reduce_240", 2, 183, "_reduce_241", 2, 183, "_reduce_242", 3, 183, "_reduce_243", 3, 183, "_reduce_244", 3, 183, "_reduce_245", 3, 183, "_reduce_246", 3, 183, "_reduce_247", 6, 183, "_reduce_248", 4, 183, "_reduce_249", 6, 183, "_reduce_250", 4, 183, "_reduce_251", 6, 183, "_reduce_252", 1, 183, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 3, 227, "_reduce_258", 3, 227, "_reduce_259", 1, 231, "_reduce_none", 1, 232, "_reduce_none", 2, 232, "_reduce_none", 4, 232, "_reduce_263", 2, 232, "_reduce_264", 1, 225, "_reduce_none", 3, 225, "_reduce_266", 3, 237, "_reduce_267", 5, 237, "_reduce_268", 3, 237, "_reduce_269", 0, 239, "_reduce_270", 1, 239, "_reduce_none", 0, 178, "_reduce_272", 1, 178, "_reduce_none", 2, 178, "_reduce_none", 4, 178, "_reduce_275", 2, 178, "_reduce_276", 1, 209, "_reduce_277", 2, 209, "_reduce_278", 2, 209, "_reduce_279", 4, 209, "_reduce_280", 1, 209, "_reduce_281", 0, 242, "_reduce_282", 2, 202, "_reduce_283", 2, 241, "_reduce_284", 2, 240, "_reduce_285", 0, 240, "_reduce_286", 1, 234, "_reduce_287", 2, 234, "_reduce_288", 3, 234, "_reduce_289", 4, 234, "_reduce_290", 1, 172, "_reduce_291", 1, 172, "_reduce_none", 3, 171, "_reduce_293", 4, 171, "_reduce_294", 2, 171, "_reduce_295", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_306", 0, 266, "_reduce_307", 4, 229, "_reduce_308", 0, 267, "_reduce_309", 4, 229, "_reduce_310", 0, 268, "_reduce_311", 4, 229, "_reduce_312", 3, 229, "_reduce_313", 3, 229, "_reduce_314", 2, 229, "_reduce_315", 3, 229, "_reduce_316", 3, 229, "_reduce_317", 1, 229, "_reduce_318", 4, 229, "_reduce_319", 3, 229, "_reduce_320", 1, 229, "_reduce_321", 5, 229, "_reduce_322", 4, 229, "_reduce_323", 3, 229, "_reduce_324", 2, 229, "_reduce_325", 1, 229, "_reduce_none", 2, 229, "_reduce_327", 1, 229, "_reduce_none", 6, 229, "_reduce_329", 6, 229, "_reduce_330", 4, 229, "_reduce_331", 4, 229, "_reduce_332", 5, 229, "_reduce_333", 4, 229, "_reduce_334", 5, 229, "_reduce_335", 6, 229, "_reduce_336", 0, 269, "_reduce_337", 6, 229, "_reduce_338", 0, 270, "_reduce_339", 7, 229, "_reduce_340", 0, 271, "_reduce_341", 5, 229, "_reduce_342", 4, 229, "_reduce_343", 4, 229, "_reduce_344", 1, 229, "_reduce_345", 1, 229, "_reduce_346", 1, 229, "_reduce_347", 1, 229, "_reduce_348", 1, 177, "_reduce_none", 1, 261, "_reduce_350", 1, 264, "_reduce_351", 1, 193, "_reduce_352", 1, 208, "_reduce_353", 1, 256, "_reduce_none", 1, 256, "_reduce_none", 2, 256, "_reduce_356", 1, 188, "_reduce_none", 1, 188, "_reduce_none", 1, 257, "_reduce_none", 5, 257, "_reduce_360", 1, 160, "_reduce_none", 2, 160, "_reduce_362", 1, 260, "_reduce_none", 1, 260, "_reduce_none", 1, 272, "_reduce_365", 3, 272, "_reduce_366", 1, 275, "_reduce_367", 3, 275, "_reduce_368", 1, 274, "_reduce_none", 3, 274, "_reduce_370", 5, 274, "_reduce_371", 1, 274, "_reduce_372", 3, 274, "_reduce_373", 2, 276, "_reduce_374", 1, 276, "_reduce_375", 1, 277, "_reduce_none", 1, 277, "_reduce_none", 4, 280, "_reduce_378", 2, 280, "_reduce_379", 2, 280, "_reduce_380", 1, 280, "_reduce_381", 2, 284, "_reduce_382", 0, 284, "_reduce_383", 1, 285, "_reduce_none", 6, 286, "_reduce_385", 8, 286, "_reduce_386", 4, 286, "_reduce_387", 6, 286, "_reduce_388", 4, 286, "_reduce_389", 2, 286, "_reduce_none", 6, 286, "_reduce_391", 2, 286, "_reduce_392", 4, 286, "_reduce_393", 6, 286, "_reduce_394", 2, 286, "_reduce_395", 4, 286, "_reduce_396", 2, 286, "_reduce_397", 4, 286, "_reduce_398", 1, 286, "_reduce_none", 0, 290, "_reduce_400", 1, 290, "_reduce_401", 3, 291, "_reduce_402", 4, 291, "_reduce_403", 1, 292, "_reduce_404", 4, 292, "_reduce_405", 1, 293, "_reduce_406", 3, 293, "_reduce_407", 1, 294, "_reduce_408", 1, 294, "_reduce_none", 0, 298, "_reduce_410", 0, 299, "_reduce_411", 5, 255, "_reduce_412", 4, 296, "_reduce_413", 1, 296, "_reduce_414", 0, 302, "_reduce_415", 4, 297, "_reduce_416", 0, 303, "_reduce_417", 4, 297, "_reduce_418", 0, 305, "_reduce_419", 4, 301, "_reduce_420", 2, 200, "_reduce_421", 4, 200, "_reduce_422", 5, 200, "_reduce_423", 5, 200, "_reduce_424", 2, 254, "_reduce_425", 4, 254, "_reduce_426", 4, 254, "_reduce_427", 3, 254, "_reduce_428", 3, 254, "_reduce_429", 3, 254, "_reduce_430", 2, 254, "_reduce_431", 1, 254, "_reduce_432", 4, 254, "_reduce_433", 0, 307, "_reduce_434", 4, 253, "_reduce_435", 0, 308, "_reduce_436", 4, 253, "_reduce_437", 0, 309, "_reduce_438", 3, 204, "_reduce_439", 0, 310, "_reduce_440", 0, 311, "_reduce_441", 4, 304, "_reduce_442", 5, 258, "_reduce_443", 1, 312, "_reduce_444", 1, 312, "_reduce_none", 0, 315, "_reduce_446", 0, 316, "_reduce_447", 7, 259, "_reduce_448", 1, 314, "_reduce_449", 1, 314, "_reduce_none", 1, 313, "_reduce_451", 3, 313, "_reduce_452", 3, 313, "_reduce_453", 1, 317, "_reduce_none", 2, 317, "_reduce_455", 3, 317, "_reduce_456", 1, 317, "_reduce_457", 1, 317, "_reduce_458", 1, 317, "_reduce_459", 1, 184, "_reduce_none", 3, 322, "_reduce_461", 1, 322, "_reduce_none", 3, 324, "_reduce_463", 1, 324, "_reduce_none", 1, 326, "_reduce_465", 1, 327, "_reduce_466", 1, 325, "_reduce_none", 4, 325, "_reduce_468", 4, 325, "_reduce_469", 4, 325, "_reduce_470", 3, 325, "_reduce_471", 4, 325, "_reduce_472", 4, 325, "_reduce_473", 4, 325, "_reduce_474", 3, 325, "_reduce_475", 3, 325, "_reduce_476", 3, 325, "_reduce_477", 2, 325, "_reduce_478", 0, 331, "_reduce_479", 4, 325, "_reduce_480", 2, 325, "_reduce_481", 0, 332, "_reduce_482", 4, 325, "_reduce_483", 1, 318, "_reduce_484", 1, 318, "_reduce_485", 2, 318, "_reduce_486", 3, 318, "_reduce_487", 5, 318, "_reduce_488", 2, 318, "_reduce_489", 4, 318, "_reduce_490", 1, 318, "_reduce_none", 2, 333, "_reduce_492", 3, 333, "_reduce_493", 1, 320, "_reduce_494", 3, 320, "_reduce_495", 5, 319, "_reduce_496", 2, 336, "_reduce_497", 1, 336, "_reduce_498", 1, 335, "_reduce_499", 3, 335, "_reduce_500", 1, 334, "_reduce_none", 3, 321, "_reduce_502", 1, 321, "_reduce_503", 2, 321, "_reduce_504", 1, 321, "_reduce_505", 1, 337, "_reduce_506", 3, 337, "_reduce_507", 2, 339, "_reduce_508", 1, 339, "_reduce_509", 1, 340, "_reduce_510", 3, 340, "_reduce_511", 2, 342, "_reduce_512", 1, 342, "_reduce_513", 2, 344, "_reduce_514", 1, 338, "_reduce_none", 1, 338, "_reduce_none", 1, 328, "_reduce_none", 3, 328, "_reduce_518", 3, 328, "_reduce_519", 2, 328, "_reduce_520", 2, 328, "_reduce_521", 1, 328, "_reduce_none", 1, 328, "_reduce_none", 1, 328, "_reduce_none", 2, 328, "_reduce_525", 2, 328, "_reduce_526", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_none", 1, 345, "_reduce_535", 1, 345, "_reduce_none", 1, 323, "_reduce_537", 2, 346, "_reduce_538", 2, 329, "_reduce_539", 3, 329, "_reduce_540", 1, 329, "_reduce_541", 6, 159, "_reduce_542", 0, 159, "_reduce_543", 1, 347, "_reduce_544", 1, 347, "_reduce_none", 1, 347, "_reduce_none", 2, 348, "_reduce_547", 1, 348, "_reduce_none", 2, 161, "_reduce_549", 1, 161, "_reduce_none", 1, 243, "_reduce_none", 1, 243, "_reduce_none", 1, 244, "_reduce_553", 1, 350, "_reduce_554", 2, 350, "_reduce_555", 3, 351, "_reduce_556", 1, 351, "_reduce_557", 1, 351, "_reduce_558", 3, 245, "_reduce_559", 4, 246, "_reduce_560", 3, 247, "_reduce_561", 0, 354, "_reduce_562", 3, 354, "_reduce_563", 1, 355, "_reduce_564", 2, 355, "_reduce_565", 3, 249, "_reduce_566", 0, 357, "_reduce_567", 3, 357, "_reduce_568", 3, 248, "_reduce_569", 3, 250, "_reduce_570", 0, 358, "_reduce_571", 3, 358, "_reduce_572", 0, 359, "_reduce_573", 3, 359, "_reduce_574", 0, 341, "_reduce_575", 2, 341, "_reduce_576", 0, 352, "_reduce_577", 2, 352, "_reduce_578", 0, 353, "_reduce_579", 2, 353, "_reduce_580", 1, 356, "_reduce_581", 2, 356, "_reduce_582", 0, 361, "_reduce_583", 4, 356, "_reduce_584", 1, 360, "_reduce_585", 1, 360, "_reduce_586", 1, 360, "_reduce_587", 1, 360, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 362, "_reduce_591", 3, 363, "_reduce_592", 1, 349, "_reduce_593", 2, 349, "_reduce_594", 1, 226, "_reduce_595", 1, 226, "_reduce_596", 1, 226, "_reduce_597", 1, 226, "_reduce_598", 1, 217, "_reduce_599", 1, 217, "_reduce_600", 1, 217, "_reduce_601", 1, 217, "_reduce_602", 1, 217, "_reduce_603", 1, 218, "_reduce_604", 1, 218, "_reduce_605", 1, 218, "_reduce_606", 1, 218, "_reduce_607", 1, 218, "_reduce_608", 1, 218, "_reduce_609", 1, 218, "_reduce_610", 1, 251, "_reduce_611", 1, 251, "_reduce_612", 1, 176, "_reduce_613", 1, 176, "_reduce_614", 1, 181, "_reduce_615", 1, 181, "_reduce_616", 0, 364, "_reduce_617", 4, 262, "_reduce_618", 0, 262, "_reduce_619", 1, 228, "_reduce_none", 1, 228, "_reduce_621", 3, 365, "_reduce_622", 5, 365, "_reduce_623", 3, 365, "_reduce_624", 1, 265, "_reduce_none", 0, 367, "_reduce_626", 3, 265, "_reduce_627", 4, 366, "_reduce_628", 2, 366, "_reduce_629", 2, 366, "_reduce_630", 1, 366, "_reduce_631", 2, 369, "_reduce_632", 0, 369, "_reduce_633", 6, 300, "_reduce_634", 8, 300, "_reduce_635", 4, 300, "_reduce_636", 6, 300, "_reduce_637", 4, 300, "_reduce_638", 6, 300, "_reduce_639", 2, 300, "_reduce_640", 4, 300, "_reduce_641", 6, 300, "_reduce_642", 2, 300, "_reduce_643", 4, 300, "_reduce_644", 2, 300, "_reduce_645", 4, 300, "_reduce_646", 1, 300, "_reduce_647", 0, 300, "_reduce_648", 1, 238, "_reduce_649", 1, 295, "_reduce_650", 1, 295, "_reduce_651", 1, 295, "_reduce_652", 1, 295, "_reduce_653", 1, 273, "_reduce_none", 1, 273, "_reduce_655", 1, 371, "_reduce_656", 1, 372, "_reduce_657", 3, 372, "_reduce_658", 1, 287, "_reduce_659", 3, 287, "_reduce_660", 1, 373, "_reduce_661", 2, 374, "_reduce_662", 1, 374, "_reduce_663", 2, 375, "_reduce_664", 1, 375, "_reduce_665", 1, 281, "_reduce_666", 3, 281, "_reduce_667", 1, 368, "_reduce_668", 3, 368, "_reduce_669", 1, 343, "_reduce_none", 1, 343, "_reduce_none", 2, 279, "_reduce_672", 2, 278, "_reduce_673", 1, 278, "_reduce_674", 3, 376, "_reduce_675", 3, 377, "_reduce_676", 1, 288, "_reduce_677", 3, 288, "_reduce_678", 1, 370, "_reduce_679", 3, 370, "_reduce_680", 1, 378, "_reduce_none", 1, 378, "_reduce_none", 2, 289, "_reduce_683", 1, 289, "_reduce_684", 1, 379, "_reduce_none", 1, 379, "_reduce_none", 2, 283, "_reduce_687", 2, 282, "_reduce_688", 0, 282, "_reduce_689", 1, 195, "_reduce_none", 3, 195, "_reduce_691", 0, 252, "_reduce_692", 2, 252, "_reduce_none", 1, 236, "_reduce_694", 3, 236, "_reduce_695", 3, 380, "_reduce_696", 2, 380, "_reduce_697", 4, 380, "_reduce_698", 2, 380, "_reduce_699", 1, 207, "_reduce_none", 1, 207, "_reduce_none", 1, 207, "_reduce_none", 1, 201, "_reduce_none", 1, 201, "_reduce_none", 1, 201, "_reduce_none", 1, 201, "_reduce_none", 1, 306, "_reduce_none", 1, 306, "_reduce_none", 1, 306, "_reduce_none", 1, 196, "_reduce_none", 1, 196, "_reduce_none", 1, 180, "_reduce_712", 1, 180, "_reduce_713", 0, 152, "_reduce_none", 1, 152, "_reduce_none", 0, 182, "_reduce_none", 1, 182, "_reduce_none", 2, 212, "_reduce_718", 2, 179, "_reduce_719", 2, 330, "_reduce_720", 0, 235, "_reduce_none", 1, 235, "_reduce_none", 1, 235, "_reduce_none", 1, 263, "_reduce_724", 1, 263, "_reduce_none", 1, 154, "_reduce_none", 2, 154, "_reduce_none", 0, 233, "_reduce_728"]; - racc_reduce_n = 729; - racc_shift_n = 1219; + return (idx = $rb_plus(idx, 1));}, 1);}, 1); + racc_goto_pointer = [nil, 343, 142, 162, nil, 134, 154, 106, 86, 56, -209, 9, -441, -639, -723, nil, -407, 59, 167, -52, -129, 111, 35, 2068, -107, -30, 45, 59, -108, 164, 1262, -210, -357, 26, 23, 121, -26, 3589, 1625, 2121, 484, -424, -59, -57, -7, -419, -14, nil, -9, nil, 180, 66, -345, nil, nil, -193, 53, -186, -458, 1017, -350, nil, 3145, 282, 104, 130, -51, nil, -28, 62, -303, 2499, -2, -363, 116, -4, nil, 42, -220, 291, 20, nil, -5, 166, -153, 1195, 153, 63, 235, -252, 114, -28, -258, -332, -277, -480, nil, 849, 616, 2504, 2203, 2113, 2068, 1856, 1723, 200, 161, -51, nil, 1618, -339, -763, -364, -596, 155, nil, -173, 35, nil, 98, 172, -135, 173, -366, -397, -603, -161, -762, -466, -373, -760, -664, -141, -639, nil, -437, -722, nil, nil, -436, -27, 269, -822, -716, 413, -815, -438, -638, nil, -737, -842, -965, -973, -135, -575, 194, -361, -88, -25, -714, -711, -394, -9, nil, -18, -18, nil, nil, -488, -796, -691, -919, -530, -844, 34, -562, -553, -422, -760, nil, -620, nil, -620, -431, -425, nil, nil, -648, -424, -423, nil, -352, -816, -781, nil, -615, -612, nil, -89, nil, -390, nil, -558, nil, nil, -437, -353, -735, nil, nil, 257, 254, 255, 264, -250, -200, 265, 266, 271, -274, -271, nil, nil, -259, -168, -98, nil, nil, -432, -311, -218, -569, 230, -298, -730, -616, -983, nil, nil, -491]; + racc_goto_default = [nil, nil, nil, nil, 5, nil, 6, 391, 334, nil, nil, 472, nil, 984, nil, 331, 332, nil, nil, nil, 13, 14, 22, 247, nil, nil, 16, nil, 441, 248, 363, nil, nil, 637, 251, nil, 27, 25, 252, 246, 517, nil, nil, nil, nil, nil, nil, 386, 143, 26, nil, nil, nil, 28, 29, 812, nil, nil, nil, 351, nil, 30, 348, 455, 37, nil, nil, 39, 42, 41, nil, 243, 244, 403, nil, 463, 142, 87, nil, 446, 103, 51, 54, 283, nil, 323, nil, 891, 456, nil, 457, 468, 480, 686, 569, 321, 307, 55, 56, 57, 58, 59, 60, 61, 62, 63, nil, 308, 69, 70, nil, nil, nil, nil, nil, 77, nil, 619, 78, 230, nil, nil, nil, nil, nil, nil, nil, 711, 492, nil, 712, 713, 478, 474, 475, nil, 1179, 707, 1071, nil, 479, nil, nil, nil, 481, nil, 483, nil, 971, nil, nil, nil, 490, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 467, nil, nil, 791, 783, nil, nil, nil, nil, nil, nil, 1051, nil, 736, 937, 738, 739, 743, 740, 741, nil, nil, 742, 744, nil, nil, nil, 936, 938, nil, 748, 750, 751, 752, 753, nil, 757, 501, 758, 759, 760, 761, nil, nil, nil, 86, 88, 89, nil, nil, nil, nil, 647, nil, nil, nil, nil, nil, 99, 100, nil, 231, 901, 234, 477, nil, 482, 909, 495, 497, 498, 1082, 502, 1083, 505, 508, 326]; + racc_reduce_table = [0, 0, "racc_error", 0, 150, "_reduce_1", 2, 148, "_reduce_2", 2, 149, "_reduce_3", 0, 151, "_reduce_4", 1, 151, "_reduce_5", 3, 151, "_reduce_6", 2, 151, "_reduce_7", 1, 153, "_reduce_none", 2, 153, "_reduce_9", 3, 156, "_reduce_10", 4, 157, "_reduce_11", 2, 158, "_reduce_12", 0, 162, "_reduce_13", 1, 162, "_reduce_14", 3, 162, "_reduce_15", 2, 162, "_reduce_16", 1, 163, "_reduce_none", 2, 163, "_reduce_18", 0, 174, "_reduce_19", 4, 155, "_reduce_20", 3, 155, "_reduce_21", 3, 155, "_reduce_22", 3, 155, "_reduce_23", 2, 155, "_reduce_24", 3, 155, "_reduce_25", 3, 155, "_reduce_26", 3, 155, "_reduce_27", 3, 155, "_reduce_28", 3, 155, "_reduce_29", 4, 155, "_reduce_30", 1, 155, "_reduce_none", 3, 155, "_reduce_32", 3, 155, "_reduce_33", 5, 155, "_reduce_34", 3, 155, "_reduce_35", 1, 155, "_reduce_none", 3, 167, "_reduce_37", 3, 167, "_reduce_38", 6, 167, "_reduce_39", 5, 167, "_reduce_40", 5, 167, "_reduce_41", 5, 167, "_reduce_42", 5, 167, "_reduce_43", 4, 167, "_reduce_44", 6, 167, "_reduce_45", 4, 167, "_reduce_46", 6, 167, "_reduce_47", 3, 167, "_reduce_48", 1, 175, "_reduce_none", 3, 175, "_reduce_50", 1, 175, "_reduce_none", 1, 173, "_reduce_none", 3, 173, "_reduce_53", 3, 173, "_reduce_54", 3, 173, "_reduce_55", 2, 173, "_reduce_56", 0, 189, "_reduce_57", 4, 173, "_reduce_58", 0, 190, "_reduce_59", 4, 173, "_reduce_60", 1, 173, "_reduce_none", 1, 166, "_reduce_none", 0, 194, "_reduce_63", 3, 191, "_reduce_64", 1, 193, "_reduce_65", 2, 181, "_reduce_66", 0, 199, "_reduce_67", 5, 185, "_reduce_68", 1, 169, "_reduce_none", 1, 169, "_reduce_none", 1, 200, "_reduce_none", 4, 200, "_reduce_72", 0, 207, "_reduce_73", 4, 204, "_reduce_74", 1, 206, "_reduce_none", 2, 183, "_reduce_76", 3, 183, "_reduce_77", 4, 183, "_reduce_78", 5, 183, "_reduce_79", 4, 183, "_reduce_80", 5, 183, "_reduce_81", 2, 183, "_reduce_82", 2, 183, "_reduce_83", 2, 183, "_reduce_84", 2, 183, "_reduce_85", 2, 183, "_reduce_86", 1, 168, "_reduce_87", 3, 168, "_reduce_88", 1, 212, "_reduce_89", 3, 212, "_reduce_90", 1, 211, "_reduce_none", 2, 211, "_reduce_92", 3, 211, "_reduce_93", 5, 211, "_reduce_94", 2, 211, "_reduce_95", 4, 211, "_reduce_96", 2, 211, "_reduce_97", 4, 211, "_reduce_98", 1, 211, "_reduce_99", 3, 211, "_reduce_100", 1, 215, "_reduce_none", 3, 215, "_reduce_102", 2, 214, "_reduce_103", 3, 214, "_reduce_104", 1, 217, "_reduce_105", 3, 217, "_reduce_106", 1, 216, "_reduce_107", 1, 216, "_reduce_108", 4, 216, "_reduce_109", 3, 216, "_reduce_110", 3, 216, "_reduce_111", 3, 216, "_reduce_112", 3, 216, "_reduce_113", 2, 216, "_reduce_114", 1, 216, "_reduce_115", 1, 170, "_reduce_116", 1, 170, "_reduce_117", 4, 170, "_reduce_118", 3, 170, "_reduce_119", 3, 170, "_reduce_120", 3, 170, "_reduce_121", 3, 170, "_reduce_122", 2, 170, "_reduce_123", 1, 170, "_reduce_124", 1, 220, "_reduce_125", 1, 220, "_reduce_none", 2, 221, "_reduce_127", 1, 221, "_reduce_128", 3, 221, "_reduce_129", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 164, "_reduce_135", 1, 164, "_reduce_none", 1, 165, "_reduce_137", 0, 225, "_reduce_138", 4, 165, "_reduce_139", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 1, 223, "_reduce_none", 3, 184, "_reduce_211", 3, 184, "_reduce_212", 6, 184, "_reduce_213", 5, 184, "_reduce_214", 5, 184, "_reduce_215", 5, 184, "_reduce_216", 5, 184, "_reduce_217", 4, 184, "_reduce_218", 3, 184, "_reduce_219", 3, 184, "_reduce_220", 3, 184, "_reduce_221", 2, 184, "_reduce_222", 2, 184, "_reduce_223", 2, 184, "_reduce_224", 2, 184, "_reduce_225", 3, 184, "_reduce_226", 3, 184, "_reduce_227", 3, 184, "_reduce_228", 3, 184, "_reduce_229", 3, 184, "_reduce_230", 3, 184, "_reduce_231", 4, 184, "_reduce_232", 2, 184, "_reduce_233", 2, 184, "_reduce_234", 3, 184, "_reduce_235", 3, 184, "_reduce_236", 3, 184, "_reduce_237", 3, 184, "_reduce_238", 1, 184, "_reduce_none", 3, 184, "_reduce_240", 3, 184, "_reduce_241", 3, 184, "_reduce_242", 3, 184, "_reduce_243", 3, 184, "_reduce_244", 2, 184, "_reduce_245", 2, 184, "_reduce_246", 3, 184, "_reduce_247", 3, 184, "_reduce_248", 3, 184, "_reduce_249", 3, 184, "_reduce_250", 0, 231, "_reduce_251", 4, 184, "_reduce_252", 6, 184, "_reduce_253", 4, 184, "_reduce_254", 6, 184, "_reduce_255", 4, 184, "_reduce_256", 6, 184, "_reduce_257", 1, 184, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 1, 230, "_reduce_none", 3, 228, "_reduce_263", 3, 228, "_reduce_264", 1, 232, "_reduce_none", 1, 233, "_reduce_none", 2, 233, "_reduce_none", 4, 233, "_reduce_268", 2, 233, "_reduce_269", 1, 226, "_reduce_none", 3, 226, "_reduce_271", 3, 238, "_reduce_272", 5, 238, "_reduce_273", 3, 238, "_reduce_274", 0, 240, "_reduce_275", 1, 240, "_reduce_none", 0, 178, "_reduce_277", 1, 178, "_reduce_none", 2, 178, "_reduce_none", 4, 178, "_reduce_280", 2, 178, "_reduce_281", 1, 210, "_reduce_282", 2, 210, "_reduce_283", 2, 210, "_reduce_284", 4, 210, "_reduce_285", 1, 210, "_reduce_286", 0, 243, "_reduce_287", 2, 203, "_reduce_288", 2, 242, "_reduce_289", 1, 242, "_reduce_290", 2, 241, "_reduce_291", 0, 241, "_reduce_292", 1, 235, "_reduce_293", 2, 235, "_reduce_294", 3, 235, "_reduce_295", 4, 235, "_reduce_296", 1, 172, "_reduce_297", 1, 172, "_reduce_none", 3, 171, "_reduce_299", 4, 171, "_reduce_300", 2, 171, "_reduce_301", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_312", 0, 267, "_reduce_313", 4, 229, "_reduce_314", 0, 268, "_reduce_315", 4, 229, "_reduce_316", 0, 269, "_reduce_317", 4, 229, "_reduce_318", 3, 229, "_reduce_319", 3, 229, "_reduce_320", 2, 229, "_reduce_321", 3, 229, "_reduce_322", 3, 229, "_reduce_323", 1, 229, "_reduce_324", 4, 229, "_reduce_325", 3, 229, "_reduce_326", 1, 229, "_reduce_327", 0, 270, "_reduce_328", 6, 229, "_reduce_329", 4, 229, "_reduce_330", 3, 229, "_reduce_331", 2, 229, "_reduce_332", 1, 229, "_reduce_none", 2, 229, "_reduce_334", 1, 229, "_reduce_none", 6, 229, "_reduce_336", 6, 229, "_reduce_337", 4, 229, "_reduce_338", 4, 229, "_reduce_339", 5, 229, "_reduce_340", 4, 229, "_reduce_341", 5, 229, "_reduce_342", 6, 229, "_reduce_343", 0, 271, "_reduce_344", 6, 229, "_reduce_345", 0, 272, "_reduce_346", 7, 229, "_reduce_347", 0, 273, "_reduce_348", 5, 229, "_reduce_349", 4, 229, "_reduce_350", 4, 229, "_reduce_351", 1, 229, "_reduce_352", 1, 229, "_reduce_353", 1, 229, "_reduce_354", 1, 229, "_reduce_355", 1, 177, "_reduce_none", 1, 262, "_reduce_357", 1, 265, "_reduce_358", 1, 196, "_reduce_359", 1, 209, "_reduce_360", 1, 257, "_reduce_none", 1, 257, "_reduce_none", 2, 257, "_reduce_363", 1, 192, "_reduce_none", 1, 192, "_reduce_none", 1, 258, "_reduce_none", 5, 258, "_reduce_367", 1, 160, "_reduce_none", 2, 160, "_reduce_369", 1, 261, "_reduce_none", 1, 261, "_reduce_none", 1, 274, "_reduce_372", 3, 274, "_reduce_373", 1, 277, "_reduce_374", 3, 277, "_reduce_375", 1, 276, "_reduce_none", 3, 276, "_reduce_377", 5, 276, "_reduce_378", 1, 276, "_reduce_379", 3, 276, "_reduce_380", 2, 278, "_reduce_381", 1, 278, "_reduce_382", 1, 279, "_reduce_none", 1, 279, "_reduce_none", 0, 284, "_reduce_385", 2, 282, "_reduce_386", 4, 283, "_reduce_387", 2, 283, "_reduce_388", 2, 283, "_reduce_389", 1, 283, "_reduce_390", 2, 288, "_reduce_391", 0, 288, "_reduce_392", 1, 289, "_reduce_none", 6, 290, "_reduce_394", 8, 290, "_reduce_395", 4, 290, "_reduce_396", 6, 290, "_reduce_397", 4, 290, "_reduce_398", 2, 290, "_reduce_none", 6, 290, "_reduce_400", 2, 290, "_reduce_401", 4, 290, "_reduce_402", 6, 290, "_reduce_403", 2, 290, "_reduce_404", 4, 290, "_reduce_405", 2, 290, "_reduce_406", 4, 290, "_reduce_407", 1, 290, "_reduce_none", 0, 294, "_reduce_409", 1, 294, "_reduce_410", 3, 295, "_reduce_411", 4, 295, "_reduce_412", 1, 296, "_reduce_413", 4, 296, "_reduce_414", 1, 297, "_reduce_415", 3, 297, "_reduce_416", 1, 298, "_reduce_417", 1, 298, "_reduce_none", 0, 302, "_reduce_419", 0, 303, "_reduce_420", 5, 256, "_reduce_421", 4, 300, "_reduce_422", 1, 300, "_reduce_423", 0, 306, "_reduce_424", 4, 301, "_reduce_425", 0, 307, "_reduce_426", 4, 301, "_reduce_427", 0, 309, "_reduce_428", 4, 305, "_reduce_429", 2, 201, "_reduce_430", 4, 201, "_reduce_431", 5, 201, "_reduce_432", 5, 201, "_reduce_433", 2, 255, "_reduce_434", 4, 255, "_reduce_435", 4, 255, "_reduce_436", 3, 255, "_reduce_437", 3, 255, "_reduce_438", 3, 255, "_reduce_439", 2, 255, "_reduce_440", 1, 255, "_reduce_441", 4, 255, "_reduce_442", 0, 311, "_reduce_443", 4, 254, "_reduce_444", 0, 312, "_reduce_445", 4, 254, "_reduce_446", 0, 313, "_reduce_447", 3, 205, "_reduce_448", 0, 314, "_reduce_449", 0, 315, "_reduce_450", 4, 308, "_reduce_451", 5, 259, "_reduce_452", 1, 316, "_reduce_453", 1, 316, "_reduce_none", 0, 319, "_reduce_455", 0, 320, "_reduce_456", 7, 260, "_reduce_457", 1, 318, "_reduce_458", 1, 318, "_reduce_none", 1, 317, "_reduce_460", 3, 317, "_reduce_461", 3, 317, "_reduce_462", 1, 188, "_reduce_none", 2, 188, "_reduce_464", 3, 188, "_reduce_465", 1, 188, "_reduce_466", 1, 188, "_reduce_467", 1, 188, "_reduce_468", 1, 321, "_reduce_none", 3, 326, "_reduce_470", 1, 326, "_reduce_none", 3, 328, "_reduce_472", 1, 328, "_reduce_none", 1, 330, "_reduce_474", 1, 331, "_reduce_475", 1, 329, "_reduce_none", 1, 329, "_reduce_none", 4, 329, "_reduce_478", 4, 329, "_reduce_479", 4, 329, "_reduce_480", 3, 329, "_reduce_481", 4, 329, "_reduce_482", 4, 329, "_reduce_483", 4, 329, "_reduce_484", 3, 329, "_reduce_485", 3, 329, "_reduce_486", 3, 329, "_reduce_487", 2, 329, "_reduce_488", 0, 335, "_reduce_489", 4, 329, "_reduce_490", 2, 329, "_reduce_491", 0, 336, "_reduce_492", 4, 329, "_reduce_493", 1, 322, "_reduce_494", 1, 322, "_reduce_495", 2, 322, "_reduce_496", 3, 322, "_reduce_497", 5, 322, "_reduce_498", 2, 322, "_reduce_499", 4, 322, "_reduce_500", 1, 322, "_reduce_none", 2, 337, "_reduce_502", 3, 337, "_reduce_503", 1, 324, "_reduce_504", 3, 324, "_reduce_505", 5, 323, "_reduce_506", 2, 340, "_reduce_507", 1, 340, "_reduce_508", 1, 339, "_reduce_509", 3, 339, "_reduce_510", 1, 338, "_reduce_none", 3, 325, "_reduce_512", 1, 325, "_reduce_513", 2, 325, "_reduce_514", 1, 325, "_reduce_515", 1, 341, "_reduce_516", 3, 341, "_reduce_517", 2, 343, "_reduce_518", 1, 343, "_reduce_519", 1, 344, "_reduce_520", 3, 344, "_reduce_521", 2, 346, "_reduce_522", 1, 346, "_reduce_523", 2, 348, "_reduce_524", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 332, "_reduce_none", 3, 332, "_reduce_528", 3, 332, "_reduce_529", 2, 332, "_reduce_530", 2, 332, "_reduce_531", 1, 332, "_reduce_none", 1, 332, "_reduce_none", 1, 332, "_reduce_none", 2, 332, "_reduce_535", 2, 332, "_reduce_536", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_none", 1, 349, "_reduce_545", 1, 349, "_reduce_none", 1, 327, "_reduce_547", 2, 350, "_reduce_548", 2, 350, "_reduce_549", 4, 351, "_reduce_550", 2, 333, "_reduce_551", 3, 333, "_reduce_552", 1, 333, "_reduce_553", 6, 159, "_reduce_554", 0, 159, "_reduce_555", 1, 353, "_reduce_556", 1, 353, "_reduce_none", 1, 353, "_reduce_none", 2, 354, "_reduce_559", 1, 354, "_reduce_none", 2, 161, "_reduce_561", 1, 161, "_reduce_none", 1, 244, "_reduce_none", 1, 244, "_reduce_none", 1, 245, "_reduce_565", 1, 356, "_reduce_566", 2, 356, "_reduce_567", 3, 357, "_reduce_568", 1, 357, "_reduce_569", 1, 357, "_reduce_570", 3, 246, "_reduce_571", 4, 247, "_reduce_572", 3, 248, "_reduce_573", 0, 360, "_reduce_574", 3, 360, "_reduce_575", 1, 361, "_reduce_576", 2, 361, "_reduce_577", 3, 250, "_reduce_578", 0, 363, "_reduce_579", 3, 363, "_reduce_580", 3, 249, "_reduce_581", 3, 251, "_reduce_582", 0, 364, "_reduce_583", 3, 364, "_reduce_584", 0, 365, "_reduce_585", 3, 365, "_reduce_586", 0, 345, "_reduce_587", 2, 345, "_reduce_588", 0, 358, "_reduce_589", 2, 358, "_reduce_590", 0, 359, "_reduce_591", 2, 359, "_reduce_592", 1, 362, "_reduce_593", 2, 362, "_reduce_594", 0, 367, "_reduce_595", 4, 362, "_reduce_596", 1, 366, "_reduce_597", 1, 366, "_reduce_598", 1, 366, "_reduce_599", 1, 366, "_reduce_none", 1, 224, "_reduce_none", 1, 224, "_reduce_none", 1, 368, "_reduce_603", 3, 369, "_reduce_604", 1, 355, "_reduce_605", 2, 355, "_reduce_606", 1, 227, "_reduce_607", 1, 227, "_reduce_608", 1, 227, "_reduce_609", 1, 227, "_reduce_610", 1, 352, "_reduce_611", 1, 352, "_reduce_612", 1, 352, "_reduce_613", 1, 218, "_reduce_614", 1, 218, "_reduce_615", 1, 218, "_reduce_616", 1, 218, "_reduce_617", 1, 218, "_reduce_618", 1, 219, "_reduce_619", 1, 219, "_reduce_620", 1, 219, "_reduce_621", 1, 219, "_reduce_622", 1, 219, "_reduce_623", 1, 219, "_reduce_624", 1, 219, "_reduce_625", 1, 252, "_reduce_626", 1, 252, "_reduce_627", 1, 176, "_reduce_628", 1, 176, "_reduce_629", 1, 186, "_reduce_630", 1, 186, "_reduce_631", 0, 370, "_reduce_632", 4, 263, "_reduce_633", 0, 263, "_reduce_634", 1, 182, "_reduce_none", 1, 182, "_reduce_636", 3, 371, "_reduce_637", 1, 266, "_reduce_none", 0, 373, "_reduce_639", 3, 266, "_reduce_640", 4, 372, "_reduce_641", 2, 372, "_reduce_642", 2, 372, "_reduce_643", 1, 372, "_reduce_644", 1, 372, "_reduce_645", 2, 375, "_reduce_646", 0, 375, "_reduce_647", 6, 304, "_reduce_648", 8, 304, "_reduce_649", 4, 304, "_reduce_650", 6, 304, "_reduce_651", 4, 304, "_reduce_652", 6, 304, "_reduce_653", 2, 304, "_reduce_654", 4, 304, "_reduce_655", 6, 304, "_reduce_656", 2, 304, "_reduce_657", 4, 304, "_reduce_658", 2, 304, "_reduce_659", 4, 304, "_reduce_660", 1, 304, "_reduce_661", 0, 304, "_reduce_662", 1, 239, "_reduce_663", 1, 299, "_reduce_664", 1, 299, "_reduce_665", 1, 299, "_reduce_666", 1, 299, "_reduce_667", 1, 275, "_reduce_none", 1, 275, "_reduce_669", 1, 377, "_reduce_670", 1, 378, "_reduce_671", 3, 378, "_reduce_672", 1, 291, "_reduce_673", 3, 291, "_reduce_674", 1, 379, "_reduce_675", 2, 380, "_reduce_676", 1, 380, "_reduce_677", 2, 381, "_reduce_678", 1, 381, "_reduce_679", 1, 285, "_reduce_680", 3, 285, "_reduce_681", 1, 374, "_reduce_682", 3, 374, "_reduce_683", 1, 347, "_reduce_none", 1, 347, "_reduce_none", 2, 281, "_reduce_686", 2, 280, "_reduce_687", 1, 280, "_reduce_688", 3, 382, "_reduce_689", 3, 383, "_reduce_690", 1, 292, "_reduce_691", 3, 292, "_reduce_692", 1, 376, "_reduce_693", 3, 376, "_reduce_694", 1, 384, "_reduce_none", 1, 384, "_reduce_none", 2, 293, "_reduce_697", 1, 293, "_reduce_698", 1, 385, "_reduce_none", 1, 385, "_reduce_none", 2, 287, "_reduce_701", 1, 287, "_reduce_702", 2, 286, "_reduce_703", 0, 286, "_reduce_704", 1, 197, "_reduce_none", 3, 197, "_reduce_706", 0, 253, "_reduce_707", 2, 253, "_reduce_none", 1, 237, "_reduce_709", 3, 237, "_reduce_710", 3, 386, "_reduce_711", 2, 386, "_reduce_712", 1, 386, "_reduce_713", 4, 386, "_reduce_714", 2, 386, "_reduce_715", 1, 208, "_reduce_none", 1, 208, "_reduce_none", 1, 208, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 310, "_reduce_none", 1, 310, "_reduce_none", 1, 310, "_reduce_none", 1, 198, "_reduce_none", 1, 198, "_reduce_none", 1, 180, "_reduce_728", 1, 180, "_reduce_729", 0, 152, "_reduce_none", 1, 152, "_reduce_none", 0, 187, "_reduce_none", 1, 187, "_reduce_none", 2, 213, "_reduce_734", 2, 179, "_reduce_735", 2, 334, "_reduce_736", 0, 236, "_reduce_none", 1, 236, "_reduce_none", 1, 236, "_reduce_none", 1, 264, "_reduce_740", 1, 264, "_reduce_none", 1, 154, "_reduce_none", 2, 154, "_reduce_none", 0, 234, "_reduce_744"]; + racc_reduce_n = 745; + racc_shift_n = 1238; racc_token_table = $hash(false, 0, "error", 1, "kCLASS", 2, "kMODULE", 3, "kDEF", 4, "kUNDEF", 5, "kBEGIN", 6, "kRESCUE", 7, "kENSURE", 8, "kEND", 9, "kIF", 10, "kUNLESS", 11, "kTHEN", 12, "kELSIF", 13, "kELSE", 14, "kCASE", 15, "kWHEN", 16, "kWHILE", 17, "kUNTIL", 18, "kFOR", 19, "kBREAK", 20, "kNEXT", 21, "kREDO", 22, "kRETRY", 23, "kIN", 24, "kDO", 25, "kDO_COND", 26, "kDO_BLOCK", 27, "kDO_LAMBDA", 28, "kRETURN", 29, "kYIELD", 30, "kSUPER", 31, "kSELF", 32, "kNIL", 33, "kTRUE", 34, "kFALSE", 35, "kAND", 36, "kOR", 37, "kNOT", 38, "kIF_MOD", 39, "kUNLESS_MOD", 40, "kWHILE_MOD", 41, "kUNTIL_MOD", 42, "kRESCUE_MOD", 43, "kALIAS", 44, "kDEFINED", 45, "klBEGIN", 46, "klEND", 47, "k__LINE__", 48, "k__FILE__", 49, "k__ENCODING__", 50, "tIDENTIFIER", 51, "tFID", 52, "tGVAR", 53, "tIVAR", 54, "tCONSTANT", 55, "tLABEL", 56, "tCVAR", 57, "tNTH_REF", 58, "tBACK_REF", 59, "tSTRING_CONTENT", 60, "tINTEGER", 61, "tFLOAT", 62, "tUPLUS", 63, "tUMINUS", 64, "tUNARY_NUM", 65, "tPOW", 66, "tCMP", 67, "tEQ", 68, "tEQQ", 69, "tNEQ", 70, "tGEQ", 71, "tLEQ", 72, "tANDOP", 73, "tOROP", 74, "tMATCH", 75, "tNMATCH", 76, "tDOT", 77, "tDOT2", 78, "tDOT3", 79, "tAREF", 80, "tASET", 81, "tLSHFT", 82, "tRSHFT", 83, "tCOLON2", 84, "tCOLON3", 85, "tOP_ASGN", 86, "tASSOC", 87, "tLPAREN", 88, "tLPAREN2", 89, "tRPAREN", 90, "tLPAREN_ARG", 91, "tLBRACK", 92, "tLBRACK2", 93, "tRBRACK", 94, "tLBRACE", 95, "tLBRACE_ARG", 96, "tSTAR", 97, "tSTAR2", 98, "tAMPER", 99, "tAMPER2", 100, "tTILDE", 101, "tPERCENT", 102, "tDIVIDE", 103, "tDSTAR", 104, "tPLUS", 105, "tMINUS", 106, "tLT", 107, "tGT", 108, "tPIPE", 109, "tBANG", 110, "tCARET", 111, "tLCURLY", 112, "tRCURLY", 113, "tBACK_REF2", 114, "tSYMBEG", 115, "tSTRING_BEG", 116, "tXSTRING_BEG", 117, "tREGEXP_BEG", 118, "tREGEXP_OPT", 119, "tWORDS_BEG", 120, "tQWORDS_BEG", 121, "tSYMBOLS_BEG", 122, "tQSYMBOLS_BEG", 123, "tSTRING_DBEG", 124, "tSTRING_DVAR", 125, "tSTRING_END", 126, "tSTRING_DEND", 127, "tSTRING", 128, "tSYMBOL", 129, "tNL", 130, "tEH", 131, "tCOLON", 132, "tCOMMA", 133, "tSPACE", 134, "tSEMI", 135, "tLAMBDA", 136, "tLAMBEG", 137, "tCHARACTER", 138, "tRATIONAL", 139, "tIMAGINARY", 140, "tLABEL_END", 141, "tANDDOT", 142, "tBDOT2", 143, "tBDOT3", 144, "tEQL", 145, "tLOWEST", 146); racc_nt_base = 147; racc_use_result_var = true; - Opal.const_set($nesting[0], 'Racc_arg', [racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var]); - Opal.const_set($nesting[0], 'Racc_token_to_s_table', ["$end", "error", "kCLASS", "kMODULE", "kDEF", "kUNDEF", "kBEGIN", "kRESCUE", "kENSURE", "kEND", "kIF", "kUNLESS", "kTHEN", "kELSIF", "kELSE", "kCASE", "kWHEN", "kWHILE", "kUNTIL", "kFOR", "kBREAK", "kNEXT", "kREDO", "kRETRY", "kIN", "kDO", "kDO_COND", "kDO_BLOCK", "kDO_LAMBDA", "kRETURN", "kYIELD", "kSUPER", "kSELF", "kNIL", "kTRUE", "kFALSE", "kAND", "kOR", "kNOT", "kIF_MOD", "kUNLESS_MOD", "kWHILE_MOD", "kUNTIL_MOD", "kRESCUE_MOD", "kALIAS", "kDEFINED", "klBEGIN", "klEND", "k__LINE__", "k__FILE__", "k__ENCODING__", "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tLABEL", "tCVAR", "tNTH_REF", "tBACK_REF", "tSTRING_CONTENT", "tINTEGER", "tFLOAT", "tUPLUS", "tUMINUS", "tUNARY_NUM", "tPOW", "tCMP", "tEQ", "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", "tDOT", "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN2", "tRPAREN", "tLPAREN_ARG", "tLBRACK", "tLBRACK2", "tRBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tSTAR2", "tAMPER", "tAMPER2", "tTILDE", "tPERCENT", "tDIVIDE", "tDSTAR", "tPLUS", "tMINUS", "tLT", "tGT", "tPIPE", "tBANG", "tCARET", "tLCURLY", "tRCURLY", "tBACK_REF2", "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tREGEXP_OPT", "tWORDS_BEG", "tQWORDS_BEG", "tSYMBOLS_BEG", "tQSYMBOLS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tSTRING_DEND", "tSTRING", "tSYMBOL", "tNL", "tEH", "tCOLON", "tCOMMA", "tSPACE", "tSEMI", "tLAMBDA", "tLAMBEG", "tCHARACTER", "tRATIONAL", "tIMAGINARY", "tLABEL_END", "tANDDOT", "tBDOT2", "tBDOT3", "tEQL", "tLOWEST", "$start", "program", "top_compstmt", "@1", "top_stmts", "opt_terms", "top_stmt", "terms", "stmt", "begin_block", "bodystmt", "compstmt", "opt_rescue", "opt_else", "opt_ensure", "stmts", "stmt_or_begin", "fitem", "undef_list", "expr_value", "command_asgn", "mlhs", "command_call", "lhs", "mrhs", "mrhs_arg", "expr", "@2", "command_rhs", "var_lhs", "primary_value", "opt_call_args", "rbracket", "call_op", "backref", "opt_nl", "arg", "p_expr", "@3", "@4", "expr_value_do", "do", "def_name", "@5", "fname", "defn_head", "k_def", "defs_head", "singleton", "dot_or_colon", "@6", "command", "block_command", "block_call", "operation2", "command_args", "cmd_brace_block", "brace_body", "fcall", "@7", "operation", "k_return", "call_args", "mlhs_basic", "mlhs_inner", "rparen", "mlhs_head", "mlhs_item", "mlhs_node", "mlhs_post", "user_variable", "keyword_variable", "cname", "cpath", "op", "reswords", "symbol", "@8", "arg_rhs", "simple_numeric", "rel_expr", "f_opt_paren_args", "primary", "relop", "arg_value", "aref_args", "none", "args", "trailer", "assocs", "paren_args", "args_forward", "opt_paren_args", "opt_block_arg", "block_arg", "@9", "literal", "strings", "xstring", "regexp", "words", "qwords", "symbols", "qsymbols", "var_ref", "assoc_list", "brace_block", "method_call", "lambda", "then", "if_tail", "case_body", "p_case_body", "for_var", "k_class", "superclass", "term", "k_module", "f_arglist", "@10", "@11", "@12", "@13", "@14", "@15", "f_marg", "f_norm_arg", "f_margs", "f_marg_list", "f_rest_marg", "f_any_kwrest", "f_kwrest", "f_no_kwarg", "block_args_tail", "f_block_kwarg", "opt_f_block_arg", "f_block_arg", "opt_block_args_tail", "excessed_comma", "block_param", "f_arg", "f_block_optarg", "f_rest_arg", "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", "f_bad_arg", "f_larglist", "lambda_body", "@16", "@17", "f_args", "do_block", "@18", "@19", "do_body", "@20", "operation3", "@21", "@22", "@23", "@24", "@25", "cases", "p_top_expr", "p_cases", "@26", "@27", "p_top_expr_body", "p_args", "p_find", "p_args_tail", "p_kwargs", "p_as", "p_variable", "p_alt", "p_expr_basic", "p_lparen", "p_lbracket", "p_value", "p_const", "rbrace", "@28", "@29", "p_args_head", "p_arg", "p_args_post", "p_rest", "p_kwarg", "p_any_kwrest", "p_kw", "p_kw_label", "string_contents", "p_kwrest", "kwrest_mark", "p_kwnorest", "p_primitive", "p_var_ref", "exc_list", "exc_var", "numeric", "string", "string1", "xstring_contents", "regexp_contents", "word_list", "word", "string_content", "symbol_list", "qword_list", "qsym_list", "string_dvar", "@30", "ssym", "dsym", "@31", "f_paren_args", "args_tail", "@32", "f_kwarg", "opt_args_tail", "f_optarg", "f_arg_asgn", "f_arg_item", "f_label", "f_kw", "f_block_kw", "f_opt", "f_block_opt", "restarg_mark", "blkarg_mark", "assoc"]); - Opal.const_set($nesting[0], 'Racc_debug_parser', false); + $const_set($nesting[0], 'Racc_arg', [racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var]); + $const_set($nesting[0], 'Racc_token_to_s_table', ["$end", "error", "kCLASS", "kMODULE", "kDEF", "kUNDEF", "kBEGIN", "kRESCUE", "kENSURE", "kEND", "kIF", "kUNLESS", "kTHEN", "kELSIF", "kELSE", "kCASE", "kWHEN", "kWHILE", "kUNTIL", "kFOR", "kBREAK", "kNEXT", "kREDO", "kRETRY", "kIN", "kDO", "kDO_COND", "kDO_BLOCK", "kDO_LAMBDA", "kRETURN", "kYIELD", "kSUPER", "kSELF", "kNIL", "kTRUE", "kFALSE", "kAND", "kOR", "kNOT", "kIF_MOD", "kUNLESS_MOD", "kWHILE_MOD", "kUNTIL_MOD", "kRESCUE_MOD", "kALIAS", "kDEFINED", "klBEGIN", "klEND", "k__LINE__", "k__FILE__", "k__ENCODING__", "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tLABEL", "tCVAR", "tNTH_REF", "tBACK_REF", "tSTRING_CONTENT", "tINTEGER", "tFLOAT", "tUPLUS", "tUMINUS", "tUNARY_NUM", "tPOW", "tCMP", "tEQ", "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", "tDOT", "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN2", "tRPAREN", "tLPAREN_ARG", "tLBRACK", "tLBRACK2", "tRBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tSTAR2", "tAMPER", "tAMPER2", "tTILDE", "tPERCENT", "tDIVIDE", "tDSTAR", "tPLUS", "tMINUS", "tLT", "tGT", "tPIPE", "tBANG", "tCARET", "tLCURLY", "tRCURLY", "tBACK_REF2", "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tREGEXP_OPT", "tWORDS_BEG", "tQWORDS_BEG", "tSYMBOLS_BEG", "tQSYMBOLS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tSTRING_DEND", "tSTRING", "tSYMBOL", "tNL", "tEH", "tCOLON", "tCOMMA", "tSPACE", "tSEMI", "tLAMBDA", "tLAMBEG", "tCHARACTER", "tRATIONAL", "tIMAGINARY", "tLABEL_END", "tANDDOT", "tBDOT2", "tBDOT3", "tEQL", "tLOWEST", "$start", "program", "top_compstmt", "@1", "top_stmts", "opt_terms", "top_stmt", "terms", "stmt", "begin_block", "bodystmt", "compstmt", "opt_rescue", "opt_else", "opt_ensure", "stmts", "stmt_or_begin", "fitem", "undef_list", "expr_value", "command_asgn", "mlhs", "command_call", "lhs", "mrhs", "mrhs_arg", "expr", "@2", "command_rhs", "var_lhs", "primary_value", "opt_call_args", "rbracket", "call_op", "defn_head", "f_opt_paren_args", "command", "arg", "defs_head", "backref", "opt_nl", "p_top_expr_body", "@3", "@4", "expr_value_do", "do", "def_name", "@5", "fname", "k_def", "singleton", "dot_or_colon", "@6", "block_command", "block_call", "operation2", "command_args", "cmd_brace_block", "brace_body", "fcall", "@7", "operation", "k_return", "call_args", "mlhs_basic", "mlhs_inner", "rparen", "mlhs_head", "mlhs_item", "mlhs_node", "mlhs_post", "user_variable", "keyword_variable", "cname", "cpath", "op", "reswords", "symbol", "@8", "arg_rhs", "simple_numeric", "rel_expr", "primary", "relop", "@9", "arg_value", "aref_args", "none", "args", "trailer", "assocs", "paren_args", "args_forward", "opt_paren_args", "opt_block_arg", "block_arg", "@10", "literal", "strings", "xstring", "regexp", "words", "qwords", "symbols", "qsymbols", "var_ref", "assoc_list", "brace_block", "method_call", "lambda", "then", "if_tail", "case_body", "p_case_body", "for_var", "k_class", "superclass", "term", "k_module", "f_arglist", "@11", "@12", "@13", "@14", "@15", "@16", "@17", "f_marg", "f_norm_arg", "f_margs", "f_marg_list", "f_rest_marg", "f_any_kwrest", "f_kwrest", "f_no_kwarg", "f_eq", "block_args_tail", "@18", "f_block_kwarg", "opt_f_block_arg", "f_block_arg", "opt_block_args_tail", "excessed_comma", "block_param", "f_arg", "f_block_optarg", "f_rest_arg", "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", "f_bad_arg", "f_larglist", "lambda_body", "@19", "@20", "f_args", "do_block", "@21", "@22", "do_body", "@23", "operation3", "@24", "@25", "@26", "@27", "@28", "cases", "p_top_expr", "p_cases", "@29", "@30", "p_expr", "p_args", "p_find", "p_args_tail", "p_kwargs", "p_as", "p_variable", "p_alt", "p_expr_basic", "p_lparen", "p_lbracket", "p_value", "p_const", "rbrace", "@31", "@32", "p_args_head", "p_arg", "p_args_post", "p_rest", "p_kwarg", "p_any_kwrest", "p_kw", "p_kw_label", "string_contents", "p_kwrest", "kwrest_mark", "p_kwnorest", "p_primitive", "p_var_ref", "p_expr_ref", "nonlocal_var", "exc_list", "exc_var", "numeric", "string", "string1", "xstring_contents", "regexp_contents", "word_list", "word", "string_content", "symbol_list", "qword_list", "qsym_list", "string_dvar", "@33", "ssym", "dsym", "@34", "f_paren_args", "args_tail", "@35", "f_kwarg", "opt_args_tail", "f_optarg", "f_arg_asgn", "f_arg_item", "f_label", "f_kw", "f_block_kw", "f_opt", "f_block_opt", "restarg_mark", "blkarg_mark", "assoc"]); + $const_set($nesting[0], 'Racc_debug_parser', false); - Opal.def(self, '$_reduce_1', $Ruby30__reduce_1$16 = function $$_reduce_1(val, _values, result) { + $def(self, '$_reduce_1', function $$_reduce_1(val, _values, result) { var self = this; self.current_arg_stack.$push(nil); self.max_numparam_stack.$push($hash2(["static"], {"static": true})); return result; - }, $Ruby30__reduce_1$16.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_2', $Ruby30__reduce_2$17 = function $$_reduce_2(val, _values, result) { + $def(self, '$_reduce_2', function $$_reduce_2(val, _values, result) { var self = this; @@ -23269,246 +20358,234 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.current_arg_stack.$pop(); self.max_numparam_stack.$pop(); return result; - }, $Ruby30__reduce_2$17.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_3', $Ruby30__reduce_3$18 = function $$_reduce_3(val, _values, result) { + $def(self, '$_reduce_3', function $$_reduce_3(val, _values, result) { var self = this; result = self.builder.$compstmt(val['$[]'](0)); return result; - }, $Ruby30__reduce_3$18.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_4', $Ruby30__reduce_4$19 = function $$_reduce_4(val, _values, result) { - var self = this; - + $def(self, '$_reduce_4', function $$_reduce_4(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_4$19.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_5', $Ruby30__reduce_5$20 = function $$_reduce_5(val, _values, result) { - var self = this; - + $def(self, '$_reduce_5', function $$_reduce_5(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_5$20.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_6', $Ruby30__reduce_6$21 = function $$_reduce_6(val, _values, result) { - var self = this; - + $def(self, '$_reduce_6', function $$_reduce_6(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_6$21.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_7', $Ruby30__reduce_7$22 = function $$_reduce_7(val, _values, result) { - var self = this; - + $def(self, '$_reduce_7', function $$_reduce_7(val, _values, result) { + result = [val['$[]'](1)]; return result; - }, $Ruby30__reduce_7$22.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_9', $Ruby30__reduce_9$23 = function $$_reduce_9(val, _values, result) { + $def(self, '$_reduce_9', function $$_reduce_9(val, _values, result) { var self = this; - result = $send(self.builder, 'preexe', [val['$[]'](0)].concat(Opal.to_a(val['$[]'](1)))); + result = $send(self.builder, 'preexe', [val['$[]'](0)].concat($to_a(val['$[]'](1)))); return result; - }, $Ruby30__reduce_9$23.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_10', $Ruby30__reduce_10$24 = function $$_reduce_10(val, _values, result) { - var self = this; - + $def(self, '$_reduce_10', function $$_reduce_10(val, _values, result) { + result = val; return result; - }, $Ruby30__reduce_10$24.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_11', $Ruby30__reduce_11$25 = function $$_reduce_11(val, _values, result) { - var $a, $b, self = this, rescue_bodies = nil, else_t = nil, else_ = nil, ensure_t = nil, ensure_ = nil, $ret_or_4 = nil; + $def(self, '$_reduce_11', function $$_reduce_11(val, _values, result) { + var $a, $b, self = this, rescue_bodies = nil, else_t = nil, else_ = nil, ensure_t = nil, ensure_ = nil; rescue_bodies = val['$[]'](1); - $b = val['$[]'](2), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; - $b = val['$[]'](3), $a = Opal.to_ary($b), (ensure_t = ($a[0] == null ? nil : $a[0])), (ensure_ = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy((function() {if ($truthy(($ret_or_4 = rescue_bodies['$empty?']()))) { - return else_t['$nil?']()['$!']() - } else { - return $ret_or_4 - }; return nil; })())) { - self.$diagnostic("error", "useless_else", nil, else_t)}; + $b = val['$[]'](2), $a = $to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (ensure_t = ($a[0] == null ? nil : $a[0])), (ensure_ = ($a[1] == null ? nil : $a[1])), $b; + if (($truthy(rescue_bodies['$empty?']()) && ($not(else_t['$nil?']())))) { + self.$diagnostic("error", "useless_else", nil, else_t) + }; result = self.builder.$begin_body(val['$[]'](0), rescue_bodies, else_t, else_, ensure_t, ensure_); return result; - }, $Ruby30__reduce_11$25.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_12', $Ruby30__reduce_12$26 = function $$_reduce_12(val, _values, result) { + $def(self, '$_reduce_12', function $$_reduce_12(val, _values, result) { var self = this; result = self.builder.$compstmt(val['$[]'](0)); return result; - }, $Ruby30__reduce_12$26.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_13', $Ruby30__reduce_13$27 = function $$_reduce_13(val, _values, result) { - var self = this; - + $def(self, '$_reduce_13', function $$_reduce_13(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_13$27.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_14', $Ruby30__reduce_14$28 = function $$_reduce_14(val, _values, result) { - var self = this; - + $def(self, '$_reduce_14', function $$_reduce_14(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_14$28.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_15', $Ruby30__reduce_15$29 = function $$_reduce_15(val, _values, result) { - var self = this; - + $def(self, '$_reduce_15', function $$_reduce_15(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_15$29.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_16', $Ruby30__reduce_16$30 = function $$_reduce_16(val, _values, result) { - var self = this; - + $def(self, '$_reduce_16', function $$_reduce_16(val, _values, result) { + result = [val['$[]'](1)]; return result; - }, $Ruby30__reduce_16$30.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_18', $Ruby30__reduce_18$31 = function $$_reduce_18(val, _values, result) { + $def(self, '$_reduce_18', function $$_reduce_18(val, _values, result) { var self = this; self.$diagnostic("error", "begin_in_method", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_18$31.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_19', $Ruby30__reduce_19$32 = function $$_reduce_19(val, _values, result) { + $def(self, '$_reduce_19', function $$_reduce_19(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_19$32.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_20', $Ruby30__reduce_20$33 = function $$_reduce_20(val, _values, result) { + $def(self, '$_reduce_20', function $$_reduce_20(val, _values, result) { var self = this; result = self.builder.$alias(val['$[]'](0), val['$[]'](1), val['$[]'](3)); return result; - }, $Ruby30__reduce_20$33.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_21', $Ruby30__reduce_21$34 = function $$_reduce_21(val, _values, result) { + $def(self, '$_reduce_21', function $$_reduce_21(val, _values, result) { var self = this; result = self.builder.$alias(val['$[]'](0), self.builder.$gvar(val['$[]'](1)), self.builder.$gvar(val['$[]'](2))); return result; - }, $Ruby30__reduce_21$34.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_22', $Ruby30__reduce_22$35 = function $$_reduce_22(val, _values, result) { + $def(self, '$_reduce_22', function $$_reduce_22(val, _values, result) { var self = this; result = self.builder.$alias(val['$[]'](0), self.builder.$gvar(val['$[]'](1)), self.builder.$back_ref(val['$[]'](2))); return result; - }, $Ruby30__reduce_22$35.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_23', $Ruby30__reduce_23$36 = function $$_reduce_23(val, _values, result) { + $def(self, '$_reduce_23', function $$_reduce_23(val, _values, result) { var self = this; self.$diagnostic("error", "nth_ref_alias", nil, val['$[]'](2)); return result; - }, $Ruby30__reduce_23$36.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_24', $Ruby30__reduce_24$37 = function $$_reduce_24(val, _values, result) { + $def(self, '$_reduce_24', function $$_reduce_24(val, _values, result) { var self = this; result = self.builder.$undef_method(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_24$37.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_25', $Ruby30__reduce_25$38 = function $$_reduce_25(val, _values, result) { + $def(self, '$_reduce_25', function $$_reduce_25(val, _values, result) { var self = this; result = self.builder.$condition_mod(val['$[]'](0), nil, val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_25$38.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_26', $Ruby30__reduce_26$39 = function $$_reduce_26(val, _values, result) { + $def(self, '$_reduce_26', function $$_reduce_26(val, _values, result) { var self = this; result = self.builder.$condition_mod(nil, val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_26$39.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_27', $Ruby30__reduce_27$40 = function $$_reduce_27(val, _values, result) { + $def(self, '$_reduce_27', function $$_reduce_27(val, _values, result) { var self = this; result = self.builder.$loop_mod("while", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_27$40.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_28', $Ruby30__reduce_28$41 = function $$_reduce_28(val, _values, result) { + $def(self, '$_reduce_28', function $$_reduce_28(val, _values, result) { var self = this; result = self.builder.$loop_mod("until", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_28$41.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_29', $Ruby30__reduce_29$42 = function $$_reduce_29(val, _values, result) { + $def(self, '$_reduce_29', function $$_reduce_29(val, _values, result) { var self = this, rescue_body = nil; rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); return result; - }, $Ruby30__reduce_29$42.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_30', $Ruby30__reduce_30$43 = function $$_reduce_30(val, _values, result) { + $def(self, '$_reduce_30', function $$_reduce_30(val, _values, result) { var self = this; result = self.builder.$postexe(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_30$43.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_32', $Ruby30__reduce_32$44 = function $$_reduce_32(val, _values, result) { + $def(self, '$_reduce_32', function $$_reduce_32(val, _values, result) { var self = this; result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_32$44.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_33', $Ruby30__reduce_33$45 = function $$_reduce_33(val, _values, result) { + $def(self, '$_reduce_33', function $$_reduce_33(val, _values, result) { var self = this; result = self.builder.$assign(val['$[]'](0), val['$[]'](1), self.builder.$array(nil, val['$[]'](2), nil)); return result; - }, $Ruby30__reduce_33$45.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_34', $Ruby30__reduce_34$46 = function $$_reduce_34(val, _values, result) { + $def(self, '$_reduce_34', function $$_reduce_34(val, _values, result) { var self = this, rescue_body = nil, begin_body = nil; @@ -23516,208 +20593,276 @@ Opal.modules["parser/ruby30"] = function(Opal) { begin_body = self.builder.$begin_body(val['$[]'](2), [rescue_body]); result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), begin_body); return result; - }, $Ruby30__reduce_34$46.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_35', $Ruby30__reduce_35$47 = function $$_reduce_35(val, _values, result) { + $def(self, '$_reduce_35', function $$_reduce_35(val, _values, result) { var self = this; result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_35$47.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_37', $Ruby30__reduce_37$48 = function $$_reduce_37(val, _values, result) { + $def(self, '$_reduce_37', function $$_reduce_37(val, _values, result) { var self = this; result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_37$48.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_38', $Ruby30__reduce_38$49 = function $$_reduce_38(val, _values, result) { + $def(self, '$_reduce_38', function $$_reduce_38(val, _values, result) { var self = this; result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_38$49.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_39', $Ruby30__reduce_39$50 = function $$_reduce_39(val, _values, result) { + $def(self, '$_reduce_39', function $$_reduce_39(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)), val['$[]'](4), val['$[]'](5)); return result; - }, $Ruby30__reduce_39$50.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_40', $Ruby30__reduce_40$51 = function $$_reduce_40(val, _values, result) { + $def(self, '$_reduce_40', function $$_reduce_40(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_40$51.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_41', $Ruby30__reduce_41$52 = function $$_reduce_41(val, _values, result) { + $def(self, '$_reduce_41', function $$_reduce_41(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_41$52.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_42', $Ruby30__reduce_42$53 = function $$_reduce_42(val, _values, result) { + $def(self, '$_reduce_42', function $$_reduce_42(val, _values, result) { var self = this, const$ = nil; const$ = self.builder.$const_op_assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); result = self.builder.$op_assign(const$, val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_42$53.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_43', $Ruby30__reduce_43$54 = function $$_reduce_43(val, _values, result) { + $def(self, '$_reduce_43', function $$_reduce_43(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_43$54.$$arity = 3); + }, 3); + + $def(self, '$_reduce_44', function $$_reduce_44(val, _values, result) { + var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, $writer = nil; + + + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + self.$endless_method_name(name_t); + result = self.builder.$def_endless_method(def_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); + self.$local_pop(); + self.current_arg_stack.$pop(); + + $writer = [ctx.$in_def()]; + $send(self.context, 'in_def=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_45', function $$_reduce_45(val, _values, result) { + var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, rescue_body = nil, method_body = nil, $writer = nil; + + + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + self.$endless_method_name(name_t); + rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); + method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); + result = self.builder.$def_endless_method(def_t, name_t, val['$[]'](1), val['$[]'](2), method_body); + self.$local_pop(); + self.current_arg_stack.$pop(); + + $writer = [ctx.$in_def()]; + $send(self.context, 'in_def=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_46', function $$_reduce_46(val, _values, result) { + var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, $writer = nil; + + + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + self.$endless_method_name(name_t); + result = self.builder.$def_endless_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); + self.$local_pop(); + self.current_arg_stack.$pop(); + + $writer = [ctx.$in_def()]; + $send(self.context, 'in_def=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_47', function $$_reduce_47(val, _values, result) { + var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, rescue_body = nil, method_body = nil, $writer = nil; + + + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + self.$endless_method_name(name_t); + rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); + method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); + result = self.builder.$def_endless_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), method_body); + self.$local_pop(); + self.current_arg_stack.$pop(); + + $writer = [ctx.$in_def()]; + $send(self.context, 'in_def=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); - Opal.def(self, '$_reduce_44', $Ruby30__reduce_44$55 = function $$_reduce_44(val, _values, result) { + $def(self, '$_reduce_48', function $$_reduce_48(val, _values, result) { var self = this; self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_44$55.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_46', $Ruby30__reduce_46$56 = function $$_reduce_46(val, _values, result) { + $def(self, '$_reduce_50', function $$_reduce_50(val, _values, result) { var self = this, rescue_body = nil; rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); return result; - }, $Ruby30__reduce_46$56.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_49', $Ruby30__reduce_49$57 = function $$_reduce_49(val, _values, result) { + $def(self, '$_reduce_53', function $$_reduce_53(val, _values, result) { var self = this; result = self.builder.$logical_op("and", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_49$57.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_50', $Ruby30__reduce_50$58 = function $$_reduce_50(val, _values, result) { + $def(self, '$_reduce_54', function $$_reduce_54(val, _values, result) { var self = this; result = self.builder.$logical_op("or", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_50$58.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_51', $Ruby30__reduce_51$59 = function $$_reduce_51(val, _values, result) { + $def(self, '$_reduce_55', function $$_reduce_55(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](2), nil); return result; - }, $Ruby30__reduce_51$59.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_52', $Ruby30__reduce_52$60 = function $$_reduce_52(val, _values, result) { + $def(self, '$_reduce_56', function $$_reduce_56(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_52$60.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_53', $Ruby30__reduce_53$61 = function $$_reduce_53(val, _values, result) { + $def(self, '$_reduce_57', function $$_reduce_57(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_beg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $send(self.lexer, 'command_start=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.pattern_variables.$push(); result = self.context.$in_kwarg(); $writer = [true]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_53$61.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_54', $Ruby30__reduce_54$62 = function $$_reduce_54(val, _values, result) { + $def(self, '$_reduce_58', function $$_reduce_58(val, _values, result) { var self = this, $writer = nil; self.pattern_variables.$pop(); $writer = [val['$[]'](2)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$match_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](3)); return result; - }, $Ruby30__reduce_54$62.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_55', $Ruby30__reduce_55$63 = function $$_reduce_55(val, _values, result) { + $def(self, '$_reduce_59', function $$_reduce_59(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_beg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $send(self.lexer, 'command_start=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.pattern_variables.$push(); result = self.context.$in_kwarg(); $writer = [true]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_55$63.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_56', $Ruby30__reduce_56$64 = function $$_reduce_56(val, _values, result) { + $def(self, '$_reduce_60', function $$_reduce_60(val, _values, result) { var self = this, $writer = nil; self.pattern_variables.$pop(); $writer = [val['$[]'](2)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$match_pattern_p(val['$[]'](0), val['$[]'](1), val['$[]'](3)); return result; - }, $Ruby30__reduce_56$64.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_59', $Ruby30__reduce_59$65 = function $$_reduce_59(val, _values, result) { + $def(self, '$_reduce_63', function $$_reduce_63(val, _values, result) { var self = this; self.lexer.$cond().$push(true); return result; - }, $Ruby30__reduce_59$65.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_60', $Ruby30__reduce_60$66 = function $$_reduce_60(val, _values, result) { + $def(self, '$_reduce_64', function $$_reduce_64(val, _values, result) { var self = this; self.lexer.$cond().$pop(); result = [val['$[]'](1), val['$[]'](2)]; return result; - }, $Ruby30__reduce_60$66.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_61', $Ruby30__reduce_61$67 = function $$_reduce_61(val, _values, result) { + $def(self, '$_reduce_65', function $$_reduce_65(val, _values, result) { var self = this, $writer = nil; @@ -23726,1052 +20871,1057 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = [val['$[]'](0), self.context.$dup()]; $writer = [true]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_61$67.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_62', $Ruby30__reduce_62$68 = function $$_reduce_62(val, _values, result) { - var self = this; - + $def(self, '$_reduce_66', function $$_reduce_66(val, _values, result) { + result = [val['$[]'](0), val['$[]'](1)]; return result; - }, $Ruby30__reduce_62$68.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_63', $Ruby30__reduce_63$69 = function $$_reduce_63(val, _values, result) { + $def(self, '$_reduce_67', function $$_reduce_67(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_63$69.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_64', $Ruby30__reduce_64$70 = function $$_reduce_64(val, _values, result) { - var self = this; - + $def(self, '$_reduce_68', function $$_reduce_68(val, _values, result) { + result = [val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4)]; return result; - }, $Ruby30__reduce_64$70.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_68', $Ruby30__reduce_68$71 = function $$_reduce_68(val, _values, result) { + $def(self, '$_reduce_72', function $$_reduce_72(val, _values, result) { var self = this; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); return result; - }, $Ruby30__reduce_68$71.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_69', $Ruby30__reduce_69$72 = function $$_reduce_69(val, _values, result) { + $def(self, '$_reduce_73', function $$_reduce_73(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_69$72.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_70', $Ruby30__reduce_70$73 = function $$_reduce_70(val, _values, result) { + $def(self, '$_reduce_74', function $$_reduce_74(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); $writer = [val['$[]'](1).$in_block()]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3)]); return result; - }, $Ruby30__reduce_70$73.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_72', $Ruby30__reduce_72$74 = function $$_reduce_72(val, _values, result) { + $def(self, '$_reduce_76', function $$_reduce_76(val, _values, result) { var self = this; result = self.builder.$call_method(nil, nil, val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_72$74.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_73', $Ruby30__reduce_73$75 = function $$_reduce_73(val, _values, result) { + $def(self, '$_reduce_77', function $$_reduce_77(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(nil, nil, val['$[]'](0), nil, val['$[]'](1), nil); - $b = val['$[]'](2), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](2), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_73$75.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_74', $Ruby30__reduce_74$76 = function $$_reduce_74(val, _values, result) { + $def(self, '$_reduce_78', function $$_reduce_78(val, _values, result) { var self = this; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); return result; - }, $Ruby30__reduce_74$76.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_75', $Ruby30__reduce_75$77 = function $$_reduce_75(val, _values, result) { + $def(self, '$_reduce_79', function $$_reduce_79(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_75$77.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_76', $Ruby30__reduce_76$78 = function $$_reduce_76(val, _values, result) { + $def(self, '$_reduce_80', function $$_reduce_80(val, _values, result) { var self = this; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); return result; - }, $Ruby30__reduce_76$78.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_77', $Ruby30__reduce_77$79 = function $$_reduce_77(val, _values, result) { + $def(self, '$_reduce_81', function $$_reduce_81(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_77$79.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_78', $Ruby30__reduce_78$80 = function $$_reduce_78(val, _values, result) { + $def(self, '$_reduce_82', function $$_reduce_82(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("super", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_78$80.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_79', $Ruby30__reduce_79$81 = function $$_reduce_79(val, _values, result) { + $def(self, '$_reduce_83', function $$_reduce_83(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("yield", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_79$81.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_80', $Ruby30__reduce_80$82 = function $$_reduce_80(val, _values, result) { + $def(self, '$_reduce_84', function $$_reduce_84(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("return", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_80$82.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_81', $Ruby30__reduce_81$83 = function $$_reduce_81(val, _values, result) { + $def(self, '$_reduce_85', function $$_reduce_85(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("break", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_81$83.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_82', $Ruby30__reduce_82$84 = function $$_reduce_82(val, _values, result) { + $def(self, '$_reduce_86', function $$_reduce_86(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("next", val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_82$84.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_83', $Ruby30__reduce_83$85 = function $$_reduce_83(val, _values, result) { + $def(self, '$_reduce_87', function $$_reduce_87(val, _values, result) { var self = this; result = self.builder.$multi_lhs(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_83$85.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_84', $Ruby30__reduce_84$86 = function $$_reduce_84(val, _values, result) { + $def(self, '$_reduce_88', function $$_reduce_88(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_84$86.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_85', $Ruby30__reduce_85$87 = function $$_reduce_85(val, _values, result) { + $def(self, '$_reduce_89', function $$_reduce_89(val, _values, result) { var self = this; result = self.builder.$multi_lhs(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_85$87.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_86', $Ruby30__reduce_86$88 = function $$_reduce_86(val, _values, result) { + $def(self, '$_reduce_90', function $$_reduce_90(val, _values, result) { var self = this; result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_86$88.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_88', $Ruby30__reduce_88$89 = function $$_reduce_88(val, _values, result) { - var self = this; - + $def(self, '$_reduce_92', function $$_reduce_92(val, _values, result) { + result = val['$[]'](0).$push(val['$[]'](1)); return result; - }, $Ruby30__reduce_88$89.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_89', $Ruby30__reduce_89$90 = function $$_reduce_89(val, _values, result) { + $def(self, '$_reduce_93', function $$_reduce_93(val, _values, result) { var self = this; result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1), val['$[]'](2))); return result; - }, $Ruby30__reduce_89$90.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_90', $Ruby30__reduce_90$91 = function $$_reduce_90(val, _values, result) { + $def(self, '$_reduce_94', function $$_reduce_94(val, _values, result) { var self = this; result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1), val['$[]'](2))).$concat(val['$[]'](4)); return result; - }, $Ruby30__reduce_90$91.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_91', $Ruby30__reduce_91$92 = function $$_reduce_91(val, _values, result) { + $def(self, '$_reduce_95', function $$_reduce_95(val, _values, result) { var self = this; result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1))); return result; - }, $Ruby30__reduce_91$92.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_92', $Ruby30__reduce_92$93 = function $$_reduce_92(val, _values, result) { + $def(self, '$_reduce_96', function $$_reduce_96(val, _values, result) { var self = this; result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1))).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_92$93.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_93', $Ruby30__reduce_93$94 = function $$_reduce_93(val, _values, result) { + $def(self, '$_reduce_97', function $$_reduce_97(val, _values, result) { var self = this; result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_93$94.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_94', $Ruby30__reduce_94$95 = function $$_reduce_94(val, _values, result) { + $def(self, '$_reduce_98', function $$_reduce_98(val, _values, result) { var self = this; - result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))].concat(Opal.to_a(val['$[]'](3))); + result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))].concat($to_a(val['$[]'](3))); return result; - }, $Ruby30__reduce_94$95.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_95', $Ruby30__reduce_95$96 = function $$_reduce_95(val, _values, result) { + $def(self, '$_reduce_99', function $$_reduce_99(val, _values, result) { var self = this; result = [self.builder.$splat(val['$[]'](0))]; return result; - }, $Ruby30__reduce_95$96.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_96', $Ruby30__reduce_96$97 = function $$_reduce_96(val, _values, result) { + $def(self, '$_reduce_100', function $$_reduce_100(val, _values, result) { var self = this; - result = [self.builder.$splat(val['$[]'](0))].concat(Opal.to_a(val['$[]'](2))); + result = [self.builder.$splat(val['$[]'](0))].concat($to_a(val['$[]'](2))); return result; - }, $Ruby30__reduce_96$97.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_98', $Ruby30__reduce_98$98 = function $$_reduce_98(val, _values, result) { + $def(self, '$_reduce_102', function $$_reduce_102(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_98$98.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_99', $Ruby30__reduce_99$99 = function $$_reduce_99(val, _values, result) { - var self = this; - + $def(self, '$_reduce_103', function $$_reduce_103(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_99$99.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_100', $Ruby30__reduce_100$100 = function $$_reduce_100(val, _values, result) { - var self = this; - + $def(self, '$_reduce_104', function $$_reduce_104(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_100$100.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_101', $Ruby30__reduce_101$101 = function $$_reduce_101(val, _values, result) { - var self = this; - + $def(self, '$_reduce_105', function $$_reduce_105(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_101$101.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_102', $Ruby30__reduce_102$102 = function $$_reduce_102(val, _values, result) { - var self = this; - + $def(self, '$_reduce_106', function $$_reduce_106(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_102$102.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_103', $Ruby30__reduce_103$103 = function $$_reduce_103(val, _values, result) { + $def(self, '$_reduce_107', function $$_reduce_107(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_103$103.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_104', $Ruby30__reduce_104$104 = function $$_reduce_104(val, _values, result) { + $def(self, '$_reduce_108', function $$_reduce_108(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_104$104.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_105', $Ruby30__reduce_105$105 = function $$_reduce_105(val, _values, result) { + $def(self, '$_reduce_109', function $$_reduce_109(val, _values, result) { var self = this; result = self.builder.$index_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_105$105.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_106', $Ruby30__reduce_106$106 = function $$_reduce_106(val, _values, result) { + $def(self, '$_reduce_110', function $$_reduce_110(val, _values, result) { var self = this; - if ($truthy(val['$[]'](1)['$[]'](0)['$==']("anddot"))) { - self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1))}; + if ($eqeq(val['$[]'](1)['$[]'](0), "anddot")) { + self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1)) + }; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_106$106.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_107', $Ruby30__reduce_107$107 = function $$_reduce_107(val, _values, result) { + $def(self, '$_reduce_111', function $$_reduce_111(val, _values, result) { var self = this; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_107$107.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_108', $Ruby30__reduce_108$108 = function $$_reduce_108(val, _values, result) { + $def(self, '$_reduce_112', function $$_reduce_112(val, _values, result) { var self = this; - if ($truthy(val['$[]'](1)['$[]'](0)['$==']("anddot"))) { - self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1))}; + if ($eqeq(val['$[]'](1)['$[]'](0), "anddot")) { + self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1)) + }; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_108$108.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_109', $Ruby30__reduce_109$109 = function $$_reduce_109(val, _values, result) { + $def(self, '$_reduce_113', function $$_reduce_113(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); return result; - }, $Ruby30__reduce_109$109.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_110', $Ruby30__reduce_110$110 = function $$_reduce_110(val, _values, result) { + $def(self, '$_reduce_114', function $$_reduce_114(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); return result; - }, $Ruby30__reduce_110$110.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_111', $Ruby30__reduce_111$111 = function $$_reduce_111(val, _values, result) { + $def(self, '$_reduce_115', function $$_reduce_115(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_111$111.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_112', $Ruby30__reduce_112$112 = function $$_reduce_112(val, _values, result) { + $def(self, '$_reduce_116', function $$_reduce_116(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_112$112.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_113', $Ruby30__reduce_113$113 = function $$_reduce_113(val, _values, result) { + $def(self, '$_reduce_117', function $$_reduce_117(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_113$113.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_114', $Ruby30__reduce_114$114 = function $$_reduce_114(val, _values, result) { + $def(self, '$_reduce_118', function $$_reduce_118(val, _values, result) { var self = this; result = self.builder.$index_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_114$114.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_115', $Ruby30__reduce_115$115 = function $$_reduce_115(val, _values, result) { + $def(self, '$_reduce_119', function $$_reduce_119(val, _values, result) { var self = this; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_115$115.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_116', $Ruby30__reduce_116$116 = function $$_reduce_116(val, _values, result) { + $def(self, '$_reduce_120', function $$_reduce_120(val, _values, result) { var self = this; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_116$116.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_117', $Ruby30__reduce_117$117 = function $$_reduce_117(val, _values, result) { + $def(self, '$_reduce_121', function $$_reduce_121(val, _values, result) { var self = this; result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_117$117.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_118', $Ruby30__reduce_118$118 = function $$_reduce_118(val, _values, result) { + $def(self, '$_reduce_122', function $$_reduce_122(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); return result; - }, $Ruby30__reduce_118$118.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_119', $Ruby30__reduce_119$119 = function $$_reduce_119(val, _values, result) { + $def(self, '$_reduce_123', function $$_reduce_123(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); return result; - }, $Ruby30__reduce_119$119.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_120', $Ruby30__reduce_120$120 = function $$_reduce_120(val, _values, result) { + $def(self, '$_reduce_124', function $$_reduce_124(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_120$120.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_121', $Ruby30__reduce_121$121 = function $$_reduce_121(val, _values, result) { + $def(self, '$_reduce_125', function $$_reduce_125(val, _values, result) { var self = this; self.$diagnostic("error", "module_name_const", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_121$121.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_123', $Ruby30__reduce_123$122 = function $$_reduce_123(val, _values, result) { + $def(self, '$_reduce_127', function $$_reduce_127(val, _values, result) { var self = this; result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_123$122.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_124', $Ruby30__reduce_124$123 = function $$_reduce_124(val, _values, result) { + $def(self, '$_reduce_128', function $$_reduce_128(val, _values, result) { var self = this; result = self.builder.$const(val['$[]'](0)); return result; - }, $Ruby30__reduce_124$123.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_125', $Ruby30__reduce_125$124 = function $$_reduce_125(val, _values, result) { + $def(self, '$_reduce_129', function $$_reduce_129(val, _values, result) { var self = this; result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_125$124.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_131', $Ruby30__reduce_131$125 = function $$_reduce_131(val, _values, result) { + $def(self, '$_reduce_135', function $$_reduce_135(val, _values, result) { var self = this; result = self.builder.$symbol_internal(val['$[]'](0)); return result; - }, $Ruby30__reduce_131$125.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_133', $Ruby30__reduce_133$126 = function $$_reduce_133(val, _values, result) { - var self = this; - + $def(self, '$_reduce_137', function $$_reduce_137(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_133$126.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_134', $Ruby30__reduce_134$127 = function $$_reduce_134(val, _values, result) { + $def(self, '$_reduce_138', function $$_reduce_138(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_134$127.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_135', $Ruby30__reduce_135$128 = function $$_reduce_135(val, _values, result) { - var self = this; - + $def(self, '$_reduce_139', function $$_reduce_139(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](3)); return result; - }, $Ruby30__reduce_135$128.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_207', $Ruby30__reduce_207$129 = function $$_reduce_207(val, _values, result) { + $def(self, '$_reduce_211', function $$_reduce_211(val, _values, result) { var self = this; result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_207$129.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_208', $Ruby30__reduce_208$130 = function $$_reduce_208(val, _values, result) { + $def(self, '$_reduce_212', function $$_reduce_212(val, _values, result) { var self = this; result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_208$130.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_209', $Ruby30__reduce_209$131 = function $$_reduce_209(val, _values, result) { + $def(self, '$_reduce_213', function $$_reduce_213(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)), val['$[]'](4), val['$[]'](5)); return result; - }, $Ruby30__reduce_209$131.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_210', $Ruby30__reduce_210$132 = function $$_reduce_210(val, _values, result) { + $def(self, '$_reduce_214', function $$_reduce_214(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_210$132.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_211', $Ruby30__reduce_211$133 = function $$_reduce_211(val, _values, result) { + $def(self, '$_reduce_215', function $$_reduce_215(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_211$133.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_212', $Ruby30__reduce_212$134 = function $$_reduce_212(val, _values, result) { + $def(self, '$_reduce_216', function $$_reduce_216(val, _values, result) { var self = this; result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_212$134.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_213', $Ruby30__reduce_213$135 = function $$_reduce_213(val, _values, result) { + $def(self, '$_reduce_217', function $$_reduce_217(val, _values, result) { var self = this, const$ = nil; const$ = self.builder.$const_op_assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); result = self.builder.$op_assign(const$, val['$[]'](3), val['$[]'](4)); return result; - }, $Ruby30__reduce_213$135.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_214', $Ruby30__reduce_214$136 = function $$_reduce_214(val, _values, result) { + $def(self, '$_reduce_218', function $$_reduce_218(val, _values, result) { var self = this, const$ = nil; const$ = self.builder.$const_op_assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); result = self.builder.$op_assign(const$, val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_214$136.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_215', $Ruby30__reduce_215$137 = function $$_reduce_215(val, _values, result) { + $def(self, '$_reduce_219', function $$_reduce_219(val, _values, result) { var self = this; result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_215$137.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_216', $Ruby30__reduce_216$138 = function $$_reduce_216(val, _values, result) { + $def(self, '$_reduce_220', function $$_reduce_220(val, _values, result) { var self = this; result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_216$138.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_217', $Ruby30__reduce_217$139 = function $$_reduce_217(val, _values, result) { + $def(self, '$_reduce_221', function $$_reduce_221(val, _values, result) { var self = this; result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_217$139.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_218', $Ruby30__reduce_218$140 = function $$_reduce_218(val, _values, result) { + $def(self, '$_reduce_222', function $$_reduce_222(val, _values, result) { var self = this; result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), nil); return result; - }, $Ruby30__reduce_218$140.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_219', $Ruby30__reduce_219$141 = function $$_reduce_219(val, _values, result) { + $def(self, '$_reduce_223', function $$_reduce_223(val, _values, result) { var self = this; result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), nil); return result; - }, $Ruby30__reduce_219$141.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_220', $Ruby30__reduce_220$142 = function $$_reduce_220(val, _values, result) { + $def(self, '$_reduce_224', function $$_reduce_224(val, _values, result) { var self = this; result = self.builder.$range_inclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_220$142.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_221', $Ruby30__reduce_221$143 = function $$_reduce_221(val, _values, result) { + $def(self, '$_reduce_225', function $$_reduce_225(val, _values, result) { var self = this; result = self.builder.$range_exclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_221$143.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_222', $Ruby30__reduce_222$144 = function $$_reduce_222(val, _values, result) { + $def(self, '$_reduce_226', function $$_reduce_226(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_222$144.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_223', $Ruby30__reduce_223$145 = function $$_reduce_223(val, _values, result) { + $def(self, '$_reduce_227', function $$_reduce_227(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_223$145.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_224', $Ruby30__reduce_224$146 = function $$_reduce_224(val, _values, result) { + $def(self, '$_reduce_228', function $$_reduce_228(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_224$146.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_225', $Ruby30__reduce_225$147 = function $$_reduce_225(val, _values, result) { + $def(self, '$_reduce_229', function $$_reduce_229(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_225$147.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_226', $Ruby30__reduce_226$148 = function $$_reduce_226(val, _values, result) { + $def(self, '$_reduce_230', function $$_reduce_230(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_226$148.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_227', $Ruby30__reduce_227$149 = function $$_reduce_227(val, _values, result) { + $def(self, '$_reduce_231', function $$_reduce_231(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_227$149.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_228', $Ruby30__reduce_228$150 = function $$_reduce_228(val, _values, result) { + $def(self, '$_reduce_232', function $$_reduce_232(val, _values, result) { var self = this; result = self.builder.$unary_op(val['$[]'](0), self.builder.$binary_op(val['$[]'](1), val['$[]'](2), val['$[]'](3))); return result; - }, $Ruby30__reduce_228$150.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_229', $Ruby30__reduce_229$151 = function $$_reduce_229(val, _values, result) { + $def(self, '$_reduce_233', function $$_reduce_233(val, _values, result) { var self = this; result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_229$151.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_230', $Ruby30__reduce_230$152 = function $$_reduce_230(val, _values, result) { + $def(self, '$_reduce_234', function $$_reduce_234(val, _values, result) { var self = this; result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_230$152.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_231', $Ruby30__reduce_231$153 = function $$_reduce_231(val, _values, result) { + $def(self, '$_reduce_235', function $$_reduce_235(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_231$153.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_232', $Ruby30__reduce_232$154 = function $$_reduce_232(val, _values, result) { + $def(self, '$_reduce_236', function $$_reduce_236(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_232$154.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_233', $Ruby30__reduce_233$155 = function $$_reduce_233(val, _values, result) { + $def(self, '$_reduce_237', function $$_reduce_237(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_233$155.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_234', $Ruby30__reduce_234$156 = function $$_reduce_234(val, _values, result) { + $def(self, '$_reduce_238', function $$_reduce_238(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_234$156.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_236', $Ruby30__reduce_236$157 = function $$_reduce_236(val, _values, result) { + $def(self, '$_reduce_240', function $$_reduce_240(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_236$157.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_237', $Ruby30__reduce_237$158 = function $$_reduce_237(val, _values, result) { + $def(self, '$_reduce_241', function $$_reduce_241(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_237$158.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_238', $Ruby30__reduce_238$159 = function $$_reduce_238(val, _values, result) { + $def(self, '$_reduce_242', function $$_reduce_242(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_238$159.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_239', $Ruby30__reduce_239$160 = function $$_reduce_239(val, _values, result) { + $def(self, '$_reduce_243', function $$_reduce_243(val, _values, result) { var self = this; result = self.builder.$match_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_239$160.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_240', $Ruby30__reduce_240$161 = function $$_reduce_240(val, _values, result) { + $def(self, '$_reduce_244', function $$_reduce_244(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_240$161.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_241', $Ruby30__reduce_241$162 = function $$_reduce_241(val, _values, result) { + $def(self, '$_reduce_245', function $$_reduce_245(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_241$162.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_242', $Ruby30__reduce_242$163 = function $$_reduce_242(val, _values, result) { + $def(self, '$_reduce_246', function $$_reduce_246(val, _values, result) { var self = this; result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_242$163.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_243', $Ruby30__reduce_243$164 = function $$_reduce_243(val, _values, result) { + $def(self, '$_reduce_247', function $$_reduce_247(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_243$164.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_244', $Ruby30__reduce_244$165 = function $$_reduce_244(val, _values, result) { + $def(self, '$_reduce_248', function $$_reduce_248(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_244$165.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_245', $Ruby30__reduce_245$166 = function $$_reduce_245(val, _values, result) { + $def(self, '$_reduce_249', function $$_reduce_249(val, _values, result) { var self = this; result = self.builder.$logical_op("and", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_245$166.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_246', $Ruby30__reduce_246$167 = function $$_reduce_246(val, _values, result) { + $def(self, '$_reduce_250', function $$_reduce_250(val, _values, result) { var self = this; result = self.builder.$logical_op("or", val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_246$167.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_247', $Ruby30__reduce_247$168 = function $$_reduce_247(val, _values, result) { - var self = this; + $def(self, '$_reduce_251', function $$_reduce_251(val, _values, result) { + var self = this, $writer = nil; + + + + $writer = [true]; + $send(self.context, 'in_defined=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_252', function $$_reduce_252(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$keyword_cmd("defined?", val['$[]'](0), nil, [val['$[]'](2)], nil); + + $writer = [false]; + $send(self.context, 'in_defined=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$keyword_cmd("defined?", val['$[]'](0), nil, [val['$[]'](3)], nil); return result; - }, $Ruby30__reduce_247$168.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_248', $Ruby30__reduce_248$169 = function $$_reduce_248(val, _values, result) { + $def(self, '$_reduce_253', function $$_reduce_253(val, _values, result) { var self = this; result = self.builder.$ternary(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4), val['$[]'](5)); return result; - }, $Ruby30__reduce_248$169.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_249', $Ruby30__reduce_249$170 = function $$_reduce_249(val, _values, result) { + $def(self, '$_reduce_254', function $$_reduce_254(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = Opal.to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; self.$endless_method_name(name_t); result = self.builder.$def_endless_method(def_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_249$170.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_250', $Ruby30__reduce_250$171 = function $$_reduce_250(val, _values, result) { + $def(self, '$_reduce_255', function $$_reduce_255(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, rescue_body = nil, method_body = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = Opal.to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; self.$endless_method_name(name_t); rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); result = self.builder.$def_endless_method(def_t, name_t, val['$[]'](1), val['$[]'](2), method_body); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_250$171.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_251', $Ruby30__reduce_251$172 = function $$_reduce_251(val, _values, result) { + $def(self, '$_reduce_256', function $$_reduce_256(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = Opal.to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; self.$endless_method_name(name_t); result = self.builder.$def_endless_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_251$172.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_252', $Ruby30__reduce_252$173 = function $$_reduce_252(val, _values, result) { + $def(self, '$_reduce_257', function $$_reduce_257(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, rescue_body = nil, method_body = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = Opal.to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; self.$endless_method_name(name_t); rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); result = self.builder.$def_endless_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), method_body); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_252$173.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_258', $Ruby30__reduce_258$174 = function $$_reduce_258(val, _values, result) { + $def(self, '$_reduce_263', function $$_reduce_263(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_258$174.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_259', $Ruby30__reduce_259$175 = function $$_reduce_259(val, _values, result) { + $def(self, '$_reduce_264', function $$_reduce_264(val, _values, result) { var self = this; result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_259$175.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_263', $Ruby30__reduce_263$176 = function $$_reduce_263(val, _values, result) { + $def(self, '$_reduce_268', function $$_reduce_268(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$associate(nil, val['$[]'](2), nil)); return result; - }, $Ruby30__reduce_263$176.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_264', $Ruby30__reduce_264$177 = function $$_reduce_264(val, _values, result) { + $def(self, '$_reduce_269', function $$_reduce_269(val, _values, result) { var self = this; result = [self.builder.$associate(nil, val['$[]'](0), nil)]; return result; - }, $Ruby30__reduce_264$177.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_266', $Ruby30__reduce_266$178 = function $$_reduce_266(val, _values, result) { + $def(self, '$_reduce_271', function $$_reduce_271(val, _values, result) { var self = this, rescue_body = nil; rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); return result; - }, $Ruby30__reduce_266$178.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_267', $Ruby30__reduce_267$179 = function $$_reduce_267(val, _values, result) { - var self = this; - + $def(self, '$_reduce_272', function $$_reduce_272(val, _values, result) { + result = val; return result; - }, $Ruby30__reduce_267$179.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_268', $Ruby30__reduce_268$180 = function $$_reduce_268(val, _values, result) { + $def(self, '$_reduce_273', function $$_reduce_273(val, _values, result) { var self = this; - if ($truthy(self.static_env['$declared_forward_args?']())) { - } else { + if (!$truthy(self.static_env['$declared_forward_args?']())) { self.$diagnostic("error", "unexpected_token", $hash2(["token"], {"token": "tBDOT3"}), val['$[]'](3)) }; - result = [val['$[]'](0), [].concat(Opal.to_a(val['$[]'](1))).concat([self.builder.$forwarded_args(val['$[]'](3))]), val['$[]'](4)]; + result = [val['$[]'](0), [].concat($to_a(val['$[]'](1))).concat([self.builder.$forwarded_args(val['$[]'](3))]), val['$[]'](4)]; return result; - }, $Ruby30__reduce_268$180.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_269', $Ruby30__reduce_269$181 = function $$_reduce_269(val, _values, result) { + $def(self, '$_reduce_274', function $$_reduce_274(val, _values, result) { var self = this; - if ($truthy(self.static_env['$declared_forward_args?']())) { - } else { + if (!$truthy(self.static_env['$declared_forward_args?']())) { self.$diagnostic("error", "unexpected_token", $hash2(["token"], {"token": "tBDOT3"}), val['$[]'](1)) }; result = [val['$[]'](0), [self.builder.$forwarded_args(val['$[]'](1))], val['$[]'](2)]; return result; - }, $Ruby30__reduce_269$181.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_270', $Ruby30__reduce_270$182 = function $$_reduce_270(val, _values, result) { - var self = this; - + $def(self, '$_reduce_275', function $$_reduce_275(val, _values, result) { + result = [nil, [], nil]; return result; - }, $Ruby30__reduce_270$182.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_272', $Ruby30__reduce_272$183 = function $$_reduce_272(val, _values, result) { - var self = this; - + $def(self, '$_reduce_277', function $$_reduce_277(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_272$183.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_275', $Ruby30__reduce_275$184 = function $$_reduce_275(val, _values, result) { + $def(self, '$_reduce_280', function $$_reduce_280(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$associate(nil, val['$[]'](2), nil)); return result; - }, $Ruby30__reduce_275$184.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_276', $Ruby30__reduce_276$185 = function $$_reduce_276(val, _values, result) { + $def(self, '$_reduce_281', function $$_reduce_281(val, _values, result) { var self = this; result = [self.builder.$associate(nil, val['$[]'](0), nil)]; return result; - }, $Ruby30__reduce_276$185.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_277', $Ruby30__reduce_277$186 = function $$_reduce_277(val, _values, result) { - var self = this; - + $def(self, '$_reduce_282', function $$_reduce_282(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_277$186.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_278', $Ruby30__reduce_278$187 = function $$_reduce_278(val, _values, result) { - var self = this; - + $def(self, '$_reduce_283', function $$_reduce_283(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_278$187.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_279', $Ruby30__reduce_279$188 = function $$_reduce_279(val, _values, result) { + $def(self, '$_reduce_284', function $$_reduce_284(val, _values, result) { var self = this; result = [self.builder.$associate(nil, val['$[]'](0), nil)]; result.$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_279$188.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_280', $Ruby30__reduce_280$189 = function $$_reduce_280(val, _values, result) { + $def(self, '$_reduce_285', function $$_reduce_285(val, _values, result) { var self = this, assocs = nil; @@ -24779,26 +21929,21 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = val['$[]'](0)['$<<'](assocs); result.$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_280$189.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_281', $Ruby30__reduce_281$190 = function $$_reduce_281(val, _values, result) { - var self = this; - + $def(self, '$_reduce_286', function $$_reduce_286(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_281$190.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_282', $Ruby30__reduce_282$191 = function $$_reduce_282(val, _values, result) { - var self = this, last_token = nil, lookahead = nil, $ret_or_5 = nil, top = nil; + $def(self, '$_reduce_287', function $$_reduce_287(val, _values, result) { + var self = this, last_token = nil, lookahead = nil, $ret_or_1 = nil, top = nil; last_token = self.last_token['$[]'](0); - lookahead = (function() {if ($truthy(($ret_or_5 = last_token['$==']("tLBRACK")))) { - return $ret_or_5 - } else { - return last_token['$==']("tLPAREN_ARG") - }; return nil; })(); + lookahead = ($truthy(($ret_or_1 = last_token['$==']("tLBRACK"))) ? ($ret_or_1) : (last_token['$==']("tLPAREN_ARG"))); if ($truthy(lookahead)) { top = self.lexer.$cmdarg().$pop(); @@ -24808,9 +21953,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.lexer.$cmdarg().$push(true) }; return result; - }, $Ruby30__reduce_282$191.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_283', $Ruby30__reduce_283$192 = function $$_reduce_283(val, _values, result) { + $def(self, '$_reduce_288', function $$_reduce_288(val, _values, result) { var self = this, last_token = nil, lookahead = nil, top = nil; @@ -24826,887 +21971,895 @@ Opal.modules["parser/ruby30"] = function(Opal) { }; result = val['$[]'](1); return result; - }, $Ruby30__reduce_283$192.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_284', $Ruby30__reduce_284$193 = function $$_reduce_284(val, _values, result) { + $def(self, '$_reduce_289', function $$_reduce_289(val, _values, result) { var self = this; result = self.builder.$block_pass(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_284$193.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_285', $Ruby30__reduce_285$194 = function $$_reduce_285(val, _values, result) { + $def(self, '$_reduce_290', function $$_reduce_290(val, _values, result) { var self = this; + if ($not(self.static_env['$declared_anonymous_blockarg?']())) { + self.$diagnostic("error", "no_anonymous_blockarg", nil, val['$[]'](0)) + }; + result = self.builder.$block_pass(val['$[]'](0), nil); + return result; + }, 3); + + $def(self, '$_reduce_291', function $$_reduce_291(val, _values, result) { + + result = [val['$[]'](1)]; return result; - }, $Ruby30__reduce_285$194.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_286', $Ruby30__reduce_286$195 = function $$_reduce_286(val, _values, result) { - var self = this; - + $def(self, '$_reduce_292', function $$_reduce_292(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_286$195.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_287', $Ruby30__reduce_287$196 = function $$_reduce_287(val, _values, result) { - var self = this; - + $def(self, '$_reduce_293', function $$_reduce_293(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_287$196.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_288', $Ruby30__reduce_288$197 = function $$_reduce_288(val, _values, result) { + $def(self, '$_reduce_294', function $$_reduce_294(val, _values, result) { var self = this; result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_288$197.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_289', $Ruby30__reduce_289$198 = function $$_reduce_289(val, _values, result) { - var self = this; - + $def(self, '$_reduce_295', function $$_reduce_295(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_289$198.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_290', $Ruby30__reduce_290$199 = function $$_reduce_290(val, _values, result) { + $def(self, '$_reduce_296', function $$_reduce_296(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$splat(val['$[]'](2), val['$[]'](3))); return result; - }, $Ruby30__reduce_290$199.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_291', $Ruby30__reduce_291$200 = function $$_reduce_291(val, _values, result) { + $def(self, '$_reduce_297', function $$_reduce_297(val, _values, result) { var self = this; result = self.builder.$array(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_291$200.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_293', $Ruby30__reduce_293$201 = function $$_reduce_293(val, _values, result) { - var self = this; - + $def(self, '$_reduce_299', function $$_reduce_299(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_293$201.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_294', $Ruby30__reduce_294$202 = function $$_reduce_294(val, _values, result) { + $def(self, '$_reduce_300', function $$_reduce_300(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$splat(val['$[]'](2), val['$[]'](3))); return result; - }, $Ruby30__reduce_294$202.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_295', $Ruby30__reduce_295$203 = function $$_reduce_295(val, _values, result) { + $def(self, '$_reduce_301', function $$_reduce_301(val, _values, result) { var self = this; result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_295$203.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_306', $Ruby30__reduce_306$204 = function $$_reduce_306(val, _values, result) { + $def(self, '$_reduce_312', function $$_reduce_312(val, _values, result) { var self = this; result = self.builder.$call_method(nil, nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_306$204.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_307', $Ruby30__reduce_307$205 = function $$_reduce_307(val, _values, result) { + $def(self, '$_reduce_313', function $$_reduce_313(val, _values, result) { var self = this; self.lexer.$cmdarg().$push(false); return result; - }, $Ruby30__reduce_307$205.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_308', $Ruby30__reduce_308$206 = function $$_reduce_308(val, _values, result) { + $def(self, '$_reduce_314', function $$_reduce_314(val, _values, result) { var self = this; self.lexer.$cmdarg().$pop(); result = self.builder.$begin_keyword(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_308$206.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_309', $Ruby30__reduce_309$207 = function $$_reduce_309(val, _values, result) { + $def(self, '$_reduce_315', function $$_reduce_315(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_endarg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_309$207.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_310', $Ruby30__reduce_310$208 = function $$_reduce_310(val, _values, result) { + $def(self, '$_reduce_316', function $$_reduce_316(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](3)); return result; - }, $Ruby30__reduce_310$208.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_311', $Ruby30__reduce_311$209 = function $$_reduce_311(val, _values, result) { + $def(self, '$_reduce_317', function $$_reduce_317(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_endarg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_311$209.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_312', $Ruby30__reduce_312$210 = function $$_reduce_312(val, _values, result) { + $def(self, '$_reduce_318', function $$_reduce_318(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), nil, val['$[]'](3)); return result; - }, $Ruby30__reduce_312$210.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_313', $Ruby30__reduce_313$211 = function $$_reduce_313(val, _values, result) { + $def(self, '$_reduce_319', function $$_reduce_319(val, _values, result) { var self = this; result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_313$211.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_314', $Ruby30__reduce_314$212 = function $$_reduce_314(val, _values, result) { + $def(self, '$_reduce_320', function $$_reduce_320(val, _values, result) { var self = this; result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_314$212.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_315', $Ruby30__reduce_315$213 = function $$_reduce_315(val, _values, result) { + $def(self, '$_reduce_321', function $$_reduce_321(val, _values, result) { var self = this; result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_315$213.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_316', $Ruby30__reduce_316$214 = function $$_reduce_316(val, _values, result) { + $def(self, '$_reduce_322', function $$_reduce_322(val, _values, result) { var self = this; result = self.builder.$array(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_316$214.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_317', $Ruby30__reduce_317$215 = function $$_reduce_317(val, _values, result) { + $def(self, '$_reduce_323', function $$_reduce_323(val, _values, result) { var self = this; result = self.builder.$associate(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_317$215.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_318', $Ruby30__reduce_318$216 = function $$_reduce_318(val, _values, result) { + $def(self, '$_reduce_324', function $$_reduce_324(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("return", val['$[]'](0)); return result; - }, $Ruby30__reduce_318$216.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_319', $Ruby30__reduce_319$217 = function $$_reduce_319(val, _values, result) { + $def(self, '$_reduce_325', function $$_reduce_325(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("yield", val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_319$217.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_320', $Ruby30__reduce_320$218 = function $$_reduce_320(val, _values, result) { + $def(self, '$_reduce_326', function $$_reduce_326(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("yield", val['$[]'](0), val['$[]'](1), [], val['$[]'](2)); return result; - }, $Ruby30__reduce_320$218.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_321', $Ruby30__reduce_321$219 = function $$_reduce_321(val, _values, result) { + $def(self, '$_reduce_327', function $$_reduce_327(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("yield", val['$[]'](0)); return result; - }, $Ruby30__reduce_321$219.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_322', $Ruby30__reduce_322$220 = function $$_reduce_322(val, _values, result) { - var self = this; + $def(self, '$_reduce_328', function $$_reduce_328(val, _values, result) { + var self = this, $writer = nil; + + + + $writer = [true]; + $send(self.context, 'in_defined=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_329', function $$_reduce_329(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$keyword_cmd("defined?", val['$[]'](0), val['$[]'](2), [val['$[]'](3)], val['$[]'](4)); + + $writer = [false]; + $send(self.context, 'in_defined=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$keyword_cmd("defined?", val['$[]'](0), val['$[]'](2), [val['$[]'](4)], val['$[]'](5)); return result; - }, $Ruby30__reduce_322$220.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_323', $Ruby30__reduce_323$221 = function $$_reduce_323(val, _values, result) { + $def(self, '$_reduce_330', function $$_reduce_330(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_323$221.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_324', $Ruby30__reduce_324$222 = function $$_reduce_324(val, _values, result) { + $def(self, '$_reduce_331', function $$_reduce_331(val, _values, result) { var self = this; result = self.builder.$not_op(val['$[]'](0), val['$[]'](1), nil, val['$[]'](2)); return result; - }, $Ruby30__reduce_324$222.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_325', $Ruby30__reduce_325$223 = function $$_reduce_325(val, _values, result) { + $def(self, '$_reduce_332', function $$_reduce_332(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(nil, nil, val['$[]'](0)); - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_325$223.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_327', $Ruby30__reduce_327$224 = function $$_reduce_327(val, _values, result) { + $def(self, '$_reduce_334', function $$_reduce_334(val, _values, result) { var $a, $b, self = this, begin_t = nil, args = nil, body = nil, end_t = nil; - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(val['$[]'](0), begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_327$224.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_329', $Ruby30__reduce_329$225 = function $$_reduce_329(val, _values, result) { + $def(self, '$_reduce_336', function $$_reduce_336(val, _values, result) { var $a, $b, self = this, else_t = nil, else_ = nil; - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; result = self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3), else_t, else_, val['$[]'](5)); return result; - }, $Ruby30__reduce_329$225.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_330', $Ruby30__reduce_330$226 = function $$_reduce_330(val, _values, result) { + $def(self, '$_reduce_337', function $$_reduce_337(val, _values, result) { var $a, $b, self = this, else_t = nil, else_ = nil; - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; result = self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), else_, else_t, val['$[]'](3), val['$[]'](5)); return result; - }, $Ruby30__reduce_330$226.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_331', $Ruby30__reduce_331$227 = function $$_reduce_331(val, _values, result) { + $def(self, '$_reduce_338', function $$_reduce_338(val, _values, result) { var self = this; - result = $send(self.builder, 'loop', ["while", val['$[]'](0)].concat(Opal.to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); + result = $send(self.builder, 'loop', ["while", val['$[]'](0)].concat($to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); return result; - }, $Ruby30__reduce_331$227.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_332', $Ruby30__reduce_332$228 = function $$_reduce_332(val, _values, result) { + $def(self, '$_reduce_339', function $$_reduce_339(val, _values, result) { var self = this; - result = $send(self.builder, 'loop', ["until", val['$[]'](0)].concat(Opal.to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); + result = $send(self.builder, 'loop', ["until", val['$[]'](0)].concat($to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); return result; - }, $Ruby30__reduce_332$228.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_333', $Ruby30__reduce_333$229 = function $$_reduce_333(val, _values, result) { + $def(self, '$_reduce_340', function $$_reduce_340(val, _values, result) { var $a, $b, $c, self = this, when_bodies = nil, else_t = nil, else_body = nil; - $a = [].concat(Opal.to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + $a = [].concat($to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = $to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; result = self.builder.$case(val['$[]'](0), val['$[]'](1), when_bodies, else_t, else_body, val['$[]'](4)); return result; - }, $Ruby30__reduce_333$229.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_334', $Ruby30__reduce_334$230 = function $$_reduce_334(val, _values, result) { + $def(self, '$_reduce_341', function $$_reduce_341(val, _values, result) { var $a, $b, $c, self = this, when_bodies = nil, else_t = nil, else_body = nil; - $a = [].concat(Opal.to_a(val['$[]'](2))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + $a = [].concat($to_a(val['$[]'](2))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = $to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; result = self.builder.$case(val['$[]'](0), nil, when_bodies, else_t, else_body, val['$[]'](3)); return result; - }, $Ruby30__reduce_334$230.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_335', $Ruby30__reduce_335$231 = function $$_reduce_335(val, _values, result) { + $def(self, '$_reduce_342', function $$_reduce_342(val, _values, result) { var $a, $b, $c, self = this, in_bodies = nil, else_t = nil, else_body = nil; - $a = [].concat(Opal.to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (in_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + $a = [].concat($to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (in_bodies = $slice.call($a, 0, $b)), ($c = $to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; result = self.builder.$case_match(val['$[]'](0), val['$[]'](1), in_bodies, else_t, else_body, val['$[]'](4)); return result; - }, $Ruby30__reduce_335$231.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_336', $Ruby30__reduce_336$232 = function $$_reduce_336(val, _values, result) { + $def(self, '$_reduce_343', function $$_reduce_343(val, _values, result) { var self = this; - result = $send(self.builder, 'for', [val['$[]'](0), val['$[]'](1), val['$[]'](2)].concat(Opal.to_a(val['$[]'](3))).concat([val['$[]'](4), val['$[]'](5)])); + result = $send(self.builder, 'for', [val['$[]'](0), val['$[]'](1), val['$[]'](2)].concat($to_a(val['$[]'](3))).concat([val['$[]'](4), val['$[]'](5)])); return result; - }, $Ruby30__reduce_336$232.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_337', $Ruby30__reduce_337$233 = function $$_reduce_337(val, _values, result) { + $def(self, '$_reduce_344', function $$_reduce_344(val, _values, result) { var self = this, $writer = nil; $writer = [true]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.$local_push(); return result; - }, $Ruby30__reduce_337$233.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_338', $Ruby30__reduce_338$234 = function $$_reduce_338(val, _values, result) { + $def(self, '$_reduce_345', function $$_reduce_345(val, _values, result) { var $a, $b, self = this, k_class = nil, ctx = nil, lt_t = nil, superclass = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (k_class = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](0), $a = $to_ary($b), (k_class = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(self.context.$in_def())) { - self.$diagnostic("error", "class_in_def", nil, k_class)}; - $b = val['$[]'](2), $a = Opal.to_ary($b), (lt_t = ($a[0] == null ? nil : $a[0])), (superclass = ($a[1] == null ? nil : $a[1])), $b; + self.$diagnostic("error", "class_in_def", nil, k_class) + }; + $b = val['$[]'](2), $a = $to_ary($b), (lt_t = ($a[0] == null ? nil : $a[0])), (superclass = ($a[1] == null ? nil : $a[1])), $b; result = self.builder.$def_class(k_class, val['$[]'](1), lt_t, superclass, val['$[]'](4), val['$[]'](5)); self.$local_pop(); $writer = [ctx.$in_class()]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_338$234.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_339', $Ruby30__reduce_339$235 = function $$_reduce_339(val, _values, result) { + $def(self, '$_reduce_346', function $$_reduce_346(val, _values, result) { var self = this, $writer = nil; $writer = [false]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.$local_push(); return result; - }, $Ruby30__reduce_339$235.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_340', $Ruby30__reduce_340$236 = function $$_reduce_340(val, _values, result) { + $def(self, '$_reduce_347', function $$_reduce_347(val, _values, result) { var $a, $b, self = this, k_class = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (k_class = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](0), $a = $to_ary($b), (k_class = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; result = self.builder.$def_sclass(k_class, val['$[]'](1), val['$[]'](2), val['$[]'](5), val['$[]'](6)); self.$local_pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [ctx.$in_class()]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_340$236.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_341', $Ruby30__reduce_341$237 = function $$_reduce_341(val, _values, result) { + $def(self, '$_reduce_348', function $$_reduce_348(val, _values, result) { var self = this, $writer = nil; $writer = [true]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.$local_push(); return result; - }, $Ruby30__reduce_341$237.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_342', $Ruby30__reduce_342$238 = function $$_reduce_342(val, _values, result) { + $def(self, '$_reduce_349', function $$_reduce_349(val, _values, result) { var $a, $b, self = this, k_mod = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (k_mod = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](0), $a = $to_ary($b), (k_mod = ($a[0] == null ? nil : $a[0])), (ctx = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(self.context.$in_def())) { - self.$diagnostic("error", "module_in_def", nil, k_mod)}; + self.$diagnostic("error", "module_in_def", nil, k_mod) + }; result = self.builder.$def_module(k_mod, val['$[]'](1), val['$[]'](3), val['$[]'](4)); self.$local_pop(); $writer = [ctx.$in_class()]; - $send(self.context, 'in_class=', Opal.to_a($writer)); + $send(self.context, 'in_class=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_342$238.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_343', $Ruby30__reduce_343$239 = function $$_reduce_343(val, _values, result) { + $def(self, '$_reduce_350', function $$_reduce_350(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, name_t = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = Opal.to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), ($c = $to_ary(($a[1] == null ? nil : $a[1])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; result = self.builder.$def_method(def_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_343$239.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_344', $Ruby30__reduce_344$240 = function $$_reduce_344(val, _values, result) { + $def(self, '$_reduce_351', function $$_reduce_351(val, _values, result) { var $a, $b, $c, self = this, def_t = nil, recv = nil, dot_t = nil, name_t = nil, ctx = nil, $writer = nil; - $b = val['$[]'](0), $a = Opal.to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = Opal.to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; + $b = val['$[]'](0), $a = $to_ary($b), (def_t = ($a[0] == null ? nil : $a[0])), (recv = ($a[1] == null ? nil : $a[1])), (dot_t = ($a[2] == null ? nil : $a[2])), ($c = $to_ary(($a[3] == null ? nil : $a[3])), (name_t = ($c[0] == null ? nil : $c[0])), (ctx = ($c[1] == null ? nil : $c[1]))), $b; result = self.builder.$def_singleton(def_t, recv, dot_t, name_t, val['$[]'](1), val['$[]'](2), val['$[]'](3)); self.$local_pop(); + self.current_arg_stack.$pop(); $writer = [ctx.$in_def()]; - $send(self.context, 'in_def=', Opal.to_a($writer)); + $send(self.context, 'in_def=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.current_arg_stack.$pop(); return result; - }, $Ruby30__reduce_344$240.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_345', $Ruby30__reduce_345$241 = function $$_reduce_345(val, _values, result) { + $def(self, '$_reduce_352', function $$_reduce_352(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("break", val['$[]'](0)); return result; - }, $Ruby30__reduce_345$241.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_346', $Ruby30__reduce_346$242 = function $$_reduce_346(val, _values, result) { + $def(self, '$_reduce_353', function $$_reduce_353(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("next", val['$[]'](0)); return result; - }, $Ruby30__reduce_346$242.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_347', $Ruby30__reduce_347$243 = function $$_reduce_347(val, _values, result) { + $def(self, '$_reduce_354', function $$_reduce_354(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("redo", val['$[]'](0)); return result; - }, $Ruby30__reduce_347$243.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_348', $Ruby30__reduce_348$244 = function $$_reduce_348(val, _values, result) { + $def(self, '$_reduce_355', function $$_reduce_355(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("retry", val['$[]'](0)); return result; - }, $Ruby30__reduce_348$244.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_350', $Ruby30__reduce_350$245 = function $$_reduce_350(val, _values, result) { + $def(self, '$_reduce_357', function $$_reduce_357(val, _values, result) { var self = this; result = [val['$[]'](0), self.context.$dup()]; return result; - }, $Ruby30__reduce_350$245.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_351', $Ruby30__reduce_351$246 = function $$_reduce_351(val, _values, result) { + $def(self, '$_reduce_358', function $$_reduce_358(val, _values, result) { var self = this; result = [val['$[]'](0), self.context.$dup()]; return result; - }, $Ruby30__reduce_351$246.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_352', $Ruby30__reduce_352$247 = function $$_reduce_352(val, _values, result) { - var self = this; + $def(self, '$_reduce_359', function $$_reduce_359(val, _values, result) { + var self = this, $writer = nil; result = val['$[]'](0); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_352$247.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_353', $Ruby30__reduce_353$248 = function $$_reduce_353(val, _values, result) { - var self = this, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil; + $def(self, '$_reduce_360', function $$_reduce_360(val, _values, result) { + var self = this, $ret_or_1 = nil; - if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = self.context.$in_class()))) { - return self.context.$in_def()['$!']() - } else { - return $ret_or_7 - }; return nil; })()))) { - return (function() {if ($truthy(($ret_or_8 = self.$context().$in_block()))) { - return $ret_or_8 - } else { - return self.$context().$in_lambda() - }; return nil; })()['$!']() - } else { - return $ret_or_6 - }; return nil; })())) { - self.$diagnostic("error", "invalid_return", nil, val['$[]'](0))}; + if ((($truthy(self.context.$in_class()) && ($not(self.context.$in_def()))) && ($not(($truthy(($ret_or_1 = self.$context().$in_block())) ? ($ret_or_1) : (self.$context().$in_lambda())))))) { + self.$diagnostic("error", "invalid_return", nil, val['$[]'](0)) + }; return result; - }, $Ruby30__reduce_353$248.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_356', $Ruby30__reduce_356$249 = function $$_reduce_356(val, _values, result) { - var self = this; - + $def(self, '$_reduce_363', function $$_reduce_363(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_356$249.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_360', $Ruby30__reduce_360$250 = function $$_reduce_360(val, _values, result) { + $def(self, '$_reduce_367', function $$_reduce_367(val, _values, result) { var $a, $b, self = this, else_t = nil, else_ = nil; - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; result = [val['$[]'](0), self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3), else_t, else_, nil)]; return result; - }, $Ruby30__reduce_360$250.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_362', $Ruby30__reduce_362$251 = function $$_reduce_362(val, _values, result) { - var self = this; - + $def(self, '$_reduce_369', function $$_reduce_369(val, _values, result) { + result = val; return result; - }, $Ruby30__reduce_362$251.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_365', $Ruby30__reduce_365$252 = function $$_reduce_365(val, _values, result) { + $def(self, '$_reduce_372', function $$_reduce_372(val, _values, result) { var self = this; result = self.builder.$arg(val['$[]'](0)); return result; - }, $Ruby30__reduce_365$252.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_366', $Ruby30__reduce_366$253 = function $$_reduce_366(val, _values, result) { + $def(self, '$_reduce_373', function $$_reduce_373(val, _values, result) { var self = this; result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_366$253.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_367', $Ruby30__reduce_367$254 = function $$_reduce_367(val, _values, result) { - var self = this; - + $def(self, '$_reduce_374', function $$_reduce_374(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_367$254.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_368', $Ruby30__reduce_368$255 = function $$_reduce_368(val, _values, result) { - var self = this; - + $def(self, '$_reduce_375', function $$_reduce_375(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_368$255.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_370', $Ruby30__reduce_370$256 = function $$_reduce_370(val, _values, result) { - var self = this; - + $def(self, '$_reduce_377', function $$_reduce_377(val, _values, result) { + result = val['$[]'](0).$push(val['$[]'](2)); return result; - }, $Ruby30__reduce_370$256.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_371', $Ruby30__reduce_371$257 = function $$_reduce_371(val, _values, result) { - var self = this; - + $def(self, '$_reduce_378', function $$_reduce_378(val, _values, result) { + result = val['$[]'](0).$push(val['$[]'](2)).$concat(val['$[]'](4)); return result; - }, $Ruby30__reduce_371$257.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_372', $Ruby30__reduce_372$258 = function $$_reduce_372(val, _values, result) { - var self = this; - + $def(self, '$_reduce_379', function $$_reduce_379(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_372$258.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_373', $Ruby30__reduce_373$259 = function $$_reduce_373(val, _values, result) { - var self = this; - + $def(self, '$_reduce_380', function $$_reduce_380(val, _values, result) { - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))); + + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))); return result; - }, $Ruby30__reduce_373$259.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_374', $Ruby30__reduce_374$260 = function $$_reduce_374(val, _values, result) { + $def(self, '$_reduce_381', function $$_reduce_381(val, _values, result) { var self = this; result = self.builder.$restarg(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_374$260.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_375', $Ruby30__reduce_375$261 = function $$_reduce_375(val, _values, result) { + $def(self, '$_reduce_382', function $$_reduce_382(val, _values, result) { var self = this; result = self.builder.$restarg(val['$[]'](0)); return result; - }, $Ruby30__reduce_375$261.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_378', $Ruby30__reduce_378$262 = function $$_reduce_378(val, _values, result) { - var self = this; + $def(self, '$_reduce_385', function $$_reduce_385(val, _values, result) { + var self = this, $writer = nil; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 3); + + $def(self, '$_reduce_386', function $$_reduce_386(val, _values, result) { + + + result = val['$[]'](1); + return result; + }, 3); + + $def(self, '$_reduce_387', function $$_reduce_387(val, _values, result) { + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_378$262.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_379', $Ruby30__reduce_379$263 = function $$_reduce_379(val, _values, result) { - var self = this; - + $def(self, '$_reduce_388', function $$_reduce_388(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_379$263.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_380', $Ruby30__reduce_380$264 = function $$_reduce_380(val, _values, result) { - var self = this; - + $def(self, '$_reduce_389', function $$_reduce_389(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_380$264.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_381', $Ruby30__reduce_381$265 = function $$_reduce_381(val, _values, result) { - var self = this; - + $def(self, '$_reduce_390', function $$_reduce_390(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_381$265.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_382', $Ruby30__reduce_382$266 = function $$_reduce_382(val, _values, result) { - var self = this; - + $def(self, '$_reduce_391', function $$_reduce_391(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_382$266.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_383', $Ruby30__reduce_383$267 = function $$_reduce_383(val, _values, result) { - var self = this; - + $def(self, '$_reduce_392', function $$_reduce_392(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_383$267.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_385', $Ruby30__reduce_385$268 = function $$_reduce_385(val, _values, result) { - var self = this; - + $def(self, '$_reduce_394', function $$_reduce_394(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_385$268.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_386', $Ruby30__reduce_386$269 = function $$_reduce_386(val, _values, result) { - var self = this; - + $def(self, '$_reduce_395', function $$_reduce_395(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](6)).$concat(val['$[]'](7)); return result; - }, $Ruby30__reduce_386$269.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_387', $Ruby30__reduce_387$270 = function $$_reduce_387(val, _values, result) { - var self = this; - + $def(self, '$_reduce_396', function $$_reduce_396(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_387$270.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_388', $Ruby30__reduce_388$271 = function $$_reduce_388(val, _values, result) { - var self = this; - + $def(self, '$_reduce_397', function $$_reduce_397(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_388$271.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_389', $Ruby30__reduce_389$272 = function $$_reduce_389(val, _values, result) { - var self = this; - + $def(self, '$_reduce_398', function $$_reduce_398(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_389$272.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_391', $Ruby30__reduce_391$273 = function $$_reduce_391(val, _values, result) { - var self = this; - + $def(self, '$_reduce_400', function $$_reduce_400(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_391$273.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_392', $Ruby30__reduce_392$274 = function $$_reduce_392(val, _values, result) { - var self = this, $ret_or_9 = nil; + $def(self, '$_reduce_401', function $$_reduce_401(val, _values, result) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_9 = val['$[]'](1)['$empty?']()))) { - return val['$[]'](0).$size()['$=='](1) - } else { - return $ret_or_9 - }; return nil; })())) { + if (($truthy(val['$[]'](1)['$empty?']()) && ($eqeq(val['$[]'](0).$size(), 1)))) { result = [self.builder.$procarg0(val['$[]'](0)['$[]'](0))] } else { result = val['$[]'](0).$concat(val['$[]'](1)) }; return result; - }, $Ruby30__reduce_392$274.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_393', $Ruby30__reduce_393$275 = function $$_reduce_393(val, _values, result) { - var self = this; - + $def(self, '$_reduce_402', function $$_reduce_402(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_393$275.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_394', $Ruby30__reduce_394$276 = function $$_reduce_394(val, _values, result) { - var self = this; - + $def(self, '$_reduce_403', function $$_reduce_403(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_394$276.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_395', $Ruby30__reduce_395$277 = function $$_reduce_395(val, _values, result) { - var self = this; - + $def(self, '$_reduce_404', function $$_reduce_404(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_395$277.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_396', $Ruby30__reduce_396$278 = function $$_reduce_396(val, _values, result) { - var self = this; - + $def(self, '$_reduce_405', function $$_reduce_405(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_396$278.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_397', $Ruby30__reduce_397$279 = function $$_reduce_397(val, _values, result) { - var self = this; - + $def(self, '$_reduce_406', function $$_reduce_406(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_397$279.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_398', $Ruby30__reduce_398$280 = function $$_reduce_398(val, _values, result) { - var self = this; - + $def(self, '$_reduce_407', function $$_reduce_407(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_398$280.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_400', $Ruby30__reduce_400$281 = function $$_reduce_400(val, _values, result) { + $def(self, '$_reduce_409', function $$_reduce_409(val, _values, result) { var self = this; result = self.builder.$args(nil, [], nil); return result; - }, $Ruby30__reduce_400$281.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_401', $Ruby30__reduce_401$282 = function $$_reduce_401(val, _values, result) { + $def(self, '$_reduce_410', function $$_reduce_410(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_401$282.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_402', $Ruby30__reduce_402$283 = function $$_reduce_402(val, _values, result) { - var self = this; + $def(self, '$_reduce_411', function $$_reduce_411(val, _values, result) { + var self = this, $writer = nil; self.max_numparam_stack['$has_ordinary_params!'](); self.current_arg_stack.$set(nil); + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_402$283.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_403', $Ruby30__reduce_403$284 = function $$_reduce_403(val, _values, result) { - var self = this; + $def(self, '$_reduce_412', function $$_reduce_412(val, _values, result) { + var self = this, $writer = nil; self.max_numparam_stack['$has_ordinary_params!'](); self.current_arg_stack.$set(nil); + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$args(val['$[]'](0), val['$[]'](1).$concat(val['$[]'](2)), val['$[]'](3)); return result; - }, $Ruby30__reduce_403$284.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_404', $Ruby30__reduce_404$285 = function $$_reduce_404(val, _values, result) { - var self = this; - + $def(self, '$_reduce_413', function $$_reduce_413(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_404$285.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_405', $Ruby30__reduce_405$286 = function $$_reduce_405(val, _values, result) { - var self = this; - + $def(self, '$_reduce_414', function $$_reduce_414(val, _values, result) { + result = val['$[]'](2); return result; - }, $Ruby30__reduce_405$286.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_406', $Ruby30__reduce_406$287 = function $$_reduce_406(val, _values, result) { - var self = this; - + $def(self, '$_reduce_415', function $$_reduce_415(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_406$287.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_407', $Ruby30__reduce_407$288 = function $$_reduce_407(val, _values, result) { - var self = this; - + $def(self, '$_reduce_416', function $$_reduce_416(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_407$288.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_408', $Ruby30__reduce_408$289 = function $$_reduce_408(val, _values, result) { + $def(self, '$_reduce_417', function $$_reduce_417(val, _values, result) { var self = this; self.static_env.$declare(val['$[]'](0)['$[]'](0)); result = self.builder.$shadowarg(val['$[]'](0)); return result; - }, $Ruby30__reduce_408$289.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_410', $Ruby30__reduce_410$290 = function $$_reduce_410(val, _values, result) { + $def(self, '$_reduce_419', function $$_reduce_419(val, _values, result) { var self = this, $writer = nil; @@ -25715,393 +22868,389 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_410$290.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_411', $Ruby30__reduce_411$291 = function $$_reduce_411(val, _values, result) { + $def(self, '$_reduce_420', function $$_reduce_420(val, _values, result) { var self = this; self.lexer.$cmdarg().$push(false); return result; - }, $Ruby30__reduce_411$291.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_412', $Ruby30__reduce_412$292 = function $$_reduce_412(val, _values, result) { + $def(self, '$_reduce_421', function $$_reduce_421(val, _values, result) { var $a, $b, self = this, lambda_call = nil, args = nil, begin_t = nil, body = nil, end_t = nil, $writer = nil; lambda_call = self.builder.$call_lambda(val['$[]'](0)); - args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { - return self.builder.$numargs(self.max_numparam_stack.$top()) - } else { - return val['$[]'](2) - }; return nil; })(); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + args = ($truthy(self.max_numparam_stack['$has_numparams?']()) ? (self.builder.$numargs(self.max_numparam_stack.$top())) : (val['$[]'](2))); + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; self.max_numparam_stack.$pop(); self.static_env.$unextend(); self.lexer.$cmdarg().$pop(); $writer = [val['$[]'](1).$in_lambda()]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$block(lambda_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_412$292.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_413', $Ruby30__reduce_413$293 = function $$_reduce_413(val, _values, result) { - var self = this; + $def(self, '$_reduce_422', function $$_reduce_422(val, _values, result) { + var self = this, $writer = nil; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; self.max_numparam_stack['$has_ordinary_params!'](); result = self.builder.$args(val['$[]'](0), val['$[]'](1).$concat(val['$[]'](2)), val['$[]'](3)); return result; - }, $Ruby30__reduce_413$293.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_414', $Ruby30__reduce_414$294 = function $$_reduce_414(val, _values, result) { - var self = this; + $def(self, '$_reduce_423', function $$_reduce_423(val, _values, result) { + var self = this, $writer = nil; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; if ($truthy(val['$[]'](0)['$any?']())) { - self.max_numparam_stack['$has_ordinary_params!']()}; + self.max_numparam_stack['$has_ordinary_params!']() + }; result = self.builder.$args(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_414$294.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_415', $Ruby30__reduce_415$295 = function $$_reduce_415(val, _values, result) { + $def(self, '$_reduce_424', function $$_reduce_424(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_415$295.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_416', $Ruby30__reduce_416$296 = function $$_reduce_416(val, _values, result) { + $def(self, '$_reduce_425', function $$_reduce_425(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; $writer = [val['$[]'](1).$in_lambda()]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; return result; - }, $Ruby30__reduce_416$296.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_417', $Ruby30__reduce_417$297 = function $$_reduce_417(val, _values, result) { + $def(self, '$_reduce_426', function $$_reduce_426(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_417$297.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_418', $Ruby30__reduce_418$298 = function $$_reduce_418(val, _values, result) { + $def(self, '$_reduce_427', function $$_reduce_427(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; $writer = [val['$[]'](1).$in_lambda()]; - $send(self.context, 'in_lambda=', Opal.to_a($writer)); + $send(self.context, 'in_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; return result; - }, $Ruby30__reduce_418$298.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_419', $Ruby30__reduce_419$299 = function $$_reduce_419(val, _values, result) { + $def(self, '$_reduce_428', function $$_reduce_428(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_419$299.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_420', $Ruby30__reduce_420$300 = function $$_reduce_420(val, _values, result) { + $def(self, '$_reduce_429', function $$_reduce_429(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); $writer = [val['$[]'](1).$in_block()]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3)]); return result; - }, $Ruby30__reduce_420$300.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_421', $Ruby30__reduce_421$301 = function $$_reduce_421(val, _values, result) { + $def(self, '$_reduce_430', function $$_reduce_430(val, _values, result) { var $a, $b, self = this, begin_t = nil, block_args = nil, body = nil, end_t = nil; - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (block_args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (block_args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(val['$[]'](0), begin_t, block_args, body, end_t); return result; - }, $Ruby30__reduce_421$301.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_422', $Ruby30__reduce_422$302 = function $$_reduce_422(val, _values, result) { + $def(self, '$_reduce_431', function $$_reduce_431(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_422$302.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_423', $Ruby30__reduce_423$303 = function $$_reduce_423(val, _values, result) { + $def(self, '$_reduce_432', function $$_reduce_432(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil, method_call = nil, begin_t = nil, body = nil, end_t = nil; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_423$303.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_424', $Ruby30__reduce_424$304 = function $$_reduce_424(val, _values, result) { + $def(self, '$_reduce_433', function $$_reduce_433(val, _values, result) { var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + $b = val['$[]'](4), $a = $to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; result = self.builder.$block(method_call, begin_t, args, body, end_t); return result; - }, $Ruby30__reduce_424$304.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_425', $Ruby30__reduce_425$305 = function $$_reduce_425(val, _values, result) { + $def(self, '$_reduce_434', function $$_reduce_434(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](1), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(nil, nil, val['$[]'](0), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_425$305.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_426', $Ruby30__reduce_426$306 = function $$_reduce_426(val, _values, result) { + $def(self, '$_reduce_435', function $$_reduce_435(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_426$306.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_427', $Ruby30__reduce_427$307 = function $$_reduce_427(val, _values, result) { + $def(self, '$_reduce_436', function $$_reduce_436(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](3), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_427$307.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_428', $Ruby30__reduce_428$308 = function $$_reduce_428(val, _values, result) { + $def(self, '$_reduce_437', function $$_reduce_437(val, _values, result) { var self = this; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_428$308.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_429', $Ruby30__reduce_429$309 = function $$_reduce_429(val, _values, result) { + $def(self, '$_reduce_438', function $$_reduce_438(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](2), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](2), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), nil, lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_429$309.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_430', $Ruby30__reduce_430$310 = function $$_reduce_430(val, _values, result) { + $def(self, '$_reduce_439', function $$_reduce_439(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](2), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](2), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), nil, lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_430$310.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_431', $Ruby30__reduce_431$311 = function $$_reduce_431(val, _values, result) { + $def(self, '$_reduce_440', function $$_reduce_440(val, _values, result) { var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - $b = val['$[]'](1), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + $b = val['$[]'](1), $a = $to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; result = self.builder.$keyword_cmd("super", val['$[]'](0), lparen_t, args, rparen_t); return result; - }, $Ruby30__reduce_431$311.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_432', $Ruby30__reduce_432$312 = function $$_reduce_432(val, _values, result) { + $def(self, '$_reduce_441', function $$_reduce_441(val, _values, result) { var self = this; result = self.builder.$keyword_cmd("zsuper", val['$[]'](0)); return result; - }, $Ruby30__reduce_432$312.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_433', $Ruby30__reduce_433$313 = function $$_reduce_433(val, _values, result) { + $def(self, '$_reduce_442', function $$_reduce_442(val, _values, result) { var self = this; result = self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_433$313.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_434', $Ruby30__reduce_434$314 = function $$_reduce_434(val, _values, result) { + $def(self, '$_reduce_443', function $$_reduce_443(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_434$314.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_435', $Ruby30__reduce_435$315 = function $$_reduce_435(val, _values, result) { + $def(self, '$_reduce_444', function $$_reduce_444(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); $writer = [val['$[]'](1).$in_block()]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3)]); return result; - }, $Ruby30__reduce_435$315.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_436', $Ruby30__reduce_436$316 = function $$_reduce_436(val, _values, result) { + $def(self, '$_reduce_445', function $$_reduce_445(val, _values, result) { var self = this, $writer = nil; result = self.context.$dup(); $writer = [true]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_436$316.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_437', $Ruby30__reduce_437$317 = function $$_reduce_437(val, _values, result) { + $def(self, '$_reduce_446', function $$_reduce_446(val, _values, result) { var self = this, $writer = nil; - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); $writer = [val['$[]'](1).$in_block()]; - $send(self.context, 'in_block=', Opal.to_a($writer)); + $send(self.context, 'in_block=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3)]); return result; - }, $Ruby30__reduce_437$317.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_438', $Ruby30__reduce_438$318 = function $$_reduce_438(val, _values, result) { + $def(self, '$_reduce_447', function $$_reduce_447(val, _values, result) { var self = this; self.static_env.$extend_dynamic(); self.max_numparam_stack.$push($hash2(["static"], {"static": false})); return result; - }, $Ruby30__reduce_438$318.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_439', $Ruby30__reduce_439$319 = function $$_reduce_439(val, _values, result) { + $def(self, '$_reduce_448', function $$_reduce_448(val, _values, result) { var self = this, args = nil; - args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { - return self.builder.$numargs(self.max_numparam_stack.$top()) - } else { - return val['$[]'](1) - }; return nil; })(); + args = ($truthy(self.max_numparam_stack['$has_numparams?']()) ? (self.builder.$numargs(self.max_numparam_stack.$top())) : (val['$[]'](1))); result = [args, val['$[]'](2)]; self.max_numparam_stack.$pop(); self.static_env.$unextend(); return result; - }, $Ruby30__reduce_439$319.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_440', $Ruby30__reduce_440$320 = function $$_reduce_440(val, _values, result) { + $def(self, '$_reduce_449', function $$_reduce_449(val, _values, result) { var self = this; self.static_env.$extend_dynamic(); self.max_numparam_stack.$push($hash2(["static"], {"static": false})); return result; - }, $Ruby30__reduce_440$320.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_441', $Ruby30__reduce_441$321 = function $$_reduce_441(val, _values, result) { + $def(self, '$_reduce_450', function $$_reduce_450(val, _values, result) { var self = this; self.lexer.$cmdarg().$push(false); return result; - }, $Ruby30__reduce_441$321.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_442', $Ruby30__reduce_442$322 = function $$_reduce_442(val, _values, result) { + $def(self, '$_reduce_451', function $$_reduce_451(val, _values, result) { var self = this, args = nil; - args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { - return self.builder.$numargs(self.max_numparam_stack.$top()) - } else { - return val['$[]'](2) - }; return nil; })(); + args = ($truthy(self.max_numparam_stack['$has_numparams?']()) ? (self.builder.$numargs(self.max_numparam_stack.$top())) : (val['$[]'](2))); result = [args, val['$[]'](3)]; self.max_numparam_stack.$pop(); self.static_env.$unextend(); self.lexer.$cmdarg().$pop(); return result; - }, $Ruby30__reduce_442$322.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_443', $Ruby30__reduce_443$323 = function $$_reduce_443(val, _values, result) { + $def(self, '$_reduce_452', function $$_reduce_452(val, _values, result) { var self = this; - result = [self.builder.$when(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3))].concat(Opal.to_a(val['$[]'](4))); + result = [self.builder.$when(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3))].concat($to_a(val['$[]'](4))); return result; - }, $Ruby30__reduce_443$323.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_444', $Ruby30__reduce_444$324 = function $$_reduce_444(val, _values, result) { - var self = this; - + $def(self, '$_reduce_453', function $$_reduce_453(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_444$324.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_446', $Ruby30__reduce_446$325 = function $$_reduce_446(val, _values, result) { + $def(self, '$_reduce_455', function $$_reduce_455(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_beg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $send(self.lexer, 'command_start=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.pattern_variables.$push(); self.pattern_hash_keys.$push(); result = self.context.$in_kwarg(); $writer = [true]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_446$325.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_447', $Ruby30__reduce_447$326 = function $$_reduce_447(val, _values, result) { + $def(self, '$_reduce_456', function $$_reduce_456(val, _values, result) { var self = this, $writer = nil; @@ -26109,127 +23258,125 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.pattern_hash_keys.$pop(); $writer = [val['$[]'](1)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_447$326.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_448', $Ruby30__reduce_448$327 = function $$_reduce_448(val, _values, result) { + $def(self, '$_reduce_457', function $$_reduce_457(val, _values, result) { var self = this; - result = [$send(self.builder, 'in_pattern', [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3), val['$[]'](5)]))].concat(Opal.to_a(val['$[]'](6))); + result = [$send(self.builder, 'in_pattern', [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](3), val['$[]'](5)]))].concat($to_a(val['$[]'](6))); return result; - }, $Ruby30__reduce_448$327.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_449', $Ruby30__reduce_449$328 = function $$_reduce_449(val, _values, result) { - var self = this; - + $def(self, '$_reduce_458', function $$_reduce_458(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_449$328.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_451', $Ruby30__reduce_451$329 = function $$_reduce_451(val, _values, result) { - var self = this; - + $def(self, '$_reduce_460', function $$_reduce_460(val, _values, result) { + result = [val['$[]'](0), nil]; return result; - }, $Ruby30__reduce_451$329.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_452', $Ruby30__reduce_452$330 = function $$_reduce_452(val, _values, result) { + $def(self, '$_reduce_461', function $$_reduce_461(val, _values, result) { var self = this; result = [val['$[]'](0), self.builder.$if_guard(val['$[]'](1), val['$[]'](2))]; return result; - }, $Ruby30__reduce_452$330.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_453', $Ruby30__reduce_453$331 = function $$_reduce_453(val, _values, result) { + $def(self, '$_reduce_462', function $$_reduce_462(val, _values, result) { var self = this; result = [val['$[]'](0), self.builder.$unless_guard(val['$[]'](1), val['$[]'](2))]; return result; - }, $Ruby30__reduce_453$331.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_455', $Ruby30__reduce_455$332 = function $$_reduce_455(val, _values, result) { + $def(self, '$_reduce_464', function $$_reduce_464(val, _values, result) { var self = this, item = nil; item = self.builder.$match_with_trailing_comma(val['$[]'](0), val['$[]'](1)); result = self.builder.$array_pattern(nil, [item], nil); return result; - }, $Ruby30__reduce_455$332.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_456', $Ruby30__reduce_456$333 = function $$_reduce_456(val, _values, result) { + $def(self, '$_reduce_465', function $$_reduce_465(val, _values, result) { var self = this; result = self.builder.$array_pattern(nil, [val['$[]'](0)].$concat(val['$[]'](2)), nil); return result; - }, $Ruby30__reduce_456$333.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_457', $Ruby30__reduce_457$334 = function $$_reduce_457(val, _values, result) { + $def(self, '$_reduce_466', function $$_reduce_466(val, _values, result) { var self = this; result = self.builder.$find_pattern(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_457$334.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_458', $Ruby30__reduce_458$335 = function $$_reduce_458(val, _values, result) { + $def(self, '$_reduce_467', function $$_reduce_467(val, _values, result) { var self = this; result = self.builder.$array_pattern(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_458$335.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_459', $Ruby30__reduce_459$336 = function $$_reduce_459(val, _values, result) { + $def(self, '$_reduce_468', function $$_reduce_468(val, _values, result) { var self = this; result = self.builder.$hash_pattern(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_459$336.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_461', $Ruby30__reduce_461$337 = function $$_reduce_461(val, _values, result) { + $def(self, '$_reduce_470', function $$_reduce_470(val, _values, result) { var self = this; result = self.builder.$match_as(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_461$337.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_463', $Ruby30__reduce_463$338 = function $$_reduce_463(val, _values, result) { + $def(self, '$_reduce_472', function $$_reduce_472(val, _values, result) { var self = this; result = self.builder.$match_alt(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_463$338.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_465', $Ruby30__reduce_465$339 = function $$_reduce_465(val, _values, result) { + $def(self, '$_reduce_474', function $$_reduce_474(val, _values, result) { var self = this; result = val['$[]'](0); self.pattern_hash_keys.$push(); return result; - }, $Ruby30__reduce_465$339.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_466', $Ruby30__reduce_466$340 = function $$_reduce_466(val, _values, result) { + $def(self, '$_reduce_475', function $$_reduce_475(val, _values, result) { var self = this; result = val['$[]'](0); self.pattern_hash_keys.$push(); return result; - }, $Ruby30__reduce_466$340.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_468', $Ruby30__reduce_468$341 = function $$_reduce_468(val, _values, result) { + $def(self, '$_reduce_478', function $$_reduce_478(val, _values, result) { var self = this, pattern = nil; @@ -26237,9 +23384,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$array_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_468$341.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_469', $Ruby30__reduce_469$342 = function $$_reduce_469(val, _values, result) { + $def(self, '$_reduce_479', function $$_reduce_479(val, _values, result) { var self = this, pattern = nil; @@ -26247,9 +23394,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$find_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_469$342.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_470', $Ruby30__reduce_470$343 = function $$_reduce_470(val, _values, result) { + $def(self, '$_reduce_480', function $$_reduce_480(val, _values, result) { var self = this, pattern = nil; @@ -26257,18 +23404,18 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$hash_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_470$343.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_471', $Ruby30__reduce_471$344 = function $$_reduce_471(val, _values, result) { + $def(self, '$_reduce_481', function $$_reduce_481(val, _values, result) { var self = this, pattern = nil; pattern = self.builder.$array_pattern(val['$[]'](1), nil, val['$[]'](2)); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](2)); return result; - }, $Ruby30__reduce_471$344.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_472', $Ruby30__reduce_472$345 = function $$_reduce_472(val, _values, result) { + $def(self, '$_reduce_482', function $$_reduce_482(val, _values, result) { var self = this, pattern = nil; @@ -26276,9 +23423,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$array_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_472$345.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_473', $Ruby30__reduce_473$346 = function $$_reduce_473(val, _values, result) { + $def(self, '$_reduce_483', function $$_reduce_483(val, _values, result) { var self = this, pattern = nil; @@ -26286,9 +23433,9 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$find_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_473$346.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_474', $Ruby30__reduce_474$347 = function $$_reduce_474(val, _values, result) { + $def(self, '$_reduce_484', function $$_reduce_484(val, _values, result) { var self = this, pattern = nil; @@ -26296,42 +23443,42 @@ Opal.modules["parser/ruby30"] = function(Opal) { pattern = self.builder.$hash_pattern(nil, val['$[]'](2), nil); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); return result; - }, $Ruby30__reduce_474$347.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_475', $Ruby30__reduce_475$348 = function $$_reduce_475(val, _values, result) { + $def(self, '$_reduce_485', function $$_reduce_485(val, _values, result) { var self = this, pattern = nil; pattern = self.builder.$array_pattern(val['$[]'](1), nil, val['$[]'](2)); result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](2)); return result; - }, $Ruby30__reduce_475$348.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_476', $Ruby30__reduce_476$349 = function $$_reduce_476(val, _values, result) { + $def(self, '$_reduce_486', function $$_reduce_486(val, _values, result) { var self = this; result = self.builder.$array_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_476$349.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_477', $Ruby30__reduce_477$350 = function $$_reduce_477(val, _values, result) { + $def(self, '$_reduce_487', function $$_reduce_487(val, _values, result) { var self = this; result = self.builder.$find_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_477$350.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_478', $Ruby30__reduce_478$351 = function $$_reduce_478(val, _values, result) { + $def(self, '$_reduce_488', function $$_reduce_488(val, _values, result) { var self = this; result = self.builder.$array_pattern(val['$[]'](0), [], val['$[]'](1)); return result; - }, $Ruby30__reduce_478$351.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_479', $Ruby30__reduce_479$352 = function $$_reduce_479(val, _values, result) { + $def(self, '$_reduce_489', function $$_reduce_489(val, _values, result) { var self = this, $writer = nil; @@ -26339,684 +23486,667 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = self.context.$in_kwarg(); $writer = [false]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_479$352.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_480', $Ruby30__reduce_480$353 = function $$_reduce_480(val, _values, result) { + $def(self, '$_reduce_490', function $$_reduce_490(val, _values, result) { var self = this, $writer = nil; self.pattern_hash_keys.$pop(); $writer = [val['$[]'](1)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$hash_pattern(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_480$353.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_481', $Ruby30__reduce_481$354 = function $$_reduce_481(val, _values, result) { + $def(self, '$_reduce_491', function $$_reduce_491(val, _values, result) { var self = this; result = self.builder.$hash_pattern(val['$[]'](0), [], val['$[]'](1)); return result; - }, $Ruby30__reduce_481$354.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_482', $Ruby30__reduce_482$355 = function $$_reduce_482(val, _values, result) { + $def(self, '$_reduce_492', function $$_reduce_492(val, _values, result) { var self = this; self.pattern_hash_keys.$push(); return result; - }, $Ruby30__reduce_482$355.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_483', $Ruby30__reduce_483$356 = function $$_reduce_483(val, _values, result) { + $def(self, '$_reduce_493', function $$_reduce_493(val, _values, result) { var self = this; self.pattern_hash_keys.$pop(); result = self.builder.$begin(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_483$356.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_484', $Ruby30__reduce_484$357 = function $$_reduce_484(val, _values, result) { - var self = this; - + $def(self, '$_reduce_494', function $$_reduce_494(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_484$357.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_485', $Ruby30__reduce_485$358 = function $$_reduce_485(val, _values, result) { - var self = this; - + $def(self, '$_reduce_495', function $$_reduce_495(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_485$358.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_486', $Ruby30__reduce_486$359 = function $$_reduce_486(val, _values, result) { - var self = this; - + $def(self, '$_reduce_496', function $$_reduce_496(val, _values, result) { + - result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](1)]); + result = [].concat($to_a(val['$[]'](0))).concat([val['$[]'](1)]); return result; - }, $Ruby30__reduce_486$359.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_487', $Ruby30__reduce_487$360 = function $$_reduce_487(val, _values, result) { + $def(self, '$_reduce_497', function $$_reduce_497(val, _values, result) { var self = this, match_rest = nil; match_rest = self.builder.$match_rest(val['$[]'](1), val['$[]'](2)); - result = [].concat(Opal.to_a(val['$[]'](0))).concat([match_rest]); + result = [].concat($to_a(val['$[]'](0))).concat([match_rest]); return result; - }, $Ruby30__reduce_487$360.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_488', $Ruby30__reduce_488$361 = function $$_reduce_488(val, _values, result) { + $def(self, '$_reduce_498', function $$_reduce_498(val, _values, result) { var self = this, match_rest = nil; match_rest = self.builder.$match_rest(val['$[]'](1), val['$[]'](2)); - result = [].concat(Opal.to_a(val['$[]'](0))).concat([match_rest]).concat(Opal.to_a(val['$[]'](4))); + result = [].concat($to_a(val['$[]'](0))).concat([match_rest]).concat($to_a(val['$[]'](4))); return result; - }, $Ruby30__reduce_488$361.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_489', $Ruby30__reduce_489$362 = function $$_reduce_489(val, _values, result) { + $def(self, '$_reduce_499', function $$_reduce_499(val, _values, result) { var self = this; - result = [].concat(Opal.to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]); + result = [].concat($to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]); return result; - }, $Ruby30__reduce_489$362.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_490', $Ruby30__reduce_490$363 = function $$_reduce_490(val, _values, result) { + $def(self, '$_reduce_500', function $$_reduce_500(val, _values, result) { var self = this; - result = [].concat(Opal.to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]).concat(Opal.to_a(val['$[]'](3))); + result = [].concat($to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]).concat($to_a(val['$[]'](3))); return result; - }, $Ruby30__reduce_490$363.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_492', $Ruby30__reduce_492$364 = function $$_reduce_492(val, _values, result) { + $def(self, '$_reduce_502', function $$_reduce_502(val, _values, result) { var self = this, item = nil; item = self.builder.$match_with_trailing_comma(val['$[]'](0), val['$[]'](1)); result = [item]; return result; - }, $Ruby30__reduce_492$364.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_493', $Ruby30__reduce_493$365 = function $$_reduce_493(val, _values, result) { + $def(self, '$_reduce_503', function $$_reduce_503(val, _values, result) { var self = this, last_item = nil; last_item = self.builder.$match_with_trailing_comma(val['$[]'](1), val['$[]'](2)); - result = [].concat(Opal.to_a(val['$[]'](0))).concat([last_item]); + result = [].concat($to_a(val['$[]'](0))).concat([last_item]); return result; - }, $Ruby30__reduce_493$365.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_494', $Ruby30__reduce_494$366 = function $$_reduce_494(val, _values, result) { - var self = this; - + $def(self, '$_reduce_504', function $$_reduce_504(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_494$366.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_495', $Ruby30__reduce_495$367 = function $$_reduce_495(val, _values, result) { - var self = this; - + $def(self, '$_reduce_505', function $$_reduce_505(val, _values, result) { + - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))); + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))); return result; - }, $Ruby30__reduce_495$367.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_496', $Ruby30__reduce_496$368 = function $$_reduce_496(val, _values, result) { - var self = this; - + $def(self, '$_reduce_506', function $$_reduce_506(val, _values, result) { - result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](4)]); + + result = [val['$[]'](0)].concat($to_a(val['$[]'](2))).concat([val['$[]'](4)]); return result; - }, $Ruby30__reduce_496$368.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_497', $Ruby30__reduce_497$369 = function $$_reduce_497(val, _values, result) { + $def(self, '$_reduce_507', function $$_reduce_507(val, _values, result) { var self = this; result = self.builder.$match_rest(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_497$369.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_498', $Ruby30__reduce_498$370 = function $$_reduce_498(val, _values, result) { + $def(self, '$_reduce_508', function $$_reduce_508(val, _values, result) { var self = this; result = self.builder.$match_rest(val['$[]'](0)); return result; - }, $Ruby30__reduce_498$370.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_499', $Ruby30__reduce_499$371 = function $$_reduce_499(val, _values, result) { - var self = this; - + $def(self, '$_reduce_509', function $$_reduce_509(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_499$371.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_500', $Ruby30__reduce_500$372 = function $$_reduce_500(val, _values, result) { - var self = this; - + $def(self, '$_reduce_510', function $$_reduce_510(val, _values, result) { - result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](2)]); + + result = [].concat($to_a(val['$[]'](0))).concat([val['$[]'](2)]); return result; - }, $Ruby30__reduce_500$372.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_502', $Ruby30__reduce_502$373 = function $$_reduce_502(val, _values, result) { - var self = this; - + $def(self, '$_reduce_512', function $$_reduce_512(val, _values, result) { + - result = [].concat(Opal.to_a(val['$[]'](0))).concat(Opal.to_a(val['$[]'](2))); + result = [].concat($to_a(val['$[]'](0))).concat($to_a(val['$[]'](2))); return result; - }, $Ruby30__reduce_502$373.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_503', $Ruby30__reduce_503$374 = function $$_reduce_503(val, _values, result) { - var self = this; - + $def(self, '$_reduce_513', function $$_reduce_513(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_503$374.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_504', $Ruby30__reduce_504$375 = function $$_reduce_504(val, _values, result) { - var self = this; - + $def(self, '$_reduce_514', function $$_reduce_514(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_504$375.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_505', $Ruby30__reduce_505$376 = function $$_reduce_505(val, _values, result) { - var self = this; - + $def(self, '$_reduce_515', function $$_reduce_515(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_505$376.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_506', $Ruby30__reduce_506$377 = function $$_reduce_506(val, _values, result) { - var self = this; - + $def(self, '$_reduce_516', function $$_reduce_516(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_506$377.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_507', $Ruby30__reduce_507$378 = function $$_reduce_507(val, _values, result) { - var self = this; - + $def(self, '$_reduce_517', function $$_reduce_517(val, _values, result) { - result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](2)]); + + result = [].concat($to_a(val['$[]'](0))).concat([val['$[]'](2)]); return result; - }, $Ruby30__reduce_507$378.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_508', $Ruby30__reduce_508$379 = function $$_reduce_508(val, _values, result) { + $def(self, '$_reduce_518', function $$_reduce_518(val, _values, result) { var self = this; - result = $send(self.builder, 'match_pair', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1)])); + result = $send(self.builder, 'match_pair', $to_a(val['$[]'](0)).concat([val['$[]'](1)])); return result; - }, $Ruby30__reduce_508$379.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_509', $Ruby30__reduce_509$380 = function $$_reduce_509(val, _values, result) { + $def(self, '$_reduce_519', function $$_reduce_519(val, _values, result) { var self = this; - result = $send(self.builder, 'match_label', Opal.to_a(val['$[]'](0))); + result = $send(self.builder, 'match_label', $to_a(val['$[]'](0))); return result; - }, $Ruby30__reduce_509$380.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_510', $Ruby30__reduce_510$381 = function $$_reduce_510(val, _values, result) { - var self = this; - + $def(self, '$_reduce_520', function $$_reduce_520(val, _values, result) { + result = ["label", val['$[]'](0)]; return result; - }, $Ruby30__reduce_510$381.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_511', $Ruby30__reduce_511$382 = function $$_reduce_511(val, _values, result) { - var self = this; - + $def(self, '$_reduce_521', function $$_reduce_521(val, _values, result) { + result = ["quoted", [val['$[]'](0), val['$[]'](1), val['$[]'](2)]]; return result; - }, $Ruby30__reduce_511$382.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_512', $Ruby30__reduce_512$383 = function $$_reduce_512(val, _values, result) { + $def(self, '$_reduce_522', function $$_reduce_522(val, _values, result) { var self = this; result = [self.builder.$match_rest(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_512$383.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_513', $Ruby30__reduce_513$384 = function $$_reduce_513(val, _values, result) { + $def(self, '$_reduce_523', function $$_reduce_523(val, _values, result) { var self = this; result = [self.builder.$match_rest(val['$[]'](0), nil)]; return result; - }, $Ruby30__reduce_513$384.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_514', $Ruby30__reduce_514$385 = function $$_reduce_514(val, _values, result) { + $def(self, '$_reduce_524', function $$_reduce_524(val, _values, result) { var self = this; result = [self.builder.$match_nil_pattern(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_514$385.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_518', $Ruby30__reduce_518$386 = function $$_reduce_518(val, _values, result) { + $def(self, '$_reduce_528', function $$_reduce_528(val, _values, result) { var self = this; result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_518$386.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_519', $Ruby30__reduce_519$387 = function $$_reduce_519(val, _values, result) { + $def(self, '$_reduce_529', function $$_reduce_529(val, _values, result) { var self = this; result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_519$387.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_520', $Ruby30__reduce_520$388 = function $$_reduce_520(val, _values, result) { + $def(self, '$_reduce_530', function $$_reduce_530(val, _values, result) { var self = this; result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), nil); return result; - }, $Ruby30__reduce_520$388.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_521', $Ruby30__reduce_521$389 = function $$_reduce_521(val, _values, result) { + $def(self, '$_reduce_531', function $$_reduce_531(val, _values, result) { var self = this; result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), nil); return result; - }, $Ruby30__reduce_521$389.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_525', $Ruby30__reduce_525$390 = function $$_reduce_525(val, _values, result) { + $def(self, '$_reduce_535', function $$_reduce_535(val, _values, result) { var self = this; result = self.builder.$range_inclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_525$390.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_526', $Ruby30__reduce_526$391 = function $$_reduce_526(val, _values, result) { + $def(self, '$_reduce_536', function $$_reduce_536(val, _values, result) { var self = this; result = self.builder.$range_exclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_526$391.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_535', $Ruby30__reduce_535$392 = function $$_reduce_535(val, _values, result) { + $def(self, '$_reduce_545', function $$_reduce_545(val, _values, result) { var self = this; result = self.builder.$accessible(val['$[]'](0)); return result; - }, $Ruby30__reduce_535$392.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_537', $Ruby30__reduce_537$393 = function $$_reduce_537(val, _values, result) { + $def(self, '$_reduce_547', function $$_reduce_547(val, _values, result) { var self = this; result = self.builder.$assignable(self.builder.$match_var(val['$[]'](0))); return result; - }, $Ruby30__reduce_537$393.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_538', $Ruby30__reduce_538$394 = function $$_reduce_538(val, _values, result) { + $def(self, '$_reduce_548', function $$_reduce_548(val, _values, result) { var self = this, name = nil, lvar = nil; name = val['$[]'](1)['$[]'](0); - if ($truthy(self.$static_env()['$declared?'](name))) { - } else { + if (!$truthy(self.$static_env()['$declared?'](name))) { self.$diagnostic("error", "undefined_lvar", $hash2(["name"], {"name": name}), val['$[]'](1)) }; lvar = self.builder.$accessible(self.builder.$ident(val['$[]'](1))); result = self.builder.$pin(val['$[]'](0), lvar); return result; - }, $Ruby30__reduce_538$394.$$arity = 3); + }, 3); + + $def(self, '$_reduce_549', function $$_reduce_549(val, _values, result) { + var self = this, non_lvar = nil; + + + non_lvar = self.builder.$accessible(val['$[]'](1)); + result = self.builder.$pin(val['$[]'](0), non_lvar); + return result; + }, 3); + + $def(self, '$_reduce_550', function $$_reduce_550(val, _values, result) { + var self = this, expr = nil; + + + expr = self.builder.$begin(val['$[]'](1), val['$[]'](2), val['$[]'](3)); + result = self.builder.$pin(val['$[]'](0), expr); + return result; + }, 3); - Opal.def(self, '$_reduce_539', $Ruby30__reduce_539$395 = function $$_reduce_539(val, _values, result) { + $def(self, '$_reduce_551', function $$_reduce_551(val, _values, result) { var self = this; result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_539$395.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_540', $Ruby30__reduce_540$396 = function $$_reduce_540(val, _values, result) { + $def(self, '$_reduce_552', function $$_reduce_552(val, _values, result) { var self = this; result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_540$396.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_541', $Ruby30__reduce_541$397 = function $$_reduce_541(val, _values, result) { + $def(self, '$_reduce_553', function $$_reduce_553(val, _values, result) { var self = this; result = self.builder.$const(val['$[]'](0)); return result; - }, $Ruby30__reduce_541$397.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_542', $Ruby30__reduce_542$398 = function $$_reduce_542(val, _values, result) { + $def(self, '$_reduce_554', function $$_reduce_554(val, _values, result) { var $a, $b, self = this, assoc_t = nil, exc_var = nil, exc_list = nil; - $b = val['$[]'](2), $a = Opal.to_ary($b), (assoc_t = ($a[0] == null ? nil : $a[0])), (exc_var = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](2), $a = $to_ary($b), (assoc_t = ($a[0] == null ? nil : $a[0])), (exc_var = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(val['$[]'](1))) { - exc_list = self.builder.$array(nil, val['$[]'](1), nil)}; - result = [self.builder.$rescue_body(val['$[]'](0), exc_list, assoc_t, exc_var, val['$[]'](3), val['$[]'](4))].concat(Opal.to_a(val['$[]'](5))); + exc_list = self.builder.$array(nil, val['$[]'](1), nil) + }; + result = [self.builder.$rescue_body(val['$[]'](0), exc_list, assoc_t, exc_var, val['$[]'](3), val['$[]'](4))].concat($to_a(val['$[]'](5))); return result; - }, $Ruby30__reduce_542$398.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_543', $Ruby30__reduce_543$399 = function $$_reduce_543(val, _values, result) { - var self = this; - + $def(self, '$_reduce_555', function $$_reduce_555(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_543$399.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_544', $Ruby30__reduce_544$400 = function $$_reduce_544(val, _values, result) { - var self = this; - + $def(self, '$_reduce_556', function $$_reduce_556(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_544$400.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_547', $Ruby30__reduce_547$401 = function $$_reduce_547(val, _values, result) { - var self = this; - + $def(self, '$_reduce_559', function $$_reduce_559(val, _values, result) { + result = [val['$[]'](0), val['$[]'](1)]; return result; - }, $Ruby30__reduce_547$401.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_549', $Ruby30__reduce_549$402 = function $$_reduce_549(val, _values, result) { - var self = this; - + $def(self, '$_reduce_561', function $$_reduce_561(val, _values, result) { + result = [val['$[]'](0), val['$[]'](1)]; return result; - }, $Ruby30__reduce_549$402.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_553', $Ruby30__reduce_553$403 = function $$_reduce_553(val, _values, result) { + $def(self, '$_reduce_565', function $$_reduce_565(val, _values, result) { var self = this; result = self.builder.$string_compose(nil, val['$[]'](0), nil); return result; - }, $Ruby30__reduce_553$403.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_554', $Ruby30__reduce_554$404 = function $$_reduce_554(val, _values, result) { - var self = this; - + $def(self, '$_reduce_566', function $$_reduce_566(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_554$404.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_555', $Ruby30__reduce_555$405 = function $$_reduce_555(val, _values, result) { - var self = this; - + $def(self, '$_reduce_567', function $$_reduce_567(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_555$405.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_556', $Ruby30__reduce_556$406 = function $$_reduce_556(val, _values, result) { + $def(self, '$_reduce_568', function $$_reduce_568(val, _values, result) { var self = this, string = nil; string = self.builder.$string_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); return result; - }, $Ruby30__reduce_556$406.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_557', $Ruby30__reduce_557$407 = function $$_reduce_557(val, _values, result) { + $def(self, '$_reduce_569', function $$_reduce_569(val, _values, result) { var self = this, string = nil; string = self.builder.$string(val['$[]'](0)); result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); return result; - }, $Ruby30__reduce_557$407.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_558', $Ruby30__reduce_558$408 = function $$_reduce_558(val, _values, result) { + $def(self, '$_reduce_570', function $$_reduce_570(val, _values, result) { var self = this; result = self.builder.$character(val['$[]'](0)); return result; - }, $Ruby30__reduce_558$408.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_559', $Ruby30__reduce_559$409 = function $$_reduce_559(val, _values, result) { + $def(self, '$_reduce_571', function $$_reduce_571(val, _values, result) { var self = this, string = nil; string = self.builder.$xstring_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); return result; - }, $Ruby30__reduce_559$409.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_560', $Ruby30__reduce_560$410 = function $$_reduce_560(val, _values, result) { + $def(self, '$_reduce_572', function $$_reduce_572(val, _values, result) { var self = this, opts = nil; opts = self.builder.$regexp_options(val['$[]'](3)); result = self.builder.$regexp_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2), opts); return result; - }, $Ruby30__reduce_560$410.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_561', $Ruby30__reduce_561$411 = function $$_reduce_561(val, _values, result) { + $def(self, '$_reduce_573', function $$_reduce_573(val, _values, result) { var self = this; result = self.builder.$words_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_561$411.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_562', $Ruby30__reduce_562$412 = function $$_reduce_562(val, _values, result) { - var self = this; - + $def(self, '$_reduce_574', function $$_reduce_574(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_562$412.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_563', $Ruby30__reduce_563$413 = function $$_reduce_563(val, _values, result) { + $def(self, '$_reduce_575', function $$_reduce_575(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$word(val['$[]'](1))); return result; - }, $Ruby30__reduce_563$413.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_564', $Ruby30__reduce_564$414 = function $$_reduce_564(val, _values, result) { - var self = this; - + $def(self, '$_reduce_576', function $$_reduce_576(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_564$414.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_565', $Ruby30__reduce_565$415 = function $$_reduce_565(val, _values, result) { - var self = this; - + $def(self, '$_reduce_577', function $$_reduce_577(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_565$415.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_566', $Ruby30__reduce_566$416 = function $$_reduce_566(val, _values, result) { + $def(self, '$_reduce_578', function $$_reduce_578(val, _values, result) { var self = this; result = self.builder.$symbols_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_566$416.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_567', $Ruby30__reduce_567$417 = function $$_reduce_567(val, _values, result) { - var self = this; - + $def(self, '$_reduce_579', function $$_reduce_579(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_567$417.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_568', $Ruby30__reduce_568$418 = function $$_reduce_568(val, _values, result) { + $def(self, '$_reduce_580', function $$_reduce_580(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$word(val['$[]'](1))); return result; - }, $Ruby30__reduce_568$418.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_569', $Ruby30__reduce_569$419 = function $$_reduce_569(val, _values, result) { + $def(self, '$_reduce_581', function $$_reduce_581(val, _values, result) { var self = this; result = self.builder.$words_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_569$419.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_570', $Ruby30__reduce_570$420 = function $$_reduce_570(val, _values, result) { + $def(self, '$_reduce_582', function $$_reduce_582(val, _values, result) { var self = this; result = self.builder.$symbols_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_570$420.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_571', $Ruby30__reduce_571$421 = function $$_reduce_571(val, _values, result) { - var self = this; - + $def(self, '$_reduce_583', function $$_reduce_583(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_571$421.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_572', $Ruby30__reduce_572$422 = function $$_reduce_572(val, _values, result) { + $def(self, '$_reduce_584', function $$_reduce_584(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$string_internal(val['$[]'](1))); return result; - }, $Ruby30__reduce_572$422.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_573', $Ruby30__reduce_573$423 = function $$_reduce_573(val, _values, result) { - var self = this; - + $def(self, '$_reduce_585', function $$_reduce_585(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_573$423.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_574', $Ruby30__reduce_574$424 = function $$_reduce_574(val, _values, result) { + $def(self, '$_reduce_586', function $$_reduce_586(val, _values, result) { var self = this; result = val['$[]'](0)['$<<'](self.builder.$symbol_internal(val['$[]'](1))); return result; - }, $Ruby30__reduce_574$424.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_575', $Ruby30__reduce_575$425 = function $$_reduce_575(val, _values, result) { - var self = this; - + $def(self, '$_reduce_587', function $$_reduce_587(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_575$425.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_576', $Ruby30__reduce_576$426 = function $$_reduce_576(val, _values, result) { - var self = this; - + $def(self, '$_reduce_588', function $$_reduce_588(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_576$426.$$arity = 3); - - Opal.def(self, '$_reduce_577', $Ruby30__reduce_577$427 = function $$_reduce_577(val, _values, result) { - var self = this; - + }, 3); + + $def(self, '$_reduce_589', function $$_reduce_589(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_577$427.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_578', $Ruby30__reduce_578$428 = function $$_reduce_578(val, _values, result) { - var self = this; - + $def(self, '$_reduce_590', function $$_reduce_590(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_578$428.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_579', $Ruby30__reduce_579$429 = function $$_reduce_579(val, _values, result) { - var self = this; - + $def(self, '$_reduce_591', function $$_reduce_591(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_579$429.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_580', $Ruby30__reduce_580$430 = function $$_reduce_580(val, _values, result) { - var self = this; - + $def(self, '$_reduce_592', function $$_reduce_592(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, $Ruby30__reduce_580$430.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_581', $Ruby30__reduce_581$431 = function $$_reduce_581(val, _values, result) { + $def(self, '$_reduce_593', function $$_reduce_593(val, _values, result) { var self = this; result = self.builder.$string_internal(val['$[]'](0)); return result; - }, $Ruby30__reduce_581$431.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_582', $Ruby30__reduce_582$432 = function $$_reduce_582(val, _values, result) { - var self = this; - + $def(self, '$_reduce_594', function $$_reduce_594(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_582$432.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_583', $Ruby30__reduce_583$433 = function $$_reduce_583(val, _values, result) { + $def(self, '$_reduce_595', function $$_reduce_595(val, _values, result) { var self = this; self.lexer.$cmdarg().$push(false); self.lexer.$cond().$push(false); return result; - }, $Ruby30__reduce_583$433.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_584', $Ruby30__reduce_584$434 = function $$_reduce_584(val, _values, result) { + $def(self, '$_reduce_596', function $$_reduce_596(val, _values, result) { var self = this; @@ -27024,65 +24154,64 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.lexer.$cond().$pop(); result = self.builder.$begin(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_584$434.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_585', $Ruby30__reduce_585$435 = function $$_reduce_585(val, _values, result) { + $def(self, '$_reduce_597', function $$_reduce_597(val, _values, result) { var self = this; result = self.builder.$gvar(val['$[]'](0)); return result; - }, $Ruby30__reduce_585$435.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_586', $Ruby30__reduce_586$436 = function $$_reduce_586(val, _values, result) { + $def(self, '$_reduce_598', function $$_reduce_598(val, _values, result) { var self = this; result = self.builder.$ivar(val['$[]'](0)); return result; - }, $Ruby30__reduce_586$436.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_587', $Ruby30__reduce_587$437 = function $$_reduce_587(val, _values, result) { + $def(self, '$_reduce_599', function $$_reduce_599(val, _values, result) { var self = this; result = self.builder.$cvar(val['$[]'](0)); return result; - }, $Ruby30__reduce_587$437.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_591', $Ruby30__reduce_591$438 = function $$_reduce_591(val, _values, result) { + $def(self, '$_reduce_603', function $$_reduce_603(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$symbol(val['$[]'](0)); return result; - }, $Ruby30__reduce_591$438.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_592', $Ruby30__reduce_592$439 = function $$_reduce_592(val, _values, result) { + $def(self, '$_reduce_604', function $$_reduce_604(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$symbol_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_592$439.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_593', $Ruby30__reduce_593$440 = function $$_reduce_593(val, _values, result) { - var self = this; - + $def(self, '$_reduce_605', function $$_reduce_605(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_593$440.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_594', $Ruby30__reduce_594$441 = function $$_reduce_594(val, _values, result) { + $def(self, '$_reduce_606', function $$_reduce_606(val, _values, result) { var self = this; @@ -27092,503 +24221,505 @@ Opal.modules["parser/ruby30"] = function(Opal) { result = self.builder.$unary_num(val['$[]'](0), val['$[]'](1)) }; return result; - }, $Ruby30__reduce_594$441.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_595', $Ruby30__reduce_595$442 = function $$_reduce_595(val, _values, result) { + $def(self, '$_reduce_607', function $$_reduce_607(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$integer(val['$[]'](0)); return result; - }, $Ruby30__reduce_595$442.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_596', $Ruby30__reduce_596$443 = function $$_reduce_596(val, _values, result) { + $def(self, '$_reduce_608', function $$_reduce_608(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$float(val['$[]'](0)); return result; - }, $Ruby30__reduce_596$443.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_597', $Ruby30__reduce_597$444 = function $$_reduce_597(val, _values, result) { + $def(self, '$_reduce_609', function $$_reduce_609(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$rational(val['$[]'](0)); return result; - }, $Ruby30__reduce_597$444.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_598', $Ruby30__reduce_598$445 = function $$_reduce_598(val, _values, result) { + $def(self, '$_reduce_610', function $$_reduce_610(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_end"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$complex(val['$[]'](0)); return result; - }, $Ruby30__reduce_598$445.$$arity = 3); + }, 3); + + $def(self, '$_reduce_611', function $$_reduce_611(val, _values, result) { + var self = this; + + + result = self.builder.$ivar(val['$[]'](0)); + return result; + }, 3); + + $def(self, '$_reduce_612', function $$_reduce_612(val, _values, result) { + var self = this; + + + result = self.builder.$gvar(val['$[]'](0)); + return result; + }, 3); + + $def(self, '$_reduce_613', function $$_reduce_613(val, _values, result) { + var self = this; + + + result = self.builder.$cvar(val['$[]'](0)); + return result; + }, 3); - Opal.def(self, '$_reduce_599', $Ruby30__reduce_599$446 = function $$_reduce_599(val, _values, result) { + $def(self, '$_reduce_614', function $$_reduce_614(val, _values, result) { var self = this; result = self.builder.$ident(val['$[]'](0)); return result; - }, $Ruby30__reduce_599$446.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_600', $Ruby30__reduce_600$447 = function $$_reduce_600(val, _values, result) { + $def(self, '$_reduce_615', function $$_reduce_615(val, _values, result) { var self = this; result = self.builder.$ivar(val['$[]'](0)); return result; - }, $Ruby30__reduce_600$447.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_601', $Ruby30__reduce_601$448 = function $$_reduce_601(val, _values, result) { + $def(self, '$_reduce_616', function $$_reduce_616(val, _values, result) { var self = this; result = self.builder.$gvar(val['$[]'](0)); return result; - }, $Ruby30__reduce_601$448.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_602', $Ruby30__reduce_602$449 = function $$_reduce_602(val, _values, result) { + $def(self, '$_reduce_617', function $$_reduce_617(val, _values, result) { var self = this; result = self.builder.$const(val['$[]'](0)); return result; - }, $Ruby30__reduce_602$449.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_603', $Ruby30__reduce_603$450 = function $$_reduce_603(val, _values, result) { + $def(self, '$_reduce_618', function $$_reduce_618(val, _values, result) { var self = this; result = self.builder.$cvar(val['$[]'](0)); return result; - }, $Ruby30__reduce_603$450.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_604', $Ruby30__reduce_604$451 = function $$_reduce_604(val, _values, result) { + $def(self, '$_reduce_619', function $$_reduce_619(val, _values, result) { var self = this; result = self.builder.$nil(val['$[]'](0)); return result; - }, $Ruby30__reduce_604$451.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_605', $Ruby30__reduce_605$452 = function $$_reduce_605(val, _values, result) { + $def(self, '$_reduce_620', function $$_reduce_620(val, _values, result) { var self = this; result = self.builder.$self(val['$[]'](0)); return result; - }, $Ruby30__reduce_605$452.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_606', $Ruby30__reduce_606$453 = function $$_reduce_606(val, _values, result) { + $def(self, '$_reduce_621', function $$_reduce_621(val, _values, result) { var self = this; result = self.builder.$true(val['$[]'](0)); return result; - }, $Ruby30__reduce_606$453.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_607', $Ruby30__reduce_607$454 = function $$_reduce_607(val, _values, result) { + $def(self, '$_reduce_622', function $$_reduce_622(val, _values, result) { var self = this; result = self.builder.$false(val['$[]'](0)); return result; - }, $Ruby30__reduce_607$454.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_608', $Ruby30__reduce_608$455 = function $$_reduce_608(val, _values, result) { + $def(self, '$_reduce_623', function $$_reduce_623(val, _values, result) { var self = this; result = self.builder.$__FILE__(val['$[]'](0)); return result; - }, $Ruby30__reduce_608$455.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_609', $Ruby30__reduce_609$456 = function $$_reduce_609(val, _values, result) { + $def(self, '$_reduce_624', function $$_reduce_624(val, _values, result) { var self = this; result = self.builder.$__LINE__(val['$[]'](0)); return result; - }, $Ruby30__reduce_609$456.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_610', $Ruby30__reduce_610$457 = function $$_reduce_610(val, _values, result) { + $def(self, '$_reduce_625', function $$_reduce_625(val, _values, result) { var self = this; result = self.builder.$__ENCODING__(val['$[]'](0)); return result; - }, $Ruby30__reduce_610$457.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_611', $Ruby30__reduce_611$458 = function $$_reduce_611(val, _values, result) { + $def(self, '$_reduce_626', function $$_reduce_626(val, _values, result) { var self = this; result = self.builder.$accessible(val['$[]'](0)); return result; - }, $Ruby30__reduce_611$458.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_612', $Ruby30__reduce_612$459 = function $$_reduce_612(val, _values, result) { + $def(self, '$_reduce_627', function $$_reduce_627(val, _values, result) { var self = this; result = self.builder.$accessible(val['$[]'](0)); return result; - }, $Ruby30__reduce_612$459.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_613', $Ruby30__reduce_613$460 = function $$_reduce_613(val, _values, result) { + $def(self, '$_reduce_628', function $$_reduce_628(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_613$460.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_614', $Ruby30__reduce_614$461 = function $$_reduce_614(val, _values, result) { + $def(self, '$_reduce_629', function $$_reduce_629(val, _values, result) { var self = this; result = self.builder.$assignable(val['$[]'](0)); return result; - }, $Ruby30__reduce_614$461.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_615', $Ruby30__reduce_615$462 = function $$_reduce_615(val, _values, result) { + $def(self, '$_reduce_630', function $$_reduce_630(val, _values, result) { var self = this; result = self.builder.$nth_ref(val['$[]'](0)); return result; - }, $Ruby30__reduce_615$462.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_616', $Ruby30__reduce_616$463 = function $$_reduce_616(val, _values, result) { + $def(self, '$_reduce_631', function $$_reduce_631(val, _values, result) { var self = this; result = self.builder.$back_ref(val['$[]'](0)); return result; - }, $Ruby30__reduce_616$463.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_617', $Ruby30__reduce_617$464 = function $$_reduce_617(val, _values, result) { + $def(self, '$_reduce_632', function $$_reduce_632(val, _values, result) { var self = this, $writer = nil; $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_617$464.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_618', $Ruby30__reduce_618$465 = function $$_reduce_618(val, _values, result) { - var self = this; - + $def(self, '$_reduce_633', function $$_reduce_633(val, _values, result) { + result = [val['$[]'](0), val['$[]'](2)]; return result; - }, $Ruby30__reduce_618$465.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_619', $Ruby30__reduce_619$466 = function $$_reduce_619(val, _values, result) { - var self = this; - + $def(self, '$_reduce_634', function $$_reduce_634(val, _values, result) { + result = nil; return result; - }, $Ruby30__reduce_619$466.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_621', $Ruby30__reduce_621$467 = function $$_reduce_621(val, _values, result) { - var self = this; + $def(self, '$_reduce_636', function $$_reduce_636(val, _values, result) { + var self = this, $writer = nil; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$args(nil, [], nil); return result; - }, $Ruby30__reduce_621$467.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_622', $Ruby30__reduce_622$468 = function $$_reduce_622(val, _values, result) { + $def(self, '$_reduce_637', function $$_reduce_637(val, _values, result) { var self = this, $writer = nil; result = self.builder.$args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $send(self.lexer, 'state=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return result; - }, $Ruby30__reduce_622$468.$$arity = 3); - - Opal.def(self, '$_reduce_623', $Ruby30__reduce_623$469 = function $$_reduce_623(val, _values, result) { - var self = this, args = nil; - - args = [].concat(Opal.to_a(val['$[]'](1))).concat([self.builder.$forward_arg(val['$[]'](3))]); - result = self.builder.$args(val['$[]'](0), args, val['$[]'](4)); - self.static_env.$declare_forward_args(); + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_623$469.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_624', $Ruby30__reduce_624$470 = function $$_reduce_624(val, _values, result) { + $def(self, '$_reduce_639', function $$_reduce_639(val, _values, result) { var self = this, $writer = nil; - result = self.builder.$forward_only_args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - self.static_env.$declare_forward_args(); + result = self.context.$dup(); - $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer = [true]; + $send(self.context, 'in_kwarg=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return result; - }, $Ruby30__reduce_624$470.$$arity = 3); - - Opal.def(self, '$_reduce_626', $Ruby30__reduce_626$471 = function $$_reduce_626(val, _values, result) { - var self = this, $writer = nil; - - - result = self.context.$in_kwarg(); $writer = [true]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $send(self.context, 'in_argdef=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $Ruby30__reduce_626$471.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_627', $Ruby30__reduce_627$472 = function $$_reduce_627(val, _values, result) { + $def(self, '$_reduce_640', function $$_reduce_640(val, _values, result) { var self = this, $writer = nil; - $writer = [val['$[]'](0)]; - $send(self.context, 'in_kwarg=', Opal.to_a($writer)); + $writer = [val['$[]'](0).$in_kwarg()]; + $send(self.context, 'in_kwarg=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$args(nil, val['$[]'](1), nil); return result; - }, $Ruby30__reduce_627$472.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_628', $Ruby30__reduce_628$473 = function $$_reduce_628(val, _values, result) { - var self = this; - + $def(self, '$_reduce_641', function $$_reduce_641(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_628$473.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_629', $Ruby30__reduce_629$474 = function $$_reduce_629(val, _values, result) { - var self = this; - + $def(self, '$_reduce_642', function $$_reduce_642(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_629$474.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_630', $Ruby30__reduce_630$475 = function $$_reduce_630(val, _values, result) { - var self = this; - + $def(self, '$_reduce_643', function $$_reduce_643(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_630$475.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_631', $Ruby30__reduce_631$476 = function $$_reduce_631(val, _values, result) { - var self = this; - + $def(self, '$_reduce_644', function $$_reduce_644(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_631$476.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_632', $Ruby30__reduce_632$477 = function $$_reduce_632(val, _values, result) { + $def(self, '$_reduce_645', function $$_reduce_645(val, _values, result) { var self = this; + self.static_env.$declare_forward_args(); + result = [self.builder.$forward_arg(val['$[]'](0))]; + return result; + }, 3); + + $def(self, '$_reduce_646', function $$_reduce_646(val, _values, result) { + + result = val['$[]'](1); return result; - }, $Ruby30__reduce_632$477.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_633', $Ruby30__reduce_633$478 = function $$_reduce_633(val, _values, result) { - var self = this; - + $def(self, '$_reduce_647', function $$_reduce_647(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_633$478.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_634', $Ruby30__reduce_634$479 = function $$_reduce_634(val, _values, result) { - var self = this; - + $def(self, '$_reduce_648', function $$_reduce_648(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_634$479.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_635', $Ruby30__reduce_635$480 = function $$_reduce_635(val, _values, result) { - var self = this; - + $def(self, '$_reduce_649', function $$_reduce_649(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](6)).$concat(val['$[]'](7)); return result; - }, $Ruby30__reduce_635$480.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_636', $Ruby30__reduce_636$481 = function $$_reduce_636(val, _values, result) { - var self = this; - + $def(self, '$_reduce_650', function $$_reduce_650(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_636$481.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_637', $Ruby30__reduce_637$482 = function $$_reduce_637(val, _values, result) { - var self = this; - + $def(self, '$_reduce_651', function $$_reduce_651(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_637$482.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_638', $Ruby30__reduce_638$483 = function $$_reduce_638(val, _values, result) { - var self = this; - + $def(self, '$_reduce_652', function $$_reduce_652(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_638$483.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_639', $Ruby30__reduce_639$484 = function $$_reduce_639(val, _values, result) { - var self = this; - + $def(self, '$_reduce_653', function $$_reduce_653(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_639$484.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_640', $Ruby30__reduce_640$485 = function $$_reduce_640(val, _values, result) { - var self = this; - + $def(self, '$_reduce_654', function $$_reduce_654(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_640$485.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_641', $Ruby30__reduce_641$486 = function $$_reduce_641(val, _values, result) { - var self = this; - + $def(self, '$_reduce_655', function $$_reduce_655(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_641$486.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_642', $Ruby30__reduce_642$487 = function $$_reduce_642(val, _values, result) { - var self = this; - + $def(self, '$_reduce_656', function $$_reduce_656(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, $Ruby30__reduce_642$487.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_643', $Ruby30__reduce_643$488 = function $$_reduce_643(val, _values, result) { - var self = this; - + $def(self, '$_reduce_657', function $$_reduce_657(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_643$488.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_644', $Ruby30__reduce_644$489 = function $$_reduce_644(val, _values, result) { - var self = this; - + $def(self, '$_reduce_658', function $$_reduce_658(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_644$489.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_645', $Ruby30__reduce_645$490 = function $$_reduce_645(val, _values, result) { - var self = this; - + $def(self, '$_reduce_659', function $$_reduce_659(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, $Ruby30__reduce_645$490.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_646', $Ruby30__reduce_646$491 = function $$_reduce_646(val, _values, result) { - var self = this; - + $def(self, '$_reduce_660', function $$_reduce_660(val, _values, result) { + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, $Ruby30__reduce_646$491.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_647', $Ruby30__reduce_647$492 = function $$_reduce_647(val, _values, result) { - var self = this; - + $def(self, '$_reduce_661', function $$_reduce_661(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_647$492.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_648', $Ruby30__reduce_648$493 = function $$_reduce_648(val, _values, result) { - var self = this; - + $def(self, '$_reduce_662', function $$_reduce_662(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_648$493.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_649', $Ruby30__reduce_649$494 = function $$_reduce_649(val, _values, result) { - var self = this; - + $def(self, '$_reduce_663', function $$_reduce_663(val, _values, result) { + result = val['$[]'](0); return result; - }, $Ruby30__reduce_649$494.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_650', $Ruby30__reduce_650$495 = function $$_reduce_650(val, _values, result) { + $def(self, '$_reduce_664', function $$_reduce_664(val, _values, result) { var self = this; self.$diagnostic("error", "argument_const", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_650$495.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_651', $Ruby30__reduce_651$496 = function $$_reduce_651(val, _values, result) { + $def(self, '$_reduce_665', function $$_reduce_665(val, _values, result) { var self = this; self.$diagnostic("error", "argument_ivar", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_651$496.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_652', $Ruby30__reduce_652$497 = function $$_reduce_652(val, _values, result) { + $def(self, '$_reduce_666', function $$_reduce_666(val, _values, result) { var self = this; self.$diagnostic("error", "argument_gvar", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_652$497.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_653', $Ruby30__reduce_653$498 = function $$_reduce_653(val, _values, result) { + $def(self, '$_reduce_667', function $$_reduce_667(val, _values, result) { var self = this; self.$diagnostic("error", "argument_cvar", nil, val['$[]'](0)); return result; - }, $Ruby30__reduce_653$498.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_655', $Ruby30__reduce_655$499 = function $$_reduce_655(val, _values, result) { + $def(self, '$_reduce_669', function $$_reduce_669(val, _values, result) { var self = this; @@ -27596,384 +24727,402 @@ Opal.modules["parser/ruby30"] = function(Opal) { self.max_numparam_stack['$has_ordinary_params!'](); result = val['$[]'](0); return result; - }, $Ruby30__reduce_655$499.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_656', $Ruby30__reduce_656$500 = function $$_reduce_656(val, _values, result) { + $def(self, '$_reduce_670', function $$_reduce_670(val, _values, result) { var self = this; self.current_arg_stack.$set(val['$[]'](0)['$[]'](0)); result = val['$[]'](0); return result; - }, $Ruby30__reduce_656$500.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_657', $Ruby30__reduce_657$501 = function $$_reduce_657(val, _values, result) { + $def(self, '$_reduce_671', function $$_reduce_671(val, _values, result) { var self = this; self.current_arg_stack.$set(0); result = self.builder.$arg(val['$[]'](0)); return result; - }, $Ruby30__reduce_657$501.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_658', $Ruby30__reduce_658$502 = function $$_reduce_658(val, _values, result) { + $def(self, '$_reduce_672', function $$_reduce_672(val, _values, result) { var self = this; result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_658$502.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_659', $Ruby30__reduce_659$503 = function $$_reduce_659(val, _values, result) { - var self = this; - + $def(self, '$_reduce_673', function $$_reduce_673(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_659$503.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_660', $Ruby30__reduce_660$504 = function $$_reduce_660(val, _values, result) { - var self = this; - + $def(self, '$_reduce_674', function $$_reduce_674(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_660$504.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_661', $Ruby30__reduce_661$505 = function $$_reduce_661(val, _values, result) { - var self = this; + $def(self, '$_reduce_675', function $$_reduce_675(val, _values, result) { + var self = this, $writer = nil; self.$check_kwarg_name(val['$[]'](0)); self.static_env.$declare(val['$[]'](0)['$[]'](0)); self.max_numparam_stack['$has_ordinary_params!'](); self.current_arg_stack.$set(val['$[]'](0)['$[]'](0)); + + $writer = [false]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = val['$[]'](0); return result; - }, $Ruby30__reduce_661$505.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_662', $Ruby30__reduce_662$506 = function $$_reduce_662(val, _values, result) { - var self = this; + $def(self, '$_reduce_676', function $$_reduce_676(val, _values, result) { + var self = this, $writer = nil; self.current_arg_stack.$set(nil); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$kwoptarg(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_662$506.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_663', $Ruby30__reduce_663$507 = function $$_reduce_663(val, _values, result) { - var self = this; + $def(self, '$_reduce_677', function $$_reduce_677(val, _values, result) { + var self = this, $writer = nil; self.current_arg_stack.$set(nil); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$kwarg(val['$[]'](0)); return result; - }, $Ruby30__reduce_663$507.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_664', $Ruby30__reduce_664$508 = function $$_reduce_664(val, _values, result) { - var self = this; + $def(self, '$_reduce_678', function $$_reduce_678(val, _values, result) { + var self = this, $writer = nil; + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$kwoptarg(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_664$508.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_665', $Ruby30__reduce_665$509 = function $$_reduce_665(val, _values, result) { - var self = this; + $def(self, '$_reduce_679', function $$_reduce_679(val, _values, result) { + var self = this, $writer = nil; + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$kwarg(val['$[]'](0)); return result; - }, $Ruby30__reduce_665$509.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_666', $Ruby30__reduce_666$510 = function $$_reduce_666(val, _values, result) { - var self = this; - + $def(self, '$_reduce_680', function $$_reduce_680(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_666$510.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_667', $Ruby30__reduce_667$511 = function $$_reduce_667(val, _values, result) { - var self = this; - + $def(self, '$_reduce_681', function $$_reduce_681(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_667$511.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_668', $Ruby30__reduce_668$512 = function $$_reduce_668(val, _values, result) { - var self = this; - + $def(self, '$_reduce_682', function $$_reduce_682(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_668$512.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_669', $Ruby30__reduce_669$513 = function $$_reduce_669(val, _values, result) { - var self = this; - + $def(self, '$_reduce_683', function $$_reduce_683(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_669$513.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_672', $Ruby30__reduce_672$514 = function $$_reduce_672(val, _values, result) { + $def(self, '$_reduce_686', function $$_reduce_686(val, _values, result) { var self = this; result = [self.builder.$kwnilarg(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_672$514.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_673', $Ruby30__reduce_673$515 = function $$_reduce_673(val, _values, result) { + $def(self, '$_reduce_687', function $$_reduce_687(val, _values, result) { var self = this; self.static_env.$declare(val['$[]'](1)['$[]'](0)); result = [self.builder.$kwrestarg(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_673$515.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_674', $Ruby30__reduce_674$516 = function $$_reduce_674(val, _values, result) { + $def(self, '$_reduce_688', function $$_reduce_688(val, _values, result) { var self = this; result = [self.builder.$kwrestarg(val['$[]'](0))]; return result; - }, $Ruby30__reduce_674$516.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_675', $Ruby30__reduce_675$517 = function $$_reduce_675(val, _values, result) { - var self = this; + $def(self, '$_reduce_689', function $$_reduce_689(val, _values, result) { + var self = this, $writer = nil; self.current_arg_stack.$set(0); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$optarg(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_675$517.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_676', $Ruby30__reduce_676$518 = function $$_reduce_676(val, _values, result) { - var self = this; + $def(self, '$_reduce_690', function $$_reduce_690(val, _values, result) { + var self = this, $writer = nil; self.current_arg_stack.$set(0); + + $writer = [true]; + $send(self.context, 'in_argdef=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; result = self.builder.$optarg(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_676$518.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_677', $Ruby30__reduce_677$519 = function $$_reduce_677(val, _values, result) { - var self = this; - + $def(self, '$_reduce_691', function $$_reduce_691(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_677$519.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_678', $Ruby30__reduce_678$520 = function $$_reduce_678(val, _values, result) { - var self = this; - + $def(self, '$_reduce_692', function $$_reduce_692(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_678$520.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_679', $Ruby30__reduce_679$521 = function $$_reduce_679(val, _values, result) { - var self = this; - + $def(self, '$_reduce_693', function $$_reduce_693(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_679$521.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_680', $Ruby30__reduce_680$522 = function $$_reduce_680(val, _values, result) { - var self = this; - + $def(self, '$_reduce_694', function $$_reduce_694(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_680$522.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_683', $Ruby30__reduce_683$523 = function $$_reduce_683(val, _values, result) { + $def(self, '$_reduce_697', function $$_reduce_697(val, _values, result) { var self = this; self.static_env.$declare(val['$[]'](1)['$[]'](0)); result = [self.builder.$restarg(val['$[]'](0), val['$[]'](1))]; return result; - }, $Ruby30__reduce_683$523.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_684', $Ruby30__reduce_684$524 = function $$_reduce_684(val, _values, result) { + $def(self, '$_reduce_698', function $$_reduce_698(val, _values, result) { var self = this; result = [self.builder.$restarg(val['$[]'](0))]; return result; - }, $Ruby30__reduce_684$524.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_687', $Ruby30__reduce_687$525 = function $$_reduce_687(val, _values, result) { + $def(self, '$_reduce_701', function $$_reduce_701(val, _values, result) { var self = this; self.static_env.$declare(val['$[]'](1)['$[]'](0)); result = self.builder.$blockarg(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_687$525.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_688', $Ruby30__reduce_688$526 = function $$_reduce_688(val, _values, result) { + $def(self, '$_reduce_702', function $$_reduce_702(val, _values, result) { var self = this; + self.static_env.$declare_anonymous_blockarg(); + result = self.builder.$blockarg(val['$[]'](0), nil); + return result; + }, 3); + + $def(self, '$_reduce_703', function $$_reduce_703(val, _values, result) { + + result = [val['$[]'](1)]; return result; - }, $Ruby30__reduce_688$526.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_689', $Ruby30__reduce_689$527 = function $$_reduce_689(val, _values, result) { - var self = this; - + $def(self, '$_reduce_704', function $$_reduce_704(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_689$527.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_691', $Ruby30__reduce_691$528 = function $$_reduce_691(val, _values, result) { - var self = this; - + $def(self, '$_reduce_706', function $$_reduce_706(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_691$528.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_692', $Ruby30__reduce_692$529 = function $$_reduce_692(val, _values, result) { - var self = this; - + $def(self, '$_reduce_707', function $$_reduce_707(val, _values, result) { + result = []; return result; - }, $Ruby30__reduce_692$529.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_694', $Ruby30__reduce_694$530 = function $$_reduce_694(val, _values, result) { - var self = this; - + $def(self, '$_reduce_709', function $$_reduce_709(val, _values, result) { + result = [val['$[]'](0)]; return result; - }, $Ruby30__reduce_694$530.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_695', $Ruby30__reduce_695$531 = function $$_reduce_695(val, _values, result) { - var self = this; - + $def(self, '$_reduce_710', function $$_reduce_710(val, _values, result) { + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, $Ruby30__reduce_695$531.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_696', $Ruby30__reduce_696$532 = function $$_reduce_696(val, _values, result) { + $def(self, '$_reduce_711', function $$_reduce_711(val, _values, result) { var self = this; result = self.builder.$pair(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, $Ruby30__reduce_696$532.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_697', $Ruby30__reduce_697$533 = function $$_reduce_697(val, _values, result) { + $def(self, '$_reduce_712', function $$_reduce_712(val, _values, result) { var self = this; result = self.builder.$pair_keyword(val['$[]'](0), val['$[]'](1)); return result; - }, $Ruby30__reduce_697$533.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_698', $Ruby30__reduce_698$534 = function $$_reduce_698(val, _values, result) { + $def(self, '$_reduce_713', function $$_reduce_713(val, _values, result) { var self = this; - result = self.builder.$pair_quoted(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + result = self.builder.$pair_label(val['$[]'](0)); return result; - }, $Ruby30__reduce_698$534.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_699', $Ruby30__reduce_699$535 = function $$_reduce_699(val, _values, result) { + $def(self, '$_reduce_714', function $$_reduce_714(val, _values, result) { var self = this; - result = self.builder.$kwsplat(val['$[]'](0), val['$[]'](1)); + result = self.builder.$pair_quoted(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, $Ruby30__reduce_699$535.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_712', $Ruby30__reduce_712$536 = function $$_reduce_712(val, _values, result) { + $def(self, '$_reduce_715', function $$_reduce_715(val, _values, result) { var self = this; + result = self.builder.$kwsplat(val['$[]'](0), val['$[]'](1)); + return result; + }, 3); + + $def(self, '$_reduce_728', function $$_reduce_728(val, _values, result) { + + result = ["dot", val['$[]'](0)['$[]'](1)]; return result; - }, $Ruby30__reduce_712$536.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_713', $Ruby30__reduce_713$537 = function $$_reduce_713(val, _values, result) { - var self = this; - + $def(self, '$_reduce_729', function $$_reduce_729(val, _values, result) { + result = ["anddot", val['$[]'](0)['$[]'](1)]; return result; - }, $Ruby30__reduce_713$537.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_718', $Ruby30__reduce_718$538 = function $$_reduce_718(val, _values, result) { - var self = this; - + $def(self, '$_reduce_734', function $$_reduce_734(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_718$538.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_719', $Ruby30__reduce_719$539 = function $$_reduce_719(val, _values, result) { - var self = this; - + $def(self, '$_reduce_735', function $$_reduce_735(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_719$539.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_720', $Ruby30__reduce_720$540 = function $$_reduce_720(val, _values, result) { - var self = this; - + $def(self, '$_reduce_736', function $$_reduce_736(val, _values, result) { + result = val['$[]'](1); return result; - }, $Ruby30__reduce_720$540.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_724', $Ruby30__reduce_724$541 = function $$_reduce_724(val, _values, result) { + $def(self, '$_reduce_740', function $$_reduce_740(val, _values, result) { var self = this; self.$yyerrok(); return result; - }, $Ruby30__reduce_724$541.$$arity = 3); + }, 3); - Opal.def(self, '$_reduce_728', $Ruby30__reduce_728$542 = function $$_reduce_728(val, _values, result) { - var self = this; - + $def(self, '$_reduce_744', function $$_reduce_744(val, _values, result) { + result = nil; return result; - }, $Ruby30__reduce_728$542.$$arity = 3); - return (Opal.def(self, '$_reduce_none', $Ruby30__reduce_none$543 = function $$_reduce_none(val, _values, result) { - var self = this; - + }, 3); + return $def(self, '$_reduce_none', function $$_reduce_none(val, _values, result) { + return val['$[]'](0) - }, $Ruby30__reduce_none$543.$$arity = 3), nil) && '_reduce_none'; - })($nesting[0], $$$($$($nesting, 'Parser'), 'Base'), $nesting) + }, 3); + })($nesting[0], $$$($$('Parser'), 'Base'), $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/ast/builder"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["opal/ast/builder"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $Opal = Opal.Opal, $hash2 = Opal.hash2, $def = Opal.def; - Opal.add_stubs(['$require', '$emit_lambda=', '$-', '$new']); + Opal.add_stubs('require,emit_lambda=,-,new'); self.$require("opal/ast/node"); - self.$require("parser/ruby30"); + self.$require("parser/ruby31"); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -27984,37 +25133,29 @@ Opal.modules["opal/ast/builder"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Builder'); - var $nesting = [self].concat($parent_nesting), $Builder_n$1, $writer = nil; + var $writer = nil; $writer = [true]; - $send(self, 'emit_lambda=', Opal.to_a($writer)); + $send(self, 'emit_lambda=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return (Opal.def(self, '$n', $Builder_n$1 = function $$n(type, children, location) { - var self = this; - - return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": location})) - }, $Builder_n$1.$$arity = 3), nil) && 'n'; - })($nesting[0], $$$($$$($$$('::', 'Parser'), 'Builders'), 'Default'), $nesting) + return $def(self, '$n', function $$n(type, children, location) { + + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": location})) + }, 3); + })($nesting[0], $$$($$$($$$('Parser'), 'Builders'), 'Default')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/base"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $alias = Opal.alias, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $const_set = Opal.const_set, $truthy = Opal.truthy, $Opal = Opal.Opal, $hash2 = Opal.hash2, $defs = Opal.defs, $alias = Opal.alias, $rb_plus = Opal.rb_plus, $eqeqeq = Opal.eqeqeq, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$new', '$current_node', '$loc', '$+', '$stmts_of', '$begin_with_stmts', '$nil?', '$include?', '$type', '$children', '$length', '$===', '$[]', '$s', '$attr_accessor', '$current_node=', '$-', '$location=', '$raise']); + Opal.add_stubs('require,new,current_node,loc,+,stmts_of,begin_with_stmts,nil?,include?,type,children,===,length,[],s,attr_accessor,current_node=,-,location=,raise,process_regular_node,[]=,meta'); self.$require("parser"); self.$require("opal/ast/node"); @@ -28031,121 +25172,111 @@ Opal.modules["opal/rewriters/base"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Base'); - var $nesting = [self].concat($parent_nesting), $Base_s$9, $Base_s$10, $Base_prepend_to_body$11, $Base_append_to_body$12, $Base_stmts_of$13, $Base_begin_with_stmts$14, $Base_process$15, $Base_error$16; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + $proto.dynamic_cache_result = nil; (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'DummyLocation'); - var $nesting = [self].concat($parent_nesting), $DummyLocation_node$eq$1, $DummyLocation_expression$2, $DummyLocation_begin_pos$3, $DummyLocation_end_pos$4, $DummyLocation_source$5, $DummyLocation_line$6, $DummyLocation_column$7, $DummyLocation_last_line$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$node=', $DummyLocation_node$eq$1 = function($a) { - var $post_args, self = this; + $def(self, '$node=', function $DummyLocation_node$eq$1($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $DummyLocation_node$eq$1.$$arity = -1); + }, -1); - Opal.def(self, '$expression', $DummyLocation_expression$2 = function $$expression() { + $def(self, '$expression', function $$expression() { var self = this; return self - }, $DummyLocation_expression$2.$$arity = 0); - - Opal.def(self, '$begin_pos', $DummyLocation_begin_pos$3 = function $$begin_pos() { - var self = this; - + }, 0); + + $def(self, '$begin_pos', function $$begin_pos() { + return 0 - }, $DummyLocation_begin_pos$3.$$arity = 0); + }, 0); - Opal.def(self, '$end_pos', $DummyLocation_end_pos$4 = function $$end_pos() { - var self = this; - + $def(self, '$end_pos', function $$end_pos() { + return 0 - }, $DummyLocation_end_pos$4.$$arity = 0); + }, 0); - Opal.def(self, '$source', $DummyLocation_source$5 = function $$source() { - var self = this; - + $def(self, '$source', function $$source() { + return "" - }, $DummyLocation_source$5.$$arity = 0); + }, 0); - Opal.def(self, '$line', $DummyLocation_line$6 = function $$line() { - var self = this; - + $def(self, '$line', function $$line() { + return 0 - }, $DummyLocation_line$6.$$arity = 0); + }, 0); - Opal.def(self, '$column', $DummyLocation_column$7 = function $$column() { - var self = this; - + $def(self, '$column', function $$column() { + return 0 - }, $DummyLocation_column$7.$$arity = 0); - return (Opal.def(self, '$last_line', $DummyLocation_last_line$8 = function $$last_line() { - var self = this; - - return $$$($$($nesting, 'Float'), 'INFINITY') - }, $DummyLocation_last_line$8.$$arity = 0), nil) && 'last_line'; + }, 0); + return $def(self, '$last_line', function $$last_line() { + + return $$$($$('Float'), 'INFINITY') + }, 0); })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'DUMMY_LOCATION', $$($nesting, 'DummyLocation').$new()); + $const_set($nesting[0], 'DUMMY_LOCATION', $$('DummyLocation').$new()); - Opal.def(self, '$s', $Base_s$9 = function $$s(type, $a) { + $def(self, '$s', function $$s(type, $a) { var $post_args, children, self = this, loc = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); children = $post_args;; - loc = (function() {if ($truthy(self.$current_node())) { - return self.$current_node().$loc() - } else { - return $$($nesting, 'DUMMY_LOCATION') - }; return nil; })(); - return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": loc})); - }, $Base_s$9.$$arity = -2); - Opal.defs(self, '$s', $Base_s$10 = function $$s(type, $a) { - var $post_args, children, self = this; + loc = ($truthy(self.$current_node()) ? (self.$current_node().$loc()) : ($$('DUMMY_LOCATION'))); + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": loc})); + }, -2); + $defs(self, '$s', function $$s(type, $a) { + var $post_args, children; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); children = $post_args;; - return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": $$($nesting, 'DUMMY_LOCATION')})); - }, $Base_s$10.$$arity = -2); + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": $$('DUMMY_LOCATION')})); + }, -2); $alias(self, "on_iter", "process_regular_node"); - $alias(self, "on_top", "process_regular_node"); $alias(self, "on_zsuper", "process_regular_node"); $alias(self, "on_jscall", "on_send"); $alias(self, "on_jsattr", "process_regular_node"); $alias(self, "on_jsattrasgn", "process_regular_node"); $alias(self, "on_kwsplat", "process_regular_node"); - Opal.def(self, '$prepend_to_body', $Base_prepend_to_body$11 = function $$prepend_to_body(body, node) { + $def(self, '$prepend_to_body', function $$prepend_to_body(body, node) { var self = this, stmts = nil; stmts = $rb_plus(self.$stmts_of(node), self.$stmts_of(body)); return self.$begin_with_stmts(stmts); - }, $Base_prepend_to_body$11.$$arity = 2); + }, 2); - Opal.def(self, '$append_to_body', $Base_append_to_body$12 = function $$append_to_body(body, node) { + $def(self, '$append_to_body', function $$append_to_body(body, node) { var self = this, stmts = nil; stmts = $rb_plus(self.$stmts_of(body), self.$stmts_of(node)); return self.$begin_with_stmts(stmts); - }, $Base_append_to_body$12.$$arity = 2); + }, 2); - Opal.def(self, '$stmts_of', $Base_stmts_of$13 = function $$stmts_of(node) { - var self = this; - + $def(self, '$stmts_of', function $$stmts_of(node) { + if ($truthy(node['$nil?']())) { return [] } else if ($truthy(["begin", "kwbegin"]['$include?'](node.$type()))) { @@ -28153,59 +25284,78 @@ Opal.modules["opal/rewriters/base"] = function(Opal) { } else { return [node] } - }, $Base_stmts_of$13.$$arity = 1); + }, 1); - Opal.def(self, '$begin_with_stmts', $Base_begin_with_stmts$14 = function $$begin_with_stmts(stmts) { - var self = this, $case = nil; + $def(self, '$begin_with_stmts', function $$begin_with_stmts(stmts) { + var self = this, $ret_or_1 = nil; - return (function() {$case = stmts.$length(); - if ((0)['$===']($case)) {return nil} - else if ((1)['$===']($case)) {return stmts['$[]'](0)} - else {return $send(self, 's', ["begin"].concat(Opal.to_a(stmts)))}})() - }, $Base_begin_with_stmts$14.$$arity = 1); + if ($eqeqeq(0, ($ret_or_1 = stmts.$length()))) { + return nil + } else if ($eqeqeq(1, $ret_or_1)) { + return stmts['$[]'](0) + } else { + return $send(self, 's', ["begin"].concat($to_a(stmts))) + } + }, 1); self.$attr_accessor("current_node"); - Opal.def(self, '$process', $Base_process$15 = function $$process(node) { - var $iter = $Base_process$15.$$p, $yield = $iter || nil, self = this, $writer = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$process', function $$process(node) { + var $yield = $$process.$$p || nil, self = this, $writer = nil; - if ($iter) $Base_process$15.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$process.$$p; return (function() { try { $writer = [node]; - $send(self, 'current_node=', Opal.to_a($writer)); + $send(self, 'current_node=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send2(self, $find_super(self, 'process', $Base_process$15, false, true), 'process', $zuper, $iter); + return $send2(self, $find_super(self, 'process', $$process, false, true), 'process', [node], $yield); } finally { - (($writer = [nil]), $send(self, 'current_node=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) + (($writer = [nil]), $send(self, 'current_node=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) }; })() - }, $Base_process$15.$$arity = 1); - return (Opal.def(self, '$error', $Base_error$16 = function $$error(msg) { + }, 1); + + $def(self, '$error', function $$error(msg) { var self = this, error = nil, $writer = nil; - error = $$$($$$('::', 'Opal'), 'RewritingError').$new(msg); + error = $$$($Opal, 'RewritingError').$new(msg); if ($truthy(self.$current_node())) { $writer = [self.$current_node().$loc()]; - $send(error, 'location=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(error, 'location=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; return self.$raise(error); - }, $Base_error$16.$$arity = 1), nil) && 'error'; - })($nesting[0], $$$($$$($$$('::', 'Parser'), 'AST'), 'Processor'), $nesting) + }, 1); + + $def(self, '$on_top', function $$on_top(node) { + var self = this, $writer = nil; + + + node = self.$process_regular_node(node); + if ($truthy(self.dynamic_cache_result)) { + + $writer = ["dynamic_cache_result", true]; + $send(node.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return node; + }, 1); + return $def(self, '$dynamic!', function $Base_dynamic$excl$2() { + var self = this; + + return (self.dynamic_cache_result = true) + }, 0); + })($nesting[0], $$$($$$($$$('Parser'), 'AST'), 'Processor'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/opal_engine_check"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/opal_engine_check"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_a = Opal.to_a, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $const_set = Opal.const_set; - Opal.add_stubs(['$require', '$children', '$skip_check_present?', '$process', '$s', '$skip_check_present_not?', '$==']); + Opal.add_stubs('require,children,skip_check_present?,process,s,skip_check_present_not?,=='); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -28216,78 +25366,62 @@ Opal.modules["opal/rewriters/opal_engine_check"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'OpalEngineCheck'); - var $nesting = [self].concat($parent_nesting), $OpalEngineCheck_on_if$1, $OpalEngineCheck_skip_check_present$ques$2, $OpalEngineCheck_skip_check_present_not$ques$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$on_if', $OpalEngineCheck_on_if$1 = function $$on_if(node) { - var $a, $iter = $OpalEngineCheck_on_if$1.$$p, $yield = $iter || nil, self = this, test = nil, true_body = nil, false_body = nil, $ret_or_1 = nil, $ret_or_2 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$on_if', function $$on_if(node) { + var $a, $yield = $$on_if.$$p || nil, self = this, test = nil, true_body = nil, false_body = nil, $ret_or_1 = nil; - if ($iter) $OpalEngineCheck_on_if$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$on_if.$$p; - $a = [].concat(Opal.to_a(node.$children())), (test = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node.$children())), (test = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; if ($truthy(self['$skip_check_present?'](test))) { - return self.$process((function() {if ($truthy(($ret_or_1 = true_body))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })()) + return self.$process(($truthy(($ret_or_1 = true_body)) ? ($ret_or_1) : (self.$s("nil")))) } else if ($truthy(self['$skip_check_present_not?'](test))) { - return self.$process((function() {if ($truthy(($ret_or_2 = false_body))) { - return $ret_or_2 - } else { - return self.$s("nil") - }; return nil; })()) + return self.$process(($truthy(($ret_or_1 = false_body)) ? ($ret_or_1) : (self.$s("nil")))) } else { - return $send2(self, $find_super(self, 'on_if', $OpalEngineCheck_on_if$1, false, true), 'on_if', $zuper, $iter) + return $send2(self, $find_super(self, 'on_if', $$on_if, false, true), 'on_if', [node], $yield) }; - }, $OpalEngineCheck_on_if$1.$$arity = 1); + }, 1); - Opal.def(self, '$skip_check_present?', $OpalEngineCheck_skip_check_present$ques$2 = function(test) { - var self = this, $ret_or_3 = nil; + $def(self, '$skip_check_present?', function $OpalEngineCheck_skip_check_present$ques$1(test) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_3 = test['$==']($$($nesting, 'RUBY_ENGINE_CHECK'))))) { - return $ret_or_3 + if ($truthy(($ret_or_1 = test['$==']($$('RUBY_ENGINE_CHECK'))))) { + return $ret_or_1 } else { - return test['$==']($$($nesting, 'RUBY_PLATFORM_CHECK')) + return test['$==']($$('RUBY_PLATFORM_CHECK')) } - }, $OpalEngineCheck_skip_check_present$ques$2.$$arity = 1); + }, 1); - Opal.def(self, '$skip_check_present_not?', $OpalEngineCheck_skip_check_present_not$ques$3 = function(test) { - var self = this, $ret_or_4 = nil; + $def(self, '$skip_check_present_not?', function $OpalEngineCheck_skip_check_present_not$ques$2(test) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_4 = test['$==']($$($nesting, 'RUBY_ENGINE_CHECK_NOT'))))) { - return $ret_or_4 + if ($truthy(($ret_or_1 = test['$==']($$('RUBY_ENGINE_CHECK_NOT'))))) { + return $ret_or_1 } else { - return test['$==']($$($nesting, 'RUBY_PLATFORM_CHECK_NOT')) + return test['$==']($$('RUBY_PLATFORM_CHECK_NOT')) } - }, $OpalEngineCheck_skip_check_present_not$ques$3.$$arity = 1); - Opal.const_set($nesting[0], 'RUBY_ENGINE_CHECK', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "==", self.$s("str", "opal"))); - Opal.const_set($nesting[0], 'RUBY_ENGINE_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "!=", self.$s("str", "opal"))); - Opal.const_set($nesting[0], 'RUBY_PLATFORM_CHECK', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "==", self.$s("str", "opal"))); - return Opal.const_set($nesting[0], 'RUBY_PLATFORM_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "!=", self.$s("str", "opal"))); - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + $const_set($nesting[0], 'RUBY_ENGINE_CHECK', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "==", self.$s("str", "opal"))); + $const_set($nesting[0], 'RUBY_ENGINE_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "!=", self.$s("str", "opal"))); + $const_set($nesting[0], 'RUBY_PLATFORM_CHECK', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "==", self.$s("str", "opal"))); + return $const_set($nesting[0], 'RUBY_PLATFORM_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "!=", self.$s("str", "opal"))); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/for_rewriter"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/for_rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $defs = Opal.defs, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $to_a = Opal.to_a, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$+', '$find', '$map', '$s', '$next_tmp', '$class', '$type', '$===', '$<<', '$prepend_to_body', '$process', '$attr_reader', '$new', '$to_a', '$result']); + Opal.add_stubs('require,+,find,map,s,next_tmp,class,===,type,updated,<<,prepend_to_body,process,attr_reader,new,to_a,result'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -28298,102 +25432,89 @@ Opal.modules["opal/rewriters/for_rewriter"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ForRewriter'); - var $nesting = [self].concat($parent_nesting), $ForRewriter_reset_tmp_counter$excl$1, $ForRewriter_next_tmp$2, $ForRewriter_on_for$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$reset_tmp_counter!', $ForRewriter_reset_tmp_counter$excl$1 = function() { + $defs(self, '$reset_tmp_counter!', function $ForRewriter_reset_tmp_counter$excl$1() { var self = this; return (self.counter = 0) - }, $ForRewriter_reset_tmp_counter$excl$1.$$arity = 0); - Opal.defs(self, '$next_tmp', $ForRewriter_next_tmp$2 = function $$next_tmp() { + }, 0); + $defs(self, '$next_tmp', function $$next_tmp() { var self = this, $ret_or_1 = nil; if (self.counter == null) self.counter = nil; - self.counter = (function() {if ($truthy(($ret_or_1 = self.counter))) { - return $ret_or_1 - } else { - return 0 - }; return nil; })(); + self.counter = ($truthy(($ret_or_1 = self.counter)) ? ($ret_or_1) : (0)); self.counter = $rb_plus(self.counter, 1); - return "" + "$for_tmp" + (self.counter); - }, $ForRewriter_next_tmp$2.$$arity = 0); + return "$for_tmp" + (self.counter); + }, 0); - Opal.def(self, '$on_for', $ForRewriter_on_for$3 = function $$on_for(node) { - var $a, $$4, self = this, loop_variable = nil, iterating_value = nil, loop_body = nil, iterating_lvars = nil, lvars_declared_in_body = nil, outer_assigns = nil, tmp_loop_variable = nil, get_tmp_loop_variable = nil, loop_variable_assignment = nil, $case = nil; + $def(self, '$on_for', function $$on_for(node) { + var $a, self = this, loop_variable = nil, iterating_value = nil, loop_body = nil, iterating_lvars = nil, lvars_declared_in_body = nil, outer_assigns = nil, tmp_loop_variable = nil, get_tmp_loop_variable = nil, loop_variable_assignment = nil, $ret_or_1 = nil; - $a = [].concat(Opal.to_a(node)), (loop_variable = ($a[0] == null ? nil : $a[0])), (iterating_value = ($a[1] == null ? nil : $a[1])), (loop_body = ($a[2] == null ? nil : $a[2])), $a; - iterating_lvars = $$($nesting, 'LocalVariableAssigns').$find(loop_variable); - lvars_declared_in_body = $$($nesting, 'LocalVariableAssigns').$find(loop_body); - outer_assigns = $send($rb_plus(iterating_lvars, lvars_declared_in_body), 'map', [], ($$4 = function(lvar_name){var self = $$4.$$s == null ? this : $$4.$$s; + $a = [].concat($to_a(node)), (loop_variable = ($a[0] == null ? nil : $a[0])), (iterating_value = ($a[1] == null ? nil : $a[1])), (loop_body = ($a[2] == null ? nil : $a[2])), $a; + iterating_lvars = $$('LocalVariableAssigns').$find(loop_variable); + lvars_declared_in_body = $$('LocalVariableAssigns').$find(loop_body); + outer_assigns = $send($rb_plus(iterating_lvars, lvars_declared_in_body), 'map', [], function $$2(lvar_name){var self = $$2.$$s == null ? this : $$2.$$s; - if (lvar_name == null) { - lvar_name = nil; - }; - return self.$s("lvdeclare", lvar_name);}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + if (lvar_name == null) lvar_name = nil;; + return self.$s("lvdeclare", lvar_name);}, {$$arity: 1, $$s: self}); tmp_loop_variable = self.$class().$next_tmp(); get_tmp_loop_variable = self.$s("js_tmp", tmp_loop_variable); - loop_variable_assignment = (function() {$case = loop_variable.$type(); - if ("mlhs"['$===']($case)) {return self.$s("masgn", loop_variable, get_tmp_loop_variable)} - else {return loop_variable['$<<'](get_tmp_loop_variable)}})(); + loop_variable_assignment = ($eqeqeq("mlhs", ($ret_or_1 = loop_variable.$type())) ? (loop_variable.$updated("masgn", [loop_variable, get_tmp_loop_variable])) : (loop_variable['$<<'](get_tmp_loop_variable))); loop_body = self.$prepend_to_body(loop_body, loop_variable_assignment); - node = self.$s("send", iterating_value, "each", self.$s("iter", self.$s("args", self.$s("arg", tmp_loop_variable)), self.$process(loop_body))); - return $send(self, 's', ["begin"].concat(Opal.to_a(outer_assigns)).concat([node])); - }, $ForRewriter_on_for$3.$$arity = 1); + node = node.$updated("send", [iterating_value, "each", node.$updated("iter", [self.$s("args", self.$s("arg", tmp_loop_variable)), self.$process(loop_body)])]); + return node.$updated("begin", [].concat($to_a(outer_assigns)).concat([node])); + }, 1); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'LocalVariableAssigns'); - var $nesting = [self].concat($parent_nesting), $LocalVariableAssigns_find$5, $LocalVariableAssigns_initialize$6, $LocalVariableAssigns_on_lvasgn$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$attr_reader("result"); - Opal.defs(self, '$find', $LocalVariableAssigns_find$5 = function $$find(node) { + $defs(self, '$find', function $$find(node) { var self = this, processor = nil; processor = self.$new(); processor.$process(node); return processor.$result().$to_a(); - }, $LocalVariableAssigns_find$5.$$arity = 1); + }, 1); - Opal.def(self, '$initialize', $LocalVariableAssigns_initialize$6 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; - return (self.result = $$($nesting, 'Set').$new()) - }, $LocalVariableAssigns_initialize$6.$$arity = 0); - return (Opal.def(self, '$on_lvasgn', $LocalVariableAssigns_on_lvasgn$7 = function $$on_lvasgn(node) { - var $a, $iter = $LocalVariableAssigns_on_lvasgn$7.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + return (self.result = $$('Set').$new()) + }, 0); + return $def(self, '$on_lvasgn', function $$on_lvasgn(node) { + var $a, $yield = $$on_lvasgn.$$p || nil, self = this, name = nil, _ = nil; - if ($iter) $LocalVariableAssigns_on_lvasgn$7.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$on_lvasgn.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; self.$result()['$<<'](name); - return $send2(self, $find_super(self, 'on_lvasgn', $LocalVariableAssigns_on_lvasgn$7, false, true), 'on_lvasgn', $zuper, $iter); - }, $LocalVariableAssigns_on_lvasgn$7.$$arity = 1), nil) && 'on_lvasgn'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + return $send2(self, $find_super(self, 'on_lvasgn', $$on_lvasgn, false, true), 'on_lvasgn', [node], $yield); + }, 1); + })($nesting[0], $$('Base'), $nesting); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/explicit_writer_return"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $send = Opal.send; +Opal.modules["opal/rewriters/explicit_writer_return"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $const_set = Opal.const_set, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $slice = Opal.slice, $eqeq = Opal.eqeq, $regexp = Opal.regexp, $send = Opal.send; - Opal.add_stubs(['$require', '$s', '$=~', '$to_s', '$==', '$process_all', '$updated']); + Opal.add_stubs('require,s,==,to_s,=~,process_all,updated'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -28404,94 +25525,81 @@ Opal.modules["opal/rewriters/explicit_writer_return"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ExplicitWriterReturn'); - var $nesting = [self].concat($parent_nesting), $ExplicitWriterReturn_initialize$1, $ExplicitWriterReturn_on_send$2, $ExplicitWriterReturn_on_masgn$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.in_masgn = nil; + $proto.in_masgn = nil; - Opal.def(self, '$initialize', $ExplicitWriterReturn_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.in_masgn = false) - }, $ExplicitWriterReturn_initialize$1.$$arity = 0); - Opal.const_set($nesting[0], 'TMP_NAME', "$writer"); - Opal.const_set($nesting[0], 'GET_ARGS_NODE', self.$s("lvar", $$($nesting, 'TMP_NAME'))); - Opal.const_set($nesting[0], 'RETURN_ARGS_NODE', self.$s("jsattr", $$($nesting, 'GET_ARGS_NODE'), self.$s("send", self.$s("jsattr", $$($nesting, 'GET_ARGS_NODE'), self.$s("str", "length")), "-", self.$s("int", 1)))); - - Opal.def(self, '$on_send', $ExplicitWriterReturn_on_send$2 = function $$on_send(node) { - var $a, $iter = $ExplicitWriterReturn_on_send$2.$$p, $yield = $iter || nil, self = this, recv = nil, method_name = nil, args = nil, $ret_or_1 = nil, set_args_node = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $ExplicitWriterReturn_on_send$2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + }, 0); + $const_set($nesting[0], 'TMP_NAME', "$writer"); + $const_set($nesting[0], 'GET_ARGS_NODE', self.$s("lvar", $$('TMP_NAME'))); + $const_set($nesting[0], 'RETURN_ARGS_NODE', self.$s("jsattr", $$('GET_ARGS_NODE'), self.$s("send", self.$s("jsattr", $$('GET_ARGS_NODE'), self.$s("str", "length")), "-", self.$s("int", 1)))); + + $def(self, '$on_send', function $$on_send(node) { + var $a, $yield = $$on_send.$$p || nil, self = this, recv = nil, method_name = nil, args = nil, set_args_node = nil; + + delete $$on_send.$$p; if ($truthy(self.in_masgn)) { - return $send2(self, $find_super(self, 'on_send', $ExplicitWriterReturn_on_send$2, false, true), 'on_send', $zuper, $iter)}; - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy((function() {if ($truthy(($ret_or_1 = method_name.$to_s()['$=~'](Opal.regexp([$$($nesting, 'REGEXP_START'), "\\w+=", $$($nesting, 'REGEXP_END')]))))) { - return $ret_or_1 - } else { - return method_name.$to_s()['$==']("[]=") - }; return nil; })())) { + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) + }; + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if (($truthy(method_name.$to_s()['$=~']($regexp([$$('REGEXP_START'), "\\w+=", $$('REGEXP_END')]))) || ($eqeq(method_name.$to_s(), "[]=")))) { - set_args_node = self.$s("lvasgn", $$($nesting, 'TMP_NAME'), $send(self, 's', ["array"].concat(Opal.to_a(self.$process_all(args))))); - return self.$s("begin", set_args_node, node.$updated(nil, [recv, method_name, self.$s("splat", $$($nesting, 'GET_ARGS_NODE'))]), $$($nesting, 'RETURN_ARGS_NODE')); + set_args_node = self.$s("lvasgn", $$('TMP_NAME'), $send(self, 's', ["array"].concat($to_a(self.$process_all(args))))); + return self.$s("begin", set_args_node, node.$updated(nil, [recv, method_name, self.$s("splat", $$('GET_ARGS_NODE'))]), $$('RETURN_ARGS_NODE')); } else { - return $send2(self, $find_super(self, 'on_send', $ExplicitWriterReturn_on_send$2, false, true), 'on_send', $zuper, $iter) + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) }; - }, $ExplicitWriterReturn_on_send$2.$$arity = 1); - return (Opal.def(self, '$on_masgn', $ExplicitWriterReturn_on_masgn$3 = function $$on_masgn(node) { - var $iter = $ExplicitWriterReturn_on_masgn$3.$$p, $yield = $iter || nil, self = this, result = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + }, 1); + return $def(self, '$on_masgn', function $$on_masgn(node) { + var $yield = $$on_masgn.$$p || nil, self = this, result = nil; - if ($iter) $ExplicitWriterReturn_on_masgn$3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$on_masgn.$$p; self.in_masgn = true; - result = $send2(self, $find_super(self, 'on_masgn', $ExplicitWriterReturn_on_masgn$3, false, true), 'on_masgn', $zuper, $iter); + result = $send2(self, $find_super(self, 'on_masgn', $$on_masgn, false, true), 'on_masgn', [node], $yield); self.in_masgn = false; return result; - }, $ExplicitWriterReturn_on_masgn$3.$$arity = 1), nil) && 'on_masgn'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/regexp_anchors"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["opal/regexp_anchors"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $const_set = Opal.const_set; - Opal.add_stubs(['$new']); + Opal.add_stubs('new'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'REGEXP_START', "^"); - Opal.const_set($nesting[0], 'REGEXP_END', "$"); - Opal.const_set($nesting[0], 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'INLINE_IDENTIFIER_REGEXP', $$($nesting, 'Regexp').$new("" + "[^" + ($$($nesting, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + ($$($nesting, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); - Opal.const_set($nesting[0], 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - return Opal.const_set($nesting[0], 'CONST_NAME_REGEXP', $$($nesting, 'Regexp').$new("" + ($$($nesting, 'REGEXP_START')) + "(::)?[A-Z][^" + ($$($nesting, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + ($$($nesting, 'REGEXP_END')))); + $const_set(self, 'REGEXP_START', "^"); + $const_set(self, 'REGEXP_END', "$"); + $const_set(self, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + $const_set(self, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + $const_set(self, 'INLINE_IDENTIFIER_REGEXP', $$('Regexp').$new("[^" + ($$$(self, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + ($$$(self, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); + $const_set(self, 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + return $const_set(self, 'CONST_NAME_REGEXP', $$('Regexp').$new("" + ($$$(self, 'REGEXP_START')) + "(::)?[A-Z][^" + ($$$(self, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + ($$$(self, 'REGEXP_END')))); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2; +Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $truthy = Opal.truthy, $defs = Opal.defs, $def = Opal.def, $range = Opal.range, $to_a = Opal.to_a, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2, $alias = Opal.alias; - Opal.add_stubs(['$require', '$freeze', '$=~', '$!', '$valid_name?', '$class', '$to_sym', '$valid_ivar_name?', '$[]', '$to_s', '$updated', '$fix_var_name', '$fix_ivar_name']); + Opal.add_stubs('require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name'); self.$require("opal/rewriters/base"); self.$require("opal/regexp_anchors"); @@ -28503,49 +25611,37 @@ Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'JsReservedWords'); - var $nesting = [self].concat($parent_nesting), $JsReservedWords_valid_name$ques$1, $JsReservedWords_valid_ivar_name$ques$2, $JsReservedWords_fix_var_name$3, $JsReservedWords_fix_ivar_name$4, $JsReservedWords_on_lvar$5, $JsReservedWords_on_lvasgn$6, $JsReservedWords_on_ivar$7, $JsReservedWords_on_ivasgn$8, $JsReservedWords_on_restarg$9, $JsReservedWords_on_argument$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'ES51_RESERVED_WORD', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'ES3_RESERVED_WORD_EXCLUSIVE', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'PROTO_SPECIAL_PROPS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'PROTO_SPECIAL_METHODS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:hasOwnProperty|valueOf)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'IMMUTABLE_PROPS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:NaN|Infinity|undefined)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.const_set($nesting[0], 'BASIC_IDENTIFIER_RULES', Opal.regexp([$$($nesting, 'REGEXP_START'), "[$_a-z][$_a-z\\d]*", $$($nesting, 'REGEXP_END')], 'i').$freeze()); - Opal.const_set($nesting[0], 'RESERVED_FUNCTION_NAMES', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:Array)", $$($nesting, 'REGEXP_END')]).$freeze()); - Opal.defs(self, '$valid_name?', $JsReservedWords_valid_name$ques$1 = function(name) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $const_set($nesting[0], 'ES51_RESERVED_WORD', $regexp([$$('REGEXP_START'), "(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'ES3_RESERVED_WORD_EXCLUSIVE', $regexp([$$('REGEXP_START'), "(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'PROTO_SPECIAL_PROPS', $regexp([$$('REGEXP_START'), "(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'PROTO_SPECIAL_METHODS', $regexp([$$('REGEXP_START'), "(?:hasOwnProperty|valueOf)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'IMMUTABLE_PROPS', $regexp([$$('REGEXP_START'), "(?:NaN|Infinity|undefined)", $$('REGEXP_END')]).$freeze()); + $const_set($nesting[0], 'BASIC_IDENTIFIER_RULES', $regexp([$$('REGEXP_START'), "[$_a-z][$_a-z\\d]*", $$('REGEXP_END')], 'i').$freeze()); + $const_set($nesting[0], 'RESERVED_FUNCTION_NAMES', $regexp([$$('REGEXP_START'), "(?:Array)", $$('REGEXP_END')]).$freeze()); + $defs(self, '$valid_name?', function $JsReservedWords_valid_name$ques$1(name) { + var $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_1 = $$($nesting, 'BASIC_IDENTIFIER_RULES')['$=~'](name)))) { - return (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$($nesting, 'ES51_RESERVED_WORD')['$=~'](name)))) { - return $ret_or_3 - } else { - return $$($nesting, 'ES3_RESERVED_WORD_EXCLUSIVE')['$=~'](name) - }; return nil; })()))) { - return $ret_or_2 - } else { - return $$($nesting, 'IMMUTABLE_PROPS')['$=~'](name) - }; return nil; })()['$!']() + if ($truthy(($ret_or_1 = $$('BASIC_IDENTIFIER_RULES')['$=~'](name)))) { + return ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = $$('ES51_RESERVED_WORD')['$=~'](name))) ? ($ret_or_3) : ($$('ES3_RESERVED_WORD_EXCLUSIVE')['$=~'](name))))) ? ($ret_or_2) : ($$('IMMUTABLE_PROPS')['$=~'](name)))['$!']() } else { return $ret_or_1 } - }, $JsReservedWords_valid_name$ques$1.$$arity = 1); - Opal.defs(self, '$valid_ivar_name?', $JsReservedWords_valid_ivar_name$ques$2 = function(name) { - var self = this, $ret_or_4 = nil; + }, 1); + $defs(self, '$valid_ivar_name?', function $JsReservedWords_valid_ivar_name$ques$2(name) { + var $ret_or_1 = nil; - return (function() {if ($truthy(($ret_or_4 = $$($nesting, 'PROTO_SPECIAL_PROPS')['$=~'](name)))) { - return $ret_or_4 - } else { - return $$($nesting, 'PROTO_SPECIAL_METHODS')['$=~'](name) - }; return nil; })()['$!']() - }, $JsReservedWords_valid_ivar_name$ques$2.$$arity = 1); + return ($truthy(($ret_or_1 = $$('PROTO_SPECIAL_PROPS')['$=~'](name))) ? ($ret_or_1) : ($$('PROTO_SPECIAL_METHODS')['$=~'](name)))['$!']() + }, 1); - Opal.def(self, '$fix_var_name', $JsReservedWords_fix_var_name$3 = function $$fix_var_name(name) { + $def(self, '$fix_var_name', function $$fix_var_name(name) { var self = this; if ($truthy(self.$class()['$valid_name?'](name))) { @@ -28553,9 +25649,9 @@ Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { } else { return (("" + (name)) + "$").$to_sym() } - }, $JsReservedWords_fix_var_name$3.$$arity = 1); + }, 1); - Opal.def(self, '$fix_ivar_name', $JsReservedWords_fix_ivar_name$4 = function $$fix_ivar_name(name) { + $def(self, '$fix_ivar_name', function $$fix_ivar_name(name) { var self = this; if ($truthy(self.$class()['$valid_ivar_name?'](name.$to_s()['$[]']($range(1, -1, false))))) { @@ -28563,93 +25659,79 @@ Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { } else { return (("" + (name)) + "$").$to_sym() } - }, $JsReservedWords_fix_ivar_name$4.$$arity = 1); + }, 1); - Opal.def(self, '$on_lvar', $JsReservedWords_on_lvar$5 = function $$on_lvar(node) { - var $a, $iter = $JsReservedWords_on_lvar$5.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil; + $def(self, '$on_lvar', function $$on_lvar(node) { + var $a, $yield = $$on_lvar.$$p || nil, self = this, name = nil, _ = nil; - if ($iter) $JsReservedWords_on_lvar$5.$$p = null; + delete $$on_lvar.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; node = node.$updated(nil, [self.$fix_var_name(name)]); - return $send2(self, $find_super(self, 'on_lvar', $JsReservedWords_on_lvar$5, false, true), 'on_lvar', [node], null); - }, $JsReservedWords_on_lvar$5.$$arity = 1); + return $send2(self, $find_super(self, 'on_lvar', $$on_lvar, false, true), 'on_lvar', [node], null); + }, 1); - Opal.def(self, '$on_lvasgn', $JsReservedWords_on_lvasgn$6 = function $$on_lvasgn(node) { - var $a, $iter = $JsReservedWords_on_lvasgn$6.$$p, $yield = $iter || nil, self = this, name = nil, value = nil; + $def(self, '$on_lvasgn', function $$on_lvasgn(node) { + var $a, $yield = $$on_lvasgn.$$p || nil, self = this, name = nil, value = nil; - if ($iter) $JsReservedWords_on_lvasgn$6.$$p = null; + delete $$on_lvasgn.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - node = (function() {if ($truthy(value)) { - return node.$updated(nil, [self.$fix_var_name(name), value]) - } else { - return node.$updated(nil, [self.$fix_var_name(name)]) - }; return nil; })(); - return $send2(self, $find_super(self, 'on_lvasgn', $JsReservedWords_on_lvasgn$6, false, true), 'on_lvasgn', [node], null); - }, $JsReservedWords_on_lvasgn$6.$$arity = 1); + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = ($truthy(value) ? (node.$updated(nil, [self.$fix_var_name(name), value])) : (node.$updated(nil, [self.$fix_var_name(name)]))); + return $send2(self, $find_super(self, 'on_lvasgn', $$on_lvasgn, false, true), 'on_lvasgn', [node], null); + }, 1); - Opal.def(self, '$on_ivar', $JsReservedWords_on_ivar$7 = function $$on_ivar(node) { - var $a, $iter = $JsReservedWords_on_ivar$7.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil; + $def(self, '$on_ivar', function $$on_ivar(node) { + var $a, $yield = $$on_ivar.$$p || nil, self = this, name = nil, _ = nil; - if ($iter) $JsReservedWords_on_ivar$7.$$p = null; + delete $$on_ivar.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; node = node.$updated(nil, [self.$fix_ivar_name(name)]); - return $send2(self, $find_super(self, 'on_ivar', $JsReservedWords_on_ivar$7, false, true), 'on_ivar', [node], null); - }, $JsReservedWords_on_ivar$7.$$arity = 1); + return $send2(self, $find_super(self, 'on_ivar', $$on_ivar, false, true), 'on_ivar', [node], null); + }, 1); - Opal.def(self, '$on_ivasgn', $JsReservedWords_on_ivasgn$8 = function $$on_ivasgn(node) { - var $a, $iter = $JsReservedWords_on_ivasgn$8.$$p, $yield = $iter || nil, self = this, name = nil, value = nil; + $def(self, '$on_ivasgn', function $$on_ivasgn(node) { + var $a, $yield = $$on_ivasgn.$$p || nil, self = this, name = nil, value = nil; - if ($iter) $JsReservedWords_on_ivasgn$8.$$p = null; + delete $$on_ivasgn.$$p; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - node = (function() {if ($truthy(value)) { - return node.$updated(nil, [self.$fix_ivar_name(name), value]) - } else { - return node.$updated(nil, [self.$fix_ivar_name(name)]) - }; return nil; })(); - return $send2(self, $find_super(self, 'on_ivasgn', $JsReservedWords_on_ivasgn$8, false, true), 'on_ivasgn', [node], null); - }, $JsReservedWords_on_ivasgn$8.$$arity = 1); + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = ($truthy(value) ? (node.$updated(nil, [self.$fix_ivar_name(name), value])) : (node.$updated(nil, [self.$fix_ivar_name(name)]))); + return $send2(self, $find_super(self, 'on_ivasgn', $$on_ivasgn, false, true), 'on_ivasgn', [node], null); + }, 1); - Opal.def(self, '$on_restarg', $JsReservedWords_on_restarg$9 = function $$on_restarg(node) { + $def(self, '$on_restarg', function $$on_restarg(node) { var $a, self = this, name = nil, _ = nil; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; if ($truthy(name)) { - node = node.$updated(nil, [self.$fix_var_name(name)], $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})}))}; + node = node.$updated(nil, [self.$fix_var_name(name)], $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})})) + }; return node; - }, $JsReservedWords_on_restarg$9.$$arity = 1); - return (Opal.def(self, '$on_argument', $JsReservedWords_on_argument$10 = function $$on_argument(node) { - var $a, $iter = $JsReservedWords_on_argument$10.$$p, $yield = $iter || nil, self = this, name = nil, value = nil, fixed_name = nil, new_children = nil; + }, 1); + $alias(self, "on_kwrestarg", "on_restarg"); + return $def(self, '$on_argument', function $$on_argument(node) { + var $a, $yield = $$on_argument.$$p || nil, self = this, name = nil, value = nil, fixed_name = nil, new_children = nil; - if ($iter) $JsReservedWords_on_argument$10.$$p = null; + delete $$on_argument.$$p; - node = $send2(self, $find_super(self, 'on_argument', $JsReservedWords_on_argument$10, false, true), 'on_argument', [node], null); - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = $send2(self, $find_super(self, 'on_argument', $$on_argument, false, true), 'on_argument', [node], null); + $a = [].concat($to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; fixed_name = self.$fix_var_name(name); - new_children = (function() {if ($truthy(value)) { - return [fixed_name, value] - } else { - return [fixed_name] - }; return nil; })(); + new_children = ($truthy(value) ? ([fixed_name, value]) : ([fixed_name])); return node.$updated(nil, new_children, $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})})); - }, $JsReservedWords_on_argument$10.$$arity = 1), nil) && 'on_argument'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/block_to_iter"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/block_to_iter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $def = Opal.def; - Opal.add_stubs(['$require', '$s', '$updated', '$+', '$children']); + Opal.add_stubs('require,s,process,updated,+,children'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -28660,36 +25742,29 @@ Opal.modules["opal/rewriters/block_to_iter"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'BlockToIter'); - var $nesting = [self].concat($parent_nesting), $BlockToIter_on_block$1; - - return (Opal.def(self, '$on_block', $BlockToIter_on_block$1 = function $$on_block(node) { - var $a, $iter = $BlockToIter_on_block$1.$$p, $yield = $iter || nil, self = this, recvr = nil, args = nil, body = nil, iter_node = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + + return $def(self, '$on_block', function $$on_block(node) { + var $a, self = this, recvr = nil, args = nil, body = nil, iter_node = nil; - if ($iter) $BlockToIter_on_block$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - $a = [].concat(Opal.to_a($send2(self, $find_super(self, 'on_block', $BlockToIter_on_block$1, false, true), 'on_block', $zuper, $iter))), (recvr = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + $a = [].concat($to_a(node)), (recvr = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; iter_node = self.$s("iter", args, body); - return recvr.$updated(nil, $rb_plus(recvr.$children(), [iter_node])); - }, $BlockToIter_on_block$1.$$arity = 1), nil) && 'on_block' - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$process(recvr.$updated(nil, $rb_plus(recvr.$children(), [iter_node]))); + }, 1) + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/dot_js_syntax"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $slice = Opal.slice, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["opal/rewriters/dot_js_syntax"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_a = Opal.to_a, $slice = Opal.slice, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $neqeq = Opal.neqeq, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$require', '$==', '$type', '$===', '$!=', '$size', '$error', '$first', '$to_js_attr_call', '$to_js_attr_assign_call', '$to_native_js_call', '$s']); + Opal.add_stubs('require,==,type,===,!=,size,error,first,to_js_attr_call,to_js_attr_assign_call,to_native_js_call,s'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -28700,84 +25775,76 @@ Opal.modules["opal/rewriters/dot_js_syntax"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DotJsSyntax'); - var $nesting = [self].concat($parent_nesting), $DotJsSyntax_on_send$1, $DotJsSyntax_to_native_js_call$2, $DotJsSyntax_to_js_attr_call$3, $DotJsSyntax_to_js_attr_assign_call$4; - - Opal.def(self, '$on_send', $DotJsSyntax_on_send$1 = function $$on_send(node) { - var $a, $iter = $DotJsSyntax_on_send$1.$$p, $yield = $iter || nil, self = this, recv = nil, meth = nil, args = nil, $ret_or_1 = nil, recv_of_recv = nil, meth_of_recv = nil, _ = nil, $case = nil, property = nil, value = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + + $def(self, '$on_send', function $$on_send(node) { + var $a, $yield = $$on_send.$$p || nil, self = this, recv = nil, meth = nil, args = nil, recv_of_recv = nil, meth_of_recv = nil, _ = nil, $ret_or_1 = nil, property = nil, value = nil; - if ($iter) $DotJsSyntax_on_send$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$on_send.$$p; - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy((function() {if ($truthy(($ret_or_1 = recv))) { - return recv.$type()['$==']("send") - } else { - return $ret_or_1 - }; return nil; })())) { - - $a = [].concat(Opal.to_a(recv)), (recv_of_recv = ($a[0] == null ? nil : $a[0])), (meth_of_recv = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), $a; - if (meth_of_recv['$==']("JS")) { - - $case = meth; - if ("[]"['$===']($case)) { - if ($truthy(args.$size()['$!='](1))) { - self.$error(".JS[:property] syntax supports only one argument")}; - property = args.$first(); - node = self.$to_js_attr_call(recv_of_recv, property);} - else if ("[]="['$===']($case)) { - if ($truthy(args.$size()['$!='](2))) { - self.$error(".JS[:property]= syntax supports only two arguments")}; - $a = [].concat(Opal.to_a(args)), (property = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - node = self.$to_js_attr_assign_call(recv_of_recv, property, value);} - else {node = self.$to_native_js_call(recv_of_recv, meth, args)}; - return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', [node], null); + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if (($truthy(recv) && ($eqeq(recv.$type(), "send")))) { + + $a = [].concat($to_a(recv)), (recv_of_recv = ($a[0] == null ? nil : $a[0])), (meth_of_recv = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), $a; + if ($eqeq(meth_of_recv, "JS")) { + + if ($eqeqeq("[]", ($ret_or_1 = meth))) { + + if ($neqeq(args.$size(), 1)) { + self.$error(".JS[:property] syntax supports only one argument") + }; + property = args.$first(); + node = self.$to_js_attr_call(recv_of_recv, property); + } else if ($eqeqeq("[]=", $ret_or_1)) { + + if ($neqeq(args.$size(), 2)) { + self.$error(".JS[:property]= syntax supports only two arguments") + }; + $a = [].concat($to_a(args)), (property = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = self.$to_js_attr_assign_call(recv_of_recv, property, value); + } else { + node = self.$to_native_js_call(recv_of_recv, meth, args) + }; + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], null); } else { - return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', $zuper, $iter) + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) }; } else { - return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', $zuper, $iter) + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) }; - }, $DotJsSyntax_on_send$1.$$arity = 1); + }, 1); - Opal.def(self, '$to_native_js_call', $DotJsSyntax_to_native_js_call$2 = function $$to_native_js_call(recv, meth, args) { + $def(self, '$to_native_js_call', function $$to_native_js_call(recv, meth, args) { var self = this; - return $send(self, 's', ["jscall", recv, meth].concat(Opal.to_a(args))) - }, $DotJsSyntax_to_native_js_call$2.$$arity = 3); + return $send(self, 's', ["jscall", recv, meth].concat($to_a(args))) + }, 3); - Opal.def(self, '$to_js_attr_call', $DotJsSyntax_to_js_attr_call$3 = function $$to_js_attr_call(recv, property) { + $def(self, '$to_js_attr_call', function $$to_js_attr_call(recv, property) { var self = this; return self.$s("jsattr", recv, property) - }, $DotJsSyntax_to_js_attr_call$3.$$arity = 2); - return (Opal.def(self, '$to_js_attr_assign_call', $DotJsSyntax_to_js_attr_assign_call$4 = function $$to_js_attr_assign_call(recv, property, value) { + }, 2); + return $def(self, '$to_js_attr_assign_call', function $$to_js_attr_assign_call(recv, property, value) { var self = this; return self.$s("jsattrasgn", recv, property, value) - }, $DotJsSyntax_to_js_attr_assign_call$4.$$arity = 3), nil) && 'to_js_attr_assign_call'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 3); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; +Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $not = Opal.not, $neqeq = Opal.neqeq, $eqeq = Opal.eqeq, $alias = Opal.alias, $Opal = Opal.Opal; - Opal.add_stubs(['$require', '$s', '$convert_full_pattern', '$raise_no_matching_pattern_error', '$+', '$process', '$single_case_match', '$private', '$shift', '$type', '$===', '$!', '$empty?', '$!=', '$==', '$class', '$new', '$run!', '$variables', '$pattern', '$map', '$<<', '$array', '$on_literal', '$first', '$children', '$to_proc', '$method', '$each', '$to_ast', '$on_array_pattern', '$compact', '$[]']); + Opal.add_stubs('require,s,convert_full_pattern,raise_no_matching_pattern_error,+,process,single_case_match,private,shift,===,type,!,empty?,!=,==,class,new,run!,variables,pattern,map,<<,array,on_literal,first,children,to_proc,method,each,to_ast,on_array_pattern,compact,[]'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -28788,173 +25855,164 @@ Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'PatternMatching'); - var $nesting = [self].concat($parent_nesting), $PatternMatching_initialize$1, $PatternMatching_on_match_pattern$2, $PatternMatching_on_match_pattern_p$3, $PatternMatching_on_case_match$4, $PatternMatching_raise_no_matching_pattern_error$5, $PatternMatching_single_case_match$6, $PatternMatching_convert_full_pattern$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.depth = nil; + $proto.depth = nil; - Opal.def(self, '$initialize', $PatternMatching_initialize$1 = function $$initialize() { - var $iter = $PatternMatching_initialize$1.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize() { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $PatternMatching_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; self.depth = 0; - return $send2(self, $find_super(self, 'initialize', $PatternMatching_initialize$1, false, true), 'initialize', $zuper, $iter); - }, $PatternMatching_initialize$1.$$arity = 0); + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [], $yield); + }, 0); - Opal.def(self, '$on_match_pattern', $PatternMatching_on_match_pattern$2 = function $$on_match_pattern(node) { + $def(self, '$on_match_pattern', function $$on_match_pattern(node) { var $a, self = this, from = nil, pat = nil; - $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; return self.$s("begin", self.$s("lvasgn", "$pmvar", from), self.$s("if", self.$convert_full_pattern(from, pat), nil, self.$raise_no_matching_pattern_error("$pmvar"))); - }, $PatternMatching_on_match_pattern$2.$$arity = 1); + }, 1); - Opal.def(self, '$on_match_pattern_p', $PatternMatching_on_match_pattern_p$3 = function $$on_match_pattern_p(node) { + $def(self, '$on_match_pattern_p', function $$on_match_pattern_p(node) { var $a, self = this, from = nil, pat = nil; - $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; return self.$s("if", self.$convert_full_pattern(from, pat), self.$s("true"), self.$s("false")); - }, $PatternMatching_on_match_pattern_p$3.$$arity = 1); + }, 1); - Opal.def(self, '$on_case_match', $PatternMatching_on_case_match$4 = function $$on_case_match(node) { + $def(self, '$on_case_match', function $$on_case_match(node) { var $a, $b, self = this, cmvar = nil, from = nil, cases = nil, els = nil; self.depth = $rb_plus(self.depth, 1); - cmvar = "" + "$cmvar" + (self.depth); - $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (cases = $slice.call($a, 1, $b)), (els = ($a[$b] == null ? nil : $a[$b])), $a; + cmvar = "$cmvar" + (self.depth); + $a = [].concat($to_a(node)), (from = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (cases = $slice.call($a, 1, $b)), (els = ($a[$b] == null ? nil : $a[$b])), $a; if ($truthy(els)) { self.$process(els) } else { els = self.$raise_no_matching_pattern_error(cmvar) }; - return self.$s("begin", self.$s("lvasgn", cmvar, from), $send(self, 'single_case_match', [cmvar].concat(Opal.to_a(cases)).concat([els]))); - }, $PatternMatching_on_case_match$4.$$arity = 1); + return self.$s("begin", self.$s("lvasgn", cmvar, from), $send(self, 'single_case_match', [cmvar].concat($to_a(cases)).concat([els]))); + }, 1); self.$private(); - Opal.def(self, '$raise_no_matching_pattern_error', $PatternMatching_raise_no_matching_pattern_error$5 = function $$raise_no_matching_pattern_error(from) { + $def(self, '$raise_no_matching_pattern_error', function $$raise_no_matching_pattern_error(from) { var self = this; - return self.$s("send", nil, "raise", self.$s("const", nil, "NoMatchingPatternError"), self.$s("lvar", from)) - }, $PatternMatching_raise_no_matching_pattern_error$5.$$arity = 1); + return self.$s("send", nil, "raise", self.$s("const", self.$s("cbase"), "NoMatchingPatternError"), self.$s("lvar", from)) + }, 1); - Opal.def(self, '$single_case_match', $PatternMatching_single_case_match$6 = function $$single_case_match(from, $a, $b) { - var $post_args, cases, els, $c, self = this, cas = nil, pat = nil, if_guard = nil, body = nil, guard = nil, $case = nil; + $def(self, '$single_case_match', function $$single_case_match(from, $a, $b) { + var $post_args, cases, els, $c, self = this, cas = nil, pat = nil, if_guard = nil, body = nil, guard = nil, $ret_or_1 = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); cases = $post_args.splice(0, $post_args.length - 1);; - els = $post_args[0]; - $post_args.splice(0, 1); - if (els == null) { - els = nil - }; + els = $post_args.shift(); + if (els == null) els = nil;; cas = cases.$shift(); - $c = [].concat(Opal.to_a(cas)), (pat = ($c[0] == null ? nil : $c[0])), (if_guard = ($c[1] == null ? nil : $c[1])), (body = ($c[2] == null ? nil : $c[2])), $c; + $c = [].concat($to_a(cas)), (pat = ($c[0] == null ? nil : $c[0])), (if_guard = ($c[1] == null ? nil : $c[1])), (body = ($c[2] == null ? nil : $c[2])), $c; pat = self.$convert_full_pattern(from, pat); if ($truthy(if_guard)) { - $c = [].concat(Opal.to_a(if_guard)), (guard = ($c[0] == null ? nil : $c[0])), $c; - $case = if_guard.$type(); - if ("if_guard"['$===']($case)) {pat = self.$s("and", pat, guard)} - else if ("unless_guard"['$===']($case)) {pat = self.$s("and", pat, self.$s("send", guard, "!"))};}; - return self.$s("if", pat, self.$process(body), (function() {if ($truthy(cases['$empty?']()['$!']())) { - return $send(self, 'single_case_match', [from].concat(Opal.to_a(cases)).concat([els])) - } else if ($truthy(els['$!='](self.$s("empty_else")))) { - return els - } else { - return nil - }; return nil; })()); - }, $PatternMatching_single_case_match$6.$$arity = -3); + $c = [].concat($to_a(if_guard)), (guard = ($c[0] == null ? nil : $c[0])), $c; + if ($eqeqeq("if_guard", ($ret_or_1 = if_guard.$type()))) { + pat = self.$s("and", pat, guard) + } else if ($eqeqeq("unless_guard", $ret_or_1)) { + pat = self.$s("and", pat, self.$s("send", guard, "!")) + } else { + nil + }; + }; + return self.$s("if", pat, self.$process(body), ($not(cases['$empty?']()) ? ($send(self, 'single_case_match', [from].concat($to_a(cases)).concat([els]))) : ($neqeq(els, self.$s("empty_else")) ? (els) : nil))); + }, -3); - Opal.def(self, '$convert_full_pattern', $PatternMatching_convert_full_pattern$7 = function $$convert_full_pattern(from, pat) { + $def(self, '$convert_full_pattern', function $$convert_full_pattern(from, pat) { var self = this, converter = nil; - if (from.$class()['$==']($$($nesting, 'Symbol'))) { - from = self.$s("lvar", from)}; - converter = $$($nesting, 'PatternConverter').$new(pat); + if ($eqeq(from.$class(), $$('Symbol'))) { + from = self.$s("lvar", from) + }; + converter = $$('PatternConverter').$new(pat); converter['$run!'](); - return self.$s("masgn", $send(self, 's', ["mlhs"].concat(Opal.to_a(converter.$variables()))), self.$s("send", self.$s("const", self.$s("cbase"), "PatternMatching"), "call", from, converter.$pattern())); - }, $PatternMatching_convert_full_pattern$7.$$arity = 2); + return self.$s("masgn", $send(self, 's', ["mlhs"].concat($to_a(converter.$variables()))), self.$s("send", self.$s("const", self.$s("cbase"), "PatternMatching"), "call", from, converter.$pattern())); + }, 2); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'PatternConverter'); - var $nesting = [self].concat($parent_nesting), $PatternConverter_initialize$8, $PatternConverter_run$excl$9, $PatternConverter_pattern$10, $PatternConverter_variables$11, $PatternConverter_on_match_var$13, $PatternConverter_on_match_as$14, $PatternConverter_on_literal$15, $PatternConverter_on_pin$16, $PatternConverter_on_match_rest$17, $PatternConverter_on_match_alt$18, $PatternConverter_on_const_pattern$19, $PatternConverter_on_array_pattern$20, $PatternConverter_on_array_pattern_with_tail$22, $PatternConverter_on_hash_pattern$23, $PatternConverter_on_find_pattern$25, $PatternConverter_array$26, $PatternConverter_to_ast$27; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.pat = self.$$prototype.outpat = self.$$prototype.variables = nil; + $proto.pat = $proto.outpat = $proto.variables = nil; - Opal.def(self, '$initialize', $PatternConverter_initialize$8 = function $$initialize(pat) { + $def(self, '$initialize', function $$initialize(pat) { var self = this; self.pat = pat; return (self.variables = []); - }, $PatternConverter_initialize$8.$$arity = 1); + }, 1); - Opal.def(self, '$run!', $PatternConverter_run$excl$9 = function() { + $def(self, '$run!', function $PatternConverter_run$excl$1() { var self = this; return (self.outpat = self.$process(self.pat)) - }, $PatternConverter_run$excl$9.$$arity = 0); + }, 0); - Opal.def(self, '$pattern', $PatternConverter_pattern$10 = function $$pattern() { + $def(self, '$pattern', function $$pattern() { var self = this; return self.outpat - }, $PatternConverter_pattern$10.$$arity = 0); + }, 0); - Opal.def(self, '$variables', $PatternConverter_variables$11 = function $$variables() { - var $$12, self = this; + $def(self, '$variables', function $$variables() { + var self = this; - return $send(self.variables, 'map', [], ($$12 = function(i){var self = $$12.$$s == null ? this : $$12.$$s; + return $send(self.variables, 'map', [], function $$2(i){var self = $$2.$$s == null ? this : $$2.$$s; - if (i == null) { - i = nil; - }; - return self.$s("lvasgn", i);}, $$12.$$s = self, $$12.$$arity = 1, $$12)) - }, $PatternConverter_variables$11.$$arity = 0); + if (i == null) i = nil;; + return self.$s("lvasgn", i);}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$on_match_var', $PatternConverter_on_match_var$13 = function $$on_match_var(node) { + $def(self, '$on_match_var', function $$on_match_var(node) { var $a, self = this, var$ = nil; - $a = [].concat(Opal.to_a(node)), (var$ = ($a[0] == null ? nil : $a[0])), $a; + $a = [].concat($to_a(node)), (var$ = ($a[0] == null ? nil : $a[0])), $a; self.variables['$<<'](var$); return self.$s("sym", "var"); - }, $PatternConverter_on_match_var$13.$$arity = 1); + }, 1); - Opal.def(self, '$on_match_as', $PatternConverter_on_match_as$14 = function $$on_match_as(node) { + $def(self, '$on_match_as', function $$on_match_as(node) { var $a, self = this, pat = nil, save = nil; - $a = [].concat(Opal.to_a(node)), (pat = ($a[0] == null ? nil : $a[0])), (save = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (pat = ($a[0] == null ? nil : $a[0])), (save = ($a[1] == null ? nil : $a[1])), $a; self.$process(save); return self.$array(self.$s("sym", "save"), self.$process(pat)); - }, $PatternConverter_on_match_as$14.$$arity = 1); + }, 1); - Opal.def(self, '$on_literal', $PatternConverter_on_literal$15 = function $$on_literal(node) { + $def(self, '$on_literal', function $$on_literal(node) { var self = this; return self.$array(self.$s("sym", "lit"), node) - }, $PatternConverter_on_literal$15.$$arity = 1); + }, 1); $alias(self, "on_int", "on_literal"); $alias(self, "on_float", "on_literal"); $alias(self, "on_complex", "on_literal"); @@ -28971,13 +26029,13 @@ Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) { $alias(self, "on_lambda", "on_literal"); $alias(self, "on_begin", "on_literal"); - Opal.def(self, '$on_pin', $PatternConverter_on_pin$16 = function $$on_pin(node) { + $def(self, '$on_pin', function $$on_pin(node) { var self = this; return self.$on_literal(node.$children().$first()) - }, $PatternConverter_on_pin$16.$$arity = 1); + }, 1); - Opal.def(self, '$on_match_rest', $PatternConverter_on_match_rest$17 = function $$on_match_rest(node) { + $def(self, '$on_match_rest', function $$on_match_rest(node) { var self = this; if ($truthy(node.$children()['$empty?']())) { @@ -28985,131 +26043,131 @@ Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) { } else { return self.$array(self.$s("sym", "rest"), self.$process(node.$children().$first())) } - }, $PatternConverter_on_match_rest$17.$$arity = 1); + }, 1); - Opal.def(self, '$on_match_alt', $PatternConverter_on_match_alt$18 = function $$on_match_alt(node) { + $def(self, '$on_match_alt', function $$on_match_alt(node) { var self = this; - return $send(self, 'array', [self.$s("sym", "any")].concat(Opal.to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) - }, $PatternConverter_on_match_alt$18.$$arity = 1); + return $send(self, 'array', [self.$s("sym", "any")].concat($to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) + }, 1); - Opal.def(self, '$on_const_pattern', $PatternConverter_on_const_pattern$19 = function $$on_const_pattern(node) { + $def(self, '$on_const_pattern', function $$on_const_pattern(node) { var self = this; - return $send(self, 'array', [self.$s("sym", "all")].concat(Opal.to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) - }, $PatternConverter_on_const_pattern$19.$$arity = 1); + return $send(self, 'array', [self.$s("sym", "all")].concat($to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) + }, 1); - Opal.def(self, '$on_array_pattern', $PatternConverter_on_array_pattern$20 = function $$on_array_pattern(node, tail) { - var $$21, self = this, children = nil, fixed_size = nil, array_size = nil; + $def(self, '$on_array_pattern', function $$on_array_pattern(node, tail) { + var self = this, children = nil, fixed_size = nil, array_size = nil; - if (tail == null) { - tail = false; - }; - children = [].concat(Opal.to_a(node)); + if (tail == null) tail = false;; + children = [].concat($to_a(node)); if ($truthy(tail)) { - children['$<<'](self.$s("match_rest"))}; + children['$<<'](self.$s("match_rest")) + }; fixed_size = true; array_size = 0; - children = $send(children, 'each', [], ($$21 = function(i){var self = $$21.$$s == null ? this : $$21.$$s, $case = nil; + children = $send(children, 'each', [], function $$3(i){var $ret_or_1 = nil; - if (i == null) { - i = nil; - }; - return (function() {$case = i.$type(); - if ("match_rest"['$===']($case)) {return (fixed_size = false)} - else {return (array_size = $rb_plus(array_size, 1))}})();}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + if (i == null) i = nil;; + if ($eqeqeq("match_rest", ($ret_or_1 = i.$type()))) { + return (fixed_size = false) + } else { + return (array_size = $rb_plus(array_size, 1)) + };}, 1); return self.$array(self.$s("sym", "array"), self.$to_ast(fixed_size), self.$to_ast(array_size), self.$to_ast($send(children, 'map', [], self.$method("process").$to_proc()))); - }, $PatternConverter_on_array_pattern$20.$$arity = -2); + }, -2); - Opal.def(self, '$on_array_pattern_with_tail', $PatternConverter_on_array_pattern_with_tail$22 = function $$on_array_pattern_with_tail(node) { + $def(self, '$on_array_pattern_with_tail', function $$on_array_pattern_with_tail(node) { var self = this; return self.$on_array_pattern(node, true) - }, $PatternConverter_on_array_pattern_with_tail$22.$$arity = 1); + }, 1); - Opal.def(self, '$on_hash_pattern', $PatternConverter_on_hash_pattern$23 = function $$on_hash_pattern(node) { - var $$24, self = this, children = nil, any_size = nil; + $def(self, '$on_hash_pattern', function $$on_hash_pattern(node) { + var self = this, children = nil, any_size = nil; - children = [].concat(Opal.to_a(node)); - any_size = (function() {if ($truthy(children['$empty?']())) { - return self.$to_ast(false) - } else { - return self.$to_ast(true) - }; return nil; })(); - children = $send(children, 'map', [], ($$24 = function(i){var self = $$24.$$s == null ? this : $$24.$$s, $case = nil; + children = [].concat($to_a(node)); + any_size = ($truthy(children['$empty?']()) ? (self.$to_ast(false)) : (self.$to_ast(true))); + children = $send(children, 'map', [], function $$4(i){var self = $$4.$$s == null ? this : $$4.$$s, $ret_or_1 = nil; - if (i == null) { - i = nil; - }; - return (function() {$case = i.$type(); - if ("pair"['$===']($case)) {return self.$array(i.$children()['$[]'](0), self.$process(i.$children()['$[]'](1)))} - else if ("match_var"['$===']($case)) {return self.$array(self.$s("sym", i.$children()['$[]'](0)), self.$process(i))} - else if ("match_nil_pattern"['$===']($case)) { - any_size = self.$to_ast(false); - return nil;} - else if ("match_rest"['$===']($case)) { - if ($truthy(i.$children().$first())) { - any_size = self.$process(i.$children().$first()) + if (i == null) i = nil;; + if ($eqeqeq("pair", ($ret_or_1 = i.$type()))) { + return self.$array(i.$children()['$[]'](0), self.$process(i.$children()['$[]'](1))) + } else if ($eqeqeq("match_var", $ret_or_1)) { + return self.$array(self.$s("sym", i.$children()['$[]'](0)), self.$process(i)) + } else if ($eqeqeq("match_nil_pattern", $ret_or_1)) { + + any_size = self.$to_ast(false); + return nil; + } else if ($eqeqeq("match_rest", $ret_or_1)) { + + if ($truthy(i.$children().$first())) { + any_size = self.$process(i.$children().$first()) + } else { + any_size = self.$to_ast(true) + }; + return nil; } else { - any_size = self.$to_ast(true) - }; - return nil;} - else { return nil }})();}, $$24.$$s = self, $$24.$$arity = 1, $$24)).$compact(); - return self.$array(self.$s("sym", "hash"), any_size, $send(self, 'array', Opal.to_a(children))); - }, $PatternConverter_on_hash_pattern$23.$$arity = 1); + return nil + };}, {$$arity: 1, $$s: self}).$compact(); + return self.$array(self.$s("sym", "hash"), any_size, $send(self, 'array', $to_a(children))); + }, 1); - Opal.def(self, '$on_find_pattern', $PatternConverter_on_find_pattern$25 = function $$on_find_pattern(node) { + $def(self, '$on_find_pattern', function $$on_find_pattern(node) { var self = this, children = nil; - children = [].concat(Opal.to_a(node)); + children = [].concat($to_a(node)); children = $send(children, 'map', [], self.$method("process").$to_proc()); - return self.$array(self.$s("sym", "find"), $send(self, 'array', Opal.to_a(children))); - }, $PatternConverter_on_find_pattern$25.$$arity = 1); + return self.$array(self.$s("sym", "find"), $send(self, 'array', $to_a(children))); + }, 1); self.$private(); - Opal.def(self, '$array', $PatternConverter_array$26 = function $$array($a) { + $def(self, '$array', function $$array($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; return self.$to_ast(args); - }, $PatternConverter_array$26.$$arity = -1); - return (Opal.def(self, '$to_ast', $PatternConverter_to_ast$27 = function $$to_ast(val) { - var self = this, $case = nil; - - return (function() {$case = val; - if ($$($nesting, 'Array')['$===']($case)) {return $send(self, 's', ["array"].concat(Opal.to_a(val)))} - else if ($$($nesting, 'Integer')['$===']($case)) {return self.$s("int", val)} - else if (true['$===']($case)) {return self.$s("true")} - else if (false['$===']($case)) {return self.$s("false")} - else if (nil['$===']($case)) {return self.$s("nil")} - else { return nil }})() - }, $PatternConverter_to_ast$27.$$arity = 1), nil) && 'to_ast'; - })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, -1); + return $def(self, '$to_ast', function $$to_ast(val) { + var self = this, $ret_or_1 = nil; + + if ($eqeqeq($$('Array'), ($ret_or_1 = val))) { + return $send(self, 's', ["array"].concat($to_a(val))) + } else if ($eqeqeq($$('Integer'), $ret_or_1)) { + return self.$s("int", val) + } else if ($eqeqeq(true, $ret_or_1)) { + return self.$s("true") + } else if ($eqeqeq(false, $ret_or_1)) { + return self.$s("false") + } else if ($eqeqeq(nil, $ret_or_1)) { + return self.$s("nil") + } else { + return nil + } + }, 1); + })($nesting[0], $$$($$$($Opal, 'Rewriters'), 'Base'), $nesting); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/logical_operator_assignment"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $lambda = Opal.lambda, $slice = Opal.slice, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/logical_operator_assignment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $defs = Opal.defs, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $rb_plus = Opal.rb_plus, $const_set = Opal.const_set, $lambda = Opal.lambda, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $slice = Opal.slice, $hash2 = Opal.hash2, $send = Opal.send, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$+', '$updated', '$s', '$include?', '$==', '$[]', '$type', '$new_temp', '$freeze', '$call', '$fetch', '$error', '$process']); + Opal.add_stubs('require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29120,177 +26178,145 @@ Opal.modules["opal/rewriters/logical_operator_assignment"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'LogicalOperatorAssignment'); - var $nesting = [self].concat($parent_nesting), $LogicalOperatorAssignment_reset_tmp_counter$excl$1, $LogicalOperatorAssignment_new_temp$2, $LogicalOperatorAssignment$3, $LogicalOperatorAssignment_on_or_asgn$7, $LogicalOperatorAssignment_on_and_asgn$9, $LogicalOperatorAssignment_on_defined$ques$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$reset_tmp_counter!', $LogicalOperatorAssignment_reset_tmp_counter$excl$1 = function() { - var self = this; - + $defs(self, '$reset_tmp_counter!', function $LogicalOperatorAssignment_reset_tmp_counter$excl$1() { + return $class_variable_set($nesting[0], '@@counter', 0) - }, $LogicalOperatorAssignment_reset_tmp_counter$excl$1.$$arity = 0); - Opal.defs(self, '$new_temp', $LogicalOperatorAssignment_new_temp$2 = function $$new_temp() { - var $a, self = this, $ret_or_1 = nil; + }, 0); + $defs(self, '$new_temp', function $$new_temp() { + var $a, $ret_or_1 = nil; - $class_variable_set($nesting[0], '@@counter', (function() {if ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil))) { - - if ($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false)))) { - return $ret_or_1 - } else { - return 0 - }; - } else { - return 0 - }; return nil; })()); + $class_variable_set($nesting[0], '@@counter', ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil)) ? (($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false))) ? ($ret_or_1) : (0))) : (0))); $class_variable_set($nesting[0], '@@counter', $rb_plus($class_variable_get($nesting[0], '@@counter', false), 1)); - return "" + "$logical_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); - }, $LogicalOperatorAssignment_new_temp$2.$$arity = 0); - Opal.const_set($nesting[0], 'GET_SET', $lambda(($LogicalOperatorAssignment$3 = function(get_type, set_type){var self = $LogicalOperatorAssignment$3.$$s == null ? this : $LogicalOperatorAssignment$3.$$s, $$4; + return "$logical_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); + }, 0); + $const_set($nesting[0], 'GET_SET', $lambda(function $LogicalOperatorAssignment$2(get_type, set_type){var self = $LogicalOperatorAssignment$2.$$s == null ? this : $LogicalOperatorAssignment$2.$$s; - if (get_type == null) { - get_type = nil; - }; + if (get_type == null) get_type = nil;; - if (set_type == null) { - set_type = nil; - }; - return $lambda(($$4 = function(lhs, rhs, root_type){var self = $$4.$$s == null ? this : $$4.$$s, get_node = nil, condition_node = nil, $ret_or_2 = nil, defined_node = nil; + if (set_type == null) set_type = nil;; + return $lambda(function $$3(lhs, rhs, root_type){var self = $$3.$$s == null ? this : $$3.$$s, get_node = nil, condition_node = nil, defined_node = nil; - if (lhs == null) { - lhs = nil; - }; + if (lhs == null) lhs = nil;; - if (rhs == null) { - rhs = nil; - }; + if (rhs == null) rhs = nil;; - if (root_type == null) { - root_type = nil; - }; + if (root_type == null) root_type = nil;; get_node = lhs.$updated(get_type); condition_node = self.$s(root_type, get_node, rhs); - if ($truthy((function() {if ($truthy(($ret_or_2 = ["const", "cvar"]['$include?'](get_type)))) { - return root_type['$==']("or") - } else { - return $ret_or_2 - }; return nil; })())) { + if (($truthy(["const", "cvar"]['$include?'](get_type)) && ($eqeq(root_type, "or")))) { defined_node = self.$s("defined?", get_node); - condition_node = self.$s("if", defined_node, self.$s("begin", condition_node), rhs);}; - return lhs.$updated(set_type, [].concat(Opal.to_a(lhs)).concat([condition_node]));}, $$4.$$s = self, $$4.$$arity = 3, $$4));}, $LogicalOperatorAssignment$3.$$s = self, $LogicalOperatorAssignment$3.$$arity = 2, $LogicalOperatorAssignment$3))); - Opal.const_set($nesting[0], 'LocalVariableHandler', $$($nesting, 'GET_SET')['$[]']("lvar", "lvasgn")); - Opal.const_set($nesting[0], 'InstanceVariableHandler', $$($nesting, 'GET_SET')['$[]']("ivar", "ivasgn")); - Opal.const_set($nesting[0], 'ConstantHandler', $$($nesting, 'GET_SET')['$[]']("const", "casgn")); - Opal.const_set($nesting[0], 'GlobalVariableHandler', $$($nesting, 'GET_SET')['$[]']("gvar", "gvasgn")); - Opal.const_set($nesting[0], 'ClassVariableHandler', $$($nesting, 'GET_SET')['$[]']("cvar", "cvasgn")); - (function($base, $super, $parent_nesting) { + condition_node = self.$s("if", defined_node, self.$s("begin", condition_node), rhs); + }; + return lhs.$updated(set_type, [].concat($to_a(lhs)).concat([condition_node]));}, {$$arity: 3, $$s: self});}, {$$arity: 2, $$s: self})); + $const_set($nesting[0], 'LocalVariableHandler', $$('GET_SET')['$[]']("lvar", "lvasgn")); + $const_set($nesting[0], 'InstanceVariableHandler', $$('GET_SET')['$[]']("ivar", "ivasgn")); + $const_set($nesting[0], 'ConstantHandler', $$('GET_SET')['$[]']("const", "casgn")); + $const_set($nesting[0], 'GlobalVariableHandler', $$('GET_SET')['$[]']("gvar", "gvasgn")); + $const_set($nesting[0], 'ClassVariableHandler', $$('GET_SET')['$[]']("cvar", "cvasgn")); + (function($base, $super) { var self = $klass($base, $super, 'SendHandler'); - var $nesting = [self].concat($parent_nesting), $SendHandler_call$5; - - return (Opal.defs(self, '$call', $SendHandler_call$5 = function $$call(lhs, rhs, root_type) { - var $a, self = this, recvr = nil, reader_method = nil, args = nil, $ret_or_3 = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_writer = nil, get_or_set = nil; + + return $defs(self, '$call', function $$call(lhs, rhs, root_type) { + var $a, self = this, recvr = nil, reader_method = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_writer = nil, get_or_set = nil; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy((function() {if ($truthy(($ret_or_3 = recvr))) { - return recvr.$type()['$==']("send") - } else { - return $ret_or_3 - }; return nil; })())) { + $a = [].concat($to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if (($truthy(recvr) && ($eqeq(recvr.$type(), "send")))) { recvr_tmp = self.$new_temp(); cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); - recvr = self.$s("js_tmp", recvr_tmp);}; + recvr = self.$s("js_tmp", recvr_tmp); + }; writer_method = "" + (reader_method) + "="; - call_reader = lhs.$updated("send", [recvr, reader_method].concat(Opal.to_a(args))); - call_writer = lhs.$updated("send", [recvr, writer_method].concat(Opal.to_a(args)).concat([rhs])); + call_reader = lhs.$updated("send", [recvr, reader_method].concat($to_a(args))); + call_writer = lhs.$updated("send", [recvr, writer_method].concat($to_a(args)).concat([rhs])); get_or_set = self.$s(root_type, call_reader, call_writer); if ($truthy(cache_recvr)) { return self.$s("begin", cache_recvr, get_or_set) } else { return get_or_set }; - }, $SendHandler_call$5.$$arity = 3), nil) && 'call' - })($nesting[0], self, $nesting); - (function($base, $super, $parent_nesting) { + }, 3) + })($nesting[0], self); + (function($base, $super) { var self = $klass($base, $super, 'ConditionalSendHandler'); - var $nesting = [self].concat($parent_nesting), $ConditionalSendHandler_call$6; - - return (Opal.defs(self, '$call', $ConditionalSendHandler_call$6 = function $$call(lhs, rhs, root_type) { + + return $defs(self, '$call', function $$call(lhs, rhs, root_type) { var $a, self = this, recvr = nil, meth = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, recvr_is_nil = nil, plain_send = nil, plain_or_asgn = nil; root_type = "" + (root_type) + "_asgn"; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + $a = [].concat($to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; recvr_tmp = self.$new_temp(); cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); recvr = self.$s("js_tmp", recvr_tmp); recvr_is_nil = self.$s("send", recvr, "nil?"); - plain_send = lhs.$updated("send", [recvr, meth].concat(Opal.to_a(args))); + plain_send = lhs.$updated("send", [recvr, meth].concat($to_a(args))); plain_or_asgn = self.$s(root_type, plain_send, rhs); return self.$s("begin", cache_recvr, self.$s("if", recvr_is_nil, self.$s("nil"), plain_or_asgn)); - }, $ConditionalSendHandler_call$6.$$arity = 3), nil) && 'call' - })($nesting[0], self, $nesting); - Opal.const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$($nesting, 'LocalVariableHandler'), "ivasgn": $$($nesting, 'InstanceVariableHandler'), "casgn": $$($nesting, 'ConstantHandler'), "gvasgn": $$($nesting, 'GlobalVariableHandler'), "cvasgn": $$($nesting, 'ClassVariableHandler'), "send": $$($nesting, 'SendHandler'), "csend": $$($nesting, 'ConditionalSendHandler')}).$freeze()); + }, 3) + })($nesting[0], self); + $const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$('LocalVariableHandler'), "ivasgn": $$('InstanceVariableHandler'), "casgn": $$('ConstantHandler'), "gvasgn": $$('GlobalVariableHandler'), "cvasgn": $$('ClassVariableHandler'), "send": $$('SendHandler'), "csend": $$('ConditionalSendHandler')}).$freeze()); - Opal.def(self, '$on_or_asgn', $LogicalOperatorAssignment_on_or_asgn$7 = function $$on_or_asgn(node) { - var $a, $$8, self = this, lhs = nil, rhs = nil, result = nil; + $def(self, '$on_or_asgn', function $$on_or_asgn(node) { + var $a, self = this, lhs = nil, rhs = nil, result = nil; - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + $a = [].concat($to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + result = $send($$('HANDLERS'), 'fetch', [lhs.$type()], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$8.$$s = self, $$8.$$arity = 0, $$8)).$call(lhs, rhs, "or"); + return self.$error("cannot handle LHS type: " + (lhs.$type()))}, {$$arity: 0, $$s: self}).$call(lhs, rhs, "or"); return self.$process(result); - }, $LogicalOperatorAssignment_on_or_asgn$7.$$arity = 1); + }, 1); - Opal.def(self, '$on_and_asgn', $LogicalOperatorAssignment_on_and_asgn$9 = function $$on_and_asgn(node) { - var $a, $$10, self = this, lhs = nil, rhs = nil, result = nil; + $def(self, '$on_and_asgn', function $$on_and_asgn(node) { + var $a, self = this, lhs = nil, rhs = nil, result = nil; - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + $a = [].concat($to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + result = $send($$('HANDLERS'), 'fetch', [lhs.$type()], function $$5(){var self = $$5.$$s == null ? this : $$5.$$s; - return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$10.$$s = self, $$10.$$arity = 0, $$10)).$call(lhs, rhs, "and"); + return self.$error("cannot handle LHS type: " + (lhs.$type()))}, {$$arity: 0, $$s: self}).$call(lhs, rhs, "and"); return self.$process(result); - }, $LogicalOperatorAssignment_on_and_asgn$9.$$arity = 1); - Opal.const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); - return (Opal.def(self, '$on_defined?', $LogicalOperatorAssignment_on_defined$ques$11 = function(node) { - var $a, $iter = $LogicalOperatorAssignment_on_defined$ques$11.$$p, $yield = $iter || nil, self = this, inner = nil, _ = nil; + }, 1); + $const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); + return $def(self, '$on_defined?', function $LogicalOperatorAssignment_on_defined$ques$6(node) { + var $a, $yield = $LogicalOperatorAssignment_on_defined$ques$6.$$p || nil, self = this, inner = nil, _ = nil; - if ($iter) $LogicalOperatorAssignment_on_defined$ques$11.$$p = null; + delete $LogicalOperatorAssignment_on_defined$ques$6.$$p; - $a = [].concat(Opal.to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; if ($truthy(["or_asgn", "and_asgn"]['$include?'](inner.$type()))) { - return $$($nesting, 'ASSIGNMENT_STRING_NODE') + return $$('ASSIGNMENT_STRING_NODE') } else { - return $send2(self, $find_super(self, 'on_defined?', $LogicalOperatorAssignment_on_defined$ques$11, false, true), 'on_defined?', [node], null) + return $send2(self, $find_super(self, 'on_defined?', $LogicalOperatorAssignment_on_defined$ques$6, false, true), 'on_defined?', [node], null) }; - }, $LogicalOperatorAssignment_on_defined$ques$11.$$arity = 1), nil) && 'on_defined?'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/binary_operator_assignment"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $lambda = Opal.lambda, $slice = Opal.slice, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/binary_operator_assignment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $defs = Opal.defs, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $rb_plus = Opal.rb_plus, $const_set = Opal.const_set, $lambda = Opal.lambda, $to_a = Opal.to_a, $slice = Opal.slice, $eqeq = Opal.eqeq, $hash2 = Opal.hash2, $send = Opal.send, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$+', '$updated', '$s', '$[]', '$==', '$type', '$new_temp', '$freeze', '$call', '$fetch', '$error', '$process']); + Opal.add_stubs('require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29301,154 +26327,129 @@ Opal.modules["opal/rewriters/binary_operator_assignment"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'BinaryOperatorAssignment'); - var $nesting = [self].concat($parent_nesting), $BinaryOperatorAssignment_reset_tmp_counter$excl$1, $BinaryOperatorAssignment_new_temp$2, $BinaryOperatorAssignment$3, $BinaryOperatorAssignment_on_op_asgn$7, $BinaryOperatorAssignment_on_defined$ques$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$reset_tmp_counter!', $BinaryOperatorAssignment_reset_tmp_counter$excl$1 = function() { - var self = this; - + $defs(self, '$reset_tmp_counter!', function $BinaryOperatorAssignment_reset_tmp_counter$excl$1() { + return $class_variable_set($nesting[0], '@@counter', 0) - }, $BinaryOperatorAssignment_reset_tmp_counter$excl$1.$$arity = 0); - Opal.defs(self, '$new_temp', $BinaryOperatorAssignment_new_temp$2 = function $$new_temp() { - var $a, self = this, $ret_or_1 = nil; + }, 0); + $defs(self, '$new_temp', function $$new_temp() { + var $a, $ret_or_1 = nil; - $class_variable_set($nesting[0], '@@counter', (function() {if ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil))) { - - if ($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false)))) { - return $ret_or_1 - } else { - return 0 - }; - } else { - return 0 - }; return nil; })()); + $class_variable_set($nesting[0], '@@counter', ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil)) ? (($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false))) ? ($ret_or_1) : (0))) : (0))); $class_variable_set($nesting[0], '@@counter', $rb_plus($class_variable_get($nesting[0], '@@counter', false), 1)); - return "" + "$binary_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); - }, $BinaryOperatorAssignment_new_temp$2.$$arity = 0); - Opal.const_set($nesting[0], 'GET_SET', $lambda(($BinaryOperatorAssignment$3 = function(get_type, set_type){var self = $BinaryOperatorAssignment$3.$$s == null ? this : $BinaryOperatorAssignment$3.$$s, $$4; - + return "$binary_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); + }, 0); + $const_set($nesting[0], 'GET_SET', $lambda(function $BinaryOperatorAssignment$2(get_type, set_type){ - if (get_type == null) { - get_type = nil; - }; + if (get_type == null) get_type = nil;; - if (set_type == null) { - set_type = nil; - }; - return $lambda(($$4 = function(lhs, operation, rhs){var self = $$4.$$s == null ? this : $$4.$$s, get_node = nil, set_node = nil; + if (set_type == null) set_type = nil;; + return $lambda(function $$3(node, lhs, operation, rhs){var get_node = nil, set_node = nil; - if (lhs == null) { - lhs = nil; - }; + if (node == null) node = nil;; - if (operation == null) { - operation = nil; - }; + if (lhs == null) lhs = nil;; - if (rhs == null) { - rhs = nil; - }; + if (operation == null) operation = nil;; + + if (rhs == null) rhs = nil;; get_node = lhs.$updated(get_type); - set_node = self.$s("send", get_node, operation, rhs); - return lhs.$updated(set_type, [].concat(Opal.to_a(lhs)).concat([set_node]));}, $$4.$$s = self, $$4.$$arity = 3, $$4));}, $BinaryOperatorAssignment$3.$$s = self, $BinaryOperatorAssignment$3.$$arity = 2, $BinaryOperatorAssignment$3))); - Opal.const_set($nesting[0], 'LocalVariableHandler', $$($nesting, 'GET_SET')['$[]']("lvar", "lvasgn")); - Opal.const_set($nesting[0], 'InstanceVariableHandler', $$($nesting, 'GET_SET')['$[]']("ivar", "ivasgn")); - Opal.const_set($nesting[0], 'ConstantHandler', $$($nesting, 'GET_SET')['$[]']("const", "casgn")); - Opal.const_set($nesting[0], 'GlobalVariableHandler', $$($nesting, 'GET_SET')['$[]']("gvar", "gvasgn")); - Opal.const_set($nesting[0], 'ClassVariableHandler', $$($nesting, 'GET_SET')['$[]']("cvar", "cvasgn")); - (function($base, $super, $parent_nesting) { + set_node = node.$updated("send", [get_node, operation, rhs]); + return lhs.$updated(set_type, [].concat($to_a(lhs)).concat([set_node]));}, 4);}, 2)); + $const_set($nesting[0], 'LocalVariableHandler', $$('GET_SET')['$[]']("lvar", "lvasgn")); + $const_set($nesting[0], 'InstanceVariableHandler', $$('GET_SET')['$[]']("ivar", "ivasgn")); + $const_set($nesting[0], 'ConstantHandler', $$('GET_SET')['$[]']("const", "casgn")); + $const_set($nesting[0], 'GlobalVariableHandler', $$('GET_SET')['$[]']("gvar", "gvasgn")); + $const_set($nesting[0], 'ClassVariableHandler', $$('GET_SET')['$[]']("cvar", "cvasgn")); + (function($base, $super) { var self = $klass($base, $super, 'SendHandler'); - var $nesting = [self].concat($parent_nesting), $SendHandler_call$5; - - return (Opal.defs(self, '$call', $SendHandler_call$5 = function $$call(lhs, operation, rhs) { - var $a, self = this, recvr = nil, reader_method = nil, args = nil, $ret_or_2 = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_op = nil, call_writer = nil; + + return $defs(self, '$call', function $$call(node, lhs, operation, rhs) { + var $a, self = this, recvr = nil, reader_method = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_op = nil, call_writer = nil; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy((function() {if ($truthy(($ret_or_2 = recvr))) { - return recvr.$type()['$==']("send") - } else { - return $ret_or_2 - }; return nil; })())) { + $a = [].concat($to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if (($truthy(recvr) && ($eqeq(recvr.$type(), "send")))) { recvr_tmp = self.$new_temp(); cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); - recvr = self.$s("js_tmp", recvr_tmp);}; + recvr = self.$s("js_tmp", recvr_tmp); + }; writer_method = "" + (reader_method) + "="; - call_reader = lhs.$updated("send", [recvr, reader_method].concat(Opal.to_a(args))); - call_op = self.$s("send", call_reader, operation, rhs); - call_writer = lhs.$updated("send", [recvr, writer_method].concat(Opal.to_a(args)).concat([call_op])); + call_reader = lhs.$updated("send", [recvr, reader_method].concat($to_a(args))); + call_op = node.$updated("send", [call_reader, operation, rhs]); + call_writer = lhs.$updated("send", [recvr, writer_method].concat($to_a(args)).concat([call_op])); if ($truthy(cache_recvr)) { - return self.$s("begin", cache_recvr, call_writer) + return node.$updated("begin", [cache_recvr, call_writer]) } else { return call_writer }; - }, $SendHandler_call$5.$$arity = 3), nil) && 'call' - })($nesting[0], self, $nesting); - (function($base, $super, $parent_nesting) { + }, 4) + })($nesting[0], self); + (function($base, $super) { var self = $klass($base, $super, 'ConditionalSendHandler'); - var $nesting = [self].concat($parent_nesting), $ConditionalSendHandler_call$6; - - return (Opal.defs(self, '$call', $ConditionalSendHandler_call$6 = function $$call(lhs, operation, rhs) { + + return $defs(self, '$call', function $$call(node, lhs, operation, rhs) { var $a, self = this, recvr = nil, meth = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, recvr_is_nil = nil, plain_send = nil, plain_op_asgn = nil; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + $a = [].concat($to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; recvr_tmp = self.$new_temp(); cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); recvr = self.$s("js_tmp", recvr_tmp); recvr_is_nil = self.$s("send", recvr, "nil?"); - plain_send = lhs.$updated("send", [recvr, meth].concat(Opal.to_a(args))); - plain_op_asgn = self.$s("op_asgn", plain_send, operation, rhs); + plain_send = lhs.$updated("send", [recvr, meth].concat($to_a(args))); + plain_op_asgn = node.$updated("op_asgn", [plain_send, operation, rhs]); return self.$s("begin", cache_recvr, self.$s("if", recvr_is_nil, self.$s("nil"), plain_op_asgn)); - }, $ConditionalSendHandler_call$6.$$arity = 3), nil) && 'call' - })($nesting[0], self, $nesting); - Opal.const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$($nesting, 'LocalVariableHandler'), "ivasgn": $$($nesting, 'InstanceVariableHandler'), "casgn": $$($nesting, 'ConstantHandler'), "gvasgn": $$($nesting, 'GlobalVariableHandler'), "cvasgn": $$($nesting, 'ClassVariableHandler'), "send": $$($nesting, 'SendHandler'), "csend": $$($nesting, 'ConditionalSendHandler')}).$freeze()); + }, 4) + })($nesting[0], self); + $const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$('LocalVariableHandler'), "ivasgn": $$('InstanceVariableHandler'), "casgn": $$('ConstantHandler'), "gvasgn": $$('GlobalVariableHandler'), "cvasgn": $$('ClassVariableHandler'), "send": $$('SendHandler'), "csend": $$('ConditionalSendHandler')}).$freeze()); - Opal.def(self, '$on_op_asgn', $BinaryOperatorAssignment_on_op_asgn$7 = function $$on_op_asgn(node) { - var $a, $$8, self = this, lhs = nil, op = nil, rhs = nil, result = nil; + $def(self, '$on_op_asgn', function $$on_op_asgn(node) { + var $a, self = this, lhs = nil, op = nil, rhs = nil, result = nil; - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (op = ($a[1] == null ? nil : $a[1])), (rhs = ($a[2] == null ? nil : $a[2])), $a; - result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + $a = [].concat($to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (op = ($a[1] == null ? nil : $a[1])), (rhs = ($a[2] == null ? nil : $a[2])), $a; + result = $send($$('HANDLERS'), 'fetch', [lhs.$type()], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$8.$$s = self, $$8.$$arity = 0, $$8)).$call(lhs, op, rhs); + return self.$error("cannot handle LHS type: " + (lhs.$type()))}, {$$arity: 0, $$s: self}).$call(node, lhs, op, rhs); return self.$process(result); - }, $BinaryOperatorAssignment_on_op_asgn$7.$$arity = 1); - Opal.const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); - return (Opal.def(self, '$on_defined?', $BinaryOperatorAssignment_on_defined$ques$9 = function(node) { - var $a, $iter = $BinaryOperatorAssignment_on_defined$ques$9.$$p, $yield = $iter || nil, self = this, inner = nil, _ = nil; + }, 1); + $const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); + return $def(self, '$on_defined?', function $BinaryOperatorAssignment_on_defined$ques$5(node) { + var $a, $yield = $BinaryOperatorAssignment_on_defined$ques$5.$$p || nil, self = this, inner = nil, _ = nil; - if ($iter) $BinaryOperatorAssignment_on_defined$ques$9.$$p = null; + delete $BinaryOperatorAssignment_on_defined$ques$5.$$p; - $a = [].concat(Opal.to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if (inner.$type()['$==']("op_asgn")) { - return $$($nesting, 'ASSIGNMENT_STRING_NODE') + $a = [].concat($to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + if ($eqeq(inner.$type(), "op_asgn")) { + return $$('ASSIGNMENT_STRING_NODE') } else { - return $send2(self, $find_super(self, 'on_defined?', $BinaryOperatorAssignment_on_defined$ques$9, false, true), 'on_defined?', [node], null) + return $send2(self, $find_super(self, 'on_defined?', $BinaryOperatorAssignment_on_defined$ques$5, false, true), 'on_defined?', [node], null) }; - }, $BinaryOperatorAssignment_on_defined$ques$9.$$arity = 1), nil) && 'on_defined?'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; +Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $Opal = Opal.Opal; - Opal.add_stubs(['$require', '$new', '$include?', '$type', '$<<', '$==', '$process_regular_node', '$updated', '$inspect', '$warn']); + Opal.add_stubs('require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn'); self.$require("opal/rewriters/base"); self.$require("set"); @@ -29470,91 +26471,88 @@ Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'KeyDuplicatesRewriter'); - var $nesting = [self].concat($parent_nesting), $KeyDuplicatesRewriter_initialize$1, $KeyDuplicatesRewriter_on_hash$2, $KeyDuplicatesRewriter_on_pair$3, $KeyDuplicatesRewriter_on_kwsplat$4; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.keys = nil; + $proto.keys = nil; - Opal.def(self, '$initialize', $KeyDuplicatesRewriter_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; - return (self.keys = $$($nesting, 'UniqKeysSet').$new()) - }, $KeyDuplicatesRewriter_initialize$1.$$arity = 0); + return (self.keys = $$('UniqKeysSet').$new()) + }, 0); - Opal.def(self, '$on_hash', $KeyDuplicatesRewriter_on_hash$2 = function $$on_hash(node) { - var $a, $iter = $KeyDuplicatesRewriter_on_hash$2.$$p, $yield = $iter || nil, self = this, previous_keys = nil; + $def(self, '$on_hash', function $$on_hash(node) { + var $a, $yield = $$on_hash.$$p || nil, self = this, previous_keys = nil; - if ($iter) $KeyDuplicatesRewriter_on_hash$2.$$p = null; + delete $$on_hash.$$p; return (function() { try { - $a = [self.keys, $$($nesting, 'UniqKeysSet').$new()], (previous_keys = $a[0]), (self.keys = $a[1]), $a; - return $send2(self, $find_super(self, 'on_hash', $KeyDuplicatesRewriter_on_hash$2, false, true), 'on_hash', [node], null); + $a = [self.keys, $$('UniqKeysSet').$new()], (previous_keys = $a[0]), (self.keys = $a[1]), $a; + return $send2(self, $find_super(self, 'on_hash', $$on_hash, false, true), 'on_hash', [node], null); } finally { (self.keys = previous_keys) }; })() - }, $KeyDuplicatesRewriter_on_hash$2.$$arity = 1); + }, 1); - Opal.def(self, '$on_pair', $KeyDuplicatesRewriter_on_pair$3 = function $$on_pair(node) { - var $a, $iter = $KeyDuplicatesRewriter_on_pair$3.$$p, $yield = $iter || nil, self = this, key = nil, _value = nil; + $def(self, '$on_pair', function $$on_pair(node) { + var $a, $yield = $$on_pair.$$p || nil, self = this, key = nil, _value = nil; - if ($iter) $KeyDuplicatesRewriter_on_pair$3.$$p = null; + delete $$on_pair.$$p; - $a = [].concat(Opal.to_a(node)), (key = ($a[0] == null ? nil : $a[0])), (_value = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (key = ($a[0] == null ? nil : $a[0])), (_value = ($a[1] == null ? nil : $a[1])), $a; if ($truthy(["str", "sym"]['$include?'](key.$type()))) { - self.keys['$<<'](key)}; - return $send2(self, $find_super(self, 'on_pair', $KeyDuplicatesRewriter_on_pair$3, false, true), 'on_pair', [node], null); - }, $KeyDuplicatesRewriter_on_pair$3.$$arity = 1); + self.keys['$<<'](key) + }; + return $send2(self, $find_super(self, 'on_pair', $$on_pair, false, true), 'on_pair', [node], null); + }, 1); - Opal.def(self, '$on_kwsplat', $KeyDuplicatesRewriter_on_kwsplat$4 = function $$on_kwsplat(node) { + $def(self, '$on_kwsplat', function $$on_kwsplat(node) { var $a, self = this, hash = nil, _ = nil; - $a = [].concat(Opal.to_a(node)), (hash = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if (hash.$type()['$==']("hash")) { - hash = self.$process_regular_node(hash)}; + $a = [].concat($to_a(node)), (hash = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + if ($eqeq(hash.$type(), "hash")) { + hash = self.$process_regular_node(hash) + }; return node.$updated(nil, [hash]); - }, $KeyDuplicatesRewriter_on_kwsplat$4.$$arity = 1); + }, 1); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'UniqKeysSet'); - var $nesting = [self].concat($parent_nesting), $UniqKeysSet_initialize$5, $UniqKeysSet_$lt$lt$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.set = nil; + $proto.set = nil; - Opal.def(self, '$initialize', $UniqKeysSet_initialize$5 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; - return (self.set = $$($nesting, 'Set').$new()) - }, $UniqKeysSet_initialize$5.$$arity = 0); - return (Opal.def(self, '$<<', $UniqKeysSet_$lt$lt$6 = function(element) { + return (self.set = $$('Set').$new()) + }, 0); + return $def(self, '$<<', function $UniqKeysSet_$lt$lt$1(element) { var $a, self = this, key = nil, _ = nil; if ($truthy(self.set['$include?'](element))) { - $a = [].concat(Opal.to_a(element)), (key = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - key = (function() {if (element.$type()['$==']("str")) { - return key.$inspect() - } else { - return "" + ":" + (key) - }; return nil; })(); - return $$($nesting, 'Kernel').$warn("" + "warning: key " + (key) + " is duplicated and overwritten"); + $a = [].concat($to_a(element)), (key = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + key = ($eqeq(element.$type(), "str") ? (key.$inspect()) : (":" + (key))); + return $$('Kernel').$warn("warning: key " + (key) + " is duplicated and overwritten"); } else { return self.set['$<<'](element) } - }, $UniqKeysSet_$lt$lt$6.$$arity = 1), nil) && '<<'; + }, 1); })($nesting[0], null, $nesting); - })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting) + })($nesting[0], $$$($$$($Opal, 'Rewriters'), 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/dump_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2; +Opal.modules["opal/rewriters/dump_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $hash2 = Opal.hash2, $def = Opal.def; - Opal.add_stubs(['$require', '$updated']); + Opal.add_stubs('require,updated'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29565,56 +26563,51 @@ Opal.modules["opal/rewriters/dump_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DumpArgs'); - var $nesting = [self].concat($parent_nesting), $DumpArgs_on_def$1, $DumpArgs_on_defs$2, $DumpArgs_on_iter$3; - - Opal.def(self, '$on_def', $DumpArgs_on_def$1 = function $$on_def(node) { - var $a, $iter = $DumpArgs_on_def$1.$$p, $yield = $iter || nil, self = this, _mid = nil, args = nil, _body = nil; + + $def(self, '$on_def', function $$on_def(node) { + var $a, $yield = $$on_def.$$p || nil, self = this, _mid = nil, args = nil, _body = nil; - if ($iter) $DumpArgs_on_def$1.$$p = null; + delete $$on_def.$$p; - node = $send2(self, $find_super(self, 'on_def', $DumpArgs_on_def$1, false, true), 'on_def', [node], null); - $a = [].concat(Opal.to_a(node)), (_mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (_body = ($a[2] == null ? nil : $a[2])), $a; + node = $send2(self, $find_super(self, 'on_def', $$on_def, false, true), 'on_def', [node], null); + $a = [].concat($to_a(node)), (_mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (_body = ($a[2] == null ? nil : $a[2])), $a; return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); - }, $DumpArgs_on_def$1.$$arity = 1); + }, 1); - Opal.def(self, '$on_defs', $DumpArgs_on_defs$2 = function $$on_defs(node) { - var $a, $iter = $DumpArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, _recv = nil, _mid = nil, args = nil, _body = nil; + $def(self, '$on_defs', function $$on_defs(node) { + var $a, $yield = $$on_defs.$$p || nil, self = this, _recv = nil, _mid = nil, args = nil, _body = nil; - if ($iter) $DumpArgs_on_defs$2.$$p = null; + delete $$on_defs.$$p; - node = $send2(self, $find_super(self, 'on_defs', $DumpArgs_on_defs$2, false, true), 'on_defs', [node], null); - $a = [].concat(Opal.to_a(node)), (_recv = ($a[0] == null ? nil : $a[0])), (_mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (_body = ($a[3] == null ? nil : $a[3])), $a; + node = $send2(self, $find_super(self, 'on_defs', $$on_defs, false, true), 'on_defs', [node], null); + $a = [].concat($to_a(node)), (_recv = ($a[0] == null ? nil : $a[0])), (_mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (_body = ($a[3] == null ? nil : $a[3])), $a; return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); - }, $DumpArgs_on_defs$2.$$arity = 1); - return (Opal.def(self, '$on_iter', $DumpArgs_on_iter$3 = function $$on_iter(node) { - var $a, $iter = $DumpArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, _body = nil; + }, 1); + return $def(self, '$on_iter', function $$on_iter(node) { + var $a, $yield = $$on_iter.$$p || nil, self = this, args = nil, _body = nil; - if ($iter) $DumpArgs_on_iter$3.$$p = null; + delete $$on_iter.$$p; - node = $send2(self, $find_super(self, 'on_iter', $DumpArgs_on_iter$3, false, true), 'on_iter', [node], null); - $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (_body = ($a[1] == null ? nil : $a[1])), $a; + node = $send2(self, $find_super(self, 'on_iter', $$on_iter, false, true), 'on_iter', [node], null); + $a = [].concat($to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (_body = ($a[1] == null ? nil : $a[1])), $a; return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); - }, $DumpArgs_on_iter$3.$$arity = 1), nil) && 'on_iter'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $truthy = Opal.truthy, $def = Opal.def, $rb_plus = Opal.rb_plus, $send = Opal.send, $eqeq = Opal.eqeq, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$new', '$updated', '$rewritten', '$initialization', '$s', '$prepend_to_body', '$attr_reader', '$split!', '$+', '$each', '$children', '$==', '$type', '$new_mlhs_tmp', '$process', '$<<', '$length', '$[]', '$empty?']); + Opal.add_stubs('require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -29625,127 +26618,112 @@ Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'MlhsArgs'); - var $nesting = [self].concat($parent_nesting), $MlhsArgs_on_def$1, $MlhsArgs_on_defs$2, $MlhsArgs_on_iter$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$on_def', $MlhsArgs_on_def$1 = function $$on_def(node) { - var $a, $iter = $MlhsArgs_on_def$1.$$p, $yield = $iter || nil, self = this, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; + $def(self, '$on_def', function $$on_def(node) { + var $a, $yield = $$on_def.$$p || nil, self = this, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; - if ($iter) $MlhsArgs_on_def$1.$$p = null; + delete $$on_def.$$p; - node = $send2(self, $find_super(self, 'on_def', $MlhsArgs_on_def$1, false, true), 'on_def', [node], null); - $a = [].concat(Opal.to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; - arguments$ = $$($nesting, 'Arguments').$new(args); + node = $send2(self, $find_super(self, 'on_def', $$on_def, false, true), 'on_def', [node], null); + $a = [].concat($to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + arguments$ = $$('Arguments').$new(args); args = args.$updated(nil, arguments$.$rewritten()); if ($truthy(arguments$.$initialization())) { - body = (function() {if ($truthy(($ret_or_1 = body))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })(); - body = self.$prepend_to_body(body, arguments$.$initialization());}; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + body = self.$prepend_to_body(body, arguments$.$initialization()); + }; return node.$updated(nil, [mid, args, body]); - }, $MlhsArgs_on_def$1.$$arity = 1); + }, 1); - Opal.def(self, '$on_defs', $MlhsArgs_on_defs$2 = function $$on_defs(node) { - var $a, $iter = $MlhsArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_2 = nil; + $def(self, '$on_defs', function $$on_defs(node) { + var $a, $yield = $$on_defs.$$p || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; - if ($iter) $MlhsArgs_on_defs$2.$$p = null; + delete $$on_defs.$$p; - node = $send2(self, $find_super(self, 'on_defs', $MlhsArgs_on_defs$2, false, true), 'on_defs', [node], null); - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; - arguments$ = $$($nesting, 'Arguments').$new(args); + node = $send2(self, $find_super(self, 'on_defs', $$on_defs, false, true), 'on_defs', [node], null); + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; + arguments$ = $$('Arguments').$new(args); args = args.$updated(nil, arguments$.$rewritten()); if ($truthy(arguments$.$initialization())) { - body = (function() {if ($truthy(($ret_or_2 = body))) { - return $ret_or_2 - } else { - return self.$s("nil") - }; return nil; })(); - body = self.$prepend_to_body(body, arguments$.$initialization());}; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + body = self.$prepend_to_body(body, arguments$.$initialization()); + }; return node.$updated(nil, [recv, mid, args, body]); - }, $MlhsArgs_on_defs$2.$$arity = 1); + }, 1); - Opal.def(self, '$on_iter', $MlhsArgs_on_iter$3 = function $$on_iter(node) { - var $a, $iter = $MlhsArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, body = nil, arguments$ = nil, $ret_or_3 = nil; + $def(self, '$on_iter', function $$on_iter(node) { + var $a, $yield = $$on_iter.$$p || nil, self = this, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; - if ($iter) $MlhsArgs_on_iter$3.$$p = null; + delete $$on_iter.$$p; - node = $send2(self, $find_super(self, 'on_iter', $MlhsArgs_on_iter$3, false, true), 'on_iter', [node], null); - $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; - arguments$ = $$($nesting, 'Arguments').$new(args); + node = $send2(self, $find_super(self, 'on_iter', $$on_iter, false, true), 'on_iter', [node], null); + $a = [].concat($to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; + arguments$ = $$('Arguments').$new(args); args = args.$updated(nil, arguments$.$rewritten()); if ($truthy(arguments$.$initialization())) { - body = (function() {if ($truthy(($ret_or_3 = body))) { - return $ret_or_3 - } else { - return self.$s("nil") - }; return nil; })(); - body = self.$prepend_to_body(body, arguments$.$initialization());}; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + body = self.$prepend_to_body(body, arguments$.$initialization()); + }; return node.$updated(nil, [args, body]); - }, $MlhsArgs_on_iter$3.$$arity = 1); + }, 1); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Arguments'); - var $nesting = [self].concat($parent_nesting), $Arguments_initialize$4, $Arguments_reset_tmp_counter$excl$5, $Arguments_new_mlhs_tmp$6, $Arguments_split$excl$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.counter = self.$$prototype.args = self.$$prototype.initialization = nil; + $proto.counter = $proto.args = $proto.initialization = nil; self.$attr_reader("rewritten", "initialization"); - Opal.def(self, '$initialize', $Arguments_initialize$4 = function $$initialize(args) { + $def(self, '$initialize', function $$initialize(args) { var self = this; self.args = args; self.rewritten = []; self.initialization = []; - self.rewriter = $$($nesting, 'MlhsRewriter').$new(); + self.rewriter = $$('MlhsRewriter').$new(); return self['$split!'](); - }, $Arguments_initialize$4.$$arity = 1); + }, 1); - Opal.def(self, '$reset_tmp_counter!', $Arguments_reset_tmp_counter$excl$5 = function() { + $def(self, '$reset_tmp_counter!', function $Arguments_reset_tmp_counter$excl$1() { var self = this; return (self.counter = 0) - }, $Arguments_reset_tmp_counter$excl$5.$$arity = 0); + }, 0); - Opal.def(self, '$new_mlhs_tmp', $Arguments_new_mlhs_tmp$6 = function $$new_mlhs_tmp() { - var self = this, $ret_or_4 = nil; + $def(self, '$new_mlhs_tmp', function $$new_mlhs_tmp() { + var self = this, $ret_or_1 = nil; - self.counter = (function() {if ($truthy(($ret_or_4 = self.counter))) { - return $ret_or_4 - } else { - return 0 - }; return nil; })(); + self.counter = ($truthy(($ret_or_1 = self.counter)) ? ($ret_or_1) : (0)); self.counter = $rb_plus(self.counter, 1); - return "" + "$mlhs_tmp" + (self.counter); - }, $Arguments_new_mlhs_tmp$6.$$arity = 0); - return (Opal.def(self, '$split!', $Arguments_split$excl$7 = function() { - var $$8, self = this; + return "$mlhs_tmp" + (self.counter); + }, 0); + return $def(self, '$split!', function $Arguments_split$excl$2() { + var self = this; - $send(self.args.$children(), 'each', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s, var_name = nil, rhs = nil, mlhs = nil; + $send(self.args.$children(), 'each', [], function $$3(arg){var self = $$3.$$s == null ? this : $$3.$$s, var_name = nil, rhs = nil, mlhs = nil; if (self.rewriter == null) self.rewriter = nil; if (self.initialization == null) self.initialization = nil; if (self.rewritten == null) self.rewritten = nil; - if (arg == null) { - arg = nil; - }; - if (arg.$type()['$==']("mlhs")) { + if (arg == null) arg = nil;; + if ($eqeq(arg.$type(), "mlhs")) { var_name = self.$new_mlhs_tmp(); rhs = self.$s("lvar", var_name); @@ -29754,29 +26732,27 @@ Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) { return self.rewritten['$<<'](self.$s("arg", var_name).$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": var_name})}))); } else { return self.rewritten['$<<'](arg) - };}, $$8.$$s = self, $$8.$$arity = 1, $$8)); - if (self.initialization.$length()['$=='](1)) { + };}, {$$arity: 1, $$s: self}); + if ($eqeq(self.initialization.$length(), 1)) { return (self.initialization = self.initialization['$[]'](0)) } else if ($truthy(self.initialization['$empty?']())) { return (self.initialization = nil) } else { - return (self.initialization = $send(self, 's', ["begin"].concat(Opal.to_a(self.initialization)))) + return (self.initialization = $send(self, 's', ["begin"].concat($to_a(self.initialization)))) }; - }, $Arguments_split$excl$7.$$arity = 0), nil) && 'split!'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base'), $nesting); + return (function($base, $super) { var self = $klass($base, $super, 'MlhsRewriter'); - var $nesting = [self].concat($parent_nesting), $MlhsRewriter_on_arg$9, $MlhsRewriter_on_restarg$10; - - Opal.def(self, '$on_arg', $MlhsRewriter_on_arg$9 = function $$on_arg(node) { - var self = this; - + + $def(self, '$on_arg', function $$on_arg(node) { + return node.$updated("lvasgn") - }, $MlhsRewriter_on_arg$9.$$arity = 1); - return (Opal.def(self, '$on_restarg', $MlhsRewriter_on_restarg$10 = function $$on_restarg(node) { + }, 1); + return $def(self, '$on_restarg', function $$on_restarg(node) { var self = this, name = nil; @@ -29786,18 +26762,17 @@ Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) { } else { return self.$s("splat") }; - }, $MlhsRewriter_on_restarg$10.$$arity = 1), nil) && 'on_restarg'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base')); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/arguments"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/rewriters/arguments"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$attr_reader', '$each', '$type', '$===', '$<<', '$any?', '$raise', '$!', '$nil?', '$has_any_kwargs?', '$can_inline_kwargs?', '$empty?']); + Opal.add_stubs('attr_reader,each,===,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -29808,17 +26783,17 @@ Opal.modules["opal/rewriters/arguments"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Arguments'); - var $nesting = [self].concat($parent_nesting), $Arguments_initialize$1, $Arguments_has_post_args$ques$3, $Arguments_has_any_kwargs$ques$4, $Arguments_can_inline_kwargs$ques$5; + var $proto = self.$$prototype; - self.$$prototype.restarg = self.$$prototype.postargs = self.$$prototype.kwargs = self.$$prototype.kwoptargs = self.$$prototype.kwrestarg = self.$$prototype.optargs = nil; + $proto.restarg = $proto.postargs = $proto.kwargs = $proto.kwoptargs = $proto.kwrestarg = $proto.optargs = nil; self.$attr_reader("args", "optargs", "restarg", "postargs", "kwargs", "kwoptargs", "kwrestarg", "kwnilarg", "shadowargs", "blockarg"); - Opal.def(self, '$initialize', $Arguments_initialize$1 = function $$initialize(args) { - var $$2, self = this; + $def(self, '$initialize', function $$initialize(args) { + var self = this; self.args = []; @@ -29831,9 +26806,9 @@ Opal.modules["opal/rewriters/arguments"] = function(Opal) { self.kwnilarg = false; self.shadowargs = []; self.blockarg = nil; - return $send(args, 'each', [], ($$2 = function(arg){var self = $$2.$$s == null ? this : $$2.$$s, $case = nil, $ret_or_1 = nil; - if (self.restarg == null) self.restarg = nil; + return $send(args, 'each', [], function $$1(arg){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; if (self.optargs == null) self.optargs = nil; + if (self.restarg == null) self.restarg = nil; if (self.postargs == null) self.postargs = nil; if (self.args == null) self.args = nil; if (self.kwargs == null) self.kwargs = nil; @@ -29842,85 +26817,72 @@ Opal.modules["opal/rewriters/arguments"] = function(Opal) { - if (arg == null) { - arg = nil; - }; - return (function() {$case = arg.$type(); - if ("arg"['$===']($case) || "mlhs"['$===']($case)) {return (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = self.restarg))) { - return $ret_or_1 - } else { - return self.optargs['$any?']() - }; return nil; })())) { - return self.postargs - } else { - return self.args - }; return nil; })()['$<<'](arg)} - else if ("optarg"['$===']($case)) {return self.optargs['$<<'](arg)} - else if ("restarg"['$===']($case)) {return (self.restarg = arg)} - else if ("kwarg"['$===']($case)) {return self.kwargs['$<<'](arg)} - else if ("kwoptarg"['$===']($case)) {return self.kwoptargs['$<<'](arg)} - else if ("kwnilarg"['$===']($case)) {return (self.kwnilarg = true)} - else if ("kwrestarg"['$===']($case)) {return (self.kwrestarg = arg)} - else if ("shadowarg"['$===']($case)) {return self.shadowargs['$<<'](arg)} - else if ("blockarg"['$===']($case)) {return (self.blockarg = arg)} - else {return self.$raise("" + "Unsupported arg type " + (arg.$type()))}})();}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }, $Arguments_initialize$1.$$arity = 1); - - Opal.def(self, '$has_post_args?', $Arguments_has_post_args$ques$3 = function() { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; - - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.restarg['$nil?']()['$!']()))) { - return $ret_or_3 - } else { - return self.postargs['$any?']() - }; return nil; })()))) { - return $ret_or_2 + if (arg == null) arg = nil;; + if (($eqeqeq("arg", ($ret_or_1 = arg.$type())) || ($eqeqeq("mlhs", $ret_or_1)))) { + return (($truthy(self.restarg) || ($truthy(self.optargs['$any?']()))) ? (self.postargs) : (self.args))['$<<'](arg) + } else if ($eqeqeq("optarg", $ret_or_1)) { + return self.optargs['$<<'](arg) + } else if ($eqeqeq("restarg", $ret_or_1)) { + return (self.restarg = arg) + } else if ($eqeqeq("kwarg", $ret_or_1)) { + return self.kwargs['$<<'](arg) + } else if ($eqeqeq("kwoptarg", $ret_or_1)) { + return self.kwoptargs['$<<'](arg) + } else if ($eqeqeq("kwnilarg", $ret_or_1)) { + return (self.kwnilarg = true) + } else if ($eqeqeq("kwrestarg", $ret_or_1)) { + return (self.kwrestarg = arg) + } else if ($eqeqeq("shadowarg", $ret_or_1)) { + return self.shadowargs['$<<'](arg) + } else if ($eqeqeq("blockarg", $ret_or_1)) { + return (self.blockarg = arg) + } else { + return self.$raise("Unsupported arg type " + (arg.$type())) + };}, {$$arity: 1, $$s: self}); + }, 1); + + $def(self, '$has_post_args?', function $Arguments_has_post_args$ques$2() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.restarg['$nil?']()['$!']())) ? ($ret_or_2) : (self.postargs['$any?']()))))) { + return $ret_or_1 } else { - if ($truthy(($ret_or_4 = self['$has_any_kwargs?']()))) { + if ($truthy(($ret_or_2 = self['$has_any_kwargs?']()))) { return self['$can_inline_kwargs?']()['$!']() } else { - return $ret_or_4 + return $ret_or_2 }; } - }, $Arguments_has_post_args$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$has_any_kwargs?', $Arguments_has_any_kwargs$ques$4 = function() { - var self = this, $ret_or_5 = nil, $ret_or_6 = nil; + $def(self, '$has_any_kwargs?', function $Arguments_has_any_kwargs$ques$3() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.kwargs['$any?']()))) { - return $ret_or_6 - } else { - return self.kwoptargs['$any?']() - }; return nil; })()))) { - return $ret_or_5 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.kwargs['$any?']())) ? ($ret_or_2) : (self.kwoptargs['$any?']()))))) { + return $ret_or_1 } else { return self.kwrestarg['$nil?']()['$!']() } - }, $Arguments_has_any_kwargs$ques$4.$$arity = 0); - return (Opal.def(self, '$can_inline_kwargs?', $Arguments_can_inline_kwargs$ques$5 = function() { - var self = this, $ret_or_7 = nil, $ret_or_8 = nil; + }, 0); + return $def(self, '$can_inline_kwargs?', function $Arguments_can_inline_kwargs$ques$4() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self.optargs['$empty?']()))) { - return self.restarg['$nil?']() - } else { - return $ret_or_8 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.optargs['$empty?']())) ? (self.restarg['$nil?']()) : ($ret_or_2))))) { return self.postargs['$empty?']() } else { - return $ret_or_7 + return $ret_or_1 } - }, $Arguments_can_inline_kwargs$ques$5.$$arity = 0), nil) && 'can_inline_kwargs?'; - })($nesting[0], null, $nesting) + }, 0); + })($nesting[0], null) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/inline_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["opal/rewriters/inline_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $truthy = Opal.truthy, $hash2 = Opal.hash2, $def = Opal.def, $const_set = Opal.const_set, $send = Opal.send, $eqeq = Opal.eqeq, $Opal = Opal.Opal; - Opal.add_stubs(['$require', '$s', '$new', '$updated', '$inline', '$prepend_to_body', '$initialization', '$attr_reader', '$freeze', '$children', '$each', '$send', '$any?', '$blockarg', '$<<', '$shadowargs', '$args', '$==', '$[]', '$has_post_args?', '$length', '$has_any_kwargs?', '$can_inline_kwargs?', '$kwargs', '$kwoptargs', '$kwrestarg', '$postargs', '$optargs', '$args_to_keep', '$restarg']); + Opal.add_stubs('require,s,new,updated,inline,prepend_to_body,initialization,attr_reader,freeze,children,each,send,any?,blockarg,<<,shadowargs,args,==,[],has_post_args?,length,has_any_kwargs?,can_inline_kwargs?,kwargs,kwoptargs,kwrestarg,postargs,optargs,args_to_keep,restarg'); self.$require("opal/rewriters/base"); self.$require("opal/rewriters/arguments"); @@ -29932,80 +26894,68 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'InlineArgs'); - var $nesting = [self].concat($parent_nesting), $InlineArgs_on_def$1, $InlineArgs_on_defs$2, $InlineArgs_on_iter$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$on_def', $InlineArgs_on_def$1 = function $$on_def(node) { - var $a, $iter = $InlineArgs_on_def$1.$$p, $yield = $iter || nil, self = this, mid = nil, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; + $def(self, '$on_def', function $$on_def(node) { + var $a, $yield = $$on_def.$$p || nil, self = this, mid = nil, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; - if ($iter) $InlineArgs_on_def$1.$$p = null; + delete $$on_def.$$p; - node = $send2(self, $find_super(self, 'on_def', $InlineArgs_on_def$1, false, true), 'on_def', [node], null); - $a = [].concat(Opal.to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; - body = (function() {if ($truthy(($ret_or_1 = body))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })(); - initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "def"})); + node = $send2(self, $find_super(self, 'on_def', $$on_def, false, true), 'on_def', [node], null); + $a = [].concat($to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + initializer = $$('Initializer').$new(args, $hash2(["type"], {"type": "def"})); inline_args = args.$updated(nil, initializer.$inline()); body = self.$prepend_to_body(body, initializer.$initialization()); return node.$updated(nil, [mid, inline_args, body]); - }, $InlineArgs_on_def$1.$$arity = 1); + }, 1); - Opal.def(self, '$on_defs', $InlineArgs_on_defs$2 = function $$on_defs(node) { - var $a, $iter = $InlineArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, $ret_or_2 = nil, initializer = nil, inline_args = nil; + $def(self, '$on_defs', function $$on_defs(node) { + var $a, $yield = $$on_defs.$$p || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; - if ($iter) $InlineArgs_on_defs$2.$$p = null; + delete $$on_defs.$$p; - node = $send2(self, $find_super(self, 'on_defs', $InlineArgs_on_defs$2, false, true), 'on_defs', [node], null); - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; - body = (function() {if ($truthy(($ret_or_2 = body))) { - return $ret_or_2 - } else { - return self.$s("nil") - }; return nil; })(); - initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "defs"})); + node = $send2(self, $find_super(self, 'on_defs', $$on_defs, false, true), 'on_defs', [node], null); + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + initializer = $$('Initializer').$new(args, $hash2(["type"], {"type": "defs"})); inline_args = args.$updated(nil, initializer.$inline()); body = self.$prepend_to_body(body, initializer.$initialization()); return node.$updated(nil, [recv, mid, inline_args, body]); - }, $InlineArgs_on_defs$2.$$arity = 1); + }, 1); - Opal.def(self, '$on_iter', $InlineArgs_on_iter$3 = function $$on_iter(node) { - var $a, $iter = $InlineArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, body = nil, $ret_or_3 = nil, initializer = nil, inline_args = nil; + $def(self, '$on_iter', function $$on_iter(node) { + var $a, $yield = $$on_iter.$$p || nil, self = this, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; - if ($iter) $InlineArgs_on_iter$3.$$p = null; + delete $$on_iter.$$p; - node = $send2(self, $find_super(self, 'on_iter', $InlineArgs_on_iter$3, false, true), 'on_iter', [node], null); - $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; - body = (function() {if ($truthy(($ret_or_3 = body))) { - return $ret_or_3 - } else { - return self.$s("nil") - }; return nil; })(); - initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "iter"})); + node = $send2(self, $find_super(self, 'on_iter', $$on_iter, false, true), 'on_iter', [node], null); + $a = [].concat($to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; + body = ($truthy(($ret_or_1 = body)) ? ($ret_or_1) : (self.$s("nil"))); + initializer = $$('Initializer').$new(args, $hash2(["type"], {"type": "iter"})); inline_args = args.$updated(nil, initializer.$inline()); body = self.$prepend_to_body(body, initializer.$initialization()); return node.$updated(nil, [inline_args, body]); - }, $InlineArgs_on_iter$3.$$arity = 1); + }, 1); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Initializer'); - var $nesting = [self].concat($parent_nesting), $Initializer_initialize$4, $Initializer_extract_blockarg$6, $Initializer_initialize_shadowargs$7, $Initializer_extract_args$9, $Initializer_prepare_post_args$11, $Initializer_prepare_kwargs$12, $Initializer_extract_kwargs$13, $Initializer_extract_kwoptargs$15, $Initializer_extract_kwrestarg$17, $Initializer_extract_post_args$18, $Initializer_extract_optargs$20, $Initializer_extract_restarg$22, $Initializer_args_to_keep$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.initialization = self.$$prototype.args = self.$$prototype.inline = nil; + $proto.initialization = $proto.args = $proto.inline = nil; self.$attr_reader("inline", "initialization"); - Opal.const_set($nesting[0], 'STEPS', ["extract_blockarg", "initialize_shadowargs", "extract_args", "prepare_post_args", "prepare_kwargs", "extract_optargs", "extract_restarg", "extract_post_args", "extract_kwargs", "extract_kwoptargs", "extract_kwrestarg"].$freeze()); + $const_set($nesting[0], 'STEPS', ["extract_blockarg", "initialize_shadowargs", "extract_args", "prepare_post_args", "prepare_kwargs", "extract_optargs", "extract_restarg", "extract_post_args", "extract_kwargs", "extract_kwoptargs", "extract_kwrestarg"].$freeze()); - Opal.def(self, '$initialize', $Initializer_initialize$4 = function $$initialize(args, $kwargs) { - var type, $$5, self = this; + $def(self, '$initialize', function $$initialize(args, $kwargs) { + var type, self = this; @@ -30019,27 +26969,25 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { throw Opal.ArgumentError.$new('missing keyword: type'); } type = $kwargs.$$smap["type"];; - self.args = $$($nesting, 'Arguments').$new(args.$children()); + self.args = $$('Arguments').$new(args.$children()); self.inline = []; self.initialization = []; self.type = type; self.underscore_found = false; - $send($$($nesting, 'STEPS'), 'each', [], ($$5 = function(step){var self = $$5.$$s == null ? this : $$5.$$s; + $send($$('STEPS'), 'each', [], function $$1(step){var self = $$1.$$s == null ? this : $$1.$$s; - if (step == null) { - step = nil; - }; - return self.$send(step);}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + if (step == null) step = nil;; + return self.$send(step);}, {$$arity: 1, $$s: self}); if ($truthy(self.initialization['$any?']())) { - return (self.initialization = $send(self, 's', ["begin"].concat(Opal.to_a(self.initialization)))) + return (self.initialization = $send(self, 's', ["begin"].concat($to_a(self.initialization)))) } else { return (self.initialization = nil) }; - }, $Initializer_initialize$4.$$arity = 2); + }, 2); - Opal.def(self, '$extract_blockarg', $Initializer_extract_blockarg$6 = function $$extract_blockarg() { + $def(self, '$extract_blockarg', function $$extract_blockarg() { var self = this, arg = nil; if ($truthy((arg = self.args.$blockarg()))) { @@ -30047,26 +26995,24 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { } else { return nil } - }, $Initializer_extract_blockarg$6.$$arity = 0); + }, 0); - Opal.def(self, '$initialize_shadowargs', $Initializer_initialize_shadowargs$7 = function $$initialize_shadowargs() { - var $$8, self = this; + $def(self, '$initialize_shadowargs', function $$initialize_shadowargs() { + var self = this; - return $send(self.args.$shadowargs(), 'each', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; + return $send(self.args.$shadowargs(), 'each', [], function $$2(arg){var self = $$2.$$s == null ? this : $$2.$$s; if (self.initialization == null) self.initialization = nil; - if (arg == null) { - arg = nil; - }; - return self.initialization['$<<'](arg.$updated("initialize_shadowarg"));}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - }, $Initializer_initialize_shadowargs$7.$$arity = 0); + if (arg == null) arg = nil;; + return self.initialization['$<<'](arg.$updated("initialize_shadowarg"));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$extract_args', $Initializer_extract_args$9 = function $$extract_args() { - var $$10, self = this; + $def(self, '$extract_args', function $$extract_args() { + var self = this; - return $send(self.args.$args(), 'each', [], ($$10 = function(arg){var self = $$10.$$s == null ? this : $$10.$$s; + return $send(self.args.$args(), 'each', [], function $$3(arg){var self = $$3.$$s == null ? this : $$3.$$s; if (self.type == null) self.type = nil; if (self.initialization == null) self.initialization = nil; if (self.underscore_found == null) self.underscore_found = nil; @@ -30074,21 +27020,22 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { - if (arg == null) { - arg = nil; - }; - if (self.type['$==']("iter")) { + if (arg == null) arg = nil;; + if ($eqeq(self.type, "iter")) { self.initialization['$<<'](arg.$updated("initialize_iter_arg")); - if (arg.$children()['$[]'](0)['$==']("_")) { + if ($eqeq(arg.$children()['$[]'](0), "_")) { if ($truthy(self.underscore_found)) { - arg = self.$s("fake_arg")}; - self.underscore_found = true;};}; - return self.inline['$<<'](arg);}, $$10.$$s = self, $$10.$$arity = 1, $$10)) - }, $Initializer_extract_args$9.$$arity = 0); + arg = self.$s("fake_arg") + }; + self.underscore_found = true; + }; + }; + return self.inline['$<<'](arg);}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$prepare_post_args', $Initializer_prepare_post_args$11 = function $$prepare_post_args() { + $def(self, '$prepare_post_args', function $$prepare_post_args() { var self = this; if ($truthy(self.args['$has_post_args?']())) { @@ -30096,14 +27043,13 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { } else { return nil } - }, $Initializer_prepare_post_args$11.$$arity = 0); + }, 0); - Opal.def(self, '$prepare_kwargs', $Initializer_prepare_kwargs$12 = function $$prepare_kwargs() { + $def(self, '$prepare_kwargs', function $$prepare_kwargs() { var self = this; - if ($truthy(self.args['$has_any_kwargs?']())) { - } else { + if (!$truthy(self.args['$has_any_kwargs?']())) { return nil }; if ($truthy(self.args['$can_inline_kwargs?']())) { @@ -30114,37 +27060,33 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { self.inline['$<<'](self.$s("fake_arg")); }; return self.initialization['$<<'](self.$s("ensure_kwargs_are_kwargs")); - }, $Initializer_prepare_kwargs$12.$$arity = 0); + }, 0); - Opal.def(self, '$extract_kwargs', $Initializer_extract_kwargs$13 = function $$extract_kwargs() { - var $$14, self = this; + $def(self, '$extract_kwargs', function $$extract_kwargs() { + var self = this; - return $send(self.args.$kwargs(), 'each', [], ($$14 = function(arg){var self = $$14.$$s == null ? this : $$14.$$s; + return $send(self.args.$kwargs(), 'each', [], function $$4(arg){var self = $$4.$$s == null ? this : $$4.$$s; if (self.initialization == null) self.initialization = nil; - if (arg == null) { - arg = nil; - }; - return self.initialization['$<<'](arg.$updated("extract_kwarg"));}, $$14.$$s = self, $$14.$$arity = 1, $$14)) - }, $Initializer_extract_kwargs$13.$$arity = 0); + if (arg == null) arg = nil;; + return self.initialization['$<<'](arg.$updated("extract_kwarg"));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$extract_kwoptargs', $Initializer_extract_kwoptargs$15 = function $$extract_kwoptargs() { - var $$16, self = this; + $def(self, '$extract_kwoptargs', function $$extract_kwoptargs() { + var self = this; - return $send(self.args.$kwoptargs(), 'each', [], ($$16 = function(arg){var self = $$16.$$s == null ? this : $$16.$$s; + return $send(self.args.$kwoptargs(), 'each', [], function $$5(arg){var self = $$5.$$s == null ? this : $$5.$$s; if (self.initialization == null) self.initialization = nil; - if (arg == null) { - arg = nil; - }; - return self.initialization['$<<'](arg.$updated("extract_kwoptarg"));}, $$16.$$s = self, $$16.$$arity = 1, $$16)) - }, $Initializer_extract_kwoptargs$15.$$arity = 0); + if (arg == null) arg = nil;; + return self.initialization['$<<'](arg.$updated("extract_kwoptarg"));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$extract_kwrestarg', $Initializer_extract_kwrestarg$17 = function $$extract_kwrestarg() { + $def(self, '$extract_kwrestarg', function $$extract_kwrestarg() { var self = this, arg = nil; if ($truthy((arg = self.args.$kwrestarg()))) { @@ -30152,51 +27094,47 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { } else { return nil } - }, $Initializer_extract_kwrestarg$17.$$arity = 0); + }, 0); - Opal.def(self, '$extract_post_args', $Initializer_extract_post_args$18 = function $$extract_post_args() { - var $$19, self = this; + $def(self, '$extract_post_args', function $$extract_post_args() { + var self = this; - return $send(self.args.$postargs(), 'each', [], ($$19 = function(arg){var self = $$19.$$s == null ? this : $$19.$$s; + return $send(self.args.$postargs(), 'each', [], function $$6(arg){var self = $$6.$$s == null ? this : $$6.$$s; if (self.initialization == null) self.initialization = nil; if (self.inline == null) self.inline = nil; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; self.initialization['$<<'](arg.$updated("extract_post_arg")); - return self.inline['$<<'](self.$s("fake_arg"));}, $$19.$$s = self, $$19.$$arity = 1, $$19)) - }, $Initializer_extract_post_args$18.$$arity = 0); + return self.inline['$<<'](self.$s("fake_arg"));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$extract_optargs', $Initializer_extract_optargs$20 = function $$extract_optargs() { - var $$21, self = this, has_post_args = nil; + $def(self, '$extract_optargs', function $$extract_optargs() { + var self = this, has_post_args = nil; has_post_args = self.args['$has_post_args?'](); - return $send(self.args.$optargs(), 'each', [], ($$21 = function(arg){var self = $$21.$$s == null ? this : $$21.$$s, $a, arg_name = nil, default_value = nil; + return $send(self.args.$optargs(), 'each', [], function $$7(arg){var $a, self = $$7.$$s == null ? this : $$7.$$s, arg_name = nil, default_value = nil; if (self.initialization == null) self.initialization = nil; if (self.inline == null) self.inline = nil; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; if ($truthy(has_post_args)) { - $a = [].concat(Opal.to_a(arg)), (arg_name = ($a[0] == null ? nil : $a[0])), (default_value = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(arg)), (arg_name = ($a[0] == null ? nil : $a[0])), (default_value = ($a[1] == null ? nil : $a[1])), $a; self.initialization['$<<'](arg.$updated("extract_post_optarg", [arg_name, default_value, self.$args_to_keep()])); return self.inline['$<<'](self.$s("fake_arg")); } else { self.inline['$<<'](arg.$updated("arg")); return self.initialization['$<<'](arg.$updated("extract_optarg")); - };}, $$21.$$s = self, $$21.$$arity = 1, $$21)); - }, $Initializer_extract_optargs$20.$$arity = 0); + };}, {$$arity: 1, $$s: self}); + }, 0); - Opal.def(self, '$extract_restarg', $Initializer_extract_restarg$22 = function $$extract_restarg() { + $def(self, '$extract_restarg', function $$extract_restarg() { var self = this, arg = nil, arg_name = nil; if ($truthy((arg = self.args.$restarg()))) { @@ -30207,23 +27145,22 @@ Opal.modules["opal/rewriters/inline_args"] = function(Opal) { } else { return nil } - }, $Initializer_extract_restarg$22.$$arity = 0); - return (Opal.def(self, '$args_to_keep', $Initializer_args_to_keep$23 = function $$args_to_keep() { + }, 0); + return $def(self, '$args_to_keep', function $$args_to_keep() { var self = this; return self.args.$postargs().$length() - }, $Initializer_args_to_keep$23.$$arity = 0), nil) && 'args_to_keep'; - })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$$($$$($Opal, 'Rewriters'), 'Base'), $nesting); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/numblocks"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/rewriters/numblocks"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_ary = Opal.to_ary, $send = Opal.send, $to_a = Opal.to_a, $def = Opal.def; - Opal.add_stubs(['$require', '$children', '$s', '$gen_args', '$map']); + Opal.add_stubs('require,children,s,gen_args,map'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -30234,47 +27171,40 @@ Opal.modules["opal/rewriters/numblocks"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Numblocks'); - var $nesting = [self].concat($parent_nesting), $Numblocks_on_numblock$1, $Numblocks_gen_args$2; - - Opal.def(self, '$on_numblock', $Numblocks_on_numblock$1 = function $$on_numblock(node) { + + $def(self, '$on_numblock', function $$on_numblock(node) { var $a, $b, self = this, left = nil, arg_count = nil, right = nil; - $b = node.$children(), $a = Opal.to_ary($b), (left = ($a[0] == null ? nil : $a[0])), (arg_count = ($a[1] == null ? nil : $a[1])), (right = ($a[2] == null ? nil : $a[2])), $b; - return self.$s("block", left, $send(self, 's', ["args"].concat(Opal.to_a(self.$gen_args(arg_count)))), right); - }, $Numblocks_on_numblock$1.$$arity = 1); - return (Opal.def(self, '$gen_args', $Numblocks_gen_args$2 = function $$gen_args(arg_count) { - var $$3, self = this; + $b = node.$children(), $a = $to_ary($b), (left = ($a[0] == null ? nil : $a[0])), (arg_count = ($a[1] == null ? nil : $a[1])), (right = ($a[2] == null ? nil : $a[2])), $b; + return self.$s("block", left, $send(self, 's', ["args"].concat($to_a(self.$gen_args(arg_count)))), right); + }, 1); + return $def(self, '$gen_args', function $$gen_args(arg_count) { + var self = this; - return $send(Opal.Range.$new(1, arg_count, false), 'map', [], ($$3 = function(i){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(Opal.Range.$new(1, arg_count, false), 'map', [], function $$1(i){var self = $$1.$$s == null ? this : $$1.$$s; - if (i == null) { - i = nil; - }; - return self.$s("arg", "" + "_" + (i));}, $$3.$$s = self, $$3.$$arity = 1, $$3)) - }, $Numblocks_gen_args$2.$$arity = 1), nil) && 'gen_args'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if (i == null) i = nil;; + return self.$s("arg", "_" + (i));}, {$$arity: 1, $$s: self}) + }, 1); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/returnable_logic"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/rewriters/returnable_logic"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $def = Opal.def, $rb_minus = Opal.rb_minus, $to_a = Opal.to_a, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $eqeq = Opal.eqeq; - Opal.add_stubs(['$require', '$+', '$children', '$next_tmp', '$updated', '$s', '$process']); + Opal.add_stubs('require,+,-,children,[]=,meta,s,next_tmp,build_if_from_when,free_tmp,[],process,updated,==,count,first,delete,private,build_rule_from_parts,empty?,type'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -30285,61 +27215,157 @@ Opal.modules["opal/rewriters/returnable_logic"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ReturnableLogic'); - var $nesting = [self].concat($parent_nesting), $ReturnableLogic_next_tmp$1, $ReturnableLogic_reset_tmp_counter$excl$2, $ReturnableLogic_on_or$3, $ReturnableLogic_on_and$4; + var $proto = self.$$prototype; - self.$$prototype.counter = nil; + $proto.counter = nil; - Opal.def(self, '$next_tmp', $ReturnableLogic_next_tmp$1 = function $$next_tmp() { + $def(self, '$next_tmp', function $$next_tmp() { var self = this, $ret_or_1 = nil; - self.counter = (function() {if ($truthy(($ret_or_1 = self.counter))) { - return $ret_or_1 - } else { - return 0 - }; return nil; })(); + self.counter = ($truthy(($ret_or_1 = self.counter)) ? ($ret_or_1) : (0)); self.counter = $rb_plus(self.counter, 1); - return "" + "$ret_or_" + (self.counter); - }, $ReturnableLogic_next_tmp$1.$$arity = 0); + return "$ret_or_" + (self.counter); + }, 0); - Opal.def(self, '$reset_tmp_counter!', $ReturnableLogic_reset_tmp_counter$excl$2 = function() { + $def(self, '$free_tmp', function $$free_tmp() { + var self = this; + + return (self.counter = $rb_minus(self.counter, 1)) + }, 0); + + $def(self, '$reset_tmp_counter!', function $ReturnableLogic_reset_tmp_counter$excl$1() { var self = this; return (self.counter = nil) - }, $ReturnableLogic_reset_tmp_counter$excl$2.$$arity = 0); + }, 0); + + $def(self, '$on_if', function $$on_if(node) { + var $a, $yield = $$on_if.$$p || nil, self = this, test = nil, $writer = nil; + + delete $$on_if.$$p; + + $a = [].concat($to_a(node.$children())), (test = ($a[0] == null ? nil : $a[0])), $a; + if ($truthy(test)) { + + $writer = ["if_test", true]; + $send(test.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return $send2(self, $find_super(self, 'on_if', $$on_if, false, true), 'on_if', [node], $yield); + }, 1); + + $def(self, '$on_case', function $$on_case(node) { + var $a, $b, self = this, lhs = nil, whens = nil, els = nil, $ret_or_1 = nil, lhs_tmp = nil, out = nil; + + + $a = [].concat($to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (whens = $slice.call($a, 1, $b)), (els = ($a[$b] == null ? nil : $a[$b])), $a; + els = ($truthy(($ret_or_1 = els)) ? ($ret_or_1) : (self.$s("nil"))); + if ($truthy(lhs)) { + lhs_tmp = self.$next_tmp() + }; + out = self.$build_if_from_when(node, lhs, lhs_tmp, whens, els); + if ($truthy(lhs)) { + self.$free_tmp() + }; + return out; + }, 1); + + $def(self, '$on_or', function $$on_or(node) { + var $a, self = this, lhs = nil, rhs = nil, $writer = nil, out = nil, lhs_tmp = nil; + + + $a = [].concat($to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(node.$meta()['$[]']("if_test"))) { + + + $writer = ["if_test", (($writer = ["if_test", true]), $send(rhs.$meta(), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; + $send(lhs.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + out = self.$process(node.$updated("if", [lhs, self.$s("true"), rhs])); + } else { + + lhs_tmp = self.$next_tmp(); + out = self.$process(node.$updated("if", [self.$s("lvasgn", lhs_tmp, lhs), self.$s("js_tmp", lhs_tmp), rhs])); + self.$free_tmp(); + }; + return out; + }, 1); + + $def(self, '$on_and', function $$on_and(node) { + var $a, self = this, lhs = nil, rhs = nil, $writer = nil, out = nil, lhs_tmp = nil; + + + $a = [].concat($to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(node.$meta()['$[]']("if_test"))) { + + + $writer = ["if_test", (($writer = ["if_test", true]), $send(rhs.$meta(), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; + $send(lhs.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + out = self.$process(node.$updated("if", [lhs, rhs, self.$s("false")])); + } else { + + lhs_tmp = self.$next_tmp(); + out = self.$process(node.$updated("if", [self.$s("lvasgn", lhs_tmp, lhs), rhs, self.$s("js_tmp", lhs_tmp)])); + self.$free_tmp(); + }; + return out; + }, 1); + + $def(self, '$on_begin', function $$on_begin(node) { + var $yield = $$on_begin.$$p || nil, self = this, $writer = nil; + + delete $$on_begin.$$p; + + if (($truthy(node.$meta()['$[]']("if_test")) && ($eqeq(node.$children().$count(), 1)))) { + + $writer = ["if_test", true]; + $send(node.$children().$first().$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + node.$meta().$delete("if_test"); + return $send2(self, $find_super(self, 'on_begin', $$on_begin, false, true), 'on_begin', [node], $yield); + }, 1); + self.$private(); - Opal.def(self, '$on_or', $ReturnableLogic_on_or$3 = function $$on_or(node) { - var $a, self = this, lhs = nil, rhs = nil, lhs_tmp = nil; + $def(self, '$build_if_from_when', function $$build_if_from_when(node, lhs, lhs_tmp, whens, els) { + var $a, $b, self = this, first_when = nil, next_whens = nil, parts = nil, expr = nil, rule = nil; - $a = [].concat(Opal.to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - lhs_tmp = self.$next_tmp(); - return node.$updated("if", [self.$s("lvasgn", lhs_tmp, self.$process(lhs)), self.$s("js_tmp", lhs_tmp), self.$process(rhs)]); - }, $ReturnableLogic_on_or$3.$$arity = 1); - return (Opal.def(self, '$on_and', $ReturnableLogic_on_and$4 = function $$on_and(node) { - var $a, self = this, lhs = nil, rhs = nil, lhs_tmp = nil; + $a = [].concat($to_a(whens)), (first_when = ($a[0] == null ? nil : $a[0])), (next_whens = $slice.call($a, 1)), $a; + $a = [].concat($to_a(first_when.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (parts = $slice.call($a, 0, $b)), (expr = ($a[$b] == null ? nil : $a[$b])), $a; + rule = self.$build_rule_from_parts(node, lhs, lhs_tmp, parts); + return first_when.$updated("if", [rule, self.$process(expr), ($truthy(next_whens['$empty?']()) ? (self.$process(els)) : (self.$build_if_from_when(nil, nil, lhs_tmp, next_whens, els)))]); + }, 5); + return $def(self, '$build_rule_from_parts', function $$build_rule_from_parts(node, lhs, lhs_tmp, parts) { + var $a, self = this, first_part = nil, next_parts = nil, subrule = nil, splat_on = nil, iter_val = nil, block = nil; - $a = [].concat(Opal.to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - lhs_tmp = self.$next_tmp(); - return node.$updated("if", [self.$s("lvasgn", lhs_tmp, self.$process(lhs)), self.$process(rhs), self.$s("js_tmp", lhs_tmp)]); - }, $ReturnableLogic_on_and$4.$$arity = 1), nil) && 'on_and'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + lhs = (($truthy(node) && ($truthy(lhs_tmp))) ? (node.$updated("lvasgn", [lhs_tmp, self.$process(lhs)])) : (self.$s("js_tmp", lhs_tmp))); + $a = [].concat($to_a(parts)), (first_part = ($a[0] == null ? nil : $a[0])), (next_parts = $slice.call($a, 1)), $a; + subrule = ($eqeq(first_part.$type(), "splat") ? (((splat_on = first_part.$children().$first()), (iter_val = self.$next_tmp()), (block = self.$s("send", self.$process(splat_on), "any?", self.$s("iter", self.$s("args", self.$s("arg", iter_val)), self.$build_rule_from_parts(nil, nil, lhs_tmp, [self.$s("lvar", iter_val)])))), (($truthy(node) && ($truthy(lhs_tmp))) ? (self.$s("begin", lhs, block)) : (block)))) : ($truthy(lhs_tmp) ? (self.$s("send", self.$process(first_part), "===", lhs)) : (self.$process(first_part)))); + if ($truthy(next_parts['$empty?']())) { + return subrule + } else { + return self.$s("if", subrule, self.$s("true"), self.$build_rule_from_parts(nil, nil, lhs_tmp, next_parts)) + }; + }, 4); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/forward_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/rewriters/forward_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $range = Opal.range, $to_a = Opal.to_a, $send2 = Opal.send2, $find_super = Opal.find_super, $neqeq = Opal.neqeq; - Opal.add_stubs(['$require', '$process', '$s', '$last', '$children', '$==', '$type', '$[]', '$updated', '$!=', '$class']); + Opal.add_stubs('require,process,s,==,type,last,children,[],updated,!=,class'); self.$require("opal/rewriters/base"); return (function($base, $parent_nesting) { @@ -30350,75 +27376,54 @@ Opal.modules["opal/rewriters/forward_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ForwardArgs'); - var $nesting = [self].concat($parent_nesting), $ForwardArgs_on_forward_args$1, $ForwardArgs_on_args$2, $ForwardArgs_on_send$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$on_forward_args', $ForwardArgs_on_forward_args$1 = function $$on_forward_args(_node) { + $def(self, '$on_forward_args', function $$on_forward_args(_node) { var self = this; return self.$process(self.$s("args", self.$s("forward_arg", "$"))) - }, $ForwardArgs_on_forward_args$1.$$arity = 1); + }, 1); - Opal.def(self, '$on_args', $ForwardArgs_on_args$2 = function $$on_args(node) { - var $iter = $ForwardArgs_on_args$2.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil, prev_children = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$on_args', function $$on_args(node) { + var $yield = $$on_args.$$p || nil, self = this, prev_children = nil; - if ($iter) $ForwardArgs_on_args$2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy((function() {if ($truthy(($ret_or_1 = node.$children().$last()))) { - return node.$children().$last().$type()['$==']("forward_arg") - } else { - return $ret_or_1 - }; return nil; })())) { + delete $$on_args.$$p; + if (($truthy(node.$children().$last()) && ($eqeq(node.$children().$last().$type(), "forward_arg")))) { prev_children = node.$children()['$[]']($range(0, -2, false)); - return node.$updated(nil, [].concat(Opal.to_a(prev_children)).concat([self.$s("restarg", "$fwd_rest"), self.$s("blockarg", "$fwd_block")])); + return node.$updated(nil, [].concat($to_a(prev_children)).concat([self.$s("restarg", "$fwd_rest"), self.$s("blockarg", "$fwd_block")])); } else { - return $send2(self, $find_super(self, 'on_args', $ForwardArgs_on_args$2, false, true), 'on_args', $zuper, $iter) - } - }, $ForwardArgs_on_args$2.$$arity = 1); - return (Opal.def(self, '$on_send', $ForwardArgs_on_send$3 = function $$on_send(node) { - var $iter = $ForwardArgs_on_send$3.$$p, $yield = $iter || nil, self = this, $ret_or_2 = nil, $ret_or_3 = nil, prev_children = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) $ForwardArgs_on_send$3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; + return $send2(self, $find_super(self, 'on_args', $$on_args, false, true), 'on_args', [node], $yield) } - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = node.$children().$last()))) { - return node.$children().$last().$class()['$!=']($$($nesting, 'Symbol')) - } else { - return $ret_or_3 - }; return nil; })()))) { - return node.$children().$last().$type()['$==']("forwarded_args") - } else { - return $ret_or_2 - }; return nil; })())) { + }, 1); + return $def(self, '$on_send', function $$on_send(node) { + var $yield = $$on_send.$$p || nil, self = this, prev_children = nil; + + delete $$on_send.$$p; + if ((($truthy(node.$children().$last()) && ($neqeq(node.$children().$last().$class(), $$('Symbol')))) && ($eqeq(node.$children().$last().$type(), "forwarded_args")))) { prev_children = node.$children()['$[]']($range(0, -2, false)); - return node.$updated(nil, [].concat(Opal.to_a(prev_children)).concat([self.$s("splat", self.$s("lvar", "$fwd_rest")), self.$s("block_pass", self.$s("lvar", "$fwd_block"))])); + return node.$updated(nil, [].concat($to_a(prev_children)).concat([self.$s("splat", self.$s("lvar", "$fwd_rest")), self.$s("block_pass", self.$s("lvar", "$fwd_block"))])); } else { - return $send2(self, $find_super(self, 'on_send', $ForwardArgs_on_send$3, false, true), 'on_send', $zuper, $iter) + return $send2(self, $find_super(self, 'on_send', $$on_send, false, true), 'on_send', [node], $yield) } - }, $ForwardArgs_on_send$3.$$arity = 1), nil) && 'on_send'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/rewriter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $hash2 = Opal.hash2, $eqeq = Opal.eqeq, $send = Opal.send; - Opal.add_stubs(['$require', '$<<', '$list', '$delete', '$use', '$disabled?', '$class', '$each', '$new', '$process']); + Opal.add_stubs('require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process'); self.$require("opal/rewriters/opal_engine_check"); self.$require("opal/rewriters/for_rewriter"); @@ -30444,108 +27449,124 @@ Opal.modules["opal/rewriter"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Rewriter'); - var $nesting = [self].concat($parent_nesting), $Rewriter_initialize$6, $Rewriter_process$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; + self.disabled = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $list$1, $use$2, $delete$3, $disable$4, $disabled$ques$5; - - Opal.def(self, '$list', $list$1 = function $$list() { + + $def(self, '$list', function $$list() { var self = this, $ret_or_1 = nil; if (self.list == null) self.list = nil; - return (self.list = (function() {if ($truthy(($ret_or_1 = self.list))) { - return $ret_or_1 - } else { - return [] - }; return nil; })()) - }, $list$1.$$arity = 0); + return (self.list = ($truthy(($ret_or_1 = self.list)) ? ($ret_or_1) : ([]))) + }, 0); - Opal.def(self, '$use', $use$2 = function $$use(rewriter) { + $def(self, '$use', function $$use(rewriter) { var self = this; return self.$list()['$<<'](rewriter) - }, $use$2.$$arity = 1); + }, 1); - Opal.def(self, '$delete', $delete$3 = function(rewriter) { + $def(self, '$delete', function $delete$1(rewriter) { var self = this; return self.$list().$delete(rewriter) - }, $delete$3.$$arity = 1); + }, 1); - Opal.def(self, '$disable', $disable$4 = function $$disable() { - var $iter = $disable$4.$$p, $yield = $iter || nil, self = this; + $def(self, '$disable', function $$disable($kwargs) { + var except, $yield = $$disable.$$p || nil, self = this, old_disabled = nil, $ret_or_1 = nil; + if (self.disabled == null) self.disabled = nil; - if ($iter) $disable$4.$$p = null; + delete $$disable.$$p; + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + except = $kwargs.$$smap["except"]; + if (except == null) except = nil; return (function() { try { - self.disabled = true; + old_disabled = self.disabled; + self.disabled = ($truthy(($ret_or_1 = except)) ? ($ret_or_1) : (true)); return Opal.yieldX($yield, []);; } finally { - (self.disabled = false) - }; })() - }, $disable$4.$$arity = 0); - return (Opal.def(self, '$disabled?', $disabled$ques$5 = function() { - var $a, self = this; + (self.disabled = old_disabled) + }; })(); + }, -1); + + $def(self, '$disabled?', function $disabled$ques$2() { + var self = this; if (self.disabled == null) self.disabled = nil; - if ($truthy((($a = self['disabled'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.disabled - } else { - return nil - } - }, $disabled$ques$5.$$arity = 0), nil) && 'disabled?'; + return self.disabled['$=='](true) + }, 0); + return $def(self, '$rewritter_disabled?', function $rewritter_disabled$ques$3(rewriter) { + var self = this; + if (self.disabled == null) self.disabled = nil; + + + if ($eqeq(self.disabled, false)) { + return false + }; + return self.disabled['$!='](rewriter); + }, 1); })(Opal.get_singleton_class(self), $nesting); - self.$use($$$($$($nesting, 'Rewriters'), 'OpalEngineCheck')); - self.$use($$$($$($nesting, 'Rewriters'), 'ForRewriter')); - self.$use($$$($$($nesting, 'Rewriters'), 'Numblocks')); - self.$use($$$($$($nesting, 'Rewriters'), 'ForwardArgs')); - self.$use($$$($$($nesting, 'Rewriters'), 'BlockToIter')); - self.$use($$$($$($nesting, 'Rewriters'), 'DotJsSyntax')); - self.$use($$$($$($nesting, 'Rewriters'), 'PatternMatching')); - self.$use($$$($$($nesting, 'Rewriters'), 'JsReservedWords')); - self.$use($$$($$($nesting, 'Rewriters'), 'LogicalOperatorAssignment')); - self.$use($$$($$($nesting, 'Rewriters'), 'BinaryOperatorAssignment')); - self.$use($$$($$($nesting, 'Rewriters'), 'ExplicitWriterReturn')); - self.$use($$$($$$($$($nesting, 'Rewriters'), 'Hashes'), 'KeyDuplicatesRewriter')); - self.$use($$$($$($nesting, 'Rewriters'), 'ReturnableLogic')); - self.$use($$$($$($nesting, 'Rewriters'), 'DumpArgs')); - self.$use($$$($$($nesting, 'Rewriters'), 'MlhsArgs')); - self.$use($$$($$($nesting, 'Rewriters'), 'InlineArgs')); - - Opal.def(self, '$initialize', $Rewriter_initialize$6 = function $$initialize(sexp) { + self.$use($$$($$('Rewriters'), 'OpalEngineCheck')); + self.$use($$$($$('Rewriters'), 'ForRewriter')); + self.$use($$$($$('Rewriters'), 'Numblocks')); + self.$use($$$($$('Rewriters'), 'ForwardArgs')); + self.$use($$$($$('Rewriters'), 'BlockToIter')); + self.$use($$$($$('Rewriters'), 'DotJsSyntax')); + self.$use($$$($$('Rewriters'), 'PatternMatching')); + self.$use($$$($$('Rewriters'), 'JsReservedWords')); + self.$use($$$($$('Rewriters'), 'LogicalOperatorAssignment')); + self.$use($$$($$('Rewriters'), 'BinaryOperatorAssignment')); + self.$use($$$($$('Rewriters'), 'ExplicitWriterReturn')); + self.$use($$$($$$($$('Rewriters'), 'Hashes'), 'KeyDuplicatesRewriter')); + self.$use($$$($$('Rewriters'), 'ReturnableLogic')); + self.$use($$$($$('Rewriters'), 'DumpArgs')); + self.$use($$$($$('Rewriters'), 'MlhsArgs')); + self.$use($$$($$('Rewriters'), 'InlineArgs')); + + $def(self, '$initialize', function $$initialize(sexp) { var self = this; return (self.sexp = sexp) - }, $Rewriter_initialize$6.$$arity = 1); - return (Opal.def(self, '$process', $Rewriter_process$7 = function $$process() { - var $$8, self = this; + }, 1); + return $def(self, '$process', function $$process() { + var self = this; if ($truthy(self.$class()['$disabled?']())) { - return self.sexp}; - $send(self.$class().$list(), 'each', [], ($$8 = function(rewriter_class){var self = $$8.$$s == null ? this : $$8.$$s, rewriter = nil; + return self.sexp + }; + $send(self.$class().$list(), 'each', [], function $$4(rewriter_class){var self = $$4.$$s == null ? this : $$4.$$s, rewriter = nil; if (self.sexp == null) self.sexp = nil; - if (rewriter_class == null) { - rewriter_class = nil; + if (rewriter_class == null) rewriter_class = nil;; + if ($truthy(self.$class()['$rewritter_disabled?'](rewriter_class))) { + return nil; }; rewriter = rewriter_class.$new(); - return (self.sexp = rewriter.$process(self.sexp));}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + return (self.sexp = rewriter.$process(self.sexp));}, {$$arity: 1, $$s: self}); return self.sexp; - }, $Rewriter_process$7.$$arity = 0), nil) && 'process'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser/source_buffer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/parser/source_buffer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $defs = Opal.defs; return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -30560,35 +27581,27 @@ Opal.modules["opal/parser/source_buffer"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'SourceBuffer'); - var $nesting = [self].concat($parent_nesting), $SourceBuffer_recognize_encoding$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.defs(self, '$recognize_encoding', $SourceBuffer_recognize_encoding$1 = function $$recognize_encoding(string) { - var $iter = $SourceBuffer_recognize_encoding$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + return $defs(self, '$recognize_encoding', function $$recognize_encoding(string) { + var $yield = $$recognize_encoding.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $SourceBuffer_recognize_encoding$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($ret_or_1 = $send2(self, $find_super(self, 'recognize_encoding', $SourceBuffer_recognize_encoding$1, false, true), 'recognize_encoding', $zuper, $iter)))) { + delete $$recognize_encoding.$$p; + if ($truthy(($ret_or_1 = $send2(self, $find_super(self, 'recognize_encoding', $$recognize_encoding, false, true), 'recognize_encoding', [string], $yield)))) { return $ret_or_1 } else { - return $$$($$($nesting, 'Encoding'), 'UTF_8') + return $$$($$('Encoding'), 'UTF_8') } - }, $SourceBuffer_recognize_encoding$1.$$arity = 1), nil) && 'recognize_encoding' - })($nesting[0], $$$($$$($$$('::', 'Parser'), 'Source'), 'Buffer'), $nesting) + }, 1) + })($nesting[0], $$$($$$($$$('Parser'), 'Source'), 'Buffer'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser/default_config"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $lambda = Opal.lambda; +Opal.modules["opal/parser/default_config"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $lambda = Opal.lambda, $defs = Opal.defs, $truthy = Opal.truthy, $Opal = Opal.Opal; - Opal.add_stubs(['$attr_accessor', '$all_errors_are_fatal=', '$diagnostics', '$-', '$ignore_warnings=', '$diagnostics_consumer', '$consumer=', '$extend', '$diagnostics_consumer=', '$new', '$rewrite', '$process', '$default_parser', '$default_parser_class']); + Opal.add_stubs('attr_accessor,all_errors_are_fatal=,diagnostics,-,ignore_warnings=,diagnostics_consumer,consumer=,extend,diagnostics_consumer=,new,rewrite,process,default_parser,default_parser_class'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -30603,146 +27616,123 @@ Opal.modules["opal/parser/default_config"] = function(Opal) { (function($base, $parent_nesting) { var self = $module($base, 'DefaultConfig'); - var $nesting = [self].concat($parent_nesting), $DefaultConfig_included$2, $DefaultConfig_initialize$4, $DefaultConfig_parse$5, $DefaultConfig_rewrite$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $parent_nesting) { + (function($base) { var self = $module($base, 'ClassMethods'); - var $nesting = [self].concat($parent_nesting), $ClassMethods_default_parser$1; - + self.$attr_accessor("diagnostics_consumer"); - return (Opal.def(self, '$default_parser', $ClassMethods_default_parser$1 = function $$default_parser() { - var $iter = $ClassMethods_default_parser$1.$$p, $yield = $iter || nil, self = this, parser = nil, $writer = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + return $def(self, '$default_parser', function $$default_parser() { + var $yield = $$default_parser.$$p || nil, self = this, parser = nil, $writer = nil; - if ($iter) $ClassMethods_default_parser$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$default_parser.$$p; - parser = $send2(self, $find_super(self, 'default_parser', $ClassMethods_default_parser$1, false, true), 'default_parser', $zuper, $iter); + parser = $send2(self, $find_super(self, 'default_parser', $$default_parser, false, true), 'default_parser', [], $yield); $writer = [true]; - $send(parser.$diagnostics(), 'all_errors_are_fatal=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'all_errors_are_fatal=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [false]; - $send(parser.$diagnostics(), 'ignore_warnings=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'ignore_warnings=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [self.$diagnostics_consumer()]; - $send(parser.$diagnostics(), 'consumer=', Opal.to_a($writer)); + $send(parser.$diagnostics(), 'consumer=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return parser; - }, $ClassMethods_default_parser$1.$$arity = 0), nil) && 'default_parser'; - })($nesting[0], $nesting); - Opal.defs(self, '$included', $DefaultConfig_included$2 = function $$included(klass) { - var $$3, self = this, $writer = nil; + }, 0); + })($nesting[0]); + $defs(self, '$included', function $$included(klass) { + var $writer = nil; - klass.$extend($$($nesting, 'ClassMethods')); + klass.$extend($$('ClassMethods')); - $writer = [$lambda(($$3 = function(diagnostic){var self = $$3.$$s == null ? this : $$3.$$s; - + $writer = [$lambda(function $$1(diagnostic){ - if (diagnostic == null) { - diagnostic = nil; - }; - return nil;}, $$3.$$s = self, $$3.$$arity = 1, $$3))]; - $send(klass, 'diagnostics_consumer=', Opal.to_a($writer)); + if (diagnostic == null) diagnostic = nil;; + return nil;}, 1)]; + $send(klass, 'diagnostics_consumer=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $DefaultConfig_included$2.$$arity = 1); + }, 1); - Opal.def(self, '$initialize', $DefaultConfig_initialize$4 = function $$initialize($a) { - var $post_args, $iter = $DefaultConfig_initialize$4.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $DefaultConfig_initialize$4.$$p = null; + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return $send2(self, $find_super(self, 'initialize', $DefaultConfig_initialize$4, false, true), 'initialize', [$$$($$$($$($nesting, 'Opal'), 'AST'), 'Builder').$new()], null); - }, $DefaultConfig_initialize$4.$$arity = -1); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [$$$($$$($$('Opal'), 'AST'), 'Builder').$new()], null); + }, -1); - Opal.def(self, '$parse', $DefaultConfig_parse$5 = function $$parse(source_buffer) { - var $iter = $DefaultConfig_parse$5.$$p, $yield = $iter || nil, self = this, parsed = nil, rewriten = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$parse', function $$parse(source_buffer) { + var $yield = $$parse.$$p || nil, self = this, parsed = nil, $ret_or_1 = nil, wrapped = nil, rewriten = nil; - if ($iter) $DefaultConfig_parse$5.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$parse.$$p; - parsed = $send2(self, $find_super(self, 'parse', $DefaultConfig_parse$5, false, true), 'parse', $zuper, $iter); - rewriten = self.$rewrite(parsed); + parsed = ($truthy(($ret_or_1 = $send2(self, $find_super(self, 'parse', $$parse, false, true), 'parse', [source_buffer], $yield))) ? ($ret_or_1) : ($$$($$$($Opal, 'AST'), 'Node').$new("nil"))); + wrapped = $$$($$$($Opal, 'AST'), 'Node').$new("top", [parsed]); + rewriten = self.$rewrite(wrapped); return rewriten; - }, $DefaultConfig_parse$5.$$arity = 1); - return (Opal.def(self, '$rewrite', $DefaultConfig_rewrite$6 = function $$rewrite(node) { - var self = this; - - return $$$($$($nesting, 'Opal'), 'Rewriter').$new(node).$process() - }, $DefaultConfig_rewrite$6.$$arity = 1), nil) && 'rewrite'; + }, 1); + return $def(self, '$rewrite', function $$rewrite(node) { + + return $$$($$('Opal'), 'Rewriter').$new(node).$process() + }, 1); })($nesting[0], $nesting); return (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $default_parser$7; - + self.$attr_accessor("default_parser_class"); - return (Opal.def(self, '$default_parser', $default_parser$7 = function $$default_parser() { + return $def(self, '$default_parser', function $$default_parser() { var self = this; return self.$default_parser_class().$default_parser() - }, $default_parser$7.$$arity = 0), nil) && 'default_parser'; + }, 0); })(Opal.get_singleton_class(self), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser/with_ruby_lexer"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/parser/with_ruby_lexer"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$include', '$default_parser_class=', '$-']); + Opal.add_stubs('include,default_parser_class=,-'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'WithRubyLexer'); - var $nesting = [self].concat($parent_nesting), $writer = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $writer = nil; - self.$include($$$($$$($$($nesting, 'Opal'), 'Parser'), 'DefaultConfig')); + self.$include($$$($$$($$('Opal'), 'Parser'), 'DefaultConfig')); $writer = [self]; - $send($$$($$($nesting, 'Opal'), 'Parser'), 'default_parser_class=', Opal.to_a($writer)); + $send($$$($$('Opal'), 'Parser'), 'default_parser_class=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - })($$$($$($nesting, 'Opal'), 'Parser'), $$$($$($nesting, 'Parser'), 'Ruby30'), $nesting) + })($$$($$('Opal'), 'Parser'), $$$($$('Parser'), 'Ruby31'), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser/patch"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $module = Opal.module; +Opal.modules["opal/parser/patch"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $rb_plus = Opal.rb_plus, $send = Opal.send, $hash2 = Opal.hash2, $eqeqeq = Opal.eqeqeq, $eqeq = Opal.eqeq, $not = Opal.not, $rb_le = Opal.rb_le, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt, $rb_times = Opal.rb_times, $rb_divide = Opal.rb_divide, $to_a = Opal.to_a, $module = Opal.module; - Opal.add_stubs(['$source', '$unpack', '$+', '$to_a', '$lines', '$end_with?', '$<<', '$map', '$chomp', '$=~', '$diagnostic', '$nil?', '$type', '$[]', '$respond_to?', '$[]=', '$-', '$send', '$value']); + Opal.add_stubs('source,unpack,+,to_a,lines,end_with?,<<,map,chomp,=~,diagnostic,nil?,new,===,type,updated,dedent,first,children,==,empty?,interrupt,compact,encoding,split,force_encoding,length,map!,each_with_index,!,each_char,<=,-,>,*,/,[],[]=,join,respond_to?,send,value'); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Lexer'); - var $nesting = [self].concat($parent_nesting), $Lexer_source_buffer$eq$1; + var $proto = self.$$prototype; - self.$$prototype.source_buffer = nil; - return (Opal.def(self, '$source_buffer=', $Lexer_source_buffer$eq$1 = function(source_buffer) { + $proto.source_buffer = nil; + return $def(self, '$source_buffer=', function $Lexer_source_buffer$eq$1(source_buffer) { var self = this, source = nil; @@ -30754,63 +27744,49 @@ Opal.modules["opal/parser/patch"] = function(Opal) { } else { return (self.source_pts = nil) }; - }, $Lexer_source_buffer$eq$1.$$arity = 1), nil) && 'source_buffer=' - })($$($nesting, 'Parser'), null, $nesting); - (function($base, $super, $parent_nesting) { + }, 1) + })($$('Parser'), null); + (function($base, $super) { var self = $klass($base, $super, 'Literal'); - var $nesting = [self].concat($parent_nesting), $Literal_extend_string$2; + var $proto = self.$$prototype; - self.$$prototype.buffer_s = self.$$prototype.buffer = nil; + $proto.buffer_s = $proto.buffer = nil; Opal.udef(self, '$' + "extend_string");; - return (Opal.def(self, '$extend_string', $Literal_extend_string$2 = function $$extend_string(string, ts, te) { + return $def(self, '$extend_string', function $$extend_string(string, ts, te) { var self = this, $ret_or_1 = nil; - self.buffer_s = (function() {if ($truthy(($ret_or_1 = self.buffer_s))) { - return $ret_or_1 - } else { - return ts - }; return nil; })(); + self.buffer_s = ($truthy(($ret_or_1 = self.buffer_s)) ? ($ret_or_1) : (ts)); self.buffer_e = te; return (self.buffer = $rb_plus(self.buffer, string)); - }, $Literal_extend_string$2.$$arity = 3), nil) && 'extend_string'; - })($$$($$($nesting, 'Parser'), 'Lexer'), null, $nesting); - (function($base, $super, $parent_nesting) { + }, 3); + })($$$($$('Parser'), 'Lexer'), null); + (function($base, $super) { var self = $klass($base, $super, 'Buffer'); - var $nesting = [self].concat($parent_nesting), $Buffer_source_lines$3; + var $proto = self.$$prototype; - self.$$prototype.lines = self.$$prototype.source = nil; - return (Opal.def(self, '$source_lines', $Buffer_source_lines$3 = function $$source_lines() { - var $$4, self = this, $ret_or_2 = nil, lines = nil; + $proto.lines = $proto.source = nil; + return $def(self, '$source_lines', function $$source_lines() { + var self = this, $ret_or_1 = nil, lines = nil; - return (self.lines = (function() {if ($truthy(($ret_or_2 = self.lines))) { - return $ret_or_2 - } else { + return (self.lines = ($truthy(($ret_or_1 = self.lines)) ? ($ret_or_1) : (((lines = self.source.$lines().$to_a()), ($truthy(self.source['$end_with?']("\n")) ? (lines['$<<']("")) : nil), $send(lines, 'map', [], function $$2(line){ - lines = self.source.$lines().$to_a(); - if ($truthy(self.source['$end_with?']("\n"))) { - lines['$<<']("")}; - return $send(lines, 'map', [], ($$4 = function(line){var self = $$4.$$s == null ? this : $$4.$$s; - - - - if (line == null) { - line = nil; - }; - return line.$chomp("\n");}, $$4.$$s = self, $$4.$$arity = 1, $$4)); - }; return nil; })()) - }, $Buffer_source_lines$3.$$arity = 0), nil) && 'source_lines' - })($$$($$($nesting, 'Parser'), 'Source'), null, $nesting); - (function($base, $super, $parent_nesting) { + + if (line == null) line = nil;; + return line.$chomp("\n");}, 1))))) + }, 0) + })($$$($$('Parser'), 'Source'), null); + (function($base, $super) { var self = $klass($base, $super, 'Default'); - var $nesting = [self].concat($parent_nesting), $Default_check_lvar_name$5; - - return (Opal.def(self, '$check_lvar_name', $Default_check_lvar_name$5 = function $$check_lvar_name(name, loc) { + + + + $def(self, '$check_lvar_name', function $$check_lvar_name(name, loc) { var self = this; if ($truthy(name['$=~'](new RegExp('^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$', 'u')))) { @@ -30818,69 +27794,155 @@ Opal.modules["opal/parser/patch"] = function(Opal) { } else { return self.$diagnostic("error", "lvar_name", $hash2(["name"], {"name": name}), loc) } - }, $Default_check_lvar_name$5.$$arity = 2), nil) && 'check_lvar_name' - })($$$($$($nesting, 'Parser'), 'Builders'), null, $nesting);; - (function($base, $parent_nesting) { - var self = $module($base, 'Mixin'); + }, 2); + return $def(self, '$dedent_string', function $$dedent_string(node, dedent_level) { + var dedenter = nil, $ret_or_1 = nil, children = nil; + + + if (!$truthy(dedent_level['$nil?']())) { + + dedenter = $$$($$$($$$('Parser'), 'Lexer'), 'Dedenter').$new(dedent_level); + if ($eqeqeq("str", ($ret_or_1 = node.$type()))) { + node = node.$updated(nil, [dedenter.$dedent(node.$children().$first())]) + } else if (($eqeqeq("dstr", $ret_or_1) || ($eqeqeq("xstr", $ret_or_1)))) { + + children = $send(node.$children(), 'map', [], function $$3(str_node){ + + + if (str_node == null) str_node = nil;; + if ($eqeq(str_node.$type(), "str")) { + + str_node = str_node.$updated(nil, [dedenter.$dedent(str_node.$children().$first())]); + if ($truthy(str_node.$children().$first()['$empty?']())) { + return nil; + }; + } else { + dedenter.$interrupt() + }; + return str_node;}, 1); + node = node.$updated(nil, children.$compact()); + } else { + nil + }; + }; + return node; + }, 2); + })($$$($$('Parser'), 'Builders'), null); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Dedenter'); - var $nesting = [self].concat($parent_nesting), $Mixin_process$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$dedent', function $$dedent(string) { + var self = this, original_encoding = nil, lines = nil; + + + original_encoding = string.$encoding(); + lines = string.$force_encoding($$$($$('Encoding'), 'BINARY')).$split("\\\n"); + if ($eqeq(lines.$length(), 1)) { + lines = [string.$force_encoding(original_encoding)] + } else { + $send(lines, 'map!', [], function $$4(s){ + + + if (s == null) s = nil;; + return s.$force_encoding(original_encoding);}, 1) + }; + (function(){var $brk = Opal.new_brk(); try {return $send(lines, 'each_with_index', [], function $$5(line, index){var self = $$5.$$s == null ? this : $$5.$$s, left_to_remove = nil, remove = nil, $writer = nil; + if (self.at_line_begin == null) self.at_line_begin = nil; + if (self.dedent_level == null) self.dedent_level = nil; + + + + if (line == null) line = nil;; + + if (index == null) index = nil;; + if (($eqeq(index, 0) && ($not(self.at_line_begin)))) { + return nil; + }; + left_to_remove = self.dedent_level; + remove = 0; + (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], function $$6(char$){var self = $$6.$$s == null ? this : $$6.$$s, $ret_or_1 = nil; + if (self.dedent_level == null) self.dedent_level = nil; + + + + if (char$ == null) char$ = nil;; + if ($truthy($rb_le(left_to_remove, 0))) { + + Opal.brk(nil, $brk) + }; + if ($eqeqeq(" ", ($ret_or_1 = char$))) { + + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, 1)); + } else if ($eqeqeq("\t", $ret_or_1)) { + + if ($truthy($rb_gt($rb_times($$('TAB_WIDTH'), $rb_plus($rb_divide(remove, $$('TAB_WIDTH')), 1)), self.dedent_level))) { + + Opal.brk(nil, $brk) + }; + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, $$('TAB_WIDTH'))); + } else { + + Opal.brk(nil, $brk) + };}, {$$arity: 1, $$s: self, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + + $writer = [index, line['$[]'](Opal.Range.$new(remove, -1, false))]; + $send(lines, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 2, $$s: self, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + string = lines.$join(); + self.at_line_begin = string['$end_with?']("\n"); + return string; + }, 1) + })($$$($$('Parser'), 'Lexer'), null, $nesting);; + (function($base) { + var self = $module($base, 'Mixin'); + Opal.udef(self, '$' + "process");; - return (Opal.def(self, '$process', $Mixin_process$6 = function $$process(node) { - var self = this, $ret_or_3 = nil, type = nil, on_handler = nil, $ret_or_4 = nil, $writer = nil, handler = nil, $ret_or_5 = nil; + return $def(self, '$process', function $$process(node) { + var self = this, $ret_or_1 = nil, type = nil, on_handler = nil, $writer = nil, handler = nil; if (self._on_handler_cache == null) self._on_handler_cache = nil; if ($truthy(node['$nil?']())) { - return nil}; - self._on_handler_cache = (function() {if ($truthy(($ret_or_3 = self._on_handler_cache))) { - return $ret_or_3 - } else { - return $hash2([], {}) - }; return nil; })(); + return nil + }; + self._on_handler_cache = ($truthy(($ret_or_1 = self._on_handler_cache)) ? ($ret_or_1) : ($hash2([], {}))); type = node.$type(); - on_handler = (function() {if ($truthy(($ret_or_4 = self._on_handler_cache['$[]'](type)))) { - return $ret_or_4 - } else { - - $writer = [type, ((handler = "" + "on_" + (type)), (function() {if ($truthy(self['$respond_to?'](handler))) { - return nil - } else { - return (handler = "handler_missing") - }; return nil; })(), handler)]; - $send(self._on_handler_cache, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }; return nil; })(); - if ($truthy(($ret_or_5 = self.$send(on_handler, node)))) { - return $ret_or_5 + on_handler = ($truthy(($ret_or_1 = self._on_handler_cache['$[]'](type))) ? ($ret_or_1) : ((($writer = [type, ((handler = "on_" + (type)), ($truthy(self['$respond_to?'](handler)) ? (nil) : ((handler = "handler_missing"))), handler)]), $send(self._on_handler_cache, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))); + if ($truthy(($ret_or_1 = self.$send(on_handler, node)))) { + return $ret_or_1 } else { return node }; - }, $Mixin_process$6.$$arity = 1), nil) && 'process'; - })($$$($$($nesting, 'AST'), 'Processor'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 1); + })($$$($$('AST'), 'Processor')); + return (function($base, $super) { var self = $klass($base, $super, 'Default'); - var $nesting = [self].concat($parent_nesting), $Default_string_value$7; - + Opal.udef(self, '$' + "string_value");; - return (Opal.def(self, '$string_value', $Default_string_value$7 = function $$string_value(token) { + return $def(self, '$string_value', function $$string_value(token) { var self = this; return self.$value(token) - }, $Default_string_value$7.$$arity = 1), nil) && 'string_value'; - })($$$($$($nesting, 'Parser'), 'Builders'), null, $nesting); + }, 1); + })($$$($$('Parser'), 'Builders'), null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/parser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["opal/parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); self.$require("opal/ast/builder"); self.$require("opal/rewriter"); @@ -30890,11 +27952,10 @@ Opal.modules["opal/parser"] = function(Opal) { return self.$require("opal/parser/patch"); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/fragment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/fragment"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt, $to_a = Opal.to_a, $not = Opal.not, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$to_s', '$inspect', '$type', '$===', '$first', '$children', '$[]', '$line', '$column']); + Opal.add_stubs('attr_reader,to_s,inspect,===,type,[],meta,source_map_name_for,sexp,==,class,+,parent,>,!,first,children,loc,respond_to?,dot,selector,operator,begin,line,location,column'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -30903,77 +27964,164 @@ Opal.modules["opal/fragment"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Fragment'); - var $nesting = [self].concat($parent_nesting), $Fragment_initialize$1, $Fragment_inspect$2, $Fragment_source_map_name$3, $Fragment_line$4, $Fragment_column$5; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.code = self.$$prototype.sexp = nil; + $proto.code = $proto.scope = $proto.sexp = nil; self.$attr_reader("code"); - Opal.def(self, '$initialize', $Fragment_initialize$1 = function $$initialize(code, scope, sexp) { + $def(self, '$initialize', function $$initialize(code, scope, sexp) { var self = this; - if (sexp == null) { - sexp = nil; - }; + if (sexp == null) sexp = nil;; self.code = code.$to_s(); self.sexp = sexp; return (self.scope = scope); - }, $Fragment_initialize$1.$$arity = -3); + }, -3); + + $def(self, '$inspect', function $$inspect() { + var self = this; + + return "f(" + (self.code.$inspect()) + ")" + }, 0); - Opal.def(self, '$inspect', $Fragment_inspect$2 = function $$inspect() { + $def(self, '$source_map_name_for', function $$source_map_name_for(sexp) { + var $a, self = this, $ret_or_1 = nil, $ret_or_2 = nil, scope = nil, iters = nil, level = nil, const$ = nil, name = nil; + + if ($eqeqeq("top", ($ret_or_1 = sexp.$type()))) { + if ($eqeqeq("require", ($ret_or_2 = sexp.$meta()['$[]']("kind")))) { + return "" + } else if ($eqeqeq("eval", $ret_or_2)) { + return "(eval)" + } else if ($eqeqeq("main", $ret_or_2)) { + return "
    " + } else { + return nil + } + } else if (($eqeqeq("begin", $ret_or_1) || (($eqeqeq("newline", $ret_or_1) || ($eqeqeq("js_return", $ret_or_1)))))) { + if ($truthy(self.scope)) { + return self.$source_map_name_for(self.scope.$sexp()) + } else { + return nil + } + } else if ($eqeqeq("iter", $ret_or_1)) { + + scope = self.scope; + iters = 1; + while ($truthy(scope)) { + if ($eqeq(scope.$class(), $$$($$('Nodes'), 'IterNode'))) { + + iters = $rb_plus(iters, 1); + scope = scope.$parent(); + } else { + break; + } + }; + if ($truthy($rb_gt(iters, 1))) { + level = " (" + (iters) + " levels)" + }; + return "block" + (level) + " in " + (self.$source_map_name_for(scope.$sexp())); + } else if ($eqeqeq("self", $ret_or_1)) { + return "self" + } else if ($eqeqeq("module", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (const$ = ($a[0] == null ? nil : $a[0])), $a; + return ""; + } else if ($eqeqeq("class", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (const$ = ($a[0] == null ? nil : $a[0])), $a; + return ""; + } else if ($eqeqeq("const", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (scope = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; + if (($not(scope) || ($eqeq(scope.$type(), "cbase")))) { + return name.$to_s() + } else { + return "" + (self.$source_map_name_for(scope)) + "::" + (name) + }; + } else if ($eqeqeq("int", $ret_or_1)) { + return sexp.$children().$first() + } else if ($eqeqeq("def", $ret_or_1)) { + return sexp.$children().$first() + } else if ($eqeqeq("defs", $ret_or_1)) { + return sexp.$children()['$[]'](1) + } else if ($eqeqeq("send", $ret_or_1)) { + return sexp.$children()['$[]'](1) + } else if (($eqeqeq("lvar", $ret_or_1) || (($eqeqeq("lvasgn", $ret_or_1) || (($eqeqeq("lvdeclare", $ret_or_1) || (($eqeqeq("ivar", $ret_or_1) || (($eqeqeq("ivasgn", $ret_or_1) || (($eqeqeq("gvar", $ret_or_1) || (($eqeqeq("cvar", $ret_or_1) || (($eqeqeq("cvasgn", $ret_or_1) || (($eqeqeq("gvars", $ret_or_1) || (($eqeqeq("gvasgn", $ret_or_1) || ($eqeqeq("arg", $ret_or_1)))))))))))))))))))))) { + return sexp.$children().$first() + } else if (($eqeqeq("str", $ret_or_1) || ($eqeqeq("xstr", $ret_or_1)))) { + return self.$source_map_name_for(self.scope.$sexp()) + } else { + return nil + } + }, 1); + + $def(self, '$source_map_name', function $$source_map_name() { var self = this; - return "" + "f(" + (self.code.$inspect()) + ")" - }, $Fragment_inspect$2.$$arity = 0); + + if (!$truthy(self.sexp)) { + return nil + }; + return self.$source_map_name_for(self.sexp); + }, 0); + + $def(self, '$location', function $$location() { + var self = this, loc = nil, $ret_or_1 = nil; + + if ($not(self.sexp)) { + return nil + } else if ($eqeq(self.sexp.$type(), "send")) { + + loc = self.sexp.$loc(); + if ($truthy(loc['$respond_to?']("dot"))) { + if ($truthy(($ret_or_1 = loc.$dot()))) { + return $ret_or_1 + } else { + return loc.$selector() + } + } else if ($truthy(loc['$respond_to?']("operator"))) { + return loc.$operator() + } else { + return self.sexp + }; + } else if ($eqeq(self.sexp.$type(), "iter")) { + if ($truthy(loc['$respond_to?']("begin"))) { + return self.sexp.$loc().$begin() + } else { + return self.sexp + } + } else { + return self.sexp + } + }, 0); - Opal.def(self, '$source_map_name', $Fragment_source_map_name$3 = function $$source_map_name() { - var self = this, $case = nil; + $def(self, '$line', function $$line() { + var $a, self = this; - return (function() {$case = self.sexp.$type(); - if ("top"['$===']($case) || "begin"['$===']($case) || "newline"['$===']($case) || "js_return"['$===']($case)) {return nil} - else if ("self"['$===']($case)) {return "self"} - else if ("module"['$===']($case)) {return "module"} - else if ("class"['$===']($case)) {return "class"} - else if ("int"['$===']($case)) {return self.sexp.$children().$first()} - else if ("def"['$===']($case)) {return self.sexp.$children().$first()} - else if ("defs"['$===']($case)) {return self.sexp.$children()['$[]'](1)} - else if ("send"['$===']($case)) {return self.sexp.$children()['$[]'](1)} - else if ("lvar"['$===']($case) || "lvasgn"['$===']($case) || "lvdeclare"['$===']($case) || "ivar"['$===']($case) || "ivasgn"['$===']($case) || "gvar"['$===']($case) || "cvar"['$===']($case) || "cvasgn"['$===']($case) || "gvars"['$===']($case) || "gvasgn"['$===']($case)) {return self.sexp.$children().$first()} - else { return nil }})() - }, $Fragment_source_map_name$3.$$arity = 0); + return ($a = self.$location(), ($a === nil || $a == null) ? nil : $send($a, 'line', [])) + }, 0); - Opal.def(self, '$line', $Fragment_line$4 = function $$line() { - var self = this; + $def(self, '$column', function $$column() { + var $a, self = this; - if ($truthy(self.sexp)) { - return self.sexp.$line() - } else { - return nil - } - }, $Fragment_line$4.$$arity = 0); - return (Opal.def(self, '$column', $Fragment_column$5 = function $$column() { + return ($a = self.$location(), ($a === nil || $a == null) ? nil : $send($a, 'column', [])) + }, 0); + return $def(self, '$skip_source_map?', function $Fragment_skip_source_map$ques$1() { var self = this; - if ($truthy(self.sexp)) { - return self.sexp.$column() - } else { - return nil - } - }, $Fragment_column$5.$$arity = 0), nil) && 'column'; + return self.sexp['$=='](false) + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/helpers"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/helpers"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $truthy = Opal.truthy, $def = Opal.def, $rb_plus = Opal.rb_plus, $send = Opal.send, $hash2 = Opal.hash2, $to_a = Opal.to_a, $eqeqeq = Opal.eqeqeq, $slice = Opal.slice, $eqeq = Opal.eqeq, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$require', '$valid_name?', '$inspect', '$=~', '$to_s', '$+', '$indent', '$compiler', '$to_proc', '$parser_indent', '$push', '$current_indent', '$js_truthy_optimize', '$helper', '$fragment', '$expr', '$==', '$type', '$[]', '$children', '$uses_block!', '$scope', '$block_name', '$handlers', '$include?', '$truthy_optimize?', '$new_temp', '$wrap']); + Opal.add_stubs('require,valid_name?,inspect,=~,to_s,+,indent,compiler,to_proc,parser_indent,push,fragment,current_indent,js_truthy_optimize,helper,expr,===,type,[],handlers,include?,truthy_optimize?,==,count,<<,method_calls,first,children,s,[]=,meta,-,new_temp,scope,wrap'); self.$require("opal/regexp_anchors"); return (function($base, $parent_nesting) { @@ -30989,159 +28137,169 @@ Opal.modules["opal/nodes/helpers"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Helpers'); - var $nesting = [self].concat($parent_nesting), $Helpers_property$1, $Helpers_valid_name$ques$2, $Helpers_mid_to_jsid$3, $Helpers_indent$4, $Helpers_current_indent$5, $Helpers_line$6, $Helpers_empty_line$7, $Helpers_js_truthy$8, $Helpers_js_falsy$9, $Helpers_js_truthy_optimize$10, $Helpers_conditional_send$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$property', $Helpers_property$1 = function $$property(name) { + $def(self, '$property', function $$property(name) { var self = this; if ($truthy(self['$valid_name?'](name))) { - return "" + "." + (name) + return "." + (name) } else { - return "" + "[" + (name.$inspect()) + "]" + return "[" + (name.$inspect()) + "]" } - }, $Helpers_property$1.$$arity = 1); + }, 1); - Opal.def(self, '$valid_name?', $Helpers_valid_name$ques$2 = function(name) { - var self = this; - - return $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'JsReservedWords')['$valid_name?'](name) - }, $Helpers_valid_name$ques$2.$$arity = 1); + $def(self, '$valid_name?', function $Helpers_valid_name$ques$1(name) { + + return $$$($$$($$('Opal'), 'Rewriters'), 'JsReservedWords')['$valid_name?'](name) + }, 1); - Opal.def(self, '$mid_to_jsid', $Helpers_mid_to_jsid$3 = function $$mid_to_jsid(mid) { - var self = this; - - if ($truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[/['$=~'](mid.$to_s()))) { - return "" + "['$" + (mid) + "']" + $def(self, '$mid_to_jsid', function $$mid_to_jsid(mid) { + + if ($truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/['$=~'](mid.$to_s()))) { + return "['$" + (mid) + "']" } else { return $rb_plus(".$", mid) } - }, $Helpers_mid_to_jsid$3.$$arity = 1); + }, 1); - Opal.def(self, '$indent', $Helpers_indent$4 = function $$indent() { - var $iter = $Helpers_indent$4.$$p, block = $iter || nil, self = this; + $def(self, '$indent', function $$indent() { + var block = $$indent.$$p || nil, self = this; - if ($iter) $Helpers_indent$4.$$p = null; + delete $$indent.$$p; - - if ($iter) $Helpers_indent$4.$$p = null;; + ; return $send(self.$compiler(), 'indent', [], block.$to_proc()); - }, $Helpers_indent$4.$$arity = 0); + }, 0); - Opal.def(self, '$current_indent', $Helpers_current_indent$5 = function $$current_indent() { + $def(self, '$current_indent', function $$current_indent() { var self = this; return self.$compiler().$parser_indent() - }, $Helpers_current_indent$5.$$arity = 0); + }, 0); - Opal.def(self, '$line', $Helpers_line$6 = function $$line($a) { + $def(self, '$line', function $$line($a) { var $post_args, strs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); strs = $post_args;; - self.$push("" + "\n" + (self.$current_indent())); - return $send(self, 'push', Opal.to_a(strs)); - }, $Helpers_line$6.$$arity = -1); + self.$push(self.$fragment("\n" + (self.$current_indent()), $hash2(["loc"], {"loc": false}))); + return $send(self, 'push', $to_a(strs)); + }, -1); - Opal.def(self, '$empty_line', $Helpers_empty_line$7 = function $$empty_line() { + $def(self, '$empty_line', function $$empty_line() { var self = this; - return self.$push("\n") - }, $Helpers_empty_line$7.$$arity = 0); + return self.$push(self.$fragment("\n", $hash2(["loc"], {"loc": false}))) + }, 0); - Opal.def(self, '$js_truthy', $Helpers_js_truthy$8 = function $$js_truthy(sexp) { + $def(self, '$js_truthy', function $$js_truthy(sexp) { var self = this, optimize = nil; if ($truthy((optimize = self.$js_truthy_optimize(sexp)))) { - return optimize}; + return optimize + }; self.$helper("truthy"); return [self.$fragment("$truthy("), self.$expr(sexp), self.$fragment(")")]; - }, $Helpers_js_truthy$8.$$arity = 1); - - Opal.def(self, '$js_falsy', $Helpers_js_falsy$9 = function $$js_falsy(sexp) { - var self = this, mid = nil; - - - if (sexp.$type()['$==']("send")) { - - mid = sexp.$children()['$[]'](1); - if (mid['$==']("block_given?")) { - - self.$scope()['$uses_block!'](); - return "" + (self.$scope().$block_name()) + " === nil";};}; - self.$helper("falsy"); - return [self.$fragment("$falsy("), self.$expr(sexp), self.$fragment(")")]; - }, $Helpers_js_falsy$9.$$arity = 1); + }, 1); - Opal.def(self, '$js_truthy_optimize', $Helpers_js_truthy_optimize$10 = function $$js_truthy_optimize(sexp) { - var self = this, mid = nil, receiver_handler_class = nil, $ret_or_1 = nil, receiver = nil, allow_optimization_on_type = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$js_truthy_optimize', function $$js_truthy_optimize(sexp) { + var $a, self = this, $ret_or_1 = nil, receiver = nil, mid = nil, args = nil, receiver_handler_class = nil, $ret_or_2 = nil, allow_optimization_on_type = nil, $ret_or_3 = nil, _test = nil, true_body = nil, false_body = nil, $writer = nil; - if (sexp.$type()['$==']("send")) { + if ($eqeqeq("send", ($ret_or_1 = sexp.$type()))) { - mid = sexp.$children()['$[]'](1); - receiver_handler_class = (function() {if ($truthy(($ret_or_1 = (receiver = sexp.$children()['$[]'](0))))) { - return self.$compiler().$handlers()['$[]'](receiver.$type()) - } else { - return $ret_or_1 - }; return nil; })(); - allow_optimization_on_type = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$$($$($nesting, 'Compiler'), 'COMPARE')['$include?'](mid.$to_s())))) { - return receiver_handler_class - } else { - return $ret_or_3 - }; return nil; })()))) { - return receiver_handler_class['$truthy_optimize?']() - } else { - return $ret_or_2 - }; return nil; })(); - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = allow_optimization_on_type))) { - return $ret_or_5 + $a = [].concat($to_a(sexp)), (receiver = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + receiver_handler_class = ($truthy(($ret_or_2 = receiver)) ? (self.$compiler().$handlers()['$[]'](receiver.$type())) : ($ret_or_2)); + allow_optimization_on_type = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = $$$($$('Compiler'), 'COMPARE')['$include?'](mid.$to_s()))) ? (receiver_handler_class) : ($ret_or_3)))) ? (receiver_handler_class['$truthy_optimize?']()) : ($ret_or_2)); + if (($truthy(allow_optimization_on_type) || ($eqeq(mid, "block_given?")))) { + return self.$expr(sexp) + } else if ($eqeq(args.$count(), 1)) { + if ($eqeqeq("==", ($ret_or_2 = mid))) { + + self.$helper("eqeq"); + self.$compiler().$method_calls()['$<<'](mid); + return [self.$fragment("$eqeq("), self.$expr(receiver), self.$fragment(", "), self.$expr(args.$first()), self.$fragment(")")]; + } else if ($eqeqeq("===", $ret_or_2)) { + + self.$helper("eqeqeq"); + self.$compiler().$method_calls()['$<<'](mid); + return [self.$fragment("$eqeqeq("), self.$expr(receiver), self.$fragment(", "), self.$expr(args.$first()), self.$fragment(")")]; + } else if ($eqeqeq("!=", $ret_or_2)) { + + self.$helper("neqeq"); + self.$compiler().$method_calls()['$<<'](mid); + return [self.$fragment("$neqeq("), self.$expr(receiver), self.$fragment(", "), self.$expr(args.$first()), self.$fragment(")")]; + } else { + return nil + } + } else if ($eqeq(args.$count(), 0)) { + if ($eqeqeq("!", ($ret_or_2 = mid))) { + + self.$helper("not"); + self.$compiler().$method_calls()['$<<'](mid); + return [self.$fragment("$not("), self.$expr(receiver), self.$fragment(")")]; + } else { + return nil + } } else { - return mid['$==']("block_given?") - }; return nil; })()))) { - return $ret_or_4 + return nil + }; + } else if ($eqeqeq("begin", $ret_or_1)) { + if ($eqeq(sexp.$children().$count(), 1)) { + return self.$js_truthy_optimize(sexp.$children().$first()) } else { - return mid['$==']("==") - }; return nil; })())) { - return self.$expr(sexp) + return nil + } + } else if ($eqeqeq("if", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (_test = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; + if ($eqeq(true_body, self.$s("true"))) { + + + $writer = ["do_js_truthy_on_false_body", true]; + $send(sexp.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$expr(sexp); + } else if ($eqeq(false_body, self.$s("false"))) { + + + $writer = ["do_js_truthy_on_true_body", true]; + $send(sexp.$meta(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$expr(sexp); } else { return nil }; } else { return nil } - }, $Helpers_js_truthy_optimize$10.$$arity = 1); - return (Opal.def(self, '$conditional_send', $Helpers_conditional_send$11 = function $$conditional_send(recvr) { - var $iter = $Helpers_conditional_send$11.$$p, $yield = $iter || nil, self = this, receiver_temp = nil; + }, 1); + return $def(self, '$conditional_send', function $$conditional_send(recvr) { + var $yield = $$conditional_send.$$p || nil, self = this, receiver_temp = nil; - if ($iter) $Helpers_conditional_send$11.$$p = null; + delete $$conditional_send.$$p; receiver_temp = self.$scope().$new_temp(); self.$push("" + (receiver_temp) + " = ", recvr); - self.$push("" + ", (" + (receiver_temp) + " === nil || " + (receiver_temp) + " == null) ? nil : "); + self.$push(", (" + (receiver_temp) + " === nil || " + (receiver_temp) + " == null) ? nil : "); Opal.yield1($yield, receiver_temp); return self.$wrap("(", ")"); - }, $Helpers_conditional_send$11.$$arity = 1), nil) && 'conditional_send'; + }, 1); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/base"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["opal/nodes/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $defs = Opal.defs, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $Opal = Opal.Opal, $rb_plus = Opal.rb_plus; - Opal.add_stubs(['$require', '$include', '$each', '$[]=', '$handlers', '$-', '$each_with_index', '$define_method', '$[]', '$children', '$attr_reader', '$type', '$compile', '$raise', '$is_a?', '$fragment', '$<<', '$reverse_each', '$unshift', '$push', '$new', '$scope', '$error', '$top_scope', '$s', '$==', '$process', '$expr', '$add_scope_local', '$to_sym', '$add_scope_ivar', '$add_scope_gvar', '$add_scope_temp', '$helper', '$with_temp', '$to_proc', '$in_while?', '$instance_variable_get', '$has_rescue_else?', '$in_ensure', '$in_ensure?', '$in_resbody', '$in_resbody?', '$in_rescue', '$!', '$class_scope?', '$sclass?', '$+', '$parent', '$class_variable_owner_nesting_level', '$comments', '$compiler', '$loc', '$name', '$source_buffer', '$expression', '$start_with?', '$end_with?', '$line']); + Opal.add_stubs('require,include,each,[]=,handlers,-,each_with_index,define_method,[],children,attr_reader,type,top_scope,top_scope=,compile,raise,is_a?,fragment,<<,reverse_each,unshift,push,new,scope,error,loc,==,process,expr,add_scope_local,to_sym,add_scope_ivar,add_scope_gvar,add_scope_temp,helper,with_temp,to_proc,in_while?,instance_variable_get,has_rescue_else?,in_ensure,in_ensure?,in_resbody,in_resbody?,in_rescue,!,class_scope?,sclass?,+,parent,nesting,class_variable_owner_nesting_level,comments,compiler,name,source_buffer,expression,start_with?,end_with?,line'); self.$require("opal/nodes/helpers"); return (function($base, $parent_nesting) { @@ -31157,237 +28315,241 @@ Opal.modules["opal/nodes/base"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Base'); - var $nesting = [self].concat($parent_nesting), $Base_handlers$1, $Base_handle$2, $Base_children$4, $Base_truthy_optimize$ques$7, $Base_initialize$8, $Base_children$9, $Base_compile_to_fragments$10, $Base_compile$11, $Base_push$12, $Base_unshift$14, $Base_wrap$16, $Base_fragment$17, $Base_error$18, $Base_scope$19, $Base_top_scope$20, $Base_s$21, $Base_expr$ques$22, $Base_recv$ques$23, $Base_stmt$ques$24, $Base_process$25, $Base_expr$26, $Base_recv$27, $Base_stmt$28, $Base_expr_or_nil$29, $Base_add_local$30, $Base_add_ivar$31, $Base_add_gvar$32, $Base_add_temp$33, $Base_helper$34, $Base_with_temp$35, $Base_in_while$ques$36, $Base_while_loop$37, $Base_has_rescue_else$ques$38, $Base_in_ensure$39, $Base_in_ensure$ques$40, $Base_in_resbody$41, $Base_in_resbody$ques$42, $Base_in_rescue$43, $Base_class_variable_owner_nesting_level$44, $Base_class_variable_owner$45, $Base_comments$46, $Base_source_location$47; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = self.$$prototype.fragments = self.$$prototype.compiler = self.$$prototype.level = nil; + $proto.compiler = $proto.sexp = $proto.fragments = $proto.level = nil; - self.$include($$($nesting, 'Helpers')); - Opal.defs(self, '$handlers', $Base_handlers$1 = function $$handlers() { + self.$include($$('Helpers')); + $defs(self, '$handlers', function $$handlers() { var self = this, $ret_or_1 = nil; if (self.handlers == null) self.handlers = nil; - return (self.handlers = (function() {if ($truthy(($ret_or_1 = self.handlers))) { - return $ret_or_1 - } else { - return $hash2([], {}) - }; return nil; })()) - }, $Base_handlers$1.$$arity = 0); - Opal.defs(self, '$handle', $Base_handle$2 = function $$handle($a) { - var $post_args, types, $$3, self = this; + return (self.handlers = ($truthy(($ret_or_1 = self.handlers)) ? ($ret_or_1) : ($hash2([], {})))) + }, 0); + $defs(self, '$handle', function $$handle($a) { + var $post_args, types, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); types = $post_args;; - return $send(types, 'each', [], ($$3 = function(type){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + return $send(types, 'each', [], function $$1(type){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; - if (type == null) { - type = nil; - }; + if (type == null) type = nil;; $writer = [type, self]; - $send($$($nesting, 'Base').$handlers(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - }, $Base_handle$2.$$arity = -1); - Opal.defs(self, '$children', $Base_children$4 = function $$children($a) { - var $post_args, names, $$5, self = this; + $send($$('Base').$handlers(), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); + }, -1); + $defs(self, '$children', function $$children($a) { + var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - return $send(names, 'each_with_index', [], ($$5 = function(name, idx){var self = $$5.$$s == null ? this : $$5.$$s, $$6; + return $send(names, 'each_with_index', [], function $$2(name, idx){var self = $$2.$$s == null ? this : $$2.$$s; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (idx == null) { - idx = nil; - }; - return $send(self, 'define_method', [name], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; + if (idx == null) idx = nil;; + return $send(self, 'define_method', [name], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; if (self.sexp == null) self.sexp = nil; - return self.sexp.$children()['$[]'](idx)}, $$6.$$s = self, $$6.$$arity = 0, $$6));}, $$5.$$s = self, $$5.$$arity = 2, $$5)); - }, $Base_children$4.$$arity = -1); - Opal.defs(self, '$truthy_optimize?', $Base_truthy_optimize$ques$7 = function() { - var self = this; - + return self.sexp.$children()['$[]'](idx)}, {$$arity: 0, $$s: self});}, {$$arity: 2, $$s: self}); + }, -1); + $defs(self, '$truthy_optimize?', function $Base_truthy_optimize$ques$4() { + return false - }, $Base_truthy_optimize$ques$7.$$arity = 0); - self.$attr_reader("compiler", "type"); + }, 0); + self.$attr_reader("compiler", "type", "sexp"); - Opal.def(self, '$initialize', $Base_initialize$8 = function $$initialize(sexp, level, compiler) { - var self = this; + $def(self, '$initialize', function $$initialize(sexp, level, compiler) { + var self = this, $ret_or_1 = nil, $writer = nil; self.sexp = sexp; self.type = sexp.$type(); self.level = level; - return (self.compiler = compiler); - }, $Base_initialize$8.$$arity = 3); + self.compiler = compiler; + if ($truthy(($ret_or_1 = self.compiler.$top_scope()))) { + return $ret_or_1 + } else { + + $writer = [self]; + $send(self.compiler, 'top_scope=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }; + }, 3); - Opal.def(self, '$children', $Base_children$9 = function $$children() { + $def(self, '$children', function $$children() { var self = this; return self.sexp.$children() - }, $Base_children$9.$$arity = 0); + }, 0); - Opal.def(self, '$compile_to_fragments', $Base_compile_to_fragments$10 = function $$compile_to_fragments() { + $def(self, '$compile_to_fragments', function $$compile_to_fragments() { var $a, self = this; if ($truthy((($a = self['fragments'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.fragments}; + return self.fragments + }; self.fragments = []; self.$compile(); return self.fragments; - }, $Base_compile_to_fragments$10.$$arity = 0); + }, 0); - Opal.def(self, '$compile', $Base_compile$11 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; return self.$raise("Not Implemented") - }, $Base_compile$11.$$arity = 0); + }, 0); - Opal.def(self, '$push', $Base_push$12 = function $$push($a) { - var $post_args, strs, $$13, self = this; + $def(self, '$push', function $$push($a) { + var $post_args, strs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); strs = $post_args;; - return $send(strs, 'each', [], ($$13 = function(str){var self = $$13.$$s == null ? this : $$13.$$s; + return $send(strs, 'each', [], function $$5(str){var self = $$5.$$s == null ? this : $$5.$$s; if (self.fragments == null) self.fragments = nil; - if (str == null) { - str = nil; + if (str == null) str = nil;; + if ($truthy(str['$is_a?']($$('String')))) { + str = self.$fragment(str) }; - if ($truthy(str['$is_a?']($$($nesting, 'String')))) { - str = self.$fragment(str)}; - return self.fragments['$<<'](str);}, $$13.$$s = self, $$13.$$arity = 1, $$13)); - }, $Base_push$12.$$arity = -1); + return self.fragments['$<<'](str);}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$unshift', $Base_unshift$14 = function $$unshift($a) { - var $post_args, strs, $$15, self = this; + $def(self, '$unshift', function $$unshift($a) { + var $post_args, strs, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); strs = $post_args;; - return $send(strs, 'reverse_each', [], ($$15 = function(str){var self = $$15.$$s == null ? this : $$15.$$s; + return $send(strs, 'reverse_each', [], function $$6(str){var self = $$6.$$s == null ? this : $$6.$$s; if (self.fragments == null) self.fragments = nil; - if (str == null) { - str = nil; + if (str == null) str = nil;; + if ($truthy(str['$is_a?']($$('String')))) { + str = self.$fragment(str) }; - if ($truthy(str['$is_a?']($$($nesting, 'String')))) { - str = self.$fragment(str)}; - return self.fragments.$unshift(str);}, $$15.$$s = self, $$15.$$arity = 1, $$15)); - }, $Base_unshift$14.$$arity = -1); + return self.fragments.$unshift(str);}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$wrap', $Base_wrap$16 = function $$wrap(pre, post) { + $def(self, '$wrap', function $$wrap(pre, post) { var self = this; self.$unshift(pre); return self.$push(post); - }, $Base_wrap$16.$$arity = 2); + }, 2); - Opal.def(self, '$fragment', $Base_fragment$17 = function $$fragment(str) { - var self = this; + $def(self, '$fragment', function $$fragment(str, $kwargs) { + var loc, self = this, $ret_or_1 = nil; - return $$$($$($nesting, 'Opal'), 'Fragment').$new(str, self.$scope(), self.sexp) - }, $Base_fragment$17.$$arity = 1); + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + loc = $kwargs.$$smap["loc"]; + if (loc == null) loc = true; + return $$$($$('Opal'), 'Fragment').$new(str, self.$scope(), ($truthy(($ret_or_1 = loc)) ? (self.sexp) : ($ret_or_1))); + }, -2); - Opal.def(self, '$error', $Base_error$18 = function $$error(msg) { + $def(self, '$error', function $$error(msg) { var self = this; return self.compiler.$error(msg) - }, $Base_error$18.$$arity = 1); + }, 1); - Opal.def(self, '$scope', $Base_scope$19 = function $$scope() { + $def(self, '$scope', function $$scope() { var self = this; return self.compiler.$scope() - }, $Base_scope$19.$$arity = 0); + }, 0); - Opal.def(self, '$top_scope', $Base_top_scope$20 = function $$top_scope() { + $def(self, '$top_scope', function $$top_scope() { var self = this; - return self.$scope().$top_scope() - }, $Base_top_scope$20.$$arity = 0); + return self.compiler.$top_scope() + }, 0); - Opal.def(self, '$s', $Base_s$21 = function $$s($a) { - var $post_args, args, self = this; + $def(self, '$s', function $$s(type, $a) { + var $post_args, children, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments, 1); - args = $post_args;; - return $send(self.compiler, 's', Opal.to_a(args)); - }, $Base_s$21.$$arity = -1); + children = $post_args;; + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": self.sexp.$loc()})); + }, -2); - Opal.def(self, '$expr?', $Base_expr$ques$22 = function() { + $def(self, '$expr?', function $Base_expr$ques$7() { var self = this; return self.level['$==']("expr") - }, $Base_expr$ques$22.$$arity = 0); + }, 0); - Opal.def(self, '$recv?', $Base_recv$ques$23 = function() { + $def(self, '$recv?', function $Base_recv$ques$8() { var self = this; return self.level['$==']("recv") - }, $Base_recv$ques$23.$$arity = 0); + }, 0); - Opal.def(self, '$stmt?', $Base_stmt$ques$24 = function() { + $def(self, '$stmt?', function $Base_stmt$ques$9() { var self = this; return self.level['$==']("stmt") - }, $Base_stmt$ques$24.$$arity = 0); + }, 0); - Opal.def(self, '$process', $Base_process$25 = function $$process(sexp, level) { + $def(self, '$process', function $$process(sexp, level) { var self = this; - if (level == null) { - level = "expr"; - }; + if (level == null) level = "expr";; return self.compiler.$process(sexp, level); - }, $Base_process$25.$$arity = -2); + }, -2); - Opal.def(self, '$expr', $Base_expr$26 = function $$expr(sexp) { + $def(self, '$expr', function $$expr(sexp) { var self = this; return self.compiler.$process(sexp, "expr") - }, $Base_expr$26.$$arity = 1); + }, 1); - Opal.def(self, '$recv', $Base_recv$27 = function $$recv(sexp) { + $def(self, '$recv', function $$recv(sexp) { var self = this; return self.compiler.$process(sexp, "recv") - }, $Base_recv$27.$$arity = 1); + }, 1); - Opal.def(self, '$stmt', $Base_stmt$28 = function $$stmt(sexp) { + $def(self, '$stmt', function $$stmt(sexp) { var self = this; return self.compiler.$process(sexp, "stmt") - }, $Base_stmt$28.$$arity = 1); + }, 1); - Opal.def(self, '$expr_or_nil', $Base_expr_or_nil$29 = function $$expr_or_nil(sexp) { + $def(self, '$expr_or_nil', function $$expr_or_nil(sexp) { var self = this; if ($truthy(sexp)) { @@ -31395,176 +28557,158 @@ Opal.modules["opal/nodes/base"] = function(Opal) { } else { return "nil" } - }, $Base_expr_or_nil$29.$$arity = 1); + }, 1); - Opal.def(self, '$add_local', $Base_add_local$30 = function $$add_local(name) { + $def(self, '$add_local', function $$add_local(name) { var self = this; return self.$scope().$add_scope_local(name.$to_sym()) - }, $Base_add_local$30.$$arity = 1); + }, 1); - Opal.def(self, '$add_ivar', $Base_add_ivar$31 = function $$add_ivar(name) { + $def(self, '$add_ivar', function $$add_ivar(name) { var self = this; return self.$scope().$add_scope_ivar(name) - }, $Base_add_ivar$31.$$arity = 1); + }, 1); - Opal.def(self, '$add_gvar', $Base_add_gvar$32 = function $$add_gvar(name) { + $def(self, '$add_gvar', function $$add_gvar(name) { var self = this; return self.$scope().$add_scope_gvar(name) - }, $Base_add_gvar$32.$$arity = 1); + }, 1); - Opal.def(self, '$add_temp', $Base_add_temp$33 = function $$add_temp(temp) { + $def(self, '$add_temp', function $$add_temp(temp) { var self = this; return self.$scope().$add_scope_temp(temp) - }, $Base_add_temp$33.$$arity = 1); + }, 1); - Opal.def(self, '$helper', $Base_helper$34 = function $$helper(name) { + $def(self, '$helper', function $$helper(name) { var self = this; return self.compiler.$helper(name) - }, $Base_helper$34.$$arity = 1); + }, 1); - Opal.def(self, '$with_temp', $Base_with_temp$35 = function $$with_temp() { - var $iter = $Base_with_temp$35.$$p, block = $iter || nil, self = this; + $def(self, '$with_temp', function $$with_temp() { + var block = $$with_temp.$$p || nil, self = this; - if ($iter) $Base_with_temp$35.$$p = null; + delete $$with_temp.$$p; - - if ($iter) $Base_with_temp$35.$$p = null;; + ; return $send(self.compiler, 'with_temp', [], block.$to_proc()); - }, $Base_with_temp$35.$$arity = 0); + }, 0); - Opal.def(self, '$in_while?', $Base_in_while$ques$36 = function() { + $def(self, '$in_while?', function $Base_in_while$ques$10() { var self = this; return self.compiler['$in_while?']() - }, $Base_in_while$ques$36.$$arity = 0); + }, 0); - Opal.def(self, '$while_loop', $Base_while_loop$37 = function $$while_loop() { + $def(self, '$while_loop', function $$while_loop() { var self = this; return self.compiler.$instance_variable_get("@while_loop") - }, $Base_while_loop$37.$$arity = 0); + }, 0); - Opal.def(self, '$has_rescue_else?', $Base_has_rescue_else$ques$38 = function() { + $def(self, '$has_rescue_else?', function $Base_has_rescue_else$ques$11() { var self = this; return self.$scope()['$has_rescue_else?']() - }, $Base_has_rescue_else$ques$38.$$arity = 0); + }, 0); - Opal.def(self, '$in_ensure', $Base_in_ensure$39 = function $$in_ensure() { - var $iter = $Base_in_ensure$39.$$p, block = $iter || nil, self = this; + $def(self, '$in_ensure', function $$in_ensure() { + var block = $$in_ensure.$$p || nil, self = this; - if ($iter) $Base_in_ensure$39.$$p = null; + delete $$in_ensure.$$p; - - if ($iter) $Base_in_ensure$39.$$p = null;; + ; return $send(self.$scope(), 'in_ensure', [], block.$to_proc()); - }, $Base_in_ensure$39.$$arity = 0); + }, 0); - Opal.def(self, '$in_ensure?', $Base_in_ensure$ques$40 = function() { + $def(self, '$in_ensure?', function $Base_in_ensure$ques$12() { var self = this; return self.$scope()['$in_ensure?']() - }, $Base_in_ensure$ques$40.$$arity = 0); + }, 0); - Opal.def(self, '$in_resbody', $Base_in_resbody$41 = function $$in_resbody() { - var $iter = $Base_in_resbody$41.$$p, block = $iter || nil, self = this; + $def(self, '$in_resbody', function $$in_resbody() { + var block = $$in_resbody.$$p || nil, self = this; - if ($iter) $Base_in_resbody$41.$$p = null; + delete $$in_resbody.$$p; - - if ($iter) $Base_in_resbody$41.$$p = null;; + ; return $send(self.$scope(), 'in_resbody', [], block.$to_proc()); - }, $Base_in_resbody$41.$$arity = 0); + }, 0); - Opal.def(self, '$in_resbody?', $Base_in_resbody$ques$42 = function() { + $def(self, '$in_resbody?', function $Base_in_resbody$ques$13() { var self = this; return self.$scope()['$in_resbody?']() - }, $Base_in_resbody$ques$42.$$arity = 0); + }, 0); - Opal.def(self, '$in_rescue', $Base_in_rescue$43 = function $$in_rescue(node) { - var $iter = $Base_in_rescue$43.$$p, block = $iter || nil, self = this; + $def(self, '$in_rescue', function $$in_rescue(node) { + var block = $$in_rescue.$$p || nil, self = this; - if ($iter) $Base_in_rescue$43.$$p = null; + delete $$in_rescue.$$p; - - if ($iter) $Base_in_rescue$43.$$p = null;; + ; return $send(self.$scope(), 'in_rescue', [node], block.$to_proc()); - }, $Base_in_rescue$43.$$arity = 1); + }, 1); - Opal.def(self, '$class_variable_owner_nesting_level', $Base_class_variable_owner_nesting_level$44 = function $$class_variable_owner_nesting_level() { - var $a, self = this, cvar_scope = nil, nesting_level = nil, $ret_or_2 = nil; + $def(self, '$class_variable_owner_nesting_level', function $$class_variable_owner_nesting_level() { + var $a, self = this, cvar_scope = nil, nesting_level = nil, $ret_or_1 = nil; cvar_scope = self.$scope(); nesting_level = 0; - while ($truthy((function() {if ($truthy(($ret_or_2 = cvar_scope))) { - return cvar_scope['$class_scope?']()['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = cvar_scope)) ? (cvar_scope['$class_scope?']()['$!']()) : ($ret_or_1)))) { if ($truthy(cvar_scope['$sclass?']())) { - nesting_level = $rb_plus(nesting_level, 1)}; + nesting_level = $rb_plus(nesting_level, 1) + }; cvar_scope = cvar_scope.$parent(); }; return nesting_level; - }, $Base_class_variable_owner_nesting_level$44.$$arity = 0); + }, 0); - Opal.def(self, '$class_variable_owner', $Base_class_variable_owner$45 = function $$class_variable_owner() { + $def(self, '$class_variable_owner', function $$class_variable_owner() { var self = this; if ($truthy(self.$scope())) { - return "" + "$nesting[" + (self.$class_variable_owner_nesting_level()) + "]" + return "" + (self.$scope().$nesting()) + "[" + (self.$class_variable_owner_nesting_level()) + "]" } else { return "Opal.Object" } - }, $Base_class_variable_owner$45.$$arity = 0); + }, 0); - Opal.def(self, '$comments', $Base_comments$46 = function $$comments() { + $def(self, '$comments', function $$comments() { var self = this; return self.$compiler().$comments()['$[]'](self.sexp.$loc()) - }, $Base_comments$46.$$arity = 0); - return (Opal.def(self, '$source_location', $Base_source_location$47 = function $$source_location() { + }, 0); + return $def(self, '$source_location', function $$source_location() { var self = this, file = nil, line = nil; file = self.sexp.$loc().$expression().$source_buffer().$name(); if ($truthy(file['$start_with?']("corelib/"))) { - file = "" + ""}; + file = "" + }; if ($truthy(file['$end_with?'](".js"))) { - file = "" + ""}; + file = "" + }; line = self.sexp.$loc().$line(); - return "" + "['" + (file) + "', " + (line) + "]"; - }, $Base_source_location$47.$$arity = 0), nil) && 'source_location'; + return "['" + (file) + "', " + (line) + "]"; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/literal"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $lambda = Opal.lambda, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice; +Opal.modules["opal/nodes/literal"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def, $defs = Opal.defs, $truthy = Opal.truthy, $const_set = Opal.const_set, $hash2 = Opal.hash2, $regexp = Opal.regexp, $send = Opal.send, $rb_plus = Opal.rb_plus, $lambda = Opal.lambda, $rb_le = Opal.rb_le, $rb_minus = Opal.rb_minus, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $eqeqeq = Opal.eqeqeq, $slice = Opal.slice, $Opal = Opal.Opal, $rb_gt = Opal.rb_gt; - Opal.add_stubs(['$require', '$handle', '$push', '$to_s', '$type', '$children', '$value', '$recv?', '$wrap', '$freeze', '$join', '$keys', '$gsub', '$even?', '$length', '$last_match', '$+', '$chop', '$[]', '$inspect', '$to_i', '$to_utf16', '$translate_escape_chars', '$valid_encoding?', '$helper', '$upcase', '$<=', '$call', '$-', '$>>', '$&', '$attr_accessor', '$extract_flags_and_value', '$select!', '$flags', '$=~', '$warning', '$compiler', '$==', '$compile_static_regexp', '$compile_dynamic_regexp', '$each_with_index', '$zero?', '$expr', '$any?', '$===', '$new', '$map', '$to_proc', '$flags=', '$empty?', '$s', '$single_line?', '$value=', '$include?', '$is_a?', '$updated', '$delete', '$source', '$expression', '$loc', '$private', '$>', '$!=', '$!', '$regexp', '$each', '$compile_inline?', '$compile_inline', '$compile_range_initialize', '$start', '$finish', '$raise', '$expr_or_nil', '$numerator', '$denominator', '$real', '$imag']); + Opal.add_stubs('require,handle,==,type,push,self,scope,to_s,children,value,recv?,wrap,freeze,join,keys,gsub,even?,length,last_match,+,chop,[],inspect,to_i,to_utf16,translate_escape_chars,valid_encoding?,helper,upcase,<=,call,-,>>,&,attr_accessor,extract_flags_and_value,select!,flags,=~,warning,compiler,compile_static_regexp,compile_dynamic_regexp,each_with_index,zero?,expr,any?,===,new,map,to_proc,flags=,empty?,s,single_line?,value=,include?,is_a?,updated,delete,source,expression,loc,private,>,!=,!,regexp,first,each,compile_inline?,compile_inline,compile_range_initialize,start,finish,raise,expr_or_nil,absolute_const,top_scope,numerator,denominator,real,imag'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -31575,38 +28719,39 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'ValueNode'); - var $nesting = [self].concat($parent_nesting), $ValueNode_compile$1, $ValueNode_truthy_optimize$ques$2; - + self.$handle("true", "false", "self", "nil"); - Opal.def(self, '$compile', $ValueNode_compile$1 = function $$compile() { - var self = this; - - return self.$push(self.$type().$to_s()) - }, $ValueNode_compile$1.$$arity = 0); - return (Opal.defs(self, '$truthy_optimize?', $ValueNode_truthy_optimize$ques$2 = function() { + $def(self, '$compile', function $$compile() { var self = this; + if ($eqeq(self.$type(), "self")) { + return self.$push(self.$scope().$self()) + } else { + return self.$push(self.$type().$to_s()) + } + }, 0); + return $defs(self, '$truthy_optimize?', function $ValueNode_truthy_optimize$ques$1() { + return true - }, $ValueNode_truthy_optimize$ques$2.$$arity = 0), nil) && 'truthy_optimize?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'NumericNode'); - var $nesting = [self].concat($parent_nesting), $NumericNode_compile$3, $NumericNode_truthy_optimize$ques$4; - + self.$handle("int", "float"); self.$children("value"); - Opal.def(self, '$compile', $NumericNode_compile$3 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; @@ -31616,51 +28761,46 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { } else { return nil }; - }, $NumericNode_compile$3.$$arity = 0); - return (Opal.defs(self, '$truthy_optimize?', $NumericNode_truthy_optimize$ques$4 = function() { - var self = this; - + }, 0); + return $defs(self, '$truthy_optimize?', function $NumericNode_truthy_optimize$ques$2() { + return true - }, $NumericNode_truthy_optimize$ques$4.$$arity = 0), nil) && 'truthy_optimize?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'StringNode'); - var $nesting = [self].concat($parent_nesting), $StringNode_translate_escape_chars$5, $StringNode_compile$7, $StringNode_to_utf16$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("str"); self.$children("value"); - Opal.const_set($nesting[0], 'ESCAPE_CHARS', $hash2(["a", "e"], {"a": "\\u0007", "e": "\\u001b"}).$freeze()); - Opal.const_set($nesting[0], 'ESCAPE_REGEX', Opal.regexp(["(\\\\+)([", $$($nesting, 'ESCAPE_CHARS').$keys().$join(""), "])"]).$freeze()); + $const_set($nesting[0], 'ESCAPE_CHARS', $hash2(["a", "e"], {"a": "\\u0007", "e": "\\u001b"}).$freeze()); + $const_set($nesting[0], 'ESCAPE_REGEX', $regexp(["(\\\\+)([", $$('ESCAPE_CHARS').$keys().$join(""), "])"]).$freeze()); - Opal.def(self, '$translate_escape_chars', $StringNode_translate_escape_chars$5 = function $$translate_escape_chars(inspect_string) { - var $$6, self = this; - - return $send(inspect_string, 'gsub', [$$($nesting, 'ESCAPE_REGEX')], ($$6 = function(original){var self = $$6.$$s == null ? this : $$6.$$s; - + $def(self, '$translate_escape_chars', function $$translate_escape_chars(inspect_string) { + + return $send(inspect_string, 'gsub', [$$('ESCAPE_REGEX')], function $$3(original){ - if (original == null) { - original = nil; - }; - if ($truthy($$($nesting, 'Regexp').$last_match(1).$length()['$even?']())) { + if (original == null) original = nil;; + if ($truthy($$('Regexp').$last_match(1).$length()['$even?']())) { return original } else { - return $rb_plus($$($nesting, 'Regexp').$last_match(1).$chop(), $$($nesting, 'ESCAPE_CHARS')['$[]']($$($nesting, 'Regexp').$last_match(2))) - };}, $$6.$$s = self, $$6.$$arity = 1, $$6)) - }, $StringNode_translate_escape_chars$5.$$arity = 1); + return $rb_plus($$('Regexp').$last_match(1).$chop(), $$('ESCAPE_CHARS')['$[]']($$('Regexp').$last_match(2))) + };}, 1) + }, 1); - Opal.def(self, '$compile', $StringNode_compile$7 = function $$compile() { - var $$8, self = this, string_value = nil, sanitized_value = nil; + $def(self, '$compile', function $$compile() { + var self = this, string_value = nil, sanitized_value = nil; string_value = self.$value(); - sanitized_value = $send(string_value.$inspect(), 'gsub', [/\\u\{([0-9a-f]+)\}/], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s, code_point = nil; + sanitized_value = $send(string_value.$inspect(), 'gsub', [/\\u\{([0-9a-f]+)\}/], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s, code_point = nil; - code_point = $$($nesting, 'Regexp').$last_match(1).$to_i(16); - return self.$to_utf16(code_point);}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + code_point = $$('Regexp').$last_match(1).$to_i(16); + return self.$to_utf16(code_point);}, {$$arity: 0, $$s: self}); self.$push(self.$translate_escape_chars(sanitized_value)); nil; if ($truthy(self.$value()['$valid_encoding?']())) { @@ -31670,247 +28810,232 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { self.$helper("binary"); return self.$wrap("$binary(", ")"); }; - }, $StringNode_compile$7.$$arity = 0); - return (Opal.def(self, '$to_utf16', $StringNode_to_utf16$9 = function $$to_utf16(code_point) { - var $$10, self = this, ten_bits = nil, u = nil, lead_surrogate = nil, tail_surrogate = nil; + }, 0); + return $def(self, '$to_utf16', function $$to_utf16(code_point) { + var ten_bits = nil, u = nil, lead_surrogate = nil, tail_surrogate = nil; ten_bits = 1023; - u = $lambda(($$10 = function(code_unit){var self = $$10.$$s == null ? this : $$10.$$s; - + u = $lambda(function $$5(code_unit){ - if (code_unit == null) { - code_unit = nil; - }; - return $rb_plus("\\u", code_unit.$to_s(16).$upcase());}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + if (code_unit == null) code_unit = nil;; + return $rb_plus("\\u", code_unit.$to_s(16).$upcase());}, 1); if ($truthy($rb_le(code_point, 65535))) { - return u.$call(code_point)}; + return u.$call(code_point) + }; code_point = $rb_minus(code_point, 65536); lead_surrogate = $rb_plus(55296, code_point['$>>'](10)); tail_surrogate = $rb_plus(56320, code_point['$&'](ten_bits)); return $rb_plus(u.$call(lead_surrogate), u.$call(tail_surrogate)); - }, $StringNode_to_utf16$9.$$arity = 1), nil) && 'to_utf16'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'SymbolNode'); - var $nesting = [self].concat($parent_nesting), $SymbolNode_compile$11; - + self.$handle("sym"); self.$children("value"); - return (Opal.def(self, '$compile', $SymbolNode_compile$11 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$value().$to_s().$inspect()) - }, $SymbolNode_compile$11.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'RegexpNode'); - var $nesting = [self].concat($parent_nesting), $RegexpNode_initialize$12, $RegexpNode_compile$13, $RegexpNode_compile_dynamic_regexp$15, $RegexpNode_compile_static_regexp$17, $RegexpNode_extract_flags_and_value$18, $RegexpNode_raw_value$20, $RegexpNode_single_line$ques$21; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; self.$handle("regexp"); self.$attr_accessor("value", "flags"); - Opal.const_set($nesting[0], 'SUPPORTED_FLAGS', /[gimuy]/.$freeze()); + $const_set($nesting[0], 'SUPPORTED_FLAGS', /[gimuy]/.$freeze()); - Opal.def(self, '$initialize', $RegexpNode_initialize$12 = function $$initialize($a) { - var $post_args, $iter = $RegexpNode_initialize$12.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $RegexpNode_initialize$12.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $RegexpNode_initialize$12, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); return self.$extract_flags_and_value(); - }, $RegexpNode_initialize$12.$$arity = -1); + }, -1); - Opal.def(self, '$compile', $RegexpNode_compile$13 = function $$compile() { - var $$14, self = this; + $def(self, '$compile', function $$compile() { + var self = this; - $send(self.$flags(), 'select!', [], ($$14 = function(flag){var self = $$14.$$s == null ? this : $$14.$$s; + $send(self.$flags(), 'select!', [], function $$6(flag){var self = $$6.$$s == null ? this : $$6.$$s; - if (flag == null) { - flag = nil; - }; - if ($truthy($$($nesting, 'SUPPORTED_FLAGS')['$=~'](flag))) { + if (flag == null) flag = nil;; + if ($truthy($$('SUPPORTED_FLAGS')['$=~'](flag))) { return true } else { - self.$compiler().$warning("" + "Skipping the '" + (flag) + "' Regexp flag as it's not widely supported by JavaScript vendors."); + self.$compiler().$warning("Skipping the '" + (flag) + "' Regexp flag as it's not widely supported by JavaScript vendors."); return false; - };}, $$14.$$s = self, $$14.$$arity = 1, $$14)); - if (self.$value().$type()['$==']("str")) { + };}, {$$arity: 1, $$s: self}); + if ($eqeq(self.$value().$type(), "str")) { return self.$compile_static_regexp() } else { return self.$compile_dynamic_regexp() }; - }, $RegexpNode_compile$13.$$arity = 0); + }, 0); - Opal.def(self, '$compile_dynamic_regexp', $RegexpNode_compile_dynamic_regexp$15 = function $$compile_dynamic_regexp() { - var $$16, self = this; + $def(self, '$compile_dynamic_regexp', function $$compile_dynamic_regexp() { + var self = this; - self.$push("Opal.regexp(["); - $send(self.$value().$children(), 'each_with_index', [], ($$16 = function(v, index){var self = $$16.$$s == null ? this : $$16.$$s; + self.$helper("regexp"); + self.$push("$regexp(["); + $send(self.$value().$children(), 'each_with_index', [], function $$7(v, index){var self = $$7.$$s == null ? this : $$7.$$s; - if (v == null) { - v = nil; - }; + if (v == null) v = nil;; - if (index == null) { - index = nil; - }; - if ($truthy(index['$zero?']())) { - } else { + if (index == null) index = nil;; + if (!$truthy(index['$zero?']())) { self.$push(", ") }; - return self.$push(self.$expr(v));}, $$16.$$s = self, $$16.$$arity = 2, $$16)); + return self.$push(self.$expr(v));}, {$$arity: 2, $$s: self}); self.$push("]"); if ($truthy(self.$flags()['$any?']())) { - self.$push("" + ", '" + (self.$flags().$join()) + "'")}; + self.$push(", '" + (self.$flags().$join()) + "'") + }; return self.$push(")"); - }, $RegexpNode_compile_dynamic_regexp$15.$$arity = 0); + }, 0); - Opal.def(self, '$compile_static_regexp', $RegexpNode_compile_static_regexp$17 = function $$compile_static_regexp() { - var self = this, value = nil, $case = nil; + $def(self, '$compile_static_regexp', function $$compile_static_regexp() { + var self = this, value = nil, $ret_or_1 = nil; value = self.$value().$children()['$[]'](0); - return (function() {$case = value; - if (""['$===']($case)) {return self.$push("/(?:)/")} - else {return self.$push("" + ($$($nesting, 'Regexp').$new(value).$inspect()) + (self.$flags().$join()))}})(); - }, $RegexpNode_compile_static_regexp$17.$$arity = 0); + if ($eqeqeq("", ($ret_or_1 = value))) { + return self.$push("/(?:)/") + } else { + return self.$push("" + ($$('Regexp').$new(value).$inspect()) + (self.$flags().$join())) + }; + }, 0); - Opal.def(self, '$extract_flags_and_value', $RegexpNode_extract_flags_and_value$18 = function $$extract_flags_and_value() { - var $a, $b, $$19, self = this, values = nil, flags_sexp = nil, $writer = nil, parts = nil; + $def(self, '$extract_flags_and_value', function $$extract_flags_and_value() { + var $a, $b, self = this, values = nil, flags_sexp = nil, $writer = nil, parts = nil; - $a = [].concat(Opal.to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (values = $slice.call($a, 0, $b)), (flags_sexp = ($a[$b] == null ? nil : $a[$b])), $a; + $a = [].concat($to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (values = $slice.call($a, 0, $b)), (flags_sexp = ($a[$b] == null ? nil : $a[$b])), $a; $writer = [$send(flags_sexp.$children(), 'map', [], "to_s".$to_proc())]; - $send(self, 'flags=', Opal.to_a($writer)); + $send(self, 'flags=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $writer = [(function() {if ($truthy(values['$empty?']())) { - return self.$s("str", "") - } else if ($truthy(self['$single_line?'](values))) { - return values['$[]'](0) - } else { - return $send(self, 's', ["dstr"].concat(Opal.to_a(values))) - }; return nil; })()]; - $send(self, 'value=', Opal.to_a($writer)); + $writer = [($truthy(values['$empty?']()) ? (self.$s("str", "")) : ($truthy(self['$single_line?'](values)) ? (values['$[]'](0)) : ($send(self, 's', ["dstr"].concat($to_a(values))))))]; + $send(self, 'value=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(self.$flags()['$include?']("x"))) { - parts = $send(self.$value().$children(), 'map', [], ($$19 = function(part){var self = $$19.$$s == null ? this : $$19.$$s, $ret_or_1 = nil, trimmed_value = nil; + parts = $send(self.$value().$children(), 'map', [], function $$8(part){var self = $$8.$$s == null ? this : $$8.$$s, trimmed_value = nil; - if (part == null) { - part = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_1 = part['$is_a?']($$$($$$($$$('::', 'Opal'), 'AST'), 'Node'))))) { - return part.$type()['$==']("str") - } else { - return $ret_or_1 - }; return nil; })())) { + if (part == null) part = nil;; + if (($truthy(part['$is_a?']($$$($$$($Opal, 'AST'), 'Node'))) && ($eqeq(part.$type(), "str")))) { trimmed_value = part.$children()['$[]'](0).$gsub(/^\s*\#.*/, "").$gsub(/\s/, ""); return self.$s("str", trimmed_value); } else { return part - };}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + };}, {$$arity: 1, $$s: self}); $writer = [self.$value().$updated(nil, parts)]; - $send(self, 'value=', Opal.to_a($writer)); + $send(self, 'value=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.$flags().$delete("x");}; - if (self.$value().$type()['$==']("str")) { + self.$flags().$delete("x"); + }; + if ($eqeq(self.$value().$type(), "str")) { $writer = [self.$s("str", self.$value().$children()['$[]'](0).$gsub("\\A", "^").$gsub("\\z", "$"))]; - $send(self, 'value=', Opal.to_a($writer)); + $send(self, 'value=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil }; - }, $RegexpNode_extract_flags_and_value$18.$$arity = 0); + }, 0); - Opal.def(self, '$raw_value', $RegexpNode_raw_value$20 = function $$raw_value() { + $def(self, '$raw_value', function $$raw_value() { var self = this, $writer = nil; $writer = [self.sexp.$loc().$expression().$source()]; - $send(self, 'value=', Opal.to_a($writer)); + $send(self, 'value=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $RegexpNode_raw_value$20.$$arity = 0); + }, 0); self.$private(); - return (Opal.def(self, '$single_line?', $RegexpNode_single_line$ques$21 = function(values) { - var self = this, value = nil, $ret_or_2 = nil; + return $def(self, '$single_line?', function $RegexpNode_single_line$ques$9(values) { + var value = nil, $ret_or_1 = nil; if ($truthy($rb_gt(values.$length(), 1))) { - return false}; + return false + }; value = values['$[]'](0); - if ($truthy(($ret_or_2 = value.$type()['$!=']("str")))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = value.$type()['$!=']("str")))) { + return $ret_or_1 } else { return value.$children()['$[]'](0)['$include?']("\n")['$!']() }; - }, $RegexpNode_single_line$ques$21.$$arity = 1), nil) && 'single_line?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'MatchCurrentLineNode'); - var $nesting = [self].concat($parent_nesting), $MatchCurrentLineNode_compile$22; - + self.$handle("match_current_line"); self.$children("regexp"); - return (Opal.def(self, '$compile', $MatchCurrentLineNode_compile$22 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, gvar_sexp = nil, send_node = nil; gvar_sexp = self.$s("gvar", "$_"); send_node = self.$s("send", gvar_sexp, "=~", self.$regexp()); return self.$push(self.$expr(send_node)); - }, $MatchCurrentLineNode_compile$22.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'DynamicStringNode'); - var $nesting = [self].concat($parent_nesting), $DynamicStringNode_compile$23; - + self.$handle("dstr"); - return (Opal.def(self, '$compile', $DynamicStringNode_compile$23 = function $$compile() { - var $$24, self = this; + return $def(self, '$compile', function $$compile() { + var self = this, skip_empty = nil; - self.$push("\"\""); - return $send(self.$children(), 'each', [], ($$24 = function(part){var self = $$24.$$s == null ? this : $$24.$$s; + if (($truthy($rb_gt(self.$children().$length(), 1)) && ($eqeq(self.$children().$first().$type(), "str")))) { + skip_empty = true + } else { + self.$push("\"\"") + }; + return $send(self.$children(), 'each', [], function $$10(part){var self = $$10.$$s == null ? this : $$10.$$s; - if (part == null) { - part = nil; + if (part == null) part = nil;; + if ($truthy(skip_empty)) { + skip_empty = false + } else { + self.$push(" + ") }; - self.$push(" + "); - if (part.$type()['$==']("str")) { - self.$push(part.$children()['$[]'](0).$inspect()) + if ($eqeq(part.$type(), "str")) { + self.$push(self.$expr(part)) } else { self.$push("(", self.$expr(part), ")") }; @@ -31918,26 +29043,25 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { return self.$wrap("(", ")") } else { return nil - };}, $$24.$$s = self, $$24.$$arity = 1, $$24)); - }, $DynamicStringNode_compile$23.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + };}, {$$arity: 1, $$s: self}); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'DynamicSymbolNode'); - var $nesting = [self].concat($parent_nesting); - + return self.$handle("dsym") - })($nesting[0], $$($nesting, 'DynamicStringNode'), $nesting); + })($nesting[0], $$('DynamicStringNode')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'RangeNode'); - var $nesting = [self].concat($parent_nesting), $RangeNode_compile$25, $RangeNode_compile_inline$ques$26, $RangeNode_compile_inline$27, $RangeNode_compile_range_initialize$28; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$children("start", "finish"); - Opal.const_set($nesting[0], 'SIMPLE_CHILDREN_TYPES', ["int", "float", "str", "sym"].$freeze()); + $const_set($nesting[0], 'SIMPLE_CHILDREN_TYPES', ["int", "float", "str", "sym"].$freeze()); - Opal.def(self, '$compile', $RangeNode_compile$25 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$compile_inline?']())) { @@ -31947,123 +29071,109 @@ Opal.modules["opal/nodes/literal"] = function(Opal) { } else { return self.$compile_range_initialize() } - }, $RangeNode_compile$25.$$arity = 0); + }, 0); - Opal.def(self, '$compile_inline?', $RangeNode_compile_inline$ques$26 = function() { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil; + $def(self, '$compile_inline?', function $RangeNode_compile_inline$ques$11() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = self.$start()['$!']()))) { - return $ret_or_4 - } else { - - if ($truthy(($ret_or_5 = self.$start().$type()))) { - return $$($nesting, 'SIMPLE_CHILDREN_TYPES')['$include?'](self.$start().$type()) - } else { - return $ret_or_5 - }; - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$start()['$!']())) ? ($ret_or_2) : (($truthy(($ret_or_3 = self.$start().$type())) ? ($$('SIMPLE_CHILDREN_TYPES')['$include?'](self.$start().$type())) : ($ret_or_3))))))) { - if ($truthy(($ret_or_6 = self.$finish()['$!']()))) { - return $ret_or_6 + if ($truthy(($ret_or_2 = self.$finish()['$!']()))) { + return $ret_or_2 } else { - if ($truthy(($ret_or_7 = self.$finish().$type()))) { - return $$($nesting, 'SIMPLE_CHILDREN_TYPES')['$include?'](self.$finish().$type()) + if ($truthy(($ret_or_3 = self.$finish().$type()))) { + return $$('SIMPLE_CHILDREN_TYPES')['$include?'](self.$finish().$type()) } else { - return $ret_or_7 + return $ret_or_3 }; }; } else { - return $ret_or_3 + return $ret_or_1 } - }, $RangeNode_compile_inline$ques$26.$$arity = 0); + }, 0); - Opal.def(self, '$compile_inline', $RangeNode_compile_inline$27 = function $$compile_inline() { + $def(self, '$compile_inline', function $$compile_inline() { var self = this; - return self.$raise($$($nesting, 'NotImplementedError')) - }, $RangeNode_compile_inline$27.$$arity = 0); - return (Opal.def(self, '$compile_range_initialize', $RangeNode_compile_range_initialize$28 = function $$compile_range_initialize() { + return self.$raise($$('NotImplementedError')) + }, 0); + return $def(self, '$compile_range_initialize', function $$compile_range_initialize() { var self = this; - return self.$raise($$($nesting, 'NotImplementedError')) - }, $RangeNode_compile_range_initialize$28.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + return self.$raise($$('NotImplementedError')) + }, 0); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'InclusiveRangeNode'); - var $nesting = [self].concat($parent_nesting), $InclusiveRangeNode_compile_inline$29, $InclusiveRangeNode_compile_range_initialize$30; - + self.$handle("irange"); - Opal.def(self, '$compile_inline', $InclusiveRangeNode_compile_inline$29 = function $$compile_inline() { + $def(self, '$compile_inline', function $$compile_inline() { var self = this; return self.$push("$range(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", false)") - }, $InclusiveRangeNode_compile_inline$29.$$arity = 0); - return (Opal.def(self, '$compile_range_initialize', $InclusiveRangeNode_compile_range_initialize$30 = function $$compile_range_initialize() { + }, 0); + return $def(self, '$compile_range_initialize', function $$compile_range_initialize() { var self = this; return self.$push("Opal.Range.$new(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", false)") - }, $InclusiveRangeNode_compile_range_initialize$30.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], $$($nesting, 'RangeNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('RangeNode')); + (function($base, $super) { var self = $klass($base, $super, 'ExclusiveRangeNode'); - var $nesting = [self].concat($parent_nesting), $ExclusiveRangeNode_compile_inline$31, $ExclusiveRangeNode_compile_range_initialize$32; - + self.$handle("erange"); - Opal.def(self, '$compile_inline', $ExclusiveRangeNode_compile_inline$31 = function $$compile_inline() { + $def(self, '$compile_inline', function $$compile_inline() { var self = this; return self.$push("$range(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", true)") - }, $ExclusiveRangeNode_compile_inline$31.$$arity = 0); - return (Opal.def(self, '$compile_range_initialize', $ExclusiveRangeNode_compile_range_initialize$32 = function $$compile_range_initialize() { + }, 0); + return $def(self, '$compile_range_initialize', function $$compile_range_initialize() { var self = this; return self.$push("Opal.Range.$new(", self.$expr_or_nil(self.$start()), ",", self.$expr_or_nil(self.$finish()), ", true)") - }, $ExclusiveRangeNode_compile_range_initialize$32.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], $$($nesting, 'RangeNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('RangeNode')); + (function($base, $super) { var self = $klass($base, $super, 'RationalNode'); - var $nesting = [self].concat($parent_nesting), $RationalNode_compile$33; - + self.$handle("rational"); self.$children("value"); - return (Opal.def(self, '$compile', $RationalNode_compile$33 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - return self.$push("" + "Opal.Rational.$new(" + (self.$value().$numerator()) + ", " + (self.$value().$denominator()) + ")") - }, $RationalNode_compile$33.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + return self.$push("" + (self.$top_scope().$absolute_const()) + "('Rational').$new(" + (self.$value().$numerator()) + ", " + (self.$value().$denominator()) + ")") + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'ComplexNode'); - var $nesting = [self].concat($parent_nesting), $ComplexNode_compile$34; - + self.$handle("complex"); self.$children("value"); - return (Opal.def(self, '$compile', $ComplexNode_compile$34 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - return self.$push("" + "Opal.Complex.$new(" + (self.$value().$real()) + ", " + (self.$value().$imag()) + ")") - }, $ComplexNode_compile$34.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("" + (self.$top_scope().$absolute_const()) + "('Complex').$new(" + (self.$value().$real()) + ", " + (self.$value().$imag()) + ")") + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/variables"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["opal/nodes/variables"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $send = Opal.send, $range = Opal.range, $eqeqeq = Opal.eqeqeq, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$handle', '$children', '$irb?', '$compiler', '$top?', '$scope', '$using_irb?', '$push', '$to_s', '$var_name', '$with_temp', '$property', '$wrap', '$add_local', '$expr', '$value', '$recv?', '$expr?', '$[]', '$name', '$add_ivar', '$helper', '$add_gvar', '$===', '$handle_global_match', '$handle_post_match', '$handle_pre_match', '$raise', '$index', '$stmt?', '$class_variable_owner', '$inspect']); + Opal.add_stubs('require,handle,children,irb?,compiler,top?,scope,using_irb?,push,to_s,var_name,with_temp,property,wrap,add_local,expr,value,expr?,recv?,[],name,add_ivar,self,helper,add_gvar,===,handle_global_match,handle_post_match,handle_pre_match,raise,index,stmt?,class_variable_owner,inspect'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -32074,19 +29184,18 @@ Opal.modules["opal/nodes/variables"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'LocalVariableNode'); - var $nesting = [self].concat($parent_nesting), $LocalVariableNode_using_irb$ques$1, $LocalVariableNode_compile$2; - + self.$handle("lvar"); self.$children("var_name"); - Opal.def(self, '$using_irb?', $LocalVariableNode_using_irb$ques$1 = function() { + $def(self, '$using_irb?', function $LocalVariableNode_using_irb$ques$1() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$compiler()['$irb?']()))) { @@ -32094,338 +29203,295 @@ Opal.modules["opal/nodes/variables"] = function(Opal) { } else { return $ret_or_1 } - }, $LocalVariableNode_using_irb$ques$1.$$arity = 0); - return (Opal.def(self, '$compile', $LocalVariableNode_compile$2 = function $$compile() { - var $$3, self = this; + }, 0); + return $def(self, '$compile', function $$compile() { + var self = this; - if ($truthy(self['$using_irb?']())) { - } else { + if (!$truthy(self['$using_irb?']())) { return self.$push(self.$var_name().$to_s()) }; - return $send(self, 'with_temp', [], ($$3 = function(tmp){var self = $$3.$$s == null ? this : $$3.$$s; + return $send(self, 'with_temp', [], function $$2(tmp){var self = $$2.$$s == null ? this : $$2.$$s; - if (tmp == null) { - tmp = nil; - }; + if (tmp == null) tmp = nil;; self.$push(self.$property(self.$var_name().$to_s())); - return self.$wrap("" + "((" + (tmp) + " = Opal.irb_vars", "" + ") == null ? nil : " + (tmp) + ")");}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - }, $LocalVariableNode_compile$2.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + return self.$wrap("((" + (tmp) + " = Opal.irb_vars", ") == null ? nil : " + (tmp) + ")");}, {$$arity: 1, $$s: self}); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'LocalAssignNode'); - var $nesting = [self].concat($parent_nesting), $LocalAssignNode_using_irb$ques$4, $LocalAssignNode_compile$5; - + self.$handle("lvasgn"); self.$children("var_name", "value"); - Opal.def(self, '$using_irb?', $LocalAssignNode_using_irb$ques$4 = function() { - var self = this, $ret_or_2 = nil; + $def(self, '$using_irb?', function $LocalAssignNode_using_irb$ques$3() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = self.$compiler()['$irb?']()))) { + if ($truthy(($ret_or_1 = self.$compiler()['$irb?']()))) { return self.$scope()['$top?']() } else { - return $ret_or_2 + return $ret_or_1 } - }, $LocalAssignNode_using_irb$ques$4.$$arity = 0); - return (Opal.def(self, '$compile', $LocalAssignNode_compile$5 = function $$compile() { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil; + }, 0); + return $def(self, '$compile', function $$compile() { + var self = this; if ($truthy(self['$using_irb?']())) { - self.$push("" + "Opal.irb_vars" + (self.$property(self.$var_name().$to_s())) + " = ") + self.$push("Opal.irb_vars" + (self.$property(self.$var_name().$to_s())) + " = ") } else { self.$add_local(self.$var_name().$to_s()); self.$push("" + (self.$var_name()) + " = "); }; self.$push(self.$expr(self.$value())); - if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = self['$recv?']()))) { - return $ret_or_4 - } else { - return self['$expr?']() - }; return nil; })()))) { - return self.$value() - } else { - return $ret_or_3 - }; return nil; })())) { + if ((($truthy(self['$recv?']()) || ($truthy(self['$expr?']()))) && ($truthy(self.$value())))) { return self.$wrap("(", ")") } else { return nil }; - }, $LocalAssignNode_compile$5.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'LocalDeclareNode'); - var $nesting = [self].concat($parent_nesting), $LocalDeclareNode_compile$6; - + self.$handle("lvdeclare"); self.$children("var_name"); - return (Opal.def(self, '$compile', $LocalDeclareNode_compile$6 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_local(self.$var_name().$to_s()); return nil; - }, $LocalDeclareNode_compile$6.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'InstanceVariableNode'); - var $nesting = [self].concat($parent_nesting), $InstanceVariableNode_var_name$7, $InstanceVariableNode_compile$8; - + self.$handle("ivar"); self.$children("name"); - Opal.def(self, '$var_name', $InstanceVariableNode_var_name$7 = function $$var_name() { + $def(self, '$var_name', function $$var_name() { var self = this; return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, $InstanceVariableNode_var_name$7.$$arity = 0); - return (Opal.def(self, '$compile', $InstanceVariableNode_compile$8 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this, name = nil; name = self.$property(self.$var_name()); self.$add_ivar(name); - return self.$push("" + "self" + (name)); - }, $InstanceVariableNode_compile$8.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + return self.$push("" + (self.$scope().$self()) + (name)); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'InstanceAssignNode'); - var $nesting = [self].concat($parent_nesting), $InstanceAssignNode_var_name$9, $InstanceAssignNode_compile$10; - + self.$handle("ivasgn"); self.$children("name", "value"); - Opal.def(self, '$var_name', $InstanceAssignNode_var_name$9 = function $$var_name() { + $def(self, '$var_name', function $$var_name() { var self = this; return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, $InstanceAssignNode_var_name$9.$$arity = 0); - return (Opal.def(self, '$compile', $InstanceAssignNode_compile$10 = function $$compile() { - var self = this, name = nil, $ret_or_5 = nil, $ret_or_6 = nil; + }, 0); + return $def(self, '$compile', function $$compile() { + var self = this, name = nil; name = self.$property(self.$var_name()); - self.$push("" + "self" + (name) + " = "); + self.$push("" + (self.$scope().$self()) + (name) + " = "); self.$push(self.$expr(self.$value())); - if ($truthy((function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self['$recv?']()))) { - return $ret_or_6 - } else { - return self['$expr?']() - }; return nil; })()))) { - return self.$value() - } else { - return $ret_or_5 - }; return nil; })())) { + if ((($truthy(self['$recv?']()) || ($truthy(self['$expr?']()))) && ($truthy(self.$value())))) { return self.$wrap("(", ")") } else { return nil }; - }, $InstanceAssignNode_compile$10.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'GlobalVariableNode'); - var $nesting = [self].concat($parent_nesting), $GlobalVariableNode_var_name$11, $GlobalVariableNode_compile$12; - + self.$handle("gvar"); self.$children("name"); - Opal.def(self, '$var_name', $GlobalVariableNode_var_name$11 = function $$var_name() { + $def(self, '$var_name', function $$var_name() { var self = this; return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, $GlobalVariableNode_var_name$11.$$arity = 0); - return (Opal.def(self, '$compile', $GlobalVariableNode_compile$12 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this, name = nil; self.$helper("gvars"); name = self.$property(self.$var_name()); self.$add_gvar(name); - return self.$push("" + "$gvars" + (name)); - }, $GlobalVariableNode_compile$12.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("$gvars" + (name)); + }, 0); + })($nesting[0], $$('Base')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'BackRefNode'); - var $nesting = [self].concat($parent_nesting), $BackRefNode_compile$13, $BackRefNode_handle_global_match$14, $BackRefNode_handle_pre_match$16, $BackRefNode_handle_post_match$18; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("back_ref"); - Opal.def(self, '$compile', $BackRefNode_compile$13 = function $$compile() { - var $iter = $BackRefNode_compile$13.$$p, $yield = $iter || nil, self = this, $case = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$compile', function $$compile() { + var $yield = $$compile.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $BackRefNode_compile$13.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$compile.$$p; self.$helper("gvars"); - return (function() {$case = self.$var_name(); - if ("&"['$===']($case)) {return self.$handle_global_match()} - else if ("'"['$===']($case)) {return self.$handle_post_match()} - else if ("`"['$===']($case)) {return self.$handle_pre_match()} - else if ("+"['$===']($case)) {return $send2(self, $find_super(self, 'compile', $BackRefNode_compile$13, false, true), 'compile', $zuper, $iter)} - else {return self.$raise($$($nesting, 'NotImplementedError'))}})(); - }, $BackRefNode_compile$13.$$arity = 0); + if ($eqeqeq("&", ($ret_or_1 = self.$var_name()))) { + return self.$handle_global_match() + } else if ($eqeqeq("'", $ret_or_1)) { + return self.$handle_post_match() + } else if ($eqeqeq("`", $ret_or_1)) { + return self.$handle_pre_match() + } else if ($eqeqeq("+", $ret_or_1)) { + return $send2(self, $find_super(self, 'compile', $$compile, false, true), 'compile', [], $yield) + } else { + return self.$raise($$('NotImplementedError')) + }; + }, 0); - Opal.def(self, '$handle_global_match', $BackRefNode_handle_global_match$14 = function $$handle_global_match() { - var $$15, self = this; + $def(self, '$handle_global_match', function $$handle_global_match() { + var self = this; - return $send(self, 'with_temp', [], ($$15 = function(tmp){var self = $$15.$$s == null ? this : $$15.$$s; + return $send(self, 'with_temp', [], function $$4(tmp){var self = $$4.$$s == null ? this : $$4.$$s; - if (tmp == null) { - tmp = nil; - }; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](0))");}, $$15.$$s = self, $$15.$$arity = 1, $$15)) - }, $BackRefNode_handle_global_match$14.$$arity = 0); + if (tmp == null) tmp = nil;; + return self.$push("((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](0))");}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$handle_pre_match', $BackRefNode_handle_pre_match$16 = function $$handle_pre_match() { - var $$17, self = this; + $def(self, '$handle_pre_match', function $$handle_pre_match() { + var self = this; - return $send(self, 'with_temp', [], ($$17 = function(tmp){var self = $$17.$$s == null ? this : $$17.$$s; + return $send(self, 'with_temp', [], function $$5(tmp){var self = $$5.$$s == null ? this : $$5.$$s; - if (tmp == null) { - tmp = nil; - }; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$pre_match())");}, $$17.$$s = self, $$17.$$arity = 1, $$17)) - }, $BackRefNode_handle_pre_match$16.$$arity = 0); - return (Opal.def(self, '$handle_post_match', $BackRefNode_handle_post_match$18 = function $$handle_post_match() { - var $$19, self = this; + if (tmp == null) tmp = nil;; + return self.$push("((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$pre_match())");}, {$$arity: 1, $$s: self}) + }, 0); + return $def(self, '$handle_post_match', function $$handle_post_match() { + var self = this; - return $send(self, 'with_temp', [], ($$19 = function(tmp){var self = $$19.$$s == null ? this : $$19.$$s; + return $send(self, 'with_temp', [], function $$6(tmp){var self = $$6.$$s == null ? this : $$6.$$s; - if (tmp == null) { - tmp = nil; - }; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$post_match())");}, $$19.$$s = self, $$19.$$arity = 1, $$19)) - }, $BackRefNode_handle_post_match$18.$$arity = 0), nil) && 'handle_post_match'; - })($nesting[0], $$($nesting, 'GlobalVariableNode'), $nesting); - (function($base, $super, $parent_nesting) { + if (tmp == null) tmp = nil;; + return self.$push("((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$post_match())");}, {$$arity: 1, $$s: self}) + }, 0); + })($nesting[0], $$('GlobalVariableNode'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'GlobalAssignNode'); - var $nesting = [self].concat($parent_nesting), $GlobalAssignNode_var_name$20, $GlobalAssignNode_compile$21; - + self.$handle("gvasgn"); self.$children("name", "value"); - Opal.def(self, '$var_name', $GlobalAssignNode_var_name$20 = function $$var_name() { + $def(self, '$var_name', function $$var_name() { var self = this; return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, $GlobalAssignNode_var_name$20.$$arity = 0); - return (Opal.def(self, '$compile', $GlobalAssignNode_compile$21 = function $$compile() { - var self = this, name = nil, $ret_or_7 = nil, $ret_or_8 = nil; + }, 0); + return $def(self, '$compile', function $$compile() { + var self = this, name = nil; self.$helper("gvars"); name = self.$property(self.$var_name()); - self.$push("" + "$gvars" + (name) + " = "); + self.$push("$gvars" + (name) + " = "); self.$push(self.$expr(self.$value())); - if ($truthy((function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self['$recv?']()))) { - return $ret_or_8 - } else { - return self['$expr?']() - }; return nil; })()))) { - return self.$value() - } else { - return $ret_or_7 - }; return nil; })())) { + if ((($truthy(self['$recv?']()) || ($truthy(self['$expr?']()))) && ($truthy(self.$value())))) { return self.$wrap("(", ")") } else { return nil }; - }, $GlobalAssignNode_compile$21.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'NthrefNode'); - var $nesting = [self].concat($parent_nesting), $NthrefNode_compile$22; - + self.$handle("nth_ref"); self.$children("index"); - return (Opal.def(self, '$compile', $NthrefNode_compile$22 = function $$compile() { - var $$23, self = this; + return $def(self, '$compile', function $$compile() { + var self = this; self.$helper("gvars"); - return $send(self, 'with_temp', [], ($$23 = function(tmp){var self = $$23.$$s == null ? this : $$23.$$s; + return $send(self, 'with_temp', [], function $$7(tmp){var self = $$7.$$s == null ? this : $$7.$$s; - if (tmp == null) { - tmp = nil; - }; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](" + (self.$index()) + "))");}, $$23.$$s = self, $$23.$$arity = 1, $$23)); - }, $NthrefNode_compile$22.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + if (tmp == null) tmp = nil;; + return self.$push("((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](" + (self.$index()) + "))");}, {$$arity: 1, $$s: self}); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'ClassVariableNode'); - var $nesting = [self].concat($parent_nesting), $ClassVariableNode_compile$24; - + self.$handle("cvar"); self.$children("name"); - return (Opal.def(self, '$compile', $ClassVariableNode_compile$24 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, tolerant = nil; self.$helper("class_variable_get"); tolerant = false; if ($truthy(self['$stmt?']())) { - tolerant = true}; - return self.$push("" + "$class_variable_get(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', " + (tolerant.$inspect()) + ")"); - }, $ClassVariableNode_compile$24.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + tolerant = true + }; + return self.$push("$class_variable_get(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', " + (tolerant.$inspect()) + ")"); + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'ClassVarAssignNode'); - var $nesting = [self].concat($parent_nesting), $ClassVarAssignNode_compile$25; - + self.$handle("cvasgn"); self.$children("name", "value"); - return (Opal.def(self, '$compile', $ClassVarAssignNode_compile$25 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$helper("class_variable_set"); - return self.$push("" + "$class_variable_set(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")"); - }, $ClassVarAssignNode_compile$25.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("$class_variable_set(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")"); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/constants"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/constants"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def, $const_set = Opal.const_set; - Opal.add_stubs(['$require', '$handle', '$children', '$magical_data_const?', '$push', '$const_scope', '$recv', '$name', '$eval?', '$compiler', '$nil?', '$==', '$eof_content', '$base', '$expr', '$value']); + Opal.add_stubs('require,handle,children,magical_data_const?,push,optimized_access?,helper,name,==,const_scope,s,absolute_const,top_scope,recv,eval?,compiler,relative_access,scope,nil?,eof_content,freeze,include?,base,expr,value,nesting'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -32436,95 +29502,101 @@ Opal.modules["opal/nodes/constants"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ConstNode'); - var $nesting = [self].concat($parent_nesting), $ConstNode_compile$1, $ConstNode_magical_data_const$ques$2; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("const"); self.$children("const_scope", "name"); - Opal.def(self, '$compile', $ConstNode_compile$1 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$magical_data_const?']())) { return self.$push("$__END__") + } else if ($truthy(self['$optimized_access?']())) { + + self.$helper("" + (self.$name())); + return self.$push("$" + (self.$name())); + } else if ($eqeq(self.$const_scope(), self.$s("cbase"))) { + return self.$push("" + (self.$top_scope().$absolute_const()) + "('" + (self.$name()) + "')") } else if ($truthy(self.$const_scope())) { - return self.$push("$$$(", self.$recv(self.$const_scope()), "" + ", '" + (self.$name()) + "')") + return self.$push("" + (self.$top_scope().$absolute_const()) + "(", self.$recv(self.$const_scope()), ", '" + (self.$name()) + "')") } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$push("" + "$$($nesting, '" + (self.$name()) + "')") + return self.$push("" + (self.$scope().$relative_access()) + "('" + (self.$name()) + "')") } else { - return self.$push("" + "$$($nesting, '" + (self.$name()) + "')") + return self.$push("" + (self.$scope().$relative_access()) + "('" + (self.$name()) + "')") } - }, $ConstNode_compile$1.$$arity = 0); - return (Opal.def(self, '$magical_data_const?', $ConstNode_magical_data_const$ques$2 = function() { + }, 0); + + $def(self, '$magical_data_const?', function $ConstNode_magical_data_const$ques$1() { var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$const_scope()['$nil?']()))) { - return self.$name()['$==']("DATA") - } else { - return $ret_or_2 - }; return nil; })()))) { - return self.$compiler().$eof_content() + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$const_scope()['$nil?']())) ? (self.$name()['$==']("DATA")) : ($ret_or_2))))) { + return self.$compiler().$eof_content() + } else { + return $ret_or_1 + } + }, 0); + $const_set($nesting[0], 'OPTIMIZED_ACCESS_CONSTS', ["BasicObject", "Object", "Module", "Class", "Opal", "Kernel", "NilClass"].$freeze()); + return $def(self, '$optimized_access?', function $ConstNode_optimized_access$ques$2() { + var self = this, $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = self.$const_scope()['$=='](self.$s("cbase"))))) { + return $$('OPTIMIZED_ACCESS_CONSTS')['$include?'](self.$name()) } else { return $ret_or_1 } - }, $ConstNode_magical_data_const$ques$2.$$arity = 0), nil) && 'magical_data_const?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'CbaseNode'); - var $nesting = [self].concat($parent_nesting), $CbaseNode_compile$3; - + self.$handle("cbase"); - return (Opal.def(self, '$compile', $CbaseNode_compile$3 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push("'::'") - }, $CbaseNode_compile$3.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'ConstAssignNode'); - var $nesting = [self].concat($parent_nesting), $ConstAssignNode_compile$4; - + self.$handle("casgn"); self.$children("base", "name", "value"); - return (Opal.def(self, '$compile', $ConstAssignNode_compile$4 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; + + self.$helper("const_set"); if ($truthy(self.$base())) { - return self.$push("Opal.const_set(", self.$expr(self.$base()), "" + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") + return self.$push("$const_set(", self.$expr(self.$base()), ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") } else { - return self.$push("" + "Opal.const_set($nesting[0], '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") - } - }, $ConstAssignNode_compile$4.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("$const_set(" + (self.$scope().$nesting()) + "[0], '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") + }; + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/comparable"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["corelib/comparable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $module = Opal.module, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $def = Opal.def; - Opal.add_stubs(['$>', '$<', '$===', '$raise', '$class', '$<=>', '$equal?']); - return (function($base, $parent_nesting) { + Opal.add_stubs('>,<,===,raise,class,<=>,equal?'); + return (function($base) { var self = $module($base, 'Comparable'); - var $nesting = [self].concat($parent_nesting), $Comparable_$eq_eq$1, $Comparable_$gt$2, $Comparable_$gt_eq$3, $Comparable_$lt$4, $Comparable_$lt_eq$5, $Comparable_between$ques$6, $Comparable_clamp$7, $case = nil; + var $ret_or_1 = nil; @@ -32538,25 +29610,24 @@ Opal.modules["corelib/comparable"] = function(Opal) { function fail_comparison(lhs, rhs) { var class_name; - (function() {$case = rhs; - if (nil['$===']($case) || true['$===']($case) || false['$===']($case) || $$($nesting, 'Integer')['$===']($case) || $$($nesting, 'Float')['$===']($case)) {return class_name = rhs.$inspect();} - else {return class_name = rhs.$$class;}})() - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") + (($eqeqeq(nil, ($ret_or_1 = rhs)) || (($eqeqeq(true, $ret_or_1) || (($eqeqeq(false, $ret_or_1) || (($eqeqeq($$$('Integer'), $ret_or_1) || ($eqeqeq($$$('Float'), $ret_or_1))))))))) ? (class_name = rhs.$inspect()) : (class_name = rhs.$$class)) + $Kernel.$raise($$$('ArgumentError'), "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") } function cmp_or_fail(lhs, rhs) { var cmp = (lhs)['$<=>'](rhs); - if ($falsy(cmp)) fail_comparison(lhs, rhs); + if (!$truthy(cmp)) fail_comparison(lhs, rhs); return normalize(cmp); } ; - Opal.def(self, '$==', $Comparable_$eq_eq$1 = function(other) { + $def(self, '$==', function $Comparable_$eq_eq$1(other) { var self = this, cmp = nil; if ($truthy(self['$equal?'](other))) { - return true}; + return true + }; if (self["$<=>"] == Opal.Kernel["$<=>"]) { return false; @@ -32568,55 +29639,54 @@ Opal.modules["corelib/comparable"] = function(Opal) { return false; } ; - if ($truthy((cmp = self['$<=>'](other)))) { - } else { + if (!$truthy((cmp = self['$<=>'](other)))) { return false }; return normalize(cmp) == 0;; - }, $Comparable_$eq_eq$1.$$arity = 1); + }, 1); - Opal.def(self, '$>', $Comparable_$gt$2 = function(other) { + $def(self, '$>', function $Comparable_$gt$2(other) { var self = this; return cmp_or_fail(self, other) > 0; - }, $Comparable_$gt$2.$$arity = 1); + }, 1); - Opal.def(self, '$>=', $Comparable_$gt_eq$3 = function(other) { + $def(self, '$>=', function $Comparable_$gt_eq$3(other) { var self = this; return cmp_or_fail(self, other) >= 0; - }, $Comparable_$gt_eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$<', $Comparable_$lt$4 = function(other) { + $def(self, '$<', function $Comparable_$lt$4(other) { var self = this; return cmp_or_fail(self, other) < 0; - }, $Comparable_$lt$4.$$arity = 1); + }, 1); - Opal.def(self, '$<=', $Comparable_$lt_eq$5 = function(other) { + $def(self, '$<=', function $Comparable_$lt_eq$5(other) { var self = this; return cmp_or_fail(self, other) <= 0; - }, $Comparable_$lt_eq$5.$$arity = 1); + }, 1); - Opal.def(self, '$between?', $Comparable_between$ques$6 = function(min, max) { + $def(self, '$between?', function $Comparable_between$ques$6(min, max) { var self = this; if ($rb_lt(self, min)) { - return false}; + return false + }; if ($rb_gt(self, max)) { - return false}; + return false + }; return true; - }, $Comparable_between$ques$6.$$arity = 2); - return (Opal.def(self, '$clamp', $Comparable_clamp$7 = function $$clamp(min, max) { + }, 2); + return $def(self, '$clamp', function $$clamp(min, max) { var self = this; - if (max == null) { - max = nil; - }; + if (max == null) max = nil;; var c, excl; @@ -32625,7 +29695,7 @@ Opal.modules["corelib/comparable"] = function(Opal) { // provide a single Range argument instead of 2 Comparables. if (!Opal.is_a(min, Opal.Range)) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (min.$class()) + " (expected Range)") + $Kernel.$raise($$$('TypeError'), "wrong argument type " + (min.$class()) + " (expected Range)") } excl = min.excl; @@ -32633,12 +29703,12 @@ Opal.modules["corelib/comparable"] = function(Opal) { min = min.begin; if (max !== nil && excl) { - self.$raise($$($nesting, 'ArgumentError'), "cannot clamp with an exclusive range") + $Kernel.$raise($$$('ArgumentError'), "cannot clamp with an exclusive range") } } if (min !== nil && max !== nil && cmp_or_fail(min, max) > 0) { - self.$raise($$($nesting, 'ArgumentError'), "min argument must be smaller than max argument") + $Kernel.$raise($$$('ArgumentError'), "min argument must be smaller than max argument") } if (min !== nil) { @@ -32656,156 +29726,153 @@ Opal.modules["corelib/comparable"] = function(Opal) { return self; ; - }, $Comparable_clamp$7.$$arity = -2), nil) && 'clamp'; - })($nesting[0], $nesting) + }, -2); + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["pathname"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; +Opal.modules["pathname"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def, $defs = Opal.defs, $to_ary = Opal.to_ary, $send = Opal.send, $to_a = Opal.to_a, $neqeq = Opal.neqeq, $rb_plus = Opal.rb_plus, $not = Opal.not, $alias = Opal.alias, $module = Opal.module; - Opal.add_stubs(['$require', '$include', '$quote', '$===', '$to_s', '$path', '$respond_to?', '$to_path', '$is_a?', '$nil?', '$raise', '$class', '$==', '$attr_reader', '$!', '$relative?', '$chop_basename', '$basename', '$=~', '$new', '$source', '$[]', '$rindex', '$sub', '$absolute?', '$expand_path', '$plus', '$unshift', '$length', '$!=', '$empty?', '$first', '$shift', '$+', '$join', '$dirname', '$pop', '$reverse_each', '$directory?', '$extname', '$<=>', '$nonzero?', '$proc', '$casecmp', '$cleanpath', '$inspect', '$include?', '$fill', '$map', '$entries']); + Opal.add_stubs('require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries'); self.$require("corelib/comparable"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Pathname'); - var $nesting = [self].concat($parent_nesting), $Pathname_initialize$1, $Pathname_$eq_eq$2, $Pathname_absolute$ques$3, $Pathname_relative$ques$4, $Pathname_chop_basename$5, $Pathname_root$ques$6, $Pathname_parent$7, $Pathname_sub$8, $Pathname_cleanpath$9, $Pathname_to_path$10, $Pathname_hash$11, $Pathname_expand_path$12, $Pathname_$plus$13, $Pathname_plus$14, $Pathname_join$15, $Pathname_split$17, $Pathname_dirname$18, $Pathname_basename$19, $Pathname_directory$ques$20, $Pathname_extname$21, $Pathname_$lt_eq_gt$22, $Pathname$23, $Pathname$24, $Pathname_relative_path_from$25, $Pathname_entries$26; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.path = nil; + $proto.path = nil; - self.$include($$($nesting, 'Comparable')); - Opal.const_set($nesting[0], 'SEPARATOR_PAT', Opal.regexp([$$($nesting, 'Regexp').$quote($$$($$($nesting, 'File'), 'SEPARATOR'))])); + self.$include($$('Comparable')); + $const_set($nesting[0], 'SEPARATOR_PAT', $regexp([$$('Regexp').$quote($$$($$('File'), 'SEPARATOR'))])); - Opal.def(self, '$initialize', $Pathname_initialize$1 = function $$initialize(path) { + $def(self, '$initialize', function $$initialize(path) { var self = this; - if ($truthy($$($nesting, 'Pathname')['$==='](path))) { + if ($eqeqeq($$('Pathname'), path)) { self.path = path.$path().$to_s() } else if ($truthy(path['$respond_to?']("to_path"))) { self.path = path.$to_path() - } else if ($truthy(path['$is_a?']($$($nesting, 'String')))) { + } else if ($truthy(path['$is_a?']($$('String')))) { self.path = path } else if ($truthy(path['$nil?']())) { - self.$raise($$($nesting, 'TypeError'), "no implicit conversion of nil into String") + self.$raise($$('TypeError'), "no implicit conversion of nil into String") } else { - self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (path.$class()) + " into String") + self.$raise($$('TypeError'), "no implicit conversion of " + (path.$class()) + " into String") }; - if (self.path['$==']("\u0000")) { - return self.$raise($$($nesting, 'ArgumentError')) + if ($eqeq(self.path, "\u0000")) { + return self.$raise($$('ArgumentError')) } else { return nil }; - }, $Pathname_initialize$1.$$arity = 1); + }, 1); + $defs(self, '$pwd', function $$pwd() { + var self = this; + + return self.$new($$('Dir').$pwd()) + }, 0); self.$attr_reader("path"); - Opal.def(self, '$==', $Pathname_$eq_eq$2 = function(other) { + $def(self, '$==', function $Pathname_$eq_eq$1(other) { var self = this; return other.$path()['$=='](self.path) - }, $Pathname_$eq_eq$2.$$arity = 1); + }, 1); - Opal.def(self, '$absolute?', $Pathname_absolute$ques$3 = function() { + $def(self, '$absolute?', function $Pathname_absolute$ques$2() { var self = this; return self['$relative?']()['$!']() - }, $Pathname_absolute$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$relative?', $Pathname_relative$ques$4 = function() { + $def(self, '$relative?', function $Pathname_relative$ques$3() { var $a, $b, $c, self = this, path = nil, r = nil; path = self.path; while ($truthy((r = self.$chop_basename(path)))) { - $c = r, $b = Opal.to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c + $c = r, $b = $to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c }; return path['$=='](""); - }, $Pathname_relative$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$chop_basename', $Pathname_chop_basename$5 = function $$chop_basename(path) { - var self = this, base = nil; + $def(self, '$chop_basename', function $$chop_basename(path) { + var base = nil; - base = $$($nesting, 'File').$basename(path); - if ($truthy($$($nesting, 'Regexp').$new("" + "^" + ($$$($$($nesting, 'Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { + base = $$('File').$basename(path); + if ($truthy($$('Regexp').$new("^" + ($$$($$('Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { return nil } else { return [path['$[]'](0, path.$rindex(base)), base] }; - }, $Pathname_chop_basename$5.$$arity = 1); + }, 1); - Opal.def(self, '$root?', $Pathname_root$ques$6 = function() { + $def(self, '$root?', function $Pathname_root$ques$4() { var self = this; return self.path['$==']("/") - }, $Pathname_root$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$parent', $Pathname_parent$7 = function $$parent() { + $def(self, '$parent', function $$parent() { var self = this, new_path = nil; new_path = self.path.$sub(/\/([^\/]+\/?$)/, ""); - if (new_path['$==']("")) { - new_path = (function() {if ($truthy(self['$absolute?']())) { - return "/" - } else { - return "." - }; return nil; })()}; - return $$($nesting, 'Pathname').$new(new_path); - }, $Pathname_parent$7.$$arity = 0); + if ($eqeq(new_path, "")) { + new_path = ($truthy(self['$absolute?']()) ? ("/") : (".")) + }; + return $$('Pathname').$new(new_path); + }, 0); - Opal.def(self, '$sub', $Pathname_sub$8 = function $$sub($a) { + $def(self, '$sub', function $$sub($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $$($nesting, 'Pathname').$new($send(self.path, 'sub', Opal.to_a(args))); - }, $Pathname_sub$8.$$arity = -1); + return $$('Pathname').$new($send(self.path, 'sub', $to_a(args))); + }, -1); - Opal.def(self, '$cleanpath', $Pathname_cleanpath$9 = function $$cleanpath() { + $def(self, '$cleanpath', function $$cleanpath() { var self = this; return Opal.normalize(self.path) - }, $Pathname_cleanpath$9.$$arity = 0); + }, 0); - Opal.def(self, '$to_path', $Pathname_to_path$10 = function $$to_path() { + $def(self, '$to_path', function $$to_path() { var self = this; return self.path - }, $Pathname_to_path$10.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $Pathname_hash$11 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return self.path - }, $Pathname_hash$11.$$arity = 0); + }, 0); - Opal.def(self, '$expand_path', $Pathname_expand_path$12 = function $$expand_path() { + $def(self, '$expand_path', function $$expand_path() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$expand_path(self.path)) - }, $Pathname_expand_path$12.$$arity = 0); + return $$('Pathname').$new($$('File').$expand_path(self.path)) + }, 0); - Opal.def(self, '$+', $Pathname_$plus$13 = function(other) { + $def(self, '$+', function $Pathname_$plus$5(other) { var self = this; - if ($truthy($$($nesting, 'Pathname')['$==='](other))) { - } else { - other = $$($nesting, 'Pathname').$new(other) + if (!$eqeqeq($$('Pathname'), other)) { + other = $$('Pathname').$new(other) }; - return $$($nesting, 'Pathname').$new(self.$plus(self.path, other.$to_s())); - }, $Pathname_$plus$13.$$arity = 1); + return $$('Pathname').$new(self.$plus(self.path, other.$to_s())); + }, 1); - Opal.def(self, '$plus', $Pathname_plus$14 = function $$plus(path1, path2) { - var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, suffix2 = nil; + $def(self, '$plus', function $$plus(path1, path2) { + var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, suffix2 = nil; prefix2 = path2; @@ -32813,184 +29880,146 @@ Opal.modules["pathname"] = function(Opal) { basename_list2 = []; while ($truthy((r2 = self.$chop_basename(prefix2)))) { - $c = r2, $b = Opal.to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; + $c = r2, $b = $to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; index_list2.$unshift(prefix2.$length()); basename_list2.$unshift(basename2); }; - if ($truthy(prefix2['$!='](""))) { - return path2}; + if ($neqeq(prefix2, "")) { + return path2 + }; prefix1 = path1; while ($truthy(true)) { - while ($truthy((function() {if ($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']()))) { - return basename_list2.$first()['$=='](".") - } else { - return $ret_or_1 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']())) ? (basename_list2.$first()['$=='](".")) : ($ret_or_1)))) { index_list2.$shift(); basename_list2.$shift(); }; - if ($truthy((r1 = self.$chop_basename(prefix1)))) { - } else { + if (!$truthy((r1 = self.$chop_basename(prefix1)))) { break; }; - $c = r1, $b = Opal.to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; - if (basename1['$=='](".")) { - continue;}; - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = basename1['$==']("..")))) { - return $ret_or_3 - } else { - return basename_list2['$empty?']() - }; return nil; })()))) { - return $ret_or_2 - } else { - return basename_list2.$first()['$!=']("..") - }; return nil; })())) { + $c = r1, $b = $to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; + if ($eqeq(basename1, ".")) { + continue; + }; + if ((($eqeq(basename1, "..") || ($truthy(basename_list2['$empty?']()))) || ($neqeq(basename_list2.$first(), "..")))) { prefix1 = $rb_plus(prefix1, basename1); - break;;}; + break;; + }; index_list2.$shift(); basename_list2.$shift(); }; r1 = self.$chop_basename(prefix1); - if ($truthy((function() {if ($truthy(($ret_or_4 = r1['$!']()))) { - return Opal.regexp([$$($nesting, 'SEPARATOR_PAT')])['$=~']($$($nesting, 'File').$basename(prefix1)) - } else { - return $ret_or_4 - }; return nil; })())) { - while ($truthy((function() {if ($truthy(($ret_or_5 = basename_list2['$empty?']()['$!']()))) { - return basename_list2.$first()['$==']("..") - } else { - return $ret_or_5 - }; return nil; })())) { + if (($not(r1) && ($truthy($regexp([$$('SEPARATOR_PAT')])['$=~']($$('File').$basename(prefix1)))))) { + while ($truthy(($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']())) ? (basename_list2.$first()['$==']("..")) : ($ret_or_1)))) { index_list2.$shift(); basename_list2.$shift(); - }}; - if ($truthy(basename_list2['$empty?']()['$!']())) { + } + }; + if ($not(basename_list2['$empty?']())) { suffix2 = path2['$[]'](Opal.Range.$new(index_list2.$first(), -1, false)); if ($truthy(r1)) { - return $$($nesting, 'File').$join(prefix1, suffix2) + return $$('File').$join(prefix1, suffix2) } else { return $rb_plus(prefix1, suffix2) }; } else if ($truthy(r1)) { return prefix1 } else { - return $$($nesting, 'File').$dirname(prefix1) + return $$('File').$dirname(prefix1) }; - }, $Pathname_plus$14.$$arity = 2); + }, 2); - Opal.def(self, '$join', $Pathname_join$15 = function $$join($a) {try { + $def(self, '$join', function $$join($a) {try { - var $post_args, args, $$16, self = this, result = nil; + var $post_args, args, self = this, result = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ($truthy(args['$empty?']())) { - return self}; + return self + }; result = args.$pop(); - if ($truthy($$($nesting, 'Pathname')['$==='](result))) { - } else { - result = $$($nesting, 'Pathname').$new(result) + if (!$eqeqeq($$('Pathname'), result)) { + result = $$('Pathname').$new(result) }; if ($truthy(result['$absolute?']())) { - return result}; - $send(args, 'reverse_each', [], ($$16 = function(arg){var self = $$16.$$s == null ? this : $$16.$$s; - + return result + }; + $send(args, 'reverse_each', [], function $$6(arg){ - if (arg == null) { - arg = nil; - }; - if ($truthy($$($nesting, 'Pathname')['$==='](arg))) { - } else { - arg = $$($nesting, 'Pathname').$new(arg) + if (arg == null) arg = nil;; + if (!$eqeqeq($$('Pathname'), arg)) { + arg = $$('Pathname').$new(arg) }; result = $rb_plus(arg, result); if ($truthy(result['$absolute?']())) { Opal.ret(result) } else { return nil - };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + };}, 1); return $rb_plus(self, result); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Pathname_join$15.$$arity = -1); + }, -1); - Opal.def(self, '$split', $Pathname_split$17 = function $$split() { + $def(self, '$split', function $$split() { var self = this; return [self.$dirname(), self.$basename()] - }, $Pathname_split$17.$$arity = 0); + }, 0); - Opal.def(self, '$dirname', $Pathname_dirname$18 = function $$dirname() { + $def(self, '$dirname', function $$dirname() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$dirname(self.path)) - }, $Pathname_dirname$18.$$arity = 0); + return $$('Pathname').$new($$('File').$dirname(self.path)) + }, 0); - Opal.def(self, '$basename', $Pathname_basename$19 = function $$basename() { + $def(self, '$basename', function $$basename() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$basename(self.path)) - }, $Pathname_basename$19.$$arity = 0); + return $$('Pathname').$new($$('File').$basename(self.path)) + }, 0); - Opal.def(self, '$directory?', $Pathname_directory$ques$20 = function() { + $def(self, '$directory?', function $Pathname_directory$ques$7() { var self = this; - return $$($nesting, 'File')['$directory?'](self.path) - }, $Pathname_directory$ques$20.$$arity = 0); + return $$('File')['$directory?'](self.path) + }, 0); - Opal.def(self, '$extname', $Pathname_extname$21 = function $$extname() { + $def(self, '$extname', function $$extname() { var self = this; - return $$($nesting, 'File').$extname(self.path) - }, $Pathname_extname$21.$$arity = 0); + return $$('File').$extname(self.path) + }, 0); - Opal.def(self, '$<=>', $Pathname_$lt_eq_gt$22 = function(other) { + $def(self, '$<=>', function $Pathname_$lt_eq_gt$8(other) { var self = this; return self.$path()['$<=>'](other.$path()) - }, $Pathname_$lt_eq_gt$22.$$arity = 1); - $alias(self, "eql?", "=="); - $alias(self, "===", "=="); - $alias(self, "to_str", "to_path"); - $alias(self, "to_s", "to_path"); - Opal.const_set($nesting[0], 'SAME_PATHS', (function() {if ($truthy($$$($$($nesting, 'File'), 'FNM_SYSCASE')['$nonzero?']())) { - return $send(self, 'proc', [], ($Pathname$23 = function(a, b){var self = $Pathname$23.$$s == null ? this : $Pathname$23.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a.$casecmp(b)['$=='](0);}, $Pathname$23.$$s = self, $Pathname$23.$$arity = 2, $Pathname$23)) - } else { - return $send(self, 'proc', [], ($Pathname$24 = function(a, b){var self = $Pathname$24.$$s == null ? this : $Pathname$24.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a['$=='](b);}, $Pathname$24.$$s = self, $Pathname$24.$$arity = 2, $Pathname$24)) - }; return nil; })()); + }, 1); + $const_set($nesting[0], 'SAME_PATHS', ($truthy($$$($$('File'), 'FNM_SYSCASE')['$nonzero?']()) ? ($send(self, 'proc', [], function $Pathname$9(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a.$casecmp(b)['$=='](0);}, 2)) : ($send(self, 'proc', [], function $Pathname$10(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a['$=='](b);}, 2)))); - Opal.def(self, '$relative_path_from', $Pathname_relative_path_from$25 = function $$relative_path_from(base_directory) { - var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_6 = nil, $ret_or_7 = nil, relpath_names = nil; + $def(self, '$relative_path_from', function $$relative_path_from(base_directory) { + var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_1 = nil, $ret_or_2 = nil, relpath_names = nil; dest_directory = self.$cleanpath().$to_s(); @@ -32999,76 +30028,71 @@ Opal.modules["pathname"] = function(Opal) { dest_names = []; while ($truthy((r = self.$chop_basename(dest_prefix)))) { - $c = r, $b = Opal.to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - dest_names.$unshift(basename)}; + $c = r, $b = $to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(basename, ".")) { + dest_names.$unshift(basename) + }; }; base_prefix = base_directory; base_names = []; while ($truthy((r = self.$chop_basename(base_prefix)))) { - $c = r, $b = Opal.to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - base_names.$unshift(basename)}; + $c = r, $b = $to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(basename, ".")) { + base_names.$unshift(basename) + }; }; - if ($truthy($$($nesting, 'SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) + if (!$truthy($$('SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { + self.$raise($$('ArgumentError'), "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) }; - while ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = dest_names['$empty?']()['$!']()))) { - return base_names['$empty?']()['$!']() - } else { - return $ret_or_7 - }; return nil; })()))) { - return $$($nesting, 'SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first()) - } else { - return $ret_or_6 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = dest_names['$empty?']()['$!']())) ? (base_names['$empty?']()['$!']()) : ($ret_or_2)))) ? ($$('SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first())) : ($ret_or_1)))) { dest_names.$shift(); base_names.$shift(); }; if ($truthy(base_names['$include?'](".."))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "base_directory has ..: " + (base_directory.$inspect()))}; + self.$raise($$('ArgumentError'), "base_directory has ..: " + (base_directory.$inspect())) + }; base_names.$fill(".."); relpath_names = $rb_plus(base_names, dest_names); if ($truthy(relpath_names['$empty?']())) { - return $$($nesting, 'Pathname').$new(".") + return $$('Pathname').$new(".") } else { - return $$($nesting, 'Pathname').$new($send($$($nesting, 'File'), 'join', Opal.to_a(relpath_names))) + return $$('Pathname').$new($send($$('File'), 'join', $to_a(relpath_names))) }; - }, $Pathname_relative_path_from$25.$$arity = 1); - return (Opal.def(self, '$entries', $Pathname_entries$26 = function $$entries() { - var $$27, self = this; + }, 1); + + $def(self, '$entries', function $$entries() { + var self = this; - return $send($$($nesting, 'Dir').$entries(self.path), 'map', [], ($$27 = function(f){var self = $$27.$$s == null ? this : $$27.$$s; + return $send($$('Dir').$entries(self.path), 'map', [], function $$11(f){var self = $$11.$$s == null ? this : $$11.$$s; - if (f == null) { - f = nil; - }; - return self.$class().$new(f);}, $$27.$$s = self, $$27.$$arity = 1, $$27)) - }, $Pathname_entries$26.$$arity = 0), nil) && 'entries'; + if (f == null) f = nil;; + return self.$class().$new(f);}, {$$arity: 1, $$s: self}) + }, 0); + $alias(self, "===", "=="); + $alias(self, "eql?", "=="); + $alias(self, "to_s", "to_path"); + return $alias(self, "to_str", "to_path"); })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_Pathname$28; - - return (Opal.def(self, '$Pathname', $Kernel_Pathname$28 = function $$Pathname(path) { - var self = this; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return $$($nesting, 'Pathname').$new(path) - }, $Kernel_Pathname$28.$$arity = 1), nil) && 'Pathname' + return $def(self, '$Pathname', function $$Pathname(path) { + + return $$('Pathname').$new(path) + }, 1) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/rewriters/break_finder"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias; +Opal.modules["opal/rewriters/break_finder"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $alias = Opal.alias; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); self.$require("opal/rewriter"); return (function($base, $parent_nesting) { @@ -33079,63 +30103,55 @@ Opal.modules["opal/rewriters/break_finder"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Rewriters'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'BreakFinder'); - var $nesting = [self].concat($parent_nesting), $BreakFinder_initialize$1, $BreakFinder_found_break$ques$2, $BreakFinder_on_break$3, $BreakFinder_stop_lookup$4; + var $proto = self.$$prototype; - self.$$prototype.found_break = nil; + $proto.found_break = nil; - Opal.def(self, '$initialize', $BreakFinder_initialize$1 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.found_break = false) - }, $BreakFinder_initialize$1.$$arity = 0); + }, 0); - Opal.def(self, '$found_break?', $BreakFinder_found_break$ques$2 = function() { + $def(self, '$found_break?', function $BreakFinder_found_break$ques$1() { var self = this; return self.found_break - }, $BreakFinder_found_break$ques$2.$$arity = 0); + }, 0); - Opal.def(self, '$on_break', $BreakFinder_on_break$3 = function $$on_break(node) { + $def(self, '$on_break', function $$on_break(node) { var self = this; self.found_break = true; return node; - }, $BreakFinder_on_break$3.$$arity = 1); + }, 1); - Opal.def(self, '$stop_lookup', $BreakFinder_stop_lookup$4 = function $$stop_lookup(node) { - var self = this; - + $def(self, '$stop_lookup', function $$stop_lookup(node) { + return nil - }, $BreakFinder_stop_lookup$4.$$arity = 1); + }, 1); $alias(self, "on_for", "stop_lookup"); $alias(self, "on_while", "stop_lookup"); $alias(self, "on_while_post", "stop_lookup"); $alias(self, "on_until", "stop_lookup"); $alias(self, "on_until_post", "stop_lookup"); return $alias(self, "on_block", "stop_lookup"); - })($nesting[0], $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'Base'), $nesting) + })($nesting[0], $$$($$$($$('Opal'), 'Rewriters'), 'Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/call"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $range = Opal.range; +Opal.modules["opal/nodes/call"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $defs = Opal.defs, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $def = Opal.def, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $not = Opal.not, $neqeq = Opal.neqeq, $eqeqeq = Opal.eqeqeq, $to_ary = Opal.to_ary, $Opal = Opal.Opal, $range = Opal.range; - Opal.add_stubs(['$require', '$handle', '$attr_reader', '$freeze', '$[]=', '$-', '$define_method', '$to_proc', '$include?', '$type', '$s', '$handle_special', '$record_method?', '$<<', '$method_calls', '$compiler', '$to_sym', '$meth', '$using_eval?', '$compile_eval_var', '$using_irb?', '$compile_irb_var', '$default_compile', '$private', '$iter', '$new', '$process', '$found_break?', '$splat?', '$!', '$empty?', '$collect_refinements_temps', '$scope', '$invoke_using_refinement?', '$compile_using_refined_send', '$invoke_using_send?', '$compile_using_send', '$compile_simple_call_chain', '$compile_break_catcher', '$helper', '$push', '$compile_receiver', '$compile_method_name', '$compile_arguments', '$compile_block_pass', '$compile_refinements', '$recv', '$receiver_sexp', '$expr', '$arglist', '$children', '$map', '$iter_has_break?', '$unshift', '$line', '$method_jsid', '$any?', '$==', '$recvr', '$mid_to_jsid', '$to_s', '$with_temp', '$intern', '$irb?', '$top?', '$variable_like?', '$eval?', '$scope_variables', '$nil?', '$updated', '$method', '$arity', '$[]', '$each', '$add_special', '$inline_operators?', '$operator_helpers', '$fragment', '$call', '$resolve', '$requires', '$file', '$dirname', '$cleanpath', '$join', '$Pathname', '$inspect', '$class_scope?', '$required_trees', '$force_encoding', '$encoding', '$+', '$handle_block_given_call', '$def?', '$mid', '$accepts_using?', '$count', '$using_refinement', '$first', '$refinements_temp', '$arity_check?', '$defines_lambda', '$push_nesting?', '$!=', '$length', '$new_temp', '$scope_locals', '$source_location', '$size', '$last', '$handle_part', '$is_a?', '$expand_path', '$split', '$dynamic_require_severity', '$===', '$error', '$warning', '$each_with_object', '$pop']); + Opal.add_stubs('require,handle,attr_reader,freeze,[]=,-,define_method,to_proc,include?,type,s,handle_special,record_method?,<<,method_calls,compiler,to_sym,meth,using_eval?,compile_eval_var,using_irb?,compile_irb_var,default_compile,private,iter,new,process,found_break?,splat?,!,empty?,collect_refinements_temps,scope,auto_await?,push,await_encountered=,invoke_using_refinement?,compile_using_refined_send,invoke_using_send?,compile_using_send,compile_simple_call_chain,compile_break_catcher,helper,compile_receiver,compile_method_name,compile_arguments,compile_block_pass,compile_refinements,recv,receiver_sexp,expr,arglist,children,map,iter_has_break?,unshift,line,method_jsid,any?,==,recvr,mid_to_jsid,to_s,with_temp,intern,irb?,top?,variable_like?,eval?,scope_variables,nil?,updated,async_await,!=,match?,method,arity,[],each,add_special,call,inline_operators?,fragment,resolve,requires,file,dirname,cleanpath,join,Pathname,self,inspect,length,warning,autoloads,required_trees,force_encoding,encoding,+,handle_block_given_call,def?,mid,module_name,count,accepts_using?,using_refinement,first,refinements_temp,arity_check?,defines_lambda,push_nesting?,nesting,new_temp,scope_locals,source_location,size,last,dynamic_require_severity,handle_part,===,is_a?,expand_path,split,error,each_with_object,pop'); self.$require("set"); self.$require("pathname"); @@ -33149,117 +30165,117 @@ Opal.modules["opal/nodes/call"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'CallNode'); - var $nesting = [self].concat($parent_nesting), $CallNode_add_special$1, $CallNode_initialize$2, $CallNode_compile$3, $CallNode_iter_has_break$ques$5, $CallNode_invoke_using_send$ques$6, $CallNode_invoke_using_refinement$ques$7, $CallNode_default_compile$8, $CallNode_compile_using_send$9, $CallNode_compile_using_refined_send$10, $CallNode_compile_receiver$11, $CallNode_compile_method_name$12, $CallNode_compile_arguments$13, $CallNode_compile_block_pass$14, $CallNode_compile_refinements$15, $CallNode_compile_break_catcher$17, $CallNode_compile_simple_call_chain$18, $CallNode_splat$ques$19, $CallNode_receiver_sexp$21, $CallNode_method_jsid$22, $CallNode_record_method$ques$23, $CallNode_compile_irb_var$24, $CallNode_compile_eval_var$26, $CallNode_using_irb$ques$27, $CallNode_using_eval$ques$28, $CallNode_variable_like$ques$29, $CallNode_sexp_with_arglist$30, $CallNode_handle_special$31, $CallNode$32, $CallNode$34, $CallNode$35, $CallNode$36, $CallNode$37, $CallNode$38, $CallNode$39, $CallNode$40, $CallNode$41, $CallNode_using_refinement$42, $CallNode$43, $CallNode$44, $CallNode$45, $CallNode$47, $CallNode$48, $CallNode$49, $CallNode$50, $CallNode_push_nesting$ques$51; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = self.$$prototype.compiler = nil; + $proto.sexp = $proto.compiler = nil; self.$handle("send"); self.$attr_reader("recvr", "meth", "arglist", "iter"); - Opal.const_set($nesting[0], 'SPECIALS', $hash2([], {})); - Opal.const_set($nesting[0], 'OPERATORS', $hash2(["+", "-", "*", "/", "<", "<=", ">", ">="], {"+": "plus", "-": "minus", "*": "times", "/": "divide", "<": "lt", "<=": "le", ">": "gt", ">=": "ge"}).$freeze()); - Opal.defs(self, '$add_special', $CallNode_add_special$1 = function $$add_special(name, options) { - var $iter = $CallNode_add_special$1.$$p, handler = $iter || nil, self = this, $writer = nil; + $const_set($nesting[0], 'SPECIALS', $hash2([], {})); + $const_set($nesting[0], 'OPERATORS', $hash2(["+", "-", "*", "/", "<", "<=", ">", ">="], {"+": "plus", "-": "minus", "*": "times", "/": "divide", "<": "lt", "<=": "le", ">": "gt", ">=": "ge"}).$freeze()); + $defs(self, '$add_special', function $$add_special(name, options) { + var handler = $$add_special.$$p || nil, self = this, $writer = nil; - if ($iter) $CallNode_add_special$1.$$p = null; + delete $$add_special.$$p; + ; - if ($iter) $CallNode_add_special$1.$$p = null;; - - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; $writer = [name, options]; - $send($$($nesting, 'SPECIALS'), '[]=', Opal.to_a($writer)); + $send($$('SPECIALS'), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(self, 'define_method', ["" + "handle_" + (name)], handler.$to_proc()); - }, $CallNode_add_special$1.$$arity = -2); + return $send(self, 'define_method', ["handle_" + (name)], handler.$to_proc()); + }, -2); - Opal.def(self, '$initialize', $CallNode_initialize$2 = function $$initialize($a) { - var $post_args, $b, $c, $iter = $CallNode_initialize$2.$$p, $yield = $iter || nil, self = this, args = nil, rest = nil, last_arg = nil, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $b, $c, $yield = $$initialize.$$p || nil, self = this, args = nil, rest = nil, last_arg = nil; - if ($iter) $CallNode_initialize$2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $CallNode_initialize$2, false, true), 'initialize', $zuper, $iter); - $b = [].concat(Opal.to_a(self.sexp)), (self.recvr = ($b[0] == null ? nil : $b[0])), (self.meth = ($b[1] == null ? nil : $b[1])), (args = $slice.call($b, 2)), $b; - $b = [].concat(Opal.to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_arg = ($b[$c] == null ? nil : $b[$c])), $b; - if ($truthy((function() {if ($truthy(($ret_or_1 = last_arg))) { - return ["iter", "block_pass"]['$include?'](last_arg.$type()) - } else { - return $ret_or_1 - }; return nil; })())) { + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + $b = [].concat($to_a(self.sexp)), (self.recvr = ($b[0] == null ? nil : $b[0])), (self.meth = ($b[1] == null ? nil : $b[1])), (args = $slice.call($b, 2)), $b; + $b = [].concat($to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_arg = ($b[$c] == null ? nil : $b[$c])), $b; + if (($truthy(last_arg) && ($truthy(["iter", "block_pass"]['$include?'](last_arg.$type()))))) { self.iter = last_arg; args = rest; } else { self.iter = nil }; - return (self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(args)))); - }, $CallNode_initialize$2.$$arity = -1); + return (self.arglist = $send(self, 's', ["arglist"].concat($to_a(args)))); + }, -1); - Opal.def(self, '$compile', $CallNode_compile$3 = function $$compile() {try { + $def(self, '$compile', function $$compile() {try { - var $$4, self = this; + var self = this; - return $send(self, 'handle_special', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + return $send(self, 'handle_special', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; if ($truthy(self['$record_method?']())) { - self.$compiler().$method_calls()['$<<'](self.$meth().$to_sym())}; + self.$compiler().$method_calls()['$<<'](self.$meth().$to_sym()) + }; if ($truthy(self['$using_eval?']())) { - Opal.ret(self.$compile_eval_var())}; + Opal.ret(self.$compile_eval_var()) + }; if ($truthy(self['$using_irb?']())) { - Opal.ret(self.$compile_irb_var())}; - return self.$default_compile();}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + Opal.ret(self.$compile_irb_var()) + }; + return self.$default_compile();}, {$$arity: 0, $$s: self}) } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $CallNode_compile$3.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$iter_has_break?', $CallNode_iter_has_break$ques$5 = function() { + $def(self, '$iter_has_break?', function $CallNode_iter_has_break$ques$2() { var self = this, finder = nil; - if ($truthy(self.$iter())) { - } else { + if (!$truthy(self.$iter())) { return false }; - finder = $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'BreakFinder').$new(); + finder = $$$($$$($$('Opal'), 'Rewriters'), 'BreakFinder').$new(); finder.$process(self.$iter()); return finder['$found_break?'](); - }, $CallNode_iter_has_break$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$invoke_using_send?', $CallNode_invoke_using_send$ques$6 = function() { - var self = this, $ret_or_2 = nil; + $def(self, '$invoke_using_send?', function $CallNode_invoke_using_send$ques$3() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = self.$iter()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self.$iter()))) { + return $ret_or_1 } else { return self['$splat?']() } - }, $CallNode_invoke_using_send$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$invoke_using_refinement?', $CallNode_invoke_using_refinement$ques$7 = function() { + $def(self, '$invoke_using_refinement?', function $CallNode_invoke_using_refinement$ques$4() { var self = this; return self.$scope().$scope().$collect_refinements_temps()['$empty?']()['$!']() - }, $CallNode_invoke_using_refinement$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$default_compile', $CallNode_default_compile$8 = function $$default_compile() { - var self = this; + $def(self, '$default_compile', function $$default_compile() { + var self = this, $writer = nil; + if ($truthy(self['$auto_await?']())) { + + self.$push("await "); + + $writer = [true]; + $send(self.$scope(), 'await_encountered=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + }; if ($truthy(self['$invoke_using_refinement?']())) { self.$compile_using_refined_send() } else if ($truthy(self['$invoke_using_send?']())) { @@ -33268,9 +30284,9 @@ Opal.modules["opal/nodes/call"] = function(Opal) { self.$compile_simple_call_chain() }; return self.$compile_break_catcher(); - }, $CallNode_default_compile$8.$$arity = 0); + }, 0); - Opal.def(self, '$compile_using_send', $CallNode_compile_using_send$9 = function $$compile_using_send() { + $def(self, '$compile_using_send', function $$compile_using_send() { var self = this; @@ -33281,9 +30297,9 @@ Opal.modules["opal/nodes/call"] = function(Opal) { self.$compile_arguments(); self.$compile_block_pass(); return self.$push(")"); - }, $CallNode_compile_using_send$9.$$arity = 0); + }, 0); - Opal.def(self, '$compile_using_refined_send', $CallNode_compile_using_refined_send$10 = function $$compile_using_refined_send() { + $def(self, '$compile_using_refined_send', function $$compile_using_refined_send() { var self = this; @@ -33295,21 +30311,21 @@ Opal.modules["opal/nodes/call"] = function(Opal) { self.$compile_arguments(); self.$compile_block_pass(); return self.$push(")"); - }, $CallNode_compile_using_refined_send$10.$$arity = 0); + }, 0); - Opal.def(self, '$compile_receiver', $CallNode_compile_receiver$11 = function $$compile_receiver() { + $def(self, '$compile_receiver', function $$compile_receiver() { var self = this; return self.$push(self.$recv(self.$receiver_sexp())) - }, $CallNode_compile_receiver$11.$$arity = 0); + }, 0); - Opal.def(self, '$compile_method_name', $CallNode_compile_method_name$12 = function $$compile_method_name() { + $def(self, '$compile_method_name', function $$compile_method_name() { var self = this; - return self.$push("" + ", '" + (self.$meth()) + "'") - }, $CallNode_compile_method_name$12.$$arity = 0); + return self.$push(", '" + (self.$meth()) + "'") + }, 0); - Opal.def(self, '$compile_arguments', $CallNode_compile_arguments$13 = function $$compile_arguments() { + $def(self, '$compile_arguments', function $$compile_arguments() { var self = this; @@ -33321,9 +30337,9 @@ Opal.modules["opal/nodes/call"] = function(Opal) { } else { return self.$push("[", self.$expr(self.$arglist()), "]") }; - }, $CallNode_compile_arguments$13.$$arity = 0); + }, 0); - Opal.def(self, '$compile_block_pass', $CallNode_compile_block_pass$14 = function $$compile_block_pass() { + $def(self, '$compile_block_pass', function $$compile_block_pass() { var self = this; if ($truthy(self.$iter())) { @@ -33331,24 +30347,22 @@ Opal.modules["opal/nodes/call"] = function(Opal) { } else { return nil } - }, $CallNode_compile_block_pass$14.$$arity = 0); + }, 0); - Opal.def(self, '$compile_refinements', $CallNode_compile_refinements$15 = function $$compile_refinements() { - var $$16, self = this, refinements = nil; + $def(self, '$compile_refinements', function $$compile_refinements() { + var self = this, refinements = nil; - refinements = $send(self.$scope().$collect_refinements_temps(), 'map', [], ($$16 = function(i){var self = $$16.$$s == null ? this : $$16.$$s; + refinements = $send(self.$scope().$collect_refinements_temps(), 'map', [], function $$5(i){var self = $$5.$$s == null ? this : $$5.$$s; - if (i == null) { - i = nil; - }; - return self.$s("js_tmp", i);}, $$16.$$s = self, $$16.$$arity = 1, $$16)); - return self.$push(self.$expr($send(self, 's', ["array"].concat(Opal.to_a(refinements)))), ", "); - }, $CallNode_compile_refinements$15.$$arity = 0); + if (i == null) i = nil;; + return self.$s("js_tmp", i);}, {$$arity: 1, $$s: self}); + return self.$push(self.$expr($send(self, 's', ["array"].concat($to_a(refinements)))), ", "); + }, 0); - Opal.def(self, '$compile_break_catcher', $CallNode_compile_break_catcher$17 = function $$compile_break_catcher() { + $def(self, '$compile_break_catcher', function $$compile_break_catcher() { var self = this; if ($truthy(self['$iter_has_break?']())) { @@ -33359,129 +30373,122 @@ Opal.modules["opal/nodes/call"] = function(Opal) { } else { return nil } - }, $CallNode_compile_break_catcher$17.$$arity = 0); + }, 0); - Opal.def(self, '$compile_simple_call_chain', $CallNode_compile_simple_call_chain$18 = function $$compile_simple_call_chain() { + $def(self, '$compile_simple_call_chain', function $$compile_simple_call_chain() { var self = this; return self.$push(self.$recv(self.$receiver_sexp()), self.$method_jsid(), "(", self.$expr(self.$arglist()), ")") - }, $CallNode_compile_simple_call_chain$18.$$arity = 0); + }, 0); - Opal.def(self, '$splat?', $CallNode_splat$ques$19 = function() { - var $$20, self = this; - - return $send(self.$arglist().$children(), 'any?', [], ($$20 = function(a){var self = $$20.$$s == null ? this : $$20.$$s; + $def(self, '$splat?', function $CallNode_splat$ques$6() { + var self = this; + return $send(self.$arglist().$children(), 'any?', [], function $$7(a){ - if (a == null) { - a = nil; - }; - return a.$type()['$==']("splat");}, $$20.$$s = self, $$20.$$arity = 1, $$20)) - }, $CallNode_splat$ques$19.$$arity = 0); + if (a == null) a = nil;; + return a.$type()['$==']("splat");}, 1) + }, 0); - Opal.def(self, '$receiver_sexp', $CallNode_receiver_sexp$21 = function $$receiver_sexp() { - var self = this, $ret_or_3 = nil; + $def(self, '$receiver_sexp', function $$receiver_sexp() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self.$recvr()))) { - return $ret_or_3 + if ($truthy(($ret_or_1 = self.$recvr()))) { + return $ret_or_1 } else { return self.$s("self") } - }, $CallNode_receiver_sexp$21.$$arity = 0); + }, 0); - Opal.def(self, '$method_jsid', $CallNode_method_jsid$22 = function $$method_jsid() { + $def(self, '$method_jsid', function $$method_jsid() { var self = this; return self.$mid_to_jsid(self.$meth().$to_s()) - }, $CallNode_method_jsid$22.$$arity = 0); + }, 0); - Opal.def(self, '$record_method?', $CallNode_record_method$ques$23 = function() { - var self = this; - + $def(self, '$record_method?', function $CallNode_record_method$ques$8() { + return true - }, $CallNode_record_method$ques$23.$$arity = 0); + }, 0); - Opal.def(self, '$compile_irb_var', $CallNode_compile_irb_var$24 = function $$compile_irb_var() { - var $$25, self = this; + $def(self, '$compile_irb_var', function $$compile_irb_var() { + var self = this; - return $send(self, 'with_temp', [], ($$25 = function(tmp){var self = $$25.$$s == null ? this : $$25.$$s, lvar = nil, call = nil; + return $send(self, 'with_temp', [], function $$9(tmp){var self = $$9.$$s == null ? this : $$9.$$s, lvar = nil, call = nil; - if (tmp == null) { - tmp = nil; - }; + if (tmp == null) tmp = nil;; lvar = self.$meth(); call = self.$s("send", self.$s("self"), self.$meth().$intern(), self.$s("arglist")); - return self.$push("" + "((" + (tmp) + " = Opal.irb_vars." + (lvar) + ") == null ? ", self.$expr(call), "" + " : " + (tmp) + ")");}, $$25.$$s = self, $$25.$$arity = 1, $$25)) - }, $CallNode_compile_irb_var$24.$$arity = 0); + return self.$push("((" + (tmp) + " = Opal.irb_vars." + (lvar) + ") == null ? ", self.$expr(call), " : " + (tmp) + ")");}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$compile_eval_var', $CallNode_compile_eval_var$26 = function $$compile_eval_var() { + $def(self, '$compile_eval_var', function $$compile_eval_var() { var self = this; return self.$push(self.$meth().$to_s()) - }, $CallNode_compile_eval_var$26.$$arity = 0); + }, 0); - Opal.def(self, '$using_irb?', $CallNode_using_irb$ques$27 = function() { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$using_irb?', function $CallNode_using_irb$ques$10() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.compiler['$irb?']()))) { - return self.$scope()['$top?']() - } else { - return $ret_or_5 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.compiler['$irb?']())) ? (self.$scope()['$top?']()) : ($ret_or_2))))) { return self['$variable_like?']() } else { - return $ret_or_4 + return $ret_or_1 } - }, $CallNode_using_irb$ques$27.$$arity = 0); + }, 0); - Opal.def(self, '$using_eval?', $CallNode_using_eval$ques$28 = function() { - var self = this, $ret_or_6 = nil, $ret_or_7 = nil; + $def(self, '$using_eval?', function $CallNode_using_eval$ques$11() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = self.compiler['$eval?']()))) { - return self.$scope()['$top?']() - } else { - return $ret_or_7 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.compiler['$eval?']())) ? (self.$scope()['$top?']()) : ($ret_or_2))))) { return self.compiler.$scope_variables()['$include?'](self.$meth()) } else { - return $ret_or_6 + return $ret_or_1 } - }, $CallNode_using_eval$ques$28.$$arity = 0); + }, 0); - Opal.def(self, '$variable_like?', $CallNode_variable_like$ques$29 = function() { - var self = this, $ret_or_8 = nil, $ret_or_9 = nil; + $def(self, '$variable_like?', function $CallNode_variable_like$ques$12() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = self.$arglist()['$=='](self.$s("arglist"))))) { - return self.$recvr()['$nil?']() - } else { - return $ret_or_9 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.$arglist()['$=='](self.$s("arglist")))) ? (self.$recvr()['$nil?']()) : ($ret_or_2))))) { return self.$iter()['$nil?']() } else { - return $ret_or_8 + return $ret_or_1 } - }, $CallNode_variable_like$ques$29.$$arity = 0); + }, 0); - Opal.def(self, '$sexp_with_arglist', $CallNode_sexp_with_arglist$30 = function $$sexp_with_arglist() { + $def(self, '$sexp_with_arglist', function $$sexp_with_arglist() { var self = this; return self.sexp.$updated(nil, [self.$recvr(), self.$meth(), self.$arglist()]) - }, $CallNode_sexp_with_arglist$30.$$arity = 0); + }, 0); - Opal.def(self, '$handle_special', $CallNode_handle_special$31 = function $$handle_special() { - var $iter = $CallNode_handle_special$31.$$p, compile_default = $iter || nil, self = this, method = nil; + $def(self, '$auto_await?', function $CallNode_auto_await$ques$13() { + var self = this, awaited_set = nil, $ret_or_1 = nil, $ret_or_2 = nil; - if ($iter) $CallNode_handle_special$31.$$p = null; + awaited_set = self.$compiler().$async_await(); + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = awaited_set)) ? (awaited_set['$!='](true)) : ($ret_or_2))))) { + return awaited_set['$match?'](self.$meth().$to_s()) + } else { + return $ret_or_1 + }; + }, 0); + + $def(self, '$handle_special', function $$handle_special() { + var compile_default = $$handle_special.$$p || nil, self = this, method = nil; + + delete $$handle_special.$$p; - if ($iter) $CallNode_handle_special$31.$$p = null;; - if ($truthy($$($nesting, 'SPECIALS')['$include?'](self.$meth()))) { + ; + if ($truthy($$('SPECIALS')['$include?'](self.$meth()))) { - method = self.$method("" + "handle_" + (self.$meth())); - if (method.$arity()['$=='](1)) { + method = self.$method("handle_" + (self.$meth())); + if ($eqeq(method.$arity(), 1)) { return method['$[]'](compile_default) } else { return method['$[]']() @@ -33489,217 +30496,215 @@ Opal.modules["opal/nodes/call"] = function(Opal) { } else { return Opal.yieldX(compile_default, []); }; - }, $CallNode_handle_special$31.$$arity = 0); - $send($$($nesting, 'OPERATORS'), 'each', [], ($CallNode$32 = function(operator, name){var self = $CallNode$32.$$s == null ? this : $CallNode$32.$$s, $$33; + }, 0); + $send($$('OPERATORS'), 'each', [], function $CallNode$14(operator, name){var self = $CallNode$14.$$s == null ? this : $CallNode$14.$$s; - if (operator == null) { - operator = nil; - }; + if (operator == null) operator = nil;; - if (name == null) { - name = nil; - }; - return $send(self, 'add_special', [operator.$to_sym()], ($$33 = function(compile_default){var self = $$33.$$s == null ? this : $$33.$$s, $a, lhs = nil, rhs = nil; + if (name == null) name = nil;; + return $send(self, 'add_special', [operator.$to_sym()], function $$15(compile_default){var $a, self = $$15.$$s == null ? this : $$15.$$s, lhs = nil, rhs = nil; - if (compile_default == null) { - compile_default = nil; - }; - if ($truthy(self.$compiler()['$inline_operators?']())) { + if (compile_default == null) compile_default = nil;; + if ($truthy(self['$invoke_using_refinement?']())) { + return compile_default.$call() + } else if ($truthy(self.$compiler()['$inline_operators?']())) { if ($truthy(self['$record_method?']())) { - self.$compiler().$method_calls()['$<<'](operator.$to_sym())}; - self.$compiler().$operator_helpers()['$<<'](operator.$to_sym()); + self.$compiler().$method_calls()['$<<'](operator.$to_sym()) + }; + self.$helper("rb_" + (name)); $a = [self.$expr(self.$recvr()), self.$expr(self.$arglist())], (lhs = $a[0]), (rhs = $a[1]), $a; - self.$push(self.$fragment("" + "$rb_" + (name) + "(")); + self.$push(self.$fragment("$rb_" + (name) + "(")); self.$push(lhs); self.$push(self.$fragment(", ")); self.$push(rhs); return self.$push(self.$fragment(")")); } else { return compile_default.$call() - };}, $$33.$$s = self, $$33.$$arity = 1, $$33));}, $CallNode$32.$$s = self, $CallNode$32.$$arity = 2, $CallNode$32)); - $send(self, 'add_special', ["require"], ($CallNode$34 = function(compile_default){var self = $CallNode$34.$$s == null ? this : $CallNode$34.$$s, str = nil; + };}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}); + $send(self, 'add_special', ["require"], function $CallNode$16(compile_default){var self = $CallNode$16.$$s == null ? this : $CallNode$16.$$s, str = nil; - if (compile_default == null) { - compile_default = nil; - }; - str = $$($nesting, 'DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](0)).$resolve(); - if ($truthy(str['$nil?']())) { - } else { + if (compile_default == null) compile_default = nil;; + str = $$('DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](0)).$resolve(); + if (!$truthy(str['$nil?']())) { self.$compiler().$requires()['$<<'](str) }; - return compile_default.$call();}, $CallNode$34.$$s = self, $CallNode$34.$$arity = 1, $CallNode$34)); - $send(self, 'add_special', ["require_relative"], ($CallNode$35 = function(){var self = $CallNode$35.$$s == null ? this : $CallNode$35.$$s, arg = nil, file = nil, dir = nil; + return compile_default.$call();}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["require_relative"], function $CallNode$17(){var self = $CallNode$17.$$s == null ? this : $CallNode$17.$$s, arg = nil, file = nil, dir = nil; arg = self.$arglist().$children()['$[]'](0); file = self.$compiler().$file(); - if (arg.$type()['$==']("str")) { + if ($eqeq(arg.$type(), "str")) { - dir = $$($nesting, 'File').$dirname(file); - self.$compiler().$requires()['$<<'](self.$Pathname(dir).$join(arg.$children()['$[]'](0)).$cleanpath().$to_s());}; - self.$push(self.$fragment("" + "self.$require(" + (file.$inspect()) + "+ '/../' + ")); + dir = $$('File').$dirname(file); + self.$compiler().$requires()['$<<'](self.$Pathname(dir).$join(arg.$children()['$[]'](0)).$cleanpath().$to_s()); + }; + self.$push(self.$fragment("" + (self.$scope().$self()) + ".$require(" + (file.$inspect()) + "+ '/../' + ")); self.$push(self.$process(self.$arglist())); - return self.$push(self.$fragment(")"));}, $CallNode$35.$$s = self, $CallNode$35.$$arity = 0, $CallNode$35)); - $send(self, 'add_special', ["autoload"], ($CallNode$36 = function(compile_default){var self = $CallNode$36.$$s == null ? this : $CallNode$36.$$s, str = nil; + return self.$push(self.$fragment(")"));}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["autoload"], function $CallNode$18(compile_default){var self = $CallNode$18.$$s == null ? this : $CallNode$18.$$s, args = nil, str = nil; - if (compile_default == null) { - compile_default = nil; - }; - if ($truthy(self.$scope()['$class_scope?']())) { + if (compile_default == null) compile_default = nil;; + args = self.$arglist().$children(); + if (($eqeq(args.$length(), 2) && ($eqeq(args['$[]'](0).$type(), "sym")))) { - str = $$($nesting, 'DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](1)).$resolve(); + str = $$('DependencyResolver').$new(self.$compiler(), args['$[]'](1), "ignore").$resolve(); if ($truthy(str['$nil?']())) { + self.$compiler().$warning("File for autoload of constant '" + (args['$[]'](0).$children()['$[]'](0)) + "' could not be bundled!") } else { - self.$compiler().$requires()['$<<'](str) + + self.$compiler().$requires()['$<<'](str); + self.$compiler().$autoloads()['$<<'](str); }; - return compile_default.$call(); - } else { - return nil - };}, $CallNode$36.$$s = self, $CallNode$36.$$arity = 1, $CallNode$36)); - $send(self, 'add_special', ["require_tree"], ($CallNode$37 = function(compile_default){var self = $CallNode$37.$$s == null ? this : $CallNode$37.$$s, $a, first_arg = nil, rest = nil, relative_path = nil, dir = nil, full_path = nil; + }; + return compile_default.$call();}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["require_tree"], function $CallNode$19(compile_default){var $a, self = $CallNode$19.$$s == null ? this : $CallNode$19.$$s, first_arg = nil, rest = nil, relative_path = nil, dir = nil, full_path = nil; - if (compile_default == null) { - compile_default = nil; - }; - $a = [].concat(Opal.to_a(self.$arglist().$children())), (first_arg = ($a[0] == null ? nil : $a[0])), (rest = $slice.call($a, 1)), $a; - if (first_arg.$type()['$==']("str")) { + if (compile_default == null) compile_default = nil;; + $a = [].concat($to_a(self.$arglist().$children())), (first_arg = ($a[0] == null ? nil : $a[0])), (rest = $slice.call($a, 1)), $a; + if ($eqeq(first_arg.$type(), "str")) { relative_path = first_arg.$children()['$[]'](0); self.$compiler().$required_trees()['$<<'](relative_path); - dir = $$($nesting, 'File').$dirname(self.$compiler().$file()); + dir = $$('File').$dirname(self.$compiler().$file()); full_path = self.$Pathname(dir).$join(relative_path).$cleanpath().$to_s(); full_path.$force_encoding(relative_path.$encoding()); - first_arg = first_arg.$updated(nil, [full_path]);}; + first_arg = first_arg.$updated(nil, [full_path]); + }; self.arglist = self.$arglist().$updated(nil, $rb_plus([first_arg], rest)); - return compile_default.$call();}, $CallNode$37.$$s = self, $CallNode$37.$$arity = 1, $CallNode$37)); - $send(self, 'add_special', ["block_given?"], ($CallNode$38 = function(){var self = $CallNode$38.$$s == null ? this : $CallNode$38.$$s; + return compile_default.$call();}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["block_given?"], function $CallNode$20(){var self = $CallNode$20.$$s == null ? this : $CallNode$20.$$s; if (self.sexp == null) self.sexp = nil; - return self.$push(self.$compiler().$handle_block_given_call(self.sexp))}, $CallNode$38.$$s = self, $CallNode$38.$$arity = 0, $CallNode$38)); - $send(self, 'add_special', ["__callee__"], ($CallNode$39 = function(){var self = $CallNode$39.$$s == null ? this : $CallNode$39.$$s; + return self.$push(self.$compiler().$handle_block_given_call(self.sexp))}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["__callee__"], function $CallNode$21(){var self = $CallNode$21.$$s == null ? this : $CallNode$21.$$s; if ($truthy(self.$scope()['$def?']())) { return self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())) } else { return self.$push(self.$fragment("nil")) - }}, $CallNode$39.$$s = self, $CallNode$39.$$arity = 0, $CallNode$39)); - $send(self, 'add_special', ["__method__"], ($CallNode$40 = function(){var self = $CallNode$40.$$s == null ? this : $CallNode$40.$$s; + }}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["__method__"], function $CallNode$22(){var self = $CallNode$22.$$s == null ? this : $CallNode$22.$$s; if ($truthy(self.$scope()['$def?']())) { return self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())) } else { return self.$push(self.$fragment("nil")) - }}, $CallNode$40.$$s = self, $CallNode$40.$$arity = 0, $CallNode$40)); - $send(self, 'add_special', ["using"], ($CallNode$41 = function(compile_default){var self = $CallNode$41.$$s == null ? this : $CallNode$41.$$s, $ret_or_10 = nil; + }}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["__dir__"], function $CallNode$23(){var self = $CallNode$23.$$s == null ? this : $CallNode$23.$$s; + + return self.$push($$('File').$dirname($$$($$('Opal'), 'Compiler').$module_name(self.$compiler().$file())).$inspect())}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["using"], function $CallNode$24(compile_default){var self = $CallNode$24.$$s == null ? this : $CallNode$24.$$s; - if (compile_default == null) { - compile_default = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_10 = self.$scope()['$accepts_using?']()))) { - return self.$arglist().$children().$count()['$=='](1) - } else { - return $ret_or_10 - }; return nil; })())) { + if (compile_default == null) compile_default = nil;; + if (($truthy(self.$scope()['$accepts_using?']()) && ($eqeq(self.$arglist().$children().$count(), 1)))) { return self.$using_refinement(self.$arglist().$children().$first()) } else { return compile_default.$call() - };}, $CallNode$41.$$s = self, $CallNode$41.$$arity = 1, $CallNode$41)); + };}, {$$arity: 1, $$s: self}); - Opal.def(self, '$using_refinement', $CallNode_using_refinement$42 = function $$using_refinement(arg) { + $def(self, '$using_refinement', function $$using_refinement(arg) { var $a, self = this, prev = nil, curr = nil; - $a = [].concat(Opal.to_a(self.$scope().$refinements_temp())), (prev = ($a[0] == null ? nil : $a[0])), (curr = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(self.$scope().$refinements_temp())), (prev = ($a[0] == null ? nil : $a[0])), (curr = ($a[1] == null ? nil : $a[1])), $a; if ($truthy(prev)) { - return self.$push("" + "(" + (curr) + " = " + (prev) + ".slice(), " + (curr) + ".push(", self.$expr(arg), "), self)") + return self.$push("(" + (curr) + " = " + (prev) + ".slice(), " + (curr) + ".push(", self.$expr(arg), "), " + (self.$scope().$self()) + ")") } else { - return self.$push("" + "(" + (curr) + " = [", self.$expr(arg), "], self)") + return self.$push("(" + (curr) + " = [", self.$expr(arg), "], " + (self.$scope().$self()) + ")") }; - }, $CallNode_using_refinement$42.$$arity = 1); - $send(self, 'add_special', ["debugger"], ($CallNode$43 = function(){var self = $CallNode$43.$$s == null ? this : $CallNode$43.$$s; + }, 1); + $send(self, 'add_special', ["debugger"], function $CallNode$25(){var self = $CallNode$25.$$s == null ? this : $CallNode$25.$$s; - return self.$push(self.$fragment("debugger"))}, $CallNode$43.$$s = self, $CallNode$43.$$arity = 0, $CallNode$43)); - $send(self, 'add_special', ["__OPAL_COMPILER_CONFIG__"], ($CallNode$44 = function(){var self = $CallNode$44.$$s == null ? this : $CallNode$44.$$s; + return self.$push(self.$fragment("debugger"))}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["__OPAL_COMPILER_CONFIG__"], function $CallNode$26(){var self = $CallNode$26.$$s == null ? this : $CallNode$26.$$s; - return self.$push(self.$fragment("" + "Opal.hash({ arity_check: " + (self.$compiler()['$arity_check?']()) + " })"))}, $CallNode$44.$$s = self, $CallNode$44.$$arity = 0, $CallNode$44)); - $send(self, 'add_special', ["lambda"], ($CallNode$45 = function(compile_default){var self = $CallNode$45.$$s == null ? this : $CallNode$45.$$s, $$46; + return self.$push(self.$fragment("Opal.hash({ arity_check: " + (self.$compiler()['$arity_check?']()) + " })"))}, {$$arity: 0, $$s: self}); + $send(self, 'add_special', ["lambda"], function $CallNode$27(compile_default){var self = $CallNode$27.$$s == null ? this : $CallNode$27.$$s; - if (compile_default == null) { - compile_default = nil; - }; - return $send(self.$scope(), 'defines_lambda', [], ($$46 = function(){var self = $$46.$$s == null ? this : $$46.$$s; - - return compile_default.$call()}, $$46.$$s = self, $$46.$$arity = 0, $$46));}, $CallNode$45.$$s = self, $CallNode$45.$$arity = 1, $CallNode$45)); - $send(self, 'add_special', ["nesting"], ($CallNode$47 = function(compile_default){var self = $CallNode$47.$$s == null ? this : $CallNode$47.$$s, push_nesting = nil; + if (compile_default == null) compile_default = nil;; + return $send(self.$scope(), 'defines_lambda', [], function $$28(){ + return compile_default.$call()}, 0);}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["nesting"], function $CallNode$29(compile_default){var self = $CallNode$29.$$s == null ? this : $CallNode$29.$$s, push_nesting = nil; - if (compile_default == null) { - compile_default = nil; - }; + if (compile_default == null) compile_default = nil;; push_nesting = self['$push_nesting?'](); if ($truthy(push_nesting)) { - self.$push("(Opal.Module.$$nesting = $nesting, ")}; + self.$push("(Opal.Module.$$nesting = " + (self.$scope().$nesting()) + ", ") + }; compile_default.$call(); if ($truthy(push_nesting)) { return self.$push(")") } else { return nil - };}, $CallNode$47.$$s = self, $CallNode$47.$$arity = 1, $CallNode$47)); - $send(self, 'add_special', ["constants"], ($CallNode$48 = function(compile_default){var self = $CallNode$48.$$s == null ? this : $CallNode$48.$$s, push_nesting = nil; + };}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["constants"], function $CallNode$30(compile_default){var self = $CallNode$30.$$s == null ? this : $CallNode$30.$$s, push_nesting = nil; - if (compile_default == null) { - compile_default = nil; - }; + if (compile_default == null) compile_default = nil;; push_nesting = self['$push_nesting?'](); if ($truthy(push_nesting)) { - self.$push("(Opal.Module.$$nesting = $nesting, ")}; + self.$push("(Opal.Module.$$nesting = " + (self.$scope().$nesting()) + ", ") + }; compile_default.$call(); if ($truthy(push_nesting)) { return self.$push(")") } else { return nil - };}, $CallNode$48.$$s = self, $CallNode$48.$$arity = 1, $CallNode$48)); - $send(self, 'add_special', ["eval"], ($CallNode$49 = function(compile_default){var self = $CallNode$49.$$s == null ? this : $CallNode$49.$$s, $ret_or_11 = nil, temp = nil, scope_variables = nil; + };}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["eval"], function $CallNode$31(compile_default){var self = $CallNode$31.$$s == null ? this : $CallNode$31.$$s, temp = nil, scope_variables = nil; - if (compile_default == null) { - compile_default = nil; + if (compile_default == null) compile_default = nil;; + if (($neqeq(self.$arglist().$children().$length(), 1) || ($not([self.$s("self"), nil]['$include?'](self.$recvr()))))) { + return compile_default.$call(); }; - if ($truthy((function() {if ($truthy(($ret_or_11 = self.$arglist().$children().$length()['$!='](1)))) { - return $ret_or_11 - } else { - return [self.$s("self"), nil]['$include?'](self.$recvr())['$!']() - }; return nil; })())) { - return compile_default.$call();}; + self.$scope().$nesting(); temp = self.$scope().$new_temp(); scope_variables = $send(self.$scope().$scope_locals(), 'map', [], "to_s".$to_proc()).$inspect(); - self.$push("" + "(" + (temp) + " = ", self.$expr(self.$arglist())); - self.$push("" + ", typeof Opal.compile === 'function' ? eval(Opal.compile(" + (temp)); + self.$push("(" + (temp) + " = ", self.$expr(self.$arglist())); + self.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile(" + (temp)); self.$push(", {scope_variables: ", scope_variables); - self.$push("" + ", arity_check: " + (self.$compiler()['$arity_check?']()) + ", file: '(eval)', eval: true})) : "); - return self.$push("" + "self.$eval(" + (temp) + "))");}, $CallNode$49.$$s = self, $CallNode$49.$$arity = 1, $CallNode$49)); - $send(self, 'add_special', ["binding"], ($CallNode$50 = function(){var self = $CallNode$50.$$s == null ? this : $CallNode$50.$$s; + self.$push(", arity_check: " + (self.$compiler()['$arity_check?']()) + ", file: '(eval)', eval: true})) : "); + return self.$push("" + (self.$scope().$self()) + ".$eval(" + (temp) + "))");}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["local_variables"], function $CallNode$32(compile_default){var self = $CallNode$32.$$s == null ? this : $CallNode$32.$$s, scope_variables = nil; + + + + if (compile_default == null) compile_default = nil;; + if (!$truthy([self.$s("self"), nil]['$include?'](self.$recvr()))) { + return compile_default.$call(); + }; + scope_variables = $send(self.$scope().$scope_locals(), 'map', [], "to_s".$to_proc()).$inspect(); + return self.$push(scope_variables);}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["binding"], function $CallNode$33(compile_default){var self = $CallNode$33.$$s == null ? this : $CallNode$33.$$s; + + if (compile_default == null) compile_default = nil;; + if (!$truthy(self.$recvr()['$nil?']())) { + return compile_default.$call(); + }; + self.$scope().$nesting(); self.$push("Opal.Binding.$new("); self.$push(" function($code, $value) {"); self.$push(" if (typeof $value === 'undefined') {"); @@ -33710,130 +30715,157 @@ Opal.modules["opal/nodes/call"] = function(Opal) { self.$push(" }"); self.$push(" },"); self.$push(" ", $send(self.$scope().$scope_locals(), 'map', [], "to_s".$to_proc()).$inspect(), ","); - self.$push(" self,"); + self.$push(" ", self.$scope().$self(), ","); self.$push(" ", self.$source_location()); - return self.$push(")");}, $CallNode$50.$$s = self, $CallNode$50.$$arity = 0, $CallNode$50)); + return self.$push(")");}, {$$arity: 1, $$s: self}); + $send(self, 'add_special', ["__await__"], function $CallNode$34(compile_default){var self = $CallNode$34.$$s == null ? this : $CallNode$34.$$s, $writer = nil; + + + + if (compile_default == null) compile_default = nil;; + if ($truthy(self.$compiler().$async_await())) { + + self.$push(self.$fragment("(await (")); + self.$push(self.$process(self.$recvr())); + self.$push(self.$fragment("))")); + + $writer = [true]; + $send(self.$scope(), 'await_encountered=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + } else { + return compile_default.$call() + };}, {$$arity: 1, $$s: self}); - Opal.def(self, '$push_nesting?', $CallNode_push_nesting$ques$51 = function() { - var self = this, recv = nil, $ret_or_12 = nil, $ret_or_13 = nil, $ret_or_14 = nil; + $def(self, '$push_nesting?', function $CallNode_push_nesting$ques$35() { + var self = this, recv = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; recv = self.$children().$first(); - if ($truthy(($ret_or_12 = self.$children().$size()['$=='](2)))) { + if ($truthy(($ret_or_1 = self.$children().$size()['$=='](2)))) { - if ($truthy(($ret_or_13 = recv['$nil?']()))) { - return $ret_or_13 + if ($truthy(($ret_or_2 = recv['$nil?']()))) { + return $ret_or_2 } else { - if ($truthy(($ret_or_14 = recv.$type()['$==']("const")))) { + if ($truthy(($ret_or_3 = recv.$type()['$==']("const")))) { return recv.$children().$last()['$==']("Module") } else { - return $ret_or_14 + return $ret_or_3 }; }; } else { - return $ret_or_12 + return $ret_or_1 }; - }, $CallNode_push_nesting$ques$51.$$arity = 0); + }, 0); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'DependencyResolver'); - var $nesting = [self].concat($parent_nesting), $DependencyResolver_initialize$52, $DependencyResolver_resolve$53, $DependencyResolver_handle_part$54, $DependencyResolver_expand_path$56; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = self.$$prototype.compiler = nil; + $proto.compiler = $proto.sexp = $proto.missing_dynamic_require = nil; - Opal.def(self, '$initialize', $DependencyResolver_initialize$52 = function $$initialize(compiler, sexp) { - var self = this; + $def(self, '$initialize', function $$initialize(compiler, sexp, missing_dynamic_require) { + var self = this, $ret_or_1 = nil; + + if (missing_dynamic_require == null) missing_dynamic_require = nil;; self.compiler = compiler; - return (self.sexp = sexp); - }, $DependencyResolver_initialize$52.$$arity = 2); + self.sexp = sexp; + return (self.missing_dynamic_require = ($truthy(($ret_or_1 = missing_dynamic_require)) ? ($ret_or_1) : (self.compiler.$dynamic_require_severity()))); + }, -3); - Opal.def(self, '$resolve', $DependencyResolver_resolve$53 = function $$resolve() { + $def(self, '$resolve', function $$resolve() { var self = this; return self.$handle_part(self.sexp) - }, $DependencyResolver_resolve$53.$$arity = 0); + }, 0); - Opal.def(self, '$handle_part', $DependencyResolver_handle_part$54 = function $$handle_part(sexp) { - var $a, $b, $$55, self = this, type = nil, recv = nil, meth = nil, args = nil, parts = nil, $ret_or_15 = nil, $ret_or_16 = nil, msg = nil, $case = nil; + $def(self, '$handle_part', function $$handle_part(sexp, missing_dynamic_require) { + var $a, $b, self = this, $ret_or_1 = nil, recv = nil, meth = nil, args = nil, parts = nil; - type = sexp.$type(); - if (type['$==']("str")) { - return sexp.$children()['$[]'](0) - } else if (type['$==']("send")) { - - $b = sexp.$children(), $a = Opal.to_ary($b), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $b; - parts = $send(args, 'map', [], ($$55 = function(s){var self = $$55.$$s == null ? this : $$55.$$s; + + if (missing_dynamic_require == null) missing_dynamic_require = self.missing_dynamic_require;; + if ($truthy(sexp)) { + if ($eqeqeq("str", ($ret_or_1 = sexp.$type()))) { + return sexp.$children()['$[]'](0) + } else if ($eqeqeq("dstr", $ret_or_1)) { + return $send(sexp.$children(), 'map', [], function $$36(i){var self = $$36.$$s == null ? this : $$36.$$s; + + + if (i == null) i = nil;; + return self.$handle_part(i);}, {$$arity: 1, $$s: self}).$join() + } else if ($eqeqeq("begin", $ret_or_1)) { + if ($eqeq(sexp.$children().$length(), 1)) { + return self.$handle_part(sexp.$children()['$[]'](0)) + } + } else if ($eqeqeq("send", $ret_or_1)) { - - if (s == null) { - s = nil; + $b = sexp.$children(), $a = $to_ary($b), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $b; + parts = $send(args, 'map', [], function $$37(s){var self = $$37.$$s == null ? this : $$37.$$s; + + + + if (s == null) s = nil;; + return self.$handle_part(s, "ignore");}, {$$arity: 1, $$s: self}); + if ($truthy(parts['$include?'](nil))) { + return nil + }; + if ((($truthy(recv['$is_a?']($$$($$$($Opal, 'AST'), 'Node'))) && ($eqeq(recv.$type(), "const"))) && ($eqeq(recv.$children().$last(), "File")))) { + if ($eqeq(meth, "expand_path")) { + return $send(self, 'expand_path', $to_a(parts)) + } else if ($eqeq(meth, "join")) { + return self.$expand_path(parts.$join("/")) + } else if ($eqeq(meth, "dirname")) { + return self.$expand_path(parts['$[]'](0).$split("/")['$[]']($range(0, -1, true)).$join("/")) + } + } else if ($eqeq(meth, "__dir__")) { + return $$('File').$dirname($$$($$('Opal'), 'Compiler').$module_name(self.compiler.$file())) }; - return self.$handle_part(s);}, $$55.$$s = self, $$55.$$arity = 1, $$55)); - if ($truthy((function() {if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = recv['$is_a?']($$$($$$($$$('::', 'Opal'), 'AST'), 'Node'))))) { - return recv.$type()['$==']("const") - } else { - return $ret_or_16 - }; return nil; })()))) { - return recv.$children().$last()['$==']("File") } else { - return $ret_or_15 - }; return nil; })())) { - if (meth['$==']("expand_path")) { - return $send(self, 'expand_path', Opal.to_a(parts)) - } else if (meth['$==']("join")) { - return self.$expand_path(parts.$join("/")) - } else if (meth['$==']("dirname")) { - return self.$expand_path(parts['$[]'](0).$split("/")['$[]']($range(0, -1, true)).$join("/"))}};}; - msg = "Cannot handle dynamic require"; - return (function() {$case = self.compiler.$dynamic_require_severity(); - if ("error"['$===']($case)) {return self.compiler.$error(msg, self.sexp.$line())} - else if ("warning"['$===']($case)) {return self.compiler.$warning(msg, self.sexp.$line())} - else { return nil }})(); - }, $DependencyResolver_handle_part$54.$$arity = 1); - return (Opal.def(self, '$expand_path', $DependencyResolver_expand_path$56 = function $$expand_path(path, base) { - var $$57, self = this; - - - - if (base == null) { - base = ""; + nil + } }; - return $send(((("" + (base)) + "/") + (path)).$split("/"), 'each_with_object', [[]], ($$57 = function(part, p){var self = $$57.$$s == null ? this : $$57.$$s; - + if ($eqeqeq("error", ($ret_or_1 = missing_dynamic_require))) { + return self.compiler.$error("Cannot handle dynamic require", self.sexp.$line()) + } else if ($eqeqeq("warning", $ret_or_1)) { + return self.compiler.$warning("Cannot handle dynamic require", self.sexp.$line()) + } else { + return nil + }; + }, -2); + return $def(self, '$expand_path', function $$expand_path(path, base) { + + + + if (base == null) base = "";; + return $send(((("" + (base)) + "/") + (path)).$split("/"), 'each_with_object', [[]], function $$38(part, p){ - if (part == null) { - part = nil; - }; + if (part == null) part = nil;; - if (p == null) { - p = nil; - }; - if (part['$==']("")) { + if (p == null) p = nil;; + if ($eqeq(part, "")) { return nil - } else if (part['$==']("..")) { + } else if ($eqeq(part, "..")) { return p.$pop() } else { return p['$<<'](part) - };}, $$57.$$s = self, $$57.$$arity = 2, $$57)).$join("/"); - }, $DependencyResolver_expand_path$56.$$arity = -2), nil) && 'expand_path'; + };}, 2).$join("/"); + }, -2); })($nesting[0], null, $nesting); - })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/csend"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/csend"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$helper', '$conditional_send', '$recv', '$receiver_sexp', '$push', '$compile_method_name', '$compile_arguments', '$compile_block_pass']); + Opal.add_stubs('require,handle,helper,conditional_send,recv,receiver_sexp,push,compile_method_name,compile_arguments,compile_block_pass'); self.$require("opal/nodes/call"); return (function($base, $parent_nesting) { @@ -33844,43 +30876,39 @@ Opal.modules["opal/nodes/csend"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'CSendNode'); - var $nesting = [self].concat($parent_nesting), $CSendNode_default_compile$1; - + self.$handle("csend"); - return (Opal.def(self, '$default_compile', $CSendNode_default_compile$1 = function $$default_compile() { - var $$2, self = this; + return $def(self, '$default_compile', function $$default_compile() { + var self = this; self.$helper("send"); - return $send(self, 'conditional_send', [self.$recv(self.$receiver_sexp())], ($$2 = function(receiver_temp){var self = $$2.$$s == null ? this : $$2.$$s; + return $send(self, 'conditional_send', [self.$recv(self.$receiver_sexp())], function $$1(receiver_temp){var self = $$1.$$s == null ? this : $$1.$$s; - if (receiver_temp == null) { - receiver_temp = nil; - }; + if (receiver_temp == null) receiver_temp = nil;; self.$push("$send(", receiver_temp); self.$compile_method_name(); self.$compile_arguments(); self.$compile_block_pass(); - return self.$push(")");}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }, $CSendNode_default_compile$1.$$arity = 0), nil) && 'default_compile'; - })($nesting[0], $$($nesting, 'CallNode'), $nesting) + return self.$push(")");}, {$$arity: 1, $$s: self}); + }, 0); + })($nesting[0], $$('CallNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/call_special"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; +Opal.modules["opal/nodes/call_special"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$recv', '$recvr', '$expr', '$property', '$value', '$<<', '$default_compile', '$meth', '$receiver_sexp', '$method_jsid', '$compile_arguments', '$iter', '$s', '$lhs', '$rhs', '$process']); + Opal.add_stubs('require,handle,children,push,recv,recvr,expr,property,value,<<,default_compile,meth,receiver_sexp,method_jsid,compile_arguments,iter,s,lhs,rhs,==,type,first,map,flatten,scan,to_proc,empty?,stmt?,process'); self.$require("opal/nodes/base"); self.$require("opal/nodes/call"); @@ -33892,118 +30920,128 @@ Opal.modules["opal/nodes/call_special"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'JsAttrNode'); - var $nesting = [self].concat($parent_nesting), $JsAttrNode_compile$1; - + self.$handle("jsattr"); self.$children("recvr", "property"); - return (Opal.def(self, '$compile', $JsAttrNode_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$recv(self.$recvr()), "[", self.$expr(self.$property()), "]") - }, $JsAttrNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'JsAttrAsgnNode'); - var $nesting = [self].concat($parent_nesting), $JsAttrAsgnNode_compile$2; - + self.$handle("jsattrasgn"); self.$children("recvr", "property", "value"); - return (Opal.def(self, '$compile', $JsAttrAsgnNode_compile$2 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$recv(self.$recvr()), "[", self.$expr(self.$property()), "] = ", self.$expr(self.$value())) - }, $JsAttrAsgnNode_compile$2.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'JsCallNode'); - var $nesting = [self].concat($parent_nesting), $JsCallNode_initialize$3, $JsCallNode_compile$4, $JsCallNode_method_jsid$5, $JsCallNode_compile_using_send$6; + var $proto = self.$$prototype; - self.$$prototype.iter = self.$$prototype.arglist = nil; + $proto.iter = $proto.arglist = nil; self.$handle("jscall"); - Opal.def(self, '$initialize', $JsCallNode_initialize$3 = function $$initialize($a) { - var $post_args, $iter = $JsCallNode_initialize$3.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $JsCallNode_initialize$3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $JsCallNode_initialize$3, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); if ($truthy(self.iter)) { - self.arglist = self.arglist['$<<'](self.iter)}; + self.arglist = self.arglist['$<<'](self.iter) + }; return (self.iter = nil); - }, $JsCallNode_initialize$3.$$arity = -1); + }, -1); - Opal.def(self, '$compile', $JsCallNode_compile$4 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; return self.$default_compile() - }, $JsCallNode_compile$4.$$arity = 0); + }, 0); - Opal.def(self, '$method_jsid', $JsCallNode_method_jsid$5 = function $$method_jsid() { + $def(self, '$method_jsid', function $$method_jsid() { var self = this; - return "" + "." + (self.$meth()) - }, $JsCallNode_method_jsid$5.$$arity = 0); - return (Opal.def(self, '$compile_using_send', $JsCallNode_compile_using_send$6 = function $$compile_using_send() { + return "." + (self.$meth()) + }, 0); + return $def(self, '$compile_using_send', function $$compile_using_send() { var self = this; self.$push(self.$recv(self.$receiver_sexp()), self.$method_jsid(), ".apply(null"); self.$compile_arguments(); if ($truthy(self.$iter())) { - self.$push(".concat(", self.$expr(self.$iter()), ")")}; + self.$push(".concat(", self.$expr(self.$iter()), ")") + }; return self.$push(")"); - }, $JsCallNode_compile_using_send$6.$$arity = 0), nil) && 'compile_using_send'; - })($nesting[0], $$($nesting, 'CallNode'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('CallNode')); + return (function($base, $super) { var self = $klass($base, $super, 'Match3Node'); - var $nesting = [self].concat($parent_nesting), $Match3Node_compile$7; + var $proto = self.$$prototype; - self.$$prototype.level = nil; + $proto.level = nil; self.$handle("match_with_lvasgn"); self.$children("lhs", "rhs"); - return (Opal.def(self, '$compile', $Match3Node_compile$7 = function $$compile() { - var self = this, sexp = nil; + return $def(self, '$compile', function $$compile() { + var self = this, sexp = nil, re = nil, names = nil, names_def = nil; sexp = self.$s("send", self.$lhs(), "=~", self.$rhs()); + if (($eqeq(self.$lhs().$type(), "regexp") && ($eqeq(self.$lhs().$children().$first().$type(), "str")))) { + + re = self.$lhs().$children().$first().$children().$first(); + names = $send(re.$scan(/\(\?<([^>]*)>/).$flatten(), 'map', [], "to_sym".$to_proc()); + if (!$truthy(names['$empty?']())) { + + names_def = self.$s("lvasgn", "$m3names", self.$s("if", self.$s("gvar", "$~"), self.$s("send", self.$s("gvar", "$~"), "named_captures"), self.$s("hash"))); + names = $send(names, 'map', [], function $$1(name){var self = $$1.$$s == null ? this : $$1.$$s; + + + + if (name == null) name = nil;; + return self.$s("lvasgn", name, self.$s("send", self.$s("lvar", "$m3names"), "[]", self.$s("sym", name)));}, {$$arity: 1, $$s: self}); + if ($truthy(self['$stmt?']())) { + sexp = $send(self, 's', ["begin", sexp, names_def].concat($to_a(names))) + } else { + sexp = $send(self, 's', ["begin", self.$s("lvasgn", "$m3tmp", sexp), names_def].concat($to_a(names)).concat([self.$s("lvar", "$m3tmp")])) + }; + }; + }; return self.$push(self.$process(sexp, self.level)); - }, $Match3Node_compile$7.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/scope"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["opal/nodes/scope"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $def = Opal.def, $send = Opal.send, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $not = Opal.not, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$attr_accessor', '$attr_reader', '$indent', '$scope', '$compiler', '$scope=', '$-', '$==', '$top?', '$top_scope', '$parent', '$iter?', '$!', '$class?', '$dup', '$push', '$map', '$ivars', '$gvars', '$parser_indent', '$empty?', '$join', '$+', '$fragment', '$def_in_class?', '$add_proto_ivar', '$include?', '$<<', '$has_local?', '$|', '$scope_locals', '$has_temp?', '$pop', '$next_temp', '$loop', '$succ', '$uses_block!', '$identify!', '$compact', '$name', '$scope_name', '$mid', '$unique_temp', '$add_scope_temp', '$def?', '$lambda?', '$type', '$nil?', '$rescue_else_sexp', '$last', '$class', '$collect_refinements_temps', '$add_scope_local', '$new_refinements_temp']); + Opal.add_stubs('require,attr_accessor,attr_reader,indent,scope,compiler,scope=,-,==,iter?,!,class?,dup,push,map,ivars,gvars,empty?,<<,parser_indent,join,+,fragment,def_in_class?,add_proto_ivar,include?,has_local?,|,scope_locals,reject,start_with?,to_s,has_temp?,pop,next_temp,loop,succ,uses_block!,identify!,valid_name?,mid,compact,parent,name,scope_name,unique_temp,lambda?,def?,type,nil?,rescue_else_sexp,last,class,collect_refinements_temps,add_scope_local,new_refinements_temp,identity,block_name=,add_temp,block_name,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -34014,14 +31052,14 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ScopeNode'); - var $nesting = [self].concat($parent_nesting), $ScopeNode_initialize$1, $ScopeNode_in_scope$2, $ScopeNode_class_scope$ques$4, $ScopeNode_class$ques$5, $ScopeNode_module$ques$6, $ScopeNode_sclass$ques$7, $ScopeNode_top$ques$8, $ScopeNode_top_scope$9, $ScopeNode_iter$ques$10, $ScopeNode_def$ques$11, $ScopeNode_lambda$ques$12, $ScopeNode_is_lambda$excl$13, $ScopeNode_defines_lambda$14, $ScopeNode_lambda_definition$ques$15, $ScopeNode_def_in_class$ques$16, $ScopeNode_to_vars$17, $ScopeNode_add_scope_ivar$22, $ScopeNode_add_scope_gvar$23, $ScopeNode_add_proto_ivar$24, $ScopeNode_add_arg$25, $ScopeNode_add_scope_local$26, $ScopeNode_has_local$ques$27, $ScopeNode_scope_locals$28, $ScopeNode_add_scope_temp$29, $ScopeNode_has_temp$ques$30, $ScopeNode_new_temp$31, $ScopeNode_next_temp$32, $ScopeNode_queue_temp$34, $ScopeNode_push_while$35, $ScopeNode_pop_while$36, $ScopeNode_in_while$ques$37, $ScopeNode_uses_block$excl$38, $ScopeNode_identify$excl$39, $ScopeNode_find_parent_def$40, $ScopeNode_super_chain$41, $ScopeNode_uses_block$ques$42, $ScopeNode_has_rescue_else$ques$43, $ScopeNode_in_rescue$44, $ScopeNode_current_rescue$45, $ScopeNode_in_resbody$46, $ScopeNode_in_resbody$ques$47, $ScopeNode_in_ensure$48, $ScopeNode_in_ensure$ques$49, $ScopeNode_gen_retry_id$50, $ScopeNode_accepts_using$ques$51, $ScopeNode_collect_refinements_temps$52, $ScopeNode_new_refinements_temp$53, $ScopeNode_refinements_temp$54; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.type = self.$$prototype.is_lambda = self.$$prototype.lambda_definition = self.$$prototype.defs = self.$$prototype.parent = self.$$prototype.temps = self.$$prototype.locals = self.$$prototype.compiler = self.$$prototype.proto_ivars = self.$$prototype.ivars = self.$$prototype.gvars = self.$$prototype.args = self.$$prototype.queue = self.$$prototype.while_stack = self.$$prototype.identity = self.$$prototype.uses_block = self.$$prototype.rescues = self.$$prototype.in_resbody = self.$$prototype.in_ensure = self.$$prototype.next_retry_id = self.$$prototype.refinements_temp = nil; + $proto.type = $proto.is_lambda = $proto.lambda_definition = $proto.defs = $proto.parent = $proto.temps = $proto.locals = $proto.proto_ivars = $proto.compiler = $proto.ivars = $proto.gvars = $proto.args = $proto.queue = $proto.while_stack = $proto.identity = $proto.uses_block = $proto.rescues = $proto.in_resbody = $proto.in_ensure = $proto.next_retry_id = $proto.refinements_temp = $proto.block_prepared = nil; self.$attr_accessor("parent"); self.$attr_accessor("name"); @@ -34033,24 +31071,19 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { self.$attr_accessor("mid"); self.$attr_accessor("defs"); self.$attr_reader("methods"); - self.$attr_accessor("uses_super"); - self.$attr_accessor("uses_zuper"); self.$attr_accessor("catch_return", "has_break", "has_retry"); self.$attr_accessor("rescue_else_sexp"); - Opal.def(self, '$initialize', $ScopeNode_initialize$1 = function $$initialize($a) { - var $post_args, $iter = $ScopeNode_initialize$1.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $ScopeNode_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $ScopeNode_initialize$1, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); self.locals = []; self.temps = []; self.args = []; @@ -34066,29 +31099,29 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { self.uses_block = false; self.in_ensure = false; return (self.proto_ivars = []); - }, $ScopeNode_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$in_scope', $ScopeNode_in_scope$2 = function $$in_scope() { - var $$3, $iter = $ScopeNode_in_scope$2.$$p, $yield = $iter || nil, self = this; + $def(self, '$in_scope', function $$in_scope() { + var $yield = $$in_scope.$$p || nil, self = this; - if ($iter) $ScopeNode_in_scope$2.$$p = null; - return $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + delete $$in_scope.$$p; + return $send(self, 'indent', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; if (self.parent == null) self.parent = nil; self.parent = self.$compiler().$scope(); $writer = [self]; - $send(self.$compiler(), 'scope=', Opal.to_a($writer)); + $send(self.$compiler(), 'scope=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; Opal.yield1($yield, self); $writer = [self.parent]; - $send(self.$compiler(), 'scope=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$3.$$s = self, $$3.$$arity = 0, $$3)) - }, $ScopeNode_in_scope$2.$$arity = 0); + $send(self.$compiler(), 'scope=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 0, $$s: self}) + }, 0); - Opal.def(self, '$class_scope?', $ScopeNode_class_scope$ques$4 = function() { + $def(self, '$class_scope?', function $ScopeNode_class_scope$ques$2() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.type['$==']("class")))) { @@ -34096,173 +31129,134 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { } else { return self.type['$==']("module") } - }, $ScopeNode_class_scope$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$class?', $ScopeNode_class$ques$5 = function() { + $def(self, '$class?', function $ScopeNode_class$ques$3() { var self = this; return self.type['$==']("class") - }, $ScopeNode_class$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$module?', $ScopeNode_module$ques$6 = function() { + $def(self, '$module?', function $ScopeNode_module$ques$4() { var self = this; return self.type['$==']("module") - }, $ScopeNode_module$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$sclass?', $ScopeNode_sclass$ques$7 = function() { + $def(self, '$sclass?', function $ScopeNode_sclass$ques$5() { var self = this; return self.type['$==']("sclass") - }, $ScopeNode_sclass$ques$7.$$arity = 0); - - Opal.def(self, '$top?', $ScopeNode_top$ques$8 = function() { - var self = this; - - return self.type['$==']("top") - }, $ScopeNode_top$ques$8.$$arity = 0); + }, 0); - Opal.def(self, '$top_scope', $ScopeNode_top_scope$9 = function $$top_scope() { + $def(self, '$top?', function $ScopeNode_top$ques$6() { var self = this; - if ($truthy(self['$top?']())) { - return self - } else { - return self.$parent().$top_scope() - } - }, $ScopeNode_top_scope$9.$$arity = 0); + return self.type['$==']("top") + }, 0); - Opal.def(self, '$iter?', $ScopeNode_iter$ques$10 = function() { + $def(self, '$iter?', function $ScopeNode_iter$ques$7() { var self = this; return self.type['$==']("iter") - }, $ScopeNode_iter$ques$10.$$arity = 0); + }, 0); - Opal.def(self, '$def?', $ScopeNode_def$ques$11 = function() { - var self = this, $ret_or_2 = nil; + $def(self, '$def?', function $ScopeNode_def$ques$8() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = self.type['$==']("def")))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self.type['$==']("def")))) { + return $ret_or_1 } else { return self.type['$==']("defs") } - }, $ScopeNode_def$ques$11.$$arity = 0); + }, 0); - Opal.def(self, '$lambda?', $ScopeNode_lambda$ques$12 = function() { - var self = this, $ret_or_3 = nil; + $def(self, '$lambda?', function $ScopeNode_lambda$ques$9() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self['$iter?']()))) { + if ($truthy(($ret_or_1 = self['$iter?']()))) { return self.is_lambda } else { - return $ret_or_3 + return $ret_or_1 } - }, $ScopeNode_lambda$ques$12.$$arity = 0); + }, 0); - Opal.def(self, '$is_lambda!', $ScopeNode_is_lambda$excl$13 = function() { + $def(self, '$is_lambda!', function $ScopeNode_is_lambda$excl$10() { var self = this; return (self.is_lambda = true) - }, $ScopeNode_is_lambda$excl$13.$$arity = 0); + }, 0); - Opal.def(self, '$defines_lambda', $ScopeNode_defines_lambda$14 = function $$defines_lambda() { - var $iter = $ScopeNode_defines_lambda$14.$$p, $yield = $iter || nil, self = this; + $def(self, '$defines_lambda', function $$defines_lambda() { + var $yield = $$defines_lambda.$$p || nil, self = this; - if ($iter) $ScopeNode_defines_lambda$14.$$p = null; + delete $$defines_lambda.$$p; self.lambda_definition = true; Opal.yieldX($yield, []); return (self.lambda_definition = false); - }, $ScopeNode_defines_lambda$14.$$arity = 0); + }, 0); - Opal.def(self, '$lambda_definition?', $ScopeNode_lambda_definition$ques$15 = function() { + $def(self, '$lambda_definition?', function $ScopeNode_lambda_definition$ques$11() { var self = this; return self.lambda_definition - }, $ScopeNode_lambda_definition$ques$15.$$arity = 0); + }, 0); - Opal.def(self, '$def_in_class?', $ScopeNode_def_in_class$ques$16 = function() { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; + $def(self, '$def_in_class?', function $ScopeNode_def_in_class$ques$12() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.defs['$!']()))) { - return self.type['$==']("def") - } else { - return $ret_or_6 - }; return nil; })()))) { - return self.parent - } else { - return $ret_or_5 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = self.defs['$!']())) ? (self.type['$==']("def")) : ($ret_or_3)))) ? (self.parent) : ($ret_or_2))))) { return self.parent['$class?']() } else { - return $ret_or_4 + return $ret_or_1 } - }, $ScopeNode_def_in_class$ques$16.$$arity = 0); + }, 0); - Opal.def(self, '$to_vars', $ScopeNode_to_vars$17 = function $$to_vars() { - var $$18, $$19, $$20, $$21, self = this, vars = nil, iv = nil, gv = nil, indent = nil, str = nil, $ret_or_7 = nil, pvars = nil, result = nil; + $def(self, '$to_vars', function $$to_vars() { + var self = this, vars = nil, iv = nil, gv = nil, indent = nil, str = nil, pvars = nil; vars = self.temps.$dup(); - $send(vars, 'push', Opal.to_a($send(self.locals, 'map', [], ($$18 = function(l){var self = $$18.$$s == null ? this : $$18.$$s; - + $send(vars, 'push', $to_a($send(self.locals, 'map', [], function $$13(l){ - if (l == null) { - l = nil; - }; - return "" + (l) + " = nil";}, $$18.$$s = self, $$18.$$arity = 1, $$18)))); - iv = $send(self.$ivars(), 'map', [], ($$19 = function(ivar){var self = $$19.$$s == null ? this : $$19.$$s; - + if (l == null) l = nil;; + return "" + (l) + " = nil";}, 1))); + iv = $send(self.$ivars(), 'map', [], function $$14(ivar){ - if (ivar == null) { - ivar = nil; - }; - return "" + "if (self" + (ivar) + " == null) self" + (ivar) + " = nil;\n";}, $$19.$$s = self, $$19.$$arity = 1, $$19)); - gv = $send(self.$gvars(), 'map', [], ($$20 = function(gvar){var self = $$20.$$s == null ? this : $$20.$$s; - + if (ivar == null) ivar = nil;; + return "if (self" + (ivar) + " == null) self" + (ivar) + " = nil;\n";}, 1); + gv = $send(self.$gvars(), 'map', [], function $$15(gvar){ - if (gvar == null) { - gvar = nil; - }; - return "" + "if ($gvars" + (gvar) + " == null) $gvars" + (gvar) + " = nil;\n";}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + if (gvar == null) gvar = nil;; + return "if ($gvars" + (gvar) + " == null) $gvars" + (gvar) + " = nil;\n";}, 1); + if (($truthy(self['$class?']()) && ($not(self.proto_ivars['$empty?']())))) { + vars['$<<']("$proto = self.$$prototype") + }; indent = self.compiler.$parser_indent(); - str = (function() {if ($truthy(vars['$empty?']())) { - return "" - } else { - return "" + "var " + (vars.$join(", ")) + ";\n" - }; return nil; })(); - if ($truthy(self.$ivars()['$empty?']())) { - } else { + str = ($truthy(vars['$empty?']()) ? ("") : ("var " + (vars.$join(", ")) + ";\n")); + if (!$truthy(self.$ivars()['$empty?']())) { str = $rb_plus(str, "" + (indent) + (iv.$join(indent))) }; - if ($truthy(self.$gvars()['$empty?']())) { - } else { + if (!$truthy(self.$gvars()['$empty?']())) { str = $rb_plus(str, "" + (indent) + (gv.$join(indent))) }; - if ($truthy((function() {if ($truthy(($ret_or_7 = self['$class?']()))) { - return self.proto_ivars['$empty?']()['$!']() - } else { - return $ret_or_7 - }; return nil; })())) { + if (($truthy(self['$class?']()) && ($not(self.proto_ivars['$empty?']())))) { - pvars = $send(self.proto_ivars, 'map', [], ($$21 = function(i){var self = $$21.$$s == null ? this : $$21.$$s; - + pvars = $send(self.proto_ivars, 'map', [], function $$16(i){ - if (i == null) { - i = nil; - }; - return "" + "self.$$prototype" + (i);}, $$21.$$s = self, $$21.$$arity = 1, $$21)).$join(" = "); - result = "" + (str) + "\n" + (indent) + (pvars) + " = nil;"; - } else { - result = str + if (i == null) i = nil;; + return "$proto" + (i);}, 1).$join(" = "); + str = "" + (str) + "\n" + (indent) + (pvars) + " = nil;"; }; - return self.$fragment(result); - }, $ScopeNode_to_vars$17.$$arity = 0); + return self.$fragment(str); + }, 0); - Opal.def(self, '$add_scope_ivar', $ScopeNode_add_scope_ivar$22 = function $$add_scope_ivar(ivar) { + $def(self, '$add_scope_ivar', function $$add_scope_ivar(ivar) { var self = this; if ($truthy(self['$def_in_class?']())) { @@ -34272,9 +31266,9 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { } else { return self.ivars['$<<'](ivar) } - }, $ScopeNode_add_scope_ivar$22.$$arity = 1); + }, 1); - Opal.def(self, '$add_scope_gvar', $ScopeNode_add_scope_gvar$23 = function $$add_scope_gvar(gvar) { + $def(self, '$add_scope_gvar', function $$add_scope_gvar(gvar) { var self = this; if ($truthy(self.gvars['$include?'](gvar))) { @@ -34282,9 +31276,9 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { } else { return self.gvars['$<<'](gvar) } - }, $ScopeNode_add_scope_gvar$23.$$arity = 1); + }, 1); - Opal.def(self, '$add_proto_ivar', $ScopeNode_add_proto_ivar$24 = function $$add_proto_ivar(ivar) { + $def(self, '$add_proto_ivar', function $$add_proto_ivar(ivar) { var self = this; if ($truthy(self.proto_ivars['$include?'](ivar))) { @@ -34292,365 +31286,371 @@ Opal.modules["opal/nodes/scope"] = function(Opal) { } else { return self.proto_ivars['$<<'](ivar) } - }, $ScopeNode_add_proto_ivar$24.$$arity = 1); + }, 1); - Opal.def(self, '$add_arg', $ScopeNode_add_arg$25 = function $$add_arg(arg) { + $def(self, '$add_arg', function $$add_arg(arg) { var self = this; - if ($truthy(self.args['$include?'](arg))) { - } else { + if (!$truthy(self.args['$include?'](arg))) { self.args['$<<'](arg) }; return arg; - }, $ScopeNode_add_arg$25.$$arity = 1); + }, 1); - Opal.def(self, '$add_scope_local', $ScopeNode_add_scope_local$26 = function $$add_scope_local(local) { + $def(self, '$add_scope_local', function $$add_scope_local(local) { var self = this; if ($truthy(self['$has_local?'](local))) { - return nil}; + return nil + }; return self.locals['$<<'](local); - }, $ScopeNode_add_scope_local$26.$$arity = 1); + }, 1); - Opal.def(self, '$has_local?', $ScopeNode_has_local$ques$27 = function(local) { - var self = this, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil; + $def(self, '$has_local?', function $ScopeNode_has_local$ques$17(local) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = self.locals['$include?'](local)))) { - return $ret_or_9 - } else { - return self.args['$include?'](local) - }; return nil; })()))) { - return $ret_or_8 - } else { - return self.temps['$include?'](local) - }; return nil; })())) { - return true}; - if ($truthy((function() {if ($truthy(($ret_or_10 = self.parent))) { - return self.type['$==']("iter") - } else { - return $ret_or_10 - }; return nil; })())) { - return self.parent['$has_local?'](local)}; + if ((($truthy(self.locals['$include?'](local)) || ($truthy(self.args['$include?'](local)))) || ($truthy(self.temps['$include?'](local))))) { + return true + }; + if (($truthy(self.parent) && ($eqeq(self.type, "iter")))) { + return self.parent['$has_local?'](local) + }; return false; - }, $ScopeNode_has_local$ques$27.$$arity = 1); + }, 1); - Opal.def(self, '$scope_locals', $ScopeNode_scope_locals$28 = function $$scope_locals() { - var self = this, $ret_or_11 = nil; + $def(self, '$scope_locals', function $$scope_locals() { + var self = this, locals = nil; - return self.locals['$|'](self.args)['$|']((function() {if ($truthy((function() {if ($truthy(($ret_or_11 = self.parent))) { - return self.type['$==']("iter") - } else { - return $ret_or_11 - }; return nil; })())) { - return self.parent.$scope_locals() - } else { - return [] - }; return nil; })()) - }, $ScopeNode_scope_locals$28.$$arity = 0); + + locals = self.locals['$|'](self.args)['$|']((($truthy(self.parent) && ($eqeq(self.type, "iter"))) ? (self.parent.$scope_locals()) : ([]))); + return $send(locals, 'reject', [], function $$18(i){ + + + if (i == null) i = nil;; + return i.$to_s()['$start_with?']("$");}, 1); + }, 0); - Opal.def(self, '$add_scope_temp', $ScopeNode_add_scope_temp$29 = function $$add_scope_temp(tmp) { + $def(self, '$add_scope_temp', function $$add_scope_temp(tmp) { var self = this; if ($truthy(self['$has_temp?'](tmp))) { - return nil}; + return nil + }; return self.temps.$push(tmp); - }, $ScopeNode_add_scope_temp$29.$$arity = 1); + }, 1); - Opal.def(self, '$has_temp?', $ScopeNode_has_temp$ques$30 = function(tmp) { + $def(self, '$has_temp?', function $ScopeNode_has_temp$ques$19(tmp) { var self = this; return self.temps['$include?'](tmp) - }, $ScopeNode_has_temp$ques$30.$$arity = 1); + }, 1); - Opal.def(self, '$new_temp', $ScopeNode_new_temp$31 = function $$new_temp() { + $def(self, '$new_temp', function $$new_temp() { var self = this, tmp = nil; - if ($truthy(self.queue['$empty?']())) { - } else { + if (!$truthy(self.queue['$empty?']())) { return self.queue.$pop() }; tmp = self.$next_temp(); self.temps['$<<'](tmp); return tmp; - }, $ScopeNode_new_temp$31.$$arity = 0); + }, 0); - Opal.def(self, '$next_temp', $ScopeNode_next_temp$32 = function $$next_temp() { - var $$33, self = this, tmp = nil; + $def(self, '$next_temp', function $$next_temp() { + var self = this, tmp = nil; tmp = nil; - (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], ($$33 = function(){var self = $$33.$$s == null ? this : $$33.$$s; + (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], function $$20(){var self = $$20.$$s == null ? this : $$20.$$s; if (self.unique == null) self.unique = nil; - tmp = "" + "$" + (self.unique); + tmp = "$" + (self.unique); self.unique = self.unique.$succ(); if ($truthy(self['$has_local?'](tmp))) { return nil } else { Opal.brk(nil, $brk) - };}, $$33.$$s = self, $$33.$$brk = $brk, $$33.$$arity = 0, $$33)) + };}, {$$arity: 0, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return tmp; - }, $ScopeNode_next_temp$32.$$arity = 0); + }, 0); - Opal.def(self, '$queue_temp', $ScopeNode_queue_temp$34 = function $$queue_temp(name) { + $def(self, '$queue_temp', function $$queue_temp(name) { var self = this; return self.queue['$<<'](name) - }, $ScopeNode_queue_temp$34.$$arity = 1); + }, 1); - Opal.def(self, '$push_while', $ScopeNode_push_while$35 = function $$push_while() { + $def(self, '$push_while', function $$push_while() { var self = this, info = nil; info = $hash2([], {}); self.while_stack.$push(info); return info; - }, $ScopeNode_push_while$35.$$arity = 0); + }, 0); - Opal.def(self, '$pop_while', $ScopeNode_pop_while$36 = function $$pop_while() { + $def(self, '$pop_while', function $$pop_while() { var self = this; return self.while_stack.$pop() - }, $ScopeNode_pop_while$36.$$arity = 0); + }, 0); - Opal.def(self, '$in_while?', $ScopeNode_in_while$ques$37 = function() { + $def(self, '$in_while?', function $ScopeNode_in_while$ques$21() { var self = this; return self.while_stack['$empty?']()['$!']() - }, $ScopeNode_in_while$ques$37.$$arity = 0); + }, 0); - Opal.def(self, '$uses_block!', $ScopeNode_uses_block$excl$38 = function() { - var self = this, $ret_or_12 = nil; + $def(self, '$uses_block!', function $ScopeNode_uses_block$excl$22() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_12 = self.type['$==']("iter")))) { - return self.parent - } else { - return $ret_or_12 - }; return nil; })())) { + if (($eqeq(self.type, "iter") && ($truthy(self.parent)))) { return self.parent['$uses_block!']() } else { self.uses_block = true; return self['$identify!'](); } - }, $ScopeNode_uses_block$excl$38.$$arity = 0); + }, 0); - Opal.def(self, '$identify!', $ScopeNode_identify$excl$39 = function(name) { - var self = this, $ret_or_13 = nil, $ret_or_14 = nil, $ret_or_15 = nil; + $def(self, '$identify!', function $ScopeNode_identify$excl$23(name) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; if ($truthy(self.identity)) { - return self.identity}; - name = (function() {if ($truthy(($ret_or_13 = name))) { - return $ret_or_13 + return self.identity + }; + if ($truthy(self['$valid_name?'](self.$mid()))) { + self.identity = "$$" + (self.$mid()) } else { - return [(function() {if ($truthy(($ret_or_14 = self.$parent()))) { - - if ($truthy(($ret_or_15 = self.$parent().$name()))) { - return $ret_or_15 - } else { - return self.$parent().$scope_name() - }; - } else { - return $ret_or_14 - }; return nil; })(), self.$mid()].$compact().$join("_") - }; return nil; })(); - self.identity = self.compiler.$unique_temp(name); - if ($truthy(self.parent)) { - self.parent.$add_scope_temp(self.identity)}; + + name = ($truthy(($ret_or_1 = name)) ? ($ret_or_1) : ([($truthy(($ret_or_2 = self.$parent())) ? (($truthy(($ret_or_3 = self.$parent().$name())) ? ($ret_or_3) : (self.$parent().$scope_name()))) : ($ret_or_2)), self.$mid()].$compact().$join("_"))); + self.identity = self.compiler.$unique_temp(name); + }; return self.identity; - }, $ScopeNode_identify$excl$39.$$arity = -1); + }, -1); self.$attr_reader("identity"); - Opal.def(self, '$find_parent_def', $ScopeNode_find_parent_def$40 = function $$find_parent_def() { - var $a, self = this, scope = nil, $ret_or_16 = nil; + $def(self, '$find_parent_def', function $$find_parent_def() { + var $a, self = this, scope = nil; scope = self; while ($truthy((scope = scope.$parent()))) { - if ($truthy((function() {if ($truthy(($ret_or_16 = scope['$def?']()))) { - return $ret_or_16 - } else { - return scope['$lambda?']() - }; return nil; })())) { - return scope} + if (($truthy(scope['$def?']()) || ($truthy(scope['$lambda?']())))) { + return scope + } }; return nil; - }, $ScopeNode_find_parent_def$40.$$arity = 0); + }, 0); - Opal.def(self, '$super_chain', $ScopeNode_super_chain$41 = function $$super_chain() { + $def(self, '$super_chain', function $$super_chain() { var $a, self = this, chain = nil, scope = nil, defn = nil, mid = nil; $a = [[], self, "null", "null"], (chain = $a[0]), (scope = $a[1]), (defn = $a[2]), (mid = $a[3]), $a; while ($truthy(scope)) { - if (scope.$type()['$==']("iter")) { + if ($eqeq(scope.$type(), "iter")) { chain['$<<'](scope['$identify!']()); if ($truthy(scope.$parent())) { - scope = scope.$parent()}; + scope = scope.$parent() + }; } else if ($truthy(["def", "defs"]['$include?'](scope.$type()))) { defn = scope['$identify!'](); - mid = "" + "'" + (scope.$mid()) + "'"; + mid = "'" + (scope.$mid()) + "'"; break;; } else { break; } }; return [chain, defn, mid]; - }, $ScopeNode_super_chain$41.$$arity = 0); + }, 0); - Opal.def(self, '$uses_block?', $ScopeNode_uses_block$ques$42 = function() { + $def(self, '$uses_block?', function $ScopeNode_uses_block$ques$24() { var self = this; return self.uses_block - }, $ScopeNode_uses_block$ques$42.$$arity = 0); + }, 0); - Opal.def(self, '$has_rescue_else?', $ScopeNode_has_rescue_else$ques$43 = function() { + $def(self, '$has_rescue_else?', function $ScopeNode_has_rescue_else$ques$25() { var self = this; return self.$rescue_else_sexp()['$nil?']()['$!']() - }, $ScopeNode_has_rescue_else$ques$43.$$arity = 0); + }, 0); - Opal.def(self, '$in_rescue', $ScopeNode_in_rescue$44 = function $$in_rescue(node) { - var $iter = $ScopeNode_in_rescue$44.$$p, $yield = $iter || nil, self = this, $ret_or_17 = nil, result = nil; + $def(self, '$in_rescue', function $$in_rescue(node) { + var $yield = $$in_rescue.$$p || nil, self = this, $ret_or_1 = nil, result = nil; - if ($iter) $ScopeNode_in_rescue$44.$$p = null; + delete $$in_rescue.$$p; - self.rescues = (function() {if ($truthy(($ret_or_17 = self.rescues))) { - return $ret_or_17 - } else { - return [] - }; return nil; })(); + self.rescues = ($truthy(($ret_or_1 = self.rescues)) ? ($ret_or_1) : ([])); self.rescues.$push(node); result = Opal.yieldX($yield, []); self.rescues.$pop(); return result; - }, $ScopeNode_in_rescue$44.$$arity = 1); + }, 1); - Opal.def(self, '$current_rescue', $ScopeNode_current_rescue$45 = function $$current_rescue() { + $def(self, '$current_rescue', function $$current_rescue() { var self = this; return self.rescues.$last() - }, $ScopeNode_current_rescue$45.$$arity = 0); + }, 0); - Opal.def(self, '$in_resbody', $ScopeNode_in_resbody$46 = function $$in_resbody() { - var $iter = $ScopeNode_in_resbody$46.$$p, $yield = $iter || nil, self = this, result = nil; + $def(self, '$in_resbody', function $$in_resbody() { + var $yield = $$in_resbody.$$p || nil, self = this, result = nil; - if ($iter) $ScopeNode_in_resbody$46.$$p = null; + delete $$in_resbody.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return nil }; self.in_resbody = true; result = Opal.yieldX($yield, []); self.in_resbody = false; return result; - }, $ScopeNode_in_resbody$46.$$arity = 0); + }, 0); - Opal.def(self, '$in_resbody?', $ScopeNode_in_resbody$ques$47 = function() { + $def(self, '$in_resbody?', function $ScopeNode_in_resbody$ques$26() { var self = this; return self.in_resbody - }, $ScopeNode_in_resbody$ques$47.$$arity = 0); + }, 0); - Opal.def(self, '$in_ensure', $ScopeNode_in_ensure$48 = function $$in_ensure() { - var $iter = $ScopeNode_in_ensure$48.$$p, $yield = $iter || nil, self = this, result = nil; + $def(self, '$in_ensure', function $$in_ensure() { + var $yield = $$in_ensure.$$p || nil, self = this, result = nil; - if ($iter) $ScopeNode_in_ensure$48.$$p = null; + delete $$in_ensure.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return nil }; self.in_ensure = true; result = Opal.yieldX($yield, []); self.in_ensure = false; return result; - }, $ScopeNode_in_ensure$48.$$arity = 0); + }, 0); - Opal.def(self, '$in_ensure?', $ScopeNode_in_ensure$ques$49 = function() { + $def(self, '$in_ensure?', function $ScopeNode_in_ensure$ques$27() { var self = this; return self.in_ensure - }, $ScopeNode_in_ensure$ques$49.$$arity = 0); + }, 0); - Opal.def(self, '$gen_retry_id', $ScopeNode_gen_retry_id$50 = function $$gen_retry_id() { - var self = this, $ret_or_18 = nil; + $def(self, '$gen_retry_id', function $$gen_retry_id() { + var self = this, $ret_or_1 = nil; - self.next_retry_id = (function() {if ($truthy(($ret_or_18 = self.next_retry_id))) { - return $ret_or_18 - } else { - return "retry_0" - }; return nil; })(); + self.next_retry_id = ($truthy(($ret_or_1 = self.next_retry_id)) ? ($ret_or_1) : ("retry_0")); return (self.next_retry_id = self.next_retry_id.$succ()); - }, $ScopeNode_gen_retry_id$50.$$arity = 0); + }, 0); - Opal.def(self, '$accepts_using?', $ScopeNode_accepts_using$ques$51 = function() { + $def(self, '$accepts_using?', function $ScopeNode_accepts_using$ques$28() { var self = this; - return [$$($nesting, 'TopNode'), $$($nesting, 'ModuleNode'), $$($nesting, 'ClassNode'), $$($nesting, 'IterNode')]['$include?'](self.$class()) - }, $ScopeNode_accepts_using$ques$51.$$arity = 0); + return [$$('TopNode'), $$('ModuleNode'), $$('ClassNode'), $$('IterNode')]['$include?'](self.$class()) + }, 0); - Opal.def(self, '$collect_refinements_temps', $ScopeNode_collect_refinements_temps$52 = function $$collect_refinements_temps(temps) { + $def(self, '$collect_refinements_temps', function $$collect_refinements_temps(temps) { var self = this; - if (temps == null) { - temps = []; - }; + if (temps == null) temps = [];; if ($truthy(self.refinements_temp)) { - temps['$<<'](self.refinements_temp)}; + temps['$<<'](self.refinements_temp) + }; if ($truthy(self.$parent())) { - return self.$parent().$collect_refinements_temps(temps)}; + return self.$parent().$collect_refinements_temps(temps) + }; return temps; - }, $ScopeNode_collect_refinements_temps$52.$$arity = -1); + }, -1); - Opal.def(self, '$new_refinements_temp', $ScopeNode_new_refinements_temp$53 = function $$new_refinements_temp() { + $def(self, '$new_refinements_temp', function $$new_refinements_temp() { var self = this, var$ = nil; var$ = self.$compiler().$unique_temp("$refn"); self.$add_scope_local(var$); return var$; - }, $ScopeNode_new_refinements_temp$53.$$arity = 0); - return (Opal.def(self, '$refinements_temp', $ScopeNode_refinements_temp$54 = function $$refinements_temp() { + }, 0); + + $def(self, '$refinements_temp', function $$refinements_temp() { var $a, self = this, prev = nil, curr = nil; $a = [self.refinements_temp, self.$new_refinements_temp()], (prev = $a[0]), (curr = $a[1]), $a; self.refinements_temp = curr; return [prev, curr]; - }, $ScopeNode_refinements_temp$54.$$arity = 0), nil) && 'refinements_temp'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + + $def(self, '$self', function $$self() { + var self = this; + + + self.define_self = true; + return "self"; + }, 0); + + $def(self, '$nesting', function $$nesting() { + var self = this; + + + self.define_nesting = true; + return "$nesting"; + }, 0); + + $def(self, '$relative_access', function $$relative_access() { + var self = this; + + + self.define_relative_access = (self.define_nesting = true); + return "$$"; + }, 0); + + $def(self, '$prepare_block', function $$prepare_block(block_name) { + var self = this, scope_name = nil, $writer = nil; + + + + if (block_name == null) block_name = nil;; + scope_name = self.$scope().$identity(); + if ($truthy(block_name)) { + + $writer = [block_name]; + $send(self, 'block_name=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + self.$add_temp("" + (self.$block_name()) + " = " + (scope_name) + ".$$p || nil"); + if ($truthy(self.block_prepared)) { + return nil + } else { + + self.$line("delete " + (scope_name) + ".$$p;"); + return (self.block_prepared = true); + }; + }, -1); + return self.$attr_accessor("await_encountered"); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/module"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/module"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_ary = Opal.to_ary, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$name_and_base', '$helper', '$push', '$line', '$in_scope', '$name=', '$scope', '$-', '$compile_body', '$private', '$cid', '$nil?', '$expr', '$add_temp', '$stmt', '$returns', '$compiler', '$body', '$s', '$empty_line', '$to_vars']); + Opal.add_stubs('require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,line,in_scope,name=,scope,-,compile_body,await_encountered,await_encountered=,parent,+,nesting,private,cid,expr,stmt,returns,compiler,empty_line,add_temp,to_vars'); self.$require("opal/nodes/scope"); return (function($base, $parent_nesting) { @@ -34661,75 +31661,94 @@ Opal.modules["opal/nodes/module"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ModuleNode'); - var $nesting = [self].concat($parent_nesting), $ModuleNode_compile$1, $ModuleNode_name_and_base$3, $ModuleNode_compile_body$4; + var $proto = self.$$prototype; + $proto.define_nesting = $proto.define_relative_access = nil; self.$handle("module"); self.$children("cid", "body"); - Opal.def(self, '$compile', $ModuleNode_compile$1 = function $$compile() { - var $a, $b, $$2, self = this, name = nil, base = nil; + $def(self, '$compile', function $$compile() { + var $a, $b, self = this, name = nil, base = nil, await_begin = nil, await_end = nil, async = nil, $writer = nil; - $b = self.$name_and_base(), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$name_and_base(), $a = $to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; self.$helper("module"); - self.$push("(function($base, $parent_nesting) {"); - self.$line("" + " var self = $module($base, '" + (name) + "');"); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; - - + if ($truthy(self.$body()['$nil?']())) { + if ($truthy(self['$stmt?']())) { + return self.$unshift("$module(", base, ", '" + (name) + "')") + } else { + return self.$unshift("($module(", base, ", '" + (name) + "'), nil)") + } + } else { - $writer = [name]; - $send(self.$scope(), 'name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return self.$compile_body();}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - return self.$line("})(", base, ", $nesting)"); - }, $ModuleNode_compile$1.$$arity = 0); + self.$line(" var self = $module($base, '" + (name) + "');"); + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; + + + + $writer = [name]; + $send(self.$scope(), 'name=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$compile_body();}, {$$arity: 0, $$s: self}); + if ($truthy(self.$await_encountered())) { + + await_begin = "(await "; + await_end = ")"; + async = "async "; + + $writer = [true]; + $send(self.$parent(), 'await_encountered=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + } else { + $a = ["", "", ""], (await_begin = $a[0]), (await_end = $a[1]), (async = $a[2]), $a + }; + self.$unshift("" + (await_begin) + "(" + (async) + "function($base" + (($truthy(self.define_nesting) ? (", $parent_nesting") : nil)) + ") {"); + return self.$line("})(", base, "" + (($truthy(self.define_nesting) ? ($rb_plus(", ", self.$scope().$nesting())) : nil)) + ")" + (await_end)); + }; + }, 0); self.$private(); - Opal.def(self, '$name_and_base', $ModuleNode_name_and_base$3 = function $$name_and_base() { + $def(self, '$name_and_base', function $$name_and_base() { var $a, $b, self = this, base = nil, name = nil; - $b = self.$cid().$children(), $a = Opal.to_ary($b), (base = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$cid().$children(), $a = $to_ary($b), (base = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(base['$nil?']())) { - return [name, "$nesting[0]"] + return [name, "" + (self.$scope().$nesting()) + "[0]"] } else { return [name, self.$expr(base)] }; - }, $ModuleNode_name_and_base$3.$$arity = 0); - return (Opal.def(self, '$compile_body', $ModuleNode_compile_body$4 = function $$compile_body() { - var self = this, body_code = nil, $ret_or_1 = nil; + }, 0); + return $def(self, '$compile_body', function $$compile_body() { + var self = this, body_code = nil; - self.$add_temp("$nesting = [self].concat($parent_nesting)"); - body_code = self.$stmt(self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$body()))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })())); + body_code = self.$stmt(self.$compiler().$returns(self.$body())); self.$empty_line(); + if ($truthy(self.define_nesting)) { + self.$add_temp("$nesting = [self].concat($parent_nesting)") + }; + if ($truthy(self.define_relative_access)) { + self.$add_temp("$$ = Opal.$r($nesting)") + }; self.$line(self.$scope().$to_vars()); return self.$line(body_code); - }, $ModuleNode_compile_body$4.$$arity = 0), nil) && 'compile_body'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + }, 0); + })($nesting[0], $$('ScopeNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/class"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/class"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $to_ary = Opal.to_ary, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$name_and_base', '$helper', '$push', '$line', '$in_scope', '$name=', '$scope', '$-', '$compile_body', '$super_code', '$sup', '$expr']); + Opal.add_stubs('require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,super_code,line,in_scope,name=,scope,-,compile_body,await_encountered,await_encountered=,parent,+,nesting,sup,expr'); self.$require("opal/nodes/module"); return (function($base, $parent_nesting) { @@ -34740,36 +31759,58 @@ Opal.modules["opal/nodes/class"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ClassNode'); - var $nesting = [self].concat($parent_nesting), $ClassNode_compile$1, $ClassNode_super_code$3; + var $proto = self.$$prototype; + $proto.define_nesting = nil; self.$handle("class"); self.$children("cid", "sup", "body"); - Opal.def(self, '$compile', $ClassNode_compile$1 = function $$compile() { - var $a, $b, $$2, self = this, name = nil, base = nil; + $def(self, '$compile', function $$compile() { + var $a, $b, self = this, name = nil, base = nil, await_begin = nil, await_end = nil, async = nil, $writer = nil; - $b = self.$name_and_base(), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$name_and_base(), $a = $to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; self.$helper("klass"); - self.$push("(function($base, $super, $parent_nesting) {"); - self.$line("" + " var self = $klass($base, $super, '" + (name) + "');"); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; - - + if ($truthy(self.$body()['$nil?']())) { + if ($truthy(self['$stmt?']())) { + return self.$unshift("$klass(", base, ", ", self.$super_code(), ", '" + (name) + "')") + } else { + return self.$unshift("($klass(", base, ", ", self.$super_code(), ", '" + (name) + "'), nil)") + } + } else { - $writer = [name]; - $send(self.$scope(), 'name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return self.$compile_body();}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - return self.$line("})(", base, ", ", self.$super_code(), ", $nesting)"); - }, $ClassNode_compile$1.$$arity = 0); - return (Opal.def(self, '$super_code', $ClassNode_super_code$3 = function $$super_code() { + self.$line(" var self = $klass($base, $super, '" + (name) + "');"); + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; + + + + $writer = [name]; + $send(self.$scope(), 'name=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$compile_body();}, {$$arity: 0, $$s: self}); + if ($truthy(self.$await_encountered())) { + + await_begin = "(await "; + await_end = ")"; + async = "async "; + + $writer = [true]; + $send(self.$parent(), 'await_encountered=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + } else { + $a = ["", "", ""], (await_begin = $a[0]), (await_end = $a[1]), (async = $a[2]), $a + }; + self.$unshift("" + (await_begin) + "(" + (async) + "function($base, $super" + (($truthy(self.define_nesting) ? (", $parent_nesting") : nil)) + ") {"); + return self.$line("})(", base, ", ", self.$super_code(), "" + (($truthy(self.define_nesting) ? ($rb_plus(", ", self.$scope().$nesting())) : nil)) + ")" + (await_end)); + }; + }, 0); + return $def(self, '$super_code', function $$super_code() { var self = this; if ($truthy(self.$sup())) { @@ -34777,17 +31818,16 @@ Opal.modules["opal/nodes/class"] = function(Opal) { } else { return "null" } - }, $ClassNode_super_code$3.$$arity = 0), nil) && 'super_code'; - })($nesting[0], $$($nesting, 'ModuleNode'), $nesting) + }, 0); + })($nesting[0], $$('ModuleNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/singleton_class"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/singleton_class"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$in_scope', '$add_temp', '$stmt', '$returns', '$compiler', '$body', '$line', '$to_vars', '$scope', '$recv', '$object']); + Opal.add_stubs('require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting'); self.$require("opal/nodes/scope"); return (function($base, $parent_nesting) { @@ -34798,40 +31838,45 @@ Opal.modules["opal/nodes/singleton_class"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'SingletonClassNode'); - var $nesting = [self].concat($parent_nesting), $SingletonClassNode_compile$1; - + self.$handle("sclass"); self.$children("object", "body"); - return (Opal.def(self, '$compile', $SingletonClassNode_compile$1 = function $$compile() { - var $$2, self = this; + return $def(self, '$compile', function $$compile() { + var self = this; self.$push("(function(self, $parent_nesting) {"); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, body_stmt = nil; + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, body_stmt = nil; + if (self.define_nesting == null) self.define_nesting = nil; + if (self.define_relative_access == null) self.define_relative_access = nil; - self.$add_temp("$nesting = [self].concat($parent_nesting)"); body_stmt = self.$stmt(self.$compiler().$returns(self.$body())); + if ($truthy(self.define_nesting)) { + self.$add_temp("$nesting = [self].concat($parent_nesting)") + }; + if ($truthy(self.define_relative_access)) { + self.$add_temp("$$ = Opal.$r($nesting)") + }; self.$line(self.$scope().$to_vars()); - return self.$line(body_stmt);}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - return self.$line("})(Opal.get_singleton_class(", self.$recv(self.$object()), "), $nesting)"); - }, $SingletonClassNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + return self.$line(body_stmt);}, {$$arity: 0, $$s: self}); + return self.$line("})(Opal.get_singleton_class(", self.$recv(self.$object()), "), " + (self.$scope().$nesting()) + ")"); + }, 0); + })($nesting[0], $$('ScopeNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/arg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/arg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$add_arg', '$scope', '$name', '$push', '$to_s']); + Opal.add_stubs('require,handle,children,add_arg,scope,name,push,to_s'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -34847,46 +31892,32 @@ Opal.modules["opal/nodes/args/arg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ArgNode'); - var $nesting = [self].concat($parent_nesting), $ArgNode_compile$1; - + self.$handle("arg"); self.$children("name"); - return (Opal.def(self, '$compile', $ArgNode_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$scope().$add_arg(self.$name()); return self.$push(self.$name().$to_s()); - }, $ArgNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/arity_check"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $def = Opal.def, $send = Opal.send, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $not = Opal.not, $rb_lt = Opal.rb_lt, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt; - Opal.add_stubs(['$require', '$handle', '$children', '$new', '$args_node', '$args', '$optargs', '$restarg', '$postargs', '$kwargs', '$kwoptargs', '$kwrestarg', '$kwnilarg', '$arity', '$arity=', '$scope', '$-', '$arity_check?', '$compiler', '$empty?', '$arity_checks', '$helper', '$inspect', '$to_s', '$mid', '$line', '$push', '$join', '$compact', '$size', '$all_args', '$!', '$-@', '$<', '$+', '$>', '$<<', '$any?', '$has_only_optional_kwargs?', '$negative_arity', '$positive_arity', '$select', '$include?', '$type', '$has_required_kwargs?', '$all?', '$==', '$def?', '$class_scope?', '$top?', '$parent', '$class?', '$name', '$module?', '$identity']); + Opal.add_stubs('require,handle,children,new,args_node,args,optargs,restarg,postargs,kwargs,kwoptargs,kwrestarg,kwnilarg,arity,arity=,scope,-,arity_check?,compiler,empty?,arity_checks,helper,inspect,to_s,mid,line,push,join,compact,size,all_args,!,-@,<,+,>,<<,has_only_optional_kwargs?,any?,negative_arity,positive_arity,select,include?,type,has_required_kwargs?,all?,==,def?,class_scope?,top?,parent,class?,name,module?,identity'); self.$require("opal/nodes/base"); self.$require("opal/rewriters/arguments"); @@ -34898,33 +31929,30 @@ Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ArityCheckNode'); - var $nesting = [self].concat($parent_nesting), $ArityCheckNode_initialize$1, $ArityCheckNode_compile$2, $ArityCheckNode_kwargs$3, $ArityCheckNode_all_args$4, $ArityCheckNode_arity_checks$5, $ArityCheckNode_arity$6, $ArityCheckNode_negative_arity$7, $ArityCheckNode_positive_arity$9, $ArityCheckNode_has_only_optional_kwargs$ques$10, $ArityCheckNode_has_required_kwargs$ques$12; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.kwargs = self.$$prototype.kwoptargs = self.$$prototype.kwrestarg = self.$$prototype.all_args = self.$$prototype.args = self.$$prototype.optargs = self.$$prototype.restarg = self.$$prototype.postargs = self.$$prototype.arity_checks = nil; + $proto.kwargs = $proto.kwoptargs = $proto.kwrestarg = $proto.all_args = $proto.args = $proto.optargs = $proto.restarg = $proto.postargs = $proto.arity_checks = nil; self.$handle("arity_check"); self.$children("args_node"); - Opal.def(self, '$initialize', $ArityCheckNode_initialize$1 = function $$initialize($a) { - var $post_args, $iter = $ArityCheckNode_initialize$1.$$p, $yield = $iter || nil, self = this, arguments$ = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this, arguments$ = nil; - if ($iter) $ArityCheckNode_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $ArityCheckNode_initialize$1, false, true), 'initialize', $zuper, $iter); - arguments$ = $$$($$($nesting, 'Rewriters'), 'Arguments').$new(self.$args_node().$children()); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + arguments$ = $$$($$('Rewriters'), 'Arguments').$new(self.$args_node().$children()); self.args = arguments$.$args(); self.optargs = arguments$.$optargs(); self.restarg = arguments$.$restarg(); @@ -34933,18 +31961,17 @@ Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { self.kwoptargs = arguments$.$kwoptargs(); self.kwrestarg = arguments$.$kwrestarg(); return (self.kwnilarg = arguments$.$kwnilarg()); - }, $ArityCheckNode_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$compile', $ArityCheckNode_compile$2 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this, $writer = nil, meth = nil; $writer = [self.$arity()]; - $send(self.$scope(), 'arity=', Opal.to_a($writer)); + $send(self.$scope(), 'arity=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(self.$compiler()['$arity_check?']())) { - } else { + if (!$truthy(self.$compiler()['$arity_check?']())) { return nil }; if ($truthy(self.$arity_checks()['$empty?']())) { @@ -34954,158 +31981,132 @@ Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { self.$helper("ac"); meth = self.$scope().$mid().$to_s().$inspect(); self.$line("var $arity = arguments.length;"); - return self.$push("" + " if (" + (self.$arity_checks().$join(" || ")) + ") { $ac($arity, " + (self.$arity()) + ", this, " + (meth) + "); }"); + return self.$push(" if (" + (self.$arity_checks().$join(" || ")) + ") { $ac($arity, " + (self.$arity()) + ", this, " + (meth) + "); }"); }; - }, $ArityCheckNode_compile$2.$$arity = 0); + }, 0); - Opal.def(self, '$kwargs', $ArityCheckNode_kwargs$3 = function $$kwargs() { + $def(self, '$kwargs', function $$kwargs() { var self = this; - return [].concat(Opal.to_a(self.kwargs)).concat(Opal.to_a(self.kwoptargs)).concat([self.kwrestarg]).$compact() - }, $ArityCheckNode_kwargs$3.$$arity = 0); + return [].concat($to_a(self.kwargs)).concat($to_a(self.kwoptargs)).concat([self.kwrestarg]).$compact() + }, 0); - Opal.def(self, '$all_args', $ArityCheckNode_all_args$4 = function $$all_args() { + $def(self, '$all_args', function $$all_args() { var self = this, $ret_or_1 = nil; - return (self.all_args = (function() {if ($truthy(($ret_or_1 = self.all_args))) { - return $ret_or_1 - } else { - return [].concat(Opal.to_a(self.args)).concat(Opal.to_a(self.optargs)).concat([self.restarg]).concat(Opal.to_a(self.postargs)).concat(Opal.to_a(self.$kwargs())).$compact() - }; return nil; })()) - }, $ArityCheckNode_all_args$4.$$arity = 0); + return (self.all_args = ($truthy(($ret_or_1 = self.all_args)) ? ($ret_or_1) : ([].concat($to_a(self.args)).concat($to_a(self.optargs)).concat([self.restarg]).concat($to_a(self.postargs)).concat($to_a(self.$kwargs())).$compact()))) + }, 0); - Opal.def(self, '$arity_checks', $ArityCheckNode_arity_checks$5 = function $$arity_checks() { - var $a, self = this, arity = nil, $ret_or_2 = nil, $ret_or_3 = nil, min_arity = nil, max_arity = nil; + $def(self, '$arity_checks', function $$arity_checks() { + var $a, self = this, arity = nil, min_arity = nil, max_arity = nil; if ($truthy((($a = self['arity_checks'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.arity_checks}; + return self.arity_checks + }; arity = self.$all_args().$size(); arity = $rb_minus(arity, self.optargs.$size()); if ($truthy(self.restarg)) { - arity = $rb_minus(arity, 1)}; + arity = $rb_minus(arity, 1) + }; arity = $rb_minus(arity, self.$kwargs().$size()); - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.optargs['$empty?']()['$!']()))) { - return $ret_or_3 - } else { - return self.$kwargs()['$empty?']()['$!']() - }; return nil; })()))) { - return $ret_or_2 - } else { - return self.restarg - }; return nil; })())) { - arity = $rb_minus(arity['$-@'](), 1)}; + if ((($not(self.optargs['$empty?']()) || ($not(self.$kwargs()['$empty?']()))) || ($truthy(self.restarg)))) { + arity = $rb_minus(arity['$-@'](), 1) + }; self.arity_checks = []; if ($truthy($rb_lt(arity, 0))) { min_arity = $rb_plus(arity, 1)['$-@'](); max_arity = self.$all_args().$size(); if ($truthy($rb_gt(min_arity, 0))) { - self.arity_checks['$<<']("" + "$arity < " + (min_arity))}; - if ($truthy(self.restarg)) { - } else { - self.arity_checks['$<<']("" + "$arity > " + (max_arity)) + self.arity_checks['$<<']("$arity < " + (min_arity)) + }; + if (!$truthy(self.restarg)) { + self.arity_checks['$<<']("$arity > " + (max_arity)) }; } else { - self.arity_checks['$<<']("" + "$arity !== " + (arity)) + self.arity_checks['$<<']("$arity !== " + (arity)) }; return self.arity_checks; - }, $ArityCheckNode_arity_checks$5.$$arity = 0); + }, 0); - Opal.def(self, '$arity', $ArityCheckNode_arity$6 = function $$arity() { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$arity', function $$arity() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.restarg))) { - return $ret_or_5 - } else { - return self.optargs['$any?']() - }; return nil; })()))) { - return $ret_or_4 - } else { - return self['$has_only_optional_kwargs?']() - }; return nil; })())) { + if ((($truthy(self.restarg) || ($truthy(self.optargs['$any?']()))) || ($truthy(self['$has_only_optional_kwargs?']())))) { return self.$negative_arity() } else { return self.$positive_arity() } - }, $ArityCheckNode_arity$6.$$arity = 0); + }, 0); - Opal.def(self, '$negative_arity', $ArityCheckNode_negative_arity$7 = function $$negative_arity() { - var $$8, self = this, required_plain_args = nil, result = nil; + $def(self, '$negative_arity', function $$negative_arity() { + var self = this, required_plain_args = nil, result = nil; - required_plain_args = $send(self.$all_args(), 'select', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; - + required_plain_args = $send(self.$all_args(), 'select', [], function $$1(arg){ - if (arg == null) { - arg = nil; - }; - return ["arg", "mlhs"]['$include?'](arg.$type());}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + if (arg == null) arg = nil;; + return ["arg", "mlhs"]['$include?'](arg.$type());}, 1); result = required_plain_args.$size(); if ($truthy(self['$has_required_kwargs?']())) { - result = $rb_plus(result, 1)}; + result = $rb_plus(result, 1) + }; result = $rb_minus(result['$-@'](), 1); return result; - }, $ArityCheckNode_negative_arity$7.$$arity = 0); + }, 0); - Opal.def(self, '$positive_arity', $ArityCheckNode_positive_arity$9 = function $$positive_arity() { + $def(self, '$positive_arity', function $$positive_arity() { var self = this, result = nil; result = self.$all_args().$size(); result = $rb_minus(result, self.$kwargs().$size()); if ($truthy(self.$kwargs()['$any?']())) { - result = $rb_plus(result, 1)}; + result = $rb_plus(result, 1) + }; return result; - }, $ArityCheckNode_positive_arity$9.$$arity = 0); + }, 0); - Opal.def(self, '$has_only_optional_kwargs?', $ArityCheckNode_has_only_optional_kwargs$ques$10 = function() { - var $$11, self = this, $ret_or_6 = nil; - - if ($truthy(($ret_or_6 = self.$kwargs()['$any?']()))) { - return $send(self.$kwargs(), 'all?', [], ($$11 = function(arg){var self = $$11.$$s == null ? this : $$11.$$s; + $def(self, '$has_only_optional_kwargs?', function $ArityCheckNode_has_only_optional_kwargs$ques$2() { + var self = this, $ret_or_1 = nil; + if ($truthy(($ret_or_1 = self.$kwargs()['$any?']()))) { + return $send(self.$kwargs(), 'all?', [], function $$3(arg){ - if (arg == null) { - arg = nil; - }; - return ["kwoptarg", "kwrestarg"]['$include?'](arg.$type());}, $$11.$$s = self, $$11.$$arity = 1, $$11)) + if (arg == null) arg = nil;; + return ["kwoptarg", "kwrestarg"]['$include?'](arg.$type());}, 1) } else { - return $ret_or_6 + return $ret_or_1 } - }, $ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity = 0); - return (Opal.def(self, '$has_required_kwargs?', $ArityCheckNode_has_required_kwargs$ques$12 = function() { - var $$13, self = this; - - return $send(self.$kwargs(), 'any?', [], ($$13 = function(arg){var self = $$13.$$s == null ? this : $$13.$$s; + }, 0); + return $def(self, '$has_required_kwargs?', function $ArityCheckNode_has_required_kwargs$ques$4() { + var self = this; + return $send(self.$kwargs(), 'any?', [], function $$5(arg){ - if (arg == null) { - arg = nil; - }; - return arg.$type()['$==']("kwarg");}, $$13.$$s = self, $$13.$$arity = 1, $$13)) - }, $ArityCheckNode_has_required_kwargs$ques$12.$$arity = 0), nil) && 'has_required_kwargs?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + if (arg == null) arg = nil;; + return arg.$type()['$==']("kwarg");}, 1) + }, 0); + })($nesting[0], $$('Base'), $nesting); + return (function($base, $super) { var self = $klass($base, $super, 'IterArityCheckNode'); - var $nesting = [self].concat($parent_nesting), $IterArityCheckNode_compile$14; - + self.$handle("iter_arity_check"); - return (Opal.def(self, '$compile', $IterArityCheckNode_compile$14 = function $$compile() { - var $a, self = this, $writer = nil, parent_scope = nil, $ret_or_7 = nil, $ret_or_8 = nil, context = nil, identity = nil; + return $def(self, '$compile', function $$compile() { + var $a, self = this, $writer = nil, parent_scope = nil, $ret_or_1 = nil, $ret_or_2 = nil, context = nil, identity = nil; $writer = [self.$arity()]; - $send(self.$scope(), 'arity=', Opal.to_a($writer)); + $send(self.$scope(), 'arity=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(self.$compiler()['$arity_check?']())) { - } else { + if (!$truthy(self.$compiler()['$arity_check?']())) { return nil }; if ($truthy(self.$arity_checks()['$empty?']())) { @@ -35113,45 +32114,26 @@ Opal.modules["opal/nodes/args/arity_check"] = function(Opal) { } else { parent_scope = self.$scope(); - while (!($truthy((function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = parent_scope['$def?']()))) { - return $ret_or_8 - } else { - return parent_scope['$class_scope?']() - }; return nil; })()))) { - return $ret_or_7 - } else { - return parent_scope['$top?']() - }; return nil; })()))) { + while (!($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = parent_scope['$def?']())) ? ($ret_or_2) : (parent_scope['$class_scope?']())))) ? ($ret_or_1) : (parent_scope['$top?']()))))) { parent_scope = parent_scope.$parent() }; - context = (function() {if ($truthy(parent_scope['$top?']())) { - return "'
    '" - } else if ($truthy(parent_scope['$def?']())) { - return "" + "'" + (parent_scope.$mid()) + "'" - } else if ($truthy(parent_scope['$class?']())) { - return "" + "''" - } else if ($truthy(parent_scope['$module?']())) { - return "" + "''" - } else { - return nil - }; return nil; })(); + context = ($truthy(parent_scope['$top?']()) ? ("'
    '") : ($truthy(parent_scope['$def?']()) ? ("'" + (parent_scope.$mid()) + "'") : ($truthy(parent_scope['$class?']()) ? ("''") : ($truthy(parent_scope['$module?']()) ? ("''") : nil)))); identity = self.$scope().$identity(); - self.$line("" + "if (" + (identity) + ".$$is_lambda || " + (identity) + ".$$define_meth) {"); + self.$line("if (" + (identity) + ".$$is_lambda || " + (identity) + ".$$define_meth) {"); self.$line(" var $arity = arguments.length;"); - self.$line("" + " if (" + (self.$arity_checks().$join(" || ")) + ") { Opal.block_ac($arity, " + (self.$arity()) + ", " + (context) + "); }"); + self.$line(" if (" + (self.$arity_checks().$join(" || ")) + ") { Opal.block_ac($arity, " + (self.$arity()) + ", " + (context) + "); }"); return self.$line("}"); }; - }, $IterArityCheckNode_compile$14.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'ArityCheckNode'), $nesting); + }, 0); + })($nesting[0], $$('ArityCheckNode')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$helper', '$line']); + Opal.add_stubs('require,handle,helper,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35167,16 +32149,15 @@ Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'EnsureKwargsAreKwargs'); - var $nesting = [self].concat($parent_nesting), $EnsureKwargsAreKwargs_compile$1; - + self.$handle("ensure_kwargs_are_kwargs"); - return (Opal.def(self, '$compile', $EnsureKwargsAreKwargs_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; @@ -35186,21 +32167,17 @@ Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) { self.$line("} else if (!$kwargs.$$is_hash) {"); self.$line(" throw Opal.ArgumentError.$new('expected kwargs');"); return self.$line("}"); - }, $EnsureKwargsAreKwargs_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_block_arg"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/args/extract_block_arg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$uses_block!', '$scope', '$add_arg', '$name', '$block_name=', '$-', '$identity', '$block_name', '$add_temp', '$line']); + Opal.add_stubs('require,handle,children,uses_block!,scope,add_arg,name,prepare_block'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35216,43 +32193,33 @@ Opal.modules["opal/nodes/args/extract_block_arg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractBlockarg'); - var $nesting = [self].concat($parent_nesting), $ExtractBlockarg_compile$1; - + self.$handle("extract_blockarg"); self.$children("name"); - return (Opal.def(self, '$compile', $ExtractBlockarg_compile$1 = function $$compile() { - var self = this, $writer = nil, scope_name = nil, yielder = nil; + return $def(self, '$compile', function $$compile() { + var self = this; self.$scope()['$uses_block!'](); self.$scope().$add_arg(self.$name()); - - $writer = [self.$name()]; - $send(self.$scope(), 'block_name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - scope_name = self.$scope().$identity(); - yielder = self.$scope().$block_name(); - self.$add_temp("" + "$iter = " + (scope_name) + ".$$p"); - self.$add_temp("" + (yielder) + " = $iter || nil"); - return self.$line("" + "if ($iter) " + (scope_name) + ".$$p = null;"); - }, $ExtractBlockarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$scope().$prepare_block(self.$name()); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_kwarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_kwarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$<<', '$used_kwargs', '$scope', '$add_temp', '$lvar_name', '$line', '$inspect', '$to_s']); + Opal.add_stubs('require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35268,40 +32235,39 @@ Opal.modules["opal/nodes/args/extract_kwarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractKwarg'); - var $nesting = [self].concat($parent_nesting), $ExtractKwarg_compile$1; + var $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; self.$handle("extract_kwarg"); self.$children("lvar_name"); - return (Opal.def(self, '$compile', $ExtractKwarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, key_name = nil; key_name = self.sexp.$meta()['$[]']("arg_name"); self.$scope().$used_kwargs()['$<<'](key_name); self.$add_temp(self.$lvar_name()); - self.$line("" + "if (!Opal.hasOwnProperty.call($kwargs.$$smap, '" + (key_name) + "')) {"); - self.$line("" + " throw Opal.ArgumentError.$new('missing keyword: " + (key_name) + "');"); + self.$line("if (!Opal.hasOwnProperty.call($kwargs.$$smap, '" + (key_name) + "')) {"); + self.$line(" throw Opal.ArgumentError.$new('missing keyword: " + (key_name) + "');"); self.$line("}"); return self.$line("" + (self.$lvar_name()) + " = $kwargs.$$smap[" + (key_name.$to_s().$inspect()) + "];"); - }, $ExtractKwarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_kwargs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_kwargs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$add_temp', '$line']); + Opal.add_stubs('require,handle,add_temp,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35317,33 +32283,31 @@ Opal.modules["opal/nodes/args/extract_kwargs"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractKwargs'); - var $nesting = [self].concat($parent_nesting), $ExtractKwargs_compile$1; - + self.$handle("extract_kwargs"); - return (Opal.def(self, '$compile', $ExtractKwargs_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_temp("$kwargs"); return self.$line("$kwargs = Opal.extract_kwargs($post_args)"); - }, $ExtractKwargs_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$<<', '$used_kwargs', '$scope', '$add_temp', '$lvar_name', '$line', '$inspect', '$to_s', '$==', '$default_value', '$expr']); + Opal.add_stubs('require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,expr'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35359,18 +32323,18 @@ Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractKwoptarg'); - var $nesting = [self].concat($parent_nesting), $ExtractKwoptarg_compile$1; + var $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; self.$handle("extract_kwoptarg"); self.$children("lvar_name", "default_value"); - return (Opal.def(self, '$compile', $ExtractKwoptarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, key_name = nil; @@ -35378,23 +32342,21 @@ Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) { self.$scope().$used_kwargs()['$<<'](key_name); self.$add_temp(self.$lvar_name()); self.$line("" + (self.$lvar_name()) + " = $kwargs.$$smap[" + (key_name.$to_s().$inspect()) + "];"); - if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { - return nil}; - self.$line("" + "if (" + (self.$lvar_name()) + " == null) {"); - self.$line("" + " " + (self.$lvar_name()) + " = ", self.$expr(self.$default_value())); - return self.$line("}"); - }, $ExtractKwoptarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if ($eqeq(self.$default_value().$children()['$[]'](1), "undefined")) { + return nil + }; + return self.$line("if (" + (self.$lvar_name()) + " == null) " + (self.$lvar_name()) + " = ", self.$expr(self.$default_value())); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_kwrestarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/args/extract_kwrestarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$children', '$name', '$add_temp', '$line', '$used_kwargs', '$map', '$scope', '$join']); + Opal.add_stubs('require,handle,children,name,add_temp,line,used_kwargs,map,scope,join'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35410,53 +32372,45 @@ Opal.modules["opal/nodes/args/extract_kwrestarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractKwrestarg'); - var $nesting = [self].concat($parent_nesting), $ExtractKwrestarg_compile$1, $ExtractKwrestarg_used_kwargs$2; - + self.$handle("extract_kwrestarg"); self.$children("name"); - Opal.def(self, '$compile', $ExtractKwrestarg_compile$1 = function $$compile() { - var self = this; - - if ($truthy(self.$name())) { - - self.$add_temp(self.$name()); - return self.$line("" + (self.$name()) + " = Opal.kwrestargs($kwargs, " + (self.$used_kwargs()) + ");"); - } else { - return nil - } - }, $ExtractKwrestarg_compile$1.$$arity = 0); - return (Opal.def(self, '$used_kwargs', $ExtractKwrestarg_used_kwargs$2 = function $$used_kwargs() { - var $$3, self = this, args = nil; + $def(self, '$compile', function $$compile() { + var self = this, name = nil, $ret_or_1 = nil; - args = $send(self.$scope().$used_kwargs(), 'map', [], ($$3 = function(arg_name){var self = $$3.$$s == null ? this : $$3.$$s; + name = ($truthy(($ret_or_1 = self.$name())) ? ($ret_or_1) : ("$kw_rest_arg")); + self.$add_temp(name); + return self.$line("" + (name) + " = Opal.kwrestargs($kwargs, " + (self.$used_kwargs()) + ");"); + }, 0); + return $def(self, '$used_kwargs', function $$used_kwargs() { + var self = this, args = nil; + + args = $send(self.$scope().$used_kwargs(), 'map', [], function $$1(arg_name){ - if (arg_name == null) { - arg_name = nil; - }; - return "" + "'" + (arg_name) + "': true";}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - return "" + "{" + (args.$join(",")) + "}"; - }, $ExtractKwrestarg_used_kwargs$2.$$arity = 0), nil) && 'used_kwargs'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if (arg_name == null) arg_name = nil;; + return "'" + (arg_name) + "': true";}, 1); + return "{" + (args.$join(",")) + "}"; + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_optarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_optarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$==', '$[]', '$default_value', '$line', '$name', '$expr']); + Opal.add_stubs('require,handle,children,==,[],default_value,line,name,expr'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35472,37 +32426,34 @@ Opal.modules["opal/nodes/args/extract_optarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractOptargNode'); - var $nesting = [self].concat($parent_nesting), $ExtractOptargNode_compile$1; - + self.$handle("extract_optarg"); self.$children("name", "default_value"); - return (Opal.def(self, '$compile', $ExtractOptargNode_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { - return nil}; - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); - return self.$line("}"); - }, $ExtractOptargNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if ($eqeq(self.$default_value().$children()['$[]'](1), "undefined")) { + return nil + }; + return self.$line("if (" + (self.$name()) + " == null) " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_post_arg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_post_arg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$name', '$line']); + Opal.add_stubs('require,handle,children,add_temp,name,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35518,38 +32469,33 @@ Opal.modules["opal/nodes/args/extract_post_arg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractPostArg'); - var $nesting = [self].concat($parent_nesting), $ExtractPostArg_compile$1; - + self.$handle("extract_post_arg"); self.$children("name"); - return (Opal.def(self, '$compile', $ExtractPostArg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_temp(self.$name()); - self.$line("" + (self.$name()) + " = $post_args[0];"); - self.$line("$post_args.splice(0, 1);"); - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = nil"); - return self.$line("}"); - }, $ExtractPostArg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + self.$line("" + (self.$name()) + " = $post_args.shift();"); + return self.$line("if (" + (self.$name()) + " == null) " + (self.$name()) + " = nil;"); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_post_optarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_post_optarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$name', '$line', '$args_to_keep', '$==', '$[]', '$default_value', '$expr']); + Opal.add_stubs('require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,expr'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35565,42 +32511,36 @@ Opal.modules["opal/nodes/args/extract_post_optarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractPostOptarg'); - var $nesting = [self].concat($parent_nesting), $ExtractPostOptarg_compile$1; - + self.$handle("extract_post_optarg"); self.$children("name", "default_value", "args_to_keep"); - return (Opal.def(self, '$compile', $ExtractPostOptarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_temp(self.$name()); - self.$line("" + "if ($post_args.length > " + (self.$args_to_keep()) + ") {"); - self.$line("" + " " + (self.$name()) + " = $post_args[0];"); - self.$line(" $post_args.splice(0, 1);"); - self.$line("}"); - if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { - return nil}; - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); - return self.$line("}"); - }, $ExtractPostOptarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + self.$line("if ($post_args.length > " + (self.$args_to_keep()) + ") " + (self.$name()) + " = $post_args.shift();"); + if ($eqeq(self.$default_value().$children()['$[]'](1), "undefined")) { + return nil + }; + return self.$line("if (" + (self.$name()) + " == null) " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/extract_restarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/extract_restarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$name', '$add_temp', '$==', '$args_to_keep', '$line', '$!=']); + Opal.add_stubs('require,handle,children,name,add_temp,==,args_to_keep,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35616,44 +32556,37 @@ Opal.modules["opal/nodes/args/extract_restarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ExtractRestarg'); - var $nesting = [self].concat($parent_nesting), $ExtractRestarg_compile$1; - + self.$handle("extract_restarg"); self.$children("name", "args_to_keep"); - return (Opal.def(self, '$compile', $ExtractRestarg_compile$1 = function $$compile() { - var self = this; + return $def(self, '$compile', function $$compile() { + var self = this, name = nil, $ret_or_1 = nil; - if ($truthy(self.$name())) { - - self.$add_temp(self.$name()); - if (self.$args_to_keep()['$=='](0)) { - return self.$line("" + (self.$name()) + " = $post_args;") - } else { - return self.$line("" + (self.$name()) + " = $post_args.splice(0, $post_args.length - " + (self.$args_to_keep()) + ");") - }; - } else if ($truthy(self.$args_to_keep()['$!='](0))) { - return self.$line("" + "$post_args.splice(0, $post_args.length - " + (self.$args_to_keep()) + ");") + + name = ($truthy(($ret_or_1 = self.$name())) ? ($ret_or_1) : ("$rest_arg")); + self.$add_temp(name); + if ($eqeq(self.$args_to_keep(), 0)) { + return self.$line("" + (name) + " = $post_args;") } else { - return nil - } - }, $ExtractRestarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$line("" + (name) + " = $post_args.splice(0, $post_args.length - " + (self.$args_to_keep()) + ");") + }; + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/fake_arg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/fake_arg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$next_temp', '$scope', '$add_arg', '$push']); + Opal.add_stubs('require,handle,next_temp,scope,add_arg,push'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35669,34 +32602,32 @@ Opal.modules["opal/nodes/args/fake_arg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'FakeArgNode'); - var $nesting = [self].concat($parent_nesting), $FakeArgNode_compile$1; - + self.$handle("fake_arg"); - return (Opal.def(self, '$compile', $FakeArgNode_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this, name = nil; name = self.$scope().$next_temp(); self.$scope().$add_arg(name); return self.$push(name); - }, $FakeArgNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/initialize_iterarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/initialize_iterarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$line', '$name']); + Opal.add_stubs('require,handle,children,line,name'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35712,35 +32643,30 @@ Opal.modules["opal/nodes/args/initialize_iterarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'InitializeIterarg'); - var $nesting = [self].concat($parent_nesting), $InitializeIterarg_compile$1; - + self.$handle("initialize_iter_arg"); self.$children("name"); - return (Opal.def(self, '$compile', $InitializeIterarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = nil;"); - return self.$line("}"); - }, $InitializeIterarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$line("if (" + (self.$name()) + " == null) " + (self.$name()) + " = nil;") + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/initialize_shadowarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/initialize_shadowarg"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$<<', '$locals', '$scope', '$name', '$add_arg', '$line']); + Opal.add_stubs('require,handle,children,<<,locals,scope,name,add_arg,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35756,35 +32682,33 @@ Opal.modules["opal/nodes/args/initialize_shadowarg"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'InitializeShadowarg'); - var $nesting = [self].concat($parent_nesting), $InitializeShadowarg_compile$1; - + self.$handle("initialize_shadowarg"); self.$children("name"); - return (Opal.def(self, '$compile', $InitializeShadowarg_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$scope().$locals()['$<<'](self.$name()); self.$scope().$add_arg(self.$name()); return self.$line("" + (self.$name()) + " = nil;"); - }, $InitializeShadowarg_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/parameters"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/parameters"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $truthy = Opal.truthy, $eqeq = Opal.eqeq; - Opal.add_stubs(['$children', '$map', '$public_send', '$type', '$join', '$compact', '$==']); + Opal.add_stubs('children,map,public_send,type,join,compact,=='); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -35800,132 +32724,119 @@ Opal.modules["opal/nodes/args/parameters"] = function(Opal) { var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Parameters'); - var $nesting = [self].concat($parent_nesting), $Parameters_initialize$1, $Parameters_to_code$2, $Parameters_on_arg$4, $Parameters_on_mlhs$5, $Parameters_on_optarg$6, $Parameters_on_restarg$7, $Parameters_on_kwarg$8, $Parameters_on_kwoptarg$9, $Parameters_on_kwrestarg$10, $Parameters_on_blockarg$11, $Parameters_on_kwnilarg$12, $Parameters_on_shadowarg$13; + var $proto = self.$$prototype; - self.$$prototype.args = nil; + $proto.args = nil; - Opal.def(self, '$initialize', $Parameters_initialize$1 = function $$initialize(args) { + $def(self, '$initialize', function $$initialize(args) { var self = this; return (self.args = args.$children()) - }, $Parameters_initialize$1.$$arity = 1); + }, 1); - Opal.def(self, '$to_code', $Parameters_to_code$2 = function $$to_code() { - var $$3, self = this, stringified_parameters = nil; + $def(self, '$to_code', function $$to_code() { + var self = this, stringified_parameters = nil; - stringified_parameters = $send(self.args, 'map', [], ($$3 = function(arg){var self = $$3.$$s == null ? this : $$3.$$s; + stringified_parameters = $send(self.args, 'map', [], function $$1(arg){var self = $$1.$$s == null ? this : $$1.$$s; - if (arg == null) { - arg = nil; - }; - return $send(self, 'public_send', ["" + "on_" + (arg.$type())].concat(Opal.to_a(arg)));}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - return "" + "[" + (stringified_parameters.$compact().$join(", ")) + "]"; - }, $Parameters_to_code$2.$$arity = 0); + if (arg == null) arg = nil;; + return $send(self, 'public_send', ["on_" + (arg.$type())].concat($to_a(arg)));}, {$$arity: 1, $$s: self}); + return "[" + (stringified_parameters.$compact().$join(", ")) + "]"; + }, 0); - Opal.def(self, '$on_arg', $Parameters_on_arg$4 = function $$on_arg(arg_name) { - var self = this; - - return "" + "['req', '" + (arg_name) + "']" - }, $Parameters_on_arg$4.$$arity = 1); + $def(self, '$on_arg', function $$on_arg(arg_name) { + + return "['req', '" + (arg_name) + "']" + }, 1); - Opal.def(self, '$on_mlhs', $Parameters_on_mlhs$5 = function $$on_mlhs($a) { - var $post_args, self = this; + $def(self, '$on_mlhs', function $$on_mlhs($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return "['req']"; - }, $Parameters_on_mlhs$5.$$arity = -1); + }, -1); - Opal.def(self, '$on_optarg', $Parameters_on_optarg$6 = function $$on_optarg(arg_name, _default_value) { - var self = this; - - return "" + "['opt', '" + (arg_name) + "']" - }, $Parameters_on_optarg$6.$$arity = 2); + $def(self, '$on_optarg', function $$on_optarg(arg_name, _default_value) { + + return "['opt', '" + (arg_name) + "']" + }, 2); - Opal.def(self, '$on_restarg', $Parameters_on_restarg$7 = function $$on_restarg(arg_name) { - var self = this; - + $def(self, '$on_restarg', function $$on_restarg(arg_name) { - if (arg_name == null) { - arg_name = nil; - }; + + if (arg_name == null) arg_name = nil;; if ($truthy(arg_name)) { - if (arg_name['$==']("fwd_rest_arg")) { - arg_name = "*"}; - return "" + "['rest', '" + (arg_name) + "']"; + if ($eqeq(arg_name, "fwd_rest_arg")) { + arg_name = "*" + }; + return "['rest', '" + (arg_name) + "']"; } else { return "['rest']" }; - }, $Parameters_on_restarg$7.$$arity = -1); + }, -1); - Opal.def(self, '$on_kwarg', $Parameters_on_kwarg$8 = function $$on_kwarg(arg_name) { - var self = this; - - return "" + "['keyreq', '" + (arg_name) + "']" - }, $Parameters_on_kwarg$8.$$arity = 1); + $def(self, '$on_kwarg', function $$on_kwarg(arg_name) { + + return "['keyreq', '" + (arg_name) + "']" + }, 1); - Opal.def(self, '$on_kwoptarg', $Parameters_on_kwoptarg$9 = function $$on_kwoptarg(arg_name, _default_value) { - var self = this; - - return "" + "['key', '" + (arg_name) + "']" - }, $Parameters_on_kwoptarg$9.$$arity = 2); + $def(self, '$on_kwoptarg', function $$on_kwoptarg(arg_name, _default_value) { + + return "['key', '" + (arg_name) + "']" + }, 2); - Opal.def(self, '$on_kwrestarg', $Parameters_on_kwrestarg$10 = function $$on_kwrestarg(arg_name) { - var self = this; - + $def(self, '$on_kwrestarg', function $$on_kwrestarg(arg_name) { - if (arg_name == null) { - arg_name = nil; - }; + + if (arg_name == null) arg_name = nil;; if ($truthy(arg_name)) { - return "" + "['keyrest', '" + (arg_name) + "']" + return "['keyrest', '" + (arg_name) + "']" } else { return "['keyrest']" }; - }, $Parameters_on_kwrestarg$10.$$arity = -1); + }, -1); - Opal.def(self, '$on_blockarg', $Parameters_on_blockarg$11 = function $$on_blockarg(arg_name) { - var self = this; - + $def(self, '$on_blockarg', function $$on_blockarg(arg_name) { - if (arg_name['$==']("fwd_block_arg")) { - arg_name = "&"}; - return "" + "['block', '" + (arg_name) + "']"; - }, $Parameters_on_blockarg$11.$$arity = 1); + + if ($eqeq(arg_name, "fwd_block_arg")) { + arg_name = "&" + }; + return "['block', '" + (arg_name) + "']"; + }, 1); - Opal.def(self, '$on_kwnilarg', $Parameters_on_kwnilarg$12 = function $$on_kwnilarg() { - var self = this; - + $def(self, '$on_kwnilarg', function $$on_kwnilarg() { + return "['nokey']" - }, $Parameters_on_kwnilarg$12.$$arity = 0); - return (Opal.def(self, '$on_shadowarg', $Parameters_on_shadowarg$13 = function $$on_shadowarg(_arg_name) { - var self = this; - + }, 0); + return $def(self, '$on_shadowarg', function $$on_shadowarg(_arg_name) { + return nil - }, $Parameters_on_shadowarg$13.$$arity = 1), nil) && 'on_shadowarg'; - })($nesting[0], null, $nesting) + }, 1); + })($nesting[0], null) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args/prepare_post_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/prepare_post_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$line', '$offset']); + Opal.add_stubs('require,handle,children,add_temp,==,offset,line'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -35941,43 +32852,36 @@ Opal.modules["opal/nodes/args/prepare_post_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Args'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'PreparePostArgs'); - var $nesting = [self].concat($parent_nesting), $PreparePostArgs_compile$1; - + self.$handle("prepare_post_args"); self.$children("offset"); - return (Opal.def(self, '$compile', $PreparePostArgs_compile$1 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$add_temp("$post_args"); - return self.$line("" + "$post_args = Opal.slice.call(arguments, " + (self.$offset()) + ", arguments.length)"); - }, $PreparePostArgs_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + if ($eqeq(self.$offset(), 0)) { + return self.$line("$post_args = Opal.slice.call(arguments)") + } else { + return self.$line("$post_args = Opal.slice.call(arguments, " + (self.$offset()) + ")") + }; + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/args"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt, $neqeq = Opal.neqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$each_with_index', '$children', '$multiple_underscore?', '$[]', '$[]=', '$-', '$+', '$>', '$s', '$type', '$!=', '$push', '$process', '$==', '$count', '$start_with?', '$to_s', '$first']); + Opal.add_stubs('require,handle,each_with_index,children,multiple_underscore?,[],[]=,-,+,>,s,type,!=,push,process,==,count,start_with?,to_s,first'); self.$require("opal/nodes/base"); self.$require("opal/nodes/args/arg"); @@ -36005,32 +32909,27 @@ Opal.modules["opal/nodes/args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ArgsNode'); - var $nesting = [self].concat($parent_nesting), $ArgsNode_compile$1, $ArgsNode_multiple_underscore$ques$3; - + self.$handle("args"); - Opal.def(self, '$compile', $ArgsNode_compile$1 = function $$compile() { - var $$2, self = this, same_arg_counter = nil; + $def(self, '$compile', function $$compile() { + var self = this, same_arg_counter = nil; same_arg_counter = $hash2([], {}); - return $send(self.$children(), 'each_with_index', [], ($$2 = function(arg, idx){var self = $$2.$$s == null ? this : $$2.$$s, $ret_or_1 = nil, $writer = nil; + return $send(self.$children(), 'each_with_index', [], function $$1(arg, idx){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil, $writer = nil; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; - if (idx == null) { - idx = nil; - }; + if (idx == null) idx = nil;; if ($truthy(self['$multiple_underscore?'](arg))) { if ($truthy(($ret_or_1 = same_arg_counter['$[]'](arg)))) { @@ -36038,46 +32937,40 @@ Opal.modules["opal/nodes/args"] = function(Opal) { } else { $writer = [arg, 0]; - $send(same_arg_counter, '[]=', Opal.to_a($writer)); + $send(same_arg_counter, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; $writer = [arg, $rb_plus(same_arg_counter['$[]'](arg), 1)]; - $send(same_arg_counter, '[]=', Opal.to_a($writer)); + $send(same_arg_counter, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy($rb_gt(same_arg_counter['$[]'](arg), 1))) { - arg = self.$s(arg.$type(), "" + (arg.$children()['$[]'](0)) + "_$" + (same_arg_counter['$[]'](arg)))};}; - if ($truthy(idx['$!='](0))) { - self.$push(", ")}; - return self.$push(self.$process(arg));}, $$2.$$s = self, $$2.$$arity = 2, $$2)); - }, $ArgsNode_compile$1.$$arity = 0); - return (Opal.def(self, '$multiple_underscore?', $ArgsNode_multiple_underscore$ques$3 = function(arg) { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; - - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = arg.$type()['$==']("arg")))) { - return arg.$children().$count()['$=='](1) - } else { - return $ret_or_4 - }; return nil; })()))) { - return arg.$children().$first().$to_s()['$start_with?']("_") - } else { - return $ret_or_3 - }; return nil; })()))) { + arg = self.$s(arg.$type(), "" + (arg.$children()['$[]'](0)) + "_$" + (same_arg_counter['$[]'](arg))) + }; + }; + if ($neqeq(idx, 0)) { + self.$push(", ") + }; + return self.$push(self.$process(arg));}, {$$arity: 2, $$s: self}); + }, 0); + return $def(self, '$multiple_underscore?', function $ArgsNode_multiple_underscore$ques$2(arg) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = arg.$type()['$==']("arg"))) ? (arg.$children().$count()['$=='](1)) : ($ret_or_3)))) ? (arg.$children().$first().$to_s()['$start_with?']("_")) : ($ret_or_2))))) { return $rb_gt(self.$children().$count(arg), 1) } else { - return $ret_or_2 + return $ret_or_1 } - }, $ArgsNode_multiple_underscore$ques$3.$$arity = 1), nil) && 'multiple_underscore?'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/node_with_args"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; +Opal.modules["opal/nodes/node_with_args"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $def = Opal.def, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$attr_reader', '$attr_accessor', '$[]', '$meta', '$s', '$original_args', '$push', '$process', '$arity_check_node', '$uses_block?', '$scope', '$identity', '$block_name', '$add_temp', '$line', '$to_code', '$new']); + Opal.add_stubs('require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new'); self.$require("opal/nodes/scope"); self.$require("opal/nodes/args/parameters"); @@ -36089,85 +32982,69 @@ Opal.modules["opal/nodes/node_with_args"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'NodeWithArgs'); - var $nesting = [self].concat($parent_nesting), $NodeWithArgs_initialize$1, $NodeWithArgs_arity_check_node$2, $NodeWithArgs_compile_arity_check$3, $NodeWithArgs_compile_block_arg$4, $NodeWithArgs_parameters_code$5; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.sexp = nil; self.$attr_reader("used_kwargs"); self.$attr_accessor("arity"); self.$attr_reader("original_args"); - Opal.def(self, '$initialize', $NodeWithArgs_initialize$1 = function $$initialize($a) { - var $post_args, $iter = $NodeWithArgs_initialize$1.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $NodeWithArgs_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $NodeWithArgs_initialize$1, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); self.original_args = self.sexp.$meta()['$[]']("original_args"); self.used_kwargs = []; return (self.arity = 0); - }, $NodeWithArgs_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$arity_check_node', $NodeWithArgs_arity_check_node$2 = function $$arity_check_node() { + $def(self, '$arity_check_node', function $$arity_check_node() { var self = this; return self.$s("arity_check", self.$original_args()) - }, $NodeWithArgs_arity_check_node$2.$$arity = 0); + }, 0); - Opal.def(self, '$compile_arity_check', $NodeWithArgs_compile_arity_check$3 = function $$compile_arity_check() { + $def(self, '$compile_arity_check', function $$compile_arity_check() { var self = this; return self.$push(self.$process(self.$arity_check_node())) - }, $NodeWithArgs_compile_arity_check$3.$$arity = 0); + }, 0); - Opal.def(self, '$compile_block_arg', $NodeWithArgs_compile_block_arg$4 = function $$compile_block_arg() { - var self = this, scope_name = nil, yielder = nil, $ret_or_1 = nil; + $def(self, '$compile_block_arg', function $$compile_block_arg() { + var self = this; if ($truthy(self.$scope()['$uses_block?']())) { - - scope_name = self.$scope().$identity(); - yielder = (function() {if ($truthy(($ret_or_1 = self.$scope().$block_name()))) { - return $ret_or_1 - } else { - return "$yield" - }; return nil; })(); - self.$add_temp("" + "$iter = " + (scope_name) + ".$$p"); - self.$add_temp("" + (yielder) + " = $iter || nil"); - return self.$line("" + "if ($iter) " + (scope_name) + ".$$p = null;"); + return self.$scope().$prepare_block() } else { return nil } - }, $NodeWithArgs_compile_block_arg$4.$$arity = 0); - return (Opal.def(self, '$parameters_code', $NodeWithArgs_parameters_code$5 = function $$parameters_code() { + }, 0); + return $def(self, '$parameters_code', function $$parameters_code() { var self = this; - return $$$($$($nesting, 'Args'), 'Parameters').$new(self.$original_args()).$to_code() - }, $NodeWithArgs_parameters_code$5.$$arity = 0), nil) && 'parameters_code'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + return $$$($$('Args'), 'Parameters').$new(self.$original_args()).$to_code() + }, 0); + })($nesting[0], $$('ScopeNode'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/iter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/iter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $eqeq = Opal.eqeq, $rb_gt = Opal.rb_gt, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$lambda_definition?', '$scope', '$is_lambda!', '$in_scope', '$identify!', '$add_temp', '$process', '$inline_args', '$compile_arity_check', '$stmt', '$returned_body', '$to_vars', '$line', '$catch_return', '$unshift', '$push', '$contains_break?', '$arity', '$arity_check?', '$compiler', '$parameters_code', '$has_top_level_mlhs_arg?', '$has_trailing_comma_in_args?', '$block_arg', '$block_name=', '$-', '$each', '$args', '$first', '$==', '$<<', '$updated', '$body', '$returns', '$s', '$any?', '$original_args', '$type', '$loc', '$expression', '$source', '$match', '$new', '$found_break?']); + Opal.add_stubs('require,handle,children,lambda_definition?,scope,is_lambda!,in_scope,identify!,process,inline_args,compile_arity_check,stmt,returned_body,add_temp,to_vars,line,catch_return,unshift,push,await_encountered,<<,arity,self,contains_break?,arity_check?,compiler,parameters_code,has_top_level_mlhs_arg?,has_trailing_comma_in_args?,==,length,>,join,nesting,relative_access,block_arg,prepare_block,each,args,first,updated,body,returns,s,any?,original_args,type,expression,loc,source,match,new,found_break?'); self.$require("opal/nodes/node_with_args"); self.$require("opal/rewriters/break_finder"); @@ -36179,34 +33056,38 @@ Opal.modules["opal/nodes/iter"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'IterNode'); - var $nesting = [self].concat($parent_nesting), $IterNode_compile$1, $IterNode_compile_block_arg$3, $IterNode_extract_underscore_args$4, $IterNode_returned_body$6, $IterNode_has_top_level_mlhs_arg$ques$7, $IterNode_has_trailing_comma_in_args$ques$9, $IterNode_arity_check_node$10, $IterNode_contains_break$ques$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.sexp = nil; + $proto.define_self = $proto.define_nesting = $proto.define_relative_access = $proto.sexp = nil; self.$handle("iter"); self.$children("inline_args", "body"); - Opal.def(self, '$compile', $IterNode_compile$1 = function $$compile() { - var $$2, self = this, inline_params = nil, to_vars = nil, identity = nil, body_code = nil; + $def(self, '$compile', function $$compile() { + var self = this, inline_params = nil, to_vars = nil, identity = nil, body_code = nil, blockopts = nil; if ($truthy(self.$scope()['$lambda_definition?']())) { - self['$is_lambda!']()}; + self['$is_lambda!']() + }; inline_params = nil; to_vars = (identity = (body_code = nil)); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; + if (self.define_self == null) self.define_self = nil; identity = self.$scope()['$identify!'](); - self.$add_temp("" + "self = " + (identity) + ".$$s == null ? this : " + (identity) + ".$$s"); inline_params = self.$process(self.$inline_args()); self.$compile_arity_check(); body_code = self.$stmt(self.$returned_body()); + if ($truthy(self.define_self)) { + self.$add_temp("self = " + (identity) + ".$$s == null ? this : " + (identity) + ".$$s") + }; to_vars = self.$scope().$to_vars(); self.$line(body_code); if ($truthy(self.$scope().$catch_return())) { @@ -36216,55 +33097,69 @@ Opal.modules["opal/nodes/iter"] = function(Opal) { return self.$push(" throw $returner; }"); } else { return nil - };}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + };}, {$$arity: 0, $$s: self}); self.$unshift(to_vars); - self.$unshift("" + "(" + (identity) + " = function(", inline_params, "){"); - self.$push("" + "}, " + (identity) + ".$$s = self,"); + if ($truthy(self.$await_encountered())) { + self.$unshift("async function " + (identity) + "(", inline_params, "){") + } else { + self.$unshift("function " + (identity) + "(", inline_params, "){") + }; + self.$push("}"); + blockopts = []; + blockopts['$<<']("$$arity: " + (self.$arity())); + if ($truthy(self.define_self)) { + blockopts['$<<']("$$s: " + (self.$scope().$self())) + }; if ($truthy(self['$contains_break?']())) { - self.$push("" + " " + (identity) + ".$$brk = $brk,")}; - self.$push("" + " " + (identity) + ".$$arity = " + (self.$arity()) + ","); + blockopts['$<<']("$$brk: $brk") + }; if ($truthy(self.$compiler()['$arity_check?']())) { - self.$push("" + " " + (identity) + ".$$parameters = " + (self.$parameters_code()) + ",")}; + blockopts['$<<']("$$parameters: " + (self.$parameters_code())) + }; if ($truthy(self['$has_top_level_mlhs_arg?']())) { - self.$push("" + " " + (identity) + ".$$has_top_level_mlhs_arg = true,")}; + blockopts['$<<']("$$has_top_level_mlhs_arg: true") + }; if ($truthy(self['$has_trailing_comma_in_args?']())) { - self.$push("" + " " + (identity) + ".$$has_trailing_comma_in_args = true,")}; - return self.$push("" + " " + (identity) + ")"); - }, $IterNode_compile$1.$$arity = 0); + blockopts['$<<']("$$has_trailing_comma_in_args: true") + }; + if ($eqeq(blockopts.$length(), 1)) { + self.$push(", " + (self.$arity())) + } else if ($truthy($rb_gt(blockopts.$length(), 1))) { + self.$push(", {", blockopts.$join(", "), "}") + }; + if ($truthy(self.define_nesting)) { + self.$scope().$nesting() + }; + if ($truthy(self.define_relative_access)) { + return self.$scope().$relative_access() + } else { + return nil + }; + }, 0); - Opal.def(self, '$compile_block_arg', $IterNode_compile_block_arg$3 = function $$compile_block_arg() { - var self = this, $writer = nil, scope_name = nil; + $def(self, '$compile_block_arg', function $$compile_block_arg() { + var self = this; if ($truthy(self.$block_arg())) { - - - $writer = [self.$block_arg()]; - $send(self.$scope(), 'block_name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.$scope().$add_temp(self.$block_arg()); - scope_name = self.$scope()['$identify!'](); - self.$line("" + (self.$block_arg()) + " = " + (scope_name) + ".$$p || nil;"); - return self.$line("" + "if (" + (self.$block_arg()) + ") " + (scope_name) + ".$$p = null;"); + return self.$scope().$prepare_block() } else { return nil } - }, $IterNode_compile_block_arg$3.$$arity = 0); + }, 0); - Opal.def(self, '$extract_underscore_args', $IterNode_extract_underscore_args$4 = function $$extract_underscore_args() { - var $$5, self = this, valid_args = nil, caught_blank_argument = nil; + $def(self, '$extract_underscore_args', function $$extract_underscore_args() { + var self = this, valid_args = nil, caught_blank_argument = nil; valid_args = []; caught_blank_argument = false; - $send(self.$args().$children(), 'each', [], ($$5 = function(arg){var self = $$5.$$s == null ? this : $$5.$$s, arg_name = nil; + $send(self.$args().$children(), 'each', [], function $$2(arg){var arg_name = nil; - if (arg == null) { - arg = nil; - }; + if (arg == null) arg = nil;; arg_name = arg.$children().$first(); - if (arg_name['$==']("_")) { + if ($eqeq(arg_name, "_")) { if ($truthy(caught_blank_argument)) { return nil } else { @@ -36274,78 +33169,60 @@ Opal.modules["opal/nodes/iter"] = function(Opal) { } } else { return valid_args['$<<'](arg) - };}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + };}, 1); return (self.sexp = self.sexp.$updated(nil, [self.$args().$updated(nil, valid_args), self.$body()])); - }, $IterNode_extract_underscore_args$4.$$arity = 0); + }, 0); - Opal.def(self, '$returned_body', $IterNode_returned_body$6 = function $$returned_body() { + $def(self, '$returned_body', function $$returned_body() { var self = this, $ret_or_1 = nil; - return self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$body()))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })()) - }, $IterNode_returned_body$6.$$arity = 0); + return self.$compiler().$returns(($truthy(($ret_or_1 = self.$body())) ? ($ret_or_1) : (self.$s("nil")))) + }, 0); - Opal.def(self, '$has_top_level_mlhs_arg?', $IterNode_has_top_level_mlhs_arg$ques$7 = function() { - var $$8, self = this; - - return $send(self.$original_args().$children(), 'any?', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; + $def(self, '$has_top_level_mlhs_arg?', function $IterNode_has_top_level_mlhs_arg$ques$3() { + var self = this; + return $send(self.$original_args().$children(), 'any?', [], function $$4(arg){ - if (arg == null) { - arg = nil; - }; - return arg.$type()['$==']("mlhs");}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - }, $IterNode_has_top_level_mlhs_arg$ques$7.$$arity = 0); + if (arg == null) arg = nil;; + return arg.$type()['$==']("mlhs");}, 1) + }, 0); - Opal.def(self, '$has_trailing_comma_in_args?', $IterNode_has_trailing_comma_in_args$ques$9 = function() { - var self = this, $ret_or_2 = nil, args_source = nil; + $def(self, '$has_trailing_comma_in_args?', function $IterNode_has_trailing_comma_in_args$ques$5() { + var self = this, args_source = nil; - if ($truthy((function() {if ($truthy(($ret_or_2 = self.$original_args().$loc()))) { - return self.$original_args().$loc().$expression() - } else { - return $ret_or_2 - }; return nil; })())) { + if (($truthy(self.$original_args().$loc()) && ($truthy(self.$original_args().$loc().$expression())))) { args_source = self.$original_args().$loc().$expression().$source(); return args_source.$match(/,\s*\|/); } else { return nil } - }, $IterNode_has_trailing_comma_in_args$ques$9.$$arity = 0); + }, 0); - Opal.def(self, '$arity_check_node', $IterNode_arity_check_node$10 = function $$arity_check_node() { + $def(self, '$arity_check_node', function $$arity_check_node() { var self = this; return self.$s("iter_arity_check", self.$original_args()) - }, $IterNode_arity_check_node$10.$$arity = 0); - return (Opal.def(self, '$contains_break?', $IterNode_contains_break$ques$11 = function() { + }, 0); + return $def(self, '$contains_break?', function $IterNode_contains_break$ques$6() { var self = this, finder = nil; - finder = $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'BreakFinder').$new(); + finder = $$$($$$($$('Opal'), 'Rewriters'), 'BreakFinder').$new(); finder.$process(self.sexp); return finder['$found_break?'](); - }, $IterNode_contains_break$ques$11.$$arity = 0), nil) && 'contains_break?'; - })($nesting[0], $$($nesting, 'NodeWithArgs'), $nesting) + }, 0); + })($nesting[0], $$('NodeWithArgs'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/def"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/def"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $def = Opal.def, $rb_plus = Opal.rb_plus; - Opal.add_stubs(['$require', '$handle', '$children', '$in_scope', '$mid', '$mid=', '$scope', '$-', '$==', '$type', '$defs=', '$identify!', '$identity', '$block_name=', '$process', '$inline_args', '$stmt', '$returns', '$compiler', '$stmts', '$compile_block_arg', '$add_temp', '$compile_arity_check', '$uses_zuper', '$prepare_super', '$unshift', '$current_indent', '$to_vars', '$line', '$catch_return', '$push', '$valid_name?', '$arity', '$arity_check?', '$parameters_code', '$parse_comments?', '$comments_code', '$enable_source_location?', '$source_location', '$wrap_with_definition', '$wrap', '$expr?', '$+', '$join', '$map', '$comments', '$inspect', '$text', '$add_local']); + Opal.add_stubs('require,handle,children,in_scope,mid,mid=,scope,-,==,type,defs=,identify!,identity,block_name=,process,inline_args,stmt,returns,compiler,stmts,compile_block_arg,add_temp,compile_arity_check,unshift,current_indent,to_vars,line,catch_return,push,await_encountered,<<,arity,arity_check?,parameters_code,parse_comments?,comments_code,enable_source_location?,source_location,length,>,join,wrap_with_definition,nesting,relative_access,helper,wrap,self,expr?,+,map,comments,inspect,text'); self.$require("opal/nodes/node_with_args"); return (function($base, $parent_nesting) { @@ -36356,50 +33233,53 @@ Opal.modules["opal/nodes/def"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DefNode'); - var $nesting = [self].concat($parent_nesting), $DefNode_compile$1, $DefNode_wrap_with_definition$3, $DefNode_comments_code$4, $DefNode_prepare_super$6; + var $proto = self.$$prototype; + $proto.define_nesting = $proto.define_relative_access = nil; self.$handle("def"); self.$children("mid", "inline_args", "stmts"); - Opal.def(self, '$compile', $DefNode_compile$1 = function $$compile() { - var $$2, self = this, inline_params = nil, scope_name = nil, function_name = nil; + $def(self, '$compile', function $$compile() { + var self = this, inline_params = nil, scope_name = nil, blockopts = nil; inline_params = nil; scope_name = nil; - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil, stmt_code = nil; + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil, stmt_code = nil; if (self.sexp == null) self.sexp = nil; + if (self.define_self == null) self.define_self = nil; $writer = [self.$mid()]; - $send(self.$scope(), 'mid=', Opal.to_a($writer)); + $send(self.$scope(), 'mid=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if (self.sexp.$type()['$==']("defs")) { + if ($eqeq(self.sexp.$type(), "defs")) { $writer = [true]; - $send(self.$scope(), 'defs=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(self.$scope(), 'defs=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; self.$scope()['$identify!'](); scope_name = self.$scope().$identity(); $writer = ["$yield"]; - $send(self.$scope(), 'block_name=', Opal.to_a($writer)); + $send(self.$scope(), 'block_name=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; inline_params = self.$process(self.$inline_args()); stmt_code = self.$stmt(self.$compiler().$returns(self.$stmts())); self.$compile_block_arg(); - self.$add_temp("self = this"); + if ($truthy(self.define_self)) { + self.$add_temp("self = this") + }; self.$compile_arity_check(); - if ($truthy(self.$scope().$uses_zuper())) { - self.$prepare_super()}; - self.$unshift("" + "\n" + (self.$current_indent()), self.$scope().$to_vars()); + self.$unshift("\n" + (self.$current_indent()), self.$scope().$to_vars()); self.$line(stmt_code); if ($truthy(self.$scope().$catch_return())) { @@ -36408,74 +33288,71 @@ Opal.modules["opal/nodes/def"] = function(Opal) { return self.$push(" throw $returner; }"); } else { return nil - };}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - function_name = (function() {if ($truthy(self['$valid_name?'](self.$mid()))) { - return "" + " $$" + (self.$mid()) - } else { - return "" - }; return nil; })(); + };}, {$$arity: 0, $$s: self}); self.$unshift(") {"); self.$unshift(inline_params); - self.$unshift("" + "function" + (function_name) + "("); - if ($truthy(scope_name)) { - self.$unshift("" + (scope_name) + " = ")}; + self.$unshift("function " + (scope_name) + "("); + if ($truthy(self.$await_encountered())) { + self.$unshift("async ") + }; self.$line("}"); - self.$push("" + ", " + (scope_name) + ".$$arity = " + (self.$arity())); + blockopts = []; + blockopts['$<<']("$$arity: " + (self.$arity())); if ($truthy(self.$compiler()['$arity_check?']())) { - self.$push("" + ", " + (scope_name) + ".$$parameters = " + (self.$parameters_code()))}; + blockopts['$<<']("$$parameters: " + (self.$parameters_code())) + }; if ($truthy(self.$compiler()['$parse_comments?']())) { - self.$push("" + ", " + (scope_name) + ".$$comments = " + (self.$comments_code()))}; + blockopts['$<<']("$$comments: " + (self.$comments_code())) + }; if ($truthy(self.$compiler()['$enable_source_location?']())) { - self.$push("" + ", " + (scope_name) + ".$$source_location = " + (self.$source_location()))}; - return self.$wrap_with_definition(); - }, $DefNode_compile$1.$$arity = 0); + blockopts['$<<']("$$source_location: " + (self.$source_location())) + }; + if ($eqeq(blockopts.$length(), 1)) { + self.$push(", " + (self.$arity())) + } else if ($truthy($rb_gt(blockopts.$length(), 1))) { + self.$push(", {", blockopts.$join(", "), "}") + }; + self.$wrap_with_definition(); + if ($truthy(self.define_nesting)) { + self.$scope().$nesting() + }; + if ($truthy(self.define_relative_access)) { + return self.$scope().$relative_access() + } else { + return nil + }; + }, 0); - Opal.def(self, '$wrap_with_definition', $DefNode_wrap_with_definition$3 = function $$wrap_with_definition() { + $def(self, '$wrap_with_definition', function $$wrap_with_definition() { var self = this; - self.$wrap("" + "Opal.def(self, '$" + (self.$mid()) + "', ", ")"); + self.$helper("def"); + self.$wrap("$def(" + (self.$scope().$self()) + ", '$" + (self.$mid()) + "', ", ")"); if ($truthy(self['$expr?']())) { - return self.$wrap("(", "" + ", nil) && '" + (self.$mid()) + "'") + return nil } else { - return self.$unshift("" + "\n" + (self.$current_indent())) + return self.$unshift("\n" + (self.$current_indent())) }; - }, $DefNode_wrap_with_definition$3.$$arity = 0); - - Opal.def(self, '$comments_code', $DefNode_comments_code$4 = function $$comments_code() { - var $$5, self = this; - - return $rb_plus($rb_plus("[", $send(self.$comments(), 'map', [], ($$5 = function(comment){var self = $$5.$$s == null ? this : $$5.$$s; + }, 0); + return $def(self, '$comments_code', function $$comments_code() { + var self = this; + return $rb_plus($rb_plus("[", $send(self.$comments(), 'map', [], function $$2(comment){ - if (comment == null) { - comment = nil; - }; - return comment.$text().$inspect();}, $$5.$$s = self, $$5.$$arity = 1, $$5)).$join(", ")), "]") - }, $DefNode_comments_code$4.$$arity = 0); - return (Opal.def(self, '$prepare_super', $DefNode_prepare_super$6 = function $$prepare_super() { - var self = this; - - - self.$add_local("$zuper"); - self.$add_local("$zuper_i"); - self.$add_local("$zuper_ii"); - self.$line("// Prepare super implicit arguments"); - self.$line("for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) {"); - self.$line(" $zuper[$zuper_i] = arguments[$zuper_i];"); - return self.$line("}"); - }, $DefNode_prepare_super$6.$$arity = 0), nil) && 'prepare_super'; - })($nesting[0], $$($nesting, 'NodeWithArgs'), $nesting) + if (comment == null) comment = nil;; + return comment.$text().$inspect();}, 1).$join(", ")), "]") + }, 0); + })($nesting[0], $$('NodeWithArgs')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/defs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/defs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$unshift', '$expr', '$recvr', '$mid', '$push', '$expr?', '$wrap']); + Opal.add_stubs('require,handle,children,helper,unshift,expr,recvr,mid,push'); self.$require("opal/nodes/def"); return (function($base, $parent_nesting) { @@ -36486,38 +33363,32 @@ Opal.modules["opal/nodes/defs"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DefsNode'); - var $nesting = [self].concat($parent_nesting), $DefsNode_wrap_with_definition$1; - + self.$handle("defs"); self.$children("recvr", "mid", "inline_args", "stmts"); - return (Opal.def(self, '$wrap_with_definition', $DefsNode_wrap_with_definition$1 = function $$wrap_with_definition() { + return $def(self, '$wrap_with_definition', function $$wrap_with_definition() { var self = this; - self.$unshift("Opal.defs(", self.$expr(self.$recvr()), "" + ", '$" + (self.$mid()) + "', "); - self.$push(")"); - if ($truthy(self['$expr?']())) { - return self.$wrap("(", "" + ", nil) && '" + (self.$mid()) + "'") - } else { - return nil - }; - }, $DefsNode_wrap_with_definition$1.$$arity = 0), nil) && 'wrap_with_definition'; - })($nesting[0], $$($nesting, 'DefNode'), $nesting) + self.$helper("defs"); + self.$unshift("$defs(", self.$expr(self.$recvr()), ", '$" + (self.$mid()) + "', "); + return self.$push(")"); + }, 0); + })($nesting[0], $$('DefNode')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/if"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/if"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def, $not = Opal.not, $send = Opal.send, $eqeqeq = Opal.eqeqeq; - Opal.add_stubs(['$require', '$handle', '$children', '$truthy', '$falsy', '$push', '$js_truthy', '$test', '$indent', '$line', '$stmt', '$==', '$type', '$needs_wrapper?', '$wrap', '$returns', '$compiler', '$true_body', '$s', '$false_body', '$expr?', '$recv?', '$helper', '$new_temp', '$top_scope', '$excl', '$from', '$to']); + Opal.add_stubs('require,handle,children,should_compile_as_simple_expression?,==,true_body,s,compile_with_binary_or,false_body,compile_with_binary_and,compile_with_ternary,compile_with_if,truthy,falsy,!,push,js_truthy,test,indent,line,stmt,type,expects_expression?,await_encountered,scope,wrap,returnify,returns,compiler,expr?,recv?,simple?,expr,[],meta,sexp,===,single_line?,strip_empty_children,all?,helper,new_temp,top_scope,excl,from,to'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -36528,152 +33399,244 @@ Opal.modules["opal/nodes/if"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'IfNode'); - var $nesting = [self].concat($parent_nesting), $IfNode_compile$1, $IfNode_truthy$4, $IfNode_falsy$5, $IfNode_needs_wrapper$ques$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("if"); self.$children("test", "true_body", "false_body"); - Opal.def(self, '$compile', $IfNode_compile$1 = function $$compile() { - var $$2, $$3, self = this, truthy = nil, falsy = nil; + $def(self, '$compile', function $$compile() { + var self = this; + + if ($truthy(self['$should_compile_as_simple_expression?']())) { + if ($eqeq(self.$true_body(), self.$s("true"))) { + return self.$compile_with_binary_or() + } else if ($eqeq(self.$false_body(), self.$s("false"))) { + return self.$compile_with_binary_and() + } else { + return self.$compile_with_ternary() + } + } else { + return self.$compile_with_if() + } + }, 0); + + $def(self, '$compile_with_if', function $$compile_with_if() { + var $a, self = this, truthy = nil, falsy = nil; truthy = self.$truthy(); falsy = self.$falsy(); - self.$push("if (", self.$js_truthy(self.$test()), ") {"); + if (($truthy(falsy) && ($not(truthy)))) { + + self.$push("if (!", self.$js_truthy(self.$test()), ") {"); + $a = [truthy, falsy], (falsy = $a[0]), (truthy = $a[1]), $a; + } else { + self.$push("if (", self.$js_truthy(self.$test()), ") {") + }; if ($truthy(truthy)) { - $send(self, 'indent', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + $send(self, 'indent', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$line(self.$stmt(truthy))}, $$2.$$s = self, $$2.$$arity = 0, $$2))}; + return self.$line(self.$stmt(truthy))}, {$$arity: 0, $$s: self}) + }; if ($truthy(falsy)) { - if (falsy.$type()['$==']("if")) { + if ($eqeq(falsy.$type(), "if")) { self.$line("} else ", self.$stmt(falsy)) } else { self.$line("} else {"); - $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; + $send(self, 'indent', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$line(self.$stmt(falsy))}, $$3.$$s = self, $$3.$$arity = 0, $$3)); + return self.$line(self.$stmt(falsy))}, {$$arity: 0, $$s: self}); self.$line("}"); } } else { - self.$push("}") + + self.$line("}"); + if ($truthy(self['$expects_expression?']())) { + self.$line("return nil;") + }; }; - if ($truthy(self['$needs_wrapper?']())) { - return self.$wrap("(function() {", "; return nil; })()") + if ($truthy(self['$expects_expression?']())) { + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() {", "})())") + } else { + return self.$wrap("(function() {", "})()") + } } else { return nil }; - }, $IfNode_compile$1.$$arity = 0); + }, 0); + + $def(self, '$truthy', function $$truthy() { + var self = this; + + return self.$returnify(self.$true_body()) + }, 0); + + $def(self, '$falsy', function $$falsy() { + var self = this; + + return self.$returnify(self.$false_body()) + }, 0); - Opal.def(self, '$truthy', $IfNode_truthy$4 = function $$truthy() { + $def(self, '$returnify', function $$returnify(body) { + var self = this; + + if (($truthy(self['$expects_expression?']()) && ($truthy(body)))) { + return self.$compiler().$returns(body) + } else { + return body + } + }, 1); + + $def(self, '$expects_expression?', function $IfNode_expects_expression$ques$3() { var self = this, $ret_or_1 = nil; - if ($truthy(self['$needs_wrapper?']())) { - return self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$true_body()))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })()) + if ($truthy(($ret_or_1 = self['$expr?']()))) { + return $ret_or_1 } else { - return self.$true_body() + return self['$recv?']() } - }, $IfNode_truthy$4.$$arity = 0); + }, 0); - Opal.def(self, '$falsy', $IfNode_falsy$5 = function $$falsy() { - var self = this, $ret_or_2 = nil; + $def(self, '$should_compile_as_simple_expression?', function $IfNode_should_compile_as_simple_expression$ques$4() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(self['$needs_wrapper?']())) { - return self.$compiler().$returns((function() {if ($truthy(($ret_or_2 = self.$false_body()))) { - return $ret_or_2 - } else { - return self.$s("nil") - }; return nil; })()) + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self['$expects_expression?']())) ? (self['$simple?'](self.$true_body())) : ($ret_or_2))))) { + return self['$simple?'](self.$false_body()) } else { - return self.$false_body() + return $ret_or_1 } - }, $IfNode_falsy$5.$$arity = 0); - return (Opal.def(self, '$needs_wrapper?', $IfNode_needs_wrapper$ques$6 = function() { - var self = this, $ret_or_3 = nil; + }, 0); + + $def(self, '$compile_with_ternary', function $$compile_with_ternary() { + var self = this, truthy = nil, falsy = nil, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self['$expr?']()))) { - return $ret_or_3 + + truthy = self.$true_body(); + falsy = self.$false_body(); + self.$push("("); + self.$push(self.$js_truthy(self.$test()), " ? "); + self.$push("(", self.$expr(($truthy(($ret_or_1 = truthy)) ? ($ret_or_1) : (self.$s("nil")))), ") : "); + if (($not(falsy) || ($eqeq(falsy.$type(), "if")))) { + self.$push(self.$expr(($truthy(($ret_or_1 = falsy)) ? ($ret_or_1) : (self.$s("nil"))))) } else { - return self['$recv?']() + self.$push("(", self.$expr(($truthy(($ret_or_1 = falsy)) ? ($ret_or_1) : (self.$s("nil")))), ")") + }; + return self.$push(")"); + }, 0); + + $def(self, '$compile_with_binary_and', function $$compile_with_binary_and() { + var self = this, truthy = nil, $ret_or_1 = nil; + + + if ($truthy(self.$sexp().$meta()['$[]']("do_js_truthy_on_true_body"))) { + truthy = self.$js_truthy(($truthy(($ret_or_1 = self.$true_body())) ? ($ret_or_1) : (self.$s("nil")))) + } else { + truthy = self.$expr(($truthy(($ret_or_1 = self.$true_body())) ? ($ret_or_1) : (self.$s("nil")))) + }; + self.$push("("); + self.$push(self.$js_truthy(self.$test()), " && "); + self.$push("(", truthy, ")"); + return self.$push(")"); + }, 0); + + $def(self, '$compile_with_binary_or', function $$compile_with_binary_or() { + var self = this, falsy = nil, $ret_or_1 = nil; + + + if ($truthy(self.$sexp().$meta()['$[]']("do_js_truthy_on_false_body"))) { + falsy = self.$js_truthy(($truthy(($ret_or_1 = self.$false_body())) ? ($ret_or_1) : (self.$s("nil")))) + } else { + falsy = self.$expr(($truthy(($ret_or_1 = self.$false_body())) ? ($ret_or_1) : (self.$s("nil")))) + }; + self.$push("("); + self.$push(self.$js_truthy(self.$test()), " || "); + self.$push("(", falsy, ")"); + return self.$push(")"); + }, 0); + return $def(self, '$simple?', function $IfNode_simple$ques$5(body) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + if ($eqeqeq($$$($$('AST'), 'Node'), ($ret_or_1 = body))) { + if (($eqeqeq("return", ($ret_or_2 = body.$type())) || (($eqeqeq("js_return", $ret_or_2) || (($eqeqeq("break", $ret_or_2) || (($eqeqeq("next", $ret_or_2) || (($eqeqeq("redo", $ret_or_2) || ($eqeqeq("retry", $ret_or_2)))))))))))) { + return false + } else if ($eqeqeq("xstr", $ret_or_2)) { + return $$('XStringNode')['$single_line?']($$('XStringNode').$strip_empty_children(body.$children())) + } else { + return $send(body.$children(), 'all?', [], function $$6(i){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (i == null) i = nil;; + return self['$simple?'](i);}, {$$arity: 1, $$s: self}) + } + } else { + return true } - }, $IfNode_needs_wrapper$ques$6.$$arity = 0), nil) && 'needs_wrapper?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], $$('Base'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'IFlipFlop'); - var $nesting = [self].concat($parent_nesting), $IFlipFlop_excl$7, $IFlipFlop_compile$8; - + self.$handle("iflipflop"); self.$children("from", "to"); - Opal.def(self, '$excl', $IFlipFlop_excl$7 = function $$excl() { - var self = this; - + $def(self, '$excl', function $$excl() { + return "" - }, $IFlipFlop_excl$7.$$arity = 0); - return (Opal.def(self, '$compile', $IFlipFlop_compile$8 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this, fun_name = nil, ff = nil; self.$helper("truthy"); fun_name = self.$top_scope().$new_temp(); ff = "" + (fun_name) + ".$$ff"; - self.$push("" + "(typeof " + (fun_name) + " === 'undefined' ? (" + (fun_name) + " = function(from, to){"); - self.$push("" + " if (typeof " + (ff) + " === 'undefined') " + (ff) + " = false;"); - self.$push("" + " var retval = " + (ff) + ";"); - self.$push("" + " if (!" + (ff) + ") {"); - self.$push("" + " " + (ff) + " = retval = $truthy(from());"); + self.$push("(typeof " + (fun_name) + " === 'undefined' ? (" + (fun_name) + " = function(from, to){"); + self.$push(" if (typeof " + (ff) + " === 'undefined') " + (ff) + " = false;"); + self.$push(" var retval = " + (ff) + ";"); + self.$push(" if (!" + (ff) + ") {"); + self.$push(" " + (ff) + " = retval = $truthy(from());"); self.$push(" }"); - self.$push("" + " " + (self.$excl()) + "if (" + (ff) + ") {"); - self.$push("" + " if ($truthy(to())) " + (ff) + " = false;"); + self.$push(" " + (self.$excl()) + "if (" + (ff) + ") {"); + self.$push(" if ($truthy(to())) " + (ff) + " = false;"); self.$push(" }"); self.$push(" return retval;"); - self.$push("" + "}) : " + (fun_name) + ")("); + self.$push("}) : " + (fun_name) + ")("); self.$push(" function() { ", self.$stmt(self.$compiler().$returns(self.$from())), " },"); self.$push(" function() { ", self.$stmt(self.$compiler().$returns(self.$to())), " }"); return self.$push(")"); - }, $IFlipFlop_compile$8.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'EFlipFlop'); - var $nesting = [self].concat($parent_nesting), $EFlipFlop_excl$9; - + self.$handle("eflipflop"); - return (Opal.def(self, '$excl', $EFlipFlop_excl$9 = function $$excl() { - var self = this; - + return $def(self, '$excl', function $$excl() { + return "else " - }, $EFlipFlop_excl$9.$$arity = 0), nil) && 'excl'; - })($nesting[0], $$($nesting, 'IFlipFlop'), $nesting); + }, 0); + })($nesting[0], $$('IFlipFlop')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/logic"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$require', '$handle', '$in_while?', '$push', '$iter?', '$scope', '$expr_or_nil', '$value', '$error', '$size', '$children', '$===', '$s', '$first', '$compile_while', '$compile_iter', '$[]', '$while_loop', '$stmt?', '$line', '$break_val', '$nil?', '$expr', '$[]=', '$-', '$helper', '$identity', '$==', '$empty_splat?', '$recv', '$>', '$!', '$lambda?', '$find_parent_def', '$expr?', '$def?', '$return_in_iter?', '$return_expr_in_def?', '$scope_to_catch_return', '$catch_return=', '$return_val', '$to_s']); +Opal.modules["opal/nodes/logic"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt, $not = Opal.not; + + Opal.add_stubs('require,handle,in_while?,push,iter?,scope,expr_or_nil,value,error,===,size,children,s,first,compile_while,compile_iter,[],while_loop,stmt?,line,break_val,nil?,expr,[]=,-,helper,identity,==,empty_splat?,recv,>,find_parent_def,!,lambda?,def?,expr?,return_in_iter?,return_expr_in_def?,scope_to_catch_return,catch_return=,return_val,to_s'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -36684,18 +33647,17 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'NextNode'); - var $nesting = [self].concat($parent_nesting), $NextNode_compile$1, $NextNode_value$2; - + self.$handle("next"); - Opal.def(self, '$compile', $NextNode_compile$1 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { @@ -36705,26 +33667,28 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$error("Invalid next") } - }, $NextNode_compile$1.$$arity = 0); - return (Opal.def(self, '$value', $NextNode_value$2 = function $$value() { - var self = this, $case = nil; - - return (function() {$case = self.$children().$size(); - if ((0)['$===']($case)) {return self.$s("nil")} - else if ((1)['$===']($case)) {return self.$children().$first()} - else {return $send(self, 's', ["array"].concat(Opal.to_a(self.$children())))}})() - }, $NextNode_value$2.$$arity = 0), nil) && 'value'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'BreakNode'); + }, 0); + return $def(self, '$value', function $$value() { + var self = this, $ret_or_1 = nil; - var $nesting = [self].concat($parent_nesting), $BreakNode_compile$3, $BreakNode_compile_while$4, $BreakNode_compile_iter$5, $BreakNode_break_val$6; + if ($eqeqeq(0, ($ret_or_1 = self.$children().$size()))) { + return self.$s("nil") + } else if ($eqeqeq(1, $ret_or_1)) { + return self.$children().$first() + } else { + return $send(self, 's', ["array"].concat($to_a(self.$children()))) + } + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { + var self = $klass($base, $super, 'BreakNode'); + self.$handle("break"); self.$children("value"); - Opal.def(self, '$compile', $BreakNode_compile$3 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { @@ -36734,9 +33698,9 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$error("void value expression: cannot use break outside of iter/while") } - }, $BreakNode_compile$3.$$arity = 0); + }, 0); - Opal.def(self, '$compile_while', $BreakNode_compile_while$4 = function $$compile_while() { + $def(self, '$compile_while', function $$compile_while() { var self = this; if ($truthy(self.$while_loop()['$[]']("closure"))) { @@ -36744,19 +33708,18 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$push("break;") } - }, $BreakNode_compile_while$4.$$arity = 0); + }, 0); - Opal.def(self, '$compile_iter', $BreakNode_compile_iter$5 = function $$compile_iter() { + $def(self, '$compile_iter', function $$compile_iter() { var self = this; - if ($truthy(self['$stmt?']())) { - } else { + if (!$truthy(self['$stmt?']())) { self.$error("break must be used as a statement") }; return self.$line("Opal.brk(", self.$break_val(), ", $brk)"); - }, $BreakNode_compile_iter$5.$$arity = 0); - return (Opal.def(self, '$break_val', $BreakNode_break_val$6 = function $$break_val() { + }, 0); + return $def(self, '$break_val', function $$break_val() { var self = this; if ($truthy(self.$value()['$nil?']())) { @@ -36764,17 +33727,16 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$expr(self.$value()) } - }, $BreakNode_break_val$6.$$arity = 0), nil) && 'break_val'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'RedoNode'); - var $nesting = [self].concat($parent_nesting), $RedoNode_compile$7, $RedoNode_compile_while$8, $RedoNode_compile_iter$9; - + self.$handle("redo"); - Opal.def(self, '$compile', $RedoNode_compile$7 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { @@ -36784,125 +33746,108 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$push("REDO()") } - }, $RedoNode_compile$7.$$arity = 0); + }, 0); - Opal.def(self, '$compile_while', $RedoNode_compile_while$8 = function $$compile_while() { + $def(self, '$compile_while', function $$compile_while() { var self = this, $writer = nil; $writer = ["use_redo", true]; - $send(self.$while_loop(), '[]=', Opal.to_a($writer)); + $send(self.$while_loop(), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$push("" + (self.$while_loop()['$[]']("redo_var")) + " = true; continue;"); - }, $RedoNode_compile_while$8.$$arity = 0); - return (Opal.def(self, '$compile_iter', $RedoNode_compile_iter$9 = function $$compile_iter() { + }, 0); + return $def(self, '$compile_iter', function $$compile_iter() { var self = this; self.$helper("slice"); - return self.$push("" + "return " + (self.$scope().$identity()) + ".apply(null, $slice.call(arguments))"); - }, $RedoNode_compile_iter$9.$$arity = 0), nil) && 'compile_iter'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + return self.$push("return " + (self.$scope().$identity()) + ".apply(null, $slice.call(arguments))"); + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'SplatNode'); - var $nesting = [self].concat($parent_nesting), $SplatNode_empty_splat$ques$10, $SplatNode_compile$11; - + self.$handle("splat"); self.$children("value"); - Opal.def(self, '$empty_splat?', $SplatNode_empty_splat$ques$10 = function() { + $def(self, '$empty_splat?', function $SplatNode_empty_splat$ques$1() { var self = this; return self.$value()['$=='](self.$s("array")) - }, $SplatNode_empty_splat$ques$10.$$arity = 0); - return (Opal.def(self, '$compile', $SplatNode_compile$11 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self['$empty_splat?']())) { return self.$push("[]") } else { - return self.$push("Opal.to_a(", self.$recv(self.$value()), ")") + + self.$helper("to_a"); + return self.$push("$to_a(", self.$recv(self.$value()), ")"); } - }, $SplatNode_compile$11.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'ReturnNode'); - var $nesting = [self].concat($parent_nesting), $ReturnNode_return_val$12, $ReturnNode_return_in_iter$ques$13, $ReturnNode_return_expr_in_def$ques$14, $ReturnNode_scope_to_catch_return$15, $ReturnNode_compile$16; - + self.$handle("return"); self.$children("value"); - Opal.def(self, '$return_val', $ReturnNode_return_val$12 = function $$return_val() { + $def(self, '$return_val', function $$return_val() { var self = this; if ($truthy(self.$value()['$nil?']())) { return self.$expr(self.$s("nil")) } else if ($truthy($rb_gt(self.$children().$size(), 1))) { - return self.$expr($send(self, 's', ["array"].concat(Opal.to_a(self.$children())))) + return self.$expr($send(self, 's', ["array"].concat($to_a(self.$children())))) } else { return self.$expr(self.$value()) } - }, $ReturnNode_return_val$12.$$arity = 0); + }, 0); - Opal.def(self, '$return_in_iter?', $ReturnNode_return_in_iter$ques$13 = function() { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, parent_def = nil; + $def(self, '$return_in_iter?', function $ReturnNode_return_in_iter$ques$2() { + var self = this, parent_def = nil; - if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$scope()['$iter?']()))) { - return self.$scope()['$lambda?']()['$!']() - } else { - return $ret_or_2 - }; return nil; })()))) { - return (parent_def = self.$scope().$find_parent_def()) - } else { - return $ret_or_1 - }; return nil; })())) { + if ((($truthy(self.$scope()['$iter?']()) && ($not(self.$scope()['$lambda?']()))) && ($truthy((parent_def = self.$scope().$find_parent_def()))))) { return parent_def } else { return nil } - }, $ReturnNode_return_in_iter$ques$13.$$arity = 0); + }, 0); - Opal.def(self, '$return_expr_in_def?', $ReturnNode_return_expr_in_def$ques$14 = function() { - var self = this, $ret_or_3 = nil, $ret_or_4 = nil; + $def(self, '$return_expr_in_def?', function $ReturnNode_return_expr_in_def$ques$3() { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_3 = self['$expr?']()))) { - - if ($truthy(($ret_or_4 = self.$scope()['$def?']()))) { - return $ret_or_4 - } else { - return self.$scope()['$lambda?']() - }; - } else { - return $ret_or_3 - }; return nil; })())) { + if (($truthy(self['$expr?']()) && (($truthy(self.$scope()['$def?']()) || ($truthy(self.$scope()['$lambda?']())))))) { return self.$scope() } else { return nil } - }, $ReturnNode_return_expr_in_def$ques$14.$$arity = 0); + }, 0); - Opal.def(self, '$scope_to_catch_return', $ReturnNode_scope_to_catch_return$15 = function $$scope_to_catch_return() { - var self = this, $ret_or_5 = nil; + $def(self, '$scope_to_catch_return', function $$scope_to_catch_return() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_5 = self['$return_in_iter?']()))) { - return $ret_or_5 + if ($truthy(($ret_or_1 = self['$return_in_iter?']()))) { + return $ret_or_1 } else { return self['$return_expr_in_def?']() } - }, $ReturnNode_scope_to_catch_return$15.$$arity = 0); - return (Opal.def(self, '$compile', $ReturnNode_compile$16 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this, def_scope = nil, $writer = nil; if ($truthy((def_scope = self.$scope_to_catch_return()))) { $writer = [true]; - $send(def_scope, 'catch_return=', Opal.to_a($writer)); + $send(def_scope, 'catch_return=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$push("Opal.ret(", self.$return_val(), ")"); } else if ($truthy(self['$stmt?']())) { @@ -36910,67 +33855,57 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { } else { return self.$error("void value expression: cannot return as an expression") } - }, $ReturnNode_compile$16.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'JSReturnNode'); - var $nesting = [self].concat($parent_nesting), $JSReturnNode_compile$17; - + self.$handle("js_return"); self.$children("value"); - return (Opal.def(self, '$compile', $JSReturnNode_compile$17 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$push("return "); return self.$push(self.$expr(self.$value())); - }, $JSReturnNode_compile$17.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'JSTempNode'); - var $nesting = [self].concat($parent_nesting), $JSTempNode_compile$18; - + self.$handle("js_tmp"); self.$children("value"); - return (Opal.def(self, '$compile', $JSTempNode_compile$18 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$value().$to_s()) - }, $JSTempNode_compile$18.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'BlockPassNode'); - var $nesting = [self].concat($parent_nesting), $BlockPassNode_compile$19; - + self.$handle("block_pass"); self.$children("value"); - return (Opal.def(self, '$compile', $BlockPassNode_compile$19 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push(self.$expr(self.$s("send", self.$value(), "to_proc", self.$s("arglist")))) - }, $BlockPassNode_compile$19.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/definitions"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $range = Opal.range, $truthy = Opal.truthy, $slice = Opal.slice; +Opal.modules["opal/nodes/definitions"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $range = Opal.range, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $eqeq = Opal.eqeq, $to_a = Opal.to_a, $slice = Opal.slice, $rb_plus = Opal.rb_plus, $hash2 = Opal.hash2, $const_set = Opal.const_set; - Opal.add_stubs(['$require', '$handle', '$children', '$each', '$line', '$expr', '$type', '$new_name', '$===', '$helper', '$inspect', '$[]', '$to_s', '$first', '$old_name', '$push', '$error', '$empty?', '$stmt?', '$compile_children', '$simple_children?', '$compile_inline_children', '$>', '$size', '$wrap', '$==', '$returned_children', '$+', '$returns', '$compiler', '$s', '$process', '$freeze', '$none?', '$include?', '$map', '$each_with_index', '$reject', '$to_proc']); + Opal.add_stubs('require,handle,children,each,line,self,scope,expr,===,type,new_name,helper,inspect,[],to_s,first,old_name,push,error,empty?,stmt?,compile_children,simple_children?,compile_inline_children,>,size,wrap,==,returned_children,await_encountered,parent,+,returns,compiler,s,process,fragment,freeze,none?,include?,map,each_with_index,reject,to_proc'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -36981,68 +33916,68 @@ Opal.modules["opal/nodes/definitions"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'UndefNode'); - var $nesting = [self].concat($parent_nesting), $UndefNode_compile$1; - + self.$handle("undef"); self.$children("value"); - return (Opal.def(self, '$compile', $UndefNode_compile$1 = function $$compile() { - var $$2, self = this; + return $def(self, '$compile', function $$compile() { + var self = this; - return $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s; + return $send(self.$children(), 'each', [], function $$1(child){var self = $$1.$$s == null ? this : $$1.$$s; - if (child == null) { - child = nil; - }; - return self.$line("Opal.udef(self, '$' + ", self.$expr(child), ");");}, $$2.$$s = self, $$2.$$arity = 1, $$2)) - }, $UndefNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + if (child == null) child = nil;; + return self.$line("Opal.udef(" + (self.$scope().$self()) + ", '$' + ", self.$expr(child), ");");}, {$$arity: 1, $$s: self}) + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'AliasNode'); - var $nesting = [self].concat($parent_nesting), $AliasNode_compile$3; - + self.$handle("alias"); self.$children("new_name", "old_name"); - return (Opal.def(self, '$compile', $AliasNode_compile$3 = function $$compile() { - var self = this, $case = nil, new_name_str = nil, old_name_str = nil; - - return (function() {$case = self.$new_name().$type(); - if ("gvar"['$===']($case)) { - self.$helper("alias_gvar"); - new_name_str = self.$new_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); - old_name_str = self.$old_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); - return self.$push("$alias_gvar(", new_name_str, ", ", old_name_str, ")");} - else if ("dsym"['$===']($case) || "sym"['$===']($case)) { - self.$helper("alias"); - return self.$push("$alias(self, ", self.$expr(self.$new_name()), ", ", self.$expr(self.$old_name()), ")");} - else {return self.$error("" + "Opal doesn't know yet how to alias with " + (self.$new_name().$type()))}})() - }, $AliasNode_compile$3.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return $def(self, '$compile', function $$compile() { + var self = this, $ret_or_1 = nil, new_name_str = nil, old_name_str = nil; + + if ($eqeqeq("gvar", ($ret_or_1 = self.$new_name().$type()))) { + + self.$helper("alias_gvar"); + new_name_str = self.$new_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); + old_name_str = self.$old_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); + return self.$push("$alias_gvar(", new_name_str, ", ", old_name_str, ")"); + } else if (($eqeqeq("dsym", $ret_or_1) || ($eqeqeq("sym", $ret_or_1)))) { + + self.$helper("alias"); + return self.$push("$alias(" + (self.$scope().$self()) + ", ", self.$expr(self.$new_name()), ", ", self.$expr(self.$old_name()), ")"); + } else { + return self.$error("Opal doesn't know yet how to alias with " + (self.$new_name().$type())) + } + }, 0); + })($nesting[0], $$('Base')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'BeginNode'); - var $nesting = [self].concat($parent_nesting), $BeginNode_compile$4, $BeginNode_returned_children$5, $BeginNode_compile_children$6, $BeginNode_simple_children$ques$8, $BeginNode_compile_inline_children$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.level = self.$$prototype.returned_children = nil; + $proto.level = $proto.returned_children = nil; self.$handle("begin"); - Opal.def(self, '$compile', $BeginNode_compile$4 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self.$children()['$empty?']())) { - return self.$push("nil")}; + return self.$push("nil") + }; if ($truthy(self['$stmt?']())) { return self.$compile_children(self.$children(), self.level) } else if ($truthy(self['$simple_children?']())) { @@ -37053,106 +33988,83 @@ Opal.modules["opal/nodes/definitions"] = function(Opal) { } else { return nil }; - } else if (self.$children().$size()['$=='](1)) { + } else if ($eqeq(self.$children().$size(), 1)) { return self.$compile_inline_children(self.$returned_children(), self.level) } else { self.$compile_children(self.$returned_children(), self.level); - return self.$wrap("(function() {", "})()"); + if ($truthy(self.$scope().$parent().$await_encountered())) { + return self.$wrap("(await (async function() {", "})())") + } else { + return self.$wrap("(function() {", "})()") + }; }; - }, $BeginNode_compile$4.$$arity = 0); + }, 0); - Opal.def(self, '$returned_children', $BeginNode_returned_children$5 = function $$returned_children() { + $def(self, '$returned_children', function $$returned_children() { var $a, $b, self = this, $ret_or_1 = nil, rest = nil, last_child = nil; - return (self.returned_children = (function() {if ($truthy(($ret_or_1 = self.returned_children))) { - return $ret_or_1 - } else { - - $a = [].concat(Opal.to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last_child = ($a[$b] == null ? nil : $a[$b])), $a; - if ($truthy(last_child)) { - return $rb_plus(rest, [self.$compiler().$returns(last_child)]) - } else { - return [self.$s("nil")] - }; - }; return nil; })()) - }, $BeginNode_returned_children$5.$$arity = 0); + return (self.returned_children = ($truthy(($ret_or_1 = self.returned_children)) ? ($ret_or_1) : (($a = [].concat($to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last_child = ($a[$b] == null ? nil : $a[$b])), $a, ($truthy(last_child) ? ($rb_plus(rest, [self.$compiler().$returns(last_child)])) : ([self.$s("nil")])))))) + }, 0); - Opal.def(self, '$compile_children', $BeginNode_compile_children$6 = function $$compile_children(children, level) { - var $$7, self = this; + $def(self, '$compile_children', function $$compile_children(children, level) { + var self = this; - return $send(children, 'each', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s; + return $send(children, 'each', [], function $$2(child){var self = $$2.$$s == null ? this : $$2.$$s; - if (child == null) { - child = nil; - }; - return self.$line(self.$process(child, level), ";");}, $$7.$$s = self, $$7.$$arity = 1, $$7)) - }, $BeginNode_compile_children$6.$$arity = 2); - Opal.const_set($nesting[0], 'COMPLEX_CHILDREN', ["while", "while_post", "until", "until_post", "js_return"].$freeze()); + if (child == null) child = nil;; + return self.$line(self.$process(child, level), self.$fragment(";", $hash2(["loc"], {"loc": false})));}, {$$arity: 1, $$s: self}) + }, 2); + $const_set($nesting[0], 'COMPLEX_CHILDREN', ["while", "while_post", "until", "until_post", "js_return"].$freeze()); - Opal.def(self, '$simple_children?', $BeginNode_simple_children$ques$8 = function() { - var $$9, self = this; - - return $send(self.$children(), 'none?', [], ($$9 = function(child){var self = $$9.$$s == null ? this : $$9.$$s; + $def(self, '$simple_children?', function $BeginNode_simple_children$ques$3() { + var self = this; + return $send(self.$children(), 'none?', [], function $$4(child){ - if (child == null) { - child = nil; - }; - return $$($nesting, 'COMPLEX_CHILDREN')['$include?'](child.$type());}, $$9.$$s = self, $$9.$$arity = 1, $$9)) - }, $BeginNode_simple_children$ques$8.$$arity = 0); - return (Opal.def(self, '$compile_inline_children', $BeginNode_compile_inline_children$10 = function $$compile_inline_children(children, level) { - var $$11, $$12, self = this, processed_children = nil; + if (child == null) child = nil;; + return $$('COMPLEX_CHILDREN')['$include?'](child.$type());}, 1) + }, 0); + return $def(self, '$compile_inline_children', function $$compile_inline_children(children, level) { + var self = this, processed_children = nil; - processed_children = $send(children, 'map', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; + processed_children = $send(children, 'map', [], function $$5(child){var self = $$5.$$s == null ? this : $$5.$$s; - if (child == null) { - child = nil; - }; - return self.$process(child, level);}, $$11.$$s = self, $$11.$$arity = 1, $$11)); - return $send($send(processed_children, 'reject', [], "empty?".$to_proc()), 'each_with_index', [], ($$12 = function(child, idx){var self = $$12.$$s == null ? this : $$12.$$s; + if (child == null) child = nil;; + return self.$process(child, level);}, {$$arity: 1, $$s: self}); + return $send($send(processed_children, 'reject', [], "empty?".$to_proc()), 'each_with_index', [], function $$6(child, idx){var self = $$6.$$s == null ? this : $$6.$$s; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { - } else { - self.$push(", ") + if (idx == null) idx = nil;; + if (!$eqeq(idx, 0)) { + self.$push(self.$fragment(", ", $hash2(["loc"], {"loc": false}))) }; - return self.$push(child);}, $$12.$$s = self, $$12.$$arity = 2, $$12)); - }, $BeginNode_compile_inline_children$10.$$arity = 2), nil) && 'compile_inline_children'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting); - return (function($base, $super, $parent_nesting) { + return self.$push(child);}, {$$arity: 2, $$s: self}); + }, 2); + })($nesting[0], $$('ScopeNode'), $nesting); + return (function($base, $super) { var self = $klass($base, $super, 'KwBeginNode'); - var $nesting = [self].concat($parent_nesting); - + return self.$handle("kwbegin") - })($nesting[0], $$($nesting, 'BeginNode'), $nesting); + })($nesting[0], $$('BeginNode')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/yield"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/yield"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def; - Opal.add_stubs(['$require', '$find_yielding_scope', '$uses_block!', '$block_name', '$block_name=', '$-', '$yields_single_arg?', '$children', '$push', '$expr', '$first', '$wrap', '$s', '$uses_splat?', '$scope', '$def?', '$parent', '$!', '$==', '$size', '$any?', '$type', '$handle', '$compile_call']); + Opal.add_stubs('require,find_yielding_scope,uses_block!,block_name,block_name=,-,yields_single_arg?,children,push,expr,first,wrap,s,uses_splat?,scope,def?,parent,!,==,size,any?,type,handle,compile_call'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -37163,17 +34075,16 @@ Opal.modules["opal/nodes/yield"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'BaseYieldNode'); - var $nesting = [self].concat($parent_nesting), $BaseYieldNode_compile_call$1, $BaseYieldNode_find_yielding_scope$2, $BaseYieldNode_yields_single_arg$ques$3, $BaseYieldNode_uses_splat$ques$4; - - Opal.def(self, '$compile_call', $BaseYieldNode_compile_call$1 = function $$compile_call() { + + $def(self, '$compile_call', function $$compile_call() { var self = this, yielding_scope = nil, $ret_or_1 = nil, $writer = nil, block_name = nil; @@ -37184,105 +34095,92 @@ Opal.modules["opal/nodes/yield"] = function(Opal) { } else { $writer = ["$yield"]; - $send(yielding_scope, 'block_name=', Opal.to_a($writer)); + $send(yielding_scope, 'block_name=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; block_name = yielding_scope.$block_name(); if ($truthy(self['$yields_single_arg?'](self.$children()))) { self.$push(self.$expr(self.$children().$first())); - return self.$wrap("" + "Opal.yield1(" + (block_name) + ", ", ")"); + return self.$wrap("Opal.yield1(" + (block_name) + ", ", ")"); } else { - self.$push(self.$expr($send(self, 's', ["arglist"].concat(Opal.to_a(self.$children()))))); + self.$push(self.$expr($send(self, 's', ["arglist"].concat($to_a(self.$children()))))); if ($truthy(self['$uses_splat?'](self.$children()))) { - return self.$wrap("" + "Opal.yieldX(" + (block_name) + ", ", ")") + return self.$wrap("Opal.yieldX(" + (block_name) + ", ", ")") } else { - return self.$wrap("" + "Opal.yieldX(" + (block_name) + ", [", "])") + return self.$wrap("Opal.yieldX(" + (block_name) + ", [", "])") }; }; - }, $BaseYieldNode_compile_call$1.$$arity = 0); + }, 0); - Opal.def(self, '$find_yielding_scope', $BaseYieldNode_find_yielding_scope$2 = function $$find_yielding_scope() { - var $a, self = this, working = nil, $ret_or_2 = nil; + $def(self, '$find_yielding_scope', function $$find_yielding_scope() { + var $a, self = this, working = nil; working = self.$scope(); while ($truthy(working)) { - if ($truthy((function() {if ($truthy(($ret_or_2 = working.$block_name()))) { - return $ret_or_2 - } else { - return working['$def?']() - }; return nil; })())) { - break;}; + if (($truthy(working.$block_name()) || ($truthy(working['$def?']())))) { + break; + }; working = working.$parent(); }; return working; - }, $BaseYieldNode_find_yielding_scope$2.$$arity = 0); + }, 0); - Opal.def(self, '$yields_single_arg?', $BaseYieldNode_yields_single_arg$ques$3 = function(children) { - var self = this, $ret_or_3 = nil; + $def(self, '$yields_single_arg?', function $BaseYieldNode_yields_single_arg$ques$1(children) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self['$uses_splat?'](children)['$!']()))) { + if ($truthy(($ret_or_1 = self['$uses_splat?'](children)['$!']()))) { return children.$size()['$=='](1) } else { - return $ret_or_3 + return $ret_or_1 } - }, $BaseYieldNode_yields_single_arg$ques$3.$$arity = 1); - return (Opal.def(self, '$uses_splat?', $BaseYieldNode_uses_splat$ques$4 = function(children) { - var $$5, self = this; - - return $send(children, 'any?', [], ($$5 = function(child){var self = $$5.$$s == null ? this : $$5.$$s; - + }, 1); + return $def(self, '$uses_splat?', function $BaseYieldNode_uses_splat$ques$2(children) { + + return $send(children, 'any?', [], function $$3(child){ - if (child == null) { - child = nil; - }; - return child.$type()['$==']("splat");}, $$5.$$s = self, $$5.$$arity = 1, $$5)) - }, $BaseYieldNode_uses_splat$ques$4.$$arity = 1), nil) && 'uses_splat?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + if (child == null) child = nil;; + return child.$type()['$==']("splat");}, 1) + }, 1); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'YieldNode'); - var $nesting = [self].concat($parent_nesting), $YieldNode_compile$6; - + self.$handle("yield"); - return (Opal.def(self, '$compile', $YieldNode_compile$6 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$compile_call() - }, $YieldNode_compile$6.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'BaseYieldNode'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('BaseYieldNode')); + return (function($base, $super) { var self = $klass($base, $super, 'ReturnableYieldNode'); - var $nesting = [self].concat($parent_nesting), $ReturnableYieldNode_compile$7; - + self.$handle("returnable_yield"); - return (Opal.def(self, '$compile', $ReturnableYieldNode_compile$7 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; self.$compile_call(); return self.$wrap("return ", ";"); - }, $ReturnableYieldNode_compile$7.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'BaseYieldNode'), $nesting); + }, 0); + })($nesting[0], $$('BaseYieldNode')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/rescue"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; +Opal.modules["opal/nodes/rescue"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $def = Opal.def, $range = Opal.range, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$in_ensure', '$line', '$stmt', '$body_sexp', '$indent', '$has_rescue_else?', '$unshift', '$rescue_else_code', '$process', '$compiler', '$ensr_sexp', '$wrap_in_closure?', '$wrap', '$returns', '$begn', '$ensr', '$s', '$recv?', '$expr?', '$rescue_else_sexp', '$scope', '$stmt?', '$detect', '$[]', '$!=', '$type', '$rescue_else_sexp=', '$-', '$handle_rescue_else_manually?', '$in_rescue', '$body_code', '$each_with_index', '$==', '$retry_id', '$nil?', '$body', '$!', '$in_ensure?', '$gen_retry_id', '$attr_reader', '$expr', '$klasses', '$lvar', '$updated', '$in_resbody', '$rescue_body', '$klasses_sexp', '$in_resbody?', '$error', '$current_rescue']); + Opal.add_stubs('require,handle,children,push,in_ensure,line,stmt,body_sexp,indent,has_rescue_else?,unshift,rescue_else_code,process,compiler,ensr_sexp,wrap_in_closure?,await_encountered,scope,wrap,returns,begn,ensr,s,recv?,expr?,rescue_else_sexp,stmt?,detect,[],!=,type,rescue_else_sexp=,-,handle_rescue_else_manually?,in_rescue,body_code,each_with_index,==,retry_id,body,nil?,!,in_ensure?,gen_retry_id,attr_reader,expr,klasses,lvar,updated,in_resbody,rescue_body,klasses_sexp,in_resbody?,error,current_rescue'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -37293,28 +34191,27 @@ Opal.modules["opal/nodes/rescue"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'EnsureNode'); - var $nesting = [self].concat($parent_nesting), $EnsureNode_compile$1, $EnsureNode_body_sexp$6, $EnsureNode_ensr_sexp$7, $EnsureNode_wrap_in_closure$ques$8, $EnsureNode_rescue_else_code$9; - + self.$handle("ensure"); self.$children("begn", "ensr"); - Opal.def(self, '$compile', $EnsureNode_compile$1 = function $$compile() { - var $$2, $$3, self = this; + $def(self, '$compile', function $$compile() { + var self = this; self.$push("try {"); - $send(self, 'in_ensure', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + $send(self, 'in_ensure', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$line(self.$stmt(self.$body_sexp()))}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + return self.$line(self.$stmt(self.$body_sexp()))}, {$$arity: 0, $$s: self}); self.$line("} finally {"); - $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $$4; + $send(self, 'indent', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; if (self.level == null) self.level = nil; if ($truthy(self['$has_rescue_else?']())) { @@ -37322,29 +34219,33 @@ Opal.modules["opal/nodes/rescue"] = function(Opal) { self.$unshift("var $no_errors = true; "); self.$line("var $rescue_else_result;"); self.$line("if ($no_errors) { "); - $send(self, 'indent', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s, $$5; + $send(self, 'indent', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; self.$line("$rescue_else_result = (function() {"); - $send(self, 'indent', [], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; + $send(self, 'indent', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$line(self.$stmt(self.$rescue_else_code()))}, $$5.$$s = self, $$5.$$arity = 0, $$5)); - return self.$line("})();");}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + return self.$line(self.$stmt(self.$rescue_else_code()))}, {$$arity: 0, $$s: self}); + return self.$line("})();");}, {$$arity: 0, $$s: self}); self.$line("}"); self.$line(self.$compiler().$process(self.$ensr_sexp(), self.level)); return self.$line("if ($no_errors) { return $rescue_else_result; }"); } else { return self.$line(self.$compiler().$process(self.$ensr_sexp(), self.level)) - }}, $$3.$$s = self, $$3.$$arity = 0, $$3)); + }}, {$$arity: 0, $$s: self}); self.$line("}"); if ($truthy(self['$wrap_in_closure?']())) { - return self.$wrap("(function() { ", "; })()") + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() { ", "; })())") + } else { + return self.$wrap("(function() { ", "; })()") + } } else { return nil }; - }, $EnsureNode_compile$1.$$arity = 0); + }, 0); - Opal.def(self, '$body_sexp', $EnsureNode_body_sexp$6 = function $$body_sexp() { + $def(self, '$body_sexp', function $$body_sexp() { var self = this; if ($truthy(self['$wrap_in_closure?']())) { @@ -37352,9 +34253,9 @@ Opal.modules["opal/nodes/rescue"] = function(Opal) { } else { return self.$begn() } - }, $EnsureNode_body_sexp$6.$$arity = 0); + }, 0); - Opal.def(self, '$ensr_sexp', $EnsureNode_ensr_sexp$7 = function $$ensr_sexp() { + $def(self, '$ensr_sexp', function $$ensr_sexp() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$ensr()))) { @@ -37362,462 +34263,232 @@ Opal.modules["opal/nodes/rescue"] = function(Opal) { } else { return self.$s("nil") } - }, $EnsureNode_ensr_sexp$7.$$arity = 0); + }, 0); - Opal.def(self, '$wrap_in_closure?', $EnsureNode_wrap_in_closure$ques$8 = function() { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil; + $def(self, '$wrap_in_closure?', function $EnsureNode_wrap_in_closure$ques$5() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self['$recv?']()))) { - return $ret_or_3 - } else { - return self['$expr?']() - }; return nil; })()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self['$recv?']())) ? ($ret_or_2) : (self['$expr?']()))))) { + return $ret_or_1 } else { return self['$has_rescue_else?']() } - }, $EnsureNode_wrap_in_closure$ques$8.$$arity = 0); - return (Opal.def(self, '$rescue_else_code', $EnsureNode_rescue_else_code$9 = function $$rescue_else_code() { + }, 0); + return $def(self, '$rescue_else_code', function $$rescue_else_code() { var self = this, rescue_else_code = nil; rescue_else_code = self.$scope().$rescue_else_sexp(); - if ($truthy(self['$stmt?']())) { - } else { + if (!$truthy(self['$stmt?']())) { rescue_else_code = self.$compiler().$returns(rescue_else_code) }; return rescue_else_code; - }, $EnsureNode_rescue_else_code$9.$$arity = 0), nil) && 'rescue_else_code'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'RescueNode'); - var $nesting = [self].concat($parent_nesting), $RescueNode_compile$10, $RescueNode_body_code$18, $RescueNode_rescue_else_code$19, $RescueNode_handle_rescue_else_manually$ques$20, $RescueNode_gen_retry_id$21; + var $proto = self.$$prototype; - self.$$prototype.retry_id = nil; + $proto.retry_id = nil; self.$handle("rescue"); self.$children("body"); - Opal.def(self, '$compile', $RescueNode_compile$10 = function $$compile() { - var $$11, $$12, self = this, $writer = nil, _has_rescue_handlers = nil, $ret_or_6 = nil; + $def(self, '$compile', function $$compile() { + var self = this, $writer = nil, _has_rescue_handlers = nil; - $writer = [$send(self.$children()['$[]']($range(1, -1, false)), 'detect', [], ($$11 = function(sexp){var self = $$11.$$s == null ? this : $$11.$$s, $ret_or_4 = nil; + $writer = [$send(self.$children()['$[]']($range(1, -1, false)), 'detect', [], function $$6(sexp){var $ret_or_1 = nil; - if (sexp == null) { - sexp = nil; - }; - if ($truthy(($ret_or_4 = sexp))) { + if (sexp == null) sexp = nil;; + if ($truthy(($ret_or_1 = sexp))) { return sexp.$type()['$!=']("resbody") } else { - return $ret_or_4 - };}, $$11.$$s = self, $$11.$$arity = 1, $$11))]; - $send(self.$scope(), 'rescue_else_sexp=', Opal.to_a($writer)); + return $ret_or_1 + };}, 1)]; + $send(self.$scope(), 'rescue_else_sexp=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; _has_rescue_handlers = false; if ($truthy(self['$handle_rescue_else_manually?']())) { - self.$line("var $no_errors = true;")}; - $send(self, 'in_rescue', [self], ($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s, $$13, $$14, $$16; + self.$line("var $no_errors = true;") + }; + $send(self, 'in_rescue', [self], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s; self.$push("try {"); - $send(self, 'indent', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + $send(self, 'indent', [], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; - return self.$line(self.$stmt(self.$body_code()))}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return self.$line(self.$stmt(self.$body_code()))}, {$$arity: 0, $$s: self}); self.$line("} catch ($err) {"); - $send(self, 'indent', [], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s, $$15; + $send(self, 'indent', [], function $$9(){var self = $$9.$$s == null ? this : $$9.$$s; if ($truthy(self['$has_rescue_else?']())) { - self.$line("$no_errors = false;")}; - $send(self.$children()['$[]']($range(1, -1, false)), 'each_with_index', [], ($$15 = function(child, idx){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_5 = nil; + self.$line("$no_errors = false;") + }; + $send(self.$children()['$[]']($range(1, -1, false)), 'each_with_index', [], function $$10(child, idx){var self = $$10.$$s == null ? this : $$10.$$s; if (self.level == null) self.level = nil; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_5 = child))) { - return child.$type()['$==']("resbody") - } else { - return $ret_or_5 - }; return nil; })())) { - } else { + if (idx == null) idx = nil;; + if (!($truthy(child) && ($eqeq(child.$type(), "resbody")))) { return nil; }; _has_rescue_handlers = true; - if (idx['$=='](0)) { - } else { + if (!$eqeq(idx, 0)) { self.$push(" else ") }; - return self.$line(self.$process(child, self.level));}, $$15.$$s = self, $$15.$$arity = 2, $$15)); - return self.$push(" else { throw $err; }");}, $$14.$$s = self, $$14.$$arity = 0, $$14)); + return self.$line(self.$process(child, self.level));}, {$$arity: 2, $$s: self}); + return self.$push(" else { throw $err; }");}, {$$arity: 0, $$s: self}); self.$line("}"); if ($truthy(self['$handle_rescue_else_manually?']())) { self.$push("finally {"); - $send(self, 'indent', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + $send(self, 'indent', [], function $$11(){var self = $$11.$$s == null ? this : $$11.$$s; self.$line("if ($no_errors) { "); - $send(self, 'indent', [], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; + $send(self, 'indent', [], function $$12(){var self = $$12.$$s == null ? this : $$12.$$s; - return self.$line(self.$stmt(self.$rescue_else_code()))}, $$17.$$s = self, $$17.$$arity = 0, $$17)); - return self.$line("}");}, $$16.$$s = self, $$16.$$arity = 0, $$16)); - self.$push("}");}; + return self.$line(self.$stmt(self.$rescue_else_code()))}, {$$arity: 0, $$s: self}); + return self.$line("}");}, {$$arity: 0, $$s: self}); + self.$push("}"); + }; if ($truthy(self.$retry_id())) { return self.$wrap("" + (self.$retry_id()) + ": do { ", " break; } while(1)") } else { return nil - };}, $$12.$$s = self, $$12.$$arity = 0, $$12)); - if ($truthy((function() {if ($truthy(($ret_or_6 = self['$expr?']()))) { - return $ret_or_6 - } else { - return self['$recv?']() - }; return nil; })())) { - return self.$wrap("(function() { ", "})()") + };}, {$$arity: 0, $$s: self}); + if (($truthy(self['$expr?']()) || ($truthy(self['$recv?']())))) { + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() { ", "})())") + } else { + return self.$wrap("(function() { ", "})()") + } } else { return nil }; - }, $RescueNode_compile$10.$$arity = 0); + }, 0); - Opal.def(self, '$body_code', $RescueNode_body_code$18 = function $$body_code() { - var self = this, body_code = nil, $ret_or_7 = nil; + $def(self, '$body_code', function $$body_code() { + var self = this, body_code = nil; - body_code = (function() {if ($truthy((function() {if ($truthy(($ret_or_7 = self.$body()['$nil?']()))) { - return $ret_or_7 - } else { - return self.$body().$type()['$==']("resbody") - }; return nil; })())) { - return self.$s("nil") - } else { - return self.$body() - }; return nil; })(); - if ($truthy(self['$stmt?']())) { - } else { + body_code = (($truthy(self.$body()['$nil?']()) || ($eqeq(self.$body().$type(), "resbody"))) ? (self.$s("nil")) : (self.$body())); + if (!$truthy(self['$stmt?']())) { body_code = self.$compiler().$returns(body_code) }; return body_code; - }, $RescueNode_body_code$18.$$arity = 0); + }, 0); - Opal.def(self, '$rescue_else_code', $RescueNode_rescue_else_code$19 = function $$rescue_else_code() { + $def(self, '$rescue_else_code', function $$rescue_else_code() { var self = this, rescue_else_code = nil; rescue_else_code = self.$scope().$rescue_else_sexp(); - if ($truthy(self['$stmt?']())) { - } else { + if (!$truthy(self['$stmt?']())) { rescue_else_code = self.$compiler().$returns(rescue_else_code) }; return rescue_else_code; - }, $RescueNode_rescue_else_code$19.$$arity = 0); + }, 0); - Opal.def(self, '$handle_rescue_else_manually?', $RescueNode_handle_rescue_else_manually$ques$20 = function() { - var self = this, $ret_or_8 = nil; + $def(self, '$handle_rescue_else_manually?', function $RescueNode_handle_rescue_else_manually$ques$13() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_8 = self['$in_ensure?']()['$!']()))) { + if ($truthy(($ret_or_1 = self['$in_ensure?']()['$!']()))) { return self['$has_rescue_else?']() } else { - return $ret_or_8 + return $ret_or_1 } - }, $RescueNode_handle_rescue_else_manually$ques$20.$$arity = 0); + }, 0); - Opal.def(self, '$gen_retry_id', $RescueNode_gen_retry_id$21 = function $$gen_retry_id() { - var self = this, $ret_or_9 = nil; + $def(self, '$gen_retry_id', function $$gen_retry_id() { + var self = this, $ret_or_1 = nil; - return (self.retry_id = (function() {if ($truthy(($ret_or_9 = self.retry_id))) { - return $ret_or_9 - } else { - return self.$scope().$gen_retry_id() - }; return nil; })()) - }, $RescueNode_gen_retry_id$21.$$arity = 0); + return (self.retry_id = ($truthy(($ret_or_1 = self.retry_id)) ? ($ret_or_1) : (self.$scope().$gen_retry_id()))) + }, 0); return self.$attr_reader("retry_id"); - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'ResBodyNode'); - var $nesting = [self].concat($parent_nesting), $ResBodyNode_compile$22, $ResBodyNode_klasses$26, $ResBodyNode_rescue_body$27; - + self.$handle("resbody"); self.$children("klasses_sexp", "lvar", "body"); - Opal.def(self, '$compile', $ResBodyNode_compile$22 = function $$compile() { - var $$23, self = this; + $def(self, '$compile', function $$compile() { + var self = this; self.$push("if (Opal.rescue($err, ", self.$expr(self.$klasses()), ")) {"); - $send(self, 'indent', [], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s, $$24; + $send(self, 'indent', [], function $$14(){var self = $$14.$$s == null ? this : $$14.$$s; if ($truthy(self.$lvar())) { - self.$push(self.$expr(self.$lvar().$updated(nil, [].concat(Opal.to_a(self.$lvar().$children())).concat([self.$s("js_tmp", "$err")]))))}; + self.$push(self.$expr(self.$lvar().$updated(nil, [].concat($to_a(self.$lvar().$children())).concat([self.$s("js_tmp", "$err")])))) + }; self.$line("try {"); - $send(self, 'indent', [], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s, $$25; + $send(self, 'indent', [], function $$15(){var self = $$15.$$s == null ? this : $$15.$$s; - return $send(self, 'in_resbody', [], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s; + return $send(self, 'in_resbody', [], function $$16(){var self = $$16.$$s == null ? this : $$16.$$s; - return self.$line(self.$stmt(self.$rescue_body()))}, $$25.$$s = self, $$25.$$arity = 0, $$25))}, $$24.$$s = self, $$24.$$arity = 0, $$24)); - return self.$line("} finally { Opal.pop_exception(); }");}, $$23.$$s = self, $$23.$$arity = 0, $$23)); + return self.$line(self.$stmt(self.$rescue_body()))}, {$$arity: 0, $$s: self})}, {$$arity: 0, $$s: self}); + return self.$line("} finally { Opal.pop_exception(); }");}, {$$arity: 0, $$s: self}); return self.$line("}"); - }, $ResBodyNode_compile$22.$$arity = 0); + }, 0); - Opal.def(self, '$klasses', $ResBodyNode_klasses$26 = function $$klasses() { - var self = this, $ret_or_10 = nil; + $def(self, '$klasses', function $$klasses() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_10 = self.$klasses_sexp()))) { - return $ret_or_10 + if ($truthy(($ret_or_1 = self.$klasses_sexp()))) { + return $ret_or_1 } else { return self.$s("array", self.$s("const", nil, "StandardError")) } - }, $ResBodyNode_klasses$26.$$arity = 0); - return (Opal.def(self, '$rescue_body', $ResBodyNode_rescue_body$27 = function $$rescue_body() { - var self = this, body_code = nil, $ret_or_11 = nil; + }, 0); + return $def(self, '$rescue_body', function $$rescue_body() { + var self = this, body_code = nil, $ret_or_1 = nil; - body_code = (function() {if ($truthy(($ret_or_11 = self.$body()))) { - return $ret_or_11 - } else { - return self.$s("nil") - }; return nil; })(); - if ($truthy(self['$stmt?']())) { - } else { + body_code = ($truthy(($ret_or_1 = self.$body())) ? ($ret_or_1) : (self.$s("nil"))); + if (!$truthy(self['$stmt?']())) { body_code = self.$compiler().$returns(body_code) }; return body_code; - }, $ResBodyNode_rescue_body$27.$$arity = 0), nil) && 'rescue_body'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'RetryNode'); - var $nesting = [self].concat($parent_nesting), $RetryNode_compile$28; - + self.$handle("retry"); - return (Opal.def(self, '$compile', $RetryNode_compile$28 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; - if ($truthy(self['$in_resbody?']())) { - } else { + if (!$truthy(self['$in_resbody?']())) { self.$error("Invalid retry") }; - return self.$push("" + "continue " + (self.$scope().$current_rescue().$gen_retry_id())); - }, $RetryNode_compile$28.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; - -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/case"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; - - Opal.add_stubs(['$require', '$handle', '$children', '$in_case', '$compiler', '$compile_code', '$needs_closure?', '$wrap', '$condition', '$[]=', '$case_stmt', '$-', '$add_local', '$push', '$expr', '$each_with_index', '$case_parts', '$line', '$type', '$===', '$returns', '$==', '$stmt', '$!', '$stmt?', '$[]', '$when_checks', '$js_truthy', '$s', '$process', '$body_code', '$last']); - - self.$require("opal/nodes/base"); - return (function($base, $parent_nesting) { - var self = $module($base, 'Opal'); - - var $nesting = [self].concat($parent_nesting); - - return (function($base, $parent_nesting) { - var self = $module($base, 'Nodes'); - - var $nesting = [self].concat($parent_nesting); - - - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'CaseNode'); - - var $nesting = [self].concat($parent_nesting), $CaseNode_compile$1, $CaseNode_compile_code$3, $CaseNode_needs_closure$ques$5, $CaseNode_case_parts$6, $CaseNode_case_stmt$7; - - - self.$handle("case"); - self.$children("condition"); - - Opal.def(self, '$compile', $CaseNode_compile$1 = function $$compile() { - var $$2, self = this; - - return $send(self.$compiler(), 'in_case', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - - - self.$compile_code(); - if ($truthy(self['$needs_closure?']())) { - return self.$wrap("(function() {", "})()") - } else { - return nil - };}, $$2.$$s = self, $$2.$$arity = 0, $$2)) - }, $CaseNode_compile$1.$$arity = 0); - - Opal.def(self, '$compile_code', $CaseNode_compile_code$3 = function $$compile_code() { - var $$4, self = this, handled_else = nil, $writer = nil, $ret_or_1 = nil; - - - handled_else = false; - if ($truthy(self.$condition())) { - - - $writer = ["cond", true]; - $send(self.$case_stmt(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.$add_local("$case"); - self.$push("$case = ", self.$expr(self.$condition()), ";");}; - $send(self.$case_parts(), 'each_with_index', [], ($$4 = function(wen, idx){var self = $$4.$$s == null ? this : $$4.$$s, $case = nil; - - - - if (wen == null) { - wen = nil; - }; - - if (idx == null) { - idx = nil; - }; - if ($truthy(wen)) { - } else { - return nil; - }; - self.$line(); - return (function() {$case = wen.$type(); - if ("when"['$===']($case)) { - if ($truthy(self['$needs_closure?']())) { - wen = self.$compiler().$returns(wen)}; - if (idx['$=='](0)) { - } else { - self.$push("else ") - }; - return self.$push(self.$stmt(wen));} - else { - handled_else = true; - if ($truthy(self['$needs_closure?']())) { - wen = self.$compiler().$returns(wen)}; - return self.$push("else {", self.$stmt(wen), "}");}})();}, $$4.$$s = self, $$4.$$arity = 2, $$4)); - if ($truthy((function() {if ($truthy(($ret_or_1 = self['$needs_closure?']()))) { - return handled_else['$!']() - } else { - return $ret_or_1 - }; return nil; })())) { - - self.$line(); - return self.$push("else { return nil }"); - } else { - return nil - }; - }, $CaseNode_compile_code$3.$$arity = 0); - - Opal.def(self, '$needs_closure?', $CaseNode_needs_closure$ques$5 = function() { - var self = this; - - return self['$stmt?']()['$!']() - }, $CaseNode_needs_closure$ques$5.$$arity = 0); - - Opal.def(self, '$case_parts', $CaseNode_case_parts$6 = function $$case_parts() { - var self = this; - - return self.$children()['$[]']($range(1, -1, false)) - }, $CaseNode_case_parts$6.$$arity = 0); - return (Opal.def(self, '$case_stmt', $CaseNode_case_stmt$7 = function $$case_stmt() { - var self = this; - - return self.$compiler().$case_stmt() - }, $CaseNode_case_stmt$7.$$arity = 0), nil) && 'case_stmt'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'WhenNode'); - - var $nesting = [self].concat($parent_nesting), $WhenNode_compile$8, $WhenNode_when_checks$10, $WhenNode_case_stmt$11, $WhenNode_body_code$12; - - self.$$prototype.level = nil; - - self.$handle("when"); - self.$children("whens", "body"); - - Opal.def(self, '$compile', $WhenNode_compile$8 = function $$compile() { - var $$9, self = this; - - - self.$push("if ("); - $send(self.$when_checks(), 'each_with_index', [], ($$9 = function(check, idx){var self = $$9.$$s == null ? this : $$9.$$s, call = nil; - - - - if (check == null) { - check = nil; - }; - - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { - } else { - self.$push(" || ") - }; - if (check.$type()['$==']("splat")) { - - self.$push("(function($splt) { for (var i = 0, ii = $splt.length; i < ii; i++) {"); - if ($truthy(self.$case_stmt()['$[]']("cond"))) { - self.$push("if ($splt[i]['$===']($case)) { return true; }") - } else { - self.$push("if (", self.$js_truthy(check), ")) { return true; }") - }; - return self.$push("} return false; })(", self.$expr(check.$children()['$[]'](0)), ")"); - } else if ($truthy(self.$case_stmt()['$[]']("cond"))) { - - call = self.$s("send", check, "===", self.$s("arglist", self.$s("js_tmp", "$case"))); - return self.$push(self.$expr(call)); - } else { - return self.$push(self.$js_truthy(check)) - };}, $$9.$$s = self, $$9.$$arity = 2, $$9)); - return self.$push(") {", self.$process(self.$body_code(), self.level), "}"); - }, $WhenNode_compile$8.$$arity = 0); - - Opal.def(self, '$when_checks', $WhenNode_when_checks$10 = function $$when_checks() { - var self = this; - - return self.$children()['$[]']($range(0, -2, false)) - }, $WhenNode_when_checks$10.$$arity = 0); - - Opal.def(self, '$case_stmt', $WhenNode_case_stmt$11 = function $$case_stmt() { - var self = this; - - return self.$compiler().$case_stmt() - }, $WhenNode_case_stmt$11.$$arity = 0); - return (Opal.def(self, '$body_code', $WhenNode_body_code$12 = function $$body_code() { - var self = this, $ret_or_2 = nil; - - if ($truthy(($ret_or_2 = self.$children().$last()))) { - return $ret_or_2 - } else { - return self.$s("nil") - } - }, $WhenNode_body_code$12.$$arity = 0), nil) && 'body_code'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + return self.$push("continue " + (self.$scope().$current_rescue().$gen_retry_id())); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/super"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/super"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def, $to_ary = Opal.to_ary, $eqeq = Opal.eqeq, $not = Opal.not, $eqeqeq = Opal.eqeqeq, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $rb_gt = Opal.rb_gt; - Opal.add_stubs(['$require', '$include?', '$type', '$s', '$helper', '$push', '$compile_receiver', '$compile_method_body', '$compile_method_name', '$compile_arguments', '$compile_block_pass', '$private', '$def?', '$scope', '$find_parent_def', '$to_s', '$mid', '$def_scope', '$identify!', '$method_id', '$def_scope_identity', '$defined_check_param', '$allow_stubs', '$super_chain', '$join', '$map', '$implicit_arguments_param', '$super_method_invocation', '$iter?', '$super_block_invocation', '$raise', '$handle', '$wrap', '$uses_block!', '$compile_using_send', '$==', '$iter', '$uses_zuper=', '$-', '$block_name', '$!', '$<<', '$empty?', '$children', '$arglist', '$expr', '$===']); + Opal.add_stubs('require,include?,type,s,helper,push,compile_receiver,compile_method_body,compile_method_name,compile_arguments,compile_block_pass,private,def?,scope,find_parent_def,to_s,mid,def_scope,identify!,self,method_id,def_scope_identity,defined_check_param,allow_stubs,super_chain,join,map,implicit_arguments_param,super_method_invocation,iter?,super_block_invocation,raise,handle,wrap,uses_block!,compile_using_send,==,iter,block_name,implicit_arglist,!,<<,new,each,children,original_args,[],===,+,[]=,-,>,meta,empty?'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -37828,48 +34499,41 @@ Opal.modules["opal/nodes/super"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'BaseSuperNode'); - var $nesting = [self].concat($parent_nesting), $BaseSuperNode_initialize$1, $BaseSuperNode_compile_using_send$2, $BaseSuperNode_def_scope$3, $BaseSuperNode_defined_check_param$4, $BaseSuperNode_implicit_arguments_param$5, $BaseSuperNode_method_id$6, $BaseSuperNode_def_scope_identity$7, $BaseSuperNode_allow_stubs$8, $BaseSuperNode_super_method_invocation$9, $BaseSuperNode_super_block_invocation$10, $BaseSuperNode_compile_method_body$12, $BaseSuperNode_compile_method_name$13; + var $proto = self.$$prototype; - self.$$prototype.sexp = self.$$prototype.def_scope = nil; + $proto.sexp = $proto.def_scope = nil; - Opal.def(self, '$initialize', $BaseSuperNode_initialize$1 = function $$initialize($a) { - var $post_args, $b, $c, $iter = $BaseSuperNode_initialize$1.$$p, $yield = $iter || nil, self = this, args = nil, rest = nil, last_child = nil, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $b, $c, $yield = $$initialize.$$p || nil, self = this, args = nil, rest = nil, last_child = nil; - if ($iter) $BaseSuperNode_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $BaseSuperNode_initialize$1, false, true), 'initialize', $zuper, $iter); - args = [].concat(Opal.to_a(self.sexp)); - $b = [].concat(Opal.to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_child = ($b[$c] == null ? nil : $b[$c])), $b; - if ($truthy((function() {if ($truthy(($ret_or_1 = last_child))) { - return ["iter", "block_pass"]['$include?'](last_child.$type()) - } else { - return $ret_or_1 - }; return nil; })())) { + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + args = [].concat($to_a(self.sexp)); + $b = [].concat($to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_child = ($b[$c] == null ? nil : $b[$c])), $b; + if (($truthy(last_child) && ($truthy(["iter", "block_pass"]['$include?'](last_child.$type()))))) { self.iter = last_child; args = rest; } else { self.iter = self.$s("js_tmp", "null") }; - self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(args))); + self.arglist = $send(self, 's', ["arglist"].concat($to_a(args))); return (self.recvr = self.$s("self")); - }, $BaseSuperNode_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$compile_using_send', $BaseSuperNode_compile_using_send$2 = function $$compile_using_send() { + $def(self, '$compile_using_send', function $$compile_using_send() { var self = this; @@ -37881,77 +34545,65 @@ Opal.modules["opal/nodes/super"] = function(Opal) { self.$compile_arguments(); self.$compile_block_pass(); return self.$push(")"); - }, $BaseSuperNode_compile_using_send$2.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$def_scope', $BaseSuperNode_def_scope$3 = function $$def_scope() { - var self = this, $ret_or_2 = nil; + $def(self, '$def_scope', function $$def_scope() { + var self = this, $ret_or_1 = nil; - return (self.def_scope = (function() {if ($truthy(($ret_or_2 = self.def_scope))) { - return $ret_or_2 - } else if ($truthy(self.$scope()['$def?']())) { - return self.$scope() - } else { - return self.$scope().$find_parent_def() - }; return nil; })()) - }, $BaseSuperNode_def_scope$3.$$arity = 0); + return (self.def_scope = ($truthy(($ret_or_1 = self.def_scope)) ? ($ret_or_1) : ($truthy(self.$scope()['$def?']()) ? (self.$scope()) : (self.$scope().$find_parent_def())))) + }, 0); - Opal.def(self, '$defined_check_param', $BaseSuperNode_defined_check_param$4 = function $$defined_check_param() { - var self = this; - + $def(self, '$defined_check_param', function $$defined_check_param() { + return "false" - }, $BaseSuperNode_defined_check_param$4.$$arity = 0); + }, 0); - Opal.def(self, '$implicit_arguments_param', $BaseSuperNode_implicit_arguments_param$5 = function $$implicit_arguments_param() { - var self = this; - + $def(self, '$implicit_arguments_param', function $$implicit_arguments_param() { + return "false" - }, $BaseSuperNode_implicit_arguments_param$5.$$arity = 0); + }, 0); - Opal.def(self, '$method_id', $BaseSuperNode_method_id$6 = function $$method_id() { + $def(self, '$method_id', function $$method_id() { var self = this; return self.$def_scope().$mid().$to_s() - }, $BaseSuperNode_method_id$6.$$arity = 0); + }, 0); - Opal.def(self, '$def_scope_identity', $BaseSuperNode_def_scope_identity$7 = function $$def_scope_identity() { + $def(self, '$def_scope_identity', function $$def_scope_identity() { var self = this; return self.$def_scope()['$identify!'](self.$def_scope().$mid()) - }, $BaseSuperNode_def_scope_identity$7.$$arity = 0); + }, 0); - Opal.def(self, '$allow_stubs', $BaseSuperNode_allow_stubs$8 = function $$allow_stubs() { - var self = this; - + $def(self, '$allow_stubs', function $$allow_stubs() { + return "true" - }, $BaseSuperNode_allow_stubs$8.$$arity = 0); + }, 0); - Opal.def(self, '$super_method_invocation', $BaseSuperNode_super_method_invocation$9 = function $$super_method_invocation() { + $def(self, '$super_method_invocation', function $$super_method_invocation() { var self = this; self.$helper("find_super"); - return "" + "$find_super(self, '" + (self.$method_id()) + "', " + (self.$def_scope_identity()) + ", " + (self.$defined_check_param()) + ", " + (self.$allow_stubs()) + ")"; - }, $BaseSuperNode_super_method_invocation$9.$$arity = 0); + return "$find_super(" + (self.$scope().$self()) + ", '" + (self.$method_id()) + "', " + (self.$def_scope_identity()) + ", " + (self.$defined_check_param()) + ", " + (self.$allow_stubs()) + ")"; + }, 0); - Opal.def(self, '$super_block_invocation', $BaseSuperNode_super_block_invocation$10 = function $$super_block_invocation() { - var $a, $b, $$11, self = this, chain = nil, cur_defn = nil, mid = nil, trys = nil; + $def(self, '$super_block_invocation', function $$super_block_invocation() { + var $a, $b, self = this, chain = nil, cur_defn = nil, mid = nil, trys = nil; self.$helper("find_block_super"); - $b = self.$scope().$super_chain(), $a = Opal.to_ary($b), (chain = ($a[0] == null ? nil : $a[0])), (cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; - trys = $send(chain, 'map', [], ($$11 = function(c){var self = $$11.$$s == null ? this : $$11.$$s; - + $b = self.$scope().$super_chain(), $a = $to_ary($b), (chain = ($a[0] == null ? nil : $a[0])), (cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; + trys = $send(chain, 'map', [], function $$1(c){ - if (c == null) { - c = nil; - }; - return "" + (c) + ".$$def";}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$join(" || "); - return "" + "$find_block_super(self, " + (mid) + ", (" + (trys) + " || " + (cur_defn) + "), " + (self.$defined_check_param()) + ", " + (self.$implicit_arguments_param()) + ")"; - }, $BaseSuperNode_super_block_invocation$10.$$arity = 0); + if (c == null) c = nil;; + return "" + (c) + ".$$def";}, 1).$join(" || "); + return "$find_block_super(" + (self.$scope().$self()) + ", " + (mid) + ", (" + (trys) + " || " + (cur_defn) + "), " + (self.$defined_check_param()) + ", " + (self.$implicit_arguments_param()) + ")"; + }, 0); - Opal.def(self, '$compile_method_body', $BaseSuperNode_compile_method_body$12 = function $$compile_method_body() { + $def(self, '$compile_method_body', function $$compile_method_body() { var self = this; @@ -37963,183 +34615,203 @@ Opal.modules["opal/nodes/super"] = function(Opal) { } else { return self.$raise("super must be called from method body or block") }; - }, $BaseSuperNode_compile_method_body$12.$$arity = 0); - return (Opal.def(self, '$compile_method_name', $BaseSuperNode_compile_method_name$13 = function $$compile_method_name() { + }, 0); + return $def(self, '$compile_method_name', function $$compile_method_name() { var $a, $b, self = this, _chain = nil, _cur_defn = nil, mid = nil; if ($truthy(self.$scope()['$def?']())) { - return self.$push("" + ", '" + (self.$method_id()) + "'") + return self.$push(", '" + (self.$method_id()) + "'") } else if ($truthy(self.$scope()['$iter?']())) { - $b = self.$scope().$super_chain(), $a = Opal.to_ary($b), (_chain = ($a[0] == null ? nil : $a[0])), (_cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; - return self.$push("" + ", " + (mid)); + $b = self.$scope().$super_chain(), $a = $to_ary($b), (_chain = ($a[0] == null ? nil : $a[0])), (_cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; + return self.$push(", " + (mid)); } else { return nil } - }, $BaseSuperNode_compile_method_name$13.$$arity = 0), nil) && 'compile_method_name'; - })($nesting[0], $$($nesting, 'CallNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('CallNode')); + (function($base, $super) { var self = $klass($base, $super, 'DefinedSuperNode'); - var $nesting = [self].concat($parent_nesting), $DefinedSuperNode_allow_stubs$14, $DefinedSuperNode_defined_check_param$15, $DefinedSuperNode_compile$16; - + self.$handle("defined_super"); - Opal.def(self, '$allow_stubs', $DefinedSuperNode_allow_stubs$14 = function $$allow_stubs() { - var self = this; - + $def(self, '$allow_stubs', function $$allow_stubs() { + return "false" - }, $DefinedSuperNode_allow_stubs$14.$$arity = 0); + }, 0); - Opal.def(self, '$defined_check_param', $DefinedSuperNode_defined_check_param$15 = function $$defined_check_param() { - var self = this; - + $def(self, '$defined_check_param', function $$defined_check_param() { + return "true" - }, $DefinedSuperNode_defined_check_param$15.$$arity = 0); - return (Opal.def(self, '$compile', $DefinedSuperNode_compile$16 = function $$compile() { + }, 0); + return $def(self, '$compile', function $$compile() { var self = this; self.$compile_receiver(); self.$compile_method_body(); return self.$wrap("((", ") != null ? \"super\" : nil)"); - }, $DefinedSuperNode_compile$16.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'BaseSuperNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('BaseSuperNode')); + (function($base, $super) { var self = $klass($base, $super, 'SuperNode'); - var $nesting = [self].concat($parent_nesting), $SuperNode_initialize$17, $SuperNode_compile$18; - + self.$handle("super"); - Opal.def(self, '$initialize', $SuperNode_initialize$17 = function $$initialize($a) { - var $post_args, $iter = $SuperNode_initialize$17.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $SuperNode_initialize$17.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $SuperNode_initialize$17, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); if ($truthy(self.$scope()['$def?']())) { return self.$scope()['$uses_block!']() } else { return nil }; - }, $SuperNode_initialize$17.$$arity = -1); - return (Opal.def(self, '$compile', $SuperNode_compile$18 = function $$compile() { + }, -1); + return $def(self, '$compile', function $$compile() { var self = this; return self.$compile_using_send() - }, $SuperNode_compile$18.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'BaseSuperNode'), $nesting); + }, 0); + })($nesting[0], $$('BaseSuperNode')); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'ZsuperNode'); - var $nesting = [self].concat($parent_nesting), $ZsuperNode_implicit_arguments_param$19, $ZsuperNode_initialize$20, $ZsuperNode_compile$21, $ZsuperNode_compile_arguments$22, $ZsuperNode_block_name$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("zsuper"); - Opal.def(self, '$implicit_arguments_param', $ZsuperNode_implicit_arguments_param$19 = function $$implicit_arguments_param() { - var self = this; - + $def(self, '$implicit_arguments_param', function $$implicit_arguments_param() { + return "true" - }, $ZsuperNode_implicit_arguments_param$19.$$arity = 0); + }, 0); - Opal.def(self, '$initialize', $ZsuperNode_initialize$20 = function $$initialize($a) { - var $post_args, $iter = $ZsuperNode_initialize$20.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $ZsuperNode_initialize$20.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $ZsuperNode_initialize$20, false, true), 'initialize', $zuper, $iter); - if (self.$iter().$type()['$==']("iter")) { + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); + if ($eqeq(self.$iter().$type(), "iter")) { return nil } else { self.$scope()['$uses_block!'](); - return (self.iter = self.$s("js_tmp", "$iter")); + return (self.iter = self.$s("js_tmp", ($truthy(($ret_or_1 = self.$scope().$block_name())) ? ($ret_or_1) : ("$yield")))); }; - }, $ZsuperNode_initialize$20.$$arity = -1); + }, -1); - Opal.def(self, '$compile', $ZsuperNode_compile$21 = function $$compile() { - var self = this, $writer = nil, implicit_args = nil, $ret_or_3 = nil, block_pass = nil; + $def(self, '$compile', function $$compile() { + var self = this, implicit_args = nil, block_pass = nil; if ($truthy(self.$def_scope())) { - - $writer = [true]; - $send(self.$def_scope(), 'uses_zuper=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - implicit_args = [self.$s("js_tmp", "$zuper")]; - if ($truthy((function() {if ($truthy(($ret_or_3 = self.$block_name()))) { - return self.$iter()['$!']() - } else { - return $ret_or_3 - }; return nil; })())) { + implicit_args = self.$implicit_arglist(); + if (($truthy(self.$block_name()) && ($not(self.$iter())))) { block_pass = self.$s("block_pass", self.$s("lvar", self.$block_name())); - implicit_args['$<<'](block_pass);}; - self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(implicit_args)));}; + implicit_args['$<<'](block_pass); + }; + self.arglist = $send(self, 's', ["arglist"].concat($to_a(implicit_args))); + }; return self.$compile_using_send(); - }, $ZsuperNode_compile$21.$$arity = 0); + }, 0); - Opal.def(self, '$compile_arguments', $ZsuperNode_compile_arguments$22 = function $$compile_arguments() { - var self = this; + $def(self, '$implicit_arglist', function $$implicit_arglist() { + var self = this, args = nil, kwargs = nil, same_arg_counter = nil; - self.$push(", "); - if ($truthy(self.$arglist().$children()['$empty?']())) { - return self.$push("[]") - } else { - return self.$push(self.$expr(self.$arglist())) + args = []; + kwargs = []; + same_arg_counter = $$('Hash').$new(0); + $send(self.$def_scope().$original_args().$children(), 'each', [], function $$2(sexp){var self = $$2.$$s == null ? this : $$2.$$s, lvar_name = nil, $ret_or_1 = nil, arg_node = nil, $writer = nil, key_name = nil; + + + + if (sexp == null) sexp = nil;; + lvar_name = sexp.$children()['$[]'](0); + if (($eqeqeq("arg", ($ret_or_1 = sexp.$type())) || ($eqeqeq("optarg", $ret_or_1)))) { + + arg_node = self.$s("lvar", lvar_name); + if ($eqeq(lvar_name['$[]'](0), "_")) { + + + $writer = [lvar_name, $rb_plus(same_arg_counter['$[]'](lvar_name), 1)]; + $send(same_arg_counter, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy($rb_gt(same_arg_counter['$[]'](lvar_name), 1))) { + arg_node = self.$s("js_tmp", "" + (lvar_name) + "_$" + (same_arg_counter['$[]'](lvar_name))) + }; + }; + return args['$<<'](arg_node); + } else if ($eqeqeq("restarg", $ret_or_1)) { + + arg_node = ($truthy(lvar_name) ? (self.$s("lvar", lvar_name)) : (self.$s("js_tmp", "$rest_arg"))); + return args['$<<'](self.$s("splat", arg_node)); + } else if (($eqeqeq("kwarg", $ret_or_1) || ($eqeqeq("kwoptarg", $ret_or_1)))) { + + key_name = sexp.$meta()['$[]']("arg_name"); + return kwargs['$<<'](self.$s("pair", self.$s("sym", key_name), self.$s("lvar", lvar_name))); + } else if ($eqeqeq("kwrestarg", $ret_or_1)) { + + arg_node = ($truthy(lvar_name) ? (self.$s("lvar", lvar_name)) : (self.$s("js_tmp", "$kw_rest_arg"))); + return kwargs['$<<'](self.$s("kwsplat", arg_node)); + } else { + return nil + };}, {$$arity: 1, $$s: self}); + if (!$truthy(kwargs['$empty?']())) { + args['$<<']($send(self, 's', ["hash"].concat($to_a(kwargs)))) }; - }, $ZsuperNode_compile_arguments$22.$$arity = 0); - return (Opal.def(self, '$block_name', $ZsuperNode_block_name$23 = function $$block_name() { - var self = this, $case = nil; + return args; + }, 0); + return $def(self, '$block_name', function $$block_name() { + var self = this, $ret_or_1 = nil; - return (function() {$case = self.$def_scope(); - if ($$$($$$($$($nesting, 'Opal'), 'Nodes'), 'IterNode')['$===']($case)) {return self.$def_scope().$block_name()} - else if ($$$($$$($$($nesting, 'Opal'), 'Nodes'), 'DefNode')['$===']($case)) {return self.$def_scope().$block_name()} - else {return self.$raise("" + "Don't know what to do with super in the scope " + (self.$def_scope()))}})() - }, $ZsuperNode_block_name$23.$$arity = 0), nil) && 'block_name'; - })($nesting[0], $$($nesting, 'SuperNode'), $nesting); + if ($eqeqeq($$$($$$($$('Opal'), 'Nodes'), 'IterNode'), ($ret_or_1 = self.$def_scope()))) { + return self.$def_scope().$block_name() + } else if ($eqeqeq($$$($$$($$('Opal'), 'Nodes'), 'DefNode'), $ret_or_1)) { + return self.$def_scope().$block_name() + } else { + return self.$raise("Don't know what to do with super in the scope " + (self.$def_scope())) + } + }, 0); + })($nesting[0], $$('SuperNode'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["opal/version"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set; return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); var $nesting = [self].concat($parent_nesting); - return Opal.const_set($nesting[0], 'VERSION', "1.3.0.dev") + return $const_set($nesting[0], 'VERSION', "1.5.0.dev") })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/top"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/top"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$version_comment', '$opening', '$in_scope', '$use_strict?', '$compiler', '$line', '$stmt', '$stmts', '$is_a?', '$eval?', '$add_temp', '$add_used_helpers', '$add_used_operators', '$to_vars', '$scope', '$compile_method_stubs', '$compile_irb_vars', '$compile_end_construct', '$closing', '$requirable?', '$inspect', '$module_name', '$file', '$esm?', '$returns', '$body', '$irb?', '$each', '$to_a', '$helpers', '$operator_helpers', '$[]', '$method_missing?', '$method_calls', '$join', '$map', '$empty?', '$eof_content']); + Opal.add_stubs('require,handle,children,top_scope=,compiler,-,[],meta,sexp,dynamic_cache_result=,push,version_comment,in_scope,==,body,s,line,use_strict?,stmt,stmts,is_a?,eval?,add_temp,add_used_helpers,to_vars,scope,compile_method_stubs,compile_irb_vars,compile_end_construct,opening,closing,await_encountered,requirable?,unshift,inspect,module_name,file,esm?,returns,irb?,each,to_a,helpers,method_missing?,method_calls,join,map,to_proc,empty?,eof_content'); self.$require("pathname"); self.$require("opal/version"); @@ -38152,86 +34824,125 @@ Opal.modules["opal/nodes/top"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'TopNode'); - var $nesting = [self].concat($parent_nesting), $TopNode_compile$1, $TopNode_opening$3, $TopNode_closing$4, $TopNode_stmts$5, $TopNode_compile_irb_vars$6, $TopNode_add_used_helpers$7, $TopNode_add_used_operators$9, $TopNode_compile_method_stubs$11, $TopNode_compile_end_construct$13, $TopNode_version_comment$14; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$handle("top"); self.$children("body"); - Opal.def(self, '$compile', $TopNode_compile$1 = function $$compile() { - var $$2, self = this; + $def(self, '$compile', function $$compile() { + var self = this, $writer = nil; + + $writer = [self]; + $send(self.$compiler(), 'top_scope=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(self.$sexp().$meta()['$[]']("dynamic_cache_result"))) { + + $writer = [true]; + $send(self.$compiler(), 'dynamic_cache_result=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; self.$push(self.$version_comment()); - self.$opening(); - $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, body_code = nil; + $send(self, 'in_scope', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s, body_code = nil; + if (self.define_nesting == null) self.define_nesting = nil; + if (self.define_self == null) self.define_self = nil; + if (self.define_relative_access == null) self.define_relative_access = nil; + if (self.define_absolute_const == null) self.define_absolute_const = nil; - - if ($truthy(self.$compiler()['$use_strict?']())) { - self.$line("\"use strict\";")}; - body_code = self.$stmt(self.$stmts()); - if ($truthy(body_code['$is_a?']($$($nesting, 'Array')))) { - } else { - body_code = [body_code] - }; - if ($truthy(self.$compiler()['$eval?']())) { - self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]") + if ($eqeq(self.$body(), self.$s("nil"))) { + return self.$line("return Opal.nil;") } else { - self.$add_temp("self = Opal.top"); - self.$add_temp("$nesting = []"); - }; - self.$add_temp("nil = Opal.nil"); - self.$add_temp("$$$ = Opal.$$$"); - self.$add_temp("$$ = Opal.$$"); - self.$add_used_helpers(); - self.$add_used_operators(); - self.$line(self.$scope().$to_vars()); - self.$compile_method_stubs(); - self.$compile_irb_vars(); - self.$compile_end_construct(); - return self.$line(body_code);}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + if ($truthy(self.$compiler()['$use_strict?']())) { + self.$line("\"use strict\";") + }; + body_code = self.$stmt(self.$stmts()); + if (!$truthy(body_code['$is_a?']($$('Array')))) { + body_code = [body_code] + }; + if ($truthy(self.$compiler()['$eval?']())) { + if ($truthy(self.define_nesting)) { + self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]") + } + } else { + + if ($truthy(self.define_self)) { + self.$add_temp("self = Opal.top") + }; + if ($truthy(self.define_nesting)) { + self.$add_temp("$nesting = []") + }; + }; + if ($truthy(self.define_relative_access)) { + self.$add_temp("$$ = Opal.$r($nesting)") + }; + self.$add_temp("nil = Opal.nil"); + if ($truthy(self.define_absolute_const)) { + self.$add_temp("$$$ = Opal.$$$") + }; + self.$add_used_helpers(); + self.$line(self.$scope().$to_vars()); + self.$compile_method_stubs(); + self.$compile_irb_vars(); + self.$compile_end_construct(); + return self.$line(body_code); + }}, {$$arity: 0, $$s: self}); + self.$opening(); return self.$closing(); - }, $TopNode_compile$1.$$arity = 0); + }, 0); - Opal.def(self, '$opening', $TopNode_opening$3 = function $$opening() { - var self = this; + $def(self, '$opening', function $$opening() { + var self = this, async_prefix = nil; + + if ($truthy(self.$await_encountered())) { + async_prefix = "async " + }; if ($truthy(self.$compiler()['$requirable?']())) { - return self.$line("" + "Opal.modules[" + ($$$($$($nesting, 'Opal'), 'Compiler').$module_name(self.$compiler().$file()).$inspect()) + "] = function(Opal) {") + return self.$unshift("Opal.modules[" + ($$$($$('Opal'), 'Compiler').$module_name(self.$compiler().$file()).$inspect()) + "] = " + (async_prefix) + "function(Opal) {") } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$line("(function(Opal, self) {") + return self.$unshift("(" + (async_prefix) + "function(Opal, self) {") } else if ($truthy(self.$compiler()['$esm?']())) { - return self.$line("export default (function(Opal) {") + return self.$unshift("export default Opal.queue(" + (async_prefix) + "function(Opal) {") } else { - return self.$line("(function(Opal) {") - } - }, $TopNode_opening$3.$$arity = 0); + return self.$unshift("Opal.queue(" + (async_prefix) + "function(Opal) {") + }; + }, 0); - Opal.def(self, '$closing', $TopNode_closing$4 = function $$closing() { + $def(self, '$closing', function $$closing() { var self = this; if ($truthy(self.$compiler()['$requirable?']())) { return self.$line("};\n") } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$line("})(Opal, self)") + return self.$line("})(Opal, self);") } else { - return self.$line("})(Opal);\n") + return self.$line("});\n") } - }, $TopNode_closing$4.$$arity = 0); + }, 0); - Opal.def(self, '$stmts', $TopNode_stmts$5 = function $$stmts() { + $def(self, '$stmts', function $$stmts() { var self = this; return self.$compiler().$returns(self.$body()) - }, $TopNode_stmts$5.$$arity = 0); + }, 0); + + $def(self, '$absolute_const', function $$absolute_const() { + var self = this; + + + self.define_absolute_const = true; + return "$$$"; + }, 0); - Opal.def(self, '$compile_irb_vars', $TopNode_compile_irb_vars$6 = function $$compile_irb_vars() { + $def(self, '$compile_irb_vars', function $$compile_irb_vars() { var self = this; if ($truthy(self.$compiler()['$irb?']())) { @@ -38239,92 +34950,60 @@ Opal.modules["opal/nodes/top"] = function(Opal) { } else { return nil } - }, $TopNode_compile_irb_vars$6.$$arity = 0); + }, 0); - Opal.def(self, '$add_used_helpers', $TopNode_add_used_helpers$7 = function $$add_used_helpers() { - var $$8, self = this; - - return $send(self.$compiler().$helpers().$to_a(), 'each', [], ($$8 = function(h){var self = $$8.$$s == null ? this : $$8.$$s; - - - - if (h == null) { - h = nil; - }; - return self.$add_temp("" + "$" + (h) + " = Opal." + (h));}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - }, $TopNode_add_used_helpers$7.$$arity = 0); - - Opal.def(self, '$add_used_operators', $TopNode_add_used_operators$9 = function $$add_used_operators() { - var $$10, self = this, operators = nil; + $def(self, '$add_used_helpers', function $$add_used_helpers() { + var self = this; - - operators = self.$compiler().$operator_helpers().$to_a(); - return $send(operators, 'each', [], ($$10 = function(op){var self = $$10.$$s == null ? this : $$10.$$s, name = nil; + return $send(self.$compiler().$helpers().$to_a(), 'each', [], function $$2(h){var self = $$2.$$s == null ? this : $$2.$$s; - if (op == null) { - op = nil; - }; - name = $$$($$$($$($nesting, 'Nodes'), 'CallNode'), 'OPERATORS')['$[]'](op); - self.$line("" + "function $rb_" + (name) + "(lhs, rhs) {"); - self.$line("" + " return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs " + (op) + " rhs : lhs['$" + (op) + "'](rhs);"); - return self.$line("}");}, $$10.$$s = self, $$10.$$arity = 1, $$10)); - }, $TopNode_add_used_operators$9.$$arity = 0); + if (h == null) h = nil;; + return self.$add_temp("$" + (h) + " = Opal." + (h));}, {$$arity: 1, $$s: self}) + }, 0); - Opal.def(self, '$compile_method_stubs', $TopNode_compile_method_stubs$11 = function $$compile_method_stubs() { - var $$12, self = this, calls = nil, stubs = nil; + $def(self, '$compile_method_stubs', function $$compile_method_stubs() { + var self = this, calls = nil, stubs = nil; if ($truthy(self.$compiler()['$method_missing?']())) { calls = self.$compiler().$method_calls(); - stubs = $send(calls.$to_a(), 'map', [], ($$12 = function(k){var self = $$12.$$s == null ? this : $$12.$$s; - - - - if (k == null) { - k = nil; - }; - return "" + "'$" + (k) + "'";}, $$12.$$s = self, $$12.$$arity = 1, $$12)).$join(", "); + stubs = $send(calls.$to_a(), 'map', [], "to_s".$to_proc()).$join(","); if ($truthy(stubs['$empty?']())) { return nil } else { - return self.$line("" + "Opal.add_stubs([" + (stubs) + "]);") + return self.$line("Opal.add_stubs('" + (stubs) + "');") }; } else { return nil } - }, $TopNode_compile_method_stubs$11.$$arity = 0); + }, 0); - Opal.def(self, '$compile_end_construct', $TopNode_compile_end_construct$13 = function $$compile_end_construct() { + $def(self, '$compile_end_construct', function $$compile_end_construct() { var self = this, content = nil; if ($truthy((content = self.$compiler().$eof_content()))) { self.$line("var $__END__ = Opal.Object.$new();"); - return self.$line("" + "$__END__.$read = function() { return " + (content.$inspect()) + "; };"); + return self.$line("$__END__.$read = function() { return " + (content.$inspect()) + "; };"); } else { return nil } - }, $TopNode_compile_end_construct$13.$$arity = 0); - return (Opal.def(self, '$version_comment', $TopNode_version_comment$14 = function $$version_comment() { - var self = this; - - return "" + "/* Generated by Opal " + ($$$($$($nesting, 'Opal'), 'VERSION')) + " */" - }, $TopNode_version_comment$14.$$arity = 0), nil) && 'version_comment'; - })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + }, 0); + return $def(self, '$version_comment', function $$version_comment() { + + return "/* Generated by Opal " + ($$$($$('Opal'), 'VERSION')) + " */" + }, 0); + })($nesting[0], $$('ScopeNode'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/while"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/while"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$js_truthy', '$test', '$with_temp', '$in_while', '$compiler', '$wrap_in_closure?', '$[]=', '$while_loop', '$-', '$indent', '$stmt', '$body', '$uses_redo?', '$compile_with_redo', '$compile_without_redo', '$wrap', '$private', '$push', '$compile_while', '$while_open', '$while_close', '$line', '$[]', '$expr?', '$recv?']); + Opal.add_stubs('require,handle,children,js_truthy,test,with_temp,in_while,compiler,wrap_in_closure?,[]=,while_loop,-,indent,stmt,body,uses_redo?,compile_with_redo,compile_without_redo,await_encountered,scope,wrap,private,push,compile_while,while_open,while_close,line,[],expr?,recv?'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -38335,101 +35014,101 @@ Opal.modules["opal/nodes/while"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'WhileNode'); - var $nesting = [self].concat($parent_nesting), $WhileNode_compile$1, $WhileNode_compile_with_redo$5, $WhileNode_compile_without_redo$6, $WhileNode_compile_while$7, $WhileNode_while_open$9, $WhileNode_while_close$10, $WhileNode_uses_redo$ques$11, $WhileNode_wrap_in_closure$ques$12; - + self.$handle("while"); self.$children("test", "body"); - Opal.def(self, '$compile', $WhileNode_compile$1 = function $$compile() { - var $$2, self = this, test_code = nil; + $def(self, '$compile', function $$compile() { + var self = this, test_code = nil; test_code = self.$js_truthy(self.$test()); - $send(self, 'with_temp', [], ($$2 = function(redo_var){var self = $$2.$$s == null ? this : $$2.$$s, $$3; + $send(self, 'with_temp', [], function $$1(redo_var){var self = $$1.$$s == null ? this : $$1.$$s; - if (redo_var == null) { - redo_var = nil; - }; - return $send(self.$compiler(), 'in_while', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $$4, $writer = nil, body_code = nil; + if (redo_var == null) redo_var = nil;; + return $send(self.$compiler(), 'in_while', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil, body_code = nil; if ($truthy(self['$wrap_in_closure?']())) { $writer = ["closure", true]; - $send(self.$while_loop(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(self.$while_loop(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; $writer = ["redo_var", redo_var]; - $send(self.$while_loop(), '[]=', Opal.to_a($writer)); + $send(self.$while_loop(), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - body_code = $send(self, 'indent', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + body_code = $send(self, 'indent', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; - return self.$stmt(self.$body())}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + return self.$stmt(self.$body())}, {$$arity: 0, $$s: self}); if ($truthy(self['$uses_redo?']())) { return self.$compile_with_redo(test_code, body_code, redo_var) } else { return self.$compile_without_redo(test_code, body_code) - };}, $$3.$$s = self, $$3.$$arity = 0, $$3));}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + };}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); if ($truthy(self['$wrap_in_closure?']())) { - return self.$wrap("(function() {", "; return nil; })()") + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() {", "; return nil; })())") + } else { + return self.$wrap("(function() {", "; return nil; })()") + } } else { return nil }; - }, $WhileNode_compile$1.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$compile_with_redo', $WhileNode_compile_with_redo$5 = function $$compile_with_redo(test_code, body_code, redo_var) { + $def(self, '$compile_with_redo', function $$compile_with_redo(test_code, body_code, redo_var) { var self = this; self.$push("" + (redo_var) + " = false; "); return self.$compile_while([redo_var, " || ", test_code], ["" + (redo_var) + " = false;", body_code]); - }, $WhileNode_compile_with_redo$5.$$arity = 3); + }, 3); - Opal.def(self, '$compile_without_redo', $WhileNode_compile_without_redo$6 = function $$compile_without_redo(test_code, body_code) { + $def(self, '$compile_without_redo', function $$compile_without_redo(test_code, body_code) { var self = this; return self.$compile_while([test_code], [body_code]) - }, $WhileNode_compile_without_redo$6.$$arity = 2); + }, 2); - Opal.def(self, '$compile_while', $WhileNode_compile_while$7 = function $$compile_while(test_code, body_code) { - var $$8, self = this; + $def(self, '$compile_while', function $$compile_while(test_code, body_code) { + var self = this; - $send(self, 'push', [self.$while_open()].concat(Opal.to_a(test_code)).concat([self.$while_close()])); - $send(self, 'indent', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + $send(self, 'push', [self.$while_open()].concat($to_a(test_code)).concat([self.$while_close()])); + $send(self, 'indent', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return $send(self, 'line', Opal.to_a(body_code))}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + return $send(self, 'line', $to_a(body_code))}, {$$arity: 0, $$s: self}); return self.$line("}"); - }, $WhileNode_compile_while$7.$$arity = 2); + }, 2); - Opal.def(self, '$while_open', $WhileNode_while_open$9 = function $$while_open() { - var self = this; - + $def(self, '$while_open', function $$while_open() { + return "while (" - }, $WhileNode_while_open$9.$$arity = 0); + }, 0); - Opal.def(self, '$while_close', $WhileNode_while_close$10 = function $$while_close() { - var self = this; - + $def(self, '$while_close', function $$while_close() { + return ") {" - }, $WhileNode_while_close$10.$$arity = 0); + }, 0); - Opal.def(self, '$uses_redo?', $WhileNode_uses_redo$ques$11 = function() { + $def(self, '$uses_redo?', function $WhileNode_uses_redo$ques$5() { var self = this; return self.$while_loop()['$[]']("use_redo") - }, $WhileNode_uses_redo$ques$11.$$arity = 0); - return (Opal.def(self, '$wrap_in_closure?', $WhileNode_wrap_in_closure$ques$12 = function() { + }, 0); + return $def(self, '$wrap_in_closure?', function $WhileNode_wrap_in_closure$ques$6() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self['$expr?']()))) { @@ -38437,85 +35116,73 @@ Opal.modules["opal/nodes/while"] = function(Opal) { } else { return self['$recv?']() } - }, $WhileNode_wrap_in_closure$ques$12.$$arity = 0), nil) && 'wrap_in_closure?'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('Base')); + (function($base, $super) { var self = $klass($base, $super, 'UntilNode'); - var $nesting = [self].concat($parent_nesting), $UntilNode_while_open$13, $UntilNode_while_close$14; - + self.$handle("until"); self.$private(); - Opal.def(self, '$while_open', $UntilNode_while_open$13 = function $$while_open() { - var self = this; - + $def(self, '$while_open', function $$while_open() { + return "while (!(" - }, $UntilNode_while_open$13.$$arity = 0); - return (Opal.def(self, '$while_close', $UntilNode_while_close$14 = function $$while_close() { - var self = this; - + }, 0); + return $def(self, '$while_close', function $$while_close() { + return ")) {" - }, $UntilNode_while_close$14.$$arity = 0), nil) && 'while_close'; - })($nesting[0], $$($nesting, 'WhileNode'), $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('WhileNode')); + (function($base, $super) { var self = $klass($base, $super, 'WhilePostNode'); - var $nesting = [self].concat($parent_nesting), $WhilePostNode_compile_while$15, $WhilePostNode_while_close$17; - + self.$handle("while_post"); self.$private(); - Opal.def(self, '$compile_while', $WhilePostNode_compile_while$15 = function $$compile_while(test_code, body_code) { - var $$16, self = this; + $def(self, '$compile_while', function $$compile_while(test_code, body_code) { + var self = this; self.$push("do {"); - $send(self, 'indent', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - - return $send(self, 'line', Opal.to_a(body_code))}, $$16.$$s = self, $$16.$$arity = 0, $$16)); - return $send(self, 'line', ["} ", self.$while_open()].concat(Opal.to_a(test_code)).concat([self.$while_close()])); - }, $WhilePostNode_compile_while$15.$$arity = 2); - return (Opal.def(self, '$while_close', $WhilePostNode_while_close$17 = function $$while_close() { - var self = this; + $send(self, 'indent', [], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s; + return $send(self, 'line', $to_a(body_code))}, {$$arity: 0, $$s: self}); + return $send(self, 'line', ["} ", self.$while_open()].concat($to_a(test_code)).concat([self.$while_close()])); + }, 2); + return $def(self, '$while_close', function $$while_close() { + return ");" - }, $WhilePostNode_while_close$17.$$arity = 0), nil) && 'while_close'; - })($nesting[0], $$($nesting, 'WhileNode'), $nesting); - return (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], $$('WhileNode')); + return (function($base, $super) { var self = $klass($base, $super, 'UntilPostNode'); - var $nesting = [self].concat($parent_nesting), $UntilPostNode_while_open$18, $UntilPostNode_while_close$19; - + self.$handle("until_post"); self.$private(); - Opal.def(self, '$while_open', $UntilPostNode_while_open$18 = function $$while_open() { - var self = this; - + $def(self, '$while_open', function $$while_open() { + return "while(!(" - }, $UntilPostNode_while_open$18.$$arity = 0); - return (Opal.def(self, '$while_close', $UntilPostNode_while_close$19 = function $$while_close() { - var self = this; - + }, 0); + return $def(self, '$while_close', function $$while_close() { + return "));" - }, $UntilPostNode_while_close$19.$$arity = 0), nil) && 'while_close'; - })($nesting[0], $$($nesting, 'WhilePostNode'), $nesting); + }, 0); + })($nesting[0], $$('WhilePostNode')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/hash"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["opal/nodes/hash"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $def = Opal.def, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $to_ary = Opal.to_ary, $hash2 = Opal.hash2, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$require', '$handle', '$attr_accessor', '$each', '$children', '$type', '$===', '$<<', '$[]', '$all?', '$keys', '$include?', '$has_kwsplat', '$compile_merge', '$simple_keys?', '$compile_hash2', '$compile_hash', '$helper', '$==', '$empty?', '$expr', '$s', '$each_with_index', '$push', '$wrap', '$times', '$size', '$inspect', '$to_s', '$values', '$[]=', '$-', '$join', '$value']); + Opal.add_stubs('require,handle,attr_accessor,each,children,===,type,<<,[],all?,keys,include?,has_kwsplat,compile_merge,simple_keys?,compile_hash2,compile_hash,helper,==,empty?,expr,s,each_with_index,push,wrap,times,size,inspect,to_s,values,[]=,-,join,value'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -38526,65 +35193,59 @@ Opal.modules["opal/nodes/hash"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'HashNode'); - var $nesting = [self].concat($parent_nesting), $HashNode_initialize$1, $HashNode_simple_keys$ques$3, $HashNode_compile$5, $HashNode_compile_merge$6, $HashNode_compile_hash$9, $HashNode_compile_hash2$11; - + self.$handle("hash"); self.$attr_accessor("has_kwsplat", "keys", "values"); - Opal.def(self, '$initialize', $HashNode_initialize$1 = function $$initialize($a) { - var $post_args, $$2, $iter = $HashNode_initialize$1.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $HashNode_initialize$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$initialize.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - $send2(self, $find_super(self, 'initialize', $HashNode_initialize$1, false, true), 'initialize', $zuper, $iter); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a($rest_arg), $yield); self.has_kwsplat = false; self.keys = []; self.values = []; - return $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s, $case = nil; + return $send(self.$children(), 'each', [], function $$1(child){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; if (self.keys == null) self.keys = nil; if (self.values == null) self.values = nil; - if (child == null) { - child = nil; - }; - return (function() {$case = child.$type(); - if ("kwsplat"['$===']($case)) {return (self.has_kwsplat = true)} - else if ("pair"['$===']($case)) { - self.keys['$<<'](child.$children()['$[]'](0)); - return self.values['$<<'](child.$children()['$[]'](1));} - else { return nil }})();}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }, $HashNode_initialize$1.$$arity = -1); + if (child == null) child = nil;; + if ($eqeqeq("kwsplat", ($ret_or_1 = child.$type()))) { + return (self.has_kwsplat = true) + } else if ($eqeqeq("pair", $ret_or_1)) { + + self.keys['$<<'](child.$children()['$[]'](0)); + return self.values['$<<'](child.$children()['$[]'](1)); + } else { + return nil + };}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$simple_keys?', $HashNode_simple_keys$ques$3 = function() { - var $$4, self = this; - - return $send(self.$keys(), 'all?', [], ($$4 = function(key){var self = $$4.$$s == null ? this : $$4.$$s; + $def(self, '$simple_keys?', function $HashNode_simple_keys$ques$2() { + var self = this; + return $send(self.$keys(), 'all?', [], function $$3(key){ - if (key == null) { - key = nil; - }; - return ["sym", "str"]['$include?'](key.$type());}, $$4.$$s = self, $$4.$$arity = 1, $$4)) - }, $HashNode_simple_keys$ques$3.$$arity = 0); + if (key == null) key = nil;; + return ["sym", "str"]['$include?'](key.$type());}, 1) + }, 0); - Opal.def(self, '$compile', $HashNode_compile$5 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; if ($truthy(self.$has_kwsplat())) { @@ -38594,143 +35255,120 @@ Opal.modules["opal/nodes/hash"] = function(Opal) { } else { return self.$compile_hash() } - }, $HashNode_compile$5.$$arity = 0); + }, 0); - Opal.def(self, '$compile_merge', $HashNode_compile_merge$6 = function $$compile_merge() { - var $a, $$7, $$8, self = this, result = nil, seq = nil; + $def(self, '$compile_merge', function $$compile_merge() { + var $a, self = this, result = nil, seq = nil; self.$helper("hash"); $a = [[], []], (result = $a[0]), (seq = $a[1]), $a; - $send(self.$children(), 'each', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s; + $send(self.$children(), 'each', [], function $$4(child){var self = $$4.$$s == null ? this : $$4.$$s; - if (child == null) { - child = nil; - }; - if (child.$type()['$==']("kwsplat")) { + if (child == null) child = nil;; + if ($eqeq(child.$type(), "kwsplat")) { - if ($truthy(seq['$empty?']())) { - } else { - result['$<<'](self.$expr($send(self, 's', ["hash"].concat(Opal.to_a(seq))))) + if (!$truthy(seq['$empty?']())) { + result['$<<'](self.$expr($send(self, 's', ["hash"].concat($to_a(seq))))) }; result['$<<'](self.$expr(child)); return (seq = []); } else { return seq['$<<'](child) - };}, $$7.$$s = self, $$7.$$arity = 1, $$7)); - if ($truthy(seq['$empty?']())) { - } else { - result['$<<'](self.$expr($send(self, 's', ["hash"].concat(Opal.to_a(seq))))) + };}, {$$arity: 1, $$s: self}); + if (!$truthy(seq['$empty?']())) { + result['$<<'](self.$expr($send(self, 's', ["hash"].concat($to_a(seq))))) }; - return $send(result, 'each_with_index', [], ($$8 = function(fragment, idx){var self = $$8.$$s == null ? this : $$8.$$s; + return $send(result, 'each_with_index', [], function $$5(fragment, idx){var self = $$5.$$s == null ? this : $$5.$$s; - if (fragment == null) { - fragment = nil; - }; + if (fragment == null) fragment = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { + if (idx == null) idx = nil;; + if ($eqeq(idx, 0)) { return self.$push(fragment) } else { return self.$push(".$merge(", fragment, ")") - };}, $$8.$$s = self, $$8.$$arity = 2, $$8)); - }, $HashNode_compile_merge$6.$$arity = 0); + };}, {$$arity: 2, $$s: self}); + }, 0); - Opal.def(self, '$compile_hash', $HashNode_compile_hash$9 = function $$compile_hash() { - var $$10, self = this; + $def(self, '$compile_hash', function $$compile_hash() { + var self = this; self.$helper("hash"); - $send(self.$children(), 'each_with_index', [], ($$10 = function(pair, idx){var self = $$10.$$s == null ? this : $$10.$$s, $a, $b, key = nil, value = nil; + $send(self.$children(), 'each_with_index', [], function $$6(pair, idx){var $a, $b, self = $$6.$$s == null ? this : $$6.$$s, key = nil, value = nil; - if (pair == null) { - pair = nil; - }; + if (pair == null) pair = nil;; - if (idx == null) { - idx = nil; - }; - $b = pair.$children(), $a = Opal.to_ary($b), (key = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $b; - if (idx['$=='](0)) { - } else { + if (idx == null) idx = nil;; + $b = pair.$children(), $a = $to_ary($b), (key = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $b; + if (!$eqeq(idx, 0)) { self.$push(", ") }; - return self.$push(self.$expr(key), ", ", self.$expr(value));}, $$10.$$s = self, $$10.$$arity = 2, $$10)); + return self.$push(self.$expr(key), ", ", self.$expr(value));}, {$$arity: 2, $$s: self}); return self.$wrap("$hash(", ")"); - }, $HashNode_compile_hash$9.$$arity = 0); - return (Opal.def(self, '$compile_hash2', $HashNode_compile_hash2$11 = function $$compile_hash2() { - var $a, $$12, $$13, self = this, hash_obj = nil, hash_keys = nil; + }, 0); + return $def(self, '$compile_hash2', function $$compile_hash2() { + var $a, self = this, hash_obj = nil, hash_keys = nil; $a = [$hash2([], {}), []], (hash_obj = $a[0]), (hash_keys = $a[1]), $a; self.$helper("hash2"); - $send(self.$keys().$size(), 'times', [], ($$12 = function(idx){var self = $$12.$$s == null ? this : $$12.$$s, key = nil, $writer = nil; + $send(self.$keys().$size(), 'times', [], function $$7(idx){var self = $$7.$$s == null ? this : $$7.$$s, key = nil, $writer = nil; - if (idx == null) { - idx = nil; - }; + if (idx == null) idx = nil;; key = self.$keys()['$[]'](idx).$children()['$[]'](0).$to_s().$inspect(); - if ($truthy(hash_obj['$include?'](key))) { - } else { + if (!$truthy(hash_obj['$include?'](key))) { hash_keys['$<<'](key) }; $writer = [key, self.$expr(self.$values()['$[]'](idx))]; - $send(hash_obj, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, $$12.$$s = self, $$12.$$arity = 1, $$12)); - $send(hash_keys, 'each_with_index', [], ($$13 = function(key, idx){var self = $$13.$$s == null ? this : $$13.$$s; + $send(hash_obj, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, {$$arity: 1, $$s: self}); + $send(hash_keys, 'each_with_index', [], function $$8(key, idx){var self = $$8.$$s == null ? this : $$8.$$s; - if (key == null) { - key = nil; - }; + if (key == null) key = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { - } else { + if (idx == null) idx = nil;; + if (!$eqeq(idx, 0)) { self.$push(", ") }; self.$push("" + (key) + ": "); - return self.$push(hash_obj['$[]'](key));}, $$13.$$s = self, $$13.$$arity = 2, $$13)); - return self.$wrap("" + "$hash2([" + (hash_keys.$join(", ")) + "], {", "})"); - }, $HashNode_compile_hash2$11.$$arity = 0), nil) && 'compile_hash2'; - })($nesting[0], $$($nesting, 'Base'), $nesting); - return (function($base, $super, $parent_nesting) { + return self.$push(hash_obj['$[]'](key));}, {$$arity: 2, $$s: self}); + return self.$wrap("$hash2([" + (hash_keys.$join(", ")) + "], {", "})"); + }, 0); + })($nesting[0], $$('Base')); + return (function($base, $super) { var self = $klass($base, $super, 'KwSplatNode'); - var $nesting = [self].concat($parent_nesting), $KwSplatNode_compile$14; - + self.$handle("kwsplat"); self.$children("value"); - return (Opal.def(self, '$compile', $KwSplatNode_compile$14 = function $$compile() { + return $def(self, '$compile', function $$compile() { var self = this; return self.$push("Opal.to_hash(", self.$expr(self.$value()), ")") - }, $KwSplatNode_compile$14.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting); + }, 0); + })($nesting[0], $$('Base')); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/array"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/array"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$empty?', '$children', '$push', '$each', '$==', '$type', '$expr', '$<<', '$fragment']); + Opal.add_stubs('require,handle,empty?,children,push,each,==,type,expr,<<,fragment'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -38741,29 +35379,27 @@ Opal.modules["opal/nodes/array"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ArrayNode'); - var $nesting = [self].concat($parent_nesting), $ArrayNode_compile$1; - + self.$handle("array"); - return (Opal.def(self, '$compile', $ArrayNode_compile$1 = function $$compile() { - var $a, $$2, self = this, code = nil, work = nil, join = nil; + return $def(self, '$compile', function $$compile() { + var $a, self = this, code = nil, work = nil, join = nil; if ($truthy(self.$children()['$empty?']())) { - return self.$push("[]")}; + return self.$push("[]") + }; $a = [[], []], (code = $a[0]), (work = $a[1]), $a; - $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s, splat = nil, part = nil; + $send(self.$children(), 'each', [], function $$1(child){var self = $$1.$$s == null ? this : $$1.$$s, splat = nil, part = nil; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; splat = child.$type()['$==']("splat"); part = self.$expr(child); if ($truthy(splat)) { @@ -38786,14 +35422,12 @@ Opal.modules["opal/nodes/array"] = function(Opal) { return (work = []); } else { - if ($truthy(work['$empty?']())) { - } else { + if (!$truthy(work['$empty?']())) { work['$<<'](self.$fragment(", ")) }; return work['$<<'](part); - };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - if ($truthy(work['$empty?']())) { - } else { + };}, {$$arity: 1, $$s: self}); + if (!$truthy(work['$empty?']())) { join = [self.$fragment("["), work, self.$fragment("]")]; if ($truthy(code['$empty?']())) { @@ -38803,17 +35437,16 @@ Opal.modules["opal/nodes/array"] = function(Opal) { }; }; return self.$push(code); - }, $ArrayNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/defined"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $slice = Opal.slice, $send = Opal.send, $range = Opal.range; +Opal.modules["opal/nodes/defined"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $eqeqeq = Opal.eqeqeq, $eqeq = Opal.eqeq, $def = Opal.def, $truthy = Opal.truthy, $to_a = Opal.to_a, $slice = Opal.slice, $send = Opal.send, $range = Opal.range; - Opal.add_stubs(['$require', '$handle', '$children', '$type', '$value', '$===', '$push', '$inspect', '$to_s', '$==', '$size', '$[]', '$compile_defined_send', '$wrap', '$compile_defined_ivar', '$compile_defined_super', '$compile_defined_yield', '$compile_defined_xstr', '$compile_defined_const', '$compile_defined_cvar', '$compile_defined_gvar', '$compile_defined_back_ref', '$compile_defined_nth_ref', '$compile_defined_array', '$respond_to?', '$__send__', '$new_temp', '$scope', '$expr', '$wrap_with_try_catch', '$mid_to_jsid', '$compile_defined', '$compile_send_recv_doesnt_raise', '$each', '$s', '$uses_block!', '$block_name', '$find_parent_def', '$nil?', '$class_variable_owner', '$helper', '$include?', '$each_with_index']); + Opal.add_stubs('require,handle,children,===,type,value,push,inspect,to_s,==,[],size,compile_defined_send,wrap,compile_defined_ivar,compile_defined_super,compile_defined_yield,compile_defined_xstr,compile_defined_const,compile_defined_cvar,compile_defined_gvar,compile_defined_back_ref,compile_defined_nth_ref,compile_defined_array,respond_to?,__send__,new_temp,scope,expr,wrap_with_try_catch,mid_to_jsid,compile_defined,compile_send_recv_doesnt_raise,self,each,s,uses_block!,block_name,find_parent_def,nil?,relative_access,absolute_const,top_scope,class_variable_owner,helper,include?,each_with_index'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -38824,87 +35457,98 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'DefinedNode'); - var $nesting = [self].concat($parent_nesting), $DefinedNode_compile$1, $DefinedNode_compile_defined$2, $DefinedNode_wrap_with_try_catch$3, $DefinedNode_compile_send_recv_doesnt_raise$4, $DefinedNode_compile_defined_send$5, $DefinedNode_compile_defined_ivar$7, $DefinedNode_compile_defined_super$8, $DefinedNode_compile_defined_yield$9, $DefinedNode_compile_defined_xstr$10, $DefinedNode_compile_defined_const$11, $DefinedNode_compile_defined_cvar$12, $DefinedNode_compile_defined_gvar$13, $DefinedNode_compile_defined_back_ref$14, $DefinedNode_compile_defined_nth_ref$15, $DefinedNode_compile_defined_array$16; - + self.$handle("defined?"); self.$children("value"); - Opal.def(self, '$compile', $DefinedNode_compile$1 = function $$compile() { - var self = this, $case = nil, $ret_or_1 = nil; + $def(self, '$compile', function $$compile() { + var self = this, $ret_or_1 = nil; - return (function() {$case = self.$value().$type(); - if ("self"['$===']($case) || "nil"['$===']($case) || "false"['$===']($case) || "true"['$===']($case)) {return self.$push(self.$value().$type().$to_s().$inspect())} - else if ("lvasgn"['$===']($case) || "ivasgn"['$===']($case) || "gvasgn"['$===']($case) || "cvasgn"['$===']($case) || "casgn"['$===']($case) || "op_asgn"['$===']($case) || "or_asgn"['$===']($case) || "and_asgn"['$===']($case)) {return self.$push("'assignment'")} - else if ("lvar"['$===']($case)) {return self.$push("'local-variable'")} - else if ("begin"['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_1 = self.$value().$children().$size()['$=='](1)))) { - return self.$value().$children()['$[]'](0).$type()['$==']("masgn") - } else { - return $ret_or_1 - }; return nil; })())) { + if (($eqeqeq("self", ($ret_or_1 = self.$value().$type())) || (($eqeqeq("nil", $ret_or_1) || (($eqeqeq("false", $ret_or_1) || ($eqeqeq("true", $ret_or_1)))))))) { + return self.$push(self.$value().$type().$to_s().$inspect()) + } else if (($eqeqeq("lvasgn", $ret_or_1) || (($eqeqeq("ivasgn", $ret_or_1) || (($eqeqeq("gvasgn", $ret_or_1) || (($eqeqeq("cvasgn", $ret_or_1) || (($eqeqeq("casgn", $ret_or_1) || (($eqeqeq("op_asgn", $ret_or_1) || (($eqeqeq("or_asgn", $ret_or_1) || ($eqeqeq("and_asgn", $ret_or_1)))))))))))))))) { return self.$push("'assignment'") + } else if ($eqeqeq("lvar", $ret_or_1)) { + return self.$push("'local-variable'") + } else if ($eqeqeq("begin", $ret_or_1)) { + if (($eqeq(self.$value().$children().$size(), 1) && ($eqeq(self.$value().$children()['$[]'](0).$type(), "masgn")))) { + return self.$push("'assignment'") + } else { + return self.$push("'expression'") + } + } else if ($eqeqeq("send", $ret_or_1)) { + + self.$compile_defined_send(self.$value()); + return self.$wrap("(", " ? 'method' : nil)"); + } else if ($eqeqeq("ivar", $ret_or_1)) { + + self.$compile_defined_ivar(self.$value()); + return self.$wrap("(", " ? 'instance-variable' : nil)"); + } else if (($eqeqeq("zsuper", $ret_or_1) || ($eqeqeq("super", $ret_or_1)))) { + return self.$compile_defined_super() + } else if ($eqeqeq("yield", $ret_or_1)) { + + self.$compile_defined_yield(); + return self.$wrap("(", " ? 'yield' : nil)"); + } else if ($eqeqeq("xstr", $ret_or_1)) { + return self.$compile_defined_xstr(self.$value()) + } else if ($eqeqeq("const", $ret_or_1)) { + + self.$compile_defined_const(self.$value()); + return self.$wrap("(", " ? 'constant' : nil)"); + } else if ($eqeqeq("cvar", $ret_or_1)) { + + self.$compile_defined_cvar(self.$value()); + return self.$wrap("(", " ? 'class variable' : nil)"); + } else if ($eqeqeq("gvar", $ret_or_1)) { + + self.$compile_defined_gvar(self.$value()); + return self.$wrap("(", " ? 'global-variable' : nil)"); + } else if ($eqeqeq("back_ref", $ret_or_1)) { + + self.$compile_defined_back_ref(); + return self.$wrap("(", " ? 'global-variable' : nil)"); + } else if ($eqeqeq("nth_ref", $ret_or_1)) { + + self.$compile_defined_nth_ref(); + return self.$wrap("(", " ? 'global-variable' : nil)"); + } else if ($eqeqeq("array", $ret_or_1)) { + + self.$compile_defined_array(self.$value()); + return self.$wrap("(", " ? 'expression' : nil)"); } else { return self.$push("'expression'") - }} - else if ("send"['$===']($case)) { - self.$compile_defined_send(self.$value()); - return self.$wrap("(", " ? 'method' : nil)");} - else if ("ivar"['$===']($case)) { - self.$compile_defined_ivar(self.$value()); - return self.$wrap("(", " ? 'instance-variable' : nil)");} - else if ("zsuper"['$===']($case) || "super"['$===']($case)) {return self.$compile_defined_super()} - else if ("yield"['$===']($case)) { - self.$compile_defined_yield(); - return self.$wrap("(", " ? 'yield' : nil)");} - else if ("xstr"['$===']($case)) {return self.$compile_defined_xstr(self.$value())} - else if ("const"['$===']($case)) { - self.$compile_defined_const(self.$value()); - return self.$wrap("(", " ? 'constant' : nil)");} - else if ("cvar"['$===']($case)) { - self.$compile_defined_cvar(self.$value()); - return self.$wrap("(", " ? 'class variable' : nil)");} - else if ("gvar"['$===']($case)) { - self.$compile_defined_gvar(self.$value()); - return self.$wrap("(", " ? 'global-variable' : nil)");} - else if ("back_ref"['$===']($case)) { - self.$compile_defined_back_ref(); - return self.$wrap("(", " ? 'global-variable' : nil)");} - else if ("nth_ref"['$===']($case)) { - self.$compile_defined_nth_ref(); - return self.$wrap("(", " ? 'global-variable' : nil)");} - else if ("array"['$===']($case)) { - self.$compile_defined_array(self.$value()); - return self.$wrap("(", " ? 'expression' : nil)");} - else {return self.$push("'expression'")}})() - }, $DefinedNode_compile$1.$$arity = 0); - - Opal.def(self, '$compile_defined', $DefinedNode_compile_defined$2 = function $$compile_defined(node) { + } + }, 0); + + $def(self, '$compile_defined', function $$compile_defined(node) { var self = this, type = nil, node_tmp = nil; type = node.$type(); - if ($truthy(self['$respond_to?']("" + "compile_defined_" + (type)))) { - return self.$__send__("" + "compile_defined_" + (type), node) + if ($truthy(self['$respond_to?']("compile_defined_" + (type)))) { + return self.$__send__("compile_defined_" + (type), node) } else { node_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (node_tmp) + " = ", self.$expr(node), ")"); + self.$push("(" + (node_tmp) + " = ", self.$expr(node), ")"); return node_tmp; }; - }, $DefinedNode_compile_defined$2.$$arity = 1); + }, 1); - Opal.def(self, '$wrap_with_try_catch', $DefinedNode_wrap_with_try_catch$3 = function $$wrap_with_try_catch(code) { + $def(self, '$wrap_with_try_catch', function $$wrap_with_try_catch(code) { var self = this, returning_tmp = nil; returning_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (returning_tmp) + " = (function() { try {"); - self.$push("" + " return " + (code) + ";"); + self.$push("(" + (returning_tmp) + " = (function() { try {"); + self.$push(" return " + (code) + ";"); self.$push("} catch ($err) {"); self.$push(" if (Opal.rescue($err, [Opal.Exception])) {"); self.$push(" try {"); @@ -38913,119 +35557,116 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { self.$push(" } else { throw $err; }"); self.$push("}})())"); return returning_tmp; - }, $DefinedNode_wrap_with_try_catch$3.$$arity = 1); + }, 1); - Opal.def(self, '$compile_send_recv_doesnt_raise', $DefinedNode_compile_send_recv_doesnt_raise$4 = function $$compile_send_recv_doesnt_raise(recv_code) { + $def(self, '$compile_send_recv_doesnt_raise', function $$compile_send_recv_doesnt_raise(recv_code) { var self = this; return self.$wrap_with_try_catch(recv_code) - }, $DefinedNode_compile_send_recv_doesnt_raise$4.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_send', $DefinedNode_compile_defined_send$5 = function $$compile_defined_send(node) { - var $a, $$6, self = this, recv = nil, method_name = nil, args = nil, mid = nil, recv_code = nil, recv_tmp = nil, recv_value_tmp = nil, meth_tmp = nil; + $def(self, '$compile_defined_send', function $$compile_defined_send(node) { + var $a, self = this, recv = nil, method_name = nil, args = nil, mid = nil, recv_code = nil, recv_tmp = nil, recv_value_tmp = nil, meth_tmp = nil; - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + $a = [].concat($to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; mid = self.$mid_to_jsid(method_name.$to_s()); if ($truthy(recv)) { recv_code = self.$compile_defined(recv); self.$push(" && "); - if (recv.$type()['$==']("send")) { + if ($eqeq(recv.$type(), "send")) { recv_code = self.$compile_send_recv_doesnt_raise(recv_code); - self.$push(" && ");}; + self.$push(" && "); + }; recv_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (recv_tmp) + " = ", recv_code, "" + ", " + (recv_tmp) + ") && "); + self.$push("(" + (recv_tmp) + " = ", recv_code, ", " + (recv_tmp) + ") && "); } else { - recv_tmp = "self" + recv_tmp = self.$scope().$self() }; recv_value_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (recv_value_tmp) + " = " + (recv_tmp) + ") && "); + self.$push("(" + (recv_value_tmp) + " = " + (recv_tmp) + ") && "); meth_tmp = self.$scope().$new_temp(); - self.$push("" + "(((" + (meth_tmp) + " = " + (recv_value_tmp) + (mid) + ") && !" + (meth_tmp) + ".$$stub)"); - self.$push("" + " || " + (recv_value_tmp) + "['$respond_to_missing?']('" + (method_name) + "'))"); - $send(args, 'each', [], ($$6 = function(arg){var self = $$6.$$s == null ? this : $$6.$$s, $case = nil; + self.$push("(((" + (meth_tmp) + " = " + (recv_value_tmp) + (mid) + ") && !" + (meth_tmp) + ".$$stub)"); + self.$push(" || " + (recv_value_tmp) + "['$respond_to_missing?']('" + (method_name) + "'))"); + $send(args, 'each', [], function $$1(arg){var self = $$1.$$s == null ? this : $$1.$$s, $ret_or_1 = nil; - if (arg == null) { - arg = nil; - }; - return (function() {$case = arg.$type(); - if ("block_pass"['$===']($case)) {return nil} - else { - self.$push(" && "); - return self.$compile_defined(arg);}})();}, $$6.$$s = self, $$6.$$arity = 1, $$6)); + if (arg == null) arg = nil;; + if ($eqeqeq("block_pass", ($ret_or_1 = arg.$type()))) { + return nil + } else { + + self.$push(" && "); + return self.$compile_defined(arg); + };}, {$$arity: 1, $$s: self}); self.$wrap("(", ")"); return "" + (meth_tmp) + "()"; - }, $DefinedNode_compile_defined_send$5.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_ivar', $DefinedNode_compile_defined_ivar$7 = function $$compile_defined_ivar(node) { + $def(self, '$compile_defined_ivar', function $$compile_defined_ivar(node) { var self = this, name = nil, tmp = nil; name = node.$children()['$[]'](0).$to_s()['$[]']($range(1, -1, false)); tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (tmp) + " = self['" + (name) + "'], " + (tmp) + " != null && " + (tmp) + " !== nil)"); + self.$push("(" + (tmp) + " = " + (self.$scope().$self()) + "['" + (name) + "'], " + (tmp) + " != null && " + (tmp) + " !== nil)"); return tmp; - }, $DefinedNode_compile_defined_ivar$7.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_super', $DefinedNode_compile_defined_super$8 = function $$compile_defined_super() { + $def(self, '$compile_defined_super', function $$compile_defined_super() { var self = this; return self.$push(self.$expr(self.$s("defined_super"))) - }, $DefinedNode_compile_defined_super$8.$$arity = 0); + }, 0); - Opal.def(self, '$compile_defined_yield', $DefinedNode_compile_defined_yield$9 = function $$compile_defined_yield() { - var self = this, block_name = nil, $ret_or_2 = nil; + $def(self, '$compile_defined_yield', function $$compile_defined_yield() { + var self = this, block_name = nil, $ret_or_1 = nil; self.$scope()['$uses_block!'](); - block_name = (function() {if ($truthy(($ret_or_2 = self.$scope().$block_name()))) { - return $ret_or_2 - } else { - return self.$scope().$find_parent_def().$block_name() - }; return nil; })(); - self.$push("" + "(" + (block_name) + " != null && " + (block_name) + " !== nil)"); + block_name = ($truthy(($ret_or_1 = self.$scope().$block_name())) ? ($ret_or_1) : (self.$scope().$find_parent_def().$block_name())); + self.$push("(" + (block_name) + " != null && " + (block_name) + " !== nil)"); return block_name; - }, $DefinedNode_compile_defined_yield$9.$$arity = 0); + }, 0); - Opal.def(self, '$compile_defined_xstr', $DefinedNode_compile_defined_xstr$10 = function $$compile_defined_xstr(node) { + $def(self, '$compile_defined_xstr', function $$compile_defined_xstr(node) { var self = this; return self.$push("(typeof(", self.$expr(node), ") !== \"undefined\")") - }, $DefinedNode_compile_defined_xstr$10.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_const', $DefinedNode_compile_defined_const$11 = function $$compile_defined_const(node) { + $def(self, '$compile_defined_const', function $$compile_defined_const(node) { var $a, self = this, const_scope = nil, const_name = nil, const_tmp = nil, const_scope_tmp = nil; - $a = [].concat(Opal.to_a(node)), (const_scope = ($a[0] == null ? nil : $a[0])), (const_name = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (const_scope = ($a[0] == null ? nil : $a[0])), (const_name = ($a[1] == null ? nil : $a[1])), $a; const_tmp = self.$scope().$new_temp(); if ($truthy(const_scope['$nil?']())) { - self.$push("" + "(" + (const_tmp) + " = $$($nesting, '" + (const_name) + "', 'skip_raise'))") - } else if (const_scope['$=='](self.$s("cbase"))) { - self.$push("" + "(" + (const_tmp) + " = $$$('::', '" + (const_name) + "', 'skip_raise'))") + self.$push("(" + (const_tmp) + " = " + (self.$scope().$relative_access()) + "('" + (const_name) + "', 'skip_raise'))") + } else if ($eqeq(const_scope, self.$s("cbase"))) { + self.$push("(" + (const_tmp) + " = " + (self.$top_scope().$absolute_const()) + "('::', '" + (const_name) + "', 'skip_raise'))") } else { const_scope_tmp = self.$compile_defined(const_scope); - self.$push("" + " && (" + (const_tmp) + " = $$$(" + (const_scope_tmp) + ", '" + (const_name) + "', 'skip_raise'))"); + self.$push(" && (" + (const_tmp) + " = " + (self.$top_scope().$absolute_const()) + "(" + (const_scope_tmp) + ", '" + (const_name) + "', 'skip_raise'))"); }; return const_tmp; - }, $DefinedNode_compile_defined_const$11.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_cvar', $DefinedNode_compile_defined_cvar$12 = function $$compile_defined_cvar(node) { + $def(self, '$compile_defined_cvar', function $$compile_defined_cvar(node) { var $a, self = this, cvar_name = nil, _ = nil, cvar_tmp = nil; - $a = [].concat(Opal.to_a(node)), (cvar_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + $a = [].concat($to_a(node)), (cvar_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; cvar_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (cvar_tmp) + " = " + (self.$class_variable_owner()) + ".$$cvars['" + (cvar_name) + "'], " + (cvar_tmp) + " != null)"); + self.$push("(" + (cvar_tmp) + " = " + (self.$class_variable_owner()) + ".$$cvars['" + (cvar_name) + "'], " + (cvar_tmp) + " != null)"); return cvar_tmp; - }, $DefinedNode_compile_defined_cvar$12.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_gvar', $DefinedNode_compile_defined_gvar$13 = function $$compile_defined_gvar(node) { + $def(self, '$compile_defined_gvar', function $$compile_defined_gvar(node) { var self = this, name = nil, gvar_temp = nil; @@ -39033,68 +35674,56 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { name = node.$children()['$[]'](0).$to_s()['$[]']($range(1, -1, false)); gvar_temp = self.$scope().$new_temp(); if ($truthy(["~", "!"]['$include?'](name))) { - self.$push("" + "(" + (gvar_temp) + " = ", self.$expr(node), " || true)") + self.$push("(" + (gvar_temp) + " = ", self.$expr(node), " || true)") } else { - self.$push("" + "(" + (gvar_temp) + " = $gvars[" + (name.$inspect()) + "], " + (gvar_temp) + " != null)") + self.$push("(" + (gvar_temp) + " = $gvars[" + (name.$inspect()) + "], " + (gvar_temp) + " != null)") }; return gvar_temp; - }, $DefinedNode_compile_defined_gvar$13.$$arity = 1); + }, 1); - Opal.def(self, '$compile_defined_back_ref', $DefinedNode_compile_defined_back_ref$14 = function $$compile_defined_back_ref() { + $def(self, '$compile_defined_back_ref', function $$compile_defined_back_ref() { var self = this, back_ref_temp = nil; self.$helper("gvars"); back_ref_temp = self.$scope().$new_temp(); - self.$push("" + "(" + (back_ref_temp) + " = $gvars['~'], " + (back_ref_temp) + " != null && " + (back_ref_temp) + " !== nil)"); + self.$push("(" + (back_ref_temp) + " = $gvars['~'], " + (back_ref_temp) + " != null && " + (back_ref_temp) + " !== nil)"); return back_ref_temp; - }, $DefinedNode_compile_defined_back_ref$14.$$arity = 0); + }, 0); - Opal.def(self, '$compile_defined_nth_ref', $DefinedNode_compile_defined_nth_ref$15 = function $$compile_defined_nth_ref() { + $def(self, '$compile_defined_nth_ref', function $$compile_defined_nth_ref() { var self = this, nth_ref_tmp = nil; self.$helper("gvars"); nth_ref_tmp = self.$scope().$new_temp(); - self.$push("" + "(" + (nth_ref_tmp) + " = $gvars['~'], " + (nth_ref_tmp) + " != null && " + (nth_ref_tmp) + " != nil)"); + self.$push("(" + (nth_ref_tmp) + " = $gvars['~'], " + (nth_ref_tmp) + " != null && " + (nth_ref_tmp) + " != nil)"); return nth_ref_tmp; - }, $DefinedNode_compile_defined_nth_ref$15.$$arity = 0); - return (Opal.def(self, '$compile_defined_array', $DefinedNode_compile_defined_array$16 = function $$compile_defined_array(node) { - var $$17, self = this; + }, 0); + return $def(self, '$compile_defined_array', function $$compile_defined_array(node) { + var self = this; - return $send(node.$children(), 'each_with_index', [], ($$17 = function(child, idx){var self = $$17.$$s == null ? this : $$17.$$s; + return $send(node.$children(), 'each_with_index', [], function $$2(child, idx){var self = $$2.$$s == null ? this : $$2.$$s; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { - } else { + if (idx == null) idx = nil;; + if (!$eqeq(idx, 0)) { self.$push(" && ") }; - return self.$compile_defined(child);}, $$17.$$s = self, $$17.$$arity = 2, $$17)) - }, $DefinedNode_compile_defined_array$16.$$arity = 1), nil) && 'compile_defined_array'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$compile_defined(child);}, {$$arity: 2, $$s: self}) + }, 1); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/masgn"] = function(Opal) { - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/masgn"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def, $rb_ge = Opal.rb_ge, $not = Opal.not, $rb_plus = Opal.rb_plus; - Opal.add_stubs(['$require', '$freeze', '$handle', '$children', '$new_temp', '$scope', '$==', '$type', '$rhs', '$push', '$expr', '$any?', '$size', '$compile_masgn', '$lhs', '$queue_temp', '$take_while', '$!=', '$drop', '$each_with_index', '$compile_assignment', '$empty?', '$shift', '$[]', '$helper', '$<<', '$dup', '$s', '$!', '$>=', '$updated', '$include?', '$+', '$last', '$raise']); + Opal.add_stubs('require,freeze,handle,children,new_temp,scope,==,type,rhs,push,expr,any?,size,compile_masgn,lhs,helper,queue_temp,take_while,!=,drop,each_with_index,compile_assignment,empty?,shift,[],<<,dup,s,>=,!,updated,include?,+,last,raise'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -39105,89 +35734,66 @@ Opal.modules["opal/nodes/masgn"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'MassAssignNode'); - var $nesting = [self].concat($parent_nesting), $MassAssignNode_compile$1, $MassAssignNode_compile_masgn$3, $MassAssignNode_compile_assignment$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'SIMPLE_ASSIGNMENT', ["lvasgn", "ivasgn", "lvar", "gvasgn", "cdecl", "casgn"].$freeze()); + $const_set($nesting[0], 'SIMPLE_ASSIGNMENT', ["lvasgn", "ivasgn", "lvar", "gvasgn", "cdecl", "casgn"].$freeze()); self.$handle("masgn"); self.$children("lhs", "rhs"); - Opal.def(self, '$compile', $MassAssignNode_compile$1 = function $$compile() { - var $$2, self = this, array = nil, rhs_len = nil, retval = nil; + $def(self, '$compile', function $$compile() { + var self = this, array = nil, rhs_len = nil, retval = nil; array = self.$scope().$new_temp(); - if (self.$rhs().$type()['$==']("array")) { + if ($eqeq(self.$rhs().$type(), "array")) { self.$push("" + (array) + " = ", self.$expr(self.$rhs())); - rhs_len = (function() {if ($truthy($send(self.$rhs().$children(), 'any?', [], ($$2 = function(c){var self = $$2.$$s == null ? this : $$2.$$s; - + rhs_len = ($truthy($send(self.$rhs().$children(), 'any?', [], function $$1(c){ - if (c == null) { - c = nil; - }; - return c.$type()['$==']("splat");}, $$2.$$s = self, $$2.$$arity = 1, $$2)))) { - return nil - } else { - return self.$rhs().$children().$size() - }; return nil; })(); + if (c == null) c = nil;; + return c.$type()['$==']("splat");}, 1)) ? (nil) : (self.$rhs().$children().$size())); self.$compile_masgn(self.$lhs().$children(), array, rhs_len); - self.$push("" + ", " + (array)); - } else if (self.$rhs().$type()['$==']("begin")) { - - retval = self.$scope().$new_temp(); - self.$push("" + (retval) + " = ", self.$expr(self.$rhs())); - self.$push("" + ", " + (array) + " = Opal.to_ary(" + (retval) + ")"); - self.$compile_masgn(self.$lhs().$children(), array); - self.$push("" + ", " + (retval)); - self.$scope().$queue_temp(retval); + self.$push(", " + (array)); } else { + self.$helper("to_ary"); retval = self.$scope().$new_temp(); self.$push("" + (retval) + " = ", self.$expr(self.$rhs())); - self.$push("" + ", " + (array) + " = Opal.to_ary(" + (retval) + ")"); + self.$push(", " + (array) + " = $to_ary(" + (retval) + ")"); self.$compile_masgn(self.$lhs().$children(), array); - self.$push("" + ", " + (retval)); + self.$push(", " + (retval)); self.$scope().$queue_temp(retval); }; return self.$scope().$queue_temp(array); - }, $MassAssignNode_compile$1.$$arity = 0); + }, 0); - Opal.def(self, '$compile_masgn', $MassAssignNode_compile_masgn$3 = function $$compile_masgn(lhs_items, array, len) { - var $$4, $$5, $$6, self = this, pre_splat = nil, post_splat = nil, splat = nil, part = nil, tmp = nil; + $def(self, '$compile_masgn', function $$compile_masgn(lhs_items, array, len) { + var self = this, pre_splat = nil, post_splat = nil, splat = nil, part = nil, tmp = nil; - if (len == null) { - len = nil; - }; - pre_splat = $send(lhs_items, 'take_while', [], ($$4 = function(child){var self = $$4.$$s == null ? this : $$4.$$s; - + if (len == null) len = nil;; + pre_splat = $send(lhs_items, 'take_while', [], function $$2(child){ - if (child == null) { - child = nil; - }; - return child.$type()['$!=']("splat");}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + if (child == null) child = nil;; + return child.$type()['$!=']("splat");}, 1); post_splat = lhs_items.$drop(pre_splat.$size()); - $send(pre_splat, 'each_with_index', [], ($$5 = function(child, idx){var self = $$5.$$s == null ? this : $$5.$$s; + $send(pre_splat, 'each_with_index', [], function $$3(child, idx){var self = $$3.$$s == null ? this : $$3.$$s; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - return self.$compile_assignment(child, array, idx, len);}, $$5.$$s = self, $$5.$$arity = 2, $$5)); + if (idx == null) idx = nil;; + return self.$compile_assignment(child, array, idx, len);}, {$$arity: 2, $$s: self}); if ($truthy(post_splat['$empty?']())) { return nil } else { @@ -39197,7 +35803,7 @@ Opal.modules["opal/nodes/masgn"] = function(Opal) { if ($truthy((part = splat.$children()['$[]'](0)))) { self.$helper("slice"); - part = part.$dup()['$<<'](self.$s("js_tmp", "" + "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ")")); + part = part.$dup()['$<<'](self.$s("js_tmp", "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ")")); self.$push(", "); return self.$push(self.$expr(part)); } else { @@ -39206,82 +35812,69 @@ Opal.modules["opal/nodes/masgn"] = function(Opal) { } else { tmp = self.$scope().$new_temp(); - self.$push("" + ", " + (tmp) + " = " + (array) + ".length - " + (post_splat.$size())); - self.$push("" + ", " + (tmp) + " = (" + (tmp) + " < " + (pre_splat.$size()) + ") ? " + (pre_splat.$size()) + " : " + (tmp)); + self.$push(", " + (tmp) + " = " + (array) + ".length - " + (post_splat.$size())); + self.$push(", " + (tmp) + " = (" + (tmp) + " < " + (pre_splat.$size()) + ") ? " + (pre_splat.$size()) + " : " + (tmp)); if ($truthy((part = splat.$children()['$[]'](0)))) { self.$helper("slice"); - part = part.$dup()['$<<'](self.$s("js_tmp", "" + "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ", " + (tmp) + ")")); + part = part.$dup()['$<<'](self.$s("js_tmp", "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ", " + (tmp) + ")")); self.$push(", "); - self.$push(self.$expr(part));}; - $send(post_splat, 'each_with_index', [], ($$6 = function(child, idx){var self = $$6.$$s == null ? this : $$6.$$s; + self.$push(self.$expr(part)); + }; + $send(post_splat, 'each_with_index', [], function $$4(child, idx){var self = $$4.$$s == null ? this : $$4.$$s; - if (child == null) { - child = nil; - }; + if (child == null) child = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$=='](0)) { + if (idx == null) idx = nil;; + if ($eqeq(idx, 0)) { return self.$compile_assignment(child, array, tmp) } else { return self.$compile_assignment(child, array, "" + (tmp) + " + " + (idx)) - };}, $$6.$$s = self, $$6.$$arity = 2, $$6)); + };}, {$$arity: 2, $$s: self}); return self.$scope().$queue_temp(tmp); }; }; - }, $MassAssignNode_compile_masgn$3.$$arity = -3); - return (Opal.def(self, '$compile_assignment', $MassAssignNode_compile_assignment$7 = function $$compile_assignment(child, array, idx, len) { - var self = this, assign = nil, $ret_or_1 = nil, part = nil, tmp = nil; + }, -3); + return $def(self, '$compile_assignment', function $$compile_assignment(child, array, idx, len) { + var self = this, assign = nil, part = nil, tmp = nil; - if (len == null) { - len = nil; - }; - assign = (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = len['$!']()))) { - return $ret_or_1 - } else { - return $rb_ge(idx, len) - }; return nil; })())) { - return self.$s("js_tmp", "" + "(" + (array) + "[" + (idx) + "] == null ? nil : " + (array) + "[" + (idx) + "])") - } else { - return self.$s("js_tmp", "" + (array) + "[" + (idx) + "]") - }; return nil; })(); + if (len == null) len = nil;; + assign = (($not(len) || ($truthy($rb_ge(idx, len)))) ? (self.$s("js_tmp", "(" + (array) + "[" + (idx) + "] == null ? nil : " + (array) + "[" + (idx) + "])")) : (self.$s("js_tmp", "" + (array) + "[" + (idx) + "]"))); part = child.$updated(); - if ($truthy($$($nesting, 'SIMPLE_ASSIGNMENT')['$include?'](child.$type()))) { + if ($truthy($$('SIMPLE_ASSIGNMENT')['$include?'](child.$type()))) { part = part.$updated(nil, $rb_plus(part.$children(), [assign])) - } else if (child.$type()['$==']("send")) { + } else if ($eqeq(child.$type(), "send")) { part = part.$updated(nil, $rb_plus(part.$children(), [assign])) - } else if (child.$type()['$==']("attrasgn")) { + } else if ($eqeq(child.$type(), "attrasgn")) { part.$last()['$<<'](assign) - } else if (child.$type()['$==']("mlhs")) { + } else if ($eqeq(child.$type(), "mlhs")) { + self.$helper("to_ary"); tmp = self.$scope().$new_temp(); - self.$push("" + ", (" + (tmp) + " = Opal.to_ary(" + (assign.$children()['$[]'](0)) + ")"); + self.$push(", (" + (tmp) + " = $to_ary(" + (assign.$children()['$[]'](0)) + ")"); self.$compile_masgn(child.$children(), tmp); self.$push(")"); self.$scope().$queue_temp(tmp); return nil; } else { - self.$raise("" + "Bad child node in masgn LHS: " + (child) + ". LHS: " + (self.$lhs())) + self.$raise("Bad child node in masgn LHS: " + (child) + ". LHS: " + (self.$lhs())) }; self.$push(", "); return self.$push(self.$expr(part)); - }, $MassAssignNode_compile_assignment$7.$$arity = -4), nil) && 'compile_assignment'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, -4); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/arglist"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/arglist"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $to_a = Opal.to_a, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$each', '$children', '$==', '$type', '$expr', '$empty?', '$<<', '$fragment', '$push']); + Opal.add_stubs('require,handle,each,children,==,type,expr,empty?,<<,fragment,push'); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { @@ -39292,27 +35885,24 @@ Opal.modules["opal/nodes/arglist"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'ArglistNode'); - var $nesting = [self].concat($parent_nesting), $ArglistNode_compile$1; - + self.$handle("arglist"); - return (Opal.def(self, '$compile', $ArglistNode_compile$1 = function $$compile() { - var $a, $$2, self = this, code = nil, work = nil, join = nil; + return $def(self, '$compile', function $$compile() { + var $a, self = this, code = nil, work = nil, join = nil; $a = [[], []], (code = $a[0]), (work = $a[1]), $a; - $send(self.$children(), 'each', [], ($$2 = function(current){var self = $$2.$$s == null ? this : $$2.$$s, splat = nil, arg = nil; + $send(self.$children(), 'each', [], function $$1(current){var self = $$1.$$s == null ? this : $$1.$$s, splat = nil, arg = nil; - if (current == null) { - current = nil; - }; + if (current == null) current = nil;; splat = current.$type()['$==']("splat"); arg = self.$expr(current); if ($truthy(splat)) { @@ -39335,14 +35925,12 @@ Opal.modules["opal/nodes/arglist"] = function(Opal) { return (work = []); } else { - if ($truthy(work['$empty?']())) { - } else { + if (!$truthy(work['$empty?']())) { work['$<<'](self.$fragment(", ")) }; return work['$<<'](arg); - };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - if ($truthy(work['$empty?']())) { - } else { + };}, {$$arity: 1, $$s: self}); + if (!$truthy(work['$empty?']())) { join = work; if ($truthy(code['$empty?']())) { @@ -39351,18 +35939,17 @@ Opal.modules["opal/nodes/arglist"] = function(Opal) { code['$<<'](self.$fragment(".concat(["))['$<<'](join)['$<<'](self.$fragment("])")) }; }; - return $send(self, 'push', Opal.to_a(code)); - }, $ArglistNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return $send(self, 'push', $to_a(code)); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/x_string"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $lambda = Opal.lambda; +Opal.modules["opal/nodes/x_string"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def, $defs = Opal.defs, $lambda = Opal.lambda, $eqeqeq = Opal.eqeqeq, $eqeq = Opal.eqeq, $not = Opal.not, $range = Opal.range; - Opal.add_stubs(['$handle', '$unpack_return', '$children', '$strip_empty_children', '$single_line?', '$compile_single_line', '$each', '$compile_child', '$recv?', '$wrap', '$push', '$private', '$type', '$===', '$source', '$expression', '$loc', '$new', '$scope', '$expr', '$raise', '$shift', '$empty?', '$s', '$==', '$strip', '$=~', '$!', '$pop', '$extract_last_value', '$rstrip', '$expr?', '$end_with?', '$warning', '$compiler', '$line', '$[]', '$size', '$none?', '$first', '$dup', '$nil?', '$any?', '$last']); + Opal.add_stubs('handle,unpack_return,children,strip_empty_children,single_line?,compile_single_line,each,compile_child,recv?,wrap,push,==,size,none?,type,end_with?,source,expression,loc,dup,nil?,empty?,rstrip,any?,[],first,shift,last,pop,private,===,include?,self,scope,new,expr,raise,s,strip,=~,!,extract_last_value,expr?,warning,compiler,line'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -39371,210 +35958,186 @@ Opal.modules["opal/nodes/x_string"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'XStringNode'); - var $nesting = [self].concat($parent_nesting), $XStringNode_compile$1, $XStringNode_compile_child$3, $XStringNode_compile_single_line$4, $XStringNode_extract_last_value$6, $XStringNode_single_line$ques$7, $XStringNode_unpack_return$9, $XStringNode_strip_empty_children$10; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.should_add_semicolon = self.$$prototype.returning = nil; + $proto.should_add_semicolon = $proto.returning = nil; self.$handle("xstr"); - Opal.def(self, '$compile', $XStringNode_compile$1 = function $$compile() { - var $$2, self = this, unpacked_children = nil, stripped_children = nil; + $def(self, '$compile', function $$compile() { + var self = this, unpacked_children = nil, stripped_children = nil; self.should_add_semicolon = false; unpacked_children = self.$unpack_return(self.$children()); - stripped_children = self.$strip_empty_children(unpacked_children); - if ($truthy(self['$single_line?'](stripped_children))) { + stripped_children = $$('XStringNode').$strip_empty_children(unpacked_children); + if ($truthy($$('XStringNode')['$single_line?'](stripped_children))) { self.$compile_single_line(stripped_children) } else { - $send(unpacked_children, 'each', [], ($$2 = function(c){var self = $$2.$$s == null ? this : $$2.$$s; + $send(unpacked_children, 'each', [], function $$1(c){var self = $$1.$$s == null ? this : $$1.$$s; - if (c == null) { - c = nil; - }; - return self.$compile_child(c);}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + if (c == null) c = nil;; + return self.$compile_child(c);}, {$$arity: 1, $$s: self}) }; if ($truthy(self['$recv?']())) { - self.$wrap("(", ")")}; + self.$wrap("(", ")") + }; if ($truthy(self.should_add_semicolon)) { return self.$push(";") } else { return nil }; - }, $XStringNode_compile$1.$$arity = 0); + }, 0); + $defs(self, '$single_line?', function $XStringNode_single_line$ques$2(children) { + var $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = children.$size()['$=='](1)))) { + return $ret_or_1 + } else { + return $send(children, 'none?', [], function $$3(c){var $ret_or_2 = nil; + + + + if (c == null) c = nil;; + if ($truthy(($ret_or_2 = c.$type()['$==']("str")))) { + return c.$loc().$expression().$source()['$end_with?']("\n") + } else { + return $ret_or_2 + };}, 1) + } + }, 1); + $defs(self, '$strip_empty_children', function $$strip_empty_children(children) { + var $a, empty_line = nil, $ret_or_1 = nil; + + + children = children.$dup(); + empty_line = $lambda(function $$4(child){var $ret_or_1 = nil, $ret_or_2 = nil; + + + + if (child == null) child = nil;; + if ($truthy(($ret_or_1 = child['$nil?']()))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_2 = child.$type()['$==']("str")))) { + return child.$loc().$expression().$source().$rstrip()['$empty?']() + } else { + return $ret_or_2 + }; + };}, 1); + while ($truthy(($truthy(($ret_or_1 = children['$any?']())) ? (empty_line['$[]'](children.$first())) : ($ret_or_1)))) { + children.$shift() + }; + while ($truthy(($truthy(($ret_or_1 = children['$any?']())) ? (empty_line['$[]'](children.$last())) : ($ret_or_1)))) { + children.$pop() + }; + return children; + }, 1); self.$private(); - Opal.def(self, '$compile_child', $XStringNode_compile_child$3 = function $$compile_child(child) { - var self = this, $case = nil, value = nil; + $def(self, '$compile_child', function $$compile_child(child) { + var self = this, $ret_or_1 = nil, value = nil; - return (function() {$case = child.$type(); - if ("str"['$===']($case)) { - value = child.$loc().$expression().$source(); - return self.$push($$($nesting, 'Fragment').$new(value, self.$scope(), child));} - else if ("begin"['$===']($case) || "gvar"['$===']($case) || "ivar"['$===']($case) || "nil"['$===']($case)) {return self.$push(self.$expr(child))} - else {return self.$raise("" + "Unsupported xstr part: " + (child.$type()))}})() - }, $XStringNode_compile_child$3.$$arity = 1); + if ($eqeqeq("str", ($ret_or_1 = child.$type()))) { + + value = child.$loc().$expression().$source(); + if ($truthy(value['$include?']("self"))) { + self.$scope().$self() + }; + return self.$push($$('Fragment').$new(value, self.$scope(), child)); + } else if (($eqeqeq("begin", $ret_or_1) || (($eqeqeq("gvar", $ret_or_1) || (($eqeqeq("ivar", $ret_or_1) || ($eqeqeq("nil", $ret_or_1)))))))) { + return self.$push(self.$expr(child)) + } else { + return self.$raise("Unsupported xstr part: " + (child.$type())) + } + }, 1); - Opal.def(self, '$compile_single_line', $XStringNode_compile_single_line$4 = function $$compile_single_line(children) { - var $$5, self = this, has_embeded_return = nil, first_child = nil, single_child = nil, $ret_or_1 = nil, first_value = nil, $ret_or_2 = nil, last_child = nil, $ret_or_3 = nil, last_value = nil; + $def(self, '$compile_single_line', function $$compile_single_line(children) { + var self = this, has_embeded_return = nil, first_child = nil, single_child = nil, $ret_or_1 = nil, first_value = nil, last_child = nil, last_value = nil; has_embeded_return = false; first_child = children.$shift(); single_child = children['$empty?'](); - first_child = (function() {if ($truthy(($ret_or_1 = first_child))) { - return $ret_or_1 - } else { - return self.$s("nil") - }; return nil; })(); - if (first_child.$type()['$==']("str")) { + first_child = ($truthy(($ret_or_1 = first_child)) ? ($ret_or_1) : (self.$s("nil"))); + if ($eqeq(first_child.$type(), "str")) { first_value = first_child.$loc().$expression().$source().$strip(); - has_embeded_return = first_value['$=~'](/^return\b/);}; - if ($truthy((function() {if ($truthy(($ret_or_2 = self.returning))) { - return has_embeded_return['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { - self.$push("return ")}; - last_child = (function() {if ($truthy(($ret_or_3 = children.$pop()))) { - return $ret_or_3 - } else { - return first_child - }; return nil; })(); - if (last_child.$type()['$==']("str")) { - last_value = self.$extract_last_value(last_child)}; - if ($truthy(single_child)) { - } else { + has_embeded_return = first_value['$=~'](/^return\b/); + }; + if (($truthy(self.returning) && ($not(has_embeded_return)))) { + self.$push("return ") + }; + last_child = ($truthy(($ret_or_1 = children.$pop())) ? ($ret_or_1) : (first_child)); + if ($eqeq(last_child.$type(), "str")) { + last_value = self.$extract_last_value(last_child) + }; + if (!$truthy(single_child)) { self.should_add_semicolon = false; self.$compile_child(first_child); - $send(children, 'each', [], ($$5 = function(c){var self = $$5.$$s == null ? this : $$5.$$s; + $send(children, 'each', [], function $$5(c){var self = $$5.$$s == null ? this : $$5.$$s; - if (c == null) { - c = nil; - }; - return self.$compile_child(c);}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + if (c == null) c = nil;; + return self.$compile_child(c);}, {$$arity: 1, $$s: self}); }; - if (last_child.$type()['$==']("str")) { - return self.$push($$($nesting, 'Fragment').$new(last_value, self.$scope(), last_child)) + if ($eqeq(last_child.$type(), "str")) { + return self.$push($$('Fragment').$new(last_value, self.$scope(), last_child)) } else { return self.$compile_child(last_child) }; - }, $XStringNode_compile_single_line$4.$$arity = 1); + }, 1); - Opal.def(self, '$extract_last_value', $XStringNode_extract_last_value$6 = function $$extract_last_value(last_child) { - var self = this, last_value = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$extract_last_value', function $$extract_last_value(last_child) { + var self = this, last_value = nil; last_value = last_child.$loc().$expression().$source().$rstrip(); - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.returning))) { - return $ret_or_5 - } else { - return self['$expr?']() - }; return nil; })()))) { - return last_value['$end_with?'](";") - } else { - return $ret_or_4 - }; return nil; })())) { + if ($truthy(last_value['$include?']("self"))) { + self.$scope().$self() + }; + if ((($truthy(self.returning) || ($truthy(self['$expr?']()))) && ($truthy(last_value['$end_with?'](";"))))) { self.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional", last_child.$line()); - last_value = last_value['$[]']($range(0, -2, false));}; + last_value = last_value['$[]']($range(0, -2, false)); + }; if ($truthy(self.returning)) { - self.should_add_semicolon = true}; + self.should_add_semicolon = true + }; return last_value; - }, $XStringNode_extract_last_value$6.$$arity = 1); - - Opal.def(self, '$single_line?', $XStringNode_single_line$ques$7 = function(children) { - var $$8, self = this, $ret_or_6 = nil; - - if ($truthy(($ret_or_6 = children.$size()['$=='](1)))) { - return $ret_or_6 - } else { - return $send(children, 'none?', [], ($$8 = function(c){var self = $$8.$$s == null ? this : $$8.$$s, $ret_or_7 = nil; - - - - if (c == null) { - c = nil; - }; - if ($truthy(($ret_or_7 = c.$type()['$==']("str")))) { - return c.$loc().$expression().$source()['$end_with?']("\n") - } else { - return $ret_or_7 - };}, $$8.$$s = self, $$8.$$arity = 1, $$8)) - } - }, $XStringNode_single_line$ques$7.$$arity = 1); - - Opal.def(self, '$unpack_return', $XStringNode_unpack_return$9 = function $$unpack_return(children) { + }, 1); + return $def(self, '$unpack_return', function $$unpack_return(children) { var self = this, first_child = nil; first_child = children.$first(); self.returning = false; - if (first_child.$type()['$==']("js_return")) { + if ($eqeq(first_child.$type(), "js_return")) { self.returning = true; - children = first_child.$children();}; - return children; - }, $XStringNode_unpack_return$9.$$arity = 1); - return (Opal.def(self, '$strip_empty_children', $XStringNode_strip_empty_children$10 = function $$strip_empty_children(children) { - var $$11, $a, self = this, empty_line = nil, $ret_or_10 = nil, $ret_or_11 = nil; - - - children = children.$dup(); - empty_line = $lambda(($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s, $ret_or_8 = nil, $ret_or_9 = nil; - - - - if (child == null) { - child = nil; - }; - if ($truthy(($ret_or_8 = child['$nil?']()))) { - return $ret_or_8 - } else { - - if ($truthy(($ret_or_9 = child.$type()['$==']("str")))) { - return child.$loc().$expression().$source().$rstrip()['$empty?']() - } else { - return $ret_or_9 - }; - };}, $$11.$$s = self, $$11.$$arity = 1, $$11)); - while ($truthy((function() {if ($truthy(($ret_or_10 = children['$any?']()))) { - return empty_line['$[]'](children.$first()) - } else { - return $ret_or_10 - }; return nil; })())) { - children.$shift() - }; - while ($truthy((function() {if ($truthy(($ret_or_11 = children['$any?']()))) { - return empty_line['$[]'](children.$last()) - } else { - return $ret_or_11 - }; return nil; })())) { - children.$pop() + children = first_child.$children(); }; return children; - }, $XStringNode_strip_empty_children$10.$$arity = 1), nil) && 'strip_empty_children'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + }, 1); + })($nesting[0], $$('Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes/lambda"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/lambda"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $def = Opal.def; - Opal.add_stubs(['$require', '$handle', '$children', '$helper', '$defines_lambda', '$scope', '$push', '$expr', '$iter']); + Opal.add_stubs('require,handle,children,helper,defines_lambda,scope,push,expr,iter'); self.$require("opal/nodes/call"); return (function($base, $parent_nesting) { @@ -39585,35 +36148,33 @@ Opal.modules["opal/nodes/lambda"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Nodes'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'LambdaNode'); - var $nesting = [self].concat($parent_nesting), $LambdaNode_compile$1; - + self.$handle("lambda"); self.$children("iter"); - return (Opal.def(self, '$compile', $LambdaNode_compile$1 = function $$compile() { - var $$2, self = this; + return $def(self, '$compile', function $$compile() { + var self = this; self.$helper("lambda"); - return $send(self.$scope(), 'defines_lambda', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + return $send(self.$scope(), 'defines_lambda', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$push("$lambda(", self.$expr(self.$iter()), ")")}, $$2.$$s = self, $$2.$$arity = 0, $$2)); - }, $LambdaNode_compile$1.$$arity = 0), nil) && 'compile'; - })($nesting[0], $$($nesting, 'Base'), $nesting) + return self.$push("$lambda(", self.$expr(self.$iter()), ")")}, {$$arity: 0, $$s: self}); + }, 0); + })($nesting[0], $$('Base')) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/nodes"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["opal/nodes"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); self.$require("opal/nodes/base"); self.$require("opal/nodes/literal"); @@ -39635,7 +36196,6 @@ Opal.modules["opal/nodes"] = function(Opal) { self.$require("opal/nodes/definitions"); self.$require("opal/nodes/yield"); self.$require("opal/nodes/rescue"); - self.$require("opal/nodes/case"); self.$require("opal/nodes/super"); self.$require("opal/nodes/top"); self.$require("opal/nodes/while"); @@ -39648,11 +36208,10 @@ Opal.modules["opal/nodes"] = function(Opal) { return self.$require("opal/nodes/lambda"); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/eof_content"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; +Opal.modules["opal/eof_content"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $eqeq = Opal.eqeq, $range = Opal.range, $to_ary = Opal.to_ary; - Opal.add_stubs(['$empty?', '$[]', '$last_token_position', '$drop_while', '$lines', '$==', '$join', '$private', '$last', '$end_pos']); + Opal.add_stubs('empty?,[],last_token_position,drop_while,lines,==,join,private,last,end_pos'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); @@ -39661,329 +36220,259 @@ Opal.modules["opal/eof_content"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'EofContent'); - var $nesting = [self].concat($parent_nesting), $EofContent_initialize$1, $EofContent_eof$2, $EofContent_last_token_position$4; + var $nesting = [self].concat($parent_nesting), $proto = self.$$prototype; - self.$$prototype.tokens = self.$$prototype.source = nil; + $proto.tokens = $proto.source = nil; - Opal.const_set($nesting[0], 'DATA_SEPARATOR', "__END__\n"); + $const_set($nesting[0], 'DATA_SEPARATOR', "__END__\n"); - Opal.def(self, '$initialize', $EofContent_initialize$1 = function $$initialize(tokens, source) { + $def(self, '$initialize', function $$initialize(tokens, source) { var self = this; self.tokens = tokens; return (self.source = source); - }, $EofContent_initialize$1.$$arity = 2); + }, 2); - Opal.def(self, '$eof', $EofContent_eof$2 = function $$eof() { - var $$3, self = this, eof_content = nil, $ret_or_1 = nil; + $def(self, '$eof', function $$eof() { + var self = this, eof_content = nil, $ret_or_1 = nil; if ($truthy(self.tokens['$empty?']())) { - return nil}; + return nil + }; eof_content = self.source['$[]'](Opal.Range.$new(self.$last_token_position(), -1, false)); - if ($truthy(eof_content)) { - } else { + if (!$truthy(eof_content)) { return nil }; - eof_content = $send(eof_content.$lines(), 'drop_while', [], ($$3 = function(line){var self = $$3.$$s == null ? this : $$3.$$s; - + eof_content = $send(eof_content.$lines(), 'drop_while', [], function $$1(line){ - if (line == null) { - line = nil; - }; - return line['$==']("\n");}, $$3.$$s = self, $$3.$$arity = 1, $$3)); - if (eof_content['$[]'](0)['$==']("__END__\n")) { + if (line == null) line = nil;; + return line['$==']("\n");}, 1); + if ($eqeq(eof_content['$[]'](0), "__END__\n")) { - eof_content = (function() {if ($truthy(($ret_or_1 = eof_content['$[]']($range(1, -1, false))))) { - return $ret_or_1 - } else { - return [] - }; return nil; })(); + eof_content = ($truthy(($ret_or_1 = eof_content['$[]']($range(1, -1, false)))) ? ($ret_or_1) : ([])); return eof_content.$join(); - } else if (eof_content['$=='](["__END__"])) { + } else if ($eqeq(eof_content, ["__END__"])) { return "" } else { return nil }; - }, $EofContent_eof$2.$$arity = 0); + }, 0); self.$private(); - return (Opal.def(self, '$last_token_position', $EofContent_last_token_position$4 = function $$last_token_position() { + return $def(self, '$last_token_position', function $$last_token_position() { var $a, $b, self = this, _ = nil, last_token_info = nil, last_token_range = nil; - $b = self.tokens.$last(), $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_info = ($a[1] == null ? nil : $a[1])), $b; - $b = last_token_info, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_range = ($a[1] == null ? nil : $a[1])), $b; + $b = self.tokens.$last(), $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_info = ($a[1] == null ? nil : $a[1])), $b; + $b = last_token_info, $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_range = ($a[1] == null ? nil : $a[1])), $b; return last_token_range.$end_pos(); - }, $EofContent_last_token_position$4.$$arity = 0), nil) && 'last_token_position'; + }, 0); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/errors"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; +Opal.modules["opal/errors"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $defs = Opal.defs, $rb_plus = Opal.rb_plus, $alias = Opal.alias; - Opal.add_stubs(['$attr_reader', '$attr_accessor', '$new', '$respond_to?', '$location', '$location=', '$-', '$diagnostic', '$diagnostic=', '$to_a', '$backtrace', '$unshift', '$to_s', '$set_backtrace', '$path', '$lineno', '$+', '$label', '$line', '$lineno=', '$source_line', '$label=', '$expression']); + Opal.add_stubs('attr_reader,attr_accessor,new,respond_to?,location,location=,-,diagnostic,diagnostic=,to_a,backtrace,unshift,to_s,set_backtrace,path,lineno,+,label,line,lineno=,source_line,label=,expression'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting), $Opal_opal_location_from_error$2, $Opal_add_opal_location_to_error$3; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Error'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { + $klass($nesting[0], $$('StandardError'), 'Error'); + (function($base, $super) { var self = $klass($base, $super, 'GemNotFound'); - var $nesting = [self].concat($parent_nesting), $GemNotFound_initialize$1; - + self.$attr_reader("gem_name"); - return (Opal.def(self, '$initialize', $GemNotFound_initialize$1 = function $$initialize(gem_name) { - var $iter = $GemNotFound_initialize$1.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(gem_name) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $GemNotFound_initialize$1.$$p = null; + delete $$initialize.$$p; self.gem_name = gem_name; - return $send2(self, $find_super(self, 'initialize', $GemNotFound_initialize$1, false, true), 'initialize', ["" + "can't find gem " + (gem_name)], null); - }, $GemNotFound_initialize$1.$$arity = 1), nil) && 'initialize'; - })($nesting[0], $$($nesting, 'Error'), $nesting); - (function($base, $super, $parent_nesting) { + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', ["can't find gem " + (gem_name)], null); + }, 1); + })($nesting[0], $$('Error')); + (function($base, $super) { var self = $klass($base, $super, 'CompilationError'); - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("location") - })($nesting[0], $$($nesting, 'Error'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ParsingError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'CompilationError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'RewritingError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'ParsingError'), $nesting); - (function($base, $super, $parent_nesting) { + })($nesting[0], $$('Error')); + $klass($nesting[0], $$('CompilationError'), 'ParsingError'); + $klass($nesting[0], $$('ParsingError'), 'RewritingError'); + (function($base, $super) { var self = $klass($base, $super, 'SyntaxError'); - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("location") - })($nesting[0], $$$('::', 'SyntaxError'), $nesting); - Opal.defs(self, '$opal_location_from_error', $Opal_opal_location_from_error$2 = function $$opal_location_from_error(error) { - var self = this, opal_location = nil, $writer = nil; + })($nesting[0], $$$('SyntaxError')); + $defs(self, '$opal_location_from_error', function $$opal_location_from_error(error) { + var opal_location = nil, $writer = nil; - opal_location = $$($nesting, 'OpalBacktraceLocation').$new(); + opal_location = $$('OpalBacktraceLocation').$new(); if ($truthy(error['$respond_to?']("location"))) { $writer = [error.$location()]; - $send(opal_location, 'location=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(opal_location, 'location=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; if ($truthy(error['$respond_to?']("diagnostic"))) { $writer = [error.$diagnostic()]; - $send(opal_location, 'diagnostic=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; + $send(opal_location, 'diagnostic=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; return opal_location; - }, $Opal_opal_location_from_error$2.$$arity = 1); - Opal.defs(self, '$add_opal_location_to_error', $Opal_add_opal_location_to_error$3 = function $$add_opal_location_to_error(opal_location, error) { - var self = this, backtrace = nil; + }, 1); + $defs(self, '$add_opal_location_to_error', function $$add_opal_location_to_error(opal_location, error) { + var backtrace = nil; backtrace = error.$backtrace().$to_a(); backtrace.$unshift(opal_location.$to_s()); error.$set_backtrace(backtrace); return error; - }, $Opal_add_opal_location_to_error$3.$$arity = 2); - return (function($base, $super, $parent_nesting) { + }, 2); + return (function($base, $super) { var self = $klass($base, $super, 'OpalBacktraceLocation'); - var $nesting = [self].concat($parent_nesting), $OpalBacktraceLocation_initialize$4, $OpalBacktraceLocation_to_s$5, $OpalBacktraceLocation_diagnostic$eq$6, $OpalBacktraceLocation_location$eq$7; - + self.$attr_accessor("path", "lineno", "label"); - Opal.def(self, '$initialize', $OpalBacktraceLocation_initialize$4 = function $$initialize(path, lineno, label) { + $def(self, '$initialize', function $$initialize(path, lineno, label) { var $a, self = this; - if (path == null) { - path = nil; - }; + if (path == null) path = nil;; - if (lineno == null) { - lineno = nil; - }; + if (lineno == null) lineno = nil;; - if (label == null) { - label = nil; - }; + if (label == null) label = nil;; return $a = [path, lineno, label], (self.path = $a[0]), (self.lineno = $a[1]), (self.label = $a[2]), $a; - }, $OpalBacktraceLocation_initialize$4.$$arity = -1); + }, -1); - Opal.def(self, '$to_s', $OpalBacktraceLocation_to_s$5 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this, string = nil; string = self.$path(); if ($truthy(self.$lineno())) { - string = $rb_plus(string, "" + ":" + (self.$lineno()))}; + string = $rb_plus(string, ":" + (self.$lineno())) + }; string = $rb_plus(string, ":in "); if ($truthy(self.$label())) { - string = $rb_plus(string, "" + "`" + (self.$label()) + "'") + string = $rb_plus(string, "`" + (self.$label()) + "'") } else { string = $rb_plus(string, "unknown") }; return string; - }, $OpalBacktraceLocation_to_s$5.$$arity = 0); + }, 0); $alias(self, "line", "lineno"); - Opal.def(self, '$diagnostic=', $OpalBacktraceLocation_diagnostic$eq$6 = function(diagnostic) { + $def(self, '$diagnostic=', function $OpalBacktraceLocation_diagnostic$eq$1(diagnostic) { var self = this, $writer = nil; - if ($truthy(diagnostic)) { - } else { + if (!$truthy(diagnostic)) { return nil }; $writer = [diagnostic.$location()]; - $send(self, 'location=', Opal.to_a($writer)); + $send(self, 'location=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $OpalBacktraceLocation_diagnostic$eq$6.$$arity = 1); - return (Opal.def(self, '$location=', $OpalBacktraceLocation_location$eq$7 = function(location) { + }, 1); + return $def(self, '$location=', function $OpalBacktraceLocation_location$eq$2(location) { var self = this, $writer = nil; - if ($truthy(location)) { - } else { + if (!$truthy(location)) { return nil }; $writer = [location.$line()]; - $send(self, 'lineno=', Opal.to_a($writer)); + $send(self, 'lineno=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(location['$respond_to?']("source_line"))) { $writer = [location.$source_line()]; - $send(self, 'label=', Opal.to_a($writer)); + $send(self, 'label=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else if ($truthy(location['$respond_to?']("expression"))) { $writer = [location.$expression().$source_line()]; - $send(self, 'label=', Opal.to_a($writer)); + $send(self, 'label=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; } else { return nil }; - }, $OpalBacktraceLocation_location$eq$7.$$arity = 1), nil) && 'location='; - })($nesting[0], null, $nesting); + }, 1); + })($nesting[0], null); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/magic_comments"] = function(Opal) { - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/magic_comments"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $rb_ge = Opal.rb_ge, $eqeqeq = Opal.eqeqeq, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $defs = Opal.defs; - Opal.add_stubs(['$freeze', '$line', '$loc', '$take', '$each', '$>=', '$any?', '$scan', '$text', '$to_sym', '$===', '$[]=', '$-']); + Opal.add_stubs('freeze,line,loc,take,each,>=,any?,scan,text,to_sym,===,[]=,-'); return (function($base, $parent_nesting) { var self = $module($base, 'MagicComments'); - var $nesting = [self].concat($parent_nesting), $MagicComments_parse$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'MAGIC_COMMENT_RE', /^# *(\w+) *: *(\S+.*?) *$/.$freeze()); - Opal.const_set($nesting[0], 'EMACS_MAGIC_COMMENT_RE', /^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()); - return (Opal.defs(self, '$parse', $MagicComments_parse$1 = function $$parse(sexp, comments) { - var $$2, self = this, flags = nil, first_line = nil; + $const_set($nesting[0], 'MAGIC_COMMENT_RE', /^# *(\w+) *: *(\S+.*?) *$/.$freeze()); + $const_set($nesting[0], 'EMACS_MAGIC_COMMENT_RE', /^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()); + return $defs(self, '$parse', function $$parse(sexp, comments) { + var flags = nil, first_line = nil; flags = $hash2([], {}); if ($truthy(sexp)) { first_line = sexp.$loc().$line(); - comments = comments.$take(first_line);}; - $send(comments, 'each', [], ($$2 = function(comment){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $ret_or_1 = nil, $ret_or_2 = nil, parts = nil; + comments = comments.$take(first_line); + }; + $send(comments, 'each', [], function $$1(comment){var parts = nil; - if (comment == null) { - comment = nil; + if (comment == null) comment = nil;; + if (($truthy(first_line) && ($truthy($rb_ge(comment.$loc().$line(), first_line))))) { + return nil; }; - if ($truthy((function() {if ($truthy(($ret_or_1 = first_line))) { - return $rb_ge(comment.$loc().$line(), first_line) - } else { - return $ret_or_1 - }; return nil; })())) { - return nil;}; - if ($truthy((function() {if ($truthy(($ret_or_2 = (parts = comment.$text().$scan($$($nesting, 'MAGIC_COMMENT_RE')))['$any?']()))) { - return $ret_or_2 - } else { - return (parts = comment.$text().$scan($$($nesting, 'EMACS_MAGIC_COMMENT_RE')))['$any?']() - }; return nil; })())) { - return $send(parts, 'each', [], ($$3 = function(key, value){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil, $case = nil; + if (($truthy((parts = comment.$text().$scan($$('MAGIC_COMMENT_RE')))['$any?']()) || ($truthy((parts = comment.$text().$scan($$('EMACS_MAGIC_COMMENT_RE')))['$any?']())))) { + return $send(parts, 'each', [], function $$2(key, value){var $writer = nil, $ret_or_1 = nil; - if (key == null) { - key = nil; - }; + if (key == null) key = nil;; - if (value == null) { - value = nil; - }; - $writer = [key.$to_sym(), (function() {$case = value; - if ("true"['$===']($case)) {return true} - else if ("false"['$===']($case)) {return false} - else {return value}})()]; - $send(flags, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 2, $$3)) + if (value == null) value = nil;; + $writer = [key.$to_sym(), ($eqeqeq("true", ($ret_or_1 = value)) || (($eqeqeq("false", $ret_or_1) ? (false) : (value))))]; + $send(flags, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 2) } else { return nil - };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + };}, 1); return flags; - }, $MagicComments_parse$1.$$arity = 2), nil) && 'parse'; - })($$($nesting, 'Opal'), $nesting) + }, 2); + })($$('Opal'), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/compiler"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $slice = Opal.slice; +Opal.modules["opal/compiler"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $hash2 = Opal.hash2, $defs = Opal.defs, $klass = Opal.klass, $const_set = Opal.const_set, $send = Opal.send, $truthy = Opal.truthy, $not = Opal.not, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $Opal = Opal.Opal, $to_ary = Opal.to_ary, $alias = Opal.alias, $eqeqeq = Opal.eqeqeq, $regexp = Opal.regexp, $rb_plus = Opal.rb_plus, $slice = Opal.slice, $eqeq = Opal.eqeq; - Opal.add_stubs(['$require', '$compile', '$new', '$freeze', '$join', '$dirname', '$first', '$split', '$basename', '$to_s', '$cleanpath', '$Pathname', '$fetch', '$define_method', '$option_value', '$key?', '$[]', '$!', '$include?', '$raise', '$inspect', '$[]=', '$-', '$compiler_option', '$attr_reader', '$attr_accessor', '$parse', '$re_raise_with_location', '$flatten', '$process', '$end_with?', '$code', '$last', '$<<', '$fragment', '$s', '$map', '$to_proc', '$file', '$source=', '$default_parser', '$tokenize', '$associate_locations', '$eof', '$magic_comments', '$to_sym', '$strip', '$location=', '$opal_location_from_error', '$path=', '$label', '$lines', '$to_i', '$line', '$label=', '$message', '$set_backtrace', '$backtrace', '$add_opal_location_to_error', '$warn', '$empty?', '$gsub', '$+', '$start_with?', '$helpers', '$new_temp', '$queue_temp', '$push_while', '$pop_while', '$in_while?', '$nil?', '$scope', '$handlers', '$type', '$compile_to_fragments', '$error', '$returns', '$===', '$updated', '$children', '$loc', '$uses_block!', '$block_name', '$find_parent_def', '$cache', '$source_map']); + Opal.add_stubs('require,compile,new,freeze,join,dirname,first,split,basename,to_s,cleanpath,Pathname,fetch,define_method,option_value,key?,[],!,include?,raise,inspect,[]=,-,compiler_option,attr_reader,attr_accessor,parse,re_raise_with_location,flatten,process,end_with?,code,last,<<,fragment,s,map,to_proc,file,source=,default_parser,tokenize,requirable?,eval?,tap,meta,location,children,associate_locations,eof,magic_comments,to_sym,strip,async_await_before_typecasting,===,async_await_set_to_regexp,to_a,gsub,escape,location=,opal_location_from_error,path=,label,lines,to_i,line,label=,message,set_backtrace,backtrace,add_opal_location_to_error,warn,empty?,+,start_with?,helpers,new_temp,queue_temp,push_while,pop_while,in_while?,nil?,scope,handlers,type,compile_to_fragments,error,returns,updated,==,uses_block!,block_name,find_parent_def,cache,source_map'); self.$require("set"); self.$require("opal/parser"); @@ -39995,76 +36484,66 @@ Opal.modules["opal/compiler"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting), $Opal_compile$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$compile', $Opal_compile$1 = function $$compile(source, options) { - var self = this; - + $defs(self, '$compile', function $$compile(source, options) { - if (options == null) { - options = $hash2([], {}); - }; - return $$($nesting, 'Compiler').$new(source, options).$compile(); - }, $Opal_compile$1.$$arity = -2); + + if (options == null) options = $hash2([], {});; + return $$('Compiler').$new(source, options).$compile(); + }, -2); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Compiler'); - var $nesting = [self].concat($parent_nesting), $Compiler_module_name$2, $Compiler_compiler_option$3, $Compiler_option_value$5, $Compiler_initialize$6, $Compiler_compile$7, $Compiler_parse$9, $Compiler_source_map$11, $Compiler_helpers$12, $Compiler_operator_helpers$14, $Compiler_method_calls$15, $Compiler_error$16, $Compiler_re_raise_with_location$17, $Compiler_warning$18, $Compiler_parser_indent$19, $Compiler_s$20, $Compiler_fragment$21, $Compiler_unique_temp$22, $Compiler_helper$23, $Compiler_indent$24, $Compiler_with_temp$25, $Compiler_in_while$26, $Compiler_in_case$27, $Compiler_in_while$ques$28, $Compiler_process$29, $Compiler_handlers$30, $Compiler_requires$31, $Compiler_required_trees$32, $Compiler_returns$33, $Compiler_handle_block_given_call$35, $Compiler_marshal_dump$36, $Compiler_marshal_load$37; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.option_values = self.$$prototype.options = self.$$prototype.magic_comments = self.$$prototype.fragments = self.$$prototype.source = self.$$prototype.buffer = self.$$prototype.source_map = self.$$prototype.result = self.$$prototype.helpers = self.$$prototype.operator_helpers = self.$$prototype.method_calls = self.$$prototype.indent = self.$$prototype.unique = self.$$prototype.scope = self.$$prototype.case_stmt = self.$$prototype.handlers = self.$$prototype.requires = self.$$prototype.required_trees = nil; + $proto.option_values = $proto.options = $proto.magic_comments = $proto.fragments = $proto.source = $proto.buffer = $proto.source_map = $proto.result = $proto.helpers = $proto.method_calls = $proto.async_await = $proto.indent = $proto.unique = $proto.scope = $proto.case_stmt = $proto.handlers = $proto.requires = $proto.required_trees = $proto.autoloads = nil; - Opal.const_set($nesting[0], 'INDENT', " "); - Opal.const_set($nesting[0], 'COMPARE', ["<", ">", "<=", ">="].$freeze()); - Opal.defs(self, '$module_name', $Compiler_module_name$2 = function $$module_name(path) { + $const_set($nesting[0], 'INDENT', " "); + $const_set($nesting[0], 'COMPARE', ["<", ">", "<=", ">="].$freeze()); + $defs(self, '$module_name', function $$module_name(path) { var self = this; - path = $$($nesting, 'File').$join($$($nesting, 'File').$dirname(path), $$($nesting, 'File').$basename(path).$split(".").$first()); + path = $$('File').$join($$('File').$dirname(path), $$('File').$basename(path).$split(".").$first()); return self.$Pathname(path).$cleanpath().$to_s(); - }, $Compiler_module_name$2.$$arity = 1); - Opal.defs(self, '$compiler_option', $Compiler_compiler_option$3 = function $$compiler_option(name, config) { - var $$4, self = this, method_name = nil; + }, 1); + $defs(self, '$compiler_option', function $$compiler_option(name, config) { + var self = this, method_name = nil; - if (config == null) { - config = $hash2([], {}); - }; + if (config == null) config = $hash2([], {});; method_name = config.$fetch("as", name); - return $send(self, 'define_method', [method_name], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + return $send(self, 'define_method', [method_name], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return self.$option_value(name, config)}, $$4.$$s = self, $$4.$$arity = 0, $$4)); - }, $Compiler_compiler_option$3.$$arity = -2); + return self.$option_value(name, config)}, {$$arity: 0, $$s: self}); + }, -2); - Opal.def(self, '$option_value', $Compiler_option_value$5 = function $$option_value(name, config) { - var self = this, default_value = nil, valid_values = nil, magic_comment = nil, value = nil, $ret_or_1 = nil, $ret_or_2 = nil, $writer = nil; + $def(self, '$option_value', function $$option_value(name, config) { + var self = this, default_value = nil, valid_values = nil, magic_comment = nil, value = nil, $writer = nil; if ($truthy(self.option_values['$key?'](name))) { - return self.option_values['$[]'](name)}; + return self.option_values['$[]'](name) + }; default_value = config['$[]']("default"); valid_values = config['$[]']("valid_values"); magic_comment = config['$[]']("magic_comment"); value = self.options.$fetch(name, default_value); - if ($truthy((function() {if ($truthy(($ret_or_1 = magic_comment))) { - return self.magic_comments['$key?'](name) - } else { - return $ret_or_1 - }; return nil; })())) { - value = self.magic_comments.$fetch(name)}; - if ($truthy((function() {if ($truthy(($ret_or_2 = valid_values))) { - return valid_values['$include?'](value)['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'), "" + ("" + "invalid value " + (value.$inspect()) + " for option " + (name.$inspect()) + " ") + ("" + "(valid values: " + (valid_values.$inspect()) + ")"))}; + if (($truthy(magic_comment) && ($truthy(self.magic_comments['$key?'](name))))) { + value = self.magic_comments.$fetch(name) + }; + if (($truthy(valid_values) && ($not(valid_values['$include?'](value))))) { + self.$raise($$('ArgumentError'), "" + ("invalid value " + (value.$inspect()) + " for option " + (name.$inspect()) + " ") + ("(valid values: " + (valid_values.$inspect()) + ")")) + }; $writer = [name, value]; - $send(self.option_values, '[]=', Opal.to_a($writer)); + $send(self.option_values, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $Compiler_option_value$5.$$arity = 2); + }, 2); self.$compiler_option("file", $hash2(["default"], {"default": "(file)"})); self.$compiler_option("method_missing", $hash2(["default", "as"], {"default": true, "as": "method_missing?"})); self.$compiler_option("arity_check", $hash2(["default", "as"], {"default": false, "as": "arity_check?"})); @@ -40079,431 +36558,424 @@ Opal.modules["opal/compiler"] = function(Opal) { self.$compiler_option("use_strict", $hash2(["default", "as", "magic_comment"], {"default": false, "as": "use_strict?", "magic_comment": true})); self.$compiler_option("parse_comments", $hash2(["default", "as"], {"default": false, "as": "parse_comments?"})); self.$compiler_option("scope_variables", $hash2(["default"], {"default": []})); + self.$compiler_option("await", $hash2(["default", "as", "magic_comment"], {"default": false, "as": "async_await", "magic_comment": true})); self.$attr_reader("result"); self.$attr_reader("fragments"); self.$attr_accessor("scope"); + self.$attr_accessor("top_scope"); self.$attr_reader("case_stmt"); self.$attr_reader("eof_content"); self.$attr_reader("comments"); self.$attr_reader("magic_comments"); + self.$attr_accessor("dynamic_cache_result"); - Opal.def(self, '$initialize', $Compiler_initialize$6 = function $$initialize(source, options) { + $def(self, '$initialize', function $$initialize(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; self.source = source; self.indent = ""; self.unique = 0; self.options = options; - self.comments = $$($nesting, 'Hash').$new([]); + self.comments = $$('Hash').$new([]); self.case_stmt = nil; self.option_values = $hash2([], {}); - return (self.magic_comments = $hash2([], {})); - }, $Compiler_initialize$6.$$arity = -2); + self.magic_comments = $hash2([], {}); + return (self.dynamic_cache_result = false); + }, -2); - Opal.def(self, '$compile', $Compiler_compile$7 = function $$compile() { - var $$8, self = this; + $def(self, '$compile', function $$compile() { + var self = this; self.$parse(); - self.fragments = $send(self, 're_raise_with_location', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + self.fragments = $send(self, 're_raise_with_location', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; if (self.sexp == null) self.sexp = nil; - return self.$process(self.sexp).$flatten()}, $$8.$$s = self, $$8.$$arity = 0, $$8)); - if ($truthy(self.fragments.$last().$code()['$end_with?']("\n"))) { - } else { + return self.$process(self.sexp).$flatten()}, {$$arity: 0, $$s: self}); + if (!$truthy(self.fragments.$last().$code()['$end_with?']("\n"))) { self.fragments['$<<'](self.$fragment("\n", nil, self.$s("newline"))) }; return (self.result = $send(self.fragments, 'map', [], "code".$to_proc()).$join("")); - }, $Compiler_compile$7.$$arity = 0); + }, 0); - Opal.def(self, '$parse', $Compiler_parse$9 = function $$parse() { - var $a, $b, $$10, self = this, $writer = nil, sexp = nil, comments = nil, tokens = nil, $ret_or_3 = nil; + $def(self, '$parse', function $$parse() { + var $a, $b, self = this, $writer = nil, sexp = nil, comments = nil, tokens = nil, kind = nil, first_node = nil; - self.buffer = $$$($$$($$$('::', 'Opal'), 'Parser'), 'SourceBuffer').$new(self.$file(), 1); + self.buffer = $$$($$$($Opal, 'Parser'), 'SourceBuffer').$new(self.$file(), 1); $writer = [self.source]; - $send(self.buffer, 'source=', Opal.to_a($writer)); + $send(self.buffer, 'source=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.parser = $$$($$($nesting, 'Opal'), 'Parser').$default_parser(); - $b = $send(self, 're_raise_with_location', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + self.parser = $$$($$('Opal'), 'Parser').$default_parser(); + $b = $send(self, 're_raise_with_location', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; if (self.parser == null) self.parser = nil; if (self.buffer == null) self.buffer = nil; - return self.parser.$tokenize(self.buffer)}, $$10.$$s = self, $$10.$$arity = 0, $$10)), $a = Opal.to_ary($b), (sexp = ($a[0] == null ? nil : $a[0])), (comments = ($a[1] == null ? nil : $a[1])), (tokens = ($a[2] == null ? nil : $a[2])), $b; - self.sexp = self.$s("top", (function() {if ($truthy(($ret_or_3 = sexp))) { - return $ret_or_3 - } else { - return self.$s("nil") - }; return nil; })()); - self.comments = $$$($$$($$$('::', 'Parser'), 'Source'), 'Comment').$associate_locations(sexp, comments); - self.magic_comments = $$($nesting, 'MagicComments').$parse(sexp, comments); - return (self.eof_content = $$($nesting, 'EofContent').$new(tokens, self.source).$eof()); - }, $Compiler_parse$9.$$arity = 0); - - Opal.def(self, '$source_map', $Compiler_source_map$11 = function $$source_map() { - var self = this, $ret_or_4 = nil; - - if ($truthy(($ret_or_4 = self.source_map))) { - return $ret_or_4 - } else { - return $$$($$$($$$('::', 'Opal'), 'SourceMap'), 'File').$new(self.fragments, self.$file(), self.source, self.result) - } - }, $Compiler_source_map$11.$$arity = 0); + return self.parser.$tokenize(self.buffer)}, {$$arity: 0, $$s: self}), $a = $to_ary($b), (sexp = ($a[0] == null ? nil : $a[0])), (comments = ($a[1] == null ? nil : $a[1])), (tokens = ($a[2] == null ? nil : $a[2])), $b; + kind = ($truthy(self['$requirable?']()) ? ("require") : ($truthy(self['$eval?']()) ? ("eval") : ("main"))); + self.sexp = $send(sexp, 'tap', [], function $$4(i){ + + + if (i == null) i = nil;; + $writer = ["kind", kind]; + $send(i.$meta(), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + if ($truthy(sexp.$children().$first().$location())) { + first_node = sexp.$children().$first() + }; + self.comments = $$$($$$($$$('Parser'), 'Source'), 'Comment').$associate_locations(first_node, comments); + self.magic_comments = $$('MagicComments').$parse(first_node, comments); + return (self.eof_content = $$('EofContent').$new(tokens, self.source).$eof()); + }, 0); - Opal.def(self, '$helpers', $Compiler_helpers$12 = function $$helpers() { - var $$13, self = this, $ret_or_5 = nil; + $def(self, '$source_map', function $$source_map() { + var self = this, $ret_or_1 = nil; - return (self.helpers = (function() {if ($truthy(($ret_or_5 = self.helpers))) { - return $ret_or_5 + if ($truthy(($ret_or_1 = self.source_map))) { + return $ret_or_1 } else { - return $$($nesting, 'Set').$new($send(self.$magic_comments()['$[]']("helpers").$to_s().$split(","), 'map', [], ($$13 = function(h){var self = $$13.$$s == null ? this : $$13.$$s; + return $$$($$$($Opal, 'SourceMap'), 'File').$new(self.fragments, self.$file(), self.source, self.result) + } + }, 0); + + $def(self, '$helpers', function $$helpers() { + var self = this, $ret_or_1 = nil; - - - if (h == null) { - h = nil; - }; - return h.$strip().$to_sym();}, $$13.$$s = self, $$13.$$arity = 1, $$13))) - }; return nil; })()) - }, $Compiler_helpers$12.$$arity = 0); + return (self.helpers = ($truthy(($ret_or_1 = self.helpers)) ? ($ret_or_1) : ($$('Set').$new($send(self.$magic_comments()['$[]']("helpers").$to_s().$split(","), 'map', [], function $$5(h){ + + + if (h == null) h = nil;; + return h.$strip().$to_sym();}, 1))))) + }, 0); - Opal.def(self, '$operator_helpers', $Compiler_operator_helpers$14 = function $$operator_helpers() { - var self = this, $ret_or_6 = nil; + $def(self, '$method_calls', function $$method_calls() { + var self = this, $ret_or_1 = nil; - return (self.operator_helpers = (function() {if ($truthy(($ret_or_6 = self.operator_helpers))) { - return $ret_or_6 - } else { - return $$($nesting, 'Set').$new() - }; return nil; })()) - }, $Compiler_operator_helpers$14.$$arity = 0); + return (self.method_calls = ($truthy(($ret_or_1 = self.method_calls)) ? ($ret_or_1) : ($$('Set').$new()))) + }, 0); + $alias(self, "async_await_before_typecasting", "async_await"); - Opal.def(self, '$method_calls', $Compiler_method_calls$15 = function $$method_calls() { - var self = this, $ret_or_7 = nil; + $def(self, '$async_await', function $$async_await() { + var $a, self = this, original = nil, $ret_or_1 = nil; - return (self.method_calls = (function() {if ($truthy(($ret_or_7 = self.method_calls))) { - return $ret_or_7 + if ($truthy((($a = self['async_await'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + return self.async_await } else { - return $$($nesting, 'Set').$new() - }; return nil; })()) - }, $Compiler_method_calls$15.$$arity = 0); + + original = self.$async_await_before_typecasting(); + return (self.async_await = ($eqeqeq($$('String'), ($ret_or_1 = original)) ? (self.$async_await_set_to_regexp($send(original.$split(","), 'map', [], function $$6(h){ + + + if (h == null) h = nil;; + return h.$strip().$to_sym();}, 1))) : (($eqeqeq($$('Array'), $ret_or_1) || ($eqeqeq($$('Set'), $ret_or_1))) ? (self.$async_await_set_to_regexp($send(original.$to_a(), 'map', [], "to_sym".$to_proc()))) : (($eqeqeq($$('Regexp'), $ret_or_1) || (($eqeqeq(true, $ret_or_1) || ($eqeqeq(false, $ret_or_1))))) ? (original) : (self.$raise("A value of await compiler option can be either " + "a Set, an Array, a String or a Boolean.")))))); + } + }, 0); + + $def(self, '$async_await_set_to_regexp', function $$async_await_set_to_regexp(set) { + + + set = $send(set, 'map', [], function $$7(name){ + + + if (name == null) name = nil;; + return $$('Regexp').$escape(name.$to_s()).$gsub("\\*", ".*?");}, 1); + set = set.$join("|"); + return $regexp(["^(", set, ")$"]); + }, 1); - Opal.def(self, '$error', $Compiler_error$16 = function $$error(msg, line) { + $def(self, '$error', function $$error(msg, line) { var self = this, error = nil, $writer = nil; - if (line == null) { - line = nil; - }; - error = $$$($$$('::', 'Opal'), 'SyntaxError').$new(msg); + if (line == null) line = nil;; + error = $$$($Opal, 'SyntaxError').$new(msg); - $writer = [$$$($$($nesting, 'Opal'), 'OpalBacktraceLocation').$new(self.$file(), line)]; - $send(error, 'location=', Opal.to_a($writer)); + $writer = [$$$($$('Opal'), 'OpalBacktraceLocation').$new(self.$file(), line)]; + $send(error, 'location=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$raise(error); - }, $Compiler_error$16.$$arity = -2); + }, -2); - Opal.def(self, '$re_raise_with_location', $Compiler_re_raise_with_location$17 = function $$re_raise_with_location() { - var $iter = $Compiler_re_raise_with_location$17.$$p, $yield = $iter || nil, self = this, error = nil, opal_location = nil, $writer = nil, $ret_or_8 = nil, new_error = nil; + $def(self, '$re_raise_with_location', function $$re_raise_with_location() { + var $yield = $$re_raise_with_location.$$p || nil, self = this, error = nil, opal_location = nil, $writer = nil, $ret_or_1 = nil, new_error = nil; - if ($iter) $Compiler_re_raise_with_location$17.$$p = null; + delete $$re_raise_with_location.$$p; try { return Opal.yieldX($yield, []); } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'StandardError'), $$$($$$('::', 'Opal'), 'SyntaxError')])) {(error = $err) + if (Opal.rescue($err, [$$('StandardError'), $$$($Opal, 'SyntaxError')])) {(error = $err) try { - opal_location = $$$('::', 'Opal').$opal_location_from_error(error); + opal_location = $Opal.$opal_location_from_error(error); $writer = [self.$file()]; - $send(opal_location, 'path=', Opal.to_a($writer)); + $send(opal_location, 'path=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(($ret_or_8 = opal_location.$label()))) { - $ret_or_8 + if ($truthy(($ret_or_1 = opal_location.$label()))) { + $ret_or_1 } else { $writer = [self.source.$lines()['$[]']($rb_minus(opal_location.$line().$to_i(), 1)).$strip()]; - $send(opal_location, 'label=', Opal.to_a($writer)); + $send(opal_location, 'label=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - new_error = $$$($$$('::', 'Opal'), 'SyntaxError').$new(error.$message()); + new_error = $$$($Opal, 'SyntaxError').$new(error.$message()); new_error.$set_backtrace(error.$backtrace()); - $$$('::', 'Opal').$add_opal_location_to_error(opal_location, new_error); + $Opal.$add_opal_location_to_error(opal_location, new_error); return self.$raise(new_error); } finally { Opal.pop_exception(); } } else { throw $err; } } - }, $Compiler_re_raise_with_location$17.$$arity = 0); + }, 0); - Opal.def(self, '$warning', $Compiler_warning$18 = function $$warning(msg, line) { + $def(self, '$warning', function $$warning(msg, line) { var self = this; - if (line == null) { - line = nil; - }; - return self.$warn("" + "warning: " + (msg) + " -- " + (self.$file()) + ":" + (line)); - }, $Compiler_warning$18.$$arity = -2); + if (line == null) line = nil;; + return self.$warn("warning: " + (msg) + " -- " + (self.$file()) + ":" + (line)); + }, -2); - Opal.def(self, '$parser_indent', $Compiler_parser_indent$19 = function $$parser_indent() { + $def(self, '$parser_indent', function $$parser_indent() { var self = this; return self.indent - }, $Compiler_parser_indent$19.$$arity = 0); + }, 0); - Opal.def(self, '$s', $Compiler_s$20 = function $$s(type, $a) { - var $post_args, children, self = this; + $def(self, '$s', function $$s(type, $a) { + var $post_args, children; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); children = $post_args;; - return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children); - }, $Compiler_s$20.$$arity = -2); + return $$$($$$($Opal, 'AST'), 'Node').$new(type, children); + }, -2); - Opal.def(self, '$fragment', $Compiler_fragment$21 = function $$fragment(str, scope, sexp) { - var self = this; - + $def(self, '$fragment', function $$fragment(str, scope, sexp) { - if (sexp == null) { - sexp = nil; - }; - return $$($nesting, 'Fragment').$new(str, scope, sexp); - }, $Compiler_fragment$21.$$arity = -3); + + if (sexp == null) sexp = nil;; + return $$('Fragment').$new(str, scope, sexp); + }, -3); - Opal.def(self, '$unique_temp', $Compiler_unique_temp$22 = function $$unique_temp(name) { - var self = this, $ret_or_9 = nil, unique = nil; + $def(self, '$unique_temp', function $$unique_temp(name) { + var self = this, unique = nil; name = name.$to_s(); - if ($truthy((function() {if ($truthy(($ret_or_9 = name))) { - return name['$empty?']()['$!']() - } else { - return $ret_or_9 - }; return nil; })())) { - name = name.$to_s().$gsub("<=>", "$lt_eq_gt").$gsub("===", "$eq_eq_eq").$gsub("==", "$eq_eq").$gsub("=~", "$eq_tilde").$gsub("!~", "$excl_tilde").$gsub("!=", "$not_eq").$gsub("<=", "$lt_eq").$gsub(">=", "$gt_eq").$gsub("=", "$eq").$gsub("?", "$ques").$gsub("!", "$excl").$gsub("/", "$slash").$gsub("%", "$percent").$gsub("+", "$plus").$gsub("-", "$minus").$gsub("<", "$lt").$gsub(">", "$gt").$gsub(/[^\w\$]/, "$")}; + if (($truthy(name) && ($not(name['$empty?']())))) { + name = name.$to_s().$gsub("<=>", "$lt_eq_gt").$gsub("===", "$eq_eq_eq").$gsub("==", "$eq_eq").$gsub("=~", "$eq_tilde").$gsub("!~", "$excl_tilde").$gsub("!=", "$not_eq").$gsub("<=", "$lt_eq").$gsub(">=", "$gt_eq").$gsub("=", "$eq").$gsub("?", "$ques").$gsub("!", "$excl").$gsub("/", "$slash").$gsub("%", "$percent").$gsub("+", "$plus").$gsub("-", "$minus").$gsub("<", "$lt").$gsub(">", "$gt").$gsub(/[^\w\$]/, "$") + }; unique = (self.unique = $rb_plus(self.unique, 1)); - return "" + ((function() {if ($truthy(name['$start_with?']("$"))) { - return nil - } else { - return "$" - }; return nil; })()) + (name) + "$" + (unique); - }, $Compiler_unique_temp$22.$$arity = 1); + return "" + (($truthy(name['$start_with?']("$")) ? (nil) : ("$"))) + (name) + "$" + (unique); + }, 1); - Opal.def(self, '$helper', $Compiler_helper$23 = function $$helper(name) { + $def(self, '$helper', function $$helper(name) { var self = this; return self.$helpers()['$<<'](name) - }, $Compiler_helper$23.$$arity = 1); + }, 1); - Opal.def(self, '$indent', $Compiler_indent$24 = function $$indent() { - var $iter = $Compiler_indent$24.$$p, $yield = $iter || nil, self = this, indent = nil, res = nil; + $def(self, '$indent', function $$indent() { + var $yield = $$indent.$$p || nil, self = this, indent = nil, res = nil; - if ($iter) $Compiler_indent$24.$$p = null; + delete $$indent.$$p; indent = self.indent; - self.indent = $rb_plus(self.indent, $$($nesting, 'INDENT')); - self.space = "" + "\n" + (self.indent); + self.indent = $rb_plus(self.indent, $$('INDENT')); + self.space = "\n" + (self.indent); res = Opal.yieldX($yield, []); self.indent = indent; - self.space = "" + "\n" + (self.indent); + self.space = "\n" + (self.indent); return res; - }, $Compiler_indent$24.$$arity = 0); + }, 0); - Opal.def(self, '$with_temp', $Compiler_with_temp$25 = function $$with_temp() { - var $iter = $Compiler_with_temp$25.$$p, $yield = $iter || nil, self = this, tmp = nil, res = nil; + $def(self, '$with_temp', function $$with_temp() { + var $yield = $$with_temp.$$p || nil, self = this, tmp = nil, res = nil; - if ($iter) $Compiler_with_temp$25.$$p = null; + delete $$with_temp.$$p; tmp = self.scope.$new_temp(); res = Opal.yield1($yield, tmp); self.scope.$queue_temp(tmp); return res; - }, $Compiler_with_temp$25.$$arity = 0); + }, 0); - Opal.def(self, '$in_while', $Compiler_in_while$26 = function $$in_while() { - var $iter = $Compiler_in_while$26.$$p, $yield = $iter || nil, self = this, result = nil; + $def(self, '$in_while', function $$in_while() { + var $yield = $$in_while.$$p || nil, self = this, result = nil; - if ($iter) $Compiler_in_while$26.$$p = null; + delete $$in_while.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return nil }; self.while_loop = self.scope.$push_while(); result = Opal.yieldX($yield, []); self.scope.$pop_while(); return result; - }, $Compiler_in_while$26.$$arity = 0); + }, 0); - Opal.def(self, '$in_case', $Compiler_in_case$27 = function $$in_case() { - var $iter = $Compiler_in_case$27.$$p, $yield = $iter || nil, self = this, old = nil; + $def(self, '$in_case', function $$in_case() { + var $yield = $$in_case.$$p || nil, self = this, old = nil; - if ($iter) $Compiler_in_case$27.$$p = null; + delete $$in_case.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return nil }; old = self.case_stmt; self.case_stmt = $hash2([], {}); Opal.yieldX($yield, []); return (self.case_stmt = old); - }, $Compiler_in_case$27.$$arity = 0); + }, 0); - Opal.def(self, '$in_while?', $Compiler_in_while$ques$28 = function() { + $def(self, '$in_while?', function $Compiler_in_while$ques$8() { var self = this; return self.scope['$in_while?']() - }, $Compiler_in_while$ques$28.$$arity = 0); + }, 0); - Opal.def(self, '$process', $Compiler_process$29 = function $$process(sexp, level) { + $def(self, '$process', function $$process(sexp, level) { var self = this, handler = nil; - if (level == null) { - level = "expr"; - }; + if (level == null) level = "expr";; if ($truthy(sexp['$nil?']())) { - return self.$fragment("", self.$scope())}; + return self.$fragment("", self.$scope()) + }; if ($truthy((handler = self.$handlers()['$[]'](sexp.$type())))) { return handler.$new(sexp, level, self).$compile_to_fragments() } else { - return self.$error("" + "Unsupported sexp: " + (sexp.$type())) + return self.$error("Unsupported sexp: " + (sexp.$type())) }; - }, $Compiler_process$29.$$arity = -2); + }, -2); - Opal.def(self, '$handlers', $Compiler_handlers$30 = function $$handlers() { - var self = this, $ret_or_10 = nil; + $def(self, '$handlers', function $$handlers() { + var self = this, $ret_or_1 = nil; - return (self.handlers = (function() {if ($truthy(($ret_or_10 = self.handlers))) { - return $ret_or_10 - } else { - return $$$($$$($$($nesting, 'Opal'), 'Nodes'), 'Base').$handlers() - }; return nil; })()) - }, $Compiler_handlers$30.$$arity = 0); + return (self.handlers = ($truthy(($ret_or_1 = self.handlers)) ? ($ret_or_1) : ($$$($$$($$('Opal'), 'Nodes'), 'Base').$handlers()))) + }, 0); - Opal.def(self, '$requires', $Compiler_requires$31 = function $$requires() { - var self = this, $ret_or_11 = nil; + $def(self, '$requires', function $$requires() { + var self = this, $ret_or_1 = nil; - return (self.requires = (function() {if ($truthy(($ret_or_11 = self.requires))) { - return $ret_or_11 - } else { - return [] - }; return nil; })()) - }, $Compiler_requires$31.$$arity = 0); + return (self.requires = ($truthy(($ret_or_1 = self.requires)) ? ($ret_or_1) : ([]))) + }, 0); - Opal.def(self, '$required_trees', $Compiler_required_trees$32 = function $$required_trees() { - var self = this, $ret_or_12 = nil; + $def(self, '$required_trees', function $$required_trees() { + var self = this, $ret_or_1 = nil; - return (self.required_trees = (function() {if ($truthy(($ret_or_12 = self.required_trees))) { - return $ret_or_12 - } else { - return [] - }; return nil; })()) - }, $Compiler_required_trees$32.$$arity = 0); + return (self.required_trees = ($truthy(($ret_or_1 = self.required_trees)) ? ($ret_or_1) : ([]))) + }, 0); - Opal.def(self, '$returns', $Compiler_returns$33 = function $$returns(sexp) { - var $a, $b, $$34, self = this, $case = nil, when_sexp = nil, then_sexp = nil, body_sexp = nil, resbodies = nil, else_sexp = nil, klass = nil, lvar = nil, body = nil, rescue_sexp = nil, ensure_body = nil, rest = nil, last = nil, cond = nil, true_body = nil, false_body = nil; + $def(self, '$autoloads', function $$autoloads() { + var self = this, $ret_or_1 = nil; + + return (self.autoloads = ($truthy(($ret_or_1 = self.autoloads)) ? ($ret_or_1) : ([]))) + }, 0); + + $def(self, '$returns', function $$returns(sexp) { + var $a, $b, self = this, $ret_or_1 = nil, when_sexp = nil, then_sexp = nil, body_sexp = nil, resbodies = nil, else_sexp = nil, klass = nil, lvar = nil, body = nil, rescue_sexp = nil, ensure_body = nil, rest = nil, last = nil, cond = nil, true_body = nil, false_body = nil; - if ($truthy(sexp)) { - } else { + if (!$truthy(sexp)) { return self.$returns(self.$s("nil")) }; - return (function() {$case = sexp.$type(); - if ("undef"['$===']($case)) {return self.$returns(self.$s("begin", sexp, self.$s("nil")))} - else if ("break"['$===']($case) || "next"['$===']($case) || "redo"['$===']($case) || "retry"['$===']($case)) {return sexp} - else if ("yield"['$===']($case)) {return sexp.$updated("returnable_yield", nil)} - else if ("when"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_sexp = $slice.call($a, 0, $b)), (then_sexp = ($a[$b] == null ? nil : $a[$b])), $a; - return sexp.$updated(nil, [].concat(Opal.to_a(when_sexp)).concat([self.$returns(then_sexp)]));} - else if ("rescue"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), (body_sexp = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (resbodies = $slice.call($a, 1, $b)), (else_sexp = ($a[$b] == null ? nil : $a[$b])), $a; - resbodies = $send(resbodies, 'map', [], ($$34 = function(resbody){var self = $$34.$$s == null ? this : $$34.$$s; - - - - if (resbody == null) { - resbody = nil; - }; - return self.$returns(resbody);}, $$34.$$s = self, $$34.$$arity = 1, $$34)); - if ($truthy(else_sexp)) { - else_sexp = self.$returns(else_sexp)}; - return sexp.$updated(nil, [self.$returns(body_sexp)].concat(Opal.to_a(resbodies)).concat([else_sexp]));} - else if ("resbody"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), (klass = ($a[0] == null ? nil : $a[0])), (lvar = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; - return sexp.$updated(nil, [klass, lvar, self.$returns(body)]);} - else if ("ensure"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), (rescue_sexp = ($a[0] == null ? nil : $a[0])), (ensure_body = ($a[1] == null ? nil : $a[1])), $a; - sexp = sexp.$updated(nil, [self.$returns(rescue_sexp), ensure_body]); - return self.$s("js_return", sexp);} - else if ("begin"['$===']($case) || "kwbegin"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last = ($a[$b] == null ? nil : $a[$b])), $a; - return sexp.$updated(nil, [].concat(Opal.to_a(rest)).concat([self.$returns(last)]));} - else if ("while"['$===']($case) || "until"['$===']($case) || "while_post"['$===']($case) || "until_post"['$===']($case)) {return sexp} - else if ("return"['$===']($case) || "js_return"['$===']($case) || "returnable_yield"['$===']($case)) {return sexp} - else if ("xstr"['$===']($case)) {return sexp.$updated(nil, [$send(self, 's', ["js_return"].concat(Opal.to_a(sexp.$children())))])} - else if ("if"['$===']($case)) { - $a = [].concat(Opal.to_a(sexp)), (cond = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; - return sexp.$updated(nil, [cond, self.$returns(true_body), self.$returns(false_body)]);} - else {return self.$s("js_return", sexp).$updated(nil, nil, $hash2(["location"], {"location": sexp.$loc()}))}})(); - }, $Compiler_returns$33.$$arity = 1); - - Opal.def(self, '$handle_block_given_call', $Compiler_handle_block_given_call$35 = function $$handle_block_given_call(sexp) { - var self = this, $ret_or_13 = nil, scope = nil; + if ($eqeqeq("undef", ($ret_or_1 = sexp.$type()))) { + return self.$returns(sexp.$updated("begin", [sexp, self.$s("nil")])) + } else if (($eqeqeq("break", $ret_or_1) || (($eqeqeq("next", $ret_or_1) || (($eqeqeq("redo", $ret_or_1) || ($eqeqeq("retry", $ret_or_1)))))))) { + return sexp + } else if ($eqeqeq("yield", $ret_or_1)) { + return sexp.$updated("returnable_yield", nil) + } else if ($eqeqeq("when", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_sexp = $slice.call($a, 0, $b)), (then_sexp = ($a[$b] == null ? nil : $a[$b])), $a; + return sexp.$updated(nil, [].concat($to_a(when_sexp)).concat([self.$returns(then_sexp)])); + } else if ($eqeqeq("rescue", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (body_sexp = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (resbodies = $slice.call($a, 1, $b)), (else_sexp = ($a[$b] == null ? nil : $a[$b])), $a; + resbodies = $send(resbodies, 'map', [], function $$9(resbody){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (resbody == null) resbody = nil;; + return self.$returns(resbody);}, {$$arity: 1, $$s: self}); + if ($truthy(else_sexp)) { + else_sexp = self.$returns(else_sexp) + }; + return sexp.$updated(nil, [self.$returns(body_sexp)].concat($to_a(resbodies)).concat([else_sexp])); + } else if ($eqeqeq("resbody", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (klass = ($a[0] == null ? nil : $a[0])), (lvar = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + return sexp.$updated(nil, [klass, lvar, self.$returns(body)]); + } else if ($eqeqeq("ensure", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (rescue_sexp = ($a[0] == null ? nil : $a[0])), (ensure_body = ($a[1] == null ? nil : $a[1])), $a; + sexp = sexp.$updated(nil, [self.$returns(rescue_sexp), ensure_body]); + return sexp.$updated("js_return", [sexp]); + } else if (($eqeqeq("begin", $ret_or_1) || ($eqeqeq("kwbegin", $ret_or_1)))) { + + $a = [].concat($to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last = ($a[$b] == null ? nil : $a[$b])), $a; + return sexp.$updated(nil, [].concat($to_a(rest)).concat([self.$returns(last)])); + } else if (($eqeqeq("while", $ret_or_1) || (($eqeqeq("until", $ret_or_1) || (($eqeqeq("while_post", $ret_or_1) || ($eqeqeq("until_post", $ret_or_1)))))))) { + return sexp + } else if (($eqeqeq("return", $ret_or_1) || (($eqeqeq("js_return", $ret_or_1) || ($eqeqeq("returnable_yield", $ret_or_1)))))) { + return sexp + } else if ($eqeqeq("xstr", $ret_or_1)) { + return sexp.$updated(nil, [$send(self, 's', ["js_return"].concat($to_a(sexp.$children())))]) + } else if ($eqeqeq("if", $ret_or_1)) { + + $a = [].concat($to_a(sexp)), (cond = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; + return sexp.$updated(nil, [cond, self.$returns(true_body), self.$returns(false_body)]); + } else if (($eqeq(sexp.$type(), "send") && ($eqeq(sexp.$children()['$[]'](1), "debugger")))) { + return sexp.$updated("begin", [sexp, self.$s("js_return", self.$s("nil"))]) + } else { + return sexp.$updated("js_return", [sexp]) + }; + }, 1); + + $def(self, '$handle_block_given_call', function $$handle_block_given_call(sexp) { + var self = this, scope = nil; self.scope['$uses_block!'](); if ($truthy(self.scope.$block_name())) { - return self.$fragment("" + "(" + (self.scope.$block_name()) + " !== nil)", self.$scope(), sexp) - } else if ($truthy((function() {if ($truthy(($ret_or_13 = (scope = self.scope.$find_parent_def())))) { - return scope.$block_name() - } else { - return $ret_or_13 - }; return nil; })())) { - return self.$fragment("" + "(" + (scope.$block_name()) + " !== nil)", scope, sexp) + return self.$fragment("(" + (self.scope.$block_name()) + " !== nil)", self.$scope(), sexp) + } else if (($truthy((scope = self.scope.$find_parent_def())) && ($truthy(scope.$block_name())))) { + return self.$fragment("(" + (scope.$block_name()) + " !== nil)", scope, sexp) } else { return self.$fragment("false", scope, sexp) }; - }, $Compiler_handle_block_given_call$35.$$arity = 1); + }, 1); - Opal.def(self, '$marshal_dump', $Compiler_marshal_dump$36 = function $$marshal_dump() { - var self = this, $ret_or_14 = nil; + $def(self, '$marshal_dump', function $$marshal_dump() { + var self = this, $ret_or_1 = nil; - return [self.options, self.option_values, (self.source_map = (function() {if ($truthy(($ret_or_14 = self.source_map))) { - return $ret_or_14 - } else { - return self.$source_map().$cache() - }; return nil; })()), self.magic_comments, self.result, self.required_trees, self.requires] - }, $Compiler_marshal_dump$36.$$arity = 0); - return (Opal.def(self, '$marshal_load', $Compiler_marshal_load$37 = function $$marshal_load(src) { + return [self.options, self.option_values, (self.source_map = ($truthy(($ret_or_1 = self.source_map)) ? ($ret_or_1) : (self.$source_map().$cache()))), self.magic_comments, self.result, self.required_trees, self.requires, self.autoloads] + }, 0); + return $def(self, '$marshal_load', function $$marshal_load(src) { var $a, $b, self = this; - return $b = src, $a = Opal.to_ary($b), (self.options = ($a[0] == null ? nil : $a[0])), (self.option_values = ($a[1] == null ? nil : $a[1])), (self.source_map = ($a[2] == null ? nil : $a[2])), (self.magic_comments = ($a[3] == null ? nil : $a[3])), (self.result = ($a[4] == null ? nil : $a[4])), (self.required_trees = ($a[5] == null ? nil : $a[5])), (self.requires = ($a[6] == null ? nil : $a[6])), $b - }, $Compiler_marshal_load$37.$$arity = 1), nil) && 'marshal_load'; + return $b = src, $a = $to_ary($b), (self.options = ($a[0] == null ? nil : $a[0])), (self.option_values = ($a[1] == null ? nil : $a[1])), (self.source_map = ($a[2] == null ? nil : $a[2])), (self.magic_comments = ($a[3] == null ? nil : $a[3])), (self.result = ($a[4] == null ? nil : $a[4])), (self.required_trees = ($a[5] == null ? nil : $a[5])), (self.requires = ($a[6] == null ? nil : $a[6])), (self.autoloads = ($a[7] == null ? nil : $a[7])), $b + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/erb"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/erb"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $module = Opal.module, $defs = Opal.defs, $klass = Opal.klass, $const_set = Opal.const_set, $def = Opal.def, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $send = Opal.send, $regexp = Opal.regexp; - Opal.add_stubs(['$require', '$compile', '$new', '$freeze', '$fix_quotes', '$find_contents', '$find_code', '$wrap_compiled', '$require_erb', '$prepared_source', '$gsub', '$+', '$last_match', '$=~', '$sub']); + Opal.add_stubs('require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub'); self.$require("opal/compiler"); return (function($base, $parent_nesting) { @@ -40514,114 +36986,93 @@ Opal.modules["opal/erb"] = function(Opal) { return (function($base, $parent_nesting) { var self = $module($base, 'ERB'); - var $nesting = [self].concat($parent_nesting), $ERB_compile$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$compile', $ERB_compile$1 = function $$compile(source, file_name) { - var self = this; - + $defs(self, '$compile', function $$compile(source, file_name) { - if (file_name == null) { - file_name = "(erb)"; - }; - return $$($nesting, 'Compiler').$new(source, file_name).$compile(); - }, $ERB_compile$1.$$arity = -2); + + if (file_name == null) file_name = "(erb)";; + return $$('Compiler').$new(source, file_name).$compile(); + }, -2); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Compiler'); - var $nesting = [self].concat($parent_nesting), $Compiler_initialize$2, $Compiler_prepared_source$3, $Compiler_compile$4, $Compiler_fix_quotes$5, $Compiler_require_erb$6, $Compiler_find_contents$7, $Compiler_find_code$9, $Compiler_wrap_compiled$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.prepared_source = self.$$prototype.source = self.$$prototype.file_name = nil; + $proto.prepared_source = $proto.source = $proto.file_name = nil; - Opal.const_set($nesting[0], 'BLOCK_EXPR', /\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()); + $const_set($nesting[0], 'BLOCK_EXPR', /\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()); - Opal.def(self, '$initialize', $Compiler_initialize$2 = function $$initialize(source, file_name) { + $def(self, '$initialize', function $$initialize(source, file_name) { var $a, self = this; - if (file_name == null) { - file_name = "(erb)"; - }; + if (file_name == null) file_name = "(erb)";; return $a = [source, file_name, source], (self.source = $a[0]), (self.file_name = $a[1]), (self.result = $a[2]), $a; - }, $Compiler_initialize$2.$$arity = -2); + }, -2); - Opal.def(self, '$prepared_source', $Compiler_prepared_source$3 = function $$prepared_source() { + $def(self, '$prepared_source', function $$prepared_source() { var self = this, $ret_or_1 = nil, source = nil; - return (self.prepared_source = (function() {if ($truthy(($ret_or_1 = self.prepared_source))) { - return $ret_or_1 - } else { - - source = self.source; - source = self.$fix_quotes(source); - source = self.$find_contents(source); - source = self.$find_code(source); - source = self.$wrap_compiled(source); - source = self.$require_erb(source); - return source; - }; return nil; })()) - }, $Compiler_prepared_source$3.$$arity = 0); + return (self.prepared_source = ($truthy(($ret_or_1 = self.prepared_source)) ? ($ret_or_1) : (((source = self.source), (source = self.$fix_quotes(source)), (source = self.$find_contents(source)), (source = self.$find_code(source)), (source = self.$wrap_compiled(source)), (source = self.$require_erb(source)), source)))) + }, 0); - Opal.def(self, '$compile', $Compiler_compile$4 = function $$compile() { + $def(self, '$compile', function $$compile() { var self = this; - return $$($nesting, 'Opal').$compile(self.$prepared_source()) - }, $Compiler_compile$4.$$arity = 0); + return $$('Opal').$compile(self.$prepared_source()) + }, 0); - Opal.def(self, '$fix_quotes', $Compiler_fix_quotes$5 = function $$fix_quotes(result) { - var self = this; - + $def(self, '$fix_quotes', function $$fix_quotes(result) { + return result.$gsub("\"", "\\\"") - }, $Compiler_fix_quotes$5.$$arity = 1); + }, 1); - Opal.def(self, '$require_erb', $Compiler_require_erb$6 = function $$require_erb(result) { - var self = this; - + $def(self, '$require_erb', function $$require_erb(result) { + return $rb_plus("require \"erb\";", result) - }, $Compiler_require_erb$6.$$arity = 1); + }, 1); - Opal.def(self, '$find_contents', $Compiler_find_contents$7 = function $$find_contents(result) { - var $$8, self = this; - - return $send(result, 'gsub', [/<%=([\s\S]+?)%>/], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s, inner = nil; + $def(self, '$find_contents', function $$find_contents(result) { + + return $send(result, 'gsub', [/<%=([\s\S]+?)%>/], function $$1(){var inner = nil; - inner = $$($nesting, 'Regexp').$last_match(1).$gsub(/\\'/, "'").$gsub(/\\"/, "\""); - if ($truthy(inner['$=~']($$($nesting, 'BLOCK_EXPR')))) { - return "" + "\")\noutput_buffer.append= " + (inner) + "\noutput_buffer.append(\"" + inner = $$('Regexp').$last_match(1).$gsub(/\\'/, "'").$gsub(/\\"/, "\""); + if ($truthy(inner['$=~']($$('BLOCK_EXPR')))) { + return "\")\noutput_buffer.append= " + (inner) + "\noutput_buffer.append(\"" } else { - return "" + "\")\noutput_buffer.append=(" + (inner) + ")\noutput_buffer.append(\"" - };}, $$8.$$s = self, $$8.$$arity = 0, $$8)) - }, $Compiler_find_contents$7.$$arity = 1); + return "\")\noutput_buffer.append=(" + (inner) + ")\noutput_buffer.append(\"" + };}, 0) + }, 1); - Opal.def(self, '$find_code', $Compiler_find_code$9 = function $$find_code(result) { - var $$10, self = this; - - return $send(result, 'gsub', [/<%([\s\S]+?)%>/], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, inner = nil; + $def(self, '$find_code', function $$find_code(result) { + + return $send(result, 'gsub', [/<%([\s\S]+?)%>/], function $$2(){var inner = nil; - inner = $$($nesting, 'Regexp').$last_match(1).$gsub(/\\"/, "\""); - return "" + "\")\n" + (inner) + "\noutput_buffer.append(\"";}, $$10.$$s = self, $$10.$$arity = 0, $$10)) - }, $Compiler_find_code$9.$$arity = 1); - return (Opal.def(self, '$wrap_compiled', $Compiler_wrap_compiled$11 = function $$wrap_compiled(result) { + inner = $$('Regexp').$last_match(1).$gsub(/\\"/, "\""); + return "\")\n" + (inner) + "\noutput_buffer.append(\"";}, 0) + }, 1); + return $def(self, '$wrap_compiled', function $$wrap_compiled(result) { var self = this, path = nil; - path = self.file_name.$sub(Opal.regexp(["\\.opalerb", $$($nesting, 'REGEXP_END')]), ""); - return "" + "Template.new('" + (path) + "') do |output_buffer|\noutput_buffer.append(\"" + (result) + "\")\noutput_buffer.join\nend\n"; - }, $Compiler_wrap_compiled$11.$$arity = 1), nil) && 'wrap_compiled'; + path = self.file_name.$sub($regexp(["\\.opalerb", $$('REGEXP_END')]), ""); + return "Template.new('" + (path) + "') do |output_buffer|\noutput_buffer.append(\"" + (result) + "\")\noutput_buffer.join\nend\n"; + }, 1); })($nesting[0], null, $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal-parser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["opal-parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $module = Opal.module, $Opal = Opal.Opal, $hash2 = Opal.hash2, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$require', '$coerce_to!', '$merge', '$js_eval']); + Opal.add_stubs('require,coerce_to!,merge,js_eval'); self.$require("corelib/string/unpack"); self.$require("opal/compiler"); @@ -40630,32 +37081,22 @@ Opal.modules["opal-parser"] = function(Opal) { (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_eval$1, $Kernel_require_remote$2; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$eval', $Kernel_eval$1 = function(str, binding, file, line) { + $def(self, '$eval', function $Kernel_eval$1(str, binding, file, line) { var self = this, default_eval_options = nil, $ret_or_1 = nil, compiling_options = nil, code = nil; - if (binding == null) { - binding = nil; - }; + if (binding == null) binding = nil;; - if (file == null) { - file = nil; - }; + if (file == null) file = nil;; - if (line == null) { - line = nil; - }; - str = $$($nesting, 'Opal')['$coerce_to!'](str, $$($nesting, 'String'), "to_str"); - default_eval_options = $hash2(["file", "eval"], {"file": (function() {if ($truthy(($ret_or_1 = file))) { - return $ret_or_1 - } else { - return "(eval)" - }; return nil; })(), "eval": true}); + if (line == null) line = nil;; + str = $Opal['$coerce_to!'](str, $$('String'), "to_str"); + default_eval_options = $hash2(["file", "eval"], {"file": ($truthy(($ret_or_1 = file)) ? ($ret_or_1) : ("(eval)")), "eval": true}); compiling_options = Opal.hash({ arity_check: false }).$merge(default_eval_options); code = Opal.compile(str, compiling_options); if ($truthy(binding)) { @@ -40667,8 +37108,8 @@ Opal.modules["opal-parser"] = function(Opal) { })(self) }; - }, $Kernel_eval$1.$$arity = -2); - return (Opal.def(self, '$require_remote', $Kernel_require_remote$2 = function $$require_remote(url) { + }, -2); + return $def(self, '$require_remote', function $$require_remote(url) { var $a, self = this; @@ -40678,12 +37119,12 @@ Opal.modules["opal-parser"] = function(Opal) { r.send(''); ; return ($a = r.responseText, typeof Opal.compile === 'function' ? eval(Opal.compile($a, {scope_variables: ["url"], arity_check: false, file: '(eval)', eval: true})) : self.$eval($a)); - }, $Kernel_require_remote$2.$$arity = 1), nil) && 'require_remote'; + }, 1); })($nesting[0], $nesting); Opal.compile = function(str, options) { try { - str = $$($nesting, 'Opal')['$coerce_to!'](str, $$($nesting, 'String'), "to_str") + str = $Opal['$coerce_to!'](str, $$('String'), "to_str") if (options) options = Opal.hash(options); return Opal.Opal.$compile(str, options); } diff --git a/opal/master/opal-parser.min.js b/opal/master/opal-parser.min.js index 0de1f0c7..ff8b1d35 100644 --- a/opal/master/opal-parser.min.js +++ b/opal/master/opal-parser.min.js @@ -1 +1 @@ -Opal.modules.base64=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$raise","$delete"]),function($base,$Base64_urlsafe_encode64$6){var self=$module($base,"Base64"),$nesting=[self].concat($Base64_urlsafe_encode64$6),chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode=function(input){for(var block,charCode,str=String(input),idx=0,map=chars,output="";str.charAt(0|idx)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8))255<(charCode=str.charCodeAt(idx+=.75))&&self.$raise($$($nesting,"ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),block=block<<8|charCode;return output},decode=function(input){var str=String(input).replace(/=+$/,"");str.length%4==1&&self.$raise($$($nesting,"ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var bs,buffer,bc=0,idx=0,output="";buffer=str.charAt(idx++);~buffer&&(bs=bc%4?64*bs+buffer:buffer,bc++%4)&&(output+=String.fromCharCode(255&bs>>(-2*bc&6))))buffer=chars.indexOf(buffer);return output};return Opal.defs(self,"$decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string.replace(/\r?\n/g,""))},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$encode64",$Base64_urlsafe_encode64$6=function(string){return encode(string).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$strict_decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string)},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$strict_encode64",$Base64_urlsafe_encode64$6=function(string){return encode(string)},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$urlsafe_decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string.replace(/\-/g,"+").replace(/_/g,"/"))},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$urlsafe_encode64",$Base64_urlsafe_encode64$6=function(string,padding){var str=nil;if(null==padding)padding=$hash2([],{});else if(!padding.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(padding=padding.$$smap.padding)&&(padding=!0),str=encode(string).replace(/\+/g,"-").replace(/\//g,"_"),$truthy(padding)||(str=str.$delete("=")),str},$Base64_urlsafe_encode64$6.$$arity=-2),nil&&"urlsafe_encode64"}($nesting[0],$nesting)},Opal.modules["corelib/pack_unpack/format_string_parser"]=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.$$$,Opal.$$),$module=Opal.module;return Opal.add_stubs(["$raise"]),function($base,$parent_nesting){var self=$module($base,"PackUnpack"),$nesting=[self].concat($parent_nesting),directives=["C","S","L","Q","J","c","s","l","q","j","n","N","v","V","U","w","D","d","F","f","E","e","G","g","A","a","Z","B","b","H","h","u","M","m","P","p","@","X","x"],modifiers=["!","_",">","<"];self.eachDirectiveAndCount=function(format,callback){var currentDirective,currentCount,currentModifiers,countSpecified;function reset(){currentDirective=null,currentCount=0,countSpecified=!(currentModifiers=[])}function yieldAndReset(){null!=currentDirective&&(!/[sSiIlLqQjJ]/.test(currentDirective)&&0")&&self.$raise($$($nesting,"RangeError"),"Can't use both '<' and '>'"),countSpecified||(currentCount=1),-1!==currentModifiers.indexOf(">")&&(currentDirective+=">"),callback(currentDirective,currentCount)),reset()}reset();for(var i=0;i":mapChunksToWords(invertChunks(chunkBy(2,identityFunction))),"L>":mapChunksToWords(invertChunks(chunkBy(4,identityFunction))),"Q>":mapChunksToWords(invertChunks(chunkBy(8,identityFunction))),c:toNByteSigned(1,identityFunction),s:toNByteSigned(2,mapChunksToWords(chunkBy(2,identityFunction))),l:toNByteSigned(4,mapChunksToWords(chunkBy(4,identityFunction))),q:toNByteSigned(8,mapChunksToWords(chunkBy(8,identityFunction))),j:null,"s>":toNByteSigned(2,mapChunksToWords(invertChunks(chunkBy(2,identityFunction)))),"l>":toNByteSigned(4,mapChunksToWords(invertChunks(chunkBy(4,identityFunction)))),"q>":toNByteSigned(8,mapChunksToWords(invertChunks(chunkBy(8,identityFunction)))),n:null,N:null,v:null,V:null,U:identityFunction,w:function(data){for(var bytes=callback(data),result=[],buffer="",i=0;i>4,b2=(b2-32&63)<<4|(b3-32&63)>>2,b3=(b3-32&63)<<6|bytes[i+3]-32&63;result.push(255&b1),result.push(255&b2),result.push(255&b3),i+=4,n-=3}++i}}return result.slice(0,length)}}(identityFunction))),M:function(callback){return function(data){return callback(data).replace(/[\t\x20]$/gm,"").replace(/=(?:\r\n?|\n|$)/g,"").replace(/=([a-fA-F0-9]{2})/g,function($0,codePoint){codePoint=parseInt(codePoint,16);return String.fromCharCode(codePoint)})}}(joinChars(bytesToAsciiChars(identityFunction))),m:function(callback){return function(data){return $$($nesting,"Base64").$decode64(callback(data))}}(joinChars(bytesToAsciiChars(identityFunction))),P:null,p:null};function readBytes(n){return function(bytes){return{chunk:bytes.slice(0,n),rest:bytes=bytes.slice(n,bytes.length)}}}function readNTimesAndMerge(callback){return function(buffer,count){var chunkData,chunk=[];if(count===1/0)for(;0":readNTimesAndMerge(readBytes(2)),"L>":readNTimesAndMerge(readBytes(4)),"Q>":readNTimesAndMerge(readBytes(8)),c:readNTimesAndMerge(readBytes(1)),s:readNTimesAndMerge(readBytes(2)),l:readNTimesAndMerge(readBytes(4)),q:readNTimesAndMerge(readBytes(8)),j:null,"s>":readNTimesAndMerge(readBytes(2)),"l>":readNTimesAndMerge(readBytes(4)),"q>":readNTimesAndMerge(readBytes(8)),n:null,N:null,v:null,V:null,U:readNTimesAndMerge(function(bytes){var currentByteIndex=0,bytesLength=bytes.length;function readByte(){var result=bytes[currentByteIndex++];return bytesLength=bytes.length-currentByteIndex,result}var extraLength,c=readByte();if(c>>7==0)return{chunk:[c],rest:bytes.slice(currentByteIndex)};c>>6==2&&self.$raise($$($nesting,"ArgumentError"),"malformed UTF-8 character"),c>>5==6?extraLength=1:c>>4==14?extraLength=2:c>>3==30?extraLength=3:c>>2==62?extraLength=4:c>>1==126?extraLength=5:self.$raise("malformed UTF-8 character"),bytesLength>6!=2&&self.$raise("Invalid multibyte sequence"),result=result<<6|63&c;return result<=65535?{chunk:[result],rest:bytes.slice(currentByteIndex)}:{chunk:[55296+((result-=65536)>>10&1023),56320+(1023&result)],rest:bytes.slice(currentByteIndex)}}),w:readNTimesAndMerge(function(buffer){for(var result=[],i=0;i":!0,"L>":!0,"Q>":!0,c:!0,s:!0,l:!0,q:!0,j:null,"s>":!0,"l>":!0,"q>":!0,n:null,N:null,v:null,V:null,U:!1,w:!1,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:!1,B:!1,b:!1,H:!1,h:!1,u:!1,M:!1,m:!1,P:null,p:null},optimized={"C*":handlers.C,"c*":handlers.c,"A*":handlers.A,"a*":handlers.a,"M*":wrapIntoArray(handlers.M),"m*":wrapIntoArray(handlers.m),"S*":handlers.S,"s*":handlers.s,"L*":handlers.L,"l*":handlers.l,"Q*":handlers.Q,"q*":handlers.q,"S>*":handlers["S>"],"s>*":handlers["s>"],"L>*":handlers["L>"],"l>*":handlers["l>"],"Q>*":handlers["Q>"],"q>*":handlers["q>"]};function alias(existingDirective,newDirective){readChunk[newDirective]=readChunk[existingDirective],handlers[newDirective]=handlers[existingDirective],autocompletion[newDirective]=autocompletion[existingDirective]}return alias("S>","n"),alias("L>","N"),alias("S","v"),alias("L","V"),Opal.def(self,"$unpack",$String_unpack1$2=function(format){var self=this;format=$$($nesting,"Opal")["$coerce_to!"](format,$$($nesting,"String"),"to_str").$gsub(/\s/,"").$delete("\0");var output=[];if("U*"==format&&"UTF-8"===self.internal_encoding.name&&"function"==typeof self.codePointAt){for(var j=0,output=new Array(self.length),i=0;i"},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$==",$Set_disjoint$ques$50=function(other){var $$8,self=this,$ret_or_1=nil;return!!$truthy(self["$equal?"](other))||($truthy(other["$instance_of?"](self.$class()))?self.hash["$=="](other.$instance_variable_get("@hash")):!!$truthy($truthy($ret_or_1=other["$is_a?"]($$($nesting,"Set")))?self.$size()["$=="](other.$size()):$ret_or_1)&&$send(other,"all?",[],(($$8=function(o){var self=null==$$8.$$s?this:$$8.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash["$include?"](o)}).$$s=self,$$8.$$arity=1,$$8)))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$add",$Set_disjoint$ques$50=function(o){var $writer=[o,!0];return $send(this.hash,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),this},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<<","add"),Opal.def($Set_to_a$51,"$classify",$Set_classify$10=function(){var $$11,$$12,$iter=$Set_classify$10.$$p,block=$iter||nil,result=nil;return $iter&&($Set_classify$10.$$p=null),$iter&&($Set_classify$10.$$p=null),block===nil?this.$enum_for("classify"):(result=$send($$($nesting,"Hash"),"new",[],(($$11=function(h,k){var $writer,self=null==$$11.$$s?this:$$11.$$s;return null==h&&(h=nil),null==k&&(k=nil),$writer=[k,self.$class().$new()],$send(h,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$11.$$arity=2,$$11)),$send(this,"each",[],(($$12=function(item){null==$$12.$$s||$$12.$$s;return null==item&&(item=nil),result["$[]"](Opal.yield1(block,item)).$add(item)}).$$s=this,$$12.$$arity=1,$$12)),result)},$Set_classify$10.$$arity=0),Opal.def($Set_to_a$51,"$collect!",$Set_collect$excl$13=function(){var $$14,$iter=$Set_collect$excl$13.$$p,block=$iter||nil,result=nil;return $iter&&($Set_collect$excl$13.$$p=null),$iter&&($Set_collect$excl$13.$$p=null),block===nil?this.$enum_for("collect!"):(result=this.$class().$new(),$send(this,"each",[],(($$14=function(item){null==$$14.$$s||$$14.$$s;return null==item&&(item=nil),result["$<<"](Opal.yield1(block,item))}).$$s=this,$$14.$$arity=1,$$14)),this.$replace(result))},$Set_collect$excl$13.$$arity=0),$alias($Set_to_a$51,"map!","collect!"),Opal.def($Set_to_a$51,"$delete",$Set_disjoint$ques$50=function(o){return this.hash.$delete(o),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$delete?",$Set_disjoint$ques$50=function(o){return $truthy(this["$include?"](o))?(this.$delete(o),this):nil},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$delete_if",$Set_delete_if$17=function(){var $$18,$$19,$iter=$Set_delete_if$17.$$p,$yield=$iter||nil;return $iter&&($Set_delete_if$17.$$p=null),$yield===nil?this.$enum_for("delete_if"):($send($send(this,"select",[],(($$18=function(o){null==$$18.$$s||$$18.$$s;return null==o&&(o=nil),Opal.yield1($yield,o)}).$$s=this,$$18.$$arity=1,$$18)),"each",[],(($$19=function(o){var self=null==$$19.$$s?this:$$19.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}).$$s=this,$$19.$$arity=1,$$19)),this)},$Set_delete_if$17.$$arity=0),Opal.def($Set_to_a$51,"$keep_if",$Set_keep_if$20=function(){var $$21,$$22,$iter=$Set_keep_if$20.$$p,$yield=$iter||nil;return $iter&&($Set_keep_if$20.$$p=null),$yield===nil?this.$enum_for("keep_if"):($send($send(this,"reject",[],(($$21=function(o){null==$$21.$$s||$$21.$$s;return null==o&&(o=nil),Opal.yield1($yield,o)}).$$s=this,$$21.$$arity=1,$$21)),"each",[],(($$22=function(o){var self=null==$$22.$$s?this:$$22.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}).$$s=this,$$22.$$arity=1,$$22)),this)},$Set_keep_if$20.$$arity=0),Opal.def($Set_to_a$51,"$reject!",$Set_reject$excl$23=function(){var before,$iter=$Set_reject$excl$23.$$p,block=$iter||nil;return $iter&&($Set_reject$excl$23.$$p=null),$iter&&($Set_reject$excl$23.$$p=null),block===nil?this.$enum_for("reject!"):(before=this.$size(),$send(this,"delete_if",[],block.$to_proc()),this.$size()["$=="](before)?nil:this)},$Set_reject$excl$23.$$arity=0),Opal.def($Set_to_a$51,"$select!",$Set_select$excl$24=function(){var before,$iter=$Set_select$excl$24.$$p,block=$iter||nil;return $iter&&($Set_select$excl$24.$$p=null),$iter&&($Set_select$excl$24.$$p=null),block===nil?this.$enum_for("select!"):(before=this.$size(),$send(this,"keep_if",[],block.$to_proc()),this.$size()["$=="](before)?nil:this)},$Set_select$excl$24.$$arity=0),$alias($Set_to_a$51,"filter!","select!"),Opal.def($Set_to_a$51,"$add?",$Set_disjoint$ques$50=function(o){return $truthy(this["$include?"](o))?nil:this.$add(o)},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$each",$Set_each$26=function(){var $iter=$Set_each$26.$$p,block=$iter||nil;return $iter&&($Set_each$26.$$p=null),$iter&&($Set_each$26.$$p=null),block===nil?this.$enum_for("each"):($send(this.hash,"each_key",[],block.$to_proc()),this)},$Set_each$26.$$arity=0),Opal.def($Set_to_a$51,"$empty?",$Set_disjoint$ques$50=function(){return this.hash["$empty?"]()},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$eql?",$Set_disjoint$ques$50=function(other){var $$29;return this.hash["$eql?"]($send(other,"instance_eval",[],(($$29=function(){var self=null==$$29.$$s?this:$$29.$$s;return null==self.hash&&(self.hash=nil),self.hash}).$$s=this,$$29.$$arity=0,$$29)))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$clear",$Set_disjoint$ques$50=function(){return this.hash.$clear(),this},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$include?",$Set_disjoint$ques$50=function(o){return this.hash["$include?"](o)},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"member?","include?"),Opal.def($Set_to_a$51,"$merge",$Set_disjoint$ques$50=function(enum$){var $$33;return $send(enum$,"each",[],(($$33=function(item){var self=null==$$33.$$s?this:$$33.$$s;return null==item&&(item=nil),self.$add(item)}).$$s=this,$$33.$$arity=1,$$33)),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$replace",$Set_disjoint$ques$50=function(enum$){return this.$clear(),this.$merge(enum$),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$size",$Set_disjoint$ques$50=function(){return this.hash.$size()},$Set_disjoint$ques$50.$$arity=0),$alias($Set_to_a$51,"length","size"),Opal.def($Set_to_a$51,"$subtract",$Set_disjoint$ques$50=function(enum$){var $$37;return $send(enum$,"each",[],(($$37=function(item){var self=null==$$37.$$s?this:$$37.$$s;return null==item&&(item=nil),self.$delete(item)}).$$s=this,$$37.$$arity=1,$$37)),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$|",$Set_disjoint$ques$50=function(enum$){return $truthy(enum$["$respond_to?"]("each"))||this.$raise($$($nesting,"ArgumentError"),"value must be enumerable"),this.$dup().$merge(enum$)},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$superset?",$Set_disjoint$ques$50=function(set){var $$40;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_lt(this.$size(),set.$size()))&&$send(set,"all?",[],(($$40=function(o){var self=null==$$40.$$s?this:$$40.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$40.$$arity=1,$$40))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,">=","superset?"),Opal.def($Set_to_a$51,"$proper_superset?",$Set_disjoint$ques$50=function(set){var $$42;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_le(this.$size(),set.$size()))&&$send(set,"all?",[],(($$42=function(o){var self=null==$$42.$$s?this:$$42.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$42.$$arity=1,$$42))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,">","proper_superset?"),Opal.def($Set_to_a$51,"$subset?",$Set_disjoint$ques$50=function(set){var $$44;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_lt(set.$size(),this.$size()))&&$send(this,"all?",[],(($$44=function(o){null==$$44.$$s||$$44.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$44.$$arity=1,$$44))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<=","subset?"),Opal.def($Set_to_a$51,"$proper_subset?",$Set_disjoint$ques$50=function(set){var $$46;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_le(set.$size(),this.$size()))&&$send(this,"all?",[],(($$46=function(o){null==$$46.$$s||$$46.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$46.$$arity=1,$$46))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<","proper_subset?"),Opal.def($Set_to_a$51,"$intersect?",$Set_disjoint$ques$50=function(set){var $$48,$$49;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),$truthy($rb_lt(this.$size(),set.$size()))?$send(this,"any?",[],(($$48=function(o){null==$$48.$$s||$$48.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$48.$$arity=1,$$48)):$send(set,"any?",[],(($$49=function(o){var self=null==$$49.$$s?this:$$49.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$49.$$arity=1,$$49))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$disjoint?",$Set_disjoint$ques$50=function(set){return this["$intersect?"](set)["$!"]()},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"+","|"),$alias($Set_to_a$51,"union","|"),Opal.def($Set_to_a$51,"$to_a",$Set_to_a$51=function(){return this.hash.$keys()},$Set_to_a$51.$$arity=0)}($nesting[0],$nesting),function(self,$parent_nesting){var $Enumerable_to_set$52,self=$module(self,"Enumerable"),$nesting=[self].concat($parent_nesting);return Opal.def(self,"$to_set",$Enumerable_to_set$52=function($a,$b){var klass,$post_args=$Enumerable_to_set$52.$$p,block=$post_args||nil,self=this;return $post_args&&($Enumerable_to_set$52.$$p=null),$post_args&&($Enumerable_to_set$52.$$p=null),0<($post_args=Opal.slice.call(arguments,0,arguments.length)).length&&(klass=$post_args[0],$post_args.splice(0,1)),null==klass&&(klass=$$($nesting,"Set")),$send(klass,"new",[self].concat(Opal.to_a($post_args)),block.$to_proc())},$Enumerable_to_set$52.$$arity=-1),nil&&"to_set"}($nesting[0],$nesting)},Opal.modules["ast/node"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_times(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$to_sym","$freeze","$to_a","$assign_properties","$hash","$class","$eql?","$type","$children","$each","$instance_variable_set","$protected","$private","$==","$nil?","$original_dup","$send","$equal?","$respond_to?","$to_ast","$updated","$+","$*","$fancy_type","$is_a?","$to_sexp","$inspect","$map","$to_sexp_array","$gsub","$to_s"]),function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($Node_fancy_type$18,$Node_deconstruct$17){var $Node_fancy_type$18=$klass($Node_fancy_type$18,null,"Node"),$nesting=[$Node_fancy_type$18].concat($Node_deconstruct$17);return $Node_fancy_type$18.$$prototype.type=$Node_fancy_type$18.$$prototype.children=nil,$Node_fancy_type$18.$attr_reader("type"),$Node_fancy_type$18.$attr_reader("children"),$alias($Node_fancy_type$18,"to_a","children"),$Node_fancy_type$18.$attr_reader("hash"),Opal.def($Node_fancy_type$18,"$initialize",$Node_deconstruct$17=function(type,$a,properties){return null==$a&&($a=[]),null==properties&&(properties=$hash2([],{})),$a=[type.$to_sym(),$a.$to_a().$freeze()],this.type=$a[0],this.children=$a[1],this.$assign_properties(properties),this.hash=[this.type,this.children,this.$class()].$hash(),this.$freeze()},$Node_deconstruct$17.$$arity=-2),Opal.def($Node_fancy_type$18,"$eql?",$Node_deconstruct$17=function(other){var $ret_or_1,self=this,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=self.$class()["$eql?"](other.$class()))?self.type["$eql?"](other.$type()):$ret_or_2)?self.children["$eql?"](other.$children()):$ret_or_1},$Node_deconstruct$17.$$arity=1),Opal.def($Node_fancy_type$18,"$assign_properties",$Node_deconstruct$17=function(properties){var $$4;return $send(properties,"each",[],(($$4=function(name,value){var self=null==$$4.$$s?this:$$4.$$s;return null==name&&(name=nil),null==value&&(value=nil),self.$instance_variable_set("@"+name,value)}).$$s=this,$$4.$$arity=2,$$4)),nil},$Node_deconstruct$17.$$arity=1),$Node_fancy_type$18.$protected("assign_properties"),$alias($Node_fancy_type$18,"original_dup","dup"),$Node_fancy_type$18.$private("original_dup"),Opal.def($Node_fancy_type$18,"$dup",$Node_deconstruct$17=function(){return this},$Node_deconstruct$17.$$arity=0),$alias($Node_fancy_type$18,"clone","dup"),Opal.def($Node_fancy_type$18,"$updated",$Node_deconstruct$17=function(type,children,properties){var new_type,new_children,new_properties,self=this,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil,$ret_or_6=nil,$ret_or_7=nil,copy=nil;return null==type&&(type=nil),null==children&&(children=nil),null==properties&&(properties=nil),new_type=$truthy($ret_or_3=type)?$ret_or_3:self.type,new_children=$truthy($ret_or_4=children)?$ret_or_4:self.children,new_properties=$truthy($ret_or_5=properties)?$ret_or_5:$hash2([],{}),$truthy($truthy($ret_or_6=$truthy($ret_or_7=self.type["$=="](new_type))?self.children["$=="](new_children):$ret_or_7)?properties["$nil?"]():$ret_or_6)?self:((copy=self.$original_dup()).$send("initialize",new_type,new_children,new_properties),copy)},$Node_deconstruct$17.$$arity=-1),Opal.def($Node_fancy_type$18,"$==",$Node_deconstruct$17=function(other){var $ret_or_8;return!!$truthy(this["$equal?"](other))||!!$truthy(other["$respond_to?"]("to_ast"))&&(other=other.$to_ast(),$truthy($ret_or_8=other.$type()["$=="](this.$type()))?other.$children()["$=="](this.$children()):$ret_or_8)},$Node_deconstruct$17.$$arity=1),Opal.def($Node_fancy_type$18,"$concat",$Node_deconstruct$17=function(array){return this.$updated(nil,$rb_plus(this.children,array.$to_a()))},$Node_deconstruct$17.$$arity=1),$alias($Node_fancy_type$18,"+","concat"),Opal.def($Node_fancy_type$18,"$append",$Node_deconstruct$17=function(element){return this.$updated(nil,$rb_plus(this.children,[element]))},$Node_deconstruct$17.$$arity=1),$alias($Node_fancy_type$18,"<<","append"),Opal.def($Node_fancy_type$18,"$to_sexp",$Node_deconstruct$17=function(indent){var $$11,indented,sexp=nil;return null==indent&&(indent=0),indented=$rb_times(" ",indent),sexp=indented+"("+this.$fancy_type(),$send(this.$children(),"each",[],(($$11=function(child){null==$$11.$$s||$$11.$$s;return null==child&&(child=nil),sexp=$truthy(child["$is_a?"]($$($nesting,"Node")))?$rb_plus(sexp,"\n"+child.$to_sexp($rb_plus(indent,1))):$rb_plus(sexp," "+child.$inspect())}).$$s=this,$$11.$$arity=1,$$11)),sexp=$rb_plus(sexp,")")},$Node_deconstruct$17.$$arity=-1),$alias($Node_fancy_type$18,"to_s","to_sexp"),Opal.def($Node_fancy_type$18,"$inspect",$Node_deconstruct$17=function(indent){var $$13,indented,sexp=nil;return null==indent&&(indent=0),indented=$rb_times(" ",indent),sexp=indented+"s(:"+this.type,$send(this.$children(),"each",[],(($$13=function(child){null==$$13.$$s||$$13.$$s;return null==child&&(child=nil),sexp=$truthy(child["$is_a?"]($$($nesting,"Node")))?$rb_plus(sexp,",\n"+child.$inspect($rb_plus(indent,1))):$rb_plus(sexp,", "+child.$inspect())}).$$s=this,$$13.$$arity=1,$$13)),sexp=$rb_plus(sexp,")")},$Node_deconstruct$17.$$arity=-1),Opal.def($Node_fancy_type$18,"$to_ast",$Node_deconstruct$17=function(){return this},$Node_deconstruct$17.$$arity=0),Opal.def($Node_fancy_type$18,"$to_sexp_array",$Node_deconstruct$17=function(){var $$16,children_sexp_arrs=$send(this.$children(),"map",[],(($$16=function(child){null==$$16.$$s||$$16.$$s;return null==child&&(child=nil),$truthy(child["$is_a?"]($$($nesting,"Node")))?child.$to_sexp_array():child}).$$s=this,$$16.$$arity=1,$$16));return[this.$type()].concat(Opal.to_a(children_sexp_arrs))},$Node_deconstruct$17.$$arity=0),Opal.def($Node_fancy_type$18,"$deconstruct",$Node_deconstruct$17=function(){return[this.$type()].concat(Opal.to_a(this.$children()))},$Node_deconstruct$17.$$arity=0),$Node_fancy_type$18.$protected(),Opal.def($Node_fancy_type$18,"$fancy_type",$Node_fancy_type$18=function(){return this.type.$to_s().$gsub("_","-")},$Node_fancy_type$18.$$arity=0),nil&&"fancy_type"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["ast/processor/mixin"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$nil?","$to_ast","$type","$respond_to?","$send","$handler_missing","$map","$to_a","$process"]),function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($base,$nesting){$nesting=[$klass($base,null,"Processor")].concat($nesting);return function($Mixin_handler_missing$4,$Mixin_process_all$2){$Mixin_handler_missing$4=$module($Mixin_handler_missing$4,"Mixin"),[$Mixin_handler_missing$4].concat($Mixin_process_all$2);return Opal.def($Mixin_handler_missing$4,"$process",$Mixin_process_all$2=function(node){var on_handler,new_node=nil;return $truthy(node["$nil?"]())?nil:(on_handler="on_"+(node=node.$to_ast()).$type(),new_node=$truthy(this["$respond_to?"](on_handler))?this.$send(on_handler,node):this.$handler_missing(node),$truthy(new_node)&&(node=new_node),node)},$Mixin_process_all$2.$$arity=1),Opal.def($Mixin_handler_missing$4,"$process_all",$Mixin_process_all$2=function(nodes){var $$3;return $send(nodes.$to_a(),"map",[],(($$3=function(node){var self=null==$$3.$$s?this:$$3.$$s;return null==node&&(node=nil),self.$process(node)}).$$s=this,$$3.$$arity=1,$$3))},$Mixin_process_all$2.$$arity=1),Opal.def($Mixin_handler_missing$4,"$handler_missing",$Mixin_handler_missing$4=function(){return nil},$Mixin_handler_missing$4.$$arity=1),nil&&"handler_missing"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["ast/processor"]=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$include"]),function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function(self,$nesting){self=$klass(self,null,"Processor"),$nesting=[self].concat($nesting);return self.$require("ast/processor/mixin"),self.$include($$($nesting,"Mixin"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["ast/sexp"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module;return Opal.add_stubs(["$new"]),function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($Sexp_s$1,$parent_nesting){var $Sexp_s$1=$module($Sexp_s$1,"Sexp"),$nesting=[$Sexp_s$1].concat($parent_nesting);return Opal.def($Sexp_s$1,"$s",$Sexp_s$1=function(type,$a){var children=Opal.slice.call(arguments,1,arguments.length);return $$($nesting,"Node").$new(type,children)},$Sexp_s$1.$$arity=-2),nil&&"s"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules.ast=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return Opal.add_stubs(["$require"]),function(self,$parent_nesting){self=$module(self,"AST"),[self].concat($parent_nesting);return self.$require("ast/node"),self.$require("ast/processor"),self.$require("ast/sexp")}($nesting[0],$nesting)},Opal.modules["parser/ast/node"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=(Opal.$$,Opal.module),$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$[]","$frozen?","$dup","$node=","$-"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($base,$Node_assign_properties$1,$parent_nesting){$Node_assign_properties$1=$klass($base,$Node_assign_properties$1,"Node"),[$Node_assign_properties$1].concat($parent_nesting);return $Node_assign_properties$1.$attr_reader("location"),$alias($Node_assign_properties$1,"loc","location"),Opal.def($Node_assign_properties$1,"$assign_properties",$Node_assign_properties$1=function(rhs){var location=nil,lhs=nil;return $truthy(location=rhs["$[]"]("location"))?($truthy(location["$frozen?"]())&&(location=location.$dup()),lhs=[this],$send(location,"node=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),this.location=location):nil},$Node_assign_properties$1.$$arity=1),nil&&"assign_properties"}($nesting[0],$$$($$$("::","AST"),"Node"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/ast/node"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=(Opal.$$,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$attr_reader","$[]","$frozen?","$dup","$merge!","$loc","$line","$column"]),self.$require("ast"),self.$require("parser/ast/node"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($base,$Node_column$3,$Node_line$2){var $Node_assign_properties$1,$Node_column$3=$klass($base,$Node_column$3,"Node");[$Node_column$3].concat($Node_line$2);return $Node_column$3.$$prototype.meta=nil,$Node_column$3.$attr_reader("meta"),Opal.def($Node_column$3,"$assign_properties",$Node_assign_properties$1=function(properties){var $zuper_ii,$iter=$Node_assign_properties$1.$$p,self=this,meta=nil,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Node_assign_properties$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy(meta=properties["$[]"]("meta"))?($truthy(meta["$frozen?"]())&&(meta=meta.$dup()),self.meta["$merge!"](meta)):self.meta=$truthy($ret_or_1=self.meta)?$ret_or_1:$hash2([],{}),$send2(self,$find_super(self,"assign_properties",$Node_assign_properties$1,!1,!0),"assign_properties",$zuper,$iter)},$Node_assign_properties$1.$$arity=1),Opal.def($Node_column$3,"$line",$Node_line$2=function(){return $truthy(this.$loc())?this.$loc().$line():nil},$Node_line$2.$$arity=0),Opal.def($Node_column$3,"$column",$Node_column$3=function(){return $truthy(this.$loc())?this.$loc().$column():nil},$Node_column$3.$$arity=0),nil&&"column"}($nesting[0],$$$($$$($$$("::","Parser"),"AST"),"Node"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["racc/parser"]=function(Opal){function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$gvars=Opal.gvars,$send=Opal.send;return Opal.add_stubs(["$[]","$class","$<","$size","$[]=","$-","$__send__","$_racc_setup","$raise","$_racc_init_sysvars","$catch","$!=","$next_token","$racc_read_token","$+","$>=","$==","$_racc_evalact","$!","$>","$push","$racc_shift","$-@","$_racc_do_reduce","$===","$racc_accept","$throw","$on_error","$<=","$pop","$racc_e_pop","$inspect","$racc_next_state","$*","$racc_reduce","$sprintf","$token_to_str","$print","$racc_token2str","$puts","$racc_print_stacks","$empty?","$each","$racc_print_states","$each_index"]),function($base,$nesting){!function($base,$super,$parent_nesting){[$klass($base,$super,"ParseError")].concat($parent_nesting)}(($nesting=[$module($base,"Racc")].concat($nesting))[0],$$($nesting,"StandardError"),$nesting)}($nesting[0],$nesting),$truthy($$$("::","ParseError","skip_raise")?"constant":nil)||Opal.const_set($nesting[0],"ParseError",$$$($$($nesting,"Racc"),"ParseError")),function($base,$nesting){$nesting=[$module($base,"Racc")].concat($nesting);return $truthy($$($nesting,"Racc_No_Extensions","skip_raise")?"constant":nil)||Opal.const_set($nesting[0],"Racc_No_Extensions",!1),function($Parser_token_to_str$31,$Parser_racc_token2str$30){var $Parser_token_to_str$31=$klass($Parser_token_to_str$31,null,"Parser"),$nesting=[$Parser_token_to_str$31].concat($Parser_racc_token2str$30);return $Parser_token_to_str$31.$$prototype.yydebug=$Parser_token_to_str$31.$$prototype.racc_debug_out=$Parser_token_to_str$31.$$prototype.racc_error_status=$Parser_token_to_str$31.$$prototype.racc_t=$Parser_token_to_str$31.$$prototype.racc_vstack=$Parser_token_to_str$31.$$prototype.racc_val=$Parser_token_to_str$31.$$prototype.racc_state=$Parser_token_to_str$31.$$prototype.racc_tstack=nil,Opal.const_set($nesting[0],"Racc_Runtime_Version","1.4.6"),Opal.const_set($nesting[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),Opal.const_set($nesting[0],"Racc_Runtime_Core_Version_R","1.4.6"),Opal.const_set($nesting[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),Opal.const_set($nesting[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),Opal.const_set($nesting[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),Opal.const_set($nesting[0],"Racc_Runtime_Core_Version",$$($nesting,"Racc_Runtime_Core_Version_R")),Opal.const_set($nesting[0],"Racc_Runtime_Core_Revision",$$($nesting,"Racc_Runtime_Core_Revision_R")),Opal.const_set($nesting[0],"Racc_Runtime_Type","ruby"),Opal.defs($$($nesting,"Parser"),"$racc_runtime_type",$Parser_racc_token2str$30=function(){return $$($nesting,"Racc_Runtime_Type")},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_setup",$Parser_racc_token2str$30=function(){var $b,$writer,self=this,$ret_or_1=nil,arg=nil;return null==$gvars.stderr&&($gvars.stderr=nil),$truthy($$$(self.$class(),"Racc_debug_parser"))||(self.yydebug=!1),$truthy(null!=($b=self.yydebug)&&$b!==nil?"instance-variable":nil)||(self.yydebug=!1),$truthy(self.yydebug)&&($truthy(null!=($b=self.racc_debug_out)&&$b!==nil?"instance-variable":nil)||(self.racc_debug_out=$gvars.stderr),self.racc_debug_out=$truthy($ret_or_1=self.racc_debug_out)?$ret_or_1:$gvars.stderr),arg=$$$(self.$class(),"Racc_arg"),$truthy($rb_lt(arg.$size(),14))&&($writer=[13,!0],$send(arg,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),arg},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_init_sysvars",$Parser_racc_token2str$30=function(){return this.racc_state=[0],this.racc_tstack=[],this.racc_vstack=[],this.racc_t=nil,this.racc_val=nil,this.racc_read_next=!0,this.racc_user_yyerror=!1,this.racc_error_status=0},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$do_parse",$Parser_racc_token2str$30=function(){return this.$__send__($$($nesting,"Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$next_token",$Parser_racc_token2str$30=function(){return this.$raise($$($nesting,"NotImplementedError"),this.$class()+"#next_token is not defined")},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_do_parse_rb",$Parser_racc_token2str$30=function(arg){var $$7,tok,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3];null==$a[4]||$a[4];return null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]||$a[11],null==$a[12]||$a[12],null==$a[13]||$a[13],this.$_racc_init_sysvars(),act=i=nil,$send(this,"catch",["racc_end_parse"],(($$7=function(){var $d,self=null==$$7.$$s?this:$$7.$$s,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil;for(null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==self.racc_t&&(self.racc_t=nil),null==self.yydebug&&(self.yydebug=nil),null==self.racc_val&&(self.racc_val=nil);$truthy(!0);)for($truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))?($truthy(self.racc_read_next)&&$truthy(self.racc_t["$!="](0))&&($d=self.$next_token(),$d=Opal.to_ary($d),tok=null==$d[0]?nil:$d[0],self.racc_val=null==$d[1]?nil:$d[1],$truthy(tok)?self.racc_t=$truthy($ret_or_2=token_table["$[]"](tok))?$ret_or_2:1:self.racc_t=0,$truthy(self.yydebug)&&self.$racc_read_token(self.racc_t,tok,self.racc_val),self.racc_read_next=!1),i=$rb_plus(i,self.racc_t),$truthy($truthy($ret_or_3=$truthy($ret_or_4=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_4)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_3)||(act=action_default["$[]"](self.racc_state["$[]"](-1)))):act=action_default["$[]"](self.racc_state["$[]"](-1));$truthy(act=self.$_racc_evalact(act,arg)););}).$$s=this,$$7.$$arity=0,$$7))},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$yyparse",$Parser_racc_token2str$30=function(recv,mid){return this.$__send__($$($nesting,"Racc_YY_Parse_Method"),recv,mid,this.$_racc_setup(),!0)},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$_racc_yyparse_rb",$Parser_racc_token2str$30=function(recv,mid,arg){var $$10,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3];null==$a[4]||$a[4];return null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]||$a[11],null==$a[12]||$a[12],null==$a[13]||$a[13],this.$_racc_init_sysvars(),i=act=nil,$send(this,"catch",["racc_end_parse"],(($$10=function(){var $$11,self=null==$$10.$$s?this:$$10.$$s;for(null==self.racc_state&&(self.racc_state=nil);!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)));)for(;$truthy(act=self.$_racc_evalact(action_default["$[]"](self.racc_state["$[]"](-1)),arg)););return $send(recv,"__send__",[mid],(($$11=function(tok,val){var self=null==$$11.$$s?this:$$11.$$s,$ret_or_5=nil,$ret_or_6=nil,$ret_or_7=nil,$ret_or_8=nil,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil;for(null==self.racc_t&&(self.racc_t=nil),null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==tok&&(tok=nil),null==val&&(val=nil),$truthy(tok)?self.racc_t=$truthy($ret_or_5=token_table["$[]"](tok))?$ret_or_5:1:self.racc_t=0,self.racc_val=val,self.racc_read_next=!1,i=$rb_plus(i,self.racc_t),$truthy($truthy($ret_or_6=$truthy($ret_or_7=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_7)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_6)||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););for(;$truthy($truthy($ret_or_8=$truthy($ret_or_9=(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))["$!"]())?$ret_or_9:self.racc_read_next["$!"]())?$ret_or_8:self.racc_t["$=="](0));)for($truthy($truthy($ret_or_10=$truthy($ret_or_11=$truthy($ret_or_12=$truthy($ret_or_13=i)?i=$rb_plus(i,self.racc_t):$ret_or_13)?$rb_ge(i,0):$ret_or_12)?act=action_table["$[]"](i):$ret_or_11)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_10)||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););}).$$s=self,$$11.$$arity=2,$$11))}).$$s=this,$$10.$$arity=0,$$10))},$Parser_racc_token2str$30.$$arity=4),Opal.def($Parser_token_to_str$31,"$_racc_evalact",$Parser_racc_token2str$30=function(act,arg){var $$13,shift_n,code,i,lhs,rhs,self=this,action_table=nil,action_check=nil,action_pointer=nil,reduce_n=nil,$ret_or_14=nil,$ret_or_15=nil,$case=nil,$ret_or_16=nil,$ret_or_17=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_pointer=(null==$a[2]||$a[2],null==$a[3]?nil:$a[3]);if(null==$a[4]||$a[4],null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],null==$a[10]||$a[10],shift_n=null==$a[11]?nil:$a[11],reduce_n=null==$a[12]?nil:$a[12],null==$a[13]||$a[13],null==$a[14]||$a[14],$truthy($truthy($ret_or_14=$rb_gt(act,0))?$rb_lt(act,shift_n):$ret_or_14))$truthy($rb_gt(self.racc_error_status,0))&&(self.racc_t["$=="](1)||(self.racc_error_status=$rb_minus(self.racc_error_status,1))),self.racc_vstack.$push(self.racc_val),self.racc_state.$push(act),self.racc_read_next=!0,$truthy(self.yydebug)&&(self.racc_tstack.$push(self.racc_t),self.$racc_shift(self.racc_t,self.racc_tstack,self.racc_vstack));else if($truthy($truthy($ret_or_15=$rb_lt(act,0))?$rb_gt(act,reduce_n["$-@"]()):$ret_or_15)){if(code=$send(self,"catch",["racc_jump"],(($$13=function(){var self=null==$$13.$$s?this:$$13.$$s;return null==self.racc_state&&(self.racc_state=nil),self.racc_state.$push(self.$_racc_do_reduce(arg,act)),!1}).$$s=self,$$13.$$arity=0,$$13)),$truthy(code)){if(1["$==="]($case=code))return self.racc_user_yyerror=!0,reduce_n["$-@"]();if(2["$==="]($case))return shift_n;self.$raise("[Racc Bug] unknown jump code")}}else if(act["$=="](shift_n))$truthy(self.yydebug)&&self.$racc_accept(),self.$throw("racc_end_parse",self.racc_vstack["$[]"](0));else{if(act["$=="](reduce_n["$-@"]())){for($case=self.racc_error_status,0["$==="]($case)?$truthy(arg["$[]"](21))||self.$on_error(self.racc_t,self.racc_val,self.racc_vstack):3["$==="]($case)&&(self.racc_t["$=="](0)&&self.$throw("racc_end_parse",nil),self.racc_read_next=!0),self.racc_user_yyerror=!1,self.racc_error_status=3;$truthy(!0)&&(!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))||(i=$rb_plus(i,1),!$truthy($truthy($ret_or_16=$truthy($ret_or_17=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_17)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_16)));)$truthy((lhs=self.racc_state.$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))&&self.$throw("racc_end_parse",nil),self.racc_state.$pop(),self.racc_vstack.$pop(),$truthy(self.yydebug)&&(self.racc_tstack.$pop(),self.$racc_e_pop(self.racc_state,self.racc_tstack,self.racc_vstack));return act}self.$raise("[Racc Bug] unknown action "+act.$inspect())}return $truthy(self.yydebug)&&self.$racc_next_state(self.racc_state["$[]"](-1),self.racc_state),nil},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$_racc_do_reduce",$Parser_racc_token2str$30=function(rhs,lhs){var nt_base,use_result,reduce_to,method_id,void_array,k1,goto_table=nil,goto_check=nil,goto_default=nil,goto_pointer=nil,reduce_table=nil,state=nil,vstack=nil,tstack=nil,i=nil,len=nil,tmp_t=nil,tmp_v=nil,$writer=nil,$ret_or_18=nil,$ret_or_19=nil,curstate=nil,rhs=rhs,rhs=Opal.to_ary(rhs);null==rhs[0]||rhs[0];return null==rhs[1]||rhs[1],null==rhs[2]||rhs[2],null==rhs[3]||rhs[3],goto_table=null==rhs[4]?nil:rhs[4],goto_check=null==rhs[5]?nil:rhs[5],goto_default=null==rhs[6]?nil:rhs[6],goto_pointer=null==rhs[7]?nil:rhs[7],nt_base=null==rhs[8]?nil:rhs[8],reduce_table=null==rhs[9]?nil:rhs[9],null==rhs[10]||rhs[10],null==rhs[11]||rhs[11],null==rhs[12]||rhs[12],use_result=null==rhs[13]?nil:rhs[13],state=this.racc_state,vstack=this.racc_vstack,tstack=this.racc_tstack,rhs=-3,i="number"==typeof(lhs=lhs)&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs),len=reduce_table["$[]"](i),reduce_to=reduce_table["$[]"]($rb_plus(i,1)),method_id=reduce_table["$[]"]($rb_plus(i,2)),void_array=[],$truthy(this.yydebug)&&(tmp_t=tstack["$[]"](len["$-@"](),len)),tmp_v=vstack["$[]"](len["$-@"](),len),$truthy(this.yydebug)&&($writer=[len["$-@"](),len,void_array],$send(tstack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[len["$-@"](),len,void_array],$send(vstack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[len["$-@"](),len,void_array],$send(state,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(use_result)?vstack.$push(this.$__send__(method_id,tmp_v,vstack,tmp_v["$[]"](0))):vstack.$push(this.$__send__(method_id,tmp_v,vstack)),tstack.$push(reduce_to),$truthy(this.yydebug)&&this.$racc_reduce(tmp_t,reduce_to,tstack,vstack),k1=$rb_minus(reduce_to,nt_base),$truthy(i=goto_pointer["$[]"](k1))&&(i=$rb_plus(i,state["$[]"](-1)),$truthy($truthy($ret_or_18=$truthy($ret_or_19=$rb_ge(i,0))?curstate=goto_table["$[]"](i):$ret_or_19)?goto_check["$[]"](i)["$=="](k1):$ret_or_18))?curstate:goto_default["$[]"](k1)},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$on_error",$Parser_racc_token2str$30=function(t,val){var self=this,$ret_or_20=nil;return self.$raise($$($nesting,"ParseError"),self.$sprintf("\nparse error on value %s (%s)",val.$inspect(),$truthy($ret_or_20=self.$token_to_str(t))?$ret_or_20:"?"))},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$yyerror",$Parser_racc_token2str$30=function(){return this.$throw("racc_jump",1)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$yyaccept",$Parser_racc_token2str$30=function(){return this.$throw("racc_jump",2)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$yyerrok",$Parser_racc_token2str$30=function(){return this.racc_error_status=0},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$racc_read_token",$Parser_racc_token2str$30=function(t,tok,val){return this.racc_debug_out.$print("read "),this.racc_debug_out.$print(tok.$inspect(),"(",this.$racc_token2str(t),") "),this.racc_debug_out.$puts(val.$inspect()),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_shift",$Parser_racc_token2str$30=function(tok,tstack,vstack){return this.racc_debug_out.$puts("shift "+this.$racc_token2str(tok)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_reduce",$Parser_racc_token2str$30=function(toks,sim,tstack,vstack){var $$22,out=nil;return(out=this.racc_debug_out).$print("reduce "),$truthy(toks["$empty?"]())?out.$print(" "):$send(toks,"each",[],(($$22=function(t){var self=null==$$22.$$s?this:$$22.$$s;return null==t&&(t=nil),out.$print(" ",self.$racc_token2str(t))}).$$s=this,$$22.$$arity=1,$$22)),out.$puts(" --\x3e "+this.$racc_token2str(sim)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=4),Opal.def($Parser_token_to_str$31,"$racc_accept",$Parser_racc_token2str$30=function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$racc_e_pop",$Parser_racc_token2str$30=function(state,tstack,vstack){return this.racc_debug_out.$puts("error recovering mode: pop token"),this.$racc_print_states(state),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_next_state",$Parser_racc_token2str$30=function(curstate,state){return this.racc_debug_out.$puts("goto "+curstate),this.$racc_print_states(state),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$racc_print_stacks",$Parser_racc_token2str$30=function(t,v){var $$27,out=nil;return(out=this.racc_debug_out).$print(" ["),$send(t,"each_index",[],(($$27=function(i){var self=null==$$27.$$s?this:$$27.$$s;return null==i&&(i=nil),out.$print(" (",self.$racc_token2str(t["$[]"](i))," ",v["$[]"](i).$inspect(),")")}).$$s=this,$$27.$$arity=1,$$27)),out.$puts(" ]")},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$racc_print_states",$Parser_racc_token2str$30=function(s){var $$29,out=nil;return(out=this.racc_debug_out).$print(" ["),$send(s,"each",[],(($$29=function(st){null==$$29.$$s||$$29.$$s;return null==st&&(st=nil),out.$print(" ",st)}).$$s=this,$$29.$$arity=1,$$29)),out.$puts(" ]")},$Parser_racc_token2str$30.$$arity=1),Opal.def($Parser_token_to_str$31,"$racc_token2str",$Parser_racc_token2str$30=function(tok){var $ret_or_21;return $truthy($ret_or_21=$$$(this.$class(),"Racc_token_to_s_table")["$[]"](tok))?$ret_or_21:this.$raise("[Racc Bug] can't convert token "+tok+" to string")},$Parser_racc_token2str$30.$$arity=1),Opal.def($Parser_token_to_str$31,"$token_to_str",$Parser_token_to_str$31=function(t){return $$$(this.$class(),"Racc_token_to_s_table")["$[]"](t)},$Parser_token_to_str$31.$$arity=1),nil&&"token_to_str"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/version"]=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return Opal.const_set($nesting[0],"VERSION","3.1.1.0")}($nesting[0],$nesting)},Opal.modules["racc/parser"]=function(Opal){function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$gvars=Opal.gvars,$send=Opal.send;return Opal.add_stubs(["$[]","$class","$<","$size","$[]=","$-","$__send__","$_racc_setup","$raise","$_racc_init_sysvars","$catch","$!=","$next_token","$racc_read_token","$+","$>=","$==","$_racc_evalact","$!","$>","$push","$racc_shift","$-@","$_racc_do_reduce","$===","$racc_accept","$throw","$on_error","$<=","$pop","$racc_e_pop","$inspect","$racc_next_state","$*","$racc_reduce","$sprintf","$token_to_str","$print","$racc_token2str","$puts","$racc_print_stacks","$empty?","$each","$racc_print_states","$each_index"]),function($base,$nesting){!function($base,$super,$parent_nesting){[$klass($base,$super,"ParseError")].concat($parent_nesting)}(($nesting=[$module($base,"Racc")].concat($nesting))[0],$$($nesting,"StandardError"),$nesting)}($nesting[0],$nesting),$truthy($$$("::","ParseError","skip_raise")?"constant":nil)||Opal.const_set($nesting[0],"ParseError",$$$($$($nesting,"Racc"),"ParseError")),function($base,$nesting){$nesting=[$module($base,"Racc")].concat($nesting);return $truthy($$($nesting,"Racc_No_Extensions","skip_raise")?"constant":nil)||Opal.const_set($nesting[0],"Racc_No_Extensions",!1),function($Parser_token_to_str$31,$Parser_racc_token2str$30){var $Parser_token_to_str$31=$klass($Parser_token_to_str$31,null,"Parser"),$nesting=[$Parser_token_to_str$31].concat($Parser_racc_token2str$30);return $Parser_token_to_str$31.$$prototype.yydebug=$Parser_token_to_str$31.$$prototype.racc_debug_out=$Parser_token_to_str$31.$$prototype.racc_error_status=$Parser_token_to_str$31.$$prototype.racc_t=$Parser_token_to_str$31.$$prototype.racc_vstack=$Parser_token_to_str$31.$$prototype.racc_val=$Parser_token_to_str$31.$$prototype.racc_state=$Parser_token_to_str$31.$$prototype.racc_tstack=nil,Opal.const_set($nesting[0],"Racc_Runtime_Version","1.4.6"),Opal.const_set($nesting[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),Opal.const_set($nesting[0],"Racc_Runtime_Core_Version_R","1.4.6"),Opal.const_set($nesting[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),Opal.const_set($nesting[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),Opal.const_set($nesting[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),Opal.const_set($nesting[0],"Racc_Runtime_Core_Version",$$($nesting,"Racc_Runtime_Core_Version_R")),Opal.const_set($nesting[0],"Racc_Runtime_Core_Revision",$$($nesting,"Racc_Runtime_Core_Revision_R")),Opal.const_set($nesting[0],"Racc_Runtime_Type","ruby"),Opal.defs($$($nesting,"Parser"),"$racc_runtime_type",$Parser_racc_token2str$30=function(){return $$($nesting,"Racc_Runtime_Type")},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_setup",$Parser_racc_token2str$30=function(){var $b,$writer,self=this,$ret_or_1=nil,arg=nil;return null==$gvars.stderr&&($gvars.stderr=nil),$truthy($$$(self.$class(),"Racc_debug_parser"))||(self.yydebug=!1),$truthy(null!=($b=self.yydebug)&&$b!==nil?"instance-variable":nil)||(self.yydebug=!1),$truthy(self.yydebug)&&($truthy(null!=($b=self.racc_debug_out)&&$b!==nil?"instance-variable":nil)||(self.racc_debug_out=$gvars.stderr),self.racc_debug_out=$truthy($ret_or_1=self.racc_debug_out)?$ret_or_1:$gvars.stderr),arg=$$$(self.$class(),"Racc_arg"),$truthy($rb_lt(arg.$size(),14))&&($writer=[13,!0],$send(arg,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),arg},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_init_sysvars",$Parser_racc_token2str$30=function(){return this.racc_state=[0],this.racc_tstack=[],this.racc_vstack=[],this.racc_t=nil,this.racc_val=nil,this.racc_read_next=!0,this.racc_user_yyerror=!1,this.racc_error_status=0},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$do_parse",$Parser_racc_token2str$30=function(){return this.$__send__($$($nesting,"Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$next_token",$Parser_racc_token2str$30=function(){return this.$raise($$($nesting,"NotImplementedError"),this.$class()+"#next_token is not defined")},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$_racc_do_parse_rb",$Parser_racc_token2str$30=function(arg){var $$7,tok,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3];null==$a[4]||$a[4];return null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]||$a[11],null==$a[12]||$a[12],null==$a[13]||$a[13],this.$_racc_init_sysvars(),act=i=nil,$send(this,"catch",["racc_end_parse"],(($$7=function(){var $d,self=null==$$7.$$s?this:$$7.$$s,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil;for(null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==self.racc_t&&(self.racc_t=nil),null==self.yydebug&&(self.yydebug=nil),null==self.racc_val&&(self.racc_val=nil);$truthy(!0);)for($truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))?($truthy(self.racc_read_next)&&$truthy(self.racc_t["$!="](0))&&($d=self.$next_token(),$d=Opal.to_ary($d),tok=null==$d[0]?nil:$d[0],self.racc_val=null==$d[1]?nil:$d[1],$truthy(tok)?self.racc_t=$truthy($ret_or_2=token_table["$[]"](tok))?$ret_or_2:1:self.racc_t=0,$truthy(self.yydebug)&&self.$racc_read_token(self.racc_t,tok,self.racc_val),self.racc_read_next=!1),i=$rb_plus(i,self.racc_t),$truthy($truthy($ret_or_3=$truthy($ret_or_4=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_4)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_3)||(act=action_default["$[]"](self.racc_state["$[]"](-1)))):act=action_default["$[]"](self.racc_state["$[]"](-1));$truthy(act=self.$_racc_evalact(act,arg)););}).$$s=this,$$7.$$arity=0,$$7))},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$yyparse",$Parser_racc_token2str$30=function(recv,mid){return this.$__send__($$($nesting,"Racc_YY_Parse_Method"),recv,mid,this.$_racc_setup(),!0)},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$_racc_yyparse_rb",$Parser_racc_token2str$30=function(recv,mid,arg){var $$10,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3];null==$a[4]||$a[4];return null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]||$a[11],null==$a[12]||$a[12],null==$a[13]||$a[13],this.$_racc_init_sysvars(),i=act=nil,$send(this,"catch",["racc_end_parse"],(($$10=function(){var $$11,self=null==$$10.$$s?this:$$10.$$s;for(null==self.racc_state&&(self.racc_state=nil);!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)));)for(;$truthy(act=self.$_racc_evalact(action_default["$[]"](self.racc_state["$[]"](-1)),arg)););return $send(recv,"__send__",[mid],(($$11=function(tok,val){var self=null==$$11.$$s?this:$$11.$$s,$ret_or_5=nil,$ret_or_6=nil,$ret_or_7=nil,$ret_or_8=nil,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil;for(null==self.racc_t&&(self.racc_t=nil),null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==tok&&(tok=nil),null==val&&(val=nil),$truthy(tok)?self.racc_t=$truthy($ret_or_5=token_table["$[]"](tok))?$ret_or_5:1:self.racc_t=0,self.racc_val=val,self.racc_read_next=!1,i=$rb_plus(i,self.racc_t),$truthy($truthy($ret_or_6=$truthy($ret_or_7=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_7)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_6)||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););for(;$truthy($truthy($ret_or_8=$truthy($ret_or_9=(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))["$!"]())?$ret_or_9:self.racc_read_next["$!"]())?$ret_or_8:self.racc_t["$=="](0));)for($truthy($truthy($ret_or_10=$truthy($ret_or_11=$truthy($ret_or_12=$truthy($ret_or_13=i)?i=$rb_plus(i,self.racc_t):$ret_or_13)?$rb_ge(i,0):$ret_or_12)?act=action_table["$[]"](i):$ret_or_11)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_10)||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););}).$$s=self,$$11.$$arity=2,$$11))}).$$s=this,$$10.$$arity=0,$$10))},$Parser_racc_token2str$30.$$arity=4),Opal.def($Parser_token_to_str$31,"$_racc_evalact",$Parser_racc_token2str$30=function(act,arg){var $$13,shift_n,code,i,lhs,rhs,self=this,action_table=nil,action_check=nil,action_pointer=nil,reduce_n=nil,$ret_or_14=nil,$ret_or_15=nil,$case=nil,$ret_or_16=nil,$ret_or_17=nil,$a=arg,$a=Opal.to_ary($a),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_pointer=(null==$a[2]||$a[2],null==$a[3]?nil:$a[3]);if(null==$a[4]||$a[4],null==$a[5]||$a[5],null==$a[6]||$a[6],null==$a[7]||$a[7],null==$a[8]||$a[8],null==$a[9]||$a[9],null==$a[10]||$a[10],shift_n=null==$a[11]?nil:$a[11],reduce_n=null==$a[12]?nil:$a[12],null==$a[13]||$a[13],null==$a[14]||$a[14],$truthy($truthy($ret_or_14=$rb_gt(act,0))?$rb_lt(act,shift_n):$ret_or_14))$truthy($rb_gt(self.racc_error_status,0))&&(self.racc_t["$=="](1)||(self.racc_error_status=$rb_minus(self.racc_error_status,1))),self.racc_vstack.$push(self.racc_val),self.racc_state.$push(act),self.racc_read_next=!0,$truthy(self.yydebug)&&(self.racc_tstack.$push(self.racc_t),self.$racc_shift(self.racc_t,self.racc_tstack,self.racc_vstack));else if($truthy($truthy($ret_or_15=$rb_lt(act,0))?$rb_gt(act,reduce_n["$-@"]()):$ret_or_15)){if(code=$send(self,"catch",["racc_jump"],(($$13=function(){var self=null==$$13.$$s?this:$$13.$$s;return null==self.racc_state&&(self.racc_state=nil),self.racc_state.$push(self.$_racc_do_reduce(arg,act)),!1}).$$s=self,$$13.$$arity=0,$$13)),$truthy(code)){if(1["$==="]($case=code))return self.racc_user_yyerror=!0,reduce_n["$-@"]();if(2["$==="]($case))return shift_n;self.$raise("[Racc Bug] unknown jump code")}}else if(act["$=="](shift_n))$truthy(self.yydebug)&&self.$racc_accept(),self.$throw("racc_end_parse",self.racc_vstack["$[]"](0));else{if(act["$=="](reduce_n["$-@"]())){for($case=self.racc_error_status,0["$==="]($case)?$truthy(arg["$[]"](21))||self.$on_error(self.racc_t,self.racc_val,self.racc_vstack):3["$==="]($case)&&(self.racc_t["$=="](0)&&self.$throw("racc_end_parse",nil),self.racc_read_next=!0),self.racc_user_yyerror=!1,self.racc_error_status=3;$truthy(!0)&&(!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))||(i=$rb_plus(i,1),!$truthy($truthy($ret_or_16=$truthy($ret_or_17=$rb_ge(i,0))?act=action_table["$[]"](i):$ret_or_17)?action_check["$[]"](i)["$=="](self.racc_state["$[]"](-1)):$ret_or_16)));)$truthy((lhs=self.racc_state.$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))&&self.$throw("racc_end_parse",nil),self.racc_state.$pop(),self.racc_vstack.$pop(),$truthy(self.yydebug)&&(self.racc_tstack.$pop(),self.$racc_e_pop(self.racc_state,self.racc_tstack,self.racc_vstack));return act}self.$raise("[Racc Bug] unknown action "+act.$inspect())}return $truthy(self.yydebug)&&self.$racc_next_state(self.racc_state["$[]"](-1),self.racc_state),nil},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$_racc_do_reduce",$Parser_racc_token2str$30=function(rhs,lhs){var nt_base,use_result,reduce_to,method_id,void_array,k1,goto_table=nil,goto_check=nil,goto_default=nil,goto_pointer=nil,reduce_table=nil,state=nil,vstack=nil,tstack=nil,i=nil,len=nil,tmp_t=nil,tmp_v=nil,$writer=nil,$ret_or_18=nil,$ret_or_19=nil,curstate=nil,rhs=rhs,rhs=Opal.to_ary(rhs);null==rhs[0]||rhs[0];return null==rhs[1]||rhs[1],null==rhs[2]||rhs[2],null==rhs[3]||rhs[3],goto_table=null==rhs[4]?nil:rhs[4],goto_check=null==rhs[5]?nil:rhs[5],goto_default=null==rhs[6]?nil:rhs[6],goto_pointer=null==rhs[7]?nil:rhs[7],nt_base=null==rhs[8]?nil:rhs[8],reduce_table=null==rhs[9]?nil:rhs[9],null==rhs[10]||rhs[10],null==rhs[11]||rhs[11],null==rhs[12]||rhs[12],use_result=null==rhs[13]?nil:rhs[13],state=this.racc_state,vstack=this.racc_vstack,tstack=this.racc_tstack,rhs=-3,i="number"==typeof(lhs=lhs)&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs),len=reduce_table["$[]"](i),reduce_to=reduce_table["$[]"]($rb_plus(i,1)),method_id=reduce_table["$[]"]($rb_plus(i,2)),void_array=[],$truthy(this.yydebug)&&(tmp_t=tstack["$[]"](len["$-@"](),len)),tmp_v=vstack["$[]"](len["$-@"](),len),$truthy(this.yydebug)&&($writer=[len["$-@"](),len,void_array],$send(tstack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[len["$-@"](),len,void_array],$send(vstack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[len["$-@"](),len,void_array],$send(state,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(use_result)?vstack.$push(this.$__send__(method_id,tmp_v,vstack,tmp_v["$[]"](0))):vstack.$push(this.$__send__(method_id,tmp_v,vstack)),tstack.$push(reduce_to),$truthy(this.yydebug)&&this.$racc_reduce(tmp_t,reduce_to,tstack,vstack),k1=$rb_minus(reduce_to,nt_base),$truthy(i=goto_pointer["$[]"](k1))&&(i=$rb_plus(i,state["$[]"](-1)),$truthy($truthy($ret_or_18=$truthy($ret_or_19=$rb_ge(i,0))?curstate=goto_table["$[]"](i):$ret_or_19)?goto_check["$[]"](i)["$=="](k1):$ret_or_18))?curstate:goto_default["$[]"](k1)},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$on_error",$Parser_racc_token2str$30=function(t,val){var self=this,$ret_or_20=nil;return self.$raise($$($nesting,"ParseError"),self.$sprintf("\nparse error on value %s (%s)",val.$inspect(),$truthy($ret_or_20=self.$token_to_str(t))?$ret_or_20:"?"))},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$yyerror",$Parser_racc_token2str$30=function(){return this.$throw("racc_jump",1)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$yyaccept",$Parser_racc_token2str$30=function(){return this.$throw("racc_jump",2)},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$yyerrok",$Parser_racc_token2str$30=function(){return this.racc_error_status=0},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$racc_read_token",$Parser_racc_token2str$30=function(t,tok,val){return this.racc_debug_out.$print("read "),this.racc_debug_out.$print(tok.$inspect(),"(",this.$racc_token2str(t),") "),this.racc_debug_out.$puts(val.$inspect()),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_shift",$Parser_racc_token2str$30=function(tok,tstack,vstack){return this.racc_debug_out.$puts("shift "+this.$racc_token2str(tok)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_reduce",$Parser_racc_token2str$30=function(toks,sim,tstack,vstack){var $$22,out=nil;return(out=this.racc_debug_out).$print("reduce "),$truthy(toks["$empty?"]())?out.$print(" "):$send(toks,"each",[],(($$22=function(t){var self=null==$$22.$$s?this:$$22.$$s;return null==t&&(t=nil),out.$print(" ",self.$racc_token2str(t))}).$$s=this,$$22.$$arity=1,$$22)),out.$puts(" --\x3e "+this.$racc_token2str(sim)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=4),Opal.def($Parser_token_to_str$31,"$racc_accept",$Parser_racc_token2str$30=function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=0),Opal.def($Parser_token_to_str$31,"$racc_e_pop",$Parser_racc_token2str$30=function(state,tstack,vstack){return this.racc_debug_out.$puts("error recovering mode: pop token"),this.$racc_print_states(state),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=3),Opal.def($Parser_token_to_str$31,"$racc_next_state",$Parser_racc_token2str$30=function(curstate,state){return this.racc_debug_out.$puts("goto "+curstate),this.$racc_print_states(state),this.racc_debug_out.$puts()},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$racc_print_stacks",$Parser_racc_token2str$30=function(t,v){var $$27,out=nil;return(out=this.racc_debug_out).$print(" ["),$send(t,"each_index",[],(($$27=function(i){var self=null==$$27.$$s?this:$$27.$$s;return null==i&&(i=nil),out.$print(" (",self.$racc_token2str(t["$[]"](i))," ",v["$[]"](i).$inspect(),")")}).$$s=this,$$27.$$arity=1,$$27)),out.$puts(" ]")},$Parser_racc_token2str$30.$$arity=2),Opal.def($Parser_token_to_str$31,"$racc_print_states",$Parser_racc_token2str$30=function(s){var $$29,out=nil;return(out=this.racc_debug_out).$print(" ["),$send(s,"each",[],(($$29=function(st){null==$$29.$$s||$$29.$$s;return null==st&&(st=nil),out.$print(" ",st)}).$$s=this,$$29.$$arity=1,$$29)),out.$puts(" ]")},$Parser_racc_token2str$30.$$arity=1),Opal.def($Parser_token_to_str$31,"$racc_token2str",$Parser_racc_token2str$30=function(tok){var $ret_or_21;return $truthy($ret_or_21=$$$(this.$class(),"Racc_token_to_s_table")["$[]"](tok))?$ret_or_21:this.$raise("[Racc Bug] can't convert token "+tok+" to string")},$Parser_racc_token2str$30.$$arity=1),Opal.def($Parser_token_to_str$31,"$token_to_str",$Parser_token_to_str$31=function(t){return $$$(this.$class(),"Racc_token_to_s_table")["$[]"](t)},$Parser_token_to_str$31.$$arity=1),nil&&"token_to_str"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/messages"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$freeze","$[]","$===","$empty?","$format"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return Opal.const_set($nesting[0],"MESSAGES",$hash2(["unicode_point_too_large","invalid_escape","incomplete_escape","invalid_hex_escape","invalid_unicode_escape","unterminated_unicode","escape_eof","string_eof","regexp_options","cvar_name","ivar_name","trailing_in_number","empty_numeric","invalid_octal","no_dot_digit_literal","bare_backslash","unexpected","embedded_document","heredoc_id_has_newline","heredoc_id_ends_with_nl","unterminated_heredoc_id","invalid_escape_use","ambiguous_literal","ambiguous_regexp","ambiguous_prefix","triple_dot_at_eol","nth_ref_alias","begin_in_method","backref_assignment","invalid_assignment","module_name_const","unexpected_token","argument_const","argument_ivar","argument_gvar","argument_cvar","duplicate_argument","empty_symbol","odd_hash","singleton_literal","dynamic_const","const_reassignment","module_in_def","class_in_def","unexpected_percent_str","block_and_blockarg","masgn_as_condition","block_given_to_yield","invalid_regexp","invalid_return","csend_in_lhs_of_masgn","cant_assign_to_numparam","reserved_for_numparam","ordinary_param_defined","numparam_used_in_outer_scope","circular_argument_reference","pm_interp_in_var_name","lvar_name","undefined_lvar","duplicate_variable_name","duplicate_pattern_key","endless_setter","invalid_id_to_get","forward_arg_after_restarg","no_anonymous_blockarg","useless_else","duplicate_hash_key","invalid_encoding","invalid_action","clobbered","different_replacements","swallowed_insertions","swallowed_insertions_conflict","crossing_deletions","crossing_deletions_conflict","crossing_insertions","crossing_insertions_conflict"],{unicode_point_too_large:"invalid Unicode codepoint (too large)",invalid_escape:"invalid escape character syntax",incomplete_escape:"incomplete character syntax",invalid_hex_escape:"invalid hex escape",invalid_unicode_escape:"invalid Unicode escape",unterminated_unicode:"unterminated Unicode escape",escape_eof:"escape sequence meets end of file",string_eof:"unterminated string meets end of file",regexp_options:"unknown regexp options: %{options}",cvar_name:"`%{name}' is not allowed as a class variable name",ivar_name:"`%{name}' is not allowed as an instance variable name",trailing_in_number:"trailing `%{character}' in number",empty_numeric:"numeric literal without digits",invalid_octal:"invalid octal digit",no_dot_digit_literal:"no . floating literal anymore; put 0 before dot",bare_backslash:"bare backslash only allowed before newline",unexpected:"unexpected `%{character}'",embedded_document:"embedded document meets end of file (and they embark on a romantic journey)",heredoc_id_has_newline:"here document identifier across newlines, never match",heredoc_id_ends_with_nl:"here document identifier ends with a newline",unterminated_heredoc_id:"unterminated heredoc id",invalid_escape_use:"invalid character syntax; use ?%{escape}",ambiguous_literal:"ambiguous first argument; put parentheses or a space even after the operator",ambiguous_regexp:"ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator",ambiguous_prefix:"`%{prefix}' interpreted as argument prefix",triple_dot_at_eol:"... at EOL, should be parenthesized",nth_ref_alias:"cannot define an alias for a back-reference variable",begin_in_method:"BEGIN in method",backref_assignment:"cannot assign to a back-reference variable",invalid_assignment:"cannot assign to a keyword",module_name_const:"class or module name must be a constant literal",unexpected_token:"unexpected token %{token}",argument_const:"formal argument cannot be a constant",argument_ivar:"formal argument cannot be an instance variable",argument_gvar:"formal argument cannot be a global variable",argument_cvar:"formal argument cannot be a class variable",duplicate_argument:"duplicate argument name",empty_symbol:"empty symbol literal",odd_hash:"odd number of entries for a hash",singleton_literal:"cannot define a singleton method for a literal",dynamic_const:"dynamic constant assignment",const_reassignment:"constant re-assignment",module_in_def:"module definition in method body",class_in_def:"class definition in method body",unexpected_percent_str:"%{type}: unknown type of percent-literal",block_and_blockarg:"both block argument and literal block are passed",masgn_as_condition:"multiple assignment in conditional context",block_given_to_yield:"block given to yield",invalid_regexp:"%{message}",invalid_return:"Invalid return in class/module body",csend_in_lhs_of_masgn:"&. inside multiple assignment destination",cant_assign_to_numparam:"cannot assign to numbered parameter %{name}",reserved_for_numparam:"%{name} is reserved for numbered parameter",ordinary_param_defined:"ordinary parameter is defined",numparam_used_in_outer_scope:"numbered parameter is already used in an outer scope",circular_argument_reference:"circular argument reference %{var_name}",pm_interp_in_var_name:"symbol literal with interpolation is not allowed",lvar_name:"`%{name}' is not allowed as a local variable name",undefined_lvar:"no such local variable: `%{name}'",duplicate_variable_name:"duplicate variable name %{name}",duplicate_pattern_key:"duplicate hash pattern key %{name}",endless_setter:"setter method cannot be defined in an endless method definition",invalid_id_to_get:"identifier %{identifier} is not valid to get",forward_arg_after_restarg:"... after rest argument",no_anonymous_blockarg:"no anonymous block parameter",useless_else:"else without rescue is useless",duplicate_hash_key:"key is duplicated and overwritten",invalid_encoding:"literal contains escape sequences incompatible with UTF-8",invalid_action:"cannot %{action}",clobbered:"clobbered by: %{action}",different_replacements:"different replacements: %{replacement} vs %{other_replacement}",swallowed_insertions:"this replacement:",swallowed_insertions_conflict:"swallows some inner rewriting actions:",crossing_deletions:"the deletion of:",crossing_deletions_conflict:"is crossing:",crossing_insertions:"the rewriting action on:",crossing_insertions_conflict:"is crossing that on:"}).$freeze()),function($Messages_compile$1,$parent_nesting){var $Messages_compile$1=$module($Messages_compile$1,"Messages"),$nesting=[$Messages_compile$1].concat($parent_nesting);return Opal.defs($Messages_compile$1,"$compile",$Messages_compile$1=function(reason,arguments$){var $ret_or_1=nil,template=$$($nesting,"MESSAGES")["$[]"](reason);return $truthy($truthy($ret_or_1=$$($nesting,"Hash")["$==="](arguments$))?arguments$["$empty?"]():$ret_or_1)?template:this.$format(template,arguments$)},$Messages_compile$1.$$arity=2),nil&&"compile"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/deprecation"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=(Opal.$$,Opal.module),$truthy=Opal.truthy;return Opal.add_stubs(["$attr_writer","$warn"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Deprecation_warn_of_deprecation$1,$parent_nesting){$Deprecation_warn_of_deprecation$1=$module($Deprecation_warn_of_deprecation$1,"Deprecation"),[$Deprecation_warn_of_deprecation$1].concat($parent_nesting);return $Deprecation_warn_of_deprecation$1.$attr_writer("warned_of_deprecation"),Opal.def($Deprecation_warn_of_deprecation$1,"$warn_of_deprecation",$Deprecation_warn_of_deprecation$1=function(){var self=this,$ret_or_1=nil,$ret_or_2=nil;return null==self.warned_of_deprecation&&(self.warned_of_deprecation=nil),self.warned_of_deprecation=$truthy($ret_or_1=self.warned_of_deprecation)?$ret_or_1:!$truthy($ret_or_2=self.$warn($$$(self,"DEPRECATION_WARNING")))||$ret_or_2},$Deprecation_warn_of_deprecation$1.$$arity=0),nil&&"warn_of_deprecation"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/ast/processor"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs(["$updated","$process_all","$on_var","$!","$nil?","$process","$on_vasgn","$on_argument","$is_a?","$[]","$children","$process_regular_node","$warn"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($base,$Processor_on_empty_else$19,$Processor_process_argument_node$18){var $Processor_on_empty_else$19=$klass($base,$Processor_on_empty_else$19,"Processor"),$nesting=[$Processor_on_empty_else$19].concat($Processor_process_argument_node$18);return Opal.def($Processor_on_empty_else$19,"$process_regular_node",$Processor_process_argument_node$18=function(node){return node.$updated(nil,this.$process_all(node))},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_dstr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_dsym","process_regular_node"),$alias($Processor_on_empty_else$19,"on_regexp","process_regular_node"),$alias($Processor_on_empty_else$19,"on_xstr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_splat","process_regular_node"),$alias($Processor_on_empty_else$19,"on_kwsplat","process_regular_node"),$alias($Processor_on_empty_else$19,"on_array","process_regular_node"),$alias($Processor_on_empty_else$19,"on_pair","process_regular_node"),$alias($Processor_on_empty_else$19,"on_hash","process_regular_node"),$alias($Processor_on_empty_else$19,"on_kwargs","process_regular_node"),$alias($Processor_on_empty_else$19,"on_irange","process_regular_node"),$alias($Processor_on_empty_else$19,"on_erange","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_var",$Processor_process_argument_node$18=function(node){return node},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_variable_node",$Processor_process_argument_node$18=function(node){return this.$on_var(node)},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_lvar","process_variable_node"),$alias($Processor_on_empty_else$19,"on_ivar","process_variable_node"),$alias($Processor_on_empty_else$19,"on_gvar","process_variable_node"),$alias($Processor_on_empty_else$19,"on_cvar","process_variable_node"),$alias($Processor_on_empty_else$19,"on_back_ref","process_variable_node"),$alias($Processor_on_empty_else$19,"on_nth_ref","process_variable_node"),Opal.def($Processor_on_empty_else$19,"$on_vasgn",$Processor_process_argument_node$18=function(node){var value_node=nil,$a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],value_node=null==$a[1]?nil:$a[1];return $truthy(value_node["$nil?"]()["$!"]())?node.$updated(nil,[name,this.$process(value_node)]):node},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_var_asgn_node",$Processor_process_argument_node$18=function(node){return this.$on_vasgn(node)},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_lvasgn","process_var_asgn_node"),$alias($Processor_on_empty_else$19,"on_ivasgn","process_var_asgn_node"),$alias($Processor_on_empty_else$19,"on_gvasgn","process_var_asgn_node"),$alias($Processor_on_empty_else$19,"on_cvasgn","process_var_asgn_node"),$alias($Processor_on_empty_else$19,"on_and_asgn","process_regular_node"),$alias($Processor_on_empty_else$19,"on_or_asgn","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_op_asgn",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),var_node=null==$a[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],value_node=null==$a[2]?nil:$a[2];return node.$updated(nil,[this.$process(var_node),method_name,this.$process(value_node)])},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_mlhs","process_regular_node"),$alias($Processor_on_empty_else$19,"on_masgn","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_const",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),scope_node=null==$a[0]?nil:$a[0],name=null==$a[1]?nil:$a[1];return node.$updated(nil,[this.$process(scope_node),name])},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$on_casgn",$Processor_process_argument_node$18=function(node){var value_node=nil,$a=[].concat(Opal.to_a(node)),scope_node=null==$a[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],value_node=null==$a[2]?nil:$a[2];return $truthy(value_node["$nil?"]()["$!"]())?node.$updated(nil,[this.$process(scope_node),name,this.$process(value_node)]):node.$updated(nil,[this.$process(scope_node),name])},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_args","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_argument",$Processor_process_argument_node$18=function(node){var value_node=nil,$a=[].concat(Opal.to_a(node)),arg_name=null==$a[0]?nil:$a[0],value_node=null==$a[1]?nil:$a[1];return $truthy(value_node["$nil?"]()["$!"]())?node.$updated(nil,[arg_name,this.$process(value_node)]):node},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_argument_node",$Processor_process_argument_node$18=function(node){return this.$on_argument(node)},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_arg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_optarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_restarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_blockarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_shadowarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_kwarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_kwoptarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_kwrestarg","process_argument_node"),$alias($Processor_on_empty_else$19,"on_forward_arg","process_argument_node"),Opal.def($Processor_on_empty_else$19,"$on_procarg0",$Processor_process_argument_node$18=function(node){return $truthy(node.$children()["$[]"](0)["$is_a?"]($$($nesting,"Symbol")))?this.$on_argument(node):this.$process_regular_node(node)},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_arg_expr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_restarg_expr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_blockarg_expr","process_regular_node"),$alias($Processor_on_empty_else$19,"on_block_pass","process_regular_node"),$alias($Processor_on_empty_else$19,"on_module","process_regular_node"),$alias($Processor_on_empty_else$19,"on_class","process_regular_node"),$alias($Processor_on_empty_else$19,"on_sclass","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_def",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],args_node=null==$a[1]?nil:$a[1],body_node=null==$a[2]?nil:$a[2];return node.$updated(nil,[name,this.$process(args_node),this.$process(body_node)])},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$on_defs",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),definee_node=null==$a[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],args_node=null==$a[2]?nil:$a[2],body_node=null==$a[3]?nil:$a[3];return node.$updated(nil,[this.$process(definee_node),name,this.$process(args_node),this.$process(body_node)])},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_undef","process_regular_node"),$alias($Processor_on_empty_else$19,"on_alias","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_send",$Processor_process_argument_node$18=function(node){var receiver_node=nil,method_name=nil,$a=[].concat(Opal.to_a(node)),receiver_node=null==$a[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],arg_nodes=$slice.call($a,2);return $truthy(receiver_node)&&(receiver_node=this.$process(receiver_node)),node.$updated(nil,[receiver_node,method_name].concat(Opal.to_a(this.$process_all(arg_nodes))))},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_csend","on_send"),$alias($Processor_on_empty_else$19,"on_index","process_regular_node"),$alias($Processor_on_empty_else$19,"on_indexasgn","process_regular_node"),$alias($Processor_on_empty_else$19,"on_block","process_regular_node"),$alias($Processor_on_empty_else$19,"on_lambda","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$on_numblock",$Processor_process_argument_node$18=function(node){var $a=[].concat(Opal.to_a(node)),method_call=null==$a[0]?nil:$a[0],max_numparam=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2];return node.$updated(nil,[this.$process(method_call),max_numparam,this.$process(body)])},$Processor_process_argument_node$18.$$arity=1),$alias($Processor_on_empty_else$19,"on_while","process_regular_node"),$alias($Processor_on_empty_else$19,"on_while_post","process_regular_node"),$alias($Processor_on_empty_else$19,"on_until","process_regular_node"),$alias($Processor_on_empty_else$19,"on_until_post","process_regular_node"),$alias($Processor_on_empty_else$19,"on_for","process_regular_node"),$alias($Processor_on_empty_else$19,"on_return","process_regular_node"),$alias($Processor_on_empty_else$19,"on_break","process_regular_node"),$alias($Processor_on_empty_else$19,"on_next","process_regular_node"),$alias($Processor_on_empty_else$19,"on_redo","process_regular_node"),$alias($Processor_on_empty_else$19,"on_retry","process_regular_node"),$alias($Processor_on_empty_else$19,"on_super","process_regular_node"),$alias($Processor_on_empty_else$19,"on_yield","process_regular_node"),$alias($Processor_on_empty_else$19,"on_defined?","process_regular_node"),$alias($Processor_on_empty_else$19,"on_not","process_regular_node"),$alias($Processor_on_empty_else$19,"on_and","process_regular_node"),$alias($Processor_on_empty_else$19,"on_or","process_regular_node"),$alias($Processor_on_empty_else$19,"on_if","process_regular_node"),$alias($Processor_on_empty_else$19,"on_when","process_regular_node"),$alias($Processor_on_empty_else$19,"on_case","process_regular_node"),$alias($Processor_on_empty_else$19,"on_iflipflop","process_regular_node"),$alias($Processor_on_empty_else$19,"on_eflipflop","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_current_line","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_with_lvasgn","process_regular_node"),$alias($Processor_on_empty_else$19,"on_resbody","process_regular_node"),$alias($Processor_on_empty_else$19,"on_rescue","process_regular_node"),$alias($Processor_on_empty_else$19,"on_ensure","process_regular_node"),$alias($Processor_on_empty_else$19,"on_begin","process_regular_node"),$alias($Processor_on_empty_else$19,"on_kwbegin","process_regular_node"),$alias($Processor_on_empty_else$19,"on_preexe","process_regular_node"),$alias($Processor_on_empty_else$19,"on_postexe","process_regular_node"),$alias($Processor_on_empty_else$19,"on_case_match","process_regular_node"),$alias($Processor_on_empty_else$19,"on_in_match","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_pattern_p","process_regular_node"),$alias($Processor_on_empty_else$19,"on_in_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_if_guard","process_regular_node"),$alias($Processor_on_empty_else$19,"on_unless_guard","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_var","process_variable_node"),$alias($Processor_on_empty_else$19,"on_match_rest","process_regular_node"),$alias($Processor_on_empty_else$19,"on_pin","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_alt","process_regular_node"),$alias($Processor_on_empty_else$19,"on_match_as","process_regular_node"),$alias($Processor_on_empty_else$19,"on_array_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_array_pattern_with_tail","process_regular_node"),$alias($Processor_on_empty_else$19,"on_hash_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_const_pattern","process_regular_node"),$alias($Processor_on_empty_else$19,"on_find_pattern","process_regular_node"),Opal.def($Processor_on_empty_else$19,"$process_variable_node",$Processor_process_argument_node$18=function(node){return this.$warn("Parser::AST::Processor#process_variable_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_var instead."),this.$on_var(node)},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_var_asgn_node",$Processor_process_argument_node$18=function(node){return this.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_vasgn instead."),this.$on_vasgn(node)},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$process_argument_node",$Processor_process_argument_node$18=function(node){return this.$warn("Parser::AST::Processor#process_argument_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_argument instead."),this.$on_argument(node)},$Processor_process_argument_node$18.$$arity=1),Opal.def($Processor_on_empty_else$19,"$on_empty_else",$Processor_on_empty_else$19=function(node){return node},$Processor_on_empty_else$19.$$arity=1),nil&&"on_empty_else"}($nesting[0],$$$($$$("::","AST"),"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/meta"]=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return Opal.add_stubs(["$freeze","$to_set"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Meta")].concat($nesting);return Opal.const_set($nesting[0],"NODE_TYPES",["true","false","nil","int","float","str","dstr","sym","dsym","xstr","regopt","regexp","array","splat","pair","kwsplat","hash","irange","erange","self","lvar","ivar","cvar","gvar","const","defined?","lvasgn","ivasgn","cvasgn","gvasgn","casgn","mlhs","masgn","op_asgn","and_asgn","ensure","rescue","arg_expr","or_asgn","back_ref","nth_ref","match_with_lvasgn","match_current_line","module","class","sclass","def","defs","undef","alias","args","cbase","arg","optarg","restarg","blockarg","block_pass","kwarg","kwoptarg","kwrestarg","kwnilarg","send","csend","super","zsuper","yield","block","and","not","or","if","when","case","while","until","while_post","until_post","for","break","next","redo","return","resbody","kwbegin","begin","retry","preexe","postexe","iflipflop","eflipflop","shadowarg","complex","rational","__FILE__","__LINE__","__ENCODING__","ident","lambda","indexasgn","index","procarg0","restarg_expr","blockarg_expr","objc_kwarg","objc_restarg","objc_varargs","numargs","numblock","forward_args","forwarded_args","forward_arg","case_match","in_match","in_pattern","match_var","pin","match_alt","match_as","match_rest","array_pattern","match_with_trailing_comma","array_pattern_with_tail","hash_pattern","const_pattern","if_guard","unless_guard","match_nil_pattern","empty_else","find_pattern","kwargs","match_pattern_p","match_pattern"].$to_set().$freeze())}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/buffer"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs=","$size","$new","$source","$source_range","$private","$index","$bsearch","$[]=","$method_defined?","$bsearch_index"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Buffer_bsearch$25,$Buffer_bsearch$23){var $Buffer_freeze$19,$Buffer_bsearch$25=$klass($Buffer_bsearch$25,null,"Buffer"),$nesting=[$Buffer_bsearch$25].concat($Buffer_bsearch$23);return $Buffer_bsearch$25.$$prototype.name=$Buffer_bsearch$25.$$prototype.source=$Buffer_bsearch$25.$$prototype.slice_source=$Buffer_bsearch$25.$$prototype.first_line=$Buffer_bsearch$25.$$prototype.lines=$Buffer_bsearch$25.$$prototype.source_range=$Buffer_bsearch$25.$$prototype.line_begins=$Buffer_bsearch$25.$$prototype.line_index_for_position=$Buffer_bsearch$25.$$prototype.line_range=nil,$Buffer_bsearch$25.$attr_reader("name","first_line"),Opal.const_set($nesting[0],"ENCODING_RE",Opal.regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),$enc("(","ASCII-8BIT"),$enc("","ASCII-8BIT"),$enc("(utf8-mac)","ASCII-8BIT"),$enc("|","ASCII-8BIT"),$enc("","ASCII-8BIT"),$enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),$enc("|","ASCII-8BIT"),$enc("([A-Za-z0-9_-]+)","ASCII-8BIT"),$enc(")","ASCII-8BIT"),$enc("","ASCII-8BIT")])),Opal.defs($Buffer_bsearch$25,"$recognize_encoding",$Buffer_bsearch$23=function($a){var second_line,first_line=nil,encoding_line=nil,$ret_or_1=nil,result=nil,$ret_or_2=nil,$ret_or_3=nil;return $truthy($a["$empty?"]())?nil:($a["$=~"](/^(.*)\n?(.*\n)?/),second_line=($a=[($a=$gvars["~"])===nil?nil:$a["$[]"](1),($a=$gvars["~"])===nil?nil:$a["$[]"](2)])[1],$truthy((first_line=$a[0])["$start_with?"]($enc("","ASCII-8BIT").$freeze()))?$$$($$($nesting,"Encoding"),"UTF_8"):(encoding_line=first_line["$[]"](0,2)["$=="]($enc("#!","ASCII-8BIT").$freeze())?second_line:first_line,!$truthy($truthy($ret_or_1=encoding_line["$nil?"]())?$ret_or_1:encoding_line["$[]"](0)["$!="]($enc("#","ASCII-8BIT")))&&$truthy(result=$$($nesting,"ENCODING_RE").$match(encoding_line))?$$($nesting,"Encoding").$find($truthy($ret_or_2=$truthy($ret_or_3=result["$[]"](3))?$ret_or_3:result["$[]"](4))?$ret_or_2:result["$[]"](6)):nil))},$Buffer_bsearch$23.$$arity=1),Opal.defs($Buffer_bsearch$25,"$reencode_string",$Buffer_bsearch$23=function(input){var detected_encoding=nil,original_encoding=input.$encoding(),detected_encoding=this.$recognize_encoding(input.$force_encoding($$$($$($nesting,"Encoding"),"BINARY")));return $truthy(detected_encoding["$nil?"]())?input.$force_encoding(original_encoding):detected_encoding["$=="]($$$($$($nesting,"Encoding"),"BINARY"))?input:input.$force_encoding(detected_encoding).$encode($$$($$($nesting,"Encoding"),"UTF_8"))},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$initialize",$Buffer_bsearch$23=function(name,$a,$b){var first_line,$writer,$post_args=Opal.slice.call(arguments,1,arguments.length),source=Opal.extract_kwargs($post_args);if(null==source)source=$hash2([],{});else if(!source.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return 0<$post_args.length&&(first_line=$post_args[0],$post_args.splice(0,1)),null==first_line&&(first_line=1),null==(source=source.$$smap.source)&&(source=nil),this.name=name.$to_s(),this.source=nil,this.first_line=first_line,this.lines=nil,this.line_begins=nil,this.slice_source=nil,this.line_index_for_position=$hash2([],{}),$truthy(source)?($writer=[source],$send(this,"source=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil},$Buffer_bsearch$23.$$arity=-2),Opal.def($Buffer_bsearch$25,"$read",$Buffer_bsearch$23=function(){var $$5;return $send($$($nesting,"File"),"open",[this.name,$enc("rb","ASCII-8BIT")],(($$5=function(io){var $writer,self=null==$$5.$$s?this:$$5.$$s;return null==io&&(io=nil),$writer=[io.$read()],$send(self,"source=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$5.$$arity=1,$$5)),this},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$source",$Buffer_bsearch$23=function(){return $truthy(this.source["$nil?"]())&&this.$raise($$($nesting,"RuntimeError"),$enc("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),this.source},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$source=",$Buffer_bsearch$23=function(input){var $writer;return $truthy(input["$frozen?"]())&&(input=input.$dup()),input=this.$class().$reencode_string(input),$truthy(input["$valid_encoding?"]())||this.$raise($$($nesting,"EncodingError"),"invalid byte sequence in "+input.$encoding().$name()),$writer=[input],$send(this,"raw_source=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$raw_source=",$Buffer_bsearch$23=function(input){var self=this,$ret_or_4=nil,$ret_or_5=nil;return $truthy(self.source)&&self.$raise($$($nesting,"ArgumentError"),$enc("Source::Buffer is immutable","ASCII-8BIT")),self.source=input.$gsub($enc("\r\n","ASCII-8BIT").$freeze(),$enc("\n","ASCII-8BIT").$freeze()).$freeze(),$truthy($truthy($ret_or_4=$truthy($ret_or_5=self.source["$ascii_only?"]()["$!"]())?self.source.$encoding()["$!="]($$$($$($nesting,"Encoding"),"UTF_32LE")):$ret_or_5)?self.source.$encoding()["$!="]($$$($$($nesting,"Encoding"),"BINARY")):$ret_or_4)?self.slice_source=self.source.$encode($$$($$($nesting,"Encoding"),"UTF_32LE")):nil},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$slice",$Buffer_bsearch$23=function(range){return $truthy(this.slice_source["$nil?"]())?this.source["$[]"](range):this.slice_source["$[]"](range).$encode(this.source.$encoding())},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$decompose_position",$Buffer_bsearch$23=function(position){var line_index=this.$line_index_for_position(position),line_begin=this.$line_begins()["$[]"](line_index);return[$rb_plus(this.first_line,line_index),$rb_minus(position,line_begin)]},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$line_for_position",$Buffer_bsearch$23=function(position){return $rb_plus(this.$line_index_for_position(position),this.first_line)},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$column_for_position",$Buffer_bsearch$23=function(position){var line_index=this.$line_index_for_position(position);return $rb_minus(position,this.$line_begins()["$[]"](line_index))},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$source_lines",$Buffer_bsearch$23=function(){var $$14,$ret_or_6,self=this,lines=nil;return self.lines=$truthy($ret_or_6=self.lines)?$ret_or_6:(lines=self.source.$lines().$to_a(),$truthy(self.source["$end_with?"]($enc("\n","ASCII-8BIT").$freeze()))&&lines["$<<"]($enc("","ASCII-8BIT").$dup()),$send(lines,"each",[],(($$14=function(line){null==$$14.$$s||$$14.$$s;return null==line&&(line=nil),line["$chomp!"]($enc("\n","ASCII-8BIT").$freeze()),line.$freeze()}).$$s=self,$$14.$$arity=1,$$14)),lines.$freeze())},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$source_line",$Buffer_bsearch$23=function(lineno){return this.$source_lines().$fetch($rb_minus(lineno,this.first_line)).$dup()},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$line_range",$Buffer_bsearch$23=function(lineno){var lhs,self=this,rhs=nil,index=$rb_minus(lineno,self.first_line);return $truthy($truthy(rhs=$rb_lt(index,0))?rhs:(lhs=$rb_plus(index,1),rhs=self.$line_begins().$size(),"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))?self.$raise($$($nesting,"IndexError"),"Parser::Source::Buffer: range for line "+lineno+" requested, valid line numbers are "+self.first_line+".."+$rb_minus($rb_plus(self.first_line,self.$line_begins().$size()),2)):$$($nesting,"Range").$new(self,self.$line_begins()["$[]"](index),$rb_minus(self.$line_begins()["$[]"]($rb_plus(index,1)),1))},$Buffer_bsearch$23.$$arity=1),Opal.def($Buffer_bsearch$25,"$source_range",$Buffer_bsearch$23=function(){var self=this,$ret_or_8=nil;return self.source_range=$truthy($ret_or_8=self.source_range)?$ret_or_8:$$($nesting,"Range").$new(self,0,self.$source().$size())},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$last_line",$Buffer_bsearch$23=function(){return $rb_minus($rb_plus(this.$line_begins().$size(),this.first_line),2)},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$freeze",$Buffer_freeze$19=function(){var $zuper_ii,$iter=$Buffer_freeze$19.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Buffer_freeze$19.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return this.$source_lines(),this.$line_begins(),this.$source_range(),$send2(this,$find_super(this,"freeze",$Buffer_freeze$19,!1,!0),"freeze",$zuper,$iter)},$Buffer_freeze$19.$$arity=0),Opal.def($Buffer_bsearch$25,"$inspect",$Buffer_bsearch$23=function(){return"#<"+this.$class()+" "+this.$name()+">"},$Buffer_bsearch$23.$$arity=0),$Buffer_bsearch$25.$private(),Opal.def($Buffer_bsearch$25,"$line_begins",$Buffer_bsearch$23=function(){var $ret_or_9,self=this,begins=nil,index=nil;return self.line_begins=function(){if($truthy($ret_or_9=self.line_begins))return $ret_or_9;for(begins=[0],index=0;$truthy(index=self.source.$index($enc("\n","ASCII-8BIT").$freeze(),index));)index=$rb_plus(index,1),begins["$<<"](index);return begins["$<<"]($rb_plus(self.source.$size(),1)),begins}()},$Buffer_bsearch$23.$$arity=0),Opal.def($Buffer_bsearch$25,"$line_index_for_position",$Buffer_bsearch$23=function(position){var $ret_or_10,index,$writer;return $truthy($ret_or_10=this.line_index_for_position["$[]"](position))?$ret_or_10:(index=$rb_minus(this.$bsearch(this.$line_begins(),position),1),$truthy(this.line_index_for_position["$frozen?"]())||($writer=[position,index],$send(this.line_index_for_position,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),index)},$Buffer_bsearch$23.$$arity=1),$truthy($$($nesting,"Array")["$method_defined?"]("bsearch_index"))?Opal.def($Buffer_bsearch$25,"$bsearch",$Buffer_bsearch$23=function(line_begins,position){var $$24,$ret_or_11;return $truthy($ret_or_11=$send(line_begins,"bsearch_index",[],(($$24=function(line_begin){null==$$24.$$s||$$24.$$s;return null==line_begin&&(line_begin=nil),$rb_lt(position,line_begin)}).$$s=this,$$24.$$arity=1,$$24)))?$ret_or_11:$rb_minus(line_begins.$size(),1)},$Buffer_bsearch$23.$$arity=2):Opal.def($Buffer_bsearch$25,"$bsearch",$Buffer_bsearch$25=function(line_begins,position){var $$26,$ret_or_13,self=this,$ret_or_12=nil;return self.line_range=$truthy($ret_or_12=self.line_range)?$ret_or_12:Opal.Range.$new(0,line_begins.$size(),!0),$truthy($ret_or_13=$send(self.line_range,"bsearch",[],(($$26=function(i){null==$$26.$$s||$$26.$$s;return null==i&&(i=nil),$rb_lt(position,line_begins["$[]"](i))}).$$s=self,$$26.$$arity=1,$$26)))?$ret_or_13:$rb_minus(line_begins.$size(),1)},$Buffer_bsearch$25.$$arity=2),nil&&"bsearch"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/range"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_ge(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$alias=Opal.alias;return Opal.add_stubs(["$include","$attr_reader","$<","$raise","$nil?","$freeze","$with","$-","$line_for_position","$alias_method","$column_for_position","$!=","$line","$last_line","$inspect","$column","$last_column","$source_line","$slice","$begin_pos","$end_pos","$include?","$source","$to_a","$decompose_position","$join","$name","$+","$new","$min","$max","$disjoint?","$empty?","$>=","$!","$<=>","$contains?","$overlaps?","$==","$*","$is_a?","$source_buffer","$nonzero?","$hash"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Range_inspect$29,$Range_hash$28){var $Range_inspect$29=$klass($Range_inspect$29,null,"Range"),$nesting=[$Range_inspect$29].concat($Range_hash$28);return $Range_inspect$29.$$prototype.begin_pos=$Range_inspect$29.$$prototype.end_pos=$Range_inspect$29.$$prototype.source_buffer=nil,$Range_inspect$29.$include($$($nesting,"Comparable")),$Range_inspect$29.$attr_reader("source_buffer"),$Range_inspect$29.$attr_reader("begin_pos","end_pos"),Opal.def($Range_inspect$29,"$initialize",$Range_hash$28=function(source_buffer,begin_pos,$a){var lhs,rhs;return $truthy((rhs=begin_pos,"number"==typeof(lhs=$a)&&"number"==typeof rhs?lhs"](this.begin_pos),this.end_pos["$<=>"](other.$end_pos())),$truthy(other["$empty?"]())?2:1)},$Range_hash$28.$$arity=1),Opal.def($Range_inspect$29,"$contained?",$Range_hash$28=function(other){return other["$contains?"](this)},$Range_hash$28.$$arity=1),Opal.def($Range_inspect$29,"$crossing?",$Range_hash$28=function(rhs){var lhs;return!!$truthy(this["$overlaps?"](rhs))&&(lhs=this.begin_pos["$<=>"](rhs.$begin_pos()),rhs=this.end_pos["$<=>"](rhs.$end_pos()),("number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs))["$=="](1))},$Range_hash$28.$$arity=1),Opal.def($Range_inspect$29,"$empty?",$Range_hash$28=function(){return this.begin_pos["$=="](this.end_pos)},$Range_hash$28.$$arity=0),Opal.def($Range_inspect$29,"$<=>",$Range_hash$28=function(other){var $ret_or_4,self=this,$ret_or_3=nil;return $truthy($truthy($ret_or_3=other["$is_a?"]($$$($$$($$$("::","Parser"),"Source"),"Range")))?self.source_buffer["$=="](other.$source_buffer()):$ret_or_3)?$truthy($ret_or_4=self.begin_pos["$<=>"](other.$begin_pos())["$nonzero?"]())?$ret_or_4:self.end_pos["$<=>"](other.$end_pos()):nil},$Range_hash$28.$$arity=1),$Range_inspect$29.$alias_method("eql?","=="),Opal.def($Range_inspect$29,"$hash",$Range_hash$28=function(){return[this.source_buffer,this.begin_pos,this.end_pos].$hash()},$Range_hash$28.$$arity=0),Opal.def($Range_inspect$29,"$inspect",$Range_inspect$29=function(){return"#"},$Range_inspect$29.$$arity=0),nil&&"inspect"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/comment"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$attr_reader","$alias_method","$new","$associate","$associate_locations","$associate_by_identity","$freeze","$source","$start_with?","$text","$==","$type","$is_a?","$location","$to_s","$expression","$inspect"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Comment_inspect$9,$Comment_$eq_eq$8){var $Comment_inspect$9=$klass($Comment_inspect$9,null,"Comment"),$nesting=[$Comment_inspect$9].concat($Comment_$eq_eq$8);return $Comment_inspect$9.$$prototype.location=nil,$Comment_inspect$9.$attr_reader("text"),$Comment_inspect$9.$attr_reader("location"),$Comment_inspect$9.$alias_method("loc","location"),Opal.defs($Comment_inspect$9,"$associate",$Comment_$eq_eq$8=function(ast,comments){return $$($nesting,"Associator").$new(ast,comments).$associate()},$Comment_$eq_eq$8.$$arity=2),Opal.defs($Comment_inspect$9,"$associate_locations",$Comment_$eq_eq$8=function(ast,comments){return $$($nesting,"Associator").$new(ast,comments).$associate_locations()},$Comment_$eq_eq$8.$$arity=2),Opal.defs($Comment_inspect$9,"$associate_by_identity",$Comment_$eq_eq$8=function(ast,comments){return $$($nesting,"Associator").$new(ast,comments).$associate_by_identity()},$Comment_$eq_eq$8.$$arity=2),Opal.def($Comment_inspect$9,"$initialize",$Comment_$eq_eq$8=function(range){return this.location=$$$($$$($$($nesting,"Parser"),"Source"),"Map").$new(range),this.text=range.$source().$freeze(),this.$freeze()},$Comment_$eq_eq$8.$$arity=1),Opal.def($Comment_inspect$9,"$type",$Comment_$eq_eq$8=function(){return $truthy(this.$text()["$start_with?"]("#".$freeze()))?"inline":$truthy(this.$text()["$start_with?"]("=begin".$freeze()))?"document":nil},$Comment_$eq_eq$8.$$arity=0),Opal.def($Comment_inspect$9,"$inline?",$Comment_$eq_eq$8=function(){return this.$type()["$=="]("inline")},$Comment_$eq_eq$8.$$arity=0),Opal.def($Comment_inspect$9,"$document?",$Comment_$eq_eq$8=function(){return this.$type()["$=="]("document")},$Comment_$eq_eq$8.$$arity=0),Opal.def($Comment_inspect$9,"$==",$Comment_$eq_eq$8=function(other){var $ret_or_1;return $truthy($ret_or_1=other["$is_a?"]($$$($$($nesting,"Source"),"Comment")))?this.location["$=="](other.$location()):$ret_or_1},$Comment_$eq_eq$8.$$arity=1),Opal.def($Comment_inspect$9,"$inspect",$Comment_inspect$9=function(){return"#"},$Comment_inspect$9.$$arity=0),nil&&"inspect"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/comment/associator"]=function(Opal){function $rb_le(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_accessor","$do_associate","$private","$freeze","$[]","$include?","$type","$sort_by","$compact","$children","$begin_pos","$expression","$loc","$select","$is_a?","$new","$[]=","$-","$==","$compare_by_identity","$advance_comment","$advance_through_directives","$visit","$process_leading_comments","$location","$<=","$line","$last_line","$each","$children_in_source_order","$process_trailing_comments","$current_comment_before?","$associate_and_advance_comment","$current_comment_before_end?","$current_comment_decorates?","$+","$!","$end_pos","$<<","$start_with?","$text","$=~"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Associator_advance_through_directives$19,$Associator_associate_and_advance_comment$18){var $Associator_advance_through_directives$19=$klass($Associator_advance_through_directives$19,null,"Associator"),$nesting=[$Associator_advance_through_directives$19].concat($Associator_associate_and_advance_comment$18);return $Associator_advance_through_directives$19.$$prototype.map_using=$Associator_advance_through_directives$19.$$prototype.mapping=$Associator_advance_through_directives$19.$$prototype.skip_directives=$Associator_advance_through_directives$19.$$prototype.ast=$Associator_advance_through_directives$19.$$prototype.current_comment=$Associator_advance_through_directives$19.$$prototype.comment_num=$Associator_advance_through_directives$19.$$prototype.comments=nil,$Associator_advance_through_directives$19.$attr_accessor("skip_directives"),Opal.def($Associator_advance_through_directives$19,"$initialize",$Associator_associate_and_advance_comment$18=function(ast,comments){return this.ast=ast,this.comments=comments,this.skip_directives=!0},$Associator_associate_and_advance_comment$18.$$arity=2),Opal.def($Associator_advance_through_directives$19,"$associate",$Associator_associate_and_advance_comment$18=function(){return this.map_using="eql",this.$do_associate()},$Associator_associate_and_advance_comment$18.$$arity=0),Opal.def($Associator_advance_through_directives$19,"$associate_locations",$Associator_associate_and_advance_comment$18=function(){return this.map_using="location",this.$do_associate()},$Associator_associate_and_advance_comment$18.$$arity=0),Opal.def($Associator_advance_through_directives$19,"$associate_by_identity",$Associator_associate_and_advance_comment$18=function(){return this.map_using="identity",this.$do_associate()},$Associator_associate_and_advance_comment$18.$$arity=0),$Associator_advance_through_directives$19.$private(),Opal.const_set($nesting[0],"POSTFIX_TYPES",$$($nesting,"Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),Opal.def($Associator_advance_through_directives$19,"$children_in_source_order",$Associator_associate_and_advance_comment$18=function(node){var $$6,$$7;return $truthy($$($nesting,"POSTFIX_TYPES")["$include?"](node.$type()))?$send(node.$children().$compact(),"sort_by",[],(($$6=function(child){null==$$6.$$s||$$6.$$s;return null==child&&(child=nil),child.$loc().$expression().$begin_pos()}).$$s=this,$$6.$$arity=1,$$6)):$send(node.$children(),"select",[],(($$7=function(child){null==$$7.$$s||$$7.$$s;var $ret_or_1,$ret_or_2=nil;return null==child&&(child=nil),$truthy($ret_or_1=$truthy($ret_or_2=child["$is_a?"]($$$($$($nesting,"AST"),"Node")))?child.$loc():$ret_or_2)?child.$loc().$expression():$ret_or_1}).$$s=this,$$7.$$arity=1,$$7))},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$do_associate",$Associator_associate_and_advance_comment$18=function(){var $$9;return this.mapping=$send($$($nesting,"Hash"),"new",[],(($$9=function(rhs,k){null==$$9.$$s||$$9.$$s;var lhs=nil;return null==rhs&&(rhs=nil),null==k&&(k=nil),lhs=[k,[]],$send(rhs,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}).$$s=this,$$9.$$arity=2,$$9)),this.map_using["$=="]("identity")&&this.mapping.$compare_by_identity(),this.comment_num=-1,this.$advance_comment(),$truthy(this.skip_directives)&&this.$advance_through_directives(),$truthy(this.ast)&&this.$visit(this.ast),this.mapping},$Associator_associate_and_advance_comment$18.$$arity=0),Opal.def($Associator_advance_through_directives$19,"$visit",$Associator_associate_and_advance_comment$18=function(node){var $$11,self=this,node_loc=nil,$ret_or_3=nil;return self.$process_leading_comments(node),$truthy(self.current_comment)?(node_loc=node.$location(),$truthy($truthy($ret_or_3=$rb_le(self.current_comment.$location().$line(),node_loc.$last_line()))?$ret_or_3:node_loc["$is_a?"]($$$($$($nesting,"Map"),"Heredoc")))?($send(self.$children_in_source_order(node),"each",[],(($$11=function(child){var self=null==$$11.$$s?this:$$11.$$s;return null==child&&(child=nil),self.$visit(child)}).$$s=self,$$11.$$arity=1,$$11)),self.$process_trailing_comments(node)):nil):nil},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$process_leading_comments",$Associator_associate_and_advance_comment$18=function(node){if(node.$type()["$=="]("begin"))return nil;for(;$truthy(this["$current_comment_before?"](node));)this.$associate_and_advance_comment(node)},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$process_trailing_comments",$Associator_associate_and_advance_comment$18=function(node){for(;$truthy(this["$current_comment_before_end?"](node));)this.$associate_and_advance_comment(node);for(;$truthy(this["$current_comment_decorates?"](node));)this.$associate_and_advance_comment(node)},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$advance_comment",$Associator_associate_and_advance_comment$18=function(){var lhs,rhs;return this.comment_num=(lhs=this.comment_num,rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),this.current_comment=this.comments["$[]"](this.comment_num)},$Associator_associate_and_advance_comment$18.$$arity=0),Opal.def($Associator_advance_through_directives$19,"$current_comment_before?",$Associator_associate_and_advance_comment$18=function(node){var comment_loc=nil,node_loc=nil;return!$truthy(this.current_comment["$!"]())&&(comment_loc=this.current_comment.$location().$expression(),node_loc=node.$location().$expression(),$rb_le(comment_loc.$end_pos(),node_loc.$begin_pos()))},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$current_comment_before_end?",$Associator_associate_and_advance_comment$18=function(node){var comment_loc=nil,node_loc=nil;return!$truthy(this.current_comment["$!"]())&&(comment_loc=this.current_comment.$location().$expression(),node_loc=node.$location().$expression(),$rb_le(comment_loc.$end_pos(),node_loc.$end_pos()))},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$current_comment_decorates?",$Associator_associate_and_advance_comment$18=function(node){return!$truthy(this.current_comment["$!"]())&&this.current_comment.$location().$line()["$=="](node.$location().$last_line())},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.def($Associator_advance_through_directives$19,"$associate_and_advance_comment",$Associator_associate_and_advance_comment$18=function(node){var self=this,key=self.map_using["$=="]("location")?node.$location():node;return self.mapping["$[]"](key)["$<<"](self.current_comment),self.$advance_comment()},$Associator_associate_and_advance_comment$18.$$arity=1),Opal.const_set($nesting[0],"MAGIC_COMMENT_RE",/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),Opal.def($Associator_advance_through_directives$19,"$advance_through_directives",$Associator_advance_through_directives$19=function(){var self=this,$ret_or_4=nil,$ret_or_5=nil,$ret_or_6=nil;return $truthy($truthy($ret_or_4=self.current_comment)?self.current_comment.$text()["$start_with?"]("#!".$freeze()):$ret_or_4)&&self.$advance_comment(),$truthy($truthy($ret_or_5=self.current_comment)?self.current_comment.$text()["$=~"]($$($nesting,"MAGIC_COMMENT_RE")):$ret_or_5)&&self.$advance_comment(),$truthy($truthy($ret_or_6=self.current_comment)?self.current_comment.$text()["$=~"]($$$($$($nesting,"Buffer"),"ENCODING_RE")):$ret_or_6)?self.$advance_comment():nil},$Associator_advance_through_directives$19.$$arity=0),nil&&"advance_through_directives"}($$($nesting,"Comment"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/rewriter"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_le(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$gvars=Opal.gvars,$truthy=Opal.truthy,$hash2=Opal.hash2;return Opal.add_stubs(["$attr_reader","$warn_of_deprecation","$class","$new","$lambda","$puts","$render","$consumer=","$-","$append","$freeze","$begin","$end","$+","$in_transaction?","$raise","$dup","$source","$each","$sort","$begin_pos","$range","$length","$replacement","$[]=","$private","$empty?","$!","$allow_multiple_insertions?","$clobbered_insertion?","$raise_clobber_error","$record_insertion","$adjacent_updates?","$find","$overlaps?","$replace_compatible_with_insertion?","$merge_actions!","$<<","$active_queue","$adjacent_insertions?","$merge_actions","$delete","$can_merge?","$record_replace","$|","$active_insertions","$active_insertions=","$active_clobber","$clobbered_position_mask","$active_clobber=","$size","$!=","$&","$<=","$end_pos","$adjacent_insertion_mask","$select","$adjacent?","$adjacent_position_mask","$>=","$==","$[]","$all?","$intersect","$nil?","$max","$sort_by","$push","$join","$first","$max_by","$merge_replacements","$replace_actions","$disjoint?","$<","$process","$extend"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function(self,$Rewriter_adjacent$ques$45){var $Rewriter_transaction$12,self=$klass(self,null,"Rewriter"),$nesting=[self].concat($Rewriter_adjacent$ques$45);return self.$$prototype.diagnostics=self.$$prototype.insert_before_multi_order=self.$$prototype.insert_after_multi_order=self.$$prototype.source_buffer=self.$$prototype.queue=self.$$prototype.clobber=self.$$prototype.insertions=self.$$prototype.pending_queue=self.$$prototype.pending_clobber=self.$$prototype.pending_insertions=nil,self.$attr_reader("source_buffer"),self.$attr_reader("diagnostics"),Opal.def(self,"$initialize",$Rewriter_adjacent$ques$45=function(source_buffer){var $$2,$writer;return this.$class().$warn_of_deprecation(),this.diagnostics=$$$($$($nesting,"Diagnostic"),"Engine").$new(),$writer=[$send(this,"lambda",[],(($$2=function(diag){null==$$2.$$s||$$2.$$s;return null==$gvars.stderr&&($gvars.stderr=nil),null==diag&&(diag=nil),$gvars.stderr.$puts(diag.$render())}).$$s=this,$$2.$$arity=1,$$2))],$send(this.diagnostics,"consumer=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.source_buffer=source_buffer,this.queue=[],this.clobber=0,this.insertions=0,this.insert_before_multi_order=0,this.insert_after_multi_order=0,this.pending_queue=nil,this.pending_clobber=nil,this.pending_insertions=nil},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$remove",$Rewriter_adjacent$ques$45=function(range){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range,"".$freeze()))},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$insert_before",$Rewriter_adjacent$ques$45=function(range,content){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$begin(),content))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$wrap",$Rewriter_adjacent$ques$45=function(range,before,after){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$begin(),before)),this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$end(),after))},$Rewriter_adjacent$ques$45.$$arity=3),Opal.def(self,"$insert_before_multi",$Rewriter_adjacent$ques$45=function(range,content){return this.insert_before_multi_order=$rb_minus(this.insert_before_multi_order,1),this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$begin(),content,!0,this.insert_before_multi_order))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$insert_after",$Rewriter_adjacent$ques$45=function(range,content){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$end(),content))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$insert_after_multi",$Rewriter_adjacent$ques$45=function(range,content){return this.insert_after_multi_order=$rb_plus(this.insert_after_multi_order,1),this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range.$end(),content,!0,this.insert_after_multi_order))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$replace",$Rewriter_adjacent$ques$45=function(range,content){return this.$append($$$($$($nesting,"Rewriter"),"Action").$new(range,content))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$process",$Rewriter_adjacent$ques$45=function(){var $$11,source,adjustment=nil;return $truthy(this["$in_transaction?"]())&&this.$raise("Do not call "+this.$class()+"#process inside a transaction"),adjustment=0,source=this.source_buffer.$source().$dup(),$send(this.queue.$sort(),"each",[],(($$11=function(action){var begin_pos,end_pos,$writer;null==$$11.$$s||$$11.$$s;return null==action&&(action=nil),begin_pos=$rb_plus(action.$range().$begin_pos(),adjustment),end_pos=$rb_plus(begin_pos,action.$range().$length()),$writer=[Opal.Range.$new(begin_pos,end_pos,!0),action.$replacement()],$send(source,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),adjustment=$rb_plus(adjustment,$rb_minus(action.$replacement().$length(),action.$range().$length()))}).$$s=this,$$11.$$arity=1,$$11)),source},$Rewriter_adjacent$ques$45.$$arity=0),Opal.def(self,"$transaction",$Rewriter_transaction$12=function(){var $iter=$Rewriter_transaction$12.$$p,$yield=$iter||nil,self=this;return $iter&&($Rewriter_transaction$12.$$p=null),function(){try{return $yield!==nil||self.$raise(self.$class()+"#transaction requires block"),$truthy(self["$in_transaction?"]())&&self.$raise("Nested transaction is not supported"),self.pending_queue=self.queue.$dup(),self.pending_clobber=self.clobber,self.pending_insertions=self.insertions,Opal.yieldX($yield,[]),self.queue=self.pending_queue,self.clobber=self.pending_clobber,self.insertions=self.pending_insertions,self}finally{self.pending_queue=nil,self.pending_clobber=nil,self.pending_insertions=nil}}()},$Rewriter_transaction$12.$$arity=0),self.$private(),Opal.def(self,"$append",$Rewriter_adjacent$ques$45=function(action){var $$14,$$15,insertions,self=this,range=nil,$ret_or_1=nil,conflicting=nil,adjacent=nil,range=action.$range();if($truthy(range["$empty?"]())){if($truthy(action.$replacement()["$empty?"]()))return self;$truthy($truthy($ret_or_1=action["$allow_multiple_insertions?"]()["$!"]())?conflicting=self["$clobbered_insertion?"](range):$ret_or_1)&&self.$raise_clobber_error(action,[conflicting]),self.$record_insertion(range),$truthy(adjacent=self["$adjacent_updates?"](range))?(conflicting=$send(adjacent,"find",[],(($$14=function(a){var $ret_or_2,self=null==$$14.$$s?this:$$14.$$s;return null==a&&(a=nil),$truthy($ret_or_2=a.$range()["$overlaps?"](range))?self["$replace_compatible_with_insertion?"](a,action)["$!"]():$ret_or_2}).$$s=self,$$14.$$arity=1,$$14)),$truthy(conflicting)&&self.$raise_clobber_error(action,[conflicting]),self["$merge_actions!"](action,adjacent)):self.$active_queue()["$<<"](action)}else $truthy(insertions=self["$adjacent_insertions?"](range))&&$send(insertions,"each",[],(($$15=function(insertion){var self=null==$$15.$$s?this:$$15.$$s,$ret_or_3=nil;return null==insertion&&(insertion=nil),$truthy($truthy($ret_or_3=range["$overlaps?"](insertion.$range()))?self["$replace_compatible_with_insertion?"](action,insertion)["$!"]():$ret_or_3)?self.$raise_clobber_error(action,[insertion]):(action=self.$merge_actions(action,[insertion]),self.$active_queue().$delete(insertion))}).$$s=self,$$15.$$arity=1,$$15)),$truthy(adjacent=self["$adjacent_updates?"](range))?$truthy(self["$can_merge?"](action,adjacent))?(self.$record_replace(range),self["$merge_actions!"](action,adjacent)):self.$raise_clobber_error(action,adjacent):(self.$record_replace(range),self.$active_queue()["$<<"](action));return self},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$record_insertion",$Rewriter_adjacent$ques$45=function(range){var $writer=[this.$active_insertions()["$|"](1["$<<"](range.$begin_pos()))];return $send(this,"active_insertions=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$record_replace",$Rewriter_adjacent$ques$45=function(range){var $writer=[this.$active_clobber()["$|"](this.$clobbered_position_mask(range))];return $send(this,"active_clobber=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$clobbered_position_mask",$Rewriter_adjacent$ques$45=function(range){return $rb_minus(1["$<<"](range.$size()),1)["$<<"](range.$begin_pos())},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$adjacent_position_mask",$Rewriter_adjacent$ques$45=function(range){return $rb_minus(1["$<<"]($rb_plus(range.$size(),2)),1)["$<<"]($rb_minus(range.$begin_pos(),1))},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$adjacent_insertion_mask",$Rewriter_adjacent$ques$45=function(range){return $rb_minus(1["$<<"]($rb_plus(range.$size(),1)),1)["$<<"](range.$begin_pos())},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$clobbered_insertion?",$Rewriter_adjacent$ques$45=function(insertion){var $$22,insertion_pos=insertion.$begin_pos();return $truthy(this.$active_insertions()["$&"](1["$<<"](insertion_pos))["$!="](0))?$send(this.$active_queue(),"find",[],(($$22=function(a){var $ret_or_4;null==$$22.$$s||$$22.$$s;return null==a&&(a=nil),$truthy($ret_or_4=$rb_le(a.$range().$begin_pos(),insertion_pos))?$rb_le(insertion_pos,a.$range().$end_pos()):$ret_or_4}).$$s=this,$$22.$$arity=1,$$22)):nil},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$adjacent_insertions?",$Rewriter_adjacent$ques$45=function(range){var $$24,result=nil;return $truthy(this.$active_insertions()["$&"](this.$adjacent_insertion_mask(range))["$!="](0))?(result=$send(this.$active_queue(),"select",[],(($$24=function(a){var $ret_or_5,self=null==$$24.$$s?this:$$24.$$s;return null==a&&(a=nil),$truthy($ret_or_5=a.$range()["$empty?"]())?self["$adjacent?"](range,a.$range()):$ret_or_5}).$$s=this,$$24.$$arity=1,$$24)),$truthy(result["$empty?"]())?nil:result):nil},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$adjacent_updates?",$Rewriter_adjacent$ques$45=function(range){var $$26;return $truthy(this.$active_clobber()["$&"](this.$adjacent_position_mask(range))["$!="](0))?$send(this.$active_queue(),"select",[],(($$26=function(a){var self=null==$$26.$$s?this:$$26.$$s;return null==a&&(a=nil),self["$adjacent?"](range,a.$range())}).$$s=this,$$26.$$arity=1,$$26)):nil},$Rewriter_adjacent$ques$45.$$arity=1),Opal.def(self,"$replace_compatible_with_insertion?",$Rewriter_adjacent$ques$45=function(replace,insertion){var $ret_or_6,lhs,rhs,$ret_or_7=nil,offset=nil;return $truthy($ret_or_6=$truthy((lhs=$rb_minus(replace.$replacement().$length(),replace.$range().$size()),rhs=insertion.$range().$size(),$ret_or_7="number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))?offset=$rb_minus(insertion.$range().$begin_pos(),replace.$range().$begin_pos()):$ret_or_7)?replace.$replacement()["$[]"](offset,insertion.$replacement().$length())["$=="](insertion.$replacement()):$ret_or_6},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$can_merge?",$Rewriter_adjacent$ques$45=function(action,existing){var $$29,range=nil,range=action.$range();return $send(existing,"all?",[],(($$29=function(other){null==$$29.$$s||$$29.$$s;var repl1_offset,repl2_offset,repl1_length,repl2_length,replacement2,overlap=nil,replacement1=nil,$ret_or_8=nil,$ret_or_9=nil;return null==other&&(other=nil),overlap=range.$intersect(other.$range()),!!$truthy(overlap["$nil?"]())||(repl1_offset=$rb_minus(overlap.$begin_pos(),range.$begin_pos()),repl2_offset=$rb_minus(overlap.$begin_pos(),other.$range().$begin_pos()),repl1_length=[$rb_minus(other.$range().$length(),repl2_offset),$rb_minus(other.$replacement().$length(),repl2_offset)].$max(),repl2_length=[$rb_minus(range.$length(),repl1_offset),$rb_minus(action.$replacement().$length(),repl1_offset)].$max(),replacement1=$truthy($ret_or_8=action.$replacement()["$[]"](repl1_offset,repl1_length))?$ret_or_8:"".$freeze(),replacement2=$truthy($ret_or_9=other.$replacement()["$[]"](repl2_offset,repl2_length))?$ret_or_9:"".$freeze(),replacement1["$=="](replacement2))}).$$s=this,$$29.$$arity=1,$$29))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$merge_actions",$Rewriter_adjacent$ques$45=function(action,existing){var $$31,$$32,actions=nil,range=(actions=$send(existing.$push(action),"sort_by",[],(($$31=function(a){null==$$31.$$s||$$31.$$s;return null==a&&(a=nil),[a.$range().$begin_pos(),a.$range().$end_pos()]}).$$s=this,$$31.$$arity=1,$$31))).$first().$range().$join($send(actions,"max_by",[],(($$32=function(a){null==$$32.$$s||$$32.$$s;return null==a&&(a=nil),a.$range().$end_pos()}).$$s=this,$$32.$$arity=1,$$32)).$range());return $$$($$($nesting,"Rewriter"),"Action").$new(range,this.$merge_replacements(actions))},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$merge_actions!",$Rewriter_adjacent$ques$45=function(action,existing){var new_action=this.$merge_actions(action,existing);return this.$active_queue().$delete(action),this.$replace_actions(existing,new_action)},$Rewriter_adjacent$ques$45.$$arity=2),Opal.def(self,"$merge_replacements",$Rewriter_adjacent$ques$45=function(actions){var $$35,result=nil,prev_act=nil,result="".$dup(),prev_act=nil;return $send(actions,"each",[],(($$35=function(act){null==$$35.$$s||$$35.$$s;var offset,lhs,rhs=nil;return null==act&&(act=nil),$truthy($truthy(rhs=prev_act["$!"]())?rhs:act.$range()["$disjoint?"](prev_act.$range()))?result["$<<"](act.$replacement()):(offset=$rb_minus([$rb_plus(prev_act.$range().$begin_pos(),prev_act.$replacement().$length()),prev_act.$range().$end_pos()].$max(),act.$range().$begin_pos()),$truthy((lhs=offset,rhs=act.$replacement().$size(),"number"==typeof lhs&&"number"==typeof rhs?lhs","$begin_pos","$range","$zero?","$order","$==","$length","$empty?","$inspect"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Action_to_s$3,$Action_$lt_eq_gt$2){$Action_to_s$3=$klass($Action_to_s$3,null,"Action"),$Action_$lt_eq_gt$2=[$Action_to_s$3].concat($Action_$lt_eq_gt$2);return $Action_to_s$3.$$prototype.range=$Action_to_s$3.$$prototype.replacement=nil,$Action_to_s$3.$include($$($Action_$lt_eq_gt$2,"Comparable")),$Action_to_s$3.$attr_reader("range","replacement","allow_multiple_insertions","order"),$Action_to_s$3.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),Opal.def($Action_to_s$3,"$initialize",$Action_$lt_eq_gt$2=function(range,replacement,allow_multiple_insertions,order){return null==replacement&&(replacement=""),null==allow_multiple_insertions&&(allow_multiple_insertions=!1),null==order&&(order=0),this.range=range,this.replacement=replacement,this.allow_multiple_insertions=allow_multiple_insertions,this.order=order,this.$freeze()},$Action_$lt_eq_gt$2.$$arity=-2),Opal.def($Action_to_s$3,"$<=>",$Action_$lt_eq_gt$2=function(other){var result=nil,result=this.$range().$begin_pos()["$<=>"](other.$range().$begin_pos());return $truthy(result["$zero?"]())?this.$order()["$<=>"](other.$order()):result},$Action_$lt_eq_gt$2.$$arity=1),Opal.def($Action_to_s$3,"$to_s",$Action_to_s$3=function(){var self=this,$ret_or_1=nil;return $truthy($truthy($ret_or_1=self.range.$length()["$=="](0))?self.replacement["$empty?"]():$ret_or_1)?"do nothing":self.range.$length()["$=="](0)?"insert "+self.replacement.$inspect():$truthy(self.replacement["$empty?"]())?"remove "+self.range.$length()+" character(s)":"replace "+self.range.$length()+" character(s) with "+self.replacement.$inspect()},$Action_to_s$3.$$arity=0),nil&&"to_s"}($$($nesting,"Rewriter"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/tree_rewriter"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$lambda=Opal.lambda,$gvars=Opal.gvars,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range,$slice=(Opal.hash,Opal.slice);return Opal.add_stubs(["$attr_reader","$new","$puts","$render","$consumer=","$-","$freeze","$check_policy_validity","$method","$adjust","$source_range","$empty?","$==","$source_buffer","$raise","$combine","$action_root","$merge!","$dup","$contract","$+","$begin_pos","$range","$end_pos","$check_range_validity","$moved","$to_s","$replace","$wrap","$source","$each","$ordered_replacements","$<<","$[]","$length","$join","$nested_actions","$class","$name","$action_summary","$warn_of_deprecation","$insert_before","$insert_after","$extend","$protected","$private","$as_replacements","$size","$===","$first","$map","$to_range","$inspect","$values","$<","$>","$trigger_policy","$process"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($TreeRewriter_trigger_policy$27,$TreeRewriter_check_range_validity$25){var $TreeRewriter_transaction$16,$TreeRewriter_enforce_policy$26,$TreeRewriter_trigger_policy$27=$klass($TreeRewriter_trigger_policy$27,null,"TreeRewriter"),$nesting=[$TreeRewriter_trigger_policy$27].concat($TreeRewriter_check_range_validity$25);return $TreeRewriter_trigger_policy$27.$$prototype.diagnostics=$TreeRewriter_trigger_policy$27.$$prototype.source_buffer=$TreeRewriter_trigger_policy$27.$$prototype.enforcer=$TreeRewriter_trigger_policy$27.$$prototype.action_root=$TreeRewriter_trigger_policy$27.$$prototype.in_transaction=$TreeRewriter_trigger_policy$27.$$prototype.policy=nil,$TreeRewriter_trigger_policy$27.$attr_reader("source_buffer"),$TreeRewriter_trigger_policy$27.$attr_reader("diagnostics"),Opal.def($TreeRewriter_trigger_policy$27,"$initialize",$TreeRewriter_check_range_validity$25=function(source_buffer,swallowed_insertions){var crossing_deletions,different_replacements,$$2,$writer,all_encompassing_range;if(null==swallowed_insertions)swallowed_insertions=$hash2([],{});else if(!swallowed_insertions.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(crossing_deletions=swallowed_insertions.$$smap.crossing_deletions)&&(crossing_deletions="accept"),null==(different_replacements=swallowed_insertions.$$smap.different_replacements)&&(different_replacements="accept"),null==(swallowed_insertions=swallowed_insertions.$$smap.swallowed_insertions)&&(swallowed_insertions="accept"),this.diagnostics=$$$($$($nesting,"Diagnostic"),"Engine").$new(),$writer=[$lambda((($$2=function(diag){null==$$2.$$s||$$2.$$s;return null==$gvars.stderr&&($gvars.stderr=nil),null==diag&&(diag=nil),$gvars.stderr.$puts(diag.$render())}).$$s=this,$$2.$$arity=1,$$2))],$send(this.diagnostics,"consumer=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.source_buffer=source_buffer,this.in_transaction=!1,this.policy=$hash2(["crossing_deletions","different_replacements","swallowed_insertions"],{crossing_deletions:crossing_deletions,different_replacements:different_replacements,swallowed_insertions:swallowed_insertions}).$freeze(),this.$check_policy_validity(),this.enforcer=this.$method("enforce_policy"),all_encompassing_range=this.source_buffer.$source_range().$adjust($hash2(["begin_pos","end_pos"],{begin_pos:-1,end_pos:1})),this.action_root=$$$($$($nesting,"TreeRewriter"),"Action").$new(all_encompassing_range,this.enforcer)},$TreeRewriter_check_range_validity$25.$$arity=-2),Opal.def($TreeRewriter_trigger_policy$27,"$empty?",$TreeRewriter_check_range_validity$25=function(){return this.action_root["$empty?"]()},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$merge!",$TreeRewriter_check_range_validity$25=function(with$){return this.$source_buffer()["$=="](with$.$source_buffer())||this.$raise("TreeRewriter are not for the same source_buffer"),this.action_root=this.action_root.$combine(with$.$action_root()),this},$TreeRewriter_check_range_validity$25.$$arity=1),Opal.def($TreeRewriter_trigger_policy$27,"$merge",$TreeRewriter_check_range_validity$25=function(with$){return this.$dup()["$merge!"](with$)},$TreeRewriter_check_range_validity$25.$$arity=1),Opal.def($TreeRewriter_trigger_policy$27,"$import!",$TreeRewriter_check_range_validity$25=function(foreign_rewriter,offset){var merge_effective_range,merge_with,contracted=nil;if(null==offset)offset=$hash2([],{});else if(!offset.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(offset=offset.$$smap.offset)&&(offset=0),$truthy(foreign_rewriter["$empty?"]())||(contracted=foreign_rewriter.$action_root().$contract(),merge_effective_range=$$$($$$($$$("::","Parser"),"Source"),"Range").$new(this.source_buffer,$rb_plus(contracted.$range().$begin_pos(),offset),$rb_plus(contracted.$range().$end_pos(),offset)),this.$check_range_validity(merge_effective_range),merge_with=contracted.$moved(this.source_buffer,offset),this.action_root=this.action_root.$combine(merge_with)),this},$TreeRewriter_check_range_validity$25.$$arity=-2),Opal.def($TreeRewriter_trigger_policy$27,"$replace",$TreeRewriter_check_range_validity$25=function(range,content){return this.$combine(range,$hash2(["replacement"],{replacement:content}))},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$wrap",$TreeRewriter_check_range_validity$25=function(range,insert_before,insert_after){return this.$combine(range,$hash2(["insert_before","insert_after"],{insert_before:insert_before.$to_s(),insert_after:insert_after.$to_s()}))},$TreeRewriter_check_range_validity$25.$$arity=3),Opal.def($TreeRewriter_trigger_policy$27,"$remove",$TreeRewriter_check_range_validity$25=function(range){return this.$replace(range,"".$freeze())},$TreeRewriter_check_range_validity$25.$$arity=1),Opal.def($TreeRewriter_trigger_policy$27,"$insert_before",$TreeRewriter_check_range_validity$25=function(range,content){return this.$wrap(range,content,nil)},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$insert_after",$TreeRewriter_check_range_validity$25=function(range,content){return this.$wrap(range,nil,content)},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$process",$TreeRewriter_check_range_validity$25=function(){var $$13,source=nil,chunks=nil,last_end=nil,source=this.source_buffer.$source(),chunks=[],last_end=0;return $send(this.action_root.$ordered_replacements(),"each",[],(($$13=function(range,replacement){null==$$13.$$s||$$13.$$s;return null==range&&(range=nil),null==replacement&&(replacement=nil),chunks["$<<"](source["$[]"](Opal.Range.$new(last_end,range.$begin_pos(),!0)))["$<<"](replacement),last_end=range.$end_pos()}).$$s=this,$$13.$$arity=2,$$13)),chunks["$<<"](source["$[]"](Opal.Range.$new(last_end,source.$length(),!0))),chunks.$join()},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$as_replacements",$TreeRewriter_check_range_validity$25=function(){return this.action_root.$ordered_replacements()},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$as_nested_actions",$TreeRewriter_check_range_validity$25=function(){return this.action_root.$nested_actions()},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$transaction",$TreeRewriter_transaction$16=function(){var $iter=$TreeRewriter_transaction$16.$$p,$yield=$iter||nil,self=this,previous=nil,restore_root=nil;return $iter&&($TreeRewriter_transaction$16.$$p=null),function(){try{return $yield!==nil||self.$raise(self.$class()+"#transaction requires block"),previous=self.in_transaction,self.in_transaction=!0,restore_root=self.action_root,Opal.yieldX($yield,[]),restore_root=nil,self}finally{$truthy(restore_root)&&(self.action_root=restore_root),self.in_transaction=previous}}()},$TreeRewriter_transaction$16.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$in_transaction?",$TreeRewriter_check_range_validity$25=function(){return this.in_transaction},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$inspect",$TreeRewriter_check_range_validity$25=function(){return"#<"+this.$class()+" "+this.$source_buffer().$name()+": "+this.$action_summary()+">"},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$insert_before_multi",$TreeRewriter_check_range_validity$25=function(range,text){return this.$class().$warn_of_deprecation(),this.$insert_before(range,text)},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$insert_after_multi",$TreeRewriter_check_range_validity$25=function(range,text){return this.$class().$warn_of_deprecation(),this.$insert_after(range,text)},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.const_set($nesting[0],"DEPRECATION_WARNING",["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.","Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()),$TreeRewriter_trigger_policy$27.$extend($$($nesting,"Deprecation")),$TreeRewriter_trigger_policy$27.$protected(),$TreeRewriter_trigger_policy$27.$attr_reader("action_root"),$TreeRewriter_trigger_policy$27.$private(),Opal.def($TreeRewriter_trigger_policy$27,"$action_summary",$TreeRewriter_check_range_validity$25=function(){var $$22,replacements=nil,suffix=nil,parts=nil,$case=(replacements=this.$as_replacements()).$size();return 0["$==="]($case)?"empty":($range(1,3,!1)["$==="]($case)||(replacements=replacements.$first(3),suffix="…"),parts=$send(replacements,"map",[],(($$22=function($a){null==$$22.$$s||$$22.$$s;var range=nil,str=nil;return null==$a&&($a=nil),$a=$a,range=null==($a=Opal.to_ary($a))[0]?nil:$a[0],str=null==$a[1]?nil:$a[1],$truthy(str["$empty?"]())?"-"+range.$to_range():range.$size()["$=="](0)?"+"+str.$inspect()+"@"+range.$begin_pos():"^"+str.$inspect()+"@"+range.$to_range()}).$$s=this,$$22.$$arity=1,$$22.$$has_top_level_mlhs_arg=!0,$$22)),$truthy(suffix)&&parts["$<<"](suffix),parts.$join(", "))},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.const_set($nesting[0],"ACTIONS",["accept","warn","raise"].$freeze()),Opal.def($TreeRewriter_trigger_policy$27,"$check_policy_validity",$TreeRewriter_check_range_validity$25=function(){var invalid=nil,invalid=$rb_minus(this.policy.$values(),$$($nesting,"ACTIONS"));return $truthy(invalid["$empty?"]())?nil:this.$raise($$($nesting,"ArgumentError"),"Invalid policy: "+invalid.$join(", "))},$TreeRewriter_check_range_validity$25.$$arity=0),Opal.def($TreeRewriter_trigger_policy$27,"$combine",$TreeRewriter_check_range_validity$25=function(range,attributes){var action;return range=this.$check_range_validity(range),action=$$$($$($nesting,"TreeRewriter"),"Action").$new(range,this.enforcer,Opal.to_hash(attributes)),this.action_root=this.action_root.$combine(action),this},$TreeRewriter_check_range_validity$25.$$arity=2),Opal.def($TreeRewriter_trigger_policy$27,"$check_range_validity",$TreeRewriter_check_range_validity$25=function(range){var lhs,rhs,self=this,$ret_or_1=nil;return $truthy($truthy((lhs=range.$begin_pos(),rhs=0,$ret_or_1="number"==typeof lhs&&"number"==typeof rhs?lhs"](rhs)}(range.$end_pos(),self.source_buffer.$source().$size()))&&self.$raise($$($nesting,"IndexError"),"The range "+range.$to_range()+" is outside the bounds of the source"),range},$TreeRewriter_check_range_validity$25.$$arity=1),Opal.def($TreeRewriter_trigger_policy$27,"$enforce_policy",$TreeRewriter_enforce_policy$26=function(event){var values,$iter=$TreeRewriter_enforce_policy$26.$$p,$yield=$iter||nil;return $iter&&($TreeRewriter_enforce_policy$26.$$p=null),!this.policy["$[]"](event)["$=="]("accept")&&$truthy(values=Opal.yieldX($yield,[]))?this.$trigger_policy(event,Opal.to_hash(values)):nil},$TreeRewriter_enforce_policy$26.$$arity=1),Opal.const_set($nesting[0],"POLICY_TO_LEVEL",$hash2(["warn","raise"],{warn:"warning",raise:"error"}).$freeze()),Opal.def($TreeRewriter_trigger_policy$27,"$trigger_policy",$TreeRewriter_trigger_policy$27=function(event,arguments$){var range,$a,diag,highlights,self=this,action=nil,$ret_or_2=nil;if(null==arguments$)arguments$=$hash2([],{});else if(!arguments$.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(range=arguments$.$$smap.range)&&(range=self.$raise()),null==($a=arguments$.$$smap.conflict)&&($a=nil),arguments$=Opal.kwrestargs(arguments$,{range:!0,conflict:!0}),action=$truthy($ret_or_2=self.policy["$[]"](event))?$ret_or_2:"raise",diag=$$$($$($nesting,"Parser"),"Diagnostic").$new($$($nesting,"POLICY_TO_LEVEL")["$[]"](action),event,arguments$,range),self.diagnostics.$process(diag),$truthy($a)&&($a=$a,range=null==($a=Opal.to_ary($a))[0]?nil:$a[0],highlights=$slice.call($a,1),diag=$$$($$($nesting,"Parser"),"Diagnostic").$new($$($nesting,"POLICY_TO_LEVEL")["$[]"](action),event+"_conflict",arguments$,range,highlights),self.diagnostics.$process(diag)),action["$=="]("raise")?self.$raise($$$($$($nesting,"Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):nil},$TreeRewriter_trigger_policy$27.$$arity=-2),nil&&"trigger_policy"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/tree_rewriter/action"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_ge(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$freeze","$empty?","$do_combine","$==","$<<","$begin","$concat","$flat_map","$to_proc","$end","$!","$insert_before","$insert_after","$replacement","$raise","$insertion?","$with","$begin_pos","$range","$first","$children","$end_pos","$last","$new","$+","$map","$moved","$protected","$swallow","$class","$merge","$place_in_hierarchy","$analyse_hierarchy","$[]","$fuse_deletions","$combine_children","$inject","$size","$bsearch","$bsearch_child_index","$>","$-","$>=","$===","$<=>","$<=","$check_fusible","$<","$shift","$pop","$compact!","$each","$call","$call_enforcer_for_merge","$!=","$select"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Source")].concat($nesting);return function($Action_swallow$27,$Action_call_enforcer_for_merge$25){var $Action_bsearch_child_index$16,$Action_swallow$27=$klass($Action_swallow$27,null,"Action");[$Action_swallow$27].concat($Action_call_enforcer_for_merge$25);return $Action_swallow$27.$$prototype.insert_before=$Action_swallow$27.$$prototype.insert_after=$Action_swallow$27.$$prototype.children=$Action_swallow$27.$$prototype.replacement=$Action_swallow$27.$$prototype.range=$Action_swallow$27.$$prototype.enforcer=nil,$Action_swallow$27.$attr_reader("range","replacement","insert_before","insert_after"),Opal.def($Action_swallow$27,"$initialize",$Action_call_enforcer_for_merge$25=function(range,enforcer,children){var insert_before,replacement,$a;if(null==children)children=$hash2([],{});else if(!children.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(insert_before=children.$$smap.insert_before)&&(insert_before=""),null==(replacement=children.$$smap.replacement)&&(replacement=nil),null==($a=children.$$smap.insert_after)&&($a=""),null==(children=children.$$smap.children)&&(children=[]),$a=[range,enforcer,children.$freeze(),insert_before.$freeze(),replacement,$a.$freeze()],this.range=$a[0],this.enforcer=$a[1],this.children=$a[2],this.insert_before=$a[3],this.replacement=$a[4],this.insert_after=$a[5],this.$freeze()},$Action_call_enforcer_for_merge$25.$$arity=-3),Opal.def($Action_swallow$27,"$combine",$Action_call_enforcer_for_merge$25=function(action){return $truthy(action["$empty?"]())?this:this.$do_combine(action)},$Action_call_enforcer_for_merge$25.$$arity=1),Opal.def($Action_swallow$27,"$empty?",$Action_call_enforcer_for_merge$25=function(){var $ret_or_1,$ret_or_4,$ret_or_5,self=this,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=self.insert_before["$empty?"]())?self.insert_after["$empty?"]():$ret_or_3)?self.children["$empty?"]():$ret_or_2)?$truthy($ret_or_4=self.replacement["$=="](nil))?$ret_or_4:$truthy($ret_or_5=self.replacement["$empty?"]())?self.range["$empty?"]():$ret_or_5:$ret_or_1},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$ordered_replacements",$Action_call_enforcer_for_merge$25=function(){var reps=nil,reps=[];return $truthy(this.insert_before["$empty?"]())||reps["$<<"]([this.range.$begin(),this.insert_before]),$truthy(this.replacement)&&reps["$<<"]([this.range,this.replacement]),reps.$concat($send(this.children,"flat_map",[],"ordered_replacements".$to_proc())),$truthy(this.insert_after["$empty?"]())||reps["$<<"]([this.range.$end(),this.insert_after]),reps},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$nested_actions",$Action_call_enforcer_for_merge$25=function(){var self=this,actions=nil,$ret_or_6=nil,actions=[];return $truthy($truthy($ret_or_6=self.insert_before["$empty?"]()["$!"]())?$ret_or_6:self.insert_after["$empty?"]()["$!"]())&&actions["$<<"](["wrap",self.range,self.insert_before,self.insert_after]),$truthy(self.replacement)&&actions["$<<"](["replace",self.range,self.replacement]),actions.$concat($send(self.children,"flat_map",[],"nested_actions".$to_proc()))},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$insertion?",$Action_call_enforcer_for_merge$25=function(){var $ret_or_7,$ret_or_9,self=this,$ret_or_8=nil;return $truthy($ret_or_7=$truthy($ret_or_8=self.$insert_before()["$empty?"]()["$!"]())?$ret_or_8:self.$insert_after()["$empty?"]()["$!"]())?$ret_or_7:$truthy($ret_or_9=self.$replacement())?self.$replacement()["$empty?"]()["$!"]():$ret_or_9},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$contract",$Action_call_enforcer_for_merge$25=function(){var range;return $truthy(this["$empty?"]())&&this.$raise("Empty actions can not be contracted"),$truthy(this["$insertion?"]())?this:(range=this.range.$with($hash2(["begin_pos","end_pos"],{begin_pos:this.$children().$first().$range().$begin_pos(),end_pos:this.$children().$last().$range().$end_pos()})),this.$with($hash2(["range"],{range:range})))},$Action_call_enforcer_for_merge$25.$$arity=0),Opal.def($Action_swallow$27,"$moved",$Action_call_enforcer_for_merge$25=function(source_buffer,offset){var $$9,moved_range=$$$($$$($$$("::","Parser"),"Source"),"Range").$new(source_buffer,$rb_plus(this.range.$begin_pos(),offset),$rb_plus(this.range.$end_pos(),offset));return this.$with($hash2(["range","children"],{range:moved_range,children:$send(this.$children(),"map",[],(($$9=function(child){null==$$9.$$s||$$9.$$s;return null==child&&(child=nil),child.$moved(source_buffer,offset)}).$$s=this,$$9.$$arity=1,$$9))}))},$Action_call_enforcer_for_merge$25.$$arity=2),$Action_swallow$27.$protected(),$Action_swallow$27.$attr_reader("children"),Opal.def($Action_swallow$27,"$with",$Action_call_enforcer_for_merge$25=function(insert_after){var range,enforcer,children,insert_before,replacement;if(null==insert_after)insert_after=$hash2([],{});else if(!insert_after.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(range=insert_after.$$smap.range)&&(range=this.range),null==(enforcer=insert_after.$$smap.enforcer)&&(enforcer=this.enforcer),null==(children=insert_after.$$smap.children)&&(children=this.children),null==(insert_before=insert_after.$$smap.insert_before)&&(insert_before=this.insert_before),null==(replacement=insert_after.$$smap.replacement)&&(replacement=this.replacement),null==(insert_after=insert_after.$$smap.insert_after)&&(insert_after=this.insert_after),$truthy(replacement)&&(children=this.$swallow(children)),this.$class().$new(range,enforcer,$hash2(["children","insert_before","replacement","insert_after"],{children:children,insert_before:insert_before,replacement:replacement,insert_after:insert_after}))},$Action_call_enforcer_for_merge$25.$$arity=-1),Opal.def($Action_swallow$27,"$do_combine",$Action_call_enforcer_for_merge$25=function(action){return action.$range()["$=="](this.range)?this.$merge(action):this.$place_in_hierarchy(action)},$Action_call_enforcer_for_merge$25.$$arity=1),Opal.def($Action_swallow$27,"$place_in_hierarchy",$Action_call_enforcer_for_merge$25=function(action){var extra_sibbling,self=this,family=nil,family=self.$analyse_hierarchy(action);return $truthy(family["$[]"]("fusible"))?self.$fuse_deletions(action,family["$[]"]("fusible"),[].concat(Opal.to_a(family["$[]"]("sibbling_left"))).concat(Opal.to_a(family["$[]"]("child"))).concat(Opal.to_a(family["$[]"]("sibbling_right")))):(extra_sibbling=$truthy(family["$[]"]("parent"))?family["$[]"]("parent").$do_combine(action):$truthy(family["$[]"]("child"))?action.$with($hash2(["children","enforcer"],{children:family["$[]"]("child"),enforcer:self.enforcer})).$combine_children(action.$children()):action,self.$with($hash2(["children"],{children:[].concat(Opal.to_a(family["$[]"]("sibbling_left"))).concat([extra_sibbling]).concat(Opal.to_a(family["$[]"]("sibbling_right")))})))},$Action_call_enforcer_for_merge$25.$$arity=1),Opal.def($Action_swallow$27,"$combine_children",$Action_call_enforcer_for_merge$25=function(more_children){var $$14;return $send(more_children,"inject",[this],(($$14=function(parent,new_child){null==$$14.$$s||$$14.$$s;return null==parent&&(parent=nil),null==new_child&&(new_child=nil),parent.$place_in_hierarchy(new_child)}).$$s=this,$$14.$$arity=2,$$14))},$Action_call_enforcer_for_merge$25.$$arity=1),Opal.def($Action_swallow$27,"$fuse_deletions",$Action_call_enforcer_for_merge$25=function(action,fusible,other_sibblings){var without_fusible=nil,without_fusible=this.$with($hash2(["children"],{children:other_sibblings})),fused_range=$send([action].concat(Opal.to_a(fusible)),"map",[],"range".$to_proc()).$inject("join"),fused_deletion=action.$with($hash2(["range"],{range:fused_range}));return without_fusible.$do_combine(fused_deletion)},$Action_call_enforcer_for_merge$25.$$arity=3),Opal.def($Action_swallow$27,"$bsearch_child_index",$Action_bsearch_child_index$16=function(from){var $$17,size,$ret_or_10,$iter=$Action_bsearch_child_index$16.$$p,$yield=$iter||nil;return $iter&&($Action_bsearch_child_index$16.$$p=null),null==from&&(from=0),size=this.children.$size(),$truthy($ret_or_10=$send(Opal.Range.$new(from,size,!0),"bsearch",[],(($$17=function(i){var self=null==$$17.$$s?this:$$17.$$s;return null==self.children&&(self.children=nil),null==i&&(i=nil),Opal.yield1($yield,self.children["$[]"](i))}).$$s=this,$$17.$$arity=1,$$17)))?$ret_or_10:size},$Action_bsearch_child_index$16.$$arity=-1),Opal.def($Action_swallow$27,"$analyse_hierarchy",$Action_call_enforcer_for_merge$25=function(action){var $$19,$$20,overlap_left,overlap_right,$ret_or_11,$ret_or_12,r=nil,left_index=nil,right_index=nil,lhs=nil,rhs=nil,parent=nil,contained=nil,fusible=nil,r=action.$range(),start=(left_index=$send(this,"bsearch_child_index",[],(($$19=function(child){null==$$19.$$s||$$19.$$s;return null==child&&(child=nil),$rb_gt(child.$range().$end_pos(),r.$begin_pos())}).$$s=this,$$19.$$arity=1,$$19)))["$=="](0)?0:$rb_minus(left_index,1),lhs=$rb_minus(right_index=$send(this,"bsearch_child_index",[start],(($$20=function(child){null==$$20.$$s||$$20.$$s;return null==child&&(child=nil),$rb_ge(child.$range().$begin_pos(),r.$end_pos())}).$$s=this,$$20.$$arity=1,$$20)),left_index);return 0["$==="](rhs=lhs)||((-1)["$==="](rhs)?(left_index=$rb_minus(left_index,1),right_index=$rb_plus(right_index,1),parent=this.children["$[]"](left_index)):(overlap_left=this.children["$[]"](left_index).$range().$begin_pos()["$<=>"](r.$begin_pos()),overlap_right=this.children["$[]"]($rb_minus(right_index,1)).$range().$end_pos()["$<=>"](r.$end_pos()),$truthy($truthy($ret_or_11=$truthy($ret_or_12=lhs["$=="](1))?(rhs=0,"number"==typeof(lhs=overlap_left)&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)):$ret_or_12)?$rb_ge(overlap_right,0):$ret_or_11)?parent=this.children["$[]"](left_index):(contained=this.children["$[]"](Opal.Range.$new(left_index,right_index,!0)),fusible=this.$check_fusible(action,function(){return $truthy((rhs=0,"number"==typeof(lhs=overlap_left)&&"number"==typeof rhs?lhs","$private","$source_line","$*","$length","$each","$line_range","$intersect","$column_range","$size","$[]=","$!","$>=","$map","$name","$!=","$resize","$=~","$source","$adjust"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Diagnostic_last_line_only$8,$Diagnostic_first_line_only$7){var $Diagnostic_last_line_only$8=$klass($Diagnostic_last_line_only$8,null,"Diagnostic"),$nesting=[$Diagnostic_last_line_only$8].concat($Diagnostic_first_line_only$7);return $Diagnostic_last_line_only$8.$$prototype.reason=$Diagnostic_last_line_only$8.$$prototype.arguments=$Diagnostic_last_line_only$8.$$prototype.location=$Diagnostic_last_line_only$8.$$prototype.level=$Diagnostic_last_line_only$8.$$prototype.highlights=nil,Opal.const_set($nesting[0],"LEVELS",["note","warning","error","fatal"].$freeze()),$Diagnostic_last_line_only$8.$attr_reader("level","reason","arguments"),$Diagnostic_last_line_only$8.$attr_reader("location","highlights"),Opal.def($Diagnostic_last_line_only$8,"$initialize",$Diagnostic_first_line_only$7=function(level,reason,arguments$,location,highlights){var $ret_or_1=nil;return null==highlights&&(highlights=[]),$truthy($$($nesting,"LEVELS")["$include?"](level))||this.$raise($$($nesting,"ArgumentError"),"Diagnostic#level must be one of "+$$($nesting,"LEVELS").$join(", ")+"; "+level.$inspect()+" provided."),$truthy(location)||this.$raise("Expected a location"),this.level=level,this.reason=reason,this.arguments=($truthy($ret_or_1=arguments$)?$ret_or_1:$hash2([],{})).$dup().$freeze(),this.location=location,this.highlights=highlights.$dup().$freeze(),this.$freeze()},$Diagnostic_first_line_only$7.$$arity=-5),Opal.def($Diagnostic_last_line_only$8,"$message",$Diagnostic_first_line_only$7=function(){return $$($nesting,"Messages").$compile(this.reason,this.arguments)},$Diagnostic_first_line_only$7.$$arity=0),Opal.def($Diagnostic_last_line_only$8,"$render",$Diagnostic_first_line_only$7=function(){var last_line,last_lineno,last_column,self=this,$a=nil,rhs=nil,lhs=nil;return $truthy($truthy($a=self.location.$line()["$=="](self.location.$last_line()))?$a:self.location["$is?"]("\n"))?$rb_plus([self.location+": "+self.level+": "+self.$message()],self.$render_line(self.location)):(rhs=self.$first_line_only(self.location),last_line=self.$last_line_only(self.location),lhs=$rb_plus($rb_minus(self.location.$last_line(),self.location.$line()),1),$a=self.location.$source_buffer().$decompose_position(self.location.$end_pos()),last_lineno=null==($a=Opal.to_ary($a))[0]?nil:$a[0],last_column=null==$a[1]?nil:$a[1],$rb_plus($rb_plus([self.location+"-"+last_lineno+":"+last_column+": "+self.level+": "+self.$message()],self.$render_line(rhs,(rhs=2,"number"==typeof(lhs=lhs)&&"number"==typeof rhs?rhs"](rhs)),!1)),self.$render_line(last_line,!1,!0)))},$Diagnostic_first_line_only$7.$$arity=0),$Diagnostic_last_line_only$8.$private(),Opal.def($Diagnostic_last_line_only$8,"$render_line",$Diagnostic_first_line_only$7=function(range,ellipsis,rhs){var $$5,$$6,$ret_or_3,lhs,source_line=nil,highlight_line=nil,$writer=nil;return null==ellipsis&&(ellipsis=!1),null==rhs&&(rhs=!1),source_line=range.$source_line(),highlight_line=$rb_times(" ",source_line.$length()),$send(this.highlights,"each",[],(($$5=function(highlight){var line_range,$writer;null==$$5.$$s||$$5.$$s;return null==highlight&&(highlight=nil),line_range=range.$source_buffer().$line_range(range.$line()),$truthy(highlight=highlight.$intersect(line_range))?($writer=[highlight.$column_range(),$rb_times("~",highlight.$size())],$send(highlight_line,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}).$$s=this,$$5.$$arity=1,$$5)),$truthy(range["$is?"]("\n"))?highlight_line=$rb_plus(highlight_line,"^"):($writer=$truthy($truthy($ret_or_3=rhs["$!"]())?(lhs=range.$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)):$ret_or_3)?[range.$column_range(),$rb_plus("^",$rb_times("~",$rb_minus(range.$size(),1)))]:[range.$column_range(),$rb_times("~",range.$size())],$send(highlight_line,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(ellipsis)&&(highlight_line=$rb_plus(highlight_line,"...")),$send([source_line,highlight_line],"map",[],(($$6=function(line){null==$$6.$$s||$$6.$$s;return null==line&&(line=nil),range.$source_buffer().$name()+":"+range.$line()+": "+line}).$$s=this,$$6.$$arity=1,$$6))},$Diagnostic_first_line_only$7.$$arity=-2),Opal.def($Diagnostic_last_line_only$8,"$first_line_only",$Diagnostic_first_line_only$7=function(range){return $truthy(range.$line()["$!="](range.$last_line()))?range.$resize(range.$source()["$=~"](/\n/)):range},$Diagnostic_first_line_only$7.$$arity=1),Opal.def($Diagnostic_last_line_only$8,"$last_line_only",$Diagnostic_last_line_only$8=function(range){return $truthy(range.$line()["$!="](range.$last_line()))?range.$adjust($hash2(["begin_pos"],{begin_pos:range.$source()["$=~"](/[^\n]*$/)})):range},$Diagnostic_last_line_only$8.$$arity=1),nil&&"last_line_only"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/diagnostic/engine"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$attr_accessor","$ignore?","$call","$raise?","$raise","$protected","$==","$level"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Engine_raise$ques$4,$Engine_ignore$ques$3){var $Engine_raise$ques$4=$klass($Engine_raise$ques$4,null,"Engine"),$nesting=[$Engine_raise$ques$4].concat($Engine_ignore$ques$3);return $Engine_raise$ques$4.$$prototype.consumer=$Engine_raise$ques$4.$$prototype.ignore_warnings=$Engine_raise$ques$4.$$prototype.all_errors_are_fatal=nil,$Engine_raise$ques$4.$attr_accessor("consumer"),$Engine_raise$ques$4.$attr_accessor("all_errors_are_fatal"),$Engine_raise$ques$4.$attr_accessor("ignore_warnings"),Opal.def($Engine_raise$ques$4,"$initialize",$Engine_ignore$ques$3=function(consumer){return null==consumer&&(consumer=nil),this.consumer=consumer,this.all_errors_are_fatal=!1,this.ignore_warnings=!1},$Engine_ignore$ques$3.$$arity=-1),Opal.def($Engine_raise$ques$4,"$process",$Engine_ignore$ques$3=function(diagnostic){return $truthy(this["$ignore?"](diagnostic))||$truthy(this.consumer)&&this.consumer.$call(diagnostic),$truthy(this["$raise?"](diagnostic))&&this.$raise($$$($$($nesting,"Parser"),"SyntaxError"),diagnostic),this},$Engine_ignore$ques$3.$$arity=1),$Engine_raise$ques$4.$protected(),Opal.def($Engine_raise$ques$4,"$ignore?",$Engine_ignore$ques$3=function(diagnostic){var $ret_or_1;return $truthy($ret_or_1=this.ignore_warnings)?diagnostic.$level()["$=="]("warning"):$ret_or_1},$Engine_ignore$ques$3.$$arity=1),Opal.def($Engine_raise$ques$4,"$raise?",$Engine_raise$ques$4=function(diagnostic){var $ret_or_2,$ret_or_3=nil;return $truthy($ret_or_2=$truthy($ret_or_3=this.all_errors_are_fatal)?diagnostic.$level()["$=="]("error"):$ret_or_3)?$ret_or_2:diagnostic.$level()["$=="]("fatal")},$Engine_raise$ques$4.$$arity=1),nil&&"raise?"}($$($nesting,"Diagnostic"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/static_environment"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$reset","$[]","$push","$dup","$pop","$add","$to_sym","$include?","$declare","$declared?","$empty?"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($StaticEnvironment_empty$ques$12,$StaticEnvironment_declared_anonymous_blockarg$ques$11){var $StaticEnvironment_empty$ques$12=$klass($StaticEnvironment_empty$ques$12,null,"StaticEnvironment"),$nesting=[$StaticEnvironment_empty$ques$12].concat($StaticEnvironment_declared_anonymous_blockarg$ques$11);return $StaticEnvironment_empty$ques$12.$$prototype.stack=$StaticEnvironment_empty$ques$12.$$prototype.variables=nil,Opal.const_set($nesting[0],"FORWARD_ARGS","FORWARD_ARGS"),Opal.const_set($nesting[0],"ANONYMOUS_BLOCKARG","ANONYMOUS_BLOCKARG"),Opal.def($StaticEnvironment_empty$ques$12,"$initialize",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.$reset()},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$reset",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.variables=$$($nesting,"Set")["$[]"](),this.stack=[]},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$extend_static",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.stack.$push(this.variables),this.variables=$$($nesting,"Set")["$[]"](),this},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$extend_dynamic",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.stack.$push(this.variables),this.variables=this.variables.$dup(),this},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$unextend",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.variables=this.stack.$pop(),this},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$declare",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(name){return this.variables.$add(name.$to_sym()),this},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=1),Opal.def($StaticEnvironment_empty$ques$12,"$declared?",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(name){return this.variables["$include?"](name.$to_sym())},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=1),Opal.def($StaticEnvironment_empty$ques$12,"$declare_forward_args",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.$declare($$($nesting,"FORWARD_ARGS"))},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$declared_forward_args?",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this["$declared?"]($$($nesting,"FORWARD_ARGS"))},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$declare_anonymous_blockarg",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this.$declare($$($nesting,"ANONYMOUS_BLOCKARG"))},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$declared_anonymous_blockarg?",$StaticEnvironment_declared_anonymous_blockarg$ques$11=function(){return this["$declared?"]($$($nesting,"ANONYMOUS_BLOCKARG"))},$StaticEnvironment_declared_anonymous_blockarg$ques$11.$$arity=0),Opal.def($StaticEnvironment_empty$ques$12,"$empty?",$StaticEnvironment_empty$ques$12=function(){return this.stack["$empty?"]()},$StaticEnvironment_empty$ques$12.$$arity=0),nil&&"empty?"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_le(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_ge(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$!=","$emit_comment","$tok","$literal","$flush_string","$extend_content","$emit","$heredoc?","$saved_herebody_s=","$start_interp_brace","$[]=","$diagnostic","$range","$str_s","$gsub","$version?","$nest_and_try_closing","$heredoc_e","$pop_literal","$infer_indent_level","$words?","$!","$eof_codepoint?","$extend_space","$extend_string","$>=","$active?","$slice","$start_with?","$chr","$munge_escape?","$regexp?","$match","$squiggly_heredoc?","$supports_line_continuation_via_slash?","$include?","$scan","$join","$=~","$to_i","$stack_pop","$emit_table","$push_literal","$in_argdef","$arg_or_cmdarg","$<","$emit_do","$nil?","$declared?","$last","$getbyte","$inspect","$end_with?","$empty?","$index","$call","$Float","$to_f","$length","$lambda","$Rational","$Complex","$each","$encode_escape","$%","$in_kwarg","$end_interp_brace_and_try_closing","$lexpop","$saved_herebody_s","$next_state_for_literal","$rstrip","$&","$|","$lex_error","$protected","$force_encoding","$process","$backslash_delimited?","$interpolate?","$lex_en_interp_backslash_delimited_words","$lex_en_plain_backslash_delimited_words","$lex_en_plain_words","$lex_en_interp_backslash_delimited","$lex_en_plain_backslash_delimited","$dedent_level","$type","$lex_en_regexp_modifiers","$upcase"]),function(self,$Lexer_pop_literal$57){var $Lexer$58,$writer,self=$klass(self,null,"Lexer"),$nesting=[self].concat($Lexer_pop_literal$57);return self.$$prototype.source_buffer=self.$$prototype.source_pts=self.$$prototype.cs=self.$$prototype.cmdarg_stack=self.$$prototype.cmdarg=self.$$prototype.cond_stack=self.$$prototype.cond=self.$$prototype.dedent_level=self.$$prototype.token_queue=self.$$prototype.p=self.$$prototype.command_start=self.$$prototype.herebody_s=self.$$prototype.sharp_s=self.$$prototype.ts=self.$$prototype.te=self.$$prototype.top=self.$$prototype.stack=self.$$prototype.version=self.$$prototype.escape_s=self.$$prototype.escape=self.$$prototype.act=self.$$prototype.context=self.$$prototype.static_env=self.$$prototype.newline_s=self.$$prototype.lambda_stack=self.$$prototype.paren_nest=self.$$prototype.num_digits_s=self.$$prototype.num_suffix_s=self.$$prototype.num_base=self.$$prototype.num_xfrm=self.$$prototype.eq_begin_s=self.$$prototype.cs_before_block_comment=self.$$prototype.tokens=self.$$prototype.comments=self.$$prototype.diagnostics=self.$$prototype.literal_stack=nil,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_trans_keys"),self.$private("_lex_trans_keys","_lex_trans_keys=")}(Opal.get_singleton_class(self),$nesting),$writer=[[0,0,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,46,46,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,127,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0,92,9,32,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,48,57,0,127,0,26,0,35,9,32,36,123,0,127,48,57,0,127,0,32,9,32,65,122,65,122,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,46,46,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,0,127,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,10,10,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,122,0,0,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,46,46,46,46,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0]],$send(self,"_lex_trans_keys=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_key_spans"),self.$private("_lex_key_spans","_lex_key_spans=")}(Opal.get_singleton_class(self),$nesting),$writer=[[0,1,1,1,1,1,1,1,1,1,27,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,128,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,96,24,0,1,1,1,24,1,1,93,24,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,24,27,93,27,36,88,128,10,128,27,36,24,88,128,10,128,33,24,58,58,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,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,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,128,128,128,128,128,1,128,128,24,1,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,128,24,0,20,1,84,84,84,1,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,123,0,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,55,0,128,128,128,0,1,0,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,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,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,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,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,84,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,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,0,64,0,84,84,84,1,1,1,1,1,52,1,92,101,91,1]],$send(self,"_lex_key_spans=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_index_offsets"),self.$private("_lex_index_offsets","_lex_index_offsets=")}(Opal.get_singleton_class(self),$nesting),$writer=[[0,0,2,4,6,8,10,12,14,16,18,46,175,304,433,562,609,731,853,947,1069,1191,1238,1360,1482,1516,1518,1612,1734,1838,1967,2096,2225,2354,2401,2523,2645,2739,2861,2983,3030,3152,3274,3308,3310,3404,3526,3630,3759,3888,4017,4146,4275,4404,4533,4662,4791,4920,5049,5178,5307,5436,5565,5567,5569,5571,5700,5702,5704,5706,5708,5837,5966,6095,6224,6353,6482,6611,6740,6869,6998,7127,7256,7385,7514,7643,7772,7901,8030,8032,8034,8036,8038,8048,8050,8052,8054,8056,8058,8060,8062,8064,8193,8195,8324,8409,8411,8496,8498,8500,8502,8504,8506,8508,8637,8639,8724,8809,8894,8979,9064,9066,9195,9324,9391,9393,9522,9651,9653,9655,9657,9659,9788,9876,9878,9925,10047,10169,10263,10385,10507,10554,10676,10798,10832,10834,10928,11050,11154,11283,11412,11541,11670,11799,11928,11930,11932,12061,12077,12088,12099,12110,12121,12123,12125,12127,12129,12131,12133,12135,12264,12266,12351,12436,12521,12606,12691,12776,12778,12780,12865,12950,12952,12954,12956,12958,12960,13057,13082,13083,13085,13087,13089,13114,13116,13118,13212,13237,13326,13455,13466,13595,13717,13718,13719,13728,13737,13738,13739,13833,13834,13835,13836,13930,13932,13933,13934,13935,14029,14085,14141,14142,14198,14254,14255,14302,14396,14490,14491,14492,14586,14642,14698,14699,14746,14748,14842,14919,14975,15031,15087,15088,15215,15342,15343,15470,15471,15598,15725,15852,15979,15980,16107,16234,16361,16488,16615,16742,16743,16744,16800,16801,16895,16984,17113,17124,17253,17375,17376,17377,17386,17395,17396,17397,17491,17492,17493,17494,17588,17590,17591,17592,17593,17687,17743,17799,17800,17856,17912,17913,17960,18054,18148,18149,18150,18244,18300,18356,18357,18404,18406,18500,18577,18633,18689,18745,18746,18873,19e3,19001,19128,19129,19256,19383,19510,19637,19638,19765,19892,20019,20146,20273,20400,20401,20402,20458,20459,20553,20578,20606,20700,20728,20765,20854,20983,20994,21123,21151,21188,21213,21302,21431,21442,21571,21605,21630,21689,21748,21778,21907,21918,22047,22176,22305,22434,22459,22460,22527,22529,22531,22660,22789,22800,22802,22804,22806,22808,22810,22813,22815,22882,22884,22887,23016,23145,23274,23403,23532,23661,23790,23792,23794,23923,24052,24181,24310,24439,24568,24697,24826,24955,25084,25213,25342,25471,25600,25729,25858,25987,26116,26245,26374,26503,26632,26761,26890,27019,27148,27277,27406,27535,27664,27793,27922,28051,28180,28309,28438,28567,28696,28825,28954,29083,29212,29341,29470,29599,29728,29857,29986,30115,30244,30373,30502,30631,30760,30889,31018,31147,31276,31405,31534,31663,31792,31921,32050,32179,32308,32437,32566,32695,32824,32953,33082,33211,33340,33469,33598,33727,33856,33985,34114,34243,34372,34501,34503,34632,34761,34786,34788,34790,34792,34794,34795,34924,35053,35055,35056,35081,35082,35149,35151,35153,35155,35157,35159,35162,35164,35231,35233,35236,35365,35367,35369,35371,35499,35628,35691,35745,35799,35800,35854,35909,35911,35913,35915,35940,35941,36070,36071,36188,36189,36191,36193,36194,36248,36250,36252,36254,36279,36281,36410,36412,36414,36416,36418,36547,36676,36805,36806,36935,36937,37062,37087,37089,37091,37093,37094,37096,37097,37226,37355,37380,37381,37383,37385,37387,37388,37517,37646,37775,37904,38033,38162,38291,38420,38549,38678,38807,38936,39065,39194,39323,39452,39581,39710,39715,39716,39783,39785,39786,39787,39788,39813,39815,39840,39907,39909,39911,40040,40065,40066,40087,40089,40174,40259,40344,40346,40348,40350,40378,40507,40636,40638,40639,40706,40709,40710,40711,40712,40713,40780,40909,40920,40922,40924,40926,40929,40931,40933,40936,41065,41076,41205,41207,41209,41212,41213,41239,41270,41272,41274,41341,41344,41468,41469,41598,41727,41849,41850,41851,41860,41869,41870,41871,41965,41966,41967,41968,42062,42064,42065,42066,42067,42161,42217,42273,42274,42330,42386,42387,42434,42528,42622,42623,42624,42718,42774,42830,42831,42878,42880,42974,43051,43107,43163,43219,43220,43347,43474,43475,43602,43603,43730,43857,43984,44111,44112,44239,44366,44493,44620,44747,44874,45001,45128,45255,45382,45509,45636,45763,45890,46017,46144,46271,46398,46525,46526,46527,46583,46584,46713,46842,46971,46972,46974,46975,47104,47233,47362,47491,47620,47749,47878,48007,48136,48265,48394,48523,48652,48781,48910,49039,49168,49297,49426,49555,49684,49813,49942,50071,50200,50329,50458,50587,50716,50845,50974,51103,51232,51361,51490,51619,51748,51877,52006,52135,52264,52393,52522,52651,52780,52909,53038,53167,53296,53425,53554,53683,53812,53941,54070,54199,54328,54457,54586,54715,54844,54911,55040,55169,55298,55427,55556,55685,55814,55943,56072,56201,56330,56459,56588,56717,56846,56975,57104,57233,57362,57491,57620,57749,57878,58007,58136,58137,58202,58296,58321,58322,58324,58326,58328,58329,58458,58587,58612,58613,58615,58617,58619,58620,58749,58878,58880,58881,58906,58907,58974,58976,58978,59107,59236,59247,59249,59274,59275,59276,59297,59300,59313,59315,59317,59372,59421,59497,59565,59581,59640,59642,59643,59649,59650,59651,59719,59787,59855,59923,59934,59936,59937,59943,59945,59946,59947,60015,60083,60151,60219,60287,60355,60423,60491,60561,60629,60699,60767,60769,60772,60774,60841,60843,60846,60975,61104,61105,61234,61363,61492,61621,61750,61879,61880,61882,61883,61884,62013,62142,62271,62400,62529,62658,62787,62916,63045,63174,63303,63432,63561,63690,63819,63948,64077,64206,64335,64464,64593,64722,64851,64980,65109,65238,65367,65496,65625,65754,65883,66012,66141,66270,66399,66528,66657,66742,66871,67e3,67129,67258,67387,67516,67645,67774,67903,68032,68161,68290,68419,68548,68677,68806,68935,69064,69193,69322,69451,69580,69709,69838,69967,70096,70225,70354,70483,70612,70741,70870,70999,71128,71257,71386,71515,71644,71773,71902,72031,72160,72289,72418,72547,72676,72805,72934,73063,73192,73321,73450,73579,73708,73837,73966,74095,74224,74353,74482,74611,74740,74869,74998,75127,75128,75193,75194,75279,75364,75449,75451,75453,75455,75457,75459,75512,75514,75607,75709,75801]],$send(self,"_lex_index_offsets=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_indicies"),self.$private("_lex_indicies","_lex_indicies=")}(Opal.get_singleton_class(self),$nesting),$writer=[[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,0,0,10,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,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,14,14,12,14,12,14,14,12,12,14,14,14,15,14,14,16,16,16,16,16,16,16,16,16,16,14,14,14,14,14,14,14,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,12,14,12,12,13,14,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,12,12,12,14,12,13,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,14,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,14,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,18,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,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,12,12,12,12,12,13,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,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,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,12,12,12,12,12,13,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,20,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,24,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,22,22,22,22,22,22,22,22,25,22,19,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,26,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,22,22,22,22,22,22,22,22,25,22,19,27,27,27,19,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,19,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,19,30,30,30,19,30,30,30,30,30,31,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,32,30,19,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,32,30,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,33,20,19,34,34,34,19,34,34,34,34,34,35,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,19,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,34,36,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,37,34,34,34,34,34,34,38,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,39,34,19,34,34,34,19,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,19,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,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,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,39,34,40,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,41,19,41,19,19,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,44,42,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,26,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,22,22,22,22,22,22,22,22,25,22,19,45,45,45,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,45,45,45,45,45,45,45,46,46,46,46,46,46,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,46,46,46,46,46,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,47,49,47,49,49,47,47,49,49,49,50,49,49,51,51,51,51,51,51,51,51,51,51,49,49,49,49,49,49,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,49,47,47,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,49,47,48,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,49,49,49,49,49,49,49,49,47,47,47,47,47,47,47,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,47,47,47,47,49,47,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,47,47,47,47,47,49,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,52,52,52,52,52,52,52,52,52,52,47,47,47,47,47,47,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,52,52,52,52,52,52,52,52,52,52,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,55,54,57,57,57,54,57,57,57,57,57,58,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,59,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,61,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,62,62,62,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,54,65,65,65,54,65,65,65,65,65,66,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,67,65,54,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,67,65,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,68,55,54,69,69,69,54,69,69,69,69,69,70,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,71,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,72,69,69,69,69,69,69,73,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,69,54,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,69,75,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,76,54,76,54,54,77,77,77,54,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,54,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,79,77,54,57,57,57,54,57,57,57,57,57,58,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,61,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,80,80,80,54,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,54,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,80,80,80,80,80,80,80,81,81,81,81,81,81,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,80,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,82,84,82,84,84,82,82,84,84,84,85,84,84,86,86,86,86,86,86,86,86,86,86,84,84,84,84,84,84,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,84,82,82,83,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,84,82,83,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,84,84,84,84,84,84,84,84,82,82,82,82,82,82,82,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,82,82,82,82,84,82,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,82,82,82,82,82,84,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,87,87,87,87,87,87,87,87,87,87,82,82,82,82,82,82,88,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,87,87,87,87,87,87,87,87,87,87,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,91,91,89,91,89,91,91,89,89,91,91,91,92,91,91,93,93,93,93,93,93,93,93,93,93,91,91,91,91,91,91,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,91,89,89,90,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,91,89,90,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,91,91,91,91,91,91,91,91,91,91,89,89,89,89,89,89,89,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,89,89,89,89,91,89,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,89,89,89,89,89,91,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,94,94,94,94,94,94,94,94,94,94,89,89,89,89,89,89,95,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,90,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,89,90,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,94,94,94,94,94,94,94,94,94,94,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,90,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,89,90,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97,98,97,98,97,97,98,98,97,97,97,99,97,97,100,100,100,100,100,100,100,100,100,100,97,97,97,97,97,97,97,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,97,98,98,96,97,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,98,98,97,98,96,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,97,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,97,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,101,101,101,101,101,101,101,101,101,101,98,98,98,98,98,98,102,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,98,98,98,98,101,98,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,98,98,98,98,98,101,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,103,103,103,103,103,103,103,103,103,103,98,98,98,98,98,98,98,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,98,98,98,98,103,98,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,98,98,98,98,98,103,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,104,104,104,104,105,104,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,104,104,104,104,104,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,106,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,110,108,108,108,108,108,108,108,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109,109,111,108,108,108,108,110,108,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,108,108,108,108,109,108,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,108,108,108,108,108,109,111,108,108,112,113,108,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,116,114,114,114,114,114,114,114,114,114,114,114,114,114,114,115,115,115,115,115,115,115,115,115,115,117,114,114,114,114,116,114,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,114,114,114,114,115,114,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,114,114,114,114,114,115,117,114,119,118,120,118,121,118,118,118,118,118,118,118,118,118,118,123,118,123,123,123,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,123,118,118,118,118,124,125,118,126,118,127,128,129,130,131,124,118,118,118,118,118,118,118,118,118,118,132,118,133,129,134,135,118,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,136,137,129,138,122,118,122,122,122,122,122,122,122,122,139,122,122,122,122,122,122,122,122,140,122,122,141,122,142,122,122,122,143,144,118,138,118,122,118,118,118,118,118,118,118,118,118,145,118,145,145,145,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,145,118,118,118,118,146,147,118,148,118,149,150,151,152,153,146,118,118,118,118,118,118,118,118,118,118,154,118,155,151,156,157,118,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,158,159,151,120,115,118,115,115,115,115,115,115,115,115,160,115,115,115,115,115,115,115,115,161,115,115,162,115,163,115,115,115,164,165,118,120,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,167,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,168,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,169,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,170,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,171,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,173,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,174,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,175,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,166,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,176,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,177,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,178,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,180,179,181,179,182,179,151,179,183,179,179,179,179,179,179,179,184,179,185,179,186,179,151,179,187,179,151,179,188,179,182,179,190,189,191,191,191,191,191,191,191,191,191,193,191,193,193,193,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,193,191,191,191,191,191,191,191,194,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,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,191,195,191,191,192,191,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,191,191,191,191,191,192,197,191,191,191,191,191,191,191,191,191,191,199,191,199,199,199,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,199,191,191,191,191,191,191,191,200,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,191,201,191,191,198,191,198,198,198,202,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,191,191,191,191,191,198,204,203,204,204,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,204,203,203,203,203,203,203,203,205,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,203,203,203,203,203,203,203,203,203,203,203,203,206,203,207,203,208,203,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,203,203,203,203,203,203,203,209,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,203,203,203,203,203,203,203,203,203,203,203,203,210,203,211,212,214,213,215,213,216,213,217,213,218,213,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,220,220,220,220,220,220,220,220,220,220,220,220,220,219,219,219,219,219,219,219,219,219,219,220,220,220,220,220,220,220,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,220,220,220,220,220,220,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,220,220,220,220,220,219,221,211,222,223,222,222,222,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,222,211,211,224,211,211,211,211,211,211,211,211,211,211,211,211,225,225,225,225,225,225,225,225,225,225,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,226,211,227,228,227,227,227,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,227,211,211,229,211,211,211,211,211,211,211,211,211,211,211,211,230,230,230,230,230,230,230,230,230,230,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,231,211,233,234,233,233,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,235,232,232,232,232,232,232,232,232,232,232,232,232,236,236,236,236,236,236,236,236,236,236,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,237,232,239,240,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,239,244,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,223,211,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,247,245,247,245,247,247,245,245,247,247,247,248,247,247,249,249,249,249,249,249,249,249,249,249,247,247,247,247,247,247,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,247,245,245,246,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,245,245,247,245,246,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,247,247,247,247,247,247,247,247,247,245,245,245,245,245,245,245,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,245,245,245,245,247,245,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,245,245,245,245,245,247,250,247,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,245,250,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,252,245,245,245,245,253,245,245,245,245,245,254,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,221,245,245,245,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,245,245,245,245,251,255,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,245,245,245,254,245,251,257,257,257,257,257,257,257,257,257,257,258,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,256,256,256,256,256,256,256,256,256,256,257,257,257,257,257,257,257,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,257,257,257,257,256,257,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,257,257,257,257,257,256,260,259,263,262,258,257,263,264,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,252,245,245,245,245,253,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,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,245,245,245,245,251,255,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,245,245,245,245,245,251,266,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,263,265,263,266,267,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,268,267,270,270,270,267,270,270,270,270,270,271,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,272,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,274,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,275,275,275,267,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,267,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,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,277,275,267,278,278,278,267,278,278,278,278,278,279,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,267,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,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,278,278,278,278,278,278,278,278,278,278,278,280,278,267,278,278,278,267,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,267,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,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,278,278,278,278,278,278,278,278,278,278,278,280,278,267,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,281,268,267,282,282,282,267,282,282,282,282,282,283,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,284,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,285,282,282,282,282,282,282,286,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,287,282,267,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,287,282,288,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,289,267,289,267,267,290,290,290,267,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,267,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,292,290,267,270,270,270,267,270,270,270,270,270,271,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,274,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,293,293,293,267,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,267,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,294,294,294,294,293,293,293,293,293,293,293,294,294,294,294,294,294,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,293,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,295,295,295,295,295,295,295,295,295,295,297,211,211,298,211,296,211,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,211,211,211,211,295,211,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,211,211,211,211,211,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,299,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,295,295,300,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,295,295,295,295,295,295,295,301,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,301,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,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,304,302,302,302,302,302,302,302,302,302,302,302,302,302,302,303,303,303,303,303,303,303,303,303,303,305,302,302,302,302,304,302,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,302,302,302,302,303,302,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,302,302,302,302,302,303,305,302,302,306,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,307,307,307,307,307,307,307,307,307,307,308,308,308,308,308,308,308,308,308,308,307,307,307,307,307,307,307,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,308,307,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,308,310,309,310,309,309,311,311,311,311,311,311,311,311,311,311,309,311,311,311,311,311,311,311,311,311,311,309,312,312,312,312,312,312,312,312,312,312,309,314,314,314,314,314,314,314,314,314,314,313,315,315,315,315,315,315,315,315,315,315,313,317,316,318,316,319,316,320,316,322,321,323,321,324,321,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,307,307,307,307,307,307,307,307,307,307,325,325,325,325,325,325,325,325,325,325,307,307,307,307,307,307,307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,307,307,307,307,325,307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,307,307,307,307,307,325,326,313,327,328,327,327,327,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,327,313,313,329,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,330,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,331,313,332,333,332,332,332,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,332,313,313,334,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,335,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,336,313,338,339,338,338,338,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,338,337,337,340,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,341,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,342,337,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,347,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,344,350,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,347,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,351,313,328,313,353,354,353,353,353,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,353,352,352,355,352,352,356,352,352,352,352,352,352,352,357,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,358,352,360,354,360,360,360,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,360,359,359,355,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,358,359,363,362,365,364,366,361,367,361,368,352,370,369,369,369,370,369,369,369,369,371,372,371,371,371,369,369,369,369,369,369,369,369,369,369,369,369,370,369,369,369,369,369,371,369,369,373,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,374,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,375,369,369,376,369,371,377,371,371,371,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,371,377,378,379,380,381,382,384,383,386,387,386,386,386,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,385,372,383,388,383,390,389,389,389,390,389,389,389,389,391,392,391,391,391,389,389,389,389,389,389,389,389,389,389,389,389,390,389,389,389,389,389,391,389,389,393,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,394,389,391,395,391,391,391,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,391,395,397,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,398,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,399,396,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,13,13,13,13,13,13,13,13,13,13,400,400,400,400,400,400,400,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,400,400,400,400,13,400,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,400,400,400,400,400,13,16,16,16,16,16,16,16,16,16,16,400,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,13,13,13,13,13,13,13,13,13,13,401,401,401,401,401,401,401,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,401,401,401,401,17,401,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,401,401,401,401,401,17,404,403,403,403,404,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,404,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,405,405,405,405,405,405,405,405,403,403,403,403,403,403,403,403,403,403,403,406,403,403,403,403,403,403,403,403,403,407,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,408,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,409,403,403,410,403,411,412,414,414,414,414,414,414,414,414,413,415,415,415,415,415,415,415,415,413,413,416,416,42,42,42,416,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,416,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,417,42,418,419,420,420,42,42,42,420,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,420,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,421,42,41,420,422,423,424,424,27,27,27,424,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,424,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,425,27,426,426,426,426,426,426,426,426,426,426,424,424,424,424,424,424,424,426,426,426,426,426,426,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,426,426,426,426,426,426,424,428,428,428,428,428,428,428,428,428,428,427,427,427,427,427,427,427,428,428,428,428,428,428,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,428,428,428,428,428,428,427,427,429,429,429,429,429,429,429,429,429,429,420,420,420,420,420,420,420,429,429,429,429,429,429,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,429,429,429,429,429,429,420,431,431,431,431,431,431,431,431,431,431,430,430,430,430,430,430,430,431,431,431,431,431,431,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,431,431,431,431,431,431,430,430,420,20,20,20,420,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,420,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,432,20,416,27,27,27,416,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,416,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,416,433,433,433,416,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,416,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,434,433,435,436,436,433,433,433,436,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,436,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,437,433,438,438,438,438,438,438,438,438,438,438,436,436,436,436,436,436,436,438,438,438,438,438,438,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,438,438,438,438,438,438,436,440,440,440,440,440,440,440,440,440,440,439,439,439,439,439,439,439,440,440,440,440,440,440,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,440,440,440,440,440,440,439,439,436,20,20,20,436,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,436,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,432,20,441,436,436,27,27,27,436,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,436,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,443,443,443,443,443,443,443,443,443,443,442,442,442,442,442,442,442,443,443,443,443,443,443,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,443,443,443,443,443,443,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,444,442,445,445,445,445,445,445,445,445,445,445,442,442,442,442,442,442,442,445,445,445,445,445,445,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,445,445,445,445,445,445,442,446,446,446,446,446,446,446,446,446,446,442,442,442,442,442,442,442,446,446,446,446,446,446,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,446,446,446,446,446,446,442,447,447,447,447,447,447,447,447,447,447,442,442,442,442,442,442,442,447,447,447,447,447,447,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,447,447,447,447,447,447,442,448,451,450,450,450,451,450,450,450,450,452,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,451,450,450,450,450,450,452,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,453,453,453,453,453,453,453,453,453,453,450,450,450,450,450,450,450,453,453,453,453,453,453,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,453,453,453,453,453,453,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,454,450,451,450,450,450,451,450,450,450,450,449,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,451,450,450,450,450,450,449,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,455,455,455,455,455,455,455,455,455,455,450,450,450,450,450,450,450,455,455,455,455,455,455,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,455,455,455,455,455,455,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,456,450,449,451,455,455,455,451,455,455,455,455,449,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,451,455,455,455,455,455,449,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,449,455,457,451,458,458,458,451,458,458,458,458,452,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,452,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,453,453,453,453,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,449,458,451,458,458,458,451,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,455,455,455,455,455,455,455,455,455,455,458,458,458,458,458,458,458,455,455,455,455,455,455,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,455,455,455,455,455,455,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,460,460,460,460,460,460,460,460,460,460,458,458,458,458,458,458,458,460,460,460,460,460,460,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,460,460,460,460,460,460,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,453,453,453,453,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,462,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,463,463,463,463,463,463,463,463,463,463,458,458,458,458,458,458,458,463,463,463,463,463,463,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,463,463,463,463,463,463,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,464,464,464,464,464,464,464,464,464,464,458,458,458,458,458,458,458,464,464,464,464,464,464,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,464,464,464,464,464,464,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,465,465,465,465,465,465,465,465,465,465,458,458,458,458,458,458,458,465,465,465,465,465,465,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,465,465,465,465,465,465,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,466,466,466,466,466,466,466,466,466,466,458,458,458,458,458,458,458,466,466,466,466,466,466,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,466,466,466,466,466,466,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,467,467,467,467,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,467,467,467,467,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,449,458,468,469,471,471,471,471,471,471,471,471,471,471,470,470,470,470,470,470,470,471,471,471,471,471,471,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,471,471,471,471,471,471,470,470,473,472,472,472,473,472,472,472,472,472,474,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,473,472,472,472,472,472,472,472,472,475,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,476,472,478,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,479,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,480,477,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,48,48,48,48,48,48,48,48,48,48,481,481,481,481,481,481,481,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,481,481,481,481,48,481,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,481,481,481,481,481,48,51,51,51,51,51,51,51,51,51,51,481,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,48,48,48,48,48,48,48,48,48,48,482,482,482,482,482,482,482,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,482,482,482,482,52,482,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,482,482,482,482,482,52,485,484,484,484,485,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,485,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,486,486,486,486,486,486,486,486,484,484,484,484,484,484,484,484,484,484,484,487,484,484,484,484,484,484,484,484,484,488,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,489,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,490,484,484,491,484,492,493,495,495,495,495,495,495,495,495,494,496,496,496,496,496,496,496,496,494,494,497,497,77,77,77,497,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,497,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,498,77,499,500,501,501,77,77,77,501,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,501,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,502,77,76,501,503,504,505,505,62,62,62,505,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,505,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,506,62,507,507,507,507,507,507,507,507,507,507,505,505,505,505,505,505,505,507,507,507,507,507,507,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,507,507,507,507,507,507,505,509,509,509,509,509,509,509,509,509,509,508,508,508,508,508,508,508,509,509,509,509,509,509,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,509,509,509,509,509,509,508,508,510,510,510,510,510,510,510,510,510,510,501,501,501,501,501,501,501,510,510,510,510,510,510,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,510,510,510,510,510,510,501,512,512,512,512,512,512,512,512,512,512,511,511,511,511,511,511,511,512,512,512,512,512,512,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,512,512,512,512,512,512,511,511,501,55,55,55,501,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,501,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,513,55,497,62,62,62,497,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,497,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,497,514,514,514,497,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,497,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,515,514,516,517,517,514,514,514,517,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,517,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,518,514,519,519,519,519,519,519,519,519,519,519,517,517,517,517,517,517,517,519,519,519,519,519,519,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,519,519,519,519,519,519,517,521,521,521,521,521,521,521,521,521,521,520,520,520,520,520,520,520,521,521,521,521,521,521,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,521,521,521,521,521,521,520,520,517,55,55,55,517,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,517,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,513,55,522,517,517,62,62,62,517,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,517,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,524,524,524,524,524,524,524,524,524,524,523,523,523,523,523,523,523,524,524,524,524,524,524,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,524,524,524,524,524,524,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,525,523,526,526,526,526,526,526,526,526,526,526,523,523,523,523,523,523,523,526,526,526,526,526,526,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,526,526,526,526,526,526,523,527,527,527,527,527,527,527,527,527,527,523,523,523,523,523,523,523,527,527,527,527,527,527,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,527,527,527,527,527,527,523,528,528,528,528,528,528,528,528,528,528,523,523,523,523,523,523,523,528,528,528,528,528,528,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,528,528,528,528,528,528,523,529,532,531,531,531,532,531,531,531,531,533,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,532,531,531,531,531,531,533,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,534,534,534,534,534,534,534,534,534,534,531,531,531,531,531,531,531,534,534,534,534,534,534,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,534,534,534,534,534,534,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,535,531,532,531,531,531,532,531,531,531,531,530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,532,531,531,531,531,531,530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,536,536,536,536,536,536,536,536,536,536,531,531,531,531,531,531,531,536,536,536,536,536,536,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,536,536,536,536,536,536,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,537,531,530,532,536,536,536,532,536,536,536,536,530,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,532,536,536,536,536,536,530,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,530,536,538,532,539,539,539,532,539,539,539,539,533,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,533,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,534,534,534,534,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,530,539,532,539,539,539,532,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,536,536,536,536,536,536,536,536,536,536,539,539,539,539,539,539,539,536,536,536,536,536,536,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,536,536,536,536,536,536,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,541,541,541,541,541,541,541,541,541,539,539,539,539,539,539,539,541,541,541,541,541,541,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,541,541,541,541,541,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,534,534,534,534,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,543,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,544,544,544,544,544,544,544,544,544,544,539,539,539,539,539,539,539,544,544,544,544,544,544,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,544,544,544,544,544,544,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,545,545,545,545,545,545,545,545,545,545,539,539,539,539,539,539,539,545,545,545,545,545,545,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,545,545,545,545,545,545,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,546,546,546,546,546,546,546,546,546,546,539,539,539,539,539,539,539,546,546,546,546,546,546,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,546,546,546,546,546,546,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,547,547,547,547,547,547,547,547,547,547,539,539,539,539,539,539,539,547,547,547,547,547,547,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,547,547,547,547,547,547,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,548,548,548,548,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,548,548,548,548,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,530,539,549,550,552,552,552,552,552,552,552,552,552,552,551,551,551,551,551,551,551,552,552,552,552,552,552,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,552,552,552,552,552,552,551,551,554,553,553,553,554,553,553,553,553,555,556,555,555,555,553,553,553,553,553,553,553,553,553,553,553,553,554,553,553,553,553,553,555,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,557,553,555,558,555,555,555,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,555,558,559,560,560,560,559,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,559,560,562,561,561,561,562,561,561,561,561,561,563,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,562,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,564,561,565,566,566,566,565,566,566,566,566,566,567,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,565,566,569,568,568,568,569,568,568,568,568,568,570,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,569,568,568,568,568,568,568,568,568,571,568,573,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,574,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,575,572,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,83,83,83,83,83,83,83,83,83,83,576,576,576,576,576,576,576,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,576,576,576,576,83,576,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,576,576,576,576,576,83,86,86,86,86,86,86,86,86,86,86,576,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,83,83,83,83,83,83,83,83,83,83,577,577,577,577,577,577,577,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,577,577,577,577,87,577,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,577,577,577,577,577,87,579,578,578,578,579,578,578,578,578,578,580,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,579,578,582,581,581,581,582,581,581,581,581,583,584,583,583,583,581,581,581,581,581,581,581,581,581,581,581,581,582,581,581,581,581,581,583,581,581,585,581,583,586,583,583,583,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,583,586,588,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,589,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,590,587,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,90,90,90,90,90,90,90,90,90,90,591,591,591,591,591,591,591,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,591,591,591,591,90,591,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,591,591,591,591,591,90,93,93,93,93,93,93,93,93,93,93,591,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,90,90,90,90,90,90,90,90,90,90,592,592,592,592,592,592,592,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,592,592,592,592,94,592,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,592,592,592,592,592,94,594,593,593,593,594,593,593,593,593,595,596,595,595,595,593,593,593,593,593,593,593,593,593,593,593,593,594,593,593,593,593,593,595,593,595,597,595,595,595,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,595,597,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,598,598,598,598,598,598,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,598,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,600,600,600,600,600,600,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,600,601,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,602,98,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,96,96,96,96,96,96,96,96,96,96,603,603,603,603,603,603,603,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,603,603,603,603,96,603,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,603,603,603,603,603,96,100,100,100,100,100,100,100,100,100,100,603,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,101,101,101,101,101,101,101,101,101,101,604,604,604,604,604,604,604,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,604,604,604,604,101,604,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,604,604,604,604,604,101,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,103,103,103,103,103,103,103,103,103,103,605,605,605,605,605,605,605,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,605,605,605,605,103,605,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,605,605,605,605,605,103,607,608,608,608,607,608,608,608,608,609,610,609,609,609,608,608,608,608,608,608,608,608,608,608,608,608,607,608,608,608,608,608,609,611,608,612,613,614,615,608,608,608,616,617,608,617,608,618,608,608,608,608,608,608,608,608,608,608,619,608,620,621,622,608,608,623,624,623,623,625,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,626,627,608,618,628,618,629,630,631,632,633,634,606,606,635,606,606,606,636,637,638,606,606,639,640,641,642,606,643,606,644,606,608,645,608,617,608,606,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,647,646,646,646,646,646,646,646,646,646,646,646,646,646,646,606,606,606,606,606,606,606,606,606,606,646,646,646,647,646,647,646,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,646,646,646,646,606,646,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,646,646,646,646,646,606,609,648,609,609,609,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,609,648,649,618,650,650,618,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,618,650,651,652,653,654,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,105,105,655,105,655,105,105,655,655,105,105,105,657,105,105,658,658,658,658,658,658,658,658,658,658,105,105,105,105,105,105,105,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,655,105,655,655,656,105,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,655,655,655,105,655,656,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,656,656,656,656,656,656,656,656,656,656,659,659,659,659,659,659,659,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,659,659,659,659,656,659,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,659,659,659,659,659,656,658,658,658,658,658,658,658,658,658,658,659,660,650,618,650,618,650,618,650,662,661,618,663,650,618,650,664,618,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,618,655,618,650,618,618,650,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,647,646,646,646,646,646,646,646,646,646,646,646,646,646,646,623,623,623,623,623,623,623,623,623,623,646,646,646,647,646,647,646,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,646,646,646,646,623,646,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,646,646,646,646,646,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,666,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,667,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,668,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,623,623,623,623,623,669,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,623,623,623,623,623,670,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,669,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,664,655,610,655,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,672,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,673,674,606,606,606,606,606,675,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,676,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,677,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,678,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,679,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,680,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,681,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,682,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,683,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,684,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,685,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,686,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,682,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,687,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,686,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,688,606,689,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,690,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,691,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,692,606,606,606,606,606,606,606,606,606,606,606,606,693,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,694,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,695,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,696,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,697,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,698,606,606,606,606,606,606,606,606,606,606,699,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,701,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,691,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,702,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,703,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,647,704,704,704,704,704,704,704,704,704,704,704,704,704,704,606,606,606,606,606,606,606,606,606,606,704,704,704,647,704,647,704,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,704,704,704,704,606,704,606,606,606,606,606,606,606,606,705,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,704,704,704,704,704,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,706,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,707,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,708,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,709,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,710,606,711,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,712,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,684,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,714,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,715,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,716,606,606,606,606,606,606,606,606,606,606,606,606,606,638,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,698,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,684,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,717,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,718,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,719,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,720,606,606,606,721,606,606,606,606,606,722,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,722,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,723,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,724,606,606,606,606,606,606,606,606,606,606,606,606,606,606,725,726,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,727,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,728,606,606,729,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,695,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,730,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,731,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,732,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,638,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,733,606,606,606,606,606,606,606,606,606,727,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,695,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,734,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,735,606,606,606,606,606,606,606,736,606,606,606,606,606,606,606,737,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,701,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,721,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,738,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,695,606,606,606,719,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,739,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,740,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,689,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,618,650,742,743,743,743,742,743,743,743,743,744,743,744,744,744,743,743,743,743,743,743,743,743,743,743,743,743,742,743,743,743,743,743,744,743,743,745,743,743,743,743,743,743,743,743,743,743,746,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,743,747,743,743,741,743,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,743,743,743,743,743,741,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,110,748,748,748,748,748,748,748,748,748,748,748,748,748,748,109,109,109,109,109,109,109,109,109,109,111,748,748,748,748,110,748,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,748,748,748,748,109,748,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,748,748,748,748,748,109,744,749,744,744,744,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,744,749,750,751,752,753,754,748,755,748,756,758,759,759,759,758,759,759,759,759,760,761,760,760,760,759,759,759,759,759,759,759,759,759,759,759,759,758,759,759,759,759,759,760,762,759,763,759,764,765,759,759,759,766,767,759,767,759,764,759,759,759,759,759,759,759,759,759,759,759,759,768,769,770,759,759,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,772,773,759,764,757,764,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,759,774,759,767,759,757,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,776,775,775,775,775,775,775,775,775,775,775,775,775,775,775,757,757,757,757,757,757,757,757,757,757,775,775,775,775,775,776,775,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,775,775,775,775,757,775,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,775,775,775,775,775,757,778,777,779,760,780,760,760,760,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,760,780,781,764,782,782,764,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,764,782,783,784,785,786,764,782,764,782,764,782,764,787,782,764,782,789,764,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,764,788,764,782,764,764,782,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,776,790,790,790,790,790,790,790,790,790,790,790,790,790,790,771,771,771,771,771,771,771,771,771,771,790,790,790,790,790,776,790,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,790,790,790,790,771,790,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,790,790,790,790,790,771,789,788,761,788,764,782,792,791,791,791,792,791,791,791,791,793,794,793,793,793,791,791,791,791,791,791,791,791,791,791,791,791,792,791,791,791,791,791,793,791,791,795,791,120,796,791,797,791,798,120,151,799,153,120,791,791,791,791,791,791,791,791,791,791,800,791,801,151,802,803,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,151,804,151,120,791,791,791,791,791,791,791,791,791,791,805,791,791,791,791,791,791,791,791,806,791,791,807,791,808,791,791,791,164,165,791,120,791,809,809,809,809,809,809,809,809,809,793,809,793,793,793,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,793,809,809,809,809,146,147,809,148,809,149,150,151,152,153,146,809,809,809,809,809,809,809,809,809,809,154,809,155,151,156,157,809,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,158,159,151,120,115,809,115,115,115,115,115,115,115,115,160,115,115,115,115,115,115,115,115,161,115,115,162,115,163,115,115,115,164,165,809,120,809,115,810,811,811,811,810,811,811,811,811,151,812,151,151,151,811,811,811,811,811,811,811,811,811,811,811,811,810,811,811,811,811,811,151,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,151,811,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,120,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,813,151,812,151,151,151,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,151,814,814,814,814,814,814,814,814,814,815,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,151,814,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,151,114,816,810,151,810,818,817,820,821,820,820,820,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,820,819,822,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,116,810,810,810,810,810,810,810,810,810,810,810,810,810,810,115,115,115,115,115,115,115,115,115,115,117,810,810,810,810,116,810,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,810,810,810,810,115,810,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,810,810,810,810,810,115,823,151,812,151,151,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,120,810,824,825,826,827,828,829,151,812,151,151,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,120,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,151,817,120,830,120,830,831,832,831,831,831,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,831,819,833,830,834,834,834,834,834,834,834,834,834,123,834,123,123,123,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,123,834,834,834,834,124,125,834,126,834,127,128,129,130,131,124,834,834,834,834,834,834,834,834,834,834,132,834,133,129,134,135,834,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,136,137,129,138,122,834,122,122,122,122,122,122,122,122,139,122,122,122,122,122,122,122,122,140,122,122,141,122,142,122,122,122,143,144,834,138,834,122,151,830,835,830,836,830,837,830,838,190,190,190,838,190,190,190,190,839,190,839,839,839,190,190,190,190,190,190,190,190,190,190,190,190,838,190,190,190,190,190,839,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,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,190,840,190,190,192,190,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,190,190,190,190,190,192,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,841,189,189,189,189,189,189,189,189,189,189,189,189,189,189,192,192,192,192,192,192,192,192,192,192,190,189,189,189,189,841,189,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,189,189,189,189,192,189,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,189,189,189,189,189,192,842,842,842,842,842,842,842,842,842,193,842,193,193,193,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,193,842,842,842,842,842,842,842,194,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,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,842,195,842,842,192,842,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,842,842,842,842,842,192,843,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,841,842,842,842,842,842,842,842,842,842,842,842,842,842,842,192,192,192,192,192,192,192,192,192,192,190,842,842,842,842,841,842,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,842,842,842,842,192,842,192,192,192,192,192,192,192,192,192,192,192,192,192,192,844,192,192,192,192,192,192,192,192,192,192,192,842,842,842,842,842,192,197,842,846,845,845,845,846,845,845,845,845,847,845,847,847,847,845,845,845,845,845,845,845,845,845,845,845,845,846,845,845,845,845,845,847,845,845,848,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,849,845,845,845,845,845,845,845,850,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,851,845,847,852,847,847,847,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,847,852,853,854,855,856,858,857,859,860,857,861,863,864,864,864,863,864,864,864,864,865,866,865,865,865,864,864,864,864,864,864,864,864,864,864,864,864,863,864,864,864,864,864,865,864,864,867,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,864,868,864,864,862,864,862,862,862,862,862,862,862,862,869,862,862,862,862,862,862,862,862,870,862,862,871,862,872,862,862,862,864,864,864,864,864,862,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,862,862,862,862,862,862,862,862,862,862,873,873,873,873,873,873,873,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,873,873,873,873,862,873,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,873,873,873,873,873,862,865,874,865,865,865,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,865,874,875,876,877,878,879,881,880,882,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,885,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,886,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,887,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,888,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,889,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,890,862,862,862,862,862,862,862,891,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,892,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,893,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,884,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,894,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,895,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,896,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,888,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,898,221,221,221,898,221,221,221,221,899,900,899,899,899,221,221,221,221,221,221,221,221,221,221,221,221,898,221,221,221,221,221,899,901,221,902,221,903,904,221,905,221,906,907,221,908,909,910,221,221,221,221,221,221,221,221,221,221,911,221,912,913,914,915,221,916,917,916,916,918,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,919,920,221,921,922,221,923,924,925,926,927,928,897,897,929,897,897,897,930,931,932,897,897,933,934,935,936,897,937,897,938,897,939,940,221,921,221,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,945,944,944,946,944,947,949,950,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,951,948,953,952,954,955,956,899,957,899,899,899,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,899,957,959,958,961,962,961,961,961,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,961,960,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,221,963,964,965,966,967,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,968,968,968,968,968,968,968,968,968,968,969,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,969,969,969,969,969,968,972,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,221,971,973,975,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,221,974,221,211,222,223,222,222,222,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,222,971,971,224,971,971,971,971,971,971,971,971,971,971,971,971,225,225,225,225,225,225,225,225,225,225,971,971,971,221,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,226,971,239,240,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,222,223,222,222,222,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,222,971,971,224,971,971,971,971,971,971,971,971,971,971,971,971,225,225,225,225,225,225,225,225,225,225,971,971,971,221,221,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,226,971,977,963,979,978,981,980,963,982,982,982,963,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,963,982,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,984,985,963,986,247,987,985,963,963,988,989,963,989,963,247,963,963,963,963,963,963,963,963,963,963,990,963,991,992,993,963,994,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,995,963,963,247,983,247,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,963,996,963,997,963,983,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,999,998,998,998,998,998,998,998,998,998,998,998,998,998,998,983,983,983,983,983,983,983,983,983,983,998,998,998,1e3,998,999,998,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,998,998,998,998,983,998,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,998,998,998,998,998,983,1002,1001,1003,1005,1006,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1007,1004,1009,1010,1008,1011,1012,1013,1014,247,998,998,1015,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,247,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,246,246,246,246,246,246,246,246,246,246,998,998,998,998,998,998,998,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,998,998,998,998,246,998,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,998,998,998,998,998,246,249,249,249,249,249,249,249,249,249,249,998,1016,998,247,998,247,998,247,1017,998,247,998,247,998,247,247,998,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1018,1018,1018,1018,1018,1018,1021,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1018,1018,1018,1018,1019,1018,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1018,1018,1018,1018,1018,1019,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1022,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1024,1024,1024,1024,1024,1024,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1024,1024,1024,1024,1025,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1024,1024,1024,1024,1024,1025,1016,998,1015,998,1027,1028,963,1029,262,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,263,252,264,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,263,253,263,266,221,963,921,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,221,963,221,972,963,1033,1032,1032,1032,1033,1032,1032,1032,1032,1034,1035,1034,1034,1034,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1033,1032,1032,1032,1032,1032,1034,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1032,1037,1032,1032,1036,1032,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1032,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1038,1038,1038,1038,1039,1038,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1038,1038,1038,1038,1038,1039,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1040,1040,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1041,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1040,1041,1044,1043,1043,1043,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1045,1045,1045,1045,1045,1045,1045,1045,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1046,1043,1043,1043,1043,1043,1043,1043,1043,1043,1047,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1048,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1049,1043,1043,1050,1043,1051,1052,1054,1054,1054,1054,1054,1054,1054,1054,1053,1055,1055,1055,1055,1055,1055,1055,1055,1053,1053,1056,1056,290,290,290,1056,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1056,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1057,290,1058,1059,1060,1060,290,290,290,1060,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1060,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1061,290,289,1060,1062,1063,1064,1064,275,275,275,1064,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1064,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,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,1065,275,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1064,1064,1064,1064,1064,1064,1064,1066,1066,1066,1066,1066,1066,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1066,1066,1066,1066,1066,1066,1064,1068,1068,1068,1068,1068,1068,1068,1068,1068,1068,1067,1067,1067,1067,1067,1067,1067,1068,1068,1068,1068,1068,1068,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1068,1068,1068,1068,1068,1068,1067,1067,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1060,1060,1060,1060,1060,1060,1060,1069,1069,1069,1069,1069,1069,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1069,1069,1069,1069,1069,1069,1060,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1070,1070,1060,268,268,268,1060,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1060,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1072,268,1056,275,275,275,1056,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1056,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,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,277,275,1056,1073,1073,1073,1056,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1056,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1074,1073,1075,1076,1076,1073,1073,1073,1076,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1076,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1077,1073,1078,1078,1078,1078,1078,1078,1078,1078,1078,1078,1076,1076,1076,1076,1076,1076,1076,1078,1078,1078,1078,1078,1078,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1078,1078,1078,1078,1078,1078,1076,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1079,1079,1076,268,268,268,1076,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1076,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1072,268,1081,1076,1076,275,275,275,1076,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1076,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,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,277,275,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1084,1082,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1082,1082,1082,1082,1082,1082,1082,1085,1085,1085,1085,1085,1085,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1085,1085,1085,1085,1085,1085,1082,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1082,1082,1082,1082,1082,1082,1082,1086,1086,1086,1086,1086,1086,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1086,1086,1086,1086,1086,1086,1082,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1082,1082,1082,1082,1082,1082,1082,1087,1087,1087,1087,1087,1087,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1087,1087,1087,1087,1087,1087,1082,1088,1091,1090,1090,1090,1091,1090,1090,1090,1090,1092,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1091,1090,1090,1090,1090,1090,1092,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1094,1090,1091,1090,1090,1090,1091,1090,1090,1090,1090,1089,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1091,1090,1090,1090,1090,1090,1089,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1096,1090,1089,1091,1095,1095,1095,1091,1095,1095,1095,1095,1089,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1091,1095,1095,1095,1095,1095,1089,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1089,1095,1097,1091,1098,1098,1098,1091,1098,1098,1098,1098,1092,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1092,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1103,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1121,1122,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1123,1123,1123,1123,1123,1123,1123,1124,1124,1124,1124,1124,1124,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1124,1124,1124,1124,1124,1124,1123,1123,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,295,295,295,295,295,295,295,295,295,295,297,211,211,298,211,296,211,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,211,211,211,211,295,211,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,211,211,211,211,211,295,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,296,963,963,963,963,963,963,963,963,963,963,963,963,963,963,295,295,295,295,295,295,295,295,295,295,297,963,963,298,963,296,963,295,295,295,295,1125,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,963,963,963,963,295,963,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,963,963,963,963,963,295,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,296,963,963,963,963,963,963,963,963,963,963,963,963,963,963,295,295,295,295,295,295,295,295,295,295,297,963,963,298,963,296,963,295,295,295,295,295,295,295,295,295,295,295,295,295,1126,295,295,295,295,295,295,295,295,295,295,295,295,963,963,963,963,295,963,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,963,963,963,963,963,295,1127,1128,963,958,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1129,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,1130,1131,897,897,897,897,897,1132,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1133,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,1134,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1135,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,1136,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1137,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1138,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,1139,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1140,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1141,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,897,897,897,897,897,897,897,897,897,897,297,211,211,298,211,296,211,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,211,211,211,211,897,211,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,211,211,211,211,211,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1142,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,1143,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,1139,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1144,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1143,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1145,897,1146,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1147,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1148,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1149,897,897,897,897,897,897,897,897,897,897,897,897,1150,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,1151,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1152,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1153,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1154,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1155,897,897,897,897,897,897,897,897,897,897,1156,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1158,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1148,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1160,897,1161,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1162,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1141,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1163,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1164,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1165,897,897,897,897,897,897,897,897,897,897,897,897,897,932,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1155,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,1166,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1167,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1168,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1169,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1170,897,897,897,1171,897,897,897,897,897,1172,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1172,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1173,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1174,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1175,1176,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,1177,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1178,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1179,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1182,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1183,1180,1180,1184,1180,1182,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1180,1180,1180,1180,1181,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1180,1180,1180,1180,1180,1181,949,1185,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,951,948,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1186,897,897,1187,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1152,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1188,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1189,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1190,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,932,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,1191,897,897,897,897,897,897,897,897,897,1192,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1152,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1193,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1194,897,897,897,897,897,897,897,1195,897,897,897,897,897,897,897,1196,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1197,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1198,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1166,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1199,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1166,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,1200,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1152,897,897,897,1201,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1202,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1166,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1203,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1204,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1146,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,1205,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,1206,963,1208,1207,1207,1207,1208,1207,1207,1207,1207,1209,1210,1209,1209,1209,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1208,1207,1207,1207,1207,1207,1209,1207,1207,1211,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1212,1207,1209,1213,1209,1209,1209,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1209,1213,1214,1215,1216,1217,1218,1220,1219,1221,1223,1224,1224,1224,1223,1224,1224,1224,1224,1225,1226,1225,1225,1225,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1223,1224,1224,1224,1224,1224,1225,1224,1227,1228,1224,1224,1224,1227,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1224,1229,1224,1224,1222,1224,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1224,1224,1224,1224,1224,1222,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,304,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,303,303,303,303,303,303,303,303,303,303,305,1230,1230,1230,1230,304,1230,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,1230,1230,1230,1230,303,1230,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,1230,1230,1230,1230,1230,303,1225,1231,1225,1225,1225,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1225,1231,1232,1233,1234,1235,1236,1237,1230,1238,1240,1241,1241,1241,1240,1241,1241,1241,1241,1242,1243,1242,1242,1242,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1240,1241,1241,1241,1241,1241,1242,1244,1245,1246,1247,1248,1249,1245,1250,1251,1252,1248,1253,1254,1255,1248,1256,1257,1257,1257,1257,1257,1257,1257,1257,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1265,1265,1267,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1268,1269,1270,1248,1271,1245,1272,1273,1274,1275,1276,1277,1239,1239,1278,1239,1239,1239,1279,1280,1281,1239,1239,1282,1283,1284,1285,1239,1286,1239,1287,1239,1288,1289,1290,1291,1241,1239,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,1292,313,313,313,313,313,313,313,313,313,313,313,313,313,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,313,1292,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,1239,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,313,1239,1294,1293,1295,1242,1296,1242,1242,1242,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1242,1296,1297,1299,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1299,1298,1300,1301,1302,1303,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,308,308,1304,308,1304,308,308,1304,1304,308,308,308,1305,308,308,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,308,308,308,308,308,308,308,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,308,1304,1304,325,308,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,308,1304,325,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,1307,1307,1307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,325,1307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,1307,325,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1307,1308,313,1248,1309,1309,1309,1309,1309,1309,1309,1310,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1308,1309,1311,1312,1248,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1308,1313,1308,1314,1309,1316,1315,312,312,312,312,312,312,312,312,312,312,1315,1318,1317,1319,1317,312,312,312,312,312,312,312,312,312,312,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1321,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1322,1320,1320,1320,1320,1320,1321,1320,311,311,311,311,311,311,311,311,311,311,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,310,1320,1324,1323,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1323,1323,1323,1323,1323,1323,1323,1323,1326,1323,1327,1328,1323,1323,1323,1323,1323,1323,1323,1323,1323,1329,1323,1323,1323,1323,1323,1323,1323,1323,1330,1323,1323,1323,1323,1323,1323,1331,1323,1323,1326,1323,1327,1328,1323,1323,1323,1332,1323,1323,1323,1323,1323,1329,1323,1323,1333,1323,1323,1323,1323,1323,1330,1323,314,314,314,314,314,314,314,314,314,314,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1335,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1336,1334,1334,1334,1334,1334,1335,1334,1334,1334,1337,1334,1334,1334,1334,1334,1334,1334,1334,1338,1334,1339,313,1339,313,313,315,315,315,315,315,315,315,315,315,315,313,315,315,315,315,315,315,315,315,315,315,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1339,1340,1340,1340,1340,1340,1340,1340,1340,1340,1341,1340,1343,1342,1344,1346,1345,1345,1345,1347,1345,1348,1349,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1331,1323,1323,1323,1323,1323,1323,1323,1323,1323,1332,1323,1323,1323,1323,1323,1323,1323,1323,1333,1323,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1351,1323,1323,1323,1323,1323,1323,1323,1323,1323,1332,1323,1323,1323,1323,1323,1323,1323,1323,1333,1323,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1354,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1359,1358,1360,1362,1361,1361,1361,1363,1361,1365,1364,1366,1367,1369,1369,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1370,1368,1368,1368,1368,1368,1368,1368,1368,1368,1371,1368,1368,1368,1368,1368,1368,1368,1368,1372,1368,1373,1373,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1374,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1373,1373,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1376,1376,1376,1376,1376,1376,1376,1376,1376,1376,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1377,1375,1375,1375,1375,1375,1375,1375,1375,1375,1378,1375,1375,1375,1375,1375,1375,1375,1375,1379,1375,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1382,1380,1380,1380,1380,1380,1380,1380,1380,1380,1383,1380,1380,1380,1380,1380,1380,1380,1380,1384,1380,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1385,1385,1385,1385,1385,1385,1385,1386,1386,1386,1386,1386,1386,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1387,1385,1386,1386,1386,1386,1386,1386,1385,1385,1388,1385,1385,1385,1385,1385,1385,1385,1385,1389,1385,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1391,1352,1390,1390,1390,1390,1390,1390,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1390,1390,1390,1390,1390,1390,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1393,1392,1394,1394,1394,1394,1394,1394,1394,1394,1394,1394,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1395,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1396,1392,1392,1392,1392,1392,1395,1392,1392,1392,1397,1392,1392,1392,1392,1392,1392,1392,1392,1398,1392,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1400,1392,1392,1392,1392,1392,1392,1392,1392,1392,1397,1392,1392,1392,1392,1392,1392,1392,1392,1398,1392,1401,1352,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1403,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1404,1352,1352,1352,1352,1352,1403,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1310,1317,1248,1405,1309,1299,1309,1406,1407,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1299,1317,1299,1309,1299,1248,1309,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,1304,1304,1408,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,325,1304,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,1304,325,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,1292,313,313,313,313,313,313,313,313,313,313,313,313,313,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,313,313,313,313,1292,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,313,313,313,313,1265,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,313,313,313,313,313,1265,1410,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1412,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1413,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1414,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1415,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1416,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1415,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1417,1419,1418,1420,1421,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1423,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1424,1425,1239,1239,1239,1239,1239,1426,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1427,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1428,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1429,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1430,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1431,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1432,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1433,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1434,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1435,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1436,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1437,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1438,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1439,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1440,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1441,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1437,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1442,1239,1443,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1444,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1445,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1446,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1448,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1449,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1450,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1451,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1452,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1453,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1455,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1456,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1458,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1459,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1460,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1461,1461,1461,1461,1461,1461,1461,1461,1461,327,328,327,327,327,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,327,1292,1461,329,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,1461,330,1461,1461,1292,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,331,1461,1461,1239,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,1461,1461,1461,1461,1239,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1463,1239,1239,1239,1239,1239,1239,1239,1239,1239,1464,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1465,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1292,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1466,1292,1466,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1239,1466,1239,1239,1239,1239,1239,1239,1239,1239,1467,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1466,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1468,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1469,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1470,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1471,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1472,1239,1473,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1474,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1447,1239,1239,1239,1475,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1476,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1477,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1478,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1281,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1479,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1480,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1482,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1483,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1484,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1485,1239,1239,1239,1486,1239,1239,1239,1239,1239,1487,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1488,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1490,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1491,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1492,1493,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1494,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1495,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1496,1239,1239,1497,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1498,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1499,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1500,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1501,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1502,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1503,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1504,1239,1239,1239,1239,1239,1239,1239,1239,1239,1505,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1451,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1480,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1506,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1507,1239,1239,1239,1239,1239,1239,1239,1508,1239,1239,1239,1239,1239,1239,1239,1509,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1510,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1446,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1511,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1512,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1513,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1514,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1451,1239,1239,1239,1515,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1516,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1517,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1518,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1519,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1520,1308,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1248,1298,1521,1523,1522,1523,1523,1523,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1523,1522,1522,1524,1522,1522,1525,1522,1522,1522,1522,1522,1522,1522,357,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1526,1522,353,354,353,353,353,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,353,1527,1527,355,1527,1527,356,1527,1527,1527,1527,1527,1527,1527,357,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,358,1527,360,1528,360,360,360,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,360,1528,1528,355,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,358,1528,1530,1529,1532,1531,363,362,368,1527,366,1527,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1535,1533,1534,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1537,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1538,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1539,1533,1541,1539,0]],$send(self,"_lex_indicies=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_trans_targs"),self.$private("_lex_trans_targs","_lex_trans_targs=")}(Opal.get_singleton_class(self),$nesting),$writer=[[186,2,3,4,192,6,7,8,9,10,186,186,195,198,195,12,199,200,14,195,207,208,211,212,224,221,213,214,215,19,216,217,218,226,228,229,233,234,235,230,25,18,209,210,27,258,259,261,263,261,30,264,265,32,261,272,273,276,277,289,286,278,279,280,37,281,282,283,291,293,294,298,299,300,295,43,36,274,275,45,323,324,331,333,331,48,334,335,50,337,340,337,52,341,342,54,348,347,0,56,349,350,58,351,352,352,352,352,465,61,62,63,465,465,494,65,66,494,494,498,498,70,65,71,496,497,499,500,498,494,501,502,504,67,68,505,506,69,498,72,73,78,85,508,509,71,496,497,499,500,498,494,501,502,504,67,68,505,506,69,72,73,78,85,508,509,507,74,75,76,77,79,80,83,81,82,84,86,87,494,89,90,91,93,96,94,95,97,99,525,525,525,526,101,528,102,529,103,526,101,528,102,529,563,104,563,105,106,104,563,105,563,563,563,109,110,111,112,574,563,563,563,115,116,117,563,120,115,116,117,563,120,118,118,116,117,584,119,118,118,116,117,584,119,116,563,601,563,122,602,608,126,617,618,131,132,126,127,616,127,616,563,128,129,130,619,133,563,633,634,637,638,650,647,639,640,641,138,642,643,644,652,654,655,659,660,661,656,144,137,635,636,146,697,698,148,565,107,567,150,151,700,802,153,154,155,802,810,810,810,158,832,831,810,834,836,810,163,164,165,840,810,167,168,851,820,873,171,172,173,177,178,171,172,173,177,178,174,174,172,173,175,176,174,174,172,173,175,176,921,172,810,990,179,992,181,185,993,183,990,180,990,182,992,182,992,184,992,990,186,186,187,188,189,191,193,194,186,186,186,190,186,190,186,1,186,186,186,5,195,195,196,195,197,201,195,195,11,13,195,195,195,195,202,203,204,15,21,26,236,28,195,195,195,205,206,195,16,195,195,195,17,195,195,195,20,219,195,220,222,195,223,225,227,22,195,195,23,231,195,232,24,195,237,241,238,239,240,195,195,242,243,246,248,257,244,245,195,247,249,251,250,195,252,253,254,255,256,195,195,195,260,261,261,261,262,266,261,29,31,261,261,261,261,267,268,269,33,39,44,301,46,261,261,261,270,271,261,34,261,261,261,35,261,261,261,38,284,261,285,287,261,288,290,292,40,261,261,41,296,261,297,42,261,302,306,303,304,305,261,261,307,308,311,313,322,309,310,261,312,314,316,315,261,317,318,319,320,321,261,261,261,325,326,326,327,326,328,326,326,326,329,329,329,330,329,329,329,331,331,331,332,331,47,49,331,331,331,336,336,336,337,337,338,337,339,337,337,51,53,337,337,337,343,343,344,343,343,345,346,345,55,57,347,347,347,353,352,352,354,355,356,357,359,362,363,364,365,352,366,367,369,371,372,373,377,379,380,381,397,402,409,414,421,428,431,432,436,430,440,448,452,454,459,461,464,352,352,352,352,352,352,358,352,358,352,360,59,361,352,60,352,352,368,370,352,374,375,376,372,378,352,382,383,392,395,384,385,386,387,388,389,390,391,353,393,394,396,398,401,399,400,403,406,404,405,407,408,410,412,411,413,415,416,352,417,418,419,420,352,422,425,423,424,426,427,429,433,434,435,437,439,438,441,442,443,445,444,446,447,449,450,451,453,455,456,457,458,460,462,463,466,465,465,467,468,470,471,465,465,465,469,465,469,64,472,465,474,473,473,477,478,479,480,473,482,483,484,485,487,489,490,491,492,493,473,475,473,476,473,473,473,473,473,481,473,481,486,473,488,473,494,494,495,510,511,497,513,514,501,515,516,517,518,519,521,522,523,524,494,494,494,494,494,494,498,503,494,494,494,494,494,494,494,494,494,512,494,512,494,494,494,494,520,494,88,92,98,525,527,530,100,525,525,526,531,531,532,533,535,537,538,531,531,534,531,534,531,536,531,531,531,540,539,539,541,542,543,545,547,548,553,560,539,539,539,539,544,539,544,539,546,539,539,540,549,550,551,552,554,555,558,556,557,559,561,562,564,563,572,573,575,576,578,579,580,581,583,585,586,589,590,615,621,622,623,700,701,702,703,704,582,706,723,728,735,740,742,748,751,752,756,750,760,771,775,778,786,790,793,794,563,104,105,563,107,566,563,563,568,570,571,563,569,563,563,563,563,563,108,563,563,563,563,563,577,563,577,563,563,113,563,114,563,563,582,563,587,563,588,563,563,563,591,600,563,121,603,604,605,563,606,123,609,610,124,613,614,563,592,594,563,593,563,563,595,598,599,563,596,597,563,563,563,563,563,563,607,563,601,611,612,563,611,563,601,611,125,620,563,563,563,624,563,563,563,625,627,563,626,563,626,563,628,629,630,134,140,145,662,147,563,563,563,631,632,563,135,563,563,563,136,563,563,563,139,645,563,646,648,563,649,651,653,141,563,563,142,657,563,658,143,563,663,667,664,665,666,563,563,668,669,672,683,696,670,671,563,673,674,675,677,676,563,678,679,680,681,682,684,691,685,686,687,688,689,690,692,693,694,695,563,563,563,699,149,152,563,705,707,708,718,721,709,710,711,712,713,714,715,716,717,719,720,722,724,727,725,726,729,732,730,731,733,734,736,738,737,739,741,743,745,744,746,747,749,717,753,754,755,757,759,758,761,762,763,768,764,765,766,563,564,565,107,767,570,769,770,772,773,774,776,777,779,780,781,784,782,783,785,787,788,789,791,792,563,582,795,795,796,797,798,800,795,795,795,799,795,799,795,801,795,803,802,802,804,805,802,806,808,802,802,802,802,807,802,807,809,802,811,810,810,814,815,816,810,817,819,822,823,824,825,826,810,827,828,833,861,865,810,866,868,870,810,871,872,874,878,880,881,883,884,902,907,914,922,929,936,941,942,946,940,951,961,967,970,979,983,987,988,989,822,812,810,813,810,810,810,810,810,810,818,810,818,810,156,821,810,810,810,810,810,810,810,810,810,829,810,830,810,810,157,159,810,160,842,853,856,835,857,858,843,847,849,810,835,160,837,839,161,810,837,810,838,810,810,162,841,810,810,844,846,810,844,845,847,849,846,810,848,810,810,850,852,810,166,810,810,810,854,846,847,849,854,855,810,844,846,847,849,810,844,846,847,849,810,859,846,847,849,859,860,810,160,861,835,862,847,849,863,846,160,863,835,864,867,869,810,169,170,810,810,875,876,877,872,879,810,810,882,810,810,810,885,886,895,900,887,888,889,890,891,892,893,894,811,896,897,898,899,811,901,903,906,904,905,811,811,908,911,909,910,912,913,811,915,917,916,918,919,920,810,810,923,811,924,810,925,926,927,928,812,930,933,931,932,934,935,937,938,939,811,943,944,945,947,949,950,948,811,952,953,954,957,955,956,958,959,960,962,964,963,965,966,968,969,971,972,974,977,973,975,976,978,980,981,982,984,985,986,810,810,990,991,995,996,997,990,990,990,994,990,990,999,998,1e3,998,1001,1002,1003,998,998]],$send(self,"_lex_trans_targs=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_trans_actions"),self.$private("_lex_trans_actions","_lex_trans_actions=")}(Opal.get_singleton_class(self),$nesting),$writer=[[1,0,0,0,0,0,0,0,0,0,2,3,4,0,5,0,0,0,0,6,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,9,0,10,0,0,0,0,11,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,12,0,13,0,0,0,0,14,0,15,0,0,0,0,0,16,0,0,0,0,0,0,17,18,19,20,21,0,0,0,22,23,24,0,0,25,26,27,28,29,30,30,31,32,30,33,32,34,32,30,30,31,30,35,30,30,36,30,30,30,30,30,30,0,37,38,0,39,38,40,38,0,0,37,0,41,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,0,0,0,0,0,0,43,44,45,46,0,0,0,46,29,47,30,30,30,47,48,0,49,0,29,30,50,30,51,52,53,0,0,0,0,0,54,55,56,0,29,0,57,0,30,58,30,59,30,60,61,62,61,63,61,0,64,65,64,66,64,67,68,0,69,0,0,0,0,70,70,0,0,71,71,72,0,29,73,0,0,0,70,0,74,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,0,75,0,0,0,0,75,76,0,0,0,77,78,79,80,0,7,7,81,82,82,83,0,0,0,0,84,0,0,0,0,0,0,29,0,0,0,30,58,30,30,30,60,61,62,61,61,61,0,64,65,64,64,64,85,67,86,87,0,88,0,89,89,0,90,0,91,60,92,0,93,29,94,95,98,99,0,29,0,7,0,7,100,101,102,60,103,0,104,0,105,106,107,0,108,109,0,110,7,7,111,112,0,0,113,114,115,116,117,117,117,117,117,117,117,117,118,119,120,0,0,121,0,122,123,124,0,125,126,127,0,0,128,0,0,129,0,7,0,0,130,131,0,0,132,0,29,133,0,0,0,0,0,134,135,0,0,0,0,0,0,0,136,0,0,0,0,137,0,0,0,0,0,138,139,140,0,141,142,143,7,7,144,0,0,145,146,147,148,117,117,117,117,117,117,117,117,149,150,151,0,0,152,0,153,154,155,0,156,157,158,0,0,159,0,0,160,0,7,0,0,161,162,0,0,163,0,29,164,0,0,0,0,0,165,166,0,0,0,0,0,0,0,167,0,0,0,0,168,0,0,0,0,0,169,170,171,0,172,173,0,174,0,175,176,177,178,179,180,0,181,182,183,184,185,186,7,187,0,0,188,189,190,191,192,193,194,195,0,196,7,197,198,0,0,199,200,201,202,203,0,204,205,206,0,207,0,0,208,209,210,211,212,213,0,29,0,0,7,7,0,0,0,214,0,0,0,0,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,218,219,220,221,60,222,0,223,0,0,0,224,0,225,226,0,0,227,0,0,0,228,0,229,0,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,231,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,7,232,233,0,0,7,0,234,235,236,60,237,0,0,29,238,0,239,240,0,29,0,0,241,0,0,0,0,0,0,0,0,0,0,242,0,243,0,244,245,246,247,248,60,249,0,0,250,0,251,252,253,254,29,0,28,0,0,28,0,0,0,0,0,0,7,7,7,255,256,257,258,259,260,261,0,262,263,264,265,266,267,268,269,270,60,271,0,272,273,274,275,276,277,0,0,0,278,7,7,0,279,280,281,282,283,0,0,0,0,0,284,285,60,286,0,287,29,288,289,290,291,292,293,0,29,0,0,0,0,0,0,294,295,296,297,60,298,0,299,29,300,301,302,0,0,0,0,0,0,0,0,0,0,0,0,303,304,0,8,0,0,7,305,0,0,305,305,0,0,7,306,0,306,0,306,306,306,0,0,306,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,0,0,307,308,308,309,310,0,311,312,0,75,0,313,0,314,315,316,317,318,30,319,320,321,322,323,60,324,0,325,326,0,327,0,328,329,305,330,0,331,0,332,333,334,0,0,335,0,0,0,0,336,0,0,0,0,0,0,0,337,0,0,338,0,339,340,0,0,0,341,0,0,342,343,344,345,346,347,0,348,349,349,0,350,0,351,352,352,0,0,353,354,355,0,356,357,358,0,7,359,360,361,0,362,117,117,117,117,117,117,117,117,363,364,365,0,0,366,0,367,368,369,0,370,371,372,0,0,373,0,0,374,0,7,0,0,375,376,0,0,377,0,29,378,0,0,0,0,0,379,380,0,0,0,0,0,0,0,381,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,383,384,385,0,0,0,386,29,303,303,303,303,303,303,303,303,303,303,303,303,75,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,387,303,303,303,303,303,303,303,303,303,303,303,303,388,389,390,391,392,392,388,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,393,394,395,396,0,29,0,0,397,398,399,60,400,0,401,29,402,7,403,404,0,29,405,0,0,406,407,408,409,60,410,0,29,411,412,413,414,0,29,0,415,0,7,416,0,0,0,0,417,0,0,418,418,0,419,0,0,0,420,7,421,421,421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,422,423,424,0,425,426,427,428,429,430,60,431,0,432,0,0,433,434,435,436,437,438,439,440,441,0,442,0,443,444,0,0,445,446,447,0,0,448,0,0,447,449,449,450,451,0,452,453,0,454,455,456,0,457,458,0,0,459,460,447,447,461,0,0,462,462,0,463,0,464,465,7,0,466,0,467,468,469,470,470,471,471,0,0,472,473,473,474,474,475,476,476,477,477,478,479,479,480,480,0,0,481,482,483,484,485,486,486,483,485,487,418,488,0,0,0,489,0,0,490,491,421,421,421,492,421,493,494,29,495,496,497,0,0,0,0,0,0,0,0,0,0,0,0,498,0,0,0,0,492,0,0,0,0,0,499,500,0,0,0,0,0,0,501,0,0,0,0,0,500,502,503,0,504,0,505,0,0,0,0,506,0,0,0,0,0,0,0,0,0,507,0,0,0,0,0,0,0,506,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,508,509,510,511,511,89,511,512,513,514,0,515,516,0,517,0,518,0,0,0,519,520]],$send(self,"_lex_trans_actions=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_to_state_actions"),self.$private("_lex_to_state_actions","_lex_to_state_actions=")}(Opal.get_singleton_class(self),$nesting),$writer=[[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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,96,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,96,0,96,0,0,0,0,96,96,0,0,0,0,0,96,0,96,0,96,0,0,0,0,96,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,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,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,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,96,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0]],$send(self,"_lex_to_state_actions=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_from_state_actions"),self.$private("_lex_from_state_actions","_lex_from_state_actions=")}(Opal.get_singleton_class(self),$nesting),$writer=[[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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,97,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,97,0,97,0,0,0,0,97,97,0,0,0,0,0,97,0,97,0,97,0,0,0,0,97,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,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,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,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,97,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0]],$send(self,"_lex_from_state_actions=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("_lex_eof_trans"),self.$private("_lex_eof_trans","_lex_eof_trans=")}(Opal.get_singleton_class(self),$nesting),$writer=[[0,1,1,1,1,1,1,1,1,1,1,13,13,13,13,20,20,20,20,20,20,20,20,20,20,20,20,20,20,48,48,48,48,55,55,55,55,55,55,55,55,55,55,55,55,55,55,83,83,83,83,90,90,90,90,0,0,0,0,105,107,109,109,109,109,115,115,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,180,180,180,180,180,180,180,180,180,180,180,180,190,192,192,192,204,204,204,212,214,214,214,214,214,220,212,212,212,212,212,212,212,246,246,246,246,246,246,212,262,212,262,246,246,212,268,268,268,268,268,268,268,268,268,268,268,268,268,268,212,246,246,246,246,303,303,303,308,310,310,310,314,314,317,317,317,317,322,322,322,308,314,314,314,314,314,314,314,314,314,353,360,362,362,362,362,353,0,378,379,380,382,384,386,384,384,0,396,397,401,401,402,403,412,413,414,414,414,417,417,419,420,421,421,421,423,424,425,425,425,428,428,421,431,431,421,417,417,436,437,437,437,440,440,437,437,437,443,443,443,443,449,450,450,450,450,458,450,450,450,450,463,450,450,450,450,450,450,469,470,471,471,0,478,482,482,483,484,493,494,495,495,495,498,498,500,501,502,502,502,504,505,506,506,506,509,509,502,512,512,502,498,498,517,518,518,518,521,521,518,518,518,524,524,524,524,530,531,531,531,531,539,531,531,531,531,544,531,531,531,531,531,531,550,551,552,552,0,559,560,0,566,0,573,577,577,578,0,0,587,588,592,592,593,0,598,0,601,0,604,604,605,606,0,647,649,650,651,652,654,656,660,660,651,651,651,651,662,651,651,656,651,651,647,666,666,666,666,666,666,656,656,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,705,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,651,0,749,750,751,753,749,749,757,0,776,778,780,781,782,783,784,786,783,783,783,783,783,789,783,783,791,789,789,783,0,810,811,115,115,814,815,115,811,811,818,820,823,811,824,811,825,826,828,830,811,818,831,831,820,831,835,831,831,831,831,0,190,843,844,843,843,0,853,854,856,858,860,858,862,0,874,875,876,877,879,881,883,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,0,942,945,948,949,953,955,956,957,958,959,961,964,965,967,969,972,974,975,212,972,977,972,964,979,981,964,964,999,1002,1004,1005,1009,1012,1013,1014,1015,999,999,999,999,999,999,999,999,999,999,1019,1023,1025,999,999,964,1030,1031,1031,1031,964,964,964,1032,1039,1039,1041,1043,1052,1053,1054,1054,1054,1057,1057,1059,1060,1061,1061,1061,1063,1064,1065,1065,1065,1068,1068,1061,1071,1071,1061,1057,1057,1076,1077,1077,1077,1080,1080,1077,1077,1077,1083,1083,1083,1083,1089,1090,1090,1090,1090,1098,1090,1090,1090,1090,1104,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1122,1123,1124,1124,212,964,964,1128,964,959,942,942,942,942,942,942,942,942,942,942,942,212,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1181,949,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1206,964,0,1214,1215,1216,1218,1220,1222,0,1231,1232,1233,1234,1236,1231,1239,0,314,1294,1296,1297,1298,1299,1301,1303,1305,1308,1308,314,1310,1312,1313,1314,1310,1316,1318,1318,1321,1321,1324,1335,314,1341,1343,1345,1346,1349,1350,1324,1324,1353,1353,1353,1359,1361,1362,1365,1367,1368,1369,1353,1353,1376,1381,1386,1353,1353,1393,1393,1353,1353,1318,1310,1310,1318,1310,1310,1305,314,1411,1412,1412,1412,1412,1412,1412,1418,1305,1421,1422,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1462,1463,1423,1423,1467,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1521,1299,1522,0,1528,1529,1530,1532,1528,1528,1528,0,1537,1537,1537,1537,1541]],$send(self,"_lex_eof_trans=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_start")}(Opal.get_singleton_class(self),$nesting),$writer=[186],$send(self,"lex_start=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_error")}(Opal.get_singleton_class(self),$nesting),$writer=[0],$send(self,"lex_error=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_interp_words")}(Opal.get_singleton_class(self),$nesting),$writer=[195],$send(self,"lex_en_interp_words=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_interp_string")}(Opal.get_singleton_class(self),$nesting),$writer=[261],$send(self,"lex_en_interp_string=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_plain_words")}(Opal.get_singleton_class(self),$nesting),$writer=[326],$send(self,"lex_en_plain_words=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_plain_string")}(Opal.get_singleton_class(self),$nesting),$writer=[329],$send(self,"lex_en_plain_string=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_interp_backslash_delimited")}(Opal.get_singleton_class(self),$nesting),$writer=[331],$send(self,"lex_en_interp_backslash_delimited=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_plain_backslash_delimited")}(Opal.get_singleton_class(self),$nesting),$writer=[336],$send(self,"lex_en_plain_backslash_delimited=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_interp_backslash_delimited_words")}(Opal.get_singleton_class(self),$nesting),$writer=[337],$send(self,"lex_en_interp_backslash_delimited_words=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_plain_backslash_delimited_words")}(Opal.get_singleton_class(self),$nesting),$writer=[343],$send(self,"lex_en_plain_backslash_delimited_words=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_regexp_modifiers")}(Opal.get_singleton_class(self),$nesting),$writer=[345],$send(self,"lex_en_regexp_modifiers=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_variable")}(Opal.get_singleton_class(self),$nesting),$writer=[347],$send(self,"lex_en_expr_variable=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_fname")}(Opal.get_singleton_class(self),$nesting),$writer=[352],$send(self,"lex_en_expr_fname=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_endfn")}(Opal.get_singleton_class(self),$nesting),$writer=[465],$send(self,"lex_en_expr_endfn=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_dot")}(Opal.get_singleton_class(self),$nesting),$writer=[473],$send(self,"lex_en_expr_dot=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_arg")}(Opal.get_singleton_class(self),$nesting),$writer=[494],$send(self,"lex_en_expr_arg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_cmdarg")}(Opal.get_singleton_class(self),$nesting),$writer=[525],$send(self,"lex_en_expr_cmdarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_endarg")}(Opal.get_singleton_class(self),$nesting),$writer=[531],$send(self,"lex_en_expr_endarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_mid")}(Opal.get_singleton_class(self),$nesting),$writer=[539],$send(self,"lex_en_expr_mid=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_beg")}(Opal.get_singleton_class(self),$nesting),$writer=[563],$send(self,"lex_en_expr_beg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_labelarg")}(Opal.get_singleton_class(self),$nesting),$writer=[795],$send(self,"lex_en_expr_labelarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_value")}(Opal.get_singleton_class(self),$nesting),$writer=[802],$send(self,"lex_en_expr_value=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_expr_end")}(Opal.get_singleton_class(self),$nesting),$writer=[810],$send(self,"lex_en_expr_end=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_leading_dot")}(Opal.get_singleton_class(self),$nesting),$writer=[990],$send(self,"lex_en_leading_dot=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_line_comment")}(Opal.get_singleton_class(self),$nesting),$writer=[998],$send(self,"lex_en_line_comment=",Opal.to_a($writer)),$rb_minus($writer.length,1),function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("lex_en_line_begin")}(Opal.get_singleton_class(self),$nesting),$writer=[186],$send(self,"lex_en_line_begin=",Opal.to_a($writer)),$rb_minus($writer.length,1),Opal.const_set($nesting[0],"ESCAPES",$hash("a".$ord(),"","b".$ord(),"\b","e".$ord(),"","f".$ord(),"\f","n".$ord(),"\n","r".$ord(),"\r","s".$ord()," ","t".$ord(),"\t","v".$ord(),"\v","\\".$ord(),"\\").$freeze()),Opal.const_set($nesting[0],"REGEXP_META_CHARACTERS",$send($$($nesting,"Regexp"),"union",Opal.to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()),self.$attr_reader("source_buffer"),self.$attr_accessor("diagnostics"),self.$attr_accessor("static_env"),self.$attr_accessor("force_utf32"),self.$attr_accessor("cond","cmdarg","context","command_start"),self.$attr_accessor("tokens","comments"),self.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack"),Opal.def(self,"$initialize",$Lexer_pop_literal$57=function(version){return this.version=version,this.static_env=nil,this.context=nil,this.tokens=nil,this.comments=nil,this.$reset()},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$reset",$Lexer_pop_literal$57=function(reset_state){return null==reset_state&&(reset_state=!0),$truthy(reset_state)&&(this.cs=this.$class().$lex_en_line_begin(),this.cond=$$($nesting,"StackState").$new("cond"),this.cmdarg=$$($nesting,"StackState").$new("cmdarg"),this.cond_stack=[],this.cmdarg_stack=[]),this.force_utf32=!1,this.source_pts=nil,this.p=0,this.ts=nil,this.te=nil,this.act=0,this.stack=[],this.top=0,this.token_queue=[],this.literal_stack=[],this.eq_begin_s=nil,this.sharp_s=nil,this.newline_s=nil,this.num_base=nil,this.num_digits_s=nil,this.num_suffix_s=nil,this.num_xfrm=nil,this.escape_s=nil,this.escape=nil,this.herebody_s=nil,this.paren_nest=0,this.lambda_stack=[],this.dedent_level=nil,this.command_start=!0,this.cs_before_block_comment=this.$class().$lex_en_line_begin()},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$source_buffer=",$Lexer_pop_literal$57=function(source_buffer){var source=nil;return this.source_buffer=source_buffer,$truthy(this.source_buffer)?((source=this.source_buffer.$source()).$encoding()["$=="]($$$($$($nesting,"Encoding"),"UTF_8"))?this.source_pts=source.$unpack("U*"):this.source_pts=source.$unpack("C*"),this.source_pts["$[]"](0)["$=="](65279)?this.p=1:nil):this.source_pts=nil},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$encoding",$Lexer_pop_literal$57=function(){return this.source_buffer.$source().$encoding()},$Lexer_pop_literal$57.$$arity=0),Opal.const_set($nesting[0],"LEX_STATES",$hash2(["line_begin","expr_dot","expr_fname","expr_value","expr_beg","expr_mid","expr_arg","expr_cmdarg","expr_end","expr_endarg","expr_endfn","expr_labelarg","interp_string","interp_words","plain_string","plain_words"],{line_begin:self.$lex_en_line_begin(),expr_dot:self.$lex_en_expr_dot(),expr_fname:self.$lex_en_expr_fname(),expr_value:self.$lex_en_expr_value(),expr_beg:self.$lex_en_expr_beg(),expr_mid:self.$lex_en_expr_mid(),expr_arg:self.$lex_en_expr_arg(),expr_cmdarg:self.$lex_en_expr_cmdarg(),expr_end:self.$lex_en_expr_end(),expr_endarg:self.$lex_en_expr_endarg(),expr_endfn:self.$lex_en_expr_endfn(),expr_labelarg:self.$lex_en_expr_labelarg(),interp_string:self.$lex_en_interp_string(),interp_words:self.$lex_en_interp_words(),plain_string:self.$lex_en_plain_string(),plain_words:self.$lex_en_plain_string()})),Opal.def(self,"$state",$Lexer_pop_literal$57=function(){return $$($nesting,"LEX_STATES").$invert().$fetch(this.cs,this.cs)},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$state=",$Lexer_pop_literal$57=function(state){return this.cs=$$($nesting,"LEX_STATES").$fetch(state)},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$push_cmdarg",$Lexer_pop_literal$57=function(){return this.cmdarg_stack.$push(this.cmdarg),this.cmdarg=$$($nesting,"StackState").$new("cmdarg."+this.cmdarg_stack.$count())},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$pop_cmdarg",$Lexer_pop_literal$57=function(){return this.cmdarg=this.cmdarg_stack.$pop()},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$push_cond",$Lexer_pop_literal$57=function(){return this.cond_stack.$push(this.cond),this.cond=$$($nesting,"StackState").$new("cond."+this.cond_stack.$count())},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$pop_cond",$Lexer_pop_literal$57=function(){return this.cond=this.cond_stack.$pop()},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$dedent_level",$Lexer_pop_literal$57=function(){var $a=[this.dedent_level,nil],dedent_level=$a[0];return this.dedent_level=$a[1],dedent_level},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$advance",$Lexer_pop_literal$57=function(){var $a,$b,$$13,$$14,$$15,$$16,$$17,$$18,$$19,$$20,$$21,$$22,$$23,$$24,$$25,$$26,$$27,$$28,$$29,$$30,$$31,$$32,$$33,$$34,$$35,$$36,$$37,$$38,$$39,$$40,$$41,pe,_slen,_keys,_inds,_wide,ident,new_herebody_s,indent,dedent_body,self=this,klass=nil,_lex_trans_keys=nil,_lex_key_spans=nil,_lex_index_offsets=nil,_lex_indicies=nil,_lex_trans_targs=nil,_lex_trans_actions=nil,_lex_to_state_actions=nil,_lex_from_state_actions=nil,_lex_eof_trans=nil,p=nil,eof=nil,cmd_state=nil,_trans=nil,_goto_level=nil,$case=nil,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil,tm=nil,heredoc_e=nil,diag_msg=nil,ident_tok=nil,ident_ts=nil,ident_te=nil,current_literal=nil,$writer=nil,line=nil,$ret_or_4=nil,string=nil,$ret_or_5=nil,lookahead=nil,$ret_or_6=nil,token=nil,message=nil,$ret_or_7=nil,$ret_or_8=nil,escaped_char=nil,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil,$ret_or_14=nil,$ret_or_15=nil,$ret_or_16=nil,$ret_or_17=nil,$ret_or_18=nil,$ret_or_19=nil,$ret_or_20=nil,$ret_or_21=nil,$ret_or_22=nil,$ret_or_23=nil,$ret_or_24=nil,$ret_or_25=nil,$ret_or_26=nil,$ret_or_27=nil,$ret_or_28=nil,$ret_or_29=nil,$ret_or_30=nil,$ret_or_31=nil,$ret_or_32=nil,$ret_or_33=nil,$ret_or_34=nil,$ret_or_35=nil,$ret_or_36=nil,$ret_or_37=nil,$ret_or_38=nil,$ret_or_39=nil,$ret_or_40=nil,$ret_or_41=nil,$ret_or_42=nil,$ret_or_43=nil,$ret_or_44=nil,$ret_or_45=nil,$ret_or_46=nil,$ret_or_47=nil,$ret_or_48=nil,$ret_or_49=nil,$ret_or_50=nil,$ret_or_51=nil,$ret_or_52=nil,$ret_or_53=nil,$ret_or_54=nil,$ret_or_55=nil,$ret_or_56=nil,$ret_or_57=nil,$ret_or_58=nil,$ret_or_59=nil,unknown_options=nil,type=nil,delimiter=nil,$ret_or_60=nil,escape=nil,$ret_or_61=nil,$ret_or_62=nil,$ret_or_63=nil,followed_by_nl=nil,nl_emitted=nil,dots_te=nil,$ret_or_64=nil,$ret_or_65=nil,$ret_or_66=nil,$ret_or_67=nil,$ret_or_68=nil,value=nil,$ret_or_69=nil,$ret_or_70=nil,$ret_or_71=nil,$ret_or_72=nil,digits=nil,$ret_or_73=nil,$ret_or_74=nil,$ret_or_75=nil,invalid_idx=nil,invalid_s=nil,$ret_or_76=nil,$ret_or_77=nil,$ret_or_78=nil,$ret_or_79=nil,$ret_or_80=nil,$ret_or_81=nil,$ret_or_82=nil,$ret_or_83=nil,$ret_or_84=nil,$ret_or_85=nil,$ret_or_86=nil,$ret_or_87=nil,$ret_or_88=nil,$ret_or_89=nil,$ret_or_90=nil,$ret_or_91=nil,$ret_or_92=nil,$ret_or_93=nil,$ret_or_94=nil,$ret_or_95=nil,$ret_or_96=nil,$ret_or_97=nil,$ret_or_98=nil,$ret_or_99=nil,$ret_or_100=nil,$ret_or_101=nil,$ret_or_102=nil,$ret_or_103=nil,$ret_or_104=nil,$ret_or_105=nil,$ret_or_106=nil,$ret_or_107=nil,$ret_or_108=nil,$ret_or_109=nil,$ret_or_110=nil,$ret_or_111=nil,codepoints=nil,codepoint_s=nil,$ret_or_112=nil,spaces_p=nil,$ret_or_113=nil,$ret_or_114=nil,$ret_or_115=nil,$ret_or_116=nil,$ret_or_117=nil,$ret_or_118=nil,$ret_or_119=nil,$ret_or_120=nil,$ret_or_121=nil,$ret_or_122=nil,$ret_or_123=nil,$ret_or_124=nil,$ret_or_125=nil,$ret_or_126=nil,$ret_or_127=nil,$ret_or_128=nil,$ret_or_129=nil,$ret_or_130=nil,codepoint=nil,$ret_or_131=nil,$ret_or_132=nil,$ret_or_133=nil,$ret_or_134=nil,$ret_or_135=nil,$ret_or_136=nil,$ret_or_137=nil,$ret_or_138=nil,$ret_or_139=nil,$ret_or_140=nil,$ret_or_141=nil,$ret_or_142=nil,$ret_or_143=nil,$ret_or_144=nil,$ret_or_145=nil,$ret_or_146=nil,$ret_or_147=nil,$ret_or_148=nil,$ret_or_149=nil,$ret_or_150=nil,$ret_or_151=nil,$ret_or_152=nil,$ret_or_153=nil,$ret_or_154=nil,$ret_or_155=nil,$ret_or_156=nil,$ret_or_157=nil,$ret_or_158=nil,$ret_or_159=nil,$ret_or_160=nil,$ret_or_161=nil,$ret_or_162=nil,$ret_or_163=nil,$ret_or_164=nil,$ret_or_165=nil,$ret_or_166=nil,$ret_or_167=nil,$ret_or_168=nil,$ret_or_169=nil,$ret_or_170=nil,$ret_or_171=nil,$ret_or_172=nil,$ret_or_173=nil,$ret_or_174=nil,$ret_or_175=nil,$ret_or_176=nil,$ret_or_177=nil,$ret_or_178=nil,$ret_or_179=nil,$ret_or_180=nil,$ret_or_181=nil,$ret_or_182=nil,$ret_or_183=nil,$ret_or_184=nil,$ret_or_185=nil,$ret_or_186=nil,$ret_or_187=nil,$ret_or_188=nil,$ret_or_189=nil,$ret_or_190=nil,$ret_or_191=nil,$ret_or_192=nil,$ret_or_193=nil,$ret_or_194=nil,$ret_or_195=nil,$ret_or_196=nil,$ret_or_197=nil,$ret_or_198=nil,$ret_or_199=nil,$ret_or_200=nil,$ret_or_201=nil,$ret_or_202=nil,$ret_or_203=nil,$ret_or_204=nil,$ret_or_205=nil,$ret_or_206=nil,$ret_or_207=nil,$ret_or_208=nil,$ret_or_209=nil,$ret_or_210=nil,$ret_or_211=nil,$ret_or_212=nil,$ret_or_213=nil,$ret_or_214=nil,$ret_or_215=nil,$ret_or_216=nil,$ret_or_217=nil,$ret_or_218=nil,$ret_or_219=nil,$ret_or_220=nil,$ret_or_221=nil,$ret_or_222=nil,$ret_or_223=nil,$ret_or_224=nil,$ret_or_225=nil,$ret_or_226=nil,$ret_or_227=nil,$ret_or_228=nil,$ret_or_229=nil,$ret_or_230=nil,$ret_or_231=nil,$ret_or_232=nil,$ret_or_233=nil,$ret_or_234=nil,$ret_or_235=nil,$ret_or_236=nil,$ret_or_237=nil,$ret_or_238=nil,$ret_or_239=nil,$ret_or_240=nil,$ret_or_241=nil,$ret_or_242=nil,$ret_or_243=nil,$ret_or_244=nil,$ret_or_245=nil,$ret_or_246=nil,$ret_or_247=nil,$ret_or_248=nil,$ret_or_249=nil,$ret_or_250=nil,$ret_or_251=nil,$ret_or_252=nil,$ret_or_253=nil,$ret_or_254=nil,$ret_or_255=nil,$ret_or_256=nil,$ret_or_257=nil,$ret_or_258=nil,$ret_or_259=nil,$ret_or_260=nil,$ret_or_261=nil,$ret_or_262=nil,$ret_or_263=nil,$ret_or_264=nil,$ret_or_265=nil,$ret_or_266=nil,$ret_or_267=nil,$ret_or_268=nil,$ret_or_269=nil,$ret_or_270=nil,$ret_or_271=nil,$ret_or_272=nil,$ret_or_273=nil,$ret_or_274=nil,$ret_or_275=nil,$ret_or_276=nil,$ret_or_277=nil,$ret_or_278=nil,$ret_or_279=nil,$ret_or_280=nil,$ret_or_281=nil,$ret_or_282=nil,$ret_or_283=nil,$ret_or_284=nil,$ret_or_285=nil,$ret_or_286=nil,$ret_or_287=nil,$ret_or_288=nil,$ret_or_289=nil,$ret_or_290=nil,$ret_or_291=nil,$ret_or_292=nil,$ret_or_293=nil,$ret_or_294=nil,$ret_or_295=nil,$ret_or_296=nil,$ret_or_297=nil,$ret_or_298=nil,$ret_or_299=nil,$ret_or_300=nil,$ret_or_301=nil,$ret_or_302=nil,$ret_or_303=nil,$ret_or_304=nil,$ret_or_305=nil,$ret_or_306=nil,$ret_or_307=nil,$ret_or_308=nil,$ret_or_309=nil,$ret_or_310=nil,$ret_or_311=nil,$ret_or_312=nil,$ret_or_313=nil,$ret_or_314=nil,$ret_or_315=nil,$ret_or_316=nil,$ret_or_317=nil,$ret_or_318=nil,$ret_or_319=nil,$ret_or_320=nil,$ret_or_321=nil,$ret_or_322=nil,$ret_or_323=nil,$ret_or_324=nil,$ret_or_325=nil,$ret_or_326=nil,$ret_or_327=nil,$ret_or_328=nil,$ret_or_329=nil,$ret_or_330=nil,$ret_or_331=nil,$ret_or_332=nil,$ret_or_333=nil,$ret_or_334=nil,$ret_or_335=nil,$ret_or_336=nil,$ret_or_337=nil,$ret_or_338=nil,$ret_or_339=nil,$ret_or_340=nil,$ret_or_341=nil,$ret_or_342=nil,$ret_or_343=nil,$ret_or_344=nil,$ret_or_345=nil,$ret_or_346=nil,$ret_or_347=nil,$ret_or_348=nil,$ret_or_349=nil,$ret_or_350=nil,$ret_or_351=nil,$ret_or_352=nil,$ret_or_353=nil,$ret_or_354=nil,$ret_or_355=nil,$ret_or_356=nil,$ret_or_357=nil,$ret_or_358=nil,$ret_or_359=nil,$ret_or_360=nil,$ret_or_361=nil,$ret_or_362=nil,$ret_or_363=nil,$ret_or_364=nil,$ret_or_365=nil,$ret_or_366=nil,$ret_or_367=nil,$ret_or_368=nil,$ret_or_369=nil,$ret_or_370=nil,$ret_or_371=nil,$ret_or_372=nil,$ret_or_373=nil,$ret_or_374=nil,$ret_or_375=nil,$ret_or_376=nil,$ret_or_377=nil,$ret_or_378=nil,$ret_or_379=nil,$ret_or_380=nil,$ret_or_381=nil,$ret_or_382=nil,$ret_or_383=nil,$ret_or_384=nil,$ret_or_385=nil,$ret_or_386=nil,$ret_or_387=nil,$ret_or_388=nil,$ret_or_389=nil,$ret_or_390=nil,$ret_or_391=nil,$ret_or_392=nil,$ret_or_393=nil,$ret_or_394=nil,$ret_or_395=nil,$ret_or_396=nil,$ret_or_397=nil,$ret_or_398=nil,$ret_or_399=nil,$ret_or_400=nil,$ret_or_401=nil,$ret_or_402=nil,$ret_or_403=nil,$ret_or_404=nil,$ret_or_405=nil,$ret_or_406=nil,$ret_or_407=nil,$ret_or_408=nil,$ret_or_409=nil,$ret_or_410=nil,$ret_or_411=nil,$ret_or_412=nil,$ret_or_413=nil,$ret_or_414=nil,$ret_or_415=nil,$ret_or_416=nil,$ret_or_417=nil,$ret_or_418=nil,$ret_or_419=nil,$ret_or_420=nil,$ret_or_421=nil,$ret_or_422=nil,$ret_or_423=nil,$ret_or_424=nil,$ret_or_425=nil,$ret_or_426=nil,$ret_or_427=nil,$ret_or_428=nil,$ret_or_429=nil,$ret_or_430=nil,$ret_or_431=nil,$ret_or_432=nil,$ret_or_433=nil,$ret_or_434=nil,$ret_or_435=nil,$ret_or_436=nil,$ret_or_437=nil,$ret_or_438=nil,$ret_or_439=nil,$ret_or_440=nil,$ret_or_441=nil,$ret_or_442=nil,$ret_or_443=nil,$ret_or_444=nil,$ret_or_445=nil,$ret_or_446=nil,$ret_or_447=nil,$ret_or_448=nil,$ret_or_449=nil,$ret_or_450=nil,$ret_or_451=nil,$ret_or_452=nil,$ret_or_453=nil,$ret_or_454=nil,$ret_or_455=nil,$ret_or_456=nil,$ret_or_457=nil,$ret_or_458=nil,$ret_or_459=nil,$ret_or_460=nil,$ret_or_461=nil,$ret_or_462=nil,$ret_or_463=nil,$ret_or_464=nil,$ret_or_465=nil,$ret_or_466=nil,$ret_or_467=nil,$ret_or_468=nil,$ret_or_469=nil,$ret_or_470=nil,$ret_or_471=nil,$ret_or_472=nil,$ret_or_473=nil,$ret_or_474=nil,$ret_or_475=nil,$ret_or_476=nil,$ret_or_477=nil,$ret_or_478=nil,$ret_or_479=nil,$ret_or_480=nil,$ret_or_481=nil,$ret_or_482=nil,$ret_or_483=nil,$ret_or_484=nil,$ret_or_485=nil,$ret_or_486=nil,$ret_or_487=nil,$ret_or_488=nil,$ret_or_489=nil,$ret_or_490=nil,$ret_or_491=nil,$ret_or_492=nil,$ret_or_493=nil,$ret_or_494=nil,$ret_or_495=nil,$ret_or_496=nil,$ret_or_497=nil,$ret_or_498=nil,$ret_or_499=nil,$ret_or_500=nil,$ret_or_501=nil,$ret_or_502=nil,$ret_or_503=nil,$ret_or_504=nil,$ret_or_505=nil,$ret_or_506=nil,$ret_or_507=nil,$ret_or_508=nil,$ret_or_509=nil,$ret_or_510=nil,$ret_or_511=nil,$ret_or_512=nil,$ret_or_513=nil,$ret_or_514=nil,$ret_or_515=nil,$ret_or_516=nil,$ret_or_517=nil,$ret_or_518=nil,$ret_or_519=nil,$ret_or_520=nil,$ret_or_521=nil,$ret_or_522=nil;if($truthy(self.token_queue["$any?"]()))return self.token_queue.$shift();for(klass=self.$class(),_lex_trans_keys=klass.$send("_lex_trans_keys"),_lex_key_spans=klass.$send("_lex_key_spans"),_lex_index_offsets=klass.$send("_lex_index_offsets"),_lex_indicies=klass.$send("_lex_indicies"),_lex_trans_targs=klass.$send("_lex_trans_targs"),_lex_trans_actions=klass.$send("_lex_trans_actions"),_lex_to_state_actions=klass.$send("_lex_to_state_actions"),_lex_from_state_actions=klass.$send("_lex_from_state_actions"),_lex_eof_trans=klass.$send("_lex_eof_trans"),pe=$rb_plus(self.source_pts.$size(),2),$a=[self.p,pe],p=$a[0],eof=$a[1],cmd_state=self.command_start,self.command_start=!1,$b=nil,$a=Opal.to_ary($b),null==$a[0]||$a[0],_trans=null==$a[1]?nil:$a[1],null==$a[2]||$a[2],null==$a[3]||$a[3],null==$a[4]||$a[4],null==$a[5]||$a[5],_goto_level=0,0;$truthy(!0);){if($truthy($rb_le(_goto_level,0))){if(p["$=="](pe)){_goto_level=30;continue}if(self.cs["$=="](0)){_goto_level=40;continue}}if($truthy($rb_le(_goto_level,10))&&($case=_lex_from_state_actions["$[]"](self.cs),97["$==="]($case)&&(self.ts=p),_keys=self.cs["$<<"](1),_inds=_lex_index_offsets["$[]"](self.cs),_slen=_lex_key_spans["$[]"](self.cs),_wide=$truthy($ret_or_1=self.source_pts["$[]"](p))?$ret_or_1:0,_trans=$truthy($truthy($ret_or_2=$truthy($ret_or_3=$rb_gt(_slen,0))?$rb_le(_lex_trans_keys["$[]"](_keys),_wide):$ret_or_3)?$rb_le(_wide,_lex_trans_keys["$[]"]($rb_plus(_keys,1))):$ret_or_2)?_lex_indicies["$[]"]($rb_minus($rb_plus(_inds,_wide),_lex_trans_keys["$[]"](_keys))):_lex_indicies["$[]"]($rb_plus(_inds,_slen))),$truthy($rb_le(_goto_level,15))&&(self.cs=_lex_trans_targs["$[]"](_trans),$truthy(_lex_trans_actions["$[]"](_trans)["$!="](0))))if($case=_lex_trans_actions["$[]"](_trans),29["$==="]($case))self.newline_s=p;else if(117["$==="]($case))self.escape_s=p,self.escape=nil;else if(30["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil);else if(60["$==="]($case))self.sharp_s=$rb_minus(p,1);else if(64["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p);else if(310["$==="]($case))tm=p;else if(37["$==="]($case))tm=p;else if(39["$==="]($case))tm=p;else if(41["$==="]($case))tm=p;else if(71["$==="]($case))heredoc_e=p;else if(349["$==="]($case))tm=$rb_minus(p,1),diag_msg="ivar_name";else if(352["$==="]($case))tm=$rb_minus(p,2),diag_msg="cvar_name";else if(360["$==="]($case))self.escape=nil;else if(392["$==="]($case))tm=p;else if(308["$==="]($case))ident_tok=self.$tok(),ident_ts=self.ts,ident_te=self.te;else if(479["$==="]($case))self.num_base=16,self.num_digits_s=p;else if(473["$==="]($case))self.num_base=10,self.num_digits_s=p;else if(476["$==="]($case))self.num_base=8,self.num_digits_s=p;else if(470["$==="]($case))self.num_base=2,self.num_digits_s=p;else if(485["$==="]($case))self.num_base=10,self.num_digits_s=self.ts;else if(447["$==="]($case))self.num_base=8,self.num_digits_s=self.ts;else if(462["$==="]($case))self.num_suffix_s=p;else if(455["$==="]($case))self.num_suffix_s=p;else if(452["$==="]($case))self.num_suffix_s=p;else if(89["$==="]($case))tm=p;else if(7["$==="]($case))self.te=$rb_plus(p,1);else{if(113["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(5["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(109["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_4=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_4)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(108["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_5=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_5)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_6=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_6)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(115["$==="]($case))p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if(114["$==="]($case)){p=$rb_minus(self.te=p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(111["$==="]($case))p=$rb_minus(self.te=p,1),self.$literal().$extend_space(self.ts,self.te);else if(112["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_7=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_7)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_8=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_8)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(6["$==="]($case))p=$rb_minus(self.te,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_9=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_9)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_10=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_10)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_11=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_11)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_12=$truthy($ret_or_13=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_13)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_12)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_14=self.escape)?$ret_or_14:self.$tok(),self.ts,self.te);else if(4["$==="]($case)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($truthy($ret_or_15=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_15)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_16=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_16)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if(145["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(10["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(142["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_17=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_17)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(141["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_18=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_18)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_19=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_19)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(147["$==="]($case))p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if(146["$==="]($case)){p=$rb_minus(self.te=p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(144["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_20=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_20)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_21=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_21)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(11["$==="]($case))p=$rb_minus(self.te,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_22=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_22)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_23=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_23)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_24=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_24)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_25=$truthy($ret_or_26=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_26)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_25)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_27=self.escape)?$ret_or_27:self.$tok(),self.ts,self.te);else if(9["$==="]($case)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($truthy($ret_or_28=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_28)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_29=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_29)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(173["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_30=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_30)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(172["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_31=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_31)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_32=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_32)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(175["$==="]($case))p=$rb_minus(self.te=p,1),self.$literal().$extend_space(self.ts,self.te);else if(176["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_33=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_33)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_34=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_34)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(179["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_35=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_35)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(178["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_36=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_36)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_37=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_37)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(181["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_38=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_38)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_39=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_39)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if(188["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(13["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(185["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_40=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_40)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(184["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_41=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_41)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_42=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_42)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(190["$==="]($case))p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if(189["$==="]($case)){p=$rb_minus(self.te=p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(187["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_43=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_43)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_44=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_44)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(12["$==="]($case)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($truthy($ret_or_45=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_45)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_46=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_46)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(192["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_47=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_47)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(191["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_48=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_48)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_49=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_49)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if(199["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(15["$==="]($case)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(195["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_50=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_50)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(194["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_51=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_51)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_52=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_52)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(201["$==="]($case))p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if(200["$==="]($case)){p=$rb_minus(self.te=p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(197["$==="]($case))p=$rb_minus(self.te=p,1),self.$literal().$extend_space(self.ts,self.te);else if(198["$==="]($case)){if(p=$rb_minus(self.te=p,1),string=self.$tok(),$truthy($truthy($ret_or_53=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_53)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_54=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_54)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(14["$==="]($case)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($truthy($ret_or_55=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_55)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_56=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_56)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(203["$==="]($case)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_57=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_57)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(202["$==="]($case)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($truthy($ret_or_58=$rb_ge(self.version,22))?self.cond["$active?"]()["$!"]():$ret_or_58)&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$truthy($truthy($ret_or_59=current_literal["$heredoc?"]()["$!"]())?token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead):$ret_or_59)){token["$[]"](0)["$=="]("tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if(205["$==="]($case))p=$rb_minus(self.te=p,1),self.$literal().$extend_space(self.ts,self.te);else{if(206["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tREGEXP_OPT",self.$tok(self.ts,$rb_minus(self.te,1)),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(207["$==="]($case)){p=$rb_minus(self.te=p,1),unknown_options=self.$tok().$scan(/[^imxouesn]/),$truthy(unknown_options["$any?"]())&&self.$diagnostic("error","regexp_options",$hash2(["options"],{options:unknown_options.$join()})),self.$emit("tREGEXP_OPT"),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(16["$==="]($case)){self.te=$rb_plus(p,1),$truthy(self.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?self.$emit("tNTH_REF",self.$tok($rb_plus(self.ts,1)).$to_i()):$truthy(self.$tok()["$=~"](/^\$([&`'+])$/))?self.$emit("tBACK_REF"):self.$emit("tGVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if(208["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy(self.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?self.$emit("tNTH_REF",self.$tok($rb_plus(self.ts,1)).$to_i()):$truthy(self.$tok()["$=~"](/^\$([&`'+])$/))?self.$emit("tBACK_REF"):self.$emit("tGVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if(210["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy(self.$tok()["$=~"](/^@@[0-9]/))&&self.$diagnostic("error","cvar_name",$hash2(["name"],{name:self.$tok()})),self.$emit("tCVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if(209["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy(self.$tok()["$=~"](/^@[0-9]/))&&self.$diagnostic("error","ivar_name",$hash2(["name"],{name:self.$tok()})),self.$emit("tIVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if(231["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(217["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(18["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(214["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(226["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(20["$==="]($case)){if(self.te=$rb_plus(p,1),$truthy(self["$version?"](23))){type=($b=[self.$tok()["$[]"]($range(0,-2,!1)),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(213["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(212["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(230["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(227["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tCONSTANT"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(229["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(224["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(220["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(225["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(218["$==="]($case))p=$rb_minus(self.te=p,1);else{if(223["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(19["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(17["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(216["$==="]($case)){if($case=self.act,43["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(44["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(45["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}}else{if(22["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tLABEL",self.$tok(self.ts,$rb_minus(self.te,2)),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=795,p=$rb_plus(p,1),_goto_level=40;continue}if(23["$==="]($case)){if(self.te=$rb_plus(p,1),$truthy($truthy($ret_or_60=$rb_ge(self.version,31))?self.context.$in_argdef():$ret_or_60)){self.$emit("tBDOT3","...".$freeze()),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,3),self.cs=810,_goto_level=20;continue}if(233["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(232["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(235["$==="]($case))p=$rb_minus(self.te=p,1);else{if(234["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(21["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(241["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(240["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(239["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(251["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(242["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tIDENTIFIER"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(247["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(245["$==="]($case))p=$rb_minus(self.te=p,1);else{if(250["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(274["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(257["$==="]($case)){self.te=$rb_plus(p,1),self.$tok(tm,$rb_plus(tm,1))["$=="]("/".$freeze())&&($truthy($rb_lt(self.version,30))?self.$diagnostic("warning","ambiguous_literal",nil,self.$range(tm,$rb_plus(tm,1))):self.$diagnostic("warning","ambiguous_regexp",nil,self.$range(tm,$rb_plus(tm,1)))),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if(263["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(25["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}if(265["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if(40["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(252["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(253["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(264["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(260["$==="]($case)){p=$rb_minus(self.te=p,1),self.$diagnostic("warning","ambiguous_prefix",$hash2(["prefix"],{prefix:self.$tok(tm,self.te)}),self.$range(tm,self.te)),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if(262["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(256["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(255["$==="]($case))p=$rb_minus(self.te=p,1);else{if(273["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(26["$==="]($case))p=$rb_minus(self.te,1);else{if(42["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(24["$==="]($case)){if($case=self.act,72["$==="]($case)){p=$rb_minus(self.te,1),self.$tok(tm,$rb_plus(tm,1))["$=="]("/".$freeze())&&($truthy($rb_lt(self.version,30))?self.$diagnostic("warning","ambiguous_literal",nil,self.$range(tm,$rb_plus(tm,1))):self.$diagnostic("warning","ambiguous_regexp",nil,self.$range(tm,$rb_plus(tm,1)))),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if(73["$==="]($case)){p=$rb_minus(self.te,1),self.$diagnostic("warning","ambiguous_prefix",$hash2(["prefix"],{prefix:self.$tok(tm,self.te)}),self.$range(tm,self.te)),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if(78["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}p=$rb_minus(self.te,1)}else{if(44["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if(278["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(279["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if(45["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if(43["$==="]($case)){if($case=self.act,85["$==="]($case)){p=$rb_minus(self.te,1),$truthy(self.cond["$active?"]())?self.$emit("kDO_COND","do".$freeze(),$rb_minus(self.te,2),self.te):self.$emit("kDO","do".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(86["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}}else{if(289["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_do(!0),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(282["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(283["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(284["$==="]($case))p=$rb_minus(self.te=p,1);else{if(287["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(293["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(292["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(301["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}if(295["$==="]($case))p=$rb_minus(self.te=p,1);else{if(299["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(294["$==="]($case)){if($case=self.act,93["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(94["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}}else{if(57["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(334["$==="]($case)){self.te=$rb_plus(p,1),type=delimiter=self.$tok()["$[]"](0).$chr(),p=$rb_minus(p,1),self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if(326["$==="]($case)){self.te=$rb_plus(p,1),type=($b=[self.source_buffer.$slice(self.ts).$chr(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if(55["$==="]($case)){self.te=$rb_plus(p,1),type=($b=[self.$tok()["$[]"]($range(0,-2,!1)),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if(347["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.$emit("tSYMBEG",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),self.cs=352,_goto_level=20;continue}if(335["$==="]($case)){self.te=$rb_plus(p,1),type=($b=[self.$tok(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if(346["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),$rb_plus(self.ts,2))),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(69["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1)),self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(357["$==="]($case)){self.te=$rb_plus(p,1),escape=$hash2([" ","\r","\n","\t","\v","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\v":"\\v","\f":"\\f"})["$[]"](self.source_buffer.$slice($rb_plus(self.ts,1))),self.$diagnostic("warning","invalid_escape_use",$hash2(["escape"],{escape:escape}),self.$range()),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(356["$==="]($case))self.te=$rb_plus(p,1),self.$diagnostic("fatal","incomplete_escape",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(336["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if(52["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),$truthy(self["$version?"](18))?(ident=self.$tok(self.ts,$rb_minus(self.te,2)),self.$emit($truthy(self.source_buffer.$slice(self.ts)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",ident,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,1),$truthy($truthy($ret_or_61=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](ident):$ret_or_61)?self.cs=810:self.cs=self.$arg_or_cmdarg(cmd_state)):(self.$emit("tLABEL",self.$tok(self.ts,$rb_minus(self.te,2)),self.ts,$rb_minus(self.te,1)),self.cs=795),p=$rb_plus(p,1),_goto_level=40;continue}if(49["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER",ident_tok,ident_ts,ident_te),p=$rb_minus(ident_te,1),$truthy($truthy($ret_or_62=$truthy($ret_or_63=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](ident_tok):$ret_or_63)?$rb_lt(self.version,25):$ret_or_62)?self.cs=465:self.cs=525,p=$rb_plus(p,1),_goto_level=40;continue}if(320["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if(56["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(304["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(330["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(329["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tSTAR","*".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(325["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("fatal","string_eof",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else if(354["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(337["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1)),self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(350["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(355["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("fatal","incomplete_escape",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(361["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(327["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if(331["$==="]($case)){p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$emit("tBDOT2"):self.$emit("tDOT2"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(332["$==="]($case)){p=$rb_minus(self.te=p,1),followed_by_nl=$rb_minus(self.te,1)["$=="](self.newline_s),nl_emitted=!1,dots_te=$truthy(followed_by_nl)?$rb_minus(self.te,1):self.te,$truthy($rb_ge(self.version,30))?$truthy($truthy($ret_or_64=self.lambda_stack["$any?"]())?$rb_plus(self.lambda_stack.$last(),1)["$=="](self.paren_nest):$ret_or_64)?self.$emit("tDOT3","...".$freeze(),self.ts,dots_te):(self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te),$truthy($truthy($ret_or_65=$truthy($ret_or_66=$rb_ge(self.version,31))?followed_by_nl:$ret_or_66)?self.context.$in_argdef():$ret_or_65)&&(self.$emit("tNL",$rb_minus(self.te,1),self.te),nl_emitted=!0)):$truthy($rb_ge(self.version,27))?self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te):self.$emit("tDOT3","...".$freeze(),self.ts,dots_te),$truthy($truthy($ret_or_67=followed_by_nl)?nl_emitted["$!"]():$ret_or_67)&&(p=$rb_minus(p,1)),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(307["$==="]($case)){if(p=$rb_minus(self.te=p,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_68=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_68)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(317["$==="]($case))p=$rb_minus(self.te=p,1);else{if(319["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if(322["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(54["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("fatal","string_eof",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else if(73["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(74["$==="]($case)){p=$rb_minus(self.te,1),value=$truthy($ret_or_69=self.escape)?$ret_or_69:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(48["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_70=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_70)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(53["$==="]($case))p=$rb_minus(self.te,1);else{if(68["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(51["$==="]($case)){if($case=self.act,99["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(106["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(117["$==="]($case)){if(p=$rb_minus(self.te,1),$truthy($rb_ge(self.version,27))){self.$emit("tPIPE",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,2),self.cs=810,_goto_level=20;continue}if(121["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if(122["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(123["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(127["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(128["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_71=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_71)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(132["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}}}else{if(395["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(396["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(397["$==="]($case))p=$rb_minus(self.te=p,1);else{if(401["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(77["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(405["$==="]($case)){self.te=$rb_plus(p,1),self.cs=self.$push_literal(self.$tok(),self.$tok(),self.ts),_goto_level=20;continue}if(404["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(403["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(407["$==="]($case))p=$rb_minus(self.te=p,1);else{if(406["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(76["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if(440["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tLAMBDA","->".$freeze(),self.ts,$rb_plus(self.ts,2)),self.lambda_stack.$push(self.paren_nest),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if(86["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(415["$==="]($case)){self.te=$rb_plus(p,1),type=($b=[self.$tok(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts,nil,!1,!1,!0),_goto_level=20;continue}if(79["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(436["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=473,p=$rb_plus(p,1),_goto_level=40;continue}if(489["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(429["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(434["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tOP_ASGN",self.$tok(self.ts,$rb_minus(self.te,1))),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(420["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tEH","?".$freeze()),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(417["$==="]($case)){self.te=$rb_plus(p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(419["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tSEMI",";".$freeze()),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(494["$==="]($case))self.te=$rb_plus(p,1),self.$diagnostic("error","bare_backslash",nil,self.$range(self.ts,$rb_plus(self.ts,1))),p=$rb_minus(p,1);else if(414["$==="]($case))self.te=$rb_plus(p,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else{if(413["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(505["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if(503["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(502["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(444["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("error","no_dot_digit_literal");else{if(491["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(433["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),$writer=[self.top,self.cs],$send(self.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if(441["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=473,p=$rb_plus(p,1),_goto_level=40;continue}if(497["$==="]($case)){if(p=$rb_minus(self.te=p,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_72=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_72)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(439["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(435["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(428["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(442["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(426["$==="]($case))p=$rb_minus(self.te=p,1);else if(432["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else{if(84["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_73=$truthy($ret_or_74=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_74)?self["$version?"](18):$ret_or_73)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_75=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_75)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(80["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("error","no_dot_digit_literal");else{if(83["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(78["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else if(81["$==="]($case)){if($case=self.act,145["$==="]($case)){p=$rb_minus(self.te,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$tok()["$=="]("{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):self.$tok()["$=="]("{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),self.$tok()["$=="]("{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(146["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if(147["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(148["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(149["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(150["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(151["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),$truthy($truthy($ret_or_76=self["$version?"](18))?self.$tok()["$=="]("not".$freeze()):$ret_or_76)){self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(152["$==="]($case)){p=$rb_minus(self.te,1),$truthy(self["$version?"](18))?(self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_77=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_77)||(self.cs=self.$arg_or_cmdarg(cmd_state))):self.$emit("k__ENCODING__","__ENCODING__".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(153["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),p=$rb_plus(p,1),_goto_level=40;continue}if(154["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_78=$truthy($ret_or_79=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_79)?self["$version?"](18):$ret_or_78)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_80=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_80)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(156["$==="]($case)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tINTEGER",self.$tok(self.ts,$rb_minus(self.te,1)).$to_i(),self.ts,$rb_minus(self.te,1)),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else if(157["$==="]($case)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tFLOAT",self.$tok(self.ts,$rb_minus(self.te,1)).$to_f(),self.ts,$rb_minus(self.te,1)),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else{if(158["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(160["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(164["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_81=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_81)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(165["$==="]($case)){p=$rb_minus(self.te,1),tm["$=="](self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(167["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(168["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}}}else{if(516["$==="]($case)){if(self.te=$rb_plus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),$truthy($rb_lt(self.version,27))){p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tBDOT3"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(95["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if(510["$==="]($case)){self.te=$rb_plus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if(513["$==="]($case)){if(p=$rb_minus(self.te=p,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if(515["$==="]($case)){if(p=$rb_minus(self.te=p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),$truthy($rb_lt(self.version,27))){p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tBDOT2"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(514["$==="]($case)){p=$rb_minus(self.te=p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if(512["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if(90["$==="]($case)){if(p=$rb_minus(self.te,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if(87["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if(91["$==="]($case)){if($case=self.act,181["$==="]($case)){if(p=$rb_minus(self.te,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else if(185["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if(519["$==="]($case)){p=$rb_minus(self.te=p,1),self.$emit_comment(self.eq_begin_s,self.te),self.cs=self.cs_before_block_comment,_goto_level=20;continue}if(518["$==="]($case))p=$rb_minus(self.te=p,1),self.$diagnostic("fatal","embedded_document",nil,self.$range(self.eq_begin_s,$rb_plus(self.eq_begin_s,"=begin".$length())));else{if(106["$==="]($case)){self.te=$rb_plus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if(2["$==="]($case))self.te=$rb_plus(p,1),p=$rb_minus(pe,3);else{if(98["$==="]($case)){self.te=$rb_plus(p,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if(99["$==="]($case)){self.te=$rb_plus(p,1),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}if(100["$==="]($case))p=$rb_minus(self.te=p,1);else{if(105["$==="]($case)){p=$rb_minus(self.te=p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if(104["$==="]($case)){p=$rb_minus(self.te=p,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if(1["$==="]($case)){p=$rb_minus(self.te,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if(67["$==="]($case))self.newline_s=p,self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p);else if(110["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_82=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_82)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(143["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_83=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_83)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(174["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_84=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_84)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(180["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_85=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_85)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(186["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_86=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_86)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(193["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_87=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_87)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(196["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_88=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_88)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if(204["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_89=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_89)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else{if(275["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(266["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if(258["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(358["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),escape=$hash2([" ","\r","\n","\t","\v","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\v":"\\v","\f":"\\f"})["$[]"](self.source_buffer.$slice($rb_plus(self.ts,1))),self.$diagnostic("warning","invalid_escape_use",$hash2(["escape"],{escape:escape}),self.$range()),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(333["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),followed_by_nl=$rb_minus(self.te,1)["$=="](self.newline_s),nl_emitted=!1,dots_te=$truthy(followed_by_nl)?$rb_minus(self.te,1):self.te,$truthy($rb_ge(self.version,30))?$truthy($truthy($ret_or_90=self.lambda_stack["$any?"]())?$rb_plus(self.lambda_stack.$last(),1)["$=="](self.paren_nest):$ret_or_90)?self.$emit("tDOT3","...".$freeze(),self.ts,dots_te):(self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te),$truthy($truthy($ret_or_91=$truthy($ret_or_92=$rb_ge(self.version,31))?followed_by_nl:$ret_or_92)?self.context.$in_argdef():$ret_or_91)&&(self.$emit("tNL",$rb_minus(self.te,1),self.te),nl_emitted=!0)):$truthy($rb_ge(self.version,27))?self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te):self.$emit("tDOT3","...".$freeze(),self.ts,dots_te),$truthy($truthy($ret_or_93=followed_by_nl)?nl_emitted["$!"]():$ret_or_93)&&(p=$rb_minus(p,1)),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(321["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if(443["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),self.paren_nest["$=="](0)&&self.$diagnostic("warning","triple_dot_at_eol",nil,self.$range(self.ts,$rb_minus(self.te,1))),self.$emit("tDOT3","...".$freeze(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(520["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),self.$emit_comment(self.eq_begin_s,self.te),self.cs=self.cs_before_block_comment,_goto_level=20;continue}if(517["$==="]($case))self.newline_s=p,self.te=$rb_plus(p,1);else{if(107["$==="]($case)){self.newline_s=p,self.te=$rb_plus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if(3["$==="]($case))self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(pe,3);else{if(465["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$13=function(chars){var self=null==$$13.$$s?this:$$13.$$s;return null==chars&&(chars=nil),self.$emit("tRATIONAL",self.$Rational(chars))}).$$s=self,$$13.$$arity=1,$$13)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_94=$truthy($ret_or_95=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_95)?self["$version?"](18):$ret_or_94)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_96=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_96)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(463["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$14=function(chars){var self=null==$$14.$$s?this:$$14.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,chars))}).$$s=self,$$14.$$arity=1,$$14)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_97=$truthy($ret_or_98=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_98)?self["$version?"](18):$ret_or_97)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_99=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_99)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(468["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$15=function(chars){var self=null==$$15.$$s?this:$$15.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Rational(chars)))}).$$s=self,$$15.$$arity=1,$$15)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_100=$truthy($ret_or_101=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_101)?self["$version?"](18):$ret_or_100)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_102=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_102)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(466["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$16=function(chars){var self=null==$$16.$$s?this:$$16.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}).$$s=self,$$16.$$arity=1,$$16)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_103=$truthy($ret_or_104=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_104)?self["$version?"](18):$ret_or_103)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_105=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_105)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(464["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$17=function(chars){var self=null==$$17.$$s?this:$$17.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}).$$s=self,$$17.$$arity=1,$$17)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_106=$truthy($ret_or_107=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_107)?self["$version?"](18):$ret_or_106)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_108=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_108)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(467["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$18=function(chars){var self=null==$$18.$$s?this:$$18.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,6)),p=$rb_minus(p,6)}).$$s=self,$$18.$$arity=1,$$18)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_109=$truthy($ret_or_110=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_110)?self["$version?"](18):$ret_or_109)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_111=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_111)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(456["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$19=function(chars){var self=null==$$19.$$s?this:$$19.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Float(chars)))}).$$s=self,$$19.$$arity=1,$$19)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(457["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$20=function(chars){var self=null==$$20.$$s?this:$$20.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars),self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}).$$s=self,$$20.$$arity=1,$$20)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(458["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$21=function(chars){var self=null==$$21.$$s?this:$$21.$$s;return null==chars&&(chars=nil),self.$emit("tRATIONAL",self.$Rational(chars))}).$$s=self,$$21.$$arity=1,$$21)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(460["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$22=function(chars){var self=null==$$22.$$s?this:$$22.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Rational(chars)))}).$$s=self,$$22.$$arity=1,$$22)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(459["$==="]($case)){self.num_xfrm=$send(self,"lambda",[],(($$23=function(chars){var self=null==$$23.$$s?this:$$23.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars),self.ts,$rb_minus(self.te,6)),p=$rb_minus(p,6)}).$$s=self,$$23.$$arity=1,$$23)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(137["$==="]($case))self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&($truthy($truthy($ret_or_112=codepoints["$start_with?"](" "))?$ret_or_112:codepoints["$start_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),$truthy($truthy($ret_or_113=codepoints["$end_with?"](" "))?$ret_or_113:codepoints["$end_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(($$24=function($c){var self=null==$$24.$$s?this:$$24.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$c&&($c=nil),$c=$c,codepoint_str=null==($c=Opal.to_ary($c))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],codepoint_s=$truthy(spaces)?$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$($nesting,"Encoding"),"UTF_8"))),$rb_plus(codepoint_s,codepoint_str.$length()))}).$$s=self,$$24.$$brk=$brk,$$24.$$arity=1,$$24.$$has_top_level_mlhs_arg=!0,$$24))}catch(err){if(err===$brk)return err.$v;throw err}}(),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_114=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_114)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_115=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_115)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_116=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_116)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_117=$truthy($ret_or_118=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_118)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_117)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_119=self.escape)?$ret_or_119:self.$tok(),self.ts,self.te);else if(168["$==="]($case))self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&($truthy($truthy($ret_or_120=codepoints["$start_with?"](" "))?$ret_or_120:codepoints["$start_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),$truthy($truthy($ret_or_121=codepoints["$end_with?"](" "))?$ret_or_121:codepoints["$end_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(($$25=function($c){var self=null==$$25.$$s?this:$$25.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$c&&($c=nil),$c=$c,codepoint_str=null==($c=Opal.to_ary($c))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],codepoint_s=$truthy(spaces)?$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$($nesting,"Encoding"),"UTF_8"))),$rb_plus(codepoint_s,codepoint_str.$length()))}).$$s=self,$$25.$$brk=$brk,$$25.$$arity=1,$$25.$$has_top_level_mlhs_arg=!0,$$25))}catch(err){if(err===$brk)return err.$v;throw err}}(),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_122=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_122)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_123=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_123)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_124=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_124)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_125=$truthy($ret_or_126=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_126)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_125)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_127=self.escape)?$ret_or_127:self.$tok(),self.ts,self.te);else{if(382["$==="]($case)){self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&($truthy($truthy($ret_or_128=codepoints["$start_with?"](" "))?$ret_or_128:codepoints["$start_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),$truthy($truthy($ret_or_129=codepoints["$end_with?"](" "))?$ret_or_129:codepoints["$end_with?"]("\t"))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(($$26=function($c){var self=null==$$26.$$s?this:$$26.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$c&&($c=nil),$c=$c,codepoint_str=null==($c=Opal.to_ary($c))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],codepoint_s=$truthy(spaces)?$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$($nesting,"Encoding"),"UTF_8"))),$rb_plus(codepoint_s,codepoint_str.$length()))}).$$s=self,$$26.$$brk=$brk,$$26.$$arity=1,$$26.$$has_top_level_mlhs_arg=!0,$$26))}catch(err){if(err===$brk)return err.$v;throw err}}(),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_130=self.escape)?$ret_or_130:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(118["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_131=$rb_ge(self.version,30))?$truthy($ret_or_132=codepoint["$=="](117))?$ret_or_132:codepoint["$=="](85):$ret_or_131)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_133=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_133)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_134=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_134)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_135=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_135)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_136=$truthy($ret_or_137=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_137)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_136)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_138=self.escape)?$ret_or_138:self.$tok(),self.ts,self.te);else if(149["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_139=$rb_ge(self.version,30))?$truthy($ret_or_140=codepoint["$=="](117))?$ret_or_140:codepoint["$=="](85):$ret_or_139)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_141=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_141)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_142=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_142)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_143=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_143)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_144=$truthy($ret_or_145=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_145)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_144)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_146=self.escape)?$ret_or_146:self.$tok(),self.ts,self.te);else{if(363["$==="]($case)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_147=$rb_ge(self.version,30))?$truthy($ret_or_148=codepoint["$=="](117))?$ret_or_148:codepoint["$=="](85):$ret_or_147)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_149=self.escape)?$ret_or_149:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(121["$==="]($case))self.$diagnostic("fatal","invalid_escape"),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_150=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_150)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_151=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_151)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_152=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_152)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_153=$truthy($ret_or_154=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_154)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_153)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_155=self.escape)?$ret_or_155:self.$tok(),self.ts,self.te);else if(152["$==="]($case))self.$diagnostic("fatal","invalid_escape"),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_156=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_156)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_157=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_157)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_158=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_158)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_159=$truthy($ret_or_160=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_160)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_159)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_161=self.escape)?$ret_or_161:self.$tok(),self.ts,self.te);else{if(366["$==="]($case)){self.$diagnostic("fatal","invalid_escape"),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_162=self.escape)?$ret_or_162:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(123["$==="]($case))self.escape="",p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_163=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_163)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_164=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_164)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_165=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_165)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_166=$truthy($ret_or_167=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_167)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_166)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_168=self.escape)?$ret_or_168:self.$tok(),self.ts,self.te);else if(154["$==="]($case))self.escape="",p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_169=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_169)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_170=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_170)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_171=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_171)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_172=$truthy($ret_or_173=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_173)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_172)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_174=self.escape)?$ret_or_174:self.$tok(),self.ts,self.te);else{if(368["$==="]($case)){self.escape="",p=$rb_minus(self.te=p,1),value=$truthy($ret_or_175=self.escape)?$ret_or_175:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(120["$==="]($case))self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_176=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_176)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_177=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_177)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_178=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_178)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_179=$truthy($ret_or_180=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_180)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_179)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_181=self.escape)?$ret_or_181:self.$tok(),self.ts,self.te);else if(151["$==="]($case))self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_182=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_182)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_183=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_183)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_184=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_184)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_185=$truthy($ret_or_186=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_186)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_185)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_187=self.escape)?$ret_or_187:self.$tok(),self.ts,self.te);else{if(365["$==="]($case)){self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_188=self.escape)?$ret_or_188:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(140["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_189=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_189)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_190=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_190)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_191=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_191)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_192=$truthy($ret_or_193=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_193)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_192)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_194=self.escape)?$ret_or_194:self.$tok(),self.ts,self.te);else if(171["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_195=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_195)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_196=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_196)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_197=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_197)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_198=$truthy($ret_or_199=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_199)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_198)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_200=self.escape)?$ret_or_200:self.$tok(),self.ts,self.te);else{if(385["$==="]($case)){self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_201=self.escape)?$ret_or_201:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(139["$==="]($case))self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_202=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_202)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_203=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_203)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_204=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_204)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_205=$truthy($ret_or_206=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_206)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_205)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_207=self.escape)?$ret_or_207:self.$tok(),self.ts,self.te);else if(170["$==="]($case))self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_208=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_208)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_209=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_209)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_210=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_210)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_211=$truthy($ret_or_212=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_212)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_211)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_213=self.escape)?$ret_or_213:self.$tok(),self.ts,self.te);else{if(384["$==="]($case)){self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_214=self.escape)?$ret_or_214:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(134["$==="]($case))self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$($nesting,"Encoding"),"UTF_8")),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_215=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_215)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_216=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_216)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_217=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_217)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_218=$truthy($ret_or_219=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_219)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_218)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_220=self.escape)?$ret_or_220:self.$tok(),self.ts,self.te);else if(165["$==="]($case))self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$($nesting,"Encoding"),"UTF_8")),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_221=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_221)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_222=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_222)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_223=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_223)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_224=$truthy($ret_or_225=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_225)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_224)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_226=self.escape)?$ret_or_226:self.$tok(),self.ts,self.te);else{if(379["$==="]($case)){self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$($nesting,"Encoding"),"UTF_8")),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_227=self.escape)?$ret_or_227:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(133["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_228=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_228)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_229=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_229)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_230=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_230)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_231=$truthy($ret_or_232=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_232)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_231)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_233=self.escape)?$ret_or_233:self.$tok(),self.ts,self.te);else if(164["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_234=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_234)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_235=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_235)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_236=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_236)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_237=$truthy($ret_or_238=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_238)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_237)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_239=self.escape)?$ret_or_239:self.$tok(),self.ts,self.te);else{if(378["$==="]($case)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_240=self.escape)?$ret_or_240:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(138["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_241=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_241)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_242=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_242)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_243=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_243)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_244=$truthy($ret_or_245=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_245)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_244)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_246=self.escape)?$ret_or_246:self.$tok(),self.ts,self.te);else if(169["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_247=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_247)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_248=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_248)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_249=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_249)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_250=$truthy($ret_or_251=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_251)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_250)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_252=self.escape)?$ret_or_252:self.$tok(),self.ts,self.te);else{if(383["$==="]($case)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_253=self.escape)?$ret_or_253:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(135["$==="]($case))self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_254=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_254)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_255=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_255)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_256=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_256)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_257=$truthy($ret_or_258=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_258)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_257)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_259=self.escape)?$ret_or_259:self.$tok(),self.ts,self.te);else if(166["$==="]($case))self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_260=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_260)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_261=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_261)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_262=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_262)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_263=$truthy($ret_or_264=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_264)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_263)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_265=self.escape)?$ret_or_265:self.$tok(),self.ts,self.te);else{if(380["$==="]($case)){self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_266=self.escape)?$ret_or_266:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(119["$==="]($case))self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_267=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_267)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_268=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_268)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_269=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_269)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_270=$truthy($ret_or_271=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_271)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_270)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_272=self.escape)?$ret_or_272:self.$tok(),self.ts,self.te);else if(150["$==="]($case))self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_273=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_273)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_274=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_274)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_275=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_275)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_276=$truthy($ret_or_277=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_277)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_276)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_278=self.escape)?$ret_or_278:self.$tok(),self.ts,self.te);else{if(364["$==="]($case)){self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_279=self.escape)?$ret_or_279:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(177["$==="]($case))self.escape_s=p,self.escape=nil,self.te=$rb_plus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_280=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_280)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_281=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_281)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_282=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_282)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_283=$truthy($ret_or_284=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_284)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_283)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_285=self.escape)?$ret_or_285:self.$tok(),self.ts,self.te);else if(182["$==="]($case))self.escape_s=p,self.escape=nil,self.te=$rb_plus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_286=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_286)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_287=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_287)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_288=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_288)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_289=$truthy($ret_or_290=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_290)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_289)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_291=self.escape)?$ret_or_291:self.$tok(),self.ts,self.te);else if(58["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.newline_s=p;else if(31["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if(33["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if(35["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if(219["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else if(238["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else if(246["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(34["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(277["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(269["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(288["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else if(300["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(296["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if(59["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(50["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER",ident_tok,ident_ts,ident_te),p=$rb_minus(ident_te,1),$truthy($truthy($ret_or_292=$truthy($ret_or_293=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](ident_tok):$ret_or_293)?$rb_lt(self.version,25):$ret_or_292)?self.cs=465:self.cs=525,p=$rb_plus(p,1),_goto_level=40;continue}if(318["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else if(402["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(398["$==="]($case)){if($truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),$truthy(self.context.$in_kwarg())){p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}self.cs=186,_goto_level=20;continue}if(411["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(408["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),self.cs=186,_goto_level=20;continue}if(495["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(427["$==="]($case)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1),self.cs=990,_goto_level=20;continue}if(101["$==="]($case))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),p=$rb_minus(self.te=p,1);else{if(268["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),p=$rb_minus(self.te=p,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$emit("tLAMBEG","{".$freeze(),$rb_minus(self.te,1),self.te)):self.$emit("tLCURLY","{".$freeze(),$rb_minus(self.te,1),self.te),self.command_start=!0,self.paren_nest=$rb_plus(self.paren_nest,1),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(290["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),p=$rb_minus(self.te=p,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$emit("tLAMBEG","{".$freeze())):self.$emit("tLBRACE_ARG","{".$freeze()),self.paren_nest=$rb_plus(self.paren_nest,1),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(393["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),p=$rb_minus(self.te=p,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.command_start=!0,self.$emit("tLAMBEG","{".$freeze())):self.$emit("tLBRACE","{".$freeze()),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_plus(p,1),_goto_level=40;continue}if(508["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),p=$rb_minus(self.te=p,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$tok()["$=="]("{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):self.$tok()["$=="]("{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),self.$tok()["$=="]("{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(509["$==="]($case)){if(current_literal=self.$literal(),$truthy(current_literal)&&$truthy(current_literal.$end_interp_brace_and_try_closing())){$truthy(self["$version?"](18,19))?(self.$emit("tRCURLY","}".$freeze(),$rb_minus(p,1),p),self.cond.$lexpop(),self.cmdarg.$lexpop()):self.$emit("tSTRING_DEND","}".$freeze(),$rb_minus(p,1),p),$truthy(current_literal.$saved_herebody_s())&&(self.herebody_s=current_literal.$saved_herebody_s()),p=$rb_minus(p,1),self.cs=self.$next_state_for_literal(current_literal),p=$rb_plus(p,1),_goto_level=40;continue}self.paren_nest=$rb_minus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),$truthy($truthy($ret_or_294=self.$tok()["$=="]("}".$freeze()))?$ret_or_294:self.$tok()["$=="]("]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if(61["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p);else if(65["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.newline_s=p;else if(222["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(237["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(249["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else{if(271["$==="]($case)){self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1),self.cs=810,_goto_level=20;continue}if(286["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(298["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(324["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(400["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(410["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(431["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(103["$==="]($case))self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else{if(243["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),self.$emit("tFID",self.$tok(self.ts,tm),self.ts,tm),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p=$rb_minus(tm,1),1),_goto_level=40;continue}if(338["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(309["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(424["$==="]($case)){if(tm=p,$case=self.act,145["$==="]($case)){p=$rb_minus(self.te,1),self.lambda_stack.$last()["$=="](self.paren_nest)?(self.lambda_stack.$pop(),self.$tok()["$=="]("{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):self.$tok()["$=="]("{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),self.$tok()["$=="]("{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(146["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if(147["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(148["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(149["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(150["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(151["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),$truthy($truthy($ret_or_295=self["$version?"](18))?self.$tok()["$=="]("not".$freeze()):$ret_or_295)){self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(152["$==="]($case)){p=$rb_minus(self.te,1),$truthy(self["$version?"](18))?(self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_296=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_296)||(self.cs=self.$arg_or_cmdarg(cmd_state))):self.$emit("k__ENCODING__","__ENCODING__".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(153["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS")),p=$rb_plus(p,1),_goto_level=40;continue}if(154["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_297=$truthy($ret_or_298=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_298)?self["$version?"](18):$ret_or_297)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_299=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_299)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(156["$==="]($case)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tINTEGER",self.$tok(self.ts,$rb_minus(self.te,1)).$to_i(),self.ts,$rb_minus(self.te,1)),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else if(157["$==="]($case)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tFLOAT",self.$tok(self.ts,$rb_minus(self.te,1)).$to_f(),self.ts,$rb_minus(self.te,1)),p=$rb_plus(p=$rb_minus(p,1),1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else{if(158["$==="]($case)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(160["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(164["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_300=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_300)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(165["$==="]($case)){p=$rb_minus(self.te,1),tm["$=="](self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(167["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(168["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}}}else{if(244["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tFID",self.$tok(self.ts,tm),self.ts,tm),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p=$rb_minus(tm,1),1),_goto_level=40;continue}if(339["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(311["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(425["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),tm["$=="](self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if(340["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(312["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(341["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(313["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(345["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(316["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(344["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(315["$==="]($case)){if(tm=$rb_minus(p,2),$case=self.act,99["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(106["$==="]($case))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if(117["$==="]($case)){if(p=$rb_minus(self.te,1),$truthy($rb_ge(self.version,27))){self.$emit("tPIPE",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,2),self.cs=810,_goto_level=20;continue}if(121["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if(122["$==="]($case)){p=$rb_minus(self.te,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(123["$==="]($case)){p=$rb_minus(self.te,1),self.$emit_table($$($nesting,"KEYWORDS_BEGIN")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if(127["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(128["$==="]($case)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$truthy($truthy($ret_or_301=self.static_env["$nil?"]()["$!"]())?self.static_env["$declared?"](self.$tok()):$ret_or_301)){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if(132["$==="]($case)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}}}else{if(342["$==="]($case)){tm=$rb_minus(p,3),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(314["$==="]($case)){tm=$rb_minus(p,3),p=$rb_minus(self.te=p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if(343["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(490["$==="]($case)){tm=$rb_minus(p,2),p=$rb_minus(self.te=p,1),self.$emit("tCONSTANT",self.$tok(self.ts,tm),self.ts,tm),p=$rb_plus(p=$rb_minus(tm,1),1),_goto_level=40;continue}if(267["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit("tLBRACK","[".$freeze(),$rb_minus(self.te,1),self.te),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(386["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit("tLBRACK","[".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(493["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit("tLBRACK2","[".$freeze()),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(496["$==="]($case)){self.paren_nest=$rb_minus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),$truthy($truthy($ret_or_302=self.$tok()["$=="]("}".$freeze()))?$ret_or_302:self.$tok()["$=="]("]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if(259["$==="]($case)){if(self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),$truthy(self["$version?"](18))){self.$emit("tLPAREN2","(".$freeze(),$rb_minus(self.te,1),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tLPAREN_ARG","(".$freeze(),$rb_minus(self.te,1),self.te),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(272["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),self.$emit("tLPAREN2","(".$freeze()),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(280["$==="]($case)){if(self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),self.$emit("tLPAREN_ARG","(".$freeze(),$rb_minus(self.te,1),self.te),$truthy(self["$version?"](18))){self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(328["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),self.$emit("tLPAREN","(".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if(437["$==="]($case)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if(438["$==="]($case)){self.paren_nest=$rb_minus(self.paren_nest,1),p=$rb_minus(self.te=p,1),self.$emit_table($$($nesting,"PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),$truthy($truthy($ret_or_303=self.$tok()["$=="]("}".$freeze()))?$ret_or_303:self.$tok()["$=="]("]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if(72["$==="]($case))heredoc_e=p,self.newline_s=p;else if(353["$==="]($case)){if(new_herebody_s=p,p=$rb_minus(self.te=p,1),self.$tok(self.ts,heredoc_e)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),indent=$truthy($ret_or_304=(($b=$gvars["~"])===nil?nil:$b["$[]"](1))["$empty?"]()["$!"]())?$ret_or_304:(($b=$gvars["~"])===nil?nil:$b["$[]"](2))["$empty?"]()["$!"](),dedent_body=(($b=$gvars["~"])===nil?nil:$b["$[]"](2))["$empty?"]()["$!"](),type=$truthy((($b=$gvars["~"])===nil?nil:$b["$[]"](3))["$empty?"]())?'<<"'.$freeze():$rb_plus("<<".$freeze(),($b=$gvars["~"])===nil?nil:$b["$[]"](3)),delimiter=($b=$gvars["~"])===nil?nil:$b["$[]"](4),$truthy($rb_ge(self.version,27))?$truthy($truthy($ret_or_305=$rb_gt(delimiter.$count("\n"),0))?$ret_or_305:$rb_gt(delimiter.$count("\r"),0))&&self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1))):$truthy($rb_ge(self.version,24))&&$truthy($rb_gt(delimiter.$count("\n"),0))&&($truthy(delimiter["$end_with?"]("\n"))?(self.$diagnostic("warning","heredoc_id_ends_with_nl",nil,self.$range(self.ts,$rb_plus(self.ts,1))),delimiter=delimiter.$rstrip()):self.$diagnostic("fatal","heredoc_id_has_newline",nil,self.$range(self.ts,$rb_plus(self.ts,1)))),$truthy($truthy($ret_or_306=dedent_body)?self["$version?"](18,19,20,21,22):$ret_or_306)){self.$emit("tLSHFT","<<".$freeze(),self.ts,$rb_plus(self.ts,2)),p=$rb_plus(self.ts,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$push_literal(type,delimiter,self.ts,heredoc_e,indent,dedent_body),self.herebody_s=$truthy($ret_or_307=self.herebody_s)?$ret_or_307:new_herebody_s,p=$rb_minus(self.herebody_s,1)}else{if(348["$==="]($case)){tm=$rb_minus(p,1),diag_msg="ivar_name",p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(351["$==="]($case)){tm=$rb_minus(p,2),diag_msg="cvar_name",p=$rb_minus(self.te=p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(359["$==="]($case)){self.escape=nil,p=$rb_minus(self.te=p,1),value=$truthy($ret_or_308=self.escape)?$ret_or_308:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(389["$==="]($case)){tm=p,p=$rb_minus(self.te=p,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if(480["$==="]($case))self.num_base=16,self.num_digits_s=p,self.num_suffix_s=p;else if(474["$==="]($case))self.num_base=10,self.num_digits_s=p,self.num_suffix_s=p;else if(477["$==="]($case))self.num_base=8,self.num_digits_s=p,self.num_suffix_s=p;else if(471["$==="]($case))self.num_base=2,self.num_digits_s=p,self.num_suffix_s=p;else if(486["$==="]($case))self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p;else if(449["$==="]($case))self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p;else if(487["$==="]($case))self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$27=function(chars){var self=null==$$27.$$s?this:$$27.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$27.$$arity=1,$$27));else if(8["$==="]($case))self.te=$rb_plus(p,1),self.newline_s=p;else if(453["$==="]($case))self.te=$rb_plus(p,1),self.num_suffix_s=p;else if(228["$==="]($case))self.te=$rb_plus(p,1),self.act=43;else if(215["$==="]($case))self.te=$rb_plus(p,1),self.act=44;else if(211["$==="]($case))self.te=$rb_plus(p,1),self.act=45;else if(27["$==="]($case))self.te=$rb_plus(p,1),self.act=72;else if(261["$==="]($case))self.te=$rb_plus(p,1),self.act=73;else if(28["$==="]($case))self.te=$rb_plus(p,1),self.act=78;else if(254["$==="]($case))self.te=$rb_plus(p,1),self.act=79;else if(281["$==="]($case))self.te=$rb_plus(p,1),self.act=85;else if(46["$==="]($case))self.te=$rb_plus(p,1),self.act=86;else if(302["$==="]($case))self.te=$rb_plus(p,1),self.act=93;else if(291["$==="]($case))self.te=$rb_plus(p,1),self.act=94;else if(70["$==="]($case))self.te=$rb_plus(p,1),self.act=106;else if(394["$==="]($case))self.te=$rb_plus(p,1),self.act=117;else if(305["$==="]($case))self.te=$rb_plus(p,1),self.act=121;else if(388["$==="]($case))self.te=$rb_plus(p,1),self.act=122;else if(387["$==="]($case))self.te=$rb_plus(p,1),self.act=123;else if(75["$==="]($case))self.te=$rb_plus(p,1),self.act=127;else if(303["$==="]($case))self.te=$rb_plus(p,1),self.act=128;else if(306["$==="]($case))self.te=$rb_plus(p,1),self.act=132;else if(504["$==="]($case))self.te=$rb_plus(p,1),self.act=145;else if(499["$==="]($case))self.te=$rb_plus(p,1),self.act=146;else if(507["$==="]($case))self.te=$rb_plus(p,1),self.act=148;else if(500["$==="]($case))self.te=$rb_plus(p,1),self.act=149;else if(501["$==="]($case))self.te=$rb_plus(p,1),self.act=150;else if(506["$==="]($case))self.te=$rb_plus(p,1),self.act=151;else if(498["$==="]($case))self.te=$rb_plus(p,1),self.act=152;else if(492["$==="]($case))self.te=$rb_plus(p,1),self.act=153;else if(418["$==="]($case))self.te=$rb_plus(p,1),self.act=154;else if(451["$==="]($case))self.te=$rb_plus(p,1),self.act=157;else if(82["$==="]($case))self.te=$rb_plus(p,1),self.act=158;else if(421["$==="]($case))self.te=$rb_plus(p,1),self.act=160;else if(412["$==="]($case))self.te=$rb_plus(p,1),self.act=164;else if(423["$==="]($case))self.te=$rb_plus(p,1),self.act=165;else if(416["$==="]($case))self.te=$rb_plus(p,1),self.act=167;else if(422["$==="]($case))self.te=$rb_plus(p,1),self.act=168;else if(88["$==="]($case))self.te=$rb_plus(p,1),self.act=181;else if(511["$==="]($case))self.te=$rb_plus(p,1),self.act=185;else if(183["$==="]($case)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),self.te["$=="](pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy($truthy($ret_or_309=current_literal["$words?"]())?self["$eof_codepoint?"](self.source_pts["$[]"](p))["$!"]():$ret_or_309)?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string()),self.escape_s=p,self.escape=nil}else if(124["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_310=$rb_ge(self.version,30))?$truthy($ret_or_311=codepoint["$=="](117))?$ret_or_311:codepoint["$=="](85):$ret_or_310)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_312=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_312)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_313=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_313)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_314=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_314)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_315=$truthy($ret_or_316=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_316)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_315)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_317=self.escape)?$ret_or_317:self.$tok(),self.ts,self.te);else if(155["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_318=$rb_ge(self.version,30))?$truthy($ret_or_319=codepoint["$=="](117))?$ret_or_319:codepoint["$=="](85):$ret_or_318)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_320=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_320)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_321=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_321)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_322=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_322)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_323=$truthy($ret_or_324=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_324)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_323)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_325=self.escape)?$ret_or_325:self.$tok(),self.ts,self.te);else{if(369["$==="]($case)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_326=$rb_ge(self.version,30))?$truthy($ret_or_327=codepoint["$=="](117))?$ret_or_327:codepoint["$=="](85):$ret_or_326)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_328=self.escape)?$ret_or_328:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(131["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_329=$rb_ge(self.version,30))?$truthy($ret_or_330=codepoint["$=="](117))?$ret_or_330:codepoint["$=="](85):$ret_or_329)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_331=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_331)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_332=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_332)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_333=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_333)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_334=$truthy($ret_or_335=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_335)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_334)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_336=self.escape)?$ret_or_336:self.$tok(),self.ts,self.te);else if(162["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_337=$rb_ge(self.version,30))?$truthy($ret_or_338=codepoint["$=="](117))?$ret_or_338:codepoint["$=="](85):$ret_or_337)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_339=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_339)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_340=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_340)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_341=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_341)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_342=$truthy($ret_or_343=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_343)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_342)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_344=self.escape)?$ret_or_344:self.$tok(),self.ts,self.te);else{if(376["$==="]($case)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_345=$rb_ge(self.version,30))?$truthy($ret_or_346=codepoint["$=="](117))?$ret_or_346:codepoint["$=="](85):$ret_or_345)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_347=self.escape)?$ret_or_347:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(122["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_348=$rb_ge(self.version,27))?$truthy($ret_or_349=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_349:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_348)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_350=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_350)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_351=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_351)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_352=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_352)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_353=$truthy($ret_or_354=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_354)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_353)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_355=self.escape)?$ret_or_355:self.$tok(),self.ts,self.te);else if(153["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_356=$rb_ge(self.version,27))?$truthy($ret_or_357=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_357:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_356)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_358=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_358)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_359=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_359)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_360=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_360)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_361=$truthy($ret_or_362=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_362)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_361)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_363=self.escape)?$ret_or_363:self.$tok(),self.ts,self.te);else{if(367["$==="]($case)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_364=$rb_ge(self.version,27))?$truthy($ret_or_365=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_365:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_364)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_366=self.escape)?$ret_or_366:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(130["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_367=$rb_ge(self.version,27))?$truthy($ret_or_368=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_368:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_367)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_369=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_369)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_370=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_370)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_371=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_371)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_372=$truthy($ret_or_373=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_373)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_372)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_374=self.escape)?$ret_or_374:self.$tok(),self.ts,self.te);else if(161["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_375=$rb_ge(self.version,27))?$truthy($ret_or_376=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_376:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_375)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_377=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_377)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_378=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_378)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_379=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_379)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_380=$truthy($ret_or_381=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_381)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_380)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_382=self.escape)?$ret_or_382:self.$tok(),self.ts,self.te);else{if(375["$==="]($case)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_383=$rb_ge(self.version,27))?$truthy($ret_or_384=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_384:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_383)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_385=self.escape)?$ret_or_385:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(126["$==="]($case))self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_386=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_386)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_387=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_387)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_388=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_388)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_389=$truthy($ret_or_390=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_390)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_389)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_391=self.escape)?$ret_or_391:self.$tok(),self.ts,self.te);else if(157["$==="]($case))self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_392=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_392)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_393=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_393)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_394=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_394)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_395=$truthy($ret_or_396=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_396)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_395)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_397=self.escape)?$ret_or_397:self.$tok(),self.ts,self.te);else{if(371["$==="]($case)){self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_398=self.escape)?$ret_or_398:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(129["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_399=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_399)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_400=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_400)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_401=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_401)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_402=$truthy($ret_or_403=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_403)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_402)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_404=self.escape)?$ret_or_404:self.$tok(),self.ts,self.te);else if(160["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_405=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_405)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_406=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_406)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_407=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_407)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_408=$truthy($ret_or_409=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_409)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_408)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_410=self.escape)?$ret_or_410:self.$tok(),self.ts,self.te);else{if(374["$==="]($case)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_411=self.escape)?$ret_or_411:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(136["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_412=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_412)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_413=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_413)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_414=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_414)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_415=$truthy($ret_or_416=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_416)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_415)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_417=self.escape)?$ret_or_417:self.$tok(),self.ts,self.te);else if(167["$==="]($case))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_418=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_418)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_419=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_419)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_420=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_420)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_421=$truthy($ret_or_422=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_422)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_421)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_423=self.escape)?$ret_or_423:self.$tok(),self.ts,self.te);else{if(381["$==="]($case)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_424=self.escape)?$ret_or_424:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(116["$==="]($case))self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_425=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_425)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_426=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_426)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_427=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_427)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_428=$truthy($ret_or_429=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_429)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_428)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_430=self.escape)?$ret_or_430:self.$tok(),self.ts,self.te);else if(148["$==="]($case))self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_431=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_431)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_432=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_432)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_433=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_433)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_434=$truthy($ret_or_435=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_435)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_434)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_436=self.escape)?$ret_or_436:self.$tok(),self.ts,self.te);else{if(362["$==="]($case)){self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_437=self.escape)?$ret_or_437:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(62["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.newline_s=p;else if(221["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(236["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(248["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else{if(270["$==="]($case)){self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1),self.cs=810,_goto_level=20;continue}if(285["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(297["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(323["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(399["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(409["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(430["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(102["$==="]($case))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),p=$rb_minus(self.te=p,1);else if(482["$==="]($case))self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$28=function(chars){var self=null==$$28.$$s?this:$$28.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$28.$$arity=1,$$28));else if(446["$==="]($case))self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$29=function(chars){var self=null==$$29.$$s?this:$$29.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$29.$$arity=1,$$29));else{if(461["$==="]($case)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$30=function(chars){var self=null==$$30.$$s?this:$$30.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$30.$$arity=1,$$30)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_438=$truthy($ret_or_439=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_439)?self["$version?"](18):$ret_or_438)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_440=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_440)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(454["$==="]($case)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$31=function(chars){var self=null==$$31.$$s?this:$$31.$$s;return null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars))}).$$s=self,$$31.$$arity=1,$$31)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(450["$==="]($case)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$32=function(chars){var self=null==$$32.$$s?this:$$32.$$s;return null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars))}).$$s=self,$$32.$$arity=1,$$32)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if(276["$==="]($case))self.te=$rb_plus(p,1),self.newline_s=p,self.act=79;else if(36["$==="]($case))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=78;else if(47["$==="]($case))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=86;else if(94["$==="]($case))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=181;else if(66["$==="]($case))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=99;else if(85["$==="]($case))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=147;else if(93["$==="]($case))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=181;else if(38["$==="]($case))self.te=$rb_plus(p,1),tm=p,self.act=73;else if(391["$==="]($case))self.te=$rb_plus(p,1),tm=p,self.act=127;else if(390["$==="]($case))self.te=$rb_plus(p,1),tm=p,self.act=128;else if(483["$==="]($case))self.te=$rb_plus(p,1),self.num_base=10,self.num_digits_s=self.ts,self.act=154;else if(127["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_441=$rb_ge(self.version,30))?$truthy($ret_or_442=codepoint["$=="](117))?$ret_or_442:codepoint["$=="](85):$ret_or_441)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_443=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_443)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_444=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_444)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_445=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_445)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_446=$truthy($ret_or_447=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_447)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_446)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_448=self.escape)?$ret_or_448:self.$tok(),self.ts,self.te);else if(158["$==="]($case))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_449=$rb_ge(self.version,30))?$truthy($ret_or_450=codepoint["$=="](117))?$ret_or_450:codepoint["$=="](85):$ret_or_449)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_451=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_451)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_452=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_452)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_453=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_453)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_454=$truthy($ret_or_455=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_455)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_454)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_456=self.escape)?$ret_or_456:self.$tok(),self.ts,self.te);else{if(372["$==="]($case)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($truthy($ret_or_457=$rb_ge(self.version,30))?$truthy($ret_or_458=codepoint["$=="](117))?$ret_or_458:codepoint["$=="](85):$ret_or_457)&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$($nesting,"ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_459=self.escape)?$ret_or_459:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(125["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_460=$rb_ge(self.version,27))?$truthy($ret_or_461=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_461:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_460)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_462=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_462)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_463=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_463)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_464=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_464)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_465=$truthy($ret_or_466=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_466)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_465)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_467=self.escape)?$ret_or_467:self.$tok(),self.ts,self.te);else if(156["$==="]($case))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_468=$rb_ge(self.version,27))?$truthy($ret_or_469=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_469:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_468)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_470=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_470)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_471=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_471)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_472=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_472)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_473=$truthy($ret_or_474=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_474)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_473)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_475=self.escape)?$ret_or_475:self.$tok(),self.ts,self.te);else{if(370["$==="]($case)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($truthy($ret_or_476=$rb_ge(self.version,27))?$truthy($ret_or_477=$range(0,8,!1)["$include?"](self.escape.$ord()))?$ret_or_477:$range(14,31,!1)["$include?"](self.escape.$ord()):$ret_or_476)&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_478=self.escape)?$ret_or_478:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(132["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_479=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_479)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_480=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_480)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_481=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_481)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_482=$truthy($ret_or_483=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_483)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_482)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_484=self.escape)?$ret_or_484:self.$tok(),self.ts,self.te);else if(163["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_485=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_485)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_486=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_486)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_487=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_487)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_488=$truthy($ret_or_489=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_489)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_488)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_490=self.escape)?$ret_or_490:self.$tok(),self.ts,self.te);else{if(377["$==="]($case)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_491=self.escape)?$ret_or_491:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(128["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_492=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_492)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_493=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_493)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_494=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_494)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_495=$truthy($ret_or_496=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_496)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_495)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_497=self.escape)?$ret_or_497:self.$tok(),self.ts,self.te);else if(159["$==="]($case))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy($truthy($ret_or_498=current_literal["$regexp?"]())?$$($nesting,"REGEXP_META_CHARACTERS").$match(escaped_char):$ret_or_498)?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy($truthy($ret_or_499=current_literal["$squiggly_heredoc?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_499)?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy($truthy($ret_or_500=current_literal["$supports_line_continuation_via_slash?"]())?escaped_char["$=="]("\n".$freeze()):$ret_or_500)?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy($truthy($ret_or_501=$truthy($ret_or_502=current_literal["$regexp?"]())?$rb_ge(self.version,31):$ret_or_502)?["c","C","m","M"]["$include?"](escaped_char):$ret_or_501)?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_503=self.escape)?$ret_or_503:self.$tok(),self.ts,self.te);else{if(373["$==="]($case)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),p=$rb_minus(self.te=p,1),value=$truthy($ret_or_504=self.escape)?$ret_or_504:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if(478["$==="]($case)){self.num_base=16,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$33=function(chars){var self=null==$$33.$$s?this:$$33.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$33.$$arity=1,$$33)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_505=$truthy($ret_or_506=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_506)?self["$version?"](18):$ret_or_505)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_507=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_507)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(472["$==="]($case)){self.num_base=10,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$34=function(chars){var self=null==$$34.$$s?this:$$34.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$34.$$arity=1,$$34)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_508=$truthy($ret_or_509=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_509)?self["$version?"](18):$ret_or_508)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_510=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_510)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(475["$==="]($case)){self.num_base=8,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$35=function(chars){var self=null==$$35.$$s?this:$$35.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$35.$$arity=1,$$35)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_511=$truthy($ret_or_512=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_512)?self["$version?"](18):$ret_or_511)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_513=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_513)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(469["$==="]($case)){self.num_base=2,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$36=function(chars){var self=null==$$36.$$s?this:$$36.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$36.$$arity=1,$$36)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_514=$truthy($ret_or_515=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_515)?self["$version?"](18):$ret_or_514)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_516=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_516)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(481["$==="]($case)){self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$37=function(chars){var self=null==$$37.$$s?this:$$37.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$37.$$arity=1,$$37)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_517=$truthy($ret_or_518=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_518)?self["$version?"](18):$ret_or_517)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_519=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_519)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if(445["$==="]($case)){self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$38=function(chars){var self=null==$$38.$$s?this:$$38.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$38.$$arity=1,$$38)),p=$rb_minus(self.te=p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy($truthy($ret_or_520=$truthy($ret_or_521=digits["$empty?"]())?self.num_base["$=="](8):$ret_or_521)?self["$version?"](18):$ret_or_520)?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$truthy($truthy($ret_or_522=self.num_base["$=="](8))?invalid_idx=digits.$index(/[89]/):$ret_or_522)&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}32["$==="]($case)?(self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p,self.act=73):63["$==="]($case)?(self.te=$rb_plus(p,1),self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=99):92["$==="]($case)?(self.te=$rb_plus(p,1),self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,p["$=="](pe)?$rb_minus(p,2):p),self.act=181):488["$==="]($case)?(self.te=$rb_plus(p,1),self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$39=function(chars){var self=null==$$39.$$s?this:$$39.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$39.$$arity=1,$$39)),self.act=156):484["$==="]($case)?(self.te=$rb_plus(p,1),self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$40=function(chars){var self=null==$$40.$$s?this:$$40.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$40.$$arity=1,$$40)),self.act=156):448["$==="]($case)&&(self.te=$rb_plus(p,1),self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(($$41=function(chars){var self=null==$$41.$$s?this:$$41.$$s;return null==chars&&(chars=nil),self.$emit("tINTEGER",chars)}).$$s=self,$$41.$$arity=1,$$41)),self.act=156)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if($truthy($rb_le(_goto_level,20))){if($case=_lex_to_state_actions["$[]"](self.cs),96["$==="]($case)&&(self.ts=nil),self.cs["$=="](0)){_goto_level=40;continue}if(p=$rb_plus(p,1),$truthy(p["$!="](pe))){_goto_level=10;continue}}if($truthy($rb_le(_goto_level,30))&&p["$=="](eof)&&$truthy($rb_gt(_lex_eof_trans["$[]"](self.cs),0)))_trans=$rb_minus(_lex_eof_trans["$[]"](self.cs),1),_goto_level=15;else if($truthy($rb_le(_goto_level,40)))break}return $truthy(!1),self.p=p,$truthy(self.token_queue["$any?"]())?self.token_queue.$shift():self.cs["$=="](klass.$lex_error())?[!1,["$error".$freeze(),self.$range($rb_minus(p,1),p)]]:(eof=self.source_pts.$size(),[!1,["$eof".$freeze(),self.$range(eof,eof)]])},$Lexer_pop_literal$57.$$arity=0),self.$protected(),Opal.def(self,"$eof_codepoint?",$Lexer_pop_literal$57=function(point){return[4,26,0]["$include?"](point)},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$version?",$Lexer_pop_literal$57=function($a){return Opal.slice.call(arguments,0,arguments.length)["$include?"](this.version)},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$stack_pop",$Lexer_pop_literal$57=function(){return this.top=$rb_minus(this.top,1),this.stack["$[]"](this.top)},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$encode_escape",$Lexer_pop_literal$57=function(ord){return ord.$chr().$force_encoding(this.source_buffer.$source().$encoding())},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$tok",$Lexer_pop_literal$57=function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),this.source_buffer.$slice(Opal.Range.$new(s,e,!0))},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$range",$Lexer_pop_literal$57=function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),$$$($$$($$($nesting,"Parser"),"Source"),"Range").$new(this.source_buffer,s,e)},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$emit",$Lexer_pop_literal$57=function(type,value,s,e){var token;return null==value&&(value=this.$tok()),null==s&&(s=this.ts),null==e&&(e=this.te),token=[type,[value,this.$range(s,e)]],this.token_queue.$push(token),$truthy(this.tokens)&&this.tokens.$push(token),token},$Lexer_pop_literal$57.$$arity=-2),Opal.def(self,"$emit_table",$Lexer_pop_literal$57=function(table,s,e){var value;return null==s&&(s=this.ts),null==e&&(e=this.te),value=this.$tok(s,e),this.$emit(table["$[]"](value),value,s,e)},$Lexer_pop_literal$57.$$arity=-2),Opal.def(self,"$emit_do",$Lexer_pop_literal$57=function(do_block){var self=this,$ret_or_523=nil;return null==do_block&&(do_block=!1),$truthy(self.cond["$active?"]())?self.$emit("kDO_COND","do".$freeze()):$truthy($truthy($ret_or_523=self.cmdarg["$active?"]())?$ret_or_523:do_block)?self.$emit("kDO_BLOCK","do".$freeze()):self.$emit("kDO","do".$freeze())},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$arg_or_cmdarg",$Lexer_pop_literal$57=function(cmd_state){return $truthy(cmd_state)?this.$class().$lex_en_expr_cmdarg():this.$class().$lex_en_expr_arg()},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$emit_comment",$Lexer_pop_literal$57=function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),$truthy(this.comments)&&this.comments.$push($$$($$$($$($nesting,"Parser"),"Source"),"Comment").$new(this.$range(s,e))),$truthy(this.tokens)&&this.tokens.$push(["tCOMMENT",[this.$tok(s,e),this.$range(s,e)]]),nil},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$diagnostic",$Lexer_pop_literal$57=function(type,reason,arguments$,location,highlights){return null==arguments$&&(arguments$=nil),null==location&&(location=this.$range()),null==highlights&&(highlights=[]),this.diagnostics.$process($$$($$($nesting,"Parser"),"Diagnostic").$new(type,reason,arguments$,location,highlights))},$Lexer_pop_literal$57.$$arity=-3),Opal.def(self,"$push_literal",$Lexer_pop_literal$57=function($a){var self=this,args=Opal.slice.call(arguments,0,arguments.length),new_literal=$send($$($nesting,"Literal"),"new",[self].concat(Opal.to_a(args)));return self.literal_stack.$push(new_literal),self.$next_state_for_literal(new_literal)},$Lexer_pop_literal$57.$$arity=-1),Opal.def(self,"$next_state_for_literal",$Lexer_pop_literal$57=function(literal){var $ret_or_524=nil,$ret_or_525=nil,$ret_or_526=nil;return $truthy($truthy($ret_or_524=literal["$words?"]())?literal["$backslash_delimited?"]():$ret_or_524)?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_backslash_delimited_words():this.$class().$lex_en_plain_backslash_delimited_words():$truthy($truthy($ret_or_525=literal["$words?"]())?literal["$backslash_delimited?"]()["$!"]():$ret_or_525)?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_words():this.$class().$lex_en_plain_words():$truthy($truthy($ret_or_526=literal["$words?"]()["$!"]())?literal["$backslash_delimited?"]():$ret_or_526)?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_backslash_delimited():this.$class().$lex_en_plain_backslash_delimited():$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_string():this.$class().$lex_en_plain_string()},$Lexer_pop_literal$57.$$arity=1),Opal.def(self,"$literal",$Lexer_pop_literal$57=function(){return this.literal_stack.$last()},$Lexer_pop_literal$57.$$arity=0),Opal.def(self,"$pop_literal",$Lexer_pop_literal$57=function(){var old_literal=nil,old_literal=this.literal_stack.$pop();return this.dedent_level=old_literal.$dedent_level(),old_literal.$type()["$=="]("tREGEXP_BEG")?this.$class().$lex_en_regexp_modifiers():this.$class().$lex_en_expr_end()},$Lexer_pop_literal$57.$$arity=0),Opal.const_set($nesting[0],"PUNCTUATION",$hash2(["=","&","|","!","^","+","-","*","/","%","~",",",";",".","..","...","[","]","(",")","?",":","&&","||","-@","+@","~@","**","->","=~","!~","==","!=",">",">>",">=","<","<<","<=","=>","::","===","<=>","[]","[]=","{","}","`","!@","&."],{"=":"tEQL","&":"tAMPER2","|":"tPIPE","!":"tBANG","^":"tCARET","+":"tPLUS","-":"tMINUS","*":"tSTAR2","/":"tDIVIDE","%":"tPERCENT","~":"tTILDE",",":"tCOMMA",";":"tSEMI",".":"tDOT","..":"tDOT2","...":"tDOT3","[":"tLBRACK2","]":"tRBRACK","(":"tLPAREN2",")":"tRPAREN","?":"tEH",":":"tCOLON","&&":"tANDOP","||":"tOROP","-@":"tUMINUS","+@":"tUPLUS","~@":"tTILDE","**":"tPOW","->":"tLAMBDA","=~":"tMATCH","!~":"tNMATCH","==":"tEQ","!=":"tNEQ",">":"tGT",">>":"tRSHFT",">=":"tGEQ","<":"tLT","<<":"tLSHFT","<=":"tLEQ","=>":"tASSOC","::":"tCOLON2","===":"tEQQ","<=>":"tCMP","[]":"tAREF","[]=":"tASET","{":"tLCURLY","}":"tRCURLY","`":"tBACK_REF2","!@":"tBANG","&.":"tANDDOT"})),Opal.const_set($nesting[0],"PUNCTUATION_BEGIN",$hash2(["&","*","**","+","-","::","(","{","["],{"&":"tAMPER","*":"tSTAR","**":"tDSTAR","+":"tUPLUS","-":"tUMINUS","::":"tCOLON3","(":"tLPAREN","{":"tLBRACE","[":"tLBRACK"})),Opal.const_set($nesting[0],"KEYWORDS",$hash2(["if","unless","while","until","rescue","defined?","BEGIN","END"],{if:"kIF_MOD",unless:"kUNLESS_MOD",while:"kWHILE_MOD",until:"kUNTIL_MOD",rescue:"kRESCUE_MOD","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),Opal.const_set($nesting[0],"KEYWORDS_BEGIN",$hash2(["if","unless","while","until","rescue","defined?","BEGIN","END"],{if:"kIF",unless:"kUNLESS",while:"kWHILE",until:"kUNTIL",rescue:"kRESCUE","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),$send(["class","module","def","undef","begin","end","then","elsif","else","ensure","case","when","for","break","next","redo","retry","in","do","return","yield","super","self","nil","true","false","and","or","not","alias","__FILE__","__LINE__","__ENCODING__"],"each",[],(($Lexer$58=function(keyword){null==$Lexer$58.$$s||$Lexer$58.$$s;return null==keyword&&(keyword=nil),$writer=[keyword,($writer=[keyword,"k"+keyword.$upcase()],$send($$($nesting,"KEYWORDS"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send($$($nesting,"KEYWORDS_BEGIN"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$Lexer$58.$$arity=1,$Lexer$58))}($$($nesting,"Parser"),$nesting)},Opal.modules["parser/lexer/literal"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$enc=Opal.enc,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$attr_accessor","$coerce_encoding","$include?","$send","$+","$[]","$fetch","$==","$!","$heredoc?","$start_with?","$freeze","$clear_buffer","$emit_start_tok","$type","$words?","$=~","$delimiter?","$-","$extend_space","$!=","$flush_string","$emit","$each_char","$===","$%","$nil?","$>","$<<","$empty?","$extend_content","$protected","$lstrip","$b","$dup","$force_encoding","$encoding","$source","$source_buffer","$length"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Literal_emit$25,$Literal_emit_start_tok$24){var $Literal_emit$25=$klass($Literal_emit$25,null,"Literal"),$nesting=[$Literal_emit$25].concat($Literal_emit_start_tok$24);return $Literal_emit$25.$$prototype.lexer=$Literal_emit$25.$$prototype.start_tok=$Literal_emit$25.$$prototype.str_type=$Literal_emit$25.$$prototype.monolithic=$Literal_emit$25.$$prototype.interpolate=$Literal_emit$25.$$prototype.heredoc_e=$Literal_emit$25.$$prototype.dedent_body=$Literal_emit$25.$$prototype.end_delim=$Literal_emit$25.$$prototype.start_delim=$Literal_emit$25.$$prototype.nesting=$Literal_emit$25.$$prototype.label_allowed=$Literal_emit$25.$$prototype.buffer=$Literal_emit$25.$$prototype.str_s=$Literal_emit$25.$$prototype.interp_braces=$Literal_emit$25.$$prototype.buffer_s=$Literal_emit$25.$$prototype.buffer_e=$Literal_emit$25.$$prototype.space_emitted=$Literal_emit$25.$$prototype.indent=nil,Opal.const_set($nesting[0],"DELIMITERS",$hash2(["(","[","{","<"],{"(":$enc(")","ASCII-8BIT"),"[":$enc("]","ASCII-8BIT"),"{":$enc("}","ASCII-8BIT"),"<":$enc(">","ASCII-8BIT")})),Opal.const_set($nesting[0],"TYPES",$hash2(["'","<<'","%q",'"','<<"',"%","%Q","%w","%W","%i","%I",":'","%s",':"',"/","%r","%x","`","<<`"],{"'":["tSTRING_BEG",!1],"<<'":["tSTRING_BEG",!1],"%q":["tSTRING_BEG",!1],'"':["tSTRING_BEG",!0],'<<"':["tSTRING_BEG",!0],"%":["tSTRING_BEG",!0],"%Q":["tSTRING_BEG",!0],"%w":["tQWORDS_BEG",!1],"%W":["tWORDS_BEG",!0],"%i":["tQSYMBOLS_BEG",!1],"%I":["tSYMBOLS_BEG",!0],":'":["tSYMBEG",!1],"%s":["tSYMBEG",!1],':"':["tSYMBEG",!0],"/":["tREGEXP_BEG",!0],"%r":["tREGEXP_BEG",!0],"%x":["tXSTRING_BEG",!0],"`":["tXSTRING_BEG",!0],"<<`":["tXSTRING_BEG",!0]})),$Literal_emit$25.$attr_reader("heredoc_e","str_s","dedent_level"),$Literal_emit$25.$attr_accessor("saved_herebody_s"),Opal.def($Literal_emit$25,"$initialize",$Literal_emit_start_tok$24=function(lexer,str_type,delimiter,$a,heredoc_e,indent,dedent_body,label_allowed){var self=this,$ret_or_1=nil,$ret_or_2=nil;return null==heredoc_e&&(heredoc_e=nil),null==indent&&(indent=!1),null==dedent_body&&(dedent_body=!1),null==label_allowed&&(label_allowed=!1),self.lexer=lexer,self.nesting=1,str_type=self.$coerce_encoding(str_type),delimiter=self.$coerce_encoding(delimiter),$truthy($$($nesting,"TYPES")["$include?"](str_type))||lexer.$send("diagnostic","error","unexpected_percent_str",$hash2(["type"],{type:str_type}),self.lexer.$send("range",$a,$rb_plus($a,2))),self.str_type=str_type,self.str_s=$a,$a=$$($nesting,"TYPES")["$[]"](str_type),$a=Opal.to_ary($a),self.start_tok=null==$a[0]?nil:$a[0],self.interpolate=null==$a[1]?nil:$a[1],self.start_delim=$truthy($$($nesting,"DELIMITERS")["$include?"](delimiter))?delimiter:nil,self.end_delim=$$($nesting,"DELIMITERS").$fetch(delimiter,delimiter),self.heredoc_e=heredoc_e,self.indent=indent,self.label_allowed=label_allowed,self.dedent_body=dedent_body,self.dedent_level=nil,self.interp_braces=0,self.space_emitted=!0,self.monolithic=$truthy($ret_or_1=$truthy($ret_or_2=self.start_tok["$=="]("tSTRING_BEG"))?[$enc("'","ASCII-8BIT"),$enc('"',"ASCII-8BIT")]["$include?"](str_type):$ret_or_2)?self["$heredoc?"]()["$!"]():$ret_or_1,$truthy(self.str_type["$start_with?"]($enc("%","ASCII-8BIT").$freeze()))&&(self.str_type=$rb_plus(self.str_type,delimiter)),self.$clear_buffer(),$truthy(self.monolithic)?nil:self.$emit_start_tok()},$Literal_emit_start_tok$24.$$arity=-5),Opal.def($Literal_emit$25,"$interpolate?",$Literal_emit_start_tok$24=function(){return this.interpolate},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$words?",$Literal_emit_start_tok$24=function(){var $ret_or_3,self=this,$ret_or_4=nil,$ret_or_5=nil;return $truthy($ret_or_3=$truthy($ret_or_4=$truthy($ret_or_5=self.$type()["$=="]("tWORDS_BEG"))?$ret_or_5:self.$type()["$=="]("tQWORDS_BEG"))?$ret_or_4:self.$type()["$=="]("tSYMBOLS_BEG"))?$ret_or_3:self.$type()["$=="]("tQSYMBOLS_BEG")},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$regexp?",$Literal_emit_start_tok$24=function(){return this.$type()["$=="]("tREGEXP_BEG")},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$heredoc?",$Literal_emit_start_tok$24=function(){return this.heredoc_e["$!"]()["$!"]()},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$plain_heredoc?",$Literal_emit_start_tok$24=function(){var $ret_or_6;return $truthy($ret_or_6=this["$heredoc?"]())?this.dedent_body["$!"]():$ret_or_6},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$squiggly_heredoc?",$Literal_emit_start_tok$24=function(){var $ret_or_7;return $truthy($ret_or_7=this["$heredoc?"]())?this.dedent_body:$ret_or_7},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$backslash_delimited?",$Literal_emit_start_tok$24=function(){return this.end_delim["$=="]($enc("\\","ASCII-8BIT").$freeze())},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$type",$Literal_emit_start_tok$24=function(){return this.start_tok},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$munge_escape?",$Literal_emit_start_tok$24=function(character){var self=this,$ret_or_8=nil;return character=self.$coerce_encoding(character),!!$truthy($truthy($ret_or_8=self["$words?"]())?character["$=~"](/[ \t\v\r\f\n]/):$ret_or_8)||[$enc("\\","ASCII-8BIT").$freeze(),self.start_delim,self.end_delim]["$include?"](character)},$Literal_emit_start_tok$24.$$arity=1),Opal.def($Literal_emit$25,"$nest_and_try_closing",$Literal_emit_start_tok$24=function(delimiter,ts,te,lookahead){var self=this,$ret_or_9=nil,$ret_or_10=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil;return null==lookahead&&(lookahead=nil),delimiter=self.$coerce_encoding(delimiter),$truthy($truthy($ret_or_9=self.start_delim)?self.start_delim["$=="](delimiter):$ret_or_9)?self.nesting=$rb_plus(self.nesting,1):$truthy(self["$delimiter?"](delimiter))&&(self.nesting=$rb_minus(self.nesting,1)),self.nesting["$=="](0)?($truthy(self["$words?"]())&&self.$extend_space(ts,ts),$truthy($truthy($ret_or_10=$truthy($ret_or_11=$truthy($ret_or_12=$truthy($ret_or_13=lookahead)?self.label_allowed:$ret_or_13)?lookahead["$[]"](0)["$=="]($enc(":","ASCII-8BIT")):$ret_or_12)?lookahead["$[]"](1)["$!="]($enc(":","ASCII-8BIT")):$ret_or_11)?self.start_tok["$=="]("tSTRING_BEG"):$ret_or_10)?(self.$flush_string(),self.$emit("tLABEL_END",self.end_delim,ts,$rb_plus(te,1))):$truthy(self.monolithic)?self.$emit("tSTRING",self.buffer,self.str_s,te):($truthy(self["$heredoc?"]())||self.$flush_string(),self.$emit("tSTRING_END",self.end_delim,ts,te))):nil},$Literal_emit_start_tok$24.$$arity=-4),Opal.def($Literal_emit$25,"$infer_indent_level",$Literal_emit_start_tok$24=function(line){var $$13,self=this,indent_level=nil;return $truthy(self.dedent_body["$!"]())?nil:(indent_level=0,function(){var $brk=Opal.new_brk();try{return $send(line,"each_char",[],(($$13=function(char$){var self=null==$$13.$$s?this:$$13.$$s,lhs=nil,rhs=nil;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil)," "["$==="](lhs=char$)?indent_level=$rb_plus(indent_level,1):"\t"["$==="](lhs)?indent_level=$rb_plus(indent_level,$rb_minus(8,indent_level["$%"](8))):($truthy($truthy(rhs=self.dedent_level["$nil?"]())?rhs:(lhs=self.dedent_level,rhs=indent_level,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))&&(self.dedent_level=indent_level),void Opal.brk(nil,$brk))}).$$s=self,$$13.$$brk=$brk,$$13.$$arity=1,$$13))}catch(err){if(err===$brk)return err.$v;throw err}}())},$Literal_emit_start_tok$24.$$arity=1),Opal.def($Literal_emit$25,"$start_interp_brace",$Literal_emit_start_tok$24=function(){return this.interp_braces=$rb_plus(this.interp_braces,1)},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$end_interp_brace_and_try_closing",$Literal_emit_start_tok$24=function(){return this.interp_braces=$rb_minus(this.interp_braces,1),this.interp_braces["$=="](0)},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$extend_string",$Literal_emit_start_tok$24=function(string,ts,te){var self=this,$ret_or_15=nil;return self.buffer_s=$truthy($ret_or_15=self.buffer_s)?$ret_or_15:ts,self.buffer_e=te,self.buffer["$<<"](string)},$Literal_emit_start_tok$24.$$arity=3),Opal.def($Literal_emit$25,"$flush_string",$Literal_emit_start_tok$24=function(){return $truthy(this.monolithic)&&(this.$emit_start_tok(),this.monolithic=!1),$truthy(this.buffer["$empty?"]())?nil:(this.$emit("tSTRING_CONTENT",this.buffer,this.buffer_s,this.buffer_e),this.$clear_buffer(),this.$extend_content())},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$extend_content",$Literal_emit_start_tok$24=function(){return this.space_emitted=!1},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$extend_space",$Literal_emit_start_tok$24=function(ts,te){return this.$flush_string(),$truthy(this.space_emitted)?nil:(this.$emit("tSPACE",nil,ts,te),this.space_emitted=!0)},$Literal_emit_start_tok$24.$$arity=2),Opal.def($Literal_emit$25,"$supports_line_continuation_via_slash?",$Literal_emit_start_tok$24=function(){var $ret_or_16;return $truthy($ret_or_16=this["$words?"]()["$!"]())?this.interpolate:$ret_or_16},$Literal_emit_start_tok$24.$$arity=0),$Literal_emit$25.$protected(),Opal.def($Literal_emit$25,"$delimiter?",$Literal_emit_start_tok$24=function(delimiter){return $truthy(this.indent)?this.end_delim["$=="](delimiter.$lstrip()):this.end_delim["$=="](delimiter)},$Literal_emit_start_tok$24.$$arity=1),Opal.def($Literal_emit$25,"$coerce_encoding",$Literal_emit_start_tok$24=function(string){return string.$b()},$Literal_emit_start_tok$24.$$arity=1),Opal.def($Literal_emit$25,"$clear_buffer",$Literal_emit_start_tok$24=function(){return this.buffer=$enc("","ASCII-8BIT").$dup(),this.buffer.$force_encoding(this.lexer.$source_buffer().$source().$encoding()),this.buffer_s=nil,this.buffer_e=nil},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$emit_start_tok",$Literal_emit_start_tok$24=function(){var self=this,$ret_or_17=nil,str_e=$truthy($ret_or_17=self.heredoc_e)?$ret_or_17:$rb_plus(self.str_s,self.str_type.$length());return self.$emit(self.start_tok,self.str_type,self.str_s,str_e)},$Literal_emit_start_tok$24.$$arity=0),Opal.def($Literal_emit$25,"$emit",$Literal_emit$25=function(token,type,s,e){return this.lexer.$send("emit",token,type,s,e)},$Literal_emit$25.$$arity=4),nil&&"emit"}($$($nesting,"Lexer"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer/stack_state"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs(["$freeze","$clear","$|","$<<","$&","$>>","$==","$[]","$to_s"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function(self,$StackState_to_s$8){self=$klass(self,null,"StackState"),[self].concat($StackState_to_s$8);return self.$$prototype.stack=self.$$prototype.name=nil,Opal.def(self,"$initialize",$StackState_to_s$8=function(name){return this.name=name.$freeze(),this.$clear()},$StackState_to_s$8.$$arity=1),Opal.def(self,"$clear",$StackState_to_s$8=function(){return this.stack=0},$StackState_to_s$8.$$arity=0),Opal.def(self,"$push",$StackState_to_s$8=function(bit){var bit_value=$truthy(bit)?1:0;return this.stack=this.stack["$<<"](1)["$|"](bit_value),bit},$StackState_to_s$8.$$arity=1),Opal.def(self,"$pop",$StackState_to_s$8=function(){var bit_value=nil,bit_value=this.stack["$&"](1);return this.stack=this.stack["$>>"](1),bit_value["$=="](1)},$StackState_to_s$8.$$arity=0),Opal.def(self,"$lexpop",$StackState_to_s$8=function(){return this.stack=this.stack["$>>"](1)["$|"](this.stack["$&"](1)),this.stack["$[]"](0)["$=="](1)},$StackState_to_s$8.$$arity=0),Opal.def(self,"$active?",$StackState_to_s$8=function(){return this.stack["$[]"](0)["$=="](1)},$StackState_to_s$8.$$arity=0),Opal.def(self,"$empty?",$StackState_to_s$8=function(){return this.stack["$=="](0)},$StackState_to_s$8.$$arity=0),Opal.def(self,"$to_s",$StackState_to_s$8=function(){return"["+this.stack.$to_s(2)+" <= "+this.name+"]"},$StackState_to_s$8.$$arity=0),$alias(self,"inspect","to_s")}($$($nesting,"Lexer"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer/dedenter"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs(["$encoding","$split","$force_encoding","$==","$length","$map!","$each","$each_char","$<=","$===","$+","$-","$>","$*","$/","$slice!","$replace","$join","$end_with?"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Dedenter_interrupt$6,$Dedenter_dedent$2){var $Dedenter_interrupt$6=$klass($Dedenter_interrupt$6,null,"Dedenter"),$nesting=[$Dedenter_interrupt$6].concat($Dedenter_dedent$2);return $Dedenter_interrupt$6.$$prototype.at_line_begin=nil,Opal.const_set($nesting[0],"TAB_WIDTH",8),Opal.def($Dedenter_interrupt$6,"$initialize",$Dedenter_dedent$2=function(dedent_level){return this.dedent_level=dedent_level,this.at_line_begin=!0,this.indent_level=0},$Dedenter_dedent$2.$$arity=1),Opal.def($Dedenter_interrupt$6,"$dedent",$Dedenter_dedent$2=function(string){var $$3,$a,$$4,self=this,lines=nil,lines_to_dedent=nil,original_encoding=string.$encoding();return(lines=string.$force_encoding($$$($$($nesting,"Encoding"),"BINARY")).$split("\\\n")).$length()["$=="](1)?lines=[string.$force_encoding(original_encoding)]:$send(lines,"map!",[],(($$3=function(s){null==$$3.$$s||$$3.$$s;return null==s&&(s=nil),s.$force_encoding(original_encoding)}).$$s=self,$$3.$$arity=1,$$3)),lines_to_dedent=$truthy(self.at_line_begin)?lines:($a=lines,null==($a=Opal.to_ary($a))[0]||$a[0],$slice.call($a,1)),function(){var $brk=Opal.new_brk();try{$send(lines_to_dedent,"each",[],(($$4=function(line){var $$5,self=null==$$4.$$s?this:$$4.$$s,left_to_remove=nil,remove=nil;return null==self.dedent_level&&(self.dedent_level=nil),null==line&&(line=nil),left_to_remove=self.dedent_level,remove=0,function(){var $brk=Opal.new_brk();try{$send(line,"each_char",[],(($$5=function(char$){var $case,lhs,rhs,self=null==$$5.$$s?this:$$5.$$s;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil),$truthy((rhs=0,"number"==typeof(lhs=left_to_remove)&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))&&Opal.brk(nil,$brk),function(){return" "["$==="]($case=char$)?(remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,1)):"\t"["$==="]($case)?($truthy(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}($$($nesting,"TAB_WIDTH"),$rb_plus((lhs=remove,rhs=$$($nesting,"TAB_WIDTH"),"number"==typeof lhs&&"number"==typeof rhs?lhs/rhs:lhs["$/"](rhs)),1)),self.dedent_level))&&Opal.brk(nil,$brk),remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,$$($nesting,"TAB_WIDTH"))):void Opal.brk(nil,$brk);var lhs,rhs}()}).$$s=self,$$5.$$brk=$brk,$$5.$$arity=1,$$5))}catch(err){if(err===$brk)return err.$v;throw err}}(),line["$slice!"](0,remove)}).$$s=self,$$4.$$brk=$brk,$$4.$$arity=1,$$4))}catch(err){if(err===$brk)return err.$v;throw err}}(),string.$replace(lines.$join()),self.at_line_begin=string["$end_with?"]("\n")},$Dedenter_dedent$2.$$arity=1),Opal.def($Dedenter_interrupt$6,"$interrupt",$Dedenter_interrupt$6=function(){return this.at_line_begin=!1},$Dedenter_interrupt$6.$$arity=0),nil&&"interrupt"}($$($nesting,"Lexer"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/builders/default"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_ge(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs=","$range_map","$variable_map","$name","$source_buffer","$dup","$line","$emit_encoding","$class","$any?","$end_with?","$to_s","$try_declare_numparam","$declared?","$static_env","$var_send_map","$top","$current_arg_stack","$parser","$constant_map","$in_def","$context","$check_assignment_to_numparam","$check_reserved_for_numparam","$declare","$with_expression","$with_operator","$join_exprs","$module_definition_map","$definition_map","$endless_definition_map","$validate_definee","$keyword_map","$check_duplicate_args","$validate_no_forward_arg_after_restarg","$emit_forward_arg","$forward_arg","$arg_prefix_map","$kwarg_map","$emit_procarg0","$emit_arg_inside_procarg0","$location","$resize","$end","$call_type_for_dot","$emit_kwargs","$rewrite_hash_args_to_kwargs","$send_map","$emit_lambda","$expr_map","$keyword","$include?","$block_map","$array","$emit_index","$index_map","$send_index_map","$send_binary_op_map","$static_regexp_node","$each","$names","$send_unary_op_map","$check_condition","$condition_map","$keyword_mod_map","$ternary_map","$for_map","$>","$count","$rescue_body_map","$eh_keyword_map","$push","$none?","$one?","$begin","$guard_map","$check_lvar_name","$check_duplicate_pattern_variable","$match_hash_var_from_str","$match_var","$check_duplicate_pattern_key","$static_string","$pair_quoted","$match_hash_var","$<=","$check_duplicate_arg","$is_a?","$[]=","$arg_name_collides?","$<","$in_dynamic_block?","$has_numparams?","$max_numparam_stack","$start_with?","$pattern_variables","$pattern_hash_keys","$with","$begin_pos","$end_pos","$encode","$valid_encoding?","$process","$diagnostics","$send","$kwargs?"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($Default_kwargs$ques$207,$Default_rewrite_hash_args_to_kwargs$206){var $Default_kwargs$ques$207=$klass($Default_kwargs$ques$207,null,"Default"),$nesting=[$Default_kwargs$ques$207].concat($Default_rewrite_hash_args_to_kwargs$206);return $Default_kwargs$ques$207.$$prototype.parser=$Default_kwargs$ques$207.$$prototype.emit_file_line_as_literals=nil,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_lambda")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_lambda=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_procarg0")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_procarg0=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_encoding")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_encoding=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_index")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_index=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_arg_inside_procarg0")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_arg_inside_procarg0=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_forward_arg")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_forward_arg=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_kwargs")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_kwargs=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("emit_match_pattern")}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.emit_match_pattern=!1,function($modernize$1,$parent_nesting){[$modernize$1].concat($parent_nesting),Opal.def($modernize$1,"$modernize",$modernize$1=function(){return this.emit_lambda=!0,this.emit_procarg0=!0,this.emit_encoding=!0,this.emit_index=!0,this.emit_arg_inside_procarg0=!0,this.emit_forward_arg=!0,this.emit_kwargs=!0,this.emit_match_pattern=!0},$modernize$1.$$arity=0)}(Opal.get_singleton_class($Default_kwargs$ques$207),$nesting),$Default_kwargs$ques$207.$attr_accessor("parser"),$Default_kwargs$ques$207.$attr_accessor("emit_file_line_as_literals"),Opal.def($Default_kwargs$ques$207,"$initialize",$Default_rewrite_hash_args_to_kwargs$206=function(){return this.emit_file_line_as_literals=!0},$Default_rewrite_hash_args_to_kwargs$206.$$arity=0),Opal.def($Default_kwargs$ques$207,"$nil",$Default_rewrite_hash_args_to_kwargs$206=function(nil_t){return this.$n0("nil",this.$token_map(nil_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$true",$Default_rewrite_hash_args_to_kwargs$206=function(true_t){return this.$n0("true",this.$token_map(true_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$false",$Default_rewrite_hash_args_to_kwargs$206=function(false_t){return this.$n0("false",this.$token_map(false_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$integer",$Default_rewrite_hash_args_to_kwargs$206=function(integer_t){return this.$numeric("int",integer_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$float",$Default_rewrite_hash_args_to_kwargs$206=function(float_t){return this.$numeric("float",float_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$rational",$Default_rewrite_hash_args_to_kwargs$206=function(rational_t){return this.$numeric("rational",rational_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$complex",$Default_rewrite_hash_args_to_kwargs$206=function(complex_t){return this.$numeric("complex",complex_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$numeric",$Default_rewrite_hash_args_to_kwargs$206=function(kind,token){return this.$n(kind,[this.$value(token)],$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(nil,this.$loc(token)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),$Default_kwargs$ques$207.$private("numeric"),Opal.def($Default_kwargs$ques$207,"$unary_num",$Default_rewrite_hash_args_to_kwargs$206=function(unary_t,numeric){var value=nil,operator_loc=nil,$a=[].concat(Opal.to_a(numeric)),value=null==$a[0]?nil:$a[0],operator_loc=this.$loc(unary_t),$case=this.$value(unary_t);return"+"["$==="]($case)?value=value["$+@"]():"-"["$==="]($case)&&(value=value["$-@"]()),numeric.$updated(nil,[value],$hash2(["location"],{location:$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(operator_loc,operator_loc.$join(numeric.$loc().$expression()))}))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$__LINE__",$Default_rewrite_hash_args_to_kwargs$206=function(__LINE__t){return this.$n0("__LINE__",this.$token_map(__LINE__t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$string",$Default_rewrite_hash_args_to_kwargs$206=function(string_t){return this.$n("str",[this.$string_value(string_t)],this.$delimited_string_map(string_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$string_internal",$Default_rewrite_hash_args_to_kwargs$206=function(string_t){return this.$n("str",[this.$string_value(string_t)],this.$unquoted_map(string_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$string_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var $ret_or_1=nil;return $truthy(this["$collapse_string_parts?"](parts))?$truthy($truthy($ret_or_1=begin_t["$nil?"]())?end_t["$nil?"]():$ret_or_1)?parts.$first():this.$n("str",parts.$first().$children(),this.$string_map(begin_t,parts,end_t)):this.$n("dstr",[].concat(Opal.to_a(parts)),this.$string_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$character",$Default_rewrite_hash_args_to_kwargs$206=function(char_t){return this.$n("str",[this.$string_value(char_t)],this.$prefix_string_map(char_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$__FILE__",$Default_rewrite_hash_args_to_kwargs$206=function(__FILE__t){return this.$n0("__FILE__",this.$token_map(__FILE__t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$symbol",$Default_rewrite_hash_args_to_kwargs$206=function(symbol_t){return this.$n("sym",[this.$string_value(symbol_t).$to_sym()],this.$prefix_string_map(symbol_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$symbol_internal",$Default_rewrite_hash_args_to_kwargs$206=function(symbol_t){return this.$n("sym",[this.$string_value(symbol_t).$to_sym()],this.$unquoted_map(symbol_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$symbol_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var self=this,str=nil,$ret_or_2=nil;return $truthy(self["$collapse_string_parts?"](parts))?(str=parts.$first(),self.$n("sym",[str.$children().$first().$to_sym()],self.$collection_map(begin_t,str.$loc().$expression(),end_t))):$truthy($truthy($ret_or_2=self.parser.$version()["$=="](18))?parts["$empty?"]():$ret_or_2)?self.$diagnostic("error","empty_symbol",nil,self.$loc(begin_t).$join(self.$loc(end_t))):self.$n("dsym",[].concat(Opal.to_a(parts)),self.$collection_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$xstring_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){return this.$n("xstr",[].concat(Opal.to_a(parts)),this.$string_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$dedent_string",$Default_rewrite_hash_args_to_kwargs$206=function(node,dedent_level){var $$23,$case,dedenter=nil,str=nil,children=nil;return $truthy(dedent_level["$nil?"]()["$!"]())&&(dedenter=$$$($$($nesting,"Lexer"),"Dedenter").$new(dedent_level),$case=node.$type(),"str"["$==="]($case)?(str=node.$children().$first(),dedenter.$dedent(str)):("dstr"["$==="]($case)||"xstr"["$==="]($case))&&(children=$send(node.$children(),"map",[],(($$23=function(str_node){null==$$23.$$s||$$23.$$s;if(null==str_node&&(str_node=nil),str_node.$type()["$=="]("str")){if(str=str_node.$children().$first(),dedenter.$dedent(str),$truthy(str["$empty?"]()))return nil}else dedenter.$interrupt();return str_node}).$$s=this,$$23.$$arity=1,$$23)),node=node.$updated(nil,children.$compact()))),node},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$regexp_options",$Default_rewrite_hash_args_to_kwargs$206=function(regopt_t){var options=$send(this.$value(regopt_t).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc());return this.$n("regopt",options,this.$token_map(regopt_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$regexp_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t,options){var e=nil;try{this.$static_regexp(parts,options)}catch($err){if(!Opal.rescue($err,[$$($nesting,"RegexpError")]))throw $err;e=$err;try{this.$diagnostic("error","invalid_regexp",$hash2(["message"],{message:e.$message()}),this.$loc(begin_t).$join(this.$loc(end_t)))}finally{Opal.pop_exception()}}return this.$n("regexp",parts["$<<"](options),this.$regexp_map(begin_t,end_t,options))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$array",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,elements,end_t){return this.$n("array",elements,this.$collection_map(begin_t,elements,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$splat",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,arg){return null==arg&&(arg=nil),$truthy(arg["$nil?"]())?this.$n0("splat",this.$unary_op_map(star_t)):this.$n("splat",[arg],this.$unary_op_map(star_t,arg))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$word",$Default_rewrite_hash_args_to_kwargs$206=function(parts){return $truthy(this["$collapse_string_parts?"](parts))?parts.$first():this.$n("dstr",[].concat(Opal.to_a(parts)),this.$collection_map(nil,parts,nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$words_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){return this.$n("array",[].concat(Opal.to_a(parts)),this.$collection_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$symbols_compose",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var $$31;return parts=$send(parts,"map",[],(($$31=function(part){null==$$31.$$s||$$31.$$s;var $a,$case=nil,value=nil;return null==part&&(part=nil),$case=part.$type(),"str"["$==="]($case)?($a=[].concat(Opal.to_a(part)),value=null==$a[0]?nil:$a[0],part.$updated("sym",[value.$to_sym()])):"dstr"["$==="]($case)?part.$updated("dsym"):part}).$$s=this,$$31.$$arity=1,$$31)),this.$n("array",[].concat(Opal.to_a(parts)),this.$collection_map(begin_t,parts,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$pair",$Default_rewrite_hash_args_to_kwargs$206=function(key,assoc_t,value){return this.$n("pair",[key,value],this.$binary_op_map(key,assoc_t,value))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$pair_list_18",$Default_rewrite_hash_args_to_kwargs$206=function(list){var $$34;return $truthy(list.$size()["$%"](2)["$!="](0))?this.$diagnostic("error","odd_hash",nil,list.$last().$loc().$expression()):$send(list.$each_slice(2),"map",[],(($$34=function(key,value){var self=null==$$34.$$s?this:$$34.$$s;return null==key&&(key=nil),null==value&&(value=nil),self.$n("pair",[key,value],self.$binary_op_map(key,nil,value))}).$$s=this,$$34.$$arity=2,$$34))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$pair_keyword",$Default_rewrite_hash_args_to_kwargs$206=function(key_t,value){var $a=this.$pair_keyword_map(key_t,value),$a=Opal.to_ary($a),key_map=null==$a[0]?nil:$a[0],pair_map=null==$a[1]?nil:$a[1],key=this.$n("sym",[this.$value(key_t).$to_sym()],key_map);return this.$n("pair",[key,value],pair_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$pair_quoted",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t,value){var pair_map,key,$a=this.$pair_quoted_map(begin_t,end_t,value),$a=Opal.to_ary($a);return end_t=null==$a[0]?nil:$a[0],pair_map=null==$a[1]?nil:$a[1],key=this.$symbol_compose(begin_t,parts,end_t),this.$n("pair",[key,value],pair_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$pair_label",$Default_rewrite_hash_args_to_kwargs$206=function(key_t){var self=this,label=nil,value_l=self.$loc(key_t).$adjust($hash2(["end_pos"],{end_pos:-1})),label=self.$value(key_t),value=$truthy(label["$=~"](/^[[:lower:]]/))?self.$n("ident",[label.$to_sym()],$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(value_l)):self.$n("const",[nil,label.$to_sym()],$$$($$$($$($nesting,"Source"),"Map"),"Constant").$new(nil,value_l,value_l));return self.$pair_keyword(key_t,self.$accessible(value))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$kwsplat",$Default_rewrite_hash_args_to_kwargs$206=function(dstar_t,arg){return this.$n("kwsplat",[arg],this.$unary_op_map(dstar_t,arg))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$associate",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,pairs,end_t){var $$40;return $send(0,"upto",[$rb_minus(pairs.$length(),1)],(($$40=function(i){var $$41,self=null==$$40.$$s?this:$$40.$$s;return null==i&&(i=nil),$send($rb_plus(i,1),"upto",[$rb_minus(pairs.$length(),1)],(($$41=function(j){var $a,$case,self=null==$$41.$$s?this:$$41.$$s,key1=nil,key2=nil,do_warn=nil,$ret_or_3=nil;return null==self.parser&&(self.parser=nil),null==j&&(j=nil),$a=[].concat(Opal.to_a(pairs["$[]"](i))),key1=null==$a[0]?nil:$a[0],$a=[].concat(Opal.to_a(pairs["$[]"](j))),key2=null==$a[0]?nil:$a[0],do_warn=!1,$case=key1.$type(),"sym"["$==="]($case)||"str"["$==="]($case)||"int"["$==="]($case)||"float"["$==="]($case)?key1["$=="](key2)&&(do_warn=!0):("rational"["$==="]($case)||"complex"["$==="]($case)||"regexp"["$==="]($case))&&$truthy($truthy($ret_or_3=$rb_ge(self.parser.$version(),31))?key1["$=="](key2):$ret_or_3)&&(do_warn=!0),$truthy(do_warn)?self.$diagnostic("warning","duplicate_hash_key",nil,key2.$loc().$expression()):nil}).$$s=self,$$41.$$arity=1,$$41))}).$$s=this,$$40.$$arity=1,$$40)),this.$n("hash",[].concat(Opal.to_a(pairs)),this.$collection_map(begin_t,pairs,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$range_inclusive",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,dot2_t,rhs){return this.$n("irange",[lhs,rhs],this.$range_map(lhs,dot2_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$range_exclusive",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,dot3_t,rhs){return this.$n("erange",[lhs,rhs],this.$range_map(lhs,dot3_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$self",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n0("self",this.$token_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$ident",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("ident",[this.$value(token).$to_sym()],this.$variable_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$ivar",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("ivar",[this.$value(token).$to_sym()],this.$variable_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$gvar",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("gvar",[this.$value(token).$to_sym()],this.$variable_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$cvar",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("cvar",[this.$value(token).$to_sym()],this.$variable_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$back_ref",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("back_ref",[this.$value(token).$to_sym()],this.$token_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$nth_ref",$Default_rewrite_hash_args_to_kwargs$206=function(token){return this.$n("nth_ref",[this.$value(token)],this.$token_map(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$accessible",$Default_rewrite_hash_args_to_kwargs$206=function(node){var $$52,$a,self=this,name=nil,$ret_or_4=nil;return $a=node.$type(),"__FILE__"["$==="]($a)?$truthy(self.emit_file_line_as_literals)?self.$n("str",[node.$loc().$expression().$source_buffer().$name()],node.$loc().$dup()):node:"__LINE__"["$==="]($a)?$truthy(self.emit_file_line_as_literals)?self.$n("int",[node.$loc().$expression().$line()],node.$loc().$dup()):node:"__ENCODING__"["$==="]($a)?$truthy(self.$class().$emit_encoding()["$!"]())?self.$n("const",[self.$n("const",[nil,"Encoding"],nil),"UTF_8"],node.$loc().$dup()):node:"ident"["$==="]($a)?($a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],$truthy($send(["?","!"],"any?",[],(($$52=function(c){null==$$52.$$s||$$52.$$s;return null==c&&(c=nil),name.$to_s()["$end_with?"](c)}).$$s=self,$$52.$$arity=1,$$52)))&&self.$diagnostic("error","invalid_id_to_get",$hash2(["identifier"],{identifier:name.$to_s()}),node.$loc().$expression()),$truthy($truthy($ret_or_4=$rb_ge(self.parser.$version(),27))?self.parser.$try_declare_numparam(node):$ret_or_4)?node.$updated("lvar"):$truthy(self.parser.$static_env()["$declared?"](name))?(name.$to_s()["$=="](self.$parser().$current_arg_stack().$top())&&self.$diagnostic("error","circular_argument_reference",$hash2(["var_name"],{var_name:name.$to_s()}),node.$loc().$expression()),node.$updated("lvar")):self.$n("send",[nil,name],self.$var_send_map(node))):node},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$const",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return this.$n("const",[nil,this.$value(name_t).$to_sym()],this.$constant_map(nil,nil,name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$const_global",$Default_rewrite_hash_args_to_kwargs$206=function(t_colon3,name_t){var cbase=this.$n0("cbase",this.$token_map(t_colon3));return this.$n("const",[cbase,this.$value(name_t).$to_sym()],this.$constant_map(cbase,t_colon3,name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$const_fetch",$Default_rewrite_hash_args_to_kwargs$206=function(scope,t_colon2,name_t){return this.$n("const",[scope,this.$value(name_t).$to_sym()],this.$constant_map(scope,t_colon2,name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$__ENCODING__",$Default_rewrite_hash_args_to_kwargs$206=function(__ENCODING__t){return this.$n0("__ENCODING__",this.$token_map(__ENCODING__t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$assignable",$Default_rewrite_hash_args_to_kwargs$206=function(node){var $a,self=this,$case=nil,name=nil,var_name=nil,name_loc=nil;return $case=node.$type(),"cvar"["$==="]($case)?node.$updated("cvasgn"):"ivar"["$==="]($case)?node.$updated("ivasgn"):"gvar"["$==="]($case)?node.$updated("gvasgn"):"const"["$==="]($case)?($truthy(self.parser.$context().$in_def())&&self.$diagnostic("error","dynamic_const",nil,node.$loc().$expression()),node.$updated("casgn")):"ident"["$==="]($case)?($a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],var_name=node.$children()["$[]"](0).$to_s(),name_loc=node.$loc().$expression(),self.$check_assignment_to_numparam(var_name,name_loc),self.$check_reserved_for_numparam(var_name,name_loc),self.parser.$static_env().$declare(name),node.$updated("lvasgn")):"match_var"["$==="]($case)?($a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],var_name=node.$children()["$[]"](0).$to_s(),name_loc=node.$loc().$expression(),self.$check_assignment_to_numparam(var_name,name_loc),self.$check_reserved_for_numparam(var_name,name_loc),node):"nil"["$==="]($case)||"self"["$==="]($case)||"true"["$==="]($case)||"false"["$==="]($case)||"__FILE__"["$==="]($case)||"__LINE__"["$==="]($case)||"__ENCODING__"["$==="]($case)?self.$diagnostic("error","invalid_assignment",nil,node.$loc().$expression()):"back_ref"["$==="]($case)||"nth_ref"["$==="]($case)?self.$diagnostic("error","backref_assignment",nil,node.$loc().$expression()):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$const_op_assignable",$Default_rewrite_hash_args_to_kwargs$206=function(node){return node.$updated("casgn")},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$assign",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,eql_t,rhs){return lhs["$<<"](rhs).$updated(nil,nil,$hash2(["location"],{location:lhs.$loc().$with_operator(this.$loc(eql_t)).$with_expression(this.$join_exprs(lhs,rhs))}))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$op_assign",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,op_t,rhs){var self=this,$case=nil,operator=nil,source_map=nil;return $case=lhs.$type(),"gvasgn"["$==="]($case)||"ivasgn"["$==="]($case)||"lvasgn"["$==="]($case)||"cvasgn"["$==="]($case)||"casgn"["$==="]($case)||"send"["$==="]($case)||"csend"["$==="]($case)||"index"["$==="]($case)?(operator=self.$value(op_t)["$[]"]($range(0,-1,!1)).$to_sym(),source_map=lhs.$loc().$with_operator(self.$loc(op_t)).$with_expression(self.$join_exprs(lhs,rhs)),lhs.$type()["$=="]("index")&&(lhs=lhs.$updated("indexasgn")),"&&"["$==="]($case=operator)?self.$n("and_asgn",[lhs,rhs],source_map):"||"["$==="]($case)?self.$n("or_asgn",[lhs,rhs],source_map):self.$n("op_asgn",[lhs,operator,rhs],source_map)):"back_ref"["$==="]($case)||"nth_ref"["$==="]($case)?self.$diagnostic("error","backref_assignment",nil,lhs.$loc().$expression()):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$multi_lhs",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,items,end_t){return this.$n("mlhs",[].concat(Opal.to_a(items)),this.$collection_map(begin_t,items,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$multi_assign",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,eql_t,rhs){return this.$n("masgn",[lhs,rhs],this.$binary_op_map(lhs,eql_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$def_class",$Default_rewrite_hash_args_to_kwargs$206=function(class_t,name,lt_t,superclass,body,end_t){return this.$n("class",[name,superclass,body],this.$module_definition_map(class_t,name,lt_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$def_sclass",$Default_rewrite_hash_args_to_kwargs$206=function(class_t,lshft_t,expr,body,end_t){return this.$n("sclass",[expr,body],this.$module_definition_map(class_t,nil,lshft_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$def_module",$Default_rewrite_hash_args_to_kwargs$206=function(module_t,name,body,end_t){return this.$n("module",[name,body],this.$module_definition_map(module_t,name,nil,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$def_method",$Default_rewrite_hash_args_to_kwargs$206=function(def_t,name_t,args,body,end_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("def",[this.$value(name_t).$to_sym(),args,body],this.$definition_map(def_t,nil,name_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$def_endless_method",$Default_rewrite_hash_args_to_kwargs$206=function(def_t,name_t,args,assignment_t,body){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("def",[this.$value(name_t).$to_sym(),args,body],this.$endless_definition_map(def_t,nil,name_t,assignment_t,body))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$def_singleton",$Default_rewrite_hash_args_to_kwargs$206=function(def_t,definee,dot_t,name_t,args,body,end_t){return this.$validate_definee(definee),this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("defs",[definee,this.$value(name_t).$to_sym(),args,body],this.$definition_map(def_t,dot_t,name_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$def_endless_singleton",$Default_rewrite_hash_args_to_kwargs$206=function(def_t,definee,dot_t,name_t,args,assignment_t,body){return this.$validate_definee(definee),this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("defs",[definee,this.$value(name_t).$to_sym(),args,body],this.$endless_definition_map(def_t,dot_t,name_t,assignment_t,body))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$undef_method",$Default_rewrite_hash_args_to_kwargs$206=function(undef_t,names){return this.$n("undef",[].concat(Opal.to_a(names)),this.$keyword_map(undef_t,nil,names,nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$alias",$Default_rewrite_hash_args_to_kwargs$206=function(alias_t,to,from){return this.$n("alias",[to,from],this.$keyword_map(alias_t,nil,[to,from],nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$args",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,args,end_t,check_args){var map,self=this,$ret_or_5=nil,$ret_or_6=nil;return null==check_args&&(check_args=!0),$truthy(check_args)&&(args=self.$check_duplicate_args(args)),self.$validate_no_forward_arg_after_restarg(args),map=self.$collection_map(begin_t,args,end_t),$truthy($truthy($ret_or_5=$truthy($ret_or_6=self.$class().$emit_forward_arg()["$!"]())?args.$length()["$=="](1):$ret_or_6)?args["$[]"](0).$type()["$=="]("forward_arg"):$ret_or_5)?self.$n("forward_args",[],map):self.$n("args",args,map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-4),Opal.def($Default_kwargs$ques$207,"$numargs",$Default_rewrite_hash_args_to_kwargs$206=function(max_numparam){return this.$n("numargs",[max_numparam],nil)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$forward_only_args",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,dots_t,end_t){var arg;return $truthy(this.$class().$emit_forward_arg())?(arg=this.$forward_arg(dots_t),this.$n("args",[arg],this.$collection_map(begin_t,[arg],end_t))):this.$n("forward_args",[],this.$collection_map(begin_t,this.$token_map(dots_t),end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$forward_arg",$Default_rewrite_hash_args_to_kwargs$206=function(dots_t){return this.$n("forward_arg",[],this.$token_map(dots_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$arg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("arg",[this.$value(name_t).$to_sym()],this.$variable_map(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$optarg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t,eql_t,value){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("optarg",[this.$value(name_t).$to_sym(),value],this.$variable_map(name_t).$with_operator(this.$loc(eql_t)).$with_expression(this.$loc(name_t).$join(value.$loc().$expression())))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$restarg",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,name_t){return null==name_t&&(name_t=nil),$truthy(name_t)?(this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("restarg",[this.$value(name_t).$to_sym()],this.$arg_prefix_map(star_t,name_t))):this.$n0("restarg",this.$arg_prefix_map(star_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$kwarg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwarg",[this.$value(name_t).$to_sym()],this.$kwarg_map(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$kwoptarg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t,value){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwoptarg",[this.$value(name_t).$to_sym(),value],this.$kwarg_map(name_t,value))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$kwrestarg",$Default_rewrite_hash_args_to_kwargs$206=function(dstar_t,name_t){return null==name_t&&(name_t=nil),$truthy(name_t)?(this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwrestarg",[this.$value(name_t).$to_sym()],this.$arg_prefix_map(dstar_t,name_t))):this.$n0("kwrestarg",this.$arg_prefix_map(dstar_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$kwnilarg",$Default_rewrite_hash_args_to_kwargs$206=function(dstar_t,nil_t){return this.$n0("kwnilarg",this.$arg_prefix_map(dstar_t,nil_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$shadowarg",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("shadowarg",[this.$value(name_t).$to_sym()],this.$variable_map(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$blockarg",$Default_rewrite_hash_args_to_kwargs$206=function(amper_t,name_t){var arg_name,self=this;return $truthy(name_t["$nil?"]()["$!"]())&&self.$check_reserved_for_numparam(self.$value(name_t),self.$loc(name_t)),arg_name=$truthy(name_t)?self.$value(name_t).$to_sym():nil,self.$n("blockarg",[arg_name],self.$arg_prefix_map(amper_t,name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$procarg0",$Default_rewrite_hash_args_to_kwargs$206=function(arg){var self=this,$ret_or_7=nil;return $truthy(self.$class().$emit_procarg0())?$truthy($truthy($ret_or_7=arg.$type()["$=="]("arg"))?self.$class().$emit_arg_inside_procarg0():$ret_or_7)?self.$n("procarg0",[arg],$$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(nil,nil,arg.$location().$expression())):arg.$updated("procarg0"):arg},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$arg_expr",$Default_rewrite_hash_args_to_kwargs$206=function(expr){return expr.$type()["$=="]("lvasgn")?expr.$updated("arg"):this.$n("arg_expr",[expr],expr.$loc().$dup())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$restarg_expr",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,expr){return null==expr&&(expr=nil),$truthy(expr["$nil?"]())?this.$n0("restarg",this.$token_map(star_t)):expr.$type()["$=="]("lvasgn")?expr.$updated("restarg"):this.$n("restarg_expr",[expr],expr.$loc().$dup())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$blockarg_expr",$Default_rewrite_hash_args_to_kwargs$206=function(amper_t,expr){return expr.$type()["$=="]("lvasgn")?expr.$updated("blockarg"):this.$n("blockarg_expr",[expr],expr.$loc().$dup())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$objc_kwarg",$Default_rewrite_hash_args_to_kwargs$206=function(kwname_t,assoc_t,name_t){var kwname_l=nil,operator_l=nil,kwname_l=this.$loc(kwname_t),operator_l=$truthy(assoc_t["$nil?"]())?(kwname_l=kwname_l.$resize($rb_minus(kwname_l.$size(),1))).$end().$resize(1):this.$loc(assoc_t);return this.$n("objc_kwarg",[this.$value(kwname_t).$to_sym(),this.$value(name_t).$to_sym()],$$$($$$($$($nesting,"Source"),"Map"),"ObjcKwarg").$new(kwname_l,operator_l,this.$loc(name_t),kwname_l.$join(this.$loc(name_t))))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$objc_restarg",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,name){return null==name&&(name=nil),$truthy(name["$nil?"]())?this.$n0("restarg",this.$arg_prefix_map(star_t)):name.$type()["$=="]("arg")?name.$updated("restarg",nil,$hash2(["location"],{location:name.$loc().$with_operator(this.$loc(star_t))})):this.$n("objc_restarg",[name],this.$unary_op_map(star_t,name))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$call_type_for_dot",$Default_rewrite_hash_args_to_kwargs$206=function(dot_t){var self=this,$ret_or_8=nil;return $truthy($truthy($ret_or_8=dot_t["$nil?"]()["$!"]())?self.$value(dot_t)["$=="]("anddot"):$ret_or_8)?"csend":"send"},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$forwarded_args",$Default_rewrite_hash_args_to_kwargs$206=function(dots_t){return this.$n("forwarded_args",[],this.$token_map(dots_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$call_method",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,dot_t,selector_t,lparen_t,args,rparen_t){var type;return null==lparen_t&&(lparen_t=nil),null==args&&(args=[]),null==rparen_t&&(rparen_t=nil),type=this.$call_type_for_dot(dot_t),$truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(args),$truthy(selector_t["$nil?"]())?this.$n(type,[receiver,"call"].concat(Opal.to_a(args)),this.$send_map(receiver,dot_t,nil,lparen_t,args,rparen_t)):this.$n(type,[receiver,this.$value(selector_t).$to_sym()].concat(Opal.to_a(args)),this.$send_map(receiver,dot_t,selector_t,lparen_t,args,rparen_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-4),Opal.def($Default_kwargs$ques$207,"$call_lambda",$Default_rewrite_hash_args_to_kwargs$206=function(lambda_t){return $truthy(this.$class().$emit_lambda())?this.$n0("lambda",this.$expr_map(this.$loc(lambda_t))):this.$n("send",[nil,"lambda"],this.$send_map(nil,nil,lambda_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$block",$Default_rewrite_hash_args_to_kwargs$206=function(method_call,begin_t,args,body,end_t){var block,call_args=nil,last_arg=nil,$ret_or_9=nil,$ret_or_10=nil,block_type=nil,actual_send=nil,$a=[].concat(Opal.to_a(method_call)),call_args=(null==$a[0]||$a[0],null==$a[1]||$a[1],$slice.call($a,2));return method_call.$type()["$=="]("yield")&&this.$diagnostic("error","block_given_to_yield",nil,method_call.$loc().$keyword(),[this.$loc(begin_t)]),last_arg=call_args.$last(),$truthy($truthy($ret_or_9=last_arg)?$truthy($ret_or_10=last_arg.$type()["$=="]("block_pass"))?$ret_or_10:last_arg.$type()["$=="]("forwarded_args"):$ret_or_9)&&this.$diagnostic("error","block_and_blockarg",nil,last_arg.$loc().$expression(),[this.$loc(begin_t)]),args.$type()["$=="]("numargs")?(block_type="numblock",args=args.$children()["$[]"](0)):block_type="block",$truthy(["send","csend","index","super","zsuper","lambda"]["$include?"](method_call.$type()))?this.$n(block_type,[method_call,args,body],this.$block_map(method_call.$loc().$expression(),begin_t,end_t)):(actual_send=null==($a=[].concat(Opal.to_a(method_call)))[0]?nil:$a[0],block=this.$n(block_type,[actual_send,args,body],this.$block_map(actual_send.$loc().$expression(),begin_t,end_t)),this.$n(method_call.$type(),[block],method_call.$loc().$with_expression(this.$join_exprs(method_call,block))))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$block_pass",$Default_rewrite_hash_args_to_kwargs$206=function(amper_t,arg){return this.$n("block_pass",[arg],this.$unary_op_map(amper_t,arg))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$objc_varargs",$Default_rewrite_hash_args_to_kwargs$206=function(pair,rest_of_varargs){var first_vararg=nil,vararg_array=nil,$a=[].concat(Opal.to_a(pair)),value=null==$a[0]?nil:$a[0],first_vararg=null==$a[1]?nil:$a[1],vararg_array=this.$array(nil,[first_vararg].concat(Opal.to_a(rest_of_varargs)),nil).$updated("objc_varargs");return pair.$updated(nil,[value,vararg_array],$hash2(["location"],{location:pair.$loc().$with_expression(pair.$loc().$expression().$join(vararg_array.$loc().$expression()))}))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$attr_asgn",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,dot_t,selector_t){var method_name=$rb_plus(this.$value(selector_t),"=").$to_sym(),type=this.$call_type_for_dot(dot_t);return this.$n(type,[receiver,method_name],this.$send_map(receiver,dot_t,selector_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$index",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,lbrack_t,indexes,rbrack_t){return $truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(indexes),$truthy(this.$class().$emit_index())?this.$n("index",[receiver].concat(Opal.to_a(indexes)),this.$index_map(receiver,lbrack_t,rbrack_t)):this.$n("send",[receiver,"[]"].concat(Opal.to_a(indexes)),this.$send_index_map(receiver,lbrack_t,rbrack_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$index_asgn",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,lbrack_t,indexes,rbrack_t){return $truthy(this.$class().$emit_index())?this.$n("indexasgn",[receiver].concat(Opal.to_a(indexes)),this.$index_map(receiver,lbrack_t,rbrack_t)):this.$n("send",[receiver,"[]="].concat(Opal.to_a(indexes)),this.$send_index_map(receiver,lbrack_t,rbrack_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$binary_op",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,operator_t,arg){var source_map=nil,operator=nil,method_call=nil,source_map=this.$send_binary_op_map(receiver,operator_t,arg);return this.parser.$version()["$=="](18)&&((operator=this.$value(operator_t))["$=="]("!=")?method_call=this.$n("send",[receiver,"==",arg],source_map):operator["$=="]("!~")&&(method_call=this.$n("send",[receiver,"=~",arg],source_map)),$truthy(["!=","!~"]["$include?"](operator)))?this.$n("not",[method_call],this.$expr_map(source_map.$expression())):this.$n("send",[receiver,this.$value(operator_t).$to_sym(),arg],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_op",$Default_rewrite_hash_args_to_kwargs$206=function(receiver,match_t,arg){var $$103,regexp=nil,source_map=this.$send_binary_op_map(receiver,match_t,arg);return $truthy(regexp=this.$static_regexp_node(receiver))?($send(regexp.$names(),"each",[],(($$103=function(name){var self=null==$$103.$$s?this:$$103.$$s;return null==self.parser&&(self.parser=nil),null==name&&(name=nil),self.parser.$static_env().$declare(name)}).$$s=this,$$103.$$arity=1,$$103)),this.$n("match_with_lvasgn",[receiver,arg],source_map)):this.$n("send",[receiver,"=~",arg],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$unary_op",$Default_rewrite_hash_args_to_kwargs$206=function(op_t,receiver){var method=nil,$case=this.$value(op_t),method="+"["$==="]($case)||"-"["$==="]($case)?$rb_plus(this.$value(op_t),"@"):this.$value(op_t);return this.$n("send",[receiver,method.$to_sym()],this.$send_unary_op_map(op_t,receiver))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$not_op",$Default_rewrite_hash_args_to_kwargs$206=function(not_t,begin_t,receiver,end_t){var nil_node;return null==begin_t&&(begin_t=nil),null==receiver&&(receiver=nil),null==end_t&&(end_t=nil),this.parser.$version()["$=="](18)?this.$n("not",[this.$check_condition(receiver)],this.$unary_op_map(not_t,receiver)):$truthy(receiver["$nil?"]())?(nil_node=this.$n0("begin",this.$collection_map(begin_t,nil,end_t)),this.$n("send",[nil_node,"!"],this.$send_unary_op_map(not_t,nil_node))):this.$n("send",[this.$check_condition(receiver),"!"],this.$send_map(nil,nil,not_t,begin_t,[receiver],end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$logical_op",$Default_rewrite_hash_args_to_kwargs$206=function(type,lhs,op_t,rhs){return this.$n(type,[lhs,rhs],this.$binary_op_map(lhs,op_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$condition",$Default_rewrite_hash_args_to_kwargs$206=function(cond_t,cond,then_t,if_true,else_t,if_false,end_t){return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$condition_map(cond_t,cond,then_t,if_true,else_t,if_false,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$condition_mod",$Default_rewrite_hash_args_to_kwargs$206=function(if_true,if_false,cond_t,cond){var $ret_or_11=nil;return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$keyword_mod_map($truthy($ret_or_11=if_true)?$ret_or_11:if_false,cond_t,cond))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$ternary",$Default_rewrite_hash_args_to_kwargs$206=function(cond,question_t,if_true,colon_t,if_false){return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$ternary_map(cond,question_t,if_true,colon_t,if_false))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$when",$Default_rewrite_hash_args_to_kwargs$206=function(when_t,patterns,then_t,body){var children=patterns["$<<"](body);return this.$n("when",children,this.$keyword_map(when_t,then_t,children,nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$case",$Default_rewrite_hash_args_to_kwargs$206=function(case_t,expr,when_bodies,else_t,else_body,end_t){return this.$n("case",[expr].concat(Opal.to_a(when_bodies["$<<"](else_body))),this.$condition_map(case_t,expr,nil,nil,else_t,else_body,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$loop",$Default_rewrite_hash_args_to_kwargs$206=function(type,keyword_t,cond,do_t,body,end_t){return this.$n(type,[this.$check_condition(cond),body],this.$keyword_map(keyword_t,do_t,nil,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$loop_mod",$Default_rewrite_hash_args_to_kwargs$206=function(type,body,keyword_t,cond){return body.$type()["$=="]("kwbegin")&&(type+="_post"),this.$n(type,[this.$check_condition(cond),body],this.$keyword_mod_map(body,keyword_t,cond))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$for",$Default_rewrite_hash_args_to_kwargs$206=function(for_t,iterator,in_t,iteratee,do_t,body,end_t){return this.$n("for",[iterator,iteratee,body],this.$for_map(for_t,in_t,do_t,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$keyword_cmd",$Default_rewrite_hash_args_to_kwargs$206=function(type,keyword_t,lparen_t,args,rparen_t){var self=this,$ret_or_12=nil,last_arg=nil,$ret_or_13=nil;return null==lparen_t&&(lparen_t=nil),null==args&&(args=[]),null==rparen_t&&(rparen_t=nil),$truthy($truthy($ret_or_12=type["$=="]("yield"))?$rb_gt(args.$count(),0):$ret_or_12)&&(last_arg=args.$last()).$type()["$=="]("block_pass")&&self.$diagnostic("error","block_given_to_yield",nil,self.$loc(keyword_t),[last_arg.$loc().$expression()]),$truthy($truthy($ret_or_13=["yield","super"]["$include?"](type))?self.$class().$emit_kwargs():$ret_or_13)&&self.$rewrite_hash_args_to_kwargs(args),self.$n(type,args,self.$keyword_map(keyword_t,lparen_t,args,rparen_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-3),Opal.def($Default_kwargs$ques$207,"$preexe",$Default_rewrite_hash_args_to_kwargs$206=function(preexe_t,lbrace_t,compstmt,rbrace_t){return this.$n("preexe",[compstmt],this.$keyword_map(preexe_t,lbrace_t,[],rbrace_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$postexe",$Default_rewrite_hash_args_to_kwargs$206=function(postexe_t,lbrace_t,compstmt,rbrace_t){return this.$n("postexe",[compstmt],this.$keyword_map(postexe_t,lbrace_t,[],rbrace_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$rescue_body",$Default_rewrite_hash_args_to_kwargs$206=function(rescue_t,exc_list,assoc_t,exc_var,then_t,compound_stmt){return this.$n("resbody",[exc_list,exc_var,compound_stmt],this.$rescue_body_map(rescue_t,exc_list,assoc_t,exc_var,then_t,compound_stmt))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$begin_body",$Default_rewrite_hash_args_to_kwargs$206=function(compound_stmt,rescue_bodies,else_t,else_,ensure_t,ensure_){var statements=nil;return null==rescue_bodies&&(rescue_bodies=[]),null==else_t&&(else_t=nil),null==else_&&(else_=nil),null==ensure_t&&(ensure_t=nil),null==ensure_&&(ensure_=nil),$truthy(rescue_bodies["$any?"]())?compound_stmt=$truthy(else_t)?this.$n("rescue",[compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies,[else_]))),this.$eh_keyword_map(compound_stmt,nil,rescue_bodies,else_t,else_)):this.$n("rescue",[compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies,[nil]))),this.$eh_keyword_map(compound_stmt,nil,rescue_bodies,nil,nil)):$truthy(else_t)&&(statements=[],$truthy(compound_stmt["$nil?"]()["$!"]())&&(compound_stmt.$type()["$=="]("begin")?statements=$rb_plus(statements,compound_stmt.$children()):statements.$push(compound_stmt)),statements.$push(this.$n("begin",[else_],this.$collection_map(else_t,[else_],nil))),compound_stmt=this.$n("begin",statements,this.$collection_map(nil,statements,nil))),$truthy(ensure_t)&&(compound_stmt=this.$n("ensure",[compound_stmt,ensure_],this.$eh_keyword_map(compound_stmt,ensure_t,[ensure_],nil,nil))),compound_stmt},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$compstmt",$Default_rewrite_hash_args_to_kwargs$206=function(statements){var self=this;return $truthy(statements["$none?"]())?nil:$truthy(statements["$one?"]())?statements.$first():self.$n("begin",statements,self.$collection_map(nil,statements,nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$begin",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,body,end_t){var $ret_or_14=nil,$ret_or_15=nil,$ret_or_16=nil;return $truthy(body["$nil?"]())?this.$n0("begin",this.$collection_map(begin_t,nil,end_t)):$truthy($truthy($ret_or_14=body.$type()["$=="]("mlhs"))?$ret_or_14:$truthy($ret_or_15=$truthy($ret_or_16=body.$type()["$=="]("begin"))?body.$loc().$begin()["$nil?"]():$ret_or_16)?body.$loc().$end()["$nil?"]():$ret_or_15)?this.$n(body.$type(),body.$children(),this.$collection_map(begin_t,body.$children(),end_t)):this.$n("begin",[body],this.$collection_map(begin_t,[body],end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$begin_keyword",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,body,end_t){var $ret_or_17=nil,$ret_or_18=nil;return $truthy(body["$nil?"]())?this.$n0("kwbegin",this.$collection_map(begin_t,nil,end_t)):$truthy($truthy($ret_or_17=$truthy($ret_or_18=body.$type()["$=="]("begin"))?body.$loc().$begin()["$nil?"]():$ret_or_18)?body.$loc().$end()["$nil?"]():$ret_or_17)?this.$n("kwbegin",body.$children(),this.$collection_map(begin_t,body.$children(),end_t)):this.$n("kwbegin",[body],this.$collection_map(begin_t,[body],end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$case_match",$Default_rewrite_hash_args_to_kwargs$206=function(case_t,expr,in_bodies,else_t,else_body,end_t){var $ret_or_19=nil;return $truthy($truthy($ret_or_19=else_t)?else_body["$!"]():$ret_or_19)&&(else_body=this.$n("empty_else",nil,this.$token_map(else_t))),this.$n("case_match",[expr].concat(Opal.to_a(in_bodies["$<<"](else_body))),this.$condition_map(case_t,expr,nil,nil,else_t,else_body,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$in_match",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,in_t,rhs){return this.$n("in_match",[lhs,rhs],this.$binary_op_map(lhs,in_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,match_t,rhs){return this.$n("match_pattern",[lhs,rhs],this.$binary_op_map(lhs,match_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_pattern_p",$Default_rewrite_hash_args_to_kwargs$206=function(lhs,match_t,rhs){return this.$n("match_pattern_p",[lhs,rhs],this.$binary_op_map(lhs,match_t,rhs))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$in_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(in_t,pattern,guard,then_t,body){var children=nil,children=[pattern,guard,body];return this.$n("in_pattern",children,this.$keyword_map(in_t,then_t,children.$compact(),nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$if_guard",$Default_rewrite_hash_args_to_kwargs$206=function(if_t,if_body){return this.$n("if_guard",[if_body],this.$guard_map(if_t,if_body))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$unless_guard",$Default_rewrite_hash_args_to_kwargs$206=function(unless_t,unless_body){return this.$n("unless_guard",[unless_body],this.$guard_map(unless_t,unless_body))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$match_var",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){var name=this.$value(name_t).$to_sym(),name_l=this.$loc(name_t);return this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),this.$n("match_var",[name],this.$variable_map(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$match_hash_var",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){var expr_l=nil,name=this.$value(name_t).$to_sym(),name_l=(expr_l=this.$loc(name_t)).$adjust($hash2(["end_pos"],{end_pos:-1}));return this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),this.$n("match_var",[name],$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(name_l,expr_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$match_hash_var_from_str",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,$a,end_t){var self=this,string=nil,$case=nil,name=nil,name_l=nil,begin_l=nil,end_l=nil,expr_l=nil;return $truthy($rb_gt($a.$length(),1))&&self.$diagnostic("error","pm_interp_in_var_name",nil,self.$loc(begin_t).$join(self.$loc(end_t))),string=$a["$[]"](0),$case=string.$type(),"str"["$==="]($case)?($a=[].concat(Opal.to_a(string)),name=null==$a[0]?nil:$a[0],name_l=string.$loc().$expression(),self.$check_lvar_name(name,name_l),self.$check_duplicate_pattern_variable(name,name_l),self.parser.$static_env().$declare(name),$truthy(begin_l=string.$loc().$begin())&&(name_l=name_l.$adjust($hash2(["begin_pos"],{begin_pos:begin_l.$length()}))),$truthy(end_l=string.$loc().$end())&&(name_l=name_l.$adjust($hash2(["end_pos"],{end_pos:end_l.$length()["$-@"]()}))),expr_l=self.$loc(begin_t).$join(string.$loc().$expression()).$join(self.$loc(end_t)),self.$n("match_var",[name.$to_sym()],$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(name_l,expr_l))):"begin"["$==="]($case)?self.$match_hash_var_from_str(begin_t,string.$children(),end_t):self.$diagnostic("error","pm_interp_in_var_name",nil,self.$loc(begin_t).$join(self.$loc(end_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_rest",$Default_rewrite_hash_args_to_kwargs$206=function(star_t,name_t){var name;return null==name_t&&(name_t=nil),$truthy(name_t["$nil?"]())?this.$n0("match_rest",this.$unary_op_map(star_t)):(name=this.$match_var(name_t),this.$n("match_rest",[name],this.$unary_op_map(star_t,name)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$hash_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(lbrace_t,kwargs,rbrace_t){var args=this.$check_duplicate_args(kwargs);return this.$n("hash_pattern",args,this.$collection_map(lbrace_t,args,rbrace_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$array_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(lbrack_t,elements,rbrack_t){var $$136,node_elements,node_type,trailing_comma=nil;return $truthy(elements["$nil?"]())?this.$n("array_pattern",nil,this.$collection_map(lbrack_t,[],rbrack_t)):(trailing_comma=!1,node_elements=$send(elements,"map",[],(($$136=function(element){null==$$136.$$s||$$136.$$s;return null==element&&(element=nil),element.$type()["$=="]("match_with_trailing_comma")?(trailing_comma=!0,element.$children().$first()):(trailing_comma=!1,element)}).$$s=this,$$136.$$arity=1,$$136)),node_type=$truthy(trailing_comma)?"array_pattern_with_tail":"array_pattern",this.$n(node_type,node_elements,this.$collection_map(lbrack_t,elements,rbrack_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$find_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(lbrack_t,elements,rbrack_t){return this.$n("find_pattern",elements,this.$collection_map(lbrack_t,elements,rbrack_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_with_trailing_comma",$Default_rewrite_hash_args_to_kwargs$206=function(match,comma_t){return this.$n("match_with_trailing_comma",[match],this.$expr_map(match.$loc().$expression().$join(this.$loc(comma_t))))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$const_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(const$,ldelim_t,pattern,rdelim_t){return this.$n("const_pattern",[const$,pattern],$$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(this.$loc(ldelim_t),this.$loc(rdelim_t),const$.$loc().$expression().$join(this.$loc(rdelim_t))))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$pin",$Default_rewrite_hash_args_to_kwargs$206=function(pin_t,var$){return this.$n("pin",[var$],this.$send_unary_op_map(pin_t,var$))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$match_alt",$Default_rewrite_hash_args_to_kwargs$206=function(left,pipe_t,right){var source_map=this.$binary_op_map(left,pipe_t,right);return this.$n("match_alt",[left,right],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_as",$Default_rewrite_hash_args_to_kwargs$206=function(value,assoc_t,as){var source_map=this.$binary_op_map(value,assoc_t,as);return this.$n("match_as",[value,as],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_nil_pattern",$Default_rewrite_hash_args_to_kwargs$206=function(dstar_t,nil_t){return this.$n0("match_nil_pattern",this.$arg_prefix_map(dstar_t,nil_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$match_pair",$Default_rewrite_hash_args_to_kwargs$206=function(label_type,$a,value){var begin_t,parts,end_t,label_loc,var_name;return label_type["$=="]("label")?(this.$check_duplicate_pattern_key($a["$[]"](0),$a["$[]"](1)),this.$pair_keyword($a,value)):($a=$a,begin_t=null==($a=Opal.to_ary($a))[0]?nil:$a[0],parts=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],label_loc=this.$loc(begin_t).$join(this.$loc(end_t)),$truthy(var_name=this.$static_string(parts))?this.$check_duplicate_pattern_key(var_name,label_loc):this.$diagnostic("error","pm_interp_in_var_name",nil,label_loc),this.$pair_quoted(begin_t,parts,end_t,value))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$match_label",$Default_rewrite_hash_args_to_kwargs$206=function(label_type,$a){var begin_t,strings,end_t;return label_type["$=="]("label")?this.$match_hash_var($a):($a=$a,begin_t=null==($a=Opal.to_ary($a))[0]?nil:$a[0],strings=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],this.$match_hash_var_from_str(begin_t,strings,end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),$Default_kwargs$ques$207.$private(),Opal.def($Default_kwargs$ques$207,"$check_condition",$Default_rewrite_hash_args_to_kwargs$206=function(cond){var $a,lhs,rhs,self=this,$case=nil,type=nil,$ret_or_20=nil;return $case=cond.$type(),"masgn"["$==="]($case)?$truthy(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}(self.parser.$version(),23))?self.$diagnostic("error","masgn_as_condition",nil,cond.$loc().$expression()):cond:"begin"["$==="]($case)?cond.$children().$count()["$=="](1)?cond.$updated(nil,[self.$check_condition(cond.$children().$last())]):cond:"and"["$==="]($case)||"or"["$==="]($case)||"irange"["$==="]($case)||"erange"["$==="]($case)?($a=[].concat(Opal.to_a(cond)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],$case=cond.$type(),type="irange"["$==="]($case)?"iflipflop":"erange"["$==="]($case)?"eflipflop":nil,$truthy($truthy($ret_or_20=["and","or"]["$include?"](cond.$type()))?self.parser.$version()["$=="](18):$ret_or_20)?cond:cond.$updated(type,[self.$check_condition(lhs),self.$check_condition(rhs)])):"regexp"["$==="]($case)?self.$n("match_current_line",[cond],self.$expr_map(cond.$loc().$expression())):cond},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$check_duplicate_args",$Default_rewrite_hash_args_to_kwargs$206=function(args,map){var $$148;return null==map&&(map=$hash2([],{})),$send(args,"each",[],(($$148=function(this_arg){var self=null==$$148.$$s?this:$$148.$$s,$case=nil;return null==this_arg&&(this_arg=nil),$case=this_arg.$type(),"arg"["$==="]($case)||"optarg"["$==="]($case)||"restarg"["$==="]($case)||"blockarg"["$==="]($case)||"kwarg"["$==="]($case)||"kwoptarg"["$==="]($case)||"kwrestarg"["$==="]($case)||"shadowarg"["$==="]($case)?self.$check_duplicate_arg(this_arg,map):"procarg0"["$==="]($case)?$truthy(this_arg.$children()["$[]"](0)["$is_a?"]($$($nesting,"Symbol")))?self.$check_duplicate_arg(this_arg,map):self.$check_duplicate_args(this_arg.$children(),map):"mlhs"["$==="]($case)?self.$check_duplicate_args(this_arg.$children(),map):nil}).$$s=this,$$148.$$arity=1,$$148))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$check_duplicate_arg",$Default_rewrite_hash_args_to_kwargs$206=function(this_arg,map){var $a,this_name,that_name,$writer,that_arg=nil;return null==map&&(map=$hash2([],{})),this_name=null==($a=[].concat(Opal.to_a(this_arg)))[0]?nil:$a[0],that_arg=map["$[]"](this_name),that_name=null==($a=[].concat(Opal.to_a(that_arg)))[0]?nil:$a[0],$truthy(that_arg["$nil?"]())?($writer=[this_name,this_arg],$send(map,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy(this["$arg_name_collides?"](this_name,that_name))?this.$diagnostic("error","duplicate_argument",nil,this_arg.$loc().$name(),[that_arg.$loc().$name()]):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$validate_no_forward_arg_after_restarg",$Default_rewrite_hash_args_to_kwargs$206=function(args){var $$151,restarg=nil,forward_arg=nil,$ret_or_21=nil,restarg=nil,forward_arg=nil;return $send(args,"each",[],(($$151=function(arg){null==$$151.$$s||$$151.$$s;var $case=nil;return null==arg&&(arg=nil),$case=arg.$type(),"restarg"["$==="]($case)?restarg=arg:"forward_arg"["$==="]($case)?forward_arg=arg:nil}).$$s=this,$$151.$$arity=1,$$151)),$truthy($truthy($ret_or_21=forward_arg["$nil?"]()["$!"]())?restarg["$nil?"]()["$!"]():$ret_or_21)?this.$diagnostic("error","forward_arg_after_restarg",nil,forward_arg.$loc().$expression(),[restarg.$loc().$expression()]):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$check_assignment_to_numparam",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){var assigning_to_numparam,self=this,$ret_or_22=nil,$ret_or_23=nil;return $truthy($rb_lt(self.parser.$version(),27))?nil:(assigning_to_numparam=$truthy($ret_or_22=$truthy($ret_or_23=self.parser.$context()["$in_dynamic_block?"]())?name["$=~"](/^_([1-9])$/):$ret_or_23)?self.parser.$max_numparam_stack()["$has_numparams?"]():$ret_or_22,$truthy(assigning_to_numparam)?self.$diagnostic("error","cant_assign_to_numparam",$hash2(["name"],{name:name}),loc):nil)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$check_reserved_for_numparam",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){return!$truthy($rb_lt(this.parser.$version(),30))&&$truthy(name["$=~"](/^_([1-9])$/))?this.$diagnostic("error","reserved_for_numparam",$hash2(["name"],{name:name}),loc):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$arg_name_collides?",$Default_rewrite_hash_args_to_kwargs$206=function(this_name,that_name){var $case=nil,$ret_or_24=nil,$ret_or_25=nil,$ret_or_26=nil;return $case=this.parser.$version(),18["$==="]($case)?this_name["$=="](that_name):19["$==="]($case)?$truthy($ret_or_24=this_name["$!="]("_"))?this_name["$=="](that_name):$ret_or_24:$truthy($ret_or_25=$truthy($ret_or_26=this_name)?this_name["$[]"](0)["$!="]("_"):$ret_or_26)?this_name["$=="](that_name):$ret_or_25},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$check_lvar_name",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){return $truthy(name["$=~"](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?nil:this.$diagnostic("error","lvar_name",$hash2(["name"],{name:name}),loc)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$check_duplicate_pattern_variable",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){return $truthy(name.$to_s()["$start_with?"]("_"))?nil:($truthy(this.parser.$pattern_variables()["$declared?"](name))&&this.$diagnostic("error","duplicate_variable_name",$hash2(["name"],{name:name.$to_s()}),loc),this.parser.$pattern_variables().$declare(name))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$check_duplicate_pattern_key",$Default_rewrite_hash_args_to_kwargs$206=function(name,loc){return $truthy(this.parser.$pattern_hash_keys()["$declared?"](name))&&this.$diagnostic("error","duplicate_pattern_key",$hash2(["name"],{name:name.$to_s()}),loc),this.parser.$pattern_hash_keys().$declare(name)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$n",$Default_rewrite_hash_args_to_kwargs$206=function(type,children,source_map){return $$$($$($nesting,"AST"),"Node").$new(type,children,$hash2(["location"],{location:source_map}))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$n0",$Default_rewrite_hash_args_to_kwargs$206=function(type,source_map){return this.$n(type,[],source_map)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$join_exprs",$Default_rewrite_hash_args_to_kwargs$206=function(left_expr,right_expr){return left_expr.$loc().$expression().$join(right_expr.$loc().$expression())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$token_map",$Default_rewrite_hash_args_to_kwargs$206=function(token){return $$$($$($nesting,"Source"),"Map").$new(this.$loc(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$delimited_string_map",$Default_rewrite_hash_args_to_kwargs$206=function(string_t){var str_range=nil,begin_l=(str_range=this.$loc(string_t)).$with($hash2(["end_pos"],{end_pos:$rb_plus(str_range.$begin_pos(),1)})),end_l=str_range.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(str_range.$end_pos(),1)}));return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(begin_l,end_l,this.$loc(string_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$prefix_string_map",$Default_rewrite_hash_args_to_kwargs$206=function(symbol){var str_range=nil,begin_l=(str_range=this.$loc(symbol)).$with($hash2(["end_pos"],{end_pos:$rb_plus(str_range.$begin_pos(),1)}));return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(begin_l,nil,this.$loc(symbol))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$unquoted_map",$Default_rewrite_hash_args_to_kwargs$206=function(token){return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(nil,nil,this.$loc(token))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$pair_keyword_map",$Default_rewrite_hash_args_to_kwargs$206=function(key_t,value_e){var key_range=nil,key_l=(key_range=this.$loc(key_t)).$adjust($hash2(["end_pos"],{end_pos:-1})),colon_l=key_range.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(key_range.$end_pos(),1)}));return[$$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(nil,nil,key_l),$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(colon_l,key_range.$join(value_e.$loc().$expression()))]},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$pair_quoted_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,end_t,value_e){var end_l=nil,quote_l=(end_l=this.$loc(end_t)).$with($hash2(["begin_pos","end_pos"],{begin_pos:$rb_minus(end_l.$end_pos(),2),end_pos:$rb_minus(end_l.$end_pos(),1)})),colon_l=end_l.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(end_l.$end_pos(),1)}));return[[this.$value(end_t),quote_l],$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(colon_l,this.$loc(begin_t).$join(value_e.$loc().$expression()))]},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$expr_map",$Default_rewrite_hash_args_to_kwargs$206=function(loc){return $$$($$($nesting,"Source"),"Map").$new(loc)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$collection_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var $ret_or_27=nil,expr_l=nil;return $truthy($truthy($ret_or_27=begin_t["$nil?"]())?$ret_or_27:end_t["$nil?"]())?$truthy(parts["$any?"]())?expr_l=this.$join_exprs(parts.$first(),parts.$last()):$truthy(begin_t["$nil?"]()["$!"]())?expr_l=this.$loc(begin_t):$truthy(end_t["$nil?"]()["$!"]())&&(expr_l=this.$loc(end_t)):expr_l=this.$loc(begin_t).$join(this.$loc(end_t)),$$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$string_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,parts,end_t){var self=this,$ret_or_28=nil,expr_l=nil;return $truthy($truthy($ret_or_28=begin_t)?self.$value(begin_t)["$start_with?"]("<<"):$ret_or_28)?(expr_l=$truthy(parts["$any?"]())?self.$join_exprs(parts.$first(),parts.$last()):self.$loc(end_t).$begin(),$$$($$$($$($nesting,"Source"),"Map"),"Heredoc").$new(self.$loc(begin_t),expr_l,self.$loc(end_t))):self.$collection_map(begin_t,parts,end_t)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$regexp_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_t,end_t,options_e){return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),this.$loc(begin_t).$join(options_e.$loc().$expression()))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$constant_map",$Default_rewrite_hash_args_to_kwargs$206=function(scope,colon2_t,name_t){var expr_l=nil,expr_l=$truthy(scope["$nil?"]())?this.$loc(name_t):scope.$loc().$expression().$join(this.$loc(name_t));return $$$($$$($$($nesting,"Source"),"Map"),"Constant").$new(this.$loc(colon2_t),this.$loc(name_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$variable_map",$Default_rewrite_hash_args_to_kwargs$206=function(name_t){return $$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(this.$loc(name_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$binary_op_map",$Default_rewrite_hash_args_to_kwargs$206=function(left_e,op_t,right_e){return $$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(this.$loc(op_t),this.$join_exprs(left_e,right_e))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$unary_op_map",$Default_rewrite_hash_args_to_kwargs$206=function(op_t,arg_e){var expr_l=nil;return null==arg_e&&(arg_e=nil),expr_l=$truthy(arg_e["$nil?"]())?this.$loc(op_t):this.$loc(op_t).$join(arg_e.$loc().$expression()),$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(this.$loc(op_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$range_map",$Default_rewrite_hash_args_to_kwargs$206=function(start_e,op_t,end_e){var $ret_or_29=nil,expr_l=nil;return $truthy($truthy($ret_or_29=start_e)?end_e:$ret_or_29)?expr_l=this.$join_exprs(start_e,end_e):$truthy(start_e)?expr_l=start_e.$loc().$expression().$join(this.$loc(op_t)):$truthy(end_e)&&(expr_l=this.$loc(op_t).$join(end_e.$loc().$expression())),$$$($$$($$($nesting,"Source"),"Map"),"Operator").$new(this.$loc(op_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$arg_prefix_map",$Default_rewrite_hash_args_to_kwargs$206=function(op_t,name_t){var expr_l=nil;return null==name_t&&(name_t=nil),expr_l=$truthy(name_t["$nil?"]())?this.$loc(op_t):this.$loc(op_t).$join(this.$loc(name_t)),$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(this.$loc(name_t),expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$kwarg_map",$Default_rewrite_hash_args_to_kwargs$206=function(name_t,value_e){var name_range,expr_l=nil;return null==value_e&&(value_e=nil),name_range=this.$loc(name_t).$adjust($hash2(["end_pos"],{end_pos:-1})),expr_l=$truthy(value_e)?this.$loc(name_t).$join(value_e.$loc().$expression()):this.$loc(name_t),$$$($$$($$($nesting,"Source"),"Map"),"Variable").$new(name_range,expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-2),Opal.def($Default_kwargs$ques$207,"$module_definition_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,name_e,operator_t,end_t){var name_l=nil;return $truthy(name_e)&&(name_l=name_e.$loc().$expression()),$$$($$$($$($nesting,"Source"),"Map"),"Definition").$new(this.$loc(keyword_t),this.$loc(operator_t),name_l,this.$loc(end_t))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$definition_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,operator_t,name_t,end_t){return $$$($$$($$($nesting,"Source"),"Map"),"MethodDefinition").$new(this.$loc(keyword_t),this.$loc(operator_t),this.$loc(name_t),this.$loc(end_t),nil,nil)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$endless_definition_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,operator_t,name_t,assignment_t,body_e){var body_l=body_e.$loc().$expression();return $$$($$$($$($nesting,"Source"),"Map"),"MethodDefinition").$new(this.$loc(keyword_t),this.$loc(operator_t),this.$loc(name_t),nil,this.$loc(assignment_t),body_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$send_map",$Default_rewrite_hash_args_to_kwargs$206=function(receiver_e,dot_t,selector_t,begin_t,args,end_t){var begin_l=nil,end_l=nil;return null==begin_t&&(begin_t=nil),null==args&&(args=[]),null==end_t&&(end_t=nil),$truthy(receiver_e)?begin_l=receiver_e.$loc().$expression():$truthy(selector_t)&&(begin_l=this.$loc(selector_t)),$truthy(end_t)?end_l=this.$loc(end_t):$truthy(args["$any?"]())?end_l=args.$last().$loc().$expression():$truthy(selector_t)&&(end_l=this.$loc(selector_t)),$$$($$$($$($nesting,"Source"),"Map"),"Send").$new(this.$loc(dot_t),this.$loc(selector_t),this.$loc(begin_t),this.$loc(end_t),begin_l.$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-4),Opal.def($Default_kwargs$ques$207,"$var_send_map",$Default_rewrite_hash_args_to_kwargs$206=function(variable_e){return $$$($$$($$($nesting,"Source"),"Map"),"Send").$new(nil,variable_e.$loc().$expression(),nil,nil,variable_e.$loc().$expression())},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$send_binary_op_map",$Default_rewrite_hash_args_to_kwargs$206=function(lhs_e,selector_t,rhs_e){return $$$($$$($$($nesting,"Source"),"Map"),"Send").$new(nil,this.$loc(selector_t),nil,nil,this.$join_exprs(lhs_e,rhs_e))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$send_unary_op_map",$Default_rewrite_hash_args_to_kwargs$206=function(selector_t,arg_e){var expr_l=nil,expr_l=$truthy(arg_e["$nil?"]())?this.$loc(selector_t):this.$loc(selector_t).$join(arg_e.$loc().$expression());return $$$($$$($$($nesting,"Source"),"Map"),"Send").$new(nil,this.$loc(selector_t),nil,nil,expr_l)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$index_map",$Default_rewrite_hash_args_to_kwargs$206=function(receiver_e,lbrack_t,rbrack_t){return $$$($$$($$($nesting,"Source"),"Map"),"Index").$new(this.$loc(lbrack_t),this.$loc(rbrack_t),receiver_e.$loc().$expression().$join(this.$loc(rbrack_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$send_index_map",$Default_rewrite_hash_args_to_kwargs$206=function(receiver_e,lbrack_t,rbrack_t){return $$$($$$($$($nesting,"Source"),"Map"),"Send").$new(nil,this.$loc(lbrack_t).$join(this.$loc(rbrack_t)),nil,nil,receiver_e.$loc().$expression().$join(this.$loc(rbrack_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$block_map",$Default_rewrite_hash_args_to_kwargs$206=function(receiver_l,begin_t,end_t){return $$$($$$($$($nesting,"Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),receiver_l.$join(this.$loc(end_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$keyword_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,begin_t,args,end_t){var $ret_or_30=nil,end_l=nil,$ret_or_31=nil,$ret_or_32=nil;return args=$truthy($ret_or_30=args)?$ret_or_30:[],end_l=$truthy(end_t)?this.$loc(end_t):$truthy($truthy($ret_or_31=args["$any?"]())?args.$last()["$nil?"]()["$!"]():$ret_or_31)?args.$last().$loc().$expression():$truthy($truthy($ret_or_32=args["$any?"]())?$rb_gt(args.$count(),1):$ret_or_32)?args["$[]"](-2).$loc().$expression():this.$loc(keyword_t),$$$($$$($$($nesting,"Source"),"Map"),"Keyword").$new(this.$loc(keyword_t),this.$loc(begin_t),this.$loc(end_t),this.$loc(keyword_t).$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$keyword_mod_map",$Default_rewrite_hash_args_to_kwargs$206=function(pre_e,keyword_t,post_e){return $$$($$$($$($nesting,"Source"),"Map"),"Keyword").$new(this.$loc(keyword_t),nil,nil,this.$join_exprs(pre_e,post_e))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=3),Opal.def($Default_kwargs$ques$207,"$condition_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,cond_e,begin_t,body_e,else_t,else_e,end_t){var end_l=nil,$ret_or_33=nil,$ret_or_34=nil,end_l=$truthy(end_t)?this.$loc(end_t):$truthy($truthy($ret_or_33=else_e)?else_e.$loc().$expression():$ret_or_33)?else_e.$loc().$expression():$truthy(this.$loc(else_t))?this.$loc(else_t):$truthy($truthy($ret_or_34=body_e)?body_e.$loc().$expression():$ret_or_34)?body_e.$loc().$expression():$truthy(this.$loc(begin_t))?this.$loc(begin_t):cond_e.$loc().$expression();return $$$($$$($$($nesting,"Source"),"Map"),"Condition").$new(this.$loc(keyword_t),this.$loc(begin_t),this.$loc(else_t),this.$loc(end_t),this.$loc(keyword_t).$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=7),Opal.def($Default_kwargs$ques$207,"$ternary_map",$Default_rewrite_hash_args_to_kwargs$206=function(begin_e,question_t,mid_e,colon_t,end_e){return $$$($$$($$($nesting,"Source"),"Map"),"Ternary").$new(this.$loc(question_t),this.$loc(colon_t),this.$join_exprs(begin_e,end_e))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$for_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,in_t,begin_t,end_t){return $$$($$$($$($nesting,"Source"),"Map"),"For").$new(this.$loc(keyword_t),this.$loc(in_t),this.$loc(begin_t),this.$loc(end_t),this.$loc(keyword_t).$join(this.$loc(end_t)))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=4),Opal.def($Default_kwargs$ques$207,"$rescue_body_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,exc_list_e,assoc_t,exc_var_e,then_t,compstmt_e){var end_l=nil,$ret_or_35=nil,$ret_or_36=nil,$ret_or_37=nil;return $truthy(compstmt_e)&&(end_l=compstmt_e.$loc().$expression()),$truthy($truthy($ret_or_35=end_l["$nil?"]())?then_t:$ret_or_35)&&(end_l=this.$loc(then_t)),$truthy($truthy($ret_or_36=end_l["$nil?"]())?exc_var_e:$ret_or_36)&&(end_l=exc_var_e.$loc().$expression()),$truthy($truthy($ret_or_37=end_l["$nil?"]())?exc_list_e:$ret_or_37)&&(end_l=exc_list_e.$loc().$expression()),$truthy(end_l["$nil?"]())&&(end_l=this.$loc(keyword_t)),$$$($$$($$($nesting,"Source"),"Map"),"RescueBody").$new(this.$loc(keyword_t),this.$loc(assoc_t),this.$loc(then_t),this.$loc(keyword_t).$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=6),Opal.def($Default_kwargs$ques$207,"$eh_keyword_map",$Default_rewrite_hash_args_to_kwargs$206=function(compstmt_e,keyword_t,body_es,else_t,else_e){var begin_l=nil,end_l=nil,begin_l=$truthy(compstmt_e["$nil?"]())?$truthy(keyword_t["$nil?"]())?body_es.$first().$loc().$expression():this.$loc(keyword_t):compstmt_e.$loc().$expression(),end_l=$truthy(else_t)?$truthy(else_e["$nil?"]())?this.$loc(else_t):else_e.$loc().$expression():$truthy(body_es.$last()["$nil?"]()["$!"]())?body_es.$last().$loc().$expression():this.$loc(keyword_t);return $$$($$$($$($nesting,"Source"),"Map"),"Condition").$new(this.$loc(keyword_t),nil,this.$loc(else_t),nil,begin_l.$join(end_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=5),Opal.def($Default_kwargs$ques$207,"$guard_map",$Default_rewrite_hash_args_to_kwargs$206=function(keyword_t,guard_body_e){var keyword_l=nil,keyword_l=this.$loc(keyword_t),guard_body_l=guard_body_e.$loc().$expression();return $$$($$$($$($nesting,"Source"),"Map"),"Keyword").$new(keyword_l,nil,nil,keyword_l.$join(guard_body_l))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$static_string",$Default_rewrite_hash_args_to_kwargs$206=function(nodes){try{var $$197;return $send(nodes,"map",[],(($$197=function(node){var $case,string,self=null==$$197.$$s?this:$$197.$$s;return null==node&&(node=nil),function(){if($case=node.$type(),"str"["$==="]($case))return node.$children()["$[]"](0);if("begin"["$==="]($case)){if($truthy(string=self.$static_string(node.$children())))return string;Opal.ret(nil)}else Opal.ret(nil)}()}).$$s=this,$$197.$$arity=1,$$197)).$join()}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$static_regexp",$Default_rewrite_hash_args_to_kwargs$206=function(parts,options){var source=nil,source=this.$static_string(parts);return $truthy(source["$nil?"]())?nil:(source=$truthy(options.$children()["$include?"]("u"))?source.$encode($$$($$($nesting,"Encoding"),"UTF_8")):$truthy(options.$children()["$include?"]("e"))?source.$encode($$$($$($nesting,"Encoding"),"EUC_JP")):$truthy(options.$children()["$include?"]("s"))?source.$encode($$$($$($nesting,"Encoding"),"WINDOWS_31J")):$truthy(options.$children()["$include?"]("n"))?source.$encode($$$($$($nesting,"Encoding"),"BINARY")):source,$$($nesting,"Regexp").$new(source,$truthy(options.$children()["$include?"]("x"))?$$$($$($nesting,"Regexp"),"EXTENDED"):nil))},$Default_rewrite_hash_args_to_kwargs$206.$$arity=2),Opal.def($Default_kwargs$ques$207,"$static_regexp_node",$Default_rewrite_hash_args_to_kwargs$206=function($a){var parts,options;return $a.$type()["$=="]("regexp")?(parts=($a=[$a.$children()["$[]"]($range(0,-2,!1)),$a.$children()["$[]"](-1)])[0],options=$a[1],this.$static_regexp(parts,options)):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$collapse_string_parts?",$Default_rewrite_hash_args_to_kwargs$206=function(parts){var $ret_or_38;return $truthy($ret_or_38=parts["$one?"]())?["str","dstr"]["$include?"](parts.$first().$type()):$ret_or_38},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$value",$Default_rewrite_hash_args_to_kwargs$206=function(token){return token["$[]"](0)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$string_value",$Default_rewrite_hash_args_to_kwargs$206=function(token){return $truthy(token["$[]"](0)["$valid_encoding?"]())||this.$diagnostic("error","invalid_encoding",nil,token["$[]"](1)),token["$[]"](0)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$loc",$Default_rewrite_hash_args_to_kwargs$206=function(token){var $ret_or_39=nil;return $truthy($truthy($ret_or_39=token)?token["$[]"](0):$ret_or_39)?token["$[]"](1):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$diagnostic",$Default_rewrite_hash_args_to_kwargs$206=function(type,reason,arguments$,location,highlights){return null==highlights&&(highlights=[]),this.parser.$diagnostics().$process($$($nesting,"Diagnostic").$new(type,reason,arguments$,location,highlights)),type["$=="]("error")?this.parser.$send("yyerror"):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=-5),Opal.def($Default_kwargs$ques$207,"$validate_definee",$Default_rewrite_hash_args_to_kwargs$206=function(definee){var self=this,$case=nil;return $case=definee.$type(),!("int"["$==="]($case)||"str"["$==="]($case)||"dstr"["$==="]($case)||"sym"["$==="]($case)||"dsym"["$==="]($case)||"regexp"["$==="]($case)||"array"["$==="]($case)||"hash"["$==="]($case))||(self.$diagnostic("error","singleton_literal",nil,definee.$loc().$expression()),!1)},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$rewrite_hash_args_to_kwargs",$Default_rewrite_hash_args_to_kwargs$206=function(args){var self=this,$ret_or_40=nil,$writer=nil,$ret_or_41=nil,$ret_or_42=nil;return $truthy($truthy($ret_or_40=args["$any?"]())?self["$kwargs?"](args.$last()):$ret_or_40)?($writer=[$rb_minus(args.$length(),1),args["$[]"]($rb_minus(args.$length(),1)).$updated("kwargs")],$send(args,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy($truthy($ret_or_41=$truthy($ret_or_42=$rb_gt(args.$length(),1))?args.$last().$type()["$=="]("block_pass"):$ret_or_42)?self["$kwargs?"](args["$[]"]($rb_minus(args.$length(),2))):$ret_or_41)?($writer=[$rb_minus(args.$length(),2),args["$[]"]($rb_minus(args.$length(),2)).$updated("kwargs")],$send(args,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil},$Default_rewrite_hash_args_to_kwargs$206.$$arity=1),Opal.def($Default_kwargs$ques$207,"$kwargs?",$Default_kwargs$ques$207=function(node){var $ret_or_43,$ret_or_44=nil;return $truthy($ret_or_43=$truthy($ret_or_44=node.$type()["$=="]("hash"))?node.$loc().$begin()["$nil?"]():$ret_or_44)?node.$loc().$end()["$nil?"]():$ret_or_43},$Default_kwargs$ques$207.$$arity=1),nil&&"kwargs?"}($$($nesting,"Builders"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/context"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$reset","$attr_accessor","$in_block","$in_lambda"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($nesting,$Context_reset$2){var $Context_in_dynamic_block$ques$3=$klass($nesting,null,"Context"),$nesting=[$Context_in_dynamic_block$ques$3].concat($Context_reset$2);return Opal.const_set($nesting[0],"FLAGS",["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda"]),Opal.def($Context_in_dynamic_block$ques$3,"$initialize",$Context_reset$2=function(){return this.$reset()},$Context_reset$2.$$arity=0),Opal.def($Context_in_dynamic_block$ques$3,"$reset",$Context_reset$2=function(){return this.in_defined=!1,this.in_kwarg=!1,this.in_argdef=!1,this.in_def=!1,this.in_class=!1,this.in_block=!1,this.in_lambda=!1},$Context_reset$2.$$arity=0),$send($Context_in_dynamic_block$ques$3,"attr_accessor",Opal.to_a($$($nesting,"FLAGS"))),Opal.def($Context_in_dynamic_block$ques$3,"$in_dynamic_block?",$Context_in_dynamic_block$ques$3=function(){var $ret_or_1;return $truthy($ret_or_1=this.$in_block())?$ret_or_1:this.$in_lambda()},$Context_in_dynamic_block$ques$3.$$arity=0),nil&&"in_dynamic_block?"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/max_numparam_stack"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$==","$size","$set","$top","$>","$max","$[]","$last","$push","$pop","$private","$[]=","$-"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($MaxNumparamStack_set$10,$MaxNumparamStack_pop$9){var $MaxNumparamStack_set$10=$klass($MaxNumparamStack_set$10,null,"MaxNumparamStack"),$nesting=[$MaxNumparamStack_set$10].concat($MaxNumparamStack_pop$9);return $MaxNumparamStack_set$10.$$prototype.stack=nil,$MaxNumparamStack_set$10.$attr_reader("stack"),Opal.const_set($nesting[0],"ORDINARY_PARAMS",-1),Opal.def($MaxNumparamStack_set$10,"$initialize",$MaxNumparamStack_pop$9=function(){return this.stack=[]},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$empty?",$MaxNumparamStack_pop$9=function(){return this.stack.$size()["$=="](0)},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$has_ordinary_params!",$MaxNumparamStack_pop$9=function(){return this.$set($$($nesting,"ORDINARY_PARAMS"))},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$has_ordinary_params?",$MaxNumparamStack_pop$9=function(){return this.$top()["$=="]($$($nesting,"ORDINARY_PARAMS"))},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$has_numparams?",$MaxNumparamStack_pop$9=function(){var $ret_or_1,lhs,rhs;return $truthy($ret_or_1=this.$top())?(lhs=this.$top(),rhs=0,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)):$ret_or_1},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$register",$MaxNumparamStack_pop$9=function(numparam){return this.$set([this.$top(),numparam].$max())},$MaxNumparamStack_pop$9.$$arity=1),Opal.def($MaxNumparamStack_set$10,"$top",$MaxNumparamStack_pop$9=function(){return this.stack.$last()["$[]"]("value")},$MaxNumparamStack_pop$9.$$arity=0),Opal.def($MaxNumparamStack_set$10,"$push",$MaxNumparamStack_pop$9=function(static$){if(null==static$)static$=$hash2([],{});else if(!static$.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call(static$.$$smap,"static"))throw Opal.ArgumentError.$new("missing keyword: static");return static$=static$.$$smap.static,this.stack.$push($hash2(["value","static"],{value:0,static:static$}))},$MaxNumparamStack_pop$9.$$arity=1),Opal.def($MaxNumparamStack_set$10,"$pop",$MaxNumparamStack_pop$9=function(){return this.stack.$pop()["$[]"]("value")},$MaxNumparamStack_pop$9.$$arity=0),$MaxNumparamStack_set$10.$private(),Opal.def($MaxNumparamStack_set$10,"$set",$MaxNumparamStack_set$10=function(rhs){var lhs=nil,lhs=["value",rhs];return $send(this.stack.$last(),"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]},$MaxNumparamStack_set$10.$$arity=1),nil&&"set"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/current_arg_stack"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$freeze","$==","$size","$<<","$-","$length","$[]=","$pop","$clear","$last"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($CurrentArgStack_top$7,$CurrentArgStack_reset$6){$CurrentArgStack_top$7=$klass($CurrentArgStack_top$7,null,"CurrentArgStack"),[$CurrentArgStack_top$7].concat($CurrentArgStack_reset$6);return $CurrentArgStack_top$7.$$prototype.stack=nil,$CurrentArgStack_top$7.$attr_reader("stack"),Opal.def($CurrentArgStack_top$7,"$initialize",$CurrentArgStack_reset$6=function(){return this.stack=[],this.$freeze()},$CurrentArgStack_reset$6.$$arity=0),Opal.def($CurrentArgStack_top$7,"$empty?",$CurrentArgStack_reset$6=function(){return this.stack.$size()["$=="](0)},$CurrentArgStack_reset$6.$$arity=0),Opal.def($CurrentArgStack_top$7,"$push",$CurrentArgStack_reset$6=function(value){return this.stack["$<<"](value)},$CurrentArgStack_reset$6.$$arity=1),Opal.def($CurrentArgStack_top$7,"$set",$CurrentArgStack_reset$6=function(value){var $writer=[$rb_minus(this.stack.$length(),1),value];return $send(this.stack,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$CurrentArgStack_reset$6.$$arity=1),Opal.def($CurrentArgStack_top$7,"$pop",$CurrentArgStack_reset$6=function(){return this.stack.$pop()},$CurrentArgStack_reset$6.$$arity=0),Opal.def($CurrentArgStack_top$7,"$reset",$CurrentArgStack_reset$6=function(){return this.stack.$clear()},$CurrentArgStack_reset$6.$$arity=0),Opal.def($CurrentArgStack_top$7,"$top",$CurrentArgStack_top$7=function(){return this.stack.$last()},$CurrentArgStack_top$7.$$arity=0),nil&&"top"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/variables_stack"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$push","$empty?","$<<","$new","$pop","$clear","$last","$to_sym","$include?"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($VariablesStack_declared$ques$7,$VariablesStack_declare$6){var $VariablesStack_declared$ques$7=$klass($VariablesStack_declared$ques$7,null,"VariablesStack"),$nesting=[$VariablesStack_declared$ques$7].concat($VariablesStack_declare$6);return $VariablesStack_declared$ques$7.$$prototype.stack=nil,Opal.def($VariablesStack_declared$ques$7,"$initialize",$VariablesStack_declare$6=function(){return this.stack=[],this.$push()},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$empty?",$VariablesStack_declare$6=function(){return this.stack["$empty?"]()},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$push",$VariablesStack_declare$6=function(){return this.stack["$<<"]($$($nesting,"Set").$new())},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$pop",$VariablesStack_declare$6=function(){return this.stack.$pop()},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$reset",$VariablesStack_declare$6=function(){return this.stack.$clear()},$VariablesStack_declare$6.$$arity=0),Opal.def($VariablesStack_declared$ques$7,"$declare",$VariablesStack_declare$6=function(name){return this.stack.$last()["$<<"](name.$to_sym())},$VariablesStack_declare$6.$$arity=1),Opal.def($VariablesStack_declared$ques$7,"$declared?",$VariablesStack_declared$ques$7=function(name){return this.stack.$last()["$include?"](name.$to_sym())},$VariablesStack_declared$ques$7.$$arity=1),nil&&"declared?"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/base"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$gvars=Opal.gvars,$truthy=Opal.truthy,$hash2=Opal.hash2;return Opal.add_stubs(["$default_parser","$setup_source_buffer","$default_encoding","$parse","$parse_with_comments","$read","$new","$all_errors_are_fatal=","$diagnostics","$-","$ignore_warnings=","$lambda","$puts","$render","$consumer=","$force_encoding","$dup","$==","$name","$raw_source=","$source=","$private_class_method","$attr_reader","$version","$diagnostics=","$static_env=","$context=","$parser=","$class","$[]","$reset","$source_buffer=","$do_parse","$comments=","$comments","$tokens=","$!","$raise","$tokens","$private","$advance","$===","$diagnostic","$map","$process","$yyerror","$token_to_str"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$Base_on_error$17,$Base_diagnostic$15){var $Base_on_error$17=$klass($base,$Base_on_error$17,"Base"),$nesting=[$Base_on_error$17].concat($Base_diagnostic$15);return $Base_on_error$17.$$prototype.diagnostics=$Base_on_error$17.$$prototype.lexer=$Base_on_error$17.$$prototype.static_env=$Base_on_error$17.$$prototype.context=$Base_on_error$17.$$prototype.builder=$Base_on_error$17.$$prototype.current_arg_stack=$Base_on_error$17.$$prototype.pattern_variables=$Base_on_error$17.$$prototype.pattern_hash_keys=nil,Opal.defs($Base_on_error$17,"$parse",$Base_diagnostic$15=function(string,file,line){var source_buffer,parser=nil;return null==file&&(file="(string)"),null==line&&(line=1),parser=this.$default_parser(),source_buffer=this.$setup_source_buffer(file,line,string,parser.$default_encoding()),parser.$parse(source_buffer)},$Base_diagnostic$15.$$arity=-2),Opal.defs($Base_on_error$17,"$parse_with_comments",$Base_diagnostic$15=function(string,file,line){var source_buffer,parser=nil;return null==file&&(file="(string)"),null==line&&(line=1),parser=this.$default_parser(),source_buffer=this.$setup_source_buffer(file,line,string,parser.$default_encoding()),parser.$parse_with_comments(source_buffer)},$Base_diagnostic$15.$$arity=-2),Opal.defs($Base_on_error$17,"$parse_file",$Base_diagnostic$15=function(filename){return this.$parse($$($nesting,"File").$read(filename),filename)},$Base_diagnostic$15.$$arity=1),Opal.defs($Base_on_error$17,"$parse_file_with_comments",$Base_diagnostic$15=function(filename){return this.$parse_with_comments($$($nesting,"File").$read(filename),filename)},$Base_diagnostic$15.$$arity=1),Opal.defs($Base_on_error$17,"$default_parser",$Base_diagnostic$15=function(){var $$6,parser=nil,parser=this.$new(),$writer=[!0];return $send(parser.$diagnostics(),"all_errors_are_fatal=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!0],$send(parser.$diagnostics(),"ignore_warnings=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[$send(this,"lambda",[],(($$6=function(diagnostic){null==$$6.$$s||$$6.$$s;return null==$gvars.stderr&&($gvars.stderr=nil),null==diagnostic&&(diagnostic=nil),$gvars.stderr.$puts(diagnostic.$render())}).$$s=this,$$6.$$arity=1,$$6))],$send(parser.$diagnostics(),"consumer=",Opal.to_a($writer)),$rb_minus($writer.length,1),parser},$Base_diagnostic$15.$$arity=0),Opal.defs($Base_on_error$17,"$setup_source_buffer",$Base_diagnostic$15=function(file,line,string,encoding){var source_buffer,$writer=nil;return string=string.$dup().$force_encoding(encoding),source_buffer=$$$($$($nesting,"Source"),"Buffer").$new(file,line),this.$name()["$=="]("Parser::Ruby18")?($writer=[string],$send(source_buffer,"raw_source=",Opal.to_a($writer))):($writer=[string],$send(source_buffer,"source=",Opal.to_a($writer))),$writer[$rb_minus($writer.length,1)],source_buffer},$Base_diagnostic$15.$$arity=4),$Base_on_error$17.$private_class_method("setup_source_buffer"),$Base_on_error$17.$attr_reader("lexer"),$Base_on_error$17.$attr_reader("diagnostics"),$Base_on_error$17.$attr_reader("builder"),$Base_on_error$17.$attr_reader("static_env"),$Base_on_error$17.$attr_reader("source_buffer"),$Base_on_error$17.$attr_reader("context"),$Base_on_error$17.$attr_reader("max_numparam_stack"),$Base_on_error$17.$attr_reader("current_arg_stack"),$Base_on_error$17.$attr_reader("pattern_variables"),$Base_on_error$17.$attr_reader("pattern_hash_keys"),Opal.def($Base_on_error$17,"$initialize",$Base_diagnostic$15=function(builder){var $writer,self=this,$ret_or_1=nil;return null==builder&&(builder=$$$($$$($$($nesting,"Parser"),"Builders"),"Default").$new()),self.diagnostics=$$$($$($nesting,"Diagnostic"),"Engine").$new(),self.static_env=$$($nesting,"StaticEnvironment").$new(),self.context=$$($nesting,"Context").$new(),self.max_numparam_stack=$$($nesting,"MaxNumparamStack").$new(),self.current_arg_stack=$$($nesting,"CurrentArgStack").$new(),self.pattern_variables=$$($nesting,"VariablesStack").$new(),self.pattern_hash_keys=$$($nesting,"VariablesStack").$new(),self.lexer=$$($nesting,"Lexer").$new(self.$version()),$writer=[self.diagnostics],$send(self.lexer,"diagnostics=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[self.static_env],$send(self.lexer,"static_env=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[self.context],$send(self.lexer,"context=",Opal.to_a($writer)),$rb_minus($writer.length,1),self.builder=builder,$writer=[self],$send(self.builder,"parser=",Opal.to_a($writer)),$rb_minus($writer.length,1),self.last_token=nil,$truthy($truthy($ret_or_1=$$$(self.$class(),"Racc_debug_parser"))?$$($nesting,"ENV")["$[]"]("RACC_DEBUG"):$ret_or_1)&&(self.yydebug=!0),self.$reset()},$Base_diagnostic$15.$$arity=-1),Opal.def($Base_on_error$17,"$reset",$Base_diagnostic$15=function(){return this.source_buffer=nil,this.lexer.$reset(),this.static_env.$reset(),this.context.$reset(),this.current_arg_stack.$reset(),this.pattern_variables.$reset(),this.pattern_hash_keys.$reset(),this},$Base_diagnostic$15.$$arity=0),Opal.def($Base_on_error$17,"$parse",$Base_diagnostic$15=function(source_buffer){var $ret_or_2,self=this,$writer=nil;return function(){try{return $writer=[source_buffer],$send(self.lexer,"source_buffer=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.source_buffer=source_buffer,$truthy($ret_or_2=self.$do_parse())?$ret_or_2:nil}finally{self.source_buffer=nil,$writer=[nil],$send(self.lexer,"source_buffer=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$Base_diagnostic$15.$$arity=1),Opal.def($Base_on_error$17,"$parse_with_comments",$Base_diagnostic$15=function(source_buffer){var self=this,$writer=nil;return function(){try{return $writer=[[]],$send(self.lexer,"comments=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],[self.$parse(source_buffer),self.lexer.$comments()]}finally{$writer=[nil],$send(self.lexer,"comments=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$Base_diagnostic$15.$$arity=1),Opal.def($Base_on_error$17,"$tokenize",$Base_diagnostic$15=function(source_buffer,recover){var self=this,$writer=nil,ast=nil;return null==recover&&(recover=!1),function(){try{$writer=[[]],$send(self.lexer,"tokens=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[[]],$send(self.lexer,"comments=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)];try{ast=self.$parse(source_buffer)}catch($err){if(!Opal.rescue($err,[$$$($$($nesting,"Parser"),"SyntaxError")]))throw $err;try{$truthy(recover["$!"]())&&self.$raise()}finally{Opal.pop_exception()}}return[ast,self.lexer.$comments(),self.lexer.$tokens()]}finally{$writer=[nil],$send(self.lexer,"tokens=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[nil],$send(self.lexer,"comments=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$Base_diagnostic$15.$$arity=-2),$Base_on_error$17.$private(),Opal.def($Base_on_error$17,"$next_token",$Base_diagnostic$15=function(){var token=this.lexer.$advance();return this.last_token=token},$Base_diagnostic$15.$$arity=0),Opal.def($Base_on_error$17,"$check_kwarg_name",$Base_diagnostic$15=function(name_t){var self=this,$case=nil;return $case=name_t["$[]"](0),!/^[a-z_]/["$==="]($case)&&/^[A-Z]/["$==="]($case)?self.$diagnostic("error","argument_const",nil,name_t):nil},$Base_diagnostic$15.$$arity=1),Opal.def($Base_on_error$17,"$diagnostic",$Base_diagnostic$15=function(level,reason,arguments$,$a,highlights_ts){var $$16,location,highlights;return null==highlights_ts&&(highlights_ts=[]),$a=$a,$a=Opal.to_ary($a),null==$a[0]||$a[0],location=null==$a[1]?nil:$a[1],highlights=$send(highlights_ts,"map",[],(($$16=function($c){null==$$16.$$s||$$16.$$s;return null==$c&&($c=nil),$c=$c,$c=Opal.to_ary($c),null==$c[0]||$c[0],null==$c[1]?nil:$c[1]}).$$s=this,$$16.$$arity=1,$$16)),this.diagnostics.$process($$($nesting,"Diagnostic").$new(level,reason,arguments$,location,highlights)),level["$=="]("error")?this.$yyerror():nil},$Base_diagnostic$15.$$arity=-5),Opal.def($Base_on_error$17,"$on_error",$Base_on_error$17=function(error_token_id,$a){var token_name=this.$token_to_str(error_token_id),$a=$a,$a=Opal.to_ary($a),location=(null==$a[0]||$a[0],null==$a[1]?nil:$a[1]);return this.diagnostics.$process($$($nesting,"Diagnostic").$new("error","unexpected_token",$hash2(["token"],{token:token_name}),location))},$Base_on_error$17.$$arity=3),nil&&"on_error"}($nesting[0],$$$($$($nesting,"Racc"),"Parser"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/rewriter"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$new","$process","$include?","$type","$remove","$wrap","$insert_before","$insert_after","$replace","$freeze","$join","$extend","$warn_of_deprecation","$class","$warned_of_deprecation=","$-"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,self,$Rewriter_replace$7){var $Rewriter_initialize$8,self=$klass($base,self,"Rewriter"),$nesting=[self].concat($Rewriter_replace$7);return self.$$prototype.source_rewriter=nil,Opal.def(self,"$rewrite",$Rewriter_replace$7=function(source_buffer,ast){return this.source_rewriter=$$$($$($nesting,"Source"),"Rewriter").$new(source_buffer),this.$process(ast),this.source_rewriter.$process()},$Rewriter_replace$7.$$arity=2),Opal.def(self,"$assignment?",$Rewriter_replace$7=function(node){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](node.$type())},$Rewriter_replace$7.$$arity=1),Opal.def(self,"$remove",$Rewriter_replace$7=function(range){return this.source_rewriter.$remove(range)},$Rewriter_replace$7.$$arity=1),Opal.def(self,"$wrap",$Rewriter_replace$7=function(range,before,after){return this.source_rewriter.$wrap(range,before,after)},$Rewriter_replace$7.$$arity=3),Opal.def(self,"$insert_before",$Rewriter_replace$7=function(range,content){return this.source_rewriter.$insert_before(range,content)},$Rewriter_replace$7.$$arity=2),Opal.def(self,"$insert_after",$Rewriter_replace$7=function(range,content){return this.source_rewriter.$insert_after(range,content)},$Rewriter_replace$7.$$arity=2),Opal.def(self,"$replace",$Rewriter_replace$7=function(range,content){return this.source_rewriter.$replace(range,content)},$Rewriter_replace$7.$$arity=2),Opal.const_set($nesting[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),self.$extend($$($nesting,"Deprecation")),Opal.def(self,"$initialize",$Rewriter_initialize$8=function($a){var $zuper_ii,rhs,$iter=$Rewriter_initialize$8.$$p,lhs=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Rewriter_initialize$8.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),this.$class().$warn_of_deprecation(),lhs=[!0],$send($$$($$($nesting,"Source"),"Rewriter"),"warned_of_deprecation=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),$send2(this,$find_super(this,"initialize",$Rewriter_initialize$8,!1,!0),"initialize",$zuper,$iter)},$Rewriter_initialize$8.$$arity=-1),nil&&"initialize"}($nesting[0],$$$($$$($$($nesting,"Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/tree_rewriter"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2;Opal.hash;return Opal.add_stubs(["$new","$process","$include?","$type","$remove","$wrap","$insert_before","$insert_after","$replace"]),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,$TreeRewriter_replace$7,$TreeRewriter_insert_after$6){var $TreeRewriter_replace$7=$klass($base,$TreeRewriter_replace$7,"TreeRewriter"),$nesting=[$TreeRewriter_replace$7].concat($TreeRewriter_insert_after$6);return $TreeRewriter_replace$7.$$prototype.source_rewriter=nil,Opal.def($TreeRewriter_replace$7,"$rewrite",$TreeRewriter_insert_after$6=function(source_buffer,ast,policy){if(null==policy)policy=$hash2([],{});else if(!policy.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return policy=Opal.kwrestargs(policy,{}),this.source_rewriter=$$$($$$($$($nesting,"Parser"),"Source"),"TreeRewriter").$new(source_buffer,Opal.to_hash(policy)),this.$process(ast),this.source_rewriter.$process()},$TreeRewriter_insert_after$6.$$arity=-3),Opal.def($TreeRewriter_replace$7,"$assignment?",$TreeRewriter_insert_after$6=function(node){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](node.$type())},$TreeRewriter_insert_after$6.$$arity=1),Opal.def($TreeRewriter_replace$7,"$remove",$TreeRewriter_insert_after$6=function(range){return this.source_rewriter.$remove(range)},$TreeRewriter_insert_after$6.$$arity=1),Opal.def($TreeRewriter_replace$7,"$wrap",$TreeRewriter_insert_after$6=function(range,before,after){return this.source_rewriter.$wrap(range,before,after)},$TreeRewriter_insert_after$6.$$arity=3),Opal.def($TreeRewriter_replace$7,"$insert_before",$TreeRewriter_insert_after$6=function(range,content){return this.source_rewriter.$insert_before(range,content)},$TreeRewriter_insert_after$6.$$arity=2),Opal.def($TreeRewriter_replace$7,"$insert_after",$TreeRewriter_insert_after$6=function(range,content){return this.source_rewriter.$insert_after(range,content)},$TreeRewriter_insert_after$6.$$arity=2),Opal.def($TreeRewriter_replace$7,"$replace",$TreeRewriter_replace$7=function(range,content){return this.source_rewriter.$replace(range,content)},$TreeRewriter_replace$7.$$arity=2),nil&&"replace"}($nesting[0],$$$($$$($$($nesting,"Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)},Opal.modules.parser=function(Opal){var self=Opal.top,$nesting=[],$$$=(Opal.nil,Opal.$$$),$$=Opal.$$,$truthy=Opal.truthy,$module=Opal.module;return Opal.add_stubs(["$=~","$require","$raise"]),$truthy($$($nesting,"RUBY_VERSION")["$=~"](/^1\.[89]\./))&&(self.$require("parser/version"),self.$raise($$($nesting,"LoadError"),"parser v"+$$$($$($nesting,"Parser"),"VERSION")+" cannot run on Ruby "+$$($nesting,"RUBY_VERSION")+".\nPlease upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),self.$require("set"),self.$require("racc/parser"),self.$require("ast"),function(self,$nesting){self=$module(self,"Parser"),$nesting=[self].concat($nesting);return self.$require("parser/version"),self.$require("parser/messages"),self.$require("parser/deprecation"),function(self,$parent_nesting){[self=$module(self,"AST")].concat($parent_nesting),self.$require("parser/ast/node"),self.$require("parser/ast/processor"),self.$require("parser/meta")}($nesting[0],$nesting),function(self,$parent_nesting){[self=$module(self,"Source")].concat($parent_nesting),self.$require("parser/source/buffer"),self.$require("parser/source/range"),self.$require("parser/source/comment"),self.$require("parser/source/comment/associator"),self.$require("parser/source/rewriter"),self.$require("parser/source/rewriter/action"),self.$require("parser/source/tree_rewriter"),self.$require("parser/source/tree_rewriter/action"),self.$require("parser/source/map"),self.$require("parser/source/map/operator"),self.$require("parser/source/map/collection"),self.$require("parser/source/map/constant"),self.$require("parser/source/map/variable"),self.$require("parser/source/map/keyword"),self.$require("parser/source/map/definition"),self.$require("parser/source/map/method_definition"),self.$require("parser/source/map/send"),self.$require("parser/source/map/index"),self.$require("parser/source/map/condition"),self.$require("parser/source/map/ternary"),self.$require("parser/source/map/for"),self.$require("parser/source/map/rescue_body"),self.$require("parser/source/map/heredoc"),self.$require("parser/source/map/objc_kwarg")}($nesting[0],$nesting),self.$require("parser/syntax_error"),self.$require("parser/clobbering_error"),self.$require("parser/diagnostic"),self.$require("parser/diagnostic/engine"),self.$require("parser/static_environment"),self.$require("parser/lexer"),self.$require("parser/lexer/literal"),self.$require("parser/lexer/stack_state"),self.$require("parser/lexer/dedenter"),function(self,$parent_nesting){[self=$module(self,"Builders")].concat($parent_nesting),self.$require("parser/builders/default")}($nesting[0],$nesting),self.$require("parser/context"),self.$require("parser/max_numparam_stack"),self.$require("parser/current_arg_stack"),self.$require("parser/variables_stack"),self.$require("parser/base"),self.$require("parser/rewriter"),self.$require("parser/tree_rewriter")}($nesting[0],$nesting)},Opal.modules["parser/ruby30"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send,$hash=Opal.hash,$slice=Opal.slice;return Opal.add_stubs(["$require","$!","$include?","$[]","$end_with?","$diagnostic","$extend_static","$push","$cmdarg","$cond","$unextend","$pop","$children","$=~","$declared?","$static_env","$in_dynamic_block?","$expression","$loc","$has_ordinary_params?","$max_numparam_stack","$dup","$stack","$reverse_each","$>","$declare","$register","$to_i","$new","$each","$split","$empty?","$[]=","$-","$+","$compstmt","$<<","$preexe","$nil?","$begin_body","$state=","$alias","$gvar","$back_ref","$undef_method","$condition_mod","$loop_mod","$rescue_body","$postexe","$multi_assign","$assign","$array","$op_assign","$index","$call_method","$const_op_assignable","$const_fetch","$logical_op","$not_op","$command_start=","$in_kwarg","$in_kwarg=","$match_pattern","$match_pattern_p","$local_push","$in_def=","$in_block=","$in_block","$block","$keyword_cmd","$multi_lhs","$begin","$splat","$concat","$assignable","$index_asgn","$==","$attr_asgn","$const_global","$const","$symbol_internal","$range_inclusive","$range_exclusive","$binary_op","$unary_op","$match_op","$ternary","$endless_method_name","$def_endless_method","$local_pop","$in_def","$def_endless_singleton","$associate","$declared_forward_args?","$forwarded_args","$block_pass","$begin_keyword","$condition","$loop","$case","$case_match","$for","$in_class=","$def_class","$in_class","$def_sclass","$def_module","$def_method","$def_singleton","$context","$in_lambda","$arg","$restarg","$size","$procarg0","$args","$has_ordinary_params!","$set","$shadowarg","$extend_dynamic","$in_lambda=","$call_lambda","$has_numparams?","$numargs","$top","$any?","$when","$in_pattern","$if_guard","$unless_guard","$match_with_trailing_comma","$array_pattern","$find_pattern","$hash_pattern","$match_as","$match_alt","$const_pattern","$match_rest","$match_pair","$match_label","$match_nil_pattern","$accessible","$match_var","$ident","$pin","$string_compose","$dedent_string","$dedent_level","$string","$character","$xstring_compose","$regexp_options","$regexp_compose","$words_compose","$word","$symbols_compose","$string_internal","$ivar","$cvar","$symbol","$symbol_compose","$respond_to?","$negate","$unary_num","$integer","$float","$rational","$complex","$nil","$self","$true","$false","$__FILE__","$__LINE__","$__ENCODING__","$nth_ref","$forward_arg","$declare_forward_args","$forward_only_args","$check_kwarg_name","$kwoptarg","$kwarg","$kwnilarg","$kwrestarg","$optarg","$blockarg","$pair","$pair_keyword","$pair_quoted","$kwsplat","$yyerrok"]),self.$require("racc/parser.rb"),self.$require("parser"),function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function(racc_reduce_table,$Ruby30__reduce_728$542,$Ruby30_try_declare_numparam$6){var $Ruby30$8,$Ruby30$10,$Ruby30$12,$Ruby30$14,clist,racc_action_table,racc_action_check,racc_action_pointer,racc_action_default,racc_goto_table,racc_goto_check,racc_goto_pointer,racc_goto_default,$Ruby30__reduce_none$543=$klass(racc_reduce_table,$Ruby30__reduce_728$542,"Ruby30"),$nesting=[$Ruby30__reduce_none$543].concat($Ruby30_try_declare_numparam$6),arr=nil,idx=nil;return $Ruby30__reduce_none$543.$$prototype.static_env=$Ruby30__reduce_none$543.$$prototype.lexer=$Ruby30__reduce_none$543.$$prototype.max_numparam_stack=$Ruby30__reduce_none$543.$$prototype.context=$Ruby30__reduce_none$543.$$prototype.current_arg_stack=$Ruby30__reduce_none$543.$$prototype.builder=$Ruby30__reduce_none$543.$$prototype.pattern_variables=$Ruby30__reduce_none$543.$$prototype.last_token=$Ruby30__reduce_none$543.$$prototype.pattern_hash_keys=nil,Opal.def($Ruby30__reduce_none$543,"$version",$Ruby30_try_declare_numparam$6=function(){return 30},$Ruby30_try_declare_numparam$6.$$arity=0),Opal.def($Ruby30__reduce_none$543,"$default_encoding",$Ruby30_try_declare_numparam$6=function(){return $$$($$($nesting,"Encoding"),"UTF_8")},$Ruby30_try_declare_numparam$6.$$arity=0),Opal.def($Ruby30__reduce_none$543,"$endless_method_name",$Ruby30_try_declare_numparam$6=function(name_t){var $ret_or_1=nil;return $truthy($truthy($ret_or_1=["===","==","!=","<=",">="]["$include?"](name_t["$[]"](0))["$!"]())?name_t["$[]"](0)["$end_with?"]("="):$ret_or_1)?this.$diagnostic("error","endless_setter",nil,name_t):nil},$Ruby30_try_declare_numparam$6.$$arity=1),Opal.def($Ruby30__reduce_none$543,"$local_push",$Ruby30_try_declare_numparam$6=function(){return this.static_env.$extend_static(),this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),this.max_numparam_stack.$push($hash2(["static"],{static:!0}))},$Ruby30_try_declare_numparam$6.$$arity=0),Opal.def($Ruby30__reduce_none$543,"$local_pop",$Ruby30_try_declare_numparam$6=function(){return this.static_env.$unextend(),this.lexer.$cmdarg().$pop(),this.lexer.$cond().$pop(),this.max_numparam_stack.$pop()},$Ruby30_try_declare_numparam$6.$$arity=0),Opal.def($Ruby30__reduce_none$543,"$try_declare_numparam",$Ruby30_try_declare_numparam$6=function(node){var $$7,location,self=this,name=nil,$ret_or_2=nil,$ret_or_3=nil,raw_max_numparam_stack=nil,name=node.$children()["$[]"](0);return!!$truthy($truthy($ret_or_2=$truthy($ret_or_3=name["$=~"](/^_[1-9]$/))?self.$static_env()["$declared?"](name)["$!"]():$ret_or_3)?self.context["$in_dynamic_block?"]():$ret_or_2)&&(location=node.$loc().$expression(),$truthy(self.$max_numparam_stack()["$has_ordinary_params?"]())&&self.$diagnostic("error","ordinary_param_defined",nil,[nil,location]),(raw_max_numparam_stack=self.$max_numparam_stack().$stack().$dup()).$pop(),function(){var $brk=Opal.new_brk();try{$send(raw_max_numparam_stack,"reverse_each",[],(($$7=function(rhs){var lhs,self=null==$$7.$$s?this:$$7.$$s,outer_scope_has_numparams=nil;if(null==rhs&&(rhs=nil),!$truthy(rhs["$[]"]("static")))return lhs=rhs["$[]"]("value"),rhs=0,outer_scope_has_numparams="number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs),$truthy(outer_scope_has_numparams)?self.$diagnostic("error","numparam_used_in_outer_scope",nil,[nil,location]):nil;Opal.brk(nil,$brk)}).$$s=self,$$7.$$brk=$brk,$$7.$$arity=1,$$7))}catch(err){if(err===$brk)return err.$v;throw err}}(),self.$static_env().$declare(name),self.$max_numparam_stack().$register(name["$[]"](1).$to_i()),!0)},$Ruby30_try_declare_numparam$6.$$arity=1),clist=["-707,680,617,1083,870,965,-120,-707,-707,-707,221,222,805,-707,-707","-606,-707,104,105,870,231,-113,-606,-116,-707,-707,660,1150,658,-716","866,-119,-118,1153,-114,1078,-707,-707,617,-707,-707,-707,-707,-707","-112,-119,232,617,617,920,1124,-118,426,1077,624,-117,870,428,427,810","-117,232,810,-115,-113,-501,-707,-707,-707,-707,-707,-707,-707,-707","-707,-707,-707,-707,-707,-707,-606,-112,-707,-707,-707,1084,685,-707","-703,-117,-707,-120,659,-707,657,106,107,-704,-707,232,-707,229,-707","-707,232,-707,-707,-707,-707,-707,-602,-707,-707,-707,964,-111,126,-602","-602,-602,126,125,-602,-602,-602,125,-602,-707,-704,-106,-707,-707,-107","-707,-602,-707,-602,-602,-602,-113,-110,-109,-707,-105,-113,-116,-602","-602,617,-602,-602,-602,-602,-602,-116,-114,126,-115,-117,954,-120,125","-112,-119,-108,126,126,-112,-119,-118,125,125,-106,-104,-118,232,-602","-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-602,-103","617,-602,-602,-602,-106,-602,-602,301,852,-602,352,126,-602,-602,479","-602,125,-602,-120,-602,-716,-602,-602,-120,-602,-602,-602,-602,-602","-314,-602,1158,-602,301,221,222,-314,-314,-314,920,-703,624,-314,-314","-106,-314,-602,-106,1159,-602,-602,-602,-602,-314,-602,-716,-602,221","222,-106,232,-602,949,920,-602,-314,-314,-114,-314,-314,-314,-314,-314","-120,788,126,221,222,1043,-107,125,-116,-114,366,-115,-117,-116,-114","301,-115,-117,232,789,1043,300,-314,-314,-314,-314,-314,-314,-314,-314","-314,-314,-314,-314,-314,-314,301,1043,-314,-314,-314,-611,684,-314","351,126,-314,300,-611,-314,125,-105,104,105,-314,126,-314,-611,-314","-314,125,-314,-314,-314,-314,-314,-728,-314,-707,-314,290,-703,-107","865,679,-707,-707,-707,232,296,-707,-707,-707,-314,-707,126,-314,-314","1171,-314,125,-314,-707,-707,-707,-707,-707,232,-314,1172,296,-118,300","-108,-707,-707,-611,-707,-707,-707,-707,-707,-107,-612,1176,-107,-98","-105,645,-605,-612,645,774,300,1180,645,-605,-107,-84,-612,106,107,-115","-115,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707,-707","-707,366,555,-707,-707,-707,645,867,-707,1182,-105,-707,630,-105,-707","-707,631,-707,1184,-707,555,-707,-108,-707,-707,-105,-707,-707,-707","-707,-707,-612,-707,-707,-707,647,646,-605,647,646,643,645,647,646,645","836,1186,645,-707,-110,645,-707,-707,-707,-707,1137,-707,-728,-707,1137","-314,-119,-108,-707,-614,-108,-116,-314,-314,-314,647,646,-314,-314","-314,227,-314,-108,1186,-119,838,630,547,-604,-314,895,-314,-314,-314","876,-604,545,974,-701,872,765,-314,-314,873,-314,-314,-314,-314,-314","223,647,646,643,647,646,643,647,646,648,647,646,656,852,-613,126,126","1119,745,-113,125,125,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314","-314,-314,-314,-314,228,-613,-314,-314,-314,-602,868,-314,-604,1200","-314,-114,-602,-314,-314,645,-314,-701,-314,1176,-314,-602,-314,-314","-105,-314,-314,-314,-314,-314,126,-314,220,-314,630,125,-114,-112,895","582,-701,579,578,577,587,580,680,-314,-103,-607,-314,-314,-314,-314","590,-314,-607,-314,-704,-707,-112,679,-314,1122,1123,-118,-707,-707","-707,-703,-602,609,-707,-707,611,-707,585,221,222,647,646,652,-610,-707","-707,595,594,598,597,-610,949,920,591,-108,90,-707,-707,232,-707,-707","-707,-707,-707,219,-614,-117,91,582,-106,579,578,577,587,580,-607,645","92,218,232,135,-115,232,590,1043,1174,-707,-707,-707,-707,-707,-707","-707,-707,-707,-707,-707,-707,-707,-707,1212,229,-707,-707,-707,585","685,-707,-610,1186,-707,645,-104,-707,595,594,598,597,-707,1186,-707","591,-707,-707,-113,-707,-707,-707,-707,-707,-314,-707,-707,-707,890","891,1186,-314,-314,-314,647,646,661,-314,-314,-608,-314,-707,-111,122","-707,-707,-608,-107,-314,-707,-609,-602,598,597,-120,576,-707,-609,-602","-116,-314,-314,1176,-314,-314,-314,-314,-314,1186,647,646,650,582,227","579,578,577,587,580,-599,627,129,130,131,132,133,-599,590,232,625,-314","-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-608","733,-314,-314,-314,585,684,-314,221,222,-314,-609,-602,-314,595,594","598,597,-314,232,-314,591,-314,-314,232,-314,-314,-314,-314,-314,-599","-314,609,-314,228,611,254,-599,-599,-599,-599,254,-599,-599,-599,227","-599,-314,254,254,-314,-314,294,-109,-599,-314,-599,-599,-599,232,609","576,-314,611,-98,-118,-599,-599,748,-599,-599,-599,-599,-599,232,-315","561,227,609,-305,227,608,-315,759,226,765,-305,294,766,232,768,-315","232,224,771,-305,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599","-599,-599,-599,228,774,-599,-599,-599,775,-599,-599,227,254,-599,777","779,-599,-599,1152,-599,689,-599,790,-599,791,-599,-599,635,-599,-599","-599,-599,-599,-315,-599,228,-599,-305,228,129,130,131,132,133,251,-314","793,296,253,252,-599,795,-314,-599,-599,-599,-599,-704,-599,227,-599","-314,796,232,798,-599,672,678,-599,323,81,82,83,11,65,670,228,801,71","72,677,232,806,75,-700,73,74,76,33,34,79,80,129,130,131,132,133,84,31","30,114,113,115,116,807,582,21,579,578,577,-314,580,10,51,325,12,118","117,119,108,64,110,109,111,228,112,120,121,-315,104,105,47,48,46,-314","-315,-599,811,227,271,272,-314,781,-599,-315,557,-704,673,-700,669,-314","785,-599,43,477,668,36,-287,835,66,67,227,839,68,840,38,666,665,1157","50,-288,-700,662,254,853,270,269,1155,22,513,637,513,232,102,90,93,94","870,95,97,96,98,986,-315,871,629,91,101,628,-314,894,-599,590,228,85","251,92,106,107,253,252,44,45,323,81,82,83,11,65,870,897,418,71,72,899","290,228,75,-707,73,74,76,33,34,79,80,624,905,907,909,591,84,31,30,114","113,115,116,527,529,21,529,1004,759,232,613,10,51,325,12,118,117,119","108,64,110,109,111,612,112,120,121,227,104,105,47,48,46,227,1152,-707","296,-349,296,759,633,254,-707,635,-349,232,920,-703,602,635,-620,-707","43,-349,941,36,942,232,66,67,227,562,68,920,38,951,952,476,50,582,-707","579,578,577,254,580,477,22,232,558,552,232,102,90,93,94,296,95,97,96","98,986,228,366,962,91,101,366,228,232,-707,590,-349,85,232,92,106,107","-289,305,44,45,323,81,82,83,11,65,232,548,973,71,72,541,540,228,75,719","73,74,76,33,34,79,80,246,232,-83,135,591,84,31,30,114,113,115,116,232","232,21,1000,1004,1001,1002,1005,10,51,325,12,118,117,119,108,64,110","109,111,529,112,120,121,527,104,105,47,48,46,254,258,259,260,261,271","272,266,267,262,263,525,247,248,907,1011,264,265,232,43,3,245,36,587","759,66,67,513,1029,68,-287,38,251,590,257,50,253,252,1033,249,250,270","269,255,22,256,232,1036,1038,102,90,93,94,774,95,97,96,98,789,1041,1043","1043,91,101,232,268,598,597,1051,1053,85,591,92,106,107,1062,1063,44","45,323,81,82,83,11,65,1068,830,831,71,72,832,120,121,75,1069,73,74,76","33,34,79,80,129,130,131,132,133,84,31,30,114,113,115,116,1070,-290,21","232,232,232,1074,674,10,51,325,12,118,117,119,108,64,110,109,111,231","112,120,121,232,104,105,47,48,46,254,258,259,260,261,271,272,266,267","262,263,232,247,248,232,870,264,265,1082,43,481,480,36,232,1091,66,67","774,1094,68,1097,38,251,1099,257,50,253,252,1101,249,250,270,269,255","22,256,232,1103,478,102,90,93,94,1118,95,97,96,98,1119,1128,429,870","91,101,1138,268,1140,-260,,,85,,92,106,107,,,44,45,323,81,82,83,11,65",",,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,",",21,,,,,945,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121",",104,105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,247,248",",,264,265,,43,,,36,587,,66,67,,,68,,38,251,590,257,50,253,252,,249,250","270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,268,598","597,,,85,591,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,674,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45","323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,917,10,51,325,12,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267","262,263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253","252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,1133,21,579,578","577,,580,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,247,248,,","264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269","255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,232,268,,,,,85,,92","106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79","80,,,,,,84,31,30,114,113,115,116,,1133,21,579,578,577,,580,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45","323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262","263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252",",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,36",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45","323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262","263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252",",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,247,248,,,264,265,,43,,,327",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,268,,,,,85,,92,106,107,,,44,45","7,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,,10,51,9,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262","263,,247,248,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252",",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",268,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,582,21,579,578,577",",580,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,582,,579,578,577,,580,,781,,582,,579,578,577,,580,785,,43,",",327,,,66,67,,254,68,,38,,,,50,,781,,582,,579,578,577,22,580,785,781",",102,90,93,94,,95,97,96,98,,,251,,91,101,253,252,,249,250,,85,,92,106","107,,781,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79","80,,,,,,84,31,30,114,113,115,116,,,21,,,254,,,10,51,325,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261","271,272,251,,262,263,253,252,,249,250,264,265,,43,,,36,,,66,67,,,68",",38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,582,,579,578,577,85,580,92,106,107,,,44,45","323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,781,,,,,84,31","30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271,272,",",-729,-729,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252",",249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74","76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12","118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,-729","-729,-729,-729,271,272,,,-729,-729,,,,,,264,265,,43,,,327,,,66,67,,","68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83","11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115","116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121",",104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729,,,,,,264","265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255","22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107",",,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,",",84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64","110,109,111,,112,120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271","272,,,-729,-729,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253","252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,,,,85,,92,106,107,,,44,45,7,81,82,83,11,65,,,,71,72,,,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,9,12","118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258","259,260,261,271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36,,","66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81","82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,254,258,259,260,261,271,272,266,267,262,263,,-729","-729,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250","270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85",",92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34","79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261","271,272,266,,262,263,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257","50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,","10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47","48,46,254,,,,,,,,,,,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257","50,253,252,,249,250,,,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,","73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325","12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,254","258,259,260,261,271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36",",,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323","81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114","113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729",",,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250","270,269,255,22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85",",92,106,107,,,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34","79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,254,258,259,260,261","271,272,266,267,262,263,,-729,-729,,,264,265,,43,,,36,,,66,67,,,68,","38,251,,257,50,253,252,,249,250,270,269,255,22,256,,,,102,90,93,94,","95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,323,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,47,48,46,254,-729,-729,-729,-729,271,272,,,-729,-729,,,,,,264","265,,43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,270,269,255","22,256,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107",",,44,45,323,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,",",84,31,30,114,113,115,116,,,21,,,,,,10,51,325,12,118,117,119,108,64","110,109,111,,112,120,121,,104,105,47,48,46,254,,,,,,,,,,,,,,,,264,265",",43,,,36,,,66,67,,,68,,38,251,,257,50,253,252,,249,250,,,255,22,256",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,254,,,,,,,,,,,,,,,,264,265,,237,,,243,,,66,67,,,68,,,251,,257","50,253,252,,249,250,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,",",,,,,85,,92,106,107,-270,,44,45,,,,-270,-270,-270,,,-270,-270,-270,","-270,254,,,,,,,-270,-270,-270,,,,,,,264,265,,-270,-270,,-270,-270,-270","-270,-270,,,,,,251,,511,460,253,252,512,249,250,,,,,,169,170,,166,148","149,150,157,154,156,,,151,152,-270,,,171,172,158,159,-270,,,,,296,-270",",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,-270","-270,174,,,,,,,,,,,,,-270,,,-270,,,,,-270,81,82,83,11,65,,-270,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,","10,51,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,254,,,,,,,,,,,,,,,,264,265,,43,,,36,,,66,67,,,68,,38,251,,257,50","253,252,,249,250,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81","82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84","31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111","317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33","34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,",",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-432,,44,45,,,,-432,-432,-432",",,-432,-432,-432,,-432,,,,,,,,-432,-432,-432,-432,,,,,,,,,-432,-432",",-432,-432,-432,-432,-432,,,,,,,,,,,,,,,,,,,,,,,-432,-432,-432,-432","-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,,,-432,-432,-432,",",-432,,296,-432,,,-432,-432,,-432,,-432,,-432,,-432,-432,,-432,-432","-432,-432,-432,-321,-432,-432,-432,,,,-321,-321,-321,,,-321,-321,-321",",-321,-432,,,-432,-432,,-432,-321,-432,-321,-321,,,,,-432,,,,-321,-321",",-321,-321,-321,-321,-321,,,,,,,,,,,,,,,,,,,,,,,-321,-321,-321,-321","-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,,,-321,-321,-321,",",-321,,305,-321,,,-321,-321,,-321,,-321,,-321,,-321,-321,,-321,-321","-321,-321,-321,,-321,,-321,,,,,,,,,,,,,,-321,,,-321,-321,,-321,,-321","81,82,83,,65,,-321,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317","112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,",",68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34","79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,","237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,",",118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,",",,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242",",,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,,,,85,,92,106,107,-306,,44,45,,,,-306,-306,-306,,,-306","-306,-306,,-306,,,,,,,,-306,,-306,-306,-306,,,,114,113,115,116,-306","-306,,-306,-306,-306,-306,-306,,,,,118,117,119,,,,,,,,,,,104,105,,,348","-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,,102,90,93,94,,95,97,96,98,,,","-306,91,101,-306,-306,-306,-306,,-306,85,-306,92,106,107,,-306,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,21,,,,,,10,51,,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,",",50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111","317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,314,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,",",91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345","79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,","237,,,243,,,66,67,,,68,,,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,",",,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45",",75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51",",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,",",,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,126,,,,,125,85,,92,106,107,,,44,45,81","82,83,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,21,,,,,,10,51,9,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,",",50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,418,85",",92,106,107,,,44,45,81,82,83,,65,,,,71,72,,,,75,,73,74,76,33,34,79,80",",,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79","80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,","243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,",",,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34","79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,","10,51,,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21",",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,232,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,","51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,",",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,","244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,","51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,",",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,","244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,","51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46",",,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,312,,50,,,318,,,,,,242",",,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,742,,,,50,,",",,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50",",,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,",",,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,515,,75,,73,74,76","33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,",",,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,",",,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,",",,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,232,,,81,82,83,85,65","92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79","80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,","10,51,,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,",",,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80",",,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,","243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33","34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,561,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45",",75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,",",,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,",",,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,",",,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80",",,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64","110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,742,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,515,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,",",,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,",",,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45",",75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,","51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,",",,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244",",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244",",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,312,,50,,","318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85","65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317","112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,",",68,,742,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345","79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72,,,,75",",73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51",",12,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,",",,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,",",,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,",",,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113","115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50",",,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85","65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",844,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,",",,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,33","34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,10,51,,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76","344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,",",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,",",,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,","102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244",",,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104,105,47","48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318",",,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314",",,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,",",66,67,,,68,,,,,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,",",,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,",",,,,237,,,243,,,66,67,,,68,,742,,,,50,,,318,,,,,,242,,,,,102,315,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-270,,44,45,,,,-270","-270,-270,,,-270,-270,-270,,-270,,,,,,,,-270,-270,-270,-270,,,,,,,,","-270,-270,,-270,-270,-270,-270,-270,,,,,,,,,,,,,,,,,,,,,,,-270,-270","-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,,,-270,-270","-270,,,-270,,296,-270,,,-270,-270,,-270,,-270,,-270,,-270,-270,,-270","-270,-270,-270,-270,,-270,-270,-270,,,,,,,,,,,,,,-270,,,-270,-270,,-270",",-270,81,82,83,,65,,-270,,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66","67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,,,,85,,92,106,107,-708,,44,45,,,,-708,-708,-708,,,-708,-708,-708",",-708,,,,,,,,-708,-708,-708,-708,-708,,,,,,,,-708,-708,,-708,-708,-708","-708,-708,,,,,,,,,,,,,,,,,,,,,,,-708,-708,-708,-708,-708,-708,-708,-708","-708,-708,-708,-708,-708,-708,,,-708,-708,-708,,,-708,,,-708,,,-708","-708,,-708,,-708,,-708,,-708,-708,,-708,-708,-708,-708,-708,,-708,-708","-708,,,,,,,,,,,,,,-708,,,-708,-708,-708,-708,,-708,-709,-708,,,,,-708","-709,-709,-709,,,-709,-709,-709,,-709,,,,,,,,-709,-709,-709,-709,-709",",,,,,,,-709,-709,,-709,-709,-709,-709,-709,,,,,,,,,,,,,,,,,,,,,,,-709","-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,-709,,,-709","-709,-709,,,-709,,,-709,,,-709,-709,,-709,,-709,,-709,,-709,-709,,-709","-709,-709,-709,-709,,-709,-709,-709,,,,,,,,,,,,,,-709,,,-709,-709,-709","-709,,-709,,-709,,81,82,83,-709,65,,,,71,72,,,,75,,73,74,76,344,345","79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,",",237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74","76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,,,,,,51,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,",",,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118","117,119,108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,",",,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,","102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,",",,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,",",50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67",",,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,",",,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243",",,66,67,,,68,,,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79","80,,,,,,84,31,30,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64","110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237",",,243,,,66,67,,,68,,314,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95","97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,44,45,81,82,83,11,65,,,,71","72,,,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,21,,",",,,10,51,325,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,418,85,,92,106,107,,,44","45,81,82,83,,65,,,,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109","111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,",",66,67,,,68,,,,312,,50,,,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344","345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,,,,,51,,,118,117,119","108,64,110,109,111,317,112,120,121,,104,105,47,48,46,,,,,,,,,,,,,,,",",,,,237,,,243,,,66,67,,,68,,742,,312,,50,,,318,,,,,,242,,,,,102,315","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244,,,",",,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48,46",",,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,,,,242,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116,,,244",",,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,47,48","46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,434,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,22",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,,,,,50,,,,,,,,,242",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30,114,113,115,116",",,244,,,,,,,51,,,118,117,119,108,64,110,109,111,317,112,120,121,,104","105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68,,314,,312,,50",",,318,,,,,,242,,,,,102,315,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31,30","114,113,115,116,,,244,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",,,,,50,,,,,,,,,242,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,84,31","30,114,113,115,116,,,21,,,,,,,51,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,47,48,46,,,,,,,,,,,,,,,,,,,,237,,,243,,,66,67,,,68",",,,,,50,,,,,,,,,22,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,44,45,,75,,73,74,76,344,345,79,80,,,,,,84","339,347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,1105,,,243,,,66,67",",,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339","347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,393,,,36,,,66,67,,,68",",38,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347","114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,",",,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85","65,92,106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114","113,115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,",",,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113","115,116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,",",,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106","107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,331,,,,,,,,,,,",",,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106","107,71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,,,348,,,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,,,,,,",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116",",,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105",",,348,,,,,,,,,,,,,,,,,,,,1105,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244",",,,,,,340,,,118,117,119,398,64,110,109,399,,112,120,121,,104,105,,,348",",,,,,,,,,,,,,,,,405,,,400,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72",",,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244",",,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,348",",,,,,,,,,,,,,,,,,,,336,,,332,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,","75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,",",,,340,,,118,117,119,398,64,110,109,399,,112,120,121,,104,105,,,348",",,,,,,,,,,,,,,,,,,,400,,,243,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,","75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115,116,,,244,,,",",,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,348",",,,,,,,,,,,,,,,,,,,336,,,243,,,66,67,,,68,,,582,,579,578,577,587,580",",,,,,,,,590,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,350,,585,85,,92","106,107,81,82,83,,65,598,597,,71,72,591,,,75,,73,74,76,344,345,79,80",",,,,,84,339,347,114,113,115,116,,,244,,,,,,,340,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,,,348,,,,,,,,,,,,,,,,,,,,336,,,243",",,66,67,,,68,,,582,,579,578,577,587,580,,,,,,,,,590,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,543,,585,85,,92,106,107,81,82,83,,65,598,597",",71,72,591,,,75,,73,74,76,344,345,79,80,,,,,,84,339,347,114,113,115","116,,,244,,,,,,,340,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,,,348,,,,,,,,,,,,,,,,,,,,1111,,,243,,,66,67,,,68,,,,,,,,,,,,,,,",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,185,196","186,209,182,202,192,191,212,213,207,190,189,184,210,214,215,194,183","197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,","180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169,170,,166,148,149","150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162,,147","168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,,,,,,,,,,101","185,196,186,209,182,202,192,191,212,213,207,190,189,184,210,214,215","194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199",",,,,,180,187,178,179,175,176,177,138,140,137,,139,,,,,,,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163","162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,",",,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189,184","210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193","181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169","170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,",",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174","102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190","189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198","208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,",",,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167","146,,,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213","207,190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206","284,283,285,282,181,200,199,,,,,,180,187,178,179,279,280,281,277,140","110,109,278,,112,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152",",,,171,172,158,159,,,,,,289,,,,,,,,163,162,,147,168,165,164,173,160","161,155,153,145,167,146,,,174,114,113,115,116,,,,,,,,,,,,,118,117,119","719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,",",,721,,,703,,,585,701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102","90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,","707,708,,118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348",",,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,595,594,598,597",",,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116",",,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579,578,577,587","580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,",",,,,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114","113,115,116,,,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579","578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585","701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96","98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117,119","719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,",",,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,,,720,,,,102,90,93","94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708",",118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590",",,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,885,,,,,598,597,,,,591,,,","720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92","106,107,,,707,708,,118,117,119,719,,,582,722,579,578,577,587,580,104","105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,,,598","597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,","92,106,107,,,707,708,185,196,186,209,182,202,192,191,212,213,207,190","189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198","208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,",",,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167","146,,,174,114,113,115,116,,,582,,579,578,577,587,580,,,,118,117,119","719,,590,,722,986,,,,,104,105,,,348,590,,,,,,,,,585,,,,,,,,,,721,598","597,703,,,591,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94,,95","97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118","117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,",",,,,,,,,,,721,,,703,,,585,701,,,702,,885,,,595,594,598,597,,,,591,,",",720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,232,114,113,115,116,,85",",92,106,107,,,707,708,,,118,117,119,719,,,582,722,579,578,577,587,580","104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,595","594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114","113,115,116,,,85,,92,106,107,,,707,708,,118,117,119,719,,,582,722,579","578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,,,,721,,,703,,,585","701,,,702,,,,,595,594,598,597,,,,591,,,,720,,,,102,90,93,94,,95,97,96","98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117,119","719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,,,,,",",,721,,,703,,,585,701,,,702,,999,,,,,598,597,,,,591,,,,720,,,,102,90","93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707","708,,118,117,119,719,,,,722,986,,,,,104,105,,,348,590,,,,,,,,,,,,,,",",,,,721,,,703,,,,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94",",95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,","118,117,119,719,,,,722,986,,,,,104,105,,,348,590,,,,,,,,,,,,,,,,,,,721",",,703,,,,701,,,702,,885,,,,,,,591,,,,,,,720,,,,102,987,93,94,,95,97","96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707,708,,118,117","119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,,590,,,,,,,,,",",,,,,,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,,,720,,,,102,90","93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,707","708,,118,117,119,719,,,582,722,579,578,577,587,580,104,105,,,348,,,","590,,,,,,,,,,,,,,,,721,,,703,,,585,701,,,702,,,,,,,598,597,,,,591,,",",720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92","106,107,,,707,708,,118,117,119,719,,,,722,,,,,,104,105,,,348,,,,,,,","114,113,115,116,,,,,,,,,721,,,703,118,117,119,701,,,702,,885,,,,,104","105,,,348,,,,,720,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,","92,106,107,,,707,708,582,,579,578,577,587,580,,,,,102,90,93,94,590,95","97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,585,641,,,,118","117,119,,595,594,598,597,,,,591,,104,105,,,348,114,113,115,116,,,,,",",,,,,,,118,117,119,,,,,,,,,,,104,105,,,348,,,,,,,,,,,,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,,,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,846,460,,,847,,85,,92,106,107,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,",",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,814,460,174",",815,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172","158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153","145,167,146,456,460,174,,457,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165","164,173,160,161,155,153,145,167,146,463,467,174,,462,,,,,,,,169,170",",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,",",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,816,467","174,,817,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171","172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155","153,145,167,146,755,467,174,,756,,,,,,,,169,170,,166,148,149,150,157","154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168","165,164,173,160,161,155,153,145,167,146,690,460,174,,691,,,,,,,,169","170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296",",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,1190","467,174,,1189,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152",",,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160","161,155,153,145,167,146,819,467,174,,820,,,,,,,,169,170,,166,148,149","150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162",",147,168,165,164,173,160,161,155,153,145,167,146,690,460,174,,691,,",",,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159",",,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167","146,692,467,174,,693,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151","152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173","160,161,155,153,145,167,146,752,460,174,,753,,,,,,,,169,170,,166,148","149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163","162,,147,168,165,164,173,160,161,155,153,145,167,146,511,460,174,,512",",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145","167,146,1193,460,174,,1194,,,,,,,,169,170,,166,148,149,150,157,154,156",",,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164","173,160,161,155,153,145,167,146,692,467,174,,693,,,,,,,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,",",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,1195,467,174",",1196,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172","158,159,,,,,,296,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153","145,167,146,849,467,174,,848,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,296,,,,,,,,163,162,,147,168,165","164,173,160,161,155,153,145,167,146,,582,174,579,578,577,587,580,,582",",579,578,577,587,580,590,,,,,,,,590,,,,,,,,,,,,,,585,,,,,,,,585,595","594,598,597,,,,591,595,594,598,597,,,,591"],racc_action_table=arr=$$$("::","Array").$new(28007,nil),idx=0,$send(clist,"each",[],(($Ruby30$8=function(str){var $$9,self=null==$Ruby30$8.$$s?this:$Ruby30$8.$$s;return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(($$9=function(i){var $writer;null==$$9.$$s||$$9.$$s;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),idx=$rb_plus(idx,1)}).$$s=self,$$9.$$arity=1,$$9))}).$$s=$Ruby30__reduce_none$543,$Ruby30$8.$$arity=1,$Ruby30$8)),clist=["849,847,1052,999,1056,827,394,849,849,849,762,762,619,849,849,285,849","46,46,877,21,1109,285,816,849,849,415,1102,414,702,691,628,817,1105","956,988,849,849,812,849,849,849,849,849,1108,1158,702,383,1032,1199","1056,1196,137,988,622,815,1006,137,137,1199,847,21,622,814,391,877,849","849,849,849,849,849,849,849,849,849,849,849,849,849,285,390,849,849","849,999,849,849,816,691,849,1112,415,849,414,46,46,817,849,1006,849","441,849,849,762,849,849,849,849,849,111,849,849,849,827,394,619,111","111,111,1052,619,111,111,111,1052,111,849,1196,752,849,849,816,849,111","849,111,111,111,1109,628,817,849,956,1109,849,111,111,1054,111,111,111","111,111,1195,1206,812,1193,1194,812,441,812,1108,1158,815,383,1032,1108","1158,1196,383,1032,814,391,1196,51,111,111,111,111,111,111,111,111,111","111,111,111,111,111,390,382,111,111,111,752,111,111,730,970,111,43,321","111,111,238,111,321,111,1112,111,872,111,111,1112,111,111,111,111,111","848,111,1111,111,69,638,638,848,848,848,1061,1195,1061,848,848,752,848","111,752,1114,111,111,111,111,848,111,873,111,472,472,752,872,111,800","800,111,848,848,970,848,848,848,848,848,238,592,1054,508,508,1115,755","1054,1195,1206,52,1193,1194,1195,1206,29,1193,1194,873,592,1116,730","848,848,848,848,848,848,848,848,848,848,848,848,848,848,341,1117,848","848,848,333,848,848,40,382,848,69,333,848,382,914,348,348,848,638,848","333,848,848,638,848,848,848,848,848,52,848,692,848,25,755,755,690,846","692,692,692,472,29,692,692,692,848,692,600,848,848,1129,848,600,848","692,692,692,692,692,508,848,1130,341,848,29,753,692,692,333,692,692","692,692,692,755,334,1139,755,747,914,653,284,334,1076,1141,341,1144","1088,284,755,747,334,348,348,690,846,692,692,692,692,692,692,692,692","692,692,692,692,692,692,53,352,692,692,692,655,692,692,1145,914,692","400,914,692,692,400,692,1146,692,478,692,753,692,692,914,692,692,692","692,692,334,692,692,692,653,653,284,1076,1076,1076,531,1088,1088,409","653,1147,410,692,352,413,692,692,692,692,1076,692,53,692,1088,693,352","753,692,236,753,692,693,693,693,655,655,693,693,693,335,693,753,1149","478,655,876,335,283,693,876,693,693,693,700,283,335,869,399,700,1154","693,693,700,693,693,693,693,693,17,531,531,531,409,409,409,410,410,410","413,413,413,675,235,387,5,1164,531,236,387,5,693,693,693,693,693,693","693,693,693,693,693,693,693,693,335,41,693,693,693,399,693,693,283,1170","693,869,399,693,693,412,693,399,693,1175,693,399,693,693,675,693,693","693,693,693,960,693,15,693,721,960,675,235,721,907,399,907,907,907,907","907,457,693,41,282,693,693,693,693,907,693,282,693,1189,463,41,456,693","1055,1055,693,463,463,463,1190,399,378,463,463,378,463,907,16,16,412","412,412,281,463,463,907,907,907,907,281,1165,1165,907,457,88,463,463","1192,463,463,463,463,463,14,42,457,88,366,456,366,366,366,366,366,282","416,88,12,907,9,456,1131,366,1197,1131,463,463,463,463,463,463,463,463","463,463,463,463,463,463,1202,19,463,463,463,366,463,463,281,1203,463","411,42,463,366,366,366,366,463,1204,463,366,463,463,42,463,463,463,463","463,462,463,463,463,704,704,1205,462,462,462,416,416,416,462,462,280","462,463,19,3,463,463,280,463,462,463,279,278,774,774,19,366,463,279","278,463,462,462,1211,462,462,462,462,462,1217,411,411,411,768,392,768","768,768,768,768,277,392,371,371,371,371,371,277,768,516,392,462,462","462,462,462,462,462,462,462,462,462,462,462,462,280,517,462,462,462","768,462,462,381,381,462,279,278,462,768,768,768,768,462,518,462,768","462,462,522,462,462,462,462,462,108,462,799,462,392,799,491,108,108","108,277,490,108,108,108,276,108,462,489,488,462,462,276,462,108,462","108,108,108,538,375,768,462,375,539,462,108,108,542,108,108,108,108","108,544,548,549,18,374,337,27,374,548,553,18,563,337,27,564,567,568","548,569,18,570,337,108,108,108,108,108,108,108,108,108,108,108,108,108","108,276,571,108,108,108,573,108,108,1151,487,108,574,584,108,108,1151","108,474,108,596,108,599,108,108,1151,108,108,108,108,108,548,108,18","108,337,27,536,536,536,536,536,487,756,601,464,487,487,108,603,756,108","108,108,108,756,108,440,108,756,604,605,606,108,440,455,108,818,818","818,818,818,818,440,1151,616,818,818,454,452,620,818,398,818,818,818","818,818,818,818,324,324,324,324,324,818,818,818,818,818,818,818,621","585,818,585,585,585,756,585,818,818,818,818,818,818,818,818,818,818","818,818,440,818,818,818,631,818,818,818,818,818,820,631,398,623,353","49,49,820,585,398,631,353,820,442,398,438,820,585,398,818,353,435,818","433,650,818,818,1110,658,818,660,818,432,430,1110,818,667,398,424,486","676,49,49,1110,818,681,404,686,694,818,818,818,818,695,818,818,818,818","1074,631,697,395,818,818,393,820,720,398,1074,353,818,486,818,818,818","486,486,818,818,823,823,823,823,823,823,723,724,389,823,823,727,729","1110,823,819,823,823,823,823,823,823,823,388,735,736,737,1074,823,823","823,823,823,823,823,739,741,823,379,1074,749,751,377,823,823,823,823","823,823,823,823,823,823,823,823,376,823,823,823,1104,823,823,823,823","823,402,1104,819,754,54,757,758,402,761,819,1104,54,372,764,819,368","402,364,819,823,54,783,823,784,786,823,823,234,362,823,802,823,808,809","234,823,785,819,785,785,785,358,785,234,823,813,356,349,822,823,823","823,823,347,823,823,823,823,886,1104,343,826,823,823,342,402,828,819","886,54,823,340,823,823,823,843,339,823,823,834,834,834,834,834,834,845","336,854,834,834,330,329,234,834,870,834,834,834,834,834,834,834,23,328","326,325,886,834,834,834,834,834,834,834,878,879,834,883,886,884,885","888,834,834,834,834,834,834,834,834,834,834,834,834,313,834,834,834","310,834,834,834,834,834,23,23,23,23,23,23,23,23,23,23,23,309,23,23,900","903,23,23,904,834,1,23,834,771,913,834,834,295,918,834,921,834,23,771","23,834,23,23,922,23,23,23,23,23,834,23,925,927,928,834,834,834,834,930","834,834,834,834,932,934,935,937,834,834,940,23,771,771,947,950,834,771","834,834,834,957,959,834,834,1010,1010,1010,1010,1010,1010,966,646,646","1010,1010,646,646,646,1010,967,1010,1010,1010,1010,1010,1010,1010,8","8,8,8,8,1010,1010,1010,1010,1010,1010,1010,968,969,1010,979,980,981","982,445,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010","244,1010,1010,1010,991,1010,1010,1010,1010,1010,445,445,445,445,445","445,445,445,445,445,445,992,445,445,993,997,445,445,998,1010,240,239","1010,1003,1013,1010,1010,1014,1016,1010,1017,1010,445,1018,445,1010","445,445,1020,445,445,445,445,445,1010,445,1021,1022,237,1010,1010,1010","1010,1048,1010,1010,1010,1010,1049,1065,216,1075,1010,1010,1083,445","1085,445,,,1010,,1010,1010,1010,,,1010,1010,615,615,615,615,615,615",",,,615,615,,,,615,,615,615,615,615,615,615,615,,,,,,615,615,615,615","615,615,615,,,615,,,,,794,615,615,615,615,615,615,615,615,615,615,615","615,,615,615,615,,615,615,615,615,615,794,794,794,794,794,794,794,794","794,794,794,,794,794,,,794,794,,615,,,615,1091,,615,615,,,615,,615,794","1091,794,615,794,794,,794,794,794,794,794,615,794,,,,615,615,615,615",",615,615,615,615,,,,,615,615,,794,1091,1091,,,615,1091,615,615,615,",",615,615,618,618,618,618,618,618,,,,618,618,,,,618,,618,618,618,618","618,618,618,,,,,,618,618,618,618,618,618,618,,,618,,,,,451,618,618,618","618,618,618,618,618,618,618,618,618,,618,618,618,,618,618,618,618,618","451,451,451,451,451,451,451,451,451,451,451,,451,451,,,451,451,,618",",,618,,,618,618,,,618,,618,451,,451,618,451,451,,451,451,451,451,451","618,451,,,,618,618,618,618,,618,618,618,618,,,,,618,618,,451,,,,,618",",618,618,618,,,618,618,1029,1029,1029,1029,1029,1029,,,,1029,1029,,",",1029,,1029,1029,1029,1029,1029,1029,1029,,,,,,1029,1029,1029,1029,1029","1029,1029,,,1029,,,,,763,1029,1029,1029,1029,1029,1029,1029,1029,1029","1029,1029,1029,,1029,1029,1029,,1029,1029,1029,1029,1029,763,763,763","763,763,763,763,763,763,763,763,,763,763,,,763,763,,1029,,,1029,,,1029","1029,,,1029,,1029,763,,763,1029,763,763,,763,763,763,763,763,1029,763",",,,1029,1029,1029,1029,,1029,1029,1029,1029,,,,,1029,1029,,763,,,,,1029",",1029,1029,1029,,,1029,1029,218,218,218,218,218,218,,,,218,218,,,,218",",218,218,218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,1174","218,1174,1174,1174,,1174,218,218,218,218,218,218,218,218,218,218,218","218,,218,218,218,,218,218,218,218,218,505,505,505,505,505,505,505,505","505,505,505,,505,505,,,505,505,,218,,,218,,,218,218,,,218,,218,505,","505,218,505,505,,505,505,505,505,505,218,505,,,,218,218,218,218,,218","218,218,218,,,,,218,218,505,505,,,,,218,,218,218,218,,,218,218,1066","1066,1066,1066,1066,1066,,,,1066,1066,,,,1066,,1066,1066,1066,1066,1066","1066,1066,,,,,,1066,1066,1066,1066,1066,1066,1066,,1068,1066,1068,1068","1068,,1068,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066",",1066,1066,1066,,1066,1066,1066,1066,1066,851,851,851,851,851,851,851","851,851,851,851,,851,851,,,851,851,,1066,,,1066,,,1066,1066,,,1066,","1066,851,,851,1066,851,851,,851,851,851,851,851,1066,851,,,,1066,1066","1066,1066,,1066,1066,1066,1066,,,,,1066,1066,,851,,,,,1066,,1066,1066","1066,,,1066,1066,1067,1067,1067,1067,1067,1067,,,,1067,1067,,,,1067",",1067,1067,1067,1067,1067,1067,1067,,,,,,1067,1067,1067,1067,1067,1067","1067,,,1067,,,,,,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067","1067,,1067,1067,1067,,1067,1067,1067,1067,1067,307,307,307,307,307,307","307,307,307,307,307,,307,307,,,307,307,,1067,,,1067,,,1067,1067,,,1067",",1067,307,,307,1067,307,307,,307,307,307,307,307,1067,307,,,,1067,1067","1067,1067,,1067,1067,1067,1067,,,,,1067,1067,,307,,,,,1067,,1067,1067","1067,,,1067,1067,639,639,639,639,639,639,,,,639,639,,,,639,,639,639","639,639,639,639,639,,,,,,639,639,639,639,639,639,639,,,639,,,,,,639","639,639,639,639,639,639,639,639,639,639,639,,639,639,639,,639,639,639","639,639,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,,1050","1050,,,1050,1050,,639,,,639,,,639,639,,,639,,639,1050,,1050,639,1050","1050,,1050,1050,1050,1050,1050,639,1050,,,,639,639,639,639,,639,639","639,639,,,,,639,639,,1050,,,,,639,,639,639,639,,,639,639,386,386,386","386,386,386,,,,386,386,,,,386,,386,386,386,386,386,386,386,,,,,,386","386,386,386,386,386,386,,,386,,,,,,386,386,386,386,386,386,386,386,386","386,386,386,,386,386,386,,386,386,386,386,386,560,560,560,560,560,560","560,560,560,560,560,,560,560,,,560,560,,386,,,386,,,386,386,,,386,,386","560,,560,386,560,560,,560,560,560,560,560,386,560,,,,386,386,386,386",",386,386,386,386,,,,,386,386,,560,,,,,386,,386,386,386,,,386,386,36","36,36,36,36,36,,,,36,36,,,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36","36,36,36,,,36,,,,,,36,36,36,36,36,36,36,36,36,36,36,36,,36,36,36,,36","36,36,36,36,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,","1009,1009,,,1009,1009,,36,,,36,,,36,36,,,36,,36,1009,,1009,36,1009,1009",",1009,1009,1009,1009,1009,36,1009,,,,36,36,36,36,,36,36,36,36,,,,,36","36,,1009,,,,,36,,36,36,36,,,36,36,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,,135,135,135,135,135,1027,1027,1027,1027,1027,1027,1027,1027,1027","1027,1027,,1027,1027,,,1027,1027,,135,,,135,,,135,135,,,135,,135,1027",",1027,135,1027,1027,,1027,1027,1027,1027,1027,135,1027,,,,135,135,135","135,,135,135,135,135,,,,,135,135,,1027,,,,,135,,135,135,135,,,135,135","332,332,332,332,332,332,,,,332,332,,,,332,,332,332,332,332,332,332,332",",,,,,332,332,332,332,332,332,332,,941,332,941,941,941,,941,332,332,332","332,332,332,332,332,332,332,332,332,,332,332,332,,332,332,332,332,332","781,,781,781,781,,781,,941,,942,,942,942,942,,942,941,,332,,,332,,,332","332,,502,332,,332,,,,332,,781,,1119,,1119,1119,1119,332,1119,781,942",",332,332,332,332,,332,332,332,332,,,502,,332,332,502,502,,502,502,,332",",332,332,332,,1119,332,332,385,385,385,385,385,385,,,,385,385,,,,385",",385,385,385,385,385,385,385,,,,,,385,385,385,385,385,385,385,,,385",",,501,,,385,385,385,385,385,385,385,385,385,385,385,385,,385,385,385",",385,385,385,385,385,503,503,503,503,503,503,503,501,,503,503,501,501",",501,501,503,503,,385,,,385,,,385,385,,,385,,385,503,,503,385,503,503",",503,503,503,503,503,385,503,,,,385,385,385,385,,385,385,385,385,,,",",385,385,,1118,,1118,1118,1118,385,1118,385,385,385,,,385,385,1120,1120","1120,1120,1120,1120,,,,1120,1120,,,,1120,,1120,1120,1120,1120,1120,1120","1120,1118,,,,,1120,1120,1120,1120,1120,1120,1120,,,1120,,,,,,1120,1120","1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,,1120,1120,1120,,1120","1120,1120,1120,1120,499,499,499,499,499,499,499,,,499,499,,,,,,499,499",",1120,,,1120,,,1120,1120,,,1120,,1120,499,,499,1120,499,499,,499,499","499,499,499,1120,499,,,,1120,1120,1120,1120,,1120,1120,1120,1120,,,",",1120,1120,,,,,,,1120,,1120,1120,1120,,,1120,1120,327,327,327,327,327","327,,,,327,327,,,,327,,327,327,327,327,327,327,327,,,,,,327,327,327","327,327,327,327,,,327,,,,,,327,327,327,327,327,327,327,327,327,327,327","327,,327,327,327,,327,327,327,327,327,500,500,500,500,500,500,500,,","500,500,,,,,,500,500,,327,,,327,,,327,327,,,327,,327,500,,500,327,500","500,,500,500,500,500,500,327,500,,,,327,327,327,327,,327,327,327,327",",,,,327,327,,,,,,,327,,327,327,327,,,327,327,908,908,908,908,908,908",",,,908,908,,,,908,,908,908,908,908,908,908,908,,,,,,908,908,908,908","908,908,908,,,908,,,,,,908,908,908,908,908,908,908,908,908,908,908,908",",908,908,908,,908,908,908,908,908,498,498,498,498,498,498,498,,,498","498,,,,,,498,498,,908,,,908,,,908,908,,,908,,908,498,,498,908,498,498",",498,498,498,498,498,908,498,,,,908,908,908,908,,908,908,908,908,,,",",908,908,,,,,,,908,,908,908,908,,,908,908,1166,1166,1166,1166,1166,1166",",,,1166,1166,,,,1166,,1166,1166,1166,1166,1166,1166,1166,,,,,,1166,1166","1166,1166,1166,1166,1166,,,1166,,,,,,1166,1166,1166,1166,1166,1166,1166","1166,1166,1166,1166,1166,,1166,1166,1166,,1166,1166,1166,1166,1166,496","496,496,496,496,496,496,,,496,496,,,,,,496,496,,1166,,,1166,,,1166,1166",",,1166,,1166,496,,496,1166,496,496,,496,496,496,496,496,1166,496,,,","1166,1166,1166,1166,,1166,1166,1166,1166,,,,,1166,1166,,,,,,,1166,,1166","1166,1166,,,1166,1166,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2","2,2,2,2,2,2,,,2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,2,2,2,355,355","355,355,355,355,355,355,355,355,355,,355,355,,,355,355,,2,,,2,,,2,2",",,2,,2,355,,355,2,355,355,,355,355,355,355,355,2,355,,,,2,2,2,2,,2,2","2,2,,,,,2,2,,,,,,,2,,2,2,2,,,2,2,370,370,370,370,370,370,,,,370,370",",,,370,,370,370,370,370,370,370,370,,,,,,370,370,370,370,370,370,370",",,370,,,,,,370,370,370,370,370,370,370,370,370,370,370,370,,370,370","370,,370,370,370,370,370,354,354,354,354,354,354,354,354,354,354,354",",354,354,,,354,354,,370,,,370,,,370,370,,,370,,370,354,,354,370,354","354,,354,354,354,354,354,370,354,,,,370,370,370,370,,370,370,370,370",",,,,370,370,,,,,,,370,,370,370,370,,,370,370,369,369,369,369,369,369",",,,369,369,,,,369,,369,369,369,369,369,369,369,,,,,,369,369,369,369","369,369,369,,,369,,,,,,369,369,369,369,369,369,369,369,369,369,369,369",",369,369,369,,369,369,369,369,369,504,504,504,504,504,504,504,504,,504","504,,,,,,504,504,,369,,,369,,,369,369,,,369,,369,504,,504,369,504,504",",504,504,504,504,504,369,504,,,,369,369,369,369,,369,369,369,369,,,",",369,369,,,,,,,369,,369,369,369,,,369,369,920,920,920,920,920,920,,",",920,920,,,,920,,920,920,920,920,920,920,920,,,,,,920,920,920,920,920","920,920,,,920,,,,,,920,920,920,920,920,920,920,920,920,920,920,920,","920,920,920,,920,920,920,920,920,559,,,,,,,,,,,,,,,,559,559,,920,,,920",",,920,920,,,920,,920,559,,559,920,559,559,,559,559,,,559,920,559,,,","920,920,920,920,,920,920,920,920,,,,,920,920,,,,,,,920,,920,920,920",",,920,920,363,363,363,363,363,363,,,,363,363,,,,363,,363,363,363,363","363,363,363,,,,,,363,363,363,363,363,363,363,,,363,,,,,,363,363,363","363,363,363,363,363,363,363,363,363,,363,363,363,,363,363,363,363,363","484,484,484,484,484,484,484,484,484,484,484,,484,484,,,484,484,,363",",,363,,,363,363,,,363,,363,484,,484,363,484,484,,484,484,484,484,484","363,484,,,,363,363,363,363,,363,363,363,363,,,,,363,363,,,,,,,363,,363","363,363,,,363,363,1107,1107,1107,1107,1107,1107,,,,1107,1107,,,,1107",",1107,1107,1107,1107,1107,1107,1107,,,,,,1107,1107,1107,1107,1107,1107","1107,,,1107,,,,,,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107","1107,,1107,1107,1107,,1107,1107,1107,1107,1107,497,497,497,497,497,497","497,,,497,497,,,,,,497,497,,1107,,,1107,,,1107,1107,,,1107,,1107,497",",497,1107,497,497,,497,497,497,497,497,1107,497,,,,1107,1107,1107,1107",",1107,1107,1107,1107,,,,,1107,1107,,,,,,,1107,,1107,1107,1107,,,1107","1107,955,955,955,955,955,955,,,,955,955,,,,955,,955,955,955,955,955","955,955,,,,,,955,955,955,955,955,955,955,,,955,,,,,,955,955,955,955","955,955,955,955,955,955,955,955,,955,955,955,,955,955,955,955,955,485","485,485,485,485,485,485,485,485,485,485,,485,485,,,485,485,,955,,,955",",,955,955,,,955,,955,485,,485,955,485,485,,485,485,485,485,485,955,485",",,,955,955,955,955,,955,955,955,955,,,,,955,955,,,,,,,955,,955,955,955",",,955,955,961,961,961,961,961,961,,,,961,961,,,,961,,961,961,961,961","961,961,961,,,,,,961,961,961,961,961,961,961,,,961,,,,,,961,961,961","961,961,961,961,961,961,961,961,961,,961,961,961,,961,961,961,961,961","495,495,495,495,495,495,495,,,495,495,,,,,,495,495,,961,,,961,,,961","961,,,961,,961,495,,495,961,495,495,,495,495,495,495,495,961,495,,,","961,961,961,961,,961,961,961,961,,,,,961,961,,,,,,,961,,961,961,961",",,961,961,243,243,243,243,243,243,,,,243,243,,,,243,,243,243,243,243","243,243,243,,,,,,243,243,243,243,243,243,243,,,243,,,,,,243,243,243","243,243,243,243,243,243,243,243,243,,243,243,243,,243,243,243,243,243","506,,,,,,,,,,,,,,,,506,506,,243,,,243,,,243,243,,,243,,243,506,,506","243,506,506,,506,506,,,506,243,506,,,,243,243,243,243,,243,243,243,243",",,,,243,243,,,,132,132,132,243,132,243,243,243,132,132,243,243,,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,492,,,,,,,,,,,,,,,,492,492,,132,,,132,,,132,132,,,132,,,492",",492,132,492,492,,492,492,,,,132,,,,,132,132,132,132,,132,132,132,132",",,,,132,132,,,,,,,132,,132,132,132,510,,132,132,,,,510,510,510,,,510","510,510,,510,494,,,,,,,510,510,510,,,,,,,494,494,,510,510,,510,510,510","510,510,,,,,,494,,292,292,494,494,292,494,494,,,,,,292,292,,292,292","292,292,292,292,292,,,292,292,510,,,292,292,292,292,510,,,,,510,510",",,,,,,292,292,,292,292,292,292,292,292,292,292,292,292,292,292,510,510","292,,,,,,,,,,,,,510,,,510,,,,,510,7,7,7,7,7,,510,,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,,7","7,7,7,7,493,,,,,,,,,,,,,,,,493,493,,7,,,7,,,7,7,,,7,,7,493,,493,7,493","493,,493,493,,,,7,,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,1155,1155,1155,7,1155","7,7,7,1155,1155,7,7,,1155,,1155,1155,1155,1155,1155,1155,1155,,,,,,1155","1155,1155,1155,1155,1155,1155,,,1155,,,,,,,1155,,,1155,1155,1155,1155","1155,1155,1155,1155,1155,1155,1155,1155,,1155,1155,1155,1155,1155,,",",,,,,,,,,,,,,,,,,1155,,,1155,,,1155,1155,,,1155,,1155,,1155,,1155,,","1155,,,,,,1155,,,,,1155,1155,1155,1155,,1155,1155,1155,1155,,,,,1155","1155,,,,22,22,22,1155,22,1155,1155,1155,22,22,1155,1155,,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,,,22,,,22,22",",,22,,,,,,22,,,,,,,,,22,,,,,22,22,22,22,,22,22,22,22,,,,,22,22,,,,1123","1123,1123,22,1123,22,22,22,1123,1123,22,22,,1123,,1123,1123,1123,1123","1123,1123,1123,,,,,,1123,1123,1123,1123,1123,1123,1123,,,1123,,,,,,","1123,,,1123,1123,1123,1123,1123,1123,1123,1123,,1123,1123,1123,,1123","1123,1123,1123,1123,,,,,,,,,,,,,,,,,,,,1123,,,1123,,,1123,1123,,,1123",",,,,,1123,,,,,,,,,1123,,,,,1123,1123,1123,1123,,1123,1123,1123,1123",",,,,1123,1123,,,,,,,1123,,1123,1123,1123,30,,1123,1123,,,,30,30,30,",",30,30,30,,30,,,,,,,,30,30,30,30,,,,,,,,,30,30,,30,30,30,30,30,,,,,",",,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30",",,30,,30,30,,,30,30,,30,,30,,30,,30,30,,30,30,30,30,30,31,30,30,30,",",,31,31,31,,,31,31,31,,31,30,,,30,30,,30,31,30,31,31,,,,,30,,,,31,31",",31,31,31,31,31,,,,,,,,,,,,,,,,,,,,,,,31,31,31,31,31,31,31,31,31,31","31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,,31,,31,,31,31,,31,31","31,31,31,,31,,31,,,,,,,,,,,,,,31,,,31,31,,31,,31,32,32,32,,32,,31,,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,32,32,,,,,,,,,,,",",,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,32,,,,,,32,,,,,32,32,32,32",",32,32,32,32,,,,,32,32,,,,33,33,33,32,33,32,32,32,33,33,32,32,,33,,33","33,33,33,33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33","33,33,33,33,33,33,33,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33",",,33,33,,,33,,33,,33,,33,,,33,,,,,,33,,,,,33,33,33,33,,33,33,33,33,",",,,33,33,,,,34,34,34,33,34,33,33,33,34,34,33,33,,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,,34,,34,,34,,,34,,,,,,34,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,",",,1122,1122,1122,34,1122,34,34,34,1122,1122,34,34,,1122,,1122,1122,1122","1122,1122,1122,1122,,,,,,1122,1122,1122,1122,1122,1122,1122,,,1122,",",,,,,1122,,,1122,1122,1122,1122,1122,1122,1122,1122,,1122,1122,1122",",1122,1122,1122,1122,1122,,,,,,,,,,,,,,,,,,,,1122,,,1122,,,1122,1122",",,1122,,,,,,1122,,,,,,,,,1122,,,,,1122,1122,1122,1122,,1122,1122,1122","1122,,,,,1122,1122,,,,44,44,44,1122,44,1122,1122,1122,44,44,1122,1122",",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,,,,,,44,,,,,,,,,44,,,,,44,44,44,44,,44,44,44,44",",,,,44,44,,,,45,45,45,44,45,44,44,44,45,45,44,44,,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,,,,,,,,,45,,,,,45,45,45,45,,45,45,45,45,,,,,45,45,,,,47,47,47","45,47,45,45,45,47,47,45,45,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47","47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47","47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,",",47,47,47,47,,47,47,47,47,,,,,47,47,,,,48,48,48,47,48,47,47,47,48,48","47,47,,48,,48,48,48,48,48,48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,",",48,,,48,48,48,48,48,48,48,48,,48,48,48,,48,48,48,48,48,,,,,,,,,,,,",",,,,,,,48,,,48,,,48,48,,,48,,,,,,48,,,,,,,,,48,,,,,48,48,48,48,,48,48","48,48,,,,,48,48,,,,50,50,50,48,50,48,48,48,50,50,48,48,,50,,50,50,50","50,50,50,50,,,,,,50,50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50","50,50,50,,50,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50",",,50,,,,,,50,,,,,,,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,,",",50,,50,50,50,64,,50,50,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64","64,,,,707,707,707,707,64,64,,64,64,64,64,64,,,,,707,707,707,,,,,,,,",",,707,707,,,707,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64",",,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,707,707","707,707,,707,707,707,707,,,,64,707,707,64,64,64,64,,64,707,64,707,707","707,,64,66,66,66,66,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,,,66","66,66,66,66,66,66,,,66,,,,,,66,66,,66,66,66,66,66,66,66,66,66,,66,66","66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,66,,,,66",",,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66,66,,,,67,67,67,66,67","66,66,66,67,67,66,66,,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,,,67,,67,,,,67,,,67,,,,,,67,,",",,67,67,67,67,,67,67,67,67,,,,,67,67,,,,68,68,68,67,68,67,67,67,68,68","67,67,,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,,,,,,68,,,,,68,68,68,68,","68,68,68,68,,,,,68,68,,,,71,71,71,68,71,68,68,68,71,71,68,68,,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,71,71,71,,71,71,71,71,,,,,71","71,,,,72,72,72,71,72,71,71,71,72,72,71,71,,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",",,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,75,75,75,72,75","72,72,72,75,75,72,72,,75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75","75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75",",,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75","75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,124,124","124,124,124,,,,124,124,,,,124,,124,124,124,124,124,124,124,,,,,,124","124,124,124,124,124,124,,,124,,,,,,124,124,124,124,124,124,124,124,124","124,124,124,,124,124,124,,124,124,124,124,124,,,,,,,,,,,,,,,,,,,,124",",,124,,,124,124,,,124,,124,,,,124,,,,,,,,,124,,,,,124,124,124,124,,124","124,124,124,,,,,124,124,,,,,,124,124,,124,124,124,,,124,124,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,,,,,,,,,,,,,,,,,,,,129,,,129,,,129","129,,,129,,,,,,129,,,,,,,,,129,,,,,129,129,129,129,,129,129,129,129",",,,,129,129,,,,130,130,130,129,130,129,129,129,130,130,129,129,,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,,,,,,",",,130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,,,131,131,131","130,131,130,130,130,131,131,130,130,,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,,,,,,131,,,,,,,,,131,,,,,131,131,131,131,,131","131,131,131,,,,,131,131,,,,515,515,515,131,515,131,131,131,515,515,131","131,,515,,515,515,515,515,515,515,515,,,,,,515,515,515,515,515,515,515",",,515,,,,,,,515,,,515,515,515,515,515,515,515,515,,515,515,515,,515","515,515,515,515,,,,,,,,,,,,,,,,,,,,515,,,515,,,515,515,,,515,,,,,,515",",,,,,,,,515,,,,,515,515,515,515,,515,515,515,515,,,,,515,515,,,,,,,515",",515,515,515,,,515,515,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,133,133","133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,133,,,,133,,,,,,,",",133,,,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,231,231,231","133,231,133,133,133,231,231,133,133,,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,231,231,231,,231","231,231,231,,,,,231,231,231,,,242,242,242,231,242,231,231,231,242,242","231,231,,242,,242,242,242,242,242,242,242,,,,,,242,242,242,242,242,242","242,,,242,,,,,,,242,,,242,242,242,242,242,242,242,242,,242,242,242,","242,242,242,242,242,,,,,,,,,,,,,,,,,,,,242,,,242,,,242,242,,,242,,,",",,242,,,,,,,,,242,,,,,242,242,242,242,,242,242,242,242,,,,,242,242,",",,247,247,247,242,247,242,242,242,247,247,242,242,,247,,247,247,247","247,247,247,247,,,,,,247,247,247,247,247,247,247,,,247,,,,,,,247,,,247","247,247,247,247,247,247,247,,247,247,247,,247,247,247,247,247,,,,,,",",,,,,,,,,,,,,247,,,247,,,247,247,,,247,,,,,,247,,,,,,,,,247,,,,,247","247,247,247,,247,247,247,247,,,,,247,247,,,,248,248,248,247,248,247","247,247,248,248,247,247,,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",",,,,248,248,,,,249,249,249,248,249,248,248,248,249,249,248,248,,249",",249,249,249,249,249,249,249,,,,,,249,249,249,249,249,249,249,,,249",",,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249,,249,249,249","249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,",",,249,,,,,249,249,249,249,,249,249,249,249,,,,,249,249,,,,250,250,250","249,250,249,249,249,250,250,249,249,,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,250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250","250,250,250,,,,,250,250,,,,251,251,251,250,251,250,250,250,251,251,250","250,,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,,,251,251,,,251,,,,,,251",",,,,,,,,251,,,,,251,251,251,251,,251,251,251,251,,,,,251,251,,,,252","252,252,251,252,251,251,251,252,252,251,251,,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,252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252","252,,252,252,252,252,,,,,252,252,,,,253,253,253,252,253,252,252,252","253,253,252,252,,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,,,253,253,,,253",",,,,,253,,,,,,,,,253,,,,,253,253,253,253,,253,253,253,253,,,,,253,253",",,,254,254,254,253,254,253,253,253,254,254,253,253,,254,,254,254,254","254,254,254,254,,,,,,254,254,254,254,254,254,254,,,254,,,,,,,254,,,254","254,254,254,254,254,254,254,,254,254,254,,254,254,254,254,254,,,,,,",",,,,,,,,,,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,,,,254,,,,,254","254,254,254,,254,254,254,254,,,,,254,254,,,,255,255,255,254,255,254","254,254,255,255,254,254,,255,,255,255,255,255,255,255,255,,,,,,255,255","255,255,255,255,255,,,255,,,,,,,255,,,255,255,255,255,255,255,255,255",",255,255,255,,255,255,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255","255,,,255,,,,,,255,,,,,,,,,255,,,,,255,255,255,255,,255,255,255,255",",,,,255,255,,,,256,256,256,255,256,255,255,255,256,256,255,255,,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,,,,,,256,,,,,,",",,256,,,,,256,256,256,256,,256,256,256,256,,,,,256,256,,,,257,257,257","256,257,256,256,256,257,257,256,256,,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,,,,,,257,,,,,,,,,257,,,,,257,257,257,257,,257","257,257,257,,,,,257,257,,,,258,258,258,257,258,257,257,257,258,258,257","257,,258,,258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258",",,258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258","258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258",",,,,,,,,258,,,,,258,258,258,258,,258,258,258,258,,,,,258,258,,,,259","259,259,258,259,258,258,258,259,259,258,258,,259,,259,259,259,259,259","259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259","259,259,259,259,259,,259,259,259,,259,259,259,259,259,,,,,,,,,,,,,,",",,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,,,,259,259,259","259,,259,259,259,259,,,,,259,259,,,,260,260,260,259,260,259,259,259","260,260,259,259,,260,,260,260,260,260,260,260,260,,,,,,260,260,260,260","260,260,260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260","260,,260,260,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260",",,,,,260,,,,,,,,,260,,,,,260,260,260,260,,260,260,260,260,,,,,260,260",",,,261,261,261,260,261,260,260,260,261,261,260,260,,261,,261,261,261","261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261","261,261,261,261,261,261,261,,261,261,261,,261,261,261,261,261,,,,,,",",,,,,,,,,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261","261,261,261,,261,261,261,261,,,,,261,261,,,,262,262,262,261,262,261","261,261,262,262,261,261,,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,,,,,,,,,262,,,,,262,262,262,262,,262,262,262,262",",,,,262,262,,,,263,263,263,262,263,262,262,262,263,263,262,262,,263",",263,263,263,263,263,263,263,,,,,,263,263,263,263,263,263,263,,,263",",,,,,,263,,,263,263,263,263,263,263,263,263,,263,263,263,,263,263,263","263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,",",,263,,,,,263,263,263,263,,263,263,263,263,,,,,263,263,,,,264,264,264","263,264,263,263,263,264,264,263,263,,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,264,264,264,,264","264,264,264,,,,,264,264,,,,265,265,265,264,265,264,264,264,265,265,264","264,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265,265,265,265",",,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265,265,,265","265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265,,,,,,265",",,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265,,,,266","266,266,265,266,265,265,265,266,266,265,265,,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,266,266","266,,266,266,266,266,,,,,266,266,,,,267,267,267,266,267,266,266,266","267,267,266,266,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267","267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267","267,,267,267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267",",,,,,267,,,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267",",,,268,268,268,267,268,267,267,267,268,268,267,267,,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","268,268,268,,268,268,268,268,,,,,268,268,,,,273,273,273,268,273,268","268,268,273,273,268,268,,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,,,273","273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273",",,,,273,273,,,,974,974,974,273,974,273,273,273,974,974,273,273,,974",",974,974,974,974,974,974,974,,,,,,974,974,974,974,974,974,974,,,974",",,,,,,974,,,974,974,974,974,974,974,974,974,,974,974,974,,974,974,974","974,974,,,,,,,,,,,,,,,,,,,,974,,,974,,,974,974,,,974,,,,,,974,,,,,,",",,974,,,,,974,974,974,974,,974,974,974,974,,,,,974,974,,,,973,973,973","974,973,974,974,974,973,973,974,974,,973,,973,973,973,973,973,973,973",",,,,,973,973,973,973,973,973,973,,,973,,,,,,,973,,,973,973,973,973,973","973,973,973,973,973,973,973,,973,973,973,973,973,,,,,,,,,,,,,,,,,,,","973,,,973,,,973,973,,,973,,,,973,,973,,,973,,,,,,973,,,,,973,973,973","973,,973,973,973,973,,,,,973,973,,,,954,954,954,973,954,973,973,973","954,954,973,973,,954,,954,954,954,954,954,954,954,,,,,,954,954,954,954","954,954,954,,,954,,,,,,,954,,,954,954,954,954,954,954,954,954,,954,954","954,,954,954,954,954,954,,,,,,,,,,,,,,,,,,,,954,,,954,,,954,954,,,954",",954,,,,954,,,,,,,,,954,,,,,954,954,954,954,,954,954,954,954,,,,,954","954,,,,949,949,949,954,949,954,954,954,949,949,954,954,,949,,949,949","949,949,949,949,949,,,,,,949,949,949,949,949,949,949,,,949,,,,,,,949",",,949,949,949,949,949,949,949,949,,949,949,949,,949,949,949,949,949",",,,,,,,,,,,,,,,,,,,949,,,949,,,949,949,,,949,,,,,,949,,,,,,,,,949,,",",,949,949,949,949,,949,949,949,949,,,,,949,949,,,,945,945,945,949,945","949,949,949,945,945,949,949,,945,,945,945,945,945,945,945,945,,,,,,945","945,945,945,945,945,945,,,945,,,,,,,945,,,945,945,945,945,945,945,945","945,,945,945,945,,945,945,945,945,945,,,,,,,,,,,,,,,,,,,,945,,,945,",",945,945,,,945,,,,,,945,,,,,,,,,945,,,,,945,945,945,945,,945,945,945","945,,,,,945,945,,,,289,289,289,945,289,945,945,945,289,289,945,945,","289,,289,289,289,289,289,289,289,,,,,,289,289,289,289,289,289,289,,","289,,,,,,,289,,,289,289,289,289,289,289,289,289,,289,289,289,,289,289","289,289,289,,,,,,,,,,,,,,,,,,,,289,,,289,,,289,289,,,289,,,,,,289,,",",,,,,,289,,,,,289,289,289,289,,289,289,289,289,,,,,289,289,,,,917,917","917,289,917,289,289,289,917,917,289,289,,917,,917,917,917,917,917,917","917,,,,,,917,917,917,917,917,917,917,,,917,,,,,,,917,,,917,917,917,917","917,917,917,917,,917,917,917,,917,917,917,917,917,,,,,,,,,,,,,,,,,,",",917,,,917,,,917,917,,,917,,,,,,917,,,,,,,,,917,,,,,917,917,917,917",",917,917,917,917,,,,,917,917,,,,296,296,296,917,296,917,917,917,296","296,917,917,,296,,296,296,296,296,296,296,296,,,,,,296,296,296,296,296","296,296,,,296,,,,,,,296,,,296,296,296,296,296,296,296,296,296,296,296","296,,296,296,296,296,296,,,,,,,,,,,,,,,,,,,,296,,,296,,,296,296,,,296",",296,,296,,296,,,296,,,,,,296,,,,,296,296,296,296,,296,296,296,296,",",,,296,296,,,,297,297,297,296,297,296,296,296,297,297,296,296,,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,","297,,,297,,,,,,297,,,,,297,297,297,297,,297,297,297,297,,,,,297,297",",,,305,305,305,297,305,297,297,297,305,305,297,297,,305,,305,305,305","305,305,305,305,,,,,,305,305,305,305,305,305,305,,,305,,,,,,,305,,,305","305,305,305,305,305,305,305,305,305,305,305,,305,305,305,305,305,,,",",,,,,,,,,,,,,,,,305,,,305,,,305,305,,,305,,305,,305,,305,,,305,,,,,","305,,,,,305,305,305,305,,305,305,305,305,,,,,305,305,305,,,897,897,897","305,897,305,305,305,897,897,305,305,,897,,897,897,897,897,897,897,897",",,,,,897,897,897,897,897,897,897,,,897,,,,,,,897,,,897,897,897,897,897","897,897,897,,897,897,897,,897,897,897,897,897,,,,,,,,,,,,,,,,,,,,897",",,897,,,897,897,,,897,,,,,,897,,,,,,,,,897,,,,,897,897,897,897,,897","897,897,897,,,,,897,897,,,,312,312,312,897,312,897,897,897,312,312,897","897,,312,,312,312,312,312,312,312,312,,,,,,312,312,312,312,312,312,312",",,312,,,,,,,312,,,312,312,312,312,312,312,312,312,,312,312,312,,312","312,312,312,312,,,,,,,,,,,,,,,,,,,,312,,,312,,,312,312,,,312,,,,,,312",",,,,,,,,312,,,,,312,312,312,312,,312,312,312,312,,,,,312,312,,,,314","314,314,312,314,312,312,312,314,314,312,312,,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,,,314,314,,,314,,,,,,314,,,,,,,,,314,,,,,314,314,314","314,,314,314,314,314,,,,,314,314,,,,317,317,317,314,317,314,314,314","317,317,314,314,,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,317,317,317,,317,317,317,317,,,,,317,317",",,,318,318,318,317,318,317,317,317,318,318,317,317,,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","318,318,318,,318,318,318,318,,,,,318,318,,,,,,,318,,318,318,318,,,318","318,323,323,323,323,323,,,,323,323,,,,323,,323,323,323,323,323,323,323",",,,,,323,323,323,323,323,323,323,,,323,,,,,,323,323,,323,323,323,323","323,323,323,323,323,,323,323,323,,323,323,323,323,323,,,,,,,,,,,,,,",",,,,,323,,,323,,,323,323,,,323,,323,,,,323,,,,,,,,,323,,,,,323,323,323","323,,323,323,323,323,,,,,323,323,,,,868,868,868,323,868,323,323,323","868,868,323,323,,868,,868,868,868,868,868,868,868,,,,,,868,868,868,868","868,868,868,,,868,,,,,,,868,,,868,868,868,868,868,868,868,868,,868,868","868,,868,868,868,868,868,,,,,,,,,,,,,,,,,,,,868,,,868,,,868,868,,,868",",,,,,868,,,,,,,,,868,,,,,868,868,868,868,,868,868,868,868,,,,,868,868",",,,867,867,867,868,867,868,868,868,867,867,868,868,,867,,867,867,867","867,867,867,867,,,,,,867,867,867,867,867,867,867,,,867,,,,,,,867,,,867","867,867,867,867,867,867,867,,867,867,867,,867,867,867,867,867,,,,,,",",,,,,,,,,,,,,867,,,867,,,867,867,,,867,,,,,,867,,,,,,,,,867,,,,,867","867,867,867,,867,867,867,867,,,,,867,867,,,,866,866,866,867,866,867","867,867,866,866,867,867,,866,,866,866,866,866,866,866,866,,,,,,866,866","866,866,866,866,866,,,866,,,,,,,866,,,866,866,866,866,866,866,866,866",",866,866,866,,866,866,866,866,866,,,,,,,,,,,,,,,,,,,,866,,,866,,,866","866,,,866,,,,,,866,,,,,,,,,866,,,,,866,866,866,866,,866,866,866,866",",,,,866,866,,,,865,865,865,866,865,866,866,866,865,865,866,866,,865",",865,865,865,865,865,865,865,,,,,,865,865,865,865,865,865,865,,,865",",,,,,,865,,,865,865,865,865,865,865,865,865,,865,865,865,,865,865,865","865,865,,,,,,,,,,,,,,,,,,,,865,,,865,,,865,865,,,865,,,,,,865,,,,,,",",,865,,,,,865,865,865,865,,865,865,865,865,,,,,865,865,,,,852,852,852","865,852,865,865,865,852,852,865,865,,852,,852,852,852,852,852,852,852",",,,,,852,852,852,852,852,852,852,,,852,,,,,,,852,,,852,852,852,852,852","852,852,852,,852,852,852,,852,852,852,852,852,,,,,,,,,,,,,,,,,,,,852",",,852,,,852,852,,,852,,,,,,852,,,,,,,,,852,,,,,852,852,852,852,,852","852,852,852,,,,,852,852,,,,844,844,844,852,844,852,852,852,844,844,852","852,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844",",,844,,,,,,,844,,,844,844,844,844,844,844,844,844,,844,844,844,,844","844,844,844,844,,,,,,,,,,,,,,,,,,,,844,,,844,,,844,844,,,844,,,,,,844",",,,,,,,,844,,,,,844,844,844,844,,844,844,844,844,,,,,844,844,,,,824","824,824,844,824,844,844,844,824,824,844,844,,824,,824,824,824,824,824","824,824,,,,,,824,824,824,824,824,824,824,,,824,,,,,,,824,,,824,824,824","824,824,824,824,824,,824,824,824,,824,824,824,824,824,,,,,,,,,,,,,,",",,,,,824,,,824,,,824,824,,,824,,,,,,824,,,,,,,,,824,,,,,824,824,824","824,,824,824,824,824,,,,,824,824,,,,359,359,359,824,359,824,824,824","359,359,824,824,,359,,359,359,359,359,359,359,359,,,,,,359,359,359,359","359,359,359,,,359,,,,,,,359,,,359,359,359,359,359,359,359,359,,359,359","359,,359,359,359,359,359,,,,,,,,,,,,,,,,,,,,359,,,359,,,359,359,,,359",",,,,,359,,,,,,,,,359,,,,,359,359,359,359,,359,359,359,359,,,,,359,359",",,,361,361,361,359,361,359,359,359,361,361,359,359,,361,,361,361,361","361,361,361,361,,,,,,361,361,361,361,361,361,361,,,361,,,,,,,361,,,361","361,361,361,361,361,361,361,,361,361,361,,361,361,361,361,361,,,,,,",",,,,,,,,,,,,,361,,,361,361,,361,361,,,361,,,,,,361,,,,,,,,,361,,,,,361","361,361,361,,361,361,361,361,,,,,361,361,,,,779,779,779,361,779,361","361,361,779,779,361,361,,779,,779,779,779,779,779,779,779,,,,,,779,779","779,779,779,779,779,,,779,,,,,,,779,,,779,779,779,779,779,779,779,779",",779,779,779,,779,779,779,779,779,,,,,,,,,,,,,,,,,,,,779,,,779,,,779","779,,,779,,,,,,779,,,,,,,,,779,,,,,779,779,779,779,,779,779,779,779",",,,,779,779,,,,765,765,765,779,765,779,779,779,765,765,779,779,,765",",765,765,765,765,765,765,765,,,,,,765,765,765,765,765,765,765,,,765",",,,,,,765,,,765,765,765,765,765,765,765,765,,765,765,765,,765,765,765","765,765,,,,,,,,,,,,,,,,,,,,765,,,765,,,765,765,,,765,,765,,,,765,,,",",,,,,765,,,,,765,765,765,765,,765,765,765,765,,,,,765,765,,,,745,745","745,765,745,765,765,765,745,745,765,765,,745,,745,745,745,745,745,745","745,,,,,,745,745,745,745,745,745,745,,,745,,,,,,,745,,,745,745,745,745","745,745,745,745,,745,745,745,,745,745,745,745,745,,,,,,,,,,,,,,,,,,",",745,,,745,,,745,745,,,745,,,,,,745,,,,,,,,,745,,,,,745,745,745,745",",745,745,745,745,,,,,745,745,,,,742,742,742,745,742,745,745,745,742","742,745,745,,742,,742,742,742,742,742,742,742,,,,,,742,742,742,742,742","742,742,,,742,,,,,,,742,,,742,742,742,742,742,742,742,742,,742,742,742",",742,742,742,742,742,,,,,,,,,,,,,,,,,,,,742,,,742,,,742,742,,,742,,",",,,742,,,,,,,,,742,,,,,742,742,742,742,,742,742,742,742,,,,,742,742",",,,384,384,384,742,384,742,742,742,384,384,742,742,,384,,384,384,384","384,384,384,384,,,,,,384,384,384,384,384,384,384,,,384,,,,,,,384,,,384","384,384,384,384,384,384,384,,384,384,384,,384,384,384,384,384,,,,,,",",,,,,,,,,,,,,384,,,384,,,384,384,,,384,,,,,,384,,,,,,,,,384,,,,,384","384,384,384,,384,384,384,384,,,,,384,384,,,,733,733,733,384,733,384","384,384,733,733,384,384,,733,,733,733,733,733,733,733,733,,,,,,733,733","733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733,733,733,733","733,733,733,733,,733,733,733,733,733,,,,,,,,,,,,,,,,,,,,733,,,733,,","733,733,,,733,,733,,733,,733,,,733,,,,,,733,,,,,733,733,733,733,,733","733,733,733,,,,,733,733,,,,685,685,685,733,685,733,733,733,685,685,733","733,,685,,685,685,685,685,685,685,685,,,,,,685,685,685,685,685,685,685",",,685,,,,,,,685,,,685,685,685,685,685,685,685,685,,685,685,685,,685","685,685,685,685,,,,,,,,,,,,,,,,,,,,685,,,685,,,685,685,,,685,,,,,,685",",,,,,,,,685,,,,,685,685,685,685,,685,685,685,685,,,,,685,685,,,,405","405,405,685,405,685,685,685,405,405,685,685,,405,,405,405,405,405,405","405,405,,,,,,405,405,405,405,405,405,405,,,405,,,,,,,405,,,405,405,405","405,405,405,405,405,,405,405,405,,405,405,405,405,405,,,,,,,,,,,,,,",",,,,,405,,,405,,,405,405,,,405,,,,,,405,,,,,,,,,405,,,,,405,405,405","405,,405,405,405,405,,,,,405,405,,,,684,684,684,405,684,405,405,405","684,684,405,405,,684,,684,684,684,684,684,684,684,,,,,,684,684,684,684","684,684,684,,,684,,,,,,,684,,,684,684,684,684,684,684,684,684,,684,684","684,,684,684,684,684,684,,,,,,,,,,,,,,,,,,,,684,,,684,,,684,684,,,684",",,,,,684,,,,,,,,,684,,,,,684,684,684,684,,684,684,684,684,,,,,684,684",",,,680,680,680,684,680,684,684,684,680,680,684,684,,680,,680,680,680","680,680,680,680,,,,,,680,680,680,680,680,680,680,,,680,,,,,,,680,,,680","680,680,680,680,680,680,680,,680,680,680,,680,680,680,680,680,,,,,,",",,,,,,,,,,,,,680,,,680,,,680,680,,,680,,,,,,680,,,,,,,,,680,,,,,680","680,680,680,,680,680,680,680,,,,,680,680,,,,679,679,679,680,679,680","680,680,679,679,680,680,,679,,679,679,679,679,679,679,679,,,,,,679,679","679,679,679,679,679,,,679,,,,,,,679,,,679,679,679,679,679,679,679,679",",679,679,679,,679,679,679,679,679,,,,,,,,,,,,,,,,,,,,679,,,679,,,679","679,,,679,,,,,,679,,,,,,,,,679,,,,,679,679,679,679,,679,679,679,679",",,,,679,679,,,,678,678,678,679,678,679,679,679,678,678,679,679,,678",",678,678,678,678,678,678,678,,,,,,678,678,678,678,678,678,678,,,678",",,,,,,678,,,678,678,678,678,678,678,678,678,678,678,678,678,,678,678","678,678,678,,,,,,,,,,,,,,,,,,,,678,,,678,,,678,678,,,678,,,,678,,678",",,678,,,,,,678,,,,,678,678,678,678,,678,678,678,678,,,,,678,678,,,,677","677,677,678,677,678,678,678,677,677,678,678,,677,,677,677,677,677,677","677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,,,677,,,677,677,677","677,677,677,677,677,677,677,677,677,,677,677,677,677,677,,,,,,,,,,,",",,,,,,,,677,,,677,,,677,677,,,677,,677,,677,,677,,,677,,,,,,677,,,,","677,677,677,677,,677,677,677,677,,,,,677,677,,,,674,674,674,677,674","677,677,677,674,674,677,677,,674,,674,674,674,674,674,674,674,,,,,,674","674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674,674,674,674,674","674,,674,674,674,,674,674,674,674,674,,,,,,,,,,,,,,,,,,,,674,,,674,",",674,674,,,674,,,,,,674,,,,,,,,,674,,,,,674,674,674,674,,674,674,674","674,,,,,674,674,,,,,,,674,,674,674,674,,,674,674,673,673,673,673,673",",,,673,673,,,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673","673,673,673,,,673,,,,,,673,673,,673,673,673,673,673,673,673,673,673",",673,673,673,,673,673,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673","673,,,673,,673,,,,673,,,,,,,,,673,,,,,673,673,673,673,,673,673,673,673",",,,,673,673,,,,670,670,670,673,670,673,673,673,670,670,673,673,,670",",670,670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,,,670",",,,,,,670,,,670,670,670,670,670,670,670,670,670,670,670,670,,670,670","670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670,670,,,670,,670,,670,","670,,,670,,,,,,670,,,,,670,670,670,670,,670,670,670,670,,,,,670,670",",,,669,669,669,670,669,670,670,670,669,669,670,670,,669,,669,669,669","669,669,669,669,,,,,,669,669,669,669,669,669,669,,,669,,,,,,,669,,,669","669,669,669,669,669,669,669,,669,669,669,,669,669,669,669,669,,,,,,",",,,,,,,,,,,,,669,,,669,,,669,669,,,669,,,,,,669,,,,,,,,,669,,,,,669","669,669,669,,669,669,669,669,,,,,669,669,,,,668,668,668,669,668,669","669,669,668,668,669,669,,668,,668,668,668,668,668,668,668,,,,,,668,668","668,668,668,668,668,,,668,,,,,,,668,,,668,668,668,668,668,668,668,668",",668,668,668,,668,668,668,668,668,,,,,,,,,,,,,,,,,,,,668,,,668,,,668","668,,,668,,668,,,,668,,,,,,,,,668,,,,,668,668,668,668,,668,668,668,668",",,,,668,668,,,,,,,668,,668,668,668,,,668,668,666,666,666,666,666,,,","666,666,,,,666,,666,666,666,666,666,666,666,,,,,,666,666,666,666,666","666,666,,,666,,,,,,666,666,,666,666,666,666,666,666,666,666,666,,666","666,666,,666,666,666,666,666,,,,,,,,,,,,,,,,,,,,666,,,666,,,666,666",",,666,,666,,,,666,,,,,,,,,666,,,,,666,666,666,666,,666,666,666,666,",",,,666,666,,,,434,434,434,666,434,666,666,666,434,434,666,666,,434,","434,434,434,434,434,434,434,,,,,,434,434,434,434,434,434,434,,,434,",",,,,,434,,,434,434,434,434,434,434,434,434,,434,434,434,,434,434,434","434,434,,,,,,,,,,,,,,,,,,,,434,,,434,,,434,434,,,434,,,,,,434,,,,,,",",,434,,,,,434,434,434,434,,434,434,434,434,,,,,434,434,,,,635,635,635","434,635,434,434,434,635,635,434,434,,635,,635,635,635,635,635,635,635",",,,,,635,635,635,635,635,635,635,,,635,,,,,,,635,,,635,635,635,635,635","635,635,635,635,635,635,635,,635,635,635,635,635,,,,,,,,,,,,,,,,,,,","635,,,635,,,635,635,,,635,,635,,635,,635,,,635,,,,,,635,,,,,635,635","635,635,,635,635,635,635,,,,,635,635,,,,625,625,625,635,625,635,635","635,625,625,635,635,,625,,625,625,625,625,625,625,625,,,,,,625,625,625","625,625,625,625,,,625,,,,,,,625,,,625,625,625,625,625,625,625,625,625","625,625,625,,625,625,625,625,625,,,,,,,,,,,,,,,,,,,,625,,,625,,,625","625,,,625,,625,,625,,625,,,625,,,,,,625,,,,,625,625,625,625,,625,625","625,625,,,,,625,625,,,,624,624,624,625,624,625,625,625,624,624,625,625",",624,,624,624,624,624,624,624,624,,,,,,624,624,624,624,624,624,624,",",624,,,,,,,624,,,624,624,624,624,624,624,624,624,,624,624,624,,624,624","624,624,624,,,,,,,,,,,,,,,,,,,,624,,,624,,,624,624,,,624,,624,,,,624",",,,,,,,,624,,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,,,611","611,611,624,611,624,624,624,611,611,624,624,,611,,611,611,611,611,611","611,611,,,,,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611","611,611,611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,",",,,,,,,,611,,,611,,,611,611,,,611,,,,,,611,,,611,,,,,,611,,,,,611,611","611,611,,611,611,611,611,,,,,611,611,,,,608,608,608,611,608,611,611","611,608,608,611,611,,608,,608,608,608,608,608,608,608,,,,,,608,608,608","608,608,608,608,,,608,,,,,,,608,,,608,608,608,608,608,608,608,608,608","608,608,608,,608,608,608,608,608,,,,,,,,,,,,,,,,,,,,608,,,608,,,608","608,,,608,,608,,,,608,,,608,,,,,,608,,,,,608,608,608,608,,608,608,608","608,,,,,608,608,,,,,,,608,,608,608,608,458,,608,608,,,,458,458,458,",",458,458,458,,458,,,,,,,,458,458,458,458,,,,,,,,,458,458,,458,458,458","458,458,,,,,,,,,,,,,,,,,,,,,,,458,458,458,458,458,458,458,458,458,458","458,458,458,458,,,458,458,458,,,458,,458,458,,,458,458,,458,,458,,458",",458,458,,458,458,458,458,458,,458,458,458,,,,,,,,,,,,,,458,,,458,458",",458,,458,602,602,602,,602,,458,,602,602,,,,602,,602,602,602,602,602","602,602,,,,,,602,602,602,602,602,602,602,,,602,,,,,,,602,,,602,602,602","602,602,602,602,602,,602,602,602,,602,602,602,602,602,,,,,,,,,,,,,,",",,,,,602,,,602,,,602,602,,,602,,,,,,602,,,,,,,,,602,,,,,602,602,602","602,,602,602,602,602,,,,,602,602,,,,,,,602,,602,602,602,467,,602,602",",,,467,467,467,,,467,467,467,,467,,,,,,,,467,467,467,467,467,,,,,,,","467,467,,467,467,467,467,467,,,,,,,,,,,,,,,,,,,,,,,467,467,467,467,467","467,467,467,467,467,467,467,467,467,,,467,467,467,,,467,,,467,,,467","467,,467,,467,,467,,467,467,,467,467,467,467,467,,467,467,467,,,,,,",",,,,,,,467,,,467,467,467,467,,467,468,467,,,,,467,468,468,468,,,468","468,468,,468,,,,,,,,468,468,468,468,468,,,,,,,,468,468,,468,468,468","468,468,,,,,,,,,,,,,,,,,,,,,,,468,468,468,468,468,468,468,468,468,468","468,468,468,468,,,468,468,468,,,468,,,468,,,468,468,,468,,468,,468,","468,468,,468,468,468,468,468,,468,468,468,,,,,,,,,,,,,,468,,,468,468","468,468,,468,,468,,588,588,588,468,588,,,,588,588,,,,588,,588,588,588","588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,,,588,,,588","588,588,588,588,588,588,588,,588,588,588,,588,588,588,588,588,,,,,,",",,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,588,,,,,,,,,588,,,,,588","588,588,588,,588,588,588,588,,,,,588,588,,,,562,562,562,588,562,588","588,588,562,562,588,588,,562,,562,562,562,562,562,562,562,,,,,,562,562","562,562,562,562,562,,,562,,,,,,,562,,,562,562,562,562,562,562,562,562",",562,562,562,,562,562,562,562,562,,,,,,,,,,,,,,,,,,,,562,,,562,,,562","562,,,562,,,,,,562,,,,,,,,,562,,,,,562,562,562,562,,562,562,562,562",",,,,562,562,,,,561,561,561,562,561,562,562,562,561,561,562,562,,561",",561,561,561,561,561,561,561,,,,,,561,561,561,561,561,561,561,,,561",",,,,,,561,,,561,561,561,561,561,561,561,561,,561,561,561,,561,561,561","561,561,,,,,,,,,,,,,,,,,,,,561,,,561,,,561,561,,,561,,,,,,561,,,,,,",",,561,,,,,561,561,561,561,,561,561,561,561,,,,,561,561,,,,477,477,477","561,477,561,561,561,477,477,561,561,,477,,477,477,477,477,477,477,477",",,,,,477,477,477,477,477,477,477,,,477,,,,,,,477,,,477,477,477,477,477","477,477,477,477,477,477,477,,477,477,477,477,477,,,,,,,,,,,,,,,,,,,","477,,,477,,,477,477,,,477,,477,,477,,477,,,477,,,,,,477,,,,,477,477","477,477,,477,477,477,477,,,,,477,477,,,,558,558,558,477,558,477,477","477,558,558,477,477,,558,,558,558,558,558,558,558,558,,,,,,558,558,558","558,558,558,558,,,558,,,,,,,558,,,558,558,558,558,558,558,558,558,,558","558,558,,558,558,558,558,558,,,,,,,,,,,,,,,,,,,,558,,,558,,,558,558",",,558,,,,,,558,,,,,,,,,558,,,,,558,558,558,558,,558,558,558,558,,,,","558,558,,,,479,479,479,558,479,558,558,558,479,479,558,558,,479,,479","479,479,479,479,479,479,,,,,,479,479,479,479,479,479,479,,,479,,,,,",",479,,,479,479,479,479,479,479,479,479,,479,479,479,,479,479,479,479","479,,,,,,,,,,,,,,,,,,,,479,,,479,,,479,479,,,479,,,,,,479,,,,,,,,,479",",,,,479,479,479,479,,479,479,479,479,,,,,479,479,,,,480,480,480,479","480,479,479,479,480,480,479,479,,480,,480,480,480,480,480,480,480,,",",,,480,480,480,480,480,480,480,,,480,,,,,,,480,,,480,480,480,480,480","480,480,480,,480,480,480,,480,480,480,480,480,,,,,,,,,,,,,,,,,,,,480",",,480,,,480,480,,,480,,,,,,480,,,,,,,,,480,,,,,480,480,480,480,,480","480,480,480,,,,,480,480,,,,481,481,481,480,481,480,480,480,481,481,480","480,,481,,481,481,481,481,481,481,481,,,,,,481,481,481,481,481,481,481",",,481,,,,,,,481,,,481,481,481,481,481,481,481,481,,481,481,481,,481","481,481,481,481,,,,,,,,,,,,,,,,,,,,481,,,481,,,481,481,,,481,,,,,,481",",,,,,,,,481,,,,,481,481,481,481,,481,481,481,481,,,,,481,481,,,,555","555,555,481,555,481,481,481,555,555,481,481,,555,,555,555,555,555,555","555,555,,,,,,555,555,555,555,555,555,555,,,555,,,,,,,555,,,555,555,555","555,555,555,555,555,,555,555,555,,555,555,555,555,555,,,,,,,,,,,,,,",",,,,,555,,,555,,,555,555,,,555,,,,,,555,,,,,,,,,555,,,,,555,555,555","555,,555,555,555,555,,,,,555,555,,,,545,545,545,555,545,555,555,555","545,545,555,555,,545,,545,545,545,545,545,545,545,,,,,,545,545,545,545","545,545,545,,,545,,,,,,,545,,,545,545,545,545,545,545,545,545,545,545","545,545,,545,545,545,545,545,,,,,,,,,,,,,,,,,,,,545,,,545,,,545,545",",,545,,545,,545,,545,,,545,,,,,,545,,,,,545,545,545,545,,545,545,545","545,,,,,545,545,,,,,,,545,,545,545,545,,,545,545,535,535,535,535,535",",,,535,535,,,,535,,535,535,535,535,535,535,535,,,,,,535,535,535,535","535,535,535,,,535,,,,,,535,535,535,535,535,535,535,535,535,535,535,535",",535,535,535,,535,535,535,535,535,,,,,,,,,,,,,,,,,,,,535,,,535,,,535","535,,,535,,535,,,,535,,,,,,,,,535,,,,,535,535,535,535,,535,535,535,535",",,,,535,535,,,,,,535,535,,535,535,535,,,535,535,529,529,529,,529,,,","529,529,,,,529,,529,529,529,529,529,529,529,,,,,,529,529,529,529,529","529,529,,,529,,,,,,,529,,,529,529,529,529,529,529,529,529,,529,529,529",",529,529,529,529,529,,,,,,,,,,,,,,,,,,,,529,,,529,,,529,529,,,529,,",",,,529,,,,,,,,,529,,,,,529,529,529,529,,529,529,529,529,,,,,529,529",",,,527,527,527,529,527,529,529,529,527,527,529,529,,527,,527,527,527","527,527,527,527,,,,,,527,527,527,527,527,527,527,,,527,,,,,,,527,,,527","527,527,527,527,527,527,527,527,527,527,527,,527,527,527,527,527,,,",",,,,,,,,,,,,,,,,527,,,527,,,527,527,,,527,,,,527,,527,,,527,,,,,,527",",,,,527,527,527,527,,527,527,527,527,,,,,527,527,,,,525,525,525,527","525,527,527,527,525,525,527,527,,525,,525,525,525,525,525,525,525,,",",,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525,525,525,525,525","525,525,525,525,525,525,525,,525,525,525,525,525,,,,,,,,,,,,,,,,,,,","525,,,525,,,525,525,,,525,,525,,525,,525,,,525,,,,,,525,,,,,525,525","525,525,,525,525,525,525,,,,,525,525,,,,219,219,219,525,219,525,525","525,219,219,525,525,,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,,,219,219",",,219,,219,,,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,",",,,219,219,,,,220,220,220,219,220,219,219,219,220,220,219,219,,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,,,220,220,,,220,,220,,,,220,,,",",,,,,220,,,,,220,220,220,220,,220,220,220,220,,,,,220,220,,,,221,221","221,220,221,220,220,220,221,221,220,220,,221,,221,221,221,221,221,221","221,,,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221","221,221,221,221,,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,",",221,,,221,,,221,221,,,221,,,,,,221,,,,,,,,,221,,,,,221,221,221,221",",221,221,221,221,,,,,221,221,,,,222,222,222,221,222,221,221,221,222","222,221,221,,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,222,222,222,,222,222,222,222,,,,,222,222",",,,223,223,223,222,223,222,222,222,223,223,222,222,,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","223,223,223,,223,223,223,223,,,,,223,223,,,,224,224,224,223,224,223","223,223,224,224,223,223,,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,224,,,224,,224,,224,,224,,,224,,,,,,224,,,,,224,224,224,224,,224","224,224,224,,,,,224,224,,,,229,229,229,224,229,224,224,224,229,229,224","224,,229,,229,229,229,229,229,229,229,,,,,,229,229,229,229,229,229,229",",,229,,,,,,,229,,,229,229,229,229,229,229,229,229,,229,229,229,,229","229,229,229,229,,,,,,,,,,,,,,,,,,,,229,,,229,,,229,229,,,229,,,,,,229",",,,,,,,,229,,,,,229,229,229,229,,229,229,229,229,,,,,229,229,,,,230","230,230,229,230,229,229,229,230,230,229,229,,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,230,230","230,,230,230,230,230,,,,,230,230,,,,1023,1023,1023,230,1023,230,230","230,1023,1023,230,230,,1023,,1023,1023,1023,1023,1023,1023,1023,,,,",",1023,1023,1023,1023,1023,1023,1023,,,1023,,,,,,,1023,,,1023,1023,1023","1023,1023,1023,1023,1023,,1023,1023,1023,,1023,1023,,,1023,,,,,,,,,",",,,,,,,,,,1023,,,1023,,,1023,1023,,,1023,,,,,,,,,,,,,,,,,,,,1023,1023","1023,1023,,1023,1023,1023,1023,,,,,1023,1023,,,,76,76,76,1023,76,1023","1023,1023,76,76,,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76",",,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,",",,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,","76,76,76,76,,,,,76,76,,,,748,748,748,76,748,76,76,76,748,748,,,,748",",748,748,748,748,748,748,748,,,,,,748,748,748,748,748,748,748,,,748",",,,,,,748,,,748,748,748,748,748,748,748,748,,748,748,748,,748,748,,","748,,,,,,,,,,,,,,,,,,,,748,,,748,,,748,748,,,748,,,,,,,,,,,,,,,,,,,","748,748,748,748,,748,748,748,748,,,,,748,748,,,,759,759,759,748,759","748,748,748,759,759,,,,759,,759,759,759,759,759,759,759,,,,,,759,759","759,759,759,759,759,,,759,,,,,,,759,,,759,759,759,759,759,759,759,759",",759,759,759,,759,759,,,759,,,,,,,,,,,,,,,,,,,,759,,,759,,,759,759,",",759,,,,,,,,,,,,,,,,,,,,759,759,759,759,,759,759,759,759,,,,,759,759",",,,350,350,350,759,350,759,759,759,350,350,,,,350,,350,350,350,350,350","350,350,,,,,,350,350,350,350,350,350,350,,,350,,,,,,,350,,,350,350,350","350,350,350,350,350,,350,350,350,,350,350,,,350,,,,,,,,,,,,,,,,,,,,350",",,350,,,350,350,,,350,,,,,,,,,,,,,,,,,,,,350,350,350,350,,350,350,350","350,,,,,350,350,,,,37,37,37,350,37,350,350,350,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,,37,,,,,,,,,,,,,,,,,,37,37,37,37,,37,37,37,37,,,,,37,37,,,,552,552","552,37,552,37,37,37,552,552,,,,552,,552,552,552,552,552,552,552,,,,",",552,552,552,552,552,552,552,,,552,,,,,,,552,,,552,552,552,552,552,552","552,552,,552,552,552,,552,552,,,552,,,,,,,,,,,,,,,,,,,,552,,,552,,,552","552,,,552,,,,,,,,,,,,,,,,,,,,552,552,552,552,,552,552,552,552,,,,,552","552,,,,1103,1103,1103,552,1103,552,552,552,1103,1103,,,,1103,,1103,1103","1103,1103,1103,1103,1103,,,,,,1103,1103,1103,1103,1103,1103,1103,,,1103",",,,,,,1103,,,1103,1103,1103,1103,1103,1103,1103,1103,,1103,1103,1103",",1103,1103,,,1103,,,,,,,,,,,,,,,,,,,,1103,,,1103,,,1103,1103,,,1103",",,,,,,,,,,,,,,,,,,,1103,1103,1103,1103,,1103,1103,1103,1103,,,,,1103","1103,,,,77,77,77,1103,77,1103,1103,1103,77,77,,,,77,,77,77,77,77,77","77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77","77,,77,77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,",",,,,,,,,,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,543,543,543","77,543,77,77,77,543,543,,,,543,,543,543,543,543,543,543,543,,,,,,543","543,543,543,543,543,543,,,543,,,,,,,543,,,543,543,543,543,543,543,543","543,,543,543,543,,543,543,,,543,,,,,,,,,,,,,,,,,,,,543,,,543,,,543,543",",,543,,,,,,,,,,,,,,,,,,,,543,543,543,543,,543,543,543,543,,,,,543,543",",,,78,78,78,543,78,543,543,543,78,78,,,,78,,78,78,78,78,78,78,78,,,",",,78,78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78","78,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,",",,,,,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,38,38,38,78,38,78,78,78","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,,,777,,777,777,777,777,777,,,,,,,,,777,,38","38,38,38,,38,38,38,38,,,,,38,38,,,,38,,777,38,,38,38,38,331,331,331",",331,777,777,,331,331,777,,,331,,331,331,331,331,331,331,331,,,,,,331","331,331,331,331,331,331,,,331,,,,,,,331,,,331,331,331,331,331,331,331","331,,331,331,331,,331,331,,,331,,,,,,,,,,,,,,,,,,,,331,,,331,,,331,331",",,331,,,1043,,1043,1043,1043,1043,1043,,,,,,,,,1043,,331,331,331,331",",331,331,331,331,,,,,331,331,,,,331,,1043,331,,331,331,331,1033,1033","1033,,1033,1043,1043,,1033,1033,1043,,,1033,,1033,1033,1033,1033,1033","1033,1033,,,,,,1033,1033,1033,1033,1033,1033,1033,,,1033,,,,,,,1033",",,1033,1033,1033,1033,1033,1033,1033,1033,,1033,1033,1033,,1033,1033",",,1033,,,,,,,,,,,,,,,,,,,,1033,,,1033,,,1033,1033,,,1033,,,,,,,,,,,",",,,,,,,,1033,1033,1033,1033,,1033,1033,1033,1033,,,,,1033,1033,,,,,",",1033,,1033,1033,1033,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,,,,,,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,11,11,11,11","11,,,11,11,,,,,,,,,,,,,,11,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,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,10,10,10,10,10","10,10,10,,,10,10,,,,,,,,,,,,,,10,664,664,664,664,664,664,664,664,664","664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,,,,664,664","664,664,664,664,664,664,664,664,,,,,,664,664,664,664,664,664,664,664","664,,,664,,,,,,,,664,664,,664,664,664,664,664,664,664,,,664,664,,,,664","664,664,664,,,,,,,,,,,,,,664,664,,664,664,664,664,664,664,664,664,664","664,664,664,,,664,664,,,,,,,,,,,,,,664,425,425,425,425,425,425,425,425","425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,425,,,,425","425,425,425,425,425,425,425,425,425,,,,,,425,425,425,425,425,425,425","425,425,,,425,,,,,,,,425,425,,425,425,425,425,425,425,425,,,425,425",",,,425,425,425,425,,,,,,,,,,,,,,425,425,,425,425,425,425,425,425,425","425,425,425,425,425,,,425,425,,,,,,,,,,,,,,425,24,24,24,24,24,24,24","24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,,,,24,24,24,24,24","24,24,24,24,24,,,,,,24,24,24,24,24,24,24,24,24,24,24,24,,24,,,,,,24","24,,24,24,24,24,24,24,24,,,24,24,,,,24,24,24,24,,,,,,24,,,,,,,,24,24",",24,24,24,24,24,24,24,24,24,24,24,24,,,24,1001,1001,1001,1001,,,,,,",",,,,,,1001,1001,1001,1001,,,367,1001,367,367,367,367,367,1001,1001,",",1001,,,,367,,,,,,,,,,,,,,,,1001,,,1001,,,367,1001,,,1001,,,,,367,367","367,367,,,,367,,,,1001,,,,1001,1001,1001,1001,,1001,1001,1001,1001,",",,,1001,1001,1084,1084,1084,1084,,,1001,,1001,1001,1001,,,1001,1001",",1084,1084,1084,1084,,,793,1084,793,793,793,793,793,1084,1084,,,1084",",,,793,,,,,,,,,,,,,,,,1084,,,1084,,,793,1084,,,1084,,,,,793,793,793","793,,,,793,,,,1084,,,,1084,1084,1084,1084,,1084,1084,1084,1084,,,,,1084","1084,985,985,985,985,,,1084,,1084,1084,1084,,,1084,1084,,985,985,985","985,,,1212,985,1212,1212,1212,1212,1212,985,985,,,985,,,,1212,,,,,,",",,,,,,,,,985,,,985,,,1212,985,,,985,,,,,,,1212,1212,,,,1212,,,,985,",",,985,985,985,985,,985,985,985,985,,,,,985,985,1138,1138,1138,1138,",",985,,985,985,985,,,985,985,,1138,1138,1138,1138,,,775,1138,775,775","775,775,775,1138,1138,,,1138,,,,775,,,,,,,,,,,,,,,,1138,,,1138,,,775","1138,,,1138,,,,,775,775,775,775,,,,775,,,,1138,,,,1138,1138,1138,1138",",1138,1138,1138,1138,,,,,1138,1138,1200,1200,1200,1200,,,1138,,1138","1138,1138,,,1138,1138,,1200,1200,1200,1200,,,1041,1200,1041,1041,1041","1041,1041,1200,1200,,,1200,,,,1041,,,,,,,,,,,,,,,,1200,,,1200,,,1041","1200,,,1200,,,,,,,1041,1041,,,,1041,,,,1200,,,,1200,1200,1200,1200,","1200,1200,1200,1200,,,,,1200,1200,1140,1140,1140,1140,,,1200,,1200,1200","1200,,,1200,1200,,1140,1140,1140,1140,,,1038,1140,1038,1038,1038,1038","1038,1140,1140,,,1140,,,,1038,,,,,,,,,,,,,,,,1140,,,1140,,,1038,1140",",,1140,,1140,,,,,1038,1038,,,,1038,,,,1140,,,,1140,1140,1140,1140,,1140","1140,1140,1140,,,,,1140,1140,1176,1176,1176,1176,,,1140,,1140,1140,1140",",,1140,1140,,1176,1176,1176,1176,,,1159,1176,1159,1159,1159,1159,1159","1176,1176,,,1176,,,,1159,,,,,,,,,,,,,,,,1176,,,1176,,,1159,1176,,,1176",",,,,,,1159,1159,,,,1159,,,,1176,,,,1176,1176,1176,1176,,1176,1176,1176","1176,,,,,1176,1176,,,,,,,1176,,1176,1176,1176,,,1176,1176,725,725,725","725,725,725,725,725,725,725,725,725,725,725,725,725,725,725,725,725","725,725,725,725,,,,725,725,725,725,725,725,725,725,725,725,,,,,,725","725,725,725,725,725,725,725,725,,,725,,,,,,,,725,725,,725,725,725,725","725,725,725,,,725,725,,,,725,725,725,725,,,,,,,,,,,,,,725,725,,725,725","725,725,725,725,725,725,725,725,725,725,,,725,953,953,953,953,,,1099",",1099,1099,1099,1099,1099,,,,953,953,953,953,,1099,,953,953,,,,,953","953,,,953,953,,,,,,,,,1099,,,,,,,,,,953,1099,1099,953,,,1099,953,,,953",",953,,,,,,,953,,,,,,,953,,,,953,953,953,953,,953,953,953,953,,,,,953","953,701,701,701,701,,,953,,953,953,953,,,953,953,,701,701,701,701,,","1036,701,1036,1036,1036,1036,1036,701,701,,,701,,,,1036,,,,,,,,,,,,",",,,701,,,701,,,1036,701,,,701,,701,,,1036,1036,1036,1036,,,,1036,,,","701,,,,701,701,701,701,,701,701,701,701,,,,,701,701,701,889,889,889","889,,701,,701,701,701,,,701,701,,,889,889,889,889,,,1094,889,1094,1094","1094,1094,1094,889,889,,,889,,,,1094,,,,,,,,,,,,,,,,889,,,889,,,1094","889,,,889,,,,,1094,1094,1094,1094,,,,1094,,,,889,,,,889,889,889,889",",889,889,889,889,,,,,889,889,482,482,482,482,,,889,,889,889,889,,,889","889,,482,482,482,482,,,1097,482,1097,1097,1097,1097,1097,482,482,,,482",",,,1097,,,,,,,,,,,,,,,,482,,,482,,,1097,482,,,482,,,,,1097,1097,1097","1097,,,,1097,,,,482,,,,482,482,482,482,,482,482,482,482,,,,,482,482","881,881,881,881,,,482,,482,482,482,,,482,482,,881,881,881,881,,,1186","881,1186,1186,1186,1186,1186,881,881,,,881,,,,1186,,,,,,,,,,,,,,,,881",",,881,,,1186,881,,,881,,881,,,,,1186,1186,,,,1186,,,,881,,,,881,881","881,881,,881,881,881,881,,,,,881,881,875,875,875,875,,,881,,881,881","881,,,881,881,,875,875,875,875,,,,875,875,,,,,875,875,,,875,875,,,,",",,,,,,,,,,,,,,875,,,875,,,,875,,,875,,875,,,,,,,875,,,,,,,875,,,,875","875,875,875,,875,875,875,875,,,,,875,875,874,874,874,874,,,875,,875","875,875,,,875,875,,874,874,874,874,,,,874,874,,,,,874,874,,,874,874",",,,,,,,,,,,,,,,,,,874,,,874,,,,874,,,874,,874,,,,,,,874,,,,,,,874,,",",874,874,874,874,,874,874,874,874,,,,,874,874,871,871,871,871,,,874",",874,874,874,,,874,874,,871,871,871,871,,,1184,871,1184,1184,1184,1184","1184,871,871,,,871,,,,1184,,,,,,,,,,,,,,,,871,,,871,,,1184,871,,,871",",,,,,,1184,1184,,,,1184,,,,871,,,,871,871,871,871,,871,871,871,871,",",,,871,871,483,483,483,483,,,871,,871,871,871,,,871,871,,483,483,483","483,,,1182,483,1182,1182,1182,1182,1182,483,483,,,483,,,,1182,,,,,,",",,,,,,,,,483,,,483,,,1182,483,,,483,,,,,,,1182,1182,,,,1182,,,,483,",",,483,483,483,483,,483,483,483,483,,,,,483,483,1124,1124,1124,1124,",",483,,483,483,483,,,483,483,,1124,1124,1124,1124,,,,1124,,,,,,1124,1124",",,1124,,,,,,,,708,708,708,708,,,,,,,,,1124,,,1124,708,708,708,1124,",",1124,,1124,,,,,708,708,,,708,,,,,1124,,,,1124,1124,1124,1124,,1124","1124,1124,1124,,,,,1124,1124,,,,,,,1124,,1124,1124,1124,,,1124,1124","407,,407,407,407,407,407,,,,,708,708,708,708,407,708,708,708,708,,,",",708,708,891,891,891,891,,,708,,708,708,708,407,407,,,,891,891,891,","407,407,407,407,,,,407,,891,891,,,891,890,890,890,890,,,,,,,,,,,,,890","890,890,,,,,,,,,,,890,890,,,890,,,,,,,,,,,,,,,,891,891,891,891,,891","891,891,891,,,,,891,891,,,,,,,891,,891,891,891,,,,,,,,,890,890,890,890",",890,890,890,890,,,,,890,890,671,671,,,671,,890,,890,890,890,,671,671",",671,671,671,671,671,671,671,,,671,671,,,,671,671,671,671,,,,,,671,",",,,,,,671,671,,671,671,671,671,671,671,671,671,671,671,671,671,626,626","671,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,,,626,626,,,,626","626,626,626,,,,,,626,,,,,,,,626,626,,626,626,626,626,626,626,626,626","626,626,626,626,225,225,626,,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,226,226,225,,226,,,,,,,,226","226,,226,226,226,226,226,226,226,,,226,226,,,,226,226,226,226,,,,,,226",",,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226,226,627","627,226,,627,,,,,,,,627,627,,627,627,627,627,627,627,627,,,627,627,",",,627,627,627,627,,,,,,627,,,,,,,,627,627,,627,627,627,627,627,627,627","627,627,627,627,627,547,547,627,,547,,,,,,,,547,547,,547,547,547,547","547,547,547,,,547,547,,,,547,547,547,547,,,,,,547,,,,,,,,547,547,,547","547,547,547,547,547,547,547,547,547,547,547,475,475,547,,475,,,,,,,","475,475,,475,475,475,475,475,475,475,,,475,475,,,,475,475,475,475,,",",,,475,,,,,,,,475,475,,475,475,475,475,475,475,475,475,475,475,475,475","1152,1152,475,,1152,,,,,,,,1152,1152,,1152,1152,1152,1152,1152,1152","1152,,,1152,1152,,,,1152,1152,1152,1152,,,,,,1152,,,,,,,,1152,1152,","1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,633,633","1152,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,,,633,633,,,,633","633,633,633,,,,,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,633","633,633,633,633,556,556,633,,556,,,,,,,,556,556,,556,556,556,556,556","556,556,,,556,556,,,,556,556,556,556,,,,,,556,,,,,,,,556,556,,556,556","556,556,556,556,556,556,556,556,556,556,557,557,556,,557,,,,,,,,557","557,,557,557,557,557,557,557,557,,,557,557,,,,557,557,557,557,,,,,,557",",,,,,,,557,557,,557,557,557,557,557,557,557,557,557,557,557,557,546","546,557,,546,,,,,,,,546,546,,546,546,546,546,546,546,546,,,546,546,",",,546,546,546,546,,,,,,546,,,,,,,,546,546,,546,546,546,546,546,546,546","546,546,546,546,546,634,634,546,,634,,,,,,,,634,634,,634,634,634,634","634,634,634,,,634,634,,,,634,634,634,634,,,,,,634,,,,,,,,634,634,,634","634,634,634,634,634,634,634,634,634,634,634,1156,1156,634,,1156,,,,",",,,1156,1156,,1156,1156,1156,1156,1156,1156,1156,,,1156,1156,,,,1156","1156,1156,1156,,,,,,1156,,,,,,,,1156,1156,,1156,1156,1156,1156,1156","1156,1156,1156,1156,1156,1156,1156,476,476,1156,,476,,,,,,,,476,476",",476,476,476,476,476,476,476,,,476,476,,,,476,476,476,476,,,,,,476,",",,,,,,476,476,,476,476,476,476,476,476,476,476,476,476,476,476,1157","1157,476,,1157,,,,,,,,1157,1157,,1157,1157,1157,1157,1157,1157,1157",",,1157,1157,,,,1157,1157,1157,1157,,,,,,1157,,,,,,,,1157,1157,,1157","1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,672,672,1157",",672,,,,,,,,672,672,,672,672,672,672,672,672,672,,,672,672,,,,672,672","672,672,,,,,,672,,,,,,,,672,672,,672,672,672,672,672,672,672,672,672","672,672,672,,641,672,641,641,641,641,641,,1180,,1180,1180,1180,1180","1180,641,,,,,,,,1180,,,,,,,,,,,,,,641,,,,,,,,1180,641,641,641,641,,",",641,1180,1180,1180,1180,,,,1180"],racc_action_check=arr=$$$("::","Array").$new(28007,nil),idx=0,$send(clist,"each",[],(($Ruby30$10=function(str){var $$11,self=null==$Ruby30$10.$$s?this:$Ruby30$10.$$s;return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(($$11=function(i){var $writer;null==$$11.$$s||$$11.$$s;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),idx=$rb_plus(idx,1)}).$$s=self,$$11.$$arity=1,$$11))}).$$s=$Ruby30__reduce_none$543,$Ruby30$10.$$arity=1,$Ruby30$10)),racc_action_pointer=[nil,1349,3855,739,nil,401,nil,5413,1392,558,24440,24312,556,nil,509,438,592,429,800,605,nil,-69,5675,1263,24824,307,nil,803,nil,254,5947,6057,6191,6322,6453,nil,2703,23109,23895,nil,175,466,569,146,6715,6846,-44,6977,7108,975,7239,45,185,323,1112,nil,nil,nil,nil,nil,nil,nil,nil,nil,7380,nil,7521,7652,7783,199,nil,7914,8045,nil,nil,8176,22585,23502,23764,nil,nil,nil,nil,nil,nil,nil,nil,nil,529,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,830,nil,nil,110,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,8319,nil,nil,nil,nil,8462,8593,8724,5138,8998,nil,2847,nil,-1,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,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,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,1400,nil,1983,21406,21537,21668,21799,21930,22061,26978,27039,nil,nil,22192,22323,9129,nil,nil,1135,443,389,1466,119,1349,1407,nil,9260,5007,1374,nil,nil,9391,9522,9653,9784,9915,10046,10177,10308,10439,10570,10701,10832,10963,11094,11225,11356,11487,11618,11749,11880,12011,12142,nil,nil,nil,nil,12273,nil,nil,768,698,670,669,658,556,523,417,306,-62,nil,nil,nil,13059,nil,nil,5279,nil,nil,1260,13321,13452,nil,nil,nil,nil,nil,nil,nil,13583,nil,2271,nil,1207,1190,nil,13845,1232,13976,nil,nil,14107,14238,nil,nil,72,nil,14381,960,1178,1144,3423,1158,1186,1142,24034,2991,228,300,409,1216,802,nil,1172,1126,275,1160,1156,nil,nil,nil,1149,255,1099,22978,nil,327,968,3999,3855,1165,nil,1160,15429,nil,15560,1068,4431,1057,nil,607,24910,1055,4143,3999,738,1067,nil,748,730,1081,1049,492,1071,nil,772,179,35,16215,3135,2559,400,1127,993,57,40,692,1050,-18,1078,nil,nil,966,479,372,nil,1108,nil,980,16608,nil,26698,nil,395,398,641,506,401,-32,-34,606,nil,nil,nil,nil,nil,nil,nil,966,24696,nil,nil,nil,nil,961,nil,1030,931,18204,929,nil,nil,911,nil,889,15,1011,nil,nil,1407,nil,nil,nil,nil,nil,1695,858,nil,854,841,526,511,19e3,nil,nil,nil,720,610,865,nil,nil,19275,19411,nil,nil,nil,212,nil,837,27222,27710,19941,345,20203,20334,20465,26016,26506,4431,4719,1014,853,783,782,775,770,5138,5413,5230,4863,3711,4575,3567,3279,3423,3110,3019,3135,4143,1983,5007,nil,231,nil,5279,nil,nil,nil,nil,8855,654,668,689,nil,nil,nil,694,nil,nil,21275,nil,21144,nil,21013,nil,392,nil,nil,nil,20870,907,nil,729,731,nil,nil,735,23633,744,20727,27527,27161,798,787,nil,nil,23240,750,nil,20596,27405,27466,20072,4287,2559,19810,19679,878,879,nil,nil,759,757,762,761,778,nil,782,788,nil,nil,nil,nil,nil,nil,nil,nil,nil,777,961,nil,nil,19548,nil,nil,nil,232,nil,nil,nil,878,nil,nil,880,219,820,19134,949,960,840,881,nil,18859,nil,nil,18728,nil,nil,nil,1551,972,nil,1695,-14,980,1002,38,1035,18597,18466,26917,27100,7,nil,nil,958,nil,27344,27588,18335,nil,nil,189,2415,nil,27894,nil,nil,nil,nil,1362,nil,nil,nil,946,nil,nil,322,nil,357,nil,nil,935,nil,937,nil,nil,nil,24568,nil,18073,944,17930,17799,17668,26856,27832,17537,17394,442,987,17263,17132,17001,16870,990,nil,nil,16739,16477,992,nil,nil,nil,251,-56,332,471,959,1007,nil,992,nil,nil,416,25819,-84,nil,646,nil,nil,7380,26645,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,1056,534,nil,1039,995,25638,nil,1122,nil,1105,173,nil,nil,16346,nil,1031,1036,1137,nil,1022,nil,1069,16084,nil,nil,15953,nil,247,22716,1027,nil,1031,105,343,1099,246,875,1101,1058,22847,nil,1127,-26,1839,1184,15822,nil,nil,717,nil,nil,1296,nil,nil,649,25204,nil,23942,nil,15691,nil,3006,nil,1073,1075,1170,1079,nil,nil,nil,nil,nil,nil,25008,1551,nil,nil,nil,nil,702,240,nil,1201,nil,nil,nil,nil,nil,1208,1209,nil,nil,26,1100,39,31,-1,8,975,1110,964,nil,1103,1119,15298,nil,1237,-23,1121,nil,nil,nil,nil,nil,1263,nil,nil,nil,nil,nil,nil,nil,nil,1127,15167,1140,252,-85,220,0,nil,2127,15036,nil,1139,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,14905,14774,14643,14512,417,1228,26408,121,152,26310,26212,441,-68,1169,1170,nil,26114,nil,1169,1171,1254,1187,nil,1193,25918,26777,26743,nil,nil,nil,nil,nil,13714,nil,nil,1234,nil,nil,1231,1217,nil,nil,539,3567,nil,nil,nil,nil,1220,291,nil,nil,13190,1349,nil,4287,1226,1280,nil,nil,1245,nil,1243,1244,nil,1249,nil,1336,nil,1255,1256,nil,1257,nil,nil,1263,2977,3016,nil,nil,12928,nil,1388,nil,12797,1389,nil,nil,25721,12666,4719,10,1395,nil,1396,451,4863,nil,nil,nil,nil,1279,1333,1316,1311,113,nil,nil,12535,12404,nil,nil,nil,nil,1316,1317,1318,1316,nil,nil,25103,nil,nil,2,nil,nil,1337,1354,1357,nil,nil,nil,1401,1358,-48,nil,24907,nil,1366,nil,nil,-31,nil,nil,2703,1407,nil,nil,1364,1367,nil,1368,1370,1373,nil,1402,1389,1375,22454,nil,nil,nil,2847,nil,1839,nil,nil,36,24173,nil,nil,25822,nil,25400,nil,nil,25302,nil,24081,nil,nil,nil,nil,1393,1398,2415,nil,-10,nil,136,575,-83,nil,nil,nil,nil,216,nil,nil,nil,1523,2127,2271,2113,nil,nil,nil,nil,nil,1043,1447,325,nil,nil,nil,nil,nil,nil,1404,25005,1406,nil,nil,329,nil,nil,1584,nil,nil,25921,nil,nil,26019,nil,25708,nil,nil,-82,23371,1102,-22,nil,4575,32,9,991,167,79,nil,106,136,151,168,3215,3045,3279,nil,6584,5806,26604,nil,nil,nil,nil,239,354,542,nil,nil,nil,nil,nil,nil,25201,245,25397,253,nil,nil,255,287,296,324,nil,356,nil,841,27283,nil,499,5544,27649,27771,33,25498,nil,nil,nil,nil,399,628,3711,nil,nil,nil,427,nil,nil,nil,1969,437,25495,nil,nil,nil,27902,nil,26509,nil,26411,nil,26117,nil,nil,520,531,nil,518,145,146,142,39,541,nil,35,25299,nil,557,566,576,593,143,nil,nil,nil,nil,625,25106,nil,nil,nil,nil,631,nil],racc_action_default=[-1,-729,-4,-729,-2,-714,-5,-729,-8,-729,-729,-729,-729,-31,-729,-729,-36,-729,-729,-305,-48,-716,-729,-57,-729,-65,-66,-67,-71,-282,-282,-282,-318,-345,-346,-83,-13,-87,-95,-97,-729,-611,-612,-729,-729,-729,-729,-729,-729,-235,-729,-716,-626,-626,-253,-296,-297,-298,-299,-300,-301,-302,-303,-304,-702,-307,-311,-728,-692,-326,-328,-729,-729,-59,-59,-714,-729,-729,-729,-347,-348,-350,-351,-352,-353,-410,-551,-552,-553,-554,-575,-557,-558,-577,-579,-562,-567,-571,-573,-589,-590,-591,-575,-593,-595,-596,-597,-598,-700,-600,-601,-701,-603,-604,-605,-606,-607,-608,-609,-610,-615,-616,1219,-3,-715,-724,-725,-726,-7,-729,-729,-729,-729,-729,-9,-4,-19,-729,-126,-127,-128,-129,-130,-131,-132,-136,-137,-138,-139,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-24,-133,-13,-729,-729,-729,-729,-729,-272,-729,-729,-712,-713,-729,-729,-716,-717,-52,-729,-611,-612,-729,-305,-729,-729,-241,-729,-13,-729,-53,-55,-218,-219,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-729,-254,-255,-256,-257,-729,-61,-62,-729,-126,-127,-166,-167,-168,-184,-189,-196,-199,-611,-612,-690,-729,-419,-421,-729,-710,-711,-72,-272,-729,-325,-425,-434,-436,-78,-431,-79,-716,-80,-260,-277,-286,-286,-281,-729,-287,-729,-575,-694,-729,-729,-81,-82,-714,-14,-729,-17,-729,-85,-13,-716,-729,-88,-91,-13,-103,-104,-729,-729,-111,-318,-321,-716,-729,-626,-626,-345,-346,-349,-432,-729,-93,-729,-99,-315,-729,-220,-221,-594,-229,-230,-729,-242,-729,-729,-13,-625,-621,-648,-648,-729,-13,-13,-309,-716,-261,-721,-721,-729,-729,-721,-729,-327,-58,-729,-729,-729,-13,-13,-714,-729,-715,-611,-612,-729,-729,-305,-729,-363,-364,-121,-122,-729,-124,-729,-305,-619,-729,-341,-648,-555,-729,-729,-729,-729,-729,-729,-729,-729,-6,-727,-25,-26,-27,-28,-29,-729,-729,-21,-22,-23,-134,-729,-32,-35,-292,-729,-729,-291,-33,-729,-37,-729,-305,-45,-47,-207,-265,-287,-49,-50,-38,-208,-265,-716,-273,-286,-286,-703,-704,-282,-429,-705,-706,-704,-703,-282,-428,-430,-705,-706,-44,-215,-51,-716,-324,-729,-729,-729,-272,-315,-729,-729,-729,-729,-729,-216,-217,-222,-223,-224,-225,-226,-227,-231,-232,-233,-234,-236,-237,-238,-239,-240,-243,-244,-245,-246,-716,-258,-63,-716,-440,-282,-703,-704,-69,-73,-649,-716,-286,-716,-283,-438,-440,-716,-320,-278,-729,-279,-729,-284,-729,-288,-729,-697,-699,-12,-715,-16,-18,-716,-84,-313,-100,-89,-729,-716,-272,-729,-729,-110,-729,-625,-594,-729,-96,-101,-729,-729,-729,-729,-259,-247,-729,-729,-543,-729,-376,-377,-716,-633,-716,-689,-689,-631,-633,-633,-647,-649,-650,-651,-652,-653,-654,-655,-656,-657,-729,-659,-661,-663,-668,-670,-671,-674,-679,-681,-682,-684,-685,-686,-729,-729,-633,-729,-729,-729,-716,-729,-262,-723,-722,-264,-723,-316,-317,-693,-13,-354,-355,-13,-729,-729,-729,-729,-729,-729,-272,-729,-729,-315,-59,-121,-122,-123,-729,-729,-272,-337,-617,-729,-13,-411,-648,-414,-556,-576,-581,-729,-583,-559,-578,-729,-580,-561,-729,-564,-729,-566,-569,-729,-570,-729,-592,-10,-20,-729,-30,-729,-295,-729,-729,-272,-729,-729,-729,-729,-433,-729,-274,-276,-729,-729,-74,-271,-426,-729,-729,-76,-427,-323,-718,-703,-704,-703,-704,-716,-54,-460,-462,-464,-467,-524,-716,-479,-482,-517,-522,-523,-729,-729,-527,-528,-529,-530,-531,-532,-533,-534,-535,-536,-537,-729,-729,-541,-56,-729,-729,-691,-729,-441,-68,-422,-438,-267,-274,-269,-729,-400,-729,-319,-286,-285,-289,-729,-695,-696,-729,-15,-86,-729,-92,-98,-716,-703,-704,-270,-707,-109,-729,-94,-729,-214,-228,-716,-249,-728,-728,-343,-622,-729,-640,-624,-729,-629,-630,-729,-729,-643,-729,-645,-729,-365,-729,-367,-369,-372,-375,-716,-662,-672,-673,-683,-687,-627,-729,-251,-344,-308,-310,-312,-721,-728,-356,-728,-60,-357,-358,-331,-332,-729,-729,-446,-334,-729,-716,-703,-704,-707,-314,-13,-121,-122,-125,-716,-13,-729,-339,-729,-729,-716,-582,-585,-586,-587,-588,-13,-560,-563,-565,-568,-572,-574,-135,-34,-293,-729,-716,-703,-704,-704,-703,-46,-266,-729,-719,-286,-40,-210,-41,-211,-75,-42,-213,-43,-212,-77,-729,-729,-729,-729,-433,-729,-729,-465,-466,-729,-729,-729,-484,-716,-716,-478,-485,-491,-729,-494,-498,-729,-481,-729,-729,-520,-521,-525,-526,-538,-122,-539,-729,-64,-420,-400,-424,-423,-729,-716,-435,-401,-716,-13,-437,-280,-290,-698,-90,-433,-102,-322,-729,-728,-361,-13,-544,-728,-545,-546,-716,-632,-633,-633,-660,-689,-669,-674,-688,-633,-633,-680,-633,-657,-675,-716,-729,-729,-374,-658,-729,-263,-729,-359,-729,-729,-333,-335,-729,-729,-13,-433,-729,-433,-729,-729,-13,-342,-412,-415,-417,-404,-729,-729,-294,-433,-39,-209,-275,-729,-461,-463,-471,-475,-716,-716,-716,-503,-505,-506,-509,-510,-575,-513,-515,-516,-716,-716,-716,-540,-476,-477,-501,-486,-489,-492,-729,-497,-716,-575,-720,-716,-518,-519,-248,-13,-70,-268,-689,-689,-381,-383,-383,-383,-399,-729,-716,-657,-665,-666,-677,-439,-250,-11,-13,-550,-362,-729,-729,-548,-623,-729,-636,-729,-638,-628,-729,-641,-729,-644,-646,-366,-368,-370,-373,-252,-329,-729,-330,-729,-451,-454,-457,-458,-459,-289,-728,-336,-338,-618,-729,-13,-13,-729,-413,-584,-468,-469,-470,-504,-508,-729,-512,-514,-472,-473,-474,-493,-487,-729,-495,-499,-480,-729,-483,-442,-729,-379,-380,-384,-390,-392,-729,-395,-729,-397,-402,-729,-729,-664,-729,-549,-13,-611,-612,-729,-729,-305,-547,-633,-633,-633,-633,-729,-729,-13,-447,-729,-729,-455,-443,-444,-445,-340,-729,-729,-716,-406,-408,-409,-502,-507,-511,-729,-490,-729,-689,-667,-382,-383,-383,-383,-383,-678,-383,-403,-676,-729,-315,-543,-272,-729,-729,-315,-729,-634,-637,-639,-642,-371,-728,-13,-452,-453,-456,-494,-416,-418,-405,-729,-488,-729,-496,-500,-378,-729,-387,-729,-389,-729,-393,-729,-396,-398,-314,-707,-542,-716,-703,-704,-707,-314,-633,-360,-728,-729,-407,-383,-383,-383,-383,-433,-635,-448,-449,-450,-495,-729,-385,-388,-391,-394,-383,-386],clist=["42,141,141,225,291,42,330,230,623,275,274,380,293,809,409,141,308,308","308,346,346,124,287,458,464,127,416,382,383,365,365,387,764,526,42,334","334,361,309,309,309,436,437,452,373,514,743,518,878,144,144,772,773","342,342,632,584,584,346,346,346,947,233,918,42,8,134,136,217,123,8,385","386,374,391,287,287,310,310,310,349,299,303,449,928,419,420,421,422","469,510,934,342,342,342,127,929,584,564,356,329,950,615,618,603,604","343,343,930,928,607,610,375,378,614,516,443,569,15,443,887,929,42,15","326,443,936,328,1085,371,743,42,932,42,567,600,879,369,735,388,1047","1017,575,575,908,343,343,343,740,292,740,4,15,553,295,302,304,786,967","1049,1134,128,695,723,306,319,320,1148,927,649,651,654,654,1132,1170","642,1032,568,526,892,893,2,15,575,550,550,1028,8,981,993,1177,727,396","927,653,655,423,743,8,746,1003,404,406,737,362,368,216,397,308,432,425","1139,482,483,803,276,42,468,725,475,731,979,991,1018,664,435,435,359","376,730,288,377,395,636,370,988,988,1020,605,531,15,42,808,372,823,961","639,988,1048,15,1148,15,998,1019,1095,1021,1131,640,963,431,442,293","407,442,827,1175,1134,1059,1066,442,1067,509,520,458,464,521,900,459","417,1201,308,308,430,1125,424,1054,1208,953,821,308,1166,1055,1058,975","976,874,694,875,886,889,740,740,517,309,1135,1136,922,329,1010,980,992","309,1,346,988,408,410,780,1047,554,546,42,411,412,413,42,549,1211,1144","334,42,584,346,414,15,1164,438,535,556,438,619,127,310,415,754,438,749","342,334,903,310,1102,1114,940,754,758,740,829,606,15,1126,42,1007,1008","751,834,342,42,42,824,931,929,1086,542,826,1142,896,626,,,,877,537,42","42,534,536,936,1057,776,778,329,,299,,,329,,507,303,343,551,,,,,,127",",828,1145,1040,837,1146,837,326,141,575,538,343,326,1087,929,544,754","671,1198,369,1141,519,,859,754,,,988,864,522,676,15,,,,15,813,,,,15","620,621,622,932,,822,1086,,,584,,,308,910,,144,584,,468,,458,464,1169",",29,,,,,29,15,717,717,663,584,904,15,15,,,845,,724,743,29,1092,1093","1202,,1209,,,15,15,29,29,29,,29,,1086,682,1178,554,780,929,,687,943",",925,,554,,,,346,,459,,308,,994,955,42,346,946,,29,468,855,857,334,29","29,860,862,29,1178,468,,334,913,,,877,877,,,959,342,,,682,,,443,,,342","1006,739,1086,,,,443,443,910,,,443,443,,681,,,935,923,937,686,1210,",",,,29,740,1022,459,,29,29,29,29,29,,29,,459,308,,,343,42,,,42,,468,308","792,343,1179,1191,468,,,818,,933,812,,933,1056,,729,,42,,804,,,,,,,",",675,,,15,,799,308,141,,,825,,,,,468,42,1075,,,,,,42,902,780,780,,,","459,800,676,1127,802,,,,459,676,888,29,29,29,29,29,29,29,1065,,,717","29,29,29,144,,717,717,,901,442,898,274,971,,29,,141,554,1016,442,442","841,854,459,442,442,584,,915,842,346,15,,,15,,850,676,,,,346,924,1037","1039,1090,334,,443,,1042,1044,1107,1045,,15,,334,,,29,,,,342,1015,,29","29,,,435,1120,,1121,342,29,,854,,960,,15,,1022,438,,1022,,15,,,,,29","438,438,,29,676,438,438,1130,29,877,,682,,676,687,,,,,966,,42,343,,",",42,,,,,,,343,,,676,42,,29,,,,,,29,29,,,,,,1115,,1116,780,780,1117,",",29,29,29,,676,,,,,676,676,,,,717,1022,,717,717,,,29,450,,717,,,957","470,,,,717,717,717,869,,442,966,,1030,,880,968,1034,,,,381,381,1052","42,381,1147,,1149,1076,,,,,,,42,,,,,,,,,,1088,,1160,1161,1162,1163,15",",,,,15,,,,,,,,914,29,933,15,717,1015,42,754,1015,,1015,,42,,381,381","381,381,,,,438,,1197,,1026,,1192,,,676,676,676,1064,,,717,1031,,,,,888",",1203,,1204,,1205,,,,717,,,,,,346,29,966,42,956,,,,1207,,346,29,,958","1061,,287,,1217,15,,,42,,,,1109,29,,,1023,15,,1015,342,1015,970,1015",",1015,,,,,342,,,1014,447,448,,,,,,,,471,472,42,42,,,,978,1015,15,,,995","996,,15,1167,1168,,,717,,,346,29,,,29,,,343,1106,,1156,29,,,,,287,343",",,42,29,,,,29,,,,,,,1173,42,342,,508,717,,,,15,18,,,1129,,18,470,,450","717,29,717,308,29,29,,468,29,15,,234,468,1113,29,29,,,,29,29,234,234","234,,18,335,335,42,,,,,,,1154,343,,717,,,,676,,,,15,15,1165,,,1079,1080","1081,,18,,,,,234,234,717,,234,392,402,402,,,,,459,760,,,,,718,718,381",",,1023,,,1023,15,,1023,,1023,17,,1199,,,17,,,15,638,,1014,,,1014,,1014",",,,,18,,,,,234,234,234,234,18,,18,,17,,,,,,,,,,1096,1098,1100,,,,,,",",15,,,,,,,29,,,17,,29,29,,,,,,,,,,29,,,1023,,1023,,1023,,1023,,,,,,",",,29,,1014,379,1014,,1014,,1014,,856,858,,,,861,863,1023,,,18,234,440","234,234,440,234,17,,,,440,234,234,1014,,17,,17,,,,,,,18,,,,,,,,,,,29",",,,,,,,,1206,,,29,,762,,,,,,,1181,1183,1185,1187,,1188,,,,,,,,,234,",",,,,29,234,234,,,,29,,,,234,,29,718,473,,,,,718,718,,,,17,,17,,18,17",",,18,,,17,335,18,1213,1214,1215,1216,,,,,,,,17,,,,1218,,335,,433,446",",,29,,,,,,,18,,,,,,18,18,,,,,29,,,,,,972,41,523,234,18,18,41,,,,,,,856","858,863,861,,,,,,,286,234,539,,,,,,29,29,,,41,333,333,,,,,,17,,,,17",",,,,17,,,,,,,,,,,,528,41,530,,,532,533,,29,,,390,286,286,,,,,,17,,29",",29,29,17,17,,,,,,234,718,,,718,718,,,,17,17,718,,,,,,,,718,718,718",",,29,,972,41,,,,,,,,29,41,,41,,,,,,,,,,,,,,,,381,,,,18,,,,,,,,335,,234",",,,,688,,335,,,,,,,,718,234,,,,,,667,,,,,,,,,,,,,,,,,,,726,,,,,,718",",732,,734,,41,,738,,,,,,,,718,,,,,,,18,747,,18,,,,750,41,,234,,,,,,",",,,234,17,,,18,,,,712,712,767,,770,,,,,,,,,381,,741,,379,,744,,,,18",",,440,234,,,18,,,,,,440,440,,,797,440,440,,,,,,718,,,,,,,,,,,,41,,,","41,,,,333,41,,,,17,,,17,,787,,,,,,,,,333,718,,,,,,,,,17,741,,41,379","718,,718,335,41,41,,,,,,,446,,335,,,,,,41,41,17,,,17,,,,17,,,,,,17,17",",718,,17,17,711,711,,,,,,,,,,,,,843,,,,,,718,,,741,379,,,,,,,18,,,,","18,234,,,,,381,381,,,,18,,,,,,916,,,,,,,,,,,,440,,,,,,,,,,712,,944,","741,,712,712,,,,,,911,,,912,,,,,,,,,,,,,,,,19,,,,921,19,,,,,,,,,18,",",,939,,,41,,,,17,18,,,333,17,,,,19,337,337,,333,,,17,,,,,,,,,,,,,,234","977,,,17,,18,,,19,,,18,,,,,,,394,403,403,,,,,,,969,,,,,1012,,,,,,,,",",,,,41,,,41,,,,,1035,,,711,,,17,18,,711,711,,,19,,1046,41,,17,,1104",",19,,19,,18,,,712,1110,,712,712,,,,,,712,,,,41,,,,712,712,712,41,,,17","1071,1072,1073,,,17,,,,18,18,,,,,,,,,,,,,,,,,1089,,,1060,,,,,,,,,,,",",,,,1151,710,710,379,18,,,19,17,441,,712,441,,,,,18,441,234,234,,709","709,,333,,17,,,,,19,,,,333,,,,,,,712,,,,,,,,,234,,,,,,,712,,,,18,17","17,,,,,,713,713,711,,,711,711,,,,,,711,,,,,,,,711,711,711,,41,,,,,41",",,,,17,,,,,,41,19,,,,19,,17,,337,19,,,,,,,,,,,,,,,,,,337,,,712,,,,32",",,,,32,19,,,711,,,19,19,,,,,17,,32,,,,,,,,19,19,32,32,32,,32,,712,,","41,,711,,,,,,,,,712,41,712,,,,,711,,,,,,,32,,,,,32,32,,,32,710,,,,,","710,710,,,,,41,,712,,,,41,,,709,,,,,,709,709,,,,,,,,,,712,,,,,715,715",",,,32,,,,,32,32,32,32,32,,32,,,,,,,711,41,,,713,,,,,,713,713,,,286,",",,,,41,,,,1108,,,,,,,,,,,,,,19,,711,,,,,,337,,,,,,,,711,337,711,41,41",",,,,,,,,,,,,,,,,,32,32,32,32,32,32,32,,,,,32,32,32,,,711,,286,,,,41",",,32,,,710,,,710,710,,,41,,,710,,711,,19,,,19,710,710,710,709,,,709","709,,,,,,709,,,,,,,19,709,709,709,,32,,833,,,,,32,32,,41,,,,,,32,,,",",,19,,,441,,713,,19,713,713,,,32,441,441,713,32,710,441,441,,32,,713","713,713,,715,,,,,,715,715,,,,709,,,,,,,,,,,710,,,32,,,,,,32,32,,,,,","710,,,,,709,,,32,32,32,,,,,,,337,,,,709,713,,,,,,337,32,,,,,,,,,,,,",",,,,,,,,,,,,713,,,,,,,,,,,,,,,,713,,,,,,,,,,,,,710,,,,19,,,,,19,,,,",",,,,32,,19,709,,,,,,,,,,,,,,,,,441,,710,,,,,716,716,,,715,,,715,715","710,,710,,,715,,709,,,,,,715,715,715,713,,,,,709,32,709,,,,,,,714,714","32,,,,,,710,,19,,,,,,,,32,,,,19,,,,713,,,709,,,710,,,,,,,,713,,713,",",,,715,,,,,,709,,,,19,,,,,,19,,,,,,,,,32,,,32,,,713,715,,,32,,,,,,241",",,,32,,,715,32,,307,307,307,,713,,,,,,,,354,355,19,357,358,,360,,,,",",,32,,403,32,32,,,32,19,,307,307,1112,32,32,,,,32,32,,,,,,,,,,,,,,,",",,,,,,,,,,19,19,,,,,,,,,715,,716,,,,,,716,716,,,,,,,,,,,,,,,,,,403,",",,19,,,,,,,,,715,714,,,19,,,714,714,,,,,,715,,715,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,19,,715,,,,,32,,,,,32,32,,,,307,445,,,451,307,32,,,715","451,,,,,,,,,,,,,241,32,,,,484,485,486,487,488,489,490,491,492,493,494","495,496,497,498,499,500,501,502,503,504,505,,,,,506,,,,,,,,,,,716,,","716,716,,,,,,716,,307,307,,32,,,716,716,716,307,,,,,,32,307,,307,,,307","307,,,,,714,,,714,714,,,,,,714,,,,,,,32,714,714,714,,,32,,,,,,32,,,",",,,559,,560,,,,,716,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,716,,,32,,,,714,",",,,,,,,716,,,,,,32,,,,,,,,,,,,,,307,,,714,,,,,,,,,,,,,,,,714,,,,32,32",",,,,,,,,,,,,,,,,,,307,,451,451,451,,,,,,,,,,,,,,,,716,32,,,,,,,,,,,",",32,,32,32,355,,,,,,,,,,307,,307,,307,,,,,,,714,716,,,,,,,,307,32,,",",,716,,716,,451,,32,761,,,,763,,,,,,,,,,,,,,714,,,,,,,,,,,,307,716,714",",714,,,,,,,,,,794,,,,,,307,,,307,,716,,,,,,,,,,,307,307,,,714,,,,,,","307,,,,,,,,,,,,,,,,,714,,,,,,,,,,,,,,,,307,451,307,,,,851,,,307,307","451,451,,,,451,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307",",,,,,,,,307,,,307,,,,,,,,,,,,,,,,,,,,307,,,,,,,,,,,,,,307,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307,,,,,,,,451",",,,,,,,,,,,,451,451,451,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1009,,,,,,,",",,,,,,,,,,,,1027,,,,,,,,,,,,,,,,,,,,,,,,,,,,1050,,,,,,,,,307,,,,,,,",",,,,,,,,,,,307,451,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,307"],racc_goto_table=arr=$$$("::","Array").$new(4137,nil),idx=0,$send(clist,"each",[],(($Ruby30$12=function(str){var $$13,self=null==$Ruby30$12.$$s?this:$Ruby30$12.$$s;return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(($$13=function(i){var $writer;null==$$13.$$s||$$13.$$s;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),idx=$rb_plus(idx,1)}).$$s=self,$$13.$$arity=1,$$13))}).$$s=$Ruby30__reduce_none$543,$Ruby30$12.$$arity=1,$Ruby30$12)),clist=["71,74,74,33,154,71,67,35,111,42,44,106,33,112,194,74,51,51,51,82,82","7,71,54,54,116,194,19,19,86,86,19,12,93,71,71,71,35,87,87,87,24,24,31","86,56,233,91,171,76,76,135,135,45,45,72,224,224,82,82,82,110,22,13,71","8,9,17,17,5,8,40,40,87,71,71,71,89,89,89,68,90,90,28,142,19,19,19,19","28,54,142,45,45,45,116,225,224,10,79,11,13,109,109,10,10,47,47,131,142","88,88,89,89,88,31,20,91,23,20,183,225,71,23,63,20,229,64,188,8,233,71","196,71,153,153,172,118,57,5,125,141,219,219,143,47,47,47,94,49,94,2","23,69,55,55,55,127,145,128,148,6,37,37,62,62,62,230,223,209,209,209","209,147,189,153,201,140,93,198,198,3,23,219,218,218,14,8,174,174,189","157,23,223,208,208,8,233,8,16,174,73,73,157,81,81,18,21,51,25,27,188","38,39,41,48,71,74,50,33,59,171,171,142,77,87,87,83,85,92,104,105,113","115,119,196,196,145,120,194,23,71,111,121,122,123,124,196,129,23,230","23,187,133,138,139,146,149,150,22,22,33,151,22,152,188,148,174,155,22","156,158,160,54,54,161,164,90,6,147,51,51,11,165,2,166,167,168,72,51","169,170,173,176,178,179,31,180,184,185,94,94,87,87,191,192,200,11,143","172,172,87,1,82,196,204,205,126,125,67,33,71,206,207,210,71,35,188,141","71,71,224,82,211,23,128,23,7,33,23,19,116,89,212,54,23,69,45,71,57,89","145,142,127,54,69,94,213,35,23,13,71,198,198,31,214,45,71,71,217,227","225,187,68,10,228,72,33,,,,37,9,71,71,5,8,229,172,222,222,11,,90,,,11",",49,90,47,79,,,,,,116,,153,142,135,209,142,209,63,74,219,64,47,63,183","225,64,54,33,110,118,131,62,,56,54,,,196,56,62,35,23,,,,23,31,,,,23","11,11,5,196,,31,187,,,224,,,51,93,,76,224,,74,,54,54,171,,58,,,,,58","23,71,71,17,224,91,23,23,,,31,,35,233,58,135,135,142,,13,,,23,23,58","58,58,,58,,187,90,187,67,126,225,,90,126,,91,,67,,,,82,,90,,51,,72,109","71,82,88,,58,74,28,28,71,58,58,28,28,58,187,74,,71,69,,,37,37,,,10,45",",,90,,,20,,,45,37,89,187,,,,20,20,93,,,20,20,,55,,,140,24,140,55,112",",,,,58,94,224,90,,58,58,58,58,58,,58,,90,51,,,47,71,,,71,,74,51,116","47,135,12,74,,,40,,136,87,,136,37,,55,,71,,116,,,,,,,,,32,,,23,,89,51","74,,,116,,,,,74,71,37,,,,,,71,106,126,126,,,,90,11,35,111,11,,,,90,35","35,58,58,58,58,58,58,58,10,,,71,58,58,58,76,,71,71,,154,22,42,44,28",",58,,74,67,140,22,22,17,89,90,22,22,224,,67,8,82,23,,,23,,8,35,,,,82","86,222,222,10,71,,20,,222,222,109,222,,23,,71,,,58,,,,45,136,,58,58",",,87,109,,109,45,58,,89,,19,,23,,224,23,,224,,23,,,,,58,23,23,,58,35","23,23,10,58,37,,90,,35,90,,,,,35,,71,47,,,,71,,,,,,,47,,,35,71,,58,",",,,,58,58,,,,,,140,,140,126,126,140,,,58,58,58,,35,,,,,35,35,,,,71,224",",71,71,,,58,78,,71,,,11,78,,,,71,71,71,32,,22,35,,86,,32,11,86,,,,26","26,19,71,26,140,,140,194,,,,,,,71,,,,,,,,,,194,,222,222,222,222,23,",",,,23,,,,,,,,32,58,136,23,71,136,71,54,136,,136,,71,,26,26,26,26,,,","23,,140,,11,,31,,,35,35,35,116,,,71,11,,,,,35,,140,,140,,140,,,,71,",",,,,82,58,35,71,32,,,,222,,82,58,,32,11,,71,,140,23,,,71,,,,71,58,,","226,23,,136,45,136,32,136,,136,,,,,45,,,130,26,26,,,,,,,,26,26,71,71",",,,32,136,23,,,32,32,,23,19,19,,,71,,,82,58,,,58,,,47,11,,33,58,,,,","71,47,,,71,58,,,,58,,,,,,,35,71,45,,26,71,,,,23,30,,,11,,30,78,,78,71","58,71,51,58,58,,74,58,23,,30,74,23,58,58,,,,58,58,30,30,30,,30,30,30","71,,,,,,,11,47,,71,,,,35,,,,23,23,11,,,32,32,32,,30,,,,,30,30,71,,30","30,30,30,,,,,90,78,,,,,108,108,26,,,226,,,226,23,,226,,226,29,,11,,","29,,,23,26,,130,,,130,,130,,,,,30,,,,,30,30,30,30,30,,30,,29,,,,,,,",",,137,137,137,,,,,,,,23,,,,,,,58,,,29,,58,58,,,,,,,,,,58,,,226,,226",",226,,226,,,,,,,,,58,,130,84,130,,130,,130,,78,78,,,,78,78,226,,,30","30,30,30,30,30,30,29,,,,30,30,30,130,,29,,29,,,,,,,30,,,,,,,,,,,58,",",,,,,,,32,,,58,,26,,,,,,,137,137,137,137,,137,,,,,,,,,30,,,,,,58,30","30,,,,58,,,,30,,58,108,65,,,,,108,108,,,,29,,29,,30,29,,,30,,,29,30","30,137,137,137,137,,,,,,,,29,,,,137,,30,,84,84,,,58,,,,,,,30,,,,,,30","30,,,,,58,,,,,,78,70,65,30,30,30,70,,,,,,,78,78,78,78,,,,,,,70,30,65",",,,,,58,58,,,70,70,70,,,,,,29,,,,29,,,,,29,,,,,,,,,,,,84,70,84,,,84","84,,58,,,70,70,70,,,,,,29,,58,,58,58,29,29,,,,,,30,108,,,108,108,,,","29,29,108,,,,,,,,108,108,108,,,58,,78,70,,,,,,,,58,70,,70,,,,,,,,,,",",,,,,26,,,,30,,,,,,,,30,,30,,,,,65,,30,,,,,,,,108,30,,,,,,84,,,,,,,",",,,,,,,,,,,65,,,,,,108,,65,,65,,70,,65,,,,,,,,108,,,,,,,30,65,,30,,",",65,70,,30,,,,,,,,,,30,29,,,30,,,,99,99,65,,65,,,,,,,,,26,,84,,84,,84",",,,30,,,30,30,,,30,,,,,,30,30,,,65,30,30,,,,,,108,,,,,,,,,,,,70,,,,70",",,,70,70,,,,29,,,29,,84,,,,,,,,,70,108,,,,,,,,,29,84,,70,84,108,,108","30,70,70,,,,,,,84,,30,,,,,,70,70,29,,,29,,,,29,,,,,,29,29,,108,,29,29","98,98,,,,,,,,,,,,,84,,,,,,108,,,84,84,,,,,,,30,,,,,30,30,,,,,26,26,",",,30,,,,,,65,,,,,,,,,,,,30,,,,,,,,,,99,,65,,84,,99,99,,,,,,84,,,84,",",,,,,,,,,,,,,,34,,,,84,34,,,,,,,,,30,,,,84,,,70,,,,29,30,,,70,29,,,","34,34,34,,70,,,29,,,,,,,,,,,,,,30,65,,,29,,30,,,34,,,30,,,,,,,34,34","34,,,,,,,84,,,,,65,,,,,,,,,,,,,70,,,70,,,,,65,,,98,,,29,30,,98,98,,","34,,65,70,,29,,30,,34,,34,,30,,,99,30,,99,99,,,,,,99,,,,70,,,,99,99","99,70,,,29,65,65,65,,,29,,,,30,30,,,,,,,,,,,,,,,,,65,,,84,,,,,,,,,,",",,,,,30,97,97,84,30,,,34,29,34,,99,34,,,,,30,34,30,30,,96,96,,70,,29",",,,,34,,,,70,,,,,,,99,,,,,,,,,30,,,,,,,99,,,,30,29,29,,,,,,100,100,98",",,98,98,,,,,,98,,,,,,,,98,98,98,,70,,,,,70,,,,,29,,,,,,70,34,,,,34,","29,,34,34,,,,,,,,,,,,,,,,,,34,,,99,,,,61,,,,,61,34,,,98,,,34,34,,,,","29,,61,,,,,,,,34,34,61,61,61,,61,,99,,,70,,98,,,,,,,,,99,70,99,,,,,98",",,,,,,61,,,,,61,61,,,61,97,,,,,,97,97,,,,,70,,99,,,,70,,,96,,,,,,96","96,,,,,,,,,,99,,,,,102,102,,,,61,,,,,61,61,61,61,61,,61,,,,,,,98,70",",,100,,,,,,100,100,,,70,,,,,,70,,,,70,,,,,,,,,,,,,,34,,98,,,,,,34,,",",,,,,98,34,98,70,70,,,,,,,,,,,,,,,,,,61,61,61,61,61,61,61,,,,,61,61","61,,,98,,70,,,,70,,,61,,,97,,,97,97,,,70,,,97,,98,,34,,,34,97,97,97","96,,,96,96,,,,,,96,,,,,,,34,96,96,96,,61,,34,,,,,61,61,,70,,,,,,61,",",,,,34,,,34,,100,,34,100,100,,,61,34,34,100,61,97,34,34,,61,,100,100","100,,102,,,,,,102,102,,,,96,,,,,,,,,,,97,,,61,,,,,,61,61,,,,,,97,,,",",96,,,61,61,61,,,,,,,34,,,,96,100,,,,,,34,61,,,,,,,,,,,,,,,,,,,,,,,",",100,,,,,,,,,,,,,,,,100,,,,,,,,,,,,,97,,,,34,,,,,34,,,,,,,,,61,,34,96",",,,,,,,,,,,,,,,,34,,97,,,,,103,103,,,102,,,102,102,97,,97,,,102,,96",",,,,,102,102,102,100,,,,,96,61,96,,,,,,,101,101,61,,,,,,97,,34,,,,,",",,61,,,,34,,,,100,,,96,,,97,,,,,,,,100,,100,,,,,102,,,,,,96,,,,34,,",",,,34,,,,,,,,,61,,,61,,,100,102,,,61,,,,,,36,,,,61,,,102,61,,36,36,36",",100,,,,,,,,36,36,34,36,36,,36,,,,,,,61,,34,61,61,,,61,34,,36,36,34","61,61,,,,61,61,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,,,,,102,,103,,,,,","103,103,,,,,,,,,,,,,,,,,,34,,,,34,,,,,,,,,102,101,,,34,,,101,101,,,",",,102,,102,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,102,,,,,61,,,,,61,61",",,,36,36,,,36,36,61,,,102,36,,,,,,,,,,,,,36,61,,,,36,36,36,36,36,36","36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,,,,,36,,,,,,,,,,,103",",,103,103,,,,,,103,,36,36,,61,,,103,103,103,36,,,,,,61,36,,36,,,36,36",",,,,101,,,101,101,,,,,,101,,,,,,,61,101,101,101,,,61,,,,,,61,,,,,,,36",",36,,,,,103,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,103,,,61,,,,101,,,,,,,,,103",",,,,,61,,,,,,,,,,,,,,36,,,101,,,,,,,,,,,,,,,,101,,,,61,61,,,,,,,,,,",",,,,,,,,36,,36,36,36,,,,,,,,,,,,,,,,103,61,,,,,,,,,,,,,61,,61,61,36",",,,,,,,,,36,,36,,36,,,,,,,101,103,,,,,,,,36,61,,,,,103,,103,,36,,61","36,,,,36,,,,,,,,,,,,,,101,,,,,,,,,,,,36,103,101,,101,,,,,,,,,,36,,,",",,36,,,36,,103,,,,,,,,,,,36,36,,,101,,,,,,,36,,,,,,,,,,,,,,,,,101,,",",,,,,,,,,,,,,36,36,36,,,,36,,,36,36,36,36,,,,36,36,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,36,,,36,,,,,,,,,,,,,,,,,,,","36,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,36,,,,,,,,36,,,,,,,,,,,,,36,36,36,36,,,,,,,,,,,,,,,,",",,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,",",,,,,,,36,,,,,,,,,,,,,,,,,,,36,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,36"],racc_goto_check=arr=$$$("::","Array").$new(4137,nil),idx=0,$send(clist,"each",[],(($Ruby30$14=function(str){var $$15,self=null==$Ruby30$14.$$s?this:$Ruby30$14.$$s;return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(($$15=function(i){var $writer;null==$$15.$$s||$$15.$$s;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1)),idx=$rb_plus(idx,1)}).$$s=self,$$15.$$arity=1,$$15))}).$$s=$Ruby30__reduce_none$543,$Ruby30$14.$$arity=1,$Ruby30$14)),racc_goto_pointer=[nil,312,149,181,nil,64,154,16,63,57,-265,64,-531,-701,-732,nil,-336,57,195,-44,-104,131,40,116,-178,-10,832,74,-140,1226,1125,-181,196,-15,2017,-14,2981,-320,-33,-33,-2,-405,-15,nil,-14,16,nil,69,191,122,-289,-16,nil,nil,-202,125,-250,-382,471,-293,nil,2372,132,88,91,1203,nil,-31,42,-197,1505,-2,-345,124,-9,nil,39,-205,654,53,nil,152,-18,178,1258,161,-23,6,-264,45,52,-249,-281,-277,-377,nil,1768,1747,1430,1286,1817,2433,2009,2394,206,163,-58,nil,732,-280,-739,-380,-609,156,nil,-171,20,nil,84,169,-133,177,-392,-580,-160,-801,-268,-428,-783,-693,145,-663,nil,-654,nil,-519,-142,256,-762,-652,-189,-766,-684,-592,nil,-670,-812,-895,-908,-150,-569,177,-376,-232,-21,-696,-695,-318,-19,nil,-28,-26,nil,nil,-452,-778,-668,-913,-523,-831,-662,-653,-565,-661,-686,nil,-577,nil,-577,-405,-403,nil,nil,-582,-404,-404,nil,-629,-873,-950,nil,-770,-769,nil,-76,nil,-639,nil,-528,nil,-459,-746,nil,nil,227,223,228,228,-218,-241,228,236,245,-289,-282,nil,nil,-268,-158,-224,nil,nil,-184,-600,-310,-672,128,-401,-716,-649,-930,nil,nil,-481],racc_goto_default=[nil,nil,nil,nil,5,nil,6,389,324,nil,nil,563,nil,948,nil,321,322,nil,nil,nil,13,14,20,239,nil,nil,16,nil,439,240,353,nil,nil,634,238,474,23,997,nil,nil,nil,nil,nil,384,143,52,24,53,nil,nil,nil,25,26,27,757,nil,nil,nil,341,nil,28,338,453,35,nil,nil,37,40,39,nil,235,236,401,nil,461,142,87,nil,444,103,49,nil,54,273,313,nil,919,454,nil,455,466,nil,683,524,311,297,55,56,57,58,59,60,61,62,63,nil,298,69,70,nil,nil,nil,nil,nil,77,nil,616,78,363,nil,nil,nil,nil,nil,nil,782,583,nil,783,784,571,565,566,1143,1013,nil,572,nil,nil,nil,601,nil,574,nil,906,nil,nil,nil,581,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,465,nil,nil,736,728,nil,nil,nil,nil,nil,nil,nil,nil,nil,882,nil,696,705,697,698,nil,nil,699,700,nil,nil,nil,881,883,nil,884,982,983,984,985,nil,989,592,990,704,706,nil,nil,86,88,89,nil,nil,nil,nil,644,nil,nil,nil,nil,nil,99,100,nil,364,926,367,570,769,573,938,586,588,589,1024,593,1025,596,599,316],racc_reduce_table=[0,0,"racc_error",0,150,"_reduce_1",2,148,"_reduce_2",2,149,"_reduce_3",0,151,"_reduce_4",1,151,"_reduce_5",3,151,"_reduce_6",2,151,"_reduce_7",1,153,"_reduce_none",2,153,"_reduce_9",3,156,"_reduce_10",4,157,"_reduce_11",2,158,"_reduce_12",0,162,"_reduce_13",1,162,"_reduce_14",3,162,"_reduce_15",2,162,"_reduce_16",1,163,"_reduce_none",2,163,"_reduce_18",0,174,"_reduce_19",4,155,"_reduce_20",3,155,"_reduce_21",3,155,"_reduce_22",3,155,"_reduce_23",2,155,"_reduce_24",3,155,"_reduce_25",3,155,"_reduce_26",3,155,"_reduce_27",3,155,"_reduce_28",3,155,"_reduce_29",4,155,"_reduce_30",1,155,"_reduce_none",3,155,"_reduce_32",3,155,"_reduce_33",5,155,"_reduce_34",3,155,"_reduce_35",1,155,"_reduce_none",3,167,"_reduce_37",3,167,"_reduce_38",6,167,"_reduce_39",5,167,"_reduce_40",5,167,"_reduce_41",5,167,"_reduce_42",5,167,"_reduce_43",3,167,"_reduce_44",1,175,"_reduce_none",3,175,"_reduce_46",1,175,"_reduce_none",1,173,"_reduce_none",3,173,"_reduce_49",3,173,"_reduce_50",3,173,"_reduce_51",2,173,"_reduce_52",0,185,"_reduce_53",4,173,"_reduce_54",0,186,"_reduce_55",4,173,"_reduce_56",1,173,"_reduce_none",1,166,"_reduce_none",0,190,"_reduce_59",3,187,"_reduce_60",1,189,"_reduce_61",2,192,"_reduce_62",0,197,"_reduce_63",5,194,"_reduce_64",1,169,"_reduce_none",1,169,"_reduce_none",1,199,"_reduce_none",4,199,"_reduce_68",0,206,"_reduce_69",4,203,"_reduce_70",1,205,"_reduce_none",2,198,"_reduce_72",3,198,"_reduce_73",4,198,"_reduce_74",5,198,"_reduce_75",4,198,"_reduce_76",5,198,"_reduce_77",2,198,"_reduce_78",2,198,"_reduce_79",2,198,"_reduce_80",2,198,"_reduce_81",2,198,"_reduce_82",1,168,"_reduce_83",3,168,"_reduce_84",1,211,"_reduce_85",3,211,"_reduce_86",1,210,"_reduce_none",2,210,"_reduce_88",3,210,"_reduce_89",5,210,"_reduce_90",2,210,"_reduce_91",4,210,"_reduce_92",2,210,"_reduce_93",4,210,"_reduce_94",1,210,"_reduce_95",3,210,"_reduce_96",1,214,"_reduce_none",3,214,"_reduce_98",2,213,"_reduce_99",3,213,"_reduce_100",1,216,"_reduce_101",3,216,"_reduce_102",1,215,"_reduce_103",1,215,"_reduce_104",4,215,"_reduce_105",3,215,"_reduce_106",3,215,"_reduce_107",3,215,"_reduce_108",3,215,"_reduce_109",2,215,"_reduce_110",1,215,"_reduce_111",1,170,"_reduce_112",1,170,"_reduce_113",4,170,"_reduce_114",3,170,"_reduce_115",3,170,"_reduce_116",3,170,"_reduce_117",3,170,"_reduce_118",2,170,"_reduce_119",1,170,"_reduce_120",1,219,"_reduce_121",1,219,"_reduce_none",2,220,"_reduce_123",1,220,"_reduce_124",3,220,"_reduce_125",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,164,"_reduce_131",1,164,"_reduce_none",1,165,"_reduce_133",0,224,"_reduce_134",4,165,"_reduce_135",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",3,183,"_reduce_207",3,183,"_reduce_208",6,183,"_reduce_209",5,183,"_reduce_210",5,183,"_reduce_211",5,183,"_reduce_212",5,183,"_reduce_213",4,183,"_reduce_214",3,183,"_reduce_215",3,183,"_reduce_216",3,183,"_reduce_217",2,183,"_reduce_218",2,183,"_reduce_219",2,183,"_reduce_220",2,183,"_reduce_221",3,183,"_reduce_222",3,183,"_reduce_223",3,183,"_reduce_224",3,183,"_reduce_225",3,183,"_reduce_226",3,183,"_reduce_227",4,183,"_reduce_228",2,183,"_reduce_229",2,183,"_reduce_230",3,183,"_reduce_231",3,183,"_reduce_232",3,183,"_reduce_233",3,183,"_reduce_234",1,183,"_reduce_none",3,183,"_reduce_236",3,183,"_reduce_237",3,183,"_reduce_238",3,183,"_reduce_239",3,183,"_reduce_240",2,183,"_reduce_241",2,183,"_reduce_242",3,183,"_reduce_243",3,183,"_reduce_244",3,183,"_reduce_245",3,183,"_reduce_246",3,183,"_reduce_247",6,183,"_reduce_248",4,183,"_reduce_249",6,183,"_reduce_250",4,183,"_reduce_251",6,183,"_reduce_252",1,183,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",3,227,"_reduce_258",3,227,"_reduce_259",1,231,"_reduce_none",1,232,"_reduce_none",2,232,"_reduce_none",4,232,"_reduce_263",2,232,"_reduce_264",1,225,"_reduce_none",3,225,"_reduce_266",3,237,"_reduce_267",5,237,"_reduce_268",3,237,"_reduce_269",0,239,"_reduce_270",1,239,"_reduce_none",0,178,"_reduce_272",1,178,"_reduce_none",2,178,"_reduce_none",4,178,"_reduce_275",2,178,"_reduce_276",1,209,"_reduce_277",2,209,"_reduce_278",2,209,"_reduce_279",4,209,"_reduce_280",1,209,"_reduce_281",0,242,"_reduce_282",2,202,"_reduce_283",2,241,"_reduce_284",2,240,"_reduce_285",0,240,"_reduce_286",1,234,"_reduce_287",2,234,"_reduce_288",3,234,"_reduce_289",4,234,"_reduce_290",1,172,"_reduce_291",1,172,"_reduce_none",3,171,"_reduce_293",4,171,"_reduce_294",2,171,"_reduce_295",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_306",0,266,"_reduce_307",4,229,"_reduce_308",0,267,"_reduce_309",4,229,"_reduce_310",0,268,"_reduce_311",4,229,"_reduce_312",3,229,"_reduce_313",3,229,"_reduce_314",2,229,"_reduce_315",3,229,"_reduce_316",3,229,"_reduce_317",1,229,"_reduce_318",4,229,"_reduce_319",3,229,"_reduce_320",1,229,"_reduce_321",5,229,"_reduce_322",4,229,"_reduce_323",3,229,"_reduce_324",2,229,"_reduce_325",1,229,"_reduce_none",2,229,"_reduce_327",1,229,"_reduce_none",6,229,"_reduce_329",6,229,"_reduce_330",4,229,"_reduce_331",4,229,"_reduce_332",5,229,"_reduce_333",4,229,"_reduce_334",5,229,"_reduce_335",6,229,"_reduce_336",0,269,"_reduce_337",6,229,"_reduce_338",0,270,"_reduce_339",7,229,"_reduce_340",0,271,"_reduce_341",5,229,"_reduce_342",4,229,"_reduce_343",4,229,"_reduce_344",1,229,"_reduce_345",1,229,"_reduce_346",1,229,"_reduce_347",1,229,"_reduce_348",1,177,"_reduce_none",1,261,"_reduce_350",1,264,"_reduce_351",1,193,"_reduce_352",1,208,"_reduce_353",1,256,"_reduce_none",1,256,"_reduce_none",2,256,"_reduce_356",1,188,"_reduce_none",1,188,"_reduce_none",1,257,"_reduce_none",5,257,"_reduce_360",1,160,"_reduce_none",2,160,"_reduce_362",1,260,"_reduce_none",1,260,"_reduce_none",1,272,"_reduce_365",3,272,"_reduce_366",1,275,"_reduce_367",3,275,"_reduce_368",1,274,"_reduce_none",3,274,"_reduce_370",5,274,"_reduce_371",1,274,"_reduce_372",3,274,"_reduce_373",2,276,"_reduce_374",1,276,"_reduce_375",1,277,"_reduce_none",1,277,"_reduce_none",4,280,"_reduce_378",2,280,"_reduce_379",2,280,"_reduce_380",1,280,"_reduce_381",2,284,"_reduce_382",0,284,"_reduce_383",1,285,"_reduce_none",6,286,"_reduce_385",8,286,"_reduce_386",4,286,"_reduce_387",6,286,"_reduce_388",4,286,"_reduce_389",2,286,"_reduce_none",6,286,"_reduce_391",2,286,"_reduce_392",4,286,"_reduce_393",6,286,"_reduce_394",2,286,"_reduce_395",4,286,"_reduce_396",2,286,"_reduce_397",4,286,"_reduce_398",1,286,"_reduce_none",0,290,"_reduce_400",1,290,"_reduce_401",3,291,"_reduce_402",4,291,"_reduce_403",1,292,"_reduce_404",4,292,"_reduce_405",1,293,"_reduce_406",3,293,"_reduce_407",1,294,"_reduce_408",1,294,"_reduce_none",0,298,"_reduce_410",0,299,"_reduce_411",5,255,"_reduce_412",4,296,"_reduce_413",1,296,"_reduce_414",0,302,"_reduce_415",4,297,"_reduce_416",0,303,"_reduce_417",4,297,"_reduce_418",0,305,"_reduce_419",4,301,"_reduce_420",2,200,"_reduce_421",4,200,"_reduce_422",5,200,"_reduce_423",5,200,"_reduce_424",2,254,"_reduce_425",4,254,"_reduce_426",4,254,"_reduce_427",3,254,"_reduce_428",3,254,"_reduce_429",3,254,"_reduce_430",2,254,"_reduce_431",1,254,"_reduce_432",4,254,"_reduce_433",0,307,"_reduce_434",4,253,"_reduce_435",0,308,"_reduce_436",4,253,"_reduce_437",0,309,"_reduce_438",3,204,"_reduce_439",0,310,"_reduce_440",0,311,"_reduce_441",4,304,"_reduce_442",5,258,"_reduce_443",1,312,"_reduce_444",1,312,"_reduce_none",0,315,"_reduce_446",0,316,"_reduce_447",7,259,"_reduce_448",1,314,"_reduce_449",1,314,"_reduce_none",1,313,"_reduce_451",3,313,"_reduce_452",3,313,"_reduce_453",1,317,"_reduce_none",2,317,"_reduce_455",3,317,"_reduce_456",1,317,"_reduce_457",1,317,"_reduce_458",1,317,"_reduce_459",1,184,"_reduce_none",3,322,"_reduce_461",1,322,"_reduce_none",3,324,"_reduce_463",1,324,"_reduce_none",1,326,"_reduce_465",1,327,"_reduce_466",1,325,"_reduce_none",4,325,"_reduce_468",4,325,"_reduce_469",4,325,"_reduce_470",3,325,"_reduce_471",4,325,"_reduce_472",4,325,"_reduce_473",4,325,"_reduce_474",3,325,"_reduce_475",3,325,"_reduce_476",3,325,"_reduce_477",2,325,"_reduce_478",0,331,"_reduce_479",4,325,"_reduce_480",2,325,"_reduce_481",0,332,"_reduce_482",4,325,"_reduce_483",1,318,"_reduce_484",1,318,"_reduce_485",2,318,"_reduce_486",3,318,"_reduce_487",5,318,"_reduce_488",2,318,"_reduce_489",4,318,"_reduce_490",1,318,"_reduce_none",2,333,"_reduce_492",3,333,"_reduce_493",1,320,"_reduce_494",3,320,"_reduce_495",5,319,"_reduce_496",2,336,"_reduce_497",1,336,"_reduce_498",1,335,"_reduce_499",3,335,"_reduce_500",1,334,"_reduce_none",3,321,"_reduce_502",1,321,"_reduce_503",2,321,"_reduce_504",1,321,"_reduce_505",1,337,"_reduce_506",3,337,"_reduce_507",2,339,"_reduce_508",1,339,"_reduce_509",1,340,"_reduce_510",3,340,"_reduce_511",2,342,"_reduce_512",1,342,"_reduce_513",2,344,"_reduce_514",1,338,"_reduce_none",1,338,"_reduce_none",1,328,"_reduce_none",3,328,"_reduce_518",3,328,"_reduce_519",2,328,"_reduce_520",2,328,"_reduce_521",1,328,"_reduce_none",1,328,"_reduce_none",1,328,"_reduce_none",2,328,"_reduce_525",2,328,"_reduce_526",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_none",1,345,"_reduce_535",1,345,"_reduce_none",1,323,"_reduce_537",2,346,"_reduce_538",2,329,"_reduce_539",3,329,"_reduce_540",1,329,"_reduce_541",6,159,"_reduce_542",0,159,"_reduce_543",1,347,"_reduce_544",1,347,"_reduce_none",1,347,"_reduce_none",2,348,"_reduce_547",1,348,"_reduce_none",2,161,"_reduce_549",1,161,"_reduce_none",1,243,"_reduce_none",1,243,"_reduce_none",1,244,"_reduce_553",1,350,"_reduce_554",2,350,"_reduce_555",3,351,"_reduce_556",1,351,"_reduce_557",1,351,"_reduce_558",3,245,"_reduce_559",4,246,"_reduce_560",3,247,"_reduce_561",0,354,"_reduce_562",3,354,"_reduce_563",1,355,"_reduce_564",2,355,"_reduce_565",3,249,"_reduce_566",0,357,"_reduce_567",3,357,"_reduce_568",3,248,"_reduce_569",3,250,"_reduce_570",0,358,"_reduce_571",3,358,"_reduce_572",0,359,"_reduce_573",3,359,"_reduce_574",0,341,"_reduce_575",2,341,"_reduce_576",0,352,"_reduce_577",2,352,"_reduce_578",0,353,"_reduce_579",2,353,"_reduce_580",1,356,"_reduce_581",2,356,"_reduce_582",0,361,"_reduce_583",4,356,"_reduce_584",1,360,"_reduce_585",1,360,"_reduce_586",1,360,"_reduce_587",1,360,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,362,"_reduce_591",3,363,"_reduce_592",1,349,"_reduce_593",2,349,"_reduce_594",1,226,"_reduce_595",1,226,"_reduce_596",1,226,"_reduce_597",1,226,"_reduce_598",1,217,"_reduce_599",1,217,"_reduce_600",1,217,"_reduce_601",1,217,"_reduce_602",1,217,"_reduce_603",1,218,"_reduce_604",1,218,"_reduce_605",1,218,"_reduce_606",1,218,"_reduce_607",1,218,"_reduce_608",1,218,"_reduce_609",1,218,"_reduce_610",1,251,"_reduce_611",1,251,"_reduce_612",1,176,"_reduce_613",1,176,"_reduce_614",1,181,"_reduce_615",1,181,"_reduce_616",0,364,"_reduce_617",4,262,"_reduce_618",0,262,"_reduce_619",1,228,"_reduce_none",1,228,"_reduce_621",3,365,"_reduce_622",5,365,"_reduce_623",3,365,"_reduce_624",1,265,"_reduce_none",0,367,"_reduce_626",3,265,"_reduce_627",4,366,"_reduce_628",2,366,"_reduce_629",2,366,"_reduce_630",1,366,"_reduce_631",2,369,"_reduce_632",0,369,"_reduce_633",6,300,"_reduce_634",8,300,"_reduce_635",4,300,"_reduce_636",6,300,"_reduce_637",4,300,"_reduce_638",6,300,"_reduce_639",2,300,"_reduce_640",4,300,"_reduce_641",6,300,"_reduce_642",2,300,"_reduce_643",4,300,"_reduce_644",2,300,"_reduce_645",4,300,"_reduce_646",1,300,"_reduce_647",0,300,"_reduce_648",1,238,"_reduce_649",1,295,"_reduce_650",1,295,"_reduce_651",1,295,"_reduce_652",1,295,"_reduce_653",1,273,"_reduce_none",1,273,"_reduce_655",1,371,"_reduce_656",1,372,"_reduce_657",3,372,"_reduce_658",1,287,"_reduce_659",3,287,"_reduce_660",1,373,"_reduce_661",2,374,"_reduce_662",1,374,"_reduce_663",2,375,"_reduce_664",1,375,"_reduce_665",1,281,"_reduce_666",3,281,"_reduce_667",1,368,"_reduce_668",3,368,"_reduce_669",1,343,"_reduce_none",1,343,"_reduce_none",2,279,"_reduce_672",2,278,"_reduce_673",1,278,"_reduce_674",3,376,"_reduce_675",3,377,"_reduce_676",1,288,"_reduce_677",3,288,"_reduce_678",1,370,"_reduce_679",3,370,"_reduce_680",1,378,"_reduce_none",1,378,"_reduce_none",2,289,"_reduce_683",1,289,"_reduce_684",1,379,"_reduce_none",1,379,"_reduce_none",2,283,"_reduce_687",2,282,"_reduce_688",0,282,"_reduce_689",1,195,"_reduce_none",3,195,"_reduce_691",0,252,"_reduce_692",2,252,"_reduce_none",1,236,"_reduce_694",3,236,"_reduce_695",3,380,"_reduce_696",2,380,"_reduce_697",4,380,"_reduce_698",2,380,"_reduce_699",1,207,"_reduce_none",1,207,"_reduce_none",1,207,"_reduce_none",1,201,"_reduce_none",1,201,"_reduce_none",1,201,"_reduce_none",1,201,"_reduce_none",1,306,"_reduce_none",1,306,"_reduce_none",1,306,"_reduce_none",1,196,"_reduce_none",1,196,"_reduce_none",1,180,"_reduce_712",1,180,"_reduce_713",0,152,"_reduce_none",1,152,"_reduce_none",0,182,"_reduce_none",1,182,"_reduce_none",2,212,"_reduce_718",2,179,"_reduce_719",2,330,"_reduce_720",0,235,"_reduce_none",1,235,"_reduce_none",1,235,"_reduce_none",1,263,"_reduce_724",1,263,"_reduce_none",1,154,"_reduce_none",2,154,"_reduce_none",0,233,"_reduce_728"],$Ruby30__reduce_728$542=$hash(!1219,0,"error",1,"kCLASS",2,"kMODULE",3,"kDEF",4,"kUNDEF",5,"kBEGIN",6,"kRESCUE",7,"kENSURE",8,"kEND",9,"kIF",10,"kUNLESS",11,"kTHEN",12,"kELSIF",13,"kELSE",14,"kCASE",15,"kWHEN",16,"kWHILE",17,"kUNTIL",18,"kFOR",19,"kBREAK",20,"kNEXT",21,"kREDO",22,"kRETRY",23,"kIN",24,"kDO",25,"kDO_COND",26,"kDO_BLOCK",27,"kDO_LAMBDA",28,"kRETURN",29,"kYIELD",30,"kSUPER",31,"kSELF",32,"kNIL",33,"kTRUE",34,"kFALSE",35,"kAND",36,"kOR",37,"kNOT",38,"kIF_MOD",39,"kUNLESS_MOD",40,"kWHILE_MOD",41,"kUNTIL_MOD",42,"kRESCUE_MOD",43,"kALIAS",44,"kDEFINED",45,"klBEGIN",46,"klEND",47,"k__LINE__",48,"k__FILE__",49,"k__ENCODING__",50,"tIDENTIFIER",51,"tFID",52,"tGVAR",53,"tIVAR",54,"tCONSTANT",55,"tLABEL",56,"tCVAR",57,"tNTH_REF",58,"tBACK_REF",59,"tSTRING_CONTENT",60,"tINTEGER",61,"tFLOAT",62,"tUPLUS",63,"tUMINUS",64,"tUNARY_NUM",65,"tPOW",66,"tCMP",67,"tEQ",68,"tEQQ",69,"tNEQ",70,"tGEQ",71,"tLEQ",72,"tANDOP",73,"tOROP",74,"tMATCH",75,"tNMATCH",76,"tDOT",77,"tDOT2",78,"tDOT3",79,"tAREF",80,"tASET",81,"tLSHFT",82,"tRSHFT",83,"tCOLON2",84,"tCOLON3",85,"tOP_ASGN",86,"tASSOC",87,"tLPAREN",88,"tLPAREN2",89,"tRPAREN",90,"tLPAREN_ARG",91,"tLBRACK",92,"tLBRACK2",93,"tRBRACK",94,"tLBRACE",95,"tLBRACE_ARG",96,"tSTAR",97,"tSTAR2",98,"tAMPER",99,"tAMPER2",100,"tTILDE",101,"tPERCENT",102,"tDIVIDE",103,"tDSTAR",104,"tPLUS",105,"tMINUS",106,"tLT",107,"tGT",108,"tPIPE",109,"tBANG",110,"tCARET",111,"tLCURLY",112,"tRCURLY",113,"tBACK_REF2",114,"tSYMBEG",115,"tSTRING_BEG",116,"tXSTRING_BEG",117,"tREGEXP_BEG",118,"tREGEXP_OPT",119,"tWORDS_BEG",120,"tQWORDS_BEG",121,"tSYMBOLS_BEG",122,"tQSYMBOLS_BEG",123,"tSTRING_DBEG",124,"tSTRING_DVAR",125,"tSTRING_END",126,"tSTRING_DEND",127,"tSTRING",128,"tSYMBOL",129,"tNL",130,"tEH",131,"tCOLON",132,"tCOMMA",133,"tSPACE",134,"tSEMI",135,"tLAMBDA",136,"tLAMBEG",137,"tCHARACTER",138,"tRATIONAL",139,"tIMAGINARY",140,"tLABEL_END",141,"tANDDOT",142,"tBDOT2",143,"tBDOT3",144,"tEQL",145,"tLOWEST",146),Opal.const_set($nesting[0],"Racc_arg",[racc_action_table,racc_action_check,racc_action_default,racc_action_pointer,racc_goto_table,racc_goto_check,racc_goto_default,racc_goto_pointer,147,racc_reduce_table,$Ruby30__reduce_728$542,1219,729,!0]),Opal.const_set($nesting[0],"Racc_token_to_s_table",["$end","error","kCLASS","kMODULE","kDEF","kUNDEF","kBEGIN","kRESCUE","kENSURE","kEND","kIF","kUNLESS","kTHEN","kELSIF","kELSE","kCASE","kWHEN","kWHILE","kUNTIL","kFOR","kBREAK","kNEXT","kREDO","kRETRY","kIN","kDO","kDO_COND","kDO_BLOCK","kDO_LAMBDA","kRETURN","kYIELD","kSUPER","kSELF","kNIL","kTRUE","kFALSE","kAND","kOR","kNOT","kIF_MOD","kUNLESS_MOD","kWHILE_MOD","kUNTIL_MOD","kRESCUE_MOD","kALIAS","kDEFINED","klBEGIN","klEND","k__LINE__","k__FILE__","k__ENCODING__","tIDENTIFIER","tFID","tGVAR","tIVAR","tCONSTANT","tLABEL","tCVAR","tNTH_REF","tBACK_REF","tSTRING_CONTENT","tINTEGER","tFLOAT","tUPLUS","tUMINUS","tUNARY_NUM","tPOW","tCMP","tEQ","tEQQ","tNEQ","tGEQ","tLEQ","tANDOP","tOROP","tMATCH","tNMATCH","tDOT","tDOT2","tDOT3","tAREF","tASET","tLSHFT","tRSHFT","tCOLON2","tCOLON3","tOP_ASGN","tASSOC","tLPAREN","tLPAREN2","tRPAREN","tLPAREN_ARG","tLBRACK","tLBRACK2","tRBRACK","tLBRACE","tLBRACE_ARG","tSTAR","tSTAR2","tAMPER","tAMPER2","tTILDE","tPERCENT","tDIVIDE","tDSTAR","tPLUS","tMINUS","tLT","tGT","tPIPE","tBANG","tCARET","tLCURLY","tRCURLY","tBACK_REF2","tSYMBEG","tSTRING_BEG","tXSTRING_BEG","tREGEXP_BEG","tREGEXP_OPT","tWORDS_BEG","tQWORDS_BEG","tSYMBOLS_BEG","tQSYMBOLS_BEG","tSTRING_DBEG","tSTRING_DVAR","tSTRING_END","tSTRING_DEND","tSTRING","tSYMBOL","tNL","tEH","tCOLON","tCOMMA","tSPACE","tSEMI","tLAMBDA","tLAMBEG","tCHARACTER","tRATIONAL","tIMAGINARY","tLABEL_END","tANDDOT","tBDOT2","tBDOT3","tEQL","tLOWEST","$start","program","top_compstmt","@1","top_stmts","opt_terms","top_stmt","terms","stmt","begin_block","bodystmt","compstmt","opt_rescue","opt_else","opt_ensure","stmts","stmt_or_begin","fitem","undef_list","expr_value","command_asgn","mlhs","command_call","lhs","mrhs","mrhs_arg","expr","@2","command_rhs","var_lhs","primary_value","opt_call_args","rbracket","call_op","backref","opt_nl","arg","p_expr","@3","@4","expr_value_do","do","def_name","@5","fname","defn_head","k_def","defs_head","singleton","dot_or_colon","@6","command","block_command","block_call","operation2","command_args","cmd_brace_block","brace_body","fcall","@7","operation","k_return","call_args","mlhs_basic","mlhs_inner","rparen","mlhs_head","mlhs_item","mlhs_node","mlhs_post","user_variable","keyword_variable","cname","cpath","op","reswords","symbol","@8","arg_rhs","simple_numeric","rel_expr","f_opt_paren_args","primary","relop","arg_value","aref_args","none","args","trailer","assocs","paren_args","args_forward","opt_paren_args","opt_block_arg","block_arg","@9","literal","strings","xstring","regexp","words","qwords","symbols","qsymbols","var_ref","assoc_list","brace_block","method_call","lambda","then","if_tail","case_body","p_case_body","for_var","k_class","superclass","term","k_module","f_arglist","@10","@11","@12","@13","@14","@15","f_marg","f_norm_arg","f_margs","f_marg_list","f_rest_marg","f_any_kwrest","f_kwrest","f_no_kwarg","block_args_tail","f_block_kwarg","opt_f_block_arg","f_block_arg","opt_block_args_tail","excessed_comma","block_param","f_arg","f_block_optarg","f_rest_arg","opt_block_param","block_param_def","opt_bv_decl","bv_decls","bvar","f_bad_arg","f_larglist","lambda_body","@16","@17","f_args","do_block","@18","@19","do_body","@20","operation3","@21","@22","@23","@24","@25","cases","p_top_expr","p_cases","@26","@27","p_top_expr_body","p_args","p_find","p_args_tail","p_kwargs","p_as","p_variable","p_alt","p_expr_basic","p_lparen","p_lbracket","p_value","p_const","rbrace","@28","@29","p_args_head","p_arg","p_args_post","p_rest","p_kwarg","p_any_kwrest","p_kw","p_kw_label","string_contents","p_kwrest","kwrest_mark","p_kwnorest","p_primitive","p_var_ref","exc_list","exc_var","numeric","string","string1","xstring_contents","regexp_contents","word_list","word","string_content","symbol_list","qword_list","qsym_list","string_dvar","@30","ssym","dsym","@31","f_paren_args","args_tail","@32","f_kwarg","opt_args_tail","f_optarg","f_arg_asgn","f_arg_item","f_label","f_kw","f_block_kw","f_opt","f_block_opt","restarg_mark","blkarg_mark","assoc"]),Opal.const_set($nesting[0],"Racc_debug_parser",!1),Opal.def($Ruby30__reduce_none$543,"$_reduce_1",$Ruby30__reduce_728$542=function(val,_values,result){return this.current_arg_stack.$push(nil),this.max_numparam_stack.$push($hash2(["static"],{static:!0})),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_2",$Ruby30__reduce_728$542=function(val,_values,result){return result=val["$[]"](1),this.current_arg_stack.$pop(),this.max_numparam_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_3",$Ruby30__reduce_728$542=function(val){return this.builder.$compstmt(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_4",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_5",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_6",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_7",$Ruby30__reduce_728$542=function(val){return[val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_9",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"preexe",[val["$[]"](0)].concat(Opal.to_a(val["$[]"](1))))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_10",$Ruby30__reduce_728$542=function(val){return val},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_11",$Ruby30__reduce_728$542=function(val){var ensure_t,ensure_,rescue_bodies=nil,else_t=nil,$ret_or_4=nil,rescue_bodies=val["$[]"](1),$b=val["$[]"](2),$a=Opal.to_ary($b),else_t=null==$a[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1];return $b=val["$[]"](3),ensure_t=null==($a=Opal.to_ary($b))[0]?nil:$a[0],ensure_=null==$a[1]?nil:$a[1],$truthy($truthy($ret_or_4=rescue_bodies["$empty?"]())?else_t["$nil?"]()["$!"]():$ret_or_4)&&this.$diagnostic("error","useless_else",nil,else_t),this.builder.$begin_body(val["$[]"](0),rescue_bodies,else_t,else_,ensure_t,ensure_)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_12",$Ruby30__reduce_728$542=function(val){return this.builder.$compstmt(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_13",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_14",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_15",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_16",$Ruby30__reduce_728$542=function(val){return[val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_18",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","begin_in_method",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_19",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_fname"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_20",$Ruby30__reduce_728$542=function(val){return this.builder.$alias(val["$[]"](0),val["$[]"](1),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_21",$Ruby30__reduce_728$542=function(val){return this.builder.$alias(val["$[]"](0),this.builder.$gvar(val["$[]"](1)),this.builder.$gvar(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_22",$Ruby30__reduce_728$542=function(val){return this.builder.$alias(val["$[]"](0),this.builder.$gvar(val["$[]"](1)),this.builder.$back_ref(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_23",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","nth_ref_alias",nil,val["$[]"](2)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_24",$Ruby30__reduce_728$542=function(val){return this.builder.$undef_method(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_25",$Ruby30__reduce_728$542=function(val){return this.builder.$condition_mod(val["$[]"](0),nil,val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_26",$Ruby30__reduce_728$542=function(val){return this.builder.$condition_mod(nil,val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_27",$Ruby30__reduce_728$542=function(val){return this.builder.$loop_mod("while",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_28",$Ruby30__reduce_728$542=function(val){return this.builder.$loop_mod("until",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_29",$Ruby30__reduce_728$542=function(val){var rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2));return this.builder.$begin_body(val["$[]"](0),[rescue_body])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_30",$Ruby30__reduce_728$542=function(val){return this.builder.$postexe(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_32",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_33",$Ruby30__reduce_728$542=function(val){return this.builder.$assign(val["$[]"](0),val["$[]"](1),this.builder.$array(nil,val["$[]"](2),nil))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_34",$Ruby30__reduce_728$542=function(val){var rescue_body=this.builder.$rescue_body(val["$[]"](3),nil,nil,nil,nil,val["$[]"](4)),begin_body=this.builder.$begin_body(val["$[]"](2),[rescue_body]);return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),begin_body)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_35",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_37",$Ruby30__reduce_728$542=function(val){return this.builder.$assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_38",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_39",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3)),val["$[]"](4),val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_40",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_41",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_42",$Ruby30__reduce_728$542=function(val){var const$=this.builder.$const_op_assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)));return this.builder.$op_assign(const$,val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_43",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_44",$Ruby30__reduce_728$542=function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_46",$Ruby30__reduce_728$542=function(val){var rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2));return this.builder.$begin_body(val["$[]"](0),[rescue_body])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_49",$Ruby30__reduce_728$542=function(val){return this.builder.$logical_op("and",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_50",$Ruby30__reduce_728$542=function(val){return this.builder.$logical_op("or",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_51",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](2),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_52",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_53",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_beg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(this.lexer,"command_start=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.pattern_variables.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_54",$Ruby30__reduce_728$542=function(val){var $writer;return this.pattern_variables.$pop(),$writer=[val["$[]"](2)],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$match_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_55",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_beg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(this.lexer,"command_start=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.pattern_variables.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_56",$Ruby30__reduce_728$542=function(val){var $writer;return this.pattern_variables.$pop(),$writer=[val["$[]"](2)],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$match_pattern_p(val["$[]"](0),val["$[]"](1),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_59",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cond().$push(!0),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_60",$Ruby30__reduce_728$542=function(val){return this.lexer.$cond().$pop(),[val["$[]"](1),val["$[]"](2)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_61",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return this.$local_push(),this.current_arg_stack.$push(nil),result=[val["$[]"](0),this.context.$dup()],$writer=[!0],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_62",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_63",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_fname"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_64",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](4)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_68",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_69",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_70",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3)]),$writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_72",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(nil,nil,val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_73",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method(nil,nil,$a["$[]"](0),nil,$a["$[]"](1),nil),$a=$a["$[]"](2),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_74",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_75",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method($a["$[]"](0),$a["$[]"](1),$a["$[]"](2),nil,$a["$[]"](3),nil),$a=$a["$[]"](4),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_76",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_77",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method($a["$[]"](0),$a["$[]"](1),$a["$[]"](2),nil,$a["$[]"](3),nil),$a=$a["$[]"](4),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_78",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("super",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_79",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("yield",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_80",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("return",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_81",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("break",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_82",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("next",val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_83",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_84",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_85",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_86",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_88",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_89",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1),val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_90",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1),val["$[]"](2))).$concat(val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_91",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_92",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1))).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_93",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_94",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))].concat(Opal.to_a(val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_95",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_96",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0))].concat(Opal.to_a(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_98",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_99",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_100",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_101",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_102",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_103",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_104",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_105",$Ruby30__reduce_728$542=function(val){return this.builder.$index_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_106",$Ruby30__reduce_728$542=function(val){return $truthy(val["$[]"](1)["$[]"](0)["$=="]("anddot"))&&this.$diagnostic("error","csend_in_lhs_of_masgn",nil,val["$[]"](1)),this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_107",$Ruby30__reduce_728$542=function(val){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_108",$Ruby30__reduce_728$542=function(val){return $truthy(val["$[]"](1)["$[]"](0)["$=="]("anddot"))&&this.$diagnostic("error","csend_in_lhs_of_masgn",nil,val["$[]"](1)),this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_109",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_110",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_111",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_112",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_113",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_114",$Ruby30__reduce_728$542=function(val){return this.builder.$index_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_115",$Ruby30__reduce_728$542=function(val){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_116",$Ruby30__reduce_728$542=function(val){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_117",$Ruby30__reduce_728$542=function(val){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_118",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_119",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_120",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_121",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","module_name_const",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_123",$Ruby30__reduce_728$542=function(val){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_124",$Ruby30__reduce_728$542=function(val){return this.builder.$const(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_125",$Ruby30__reduce_728$542=function(val){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_131",$Ruby30__reduce_728$542=function(val){return this.builder.$symbol_internal(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_133",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_134",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_fname"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_135",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_207",$Ruby30__reduce_728$542=function(val){return this.builder.$assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_208",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_209",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3)),val["$[]"](4),val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_210",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_211",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_212",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_213",$Ruby30__reduce_728$542=function(val){var const$=this.builder.$const_op_assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)));return this.builder.$op_assign(const$,val["$[]"](3),val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_214",$Ruby30__reduce_728$542=function(val){var const$=this.builder.$const_op_assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)));return this.builder.$op_assign(const$,val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_215",$Ruby30__reduce_728$542=function(val){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_216",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_217",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_218",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_219",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_220",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(nil,val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_221",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(nil,val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_222",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_223",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_224",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_225",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_226",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_227",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_228",$Ruby30__reduce_728$542=function(val){return this.builder.$unary_op(val["$[]"](0),this.builder.$binary_op(val["$[]"](1),val["$[]"](2),val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_229",$Ruby30__reduce_728$542=function(val){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_230",$Ruby30__reduce_728$542=function(val){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_231",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_232",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_233",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_234",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_236",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_237",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_238",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_239",$Ruby30__reduce_728$542=function(val){return this.builder.$match_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_240",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_241",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_242",$Ruby30__reduce_728$542=function(val){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_243",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_244",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_245",$Ruby30__reduce_728$542=function(val){return this.builder.$logical_op("and",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_246",$Ruby30__reduce_728$542=function(val){return this.builder.$logical_op("or",val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_247",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("defined?",val["$[]"](0),nil,[val["$[]"](2)],nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_248",$Ruby30__reduce_728$542=function(val){return this.builder.$ternary(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](4),val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_249",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],$c=Opal.to_ary(null==$c[1]?nil:$c[1]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return this.$endless_method_name(name_t),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_250",$Ruby30__reduce_728$542=function(val,_values,result){var rescue_body,method_body,$writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],$c=Opal.to_ary(null==$c[1]?nil:$c[1]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_251",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],recv=null==$c[1]?nil:$c[1],dot_t=null==$c[2]?nil:$c[2],$c=Opal.to_ary(null==$c[3]?nil:$c[3]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return this.$endless_method_name(name_t),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_252",$Ruby30__reduce_728$542=function(val,_values,result){var rescue_body,method_body,$writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],recv=null==$c[1]?nil:$c[1],dot_t=null==$c[2]?nil:$c[2],$c=Opal.to_ary(null==$c[3]?nil:$c[3]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_258",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_259",$Ruby30__reduce_728$542=function(val){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_263",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$associate(nil,val["$[]"](2),nil))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_264",$Ruby30__reduce_728$542=function(val){return[this.builder.$associate(nil,val["$[]"](0),nil)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_266",$Ruby30__reduce_728$542=function(val){var rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2));return this.builder.$begin_body(val["$[]"](0),[rescue_body])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_267",$Ruby30__reduce_728$542=function(val){return val},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_268",$Ruby30__reduce_728$542=function(val){return $truthy(this.static_env["$declared_forward_args?"]())||this.$diagnostic("error","unexpected_token",$hash2(["token"],{token:"tBDOT3"}),val["$[]"](3)),[val["$[]"](0),[].concat(Opal.to_a(val["$[]"](1))).concat([this.builder.$forwarded_args(val["$[]"](3))]),val["$[]"](4)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_269",$Ruby30__reduce_728$542=function(val){return $truthy(this.static_env["$declared_forward_args?"]())||this.$diagnostic("error","unexpected_token",$hash2(["token"],{token:"tBDOT3"}),val["$[]"](1)),[val["$[]"](0),[this.builder.$forwarded_args(val["$[]"](1))],val["$[]"](2)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_270",$Ruby30__reduce_728$542=function(){return[nil,[],nil]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_272",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_275",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$associate(nil,val["$[]"](2),nil))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_276",$Ruby30__reduce_728$542=function(val){return[this.builder.$associate(nil,val["$[]"](0),nil)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_277",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_278",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_279",$Ruby30__reduce_728$542=function(val,_values,result){return(result=[this.builder.$associate(nil,val["$[]"](0),nil)]).$concat(val["$[]"](1)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_280",$Ruby30__reduce_728$542=function(val,_values,result){var assocs=this.builder.$associate(nil,val["$[]"](2),nil);return(result=val["$[]"](0)["$<<"](assocs)).$concat(val["$[]"](3)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_281",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_282",$Ruby30__reduce_728$542=function(val,_values,result){var top,last_token=nil,$ret_or_5=nil,last_token=this.last_token["$[]"](0),lookahead=$truthy($ret_or_5=last_token["$=="]("tLBRACK"))?$ret_or_5:last_token["$=="]("tLPAREN_ARG");return $truthy(lookahead)?(top=this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$push(!0),this.lexer.$cmdarg().$push(top)):this.lexer.$cmdarg().$push(!0),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_283",$Ruby30__reduce_728$542=function(val){var top,lookahead=this.last_token["$[]"](0)["$=="]("tLBRACE_ARG");return $truthy(lookahead)?(top=this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$push(top)):this.lexer.$cmdarg().$pop(),val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_284",$Ruby30__reduce_728$542=function(val){return this.builder.$block_pass(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_285",$Ruby30__reduce_728$542=function(val){return[val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_286",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_287",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_288",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_289",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_290",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$splat(val["$[]"](2),val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_291",$Ruby30__reduce_728$542=function(val){return this.builder.$array(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_293",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_294",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$splat(val["$[]"](2),val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_295",$Ruby30__reduce_728$542=function(val){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_306",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(nil,nil,val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_307",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_308",$Ruby30__reduce_728$542=function(val){return this.lexer.$cmdarg().$pop(),this.builder.$begin_keyword(val["$[]"](0),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_309",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_endarg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_310",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_311",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_endarg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_312",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),nil,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_313",$Ruby30__reduce_728$542=function(val){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_314",$Ruby30__reduce_728$542=function(val){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_315",$Ruby30__reduce_728$542=function(val){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_316",$Ruby30__reduce_728$542=function(val){return this.builder.$array(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_317",$Ruby30__reduce_728$542=function(val){return this.builder.$associate(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_318",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("return",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_319",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("yield",val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_320",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("yield",val["$[]"](0),val["$[]"](1),[],val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_321",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("yield",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_322",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("defined?",val["$[]"](0),val["$[]"](2),[val["$[]"](3)],val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_323",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_324",$Ruby30__reduce_728$542=function(val){return this.builder.$not_op(val["$[]"](0),val["$[]"](1),nil,val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_325",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method(nil,nil,$a["$[]"](0)),$a=$a["$[]"](1),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_327",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](1),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(val["$[]"](0),begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_329",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](4),$a=Opal.to_ary($a),else_t=null==$a[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1];return this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3),else_t,else_,val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_330",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](4),$a=Opal.to_ary($a),else_t=null==$a[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1];return this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),else_,else_t,val["$[]"](3),val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_331",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"loop",["while",val["$[]"](0)].concat(Opal.to_a(val["$[]"](1))).concat([val["$[]"](2),val["$[]"](3)]))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_332",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"loop",["until",val["$[]"](0)].concat(Opal.to_a(val["$[]"](1))).concat([val["$[]"](2),val["$[]"](3)]))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_333",$Ruby30__reduce_728$542=function(val){var when_bodies,else_t,else_body,$a=[].concat(Opal.to_a(val["$[]"](3))),$c=$a.length-1;return $c=$c<0?0:$c,when_bodies=$slice.call($a,0,$c),else_t=null==($c=Opal.to_ary(null==$a[$c]?nil:$a[$c]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case(val["$[]"](0),val["$[]"](1),when_bodies,else_t,else_body,val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_334",$Ruby30__reduce_728$542=function(val){var when_bodies,else_t,else_body,$a=[].concat(Opal.to_a(val["$[]"](2))),$c=$a.length-1;return $c=$c<0?0:$c,when_bodies=$slice.call($a,0,$c),else_t=null==($c=Opal.to_ary(null==$a[$c]?nil:$a[$c]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case(val["$[]"](0),nil,when_bodies,else_t,else_body,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_335",$Ruby30__reduce_728$542=function(val){var in_bodies,else_t,else_body,$a=[].concat(Opal.to_a(val["$[]"](3))),$c=$a.length-1;return $c=$c<0?0:$c,in_bodies=$slice.call($a,0,$c),else_t=null==($c=Opal.to_ary(null==$a[$c]?nil:$a[$c]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case_match(val["$[]"](0),val["$[]"](1),in_bodies,else_t,else_body,val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_336",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"for",[val["$[]"](0),val["$[]"](1),val["$[]"](2)].concat(Opal.to_a(val["$[]"](3))).concat([val["$[]"](4),val["$[]"](5)]))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_337",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=[!0];return $send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_338",$Ruby30__reduce_728$542=function(val,_values,result){var lt_t,superclass,$writer,ctx=nil,$b=val["$[]"](0),$a=Opal.to_ary($b),k_class=null==$a[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1];return $truthy(this.context.$in_def())&&this.$diagnostic("error","class_in_def",nil,k_class),$b=val["$[]"](2),lt_t=null==($a=Opal.to_ary($b))[0]?nil:$a[0],superclass=null==$a[1]?nil:$a[1],result=this.builder.$def_class(k_class,val["$[]"](1),lt_t,superclass,val["$[]"](4),val["$[]"](5)),this.$local_pop(),$writer=[ctx.$in_class()],$send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_339",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=[!1];return $send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_340",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$a=val["$[]"](0),$a=Opal.to_ary($a),k_class=null==$a[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1];return result=this.builder.$def_sclass(k_class,val["$[]"](1),val["$[]"](2),val["$[]"](5),val["$[]"](6)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[ctx.$in_class()],$send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_341",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=[!0];return $send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_342",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$a=val["$[]"](0),$a=Opal.to_ary($a),k_mod=null==$a[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1];return $truthy(this.context.$in_def())&&this.$diagnostic("error","module_in_def",nil,k_mod),result=this.builder.$def_module(k_mod,val["$[]"](1),val["$[]"](3),val["$[]"](4)),this.$local_pop(),$writer=[ctx.$in_class()],$send(this.context,"in_class=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_343",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],$c=Opal.to_ary(null==$c[1]?nil:$c[1]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return result=this.builder.$def_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_344",$Ruby30__reduce_728$542=function(val,_values,result){var $writer,ctx=nil,$c=val["$[]"](0),$c=Opal.to_ary($c),def_t=null==$c[0]?nil:$c[0],recv=null==$c[1]?nil:$c[1],dot_t=null==$c[2]?nil:$c[2],$c=Opal.to_ary(null==$c[3]?nil:$c[3]),name_t=null==$c[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1];return result=this.builder.$def_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.current_arg_stack.$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_345",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("break",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_346",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("next",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_347",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("redo",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_348",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("retry",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_350",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),this.context.$dup()]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_351",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),this.context.$dup()]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_352",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_353",$Ruby30__reduce_728$542=function(val,_values,result){var self=this,$ret_or_6=nil,$ret_or_7=nil,$ret_or_8=nil;return $truthy($truthy($ret_or_6=$truthy($ret_or_7=self.context.$in_class())?self.context.$in_def()["$!"]():$ret_or_7)?($truthy($ret_or_8=self.$context().$in_block())?$ret_or_8:self.$context().$in_lambda())["$!"]():$ret_or_6)&&self.$diagnostic("error","invalid_return",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_356",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_360",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](4),$a=Opal.to_ary($a),else_t=null==$a[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1];return[val["$[]"](0),this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3),else_t,else_,nil)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_362",$Ruby30__reduce_728$542=function(val){return val},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_365",$Ruby30__reduce_728$542=function(val){return this.builder.$arg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_366",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_367",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_368",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_370",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_371",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$push(val["$[]"](2)).$concat(val["$[]"](4))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_372",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_373",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_374",$Ruby30__reduce_728$542=function(val){return this.builder.$restarg(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_375",$Ruby30__reduce_728$542=function(val){return this.builder.$restarg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_378",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_379",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_380",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_381",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_382",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_383",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_385",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_386",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](6)).$concat(val["$[]"](7))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_387",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_388",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_389",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_391",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_392",$Ruby30__reduce_728$542=function(val){var $ret_or_9=nil;return $truthy($truthy($ret_or_9=val["$[]"](1)["$empty?"]())?val["$[]"](0).$size()["$=="](1):$ret_or_9)?[this.builder.$procarg0(val["$[]"](0)["$[]"](0))]:val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_393",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_394",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_395",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_396",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_397",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_398",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_400",$Ruby30__reduce_728$542=function(){return this.builder.$args(nil,[],nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_401",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_value"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_402",$Ruby30__reduce_728$542=function(val){return this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(nil),this.builder.$args(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_403",$Ruby30__reduce_728$542=function(val){return this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(nil),this.builder.$args(val["$[]"](0),val["$[]"](1).$concat(val["$[]"](2)),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_404",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_405",$Ruby30__reduce_728$542=function(val){return val["$[]"](2)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_406",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_407",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_408",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.builder.$shadowarg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_410",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_411",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_412",$Ruby30__reduce_728$542=function(val){var $writer,self=this,lambda_call=self.builder.$call_lambda(val["$[]"](0)),args=$truthy(self.max_numparam_stack["$has_numparams?"]())?self.builder.$numargs(self.max_numparam_stack.$top()):val["$[]"](2),$a=val["$[]"](4),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2];return self.max_numparam_stack.$pop(),self.static_env.$unextend(),self.lexer.$cmdarg().$pop(),$writer=[val["$[]"](1).$in_lambda()],$send(self.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),self.builder.$block(lambda_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_413",$Ruby30__reduce_728$542=function(val){return this.max_numparam_stack["$has_ordinary_params!"](),this.builder.$args(val["$[]"](0),val["$[]"](1).$concat(val["$[]"](2)),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_414",$Ruby30__reduce_728$542=function(val){return $truthy(val["$[]"](0)["$any?"]())&&this.max_numparam_stack["$has_ordinary_params!"](),this.builder.$args(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_415",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_416",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0),val["$[]"](2),val["$[]"](3)],$writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_417",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_418",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0),val["$[]"](2),val["$[]"](3)],$writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_419",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_420",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3)]),$writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_421",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](1),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],block_args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(val["$[]"](0),begin_t,block_args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_422",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](3),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_423",$Ruby30__reduce_728$542=function(val){var begin_t,body,end_t,$b=val["$[]"](3),$a=Opal.to_ary($b),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t);return $b=val["$[]"](4),begin_t=null==($a=Opal.to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_424",$Ruby30__reduce_728$542=function($a){var method_call=this.builder.$call_method($a["$[]"](0),$a["$[]"](1),$a["$[]"](2),nil,$a["$[]"](3),nil),$a=$a["$[]"](4),$a=Opal.to_ary($a),begin_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3];return this.builder.$block(method_call,begin_t,args,body,end_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_425",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](1),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(nil,nil,val["$[]"](0),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_426",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](3),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_427",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](3),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_428",$Ruby30__reduce_728$542=function(val){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_429",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](2),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),nil,lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_430",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](2),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$call_method(val["$[]"](0),val["$[]"](1),nil,lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_431",$Ruby30__reduce_728$542=function(val){var $a=val["$[]"](1),$a=Opal.to_ary($a),lparen_t=null==$a[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2];return this.builder.$keyword_cmd("super",val["$[]"](0),lparen_t,args,rparen_t)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_432",$Ruby30__reduce_728$542=function(val){return this.builder.$keyword_cmd("zsuper",val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_433",$Ruby30__reduce_728$542=function(val){return this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_434",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_435",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3)]),$writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_436",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_437",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3)]),$writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_438",$Ruby30__reduce_728$542=function(val,_values,result){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_439",$Ruby30__reduce_728$542=function(val,_values,result){var self=this;return result=[$truthy(self.max_numparam_stack["$has_numparams?"]())?self.builder.$numargs(self.max_numparam_stack.$top()):val["$[]"](1),val["$[]"](2)],self.max_numparam_stack.$pop(),self.static_env.$unextend(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_440",$Ruby30__reduce_728$542=function(val,_values,result){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_441",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_442",$Ruby30__reduce_728$542=function(val,_values,result){var self=this;return result=[$truthy(self.max_numparam_stack["$has_numparams?"]())?self.builder.$numargs(self.max_numparam_stack.$top()):val["$[]"](2),val["$[]"](3)],self.max_numparam_stack.$pop(),self.static_env.$unextend(),self.lexer.$cmdarg().$pop(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_443",$Ruby30__reduce_728$542=function(val){return[this.builder.$when(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))].concat(Opal.to_a(val["$[]"](4)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_444",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_446",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_beg"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(this.lexer,"command_start=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.pattern_variables.$push(),this.pattern_hash_keys.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_447",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return this.pattern_variables.$pop(),this.pattern_hash_keys.$pop(),$writer=[val["$[]"](1)],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_448",$Ruby30__reduce_728$542=function(val){return[$send(this.builder,"in_pattern",[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](3),val["$[]"](5)]))].concat(Opal.to_a(val["$[]"](6)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_449",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_451",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),nil]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_452",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),this.builder.$if_guard(val["$[]"](1),val["$[]"](2))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_453",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),this.builder.$unless_guard(val["$[]"](1),val["$[]"](2))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_455",$Ruby30__reduce_728$542=function(val){var item=this.builder.$match_with_trailing_comma(val["$[]"](0),val["$[]"](1));return this.builder.$array_pattern(nil,[item],nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_456",$Ruby30__reduce_728$542=function(val){return this.builder.$array_pattern(nil,[val["$[]"](0)].$concat(val["$[]"](2)),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_457",$Ruby30__reduce_728$542=function(val){return this.builder.$find_pattern(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_458",$Ruby30__reduce_728$542=function(val){return this.builder.$array_pattern(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_459",$Ruby30__reduce_728$542=function(val){return this.builder.$hash_pattern(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_461",$Ruby30__reduce_728$542=function(val){return this.builder.$match_as(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_463",$Ruby30__reduce_728$542=function(val){return this.builder.$match_alt(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_465",$Ruby30__reduce_728$542=function(val,_values,result){return result=val["$[]"](0),this.pattern_hash_keys.$push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_466",$Ruby30__reduce_728$542=function(val,_values,result){return result=val["$[]"](0),this.pattern_hash_keys.$push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_468",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$array_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_469",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$find_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_470",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$hash_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_471",$Ruby30__reduce_728$542=function(val){var pattern=this.builder.$array_pattern(val["$[]"](1),nil,val["$[]"](2));return this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_472",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$array_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_473",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$find_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_474",$Ruby30__reduce_728$542=function(val){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$hash_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_475",$Ruby30__reduce_728$542=function(val){var pattern=this.builder.$array_pattern(val["$[]"](1),nil,val["$[]"](2));return this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_476",$Ruby30__reduce_728$542=function(val){return this.builder.$array_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_477",$Ruby30__reduce_728$542=function(val){return this.builder.$find_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_478",$Ruby30__reduce_728$542=function(val){return this.builder.$array_pattern(val["$[]"](0),[],val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_479",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return this.pattern_hash_keys.$push(),result=this.context.$in_kwarg(),$writer=[!1],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_480",$Ruby30__reduce_728$542=function(val){var $writer;return this.pattern_hash_keys.$pop(),$writer=[val["$[]"](1)],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$hash_pattern(val["$[]"](0),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_481",$Ruby30__reduce_728$542=function(val){return this.builder.$hash_pattern(val["$[]"](0),[],val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_482",$Ruby30__reduce_728$542=function(val,_values,result){return this.pattern_hash_keys.$push(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_483",$Ruby30__reduce_728$542=function(val){return this.pattern_hash_keys.$pop(),this.builder.$begin(val["$[]"](0),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_484",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_485",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_486",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([val["$[]"](1)])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_487",$Ruby30__reduce_728$542=function(val){var match_rest=this.builder.$match_rest(val["$[]"](1),val["$[]"](2));return[].concat(Opal.to_a(val["$[]"](0))).concat([match_rest])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_488",$Ruby30__reduce_728$542=function(val){var match_rest=this.builder.$match_rest(val["$[]"](1),val["$[]"](2));return[].concat(Opal.to_a(val["$[]"](0))).concat([match_rest]).concat(Opal.to_a(val["$[]"](4)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_489",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([this.builder.$match_rest(val["$[]"](1))])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_490",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([this.builder.$match_rest(val["$[]"](1))]).concat(Opal.to_a(val["$[]"](3)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_492",$Ruby30__reduce_728$542=function(val){return[this.builder.$match_with_trailing_comma(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_493",$Ruby30__reduce_728$542=function(val){var last_item=this.builder.$match_with_trailing_comma(val["$[]"](1),val["$[]"](2));return[].concat(Opal.to_a(val["$[]"](0))).concat([last_item])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_494",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_495",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_496",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)].concat(Opal.to_a(val["$[]"](2))).concat([val["$[]"](4)])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_497",$Ruby30__reduce_728$542=function(val){return this.builder.$match_rest(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_498",$Ruby30__reduce_728$542=function(val){return this.builder.$match_rest(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_499",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_500",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([val["$[]"](2)])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_502",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat(Opal.to_a(val["$[]"](2)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_503",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_504",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_505",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_506",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_507",$Ruby30__reduce_728$542=function(val){return[].concat(Opal.to_a(val["$[]"](0))).concat([val["$[]"](2)])},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_508",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"match_pair",Opal.to_a(val["$[]"](0)).concat([val["$[]"](1)]))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_509",$Ruby30__reduce_728$542=function(val){return $send(this.builder,"match_label",Opal.to_a(val["$[]"](0)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_510",$Ruby30__reduce_728$542=function(val){return["label",val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_511",$Ruby30__reduce_728$542=function(val){return["quoted",[val["$[]"](0),val["$[]"](1),val["$[]"](2)]]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_512",$Ruby30__reduce_728$542=function(val){return[this.builder.$match_rest(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_513",$Ruby30__reduce_728$542=function(val){return[this.builder.$match_rest(val["$[]"](0),nil)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_514",$Ruby30__reduce_728$542=function(val){return[this.builder.$match_nil_pattern(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_518",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_519",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_520",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_521",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_525",$Ruby30__reduce_728$542=function(val){return this.builder.$range_inclusive(nil,val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_526",$Ruby30__reduce_728$542=function(val){return this.builder.$range_exclusive(nil,val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_535",$Ruby30__reduce_728$542=function(val){return this.builder.$accessible(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_537",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(this.builder.$match_var(val["$[]"](0)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_538",$Ruby30__reduce_728$542=function(val){var lvar,name=val["$[]"](1)["$[]"](0);return $truthy(this.$static_env()["$declared?"](name))||this.$diagnostic("error","undefined_lvar",$hash2(["name"],{name:name}),val["$[]"](1)),lvar=this.builder.$accessible(this.builder.$ident(val["$[]"](1))),this.builder.$pin(val["$[]"](0),lvar)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_539",$Ruby30__reduce_728$542=function(val){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_540",$Ruby30__reduce_728$542=function(val){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_541",$Ruby30__reduce_728$542=function(val){return this.builder.$const(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_542",$Ruby30__reduce_728$542=function(val){var exc_list=nil,$a=val["$[]"](2),$a=Opal.to_ary($a),assoc_t=null==$a[0]?nil:$a[0],exc_var=null==$a[1]?nil:$a[1];return $truthy(val["$[]"](1))&&(exc_list=this.builder.$array(nil,val["$[]"](1),nil)),[this.builder.$rescue_body(val["$[]"](0),exc_list,assoc_t,exc_var,val["$[]"](3),val["$[]"](4))].concat(Opal.to_a(val["$[]"](5)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_543",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_544",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_547",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_549",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_553",$Ruby30__reduce_728$542=function(val){return this.builder.$string_compose(nil,val["$[]"](0),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_554",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_555",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_556",$Ruby30__reduce_728$542=function(val){var string=this.builder.$string_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2));return this.builder.$dedent_string(string,this.lexer.$dedent_level())},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_557",$Ruby30__reduce_728$542=function(val){var string=this.builder.$string(val["$[]"](0));return this.builder.$dedent_string(string,this.lexer.$dedent_level())},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_558",$Ruby30__reduce_728$542=function(val){return this.builder.$character(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_559",$Ruby30__reduce_728$542=function(val){var string=this.builder.$xstring_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2));return this.builder.$dedent_string(string,this.lexer.$dedent_level())},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_560",$Ruby30__reduce_728$542=function(val){var opts=this.builder.$regexp_options(val["$[]"](3));return this.builder.$regexp_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2),opts)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_561",$Ruby30__reduce_728$542=function(val){return this.builder.$words_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_562",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_563",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$word(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_564",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_565",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_566",$Ruby30__reduce_728$542=function(val){return this.builder.$symbols_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_567",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_568",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$word(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_569",$Ruby30__reduce_728$542=function(val){return this.builder.$words_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_570",$Ruby30__reduce_728$542=function(val){return this.builder.$symbols_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_571",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_572",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$string_internal(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_573",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_574",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](this.builder.$symbol_internal(val["$[]"](1)))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_575",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_576",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_577",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_578",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_579",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_580",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_581",$Ruby30__reduce_728$542=function(val){return this.builder.$string_internal(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_582",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_583",$Ruby30__reduce_728$542=function(val,_values,result){return this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_584",$Ruby30__reduce_728$542=function(val){return this.lexer.$cmdarg().$pop(),this.lexer.$cond().$pop(),this.builder.$begin(val["$[]"](0),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_585",$Ruby30__reduce_728$542=function(val){return this.builder.$gvar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_586",$Ruby30__reduce_728$542=function(val){return this.builder.$ivar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_587",$Ruby30__reduce_728$542=function(val){return this.builder.$cvar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_591",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$symbol(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_592",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$symbol_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_593",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_594",$Ruby30__reduce_728$542=function(val){return $truthy(this.builder["$respond_to?"]("negate"))?this.builder.$negate(val["$[]"](0),val["$[]"](1)):this.builder.$unary_num(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_595",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$integer(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_596",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$float(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_597",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$rational(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_598",$Ruby30__reduce_728$542=function(val){var $writer=["expr_end"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$complex(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_599",$Ruby30__reduce_728$542=function(val){return this.builder.$ident(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_600",$Ruby30__reduce_728$542=function(val){return this.builder.$ivar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_601",$Ruby30__reduce_728$542=function(val){return this.builder.$gvar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_602",$Ruby30__reduce_728$542=function(val){return this.builder.$const(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_603",$Ruby30__reduce_728$542=function(val){return this.builder.$cvar(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_604",$Ruby30__reduce_728$542=function(val){return this.builder.$nil(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_605",$Ruby30__reduce_728$542=function(val){return this.builder.$self(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_606",$Ruby30__reduce_728$542=function(val){return this.builder.$true(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_607",$Ruby30__reduce_728$542=function(val){return this.builder.$false(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_608",$Ruby30__reduce_728$542=function(val){return this.builder.$__FILE__(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_609",$Ruby30__reduce_728$542=function(val){return this.builder.$__LINE__(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_610",$Ruby30__reduce_728$542=function(val){return this.builder.$__ENCODING__(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_611",$Ruby30__reduce_728$542=function(val){return this.builder.$accessible(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_612",$Ruby30__reduce_728$542=function(val){return this.builder.$accessible(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_613",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_614",$Ruby30__reduce_728$542=function(val){return this.builder.$assignable(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_615",$Ruby30__reduce_728$542=function(val){return this.builder.$nth_ref(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_616",$Ruby30__reduce_728$542=function(val){return this.builder.$back_ref(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_617",$Ruby30__reduce_728$542=function(val,_values,result){var $writer=["expr_value"];return $send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_618",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0),val["$[]"](2)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_619",$Ruby30__reduce_728$542=function(){return nil},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_621",$Ruby30__reduce_728$542=function(){return this.builder.$args(nil,[],nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_622",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.builder.$args(val["$[]"](0),val["$[]"](1),val["$[]"](2)),$writer=["expr_value"],$send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_623",$Ruby30__reduce_728$542=function(val,_values,result){var args=[].concat(Opal.to_a(val["$[]"](1))).concat([this.builder.$forward_arg(val["$[]"](3))]);return result=this.builder.$args(val["$[]"](0),args,val["$[]"](4)),this.static_env.$declare_forward_args(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_624",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.builder.$forward_only_args(val["$[]"](0),val["$[]"](1),val["$[]"](2)),this.static_env.$declare_forward_args(),$writer=["expr_value"],$send(this.lexer,"state=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_626",$Ruby30__reduce_728$542=function(val,_values,result){var $writer;return result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_627",$Ruby30__reduce_728$542=function(val){var $writer=[val["$[]"](0)];return $send(this.context,"in_kwarg=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.builder.$args(nil,val["$[]"](1),nil)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_628",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_629",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_630",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_631",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_632",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_633",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_634",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_635",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](6)).$concat(val["$[]"](7))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_636",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_637",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_638",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_639",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_640",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_641",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_642",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_643",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_644",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_645",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_646",$Ruby30__reduce_728$542=function(val){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_647",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_648",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_649",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_650",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","argument_const",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_651",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","argument_ivar",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_652",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","argument_gvar",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_653",$Ruby30__reduce_728$542=function(val,_values,result){return this.$diagnostic("error","argument_cvar",nil,val["$[]"](0)),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_655",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_656",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(val["$[]"](0)["$[]"](0)),val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_657",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(0),this.builder.$arg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_658",$Ruby30__reduce_728$542=function(val){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_659",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_660",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_661",$Ruby30__reduce_728$542=function(val){return this.$check_kwarg_name(val["$[]"](0)),this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(val["$[]"](0)["$[]"](0)),val["$[]"](0)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_662",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(nil),this.builder.$kwoptarg(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_663",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(nil),this.builder.$kwarg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_664",$Ruby30__reduce_728$542=function(val){return this.builder.$kwoptarg(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_665",$Ruby30__reduce_728$542=function(val){return this.builder.$kwarg(val["$[]"](0))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_666",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_667",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_668",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_669",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_672",$Ruby30__reduce_728$542=function(val){return[this.builder.$kwnilarg(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_673",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),[this.builder.$kwrestarg(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_674",$Ruby30__reduce_728$542=function(val){return[this.builder.$kwrestarg(val["$[]"](0))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_675",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(0),this.builder.$optarg(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_676",$Ruby30__reduce_728$542=function(val){return this.current_arg_stack.$set(0),this.builder.$optarg(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_677",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_678",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_679",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_680",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_683",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),[this.builder.$restarg(val["$[]"](0),val["$[]"](1))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_684",$Ruby30__reduce_728$542=function(val){return[this.builder.$restarg(val["$[]"](0))]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_687",$Ruby30__reduce_728$542=function(val){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),this.builder.$blockarg(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_688",$Ruby30__reduce_728$542=function(val){return[val["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_689",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_691",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_692",$Ruby30__reduce_728$542=function(){return[]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_694",$Ruby30__reduce_728$542=function(val){return[val["$[]"](0)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_695",$Ruby30__reduce_728$542=function(val){return val["$[]"](0)["$<<"](val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_696",$Ruby30__reduce_728$542=function(val){return this.builder.$pair(val["$[]"](0),val["$[]"](1),val["$[]"](2))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_697",$Ruby30__reduce_728$542=function(val){return this.builder.$pair_keyword(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_698",$Ruby30__reduce_728$542=function(val){return this.builder.$pair_quoted(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_699",$Ruby30__reduce_728$542=function(val){return this.builder.$kwsplat(val["$[]"](0),val["$[]"](1))},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_712",$Ruby30__reduce_728$542=function(val){return["dot",val["$[]"](0)["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_713",$Ruby30__reduce_728$542=function(val){return["anddot",val["$[]"](0)["$[]"](1)]},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_718",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_719",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_720",$Ruby30__reduce_728$542=function(val){return val["$[]"](1)},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_724",$Ruby30__reduce_728$542=function(val,_values,result){return this.$yyerrok(),result},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_728",$Ruby30__reduce_728$542=function(){return nil},$Ruby30__reduce_728$542.$$arity=3),Opal.def($Ruby30__reduce_none$543,"$_reduce_none",$Ruby30__reduce_none$543=function(val){return val["$[]"](0)},$Ruby30__reduce_none$543.$$arity=3),nil&&"_reduce_none"}($nesting[0],$$$($$($nesting,"Parser"),"Base"),$nesting)}($nesting[0],$nesting)},Opal.modules["opal/ast/builder"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=(Opal.$$,Opal.module),$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$emit_lambda=","$-","$new"]),self.$require("opal/ast/node"),self.$require("parser/ruby30"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"AST")].concat($nesting);return function($Builder_n$1,lhs,rhs){$Builder_n$1=$klass($Builder_n$1,lhs,"Builder"),[$Builder_n$1].concat(rhs),lhs=nil,lhs=[!0];return $send($Builder_n$1,"emit_lambda=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),Opal.def($Builder_n$1,"$n",$Builder_n$1=function(type,children,location){return $$$($$$($$$("::","Opal"),"AST"),"Node").$new(type,children,$hash2(["location"],{location:location}))},$Builder_n$1.$$arity=3),nil&&"n"}($nesting[0],$$$($$$($$$("::","Parser"),"Builders"),"Default"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/base"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$alias=Opal.alias,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$new","$current_node","$loc","$+","$stmts_of","$begin_with_stmts","$nil?","$include?","$type","$children","$length","$===","$[]","$s","$attr_accessor","$current_node=","$-","$location=","$raise"]),self.$require("parser"),self.$require("opal/ast/node"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$Base_error$16,$Base_begin_with_stmts$14){var $Base_process$15,$Base_error$16=$klass($base,$Base_error$16,"Base"),$nesting=[$Base_error$16].concat($Base_begin_with_stmts$14);return function($DummyLocation_last_line$8,$DummyLocation_column$7){var $nesting=[$DummyLocation_last_line$8=$klass($DummyLocation_last_line$8,null,"DummyLocation")].concat($DummyLocation_column$7);Opal.def($DummyLocation_last_line$8,"$node=",$DummyLocation_column$7=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$DummyLocation_column$7.$$arity=-1),Opal.def($DummyLocation_last_line$8,"$expression",$DummyLocation_column$7=function(){return this},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$begin_pos",$DummyLocation_column$7=function(){return 0},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$end_pos",$DummyLocation_column$7=function(){return 0},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$source",$DummyLocation_column$7=function(){return""},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$line",$DummyLocation_column$7=function(){return 0},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$column",$DummyLocation_column$7=function(){return 0},$DummyLocation_column$7.$$arity=0),Opal.def($DummyLocation_last_line$8,"$last_line",$DummyLocation_last_line$8=function(){return $$$($$($nesting,"Float"),"INFINITY")},$DummyLocation_last_line$8.$$arity=0)}($nesting[0],$nesting),Opal.const_set($nesting[0],"DUMMY_LOCATION",$$($nesting,"DummyLocation").$new()),Opal.def($Base_error$16,"$s",$Base_begin_with_stmts$14=function(type,$a){var self=this,children=Opal.slice.call(arguments,1,arguments.length),loc=$truthy(self.$current_node())?self.$current_node().$loc():$$($nesting,"DUMMY_LOCATION");return $$$($$$($$$("::","Opal"),"AST"),"Node").$new(type,children,$hash2(["location"],{location:loc}))},$Base_begin_with_stmts$14.$$arity=-2),Opal.defs($Base_error$16,"$s",$Base_begin_with_stmts$14=function(type,$a){var children=Opal.slice.call(arguments,1,arguments.length);return $$$($$$($$$("::","Opal"),"AST"),"Node").$new(type,children,$hash2(["location"],{location:$$($nesting,"DUMMY_LOCATION")}))},$Base_begin_with_stmts$14.$$arity=-2),$alias($Base_error$16,"on_iter","process_regular_node"),$alias($Base_error$16,"on_top","process_regular_node"),$alias($Base_error$16,"on_zsuper","process_regular_node"),$alias($Base_error$16,"on_jscall","on_send"),$alias($Base_error$16,"on_jsattr","process_regular_node"),$alias($Base_error$16,"on_jsattrasgn","process_regular_node"),$alias($Base_error$16,"on_kwsplat","process_regular_node"),Opal.def($Base_error$16,"$prepend_to_body",$Base_begin_with_stmts$14=function(body,node){var stmts=$rb_plus(this.$stmts_of(node),this.$stmts_of(body));return this.$begin_with_stmts(stmts)},$Base_begin_with_stmts$14.$$arity=2),Opal.def($Base_error$16,"$append_to_body",$Base_begin_with_stmts$14=function(body,node){var stmts=$rb_plus(this.$stmts_of(body),this.$stmts_of(node));return this.$begin_with_stmts(stmts)},$Base_begin_with_stmts$14.$$arity=2),Opal.def($Base_error$16,"$stmts_of",$Base_begin_with_stmts$14=function(node){return $truthy(node["$nil?"]())?[]:$truthy(["begin","kwbegin"]["$include?"](node.$type()))?node.$children():[node]},$Base_begin_with_stmts$14.$$arity=1),Opal.def($Base_error$16,"$begin_with_stmts",$Base_begin_with_stmts$14=function(stmts){var self=this,$case=nil;return $case=stmts.$length(),0["$==="]($case)?nil:1["$==="]($case)?stmts["$[]"](0):$send(self,"s",["begin"].concat(Opal.to_a(stmts)))},$Base_begin_with_stmts$14.$$arity=1),$Base_error$16.$attr_accessor("current_node"),Opal.def($Base_error$16,"$process",$Base_process$15=function(node){var $zuper_ii,$iter=$Base_process$15.$$p,self=this,$writer=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Base_process$15.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return function(){try{return $writer=[node],$send(self,"current_node=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send2(self,$find_super(self,"process",$Base_process$15,!1,!0),"process",$zuper,$iter)}finally{$writer=[nil],$send(self,"current_node=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$Base_process$15.$$arity=1),Opal.def($Base_error$16,"$error",$Base_error$16=function(msg){var $writer,error=$$$($$$("::","Opal"),"RewritingError").$new(msg);return $truthy(this.$current_node())&&($writer=[this.$current_node().$loc()],$send(error,"location=",Opal.to_a($writer)),$rb_minus($writer.length,1)),this.$raise(error)},$Base_error$16.$$arity=1),nil&&"error"}($nesting[0],$$$($$$($$$("::","Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/opal_engine_check"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$children","$skip_check_present?","$process","$s","$skip_check_present_not?","$=="]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$OpalEngineCheck_skip_check_present_not$ques$3){var $OpalEngineCheck_on_if$1,self=$klass($base,self,"OpalEngineCheck"),$nesting=[self].concat($OpalEngineCheck_skip_check_present_not$ques$3);return Opal.def(self,"$on_if",$OpalEngineCheck_on_if$1=function(node){var $a,test,true_body,false_body,$zuper_ii,$iter=$OpalEngineCheck_on_if$1.$$p,self=this,$ret_or_1=nil,$ret_or_2=nil,$zuper=nil,$zuper_i=nil;for($iter&&($OpalEngineCheck_on_if$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return test=null==($a=[].concat(Opal.to_a(node.$children())))[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],$truthy(self["$skip_check_present?"](test))?self.$process($truthy($ret_or_1=true_body)?$ret_or_1:self.$s("nil")):$truthy(self["$skip_check_present_not?"](test))?self.$process($truthy($ret_or_2=false_body)?$ret_or_2:self.$s("nil")):$send2(self,$find_super(self,"on_if",$OpalEngineCheck_on_if$1,!1,!0),"on_if",$zuper,$iter)},$OpalEngineCheck_on_if$1.$$arity=1),Opal.def(self,"$skip_check_present?",$OpalEngineCheck_skip_check_present_not$ques$3=function(test){var $ret_or_3;return $truthy($ret_or_3=test["$=="]($$($nesting,"RUBY_ENGINE_CHECK")))?$ret_or_3:test["$=="]($$($nesting,"RUBY_PLATFORM_CHECK"))},$OpalEngineCheck_skip_check_present_not$ques$3.$$arity=1),Opal.def(self,"$skip_check_present_not?",$OpalEngineCheck_skip_check_present_not$ques$3=function(test){var $ret_or_4;return $truthy($ret_or_4=test["$=="]($$($nesting,"RUBY_ENGINE_CHECK_NOT")))?$ret_or_4:test["$=="]($$($nesting,"RUBY_PLATFORM_CHECK_NOT"))},$OpalEngineCheck_skip_check_present_not$ques$3.$$arity=1),Opal.const_set($nesting[0],"RUBY_ENGINE_CHECK",self.$s("send",self.$s("const",nil,"RUBY_ENGINE"),"==",self.$s("str","opal"))),Opal.const_set($nesting[0],"RUBY_ENGINE_CHECK_NOT",self.$s("send",self.$s("const",nil,"RUBY_ENGINE"),"!=",self.$s("str","opal"))),Opal.const_set($nesting[0],"RUBY_PLATFORM_CHECK",self.$s("send",self.$s("const",nil,"RUBY_PLATFORM"),"==",self.$s("str","opal"))),Opal.const_set($nesting[0],"RUBY_PLATFORM_CHECK_NOT",self.$s("send",self.$s("const",nil,"RUBY_PLATFORM"),"!=",self.$s("str","opal")))}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/for_rewriter"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$+","$find","$map","$s","$next_tmp","$class","$type","$===","$<<","$prepend_to_body","$process","$attr_reader","$new","$to_a","$result"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$ForRewriter_on_for$3,$ForRewriter_next_tmp$2){var $ForRewriter_on_for$3=$klass($base,$ForRewriter_on_for$3,"ForRewriter"),$nesting=[$ForRewriter_on_for$3].concat($ForRewriter_next_tmp$2);return Opal.defs($ForRewriter_on_for$3,"$reset_tmp_counter!",$ForRewriter_next_tmp$2=function(){return this.counter=0},$ForRewriter_next_tmp$2.$$arity=0),Opal.defs($ForRewriter_on_for$3,"$next_tmp",$ForRewriter_next_tmp$2=function(){var self=this,$ret_or_1=nil;return null==self.counter&&(self.counter=nil),self.counter=$truthy($ret_or_1=self.counter)?$ret_or_1:0,self.counter=$rb_plus(self.counter,1),"$for_tmp"+self.counter},$ForRewriter_next_tmp$2.$$arity=0),Opal.def($ForRewriter_on_for$3,"$on_for",$ForRewriter_on_for$3=function(node){var $$4,self=this,loop_variable=nil,loop_variable_assignment=nil,$case=nil,$a=[].concat(Opal.to_a(node)),loop_variable=null==$a[0]?nil:$a[0],iterating_value=null==$a[1]?nil:$a[1],loop_body=null==$a[2]?nil:$a[2],iterating_lvars=$$($nesting,"LocalVariableAssigns").$find(loop_variable),lvars_declared_in_body=$$($nesting,"LocalVariableAssigns").$find(loop_body),outer_assigns=$send($rb_plus(iterating_lvars,lvars_declared_in_body),"map",[],(($$4=function(lvar_name){var self=null==$$4.$$s?this:$$4.$$s;return null==lvar_name&&(lvar_name=nil),self.$s("lvdeclare",lvar_name)}).$$s=self,$$4.$$arity=1,$$4)),tmp_loop_variable=self.$class().$next_tmp(),get_tmp_loop_variable=self.$s("js_tmp",tmp_loop_variable);return $case=loop_variable.$type(),loop_variable_assignment="mlhs"["$==="]($case)?self.$s("masgn",loop_variable,get_tmp_loop_variable):loop_variable["$<<"](get_tmp_loop_variable),loop_body=self.$prepend_to_body(loop_body,loop_variable_assignment),node=self.$s("send",iterating_value,"each",self.$s("iter",self.$s("args",self.$s("arg",tmp_loop_variable)),self.$process(loop_body))),$send(self,"s",["begin"].concat(Opal.to_a(outer_assigns)).concat([node]))},$ForRewriter_on_for$3.$$arity=1),function($base,self,$LocalVariableAssigns_initialize$6){var $LocalVariableAssigns_on_lvasgn$7,self=$klass($base,self,"LocalVariableAssigns"),$nesting=[self].concat($LocalVariableAssigns_initialize$6);return self.$attr_reader("result"),Opal.defs(self,"$find",$LocalVariableAssigns_initialize$6=function(node){var processor=nil;return(processor=this.$new()).$process(node),processor.$result().$to_a()},$LocalVariableAssigns_initialize$6.$$arity=1),Opal.def(self,"$initialize",$LocalVariableAssigns_initialize$6=function(){return this.result=$$($nesting,"Set").$new()},$LocalVariableAssigns_initialize$6.$$arity=0),Opal.def(self,"$on_lvasgn",$LocalVariableAssigns_on_lvasgn$7=function(node){var $a,name,$zuper_ii,$iter=$LocalVariableAssigns_on_lvasgn$7.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($LocalVariableAssigns_on_lvasgn$7.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return name=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],this.$result()["$<<"](name),$send2(this,$find_super(this,"on_lvasgn",$LocalVariableAssigns_on_lvasgn$7,!1,!0),"on_lvasgn",$zuper,$iter)},$LocalVariableAssigns_on_lvasgn$7.$$arity=1),nil&&"on_lvasgn"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/explicit_writer_return"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$send=Opal.send;return Opal.add_stubs(["$require","$s","$=~","$to_s","$==","$process_all","$updated"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$ExplicitWriterReturn_initialize$1){var $ExplicitWriterReturn_on_send$2,$ExplicitWriterReturn_on_masgn$3,self=$klass($base,self,"ExplicitWriterReturn"),$nesting=[self].concat($ExplicitWriterReturn_initialize$1);return self.$$prototype.in_masgn=nil,Opal.def(self,"$initialize",$ExplicitWriterReturn_initialize$1=function(){return this.in_masgn=!1},$ExplicitWriterReturn_initialize$1.$$arity=0),Opal.const_set($nesting[0],"TMP_NAME","$writer"),Opal.const_set($nesting[0],"GET_ARGS_NODE",self.$s("lvar",$$($nesting,"TMP_NAME"))),Opal.const_set($nesting[0],"RETURN_ARGS_NODE",self.$s("jsattr",$$($nesting,"GET_ARGS_NODE"),self.$s("send",self.$s("jsattr",$$($nesting,"GET_ARGS_NODE"),self.$s("str","length")),"-",self.$s("int",1)))),Opal.def(self,"$on_send",$ExplicitWriterReturn_on_send$2=function(node){var $a,recv,args,set_args_node,$zuper_ii,$iter=$ExplicitWriterReturn_on_send$2.$$p,method_name=nil,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ExplicitWriterReturn_on_send$2.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy(this.in_masgn)?$send2(this,$find_super(this,"on_send",$ExplicitWriterReturn_on_send$2,!1,!0),"on_send",$zuper,$iter):(recv=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy($truthy($ret_or_1=method_name.$to_s()["$=~"](Opal.regexp([$$($nesting,"REGEXP_START"),"\\w+=",$$($nesting,"REGEXP_END")])))?$ret_or_1:method_name.$to_s()["$=="]("[]="))?(set_args_node=this.$s("lvasgn",$$($nesting,"TMP_NAME"),$send(this,"s",["array"].concat(Opal.to_a(this.$process_all(args))))),this.$s("begin",set_args_node,node.$updated(nil,[recv,method_name,this.$s("splat",$$($nesting,"GET_ARGS_NODE"))]),$$($nesting,"RETURN_ARGS_NODE"))):$send2(this,$find_super(this,"on_send",$ExplicitWriterReturn_on_send$2,!1,!0),"on_send",$zuper,$iter))},$ExplicitWriterReturn_on_send$2.$$arity=1),Opal.def(self,"$on_masgn",$ExplicitWriterReturn_on_masgn$3=function(node){var result,$zuper_ii,$iter=$ExplicitWriterReturn_on_masgn$3.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($ExplicitWriterReturn_on_masgn$3.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return this.in_masgn=!0,result=$send2(this,$find_super(this,"on_masgn",$ExplicitWriterReturn_on_masgn$3,!1,!0),"on_masgn",$zuper,$iter),this.in_masgn=!1,result},$ExplicitWriterReturn_on_masgn$3.$$arity=1),nil&&"on_masgn"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/regexp_anchors"]=function(Opal){Opal.top;var $nesting=[],$$=(Opal.nil,Opal.$$$,Opal.$$),$module=Opal.module;return Opal.add_stubs(["$new"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return Opal.const_set($nesting[0],"REGEXP_START","^"),Opal.const_set($nesting[0],"REGEXP_END","$"),Opal.const_set($nesting[0],"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),Opal.const_set($nesting[0],"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),Opal.const_set($nesting[0],"INLINE_IDENTIFIER_REGEXP",$$($nesting,"Regexp").$new("[^"+$$($nesting,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+$$($nesting,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),Opal.const_set($nesting[0],"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),Opal.const_set($nesting[0],"CONST_NAME_REGEXP",$$($nesting,"Regexp").$new($$($nesting,"REGEXP_START")+"(::)?[A-Z][^"+$$($nesting,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+$$($nesting,"REGEXP_END")))}($nesting[0],$nesting)},Opal.modules["opal/rewriters/js_reserved_words"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$freeze","$=~","$!","$valid_name?","$class","$to_sym","$valid_ivar_name?","$[]","$to_s","$updated","$fix_var_name","$fix_ivar_name"]),self.$require("opal/rewriters/base"),self.$require("opal/regexp_anchors"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$JsReservedWords_on_restarg$9){var $JsReservedWords_on_lvar$5,$JsReservedWords_on_lvasgn$6,$JsReservedWords_on_ivar$7,$JsReservedWords_on_ivasgn$8,$JsReservedWords_on_argument$10,self=$klass($base,self,"JsReservedWords"),$nesting=[self].concat($JsReservedWords_on_restarg$9);return Opal.const_set($nesting[0],"ES51_RESERVED_WORD",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"ES3_RESERVED_WORD_EXCLUSIVE",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"PROTO_SPECIAL_PROPS",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"PROTO_SPECIAL_METHODS",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:hasOwnProperty|valueOf)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"IMMUTABLE_PROPS",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:NaN|Infinity|undefined)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.const_set($nesting[0],"BASIC_IDENTIFIER_RULES",Opal.regexp([$$($nesting,"REGEXP_START"),"[$_a-z][$_a-z\\d]*",$$($nesting,"REGEXP_END")],"i").$freeze()),Opal.const_set($nesting[0],"RESERVED_FUNCTION_NAMES",Opal.regexp([$$($nesting,"REGEXP_START"),"(?:Array)",$$($nesting,"REGEXP_END")]).$freeze()),Opal.defs(self,"$valid_name?",$JsReservedWords_on_restarg$9=function(name){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$$($nesting,"BASIC_IDENTIFIER_RULES")["$=~"](name))?($truthy($ret_or_2=$truthy($ret_or_3=$$($nesting,"ES51_RESERVED_WORD")["$=~"](name))?$ret_or_3:$$($nesting,"ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](name))?$ret_or_2:$$($nesting,"IMMUTABLE_PROPS")["$=~"](name))["$!"]():$ret_or_1},$JsReservedWords_on_restarg$9.$$arity=1),Opal.defs(self,"$valid_ivar_name?",$JsReservedWords_on_restarg$9=function(name){var $ret_or_4=nil;return($truthy($ret_or_4=$$($nesting,"PROTO_SPECIAL_PROPS")["$=~"](name))?$ret_or_4:$$($nesting,"PROTO_SPECIAL_METHODS")["$=~"](name))["$!"]()},$JsReservedWords_on_restarg$9.$$arity=1),Opal.def(self,"$fix_var_name",$JsReservedWords_on_restarg$9=function(name){return $truthy(this.$class()["$valid_name?"](name))?name:(name+"$").$to_sym()},$JsReservedWords_on_restarg$9.$$arity=1),Opal.def(self,"$fix_ivar_name",$JsReservedWords_on_restarg$9=function(name){return $truthy(this.$class()["$valid_ivar_name?"](name.$to_s()["$[]"]($range(1,-1,!1))))?name:(name+"$").$to_sym()},$JsReservedWords_on_restarg$9.$$arity=1),Opal.def(self,"$on_lvar",$JsReservedWords_on_lvar$5=function(node){var name,$a=$JsReservedWords_on_lvar$5.$$p;return $a&&($JsReservedWords_on_lvar$5.$$p=null),name=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],node=node.$updated(nil,[this.$fix_var_name(name)]),$send2(this,$find_super(this,"on_lvar",$JsReservedWords_on_lvar$5,!1,!0),"on_lvar",[node],null)},$JsReservedWords_on_lvar$5.$$arity=1),Opal.def(self,"$on_lvasgn",$JsReservedWords_on_lvasgn$6=function(node){var name,value,$a=$JsReservedWords_on_lvasgn$6.$$p,self=this;return $a&&($JsReservedWords_on_lvasgn$6.$$p=null),$a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=$truthy(value)?node.$updated(nil,[self.$fix_var_name(name),value]):node.$updated(nil,[self.$fix_var_name(name)]),$send2(self,$find_super(self,"on_lvasgn",$JsReservedWords_on_lvasgn$6,!1,!0),"on_lvasgn",[node],null)},$JsReservedWords_on_lvasgn$6.$$arity=1),Opal.def(self,"$on_ivar",$JsReservedWords_on_ivar$7=function(node){var name,$a=$JsReservedWords_on_ivar$7.$$p;return $a&&($JsReservedWords_on_ivar$7.$$p=null),name=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],node=node.$updated(nil,[this.$fix_ivar_name(name)]),$send2(this,$find_super(this,"on_ivar",$JsReservedWords_on_ivar$7,!1,!0),"on_ivar",[node],null)},$JsReservedWords_on_ivar$7.$$arity=1),Opal.def(self,"$on_ivasgn",$JsReservedWords_on_ivasgn$8=function(node){var name,value,$a=$JsReservedWords_on_ivasgn$8.$$p,self=this;return $a&&($JsReservedWords_on_ivasgn$8.$$p=null),$a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=$truthy(value)?node.$updated(nil,[self.$fix_ivar_name(name),value]):node.$updated(nil,[self.$fix_ivar_name(name)]),$send2(self,$find_super(self,"on_ivasgn",$JsReservedWords_on_ivasgn$8,!1,!0),"on_ivasgn",[node],null)},$JsReservedWords_on_ivasgn$8.$$arity=1),Opal.def(self,"$on_restarg",$JsReservedWords_on_restarg$9=function(node){var $a=[].concat(Opal.to_a(node)),name=null==$a[0]?nil:$a[0];null==$a[1]||$a[1];return $truthy(name)&&(node=node.$updated(nil,[this.$fix_var_name(name)],$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:name})}))),node},$JsReservedWords_on_restarg$9.$$arity=1),Opal.def(self,"$on_argument",$JsReservedWords_on_argument$10=function(node){var name,value,fixed_name,new_children,$a=$JsReservedWords_on_argument$10.$$p;return $a&&($JsReservedWords_on_argument$10.$$p=null),node=$send2(this,$find_super(this,"on_argument",$JsReservedWords_on_argument$10,!1,!0),"on_argument",[node],null),name=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],fixed_name=this.$fix_var_name(name),new_children=$truthy(value)?[fixed_name,value]:[fixed_name],node.$updated(nil,new_children,$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:name})}))},$JsReservedWords_on_argument$10.$$arity=1),nil&&"on_argument"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/block_to_iter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$s","$updated","$+","$children"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$parent_nesting){var $BlockToIter_on_block$1,self=$klass($base,self,"BlockToIter");[self].concat($parent_nesting);return Opal.def(self,"$on_block",$BlockToIter_on_block$1=function(node){var args,body,$zuper_ii,$a=$BlockToIter_on_block$1.$$p,lhs=nil,rhs=nil,$zuper=nil,$zuper_i=nil;for($a&&($BlockToIter_on_block$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return lhs=null==($a=[].concat(Opal.to_a($send2(this,$find_super(this,"on_block",$BlockToIter_on_block$1,!1,!0),"on_block",$zuper,$a))))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],rhs=this.$s("iter",args,body),lhs.$updated(nil,(lhs=lhs.$children(),rhs=[rhs],"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)))},$BlockToIter_on_block$1.$$arity=1),nil&&"on_block"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$slice=Opal.slice,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send;return Opal.add_stubs(["$require","$==","$type","$===","$!=","$size","$error","$first","$to_js_attr_call","$to_js_attr_assign_call","$to_native_js_call","$s"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$DotJsSyntax_to_js_attr_assign_call$4,$DotJsSyntax_to_js_attr_call$3){var $DotJsSyntax_on_send$1,$DotJsSyntax_to_js_attr_assign_call$4=$klass($base,$DotJsSyntax_to_js_attr_assign_call$4,"DotJsSyntax");[$DotJsSyntax_to_js_attr_assign_call$4].concat($DotJsSyntax_to_js_attr_call$3);return Opal.def($DotJsSyntax_to_js_attr_assign_call$4,"$on_send",$DotJsSyntax_on_send$1=function(node){var $a,meth,recv_of_recv,$case,value,$zuper_ii,$iter=$DotJsSyntax_on_send$1.$$p,recv=nil,args=nil,$ret_or_1=nil,meth_of_recv=nil,property=nil,$zuper=nil,$zuper_i=nil;for($iter&&($DotJsSyntax_on_send$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $a=[].concat(Opal.to_a(node)),recv=null==$a[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy($truthy($ret_or_1=recv)?recv.$type()["$=="]("send"):$ret_or_1)?(recv_of_recv=null==($a=[].concat(Opal.to_a(recv)))[0]?nil:$a[0],meth_of_recv=null==$a[1]?nil:$a[1],null==$a[2]||$a[2],meth_of_recv["$=="]("JS")?(node="[]"["$==="]($case=meth)?($truthy(args.$size()["$!="](1))&&this.$error(".JS[:property] syntax supports only one argument"),property=args.$first(),this.$to_js_attr_call(recv_of_recv,property)):"[]="["$==="]($case)?($truthy(args.$size()["$!="](2))&&this.$error(".JS[:property]= syntax supports only two arguments"),property=null==($a=[].concat(Opal.to_a(args)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],this.$to_js_attr_assign_call(recv_of_recv,property,value)):this.$to_native_js_call(recv_of_recv,meth,args),$send2(this,$find_super(this,"on_send",$DotJsSyntax_on_send$1,!1,!0),"on_send",[node],null)):$send2(this,$find_super(this,"on_send",$DotJsSyntax_on_send$1,!1,!0),"on_send",$zuper,$iter)):$send2(this,$find_super(this,"on_send",$DotJsSyntax_on_send$1,!1,!0),"on_send",$zuper,$iter)},$DotJsSyntax_on_send$1.$$arity=1),Opal.def($DotJsSyntax_to_js_attr_assign_call$4,"$to_native_js_call",$DotJsSyntax_to_js_attr_call$3=function(recv,meth,args){return $send(this,"s",["jscall",recv,meth].concat(Opal.to_a(args)))},$DotJsSyntax_to_js_attr_call$3.$$arity=3),Opal.def($DotJsSyntax_to_js_attr_assign_call$4,"$to_js_attr_call",$DotJsSyntax_to_js_attr_call$3=function(recv,property){return this.$s("jsattr",recv,property)},$DotJsSyntax_to_js_attr_call$3.$$arity=2),Opal.def($DotJsSyntax_to_js_attr_assign_call$4,"$to_js_attr_assign_call",$DotJsSyntax_to_js_attr_assign_call$4=function(recv,property,value){return this.$s("jsattrasgn",recv,property,value)},$DotJsSyntax_to_js_attr_assign_call$4.$$arity=3),nil&&"to_js_attr_assign_call"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/pattern_matching"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$require","$s","$convert_full_pattern","$raise_no_matching_pattern_error","$+","$process","$single_case_match","$private","$shift","$type","$===","$!","$empty?","$!=","$==","$class","$new","$run!","$variables","$pattern","$map","$<<","$array","$on_literal","$first","$children","$to_proc","$method","$each","$to_ast","$on_array_pattern","$compact","$[]"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$PatternMatching_convert_full_pattern$7,$PatternMatching_single_case_match$6){var $PatternMatching_initialize$1,$PatternMatching_convert_full_pattern$7=$klass($base,$PatternMatching_convert_full_pattern$7,"PatternMatching"),$nesting=[$PatternMatching_convert_full_pattern$7].concat($PatternMatching_single_case_match$6);return $PatternMatching_convert_full_pattern$7.$$prototype.depth=nil,Opal.def($PatternMatching_convert_full_pattern$7,"$initialize",$PatternMatching_initialize$1=function(){var $zuper_ii,$iter=$PatternMatching_initialize$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($PatternMatching_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return this.depth=0,$send2(this,$find_super(this,"initialize",$PatternMatching_initialize$1,!1,!0),"initialize",$zuper,$iter)},$PatternMatching_initialize$1.$$arity=0),Opal.def($PatternMatching_convert_full_pattern$7,"$on_match_pattern",$PatternMatching_single_case_match$6=function($a){var $a=[].concat(Opal.to_a($a)),from=null==$a[0]?nil:$a[0],pat=null==$a[1]?nil:$a[1];return this.$s("begin",this.$s("lvasgn","$pmvar",from),this.$s("if",this.$convert_full_pattern(from,pat),nil,this.$raise_no_matching_pattern_error("$pmvar")))},$PatternMatching_single_case_match$6.$$arity=1),Opal.def($PatternMatching_convert_full_pattern$7,"$on_match_pattern_p",$PatternMatching_single_case_match$6=function($a){var $a=[].concat(Opal.to_a($a)),from=null==$a[0]?nil:$a[0],pat=null==$a[1]?nil:$a[1];return this.$s("if",this.$convert_full_pattern(from,pat),this.$s("true"),this.$s("false"))},$PatternMatching_single_case_match$6.$$arity=1),Opal.def($PatternMatching_convert_full_pattern$7,"$on_case_match",$PatternMatching_single_case_match$6=function($b){var $a,from,cases,cmvar=nil,els=nil;return this.depth=$rb_plus(this.depth,1),cmvar="$cmvar"+this.depth,from=null==($a=[].concat(Opal.to_a($b)))[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,cases=$slice.call($a,1,$b),els=null==$a[$b]?nil:$a[$b],$truthy(els)?this.$process(els):els=this.$raise_no_matching_pattern_error(cmvar),this.$s("begin",this.$s("lvasgn",cmvar,from),$send(this,"single_case_match",[cmvar].concat(Opal.to_a(cases)).concat([els])))},$PatternMatching_single_case_match$6.$$arity=1),$PatternMatching_convert_full_pattern$7.$private(),Opal.def($PatternMatching_convert_full_pattern$7,"$raise_no_matching_pattern_error",$PatternMatching_single_case_match$6=function(from){return this.$s("send",nil,"raise",this.$s("const",nil,"NoMatchingPatternError"),this.$s("lvar",from))},$PatternMatching_single_case_match$6.$$arity=1),Opal.def($PatternMatching_convert_full_pattern$7,"$single_case_match",$PatternMatching_single_case_match$6=function(from,$a,$b){var body,guard,$case,self=this,$c=nil,pat=nil,if_guard=nil,$post_args=Opal.slice.call(arguments,1,arguments.length),cases=$post_args.splice(0,$post_args.length-1),els=$post_args[0];return $post_args.splice(0,1),null==els&&(els=nil),$c=cases.$shift(),pat=null==($c=[].concat(Opal.to_a($c)))[0]?nil:$c[0],if_guard=null==$c[1]?nil:$c[1],body=null==$c[2]?nil:$c[2],pat=self.$convert_full_pattern(from,pat),$truthy(if_guard)&&(guard=null==($c=[].concat(Opal.to_a(if_guard)))[0]?nil:$c[0],$case=if_guard.$type(),"if_guard"["$==="]($case)?pat=self.$s("and",pat,guard):"unless_guard"["$==="]($case)&&(pat=self.$s("and",pat,self.$s("send",guard,"!")))),self.$s("if",pat,self.$process(body),$truthy(cases["$empty?"]()["$!"]())?$send(self,"single_case_match",[from].concat(Opal.to_a(cases)).concat([els])):$truthy(els["$!="](self.$s("empty_else")))?els:nil)},$PatternMatching_single_case_match$6.$$arity=-3),Opal.def($PatternMatching_convert_full_pattern$7,"$convert_full_pattern",$PatternMatching_convert_full_pattern$7=function(from,pat){var converter=nil;return from.$class()["$=="]($$($nesting,"Symbol"))&&(from=this.$s("lvar",from)),(converter=$$($nesting,"PatternConverter").$new(pat))["$run!"](),this.$s("masgn",$send(this,"s",["mlhs"].concat(Opal.to_a(converter.$variables()))),this.$s("send",this.$s("const",this.$s("cbase"),"PatternMatching"),"call",from,converter.$pattern()))},$PatternMatching_convert_full_pattern$7.$$arity=2),function($base,$PatternConverter_to_ast$27,$PatternConverter_array$26){var $PatternConverter_to_ast$27=$klass($base,$PatternConverter_to_ast$27,"PatternConverter"),$nesting=[$PatternConverter_to_ast$27].concat($PatternConverter_array$26);return $PatternConverter_to_ast$27.$$prototype.pat=$PatternConverter_to_ast$27.$$prototype.outpat=$PatternConverter_to_ast$27.$$prototype.variables=nil,Opal.def($PatternConverter_to_ast$27,"$initialize",$PatternConverter_array$26=function(pat){return this.pat=pat,this.variables=[]},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$run!",$PatternConverter_array$26=function(){return this.outpat=this.$process(this.pat)},$PatternConverter_array$26.$$arity=0),Opal.def($PatternConverter_to_ast$27,"$pattern",$PatternConverter_array$26=function(){return this.outpat},$PatternConverter_array$26.$$arity=0),Opal.def($PatternConverter_to_ast$27,"$variables",$PatternConverter_array$26=function(){var $$12;return $send(this.variables,"map",[],(($$12=function(i){var self=null==$$12.$$s?this:$$12.$$s;return null==i&&(i=nil),self.$s("lvasgn",i)}).$$s=this,$$12.$$arity=1,$$12))},$PatternConverter_array$26.$$arity=0),Opal.def($PatternConverter_to_ast$27,"$on_match_var",$PatternConverter_array$26=function($a){var $a=[].concat(Opal.to_a($a)),var$=null==$a[0]?nil:$a[0];return this.variables["$<<"](var$),this.$s("sym","var")},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_match_as",$PatternConverter_array$26=function($a){var $a=[].concat(Opal.to_a($a)),pat=null==$a[0]?nil:$a[0],save=null==$a[1]?nil:$a[1];return this.$process(save),this.$array(this.$s("sym","save"),this.$process(pat))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_literal",$PatternConverter_array$26=function(node){return this.$array(this.$s("sym","lit"),node)},$PatternConverter_array$26.$$arity=1),$alias($PatternConverter_to_ast$27,"on_int","on_literal"),$alias($PatternConverter_to_ast$27,"on_float","on_literal"),$alias($PatternConverter_to_ast$27,"on_complex","on_literal"),$alias($PatternConverter_to_ast$27,"on_rational","on_literal"),$alias($PatternConverter_to_ast$27,"on_array","on_literal"),$alias($PatternConverter_to_ast$27,"on_str","on_literal"),$alias($PatternConverter_to_ast$27,"on_dstr","on_literal"),$alias($PatternConverter_to_ast$27,"on_xstr","on_literal"),$alias($PatternConverter_to_ast$27,"on_sym","on_literal"),$alias($PatternConverter_to_ast$27,"on_irange","on_literal"),$alias($PatternConverter_to_ast$27,"on_erange","on_literal"),$alias($PatternConverter_to_ast$27,"on_const","on_literal"),$alias($PatternConverter_to_ast$27,"on_regexp","on_literal"),$alias($PatternConverter_to_ast$27,"on_lambda","on_literal"),$alias($PatternConverter_to_ast$27,"on_begin","on_literal"),Opal.def($PatternConverter_to_ast$27,"$on_pin",$PatternConverter_array$26=function(node){return this.$on_literal(node.$children().$first())},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_match_rest",$PatternConverter_array$26=function(node){return $truthy(node.$children()["$empty?"]())?this.$array(this.$s("sym","rest")):this.$array(this.$s("sym","rest"),this.$process(node.$children().$first()))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_match_alt",$PatternConverter_array$26=function(node){return $send(this,"array",[this.$s("sym","any")].concat(Opal.to_a($send(node.$children(),"map",[],this.$method("process").$to_proc()))))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_const_pattern",$PatternConverter_array$26=function(node){return $send(this,"array",[this.$s("sym","all")].concat(Opal.to_a($send(node.$children(),"map",[],this.$method("process").$to_proc()))))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_array_pattern",$PatternConverter_array$26=function(node,tail){var $$21,children=nil,fixed_size=nil,array_size=nil;return null==tail&&(tail=!1),children=[].concat(Opal.to_a(node)),$truthy(tail)&&children["$<<"](this.$s("match_rest")),fixed_size=!0,array_size=0,children=$send(children,"each",[],(($$21=function(i){null==$$21.$$s||$$21.$$s;var $case=nil;return null==i&&(i=nil),$case=i.$type(),"match_rest"["$==="]($case)?fixed_size=!1:array_size=$rb_plus(array_size,1)}).$$s=this,$$21.$$arity=1,$$21)),this.$array(this.$s("sym","array"),this.$to_ast(fixed_size),this.$to_ast(array_size),this.$to_ast($send(children,"map",[],this.$method("process").$to_proc())))},$PatternConverter_array$26.$$arity=-2),Opal.def($PatternConverter_to_ast$27,"$on_array_pattern_with_tail",$PatternConverter_array$26=function(node){return this.$on_array_pattern(node,!0)},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_hash_pattern",$PatternConverter_array$26=function(node){var $$24,self=this,children=nil,any_size=nil,children=[].concat(Opal.to_a(node)),any_size=$truthy(children["$empty?"]())?self.$to_ast(!1):self.$to_ast(!0);return children=$send(children,"map",[],(($$24=function(i){var self=null==$$24.$$s?this:$$24.$$s,$case=nil;return null==i&&(i=nil),$case=i.$type(),"pair"["$==="]($case)?self.$array(i.$children()["$[]"](0),self.$process(i.$children()["$[]"](1))):"match_var"["$==="]($case)?self.$array(self.$s("sym",i.$children()["$[]"](0)),self.$process(i)):("match_nil_pattern"["$==="]($case)?any_size=self.$to_ast(!1):"match_rest"["$==="]($case)&&(any_size=$truthy(i.$children().$first())?self.$process(i.$children().$first()):self.$to_ast(!0)),nil)}).$$s=self,$$24.$$arity=1,$$24)).$compact(),self.$array(self.$s("sym","hash"),any_size,$send(self,"array",Opal.to_a(children)))},$PatternConverter_array$26.$$arity=1),Opal.def($PatternConverter_to_ast$27,"$on_find_pattern",$PatternConverter_array$26=function(node){var children=[].concat(Opal.to_a(node));return children=$send(children,"map",[],this.$method("process").$to_proc()),this.$array(this.$s("sym","find"),$send(this,"array",Opal.to_a(children)))},$PatternConverter_array$26.$$arity=1),$PatternConverter_to_ast$27.$private(),Opal.def($PatternConverter_to_ast$27,"$array",$PatternConverter_array$26=function($a){var $post_args=Opal.slice.call(arguments,0,arguments.length);return this.$to_ast($post_args)},$PatternConverter_array$26.$$arity=-1),Opal.def($PatternConverter_to_ast$27,"$to_ast",$PatternConverter_to_ast$27=function(val){var self=this,$case=nil;return $case=val,$$($nesting,"Array")["$==="]($case)?$send(self,"s",["array"].concat(Opal.to_a(val))):$$($nesting,"Integer")["$==="]($case)?self.$s("int",val):(!0)["$==="]($case)?self.$s("true"):(!1)["$==="]($case)?self.$s("false"):nil["$==="]($case)?self.$s("nil"):nil},$PatternConverter_to_ast$27.$$arity=1),nil&&"to_ast"}($nesting[0],$$$($$$($$$("::","Opal"),"Rewriters"),"Base"),$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$truthy=Opal.truthy,$class_variable_get=Opal.class_variable_get,$lambda=Opal.lambda,$slice=Opal.slice,$hash2=Opal.hash2,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$+","$updated","$s","$include?","$==","$[]","$type","$new_temp","$freeze","$call","$fetch","$error","$process"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$LogicalOperatorAssignment_on_and_asgn$9){var $LogicalOperatorAssignment$3,$LogicalOperatorAssignment_on_defined$ques$11,self=$klass($base,self,"LogicalOperatorAssignment"),$nesting=[self].concat($LogicalOperatorAssignment_on_and_asgn$9);return Opal.defs(self,"$reset_tmp_counter!",$LogicalOperatorAssignment_on_and_asgn$9=function(){return $class_variable_set($nesting[0],"@@counter",0)},$LogicalOperatorAssignment_on_and_asgn$9.$$arity=0),Opal.defs(self,"$new_temp",$LogicalOperatorAssignment_on_and_asgn$9=function(){var lhs,rhs=nil;return $class_variable_set($nesting[0],"@@counter",$truthy(null!=$nesting[0].$$cvars["@@counter"]?"class variable":nil)&&$truthy(rhs=$class_variable_get($nesting[0],"@@counter",!1))?rhs:0),$class_variable_set($nesting[0],"@@counter",(lhs=$class_variable_get($nesting[0],"@@counter",!1),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))),"$logical_op_recvr_tmp_"+$class_variable_get($nesting[0],"@@counter",!1)},$LogicalOperatorAssignment_on_and_asgn$9.$$arity=0),Opal.const_set($nesting[0],"GET_SET",$lambda((($LogicalOperatorAssignment$3=function(get_type,set_type){var $$4,self=null==$LogicalOperatorAssignment$3.$$s?this:$LogicalOperatorAssignment$3.$$s;return null==get_type&&(get_type=nil),null==set_type&&(set_type=nil),$lambda((($$4=function(lhs,rhs,root_type){var get_node,defined_node,self=null==$$4.$$s?this:$$4.$$s,condition_node=nil,$ret_or_2=nil;return null==lhs&&(lhs=nil),null==rhs&&(rhs=nil),null==root_type&&(root_type=nil),get_node=lhs.$updated(get_type),condition_node=self.$s(root_type,get_node,rhs),$truthy($truthy($ret_or_2=["const","cvar"]["$include?"](get_type))?root_type["$=="]("or"):$ret_or_2)&&(defined_node=self.$s("defined?",get_node),condition_node=self.$s("if",defined_node,self.$s("begin",condition_node),rhs)),lhs.$updated(set_type,[].concat(Opal.to_a(lhs)).concat([condition_node]))}).$$s=self,$$4.$$arity=3,$$4))}).$$s=self,$LogicalOperatorAssignment$3.$$arity=2,$LogicalOperatorAssignment$3))),Opal.const_set($nesting[0],"LocalVariableHandler",$$($nesting,"GET_SET")["$[]"]("lvar","lvasgn")),Opal.const_set($nesting[0],"InstanceVariableHandler",$$($nesting,"GET_SET")["$[]"]("ivar","ivasgn")),Opal.const_set($nesting[0],"ConstantHandler",$$($nesting,"GET_SET")["$[]"]("const","casgn")),Opal.const_set($nesting[0],"GlobalVariableHandler",$$($nesting,"GET_SET")["$[]"]("gvar","gvasgn")),Opal.const_set($nesting[0],"ClassVariableHandler",$$($nesting,"GET_SET")["$[]"]("cvar","cvasgn")),function($base,$SendHandler_call$5,$parent_nesting){[$SendHandler_call$5=$klass($base,$SendHandler_call$5,"SendHandler")].concat($parent_nesting),Opal.defs($SendHandler_call$5,"$call",$SendHandler_call$5=function(lhs,rhs,root_type){var recvr_tmp,call_reader,call_writer,get_or_set,recvr=nil,reader_method=nil,$ret_or_3=nil,cache_recvr=nil,writer_method=nil,$a=[].concat(Opal.to_a(lhs)),recvr=null==$a[0]?nil:$a[0],reader_method=null==$a[1]?nil:$a[1],args=$slice.call($a,2);return $truthy($truthy($ret_or_3=recvr)?recvr.$type()["$=="]("send"):$ret_or_3)&&(recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp)),writer_method=reader_method+"=",call_reader=lhs.$updated("send",[recvr,reader_method].concat(Opal.to_a(args))),call_writer=lhs.$updated("send",[recvr,writer_method].concat(Opal.to_a(args)).concat([rhs])),get_or_set=this.$s(root_type,call_reader,call_writer),$truthy(cache_recvr)?this.$s("begin",cache_recvr,get_or_set):get_or_set},$SendHandler_call$5.$$arity=3)}($nesting[0],self,$nesting),function($base,$ConditionalSendHandler_call$6,$parent_nesting){[$ConditionalSendHandler_call$6=$klass($base,$ConditionalSendHandler_call$6,"ConditionalSendHandler")].concat($parent_nesting),Opal.defs($ConditionalSendHandler_call$6,"$call",$ConditionalSendHandler_call$6=function(lhs,rhs,root_type){var $a,args,recvr_tmp,cache_recvr,recvr_is_nil,plain_send,plain_or_asgn,recvr=nil,meth=nil;return root_type+="_asgn",recvr=null==($a=[].concat(Opal.to_a(lhs)))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp),recvr_is_nil=this.$s("send",recvr,"nil?"),plain_send=lhs.$updated("send",[recvr,meth].concat(Opal.to_a(args))),plain_or_asgn=this.$s(root_type,plain_send,rhs),this.$s("begin",cache_recvr,this.$s("if",recvr_is_nil,this.$s("nil"),plain_or_asgn))},$ConditionalSendHandler_call$6.$$arity=3)}($nesting[0],self,$nesting),Opal.const_set($nesting[0],"HANDLERS",$hash2(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:$$($nesting,"LocalVariableHandler"),ivasgn:$$($nesting,"InstanceVariableHandler"),casgn:$$($nesting,"ConstantHandler"),gvasgn:$$($nesting,"GlobalVariableHandler"),cvasgn:$$($nesting,"ClassVariableHandler"),send:$$($nesting,"SendHandler"),csend:$$($nesting,"ConditionalSendHandler")}).$freeze()),Opal.def(self,"$on_or_asgn",$LogicalOperatorAssignment_on_and_asgn$9=function($a){var $$8,lhs=nil,$a=[].concat(Opal.to_a($a)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],result=$send($$($nesting,"HANDLERS"),"fetch",[lhs.$type()],(($$8=function(){return(null==$$8.$$s?this:$$8.$$s).$error("cannot handle LHS type: "+lhs.$type())}).$$s=this,$$8.$$arity=0,$$8)).$call(lhs,rhs,"or");return this.$process(result)},$LogicalOperatorAssignment_on_and_asgn$9.$$arity=1),Opal.def(self,"$on_and_asgn",$LogicalOperatorAssignment_on_and_asgn$9=function($a){var $$10,lhs=nil,$a=[].concat(Opal.to_a($a)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],result=$send($$($nesting,"HANDLERS"),"fetch",[lhs.$type()],(($$10=function(){return(null==$$10.$$s?this:$$10.$$s).$error("cannot handle LHS type: "+lhs.$type())}).$$s=this,$$10.$$arity=0,$$10)).$call(lhs,rhs,"and");return this.$process(result)},$LogicalOperatorAssignment_on_and_asgn$9.$$arity=1),Opal.const_set($nesting[0],"ASSIGNMENT_STRING_NODE",self.$s("str","assignment")),Opal.def(self,"$on_defined?",$LogicalOperatorAssignment_on_defined$ques$11=function(node){var $a=$LogicalOperatorAssignment_on_defined$ques$11.$$p,inner=nil;return $a&&($LogicalOperatorAssignment_on_defined$ques$11.$$p=null),inner=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],$truthy(["or_asgn","and_asgn"]["$include?"](inner.$type()))?$$($nesting,"ASSIGNMENT_STRING_NODE"):$send2(this,$find_super(this,"on_defined?",$LogicalOperatorAssignment_on_defined$ques$11,!1,!0),"on_defined?",[node],null)},$LogicalOperatorAssignment_on_defined$ques$11.$$arity=1),nil&&"on_defined?"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$truthy=Opal.truthy,$class_variable_get=Opal.class_variable_get,$lambda=Opal.lambda,$slice=Opal.slice,$hash2=Opal.hash2,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$+","$updated","$s","$[]","$==","$type","$new_temp","$freeze","$call","$fetch","$error","$process"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$BinaryOperatorAssignment_on_op_asgn$7){var $BinaryOperatorAssignment$3,$BinaryOperatorAssignment_on_defined$ques$9,self=$klass($base,self,"BinaryOperatorAssignment"),$nesting=[self].concat($BinaryOperatorAssignment_on_op_asgn$7);return Opal.defs(self,"$reset_tmp_counter!",$BinaryOperatorAssignment_on_op_asgn$7=function(){return $class_variable_set($nesting[0],"@@counter",0)},$BinaryOperatorAssignment_on_op_asgn$7.$$arity=0),Opal.defs(self,"$new_temp",$BinaryOperatorAssignment_on_op_asgn$7=function(){var lhs,rhs=nil;return $class_variable_set($nesting[0],"@@counter",$truthy(null!=$nesting[0].$$cvars["@@counter"]?"class variable":nil)&&$truthy(rhs=$class_variable_get($nesting[0],"@@counter",!1))?rhs:0),$class_variable_set($nesting[0],"@@counter",(lhs=$class_variable_get($nesting[0],"@@counter",!1),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))),"$binary_op_recvr_tmp_"+$class_variable_get($nesting[0],"@@counter",!1)},$BinaryOperatorAssignment_on_op_asgn$7.$$arity=0),Opal.const_set($nesting[0],"GET_SET",$lambda((($BinaryOperatorAssignment$3=function(get_type,set_type){var $$4,self=null==$BinaryOperatorAssignment$3.$$s?this:$BinaryOperatorAssignment$3.$$s;return null==get_type&&(get_type=nil),null==set_type&&(set_type=nil),$lambda((($$4=function(lhs,operation,rhs){var get_node,set_node,self=null==$$4.$$s?this:$$4.$$s;return null==lhs&&(lhs=nil),null==operation&&(operation=nil),null==rhs&&(rhs=nil),get_node=lhs.$updated(get_type),set_node=self.$s("send",get_node,operation,rhs),lhs.$updated(set_type,[].concat(Opal.to_a(lhs)).concat([set_node]))}).$$s=self,$$4.$$arity=3,$$4))}).$$s=self,$BinaryOperatorAssignment$3.$$arity=2,$BinaryOperatorAssignment$3))),Opal.const_set($nesting[0],"LocalVariableHandler",$$($nesting,"GET_SET")["$[]"]("lvar","lvasgn")),Opal.const_set($nesting[0],"InstanceVariableHandler",$$($nesting,"GET_SET")["$[]"]("ivar","ivasgn")),Opal.const_set($nesting[0],"ConstantHandler",$$($nesting,"GET_SET")["$[]"]("const","casgn")),Opal.const_set($nesting[0],"GlobalVariableHandler",$$($nesting,"GET_SET")["$[]"]("gvar","gvasgn")),Opal.const_set($nesting[0],"ClassVariableHandler",$$($nesting,"GET_SET")["$[]"]("cvar","cvasgn")),function($base,$SendHandler_call$5,$parent_nesting){[$SendHandler_call$5=$klass($base,$SendHandler_call$5,"SendHandler")].concat($parent_nesting),Opal.defs($SendHandler_call$5,"$call",$SendHandler_call$5=function(lhs,operation,rhs){var recvr_tmp,call_reader,call_op,call_writer,recvr=nil,reader_method=nil,$ret_or_2=nil,cache_recvr=nil,writer_method=nil,$a=[].concat(Opal.to_a(lhs)),recvr=null==$a[0]?nil:$a[0],reader_method=null==$a[1]?nil:$a[1],args=$slice.call($a,2);return $truthy($truthy($ret_or_2=recvr)?recvr.$type()["$=="]("send"):$ret_or_2)&&(recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp)),writer_method=reader_method+"=",call_reader=lhs.$updated("send",[recvr,reader_method].concat(Opal.to_a(args))),call_op=this.$s("send",call_reader,operation,rhs),call_writer=lhs.$updated("send",[recvr,writer_method].concat(Opal.to_a(args)).concat([call_op])),$truthy(cache_recvr)?this.$s("begin",cache_recvr,call_writer):call_writer},$SendHandler_call$5.$$arity=3)}($nesting[0],self,$nesting),function($base,$ConditionalSendHandler_call$6,$parent_nesting){[$ConditionalSendHandler_call$6=$klass($base,$ConditionalSendHandler_call$6,"ConditionalSendHandler")].concat($parent_nesting),Opal.defs($ConditionalSendHandler_call$6,"$call",$ConditionalSendHandler_call$6=function(lhs,operation,rhs){var recvr_is_nil,plain_send,plain_op_asgn,recvr=nil,meth=nil,$a=[].concat(Opal.to_a(lhs)),recvr=null==$a[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr);return recvr=this.$s("js_tmp",recvr_tmp),recvr_is_nil=this.$s("send",recvr,"nil?"),plain_send=lhs.$updated("send",[recvr,meth].concat(Opal.to_a(args))),plain_op_asgn=this.$s("op_asgn",plain_send,operation,rhs),this.$s("begin",cache_recvr,this.$s("if",recvr_is_nil,this.$s("nil"),plain_op_asgn))},$ConditionalSendHandler_call$6.$$arity=3)}($nesting[0],self,$nesting),Opal.const_set($nesting[0],"HANDLERS",$hash2(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:$$($nesting,"LocalVariableHandler"),ivasgn:$$($nesting,"InstanceVariableHandler"),casgn:$$($nesting,"ConstantHandler"),gvasgn:$$($nesting,"GlobalVariableHandler"),cvasgn:$$($nesting,"ClassVariableHandler"),send:$$($nesting,"SendHandler"),csend:$$($nesting,"ConditionalSendHandler")}).$freeze()),Opal.def(self,"$on_op_asgn",$BinaryOperatorAssignment_on_op_asgn$7=function($a){var $$8,lhs=nil,$a=[].concat(Opal.to_a($a)),lhs=null==$a[0]?nil:$a[0],op=null==$a[1]?nil:$a[1],rhs=null==$a[2]?nil:$a[2],result=$send($$($nesting,"HANDLERS"),"fetch",[lhs.$type()],(($$8=function(){return(null==$$8.$$s?this:$$8.$$s).$error("cannot handle LHS type: "+lhs.$type())}).$$s=this,$$8.$$arity=0,$$8)).$call(lhs,op,rhs);return this.$process(result)},$BinaryOperatorAssignment_on_op_asgn$7.$$arity=1),Opal.const_set($nesting[0],"ASSIGNMENT_STRING_NODE",self.$s("str","assignment")),Opal.def(self,"$on_defined?",$BinaryOperatorAssignment_on_defined$ques$9=function(node){var $a=$BinaryOperatorAssignment_on_defined$ques$9.$$p,inner=nil;return $a&&($BinaryOperatorAssignment_on_defined$ques$9.$$p=null),inner=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],inner.$type()["$=="]("op_asgn")?$$($nesting,"ASSIGNMENT_STRING_NODE"):$send2(this,$find_super(this,"on_defined?",$BinaryOperatorAssignment_on_defined$ques$9,!1,!0),"on_defined?",[node],null)},$BinaryOperatorAssignment_on_defined$ques$9.$$arity=1),nil&&"on_defined?"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$new","$include?","$type","$<<","$==","$process_regular_node","$updated","$inspect","$warn"]),self.$require("opal/rewriters/base"),self.$require("set"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Hashes")].concat($nesting);return function($base,$KeyDuplicatesRewriter_on_kwsplat$4,$KeyDuplicatesRewriter_initialize$1){var $KeyDuplicatesRewriter_on_hash$2,$KeyDuplicatesRewriter_on_pair$3,$KeyDuplicatesRewriter_on_kwsplat$4=$klass($base,$KeyDuplicatesRewriter_on_kwsplat$4,"KeyDuplicatesRewriter"),$nesting=[$KeyDuplicatesRewriter_on_kwsplat$4].concat($KeyDuplicatesRewriter_initialize$1);return $KeyDuplicatesRewriter_on_kwsplat$4.$$prototype.keys=nil,Opal.def($KeyDuplicatesRewriter_on_kwsplat$4,"$initialize",$KeyDuplicatesRewriter_initialize$1=function(){return this.keys=$$($nesting,"UniqKeysSet").$new()},$KeyDuplicatesRewriter_initialize$1.$$arity=0),Opal.def($KeyDuplicatesRewriter_on_kwsplat$4,"$on_hash",$KeyDuplicatesRewriter_on_hash$2=function(node){var $a,$iter=$KeyDuplicatesRewriter_on_hash$2.$$p,self=this,previous_keys=nil;return $iter&&($KeyDuplicatesRewriter_on_hash$2.$$p=null),function(){try{return $a=[self.keys,$$($nesting,"UniqKeysSet").$new()],previous_keys=$a[0],self.keys=$a[1],$send2(self,$find_super(self,"on_hash",$KeyDuplicatesRewriter_on_hash$2,!1,!0),"on_hash",[node],null)}finally{self.keys=previous_keys}}()},$KeyDuplicatesRewriter_on_hash$2.$$arity=1),Opal.def($KeyDuplicatesRewriter_on_kwsplat$4,"$on_pair",$KeyDuplicatesRewriter_on_pair$3=function(node){var $a=$KeyDuplicatesRewriter_on_pair$3.$$p,key=nil;return $a&&($KeyDuplicatesRewriter_on_pair$3.$$p=null),key=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],$truthy(["str","sym"]["$include?"](key.$type()))&&this.keys["$<<"](key),$send2(this,$find_super(this,"on_pair",$KeyDuplicatesRewriter_on_pair$3,!1,!0),"on_pair",[node],null)},$KeyDuplicatesRewriter_on_pair$3.$$arity=1),Opal.def($KeyDuplicatesRewriter_on_kwsplat$4,"$on_kwsplat",$KeyDuplicatesRewriter_on_kwsplat$4=function(node){var hash=nil,$a=[].concat(Opal.to_a(node)),hash=null==$a[0]?nil:$a[0];null==$a[1]||$a[1];return hash.$type()["$=="]("hash")&&(hash=this.$process_regular_node(hash)),node.$updated(nil,[hash])},$KeyDuplicatesRewriter_on_kwsplat$4.$$arity=1),function($UniqKeysSet_$lt$lt$6,$UniqKeysSet_initialize$5){var $UniqKeysSet_$lt$lt$6=$klass($UniqKeysSet_$lt$lt$6,null,"UniqKeysSet"),$nesting=[$UniqKeysSet_$lt$lt$6].concat($UniqKeysSet_initialize$5);return $UniqKeysSet_$lt$lt$6.$$prototype.set=nil,Opal.def($UniqKeysSet_$lt$lt$6,"$initialize",$UniqKeysSet_initialize$5=function(){return this.set=$$($nesting,"Set").$new()},$UniqKeysSet_initialize$5.$$arity=0),Opal.def($UniqKeysSet_$lt$lt$6,"$<<",$UniqKeysSet_$lt$lt$6=function(element){var $a,key=nil;return $truthy(this.set["$include?"](element))?($a=[].concat(Opal.to_a(element)),key=null==$a[0]?nil:$a[0],null==$a[1]||$a[1],key=element.$type()["$=="]("str")?key.$inspect():":"+key,$$($nesting,"Kernel").$warn("warning: key "+key+" is duplicated and overwritten")):this.set["$<<"](element)},$UniqKeysSet_$lt$lt$6.$$arity=1),nil&&"<<"}($nesting[0],$nesting)}($nesting[0],$$$($$$($$$("::","Opal"),"Rewriters"),"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/dump_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$updated"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$parent_nesting){var $DumpArgs_on_def$1,$DumpArgs_on_defs$2,$DumpArgs_on_iter$3,self=$klass($base,self,"DumpArgs");[self].concat($parent_nesting);return Opal.def(self,"$on_def",$DumpArgs_on_def$1=function(node){var args,$a=$DumpArgs_on_def$1.$$p;return $a&&($DumpArgs_on_def$1.$$p=null),node=$send2(this,$find_super(this,"on_def",$DumpArgs_on_def$1,!1,!0),"on_def",[node],null),null==($a=[].concat(Opal.to_a(node)))[0]||$a[0],args=null==$a[1]?nil:$a[1],null==$a[2]||$a[2],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))},$DumpArgs_on_def$1.$$arity=1),Opal.def(self,"$on_defs",$DumpArgs_on_defs$2=function(node){var args,$a=$DumpArgs_on_defs$2.$$p;return $a&&($DumpArgs_on_defs$2.$$p=null),node=$send2(this,$find_super(this,"on_defs",$DumpArgs_on_defs$2,!1,!0),"on_defs",[node],null),null==($a=[].concat(Opal.to_a(node)))[0]||$a[0],null==$a[1]||$a[1],args=null==$a[2]?nil:$a[2],null==$a[3]||$a[3],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))},$DumpArgs_on_defs$2.$$arity=1),Opal.def(self,"$on_iter",$DumpArgs_on_iter$3=function(node){var args,$a=$DumpArgs_on_iter$3.$$p;return $a&&($DumpArgs_on_iter$3.$$p=null),node=$send2(this,$find_super(this,"on_iter",$DumpArgs_on_iter$3,!1,!0),"on_iter",[node],null),args=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],null==$a[1]||$a[1],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))},$DumpArgs_on_iter$3.$$arity=1),nil&&"on_iter"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/mlhs_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$new","$updated","$rewritten","$initialization","$s","$prepend_to_body","$attr_reader","$split!","$+","$each","$children","$==","$type","$new_mlhs_tmp","$process","$<<","$length","$[]","$empty?"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$parent_nesting){var $MlhsArgs_on_def$1,$MlhsArgs_on_defs$2,$MlhsArgs_on_iter$3,self=$klass($base,self,"MlhsArgs"),$nesting=[self].concat($parent_nesting);return Opal.def(self,"$on_def",$MlhsArgs_on_def$1=function(node){var mid,$a=$MlhsArgs_on_def$1.$$p,self=this,args=nil,body=nil,arguments$=nil,$ret_or_1=nil;return $a&&($MlhsArgs_on_def$1.$$p=null),node=$send2(self,$find_super(self,"on_def",$MlhsArgs_on_def$1,!1,!0),"on_def",[node],null),mid=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],arguments$=$$($nesting,"Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_1=body)?$ret_or_1:self.$s("nil"),body=self.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[mid,args,body])},$MlhsArgs_on_def$1.$$arity=1),Opal.def(self,"$on_defs",$MlhsArgs_on_defs$2=function(node){var recv,mid,$a=$MlhsArgs_on_defs$2.$$p,self=this,args=nil,body=nil,arguments$=nil,$ret_or_2=nil;return $a&&($MlhsArgs_on_defs$2.$$p=null),node=$send2(self,$find_super(self,"on_defs",$MlhsArgs_on_defs$2,!1,!0),"on_defs",[node],null),recv=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],body=null==$a[3]?nil:$a[3],arguments$=$$($nesting,"Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_2=body)?$ret_or_2:self.$s("nil"),body=self.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[recv,mid,args,body])},$MlhsArgs_on_defs$2.$$arity=1),Opal.def(self,"$on_iter",$MlhsArgs_on_iter$3=function(node){var $a=$MlhsArgs_on_iter$3.$$p,self=this,args=nil,body=nil,arguments$=nil,$ret_or_3=nil;return $a&&($MlhsArgs_on_iter$3.$$p=null),node=$send2(self,$find_super(self,"on_iter",$MlhsArgs_on_iter$3,!1,!0),"on_iter",[node],null),args=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],arguments$=$$($nesting,"Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_3=body)?$ret_or_3:self.$s("nil"),body=self.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[args,body])},$MlhsArgs_on_iter$3.$$arity=1),function($base,$Arguments_split$excl$7,$Arguments_new_mlhs_tmp$6){var $nesting=[$Arguments_split$excl$7=$klass($base,$Arguments_split$excl$7,"Arguments")].concat($Arguments_new_mlhs_tmp$6);$Arguments_split$excl$7.$$prototype.counter=$Arguments_split$excl$7.$$prototype.args=$Arguments_split$excl$7.$$prototype.initialization=nil,$Arguments_split$excl$7.$attr_reader("rewritten","initialization"),Opal.def($Arguments_split$excl$7,"$initialize",$Arguments_new_mlhs_tmp$6=function(args){return this.args=args,this.rewritten=[],this.initialization=[],this.rewriter=$$($nesting,"MlhsRewriter").$new(),this["$split!"]()},$Arguments_new_mlhs_tmp$6.$$arity=1),Opal.def($Arguments_split$excl$7,"$reset_tmp_counter!",$Arguments_new_mlhs_tmp$6=function(){return this.counter=0},$Arguments_new_mlhs_tmp$6.$$arity=0),Opal.def($Arguments_split$excl$7,"$new_mlhs_tmp",$Arguments_new_mlhs_tmp$6=function(){var lhs,self=this,rhs=nil;return self.counter=$truthy(rhs=self.counter)?rhs:0,self.counter=(lhs=self.counter,rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),"$mlhs_tmp"+self.counter},$Arguments_new_mlhs_tmp$6.$$arity=0),Opal.def($Arguments_split$excl$7,"$split!",$Arguments_split$excl$7=function(){var $$8;return $send(this.args.$children(),"each",[],(($$8=function(arg){var var_name,rhs,mlhs,self=null==$$8.$$s?this:$$8.$$s;return null==self.rewriter&&(self.rewriter=nil),null==self.initialization&&(self.initialization=nil),null==self.rewritten&&(self.rewritten=nil),null==arg&&(arg=nil),arg.$type()["$=="]("mlhs")?(var_name=self.$new_mlhs_tmp(),rhs=self.$s("lvar",var_name),mlhs=self.rewriter.$process(arg),self.initialization["$<<"](self.$s("masgn",mlhs,rhs)),self.rewritten["$<<"](self.$s("arg",var_name).$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:var_name})})))):self.rewritten["$<<"](arg)}).$$s=this,$$8.$$arity=1,$$8)),this.initialization.$length()["$=="](1)?this.initialization=this.initialization["$[]"](0):$truthy(this.initialization["$empty?"]())?this.initialization=nil:this.initialization=$send(this,"s",["begin"].concat(Opal.to_a(this.initialization)))},$Arguments_split$excl$7.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$MlhsRewriter_on_restarg$10,$MlhsRewriter_on_arg$9){$MlhsRewriter_on_restarg$10=$klass($base,$MlhsRewriter_on_restarg$10,"MlhsRewriter"),[$MlhsRewriter_on_restarg$10].concat($MlhsRewriter_on_arg$9);return Opal.def($MlhsRewriter_on_restarg$10,"$on_arg",$MlhsRewriter_on_arg$9=function(node){return node.$updated("lvasgn")},$MlhsRewriter_on_arg$9.$$arity=1),Opal.def($MlhsRewriter_on_restarg$10,"$on_restarg",$MlhsRewriter_on_restarg$10=function(node){var name=node.$children()["$[]"](0);return $truthy(name)?this.$s("splat",node.$updated("lvasgn")):this.$s("splat")},$MlhsRewriter_on_restarg$10.$$arity=1),nil&&"on_restarg"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/arguments"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$attr_reader","$each","$type","$===","$<<","$any?","$raise","$!","$nil?","$has_any_kwargs?","$can_inline_kwargs?","$empty?"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($Arguments_can_inline_kwargs$ques$5,$Arguments_has_any_kwargs$ques$4){$Arguments_can_inline_kwargs$ques$5=$klass($Arguments_can_inline_kwargs$ques$5,null,"Arguments"),[$Arguments_can_inline_kwargs$ques$5].concat($Arguments_has_any_kwargs$ques$4);return $Arguments_can_inline_kwargs$ques$5.$$prototype.restarg=$Arguments_can_inline_kwargs$ques$5.$$prototype.postargs=$Arguments_can_inline_kwargs$ques$5.$$prototype.kwargs=$Arguments_can_inline_kwargs$ques$5.$$prototype.kwoptargs=$Arguments_can_inline_kwargs$ques$5.$$prototype.kwrestarg=$Arguments_can_inline_kwargs$ques$5.$$prototype.optargs=nil,$Arguments_can_inline_kwargs$ques$5.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),Opal.def($Arguments_can_inline_kwargs$ques$5,"$initialize",$Arguments_has_any_kwargs$ques$4=function(args){var $$2;return this.args=[],this.optargs=[],this.restarg=nil,this.postargs=[],this.kwargs=[],this.kwoptargs=[],this.kwrestarg=nil,this.kwnilarg=!1,this.shadowargs=[],this.blockarg=nil,$send(args,"each",[],(($$2=function(arg){var self=null==$$2.$$s?this:$$2.$$s,$case=nil,$ret_or_1=nil;return null==self.restarg&&(self.restarg=nil),null==self.optargs&&(self.optargs=nil),null==self.postargs&&(self.postargs=nil),null==self.args&&(self.args=nil),null==self.kwargs&&(self.kwargs=nil),null==self.kwoptargs&&(self.kwoptargs=nil),null==self.shadowargs&&(self.shadowargs=nil),null==arg&&(arg=nil),$case=arg.$type(),"arg"["$==="]($case)||"mlhs"["$==="]($case)?($truthy($truthy($ret_or_1=self.restarg)?$ret_or_1:self.optargs["$any?"]())?self.postargs:self.args)["$<<"](arg):"optarg"["$==="]($case)?self.optargs["$<<"](arg):"restarg"["$==="]($case)?self.restarg=arg:"kwarg"["$==="]($case)?self.kwargs["$<<"](arg):"kwoptarg"["$==="]($case)?self.kwoptargs["$<<"](arg):"kwnilarg"["$==="]($case)?self.kwnilarg=!0:"kwrestarg"["$==="]($case)?self.kwrestarg=arg:"shadowarg"["$==="]($case)?self.shadowargs["$<<"](arg):"blockarg"["$==="]($case)?self.blockarg=arg:self.$raise("Unsupported arg type "+arg.$type())}).$$s=this,$$2.$$arity=1,$$2))},$Arguments_has_any_kwargs$ques$4.$$arity=1),Opal.def($Arguments_can_inline_kwargs$ques$5,"$has_post_args?",$Arguments_has_any_kwargs$ques$4=function(){var $ret_or_2,$ret_or_4,self=this,$ret_or_3=nil;return $truthy($ret_or_2=$truthy($ret_or_3=self.restarg["$nil?"]()["$!"]())?$ret_or_3:self.postargs["$any?"]())?$ret_or_2:$truthy($ret_or_4=self["$has_any_kwargs?"]())?self["$can_inline_kwargs?"]()["$!"]():$ret_or_4},$Arguments_has_any_kwargs$ques$4.$$arity=0),Opal.def($Arguments_can_inline_kwargs$ques$5,"$has_any_kwargs?",$Arguments_has_any_kwargs$ques$4=function(){var $ret_or_5,self=this,$ret_or_6=nil;return $truthy($ret_or_5=$truthy($ret_or_6=self.kwargs["$any?"]())?$ret_or_6:self.kwoptargs["$any?"]())?$ret_or_5:self.kwrestarg["$nil?"]()["$!"]()},$Arguments_has_any_kwargs$ques$4.$$arity=0),Opal.def($Arguments_can_inline_kwargs$ques$5,"$can_inline_kwargs?",$Arguments_can_inline_kwargs$ques$5=function(){var $ret_or_7,self=this,$ret_or_8=nil;return $truthy($ret_or_7=$truthy($ret_or_8=self.optargs["$empty?"]())?self.restarg["$nil?"]():$ret_or_8)?self.postargs["$empty?"]():$ret_or_7},$Arguments_can_inline_kwargs$ques$5.$$arity=0),nil&&"can_inline_kwargs?"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/inline_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$require","$s","$new","$updated","$inline","$prepend_to_body","$initialization","$attr_reader","$freeze","$children","$each","$send","$any?","$blockarg","$<<","$shadowargs","$args","$==","$[]","$has_post_args?","$length","$has_any_kwargs?","$can_inline_kwargs?","$kwargs","$kwoptargs","$kwrestarg","$postargs","$optargs","$args_to_keep","$restarg"]),self.$require("opal/rewriters/base"),self.$require("opal/rewriters/arguments"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$parent_nesting){var $InlineArgs_on_def$1,$InlineArgs_on_defs$2,$InlineArgs_on_iter$3,self=$klass($base,self,"InlineArgs"),$nesting=[self].concat($parent_nesting);return Opal.def(self,"$on_def",$InlineArgs_on_def$1=function(node){var mid,inline_args,$a=$InlineArgs_on_def$1.$$p,self=this,args=nil,body=nil,$ret_or_1=nil,initializer=nil;return $a&&($InlineArgs_on_def$1.$$p=null),node=$send2(self,$find_super(self,"on_def",$InlineArgs_on_def$1,!1,!0),"on_def",[node],null),mid=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],body=$truthy($ret_or_1=body)?$ret_or_1:self.$s("nil"),initializer=$$($nesting,"Initializer").$new(args,$hash2(["type"],{type:"def"})),inline_args=args.$updated(nil,initializer.$inline()),body=self.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[mid,inline_args,body])},$InlineArgs_on_def$1.$$arity=1),Opal.def(self,"$on_defs",$InlineArgs_on_defs$2=function(node){var recv,mid,inline_args,$a=$InlineArgs_on_defs$2.$$p,self=this,args=nil,body=nil,$ret_or_2=nil,initializer=nil;return $a&&($InlineArgs_on_defs$2.$$p=null),node=$send2(self,$find_super(self,"on_defs",$InlineArgs_on_defs$2,!1,!0),"on_defs",[node],null),recv=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],body=null==$a[3]?nil:$a[3],body=$truthy($ret_or_2=body)?$ret_or_2:self.$s("nil"),initializer=$$($nesting,"Initializer").$new(args,$hash2(["type"],{type:"defs"})),inline_args=args.$updated(nil,initializer.$inline()),body=self.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[recv,mid,inline_args,body])},$InlineArgs_on_defs$2.$$arity=1),Opal.def(self,"$on_iter",$InlineArgs_on_iter$3=function(node){var inline_args,$a=$InlineArgs_on_iter$3.$$p,self=this,args=nil,body=nil,$ret_or_3=nil,initializer=nil;return $a&&($InlineArgs_on_iter$3.$$p=null),node=$send2(self,$find_super(self,"on_iter",$InlineArgs_on_iter$3,!1,!0),"on_iter",[node],null),args=null==($a=[].concat(Opal.to_a(node)))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],body=$truthy($ret_or_3=body)?$ret_or_3:self.$s("nil"),initializer=$$($nesting,"Initializer").$new(args,$hash2(["type"],{type:"iter"})),inline_args=args.$updated(nil,initializer.$inline()),body=self.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[inline_args,body])},$InlineArgs_on_iter$3.$$arity=1),function($base,$Initializer_args_to_keep$23,$Initializer_extract_restarg$22){var $Initializer_args_to_keep$23=$klass($base,$Initializer_args_to_keep$23,"Initializer"),$nesting=[$Initializer_args_to_keep$23].concat($Initializer_extract_restarg$22);return $Initializer_args_to_keep$23.$$prototype.initialization=$Initializer_args_to_keep$23.$$prototype.args=$Initializer_args_to_keep$23.$$prototype.inline=nil,$Initializer_args_to_keep$23.$attr_reader("inline","initialization"),Opal.const_set($nesting[0],"STEPS",["extract_blockarg","initialize_shadowargs","extract_args","prepare_post_args","prepare_kwargs","extract_optargs","extract_restarg","extract_post_args","extract_kwargs","extract_kwoptargs","extract_kwrestarg"].$freeze()),Opal.def($Initializer_args_to_keep$23,"$initialize",$Initializer_extract_restarg$22=function(args,type){var $$5;if(null==type)type=$hash2([],{});else if(!type.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call(type.$$smap,"type"))throw Opal.ArgumentError.$new("missing keyword: type");return type=type.$$smap.type,this.args=$$($nesting,"Arguments").$new(args.$children()),this.inline=[],this.initialization=[],this.type=type,this.underscore_found=!1,$send($$($nesting,"STEPS"),"each",[],(($$5=function(step){var self=null==$$5.$$s?this:$$5.$$s;return null==step&&(step=nil),self.$send(step)}).$$s=this,$$5.$$arity=1,$$5)),$truthy(this.initialization["$any?"]())?this.initialization=$send(this,"s",["begin"].concat(Opal.to_a(this.initialization))):this.initialization=nil},$Initializer_extract_restarg$22.$$arity=2),Opal.def($Initializer_args_to_keep$23,"$extract_blockarg",$Initializer_extract_restarg$22=function(){var arg=nil;return $truthy(arg=this.args.$blockarg())?this.initialization["$<<"](arg.$updated("extract_blockarg")):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$initialize_shadowargs",$Initializer_extract_restarg$22=function(){var $$8;return $send(this.args.$shadowargs(),"each",[],(($$8=function(arg){var self=null==$$8.$$s?this:$$8.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("initialize_shadowarg"))}).$$s=this,$$8.$$arity=1,$$8))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_args",$Initializer_extract_restarg$22=function(){var $$10;return $send(this.args.$args(),"each",[],(($$10=function(arg){var self=null==$$10.$$s?this:$$10.$$s;return null==self.type&&(self.type=nil),null==self.initialization&&(self.initialization=nil),null==self.underscore_found&&(self.underscore_found=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),self.type["$=="]("iter")&&(self.initialization["$<<"](arg.$updated("initialize_iter_arg")),arg.$children()["$[]"](0)["$=="]("_")&&($truthy(self.underscore_found)&&(arg=self.$s("fake_arg")),self.underscore_found=!0)),self.inline["$<<"](arg)}).$$s=this,$$10.$$arity=1,$$10))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$prepare_post_args",$Initializer_extract_restarg$22=function(){return $truthy(this.args["$has_post_args?"]())?this.initialization["$<<"](this.$s("prepare_post_args",this.args.$args().$length())):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$prepare_kwargs",$Initializer_extract_restarg$22=function(){return $truthy(this.args["$has_any_kwargs?"]())?($truthy(this.args["$can_inline_kwargs?"]())?this.inline["$<<"](this.$s("arg","$kwargs")):(this.initialization["$<<"](this.$s("extract_kwargs")),this.inline["$<<"](this.$s("fake_arg"))),this.initialization["$<<"](this.$s("ensure_kwargs_are_kwargs"))):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_kwargs",$Initializer_extract_restarg$22=function(){var $$14;return $send(this.args.$kwargs(),"each",[],(($$14=function(arg){var self=null==$$14.$$s?this:$$14.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_kwarg"))}).$$s=this,$$14.$$arity=1,$$14))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_kwoptargs",$Initializer_extract_restarg$22=function(){var $$16;return $send(this.args.$kwoptargs(),"each",[],(($$16=function(arg){var self=null==$$16.$$s?this:$$16.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_kwoptarg"))}).$$s=this,$$16.$$arity=1,$$16))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_kwrestarg",$Initializer_extract_restarg$22=function(){var arg=nil;return $truthy(arg=this.args.$kwrestarg())?this.initialization["$<<"](arg.$updated("extract_kwrestarg")):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_post_args",$Initializer_extract_restarg$22=function(){var $$19;return $send(this.args.$postargs(),"each",[],(($$19=function(arg){var self=null==$$19.$$s?this:$$19.$$s;return null==self.initialization&&(self.initialization=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_post_arg")),self.inline["$<<"](self.$s("fake_arg"))}).$$s=this,$$19.$$arity=1,$$19))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_optargs",$Initializer_extract_restarg$22=function(){var $$21,has_post_args=this.args["$has_post_args?"]();return $send(this.args.$optargs(),"each",[],(($$21=function(arg){var $a,arg_name,default_value,self=null==$$21.$$s?this:$$21.$$s;return null==self.initialization&&(self.initialization=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),$truthy(has_post_args)?(arg_name=null==($a=[].concat(Opal.to_a(arg)))[0]?nil:$a[0],default_value=null==$a[1]?nil:$a[1],self.initialization["$<<"](arg.$updated("extract_post_optarg",[arg_name,default_value,self.$args_to_keep()])),self.inline["$<<"](self.$s("fake_arg"))):(self.inline["$<<"](arg.$updated("arg")),self.initialization["$<<"](arg.$updated("extract_optarg")))}).$$s=this,$$21.$$arity=1,$$21))},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$extract_restarg",$Initializer_extract_restarg$22=function(){var arg_name,arg=nil;return $truthy(arg=this.args.$restarg())?(arg_name=arg.$children()["$[]"](0),this.initialization["$<<"](arg.$updated("extract_restarg",[arg_name,this.$args_to_keep()])),this.inline["$<<"](this.$s("fake_arg"))):nil},$Initializer_extract_restarg$22.$$arity=0),Opal.def($Initializer_args_to_keep$23,"$args_to_keep",$Initializer_args_to_keep$23=function(){return this.args.$postargs().$length()},$Initializer_args_to_keep$23.$$arity=0),nil&&"args_to_keep"}($nesting[0],$$$($$$($$$("::","Opal"),"Rewriters"),"Base"),$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/numblocks"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$children","$s","$gen_args","$map"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$Numblocks_gen_args$2,$Numblocks_on_numblock$1){$Numblocks_gen_args$2=$klass($base,$Numblocks_gen_args$2,"Numblocks"),[$Numblocks_gen_args$2].concat($Numblocks_on_numblock$1);return Opal.def($Numblocks_gen_args$2,"$on_numblock",$Numblocks_on_numblock$1=function($a){var $a=$a.$children(),$a=Opal.to_ary($a),left=null==$a[0]?nil:$a[0],arg_count=null==$a[1]?nil:$a[1],right=null==$a[2]?nil:$a[2];return this.$s("block",left,$send(this,"s",["args"].concat(Opal.to_a(this.$gen_args(arg_count)))),right)},$Numblocks_on_numblock$1.$$arity=1),Opal.def($Numblocks_gen_args$2,"$gen_args",$Numblocks_gen_args$2=function(arg_count){var $$3;return $send(Opal.Range.$new(1,arg_count,!1),"map",[],(($$3=function(i){var self=null==$$3.$$s?this:$$3.$$s;return null==i&&(i=nil),self.$s("arg","_"+i)}).$$s=this,$$3.$$arity=1,$$3))},$Numblocks_gen_args$2.$$arity=1),nil&&"gen_args"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/returnable_logic"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$+","$children","$next_tmp","$updated","$s","$process"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,$ReturnableLogic_on_and$4,$ReturnableLogic_on_or$3){$ReturnableLogic_on_and$4=$klass($base,$ReturnableLogic_on_and$4,"ReturnableLogic"),[$ReturnableLogic_on_and$4].concat($ReturnableLogic_on_or$3);return $ReturnableLogic_on_and$4.$$prototype.counter=nil,Opal.def($ReturnableLogic_on_and$4,"$next_tmp",$ReturnableLogic_on_or$3=function(){var lhs,self=this,rhs=nil;return self.counter=$truthy(rhs=self.counter)?rhs:0,self.counter=(lhs=self.counter,rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),"$ret_or_"+self.counter},$ReturnableLogic_on_or$3.$$arity=0),Opal.def($ReturnableLogic_on_and$4,"$reset_tmp_counter!",$ReturnableLogic_on_or$3=function(){return this.counter=nil},$ReturnableLogic_on_or$3.$$arity=0),Opal.def($ReturnableLogic_on_and$4,"$on_or",$ReturnableLogic_on_or$3=function(node){var $a=[].concat(Opal.to_a(node.$children())),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],lhs_tmp=this.$next_tmp();return node.$updated("if",[this.$s("lvasgn",lhs_tmp,this.$process(lhs)),this.$s("js_tmp",lhs_tmp),this.$process(rhs)])},$ReturnableLogic_on_or$3.$$arity=1),Opal.def($ReturnableLogic_on_and$4,"$on_and",$ReturnableLogic_on_and$4=function(node){var $a=[].concat(Opal.to_a(node.$children())),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],lhs_tmp=this.$next_tmp();return node.$updated("if",[this.$s("lvasgn",lhs_tmp,this.$process(lhs)),this.$process(rhs),this.$s("js_tmp",lhs_tmp)])},$ReturnableLogic_on_and$4.$$arity=1),nil&&"on_and"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/forward_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$process","$s","$last","$children","$==","$type","$[]","$updated","$!=","$class"]),self.$require("opal/rewriters/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$ForwardArgs_on_forward_args$1){var $ForwardArgs_on_args$2,$ForwardArgs_on_send$3,self=$klass($base,self,"ForwardArgs"),$nesting=[self].concat($ForwardArgs_on_forward_args$1);return Opal.def(self,"$on_forward_args",$ForwardArgs_on_forward_args$1=function(){return this.$process(this.$s("args",this.$s("forward_arg","$")))},$ForwardArgs_on_forward_args$1.$$arity=1),Opal.def(self,"$on_args",$ForwardArgs_on_args$2=function(node){var prev_children,$zuper_ii,$iter=$ForwardArgs_on_args$2.$$p,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ForwardArgs_on_args$2.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy($truthy($ret_or_1=node.$children().$last())?node.$children().$last().$type()["$=="]("forward_arg"):$ret_or_1)?(prev_children=node.$children()["$[]"]($range(0,-2,!1)),node.$updated(nil,[].concat(Opal.to_a(prev_children)).concat([this.$s("restarg","$fwd_rest"),this.$s("blockarg","$fwd_block")]))):$send2(this,$find_super(this,"on_args",$ForwardArgs_on_args$2,!1,!0),"on_args",$zuper,$iter)},$ForwardArgs_on_args$2.$$arity=1),Opal.def(self,"$on_send",$ForwardArgs_on_send$3=function(node){var prev_children,$zuper_ii,$iter=$ForwardArgs_on_send$3.$$p,$ret_or_2=nil,$ret_or_3=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ForwardArgs_on_send$3.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy($truthy($ret_or_2=$truthy($ret_or_3=node.$children().$last())?node.$children().$last().$class()["$!="]($$($nesting,"Symbol")):$ret_or_3)?node.$children().$last().$type()["$=="]("forwarded_args"):$ret_or_2)?(prev_children=node.$children()["$[]"]($range(0,-2,!1)),node.$updated(nil,[].concat(Opal.to_a(prev_children)).concat([this.$s("splat",this.$s("lvar","$fwd_rest")),this.$s("block_pass",this.$s("lvar","$fwd_block"))]))):$send2(this,$find_super(this,"on_send",$ForwardArgs_on_send$3,!1,!0),"on_send",$zuper,$iter)},$ForwardArgs_on_send$3.$$arity=1),nil&&"on_send"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriter"]=function(Opal){var $Rewriter_process$7,$disable$4,$delete$3=Opal.top,$disabled$ques$5=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$Rewriter_initialize$6=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$<<","$list","$delete","$use","$disabled?","$class","$each","$new","$process"]),$delete$3.$require("opal/rewriters/opal_engine_check"),$delete$3.$require("opal/rewriters/for_rewriter"),$delete$3.$require("opal/rewriters/explicit_writer_return"),$delete$3.$require("opal/rewriters/js_reserved_words"),$delete$3.$require("opal/rewriters/block_to_iter"),$delete$3.$require("opal/rewriters/dot_js_syntax"),$delete$3.$require("opal/rewriters/pattern_matching"),$delete$3.$require("opal/rewriters/logical_operator_assignment"),$delete$3.$require("opal/rewriters/binary_operator_assignment"),$delete$3.$require("opal/rewriters/hashes/key_duplicates_rewriter"),$delete$3.$require("opal/rewriters/dump_args"),$delete$3.$require("opal/rewriters/mlhs_args"),$delete$3.$require("opal/rewriters/inline_args"),$delete$3.$require("opal/rewriters/numblocks"),$delete$3.$require("opal/rewriters/returnable_logic"),$delete$3.$require("opal/rewriters/forward_args"),$Rewriter_initialize$6=[$Rewriter_initialize$6($delete$3=($Rewriter_process$7=$disabled$ques$5)[0],"Opal")].concat($Rewriter_process$7),$disabled$ques$5=$Rewriter_initialize$6[0],$delete$3=$Rewriter_initialize$6,$Rewriter_process$7=$klass($disabled$ques$5,null,"Rewriter"),$Rewriter_initialize$6=[$Rewriter_process$7].concat($delete$3),$Rewriter_process$7.$$prototype.sexp=nil,[$disabled$ques$5=Opal.get_singleton_class($Rewriter_process$7)].concat($delete$3=$Rewriter_initialize$6),Opal.def($disabled$ques$5,"$list",$delete$3=function(){var self=this,$ret_or_1=nil;return null==self.list&&(self.list=nil),self.list=$truthy($ret_or_1=self.list)?$ret_or_1:[]},$delete$3.$$arity=0),Opal.def($disabled$ques$5,"$use",$delete$3=function(rewriter){return this.$list()["$<<"](rewriter)},$delete$3.$$arity=1),Opal.def($disabled$ques$5,"$delete",$delete$3=function(rewriter){return this.$list().$delete(rewriter)},$delete$3.$$arity=1),Opal.def($disabled$ques$5,"$disable",$disable$4=function(){var $iter=$disable$4.$$p,$yield=$iter||nil,self=this;return $iter&&($disable$4.$$p=null),function(){try{return self.disabled=!0,Opal.yieldX($yield,[])}finally{self.disabled=!1}}()},$disable$4.$$arity=0),Opal.def($disabled$ques$5,"$disabled?",$disabled$ques$5=function(){var $a;return null==this.disabled&&(this.disabled=nil),$truthy(null!=($a=this.disabled)&&$a!==nil?"instance-variable":nil)?this.disabled:nil},$disabled$ques$5.$$arity=0),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"OpalEngineCheck")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"ForRewriter")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"Numblocks")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"ForwardArgs")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"BlockToIter")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"DotJsSyntax")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"PatternMatching")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"JsReservedWords")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"LogicalOperatorAssignment")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"BinaryOperatorAssignment")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"ExplicitWriterReturn")),$Rewriter_process$7.$use($$$($$$($$($Rewriter_initialize$6,"Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"ReturnableLogic")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"DumpArgs")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"MlhsArgs")),$Rewriter_process$7.$use($$$($$($Rewriter_initialize$6,"Rewriters"),"InlineArgs")),Opal.def($Rewriter_process$7,"$initialize",$Rewriter_initialize$6=function(sexp){return this.sexp=sexp},$Rewriter_initialize$6.$$arity=1),Opal.def($Rewriter_process$7,"$process",$Rewriter_process$7=function(){var $$8;return $truthy(this.$class()["$disabled?"]())||$send(this.$class().$list(),"each",[],(($$8=function(rewriter_class){var self=null==$$8.$$s?this:$$8.$$s,rewriter=nil;return null==self.sexp&&(self.sexp=nil),null==rewriter_class&&(rewriter_class=nil),rewriter=rewriter_class.$new(),self.sexp=rewriter.$process(self.sexp)}).$$s=this,$$8.$$arity=1,$$8)),this.sexp},$Rewriter_process$7.$$arity=0),nil&&"process"},Opal.modules["opal/parser/source_buffer"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super;return function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Parser")].concat($nesting);return function($base,self,$parent_nesting){var $SourceBuffer_recognize_encoding$1,self=$klass($base,self,"SourceBuffer"),$nesting=[self].concat($parent_nesting);return Opal.defs(self,"$recognize_encoding",$SourceBuffer_recognize_encoding$1=function(string){var $ret_or_1,$zuper_ii,$iter=$SourceBuffer_recognize_encoding$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($SourceBuffer_recognize_encoding$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy($ret_or_1=$send2(this,$find_super(this,"recognize_encoding",$SourceBuffer_recognize_encoding$1,!1,!0),"recognize_encoding",$zuper,$iter))?$ret_or_1:$$$($$($nesting,"Encoding"),"UTF_8")},$SourceBuffer_recognize_encoding$1.$$arity=1),nil&&"recognize_encoding"}($nesting[0],$$$($$$($$$("::","Parser"),"Source"),"Buffer"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/default_config"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$lambda=Opal.lambda;return Opal.add_stubs(["$attr_accessor","$all_errors_are_fatal=","$diagnostics","$-","$ignore_warnings=","$diagnostics_consumer","$consumer=","$extend","$diagnostics_consumer=","$new","$rewrite","$process","$default_parser","$default_parser_class"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function(self,$nesting){self=$module(self,"Parser"),$nesting=[self].concat($nesting);return function($DefaultConfig_rewrite$6,$DefaultConfig_included$2){var $DefaultConfig_initialize$4,$DefaultConfig_parse$5,$nesting=[$DefaultConfig_rewrite$6=$module($DefaultConfig_rewrite$6,"DefaultConfig")].concat($DefaultConfig_included$2);(function(self,$parent_nesting){var $ClassMethods_default_parser$1;[self=$module(self,"ClassMethods")].concat($parent_nesting),self.$attr_accessor("diagnostics_consumer"),Opal.def(self,"$default_parser",$ClassMethods_default_parser$1=function(){var $writer,$zuper_ii,$iter=$ClassMethods_default_parser$1.$$p,parser=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ClassMethods_default_parser$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return parser=$send2(this,$find_super(this,"default_parser",$ClassMethods_default_parser$1,!1,!0),"default_parser",$zuper,$iter),$writer=[!0],$send(parser.$diagnostics(),"all_errors_are_fatal=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[!1],$send(parser.$diagnostics(),"ignore_warnings=",Opal.to_a($writer)),$rb_minus($writer.length,1),$writer=[this.$diagnostics_consumer()],$send(parser.$diagnostics(),"consumer=",Opal.to_a($writer)),$rb_minus($writer.length,1),parser},$ClassMethods_default_parser$1.$$arity=0)})($nesting[0],$nesting),Opal.defs($DefaultConfig_rewrite$6,"$included",$DefaultConfig_included$2=function(klass){var $$3,$writer;return klass.$extend($$($nesting,"ClassMethods")),$writer=[$lambda((($$3=function(diagnostic){null==$$3.$$s||$$3.$$s;return null==diagnostic&&(diagnostic=nil),nil}).$$s=this,$$3.$$arity=1,$$3))],$send(klass,"diagnostics_consumer=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$DefaultConfig_included$2.$$arity=1),Opal.def($DefaultConfig_rewrite$6,"$initialize",$DefaultConfig_initialize$4=function($a){var $iter=$DefaultConfig_initialize$4.$$p;return $iter&&($DefaultConfig_initialize$4.$$p=null),Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$DefaultConfig_initialize$4,!1,!0),"initialize",[$$$($$$($$($nesting,"Opal"),"AST"),"Builder").$new()],null)},$DefaultConfig_initialize$4.$$arity=-1),Opal.def($DefaultConfig_rewrite$6,"$parse",$DefaultConfig_parse$5=function(source_buffer){var parsed,$zuper_ii,$iter=$DefaultConfig_parse$5.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($DefaultConfig_parse$5.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return parsed=$send2(this,$find_super(this,"parse",$DefaultConfig_parse$5,!1,!0),"parse",$zuper,$iter),this.$rewrite(parsed)},$DefaultConfig_parse$5.$$arity=1),Opal.def($DefaultConfig_rewrite$6,"$rewrite",$DefaultConfig_rewrite$6=function(node){return $$$($$($nesting,"Opal"),"Rewriter").$new(node).$process()},$DefaultConfig_rewrite$6.$$arity=1)}($nesting[0],$nesting),function($default_parser$7,$parent_nesting){[$default_parser$7].concat($parent_nesting);return $default_parser$7.$attr_accessor("default_parser_class"),Opal.def($default_parser$7,"$default_parser",$default_parser$7=function(){return this.$default_parser_class().$default_parser()},$default_parser$7.$$arity=0),nil&&"default_parser"}(Opal.get_singleton_class(self),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/with_ruby_lexer"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$include","$default_parser_class=","$-"]),function(self,rhs,lhs){self=$klass(self,rhs,"WithRubyLexer"),rhs=[self].concat(lhs),lhs=nil;return self.$include($$$($$$($$(rhs,"Opal"),"Parser"),"DefaultConfig")),lhs=[self],$send($$$($$(rhs,"Opal"),"Parser"),"default_parser_class=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}($$$($$($nesting,"Opal"),"Parser"),$$$($$($nesting,"Parser"),"Ruby30"),$nesting)},Opal.modules["opal/parser/patch"]=function(Opal){Opal.top;var $Lexer_source_buffer$eq$1,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2,$module=Opal.module;return Opal.add_stubs(["$source","$unpack","$+","$to_a","$lines","$end_with?","$<<","$map","$chomp","$=~","$diagnostic","$nil?","$type","$[]","$respond_to?","$[]=","$-","$send","$value"]),$Lexer_source_buffer$eq$1=$$($nesting,"Parser"),$parent_nesting=$nesting,[$Lexer_source_buffer$eq$1=$klass($Lexer_source_buffer$eq$1,null,"Lexer")].concat($parent_nesting),$Lexer_source_buffer$eq$1.$$prototype.source_buffer=nil,Opal.def($Lexer_source_buffer$eq$1,"$source_buffer=",$Lexer_source_buffer$eq$1=function(source_buffer){var source=nil;return this.source_buffer=source_buffer,$truthy(this.source_buffer)?(source=this.source_buffer.$source(),this.source_pts=source.$unpack("U*")):this.source_pts=nil},$Lexer_source_buffer$eq$1.$$arity=1),function($Literal_extend_string$2,$parent_nesting){[$Literal_extend_string$2=$klass($Literal_extend_string$2,null,"Literal")].concat($parent_nesting),$Literal_extend_string$2.$$prototype.buffer_s=$Literal_extend_string$2.$$prototype.buffer=nil,Opal.udef($Literal_extend_string$2,"$extend_string"),Opal.def($Literal_extend_string$2,"$extend_string",$Literal_extend_string$2=function(rhs,ts,te){var lhs=this,$ret_or_1=nil;return lhs.buffer_s=$truthy($ret_or_1=lhs.buffer_s)?$ret_or_1:ts,lhs.buffer_e=te,lhs.buffer=(lhs=lhs.buffer,rhs=rhs,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))},$Literal_extend_string$2.$$arity=3)}($$$($$($nesting,"Parser"),"Lexer"),$nesting),function($Buffer_source_lines$3,$parent_nesting){[$Buffer_source_lines$3=$klass($Buffer_source_lines$3,null,"Buffer")].concat($parent_nesting),$Buffer_source_lines$3.$$prototype.lines=$Buffer_source_lines$3.$$prototype.source=nil,Opal.def($Buffer_source_lines$3,"$source_lines",$Buffer_source_lines$3=function(){var $$4,$ret_or_2,self=this,lines=nil;return self.lines=$truthy($ret_or_2=self.lines)?$ret_or_2:(lines=self.source.$lines().$to_a(),$truthy(self.source["$end_with?"]("\n"))&&lines["$<<"](""),$send(lines,"map",[],(($$4=function(line){null==$$4.$$s||$$4.$$s;return null==line&&(line=nil),line.$chomp("\n")}).$$s=self,$$4.$$arity=1,$$4)))},$Buffer_source_lines$3.$$arity=0)}($$$($$($nesting,"Parser"),"Source"),$nesting),function($Default_check_lvar_name$5,$parent_nesting){[$Default_check_lvar_name$5=$klass($Default_check_lvar_name$5,null,"Default")].concat($parent_nesting),Opal.def($Default_check_lvar_name$5,"$check_lvar_name",$Default_check_lvar_name$5=function(name,loc){return $truthy(name["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?nil:this.$diagnostic("error","lvar_name",$hash2(["name"],{name:name}),loc)},$Default_check_lvar_name$5.$$arity=2)}($$$($$($nesting,"Parser"),"Builders"),$nesting),function($Mixin_process$6,$parent_nesting){[$Mixin_process$6=$module($Mixin_process$6,"Mixin")].concat($parent_nesting),Opal.udef($Mixin_process$6,"$process"),Opal.def($Mixin_process$6,"$process",$Mixin_process$6=function(node){var type,on_handler,$ret_or_4,$ret_or_5,self=this,$ret_or_3=nil,lhs=nil,rhs=nil;return null==self._on_handler_cache&&(self._on_handler_cache=nil),$truthy(node["$nil?"]())?nil:(self._on_handler_cache=$truthy($ret_or_3=self._on_handler_cache)?$ret_or_3:$hash2([],{}),type=node.$type(),on_handler=$truthy($ret_or_4=self._on_handler_cache["$[]"](type))?$ret_or_4:(lhs=[type,(rhs="on_"+type,$truthy(self["$respond_to?"](rhs))||(rhs="handler_missing"),rhs)],$send(self._on_handler_cache,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]),$truthy($ret_or_5=self.$send(on_handler,node))?$ret_or_5:node)},$Mixin_process$6.$$arity=1)}($$$($$($nesting,"AST"),"Processor"),$nesting),function($Default_string_value$7,$parent_nesting){$Default_string_value$7=$klass($Default_string_value$7,null,"Default"),[$Default_string_value$7].concat($parent_nesting);return Opal.udef($Default_string_value$7,"$string_value"),Opal.def($Default_string_value$7,"$string_value",$Default_string_value$7=function(token){return this.$value(token)},$Default_string_value$7.$$arity=1),nil&&"string_value"}($$$($$($nesting,"Parser"),"Builders"),$nesting)},Opal.modules["opal/parser"]=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$require"]),self.$require("opal/ast/builder"),self.$require("opal/rewriter"),self.$require("opal/parser/source_buffer"),self.$require("opal/parser/default_config"),self.$require("opal/parser/with_ruby_lexer"),self.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$attr_reader","$to_s","$inspect","$type","$===","$first","$children","$[]","$line","$column"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($Fragment_column$5,$Fragment_line$4){$Fragment_column$5=$klass($Fragment_column$5,null,"Fragment"),[$Fragment_column$5].concat($Fragment_line$4);return $Fragment_column$5.$$prototype.code=$Fragment_column$5.$$prototype.sexp=nil,$Fragment_column$5.$attr_reader("code"),Opal.def($Fragment_column$5,"$initialize",$Fragment_line$4=function(code,scope,sexp){return null==sexp&&(sexp=nil),this.code=code.$to_s(),this.sexp=sexp,this.scope=scope},$Fragment_line$4.$$arity=-3),Opal.def($Fragment_column$5,"$inspect",$Fragment_line$4=function(){return"f("+this.code.$inspect()+")"},$Fragment_line$4.$$arity=0),Opal.def($Fragment_column$5,"$source_map_name",$Fragment_line$4=function(){var self=this,$case=nil;return $case=self.sexp.$type(),"top"["$==="]($case)||"begin"["$==="]($case)||"newline"["$==="]($case)||"js_return"["$==="]($case)?nil:"self"["$==="]($case)?"self":"module"["$==="]($case)?"module":"class"["$==="]($case)?"class":"int"["$==="]($case)||"def"["$==="]($case)?self.sexp.$children().$first():"defs"["$==="]($case)||"send"["$==="]($case)?self.sexp.$children()["$[]"](1):"lvar"["$==="]($case)||"lvasgn"["$==="]($case)||"lvdeclare"["$==="]($case)||"ivar"["$==="]($case)||"ivasgn"["$==="]($case)||"gvar"["$==="]($case)||"cvar"["$==="]($case)||"cvasgn"["$==="]($case)||"gvars"["$==="]($case)||"gvasgn"["$==="]($case)?self.sexp.$children().$first():nil},$Fragment_line$4.$$arity=0),Opal.def($Fragment_column$5,"$line",$Fragment_line$4=function(){return $truthy(this.sexp)?this.sexp.$line():nil},$Fragment_line$4.$$arity=0),Opal.def($Fragment_column$5,"$column",$Fragment_column$5=function(){return $truthy(this.sexp)?this.sexp.$column():nil},$Fragment_column$5.$$arity=0),nil&&"column"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/helpers"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$valid_name?","$inspect","$=~","$to_s","$+","$indent","$compiler","$to_proc","$parser_indent","$push","$current_indent","$js_truthy_optimize","$helper","$fragment","$expr","$==","$type","$[]","$children","$uses_block!","$scope","$block_name","$handlers","$include?","$truthy_optimize?","$new_temp","$wrap"]),self.$require("opal/regexp_anchors"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function(self,$Helpers_js_truthy_optimize$10){var $Helpers_indent$4,$Helpers_conditional_send$11,self=$module(self,"Helpers"),$nesting=[self].concat($Helpers_js_truthy_optimize$10);return Opal.def(self,"$property",$Helpers_js_truthy_optimize$10=function(name){return $truthy(this["$valid_name?"](name))?"."+name:"["+name.$inspect()+"]"},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$valid_name?",$Helpers_js_truthy_optimize$10=function(name){return $$$($$$($$($nesting,"Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](name)},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$mid_to_jsid",$Helpers_js_truthy_optimize$10=function(lhs){var rhs;return $truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[/["$=~"](lhs.$to_s()))?"['$"+lhs+"']":(rhs=lhs,"number"==typeof(lhs=".$")&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$indent",$Helpers_indent$4=function(){var $iter=$Helpers_indent$4.$$p,block=$iter||nil;return $iter&&($Helpers_indent$4.$$p=null),$iter&&($Helpers_indent$4.$$p=null),$send(this.$compiler(),"indent",[],block.$to_proc())},$Helpers_indent$4.$$arity=0),Opal.def(self,"$current_indent",$Helpers_js_truthy_optimize$10=function(){return this.$compiler().$parser_indent()},$Helpers_js_truthy_optimize$10.$$arity=0),Opal.def(self,"$line",$Helpers_js_truthy_optimize$10=function($a){var strs=Opal.slice.call(arguments,0,arguments.length);return this.$push("\n"+this.$current_indent()),$send(this,"push",Opal.to_a(strs))},$Helpers_js_truthy_optimize$10.$$arity=-1),Opal.def(self,"$empty_line",$Helpers_js_truthy_optimize$10=function(){return this.$push("\n")},$Helpers_js_truthy_optimize$10.$$arity=0),Opal.def(self,"$js_truthy",$Helpers_js_truthy_optimize$10=function(sexp){var optimize;return $truthy(optimize=this.$js_truthy_optimize(sexp))?optimize:(this.$helper("truthy"),[this.$fragment("$truthy("),this.$expr(sexp),this.$fragment(")")])},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$js_falsy",$Helpers_js_truthy_optimize$10=function(sexp){return sexp.$type()["$=="]("send")&&sexp.$children()["$[]"](1)["$=="]("block_given?")?(this.$scope()["$uses_block!"](),this.$scope().$block_name()+" === nil"):(this.$helper("falsy"),[this.$fragment("$falsy("),this.$expr(sexp),this.$fragment(")")])},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$js_truthy_optimize",$Helpers_js_truthy_optimize$10=function(sexp){var allow_optimization_on_type,self=this,mid=nil,receiver_handler_class=nil,$ret_or_1=nil,receiver=nil,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil;return sexp.$type()["$=="]("send")?(mid=sexp.$children()["$[]"](1),receiver_handler_class=$truthy($ret_or_1=receiver=sexp.$children()["$[]"](0))?self.$compiler().$handlers()["$[]"](receiver.$type()):$ret_or_1,allow_optimization_on_type=$truthy($ret_or_2=$truthy($ret_or_3=$$$($$($nesting,"Compiler"),"COMPARE")["$include?"](mid.$to_s()))?receiver_handler_class:$ret_or_3)?receiver_handler_class["$truthy_optimize?"]():$ret_or_2,$truthy($truthy($ret_or_4=$truthy($ret_or_5=allow_optimization_on_type)?$ret_or_5:mid["$=="]("block_given?"))?$ret_or_4:mid["$=="]("=="))?self.$expr(sexp):nil):nil},$Helpers_js_truthy_optimize$10.$$arity=1),Opal.def(self,"$conditional_send",$Helpers_conditional_send$11=function(recvr){var receiver_temp,$iter=$Helpers_conditional_send$11.$$p,$yield=$iter||nil;return $iter&&($Helpers_conditional_send$11.$$p=null),receiver_temp=this.$scope().$new_temp(),this.$push(receiver_temp+" = ",recvr),this.$push(", ("+receiver_temp+" === nil || "+receiver_temp+" == null) ? nil : "),Opal.yield1($yield,receiver_temp),this.$wrap("(",")")},$Helpers_conditional_send$11.$$arity=1),nil&&"conditional_send"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/base"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$require","$include","$each","$[]=","$handlers","$-","$each_with_index","$define_method","$[]","$children","$attr_reader","$type","$compile","$raise","$is_a?","$fragment","$<<","$reverse_each","$unshift","$push","$new","$scope","$error","$top_scope","$s","$==","$process","$expr","$add_scope_local","$to_sym","$add_scope_ivar","$add_scope_gvar","$add_scope_temp","$helper","$with_temp","$to_proc","$in_while?","$instance_variable_get","$has_rescue_else?","$in_ensure","$in_ensure?","$in_resbody","$in_resbody?","$in_rescue","$!","$class_scope?","$sclass?","$+","$parent","$class_variable_owner_nesting_level","$comments","$compiler","$loc","$name","$source_buffer","$expression","$start_with?","$end_with?","$line"]),self.$require("opal/nodes/helpers"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($Base_source_location$47,$Base_comments$46){var $Base_with_temp$35,$Base_in_ensure$39,$Base_in_resbody$41,$Base_in_rescue$43,$Base_source_location$47=$klass($Base_source_location$47,null,"Base"),$nesting=[$Base_source_location$47].concat($Base_comments$46);return $Base_source_location$47.$$prototype.sexp=$Base_source_location$47.$$prototype.fragments=$Base_source_location$47.$$prototype.compiler=$Base_source_location$47.$$prototype.level=nil,$Base_source_location$47.$include($$($nesting,"Helpers")),Opal.defs($Base_source_location$47,"$handlers",$Base_comments$46=function(){var self=this,$ret_or_1=nil;return null==self.handlers&&(self.handlers=nil),self.handlers=$truthy($ret_or_1=self.handlers)?$ret_or_1:$hash2([],{})},$Base_comments$46.$$arity=0),Opal.defs($Base_source_location$47,"$handle",$Base_comments$46=function($a){var $$3,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"each",[],(($$3=function(type){var rhs=null==$$3.$$s?this:$$3.$$s,lhs=nil;return null==type&&(type=nil),lhs=[type,rhs],$send($$($nesting,"Base").$handlers(),"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}).$$s=this,$$3.$$arity=1,$$3))},$Base_comments$46.$$arity=-1),Opal.defs($Base_source_location$47,"$children",$Base_comments$46=function($a){var $$5,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"each_with_index",[],(($$5=function(name,idx){var $$6,self=null==$$5.$$s?this:$$5.$$s;return null==name&&(name=nil),null==idx&&(idx=nil),$send(self,"define_method",[name],(($$6=function(){var self=null==$$6.$$s?this:$$6.$$s;return null==self.sexp&&(self.sexp=nil),self.sexp.$children()["$[]"](idx)}).$$s=self,$$6.$$arity=0,$$6))}).$$s=this,$$5.$$arity=2,$$5))},$Base_comments$46.$$arity=-1),Opal.defs($Base_source_location$47,"$truthy_optimize?",$Base_comments$46=function(){return!1},$Base_comments$46.$$arity=0),$Base_source_location$47.$attr_reader("compiler","type"),Opal.def($Base_source_location$47,"$initialize",$Base_comments$46=function(sexp,level,compiler){return this.sexp=sexp,this.type=sexp.$type(),this.level=level,this.compiler=compiler},$Base_comments$46.$$arity=3),Opal.def($Base_source_location$47,"$children",$Base_comments$46=function(){return this.sexp.$children()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$compile_to_fragments",$Base_comments$46=function(){var $a;return $truthy(null!=($a=this.fragments)&&$a!==nil?"instance-variable":nil)||(this.fragments=[],this.$compile()),this.fragments},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$compile",$Base_comments$46=function(){return this.$raise("Not Implemented")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$push",$Base_comments$46=function($a){var $$13,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"each",[],(($$13=function(str){var self=null==$$13.$$s?this:$$13.$$s;return null==self.fragments&&(self.fragments=nil),null==str&&(str=nil),$truthy(str["$is_a?"]($$($nesting,"String")))&&(str=self.$fragment(str)),self.fragments["$<<"](str)}).$$s=this,$$13.$$arity=1,$$13))},$Base_comments$46.$$arity=-1),Opal.def($Base_source_location$47,"$unshift",$Base_comments$46=function($a){var $$15,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"reverse_each",[],(($$15=function(str){var self=null==$$15.$$s?this:$$15.$$s;return null==self.fragments&&(self.fragments=nil),null==str&&(str=nil),$truthy(str["$is_a?"]($$($nesting,"String")))&&(str=self.$fragment(str)),self.fragments.$unshift(str)}).$$s=this,$$15.$$arity=1,$$15))},$Base_comments$46.$$arity=-1),Opal.def($Base_source_location$47,"$wrap",$Base_comments$46=function(pre,post){return this.$unshift(pre),this.$push(post)},$Base_comments$46.$$arity=2),Opal.def($Base_source_location$47,"$fragment",$Base_comments$46=function(str){return $$$($$($nesting,"Opal"),"Fragment").$new(str,this.$scope(),this.sexp)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$error",$Base_comments$46=function(msg){return this.compiler.$error(msg)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$scope",$Base_comments$46=function(){return this.compiler.$scope()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$top_scope",$Base_comments$46=function(){return this.$scope().$top_scope()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$s",$Base_comments$46=function($a){var $post_args=Opal.slice.call(arguments,0,arguments.length);return $send(this.compiler,"s",Opal.to_a($post_args))},$Base_comments$46.$$arity=-1),Opal.def($Base_source_location$47,"$expr?",$Base_comments$46=function(){return this.level["$=="]("expr")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$recv?",$Base_comments$46=function(){return this.level["$=="]("recv")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$stmt?",$Base_comments$46=function(){return this.level["$=="]("stmt")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$process",$Base_comments$46=function(sexp,level){return null==level&&(level="expr"),this.compiler.$process(sexp,level)},$Base_comments$46.$$arity=-2),Opal.def($Base_source_location$47,"$expr",$Base_comments$46=function(sexp){return this.compiler.$process(sexp,"expr")},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$recv",$Base_comments$46=function(sexp){return this.compiler.$process(sexp,"recv")},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$stmt",$Base_comments$46=function(sexp){return this.compiler.$process(sexp,"stmt")},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$expr_or_nil",$Base_comments$46=function(sexp){return $truthy(sexp)?this.$expr(sexp):"nil"},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$add_local",$Base_comments$46=function(name){return this.$scope().$add_scope_local(name.$to_sym())},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$add_ivar",$Base_comments$46=function(name){return this.$scope().$add_scope_ivar(name)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$add_gvar",$Base_comments$46=function(name){return this.$scope().$add_scope_gvar(name)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$add_temp",$Base_comments$46=function(temp){return this.$scope().$add_scope_temp(temp)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$helper",$Base_comments$46=function(name){return this.compiler.$helper(name)},$Base_comments$46.$$arity=1),Opal.def($Base_source_location$47,"$with_temp",$Base_with_temp$35=function(){var $iter=$Base_with_temp$35.$$p,block=$iter||nil;return $iter&&($Base_with_temp$35.$$p=null),$iter&&($Base_with_temp$35.$$p=null),$send(this.compiler,"with_temp",[],block.$to_proc())},$Base_with_temp$35.$$arity=0),Opal.def($Base_source_location$47,"$in_while?",$Base_comments$46=function(){return this.compiler["$in_while?"]()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$while_loop",$Base_comments$46=function(){return this.compiler.$instance_variable_get("@while_loop")},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$has_rescue_else?",$Base_comments$46=function(){return this.$scope()["$has_rescue_else?"]()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$in_ensure",$Base_in_ensure$39=function(){var $iter=$Base_in_ensure$39.$$p,block=$iter||nil;return $iter&&($Base_in_ensure$39.$$p=null),$iter&&($Base_in_ensure$39.$$p=null),$send(this.$scope(),"in_ensure",[],block.$to_proc())},$Base_in_ensure$39.$$arity=0),Opal.def($Base_source_location$47,"$in_ensure?",$Base_comments$46=function(){return this.$scope()["$in_ensure?"]()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$in_resbody",$Base_in_resbody$41=function(){var $iter=$Base_in_resbody$41.$$p,block=$iter||nil;return $iter&&($Base_in_resbody$41.$$p=null),$iter&&($Base_in_resbody$41.$$p=null),$send(this.$scope(),"in_resbody",[],block.$to_proc())},$Base_in_resbody$41.$$arity=0),Opal.def($Base_source_location$47,"$in_resbody?",$Base_comments$46=function(){return this.$scope()["$in_resbody?"]()},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$in_rescue",$Base_in_rescue$43=function(node){var $iter=$Base_in_rescue$43.$$p,block=$iter||nil;return $iter&&($Base_in_rescue$43.$$p=null),$iter&&($Base_in_rescue$43.$$p=null),$send(this.$scope(),"in_rescue",[node],block.$to_proc())},$Base_in_rescue$43.$$arity=1),Opal.def($Base_source_location$47,"$class_variable_owner_nesting_level",$Base_comments$46=function(){for(var lhs,rhs,cvar_scope=nil,nesting_level=nil,$ret_or_2=nil,cvar_scope=this.$scope(),nesting_level=0;$truthy($truthy($ret_or_2=cvar_scope)?cvar_scope["$class_scope?"]()["$!"]():$ret_or_2);)$truthy(cvar_scope["$sclass?"]())&&(rhs=1,nesting_level="number"==typeof(lhs=nesting_level)&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),cvar_scope=cvar_scope.$parent();return nesting_level},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$class_variable_owner",$Base_comments$46=function(){return $truthy(this.$scope())?"$nesting["+this.$class_variable_owner_nesting_level()+"]":"Opal.Object"},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$comments",$Base_comments$46=function(){return this.$compiler().$comments()["$[]"](this.sexp.$loc())},$Base_comments$46.$$arity=0),Opal.def($Base_source_location$47,"$source_location",$Base_source_location$47=function(){var file=nil,file=this.sexp.$loc().$expression().$source_buffer().$name();return $truthy(file["$start_with?"]("corelib/"))&&(file=""),$truthy(file["$end_with?"](".js"))&&(file=""),"['"+file+"', "+this.sexp.$loc().$line()+"]"},$Base_source_location$47.$$arity=0),nil&&"source_location"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/literal"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send=Opal.send,$lambda=Opal.lambda,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice;return Opal.add_stubs(["$require","$handle","$push","$to_s","$type","$children","$value","$recv?","$wrap","$freeze","$join","$keys","$gsub","$even?","$length","$last_match","$+","$chop","$[]","$inspect","$to_i","$to_utf16","$translate_escape_chars","$valid_encoding?","$helper","$upcase","$<=","$call","$-","$>>","$&","$attr_accessor","$extract_flags_and_value","$select!","$flags","$=~","$warning","$compiler","$==","$compile_static_regexp","$compile_dynamic_regexp","$each_with_index","$zero?","$expr","$any?","$===","$new","$map","$to_proc","$flags=","$empty?","$s","$single_line?","$value=","$include?","$is_a?","$updated","$delete","$source","$expression","$loc","$private","$>","$!=","$!","$regexp","$each","$compile_inline?","$compile_inline","$compile_range_initialize","$start","$finish","$raise","$expr_or_nil","$numerator","$denominator","$real","$imag"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ValueNode_truthy_optimize$ques$2,$ValueNode_compile$1){[$ValueNode_truthy_optimize$ques$2=$klass($base,$ValueNode_truthy_optimize$ques$2,"ValueNode")].concat($ValueNode_compile$1),$ValueNode_truthy_optimize$ques$2.$handle("true","false","self","nil"),Opal.def($ValueNode_truthy_optimize$ques$2,"$compile",$ValueNode_compile$1=function(){return this.$push(this.$type().$to_s())},$ValueNode_compile$1.$$arity=0),Opal.defs($ValueNode_truthy_optimize$ques$2,"$truthy_optimize?",$ValueNode_truthy_optimize$ques$2=function(){return!0},$ValueNode_truthy_optimize$ques$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$NumericNode_truthy_optimize$ques$4,$NumericNode_compile$3){[$NumericNode_truthy_optimize$ques$4=$klass($base,$NumericNode_truthy_optimize$ques$4,"NumericNode")].concat($NumericNode_compile$3),$NumericNode_truthy_optimize$ques$4.$handle("int","float"),$NumericNode_truthy_optimize$ques$4.$children("value"),Opal.def($NumericNode_truthy_optimize$ques$4,"$compile",$NumericNode_compile$3=function(){return this.$push(this.$value().$to_s()),$truthy(this["$recv?"]())?this.$wrap("(",")"):nil},$NumericNode_compile$3.$$arity=0),Opal.defs($NumericNode_truthy_optimize$ques$4,"$truthy_optimize?",$NumericNode_truthy_optimize$ques$4=function(){return!0},$NumericNode_truthy_optimize$ques$4.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$StringNode_to_utf16$9,$StringNode_compile$7){var $nesting=[$StringNode_to_utf16$9=$klass($base,$StringNode_to_utf16$9,"StringNode")].concat($StringNode_compile$7);$StringNode_to_utf16$9.$handle("str"),$StringNode_to_utf16$9.$children("value"),Opal.const_set($nesting[0],"ESCAPE_CHARS",$hash2(["a","e"],{a:"\\u0007",e:"\\u001b"}).$freeze()),Opal.const_set($nesting[0],"ESCAPE_REGEX",Opal.regexp(["(\\\\+)([",$$($nesting,"ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),Opal.def($StringNode_to_utf16$9,"$translate_escape_chars",$StringNode_compile$7=function(inspect_string){var $$6;return $send(inspect_string,"gsub",[$$($nesting,"ESCAPE_REGEX")],(($$6=function(original){null==$$6.$$s||$$6.$$s;return null==original&&(original=nil),$truthy($$($nesting,"Regexp").$last_match(1).$length()["$even?"]())?original:$rb_plus($$($nesting,"Regexp").$last_match(1).$chop(),$$($nesting,"ESCAPE_CHARS")["$[]"]($$($nesting,"Regexp").$last_match(2)))}).$$s=this,$$6.$$arity=1,$$6))},$StringNode_compile$7.$$arity=1),Opal.def($StringNode_to_utf16$9,"$compile",$StringNode_compile$7=function(){var $$8,string_value=nil,string_value=this.$value(),sanitized_value=$send(string_value.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],(($$8=function(){var self=null==$$8.$$s?this:$$8.$$s,code_point=$$($nesting,"Regexp").$last_match(1).$to_i(16);return self.$to_utf16(code_point)}).$$s=this,$$8.$$arity=0,$$8));return this.$push(this.$translate_escape_chars(sanitized_value)),$truthy(this.$value()["$valid_encoding?"]())?nil:(this.$helper("binary"),this.$wrap("$binary(",")"))},$StringNode_compile$7.$$arity=0),Opal.def($StringNode_to_utf16$9,"$to_utf16",$StringNode_to_utf16$9=function(code_point){var $$10,lead_surrogate,tail_surrogate,lhs,rhs,u=nil,u=$lambda((($$10=function(code_unit){null==$$10.$$s||$$10.$$s;return null==code_unit&&(code_unit=nil),$rb_plus("\\u",code_unit.$to_s(16).$upcase())}).$$s=this,$$10.$$arity=1,$$10));return $truthy((rhs=65535,"number"==typeof(lhs=code_point)&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))?u.$call(code_point):(lead_surrogate=$rb_plus(55296,(code_point=$rb_minus(code_point,65536))["$>>"](10)),tail_surrogate=$rb_plus(56320,code_point["$&"](1023)),$rb_plus(u.$call(lead_surrogate),u.$call(tail_surrogate)))},$StringNode_to_utf16$9.$$arity=1)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$SymbolNode_compile$11,$parent_nesting){[$SymbolNode_compile$11=$klass($base,$SymbolNode_compile$11,"SymbolNode")].concat($parent_nesting),$SymbolNode_compile$11.$handle("sym"),$SymbolNode_compile$11.$children("value"),Opal.def($SymbolNode_compile$11,"$compile",$SymbolNode_compile$11=function(){return this.$push(this.$value().$to_s().$inspect())},$SymbolNode_compile$11.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$RegexpNode_single_line$ques$21,$RegexpNode_raw_value$20){var $RegexpNode_initialize$12,$nesting=[$RegexpNode_single_line$ques$21=$klass($base,$RegexpNode_single_line$ques$21,"RegexpNode")].concat($RegexpNode_raw_value$20);$RegexpNode_single_line$ques$21.$$prototype.sexp=nil,$RegexpNode_single_line$ques$21.$handle("regexp"),$RegexpNode_single_line$ques$21.$attr_accessor("value","flags"),Opal.const_set($nesting[0],"SUPPORTED_FLAGS",/[gimuy]/.$freeze()),Opal.def($RegexpNode_single_line$ques$21,"$initialize",$RegexpNode_initialize$12=function($a){var $zuper_ii,$iter=$RegexpNode_initialize$12.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($RegexpNode_initialize$12.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$RegexpNode_initialize$12,!1,!0),"initialize",$zuper,$iter),this.$extract_flags_and_value()},$RegexpNode_initialize$12.$$arity=-1),Opal.def($RegexpNode_single_line$ques$21,"$compile",$RegexpNode_raw_value$20=function(){var $$14;return $send(this.$flags(),"select!",[],(($$14=function(flag){var self=null==$$14.$$s?this:$$14.$$s;return null==flag&&(flag=nil),!!$truthy($$($nesting,"SUPPORTED_FLAGS")["$=~"](flag))||(self.$compiler().$warning("Skipping the '"+flag+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)}).$$s=this,$$14.$$arity=1,$$14)),this.$value().$type()["$=="]("str")?this.$compile_static_regexp():this.$compile_dynamic_regexp()},$RegexpNode_raw_value$20.$$arity=0),Opal.def($RegexpNode_single_line$ques$21,"$compile_dynamic_regexp",$RegexpNode_raw_value$20=function(){var $$16;return this.$push("Opal.regexp(["),$send(this.$value().$children(),"each_with_index",[],(($$16=function(v,index){var self=null==$$16.$$s?this:$$16.$$s;return null==v&&(v=nil),null==index&&(index=nil),$truthy(index["$zero?"]())||self.$push(", "),self.$push(self.$expr(v))}).$$s=this,$$16.$$arity=2,$$16)),this.$push("]"),$truthy(this.$flags()["$any?"]())&&this.$push(", '"+this.$flags().$join()+"'"),this.$push(")")},$RegexpNode_raw_value$20.$$arity=0),Opal.def($RegexpNode_single_line$ques$21,"$compile_static_regexp",$RegexpNode_raw_value$20=function(){var self=this,value=self.$value().$children()["$[]"](0);return""["$==="](value)?self.$push("/(?:)/"):self.$push(""+$$($nesting,"Regexp").$new(value).$inspect()+self.$flags().$join())},$RegexpNode_raw_value$20.$$arity=0),Opal.def($RegexpNode_single_line$ques$21,"$extract_flags_and_value",$RegexpNode_raw_value$20=function(){var $$19,parts,self=this,values=nil,flags_sexp=nil,$writer=nil,$a=[].concat(Opal.to_a(self.$children())),$b=$a.length-1;return $b=$b<0?0:$b,values=$slice.call($a,0,$b),flags_sexp=null==$a[$b]?nil:$a[$b],$writer=[$send(flags_sexp.$children(),"map",[],"to_s".$to_proc())],$send(self,"flags=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$truthy(values["$empty?"]())?self.$s("str",""):$truthy(self["$single_line?"](values))?values["$[]"](0):$send(self,"s",["dstr"].concat(Opal.to_a(values)))],$send(self,"value=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(self.$flags()["$include?"]("x"))&&(parts=$send(self.$value().$children(),"map",[],(($$19=function(part){var trimmed_value,self=null==$$19.$$s?this:$$19.$$s,$ret_or_1=nil;return null==part&&(part=nil),$truthy($truthy($ret_or_1=part["$is_a?"]($$$($$$($$$("::","Opal"),"AST"),"Node")))?part.$type()["$=="]("str"):$ret_or_1)?(trimmed_value=part.$children()["$[]"](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),self.$s("str",trimmed_value)):part}).$$s=self,$$19.$$arity=1,$$19)),$writer=[self.$value().$updated(nil,parts)],$send(self,"value=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.$flags().$delete("x")),self.$value().$type()["$=="]("str")?($writer=[self.$s("str",self.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],$send(self,"value=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil},$RegexpNode_raw_value$20.$$arity=0),Opal.def($RegexpNode_single_line$ques$21,"$raw_value",$RegexpNode_raw_value$20=function(){var $writer=[this.sexp.$loc().$expression().$source()];return $send(this,"value=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$RegexpNode_raw_value$20.$$arity=0),$RegexpNode_single_line$ques$21.$private(),Opal.def($RegexpNode_single_line$ques$21,"$single_line?",$RegexpNode_single_line$ques$21=function(values){var $ret_or_2,lhs,rhs,value=nil;return!$truthy((lhs=values.$length(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))&&(value=values["$[]"](0),$truthy($ret_or_2=value.$type()["$!="]("str"))?$ret_or_2:value.$children()["$[]"](0)["$include?"]("\n")["$!"]())},$RegexpNode_single_line$ques$21.$$arity=1)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$MatchCurrentLineNode_compile$22,$parent_nesting){[$MatchCurrentLineNode_compile$22=$klass($base,$MatchCurrentLineNode_compile$22,"MatchCurrentLineNode")].concat($parent_nesting),$MatchCurrentLineNode_compile$22.$handle("match_current_line"),$MatchCurrentLineNode_compile$22.$children("regexp"),Opal.def($MatchCurrentLineNode_compile$22,"$compile",$MatchCurrentLineNode_compile$22=function(){var gvar_sexp=this.$s("gvar","$_"),send_node=this.$s("send",gvar_sexp,"=~",this.$regexp());return this.$push(this.$expr(send_node))},$MatchCurrentLineNode_compile$22.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$DynamicStringNode_compile$23,$parent_nesting){[$DynamicStringNode_compile$23=$klass($base,$DynamicStringNode_compile$23,"DynamicStringNode")].concat($parent_nesting),$DynamicStringNode_compile$23.$handle("dstr"),Opal.def($DynamicStringNode_compile$23,"$compile",$DynamicStringNode_compile$23=function(){var $$24;return this.$push('""'),$send(this.$children(),"each",[],(($$24=function(part){var self=null==$$24.$$s?this:$$24.$$s;return null==part&&(part=nil),self.$push(" + "),part.$type()["$=="]("str")?self.$push(part.$children()["$[]"](0).$inspect()):self.$push("(",self.$expr(part),")"),$truthy(self["$recv?"]())?self.$wrap("(",")"):nil}).$$s=this,$$24.$$arity=1,$$24))},$DynamicStringNode_compile$23.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,self,$parent_nesting){[self=$klass($base,self,"DynamicSymbolNode")].concat($parent_nesting),self.$handle("dsym")}($nesting[0],$$($nesting,"DynamicStringNode"),$nesting),function($base,$RangeNode_compile_range_initialize$28,$RangeNode_compile_inline$27){var $nesting=[$RangeNode_compile_range_initialize$28=$klass($base,$RangeNode_compile_range_initialize$28,"RangeNode")].concat($RangeNode_compile_inline$27);$RangeNode_compile_range_initialize$28.$children("start","finish"),Opal.const_set($nesting[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),Opal.def($RangeNode_compile_range_initialize$28,"$compile",$RangeNode_compile_inline$27=function(){return $truthy(this["$compile_inline?"]())?(this.$helper("range"),this.$compile_inline()):this.$compile_range_initialize()},$RangeNode_compile_inline$27.$$arity=0),Opal.def($RangeNode_compile_range_initialize$28,"$compile_inline?",$RangeNode_compile_inline$27=function(){var $ret_or_3,$ret_or_6,$ret_or_7,self=this,$ret_or_4=nil,$ret_or_5=nil;return $truthy($ret_or_3=$truthy($ret_or_4=self.$start()["$!"]())?$ret_or_4:$truthy($ret_or_5=self.$start().$type())?$$($nesting,"SIMPLE_CHILDREN_TYPES")["$include?"](self.$start().$type()):$ret_or_5)?$truthy($ret_or_6=self.$finish()["$!"]())?$ret_or_6:$truthy($ret_or_7=self.$finish().$type())?$$($nesting,"SIMPLE_CHILDREN_TYPES")["$include?"](self.$finish().$type()):$ret_or_7:$ret_or_3},$RangeNode_compile_inline$27.$$arity=0),Opal.def($RangeNode_compile_range_initialize$28,"$compile_inline",$RangeNode_compile_inline$27=function(){return this.$raise($$($nesting,"NotImplementedError"))},$RangeNode_compile_inline$27.$$arity=0),Opal.def($RangeNode_compile_range_initialize$28,"$compile_range_initialize",$RangeNode_compile_range_initialize$28=function(){return this.$raise($$($nesting,"NotImplementedError"))},$RangeNode_compile_range_initialize$28.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$InclusiveRangeNode_compile_range_initialize$30,$InclusiveRangeNode_compile_inline$29){[$InclusiveRangeNode_compile_range_initialize$30=$klass($base,$InclusiveRangeNode_compile_range_initialize$30,"InclusiveRangeNode")].concat($InclusiveRangeNode_compile_inline$29),$InclusiveRangeNode_compile_range_initialize$30.$handle("irange"),Opal.def($InclusiveRangeNode_compile_range_initialize$30,"$compile_inline",$InclusiveRangeNode_compile_inline$29=function(){return this.$push("$range(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", false)")},$InclusiveRangeNode_compile_inline$29.$$arity=0),Opal.def($InclusiveRangeNode_compile_range_initialize$30,"$compile_range_initialize",$InclusiveRangeNode_compile_range_initialize$30=function(){return this.$push("Opal.Range.$new(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", false)")},$InclusiveRangeNode_compile_range_initialize$30.$$arity=0)}($nesting[0],$$($nesting,"RangeNode"),$nesting),function($base,$ExclusiveRangeNode_compile_range_initialize$32,$ExclusiveRangeNode_compile_inline$31){[$ExclusiveRangeNode_compile_range_initialize$32=$klass($base,$ExclusiveRangeNode_compile_range_initialize$32,"ExclusiveRangeNode")].concat($ExclusiveRangeNode_compile_inline$31),$ExclusiveRangeNode_compile_range_initialize$32.$handle("erange"),Opal.def($ExclusiveRangeNode_compile_range_initialize$32,"$compile_inline",$ExclusiveRangeNode_compile_inline$31=function(){return this.$push("$range(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", true)")},$ExclusiveRangeNode_compile_inline$31.$$arity=0),Opal.def($ExclusiveRangeNode_compile_range_initialize$32,"$compile_range_initialize",$ExclusiveRangeNode_compile_range_initialize$32=function(){return this.$push("Opal.Range.$new(",this.$expr_or_nil(this.$start()),",",this.$expr_or_nil(this.$finish()),", true)")},$ExclusiveRangeNode_compile_range_initialize$32.$$arity=0)}($nesting[0],$$($nesting,"RangeNode"),$nesting),function($base,$RationalNode_compile$33,$parent_nesting){[$RationalNode_compile$33=$klass($base,$RationalNode_compile$33,"RationalNode")].concat($parent_nesting),$RationalNode_compile$33.$handle("rational"),$RationalNode_compile$33.$children("value"),Opal.def($RationalNode_compile$33,"$compile",$RationalNode_compile$33=function(){return this.$push("Opal.Rational.$new("+this.$value().$numerator()+", "+this.$value().$denominator()+")")},$RationalNode_compile$33.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ComplexNode_compile$34,$parent_nesting){$ComplexNode_compile$34=$klass($base,$ComplexNode_compile$34,"ComplexNode"),[$ComplexNode_compile$34].concat($parent_nesting);return $ComplexNode_compile$34.$handle("complex"),$ComplexNode_compile$34.$children("value"),Opal.def($ComplexNode_compile$34,"$compile",$ComplexNode_compile$34=function(){return this.$push("Opal.Complex.$new("+this.$value().$real()+", "+this.$value().$imag()+")")},$ComplexNode_compile$34.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/variables"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$require","$handle","$children","$irb?","$compiler","$top?","$scope","$using_irb?","$push","$to_s","$var_name","$with_temp","$property","$wrap","$add_local","$expr","$value","$recv?","$expr?","$[]","$name","$add_ivar","$helper","$add_gvar","$===","$handle_global_match","$handle_post_match","$handle_pre_match","$raise","$index","$stmt?","$class_variable_owner","$inspect"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$LocalVariableNode_compile$2,$LocalVariableNode_using_irb$ques$1){[$LocalVariableNode_compile$2=$klass($base,$LocalVariableNode_compile$2,"LocalVariableNode")].concat($LocalVariableNode_using_irb$ques$1),$LocalVariableNode_compile$2.$handle("lvar"),$LocalVariableNode_compile$2.$children("var_name"),Opal.def($LocalVariableNode_compile$2,"$using_irb?",$LocalVariableNode_using_irb$ques$1=function(){var $ret_or_1;return $truthy($ret_or_1=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():$ret_or_1},$LocalVariableNode_using_irb$ques$1.$$arity=0),Opal.def($LocalVariableNode_compile$2,"$compile",$LocalVariableNode_compile$2=function(){var $$3;return $truthy(this["$using_irb?"]())?$send(this,"with_temp",[],(($$3=function(tmp){var self=null==$$3.$$s?this:$$3.$$s;return null==tmp&&(tmp=nil),self.$push(self.$property(self.$var_name().$to_s())),self.$wrap("(("+tmp+" = Opal.irb_vars",") == null ? nil : "+tmp+")")}).$$s=this,$$3.$$arity=1,$$3)):this.$push(this.$var_name().$to_s())},$LocalVariableNode_compile$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$LocalAssignNode_compile$5,$LocalAssignNode_using_irb$ques$4){[$LocalAssignNode_compile$5=$klass($base,$LocalAssignNode_compile$5,"LocalAssignNode")].concat($LocalAssignNode_using_irb$ques$4),$LocalAssignNode_compile$5.$handle("lvasgn"),$LocalAssignNode_compile$5.$children("var_name","value"),Opal.def($LocalAssignNode_compile$5,"$using_irb?",$LocalAssignNode_using_irb$ques$4=function(){var $ret_or_2;return $truthy($ret_or_2=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():$ret_or_2},$LocalAssignNode_using_irb$ques$4.$$arity=0),Opal.def($LocalAssignNode_compile$5,"$compile",$LocalAssignNode_compile$5=function(){var self=this,$ret_or_3=nil,$ret_or_4=nil;return $truthy(self["$using_irb?"]())?self.$push("Opal.irb_vars"+self.$property(self.$var_name().$to_s())+" = "):(self.$add_local(self.$var_name().$to_s()),self.$push(self.$var_name()+" = ")),self.$push(self.$expr(self.$value())),$truthy($truthy($ret_or_3=$truthy($ret_or_4=self["$recv?"]())?$ret_or_4:self["$expr?"]())?self.$value():$ret_or_3)?self.$wrap("(",")"):nil},$LocalAssignNode_compile$5.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$LocalDeclareNode_compile$6,$parent_nesting){[$LocalDeclareNode_compile$6=$klass($base,$LocalDeclareNode_compile$6,"LocalDeclareNode")].concat($parent_nesting),$LocalDeclareNode_compile$6.$handle("lvdeclare"),$LocalDeclareNode_compile$6.$children("var_name"),Opal.def($LocalDeclareNode_compile$6,"$compile",$LocalDeclareNode_compile$6=function(){return this.$add_local(this.$var_name().$to_s()),nil},$LocalDeclareNode_compile$6.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$InstanceVariableNode_compile$8,$InstanceVariableNode_var_name$7){[$InstanceVariableNode_compile$8=$klass($base,$InstanceVariableNode_compile$8,"InstanceVariableNode")].concat($InstanceVariableNode_var_name$7),$InstanceVariableNode_compile$8.$handle("ivar"),$InstanceVariableNode_compile$8.$children("name"),Opal.def($InstanceVariableNode_compile$8,"$var_name",$InstanceVariableNode_var_name$7=function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))},$InstanceVariableNode_var_name$7.$$arity=0),Opal.def($InstanceVariableNode_compile$8,"$compile",$InstanceVariableNode_compile$8=function(){var name=this.$property(this.$var_name());return this.$add_ivar(name),this.$push("self"+name)},$InstanceVariableNode_compile$8.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$InstanceAssignNode_compile$10,$InstanceAssignNode_var_name$9){[$InstanceAssignNode_compile$10=$klass($base,$InstanceAssignNode_compile$10,"InstanceAssignNode")].concat($InstanceAssignNode_var_name$9),$InstanceAssignNode_compile$10.$handle("ivasgn"),$InstanceAssignNode_compile$10.$children("name","value"),Opal.def($InstanceAssignNode_compile$10,"$var_name",$InstanceAssignNode_var_name$9=function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))},$InstanceAssignNode_var_name$9.$$arity=0),Opal.def($InstanceAssignNode_compile$10,"$compile",$InstanceAssignNode_compile$10=function(){var self=this,$ret_or_5=nil,$ret_or_6=nil,name=self.$property(self.$var_name());return self.$push("self"+name+" = "),self.$push(self.$expr(self.$value())),$truthy($truthy($ret_or_5=$truthy($ret_or_6=self["$recv?"]())?$ret_or_6:self["$expr?"]())?self.$value():$ret_or_5)?self.$wrap("(",")"):nil},$InstanceAssignNode_compile$10.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$GlobalVariableNode_compile$12,$GlobalVariableNode_var_name$11){[$GlobalVariableNode_compile$12=$klass($base,$GlobalVariableNode_compile$12,"GlobalVariableNode")].concat($GlobalVariableNode_var_name$11),$GlobalVariableNode_compile$12.$handle("gvar"),$GlobalVariableNode_compile$12.$children("name"),Opal.def($GlobalVariableNode_compile$12,"$var_name",$GlobalVariableNode_var_name$11=function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))},$GlobalVariableNode_var_name$11.$$arity=0),Opal.def($GlobalVariableNode_compile$12,"$compile",$GlobalVariableNode_compile$12=function(){var name;return this.$helper("gvars"),name=this.$property(this.$var_name()),this.$add_gvar(name),this.$push("$gvars"+name)},$GlobalVariableNode_compile$12.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$BackRefNode_handle_post_match$18,$BackRefNode_handle_pre_match$16){var $BackRefNode_compile$13,$nesting=[$BackRefNode_handle_post_match$18=$klass($base,$BackRefNode_handle_post_match$18,"BackRefNode")].concat($BackRefNode_handle_pre_match$16);$BackRefNode_handle_post_match$18.$handle("back_ref"),Opal.def($BackRefNode_handle_post_match$18,"$compile",$BackRefNode_compile$13=function(){var $zuper_ii,$iter=$BackRefNode_compile$13.$$p,self=this,$case=nil,$zuper=nil,$zuper_i=nil;for($iter&&($BackRefNode_compile$13.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return self.$helper("gvars"),$case=self.$var_name(),"&"["$==="]($case)?self.$handle_global_match():"'"["$==="]($case)?self.$handle_post_match():"`"["$==="]($case)?self.$handle_pre_match():"+"["$==="]($case)?$send2(self,$find_super(self,"compile",$BackRefNode_compile$13,!1,!0),"compile",$zuper,$iter):self.$raise($$($nesting,"NotImplementedError"))},$BackRefNode_compile$13.$$arity=0),Opal.def($BackRefNode_handle_post_match$18,"$handle_global_match",$BackRefNode_handle_pre_match$16=function(){var $$15;return $send(this,"with_temp",[],(($$15=function(tmp){var self=null==$$15.$$s?this:$$15.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+"['$[]'](0))")}).$$s=this,$$15.$$arity=1,$$15))},$BackRefNode_handle_pre_match$16.$$arity=0),Opal.def($BackRefNode_handle_post_match$18,"$handle_pre_match",$BackRefNode_handle_pre_match$16=function(){var $$17;return $send(this,"with_temp",[],(($$17=function(tmp){var self=null==$$17.$$s?this:$$17.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+".$pre_match())")}).$$s=this,$$17.$$arity=1,$$17))},$BackRefNode_handle_pre_match$16.$$arity=0),Opal.def($BackRefNode_handle_post_match$18,"$handle_post_match",$BackRefNode_handle_post_match$18=function(){var $$19;return $send(this,"with_temp",[],(($$19=function(tmp){var self=null==$$19.$$s?this:$$19.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+".$post_match())")}).$$s=this,$$19.$$arity=1,$$19))},$BackRefNode_handle_post_match$18.$$arity=0)}($nesting[0],$$($nesting,"GlobalVariableNode"),$nesting),function($base,$GlobalAssignNode_compile$21,$GlobalAssignNode_var_name$20){[$GlobalAssignNode_compile$21=$klass($base,$GlobalAssignNode_compile$21,"GlobalAssignNode")].concat($GlobalAssignNode_var_name$20),$GlobalAssignNode_compile$21.$handle("gvasgn"),$GlobalAssignNode_compile$21.$children("name","value"),Opal.def($GlobalAssignNode_compile$21,"$var_name",$GlobalAssignNode_var_name$20=function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))},$GlobalAssignNode_var_name$20.$$arity=0),Opal.def($GlobalAssignNode_compile$21,"$compile",$GlobalAssignNode_compile$21=function(){var name,self=this,$ret_or_7=nil,$ret_or_8=nil;return self.$helper("gvars"),name=self.$property(self.$var_name()),self.$push("$gvars"+name+" = "),self.$push(self.$expr(self.$value())),$truthy($truthy($ret_or_7=$truthy($ret_or_8=self["$recv?"]())?$ret_or_8:self["$expr?"]())?self.$value():$ret_or_7)?self.$wrap("(",")"):nil},$GlobalAssignNode_compile$21.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$NthrefNode_compile$22,$parent_nesting){[$NthrefNode_compile$22=$klass($base,$NthrefNode_compile$22,"NthrefNode")].concat($parent_nesting),$NthrefNode_compile$22.$handle("nth_ref"),$NthrefNode_compile$22.$children("index"),Opal.def($NthrefNode_compile$22,"$compile",$NthrefNode_compile$22=function(){var $$23;return this.$helper("gvars"),$send(this,"with_temp",[],(($$23=function(tmp){var self=null==$$23.$$s?this:$$23.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+"['$[]']("+self.$index()+"))")}).$$s=this,$$23.$$arity=1,$$23))},$NthrefNode_compile$22.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ClassVariableNode_compile$24,$parent_nesting){[$ClassVariableNode_compile$24=$klass($base,$ClassVariableNode_compile$24,"ClassVariableNode")].concat($parent_nesting),$ClassVariableNode_compile$24.$handle("cvar"),$ClassVariableNode_compile$24.$children("name"),Opal.def($ClassVariableNode_compile$24,"$compile",$ClassVariableNode_compile$24=function(){var tolerant=nil;return this.$helper("class_variable_get"),tolerant=!1,$truthy(this["$stmt?"]())&&(tolerant=!0),this.$push("$class_variable_get("+this.$class_variable_owner()+", '"+this.$name()+"', "+tolerant.$inspect()+")")},$ClassVariableNode_compile$24.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ClassVarAssignNode_compile$25,$parent_nesting){$ClassVarAssignNode_compile$25=$klass($base,$ClassVarAssignNode_compile$25,"ClassVarAssignNode"),[$ClassVarAssignNode_compile$25].concat($parent_nesting);return $ClassVarAssignNode_compile$25.$handle("cvasgn"),$ClassVarAssignNode_compile$25.$children("name","value"),Opal.def($ClassVarAssignNode_compile$25,"$compile",$ClassVarAssignNode_compile$25=function(){return this.$helper("class_variable_set"),this.$push("$class_variable_set("+this.$class_variable_owner()+", '"+this.$name()+"', ",this.$expr(this.$value()),")")},$ClassVarAssignNode_compile$25.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/constants"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$magical_data_const?","$push","$const_scope","$recv","$name","$eval?","$compiler","$nil?","$==","$eof_content","$base","$expr","$value"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ConstNode_magical_data_const$ques$2,$ConstNode_compile$1){[$ConstNode_magical_data_const$ques$2=$klass($base,$ConstNode_magical_data_const$ques$2,"ConstNode")].concat($ConstNode_compile$1),$ConstNode_magical_data_const$ques$2.$handle("const"),$ConstNode_magical_data_const$ques$2.$children("const_scope","name"),Opal.def($ConstNode_magical_data_const$ques$2,"$compile",$ConstNode_compile$1=function(){return $truthy(this["$magical_data_const?"]())?this.$push("$__END__"):$truthy(this.$const_scope())?this.$push("$$$(",this.$recv(this.$const_scope()),", '"+this.$name()+"')"):($truthy(this.$compiler()["$eval?"]()),this.$push("$$($nesting, '"+this.$name()+"')"))},$ConstNode_compile$1.$$arity=0),Opal.def($ConstNode_magical_data_const$ques$2,"$magical_data_const?",$ConstNode_magical_data_const$ques$2=function(){var $ret_or_1,self=this,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=self.$const_scope()["$nil?"]())?self.$name()["$=="]("DATA"):$ret_or_2)?self.$compiler().$eof_content():$ret_or_1},$ConstNode_magical_data_const$ques$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$CbaseNode_compile$3,$parent_nesting){[$CbaseNode_compile$3=$klass($base,$CbaseNode_compile$3,"CbaseNode")].concat($parent_nesting),$CbaseNode_compile$3.$handle("cbase"),Opal.def($CbaseNode_compile$3,"$compile",$CbaseNode_compile$3=function(){return this.$push("'::'")},$CbaseNode_compile$3.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ConstAssignNode_compile$4,$parent_nesting){$ConstAssignNode_compile$4=$klass($base,$ConstAssignNode_compile$4,"ConstAssignNode"),[$ConstAssignNode_compile$4].concat($parent_nesting);return $ConstAssignNode_compile$4.$handle("casgn"),$ConstAssignNode_compile$4.$children("base","name","value"),Opal.def($ConstAssignNode_compile$4,"$compile",$ConstAssignNode_compile$4=function(){return $truthy(this.$base())?this.$push("Opal.const_set(",this.$expr(this.$base()),", '"+this.$name()+"', ",this.$expr(this.$value()),")"):this.$push("Opal.const_set($nesting[0], '"+this.$name()+"', ",this.$expr(this.$value()),")")},$ConstAssignNode_compile$4.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["corelib/comparable"]=function(Opal){function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$<","$===","$raise","$class","$<=>","$equal?"]),function($base,$Comparable_clamp$7){var self=$module($base,"Comparable"),$nesting=[self].concat($Comparable_clamp$7),$case=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $falsy(cmp)&&function(lhs,class_name){$case=class_name,class_name=nil["$==="]($case)||(!0)["$==="]($case)||(!1)["$==="]($case)||$$($nesting,"Integer")["$==="]($case)||$$($nesting,"Float")["$==="]($case)?class_name.$inspect():class_name.$$class,self.$raise($$($nesting,"ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return Opal.def(self,"$==",$Comparable_clamp$7=function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$>",$Comparable_clamp$7=function(other){return 0=",$Comparable_clamp$7=function(other){return 0<=cmp_or_fail(this,other)},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<=",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<=0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$between?",$Comparable_clamp$7=function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)},$Comparable_clamp$7.$$arity=2),Opal.def(self,"$clamp",$Comparable_clamp$7=function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||this.$raise($$($nesting,"TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&this.$raise($$($nesting,"ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&0","$nonzero?","$proc","$casecmp","$cleanpath","$inspect","$include?","$fill","$map","$entries"]),self.$require("corelib/comparable"),function($Pathname_entries$26,$Pathname_relative_path_from$25){var $Pathname$23,$Pathname$24,$nesting=[$Pathname_entries$26=$klass($Pathname_entries$26,null,"Pathname")].concat($Pathname_relative_path_from$25);$Pathname_entries$26.$$prototype.path=nil,$Pathname_entries$26.$include($$($nesting,"Comparable")),Opal.const_set($nesting[0],"SEPARATOR_PAT",Opal.regexp([$$($nesting,"Regexp").$quote($$$($$($nesting,"File"),"SEPARATOR"))])),Opal.def($Pathname_entries$26,"$initialize",$Pathname_relative_path_from$25=function(path){return $truthy($$($nesting,"Pathname")["$==="](path))?this.path=path.$path().$to_s():$truthy(path["$respond_to?"]("to_path"))?this.path=path.$to_path():$truthy(path["$is_a?"]($$($nesting,"String")))?this.path=path:$truthy(path["$nil?"]())?this.$raise($$($nesting,"TypeError"),"no implicit conversion of nil into String"):this.$raise($$($nesting,"TypeError"),"no implicit conversion of "+path.$class()+" into String"),this.path["$=="]("\0")?this.$raise($$($nesting,"ArgumentError")):nil},$Pathname_relative_path_from$25.$$arity=1),$Pathname_entries$26.$attr_reader("path"),Opal.def($Pathname_entries$26,"$==",$Pathname_relative_path_from$25=function(other){return other.$path()["$=="](this.path)},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$absolute?",$Pathname_relative_path_from$25=function(){return this["$relative?"]()["$!"]()},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$relative?",$Pathname_relative_path_from$25=function(){for(var $b,r,path=nil,path=this.path;$truthy(r=this.$chop_basename(path));)$b=r,path=null==($b=Opal.to_ary($b))[0]?nil:$b[0];return path["$=="]("")},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$chop_basename",$Pathname_relative_path_from$25=function(path){var base=$$($nesting,"File").$basename(path);return $truthy($$($nesting,"Regexp").$new("^"+$$$($$($nesting,"Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](base))?nil:[path["$[]"](0,path.$rindex(base)),base]},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$root?",$Pathname_relative_path_from$25=function(){return this.path["$=="]("/")},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$parent",$Pathname_relative_path_from$25=function(){var self=this,new_path=nil;return(new_path=self.path.$sub(/\/([^\/]+\/?$)/,""))["$=="]("")&&(new_path=$truthy(self["$absolute?"]())?"/":"."),$$($nesting,"Pathname").$new(new_path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$sub",$Pathname_relative_path_from$25=function($a){var args=Opal.slice.call(arguments,0,arguments.length);return $$($nesting,"Pathname").$new($send(this.path,"sub",Opal.to_a(args)))},$Pathname_relative_path_from$25.$$arity=-1),Opal.def($Pathname_entries$26,"$cleanpath",$Pathname_relative_path_from$25=function(){return Opal.normalize(this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$to_path",$Pathname_relative_path_from$25=function(){return this.path},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$hash",$Pathname_relative_path_from$25=function(){return this.path},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$expand_path",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$expand_path(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$+",$Pathname_relative_path_from$25=function(other){return $truthy($$($nesting,"Pathname")["$==="](other))||(other=$$($nesting,"Pathname").$new(other)),$$($nesting,"Pathname").$new(this.$plus(this.path,other.$to_s()))},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$plus",$Pathname_relative_path_from$25=function(path1,path2){for(var $b,$c,r2,basename2,suffix2,prefix2=nil,index_list2=nil,basename_list2=nil,prefix1=nil,$ret_or_1=nil,r1=nil,basename1=nil,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil,prefix2=path2,index_list2=[],basename_list2=[];$truthy(r2=this.$chop_basename(prefix2));)$c=r2,prefix2=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename2=null==$b[1]?nil:$b[1],index_list2.$unshift(prefix2.$length()),basename_list2.$unshift(basename2);if($truthy(prefix2["$!="]("")))return path2;for(prefix1=path1;$truthy(!0);){for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="]("."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();if(!$truthy(r1=this.$chop_basename(prefix1)))break;if($c=r1,$b=Opal.to_ary($c),prefix1=null==$b[0]?nil:$b[0],!(basename1=null==$b[1]?nil:$b[1])["$=="](".")){if($truthy($truthy($ret_or_2=$truthy($ret_or_3=basename1["$=="](".."))?$ret_or_3:basename_list2["$empty?"]())?$ret_or_2:basename_list2.$first()["$!="](".."))){prefix1=$rb_plus(prefix1,basename1);break}index_list2.$shift(),basename_list2.$shift()}}if(r1=this.$chop_basename(prefix1),$truthy($truthy($ret_or_4=r1["$!"]())?Opal.regexp([$$($nesting,"SEPARATOR_PAT")])["$=~"]($$($nesting,"File").$basename(prefix1)):$ret_or_4))for(;$truthy($truthy($ret_or_5=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="](".."):$ret_or_5);)index_list2.$shift(),basename_list2.$shift();return $truthy(basename_list2["$empty?"]()["$!"]())?(suffix2=path2["$[]"](Opal.Range.$new(index_list2.$first(),-1,!1)),$truthy(r1)?$$($nesting,"File").$join(prefix1,suffix2):$rb_plus(prefix1,suffix2)):$truthy(r1)?prefix1:$$($nesting,"File").$dirname(prefix1)},$Pathname_relative_path_from$25.$$arity=2),Opal.def($Pathname_entries$26,"$join",$Pathname_relative_path_from$25=function($a){try{var $$16,result=nil,args=Opal.slice.call(arguments,0,arguments.length);return $truthy(args["$empty?"]())?this:(result=args.$pop(),$truthy($$($nesting,"Pathname")["$==="](result))||(result=$$($nesting,"Pathname").$new(result)),$truthy(result["$absolute?"]())?result:($send(args,"reverse_each",[],(($$16=function(arg){null==$$16.$$s||$$16.$$s;if(null==arg&&(arg=nil),$truthy($$($nesting,"Pathname")["$==="](arg))||(arg=$$($nesting,"Pathname").$new(arg)),result=$rb_plus(arg,result),!$truthy(result["$absolute?"]()))return nil;Opal.ret(result)}).$$s=this,$$16.$$arity=1,$$16)),$rb_plus(this,result)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Pathname_relative_path_from$25.$$arity=-1),Opal.def($Pathname_entries$26,"$split",$Pathname_relative_path_from$25=function(){return[this.$dirname(),this.$basename()]},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$dirname",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$dirname(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$basename",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$basename(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$directory?",$Pathname_relative_path_from$25=function(){return $$($nesting,"File")["$directory?"](this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$extname",$Pathname_relative_path_from$25=function(){return $$($nesting,"File").$extname(this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$<=>",$Pathname_relative_path_from$25=function(other){return this.$path()["$<=>"](other.$path())},$Pathname_relative_path_from$25.$$arity=1),$alias($Pathname_entries$26,"eql?","=="),$alias($Pathname_entries$26,"===","=="),$alias($Pathname_entries$26,"to_str","to_path"),$alias($Pathname_entries$26,"to_s","to_path"),Opal.const_set($nesting[0],"SAME_PATHS",$truthy($$$($$($nesting,"File"),"FNM_SYSCASE")["$nonzero?"]())?$send($Pathname_entries$26,"proc",[],(($Pathname$23=function(a,b){null==$Pathname$23.$$s||$Pathname$23.$$s;return null==a&&(a=nil),null==b&&(b=nil),a.$casecmp(b)["$=="](0)}).$$s=$Pathname_entries$26,$Pathname$23.$$arity=2,$Pathname$23)):$send($Pathname_entries$26,"proc",[],(($Pathname$24=function(a,b){null==$Pathname$24.$$s||$Pathname$24.$$s;return null==a&&(a=nil),null==b&&(b=nil),a["$=="](b)}).$$s=$Pathname_entries$26,$Pathname$24.$$arity=2,$Pathname$24))),Opal.def($Pathname_entries$26,"$relative_path_from",$Pathname_relative_path_from$25=function(base_directory){var $b,$c,dest_prefix=nil,dest_names=nil,r=nil,basename=nil,base_prefix=nil,base_names=nil,$ret_or_6=nil,$ret_or_7=nil,relpath_names=nil,dest_directory=this.$cleanpath().$to_s();for(base_directory=base_directory.$cleanpath().$to_s(),dest_prefix=dest_directory,dest_names=[];$truthy(r=this.$chop_basename(dest_prefix));)$c=r,dest_prefix=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$truthy(basename["$!="]("."))&&dest_names.$unshift(basename);for(base_prefix=base_directory,base_names=[];$truthy(r=this.$chop_basename(base_prefix));)$c=r,base_prefix=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$truthy(basename["$!="]("."))&&base_names.$unshift(basename);for($truthy($$($nesting,"SAME_PATHS")["$[]"](dest_prefix,base_prefix))||this.$raise($$($nesting,"ArgumentError"),"different prefix: "+dest_prefix.$inspect()+" and "+base_directory.$inspect());$truthy($truthy($ret_or_6=$truthy($ret_or_7=dest_names["$empty?"]()["$!"]())?base_names["$empty?"]()["$!"]():$ret_or_7)?$$($nesting,"SAME_PATHS")["$[]"](dest_names.$first(),base_names.$first()):$ret_or_6);)dest_names.$shift(),base_names.$shift();return $truthy(base_names["$include?"](".."))&&this.$raise($$($nesting,"ArgumentError"),"base_directory has ..: "+base_directory.$inspect()),base_names.$fill(".."),relpath_names=$rb_plus(base_names,dest_names),$truthy(relpath_names["$empty?"]())?$$($nesting,"Pathname").$new("."):$$($nesting,"Pathname").$new($send($$($nesting,"File"),"join",Opal.to_a(relpath_names)))},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$entries",$Pathname_entries$26=function(){var $$27;return $send($$($nesting,"Dir").$entries(this.path),"map",[],(($$27=function(f){var self=null==$$27.$$s?this:$$27.$$s;return null==f&&(f=nil),self.$class().$new(f)}).$$s=this,$$27.$$arity=1,$$27))},$Pathname_entries$26.$$arity=0)}($nesting[0],$nesting),function($Kernel_Pathname$28,$parent_nesting){var $Kernel_Pathname$28=$module($Kernel_Pathname$28,"Kernel"),$nesting=[$Kernel_Pathname$28].concat($parent_nesting);return Opal.def($Kernel_Pathname$28,"$Pathname",$Kernel_Pathname$28=function(path){return $$($nesting,"Pathname").$new(path)},$Kernel_Pathname$28.$$arity=1),nil&&"Pathname"}($nesting[0],$nesting)},Opal.modules["opal/rewriters/break_finder"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias;return Opal.add_stubs(["$require"]),self.$require("opal/rewriter"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Rewriters")].concat($nesting);return function($base,self,$BreakFinder_stop_lookup$4){self=$klass($base,self,"BreakFinder"),[self].concat($BreakFinder_stop_lookup$4);return self.$$prototype.found_break=nil,Opal.def(self,"$initialize",$BreakFinder_stop_lookup$4=function(){return this.found_break=!1},$BreakFinder_stop_lookup$4.$$arity=0),Opal.def(self,"$found_break?",$BreakFinder_stop_lookup$4=function(){return this.found_break},$BreakFinder_stop_lookup$4.$$arity=0),Opal.def(self,"$on_break",$BreakFinder_stop_lookup$4=function(node){return this.found_break=!0,node},$BreakFinder_stop_lookup$4.$$arity=1),Opal.def(self,"$stop_lookup",$BreakFinder_stop_lookup$4=function(){return nil},$BreakFinder_stop_lookup$4.$$arity=1),$alias(self,"on_for","stop_lookup"),$alias(self,"on_while","stop_lookup"),$alias(self,"on_while_post","stop_lookup"),$alias(self,"on_until","stop_lookup"),$alias(self,"on_until_post","stop_lookup"),$alias(self,"on_block","stop_lookup")}($nesting[0],$$$($$$($$($nesting,"Opal"),"Rewriters"),"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/call"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs(["$require","$handle","$attr_reader","$freeze","$[]=","$-","$define_method","$to_proc","$include?","$type","$s","$handle_special","$record_method?","$<<","$method_calls","$compiler","$to_sym","$meth","$using_eval?","$compile_eval_var","$using_irb?","$compile_irb_var","$default_compile","$private","$iter","$new","$process","$found_break?","$splat?","$!","$empty?","$collect_refinements_temps","$scope","$invoke_using_refinement?","$compile_using_refined_send","$invoke_using_send?","$compile_using_send","$compile_simple_call_chain","$compile_break_catcher","$helper","$push","$compile_receiver","$compile_method_name","$compile_arguments","$compile_block_pass","$compile_refinements","$recv","$receiver_sexp","$expr","$arglist","$children","$map","$iter_has_break?","$unshift","$line","$method_jsid","$any?","$==","$recvr","$mid_to_jsid","$to_s","$with_temp","$intern","$irb?","$top?","$variable_like?","$eval?","$scope_variables","$nil?","$updated","$method","$arity","$[]","$each","$add_special","$inline_operators?","$operator_helpers","$fragment","$call","$resolve","$requires","$file","$dirname","$cleanpath","$join","$Pathname","$inspect","$class_scope?","$required_trees","$force_encoding","$encoding","$+","$handle_block_given_call","$def?","$mid","$accepts_using?","$count","$using_refinement","$first","$refinements_temp","$arity_check?","$defines_lambda","$push_nesting?","$!=","$length","$new_temp","$scope_locals","$source_location","$size","$last","$handle_part","$is_a?","$expand_path","$split","$dynamic_require_severity","$===","$error","$warning","$each_with_object","$pop"]),self.$require("set"),self.$require("pathname"),self.$require("opal/nodes/base"),self.$require("opal/rewriters/break_finder"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$CallNode_push_nesting$ques$51,$CallNode_using_refinement$42){var $CallNode_add_special$1,$CallNode_initialize$2,$CallNode_handle_special$31,$CallNode$32,$CallNode$34,$CallNode$35,$CallNode$36,$CallNode$37,$CallNode$38,$CallNode$39,$CallNode$40,$CallNode$41,$CallNode$43,$CallNode$44,$CallNode$45,$CallNode$47,$CallNode$48,$CallNode$49,$CallNode$50,$CallNode_push_nesting$ques$51=$klass($base,$CallNode_push_nesting$ques$51,"CallNode"),$nesting=[$CallNode_push_nesting$ques$51].concat($CallNode_using_refinement$42);return $CallNode_push_nesting$ques$51.$$prototype.sexp=$CallNode_push_nesting$ques$51.$$prototype.compiler=nil,$CallNode_push_nesting$ques$51.$handle("send"),$CallNode_push_nesting$ques$51.$attr_reader("recvr","meth","arglist","iter"),Opal.const_set($nesting[0],"SPECIALS",$hash2([],{})),Opal.const_set($nesting[0],"OPERATORS",$hash2(["+","-","*","/","<","<=",">",">="],{"+":"plus","-":"minus","*":"times","/":"divide","<":"lt","<=":"le",">":"gt",">=":"ge"}).$freeze()),Opal.defs($CallNode_push_nesting$ques$51,"$add_special",$CallNode_add_special$1=function(name,rhs){var $iter=$CallNode_add_special$1.$$p,handler=$iter||nil,lhs=nil;return $iter&&($CallNode_add_special$1.$$p=null),$iter&&($CallNode_add_special$1.$$p=null),null==rhs&&(rhs=$hash2([],{})),lhs=[name,rhs],$send($$($nesting,"SPECIALS"),"[]=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),$send(this,"define_method",["handle_"+name],handler.$to_proc())},$CallNode_add_special$1.$$arity=-2),Opal.def($CallNode_push_nesting$ques$51,"$initialize",$CallNode_initialize$2=function($a){var $b,rest,$zuper_ii,$c=$CallNode_initialize$2.$$p,args=nil,last_arg=nil,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($c&&($CallNode_initialize$2.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$CallNode_initialize$2,!1,!0),"initialize",$zuper,$c),$b=[].concat(Opal.to_a(this.sexp)),this.recvr=null==$b[0]?nil:$b[0],this.meth=null==$b[1]?nil:$b[1],args=$slice.call($b,2),$c=($c=($b=[].concat(Opal.to_a(args))).length-1)<0?0:$c,rest=$slice.call($b,0,$c),last_arg=null==$b[$c]?nil:$b[$c],$truthy($truthy($ret_or_1=last_arg)?["iter","block_pass"]["$include?"](last_arg.$type()):$ret_or_1)?(this.iter=last_arg,args=rest):this.iter=nil,this.arglist=$send(this,"s",["arglist"].concat(Opal.to_a(args)))},$CallNode_initialize$2.$$arity=-1),Opal.def($CallNode_push_nesting$ques$51,"$compile",$CallNode_using_refinement$42=function(){try{var $$4;return $send(this,"handle_special",[],(($$4=function(){var self=null==$$4.$$s?this:$$4.$$s;return $truthy(self["$record_method?"]())&&self.$compiler().$method_calls()["$<<"](self.$meth().$to_sym()),$truthy(self["$using_eval?"]())&&Opal.ret(self.$compile_eval_var()),$truthy(self["$using_irb?"]())&&Opal.ret(self.$compile_irb_var()),self.$default_compile()}).$$s=this,$$4.$$arity=0,$$4))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$CallNode_using_refinement$42.$$arity=0),$CallNode_push_nesting$ques$51.$private(),Opal.def($CallNode_push_nesting$ques$51,"$iter_has_break?",$CallNode_using_refinement$42=function(){var finder=nil;return!!$truthy(this.$iter())&&((finder=$$$($$$($$($nesting,"Opal"),"Rewriters"),"BreakFinder").$new()).$process(this.$iter()),finder["$found_break?"]())},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$invoke_using_send?",$CallNode_using_refinement$42=function(){var $ret_or_2;return $truthy($ret_or_2=this.$iter())?$ret_or_2:this["$splat?"]()},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$invoke_using_refinement?",$CallNode_using_refinement$42=function(){return this.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$default_compile",$CallNode_using_refinement$42=function(){return $truthy(this["$invoke_using_refinement?"]())?this.$compile_using_refined_send():$truthy(this["$invoke_using_send?"]())?this.$compile_using_send():this.$compile_simple_call_chain(),this.$compile_break_catcher()},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_using_send",$CallNode_using_refinement$42=function(){return this.$helper("send"),this.$push("$send("),this.$compile_receiver(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_using_refined_send",$CallNode_using_refinement$42=function(){return this.$helper("refined_send"),this.$push("$refined_send("),this.$compile_refinements(),this.$compile_receiver(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_receiver",$CallNode_using_refinement$42=function(){return this.$push(this.$recv(this.$receiver_sexp()))},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_method_name",$CallNode_using_refinement$42=function(){return this.$push(", '"+this.$meth()+"'")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_arguments",$CallNode_using_refinement$42=function(){return this.$push(", "),$truthy(this["$splat?"]())?this.$push(this.$expr(this.$arglist())):$truthy(this.$arglist().$children()["$empty?"]())?this.$push("[]"):this.$push("[",this.$expr(this.$arglist()),"]")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_block_pass",$CallNode_using_refinement$42=function(){return $truthy(this.$iter())?this.$push(", ",this.$expr(this.$iter())):nil},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_refinements",$CallNode_using_refinement$42=function(){var $$16,refinements=$send(this.$scope().$collect_refinements_temps(),"map",[],(($$16=function(i){var self=null==$$16.$$s?this:$$16.$$s;return null==i&&(i=nil),self.$s("js_tmp",i)}).$$s=this,$$16.$$arity=1,$$16));return this.$push(this.$expr($send(this,"s",["array"].concat(Opal.to_a(refinements)))),", ")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_break_catcher",$CallNode_using_refinement$42=function(){return $truthy(this["$iter_has_break?"]())?(this.$unshift("return "),this.$unshift("(function(){var $brk = Opal.new_brk(); try {"),this.$line("} catch (err) { if (err === $brk) { return err.$v } else { throw err } }})()")):nil},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_simple_call_chain",$CallNode_using_refinement$42=function(){return this.$push(this.$recv(this.$receiver_sexp()),this.$method_jsid(),"(",this.$expr(this.$arglist()),")")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$splat?",$CallNode_using_refinement$42=function(){var $$20;return $send(this.$arglist().$children(),"any?",[],(($$20=function(a){null==$$20.$$s||$$20.$$s;return null==a&&(a=nil),a.$type()["$=="]("splat")}).$$s=this,$$20.$$arity=1,$$20))},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$receiver_sexp",$CallNode_using_refinement$42=function(){var $ret_or_3;return $truthy($ret_or_3=this.$recvr())?$ret_or_3:this.$s("self")},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$method_jsid",$CallNode_using_refinement$42=function(){return this.$mid_to_jsid(this.$meth().$to_s())},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$record_method?",$CallNode_using_refinement$42=function(){return!0},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_irb_var",$CallNode_using_refinement$42=function(){var $$25;return $send(this,"with_temp",[],(($$25=function(tmp){var lvar,call,self=null==$$25.$$s?this:$$25.$$s;return null==tmp&&(tmp=nil),lvar=self.$meth(),call=self.$s("send",self.$s("self"),self.$meth().$intern(),self.$s("arglist")),self.$push("(("+tmp+" = Opal.irb_vars."+lvar+") == null ? ",self.$expr(call)," : "+tmp+")")}).$$s=this,$$25.$$arity=1,$$25))},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$compile_eval_var",$CallNode_using_refinement$42=function(){return this.$push(this.$meth().$to_s())},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$using_irb?",$CallNode_using_refinement$42=function(){var $ret_or_4,self=this,$ret_or_5=nil;return $truthy($ret_or_4=$truthy($ret_or_5=self.compiler["$irb?"]())?self.$scope()["$top?"]():$ret_or_5)?self["$variable_like?"]():$ret_or_4},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$using_eval?",$CallNode_using_refinement$42=function(){var $ret_or_6,self=this,$ret_or_7=nil;return $truthy($ret_or_6=$truthy($ret_or_7=self.compiler["$eval?"]())?self.$scope()["$top?"]():$ret_or_7)?self.compiler.$scope_variables()["$include?"](self.$meth()):$ret_or_6},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$variable_like?",$CallNode_using_refinement$42=function(){var $ret_or_8,self=this,$ret_or_9=nil;return $truthy($ret_or_8=$truthy($ret_or_9=self.$arglist()["$=="](self.$s("arglist")))?self.$recvr()["$nil?"]():$ret_or_9)?self.$iter()["$nil?"]():$ret_or_8},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$sexp_with_arglist",$CallNode_using_refinement$42=function(){return this.sexp.$updated(nil,[this.$recvr(),this.$meth(),this.$arglist()])},$CallNode_using_refinement$42.$$arity=0),Opal.def($CallNode_push_nesting$ques$51,"$handle_special",$CallNode_handle_special$31=function(){var $iter=$CallNode_handle_special$31.$$p,compile_default=$iter||nil,method=nil;return $iter&&($CallNode_handle_special$31.$$p=null),$iter&&($CallNode_handle_special$31.$$p=null),$truthy($$($nesting,"SPECIALS")["$include?"](this.$meth()))?(method=this.$method("handle_"+this.$meth())).$arity()["$=="](1)?method["$[]"](compile_default):method["$[]"]():Opal.yieldX(compile_default,[])},$CallNode_handle_special$31.$$arity=0),$send($$($nesting,"OPERATORS"),"each",[],(($CallNode$32=function(operator,name){var $$33,self=null==$CallNode$32.$$s?this:$CallNode$32.$$s;return null==operator&&(operator=nil),null==name&&(name=nil),$send(self,"add_special",[operator.$to_sym()],(($$33=function(compile_default){var $a,lhs,rhs,self=null==$$33.$$s?this:$$33.$$s;return null==compile_default&&(compile_default=nil),$truthy(self.$compiler()["$inline_operators?"]())?($truthy(self["$record_method?"]())&&self.$compiler().$method_calls()["$<<"](operator.$to_sym()),self.$compiler().$operator_helpers()["$<<"](operator.$to_sym()),lhs=($a=[self.$expr(self.$recvr()),self.$expr(self.$arglist())])[0],rhs=$a[1],self.$push(self.$fragment("$rb_"+name+"(")),self.$push(lhs),self.$push(self.$fragment(", ")),self.$push(rhs),self.$push(self.$fragment(")"))):compile_default.$call()}).$$s=self,$$33.$$arity=1,$$33))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$32.$$arity=2,$CallNode$32)),$send($CallNode_push_nesting$ques$51,"add_special",["require"],(($CallNode$34=function(compile_default){var self=null==$CallNode$34.$$s?this:$CallNode$34.$$s,str=nil;return null==compile_default&&(compile_default=nil),str=$$($nesting,"DependencyResolver").$new(self.$compiler(),self.$arglist().$children()["$[]"](0)).$resolve(),$truthy(str["$nil?"]())||self.$compiler().$requires()["$<<"](str),compile_default.$call()}).$$s=$CallNode_push_nesting$ques$51,$CallNode$34.$$arity=1,$CallNode$34)),$send($CallNode_push_nesting$ques$51,"add_special",["require_relative"],(($CallNode$35=function(){var dir,self=null==$CallNode$35.$$s?this:$CallNode$35.$$s,arg=nil,file=nil,arg=self.$arglist().$children()["$[]"](0),file=self.$compiler().$file();return arg.$type()["$=="]("str")&&(dir=$$($nesting,"File").$dirname(file),self.$compiler().$requires()["$<<"](self.$Pathname(dir).$join(arg.$children()["$[]"](0)).$cleanpath().$to_s())),self.$push(self.$fragment("self.$require("+file.$inspect()+"+ '/../' + ")),self.$push(self.$process(self.$arglist())),self.$push(self.$fragment(")"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$35.$$arity=0,$CallNode$35)),$send($CallNode_push_nesting$ques$51,"add_special",["autoload"],(($CallNode$36=function(compile_default){var self=null==$CallNode$36.$$s?this:$CallNode$36.$$s,str=nil;return null==compile_default&&(compile_default=nil),$truthy(self.$scope()["$class_scope?"]())?(str=$$($nesting,"DependencyResolver").$new(self.$compiler(),self.$arglist().$children()["$[]"](1)).$resolve(),$truthy(str["$nil?"]())||self.$compiler().$requires()["$<<"](str),compile_default.$call()):nil}).$$s=$CallNode_push_nesting$ques$51,$CallNode$36.$$arity=1,$CallNode$36)),$send($CallNode_push_nesting$ques$51,"add_special",["require_tree"],(($CallNode$37=function(compile_default){var $a,dir,self=null==$CallNode$37.$$s?this:$CallNode$37.$$s,lhs=nil,rhs=nil,relative_path=nil,full_path=nil;return null==compile_default&&(compile_default=nil),lhs=null==($a=[].concat(Opal.to_a(self.$arglist().$children())))[0]?nil:$a[0],rhs=$slice.call($a,1),lhs.$type()["$=="]("str")&&(relative_path=lhs.$children()["$[]"](0),self.$compiler().$required_trees()["$<<"](relative_path),dir=$$($nesting,"File").$dirname(self.$compiler().$file()),(full_path=self.$Pathname(dir).$join(relative_path).$cleanpath().$to_s()).$force_encoding(relative_path.$encoding()),lhs=lhs.$updated(nil,[full_path])),self.arglist=self.$arglist().$updated(nil,(rhs=rhs,"number"==typeof(lhs=[lhs])&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))),compile_default.$call()}).$$s=$CallNode_push_nesting$ques$51,$CallNode$37.$$arity=1,$CallNode$37)),$send($CallNode_push_nesting$ques$51,"add_special",["block_given?"],(($CallNode$38=function(){var self=null==$CallNode$38.$$s?this:$CallNode$38.$$s;return null==self.sexp&&(self.sexp=nil),self.$push(self.$compiler().$handle_block_given_call(self.sexp))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$38.$$arity=0,$CallNode$38)),$send($CallNode_push_nesting$ques$51,"add_special",["__callee__"],(($CallNode$39=function(){var self=null==$CallNode$39.$$s?this:$CallNode$39.$$s;return $truthy(self.$scope()["$def?"]())?self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())):self.$push(self.$fragment("nil"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$39.$$arity=0,$CallNode$39)),$send($CallNode_push_nesting$ques$51,"add_special",["__method__"],(($CallNode$40=function(){var self=null==$CallNode$40.$$s?this:$CallNode$40.$$s;return $truthy(self.$scope()["$def?"]())?self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())):self.$push(self.$fragment("nil"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$40.$$arity=0,$CallNode$40)),$send($CallNode_push_nesting$ques$51,"add_special",["using"],(($CallNode$41=function(compile_default){var self=null==$CallNode$41.$$s?this:$CallNode$41.$$s,$ret_or_10=nil;return null==compile_default&&(compile_default=nil),$truthy($truthy($ret_or_10=self.$scope()["$accepts_using?"]())?self.$arglist().$children().$count()["$=="](1):$ret_or_10)?self.$using_refinement(self.$arglist().$children().$first()):compile_default.$call()}).$$s=$CallNode_push_nesting$ques$51,$CallNode$41.$$arity=1,$CallNode$41)),Opal.def($CallNode_push_nesting$ques$51,"$using_refinement",$CallNode_using_refinement$42=function(arg){var $a=[].concat(Opal.to_a(this.$scope().$refinements_temp())),prev=null==$a[0]?nil:$a[0],curr=null==$a[1]?nil:$a[1];return $truthy(prev)?this.$push("("+curr+" = "+prev+".slice(), "+curr+".push(",this.$expr(arg),"), self)"):this.$push("("+curr+" = [",this.$expr(arg),"], self)")},$CallNode_using_refinement$42.$$arity=1),$send($CallNode_push_nesting$ques$51,"add_special",["debugger"],(($CallNode$43=function(){var self=null==$CallNode$43.$$s?this:$CallNode$43.$$s;return self.$push(self.$fragment("debugger"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$43.$$arity=0,$CallNode$43)),$send($CallNode_push_nesting$ques$51,"add_special",["__OPAL_COMPILER_CONFIG__"],(($CallNode$44=function(){var self=null==$CallNode$44.$$s?this:$CallNode$44.$$s;return self.$push(self.$fragment("Opal.hash({ arity_check: "+self.$compiler()["$arity_check?"]()+" })"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$44.$$arity=0,$CallNode$44)),$send($CallNode_push_nesting$ques$51,"add_special",["lambda"],(($CallNode$45=function(compile_default){var $$46,self=null==$CallNode$45.$$s?this:$CallNode$45.$$s;return null==compile_default&&(compile_default=nil),$send(self.$scope(),"defines_lambda",[],(($$46=function(){null==$$46.$$s||$$46.$$s;return compile_default.$call()}).$$s=self,$$46.$$arity=0,$$46))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$45.$$arity=1,$CallNode$45)),$send($CallNode_push_nesting$ques$51,"add_special",["nesting"],(($CallNode$47=function(compile_default){var push_nesting,self=null==$CallNode$47.$$s?this:$CallNode$47.$$s;return null==compile_default&&(compile_default=nil),push_nesting=self["$push_nesting?"](),$truthy(push_nesting)&&self.$push("(Opal.Module.$$nesting = $nesting, "),compile_default.$call(),$truthy(push_nesting)?self.$push(")"):nil}).$$s=$CallNode_push_nesting$ques$51,$CallNode$47.$$arity=1,$CallNode$47)),$send($CallNode_push_nesting$ques$51,"add_special",["constants"],(($CallNode$48=function(compile_default){var push_nesting,self=null==$CallNode$48.$$s?this:$CallNode$48.$$s;return null==compile_default&&(compile_default=nil),push_nesting=self["$push_nesting?"](),$truthy(push_nesting)&&self.$push("(Opal.Module.$$nesting = $nesting, "),compile_default.$call(),$truthy(push_nesting)?self.$push(")"):nil}).$$s=$CallNode_push_nesting$ques$51,$CallNode$48.$$arity=1,$CallNode$48)),$send($CallNode_push_nesting$ques$51,"add_special",["eval"],(($CallNode$49=function(compile_default){var temp,scope_variables,self=null==$CallNode$49.$$s?this:$CallNode$49.$$s,$ret_or_11=nil;return null==compile_default&&(compile_default=nil),$truthy($truthy($ret_or_11=self.$arglist().$children().$length()["$!="](1))?$ret_or_11:[self.$s("self"),nil]["$include?"](self.$recvr())["$!"]())?compile_default.$call():(temp=self.$scope().$new_temp(),scope_variables=$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),self.$push("("+temp+" = ",self.$expr(self.$arglist())),self.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+temp),self.$push(", {scope_variables: ",scope_variables),self.$push(", arity_check: "+self.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),self.$push("self.$eval("+temp+"))"))}).$$s=$CallNode_push_nesting$ques$51,$CallNode$49.$$arity=1,$CallNode$49)),$send($CallNode_push_nesting$ques$51,"add_special",["binding"],(($CallNode$50=function(){var self=null==$CallNode$50.$$s?this:$CallNode$50.$$s;return self.$push("Opal.Binding.$new("),self.$push(" function($code, $value) {"),self.$push(" if (typeof $value === 'undefined') {"),self.$push(" return eval($code);"),self.$push(" }"),self.$push(" else {"),self.$push(" return eval($code + ' = $value');"),self.$push(" }"),self.$push(" },"),self.$push(" ",$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),self.$push(" self,"),self.$push(" ",self.$source_location()),self.$push(")")}).$$s=$CallNode_push_nesting$ques$51,$CallNode$50.$$arity=0,$CallNode$50)),Opal.def($CallNode_push_nesting$ques$51,"$push_nesting?",$CallNode_push_nesting$ques$51=function(){var $ret_or_12,$ret_or_13,$ret_or_14,recv=nil,recv=this.$children().$first();return $truthy($ret_or_12=this.$children().$size()["$=="](2))?$truthy($ret_or_13=recv["$nil?"]())?$ret_or_13:$truthy($ret_or_14=recv.$type()["$=="]("const"))?recv.$children().$last()["$=="]("Module"):$ret_or_14:$ret_or_12},$CallNode_push_nesting$ques$51.$$arity=0),function($DependencyResolver_expand_path$56,$DependencyResolver_handle_part$54){$DependencyResolver_expand_path$56=$klass($DependencyResolver_expand_path$56,null,"DependencyResolver"),[$DependencyResolver_expand_path$56].concat($DependencyResolver_handle_part$54);return $DependencyResolver_expand_path$56.$$prototype.sexp=$DependencyResolver_expand_path$56.$$prototype.compiler=nil,Opal.def($DependencyResolver_expand_path$56,"$initialize",$DependencyResolver_handle_part$54=function(compiler,sexp){return this.compiler=compiler,this.sexp=sexp},$DependencyResolver_handle_part$54.$$arity=2),Opal.def($DependencyResolver_expand_path$56,"$resolve",$DependencyResolver_handle_part$54=function(){return this.$handle_part(this.sexp)},$DependencyResolver_handle_part$54.$$arity=0),Opal.def($DependencyResolver_expand_path$56,"$handle_part",$DependencyResolver_handle_part$54=function($a){var $$55,args,msg,self=this,type=nil,recv=nil,meth=nil,parts=nil,$ret_or_15=nil,$ret_or_16=nil,$case=nil;if((type=$a.$type())["$=="]("str"))return $a.$children()["$[]"](0);if(type["$=="]("send")&&($a=$a.$children(),$a=Opal.to_ary($a),recv=null==$a[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),parts=$send(args,"map",[],(($$55=function(s){var self=null==$$55.$$s?this:$$55.$$s;return null==s&&(s=nil),self.$handle_part(s)}).$$s=self,$$55.$$arity=1,$$55)),$truthy($truthy($ret_or_15=$truthy($ret_or_16=recv["$is_a?"]($$$($$$($$$("::","Opal"),"AST"),"Node")))?recv.$type()["$=="]("const"):$ret_or_16)?recv.$children().$last()["$=="]("File"):$ret_or_15))){if(meth["$=="]("expand_path"))return $send(self,"expand_path",Opal.to_a(parts));if(meth["$=="]("join"))return self.$expand_path(parts.$join("/"));if(meth["$=="]("dirname"))return self.$expand_path(parts["$[]"](0).$split("/")["$[]"]($range(0,-1,!0)).$join("/"))}return msg="Cannot handle dynamic require",$case=self.compiler.$dynamic_require_severity(),"error"["$==="]($case)?self.compiler.$error(msg,self.sexp.$line()):"warning"["$==="]($case)?self.compiler.$warning(msg,self.sexp.$line()):nil},$DependencyResolver_handle_part$54.$$arity=1),Opal.def($DependencyResolver_expand_path$56,"$expand_path",$DependencyResolver_expand_path$56=function(path,base){var $$57;return null==base&&(base=""),$send((base+"/"+path).$split("/"),"each_with_object",[[]],(($$57=function(part,p){null==$$57.$$s||$$57.$$s;return null==part&&(part=nil),null==p&&(p=nil),part["$=="]("")?nil:part["$=="]("..")?p.$pop():p["$<<"](part)}).$$s=this,$$57.$$arity=2,$$57)).$join("/")},$DependencyResolver_expand_path$56.$$arity=-2),nil&&"expand_path"}($nesting[0],$nesting)}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/csend"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$helper","$conditional_send","$recv","$receiver_sexp","$push","$compile_method_name","$compile_arguments","$compile_block_pass"]),self.$require("opal/nodes/call"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$CSendNode_default_compile$1,$parent_nesting){$CSendNode_default_compile$1=$klass($base,$CSendNode_default_compile$1,"CSendNode"),[$CSendNode_default_compile$1].concat($parent_nesting);return $CSendNode_default_compile$1.$handle("csend"),Opal.def($CSendNode_default_compile$1,"$default_compile",$CSendNode_default_compile$1=function(){var $$2;return this.$helper("send"),$send(this,"conditional_send",[this.$recv(this.$receiver_sexp())],(($$2=function(receiver_temp){var self=null==$$2.$$s?this:$$2.$$s;return null==receiver_temp&&(receiver_temp=nil),self.$push("$send(",receiver_temp),self.$compile_method_name(),self.$compile_arguments(),self.$compile_block_pass(),self.$push(")")}).$$s=this,$$2.$$arity=1,$$2))},$CSendNode_default_compile$1.$$arity=0),nil&&"default_compile"}($nesting[0],$$($nesting,"CallNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/call_special"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$push","$recv","$recvr","$expr","$property","$value","$<<","$default_compile","$meth","$receiver_sexp","$method_jsid","$compile_arguments","$iter","$s","$lhs","$rhs","$process"]),self.$require("opal/nodes/base"),self.$require("opal/nodes/call"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$JsAttrNode_compile$1,$parent_nesting){[$JsAttrNode_compile$1=$klass($base,$JsAttrNode_compile$1,"JsAttrNode")].concat($parent_nesting),$JsAttrNode_compile$1.$handle("jsattr"),$JsAttrNode_compile$1.$children("recvr","property"),Opal.def($JsAttrNode_compile$1,"$compile",$JsAttrNode_compile$1=function(){return this.$push(this.$recv(this.$recvr()),"[",this.$expr(this.$property()),"]")},$JsAttrNode_compile$1.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$JsAttrAsgnNode_compile$2,$parent_nesting){[$JsAttrAsgnNode_compile$2=$klass($base,$JsAttrAsgnNode_compile$2,"JsAttrAsgnNode")].concat($parent_nesting),$JsAttrAsgnNode_compile$2.$handle("jsattrasgn"),$JsAttrAsgnNode_compile$2.$children("recvr","property","value"),Opal.def($JsAttrAsgnNode_compile$2,"$compile",$JsAttrAsgnNode_compile$2=function(){return this.$push(this.$recv(this.$recvr()),"[",this.$expr(this.$property()),"] = ",this.$expr(this.$value()))},$JsAttrAsgnNode_compile$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$JsCallNode_compile_using_send$6,$JsCallNode_method_jsid$5){var $JsCallNode_initialize$3;[$JsCallNode_compile_using_send$6=$klass($base,$JsCallNode_compile_using_send$6,"JsCallNode")].concat($JsCallNode_method_jsid$5),$JsCallNode_compile_using_send$6.$$prototype.iter=$JsCallNode_compile_using_send$6.$$prototype.arglist=nil,$JsCallNode_compile_using_send$6.$handle("jscall"),Opal.def($JsCallNode_compile_using_send$6,"$initialize",$JsCallNode_initialize$3=function($a){var $zuper_ii,$iter=$JsCallNode_initialize$3.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($JsCallNode_initialize$3.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$JsCallNode_initialize$3,!1,!0),"initialize",$zuper,$iter),$truthy(this.iter)&&(this.arglist=this.arglist["$<<"](this.iter)),this.iter=nil},$JsCallNode_initialize$3.$$arity=-1),Opal.def($JsCallNode_compile_using_send$6,"$compile",$JsCallNode_method_jsid$5=function(){return this.$default_compile()},$JsCallNode_method_jsid$5.$$arity=0),Opal.def($JsCallNode_compile_using_send$6,"$method_jsid",$JsCallNode_method_jsid$5=function(){return"."+this.$meth()},$JsCallNode_method_jsid$5.$$arity=0),Opal.def($JsCallNode_compile_using_send$6,"$compile_using_send",$JsCallNode_compile_using_send$6=function(){return this.$push(this.$recv(this.$receiver_sexp()),this.$method_jsid(),".apply(null"),this.$compile_arguments(),$truthy(this.$iter())&&this.$push(".concat(",this.$expr(this.$iter()),")"),this.$push(")")},$JsCallNode_compile_using_send$6.$$arity=0)}($nesting[0],$$($nesting,"CallNode"),$nesting),function($base,$Match3Node_compile$7,$parent_nesting){$Match3Node_compile$7=$klass($base,$Match3Node_compile$7,"Match3Node"),[$Match3Node_compile$7].concat($parent_nesting);return $Match3Node_compile$7.$$prototype.level=nil,$Match3Node_compile$7.$handle("match_with_lvasgn"),$Match3Node_compile$7.$children("lhs","rhs"),Opal.def($Match3Node_compile$7,"$compile",$Match3Node_compile$7=function(){var sexp=this.$s("send",this.$lhs(),"=~",this.$rhs());return this.$push(this.$process(sexp,this.level))},$Match3Node_compile$7.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/scope"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$attr_accessor","$attr_reader","$indent","$scope","$compiler","$scope=","$-","$==","$top?","$top_scope","$parent","$iter?","$!","$class?","$dup","$push","$map","$ivars","$gvars","$parser_indent","$empty?","$join","$+","$fragment","$def_in_class?","$add_proto_ivar","$include?","$<<","$has_local?","$|","$scope_locals","$has_temp?","$pop","$next_temp","$loop","$succ","$uses_block!","$identify!","$compact","$name","$scope_name","$mid","$unique_temp","$add_scope_temp","$def?","$lambda?","$type","$nil?","$rescue_else_sexp","$last","$class","$collect_refinements_temps","$add_scope_local","$new_refinements_temp"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ScopeNode_refinements_temp$54,$ScopeNode_new_refinements_temp$53){var $ScopeNode_initialize$1,$ScopeNode_in_scope$2,$ScopeNode_defines_lambda$14,$ScopeNode_in_rescue$44,$ScopeNode_in_resbody$46,$ScopeNode_in_ensure$48,$ScopeNode_refinements_temp$54=$klass($base,$ScopeNode_refinements_temp$54,"ScopeNode"),$nesting=[$ScopeNode_refinements_temp$54].concat($ScopeNode_new_refinements_temp$53);return $ScopeNode_refinements_temp$54.$$prototype.type=$ScopeNode_refinements_temp$54.$$prototype.is_lambda=$ScopeNode_refinements_temp$54.$$prototype.lambda_definition=$ScopeNode_refinements_temp$54.$$prototype.defs=$ScopeNode_refinements_temp$54.$$prototype.parent=$ScopeNode_refinements_temp$54.$$prototype.temps=$ScopeNode_refinements_temp$54.$$prototype.locals=$ScopeNode_refinements_temp$54.$$prototype.compiler=$ScopeNode_refinements_temp$54.$$prototype.proto_ivars=$ScopeNode_refinements_temp$54.$$prototype.ivars=$ScopeNode_refinements_temp$54.$$prototype.gvars=$ScopeNode_refinements_temp$54.$$prototype.args=$ScopeNode_refinements_temp$54.$$prototype.queue=$ScopeNode_refinements_temp$54.$$prototype.while_stack=$ScopeNode_refinements_temp$54.$$prototype.identity=$ScopeNode_refinements_temp$54.$$prototype.uses_block=$ScopeNode_refinements_temp$54.$$prototype.rescues=$ScopeNode_refinements_temp$54.$$prototype.in_resbody=$ScopeNode_refinements_temp$54.$$prototype.in_ensure=$ScopeNode_refinements_temp$54.$$prototype.next_retry_id=$ScopeNode_refinements_temp$54.$$prototype.refinements_temp=nil,$ScopeNode_refinements_temp$54.$attr_accessor("parent"),$ScopeNode_refinements_temp$54.$attr_accessor("name"),$ScopeNode_refinements_temp$54.$attr_accessor("block_name"),$ScopeNode_refinements_temp$54.$attr_reader("scope_name"),$ScopeNode_refinements_temp$54.$attr_reader("locals"),$ScopeNode_refinements_temp$54.$attr_reader("ivars"),$ScopeNode_refinements_temp$54.$attr_reader("gvars"),$ScopeNode_refinements_temp$54.$attr_accessor("mid"),$ScopeNode_refinements_temp$54.$attr_accessor("defs"),$ScopeNode_refinements_temp$54.$attr_reader("methods"),$ScopeNode_refinements_temp$54.$attr_accessor("uses_super"),$ScopeNode_refinements_temp$54.$attr_accessor("uses_zuper"),$ScopeNode_refinements_temp$54.$attr_accessor("catch_return","has_break","has_retry"),$ScopeNode_refinements_temp$54.$attr_accessor("rescue_else_sexp"),Opal.def($ScopeNode_refinements_temp$54,"$initialize",$ScopeNode_initialize$1=function($a){var $zuper_ii,$iter=$ScopeNode_initialize$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($ScopeNode_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$ScopeNode_initialize$1,!1,!0),"initialize",$zuper,$iter),this.locals=[],this.temps=[],this.args=[],this.ivars=[],this.gvars=[],this.parent=nil,this.queue=[],this.unique="a",this.while_stack=[],this.identity=nil,this.defs=nil,this.methods=[],this.uses_block=!1,this.in_ensure=!1,this.proto_ivars=[]},$ScopeNode_initialize$1.$$arity=-1),Opal.def($ScopeNode_refinements_temp$54,"$in_scope",$ScopeNode_in_scope$2=function(){var $$3,$iter=$ScopeNode_in_scope$2.$$p,$yield=$iter||nil;return $iter&&($ScopeNode_in_scope$2.$$p=null),$send(this,"indent",[],(($$3=function(){var $writer,self=null==$$3.$$s?this:$$3.$$s;return null==self.parent&&(self.parent=nil),self.parent=self.$compiler().$scope(),$writer=[self],$send(self.$compiler(),"scope=",Opal.to_a($writer)),$rb_minus($writer.length,1),Opal.yield1($yield,self),$writer=[self.parent],$send(self.$compiler(),"scope=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$3.$$arity=0,$$3))},$ScopeNode_in_scope$2.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$class_scope?",$ScopeNode_new_refinements_temp$53=function(){var $ret_or_1;return $truthy($ret_or_1=this.type["$=="]("class"))?$ret_or_1:this.type["$=="]("module")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$class?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("class")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$module?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("module")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$sclass?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("sclass")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$top?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("top")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$top_scope",$ScopeNode_new_refinements_temp$53=function(){return $truthy(this["$top?"]())?this:this.$parent().$top_scope()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$iter?",$ScopeNode_new_refinements_temp$53=function(){return this.type["$=="]("iter")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$def?",$ScopeNode_new_refinements_temp$53=function(){var $ret_or_2;return $truthy($ret_or_2=this.type["$=="]("def"))?$ret_or_2:this.type["$=="]("defs")},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$lambda?",$ScopeNode_new_refinements_temp$53=function(){var $ret_or_3;return $truthy($ret_or_3=this["$iter?"]())?this.is_lambda:$ret_or_3},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$is_lambda!",$ScopeNode_new_refinements_temp$53=function(){return this.is_lambda=!0},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$defines_lambda",$ScopeNode_defines_lambda$14=function(){var $iter=$ScopeNode_defines_lambda$14.$$p,$yield=$iter||nil;return $iter&&($ScopeNode_defines_lambda$14.$$p=null),this.lambda_definition=!0,Opal.yieldX($yield,[]),this.lambda_definition=!1},$ScopeNode_defines_lambda$14.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$lambda_definition?",$ScopeNode_new_refinements_temp$53=function(){return this.lambda_definition},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$def_in_class?",$ScopeNode_new_refinements_temp$53=function(){var $ret_or_4,self=this,$ret_or_5=nil,$ret_or_6=nil;return $truthy($ret_or_4=$truthy($ret_or_5=$truthy($ret_or_6=self.defs["$!"]())?self.type["$=="]("def"):$ret_or_6)?self.parent:$ret_or_5)?self.parent["$class?"]():$ret_or_4},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$to_vars",$ScopeNode_new_refinements_temp$53=function(){var $$18,$$19,$$20,$$21,indent,self=this,vars=nil,iv=nil,gv=nil,str=nil,$ret_or_7=nil,result=nil,vars=self.temps.$dup();return $send(vars,"push",Opal.to_a($send(self.locals,"map",[],(($$18=function(l){null==$$18.$$s||$$18.$$s;return null==l&&(l=nil),l+" = nil"}).$$s=self,$$18.$$arity=1,$$18)))),iv=$send(self.$ivars(),"map",[],(($$19=function(ivar){null==$$19.$$s||$$19.$$s;return null==ivar&&(ivar=nil),"if (self"+ivar+" == null) self"+ivar+" = nil;\n"}).$$s=self,$$19.$$arity=1,$$19)),gv=$send(self.$gvars(),"map",[],(($$20=function(gvar){null==$$20.$$s||$$20.$$s;return null==gvar&&(gvar=nil),"if ($gvars"+gvar+" == null) $gvars"+gvar+" = nil;\n"}).$$s=self,$$20.$$arity=1,$$20)),indent=self.compiler.$parser_indent(),str=$truthy(vars["$empty?"]())?"":"var "+vars.$join(", ")+";\n",$truthy(self.$ivars()["$empty?"]())||(str=$rb_plus(str,""+indent+iv.$join(indent))),$truthy(self.$gvars()["$empty?"]())||(str=$rb_plus(str,""+indent+gv.$join(indent))),result=$truthy($truthy($ret_or_7=self["$class?"]())?self.proto_ivars["$empty?"]()["$!"]():$ret_or_7)?str+"\n"+indent+$send(self.proto_ivars,"map",[],(($$21=function(i){null==$$21.$$s||$$21.$$s;return null==i&&(i=nil),"self.$$prototype"+i}).$$s=self,$$21.$$arity=1,$$21)).$join(" = ")+" = nil;":str,self.$fragment(result)},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$add_scope_ivar",$ScopeNode_new_refinements_temp$53=function(ivar){return $truthy(this["$def_in_class?"]())?this.parent.$add_proto_ivar(ivar):$truthy(this.ivars["$include?"](ivar))?nil:this.ivars["$<<"](ivar)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$add_scope_gvar",$ScopeNode_new_refinements_temp$53=function(gvar){return $truthy(this.gvars["$include?"](gvar))?nil:this.gvars["$<<"](gvar)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$add_proto_ivar",$ScopeNode_new_refinements_temp$53=function(ivar){return $truthy(this.proto_ivars["$include?"](ivar))?nil:this.proto_ivars["$<<"](ivar)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$add_arg",$ScopeNode_new_refinements_temp$53=function(arg){return $truthy(this.args["$include?"](arg))||this.args["$<<"](arg),arg},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$add_scope_local",$ScopeNode_new_refinements_temp$53=function(local){return $truthy(this["$has_local?"](local))?nil:this.locals["$<<"](local)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$has_local?",$ScopeNode_new_refinements_temp$53=function(local){var self=this,$ret_or_8=nil,$ret_or_9=nil,$ret_or_10=nil;return!!$truthy($truthy($ret_or_8=$truthy($ret_or_9=self.locals["$include?"](local))?$ret_or_9:self.args["$include?"](local))?$ret_or_8:self.temps["$include?"](local))||!!$truthy($truthy($ret_or_10=self.parent)?self.type["$=="]("iter"):$ret_or_10)&&self.parent["$has_local?"](local)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$scope_locals",$ScopeNode_new_refinements_temp$53=function(){var self=this,$ret_or_11=nil;return self.locals["$|"](self.args)["$|"]($truthy($truthy($ret_or_11=self.parent)?self.type["$=="]("iter"):$ret_or_11)?self.parent.$scope_locals():[])},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$add_scope_temp",$ScopeNode_new_refinements_temp$53=function(tmp){return $truthy(this["$has_temp?"](tmp))?nil:this.temps.$push(tmp)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$has_temp?",$ScopeNode_new_refinements_temp$53=function(tmp){return this.temps["$include?"](tmp)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$new_temp",$ScopeNode_new_refinements_temp$53=function(){var tmp;return $truthy(this.queue["$empty?"]())?(tmp=this.$next_temp(),this.temps["$<<"](tmp),tmp):this.queue.$pop()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$next_temp",$ScopeNode_new_refinements_temp$53=function(){var $$33,self=this,tmp=nil,tmp=nil;return function(){var $brk=Opal.new_brk();try{$send(self,"loop",[],(($$33=function(){var self=null==$$33.$$s?this:$$33.$$s;if(null==self.unique&&(self.unique=nil),tmp="$"+self.unique,self.unique=self.unique.$succ(),$truthy(self["$has_local?"](tmp)))return nil;Opal.brk(nil,$brk)}).$$s=self,$$33.$$brk=$brk,$$33.$$arity=0,$$33))}catch(err){if(err===$brk)return err.$v;throw err}}(),tmp},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$queue_temp",$ScopeNode_new_refinements_temp$53=function(name){return this.queue["$<<"](name)},$ScopeNode_new_refinements_temp$53.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$push_while",$ScopeNode_new_refinements_temp$53=function(){var info=$hash2([],{});return this.while_stack.$push(info),info},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$pop_while",$ScopeNode_new_refinements_temp$53=function(){return this.while_stack.$pop()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_while?",$ScopeNode_new_refinements_temp$53=function(){return this.while_stack["$empty?"]()["$!"]()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$uses_block!",$ScopeNode_new_refinements_temp$53=function(){var self=this,$ret_or_12=nil;return $truthy($truthy($ret_or_12=self.type["$=="]("iter"))?self.parent:$ret_or_12)?self.parent["$uses_block!"]():(self.uses_block=!0,self["$identify!"]())},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$identify!",$ScopeNode_new_refinements_temp$53=function(name){var self=this,$ret_or_13=nil,$ret_or_14=nil,$ret_or_15=nil;return null==name&&(name=nil),$truthy(self.identity)||(name=$truthy($ret_or_13=name)?$ret_or_13:[$truthy($ret_or_14=self.$parent())?$truthy($ret_or_15=self.$parent().$name())?$ret_or_15:self.$parent().$scope_name():$ret_or_14,self.$mid()].$compact().$join("_"),self.identity=self.compiler.$unique_temp(name),$truthy(self.parent)&&self.parent.$add_scope_temp(self.identity)),self.identity},$ScopeNode_new_refinements_temp$53.$$arity=-1),$ScopeNode_refinements_temp$54.$attr_reader("identity"),Opal.def($ScopeNode_refinements_temp$54,"$find_parent_def",$ScopeNode_new_refinements_temp$53=function(){for(var scope=nil,$ret_or_16=nil,scope=this;$truthy(scope=scope.$parent());)if($truthy($truthy($ret_or_16=scope["$def?"]())?$ret_or_16:scope["$lambda?"]()))return scope;return nil},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$super_chain",$ScopeNode_new_refinements_temp$53=function(){for(var chain=nil,scope=nil,defn=nil,mid=nil,$a=[[],this,"null","null"],chain=$a[0],scope=$a[1],defn=$a[2],mid=$a[3];$truthy(scope);){if(!scope.$type()["$=="]("iter")){if($truthy(["def","defs"]["$include?"](scope.$type()))){defn=scope["$identify!"](),mid="'"+scope.$mid()+"'";break}break}chain["$<<"](scope["$identify!"]()),$truthy(scope.$parent())&&(scope=scope.$parent())}return[chain,defn,mid]},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$uses_block?",$ScopeNode_new_refinements_temp$53=function(){return this.uses_block},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$has_rescue_else?",$ScopeNode_new_refinements_temp$53=function(){return this.$rescue_else_sexp()["$nil?"]()["$!"]()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_rescue",$ScopeNode_in_rescue$44=function(node){var result,$iter=$ScopeNode_in_rescue$44.$$p,$yield=$iter||nil,self=this,$ret_or_17=nil;return $iter&&($ScopeNode_in_rescue$44.$$p=null),self.rescues=$truthy($ret_or_17=self.rescues)?$ret_or_17:[],self.rescues.$push(node),result=Opal.yieldX($yield,[]),self.rescues.$pop(),result},$ScopeNode_in_rescue$44.$$arity=1),Opal.def($ScopeNode_refinements_temp$54,"$current_rescue",$ScopeNode_new_refinements_temp$53=function(){return this.rescues.$last()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_resbody",$ScopeNode_in_resbody$46=function(){var result,$iter=$ScopeNode_in_resbody$46.$$p,$yield=$iter||nil;return $iter&&($ScopeNode_in_resbody$46.$$p=null),$yield===nil?nil:(this.in_resbody=!0,result=Opal.yieldX($yield,[]),this.in_resbody=!1,result)},$ScopeNode_in_resbody$46.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_resbody?",$ScopeNode_new_refinements_temp$53=function(){return this.in_resbody},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_ensure",$ScopeNode_in_ensure$48=function(){var result,$iter=$ScopeNode_in_ensure$48.$$p,$yield=$iter||nil;return $iter&&($ScopeNode_in_ensure$48.$$p=null),$yield===nil?nil:(this.in_ensure=!0,result=Opal.yieldX($yield,[]),this.in_ensure=!1,result)},$ScopeNode_in_ensure$48.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$in_ensure?",$ScopeNode_new_refinements_temp$53=function(){return this.in_ensure},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$gen_retry_id",$ScopeNode_new_refinements_temp$53=function(){var self=this,$ret_or_18=nil;return self.next_retry_id=$truthy($ret_or_18=self.next_retry_id)?$ret_or_18:"retry_0",self.next_retry_id=self.next_retry_id.$succ()},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$accepts_using?",$ScopeNode_new_refinements_temp$53=function(){return[$$($nesting,"TopNode"),$$($nesting,"ModuleNode"),$$($nesting,"ClassNode"),$$($nesting,"IterNode")]["$include?"](this.$class())},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$collect_refinements_temps",$ScopeNode_new_refinements_temp$53=function(temps){return null==temps&&(temps=[]),$truthy(this.refinements_temp)&&temps["$<<"](this.refinements_temp),$truthy(this.$parent())?this.$parent().$collect_refinements_temps(temps):temps},$ScopeNode_new_refinements_temp$53.$$arity=-1),Opal.def($ScopeNode_refinements_temp$54,"$new_refinements_temp",$ScopeNode_new_refinements_temp$53=function(){var var$=this.$compiler().$unique_temp("$refn");return this.$add_scope_local(var$),var$},$ScopeNode_new_refinements_temp$53.$$arity=0),Opal.def($ScopeNode_refinements_temp$54,"$refinements_temp",$ScopeNode_refinements_temp$54=function(){var $a=[this.refinements_temp,this.$new_refinements_temp()],curr=$a[1];return[$a[0],this.refinements_temp=curr]},$ScopeNode_refinements_temp$54.$$arity=0),nil&&"refinements_temp"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/module"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$name_and_base","$helper","$push","$line","$in_scope","$name=","$scope","$-","$compile_body","$private","$cid","$nil?","$expr","$add_temp","$stmt","$returns","$compiler","$body","$s","$empty_line","$to_vars"]),self.$require("opal/nodes/scope"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ModuleNode_compile_body$4,$ModuleNode_name_and_base$3){$ModuleNode_compile_body$4=$klass($base,$ModuleNode_compile_body$4,"ModuleNode"),[$ModuleNode_compile_body$4].concat($ModuleNode_name_and_base$3);return $ModuleNode_compile_body$4.$handle("module"),$ModuleNode_compile_body$4.$children("cid","body"),Opal.def($ModuleNode_compile_body$4,"$compile",$ModuleNode_name_and_base$3=function(){var $$2,$a=this.$name_and_base(),$a=Opal.to_ary($a),name=null==$a[0]?nil:$a[0],base=null==$a[1]?nil:$a[1];return this.$helper("module"),this.$push("(function($base, $parent_nesting) {"),this.$line(" var self = $module($base, '"+name+"');"),$send(this,"in_scope",[],(($$2=function(){var rhs,self=null==$$2.$$s?this:$$2.$$s,lhs=nil,lhs=[name];return $send(self.$scope(),"name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),self.$compile_body()}).$$s=this,$$2.$$arity=0,$$2)),this.$line("})(",base,", $nesting)")},$ModuleNode_name_and_base$3.$$arity=0),$ModuleNode_compile_body$4.$private(),Opal.def($ModuleNode_compile_body$4,"$name_and_base",$ModuleNode_name_and_base$3=function(){var base=nil,$a=this.$cid().$children(),$a=Opal.to_ary($a),base=null==$a[0]?nil:$a[0],name=null==$a[1]?nil:$a[1];return $truthy(base["$nil?"]())?[name,"$nesting[0]"]:[name,this.$expr(base)]},$ModuleNode_name_and_base$3.$$arity=0),Opal.def($ModuleNode_compile_body$4,"$compile_body",$ModuleNode_compile_body$4=function(){var body_code,self=this,$ret_or_1=nil;return self.$add_temp("$nesting = [self].concat($parent_nesting)"),body_code=self.$stmt(self.$compiler().$returns($truthy($ret_or_1=self.$body())?$ret_or_1:self.$s("nil"))),self.$empty_line(),self.$line(self.$scope().$to_vars()),self.$line(body_code)},$ModuleNode_compile_body$4.$$arity=0),nil&&"compile_body"}($nesting[0],$$($nesting,"ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$name_and_base","$helper","$push","$line","$in_scope","$name=","$scope","$-","$compile_body","$super_code","$sup","$expr"]),self.$require("opal/nodes/module"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ClassNode_super_code$3,$ClassNode_compile$1){$ClassNode_super_code$3=$klass($base,$ClassNode_super_code$3,"ClassNode"),[$ClassNode_super_code$3].concat($ClassNode_compile$1);return $ClassNode_super_code$3.$handle("class"),$ClassNode_super_code$3.$children("cid","sup","body"),Opal.def($ClassNode_super_code$3,"$compile",$ClassNode_compile$1=function(){var $$2,$a=this.$name_and_base(),$a=Opal.to_ary($a),name=null==$a[0]?nil:$a[0],base=null==$a[1]?nil:$a[1];return this.$helper("klass"),this.$push("(function($base, $super, $parent_nesting) {"),this.$line(" var self = $klass($base, $super, '"+name+"');"),$send(this,"in_scope",[],(($$2=function(){var rhs,self=null==$$2.$$s?this:$$2.$$s,lhs=nil,lhs=[name];return $send(self.$scope(),"name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),self.$compile_body()}).$$s=this,$$2.$$arity=0,$$2)),this.$line("})(",base,", ",this.$super_code(),", $nesting)")},$ClassNode_compile$1.$$arity=0),Opal.def($ClassNode_super_code$3,"$super_code",$ClassNode_super_code$3=function(){return $truthy(this.$sup())?this.$expr(this.$sup()):"null"},$ClassNode_super_code$3.$$arity=0),nil&&"super_code"}($nesting[0],$$($nesting,"ModuleNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/singleton_class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$push","$in_scope","$add_temp","$stmt","$returns","$compiler","$body","$line","$to_vars","$scope","$recv","$object"]),self.$require("opal/nodes/scope"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$SingletonClassNode_compile$1,$parent_nesting){$SingletonClassNode_compile$1=$klass($base,$SingletonClassNode_compile$1,"SingletonClassNode"),[$SingletonClassNode_compile$1].concat($parent_nesting);return $SingletonClassNode_compile$1.$handle("sclass"),$SingletonClassNode_compile$1.$children("object","body"),Opal.def($SingletonClassNode_compile$1,"$compile",$SingletonClassNode_compile$1=function(){var $$2;return this.$push("(function(self, $parent_nesting) {"),$send(this,"in_scope",[],(($$2=function(){var body_stmt,self=null==$$2.$$s?this:$$2.$$s;return self.$add_temp("$nesting = [self].concat($parent_nesting)"),body_stmt=self.$stmt(self.$compiler().$returns(self.$body())),self.$line(self.$scope().$to_vars()),self.$line(body_stmt)}).$$s=this,$$2.$$arity=0,$$2)),this.$line("})(Opal.get_singleton_class(",this.$recv(this.$object()),"), $nesting)")},$SingletonClassNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/arg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$add_arg","$scope","$name","$push","$to_s"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ArgNode_compile$1,$parent_nesting){$ArgNode_compile$1=$klass($base,$ArgNode_compile$1,"ArgNode"),[$ArgNode_compile$1].concat($parent_nesting);return $ArgNode_compile$1.$handle("arg"),$ArgNode_compile$1.$children("name"),Opal.def($ArgNode_compile$1,"$compile",$ArgNode_compile$1=function(){return this.$scope().$add_arg(this.$name()),this.$push(this.$name().$to_s())},$ArgNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/arity_check"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$new","$args_node","$args","$optargs","$restarg","$postargs","$kwargs","$kwoptargs","$kwrestarg","$kwnilarg","$arity","$arity=","$scope","$-","$arity_check?","$compiler","$empty?","$arity_checks","$helper","$inspect","$to_s","$mid","$line","$push","$join","$compact","$size","$all_args","$!","$-@","$<","$+","$>","$<<","$any?","$has_only_optional_kwargs?","$negative_arity","$positive_arity","$select","$include?","$type","$has_required_kwargs?","$all?","$==","$def?","$class_scope?","$top?","$parent","$class?","$name","$module?","$identity"]),self.$require("opal/nodes/base"),self.$require("opal/rewriters/arguments"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ArityCheckNode_has_required_kwargs$ques$12,$ArityCheckNode_has_only_optional_kwargs$ques$10){var $ArityCheckNode_initialize$1,$nesting=[$ArityCheckNode_has_required_kwargs$ques$12=$klass($base,$ArityCheckNode_has_required_kwargs$ques$12,"ArityCheckNode")].concat($ArityCheckNode_has_only_optional_kwargs$ques$10);$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.kwargs=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.kwoptargs=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.kwrestarg=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.all_args=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.args=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.optargs=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.restarg=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.postargs=$ArityCheckNode_has_required_kwargs$ques$12.$$prototype.arity_checks=nil,$ArityCheckNode_has_required_kwargs$ques$12.$handle("arity_check"),$ArityCheckNode_has_required_kwargs$ques$12.$children("args_node"),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$initialize",$ArityCheckNode_initialize$1=function($a){var $zuper_ii,$iter=$ArityCheckNode_initialize$1.$$p,arguments$=nil,$zuper=nil,$zuper_i=nil;for($iter&&($ArityCheckNode_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$ArityCheckNode_initialize$1,!1,!0),"initialize",$zuper,$iter),arguments$=$$$($$($nesting,"Rewriters"),"Arguments").$new(this.$args_node().$children()),this.args=arguments$.$args(),this.optargs=arguments$.$optargs(),this.restarg=arguments$.$restarg(),this.postargs=arguments$.$postargs(),this.kwargs=arguments$.$kwargs(),this.kwoptargs=arguments$.$kwoptargs(),this.kwrestarg=arguments$.$kwrestarg(),this.kwnilarg=arguments$.$kwnilarg()},$ArityCheckNode_initialize$1.$$arity=-1),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$compile",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var meth,$writer=[this.$arity()];return $send(this.$scope(),"arity=",Opal.to_a($writer)),$rb_minus($writer.length,1),!$truthy(this.$compiler()["$arity_check?"]())||$truthy(this.$arity_checks()["$empty?"]())?nil:(this.$helper("ac"),meth=this.$scope().$mid().$to_s().$inspect(),this.$line("var $arity = arguments.length;"),this.$push(" if ("+this.$arity_checks().$join(" || ")+") { $ac($arity, "+this.$arity()+", this, "+meth+"); }"))},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$kwargs",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){return[].concat(Opal.to_a(this.kwargs)).concat(Opal.to_a(this.kwoptargs)).concat([this.kwrestarg]).$compact()},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$all_args",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var self=this,$ret_or_1=nil;return self.all_args=$truthy($ret_or_1=self.all_args)?$ret_or_1:[].concat(Opal.to_a(self.args)).concat(Opal.to_a(self.optargs)).concat([self.restarg]).concat(Opal.to_a(self.postargs)).concat(Opal.to_a(self.$kwargs())).$compact()},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$arity_checks",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var $a,min_arity,max_arity,self=this,arity=nil,lhs=nil,rhs=nil;return $truthy(null!=($a=self.arity_checks)&&$a!==nil?"instance-variable":nil)||(arity=$rb_minus(arity=self.$all_args().$size(),self.optargs.$size()),$truthy(self.restarg)&&(arity=$rb_minus(arity,1)),arity=$rb_minus(arity,self.$kwargs().$size()),$truthy($truthy(lhs=$truthy(rhs=self.optargs["$empty?"]()["$!"]())?rhs:self.$kwargs()["$empty?"]()["$!"]())?lhs:self.restarg)&&(arity=$rb_minus(arity["$-@"](),1)),self.arity_checks=[],$truthy((rhs=0,"number"==typeof(lhs=arity)&&"number"==typeof rhs?lhs"](rhs)}(min_arity,0))&&self.arity_checks["$<<"]("$arity < "+min_arity),$truthy(self.restarg)||self.arity_checks["$<<"]("$arity > "+max_arity)):self.arity_checks["$<<"]("$arity !== "+arity)),self.arity_checks},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$arity",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var self=this,$ret_or_4=nil,$ret_or_5=nil;return $truthy($truthy($ret_or_4=$truthy($ret_or_5=self.restarg)?$ret_or_5:self.optargs["$any?"]())?$ret_or_4:self["$has_only_optional_kwargs?"]())?self.$negative_arity():self.$positive_arity()},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$negative_arity",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var $$8,result=nil,result=$send(this.$all_args(),"select",[],(($$8=function(arg){null==$$8.$$s||$$8.$$s;return null==arg&&(arg=nil),["arg","mlhs"]["$include?"](arg.$type())}).$$s=this,$$8.$$arity=1,$$8)).$size();return $truthy(this["$has_required_kwargs?"]())&&(result=$rb_plus(result,1)),result=$rb_minus(result["$-@"](),1)},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$positive_arity",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var result=nil;return result=$rb_minus(result=this.$all_args().$size(),this.$kwargs().$size()),$truthy(this.$kwargs()["$any?"]())&&(result=$rb_plus(result,1)),result},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$has_only_optional_kwargs?",$ArityCheckNode_has_only_optional_kwargs$ques$10=function(){var $$11,$ret_or_6;return $truthy($ret_or_6=this.$kwargs()["$any?"]())?$send(this.$kwargs(),"all?",[],(($$11=function(arg){null==$$11.$$s||$$11.$$s;return null==arg&&(arg=nil),["kwoptarg","kwrestarg"]["$include?"](arg.$type())}).$$s=this,$$11.$$arity=1,$$11)):$ret_or_6},$ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity=0),Opal.def($ArityCheckNode_has_required_kwargs$ques$12,"$has_required_kwargs?",$ArityCheckNode_has_required_kwargs$ques$12=function(){var $$13;return $send(this.$kwargs(),"any?",[],(($$13=function(arg){null==$$13.$$s||$$13.$$s;return null==arg&&(arg=nil),arg.$type()["$=="]("kwarg")}).$$s=this,$$13.$$arity=1,$$13))},$ArityCheckNode_has_required_kwargs$ques$12.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$IterArityCheckNode_compile$14,$parent_nesting){$IterArityCheckNode_compile$14=$klass($base,$IterArityCheckNode_compile$14,"IterArityCheckNode"),[$IterArityCheckNode_compile$14].concat($parent_nesting);return $IterArityCheckNode_compile$14.$handle("iter_arity_check"),Opal.def($IterArityCheckNode_compile$14,"$compile",$IterArityCheckNode_compile$14=function(){var context,identity,parent_scope=nil,$ret_or_7=nil,$ret_or_8=nil,$writer=[this.$arity()];if($send(this.$scope(),"arity=",Opal.to_a($writer)),$rb_minus($writer.length,1),!$truthy(this.$compiler()["$arity_check?"]()))return nil;if($truthy(this.$arity_checks()["$empty?"]()))return nil;for(parent_scope=this.$scope();!$truthy($truthy($ret_or_7=$truthy($ret_or_8=parent_scope["$def?"]())?$ret_or_8:parent_scope["$class_scope?"]())?$ret_or_7:parent_scope["$top?"]());)parent_scope=parent_scope.$parent();return context=$truthy(parent_scope["$top?"]())?"'
    '":$truthy(parent_scope["$def?"]())?"'"+parent_scope.$mid()+"'":$truthy(parent_scope["$class?"]())?"''":$truthy(parent_scope["$module?"]())?"''":nil,identity=this.$scope().$identity(),this.$line("if ("+identity+".$$is_lambda || "+identity+".$$define_meth) {"),this.$line(" var $arity = arguments.length;"),this.$line(" if ("+this.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+this.$arity()+", "+context+"); }"),this.$line("}")},$IterArityCheckNode_compile$14.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"ArityCheckNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$helper","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$EnsureKwargsAreKwargs_compile$1,$parent_nesting){$EnsureKwargsAreKwargs_compile$1=$klass($base,$EnsureKwargsAreKwargs_compile$1,"EnsureKwargsAreKwargs"),[$EnsureKwargsAreKwargs_compile$1].concat($parent_nesting);return $EnsureKwargsAreKwargs_compile$1.$handle("ensure_kwargs_are_kwargs"),Opal.def($EnsureKwargsAreKwargs_compile$1,"$compile",$EnsureKwargsAreKwargs_compile$1=function(){return this.$helper("hash2"),this.$line("if ($kwargs == null) {"),this.$line(" $kwargs = $hash2([], {});"),this.$line("} else if (!$kwargs.$$is_hash) {"),this.$line(" throw Opal.ArgumentError.$new('expected kwargs');"),this.$line("}")},$EnsureKwargsAreKwargs_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$uses_block!","$scope","$add_arg","$name","$block_name=","$-","$identity","$block_name","$add_temp","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractBlockarg_compile$1,$parent_nesting){$ExtractBlockarg_compile$1=$klass($base,$ExtractBlockarg_compile$1,"ExtractBlockarg"),[$ExtractBlockarg_compile$1].concat($parent_nesting);return $ExtractBlockarg_compile$1.$handle("extract_blockarg"),$ExtractBlockarg_compile$1.$children("name"),Opal.def($ExtractBlockarg_compile$1,"$compile",$ExtractBlockarg_compile$1=function(){var scope_name,yielder,rhs,lhs=nil;return this.$scope()["$uses_block!"](),this.$scope().$add_arg(this.$name()),lhs=[this.$name()],$send(this.$scope(),"block_name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),scope_name=this.$scope().$identity(),yielder=this.$scope().$block_name(),this.$add_temp("$iter = "+scope_name+".$$p"),this.$add_temp(yielder+" = $iter || nil"),this.$line("if ($iter) "+scope_name+".$$p = null;")},$ExtractBlockarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$[]","$meta","$<<","$used_kwargs","$scope","$add_temp","$lvar_name","$line","$inspect","$to_s"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractKwarg_compile$1,$parent_nesting){$ExtractKwarg_compile$1=$klass($base,$ExtractKwarg_compile$1,"ExtractKwarg"),[$ExtractKwarg_compile$1].concat($parent_nesting);return $ExtractKwarg_compile$1.$$prototype.sexp=nil,$ExtractKwarg_compile$1.$handle("extract_kwarg"),$ExtractKwarg_compile$1.$children("lvar_name"),Opal.def($ExtractKwarg_compile$1,"$compile",$ExtractKwarg_compile$1=function(){var key_name=nil,key_name=this.sexp.$meta()["$[]"]("arg_name");return this.$scope().$used_kwargs()["$<<"](key_name),this.$add_temp(this.$lvar_name()),this.$line("if (!Opal.hasOwnProperty.call($kwargs.$$smap, '"+key_name+"')) {"),this.$line(" throw Opal.ArgumentError.$new('missing keyword: "+key_name+"');"),this.$line("}"),this.$line(this.$lvar_name()+" = $kwargs.$$smap["+key_name.$to_s().$inspect()+"];")},$ExtractKwarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$add_temp","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractKwargs_compile$1,$parent_nesting){$ExtractKwargs_compile$1=$klass($base,$ExtractKwargs_compile$1,"ExtractKwargs"),[$ExtractKwargs_compile$1].concat($parent_nesting);return $ExtractKwargs_compile$1.$handle("extract_kwargs"),Opal.def($ExtractKwargs_compile$1,"$compile",$ExtractKwargs_compile$1=function(){return this.$add_temp("$kwargs"),this.$line("$kwargs = Opal.extract_kwargs($post_args)")},$ExtractKwargs_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$[]","$meta","$<<","$used_kwargs","$scope","$add_temp","$lvar_name","$line","$inspect","$to_s","$==","$default_value","$expr"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractKwoptarg_compile$1,$parent_nesting){$ExtractKwoptarg_compile$1=$klass($base,$ExtractKwoptarg_compile$1,"ExtractKwoptarg"),[$ExtractKwoptarg_compile$1].concat($parent_nesting);return $ExtractKwoptarg_compile$1.$$prototype.sexp=nil,$ExtractKwoptarg_compile$1.$handle("extract_kwoptarg"),$ExtractKwoptarg_compile$1.$children("lvar_name","default_value"),Opal.def($ExtractKwoptarg_compile$1,"$compile",$ExtractKwoptarg_compile$1=function(){var key_name=nil,key_name=this.sexp.$meta()["$[]"]("arg_name");return this.$scope().$used_kwargs()["$<<"](key_name),this.$add_temp(this.$lvar_name()),this.$line(this.$lvar_name()+" = $kwargs.$$smap["+key_name.$to_s().$inspect()+"];"),this.$default_value().$children()["$[]"](1)["$=="]("undefined")?nil:(this.$line("if ("+this.$lvar_name()+" == null) {"),this.$line(" "+this.$lvar_name()+" = ",this.$expr(this.$default_value())),this.$line("}"))},$ExtractKwoptarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$name","$add_temp","$line","$used_kwargs","$map","$scope","$join"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractKwrestarg_used_kwargs$2,$ExtractKwrestarg_compile$1){$ExtractKwrestarg_used_kwargs$2=$klass($base,$ExtractKwrestarg_used_kwargs$2,"ExtractKwrestarg"),[$ExtractKwrestarg_used_kwargs$2].concat($ExtractKwrestarg_compile$1);return $ExtractKwrestarg_used_kwargs$2.$handle("extract_kwrestarg"),$ExtractKwrestarg_used_kwargs$2.$children("name"),Opal.def($ExtractKwrestarg_used_kwargs$2,"$compile",$ExtractKwrestarg_compile$1=function(){return $truthy(this.$name())?(this.$add_temp(this.$name()),this.$line(this.$name()+" = Opal.kwrestargs($kwargs, "+this.$used_kwargs()+");")):nil},$ExtractKwrestarg_compile$1.$$arity=0),Opal.def($ExtractKwrestarg_used_kwargs$2,"$used_kwargs",$ExtractKwrestarg_used_kwargs$2=function(){var $$3;return"{"+$send(this.$scope().$used_kwargs(),"map",[],(($$3=function(arg_name){null==$$3.$$s||$$3.$$s;return null==arg_name&&(arg_name=nil),"'"+arg_name+"': true"}).$$s=this,$$3.$$arity=1,$$3)).$join(",")+"}"},$ExtractKwrestarg_used_kwargs$2.$$arity=0),nil&&"used_kwargs"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_optarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$==","$[]","$default_value","$line","$name","$expr"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractOptargNode_compile$1,$parent_nesting){$ExtractOptargNode_compile$1=$klass($base,$ExtractOptargNode_compile$1,"ExtractOptargNode"),[$ExtractOptargNode_compile$1].concat($parent_nesting);return $ExtractOptargNode_compile$1.$handle("extract_optarg"),$ExtractOptargNode_compile$1.$children("name","default_value"),Opal.def($ExtractOptargNode_compile$1,"$compile",$ExtractOptargNode_compile$1=function(){return this.$default_value().$children()["$[]"](1)["$=="]("undefined")?nil:(this.$line("if ("+this.$name()+" == null) {"),this.$line(" "+this.$name()+" = ",this.$expr(this.$default_value()),";"),this.$line("}"))},$ExtractOptargNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$add_temp","$name","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractPostArg_compile$1,$parent_nesting){$ExtractPostArg_compile$1=$klass($base,$ExtractPostArg_compile$1,"ExtractPostArg"),[$ExtractPostArg_compile$1].concat($parent_nesting);return $ExtractPostArg_compile$1.$handle("extract_post_arg"),$ExtractPostArg_compile$1.$children("name"),Opal.def($ExtractPostArg_compile$1,"$compile",$ExtractPostArg_compile$1=function(){return this.$add_temp(this.$name()),this.$line(this.$name()+" = $post_args[0];"),this.$line("$post_args.splice(0, 1);"),this.$line("if ("+this.$name()+" == null) {"),this.$line(" "+this.$name()+" = nil"),this.$line("}")},$ExtractPostArg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$add_temp","$name","$line","$args_to_keep","$==","$[]","$default_value","$expr"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractPostOptarg_compile$1,$parent_nesting){$ExtractPostOptarg_compile$1=$klass($base,$ExtractPostOptarg_compile$1,"ExtractPostOptarg"),[$ExtractPostOptarg_compile$1].concat($parent_nesting);return $ExtractPostOptarg_compile$1.$handle("extract_post_optarg"),$ExtractPostOptarg_compile$1.$children("name","default_value","args_to_keep"),Opal.def($ExtractPostOptarg_compile$1,"$compile",$ExtractPostOptarg_compile$1=function(){return this.$add_temp(this.$name()),this.$line("if ($post_args.length > "+this.$args_to_keep()+") {"),this.$line(" "+this.$name()+" = $post_args[0];"),this.$line(" $post_args.splice(0, 1);"),this.$line("}"),this.$default_value().$children()["$[]"](1)["$=="]("undefined")?nil:(this.$line("if ("+this.$name()+" == null) {"),this.$line(" "+this.$name()+" = ",this.$expr(this.$default_value()),";"),this.$line("}"))},$ExtractPostOptarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_restarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$name","$add_temp","$==","$args_to_keep","$line","$!="]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$ExtractRestarg_compile$1,$parent_nesting){$ExtractRestarg_compile$1=$klass($base,$ExtractRestarg_compile$1,"ExtractRestarg"),[$ExtractRestarg_compile$1].concat($parent_nesting);return $ExtractRestarg_compile$1.$handle("extract_restarg"),$ExtractRestarg_compile$1.$children("name","args_to_keep"),Opal.def($ExtractRestarg_compile$1,"$compile",$ExtractRestarg_compile$1=function(){return $truthy(this.$name())?(this.$add_temp(this.$name()),this.$args_to_keep()["$=="](0)?this.$line(this.$name()+" = $post_args;"):this.$line(this.$name()+" = $post_args.splice(0, $post_args.length - "+this.$args_to_keep()+");")):$truthy(this.$args_to_keep()["$!="](0))?this.$line("$post_args.splice(0, $post_args.length - "+this.$args_to_keep()+");"):nil},$ExtractRestarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/fake_arg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$next_temp","$scope","$add_arg","$push"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$FakeArgNode_compile$1,$parent_nesting){$FakeArgNode_compile$1=$klass($base,$FakeArgNode_compile$1,"FakeArgNode"),[$FakeArgNode_compile$1].concat($parent_nesting);return $FakeArgNode_compile$1.$handle("fake_arg"),Opal.def($FakeArgNode_compile$1,"$compile",$FakeArgNode_compile$1=function(){var name=this.$scope().$next_temp();return this.$scope().$add_arg(name),this.$push(name)},$FakeArgNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$line","$name"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$InitializeIterarg_compile$1,$parent_nesting){$InitializeIterarg_compile$1=$klass($base,$InitializeIterarg_compile$1,"InitializeIterarg"),[$InitializeIterarg_compile$1].concat($parent_nesting);return $InitializeIterarg_compile$1.$handle("initialize_iter_arg"),$InitializeIterarg_compile$1.$children("name"),Opal.def($InitializeIterarg_compile$1,"$compile",$InitializeIterarg_compile$1=function(){return this.$line("if ("+this.$name()+" == null) {"),this.$line(" "+this.$name()+" = nil;"),this.$line("}")},$InitializeIterarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$<<","$locals","$scope","$name","$add_arg","$line"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$InitializeShadowarg_compile$1,$parent_nesting){$InitializeShadowarg_compile$1=$klass($base,$InitializeShadowarg_compile$1,"InitializeShadowarg"),[$InitializeShadowarg_compile$1].concat($parent_nesting);return $InitializeShadowarg_compile$1.$handle("initialize_shadowarg"),$InitializeShadowarg_compile$1.$children("name"),Opal.def($InitializeShadowarg_compile$1,"$compile",$InitializeShadowarg_compile$1=function(){return this.$scope().$locals()["$<<"](this.$name()),this.$scope().$add_arg(this.$name()),this.$line(this.$name()+" = nil;")},$InitializeShadowarg_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/parameters"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$children","$map","$public_send","$type","$join","$compact","$=="]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($Parameters_on_shadowarg$13,$Parameters_on_kwnilarg$12){$Parameters_on_shadowarg$13=$klass($Parameters_on_shadowarg$13,null,"Parameters"),[$Parameters_on_shadowarg$13].concat($Parameters_on_kwnilarg$12);return $Parameters_on_shadowarg$13.$$prototype.args=nil,Opal.def($Parameters_on_shadowarg$13,"$initialize",$Parameters_on_kwnilarg$12=function(args){return this.args=args.$children()},$Parameters_on_kwnilarg$12.$$arity=1),Opal.def($Parameters_on_shadowarg$13,"$to_code",$Parameters_on_kwnilarg$12=function(){var $$3;return"["+$send(this.args,"map",[],(($$3=function(arg){var self=null==$$3.$$s?this:$$3.$$s;return null==arg&&(arg=nil),$send(self,"public_send",["on_"+arg.$type()].concat(Opal.to_a(arg)))}).$$s=this,$$3.$$arity=1,$$3)).$compact().$join(", ")+"]"},$Parameters_on_kwnilarg$12.$$arity=0),Opal.def($Parameters_on_shadowarg$13,"$on_arg",$Parameters_on_kwnilarg$12=function(arg_name){return"['req', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=1),Opal.def($Parameters_on_shadowarg$13,"$on_mlhs",$Parameters_on_kwnilarg$12=function($a){Opal.slice.call(arguments,0,arguments.length);return"['req']"},$Parameters_on_kwnilarg$12.$$arity=-1),Opal.def($Parameters_on_shadowarg$13,"$on_optarg",$Parameters_on_kwnilarg$12=function(arg_name){return"['opt', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=2),Opal.def($Parameters_on_shadowarg$13,"$on_restarg",$Parameters_on_kwnilarg$12=function(arg_name){return null==arg_name&&(arg_name=nil),$truthy(arg_name)?(arg_name["$=="]("fwd_rest_arg")&&(arg_name="*"),"['rest', '"+arg_name+"']"):"['rest']"},$Parameters_on_kwnilarg$12.$$arity=-1),Opal.def($Parameters_on_shadowarg$13,"$on_kwarg",$Parameters_on_kwnilarg$12=function(arg_name){return"['keyreq', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=1),Opal.def($Parameters_on_shadowarg$13,"$on_kwoptarg",$Parameters_on_kwnilarg$12=function(arg_name){return"['key', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=2),Opal.def($Parameters_on_shadowarg$13,"$on_kwrestarg",$Parameters_on_kwnilarg$12=function(arg_name){return null==arg_name&&(arg_name=nil),$truthy(arg_name)?"['keyrest', '"+arg_name+"']":"['keyrest']"},$Parameters_on_kwnilarg$12.$$arity=-1),Opal.def($Parameters_on_shadowarg$13,"$on_blockarg",$Parameters_on_kwnilarg$12=function(arg_name){return arg_name["$=="]("fwd_block_arg")&&(arg_name="&"),"['block', '"+arg_name+"']"},$Parameters_on_kwnilarg$12.$$arity=1),Opal.def($Parameters_on_shadowarg$13,"$on_kwnilarg",$Parameters_on_kwnilarg$12=function(){return"['nokey']"},$Parameters_on_kwnilarg$12.$$arity=0),Opal.def($Parameters_on_shadowarg$13,"$on_shadowarg",$Parameters_on_shadowarg$13=function(){return nil},$Parameters_on_shadowarg$13.$$arity=1),nil&&"on_shadowarg"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass;return Opal.add_stubs(["$require","$handle","$children","$add_temp","$line","$offset"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Args")].concat($nesting);return function($base,$PreparePostArgs_compile$1,$parent_nesting){$PreparePostArgs_compile$1=$klass($base,$PreparePostArgs_compile$1,"PreparePostArgs"),[$PreparePostArgs_compile$1].concat($parent_nesting);return $PreparePostArgs_compile$1.$handle("prepare_post_args"),$PreparePostArgs_compile$1.$children("offset"),Opal.def($PreparePostArgs_compile$1,"$compile",$PreparePostArgs_compile$1=function(){return this.$add_temp("$post_args"),this.$line("$post_args = Opal.slice.call(arguments, "+this.$offset()+", arguments.length)")},$PreparePostArgs_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$each_with_index","$children","$multiple_underscore?","$[]","$[]=","$-","$+","$>","$s","$type","$!=","$push","$process","$==","$count","$start_with?","$to_s","$first"]),self.$require("opal/nodes/base"),self.$require("opal/nodes/args/arg"),self.$require("opal/nodes/args/arity_check"),self.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),self.$require("opal/nodes/args/extract_block_arg"),self.$require("opal/nodes/args/extract_kwarg"),self.$require("opal/nodes/args/extract_kwargs"),self.$require("opal/nodes/args/extract_kwoptarg"),self.$require("opal/nodes/args/extract_kwrestarg"),self.$require("opal/nodes/args/extract_optarg"),self.$require("opal/nodes/args/extract_post_arg"),self.$require("opal/nodes/args/extract_post_optarg"),self.$require("opal/nodes/args/extract_restarg"),self.$require("opal/nodes/args/fake_arg"),self.$require("opal/nodes/args/initialize_iterarg"),self.$require("opal/nodes/args/initialize_shadowarg"),self.$require("opal/nodes/args/parameters"),self.$require("opal/nodes/args/prepare_post_args"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ArgsNode_multiple_underscore$ques$3,$ArgsNode_compile$1){$ArgsNode_multiple_underscore$ques$3=$klass($base,$ArgsNode_multiple_underscore$ques$3,"ArgsNode"),[$ArgsNode_multiple_underscore$ques$3].concat($ArgsNode_compile$1);return $ArgsNode_multiple_underscore$ques$3.$handle("args"),Opal.def($ArgsNode_multiple_underscore$ques$3,"$compile",$ArgsNode_compile$1=function(){var $$2,same_arg_counter=nil,same_arg_counter=$hash2([],{});return $send(this.$children(),"each_with_index",[],(($$2=function(arg,idx){var lhs,rhs,self=null==$$2.$$s?this:$$2.$$s,$writer=nil;return null==arg&&(arg=nil),null==idx&&(idx=nil),$truthy(self["$multiple_underscore?"](arg))&&($truthy(same_arg_counter["$[]"](arg))||($writer=[arg,0],$send(same_arg_counter,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[arg,(lhs=same_arg_counter["$[]"](arg),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs))],$send(same_arg_counter,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(same_arg_counter["$[]"](arg),1))&&(arg=self.$s(arg.$type(),arg.$children()["$[]"](0)+"_$"+same_arg_counter["$[]"](arg)))),$truthy(idx["$!="](0))&&self.$push(", "),self.$push(self.$process(arg))}).$$s=this,$$2.$$arity=2,$$2))},$ArgsNode_compile$1.$$arity=0),Opal.def($ArgsNode_multiple_underscore$ques$3,"$multiple_underscore?",$ArgsNode_multiple_underscore$ques$3=function(arg){var $ret_or_2,$ret_or_3=nil,$ret_or_4=nil;return $truthy($ret_or_2=$truthy($ret_or_3=$truthy($ret_or_4=arg.$type()["$=="]("arg"))?arg.$children().$count()["$=="](1):$ret_or_4)?arg.$children().$first().$to_s()["$start_with?"]("_"):$ret_or_3)?$rb_gt(this.$children().$count(arg),1):$ret_or_2},$ArgsNode_multiple_underscore$ques$3.$$arity=1),nil&&"multiple_underscore?"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/node_with_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$attr_reader","$attr_accessor","$[]","$meta","$s","$original_args","$push","$process","$arity_check_node","$uses_block?","$scope","$identity","$block_name","$add_temp","$line","$to_code","$new"]),self.$require("opal/nodes/scope"),self.$require("opal/nodes/args/parameters"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$NodeWithArgs_parameters_code$5,$NodeWithArgs_compile_block_arg$4){var $NodeWithArgs_initialize$1,$NodeWithArgs_parameters_code$5=$klass($base,$NodeWithArgs_parameters_code$5,"NodeWithArgs"),$nesting=[$NodeWithArgs_parameters_code$5].concat($NodeWithArgs_compile_block_arg$4);return $NodeWithArgs_parameters_code$5.$$prototype.sexp=nil,$NodeWithArgs_parameters_code$5.$attr_reader("used_kwargs"),$NodeWithArgs_parameters_code$5.$attr_accessor("arity"),$NodeWithArgs_parameters_code$5.$attr_reader("original_args"),Opal.def($NodeWithArgs_parameters_code$5,"$initialize",$NodeWithArgs_initialize$1=function($a){var $zuper_ii,$iter=$NodeWithArgs_initialize$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($NodeWithArgs_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$NodeWithArgs_initialize$1,!1,!0),"initialize",$zuper,$iter),this.original_args=this.sexp.$meta()["$[]"]("original_args"),this.used_kwargs=[],this.arity=0},$NodeWithArgs_initialize$1.$$arity=-1),Opal.def($NodeWithArgs_parameters_code$5,"$arity_check_node",$NodeWithArgs_compile_block_arg$4=function(){return this.$s("arity_check",this.$original_args())},$NodeWithArgs_compile_block_arg$4.$$arity=0),Opal.def($NodeWithArgs_parameters_code$5,"$compile_arity_check",$NodeWithArgs_compile_block_arg$4=function(){return this.$push(this.$process(this.$arity_check_node()))},$NodeWithArgs_compile_block_arg$4.$$arity=0),Opal.def($NodeWithArgs_parameters_code$5,"$compile_block_arg",$NodeWithArgs_compile_block_arg$4=function(){var scope_name,yielder,self=this,$ret_or_1=nil;return $truthy(self.$scope()["$uses_block?"]())?(scope_name=self.$scope().$identity(),yielder=$truthy($ret_or_1=self.$scope().$block_name())?$ret_or_1:"$yield",self.$add_temp("$iter = "+scope_name+".$$p"),self.$add_temp(yielder+" = $iter || nil"),self.$line("if ($iter) "+scope_name+".$$p = null;")):nil},$NodeWithArgs_compile_block_arg$4.$$arity=0),Opal.def($NodeWithArgs_parameters_code$5,"$parameters_code",$NodeWithArgs_parameters_code$5=function(){return $$$($$($nesting,"Args"),"Parameters").$new(this.$original_args()).$to_code()},$NodeWithArgs_parameters_code$5.$$arity=0),nil&&"parameters_code"}($nesting[0],$$($nesting,"ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/iter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$lambda_definition?","$scope","$is_lambda!","$in_scope","$identify!","$add_temp","$process","$inline_args","$compile_arity_check","$stmt","$returned_body","$to_vars","$line","$catch_return","$unshift","$push","$contains_break?","$arity","$arity_check?","$compiler","$parameters_code","$has_top_level_mlhs_arg?","$has_trailing_comma_in_args?","$block_arg","$block_name=","$-","$each","$args","$first","$==","$<<","$updated","$body","$returns","$s","$any?","$original_args","$type","$loc","$expression","$source","$match","$new","$found_break?"]),self.$require("opal/nodes/node_with_args"),self.$require("opal/rewriters/break_finder"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$IterNode_contains_break$ques$11,$IterNode_arity_check_node$10){var $IterNode_contains_break$ques$11=$klass($base,$IterNode_contains_break$ques$11,"IterNode"),$nesting=[$IterNode_contains_break$ques$11].concat($IterNode_arity_check_node$10);return $IterNode_contains_break$ques$11.$$prototype.sexp=nil,$IterNode_contains_break$ques$11.$handle("iter"),$IterNode_contains_break$ques$11.$children("inline_args","body"),Opal.def($IterNode_contains_break$ques$11,"$compile",$IterNode_arity_check_node$10=function(){var $$2,body_code,inline_params=nil,to_vars=nil,identity=nil;return $truthy(this.$scope()["$lambda_definition?"]())&&this["$is_lambda!"](),to_vars=identity=inline_params=nil,$send(this,"in_scope",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return identity=self.$scope()["$identify!"](),self.$add_temp("self = "+identity+".$$s == null ? this : "+identity+".$$s"),inline_params=self.$process(self.$inline_args()),self.$compile_arity_check(),body_code=self.$stmt(self.$returned_body()),to_vars=self.$scope().$to_vars(),self.$line(body_code),$truthy(self.$scope().$catch_return())?(self.$unshift("try {\n"),self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),self.$push(" throw $returner; }")):nil}).$$s=this,$$2.$$arity=0,$$2)),this.$unshift(to_vars),this.$unshift("("+identity+" = function(",inline_params,"){"),this.$push("}, "+identity+".$$s = self,"),$truthy(this["$contains_break?"]())&&this.$push(" "+identity+".$$brk = $brk,"),this.$push(" "+identity+".$$arity = "+this.$arity()+","),$truthy(this.$compiler()["$arity_check?"]())&&this.$push(" "+identity+".$$parameters = "+this.$parameters_code()+","),$truthy(this["$has_top_level_mlhs_arg?"]())&&this.$push(" "+identity+".$$has_top_level_mlhs_arg = true,"),$truthy(this["$has_trailing_comma_in_args?"]())&&this.$push(" "+identity+".$$has_trailing_comma_in_args = true,"),this.$push(" "+identity+")")},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$compile_block_arg",$IterNode_arity_check_node$10=function(){var scope_name,rhs,lhs=nil;return $truthy(this.$block_arg())?(lhs=[this.$block_arg()],$send(this.$scope(),"block_name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),this.$scope().$add_temp(this.$block_arg()),scope_name=this.$scope()["$identify!"](),this.$line(this.$block_arg()+" = "+scope_name+".$$p || nil;"),this.$line("if ("+this.$block_arg()+") "+scope_name+".$$p = null;")):nil},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$extract_underscore_args",$IterNode_arity_check_node$10=function(){var $$5,valid_args=nil,caught_blank_argument=nil,valid_args=[],caught_blank_argument=!1;return $send(this.$args().$children(),"each",[],(($$5=function(arg){null==$$5.$$s||$$5.$$s;return null==arg&&(arg=nil),arg.$children().$first()["$=="]("_")?$truthy(caught_blank_argument)?nil:(caught_blank_argument=!0,valid_args["$<<"](arg)):valid_args["$<<"](arg)}).$$s=this,$$5.$$arity=1,$$5)),this.sexp=this.sexp.$updated(nil,[this.$args().$updated(nil,valid_args),this.$body()])},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$returned_body",$IterNode_arity_check_node$10=function(){var self=this,$ret_or_1=nil;return self.$compiler().$returns($truthy($ret_or_1=self.$body())?$ret_or_1:self.$s("nil"))},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$has_top_level_mlhs_arg?",$IterNode_arity_check_node$10=function(){var $$8;return $send(this.$original_args().$children(),"any?",[],(($$8=function(arg){null==$$8.$$s||$$8.$$s;return null==arg&&(arg=nil),arg.$type()["$=="]("mlhs")}).$$s=this,$$8.$$arity=1,$$8))},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$has_trailing_comma_in_args?",$IterNode_arity_check_node$10=function(){var self=this,$ret_or_2=nil;return $truthy($truthy($ret_or_2=self.$original_args().$loc())?self.$original_args().$loc().$expression():$ret_or_2)?self.$original_args().$loc().$expression().$source().$match(/,\s*\|/):nil},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$arity_check_node",$IterNode_arity_check_node$10=function(){return this.$s("iter_arity_check",this.$original_args())},$IterNode_arity_check_node$10.$$arity=0),Opal.def($IterNode_contains_break$ques$11,"$contains_break?",$IterNode_contains_break$ques$11=function(){var finder=nil;return(finder=$$$($$$($$($nesting,"Opal"),"Rewriters"),"BreakFinder").$new()).$process(this.sexp),finder["$found_break?"]()},$IterNode_contains_break$ques$11.$$arity=0),nil&&"contains_break?"}($nesting[0],$$($nesting,"NodeWithArgs"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/def"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$in_scope","$mid","$mid=","$scope","$-","$==","$type","$defs=","$identify!","$identity","$block_name=","$process","$inline_args","$stmt","$returns","$compiler","$stmts","$compile_block_arg","$add_temp","$compile_arity_check","$uses_zuper","$prepare_super","$unshift","$current_indent","$to_vars","$line","$catch_return","$push","$valid_name?","$arity","$arity_check?","$parameters_code","$parse_comments?","$comments_code","$enable_source_location?","$source_location","$wrap_with_definition","$wrap","$expr?","$+","$join","$map","$comments","$inspect","$text","$add_local"]),self.$require("opal/nodes/node_with_args"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$DefNode_prepare_super$6,$DefNode_comments_code$4){$DefNode_prepare_super$6=$klass($base,$DefNode_prepare_super$6,"DefNode"),[$DefNode_prepare_super$6].concat($DefNode_comments_code$4);return $DefNode_prepare_super$6.$handle("def"),$DefNode_prepare_super$6.$children("mid","inline_args","stmts"),Opal.def($DefNode_prepare_super$6,"$compile",$DefNode_comments_code$4=function(){var $$2,function_name,self=this,inline_params=nil,scope_name=nil,inline_params=nil,scope_name=nil;return $send(self,"in_scope",[],(($$2=function(){var stmt_code,self=null==$$2.$$s?this:$$2.$$s,$writer=nil;return null==self.sexp&&(self.sexp=nil),$writer=[self.$mid()],$send(self.$scope(),"mid=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],self.sexp.$type()["$=="]("defs")&&($writer=[!0],$send(self.$scope(),"defs=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),self.$scope()["$identify!"](),scope_name=self.$scope().$identity(),$writer=["$yield"],$send(self.$scope(),"block_name=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],inline_params=self.$process(self.$inline_args()),stmt_code=self.$stmt(self.$compiler().$returns(self.$stmts())),self.$compile_block_arg(),self.$add_temp("self = this"),self.$compile_arity_check(),$truthy(self.$scope().$uses_zuper())&&self.$prepare_super(),self.$unshift("\n"+self.$current_indent(),self.$scope().$to_vars()),self.$line(stmt_code),$truthy(self.$scope().$catch_return())?(self.$unshift("try {\n"),self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),self.$push(" throw $returner; }")):nil}).$$s=self,$$2.$$arity=0,$$2)),function_name=$truthy(self["$valid_name?"](self.$mid()))?" $$"+self.$mid():"",self.$unshift(") {"),self.$unshift(inline_params),self.$unshift("function"+function_name+"("),$truthy(scope_name)&&self.$unshift(scope_name+" = "),self.$line("}"),self.$push(", "+scope_name+".$$arity = "+self.$arity()),$truthy(self.$compiler()["$arity_check?"]())&&self.$push(", "+scope_name+".$$parameters = "+self.$parameters_code()),$truthy(self.$compiler()["$parse_comments?"]())&&self.$push(", "+scope_name+".$$comments = "+self.$comments_code()),$truthy(self.$compiler()["$enable_source_location?"]())&&self.$push(", "+scope_name+".$$source_location = "+self.$source_location()),self.$wrap_with_definition()},$DefNode_comments_code$4.$$arity=0),Opal.def($DefNode_prepare_super$6,"$wrap_with_definition",$DefNode_comments_code$4=function(){return this.$wrap("Opal.def(self, '$"+this.$mid()+"', ",")"),$truthy(this["$expr?"]())?this.$wrap("(",", nil) && '"+this.$mid()+"'"):this.$unshift("\n"+this.$current_indent())},$DefNode_comments_code$4.$$arity=0),Opal.def($DefNode_prepare_super$6,"$comments_code",$DefNode_comments_code$4=function(){var $$5;return $rb_plus($rb_plus("[",$send(this.$comments(),"map",[],(($$5=function(comment){null==$$5.$$s||$$5.$$s;return null==comment&&(comment=nil),comment.$text().$inspect()}).$$s=this,$$5.$$arity=1,$$5)).$join(", ")),"]")},$DefNode_comments_code$4.$$arity=0),Opal.def($DefNode_prepare_super$6,"$prepare_super",$DefNode_prepare_super$6=function(){return this.$add_local("$zuper"),this.$add_local("$zuper_i"),this.$add_local("$zuper_ii"),this.$line("// Prepare super implicit arguments"),this.$line("for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) {"),this.$line(" $zuper[$zuper_i] = arguments[$zuper_i];"),this.$line("}")},$DefNode_prepare_super$6.$$arity=0),nil&&"prepare_super"}($nesting[0],$$($nesting,"NodeWithArgs"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/defs"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$unshift","$expr","$recvr","$mid","$push","$expr?","$wrap"]),self.$require("opal/nodes/def"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$DefsNode_wrap_with_definition$1,$parent_nesting){$DefsNode_wrap_with_definition$1=$klass($base,$DefsNode_wrap_with_definition$1,"DefsNode"),[$DefsNode_wrap_with_definition$1].concat($parent_nesting);return $DefsNode_wrap_with_definition$1.$handle("defs"),$DefsNode_wrap_with_definition$1.$children("recvr","mid","inline_args","stmts"),Opal.def($DefsNode_wrap_with_definition$1,"$wrap_with_definition",$DefsNode_wrap_with_definition$1=function(){return this.$unshift("Opal.defs(",this.$expr(this.$recvr()),", '$"+this.$mid()+"', "),this.$push(")"),$truthy(this["$expr?"]())?this.$wrap("(",", nil) && '"+this.$mid()+"'"):nil},$DefsNode_wrap_with_definition$1.$$arity=0),nil&&"wrap_with_definition"}($nesting[0],$$($nesting,"DefNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/if"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$truthy","$falsy","$push","$js_truthy","$test","$indent","$line","$stmt","$==","$type","$needs_wrapper?","$wrap","$returns","$compiler","$true_body","$s","$false_body","$expr?","$recv?","$helper","$new_temp","$top_scope","$excl","$from","$to"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$IfNode_needs_wrapper$ques$6,$IfNode_falsy$5){[$IfNode_needs_wrapper$ques$6=$klass($base,$IfNode_needs_wrapper$ques$6,"IfNode")].concat($IfNode_falsy$5),$IfNode_needs_wrapper$ques$6.$handle("if"),$IfNode_needs_wrapper$ques$6.$children("test","true_body","false_body"),Opal.def($IfNode_needs_wrapper$ques$6,"$compile",$IfNode_falsy$5=function(){var $$2,$$3,falsy=nil,truthy=this.$truthy(),falsy=this.$falsy();return this.$push("if (",this.$js_truthy(this.$test()),") {"),$truthy(truthy)&&$send(this,"indent",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return self.$line(self.$stmt(truthy))}).$$s=this,$$2.$$arity=0,$$2)),$truthy(falsy)?falsy.$type()["$=="]("if")?this.$line("} else ",this.$stmt(falsy)):(this.$line("} else {"),$send(this,"indent",[],(($$3=function(){var self=null==$$3.$$s?this:$$3.$$s;return self.$line(self.$stmt(falsy))}).$$s=this,$$3.$$arity=0,$$3)),this.$line("}")):this.$push("}"),$truthy(this["$needs_wrapper?"]())?this.$wrap("(function() {","; return nil; })()"):nil},$IfNode_falsy$5.$$arity=0),Opal.def($IfNode_needs_wrapper$ques$6,"$truthy",$IfNode_falsy$5=function(){var self=this,$ret_or_1=nil;return $truthy(self["$needs_wrapper?"]())?self.$compiler().$returns($truthy($ret_or_1=self.$true_body())?$ret_or_1:self.$s("nil")):self.$true_body()},$IfNode_falsy$5.$$arity=0),Opal.def($IfNode_needs_wrapper$ques$6,"$falsy",$IfNode_falsy$5=function(){var self=this,$ret_or_2=nil;return $truthy(self["$needs_wrapper?"]())?self.$compiler().$returns($truthy($ret_or_2=self.$false_body())?$ret_or_2:self.$s("nil")):self.$false_body()},$IfNode_falsy$5.$$arity=0),Opal.def($IfNode_needs_wrapper$ques$6,"$needs_wrapper?",$IfNode_needs_wrapper$ques$6=function(){var $ret_or_3;return $truthy($ret_or_3=this["$expr?"]())?$ret_or_3:this["$recv?"]()},$IfNode_needs_wrapper$ques$6.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$IFlipFlop_compile$8,$IFlipFlop_excl$7){[$IFlipFlop_compile$8=$klass($base,$IFlipFlop_compile$8,"IFlipFlop")].concat($IFlipFlop_excl$7),$IFlipFlop_compile$8.$handle("iflipflop"),$IFlipFlop_compile$8.$children("from","to"),Opal.def($IFlipFlop_compile$8,"$excl",$IFlipFlop_excl$7=function(){return""},$IFlipFlop_excl$7.$$arity=0),Opal.def($IFlipFlop_compile$8,"$compile",$IFlipFlop_compile$8=function(){var fun_name,ff;return this.$helper("truthy"),ff=(fun_name=this.$top_scope().$new_temp())+".$$ff",this.$push("(typeof "+fun_name+" === 'undefined' ? ("+fun_name+" = function(from, to){"),this.$push(" if (typeof "+ff+" === 'undefined') "+ff+" = false;"),this.$push(" var retval = "+ff+";"),this.$push(" if (!"+ff+") {"),this.$push(" "+ff+" = retval = $truthy(from());"),this.$push(" }"),this.$push(" "+this.$excl()+"if ("+ff+") {"),this.$push(" if ($truthy(to())) "+ff+" = false;"),this.$push(" }"),this.$push(" return retval;"),this.$push("}) : "+fun_name+")("),this.$push(" function() { ",this.$stmt(this.$compiler().$returns(this.$from()))," },"),this.$push(" function() { ",this.$stmt(this.$compiler().$returns(this.$to()))," }"),this.$push(")")},$IFlipFlop_compile$8.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$EFlipFlop_excl$9,$parent_nesting){$EFlipFlop_excl$9=$klass($base,$EFlipFlop_excl$9,"EFlipFlop"),[$EFlipFlop_excl$9].concat($parent_nesting);return $EFlipFlop_excl$9.$handle("eflipflop"),Opal.def($EFlipFlop_excl$9,"$excl",$EFlipFlop_excl$9=function(){return"else "},$EFlipFlop_excl$9.$$arity=0),nil&&"excl"}($nesting[0],$$($nesting,"IFlipFlop"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/logic"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$in_while?","$push","$iter?","$scope","$expr_or_nil","$value","$error","$size","$children","$===","$s","$first","$compile_while","$compile_iter","$[]","$while_loop","$stmt?","$line","$break_val","$nil?","$expr","$[]=","$-","$helper","$identity","$==","$empty_splat?","$recv","$>","$!","$lambda?","$find_parent_def","$expr?","$def?","$return_in_iter?","$return_expr_in_def?","$scope_to_catch_return","$catch_return=","$return_val","$to_s"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$NextNode_value$2,$NextNode_compile$1){[$NextNode_value$2=$klass($base,$NextNode_value$2,"NextNode")].concat($NextNode_compile$1),$NextNode_value$2.$handle("next"),Opal.def($NextNode_value$2,"$compile",$NextNode_compile$1=function(){return $truthy(this["$in_while?"]())?this.$push("continue;"):$truthy(this.$scope()["$iter?"]())?this.$push("return ",this.$expr_or_nil(this.$value()),";"):this.$error("Invalid next")},$NextNode_compile$1.$$arity=0),Opal.def($NextNode_value$2,"$value",$NextNode_value$2=function(){var self=this,$case=nil;return $case=self.$children().$size(),0["$==="]($case)?self.$s("nil"):1["$==="]($case)?self.$children().$first():$send(self,"s",["array"].concat(Opal.to_a(self.$children())))},$NextNode_value$2.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$BreakNode_break_val$6,$BreakNode_compile_iter$5){[$BreakNode_break_val$6=$klass($base,$BreakNode_break_val$6,"BreakNode")].concat($BreakNode_compile_iter$5),$BreakNode_break_val$6.$handle("break"),$BreakNode_break_val$6.$children("value"),Opal.def($BreakNode_break_val$6,"$compile",$BreakNode_compile_iter$5=function(){return $truthy(this["$in_while?"]())?this.$compile_while():$truthy(this.$scope()["$iter?"]())?this.$compile_iter():this.$error("void value expression: cannot use break outside of iter/while")},$BreakNode_compile_iter$5.$$arity=0),Opal.def($BreakNode_break_val$6,"$compile_while",$BreakNode_compile_iter$5=function(){return $truthy(this.$while_loop()["$[]"]("closure"))?this.$push("return ",this.$expr_or_nil(this.$value())):this.$push("break;")},$BreakNode_compile_iter$5.$$arity=0),Opal.def($BreakNode_break_val$6,"$compile_iter",$BreakNode_compile_iter$5=function(){return $truthy(this["$stmt?"]())||this.$error("break must be used as a statement"),this.$line("Opal.brk(",this.$break_val(),", $brk)")},$BreakNode_compile_iter$5.$$arity=0),Opal.def($BreakNode_break_val$6,"$break_val",$BreakNode_break_val$6=function(){return $truthy(this.$value()["$nil?"]())?this.$expr(this.$s("nil")):this.$expr(this.$value())},$BreakNode_break_val$6.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$RedoNode_compile_iter$9,$RedoNode_compile_while$8){[$RedoNode_compile_iter$9=$klass($base,$RedoNode_compile_iter$9,"RedoNode")].concat($RedoNode_compile_while$8),$RedoNode_compile_iter$9.$handle("redo"),Opal.def($RedoNode_compile_iter$9,"$compile",$RedoNode_compile_while$8=function(){return $truthy(this["$in_while?"]())?this.$compile_while():$truthy(this.$scope()["$iter?"]())?this.$compile_iter():this.$push("REDO()")},$RedoNode_compile_while$8.$$arity=0),Opal.def($RedoNode_compile_iter$9,"$compile_while",$RedoNode_compile_while$8=function(){var $writer=["use_redo",!0];return $send(this.$while_loop(),"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$push(this.$while_loop()["$[]"]("redo_var")+" = true; continue;")},$RedoNode_compile_while$8.$$arity=0),Opal.def($RedoNode_compile_iter$9,"$compile_iter",$RedoNode_compile_iter$9=function(){return this.$helper("slice"),this.$push("return "+this.$scope().$identity()+".apply(null, $slice.call(arguments))")},$RedoNode_compile_iter$9.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$SplatNode_compile$11,$SplatNode_empty_splat$ques$10){[$SplatNode_compile$11=$klass($base,$SplatNode_compile$11,"SplatNode")].concat($SplatNode_empty_splat$ques$10),$SplatNode_compile$11.$handle("splat"),$SplatNode_compile$11.$children("value"),Opal.def($SplatNode_compile$11,"$empty_splat?",$SplatNode_empty_splat$ques$10=function(){return this.$value()["$=="](this.$s("array"))},$SplatNode_empty_splat$ques$10.$$arity=0),Opal.def($SplatNode_compile$11,"$compile",$SplatNode_compile$11=function(){return $truthy(this["$empty_splat?"]())?this.$push("[]"):this.$push("Opal.to_a(",this.$recv(this.$value()),")")},$SplatNode_compile$11.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ReturnNode_compile$16,$ReturnNode_scope_to_catch_return$15){[$ReturnNode_compile$16=$klass($base,$ReturnNode_compile$16,"ReturnNode")].concat($ReturnNode_scope_to_catch_return$15),$ReturnNode_compile$16.$handle("return"),$ReturnNode_compile$16.$children("value"),Opal.def($ReturnNode_compile$16,"$return_val",$ReturnNode_scope_to_catch_return$15=function(){var lhs,rhs;return $truthy(this.$value()["$nil?"]())?this.$expr(this.$s("nil")):$truthy((lhs=this.$children().$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))?this.$expr($send(this,"s",["array"].concat(Opal.to_a(this.$children())))):this.$expr(this.$value())},$ReturnNode_scope_to_catch_return$15.$$arity=0),Opal.def($ReturnNode_compile$16,"$return_in_iter?",$ReturnNode_scope_to_catch_return$15=function(){var self=this,$ret_or_1=nil,$ret_or_2=nil,parent_def=nil;return $truthy($truthy($ret_or_1=$truthy($ret_or_2=self.$scope()["$iter?"]())?self.$scope()["$lambda?"]()["$!"]():$ret_or_2)?parent_def=self.$scope().$find_parent_def():$ret_or_1)?parent_def:nil},$ReturnNode_scope_to_catch_return$15.$$arity=0),Opal.def($ReturnNode_compile$16,"$return_expr_in_def?",$ReturnNode_scope_to_catch_return$15=function(){var self=this,$ret_or_3=nil,$ret_or_4=nil;return $truthy($truthy($ret_or_3=self["$expr?"]())?$truthy($ret_or_4=self.$scope()["$def?"]())?$ret_or_4:self.$scope()["$lambda?"]():$ret_or_3)?self.$scope():nil},$ReturnNode_scope_to_catch_return$15.$$arity=0),Opal.def($ReturnNode_compile$16,"$scope_to_catch_return",$ReturnNode_scope_to_catch_return$15=function(){var $ret_or_5;return $truthy($ret_or_5=this["$return_in_iter?"]())?$ret_or_5:this["$return_expr_in_def?"]()},$ReturnNode_scope_to_catch_return$15.$$arity=0),Opal.def($ReturnNode_compile$16,"$compile",$ReturnNode_compile$16=function(){var def_scope,$writer;return $truthy(def_scope=this.$scope_to_catch_return())?($writer=[!0],$send(def_scope,"catch_return=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$push("Opal.ret(",this.$return_val(),")")):$truthy(this["$stmt?"]())?this.$push("return ",this.$return_val()):this.$error("void value expression: cannot return as an expression")},$ReturnNode_compile$16.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$JSReturnNode_compile$17,$parent_nesting){[$JSReturnNode_compile$17=$klass($base,$JSReturnNode_compile$17,"JSReturnNode")].concat($parent_nesting),$JSReturnNode_compile$17.$handle("js_return"),$JSReturnNode_compile$17.$children("value"),Opal.def($JSReturnNode_compile$17,"$compile",$JSReturnNode_compile$17=function(){return this.$push("return "),this.$push(this.$expr(this.$value()))},$JSReturnNode_compile$17.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$JSTempNode_compile$18,$parent_nesting){[$JSTempNode_compile$18=$klass($base,$JSTempNode_compile$18,"JSTempNode")].concat($parent_nesting),$JSTempNode_compile$18.$handle("js_tmp"),$JSTempNode_compile$18.$children("value"),Opal.def($JSTempNode_compile$18,"$compile",$JSTempNode_compile$18=function(){return this.$push(this.$value().$to_s())},$JSTempNode_compile$18.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$BlockPassNode_compile$19,$parent_nesting){$BlockPassNode_compile$19=$klass($base,$BlockPassNode_compile$19,"BlockPassNode"),[$BlockPassNode_compile$19].concat($parent_nesting);return $BlockPassNode_compile$19.$handle("block_pass"),$BlockPassNode_compile$19.$children("value"),Opal.def($BlockPassNode_compile$19,"$compile",$BlockPassNode_compile$19=function(){return this.$push(this.$expr(this.$s("send",this.$value(),"to_proc",this.$s("arglist"))))},$BlockPassNode_compile$19.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/definitions"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$range=Opal.range,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs(["$require","$handle","$children","$each","$line","$expr","$type","$new_name","$===","$helper","$inspect","$[]","$to_s","$first","$old_name","$push","$error","$empty?","$stmt?","$compile_children","$simple_children?","$compile_inline_children","$>","$size","$wrap","$==","$returned_children","$+","$returns","$compiler","$s","$process","$freeze","$none?","$include?","$map","$each_with_index","$reject","$to_proc"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$UndefNode_compile$1,$parent_nesting){[$UndefNode_compile$1=$klass($base,$UndefNode_compile$1,"UndefNode")].concat($parent_nesting),$UndefNode_compile$1.$handle("undef"),$UndefNode_compile$1.$children("value"),Opal.def($UndefNode_compile$1,"$compile",$UndefNode_compile$1=function(){var $$2;return $send(this.$children(),"each",[],(($$2=function(child){var self=null==$$2.$$s?this:$$2.$$s;return null==child&&(child=nil),self.$line("Opal.udef(self, '$' + ",self.$expr(child),");")}).$$s=this,$$2.$$arity=1,$$2))},$UndefNode_compile$1.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$AliasNode_compile$3,$parent_nesting){[$AliasNode_compile$3=$klass($base,$AliasNode_compile$3,"AliasNode")].concat($parent_nesting),$AliasNode_compile$3.$handle("alias"),$AliasNode_compile$3.$children("new_name","old_name"),Opal.def($AliasNode_compile$3,"$compile",$AliasNode_compile$3=function(){var self=this,$case=nil,new_name_str=nil,old_name_str=nil;return $case=self.$new_name().$type(),"gvar"["$==="]($case)?(self.$helper("alias_gvar"),new_name_str=self.$new_name().$children().$first().$to_s()["$[]"]($range(1,-1,!1)).$inspect(),old_name_str=self.$old_name().$children().$first().$to_s()["$[]"]($range(1,-1,!1)).$inspect(),self.$push("$alias_gvar(",new_name_str,", ",old_name_str,")")):"dsym"["$==="]($case)||"sym"["$==="]($case)?(self.$helper("alias"),self.$push("$alias(self, ",self.$expr(self.$new_name()),", ",self.$expr(self.$old_name()),")")):self.$error("Opal doesn't know yet how to alias with "+self.$new_name().$type())},$AliasNode_compile$3.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$BeginNode_compile_inline_children$10,$BeginNode_simple_children$ques$8){var $nesting=[$BeginNode_compile_inline_children$10=$klass($base,$BeginNode_compile_inline_children$10,"BeginNode")].concat($BeginNode_simple_children$ques$8);$BeginNode_compile_inline_children$10.$$prototype.level=$BeginNode_compile_inline_children$10.$$prototype.returned_children=nil,$BeginNode_compile_inline_children$10.$handle("begin"),Opal.def($BeginNode_compile_inline_children$10,"$compile",$BeginNode_simple_children$ques$8=function(){var lhs,rhs;return $truthy(this.$children()["$empty?"]())?this.$push("nil"):$truthy(this["$stmt?"]())?this.$compile_children(this.$children(),this.level):$truthy(this["$simple_children?"]())?(this.$compile_inline_children(this.$children(),this.level),$truthy((lhs=this.$children().$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))?this.$wrap("(",")"):nil):this.$children().$size()["$=="](1)?this.$compile_inline_children(this.$returned_children(),this.level):(this.$compile_children(this.$returned_children(),this.level),this.$wrap("(function() {","})()"))},$BeginNode_simple_children$ques$8.$$arity=0),Opal.def($BeginNode_compile_inline_children$10,"$returned_children",$BeginNode_simple_children$ques$8=function(){var $a,self=this,$b=nil,lhs=nil,rhs=nil;return self.returned_children=$truthy($b=self.returned_children)?$b:($a=[].concat(Opal.to_a(self.$children())),$b=($b=$a.length-1)<0?0:$b,lhs=$slice.call($a,0,$b),rhs=null==$a[$b]?nil:$a[$b],$truthy(rhs)?(lhs=lhs,rhs=[self.$compiler().$returns(rhs)],"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)):[self.$s("nil")])},$BeginNode_simple_children$ques$8.$$arity=0),Opal.def($BeginNode_compile_inline_children$10,"$compile_children",$BeginNode_simple_children$ques$8=function(children,level){var $$7;return $send(children,"each",[],(($$7=function(child){var self=null==$$7.$$s?this:$$7.$$s;return null==child&&(child=nil),self.$line(self.$process(child,level),";")}).$$s=this,$$7.$$arity=1,$$7))},$BeginNode_simple_children$ques$8.$$arity=2),Opal.const_set($nesting[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),Opal.def($BeginNode_compile_inline_children$10,"$simple_children?",$BeginNode_simple_children$ques$8=function(){var $$9;return $send(this.$children(),"none?",[],(($$9=function(child){null==$$9.$$s||$$9.$$s;return null==child&&(child=nil),$$($nesting,"COMPLEX_CHILDREN")["$include?"](child.$type())}).$$s=this,$$9.$$arity=1,$$9))},$BeginNode_simple_children$ques$8.$$arity=0),Opal.def($BeginNode_compile_inline_children$10,"$compile_inline_children",$BeginNode_compile_inline_children$10=function(children,level){var $$11,$$12,processed_children=$send(children,"map",[],(($$11=function(child){var self=null==$$11.$$s?this:$$11.$$s;return null==child&&(child=nil),self.$process(child,level)}).$$s=this,$$11.$$arity=1,$$11));return $send($send(processed_children,"reject",[],"empty?".$to_proc()),"each_with_index",[],(($$12=function(child,idx){var self=null==$$12.$$s?this:$$12.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),idx["$=="](0)||self.$push(", "),self.$push(child)}).$$s=this,$$12.$$arity=2,$$12))},$BeginNode_compile_inline_children$10.$$arity=2)}($nesting[0],$$($nesting,"ScopeNode"),$nesting),function($base,self,$parent_nesting){self=$klass($base,self,"KwBeginNode"),[self].concat($parent_nesting);return self.$handle("kwbegin")}($nesting[0],$$($nesting,"BeginNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/yield"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$find_yielding_scope","$uses_block!","$block_name","$block_name=","$-","$yields_single_arg?","$children","$push","$expr","$first","$wrap","$s","$uses_splat?","$scope","$def?","$parent","$!","$==","$size","$any?","$type","$handle","$compile_call"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$BaseYieldNode_uses_splat$ques$4,$BaseYieldNode_yields_single_arg$ques$3){[$BaseYieldNode_uses_splat$ques$4=$klass($base,$BaseYieldNode_uses_splat$ques$4,"BaseYieldNode")].concat($BaseYieldNode_yields_single_arg$ques$3),Opal.def($BaseYieldNode_uses_splat$ques$4,"$compile_call",$BaseYieldNode_yields_single_arg$ques$3=function(){var block_name,rhs,yielding_scope=nil,lhs=nil;return(yielding_scope=this.$find_yielding_scope())["$uses_block!"](),$truthy(yielding_scope.$block_name())||(lhs=["$yield"],$send(yielding_scope,"block_name=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs)),block_name=yielding_scope.$block_name(),$truthy(this["$yields_single_arg?"](this.$children()))?(this.$push(this.$expr(this.$children().$first())),this.$wrap("Opal.yield1("+block_name+", ",")")):(this.$push(this.$expr($send(this,"s",["arglist"].concat(Opal.to_a(this.$children()))))),$truthy(this["$uses_splat?"](this.$children()))?this.$wrap("Opal.yieldX("+block_name+", ",")"):this.$wrap("Opal.yieldX("+block_name+", [","])"))},$BaseYieldNode_yields_single_arg$ques$3.$$arity=0),Opal.def($BaseYieldNode_uses_splat$ques$4,"$find_yielding_scope",$BaseYieldNode_yields_single_arg$ques$3=function(){for(var working=nil,$ret_or_2=nil,working=this.$scope();$truthy(working)&&!$truthy($truthy($ret_or_2=working.$block_name())?$ret_or_2:working["$def?"]());)working=working.$parent();return working},$BaseYieldNode_yields_single_arg$ques$3.$$arity=0),Opal.def($BaseYieldNode_uses_splat$ques$4,"$yields_single_arg?",$BaseYieldNode_yields_single_arg$ques$3=function(children){var $ret_or_3;return $truthy($ret_or_3=this["$uses_splat?"](children)["$!"]())?children.$size()["$=="](1):$ret_or_3},$BaseYieldNode_yields_single_arg$ques$3.$$arity=1),Opal.def($BaseYieldNode_uses_splat$ques$4,"$uses_splat?",$BaseYieldNode_uses_splat$ques$4=function(children){var $$5;return $send(children,"any?",[],(($$5=function(child){null==$$5.$$s||$$5.$$s;return null==child&&(child=nil),child.$type()["$=="]("splat")}).$$s=this,$$5.$$arity=1,$$5))},$BaseYieldNode_uses_splat$ques$4.$$arity=1)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$YieldNode_compile$6,$parent_nesting){[$YieldNode_compile$6=$klass($base,$YieldNode_compile$6,"YieldNode")].concat($parent_nesting),$YieldNode_compile$6.$handle("yield"),Opal.def($YieldNode_compile$6,"$compile",$YieldNode_compile$6=function(){return this.$compile_call()},$YieldNode_compile$6.$$arity=0)}($nesting[0],$$($nesting,"BaseYieldNode"),$nesting),function($base,$ReturnableYieldNode_compile$7,$parent_nesting){$ReturnableYieldNode_compile$7=$klass($base,$ReturnableYieldNode_compile$7,"ReturnableYieldNode"),[$ReturnableYieldNode_compile$7].concat($parent_nesting);return $ReturnableYieldNode_compile$7.$handle("returnable_yield"),Opal.def($ReturnableYieldNode_compile$7,"$compile",$ReturnableYieldNode_compile$7=function(){return this.$compile_call(),this.$wrap("return ",";")},$ReturnableYieldNode_compile$7.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"BaseYieldNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/rescue"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs(["$require","$handle","$children","$push","$in_ensure","$line","$stmt","$body_sexp","$indent","$has_rescue_else?","$unshift","$rescue_else_code","$process","$compiler","$ensr_sexp","$wrap_in_closure?","$wrap","$returns","$begn","$ensr","$s","$recv?","$expr?","$rescue_else_sexp","$scope","$stmt?","$detect","$[]","$!=","$type","$rescue_else_sexp=","$-","$handle_rescue_else_manually?","$in_rescue","$body_code","$each_with_index","$==","$retry_id","$nil?","$body","$!","$in_ensure?","$gen_retry_id","$attr_reader","$expr","$klasses","$lvar","$updated","$in_resbody","$rescue_body","$klasses_sexp","$in_resbody?","$error","$current_rescue"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$EnsureNode_rescue_else_code$9,$EnsureNode_wrap_in_closure$ques$8){[$EnsureNode_rescue_else_code$9=$klass($base,$EnsureNode_rescue_else_code$9,"EnsureNode")].concat($EnsureNode_wrap_in_closure$ques$8),$EnsureNode_rescue_else_code$9.$handle("ensure"),$EnsureNode_rescue_else_code$9.$children("begn","ensr"),Opal.def($EnsureNode_rescue_else_code$9,"$compile",$EnsureNode_wrap_in_closure$ques$8=function(){var $$2,$$3;return this.$push("try {"),$send(this,"in_ensure",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return self.$line(self.$stmt(self.$body_sexp()))}).$$s=this,$$2.$$arity=0,$$2)),this.$line("} finally {"),$send(this,"indent",[],(($$3=function(){var $$4,self=null==$$3.$$s?this:$$3.$$s;return null==self.level&&(self.level=nil),$truthy(self["$has_rescue_else?"]())?(self.$unshift("var $no_errors = true; "),self.$line("var $rescue_else_result;"),self.$line("if ($no_errors) { "),$send(self,"indent",[],(($$4=function(){var $$5,self=null==$$4.$$s?this:$$4.$$s;return self.$line("$rescue_else_result = (function() {"),$send(self,"indent",[],(($$5=function(){var self=null==$$5.$$s?this:$$5.$$s;return self.$line(self.$stmt(self.$rescue_else_code()))}).$$s=self,$$5.$$arity=0,$$5)),self.$line("})();")}).$$s=self,$$4.$$arity=0,$$4)),self.$line("}"),self.$line(self.$compiler().$process(self.$ensr_sexp(),self.level)),self.$line("if ($no_errors) { return $rescue_else_result; }")):self.$line(self.$compiler().$process(self.$ensr_sexp(),self.level))}).$$s=this,$$3.$$arity=0,$$3)),this.$line("}"),$truthy(this["$wrap_in_closure?"]())?this.$wrap("(function() { ","; })()"):nil},$EnsureNode_wrap_in_closure$ques$8.$$arity=0),Opal.def($EnsureNode_rescue_else_code$9,"$body_sexp",$EnsureNode_wrap_in_closure$ques$8=function(){return $truthy(this["$wrap_in_closure?"]())?this.$compiler().$returns(this.$begn()):this.$begn()},$EnsureNode_wrap_in_closure$ques$8.$$arity=0),Opal.def($EnsureNode_rescue_else_code$9,"$ensr_sexp",$EnsureNode_wrap_in_closure$ques$8=function(){var $ret_or_1;return $truthy($ret_or_1=this.$ensr())?$ret_or_1:this.$s("nil")},$EnsureNode_wrap_in_closure$ques$8.$$arity=0),Opal.def($EnsureNode_rescue_else_code$9,"$wrap_in_closure?",$EnsureNode_wrap_in_closure$ques$8=function(){var $ret_or_2,self=this,$ret_or_3=nil;return $truthy($ret_or_2=$truthy($ret_or_3=self["$recv?"]())?$ret_or_3:self["$expr?"]())?$ret_or_2:self["$has_rescue_else?"]()},$EnsureNode_wrap_in_closure$ques$8.$$arity=0),Opal.def($EnsureNode_rescue_else_code$9,"$rescue_else_code",$EnsureNode_rescue_else_code$9=function(){var rescue_else_code=nil,rescue_else_code=this.$scope().$rescue_else_sexp();return $truthy(this["$stmt?"]())||(rescue_else_code=this.$compiler().$returns(rescue_else_code)),rescue_else_code},$EnsureNode_rescue_else_code$9.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,self,$RescueNode_gen_retry_id$21){[self=$klass($base,self,"RescueNode")].concat($RescueNode_gen_retry_id$21),self.$$prototype.retry_id=nil,self.$handle("rescue"),self.$children("body"),Opal.def(self,"$compile",$RescueNode_gen_retry_id$21=function(){var $$11,$$12,rhs,self=this,lhs=nil,$ret_or_6=nil,lhs=[$send(self.$children()["$[]"]($range(1,-1,!1)),"detect",[],(($$11=function(sexp){var $ret_or_4;null==$$11.$$s||$$11.$$s;return null==sexp&&(sexp=nil),$truthy($ret_or_4=sexp)?sexp.$type()["$!="]("resbody"):$ret_or_4}).$$s=self,$$11.$$arity=1,$$11))];return $send(self.$scope(),"rescue_else_sexp=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),$truthy(self["$handle_rescue_else_manually?"]())&&self.$line("var $no_errors = true;"),$send(self,"in_rescue",[self],(($$12=function(){var $$13,$$14,$$16,self=null==$$12.$$s?this:$$12.$$s;return self.$push("try {"),$send(self,"indent",[],(($$13=function(){var self=null==$$13.$$s?this:$$13.$$s;return self.$line(self.$stmt(self.$body_code()))}).$$s=self,$$13.$$arity=0,$$13)),self.$line("} catch ($err) {"),$send(self,"indent",[],(($$14=function(){var $$15,self=null==$$14.$$s?this:$$14.$$s;return $truthy(self["$has_rescue_else?"]())&&self.$line("$no_errors = false;"),$send(self.$children()["$[]"]($range(1,-1,!1)),"each_with_index",[],(($$15=function(child,idx){var self=null==$$15.$$s?this:$$15.$$s,$ret_or_5=nil;return null==self.level&&(self.level=nil),null==child&&(child=nil),null==idx&&(idx=nil),$truthy($truthy($ret_or_5=child)?child.$type()["$=="]("resbody"):$ret_or_5)?(idx["$=="](0)||self.$push(" else "),self.$line(self.$process(child,self.level))):nil}).$$s=self,$$15.$$arity=2,$$15)),self.$push(" else { throw $err; }")}).$$s=self,$$14.$$arity=0,$$14)),self.$line("}"),$truthy(self["$handle_rescue_else_manually?"]())&&(self.$push("finally {"),$send(self,"indent",[],(($$16=function(){var $$17,self=null==$$16.$$s?this:$$16.$$s;return self.$line("if ($no_errors) { "),$send(self,"indent",[],(($$17=function(){var self=null==$$17.$$s?this:$$17.$$s;return self.$line(self.$stmt(self.$rescue_else_code()))}).$$s=self,$$17.$$arity=0,$$17)),self.$line("}")}).$$s=self,$$16.$$arity=0,$$16)),self.$push("}")),$truthy(self.$retry_id())?self.$wrap(self.$retry_id()+": do { "," break; } while(1)"):nil}).$$s=self,$$12.$$arity=0,$$12)),$truthy($truthy($ret_or_6=self["$expr?"]())?$ret_or_6:self["$recv?"]())?self.$wrap("(function() { ","})()"):nil},$RescueNode_gen_retry_id$21.$$arity=0),Opal.def(self,"$body_code",$RescueNode_gen_retry_id$21=function(){var self=this,body_code=nil,$ret_or_7=nil,body_code=$truthy($truthy($ret_or_7=self.$body()["$nil?"]())?$ret_or_7:self.$body().$type()["$=="]("resbody"))?self.$s("nil"):self.$body();return $truthy(self["$stmt?"]())||(body_code=self.$compiler().$returns(body_code)),body_code},$RescueNode_gen_retry_id$21.$$arity=0),Opal.def(self,"$rescue_else_code",$RescueNode_gen_retry_id$21=function(){var rescue_else_code=nil,rescue_else_code=this.$scope().$rescue_else_sexp();return $truthy(this["$stmt?"]())||(rescue_else_code=this.$compiler().$returns(rescue_else_code)),rescue_else_code},$RescueNode_gen_retry_id$21.$$arity=0),Opal.def(self,"$handle_rescue_else_manually?",$RescueNode_gen_retry_id$21=function(){var $ret_or_8;return $truthy($ret_or_8=this["$in_ensure?"]()["$!"]())?this["$has_rescue_else?"]():$ret_or_8},$RescueNode_gen_retry_id$21.$$arity=0),Opal.def(self,"$gen_retry_id",$RescueNode_gen_retry_id$21=function(){var self=this,$ret_or_9=nil;return self.retry_id=$truthy($ret_or_9=self.retry_id)?$ret_or_9:self.$scope().$gen_retry_id()},$RescueNode_gen_retry_id$21.$$arity=0),self.$attr_reader("retry_id")}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$ResBodyNode_rescue_body$27,$ResBodyNode_klasses$26){[$ResBodyNode_rescue_body$27=$klass($base,$ResBodyNode_rescue_body$27,"ResBodyNode")].concat($ResBodyNode_klasses$26),$ResBodyNode_rescue_body$27.$handle("resbody"),$ResBodyNode_rescue_body$27.$children("klasses_sexp","lvar","body"),Opal.def($ResBodyNode_rescue_body$27,"$compile",$ResBodyNode_klasses$26=function(){var $$23;return this.$push("if (Opal.rescue($err, ",this.$expr(this.$klasses()),")) {"),$send(this,"indent",[],(($$23=function(){var $$24,self=null==$$23.$$s?this:$$23.$$s;return $truthy(self.$lvar())&&self.$push(self.$expr(self.$lvar().$updated(nil,[].concat(Opal.to_a(self.$lvar().$children())).concat([self.$s("js_tmp","$err")])))),self.$line("try {"),$send(self,"indent",[],(($$24=function(){var $$25,self=null==$$24.$$s?this:$$24.$$s;return $send(self,"in_resbody",[],(($$25=function(){var self=null==$$25.$$s?this:$$25.$$s;return self.$line(self.$stmt(self.$rescue_body()))}).$$s=self,$$25.$$arity=0,$$25))}).$$s=self,$$24.$$arity=0,$$24)),self.$line("} finally { Opal.pop_exception(); }")}).$$s=this,$$23.$$arity=0,$$23)),this.$line("}")},$ResBodyNode_klasses$26.$$arity=0),Opal.def($ResBodyNode_rescue_body$27,"$klasses",$ResBodyNode_klasses$26=function(){var $ret_or_10;return $truthy($ret_or_10=this.$klasses_sexp())?$ret_or_10:this.$s("array",this.$s("const",nil,"StandardError"))},$ResBodyNode_klasses$26.$$arity=0),Opal.def($ResBodyNode_rescue_body$27,"$rescue_body",$ResBodyNode_rescue_body$27=function(){var self=this,body_code=nil,$ret_or_11=nil,body_code=$truthy($ret_or_11=self.$body())?$ret_or_11:self.$s("nil");return $truthy(self["$stmt?"]())||(body_code=self.$compiler().$returns(body_code)),body_code},$ResBodyNode_rescue_body$27.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$RetryNode_compile$28,$parent_nesting){$RetryNode_compile$28=$klass($base,$RetryNode_compile$28,"RetryNode"),[$RetryNode_compile$28].concat($parent_nesting);return $RetryNode_compile$28.$handle("retry"),Opal.def($RetryNode_compile$28,"$compile",$RetryNode_compile$28=function(){return $truthy(this["$in_resbody?"]())||this.$error("Invalid retry"),this.$push("continue "+this.$scope().$current_rescue().$gen_retry_id())},$RetryNode_compile$28.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/case"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs(["$require","$handle","$children","$in_case","$compiler","$compile_code","$needs_closure?","$wrap","$condition","$[]=","$case_stmt","$-","$add_local","$push","$expr","$each_with_index","$case_parts","$line","$type","$===","$returns","$==","$stmt","$!","$stmt?","$[]","$when_checks","$js_truthy","$s","$process","$body_code","$last"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$CaseNode_case_stmt$7,$CaseNode_case_parts$6){[$CaseNode_case_stmt$7=$klass($base,$CaseNode_case_stmt$7,"CaseNode")].concat($CaseNode_case_parts$6),$CaseNode_case_stmt$7.$handle("case"),$CaseNode_case_stmt$7.$children("condition"),Opal.def($CaseNode_case_stmt$7,"$compile",$CaseNode_case_parts$6=function(){var $$2;return $send(this.$compiler(),"in_case",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return self.$compile_code(),$truthy(self["$needs_closure?"]())?self.$wrap("(function() {","})()"):nil}).$$s=this,$$2.$$arity=0,$$2))},$CaseNode_case_parts$6.$$arity=0),Opal.def($CaseNode_case_stmt$7,"$compile_code",$CaseNode_case_parts$6=function(){var $$4,rhs,self=this,handled_else=nil,lhs=nil,$ret_or_1=nil,handled_else=!1;return $truthy(self.$condition())&&(lhs=["cond",!0],$send(self.$case_stmt(),"[]=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),self.$add_local("$case"),self.$push("$case = ",self.$expr(self.$condition()),";")),$send(self.$case_parts(),"each_with_index",[],(($$4=function(wen,idx){var self=null==$$4.$$s?this:$$4.$$s,$case=nil;return null==wen&&(wen=nil),null==idx&&(idx=nil),$truthy(wen)?(self.$line(),$case=wen.$type(),"when"["$==="]($case)?($truthy(self["$needs_closure?"]())&&(wen=self.$compiler().$returns(wen)),idx["$=="](0)||self.$push("else "),self.$push(self.$stmt(wen))):(handled_else=!0,$truthy(self["$needs_closure?"]())&&(wen=self.$compiler().$returns(wen)),self.$push("else {",self.$stmt(wen),"}"))):nil}).$$s=self,$$4.$$arity=2,$$4)),$truthy($truthy($ret_or_1=self["$needs_closure?"]())?handled_else["$!"]():$ret_or_1)?(self.$line(),self.$push("else { return nil }")):nil},$CaseNode_case_parts$6.$$arity=0),Opal.def($CaseNode_case_stmt$7,"$needs_closure?",$CaseNode_case_parts$6=function(){return this["$stmt?"]()["$!"]()},$CaseNode_case_parts$6.$$arity=0),Opal.def($CaseNode_case_stmt$7,"$case_parts",$CaseNode_case_parts$6=function(){return this.$children()["$[]"]($range(1,-1,!1))},$CaseNode_case_parts$6.$$arity=0),Opal.def($CaseNode_case_stmt$7,"$case_stmt",$CaseNode_case_stmt$7=function(){return this.$compiler().$case_stmt()},$CaseNode_case_stmt$7.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$WhenNode_body_code$12,$WhenNode_case_stmt$11){$WhenNode_body_code$12=$klass($base,$WhenNode_body_code$12,"WhenNode"),[$WhenNode_body_code$12].concat($WhenNode_case_stmt$11);return $WhenNode_body_code$12.$$prototype.level=nil,$WhenNode_body_code$12.$handle("when"),$WhenNode_body_code$12.$children("whens","body"),Opal.def($WhenNode_body_code$12,"$compile",$WhenNode_case_stmt$11=function(){var $$9;return this.$push("if ("),$send(this.$when_checks(),"each_with_index",[],(($$9=function(check,idx){var call,self=null==$$9.$$s?this:$$9.$$s;return null==check&&(check=nil),null==idx&&(idx=nil),idx["$=="](0)||self.$push(" || "),check.$type()["$=="]("splat")?(self.$push("(function($splt) { for (var i = 0, ii = $splt.length; i < ii; i++) {"),$truthy(self.$case_stmt()["$[]"]("cond"))?self.$push("if ($splt[i]['$===']($case)) { return true; }"):self.$push("if (",self.$js_truthy(check),")) { return true; }"),self.$push("} return false; })(",self.$expr(check.$children()["$[]"](0)),")")):$truthy(self.$case_stmt()["$[]"]("cond"))?(call=self.$s("send",check,"===",self.$s("arglist",self.$s("js_tmp","$case"))),self.$push(self.$expr(call))):self.$push(self.$js_truthy(check))}).$$s=this,$$9.$$arity=2,$$9)),this.$push(") {",this.$process(this.$body_code(),this.level),"}")},$WhenNode_case_stmt$11.$$arity=0),Opal.def($WhenNode_body_code$12,"$when_checks",$WhenNode_case_stmt$11=function(){return this.$children()["$[]"]($range(0,-2,!1))},$WhenNode_case_stmt$11.$$arity=0),Opal.def($WhenNode_body_code$12,"$case_stmt",$WhenNode_case_stmt$11=function(){return this.$compiler().$case_stmt()},$WhenNode_case_stmt$11.$$arity=0),Opal.def($WhenNode_body_code$12,"$body_code",$WhenNode_body_code$12=function(){var $ret_or_2;return $truthy($ret_or_2=this.$children().$last())?$ret_or_2:this.$s("nil")},$WhenNode_body_code$12.$$arity=0),nil&&"body_code"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/super"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$include?","$type","$s","$helper","$push","$compile_receiver","$compile_method_body","$compile_method_name","$compile_arguments","$compile_block_pass","$private","$def?","$scope","$find_parent_def","$to_s","$mid","$def_scope","$identify!","$method_id","$def_scope_identity","$defined_check_param","$allow_stubs","$super_chain","$join","$map","$implicit_arguments_param","$super_method_invocation","$iter?","$super_block_invocation","$raise","$handle","$wrap","$uses_block!","$compile_using_send","$==","$iter","$uses_zuper=","$-","$block_name","$!","$<<","$empty?","$children","$arglist","$expr","$==="]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$BaseSuperNode_compile_method_name$13,$BaseSuperNode_compile_method_body$12){var $BaseSuperNode_initialize$1;[$BaseSuperNode_compile_method_name$13=$klass($base,$BaseSuperNode_compile_method_name$13,"BaseSuperNode")].concat($BaseSuperNode_compile_method_body$12),$BaseSuperNode_compile_method_name$13.$$prototype.sexp=$BaseSuperNode_compile_method_name$13.$$prototype.def_scope=nil,Opal.def($BaseSuperNode_compile_method_name$13,"$initialize",$BaseSuperNode_initialize$1=function($a){var $b,rest,$zuper_ii,$c=$BaseSuperNode_initialize$1.$$p,args=nil,last_child=nil,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($c&&($BaseSuperNode_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$BaseSuperNode_initialize$1,!1,!0),"initialize",$zuper,$c),args=[].concat(Opal.to_a(this.sexp)),$c=($c=($b=[].concat(Opal.to_a(args))).length-1)<0?0:$c,rest=$slice.call($b,0,$c),last_child=null==$b[$c]?nil:$b[$c],$truthy($truthy($ret_or_1=last_child)?["iter","block_pass"]["$include?"](last_child.$type()):$ret_or_1)?(this.iter=last_child,args=rest):this.iter=this.$s("js_tmp","null"),this.arglist=$send(this,"s",["arglist"].concat(Opal.to_a(args))),this.recvr=this.$s("self")},$BaseSuperNode_initialize$1.$$arity=-1),Opal.def($BaseSuperNode_compile_method_name$13,"$compile_using_send",$BaseSuperNode_compile_method_body$12=function(){return this.$helper("send2"),this.$push("$send2("),this.$compile_receiver(),this.$compile_method_body(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")},$BaseSuperNode_compile_method_body$12.$$arity=0),$BaseSuperNode_compile_method_name$13.$private(),Opal.def($BaseSuperNode_compile_method_name$13,"$def_scope",$BaseSuperNode_compile_method_body$12=function(){var self=this,$ret_or_2=nil;return self.def_scope=$truthy($ret_or_2=self.def_scope)?$ret_or_2:$truthy(self.$scope()["$def?"]())?self.$scope():self.$scope().$find_parent_def()},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$defined_check_param",$BaseSuperNode_compile_method_body$12=function(){return"false"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$implicit_arguments_param",$BaseSuperNode_compile_method_body$12=function(){return"false"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$method_id",$BaseSuperNode_compile_method_body$12=function(){return this.$def_scope().$mid().$to_s()},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$def_scope_identity",$BaseSuperNode_compile_method_body$12=function(){return this.$def_scope()["$identify!"](this.$def_scope().$mid())},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$allow_stubs",$BaseSuperNode_compile_method_body$12=function(){return"true"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$super_method_invocation",$BaseSuperNode_compile_method_body$12=function(){return this.$helper("find_super"),"$find_super(self, '"+this.$method_id()+"', "+this.$def_scope_identity()+", "+this.$defined_check_param()+", "+this.$allow_stubs()+")"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$super_block_invocation",$BaseSuperNode_compile_method_body$12=function(){var $a,$$11,chain,cur_defn;return this.$helper("find_block_super"),$a=this.$scope().$super_chain(),chain=null==($a=Opal.to_ary($a))[0]?nil:$a[0],cur_defn=null==$a[1]?nil:$a[1],"$find_block_super(self, "+(null==$a[2]?nil:$a[2])+", ("+$send(chain,"map",[],(($$11=function(c){null==$$11.$$s||$$11.$$s;return null==c&&(c=nil),c+".$$def"}).$$s=this,$$11.$$arity=1,$$11)).$join(" || ")+" || "+cur_defn+"), "+this.$defined_check_param()+", "+this.$implicit_arguments_param()+")"},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$compile_method_body",$BaseSuperNode_compile_method_body$12=function(){return this.$push(", "),$truthy(this.$scope()["$def?"]())?this.$push(this.$super_method_invocation()):$truthy(this.$scope()["$iter?"]())?this.$push(this.$super_block_invocation()):this.$raise("super must be called from method body or block")},$BaseSuperNode_compile_method_body$12.$$arity=0),Opal.def($BaseSuperNode_compile_method_name$13,"$compile_method_name",$BaseSuperNode_compile_method_name$13=function(){var $a,mid;return $truthy(this.$scope()["$def?"]())?this.$push(", '"+this.$method_id()+"'"):$truthy(this.$scope()["$iter?"]())?($a=this.$scope().$super_chain(),null==($a=Opal.to_ary($a))[0]||$a[0],null==$a[1]||$a[1],mid=null==$a[2]?nil:$a[2],this.$push(", "+mid)):nil},$BaseSuperNode_compile_method_name$13.$$arity=0)}($nesting[0],$$($nesting,"CallNode"),$nesting),function($base,$DefinedSuperNode_compile$16,$DefinedSuperNode_defined_check_param$15){[$DefinedSuperNode_compile$16=$klass($base,$DefinedSuperNode_compile$16,"DefinedSuperNode")].concat($DefinedSuperNode_defined_check_param$15),$DefinedSuperNode_compile$16.$handle("defined_super"),Opal.def($DefinedSuperNode_compile$16,"$allow_stubs",$DefinedSuperNode_defined_check_param$15=function(){return"false"},$DefinedSuperNode_defined_check_param$15.$$arity=0),Opal.def($DefinedSuperNode_compile$16,"$defined_check_param",$DefinedSuperNode_defined_check_param$15=function(){return"true"},$DefinedSuperNode_defined_check_param$15.$$arity=0),Opal.def($DefinedSuperNode_compile$16,"$compile",$DefinedSuperNode_compile$16=function(){return this.$compile_receiver(),this.$compile_method_body(),this.$wrap("((",') != null ? "super" : nil)')},$DefinedSuperNode_compile$16.$$arity=0)}($nesting[0],$$($nesting,"BaseSuperNode"),$nesting),function($base,$SuperNode_compile$18,$parent_nesting){var $SuperNode_initialize$17;[$SuperNode_compile$18=$klass($base,$SuperNode_compile$18,"SuperNode")].concat($parent_nesting),$SuperNode_compile$18.$handle("super"),Opal.def($SuperNode_compile$18,"$initialize",$SuperNode_initialize$17=function($a){var $zuper_ii,$iter=$SuperNode_initialize$17.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($SuperNode_initialize$17.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$SuperNode_initialize$17,!1,!0),"initialize",$zuper,$iter),$truthy(this.$scope()["$def?"]())?this.$scope()["$uses_block!"]():nil},$SuperNode_initialize$17.$$arity=-1),Opal.def($SuperNode_compile$18,"$compile",$SuperNode_compile$18=function(){return this.$compile_using_send()},$SuperNode_compile$18.$$arity=0)}($nesting[0],$$($nesting,"BaseSuperNode"),$nesting),function($base,$ZsuperNode_block_name$23,$ZsuperNode_compile_arguments$22){var $ZsuperNode_initialize$20,$ZsuperNode_block_name$23=$klass($base,$ZsuperNode_block_name$23,"ZsuperNode"),$nesting=[$ZsuperNode_block_name$23].concat($ZsuperNode_compile_arguments$22);return $ZsuperNode_block_name$23.$handle("zsuper"),Opal.def($ZsuperNode_block_name$23,"$implicit_arguments_param",$ZsuperNode_compile_arguments$22=function(){return"true"},$ZsuperNode_compile_arguments$22.$$arity=0),Opal.def($ZsuperNode_block_name$23,"$initialize",$ZsuperNode_initialize$20=function($a){var $zuper_ii,$iter=$ZsuperNode_initialize$20.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($ZsuperNode_initialize$20.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$ZsuperNode_initialize$20,!1,!0),"initialize",$zuper,$iter),this.$iter().$type()["$=="]("iter")?nil:(this.$scope()["$uses_block!"](),this.iter=this.$s("js_tmp","$iter"))},$ZsuperNode_initialize$20.$$arity=-1),Opal.def($ZsuperNode_block_name$23,"$compile",$ZsuperNode_compile_arguments$22=function(){var block_pass,rhs,self=this,lhs=nil,implicit_args=nil,$ret_or_3=nil;return $truthy(self.$def_scope())&&(lhs=[!0],$send(self.$def_scope(),"uses_zuper=",Opal.to_a(lhs)),rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs||lhs["$-"](rhs),implicit_args=[self.$s("js_tmp","$zuper")],$truthy($truthy($ret_or_3=self.$block_name())?self.$iter()["$!"]():$ret_or_3)&&(block_pass=self.$s("block_pass",self.$s("lvar",self.$block_name())),implicit_args["$<<"](block_pass)),self.arglist=$send(self,"s",["arglist"].concat(Opal.to_a(implicit_args)))),self.$compile_using_send()},$ZsuperNode_compile_arguments$22.$$arity=0),Opal.def($ZsuperNode_block_name$23,"$compile_arguments",$ZsuperNode_compile_arguments$22=function(){return this.$push(", "),$truthy(this.$arglist().$children()["$empty?"]())?this.$push("[]"):this.$push(this.$expr(this.$arglist()))},$ZsuperNode_compile_arguments$22.$$arity=0),Opal.def($ZsuperNode_block_name$23,"$block_name",$ZsuperNode_block_name$23=function(){var self=this,$case=nil;return $case=self.$def_scope(),$$$($$$($$($nesting,"Opal"),"Nodes"),"IterNode")["$==="]($case)||$$$($$$($$($nesting,"Opal"),"Nodes"),"DefNode")["$==="]($case)?self.$def_scope().$block_name():self.$raise("Don't know what to do with super in the scope "+self.$def_scope())},$ZsuperNode_block_name$23.$$arity=0),nil&&"block_name"}($nesting[0],$$($nesting,"SuperNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/version"]=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return Opal.const_set($nesting[0],"VERSION","1.3.0.dev")}($nesting[0],$nesting)},Opal.modules["opal/nodes/top"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$push","$version_comment","$opening","$in_scope","$use_strict?","$compiler","$line","$stmt","$stmts","$is_a?","$eval?","$add_temp","$add_used_helpers","$add_used_operators","$to_vars","$scope","$compile_method_stubs","$compile_irb_vars","$compile_end_construct","$closing","$requirable?","$inspect","$module_name","$file","$esm?","$returns","$body","$irb?","$each","$to_a","$helpers","$operator_helpers","$[]","$method_missing?","$method_calls","$join","$map","$empty?","$eof_content"]),self.$require("pathname"),self.$require("opal/version"),self.$require("opal/nodes/scope"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$TopNode_version_comment$14,$TopNode_compile_end_construct$13){var $TopNode_version_comment$14=$klass($base,$TopNode_version_comment$14,"TopNode"),$nesting=[$TopNode_version_comment$14].concat($TopNode_compile_end_construct$13);return $TopNode_version_comment$14.$handle("top"),$TopNode_version_comment$14.$children("body"),Opal.def($TopNode_version_comment$14,"$compile",$TopNode_compile_end_construct$13=function(){var $$2;return this.$push(this.$version_comment()),this.$opening(),$send(this,"in_scope",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s,body_code=nil;return $truthy(self.$compiler()["$use_strict?"]())&&self.$line('"use strict";'),body_code=self.$stmt(self.$stmts()),$truthy(body_code["$is_a?"]($$($nesting,"Array")))||(body_code=[body_code]),$truthy(self.$compiler()["$eval?"]())?self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(self.$add_temp("self = Opal.top"),self.$add_temp("$nesting = []")),self.$add_temp("nil = Opal.nil"),self.$add_temp("$$$ = Opal.$$$"),self.$add_temp("$$ = Opal.$$"),self.$add_used_helpers(),self.$add_used_operators(),self.$line(self.$scope().$to_vars()),self.$compile_method_stubs(),self.$compile_irb_vars(),self.$compile_end_construct(),self.$line(body_code)}).$$s=this,$$2.$$arity=0,$$2)),this.$closing()},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$opening",$TopNode_compile_end_construct$13=function(){return $truthy(this.$compiler()["$requirable?"]())?this.$line("Opal.modules["+$$$($$($nesting,"Opal"),"Compiler").$module_name(this.$compiler().$file()).$inspect()+"] = function(Opal) {"):$truthy(this.$compiler()["$eval?"]())?this.$line("(function(Opal, self) {"):$truthy(this.$compiler()["$esm?"]())?this.$line("export default (function(Opal) {"):this.$line("(function(Opal) {")},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$closing",$TopNode_compile_end_construct$13=function(){return $truthy(this.$compiler()["$requirable?"]())?this.$line("};\n"):$truthy(this.$compiler()["$eval?"]())?this.$line("})(Opal, self)"):this.$line("})(Opal);\n")},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$stmts",$TopNode_compile_end_construct$13=function(){return this.$compiler().$returns(this.$body())},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$compile_irb_vars",$TopNode_compile_end_construct$13=function(){return $truthy(this.$compiler()["$irb?"]())?this.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):nil},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$add_used_helpers",$TopNode_compile_end_construct$13=function(){var $$8;return $send(this.$compiler().$helpers().$to_a(),"each",[],(($$8=function(h){var self=null==$$8.$$s?this:$$8.$$s;return null==h&&(h=nil),self.$add_temp("$"+h+" = Opal."+h)}).$$s=this,$$8.$$arity=1,$$8))},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$add_used_operators",$TopNode_compile_end_construct$13=function(){var $$10,operators=this.$compiler().$operator_helpers().$to_a();return $send(operators,"each",[],(($$10=function(op){var name,self=null==$$10.$$s?this:$$10.$$s;return null==op&&(op=nil),name=$$$($$$($$($nesting,"Nodes"),"CallNode"),"OPERATORS")["$[]"](op),self.$line("function $rb_"+name+"(lhs, rhs) {"),self.$line(" return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs "+op+" rhs : lhs['$"+op+"'](rhs);"),self.$line("}")}).$$s=this,$$10.$$arity=1,$$10))},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$compile_method_stubs",$TopNode_compile_end_construct$13=function(){var $$12,calls=nil,stubs=nil;return $truthy(this.$compiler()["$method_missing?"]())?(calls=this.$compiler().$method_calls(),stubs=$send(calls.$to_a(),"map",[],(($$12=function(k){null==$$12.$$s||$$12.$$s;return null==k&&(k=nil),"'$"+k+"'"}).$$s=this,$$12.$$arity=1,$$12)).$join(", "),$truthy(stubs["$empty?"]())?nil:this.$line("Opal.add_stubs(["+stubs+"]);")):nil},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$compile_end_construct",$TopNode_compile_end_construct$13=function(){var content=nil;return $truthy(content=this.$compiler().$eof_content())?(this.$line("var $__END__ = Opal.Object.$new();"),this.$line("$__END__.$read = function() { return "+content.$inspect()+"; };")):nil},$TopNode_compile_end_construct$13.$$arity=0),Opal.def($TopNode_version_comment$14,"$version_comment",$TopNode_version_comment$14=function(){return"/* Generated by Opal "+$$$($$($nesting,"Opal"),"VERSION")+" */"},$TopNode_version_comment$14.$$arity=0),nil&&"version_comment"}($nesting[0],$$($nesting,"ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/while"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$children","$js_truthy","$test","$with_temp","$in_while","$compiler","$wrap_in_closure?","$[]=","$while_loop","$-","$indent","$stmt","$body","$uses_redo?","$compile_with_redo","$compile_without_redo","$wrap","$private","$push","$compile_while","$while_open","$while_close","$line","$[]","$expr?","$recv?"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$WhileNode_wrap_in_closure$ques$12,$WhileNode_uses_redo$ques$11){[$WhileNode_wrap_in_closure$ques$12=$klass($base,$WhileNode_wrap_in_closure$ques$12,"WhileNode")].concat($WhileNode_uses_redo$ques$11),$WhileNode_wrap_in_closure$ques$12.$handle("while"),$WhileNode_wrap_in_closure$ques$12.$children("test","body"),Opal.def($WhileNode_wrap_in_closure$ques$12,"$compile",$WhileNode_uses_redo$ques$11=function(){var $$2,test_code=this.$js_truthy(this.$test());return $send(this,"with_temp",[],(($$2=function(redo_var){var $$3,self=null==$$2.$$s?this:$$2.$$s;return null==redo_var&&(redo_var=nil),$send(self.$compiler(),"in_while",[],(($$3=function(){var $$4,body_code,self=null==$$3.$$s?this:$$3.$$s,$writer=nil;return $truthy(self["$wrap_in_closure?"]())&&($writer=["closure",!0],$send(self.$while_loop(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=["redo_var",redo_var],$send(self.$while_loop(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],body_code=$send(self,"indent",[],(($$4=function(){var self=null==$$4.$$s?this:$$4.$$s;return self.$stmt(self.$body())}).$$s=self,$$4.$$arity=0,$$4)),$truthy(self["$uses_redo?"]())?self.$compile_with_redo(test_code,body_code,redo_var):self.$compile_without_redo(test_code,body_code)}).$$s=self,$$3.$$arity=0,$$3))}).$$s=this,$$2.$$arity=1,$$2)),$truthy(this["$wrap_in_closure?"]())?this.$wrap("(function() {","; return nil; })()"):nil},$WhileNode_uses_redo$ques$11.$$arity=0),$WhileNode_wrap_in_closure$ques$12.$private(),Opal.def($WhileNode_wrap_in_closure$ques$12,"$compile_with_redo",$WhileNode_uses_redo$ques$11=function(test_code,body_code,redo_var){return this.$push(redo_var+" = false; "),this.$compile_while([redo_var," || ",test_code],[redo_var+" = false;",body_code])},$WhileNode_uses_redo$ques$11.$$arity=3),Opal.def($WhileNode_wrap_in_closure$ques$12,"$compile_without_redo",$WhileNode_uses_redo$ques$11=function(test_code,body_code){return this.$compile_while([test_code],[body_code])},$WhileNode_uses_redo$ques$11.$$arity=2),Opal.def($WhileNode_wrap_in_closure$ques$12,"$compile_while",$WhileNode_uses_redo$ques$11=function(test_code,body_code){var $$8;return $send(this,"push",[this.$while_open()].concat(Opal.to_a(test_code)).concat([this.$while_close()])),$send(this,"indent",[],(($$8=function(){var self=null==$$8.$$s?this:$$8.$$s;return $send(self,"line",Opal.to_a(body_code))}).$$s=this,$$8.$$arity=0,$$8)),this.$line("}")},$WhileNode_uses_redo$ques$11.$$arity=2),Opal.def($WhileNode_wrap_in_closure$ques$12,"$while_open",$WhileNode_uses_redo$ques$11=function(){return"while ("},$WhileNode_uses_redo$ques$11.$$arity=0),Opal.def($WhileNode_wrap_in_closure$ques$12,"$while_close",$WhileNode_uses_redo$ques$11=function(){return") {"},$WhileNode_uses_redo$ques$11.$$arity=0),Opal.def($WhileNode_wrap_in_closure$ques$12,"$uses_redo?",$WhileNode_uses_redo$ques$11=function(){return this.$while_loop()["$[]"]("use_redo")},$WhileNode_uses_redo$ques$11.$$arity=0),Opal.def($WhileNode_wrap_in_closure$ques$12,"$wrap_in_closure?",$WhileNode_wrap_in_closure$ques$12=function(){var $ret_or_1;return $truthy($ret_or_1=this["$expr?"]())?$ret_or_1:this["$recv?"]()},$WhileNode_wrap_in_closure$ques$12.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$UntilNode_while_close$14,$UntilNode_while_open$13){[$UntilNode_while_close$14=$klass($base,$UntilNode_while_close$14,"UntilNode")].concat($UntilNode_while_open$13),$UntilNode_while_close$14.$handle("until"),$UntilNode_while_close$14.$private(),Opal.def($UntilNode_while_close$14,"$while_open",$UntilNode_while_open$13=function(){return"while (!("},$UntilNode_while_open$13.$$arity=0),Opal.def($UntilNode_while_close$14,"$while_close",$UntilNode_while_close$14=function(){return")) {"},$UntilNode_while_close$14.$$arity=0)}($nesting[0],$$($nesting,"WhileNode"),$nesting),function($base,$WhilePostNode_while_close$17,$WhilePostNode_compile_while$15){[$WhilePostNode_while_close$17=$klass($base,$WhilePostNode_while_close$17,"WhilePostNode")].concat($WhilePostNode_compile_while$15),$WhilePostNode_while_close$17.$handle("while_post"),$WhilePostNode_while_close$17.$private(),Opal.def($WhilePostNode_while_close$17,"$compile_while",$WhilePostNode_compile_while$15=function(test_code,body_code){var $$16;return this.$push("do {"),$send(this,"indent",[],(($$16=function(){var self=null==$$16.$$s?this:$$16.$$s;return $send(self,"line",Opal.to_a(body_code))}).$$s=this,$$16.$$arity=0,$$16)),$send(this,"line",["} ",this.$while_open()].concat(Opal.to_a(test_code)).concat([this.$while_close()]))},$WhilePostNode_compile_while$15.$$arity=2),Opal.def($WhilePostNode_while_close$17,"$while_close",$WhilePostNode_while_close$17=function(){return");"},$WhilePostNode_while_close$17.$$arity=0)}($nesting[0],$$($nesting,"WhileNode"),$nesting),function($base,$UntilPostNode_while_close$19,$UntilPostNode_while_open$18){$UntilPostNode_while_close$19=$klass($base,$UntilPostNode_while_close$19,"UntilPostNode"),[$UntilPostNode_while_close$19].concat($UntilPostNode_while_open$18);return $UntilPostNode_while_close$19.$handle("until_post"),$UntilPostNode_while_close$19.$private(),Opal.def($UntilPostNode_while_close$19,"$while_open",$UntilPostNode_while_open$18=function(){return"while(!("},$UntilPostNode_while_open$18.$$arity=0),Opal.def($UntilPostNode_while_close$19,"$while_close",$UntilPostNode_while_close$19=function(){return"));"},$UntilPostNode_while_close$19.$$arity=0),nil&&"while_close"}($nesting[0],$$($nesting,"WhilePostNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/hash"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$handle","$attr_accessor","$each","$children","$type","$===","$<<","$[]","$all?","$keys","$include?","$has_kwsplat","$compile_merge","$simple_keys?","$compile_hash2","$compile_hash","$helper","$==","$empty?","$expr","$s","$each_with_index","$push","$wrap","$times","$size","$inspect","$to_s","$values","$[]=","$-","$join","$value"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$HashNode_compile_hash2$11,$HashNode_compile_hash$9){var $HashNode_initialize$1;[$HashNode_compile_hash2$11=$klass($base,$HashNode_compile_hash2$11,"HashNode")].concat($HashNode_compile_hash$9),$HashNode_compile_hash2$11.$handle("hash"),$HashNode_compile_hash2$11.$attr_accessor("has_kwsplat","keys","values"),Opal.def($HashNode_compile_hash2$11,"$initialize",$HashNode_initialize$1=function($a){var $$2,$zuper_ii,$iter=$HashNode_initialize$1.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($HashNode_initialize$1.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send2(this,$find_super(this,"initialize",$HashNode_initialize$1,!1,!0),"initialize",$zuper,$iter),this.has_kwsplat=!1,this.keys=[],this.values=[],$send(this.$children(),"each",[],(($$2=function(child){var self=null==$$2.$$s?this:$$2.$$s,$case=nil;return null==self.keys&&(self.keys=nil),null==self.values&&(self.values=nil),null==child&&(child=nil),$case=child.$type(),"kwsplat"["$==="]($case)?self.has_kwsplat=!0:"pair"["$==="]($case)?(self.keys["$<<"](child.$children()["$[]"](0)),self.values["$<<"](child.$children()["$[]"](1))):nil}).$$s=this,$$2.$$arity=1,$$2))},$HashNode_initialize$1.$$arity=-1),Opal.def($HashNode_compile_hash2$11,"$simple_keys?",$HashNode_compile_hash$9=function(){var $$4;return $send(this.$keys(),"all?",[],(($$4=function(key){null==$$4.$$s||$$4.$$s;return null==key&&(key=nil),["sym","str"]["$include?"](key.$type())}).$$s=this,$$4.$$arity=1,$$4))},$HashNode_compile_hash$9.$$arity=0),Opal.def($HashNode_compile_hash2$11,"$compile",$HashNode_compile_hash$9=function(){return $truthy(this.$has_kwsplat())?this.$compile_merge():$truthy(this["$simple_keys?"]())?this.$compile_hash2():this.$compile_hash()},$HashNode_compile_hash$9.$$arity=0),Opal.def($HashNode_compile_hash2$11,"$compile_merge",$HashNode_compile_hash$9=function(){var $a,$$7,$$8,result=nil,seq=nil;return this.$helper("hash"),result=($a=[[],[]])[0],seq=$a[1],$send(this.$children(),"each",[],(($$7=function(child){var self=null==$$7.$$s?this:$$7.$$s;return null==child&&(child=nil),child.$type()["$=="]("kwsplat")?($truthy(seq["$empty?"]())||result["$<<"](self.$expr($send(self,"s",["hash"].concat(Opal.to_a(seq))))),result["$<<"](self.$expr(child)),seq=[]):seq["$<<"](child)}).$$s=this,$$7.$$arity=1,$$7)),$truthy(seq["$empty?"]())||result["$<<"](this.$expr($send(this,"s",["hash"].concat(Opal.to_a(seq))))),$send(result,"each_with_index",[],(($$8=function(fragment,idx){var self=null==$$8.$$s?this:$$8.$$s;return null==fragment&&(fragment=nil),null==idx&&(idx=nil),idx["$=="](0)?self.$push(fragment):self.$push(".$merge(",fragment,")")}).$$s=this,$$8.$$arity=2,$$8))},$HashNode_compile_hash$9.$$arity=0),Opal.def($HashNode_compile_hash2$11,"$compile_hash",$HashNode_compile_hash$9=function(){var $$10;return this.$helper("hash"),$send(this.$children(),"each_with_index",[],(($$10=function($a,idx){var key,value,self=null==$$10.$$s?this:$$10.$$s;return null==$a&&($a=nil),null==idx&&(idx=nil),$a=$a.$children(),key=null==($a=Opal.to_ary($a))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],idx["$=="](0)||self.$push(", "),self.$push(self.$expr(key),", ",self.$expr(value))}).$$s=this,$$10.$$arity=2,$$10)),this.$wrap("$hash(",")")},$HashNode_compile_hash$9.$$arity=0),Opal.def($HashNode_compile_hash2$11,"$compile_hash2",$HashNode_compile_hash2$11=function(){var $$12,$$13,hash_obj=nil,hash_keys=nil,$a=[$hash2([],{}),[]],hash_obj=$a[0],hash_keys=$a[1];return this.$helper("hash2"),$send(this.$keys().$size(),"times",[],(($$12=function(rhs){var key,self=null==$$12.$$s?this:$$12.$$s,lhs=nil;return null==rhs&&(rhs=nil),key=self.$keys()["$[]"](rhs).$children()["$[]"](0).$to_s().$inspect(),$truthy(hash_obj["$include?"](key))||hash_keys["$<<"](key),lhs=[key,self.$expr(self.$values()["$[]"](rhs))],$send(hash_obj,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}).$$s=this,$$12.$$arity=1,$$12)),$send(hash_keys,"each_with_index",[],(($$13=function(key,idx){var self=null==$$13.$$s?this:$$13.$$s;return null==key&&(key=nil),null==idx&&(idx=nil),idx["$=="](0)||self.$push(", "),self.$push(key+": "),self.$push(hash_obj["$[]"](key))}).$$s=this,$$13.$$arity=2,$$13)),this.$wrap("$hash2(["+hash_keys.$join(", ")+"], {","})")},$HashNode_compile_hash2$11.$$arity=0)}($nesting[0],$$($nesting,"Base"),$nesting),function($base,$KwSplatNode_compile$14,$parent_nesting){$KwSplatNode_compile$14=$klass($base,$KwSplatNode_compile$14,"KwSplatNode"),[$KwSplatNode_compile$14].concat($parent_nesting);return $KwSplatNode_compile$14.$handle("kwsplat"),$KwSplatNode_compile$14.$children("value"),Opal.def($KwSplatNode_compile$14,"$compile",$KwSplatNode_compile$14=function(){return this.$push("Opal.to_hash(",this.$expr(this.$value()),")")},$KwSplatNode_compile$14.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/array"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$empty?","$children","$push","$each","$==","$type","$expr","$<<","$fragment"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ArrayNode_compile$1,$parent_nesting){$ArrayNode_compile$1=$klass($base,$ArrayNode_compile$1,"ArrayNode"),[$ArrayNode_compile$1].concat($parent_nesting);return $ArrayNode_compile$1.$handle("array"),Opal.def($ArrayNode_compile$1,"$compile",$ArrayNode_compile$1=function(){var $a,$$2,join,code=nil,work=nil;return $truthy(this.$children()["$empty?"]())?this.$push("[]"):(code=($a=[[],[]])[0],work=$a[1],$send(this.$children(),"each",[],(($$2=function(child){var splat,part,self=null==$$2.$$s?this:$$2.$$s;return null==child&&(child=nil),splat=child.$type()["$=="]("splat"),part=self.$expr(child),$truthy(splat)?($truthy(work["$empty?"]())?($truthy(code["$empty?"]())?code["$<<"](self.$fragment("[].concat(")):code["$<<"](self.$fragment(".concat(")))["$<<"](part)["$<<"](self.$fragment(")")):($truthy(code["$empty?"]())?code["$<<"](self.$fragment("["))["$<<"](work)["$<<"](self.$fragment("]")):code["$<<"](self.$fragment(".concat(["))["$<<"](work)["$<<"](self.$fragment("])")),code["$<<"](self.$fragment(".concat("))["$<<"](part)["$<<"](self.$fragment(")"))),work=[]):($truthy(work["$empty?"]())||work["$<<"](self.$fragment(", ")),work["$<<"](part))}).$$s=this,$$2.$$arity=1,$$2)),$truthy(work["$empty?"]())||(join=[this.$fragment("["),work,this.$fragment("]")],$truthy(code["$empty?"]())?code=join:code.$push([this.$fragment(".concat("),join,this.$fragment(")")])),this.$push(code))},$ArrayNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/defined"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$slice=Opal.slice,$send=Opal.send,$range=Opal.range;return Opal.add_stubs(["$require","$handle","$children","$type","$value","$===","$push","$inspect","$to_s","$==","$size","$[]","$compile_defined_send","$wrap","$compile_defined_ivar","$compile_defined_super","$compile_defined_yield","$compile_defined_xstr","$compile_defined_const","$compile_defined_cvar","$compile_defined_gvar","$compile_defined_back_ref","$compile_defined_nth_ref","$compile_defined_array","$respond_to?","$__send__","$new_temp","$scope","$expr","$wrap_with_try_catch","$mid_to_jsid","$compile_defined","$compile_send_recv_doesnt_raise","$each","$s","$uses_block!","$block_name","$find_parent_def","$nil?","$class_variable_owner","$helper","$include?","$each_with_index"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$DefinedNode_compile_defined_array$16,$DefinedNode_compile_defined_nth_ref$15){$DefinedNode_compile_defined_array$16=$klass($base,$DefinedNode_compile_defined_array$16,"DefinedNode"),[$DefinedNode_compile_defined_array$16].concat($DefinedNode_compile_defined_nth_ref$15);return $DefinedNode_compile_defined_array$16.$handle("defined?"),$DefinedNode_compile_defined_array$16.$children("value"),Opal.def($DefinedNode_compile_defined_array$16,"$compile",$DefinedNode_compile_defined_nth_ref$15=function(){var self=this,$case=nil,$ret_or_1=nil;return $case=self.$value().$type(),"self"["$==="]($case)||"nil"["$==="]($case)||"false"["$==="]($case)||"true"["$==="]($case)?self.$push(self.$value().$type().$to_s().$inspect()):"lvasgn"["$==="]($case)||"ivasgn"["$==="]($case)||"gvasgn"["$==="]($case)||"cvasgn"["$==="]($case)||"casgn"["$==="]($case)||"op_asgn"["$==="]($case)||"or_asgn"["$==="]($case)||"and_asgn"["$==="]($case)?self.$push("'assignment'"):"lvar"["$==="]($case)?self.$push("'local-variable'"):"begin"["$==="]($case)?$truthy($truthy($ret_or_1=self.$value().$children().$size()["$=="](1))?self.$value().$children()["$[]"](0).$type()["$=="]("masgn"):$ret_or_1)?self.$push("'assignment'"):self.$push("'expression'"):"send"["$==="]($case)?(self.$compile_defined_send(self.$value()),self.$wrap("("," ? 'method' : nil)")):"ivar"["$==="]($case)?(self.$compile_defined_ivar(self.$value()),self.$wrap("("," ? 'instance-variable' : nil)")):"zsuper"["$==="]($case)||"super"["$==="]($case)?self.$compile_defined_super():"yield"["$==="]($case)?(self.$compile_defined_yield(),self.$wrap("("," ? 'yield' : nil)")):"xstr"["$==="]($case)?self.$compile_defined_xstr(self.$value()):"const"["$==="]($case)?(self.$compile_defined_const(self.$value()),self.$wrap("("," ? 'constant' : nil)")):"cvar"["$==="]($case)?(self.$compile_defined_cvar(self.$value()),self.$wrap("("," ? 'class variable' : nil)")):"gvar"["$==="]($case)?(self.$compile_defined_gvar(self.$value()),self.$wrap("("," ? 'global-variable' : nil)")):"back_ref"["$==="]($case)?(self.$compile_defined_back_ref(),self.$wrap("("," ? 'global-variable' : nil)")):"nth_ref"["$==="]($case)?(self.$compile_defined_nth_ref(),self.$wrap("("," ? 'global-variable' : nil)")):"array"["$==="]($case)?(self.$compile_defined_array(self.$value()),self.$wrap("("," ? 'expression' : nil)")):self.$push("'expression'")},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined",$DefinedNode_compile_defined_nth_ref$15=function(node){var node_tmp,type=node.$type();return $truthy(this["$respond_to?"]("compile_defined_"+type))?this.$__send__("compile_defined_"+type,node):(node_tmp=this.$scope().$new_temp(),this.$push("("+node_tmp+" = ",this.$expr(node),")"),node_tmp)},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$wrap_with_try_catch",$DefinedNode_compile_defined_nth_ref$15=function(code){var returning_tmp=this.$scope().$new_temp();return this.$push("("+returning_tmp+" = (function() { try {"),this.$push(" return "+code+";"),this.$push("} catch ($err) {"),this.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),this.$push(" try {"),this.$push(" return false;"),this.$push(" } finally { Opal.pop_exception() }"),this.$push(" } else { throw $err; }"),this.$push("}})())"),returning_tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_send_recv_doesnt_raise",$DefinedNode_compile_defined_nth_ref$15=function(recv_code){return this.$wrap_with_try_catch(recv_code)},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_send",$DefinedNode_compile_defined_nth_ref$15=function($a){var $$6,recv_value_tmp,meth_tmp,recv=nil,method_name=nil,recv_code=nil,recv_tmp=nil,$a=[].concat(Opal.to_a($a)),recv=null==$a[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],args=$slice.call($a,2),mid=this.$mid_to_jsid(method_name.$to_s());return $truthy(recv)?(recv_code=this.$compile_defined(recv),this.$push(" && "),recv.$type()["$=="]("send")&&(recv_code=this.$compile_send_recv_doesnt_raise(recv_code),this.$push(" && ")),recv_tmp=this.$scope().$new_temp(),this.$push("("+recv_tmp+" = ",recv_code,", "+recv_tmp+") && ")):recv_tmp="self",recv_value_tmp=this.$scope().$new_temp(),this.$push("("+recv_value_tmp+" = "+recv_tmp+") && "),meth_tmp=this.$scope().$new_temp(),this.$push("((("+meth_tmp+" = "+recv_value_tmp+mid+") && !"+meth_tmp+".$$stub)"),this.$push(" || "+recv_value_tmp+"['$respond_to_missing?']('"+method_name+"'))"),$send(args,"each",[],(($$6=function(arg){var self=null==$$6.$$s?this:$$6.$$s,$case=nil;return null==arg&&(arg=nil),$case=arg.$type(),"block_pass"["$==="]($case)?nil:(self.$push(" && "),self.$compile_defined(arg))}).$$s=this,$$6.$$arity=1,$$6)),this.$wrap("(",")"),meth_tmp+"()"},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_ivar",$DefinedNode_compile_defined_nth_ref$15=function(node){var name=node.$children()["$[]"](0).$to_s()["$[]"]($range(1,-1,!1)),tmp=this.$scope().$new_temp();return this.$push("("+tmp+" = self['"+name+"'], "+tmp+" != null && "+tmp+" !== nil)"),tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_super",$DefinedNode_compile_defined_nth_ref$15=function(){return this.$push(this.$expr(this.$s("defined_super")))},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_yield",$DefinedNode_compile_defined_nth_ref$15=function(){var block_name,self=this,$ret_or_2=nil;return self.$scope()["$uses_block!"](),block_name=$truthy($ret_or_2=self.$scope().$block_name())?$ret_or_2:self.$scope().$find_parent_def().$block_name(),self.$push("("+block_name+" != null && "+block_name+" !== nil)"),block_name},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_xstr",$DefinedNode_compile_defined_nth_ref$15=function(node){return this.$push("(typeof(",this.$expr(node),') !== "undefined")')},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_const",$DefinedNode_compile_defined_nth_ref$15=function($a){var const_scope_tmp,const_scope=nil,$a=[].concat(Opal.to_a($a)),const_scope=null==$a[0]?nil:$a[0],const_name=null==$a[1]?nil:$a[1],const_tmp=this.$scope().$new_temp();return $truthy(const_scope["$nil?"]())?this.$push("("+const_tmp+" = $$($nesting, '"+const_name+"', 'skip_raise'))"):const_scope["$=="](this.$s("cbase"))?this.$push("("+const_tmp+" = $$$('::', '"+const_name+"', 'skip_raise'))"):(const_scope_tmp=this.$compile_defined(const_scope),this.$push(" && ("+const_tmp+" = $$$("+const_scope_tmp+", '"+const_name+"', 'skip_raise'))")),const_tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_cvar",$DefinedNode_compile_defined_nth_ref$15=function($a){var $a=[].concat(Opal.to_a($a)),cvar_name=null==$a[0]?nil:$a[0],cvar_tmp=(null==$a[1]||$a[1],this.$scope().$new_temp());return this.$push("("+cvar_tmp+" = "+this.$class_variable_owner()+".$$cvars['"+cvar_name+"'], "+cvar_tmp+" != null)"),cvar_tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_gvar",$DefinedNode_compile_defined_nth_ref$15=function(node){var gvar_temp,name=nil;return this.$helper("gvars"),name=node.$children()["$[]"](0).$to_s()["$[]"]($range(1,-1,!1)),gvar_temp=this.$scope().$new_temp(),$truthy(["~","!"]["$include?"](name))?this.$push("("+gvar_temp+" = ",this.$expr(node)," || true)"):this.$push("("+gvar_temp+" = $gvars["+name.$inspect()+"], "+gvar_temp+" != null)"),gvar_temp},$DefinedNode_compile_defined_nth_ref$15.$$arity=1),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_back_ref",$DefinedNode_compile_defined_nth_ref$15=function(){var back_ref_temp;return this.$helper("gvars"),back_ref_temp=this.$scope().$new_temp(),this.$push("("+back_ref_temp+" = $gvars['~'], "+back_ref_temp+" != null && "+back_ref_temp+" !== nil)"),back_ref_temp},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_nth_ref",$DefinedNode_compile_defined_nth_ref$15=function(){var nth_ref_tmp;return this.$helper("gvars"),nth_ref_tmp=this.$scope().$new_temp(),this.$push("("+nth_ref_tmp+" = $gvars['~'], "+nth_ref_tmp+" != null && "+nth_ref_tmp+" != nil)"),nth_ref_tmp},$DefinedNode_compile_defined_nth_ref$15.$$arity=0),Opal.def($DefinedNode_compile_defined_array$16,"$compile_defined_array",$DefinedNode_compile_defined_array$16=function(node){var $$17;return $send(node.$children(),"each_with_index",[],(($$17=function(child,idx){var self=null==$$17.$$s?this:$$17.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),idx["$=="](0)||self.$push(" && "),self.$compile_defined(child)}).$$s=this,$$17.$$arity=2,$$17))},$DefinedNode_compile_defined_array$16.$$arity=1),nil&&"compile_defined_array"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/masgn"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$freeze","$handle","$children","$new_temp","$scope","$==","$type","$rhs","$push","$expr","$any?","$size","$compile_masgn","$lhs","$queue_temp","$take_while","$!=","$drop","$each_with_index","$compile_assignment","$empty?","$shift","$[]","$helper","$<<","$dup","$s","$!","$>=","$updated","$include?","$+","$last","$raise"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$MassAssignNode_compile_assignment$7,$MassAssignNode_compile_masgn$3){var $MassAssignNode_compile_assignment$7=$klass($base,$MassAssignNode_compile_assignment$7,"MassAssignNode"),$nesting=[$MassAssignNode_compile_assignment$7].concat($MassAssignNode_compile_masgn$3);return Opal.const_set($nesting[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),$MassAssignNode_compile_assignment$7.$handle("masgn"),$MassAssignNode_compile_assignment$7.$children("lhs","rhs"),Opal.def($MassAssignNode_compile_assignment$7,"$compile",$MassAssignNode_compile_masgn$3=function(){var $$2,rhs_len,self=this,retval=nil,array=self.$scope().$new_temp();return self.$rhs().$type()["$=="]("array")?(self.$push(array+" = ",self.$expr(self.$rhs())),rhs_len=$truthy($send(self.$rhs().$children(),"any?",[],(($$2=function(c){null==$$2.$$s||$$2.$$s;return null==c&&(c=nil),c.$type()["$=="]("splat")}).$$s=self,$$2.$$arity=1,$$2)))?nil:self.$rhs().$children().$size(),self.$compile_masgn(self.$lhs().$children(),array,rhs_len),self.$push(", "+array)):(self.$rhs().$type()["$=="]("begin"),retval=self.$scope().$new_temp(),self.$push(retval+" = ",self.$expr(self.$rhs())),self.$push(", "+array+" = Opal.to_ary("+retval+")"),self.$compile_masgn(self.$lhs().$children(),array),self.$push(", "+retval),self.$scope().$queue_temp(retval)),self.$scope().$queue_temp(array)},$MassAssignNode_compile_masgn$3.$$arity=0),Opal.def($MassAssignNode_compile_assignment$7,"$compile_masgn",$MassAssignNode_compile_masgn$3=function(lhs_items,array,len){var $$4,$$5,$$6,tmp,pre_splat=nil,post_splat=nil,splat=nil,part=nil;return null==len&&(len=nil),pre_splat=$send(lhs_items,"take_while",[],(($$4=function(child){null==$$4.$$s||$$4.$$s;return null==child&&(child=nil),child.$type()["$!="]("splat")}).$$s=this,$$4.$$arity=1,$$4)),post_splat=lhs_items.$drop(pre_splat.$size()),$send(pre_splat,"each_with_index",[],(($$5=function(child,idx){var self=null==$$5.$$s?this:$$5.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),self.$compile_assignment(child,array,idx,len)}).$$s=this,$$5.$$arity=2,$$5)),$truthy(post_splat["$empty?"]())?nil:(splat=post_splat.$shift(),$truthy(post_splat["$empty?"]())?$truthy(part=splat.$children()["$[]"](0))?(this.$helper("slice"),part=part.$dup()["$<<"](this.$s("js_tmp","$slice.call("+array+", "+pre_splat.$size()+")")),this.$push(", "),this.$push(this.$expr(part))):nil:(tmp=this.$scope().$new_temp(),this.$push(", "+tmp+" = "+array+".length - "+post_splat.$size()),this.$push(", "+tmp+" = ("+tmp+" < "+pre_splat.$size()+") ? "+pre_splat.$size()+" : "+tmp),$truthy(part=splat.$children()["$[]"](0))&&(this.$helper("slice"),part=part.$dup()["$<<"](this.$s("js_tmp","$slice.call("+array+", "+pre_splat.$size()+", "+tmp+")")),this.$push(", "),this.$push(this.$expr(part))),$send(post_splat,"each_with_index",[],(($$6=function(child,idx){var self=null==$$6.$$s?this:$$6.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),idx["$=="](0)?self.$compile_assignment(child,array,tmp):self.$compile_assignment(child,array,tmp+" + "+idx)}).$$s=this,$$6.$$arity=2,$$6)),this.$scope().$queue_temp(tmp)))},$MassAssignNode_compile_masgn$3.$$arity=-3),Opal.def($MassAssignNode_compile_assignment$7,"$compile_assignment",$MassAssignNode_compile_assignment$7=function(child,array,idx,lhs){var tmp,self=this,assign=nil,rhs=nil,part=nil;if(null==lhs&&(lhs=nil),assign=$truthy($truthy(rhs=lhs["$!"]())?rhs:(rhs=lhs,"number"==typeof(lhs=idx)&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))?self.$s("js_tmp","("+array+"["+idx+"] == null ? nil : "+array+"["+idx+"])"):self.$s("js_tmp",array+"["+idx+"]"),part=child.$updated(),$truthy($$($nesting,"SIMPLE_ASSIGNMENT")["$include?"](child.$type())))part=part.$updated(nil,$rb_plus(part.$children(),[assign]));else if(child.$type()["$=="]("send"))part=part.$updated(nil,$rb_plus(part.$children(),[assign]));else if(child.$type()["$=="]("attrasgn"))part.$last()["$<<"](assign);else{if(child.$type()["$=="]("mlhs"))return tmp=self.$scope().$new_temp(),self.$push(", ("+tmp+" = Opal.to_ary("+assign.$children()["$[]"](0)+")"),self.$compile_masgn(child.$children(),tmp),self.$push(")"),self.$scope().$queue_temp(tmp),nil;self.$raise("Bad child node in masgn LHS: "+child+". LHS: "+self.$lhs())}return self.$push(", "),self.$push(self.$expr(part))},$MassAssignNode_compile_assignment$7.$$arity=-4),nil&&"compile_assignment"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/arglist"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$handle","$each","$children","$==","$type","$expr","$empty?","$<<","$fragment","$push"]),self.$require("opal/nodes/base"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$ArglistNode_compile$1,$parent_nesting){$ArglistNode_compile$1=$klass($base,$ArglistNode_compile$1,"ArglistNode"),[$ArglistNode_compile$1].concat($parent_nesting);return $ArglistNode_compile$1.$handle("arglist"),Opal.def($ArglistNode_compile$1,"$compile",$ArglistNode_compile$1=function(){var $$2,join,code=nil,work=nil,$a=[[],[]],code=$a[0],work=$a[1];return $send(this.$children(),"each",[],(($$2=function(current){var splat,arg,self=null==$$2.$$s?this:$$2.$$s;return null==current&&(current=nil),splat=current.$type()["$=="]("splat"),arg=self.$expr(current),$truthy(splat)?($truthy(work["$empty?"]())?$truthy(code["$empty?"]())?code["$<<"](arg):code["$<<"](self.$fragment(".concat("))["$<<"](arg)["$<<"](self.$fragment(")")):($truthy(code["$empty?"]())?code["$<<"](self.$fragment("["))["$<<"](work)["$<<"](self.$fragment("]")):code["$<<"](self.$fragment(".concat(["))["$<<"](work)["$<<"](self.$fragment("])")),code["$<<"](self.$fragment(".concat("))["$<<"](arg)["$<<"](self.$fragment(")"))),work=[]):($truthy(work["$empty?"]())||work["$<<"](self.$fragment(", ")),work["$<<"](arg))}).$$s=this,$$2.$$arity=1,$$2)),$truthy(work["$empty?"]())||(join=work,$truthy(code["$empty?"]())?code=join:code["$<<"](this.$fragment(".concat(["))["$<<"](join)["$<<"](this.$fragment("])"))),$send(this,"push",Opal.to_a(code))},$ArglistNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/x_string"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$range=Opal.range,$lambda=Opal.lambda;return Opal.add_stubs(["$handle","$unpack_return","$children","$strip_empty_children","$single_line?","$compile_single_line","$each","$compile_child","$recv?","$wrap","$push","$private","$type","$===","$source","$expression","$loc","$new","$scope","$expr","$raise","$shift","$empty?","$s","$==","$strip","$=~","$!","$pop","$extract_last_value","$rstrip","$expr?","$end_with?","$warning","$compiler","$line","$[]","$size","$none?","$first","$dup","$nil?","$any?","$last"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$XStringNode_strip_empty_children$10,$XStringNode_unpack_return$9){var $XStringNode_strip_empty_children$10=$klass($base,$XStringNode_strip_empty_children$10,"XStringNode"),$nesting=[$XStringNode_strip_empty_children$10].concat($XStringNode_unpack_return$9);return $XStringNode_strip_empty_children$10.$$prototype.should_add_semicolon=$XStringNode_strip_empty_children$10.$$prototype.returning=nil,$XStringNode_strip_empty_children$10.$handle("xstr"),Opal.def($XStringNode_strip_empty_children$10,"$compile",$XStringNode_unpack_return$9=function(){var $$2,unpacked_children,stripped_children;return this.should_add_semicolon=!1,unpacked_children=this.$unpack_return(this.$children()),stripped_children=this.$strip_empty_children(unpacked_children),$truthy(this["$single_line?"](stripped_children))?this.$compile_single_line(stripped_children):$send(unpacked_children,"each",[],(($$2=function(c){var self=null==$$2.$$s?this:$$2.$$s;return null==c&&(c=nil),self.$compile_child(c)}).$$s=this,$$2.$$arity=1,$$2)),$truthy(this["$recv?"]())&&this.$wrap("(",")"),$truthy(this.should_add_semicolon)?this.$push(";"):nil},$XStringNode_unpack_return$9.$$arity=0),$XStringNode_strip_empty_children$10.$private(),Opal.def($XStringNode_strip_empty_children$10,"$compile_child",$XStringNode_unpack_return$9=function(child){var self=this,$case=nil,value=nil;return $case=child.$type(),"str"["$==="]($case)?(value=child.$loc().$expression().$source(),self.$push($$($nesting,"Fragment").$new(value,self.$scope(),child))):"begin"["$==="]($case)||"gvar"["$==="]($case)||"ivar"["$==="]($case)||"nil"["$==="]($case)?self.$push(self.$expr(child)):self.$raise("Unsupported xstr part: "+child.$type())},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$compile_single_line",$XStringNode_unpack_return$9=function(children){var $$5,self=this,has_embeded_return=nil,first_child=nil,$ret_or_1=nil,first_value=nil,$ret_or_2=nil,last_child=nil,$ret_or_3=nil,last_value=nil,has_embeded_return=!1,first_child=children.$shift(),single_child=children["$empty?"]();return(first_child=$truthy($ret_or_1=first_child)?$ret_or_1:self.$s("nil")).$type()["$=="]("str")&&(first_value=first_child.$loc().$expression().$source().$strip(),has_embeded_return=first_value["$=~"](/^return\b/)),$truthy($truthy($ret_or_2=self.returning)?has_embeded_return["$!"]():$ret_or_2)&&self.$push("return "),(last_child=$truthy($ret_or_3=children.$pop())?$ret_or_3:first_child).$type()["$=="]("str")&&(last_value=self.$extract_last_value(last_child)),$truthy(single_child)||(self.should_add_semicolon=!1,self.$compile_child(first_child),$send(children,"each",[],(($$5=function(c){var self=null==$$5.$$s?this:$$5.$$s;return null==c&&(c=nil),self.$compile_child(c)}).$$s=self,$$5.$$arity=1,$$5))),last_child.$type()["$=="]("str")?self.$push($$($nesting,"Fragment").$new(last_value,self.$scope(),last_child)):self.$compile_child(last_child)},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$extract_last_value",$XStringNode_unpack_return$9=function(last_child){var self=this,last_value=nil,$ret_or_4=nil,$ret_or_5=nil,last_value=last_child.$loc().$expression().$source().$rstrip();return $truthy($truthy($ret_or_4=$truthy($ret_or_5=self.returning)?$ret_or_5:self["$expr?"]())?last_value["$end_with?"](";"):$ret_or_4)&&(self.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",last_child.$line()),last_value=last_value["$[]"]($range(0,-2,!1))),$truthy(self.returning)&&(self.should_add_semicolon=!0),last_value},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$single_line?",$XStringNode_unpack_return$9=function(children){var $$8,$ret_or_6;return $truthy($ret_or_6=children.$size()["$=="](1))?$ret_or_6:$send(children,"none?",[],(($$8=function(c){var $ret_or_7;null==$$8.$$s||$$8.$$s;return null==c&&(c=nil),$truthy($ret_or_7=c.$type()["$=="]("str"))?c.$loc().$expression().$source()["$end_with?"]("\n"):$ret_or_7}).$$s=this,$$8.$$arity=1,$$8))},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$unpack_return",$XStringNode_unpack_return$9=function(children){var first_child=nil,first_child=children.$first();return this.returning=!1,first_child.$type()["$=="]("js_return")&&(this.returning=!0,children=first_child.$children()),children},$XStringNode_unpack_return$9.$$arity=1),Opal.def($XStringNode_strip_empty_children$10,"$strip_empty_children",$XStringNode_strip_empty_children$10=function(children){var $$11,empty_line=nil,$ret_or_10=nil,$ret_or_11=nil;for(children=children.$dup(),empty_line=$lambda((($$11=function(child){var $ret_or_8,$ret_or_9;null==$$11.$$s||$$11.$$s;return null==child&&(child=nil),$truthy($ret_or_8=child["$nil?"]())?$ret_or_8:$truthy($ret_or_9=child.$type()["$=="]("str"))?child.$loc().$expression().$source().$rstrip()["$empty?"]():$ret_or_9}).$$s=this,$$11.$$arity=1,$$11));$truthy($truthy($ret_or_10=children["$any?"]())?empty_line["$[]"](children.$first()):$ret_or_10);)children.$shift();for(;$truthy($truthy($ret_or_11=children["$any?"]())?empty_line["$[]"](children.$last()):$ret_or_11);)children.$pop();return children},$XStringNode_strip_empty_children$10.$$arity=1),nil&&"strip_empty_children"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/lambda"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send;return Opal.add_stubs(["$require","$handle","$children","$helper","$defines_lambda","$scope","$push","$expr","$iter"]),self.$require("opal/nodes/call"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($base,$nesting){$nesting=[$module($base,"Nodes")].concat($nesting);return function($base,$LambdaNode_compile$1,$parent_nesting){$LambdaNode_compile$1=$klass($base,$LambdaNode_compile$1,"LambdaNode"),[$LambdaNode_compile$1].concat($parent_nesting);return $LambdaNode_compile$1.$handle("lambda"),$LambdaNode_compile$1.$children("iter"),Opal.def($LambdaNode_compile$1,"$compile",$LambdaNode_compile$1=function(){var $$2;return this.$helper("lambda"),$send(this.$scope(),"defines_lambda",[],(($$2=function(){var self=null==$$2.$$s?this:$$2.$$s;return self.$push("$lambda(",self.$expr(self.$iter()),")")}).$$s=this,$$2.$$arity=0,$$2))},$LambdaNode_compile$1.$$arity=0),nil&&"compile"}($nesting[0],$$($nesting,"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes"]=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$require"]),self.$require("opal/nodes/base"),self.$require("opal/nodes/literal"),self.$require("opal/nodes/variables"),self.$require("opal/nodes/constants"),self.$require("opal/nodes/call"),self.$require("opal/nodes/csend"),self.$require("opal/nodes/call_special"),self.$require("opal/nodes/module"),self.$require("opal/nodes/class"),self.$require("opal/nodes/singleton_class"),self.$require("opal/nodes/args"),self.$require("opal/nodes/args/arity_check"),self.$require("opal/nodes/iter"),self.$require("opal/nodes/def"),self.$require("opal/nodes/defs"),self.$require("opal/nodes/if"),self.$require("opal/nodes/logic"),self.$require("opal/nodes/definitions"),self.$require("opal/nodes/yield"),self.$require("opal/nodes/rescue"),self.$require("opal/nodes/case"),self.$require("opal/nodes/super"),self.$require("opal/nodes/top"),self.$require("opal/nodes/while"),self.$require("opal/nodes/hash"),self.$require("opal/nodes/array"),self.$require("opal/nodes/defined"),self.$require("opal/nodes/masgn"),self.$require("opal/nodes/arglist"),self.$require("opal/nodes/x_string"),self.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$module=(Opal.$$$,Opal.$$,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$range=Opal.range;return Opal.add_stubs(["$empty?","$[]","$last_token_position","$drop_while","$lines","$==","$join","$private","$last","$end_pos"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($EofContent_last_token_position$4,$EofContent_eof$2){$EofContent_last_token_position$4=$klass($EofContent_last_token_position$4,null,"EofContent"),$EofContent_eof$2=[$EofContent_last_token_position$4].concat($EofContent_eof$2);return $EofContent_last_token_position$4.$$prototype.tokens=$EofContent_last_token_position$4.$$prototype.source=nil,Opal.const_set($EofContent_eof$2[0],"DATA_SEPARATOR","__END__\n"),Opal.def($EofContent_last_token_position$4,"$initialize",$EofContent_eof$2=function(tokens,source){return this.tokens=tokens,this.source=source},$EofContent_eof$2.$$arity=2),Opal.def($EofContent_last_token_position$4,"$eof",$EofContent_eof$2=function(){var $$3,eof_content=nil,$ret_or_1=nil;return $truthy(this.tokens["$empty?"]())?nil:(eof_content=this.source["$[]"](Opal.Range.$new(this.$last_token_position(),-1,!1)),$truthy(eof_content)?(eof_content=$send(eof_content.$lines(),"drop_while",[],(($$3=function(line){null==$$3.$$s||$$3.$$s;return null==line&&(line=nil),line["$=="]("\n")}).$$s=this,$$3.$$arity=1,$$3)))["$[]"](0)["$=="]("__END__\n")?(eof_content=$truthy($ret_or_1=eof_content["$[]"]($range(1,-1,!1)))?$ret_or_1:[]).$join():eof_content["$=="](["__END__"])?"":nil:nil)},$EofContent_eof$2.$$arity=0),$EofContent_last_token_position$4.$private(),Opal.def($EofContent_last_token_position$4,"$last_token_position",$EofContent_last_token_position$4=function(){var $b=this.tokens.$last(),$a=Opal.to_ary($b);null==$a[0]||$a[0];return $b=null==$a[1]?nil:$a[1],null==($a=Opal.to_ary($b))[0]||$a[0],(null==$a[1]?nil:$a[1]).$end_pos()},$EofContent_last_token_position$4.$$arity=0),nil&&"last_token_position"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/errors"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$attr_reader","$attr_accessor","$new","$respond_to?","$location","$location=","$-","$diagnostic","$diagnostic=","$to_a","$backtrace","$unshift","$to_s","$set_backtrace","$path","$lineno","$+","$label","$line","$lineno=","$source_line","$label=","$expression"]),function($Opal_add_opal_location_to_error$3,$Opal_opal_location_from_error$2){var $Opal_add_opal_location_to_error$3=$module($Opal_add_opal_location_to_error$3,"Opal"),$nesting=[$Opal_add_opal_location_to_error$3].concat($Opal_opal_location_from_error$2);return function($base,$super,$parent_nesting){[$klass($base,$super,"Error")].concat($parent_nesting)}($nesting[0],$$($nesting,"StandardError"),$nesting),function($base,self,$parent_nesting){var $GemNotFound_initialize$1;[self=$klass($base,self,"GemNotFound")].concat($parent_nesting),self.$attr_reader("gem_name"),Opal.def(self,"$initialize",$GemNotFound_initialize$1=function(gem_name){var $iter=$GemNotFound_initialize$1.$$p;return $iter&&($GemNotFound_initialize$1.$$p=null),this.gem_name=gem_name,$send2(this,$find_super(this,"initialize",$GemNotFound_initialize$1,!1,!0),"initialize",["can't find gem "+gem_name],null)},$GemNotFound_initialize$1.$$arity=1)}($nesting[0],$$($nesting,"Error"),$nesting),function($base,self,$parent_nesting){[self=$klass($base,self,"CompilationError")].concat($parent_nesting),self.$attr_accessor("location")}($nesting[0],$$($nesting,"Error"),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,"ParsingError")].concat($parent_nesting)}($nesting[0],$$($nesting,"CompilationError"),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,"RewritingError")].concat($parent_nesting)}($nesting[0],$$($nesting,"ParsingError"),$nesting),function($base,self,$parent_nesting){[self=$klass($base,self,"SyntaxError")].concat($parent_nesting),self.$attr_accessor("location")}($nesting[0],$$$("::","SyntaxError"),$nesting),Opal.defs($Opal_add_opal_location_to_error$3,"$opal_location_from_error",$Opal_opal_location_from_error$2=function(error){var $writer=nil,opal_location=$$($nesting,"OpalBacktraceLocation").$new();return $truthy(error["$respond_to?"]("location"))&&($writer=[error.$location()],$send(opal_location,"location=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(error["$respond_to?"]("diagnostic"))&&($writer=[error.$diagnostic()],$send(opal_location,"diagnostic=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),opal_location},$Opal_opal_location_from_error$2.$$arity=1),Opal.defs($Opal_add_opal_location_to_error$3,"$add_opal_location_to_error",$Opal_add_opal_location_to_error$3=function(opal_location,error){var backtrace=nil;return(backtrace=error.$backtrace().$to_a()).$unshift(opal_location.$to_s()),error.$set_backtrace(backtrace),error},$Opal_add_opal_location_to_error$3.$$arity=2),function($OpalBacktraceLocation_location$eq$7,$OpalBacktraceLocation_diagnostic$eq$6){$OpalBacktraceLocation_location$eq$7=$klass($OpalBacktraceLocation_location$eq$7,null,"OpalBacktraceLocation"),[$OpalBacktraceLocation_location$eq$7].concat($OpalBacktraceLocation_diagnostic$eq$6);return $OpalBacktraceLocation_location$eq$7.$attr_accessor("path","lineno","label"),Opal.def($OpalBacktraceLocation_location$eq$7,"$initialize",$OpalBacktraceLocation_diagnostic$eq$6=function(path,lineno,$a){return null==path&&(path=nil),null==lineno&&(lineno=nil),null==$a&&($a=nil),$a=[path,lineno,$a],this.path=$a[0],this.lineno=$a[1],this.label=$a[2],$a},$OpalBacktraceLocation_diagnostic$eq$6.$$arity=-1),Opal.def($OpalBacktraceLocation_location$eq$7,"$to_s",$OpalBacktraceLocation_diagnostic$eq$6=function(){var string=nil,string=this.$path();return $truthy(this.$lineno())&&(string=$rb_plus(string,":"+this.$lineno())),string=$rb_plus(string,":in "),string=$truthy(this.$label())?$rb_plus(string,"`"+this.$label()+"'"):$rb_plus(string,"unknown")},$OpalBacktraceLocation_diagnostic$eq$6.$$arity=0),$alias($OpalBacktraceLocation_location$eq$7,"line","lineno"),Opal.def($OpalBacktraceLocation_location$eq$7,"$diagnostic=",$OpalBacktraceLocation_diagnostic$eq$6=function(diagnostic){var $writer;return $truthy(diagnostic)?($writer=[diagnostic.$location()],$send(this,"location=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil},$OpalBacktraceLocation_diagnostic$eq$6.$$arity=1),Opal.def($OpalBacktraceLocation_location$eq$7,"$location=",$OpalBacktraceLocation_location$eq$7=function(location){var $writer=nil;return $truthy(location)?($writer=[location.$line()],$send(this,"lineno=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(location["$respond_to?"]("source_line"))?($writer=[location.$source_line()],$send(this,"label=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy(location["$respond_to?"]("expression"))?($writer=[location.$expression().$source_line()],$send(this,"label=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil):nil},$OpalBacktraceLocation_location$eq$7.$$arity=1),nil&&"location="}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/magic_comments"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$freeze","$line","$loc","$take","$each","$>=","$any?","$scan","$text","$to_sym","$===","$[]=","$-"]),function($MagicComments_parse$1,$parent_nesting){var $MagicComments_parse$1=$module($MagicComments_parse$1,"MagicComments"),$nesting=[$MagicComments_parse$1].concat($parent_nesting);return Opal.const_set($nesting[0],"MAGIC_COMMENT_RE",/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),Opal.const_set($nesting[0],"EMACS_MAGIC_COMMENT_RE",/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),Opal.defs($MagicComments_parse$1,"$parse",$MagicComments_parse$1=function(sexp,comments){var $$2,first_line=nil,flags=$hash2([],{});return $truthy(sexp)&&(first_line=sexp.$loc().$line(),comments=comments.$take(first_line)),$send(comments,"each",[],(($$2=function(comment){var $$3,$ret_or_1,lhs,rhs,self=null==$$2.$$s?this:$$2.$$s,$ret_or_2=nil,parts=nil;return null==comment&&(comment=nil),!$truthy($truthy($ret_or_1=first_line)?(lhs=comment.$loc().$line(),rhs=first_line,"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)):$ret_or_1)&&$truthy($truthy($ret_or_2=(parts=comment.$text().$scan($$($nesting,"MAGIC_COMMENT_RE")))["$any?"]())?$ret_or_2:(parts=comment.$text().$scan($$($nesting,"EMACS_MAGIC_COMMENT_RE")))["$any?"]())?$send(parts,"each",[],(($$3=function(key,rhs){null==$$3.$$s||$$3.$$s;var lhs=nil,$case=nil;return null==key&&(key=nil),null==rhs&&(rhs=nil),lhs=[key.$to_sym(),!!"true"["$==="]($case=rhs)||!"false"["$==="]($case)&&rhs],$send(flags,"[]=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}).$$s=self,$$3.$$arity=2,$$3)):nil}).$$s=this,$$2.$$arity=1,$$2)),flags},$MagicComments_parse$1.$$arity=2),nil&&"parse"}($$($nesting,"Opal"),$nesting)},Opal.modules["opal/compiler"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$hash2=Opal.hash2,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs(["$require","$compile","$new","$freeze","$join","$dirname","$first","$split","$basename","$to_s","$cleanpath","$Pathname","$fetch","$define_method","$option_value","$key?","$[]","$!","$include?","$raise","$inspect","$[]=","$-","$compiler_option","$attr_reader","$attr_accessor","$parse","$re_raise_with_location","$flatten","$process","$end_with?","$code","$last","$<<","$fragment","$s","$map","$to_proc","$file","$source=","$default_parser","$tokenize","$associate_locations","$eof","$magic_comments","$to_sym","$strip","$location=","$opal_location_from_error","$path=","$label","$lines","$to_i","$line","$label=","$message","$set_backtrace","$backtrace","$add_opal_location_to_error","$warn","$empty?","$gsub","$+","$start_with?","$helpers","$new_temp","$queue_temp","$push_while","$pop_while","$in_while?","$nil?","$scope","$handlers","$type","$compile_to_fragments","$error","$returns","$===","$updated","$children","$loc","$uses_block!","$block_name","$find_parent_def","$cache","$source_map"]),self.$require("set"),self.$require("opal/parser"),self.$require("opal/fragment"),self.$require("opal/nodes"),self.$require("opal/eof_content"),self.$require("opal/errors"),self.$require("opal/magic_comments"),function($Opal_compile$1,$parent_nesting){var $Opal_compile$1=$module($Opal_compile$1,"Opal"),$nesting=[$Opal_compile$1].concat($parent_nesting);return Opal.defs($Opal_compile$1,"$compile",$Opal_compile$1=function(source,options){return null==options&&(options=$hash2([],{})),$$($nesting,"Compiler").$new(source,options).$compile()},$Opal_compile$1.$$arity=-2),function($Compiler_marshal_load$37,$Compiler_marshal_dump$36){var $Compiler_re_raise_with_location$17,$Compiler_indent$24,$Compiler_with_temp$25,$Compiler_in_while$26,$Compiler_in_case$27,$Compiler_marshal_load$37=$klass($Compiler_marshal_load$37,null,"Compiler"),$nesting=[$Compiler_marshal_load$37].concat($Compiler_marshal_dump$36);return $Compiler_marshal_load$37.$$prototype.option_values=$Compiler_marshal_load$37.$$prototype.options=$Compiler_marshal_load$37.$$prototype.magic_comments=$Compiler_marshal_load$37.$$prototype.fragments=$Compiler_marshal_load$37.$$prototype.source=$Compiler_marshal_load$37.$$prototype.buffer=$Compiler_marshal_load$37.$$prototype.source_map=$Compiler_marshal_load$37.$$prototype.result=$Compiler_marshal_load$37.$$prototype.helpers=$Compiler_marshal_load$37.$$prototype.operator_helpers=$Compiler_marshal_load$37.$$prototype.method_calls=$Compiler_marshal_load$37.$$prototype.indent=$Compiler_marshal_load$37.$$prototype.unique=$Compiler_marshal_load$37.$$prototype.scope=$Compiler_marshal_load$37.$$prototype.case_stmt=$Compiler_marshal_load$37.$$prototype.handlers=$Compiler_marshal_load$37.$$prototype.requires=$Compiler_marshal_load$37.$$prototype.required_trees=nil,Opal.const_set($nesting[0],"INDENT"," "),Opal.const_set($nesting[0],"COMPARE",["<",">","<=",">="].$freeze()),Opal.defs($Compiler_marshal_load$37,"$module_name",$Compiler_marshal_dump$36=function(path){return path=$$($nesting,"File").$join($$($nesting,"File").$dirname(path),$$($nesting,"File").$basename(path).$split(".").$first()),this.$Pathname(path).$cleanpath().$to_s()},$Compiler_marshal_dump$36.$$arity=1),Opal.defs($Compiler_marshal_load$37,"$compiler_option",$Compiler_marshal_dump$36=function(name,config){var $$4,method_name;return null==config&&(config=$hash2([],{})),method_name=config.$fetch("as",name),$send(this,"define_method",[method_name],(($$4=function(){return(null==$$4.$$s?this:$$4.$$s).$option_value(name,config)}).$$s=this,$$4.$$arity=0,$$4))},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$option_value",$Compiler_marshal_dump$36=function(name,config){var default_value,magic_comment,$writer,self=this,valid_values=nil,value=nil,$ret_or_1=nil,$ret_or_2=nil;return $truthy(self.option_values["$key?"](name))?self.option_values["$[]"](name):(default_value=config["$[]"]("default"),valid_values=config["$[]"]("valid_values"),magic_comment=config["$[]"]("magic_comment"),value=self.options.$fetch(name,default_value),$truthy($truthy($ret_or_1=magic_comment)?self.magic_comments["$key?"](name):$ret_or_1)&&(value=self.magic_comments.$fetch(name)),$truthy($truthy($ret_or_2=valid_values)?valid_values["$include?"](value)["$!"]():$ret_or_2)&&self.$raise($$($nesting,"ArgumentError"),"invalid value "+value.$inspect()+" for option "+name.$inspect()+" (valid values: "+valid_values.$inspect()+")"),$writer=[name,value],$send(self.option_values,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])},$Compiler_marshal_dump$36.$$arity=2),$Compiler_marshal_load$37.$compiler_option("file",$hash2(["default"],{default:"(file)"})),$Compiler_marshal_load$37.$compiler_option("method_missing",$hash2(["default","as"],{default:!0,as:"method_missing?"})),$Compiler_marshal_load$37.$compiler_option("arity_check",$hash2(["default","as"],{default:!1,as:"arity_check?"})),$Compiler_marshal_load$37.$compiler_option("freezing",$hash2(["default","as"],{default:!0,as:"freezing?"})),$Compiler_marshal_load$37.$compiler_option("irb",$hash2(["default","as"],{default:!1,as:"irb?"})),$Compiler_marshal_load$37.$compiler_option("dynamic_require_severity",$hash2(["default","valid_values"],{default:"ignore",valid_values:["error","warning","ignore"]})),$Compiler_marshal_load$37.$compiler_option("requirable",$hash2(["default","as"],{default:!1,as:"requirable?"})),$Compiler_marshal_load$37.$compiler_option("esm",$hash2(["default","as"],{default:!1,as:"esm?"})),$Compiler_marshal_load$37.$compiler_option("inline_operators",$hash2(["default","as"],{default:!0,as:"inline_operators?"})),$Compiler_marshal_load$37.$compiler_option("eval",$hash2(["default","as"],{default:!1,as:"eval?"})),$Compiler_marshal_load$37.$compiler_option("enable_source_location",$hash2(["default","as"],{default:!1,as:"enable_source_location?"})),$Compiler_marshal_load$37.$compiler_option("use_strict",$hash2(["default","as","magic_comment"],{default:!1,as:"use_strict?",magic_comment:!0})),$Compiler_marshal_load$37.$compiler_option("parse_comments",$hash2(["default","as"],{default:!1,as:"parse_comments?"})),$Compiler_marshal_load$37.$compiler_option("scope_variables",$hash2(["default"],{default:[]})),$Compiler_marshal_load$37.$attr_reader("result"),$Compiler_marshal_load$37.$attr_reader("fragments"),$Compiler_marshal_load$37.$attr_accessor("scope"),$Compiler_marshal_load$37.$attr_reader("case_stmt"),$Compiler_marshal_load$37.$attr_reader("eof_content"),$Compiler_marshal_load$37.$attr_reader("comments"),$Compiler_marshal_load$37.$attr_reader("magic_comments"),Opal.def($Compiler_marshal_load$37,"$initialize",$Compiler_marshal_dump$36=function(source,options){return null==options&&(options=$hash2([],{})),this.source=source,this.indent="",this.unique=0,this.options=options,this.comments=$$($nesting,"Hash").$new([]),this.case_stmt=nil,this.option_values=$hash2([],{}),this.magic_comments=$hash2([],{})},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$compile",$Compiler_marshal_dump$36=function(){var $$8;return this.$parse(),this.fragments=$send(this,"re_raise_with_location",[],(($$8=function(){var self=null==$$8.$$s?this:$$8.$$s;return null==self.sexp&&(self.sexp=nil),self.$process(self.sexp).$flatten()}).$$s=this,$$8.$$arity=0,$$8)),$truthy(this.fragments.$last().$code()["$end_with?"]("\n"))||this.fragments["$<<"](this.$fragment("\n",nil,this.$s("newline"))),this.result=$send(this.fragments,"map",[],"code".$to_proc()).$join("")},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$parse",$Compiler_marshal_dump$36=function(){var $$10,$a,sexp,comments,tokens,self=this,$ret_or_3=nil;return self.buffer=$$$($$$($$$("::","Opal"),"Parser"),"SourceBuffer").$new(self.$file(),1),$a=[self.source],$send(self.buffer,"source=",Opal.to_a($a)),$rb_minus($a.length,1),self.parser=$$$($$($nesting,"Opal"),"Parser").$default_parser(),$a=$send(self,"re_raise_with_location",[],(($$10=function(){var self=null==$$10.$$s?this:$$10.$$s;return null==self.parser&&(self.parser=nil),null==self.buffer&&(self.buffer=nil),self.parser.$tokenize(self.buffer)}).$$s=self,$$10.$$arity=0,$$10)),$a=Opal.to_ary($a),sexp=null==$a[0]?nil:$a[0],comments=null==$a[1]?nil:$a[1],tokens=null==$a[2]?nil:$a[2],self.sexp=self.$s("top",$truthy($ret_or_3=sexp)?$ret_or_3:self.$s("nil")),self.comments=$$$($$$($$$("::","Parser"),"Source"),"Comment").$associate_locations(sexp,comments),self.magic_comments=$$($nesting,"MagicComments").$parse(sexp,comments),self.eof_content=$$($nesting,"EofContent").$new(tokens,self.source).$eof()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$source_map",$Compiler_marshal_dump$36=function(){var $ret_or_4;return $truthy($ret_or_4=this.source_map)?$ret_or_4:$$$($$$($$$("::","Opal"),"SourceMap"),"File").$new(this.fragments,this.$file(),this.source,this.result)},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$helpers",$Compiler_marshal_dump$36=function(){var $$13,$ret_or_5,self=this;return self.helpers=$truthy($ret_or_5=self.helpers)?$ret_or_5:$$($nesting,"Set").$new($send(self.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],(($$13=function(h){null==$$13.$$s||$$13.$$s;return null==h&&(h=nil),h.$strip().$to_sym()}).$$s=self,$$13.$$arity=1,$$13)))},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$operator_helpers",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_6=nil;return self.operator_helpers=$truthy($ret_or_6=self.operator_helpers)?$ret_or_6:$$($nesting,"Set").$new()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$method_calls",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_7=nil;return self.method_calls=$truthy($ret_or_7=self.method_calls)?$ret_or_7:$$($nesting,"Set").$new()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$error",$Compiler_marshal_dump$36=function(msg,line){var error,$writer;return null==line&&(line=nil),error=$$$($$$("::","Opal"),"SyntaxError").$new(msg),$writer=[$$$($$($nesting,"Opal"),"OpalBacktraceLocation").$new(this.$file(),line)],$send(error,"location=",Opal.to_a($writer)),$rb_minus($writer.length,1),this.$raise(error)},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$re_raise_with_location",$Compiler_re_raise_with_location$17=function(){var $writer,$iter=$Compiler_re_raise_with_location$17.$$p,$yield=$iter||nil,error=nil,opal_location=nil,new_error=nil;$iter&&($Compiler_re_raise_with_location$17.$$p=null);try{return Opal.yieldX($yield,[])}catch($err){if(!Opal.rescue($err,[$$($nesting,"StandardError"),$$$($$$("::","Opal"),"SyntaxError")]))throw $err;error=$err;try{return opal_location=$$$("::","Opal").$opal_location_from_error(error),$writer=[this.$file()],$send(opal_location,"path=",Opal.to_a($writer)),$rb_minus($writer.length,1),$truthy(opal_location.$label())||($writer=[this.source.$lines()["$[]"]($rb_minus(opal_location.$line().$to_i(),1)).$strip()],$send(opal_location,"label=",Opal.to_a($writer)),$rb_minus($writer.length,1)),(new_error=$$$($$$("::","Opal"),"SyntaxError").$new(error.$message())).$set_backtrace(error.$backtrace()),$$$("::","Opal").$add_opal_location_to_error(opal_location,new_error),this.$raise(new_error)}finally{Opal.pop_exception()}}},$Compiler_re_raise_with_location$17.$$arity=0),Opal.def($Compiler_marshal_load$37,"$warning",$Compiler_marshal_dump$36=function(msg,line){return null==line&&(line=nil),this.$warn("warning: "+msg+" -- "+this.$file()+":"+line)},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$parser_indent",$Compiler_marshal_dump$36=function(){return this.indent},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$s",$Compiler_marshal_dump$36=function(type,$a){var children=Opal.slice.call(arguments,1,arguments.length);return $$$($$$($$$("::","Opal"),"AST"),"Node").$new(type,children)},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$fragment",$Compiler_marshal_dump$36=function(str,scope,sexp){return null==sexp&&(sexp=nil),$$($nesting,"Fragment").$new(str,scope,sexp)},$Compiler_marshal_dump$36.$$arity=-3),Opal.def($Compiler_marshal_load$37,"$unique_temp",$Compiler_marshal_dump$36=function(name){var unique,$ret_or_9=nil;return name=name.$to_s(),$truthy($truthy($ret_or_9=name)?name["$empty?"]()["$!"]():$ret_or_9)&&(name=name.$to_s().$gsub("<=>","$lt_eq_gt").$gsub("===","$eq_eq_eq").$gsub("==","$eq_eq").$gsub("=~","$eq_tilde").$gsub("!~","$excl_tilde").$gsub("!=","$not_eq").$gsub("<=","$lt_eq").$gsub(">=","$gt_eq").$gsub("=","$eq").$gsub("?","$ques").$gsub("!","$excl").$gsub("/","$slash").$gsub("%","$percent").$gsub("+","$plus").$gsub("-","$minus").$gsub("<","$lt").$gsub(">","$gt").$gsub(/[^\w\$]/,"$")),unique=this.unique=$rb_plus(this.unique,1),""+($truthy(name["$start_with?"]("$"))?nil:"$")+name+"$"+unique},$Compiler_marshal_dump$36.$$arity=1),Opal.def($Compiler_marshal_load$37,"$helper",$Compiler_marshal_dump$36=function(name){return this.$helpers()["$<<"](name)},$Compiler_marshal_dump$36.$$arity=1),Opal.def($Compiler_marshal_load$37,"$indent",$Compiler_indent$24=function(){var indent,res,$iter=$Compiler_indent$24.$$p,$yield=$iter||nil;return $iter&&($Compiler_indent$24.$$p=null),indent=this.indent,this.indent=$rb_plus(this.indent,$$($nesting,"INDENT")),this.space="\n"+this.indent,res=Opal.yieldX($yield,[]),this.indent=indent,this.space="\n"+this.indent,res},$Compiler_indent$24.$$arity=0),Opal.def($Compiler_marshal_load$37,"$with_temp",$Compiler_with_temp$25=function(){var tmp,res,$iter=$Compiler_with_temp$25.$$p,$yield=$iter||nil;return $iter&&($Compiler_with_temp$25.$$p=null),tmp=this.scope.$new_temp(),res=Opal.yield1($yield,tmp),this.scope.$queue_temp(tmp),res},$Compiler_with_temp$25.$$arity=0),Opal.def($Compiler_marshal_load$37,"$in_while",$Compiler_in_while$26=function(){var result,$iter=$Compiler_in_while$26.$$p,$yield=$iter||nil;return $iter&&($Compiler_in_while$26.$$p=null),$yield===nil?nil:(this.while_loop=this.scope.$push_while(),result=Opal.yieldX($yield,[]),this.scope.$pop_while(),result)},$Compiler_in_while$26.$$arity=0),Opal.def($Compiler_marshal_load$37,"$in_case",$Compiler_in_case$27=function(){var old,$iter=$Compiler_in_case$27.$$p,$yield=$iter||nil;return $iter&&($Compiler_in_case$27.$$p=null),$yield===nil?nil:(old=this.case_stmt,this.case_stmt=$hash2([],{}),Opal.yieldX($yield,[]),this.case_stmt=old)},$Compiler_in_case$27.$$arity=0),Opal.def($Compiler_marshal_load$37,"$in_while?",$Compiler_marshal_dump$36=function(){return this.scope["$in_while?"]()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$process",$Compiler_marshal_dump$36=function(sexp,level){var handler=nil;return null==level&&(level="expr"),$truthy(sexp["$nil?"]())?this.$fragment("",this.$scope()):$truthy(handler=this.$handlers()["$[]"](sexp.$type()))?handler.$new(sexp,level,this).$compile_to_fragments():this.$error("Unsupported sexp: "+sexp.$type())},$Compiler_marshal_dump$36.$$arity=-2),Opal.def($Compiler_marshal_load$37,"$handlers",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_10=nil;return self.handlers=$truthy($ret_or_10=self.handlers)?$ret_or_10:$$$($$$($$($nesting,"Opal"),"Nodes"),"Base").$handlers()},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$requires",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_11=nil;return self.requires=$truthy($ret_or_11=self.requires)?$ret_or_11:[]},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$required_trees",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_12=nil;return self.required_trees=$truthy($ret_or_12=self.required_trees)?$ret_or_12:[]},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$returns",$Compiler_marshal_dump$36=function(sexp){var $a,$b,$$34,$case,when_sexp,then_sexp,body_sexp,resbodies,klass,lvar,body,rescue_sexp,ensure_body,rest,last,cond,true_body,false_body,self=this,else_sexp=nil;return $truthy(sexp)?($case=sexp.$type(),"undef"["$==="]($case)?self.$returns(self.$s("begin",sexp,self.$s("nil"))):"break"["$==="]($case)||"next"["$==="]($case)||"redo"["$==="]($case)||"retry"["$==="]($case)?sexp:"yield"["$==="]($case)?sexp.$updated("returnable_yield",nil):"when"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),$b=($b=$a.length-1)<0?0:$b,when_sexp=$slice.call($a,0,$b),then_sexp=null==$a[$b]?nil:$a[$b],sexp.$updated(nil,[].concat(Opal.to_a(when_sexp)).concat([self.$returns(then_sexp)]))):"rescue"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),body_sexp=null==$a[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,resbodies=$slice.call($a,1,$b),else_sexp=null==$a[$b]?nil:$a[$b],resbodies=$send(resbodies,"map",[],(($$34=function(resbody){var self=null==$$34.$$s?this:$$34.$$s;return null==resbody&&(resbody=nil),self.$returns(resbody)}).$$s=self,$$34.$$arity=1,$$34)),$truthy(else_sexp)&&(else_sexp=self.$returns(else_sexp)),sexp.$updated(nil,[self.$returns(body_sexp)].concat(Opal.to_a(resbodies)).concat([else_sexp]))):"resbody"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),klass=null==$a[0]?nil:$a[0],lvar=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],sexp.$updated(nil,[klass,lvar,self.$returns(body)])):"ensure"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),rescue_sexp=null==$a[0]?nil:$a[0],ensure_body=null==$a[1]?nil:$a[1],sexp=sexp.$updated(nil,[self.$returns(rescue_sexp),ensure_body]),self.$s("js_return",sexp)):"begin"["$==="]($case)||"kwbegin"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),$b=($b=$a.length-1)<0?0:$b,rest=$slice.call($a,0,$b),last=null==$a[$b]?nil:$a[$b],sexp.$updated(nil,[].concat(Opal.to_a(rest)).concat([self.$returns(last)]))):"while"["$==="]($case)||"until"["$==="]($case)||"while_post"["$==="]($case)||"until_post"["$==="]($case)||"return"["$==="]($case)||"js_return"["$==="]($case)||"returnable_yield"["$==="]($case)?sexp:"xstr"["$==="]($case)?sexp.$updated(nil,[$send(self,"s",["js_return"].concat(Opal.to_a(sexp.$children())))]):"if"["$==="]($case)?($a=[].concat(Opal.to_a(sexp)),cond=null==$a[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],sexp.$updated(nil,[cond,self.$returns(true_body),self.$returns(false_body)])):self.$s("js_return",sexp).$updated(nil,nil,$hash2(["location"],{location:sexp.$loc()}))):self.$returns(self.$s("nil"))},$Compiler_marshal_dump$36.$$arity=1),Opal.def($Compiler_marshal_load$37,"$handle_block_given_call",$Compiler_marshal_dump$36=function(sexp){var self=this,$ret_or_13=nil,scope=nil;return self.scope["$uses_block!"](),$truthy(self.scope.$block_name())?self.$fragment("("+self.scope.$block_name()+" !== nil)",self.$scope(),sexp):$truthy($truthy($ret_or_13=scope=self.scope.$find_parent_def())?scope.$block_name():$ret_or_13)?self.$fragment("("+scope.$block_name()+" !== nil)",scope,sexp):self.$fragment("false",scope,sexp)},$Compiler_marshal_dump$36.$$arity=1),Opal.def($Compiler_marshal_load$37,"$marshal_dump",$Compiler_marshal_dump$36=function(){var self=this,$ret_or_14=nil;return[self.options,self.option_values,self.source_map=$truthy($ret_or_14=self.source_map)?$ret_or_14:self.$source_map().$cache(),self.magic_comments,self.result,self.required_trees,self.requires]},$Compiler_marshal_dump$36.$$arity=0),Opal.def($Compiler_marshal_load$37,"$marshal_load",$Compiler_marshal_load$37=function($a){var $b=$a,$a=Opal.to_ary($b);return this.options=null==$a[0]?nil:$a[0],this.option_values=null==$a[1]?nil:$a[1],this.source_map=null==$a[2]?nil:$a[2],this.magic_comments=null==$a[3]?nil:$a[3],this.result=null==$a[4]?nil:$a[4],this.required_trees=null==$a[5]?nil:$a[5],this.requires=null==$a[6]?nil:$a[6],$b},$Compiler_marshal_load$37.$$arity=1),nil&&"marshal_load"}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/erb"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$require","$compile","$new","$freeze","$fix_quotes","$find_contents","$find_code","$wrap_compiled","$require_erb","$prepared_source","$gsub","$+","$last_match","$=~","$sub"]),self.$require("opal/compiler"),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function($ERB_compile$1,$parent_nesting){var $ERB_compile$1=$module($ERB_compile$1,"ERB"),$nesting=[$ERB_compile$1].concat($parent_nesting);return Opal.defs($ERB_compile$1,"$compile",$ERB_compile$1=function(source,file_name){return null==file_name&&(file_name="(erb)"),$$($nesting,"Compiler").$new(source,file_name).$compile()},$ERB_compile$1.$$arity=-2),function($Compiler_wrap_compiled$11,$Compiler_find_code$9){var $Compiler_wrap_compiled$11=$klass($Compiler_wrap_compiled$11,null,"Compiler"),$nesting=[$Compiler_wrap_compiled$11].concat($Compiler_find_code$9);return $Compiler_wrap_compiled$11.$$prototype.prepared_source=$Compiler_wrap_compiled$11.$$prototype.source=$Compiler_wrap_compiled$11.$$prototype.file_name=nil,Opal.const_set($nesting[0],"BLOCK_EXPR",/\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()),Opal.def($Compiler_wrap_compiled$11,"$initialize",$Compiler_find_code$9=function($a,file_name){return null==file_name&&(file_name="(erb)"),$a=[$a,file_name,$a],this.source=$a[0],this.file_name=$a[1],this.result=$a[2],$a},$Compiler_find_code$9.$$arity=-2),Opal.def($Compiler_wrap_compiled$11,"$prepared_source",$Compiler_find_code$9=function(){var self=this,$ret_or_1=nil,source=nil;return self.prepared_source=$truthy($ret_or_1=self.prepared_source)?$ret_or_1:(source=self.source,source=self.$fix_quotes(source),source=self.$find_contents(source),source=self.$find_code(source),source=self.$wrap_compiled(source),source=self.$require_erb(source))},$Compiler_find_code$9.$$arity=0),Opal.def($Compiler_wrap_compiled$11,"$compile",$Compiler_find_code$9=function(){return $$($nesting,"Opal").$compile(this.$prepared_source())},$Compiler_find_code$9.$$arity=0),Opal.def($Compiler_wrap_compiled$11,"$fix_quotes",$Compiler_find_code$9=function(result){return result.$gsub('"','\\"')},$Compiler_find_code$9.$$arity=1),Opal.def($Compiler_wrap_compiled$11,"$require_erb",$Compiler_find_code$9=function(lhs){var rhs;return rhs=lhs,"number"==typeof(lhs='require "erb";')&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)},$Compiler_find_code$9.$$arity=1),Opal.def($Compiler_wrap_compiled$11,"$find_contents",$Compiler_find_code$9=function(result){var $$8;return $send(result,"gsub",[/<%=([\s\S]+?)%>/],(($$8=function(){null==$$8.$$s||$$8.$$s;var inner=nil,inner=$$($nesting,"Regexp").$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"');return $truthy(inner["$=~"]($$($nesting,"BLOCK_EXPR")))?'")\noutput_buffer.append= '+inner+'\noutput_buffer.append("':'")\noutput_buffer.append=('+inner+')\noutput_buffer.append("'}).$$s=this,$$8.$$arity=0,$$8))},$Compiler_find_code$9.$$arity=1),Opal.def($Compiler_wrap_compiled$11,"$find_code",$Compiler_find_code$9=function(result){var $$10;return $send(result,"gsub",[/<%([\s\S]+?)%>/],(($$10=function(){null==$$10.$$s||$$10.$$s;return'")\n'+$$($nesting,"Regexp").$last_match(1).$gsub(/\\"/,'"')+'\noutput_buffer.append("'}).$$s=this,$$10.$$arity=0,$$10))},$Compiler_find_code$9.$$arity=1),Opal.def($Compiler_wrap_compiled$11,"$wrap_compiled",$Compiler_wrap_compiled$11=function(result){return"Template.new('"+this.file_name.$sub(Opal.regexp(["\\.opalerb",$$($nesting,"REGEXP_END")]),"")+"') do |output_buffer|\noutput_buffer.append(\""+result+'")\noutput_buffer.join\nend\n'},$Compiler_wrap_compiled$11.$$arity=1),nil&&"wrap_compiled"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal-parser"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy;function run_ruby_scripts(){for(var tag,tags=document.getElementsByTagName("script"),i=0,len=tags.length;i>8-idx%1*8))(charCode=str.charCodeAt(idx+=3/4))>255&&self.$raise($$("ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),block=block<<8|charCode;return output},decode=function(input){var str=String(input).replace(/=+$/,"");str.length%4==1&&self.$raise($$("ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var bs,buffer,bc=0,idx=0,output="";buffer=str.charAt(idx++);~buffer&&(bs=bc%4?64*bs+buffer:buffer,bc++%4)?output+=String.fromCharCode(255&bs>>(-2*bc&6)):0)buffer=chars.indexOf(buffer);return output},$defs(self,"$decode64",(function(string){return decode(string.replace(/\r?\n/g,""))}),1),$defs(self,"$encode64",(function(string){return encode(string).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")}),1),$defs(self,"$strict_decode64",(function(string){return decode(string)}),1),$defs(self,"$strict_encode64",(function(string){return encode(string)}),1),$defs(self,"$urlsafe_decode64",(function(string){return decode(string.replace(/\-/g,"+").replace(/_/g,"/"))}),1),$defs(self,"$urlsafe_encode64",(function(string,$kwargs){var padding,str=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(padding=$kwargs.$$smap.padding)&&(padding=!0),str=encode(string).replace(/\+/g,"-").replace(/\//g,"_"),$truthy(padding)||(str=str.$delete("=")),str}),-2)}($nesting[0],$nesting)},Opal.modules["corelib/pack_unpack/format_string_parser"]=function(Opal){Opal.nil;var self,directives,modifiers,$$$=Opal.$$$,$module=Opal.module,$Kernel=Opal.Kernel;return Opal.add_stubs("raise"),self=$module("::","PackUnpack"),directives=["C","S","L","Q","J","c","s","l","q","j","n","N","v","V","U","w","D","d","F","f","E","e","G","g","A","a","Z","B","b","H","h","u","M","m","P","p","@","X","x"],modifiers=["!","_",">","<"],void(self.eachDirectiveAndCount=function(format,callback){var currentDirective,currentCount,currentModifiers,countSpecified;function reset(){currentDirective=null,currentCount=0,currentModifiers=[],countSpecified=!1}function yieldAndReset(){null!=currentDirective?(!/[sSiIlLqQjJ]/.test(currentDirective)&¤tModifiers.length>0&&$Kernel.$raise($$$("ArgumentError"),"'"+currentModifiers[0]+"' allowed only after types sSiIlLqQjJ"),-1!==currentModifiers.indexOf("<")&&-1!==currentModifiers.indexOf(">")&&$Kernel.$raise($$$("RangeError"),"Can't use both '<' and '>'"),countSpecified||(currentCount=1),-1!==currentModifiers.indexOf(">")&&(currentDirective+=">"),callback(currentDirective,currentCount),reset()):reset()}reset();for(var i=0;i,length,inspect,[],unpack"),self.$require("base64"),self.$require("corelib/pack_unpack/format_string_parser"),function($base,$super,$parent_nesting){var self=$klass("::",null,"String"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),expected=nil,given=nil,eachDirectiveAndCount=Opal.PackUnpack.eachDirectiveAndCount;function mapChunksToWords(callback){return function(data){return callback(data).map((function(chunk){return chunk.reverse().reduce((function(result,singleByte){return 256*result+singleByte}),0)}))}}function chunkBy(chunkSize,callback){return function(data){for(var array=callback(data),chunks=[],chunksCount=array.length/chunkSize,i=0;i=limit/2&&(n-=limit),n}))}}function bytesToAsciiChars(callback){return function(data){return callback(data).map((function(singleByte){return String.fromCharCode(singleByte)}))}}function joinChars(callback){return function(data){return callback(data).join("")}}function wrapIntoArray(callback){return function(data){return[callback(data)]}}var charCodesToFilter,filterTrailingZerosAndSpaces=(charCodesToFilter=["\0"," "].map((function(s){return s.charCodeAt(0)})),function(callback){return function(data){for(var charCodes=callback(data);-1!==charCodesToFilter.indexOf(charCodes[charCodes.length-1]);)charCodes=charCodes.slice(0,charCodes.length-1);return charCodes}});function invertChunks(callback){return function(data){return callback(data).map((function(chunk){return chunk.reverse()}))}}function identityFunction(value){return value}var callback,handlers={C:identityFunction,S:mapChunksToWords(chunkBy(2,identityFunction)),L:mapChunksToWords(chunkBy(4,identityFunction)),Q:mapChunksToWords(chunkBy(8,identityFunction)),J:null,"S>":mapChunksToWords(invertChunks(chunkBy(2,identityFunction))),"L>":mapChunksToWords(invertChunks(chunkBy(4,identityFunction))),"Q>":mapChunksToWords(invertChunks(chunkBy(8,identityFunction))),c:toNByteSigned(1,identityFunction),s:toNByteSigned(2,mapChunksToWords(chunkBy(2,identityFunction))),l:toNByteSigned(4,mapChunksToWords(chunkBy(4,identityFunction))),q:toNByteSigned(8,mapChunksToWords(chunkBy(8,identityFunction))),j:null,"s>":toNByteSigned(2,mapChunksToWords(invertChunks(chunkBy(2,identityFunction)))),"l>":toNByteSigned(4,mapChunksToWords(invertChunks(chunkBy(4,identityFunction)))),"q>":toNByteSigned(8,mapChunksToWords(invertChunks(chunkBy(8,identityFunction)))),n:null,N:null,v:null,V:null,U:identityFunction,w:(callback=identityFunction,function(data){for(var bytes=callback(data),result=[],buffer="",i=0;i45)return"";for(length+=n;n>0;){var c1=bytes[i],c2=bytes[i+1],c3=bytes[i+2],b1=(c1-32&63)<<2|(c2-32&63)>>4,b2=(c2-32&63)<<4|(c3-32&63)>>2,b3=(c3-32&63)<<6|bytes[i+3]-32&63;result.push(255&b1),result.push(255&b2),result.push(255&b3),i+=4,n-=3}++i}}return result.slice(0,length)}}(identityFunction))),M:function(callback){return function(data){return callback(data).replace(/[\t\x20]$/gm,"").replace(/=(?:\r\n?|\n|$)/g,"").replace(/=([a-fA-F0-9]{2})/g,(function($0,$1){var codePoint=parseInt($1,16);return String.fromCharCode(codePoint)}))}}(joinChars(bytesToAsciiChars(identityFunction))),m:function(callback){return function(data){return $$("Base64").$decode64(callback(data))}}(joinChars(bytesToAsciiChars(identityFunction))),P:null,p:null};function readBytes(n){return function(bytes){return{chunk:bytes.slice(0,n),rest:bytes=bytes.slice(n,bytes.length)}}}function readNTimesAndMerge(callback){return function(buffer,count){var chunkData,chunk=[];if(count===1/0)for(;buffer.length>0;)buffer=(chunkData=callback(buffer)).rest,chunk=chunk.concat(chunkData.chunk);else for(var i=0;i":readNTimesAndMerge(readBytes(2)),"L>":readNTimesAndMerge(readBytes(4)),"Q>":readNTimesAndMerge(readBytes(8)),c:readNTimesAndMerge(readBytes(1)),s:readNTimesAndMerge(readBytes(2)),l:readNTimesAndMerge(readBytes(4)),q:readNTimesAndMerge(readBytes(8)),j:null,"s>":readNTimesAndMerge(readBytes(2)),"l>":readNTimesAndMerge(readBytes(4)),"q>":readNTimesAndMerge(readBytes(8)),n:null,N:null,v:null,V:null,U:readNTimesAndMerge((function(bytes){var currentByteIndex=0,bytesLength=bytes.length;function readByte(){var result=bytes[currentByteIndex++];return bytesLength=bytes.length-currentByteIndex,result}var extraLength,c=readByte();if(c>>7==0)return{chunk:[c],rest:bytes.slice(currentByteIndex)};c>>6==2&&$Kernel.$raise($$$("ArgumentError"),"malformed UTF-8 character"),c>>5==6?extraLength=1:c>>4==14?extraLength=2:c>>3==30?extraLength=3:c>>2==62?extraLength=4:c>>1==126?extraLength=5:$Kernel.$raise("malformed UTF-8 character"),extraLength>bytesLength&&(expected=extraLength+1,given=bytesLength+1,$Kernel.$raise($$$("ArgumentError"),"malformed UTF-8 character (expected "+expected+" bytes, given "+given+" bytes)"));for(var result=c&(1<<8-extraLength-1)-1,i=0;i>6!=2&&$Kernel.$raise("Invalid multibyte sequence"),result=result<<6|63&c;return result<=65535?{chunk:[result],rest:bytes.slice(currentByteIndex)}:{chunk:[55296+((result-=65536)>>10&1023),56320+(1023&result)],rest:bytes.slice(currentByteIndex)}})),w:readNTimesAndMerge((function(buffer){for(var result=[],i=0;i0&&buffer.length>0;){var singleByte=buffer[0],bitsToTake=Math.min(count,8);Math.ceil(bitsToTake/8);if(buffer=buffer.slice(1,buffer.length),null!=singleByte){var bits=singleByte.toString(2);bits=Array(8-bits.length+1).join("0").concat(bits);for(var j=0;j0&&buffer.length>0;){var singleByte=buffer[0],bitsToTake=Math.min(count,8);Math.ceil(bitsToTake/8);if(buffer=buffer.slice(1,buffer.length),null!=singleByte){var bits=singleByte.toString(2);bits=Array(8-bits.length+1).join("0").concat(bits).split("").reverse().join("");for(var j=0;j0&&buffer.length>0;){var hex=buffer[0].toString(16);buffer=buffer.slice(1,buffer.length),hex=Array(2-hex.length+1).join("0").concat(hex),1===count?(result.push(hex[0]),count--):(result.push(hex[0],hex[1]),count-=2)}return{chunk:result,rest:buffer}},h:function(buffer,count){for(var result=[];count>0&&buffer.length>0;){var hex=buffer[0].toString(16);buffer=buffer.slice(1,buffer.length),hex=Array(2-hex.length+1).join("0").concat(hex),1===count?(result.push(hex[1]),count--):(result.push(hex[1],hex[0]),count-=2)}return{chunk:result,rest:buffer}},u:readNTimesAndMerge((function(buffer){var length=buffer.indexOf(32);return-1===length?{chunk:buffer,rest:[]}:{chunk:buffer.slice(0,length),rest:buffer.slice(length,buffer.length)}})),M:readAll,m:readAll,P:null,p:null},autocompletion={C:!0,S:!0,L:!0,Q:!0,J:null,"S>":!0,"L>":!0,"Q>":!0,c:!0,s:!0,l:!0,q:!0,j:null,"s>":!0,"l>":!0,"q>":!0,n:null,N:null,v:null,V:null,U:!1,w:!1,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:!1,B:!1,b:!1,H:!1,h:!1,u:!1,M:!1,m:!1,P:null,p:null},optimized={"C*":handlers.C,"c*":handlers.c,"A*":handlers.A,"a*":handlers.a,"M*":wrapIntoArray(handlers.M),"m*":wrapIntoArray(handlers.m),"S*":handlers.S,"s*":handlers.s,"L*":handlers.L,"l*":handlers.l,"Q*":handlers.Q,"q*":handlers.q,"S>*":handlers["S>"],"s>*":handlers["s>"],"L>*":handlers["L>"],"l>*":handlers["l>"],"Q>*":handlers["Q>"],"q>*":handlers["q>"]};function alias(existingDirective,newDirective){readChunk[newDirective]=readChunk[existingDirective],handlers[newDirective]=handlers[existingDirective],autocompletion[newDirective]=autocompletion[existingDirective]}return alias("S>","n"),alias("L>","N"),alias("S","v"),alias("L","V"),$def(self,"$unpack",(function(format,$kwargs){var offset;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");null==(offset=$kwargs.$$smap.offset)&&(offset=0),$truthy($rb_lt(offset,0))&&$Kernel.$raise($$$("ArgumentError"),"offset can't be negative"),format=$Opal["$coerce_to!"](format,$$$("String"),"to_str").$gsub(/\s/,"").$delete("\0");var output=[];if("U*"==format&&"UTF-8"===this.internal_encoding.name&&"function"==typeof this.codePointAt){var j=0;output=new Array(this.length);for(var i=offset;i65535&&i++;return output.slice(0,j)}var buffer=this.$bytes();$truthy($rb_gt(offset,buffer.$length()))&&$Kernel.$raise($$$("ArgumentError"),"offset outside of string"),buffer=buffer.slice(offset);var optimizedHandler=optimized[format];if(optimizedHandler)return optimizedHandler(buffer);return eachDirectiveAndCount(format,(function(directive,count){var part=function(directive,count){var chunk,chunkReader=readChunk[directive];null==chunkReader&&$Kernel.$raise("Unsupported unpack directive "+directive.$inspect()+" (no chunk reader defined)");var chunkData=chunkReader(buffer,count);chunk=chunkData.chunk,buffer=chunkData.rest;var handler=handlers[directive];return null==handler&&$Kernel.$raise("Unsupported unpack directive "+directive.$inspect()+" (no handler defined)"),handler(chunk)}(directive,count);if(count!==1/0){var shouldAutocomplete=autocompletion[directive];null==shouldAutocomplete&&$Kernel.$raise("Unsupported unpack directive "+directive.$inspect()+" (no autocompletion rule defined)"),shouldAutocomplete&&function(array,size){for(;array.length"}),0),$def(self,"$==",(function(other){return!!$truthy(this["$equal?"](other))||($truthy(other["$instance_of?"](this.$class()))?this.hash["$=="](other.$instance_variable_get("@hash")):!(!$truthy(other["$is_a?"]($$$("Set")))||!$eqeq(this.$size(),other.$size()))&&$send(other,"all?",[],(function $$5(o){var self=null==$$5.$$s?this:$$5.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash["$include?"](o)}),{$$arity:1,$$s:this}))}),1),$def(self,"$add",(function(o){var $writer;return $writer=[o,!0],$send(this.hash,"[]=",$to_a($writer)),$rb_minus($writer.length,1),this}),1),$def(self,"$classify",(function $$classify(){var block=$$classify.$$p||nil,result=nil;return delete $$classify.$$p,block===nil?this.$enum_for("classify"):(result=$send($$$("Hash"),"new",[],(function $$6(h,k){var $writer;return null==h&&(h=nil),null==k&&(k=nil),$writer=[k,(null==$$6.$$s?this:$$6.$$s).$class().$new()],$send(h,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:2,$$s:this}),$send(this,"each",[],(function(item){return null==item&&(item=nil),result["$[]"](Opal.yield1(block,item)).$add(item)}),1),result)}),0),$def(self,"$collect!",(function $Set_collect$excl$8(){var block=$Set_collect$excl$8.$$p||nil,result=nil;return delete $Set_collect$excl$8.$$p,block===nil?this.$enum_for("collect!"):(result=this.$class().$new(),$send(this,"each",[],(function(item){return null==item&&(item=nil),result["$<<"](Opal.yield1(block,item))}),1),this.$replace(result))}),0),$def(self,"$delete",(function(o){return this.hash.$delete(o),this}),1),$def(self,"$delete?",(function(o){return $truthy(this["$include?"](o))?(this.$delete(o),this):nil}),1),$def(self,"$delete_if",(function $$delete_if(){var $yield=$$delete_if.$$p||nil;return delete $$delete_if.$$p,$yield===nil?this.$enum_for("delete_if"):($send($send(this,"select",[],(function(o){return null==o&&(o=nil),Opal.yield1($yield,o)}),1),"each",[],(function $$13(o){var self=null==$$13.$$s?this:$$13.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}),{$$arity:1,$$s:this}),this)}),0),$def(self,"$keep_if",(function $$keep_if(){var $yield=$$keep_if.$$p||nil;return delete $$keep_if.$$p,$yield===nil?this.$enum_for("keep_if"):($send($send(this,"reject",[],(function(o){return null==o&&(o=nil),Opal.yield1($yield,o)}),1),"each",[],(function $$15(o){var self=null==$$15.$$s?this:$$15.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}),{$$arity:1,$$s:this}),this)}),0),$def(self,"$reject!",(function $Set_reject$excl$16(){var before,block=$Set_reject$excl$16.$$p||nil;return delete $Set_reject$excl$16.$$p,block===nil?this.$enum_for("reject!"):(before=this.$size(),$send(this,"delete_if",[],block.$to_proc()),$eqeq(this.$size(),before)?nil:this)}),0),$def(self,"$select!",(function $Set_select$excl$17(){var before,block=$Set_select$excl$17.$$p||nil;return delete $Set_select$excl$17.$$p,block===nil?this.$enum_for("select!"):(before=this.$size(),$send(this,"keep_if",[],block.$to_proc()),$eqeq(this.$size(),before)?nil:this)}),0),$def(self,"$add?",(function(o){return $truthy(this["$include?"](o))?nil:this.$add(o)}),1),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;return delete $$each.$$p,block===nil?this.$enum_for("each"):($send(this.hash,"each_key",[],block.$to_proc()),this)}),0),$def(self,"$empty?",(function(){return this.hash["$empty?"]()}),0),$def(self,"$eql?",(function(other){return this.hash["$eql?"]($send(other,"instance_eval",[],(function $$21(){var self=null==$$21.$$s?this:$$21.$$s;return null==self.hash&&(self.hash=nil),self.hash}),{$$arity:0,$$s:this}))}),1),$def(self,"$clear",(function(){return this.hash.$clear(),this}),0),$def(self,"$include?",(function(o){return this.hash["$include?"](o)}),1),$def(self,"$merge",(function(enum$){return $send(enum$,"each",[],(function $$23(item){return null==item&&(item=nil),(null==$$23.$$s?this:$$23.$$s).$add(item)}),{$$arity:1,$$s:this}),this}),1),$def(self,"$replace",(function(enum$){return this.$clear(),this.$merge(enum$),this}),1),$def(self,"$size",(function(){return this.hash.$size()}),0),$def(self,"$subtract",(function(enum$){return $send(enum$,"each",[],(function $$24(item){return null==item&&(item=nil),(null==$$24.$$s?this:$$24.$$s).$delete(item)}),{$$arity:1,$$s:this}),this}),1),$def(self,"$|",(function(enum$){return $truthy(enum$["$respond_to?"]("each"))||$Kernel.$raise($$$("ArgumentError"),"value must be enumerable"),this.$dup().$merge(enum$)}),1),$def(self,"$superset?",(function(set){return is_set(set),!$truthy($rb_lt(this.$size(),set.$size()))&&$send(set,"all?",[],(function $$27(o){return null==o&&(o=nil),(null==$$27.$$s?this:$$27.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$proper_superset?",(function(set){return is_set(set),!$truthy($rb_le(this.$size(),set.$size()))&&$send(set,"all?",[],(function $$29(o){return null==o&&(o=nil),(null==$$29.$$s?this:$$29.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$subset?",(function(set){return is_set(set),!$truthy($rb_lt(set.$size(),this.$size()))&&$send(this,"all?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1)}),1),$def(self,"$proper_subset?",(function(set){return is_set(set),!$truthy($rb_le(set.$size(),this.$size()))&&$send(this,"all?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1)}),1),$def(self,"$intersect?",(function(set){return is_set(set),$truthy($rb_lt(this.$size(),set.$size()))?$send(this,"any?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1):$send(set,"any?",[],(function $$36(o){return null==o&&(o=nil),(null==$$36.$$s?this:$$36.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$disjoint?",(function(set){return this["$intersect?"](set)["$!"]()}),1),$def(self,"$to_a",(function(){return this.hash.$keys()}),0),$alias(self,"+","|"),$alias(self,"<","proper_subset?"),$alias(self,"<<","add"),$alias(self,"<=","subset?"),$alias(self,">","proper_superset?"),$alias(self,">=","superset?"),$alias(self,"difference","-"),$alias(self,"filter!","select!"),$alias(self,"length","size"),$alias(self,"map!","collect!"),$alias(self,"member?","include?"),$alias(self,"union","|")}(),function($base,$parent_nesting){var self=$module("::","Enumerable"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$to_set",(function $$to_set($a,$b){var $post_args,klass,block=$$to_set.$$p||nil,self=this;return delete $$to_set.$$p,($post_args=Opal.slice.call(arguments)).length>0&&(klass=$post_args.shift()),null==klass&&(klass=$$("Set")),$send(klass,"new",[self].concat($to_a($post_args)),block.$to_proc())}),-1)}(0,[])},Opal.modules["ast/node"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias,$hash2=Opal.hash2,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$eqeq=Opal.eqeq,$rb_plus=Opal.rb_plus,$rb_times=Opal.rb_times,$to_a=Opal.to_a;return Opal.add_stubs("attr_reader,to_sym,freeze,to_a,assign_properties,hash,class,eql?,type,children,each,instance_variable_set,protected,private,nil?,==,original_dup,send,equal?,respond_to?,to_ast,updated,+,*,fancy_type,is_a?,to_sexp,inspect,map,to_sexp_array,gsub,to_s"),function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Node"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.type=$proto.children=nil,self.$attr_reader("type"),self.$attr_reader("children"),$alias(self,"to_a","children"),self.$attr_reader("hash"),$def(self,"$initialize",(function(type,children,properties){var $a;return null==children&&(children=[]),null==properties&&(properties=$hash2([],{})),$a=[type.$to_sym(),children.$to_a().$freeze()],this.type=$a[0],this.children=$a[1],this.$assign_properties(properties),this.hash=[this.type,this.children,this.$class()].$hash(),this.$freeze()}),-2),$def(self,"$eql?",(function(other){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.$class()["$eql?"](other.$class()))?this.type["$eql?"](other.$type()):$ret_or_2)?this.children["$eql?"](other.$children()):$ret_or_1}),1),$def(self,"$assign_properties",(function(properties){return $send(properties,"each",[],(function $$2(name,value){return null==name&&(name=nil),null==value&&(value=nil),(null==$$2.$$s?this:$$2.$$s).$instance_variable_set("@"+name,value)}),{$$arity:2,$$s:this}),nil}),1),self.$protected("assign_properties"),$alias(self,"original_dup","dup"),self.$private("original_dup"),$def(self,"$dup",(function(){return this}),0),$alias(self,"clone","dup"),$def(self,"$updated",(function(type,children,properties){var new_type,new_children,new_properties,$ret_or_1=nil,copy=nil;return null==type&&(type=nil),null==children&&(children=nil),null==properties&&(properties=nil),new_type=$truthy($ret_or_1=type)?$ret_or_1:this.type,new_children=$truthy($ret_or_1=children)?$ret_or_1:this.children,new_properties=$truthy($ret_or_1=properties)?$ret_or_1:$hash2([],{}),$eqeq(this.type,new_type)&&$eqeq(this.children,new_children)&&$truthy(properties["$nil?"]())?this:((copy=this.$original_dup()).$send("initialize",new_type,new_children,new_properties),copy)}),-1),$def(self,"$==",(function(other){var $ret_or_1=nil;return!!$truthy(this["$equal?"](other))||!!$truthy(other["$respond_to?"]("to_ast"))&&(other=other.$to_ast(),$truthy($ret_or_1=other.$type()["$=="](this.$type()))?other.$children()["$=="](this.$children()):$ret_or_1)}),1),$def(self,"$concat",(function(array){return this.$updated(nil,$rb_plus(this.children,array.$to_a()))}),1),$alias(self,"+","concat"),$def(self,"$append",(function(element){return this.$updated(nil,$rb_plus(this.children,[element]))}),1),$alias(self,"<<","append"),$def(self,"$to_sexp",(function(indent){var indented,sexp=nil;return null==indent&&(indent=0),indented=$rb_times(" ",indent),sexp=indented+"("+this.$fancy_type(),$send(this.$children(),"each",[],(function(child){return null==child&&(child=nil),sexp=$truthy(child["$is_a?"]($$("Node")))?$rb_plus(sexp,"\n"+child.$to_sexp($rb_plus(indent,1))):$rb_plus(sexp," "+child.$inspect())}),1),sexp=$rb_plus(sexp,")")}),-1),$alias(self,"to_s","to_sexp"),$def(self,"$inspect",(function(indent){var indented,sexp=nil;return null==indent&&(indent=0),indented=$rb_times(" ",indent),sexp=indented+"s(:"+this.type,$send(this.$children(),"each",[],(function(child){return null==child&&(child=nil),sexp=$truthy(child["$is_a?"]($$("Node")))?$rb_plus(sexp,",\n"+child.$inspect($rb_plus(indent,1))):$rb_plus(sexp,", "+child.$inspect())}),1),sexp=$rb_plus(sexp,")")}),-1),$def(self,"$to_ast",(function(){return this}),0),$def(self,"$to_sexp_array",(function(){var children_sexp_arrs;return children_sexp_arrs=$send(this.$children(),"map",[],(function(child){return null==child&&(child=nil),$truthy(child["$is_a?"]($$("Node")))?child.$to_sexp_array():child}),1),[this.$type()].concat($to_a(children_sexp_arrs))}),0),$def(self,"$deconstruct",(function(){return[this.$type()].concat($to_a(this.$children()))}),0),self.$protected(),$def(self,"$fancy_type",(function(){return this.type.$to_s().$gsub("_","-")}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["ast/processor/mixin"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("nil?,to_ast,type,respond_to?,send,handler_missing,map,to_a,process"),function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$super,$parent_nesting){return function($base){var self=$module($base,"Mixin");return $def(self,"$process",(function(node){var on_handler,new_node=nil;return $truthy(node["$nil?"]())?nil:(on_handler="on_"+(node=node.$to_ast()).$type(),new_node=$truthy(this["$respond_to?"](on_handler))?this.$send(on_handler,node):this.$handler_missing(node),$truthy(new_node)&&(node=new_node),node)}),1),$def(self,"$process_all",(function(nodes){return $send(nodes.$to_a(),"map",[],(function $$1(node){return null==node&&(node=nil),(null==$$1.$$s?this:$$1.$$s).$process(node)}),{$$arity:1,$$s:this})}),1),$def(self,"$handler_missing",(function(node){return nil}),1)}([$klass($base,null,"Processor")].concat($parent_nesting)[0])}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["ast/processor"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass;return Opal.add_stubs("require,include"),function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Processor"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$require("ast/processor/mixin"),self.$include($$("Mixin"))}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["ast/sexp"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$def=Opal.def;return Opal.add_stubs("new"),function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Sexp"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$s",(function(type,$a){var children;return children=Opal.slice.call(arguments,1),$$("Node").$new(type,children)}),-2)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules.ast=function(Opal){Opal.nil;var self,$module=Opal.module;return Opal.add_stubs("require"),(self=$module([][0],"AST")).$require("ast/node"),self.$require("ast/processor"),self.$require("ast/sexp")},Opal.modules["parser/ast/node"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def;return Opal.add_stubs("attr_reader,[],frozen?,dup,node=,-"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,$super,"Node");return self.$attr_reader("location"),$alias(self,"loc","location"),$def(self,"$assign_properties",(function(properties){var location=nil,$writer=nil;return $truthy(location=properties["$[]"]("location"))?($truthy(location["$frozen?"]())&&(location=location.$dup()),$send(location,"node=",$to_a($writer=[this])),$writer[$rb_minus($writer.length,1)],this.location=location):nil}),1)}([$module($base,"AST")].concat($parent_nesting)[0],$$$($$$("AST"),"Node"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/ast/node"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("require,attr_reader,[],frozen?,dup,merge!,loc,line,column"),self.$require("ast"),self.$require("parser/ast/node"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,$super,"Node");return self.$$prototype.meta=nil,self.$attr_reader("meta"),$def(self,"$assign_properties",(function $$assign_properties(properties){var $yield=$$assign_properties.$$p||nil,meta=nil,$ret_or_1=nil;return delete $$assign_properties.$$p,$truthy(meta=properties["$[]"]("meta"))?($truthy(meta["$frozen?"]())&&(meta=meta.$dup()),this.meta["$merge!"](meta)):this.meta=$truthy($ret_or_1=this.meta)?$ret_or_1:$hash2([],{}),$send2(this,$find_super(this,"assign_properties",$$assign_properties,!1,!0),"assign_properties",[properties],$yield)}),1),$def(self,"$line",(function(){return $truthy(this.$loc())?this.$loc().$line():nil}),0),$def(self,"$column",(function(){return $truthy(this.$loc())?this.$loc().$column():nil}),0)}([$module($base,"AST")].concat($parent_nesting)[0],$$$($$$($$$("Parser"),"AST"),"Node"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["racc/parser"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$const_set=Opal.const_set,$defs=Opal.defs,$gvars=Opal.gvars,$rb_lt=Opal.rb_lt,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$to_ary=Opal.to_ary,$neqeq=Opal.neqeq,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$rb_ge=Opal.rb_ge,$rb_gt=Opal.rb_gt,$eqeqeq=Opal.eqeqeq,$rb_le=Opal.rb_le,$rb_times=Opal.rb_times;return Opal.add_stubs("[],class,<,size,[]=,-,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,push,racc_shift,-@,_racc_do_reduce,===,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index"),function($base,$parent_nesting){var $nesting=[$module($base,"Racc")].concat($parent_nesting),$$=Opal.$r($nesting);$klass($nesting[0],$$("StandardError"),"ParseError")}($nesting[0],$nesting),$truthy($$$("::","ParseError","skip_raise")?"constant":nil)||$const_set($nesting[0],"ParseError",$$$($$("Racc"),"ParseError")),function($base,$parent_nesting){var $nesting=[$module($base,"Racc")].concat($parent_nesting),$$=Opal.$r($nesting);return $truthy($$("Racc_No_Extensions","skip_raise")?"constant":nil)||$const_set($nesting[0],"Racc_No_Extensions",!1),function($base,$super,$parent_nesting){var self=$klass($base,null,"Parser"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.yydebug=$proto.racc_debug_out=$proto.racc_error_status=$proto.racc_t=$proto.racc_vstack=$proto.racc_val=$proto.racc_state=$proto.racc_tstack=nil,$const_set($nesting[0],"Racc_Runtime_Version","1.4.6"),$const_set($nesting[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),$const_set($nesting[0],"Racc_Runtime_Core_Version_R","1.4.6"),$const_set($nesting[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),$const_set($nesting[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),$const_set($nesting[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),$const_set($nesting[0],"Racc_Runtime_Core_Version",$$("Racc_Runtime_Core_Version_R")),$const_set($nesting[0],"Racc_Runtime_Core_Revision",$$("Racc_Runtime_Core_Revision_R")),$const_set($nesting[0],"Racc_Runtime_Type","ruby"),$defs($$("Parser"),"$racc_runtime_type",(function(){return $$("Racc_Runtime_Type")}),0),$def(self,"$_racc_setup",(function(){var $a,$b,$ret_or_1=nil,arg=nil,$writer=nil;return null==$gvars.stderr&&($gvars.stderr=nil),$truthy($$$(this.$class(),"Racc_debug_parser"))||(this.yydebug=!1),$truthy(null!=($a=this.yydebug)&&$a!==nil?"instance-variable":nil)||(this.yydebug=!1),$truthy(this.yydebug)&&($truthy(null!=($b=this.racc_debug_out)&&$b!==nil?"instance-variable":nil)||(this.racc_debug_out=$gvars.stderr),this.racc_debug_out=$truthy($ret_or_1=this.racc_debug_out)?$ret_or_1:$gvars.stderr),arg=$$$(this.$class(),"Racc_arg"),$truthy($rb_lt(arg.$size(),14))&&($send(arg,"[]=",$to_a($writer=[13,!0])),$writer[$rb_minus($writer.length,1)]),arg}),0),$def(self,"$_racc_init_sysvars",(function(){return this.racc_state=[0],this.racc_tstack=[],this.racc_vstack=[],this.racc_t=nil,this.racc_val=nil,this.racc_read_next=!0,this.racc_user_yyerror=!1,this.racc_error_status=0}),0),$def(self,"$do_parse",(function(){return this.$__send__($$("Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)}),0),$def(self,"$next_token",(function(){return this.$raise($$("NotImplementedError"),this.$class()+"#next_token is not defined")}),0),$def(self,"$_racc_do_parse_rb",(function(arg,in_debug){var $a,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,tok=nil,act=nil,i=nil;return $a=$to_ary(arg),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],this.$_racc_init_sysvars(),tok=act=i=nil,$send(this,"catch",["racc_end_parse"],(function $$1(){var $d,$e,self=null==$$1.$$s?this:$$1.$$s,$ret_or_1=nil;for(null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==self.racc_t&&(self.racc_t=nil),null==self.yydebug&&(self.yydebug=nil),null==self.racc_val&&(self.racc_val=nil);$truthy(!0);)for($truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))?($truthy(self.racc_read_next)&&$neqeq(self.racc_t,0)&&($e=self.$next_token(),$d=$to_ary($e),tok=null==$d[0]?nil:$d[0],self.racc_val=null==$d[1]?nil:$d[1],$truthy(tok)?self.racc_t=$truthy($ret_or_1=token_table["$[]"](tok))?$ret_or_1:1:self.racc_t=0,$truthy(self.yydebug)&&self.$racc_read_token(self.racc_t,tok,self.racc_val),self.racc_read_next=!1),i=$rb_plus(i,self.racc_t),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)))):act=action_default["$[]"](self.racc_state["$[]"](-1));$truthy(act=self.$_racc_evalact(act,arg)););}),{$$arity:0,$$s:this})}),2),$def(self,"$yyparse",(function(recv,mid){return this.$__send__($$("Racc_YY_Parse_Method"),recv,mid,this.$_racc_setup(),!0)}),2),$def(self,"$_racc_yyparse_rb",(function(recv,mid,arg,c_debug){var $a,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil;return $a=$to_ary(arg),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],this.$_racc_init_sysvars(),act=nil,i=nil,$send(this,"catch",["racc_end_parse"],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;for(null==self.racc_state&&(self.racc_state=nil);!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)));)for(;$truthy(act=self.$_racc_evalact(action_default["$[]"](self.racc_state["$[]"](-1)),arg)););return $send(recv,"__send__",[mid],(function $$3(tok,val){var self=null==$$3.$$s?this:$$3.$$s,$ret_or_1=nil,$ret_or_2=nil;for(null==self.racc_t&&(self.racc_t=nil),null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==tok&&(tok=nil),null==val&&(val=nil),$truthy(tok)?self.racc_t=$truthy($ret_or_1=token_table["$[]"](tok))?$ret_or_1:1:self.racc_t=0,self.racc_val=val,self.racc_read_next=!1,i=$rb_plus(i,self.racc_t),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););for(;$truthy($truthy($ret_or_1=$truthy($ret_or_2=(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))["$!"]())?$ret_or_2:self.racc_read_next["$!"]())?$ret_or_1:self.racc_t["$=="](0));)for($truthy(i)&&$truthy(i=$rb_plus(i,self.racc_t))&&$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););}),{$$arity:2,$$s:self})}),{$$arity:0,$$s:this})}),4),$def(self,"$_racc_evalact",(function(act,arg){var $a,shift_n,action_table=nil,action_check=nil,action_pointer=nil,reduce_n=nil,code=nil,$ret_or_1=nil,i=nil;if(action_table=null==($a=$to_ary(arg))[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],null==$a[10]?nil:$a[10],shift_n=null==$a[11]?nil:$a[11],reduce_n=null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],null==$a[14]?nil:$a[14],$truthy($rb_gt(act,0))&&$truthy($rb_lt(act,shift_n)))$truthy($rb_gt(this.racc_error_status,0))&&($eqeq(this.racc_t,1)||(this.racc_error_status=$rb_minus(this.racc_error_status,1))),this.racc_vstack.$push(this.racc_val),this.racc_state.$push(act),this.racc_read_next=!0,$truthy(this.yydebug)&&(this.racc_tstack.$push(this.racc_t),this.$racc_shift(this.racc_t,this.racc_tstack,this.racc_vstack));else if($truthy($rb_lt(act,0))&&$truthy($rb_gt(act,reduce_n["$-@"]()))){if(code=$send(this,"catch",["racc_jump"],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s;return null==self.racc_state&&(self.racc_state=nil),self.racc_state.$push(self.$_racc_do_reduce(arg,act)),!1}),{$$arity:0,$$s:this}),$truthy(code)){if($eqeqeq(1,$ret_or_1=code))return this.racc_user_yyerror=!0,reduce_n["$-@"]();if($eqeqeq(2,$ret_or_1))return shift_n;this.$raise("[Racc Bug] unknown jump code")}}else if($eqeq(act,shift_n))$truthy(this.yydebug)&&this.$racc_accept(),this.$throw("racc_end_parse",this.racc_vstack["$[]"](0));else{if($eqeq(act,reduce_n["$-@"]())){for($eqeqeq(0,$ret_or_1=this.racc_error_status)?$truthy(arg["$[]"](21))||this.$on_error(this.racc_t,this.racc_val,this.racc_vstack):$eqeqeq(3,$ret_or_1)&&($eqeq(this.racc_t,0)&&this.$throw("racc_end_parse",nil),this.racc_read_next=!0),this.racc_user_yyerror=!1,this.racc_error_status=3;$truthy(!0)&&!($truthy(i=action_pointer["$[]"](this.racc_state["$[]"](-1)))&&(i=$rb_plus(i,1),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),this.racc_state["$[]"](-1))));)$truthy($rb_le(this.racc_state.$size(),1))&&this.$throw("racc_end_parse",nil),this.racc_state.$pop(),this.racc_vstack.$pop(),$truthy(this.yydebug)&&(this.racc_tstack.$pop(),this.$racc_e_pop(this.racc_state,this.racc_tstack,this.racc_vstack));return act}this.$raise("[Racc Bug] unknown action "+act.$inspect())}return $truthy(this.yydebug)&&this.$racc_next_state(this.racc_state["$[]"](-1),this.racc_state),nil}),2),$def(self,"$_racc_do_reduce",(function(arg,act){var $a,nt_base,use_result,reduce_to,method_id,void_array,k1,goto_table=nil,goto_check=nil,goto_default=nil,goto_pointer=nil,reduce_table=nil,state=nil,vstack=nil,tstack=nil,i=nil,len=nil,tmp_t=nil,tmp_v=nil,$writer=nil,curstate=nil;return null==($a=$to_ary(arg))[0]?nil:$a[0],null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],null==$a[3]?nil:$a[3],goto_table=null==$a[4]?nil:$a[4],goto_check=null==$a[5]?nil:$a[5],goto_default=null==$a[6]?nil:$a[6],goto_pointer=null==$a[7]?nil:$a[7],nt_base=null==$a[8]?nil:$a[8],reduce_table=null==$a[9]?nil:$a[9],null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],use_result=null==$a[13]?nil:$a[13],state=this.racc_state,vstack=this.racc_vstack,tstack=this.racc_tstack,i=$rb_times(act,-3),len=reduce_table["$[]"](i),reduce_to=reduce_table["$[]"]($rb_plus(i,1)),method_id=reduce_table["$[]"]($rb_plus(i,2)),void_array=[],$truthy(this.yydebug)&&(tmp_t=tstack["$[]"](len["$-@"](),len)),tmp_v=vstack["$[]"](len["$-@"](),len),$truthy(this.yydebug)&&($writer=[len["$-@"](),len,void_array],$send(tstack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[len["$-@"](),len,void_array],$send(vstack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[len["$-@"](),len,void_array],$send(state,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(use_result)?vstack.$push(this.$__send__(method_id,tmp_v,vstack,tmp_v["$[]"](0))):vstack.$push(this.$__send__(method_id,tmp_v,vstack)),tstack.$push(reduce_to),$truthy(this.yydebug)&&this.$racc_reduce(tmp_t,reduce_to,tstack,vstack),k1=$rb_minus(reduce_to,nt_base),$truthy(i=goto_pointer["$[]"](k1))&&(i=$rb_plus(i,state["$[]"](-1)),$truthy($rb_ge(i,0))&&$truthy(curstate=goto_table["$[]"](i))&&$eqeq(goto_check["$[]"](i),k1))?curstate:goto_default["$[]"](k1)}),2),$def(self,"$on_error",(function(t,val,vstack){var $ret_or_1;return this.$raise($$("ParseError"),this.$sprintf("\nparse error on value %s (%s)",val.$inspect(),$truthy($ret_or_1=this.$token_to_str(t))?$ret_or_1:"?"))}),3),$def(self,"$yyerror",(function(){return this.$throw("racc_jump",1)}),0),$def(self,"$yyaccept",(function(){return this.$throw("racc_jump",2)}),0),$def(self,"$yyerrok",(function(){return this.racc_error_status=0}),0),$def(self,"$racc_read_token",(function(t,tok,val){return this.racc_debug_out.$print("read "),this.racc_debug_out.$print(tok.$inspect(),"(",this.$racc_token2str(t),") "),this.racc_debug_out.$puts(val.$inspect()),this.racc_debug_out.$puts()}),3),$def(self,"$racc_shift",(function(tok,tstack,vstack){return this.racc_debug_out.$puts("shift "+this.$racc_token2str(tok)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),3),$def(self,"$racc_reduce",(function(toks,sim,tstack,vstack){var out=nil;return(out=this.racc_debug_out).$print("reduce "),$truthy(toks["$empty?"]())?out.$print(" "):$send(toks,"each",[],(function $$5(t){var self=null==$$5.$$s?this:$$5.$$s;return null==t&&(t=nil),out.$print(" ",self.$racc_token2str(t))}),{$$arity:1,$$s:this}),out.$puts(" --\x3e "+this.$racc_token2str(sim)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),4),$def(self,"$racc_accept",(function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()}),0),$def(self,"$racc_e_pop",(function(state,tstack,vstack){return this.racc_debug_out.$puts("error recovering mode: pop token"),this.$racc_print_states(state),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),3),$def(self,"$racc_next_state",(function(curstate,state){return this.racc_debug_out.$puts("goto "+curstate),this.$racc_print_states(state),this.racc_debug_out.$puts()}),2),$def(self,"$racc_print_stacks",(function(t,v){var out=nil;return(out=this.racc_debug_out).$print(" ["),$send(t,"each_index",[],(function $$6(i){var self=null==$$6.$$s?this:$$6.$$s;return null==i&&(i=nil),out.$print(" (",self.$racc_token2str(t["$[]"](i))," ",v["$[]"](i).$inspect(),")")}),{$$arity:1,$$s:this}),out.$puts(" ]")}),2),$def(self,"$racc_print_states",(function(s){var out=nil;return(out=this.racc_debug_out).$print(" ["),$send(s,"each",[],(function(st){return null==st&&(st=nil),out.$print(" ",st)}),1),out.$puts(" ]")}),1),$def(self,"$racc_token2str",(function(tok){var $ret_or_1;return $truthy($ret_or_1=$$$(this.$class(),"Racc_token_to_s_table")["$[]"](tok))?$ret_or_1:this.$raise("[Racc Bug] can't convert token "+tok+" to string")}),1),$def(self,"$token_to_str",(function(t){return $$$(this.$class(),"Racc_token_to_s_table")["$[]"](t)}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/version"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$const_set=Opal.const_set;return function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return $const_set($nesting[0],"VERSION","3.1.1.0")}($nesting[0],$nesting)},Opal.modules["racc/parser"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$const_set=Opal.const_set,$defs=Opal.defs,$gvars=Opal.gvars,$rb_lt=Opal.rb_lt,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$to_ary=Opal.to_ary,$neqeq=Opal.neqeq,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$rb_ge=Opal.rb_ge,$rb_gt=Opal.rb_gt,$eqeqeq=Opal.eqeqeq,$rb_le=Opal.rb_le,$rb_times=Opal.rb_times;return Opal.add_stubs("[],class,<,size,[]=,-,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,push,racc_shift,-@,_racc_do_reduce,===,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index"),function($base,$parent_nesting){var $nesting=[$module($base,"Racc")].concat($parent_nesting),$$=Opal.$r($nesting);$klass($nesting[0],$$("StandardError"),"ParseError")}($nesting[0],$nesting),$truthy($$$("::","ParseError","skip_raise")?"constant":nil)||$const_set($nesting[0],"ParseError",$$$($$("Racc"),"ParseError")),function($base,$parent_nesting){var $nesting=[$module($base,"Racc")].concat($parent_nesting),$$=Opal.$r($nesting);return $truthy($$("Racc_No_Extensions","skip_raise")?"constant":nil)||$const_set($nesting[0],"Racc_No_Extensions",!1),function($base,$super,$parent_nesting){var self=$klass($base,null,"Parser"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.yydebug=$proto.racc_debug_out=$proto.racc_error_status=$proto.racc_t=$proto.racc_vstack=$proto.racc_val=$proto.racc_state=$proto.racc_tstack=nil,$const_set($nesting[0],"Racc_Runtime_Version","1.4.6"),$const_set($nesting[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),$const_set($nesting[0],"Racc_Runtime_Core_Version_R","1.4.6"),$const_set($nesting[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),$const_set($nesting[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),$const_set($nesting[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),$const_set($nesting[0],"Racc_Runtime_Core_Version",$$("Racc_Runtime_Core_Version_R")),$const_set($nesting[0],"Racc_Runtime_Core_Revision",$$("Racc_Runtime_Core_Revision_R")),$const_set($nesting[0],"Racc_Runtime_Type","ruby"),$defs($$("Parser"),"$racc_runtime_type",(function(){return $$("Racc_Runtime_Type")}),0),$def(self,"$_racc_setup",(function(){var $a,$b,$ret_or_1=nil,arg=nil,$writer=nil;return null==$gvars.stderr&&($gvars.stderr=nil),$truthy($$$(this.$class(),"Racc_debug_parser"))||(this.yydebug=!1),$truthy(null!=($a=this.yydebug)&&$a!==nil?"instance-variable":nil)||(this.yydebug=!1),$truthy(this.yydebug)&&($truthy(null!=($b=this.racc_debug_out)&&$b!==nil?"instance-variable":nil)||(this.racc_debug_out=$gvars.stderr),this.racc_debug_out=$truthy($ret_or_1=this.racc_debug_out)?$ret_or_1:$gvars.stderr),arg=$$$(this.$class(),"Racc_arg"),$truthy($rb_lt(arg.$size(),14))&&($send(arg,"[]=",$to_a($writer=[13,!0])),$writer[$rb_minus($writer.length,1)]),arg}),0),$def(self,"$_racc_init_sysvars",(function(){return this.racc_state=[0],this.racc_tstack=[],this.racc_vstack=[],this.racc_t=nil,this.racc_val=nil,this.racc_read_next=!0,this.racc_user_yyerror=!1,this.racc_error_status=0}),0),$def(self,"$do_parse",(function(){return this.$__send__($$("Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)}),0),$def(self,"$next_token",(function(){return this.$raise($$("NotImplementedError"),this.$class()+"#next_token is not defined")}),0),$def(self,"$_racc_do_parse_rb",(function(arg,in_debug){var $a,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,tok=nil,act=nil,i=nil;return $a=$to_ary(arg),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],this.$_racc_init_sysvars(),tok=act=i=nil,$send(this,"catch",["racc_end_parse"],(function $$1(){var $d,$e,self=null==$$1.$$s?this:$$1.$$s,$ret_or_1=nil;for(null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==self.racc_t&&(self.racc_t=nil),null==self.yydebug&&(self.yydebug=nil),null==self.racc_val&&(self.racc_val=nil);$truthy(!0);)for($truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))?($truthy(self.racc_read_next)&&$neqeq(self.racc_t,0)&&($e=self.$next_token(),$d=$to_ary($e),tok=null==$d[0]?nil:$d[0],self.racc_val=null==$d[1]?nil:$d[1],$truthy(tok)?self.racc_t=$truthy($ret_or_1=token_table["$[]"](tok))?$ret_or_1:1:self.racc_t=0,$truthy(self.yydebug)&&self.$racc_read_token(self.racc_t,tok,self.racc_val),self.racc_read_next=!1),i=$rb_plus(i,self.racc_t),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)))):act=action_default["$[]"](self.racc_state["$[]"](-1));$truthy(act=self.$_racc_evalact(act,arg)););}),{$$arity:0,$$s:this})}),2),$def(self,"$yyparse",(function(recv,mid){return this.$__send__($$("Racc_YY_Parse_Method"),recv,mid,this.$_racc_setup(),!0)}),2),$def(self,"$_racc_yyparse_rb",(function(recv,mid,arg,c_debug){var $a,action_table=nil,action_check=nil,action_default=nil,action_pointer=nil,token_table=nil,act=nil,i=nil;return $a=$to_ary(arg),action_table=null==$a[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],action_default=null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],token_table=null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],this.$_racc_init_sysvars(),act=nil,i=nil,$send(this,"catch",["racc_end_parse"],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;for(null==self.racc_state&&(self.racc_state=nil);!$truthy(i=action_pointer["$[]"](self.racc_state["$[]"](-1)));)for(;$truthy(act=self.$_racc_evalact(action_default["$[]"](self.racc_state["$[]"](-1)),arg)););return $send(recv,"__send__",[mid],(function $$3(tok,val){var self=null==$$3.$$s?this:$$3.$$s,$ret_or_1=nil,$ret_or_2=nil;for(null==self.racc_t&&(self.racc_t=nil),null==self.racc_state&&(self.racc_state=nil),null==self.racc_read_next&&(self.racc_read_next=nil),null==tok&&(tok=nil),null==val&&(val=nil),$truthy(tok)?self.racc_t=$truthy($ret_or_1=token_table["$[]"](tok))?$ret_or_1:1:self.racc_t=0,self.racc_val=val,self.racc_read_next=!1,i=$rb_plus(i,self.racc_t),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););for(;$truthy($truthy($ret_or_1=$truthy($ret_or_2=(i=action_pointer["$[]"](self.racc_state["$[]"](-1)))["$!"]())?$ret_or_2:self.racc_read_next["$!"]())?$ret_or_1:self.racc_t["$=="](0));)for($truthy(i)&&$truthy(i=$rb_plus(i,self.racc_t))&&$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),self.racc_state["$[]"](-1))||(act=action_default["$[]"](self.racc_state["$[]"](-1)));$truthy(act=self.$_racc_evalact(act,arg)););}),{$$arity:2,$$s:self})}),{$$arity:0,$$s:this})}),4),$def(self,"$_racc_evalact",(function(act,arg){var $a,shift_n,action_table=nil,action_check=nil,action_pointer=nil,reduce_n=nil,code=nil,$ret_or_1=nil,i=nil;if(action_table=null==($a=$to_ary(arg))[0]?nil:$a[0],action_check=null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],action_pointer=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],null==$a[6]?nil:$a[6],null==$a[7]?nil:$a[7],null==$a[8]?nil:$a[8],null==$a[9]?nil:$a[9],null==$a[10]?nil:$a[10],shift_n=null==$a[11]?nil:$a[11],reduce_n=null==$a[12]?nil:$a[12],null==$a[13]?nil:$a[13],null==$a[14]?nil:$a[14],$truthy($rb_gt(act,0))&&$truthy($rb_lt(act,shift_n)))$truthy($rb_gt(this.racc_error_status,0))&&($eqeq(this.racc_t,1)||(this.racc_error_status=$rb_minus(this.racc_error_status,1))),this.racc_vstack.$push(this.racc_val),this.racc_state.$push(act),this.racc_read_next=!0,$truthy(this.yydebug)&&(this.racc_tstack.$push(this.racc_t),this.$racc_shift(this.racc_t,this.racc_tstack,this.racc_vstack));else if($truthy($rb_lt(act,0))&&$truthy($rb_gt(act,reduce_n["$-@"]()))){if(code=$send(this,"catch",["racc_jump"],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s;return null==self.racc_state&&(self.racc_state=nil),self.racc_state.$push(self.$_racc_do_reduce(arg,act)),!1}),{$$arity:0,$$s:this}),$truthy(code)){if($eqeqeq(1,$ret_or_1=code))return this.racc_user_yyerror=!0,reduce_n["$-@"]();if($eqeqeq(2,$ret_or_1))return shift_n;this.$raise("[Racc Bug] unknown jump code")}}else if($eqeq(act,shift_n))$truthy(this.yydebug)&&this.$racc_accept(),this.$throw("racc_end_parse",this.racc_vstack["$[]"](0));else{if($eqeq(act,reduce_n["$-@"]())){for($eqeqeq(0,$ret_or_1=this.racc_error_status)?$truthy(arg["$[]"](21))||this.$on_error(this.racc_t,this.racc_val,this.racc_vstack):$eqeqeq(3,$ret_or_1)&&($eqeq(this.racc_t,0)&&this.$throw("racc_end_parse",nil),this.racc_read_next=!0),this.racc_user_yyerror=!1,this.racc_error_status=3;$truthy(!0)&&!($truthy(i=action_pointer["$[]"](this.racc_state["$[]"](-1)))&&(i=$rb_plus(i,1),$truthy($rb_ge(i,0))&&$truthy(act=action_table["$[]"](i))&&$eqeq(action_check["$[]"](i),this.racc_state["$[]"](-1))));)$truthy($rb_le(this.racc_state.$size(),1))&&this.$throw("racc_end_parse",nil),this.racc_state.$pop(),this.racc_vstack.$pop(),$truthy(this.yydebug)&&(this.racc_tstack.$pop(),this.$racc_e_pop(this.racc_state,this.racc_tstack,this.racc_vstack));return act}this.$raise("[Racc Bug] unknown action "+act.$inspect())}return $truthy(this.yydebug)&&this.$racc_next_state(this.racc_state["$[]"](-1),this.racc_state),nil}),2),$def(self,"$_racc_do_reduce",(function(arg,act){var $a,nt_base,use_result,reduce_to,method_id,void_array,k1,goto_table=nil,goto_check=nil,goto_default=nil,goto_pointer=nil,reduce_table=nil,state=nil,vstack=nil,tstack=nil,i=nil,len=nil,tmp_t=nil,tmp_v=nil,$writer=nil,curstate=nil;return null==($a=$to_ary(arg))[0]?nil:$a[0],null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],null==$a[3]?nil:$a[3],goto_table=null==$a[4]?nil:$a[4],goto_check=null==$a[5]?nil:$a[5],goto_default=null==$a[6]?nil:$a[6],goto_pointer=null==$a[7]?nil:$a[7],nt_base=null==$a[8]?nil:$a[8],reduce_table=null==$a[9]?nil:$a[9],null==$a[10]?nil:$a[10],null==$a[11]?nil:$a[11],null==$a[12]?nil:$a[12],use_result=null==$a[13]?nil:$a[13],state=this.racc_state,vstack=this.racc_vstack,tstack=this.racc_tstack,i=$rb_times(act,-3),len=reduce_table["$[]"](i),reduce_to=reduce_table["$[]"]($rb_plus(i,1)),method_id=reduce_table["$[]"]($rb_plus(i,2)),void_array=[],$truthy(this.yydebug)&&(tmp_t=tstack["$[]"](len["$-@"](),len)),tmp_v=vstack["$[]"](len["$-@"](),len),$truthy(this.yydebug)&&($writer=[len["$-@"](),len,void_array],$send(tstack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=[len["$-@"](),len,void_array],$send(vstack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[len["$-@"](),len,void_array],$send(state,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(use_result)?vstack.$push(this.$__send__(method_id,tmp_v,vstack,tmp_v["$[]"](0))):vstack.$push(this.$__send__(method_id,tmp_v,vstack)),tstack.$push(reduce_to),$truthy(this.yydebug)&&this.$racc_reduce(tmp_t,reduce_to,tstack,vstack),k1=$rb_minus(reduce_to,nt_base),$truthy(i=goto_pointer["$[]"](k1))&&(i=$rb_plus(i,state["$[]"](-1)),$truthy($rb_ge(i,0))&&$truthy(curstate=goto_table["$[]"](i))&&$eqeq(goto_check["$[]"](i),k1))?curstate:goto_default["$[]"](k1)}),2),$def(self,"$on_error",(function(t,val,vstack){var $ret_or_1;return this.$raise($$("ParseError"),this.$sprintf("\nparse error on value %s (%s)",val.$inspect(),$truthy($ret_or_1=this.$token_to_str(t))?$ret_or_1:"?"))}),3),$def(self,"$yyerror",(function(){return this.$throw("racc_jump",1)}),0),$def(self,"$yyaccept",(function(){return this.$throw("racc_jump",2)}),0),$def(self,"$yyerrok",(function(){return this.racc_error_status=0}),0),$def(self,"$racc_read_token",(function(t,tok,val){return this.racc_debug_out.$print("read "),this.racc_debug_out.$print(tok.$inspect(),"(",this.$racc_token2str(t),") "),this.racc_debug_out.$puts(val.$inspect()),this.racc_debug_out.$puts()}),3),$def(self,"$racc_shift",(function(tok,tstack,vstack){return this.racc_debug_out.$puts("shift "+this.$racc_token2str(tok)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),3),$def(self,"$racc_reduce",(function(toks,sim,tstack,vstack){var out=nil;return(out=this.racc_debug_out).$print("reduce "),$truthy(toks["$empty?"]())?out.$print(" "):$send(toks,"each",[],(function $$5(t){var self=null==$$5.$$s?this:$$5.$$s;return null==t&&(t=nil),out.$print(" ",self.$racc_token2str(t))}),{$$arity:1,$$s:this}),out.$puts(" --\x3e "+this.$racc_token2str(sim)),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),4),$def(self,"$racc_accept",(function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()}),0),$def(self,"$racc_e_pop",(function(state,tstack,vstack){return this.racc_debug_out.$puts("error recovering mode: pop token"),this.$racc_print_states(state),this.$racc_print_stacks(tstack,vstack),this.racc_debug_out.$puts()}),3),$def(self,"$racc_next_state",(function(curstate,state){return this.racc_debug_out.$puts("goto "+curstate),this.$racc_print_states(state),this.racc_debug_out.$puts()}),2),$def(self,"$racc_print_stacks",(function(t,v){var out=nil;return(out=this.racc_debug_out).$print(" ["),$send(t,"each_index",[],(function $$6(i){var self=null==$$6.$$s?this:$$6.$$s;return null==i&&(i=nil),out.$print(" (",self.$racc_token2str(t["$[]"](i))," ",v["$[]"](i).$inspect(),")")}),{$$arity:1,$$s:this}),out.$puts(" ]")}),2),$def(self,"$racc_print_states",(function(s){var out=nil;return(out=this.racc_debug_out).$print(" ["),$send(s,"each",[],(function(st){return null==st&&(st=nil),out.$print(" ",st)}),1),out.$puts(" ]")}),1),$def(self,"$racc_token2str",(function(tok){var $ret_or_1;return $truthy($ret_or_1=$$$(this.$class(),"Racc_token_to_s_table")["$[]"](tok))?$ret_or_1:this.$raise("[Racc Bug] can't convert token "+tok+" to string")}),1),$def(self,"$token_to_str",(function(t){return $$$(this.$class(),"Racc_token_to_s_table")["$[]"](t)}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/messages"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$const_set=Opal.const_set,$hash2=Opal.hash2,$truthy=Opal.truthy,$eqeqeq=Opal.eqeqeq,$defs=Opal.defs;return Opal.add_stubs("freeze,[],empty?,===,format"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return $const_set($nesting[0],"MESSAGES",$hash2(["unicode_point_too_large","invalid_escape","incomplete_escape","invalid_hex_escape","invalid_unicode_escape","unterminated_unicode","escape_eof","string_eof","regexp_options","cvar_name","ivar_name","trailing_in_number","empty_numeric","invalid_octal","no_dot_digit_literal","bare_backslash","unexpected","embedded_document","heredoc_id_has_newline","heredoc_id_ends_with_nl","unterminated_heredoc_id","invalid_escape_use","ambiguous_literal","ambiguous_regexp","ambiguous_prefix","triple_dot_at_eol","nth_ref_alias","begin_in_method","backref_assignment","invalid_assignment","module_name_const","unexpected_token","argument_const","argument_ivar","argument_gvar","argument_cvar","duplicate_argument","empty_symbol","odd_hash","singleton_literal","dynamic_const","const_reassignment","module_in_def","class_in_def","unexpected_percent_str","block_and_blockarg","masgn_as_condition","block_given_to_yield","invalid_regexp","invalid_return","csend_in_lhs_of_masgn","cant_assign_to_numparam","reserved_for_numparam","ordinary_param_defined","numparam_used_in_outer_scope","circular_argument_reference","pm_interp_in_var_name","lvar_name","undefined_lvar","duplicate_variable_name","duplicate_pattern_key","endless_setter","invalid_id_to_get","forward_arg_after_restarg","no_anonymous_blockarg","useless_else","duplicate_hash_key","invalid_encoding","invalid_action","clobbered","different_replacements","swallowed_insertions","swallowed_insertions_conflict","crossing_deletions","crossing_deletions_conflict","crossing_insertions","crossing_insertions_conflict"],{unicode_point_too_large:"invalid Unicode codepoint (too large)",invalid_escape:"invalid escape character syntax",incomplete_escape:"incomplete character syntax",invalid_hex_escape:"invalid hex escape",invalid_unicode_escape:"invalid Unicode escape",unterminated_unicode:"unterminated Unicode escape",escape_eof:"escape sequence meets end of file",string_eof:"unterminated string meets end of file",regexp_options:"unknown regexp options: %{options}",cvar_name:"`%{name}' is not allowed as a class variable name",ivar_name:"`%{name}' is not allowed as an instance variable name",trailing_in_number:"trailing `%{character}' in number",empty_numeric:"numeric literal without digits",invalid_octal:"invalid octal digit",no_dot_digit_literal:"no . floating literal anymore; put 0 before dot",bare_backslash:"bare backslash only allowed before newline",unexpected:"unexpected `%{character}'",embedded_document:"embedded document meets end of file (and they embark on a romantic journey)",heredoc_id_has_newline:"here document identifier across newlines, never match",heredoc_id_ends_with_nl:"here document identifier ends with a newline",unterminated_heredoc_id:"unterminated heredoc id",invalid_escape_use:"invalid character syntax; use ?%{escape}",ambiguous_literal:"ambiguous first argument; put parentheses or a space even after the operator",ambiguous_regexp:"ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator",ambiguous_prefix:"`%{prefix}' interpreted as argument prefix",triple_dot_at_eol:"... at EOL, should be parenthesized",nth_ref_alias:"cannot define an alias for a back-reference variable",begin_in_method:"BEGIN in method",backref_assignment:"cannot assign to a back-reference variable",invalid_assignment:"cannot assign to a keyword",module_name_const:"class or module name must be a constant literal",unexpected_token:"unexpected token %{token}",argument_const:"formal argument cannot be a constant",argument_ivar:"formal argument cannot be an instance variable",argument_gvar:"formal argument cannot be a global variable",argument_cvar:"formal argument cannot be a class variable",duplicate_argument:"duplicate argument name",empty_symbol:"empty symbol literal",odd_hash:"odd number of entries for a hash",singleton_literal:"cannot define a singleton method for a literal",dynamic_const:"dynamic constant assignment",const_reassignment:"constant re-assignment",module_in_def:"module definition in method body",class_in_def:"class definition in method body",unexpected_percent_str:"%{type}: unknown type of percent-literal",block_and_blockarg:"both block argument and literal block are passed",masgn_as_condition:"multiple assignment in conditional context",block_given_to_yield:"block given to yield",invalid_regexp:"%{message}",invalid_return:"Invalid return in class/module body",csend_in_lhs_of_masgn:"&. inside multiple assignment destination",cant_assign_to_numparam:"cannot assign to numbered parameter %{name}",reserved_for_numparam:"%{name} is reserved for numbered parameter",ordinary_param_defined:"ordinary parameter is defined",numparam_used_in_outer_scope:"numbered parameter is already used in an outer scope",circular_argument_reference:"circular argument reference %{var_name}",pm_interp_in_var_name:"symbol literal with interpolation is not allowed",lvar_name:"`%{name}' is not allowed as a local variable name",undefined_lvar:"no such local variable: `%{name}'",duplicate_variable_name:"duplicate variable name %{name}",duplicate_pattern_key:"duplicate hash pattern key %{name}",endless_setter:"setter method cannot be defined in an endless method definition",invalid_id_to_get:"identifier %{identifier} is not valid to get",forward_arg_after_restarg:"... after rest argument",no_anonymous_blockarg:"no anonymous block parameter",useless_else:"else without rescue is useless",duplicate_hash_key:"key is duplicated and overwritten",invalid_encoding:"literal contains escape sequences incompatible with UTF-8",invalid_action:"cannot %{action}",clobbered:"clobbered by: %{action}",different_replacements:"different replacements: %{replacement} vs %{other_replacement}",swallowed_insertions:"this replacement:",swallowed_insertions_conflict:"swallows some inner rewriting actions:",crossing_deletions:"the deletion of:",crossing_deletions_conflict:"is crossing:",crossing_insertions:"the rewriting action on:",crossing_insertions_conflict:"is crossing that on:"}).$freeze()),function($base,$parent_nesting){var self=$module($base,"Messages"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$compile",(function(reason,arguments$){var template;return template=$$("MESSAGES")["$[]"](reason),$eqeqeq($$("Hash"),arguments$)&&$truthy(arguments$["$empty?"]())?template:this.$format(template,arguments$)}),2)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/deprecation"]=function(Opal){var $base,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("attr_writer,warn"),$base=$nesting[0],$parent_nesting=$nesting,function($base){var self=$module($base,"Deprecation");return self.$attr_writer("warned_of_deprecation"),$def(self,"$warn_of_deprecation",(function(){var $ret_or_1,$ret_or_2=nil;return null==this.warned_of_deprecation&&(this.warned_of_deprecation=nil),this.warned_of_deprecation=$truthy($ret_or_1=this.warned_of_deprecation)?$ret_or_1:!$truthy($ret_or_2=this.$warn($$$(this,"DEPRECATION_WARNING")))||$ret_or_2}),0)}([$module($base,"Parser")].concat($parent_nesting)[0])},Opal.modules["parser/ast/processor"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$alias=Opal.alias,$to_a=Opal.to_a,$not=Opal.not,$truthy=Opal.truthy,$slice=Opal.slice;return Opal.add_stubs("updated,process_all,on_var,!,nil?,process,on_vasgn,on_argument,is_a?,[],children,process_regular_node,warn"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"AST")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Processor"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$process_regular_node",(function(node){return node.$updated(nil,this.$process_all(node))}),1),$alias(self,"on_dstr","process_regular_node"),$alias(self,"on_dsym","process_regular_node"),$alias(self,"on_regexp","process_regular_node"),$alias(self,"on_xstr","process_regular_node"),$alias(self,"on_splat","process_regular_node"),$alias(self,"on_kwsplat","process_regular_node"),$alias(self,"on_array","process_regular_node"),$alias(self,"on_pair","process_regular_node"),$alias(self,"on_hash","process_regular_node"),$alias(self,"on_kwargs","process_regular_node"),$alias(self,"on_irange","process_regular_node"),$alias(self,"on_erange","process_regular_node"),$def(self,"$on_var",(function(node){return node}),1),$def(self,"$process_variable_node",(function(node){return this.$on_var(node)}),1),$alias(self,"on_lvar","process_variable_node"),$alias(self,"on_ivar","process_variable_node"),$alias(self,"on_gvar","process_variable_node"),$alias(self,"on_cvar","process_variable_node"),$alias(self,"on_back_ref","process_variable_node"),$alias(self,"on_nth_ref","process_variable_node"),$def(self,"$on_vasgn",(function(node){var $a,name,value_node=nil;return name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value_node=null==$a[1]?nil:$a[1],$not(value_node["$nil?"]())?node.$updated(nil,[name,this.$process(value_node)]):node}),1),$def(self,"$process_var_asgn_node",(function(node){return this.$on_vasgn(node)}),1),$alias(self,"on_lvasgn","process_var_asgn_node"),$alias(self,"on_ivasgn","process_var_asgn_node"),$alias(self,"on_gvasgn","process_var_asgn_node"),$alias(self,"on_cvasgn","process_var_asgn_node"),$alias(self,"on_and_asgn","process_regular_node"),$alias(self,"on_or_asgn","process_regular_node"),$def(self,"$on_op_asgn",(function(node){var $a,var_node,method_name,value_node;return var_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],value_node=null==$a[2]?nil:$a[2],node.$updated(nil,[this.$process(var_node),method_name,this.$process(value_node)])}),1),$alias(self,"on_mlhs","process_regular_node"),$alias(self,"on_masgn","process_regular_node"),$def(self,"$on_const",(function(node){var $a,scope_node,name;return scope_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],node.$updated(nil,[this.$process(scope_node),name])}),1),$def(self,"$on_casgn",(function(node){var $a,scope_node,name,value_node=nil;return scope_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],value_node=null==$a[2]?nil:$a[2],$not(value_node["$nil?"]())?node.$updated(nil,[this.$process(scope_node),name,this.$process(value_node)]):node.$updated(nil,[this.$process(scope_node),name])}),1),$alias(self,"on_args","process_regular_node"),$def(self,"$on_argument",(function(node){var $a,arg_name,value_node=nil;return arg_name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value_node=null==$a[1]?nil:$a[1],$not(value_node["$nil?"]())?node.$updated(nil,[arg_name,this.$process(value_node)]):node}),1),$def(self,"$process_argument_node",(function(node){return this.$on_argument(node)}),1),$alias(self,"on_arg","process_argument_node"),$alias(self,"on_optarg","process_argument_node"),$alias(self,"on_restarg","process_argument_node"),$alias(self,"on_blockarg","process_argument_node"),$alias(self,"on_shadowarg","process_argument_node"),$alias(self,"on_kwarg","process_argument_node"),$alias(self,"on_kwoptarg","process_argument_node"),$alias(self,"on_kwrestarg","process_argument_node"),$alias(self,"on_forward_arg","process_argument_node"),$def(self,"$on_procarg0",(function(node){return $truthy(node.$children()["$[]"](0)["$is_a?"]($$("Symbol")))?this.$on_argument(node):this.$process_regular_node(node)}),1),$alias(self,"on_arg_expr","process_regular_node"),$alias(self,"on_restarg_expr","process_regular_node"),$alias(self,"on_blockarg_expr","process_regular_node"),$alias(self,"on_block_pass","process_regular_node"),$alias(self,"on_module","process_regular_node"),$alias(self,"on_class","process_regular_node"),$alias(self,"on_sclass","process_regular_node"),$def(self,"$on_def",(function(node){var $a,name,args_node,body_node;return name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args_node=null==$a[1]?nil:$a[1],body_node=null==$a[2]?nil:$a[2],node.$updated(nil,[name,this.$process(args_node),this.$process(body_node)])}),1),$def(self,"$on_defs",(function(node){var $a,definee_node,name,args_node,body_node;return definee_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],args_node=null==$a[2]?nil:$a[2],body_node=null==$a[3]?nil:$a[3],node.$updated(nil,[this.$process(definee_node),name,this.$process(args_node),this.$process(body_node)])}),1),$alias(self,"on_undef","process_regular_node"),$alias(self,"on_alias","process_regular_node"),$def(self,"$on_send",(function(node){var $a,arg_nodes,receiver_node=nil,method_name=nil;return receiver_node=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],arg_nodes=$slice.call($a,2),$truthy(receiver_node)&&(receiver_node=this.$process(receiver_node)),node.$updated(nil,[receiver_node,method_name].concat($to_a(this.$process_all(arg_nodes))))}),1),$alias(self,"on_csend","on_send"),$alias(self,"on_index","process_regular_node"),$alias(self,"on_indexasgn","process_regular_node"),$alias(self,"on_block","process_regular_node"),$alias(self,"on_lambda","process_regular_node"),$def(self,"$on_numblock",(function(node){var $a,method_call,max_numparam,body;return method_call=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],max_numparam=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],node.$updated(nil,[this.$process(method_call),max_numparam,this.$process(body)])}),1),$alias(self,"on_while","process_regular_node"),$alias(self,"on_while_post","process_regular_node"),$alias(self,"on_until","process_regular_node"),$alias(self,"on_until_post","process_regular_node"),$alias(self,"on_for","process_regular_node"),$alias(self,"on_return","process_regular_node"),$alias(self,"on_break","process_regular_node"),$alias(self,"on_next","process_regular_node"),$alias(self,"on_redo","process_regular_node"),$alias(self,"on_retry","process_regular_node"),$alias(self,"on_super","process_regular_node"),$alias(self,"on_yield","process_regular_node"),$alias(self,"on_defined?","process_regular_node"),$alias(self,"on_not","process_regular_node"),$alias(self,"on_and","process_regular_node"),$alias(self,"on_or","process_regular_node"),$alias(self,"on_if","process_regular_node"),$alias(self,"on_when","process_regular_node"),$alias(self,"on_case","process_regular_node"),$alias(self,"on_iflipflop","process_regular_node"),$alias(self,"on_eflipflop","process_regular_node"),$alias(self,"on_match_current_line","process_regular_node"),$alias(self,"on_match_with_lvasgn","process_regular_node"),$alias(self,"on_resbody","process_regular_node"),$alias(self,"on_rescue","process_regular_node"),$alias(self,"on_ensure","process_regular_node"),$alias(self,"on_begin","process_regular_node"),$alias(self,"on_kwbegin","process_regular_node"),$alias(self,"on_preexe","process_regular_node"),$alias(self,"on_postexe","process_regular_node"),$alias(self,"on_case_match","process_regular_node"),$alias(self,"on_in_match","process_regular_node"),$alias(self,"on_match_pattern","process_regular_node"),$alias(self,"on_match_pattern_p","process_regular_node"),$alias(self,"on_in_pattern","process_regular_node"),$alias(self,"on_if_guard","process_regular_node"),$alias(self,"on_unless_guard","process_regular_node"),$alias(self,"on_match_var","process_variable_node"),$alias(self,"on_match_rest","process_regular_node"),$alias(self,"on_pin","process_regular_node"),$alias(self,"on_match_alt","process_regular_node"),$alias(self,"on_match_as","process_regular_node"),$alias(self,"on_array_pattern","process_regular_node"),$alias(self,"on_array_pattern_with_tail","process_regular_node"),$alias(self,"on_hash_pattern","process_regular_node"),$alias(self,"on_const_pattern","process_regular_node"),$alias(self,"on_find_pattern","process_regular_node"),$def(self,"$process_variable_node",(function(node){return this.$warn("Parser::AST::Processor#process_variable_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_var instead."),this.$on_var(node)}),1),$def(self,"$process_var_asgn_node",(function(node){return this.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_vasgn instead."),this.$on_vasgn(node)}),1),$def(self,"$process_argument_node",(function(node){return this.$warn("Parser::AST::Processor#process_argument_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_argument instead."),this.$on_argument(node)}),1),$def(self,"$on_empty_else",(function(node){return node}),1)}($nesting[0],$$$($$$("AST"),"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/meta"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$const_set=Opal.const_set;return Opal.add_stubs("freeze,to_set"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Meta")].concat($parent_nesting);return $const_set($nesting[0],"NODE_TYPES",["true","false","nil","int","float","str","dstr","sym","dsym","xstr","regopt","regexp","array","splat","pair","kwsplat","hash","irange","erange","self","lvar","ivar","cvar","gvar","const","defined?","lvasgn","ivasgn","cvasgn","gvasgn","casgn","mlhs","masgn","op_asgn","and_asgn","ensure","rescue","arg_expr","or_asgn","back_ref","nth_ref","match_with_lvasgn","match_current_line","module","class","sclass","def","defs","undef","alias","args","cbase","arg","optarg","restarg","blockarg","block_pass","kwarg","kwoptarg","kwrestarg","kwnilarg","send","csend","super","zsuper","yield","block","and","not","or","if","when","case","while","until","while_post","until_post","for","break","next","redo","return","resbody","kwbegin","begin","retry","preexe","postexe","iflipflop","eflipflop","shadowarg","complex","rational","__FILE__","__LINE__","__ENCODING__","ident","lambda","indexasgn","index","procarg0","restarg_expr","blockarg_expr","objc_kwarg","objc_restarg","objc_varargs","numargs","numblock","forward_args","forwarded_args","forward_arg","case_match","in_match","in_pattern","match_var","pin","match_alt","match_as","match_rest","array_pattern","match_with_trailing_comma","array_pattern_with_tail","hash_pattern","const_pattern","if_guard","unless_guard","match_nil_pattern","empty_else","find_pattern","kwargs","match_pattern_p","match_pattern"].$to_set().$freeze())}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/buffer"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$enc=Opal.enc,$truthy=Opal.truthy,$gvars=Opal.gvars,$eqeq=Opal.eqeq,$neqeq=Opal.neqeq,$defs=Opal.defs,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$not=Opal.not,$rb_plus=Opal.rb_plus,$rb_ge=Opal.rb_ge,$rb_lt=Opal.rb_lt,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("attr_reader,empty?,=~,start_with?,freeze,==,[],!=,nil?,match,find,encoding,recognize_encoding,force_encoding,encode,to_s,source=,-,open,read,raise,frozen?,dup,reencode_string,class,valid_encoding?,name,raw_source=,gsub,!,ascii_only?,line_index_for_position,line_begins,+,to_a,lines,end_with?,<<,each,chomp!,fetch,source_lines,>=,size,<,new,source,source_range,private,index,bsearch,[]=,method_defined?,bsearch_index"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Buffer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.name=$proto.source=$proto.slice_source=$proto.first_line=$proto.lines=$proto.source_range=$proto.line_begins=$proto.line_index_for_position=$proto.line_range=nil,self.$attr_reader("name","first_line"),$const_set($nesting[0],"ENCODING_RE",$regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),$enc("(","ASCII-8BIT"),$enc("","ASCII-8BIT"),$enc("(utf8-mac)","ASCII-8BIT"),$enc("|","ASCII-8BIT"),$enc("","ASCII-8BIT"),$enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),$enc("|","ASCII-8BIT"),$enc("([A-Za-z0-9_-]+)","ASCII-8BIT"),$enc(")","ASCII-8BIT"),$enc("","ASCII-8BIT")])),$defs(self,"$recognize_encoding",(function(string){var $a,$b,second_line,first_line=nil,encoding_line=nil,result=nil,$ret_or_1=nil,$ret_or_2=nil;return $truthy(string["$empty?"]())?nil:(string["$=~"](/^(.*)\n?(.*\n)?/),second_line=($a=[($b=$gvars["~"])===nil?nil:$b["$[]"](1),($b=$gvars["~"])===nil?nil:$b["$[]"](2)])[1],$truthy((first_line=$a[0])["$start_with?"]($enc("","ASCII-8BIT").$freeze()))?$$$($$("Encoding"),"UTF_8"):(encoding_line=$eqeq(first_line["$[]"](0,2),$enc("#!","ASCII-8BIT").$freeze())?second_line:first_line,$truthy(encoding_line["$nil?"]())||$neqeq(encoding_line["$[]"](0),$enc("#","ASCII-8BIT"))?nil:$truthy(result=$$("ENCODING_RE").$match(encoding_line))?$$("Encoding").$find($truthy($ret_or_1=$truthy($ret_or_2=result["$[]"](3))?$ret_or_2:result["$[]"](4))?$ret_or_1:result["$[]"](6)):nil))}),1),$defs(self,"$reencode_string",(function(input){var original_encoding,detected_encoding=nil;return original_encoding=input.$encoding(),detected_encoding=this.$recognize_encoding(input.$force_encoding($$$($$("Encoding"),"BINARY"))),$truthy(detected_encoding["$nil?"]())?input.$force_encoding(original_encoding):$eqeq(detected_encoding,$$$($$("Encoding"),"BINARY"))?input:input.$force_encoding(detected_encoding).$encode($$$($$("Encoding"),"UTF_8"))}),1),$def(self,"$initialize",(function(name,$a,$b){var $post_args,$kwargs,first_line,source,self=this,$writer=nil;if($post_args=Opal.slice.call(arguments,1),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $post_args.length>0&&(first_line=$post_args.shift()),null==first_line&&(first_line=1),null==(source=$kwargs.$$smap.source)&&(source=nil),self.name=name.$to_s(),self.source=nil,self.first_line=first_line,self.lines=nil,self.line_begins=nil,self.slice_source=nil,self.line_index_for_position=$hash2([],{}),$truthy(source)?($send(self,"source=",$to_a($writer=[source])),$writer[$rb_minus($writer.length,1)]):nil}),-2),$def(self,"$read",(function(){return $send($$("File"),"open",[this.name,$enc("rb","ASCII-8BIT")],(function $$1(io){var $writer,self=null==$$1.$$s?this:$$1.$$s;return null==io&&(io=nil),$writer=[io.$read()],$send(self,"source=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),this}),0),$def(self,"$source",(function(){return $truthy(this.source["$nil?"]())&&this.$raise($$("RuntimeError"),$enc("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),this.source}),0),$def(self,"$source=",(function(input){var $writer;return $truthy(input["$frozen?"]())&&(input=input.$dup()),input=this.$class().$reencode_string(input),$truthy(input["$valid_encoding?"]())||this.$raise($$("EncodingError"),$enc("invalid byte sequence in ","ASCII-8BIT")+input.$encoding().$name()),$send(this,"raw_source=",$to_a($writer=[input])),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$raw_source=",(function(input){return $truthy(this.source)&&this.$raise($$("ArgumentError"),$enc("Source::Buffer is immutable","ASCII-8BIT")),this.source=input.$gsub($enc("\r\n","ASCII-8BIT").$freeze(),$enc("\n","ASCII-8BIT").$freeze()).$freeze(),$not(this.source["$ascii_only?"]())&&$neqeq(this.source.$encoding(),$$$($$("Encoding"),"UTF_32LE"))&&$neqeq(this.source.$encoding(),$$$($$("Encoding"),"BINARY"))?this.slice_source=this.source.$encode($$$($$("Encoding"),"UTF_32LE")):nil}),1),$def(self,"$slice",(function(range){return $truthy(this.slice_source["$nil?"]())?this.source["$[]"](range):this.slice_source["$[]"](range).$encode(this.source.$encoding())}),1),$def(self,"$decompose_position",(function(position){var line_index,line_begin;return line_index=this.$line_index_for_position(position),line_begin=this.$line_begins()["$[]"](line_index),[$rb_plus(this.first_line,line_index),$rb_minus(position,line_begin)]}),1),$def(self,"$line_for_position",(function(position){return $rb_plus(this.$line_index_for_position(position),this.first_line)}),1),$def(self,"$column_for_position",(function(position){var line_index;return line_index=this.$line_index_for_position(position),$rb_minus(position,this.$line_begins()["$[]"](line_index))}),1),$def(self,"$source_lines",(function(){var $ret_or_1,lines=nil;return this.lines=$truthy($ret_or_1=this.lines)?$ret_or_1:(lines=this.source.$lines().$to_a(),$truthy(this.source["$end_with?"]($enc("\n","ASCII-8BIT").$freeze()))&&lines["$<<"]($enc("","ASCII-8BIT").$dup()),$send(lines,"each",[],(function(line){return null==line&&(line=nil),line["$chomp!"]($enc("\n","ASCII-8BIT").$freeze()),line.$freeze()}),1),lines.$freeze())}),0),$def(self,"$source_line",(function(lineno){return this.$source_lines().$fetch($rb_minus(lineno,this.first_line)).$dup()}),1),$def(self,"$line_range",(function(lineno){var index;return index=$rb_minus(lineno,this.first_line),$truthy($rb_lt(index,0))||$truthy($rb_ge($rb_plus(index,1),this.$line_begins().$size()))?this.$raise($$("IndexError"),$enc("Parser::Source::Buffer: range for line ","ASCII-8BIT")+""+lineno+$enc(" requested, valid line numbers are ","ASCII-8BIT")+this.first_line+$enc("..","ASCII-8BIT")+$rb_minus($rb_plus(this.first_line,this.$line_begins().$size()),2)):$$("Range").$new(this,this.$line_begins()["$[]"](index),$rb_minus(this.$line_begins()["$[]"]($rb_plus(index,1)),1))}),1),$def(self,"$source_range",(function(){var $ret_or_1;return this.source_range=$truthy($ret_or_1=this.source_range)?$ret_or_1:$$("Range").$new(this,0,this.$source().$size())}),0),$def(self,"$last_line",(function(){return $rb_minus($rb_plus(this.$line_begins().$size(),this.first_line),2)}),0),$def(self,"$freeze",(function $$freeze(){var $yield=$$freeze.$$p||nil;return delete $$freeze.$$p,this.$source_lines(),this.$line_begins(),this.$source_range(),$send2(this,$find_super(this,"freeze",$$freeze,!1,!0),"freeze",[],$yield)}),0),$def(self,"$inspect",(function(){return $enc("#<","ASCII-8BIT")+this.$class()+$enc(" ","ASCII-8BIT")+this.$name()+$enc(">","ASCII-8BIT")}),0),self.$private(),$def(self,"$line_begins",(function(){var $ret_or_1,self=this,begins=nil,index=nil;return self.line_begins=$truthy($ret_or_1=self.line_begins)?$ret_or_1:(begins=[0],index=0,function(){for(;$truthy(index=self.source.$index($enc("\n","ASCII-8BIT").$freeze(),index));)index=$rb_plus(index,1),begins["$<<"](index)}(),begins["$<<"]($rb_plus(self.source.$size(),1)),begins)}),0),$def(self,"$line_index_for_position",(function(position){var $ret_or_1,index=nil,$writer=nil;return $truthy($ret_or_1=this.line_index_for_position["$[]"](position))?$ret_or_1:(index=$rb_minus(this.$bsearch(this.$line_begins(),position),1),$truthy(this.line_index_for_position["$frozen?"]())||($writer=[position,index],$send(this.line_index_for_position,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),index)}),1),$truthy($$("Array")["$method_defined?"]("bsearch_index"))?$def(self,"$bsearch",(function(line_begins,position){var $ret_or_1;return $truthy($ret_or_1=$send(line_begins,"bsearch_index",[],(function(line_begin){return null==line_begin&&(line_begin=nil),$rb_lt(position,line_begin)}),1))?$ret_or_1:$rb_minus(line_begins.$size(),1)}),2):$def(self,"$bsearch",(function(line_begins,position){var $ret_or_1=nil;return this.line_range=$truthy($ret_or_1=this.line_range)?$ret_or_1:Opal.Range.$new(0,line_begins.$size(),!0),$truthy($ret_or_1=$send(this.line_range,"bsearch",[],(function(i){return null==i&&(i=nil),$rb_lt(position,line_begins["$[]"](i))}),1))?$ret_or_1:$rb_minus(line_begins.$size(),1)}),2)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/range"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$rb_lt=Opal.rb_lt,$def=Opal.def,$hash2=Opal.hash2,$rb_minus=Opal.rb_minus,$alias=Opal.alias,$neqeq=Opal.neqeq,$to_ary=Opal.to_ary,$rb_plus=Opal.rb_plus,$rb_ge=Opal.rb_ge,$rb_times=Opal.rb_times,$eqeq=Opal.eqeq;return Opal.add_stubs("include,attr_reader,<,raise,nil?,freeze,with,-,line_for_position,alias_method,column_for_position,!=,line,last_line,inspect,column,last_column,source_line,slice,begin_pos,end_pos,include?,source,to_a,decompose_position,join,name,+,new,min,max,disjoint?,empty?,>=,!,<=>,contains?,overlaps?,==,*,source_buffer,is_a?,nonzero?,hash"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Range"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.begin_pos=$proto.end_pos=$proto.source_buffer=nil,self.$include($$("Comparable")),self.$attr_reader("source_buffer"),self.$attr_reader("begin_pos","end_pos"),$def(self,"$initialize",(function(source_buffer,begin_pos,end_pos){var $a;return $truthy($rb_lt(end_pos,begin_pos))&&this.$raise($$("ArgumentError"),"Parser::Source::Range: end_pos must not be less than begin_pos"),$truthy(source_buffer["$nil?"]())&&this.$raise($$("ArgumentError"),"Parser::Source::Range: source_buffer must not be nil"),this.source_buffer=source_buffer,$a=[begin_pos,end_pos],this.begin_pos=$a[0],this.end_pos=$a[1],this.$freeze()}),3),$def(self,"$begin",(function(){return this.$with($hash2(["end_pos"],{end_pos:this.begin_pos}))}),0),$def(self,"$end",(function(){return this.$with($hash2(["begin_pos"],{begin_pos:this.end_pos}))}),0),$def(self,"$size",(function(){return $rb_minus(this.end_pos,this.begin_pos)}),0),$alias(self,"length","size"),$def(self,"$line",(function(){return this.source_buffer.$line_for_position(this.begin_pos)}),0),self.$alias_method("first_line","line"),$def(self,"$column",(function(){return this.source_buffer.$column_for_position(this.begin_pos)}),0),$def(self,"$last_line",(function(){return this.source_buffer.$line_for_position(this.end_pos)}),0),$def(self,"$last_column",(function(){return this.source_buffer.$column_for_position(this.end_pos)}),0),$def(self,"$column_range",(function(){return $neqeq(this.$line(),this.$last_line())&&this.$raise($$("RangeError"),this.$inspect()+" spans more than one line"),Opal.Range.$new(this.$column(),this.$last_column(),!0)}),0),$def(self,"$source_line",(function(){return this.source_buffer.$source_line(this.$line())}),0),$def(self,"$source",(function(){return this.source_buffer.$slice(Opal.Range.$new(this.$begin_pos(),this.$end_pos(),!0))}),0),$def(self,"$is?",(function($a){var self=this;return Opal.slice.call(arguments)["$include?"](self.$source())}),-1),$def(self,"$to_a",(function(){return Opal.Range.$new(this.begin_pos,this.end_pos,!0).$to_a()}),0),$def(self,"$to_range",(function(){return Opal.Range.$new(this.$begin_pos(),this.$end_pos(),!0)}),0),$def(self,"$to_s",(function(){var $a,$b,column,line=nil;return $b=this.source_buffer.$decompose_position(this.begin_pos),line=null==($a=$to_ary($b))[0]?nil:$a[0],column=null==$a[1]?nil:$a[1],[this.source_buffer.$name(),line,$rb_plus(column,1)].$join(":")}),0),$def(self,"$with",(function($kwargs){var begin_pos,end_pos;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(begin_pos=$kwargs.$$smap.begin_pos)&&(begin_pos=this.begin_pos),null==(end_pos=$kwargs.$$smap.end_pos)&&(end_pos=this.end_pos),$$("Range").$new(this.source_buffer,begin_pos,end_pos)}),-1),$def(self,"$adjust",(function($kwargs){var begin_pos,end_pos;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(begin_pos=$kwargs.$$smap.begin_pos)&&(begin_pos=0),null==(end_pos=$kwargs.$$smap.end_pos)&&(end_pos=0),$$("Range").$new(this.source_buffer,$rb_plus(this.begin_pos,begin_pos),$rb_plus(this.end_pos,end_pos))}),-1),$def(self,"$resize",(function(new_size){return this.$with($hash2(["end_pos"],{end_pos:$rb_plus(this.begin_pos,new_size)}))}),1),$def(self,"$join",(function(other){return $$("Range").$new(this.source_buffer,[this.begin_pos,other.$begin_pos()].$min(),[this.end_pos,other.$end_pos()].$max())}),1),$def(self,"$intersect",(function(other){return $truthy(this["$disjoint?"](other))?nil:$$("Range").$new(this.source_buffer,[this.begin_pos,other.$begin_pos()].$max(),[this.end_pos,other.$end_pos()].$min())}),1),$def(self,"$disjoint?",(function(other){var $ret_or_1=nil;return $truthy(this["$empty?"]())&&$truthy(other["$empty?"]())?this.begin_pos["$!="](other.$begin_pos()):$truthy($ret_or_1=$rb_ge(this.begin_pos,other.$end_pos()))?$ret_or_1:$rb_ge(other.$begin_pos(),this.end_pos)}),1),$def(self,"$overlaps?",(function(other){return this["$disjoint?"](other)["$!"]()}),1),$def(self,"$contains?",(function(other){return $rb_ge($rb_plus(other.$begin_pos()["$<=>"](this.begin_pos),this.end_pos["$<=>"](other.$end_pos())),$truthy(other["$empty?"]())?2:1)}),1),$def(self,"$contained?",(function(other){return other["$contains?"](this)}),1),$def(self,"$crossing?",(function(other){return!!$truthy(this["$overlaps?"](other))&&$rb_times(this.begin_pos["$<=>"](other.$begin_pos()),this.end_pos["$<=>"](other.$end_pos()))["$=="](1)}),1),$def(self,"$empty?",(function(){return this.begin_pos["$=="](this.end_pos)}),0),$def(self,"$<=>",(function(other){var $ret_or_1;return $truthy(other["$is_a?"]($$$($$$($$$("Parser"),"Source"),"Range")))&&$eqeq(this.source_buffer,other.$source_buffer())?$truthy($ret_or_1=this.begin_pos["$<=>"](other.$begin_pos())["$nonzero?"]())?$ret_or_1:this.end_pos["$<=>"](other.$end_pos()):nil}),1),self.$alias_method("eql?","=="),$def(self,"$hash",(function(){return[this.source_buffer,this.begin_pos,this.end_pos].$hash()}),0),$def(self,"$inspect",(function(){return"#"}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/comment"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$defs=Opal.defs,$def=Opal.def,$truthy=Opal.truthy;return Opal.add_stubs("attr_reader,alias_method,new,associate,associate_locations,associate_by_identity,freeze,source,start_with?,text,==,type,is_a?,location,to_s,expression,inspect"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Comment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.location=nil,self.$attr_reader("text"),self.$attr_reader("location"),self.$alias_method("loc","location"),$defs(self,"$associate",(function(ast,comments){return $$("Associator").$new(ast,comments).$associate()}),2),$defs(self,"$associate_locations",(function(ast,comments){return $$("Associator").$new(ast,comments).$associate_locations()}),2),$defs(self,"$associate_by_identity",(function(ast,comments){return $$("Associator").$new(ast,comments).$associate_by_identity()}),2),$def(self,"$initialize",(function(range){return this.location=$$$($$$($$("Parser"),"Source"),"Map").$new(range),this.text=range.$source().$freeze(),this.$freeze()}),1),$def(self,"$type",(function(){return $truthy(this.$text()["$start_with?"]("#".$freeze()))?"inline":$truthy(this.$text()["$start_with?"]("=begin".$freeze()))?"document":nil}),0),$def(self,"$inline?",(function(){return this.$type()["$=="]("inline")}),0),$def(self,"$document?",(function(){return this.$type()["$=="]("document")}),0),$def(self,"$==",(function(other){var $ret_or_1;return $truthy($ret_or_1=other["$is_a?"]($$$($$("Source"),"Comment")))?this.location["$=="](other.$location()):$ret_or_1}),1),$def(self,"$inspect",(function(){return"#"}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/comment/associator"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$const_set=Opal.const_set,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$eqeq=Opal.eqeq,$rb_le=Opal.rb_le,$rb_plus=Opal.rb_plus,$not=Opal.not;return Opal.add_stubs("attr_accessor,do_associate,private,freeze,[],include?,type,sort_by,compact,children,begin_pos,expression,loc,select,is_a?,new,[]=,-,==,compare_by_identity,advance_comment,advance_through_directives,visit,process_leading_comments,location,<=,line,last_line,each,children_in_source_order,process_trailing_comments,current_comment_before?,associate_and_advance_comment,current_comment_before_end?,current_comment_decorates?,+,!,end_pos,<<,start_with?,text,=~"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Associator"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.map_using=$proto.mapping=$proto.skip_directives=$proto.ast=$proto.current_comment=$proto.comment_num=$proto.comments=nil,self.$attr_accessor("skip_directives"),$def(self,"$initialize",(function(ast,comments){return this.ast=ast,this.comments=comments,this.skip_directives=!0}),2),$def(self,"$associate",(function(){return this.map_using="eql",this.$do_associate()}),0),$def(self,"$associate_locations",(function(){return this.map_using="location",this.$do_associate()}),0),$def(self,"$associate_by_identity",(function(){return this.map_using="identity",this.$do_associate()}),0),self.$private(),$const_set($nesting[0],"POSTFIX_TYPES",$$("Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),$def(self,"$children_in_source_order",(function(node){return $truthy($$("POSTFIX_TYPES")["$include?"](node.$type()))?$send(node.$children().$compact(),"sort_by",[],(function(child){return null==child&&(child=nil),child.$loc().$expression().$begin_pos()}),1):$send(node.$children(),"select",[],(function(child){var $ret_or_1,$ret_or_2;return null==child&&(child=nil),$truthy($ret_or_1=$truthy($ret_or_2=child["$is_a?"]($$$($$("AST"),"Node")))?child.$loc():$ret_or_2)?child.$loc().$expression():$ret_or_1}),1)}),1),$def(self,"$do_associate",(function(){return this.mapping=$send($$("Hash"),"new",[],(function(h,k){var $writer;return null==h&&(h=nil),null==k&&(k=nil),$send(h,"[]=",$to_a($writer=[k,[]])),$writer[$rb_minus($writer.length,1)]}),2),$eqeq(this.map_using,"identity")&&this.mapping.$compare_by_identity(),this.comment_num=-1,this.$advance_comment(),$truthy(this.skip_directives)&&this.$advance_through_directives(),$truthy(this.ast)&&this.$visit(this.ast),this.mapping}),0),$def(self,"$visit",(function(node){var node_loc=nil;return this.$process_leading_comments(node),$truthy(this.current_comment)?(node_loc=node.$location(),$truthy($rb_le(this.current_comment.$location().$line(),node_loc.$last_line()))||$truthy(node_loc["$is_a?"]($$$($$("Map"),"Heredoc")))?($send(this.$children_in_source_order(node),"each",[],(function $$4(child){return null==child&&(child=nil),(null==$$4.$$s?this:$$4.$$s).$visit(child)}),{$$arity:1,$$s:this}),this.$process_trailing_comments(node)):nil):nil}),1),$def(self,"$process_leading_comments",(function(node){if($eqeq(node.$type(),"begin"))return nil;for(;$truthy(this["$current_comment_before?"](node));)this.$associate_and_advance_comment(node)}),1),$def(self,"$process_trailing_comments",(function(node){for(;$truthy(this["$current_comment_before_end?"](node));)this.$associate_and_advance_comment(node);for(;$truthy(this["$current_comment_decorates?"](node));)this.$associate_and_advance_comment(node)}),1),$def(self,"$advance_comment",(function(){return this.comment_num=$rb_plus(this.comment_num,1),this.current_comment=this.comments["$[]"](this.comment_num)}),0),$def(self,"$current_comment_before?",(function(node){var comment_loc=nil,node_loc=nil;return!$not(this.current_comment)&&(comment_loc=this.current_comment.$location().$expression(),node_loc=node.$location().$expression(),$rb_le(comment_loc.$end_pos(),node_loc.$begin_pos()))}),1),$def(self,"$current_comment_before_end?",(function(node){var comment_loc=nil,node_loc=nil;return!$not(this.current_comment)&&(comment_loc=this.current_comment.$location().$expression(),node_loc=node.$location().$expression(),$rb_le(comment_loc.$end_pos(),node_loc.$end_pos()))}),1),$def(self,"$current_comment_decorates?",(function(node){return!$not(this.current_comment)&&this.current_comment.$location().$line()["$=="](node.$location().$last_line())}),1),$def(self,"$associate_and_advance_comment",(function(node){var key;return key=$eqeq(this.map_using,"location")?node.$location():node,this.mapping["$[]"](key)["$<<"](this.current_comment),this.$advance_comment()}),1),$const_set($nesting[0],"MAGIC_COMMENT_RE",/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),$def(self,"$advance_through_directives",(function(){return $truthy(this.current_comment)&&$truthy(this.current_comment.$text()["$start_with?"]("#!".$freeze()))&&this.$advance_comment(),$truthy(this.current_comment)&&$truthy(this.current_comment.$text()["$=~"]($$("MAGIC_COMMENT_RE")))&&this.$advance_comment(),$truthy(this.current_comment)&&$truthy(this.current_comment.$text()["$=~"]($$$($$("Buffer"),"ENCODING_RE")))?this.$advance_comment():nil}),0)}(Opal.$r($nesting)("Comment"),0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/rewriter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$gvars=Opal.gvars,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$rb_plus=Opal.rb_plus,$truthy=Opal.truthy,$not=Opal.not,$neqeq=Opal.neqeq,$rb_le=Opal.rb_le,$rb_ge=Opal.rb_ge,$rb_lt=Opal.rb_lt,$hash2=Opal.hash2,$const_set=Opal.const_set;return Opal.add_stubs("attr_reader,warn_of_deprecation,class,new,lambda,puts,render,consumer=,-,append,freeze,begin,end,+,in_transaction?,raise,dup,source,each,sort,begin_pos,range,length,replacement,[]=,private,empty?,clobbered_insertion?,!,allow_multiple_insertions?,raise_clobber_error,record_insertion,adjacent_updates?,find,overlaps?,replace_compatible_with_insertion?,merge_actions!,<<,active_queue,adjacent_insertions?,merge_actions,delete,can_merge?,record_replace,|,active_insertions,active_insertions=,active_clobber,clobbered_position_mask,active_clobber=,size,!=,&,<=,end_pos,adjacent_insertion_mask,select,adjacent?,adjacent_position_mask,>=,==,[],all?,intersect,nil?,max,sort_by,push,join,first,max_by,merge_replacements,replace_actions,disjoint?,<,process,extend"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Rewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.diagnostics=$proto.insert_before_multi_order=$proto.insert_after_multi_order=$proto.source_buffer=$proto.queue=$proto.clobber=$proto.insertions=$proto.pending_queue=$proto.pending_clobber=$proto.pending_insertions=nil,self.$attr_reader("source_buffer"),self.$attr_reader("diagnostics"),$def(self,"$initialize",(function(source_buffer){var $writer;return this.$class().$warn_of_deprecation(),this.diagnostics=$$$($$("Diagnostic"),"Engine").$new(),$writer=[$send(this,"lambda",[],(function(diag){return null==$gvars.stderr&&($gvars.stderr=nil),null==diag&&(diag=nil),$gvars.stderr.$puts(diag.$render())}),1)],$send(this.diagnostics,"consumer=",$to_a($writer)),$rb_minus($writer.length,1),this.source_buffer=source_buffer,this.queue=[],this.clobber=0,this.insertions=0,this.insert_before_multi_order=0,this.insert_after_multi_order=0,this.pending_queue=nil,this.pending_clobber=nil,this.pending_insertions=nil}),1),$def(self,"$remove",(function(range){return this.$append($$$($$("Rewriter"),"Action").$new(range,"".$freeze()))}),1),$def(self,"$insert_before",(function(range,content){return this.$append($$$($$("Rewriter"),"Action").$new(range.$begin(),content))}),2),$def(self,"$wrap",(function(range,before,after){return this.$append($$$($$("Rewriter"),"Action").$new(range.$begin(),before)),this.$append($$$($$("Rewriter"),"Action").$new(range.$end(),after))}),3),$def(self,"$insert_before_multi",(function(range,content){return this.insert_before_multi_order=$rb_minus(this.insert_before_multi_order,1),this.$append($$$($$("Rewriter"),"Action").$new(range.$begin(),content,!0,this.insert_before_multi_order))}),2),$def(self,"$insert_after",(function(range,content){return this.$append($$$($$("Rewriter"),"Action").$new(range.$end(),content))}),2),$def(self,"$insert_after_multi",(function(range,content){return this.insert_after_multi_order=$rb_plus(this.insert_after_multi_order,1),this.$append($$$($$("Rewriter"),"Action").$new(range.$end(),content,!0,this.insert_after_multi_order))}),2),$def(self,"$replace",(function(range,content){return this.$append($$$($$("Rewriter"),"Action").$new(range,content))}),2),$def(self,"$process",(function(){var source,adjustment=nil;return $truthy(this["$in_transaction?"]())&&this.$raise("Do not call "+this.$class()+"#process inside a transaction"),adjustment=0,source=this.source_buffer.$source().$dup(),$send(this.queue.$sort(),"each",[],(function(action){var begin_pos,end_pos,$writer;return null==action&&(action=nil),begin_pos=$rb_plus(action.$range().$begin_pos(),adjustment),end_pos=$rb_plus(begin_pos,action.$range().$length()),$writer=[Opal.Range.$new(begin_pos,end_pos,!0),action.$replacement()],$send(source,"[]=",$to_a($writer)),$rb_minus($writer.length,1),adjustment=$rb_plus(adjustment,$rb_minus(action.$replacement().$length(),action.$range().$length()))}),1),source}),0),$def(self,"$transaction",(function $$transaction(){var $yield=$$transaction.$$p||nil,self=this;return delete $$transaction.$$p,function(){try{return $yield===nil&&self.$raise(self.$class()+"#transaction requires block"),$truthy(self["$in_transaction?"]())&&self.$raise("Nested transaction is not supported"),self.pending_queue=self.queue.$dup(),self.pending_clobber=self.clobber,self.pending_insertions=self.insertions,Opal.yieldX($yield,[]),self.queue=self.pending_queue,self.clobber=self.pending_clobber,self.insertions=self.pending_insertions,self}finally{self.pending_queue=nil,self.pending_clobber=nil,self.pending_insertions=nil}}()}),0),self.$private(),$def(self,"$append",(function(action){var range=nil,conflicting=nil,adjacent=nil,insertions=nil;if(range=action.$range(),$truthy(range["$empty?"]())){if($truthy(action.$replacement()["$empty?"]()))return this;$not(action["$allow_multiple_insertions?"]())&&$truthy(conflicting=this["$clobbered_insertion?"](range))&&this.$raise_clobber_error(action,[conflicting]),this.$record_insertion(range),$truthy(adjacent=this["$adjacent_updates?"](range))?(conflicting=$send(adjacent,"find",[],(function $$3(a){var $ret_or_1,self=null==$$3.$$s?this:$$3.$$s;return null==a&&(a=nil),$truthy($ret_or_1=a.$range()["$overlaps?"](range))?self["$replace_compatible_with_insertion?"](a,action)["$!"]():$ret_or_1}),{$$arity:1,$$s:this}),$truthy(conflicting)&&this.$raise_clobber_error(action,[conflicting]),this["$merge_actions!"](action,adjacent)):this.$active_queue()["$<<"](action)}else $truthy(insertions=this["$adjacent_insertions?"](range))&&$send(insertions,"each",[],(function $$4(insertion){var self=null==$$4.$$s?this:$$4.$$s;return null==insertion&&(insertion=nil),$truthy(range["$overlaps?"](insertion.$range()))&&$not(self["$replace_compatible_with_insertion?"](action,insertion))?self.$raise_clobber_error(action,[insertion]):(action=self.$merge_actions(action,[insertion]),self.$active_queue().$delete(insertion))}),{$$arity:1,$$s:this}),$truthy(adjacent=this["$adjacent_updates?"](range))?$truthy(this["$can_merge?"](action,adjacent))?(this.$record_replace(range),this["$merge_actions!"](action,adjacent)):this.$raise_clobber_error(action,adjacent):(this.$record_replace(range),this.$active_queue()["$<<"](action));return this}),1),$def(self,"$record_insertion",(function(range){var $writer;return $writer=[this.$active_insertions()["$|"](1["$<<"](range.$begin_pos()))],$send(this,"active_insertions=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$record_replace",(function(range){var $writer;return $writer=[this.$active_clobber()["$|"](this.$clobbered_position_mask(range))],$send(this,"active_clobber=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$clobbered_position_mask",(function(range){return $rb_minus(1["$<<"](range.$size()),1)["$<<"](range.$begin_pos())}),1),$def(self,"$adjacent_position_mask",(function(range){return $rb_minus(1["$<<"]($rb_plus(range.$size(),2)),1)["$<<"]($rb_minus(range.$begin_pos(),1))}),1),$def(self,"$adjacent_insertion_mask",(function(range){return $rb_minus(1["$<<"]($rb_plus(range.$size(),1)),1)["$<<"](range.$begin_pos())}),1),$def(self,"$clobbered_insertion?",(function(insertion){var insertion_pos;return insertion_pos=insertion.$begin_pos(),$neqeq(this.$active_insertions()["$&"](1["$<<"](insertion_pos)),0)?$send(this.$active_queue(),"find",[],(function(a){var $ret_or_1;return null==a&&(a=nil),$truthy($ret_or_1=$rb_le(a.$range().$begin_pos(),insertion_pos))?$rb_le(insertion_pos,a.$range().$end_pos()):$ret_or_1}),1):nil}),1),$def(self,"$adjacent_insertions?",(function(range){var result=nil;return $neqeq(this.$active_insertions()["$&"](this.$adjacent_insertion_mask(range)),0)?(result=$send(this.$active_queue(),"select",[],(function $$8(a){var $ret_or_1,self=null==$$8.$$s?this:$$8.$$s;return null==a&&(a=nil),$truthy($ret_or_1=a.$range()["$empty?"]())?self["$adjacent?"](range,a.$range()):$ret_or_1}),{$$arity:1,$$s:this}),$truthy(result["$empty?"]())?nil:result):nil}),1),$def(self,"$adjacent_updates?",(function(range){return $neqeq(this.$active_clobber()["$&"](this.$adjacent_position_mask(range)),0)?$send(this.$active_queue(),"select",[],(function $$10(a){return null==a&&(a=nil),(null==$$10.$$s?this:$$10.$$s)["$adjacent?"](range,a.$range())}),{$$arity:1,$$s:this}):nil}),1),$def(self,"$replace_compatible_with_insertion?",(function(replace,insertion){var $ret_or_1,$ret_or_2,offset=nil;return $truthy($ret_or_1=$truthy($ret_or_2=$rb_ge($rb_minus(replace.$replacement().$length(),replace.$range().$size()),insertion.$range().$size()))?offset=$rb_minus(insertion.$range().$begin_pos(),replace.$range().$begin_pos()):$ret_or_2)?replace.$replacement()["$[]"](offset,insertion.$replacement().$length())["$=="](insertion.$replacement()):$ret_or_1}),2),$def(self,"$can_merge?",(function(action,existing){var range=nil;return range=action.$range(),$send(existing,"all?",[],(function(other){var repl1_offset,repl2_offset,repl1_length,repl2_length,replacement2,overlap=nil,replacement1=nil,$ret_or_1=nil;return null==other&&(other=nil),overlap=range.$intersect(other.$range()),!!$truthy(overlap["$nil?"]())||(repl1_offset=$rb_minus(overlap.$begin_pos(),range.$begin_pos()),repl2_offset=$rb_minus(overlap.$begin_pos(),other.$range().$begin_pos()),repl1_length=[$rb_minus(other.$range().$length(),repl2_offset),$rb_minus(other.$replacement().$length(),repl2_offset)].$max(),repl2_length=[$rb_minus(range.$length(),repl1_offset),$rb_minus(action.$replacement().$length(),repl1_offset)].$max(),replacement1=$truthy($ret_or_1=action.$replacement()["$[]"](repl1_offset,repl1_length))?$ret_or_1:"".$freeze(),replacement2=$truthy($ret_or_1=other.$replacement()["$[]"](repl2_offset,repl2_length))?$ret_or_1:"".$freeze(),replacement1["$=="](replacement2))}),1)}),2),$def(self,"$merge_actions",(function(action,existing){var range,actions=nil;return range=(actions=$send(existing.$push(action),"sort_by",[],(function(a){return null==a&&(a=nil),[a.$range().$begin_pos(),a.$range().$end_pos()]}),1)).$first().$range().$join($send(actions,"max_by",[],(function(a){return null==a&&(a=nil),a.$range().$end_pos()}),1).$range()),$$$($$("Rewriter"),"Action").$new(range,this.$merge_replacements(actions))}),2),$def(self,"$merge_actions!",(function(action,existing){var new_action;return new_action=this.$merge_actions(action,existing),this.$active_queue().$delete(action),this.$replace_actions(existing,new_action)}),2),$def(self,"$merge_replacements",(function(actions){var result=nil,prev_act=nil;return result="".$dup(),prev_act=nil,$send(actions,"each",[],(function(act){var prev_end=nil,offset=nil;return null==act&&(act=nil),$not(prev_act)||$truthy(act.$range()["$disjoint?"](prev_act.$range()))?result["$<<"](act.$replacement()):(prev_end=[$rb_plus(prev_act.$range().$begin_pos(),prev_act.$replacement().$length()),prev_act.$range().$end_pos()].$max(),offset=$rb_minus(prev_end,act.$range().$begin_pos()),$truthy($rb_lt(offset,act.$replacement().$size()))&&result["$<<"](act.$replacement()["$[]"](Opal.Range.$new(offset,-1,!1)))),prev_act=act}),1),result}),1),$def(self,"$replace_actions",(function(old,updated){return $send(old,"each",[],(function $$18(act){return null==act&&(act=nil),(null==$$18.$$s?this:$$18.$$s).$active_queue().$delete(act)}),{$$arity:1,$$s:this}),this.$active_queue()["$<<"](updated)}),2),$def(self,"$raise_clobber_error",(function(action,existing){var diagnostic=nil;return diagnostic=$$("Diagnostic").$new("error","invalid_action",$hash2(["action"],{action:action}),action.$range()),this.diagnostics.$process(diagnostic),diagnostic=$$("Diagnostic").$new("note","clobbered",$hash2(["action"],{action:existing["$[]"](0)}),existing["$[]"](0).$range()),this.diagnostics.$process(diagnostic),this.$raise($$("ClobberingError"),"Parser::Source::Rewriter detected clobbering")}),2),$def(self,"$in_transaction?",(function(){return this.pending_queue["$nil?"]()["$!"]()}),0),$def(self,"$active_queue",(function(){var $ret_or_1;return $truthy($ret_or_1=this.pending_queue)?$ret_or_1:this.queue}),0),$def(self,"$active_clobber",(function(){var $ret_or_1;return $truthy($ret_or_1=this.pending_clobber)?$ret_or_1:this.clobber}),0),$def(self,"$active_insertions",(function(){var $ret_or_1;return $truthy($ret_or_1=this.pending_insertions)?$ret_or_1:this.insertions}),0),$def(self,"$active_clobber=",(function(value){return $truthy(this.pending_clobber)?this.pending_clobber=value:this.clobber=value}),1),$def(self,"$active_insertions=",(function(value){return $truthy(this.pending_insertions)?this.pending_insertions=value:this.insertions=value}),1),$def(self,"$adjacent?",(function(range1,range2){var $ret_or_1;return $truthy($ret_or_1=$rb_le(range1.$begin_pos(),range2.$end_pos()))?$rb_le(range2.$begin_pos(),range1.$end_pos()):$ret_or_1}),2),$const_set($nesting[0],"DEPRECATION_WARNING",["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()),self.$extend($$("Deprecation"))}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/rewriter/action"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy,$eqeq=Opal.eqeq;return Opal.add_stubs("include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Action"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.replacement=$proto.range=nil,self.$include($$("Comparable")),self.$attr_reader("range","replacement","allow_multiple_insertions","order"),self.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),$def(self,"$initialize",(function(range,replacement,allow_multiple_insertions,order){return null==replacement&&(replacement=""),null==allow_multiple_insertions&&(allow_multiple_insertions=!1),null==order&&(order=0),this.range=range,this.replacement=replacement,this.allow_multiple_insertions=allow_multiple_insertions,this.order=order,this.$freeze()}),-2),$def(self,"$<=>",(function(other){var result=nil;return result=this.$range().$begin_pos()["$<=>"](other.$range().$begin_pos()),$truthy(result["$zero?"]())?this.$order()["$<=>"](other.$order()):result}),1),$def(self,"$to_s",(function(){return $eqeq(this.range.$length(),0)&&$truthy(this.replacement["$empty?"]())?"do nothing":$eqeq(this.range.$length(),0)?"insert "+this.replacement.$inspect():$truthy(this.replacement["$empty?"]())?"remove "+this.range.$length()+" character(s)":"replace "+this.range.$length()+" character(s) with "+this.replacement.$inspect()}),0)}(Opal.$r($nesting)("Rewriter"),0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/tree_rewriter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$lambda=Opal.lambda,$gvars=Opal.gvars,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$const_set=Opal.const_set,$eqeqeq=Opal.eqeqeq,$range=Opal.range,$to_ary=Opal.to_ary,$rb_gt=(Opal.hash,Opal.rb_gt),$rb_lt=Opal.rb_lt,$slice=Opal.slice;return Opal.add_stubs("attr_reader,new,puts,render,consumer=,-,freeze,check_policy_validity,method,adjust,source_range,empty?,==,source_buffer,raise,combine,action_root,merge!,dup,contract,+,begin_pos,range,end_pos,check_range_validity,moved,to_s,replace,wrap,source,each,ordered_replacements,<<,[],length,join,nested_actions,class,name,action_summary,warn_of_deprecation,insert_before,insert_after,extend,protected,private,as_replacements,===,size,first,map,to_range,inspect,values,>,<,trigger_policy,process"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"TreeRewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.diagnostics=$proto.source_buffer=$proto.enforcer=$proto.action_root=$proto.in_transaction=$proto.policy=nil,self.$attr_reader("source_buffer"),self.$attr_reader("diagnostics"),$def(self,"$initialize",(function(source_buffer,$kwargs){var crossing_deletions,different_replacements,swallowed_insertions,$writer,all_encompassing_range;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(crossing_deletions=$kwargs.$$smap.crossing_deletions)&&(crossing_deletions="accept"),null==(different_replacements=$kwargs.$$smap.different_replacements)&&(different_replacements="accept"),null==(swallowed_insertions=$kwargs.$$smap.swallowed_insertions)&&(swallowed_insertions="accept"),this.diagnostics=$$$($$("Diagnostic"),"Engine").$new(),$writer=[$lambda((function(diag){return null==$gvars.stderr&&($gvars.stderr=nil),null==diag&&(diag=nil),$gvars.stderr.$puts(diag.$render())}),1)],$send(this.diagnostics,"consumer=",$to_a($writer)),$rb_minus($writer.length,1),this.source_buffer=source_buffer,this.in_transaction=!1,this.policy=$hash2(["crossing_deletions","different_replacements","swallowed_insertions"],{crossing_deletions:crossing_deletions,different_replacements:different_replacements,swallowed_insertions:swallowed_insertions}).$freeze(),this.$check_policy_validity(),this.enforcer=this.$method("enforce_policy"),all_encompassing_range=this.source_buffer.$source_range().$adjust($hash2(["begin_pos","end_pos"],{begin_pos:-1,end_pos:1})),this.action_root=$$$($$("TreeRewriter"),"Action").$new(all_encompassing_range,this.enforcer)}),-2),$def(self,"$empty?",(function(){return this.action_root["$empty?"]()}),0),$def(self,"$merge!",(function(with$){return $eqeq(this.$source_buffer(),with$.$source_buffer())||this.$raise("TreeRewriter are not for the same source_buffer"),this.action_root=this.action_root.$combine(with$.$action_root()),this}),1),$def(self,"$merge",(function(with$){return this.$dup()["$merge!"](with$)}),1),$def(self,"$import!",(function(foreign_rewriter,$kwargs){var offset,merge_effective_range,merge_with,contracted=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(offset=$kwargs.$$smap.offset)&&(offset=0),$truthy(foreign_rewriter["$empty?"]())||(contracted=foreign_rewriter.$action_root().$contract(),merge_effective_range=$$$($$$($$$("Parser"),"Source"),"Range").$new(this.source_buffer,$rb_plus(contracted.$range().$begin_pos(),offset),$rb_plus(contracted.$range().$end_pos(),offset)),this.$check_range_validity(merge_effective_range),merge_with=contracted.$moved(this.source_buffer,offset),this.action_root=this.action_root.$combine(merge_with)),this}),-2),$def(self,"$replace",(function(range,content){return this.$combine(range,$hash2(["replacement"],{replacement:content}))}),2),$def(self,"$wrap",(function(range,insert_before,insert_after){return this.$combine(range,$hash2(["insert_before","insert_after"],{insert_before:insert_before.$to_s(),insert_after:insert_after.$to_s()}))}),3),$def(self,"$remove",(function(range){return this.$replace(range,"".$freeze())}),1),$def(self,"$insert_before",(function(range,content){return this.$wrap(range,content,nil)}),2),$def(self,"$insert_after",(function(range,content){return this.$wrap(range,nil,content)}),2),$def(self,"$process",(function(){var source=nil,chunks=nil,last_end=nil;return source=this.source_buffer.$source(),chunks=[],last_end=0,$send(this.action_root.$ordered_replacements(),"each",[],(function(range,replacement){return null==range&&(range=nil),null==replacement&&(replacement=nil),chunks["$<<"](source["$[]"](Opal.Range.$new(last_end,range.$begin_pos(),!0)))["$<<"](replacement),last_end=range.$end_pos()}),2),chunks["$<<"](source["$[]"](Opal.Range.$new(last_end,source.$length(),!0))),chunks.$join()}),0),$def(self,"$as_replacements",(function(){return this.action_root.$ordered_replacements()}),0),$def(self,"$as_nested_actions",(function(){return this.action_root.$nested_actions()}),0),$def(self,"$transaction",(function $$transaction(){var $yield=$$transaction.$$p||nil,self=this,previous=nil,restore_root=nil;return delete $$transaction.$$p,function(){try{return $yield===nil&&self.$raise(self.$class()+"#transaction requires block"),previous=self.in_transaction,self.in_transaction=!0,restore_root=self.action_root,Opal.yieldX($yield,[]),restore_root=nil,self}finally{$truthy(restore_root)&&(self.action_root=restore_root),self.in_transaction=previous}}()}),0),$def(self,"$in_transaction?",(function(){return this.in_transaction}),0),$def(self,"$inspect",(function(){return"#<"+this.$class()+" "+this.$source_buffer().$name()+": "+this.$action_summary()+">"}),0),$def(self,"$insert_before_multi",(function(range,text){return this.$class().$warn_of_deprecation(),this.$insert_before(range,text)}),2),$def(self,"$insert_after_multi",(function(range,text){return this.$class().$warn_of_deprecation(),this.$insert_after(range,text)}),2),$const_set($nesting[0],"DEPRECATION_WARNING",["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.","Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()),self.$extend($$("Deprecation")),self.$protected(),self.$attr_reader("action_root"),self.$private(),$def(self,"$action_summary",(function(){var $ret_or_1,replacements=nil,suffix=nil,parts=nil;return replacements=this.$as_replacements(),$eqeqeq(0,$ret_or_1=replacements.$size())?"empty":($eqeqeq($range(1,3,!1),$ret_or_1)||(replacements=replacements.$first(3),suffix="…"),parts=$send(replacements,"map",[],(function($mlhs_tmp1){var $a,range=nil,str=nil;return null==$mlhs_tmp1&&($mlhs_tmp1=nil),range=null==($a=$to_ary($mlhs_tmp1))[0]?nil:$a[0],str=null==$a[1]?nil:$a[1],$truthy(str["$empty?"]())?"-"+range.$to_range():$eqeq(range.$size(),0)?"+"+str.$inspect()+"@"+range.$begin_pos():"^"+str.$inspect()+"@"+range.$to_range()}),{$$arity:1,$$has_top_level_mlhs_arg:!0}),$truthy(suffix)&&parts["$<<"](suffix),parts.$join(", "))}),0),$const_set($nesting[0],"ACTIONS",["accept","warn","raise"].$freeze()),$def(self,"$check_policy_validity",(function(){var invalid=nil;return invalid=$rb_minus(this.policy.$values(),$$("ACTIONS")),$truthy(invalid["$empty?"]())?nil:this.$raise($$("ArgumentError"),"Invalid policy: "+invalid.$join(", "))}),0),$def(self,"$combine",(function(range,attributes){var action;return range=this.$check_range_validity(range),action=$$$($$("TreeRewriter"),"Action").$new(range,this.enforcer,Opal.to_hash(attributes)),this.action_root=this.action_root.$combine(action),this}),2),$def(self,"$check_range_validity",(function(range){return($truthy($rb_lt(range.$begin_pos(),0))||$truthy($rb_gt(range.$end_pos(),this.source_buffer.$source().$size())))&&this.$raise($$("IndexError"),"The range "+range.$to_range()+" is outside the bounds of the source"),range}),1),$def(self,"$enforce_policy",(function $$enforce_policy(event){var values,$yield=$$enforce_policy.$$p||nil;return delete $$enforce_policy.$$p,$eqeq(this.policy["$[]"](event),"accept")?nil:$truthy(values=Opal.yieldX($yield,[]))?this.$trigger_policy(event,Opal.to_hash(values)):nil}),1),$const_set($nesting[0],"POLICY_TO_LEVEL",$hash2(["warn","raise"],{warn:"warning",raise:"error"}).$freeze()),$def(self,"$trigger_policy",(function(event,$kwargs){var range,conflict,arguments$,$a,action,$ret_or_1,diag=nil,highlights=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(range=$kwargs.$$smap.range)&&(range=this.$raise()),null==(conflict=$kwargs.$$smap.conflict)&&(conflict=nil),arguments$=Opal.kwrestargs($kwargs,{range:!0,conflict:!0}),action=$truthy($ret_or_1=this.policy["$[]"](event))?$ret_or_1:"raise",diag=$$$($$("Parser"),"Diagnostic").$new($$("POLICY_TO_LEVEL")["$[]"](action),event,arguments$,range),this.diagnostics.$process(diag),$truthy(conflict)&&(range=null==($a=$to_ary(conflict))[0]?nil:$a[0],highlights=$slice.call($a,1),diag=$$$($$("Parser"),"Diagnostic").$new($$("POLICY_TO_LEVEL")["$[]"](action),event+"_conflict",arguments$,range,highlights),this.diagnostics.$process(diag)),$eqeq(action,"raise")?this.$raise($$$($$("Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):nil}),-2)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/tree_rewriter/action"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$not=Opal.not,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$rb_gt=Opal.rb_gt,$rb_minus=Opal.rb_minus,$rb_ge=Opal.rb_ge,$eqeqeq=Opal.eqeqeq,$rb_le=Opal.rb_le,$rb_lt=Opal.rb_lt,$neqeq=Opal.neqeq;return Opal.add_stubs("attr_reader,freeze,empty?,do_combine,==,<<,begin,concat,flat_map,to_proc,end,!,insert_before,insert_after,replacement,raise,insertion?,with,begin_pos,range,first,children,end_pos,last,new,+,map,moved,protected,swallow,class,merge,place_in_hierarchy,analyse_hierarchy,[],fuse_deletions,combine_children,inject,size,bsearch,bsearch_child_index,>,-,>=,===,<=>,<=,check_fusible,<,shift,pop,compact!,each,call,call_enforcer_for_merge,!=,select"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting);return function($base,$super){var self=$klass($base,null,"Action"),$proto=self.$$prototype;return $proto.insert_before=$proto.insert_after=$proto.children=$proto.replacement=$proto.range=$proto.enforcer=nil,self.$attr_reader("range","replacement","insert_before","insert_after"),$def(self,"$initialize",(function(range,enforcer,$kwargs){var insert_before,replacement,insert_after,children,$a;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(insert_before=$kwargs.$$smap.insert_before)&&(insert_before=""),null==(replacement=$kwargs.$$smap.replacement)&&(replacement=nil),null==(insert_after=$kwargs.$$smap.insert_after)&&(insert_after=""),null==(children=$kwargs.$$smap.children)&&(children=[]),$a=[range,enforcer,children.$freeze(),insert_before.$freeze(),replacement,insert_after.$freeze()],this.range=$a[0],this.enforcer=$a[1],this.children=$a[2],this.insert_before=$a[3],this.replacement=$a[4],this.insert_after=$a[5],this.$freeze()}),-3),$def(self,"$combine",(function(action){return $truthy(action["$empty?"]())?this:this.$do_combine(action)}),1),$def(self,"$empty?",(function(){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=this.insert_before["$empty?"]())?this.insert_after["$empty?"]():$ret_or_3)?this.children["$empty?"]():$ret_or_2)?$truthy($ret_or_2=this.replacement["$=="](nil))?$ret_or_2:$truthy($ret_or_3=this.replacement["$empty?"]())?this.range["$empty?"]():$ret_or_3:$ret_or_1}),0),$def(self,"$ordered_replacements",(function(){var reps=nil;return reps=[],$truthy(this.insert_before["$empty?"]())||reps["$<<"]([this.range.$begin(),this.insert_before]),$truthy(this.replacement)&&reps["$<<"]([this.range,this.replacement]),reps.$concat($send(this.children,"flat_map",[],"ordered_replacements".$to_proc())),$truthy(this.insert_after["$empty?"]())||reps["$<<"]([this.range.$end(),this.insert_after]),reps}),0),$def(self,"$nested_actions",(function(){var actions=nil;return actions=[],($not(this.insert_before["$empty?"]())||$not(this.insert_after["$empty?"]()))&&actions["$<<"](["wrap",this.range,this.insert_before,this.insert_after]),$truthy(this.replacement)&&actions["$<<"](["replace",this.range,this.replacement]),actions.$concat($send(this.children,"flat_map",[],"nested_actions".$to_proc()))}),0),$def(self,"$insertion?",(function(){var $ret_or_1,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=this.$insert_before()["$empty?"]()["$!"]())?$ret_or_2:this.$insert_after()["$empty?"]()["$!"]())?$ret_or_1:$truthy($ret_or_2=this.$replacement())?this.$replacement()["$empty?"]()["$!"]():$ret_or_2}),0),$def(self,"$contract",(function(){var range;return $truthy(this["$empty?"]())&&this.$raise("Empty actions can not be contracted"),$truthy(this["$insertion?"]())?this:(range=this.range.$with($hash2(["begin_pos","end_pos"],{begin_pos:this.$children().$first().$range().$begin_pos(),end_pos:this.$children().$last().$range().$end_pos()})),this.$with($hash2(["range"],{range:range})))}),0),$def(self,"$moved",(function(source_buffer,offset){var moved_range;return moved_range=$$$($$$($$$("Parser"),"Source"),"Range").$new(source_buffer,$rb_plus(this.range.$begin_pos(),offset),$rb_plus(this.range.$end_pos(),offset)),this.$with($hash2(["range","children"],{range:moved_range,children:$send(this.$children(),"map",[],(function(child){return null==child&&(child=nil),child.$moved(source_buffer,offset)}),1)}))}),2),self.$protected(),self.$attr_reader("children"),$def(self,"$with",(function($kwargs){var range,enforcer,children,insert_before,replacement,insert_after;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(range=$kwargs.$$smap.range)&&(range=this.range),null==(enforcer=$kwargs.$$smap.enforcer)&&(enforcer=this.enforcer),null==(children=$kwargs.$$smap.children)&&(children=this.children),null==(insert_before=$kwargs.$$smap.insert_before)&&(insert_before=this.insert_before),null==(replacement=$kwargs.$$smap.replacement)&&(replacement=this.replacement),null==(insert_after=$kwargs.$$smap.insert_after)&&(insert_after=this.insert_after),$truthy(replacement)&&(children=this.$swallow(children)),this.$class().$new(range,enforcer,$hash2(["children","insert_before","replacement","insert_after"],{children:children,insert_before:insert_before,replacement:replacement,insert_after:insert_after}))}),-1),$def(self,"$do_combine",(function(action){return $eqeq(action.$range(),this.range)?this.$merge(action):this.$place_in_hierarchy(action)}),1),$def(self,"$place_in_hierarchy",(function(action){var family=nil,extra_sibbling=nil;return family=this.$analyse_hierarchy(action),$truthy(family["$[]"]("fusible"))?this.$fuse_deletions(action,family["$[]"]("fusible"),[].concat($to_a(family["$[]"]("sibbling_left"))).concat($to_a(family["$[]"]("child"))).concat($to_a(family["$[]"]("sibbling_right")))):(extra_sibbling=$truthy(family["$[]"]("parent"))?family["$[]"]("parent").$do_combine(action):$truthy(family["$[]"]("child"))?action.$with($hash2(["children","enforcer"],{children:family["$[]"]("child"),enforcer:this.enforcer})).$combine_children(action.$children()):action,this.$with($hash2(["children"],{children:[].concat($to_a(family["$[]"]("sibbling_left"))).concat([extra_sibbling]).concat($to_a(family["$[]"]("sibbling_right")))})))}),1),$def(self,"$combine_children",(function(more_children){return $send(more_children,"inject",[this],(function(parent,new_child){return null==parent&&(parent=nil),null==new_child&&(new_child=nil),parent.$place_in_hierarchy(new_child)}),2)}),1),$def(self,"$fuse_deletions",(function(action,fusible,other_sibblings){var fused_range,fused_deletion,without_fusible=nil;return without_fusible=this.$with($hash2(["children"],{children:other_sibblings})),fused_range=$send([action].concat($to_a(fusible)),"map",[],"range".$to_proc()).$inject("join"),fused_deletion=action.$with($hash2(["range"],{range:fused_range})),without_fusible.$do_combine(fused_deletion)}),3),$def(self,"$bsearch_child_index",(function $$bsearch_child_index(from){var size,$ret_or_1,$yield=$$bsearch_child_index.$$p||nil;return delete $$bsearch_child_index.$$p,null==from&&(from=0),size=this.children.$size(),$truthy($ret_or_1=$send(Opal.Range.$new(from,size,!0),"bsearch",[],(function $$6(i){var self=null==$$6.$$s?this:$$6.$$s;return null==self.children&&(self.children=nil),null==i&&(i=nil),Opal.yield1($yield,self.children["$[]"](i))}),{$$arity:1,$$s:this}))?$ret_or_1:size}),-1),$def(self,"$analyse_hierarchy",(function(action){var start,center,$ret_or_1,r=nil,left_index=nil,right_index=nil,parent=nil,overlap_left=nil,overlap_right=nil,contained=nil,fusible=nil;return r=action.$range(),left_index=$send(this,"bsearch_child_index",[],(function(child){return null==child&&(child=nil),$rb_gt(child.$range().$end_pos(),r.$begin_pos())}),1),start=$eqeq(left_index,0)?0:$rb_minus(left_index,1),right_index=$send(this,"bsearch_child_index",[start],(function(child){return null==child&&(child=nil),$rb_ge(child.$range().$begin_pos(),r.$end_pos())}),1),center=$rb_minus(right_index,left_index),$eqeqeq(0,$ret_or_1=center)||($eqeqeq(-1,$ret_or_1)?(left_index=$rb_minus(left_index,1),right_index=$rb_plus(right_index,1),parent=this.children["$[]"](left_index)):(overlap_left=this.children["$[]"](left_index).$range().$begin_pos()["$<=>"](r.$begin_pos()),overlap_right=this.children["$[]"]($rb_minus(right_index,1)).$range().$end_pos()["$<=>"](r.$end_pos()),$eqeq(center,1)&&$truthy($rb_le(overlap_left,0))&&$truthy($rb_ge(overlap_right,0))?parent=this.children["$[]"](left_index):(contained=this.children["$[]"](Opal.Range.$new(left_index,right_index,!0)),fusible=this.$check_fusible(action,$truthy($rb_lt(overlap_left,0))?contained.$shift():nil,$truthy($rb_gt(overlap_right,0))?contained.$pop():nil)))),$hash2(["parent","sibbling_left","sibbling_right","fusible","child"],{parent:parent,sibbling_left:this.children["$[]"](Opal.Range.$new(0,left_index,!0)),sibbling_right:this.children["$[]"](Opal.Range.$new(right_index,this.children.$size(),!0)),fusible:fusible,child:contained})}),1),$def(self,"$check_fusible",(function(action,$a){var fusible,self=this;return(fusible=Opal.slice.call(arguments,1))["$compact!"](),$truthy(fusible["$empty?"]())?nil:($send(fusible,"each",[],(function $$9(child){var kind,self=null==$$9.$$s?this:$$9.$$s;return null==self.enforcer&&(self.enforcer=nil),null==child&&(child=nil),kind=$truthy(action["$insertion?"]())||$truthy(child["$insertion?"]())?"crossing_insertions":"crossing_deletions",$send(self.enforcer,"call",[kind],(function(){return $hash2(["range","conflict"],{range:action.$range(),conflict:child.$range()})}),0)}),{$$arity:1,$$s:self}),fusible)}),-2),$def(self,"$merge",(function(action){var $ret_or_1;return this.$call_enforcer_for_merge(action),this.$with($hash2(["insert_before","replacement","insert_after"],{insert_before:""+action.$insert_before()+this.$insert_before(),replacement:$truthy($ret_or_1=action.$replacement())?$ret_or_1:this.replacement,insert_after:""+this.$insert_after()+action.$insert_after()})).$combine_children(action.$children())}),1),$def(self,"$call_enforcer_for_merge",(function(action){return $send(this.enforcer,"call",["different_replacements"],(function $$11(){var self=null==$$11.$$s?this:$$11.$$s;return null==self.replacement&&(self.replacement=nil),null==self.range&&(self.range=nil),$truthy(self.replacement)&&$truthy(action.$replacement())&&$neqeq(self.replacement,action.$replacement())?$hash2(["range","replacement","other_replacement"],{range:self.range,replacement:action.$replacement(),other_replacement:self.replacement}):nil}),{$$arity:0,$$s:this})}),1),$def(self,"$swallow",(function(children){return $send(this.enforcer,"call",["swallowed_insertions"],(function $$12(){var self=null==$$12.$$s?this:$$12.$$s,insertions=nil;return null==self.range&&(self.range=nil),insertions=$send(children,"select",[],"insertion?".$to_proc()),$truthy(insertions["$empty?"]())?nil:$hash2(["range","conflict"],{range:self.range,conflict:$send(insertions,"map",[],"range".$to_proc())})}),{$$arity:0,$$s:this}),[]}),1)}(Opal.$r($nesting)("TreeRewriter"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy,$hash2=Opal.hash2,$eqeq=Opal.eqeq,$range=Opal.range,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus;return Opal.add_stubs("attr_reader,freeze,line,alias_method,column,last_line,last_column,with,update_expression,==,class,reduce,map,instance_variables,instance_variable_get,send,inject,to_sym,[],[]=,-,protected,tap,dup,to_proc"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,null,"Map"),$proto=self.$$prototype;return $proto.node=$proto.expression=nil,self.$attr_reader("node"),self.$attr_reader("expression"),$def(self,"$initialize",(function(expression){return this.expression=expression}),1),$def(self,"$initialize_copy",(function $$initialize_copy(other){var $yield=$$initialize_copy.$$p||nil;return delete $$initialize_copy.$$p,$send2(this,$find_super(this,"initialize_copy",$$initialize_copy,!1,!0),"initialize_copy",[other],$yield),this.node=nil}),1),$def(self,"$node=",(function(node){return this.node=node,this.$freeze(),this.node}),1),$def(self,"$line",(function(){return this.expression.$line()}),0),self.$alias_method("first_line","line"),$def(self,"$column",(function(){return this.expression.$column()}),0),$def(self,"$last_line",(function(){return this.expression.$last_line()}),0),$def(self,"$last_column",(function(){return this.expression.$last_column()}),0),$def(self,"$with_expression",(function(expression_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_expression(expression_l)}),1)}),1),$def(self,"$==",(function(other){var $ret_or_1;return $truthy($ret_or_1=other.$class()["$=="](this.$class()))?$send(this.$instance_variables(),"map",[],(function $$4(ivar){return null==ivar&&(ivar=nil),(null==$$4.$$s?this:$$4.$$s).$instance_variable_get(ivar)["$=="](other.$send("instance_variable_get",ivar))}),{$$arity:1,$$s:this}).$reduce("&"):$ret_or_1}),1),$def(self,"$to_hash",(function(){return $send(this.$instance_variables(),"inject",[$hash2([],{})],(function $$5(hash,ivar){var $writer,self=null==$$5.$$s?this:$$5.$$s;return null==hash&&(hash=nil),null==ivar&&(ivar=nil),$eqeq(ivar.$to_sym(),"@node")||($writer=[ivar["$[]"]($range(1,-1,!1)).$to_sym(),self.$instance_variable_get(ivar)],$send(hash,"[]=",$to_a($writer)),$rb_minus($writer.length,1)),hash}),{$$arity:2,$$s:this})}),0),self.$protected(),$def(self,"$with",(function $Map_with$6(){var block=$Map_with$6.$$p||nil;return delete $Map_with$6.$$p,$send(this.$dup(),"tap",[],block.$to_proc())}),0),$def(self,"$update_expression",(function(expression_l){return this.expression=expression_l}),1)}([$module($base,"Source")].concat($parent_nesting)[0])}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/operator"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Operator");return self.$attr_reader("operator"),$def(self,"$initialize",(function $$initialize(operator,expression){return delete $$initialize.$$p,this.operator=operator,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression],null)}),2)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/collection"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Collection");return self.$attr_reader("begin"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),3)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/constant"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("attr_reader,with,update_operator,protected"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Constant");return self.$attr_reader("double_colon"),self.$attr_reader("name"),self.$attr_reader("operator"),$def(self,"$initialize",(function $$initialize(double_colon,name,expression){var $a;return delete $$initialize.$$p,$a=[double_colon,name],this.double_colon=$a[0],this.name=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression],null)}),3),$def(self,"$with_operator",(function(operator_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_operator(operator_l)}),1)}),1),self.$protected(),$def(self,"$update_operator",(function(operator_l){return this.operator=operator_l}),1)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/variable"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("attr_reader,with,update_operator,protected"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Variable");return self.$attr_reader("name"),self.$attr_reader("operator"),$def(self,"$initialize",(function $$initialize(name_l,expression_l){return delete $$initialize.$$p,null==expression_l&&(expression_l=name_l),this.name=name_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),-2),$def(self,"$with_operator",(function(operator_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_operator(operator_l)}),1)}),1),self.$protected(),$def(self,"$update_operator",(function(operator_l){return this.operator=operator_l}),1)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/keyword"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Keyword");return self.$attr_reader("keyword"),self.$attr_reader("begin"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(keyword_l,begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,this.keyword=keyword_l,$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),4)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/definition"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader,join"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Definition"),$proto=self.$$prototype;return $proto.keyword=$proto.end=nil,self.$attr_reader("keyword"),self.$attr_reader("operator"),self.$attr_reader("name"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(keyword_l,operator_l,name_l,end_l){return delete $$initialize.$$p,this.keyword=keyword_l,this.operator=operator_l,this.name=name_l,this.end=end_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[this.keyword.$join(this.end)],null)}),4)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/method_definition"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("attr_reader,join"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"MethodDefinition");return self.$$prototype.keyword=nil,self.$attr_reader("keyword"),self.$attr_reader("operator"),self.$attr_reader("name"),self.$attr_reader("end"),self.$attr_reader("assignment"),$def(self,"$initialize",(function $$initialize(keyword_l,operator_l,name_l,end_l,assignment_l,body_l){var $ret_or_1;return delete $$initialize.$$p,this.keyword=keyword_l,this.operator=operator_l,this.name=name_l,this.end=end_l,this.assignment=assignment_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[this.keyword.$join($truthy($ret_or_1=end_l)?$ret_or_1:body_l)],null)}),6)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/send"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("attr_reader,with,update_operator,protected"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Send");return self.$attr_reader("dot"),self.$attr_reader("selector"),self.$attr_reader("operator"),self.$attr_reader("begin"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(dot_l,selector_l,begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,this.dot=dot_l,this.selector=selector_l,$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),5),$def(self,"$with_operator",(function(operator_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_operator(operator_l)}),1)}),1),self.$protected(),$def(self,"$update_operator",(function(operator_l){return this.operator=operator_l}),1)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/index"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("attr_reader,with,update_operator,protected"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Index");return self.$attr_reader("begin"),self.$attr_reader("end"),self.$attr_reader("operator"),$def(self,"$initialize",(function $$initialize(begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],this.operator=nil,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),3),$def(self,"$with_operator",(function(operator_l){return $send(this,"with",[],(function(map){return null==map&&(map=nil),map.$update_operator(operator_l)}),1)}),1),self.$protected(),$def(self,"$update_operator",(function(operator_l){return this.operator=operator_l}),1)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/condition"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Condition");return self.$attr_reader("keyword"),self.$attr_reader("begin"),self.$attr_reader("else"),self.$attr_reader("end"),$def(self,"$initialize",(function $$initialize(keyword_l,begin_l,else_l,end_l,expression_l){var $a;return delete $$initialize.$$p,this.keyword=keyword_l,$a=[begin_l,else_l,end_l],this.begin=$a[0],this.else=$a[1],this.end=$a[2],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),5)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/ternary"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Ternary");return self.$attr_reader("question"),self.$attr_reader("colon"),$def(self,"$initialize",(function $$initialize(question_l,colon_l,expression_l){var $a;return delete $$initialize.$$p,$a=[question_l,colon_l],this.question=$a[0],this.colon=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),3)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/for"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"For");return self.$attr_reader("keyword","in"),self.$attr_reader("begin","end"),$def(self,"$initialize",(function $$initialize(keyword_l,in_l,begin_l,end_l,expression_l){var $a;return delete $$initialize.$$p,$a=[keyword_l,in_l],this.keyword=$a[0],this.in=$a[1],$a=[begin_l,end_l],this.begin=$a[0],this.end=$a[1],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),5)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/rescue_body"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"RescueBody");return self.$attr_reader("keyword"),self.$attr_reader("assoc"),self.$attr_reader("begin"),$def(self,"$initialize",(function $$initialize(keyword_l,assoc_l,begin_l,expression_l){return delete $$initialize.$$p,this.keyword=keyword_l,this.assoc=assoc_l,this.begin=begin_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),4)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/heredoc"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Heredoc");return self.$attr_reader("heredoc_body"),self.$attr_reader("heredoc_end"),$def(self,"$initialize",(function $$initialize(begin_l,body_l,end_l){return delete $$initialize.$$p,this.heredoc_body=body_l,this.heredoc_end=end_l,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[begin_l],null)}),3)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/source/map/objc_kwarg"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Source")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ObjcKwarg");return self.$attr_reader("keyword"),self.$attr_reader("operator"),self.$attr_reader("argument"),$def(self,"$initialize",(function $$initialize(keyword_l,operator_l,argument_l,expression_l){var $a;return delete $$initialize.$$p,$a=[keyword_l,operator_l,argument_l],this.keyword=$a[0],this.operator=$a[1],this.argument=$a[2],$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[expression_l],null)}),4)}($$("Map"),$$("Map"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["parser/syntax_error"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def;return Opal.add_stubs("attr_reader,message"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"SyntaxError");return self.$attr_reader("diagnostic"),$def(self,"$initialize",(function $$initialize(diagnostic){return delete $$initialize.$$p,this.diagnostic=diagnostic,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[diagnostic.$message()],null)}),1)}($nesting[0],$$("StandardError"))}($nesting[0],$nesting)},Opal.modules["parser/clobbering_error"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass;return function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return $klass($nesting[0],$$("RuntimeError"),"ClobberingError"),nil}($nesting[0],$nesting)},Opal.modules["parser/diagnostic"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$truthy=Opal.truthy,$hash2=Opal.hash2,$def=Opal.def,$eqeq=Opal.eqeq,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$to_ary=Opal.to_ary,$rb_gt=Opal.rb_gt,$rb_times=Opal.rb_times,$send=Opal.send,$to_a=Opal.to_a,$rb_ge=Opal.rb_ge,$not=Opal.not,$neqeq=Opal.neqeq;return Opal.add_stubs("freeze,attr_reader,include?,raise,join,inspect,dup,compile,is?,==,line,last_line,+,message,render_line,first_line_only,last_line_only,-,source_buffer,decompose_position,end_pos,>,private,source_line,*,length,each,line_range,intersect,column_range,size,[]=,>=,!,map,name,!=,resize,=~,source,adjust"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Diagnostic"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.reason=$proto.arguments=$proto.location=$proto.level=$proto.highlights=nil,$const_set($nesting[0],"LEVELS",["note","warning","error","fatal"].$freeze()),self.$attr_reader("level","reason","arguments"),self.$attr_reader("location","highlights"),$def(self,"$initialize",(function(level,reason,arguments$,location,highlights){var $ret_or_1;return null==highlights&&(highlights=[]),$truthy($$("LEVELS")["$include?"](level))||this.$raise($$("ArgumentError"),"Diagnostic#level must be one of "+$$("LEVELS").$join(", ")+"; "+level.$inspect()+" provided."),$truthy(location)||this.$raise("Expected a location"),this.level=level,this.reason=reason,this.arguments=($truthy($ret_or_1=arguments$)?$ret_or_1:$hash2([],{})).$dup().$freeze(),this.location=location,this.highlights=highlights.$dup().$freeze(),this.$freeze()}),-5),$def(self,"$message",(function(){return $$("Messages").$compile(this.reason,this.arguments)}),0),$def(self,"$render",(function(){var $a,$b,first_line=nil,last_line=nil,num_lines=nil,last_lineno=nil,last_column=nil;return $eqeq(this.location.$line(),this.location.$last_line())||$truthy(this.location["$is?"]("\n"))?$rb_plus([this.location+": "+this.level+": "+this.$message()],this.$render_line(this.location)):(first_line=this.$first_line_only(this.location),last_line=this.$last_line_only(this.location),num_lines=$rb_plus($rb_minus(this.location.$last_line(),this.location.$line()),1),$b=this.location.$source_buffer().$decompose_position(this.location.$end_pos()),last_lineno=null==($a=$to_ary($b))[0]?nil:$a[0],last_column=null==$a[1]?nil:$a[1],$rb_plus($rb_plus([this.location+"-"+last_lineno+":"+last_column+": "+this.level+": "+this.$message()],this.$render_line(first_line,$rb_gt(num_lines,2),!1)),this.$render_line(last_line,!1,!0)))}),0),self.$private(),$def(self,"$render_line",(function(range,ellipsis,range_end){var source_line=nil,highlight_line=nil,$writer=nil;return null==ellipsis&&(ellipsis=!1),null==range_end&&(range_end=!1),source_line=range.$source_line(),highlight_line=$rb_times(" ",source_line.$length()),$send(this.highlights,"each",[],(function(highlight){var line_range,$writer=nil;return null==highlight&&(highlight=nil),line_range=range.$source_buffer().$line_range(range.$line()),$truthy(highlight=highlight.$intersect(line_range))?($writer=[highlight.$column_range(),$rb_times("~",highlight.$size())],$send(highlight_line,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),1),$truthy(range["$is?"]("\n"))?highlight_line=$rb_plus(highlight_line,"^"):$not(range_end)&&$truthy($rb_ge(range.$size(),1))?($writer=[range.$column_range(),$rb_plus("^",$rb_times("~",$rb_minus(range.$size(),1)))],$send(highlight_line,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):($writer=[range.$column_range(),$rb_times("~",range.$size())],$send(highlight_line,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(ellipsis)&&(highlight_line=$rb_plus(highlight_line,"...")),$send([source_line,highlight_line],"map",[],(function(line){return null==line&&(line=nil),range.$source_buffer().$name()+":"+range.$line()+": "+line}),1)}),-2),$def(self,"$first_line_only",(function(range){return $neqeq(range.$line(),range.$last_line())?range.$resize(range.$source()["$=~"](/\n/)):range}),1),$def(self,"$last_line_only",(function(range){return $neqeq(range.$line(),range.$last_line())?range.$adjust($hash2(["begin_pos"],{begin_pos:range.$source()["$=~"](/[^\n]*$/)})):range}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/diagnostic/engine"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy;return Opal.add_stubs("attr_accessor,ignore?,call,raise?,raise,protected,==,level"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Engine"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.consumer=$proto.ignore_warnings=$proto.all_errors_are_fatal=nil,self.$attr_accessor("consumer"),self.$attr_accessor("all_errors_are_fatal"),self.$attr_accessor("ignore_warnings"),$def(self,"$initialize",(function(consumer){return null==consumer&&(consumer=nil),this.consumer=consumer,this.all_errors_are_fatal=!1,this.ignore_warnings=!1}),-1),$def(self,"$process",(function(diagnostic){return $truthy(this["$ignore?"](diagnostic))||$truthy(this.consumer)&&this.consumer.$call(diagnostic),$truthy(this["$raise?"](diagnostic))&&this.$raise($$$($$("Parser"),"SyntaxError"),diagnostic),this}),1),self.$protected(),$def(self,"$ignore?",(function(diagnostic){var $ret_or_1;return $truthy($ret_or_1=this.ignore_warnings)?diagnostic.$level()["$=="]("warning"):$ret_or_1}),1),$def(self,"$raise?",(function(diagnostic){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.all_errors_are_fatal)?diagnostic.$level()["$=="]("error"):$ret_or_2)?$ret_or_1:diagnostic.$level()["$=="]("fatal")}),1)}(Opal.$r($nesting)("Diagnostic"),0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/static_environment"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def;return Opal.add_stubs("reset,[],push,dup,pop,add,to_sym,include?,declare,declared?,empty?"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"StaticEnvironment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.stack=$proto.variables=nil,$const_set($nesting[0],"FORWARD_ARGS","FORWARD_ARGS"),$const_set($nesting[0],"ANONYMOUS_BLOCKARG","ANONYMOUS_BLOCKARG"),$def(self,"$initialize",(function(){return this.$reset()}),0),$def(self,"$reset",(function(){return this.variables=$$("Set")["$[]"](),this.stack=[]}),0),$def(self,"$extend_static",(function(){return this.stack.$push(this.variables),this.variables=$$("Set")["$[]"](),this}),0),$def(self,"$extend_dynamic",(function(){return this.stack.$push(this.variables),this.variables=this.variables.$dup(),this}),0),$def(self,"$unextend",(function(){return this.variables=this.stack.$pop(),this}),0),$def(self,"$declare",(function(name){return this.variables.$add(name.$to_sym()),this}),1),$def(self,"$declared?",(function(name){return this.variables["$include?"](name.$to_sym())}),1),$def(self,"$declare_forward_args",(function(){return this.$declare($$("FORWARD_ARGS"))}),0),$def(self,"$declared_forward_args?",(function(){return this["$declared?"]($$("FORWARD_ARGS"))}),0),$def(self,"$declare_anonymous_blockarg",(function(){return this.$declare($$("ANONYMOUS_BLOCKARG"))}),0),$def(self,"$declared_anonymous_blockarg?",(function(){return this["$declared?"]($$("ANONYMOUS_BLOCKARG"))}),0),$def(self,"$empty?",(function(){return this.stack["$empty?"]()}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$const_set=Opal.const_set,$hash=Opal.hash,$def=Opal.def,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$hash2=Opal.hash2,$rb_plus=Opal.rb_plus,$to_ary=Opal.to_ary,$rb_le=Opal.rb_le,$eqeqeq=Opal.eqeqeq,$rb_gt=Opal.rb_gt,$neqeq=Opal.neqeq,$not=Opal.not,$rb_ge=Opal.rb_ge,$range=Opal.range,$rb_lt=Opal.rb_lt,$gvars=Opal.gvars;return Opal.add_stubs("attr_accessor,private,_lex_trans_keys=,-,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_interp_words=,lex_en_interp_string=,lex_en_plain_words=,lex_en_plain_string=,lex_en_interp_backslash_delimited=,lex_en_plain_backslash_delimited=,lex_en_interp_backslash_delimited_words=,lex_en_plain_backslash_delimited_words=,lex_en_regexp_modifiers=,lex_en_expr_variable=,lex_en_expr_fname=,lex_en_expr_endfn=,lex_en_expr_dot=,lex_en_expr_arg=,lex_en_expr_cmdarg=,lex_en_expr_endarg=,lex_en_expr_mid=,lex_en_expr_beg=,lex_en_expr_labelarg=,lex_en_expr_value=,lex_en_expr_end=,lex_en_leading_dot=,lex_en_line_comment=,lex_en_line_begin=,freeze,ord,union,chars,attr_reader,reset,lex_en_line_begin,class,new,source,==,encoding,unpack,[],lex_en_expr_dot,lex_en_expr_fname,lex_en_expr_value,lex_en_expr_beg,lex_en_expr_mid,lex_en_expr_arg,lex_en_expr_cmdarg,lex_en_expr_end,lex_en_expr_endarg,lex_en_expr_endfn,lex_en_expr_labelarg,lex_en_interp_string,lex_en_interp_words,lex_en_plain_string,fetch,invert,push,count,pop,any?,shift,send,+,size,<=,===,<<,>,!=,emit_comment,tok,literal,flush_string,extend_content,emit,heredoc?,saved_herebody_s=,start_interp_brace,[]=,diagnostic,range,str_s,gsub,version?,nest_and_try_closing,heredoc_e,pop_literal,infer_indent_level,!,eof_codepoint?,words?,extend_space,extend_string,active?,>=,slice,start_with?,chr,munge_escape?,match,regexp?,squiggly_heredoc?,supports_line_continuation_via_slash?,include?,scan,join,=~,to_i,stack_pop,emit_table,push_literal,in_argdef,arg_or_cmdarg,<,emit_do,declared?,nil?,last,getbyte,inspect,end_with?,empty?,index,call,Float,to_f,length,lambda,Rational,Complex,each,encode_escape,%,in_kwarg,end_interp_brace_and_try_closing,lexpop,saved_herebody_s,next_state_for_literal,rstrip,&,|,lex_error,protected,force_encoding,process,backslash_delimited?,interpolate?,lex_en_interp_backslash_delimited_words,lex_en_plain_backslash_delimited_words,lex_en_plain_words,lex_en_interp_backslash_delimited,lex_en_plain_backslash_delimited,dedent_level,type,lex_en_regexp_modifiers,upcase"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Lexer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$writer=nil,$proto=self.$$prototype;return $proto.source_buffer=$proto.source_pts=$proto.cs=$proto.cmdarg_stack=$proto.cmdarg=$proto.cond_stack=$proto.cond=$proto.dedent_level=$proto.token_queue=$proto.p=$proto.command_start=$proto.herebody_s=$proto.sharp_s=$proto.ts=$proto.te=$proto.top=$proto.stack=$proto.version=$proto.escape_s=$proto.escape=$proto.act=$proto.context=$proto.static_env=$proto.newline_s=$proto.lambda_stack=$proto.paren_nest=$proto.num_digits_s=$proto.num_suffix_s=$proto.num_base=$proto.num_xfrm=$proto.eq_begin_s=$proto.cs_before_block_comment=$proto.tokens=$proto.comments=$proto.diagnostics=$proto.literal_stack=nil,function(self,$parent_nesting){self.$attr_accessor("_lex_trans_keys"),self.$private("_lex_trans_keys","_lex_trans_keys=")}(Opal.get_singleton_class(self)),$send(self,"_lex_trans_keys=",$to_a($writer=[[0,0,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,46,46,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,127,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0,92,9,32,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,48,57,0,127,0,26,0,35,9,32,36,123,0,127,48,57,0,127,0,32,9,32,65,122,65,122,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,46,46,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,0,127,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,10,10,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,122,0,0,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,46,46,46,46,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_key_spans"),self.$private("_lex_key_spans","_lex_key_spans=")}(Opal.get_singleton_class(self)),$send(self,"_lex_key_spans=",$to_a($writer=[[0,1,1,1,1,1,1,1,1,1,27,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,128,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,96,24,0,1,1,1,24,1,1,93,24,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,24,27,93,27,36,88,128,10,128,27,36,24,88,128,10,128,33,24,58,58,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,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,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,128,128,128,128,128,1,128,128,24,1,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,128,24,0,20,1,84,84,84,1,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,123,0,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,55,0,128,128,128,0,1,0,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,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,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,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,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,84,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,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,0,64,0,84,84,84,1,1,1,1,1,52,1,92,101,91,1]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_index_offsets"),self.$private("_lex_index_offsets","_lex_index_offsets=")}(Opal.get_singleton_class(self)),$send(self,"_lex_index_offsets=",$to_a($writer=[[0,0,2,4,6,8,10,12,14,16,18,46,175,304,433,562,609,731,853,947,1069,1191,1238,1360,1482,1516,1518,1612,1734,1838,1967,2096,2225,2354,2401,2523,2645,2739,2861,2983,3030,3152,3274,3308,3310,3404,3526,3630,3759,3888,4017,4146,4275,4404,4533,4662,4791,4920,5049,5178,5307,5436,5565,5567,5569,5571,5700,5702,5704,5706,5708,5837,5966,6095,6224,6353,6482,6611,6740,6869,6998,7127,7256,7385,7514,7643,7772,7901,8030,8032,8034,8036,8038,8048,8050,8052,8054,8056,8058,8060,8062,8064,8193,8195,8324,8409,8411,8496,8498,8500,8502,8504,8506,8508,8637,8639,8724,8809,8894,8979,9064,9066,9195,9324,9391,9393,9522,9651,9653,9655,9657,9659,9788,9876,9878,9925,10047,10169,10263,10385,10507,10554,10676,10798,10832,10834,10928,11050,11154,11283,11412,11541,11670,11799,11928,11930,11932,12061,12077,12088,12099,12110,12121,12123,12125,12127,12129,12131,12133,12135,12264,12266,12351,12436,12521,12606,12691,12776,12778,12780,12865,12950,12952,12954,12956,12958,12960,13057,13082,13083,13085,13087,13089,13114,13116,13118,13212,13237,13326,13455,13466,13595,13717,13718,13719,13728,13737,13738,13739,13833,13834,13835,13836,13930,13932,13933,13934,13935,14029,14085,14141,14142,14198,14254,14255,14302,14396,14490,14491,14492,14586,14642,14698,14699,14746,14748,14842,14919,14975,15031,15087,15088,15215,15342,15343,15470,15471,15598,15725,15852,15979,15980,16107,16234,16361,16488,16615,16742,16743,16744,16800,16801,16895,16984,17113,17124,17253,17375,17376,17377,17386,17395,17396,17397,17491,17492,17493,17494,17588,17590,17591,17592,17593,17687,17743,17799,17800,17856,17912,17913,17960,18054,18148,18149,18150,18244,18300,18356,18357,18404,18406,18500,18577,18633,18689,18745,18746,18873,19e3,19001,19128,19129,19256,19383,19510,19637,19638,19765,19892,20019,20146,20273,20400,20401,20402,20458,20459,20553,20578,20606,20700,20728,20765,20854,20983,20994,21123,21151,21188,21213,21302,21431,21442,21571,21605,21630,21689,21748,21778,21907,21918,22047,22176,22305,22434,22459,22460,22527,22529,22531,22660,22789,22800,22802,22804,22806,22808,22810,22813,22815,22882,22884,22887,23016,23145,23274,23403,23532,23661,23790,23792,23794,23923,24052,24181,24310,24439,24568,24697,24826,24955,25084,25213,25342,25471,25600,25729,25858,25987,26116,26245,26374,26503,26632,26761,26890,27019,27148,27277,27406,27535,27664,27793,27922,28051,28180,28309,28438,28567,28696,28825,28954,29083,29212,29341,29470,29599,29728,29857,29986,30115,30244,30373,30502,30631,30760,30889,31018,31147,31276,31405,31534,31663,31792,31921,32050,32179,32308,32437,32566,32695,32824,32953,33082,33211,33340,33469,33598,33727,33856,33985,34114,34243,34372,34501,34503,34632,34761,34786,34788,34790,34792,34794,34795,34924,35053,35055,35056,35081,35082,35149,35151,35153,35155,35157,35159,35162,35164,35231,35233,35236,35365,35367,35369,35371,35499,35628,35691,35745,35799,35800,35854,35909,35911,35913,35915,35940,35941,36070,36071,36188,36189,36191,36193,36194,36248,36250,36252,36254,36279,36281,36410,36412,36414,36416,36418,36547,36676,36805,36806,36935,36937,37062,37087,37089,37091,37093,37094,37096,37097,37226,37355,37380,37381,37383,37385,37387,37388,37517,37646,37775,37904,38033,38162,38291,38420,38549,38678,38807,38936,39065,39194,39323,39452,39581,39710,39715,39716,39783,39785,39786,39787,39788,39813,39815,39840,39907,39909,39911,40040,40065,40066,40087,40089,40174,40259,40344,40346,40348,40350,40378,40507,40636,40638,40639,40706,40709,40710,40711,40712,40713,40780,40909,40920,40922,40924,40926,40929,40931,40933,40936,41065,41076,41205,41207,41209,41212,41213,41239,41270,41272,41274,41341,41344,41468,41469,41598,41727,41849,41850,41851,41860,41869,41870,41871,41965,41966,41967,41968,42062,42064,42065,42066,42067,42161,42217,42273,42274,42330,42386,42387,42434,42528,42622,42623,42624,42718,42774,42830,42831,42878,42880,42974,43051,43107,43163,43219,43220,43347,43474,43475,43602,43603,43730,43857,43984,44111,44112,44239,44366,44493,44620,44747,44874,45001,45128,45255,45382,45509,45636,45763,45890,46017,46144,46271,46398,46525,46526,46527,46583,46584,46713,46842,46971,46972,46974,46975,47104,47233,47362,47491,47620,47749,47878,48007,48136,48265,48394,48523,48652,48781,48910,49039,49168,49297,49426,49555,49684,49813,49942,50071,50200,50329,50458,50587,50716,50845,50974,51103,51232,51361,51490,51619,51748,51877,52006,52135,52264,52393,52522,52651,52780,52909,53038,53167,53296,53425,53554,53683,53812,53941,54070,54199,54328,54457,54586,54715,54844,54911,55040,55169,55298,55427,55556,55685,55814,55943,56072,56201,56330,56459,56588,56717,56846,56975,57104,57233,57362,57491,57620,57749,57878,58007,58136,58137,58202,58296,58321,58322,58324,58326,58328,58329,58458,58587,58612,58613,58615,58617,58619,58620,58749,58878,58880,58881,58906,58907,58974,58976,58978,59107,59236,59247,59249,59274,59275,59276,59297,59300,59313,59315,59317,59372,59421,59497,59565,59581,59640,59642,59643,59649,59650,59651,59719,59787,59855,59923,59934,59936,59937,59943,59945,59946,59947,60015,60083,60151,60219,60287,60355,60423,60491,60561,60629,60699,60767,60769,60772,60774,60841,60843,60846,60975,61104,61105,61234,61363,61492,61621,61750,61879,61880,61882,61883,61884,62013,62142,62271,62400,62529,62658,62787,62916,63045,63174,63303,63432,63561,63690,63819,63948,64077,64206,64335,64464,64593,64722,64851,64980,65109,65238,65367,65496,65625,65754,65883,66012,66141,66270,66399,66528,66657,66742,66871,67e3,67129,67258,67387,67516,67645,67774,67903,68032,68161,68290,68419,68548,68677,68806,68935,69064,69193,69322,69451,69580,69709,69838,69967,70096,70225,70354,70483,70612,70741,70870,70999,71128,71257,71386,71515,71644,71773,71902,72031,72160,72289,72418,72547,72676,72805,72934,73063,73192,73321,73450,73579,73708,73837,73966,74095,74224,74353,74482,74611,74740,74869,74998,75127,75128,75193,75194,75279,75364,75449,75451,75453,75455,75457,75459,75512,75514,75607,75709,75801]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_indicies"),self.$private("_lex_indicies","_lex_indicies=")}(Opal.get_singleton_class(self)),$send(self,"_lex_indicies=",$to_a($writer=[[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,0,0,10,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,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,14,14,12,14,12,14,14,12,12,14,14,14,15,14,14,16,16,16,16,16,16,16,16,16,16,14,14,14,14,14,14,14,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,12,14,12,12,13,14,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,12,12,12,14,12,13,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,14,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,14,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,18,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,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,12,12,12,12,12,13,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,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,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,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,12,12,12,12,12,13,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,20,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,24,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,22,22,22,22,22,22,22,22,25,22,19,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,26,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,22,22,22,22,22,22,22,22,25,22,19,27,27,27,19,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,19,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,19,30,30,30,19,30,30,30,30,30,31,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,32,30,19,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,19,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,32,30,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,33,20,19,34,34,34,19,34,34,34,34,34,35,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,19,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,34,36,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,37,34,34,34,34,34,34,38,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,39,34,19,34,34,34,19,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,19,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,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,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,39,34,40,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,41,19,41,19,19,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,44,42,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,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,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,26,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,22,22,22,22,22,22,22,22,25,22,19,45,45,45,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,19,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,45,45,45,45,45,45,45,46,46,46,46,46,46,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,46,46,46,46,46,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,47,49,47,49,49,47,47,49,49,49,50,49,49,51,51,51,51,51,51,51,51,51,51,49,49,49,49,49,49,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,49,47,47,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,49,47,48,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,49,49,49,49,49,49,49,49,47,47,47,47,47,47,47,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,47,47,47,47,49,47,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,47,47,47,47,47,49,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,52,52,52,52,52,52,52,52,52,52,47,47,47,47,47,47,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,52,52,52,52,52,52,52,52,52,52,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,55,54,57,57,57,54,57,57,57,57,57,58,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,59,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,61,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,62,62,62,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,54,65,65,65,54,65,65,65,65,65,66,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,67,65,54,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,54,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,67,65,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,68,55,54,69,69,69,54,69,69,69,69,69,70,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,71,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,72,69,69,69,69,69,69,73,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,69,54,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,54,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,74,69,75,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,76,54,76,54,54,77,77,77,54,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,54,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,79,77,54,57,57,57,54,57,57,57,57,57,58,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,54,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,61,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,54,80,80,80,54,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,54,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,80,80,80,80,80,80,80,81,81,81,81,81,81,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,80,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,82,84,82,84,84,82,82,84,84,84,85,84,84,86,86,86,86,86,86,86,86,86,86,84,84,84,84,84,84,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,84,82,82,83,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,84,82,83,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,84,84,84,84,84,84,84,84,82,82,82,82,82,82,82,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,82,82,82,82,84,82,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,82,82,82,82,82,84,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,87,87,87,87,87,87,87,87,87,87,82,82,82,82,82,82,88,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,87,87,87,87,87,87,87,87,87,87,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,91,91,89,91,89,91,91,89,89,91,91,91,92,91,91,93,93,93,93,93,93,93,93,93,93,91,91,91,91,91,91,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,91,89,89,90,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,91,89,90,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,91,91,91,91,91,91,91,91,91,91,89,89,89,89,89,89,89,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,89,89,89,89,91,89,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,89,89,89,89,89,91,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,94,94,94,94,94,94,94,94,94,94,89,89,89,89,89,89,95,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,90,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,89,90,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,94,94,94,94,94,94,94,94,94,94,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,90,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,89,89,89,89,89,90,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97,98,97,98,97,97,98,98,97,97,97,99,97,97,100,100,100,100,100,100,100,100,100,100,97,97,97,97,97,97,97,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,97,98,98,96,97,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,98,98,98,97,98,96,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,97,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,97,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,101,101,101,101,101,101,101,101,101,101,98,98,98,98,98,98,102,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,98,98,98,98,101,98,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,98,98,98,98,98,101,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,103,103,103,103,103,103,103,103,103,103,98,98,98,98,98,98,98,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,98,98,98,98,103,98,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,98,98,98,98,98,103,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,104,104,104,104,105,104,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,104,104,104,104,104,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,107,107,107,106,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,110,108,108,108,108,108,108,108,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109,109,111,108,108,108,108,110,108,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,108,108,108,108,109,108,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,108,108,108,108,108,109,111,108,108,112,113,108,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,116,114,114,114,114,114,114,114,114,114,114,114,114,114,114,115,115,115,115,115,115,115,115,115,115,117,114,114,114,114,116,114,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,114,114,114,114,115,114,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,114,114,114,114,114,115,117,114,119,118,120,118,121,118,118,118,118,118,118,118,118,118,118,123,118,123,123,123,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,123,118,118,118,118,124,125,118,126,118,127,128,129,130,131,124,118,118,118,118,118,118,118,118,118,118,132,118,133,129,134,135,118,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,136,137,129,138,122,118,122,122,122,122,122,122,122,122,139,122,122,122,122,122,122,122,122,140,122,122,141,122,142,122,122,122,143,144,118,138,118,122,118,118,118,118,118,118,118,118,118,145,118,145,145,145,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,145,118,118,118,118,146,147,118,148,118,149,150,151,152,153,146,118,118,118,118,118,118,118,118,118,118,154,118,155,151,156,157,118,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,158,159,151,120,115,118,115,115,115,115,115,115,115,115,160,115,115,115,115,115,115,115,115,161,115,115,162,115,163,115,115,115,164,165,118,120,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,167,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,168,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,169,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,170,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,171,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,173,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,174,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,175,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,166,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,176,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,166,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,177,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,178,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,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,116,118,118,118,118,118,118,118,118,118,118,118,118,118,118,115,115,115,115,115,115,115,115,115,115,117,118,118,118,118,116,118,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,118,118,118,118,115,118,115,115,115,115,115,115,115,115,115,115,115,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,118,118,118,118,118,115,180,179,181,179,182,179,151,179,183,179,179,179,179,179,179,179,184,179,185,179,186,179,151,179,187,179,151,179,188,179,182,179,190,189,191,191,191,191,191,191,191,191,191,193,191,193,193,193,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,193,191,191,191,191,191,191,191,194,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,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,191,195,191,191,192,191,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,191,191,191,191,191,192,197,191,191,191,191,191,191,191,191,191,191,199,191,199,199,199,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,199,191,191,191,191,191,191,191,200,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,191,201,191,191,198,191,198,198,198,202,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,191,191,191,191,191,198,204,203,204,204,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,204,203,203,203,203,203,203,203,205,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,203,203,203,203,203,203,203,203,203,203,203,203,206,203,207,203,208,203,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,203,203,203,203,203,203,203,209,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,203,203,203,203,203,203,203,203,203,203,203,203,210,203,211,212,214,213,215,213,216,213,217,213,218,213,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,220,220,220,220,220,220,220,220,220,220,220,220,220,219,219,219,219,219,219,219,219,219,219,220,220,220,220,220,220,220,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,220,220,220,220,220,220,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,220,220,220,220,220,219,221,211,222,223,222,222,222,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,222,211,211,224,211,211,211,211,211,211,211,211,211,211,211,211,225,225,225,225,225,225,225,225,225,225,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,226,211,227,228,227,227,227,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,227,211,211,229,211,211,211,211,211,211,211,211,211,211,211,211,230,230,230,230,230,230,230,230,230,230,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,231,211,233,234,233,233,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,235,232,232,232,232,232,232,232,232,232,232,232,232,236,236,236,236,236,236,236,236,236,236,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,237,232,239,240,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,239,244,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,223,211,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,247,245,247,245,247,247,245,245,247,247,247,248,247,247,249,249,249,249,249,249,249,249,249,249,247,247,247,247,247,247,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,247,245,245,246,247,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,245,245,245,247,245,246,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,247,247,247,247,247,247,247,247,247,245,245,245,245,245,245,245,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,245,245,245,245,247,245,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,245,245,245,245,245,247,250,247,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,247,245,250,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,252,245,245,245,245,253,245,245,245,245,245,254,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,221,245,245,245,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,245,245,245,245,251,255,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,245,245,245,254,245,251,257,257,257,257,257,257,257,257,257,257,258,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,256,256,256,256,256,256,256,256,256,256,257,257,257,257,257,257,257,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,257,257,257,257,256,257,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,257,257,257,257,257,256,260,259,263,262,258,257,263,264,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,252,245,245,245,245,253,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,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,245,245,245,245,251,255,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,245,245,245,245,245,251,266,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,263,265,263,266,267,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,268,267,270,270,270,267,270,270,270,270,270,271,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,272,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,274,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,275,275,275,267,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,267,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,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,277,275,267,278,278,278,267,278,278,278,278,278,279,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,267,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,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,278,278,278,278,278,278,278,278,278,278,278,280,278,267,278,278,278,267,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,267,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,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,278,278,278,278,278,278,278,278,278,278,278,280,278,267,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,267,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,281,268,267,282,282,282,267,282,282,282,282,282,283,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,284,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,285,282,282,282,282,282,282,286,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,287,282,267,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,267,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,287,282,288,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,289,267,289,267,267,290,290,290,267,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,267,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,292,290,267,270,270,270,267,270,270,270,270,270,271,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,267,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,274,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,270,273,270,267,293,293,293,267,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,267,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,294,294,294,294,293,293,293,293,293,293,293,294,294,294,294,294,294,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,293,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,295,295,295,295,295,295,295,295,295,295,297,211,211,298,211,296,211,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,211,211,211,211,295,211,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,211,211,211,211,211,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,299,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,295,295,300,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,295,295,295,295,295,295,295,295,295,295,301,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,296,245,245,245,245,245,245,245,245,245,245,245,245,245,245,295,295,295,295,295,295,295,295,295,295,297,245,245,298,245,296,245,295,295,295,301,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,245,245,245,245,295,245,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,245,245,245,245,245,295,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,304,302,302,302,302,302,302,302,302,302,302,302,302,302,302,303,303,303,303,303,303,303,303,303,303,305,302,302,302,302,304,302,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,302,302,302,302,303,302,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,302,302,302,302,302,303,305,302,302,306,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,307,307,307,307,307,307,307,307,307,307,308,308,308,308,308,308,308,308,308,308,307,307,307,307,307,307,307,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,308,307,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,308,310,309,310,309,309,311,311,311,311,311,311,311,311,311,311,309,311,311,311,311,311,311,311,311,311,311,309,312,312,312,312,312,312,312,312,312,312,309,314,314,314,314,314,314,314,314,314,314,313,315,315,315,315,315,315,315,315,315,315,313,317,316,318,316,319,316,320,316,322,321,323,321,324,321,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,307,307,307,307,307,307,307,307,307,307,325,325,325,325,325,325,325,325,325,325,307,307,307,307,307,307,307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,307,307,307,307,325,307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,307,307,307,307,307,325,326,313,327,328,327,327,327,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,327,313,313,329,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,330,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,331,313,332,333,332,332,332,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,332,313,313,334,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,335,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,336,313,338,339,338,338,338,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,338,337,337,340,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,341,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,342,337,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,347,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,344,350,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,347,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,351,313,328,313,353,354,353,353,353,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,353,352,352,355,352,352,356,352,352,352,352,352,352,352,357,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,358,352,360,354,360,360,360,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,360,359,359,355,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,358,359,363,362,365,364,366,361,367,361,368,352,370,369,369,369,370,369,369,369,369,371,372,371,371,371,369,369,369,369,369,369,369,369,369,369,369,369,370,369,369,369,369,369,371,369,369,373,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,374,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,375,369,369,376,369,371,377,371,371,371,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,371,377,378,379,380,381,382,384,383,386,387,386,386,386,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,385,372,383,388,383,390,389,389,389,390,389,389,389,389,391,392,391,391,391,389,389,389,389,389,389,389,389,389,389,389,389,390,389,389,389,389,389,391,389,389,393,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,394,389,391,395,391,391,391,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,391,395,397,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,398,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,396,399,396,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,13,13,13,13,13,13,13,13,13,13,400,400,400,400,400,400,400,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,400,400,400,400,13,400,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,400,400,400,400,400,13,16,16,16,16,16,16,16,16,16,16,400,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,13,13,13,13,13,13,13,13,13,13,401,401,401,401,401,401,401,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,401,401,401,401,17,401,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,401,401,401,401,401,17,404,403,403,403,404,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,404,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,405,405,405,405,405,405,405,405,403,403,403,403,403,403,403,403,403,403,403,406,403,403,403,403,403,403,403,403,403,407,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,408,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,403,409,403,403,410,403,411,412,414,414,414,414,414,414,414,414,413,415,415,415,415,415,415,415,415,413,413,416,416,42,42,42,416,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,416,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,417,42,418,419,420,420,42,42,42,420,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,420,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,421,42,41,420,422,423,424,424,27,27,27,424,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,424,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,425,27,426,426,426,426,426,426,426,426,426,426,424,424,424,424,424,424,424,426,426,426,426,426,426,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,426,426,426,426,426,426,424,428,428,428,428,428,428,428,428,428,428,427,427,427,427,427,427,427,428,428,428,428,428,428,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,428,428,428,428,428,428,427,427,429,429,429,429,429,429,429,429,429,429,420,420,420,420,420,420,420,429,429,429,429,429,429,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,429,429,429,429,429,429,420,431,431,431,431,431,431,431,431,431,431,430,430,430,430,430,430,430,431,431,431,431,431,431,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,430,431,431,431,431,431,431,430,430,420,20,20,20,420,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,420,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,432,20,416,27,27,27,416,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,416,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,416,433,433,433,416,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,416,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,434,433,435,436,436,433,433,433,436,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,436,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,433,437,433,438,438,438,438,438,438,438,438,438,438,436,436,436,436,436,436,436,438,438,438,438,438,438,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,438,438,438,438,438,438,436,440,440,440,440,440,440,440,440,440,440,439,439,439,439,439,439,439,440,440,440,440,440,440,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,440,440,440,440,440,440,439,439,436,20,20,20,436,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,436,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,432,20,441,436,436,27,27,27,436,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,436,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,29,27,443,443,443,443,443,443,443,443,443,443,442,442,442,442,442,442,442,443,443,443,443,443,443,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,443,443,443,443,443,443,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,444,442,445,445,445,445,445,445,445,445,445,445,442,442,442,442,442,442,442,445,445,445,445,445,445,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,445,445,445,445,445,445,442,446,446,446,446,446,446,446,446,446,446,442,442,442,442,442,442,442,446,446,446,446,446,446,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,446,446,446,446,446,446,442,447,447,447,447,447,447,447,447,447,447,442,442,442,442,442,442,442,447,447,447,447,447,447,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,447,447,447,447,447,447,442,448,451,450,450,450,451,450,450,450,450,452,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,451,450,450,450,450,450,452,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,453,453,453,453,453,453,453,453,453,453,450,450,450,450,450,450,450,453,453,453,453,453,453,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,453,453,453,453,453,453,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,454,450,451,450,450,450,451,450,450,450,450,449,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,451,450,450,450,450,450,449,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,455,455,455,455,455,455,455,455,455,455,450,450,450,450,450,450,450,455,455,455,455,455,455,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,455,455,455,455,455,455,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,456,450,449,451,455,455,455,451,455,455,455,455,449,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,451,455,455,455,455,455,449,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,455,449,455,457,451,458,458,458,451,458,458,458,458,452,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,452,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,453,453,453,453,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,449,458,451,458,458,458,451,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,455,455,455,455,455,455,455,455,455,455,458,458,458,458,458,458,458,455,455,455,455,455,455,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,455,455,455,455,455,455,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,460,460,460,460,460,460,460,460,460,460,458,458,458,458,458,458,458,460,460,460,460,460,460,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,460,460,460,460,460,460,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,453,453,453,453,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,453,453,453,453,453,453,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,462,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,463,463,463,463,463,463,463,463,463,463,458,458,458,458,458,458,458,463,463,463,463,463,463,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,463,463,463,463,463,463,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,464,464,464,464,464,464,464,464,464,464,458,458,458,458,458,458,458,464,464,464,464,464,464,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,464,464,464,464,464,464,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,465,465,465,465,465,465,465,465,465,465,458,458,458,458,458,458,458,465,465,465,465,465,465,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,465,465,465,465,465,465,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,466,466,466,466,466,466,466,466,466,466,458,458,458,458,458,458,458,466,466,466,466,466,466,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,466,466,466,466,466,466,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,459,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,467,467,467,467,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,461,458,451,458,458,458,451,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,451,458,458,458,458,458,449,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,467,467,467,467,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,467,467,467,467,467,467,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,449,458,468,469,471,471,471,471,471,471,471,471,471,471,470,470,470,470,470,470,470,471,471,471,471,471,471,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,471,471,471,471,471,471,470,470,473,472,472,472,473,472,472,472,472,472,474,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,473,472,472,472,472,472,472,472,472,475,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,476,472,478,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,479,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,480,477,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,48,48,48,48,48,48,48,48,48,48,481,481,481,481,481,481,481,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,481,481,481,481,48,481,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,481,481,481,481,481,48,51,51,51,51,51,51,51,51,51,51,481,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,48,48,48,48,48,48,48,48,48,48,482,482,482,482,482,482,482,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,482,482,482,482,52,482,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,482,482,482,482,482,52,485,484,484,484,485,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,485,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,486,486,486,486,486,486,486,486,484,484,484,484,484,484,484,484,484,484,484,487,484,484,484,484,484,484,484,484,484,488,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,489,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,490,484,484,491,484,492,493,495,495,495,495,495,495,495,495,494,496,496,496,496,496,496,496,496,494,494,497,497,77,77,77,497,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,497,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,498,77,499,500,501,501,77,77,77,501,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,501,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,502,77,76,501,503,504,505,505,62,62,62,505,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,505,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,506,62,507,507,507,507,507,507,507,507,507,507,505,505,505,505,505,505,505,507,507,507,507,507,507,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,507,507,507,507,507,507,505,509,509,509,509,509,509,509,509,509,509,508,508,508,508,508,508,508,509,509,509,509,509,509,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,509,509,509,509,509,509,508,508,510,510,510,510,510,510,510,510,510,510,501,501,501,501,501,501,501,510,510,510,510,510,510,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,501,510,510,510,510,510,510,501,512,512,512,512,512,512,512,512,512,512,511,511,511,511,511,511,511,512,512,512,512,512,512,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,512,512,512,512,512,512,511,511,501,55,55,55,501,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,501,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,513,55,497,62,62,62,497,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,497,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,497,514,514,514,497,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,497,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,515,514,516,517,517,514,514,514,517,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,517,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,518,514,519,519,519,519,519,519,519,519,519,519,517,517,517,517,517,517,517,519,519,519,519,519,519,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,519,519,519,519,519,519,517,521,521,521,521,521,521,521,521,521,521,520,520,520,520,520,520,520,521,521,521,521,521,521,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,521,521,521,521,521,521,520,520,517,55,55,55,517,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,517,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,513,55,522,517,517,62,62,62,517,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,517,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,524,524,524,524,524,524,524,524,524,524,523,523,523,523,523,523,523,524,524,524,524,524,524,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,524,524,524,524,524,524,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,525,523,526,526,526,526,526,526,526,526,526,526,523,523,523,523,523,523,523,526,526,526,526,526,526,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,526,526,526,526,526,526,523,527,527,527,527,527,527,527,527,527,527,523,523,523,523,523,523,523,527,527,527,527,527,527,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,527,527,527,527,527,527,523,528,528,528,528,528,528,528,528,528,528,523,523,523,523,523,523,523,528,528,528,528,528,528,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,528,528,528,528,528,528,523,529,532,531,531,531,532,531,531,531,531,533,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,532,531,531,531,531,531,533,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,534,534,534,534,534,534,534,534,534,534,531,531,531,531,531,531,531,534,534,534,534,534,534,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,534,534,534,534,534,534,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,535,531,532,531,531,531,532,531,531,531,531,530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,532,531,531,531,531,531,530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,536,536,536,536,536,536,536,536,536,536,531,531,531,531,531,531,531,536,536,536,536,536,536,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,536,536,536,536,536,536,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,537,531,530,532,536,536,536,532,536,536,536,536,530,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,532,536,536,536,536,536,530,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,530,536,538,532,539,539,539,532,539,539,539,539,533,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,533,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,534,534,534,534,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,530,539,532,539,539,539,532,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,536,536,536,536,536,536,536,536,536,536,539,539,539,539,539,539,539,536,536,536,536,536,536,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,536,536,536,536,536,536,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,541,541,541,541,541,541,541,541,541,539,539,539,539,539,539,539,541,541,541,541,541,541,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,541,541,541,541,541,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,534,534,534,534,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,534,534,534,534,534,534,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,543,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,544,544,544,544,544,544,544,544,544,544,539,539,539,539,539,539,539,544,544,544,544,544,544,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,544,544,544,544,544,544,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,545,545,545,545,545,545,545,545,545,545,539,539,539,539,539,539,539,545,545,545,545,545,545,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,545,545,545,545,545,545,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,546,546,546,546,546,546,546,546,546,546,539,539,539,539,539,539,539,546,546,546,546,546,546,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,546,546,546,546,546,546,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,547,547,547,547,547,547,547,547,547,547,539,539,539,539,539,539,539,547,547,547,547,547,547,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,547,547,547,547,547,547,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,548,548,548,548,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,542,539,532,539,539,539,532,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,532,539,539,539,539,539,530,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,548,548,548,548,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,548,548,548,548,548,548,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,530,539,549,550,552,552,552,552,552,552,552,552,552,552,551,551,551,551,551,551,551,552,552,552,552,552,552,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,552,552,552,552,552,552,551,551,554,553,553,553,554,553,553,553,553,555,556,555,555,555,553,553,553,553,553,553,553,553,553,553,553,553,554,553,553,553,553,553,555,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,557,553,555,558,555,555,555,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,555,558,559,560,560,560,559,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,559,560,562,561,561,561,562,561,561,561,561,561,563,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,562,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,564,561,565,566,566,566,565,566,566,566,566,566,567,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,565,566,569,568,568,568,569,568,568,568,568,568,570,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,569,568,568,568,568,568,568,568,568,571,568,573,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,574,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,575,572,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,83,83,83,83,83,83,83,83,83,83,576,576,576,576,576,576,576,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,576,576,576,576,83,576,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,576,576,576,576,576,83,86,86,86,86,86,86,86,86,86,86,576,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,83,83,83,83,83,83,83,83,83,83,577,577,577,577,577,577,577,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,577,577,577,577,87,577,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,577,577,577,577,577,87,579,578,578,578,579,578,578,578,578,578,580,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,579,578,582,581,581,581,582,581,581,581,581,583,584,583,583,583,581,581,581,581,581,581,581,581,581,581,581,581,582,581,581,581,581,581,583,581,581,585,581,583,586,583,583,583,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,583,586,588,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,589,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,590,587,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,90,90,90,90,90,90,90,90,90,90,591,591,591,591,591,591,591,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,591,591,591,591,90,591,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,591,591,591,591,591,90,93,93,93,93,93,93,93,93,93,93,591,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,592,90,90,90,90,90,90,90,90,90,90,592,592,592,592,592,592,592,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,592,592,592,592,94,592,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,592,592,592,592,592,94,594,593,593,593,594,593,593,593,593,595,596,595,595,595,593,593,593,593,593,593,593,593,593,593,593,593,594,593,593,593,593,593,595,593,595,597,595,595,595,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,595,597,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,598,598,598,598,598,598,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,598,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,600,600,600,600,600,600,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,600,601,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,602,98,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,96,96,96,96,96,96,96,96,96,96,603,603,603,603,603,603,603,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,603,603,603,603,96,603,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,603,603,603,603,603,96,100,100,100,100,100,100,100,100,100,100,603,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,604,101,101,101,101,101,101,101,101,101,101,604,604,604,604,604,604,604,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,604,604,604,604,101,604,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,604,604,604,604,604,101,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,103,103,103,103,103,103,103,103,103,103,605,605,605,605,605,605,605,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,605,605,605,605,103,605,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,605,605,605,605,605,103,607,608,608,608,607,608,608,608,608,609,610,609,609,609,608,608,608,608,608,608,608,608,608,608,608,608,607,608,608,608,608,608,609,611,608,612,613,614,615,608,608,608,616,617,608,617,608,618,608,608,608,608,608,608,608,608,608,608,619,608,620,621,622,608,608,623,624,623,623,625,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,626,627,608,618,628,618,629,630,631,632,633,634,606,606,635,606,606,606,636,637,638,606,606,639,640,641,642,606,643,606,644,606,608,645,608,617,608,606,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,647,646,646,646,646,646,646,646,646,646,646,646,646,646,646,606,606,606,606,606,606,606,606,606,606,646,646,646,647,646,647,646,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,646,646,646,646,606,646,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,646,646,646,646,646,606,609,648,609,609,609,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,609,648,649,618,650,650,618,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,618,650,651,652,653,654,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,105,105,655,105,655,105,105,655,655,105,105,105,657,105,105,658,658,658,658,658,658,658,658,658,658,105,105,105,105,105,105,105,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,655,105,655,655,656,105,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,655,655,655,105,655,656,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,659,656,656,656,656,656,656,656,656,656,656,659,659,659,659,659,659,659,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,659,659,659,659,656,659,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,656,659,659,659,659,659,656,658,658,658,658,658,658,658,658,658,658,659,660,650,618,650,618,650,618,650,662,661,618,663,650,618,650,664,618,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,618,655,618,650,618,618,650,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,647,646,646,646,646,646,646,646,646,646,646,646,646,646,646,623,623,623,623,623,623,623,623,623,623,646,646,646,647,646,647,646,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,646,646,646,646,623,646,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,646,646,646,646,646,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,666,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,667,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,668,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,623,623,623,623,623,669,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,623,623,623,623,623,623,623,623,623,623,670,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,665,647,665,665,665,665,665,665,665,665,665,665,665,665,665,665,623,623,623,623,623,623,623,623,623,623,665,665,665,647,665,647,665,623,623,623,669,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,623,665,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,665,665,665,665,665,623,664,655,610,655,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,672,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,673,674,606,606,606,606,606,675,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,676,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,677,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,678,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,679,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,680,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,681,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,682,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,683,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,684,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,685,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,686,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,682,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,687,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,686,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,688,606,689,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,690,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,691,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,692,606,606,606,606,606,606,606,606,606,606,606,606,693,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,694,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,695,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,696,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,697,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,698,606,606,606,606,606,606,606,606,606,606,699,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,701,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,691,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,702,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,703,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,704,647,704,704,704,704,704,704,704,704,704,704,704,704,704,704,606,606,606,606,606,606,606,606,606,606,704,704,704,647,704,647,704,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,704,704,704,704,606,704,606,606,606,606,606,606,606,606,705,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,704,704,704,704,704,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,706,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,707,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,708,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,709,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,710,606,711,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,712,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,684,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,714,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,715,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,716,606,606,606,606,606,606,606,606,606,606,606,606,606,638,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,698,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,684,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,717,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,718,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,719,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,720,606,606,606,721,606,606,606,606,606,722,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,722,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,723,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,724,606,606,606,606,606,606,606,606,606,606,606,606,606,606,725,726,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,727,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,700,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,728,606,606,729,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,684,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,695,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,730,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,731,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,732,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,638,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,733,606,606,606,606,606,606,606,606,606,727,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,695,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,606,606,734,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,735,606,606,606,606,606,606,606,736,606,606,606,606,606,606,606,737,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,713,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,701,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,721,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,738,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,695,606,606,606,719,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,739,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,740,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,647,671,671,671,671,671,671,671,671,671,671,671,671,671,671,606,606,606,606,606,606,606,606,606,606,671,671,671,647,671,647,671,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,606,671,606,606,606,606,606,606,606,606,606,606,606,689,606,606,606,606,606,606,606,606,606,606,606,606,606,606,671,671,671,671,671,606,618,650,742,743,743,743,742,743,743,743,743,744,743,744,744,744,743,743,743,743,743,743,743,743,743,743,743,743,742,743,743,743,743,743,744,743,743,745,743,743,743,743,743,743,743,743,743,743,746,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,743,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,743,747,743,743,741,743,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,741,743,743,743,743,743,741,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,748,110,748,748,748,748,748,748,748,748,748,748,748,748,748,748,109,109,109,109,109,109,109,109,109,109,111,748,748,748,748,110,748,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,748,748,748,748,109,748,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,748,748,748,748,748,109,744,749,744,744,744,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,749,744,749,750,751,752,753,754,748,755,748,756,758,759,759,759,758,759,759,759,759,760,761,760,760,760,759,759,759,759,759,759,759,759,759,759,759,759,758,759,759,759,759,759,760,762,759,763,759,764,765,759,759,759,766,767,759,767,759,764,759,759,759,759,759,759,759,759,759,759,759,759,768,769,770,759,759,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,772,773,759,764,757,764,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,759,774,759,767,759,757,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,776,775,775,775,775,775,775,775,775,775,775,775,775,775,775,757,757,757,757,757,757,757,757,757,757,775,775,775,775,775,776,775,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,775,775,775,775,757,775,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,775,775,775,775,775,757,778,777,779,760,780,760,760,760,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,760,780,781,764,782,782,764,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,764,782,783,784,785,786,764,782,764,782,764,782,764,787,782,764,782,789,764,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,764,788,764,782,764,764,782,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,776,790,790,790,790,790,790,790,790,790,790,790,790,790,790,771,771,771,771,771,771,771,771,771,771,790,790,790,790,790,776,790,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,790,790,790,790,771,790,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,790,790,790,790,790,771,789,788,761,788,764,782,792,791,791,791,792,791,791,791,791,793,794,793,793,793,791,791,791,791,791,791,791,791,791,791,791,791,792,791,791,791,791,791,793,791,791,795,791,120,796,791,797,791,798,120,151,799,153,120,791,791,791,791,791,791,791,791,791,791,800,791,801,151,802,803,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,151,804,151,120,791,791,791,791,791,791,791,791,791,791,805,791,791,791,791,791,791,791,791,806,791,791,807,791,808,791,791,791,164,165,791,120,791,809,809,809,809,809,809,809,809,809,793,809,793,793,793,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,809,793,809,809,809,809,146,147,809,148,809,149,150,151,152,153,146,809,809,809,809,809,809,809,809,809,809,154,809,155,151,156,157,809,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,158,159,151,120,115,809,115,115,115,115,115,115,115,115,160,115,115,115,115,115,115,115,115,161,115,115,162,115,163,115,115,115,164,165,809,120,809,115,810,811,811,811,810,811,811,811,811,151,812,151,151,151,811,811,811,811,811,811,811,811,811,811,811,811,810,811,811,811,811,811,151,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,151,811,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,120,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,813,151,812,151,151,151,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,151,814,814,814,814,814,814,814,814,814,815,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,814,151,814,151,812,151,151,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,151,151,114,816,810,151,810,818,817,820,821,820,820,820,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,820,819,822,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,116,810,810,810,810,810,810,810,810,810,810,810,810,810,810,115,115,115,115,115,115,115,115,115,115,117,810,810,810,810,116,810,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,810,810,810,810,115,810,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,810,810,810,810,810,115,823,151,812,151,151,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,120,810,824,825,826,827,828,829,151,812,151,151,151,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,810,810,810,810,810,810,810,810,120,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,810,151,810,151,817,120,830,120,830,831,832,831,831,831,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,831,819,833,830,834,834,834,834,834,834,834,834,834,123,834,123,123,123,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,123,834,834,834,834,124,125,834,126,834,127,128,129,130,131,124,834,834,834,834,834,834,834,834,834,834,132,834,133,129,134,135,834,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,136,137,129,138,122,834,122,122,122,122,122,122,122,122,139,122,122,122,122,122,122,122,122,140,122,122,141,122,142,122,122,122,143,144,834,138,834,122,151,830,835,830,836,830,837,830,838,190,190,190,838,190,190,190,190,839,190,839,839,839,190,190,190,190,190,190,190,190,190,190,190,190,838,190,190,190,190,190,839,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,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,190,840,190,190,192,190,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,190,190,190,190,190,192,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,841,189,189,189,189,189,189,189,189,189,189,189,189,189,189,192,192,192,192,192,192,192,192,192,192,190,189,189,189,189,841,189,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,189,189,189,189,192,189,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,189,189,189,189,189,192,842,842,842,842,842,842,842,842,842,193,842,193,193,193,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,193,842,842,842,842,842,842,842,194,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,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,842,195,842,842,192,842,192,192,192,196,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,842,842,842,842,842,192,843,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,842,841,842,842,842,842,842,842,842,842,842,842,842,842,842,842,192,192,192,192,192,192,192,192,192,192,190,842,842,842,842,841,842,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,842,842,842,842,192,842,192,192,192,192,192,192,192,192,192,192,192,192,192,192,844,192,192,192,192,192,192,192,192,192,192,192,842,842,842,842,842,192,197,842,846,845,845,845,846,845,845,845,845,847,845,847,847,847,845,845,845,845,845,845,845,845,845,845,845,845,846,845,845,845,845,845,847,845,845,848,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,849,845,845,845,845,845,845,845,850,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,851,845,847,852,847,847,847,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,852,847,852,853,854,855,856,858,857,859,860,857,861,863,864,864,864,863,864,864,864,864,865,866,865,865,865,864,864,864,864,864,864,864,864,864,864,864,864,863,864,864,864,864,864,865,864,864,867,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,864,868,864,864,862,864,862,862,862,862,862,862,862,862,869,862,862,862,862,862,862,862,862,870,862,862,871,862,872,862,862,862,864,864,864,864,864,862,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,862,862,862,862,862,862,862,862,862,862,873,873,873,873,873,873,873,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,873,873,873,873,862,873,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,873,873,873,873,873,862,865,874,865,865,865,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,874,865,874,875,876,877,878,879,881,880,882,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,885,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,886,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,887,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,888,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,889,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,890,862,862,862,862,862,862,862,891,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,892,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,893,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,884,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,894,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,884,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,895,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,896,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,883,883,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,862,883,862,862,862,862,862,862,862,862,862,862,862,888,862,862,862,862,862,862,862,862,862,862,862,862,862,862,883,883,883,883,883,862,898,221,221,221,898,221,221,221,221,899,900,899,899,899,221,221,221,221,221,221,221,221,221,221,221,221,898,221,221,221,221,221,899,901,221,902,221,903,904,221,905,221,906,907,221,908,909,910,221,221,221,221,221,221,221,221,221,221,911,221,912,913,914,915,221,916,917,916,916,918,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,919,920,221,921,922,221,923,924,925,926,927,928,897,897,929,897,897,897,930,931,932,897,897,933,934,935,936,897,937,897,938,897,939,940,221,921,221,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,945,944,944,946,944,947,949,950,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,951,948,953,952,954,955,956,899,957,899,899,899,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,957,899,957,959,958,961,962,961,961,961,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,960,961,960,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,221,963,964,965,966,967,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,968,968,968,968,968,968,968,968,968,968,969,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,969,969,969,969,969,968,972,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,221,971,973,975,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,221,974,221,211,222,223,222,222,222,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,222,971,971,224,971,971,971,971,971,971,971,971,971,971,971,971,225,225,225,225,225,225,225,225,225,225,971,971,971,221,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,226,971,239,240,239,239,239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,239,238,238,241,238,238,238,238,238,238,238,238,238,238,238,238,242,242,242,242,242,242,242,242,242,242,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,238,243,238,222,223,222,222,222,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,222,971,971,224,971,971,971,971,971,971,971,971,971,971,971,971,225,225,225,225,225,225,225,225,225,225,971,971,971,221,221,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,226,971,977,963,979,978,981,980,963,982,982,982,963,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,963,982,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,984,985,963,986,247,987,985,963,963,988,989,963,989,963,247,963,963,963,963,963,963,963,963,963,963,990,963,991,992,993,963,994,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,995,963,963,247,983,247,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,963,996,963,997,963,983,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,999,998,998,998,998,998,998,998,998,998,998,998,998,998,998,983,983,983,983,983,983,983,983,983,983,998,998,998,1e3,998,999,998,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,998,998,998,998,983,998,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,998,998,998,998,998,983,1002,1001,1003,1005,1006,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1007,1004,1009,1010,1008,1011,1012,1013,1014,247,998,998,1015,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,247,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,246,246,246,246,246,246,246,246,246,246,998,998,998,998,998,998,998,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,998,998,998,998,246,998,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,998,998,998,998,998,246,249,249,249,249,249,249,249,249,249,249,998,1016,998,247,998,247,998,247,1017,998,247,998,247,998,247,247,998,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1018,1018,1018,1018,1018,1018,1021,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1018,1018,1018,1018,1019,1018,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1018,1018,1018,1018,1018,1019,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1022,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1024,1024,1024,1024,1024,1024,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1024,1024,1024,1024,1025,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1024,1024,1024,1024,1024,1025,1016,998,1015,998,1027,1028,963,1029,262,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,263,252,264,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,263,253,263,266,221,963,921,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,221,963,221,972,963,1033,1032,1032,1032,1033,1032,1032,1032,1032,1034,1035,1034,1034,1034,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1033,1032,1032,1032,1032,1032,1034,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1032,1037,1032,1032,1036,1032,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1036,1032,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1038,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1038,1038,1038,1038,1039,1038,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1038,1038,1038,1038,1038,1039,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1040,1040,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1041,1040,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1041,1040,1040,1040,1040,1040,1041,1044,1043,1043,1043,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1045,1045,1045,1045,1045,1045,1045,1045,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1046,1043,1043,1043,1043,1043,1043,1043,1043,1043,1047,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1048,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1049,1043,1043,1050,1043,1051,1052,1054,1054,1054,1054,1054,1054,1054,1054,1053,1055,1055,1055,1055,1055,1055,1055,1055,1053,1053,1056,1056,290,290,290,1056,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1056,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1057,290,1058,1059,1060,1060,290,290,290,1060,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1060,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,1061,290,289,1060,1062,1063,1064,1064,275,275,275,1064,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1064,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,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,1065,275,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1064,1064,1064,1064,1064,1064,1064,1066,1066,1066,1066,1066,1066,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1066,1066,1066,1066,1066,1066,1064,1068,1068,1068,1068,1068,1068,1068,1068,1068,1068,1067,1067,1067,1067,1067,1067,1067,1068,1068,1068,1068,1068,1068,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1068,1068,1068,1068,1068,1068,1067,1067,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1060,1060,1060,1060,1060,1060,1060,1069,1069,1069,1069,1069,1069,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1069,1069,1069,1069,1069,1069,1060,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1070,1070,1060,268,268,268,1060,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1060,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1072,268,1056,275,275,275,1056,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1056,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,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,277,275,1056,1073,1073,1073,1056,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1056,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1074,1073,1075,1076,1076,1073,1073,1073,1076,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1076,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1077,1073,1078,1078,1078,1078,1078,1078,1078,1078,1078,1078,1076,1076,1076,1076,1076,1076,1076,1078,1078,1078,1078,1078,1078,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1078,1078,1078,1078,1078,1078,1076,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1079,1079,1076,268,268,268,1076,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1076,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1072,268,1081,1076,1076,275,275,275,1076,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,1076,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,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,277,275,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1084,1082,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1082,1082,1082,1082,1082,1082,1082,1085,1085,1085,1085,1085,1085,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1085,1085,1085,1085,1085,1085,1082,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1082,1082,1082,1082,1082,1082,1082,1086,1086,1086,1086,1086,1086,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1086,1086,1086,1086,1086,1086,1082,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1082,1082,1082,1082,1082,1082,1082,1087,1087,1087,1087,1087,1087,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1087,1087,1087,1087,1087,1087,1082,1088,1091,1090,1090,1090,1091,1090,1090,1090,1090,1092,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1091,1090,1090,1090,1090,1090,1092,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1093,1093,1093,1093,1093,1093,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1094,1090,1091,1090,1090,1090,1091,1090,1090,1090,1090,1089,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1091,1090,1090,1090,1090,1090,1089,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1095,1095,1095,1095,1095,1095,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1096,1090,1089,1091,1095,1095,1095,1091,1095,1095,1095,1095,1089,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1091,1095,1095,1095,1095,1095,1089,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1089,1095,1097,1091,1098,1098,1098,1091,1098,1098,1098,1098,1092,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1092,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1095,1095,1095,1095,1095,1095,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1101,1101,1101,1101,1101,1101,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1103,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1104,1104,1104,1104,1104,1104,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1105,1105,1105,1105,1105,1105,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1106,1106,1106,1106,1106,1106,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1107,1107,1107,1107,1107,1107,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1100,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1089,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1110,1110,1110,1110,1110,1110,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1111,1111,1111,1111,1111,1111,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1112,1112,1112,1112,1112,1112,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1113,1113,1113,1113,1113,1113,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1114,1114,1114,1114,1114,1114,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1115,1115,1115,1115,1115,1115,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1116,1116,1116,1116,1116,1116,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1089,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1117,1117,1117,1117,1117,1117,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1118,1118,1118,1118,1118,1118,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1119,1119,1119,1119,1119,1119,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1120,1120,1120,1120,1120,1120,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1091,1098,1098,1098,1091,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1091,1098,1098,1098,1098,1098,1109,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1108,1108,1108,1108,1108,1108,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1102,1098,1121,1122,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1123,1123,1123,1123,1123,1123,1123,1124,1124,1124,1124,1124,1124,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1124,1124,1124,1124,1124,1124,1123,1123,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,295,295,295,295,295,295,295,295,295,295,297,211,211,298,211,296,211,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,211,211,211,211,295,211,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,211,211,211,211,211,295,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,296,963,963,963,963,963,963,963,963,963,963,963,963,963,963,295,295,295,295,295,295,295,295,295,295,297,963,963,298,963,296,963,295,295,295,295,1125,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,963,963,963,963,295,963,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,963,963,963,963,963,295,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,296,963,963,963,963,963,963,963,963,963,963,963,963,963,963,295,295,295,295,295,295,295,295,295,295,297,963,963,298,963,296,963,295,295,295,295,295,295,295,295,295,295,295,295,295,1126,295,295,295,295,295,295,295,295,295,295,295,295,963,963,963,963,295,963,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,963,963,963,963,963,295,1127,1128,963,958,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1129,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,1130,1131,897,897,897,897,897,1132,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1133,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,1134,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1135,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,1136,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1137,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1138,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,1139,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1140,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,1141,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,296,211,211,211,211,211,211,211,211,211,211,211,211,211,211,897,897,897,897,897,897,897,897,897,897,297,211,211,298,211,296,211,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,211,211,211,211,897,211,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,211,211,211,211,211,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1142,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,1143,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,1139,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,1144,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1143,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1145,897,1146,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1147,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1148,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1149,897,897,897,897,897,897,897,897,897,897,897,897,1150,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,1151,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1152,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1153,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1154,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1155,897,897,897,897,897,897,897,897,897,897,1156,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1158,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1148,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1160,897,1161,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1162,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1141,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1163,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1164,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,1165,897,897,897,897,897,897,897,897,897,897,897,897,897,932,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1155,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,1166,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1167,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1168,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1169,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1170,897,897,897,1171,897,897,897,897,897,1172,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1172,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1173,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1174,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1175,1176,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,1177,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1178,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1179,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1182,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1183,1180,1180,1184,1180,1182,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1180,1180,1180,1180,1181,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1180,1180,1180,1180,1180,1181,949,1185,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,948,951,948,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1186,897,897,1187,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1141,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1152,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1188,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1189,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1190,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,932,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,1191,897,897,897,897,897,897,897,897,897,1192,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1152,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1157,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,1193,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,1194,897,897,897,897,897,897,897,1195,897,897,897,897,897,897,897,1196,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1159,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1197,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1198,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,1166,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1199,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1166,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,1200,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1152,897,897,897,1201,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1202,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1166,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,1203,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,1204,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,941,941,941,941,941,941,941,941,941,942,941,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,942,296,941,941,941,941,941,941,941,941,941,941,941,941,941,941,897,897,897,897,897,897,897,897,897,897,297,941,941,298,941,296,941,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,943,941,941,897,941,897,897,897,897,897,897,897,897,897,897,897,1146,897,897,897,897,897,897,897,897,897,897,897,897,897,897,941,941,941,941,941,897,1205,221,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,963,1206,963,1208,1207,1207,1207,1208,1207,1207,1207,1207,1209,1210,1209,1209,1209,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1208,1207,1207,1207,1207,1207,1209,1207,1207,1211,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1207,1212,1207,1209,1213,1209,1209,1209,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1209,1213,1214,1215,1216,1217,1218,1220,1219,1221,1223,1224,1224,1224,1223,1224,1224,1224,1224,1225,1226,1225,1225,1225,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1223,1224,1224,1224,1224,1224,1225,1224,1227,1228,1224,1224,1224,1227,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1224,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1224,1229,1224,1224,1222,1224,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1224,1224,1224,1224,1224,1222,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,304,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,303,303,303,303,303,303,303,303,303,303,305,1230,1230,1230,1230,304,1230,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,1230,1230,1230,1230,303,1230,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,1230,1230,1230,1230,1230,303,1225,1231,1225,1225,1225,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1225,1231,1232,1233,1234,1235,1236,1237,1230,1238,1240,1241,1241,1241,1240,1241,1241,1241,1241,1242,1243,1242,1242,1242,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1240,1241,1241,1241,1241,1241,1242,1244,1245,1246,1247,1248,1249,1245,1250,1251,1252,1248,1253,1254,1255,1248,1256,1257,1257,1257,1257,1257,1257,1257,1257,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1265,1265,1267,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1268,1269,1270,1248,1271,1245,1272,1273,1274,1275,1276,1277,1239,1239,1278,1239,1239,1239,1279,1280,1281,1239,1239,1282,1283,1284,1285,1239,1286,1239,1287,1239,1288,1289,1290,1291,1241,1239,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,1292,313,313,313,313,313,313,313,313,313,313,313,313,313,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,313,1292,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,1239,313,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,313,313,313,313,313,1239,1294,1293,1295,1242,1296,1242,1242,1242,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1296,1242,1296,1297,1299,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1299,1298,1300,1301,1302,1303,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,308,308,1304,308,1304,308,308,1304,1304,308,308,308,1305,308,308,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,308,308,308,308,308,308,308,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,308,1304,1304,325,308,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,308,1304,325,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,1307,1307,1307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,325,1307,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1307,1307,1307,1307,1307,325,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1307,1308,313,1248,1309,1309,1309,1309,1309,1309,1309,1310,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1309,1308,1309,1311,1312,1248,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1308,1313,1308,1314,1309,1316,1315,312,312,312,312,312,312,312,312,312,312,1315,1318,1317,1319,1317,312,312,312,312,312,312,312,312,312,312,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1321,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1322,1320,1320,1320,1320,1320,1321,1320,311,311,311,311,311,311,311,311,311,311,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,1320,310,1320,1324,1323,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1323,1323,1323,1323,1323,1323,1323,1323,1326,1323,1327,1328,1323,1323,1323,1323,1323,1323,1323,1323,1323,1329,1323,1323,1323,1323,1323,1323,1323,1323,1330,1323,1323,1323,1323,1323,1323,1331,1323,1323,1326,1323,1327,1328,1323,1323,1323,1332,1323,1323,1323,1323,1323,1329,1323,1323,1333,1323,1323,1323,1323,1323,1330,1323,314,314,314,314,314,314,314,314,314,314,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1335,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1336,1334,1334,1334,1334,1334,1335,1334,1334,1334,1337,1334,1334,1334,1334,1334,1334,1334,1334,1338,1334,1339,313,1339,313,313,315,315,315,315,315,315,315,315,315,315,313,315,315,315,315,315,315,315,315,315,315,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1339,1340,1340,1340,1340,1340,1340,1340,1340,1340,1341,1340,1343,1342,1344,1346,1345,1345,1345,1347,1345,1348,1349,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1331,1323,1323,1323,1323,1323,1323,1323,1323,1323,1332,1323,1323,1323,1323,1323,1323,1323,1323,1333,1323,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1351,1323,1323,1323,1323,1323,1323,1323,1323,1323,1332,1323,1323,1323,1323,1323,1323,1323,1323,1333,1323,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1354,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1359,1358,1360,1362,1361,1361,1361,1363,1361,1365,1364,1366,1367,1369,1369,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1370,1368,1368,1368,1368,1368,1368,1368,1368,1368,1371,1368,1368,1368,1368,1368,1368,1368,1368,1372,1368,1373,1373,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1374,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1373,1373,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1376,1376,1376,1376,1376,1376,1376,1376,1376,1376,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1375,1377,1375,1375,1375,1375,1375,1375,1375,1375,1375,1378,1375,1375,1375,1375,1375,1375,1375,1375,1379,1375,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1382,1380,1380,1380,1380,1380,1380,1380,1380,1380,1383,1380,1380,1380,1380,1380,1380,1380,1380,1384,1380,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1385,1385,1385,1385,1385,1385,1385,1386,1386,1386,1386,1386,1386,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1385,1387,1385,1386,1386,1386,1386,1386,1386,1385,1385,1388,1385,1385,1385,1385,1385,1385,1385,1385,1389,1385,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1391,1352,1390,1390,1390,1390,1390,1390,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1390,1390,1390,1390,1390,1390,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1390,1390,1390,1390,1390,1390,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1393,1392,1394,1394,1394,1394,1394,1394,1394,1394,1394,1394,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1395,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1396,1392,1392,1392,1392,1392,1395,1392,1392,1392,1397,1392,1392,1392,1392,1392,1392,1392,1392,1398,1392,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1400,1392,1392,1392,1392,1392,1392,1392,1392,1392,1397,1392,1392,1392,1392,1392,1392,1392,1392,1398,1392,1401,1352,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1403,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1404,1352,1352,1352,1352,1352,1403,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1352,1357,1352,1352,1352,1352,1352,1352,1352,1352,1352,1355,1352,1352,1352,1352,1352,1352,1352,1352,1356,1352,1310,1317,1248,1405,1309,1299,1309,1406,1407,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,1299,1317,1299,1309,1299,1248,1309,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,1304,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,1304,1304,1408,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,325,1304,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,1304,1304,1304,1304,1304,325,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,1292,313,313,313,313,313,313,313,313,313,313,313,313,313,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,313,313,313,313,1292,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,313,313,313,313,1265,313,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,313,313,313,313,313,1265,1410,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1412,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1413,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1414,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1415,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1416,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1292,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1409,1411,1411,1411,1411,1292,1411,1265,1265,1265,1415,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1265,1411,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1411,1411,1411,1411,1411,1265,1417,1419,1418,1420,1421,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1423,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1424,1425,1239,1239,1239,1239,1239,1426,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1427,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1428,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1429,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1430,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1431,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1432,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1433,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1434,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1435,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1436,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1437,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1438,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1439,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1440,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1441,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1437,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1442,1239,1443,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1444,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1445,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1446,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1448,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1449,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1450,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1451,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1452,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1453,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1455,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1456,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1458,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1459,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1460,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1461,1461,1461,1461,1461,1461,1461,1461,1461,327,328,327,327,327,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,327,1292,1461,329,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,1461,330,1461,1461,1292,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,331,1461,1461,1239,1461,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1461,1461,1461,1461,1461,1239,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,348,343,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1463,1239,1239,1239,1239,1239,1239,1239,1239,1239,1464,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1465,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1292,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1466,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1466,1292,1466,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1239,1466,1239,1239,1239,1239,1239,1239,1239,1239,1467,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1466,1466,1466,1466,1466,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1468,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1469,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1470,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1471,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1472,1239,1473,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1474,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1447,1239,1239,1239,1475,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1476,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1477,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1478,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1281,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1479,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1480,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1447,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1482,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1483,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1484,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1457,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1485,1239,1239,1239,1486,1239,1239,1239,1239,1239,1487,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1488,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1490,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1491,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1492,1493,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1494,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1495,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1496,1239,1239,1497,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1440,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1498,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1454,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1499,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1500,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1501,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1440,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1502,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1503,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1504,1239,1239,1239,1239,1239,1239,1239,1239,1239,1505,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1451,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1480,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1506,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1507,1239,1239,1239,1239,1239,1239,1239,1508,1239,1239,1239,1239,1239,1239,1239,1509,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1510,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1446,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1511,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1512,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1513,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1514,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1451,1239,1239,1239,1515,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1516,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1481,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1517,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1518,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1519,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1292,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1292,1422,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1239,1422,1239,1239,1239,1489,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1239,1422,1422,1422,1422,1422,1239,1520,1308,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1298,1248,1298,1521,1523,1522,1523,1523,1523,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1523,1522,1522,1524,1522,1522,1525,1522,1522,1522,1522,1522,1522,1522,357,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1526,1522,353,354,353,353,353,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,353,1527,1527,355,1527,1527,356,1527,1527,1527,1527,1527,1527,1527,357,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,358,1527,360,1528,360,360,360,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,360,1528,1528,355,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,358,1528,1530,1529,1532,1531,363,362,368,1527,366,1527,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1535,1533,1534,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1537,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1538,1533,1534,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,1539,1533,1541,1539,0]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_trans_targs"),self.$private("_lex_trans_targs","_lex_trans_targs=")}(Opal.get_singleton_class(self)),$send(self,"_lex_trans_targs=",$to_a($writer=[[186,2,3,4,192,6,7,8,9,10,186,186,195,198,195,12,199,200,14,195,207,208,211,212,224,221,213,214,215,19,216,217,218,226,228,229,233,234,235,230,25,18,209,210,27,258,259,261,263,261,30,264,265,32,261,272,273,276,277,289,286,278,279,280,37,281,282,283,291,293,294,298,299,300,295,43,36,274,275,45,323,324,331,333,331,48,334,335,50,337,340,337,52,341,342,54,348,347,0,56,349,350,58,351,352,352,352,352,465,61,62,63,465,465,494,65,66,494,494,498,498,70,65,71,496,497,499,500,498,494,501,502,504,67,68,505,506,69,498,72,73,78,85,508,509,71,496,497,499,500,498,494,501,502,504,67,68,505,506,69,72,73,78,85,508,509,507,74,75,76,77,79,80,83,81,82,84,86,87,494,89,90,91,93,96,94,95,97,99,525,525,525,526,101,528,102,529,103,526,101,528,102,529,563,104,563,105,106,104,563,105,563,563,563,109,110,111,112,574,563,563,563,115,116,117,563,120,115,116,117,563,120,118,118,116,117,584,119,118,118,116,117,584,119,116,563,601,563,122,602,608,126,617,618,131,132,126,127,616,127,616,563,128,129,130,619,133,563,633,634,637,638,650,647,639,640,641,138,642,643,644,652,654,655,659,660,661,656,144,137,635,636,146,697,698,148,565,107,567,150,151,700,802,153,154,155,802,810,810,810,158,832,831,810,834,836,810,163,164,165,840,810,167,168,851,820,873,171,172,173,177,178,171,172,173,177,178,174,174,172,173,175,176,174,174,172,173,175,176,921,172,810,990,179,992,181,185,993,183,990,180,990,182,992,182,992,184,992,990,186,186,187,188,189,191,193,194,186,186,186,190,186,190,186,1,186,186,186,5,195,195,196,195,197,201,195,195,11,13,195,195,195,195,202,203,204,15,21,26,236,28,195,195,195,205,206,195,16,195,195,195,17,195,195,195,20,219,195,220,222,195,223,225,227,22,195,195,23,231,195,232,24,195,237,241,238,239,240,195,195,242,243,246,248,257,244,245,195,247,249,251,250,195,252,253,254,255,256,195,195,195,260,261,261,261,262,266,261,29,31,261,261,261,261,267,268,269,33,39,44,301,46,261,261,261,270,271,261,34,261,261,261,35,261,261,261,38,284,261,285,287,261,288,290,292,40,261,261,41,296,261,297,42,261,302,306,303,304,305,261,261,307,308,311,313,322,309,310,261,312,314,316,315,261,317,318,319,320,321,261,261,261,325,326,326,327,326,328,326,326,326,329,329,329,330,329,329,329,331,331,331,332,331,47,49,331,331,331,336,336,336,337,337,338,337,339,337,337,51,53,337,337,337,343,343,344,343,343,345,346,345,55,57,347,347,347,353,352,352,354,355,356,357,359,362,363,364,365,352,366,367,369,371,372,373,377,379,380,381,397,402,409,414,421,428,431,432,436,430,440,448,452,454,459,461,464,352,352,352,352,352,352,358,352,358,352,360,59,361,352,60,352,352,368,370,352,374,375,376,372,378,352,382,383,392,395,384,385,386,387,388,389,390,391,353,393,394,396,398,401,399,400,403,406,404,405,407,408,410,412,411,413,415,416,352,417,418,419,420,352,422,425,423,424,426,427,429,433,434,435,437,439,438,441,442,443,445,444,446,447,449,450,451,453,455,456,457,458,460,462,463,466,465,465,467,468,470,471,465,465,465,469,465,469,64,472,465,474,473,473,477,478,479,480,473,482,483,484,485,487,489,490,491,492,493,473,475,473,476,473,473,473,473,473,481,473,481,486,473,488,473,494,494,495,510,511,497,513,514,501,515,516,517,518,519,521,522,523,524,494,494,494,494,494,494,498,503,494,494,494,494,494,494,494,494,494,512,494,512,494,494,494,494,520,494,88,92,98,525,527,530,100,525,525,526,531,531,532,533,535,537,538,531,531,534,531,534,531,536,531,531,531,540,539,539,541,542,543,545,547,548,553,560,539,539,539,539,544,539,544,539,546,539,539,540,549,550,551,552,554,555,558,556,557,559,561,562,564,563,572,573,575,576,578,579,580,581,583,585,586,589,590,615,621,622,623,700,701,702,703,704,582,706,723,728,735,740,742,748,751,752,756,750,760,771,775,778,786,790,793,794,563,104,105,563,107,566,563,563,568,570,571,563,569,563,563,563,563,563,108,563,563,563,563,563,577,563,577,563,563,113,563,114,563,563,582,563,587,563,588,563,563,563,591,600,563,121,603,604,605,563,606,123,609,610,124,613,614,563,592,594,563,593,563,563,595,598,599,563,596,597,563,563,563,563,563,563,607,563,601,611,612,563,611,563,601,611,125,620,563,563,563,624,563,563,563,625,627,563,626,563,626,563,628,629,630,134,140,145,662,147,563,563,563,631,632,563,135,563,563,563,136,563,563,563,139,645,563,646,648,563,649,651,653,141,563,563,142,657,563,658,143,563,663,667,664,665,666,563,563,668,669,672,683,696,670,671,563,673,674,675,677,676,563,678,679,680,681,682,684,691,685,686,687,688,689,690,692,693,694,695,563,563,563,699,149,152,563,705,707,708,718,721,709,710,711,712,713,714,715,716,717,719,720,722,724,727,725,726,729,732,730,731,733,734,736,738,737,739,741,743,745,744,746,747,749,717,753,754,755,757,759,758,761,762,763,768,764,765,766,563,564,565,107,767,570,769,770,772,773,774,776,777,779,780,781,784,782,783,785,787,788,789,791,792,563,582,795,795,796,797,798,800,795,795,795,799,795,799,795,801,795,803,802,802,804,805,802,806,808,802,802,802,802,807,802,807,809,802,811,810,810,814,815,816,810,817,819,822,823,824,825,826,810,827,828,833,861,865,810,866,868,870,810,871,872,874,878,880,881,883,884,902,907,914,922,929,936,941,942,946,940,951,961,967,970,979,983,987,988,989,822,812,810,813,810,810,810,810,810,810,818,810,818,810,156,821,810,810,810,810,810,810,810,810,810,829,810,830,810,810,157,159,810,160,842,853,856,835,857,858,843,847,849,810,835,160,837,839,161,810,837,810,838,810,810,162,841,810,810,844,846,810,844,845,847,849,846,810,848,810,810,850,852,810,166,810,810,810,854,846,847,849,854,855,810,844,846,847,849,810,844,846,847,849,810,859,846,847,849,859,860,810,160,861,835,862,847,849,863,846,160,863,835,864,867,869,810,169,170,810,810,875,876,877,872,879,810,810,882,810,810,810,885,886,895,900,887,888,889,890,891,892,893,894,811,896,897,898,899,811,901,903,906,904,905,811,811,908,911,909,910,912,913,811,915,917,916,918,919,920,810,810,923,811,924,810,925,926,927,928,812,930,933,931,932,934,935,937,938,939,811,943,944,945,947,949,950,948,811,952,953,954,957,955,956,958,959,960,962,964,963,965,966,968,969,971,972,974,977,973,975,976,978,980,981,982,984,985,986,810,810,990,991,995,996,997,990,990,990,994,990,990,999,998,1e3,998,1001,1002,1003,998,998]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_trans_actions"),self.$private("_lex_trans_actions","_lex_trans_actions=")}(Opal.get_singleton_class(self)),$send(self,"_lex_trans_actions=",$to_a($writer=[[1,0,0,0,0,0,0,0,0,0,2,3,4,0,5,0,0,0,0,6,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,9,0,10,0,0,0,0,11,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,12,0,13,0,0,0,0,14,0,15,0,0,0,0,0,16,0,0,0,0,0,0,17,18,19,20,21,0,0,0,22,23,24,0,0,25,26,27,28,29,30,30,31,32,30,33,32,34,32,30,30,31,30,35,30,30,36,30,30,30,30,30,30,0,37,38,0,39,38,40,38,0,0,37,0,41,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,0,0,0,0,0,0,43,44,45,46,0,0,0,46,29,47,30,30,30,47,48,0,49,0,29,30,50,30,51,52,53,0,0,0,0,0,54,55,56,0,29,0,57,0,30,58,30,59,30,60,61,62,61,63,61,0,64,65,64,66,64,67,68,0,69,0,0,0,0,70,70,0,0,71,71,72,0,29,73,0,0,0,70,0,74,0,7,0,8,0,0,7,0,0,0,0,8,0,7,0,8,0,7,7,0,0,0,0,0,0,0,0,0,75,0,0,0,0,75,76,0,0,0,77,78,79,80,0,7,7,81,82,82,83,0,0,0,0,84,0,0,0,0,0,0,29,0,0,0,30,58,30,30,30,60,61,62,61,61,61,0,64,65,64,64,64,85,67,86,87,0,88,0,89,89,0,90,0,91,60,92,0,93,29,94,95,98,99,0,29,0,7,0,7,100,101,102,60,103,0,104,0,105,106,107,0,108,109,0,110,7,7,111,112,0,0,113,114,115,116,117,117,117,117,117,117,117,117,118,119,120,0,0,121,0,122,123,124,0,125,126,127,0,0,128,0,0,129,0,7,0,0,130,131,0,0,132,0,29,133,0,0,0,0,0,134,135,0,0,0,0,0,0,0,136,0,0,0,0,137,0,0,0,0,0,138,139,140,0,141,142,143,7,7,144,0,0,145,146,147,148,117,117,117,117,117,117,117,117,149,150,151,0,0,152,0,153,154,155,0,156,157,158,0,0,159,0,0,160,0,7,0,0,161,162,0,0,163,0,29,164,0,0,0,0,0,165,166,0,0,0,0,0,0,0,167,0,0,0,0,168,0,0,0,0,0,169,170,171,0,172,173,0,174,0,175,176,177,178,179,180,0,181,182,183,184,185,186,7,187,0,0,188,189,190,191,192,193,194,195,0,196,7,197,198,0,0,199,200,201,202,203,0,204,205,206,0,207,0,0,208,209,210,211,212,213,0,29,0,0,7,7,0,0,0,214,0,0,0,0,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,218,219,220,221,60,222,0,223,0,0,0,224,0,225,226,0,0,227,0,0,0,228,0,229,0,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,231,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,7,232,233,0,0,7,0,234,235,236,60,237,0,0,29,238,0,239,240,0,29,0,0,241,0,0,0,0,0,0,0,0,0,0,242,0,243,0,244,245,246,247,248,60,249,0,0,250,0,251,252,253,254,29,0,28,0,0,28,0,0,0,0,0,0,7,7,7,255,256,257,258,259,260,261,0,262,263,264,265,266,267,268,269,270,60,271,0,272,273,274,275,276,277,0,0,0,278,7,7,0,279,280,281,282,283,0,0,0,0,0,284,285,60,286,0,287,29,288,289,290,291,292,293,0,29,0,0,0,0,0,0,294,295,296,297,60,298,0,299,29,300,301,302,0,0,0,0,0,0,0,0,0,0,0,0,303,304,0,8,0,0,7,305,0,0,305,305,0,0,7,306,0,306,0,306,306,306,0,0,306,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,0,0,307,308,308,309,310,0,311,312,0,75,0,313,0,314,315,316,317,318,30,319,320,321,322,323,60,324,0,325,326,0,327,0,328,329,305,330,0,331,0,332,333,334,0,0,335,0,0,0,0,336,0,0,0,0,0,0,0,337,0,0,338,0,339,340,0,0,0,341,0,0,342,343,344,345,346,347,0,348,349,349,0,350,0,351,352,352,0,0,353,354,355,0,356,357,358,0,7,359,360,361,0,362,117,117,117,117,117,117,117,117,363,364,365,0,0,366,0,367,368,369,0,370,371,372,0,0,373,0,0,374,0,7,0,0,375,376,0,0,377,0,29,378,0,0,0,0,0,379,380,0,0,0,0,0,0,0,381,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,383,384,385,0,0,0,386,29,303,303,303,303,303,303,303,303,303,303,303,303,75,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,387,303,303,303,303,303,303,303,303,303,303,303,303,388,389,390,391,392,392,388,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,393,394,395,396,0,29,0,0,397,398,399,60,400,0,401,29,402,7,403,404,0,29,405,0,0,406,407,408,409,60,410,0,29,411,412,413,414,0,29,0,415,0,7,416,0,0,0,0,417,0,0,418,418,0,419,0,0,0,420,7,421,421,421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,422,423,424,0,425,426,427,428,429,430,60,431,0,432,0,0,433,434,435,436,437,438,439,440,441,0,442,0,443,444,0,0,445,446,447,0,0,448,0,0,447,449,449,450,451,0,452,453,0,454,455,456,0,457,458,0,0,459,460,447,447,461,0,0,462,462,0,463,0,464,465,7,0,466,0,467,468,469,470,470,471,471,0,0,472,473,473,474,474,475,476,476,477,477,478,479,479,480,480,0,0,481,482,483,484,485,486,486,483,485,487,418,488,0,0,0,489,0,0,490,491,421,421,421,492,421,493,494,29,495,496,497,0,0,0,0,0,0,0,0,0,0,0,0,498,0,0,0,0,492,0,0,0,0,0,499,500,0,0,0,0,0,0,501,0,0,0,0,0,500,502,503,0,504,0,505,0,0,0,0,506,0,0,0,0,0,0,0,0,0,507,0,0,0,0,0,0,0,506,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,508,509,510,511,511,89,511,512,513,514,0,515,516,0,517,0,518,0,0,0,519,520]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_to_state_actions"),self.$private("_lex_to_state_actions","_lex_to_state_actions=")}(Opal.get_singleton_class(self)),$send(self,"_lex_to_state_actions=",$to_a($writer=[[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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,96,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,96,0,96,0,0,0,0,96,96,0,0,0,0,0,96,0,96,0,96,0,0,0,0,96,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,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,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,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,96,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_from_state_actions"),self.$private("_lex_from_state_actions","_lex_from_state_actions=")}(Opal.get_singleton_class(self)),$send(self,"_lex_from_state_actions=",$to_a($writer=[[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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,97,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,97,0,97,0,0,0,0,97,97,0,0,0,0,0,97,0,97,0,97,0,0,0,0,97,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,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,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,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,97,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("_lex_eof_trans"),self.$private("_lex_eof_trans","_lex_eof_trans=")}(Opal.get_singleton_class(self)),$send(self,"_lex_eof_trans=",$to_a($writer=[[0,1,1,1,1,1,1,1,1,1,1,13,13,13,13,20,20,20,20,20,20,20,20,20,20,20,20,20,20,48,48,48,48,55,55,55,55,55,55,55,55,55,55,55,55,55,55,83,83,83,83,90,90,90,90,0,0,0,0,105,107,109,109,109,109,115,115,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,180,180,180,180,180,180,180,180,180,180,180,180,190,192,192,192,204,204,204,212,214,214,214,214,214,220,212,212,212,212,212,212,212,246,246,246,246,246,246,212,262,212,262,246,246,212,268,268,268,268,268,268,268,268,268,268,268,268,268,268,212,246,246,246,246,303,303,303,308,310,310,310,314,314,317,317,317,317,322,322,322,308,314,314,314,314,314,314,314,314,314,353,360,362,362,362,362,353,0,378,379,380,382,384,386,384,384,0,396,397,401,401,402,403,412,413,414,414,414,417,417,419,420,421,421,421,423,424,425,425,425,428,428,421,431,431,421,417,417,436,437,437,437,440,440,437,437,437,443,443,443,443,449,450,450,450,450,458,450,450,450,450,463,450,450,450,450,450,450,469,470,471,471,0,478,482,482,483,484,493,494,495,495,495,498,498,500,501,502,502,502,504,505,506,506,506,509,509,502,512,512,502,498,498,517,518,518,518,521,521,518,518,518,524,524,524,524,530,531,531,531,531,539,531,531,531,531,544,531,531,531,531,531,531,550,551,552,552,0,559,560,0,566,0,573,577,577,578,0,0,587,588,592,592,593,0,598,0,601,0,604,604,605,606,0,647,649,650,651,652,654,656,660,660,651,651,651,651,662,651,651,656,651,651,647,666,666,666,666,666,666,656,656,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,705,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,651,0,749,750,751,753,749,749,757,0,776,778,780,781,782,783,784,786,783,783,783,783,783,789,783,783,791,789,789,783,0,810,811,115,115,814,815,115,811,811,818,820,823,811,824,811,825,826,828,830,811,818,831,831,820,831,835,831,831,831,831,0,190,843,844,843,843,0,853,854,856,858,860,858,862,0,874,875,876,877,879,881,883,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,884,0,942,945,948,949,953,955,956,957,958,959,961,964,965,967,969,972,974,975,212,972,977,972,964,979,981,964,964,999,1002,1004,1005,1009,1012,1013,1014,1015,999,999,999,999,999,999,999,999,999,999,1019,1023,1025,999,999,964,1030,1031,1031,1031,964,964,964,1032,1039,1039,1041,1043,1052,1053,1054,1054,1054,1057,1057,1059,1060,1061,1061,1061,1063,1064,1065,1065,1065,1068,1068,1061,1071,1071,1061,1057,1057,1076,1077,1077,1077,1080,1080,1077,1077,1077,1083,1083,1083,1083,1089,1090,1090,1090,1090,1098,1090,1090,1090,1090,1104,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1122,1123,1124,1124,212,964,964,1128,964,959,942,942,942,942,942,942,942,942,942,942,942,212,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1181,949,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,1206,964,0,1214,1215,1216,1218,1220,1222,0,1231,1232,1233,1234,1236,1231,1239,0,314,1294,1296,1297,1298,1299,1301,1303,1305,1308,1308,314,1310,1312,1313,1314,1310,1316,1318,1318,1321,1321,1324,1335,314,1341,1343,1345,1346,1349,1350,1324,1324,1353,1353,1353,1359,1361,1362,1365,1367,1368,1369,1353,1353,1376,1381,1386,1353,1353,1393,1393,1353,1353,1318,1310,1310,1318,1310,1310,1305,314,1411,1412,1412,1412,1412,1412,1412,1418,1305,1421,1422,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1462,1463,1423,1423,1467,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1521,1299,1522,0,1528,1529,1530,1532,1528,1528,1528,0,1537,1537,1537,1537,1541]])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_start")}(Opal.get_singleton_class(self)),$send(self,"lex_start=",$to_a($writer=[186])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_error")}(Opal.get_singleton_class(self)),$send(self,"lex_error=",$to_a($writer=[0])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_interp_words")}(Opal.get_singleton_class(self)),$send(self,"lex_en_interp_words=",$to_a($writer=[195])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_interp_string")}(Opal.get_singleton_class(self)),$send(self,"lex_en_interp_string=",$to_a($writer=[261])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_plain_words")}(Opal.get_singleton_class(self)),$send(self,"lex_en_plain_words=",$to_a($writer=[326])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_plain_string")}(Opal.get_singleton_class(self)),$send(self,"lex_en_plain_string=",$to_a($writer=[329])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_interp_backslash_delimited")}(Opal.get_singleton_class(self)),$send(self,"lex_en_interp_backslash_delimited=",$to_a($writer=[331])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_plain_backslash_delimited")}(Opal.get_singleton_class(self)),$send(self,"lex_en_plain_backslash_delimited=",$to_a($writer=[336])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_interp_backslash_delimited_words")}(Opal.get_singleton_class(self)),$send(self,"lex_en_interp_backslash_delimited_words=",$to_a($writer=[337])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_plain_backslash_delimited_words")}(Opal.get_singleton_class(self)),$send(self,"lex_en_plain_backslash_delimited_words=",$to_a($writer=[343])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_regexp_modifiers")}(Opal.get_singleton_class(self)),$send(self,"lex_en_regexp_modifiers=",$to_a($writer=[345])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_variable")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_variable=",$to_a($writer=[347])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_fname")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_fname=",$to_a($writer=[352])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_endfn")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_endfn=",$to_a($writer=[465])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_dot")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_dot=",$to_a($writer=[473])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_arg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_arg=",$to_a($writer=[494])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_cmdarg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_cmdarg=",$to_a($writer=[525])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_endarg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_endarg=",$to_a($writer=[531])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_mid")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_mid=",$to_a($writer=[539])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_beg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_beg=",$to_a($writer=[563])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_labelarg")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_labelarg=",$to_a($writer=[795])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_value")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_value=",$to_a($writer=[802])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_expr_end")}(Opal.get_singleton_class(self)),$send(self,"lex_en_expr_end=",$to_a($writer=[810])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_leading_dot")}(Opal.get_singleton_class(self)),$send(self,"lex_en_leading_dot=",$to_a($writer=[990])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_line_comment")}(Opal.get_singleton_class(self)),$send(self,"lex_en_line_comment=",$to_a($writer=[998])),$writer[$rb_minus($writer.length,1)],function(self,$parent_nesting){self.$attr_accessor("lex_en_line_begin")}(Opal.get_singleton_class(self)),$send(self,"lex_en_line_begin=",$to_a($writer=[186])),$writer[$rb_minus($writer.length,1)],$const_set($nesting[0],"ESCAPES",$hash("a".$ord(),"","b".$ord(),"\b","e".$ord(),"","f".$ord(),"\f","n".$ord(),"\n","r".$ord(),"\r","s".$ord()," ","t".$ord(),"\t","v".$ord(),"\v","\\".$ord(),"\\").$freeze()),$const_set($nesting[0],"REGEXP_META_CHARACTERS",$send($$("Regexp"),"union",$to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()),self.$attr_reader("source_buffer"),self.$attr_accessor("diagnostics"),self.$attr_accessor("static_env"),self.$attr_accessor("force_utf32"),self.$attr_accessor("cond","cmdarg","context","command_start"),self.$attr_accessor("tokens","comments"),self.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack"),$def(self,"$initialize",(function(version){return this.version=version,this.static_env=nil,this.context=nil,this.tokens=nil,this.comments=nil,this.$reset()}),1),$def(self,"$reset",(function(reset_state){return null==reset_state&&(reset_state=!0),$truthy(reset_state)&&(this.cs=this.$class().$lex_en_line_begin(),this.cond=$$("StackState").$new("cond"),this.cmdarg=$$("StackState").$new("cmdarg"),this.cond_stack=[],this.cmdarg_stack=[]),this.force_utf32=!1,this.source_pts=nil,this.p=0,this.ts=nil,this.te=nil,this.act=0,this.stack=[],this.top=0,this.token_queue=[],this.literal_stack=[],this.eq_begin_s=nil,this.sharp_s=nil,this.newline_s=nil,this.num_base=nil,this.num_digits_s=nil,this.num_suffix_s=nil,this.num_xfrm=nil,this.escape_s=nil,this.escape=nil,this.herebody_s=nil,this.paren_nest=0,this.lambda_stack=[],this.dedent_level=nil,this.command_start=!0,this.cs_before_block_comment=this.$class().$lex_en_line_begin()}),-1),$def(self,"$source_buffer=",(function(source_buffer){var source=nil;return this.source_buffer=source_buffer,$truthy(this.source_buffer)?(source=this.source_buffer.$source(),$eqeq(source.$encoding(),$$$($$("Encoding"),"UTF_8"))?this.source_pts=source.$unpack("U*"):this.source_pts=source.$unpack("C*"),$eqeq(this.source_pts["$[]"](0),65279)?this.p=1:nil):this.source_pts=nil}),1),$def(self,"$encoding",(function(){return this.source_buffer.$source().$encoding()}),0),$const_set($nesting[0],"LEX_STATES",$hash2(["line_begin","expr_dot","expr_fname","expr_value","expr_beg","expr_mid","expr_arg","expr_cmdarg","expr_end","expr_endarg","expr_endfn","expr_labelarg","interp_string","interp_words","plain_string","plain_words"],{line_begin:self.$lex_en_line_begin(),expr_dot:self.$lex_en_expr_dot(),expr_fname:self.$lex_en_expr_fname(),expr_value:self.$lex_en_expr_value(),expr_beg:self.$lex_en_expr_beg(),expr_mid:self.$lex_en_expr_mid(),expr_arg:self.$lex_en_expr_arg(),expr_cmdarg:self.$lex_en_expr_cmdarg(),expr_end:self.$lex_en_expr_end(),expr_endarg:self.$lex_en_expr_endarg(),expr_endfn:self.$lex_en_expr_endfn(),expr_labelarg:self.$lex_en_expr_labelarg(),interp_string:self.$lex_en_interp_string(),interp_words:self.$lex_en_interp_words(),plain_string:self.$lex_en_plain_string(),plain_words:self.$lex_en_plain_string()})),$def(self,"$state",(function(){return $$("LEX_STATES").$invert().$fetch(this.cs,this.cs)}),0),$def(self,"$state=",(function(state){return this.cs=$$("LEX_STATES").$fetch(state)}),1),$def(self,"$push_cmdarg",(function(){return this.cmdarg_stack.$push(this.cmdarg),this.cmdarg=$$("StackState").$new("cmdarg."+this.cmdarg_stack.$count())}),0),$def(self,"$pop_cmdarg",(function(){return this.cmdarg=this.cmdarg_stack.$pop()}),0),$def(self,"$push_cond",(function(){return this.cond_stack.$push(this.cond),this.cond=$$("StackState").$new("cond."+this.cond_stack.$count())}),0),$def(self,"$pop_cond",(function(){return this.cond=this.cond_stack.$pop()}),0),$def(self,"$dedent_level",(function(){var $a,dedent_level;return dedent_level=($a=[this.dedent_level,nil])[0],this.dedent_level=$a[1],dedent_level}),0),$def(self,"$advance",(function(){var $a,$b,pe,self=this,klass=nil,_lex_trans_keys=nil,_lex_key_spans=nil,_lex_index_offsets=nil,_lex_indicies=nil,_lex_trans_targs=nil,_lex_trans_actions=nil,_lex_to_state_actions=nil,_lex_from_state_actions=nil,_lex_eof_trans=nil,p=nil,eof=nil,cmd_state=nil,_slen=nil,_trans=nil,_keys=nil,_inds=nil,_goto_level=nil,$ret_or_1=nil,_wide=nil,tm=nil,heredoc_e=nil,diag_msg=nil,ident_tok=nil,ident_ts=nil,ident_te=nil,current_literal=nil,$writer=nil,line=nil,string=nil,lookahead=nil,token=nil,message=nil,escaped_char=nil,$ret_or_2=nil,unknown_options=nil,type=nil,delimiter=nil,escape=nil,ident=nil,followed_by_nl=nil,nl_emitted=nil,dots_te=nil,value=nil,digits=nil,invalid_idx=nil,invalid_s=nil,codepoints=nil,codepoint_s=nil,spaces_p=nil,codepoint=nil,new_herebody_s=nil,indent=nil,dedent_body=nil;if($truthy(self.token_queue["$any?"]()))return self.token_queue.$shift();for(_lex_trans_keys=(klass=self.$class()).$send("_lex_trans_keys"),_lex_key_spans=klass.$send("_lex_key_spans"),_lex_index_offsets=klass.$send("_lex_index_offsets"),_lex_indicies=klass.$send("_lex_indicies"),_lex_trans_targs=klass.$send("_lex_trans_targs"),_lex_trans_actions=klass.$send("_lex_trans_actions"),_lex_to_state_actions=klass.$send("_lex_to_state_actions"),_lex_from_state_actions=klass.$send("_lex_from_state_actions"),_lex_eof_trans=klass.$send("_lex_eof_trans"),pe=$rb_plus(self.source_pts.$size(),2),$a=[self.p,pe],p=$a[0],eof=$a[1],cmd_state=self.command_start,self.command_start=!1,!1,_slen=null==($a=$to_ary($b=nil))[0]?nil:$a[0],_trans=null==$a[1]?nil:$a[1],_keys=null==$a[2]?nil:$a[2],_inds=null==$a[3]?nil:$a[3],null==$a[4]?nil:$a[4],null==$a[5]?nil:$a[5],_goto_level=0,10,15,20,30,40;$truthy(!0);){if($truthy($rb_le(_goto_level,0))){if($eqeq(p,pe)){_goto_level=30;continue}if($eqeq(self.cs,0)){_goto_level=40;continue}}if($truthy($rb_le(_goto_level,10))&&($eqeqeq(97,$ret_or_1=_lex_from_state_actions["$[]"](self.cs))&&(self.ts=p),_keys=self.cs["$<<"](1),_inds=_lex_index_offsets["$[]"](self.cs),_slen=_lex_key_spans["$[]"](self.cs),_wide=$truthy($ret_or_1=self.source_pts["$[]"](p))?$ret_or_1:0,_trans=$truthy($rb_gt(_slen,0))&&$truthy($rb_le(_lex_trans_keys["$[]"](_keys),_wide))&&$truthy($rb_le(_wide,_lex_trans_keys["$[]"]($rb_plus(_keys,1))))?_lex_indicies["$[]"]($rb_minus($rb_plus(_inds,_wide),_lex_trans_keys["$[]"](_keys))):_lex_indicies["$[]"]($rb_plus(_inds,_slen))),$truthy($rb_le(_goto_level,15))&&(self.cs=_lex_trans_targs["$[]"](_trans),$neqeq(_lex_trans_actions["$[]"](_trans),0)))if($eqeqeq(29,$ret_or_1=_lex_trans_actions["$[]"](_trans)))self.newline_s=p;else if($eqeqeq(117,$ret_or_1))self.escape_s=p,self.escape=nil;else if($eqeqeq(30,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil);else if($eqeqeq(60,$ret_or_1))self.sharp_s=$rb_minus(p,1);else if($eqeqeq(64,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p);else if($eqeqeq(310,$ret_or_1))tm=p;else if($eqeqeq(37,$ret_or_1))tm=p;else if($eqeqeq(39,$ret_or_1))tm=p;else if($eqeqeq(41,$ret_or_1))tm=p;else if($eqeqeq(71,$ret_or_1))heredoc_e=p;else if($eqeqeq(349,$ret_or_1))tm=$rb_minus(p,1),diag_msg="ivar_name";else if($eqeqeq(352,$ret_or_1))tm=$rb_minus(p,2),diag_msg="cvar_name";else if($eqeqeq(360,$ret_or_1))self.escape=nil;else if($eqeqeq(392,$ret_or_1))tm=p;else if($eqeqeq(308,$ret_or_1))ident_tok=self.$tok(),ident_ts=self.ts,ident_te=self.te;else if($eqeqeq(479,$ret_or_1))self.num_base=16,self.num_digits_s=p;else if($eqeqeq(473,$ret_or_1))self.num_base=10,self.num_digits_s=p;else if($eqeqeq(476,$ret_or_1))self.num_base=8,self.num_digits_s=p;else if($eqeqeq(470,$ret_or_1))self.num_base=2,self.num_digits_s=p;else if($eqeqeq(485,$ret_or_1))self.num_base=10,self.num_digits_s=self.ts;else if($eqeqeq(447,$ret_or_1))self.num_base=8,self.num_digits_s=self.ts;else if($eqeqeq(462,$ret_or_1))self.num_suffix_s=p;else if($eqeqeq(455,$ret_or_1))self.num_suffix_s=p;else if($eqeqeq(452,$ret_or_1))self.num_suffix_s=p;else if($eqeqeq(89,$ret_or_1))tm=p;else if($eqeqeq(7,$ret_or_1))self.te=$rb_plus(p,1);else{if($eqeqeq(113,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(5,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(109,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(108,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(115,$ret_or_1))self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if($eqeqeq(114,$ret_or_1)){self.te=p,p=$rb_minus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(111,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$literal().$extend_space(self.ts,self.te);else if($eqeqeq(112,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(6,$ret_or_1))p=$rb_minus(self.te,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(4,$ret_or_1)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if($eqeqeq(145,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(10,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(142,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(141,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(147,$ret_or_1))self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if($eqeqeq(146,$ret_or_1)){self.te=p,p=$rb_minus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(144,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(11,$ret_or_1))p=$rb_minus(self.te,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(9,$ret_or_1)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(173,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(172,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(175,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$literal().$extend_space(self.ts,self.te);else if($eqeqeq(176,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(179,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(178,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(181,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if($eqeqeq(188,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(13,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(185,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(184,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(190,$ret_or_1))self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if($eqeqeq(189,$ret_or_1)){self.te=p,p=$rb_minus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(187,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(12,$ret_or_1)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(192,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(191,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else{if($eqeqeq(199,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DBEG","#{".$freeze()),$truthy(current_literal["$heredoc?"]())&&($writer=[self.herebody_s],$send(current_literal,"saved_herebody_s=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.herebody_s=nil),current_literal.$start_interp_brace(),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(15,$ret_or_1)){self.te=$rb_plus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(195,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(194,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(201,$ret_or_1))self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$literal().$extend_string(self.$tok(),self.ts,self.te):(message=$truthy(self.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",self.$diagnostic("error",message,$hash2(["name"],{name:self.$tok($rb_plus(self.ts,1),self.te)}),self.$range($rb_plus(self.ts,1),self.te)));else{if($eqeqeq(200,$ret_or_1)){self.te=p,p=$rb_minus(p,1),(current_literal=self.$literal()).$flush_string(),current_literal.$extend_content(),self.$emit("tSTRING_DVAR",nil,self.ts,$rb_plus(self.ts,1)),p=self.ts,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(197,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$literal().$extend_space(self.ts,self.te);else if($eqeqeq(198,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(14,$ret_or_1)){if(p=$rb_minus(self.te,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(203,$ret_or_1)){if(self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(202,$ret_or_1)){if(self.te=$rb_plus(p,1),string=self.$tok(),$truthy($rb_ge(self.version,22))&&$not(self.cond["$active?"]())&&(lookahead=self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te,2),!0))),current_literal=self.$literal(),$not(current_literal["$heredoc?"]())&&$truthy(token=current_literal.$nest_and_try_closing(string,self.ts,self.te,lookahead))){$eqeq(token["$[]"](0),"tLABEL_END")?(p=$rb_plus(p,1),self.$pop_literal(),self.cs=795):self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$extend_string(string,self.ts,self.te)}else if($eqeqeq(205,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$literal().$extend_space(self.ts,self.te);else{if($eqeqeq(206,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tREGEXP_OPT",self.$tok(self.ts,$rb_minus(self.te,1)),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(207,$ret_or_1)){self.te=p,p=$rb_minus(p,1),unknown_options=self.$tok().$scan(/[^imxouesn]/),$truthy(unknown_options["$any?"]())&&self.$diagnostic("error","regexp_options",$hash2(["options"],{options:unknown_options.$join()})),self.$emit("tREGEXP_OPT"),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(16,$ret_or_1)){self.te=$rb_plus(p,1),$truthy(self.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?self.$emit("tNTH_REF",self.$tok($rb_plus(self.ts,1)).$to_i()):$truthy(self.$tok()["$=~"](/^\$([&`'+])$/))?self.$emit("tBACK_REF"):self.$emit("tGVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(208,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy(self.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?self.$emit("tNTH_REF",self.$tok($rb_plus(self.ts,1)).$to_i()):$truthy(self.$tok()["$=~"](/^\$([&`'+])$/))?self.$emit("tBACK_REF"):self.$emit("tGVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(210,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy(self.$tok()["$=~"](/^@@[0-9]/))&&self.$diagnostic("error","cvar_name",$hash2(["name"],{name:self.$tok()})),self.$emit("tCVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(209,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy(self.$tok()["$=~"](/^@[0-9]/))&&self.$diagnostic("error","ivar_name",$hash2(["name"],{name:self.$tok()})),self.$emit("tIVAR"),self.cs=self.$stack_pop(),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(231,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(217,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(18,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(214,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(226,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(20,$ret_or_1)){if(self.te=$rb_plus(p,1),$truthy(self["$version?"](23))){type=($b=[self.$tok()["$[]"]($range(0,-2,!1)),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(213,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(212,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(230,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(227,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tCONSTANT"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(229,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(224,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(220,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(225,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(218,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(223,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(19,$ret_or_1)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(17,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(216,$ret_or_1)){if($eqeqeq(43,$ret_or_2=self.act)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(44,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(45,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}}else{if($eqeqeq(22,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tLABEL",self.$tok(self.ts,$rb_minus(self.te,2)),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=795,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(23,$ret_or_1)){if(self.te=$rb_plus(p,1),$truthy($rb_ge(self.version,31))&&$truthy(self.context.$in_argdef())){self.$emit("tBDOT3","...".$freeze()),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,3),self.cs=810,_goto_level=20;continue}if($eqeqeq(233,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(232,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(235,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(234,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(21,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(241,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(240,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(239,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(251,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(242,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tIDENTIFIER"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(247,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(245,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(250,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(274,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(257,$ret_or_1)){self.te=$rb_plus(p,1),$eqeq(self.$tok(tm,$rb_plus(tm,1)),"/".$freeze())&&($truthy($rb_lt(self.version,30))?self.$diagnostic("warning","ambiguous_literal",nil,self.$range(tm,$rb_plus(tm,1))):self.$diagnostic("warning","ambiguous_regexp",nil,self.$range(tm,$rb_plus(tm,1)))),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(263,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(25,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(265,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(40,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(252,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(253,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(264,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(260,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$diagnostic("warning","ambiguous_prefix",$hash2(["prefix"],{prefix:self.$tok(tm,self.te)}),self.$range(tm,self.te)),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(262,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(256,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(255,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(273,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(26,$ret_or_1))p=$rb_minus(self.te,1);else{if($eqeqeq(42,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(24,$ret_or_1)){if($eqeqeq(72,$ret_or_2=self.act)){p=$rb_minus(self.te,1),$eqeq(self.$tok(tm,$rb_plus(tm,1)),"/".$freeze())&&($truthy($rb_lt(self.version,30))?self.$diagnostic("warning","ambiguous_literal",nil,self.$range(tm,$rb_plus(tm,1))):self.$diagnostic("warning","ambiguous_regexp",nil,self.$range(tm,$rb_plus(tm,1)))),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(73,$ret_or_2)){p=$rb_minus(self.te,1),self.$diagnostic("warning","ambiguous_prefix",$hash2(["prefix"],{prefix:self.$tok(tm,self.te)}),self.$range(tm,self.te)),p=$rb_minus(tm,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(78,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}p=$rb_minus(self.te,1)}else{if($eqeqeq(44,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if($eqeqeq(278,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(279,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if($eqeqeq(45,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}if($eqeqeq(43,$ret_or_1)){if($eqeqeq(85,$ret_or_2=self.act)){p=$rb_minus(self.te,1),$truthy(self.cond["$active?"]())?self.$emit("kDO_COND","do".$freeze(),$rb_minus(self.te,2),self.te):self.$emit("kDO","do".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(86,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=494,_goto_level=20;continue}}else{if($eqeqeq(289,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_do(!0),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(282,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(283,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(284,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(287,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(293,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(292,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(301,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(295,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(299,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(294,$ret_or_1)){if($eqeqeq(93,$ret_or_2=self.act)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(94,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=563,_goto_level=20;continue}}else{if($eqeqeq(57,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(334,$ret_or_1)){self.te=$rb_plus(p,1),type=delimiter=self.$tok()["$[]"](0).$chr(),p=$rb_minus(p,1),self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if($eqeqeq(326,$ret_or_1)){self.te=$rb_plus(p,1),type=($b=[self.source_buffer.$slice(self.ts).$chr(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if($eqeqeq(55,$ret_or_1)){self.te=$rb_plus(p,1),type=($b=[self.$tok()["$[]"]($range(0,-2,!1)),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if($eqeqeq(347,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_minus(p,1),self.$emit("tSYMBEG",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),self.cs=352,_goto_level=20;continue}if($eqeqeq(335,$ret_or_1)){self.te=$rb_plus(p,1),type=($b=[self.$tok(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts),_goto_level=20;continue}if($eqeqeq(346,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),$rb_plus(self.ts,2))),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(69,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1)),self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(357,$ret_or_1)){self.te=$rb_plus(p,1),escape=$hash2([" ","\r","\n","\t","\v","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\v":"\\v","\f":"\\f"})["$[]"](self.source_buffer.$slice($rb_plus(self.ts,1))),self.$diagnostic("warning","invalid_escape_use",$hash2(["escape"],{escape:escape}),self.$range()),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(356,$ret_or_1))self.te=$rb_plus(p,1),self.$diagnostic("fatal","incomplete_escape",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(336,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(52,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),$truthy(self["$version?"](18))?(ident=self.$tok(self.ts,$rb_minus(self.te,2)),self.$emit($truthy(self.source_buffer.$slice(self.ts)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",ident,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,1),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](ident))?self.cs=810:self.cs=self.$arg_or_cmdarg(cmd_state)):(self.$emit("tLABEL",self.$tok(self.ts,$rb_minus(self.te,2)),self.ts,$rb_minus(self.te,1)),self.cs=795),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(49,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER",ident_tok,ident_ts,ident_te),p=$rb_minus(ident_te,1),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](ident_tok))&&$truthy($rb_lt(self.version,25))?self.cs=465:self.cs=525,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(320,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if($eqeqeq(56,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(304,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(330,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(329,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tSTAR","*".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(325,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("fatal","string_eof",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else if($eqeqeq(354,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(337,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1)),self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(350,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(355,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("fatal","incomplete_escape",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(361,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(327,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(331,$ret_or_1)){self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$emit("tBDOT2"):self.$emit("tDOT2"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(332,$ret_or_1)){self.te=p,p=$rb_minus(p,1),followed_by_nl=$rb_minus(self.te,1)["$=="](self.newline_s),nl_emitted=!1,dots_te=$truthy(followed_by_nl)?$rb_minus(self.te,1):self.te,$truthy($rb_ge(self.version,30))?$truthy(self.lambda_stack["$any?"]())&&$eqeq($rb_plus(self.lambda_stack.$last(),1),self.paren_nest)?self.$emit("tDOT3","...".$freeze(),self.ts,dots_te):(self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te),$truthy($rb_ge(self.version,31))&&$truthy(followed_by_nl)&&$truthy(self.context.$in_argdef())&&(self.$emit("tNL",$rb_minus(self.te,1),self.te),nl_emitted=!0)):$truthy($rb_ge(self.version,27))?self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te):self.$emit("tDOT3","...".$freeze(),self.ts,dots_te),$truthy(followed_by_nl)&&$not(nl_emitted)&&(p=$rb_minus(p,1)),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(307,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(317,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(319,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if($eqeqeq(322,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(54,$ret_or_1))p=$rb_minus(self.te,1),self.$diagnostic("fatal","string_eof",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else if($eqeqeq(73,$ret_or_1))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(74,$ret_or_1)){p=$rb_minus(self.te,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(48,$ret_or_1)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(53,$ret_or_1))p=$rb_minus(self.te,1);else{if($eqeqeq(68,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(51,$ret_or_1)){if($eqeqeq(99,$ret_or_2=self.act)){p=$rb_minus(self.te,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(106,$ret_or_2))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(117,$ret_or_2)){if(p=$rb_minus(self.te,1),$truthy($rb_ge(self.version,27))){self.$emit("tPIPE",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,2),self.cs=810,_goto_level=20;continue}if($eqeqeq(121,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(122,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(123,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(127,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(128,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(132,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}}}else{if($eqeqeq(395,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(396,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(397,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(401,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(77,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(405,$ret_or_1)){self.te=$rb_plus(p,1),self.cs=self.$push_literal(self.$tok(),self.$tok(),self.ts),_goto_level=20;continue}if($eqeqeq(404,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(403,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(407,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(406,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(76,$ret_or_1)){p=$rb_minus(self.te,1),p=$rb_minus(p,1),self.cs=563,_goto_level=20;continue}if($eqeqeq(440,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tLAMBDA","->".$freeze(),self.ts,$rb_plus(self.ts,2)),self.lambda_stack.$push(self.paren_nest),self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(86,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(415,$ret_or_1)){self.te=$rb_plus(p,1),type=($b=[self.$tok(),self.$tok()["$[]"](-1).$chr()])[0],delimiter=$b[1],self.cs=self.$push_literal(type,delimiter,self.ts,nil,!1,!1,!0),_goto_level=20;continue}if($eqeqeq(79,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(436,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=473,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(489,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(429,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(434,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tOP_ASGN",self.$tok(self.ts,$rb_minus(self.te,1))),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(420,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tEH","?".$freeze()),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(417,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(419,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tSEMI",";".$freeze()),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(494,$ret_or_1))self.te=$rb_plus(p,1),self.$diagnostic("error","bare_backslash",nil,self.$range(self.ts,$rb_plus(self.ts,1))),p=$rb_minus(p,1);else if($eqeqeq(414,$ret_or_1))self.te=$rb_plus(p,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else{if($eqeqeq(413,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(505,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(503,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(502,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(444,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("error","no_dot_digit_literal");else{if($eqeqeq(491,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(433,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),$writer=[self.top,self.cs],$send(self.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.top=$rb_plus(self.top,1),self.cs=347,_goto_level=20;continue}if($eqeqeq(441,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=473,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(497,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(439,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(435,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(428,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(442,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(426,$ret_or_1))self.te=p,p=$rb_minus(p,1);else if($eqeqeq(432,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else{if($eqeqeq(84,$ret_or_1)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(80,$ret_or_1))p=$rb_minus(self.te,1),self.$diagnostic("error","no_dot_digit_literal");else{if($eqeqeq(83,$ret_or_1)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(78,$ret_or_1))p=$rb_minus(self.te,1),self.$diagnostic("fatal","unexpected",$hash2(["character"],{character:self.$tok().$inspect()["$[]"]($range(1,-2,!1))}));else if($eqeqeq(81,$ret_or_1)){if($eqeqeq(145,$ret_or_2=self.act)){p=$rb_minus(self.te,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),$eqeq(self.$tok(),"{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(146,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(147,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(148,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(149,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(150,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(151,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),$truthy(self["$version?"](18))&&$eqeq(self.$tok(),"not".$freeze())){self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(152,$ret_or_2)){p=$rb_minus(self.te,1),$truthy(self["$version?"](18))?(self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))||(self.cs=self.$arg_or_cmdarg(cmd_state))):self.$emit("k__ENCODING__","__ENCODING__".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(153,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(154,$ret_or_2)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(156,$ret_or_2)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tINTEGER",self.$tok(self.ts,$rb_minus(self.te,1)).$to_i(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else if($eqeqeq(157,$ret_or_2)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tFLOAT",self.$tok(self.ts,$rb_minus(self.te,1)).$to_f(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else{if($eqeqeq(158,$ret_or_2)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(160,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(164,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(165,$ret_or_2)){p=$rb_minus(self.te,1),$eqeq(tm,self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(167,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(168,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}}}else{if($eqeqeq(516,$ret_or_1)){if(self.te=$rb_plus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),$truthy($rb_lt(self.version,27))){p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tBDOT3"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(95,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(510,$ret_or_1)){self.te=$rb_plus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(513,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if($eqeqeq(515,$ret_or_1)){if(self.te=p,p=$rb_minus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),$truthy($rb_lt(self.version,27))){p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tBDOT2"),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(514,$ret_or_1)){self.te=p,p=$rb_minus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(512,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(90,$ret_or_1)){if(p=$rb_minus(self.te,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if($eqeqeq(87,$ret_or_1)){p=$rb_minus(self.te,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(91,$ret_or_1)){if($eqeqeq(181,$ret_or_2=self.act)){if(p=$rb_minus(self.te,1),$truthy($rb_lt(self.version,27))){self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else if($eqeqeq(185,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tNL",nil,self.newline_s,$rb_plus(self.newline_s,1)),p=$rb_minus(p,1),self.cs=186,p=$rb_plus(p,1),_goto_level=40;continue}}else{if($eqeqeq(519,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.$emit_comment(self.eq_begin_s,self.te),self.cs=self.cs_before_block_comment,_goto_level=20;continue}if($eqeqeq(518,$ret_or_1))self.te=p,p=$rb_minus(p,1),self.$diagnostic("fatal","embedded_document",nil,self.$range(self.eq_begin_s,$rb_plus(self.eq_begin_s,"=begin".$length())));else{if($eqeqeq(106,$ret_or_1)){self.te=$rb_plus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if($eqeqeq(2,$ret_or_1))self.te=$rb_plus(p,1),p=$rb_minus(pe,3);else{if($eqeqeq(98,$ret_or_1)){self.te=$rb_plus(p,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if($eqeqeq(99,$ret_or_1)){self.te=$rb_plus(p,1),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(100,$ret_or_1))self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(105,$ret_or_1)){self.te=p,p=$rb_minus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if($eqeqeq(104,$ret_or_1)){self.te=p,p=$rb_minus(p,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if($eqeqeq(1,$ret_or_1)){p=$rb_minus(self.te,1),cmd_state=!0,p=$rb_minus(p,1),self.cs=802,_goto_level=20;continue}if($eqeqeq(67,$ret_or_1))self.newline_s=p,self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p);else if($eqeqeq(110,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(143,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(174,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(180,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(186,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(193,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(196,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else if($eqeqeq(204,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string())}else{if($eqeqeq(275,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(266,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(tm,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(258,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(358,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),escape=$hash2([" ","\r","\n","\t","\v","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\v":"\\v","\f":"\\f"})["$[]"](self.source_buffer.$slice($rb_plus(self.ts,1))),self.$diagnostic("warning","invalid_escape_use",$hash2(["escape"],{escape:escape}),self.$range()),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(333,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),followed_by_nl=$rb_minus(self.te,1)["$=="](self.newline_s),nl_emitted=!1,dots_te=$truthy(followed_by_nl)?$rb_minus(self.te,1):self.te,$truthy($rb_ge(self.version,30))?$truthy(self.lambda_stack["$any?"]())&&$eqeq($rb_plus(self.lambda_stack.$last(),1),self.paren_nest)?self.$emit("tDOT3","...".$freeze(),self.ts,dots_te):(self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te),$truthy($rb_ge(self.version,31))&&$truthy(followed_by_nl)&&$truthy(self.context.$in_argdef())&&(self.$emit("tNL",$rb_minus(self.te,1),self.te),nl_emitted=!0)):$truthy($rb_ge(self.version,27))?self.$emit("tBDOT3","...".$freeze(),self.ts,dots_te):self.$emit("tDOT3","...".$freeze(),self.ts,dots_te),$truthy(followed_by_nl)&&$not(nl_emitted)&&(p=$rb_minus(p,1)),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(321,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs_before_block_comment=self.cs,self.cs=186,_goto_level=20;continue}if($eqeqeq(443,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),$eqeq(self.paren_nest,0)&&self.$diagnostic("warning","triple_dot_at_eol",nil,self.$range(self.ts,$rb_minus(self.te,1))),self.$emit("tDOT3","...".$freeze(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(520,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),self.$emit_comment(self.eq_begin_s,self.te),self.cs=self.cs_before_block_comment,_goto_level=20;continue}if($eqeqeq(517,$ret_or_1))self.newline_s=p,self.te=$rb_plus(p,1);else{if($eqeqeq(107,$ret_or_1)){self.newline_s=p,self.te=$rb_plus(p,1),self.eq_begin_s=self.ts,self.cs=998,_goto_level=20;continue}if($eqeqeq(3,$ret_or_1))self.newline_s=p,self.te=$rb_plus(p,1),p=$rb_minus(pe,3);else{if($eqeqeq(465,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$3(chars){var self=null==$$3.$$s?this:$$3.$$s;return null==chars&&(chars=nil),self.$emit("tRATIONAL",self.$Rational(chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(463,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$4(chars){var self=null==$$4.$$s?this:$$4.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(468,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$5(chars){var self=null==$$5.$$s?this:$$5.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Rational(chars)))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(466,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$6(chars){var self=null==$$6.$$s?this:$$6.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(464,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$7(chars){var self=null==$$7.$$s?this:$$7.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(467,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$8(chars){var self=null==$$8.$$s?this:$$8.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tINTEGER",chars,self.ts,$rb_minus(self.te,6)),p=$rb_minus(p,6)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(456,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$9(chars){var self=null==$$9.$$s?this:$$9.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Float(chars)))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(457,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$10(chars){var self=null==$$10.$$s?this:$$10.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars),self.ts,$rb_minus(self.te,2)),p=$rb_minus(p,2)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(458,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$11(chars){var self=null==$$11.$$s?this:$$11.$$s;return null==chars&&(chars=nil),self.$emit("tRATIONAL",self.$Rational(chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(460,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$12(chars){var self=null==$$12.$$s?this:$$12.$$s;return null==chars&&(chars=nil),self.$emit("tIMAGINARY",self.$Complex(0,self.$Rational(chars)))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(459,$ret_or_1)){self.num_xfrm=$send(self,"lambda",[],(function $$13(chars){var self=null==$$13.$$s?this:$$13.$$s;return null==self.ts&&(self.ts=nil),null==self.te&&(self.te=nil),null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars),self.ts,$rb_minus(self.te,6)),p=$rb_minus(p,6)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(137,$ret_or_1))self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&(($truthy(codepoints["$start_with?"](" "))||$truthy(codepoints["$start_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),($truthy(codepoints["$end_with?"](" "))||$truthy(codepoints["$end_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(function $$14($mlhs_tmp1){var $c,self=null==$$14.$$s?this:$$14.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$mlhs_tmp1&&($mlhs_tmp1=nil),codepoint_str=null==($c=$to_ary($mlhs_tmp1))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],$truthy(spaces)?codepoint_s=$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$("Encoding"),"UTF_8"))),codepoint_s=$rb_plus(codepoint_s,codepoint_str.$length()))}),{$$arity:1,$$s:self,$$brk:$brk,$$has_top_level_mlhs_arg:!0})}catch(err){if(err===$brk)return err.$v;throw err}}(),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(168,$ret_or_1))self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&(($truthy(codepoints["$start_with?"](" "))||$truthy(codepoints["$start_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),($truthy(codepoints["$end_with?"](" "))||$truthy(codepoints["$end_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(function $$15($mlhs_tmp1){var $c,self=null==$$15.$$s?this:$$15.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$mlhs_tmp1&&($mlhs_tmp1=nil),codepoint_str=null==($c=$to_ary($mlhs_tmp1))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],$truthy(spaces)?codepoint_s=$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$("Encoding"),"UTF_8"))),codepoint_s=$rb_plus(codepoint_s,codepoint_str.$length()))}),{$$arity:1,$$s:self,$$brk:$brk,$$has_top_level_mlhs_arg:!0})}catch(err){if(err===$brk)return err.$v;throw err}}(),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(382,$ret_or_1)){self.escape="",codepoints=self.$tok($rb_plus(self.escape_s,2),$rb_minus(p,1)),codepoint_s=$rb_plus(self.escape_s,2),$truthy($rb_lt(self.version,24))&&(($truthy(codepoints["$start_with?"](" "))||$truthy(codepoints["$start_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus(self.escape_s,2),$rb_plus(self.escape_s,3))),$truthy(spaces_p=codepoints.$index(/[ \t]{2}/))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_plus($rb_plus(codepoint_s,spaces_p),1),$rb_plus($rb_plus(codepoint_s,spaces_p),2))),($truthy(codepoints["$end_with?"](" "))||$truthy(codepoints["$end_with?"]("\t")))&&self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(p,1),p))),function(){var $brk=Opal.new_brk();try{$send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],(function $$16($mlhs_tmp1){var $c,self=null==$$16.$$s?this:$$16.$$s,codepoint_str=nil,spaces=nil,codepoint=nil;return null==self.escape&&(self.escape=nil),null==$mlhs_tmp1&&($mlhs_tmp1=nil),codepoint_str=null==($c=$to_ary($mlhs_tmp1))[0]?nil:$c[0],spaces=null==$c[1]?nil:$c[1],$truthy(spaces)?codepoint_s=$rb_plus(codepoint_s,spaces.$length()):(codepoint=codepoint_str.$to_i(16),$truthy($rb_ge(codepoint,1114112))&&(self.$diagnostic("error","unicode_point_too_large",nil,self.$range(codepoint_s,$rb_plus(codepoint_s,codepoint_str.$length()))),Opal.brk(nil,$brk)),self.escape=$rb_plus(self.escape,codepoint.$chr($$$($$("Encoding"),"UTF_8"))),codepoint_s=$rb_plus(codepoint_s,codepoint_str.$length()))}),{$$arity:1,$$s:self,$$brk:$brk,$$has_top_level_mlhs_arg:!0})}catch(err){if(err===$brk)return err.$v;throw err}}(),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(118,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(149,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(363,$ret_or_1)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(121,$ret_or_1))self.$diagnostic("fatal","invalid_escape"),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(152,$ret_or_1))self.$diagnostic("fatal","invalid_escape"),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(366,$ret_or_1)){self.$diagnostic("fatal","invalid_escape"),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(123,$ret_or_1))self.escape="",self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(154,$ret_or_1))self.escape="",self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(368,$ret_or_1)){self.escape="",self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(120,$ret_or_1))self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(151,$ret_or_1))self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(365,$ret_or_1)){self.escape=self.$encode_escape(self.$tok(self.escape_s,p).$to_i(8)["$%"](256)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(140,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(171,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(385,$ret_or_1)){self.escape=self.$encode_escape(self.$tok($rb_plus(self.escape_s,1),p).$to_i(16)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(139,$ret_or_1))self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(170,$ret_or_1))self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(384,$ret_or_1)){self.$diagnostic("fatal","invalid_hex_escape",nil,self.$range($rb_minus(self.escape_s,1),$rb_plus(p,2))),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(134,$ret_or_1))self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$("Encoding"),"UTF_8")),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(165,$ret_or_1))self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$("Encoding"),"UTF_8")),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(379,$ret_or_1)){self.escape=self.$tok($rb_plus(self.escape_s,1),p).$to_i(16).$chr($$$($$("Encoding"),"UTF_8")),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(133,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(164,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(378,$ret_or_1)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(138,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(169,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(383,$ret_or_1)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(135,$ret_or_1))self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(166,$ret_or_1))self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(380,$ret_or_1)){self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(119,$ret_or_1))self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(150,$ret_or_1))self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(364,$ret_or_1)){self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(177,$ret_or_1))self.escape_s=p,self.escape=nil,self.te=$rb_plus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(182,$ret_or_1))self.escape_s=p,self.escape=nil,self.te=$rb_plus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(58,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.newline_s=p;else if($eqeqeq(31,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if($eqeqeq(33,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if($eqeqeq(35,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p;else if($eqeqeq(219,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(238,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(246,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(34,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(277,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(269,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(288,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(300,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(296,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(59,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(50,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=$rb_plus(p,1),self.$emit("tIDENTIFIER",ident_tok,ident_ts,ident_te),p=$rb_minus(ident_te,1),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](ident_tok))&&$truthy($rb_lt(self.version,25))?self.cs=465:self.cs=525,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(318,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(402,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(398,$ret_or_1)){if($truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),$truthy(self.context.$in_kwarg())){p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}self.cs=186,_goto_level=20;continue}if($eqeqeq(411,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(408,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),self.cs=186,_goto_level=20;continue}if($eqeqeq(495,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(427,$ret_or_1)){$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1),self.cs=990,_goto_level=20;continue}if($eqeqeq(101,$ret_or_1))$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(268,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),self.te=p,p=$rb_minus(p,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),self.$emit("tLAMBEG","{".$freeze(),$rb_minus(self.te,1),self.te)):self.$emit("tLCURLY","{".$freeze(),$rb_minus(self.te,1),self.te),self.command_start=!0,self.paren_nest=$rb_plus(self.paren_nest,1),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(290,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),self.te=p,p=$rb_minus(p,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),self.$emit("tLAMBEG","{".$freeze())):self.$emit("tLBRACE_ARG","{".$freeze()),self.paren_nest=$rb_plus(self.paren_nest,1),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(393,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),self.te=p,p=$rb_minus(p,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),self.command_start=!0,self.$emit("tLAMBEG","{".$freeze())):self.$emit("tLBRACE","{".$freeze()),self.paren_nest=$rb_plus(self.paren_nest,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(508,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),current_literal=self.$literal(),$truthy(current_literal)&¤t_literal.$start_interp_brace(),self.te=p,p=$rb_minus(p,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),$eqeq(self.$tok(),"{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(509,$ret_or_1)){if(current_literal=self.$literal(),$truthy(current_literal)&&$truthy(current_literal.$end_interp_brace_and_try_closing())){$truthy(self["$version?"](18,19))?(self.$emit("tRCURLY","}".$freeze(),$rb_minus(p,1),p),self.cond.$lexpop(),self.cmdarg.$lexpop()):self.$emit("tSTRING_DEND","}".$freeze(),$rb_minus(p,1),p),$truthy(current_literal.$saved_herebody_s())&&(self.herebody_s=current_literal.$saved_herebody_s()),p=$rb_minus(p,1),self.cs=self.$next_state_for_literal(current_literal),p=$rb_plus(p,1),_goto_level=40;continue}self.paren_nest=$rb_minus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),($eqeq(self.$tok(),"}".$freeze())||$eqeq(self.$tok(),"]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(61,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p);else if($eqeqeq(65,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.newline_s=p;else if($eqeqeq(222,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(237,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(249,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(271,$ret_or_1)){self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(286,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(298,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(324,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(400,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(410,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(431,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(103,$ret_or_1))self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(243,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),self.$emit("tFID",self.$tok(self.ts,tm),self.ts,tm),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_minus(tm,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(338,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(309,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(424,$ret_or_1)){if(tm=p,$eqeqeq(145,$ret_or_2=self.act)){p=$rb_minus(self.te,1),$eqeq(self.lambda_stack.$last(),self.paren_nest)?(self.lambda_stack.$pop(),$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLAMBEG","{".$freeze()):self.$emit("kDO_LAMBDA","do".$freeze())):$eqeq(self.$tok(),"{".$freeze())?self.$emit("tLCURLY","{".$freeze()):self.$emit_do(),$eqeq(self.$tok(),"{".$freeze())&&(self.paren_nest=$rb_plus(self.paren_nest,1)),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(146,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=352,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(147,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("kCLASS","class".$freeze(),self.ts,$rb_plus(self.ts,5)),self.$emit("tLSHFT","<<".$freeze(),$rb_minus(self.te,2),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(148,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(149,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(150,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(151,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),$truthy(self["$version?"](18))&&$eqeq(self.$tok(),"not".$freeze())){self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(152,$ret_or_2)){p=$rb_minus(self.te,1),$truthy(self["$version?"](18))?(self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))||(self.cs=self.$arg_or_cmdarg(cmd_state))):self.$emit("k__ENCODING__","__ENCODING__".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(153,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(154,$ret_or_2)){p=$rb_minus(self.te,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(156,$ret_or_2)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tINTEGER",self.$tok(self.ts,$rb_minus(self.te,1)).$to_i(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else if($eqeqeq(157,$ret_or_2)){if(p=$rb_minus(self.te,1),!$truthy(self["$version?"](18,19,20))){self.$emit("tFLOAT",self.$tok(self.ts,$rb_minus(self.te,1)).$to_f(),self.ts,$rb_minus(self.te,1)),p=$rb_minus(p,1),p=$rb_plus(p,1),_goto_level=40;continue}self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:self.$tok($rb_minus(self.te,1),self.te)}),self.$range($rb_minus(self.te,1),self.te))}else{if($eqeqeq(158,$ret_or_2)){p=$rb_minus(self.te,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(160,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("tCONSTANT"),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(164,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(165,$ret_or_2)){p=$rb_minus(self.te,1),$eqeq(tm,self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(167,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(168,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}}}else{if($eqeqeq(244,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tFID",self.$tok(self.ts,tm),self.ts,tm),self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_minus(tm,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(339,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(311,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(425,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),$eqeq(tm,self.te)?self.$emit("tFID"):(self.$emit("tIDENTIFIER",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1)),self.cs=494,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(340,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(312,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(341,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(313,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(345,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(316,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(344,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(315,$ret_or_1)){if(tm=$rb_minus(p,2),$eqeqeq(99,$ret_or_2=self.act)){p=$rb_minus(self.te,1),self.$emit("tUNARY_NUM",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(106,$ret_or_2))p=$rb_minus(self.te,1),self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1)));else{if($eqeqeq(117,$ret_or_2)){if(p=$rb_minus(self.te,1),$truthy($rb_ge(self.version,27))){self.$emit("tPIPE",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=$rb_minus(p,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}p=$rb_minus(p,2),self.cs=810,_goto_level=20;continue}if($eqeqeq(121,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("PUNCTUATION_BEGIN")),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(122,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(123,$ret_or_2)){p=$rb_minus(self.te,1),self.$emit_table($$("KEYWORDS_BEGIN")),self.command_start=!0,self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(127,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(128,$ret_or_2)){if(p=$rb_minus(self.te,1),self.$emit("tIDENTIFIER"),$not(self.static_env["$nil?"]())&&$truthy(self.static_env["$declared?"](self.$tok()))){self.cs=465,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$arg_or_cmdarg(cmd_state),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(132,$ret_or_2)){p=$rb_minus(self.te,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}}}else{if($eqeqeq(342,$ret_or_1)){tm=$rb_minus(p,3),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(314,$ret_or_1)){tm=$rb_minus(p,3),self.te=p,p=$rb_minus(p,1),p=$rb_minus(self.ts,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(343,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tSYMBOL",self.$tok($rb_plus(self.ts,1),tm),self.ts,tm),p=$rb_minus(tm,1),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(490,$ret_or_1)){tm=$rb_minus(p,2),self.te=p,p=$rb_minus(p,1),self.$emit("tCONSTANT",self.$tok(self.ts,tm),self.ts,tm),p=$rb_minus(tm,1),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(267,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit("tLBRACK","[".$freeze(),$rb_minus(self.te,1),self.te),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(386,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit("tLBRACK","[".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(493,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit("tLBRACK2","[".$freeze()),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(496,$ret_or_1)){self.paren_nest=$rb_minus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),($eqeq(self.$tok(),"}".$freeze())||$eqeq(self.$tok(),"]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(259,$ret_or_1)){if(self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),$truthy(self["$version?"](18))){self.$emit("tLPAREN2","(".$freeze(),$rb_minus(self.te,1),self.te),self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}self.$emit("tLPAREN_ARG","(".$freeze(),$rb_minus(self.te,1),self.te),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(272,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),self.$emit("tLPAREN2","(".$freeze()),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(280,$ret_or_1)){if(self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),self.$emit("tLPAREN_ARG","(".$freeze(),$rb_minus(self.te,1),self.te),$truthy(self["$version?"](18))){self.cs=802,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(328,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),self.$emit("tLPAREN","(".$freeze()),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(437,$ret_or_1)){self.cond.$push(!1),self.cmdarg.$push(!1),self.paren_nest=$rb_plus(self.paren_nest,1),$truthy(self["$version?"](18))&&(self.command_start=!0),self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(438,$ret_or_1)){self.paren_nest=$rb_minus(self.paren_nest,1),self.te=p,p=$rb_minus(p,1),self.$emit_table($$("PUNCTUATION")),$truthy($rb_lt(self.version,24))?(self.cond.$lexpop(),self.cmdarg.$lexpop()):(self.cond.$pop(),self.cmdarg.$pop()),($eqeq(self.$tok(),"}".$freeze())||$eqeq(self.$tok(),"]".$freeze()))&&($truthy($rb_ge(self.version,25))?self.cs=810:self.cs=531),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(72,$ret_or_1))heredoc_e=p,self.newline_s=p;else if($eqeqeq(353,$ret_or_1)){if(new_herebody_s=p,self.te=p,p=$rb_minus(p,1),self.$tok(self.ts,heredoc_e)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),indent=$truthy($ret_or_2=(($b=$gvars["~"])===nil?nil:$b["$[]"](1))["$empty?"]()["$!"]())?$ret_or_2:(($b=$gvars["~"])===nil?nil:$b["$[]"](2))["$empty?"]()["$!"](),dedent_body=(($b=$gvars["~"])===nil?nil:$b["$[]"](2))["$empty?"]()["$!"](),type=$truthy((($b=$gvars["~"])===nil?nil:$b["$[]"](3))["$empty?"]())?'<<"'.$freeze():$rb_plus("<<".$freeze(),($b=$gvars["~"])===nil?nil:$b["$[]"](3)),delimiter=($b=$gvars["~"])===nil?nil:$b["$[]"](4),$truthy($rb_ge(self.version,27))?($truthy($rb_gt(delimiter.$count("\n"),0))||$truthy($rb_gt(delimiter.$count("\r"),0)))&&self.$diagnostic("error","unterminated_heredoc_id",nil,self.$range(self.ts,$rb_plus(self.ts,1))):$truthy($rb_ge(self.version,24))&&$truthy($rb_gt(delimiter.$count("\n"),0))&&($truthy(delimiter["$end_with?"]("\n"))?(self.$diagnostic("warning","heredoc_id_ends_with_nl",nil,self.$range(self.ts,$rb_plus(self.ts,1))),delimiter=delimiter.$rstrip()):self.$diagnostic("fatal","heredoc_id_has_newline",nil,self.$range(self.ts,$rb_plus(self.ts,1)))),$truthy(dedent_body)&&$truthy(self["$version?"](18,19,20,21,22))){self.$emit("tLSHFT","<<".$freeze(),self.ts,$rb_plus(self.ts,2)),p=$rb_plus(self.ts,1),self.cs=563,p=$rb_plus(p,1),_goto_level=40;continue}self.cs=self.$push_literal(type,delimiter,self.ts,heredoc_e,indent,dedent_body),self.herebody_s=$truthy($ret_or_2=self.herebody_s)?$ret_or_2:new_herebody_s,p=$rb_minus(self.herebody_s,1)}else{if($eqeqeq(348,$ret_or_1)){tm=$rb_minus(p,1),diag_msg="ivar_name",self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(351,$ret_or_1)){tm=$rb_minus(p,2),diag_msg="cvar_name",self.te=p,p=$rb_minus(p,1),$truthy($rb_ge(self.version,27))?self.$diagnostic("error",diag_msg,$hash2(["name"],{name:self.$tok(tm,self.te)}),self.$range(tm,self.te)):(self.$emit("tCOLON",self.$tok(self.ts,$rb_plus(self.ts,1)),self.ts,$rb_plus(self.ts,1)),p=self.ts),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(359,$ret_or_1)){self.escape=nil,self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(389,$ret_or_1)){tm=p,self.te=p,p=$rb_minus(p,1),self.$emit("kRESCUE","rescue".$freeze(),self.ts,tm),p=$rb_minus(tm,1),self.cs=539,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(480,$ret_or_1))self.num_base=16,self.num_digits_s=p,self.num_suffix_s=p;else if($eqeqeq(474,$ret_or_1))self.num_base=10,self.num_digits_s=p,self.num_suffix_s=p;else if($eqeqeq(477,$ret_or_1))self.num_base=8,self.num_digits_s=p,self.num_suffix_s=p;else if($eqeqeq(471,$ret_or_1))self.num_base=2,self.num_digits_s=p,self.num_suffix_s=p;else if($eqeqeq(486,$ret_or_1))self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p;else if($eqeqeq(449,$ret_or_1))self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p;else if($eqeqeq(487,$ret_or_1))self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$17(chars){return null==chars&&(chars=nil),(null==$$17.$$s?this:$$17.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self});else if($eqeqeq(8,$ret_or_1))self.te=$rb_plus(p,1),self.newline_s=p;else if($eqeqeq(453,$ret_or_1))self.te=$rb_plus(p,1),self.num_suffix_s=p;else if($eqeqeq(228,$ret_or_1))self.te=$rb_plus(p,1),self.act=43;else if($eqeqeq(215,$ret_or_1))self.te=$rb_plus(p,1),self.act=44;else if($eqeqeq(211,$ret_or_1))self.te=$rb_plus(p,1),self.act=45;else if($eqeqeq(27,$ret_or_1))self.te=$rb_plus(p,1),self.act=72;else if($eqeqeq(261,$ret_or_1))self.te=$rb_plus(p,1),self.act=73;else if($eqeqeq(28,$ret_or_1))self.te=$rb_plus(p,1),self.act=78;else if($eqeqeq(254,$ret_or_1))self.te=$rb_plus(p,1),self.act=79;else if($eqeqeq(281,$ret_or_1))self.te=$rb_plus(p,1),self.act=85;else if($eqeqeq(46,$ret_or_1))self.te=$rb_plus(p,1),self.act=86;else if($eqeqeq(302,$ret_or_1))self.te=$rb_plus(p,1),self.act=93;else if($eqeqeq(291,$ret_or_1))self.te=$rb_plus(p,1),self.act=94;else if($eqeqeq(70,$ret_or_1))self.te=$rb_plus(p,1),self.act=106;else if($eqeqeq(394,$ret_or_1))self.te=$rb_plus(p,1),self.act=117;else if($eqeqeq(305,$ret_or_1))self.te=$rb_plus(p,1),self.act=121;else if($eqeqeq(388,$ret_or_1))self.te=$rb_plus(p,1),self.act=122;else if($eqeqeq(387,$ret_or_1))self.te=$rb_plus(p,1),self.act=123;else if($eqeqeq(75,$ret_or_1))self.te=$rb_plus(p,1),self.act=127;else if($eqeqeq(303,$ret_or_1))self.te=$rb_plus(p,1),self.act=128;else if($eqeqeq(306,$ret_or_1))self.te=$rb_plus(p,1),self.act=132;else if($eqeqeq(504,$ret_or_1))self.te=$rb_plus(p,1),self.act=145;else if($eqeqeq(499,$ret_or_1))self.te=$rb_plus(p,1),self.act=146;else if($eqeqeq(507,$ret_or_1))self.te=$rb_plus(p,1),self.act=148;else if($eqeqeq(500,$ret_or_1))self.te=$rb_plus(p,1),self.act=149;else if($eqeqeq(501,$ret_or_1))self.te=$rb_plus(p,1),self.act=150;else if($eqeqeq(506,$ret_or_1))self.te=$rb_plus(p,1),self.act=151;else if($eqeqeq(498,$ret_or_1))self.te=$rb_plus(p,1),self.act=152;else if($eqeqeq(492,$ret_or_1))self.te=$rb_plus(p,1),self.act=153;else if($eqeqeq(418,$ret_or_1))self.te=$rb_plus(p,1),self.act=154;else if($eqeqeq(451,$ret_or_1))self.te=$rb_plus(p,1),self.act=157;else if($eqeqeq(82,$ret_or_1))self.te=$rb_plus(p,1),self.act=158;else if($eqeqeq(421,$ret_or_1))self.te=$rb_plus(p,1),self.act=160;else if($eqeqeq(412,$ret_or_1))self.te=$rb_plus(p,1),self.act=164;else if($eqeqeq(423,$ret_or_1))self.te=$rb_plus(p,1),self.act=165;else if($eqeqeq(416,$ret_or_1))self.te=$rb_plus(p,1),self.act=167;else if($eqeqeq(422,$ret_or_1))self.te=$rb_plus(p,1),self.act=168;else if($eqeqeq(88,$ret_or_1))self.te=$rb_plus(p,1),self.act=181;else if($eqeqeq(511,$ret_or_1))self.te=$rb_plus(p,1),self.act=185;else if($eqeqeq(183,$ret_or_1)){if(self.newline_s=p,self.te=$rb_plus(p,1),current_literal=self.$literal(),$eqeq(self.te,pe)&&self.$diagnostic("fatal","string_eof",nil,self.$range(current_literal.$str_s(),$rb_plus(current_literal.$str_s(),1))),$truthy(current_literal["$heredoc?"]())){if(line=self.$tok(self.herebody_s,self.ts).$gsub(/\r+$/,"".$freeze()),$truthy(self["$version?"](18,19,20))&&(line=line.$gsub(/\r.*$/,"".$freeze())),$truthy(current_literal.$nest_and_try_closing(line,self.herebody_s,self.ts))){self.herebody_s=self.te,p=$rb_minus(current_literal.$heredoc_e(),1),self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}current_literal.$infer_indent_level(line),self.herebody_s=self.te}else{if($truthy(current_literal.$nest_and_try_closing(self.$tok(),self.ts,self.te))){self.cs=self.$pop_literal(),p=$rb_plus(p,1),_goto_level=40;continue}$truthy(self.herebody_s)&&(p=$rb_minus(self.herebody_s,1),self.herebody_s=nil)}$truthy(current_literal["$words?"]())&&$not(self["$eof_codepoint?"](self.source_pts["$[]"](p)))?current_literal.$extend_space(self.ts,self.te):(current_literal.$extend_string(self.$tok(),self.ts,self.te),current_literal.$flush_string()),self.escape_s=p,self.escape=nil}else if($eqeqeq(124,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(155,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(369,$ret_or_1)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(131,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(162,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(376,$ret_or_1)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(122,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(153,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(367,$ret_or_1)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(130,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(161,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(375,$ret_or_1)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(126,$ret_or_1))self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(157,$ret_or_1))self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(371,$ret_or_1)){self.escape="",self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(129,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(160,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(374,$ret_or_1)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(136,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(167,$ret_or_1))self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(381,$ret_or_1)){self.$diagnostic("fatal","invalid_unicode_escape",nil,self.$range($rb_minus(self.escape_s,1),p)),self.$diagnostic("fatal","unterminated_unicode",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(116,$ret_or_1))self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(148,$ret_or_1))self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(362,$ret_or_1)){self.escape_s=p,self.escape=nil,self.$diagnostic("fatal","escape_eof",nil,self.$range($rb_minus(p,1),p)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(62,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.newline_s=p;else if($eqeqeq(221,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(236,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(248,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else{if($eqeqeq(270,$ret_or_1)){self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1),self.cs=810,_goto_level=20;continue}if($eqeqeq(285,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(297,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(323,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(399,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(409,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(430,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(102,$ret_or_1))self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.te=p,p=$rb_minus(p,1);else if($eqeqeq(482,$ret_or_1))self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$18(chars){return null==chars&&(chars=nil),(null==$$18.$$s?this:$$18.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self});else if($eqeqeq(446,$ret_or_1))self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$19(chars){return null==chars&&(chars=nil),(null==$$19.$$s?this:$$19.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self});else{if($eqeqeq(461,$ret_or_1)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$20(chars){return null==chars&&(chars=nil),(null==$$20.$$s?this:$$20.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(454,$ret_or_1)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$21(chars){var self=null==$$21.$$s?this:$$21.$$s;return null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(450,$ret_or_1)){self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$22(chars){var self=null==$$22.$$s?this:$$22.$$s;return null==chars&&(chars=nil),self.$emit("tFLOAT",self.$Float(chars))}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.ts,self.num_suffix_s),$truthy(self["$version?"](18,19,20))?(self.$emit("tFLOAT",self.$Float(digits),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(276,$ret_or_1))self.te=$rb_plus(p,1),self.newline_s=p,self.act=79;else if($eqeqeq(36,$ret_or_1))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=78;else if($eqeqeq(47,$ret_or_1))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=86;else if($eqeqeq(94,$ret_or_1))self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),self.act=181;else if($eqeqeq(66,$ret_or_1))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=99;else if($eqeqeq(85,$ret_or_1))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=147;else if($eqeqeq(93,$ret_or_1))self.te=$rb_plus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=181;else if($eqeqeq(38,$ret_or_1))self.te=$rb_plus(p,1),tm=p,self.act=73;else if($eqeqeq(391,$ret_or_1))self.te=$rb_plus(p,1),tm=p,self.act=127;else if($eqeqeq(390,$ret_or_1))self.te=$rb_plus(p,1),tm=p,self.act=128;else if($eqeqeq(483,$ret_or_1))self.te=$rb_plus(p,1),self.num_base=10,self.num_digits_s=self.ts,self.act=154;else if($eqeqeq(127,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(158,$ret_or_1))codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(372,$ret_or_1)){codepoint=self.source_pts["$[]"]($rb_minus(p,1)),$truthy($rb_ge(self.version,30))&&($eqeq(codepoint,117)||$eqeq(codepoint,85))&&self.$diagnostic("fatal","invalid_escape"),$truthy((self.escape=$$("ESCAPES")["$[]"](codepoint))["$nil?"]())&&(self.escape=self.$encode_escape(self.source_buffer.$slice($rb_minus(p,1)))),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(125,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(156,$ret_or_1))self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(370,$ret_or_1)){self.escape=self.source_buffer.$slice($rb_minus(p,1)).$chr(),$truthy($rb_ge(self.version,27))&&($truthy($range(0,8,!1)["$include?"](self.escape.$ord()))||$truthy($range(14,31,!1)["$include?"](self.escape.$ord())))&&self.$diagnostic("fatal","invalid_escape"),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(132,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(163,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(377,$ret_or_1)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(128,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else if($eqeqeq(159,$ret_or_1))self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),current_literal=self.$literal(),escaped_char=self.source_buffer.$slice(self.escape_s).$chr(),$truthy(current_literal["$munge_escape?"](escaped_char))?$truthy(current_literal["$regexp?"]())&&$truthy($$("REGEXP_META_CHARACTERS").$match(escaped_char))?current_literal.$extend_string(self.$tok(),self.ts,self.te):current_literal.$extend_string(escaped_char,self.ts,self.te):$truthy(current_literal["$squiggly_heredoc?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok(),self.ts,self.te):$truthy(current_literal["$supports_line_continuation_via_slash?"]())&&$eqeq(escaped_char,"\n".$freeze())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):$truthy(current_literal["$regexp?"]())&&$truthy($rb_ge(self.version,31))&&$truthy(["c","C","m","M"]["$include?"](escaped_char))?current_literal.$extend_string(self.escape,self.ts,self.te):$truthy(current_literal["$regexp?"]())?current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(),"".$freeze()),self.ts,self.te):current_literal.$extend_string($truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok(),self.ts,self.te);else{if($eqeqeq(373,$ret_or_1)){self.escape=self.$encode_escape(self.$tok($rb_minus(p,2),p).$to_i(16)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$&"](159)),self.escape=self.$encode_escape(self.escape["$[]"](0).$ord()["$|"](128)),self.te=p,p=$rb_minus(p,1),value=$truthy($ret_or_2=self.escape)?$ret_or_2:self.$tok($rb_plus(self.ts,1)),$truthy(self["$version?"](18))?self.$emit("tINTEGER",value.$getbyte(0)):self.$emit("tCHARACTER",value),self.cs=810,p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(478,$ret_or_1)){self.num_base=16,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$23(chars){return null==chars&&(chars=nil),(null==$$23.$$s?this:$$23.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(472,$ret_or_1)){self.num_base=10,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$24(chars){return null==chars&&(chars=nil),(null==$$24.$$s?this:$$24.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(475,$ret_or_1)){self.num_base=8,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$25(chars){return null==chars&&(chars=nil),(null==$$25.$$s?this:$$25.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(469,$ret_or_1)){self.num_base=2,self.num_digits_s=p,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$26(chars){return null==chars&&(chars=nil),(null==$$26.$$s?this:$$26.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(481,$ret_or_1)){self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$27(chars){return null==chars&&(chars=nil),(null==$$27.$$s?this:$$27.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}if($eqeqeq(445,$ret_or_1)){self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$28(chars){return null==chars&&(chars=nil),(null==$$28.$$s?this:$$28.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.te=p,p=$rb_minus(p,1),digits=self.$tok(self.num_digits_s,self.num_suffix_s),$truthy(digits["$end_with?"]("_".$freeze()))?self.$diagnostic("error","trailing_in_number",$hash2(["character"],{character:"_".$freeze()}),self.$range($rb_minus(self.te,1),self.te)):$truthy(digits["$empty?"]())&&$eqeq(self.num_base,8)&&$truthy(self["$version?"](18))?digits="0".$freeze():$truthy(digits["$empty?"]())?self.$diagnostic("error","empty_numeric"):$eqeq(self.num_base,8)&&$truthy(invalid_idx=digits.$index(/[89]/))&&(invalid_s=$rb_plus(self.num_digits_s,invalid_idx),self.$diagnostic("error","invalid_octal",nil,self.$range(invalid_s,$rb_plus(invalid_s,1)))),$truthy(self["$version?"](18,19,20))?(self.$emit("tINTEGER",digits.$to_i(self.num_base),self.ts,self.num_suffix_s),p=$rb_minus(self.num_suffix_s,1)):self.num_xfrm.$call(digits.$to_i(self.num_base)),p=$rb_plus(p,1),_goto_level=40;continue}$eqeqeq(32,$ret_or_1)?(self.te=$rb_plus(p,1),$truthy(self.herebody_s)&&(p=self.herebody_s,self.herebody_s=nil),tm=p,self.act=73):$eqeqeq(63,$ret_or_1)?(self.te=$rb_plus(p,1),self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=99):$eqeqeq(92,$ret_or_1)?(self.te=$rb_plus(p,1),self.sharp_s=$rb_minus(p,1),self.$emit_comment(self.sharp_s,$eqeq(p,pe)?$rb_minus(p,2):p),self.act=181):$eqeqeq(488,$ret_or_1)?(self.te=$rb_plus(p,1),self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$29(chars){return null==chars&&(chars=nil),(null==$$29.$$s?this:$$29.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.act=156):$eqeqeq(484,$ret_or_1)?(self.te=$rb_plus(p,1),self.num_base=10,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$30(chars){return null==chars&&(chars=nil),(null==$$30.$$s?this:$$30.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.act=156):$eqeqeq(448,$ret_or_1)&&(self.te=$rb_plus(p,1),self.num_base=8,self.num_digits_s=self.ts,self.num_suffix_s=p,self.num_xfrm=$send(self,"lambda",[],(function $$31(chars){return null==chars&&(chars=nil),(null==$$31.$$s?this:$$31.$$s).$emit("tINTEGER",chars)}),{$$arity:1,$$s:self}),self.act=156)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if($truthy($rb_le(_goto_level,20))){if($eqeqeq(96,$ret_or_1=_lex_to_state_actions["$[]"](self.cs))&&(self.ts=nil),$eqeq(self.cs,0)){_goto_level=40;continue}if(p=$rb_plus(p,1),$neqeq(p,pe)){_goto_level=10;continue}}if($truthy($rb_le(_goto_level,30))&&$eqeq(p,eof)&&$truthy($rb_gt(_lex_eof_trans["$[]"](self.cs),0)))_trans=$rb_minus(_lex_eof_trans["$[]"](self.cs),1),_goto_level=15;else if($truthy($rb_le(_goto_level,40)))break}return $truthy(!1),self.p=p,$truthy(self.token_queue["$any?"]())?self.token_queue.$shift():$eqeq(self.cs,klass.$lex_error())?[!1,["$error".$freeze(),self.$range($rb_minus(p,1),p)]]:(eof=self.source_pts.$size(),[!1,["$eof".$freeze(),self.$range(eof,eof)]])}),0),self.$protected(),$def(self,"$eof_codepoint?",(function(point){return[4,26,0]["$include?"](point)}),1),$def(self,"$version?",(function($a){var self=this;return Opal.slice.call(arguments)["$include?"](self.version)}),-1),$def(self,"$stack_pop",(function(){return this.top=$rb_minus(this.top,1),this.stack["$[]"](this.top)}),0),$def(self,"$encode_escape",(function(ord){return ord.$chr().$force_encoding(this.source_buffer.$source().$encoding())}),1),$def(self,"$tok",(function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),this.source_buffer.$slice(Opal.Range.$new(s,e,!0))}),-1),$def(self,"$range",(function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),$$$($$$($$("Parser"),"Source"),"Range").$new(this.source_buffer,s,e)}),-1),$def(self,"$emit",(function(type,value,s,e){var token;return null==value&&(value=this.$tok()),null==s&&(s=this.ts),null==e&&(e=this.te),token=[type,[value,this.$range(s,e)]],this.token_queue.$push(token),$truthy(this.tokens)&&this.tokens.$push(token),token}),-2),$def(self,"$emit_table",(function(table,s,e){var value;return null==s&&(s=this.ts),null==e&&(e=this.te),value=this.$tok(s,e),this.$emit(table["$[]"](value),value,s,e)}),-2),$def(self,"$emit_do",(function(do_block){return null==do_block&&(do_block=!1),$truthy(this.cond["$active?"]())?this.$emit("kDO_COND","do".$freeze()):$truthy(this.cmdarg["$active?"]())||$truthy(do_block)?this.$emit("kDO_BLOCK","do".$freeze()):this.$emit("kDO","do".$freeze())}),-1),$def(self,"$arg_or_cmdarg",(function(cmd_state){return $truthy(cmd_state)?this.$class().$lex_en_expr_cmdarg():this.$class().$lex_en_expr_arg()}),1),$def(self,"$emit_comment",(function(s,e){return null==s&&(s=this.ts),null==e&&(e=this.te),$truthy(this.comments)&&this.comments.$push($$$($$$($$("Parser"),"Source"),"Comment").$new(this.$range(s,e))),$truthy(this.tokens)&&this.tokens.$push(["tCOMMENT",[this.$tok(s,e),this.$range(s,e)]]),nil}),-1),$def(self,"$diagnostic",(function(type,reason,arguments$,location,highlights){return null==arguments$&&(arguments$=nil),null==location&&(location=this.$range()),null==highlights&&(highlights=[]),this.diagnostics.$process($$$($$("Parser"),"Diagnostic").$new(type,reason,arguments$,location,highlights))}),-3),$def(self,"$push_literal",(function($a){var args,self=this,new_literal=nil;return args=Opal.slice.call(arguments),new_literal=$send($$("Literal"),"new",[self].concat($to_a(args))),self.literal_stack.$push(new_literal),self.$next_state_for_literal(new_literal)}),-1),$def(self,"$next_state_for_literal",(function(literal){return $truthy(literal["$words?"]())&&$truthy(literal["$backslash_delimited?"]())?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_backslash_delimited_words():this.$class().$lex_en_plain_backslash_delimited_words():$truthy(literal["$words?"]())&&$not(literal["$backslash_delimited?"]())?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_words():this.$class().$lex_en_plain_words():$not(literal["$words?"]())&&$truthy(literal["$backslash_delimited?"]())?$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_backslash_delimited():this.$class().$lex_en_plain_backslash_delimited():$truthy(literal["$interpolate?"]())?this.$class().$lex_en_interp_string():this.$class().$lex_en_plain_string()}),1),$def(self,"$literal",(function(){return this.literal_stack.$last()}),0),$def(self,"$pop_literal",(function(){var old_literal=nil;return old_literal=this.literal_stack.$pop(),this.dedent_level=old_literal.$dedent_level(),$eqeq(old_literal.$type(),"tREGEXP_BEG")?this.$class().$lex_en_regexp_modifiers():this.$class().$lex_en_expr_end()}),0),$const_set($nesting[0],"PUNCTUATION",$hash2(["=","&","|","!","^","+","-","*","/","%","~",",",";",".","..","...","[","]","(",")","?",":","&&","||","-@","+@","~@","**","->","=~","!~","==","!=",">",">>",">=","<","<<","<=","=>","::","===","<=>","[]","[]=","{","}","`","!@","&."],{"=":"tEQL","&":"tAMPER2","|":"tPIPE","!":"tBANG","^":"tCARET","+":"tPLUS","-":"tMINUS","*":"tSTAR2","/":"tDIVIDE","%":"tPERCENT","~":"tTILDE",",":"tCOMMA",";":"tSEMI",".":"tDOT","..":"tDOT2","...":"tDOT3","[":"tLBRACK2","]":"tRBRACK","(":"tLPAREN2",")":"tRPAREN","?":"tEH",":":"tCOLON","&&":"tANDOP","||":"tOROP","-@":"tUMINUS","+@":"tUPLUS","~@":"tTILDE","**":"tPOW","->":"tLAMBDA","=~":"tMATCH","!~":"tNMATCH","==":"tEQ","!=":"tNEQ",">":"tGT",">>":"tRSHFT",">=":"tGEQ","<":"tLT","<<":"tLSHFT","<=":"tLEQ","=>":"tASSOC","::":"tCOLON2","===":"tEQQ","<=>":"tCMP","[]":"tAREF","[]=":"tASET","{":"tLCURLY","}":"tRCURLY","`":"tBACK_REF2","!@":"tBANG","&.":"tANDDOT"})),$const_set($nesting[0],"PUNCTUATION_BEGIN",$hash2(["&","*","**","+","-","::","(","{","["],{"&":"tAMPER","*":"tSTAR","**":"tDSTAR","+":"tUPLUS","-":"tUMINUS","::":"tCOLON3","(":"tLPAREN","{":"tLBRACE","[":"tLBRACK"})),$const_set($nesting[0],"KEYWORDS",$hash2(["if","unless","while","until","rescue","defined?","BEGIN","END"],{if:"kIF_MOD",unless:"kUNLESS_MOD",while:"kWHILE_MOD",until:"kUNTIL_MOD",rescue:"kRESCUE_MOD","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),$const_set($nesting[0],"KEYWORDS_BEGIN",$hash2(["if","unless","while","until","rescue","defined?","BEGIN","END"],{if:"kIF",unless:"kUNLESS",while:"kWHILE",until:"kUNTIL",rescue:"kRESCUE","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),$send(["class","module","def","undef","begin","end","then","elsif","else","ensure","case","when","for","break","next","redo","retry","in","do","return","yield","super","self","nil","true","false","and","or","not","alias","__FILE__","__LINE__","__ENCODING__"],"each",[],(function(keyword){return null==keyword&&(keyword=nil),$writer=[keyword,($writer=[keyword,"k"+keyword.$upcase()],$send($$("KEYWORDS"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send($$("KEYWORDS_BEGIN"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1)}($$("Parser"),0,$nesting)},Opal.modules["parser/lexer/literal"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$hash2=Opal.hash2,$enc=Opal.enc,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$to_ary=Opal.to_ary,$def=Opal.def,$eqeq=Opal.eqeq,$rb_minus=Opal.rb_minus,$neqeq=Opal.neqeq,$not=Opal.not,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$rb_gt=Opal.rb_gt;return Opal.add_stubs("attr_reader,attr_accessor,coerce_encoding,include?,send,+,[],fetch,==,!,heredoc?,start_with?,freeze,clear_buffer,emit_start_tok,type,=~,words?,delimiter?,-,extend_space,!=,flush_string,emit,each_char,===,%,>,nil?,<<,empty?,extend_content,protected,lstrip,b,dup,force_encoding,encoding,source,source_buffer,length"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Literal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.lexer=$proto.start_tok=$proto.str_type=$proto.monolithic=$proto.interpolate=$proto.heredoc_e=$proto.dedent_body=$proto.end_delim=$proto.start_delim=$proto.nesting=$proto.label_allowed=$proto.buffer=$proto.str_s=$proto.interp_braces=$proto.buffer_s=$proto.buffer_e=$proto.space_emitted=$proto.indent=nil,$const_set($nesting[0],"DELIMITERS",$hash2(["(","[","{","<"],{"(":$enc(")","ASCII-8BIT"),"[":$enc("]","ASCII-8BIT"),"{":$enc("}","ASCII-8BIT"),"<":$enc(">","ASCII-8BIT")})),$const_set($nesting[0],"TYPES",$hash2(["'","<<'","%q",'"','<<"',"%","%Q","%w","%W","%i","%I",":'","%s",':"',"/","%r","%x","`","<<`"],{"'":["tSTRING_BEG",!1],"<<'":["tSTRING_BEG",!1],"%q":["tSTRING_BEG",!1],'"':["tSTRING_BEG",!0],'<<"':["tSTRING_BEG",!0],"%":["tSTRING_BEG",!0],"%Q":["tSTRING_BEG",!0],"%w":["tQWORDS_BEG",!1],"%W":["tWORDS_BEG",!0],"%i":["tQSYMBOLS_BEG",!1],"%I":["tSYMBOLS_BEG",!0],":'":["tSYMBEG",!1],"%s":["tSYMBEG",!1],':"':["tSYMBEG",!0],"/":["tREGEXP_BEG",!0],"%r":["tREGEXP_BEG",!0],"%x":["tXSTRING_BEG",!0],"`":["tXSTRING_BEG",!0],"<<`":["tXSTRING_BEG",!0]})),self.$attr_reader("heredoc_e","str_s","dedent_level"),self.$attr_accessor("saved_herebody_s"),$def(self,"$initialize",(function(lexer,str_type,delimiter,str_s,heredoc_e,indent,dedent_body,label_allowed){var $a,$b,$ret_or_1,$ret_or_2;return null==heredoc_e&&(heredoc_e=nil),null==indent&&(indent=!1),null==dedent_body&&(dedent_body=!1),null==label_allowed&&(label_allowed=!1),this.lexer=lexer,this.nesting=1,str_type=this.$coerce_encoding(str_type),delimiter=this.$coerce_encoding(delimiter),$truthy($$("TYPES")["$include?"](str_type))||lexer.$send("diagnostic","error","unexpected_percent_str",$hash2(["type"],{type:str_type}),this.lexer.$send("range",str_s,$rb_plus(str_s,2))),this.str_type=str_type,this.str_s=str_s,$b=$$("TYPES")["$[]"](str_type),$a=$to_ary($b),this.start_tok=null==$a[0]?nil:$a[0],this.interpolate=null==$a[1]?nil:$a[1],this.start_delim=$truthy($$("DELIMITERS")["$include?"](delimiter))?delimiter:nil,this.end_delim=$$("DELIMITERS").$fetch(delimiter,delimiter),this.heredoc_e=heredoc_e,this.indent=indent,this.label_allowed=label_allowed,this.dedent_body=dedent_body,this.dedent_level=nil,this.interp_braces=0,this.space_emitted=!0,this.monolithic=$truthy($ret_or_1=$truthy($ret_or_2=this.start_tok["$=="]("tSTRING_BEG"))?[$enc("'","ASCII-8BIT"),$enc('"',"ASCII-8BIT")]["$include?"](str_type):$ret_or_2)?this["$heredoc?"]()["$!"]():$ret_or_1,$truthy(this.str_type["$start_with?"]($enc("%","ASCII-8BIT").$freeze()))&&(this.str_type=$rb_plus(this.str_type,delimiter)),this.$clear_buffer(),$truthy(this.monolithic)?nil:this.$emit_start_tok()}),-5),$def(self,"$interpolate?",(function(){return this.interpolate}),0),$def(self,"$words?",(function(){var $ret_or_1,$ret_or_2,$ret_or_3;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=this.$type()["$=="]("tWORDS_BEG"))?$ret_or_3:this.$type()["$=="]("tQWORDS_BEG"))?$ret_or_2:this.$type()["$=="]("tSYMBOLS_BEG"))?$ret_or_1:this.$type()["$=="]("tQSYMBOLS_BEG")}),0),$def(self,"$regexp?",(function(){return this.$type()["$=="]("tREGEXP_BEG")}),0),$def(self,"$heredoc?",(function(){return this.heredoc_e["$!"]()["$!"]()}),0),$def(self,"$plain_heredoc?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$heredoc?"]())?this.dedent_body["$!"]():$ret_or_1}),0),$def(self,"$squiggly_heredoc?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$heredoc?"]())?this.dedent_body:$ret_or_1}),0),$def(self,"$backslash_delimited?",(function(){return this.end_delim["$=="]($enc("\\","ASCII-8BIT").$freeze())}),0),$def(self,"$type",(function(){return this.start_tok}),0),$def(self,"$munge_escape?",(function(character){return character=this.$coerce_encoding(character),!(!$truthy(this["$words?"]())||!$truthy(character["$=~"](/[ \t\v\r\f\n]/)))||[$enc("\\","ASCII-8BIT").$freeze(),this.start_delim,this.end_delim]["$include?"](character)}),1),$def(self,"$nest_and_try_closing",(function(delimiter,ts,te,lookahead){return null==lookahead&&(lookahead=nil),delimiter=this.$coerce_encoding(delimiter),$truthy(this.start_delim)&&$eqeq(this.start_delim,delimiter)?this.nesting=$rb_plus(this.nesting,1):$truthy(this["$delimiter?"](delimiter))&&(this.nesting=$rb_minus(this.nesting,1)),$eqeq(this.nesting,0)?($truthy(this["$words?"]())&&this.$extend_space(ts,ts),$truthy(lookahead)&&$truthy(this.label_allowed)&&$eqeq(lookahead["$[]"](0),$enc(":","ASCII-8BIT"))&&$neqeq(lookahead["$[]"](1),$enc(":","ASCII-8BIT"))&&$eqeq(this.start_tok,"tSTRING_BEG")?(this.$flush_string(),this.$emit("tLABEL_END",this.end_delim,ts,$rb_plus(te,1))):$truthy(this.monolithic)?this.$emit("tSTRING",this.buffer,this.str_s,te):($truthy(this["$heredoc?"]())||this.$flush_string(),this.$emit("tSTRING_END",this.end_delim,ts,te))):nil}),-4),$def(self,"$infer_indent_level",(function(line){var self=this,indent_level=nil;return $not(self.dedent_body)?nil:(indent_level=0,function(){var $brk=Opal.new_brk();try{return $send(line,"each_char",[],(function $$9(char$){var $ret_or_1,self=null==$$9.$$s?this:$$9.$$s;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil),$eqeqeq(" ",$ret_or_1=char$)?indent_level=$rb_plus(indent_level,1):$eqeqeq("\t",$ret_or_1)?indent_level=$rb_plus(indent_level,$rb_minus(8,indent_level["$%"](8))):(($truthy(self.dedent_level["$nil?"]())||$truthy($rb_gt(self.dedent_level,indent_level)))&&(self.dedent_level=indent_level),void Opal.brk(nil,$brk))}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}())}),1),$def(self,"$start_interp_brace",(function(){return this.interp_braces=$rb_plus(this.interp_braces,1)}),0),$def(self,"$end_interp_brace_and_try_closing",(function(){return this.interp_braces=$rb_minus(this.interp_braces,1),this.interp_braces["$=="](0)}),0),$def(self,"$extend_string",(function(string,ts,te){var $ret_or_1;return this.buffer_s=$truthy($ret_or_1=this.buffer_s)?$ret_or_1:ts,this.buffer_e=te,this.buffer["$<<"](string)}),3),$def(self,"$flush_string",(function(){return $truthy(this.monolithic)&&(this.$emit_start_tok(),this.monolithic=!1),$truthy(this.buffer["$empty?"]())?nil:(this.$emit("tSTRING_CONTENT",this.buffer,this.buffer_s,this.buffer_e),this.$clear_buffer(),this.$extend_content())}),0),$def(self,"$extend_content",(function(){return this.space_emitted=!1}),0),$def(self,"$extend_space",(function(ts,te){return this.$flush_string(),$truthy(this.space_emitted)?nil:(this.$emit("tSPACE",nil,ts,te),this.space_emitted=!0)}),2),$def(self,"$supports_line_continuation_via_slash?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$words?"]()["$!"]())?this.interpolate:$ret_or_1}),0),self.$protected(),$def(self,"$delimiter?",(function(delimiter){return $truthy(this.indent)?this.end_delim["$=="](delimiter.$lstrip()):this.end_delim["$=="](delimiter)}),1),$def(self,"$coerce_encoding",(function(string){return string.$b()}),1),$def(self,"$clear_buffer",(function(){return this.buffer=$enc("","ASCII-8BIT").$dup(),this.buffer.$force_encoding(this.lexer.$source_buffer().$source().$encoding()),this.buffer_s=nil,this.buffer_e=nil}),0),$def(self,"$emit_start_tok",(function(){var str_e,$ret_or_1;return str_e=$truthy($ret_or_1=this.heredoc_e)?$ret_or_1:$rb_plus(this.str_s,this.str_type.$length()),this.$emit(this.start_tok,this.str_type,this.str_s,str_e)}),0),$def(self,"$emit",(function(token,type,s,e){return this.lexer.$send("emit",token,type,s,e)}),4)}(Opal.$r($nesting)("Lexer"),0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/lexer/stack_state"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs("freeze,clear,|,<<,&,>>,==,[],to_s"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super){var self=$klass($base,null,"StackState"),$proto=self.$$prototype;return $proto.stack=$proto.name=nil,$def(self,"$initialize",(function(name){return this.name=name.$freeze(),this.$clear()}),1),$def(self,"$clear",(function(){return this.stack=0}),0),$def(self,"$push",(function(bit){var bit_value;return bit_value=$truthy(bit)?1:0,this.stack=this.stack["$<<"](1)["$|"](bit_value),bit}),1),$def(self,"$pop",(function(){var bit_value=nil;return bit_value=this.stack["$&"](1),this.stack=this.stack["$>>"](1),bit_value["$=="](1)}),0),$def(self,"$lexpop",(function(){return this.stack=this.stack["$>>"](1)["$|"](this.stack["$&"](1)),this.stack["$[]"](0)["$=="](1)}),0),$def(self,"$active?",(function(){return this.stack["$[]"](0)["$=="](1)}),0),$def(self,"$empty?",(function(){return this.stack["$=="](0)}),0),$def(self,"$to_s",(function(){return"["+this.stack.$to_s(2)+" <= "+this.name+"]"}),0),$alias(self,"inspect","to_s")}(Opal.$r($nesting)("Lexer"))}($nesting[0],$nesting)},Opal.modules["parser/lexer/dedenter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$eqeq=Opal.eqeq,$send=Opal.send,$truthy=Opal.truthy,$to_ary=Opal.to_ary,$slice=Opal.slice,$rb_le=Opal.rb_le,$eqeqeq=Opal.eqeqeq,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt,$rb_times=Opal.rb_times,$rb_divide=Opal.rb_divide;return Opal.add_stubs("encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Dedenter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.at_line_begin=nil,$const_set($nesting[0],"TAB_WIDTH",8),$def(self,"$initialize",(function(dedent_level){return this.dedent_level=dedent_level,this.at_line_begin=!0,this.indent_level=0}),1),$def(self,"$dedent",(function(string){var $a,original_encoding,self=this,lines=nil,lines_to_dedent=nil;return original_encoding=string.$encoding(),lines=string.$force_encoding($$$($$("Encoding"),"BINARY")).$split("\\\n"),$eqeq(lines.$length(),1)?lines=[string.$force_encoding(original_encoding)]:$send(lines,"map!",[],(function(s){return null==s&&(s=nil),s.$force_encoding(original_encoding)}),1),$truthy(self.at_line_begin)?lines_to_dedent=lines:(null==($a=$to_ary(lines))[0]?nil:$a[0],lines_to_dedent=$slice.call($a,1)),function(){var $brk=Opal.new_brk();try{$send(lines_to_dedent,"each",[],(function $$2(line){var self=null==$$2.$$s?this:$$2.$$s,left_to_remove=nil,remove=nil;return null==self.dedent_level&&(self.dedent_level=nil),null==line&&(line=nil),left_to_remove=self.dedent_level,remove=0,function(){var $brk=Opal.new_brk();try{$send(line,"each_char",[],(function $$3(char$){var $ret_or_1,self=null==$$3.$$s?this:$$3.$$s;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil),$truthy($rb_le(left_to_remove,0))&&Opal.brk(nil,$brk),$eqeqeq(" ",$ret_or_1=char$)?(remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,1)):$eqeqeq("\t",$ret_or_1)?($truthy($rb_gt($rb_times($$("TAB_WIDTH"),$rb_plus($rb_divide(remove,$$("TAB_WIDTH")),1)),self.dedent_level))&&Opal.brk(nil,$brk),remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,$$("TAB_WIDTH"))):void Opal.brk(nil,$brk)}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),line["$slice!"](0,remove)}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),string.$replace(lines.$join()),self.at_line_begin=string["$end_with?"]("\n")}),1),$def(self,"$interrupt",(function(){return this.at_line_begin=!1}),0)}(Opal.$r($nesting)("Lexer"),0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/builders/default"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$to_a=Opal.to_a,$eqeqeq=Opal.eqeqeq,$hash2=Opal.hash2,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$not=Opal.not,$send=Opal.send,$neqeq=Opal.neqeq,$to_ary=Opal.to_ary,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$rb_ge=Opal.rb_ge,$range=Opal.range,$slice=Opal.slice,$rb_gt=Opal.rb_gt,$rb_le=Opal.rb_le,$rb_lt=Opal.rb_lt;return Opal.add_stubs("attr_accessor,n0,token_map,numeric,n,value,new,loc,private,===,+@,-@,updated,join,expression,string_value,delimited_string_map,unquoted_map,collapse_string_parts?,nil?,first,children,string_map,prefix_string_map,to_sym,collection_map,empty?,==,version,diagnostic,!,type,dedent,map,interrupt,compact,uniq,sort,each_char,to_proc,static_regexp,message,<<,regexp_map,unary_op_map,binary_op_map,!=,%,size,last,each_slice,pair_keyword_map,pair_quoted_map,symbol_compose,adjust,=~,pair_keyword,accessible,upto,-,length,+,[],>=,range_map,variable_map,name,source_buffer,dup,line,emit_encoding,class,any?,end_with?,to_s,try_declare_numparam,declared?,static_env,var_send_map,top,current_arg_stack,parser,constant_map,in_def,context,check_assignment_to_numparam,check_reserved_for_numparam,declare,with_expression,with_operator,join_exprs,module_definition_map,definition_map,endless_definition_map,validate_definee,keyword_map,check_duplicate_args,validate_no_forward_arg_after_restarg,emit_forward_arg,forward_arg,arg_prefix_map,kwarg_map,emit_procarg0,emit_arg_inside_procarg0,location,resize,end,call_type_for_dot,emit_kwargs,rewrite_hash_args_to_kwargs,send_map,emit_lambda,expr_map,keyword,include?,block_map,array,emit_index,index_map,send_index_map,send_binary_op_map,static_regexp_node,each,names,send_unary_op_map,check_condition,condition_map,keyword_mod_map,ternary_map,for_map,>,count,rescue_body_map,eh_keyword_map,push,none?,one?,begin,guard_map,check_lvar_name,check_duplicate_pattern_variable,match_hash_var_from_str,match_var,check_duplicate_pattern_key,static_string,pair_quoted,match_hash_var,<=,check_duplicate_arg,is_a?,[]=,arg_name_collides?,<,in_dynamic_block?,has_numparams?,max_numparam_stack,start_with?,pattern_variables,pattern_hash_keys,with,begin_pos,end_pos,encode,valid_encoding?,process,diagnostics,send,kwargs?"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Default"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.parser=$proto.emit_file_line_as_literals=nil,function(self,$parent_nesting){self.$attr_accessor("emit_lambda")}(Opal.get_singleton_class(self)),self.emit_lambda=!1,function(self,$parent_nesting){self.$attr_accessor("emit_procarg0")}(Opal.get_singleton_class(self)),self.emit_procarg0=!1,function(self,$parent_nesting){self.$attr_accessor("emit_encoding")}(Opal.get_singleton_class(self)),self.emit_encoding=!1,function(self,$parent_nesting){self.$attr_accessor("emit_index")}(Opal.get_singleton_class(self)),self.emit_index=!1,function(self,$parent_nesting){self.$attr_accessor("emit_arg_inside_procarg0")}(Opal.get_singleton_class(self)),self.emit_arg_inside_procarg0=!1,function(self,$parent_nesting){self.$attr_accessor("emit_forward_arg")}(Opal.get_singleton_class(self)),self.emit_forward_arg=!1,function(self,$parent_nesting){self.$attr_accessor("emit_kwargs")}(Opal.get_singleton_class(self)),self.emit_kwargs=!1,function(self,$parent_nesting){self.$attr_accessor("emit_match_pattern")}(Opal.get_singleton_class(self)),self.emit_match_pattern=!1,function(self,$parent_nesting){$def(self,"$modernize",(function(){return this.emit_lambda=!0,this.emit_procarg0=!0,this.emit_encoding=!0,this.emit_index=!0,this.emit_arg_inside_procarg0=!0,this.emit_forward_arg=!0,this.emit_kwargs=!0,this.emit_match_pattern=!0}),0)}(Opal.get_singleton_class(self)),self.$attr_accessor("parser"),self.$attr_accessor("emit_file_line_as_literals"),$def(self,"$initialize",(function(){return this.emit_file_line_as_literals=!0}),0),$def(self,"$nil",(function(nil_t){return this.$n0("nil",this.$token_map(nil_t))}),1),$def(self,"$true",(function(true_t){return this.$n0("true",this.$token_map(true_t))}),1),$def(self,"$false",(function(false_t){return this.$n0("false",this.$token_map(false_t))}),1),$def(self,"$integer",(function(integer_t){return this.$numeric("int",integer_t)}),1),$def(self,"$float",(function(float_t){return this.$numeric("float",float_t)}),1),$def(self,"$rational",(function(rational_t){return this.$numeric("rational",rational_t)}),1),$def(self,"$complex",(function(complex_t){return this.$numeric("complex",complex_t)}),1),$def(self,"$numeric",(function(kind,token){return this.$n(kind,[this.$value(token)],$$$($$$($$("Source"),"Map"),"Operator").$new(nil,this.$loc(token)))}),2),self.$private("numeric"),$def(self,"$unary_num",(function(unary_t,numeric){var $a,$ret_or_1,value=nil,operator_loc=nil;return value=null==($a=[].concat($to_a(numeric)))[0]?nil:$a[0],operator_loc=this.$loc(unary_t),$eqeqeq("+",$ret_or_1=this.$value(unary_t))?value=value["$+@"]():$eqeqeq("-",$ret_or_1)&&(value=value["$-@"]()),numeric.$updated(nil,[value],$hash2(["location"],{location:$$$($$$($$("Source"),"Map"),"Operator").$new(operator_loc,operator_loc.$join(numeric.$loc().$expression()))}))}),2),$def(self,"$__LINE__",(function(__LINE__t){return this.$n0("__LINE__",this.$token_map(__LINE__t))}),1),$def(self,"$string",(function(string_t){return this.$n("str",[this.$string_value(string_t)],this.$delimited_string_map(string_t))}),1),$def(self,"$string_internal",(function(string_t){return this.$n("str",[this.$string_value(string_t)],this.$unquoted_map(string_t))}),1),$def(self,"$string_compose",(function(begin_t,parts,end_t){return $truthy(this["$collapse_string_parts?"](parts))?$truthy(begin_t["$nil?"]())&&$truthy(end_t["$nil?"]())?parts.$first():this.$n("str",parts.$first().$children(),this.$string_map(begin_t,parts,end_t)):this.$n("dstr",[].concat($to_a(parts)),this.$string_map(begin_t,parts,end_t))}),3),$def(self,"$character",(function(char_t){return this.$n("str",[this.$string_value(char_t)],this.$prefix_string_map(char_t))}),1),$def(self,"$__FILE__",(function(__FILE__t){return this.$n0("__FILE__",this.$token_map(__FILE__t))}),1),$def(self,"$symbol",(function(symbol_t){return this.$n("sym",[this.$string_value(symbol_t).$to_sym()],this.$prefix_string_map(symbol_t))}),1),$def(self,"$symbol_internal",(function(symbol_t){return this.$n("sym",[this.$string_value(symbol_t).$to_sym()],this.$unquoted_map(symbol_t))}),1),$def(self,"$symbol_compose",(function(begin_t,parts,end_t){var str=nil;return $truthy(this["$collapse_string_parts?"](parts))?(str=parts.$first(),this.$n("sym",[str.$children().$first().$to_sym()],this.$collection_map(begin_t,str.$loc().$expression(),end_t))):$eqeq(this.parser.$version(),18)&&$truthy(parts["$empty?"]())?this.$diagnostic("error","empty_symbol",nil,this.$loc(begin_t).$join(this.$loc(end_t))):this.$n("dsym",[].concat($to_a(parts)),this.$collection_map(begin_t,parts,end_t))}),3),$def(self,"$xstring_compose",(function(begin_t,parts,end_t){return this.$n("xstr",[].concat($to_a(parts)),this.$string_map(begin_t,parts,end_t))}),3),$def(self,"$dedent_string",(function(node,dedent_level){var dedenter=nil,$ret_or_1=nil,str=nil,children=nil;return $not(dedent_level["$nil?"]())&&(dedenter=$$$($$("Lexer"),"Dedenter").$new(dedent_level),$eqeqeq("str",$ret_or_1=node.$type())?(str=node.$children().$first(),dedenter.$dedent(str)):($eqeqeq("dstr",$ret_or_1)||$eqeqeq("xstr",$ret_or_1))&&(children=$send(node.$children(),"map",[],(function(str_node){if(null==str_node&&(str_node=nil),$eqeq(str_node.$type(),"str")){if(str=str_node.$children().$first(),dedenter.$dedent(str),$truthy(str["$empty?"]()))return nil}else dedenter.$interrupt();return str_node}),1),node=node.$updated(nil,children.$compact()))),node}),2),$def(self,"$regexp_options",(function(regopt_t){var options;return options=$send(this.$value(regopt_t).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc()),this.$n("regopt",options,this.$token_map(regopt_t))}),1),$def(self,"$regexp_compose",(function(begin_t,parts,end_t,options){var e=nil;try{this.$static_regexp(parts,options)}catch($err){if(!Opal.rescue($err,[$$("RegexpError")]))throw $err;e=$err;try{this.$diagnostic("error","invalid_regexp",$hash2(["message"],{message:e.$message()}),this.$loc(begin_t).$join(this.$loc(end_t)))}finally{Opal.pop_exception()}}return this.$n("regexp",parts["$<<"](options),this.$regexp_map(begin_t,end_t,options))}),4),$def(self,"$array",(function(begin_t,elements,end_t){return this.$n("array",elements,this.$collection_map(begin_t,elements,end_t))}),3),$def(self,"$splat",(function(star_t,arg){return null==arg&&(arg=nil),$truthy(arg["$nil?"]())?this.$n0("splat",this.$unary_op_map(star_t)):this.$n("splat",[arg],this.$unary_op_map(star_t,arg))}),-2),$def(self,"$word",(function(parts){return $truthy(this["$collapse_string_parts?"](parts))?parts.$first():this.$n("dstr",[].concat($to_a(parts)),this.$collection_map(nil,parts,nil))}),1),$def(self,"$words_compose",(function(begin_t,parts,end_t){return this.$n("array",[].concat($to_a(parts)),this.$collection_map(begin_t,parts,end_t))}),3),$def(self,"$symbols_compose",(function(begin_t,parts,end_t){return parts=$send(parts,"map",[],(function(part){var $a,$ret_or_1,value=nil;return null==part&&(part=nil),$eqeqeq("str",$ret_or_1=part.$type())?(value=null==($a=[].concat($to_a(part)))[0]?nil:$a[0],part.$updated("sym",[value.$to_sym()])):$eqeqeq("dstr",$ret_or_1)?part.$updated("dsym"):part}),1),this.$n("array",[].concat($to_a(parts)),this.$collection_map(begin_t,parts,end_t))}),3),$def(self,"$pair",(function(key,assoc_t,value){return this.$n("pair",[key,value],this.$binary_op_map(key,assoc_t,value))}),3),$def(self,"$pair_list_18",(function(list){return $neqeq(list.$size()["$%"](2),0)?this.$diagnostic("error","odd_hash",nil,list.$last().$loc().$expression()):$send(list.$each_slice(2),"map",[],(function $$6(key,value){var self=null==$$6.$$s?this:$$6.$$s;return null==key&&(key=nil),null==value&&(value=nil),self.$n("pair",[key,value],self.$binary_op_map(key,nil,value))}),{$$arity:2,$$s:this})}),1),$def(self,"$pair_keyword",(function(key_t,value){var $a,$b,key_map,pair_map,key;return $b=this.$pair_keyword_map(key_t,value),key_map=null==($a=$to_ary($b))[0]?nil:$a[0],pair_map=null==$a[1]?nil:$a[1],key=this.$n("sym",[this.$value(key_t).$to_sym()],key_map),this.$n("pair",[key,value],pair_map)}),2),$def(self,"$pair_quoted",(function(begin_t,parts,end_t,value){var $a,$b,pair_map,key;return $b=this.$pair_quoted_map(begin_t,end_t,value),end_t=null==($a=$to_ary($b))[0]?nil:$a[0],pair_map=null==$a[1]?nil:$a[1],key=this.$symbol_compose(begin_t,parts,end_t),this.$n("pair",[key,value],pair_map)}),4),$def(self,"$pair_label",(function(key_t){var value_l,value,label=nil;return value_l=this.$loc(key_t).$adjust($hash2(["end_pos"],{end_pos:-1})),label=this.$value(key_t),value=$truthy(label["$=~"](/^[[:lower:]]/))?this.$n("ident",[label.$to_sym()],$$$($$$($$("Source"),"Map"),"Variable").$new(value_l)):this.$n("const",[nil,label.$to_sym()],$$$($$$($$("Source"),"Map"),"Constant").$new(nil,value_l,value_l)),this.$pair_keyword(key_t,this.$accessible(value))}),1),$def(self,"$kwsplat",(function(dstar_t,arg){return this.$n("kwsplat",[arg],this.$unary_op_map(dstar_t,arg))}),2),$def(self,"$associate",(function(begin_t,pairs,end_t){return $send(0,"upto",[$rb_minus(pairs.$length(),1)],(function $$7(i){var self=null==$$7.$$s?this:$$7.$$s;return null==i&&(i=nil),$send($rb_plus(i,1),"upto",[$rb_minus(pairs.$length(),1)],(function $$8(j){var $a,$ret_or_1,self=null==$$8.$$s?this:$$8.$$s,key1=nil,key2=nil,do_warn=nil;return null==self.parser&&(self.parser=nil),null==j&&(j=nil),key1=null==($a=[].concat($to_a(pairs["$[]"](i))))[0]?nil:$a[0],key2=null==($a=[].concat($to_a(pairs["$[]"](j))))[0]?nil:$a[0],do_warn=!1,$eqeqeq("sym",$ret_or_1=key1.$type())||$eqeqeq("str",$ret_or_1)||$eqeqeq("int",$ret_or_1)||$eqeqeq("float",$ret_or_1)?$eqeq(key1,key2)&&(do_warn=!0):($eqeqeq("rational",$ret_or_1)||$eqeqeq("complex",$ret_or_1)||$eqeqeq("regexp",$ret_or_1))&&$truthy($rb_ge(self.parser.$version(),31))&&$eqeq(key1,key2)&&(do_warn=!0),$truthy(do_warn)?self.$diagnostic("warning","duplicate_hash_key",nil,key2.$loc().$expression()):nil}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:this}),this.$n("hash",[].concat($to_a(pairs)),this.$collection_map(begin_t,pairs,end_t))}),3),$def(self,"$range_inclusive",(function(lhs,dot2_t,rhs){return this.$n("irange",[lhs,rhs],this.$range_map(lhs,dot2_t,rhs))}),3),$def(self,"$range_exclusive",(function(lhs,dot3_t,rhs){return this.$n("erange",[lhs,rhs],this.$range_map(lhs,dot3_t,rhs))}),3),$def(self,"$self",(function(token){return this.$n0("self",this.$token_map(token))}),1),$def(self,"$ident",(function(token){return this.$n("ident",[this.$value(token).$to_sym()],this.$variable_map(token))}),1),$def(self,"$ivar",(function(token){return this.$n("ivar",[this.$value(token).$to_sym()],this.$variable_map(token))}),1),$def(self,"$gvar",(function(token){return this.$n("gvar",[this.$value(token).$to_sym()],this.$variable_map(token))}),1),$def(self,"$cvar",(function(token){return this.$n("cvar",[this.$value(token).$to_sym()],this.$variable_map(token))}),1),$def(self,"$back_ref",(function(token){return this.$n("back_ref",[this.$value(token).$to_sym()],this.$token_map(token))}),1),$def(self,"$nth_ref",(function(token){return this.$n("nth_ref",[this.$value(token)],this.$token_map(token))}),1),$def(self,"$accessible",(function(node){var $a,$ret_or_1,name=nil;return $eqeqeq("__FILE__",$ret_or_1=node.$type())?$truthy(this.emit_file_line_as_literals)?this.$n("str",[node.$loc().$expression().$source_buffer().$name()],node.$loc().$dup()):node:$eqeqeq("__LINE__",$ret_or_1)?$truthy(this.emit_file_line_as_literals)?this.$n("int",[node.$loc().$expression().$line()],node.$loc().$dup()):node:$eqeqeq("__ENCODING__",$ret_or_1)?$not(this.$class().$emit_encoding())?this.$n("const",[this.$n("const",[nil,"Encoding"],nil),"UTF_8"],node.$loc().$dup()):node:$eqeqeq("ident",$ret_or_1)?($a=[].concat($to_a(node)),name=null==$a[0]?nil:$a[0],$truthy($send(["?","!"],"any?",[],(function(c){return null==c&&(c=nil),name.$to_s()["$end_with?"](c)}),1))&&this.$diagnostic("error","invalid_id_to_get",$hash2(["identifier"],{identifier:name.$to_s()}),node.$loc().$expression()),$truthy($rb_ge(this.parser.$version(),27))&&$truthy(this.parser.$try_declare_numparam(node))?node.$updated("lvar"):$truthy(this.parser.$static_env()["$declared?"](name))?($eqeq(name.$to_s(),this.$parser().$current_arg_stack().$top())&&this.$diagnostic("error","circular_argument_reference",$hash2(["var_name"],{var_name:name.$to_s()}),node.$loc().$expression()),node.$updated("lvar")):this.$n("send",[nil,name],this.$var_send_map(node))):node}),1),$def(self,"$const",(function(name_t){return this.$n("const",[nil,this.$value(name_t).$to_sym()],this.$constant_map(nil,nil,name_t))}),1),$def(self,"$const_global",(function(t_colon3,name_t){var cbase;return cbase=this.$n0("cbase",this.$token_map(t_colon3)),this.$n("const",[cbase,this.$value(name_t).$to_sym()],this.$constant_map(cbase,t_colon3,name_t))}),2),$def(self,"$const_fetch",(function(scope,t_colon2,name_t){return this.$n("const",[scope,this.$value(name_t).$to_sym()],this.$constant_map(scope,t_colon2,name_t))}),3),$def(self,"$__ENCODING__",(function(__ENCODING__t){return this.$n0("__ENCODING__",this.$token_map(__ENCODING__t))}),1),$def(self,"$assignable",(function(node){var $a,$ret_or_1,name=nil,var_name=nil,name_loc=nil;return $eqeqeq("cvar",$ret_or_1=node.$type())?node.$updated("cvasgn"):$eqeqeq("ivar",$ret_or_1)?node.$updated("ivasgn"):$eqeqeq("gvar",$ret_or_1)?node.$updated("gvasgn"):$eqeqeq("const",$ret_or_1)?($truthy(this.parser.$context().$in_def())&&this.$diagnostic("error","dynamic_const",nil,node.$loc().$expression()),node.$updated("casgn")):$eqeqeq("ident",$ret_or_1)?(name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],var_name=node.$children()["$[]"](0).$to_s(),name_loc=node.$loc().$expression(),this.$check_assignment_to_numparam(var_name,name_loc),this.$check_reserved_for_numparam(var_name,name_loc),this.parser.$static_env().$declare(name),node.$updated("lvasgn")):$eqeqeq("match_var",$ret_or_1)?(name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],var_name=node.$children()["$[]"](0).$to_s(),name_loc=node.$loc().$expression(),this.$check_assignment_to_numparam(var_name,name_loc),this.$check_reserved_for_numparam(var_name,name_loc),node):$eqeqeq("nil",$ret_or_1)||$eqeqeq("self",$ret_or_1)||$eqeqeq("true",$ret_or_1)||$eqeqeq("false",$ret_or_1)||$eqeqeq("__FILE__",$ret_or_1)||$eqeqeq("__LINE__",$ret_or_1)||$eqeqeq("__ENCODING__",$ret_or_1)?this.$diagnostic("error","invalid_assignment",nil,node.$loc().$expression()):$eqeqeq("back_ref",$ret_or_1)||$eqeqeq("nth_ref",$ret_or_1)?this.$diagnostic("error","backref_assignment",nil,node.$loc().$expression()):nil}),1),$def(self,"$const_op_assignable",(function(node){return node.$updated("casgn")}),1),$def(self,"$assign",(function(lhs,eql_t,rhs){return lhs["$<<"](rhs).$updated(nil,nil,$hash2(["location"],{location:lhs.$loc().$with_operator(this.$loc(eql_t)).$with_expression(this.$join_exprs(lhs,rhs))}))}),3),$def(self,"$op_assign",(function(lhs,op_t,rhs){var $ret_or_1,operator=nil,source_map=nil,$ret_or_2=nil;return $eqeqeq("gvasgn",$ret_or_1=lhs.$type())||$eqeqeq("ivasgn",$ret_or_1)||$eqeqeq("lvasgn",$ret_or_1)||$eqeqeq("cvasgn",$ret_or_1)||$eqeqeq("casgn",$ret_or_1)||$eqeqeq("send",$ret_or_1)||$eqeqeq("csend",$ret_or_1)||$eqeqeq("index",$ret_or_1)?(operator=this.$value(op_t)["$[]"]($range(0,-1,!1)).$to_sym(),source_map=lhs.$loc().$with_operator(this.$loc(op_t)).$with_expression(this.$join_exprs(lhs,rhs)),$eqeq(lhs.$type(),"index")&&(lhs=lhs.$updated("indexasgn")),$eqeqeq("&&",$ret_or_2=operator)?this.$n("and_asgn",[lhs,rhs],source_map):$eqeqeq("||",$ret_or_2)?this.$n("or_asgn",[lhs,rhs],source_map):this.$n("op_asgn",[lhs,operator,rhs],source_map)):$eqeqeq("back_ref",$ret_or_1)||$eqeqeq("nth_ref",$ret_or_1)?this.$diagnostic("error","backref_assignment",nil,lhs.$loc().$expression()):nil}),3),$def(self,"$multi_lhs",(function(begin_t,items,end_t){return this.$n("mlhs",[].concat($to_a(items)),this.$collection_map(begin_t,items,end_t))}),3),$def(self,"$multi_assign",(function(lhs,eql_t,rhs){return this.$n("masgn",[lhs,rhs],this.$binary_op_map(lhs,eql_t,rhs))}),3),$def(self,"$def_class",(function(class_t,name,lt_t,superclass,body,end_t){return this.$n("class",[name,superclass,body],this.$module_definition_map(class_t,name,lt_t,end_t))}),6),$def(self,"$def_sclass",(function(class_t,lshft_t,expr,body,end_t){return this.$n("sclass",[expr,body],this.$module_definition_map(class_t,nil,lshft_t,end_t))}),5),$def(self,"$def_module",(function(module_t,name,body,end_t){return this.$n("module",[name,body],this.$module_definition_map(module_t,name,nil,end_t))}),4),$def(self,"$def_method",(function(def_t,name_t,args,body,end_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("def",[this.$value(name_t).$to_sym(),args,body],this.$definition_map(def_t,nil,name_t,end_t))}),5),$def(self,"$def_endless_method",(function(def_t,name_t,args,assignment_t,body){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("def",[this.$value(name_t).$to_sym(),args,body],this.$endless_definition_map(def_t,nil,name_t,assignment_t,body))}),5),$def(self,"$def_singleton",(function(def_t,definee,dot_t,name_t,args,body,end_t){return this.$validate_definee(definee),this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("defs",[definee,this.$value(name_t).$to_sym(),args,body],this.$definition_map(def_t,dot_t,name_t,end_t))}),7),$def(self,"$def_endless_singleton",(function(def_t,definee,dot_t,name_t,args,assignment_t,body){return this.$validate_definee(definee),this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("defs",[definee,this.$value(name_t).$to_sym(),args,body],this.$endless_definition_map(def_t,dot_t,name_t,assignment_t,body))}),7),$def(self,"$undef_method",(function(undef_t,names){return this.$n("undef",[].concat($to_a(names)),this.$keyword_map(undef_t,nil,names,nil))}),2),$def(self,"$alias",(function(alias_t,to,from){return this.$n("alias",[to,from],this.$keyword_map(alias_t,nil,[to,from],nil))}),3),$def(self,"$args",(function(begin_t,args,end_t,check_args){var map;return null==check_args&&(check_args=!0),$truthy(check_args)&&(args=this.$check_duplicate_args(args)),this.$validate_no_forward_arg_after_restarg(args),map=this.$collection_map(begin_t,args,end_t),$not(this.$class().$emit_forward_arg())&&$eqeq(args.$length(),1)&&$eqeq(args["$[]"](0).$type(),"forward_arg")?this.$n("forward_args",[],map):this.$n("args",args,map)}),-4),$def(self,"$numargs",(function(max_numparam){return this.$n("numargs",[max_numparam],nil)}),1),$def(self,"$forward_only_args",(function(begin_t,dots_t,end_t){var arg=nil;return $truthy(this.$class().$emit_forward_arg())?(arg=this.$forward_arg(dots_t),this.$n("args",[arg],this.$collection_map(begin_t,[arg],end_t))):this.$n("forward_args",[],this.$collection_map(begin_t,this.$token_map(dots_t),end_t))}),3),$def(self,"$forward_arg",(function(dots_t){return this.$n("forward_arg",[],this.$token_map(dots_t))}),1),$def(self,"$arg",(function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("arg",[this.$value(name_t).$to_sym()],this.$variable_map(name_t))}),1),$def(self,"$optarg",(function(name_t,eql_t,value){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("optarg",[this.$value(name_t).$to_sym(),value],this.$variable_map(name_t).$with_operator(this.$loc(eql_t)).$with_expression(this.$loc(name_t).$join(value.$loc().$expression())))}),3),$def(self,"$restarg",(function(star_t,name_t){return null==name_t&&(name_t=nil),$truthy(name_t)?(this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("restarg",[this.$value(name_t).$to_sym()],this.$arg_prefix_map(star_t,name_t))):this.$n0("restarg",this.$arg_prefix_map(star_t))}),-2),$def(self,"$kwarg",(function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwarg",[this.$value(name_t).$to_sym()],this.$kwarg_map(name_t))}),1),$def(self,"$kwoptarg",(function(name_t,value){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwoptarg",[this.$value(name_t).$to_sym(),value],this.$kwarg_map(name_t,value))}),2),$def(self,"$kwrestarg",(function(dstar_t,name_t){return null==name_t&&(name_t=nil),$truthy(name_t)?(this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("kwrestarg",[this.$value(name_t).$to_sym()],this.$arg_prefix_map(dstar_t,name_t))):this.$n0("kwrestarg",this.$arg_prefix_map(dstar_t))}),-2),$def(self,"$kwnilarg",(function(dstar_t,nil_t){return this.$n0("kwnilarg",this.$arg_prefix_map(dstar_t,nil_t))}),2),$def(self,"$shadowarg",(function(name_t){return this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),this.$n("shadowarg",[this.$value(name_t).$to_sym()],this.$variable_map(name_t))}),1),$def(self,"$blockarg",(function(amper_t,name_t){var arg_name;return $not(name_t["$nil?"]())&&this.$check_reserved_for_numparam(this.$value(name_t),this.$loc(name_t)),arg_name=$truthy(name_t)?this.$value(name_t).$to_sym():nil,this.$n("blockarg",[arg_name],this.$arg_prefix_map(amper_t,name_t))}),2),$def(self,"$procarg0",(function(arg){return $truthy(this.$class().$emit_procarg0())?$eqeq(arg.$type(),"arg")&&$truthy(this.$class().$emit_arg_inside_procarg0())?this.$n("procarg0",[arg],$$$($$$($$("Source"),"Map"),"Collection").$new(nil,nil,arg.$location().$expression())):arg.$updated("procarg0"):arg}),1),$def(self,"$arg_expr",(function(expr){return $eqeq(expr.$type(),"lvasgn")?expr.$updated("arg"):this.$n("arg_expr",[expr],expr.$loc().$dup())}),1),$def(self,"$restarg_expr",(function(star_t,expr){return null==expr&&(expr=nil),$truthy(expr["$nil?"]())?this.$n0("restarg",this.$token_map(star_t)):$eqeq(expr.$type(),"lvasgn")?expr.$updated("restarg"):this.$n("restarg_expr",[expr],expr.$loc().$dup())}),-2),$def(self,"$blockarg_expr",(function(amper_t,expr){return $eqeq(expr.$type(),"lvasgn")?expr.$updated("blockarg"):this.$n("blockarg_expr",[expr],expr.$loc().$dup())}),2),$def(self,"$objc_kwarg",(function(kwname_t,assoc_t,name_t){var kwname_l=nil,operator_l=nil;return kwname_l=this.$loc(kwname_t),operator_l=$truthy(assoc_t["$nil?"]())?(kwname_l=kwname_l.$resize($rb_minus(kwname_l.$size(),1))).$end().$resize(1):this.$loc(assoc_t),this.$n("objc_kwarg",[this.$value(kwname_t).$to_sym(),this.$value(name_t).$to_sym()],$$$($$$($$("Source"),"Map"),"ObjcKwarg").$new(kwname_l,operator_l,this.$loc(name_t),kwname_l.$join(this.$loc(name_t))))}),3),$def(self,"$objc_restarg",(function(star_t,name){return null==name&&(name=nil),$truthy(name["$nil?"]())?this.$n0("restarg",this.$arg_prefix_map(star_t)):$eqeq(name.$type(),"arg")?name.$updated("restarg",nil,$hash2(["location"],{location:name.$loc().$with_operator(this.$loc(star_t))})):this.$n("objc_restarg",[name],this.$unary_op_map(star_t,name))}),-2),$def(self,"$call_type_for_dot",(function(dot_t){return $not(dot_t["$nil?"]())&&$eqeq(this.$value(dot_t),"anddot")?"csend":"send"}),1),$def(self,"$forwarded_args",(function(dots_t){return this.$n("forwarded_args",[],this.$token_map(dots_t))}),1),$def(self,"$call_method",(function(receiver,dot_t,selector_t,lparen_t,args,rparen_t){var type;return null==lparen_t&&(lparen_t=nil),null==args&&(args=[]),null==rparen_t&&(rparen_t=nil),type=this.$call_type_for_dot(dot_t),$truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(args),$truthy(selector_t["$nil?"]())?this.$n(type,[receiver,"call"].concat($to_a(args)),this.$send_map(receiver,dot_t,nil,lparen_t,args,rparen_t)):this.$n(type,[receiver,this.$value(selector_t).$to_sym()].concat($to_a(args)),this.$send_map(receiver,dot_t,selector_t,lparen_t,args,rparen_t))}),-4),$def(self,"$call_lambda",(function(lambda_t){return $truthy(this.$class().$emit_lambda())?this.$n0("lambda",this.$expr_map(this.$loc(lambda_t))):this.$n("send",[nil,"lambda"],this.$send_map(nil,nil,lambda_t))}),1),$def(self,"$block",(function(method_call,begin_t,args,body,end_t){var $a,call_args=nil,last_arg=nil,block_type=nil,actual_send=nil,block=nil;return null==($a=[].concat($to_a(method_call)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],call_args=$slice.call($a,2),$eqeq(method_call.$type(),"yield")&&this.$diagnostic("error","block_given_to_yield",nil,method_call.$loc().$keyword(),[this.$loc(begin_t)]),last_arg=call_args.$last(),$truthy(last_arg)&&($eqeq(last_arg.$type(),"block_pass")||$eqeq(last_arg.$type(),"forwarded_args"))&&this.$diagnostic("error","block_and_blockarg",nil,last_arg.$loc().$expression(),[this.$loc(begin_t)]),$eqeq(args.$type(),"numargs")?(block_type="numblock",args=args.$children()["$[]"](0)):block_type="block",$truthy(["send","csend","index","super","zsuper","lambda"]["$include?"](method_call.$type()))?this.$n(block_type,[method_call,args,body],this.$block_map(method_call.$loc().$expression(),begin_t,end_t)):(actual_send=null==($a=[].concat($to_a(method_call)))[0]?nil:$a[0],block=this.$n(block_type,[actual_send,args,body],this.$block_map(actual_send.$loc().$expression(),begin_t,end_t)),this.$n(method_call.$type(),[block],method_call.$loc().$with_expression(this.$join_exprs(method_call,block))))}),5),$def(self,"$block_pass",(function(amper_t,arg){return this.$n("block_pass",[arg],this.$unary_op_map(amper_t,arg))}),2),$def(self,"$objc_varargs",(function(pair,rest_of_varargs){var $a,value,first_vararg=nil,vararg_array=nil;return value=null==($a=[].concat($to_a(pair)))[0]?nil:$a[0],first_vararg=null==$a[1]?nil:$a[1],vararg_array=this.$array(nil,[first_vararg].concat($to_a(rest_of_varargs)),nil).$updated("objc_varargs"),pair.$updated(nil,[value,vararg_array],$hash2(["location"],{location:pair.$loc().$with_expression(pair.$loc().$expression().$join(vararg_array.$loc().$expression()))}))}),2),$def(self,"$attr_asgn",(function(receiver,dot_t,selector_t){var method_name,type;return method_name=$rb_plus(this.$value(selector_t),"=").$to_sym(),type=this.$call_type_for_dot(dot_t),this.$n(type,[receiver,method_name],this.$send_map(receiver,dot_t,selector_t))}),3),$def(self,"$index",(function(receiver,lbrack_t,indexes,rbrack_t){return $truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(indexes),$truthy(this.$class().$emit_index())?this.$n("index",[receiver].concat($to_a(indexes)),this.$index_map(receiver,lbrack_t,rbrack_t)):this.$n("send",[receiver,"[]"].concat($to_a(indexes)),this.$send_index_map(receiver,lbrack_t,rbrack_t))}),4),$def(self,"$index_asgn",(function(receiver,lbrack_t,indexes,rbrack_t){return $truthy(this.$class().$emit_index())?this.$n("indexasgn",[receiver].concat($to_a(indexes)),this.$index_map(receiver,lbrack_t,rbrack_t)):this.$n("send",[receiver,"[]="].concat($to_a(indexes)),this.$send_index_map(receiver,lbrack_t,rbrack_t))}),4),$def(self,"$binary_op",(function(receiver,operator_t,arg){var source_map=nil,operator=nil,method_call=nil;return source_map=this.$send_binary_op_map(receiver,operator_t,arg),$eqeq(this.parser.$version(),18)&&(operator=this.$value(operator_t),$eqeq(operator,"!=")?method_call=this.$n("send",[receiver,"==",arg],source_map):$eqeq(operator,"!~")&&(method_call=this.$n("send",[receiver,"=~",arg],source_map)),$truthy(["!=","!~"]["$include?"](operator)))?this.$n("not",[method_call],this.$expr_map(source_map.$expression())):this.$n("send",[receiver,this.$value(operator_t).$to_sym(),arg],source_map)}),3),$def(self,"$match_op",(function(receiver,match_t,arg){var source_map,regexp=nil;return source_map=this.$send_binary_op_map(receiver,match_t,arg),$truthy(regexp=this.$static_regexp_node(receiver))?($send(regexp.$names(),"each",[],(function $$11(name){var self=null==$$11.$$s?this:$$11.$$s;return null==self.parser&&(self.parser=nil),null==name&&(name=nil),self.parser.$static_env().$declare(name)}),{$$arity:1,$$s:this}),this.$n("match_with_lvasgn",[receiver,arg],source_map)):this.$n("send",[receiver,"=~",arg],source_map)}),3),$def(self,"$unary_op",(function(op_t,receiver){var $ret_or_1,method=nil;return method=$eqeqeq("+",$ret_or_1=this.$value(op_t))||$eqeqeq("-",$ret_or_1)?$rb_plus(this.$value(op_t),"@"):this.$value(op_t),this.$n("send",[receiver,method.$to_sym()],this.$send_unary_op_map(op_t,receiver))}),2),$def(self,"$not_op",(function(not_t,begin_t,receiver,end_t){var nil_node=nil;return null==begin_t&&(begin_t=nil),null==receiver&&(receiver=nil),null==end_t&&(end_t=nil),$eqeq(this.parser.$version(),18)?this.$n("not",[this.$check_condition(receiver)],this.$unary_op_map(not_t,receiver)):$truthy(receiver["$nil?"]())?(nil_node=this.$n0("begin",this.$collection_map(begin_t,nil,end_t)),this.$n("send",[nil_node,"!"],this.$send_unary_op_map(not_t,nil_node))):this.$n("send",[this.$check_condition(receiver),"!"],this.$send_map(nil,nil,not_t,begin_t,[receiver],end_t))}),-2),$def(self,"$logical_op",(function(type,lhs,op_t,rhs){return this.$n(type,[lhs,rhs],this.$binary_op_map(lhs,op_t,rhs))}),4),$def(self,"$condition",(function(cond_t,cond,then_t,if_true,else_t,if_false,end_t){return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$condition_map(cond_t,cond,then_t,if_true,else_t,if_false,end_t))}),7),$def(self,"$condition_mod",(function(if_true,if_false,cond_t,cond){var $ret_or_1;return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$keyword_mod_map($truthy($ret_or_1=if_true)?$ret_or_1:if_false,cond_t,cond))}),4),$def(self,"$ternary",(function(cond,question_t,if_true,colon_t,if_false){return this.$n("if",[this.$check_condition(cond),if_true,if_false],this.$ternary_map(cond,question_t,if_true,colon_t,if_false))}),5),$def(self,"$when",(function(when_t,patterns,then_t,body){var children;return children=patterns["$<<"](body),this.$n("when",children,this.$keyword_map(when_t,then_t,children,nil))}),4),$def(self,"$case",(function(case_t,expr,when_bodies,else_t,else_body,end_t){return this.$n("case",[expr].concat($to_a(when_bodies["$<<"](else_body))),this.$condition_map(case_t,expr,nil,nil,else_t,else_body,end_t))}),6),$def(self,"$loop",(function(type,keyword_t,cond,do_t,body,end_t){return this.$n(type,[this.$check_condition(cond),body],this.$keyword_map(keyword_t,do_t,nil,end_t))}),6),$def(self,"$loop_mod",(function(type,body,keyword_t,cond){return $eqeq(body.$type(),"kwbegin")&&(type+="_post"),this.$n(type,[this.$check_condition(cond),body],this.$keyword_mod_map(body,keyword_t,cond))}),4),$def(self,"$for",(function(for_t,iterator,in_t,iteratee,do_t,body,end_t){return this.$n("for",[iterator,iteratee,body],this.$for_map(for_t,in_t,do_t,end_t))}),7),$def(self,"$keyword_cmd",(function(type,keyword_t,lparen_t,args,rparen_t){var last_arg=nil;return null==lparen_t&&(lparen_t=nil),null==args&&(args=[]),null==rparen_t&&(rparen_t=nil),$eqeq(type,"yield")&&$truthy($rb_gt(args.$count(),0))&&(last_arg=args.$last(),$eqeq(last_arg.$type(),"block_pass")&&this.$diagnostic("error","block_given_to_yield",nil,this.$loc(keyword_t),[last_arg.$loc().$expression()])),$truthy(["yield","super"]["$include?"](type))&&$truthy(this.$class().$emit_kwargs())&&this.$rewrite_hash_args_to_kwargs(args),this.$n(type,args,this.$keyword_map(keyword_t,lparen_t,args,rparen_t))}),-3),$def(self,"$preexe",(function(preexe_t,lbrace_t,compstmt,rbrace_t){return this.$n("preexe",[compstmt],this.$keyword_map(preexe_t,lbrace_t,[],rbrace_t))}),4),$def(self,"$postexe",(function(postexe_t,lbrace_t,compstmt,rbrace_t){return this.$n("postexe",[compstmt],this.$keyword_map(postexe_t,lbrace_t,[],rbrace_t))}),4),$def(self,"$rescue_body",(function(rescue_t,exc_list,assoc_t,exc_var,then_t,compound_stmt){return this.$n("resbody",[exc_list,exc_var,compound_stmt],this.$rescue_body_map(rescue_t,exc_list,assoc_t,exc_var,then_t,compound_stmt))}),6),$def(self,"$begin_body",(function(compound_stmt,rescue_bodies,else_t,else_,ensure_t,ensure_){var statements=nil;return null==rescue_bodies&&(rescue_bodies=[]),null==else_t&&(else_t=nil),null==else_&&(else_=nil),null==ensure_t&&(ensure_t=nil),null==ensure_&&(ensure_=nil),$truthy(rescue_bodies["$any?"]())?compound_stmt=$truthy(else_t)?this.$n("rescue",[compound_stmt].concat($to_a($rb_plus(rescue_bodies,[else_]))),this.$eh_keyword_map(compound_stmt,nil,rescue_bodies,else_t,else_)):this.$n("rescue",[compound_stmt].concat($to_a($rb_plus(rescue_bodies,[nil]))),this.$eh_keyword_map(compound_stmt,nil,rescue_bodies,nil,nil)):$truthy(else_t)&&(statements=[],$not(compound_stmt["$nil?"]())&&($eqeq(compound_stmt.$type(),"begin")?statements=$rb_plus(statements,compound_stmt.$children()):statements.$push(compound_stmt)),statements.$push(this.$n("begin",[else_],this.$collection_map(else_t,[else_],nil))),compound_stmt=this.$n("begin",statements,this.$collection_map(nil,statements,nil))),$truthy(ensure_t)&&(compound_stmt=this.$n("ensure",[compound_stmt,ensure_],this.$eh_keyword_map(compound_stmt,ensure_t,[ensure_],nil,nil))),compound_stmt}),-2),$def(self,"$compstmt",(function(statements){return $truthy(statements["$none?"]())?nil:$truthy(statements["$one?"]())?statements.$first():this.$n("begin",statements,this.$collection_map(nil,statements,nil))}),1),$def(self,"$begin",(function(begin_t,body,end_t){return $truthy(body["$nil?"]())?this.$n0("begin",this.$collection_map(begin_t,nil,end_t)):$eqeq(body.$type(),"mlhs")||$eqeq(body.$type(),"begin")&&$truthy(body.$loc().$begin()["$nil?"]())&&$truthy(body.$loc().$end()["$nil?"]())?this.$n(body.$type(),body.$children(),this.$collection_map(begin_t,body.$children(),end_t)):this.$n("begin",[body],this.$collection_map(begin_t,[body],end_t))}),3),$def(self,"$begin_keyword",(function(begin_t,body,end_t){return $truthy(body["$nil?"]())?this.$n0("kwbegin",this.$collection_map(begin_t,nil,end_t)):$eqeq(body.$type(),"begin")&&$truthy(body.$loc().$begin()["$nil?"]())&&$truthy(body.$loc().$end()["$nil?"]())?this.$n("kwbegin",body.$children(),this.$collection_map(begin_t,body.$children(),end_t)):this.$n("kwbegin",[body],this.$collection_map(begin_t,[body],end_t))}),3),$def(self,"$case_match",(function(case_t,expr,in_bodies,else_t,else_body,end_t){return $truthy(else_t)&&$not(else_body)&&(else_body=this.$n("empty_else",nil,this.$token_map(else_t))),this.$n("case_match",[expr].concat($to_a(in_bodies["$<<"](else_body))),this.$condition_map(case_t,expr,nil,nil,else_t,else_body,end_t))}),6),$def(self,"$in_match",(function(lhs,in_t,rhs){return this.$n("in_match",[lhs,rhs],this.$binary_op_map(lhs,in_t,rhs))}),3),$def(self,"$match_pattern",(function(lhs,match_t,rhs){return this.$n("match_pattern",[lhs,rhs],this.$binary_op_map(lhs,match_t,rhs))}),3),$def(self,"$match_pattern_p",(function(lhs,match_t,rhs){return this.$n("match_pattern_p",[lhs,rhs],this.$binary_op_map(lhs,match_t,rhs))}),3),$def(self,"$in_pattern",(function(in_t,pattern,guard,then_t,body){var children=nil;return children=[pattern,guard,body],this.$n("in_pattern",children,this.$keyword_map(in_t,then_t,children.$compact(),nil))}),5),$def(self,"$if_guard",(function(if_t,if_body){return this.$n("if_guard",[if_body],this.$guard_map(if_t,if_body))}),2),$def(self,"$unless_guard",(function(unless_t,unless_body){return this.$n("unless_guard",[unless_body],this.$guard_map(unless_t,unless_body))}),2),$def(self,"$match_var",(function(name_t){var name,name_l;return name=this.$value(name_t).$to_sym(),name_l=this.$loc(name_t),this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),this.$n("match_var",[name],this.$variable_map(name_t))}),1),$def(self,"$match_hash_var",(function(name_t){var name,name_l,expr_l=nil;return name=this.$value(name_t).$to_sym(),name_l=(expr_l=this.$loc(name_t)).$adjust($hash2(["end_pos"],{end_pos:-1})),this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),this.$n("match_var",[name],$$$($$$($$("Source"),"Map"),"Variable").$new(name_l,expr_l))}),1),$def(self,"$match_hash_var_from_str",(function(begin_t,strings,end_t){var $a,$ret_or_1,string=nil,name=nil,name_l=nil,begin_l=nil,end_l=nil,expr_l=nil;return $truthy($rb_gt(strings.$length(),1))&&this.$diagnostic("error","pm_interp_in_var_name",nil,this.$loc(begin_t).$join(this.$loc(end_t))),string=strings["$[]"](0),$eqeqeq("str",$ret_or_1=string.$type())?(name=null==($a=[].concat($to_a(string)))[0]?nil:$a[0],name_l=string.$loc().$expression(),this.$check_lvar_name(name,name_l),this.$check_duplicate_pattern_variable(name,name_l),this.parser.$static_env().$declare(name),$truthy(begin_l=string.$loc().$begin())&&(name_l=name_l.$adjust($hash2(["begin_pos"],{begin_pos:begin_l.$length()}))),$truthy(end_l=string.$loc().$end())&&(name_l=name_l.$adjust($hash2(["end_pos"],{end_pos:end_l.$length()["$-@"]()}))),expr_l=this.$loc(begin_t).$join(string.$loc().$expression()).$join(this.$loc(end_t)),this.$n("match_var",[name.$to_sym()],$$$($$$($$("Source"),"Map"),"Variable").$new(name_l,expr_l))):$eqeqeq("begin",$ret_or_1)?this.$match_hash_var_from_str(begin_t,string.$children(),end_t):this.$diagnostic("error","pm_interp_in_var_name",nil,this.$loc(begin_t).$join(this.$loc(end_t)))}),3),$def(self,"$match_rest",(function(star_t,name_t){var name=nil;return null==name_t&&(name_t=nil),$truthy(name_t["$nil?"]())?this.$n0("match_rest",this.$unary_op_map(star_t)):(name=this.$match_var(name_t),this.$n("match_rest",[name],this.$unary_op_map(star_t,name)))}),-2),$def(self,"$hash_pattern",(function(lbrace_t,kwargs,rbrace_t){var args;return args=this.$check_duplicate_args(kwargs),this.$n("hash_pattern",args,this.$collection_map(lbrace_t,args,rbrace_t))}),3),$def(self,"$array_pattern",(function(lbrack_t,elements,rbrack_t){var node_elements,node_type,trailing_comma=nil;return $truthy(elements["$nil?"]())?this.$n("array_pattern",nil,this.$collection_map(lbrack_t,[],rbrack_t)):(trailing_comma=!1,node_elements=$send(elements,"map",[],(function(element){return null==element&&(element=nil),$eqeq(element.$type(),"match_with_trailing_comma")?(trailing_comma=!0,element.$children().$first()):(trailing_comma=!1,element)}),1),node_type=$truthy(trailing_comma)?"array_pattern_with_tail":"array_pattern",this.$n(node_type,node_elements,this.$collection_map(lbrack_t,elements,rbrack_t)))}),3),$def(self,"$find_pattern",(function(lbrack_t,elements,rbrack_t){return this.$n("find_pattern",elements,this.$collection_map(lbrack_t,elements,rbrack_t))}),3),$def(self,"$match_with_trailing_comma",(function(match,comma_t){return this.$n("match_with_trailing_comma",[match],this.$expr_map(match.$loc().$expression().$join(this.$loc(comma_t))))}),2),$def(self,"$const_pattern",(function(const$,ldelim_t,pattern,rdelim_t){return this.$n("const_pattern",[const$,pattern],$$$($$$($$("Source"),"Map"),"Collection").$new(this.$loc(ldelim_t),this.$loc(rdelim_t),const$.$loc().$expression().$join(this.$loc(rdelim_t))))}),4),$def(self,"$pin",(function(pin_t,var$){return this.$n("pin",[var$],this.$send_unary_op_map(pin_t,var$))}),2),$def(self,"$match_alt",(function(left,pipe_t,right){var source_map;return source_map=this.$binary_op_map(left,pipe_t,right),this.$n("match_alt",[left,right],source_map)}),3),$def(self,"$match_as",(function(value,assoc_t,as){var source_map;return source_map=this.$binary_op_map(value,assoc_t,as),this.$n("match_as",[value,as],source_map)}),3),$def(self,"$match_nil_pattern",(function(dstar_t,nil_t){return this.$n0("match_nil_pattern",this.$arg_prefix_map(dstar_t,nil_t))}),2),$def(self,"$match_pair",(function(label_type,label,value){var $a,begin_t=nil,parts=nil,end_t=nil,label_loc=nil,var_name=nil;return $eqeq(label_type,"label")?(this.$check_duplicate_pattern_key(label["$[]"](0),label["$[]"](1)),this.$pair_keyword(label,value)):(begin_t=null==($a=$to_ary(label))[0]?nil:$a[0],parts=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],label_loc=this.$loc(begin_t).$join(this.$loc(end_t)),$truthy(var_name=this.$static_string(parts))?this.$check_duplicate_pattern_key(var_name,label_loc):this.$diagnostic("error","pm_interp_in_var_name",nil,label_loc),this.$pair_quoted(begin_t,parts,end_t,value))}),3),$def(self,"$match_label",(function(label_type,label){var $a,begin_t=nil,strings=nil,end_t=nil;return $eqeq(label_type,"label")?this.$match_hash_var(label):(begin_t=null==($a=$to_ary(label))[0]?nil:$a[0],strings=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],this.$match_hash_var_from_str(begin_t,strings,end_t))}),2),self.$private(),$def(self,"$check_condition",(function(cond){var $a,$ret_or_1,lhs=nil,rhs=nil,type=nil,$ret_or_2=nil;return $eqeqeq("masgn",$ret_or_1=cond.$type())?$truthy($rb_le(this.parser.$version(),23))?this.$diagnostic("error","masgn_as_condition",nil,cond.$loc().$expression()):cond:$eqeqeq("begin",$ret_or_1)?$eqeq(cond.$children().$count(),1)?cond.$updated(nil,[this.$check_condition(cond.$children().$last())]):cond:$eqeqeq("and",$ret_or_1)||$eqeqeq("or",$ret_or_1)||$eqeqeq("irange",$ret_or_1)||$eqeqeq("erange",$ret_or_1)?(lhs=null==($a=[].concat($to_a(cond)))[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],type=$eqeqeq("irange",$ret_or_2=cond.$type())?"iflipflop":$eqeqeq("erange",$ret_or_2)?"eflipflop":nil,$truthy(["and","or"]["$include?"](cond.$type()))&&$eqeq(this.parser.$version(),18)?cond:cond.$updated(type,[this.$check_condition(lhs),this.$check_condition(rhs)])):$eqeqeq("regexp",$ret_or_1)?this.$n("match_current_line",[cond],this.$expr_map(cond.$loc().$expression())):cond}),1),$def(self,"$check_duplicate_args",(function(args,map){return null==map&&(map=$hash2([],{})),$send(args,"each",[],(function $$15(this_arg){var $ret_or_1,self=null==$$15.$$s?this:$$15.$$s;return null==this_arg&&(this_arg=nil),$eqeqeq("arg",$ret_or_1=this_arg.$type())||$eqeqeq("optarg",$ret_or_1)||$eqeqeq("restarg",$ret_or_1)||$eqeqeq("blockarg",$ret_or_1)||$eqeqeq("kwarg",$ret_or_1)||$eqeqeq("kwoptarg",$ret_or_1)||$eqeqeq("kwrestarg",$ret_or_1)||$eqeqeq("shadowarg",$ret_or_1)?self.$check_duplicate_arg(this_arg,map):$eqeqeq("procarg0",$ret_or_1)?$truthy(this_arg.$children()["$[]"](0)["$is_a?"]($$("Symbol")))?self.$check_duplicate_arg(this_arg,map):self.$check_duplicate_args(this_arg.$children(),map):$eqeqeq("mlhs",$ret_or_1)?self.$check_duplicate_args(this_arg.$children(),map):nil}),{$$arity:1,$$s:this})}),-2),$def(self,"$check_duplicate_arg",(function(this_arg,map){var $a,this_name,that_name,that_arg=nil,$writer=nil;return null==map&&(map=$hash2([],{})),this_name=null==($a=[].concat($to_a(this_arg)))[0]?nil:$a[0],that_arg=map["$[]"](this_name),that_name=null==($a=[].concat($to_a(that_arg)))[0]?nil:$a[0],$truthy(that_arg["$nil?"]())?($send(map,"[]=",$to_a($writer=[this_name,this_arg])),$writer[$rb_minus($writer.length,1)]):$truthy(this["$arg_name_collides?"](this_name,that_name))?this.$diagnostic("error","duplicate_argument",nil,this_arg.$loc().$name(),[that_arg.$loc().$name()]):nil}),-2),$def(self,"$validate_no_forward_arg_after_restarg",(function(args){var restarg=nil,forward_arg=nil;return restarg=nil,forward_arg=nil,$send(args,"each",[],(function(arg){var $ret_or_1;return null==arg&&(arg=nil),$eqeqeq("restarg",$ret_or_1=arg.$type())?restarg=arg:$eqeqeq("forward_arg",$ret_or_1)?forward_arg=arg:nil}),1),$not(forward_arg["$nil?"]())&&$not(restarg["$nil?"]())?this.$diagnostic("error","forward_arg_after_restarg",nil,forward_arg.$loc().$expression(),[restarg.$loc().$expression()]):nil}),1),$def(self,"$check_assignment_to_numparam",(function(name,loc){var assigning_to_numparam,$ret_or_1,$ret_or_2;return $truthy($rb_lt(this.parser.$version(),27))?nil:(assigning_to_numparam=$truthy($ret_or_1=$truthy($ret_or_2=this.parser.$context()["$in_dynamic_block?"]())?name["$=~"](/^_([1-9])$/):$ret_or_2)?this.parser.$max_numparam_stack()["$has_numparams?"]():$ret_or_1,$truthy(assigning_to_numparam)?this.$diagnostic("error","cant_assign_to_numparam",$hash2(["name"],{name:name}),loc):nil)}),2),$def(self,"$check_reserved_for_numparam",(function(name,loc){return $truthy($rb_lt(this.parser.$version(),30))?nil:$truthy(name["$=~"](/^_([1-9])$/))?this.$diagnostic("error","reserved_for_numparam",$hash2(["name"],{name:name}),loc):nil}),2),$def(self,"$arg_name_collides?",(function(this_name,that_name){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $eqeqeq(18,$ret_or_1=this.parser.$version())?this_name["$=="](that_name):$eqeqeq(19,$ret_or_1)?$truthy($ret_or_2=this_name["$!="]("_"))?this_name["$=="](that_name):$ret_or_2:$truthy($ret_or_2=$truthy($ret_or_3=this_name)?this_name["$[]"](0)["$!="]("_"):$ret_or_3)?this_name["$=="](that_name):$ret_or_2}),2),$def(self,"$check_lvar_name",(function(name,loc){return $truthy(name["$=~"](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?nil:this.$diagnostic("error","lvar_name",$hash2(["name"],{name:name}),loc)}),2),$def(self,"$check_duplicate_pattern_variable",(function(name,loc){return $truthy(name.$to_s()["$start_with?"]("_"))?nil:($truthy(this.parser.$pattern_variables()["$declared?"](name))&&this.$diagnostic("error","duplicate_variable_name",$hash2(["name"],{name:name.$to_s()}),loc),this.parser.$pattern_variables().$declare(name))}),2),$def(self,"$check_duplicate_pattern_key",(function(name,loc){return $truthy(this.parser.$pattern_hash_keys()["$declared?"](name))&&this.$diagnostic("error","duplicate_pattern_key",$hash2(["name"],{name:name.$to_s()}),loc),this.parser.$pattern_hash_keys().$declare(name)}),2),$def(self,"$n",(function(type,children,source_map){return $$$($$("AST"),"Node").$new(type,children,$hash2(["location"],{location:source_map}))}),3),$def(self,"$n0",(function(type,source_map){return this.$n(type,[],source_map)}),2),$def(self,"$join_exprs",(function(left_expr,right_expr){return left_expr.$loc().$expression().$join(right_expr.$loc().$expression())}),2),$def(self,"$token_map",(function(token){return $$$($$("Source"),"Map").$new(this.$loc(token))}),1),$def(self,"$delimited_string_map",(function(string_t){var begin_l,end_l,str_range=nil;return begin_l=(str_range=this.$loc(string_t)).$with($hash2(["end_pos"],{end_pos:$rb_plus(str_range.$begin_pos(),1)})),end_l=str_range.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(str_range.$end_pos(),1)})),$$$($$$($$("Source"),"Map"),"Collection").$new(begin_l,end_l,this.$loc(string_t))}),1),$def(self,"$prefix_string_map",(function(symbol){var begin_l,str_range=nil;return begin_l=(str_range=this.$loc(symbol)).$with($hash2(["end_pos"],{end_pos:$rb_plus(str_range.$begin_pos(),1)})),$$$($$$($$("Source"),"Map"),"Collection").$new(begin_l,nil,this.$loc(symbol))}),1),$def(self,"$unquoted_map",(function(token){return $$$($$$($$("Source"),"Map"),"Collection").$new(nil,nil,this.$loc(token))}),1),$def(self,"$pair_keyword_map",(function(key_t,value_e){var key_l,colon_l,key_range=nil;return key_l=(key_range=this.$loc(key_t)).$adjust($hash2(["end_pos"],{end_pos:-1})),colon_l=key_range.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(key_range.$end_pos(),1)})),[$$$($$$($$("Source"),"Map"),"Collection").$new(nil,nil,key_l),$$$($$$($$("Source"),"Map"),"Operator").$new(colon_l,key_range.$join(value_e.$loc().$expression()))]}),2),$def(self,"$pair_quoted_map",(function(begin_t,end_t,value_e){var quote_l,colon_l,end_l=nil;return quote_l=(end_l=this.$loc(end_t)).$with($hash2(["begin_pos","end_pos"],{begin_pos:$rb_minus(end_l.$end_pos(),2),end_pos:$rb_minus(end_l.$end_pos(),1)})),colon_l=end_l.$with($hash2(["begin_pos"],{begin_pos:$rb_minus(end_l.$end_pos(),1)})),[[this.$value(end_t),quote_l],$$$($$$($$("Source"),"Map"),"Operator").$new(colon_l,this.$loc(begin_t).$join(value_e.$loc().$expression()))]}),3),$def(self,"$expr_map",(function(loc){return $$$($$("Source"),"Map").$new(loc)}),1),$def(self,"$collection_map",(function(begin_t,parts,end_t){var expr_l=nil;return $truthy(begin_t["$nil?"]())||$truthy(end_t["$nil?"]())?$truthy(parts["$any?"]())?expr_l=this.$join_exprs(parts.$first(),parts.$last()):$not(begin_t["$nil?"]())?expr_l=this.$loc(begin_t):$not(end_t["$nil?"]())&&(expr_l=this.$loc(end_t)):expr_l=this.$loc(begin_t).$join(this.$loc(end_t)),$$$($$$($$("Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),expr_l)}),3),$def(self,"$string_map",(function(begin_t,parts,end_t){var expr_l=nil;return $truthy(begin_t)&&$truthy(this.$value(begin_t)["$start_with?"]("<<"))?(expr_l=$truthy(parts["$any?"]())?this.$join_exprs(parts.$first(),parts.$last()):this.$loc(end_t).$begin(),$$$($$$($$("Source"),"Map"),"Heredoc").$new(this.$loc(begin_t),expr_l,this.$loc(end_t))):this.$collection_map(begin_t,parts,end_t)}),3),$def(self,"$regexp_map",(function(begin_t,end_t,options_e){return $$$($$$($$("Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),this.$loc(begin_t).$join(options_e.$loc().$expression()))}),3),$def(self,"$constant_map",(function(scope,colon2_t,name_t){var expr_l=nil;return expr_l=$truthy(scope["$nil?"]())?this.$loc(name_t):scope.$loc().$expression().$join(this.$loc(name_t)),$$$($$$($$("Source"),"Map"),"Constant").$new(this.$loc(colon2_t),this.$loc(name_t),expr_l)}),3),$def(self,"$variable_map",(function(name_t){return $$$($$$($$("Source"),"Map"),"Variable").$new(this.$loc(name_t))}),1),$def(self,"$binary_op_map",(function(left_e,op_t,right_e){return $$$($$$($$("Source"),"Map"),"Operator").$new(this.$loc(op_t),this.$join_exprs(left_e,right_e))}),3),$def(self,"$unary_op_map",(function(op_t,arg_e){var expr_l=nil;return null==arg_e&&(arg_e=nil),expr_l=$truthy(arg_e["$nil?"]())?this.$loc(op_t):this.$loc(op_t).$join(arg_e.$loc().$expression()),$$$($$$($$("Source"),"Map"),"Operator").$new(this.$loc(op_t),expr_l)}),-2),$def(self,"$range_map",(function(start_e,op_t,end_e){var expr_l=nil;return $truthy(start_e)&&$truthy(end_e)?expr_l=this.$join_exprs(start_e,end_e):$truthy(start_e)?expr_l=start_e.$loc().$expression().$join(this.$loc(op_t)):$truthy(end_e)&&(expr_l=this.$loc(op_t).$join(end_e.$loc().$expression())),$$$($$$($$("Source"),"Map"),"Operator").$new(this.$loc(op_t),expr_l)}),3),$def(self,"$arg_prefix_map",(function(op_t,name_t){var expr_l=nil;return null==name_t&&(name_t=nil),expr_l=$truthy(name_t["$nil?"]())?this.$loc(op_t):this.$loc(op_t).$join(this.$loc(name_t)),$$$($$$($$("Source"),"Map"),"Variable").$new(this.$loc(name_t),expr_l)}),-2),$def(self,"$kwarg_map",(function(name_t,value_e){var name_range,expr_l=nil;return null==value_e&&(value_e=nil),name_range=this.$loc(name_t).$adjust($hash2(["end_pos"],{end_pos:-1})),expr_l=$truthy(value_e)?this.$loc(name_t).$join(value_e.$loc().$expression()):this.$loc(name_t),$$$($$$($$("Source"),"Map"),"Variable").$new(name_range,expr_l)}),-2),$def(self,"$module_definition_map",(function(keyword_t,name_e,operator_t,end_t){var name_l=nil;return $truthy(name_e)&&(name_l=name_e.$loc().$expression()),$$$($$$($$("Source"),"Map"),"Definition").$new(this.$loc(keyword_t),this.$loc(operator_t),name_l,this.$loc(end_t))}),4),$def(self,"$definition_map",(function(keyword_t,operator_t,name_t,end_t){return $$$($$$($$("Source"),"Map"),"MethodDefinition").$new(this.$loc(keyword_t),this.$loc(operator_t),this.$loc(name_t),this.$loc(end_t),nil,nil)}),4),$def(self,"$endless_definition_map",(function(keyword_t,operator_t,name_t,assignment_t,body_e){var body_l;return body_l=body_e.$loc().$expression(),$$$($$$($$("Source"),"Map"),"MethodDefinition").$new(this.$loc(keyword_t),this.$loc(operator_t),this.$loc(name_t),nil,this.$loc(assignment_t),body_l)}),5),$def(self,"$send_map",(function(receiver_e,dot_t,selector_t,begin_t,args,end_t){var begin_l=nil,end_l=nil;return null==begin_t&&(begin_t=nil),null==args&&(args=[]),null==end_t&&(end_t=nil),$truthy(receiver_e)?begin_l=receiver_e.$loc().$expression():$truthy(selector_t)&&(begin_l=this.$loc(selector_t)),$truthy(end_t)?end_l=this.$loc(end_t):$truthy(args["$any?"]())?end_l=args.$last().$loc().$expression():$truthy(selector_t)&&(end_l=this.$loc(selector_t)),$$$($$$($$("Source"),"Map"),"Send").$new(this.$loc(dot_t),this.$loc(selector_t),this.$loc(begin_t),this.$loc(end_t),begin_l.$join(end_l))}),-4),$def(self,"$var_send_map",(function(variable_e){return $$$($$$($$("Source"),"Map"),"Send").$new(nil,variable_e.$loc().$expression(),nil,nil,variable_e.$loc().$expression())}),1),$def(self,"$send_binary_op_map",(function(lhs_e,selector_t,rhs_e){return $$$($$$($$("Source"),"Map"),"Send").$new(nil,this.$loc(selector_t),nil,nil,this.$join_exprs(lhs_e,rhs_e))}),3),$def(self,"$send_unary_op_map",(function(selector_t,arg_e){var expr_l=nil;return expr_l=$truthy(arg_e["$nil?"]())?this.$loc(selector_t):this.$loc(selector_t).$join(arg_e.$loc().$expression()),$$$($$$($$("Source"),"Map"),"Send").$new(nil,this.$loc(selector_t),nil,nil,expr_l)}),2),$def(self,"$index_map",(function(receiver_e,lbrack_t,rbrack_t){return $$$($$$($$("Source"),"Map"),"Index").$new(this.$loc(lbrack_t),this.$loc(rbrack_t),receiver_e.$loc().$expression().$join(this.$loc(rbrack_t)))}),3),$def(self,"$send_index_map",(function(receiver_e,lbrack_t,rbrack_t){return $$$($$$($$("Source"),"Map"),"Send").$new(nil,this.$loc(lbrack_t).$join(this.$loc(rbrack_t)),nil,nil,receiver_e.$loc().$expression().$join(this.$loc(rbrack_t)))}),3),$def(self,"$block_map",(function(receiver_l,begin_t,end_t){return $$$($$$($$("Source"),"Map"),"Collection").$new(this.$loc(begin_t),this.$loc(end_t),receiver_l.$join(this.$loc(end_t)))}),3),$def(self,"$keyword_map",(function(keyword_t,begin_t,args,end_t){var $ret_or_1,end_l=nil;return args=$truthy($ret_or_1=args)?$ret_or_1:[],end_l=$truthy(end_t)?this.$loc(end_t):$truthy(args["$any?"]())&&$not(args.$last()["$nil?"]())?args.$last().$loc().$expression():$truthy(args["$any?"]())&&$truthy($rb_gt(args.$count(),1))?args["$[]"](-2).$loc().$expression():this.$loc(keyword_t),$$$($$$($$("Source"),"Map"),"Keyword").$new(this.$loc(keyword_t),this.$loc(begin_t),this.$loc(end_t),this.$loc(keyword_t).$join(end_l))}),4),$def(self,"$keyword_mod_map",(function(pre_e,keyword_t,post_e){return $$$($$$($$("Source"),"Map"),"Keyword").$new(this.$loc(keyword_t),nil,nil,this.$join_exprs(pre_e,post_e))}),3),$def(self,"$condition_map",(function(keyword_t,cond_e,begin_t,body_e,else_t,else_e,end_t){var end_l=nil;return end_l=$truthy(end_t)?this.$loc(end_t):$truthy(else_e)&&$truthy(else_e.$loc().$expression())?else_e.$loc().$expression():$truthy(this.$loc(else_t))?this.$loc(else_t):$truthy(body_e)&&$truthy(body_e.$loc().$expression())?body_e.$loc().$expression():$truthy(this.$loc(begin_t))?this.$loc(begin_t):cond_e.$loc().$expression(),$$$($$$($$("Source"),"Map"),"Condition").$new(this.$loc(keyword_t),this.$loc(begin_t),this.$loc(else_t),this.$loc(end_t),this.$loc(keyword_t).$join(end_l))}),7),$def(self,"$ternary_map",(function(begin_e,question_t,mid_e,colon_t,end_e){return $$$($$$($$("Source"),"Map"),"Ternary").$new(this.$loc(question_t),this.$loc(colon_t),this.$join_exprs(begin_e,end_e))}),5),$def(self,"$for_map",(function(keyword_t,in_t,begin_t,end_t){return $$$($$$($$("Source"),"Map"),"For").$new(this.$loc(keyword_t),this.$loc(in_t),this.$loc(begin_t),this.$loc(end_t),this.$loc(keyword_t).$join(this.$loc(end_t)))}),4),$def(self,"$rescue_body_map",(function(keyword_t,exc_list_e,assoc_t,exc_var_e,then_t,compstmt_e){var end_l=nil;return $truthy(compstmt_e)&&(end_l=compstmt_e.$loc().$expression()),$truthy(end_l["$nil?"]())&&$truthy(then_t)&&(end_l=this.$loc(then_t)),$truthy(end_l["$nil?"]())&&$truthy(exc_var_e)&&(end_l=exc_var_e.$loc().$expression()),$truthy(end_l["$nil?"]())&&$truthy(exc_list_e)&&(end_l=exc_list_e.$loc().$expression()),$truthy(end_l["$nil?"]())&&(end_l=this.$loc(keyword_t)),$$$($$$($$("Source"),"Map"),"RescueBody").$new(this.$loc(keyword_t),this.$loc(assoc_t),this.$loc(then_t),this.$loc(keyword_t).$join(end_l))}),6),$def(self,"$eh_keyword_map",(function(compstmt_e,keyword_t,body_es,else_t,else_e){var begin_l=nil,end_l=nil;return begin_l=$truthy(compstmt_e["$nil?"]())?$truthy(keyword_t["$nil?"]())?body_es.$first().$loc().$expression():this.$loc(keyword_t):compstmt_e.$loc().$expression(),end_l=$truthy(else_t)?$truthy(else_e["$nil?"]())?this.$loc(else_t):else_e.$loc().$expression():$not(body_es.$last()["$nil?"]())?body_es.$last().$loc().$expression():this.$loc(keyword_t),$$$($$$($$("Source"),"Map"),"Condition").$new(this.$loc(keyword_t),nil,this.$loc(else_t),nil,begin_l.$join(end_l))}),5),$def(self,"$guard_map",(function(keyword_t,guard_body_e){var guard_body_l,keyword_l=nil;return keyword_l=this.$loc(keyword_t),guard_body_l=guard_body_e.$loc().$expression(),$$$($$$($$("Source"),"Map"),"Keyword").$new(keyword_l,nil,nil,keyword_l.$join(guard_body_l))}),2),$def(self,"$static_string",(function(nodes){try{return $send(nodes,"map",[],(function $$18(node){var $ret_or_1,self=null==$$18.$$s?this:$$18.$$s,string=nil;if(null==node&&(node=nil),$eqeqeq("str",$ret_or_1=node.$type()))return node.$children()["$[]"](0);if($eqeqeq("begin",$ret_or_1)){if($truthy(string=self.$static_string(node.$children())))return string;Opal.ret(nil)}else Opal.ret(nil)}),{$$arity:1,$$s:this}).$join()}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),1),$def(self,"$static_regexp",(function(parts,options){var source=nil;return source=this.$static_string(parts),$truthy(source["$nil?"]())?nil:(source=$truthy(options.$children()["$include?"]("u"))?source.$encode($$$($$("Encoding"),"UTF_8")):$truthy(options.$children()["$include?"]("e"))?source.$encode($$$($$("Encoding"),"EUC_JP")):$truthy(options.$children()["$include?"]("s"))?source.$encode($$$($$("Encoding"),"WINDOWS_31J")):$truthy(options.$children()["$include?"]("n"))?source.$encode($$$($$("Encoding"),"BINARY")):source,$$("Regexp").$new(source,$truthy(options.$children()["$include?"]("x"))?$$$($$("Regexp"),"EXTENDED"):nil))}),2),$def(self,"$static_regexp_node",(function(node){var $a,parts=nil,options=nil;return $eqeq(node.$type(),"regexp")?(parts=($a=[node.$children()["$[]"]($range(0,-2,!1)),node.$children()["$[]"](-1)])[0],options=$a[1],this.$static_regexp(parts,options)):nil}),1),$def(self,"$collapse_string_parts?",(function(parts){var $ret_or_1;return $truthy($ret_or_1=parts["$one?"]())?["str","dstr"]["$include?"](parts.$first().$type()):$ret_or_1}),1),$def(self,"$value",(function(token){return token["$[]"](0)}),1),$def(self,"$string_value",(function(token){return $truthy(token["$[]"](0)["$valid_encoding?"]())||this.$diagnostic("error","invalid_encoding",nil,token["$[]"](1)),token["$[]"](0)}),1),$def(self,"$loc",(function(token){return $truthy(token)&&$truthy(token["$[]"](0))?token["$[]"](1):nil}),1),$def(self,"$diagnostic",(function(type,reason,arguments$,location,highlights){return null==highlights&&(highlights=[]),this.parser.$diagnostics().$process($$("Diagnostic").$new(type,reason,arguments$,location,highlights)),$eqeq(type,"error")?this.parser.$send("yyerror"):nil}),-5),$def(self,"$validate_definee",(function(definee){var $ret_or_1;return!($eqeqeq("int",$ret_or_1=definee.$type())||$eqeqeq("str",$ret_or_1)||$eqeqeq("dstr",$ret_or_1)||$eqeqeq("sym",$ret_or_1)||$eqeqeq("dsym",$ret_or_1)||$eqeqeq("regexp",$ret_or_1)||$eqeqeq("array",$ret_or_1)||$eqeqeq("hash",$ret_or_1))||(this.$diagnostic("error","singleton_literal",nil,definee.$loc().$expression()),!1)}),1),$def(self,"$rewrite_hash_args_to_kwargs",(function(args){var $writer=nil;return $truthy(args["$any?"]())&&$truthy(this["$kwargs?"](args.$last()))?($writer=[$rb_minus(args.$length(),1),args["$[]"]($rb_minus(args.$length(),1)).$updated("kwargs")],$send(args,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy($rb_gt(args.$length(),1))&&$eqeq(args.$last().$type(),"block_pass")&&$truthy(this["$kwargs?"](args["$[]"]($rb_minus(args.$length(),2))))?($writer=[$rb_minus(args.$length(),2),args["$[]"]($rb_minus(args.$length(),2)).$updated("kwargs")],$send(args,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),1),$def(self,"$kwargs?",(function(node){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=node.$type()["$=="]("hash"))?node.$loc().$begin()["$nil?"]():$ret_or_2)?node.$loc().$end()["$nil?"]():$ret_or_1}),1)}(Opal.$r($nesting)("Builders"),0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/context"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$truthy=Opal.truthy;return Opal.add_stubs("reset,attr_accessor,in_block,in_lambda"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Context"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"FLAGS",["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda"]),$def(self,"$initialize",(function(){return this.$reset()}),0),$def(self,"$reset",(function(){return this.in_defined=!1,this.in_kwarg=!1,this.in_argdef=!1,this.in_def=!1,this.in_class=!1,this.in_block=!1,this.in_lambda=!1}),0),$send(self,"attr_accessor",$to_a($$("FLAGS"))),$def(self,"$in_dynamic_block?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$in_block())?$ret_or_1:this.$in_lambda()}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/max_numparam_stack"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus;return Opal.add_stubs("attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]=,-"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"MaxNumparamStack"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.stack=nil,self.$attr_reader("stack"),$const_set($nesting[0],"ORDINARY_PARAMS",-1),$def(self,"$initialize",(function(){return this.stack=[]}),0),$def(self,"$empty?",(function(){return this.stack.$size()["$=="](0)}),0),$def(self,"$has_ordinary_params!",(function(){return this.$set($$("ORDINARY_PARAMS"))}),0),$def(self,"$has_ordinary_params?",(function(){return this.$top()["$=="]($$("ORDINARY_PARAMS"))}),0),$def(self,"$has_numparams?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$top())?$rb_gt(this.$top(),0):$ret_or_1}),0),$def(self,"$register",(function(numparam){return this.$set([this.$top(),numparam].$max())}),1),$def(self,"$top",(function(){return this.stack.$last()["$[]"]("value")}),0),$def(self,"$push",(function($kwargs){var static$;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call($kwargs.$$smap,"static"))throw Opal.ArgumentError.$new("missing keyword: static");return static$=$kwargs.$$smap.static,this.stack.$push($hash2(["value","static"],{value:0,static:static$}))}),1),$def(self,"$pop",(function(){return this.stack.$pop()["$[]"]("value")}),0),self.$private(),$def(self,"$set",(function(value){var $writer;return $writer=["value",value],$send(this.stack.$last(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/current_arg_stack"]=function(Opal){var $base,$parent_nesting,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$rb_minus=Opal.rb_minus,$send=Opal.send,$to_a=Opal.to_a;return Opal.add_stubs("attr_reader,freeze,==,size,<<,-,length,[]=,pop,clear,last"),$base=$nesting[0],$parent_nesting=$nesting,function($base,$super){var self=$klass($base,null,"CurrentArgStack");return self.$$prototype.stack=nil,self.$attr_reader("stack"),$def(self,"$initialize",(function(){return this.stack=[],this.$freeze()}),0),$def(self,"$empty?",(function(){return this.stack.$size()["$=="](0)}),0),$def(self,"$push",(function(value){return this.stack["$<<"](value)}),1),$def(self,"$set",(function(value){var $writer;return $writer=[$rb_minus(this.stack.$length(),1),value],$send(this.stack,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$pop",(function(){return this.stack.$pop()}),0),$def(self,"$reset",(function(){return this.stack.$clear()}),0),$def(self,"$top",(function(){return this.stack.$last()}),0)}([$module($base,"Parser")].concat($parent_nesting)[0])},Opal.modules["parser/variables_stack"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("push,empty?,<<,new,pop,clear,last,to_sym,include?"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"VariablesStack"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.stack=nil,$def(self,"$initialize",(function(){return this.stack=[],this.$push()}),0),$def(self,"$empty?",(function(){return this.stack["$empty?"]()}),0),$def(self,"$push",(function(){return this.stack["$<<"]($$("Set").$new())}),0),$def(self,"$pop",(function(){return this.stack.$pop()}),0),$def(self,"$reset",(function(){return this.stack.$clear()}),0),$def(self,"$declare",(function(name){return this.stack.$last()["$<<"](name.$to_sym())}),1),$def(self,"$declared?",(function(name){return this.stack.$last()["$include?"](name.$to_sym())}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["parser/base"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$defs=Opal.defs,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$gvars=Opal.gvars,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$def=Opal.def,$not=Opal.not,$eqeqeq=Opal.eqeqeq,$to_ary=Opal.to_ary,$hash2=Opal.hash2;return Opal.add_stubs("default_parser,setup_source_buffer,default_encoding,parse,parse_with_comments,read,new,all_errors_are_fatal=,diagnostics,-,ignore_warnings=,lambda,puts,render,consumer=,force_encoding,dup,==,name,raw_source=,source=,private_class_method,attr_reader,version,diagnostics=,static_env=,context=,parser=,[],class,reset,source_buffer=,do_parse,comments=,comments,tokens=,!,raise,tokens,private,advance,===,diagnostic,map,process,yyerror,token_to_str"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Base"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.diagnostics=$proto.lexer=$proto.static_env=$proto.context=$proto.builder=$proto.current_arg_stack=$proto.pattern_variables=$proto.pattern_hash_keys=nil,$defs(self,"$parse",(function(string,file,line){var source_buffer,parser=nil;return null==file&&(file="(string)"),null==line&&(line=1),parser=this.$default_parser(),source_buffer=this.$setup_source_buffer(file,line,string,parser.$default_encoding()),parser.$parse(source_buffer)}),-2),$defs(self,"$parse_with_comments",(function(string,file,line){var source_buffer,parser=nil;return null==file&&(file="(string)"),null==line&&(line=1),parser=this.$default_parser(),source_buffer=this.$setup_source_buffer(file,line,string,parser.$default_encoding()),parser.$parse_with_comments(source_buffer)}),-2),$defs(self,"$parse_file",(function(filename){return this.$parse($$("File").$read(filename),filename)}),1),$defs(self,"$parse_file_with_comments",(function(filename){return this.$parse_with_comments($$("File").$read(filename),filename)}),1),$defs(self,"$default_parser",(function(){var parser=nil,$writer=nil;return parser=this.$new(),$writer=[!0],$send(parser.$diagnostics(),"all_errors_are_fatal=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send(parser.$diagnostics(),"ignore_warnings=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$send(this,"lambda",[],(function(diagnostic){return null==$gvars.stderr&&($gvars.stderr=nil),null==diagnostic&&(diagnostic=nil),$gvars.stderr.$puts(diagnostic.$render())}),1)],$send(parser.$diagnostics(),"consumer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],parser}),0),$defs(self,"$setup_source_buffer",(function(file,line,string,encoding){var source_buffer,$writer=nil;return string=string.$dup().$force_encoding(encoding),source_buffer=$$$($$("Source"),"Buffer").$new(file,line),$eqeq(this.$name(),"Parser::Ruby18")?($send(source_buffer,"raw_source=",$to_a($writer=[string])),$writer[$rb_minus($writer.length,1)]):($send(source_buffer,"source=",$to_a($writer=[string])),$writer[$rb_minus($writer.length,1)]),source_buffer}),4),self.$private_class_method("setup_source_buffer"),self.$attr_reader("lexer"),self.$attr_reader("diagnostics"),self.$attr_reader("builder"),self.$attr_reader("static_env"),self.$attr_reader("source_buffer"),self.$attr_reader("context"),self.$attr_reader("max_numparam_stack"),self.$attr_reader("current_arg_stack"),self.$attr_reader("pattern_variables"),self.$attr_reader("pattern_hash_keys"),$def(self,"$initialize",(function(builder){var $writer=nil;return null==builder&&(builder=$$$($$$($$("Parser"),"Builders"),"Default").$new()),this.diagnostics=$$$($$("Diagnostic"),"Engine").$new(),this.static_env=$$("StaticEnvironment").$new(),this.context=$$("Context").$new(),this.max_numparam_stack=$$("MaxNumparamStack").$new(),this.current_arg_stack=$$("CurrentArgStack").$new(),this.pattern_variables=$$("VariablesStack").$new(),this.pattern_hash_keys=$$("VariablesStack").$new(),this.lexer=$$("Lexer").$new(this.$version()),$writer=[this.diagnostics],$send(this.lexer,"diagnostics=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[this.static_env],$send(this.lexer,"static_env=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[this.context],$send(this.lexer,"context=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.builder=builder,$writer=[this],$send(this.builder,"parser=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.last_token=nil,$truthy($$$(this.$class(),"Racc_debug_parser"))&&$truthy($$("ENV")["$[]"]("RACC_DEBUG"))&&(this.yydebug=!0),this.$reset()}),-1),$def(self,"$reset",(function(){return this.source_buffer=nil,this.lexer.$reset(),this.static_env.$reset(),this.context.$reset(),this.current_arg_stack.$reset(),this.pattern_variables.$reset(),this.pattern_hash_keys.$reset(),this}),0),$def(self,"$parse",(function(source_buffer){var self=this,$writer=nil,$ret_or_1=nil;return function(){try{return $writer=[source_buffer],$send(self.lexer,"source_buffer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],self.source_buffer=source_buffer,$truthy($ret_or_1=self.$do_parse())?$ret_or_1:nil}finally{self.source_buffer=nil,$writer=[nil],$send(self.lexer,"source_buffer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()}),1),$def(self,"$parse_with_comments",(function(source_buffer){var self=this,$writer=nil;return function(){try{return $writer=[[]],$send(self.lexer,"comments=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],[self.$parse(source_buffer),self.lexer.$comments()]}finally{$writer=[nil],$send(self.lexer,"comments=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()}),1),$def(self,"$tokenize",(function(source_buffer,recover){var self=this,$writer=nil,ast=nil;return null==recover&&(recover=!1),function(){try{$writer=[[]],$send(self.lexer,"tokens=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[[]],$send(self.lexer,"comments=",$to_a($writer)),$writer[$rb_minus($writer.length,1)];try{ast=self.$parse(source_buffer)}catch($err){if(!Opal.rescue($err,[$$$($$("Parser"),"SyntaxError")]))throw $err;try{$not(recover)&&self.$raise()}finally{Opal.pop_exception()}}return[ast,self.lexer.$comments(),self.lexer.$tokens()]}finally{$writer=[nil],$send(self.lexer,"tokens=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[nil],$send(self.lexer,"comments=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()}),-2),self.$private(),$def(self,"$next_token",(function(){var token;return token=this.lexer.$advance(),this.last_token=token,token}),0),$def(self,"$check_kwarg_name",(function(name_t){var $ret_or_1;return $eqeqeq(/^[a-z_]/,$ret_or_1=name_t["$[]"](0))?nil:$eqeqeq(/^[A-Z]/,$ret_or_1)?this.$diagnostic("error","argument_const",nil,name_t):nil}),1),$def(self,"$diagnostic",(function(level,reason,arguments$,location_t,highlights_ts){var $a,location,highlights;return null==highlights_ts&&(highlights_ts=[]),$a=$to_ary(location_t),null==$a[0]?nil:$a[0],location=null==$a[1]?nil:$a[1],highlights=$send(highlights_ts,"map",[],(function(token){var $c;return null==token&&(token=nil),$c=$to_ary(token),null==$c[0]?nil:$c[0],null==$c[1]?nil:$c[1]}),1),this.diagnostics.$process($$("Diagnostic").$new(level,reason,arguments$,location,highlights)),$eqeq(level,"error")?this.$yyerror():nil}),-5),$def(self,"$on_error",(function(error_token_id,error_value,value_stack){var $a,token_name,location;return token_name=this.$token_to_str(error_token_id),null==($a=$to_ary(error_value))[0]?nil:$a[0],location=null==$a[1]?nil:$a[1],this.diagnostics.$process($$("Diagnostic").$new("error","unexpected_token",$hash2(["token"],{token:token_name}),location))}),3)}($nesting[0],$$$($$("Racc"),"Parser"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/rewriter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$const_set=Opal.const_set,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation=,-"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Rewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.source_rewriter=nil,$def(self,"$rewrite",(function(source_buffer,ast){return this.source_rewriter=$$$($$("Source"),"Rewriter").$new(source_buffer),this.$process(ast),this.source_rewriter.$process()}),2),$def(self,"$assignment?",(function(node){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](node.$type())}),1),$def(self,"$remove",(function(range){return this.source_rewriter.$remove(range)}),1),$def(self,"$wrap",(function(range,before,after){return this.source_rewriter.$wrap(range,before,after)}),3),$def(self,"$insert_before",(function(range,content){return this.source_rewriter.$insert_before(range,content)}),2),$def(self,"$insert_after",(function(range,content){return this.source_rewriter.$insert_after(range,content)}),2),$def(self,"$replace",(function(range,content){return this.source_rewriter.$replace(range,content)}),2),$const_set($nesting[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),self.$extend($$("Deprecation")),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this,$writer=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),self.$class().$warn_of_deprecation(),$writer=[!0],$send($$$($$("Source"),"Rewriter"),"warned_of_deprecation=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield)}),-1)}($nesting[0],$$$($$$($$("Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)},Opal.modules["parser/tree_rewriter"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$def=(Opal.hash,Opal.def);return Opal.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"TreeRewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.source_rewriter=nil,$def(self,"$rewrite",(function(source_buffer,ast,$kwargs){var policy;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return policy=Opal.kwrestargs($kwargs,{}),this.source_rewriter=$$$($$$($$("Parser"),"Source"),"TreeRewriter").$new(source_buffer,Opal.to_hash(policy)),this.$process(ast),this.source_rewriter.$process()}),-3),$def(self,"$assignment?",(function(node){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](node.$type())}),1),$def(self,"$remove",(function(range){return this.source_rewriter.$remove(range)}),1),$def(self,"$wrap",(function(range,before,after){return this.source_rewriter.$wrap(range,before,after)}),3),$def(self,"$insert_before",(function(range,content){return this.source_rewriter.$insert_before(range,content)}),2),$def(self,"$insert_after",(function(range,content){return this.source_rewriter.$insert_after(range,content)}),2),$def(self,"$replace",(function(range,content){return this.source_rewriter.$replace(range,content)}),2)}($nesting[0],$$$($$$($$("Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)},Opal.modules.parser=function(Opal){var self=Opal.top,$nesting=[],$$=Opal.$r($nesting),$$$=(Opal.nil,Opal.$$$),$truthy=Opal.truthy,$module=Opal.module;return Opal.add_stubs("=~,require,raise"),$truthy($$("RUBY_VERSION")["$=~"](/^1\.[89]\./))&&(self.$require("parser/version"),self.$raise($$("LoadError"),"parser v"+$$$($$("Parser"),"VERSION")+" cannot run on Ruby "+$$("RUBY_VERSION")+".\nPlease upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),self.$require("set"),self.$require("racc/parser"),self.$require("ast"),function($base,$parent_nesting){var self=$module($base,"Parser"),$nesting=[self].concat($parent_nesting);return self.$require("parser/version"),self.$require("parser/messages"),self.$require("parser/deprecation"),function($base){var self=$module($base,"AST");self.$require("parser/ast/node"),self.$require("parser/ast/processor"),self.$require("parser/meta")}($nesting[0]),function($base){var self=$module($base,"Source");self.$require("parser/source/buffer"),self.$require("parser/source/range"),self.$require("parser/source/comment"),self.$require("parser/source/comment/associator"),self.$require("parser/source/rewriter"),self.$require("parser/source/rewriter/action"),self.$require("parser/source/tree_rewriter"),self.$require("parser/source/tree_rewriter/action"),self.$require("parser/source/map"),self.$require("parser/source/map/operator"),self.$require("parser/source/map/collection"),self.$require("parser/source/map/constant"),self.$require("parser/source/map/variable"),self.$require("parser/source/map/keyword"),self.$require("parser/source/map/definition"),self.$require("parser/source/map/method_definition"),self.$require("parser/source/map/send"),self.$require("parser/source/map/index"),self.$require("parser/source/map/condition"),self.$require("parser/source/map/ternary"),self.$require("parser/source/map/for"),self.$require("parser/source/map/rescue_body"),self.$require("parser/source/map/heredoc"),self.$require("parser/source/map/objc_kwarg")}($nesting[0]),self.$require("parser/syntax_error"),self.$require("parser/clobbering_error"),self.$require("parser/diagnostic"),self.$require("parser/diagnostic/engine"),self.$require("parser/static_environment"),self.$require("parser/lexer"),self.$require("parser/lexer/literal"),self.$require("parser/lexer/stack_state"),self.$require("parser/lexer/dedenter"),function($base){$module($base,"Builders").$require("parser/builders/default")}($nesting[0]),self.$require("parser/context"),self.$require("parser/max_numparam_stack"),self.$require("parser/current_arg_stack"),self.$require("parser/variables_stack"),self.$require("parser/base"),self.$require("parser/rewriter"),self.$require("parser/tree_rewriter")}($nesting[0],$nesting)},Opal.modules["parser/ruby31"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy,$not=Opal.not,$hash2=Opal.hash2,$send=Opal.send,$rb_gt=Opal.rb_gt,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$hash=Opal.hash,$const_set=Opal.const_set,$to_ary=Opal.to_ary,$eqeq=Opal.eqeq,$slice=Opal.slice;return Opal.add_stubs("require,end_with?,[],!,include?,diagnostic,extend_static,push,cmdarg,cond,unextend,pop,children,in_dynamic_block?,declared?,static_env,=~,expression,loc,has_ordinary_params?,max_numparam_stack,dup,stack,reverse_each,>,declare,register,to_i,new,each,split,empty?,[]=,-,+,compstmt,<<,preexe,nil?,begin_body,state=,alias,gvar,back_ref,undef_method,condition_mod,loop_mod,rescue_body,postexe,multi_assign,assign,array,op_assign,index,call_method,const_op_assignable,const_fetch,endless_method_name,def_endless_method,local_pop,in_def,in_def=,def_endless_singleton,logical_op,not_op,command_start=,in_kwarg,in_kwarg=,match_pattern,match_pattern_p,local_push,in_argdef=,in_block=,in_block,block,keyword_cmd,multi_lhs,begin,splat,concat,assignable,index_asgn,==,attr_asgn,const_global,const,symbol_internal,range_inclusive,range_exclusive,binary_op,unary_op,match_op,in_defined=,ternary,associate,declared_forward_args?,forwarded_args,block_pass,declared_anonymous_blockarg?,begin_keyword,condition,loop,case,case_match,for,in_class=,def_class,in_class,def_sclass,def_module,def_method,def_singleton,context,in_lambda,arg,restarg,size,procarg0,args,has_ordinary_params!,set,shadowarg,extend_dynamic,in_lambda=,call_lambda,has_numparams?,numargs,top,any?,when,in_pattern,if_guard,unless_guard,match_with_trailing_comma,array_pattern,find_pattern,hash_pattern,match_as,match_alt,const_pattern,match_rest,match_pair,match_label,match_nil_pattern,accessible,match_var,ident,pin,string_compose,dedent_string,dedent_level,string,character,xstring_compose,regexp_options,regexp_compose,words_compose,word,symbols_compose,string_internal,ivar,cvar,symbol,symbol_compose,respond_to?,negate,unary_num,integer,float,rational,complex,nil,self,true,false,__FILE__,__LINE__,__ENCODING__,nth_ref,declare_forward_args,forward_arg,check_kwarg_name,kwoptarg,kwarg,kwnilarg,kwrestarg,optarg,blockarg,declare_anonymous_blockarg,pair,pair_keyword,pair_label,pair_quoted,kwsplat,yyerrok"),self.$require("racc/parser.rb"),self.$require("parser"),function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var racc_action_table,racc_action_check,racc_action_pointer,racc_action_default,racc_goto_table,racc_goto_check,racc_goto_pointer,racc_goto_default,racc_reduce_table,racc_token_table,self=$klass($base,$super,"Ruby31"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),clist=nil,arr=nil,idx=nil,$proto=self.$$prototype;return $proto.static_env=$proto.lexer=$proto.max_numparam_stack=$proto.context=$proto.current_arg_stack=$proto.builder=$proto.pattern_variables=$proto.last_token=$proto.pattern_hash_keys=nil,$def(self,"$version",(function(){return 31}),0),$def(self,"$default_encoding",(function(){return $$$($$("Encoding"),"UTF_8")}),0),$def(self,"$endless_method_name",(function(name_t){return $not(["===","==","!=","<=",">="]["$include?"](name_t["$[]"](0)))&&$truthy(name_t["$[]"](0)["$end_with?"]("="))?this.$diagnostic("error","endless_setter",nil,name_t):nil}),1),$def(self,"$local_push",(function(){return this.static_env.$extend_static(),this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),this.max_numparam_stack.$push($hash2(["static"],{static:!0}))}),0),$def(self,"$local_pop",(function(){return this.static_env.$unextend(),this.lexer.$cmdarg().$pop(),this.lexer.$cond().$pop(),this.max_numparam_stack.$pop()}),0),$def(self,"$try_declare_numparam",(function(node){var self=this,name=nil,location=nil,raw_max_numparam_stack=nil;return name=node.$children()["$[]"](0),!!($truthy(name["$=~"](/^_[1-9]$/))&&$not(self.$static_env()["$declared?"](name))&&$truthy(self.context["$in_dynamic_block?"]()))&&(location=node.$loc().$expression(),$truthy(self.$max_numparam_stack()["$has_ordinary_params?"]())&&self.$diagnostic("error","ordinary_param_defined",nil,[nil,location]),(raw_max_numparam_stack=self.$max_numparam_stack().$stack().$dup()).$pop(),function(){var $brk=Opal.new_brk();try{$send(raw_max_numparam_stack,"reverse_each",[],(function $$1(outer_scope){var self=null==$$1.$$s?this:$$1.$$s,outer_scope_has_numparams=nil;if(null==outer_scope&&(outer_scope=nil),!$truthy(outer_scope["$[]"]("static")))return outer_scope_has_numparams=$rb_gt(outer_scope["$[]"]("value"),0),$truthy(outer_scope_has_numparams)?self.$diagnostic("error","numparam_used_in_outer_scope",nil,[nil,location]):nil;Opal.brk(nil,$brk)}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),self.$static_env().$declare(name),self.$max_numparam_stack().$register(name["$[]"](1).$to_i()),!0)}),1),clist=["-320,600,620,-119,1214,-121,-118,-320,-320,-320,221,222,1124,-320,-320","-624,-320,239,620,-123,620,925,-624,-110,-320,-732,237,428,-124,311","122,-122,430,429,717,311,-320,-320,620,-320,-320,-320,-320,-320,-116","-117,-124,620,620,-116,1001,828,718,627,892,925,627,126,240,-732,-123","833,125,-117,240,240,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320","-320,-320,-320,-320,-624,-123,-320,-320,-320,-124,687,-320,-119,-110","-320,-121,-120,-320,1125,240,-720,135,-320,306,-320,-511,-320,-320,240","-320,-320,-320,-320,-320,-320,-320,-110,-320,-112,-109,310,-320,-320","-320,126,-120,310,-320,-320,125,-320,-320,-114,-110,-320,-320,-110,-113","-320,-320,126,-115,126,990,-113,125,-320,125,-110,-122,-320,-320,-122","-320,-320,-320,-320,-320,-118,126,126,-719,-107,1000,125,125,-116,-117","-124,126,126,-116,-117,-124,125,125,-108,221,222,218,-320,-320,-320","-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,221,222,-320","-320,-320,311,687,-320,-719,-123,-320,-111,661,-320,-123,648,-119,925","-320,-121,-320,-119,-320,-320,-121,-320,-320,-320,-320,-320,233,-320","-723,-320,-628,-720,-629,221,222,-723,-723,-723,104,105,-723,-723,-723","-320,-723,-120,-320,-320,-102,-320,-120,-320,-723,-723,-723,-723,-723","663,-320,924,-88,-122,219,-112,-723,-723,522,-723,-723,-723,-723,-723","-122,240,660,650,649,-122,-118,-111,-109,220,-744,-118,311,648,233,223","310,-116,240,-117,1063,300,-723,-723,-723,-723,-723,-723,-723,-723,-723","-723,-723,-723,-723,-723,233,682,-723,-723,-723,648,921,-723,106,107","-723,104,105,-723,-723,662,-723,-124,-723,126,-723,-112,-723,-723,125","-723,-723,-723,-723,-723,361,-723,-723,-723,-744,683,-719,-111,-109","648,306,650,649,646,648,362,648,-723,-110,648,-723,-723,-723,-723,240","-723,-744,-723,800,-320,-119,-112,-723,310,-112,-120,-320,-320,-320","650,649,-320,-320,-320,892,-320,-112,-111,-109,859,-111,-109,-112,-320","833,-320,-320,-320,875,106,107,919,-111,-109,-121,-320,-320,431,-320","-320,-320,-320,-320,650,649,646,949,471,650,649,650,649,655,650,649","653,920,1035,861,633,1063,233,-732,634,948,-320,-320,-320,-320,-320","-320,-320,-320,-320,-320,-320,-320,-320,-320,240,-629,-320,-320,-320","648,922,-320,-118,-635,-320,-119,-625,-320,-320,648,-320,-617,-320,-625","-320,510,-320,-320,-617,-320,-320,-320,-320,-320,683,-320,682,-320,507","506,-121,-118,-744,491,648,488,487,486,496,489,521,-320,-108,-623,-320","-320,-320,-320,499,-320,-623,-320,126,-723,-117,612,-320,125,614,-122","-723,-723,-723,650,649,651,-723,-723,633,-723,494,-625,960,650,649,664","-617,-723,-723,504,503,507,506,-121,633,-119,500,523,960,-723,-723,524","-723,-723,-723,-723,-723,239,650,649,659,491,-321,488,487,486,496,489","-623,-321,600,491,240,488,487,486,499,489,-321,-723,-723,-723,-723,-723","-723,-723,-723,-723,-723,-723,-723,-723,-723,558,-628,-723,-723,-723","494,688,-723,570,126,-723,648,572,-723,125,710,507,506,-723,574,-723","500,-723,-723,-114,-723,-723,-723,-723,-723,-614,-723,-723,-723,-321","126,-123,-614,-614,-614,125,135,-614,-614,-614,-614,-614,-723,-107,-87","-723,-723,-614,-723,-614,-723,-614,-614,-614,931,-116,485,-723,240,927","-120,-614,-614,928,-614,-614,-614,-614,-614,585,650,649,646,586,-311","227,-620,-621,227,950,951,-311,304,-620,-621,304,612,593,237,611,-311","-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614","-614,227,-614,-614,-614,227,-614,-614,592,315,-614,240,1188,-614,-614","233,-614,590,-614,126,-614,638,-614,-614,125,-614,-614,-614,-614,-614","-115,-614,-617,-614,-311,228,-620,-621,228,-617,-617,-617,-124,233,-617","-617,-617,-614,-617,306,-614,-614,-614,-614,597,-614,-617,-614,-617","-617,-617,612,-614,603,614,-614,228,264,-617,-617,228,-617,-617,-617","-617,-617,606,227,240,227,615,-356,-619,-622,675,616,636,574,-356,-619","-622,612,627,673,614,638,420,-356,-617,-617,-617,-617,-617,-617,-617","-617,-617,-617,-617,-617,-617,-617,631,754,-617,-617,-617,227,-617,-617","1149,1150,-617,499,630,-617,-617,632,-617,875,-617,640,-617,628,-617","-617,665,-617,-617,-617,-617,-617,228,-617,228,-617,-356,-619,-622,668","227,669,954,240,958,957,1197,1188,959,-617,-293,500,-617,-617,-617,-617","638,-617,671,-617,672,-723,676,1056,-617,240,-109,-617,-723,-723,-723","496,228,680,-723,-723,-320,-723,-118,956,264,499,681,-320,306,-723,-723","694,-720,985,892,695,-320,114,113,115,116,-723,-723,240,-723,-723,-723","-723,-723,228,221,222,697,118,117,119,261,700,507,506,263,262,701,500","703,264,104,105,221,222,358,-723,-723,-723,-723,-723,-723,-723,-723","-723,-723,-723,-723,-723,-723,-320,705,-723,-723,-723,-385,688,-723","227,719,-723,720,261,-723,227,1164,263,262,-723,724,-723,226,-723,-723","1162,-723,-723,-723,-723,-723,224,-723,-723,-723,726,102,90,93,94,732","95,97,96,98,754,985,892,-723,91,101,-723,-723,90,-111,499,-723,85,733","92,106,107,264,-723,264,91,-120,333,81,82,83,11,65,264,228,92,71,72","264,240,228,75,-723,73,74,76,35,36,79,80,788,240,240,500,240,84,33,32","114,113,115,116,-102,803,23,1056,240,606,281,282,10,53,335,12,118,117","119,108,64,110,109,111,814,112,120,121,-320,104,105,49,50,48,-321,-320","-723,819,-626,240,-720,-321,821,-723,-320,-626,280,279,-719,824,-321","829,-723,45,-626,830,38,834,858,66,67,227,862,68,863,40,-294,876,602","52,491,-723,488,487,486,558,489,520,24,558,888,892,910,102,90,93,94","913,95,97,96,98,914,-320,240,917,91,101,240,-321,926,-723,943,-626,85","944,92,106,107,945,962,46,47,333,81,82,83,11,65,964,300,970,71,72,972","974,228,75,-716,73,74,76,35,36,79,80,572,574,496,814,240,84,33,32,114","113,115,116,499,1159,23,488,487,486,306,489,10,53,335,12,118,117,119","108,64,110,109,111,306,112,120,121,227,104,105,49,50,48,-627,519,-614","507,506,814,264,-627,500,-614,520,892,987,988,-716,240,-627,240,-614","45,998,240,38,-295,240,66,67,1009,1013,68,1159,40,488,487,486,52,489","-716,-293,491,1017,488,487,486,24,489,700,718,1020,102,90,93,94,1022","95,97,96,98,1024,228,1026,1026,91,101,240,-627,774,-614,240,240,85,1054","92,106,107,1057,710,46,47,333,81,82,83,11,65,714,853,854,71,72,855,120","121,75,-717,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32,114,113","115,116,925,491,23,488,487,486,972,489,10,53,335,12,118,117,119,108","64,110,109,111,1069,112,120,121,240,104,105,49,50,48,814,491,-617,488","487,486,1086,489,710,-617,1088,1093,1094,1099,-717,1100,1101,714,-617","45,-296,1114,38,1115,1116,66,67,240,240,68,240,40,240,240,240,52,925","-717,710,491,1123,488,487,486,24,489,240,714,1129,102,90,93,94,1130","95,97,96,98,1132,700,1135,1138,91,101,1140,1142,240,-617,-385,1154,85","1165,92,106,107,1166,710,46,47,333,81,82,83,11,65,1026,1026,1026,71","72,1173,1186,1189,75,1194,73,74,76,35,36,79,80,256,1195,694,1115,1205","84,33,32,114,113,115,116,1205,700,23,129,130,131,132,133,10,53,335,12","118,117,119,108,64,110,109,111,1208,112,120,121,1210,104,105,49,50,48","264,268,269,270,271,281,282,276,277,272,273,1212,257,258,1214,1214,274","275,240,45,1026,255,38,1205,-720,66,67,-719,1231,68,1214,40,261,1214","267,52,263,262,1214,259,260,280,279,265,24,266,3,,,102,90,93,94,,95","97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32","114,113,115,116,,,23,,,,,677,10,53,335,12,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277","272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263","262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,278,,-265,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72",",,,75,,73,74,76,35,36,79,80,129,130,131,132,133,84,33,32,114,113,115","116,,,23,,,,,889,10,53,335,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257","258,,,274,275,,45,,,337,,,66,67,,,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,","85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35","36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,677,10,53,335,12,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269","270,271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,337,,,66,67",",,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,918,10,53,335,12,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273",",257,258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259","260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278",",,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74","76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12","118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268","269,270,271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66","67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81","82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257","258,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,","85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35","36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270","271,281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68",",40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,7,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258,,","274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279","265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,240,278,,,,,85,,92","106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79","80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271","281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258",",,274,275,,45,,,337,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280","279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,","92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271","281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,257,258",",,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280","279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,278,,,,,85,","92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271","281,282,276,277,272,273,,257,258,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,278,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745,-745",",,274,275,,45,,,38,,,66,67,,264,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,261,,91,101,263,262",",259,260,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,","73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,264,491,23,488,487","486,,489,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,264,,261,,,,263,262,710,259,260,,,,,,274,275,,45,,,38,",",66,67,,,68,,40,261,,267,52,263,262,,259,260,,,265,24,266,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745","-745,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85",",92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,268,269,270,271","281,282,276,277,272,273,,-745,-745,,,274,275,,45,,,38,,,66,67,,,68,","40,261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,","95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,","104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,,,265,24,266,,,,102,90,93,94,,95,97,96","98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71","72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,",",,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,264,268,269,270,271,281,282,276,,272,273,,,,,,274,275,,45,",",38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47","7,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,264,268,269,270,271,281,282,,,272,273",",,,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260","280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85",",92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,-745,-745,-745","-745,281,282,,,-745,-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40,261",",267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95,97,96","98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71","72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,",",,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274,275,,45",",,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24,266",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47","333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745","-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259","260,280,279,265,24,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,",",85,,92,106,107,,,46,47,333,81,82,83,11,65,,,,71,72,,,,75,,73,74,76","35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,264,-745,-745","-745,-745,281,282,,,-745,-745,,,,,,274,275,,45,,,38,,,66,67,,,68,,40","261,,267,52,263,262,,259,260,280,279,265,24,266,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,333,81,82,83,11,65",",,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,",",23,,,,,,10,53,335,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274,275",",45,,,38,,,66,67,,,68,,40,261,,267,52,263,262,,259,260,280,279,265,24","266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106","107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113","115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,49,50,48,264,-745,-745,-745,-745,281,282,,,-745,-745,,,,,,274","275,,245,,,253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,280,279,265","250,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,264,268,269,270,271,281,282,276,277,272,273,,-745","-745,,,274,275,,245,,,253,,,66,67,,,68,,,261,,267,52,263,262,,259,260","280,279,265,250,266,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,245,",",253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,,,,250,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47",",75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,",",,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,264,,,,,,,,,,,,,,,,274,275,,245,,,253,,,66,67,,,68,,,261,,,52,263","262,,259,260,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,264,,,,,,,,,,,,,,,,274,275,,245,",",253,,,66,67,,,68,,,261,,267,52,263,262,,259,260,,,,250,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,",",,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79","80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,","254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,436,,,,52,,,,,,",",,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79","80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35","36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,,,,85,,92,106,107,-441,,46,47,,,,-441,-441,-441",",,-441,-441,-441,,-441,,,,,,,,-441,-441,-441,-441,,,,,,,,,-441,-441",",-441,-441,-441,-441,-441,,,,,,,,,,,,,,,,,,,,,,,-441,-441,-441,-441","-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,,,-441,-441,-441,",",-441,,306,-441,,,-441,-441,,-441,,-441,,-441,,-441,-441,,-441,-441","-441,-441,-441,,-441,-441,-441,,,,,,,,,,,,,,-441,,,-441,-441,,-441,","-441,81,82,83,,65,,-441,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,","81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,",",84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,",",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,",",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,",",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-327,,46,47,,,,-327","-327,-327,,,-327,-327,-327,,-327,,,,,,,,-327,,-327,-327,,,,,,,,,-327","-327,,-327,-327,-327,-327,-327,,,,,,,,,,,,,,,,,,,,,,,-327,-327,-327","-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,,,-327,-327,-327",",,-327,,315,-327,,,-327,-327,,-327,,-327,,-327,,-327,-327,,-327,-327","-327,-327,-327,,-327,,-327,,,,,,,,,,,,,,-327,,,-327,-327,,-327,,-327","81,82,83,,65,,-327,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355","79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,","245,,,253,,,66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,",",52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36","79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,797,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,",",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,",",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,867,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82","83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,",",52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,","91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355","79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35","36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,",",,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,",",,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,",",,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,",",,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76","354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,",",,,,,245,,,253,,,66,67,,,68,,324,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,",",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47",",75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,",",,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49","50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,328,,,,,,250",",,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121",",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,797,,,","52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,240,,,81","82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,","84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,",",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47",",75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49","50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328",",,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106","107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,",",84,33,32,114,113,115,116,,,23,,,,,,10,53,335,12,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38",",,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,","91,101,,,,,,420,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,","73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53",",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,",",,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121",",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,322,","52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,",",66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76","354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,",",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,",",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,",",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46","47,,,,-275,-275,-275,,,-275,-275,-275,491,-275,488,487,486,496,489,",",-275,-275,-275,,,,499,,,,,,-275,-275,,-275,-275,-275,-275,-275,,491",",488,487,486,496,489,494,,,,,,,,499,504,503,507,506,,,,500,,491,,488","487,486,496,489,-275,,,,,494,,-275,499,,,,306,-275,504,503,507,506,",",,500,,,,,,,,,494,485,,,,-275,-275,,,,,507,506,,,,500,,,,-275,,,-275",",81,82,83,-275,65,,485,,71,72,-275,,,75,,73,74,76,354,355,79,80,,,,",",84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79","80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,",",,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121",",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52",",,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,",",,,,245,,,253,,,66,67,,,68,,324,,,,52,,,328,,,,,,250,,,,,102,325,93","94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11","65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,10,53,,12,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,",",,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113","115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52",",,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,",",,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,",",,,,245,,,253,,,66,67,,,68,,797,,322,,52,,,328,,,,,,250,,,,,102,325","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","560,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104,105,49","50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328",",,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,46,560,,75,,73,74,76,354,355,79,80,,,,,,84,349,357","114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84","349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109","111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66","67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,",",,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76","35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,",",,,,245,,,253,,,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325","93,94,,95,97,96,98,,,,,91,101,240,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,","254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,",",,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79","80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108","64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245",",,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98",",,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,","53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,",",,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,","254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,",",,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92","106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91","101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74","76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,10,53,,12,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75",",73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,","118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,",",,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93","94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47",",75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53",",,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,",",,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,",",,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48",",,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72","46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,",",,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,","102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47","81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114","113,115,116,,,23,,,,,,10,53,9,12,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40",",,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,420,85",",92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80",",,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110","109,111,327,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253",",,66,67,,,68,,324,,322,,52,,,328,,,,,,250,,,,,102,325,93,94,,95,97,96","98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76","35,36,79,80,,,,,,84,33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118","117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,",",,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94",",95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-725,,46,47,,,,-725,-725","-725,,,-725,-725,-725,,-725,,,,,,,,-725,-725,-725,-725,-725,,,,,,,,-725","-725,,-725,-725,-725,-725,-725,,,,,,,,,,,,,,,,,,,,,,,-725,-725,-725","-725,-725,-725,-725,-725,-725,-725,-725,-725,-725,-725,,,-725,-725,-725",",,-725,,,-725,,,-725,-725,,-725,,-725,,-725,,-725,-725,,-725,-725,-725","-725,-725,,-725,-725,-725,,,,,,,,,,,,,,-725,,,-725,-725,-725,-725,,-725","-724,-725,,,,,-725,-724,-724,-724,,,-724,-724,-724,,-724,,,,,,,,-724","-724,-724,-724,-724,,,,114,113,115,116,-724,-724,,-724,-724,-724,-724","-724,,,,,118,117,119,,,,,,,,,,,104,105,,,358,-724,-724,-724,-724,-724","-724,-724,-724,-724,-724,-724,-724,-724,-724,,,-724,-724,-724,,,-724",",,-724,,,-724,-724,,-724,,-724,,-724,,-724,-724,,-724,-724,-724,-724","-724,,-724,-724,-724,,102,90,93,94,,95,97,96,98,,,,-724,91,101,-724","-724,-724,-724,,-724,85,-724,92,106,107,-275,-724,81,82,83,11,65,-275","-275,-275,71,72,-275,-275,-275,75,-275,73,74,76,35,36,79,80,-275,-275","-275,-275,,84,33,32,114,113,115,116,-275,-275,23,-275,-275,-275,-275","-275,10,53,9,12,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275","-275,-275,,,-275,-275,-275,45,,-275,38,306,-275,66,67,-275,-275,68,-275","40,-275,,-275,52,-275,-275,,-275,-275,-275,-275,-275,24,-275,-275,-275",",102,90,93,94,,95,97,96,98,,,,-275,91,101,-275,-275,,-275,,-275,85,","92,106,107,,-275,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79","80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,",",,91,101,126,,,,,125,85,,92,106,107,-312,,46,47,,,,-312,-312,-312,,","-312,-312,-312,,-312,,,,,,,,-312,,-312,-312,-312,,,,,,,,-312,-312,,-312","-312,-312,-312,-312,,,,,,,,,,,,,,,,,,,,,,,-312,-312,-312,-312,-312,-312","-312,-312,-312,-312,-312,-312,-312,-312,,,-312,-312,-312,,,-312,,,-312",",,-312,-312,,-312,,-312,,-312,,-312,-312,,-312,-312,-312,-312,-312,","-312,,-312,,,,,,,,,,,,,,-312,,,-312,-312,-312,-312,,-312,,-312,,81,82","83,-312,65,,,,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,",",52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,23,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33","32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,","112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,",",68,,436,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,","253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,",",,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354","355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,,,118,117,119","108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,",",245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74","76,35,36,79,80,,,,,,84,33,32,114,113,115,116,,,23,,,,,,,53,,,118,117","119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,",",,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95","97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73","74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254,,,,,,,53,",",118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50,48,,,,,",",,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,,,102,90","93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46","47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,49,50","48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250,,,",",102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71","72,46,47,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105","49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,,,,,52,,,,,,,,,250",",,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107","71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,114,113,115,116",",,254,,,,,,,53,,,118,117,119,108,64,110,109,111,327,112,120,121,,104","105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68,,324,,322,,52",",,328,,,,,,250,,,,,102,325,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32","114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67,,,68",",436,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81","82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84","33,32,114,113,115,116,,,254,,,,,,,53,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,245,,,253,,,66,67",",,68,,,,,,52,,,,,,,,,250,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,",",81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,354,355,79,80,",",,,,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1107,,,253",",,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,",",,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1146,,,253,,","66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,",",,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,",",84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,253,,,66","67,,,68,,,491,,488,487,486,496,489,,,,,,,,,499,,102,90,93,94,,95,97","96,98,,,,,91,101,,,,588,,494,85,,92,106,107,81,82,83,,65,507,506,,71","72,500,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116",",,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105",",,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102","90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72",",,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115,116,,,254",",,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121,,104,105,,,358",",,,,,,,,,,,,,,,,,,,346,,,253,,,66,67,,,68,,,491,,488,487,486,496,489",",,,,,,,,499,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,360,,494,85,,92","106,107,81,82,83,,65,507,506,,71,72,500,,,75,,73,74,76,354,355,79,80",",,,,,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64","110,109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342",",,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101",",,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,",",,84,349,357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110","109,111,,112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66","67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81","82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,1146,,,253,,,66,67,,","68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,400,64,110,109,401",",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,407,,,402,,,253,,,66,67",",,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82","83,85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349","357,114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111",",112,120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68",",,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83","85,65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357","114,113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112","120,121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,,",",,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85","65,92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114","113,115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120","121,,104,105,,,358,,,,,,,,,,,,,,,,,,,,346,,,342,,,66,67,,,68,,341,,",",,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65","92,106,107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113","115,116,,,254,,,,,,,350,,,118,117,119,108,64,110,109,111,,112,120,121",",104,105,,,358,,,,,,,,,,,,,,,,,,,,395,,,38,,,66,67,,,68,,40,,,,,,,,",",,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106","107,71,72,,,,75,,73,74,76,354,355,79,80,,,,,,84,349,357,114,113,115","116,,,254,,,,,,,350,,,118,117,119,400,64,110,109,401,,112,120,121,,104","105,,,358,,,,,,,,,,,,,,,,,,,,402,,,253,,,66,67,,,68,,,,,,,,,,,,,,,,",",,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,185,196","186,209,182,202,192,191,212,213,207,190,189,184,210,214,215,194,183","197,201,203,195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,","180,187,178,179,175,176,177,138,140,137,,139,,,,,,,,169,170,,166,148","149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162",",147,168,165,164,173,160,161,155,153,145,167,146,,,174,102,,,,,,,,,",",,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189,184,210","214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208,193,181","200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,,,,169,170",",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,,,,,",",,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174,102",",,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207,190,189","184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205,198,208","193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139,,,,,",",,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159",",,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146",",,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213,207","190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206,205","198,208,193,181,200,199,,,,,,180,187,178,179,175,176,177,138,140,,,139",",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167","146,,,174,102,,,,,,,,,,,,,,101,185,196,186,209,182,202,192,191,212,213","207,190,189,184,210,214,215,194,183,197,201,203,195,188,,,,204,211,206","294,293,295,292,181,200,199,,,,,,180,187,178,179,289,290,291,287,140","110,109,288,,112,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152",",,,171,172,158,159,,,,,,299,,,,,,,,163,162,,147,168,165,164,173,160","161,155,153,145,167,146,,,174,114,113,115,116,,,,,,491,,488,487,486","496,489,118,117,119,774,,,,777,499,,,,,104,105,,,358,,,,,,,,,,,,,494",",,,,,,776,,,747,507,506,,745,,500,746,,,,,,,,,,,,,,,,775,,,,102,90,93","94,,95,97,96,98,,,,,91,101,114,113,115,116,485,,85,,92,106,107,,,762","763,,118,117,119,774,,,491,777,488,487,486,496,489,104,105,,,358,,,","499,,,,,,,,,,,,,,,,776,,,747,,,494,745,,,746,,,,,504,503,507,506,,,","500,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,",",85,,92,106,107,,,762,763,,118,117,119,774,,,491,777,488,487,486,496","489,104,105,,,358,,,,499,,,,,,,,,,,,,,,,776,,,747,,,494,745,,,746,,749",",,504,503,507,506,,,,500,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91","101,114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,,777","754,,,,,104,105,,,358,499,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,","749,,,,,,,500,,,,,,,775,,,,102,755,93,94,,95,97,96,98,,,,,91,101,114","113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,491,777,488","487,486,496,489,104,105,,,358,,,,499,,,,,,,,,,,,,,,,776,,,747,,,494","745,,,746,,,,,504,503,507,506,,,,500,,,,775,,,,102,90,93,94,,95,97,96","98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119","774,,,491,777,488,487,486,496,489,104,105,,,358,,,,499,,,,,,,,,,,,,",",,776,,,747,,,494,745,,,746,,749,,,,,507,506,,,,500,,,,775,,,,102,90","93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762","763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776",",,747,,,,745,,,746,,749,,,,,,,491,,488,487,486,496,489,775,,,,102,90","93,94,499,95,97,96,98,,,,,91,101,240,114,113,115,116,,85,,92,106,107","494,,762,763,,,118,117,119,774,,507,506,777,,,500,,,104,105,,,358,,",",,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,485,,,,,,,,,,,,,775,,,,102","90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,","762,763,,118,117,119,774,,,,777,754,,,,,104,105,,,358,499,,,,,,,,,,",",,,,,,,,776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775,,,,102,755,93","94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763",",118,117,119,774,,,,777,754,,,,,104,105,,,358,499,,,,,,,,,,,,,,,,,,","776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775,,,,102,755,93,94,,95","97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,762,763,185,196,186,209,182","202,192,191,212,213,207,190,189,184,210,214,215,194,183,197,201,203","195,188,,,,204,211,206,205,198,208,193,181,200,199,,,,,,180,187,178","179,175,176,177,138,140,,,139,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,,,,,,,,,163,162,,147,168,165,164","173,160,161,155,153,145,167,146,,,174,114,113,115,116,,,491,,488,487","486,496,489,,,,118,117,119,774,,499,,777,754,,,,,104,105,,,358,499,",",,,,,,,494,,,,,,,,,,776,507,506,747,,,500,745,,,746,,749,,,,,,,500,",",,,,,775,,,,102,755,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,","85,,92,106,107,,,762,763,,118,117,119,774,,,,777,754,,,,,104,105,,,358","499,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,749,,,,,,,500,,,,,,,775",",,,102,755,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106","107,,,762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,",",,,,,,,,776,,,747,,,,745,,,746,,,,,,,,,,,,,,,,775,,,,102,90,93,94,,95","97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,,762,763,,118","117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776,,,747,",",,745,,,746,,,,,,,,,,,,,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101","114,113,115,116,,,85,,92,106,107,,,762,763,,118,117,119,774,,,,777,",",,,,104,105,,,358,,,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,,,,,,",",,,,,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,",",85,,92,106,107,,,762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358",",,,,,,,,,,,,,,,,,,,776,,,747,,,,745,,,746,,,,,,,,,,,,,,,,775,,,,102","90,93,94,,95,97,96,98,,,,,91,101,114,113,115,116,,,85,,92,106,107,,","762,763,,118,117,119,774,,,,777,,,,,,104,105,,,358,,,,,,,,114,113,115","116,,,,,,,,,776,,,747,118,117,119,745,,,746,,1053,,,,,104,105,,,358",",,,,775,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107",",,762,763,491,,488,487,486,496,489,,,,,102,90,93,94,499,95,97,96,98",",,,,91,101,114,113,115,116,,,85,,92,106,107,494,,,,,118,117,119,,504","503,507,506,,,,500,,104,105,,,358,,,,,,,,,,,,491,,488,487,486,496,489",",,,,,,,,499,,,,,,491,485,488,487,486,496,489,,,,,,,,,499,494,102,90","93,94,,95,97,96,98,,507,506,,91,101,500,,,,,494,85,,92,106,107,,,,504","503,507,506,,,491,500,488,487,486,496,489,,491,,488,487,486,496,489","499,,,,,485,,,499,,491,,488,487,486,496,489,,,,,,494,644,,499,485,,",",494,504,503,507,506,,,,500,504,503,507,506,,,,500,494,,,,,,,,,504,503","507,506,,,491,500,488,487,486,496,489,,,,,,,,,499,485,,,,,,,,485,,,",",,,,,,,,,494,,,,485,,,,,,,507,506,872,469,,500,871,,,,,,,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,485",",,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,842,469,174",",843,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172","158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153","145,167,146,837,462,174,,838,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165","164,173,160,161,155,153,145,167,146,465,469,174,,464,,,,,,,,169,170",",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,",",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,729,469","174,,730,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171","172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155","153,145,167,146,556,462,174,,557,,,,,,,,169,170,,166,148,149,150,157","154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168","165,164,173,160,161,155,153,145,167,146,458,462,174,,459,,,,,,,,169","170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306",",,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,556","462,174,,557,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,",",,171,172,158,159,,,,,,,,,,,,,,163,162,,147,168,165,164,173,160,161","155,153,145,167,146,729,469,174,,730,,,,,,,,169,170,,166,148,149,150","157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147","168,165,164,173,160,161,155,153,145,167,146,727,462,174,,728,,,,,,,","169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,",",,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146","807,462,174,,808,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152",",,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160","161,155,153,145,167,146,810,469,174,,811,,,,,,,,169,170,,166,148,149","150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162",",147,168,165,164,173,160,161,155,153,145,167,146,1200,462,174,,1201",",,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172,158","159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153,145","167,146,869,462,174,,870,,,,,,,,169,170,,166,148,149,150,157,154,156",",,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164","173,160,161,155,153,145,167,146,1202,469,174,,1203,,,,,,,,169,170,,166","148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,",",163,162,,147,168,165,164,173,160,161,155,153,145,167,146,839,469,174",",840,,,,,,,,169,170,,166,148,149,150,157,154,156,,,151,152,,,,171,172","158,159,,,,,,306,,,,,,,,163,162,,147,168,165,164,173,160,161,155,153","145,167,146,1218,469,174,,1217,,,,,,,,169,170,,166,148,149,150,157,154","156,,,151,152,,,,171,172,158,159,,,,,,306,,,,,,,,163,162,,147,168,165","164,173,160,161,155,153,145,167,146,727,462,174,,728,,,,,,,,169,170",",166,148,149,150,157,154,156,,,151,152,,,,171,172,158,159,,,,,,306,",",,,,,,163,162,,147,168,165,164,173,160,161,155,153,145,167,146,,,174"],racc_action_table=arr=$$$("Array").$new(28717,nil),idx=0,$send(clist,"each",[],(function(str){return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(function(i){var $writer=nil;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),idx=$rb_plus(idx,1)}),1)}),1),clist=["464,521,1016,837,1236,838,992,464,464,464,515,515,1053,464,464,289,464","23,835,631,1087,1058,289,807,464,927,443,137,396,785,3,840,137,137,501","31,464,464,1089,464,464,464,464,464,1104,1105,1108,384,385,392,850,622","501,625,1092,932,1092,331,23,928,521,625,331,393,1058,927,464,464,464","464,464,464,464,464,464,464,464,464,464,464,289,1165,464,464,464,443","464,464,1200,807,464,1201,839,464,1053,928,840,9,464,31,464,932,464","464,515,464,464,464,464,464,871,464,837,464,838,992,785,871,871,871","1016,1202,31,871,871,1016,871,464,631,807,464,464,807,464,871,464,835","396,1087,835,840,835,464,1087,807,464,871,871,1203,871,871,871,871,871","1222,622,1089,839,392,850,622,1089,1104,1105,1108,384,385,1104,1105","1108,384,385,393,981,981,12,871,871,871,871,871,871,871,871,871,871","871,871,871,871,553,553,871,871,871,69,871,871,1202,1165,871,839,416","871,1165,1127,1200,735,871,1201,871,1200,871,871,1201,871,871,871,871","871,251,871,729,871,243,1203,244,641,641,729,729,729,358,358,729,729","729,871,729,1202,871,871,802,871,1202,871,729,729,729,729,729,417,871","735,802,871,14,808,729,729,246,729,729,729,729,729,1203,981,416,1127","1127,1203,1222,810,979,15,251,1222,351,576,252,17,69,243,553,244,1127","27,729,729,729,729,729,729,729,729,729,729,729,729,729,729,20,458,729","729,729,656,729,729,358,358,729,48,48,729,729,417,729,246,729,641,729","808,729,729,641,729,729,729,729,729,42,729,729,729,252,459,810,810,979","947,351,576,576,576,658,45,414,729,458,413,729,729,729,729,53,729,20","729,576,730,458,808,729,351,808,729,730,730,730,656,656,730,730,730","1220,730,808,810,979,656,810,979,459,730,1220,730,730,730,1006,48,48","727,810,979,459,730,730,216,730,730,730,730,730,947,947,947,756,229","658,658,414,414,414,413,413,413,728,923,658,402,947,19,746,402,756,730","730,730,730,730,730,730,730,730,730,730,730,730,730,746,44,730,730,730","412,730,730,1006,231,730,727,291,730,730,418,730,288,730,291,730,235","730,730,288,730,730,730,730,730,870,730,869,730,700,700,728,923,19,972","415,972,972,972,972,972,245,730,44,290,730,730,730,730,972,730,290,730","996,872,44,822,730,996,822,730,872,872,872,412,412,412,872,872,776,872","972,291,776,418,418,418,288,872,872,972,972,972,972,870,931,869,972","247,931,872,872,248,872,872,872,872,872,254,415,415,415,1022,634,1022","1022,1022,1022,1022,290,634,362,914,972,914,914,914,1022,914,634,872","872,872,872,872,872,872,872,872,872,872,872,872,872,305,43,872,872,872","1022,872,872,319,389,872,411,320,872,389,914,1022,1022,872,323,872,1022","872,872,362,872,872,872,872,872,108,872,872,872,634,5,362,108,108,108","5,335,108,108,108,287,108,872,43,336,872,872,287,872,108,872,108,108","108,744,43,1022,872,338,744,872,108,108,744,108,108,108,108,108,339","411,411,411,340,347,286,294,295,29,759,759,347,286,294,295,29,376,346","21,376,347,108,108,108,108,108,108,108,108,108,108,108,108,108,108,287","345,108,108,108,1187,108,108,345,349,108,350,1187,108,108,352,108,345","108,509,108,1187,108,108,509,108,108,108,108,108,21,108,111,108,347","286,294,295,29,111,111,111,21,353,111,111,111,108,111,357,108,108,108","108,359,108,111,108,111,111,111,377,108,366,377,108,345,368,111,111","1187,111,111,111,111,111,371,442,374,404,378,54,293,292,442,379,404","381,54,293,292,380,390,442,380,404,391,54,111,111,111,111,111,111,111","111,111,111,111,111,111,111,395,939,111,111,111,394,111,111,1090,1090","111,939,394,111,111,397,111,678,111,406,111,394,111,111,426,111,111","111,111,111,442,111,404,111,54,293,292,432,1145,434,775,1157,775,775","1157,1145,775,111,435,939,111,111,111,111,1145,111,437,111,440,465,444","939,111,454,678,111,465,465,465,1132,394,456,465,465,811,465,678,775","531,1132,457,811,466,465,465,472,811,823,823,473,811,762,762,762,762","465,465,476,465,465,465,465,465,1145,383,383,477,762,762,762,531,478","1132,1132,531,531,481,1132,482,532,762,762,16,16,762,465,465,465,465","465,465,465,465,465,465,465,465,465,465,811,483,465,465,465,493,465","465,1106,505,465,508,532,465,18,1106,532,532,465,511,465,18,465,465","1106,465,465,465,465,465,18,465,465,465,517,762,762,762,762,525,762","762,762,762,945,1190,1190,465,762,762,465,465,88,465,945,465,762,526","762,762,762,533,465,534,88,465,387,387,387,387,387,387,535,1106,88,387","387,536,561,18,387,842,387,387,387,387,387,387,387,562,563,567,945,583","387,387,387,387,387,387,387,584,587,387,945,589,594,51,51,387,387,387","387,387,387,387,387,387,387,387,387,598,387,387,387,843,387,387,387","387,387,593,843,842,607,343,608,843,593,609,842,843,343,51,51,842,619","593,623,842,387,343,624,387,626,653,387,387,363,661,387,663,387,670","679,363,387,714,842,714,714,714,684,714,363,387,689,691,693,707,387","387,387,387,712,387,387,387,387,713,843,715,722,387,387,731,593,740","842,748,343,387,749,387,387,387,750,779,387,387,841,841,841,841,841","841,782,784,790,841,841,791,792,363,841,400,841,841,841,841,841,841","841,794,796,697,804,806,841,841,841,841,841,841,841,697,1099,841,1099","1099,1099,809,1099,841,841,841,841,841,841,841,841,841,841,841,841,812","841,841,841,242,841,841,841,841,841,344,242,400,697,697,813,816,344","697,400,242,825,831,832,400,836,344,845,400,841,849,851,841,866,868","841,841,877,890,841,1197,841,1197,1197,1197,841,1197,400,893,913,894","913,913,913,841,913,897,899,902,841,841,841,841,903,841,841,841,841","905,242,906,908,841,841,912,344,925,400,933,934,841,938,841,841,841","941,913,841,841,236,236,236,236,236,236,913,649,649,236,236,649,649","649,236,401,236,236,236,236,236,236,236,8,8,8,8,8,236,236,236,236,236","236,236,946,494,236,494,494,494,965,494,236,236,236,236,236,236,236","236,236,236,236,236,968,236,236,236,969,236,236,236,236,236,978,710","401,710,710,710,983,710,494,401,986,993,995,1002,401,1003,1004,494,401","236,1005,1031,236,1032,1037,236,236,1042,1043,236,1044,236,1045,1046","1047,236,1051,401,710,1114,1052,1114,1114,1114,236,1114,1055,710,1059","236,236,236,236,1066,236,236,236,236,1071,1072,1074,1075,236,236,1076","1078,1079,401,1080,1096,236,1107,236,236,236,1110,1114,236,236,1103","1103,1103,1103,1103,1103,1111,1112,1113,1103,1103,1124,1143,1146,1103","1155,1103,1103,1103,1103,1103,1103,1103,25,1156,1161,1171,1172,1103","1103,1103,1103,1103,1103,1103,1174,1177,1103,581,581,581,581,581,1103","1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1180,1103,1103","1103,1181,1103,1103,1103,1103,1103,25,25,25,25,25,25,25,25,25,25,25","1182,25,25,1183,1185,25,25,1199,1103,1204,25,1103,1206,1217,1103,1103","1218,1224,1103,1225,1103,25,1226,25,1103,25,25,1227,25,25,25,25,25,1103","25,1,,,1103,1103,1103,1103,,1103,1103,1103,1103,,,,,1103,1103,,25,,",",,1103,,1103,1103,1103,,,1103,1103,997,997,997,997,997,997,,,,997,997",",,,997,,997,997,997,997,997,997,997,373,373,373,373,373,997,997,997","997,997,997,997,,,997,,,,,447,997,997,997,997,997,997,997,997,997,997","997,997,,997,997,997,,997,997,997,997,997,447,447,447,447,447,447,447","447,447,447,447,,447,447,,,447,447,,997,,,997,,,997,997,,,997,,997,447",",447,997,447,447,,447,447,447,447,447,997,447,,,,997,997,997,997,,997","997,997,997,,,,,997,997,,447,,447,,,997,,997,997,997,,,997,997,337,337","337,337,337,337,,,,337,337,,,,337,,337,337,337,337,337,337,337,334,334","334,334,334,337,337,337,337,337,337,337,,,337,,,,,692,337,337,337,337","337,337,337,337,337,337,337,337,,337,337,337,,337,337,337,337,337,692","692,692,692,692,692,692,692,692,692,692,,692,692,,,692,692,,337,,,337",",,337,337,,,337,,337,692,,692,337,692,692,,692,692,692,692,692,337,692",",,,337,337,337,337,,337,337,337,337,,,,,337,337,,692,,,,,337,,337,337","337,,,337,337,38,38,38,38,38,38,,,,38,38,,,,38,,38,38,38,38,38,38,38",",,,,,38,38,38,38,38,38,38,,,38,,,,,453,38,38,38,38,38,38,38,38,38,38","38,38,,38,38,38,,38,38,38,38,38,453,453,453,453,453,453,453,453,453","453,453,,453,453,,,453,453,,38,,,38,,,38,38,,,38,,38,453,,453,38,453","453,,453,453,453,453,453,38,453,,,,38,38,38,38,,38,38,38,38,,,,,38,38",",453,,,,,38,,38,38,38,,,38,38,642,642,642,642,642,642,,,,642,642,,,","642,,642,642,642,642,642,642,642,,,,,,642,642,642,642,642,642,642,,","642,,,,,723,642,642,642,642,642,642,642,642,642,642,642,642,,642,642","642,,642,642,642,642,642,723,723,723,723,723,723,723,723,723,723,723",",723,723,,,723,723,,642,,,642,,,642,642,,,642,,642,723,,723,642,723","723,,723,723,723,723,723,642,723,,,,642,642,642,642,,642,642,642,642",",,,,642,642,,723,,,,,642,,642,642,642,,,642,642,1068,1068,1068,1068","1068,1068,,,,1068,1068,,,,1068,,1068,1068,1068,1068,1068,1068,1068,",",,,,1068,1068,1068,1068,1068,1068,1068,,,1068,,,,,,1068,1068,1068,1068","1068,1068,1068,1068,1068,1068,1068,1068,,1068,1068,1068,,1068,1068,1068","1068,1068,817,817,817,817,817,817,817,817,817,817,817,,817,817,,,817","817,,1068,,,1068,,,1068,1068,,,1068,,1068,817,,817,1068,817,817,,817","817,817,817,817,1068,817,,,,1068,1068,1068,1068,,1068,1068,1068,1068",",,,,1068,1068,,817,,,,,1068,,1068,1068,1068,,,1068,1068,372,372,372","372,372,372,,,,372,372,,,,372,,372,372,372,372,372,372,372,,,,,,372","372,372,372,372,372,372,,,372,,,,,,372,372,372,372,372,372,372,372,372","372,372,372,,372,372,372,,372,372,372,372,372,874,874,874,874,874,874","874,874,874,874,874,,874,874,,,874,874,,372,,,372,,,372,372,,,372,,372","874,,874,372,874,874,,874,874,874,874,874,372,874,,,,372,372,372,372",",372,372,372,372,,,,,372,372,,874,,,,,372,,372,372,372,,,372,372,973","973,973,973,973,973,,,,973,973,,,,973,,973,973,973,973,973,973,973,",",,,,973,973,973,973,973,973,973,,,973,,,,,,973,973,973,973,973,973,973","973,973,973,973,973,,973,973,973,,973,973,973,973,973,317,317,317,317","317,317,317,317,317,317,317,,317,317,,,317,317,,973,,,973,,,973,973",",,973,,973,317,,317,973,317,317,,317,317,317,317,317,973,317,,,,973","973,973,973,,973,973,973,973,,,,,973,973,,317,,,,,973,,973,973,973,",",973,973,2,2,2,2,2,2,,,,2,2,,,,2,,2,2,2,2,2,2,2,,,,,,2,2,2,2,2,2,2,",",2,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,2,,2,2,2,2,2,550,550,550,550,550","550,550,550,550,550,550,,550,550,,,550,550,,2,,,2,,,2,2,,,2,,2,550,","550,2,550,550,,550,550,550,550,550,2,550,,,,2,2,2,2,,2,2,2,2,,,,,2,2","550,550,,,,,2,,2,2,2,,,2,2,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,230,230,230,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067",",1067,1067,,,1067,1067,,230,,,230,,,230,230,,,230,,230,1067,,1067,230","1067,1067,,1067,1067,1067,1067,1067,230,1067,,,,230,230,230,230,,230","230,230,230,,,,,230,230,,1067,,,,,230,,230,230,230,,,230,230,342,342","342,342,342,342,,,,342,342,,,,342,,342,342,342,342,342,342,342,,,,,","342,342,342,342,342,342,342,,,342,,,,,,342,342,342,342,342,342,342,342","342,342,342,342,,342,342,342,,342,342,342,342,342,1034,1034,1034,1034","1034,1034,1034,1034,1034,1034,1034,,1034,1034,,,1034,1034,,342,,,342",",,342,342,,,342,,342,1034,,1034,342,1034,1034,,1034,1034,1034,1034,1034","342,1034,,,,342,342,342,342,,342,342,342,342,,,,,342,342,,1034,,,,,342",",342,342,342,,,342,342,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,253,,253,253,253,,253,253","253,253,253,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,","1033,1033,,,1033,1033,,253,,,253,,,253,253,,,253,,253,1033,,1033,253","1033,1033,,1033,1033,1033,1033,1033,253,1033,,,,253,253,253,253,,253","253,253,253,,,,,253,253,,1033,,,,,253,,253,253,253,,,253,253,1013,1013","1013,1013,1013,1013,,,,1013,1013,,,,1013,,1013,1013,1013,1013,1013,1013","1013,,,,,,1013,1013,1013,1013,1013,1013,1013,,,1013,,,,,,1013,1013,1013","1013,1013,1013,1013,1013,1013,1013,1013,1013,,1013,1013,1013,,1013,1013","1013,1013,1013,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011",",1011,1011,,,1011,1011,,1013,,,1013,,,1013,1013,,,1013,,1013,1011,,1011","1013,1011,1011,,1011,1011,1011,1011,1011,1013,1011,,,,1013,1013,1013","1013,,1013,1013,1013,1013,,,,,1013,1013,,1011,,,,,1013,,1013,1013,1013",",,1013,1013,1098,1098,1098,1098,1098,1098,,,,1098,1098,,,,1098,,1098","1098,1098,1098,1098,1098,1098,,,,,,1098,1098,1098,1098,1098,1098,1098",",,1098,,,,,,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098",",1098,1098,1098,,1098,1098,1098,1098,1098,1010,1010,1010,1010,1010,1010","1010,1010,1010,1010,1010,,1010,1010,,,1010,1010,,1098,,,1098,,,1098","1098,,,1098,,1098,1010,,1010,1098,1010,1010,,1010,1010,1010,1010,1010","1098,1010,,,,1098,1098,1098,1098,,1098,1098,1098,1098,,,,,1098,1098",",1010,,,,,1098,,1098,1098,1098,,,1098,1098,1097,1097,1097,1097,1097","1097,,,,1097,1097,,,,1097,,1097,1097,1097,1097,1097,1097,1097,,,,,,1097","1097,1097,1097,1097,1097,1097,,,1097,,,,,,1097,1097,1097,1097,1097,1097","1097,1097,1097,1097,1097,1097,,1097,1097,1097,,1097,1097,1097,1097,1097","529,529,529,529,529,529,529,529,529,529,529,,529,529,,,529,529,,1097",",,1097,,,1097,1097,,546,1097,,1097,529,,529,1097,529,529,,529,529,529","529,529,1097,529,,,,1097,1097,1097,1097,,1097,1097,1097,1097,,,546,","1097,1097,546,546,,546,546,,1097,,1097,1097,1097,,,1097,1097,1147,1147","1147,1147,1147,1147,,,,1147,1147,,,,1147,,1147,1147,1147,1147,1147,1147","1147,,,,,,1147,1147,1147,1147,1147,1147,1147,547,1115,1147,1115,1115","1115,,1115,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147",",1147,1147,1147,,1147,1147,1147,1147,1147,604,,547,,,,547,547,1115,547","547,,,,,,604,604,,1147,,,1147,,,1147,1147,,,1147,,1147,604,,604,1147","604,604,,604,604,,,604,1147,604,,,,1147,1147,1147,1147,,1147,1147,1147","1147,,,,,1147,1147,,,,,,,1147,,1147,1147,1147,,,1147,1147,621,621,621","621,621,621,,,,621,621,,,,621,,621,621,621,621,621,621,621,,,,,,621","621,621,621,621,621,621,,,621,,,,,,621,621,621,621,621,621,621,621,621","621,621,621,,621,621,621,,621,621,621,621,621,364,364,364,364,364,364","364,364,364,364,364,,364,364,,,364,364,,621,,,621,,,621,621,,,621,,621","364,,364,621,364,364,,364,364,364,364,364,621,364,,,,621,621,621,621",",621,621,621,621,,,,,621,621,,,,,,,621,,621,621,621,,,621,621,892,892","892,892,892,892,,,,892,892,,,,892,,892,892,892,892,892,892,892,,,,,","892,892,892,892,892,892,892,,,892,,,,,,892,892,892,892,892,892,892,892","892,892,892,892,,892,892,892,,892,892,892,892,892,365,365,365,365,365","365,365,365,365,365,365,,365,365,,,365,365,,892,,,892,,,892,892,,,892",",892,365,,365,892,365,365,,365,365,365,365,365,892,365,,,,892,892,892","892,,892,892,892,892,,,,,892,892,,,,,,,892,,892,892,892,,,892,892,618","618,618,618,618,618,,,,618,618,,,,618,,618,618,618,618,618,618,618,",",,,,618,618,618,618,618,618,618,,,618,,,,,,618,618,618,618,618,618,618","618,618,618,618,618,,618,618,618,,618,618,618,618,618,551,,,,,,,,,,",",,,,,551,551,,618,,,618,,,618,618,,,618,,618,551,,551,618,551,551,,551","551,,,551,618,551,,,,618,618,618,618,,618,618,618,618,,,,,618,618,,",",,,,618,,618,618,618,,,618,618,1191,1191,1191,1191,1191,1191,,,,1191","1191,,,,1191,,1191,1191,1191,1191,1191,1191,1191,,,,,,1191,1191,1191","1191,1191,1191,1191,,,1191,,,,,,1191,1191,1191,1191,1191,1191,1191,1191","1191,1191,1191,1191,,1191,1191,1191,,1191,1191,1191,1191,1191,549,549","549,549,549,549,549,549,,549,549,,,,,,549,549,,1191,,,1191,,,1191,1191",",,1191,,1191,549,,549,1191,549,549,,549,549,549,549,549,1191,549,,,","1191,1191,1191,1191,,1191,1191,1191,1191,,,,,1191,1191,,,,,,,1191,,1191","1191,1191,,,1191,1191,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,,135,135","135,135,135,548,548,548,548,548,548,548,,,548,548,,,,,,548,548,,135",",,135,,,135,135,,,135,,135,548,,548,135,548,548,,548,548,548,548,548","135,548,,,,135,135,135,135,,135,135,135,135,,,,,135,135,,,,,,,135,,135","135,135,,,135,135,218,218,218,218,218,218,,,,218,218,,,,218,,218,218","218,218,218,218,218,,,,,,218,218,218,218,218,218,218,,,218,,,,,,218","218,218,218,218,218,218,218,218,218,218,218,,218,218,218,,218,218,218","218,218,545,545,545,545,545,545,545,,,545,545,,,,,,545,545,,218,,,218",",,218,218,,,218,,218,545,,545,218,545,545,,545,545,545,545,545,218,545",",,,218,218,218,218,,218,218,218,218,,,,,218,218,,,,,,,218,,218,218,218",",,218,218,846,846,846,846,846,846,,,,846,846,,,,846,,846,846,846,846","846,846,846,,,,,,846,846,846,846,846,846,846,,,846,,,,,,846,846,846","846,846,846,846,846,846,846,846,846,,846,846,846,,846,846,846,846,846","544,544,544,544,544,544,544,,,544,544,,,,,,544,544,,846,,,846,,,846","846,,,846,,846,544,,544,846,544,544,,544,544,544,544,544,846,544,,,","846,846,846,846,,846,846,846,846,,,,,846,846,,,,,,,846,,846,846,846",",,846,846,857,857,857,857,857,857,,,,857,857,,,,857,,857,857,857,857","857,857,857,,,,,,857,857,857,857,857,857,857,,,857,,,,,,857,857,857","857,857,857,857,857,857,857,857,857,,857,857,857,,857,857,857,857,857","543,543,543,543,543,543,543,,,543,543,,,,,,543,543,,857,,,857,,,857","857,,,857,,857,543,,543,857,543,543,,543,543,543,543,543,857,543,,,","857,857,857,857,,857,857,857,857,,,,,857,857,,,,,,,857,,857,857,857",",,857,857,388,388,388,388,388,388,,,,388,388,,,,388,,388,388,388,388","388,388,388,,,,,,388,388,388,388,388,388,388,,,388,,,,,,388,388,388","388,388,388,388,388,388,388,388,388,,388,388,388,,388,388,388,388,388","542,542,542,542,542,542,542,,,542,542,,,,,,542,542,,388,,,388,,,388","388,,,388,,388,542,,542,388,542,542,,542,542,542,542,542,388,542,,,","388,388,388,388,,388,388,388,388,,,,,388,388,,,,,,,388,,388,388,388",",,388,388,991,991,991,991,991,991,,,,991,991,,,,991,,991,991,991,991","991,991,991,,,,,,991,991,991,991,991,991,991,,,991,,,,,,991,991,991","991,991,991,991,991,991,991,991,991,,991,991,991,,991,991,991,991,991","541,541,541,541,541,541,541,,,541,541,,,,,,541,541,,991,,,991,,,991","991,,,991,,991,541,,541,991,541,541,,541,541,541,541,541,991,541,,,","991,991,991,991,,991,991,991,991,,,,,991,991,,,,920,920,920,991,920","991,991,991,920,920,991,991,,920,,920,920,920,920,920,920,920,,,,,,920","920,920,920,920,920,920,,,920,,,,,,,920,,,920,920,920,920,920,920,920","920,,920,920,920,,920,920,920,920,920,540,540,540,540,540,540,540,,","540,540,,,,,,540,540,,920,,,920,,,920,920,,,920,,,540,,540,920,540,540",",540,540,540,540,540,920,540,,,,920,920,920,920,,920,920,920,920,,,",",920,920,,,,921,921,921,920,921,920,920,920,921,921,920,920,,921,,921","921,921,921,921,921,921,,,,,,921,921,921,921,921,921,921,,,921,,,,,",",921,,,921,921,921,921,921,921,921,921,,921,921,921,,921,921,921,921","921,530,530,530,530,530,530,530,530,530,530,530,,530,530,,,530,530,","921,,,921,,,921,921,,,921,,,530,,530,921,530,530,,530,530,530,530,530","921,530,,,,921,921,921,921,,921,921,921,921,,,,,921,921,,,,922,922,922","921,922,921,921,921,922,922,921,921,,922,,922,922,922,922,922,922,922",",,,,,922,922,922,922,922,922,922,,,922,,,,,,,922,,,922,922,922,922,922","922,922,922,,922,922,922,,922,922,922,922,922,538,,,,,,,,,,,,,,,,538","538,,922,,,922,,,922,922,,,922,,,538,,538,922,538,538,,538,538,,,,922",",,,,922,922,922,922,,922,922,922,922,,,,,922,922,,,,733,733,733,922","733,922,922,922,733,733,922,922,,733,,733,733,733,733,733,733,733,,",",,,733,733,733,733,733,733,733,,,733,,,,,,,733,,,733,733,733,733,733","733,733,733,,733,733,733,,733,733,733,733,733,539,,,,,,,,,,,,,,,,539","539,,733,,,733,,,733,733,,,733,,,539,,,733,539,539,,539,539,,,,733,",",,,733,733,733,733,,733,733,733,733,,,,,733,733,,,,732,732,732,733,732","733,733,733,732,732,733,733,,732,,732,732,732,732,732,732,732,,,,,,732","732,732,732,732,732,732,,,732,,,,,,,732,,,732,732,732,732,732,732,732","732,,732,732,732,,732,732,732,732,732,537,,,,,,,,,,,,,,,,537,537,,732",",,732,,,732,732,,,732,,,537,,537,732,537,537,,537,537,,,,732,,,,,732","732,732,732,,732,732,732,732,,,,,732,732,,,,,,,732,,732,732,732,,,732","732,333,333,333,333,333,,,,333,333,,,,333,,333,333,333,333,333,333,333",",,,,,333,333,333,333,333,333,333,,,333,,,,,,333,333,,333,333,333,333","333,333,333,333,333,,333,333,333,,333,333,333,333,333,,,,,,,,,,,,,,",",,,,,333,,,333,,,333,333,,,333,,333,,,,333,,,,,,,,,333,,,,,333,333,333","333,,333,333,333,333,,,,,333,333,,,,265,265,265,333,265,333,333,333","265,265,333,333,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265","265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265","265,,265,265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265",",,,,,265,,,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265",",,,264,264,264,265,264,265,265,265,264,264,265,265,,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","264,264,264,,264,264,264,264,,,,,264,264,,,,263,263,263,264,263,264","264,264,263,263,264,264,,263,,263,263,263,263,263,263,263,,,,,,263,263","263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263,263",",263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263","263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263,263,,263,263,263,263",",,,,263,263,,,,262,262,262,263,262,263,263,263,262,262,263,263,,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,,,,,,",",,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,261,261,261","262,261,262,262,262,261,261,262,262,,261,,261,261,261,261,261,261,261",",,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261","261,261,261,,261,261,261,,261,261,261,261,261,,,,,,,,,,,,,,,,,,,,261",",,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261,261,261,261,,261","261,261,261,,,,,261,261,,,,708,708,708,261,708,261,261,261,708,708,261","261,,708,,708,708,708,708,708,708,708,,,,,,708,708,708,708,708,708,708",",,708,,,,,,,708,,,708,708,708,708,708,708,708,708,,708,708,708,,708","708,708,708,708,,,,,,,,,,,,,,,,,,,,708,,,708,,,708,708,,,708,,,,,,708",",,,,,,,,708,,,,,708,708,708,708,,708,708,708,708,,,,,708,708,,,,260","260,260,708,260,708,708,708,260,260,708,708,,260,,260,260,260,260,260","260,260,,,,,,260,260,260,260,260,260,260,,,260,,,,,,,260,,,260,260,260","260,260,260,260,260,,260,260,260,,260,260,260,260,260,,,,,,,,,,,,,,",",,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,,,,260,,,,,260,260,260","260,,260,260,260,260,,,,,260,260,,,,694,694,694,260,694,260,260,260","694,694,260,260,,694,,694,694,694,694,694,694,694,,,,,,694,694,694,694","694,694,694,,,694,,,,,,,694,,,694,694,694,694,694,694,694,694,,694,694","694,,694,694,694,694,694,,,,,,,,,,,,,,,,,,,,694,,,694,,,694,694,,,694",",694,,,,694,,,,,,,,,694,,,,,694,694,694,694,,694,694,694,694,,,,,694","694,,,,259,259,259,694,259,694,694,694,259,259,694,694,,259,,259,259","259,259,259,259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259",",,259,259,259,259,259,259,259,259,,259,259,259,,259,259,259,259,259",",,,,,,,,,,,,,,,,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,",",,259,259,259,259,,259,259,259,259,,,,,259,259,,,,258,258,258,259,258","259,259,259,258,258,259,259,,258,,258,258,258,258,258,258,258,,,,,,258","258,258,258,258,258,258,,,258,,,,,,,258,,,258,258,258,258,258,258,258","258,,258,258,258,,258,258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,",",258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258,258,258,258,,258,258,258","258,,,,,258,258,,,,257,257,257,258,257,258,258,258,257,257,258,258,","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,,,,,,257,,",",,,,,,257,,,,,257,257,257,257,,257,257,257,257,,,,,257,257,,,,688,688","688,257,688,257,257,257,688,688,257,257,,688,,688,688,688,688,688,688","688,,,,,,688,688,688,688,688,688,688,,,688,,,,,,,688,,,688,688,688,688","688,688,688,688,,688,688,688,,688,688,688,688,688,,,,,,,,,,,,,,,,,,",",688,,,688,,,688,688,,,688,,,,,,688,,,,,,,,,688,,,,,688,688,688,688",",688,688,688,688,,,,,688,688,,,,687,687,687,688,687,688,688,688,687","687,688,688,,687,,687,687,687,687,687,687,687,,,,,,687,687,687,687,687","687,687,,,687,,,,,,,687,,,687,687,687,687,687,687,687,687,,687,687,687",",687,687,687,687,687,,,,,,,,,,,,,,,,,,,,687,,,687,,,687,687,,,687,,",",,,687,,,,,,,,,687,,,,,687,687,687,687,,687,687,687,687,,,,,687,687",",,,,,,687,,687,687,687,32,,687,687,,,,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,32,,,32,,32,32,,,32,32",",32,,32,,32,,32,32,,32,32,32,32,32,,32,32,32,,,,,,,,,,,,,,32,,,32,32",",32,,32,683,683,683,,683,,32,,683,683,,,,683,,683,683,683,683,683,683","683,,,,,,683,683,683,683,683,683,683,,,683,,,,,,,683,,,683,683,683,683","683,683,683,683,,683,683,683,,683,683,683,683,683,,,,,,,,,,,,,,,,,,",",683,,,683,,,683,683,,,683,,,,,,683,,,,,,,,,683,,,,,683,683,683,683",",683,683,683,683,,,,,683,683,,,,682,682,682,683,682,683,683,683,682","682,683,683,,682,,682,682,682,682,682,682,682,,,,,,682,682,682,682,682","682,682,,,682,,,,,,,682,,,682,682,682,682,682,682,682,682,,682,682,682",",682,682,682,682,682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682,682,,,682,,",",,,682,,,,,,,,,682,,,,,682,682,682,682,,682,682,682,682,,,,,682,682",",,,681,681,681,682,681,682,682,682,681,681,682,682,,681,,681,681,681","681,681,681,681,,,,,,681,681,681,681,681,681,681,,,681,,,,,,,681,,,681","681,681,681,681,681,681,681,681,681,681,681,,681,681,681,681,681,,,",",,,,,,,,,,,,,,,,681,,,681,,,681,681,,,681,,,,681,,681,,,681,,,,,,681",",,,,681,681,681,681,,681,681,681,681,,,,,681,681,,,,956,956,956,681","956,681,681,681,956,956,681,681,,956,,956,956,956,956,956,956,956,,",",,,956,956,956,956,956,956,956,,,956,,,,,,,956,,,956,956,956,956,956","956,956,956,,956,956,956,,956,956,956,956,956,,,,,,,,,,,,,,,,,,,,956",",,956,,,956,956,,,956,,,,,,956,,,,,,,,,956,,,,,956,956,956,956,,956","956,956,956,,,,,956,956,,,,962,962,962,956,962,956,956,956,962,962,956","956,,962,,962,962,962,962,962,962,962,,,,,,962,962,962,962,962,962,962",",,962,,,,,,,962,,,962,962,962,962,962,962,962,962,,962,962,962,,962","962,962,962,962,,,,,,,,,,,,,,,,,,,,962,,,962,,,962,962,,,962,,,,,,962",",,,,,,,,962,,,,,962,962,962,962,,962,962,962,962,,,,,962,962,,,,,,,962",",962,962,962,33,,962,962,,,,33,33,33,,,33,33,33,,33,,,,,,,,33,,33,33",",,,,,,,,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,,,,33,33,33,33,33,33","33,33,33,33,33,33,33,33,,,33,33,33,,,33,,33,33,,,33,33,,33,,33,,33,","33,33,,33,33,33,33,33,,33,,33,,,,,,,,,,,,,,33,,,33,33,,33,,33,34,34","34,,34,,33,,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,34,,,34,,34,,34,,34,,,34,,,,,,34",",,,,34,34,34,34,,34,34,34,34,,,,,34,34,,,,680,680,680,34,680,34,34,34","680,680,34,34,,680,,680,680,680,680,680,680,680,,,,,,680,680,680,680","680,680,680,,,680,,,,,,,680,,,680,680,680,680,680,680,680,680,680,680","680,680,,680,680,680,680,680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680",",,680,,680,,680,,680,,,680,,,,,,680,,,,,680,680,680,680,,680,680,680","680,,,,,680,680,,,,677,677,677,680,677,680,680,680,677,677,680,680,","677,,677,677,677,677,677,677,677,,,,,,677,677,677,677,677,677,677,,","677,,,,,,,677,,,677,677,677,677,677,677,677,677,,677,677,677,,677,677","677,677,677,,,,,,,,,,,,,,,,,,,,677,,,677,,,677,677,,,677,,,,,,677,,",",,,,,,677,,,,,677,677,677,677,,677,677,677,677,,,,,677,677,,,,,,,677",",677,677,677,,,677,677,676,676,676,676,676,,,,676,676,,,,676,,676,676","676,676,676,676,676,,,,,,676,676,676,676,676,676,676,,,676,,,,,,676","676,,676,676,676,676,676,676,676,676,676,,676,676,676,,676,676,676,676","676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676,676,,,676,,676,,,,676,,,,,,,",",676,,,,,676,676,676,676,,676,676,676,676,,,,,676,676,,,,985,985,985","676,985,676,676,676,985,985,676,676,,985,,985,985,985,985,985,985,985",",,,,,985,985,985,985,985,985,985,,,985,,,,,,,985,,,985,985,985,985,985","985,985,985,,985,985,985,,985,985,985,985,985,,,,,,,,,,,,,,,,,,,,985",",,985,,,985,985,,,985,,,,,,985,,,,,,,,,985,,,,,985,985,985,985,,985","985,985,985,,,,,985,985,,,,673,673,673,985,673,985,985,985,673,673,985","985,,673,,673,673,673,673,673,673,673,,,,,,673,673,673,673,673,673,673",",,673,,,,,,,673,,,673,673,673,673,673,673,673,673,673,673,673,673,,673","673,673,673,673,,,,,,,,,,,,,,,,,,,,673,,,673,,,673,673,,,673,,673,,673",",673,,,673,,,,,,673,,,,,673,673,673,673,,673,673,673,673,,,,,673,673",",,,672,672,672,673,672,673,673,673,672,672,673,673,,672,,672,672,672","672,672,672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,,672,,,672","672,672,672,672,672,672,672,,672,672,672,,672,672,672,672,672,,,,,,",",,,,,,,,,,,,,672,,,672,,,672,672,,,672,,,,,,672,,,,,,,,,672,,,,,672","672,672,672,,672,672,672,672,,,,,672,672,,,,990,990,990,672,990,672","672,672,990,990,672,672,,990,,990,990,990,990,990,990,990,,,,,,990,990","990,990,990,990,990,,,990,,,,,,,990,,,990,990,990,990,990,990,990,990",",990,990,990,,990,990,990,990,990,,,,,,,,,,,,,,,,,,,,990,,,990,,,990","990,,,990,,990,,,,990,,,,,,,,,990,,,,,990,990,990,990,,990,990,990,990",",,,,990,990,,,,671,671,671,990,671,990,990,990,671,671,990,990,,671",",671,671,671,671,671,671,671,,,,,,671,671,671,671,671,671,671,,,671",",,,,,,671,,,671,671,671,671,671,671,671,671,,671,671,671,,671,671,671","671,671,,,,,,,,,,,,,,,,,,,,671,,,671,,,671,671,,,671,,671,,,,671,,,",",,,,,671,,,,,671,671,671,671,,671,671,671,671,,,,,671,671,,,,,,,671",",671,671,671,,,671,671,669,669,669,669,669,,,,669,669,,,,669,,669,669","669,669,669,669,669,,,,,,669,669,669,669,669,669,669,,,669,,,,,,669","669,,669,669,669,669,669,669,669,669,669,,669,669,669,,669,669,669,669","669,,,,,,,,,,,,,,,,,,,,669,,,669,,,669,669,,,669,,669,,,,669,,,,,,,",",669,,,,,669,669,669,669,,669,669,669,669,,,,,669,669,,,,35,35,35,669","35,669,669,669,35,35,669,669,,35,,35,35,35,35,35,35,35,,,,,,35,35,35","35,35,35,35,,,35,,,,,,,35,,,35,35,35,35,35,35,35,35,35,35,35,35,,35","35,35,35,35,,,,,,,,,,,,,,,,,,,,35,,,35,,,35,35,,,35,,35,,35,,35,,,35",",,,,,35,,,,,35,35,35,35,,35,35,35,35,,,,,35,35,,,,250,250,250,35,250","35,35,35,250,250,35,35,,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","250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250,250,250,250",",,,,250,250,,,,36,36,36,250,36,250,250,250,36,36,250,250,,36,,36,36","36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,,36,,,36,36,36,36","36,36,36,36,36,36,36,36,,36,36,36,36,36,,,,,,,,,,,,,,,,,,,,36,,,36,",",36,36,,,36,,36,,36,,36,,,36,,,,,,36,,,,,36,36,36,36,,36,36,36,36,,",",,36,36,,,,638,638,638,36,638,36,36,36,638,638,36,36,,638,,638,638,638","638,638,638,638,,,,,,638,638,638,638,638,638,638,,,638,,,,,,,638,,,638","638,638,638,638,638,638,638,638,638,638,638,,638,638,638,638,638,,,",",,,,,,,,,,,,,,,,638,,,638,,,638,638,,,638,,638,,638,,638,,,638,,,,,","638,,,,,638,638,638,638,,638,638,638,638,,,,,638,638,,,,1009,1009,1009","638,1009,638,638,638,1009,1009,638,638,,1009,,1009,1009,1009,1009,1009","1009,1009,,,,,,1009,1009,1009,1009,1009,1009,1009,,,1009,,,,,,,1009",",,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,,1009","1009,1009,1009,1009,,,,,,,,,,,,,,,,,,,,1009,,,1009,,,1009,1009,,,1009",",,,1009,,1009,,,1009,,,,,,1009,,,,,1009,1009,1009,1009,,1009,1009,1009","1009,,,,,1009,1009,,,,628,628,628,1009,628,1009,1009,1009,628,628,1009","1009,,628,,628,628,628,628,628,628,628,,,,,,628,628,628,628,628,628","628,,,628,,,,,,,628,,,628,628,628,628,628,628,628,628,628,628,628,628",",628,628,628,628,628,,,,,,,,,,,,,,,,,,,,628,,,628,,,628,628,,,628,,628",",628,,628,,,628,,,,,,628,,,,,628,628,628,628,,628,628,628,628,,,,,628","628,,,,627,627,627,628,627,628,628,628,627,627,628,628,,627,,627,627","627,627,627,627,627,,,,,,627,627,627,627,627,627,627,,,627,,,,,,,627",",,627,627,627,627,627,627,627,627,,627,627,627,,627,627,627,627,627",",,,,,,,,,,,,,,,,,,,627,,,627,,,627,627,,,627,,627,,,,627,,,,,,,,,627",",,,,627,627,627,627,,627,627,627,627,,,,,627,627,,,,818,818,818,627","818,627,627,627,818,818,627,627,,818,,818,818,818,818,818,818,818,,",",,,818,818,818,818,818,818,818,,,818,,,,,,,818,,,818,818,818,818,818","818,818,818,,818,818,818,,818,818,818,818,818,,,,,,,,,,,,,,,,,,,,818",",,818,,,818,818,,,818,,,,,,818,,,,,,,,,818,,,,,818,818,818,818,,818","818,818,818,,,,,818,818,,,,614,614,614,818,614,818,818,818,614,614,818","818,,614,,614,614,614,614,614,614,614,,,,,,614,614,614,614,614,614,614",",,614,,,,,,,614,,,614,614,614,614,614,614,614,614,614,614,614,614,,614","614,614,614,614,,,,,,,,,,,,,,,,,,,,614,,,614,,,614,614,,,614,,,,,,614",",,614,,,,,,614,,,,,614,614,614,614,,614,614,614,614,,,,,614,614,,,,611","611,611,614,611,614,614,614,611,611,614,614,,611,,611,611,611,611,611","611,611,,,,,,611,611,611,611,611,611,611,,,611,,,,,,,611,,,611,611,611","611,611,611,611,611,611,611,611,611,,611,611,611,611,611,,,,,,,,,,,",",,,,,,,,611,,,611,,,611,611,,,611,,611,,,,611,,,611,,,,,,611,,,,,611","611,611,611,,611,611,611,611,,,,,611,611,,,,239,239,239,611,239,611","611,611,239,239,611,611,,239,,239,239,239,239,239,239,239,,,,,,239,239","239,239,239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239",",239,239,239,,239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239","239,,,239,,,,,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239",",,,,239,239,239,,,605,605,605,239,605,239,239,239,605,605,239,239,,605",",605,605,605,605,605,605,605,,,,,,605,605,605,605,605,605,605,,,605",",,,,,,605,,,605,605,605,605,605,605,605,605,,605,605,605,,605,605,605","605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605,605,,,605,,,,,,605,,,,,,",",,605,,,,,605,605,605,605,,605,605,605,605,,,,,605,605,,,,1035,1035","1035,605,1035,605,605,605,1035,1035,605,605,,1035,,1035,1035,1035,1035","1035,1035,1035,,,,,,1035,1035,1035,1035,1035,1035,1035,,,1035,,,,,,","1035,,,1035,1035,1035,1035,1035,1035,1035,1035,,1035,1035,1035,,1035","1035,1035,1035,1035,,,,,,,,,,,,,,,,,,,,1035,,,1035,,,1035,1035,,,1035",",,,,,1035,,,,,,,,,1035,,,,,1035,1035,1035,1035,,1035,1035,1035,1035",",,,,1035,1035,,,,603,603,603,1035,603,1035,1035,1035,603,603,1035,1035",",603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603,",",603,,,,,,,603,,,603,603,603,603,603,603,603,603,,603,603,603,,603,603","603,603,603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603,,,603,,,,,,603,,",",,,,,,603,,,,,603,603,603,603,,603,603,603,603,,,,,603,603,,,,600,600","600,603,600,603,603,603,600,600,603,603,,600,,600,600,600,600,600,600","600,,,,,,600,600,600,600,600,600,600,,,600,,,,,,,600,,,600,600,600,600","600,600,600,600,,600,600,600,,600,600,600,600,600,,,,,,,,,,,,,,,,,,",",600,,,600,,,600,600,,,600,,,,,,600,,,,,,,,,600,,,,,600,600,600,600",",600,600,600,600,,,,,600,600,,,,238,238,238,600,238,600,600,600,238","238,600,600,,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,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,",",,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238,238,,,,,238,238",",,,237,237,237,238,237,238,238,238,237,237,238,238,,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","237,237,237,,237,237,237,237,,,,,237,237,,,,590,590,590,237,590,237","237,237,590,590,237,237,,590,,590,590,590,590,590,590,590,,,,,,590,590","590,590,590,590,590,,,590,,,,,,,590,,,590,590,590,590,590,590,590,590","590,590,590,590,,590,590,590,590,590,,,,,,,,,,,,,,,,,,,,590,,,590,,","590,590,,,590,,590,,590,,590,,,590,,,,,,590,,,,,590,590,590,590,,590","590,590,590,,,,,590,590,,,,,,,590,,590,590,590,,,590,590,580,580,580","580,580,,,,580,580,,,,580,,580,580,580,580,580,580,580,,,,,,580,580","580,580,580,580,580,,,580,,,,,,580,580,580,580,580,580,580,580,580,580","580,580,,580,580,580,,580,580,580,580,580,,,,,,,,,,,,,,,,,,,,580,,,580",",,580,580,,,580,,580,,,,580,,,,,,,,,580,,,,,580,580,580,580,,580,580","580,580,,,,,580,580,,,,,,580,580,,580,580,580,,,580,580,574,574,574",",574,,,,574,574,,,,574,,574,574,574,574,574,574,574,,,,,,574,574,574","574,574,574,574,,,574,,,,,,,574,,,574,574,574,574,574,574,574,574,,574","574,574,,574,574,574,574,574,,,,,,,,,,,,,,,,,,,,574,,,574,,,574,574",",,574,,,,,,574,,,,,,,,,574,,,,,574,574,574,574,,574,574,574,574,,,,","574,574,,,,369,369,369,574,369,574,574,574,369,369,574,574,,369,,369","369,369,369,369,369,369,,,,,,369,369,369,369,369,369,369,,,369,,,,,",",369,,,369,369,369,369,369,369,369,369,,369,369,369,,369,369,369,369","369,,,,,,,,,,,,,,,,,,,,369,,,369,,,369,369,,,369,,,,,,369,,,,,,,,,369",",,,,369,369,369,369,,369,369,369,369,,,,,369,369,,,,46,46,46,369,46","369,369,369,46,46,369,369,,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,,,,,,,,,46,,,",",46,46,46,46,,46,46,46,46,,,,,46,46,,,,572,572,572,46,572,46,46,46,572","572,46,46,,572,,572,572,572,572,572,572,572,,,,,,572,572,572,572,572","572,572,,,572,,,,,,,572,,,572,572,572,572,572,572,572,572,572,572,572","572,,572,572,572,572,572,,,,,,,,,,,,,,,,,,,,572,,,572,,,572,572,,,572",",,,572,,572,,,572,,,,,,572,,,,,572,572,572,572,,572,572,572,572,,,,","572,572,,,,570,570,570,572,570,572,572,572,570,570,572,572,,570,,570","570,570,570,570,570,570,,,,,,570,570,570,570,570,570,570,,,570,,,,,",",570,,,570,570,570,570,570,570,570,570,570,570,570,570,,570,570,570","570,570,,,,,,,,,,,,,,,,,,,,570,,,570,,,570,570,,,570,,570,,570,,570",",,570,,,,,,570,,,,,570,570,570,570,,570,570,570,570,,,,,570,570,,,,47","47,47,570,47,570,570,570,47,47,570,570,,47,,47,47,47,47,47,47,47,,,",",,47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47","47,,47,47,47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,",",,,,,,,47,,,,,47,47,47,47,,47,47,47,47,,,,,47,47,,,,560,560,560,47,560","47,47,47,560,560,47,47,,560,,560,560,560,560,560,560,560,,,,,,560,560","560,560,560,560,560,,,560,,,,,,,560,,,560,560,560,560,560,560,560,560",",560,560,560,,560,560,560,560,560,,,,,,,,,,,,,,,,,,,,560,,,560,,,560","560,,,560,,,,,,560,,,,,,,,,560,,,,,560,560,560,560,,560,560,560,560",",,,,560,560,,,,49,49,49,560,49,560,560,560,49,49,560,560,,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,,,,,,,,,49,,,,,49,49,49,49,,49,49,49,49,,,,,49,49,,",",,,,49,,49,49,49,555,,49,49,,,,555,555,555,,,555,555,555,703,555,703","703,703,703,703,,,555,555,555,,,,703,,,,,,555,555,,555,555,555,555,555",",701,,701,701,701,701,701,703,,,,,,,,701,703,703,703,703,,,,703,,1140",",1140,1140,1140,1140,1140,555,,,,,701,,555,1140,,,,555,555,701,701,701","701,,,,701,,,,,,,,,1140,703,,,,555,555,,,,,1140,1140,,,,1140,,,,555",",,555,,283,283,283,555,283,,701,,283,283,555,,,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,,,283,,,,,,283,,,,,,,,,283,,,,,283,283","283,283,,283,283,283,283,,,,,283,283,,,,224,224,224,283,224,283,283","283,224,224,283,283,,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","224,,,224,,224,,224,,224,,,224,,,,,,224,,,,,224,224,224,224,,224,224","224,224,,,,,224,224,,,,223,223,223,224,223,224,224,224,223,223,224,224",",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,223,223,223,,223,223,223,223,,,,,223,223,,,,50,50","50,223,50,223,223,223,50,50,223,223,,50,,50,50,50,50,50,50,50,,,,,,50","50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50,50,50,50,,50,50,50",",50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50,,,50,,,,,,50,,,,",",,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,222,222,222,50,222","50,50,50,222,222,50,50,,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,222,222,222,,222,222,222,222",",,,,222,222,,,,72,72,72,222,72,222,222,222,72,72,222,222,,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,,,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,",",71,71,71,72,71,72,72,72,71,71,72,72,,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,71,71,71,,71,71,71,71,,,,,71,71,,,,436,436,436,71,436","71,71,71,436,436,71,71,,436,,436,436,436,436,436,436,436,,,,,,436,436","436,436,436,436,436,,,436,,,,,,,436,,,436,436,436,436,436,436,436,436",",436,436,436,,436,436,436,436,436,,,,,,,,,,,,,,,,,,,,436,,,436,,,436","436,,,436,,,,,,436,,,,,,,,,436,,,,,436,436,436,436,,436,436,436,436",",,,,436,436,,,,68,68,68,436,68,436,436,436,68,68,436,436,,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,,,,,,68,,,,,68,68,68,68,,68,68,68,68,,,,,68","68,,,,407,407,407,68,407,68,68,68,407,407,68,68,,407,,407,407,407,407","407,407,407,,,,,,407,407,407,407,407,407,407,,,407,,,,,,,407,,,407,407","407,407,407,407,407,407,,407,407,407,,407,407,407,407,407,,,,,,,,,,",",,,,,,,,,407,,,407,,,407,407,,,407,,,,,,407,,,,,,,,,407,,,,,407,407","407,407,,407,407,407,407,,,,,407,407,,,,847,847,847,407,847,407,407","407,847,847,407,407,,847,,847,847,847,847,847,847,847,,,,,,847,847,847","847,847,847,847,,,847,,,,,,,847,,,847,847,847,847,847,847,847,847,,847","847,847,,847,847,847,847,847,,,,,,,,,,,,,,,,,,,,847,,,847,,,847,847",",,847,,,,,,847,,,,,,,,,847,,,,,847,847,847,847,,847,847,847,847,,,,","847,847,,,,276,276,276,847,276,847,847,847,276,276,847,847,,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,276,276,276,,276,276,276,276,,,,,276,276,,,,275,275,275,276","275,276,276,276,275,275,276,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,,,,,,,,,275,,,,,275,275,275,275,,275","275,275,275,,,,,275,275,,,,67,67,67,275,67,275,275,275,67,67,275,275",",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,,,67,,67,,,,67,,,67,,,,,,67,,,,,67,67,67,67,,67,67","67,67,,,,,67,67,,,,,,,67,,67,67,67,,,67,67,66,66,66,66,66,,,,66,66,",",,66,,66,66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,66,66",",66,66,66,66,66,66,66,66,66,,66,66,66,,66,66,66,66,66,,,,,,,,,,,,,,",",,,,,66,,,66,,,66,66,,,66,,66,,,,66,,,,,,,,,66,,,,,66,66,66,66,,66,66","66,66,,,,,66,66,,,,299,299,299,66,299,66,66,66,299,299,66,66,,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,,,,,,,,,299",",,,,299,299,299,299,,299,299,299,299,,,,,299,299,,,,274,274,274,299","274,299,299,299,274,274,299,299,,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,,,,,,274,,,,,,,,,274,,,,,274,274,274,274,,274","274,274,274,,,,,274,274,,,,867,867,867,274,867,274,274,274,867,867,274","274,,867,,867,867,867,867,867,867,867,,,,,,867,867,867,867,867,867,867",",,867,,,,,,,867,,,867,867,867,867,867,867,867,867,,867,867,867,,867","867,867,867,867,,,,,,,,,,,,,,,,,,,,867,,,867,,,867,867,,,867,,,,,,867",",,,,,,,,867,,,,,867,867,867,867,,867,867,867,867,,,,,867,867,,,,24,24","24,867,24,867,867,867,24,24,867,867,,24,,24,24,24,24,24,24,24,,,,,,24","24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24,,24,24,24",",24,24,24,24,24,,,,,,,,,,,,,,,,,,,,24,,,24,,,24,24,,,24,,,,,,24,,,,",",,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,273,273,273,24,273","24,24,24,273,273,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,,,273","273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273",",,,,273,273,,,,788,788,788,273,788,273,273,273,788,788,273,273,,788",",788,788,788,788,788,788,788,,,,,,788,788,788,788,788,788,788,,,788",",,,,,,788,,,788,788,788,788,788,788,788,788,788,788,788,788,,788,788","788,788,788,,,,,,,,,,,,,,,,,,,,788,,,788,,,788,788,,,788,,788,,788,","788,,,788,,,,,,788,,,,,788,788,788,788,,788,788,788,788,,,,,788,788",",,,272,272,272,788,272,788,788,788,272,272,788,788,,272,,272,272,272","272,272,272,272,,,,,,272,272,272,272,272,272,272,,,272,,,,,,,272,,,272","272,272,272,272,272,272,272,,272,272,272,,272,272,272,272,272,,,,,,",",,,,,,,,,,,,,272,,,272,,,272,272,,,272,,,,,,272,,,,,,,,,272,,,,,272","272,272,272,,272,272,272,272,,,,,272,272,,,,875,875,875,272,875,272","272,272,875,875,272,272,,875,,875,875,875,875,875,875,875,,,,,,875,875","875,875,875,875,875,,,875,,,,,,,875,,,875,875,875,875,875,875,875,875",",875,875,875,,875,875,875,875,875,,,,,,,,,,,,,,,,,,,,875,,,875,,,875","875,,,875,,,,,,875,,,,,,,,,875,,,,,875,875,875,875,,875,875,875,875",",,,,875,875,,,,306,306,306,875,306,875,875,875,306,306,875,875,,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,306,,,306,,306,,306,","306,,,306,,,,,,306,,,,,306,306,306,306,,306,306,306,306,,,,,306,306",",,,888,888,888,306,888,306,306,306,888,888,306,306,,888,,888,888,888","888,888,888,888,,,,,,888,888,888,888,888,888,888,,,888,,,,,,,888,,,888","888,888,888,888,888,888,888,,888,888,888,,888,888,888,888,888,,,,,,",",,,,,,,,,,,,,888,,,888,,,888,888,,,888,,,,,,888,,,,,,,,,888,,,,,888","888,888,888,,888,888,888,888,,,,,888,888,,,,889,889,889,888,889,888","888,888,889,889,888,888,,889,,889,889,889,889,889,889,889,,,,,,889,889","889,889,889,889,889,,,889,,,,,,,889,,,889,889,889,889,889,889,889,889",",889,889,889,,889,889,889,889,889,,,,,,,,,,,,,,,,,,,,889,,,889,,,889","889,,,889,,,,,,889,,,,,,,,,889,,,,,889,889,889,889,,889,889,889,889",",,,,889,889,,,,307,307,307,889,307,889,889,889,307,307,889,889,,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,,,307,,307,,307,","307,,,307,,,,,,307,,,,,307,307,307,307,,307,307,307,307,,,,,307,307",",,,315,315,315,307,315,307,307,307,315,315,307,307,,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,,315,,315,,315,,,315,,,,,","315,,,,,315,315,315,315,,315,315,315,315,,,,,315,315,315,,,271,271,271","315,271,315,315,315,271,271,315,315,,271,,271,271,271,271,271,271,271",",,,,,271,271,271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271","271,271,271,,271,271,271,,271,271,271,271,271,,,,,,,,,,,,,,,,,,,,271",",,271,,,271,271,,,271,,,,,,271,,,,,,,,,271,,,,,271,271,271,271,,271","271,271,271,,,,,271,271,,,,270,270,270,271,270,271,271,271,270,270,271","271,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270,270",",,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,,270","270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270",",,,,,,,,270,,,,,270,270,270,270,,270,270,270,270,,,,,270,270,,,,269","269,269,270,269,270,270,270,269,269,270,270,,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,269,269","269,,269,269,269,269,,,,,269,269,,,,322,322,322,269,322,269,269,269","322,322,269,269,,322,,322,322,322,322,322,322,322,,,,,,322,322,322,322","322,322,322,,,322,,,,,,,322,,,322,322,322,322,322,322,322,322,,322,322","322,,322,322,322,322,322,,,,,,,,,,,,,,,,,,,,322,,,322,,,322,322,,,322",",,,,,322,,,,,,,,,322,,,,,322,322,322,322,,322,322,322,322,,,,,322,322",",,,324,324,324,322,324,322,322,322,324,324,322,322,,324,,324,324,324","324,324,324,324,,,,,,324,324,324,324,324,324,324,,,324,,,,,,,324,,,324","324,324,324,324,324,324,324,,324,324,324,,324,324,324,324,324,,,,,,",",,,,,,,,,,,,,324,,,324,,,324,324,,,324,,,,,,324,,,,,,,,,324,,,,,324","324,324,324,,324,324,324,324,,,,,324,324,,,,327,327,327,324,327,324","324,324,327,327,324,324,,327,,327,327,327,327,327,327,327,,,,,,327,327","327,327,327,327,327,,,327,,,,,,,327,,,327,327,327,327,327,327,327,327",",327,327,327,,327,327,327,327,327,,,,,,,,,,,,,,,,,,,,327,,,327,,,327","327,,,327,,,,,,327,,,,,,,,,327,,,,,327,327,327,327,,327,327,327,327",",,,,327,327,,,,328,328,328,327,328,327,327,327,328,328,327,327,,328",",328,328,328,328,328,328,328,,,,,,328,328,328,328,328,328,328,,,328",",,,,,,328,,,328,328,328,328,328,328,328,328,,328,328,328,,328,328,328","328,328,,,,,,,,,,,,,,,,,,,,328,,,328,,,328,328,,,328,,,,,,328,,,,,,",",,328,,,,,328,328,328,328,,328,328,328,328,,,,,328,328,,,,268,268,268","328,268,328,328,328,268,268,328,328,,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,268,268,268,,268","268,268,268,,,,,268,268,,,,267,267,267,268,267,268,268,268,267,267,268","268,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267,267,267,267",",,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267,267,,267","267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267,,,,,,267",",,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267,,,,266","266,266,267,266,267,267,267,266,266,267,267,,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,266,266","266,,266,266,266,266,,,,,266,266,,,,917,917,917,266,917,266,266,266","917,917,266,266,,917,,917,917,917,917,917,917,917,,,,,,917,917,917,917","917,917,917,,,917,,,,,,,917,,,917,917,917,917,917,917,917,917,,917,917","917,,917,917,917,917,917,,,,,,,,,,,,,,,,,,,,917,,,917,,,917,917,,,917",",,,,,917,,,,,,,,,917,,,,,917,917,917,917,,917,917,917,917,,,,,917,917",",,,918,918,918,917,918,917,917,917,918,918,917,917,,918,,918,918,918","918,918,918,918,,,,,,918,918,918,918,918,918,918,,,918,,,,,,,918,,,918","918,918,918,918,918,918,918,,918,918,918,,918,918,918,918,918,,,,,,",",,,,,,,,,,,,,918,,,918,,,918,918,,,918,,,,,,918,,,,,,,,,918,,,,,918","918,918,918,,918,918,918,918,,,,,918,918,,,,919,919,919,918,919,918","918,918,919,919,918,918,,919,,919,919,919,919,919,919,919,,,,,,919,919","919,919,919,919,919,,,919,,,,,,,919,,,919,919,919,919,919,919,919,919",",919,919,919,,919,919,919,919,919,,,,,,,,,,,,,,,,,,,,919,,,919,,,919","919,,,919,,,,,,919,,,,,,,,,919,,,,,919,919,919,919,,919,919,919,919",",,,,919,919,,,,497,497,497,919,497,919,919,919,497,497,919,919,,497",",497,497,497,497,497,497,497,,,,,,497,497,497,497,497,497,497,,,497",",,,,,,497,,,497,497,497,497,497,497,497,497,,497,497,497,,497,497,497","497,497,,,,,,,,,,,,,,,,,,,,497,,,497,,,497,497,,,497,,,,,,497,,,,,,",",,497,,,,,497,497,497,497,,497,497,497,497,,,,,497,497,,,,,,,497,,497","497,497,,,497,497,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,133,133,133",",,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,133,,,,133,,,,,,,,,133",",,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,132,132,132,133","132,133,133,133,132,132,133,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,,,,,,,,,132,,,,,132,132,132,132,,132","132,132,132,,,,,132,132,,,,131,131,131,132,131,132,132,132,131,131,132","132,,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,,,,,,131",",,,,,,,,131,,,,,131,131,131,131,,131,131,131,131,,,,,131,131,,,,130","130,130,131,130,131,131,131,130,130,131,131,,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,,,,,,,,,130,,,,,130,130,130","130,,130,130,130,130,,,,,130,130,,,,1149,1149,1149,130,1149,130,130","130,1149,1149,130,130,,1149,,1149,1149,1149,1149,1149,1149,1149,,,,",",1149,1149,1149,1149,1149,1149,1149,,,1149,,,,,,,1149,,,1149,1149,1149","1149,1149,1149,1149,1149,,1149,1149,1149,,1149,1149,1149,1149,1149,",",,,,,,,,,,,,,,,,,,1149,,,1149,,,1149,1149,,,1149,,,,,,1149,,,,,,,,,1149",",,,,1149,1149,1149,1149,,1149,1149,1149,1149,,,,,1149,1149,,,,1150,1150","1150,1149,1150,1149,1149,1149,1150,1150,1149,1149,,1150,,1150,1150,1150","1150,1150,1150,1150,,,,,,1150,1150,1150,1150,1150,1150,1150,,,1150,",",,,,,1150,,,1150,1150,1150,1150,1150,1150,1150,1150,,1150,1150,1150",",1150,1150,1150,1150,1150,,,,,,,,,,,,,,,,,,,,1150,,,1150,,,1150,1150",",,1150,,,,,,1150,,,,,,,,,1150,,,,,1150,1150,1150,1150,,1150,1150,1150","1150,,,,,1150,1150,,,,52,52,52,1150,52,1150,1150,1150,52,52,1150,1150",",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,,,,,,52,,,,,,,,,52,,,,,52,52,52,52,,52,52,52,52",",,,,52,52,,,,129,129,129,52,129,52,52,52,129,129,52,52,,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,,,,,,,,,129,,",",,129,129,129,129,,129,129,129,129,,,,,129,129,,,,,,,129,,129,129,129",",,129,129,124,124,124,124,124,,,,124,124,,,,124,,124,124,124,124,124","124,124,,,,,,124,124,124,124,124,124,124,,,124,,,,,,124,124,124,124","124,124,124,124,124,124,124,124,,124,124,124,,124,124,124,124,124,,",",,,,,,,,,,,,,,,,,124,,,124,,,124,124,,,124,,124,,,,124,,,,,,,,,124,",",,,124,124,124,124,,124,124,124,124,,,,,124,124,,,,,,124,124,,124,124","124,,,124,124,1162,1162,1162,,1162,,,,1162,1162,,,,1162,,1162,1162,1162","1162,1162,1162,1162,,,,,,1162,1162,1162,1162,1162,1162,1162,,,1162,",",,,,,1162,,,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162",",1162,1162,1162,1162,1162,,,,,,,,,,,,,,,,,,,,1162,,,1162,,,1162,1162",",,1162,,1162,,1162,,1162,,,1162,,,,,,1162,,,,,1162,1162,1162,1162,,1162","1162,1162,1162,,,,,1162,1162,,,,471,471,471,1162,471,1162,1162,1162","471,471,1162,1162,,471,,471,471,471,471,471,471,471,,,,,,471,471,471","471,471,471,471,,,471,,,,,,,471,,,471,471,471,471,471,471,471,471,,471","471,471,,471,471,471,471,471,,,,,,,,,,,,,,,,,,,,471,,,471,,,471,471",",,471,,,,,,471,,,,,,,,,471,,,,,471,471,471,471,,471,471,471,471,,,,","471,471,,,,277,277,277,471,277,471,471,471,277,277,471,471,,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,277,277,277,,277,277,277,277,,,,,277,277,,,,,,,277,,277,277","277,470,,277,277,,,,470,470,470,,,470,470,470,,470,,,,,,,,470,470,470","470,470,,,,,,,,470,470,,470,470,470,470,470,,,,,,,,,,,,,,,,,,,,,,,470","470,470,470,470,470,470,470,470,470,470,470,470,470,,,470,470,470,,","470,,,470,,,470,470,,470,,470,,470,,470,470,,470,470,470,470,470,,470","470,470,,,,,,,,,,,,,,470,,,470,470,470,470,,470,469,470,,,,,470,469","469,469,,,469,469,469,,469,,,,,,,,469,469,469,469,469,,,,951,951,951","951,469,469,,469,469,469,469,469,,,,,951,951,951,,,,,,,,,,,951,951,",",951,469,469,469,469,469,469,469,469,469,469,469,469,469,469,,,469,469","469,,,469,,,469,,,469,469,,469,,469,,469,,469,469,,469,469,469,469,469",",469,469,469,,951,951,951,951,,951,951,951,951,,,,469,951,951,469,469","469,469,,469,951,469,951,951,951,460,469,7,7,7,7,7,460,460,460,7,7,460","460,460,7,460,7,7,7,7,7,7,7,460,460,460,460,,7,7,7,7,7,7,7,460,460,7","460,460,460,460,460,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7,7,7,7,7,460,460","460,460,460,460,460,460,460,460,460,460,460,460,,,460,460,460,7,,460","7,460,460,7,7,460,460,7,460,7,460,,460,7,460,460,,460,460,460,460,460","7,460,460,460,,7,7,7,7,,7,7,7,7,,,,460,7,7,460,460,,460,,460,7,,7,7","7,,460,7,7,75,75,75,,75,,,,75,75,,,,75,,75,75,75,75,75,75,75,,,,,,75","75,75,75,75,75,75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75",",75,75,75,75,75,,,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,",",,,,75,,,,,75,75,75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75","64,,75,75,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64,64,,,,,,,,64,64",",64,64,64,64,64,,,,,,,,,,,,,,,,,,,,,,,64,64,64,64,64,64,64,64,64,64","64,64,64,64,,,64,64,64,,,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64","64,64,,64,,64,,,,,,,,,,,,,,64,,,64,64,64,64,,64,,64,,278,278,278,64","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,,,,,,278,,,,,,,,,278,,,,,278,278,278,278,,278,278,278,278,,,,","278,278,,,,221,221,221,278,221,278,278,278,221,221,278,278,,221,,221","221,221,221,221,221,221,,,,,,221,221,221,221,221,221,221,,,221,,,,,",",221,,,221,221,221,221,221,221,221,221,,221,221,221,,221,221,221,221","221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,,,,,221,,,,,,,,,221",",,,,221,221,221,221,,221,221,221,221,,,,,221,221,,,,220,220,220,221","220,221,221,221,220,220,221,221,,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,,,220,220,,,220,,220,,,,220,,,,,,,,,220,,,,,220,220,220,220,,220","220,220,220,,,,,220,220,,,,800,800,800,220,800,220,220,220,800,800,220","220,,800,,800,800,800,800,800,800,800,,,,,,800,800,800,800,800,800,800",",,800,,,,,,,800,,,800,800,800,800,800,800,800,800,,800,800,800,,800","800,800,800,800,,,,,,,,,,,,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,800",",,,,,,,,800,,,,,800,800,800,800,,800,800,800,800,,,,,800,800,,,,797","797,797,800,797,800,800,800,797,797,800,800,,797,,797,797,797,797,797","797,797,,,,,,797,797,797,797,797,797,797,,,797,,,,,,,797,,,797,797,797","797,797,797,797,797,,797,797,797,,797,797,797,797,797,,,,,,,,,,,,,,",",,,,,797,,,797,,,797,797,,,797,,,,,,797,,,,,,,,,797,,,,,797,797,797","797,,797,797,797,797,,,,,797,797,,,,386,386,386,797,386,797,797,797","386,386,797,797,,386,,386,386,386,386,386,386,386,,,,,,386,386,386,386","386,386,386,,,386,,,,,,,386,,,386,386,386,386,386,386,386,386,,386,386","386,,386,386,386,386,386,,,,,,,,,,,,,,,,,,,,386,,,386,,,386,386,,,386",",,,,,386,,,,,,,,,386,,,,,386,386,386,386,,386,386,386,386,,,,,386,386",",,,524,524,524,386,524,386,386,386,524,524,386,386,,524,,524,524,524","524,524,524,524,,,,,,524,524,524,524,524,524,524,,,524,,,,,,,524,,,524","524,524,524,524,524,524,524,,524,524,524,,524,524,524,524,524,,,,,,",",,,,,,,,,,,,,524,,,524,,,524,524,,,524,,,,,,524,,,,,,,,,524,,,,,524","524,524,524,,524,524,524,524,,,,,524,524,,,,523,523,523,524,523,524","524,524,523,523,524,524,,523,,523,523,523,523,523,523,523,,,,,,523,523","523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523,523,523,523",",523,523,523,,523,523,523,523,523,,,,,,,,,,,,,,,,,,,,523,,,523,,,523","523,,,523,,,,,,523,,,,,,,,,523,,,,,523,523,523,523,,523,523,523,523",",,,,523,523,,,,522,522,522,523,522,523,523,523,522,522,523,523,,522",",522,522,522,522,522,522,522,,,,,,522,522,522,522,522,522,522,,,522",",,,,,,522,,,522,522,522,522,522,522,522,522,,522,522,522,,522,522,522","522,522,,,,,,,,,,,,,,,,,,,,522,,,522,,,522,522,,,522,,,,,,522,,,,,,",",,522,,,,,522,522,522,522,,522,522,522,522,,,,,522,522,,,,520,520,520","522,520,522,522,522,520,520,522,522,,520,,520,520,520,520,520,520,520",",,,,,520,520,520,520,520,520,520,,,520,,,,,,,520,,,520,520,520,520,520","520,520,520,520,520,520,520,,520,520,520,520,520,,,,,,,,,,,,,,,,,,,","520,,,520,,,520,520,,,520,,520,,520,,520,,,520,,,,,,520,,,,,520,520","520,520,,520,520,520,520,,,,,520,520,,,,219,219,219,520,219,520,520","520,219,219,520,520,,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,,,219,219",",,219,,219,,,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,",",,,219,219,,,,510,510,510,219,510,219,219,219,510,510,219,219,,510,","510,510,510,510,510,510,510,,,,,,510,510,510,510,510,510,510,,,510,",",,,,,510,,,510,510,510,510,510,510,510,510,,510,510,510,,510,510,510","510,510,,,,,,,,,,,,,,,,,,,,510,,,510,,,510,510,,,510,,,,,,510,,,,,,",",,510,,,,,510,510,510,510,,510,510,510,510,,,,,510,510,,,,1017,1017","1017,510,1017,510,510,510,1017,1017,510,510,,1017,,1017,1017,1017,1017","1017,1017,1017,,,,,,1017,1017,1017,1017,1017,1017,1017,,,1017,,,,,,","1017,,,1017,1017,1017,1017,1017,1017,1017,1017,,1017,1017,1017,,1017","1017,,,1017,,,,,,,,,,,,,,,,,,,,1017,,,1017,,,1017,1017,,,1017,,,,,,",",,,,,,,,,,,,,1017,1017,1017,1017,,1017,1017,1017,1017,,,,,1017,1017",",,,1081,1081,1081,1017,1081,1017,1017,1017,1081,1081,,,,1081,,1081,1081","1081,1081,1081,1081,1081,,,,,,1081,1081,1081,1081,1081,1081,1081,,,1081",",,,,,,1081,,,1081,1081,1081,1081,1081,1081,1081,1081,,1081,1081,1081",",1081,1081,,,1081,,,,,,,,,,,,,,,,,,,,1081,,,1081,,,1081,1081,,,1081",",,,,,,,,,,,,,,,,,,,1081,1081,1081,1081,,1081,1081,1081,1081,,,,,1081","1081,,,,341,341,341,1081,341,1081,1081,1081,341,341,,,,341,,341,341","341,341,341,341,341,,,,,,341,341,341,341,341,341,341,,,341,,,,,,,341",",,341,341,341,341,341,341,341,341,,341,341,341,,341,341,,,341,,,,,,",",,,,,,,,,,,,,341,,,341,,,341,341,,,341,,,1214,,1214,1214,1214,1214,1214",",,,,,,,,1214,,341,341,341,341,,341,341,341,341,,,,,341,341,,,,341,,1214","341,,341,341,341,588,588,588,,588,1214,1214,,588,588,1214,,,588,,588","588,588,588,588,588,588,,,,,,588,588,588,588,588,588,588,,,588,,,,,",",588,,,588,588,588,588,588,588,588,588,,588,588,588,,588,588,,,588,",",,,,,,,,,,,,,,,,,,588,,,588,,,588,588,,,588,,,,,,,,,,,,,,,,,,,,588,588","588,588,,588,588,588,588,,,,,588,588,,,,40,40,40,588,40,588,588,588","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,,,1210,,1210,1210,1210,1210,1210,,,,,,,,,1210",",40,40,40,40,,40,40,40,40,,,,,40,40,,,,40,,1210,40,,40,40,40,803,803","803,,803,1210,1210,,803,803,1210,,,803,,803,803,803,803,803,803,803",",,,,,803,803,803,803,803,803,803,,,803,,,,,,,803,,,803,803,803,803,803","803,803,803,,803,803,803,,803,803,,,803,,,,,,,,,,,,,,,,,,,,803,,,803",",,803,803,,,803,,,,,,,,,,,,,,,,,,,,803,803,803,803,,803,803,803,803",",,,,803,803,,,,360,360,360,803,360,803,803,803,360,360,,,,360,,360,360","360,360,360,360,360,,,,,,360,360,360,360,360,360,360,,,360,,,,,,,360",",,360,360,360,360,360,360,360,360,,360,360,360,,360,360,,,360,,,,,,",",,,,,,,,,,,,,360,,,360,,,360,360,,,360,,,,,,,,,,,,,,,,,,,,360,360,360","360,,360,360,360,360,,,,,360,360,,,,1144,1144,1144,360,1144,360,360","360,1144,1144,,,,1144,,1144,1144,1144,1144,1144,1144,1144,,,,,,1144","1144,1144,1144,1144,1144,1144,,,1144,,,,,,,1144,,,1144,1144,1144,1144","1144,1144,1144,1144,,1144,1144,1144,,1144,1144,,,1144,,,,,,,,,,,,,,",",,,,,1144,,,1144,,,1144,1144,,,1144,,,,,,,,,,,,,,,,,,,,1144,1144,1144","1144,,1144,1144,1144,1144,,,,,1144,1144,,,,77,77,77,1144,77,1144,1144","1144,77,77,,,,77,,77,77,77,77,77,77,77,,,,,,77,77,77,77,77,77,77,,,77",",,,,,,77,,,77,77,77,77,77,77,77,77,,77,77,77,,77,77,,,77,,,,,,,,,,,",",,,,,77,,,77,,,77,,,77,77,,,77,,,,,,,,,,,,,,,,,,,,77,77,77,77,,77,77","77,77,,,,,77,77,,,,814,814,814,77,814,77,77,77,814,814,,,,814,,814,814","814,814,814,814,814,,,,,,814,814,814,814,814,814,814,,,814,,,,,,,814",",,814,814,814,814,814,814,814,814,,814,814,814,,814,814,,,814,,,,,,",",,,,,,,,,,,,,814,,,814,,,814,814,,,814,,,,,,,,,,,,,,,,,,,,814,814,814","814,,814,814,814,814,,,,,814,814,,,,597,597,597,814,597,814,814,814","597,597,,,,597,,597,597,597,597,597,597,597,,,,,,597,597,597,597,597","597,597,,,597,,,,,,,597,,,597,597,597,597,597,597,597,597,,597,597,597",",597,597,,,597,,,,,,,,,,,,,,,,,,,,597,,,597,,,597,597,,,597,,,,,,,,",",,,,,,,,,,,597,597,597,597,,597,597,597,597,,,,,597,597,,,,39,39,39","597,39,597,597,597,39,39,,,,39,,39,39,39,39,39,39,39,,,,,,39,39,39,39","39,39,39,,,39,,,,,,,39,,,39,39,39,39,39,39,39,39,,39,39,39,,39,39,,","39,,,,,,,,,,,,,,,,,,,,39,,,39,,,39,39,,,39,,39,,,,,,,,,,,,,,,,,,39,39","39,39,,39,39,39,39,,,,,39,39,,,,76,76,76,39,76,39,39,39,76,76,,,,76",",76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76,,,76,,,,,,,76,,,76,76","76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,,,,,,,,,,,,,,,76,,,76,",",76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,,76,76,76,76,,,,,76,76",",,,78,78,78,76,78,76,76,76,78,78,,,,78,,78,78,78,78,78,78,78,,,,,,78","78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78,78",",78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,,,,",",,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,,,,78,,78,78,78,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,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,10,10,10,10,10,10,10,10,,,10,10,,,,,,,,,,,,,,10,427","427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427,427","427,427,427,427,427,427,,,,427,427,427,427,427,427,427,427,427,427,",",,,,427,427,427,427,427,427,427,427,427,,,427,,,,,,,,427,427,,427,427","427,427,427,427,427,,,427,427,,,,427,427,427,427,,,,,,,,,,,,,,427,427",",427,427,427,427,427,427,427,427,427,427,427,427,,,427,427,,,,,,,,,",",,,,427,667,667,667,667,667,667,667,667,667,667,667,667,667,667,667","667,667,667,667,667,667,667,667,667,,,,667,667,667,667,667,667,667,667","667,667,,,,,,667,667,667,667,667,667,667,667,667,,,667,,,,,,,,667,667",",667,667,667,667,667,667,667,,,667,667,,,,667,667,667,667,,,,,,,,,,",",,,667,667,,667,667,667,667,667,667,667,667,667,667,667,667,,,667,667",",,,,,,,,,,,,,667,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,,,,,,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,11,11,11,11,11",",,11,11,,,,,,,,,,,,,,11,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26","26,26,26,26,26,26,26,26,26,,,,26,26,26,26,26,26,26,26,26,26,,,,,,26","26,26,26,26,26,26,26,26,26,26,26,,26,,,,,,26,26,,26,26,26,26,26,26,26",",,26,26,,,,26,26,26,26,,,,,,26,,,,,,,,26,26,,26,26,26,26,26,26,26,26","26,26,26,26,,,26,753,753,753,753,,,,,,1026,,1026,1026,1026,1026,1026","753,753,753,753,,,,753,1026,,,,,753,753,,,753,,,,,,,,,,,,,1026,,,,,",",753,,,753,1026,1026,,753,,1026,753,,,,,,,,,,,,,,,,753,,,,753,753,753","753,,753,753,753,753,,,,,753,753,1205,1205,1205,1205,1026,,753,,753","753,753,,,753,753,,1205,1205,1205,1205,,,1208,1205,1208,1208,1208,1208","1208,1205,1205,,,1205,,,,1208,,,,,,,,,,,,,,,,1205,,,1205,,,1208,1205",",,1205,,,,,1208,1208,1208,1208,,,,1208,,,,1205,,,,1205,1205,1205,1205",",1205,1205,1205,1205,,,,,1205,1205,1129,1129,1129,1129,,,1205,,1205","1205,1205,,,1205,1205,,1129,1129,1129,1129,,,1138,1129,1138,1138,1138","1138,1138,1129,1129,,,1129,,,,1138,,,,,,,,,,,,,,,,1129,,,1129,,,1138","1129,,,1129,,1129,,,1138,1138,1138,1138,,,,1138,,,,1129,,,,1129,1129","1129,1129,,1129,1129,1129,1129,,,,,1129,1129,989,989,989,989,,,1129",",1129,1129,1129,,,1129,1129,,989,989,989,989,,,,989,989,,,,,989,989",",,989,989,,,,,,,,,,,,,,,,,,,989,,,989,,,,989,,,989,,989,,,,,,,989,,",",,,,989,,,,989,989,989,989,,989,989,989,989,,,,,989,989,942,942,942","942,,,989,,989,989,989,,,989,989,,942,942,942,942,,,1135,942,1135,1135","1135,1135,1135,942,942,,,942,,,,1135,,,,,,,,,,,,,,,,942,,,942,,,1135","942,,,942,,,,,1135,1135,1135,1135,,,,1135,,,,942,,,,942,942,942,942",",942,942,942,942,,,,,942,942,924,924,924,924,,,942,,942,942,942,,,942","942,,924,924,924,924,,,1231,924,1231,1231,1231,1231,1231,924,924,,,924",",,,1231,,,,,,,,,,,,,,,,924,,,924,,,1231,924,,,924,,924,,,,,1231,1231",",,,1231,,,,924,,,,924,924,924,924,,924,924,924,924,,,,,924,924,745,745","745,745,,,924,,924,924,924,,,924,924,,745,745,745,745,,,,745,,,,,,745","745,,,745,,,,,,,,,,,,,,,,,,,,745,,,745,,,,745,,,745,,745,,,,,,,1166",",1166,1166,1166,1166,1166,745,,,,745,745,745,745,1166,745,745,745,745",",,,,745,745,745,943,943,943,943,,745,,745,745,745,1166,,745,745,,,943","943,943,943,,1166,1166,943,,,1166,,,943,943,,,943,,,,,,,,,,,,,,,,,,",",943,,,943,,,,943,,,943,,,1166,,,,,,,,,,,,,943,,,,943,943,943,943,,943","943,943,943,,,,,943,943,930,930,930,930,,,943,,943,943,943,,,943,943",",930,930,930,930,,,,930,930,,,,,930,930,,,930,930,,,,,,,,,,,,,,,,,,","930,,,930,,,,930,,,930,,930,,,,,,,930,,,,,,,930,,,,930,930,930,930,","930,930,930,930,,,,,930,930,929,929,929,929,,,930,,930,930,930,,,930","930,,929,929,929,929,,,,929,929,,,,,929,929,,,929,929,,,,,,,,,,,,,,",",,,,929,,,929,,,,929,,,929,,929,,,,,,,929,,,,,,,929,,,,929,929,929,929",",929,929,929,929,,,,,929,929,,,,,,,929,,929,929,929,,,929,929,780,780","780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780","780,780,780,780,780,,,,780,780,780,780,780,780,780,780,780,780,,,,,","780,780,780,780,780,780,780,780,780,,,780,,,,,,,,780,780,,780,780,780","780,780,780,780,,,780,780,,,,780,780,780,780,,,,,,,,,,,,,,780,780,,780","780,780,780,780,780,780,780,780,780,780,780,,,780,528,528,528,528,,","1212,,1212,1212,1212,1212,1212,,,,528,528,528,528,,1212,,528,528,,,",",528,528,,,528,528,,,,,,,,,1212,,,,,,,,,,528,1212,1212,528,,,1212,528",",,528,,528,,,,,,,528,,,,,,,528,,,,528,528,528,528,,528,528,528,528,",",,,528,528,527,527,527,527,,,528,,528,528,528,,,528,528,,527,527,527","527,,,,527,527,,,,,527,527,,,527,527,,,,,,,,,,,,,,,,,,,527,,,527,,,","527,,,527,,527,,,,,,,527,,,,,,,527,,,,527,527,527,527,,527,527,527,527",",,,,527,527,1173,1173,1173,1173,,,527,,527,527,527,,,527,527,,1173,1173","1173,1173,,,,1173,,,,,,1173,1173,,,1173,,,,,,,,,,,,,,,,,,,,1173,,,1173",",,,1173,,,1173,,,,,,,,,,,,,,,,1173,,,,1173,1173,1173,1173,,1173,1173","1173,1173,,,,,1173,1173,1116,1116,1116,1116,,,1173,,1173,1173,1173,",",1173,1173,,1116,1116,1116,1116,,,,1116,,,,,,1116,1116,,,1116,,,,,,",",,,,,,,,,,,,,1116,,,1116,,,,1116,,,1116,,,,,,,,,,,,,,,,1116,,,,1116","1116,1116,1116,,1116,1116,1116,1116,,,,,1116,1116,926,926,926,926,,","1116,,1116,1116,1116,,,1116,1116,,926,926,926,926,,,,926,,,,,,926,926",",,926,,,,,,,,,,,,,,,,,,,,926,,,926,,,,926,,,926,,,,,,,,,,,,,,,,926,",",,926,926,926,926,,926,926,926,926,,,,,926,926,1125,1125,1125,1125,",",926,,926,926,926,,,926,926,,1125,1125,1125,1125,,,,1125,,,,,,1125,1125",",,1125,,,,,,,,,,,,,,,,,,,,1125,,,1125,,,,1125,,,1125,,,,,,,,,,,,,,,","1125,,,,1125,1125,1125,1125,,1125,1125,1125,1125,,,,,1125,1125,936,936","936,936,,,1125,,1125,1125,1125,,,1125,1125,,936,936,936,936,,,,936,",",,,,936,936,,,936,,,,,,,,763,763,763,763,,,,,,,,,936,,,936,763,763,763","936,,,936,,936,,,,,763,763,,,763,,,,,936,,,,936,936,936,936,,936,936","936,936,,,,,936,936,,,,,,,936,,936,936,936,,,936,936,233,,233,233,233","233,233,,,,,763,763,763,763,233,763,763,763,763,,,,,763,763,950,950","950,950,,,763,,763,763,763,233,,,,,950,950,950,,233,233,233,233,,,,233",",950,950,,,950,,,,,,,,,,,,705,,705,705,705,705,705,,,,,,,,,705,,,,,","234,233,234,234,234,234,234,,,,,,,,,234,705,950,950,950,950,,950,950","950,950,,705,705,,950,950,705,,,,,234,950,,950,950,950,,,,234,234,234","234,,,409,234,409,409,409,409,409,,1020,,1020,1020,1020,1020,1020,409",",,,,705,,,1020,,644,,644,644,644,644,644,,,,,,409,409,,644,234,,,,1020","409,409,409,409,,,,409,1020,1020,1020,1020,,,,1020,644,,,,,,,,,644,644","644,644,,,1024,644,1024,1024,1024,1024,1024,,,,,,,,,1024,409,,,,,,,","1020,,,,,,,,,,,,,1024,,,,644,,,,,,,1024,1024,675,675,,1024,675,,,,,",",,675,675,,675,675,675,675,675,675,675,,,675,675,,,,675,675,675,675",",,,,,675,,,,,1024,,,675,675,,675,675,675,675,675,675,675,675,675,675","675,675,636,636,675,,636,,,,,,,,636,636,,636,636,636,636,636,636,636",",,636,636,,,,636,636,636,636,,,,,,636,,,,,,,,636,636,,636,636,636,636","636,636,636,636,636,636,636,636,629,629,636,,629,,,,,,,,629,629,,629","629,629,629,629,629,629,,,629,629,,,,629,629,629,629,,,,,,629,,,,,,",",629,629,,629,629,629,629,629,629,629,629,629,629,629,629,226,226,629",",226,,,,,,,,226,226,,226,226,226,226,226,226,226,,,226,226,,,,226,226","226,226,,,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226","226,226,226,602,602,226,,602,,,,,,,,602,602,,602,602,602,602,602,602","602,,,602,602,,,,602,602,602,602,,,,,,602,,,,,,,,602,602,,602,602,602","602,602,602,602,602,602,602,602,602,637,637,602,,637,,,,,,,,637,637",",637,637,637,637,637,637,637,,,637,637,,,,637,637,637,637,,,,,,637,",",,,,,,637,637,,637,637,637,637,637,637,637,637,637,637,637,637,225,225","637,,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,302,302,225,,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,519,519,302,,519,,,,,,,,519,519",",519,519,519,519,519,519,519,,,519,519,,,,519,519,519,519,,,,,,519,",",,,,,,519,519,,519,519,519,519,519,519,519,519,519,519,519,519,518,518","519,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,,,518,518,,,,518","518,518,518,,,,,,518,,,,,,,,518,518,,518,518,518,518,518,518,518,518","518,518,518,518,591,591,518,,591,,,,,,,,591,591,,591,591,591,591,591","591,591,,,591,591,,,,591,591,591,591,,,,,,591,,,,,,,,591,591,,591,591","591,591,591,591,591,591,591,591,591,591,592,592,591,,592,,,,,,,,592","592,,592,592,592,592,592,592,592,,,592,592,,,,592,592,592,592,,,,,,592",",,,,,,,592,592,,592,592,592,592,592,592,592,592,592,592,592,592,1163","1163,592,,1163,,,,,,,,1163,1163,,1163,1163,1163,1163,1163,1163,1163",",,1163,1163,,,,1163,1163,1163,1163,,,,,,1163,,,,,,,,1163,1163,,1163","1163,1163,1163,1163,1163,1163,1163,1163,1163,1163,1163,674,674,1163",",674,,,,,,,,674,674,,674,674,674,674,674,674,674,,,674,674,,,,674,674","674,674,,,,,,674,,,,,,,,674,674,,674,674,674,674,674,674,674,674,674","674,674,674,1164,1164,674,,1164,,,,,,,,1164,1164,,1164,1164,1164,1164","1164,1164,1164,,,1164,1164,,,,1164,1164,1164,1164,,,,,,1164,,,,,,,,1164","1164,,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,630","630,1164,,630,,,,,,,,630,630,,630,630,630,630,630,630,630,,,630,630",",,,630,630,630,630,,,,,,630,,,,,,,,630,630,,630,630,630,630,630,630","630,630,630,630,630,630,1188,1188,630,,1188,,,,,,,,1188,1188,,1188,1188","1188,1188,1188,1188,1188,,,1188,1188,,,,1188,1188,1188,1188,,,,,,1188",",,,,,,,1188,1188,,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188","1188,1188,601,601,1188,,601,,,,,,,,601,601,,601,601,601,601,601,601","601,,,601,601,,,,601,601,601,601,,,,,,601,,,,,,,,601,601,,601,601,601","601,601,601,601,601,601,601,601,601,,,601"],racc_action_check=arr=$$$("Array").$new(28717,nil),idx=0,$send(clist,"each",[],(function(str){return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(function(i){var $writer=nil;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),idx=$rb_plus(idx,1)}),1)}),1),racc_action_pointer=[nil,1550,2590,30,nil,485,nil,21057,1279,-15,24908,25292,63,nil,111,130,888,195,878,334,213,587,nil,-72,16018,1438,25420,260,nil,586,nil,10,7680,8479,8613,9947,10209,nil,1870,24507,23582,nil,199,495,356,292,12722,13115,252,13377,14041,977,19960,226,694,nil,nil,nil,nil,nil,nil,nil,nil,nil,21341,nil,15494,15351,14696,170,nil,14434,14303,nil,nil,21200,24638,24114,24769,nil,nil,nil,nil,nil,nil,nil,nil,nil,877,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,610,nil,nil,722,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,20234,nil,nil,nil,nil,20091,19567,19436,19305,19174,nil,4318,nil,-26,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,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,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,266,nil,4462,22788,21740,21609,14172,13910,13779,27931,27748,nil,nil,264,2734,305,nil,27294,27386,317,1294,12043,11912,11257,nil,nil,1133,138,140,432,174,389,452,nil,10078,131,191,3022,455,nil,nil,7277,7146,7015,6753,6491,6360,6229,6098,5967,18507,18376,18245,17590,17459,17328,16411,16149,15756,15220,15089,20639,21478,nil,nil,nil,nil,13648,nil,nil,583,548,381,-62,413,376,696,695,584,585,nil,nil,nil,15625,nil,nil,27992,nil,nil,484,16673,17066,nil,nil,nil,nil,nil,nil,nil,17197,nil,2446,nil,455,459,nil,17721,512,17852,nil,nil,17983,18114,nil,nil,-73,nil,5836,1711,509,484,1726,513,564,525,23312,2878,999,1139,614,617,582,nil,610,571,253,616,644,nil,nil,nil,650,171,611,23852,nil,471,1022,3742,3886,687,nil,691,12591,nil,677,2302,1567,638,nil,541,621,676,662,651,690,nil,870,35,36,22133,1006,4894,459,766,651,25,39,730,747,4,793,nil,nil,1141,1285,370,nil,692,nil,714,14827,nil,27438,nil,531,386,291,288,421,142,191,396,nil,nil,nil,nil,nil,nil,nil,713,25036,nil,nil,nil,nil,726,nil,798,717,14565,725,nil,nil,715,nil,690,-60,819,nil,nil,1582,nil,nil,nil,nil,nil,1870,735,nil,740,749,217,251,21057,nil,nil,nil,0,861,795,nil,nil,20916,20780,20508,880,882,nil,nil,769,775,780,nil,nil,785,787,809,nil,nil,nil,nil,nil,nil,nil,nil,nil,801,1280,nil,nil,19031,nil,nil,nil,1,nil,nil,nil,899,nil,nil,901,579,22919,951,nil,nil,nil,-26,nil,885,28114,28053,22657,-85,22526,22395,22264,835,853,26710,26612,3454,5300,814,855,936,938,947,952,5693,5431,5562,5169,5038,4894,4750,4606,4462,3482,3568,4318,4174,2590,4030,nil,154,nil,13518,nil,nil,nil,nil,13246,889,897,901,nil,nil,nil,902,nil,nil,12984,nil,12853,nil,12460,nil,219,nil,nil,nil,12317,1438,nil,904,909,nil,nil,910,23451,916,12174,28175,28236,995,958,nil,nil,24376,929,nil,11781,28602,27809,11650,3598,11388,nil,1066,947,990,nil,11126,nil,nil,10995,nil,nil,nil,4030,1075,nil,3742,25,1080,1084,37,1086,10733,10602,27687,28480,-5,nil,nil,472,nil,27626,27870,10340,nil,nil,191,2014,nil,27463,nil,nil,nil,nil,1249,nil,nil,nil,977,nil,nil,247,nil,286,nil,nil,966,nil,968,nil,nil,nil,25164,nil,9816,971,9673,9411,9280,28358,27565,9018,8875,733,1011,8744,8076,7945,7814,1017,nil,nil,7539,7408,1021,nil,1075,1726,1105,6884,nil,nil,1120,nil,nil,376,13512,nil,13482,nil,27365,nil,975,6622,nil,1310,nil,992,997,1057,1002,nil,nil,nil,nil,nil,nil,1090,2014,nil,nil,nil,307,332,222,361,1006,5693,5562,nil,120,nil,nil,nil,nil,1029,nil,nil,nil,555,26091,311,nil,1007,1092,1014,nil,nil,25503,nil,nil,375,nil,nil,586,nil,nil,861,27241,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,791,464,nil,nil,1016,26529,nil,1148,nil,1131,4,nil,nil,16280,nil,1046,1053,1154,nil,1041,nil,1088,22002,nil,nil,21871,nil,109,23721,1044,nil,1048,-1,233,1103,249,799,1117,1088,24245,nil,1156,2158,10864,nil,nil,nil,372,876,nil,1213,nil,nil,nil,nil,nil,1219,1220,nil,nil,6,1101,-21,-19,68,7,1150,997,989,nil,1103,4606,14958,nil,1227,22,1107,nil,nil,nil,nil,nil,4750,nil,nil,nil,nil,nil,nil,nil,nil,1106,15887,1110,387,385,110,500,nil,2302,16542,nil,1110,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,16804,16935,1236,nil,3886,1121,1169,nil,nil,1129,nil,1212,nil,nil,1131,1136,nil,1141,1143,nil,1144,nil,nil,nil,1150,1204,507,nil,nil,18638,18769,18900,5169,5300,5431,333,25993,1231,27004,-65,-35,26386,26288,480,-32,1154,1155,nil,27200,nil,1154,747,nil,1178,25895,26190,nil,929,1243,281,nil,nil,27339,20916,nil,nil,nil,nil,8207,nil,nil,nil,nil,nil,8338,nil,nil,1227,nil,nil,1237,1224,nil,nil,429,2446,nil,nil,nil,nil,1227,250,nil,137,nil,1357,nil,9149,1361,nil,nil,25797,9542,5038,-18,1362,nil,1363,369,1582,nil,nil,nil,nil,1238,1285,1249,1247,304,nil,nil,10471,3310,3166,nil,3166,nil,nil,-10,23050,nil,nil,27446,nil,497,nil,27515,nil,25493,nil,nil,nil,nil,1248,1250,3022,2878,11519,nil,1251,nil,nil,nil,nil,1257,1258,1260,1262,1263,1264,nil,nil,nil,1309,1267,-39,nil,1276,nil,nil,-66,1275,nil,nil,nil,nil,nil,nil,1323,2734,2158,nil,nil,1285,1286,nil,1287,1288,1291,nil,1316,1296,1283,23181,nil,nil,nil,nil,nil,8,nil,26,771,nil,40,nil,nil,nil,1420,3454,3310,1136,nil,nil,nil,1438,32,33,872,1376,34,nil,1302,1312,1313,1314,1348,3584,26906,nil,nil,nil,nil,nil,nil,nil,1317,27102,nil,145,nil,25699,nil,nil,815,nil,nil,25898,nil,nil,25702,nil,13537,nil,nil,1342,23983,763,1397,3598,nil,19698,19829,nil,nil,nil,nil,1341,1454,713,nil,nil,nil,1457,20377,28297,28419,69,26144,nil,nil,nil,nil,1332,1333,26808,1341,nil,nil,1342,nil,nil,1361,1365,1382,1385,nil,1386,nil,618,28541,nil,973,4174,nil,nil,nil,nil,nil,1195,nil,1392,76,79,109,136,1391,25601,1394,nil,25604,nil,23629,nil,26599,nil,23359,nil,nil,1439,1442,nil,362,nil,142,nil,1399,1401,1404,1409,nil,nil,nil,25996,nil,nil,nil,nil,-129,nil],racc_action_default=[-1,-745,-4,-745,-2,-730,-5,-745,-8,-745,-745,-745,-745,-31,-745,-745,-36,-745,-745,-639,-639,-311,-52,-732,-745,-61,-745,-69,-70,-71,-75,-287,-287,-287,-324,-352,-353,-87,-13,-91,-99,-101,-745,-626,-627,-745,-745,-745,-745,-745,-745,-239,-745,-732,-258,-302,-303,-304,-305,-306,-307,-308,-309,-310,-718,-313,-317,-744,-707,-333,-335,-745,-745,-63,-63,-730,-745,-745,-745,-354,-355,-357,-358,-359,-360,-419,-563,-564,-565,-566,-587,-569,-570,-589,-591,-574,-579,-583,-585,-601,-602,-603,-587,-605,-607,-608,-609,-610,-716,-615,-616,-717,-618,-619,-620,-621,-622,-623,-624,-625,-630,-631,1238,-3,-731,-740,-741,-742,-7,-745,-745,-745,-745,-745,-9,-4,-19,-745,-130,-131,-132,-133,-134,-135,-136,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-207,-208,-209,-210,-24,-137,-13,-745,-745,-745,-745,-745,-277,-745,-745,-728,-729,-745,-13,-638,-636,-662,-662,-745,-13,-745,-745,-732,-733,-56,-745,-626,-627,-745,-311,-745,-745,-245,-745,-639,-639,-13,-745,-57,-59,-222,-223,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-745,-259,-260,-261,-262,-745,-65,-66,-745,-130,-131,-170,-171,-172,-188,-193,-200,-203,-626,-627,-705,-745,-428,-430,-745,-726,-727,-76,-277,-745,-332,-434,-443,-445,-82,-440,-83,-732,-84,-265,-282,-292,-292,-286,-290,-293,-745,-587,-709,-713,-745,-85,-86,-730,-14,-745,-17,-745,-89,-13,-732,-745,-92,-95,-13,-107,-108,-745,-745,-115,-324,-327,-732,-745,-639,-639,-352,-353,-356,-441,-745,-97,-745,-103,-321,-745,-224,-225,-606,-233,-234,-745,-246,-251,-13,-315,-732,-266,-737,-737,-745,-745,-737,-745,-334,-62,-745,-745,-745,-13,-13,-730,-745,-731,-626,-627,-745,-745,-311,-745,-370,-371,-125,-126,-745,-128,-745,-311,-634,-745,-348,-662,-567,-745,-745,-745,-745,-745,-745,-745,-745,-6,-743,-25,-26,-27,-28,-29,-745,-745,-21,-22,-23,-138,-745,-32,-35,-298,-745,-745,-297,-33,-745,-37,-745,-311,-49,-51,-211,-270,-293,-53,-54,-38,-212,-270,-732,-278,-292,-292,-719,-720,-287,-438,-721,-722,-720,-719,-287,-437,-439,-721,-722,-745,-555,-745,-383,-384,-732,-704,-704,-644,-645,-647,-647,-647,-661,-663,-664,-665,-666,-667,-668,-669,-670,-671,-745,-673,-675,-677,-682,-684,-685,-688,-693,-695,-696,-698,-699,-700,-702,-745,-745,-745,-48,-219,-55,-732,-331,-745,-745,-745,-277,-321,-745,-745,-745,-745,-745,-745,-745,-220,-221,-226,-227,-228,-229,-230,-231,-235,-236,-237,-238,-240,-241,-242,-243,-244,-247,-248,-249,-250,-732,-263,-67,-732,-449,-287,-719,-720,-73,-77,-663,-732,-292,-732,-288,-447,-449,-732,-326,-283,-745,-284,-745,-289,-745,-294,-745,-712,-715,-12,-731,-16,-18,-732,-88,-319,-104,-93,-745,-732,-277,-745,-745,-114,-745,-638,-606,-745,-100,-105,-745,-745,-745,-745,-264,-745,-328,-745,-732,-745,-267,-739,-738,-269,-739,-322,-323,-708,-13,-361,-362,-13,-745,-745,-745,-745,-745,-745,-277,-745,-745,-321,-63,-125,-126,-127,-745,-745,-277,-344,-632,-745,-13,-420,-662,-423,-568,-588,-593,-745,-595,-571,-590,-745,-592,-573,-745,-576,-745,-578,-581,-745,-582,-745,-604,-10,-20,-745,-30,-745,-301,-745,-745,-277,-745,-745,-745,-745,-442,-745,-279,-281,-745,-745,-78,-276,-435,-745,-745,-80,-436,-44,-254,-744,-744,-350,-637,-745,-642,-643,-745,-745,-654,-745,-657,-745,-659,-745,-745,-372,-745,-374,-376,-379,-382,-732,-676,-686,-687,-697,-701,-640,-46,-256,-351,-330,-734,-719,-720,-719,-720,-732,-745,-745,-58,-463,-466,-467,-468,-469,-471,-473,-476,-477,-534,-732,-489,-492,-504,-508,-513,-515,-516,-519,-520,-587,-523,-525,-526,-527,-532,-533,-745,-745,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-745,-745,-553,-60,-745,-745,-706,-745,-450,-72,-431,-447,-272,-279,-274,-745,-409,-745,-325,-292,-291,-295,-745,-710,-711,-745,-15,-90,-745,-96,-102,-732,-719,-720,-275,-723,-113,-745,-98,-745,-218,-232,-252,-745,-314,-316,-318,-737,-744,-363,-744,-64,-364,-365,-338,-339,-745,-745,-455,-341,-745,-732,-719,-720,-723,-320,-13,-125,-126,-129,-732,-13,-745,-346,-745,-745,-732,-594,-597,-598,-599,-600,-13,-572,-575,-577,-580,-584,-586,-139,-34,-299,-745,-732,-719,-720,-720,-719,-50,-271,-745,-735,-292,-40,-214,-41,-215,-79,-42,-217,-43,-216,-81,-745,-745,-744,-368,-13,-556,-744,-557,-558,-704,-683,-688,-703,-646,-647,-647,-674,-647,-647,-694,-647,-671,-386,-689,-732,-745,-745,-381,-672,-745,-745,-745,-745,-745,-745,-442,-464,-745,-745,-474,-475,-745,-745,-745,-494,-732,-732,-488,-495,-501,-745,-745,-491,-745,-745,-745,-507,-514,-518,-745,-522,-524,-530,-531,-535,-536,-548,-549,-745,-611,-612,-613,-126,-551,-745,-68,-429,-409,-433,-432,-745,-732,-444,-410,-732,-13,-446,-285,-296,-714,-94,-442,-106,-732,-268,-745,-366,-745,-745,-340,-342,-745,-745,-13,-442,-745,-442,-745,-745,-13,-349,-421,-424,-426,-413,-745,-745,-300,-442,-39,-213,-280,-45,-255,-11,-13,-562,-369,-745,-745,-560,-641,-745,-650,-745,-652,-745,-655,-745,-658,-660,-373,-375,-377,-380,-47,-257,-745,-465,-504,-470,-472,-481,-485,-732,-732,-732,-732,-732,-732,-552,-486,-487,-511,-496,-499,-502,-732,-587,-736,-732,-505,-509,-512,-517,-521,-528,-529,-745,-253,-13,-74,-273,-704,-704,-390,-392,-392,-392,-408,-745,-732,-671,-679,-680,-691,-448,-329,-336,-745,-337,-745,-460,-295,-744,-343,-345,-633,-745,-13,-13,-745,-422,-596,-561,-13,-626,-627,-745,-745,-311,-559,-647,-647,-647,-647,-745,-745,-745,-478,-479,-480,-482,-483,-484,-503,-497,-745,-490,-745,-493,-745,-550,-451,-745,-388,-389,-393,-399,-401,-745,-404,-745,-406,-411,-745,-745,-678,-745,-13,-456,-745,-745,-452,-453,-454,-347,-745,-745,-732,-415,-417,-418,-555,-277,-745,-745,-321,-745,-648,-651,-653,-656,-378,-505,-745,-500,-506,-510,-704,-681,-391,-392,-392,-392,-392,-692,-392,-412,-690,-745,-321,-744,-13,-461,-462,-425,-427,-414,-745,-554,-732,-719,-720,-723,-320,-647,-745,-498,-387,-745,-396,-745,-398,-745,-402,-745,-405,-407,-320,-723,-367,-744,-416,-442,-649,-392,-392,-392,-392,-457,-458,-459,-745,-394,-397,-400,-403,-392,-395],clist=["44,411,301,309,313,44,141,141,318,318,318,340,285,418,454,493,493,284","382,384,385,473,141,389,297,19,626,511,709,832,19,693,460,466,356,356","44,344,344,635,127,698,699,571,225,618,621,339,563,702,704,706,144,144","890,303,708,598,897,241,983,19,352,352,44,134,387,388,366,136,217,356","356,356,393,297,297,421,422,423,424,798,232,232,305,312,314,907,8,19","795,445,795,8,445,302,561,678,940,352,352,352,359,734,778,737,737,790","445,555,127,124,438,439,1003,451,383,383,236,559,383,715,44,798,610","613,1160,1059,617,512,375,44,904,44,1158,484,484,756,756,123,229,235","336,1037,4,476,509,19,320,320,320,1030,373,973,1032,1184,19,1075,19","1016,782,128,2,607,656,658,17,1012,338,1044,1047,17,792,801,383,383","383,383,216,1055,571,377,380,933,595,595,986,399,516,434,798,493,934","406,408,427,527,461,318,528,795,795,17,826,952,953,286,780,786,390,8","667,652,654,657,657,44,369,605,425,378,8,470,785,1160,1184,298,432,44","379,17,397,1221,639,44,1078,576,372,608,374,818,19,846,19,709,997,19","642,915,1031,1077,44,1136,19,433,444,1079,1157,444,19,19,831,339,903","568,905,449,450,518,319,319,319,444,844,643,999,19,426,419,409,318,318","850,514,515,804,1097,584,17,318,1098,554,565,566,813,965,1151,17,1089","17,1172,1228,376,989,1191,1038,1039,899,795,1174,731,484,303,929,232","232,316,329,330,930,1180,645,939,309,942,460,466,1068,968,313,1061,44","599,1062,622,44,356,912,955,344,44,894,1143,1,553,410,339,412,1175,413","236,339,552,1030,1171,356,19,1206,344,414,19,415,1036,416,352,19,127","1042,1045,417,44,591,525,526,923,852,1043,1046,596,857,806,847,17,352","17,44,44,17,935,601,902,582,1064,1065,17,19,623,624,809,898,17,17,1178","587,907,,,1126,809,,19,19,,961,,,,17,836,581,629,320,,141,127,696,493","1219,845,320,,383,685,849,,,809,580,690,,,336,,,809,691,336,709,709","979,,236,641,1152,437,437,860,904,860,,,1019,,868,725,579,,583,674,144","1021,1023,589,1025,1027,,1028,,,992,,460,466,493,722,493,666,,994,,461",",,1177,318,,991,17,882,,978,17,781,887,,,17,238,,,787,1006,789,684,452","470,793,975,798,689,,,,625,,772,772,685,513,795,969,,802,,1076,,17,371","805,756,756,562,319,445,721,,484,,,756,319,17,17,445,445,756,851,820","445,445,599,735,735,461,318,1090,904,737,1048,599,982,1041,,461,878","880,1049,1050,44,883,885,1229,1110,356,1052,,344,895,470,564,,1060,356",",,344,,567,470,756,975,461,318,19,,,,,784,461,,352,318,,,,44,,,44,352",",,,1230,841,470,823,,,825,,470,,,1133,1134,995,,,44,19,,1144,19,904","461,318,709,709,,,,,,,,827,,,,,,141,916,19,947,44,,,900,470,,900,44",",848,1103,1167,1168,1169,1170,,,794,,,,1120,1121,1122,,19,,,19,,1181",",19,1182,,,,,19,19,444,,144,19,19,,,,,,444,444,,1198,,444,444,,822,864",",1153,,,,,,967,,,,,,,1207,899,772,17,,445,,1147,,1148,772,,,1080,865",",896,,966,772,772,873,,1060,,963,1007,,,1224,284,1223,1060,,599,141","1176,,932,,685,17,,690,17,980,946,1096,,,,,,877,996,,,356,,,344,493",",,,17,,,356,,,344,513,,452,,,,,,1060,,,,,352,,,,,1072,,17,594,,17,352",",44,17,,1222,,44,,17,17,,,993,17,17,1176,,44,,,609,1131,,1029,835,981","19,,1004,,,19,,,,,,,1040,,,,19,,,,,,,,,1156,44,815,383,,,,,,19,,,1015","877,,1066,,,,,,444,,,,,19,,1080,1070,,1080,,772,,772,,,772,772,437,1085",",,1087,772,,,,679,,772,772,,,,1073,,,772,772,,,1199,1014,,,,1018,932",",,,,932,932,,,1127,,,809,44,,879,881,,1058,,884,886,,,1084,,,,,772,","44,1080,1117,1118,1119,1072,44,19,1072,,1072,1092,383,,,,17,,1128,,","17,44,356,,19,1105,,,,31,19,17,1102,735,31,,,,,,383,1095,,,779,,19,",",17,352,31,,,,,,,,,,31,31,31,,31,17,,,,,,,,,,44,1072,,1072,,1072,,1072",",,356,,,297,,,,31,,,,,31,31,1072,19,31,,,44,44,1192,1193,,,44,,,352","900,1155,,1073,,,1073,1161,1073,772,,906,,908,,19,19,,772,,,19,772,",",,,1163,,,461,318,17,,356,,31,297,765,765,44,31,31,31,31,31,,31,,,17","1190,,,,470,17,,,,,1008,352,,,19,772,,,,,,17,,,,1073,,1073,470,1073",",1073,,44,,,,,383,383,,,,,1220,,1081,772,1073,,,,,,879,881,886,884,19","679,,,,,,,,,,,,,,679,941,,17,,,31,31,31,31,31,31,31,,,,,,31,,,,,,31","31,31,31,,,,,17,17,381,18,,,17,,18,31,,,,,,,,,,,,,,,,242,,,,679,,,,",",242,242,242,,18,345,345,,,,,,,,,17,,,,,31,,,,679,,,31,31,,1008,,18","679,,,31,242,242,1002,,242,394,404,404,,,1137,1139,1141,,,,,31,,679",",31,17,,,,31,,765,1081,,,1081,,,1081,765,1081,,,,,,764,764,765,765,",",,,,1074,18,,,31,,242,242,242,242,18,,18,,,,,,31,31,31,,,,,,,679,,435","448,,679,679,,,,,,31,,,,,,,,,1111,,1112,,1113,1081,,1081,,1081,,1081",",,,,1209,1211,1213,1215,,1216,,1002,,,,,1081,,,,,,,,,,,,,,,,,,,18,242","442,242,242,442,242,,31,,,,18,1232,1233,1234,1235,,18,442,242,242,,",",1237,,,,,,,,,,18,,573,,575,,,577,578,,,,31,,679,679,679,,,,,,31,,941","765,,765,,,765,765,,,,,1183,765,1185,,,,,765,765,,242,,1002,,,765,765","242,242,,,,,,,,242,,1204,,,,,,,,,,,,,,,764,18,,31,,18,,,764,345,18,765",",31,,,,764,764,,,,,,,,,1225,345,1226,,1227,,20,,,,670,20,,18,31,,,31",",,1196,,,1236,31,,,242,18,18,,,,,31,,,,31,,,,20,353,353,,,,242,,,,,",",,,,,,,,679,,,31,,,31,31,20,716,31,,,,,,31,31,353,353,353,31,31,,,,",",,,,,,,,,,,,,,,,,,,,,,765,242,,,,,,,,765,,,,765,,,,20,,,,,,,,,20,,20",",,,,796,,381,,799,,,242,764,,764,,,764,764,,,242,,,764,,,,765,,764,764",",,,,,,764,764,,,,,,796,,,381,,,,,,,,,,,,765,448,,,,,,,,,,,,,31,,,764",",,,18,20,,20,,,20,,345,,242,,,20,,,31,345,,20,20,31,31,,866,,,,,,,,31","796,381,,20,,18,,,18,,,,,,893,242,,31,,,,,,,,242,,,911,18,,,,,31,,,",",,,,,,,,,,,,,,,,,,18,,,442,242,,,18,,,,,,442,442,,,,442,442,,,,,,,,20",",,,20,,,764,353,20,,,,,,31,764,,,,764,,,,,796,,353,,,,,31,,976,,,977",",20,,,,,31,,,,,,31,,,,20,20,31,,,,,,,,764,,,,,,,,31,,,,,,,,,,,,,,,,",",,,,,,,764,,,,,,,,1005,,,345,,,,,15,,,,,15,345,,,,242,,,,,31,,,,,,,",",,,,,,,,,,18,,,15,,18,242,,,,,31,31,,,,18,31,,,21,,,,,21,,,,,,15,,,442",",,,,,,398,773,773,,,,,,,,18,,,,,21,347,347,,,31,,31,31,,,,,,,,,,,,31",",,,,,1091,,21,,,,,15,,,,,396,405,405,,15,,15,381,20,,,31,,,,,353,,,",",242,,,,353,,,,,,,,,,,,,18,,,,,,,,20,,21,20,242,,,771,771,,18,21,,21",",,18,,,,,,,,20,,,,,,,,18,,,,1106,,,,,,,15,,440,,,440,,,20,,,20,15,,","20,,,15,440,,20,20,,,,20,20,,,,,,,,15,,,,,,,,,18,,,,,,,,,21,,443,,1145","443,,,,,,,21,,,,,,21,443,18,18,,,773,,18,,,,,,773,,,21,,,,,,773,773",",770,770,,,,,,,,,,,,,,,,,15,,,,15,1187,,,18,15,242,242,,,,,,,,,,,,242",",,,353,,,,,,,,,,,353,15,,,,,,,,,,,,,18,21,15,15,,21,,,,347,21,,,20,","771,,,20,,,,,771,,,,,347,20,,,771,771,,,,,,,21,,,,,,,20,43,,,,,43,,21","21,,,,,,,,20,,,,,,,,296,,,,,,,,,,,,43,343,343,,,773,,773,,,773,773,",",,,,773,,,,,,773,773,,,,43,,,773,773,,,,,,392,296,296,,,,,,,,,,,,,,",",,,769,769,,20,,,770,,,,,,773,,770,,,,,,,20,,770,770,,,20,43,,,,,,,",",43,,43,,,,20,,768,768,353,,,,,771,15,771,,,771,771,,,,,,771,,,,,,771","771,,,,,,,771,771,,,,,,,,,,,,15,,,15,,,,20,,,,,,,,21,,,,,353,,,347,15",",771,,,,,43,347,,,,20,20,,,,,20,43,767,767,,,773,43,,15,,21,440,,21","773,15,,,773,,,440,440,43,,,440,440,,,,,,,21,,,,,,353,856,,20,,,,,,",",770,,770,,,770,770,,,,21,773,770,443,,,,21,770,770,,,,443,443,,770","770,443,443,,,,769,,,20,,,,,769,,773,,,,,,,769,769,43,,,,43,,,771,343","43,,,,770,,,771,,,,771,,,,,,768,343,,,,,,,768,,,,,43,,,,768,768,,,,",",,,,,43,43,,,,,,,,,771,,,,,,,,,,,,,15,,,,,15,,,,,,,,,,347,15,,,771,",",,,,,347,,,,,,,,440,,,,,767,,,,,,,,767,,,,15,,21,,,767,767,21,,,,,770",",,,,,21,,,770,,,,770,,,,,,,769,,769,,443,769,769,,,,,,769,,,,,,769,769",",21,,,,,769,769,,,,,,,,,,770,,766,766,,,,,768,,768,,15,768,768,,,,,","768,,,,,,768,768,769,,15,,770,,768,768,15,,,,,,,,,,,,,,43,,15,,,,1109",",343,,,,,,,21,,343,,,,,,768,,,,,,,,,,21,,,,,43,21,,43,,,,,,,767,,767",",,767,767,21,,15,,1108,767,,43,,,,767,767,34,,,,,34,767,767,,,,,,,,",",,15,15,,43,34,,15,,,,43,,,,34,34,34,,34,769,,,,,21,,,767,769,,,,769",",,,,405,,,,,,,,,34,,,,15,34,34,21,21,34,,,,21,,,,,768,,,,,,,,,768,,","769,768,,,,,,,766,,,,,,,,766,,15,,,,,,405,766,766,21,34,,,,769,34,34","34,34,34,,34,,,,,,768,,,,,,,,,,,,,,,,343,,,,,,,,,,21,343,,,,,768,767",",,,,,,,,767,,,,767,,,,,,,,43,,,,,43,,,,,,,,,,,43,,,,,,,34,34,34,34,34","34,34,,,,,,34,767,,,,,34,34,34,34,,,,,,,43,,,,,,,34,,,,,,,,,,767,,,",",,,,,,,,,,,,,,,,766,,766,,,766,766,,,,,,766,,,,34,,766,766,,,,34,34",",766,766,,,,,34,,,,,,,,,,,,43,,,,,,34,,,,34,,,,,34,,,43,,,766,,,43,",",,,,,,,,,,,,,,43,,,,1104,34,,,,,,,,,,,,,,34,34,34,,,,,,,,,,,,,,,,,,","34,,,,,,,,,,,,,,,43,,,,,,,,,,,,,296,,,,,,,,,,,,,,,,43,43,,,,,43,,,,",",,,,,,249,,,34,,,,766,,,317,317,317,,,,766,,,,766,,364,365,,367,368",",370,,296,,,43,,,,,,,,,34,317,317,,,,,,,,34,,,,,,,,,,,,766,,,,,,,,,",",,,43,,,,,,,,,,,,,,,,,,,766,,,,,,,,,,,,,,,,34,,,,,,,,,,34,,,,,,,,,,",",,,,,,,,,,,,,,,,,34,,,34,,,,,,,34,,,,,,,,,,34,,,,34,,,,,,,,,,,,,,,,",",,,,317,447,,,453,317,34,,,34,34,,,34,,,,,453,34,34,,,,34,34,,,,,,249",",,,,,,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544","545,546,547,548,549,550,,,,,551,,,,,,,,,,,,,,,,,,,,,,,317,317,,,,,,",",317,,,,,,,317,,317,,,317,317,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,604,,,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,34,34,,,,,,,,,,34,,,,,,,,",",,,,,,,,,34,,,,,317,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,692,,,,,,,,",",,,,,,,,,,,,,,,,,317,,,,,,,,,,,,,723,,34,,,,,,,,317,,453,453,453,,,",",34,,,,,,,,,,,,34,,,,,,34,,,,,,34,,,,,,,365,,,,,,,,,34,317,,317,,317",",,,,,,,,,,,,,,,317,,,,,,,,,,453,,,816,,817,,,,,,317,,,317,,,,,,,,,,34",",,317,317,,,,,,,,,,317,,,,,,,,,,,,,,,34,34,,,,,34,,,,,,,,,,,,317,453","317,,,,874,,,317,317,453,453,,,,453,453,,,,,,317,,,,,,,,,34,,34,34,","317,,,,,,,,,,34,,,,,,,,,,,,,,692,723,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,317,,,,,,,,,317,,,317,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317,,,,,,,,453,,,,,,,,",",,,,1010,1011,,,,,,,,,,,,,,,,,,,,,,,,,,,,1033,1034,453,453,453,453,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1067,,,,,,,,,,,,,,,,,,,,,,,,,",",,317,,,,,,,,,,,,,,,,,,,317,,,,,,,,,,,,,,,,,,,,,,,,,,453,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,317"],racc_goto_table=arr=$$$("Array").$new(4752,nil),idx=0,$send(clist,"each",[],(function(str){return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(function(i){var $writer=nil;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),idx=$rb_plus(idx,1)}),1)}),1),clist=["72,198,158,91,91,72,75,75,36,36,36,68,46,198,31,230,230,48,107,19,19","10,75,19,72,34,112,10,128,113,34,12,55,55,82,82,72,72,72,73,117,139","139,94,33,110,110,11,92,228,228,228,77,77,13,33,135,70,133,22,111,34","34,34,72,9,44,44,80,17,17,82,82,82,72,72,72,19,19,19,19,239,87,87,56","56,56,235,8,34,95,20,95,8,20,51,31,32,187,34,34,34,69,41,41,177,177","58,20,55,117,7,24,24,149,28,26,26,119,57,26,129,72,239,89,89,152,192","89,28,87,72,231,72,151,225,225,200,200,5,35,35,64,193,2,157,157,34,90","90,90,127,8,147,130,236,34,145,34,207,161,6,3,10,214,214,29,14,65,178","178,29,161,16,26,26,26,26,18,178,94,90,90,175,224,224,13,21,66,25,239","230,176,74,74,27,42,91,36,43,95,95,29,45,202,202,50,52,60,5,8,78,215","215,215,215,72,83,84,8,86,8,75,93,152,236,105,11,72,106,29,114,151,116","72,149,198,120,121,122,123,34,124,34,128,125,34,126,128,131,136,72,142","34,22,22,143,150,22,34,34,112,11,146,66,146,26,26,33,88,88,88,22,73","153,154,34,2,6,155,36,36,156,26,26,70,159,66,29,36,160,162,164,165,70","168,169,29,170,29,192,171,88,172,173,180,182,200,95,192,31,225,33,183","87,87,63,63,63,184,145,157,188,91,189,55,55,147,58,91,195,72,68,196","19,72,82,129,205,72,72,206,149,1,26,210,11,211,193,212,119,11,51,127","130,82,34,192,72,213,34,216,175,217,34,34,117,175,175,218,72,33,35,35","32,219,176,176,80,220,31,223,29,34,29,72,72,29,32,33,229,9,202,202,29","34,11,11,55,233,29,29,234,69,235,,,187,55,,34,34,,73,,,,29,31,8,33,90",",75,117,66,230,111,31,90,,26,91,10,,,55,7,91,,,64,,,55,36,64,128,128","32,,119,26,13,88,88,215,231,215,,,139,,31,66,5,,65,33,77,228,228,65","228,228,,228,,,32,,55,55,230,36,230,17,,32,,91,,,133,36,,110,29,57,","70,29,66,57,,,29,40,,,66,32,66,56,79,75,66,94,239,56,,,,5,,72,72,91","79,95,92,,66,,146,,29,40,66,200,200,88,88,20,117,,225,,,200,88,29,29","20,20,200,157,66,20,20,68,174,174,91,36,41,231,177,73,68,89,32,,91,28","28,32,32,72,28,28,13,146,82,191,,72,24,75,63,,191,82,,,72,,63,75,200","94,91,36,34,,,,,56,91,,34,36,,,,72,,,72,34,,,,113,44,75,11,,,11,,75",",,139,139,10,,,72,34,,135,34,231,91,36,128,128,,,,,,,,117,,,,,,75,66","34,198,72,,,140,75,,140,72,,117,110,228,228,228,228,,,90,,,,32,32,32",",34,,,34,,146,,34,146,,,,,34,34,22,,77,34,34,,,,,,22,22,,12,,22,22,","90,17,,112,,,,,,107,,,,,,,139,200,72,29,,20,,110,,110,72,,,230,8,,87",",158,72,72,8,,191,,46,28,,,146,48,228,191,,68,75,191,,174,,91,29,,91","29,68,174,10,,,,,,90,19,,,82,,,72,230,,,,29,,,82,,,72,79,,79,,,,,,191",",,,,34,,,,,132,,29,40,,29,34,,72,29,,32,,72,,29,29,,,11,29,29,191,,72",",,40,10,,66,88,26,34,,11,,,34,,,,,,,66,,,,34,,,,,,,,,10,72,79,26,,,",",,34,,,11,90,,19,,,,,,22,,,,,34,,230,66,,230,,72,,72,,,72,72,88,66,",",19,72,,,,40,,72,72,,,,140,,,72,72,,,31,87,,,,87,174,,,,,174,174,,,198",",,55,72,,79,79,,174,,79,79,,,11,,,,,72,,72,230,66,66,66,132,72,34,132",",132,11,26,,,,29,,66,,,29,72,82,,34,72,,,,59,34,29,11,174,59,,,,,,26","117,,,40,,34,,,29,34,59,,,,,,,,,,59,59,59,,59,29,,,,,,,,,,72,132,,132",",132,,132,,,82,,,72,,,,59,,,,,59,59,132,34,59,,,72,72,19,19,,,72,,,34","140,11,,140,,,140,11,140,72,,144,,144,,34,34,,72,,,34,72,,,,,33,,,91","36,29,,82,,59,72,98,98,72,59,59,59,59,59,,59,,,29,11,,,,75,29,,,,,79","34,,,34,72,,,,,,29,,,,140,,140,75,140,,140,,72,,,,,26,26,,,,,11,,232","72,140,,,,,,79,79,79,79,34,40,,,,,,,,,,,,,,40,40,,29,,,59,59,59,59,59","59,59,,,,,,59,,,,,,59,59,59,59,,,,,29,29,85,30,,,29,,30,59,,,,,,,,,",",,,,,,30,,,,40,,,,,,30,30,30,,30,30,30,,,,,,,,,29,,,,,59,,,,40,,,59","59,,79,,30,40,,,59,30,30,40,,30,30,30,30,,,141,141,141,,,,,59,,40,,59","29,,,,59,,98,232,,,232,,,232,98,232,,,,,,97,97,98,98,,,,,,144,30,,,59",",30,30,30,30,30,,30,,,,,,59,59,59,,,,,,,40,,85,85,,40,40,,,,,,59,,,",",,,,,144,,144,,144,232,,232,,232,,232,,,,,141,141,141,141,,141,,40,",",,,232,,,,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,,59,,,,30,141,141,141","141,,30,30,30,30,,,,141,,,,,,,,,,30,,85,,85,,,85,85,,,,59,,40,40,40",",,,,,59,,40,98,,98,,,98,98,,,,,144,98,144,,,,,98,98,,30,,40,,,98,98","30,30,,,,,,,,30,,144,,,,,,,,,,,,,,,97,30,,59,,30,,,97,30,30,98,,59,",",,97,97,,,,,,,,,144,30,144,,144,,38,,,,85,38,,30,59,,,59,,,40,,,144","59,,,30,30,30,,,,,59,,,,59,,,,38,38,38,,,,30,,,,,,,,,,,,,,40,,,59,,","59,59,38,85,59,,,,,,59,59,38,38,38,59,59,,,,,,,,,,,,,,,,,,,,,,,,,,,98","30,,,,,,,,98,,,,98,,,,38,,,,,,,,,38,,38,,,,,85,,85,,85,,,30,97,,97,",",97,97,,,30,,,97,,,,98,,97,97,,,,,,,97,97,,,,,,85,,,85,,,,,,,,,,,,98","85,,,,,,,,,,,,,59,,,97,,,,30,38,,38,,,38,,30,,30,,,38,,,59,30,,38,38","59,59,,85,,,,,,,,59,85,85,,38,,30,,,30,,,,,,85,30,,59,,,,,,,,30,,,85","30,,,,,59,,,,,,,,,,,,,,,,,,,,,,30,,,30,30,,,30,,,,,,30,30,,,,30,30,",",,,,,,38,,,,38,,,97,38,38,,,,,,59,97,,,,97,,,,,85,,38,,,,,59,,85,,,85",",38,,,,,59,,,,,,59,,,,38,38,59,,,,,,,,97,,,,,,,,59,,,,,,,,,,,,,,,,,",",,,,,,97,,,,,,,,85,,,30,,,,,23,,,,,23,30,,,,30,,,,,59,,,,,,,,,,,,,,",",,,30,,,23,,30,30,,,,,59,59,,,,30,59,,,39,,,,,39,,,,,,23,,,30,,,,,,","23,109,109,,,,,,,,30,,,,,39,39,39,,,59,,59,59,,,,,,,,,,,,59,,,,,,85",",39,,,,,23,,,,,39,39,39,,23,,23,85,38,,,59,,,,,38,,,,,30,,,,38,,,,,",",,,,,,,30,,,,,,,,38,,39,38,30,,,104,104,,30,39,,39,,,30,,,,,,,,38,,",",,,,,30,,,,30,,,,,,,23,,23,,,23,,,38,,,38,23,,,38,,,23,23,,38,38,,,","38,38,,,,,,,,23,,,,,,,,,30,,,,,,,,,39,,39,,30,39,,,,,,,39,,,,,,39,39","30,30,,,109,,30,,,,,,109,,,39,,,,,,109,109,,103,103,,,,,,,,,,,,,,,,","23,,,,23,30,,,30,23,30,30,,,,,,,,,,,,30,,,,38,,,,,,,,,,,38,23,,,,,,",",,,,,,30,39,23,23,,39,,,,39,39,,,38,,104,,,38,,,,,104,,,,,39,38,,,104","104,,,,,,,39,,,,,,,38,71,,,,,71,,39,39,,,,,,,,38,,,,,,,,71,,,,,,,,,",",,71,71,71,,,109,,109,,,109,109,,,,,,109,,,,,,109,109,,,,71,,,109,109",",,,,,71,71,71,,,,,,,,,,,,,,,,,,102,102,,38,,,103,,,,,,109,,103,,,,,",",38,,103,103,,,38,71,,,,,,,,,71,,71,,,,38,,101,101,38,,,,,104,23,104",",,104,104,,,,,,104,,,,,,104,104,,,,,,,104,104,,,,,,,,,,,,23,,,23,,,","38,,,,,,,,39,,,,,38,,,39,23,,104,,,,,71,39,,,,38,38,,,,,38,71,100,100",",,109,71,,23,,39,23,,39,109,23,,,109,,,23,23,71,,,23,23,,,,,,,39,,,",",,38,39,,38,,,,,,,,103,,103,,,103,103,,,,39,109,103,39,,,,39,103,103",",,,39,39,,103,103,39,39,,,,102,,,38,,,,,102,,109,,,,,,,102,102,71,,",",71,,,104,71,71,,,,103,,,104,,,,104,,,,,,101,71,,,,,,,101,,,,,71,,,","101,101,,,,,,,,,,71,71,,,,,,,,,104,,,,,,,,,,,,,23,,,,,23,,,,,,,,,,39","23,,,104,,,,,,,39,,,,,,,,23,,,,,100,,,,,,,,100,,,,23,,39,,,100,100,39",",,,,103,,,,,,39,,,103,,,,103,,,,,,,102,,102,,39,102,102,,,,,,102,,,",",,102,102,,39,,,,,102,102,,,,,,,,,,103,,99,99,,,,,101,,101,,23,101,101",",,,,,101,,,,,,101,101,102,,23,,103,,101,101,23,,,,,,,,,,,,,,71,,23,",",,23,,71,,,,,,,39,,71,,,,,,101,,,,,,,,,,39,,,,,71,39,,71,,,,,,,100,","100,,,100,100,39,,23,,39,100,,71,,,,100,100,62,,,,,62,100,100,,,,,,",",,,,23,23,,71,62,,23,,,,71,,,,62,62,62,,62,102,,,,,39,,,100,102,,,,102",",,,,39,,,,,,,,,62,,,,23,62,62,39,39,62,,,,39,,,,,101,,,,,,,,,101,,,102","101,,,,,,,99,,,,,,,,99,,23,,,,,,39,99,99,39,62,,,,102,62,62,62,62,62",",62,,,,,,101,,,,,,,,,,,,,,,,71,,,,,,,,,,39,71,,,,,101,100,,,,,,,,,100",",,,100,,,,,,,,71,,,,,71,,,,,,,,,,,71,,,,,,,62,62,62,62,62,62,62,,,,",",62,100,,,,,62,62,62,62,,,,,,,71,,,,,,,62,,,,,,,,,,100,,,,,,,,,,,,,",",,,,,,99,,99,,,99,99,,,,,,99,,,,62,,99,99,,,,62,62,,99,99,,,,,62,,,",",,,,,,,,71,,,,,,62,,,,62,,,,,62,,,71,,,99,,,71,,,,,,,,,,,,,,,,71,,,","71,62,,,,,,,,,,,,,,62,62,62,,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,71,,",",,,,,,,,,,71,,,,,,,,,,,,,,,,71,71,,,,,71,,,,,,,,,,,37,,,62,,,,99,,,37","37,37,,,,99,,,,99,,37,37,,37,37,,37,,71,,,71,,,,,,,,,62,37,37,,,,,,",",62,,,,,,,,,,,,99,,,,,,,,,,,,,71,,,,,,,,,,,,,,,,,,,99,,,,,,,,,,,,,,",",62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,,,62,,,,,,,62,,,,,,,,",",62,,,,62,,,,,,,,,,,,,,,,,,,,,37,37,,,37,37,62,,,62,62,,,62,,,,,37,62","62,,,,62,62,,,,,,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,,,,","62,,,,,,,,,,,,,,,,,,,,,,,62,,,,,62,62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,62",",,,,37,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,",",,,37,,,,,,,,,,,,,37,,62,,,,,,,,37,,37,37,37,,,,,62,,,,,,,,,,,,62,,",",,,62,,,,,,62,,,,,,,37,,,,,,,,,62,37,,37,,37,,,,,,,,,,,,,,,,37,,,,,",",,,,37,,,37,,37,,,,,,37,,,37,,,,,,,,,,62,,,37,37,,,,,,,,,,37,,,,,,,",",,,,,,,62,62,,,,,62,,,,,,,,,,,,37,37,37,,,,37,,,37,37,37,37,,,,37,37",",,,,,37,,,,,,,,,62,,62,62,,37,,,,,,,,,,62,,,,,,,,,,,,,,37,37,,,,,,,",",,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,37,,,37",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37",",,,,,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,37,37","37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,",",,,,37,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37"],racc_goto_check=arr=$$$("Array").$new(4752,nil),idx=0,$send(clist,"each",[],(function(str){return null==str&&(str=nil),$send(str.$split(",",-1),"each",[],(function(i){var $writer=nil;return null==i&&(i=nil),$truthy(i["$empty?"]())||($writer=[idx,i.$to_i()],$send(arr,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),idx=$rb_plus(idx,1)}),1)}),1),racc_goto_pointer=[nil,343,142,162,nil,134,154,106,86,56,-209,9,-441,-639,-723,nil,-407,59,167,-52,-129,111,35,2068,-107,-30,45,59,-108,164,1262,-210,-357,26,23,121,-26,3589,1625,2121,484,-424,-59,-57,-7,-419,-14,nil,-9,nil,180,66,-345,nil,nil,-193,53,-186,-458,1017,-350,nil,3145,282,104,130,-51,nil,-28,62,-303,2499,-2,-363,116,-4,nil,42,-220,291,20,nil,-5,166,-153,1195,153,63,235,-252,114,-28,-258,-332,-277,-480,nil,849,616,2504,2203,2113,2068,1856,1723,200,161,-51,nil,1618,-339,-763,-364,-596,155,nil,-173,35,nil,98,172,-135,173,-366,-397,-603,-161,-762,-466,-373,-760,-664,-141,-639,nil,-437,-722,nil,nil,-436,-27,269,-822,-716,413,-815,-438,-638,nil,-737,-842,-965,-973,-135,-575,194,-361,-88,-25,-714,-711,-394,-9,nil,-18,-18,nil,nil,-488,-796,-691,-919,-530,-844,34,-562,-553,-422,-760,nil,-620,nil,-620,-431,-425,nil,nil,-648,-424,-423,nil,-352,-816,-781,nil,-615,-612,nil,-89,nil,-390,nil,-558,nil,nil,-437,-353,-735,nil,nil,257,254,255,264,-250,-200,265,266,271,-274,-271,nil,nil,-259,-168,-98,nil,nil,-432,-311,-218,-569,230,-298,-730,-616,-983,nil,nil,-491],racc_goto_default=[nil,nil,nil,nil,5,nil,6,391,334,nil,nil,472,nil,984,nil,331,332,nil,nil,nil,13,14,22,247,nil,nil,16,nil,441,248,363,nil,nil,637,251,nil,27,25,252,246,517,nil,nil,nil,nil,nil,nil,386,143,26,nil,nil,nil,28,29,812,nil,nil,nil,351,nil,30,348,455,37,nil,nil,39,42,41,nil,243,244,403,nil,463,142,87,nil,446,103,51,54,283,nil,323,nil,891,456,nil,457,468,480,686,569,321,307,55,56,57,58,59,60,61,62,63,nil,308,69,70,nil,nil,nil,nil,nil,77,nil,619,78,230,nil,nil,nil,nil,nil,nil,nil,711,492,nil,712,713,478,474,475,nil,1179,707,1071,nil,479,nil,nil,nil,481,nil,483,nil,971,nil,nil,nil,490,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,467,nil,nil,791,783,nil,nil,nil,nil,nil,nil,1051,nil,736,937,738,739,743,740,741,nil,nil,742,744,nil,nil,nil,936,938,nil,748,750,751,752,753,nil,757,501,758,759,760,761,nil,nil,nil,86,88,89,nil,nil,nil,nil,647,nil,nil,nil,nil,nil,99,100,nil,231,901,234,477,nil,482,909,495,497,498,1082,502,1083,505,508,326],racc_reduce_table=[0,0,"racc_error",0,150,"_reduce_1",2,148,"_reduce_2",2,149,"_reduce_3",0,151,"_reduce_4",1,151,"_reduce_5",3,151,"_reduce_6",2,151,"_reduce_7",1,153,"_reduce_none",2,153,"_reduce_9",3,156,"_reduce_10",4,157,"_reduce_11",2,158,"_reduce_12",0,162,"_reduce_13",1,162,"_reduce_14",3,162,"_reduce_15",2,162,"_reduce_16",1,163,"_reduce_none",2,163,"_reduce_18",0,174,"_reduce_19",4,155,"_reduce_20",3,155,"_reduce_21",3,155,"_reduce_22",3,155,"_reduce_23",2,155,"_reduce_24",3,155,"_reduce_25",3,155,"_reduce_26",3,155,"_reduce_27",3,155,"_reduce_28",3,155,"_reduce_29",4,155,"_reduce_30",1,155,"_reduce_none",3,155,"_reduce_32",3,155,"_reduce_33",5,155,"_reduce_34",3,155,"_reduce_35",1,155,"_reduce_none",3,167,"_reduce_37",3,167,"_reduce_38",6,167,"_reduce_39",5,167,"_reduce_40",5,167,"_reduce_41",5,167,"_reduce_42",5,167,"_reduce_43",4,167,"_reduce_44",6,167,"_reduce_45",4,167,"_reduce_46",6,167,"_reduce_47",3,167,"_reduce_48",1,175,"_reduce_none",3,175,"_reduce_50",1,175,"_reduce_none",1,173,"_reduce_none",3,173,"_reduce_53",3,173,"_reduce_54",3,173,"_reduce_55",2,173,"_reduce_56",0,189,"_reduce_57",4,173,"_reduce_58",0,190,"_reduce_59",4,173,"_reduce_60",1,173,"_reduce_none",1,166,"_reduce_none",0,194,"_reduce_63",3,191,"_reduce_64",1,193,"_reduce_65",2,181,"_reduce_66",0,199,"_reduce_67",5,185,"_reduce_68",1,169,"_reduce_none",1,169,"_reduce_none",1,200,"_reduce_none",4,200,"_reduce_72",0,207,"_reduce_73",4,204,"_reduce_74",1,206,"_reduce_none",2,183,"_reduce_76",3,183,"_reduce_77",4,183,"_reduce_78",5,183,"_reduce_79",4,183,"_reduce_80",5,183,"_reduce_81",2,183,"_reduce_82",2,183,"_reduce_83",2,183,"_reduce_84",2,183,"_reduce_85",2,183,"_reduce_86",1,168,"_reduce_87",3,168,"_reduce_88",1,212,"_reduce_89",3,212,"_reduce_90",1,211,"_reduce_none",2,211,"_reduce_92",3,211,"_reduce_93",5,211,"_reduce_94",2,211,"_reduce_95",4,211,"_reduce_96",2,211,"_reduce_97",4,211,"_reduce_98",1,211,"_reduce_99",3,211,"_reduce_100",1,215,"_reduce_none",3,215,"_reduce_102",2,214,"_reduce_103",3,214,"_reduce_104",1,217,"_reduce_105",3,217,"_reduce_106",1,216,"_reduce_107",1,216,"_reduce_108",4,216,"_reduce_109",3,216,"_reduce_110",3,216,"_reduce_111",3,216,"_reduce_112",3,216,"_reduce_113",2,216,"_reduce_114",1,216,"_reduce_115",1,170,"_reduce_116",1,170,"_reduce_117",4,170,"_reduce_118",3,170,"_reduce_119",3,170,"_reduce_120",3,170,"_reduce_121",3,170,"_reduce_122",2,170,"_reduce_123",1,170,"_reduce_124",1,220,"_reduce_125",1,220,"_reduce_none",2,221,"_reduce_127",1,221,"_reduce_128",3,221,"_reduce_129",1,195,"_reduce_none",1,195,"_reduce_none",1,195,"_reduce_none",1,195,"_reduce_none",1,195,"_reduce_none",1,164,"_reduce_135",1,164,"_reduce_none",1,165,"_reduce_137",0,225,"_reduce_138",4,165,"_reduce_139",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",1,223,"_reduce_none",3,184,"_reduce_211",3,184,"_reduce_212",6,184,"_reduce_213",5,184,"_reduce_214",5,184,"_reduce_215",5,184,"_reduce_216",5,184,"_reduce_217",4,184,"_reduce_218",3,184,"_reduce_219",3,184,"_reduce_220",3,184,"_reduce_221",2,184,"_reduce_222",2,184,"_reduce_223",2,184,"_reduce_224",2,184,"_reduce_225",3,184,"_reduce_226",3,184,"_reduce_227",3,184,"_reduce_228",3,184,"_reduce_229",3,184,"_reduce_230",3,184,"_reduce_231",4,184,"_reduce_232",2,184,"_reduce_233",2,184,"_reduce_234",3,184,"_reduce_235",3,184,"_reduce_236",3,184,"_reduce_237",3,184,"_reduce_238",1,184,"_reduce_none",3,184,"_reduce_240",3,184,"_reduce_241",3,184,"_reduce_242",3,184,"_reduce_243",3,184,"_reduce_244",2,184,"_reduce_245",2,184,"_reduce_246",3,184,"_reduce_247",3,184,"_reduce_248",3,184,"_reduce_249",3,184,"_reduce_250",0,231,"_reduce_251",4,184,"_reduce_252",6,184,"_reduce_253",4,184,"_reduce_254",6,184,"_reduce_255",4,184,"_reduce_256",6,184,"_reduce_257",1,184,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",1,230,"_reduce_none",3,228,"_reduce_263",3,228,"_reduce_264",1,232,"_reduce_none",1,233,"_reduce_none",2,233,"_reduce_none",4,233,"_reduce_268",2,233,"_reduce_269",1,226,"_reduce_none",3,226,"_reduce_271",3,238,"_reduce_272",5,238,"_reduce_273",3,238,"_reduce_274",0,240,"_reduce_275",1,240,"_reduce_none",0,178,"_reduce_277",1,178,"_reduce_none",2,178,"_reduce_none",4,178,"_reduce_280",2,178,"_reduce_281",1,210,"_reduce_282",2,210,"_reduce_283",2,210,"_reduce_284",4,210,"_reduce_285",1,210,"_reduce_286",0,243,"_reduce_287",2,203,"_reduce_288",2,242,"_reduce_289",1,242,"_reduce_290",2,241,"_reduce_291",0,241,"_reduce_292",1,235,"_reduce_293",2,235,"_reduce_294",3,235,"_reduce_295",4,235,"_reduce_296",1,172,"_reduce_297",1,172,"_reduce_none",3,171,"_reduce_299",4,171,"_reduce_300",2,171,"_reduce_301",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_312",0,267,"_reduce_313",4,229,"_reduce_314",0,268,"_reduce_315",4,229,"_reduce_316",0,269,"_reduce_317",4,229,"_reduce_318",3,229,"_reduce_319",3,229,"_reduce_320",2,229,"_reduce_321",3,229,"_reduce_322",3,229,"_reduce_323",1,229,"_reduce_324",4,229,"_reduce_325",3,229,"_reduce_326",1,229,"_reduce_327",0,270,"_reduce_328",6,229,"_reduce_329",4,229,"_reduce_330",3,229,"_reduce_331",2,229,"_reduce_332",1,229,"_reduce_none",2,229,"_reduce_334",1,229,"_reduce_none",6,229,"_reduce_336",6,229,"_reduce_337",4,229,"_reduce_338",4,229,"_reduce_339",5,229,"_reduce_340",4,229,"_reduce_341",5,229,"_reduce_342",6,229,"_reduce_343",0,271,"_reduce_344",6,229,"_reduce_345",0,272,"_reduce_346",7,229,"_reduce_347",0,273,"_reduce_348",5,229,"_reduce_349",4,229,"_reduce_350",4,229,"_reduce_351",1,229,"_reduce_352",1,229,"_reduce_353",1,229,"_reduce_354",1,229,"_reduce_355",1,177,"_reduce_none",1,262,"_reduce_357",1,265,"_reduce_358",1,196,"_reduce_359",1,209,"_reduce_360",1,257,"_reduce_none",1,257,"_reduce_none",2,257,"_reduce_363",1,192,"_reduce_none",1,192,"_reduce_none",1,258,"_reduce_none",5,258,"_reduce_367",1,160,"_reduce_none",2,160,"_reduce_369",1,261,"_reduce_none",1,261,"_reduce_none",1,274,"_reduce_372",3,274,"_reduce_373",1,277,"_reduce_374",3,277,"_reduce_375",1,276,"_reduce_none",3,276,"_reduce_377",5,276,"_reduce_378",1,276,"_reduce_379",3,276,"_reduce_380",2,278,"_reduce_381",1,278,"_reduce_382",1,279,"_reduce_none",1,279,"_reduce_none",0,284,"_reduce_385",2,282,"_reduce_386",4,283,"_reduce_387",2,283,"_reduce_388",2,283,"_reduce_389",1,283,"_reduce_390",2,288,"_reduce_391",0,288,"_reduce_392",1,289,"_reduce_none",6,290,"_reduce_394",8,290,"_reduce_395",4,290,"_reduce_396",6,290,"_reduce_397",4,290,"_reduce_398",2,290,"_reduce_none",6,290,"_reduce_400",2,290,"_reduce_401",4,290,"_reduce_402",6,290,"_reduce_403",2,290,"_reduce_404",4,290,"_reduce_405",2,290,"_reduce_406",4,290,"_reduce_407",1,290,"_reduce_none",0,294,"_reduce_409",1,294,"_reduce_410",3,295,"_reduce_411",4,295,"_reduce_412",1,296,"_reduce_413",4,296,"_reduce_414",1,297,"_reduce_415",3,297,"_reduce_416",1,298,"_reduce_417",1,298,"_reduce_none",0,302,"_reduce_419",0,303,"_reduce_420",5,256,"_reduce_421",4,300,"_reduce_422",1,300,"_reduce_423",0,306,"_reduce_424",4,301,"_reduce_425",0,307,"_reduce_426",4,301,"_reduce_427",0,309,"_reduce_428",4,305,"_reduce_429",2,201,"_reduce_430",4,201,"_reduce_431",5,201,"_reduce_432",5,201,"_reduce_433",2,255,"_reduce_434",4,255,"_reduce_435",4,255,"_reduce_436",3,255,"_reduce_437",3,255,"_reduce_438",3,255,"_reduce_439",2,255,"_reduce_440",1,255,"_reduce_441",4,255,"_reduce_442",0,311,"_reduce_443",4,254,"_reduce_444",0,312,"_reduce_445",4,254,"_reduce_446",0,313,"_reduce_447",3,205,"_reduce_448",0,314,"_reduce_449",0,315,"_reduce_450",4,308,"_reduce_451",5,259,"_reduce_452",1,316,"_reduce_453",1,316,"_reduce_none",0,319,"_reduce_455",0,320,"_reduce_456",7,260,"_reduce_457",1,318,"_reduce_458",1,318,"_reduce_none",1,317,"_reduce_460",3,317,"_reduce_461",3,317,"_reduce_462",1,188,"_reduce_none",2,188,"_reduce_464",3,188,"_reduce_465",1,188,"_reduce_466",1,188,"_reduce_467",1,188,"_reduce_468",1,321,"_reduce_none",3,326,"_reduce_470",1,326,"_reduce_none",3,328,"_reduce_472",1,328,"_reduce_none",1,330,"_reduce_474",1,331,"_reduce_475",1,329,"_reduce_none",1,329,"_reduce_none",4,329,"_reduce_478",4,329,"_reduce_479",4,329,"_reduce_480",3,329,"_reduce_481",4,329,"_reduce_482",4,329,"_reduce_483",4,329,"_reduce_484",3,329,"_reduce_485",3,329,"_reduce_486",3,329,"_reduce_487",2,329,"_reduce_488",0,335,"_reduce_489",4,329,"_reduce_490",2,329,"_reduce_491",0,336,"_reduce_492",4,329,"_reduce_493",1,322,"_reduce_494",1,322,"_reduce_495",2,322,"_reduce_496",3,322,"_reduce_497",5,322,"_reduce_498",2,322,"_reduce_499",4,322,"_reduce_500",1,322,"_reduce_none",2,337,"_reduce_502",3,337,"_reduce_503",1,324,"_reduce_504",3,324,"_reduce_505",5,323,"_reduce_506",2,340,"_reduce_507",1,340,"_reduce_508",1,339,"_reduce_509",3,339,"_reduce_510",1,338,"_reduce_none",3,325,"_reduce_512",1,325,"_reduce_513",2,325,"_reduce_514",1,325,"_reduce_515",1,341,"_reduce_516",3,341,"_reduce_517",2,343,"_reduce_518",1,343,"_reduce_519",1,344,"_reduce_520",3,344,"_reduce_521",2,346,"_reduce_522",1,346,"_reduce_523",2,348,"_reduce_524",1,342,"_reduce_none",1,342,"_reduce_none",1,332,"_reduce_none",3,332,"_reduce_528",3,332,"_reduce_529",2,332,"_reduce_530",2,332,"_reduce_531",1,332,"_reduce_none",1,332,"_reduce_none",1,332,"_reduce_none",2,332,"_reduce_535",2,332,"_reduce_536",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_none",1,349,"_reduce_545",1,349,"_reduce_none",1,327,"_reduce_547",2,350,"_reduce_548",2,350,"_reduce_549",4,351,"_reduce_550",2,333,"_reduce_551",3,333,"_reduce_552",1,333,"_reduce_553",6,159,"_reduce_554",0,159,"_reduce_555",1,353,"_reduce_556",1,353,"_reduce_none",1,353,"_reduce_none",2,354,"_reduce_559",1,354,"_reduce_none",2,161,"_reduce_561",1,161,"_reduce_none",1,244,"_reduce_none",1,244,"_reduce_none",1,245,"_reduce_565",1,356,"_reduce_566",2,356,"_reduce_567",3,357,"_reduce_568",1,357,"_reduce_569",1,357,"_reduce_570",3,246,"_reduce_571",4,247,"_reduce_572",3,248,"_reduce_573",0,360,"_reduce_574",3,360,"_reduce_575",1,361,"_reduce_576",2,361,"_reduce_577",3,250,"_reduce_578",0,363,"_reduce_579",3,363,"_reduce_580",3,249,"_reduce_581",3,251,"_reduce_582",0,364,"_reduce_583",3,364,"_reduce_584",0,365,"_reduce_585",3,365,"_reduce_586",0,345,"_reduce_587",2,345,"_reduce_588",0,358,"_reduce_589",2,358,"_reduce_590",0,359,"_reduce_591",2,359,"_reduce_592",1,362,"_reduce_593",2,362,"_reduce_594",0,367,"_reduce_595",4,362,"_reduce_596",1,366,"_reduce_597",1,366,"_reduce_598",1,366,"_reduce_599",1,366,"_reduce_none",1,224,"_reduce_none",1,224,"_reduce_none",1,368,"_reduce_603",3,369,"_reduce_604",1,355,"_reduce_605",2,355,"_reduce_606",1,227,"_reduce_607",1,227,"_reduce_608",1,227,"_reduce_609",1,227,"_reduce_610",1,352,"_reduce_611",1,352,"_reduce_612",1,352,"_reduce_613",1,218,"_reduce_614",1,218,"_reduce_615",1,218,"_reduce_616",1,218,"_reduce_617",1,218,"_reduce_618",1,219,"_reduce_619",1,219,"_reduce_620",1,219,"_reduce_621",1,219,"_reduce_622",1,219,"_reduce_623",1,219,"_reduce_624",1,219,"_reduce_625",1,252,"_reduce_626",1,252,"_reduce_627",1,176,"_reduce_628",1,176,"_reduce_629",1,186,"_reduce_630",1,186,"_reduce_631",0,370,"_reduce_632",4,263,"_reduce_633",0,263,"_reduce_634",1,182,"_reduce_none",1,182,"_reduce_636",3,371,"_reduce_637",1,266,"_reduce_none",0,373,"_reduce_639",3,266,"_reduce_640",4,372,"_reduce_641",2,372,"_reduce_642",2,372,"_reduce_643",1,372,"_reduce_644",1,372,"_reduce_645",2,375,"_reduce_646",0,375,"_reduce_647",6,304,"_reduce_648",8,304,"_reduce_649",4,304,"_reduce_650",6,304,"_reduce_651",4,304,"_reduce_652",6,304,"_reduce_653",2,304,"_reduce_654",4,304,"_reduce_655",6,304,"_reduce_656",2,304,"_reduce_657",4,304,"_reduce_658",2,304,"_reduce_659",4,304,"_reduce_660",1,304,"_reduce_661",0,304,"_reduce_662",1,239,"_reduce_663",1,299,"_reduce_664",1,299,"_reduce_665",1,299,"_reduce_666",1,299,"_reduce_667",1,275,"_reduce_none",1,275,"_reduce_669",1,377,"_reduce_670",1,378,"_reduce_671",3,378,"_reduce_672",1,291,"_reduce_673",3,291,"_reduce_674",1,379,"_reduce_675",2,380,"_reduce_676",1,380,"_reduce_677",2,381,"_reduce_678",1,381,"_reduce_679",1,285,"_reduce_680",3,285,"_reduce_681",1,374,"_reduce_682",3,374,"_reduce_683",1,347,"_reduce_none",1,347,"_reduce_none",2,281,"_reduce_686",2,280,"_reduce_687",1,280,"_reduce_688",3,382,"_reduce_689",3,383,"_reduce_690",1,292,"_reduce_691",3,292,"_reduce_692",1,376,"_reduce_693",3,376,"_reduce_694",1,384,"_reduce_none",1,384,"_reduce_none",2,293,"_reduce_697",1,293,"_reduce_698",1,385,"_reduce_none",1,385,"_reduce_none",2,287,"_reduce_701",1,287,"_reduce_702",2,286,"_reduce_703",0,286,"_reduce_704",1,197,"_reduce_none",3,197,"_reduce_706",0,253,"_reduce_707",2,253,"_reduce_none",1,237,"_reduce_709",3,237,"_reduce_710",3,386,"_reduce_711",2,386,"_reduce_712",1,386,"_reduce_713",4,386,"_reduce_714",2,386,"_reduce_715",1,208,"_reduce_none",1,208,"_reduce_none",1,208,"_reduce_none",1,202,"_reduce_none",1,202,"_reduce_none",1,202,"_reduce_none",1,202,"_reduce_none",1,310,"_reduce_none",1,310,"_reduce_none",1,310,"_reduce_none",1,198,"_reduce_none",1,198,"_reduce_none",1,180,"_reduce_728",1,180,"_reduce_729",0,152,"_reduce_none",1,152,"_reduce_none",0,187,"_reduce_none",1,187,"_reduce_none",2,213,"_reduce_734",2,179,"_reduce_735",2,334,"_reduce_736",0,236,"_reduce_none",1,236,"_reduce_none",1,236,"_reduce_none",1,264,"_reduce_740",1,264,"_reduce_none",1,154,"_reduce_none",2,154,"_reduce_none",0,234,"_reduce_744"],745,1238,racc_token_table=$hash(!1,0,"error",1,"kCLASS",2,"kMODULE",3,"kDEF",4,"kUNDEF",5,"kBEGIN",6,"kRESCUE",7,"kENSURE",8,"kEND",9,"kIF",10,"kUNLESS",11,"kTHEN",12,"kELSIF",13,"kELSE",14,"kCASE",15,"kWHEN",16,"kWHILE",17,"kUNTIL",18,"kFOR",19,"kBREAK",20,"kNEXT",21,"kREDO",22,"kRETRY",23,"kIN",24,"kDO",25,"kDO_COND",26,"kDO_BLOCK",27,"kDO_LAMBDA",28,"kRETURN",29,"kYIELD",30,"kSUPER",31,"kSELF",32,"kNIL",33,"kTRUE",34,"kFALSE",35,"kAND",36,"kOR",37,"kNOT",38,"kIF_MOD",39,"kUNLESS_MOD",40,"kWHILE_MOD",41,"kUNTIL_MOD",42,"kRESCUE_MOD",43,"kALIAS",44,"kDEFINED",45,"klBEGIN",46,"klEND",47,"k__LINE__",48,"k__FILE__",49,"k__ENCODING__",50,"tIDENTIFIER",51,"tFID",52,"tGVAR",53,"tIVAR",54,"tCONSTANT",55,"tLABEL",56,"tCVAR",57,"tNTH_REF",58,"tBACK_REF",59,"tSTRING_CONTENT",60,"tINTEGER",61,"tFLOAT",62,"tUPLUS",63,"tUMINUS",64,"tUNARY_NUM",65,"tPOW",66,"tCMP",67,"tEQ",68,"tEQQ",69,"tNEQ",70,"tGEQ",71,"tLEQ",72,"tANDOP",73,"tOROP",74,"tMATCH",75,"tNMATCH",76,"tDOT",77,"tDOT2",78,"tDOT3",79,"tAREF",80,"tASET",81,"tLSHFT",82,"tRSHFT",83,"tCOLON2",84,"tCOLON3",85,"tOP_ASGN",86,"tASSOC",87,"tLPAREN",88,"tLPAREN2",89,"tRPAREN",90,"tLPAREN_ARG",91,"tLBRACK",92,"tLBRACK2",93,"tRBRACK",94,"tLBRACE",95,"tLBRACE_ARG",96,"tSTAR",97,"tSTAR2",98,"tAMPER",99,"tAMPER2",100,"tTILDE",101,"tPERCENT",102,"tDIVIDE",103,"tDSTAR",104,"tPLUS",105,"tMINUS",106,"tLT",107,"tGT",108,"tPIPE",109,"tBANG",110,"tCARET",111,"tLCURLY",112,"tRCURLY",113,"tBACK_REF2",114,"tSYMBEG",115,"tSTRING_BEG",116,"tXSTRING_BEG",117,"tREGEXP_BEG",118,"tREGEXP_OPT",119,"tWORDS_BEG",120,"tQWORDS_BEG",121,"tSYMBOLS_BEG",122,"tQSYMBOLS_BEG",123,"tSTRING_DBEG",124,"tSTRING_DVAR",125,"tSTRING_END",126,"tSTRING_DEND",127,"tSTRING",128,"tSYMBOL",129,"tNL",130,"tEH",131,"tCOLON",132,"tCOMMA",133,"tSPACE",134,"tSEMI",135,"tLAMBDA",136,"tLAMBEG",137,"tCHARACTER",138,"tRATIONAL",139,"tIMAGINARY",140,"tLABEL_END",141,"tANDDOT",142,"tBDOT2",143,"tBDOT3",144,"tEQL",145,"tLOWEST",146),147,!0,$const_set($nesting[0],"Racc_arg",[racc_action_table,racc_action_check,racc_action_default,racc_action_pointer,racc_goto_table,racc_goto_check,racc_goto_default,racc_goto_pointer,147,racc_reduce_table,racc_token_table,1238,745,true]),$const_set($nesting[0],"Racc_token_to_s_table",["$end","error","kCLASS","kMODULE","kDEF","kUNDEF","kBEGIN","kRESCUE","kENSURE","kEND","kIF","kUNLESS","kTHEN","kELSIF","kELSE","kCASE","kWHEN","kWHILE","kUNTIL","kFOR","kBREAK","kNEXT","kREDO","kRETRY","kIN","kDO","kDO_COND","kDO_BLOCK","kDO_LAMBDA","kRETURN","kYIELD","kSUPER","kSELF","kNIL","kTRUE","kFALSE","kAND","kOR","kNOT","kIF_MOD","kUNLESS_MOD","kWHILE_MOD","kUNTIL_MOD","kRESCUE_MOD","kALIAS","kDEFINED","klBEGIN","klEND","k__LINE__","k__FILE__","k__ENCODING__","tIDENTIFIER","tFID","tGVAR","tIVAR","tCONSTANT","tLABEL","tCVAR","tNTH_REF","tBACK_REF","tSTRING_CONTENT","tINTEGER","tFLOAT","tUPLUS","tUMINUS","tUNARY_NUM","tPOW","tCMP","tEQ","tEQQ","tNEQ","tGEQ","tLEQ","tANDOP","tOROP","tMATCH","tNMATCH","tDOT","tDOT2","tDOT3","tAREF","tASET","tLSHFT","tRSHFT","tCOLON2","tCOLON3","tOP_ASGN","tASSOC","tLPAREN","tLPAREN2","tRPAREN","tLPAREN_ARG","tLBRACK","tLBRACK2","tRBRACK","tLBRACE","tLBRACE_ARG","tSTAR","tSTAR2","tAMPER","tAMPER2","tTILDE","tPERCENT","tDIVIDE","tDSTAR","tPLUS","tMINUS","tLT","tGT","tPIPE","tBANG","tCARET","tLCURLY","tRCURLY","tBACK_REF2","tSYMBEG","tSTRING_BEG","tXSTRING_BEG","tREGEXP_BEG","tREGEXP_OPT","tWORDS_BEG","tQWORDS_BEG","tSYMBOLS_BEG","tQSYMBOLS_BEG","tSTRING_DBEG","tSTRING_DVAR","tSTRING_END","tSTRING_DEND","tSTRING","tSYMBOL","tNL","tEH","tCOLON","tCOMMA","tSPACE","tSEMI","tLAMBDA","tLAMBEG","tCHARACTER","tRATIONAL","tIMAGINARY","tLABEL_END","tANDDOT","tBDOT2","tBDOT3","tEQL","tLOWEST","$start","program","top_compstmt","@1","top_stmts","opt_terms","top_stmt","terms","stmt","begin_block","bodystmt","compstmt","opt_rescue","opt_else","opt_ensure","stmts","stmt_or_begin","fitem","undef_list","expr_value","command_asgn","mlhs","command_call","lhs","mrhs","mrhs_arg","expr","@2","command_rhs","var_lhs","primary_value","opt_call_args","rbracket","call_op","defn_head","f_opt_paren_args","command","arg","defs_head","backref","opt_nl","p_top_expr_body","@3","@4","expr_value_do","do","def_name","@5","fname","k_def","singleton","dot_or_colon","@6","block_command","block_call","operation2","command_args","cmd_brace_block","brace_body","fcall","@7","operation","k_return","call_args","mlhs_basic","mlhs_inner","rparen","mlhs_head","mlhs_item","mlhs_node","mlhs_post","user_variable","keyword_variable","cname","cpath","op","reswords","symbol","@8","arg_rhs","simple_numeric","rel_expr","primary","relop","@9","arg_value","aref_args","none","args","trailer","assocs","paren_args","args_forward","opt_paren_args","opt_block_arg","block_arg","@10","literal","strings","xstring","regexp","words","qwords","symbols","qsymbols","var_ref","assoc_list","brace_block","method_call","lambda","then","if_tail","case_body","p_case_body","for_var","k_class","superclass","term","k_module","f_arglist","@11","@12","@13","@14","@15","@16","@17","f_marg","f_norm_arg","f_margs","f_marg_list","f_rest_marg","f_any_kwrest","f_kwrest","f_no_kwarg","f_eq","block_args_tail","@18","f_block_kwarg","opt_f_block_arg","f_block_arg","opt_block_args_tail","excessed_comma","block_param","f_arg","f_block_optarg","f_rest_arg","opt_block_param","block_param_def","opt_bv_decl","bv_decls","bvar","f_bad_arg","f_larglist","lambda_body","@19","@20","f_args","do_block","@21","@22","do_body","@23","operation3","@24","@25","@26","@27","@28","cases","p_top_expr","p_cases","@29","@30","p_expr","p_args","p_find","p_args_tail","p_kwargs","p_as","p_variable","p_alt","p_expr_basic","p_lparen","p_lbracket","p_value","p_const","rbrace","@31","@32","p_args_head","p_arg","p_args_post","p_rest","p_kwarg","p_any_kwrest","p_kw","p_kw_label","string_contents","p_kwrest","kwrest_mark","p_kwnorest","p_primitive","p_var_ref","p_expr_ref","nonlocal_var","exc_list","exc_var","numeric","string","string1","xstring_contents","regexp_contents","word_list","word","string_content","symbol_list","qword_list","qsym_list","string_dvar","@33","ssym","dsym","@34","f_paren_args","args_tail","@35","f_kwarg","opt_args_tail","f_optarg","f_arg_asgn","f_arg_item","f_label","f_kw","f_block_kw","f_opt","f_block_opt","restarg_mark","blkarg_mark","assoc"]),$const_set($nesting[0],"Racc_debug_parser",!1),$def(self,"$_reduce_1",(function(val,_values,result){return this.current_arg_stack.$push(nil),this.max_numparam_stack.$push($hash2(["static"],{static:!0})),result}),3),$def(self,"$_reduce_2",(function(val,_values,result){return result=val["$[]"](1),this.current_arg_stack.$pop(),this.max_numparam_stack.$pop(),result}),3),$def(self,"$_reduce_3",(function(val,_values,result){return this.builder.$compstmt(val["$[]"](0))}),3),$def(self,"$_reduce_4",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_5",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_6",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_7",(function(val,_values,result){return[val["$[]"](1)]}),3),$def(self,"$_reduce_9",(function(val,_values,result){return $send(this.builder,"preexe",[val["$[]"](0)].concat($to_a(val["$[]"](1))))}),3),$def(self,"$_reduce_10",(function(val,_values,result){return val}),3),$def(self,"$_reduce_11",(function(val,_values,result){var $a,$b,else_,ensure_t,ensure_,rescue_bodies=nil,else_t=nil;return rescue_bodies=val["$[]"](1),$b=val["$[]"](2),else_t=null==($a=$to_ary($b))[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1],$b=val["$[]"](3),ensure_t=null==($a=$to_ary($b))[0]?nil:$a[0],ensure_=null==$a[1]?nil:$a[1],$truthy(rescue_bodies["$empty?"]())&&$not(else_t["$nil?"]())&&this.$diagnostic("error","useless_else",nil,else_t),this.builder.$begin_body(val["$[]"](0),rescue_bodies,else_t,else_,ensure_t,ensure_)}),3),$def(self,"$_reduce_12",(function(val,_values,result){return this.builder.$compstmt(val["$[]"](0))}),3),$def(self,"$_reduce_13",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_14",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_15",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_16",(function(val,_values,result){return[val["$[]"](1)]}),3),$def(self,"$_reduce_18",(function(val,_values,result){return this.$diagnostic("error","begin_in_method",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_19",(function(val,_values,result){var $writer;return $writer=["expr_fname"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_20",(function(val,_values,result){return this.builder.$alias(val["$[]"](0),val["$[]"](1),val["$[]"](3))}),3),$def(self,"$_reduce_21",(function(val,_values,result){return this.builder.$alias(val["$[]"](0),this.builder.$gvar(val["$[]"](1)),this.builder.$gvar(val["$[]"](2)))}),3),$def(self,"$_reduce_22",(function(val,_values,result){return this.builder.$alias(val["$[]"](0),this.builder.$gvar(val["$[]"](1)),this.builder.$back_ref(val["$[]"](2)))}),3),$def(self,"$_reduce_23",(function(val,_values,result){return this.$diagnostic("error","nth_ref_alias",nil,val["$[]"](2)),result}),3),$def(self,"$_reduce_24",(function(val,_values,result){return this.builder.$undef_method(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_25",(function(val,_values,result){return this.builder.$condition_mod(val["$[]"](0),nil,val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_26",(function(val,_values,result){return this.builder.$condition_mod(nil,val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_27",(function(val,_values,result){return this.builder.$loop_mod("while",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_28",(function(val,_values,result){return this.builder.$loop_mod("until",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_29",(function(val,_values,result){var rescue_body;return rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2)),this.builder.$begin_body(val["$[]"](0),[rescue_body])}),3),$def(self,"$_reduce_30",(function(val,_values,result){return this.builder.$postexe(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_32",(function(val,_values,result){return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_33",(function(val,_values,result){return this.builder.$assign(val["$[]"](0),val["$[]"](1),this.builder.$array(nil,val["$[]"](2),nil))}),3),$def(self,"$_reduce_34",(function(val,_values,result){var rescue_body,begin_body;return rescue_body=this.builder.$rescue_body(val["$[]"](3),nil,nil,nil,nil,val["$[]"](4)),begin_body=this.builder.$begin_body(val["$[]"](2),[rescue_body]),this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),begin_body)}),3),$def(self,"$_reduce_35",(function(val,_values,result){return this.builder.$multi_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_37",(function(val,_values,result){return this.builder.$assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_38",(function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_39",(function(val,_values,result){return this.builder.$op_assign(this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3)),val["$[]"](4),val["$[]"](5))}),3),$def(self,"$_reduce_40",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_41",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_42",(function(val,_values,result){var const$;return const$=this.builder.$const_op_assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))),this.builder.$op_assign(const$,val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_43",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_44",(function(val,_values,result){var $a,$b,$c,def_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_45",(function(val,_values,result){var $a,$b,$c,def_t,name_t,rescue_body,method_body,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_46",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_47",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,rescue_body,method_body,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_48",(function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2)),result}),3),$def(self,"$_reduce_50",(function(val,_values,result){var rescue_body;return rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2)),this.builder.$begin_body(val["$[]"](0),[rescue_body])}),3),$def(self,"$_reduce_53",(function(val,_values,result){return this.builder.$logical_op("and",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_54",(function(val,_values,result){return this.builder.$logical_op("or",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_55",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](2),nil)}),3),$def(self,"$_reduce_56",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_57",(function(val,_values,result){var $writer=nil;return $writer=["expr_beg"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.lexer,"command_start=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.pattern_variables.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_58",(function(val,_values,result){var $writer;return this.pattern_variables.$pop(),$writer=[val["$[]"](2)],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$match_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](3))}),3),$def(self,"$_reduce_59",(function(val,_values,result){var $writer=nil;return $writer=["expr_beg"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.lexer,"command_start=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.pattern_variables.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_60",(function(val,_values,result){var $writer;return this.pattern_variables.$pop(),$writer=[val["$[]"](2)],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$match_pattern_p(val["$[]"](0),val["$[]"](1),val["$[]"](3))}),3),$def(self,"$_reduce_63",(function(val,_values,result){return this.lexer.$cond().$push(!0),result}),3),$def(self,"$_reduce_64",(function(val,_values,result){return this.lexer.$cond().$pop(),[val["$[]"](1),val["$[]"](2)]}),3),$def(self,"$_reduce_65",(function(val,_values,result){var $writer;return this.$local_push(),this.current_arg_stack.$push(nil),result=[val["$[]"](0),this.context.$dup()],$writer=[!0],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_66",(function(val,_values,result){return[val["$[]"](0),val["$[]"](1)]}),3),$def(self,"$_reduce_67",(function(val,_values,result){var $writer=nil;return $writer=["expr_fname"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_68",(function(val,_values,result){return[val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](4)]}),3),$def(self,"$_reduce_72",(function(val,_values,result){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)}),3),$def(self,"$_reduce_73",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_74",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3)])}),3),$def(self,"$_reduce_76",(function(val,_values,result){return this.builder.$call_method(nil,nil,val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_77",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(nil,nil,val["$[]"](0),nil,val["$[]"](1),nil),$b=val["$[]"](2),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_78",(function(val,_values,result){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)}),3),$def(self,"$_reduce_79",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_80",(function(val,_values,result){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil)}),3),$def(self,"$_reduce_81",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_82",(function(val,_values,result){return this.builder.$keyword_cmd("super",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_83",(function(val,_values,result){return this.builder.$keyword_cmd("yield",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_84",(function(val,_values,result){return this.builder.$keyword_cmd("return",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_85",(function(val,_values,result){return this.builder.$keyword_cmd("break",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_86",(function(val,_values,result){return this.builder.$keyword_cmd("next",val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_87",(function(val,_values,result){return this.builder.$multi_lhs(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_88",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_89",(function(val,_values,result){return this.builder.$multi_lhs(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_90",(function(val,_values,result){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_92",(function(val,_values,result){return val["$[]"](0).$push(val["$[]"](1))}),3),$def(self,"$_reduce_93",(function(val,_values,result){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1),val["$[]"](2)))}),3),$def(self,"$_reduce_94",(function(val,_values,result){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1),val["$[]"](2))).$concat(val["$[]"](4))}),3),$def(self,"$_reduce_95",(function(val,_values,result){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1)))}),3),$def(self,"$_reduce_96",(function(val,_values,result){return val["$[]"](0).$push(this.builder.$splat(val["$[]"](1))).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_97",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_98",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))].concat($to_a(val["$[]"](3)))}),3),$def(self,"$_reduce_99",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0))]}),3),$def(self,"$_reduce_100",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0))].concat($to_a(val["$[]"](2)))}),3),$def(self,"$_reduce_102",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_103",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_104",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_105",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_106",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_107",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_108",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_109",(function(val,_values,result){return this.builder.$index_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_110",(function(val,_values,result){return $eqeq(val["$[]"](1)["$[]"](0),"anddot")&&this.$diagnostic("error","csend_in_lhs_of_masgn",nil,val["$[]"](1)),this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_111",(function(val,_values,result){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_112",(function(val,_values,result){return $eqeq(val["$[]"](1)["$[]"](0),"anddot")&&this.$diagnostic("error","csend_in_lhs_of_masgn",nil,val["$[]"](1)),this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_113",(function(val,_values,result){return this.builder.$assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)))}),3),$def(self,"$_reduce_114",(function(val,_values,result){return this.builder.$assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)))}),3),$def(self,"$_reduce_115",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_116",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_117",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_118",(function(val,_values,result){return this.builder.$index_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_119",(function(val,_values,result){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_120",(function(val,_values,result){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_121",(function(val,_values,result){return this.builder.$attr_asgn(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_122",(function(val,_values,result){return this.builder.$assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2)))}),3),$def(self,"$_reduce_123",(function(val,_values,result){return this.builder.$assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1)))}),3),$def(self,"$_reduce_124",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_125",(function(val,_values,result){return this.$diagnostic("error","module_name_const",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_127",(function(val,_values,result){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_128",(function(val,_values,result){return this.builder.$const(val["$[]"](0))}),3),$def(self,"$_reduce_129",(function(val,_values,result){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_135",(function(val,_values,result){return this.builder.$symbol_internal(val["$[]"](0))}),3),$def(self,"$_reduce_137",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_138",(function(val,_values,result){var $writer;return $writer=["expr_fname"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_139",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](3))}),3),$def(self,"$_reduce_211",(function(val,_values,result){return this.builder.$assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_212",(function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_213",(function(val,_values,result){return this.builder.$op_assign(this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3)),val["$[]"](4),val["$[]"](5))}),3),$def(self,"$_reduce_214",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_215",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_216",(function(val,_values,result){return this.builder.$op_assign(this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2)),val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_217",(function(val,_values,result){var const$;return const$=this.builder.$const_op_assignable(this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))),this.builder.$op_assign(const$,val["$[]"](3),val["$[]"](4))}),3),$def(self,"$_reduce_218",(function(val,_values,result){var const$;return const$=this.builder.$const_op_assignable(this.builder.$const_global(val["$[]"](0),val["$[]"](1))),this.builder.$op_assign(const$,val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_219",(function(val,_values,result){return this.builder.$op_assign(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_220",(function(val,_values,result){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_221",(function(val,_values,result){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_222",(function(val,_values,result){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),nil)}),3),$def(self,"$_reduce_223",(function(val,_values,result){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),nil)}),3),$def(self,"$_reduce_224",(function(val,_values,result){return this.builder.$range_inclusive(nil,val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_225",(function(val,_values,result){return this.builder.$range_exclusive(nil,val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_226",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_227",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_228",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_229",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_230",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_231",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_232",(function(val,_values,result){return this.builder.$unary_op(val["$[]"](0),this.builder.$binary_op(val["$[]"](1),val["$[]"](2),val["$[]"](3)))}),3),$def(self,"$_reduce_233",(function(val,_values,result){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_234",(function(val,_values,result){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_235",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_236",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_237",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_238",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_240",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_241",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_242",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_243",(function(val,_values,result){return this.builder.$match_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_244",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_245",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_246",(function(val,_values,result){return this.builder.$unary_op(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_247",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_248",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_249",(function(val,_values,result){return this.builder.$logical_op("and",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_250",(function(val,_values,result){return this.builder.$logical_op("or",val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_251",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_defined=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_252",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_defined=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$keyword_cmd("defined?",val["$[]"](0),nil,[val["$[]"](3)],nil)}),3),$def(self,"$_reduce_253",(function(val,_values,result){return this.builder.$ternary(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](4),val["$[]"](5))}),3),$def(self,"$_reduce_254",(function(val,_values,result){var $a,$b,$c,def_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_255",(function(val,_values,result){var $a,$b,$c,def_t,name_t,rescue_body,method_body,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_method(def_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_256",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_257",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,rescue_body,method_body,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],this.$endless_method_name(name_t),rescue_body=this.builder.$rescue_body(val["$[]"](4),nil,nil,nil,nil,val["$[]"](5)),method_body=this.builder.$begin_body(val["$[]"](3),[rescue_body]),result=this.builder.$def_endless_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),method_body),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_263",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_264",(function(val,_values,result){return this.builder.$binary_op(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_268",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$associate(nil,val["$[]"](2),nil))}),3),$def(self,"$_reduce_269",(function(val,_values,result){return[this.builder.$associate(nil,val["$[]"](0),nil)]}),3),$def(self,"$_reduce_271",(function(val,_values,result){var rescue_body;return rescue_body=this.builder.$rescue_body(val["$[]"](1),nil,nil,nil,nil,val["$[]"](2)),this.builder.$begin_body(val["$[]"](0),[rescue_body])}),3),$def(self,"$_reduce_272",(function(val,_values,result){return val}),3),$def(self,"$_reduce_273",(function(val,_values,result){return $truthy(this.static_env["$declared_forward_args?"]())||this.$diagnostic("error","unexpected_token",$hash2(["token"],{token:"tBDOT3"}),val["$[]"](3)),[val["$[]"](0),[].concat($to_a(val["$[]"](1))).concat([this.builder.$forwarded_args(val["$[]"](3))]),val["$[]"](4)]}),3),$def(self,"$_reduce_274",(function(val,_values,result){return $truthy(this.static_env["$declared_forward_args?"]())||this.$diagnostic("error","unexpected_token",$hash2(["token"],{token:"tBDOT3"}),val["$[]"](1)),[val["$[]"](0),[this.builder.$forwarded_args(val["$[]"](1))],val["$[]"](2)]}),3),$def(self,"$_reduce_275",(function(val,_values,result){return[nil,[],nil]}),3),$def(self,"$_reduce_277",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_280",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$associate(nil,val["$[]"](2),nil))}),3),$def(self,"$_reduce_281",(function(val,_values,result){return[this.builder.$associate(nil,val["$[]"](0),nil)]}),3),$def(self,"$_reduce_282",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_283",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_284",(function(val,_values,result){return(result=[this.builder.$associate(nil,val["$[]"](0),nil)]).$concat(val["$[]"](1)),result}),3),$def(self,"$_reduce_285",(function(val,_values,result){var assocs;return assocs=this.builder.$associate(nil,val["$[]"](2),nil),(result=val["$[]"](0)["$<<"](assocs)).$concat(val["$[]"](3)),result}),3),$def(self,"$_reduce_286",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_287",(function(val,_values,result){var lookahead,$ret_or_1,last_token=nil,top=nil;return last_token=this.last_token["$[]"](0),lookahead=$truthy($ret_or_1=last_token["$=="]("tLBRACK"))?$ret_or_1:last_token["$=="]("tLPAREN_ARG"),$truthy(lookahead)?(top=this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$push(!0),this.lexer.$cmdarg().$push(top)):this.lexer.$cmdarg().$push(!0),result}),3),$def(self,"$_reduce_288",(function(val,_values,result){var lookahead,top=nil;return lookahead=this.last_token["$[]"](0)["$=="]("tLBRACE_ARG"),$truthy(lookahead)?(top=this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$pop(),this.lexer.$cmdarg().$push(top)):this.lexer.$cmdarg().$pop(),val["$[]"](1)}),3),$def(self,"$_reduce_289",(function(val,_values,result){return this.builder.$block_pass(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_290",(function(val,_values,result){return $not(this.static_env["$declared_anonymous_blockarg?"]())&&this.$diagnostic("error","no_anonymous_blockarg",nil,val["$[]"](0)),this.builder.$block_pass(val["$[]"](0),nil)}),3),$def(self,"$_reduce_291",(function(val,_values,result){return[val["$[]"](1)]}),3),$def(self,"$_reduce_292",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_293",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_294",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_295",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_296",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$splat(val["$[]"](2),val["$[]"](3)))}),3),$def(self,"$_reduce_297",(function(val,_values,result){return this.builder.$array(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_299",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_300",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$splat(val["$[]"](2),val["$[]"](3)))}),3),$def(self,"$_reduce_301",(function(val,_values,result){return[this.builder.$splat(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_312",(function(val,_values,result){return this.builder.$call_method(nil,nil,val["$[]"](0))}),3),$def(self,"$_reduce_313",(function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result}),3),$def(self,"$_reduce_314",(function(val,_values,result){return this.lexer.$cmdarg().$pop(),this.builder.$begin_keyword(val["$[]"](0),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_315",(function(val,_values,result){var $writer;return $writer=["expr_endarg"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_316",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](3))}),3),$def(self,"$_reduce_317",(function(val,_values,result){var $writer;return $writer=["expr_endarg"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_318",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),nil,val["$[]"](3))}),3),$def(self,"$_reduce_319",(function(val,_values,result){return this.builder.$begin(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_320",(function(val,_values,result){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_321",(function(val,_values,result){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_322",(function(val,_values,result){return this.builder.$array(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_323",(function(val,_values,result){return this.builder.$associate(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_324",(function(val,_values,result){return this.builder.$keyword_cmd("return",val["$[]"](0))}),3),$def(self,"$_reduce_325",(function(val,_values,result){return this.builder.$keyword_cmd("yield",val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_326",(function(val,_values,result){return this.builder.$keyword_cmd("yield",val["$[]"](0),val["$[]"](1),[],val["$[]"](2))}),3),$def(self,"$_reduce_327",(function(val,_values,result){return this.builder.$keyword_cmd("yield",val["$[]"](0))}),3),$def(self,"$_reduce_328",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_defined=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_329",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_defined=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$keyword_cmd("defined?",val["$[]"](0),val["$[]"](2),[val["$[]"](4)],val["$[]"](5))}),3),$def(self,"$_reduce_330",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_331",(function(val,_values,result){return this.builder.$not_op(val["$[]"](0),val["$[]"](1),nil,val["$[]"](2))}),3),$def(self,"$_reduce_332",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(nil,nil,val["$[]"](0)),$b=val["$[]"](1),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_334",(function(val,_values,result){var $a,$b,begin_t,args,body,end_t;return $b=val["$[]"](1),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(val["$[]"](0),begin_t,args,body,end_t)}),3),$def(self,"$_reduce_336",(function(val,_values,result){var $a,$b,else_t,else_;return $b=val["$[]"](4),else_t=null==($a=$to_ary($b))[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1],this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3),else_t,else_,val["$[]"](5))}),3),$def(self,"$_reduce_337",(function(val,_values,result){var $a,$b,else_t,else_;return $b=val["$[]"](4),else_t=null==($a=$to_ary($b))[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1],this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),else_,else_t,val["$[]"](3),val["$[]"](5))}),3),$def(self,"$_reduce_338",(function(val,_values,result){return $send(this.builder,"loop",["while",val["$[]"](0)].concat($to_a(val["$[]"](1))).concat([val["$[]"](2),val["$[]"](3)]))}),3),$def(self,"$_reduce_339",(function(val,_values,result){return $send(this.builder,"loop",["until",val["$[]"](0)].concat($to_a(val["$[]"](1))).concat([val["$[]"](2),val["$[]"](3)]))}),3),$def(self,"$_reduce_340",(function(val,_values,result){var $a,$b,$c,when_bodies,else_t,else_body;return $b=($b=($a=[].concat($to_a(val["$[]"](3)))).length-1)<0?0:$b,when_bodies=$slice.call($a,0,$b),else_t=null==($c=$to_ary(null==$a[$b]?nil:$a[$b]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case(val["$[]"](0),val["$[]"](1),when_bodies,else_t,else_body,val["$[]"](4))}),3),$def(self,"$_reduce_341",(function(val,_values,result){var $a,$b,$c,when_bodies,else_t,else_body;return $b=($b=($a=[].concat($to_a(val["$[]"](2)))).length-1)<0?0:$b,when_bodies=$slice.call($a,0,$b),else_t=null==($c=$to_ary(null==$a[$b]?nil:$a[$b]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case(val["$[]"](0),nil,when_bodies,else_t,else_body,val["$[]"](3))}),3),$def(self,"$_reduce_342",(function(val,_values,result){var $a,$b,$c,in_bodies,else_t,else_body;return $b=($b=($a=[].concat($to_a(val["$[]"](3)))).length-1)<0?0:$b,in_bodies=$slice.call($a,0,$b),else_t=null==($c=$to_ary(null==$a[$b]?nil:$a[$b]))[0]?nil:$c[0],else_body=null==$c[1]?nil:$c[1],this.builder.$case_match(val["$[]"](0),val["$[]"](1),in_bodies,else_t,else_body,val["$[]"](4))}),3),$def(self,"$_reduce_343",(function(val,_values,result){return $send(this.builder,"for",[val["$[]"](0),val["$[]"](1),val["$[]"](2)].concat($to_a(val["$[]"](3))).concat([val["$[]"](4),val["$[]"](5)]))}),3),$def(self,"$_reduce_344",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_class=",$to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result}),3),$def(self,"$_reduce_345",(function(val,_values,result){var $a,$b,k_class,lt_t,superclass,$writer,ctx=nil;return $b=val["$[]"](0),k_class=null==($a=$to_ary($b))[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1],$truthy(this.context.$in_def())&&this.$diagnostic("error","class_in_def",nil,k_class),$b=val["$[]"](2),lt_t=null==($a=$to_ary($b))[0]?nil:$a[0],superclass=null==$a[1]?nil:$a[1],result=this.builder.$def_class(k_class,val["$[]"](1),lt_t,superclass,val["$[]"](4),val["$[]"](5)),this.$local_pop(),$writer=[ctx.$in_class()],$send(this.context,"in_class=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_346",(function(val,_values,result){var $writer=nil;return $writer=[!1],$send(this.context,"in_def=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.context,"in_class=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.$local_push(),result}),3),$def(self,"$_reduce_347",(function(val,_values,result){var $a,$b,k_class,ctx=nil,$writer=nil;return $b=val["$[]"](0),k_class=null==($a=$to_ary($b))[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1],result=this.builder.$def_sclass(k_class,val["$[]"](1),val["$[]"](2),val["$[]"](5),val["$[]"](6)),this.$local_pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[ctx.$in_class()],$send(this.context,"in_class=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_348",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_class=",$to_a($writer)),$rb_minus($writer.length,1),this.$local_push(),result}),3),$def(self,"$_reduce_349",(function(val,_values,result){var $a,$b,k_mod,$writer,ctx=nil;return $b=val["$[]"](0),k_mod=null==($a=$to_ary($b))[0]?nil:$a[0],ctx=null==$a[1]?nil:$a[1],$truthy(this.context.$in_def())&&this.$diagnostic("error","module_in_def",nil,k_mod),result=this.builder.$def_module(k_mod,val["$[]"](1),val["$[]"](3),val["$[]"](4)),this.$local_pop(),$writer=[ctx.$in_class()],$send(this.context,"in_class=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_350",(function(val,_values,result){var $a,$b,$c,def_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],name_t=null==($c=$to_ary(null==$a[1]?nil:$a[1]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],result=this.builder.$def_method(def_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_351",(function(val,_values,result){var $a,$b,$c,def_t,recv,dot_t,name_t,$writer,ctx=nil;return $b=val["$[]"](0),def_t=null==($a=$to_ary($b))[0]?nil:$a[0],recv=null==$a[1]?nil:$a[1],dot_t=null==$a[2]?nil:$a[2],name_t=null==($c=$to_ary(null==$a[3]?nil:$a[3]))[0]?nil:$c[0],ctx=null==$c[1]?nil:$c[1],result=this.builder.$def_singleton(def_t,recv,dot_t,name_t,val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.$local_pop(),this.current_arg_stack.$pop(),$writer=[ctx.$in_def()],$send(this.context,"in_def=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_352",(function(val,_values,result){return this.builder.$keyword_cmd("break",val["$[]"](0))}),3),$def(self,"$_reduce_353",(function(val,_values,result){return this.builder.$keyword_cmd("next",val["$[]"](0))}),3),$def(self,"$_reduce_354",(function(val,_values,result){return this.builder.$keyword_cmd("redo",val["$[]"](0))}),3),$def(self,"$_reduce_355",(function(val,_values,result){return this.builder.$keyword_cmd("retry",val["$[]"](0))}),3),$def(self,"$_reduce_357",(function(val,_values,result){return[val["$[]"](0),this.context.$dup()]}),3),$def(self,"$_reduce_358",(function(val,_values,result){return[val["$[]"](0),this.context.$dup()]}),3),$def(self,"$_reduce_359",(function(val,_values,result){var $writer;return result=val["$[]"](0),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_360",(function(val,_values,result){var $ret_or_1=nil;return $truthy(this.context.$in_class())&&$not(this.context.$in_def())&&$not($truthy($ret_or_1=this.$context().$in_block())?$ret_or_1:this.$context().$in_lambda())&&this.$diagnostic("error","invalid_return",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_363",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_367",(function(val,_values,result){var $a,$b,else_t,else_;return $b=val["$[]"](4),else_t=null==($a=$to_ary($b))[0]?nil:$a[0],else_=null==$a[1]?nil:$a[1],[val["$[]"](0),this.builder.$condition(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3),else_t,else_,nil)]}),3),$def(self,"$_reduce_369",(function(val,_values,result){return val}),3),$def(self,"$_reduce_372",(function(val,_values,result){return this.builder.$arg(val["$[]"](0))}),3),$def(self,"$_reduce_373",(function(val,_values,result){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_374",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_375",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_377",(function(val,_values,result){return val["$[]"](0).$push(val["$[]"](2))}),3),$def(self,"$_reduce_378",(function(val,_values,result){return val["$[]"](0).$push(val["$[]"](2)).$concat(val["$[]"](4))}),3),$def(self,"$_reduce_379",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_380",(function(val,_values,result){return[val["$[]"](0)].concat($to_a(val["$[]"](2)))}),3),$def(self,"$_reduce_381",(function(val,_values,result){return this.builder.$restarg(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_382",(function(val,_values,result){return this.builder.$restarg(val["$[]"](0))}),3),$def(self,"$_reduce_385",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_386",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_387",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_388",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_389",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_390",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_391",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_392",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_394",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_395",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](6)).$concat(val["$[]"](7))}),3),$def(self,"$_reduce_396",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_397",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_398",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_400",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_401",(function(val,_values,result){return $truthy(val["$[]"](1)["$empty?"]())&&$eqeq(val["$[]"](0).$size(),1)?[this.builder.$procarg0(val["$[]"](0)["$[]"](0))]:val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_402",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_403",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_404",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_405",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_406",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_407",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_409",(function(val,_values,result){return this.builder.$args(nil,[],nil)}),3),$def(self,"$_reduce_410",(function(val,_values,result){var $writer;return $writer=["expr_value"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_411",(function(val,_values,result){var $writer;return this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(nil),$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$args(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_412",(function(val,_values,result){var $writer;return this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(nil),$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$args(val["$[]"](0),val["$[]"](1).$concat(val["$[]"](2)),val["$[]"](3))}),3),$def(self,"$_reduce_413",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_414",(function(val,_values,result){return val["$[]"](2)}),3),$def(self,"$_reduce_415",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_416",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_417",(function(val,_values,result){return this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.builder.$shadowarg(val["$[]"](0))}),3),$def(self,"$_reduce_419",(function(val,_values,result){var $writer;return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_420",(function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result}),3),$def(self,"$_reduce_421",(function(val,_values,result){var $a,$b,lambda_call,args,begin_t,body,end_t,$writer;return lambda_call=this.builder.$call_lambda(val["$[]"](0)),args=$truthy(this.max_numparam_stack["$has_numparams?"]())?this.builder.$numargs(this.max_numparam_stack.$top()):val["$[]"](2),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],end_t=null==$a[2]?nil:$a[2],this.max_numparam_stack.$pop(),this.static_env.$unextend(),this.lexer.$cmdarg().$pop(),$writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$block(lambda_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_422",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.max_numparam_stack["$has_ordinary_params!"](),this.builder.$args(val["$[]"](0),val["$[]"](1).$concat(val["$[]"](2)),val["$[]"](3))}),3),$def(self,"$_reduce_423",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),$truthy(val["$[]"](0)["$any?"]())&&this.max_numparam_stack["$has_ordinary_params!"](),this.builder.$args(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_424",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_425",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0),val["$[]"](2),val["$[]"](3)]}),3),$def(self,"$_reduce_426",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_427",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_lambda()],$send(this.context,"in_lambda=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0),val["$[]"](2),val["$[]"](3)]}),3),$def(self,"$_reduce_428",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_429",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3)])}),3),$def(self,"$_reduce_430",(function(val,_values,result){var $a,$b,begin_t,block_args,body,end_t;return $b=val["$[]"](1),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],block_args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(val["$[]"](0),begin_t,block_args,body,end_t)}),3),$def(self,"$_reduce_431",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](3),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_432",(function(val,_values,result){var $a,$b,lparen_t,rparen_t,method_call,begin_t,body,end_t,args=nil;return $b=val["$[]"](3),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_433",(function(val,_values,result){var $a,$b,method_call,begin_t,args,body,end_t;return method_call=this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),nil,val["$[]"](3),nil),$b=val["$[]"](4),begin_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],end_t=null==$a[3]?nil:$a[3],this.builder.$block(method_call,begin_t,args,body,end_t)}),3),$def(self,"$_reduce_434",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](1),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(nil,nil,val["$[]"](0),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_435",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](3),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_436",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](3),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_437",(function(val,_values,result){return this.builder.$call_method(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_438",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](2),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),nil,lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_439",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](2),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$call_method(val["$[]"](0),val["$[]"](1),nil,lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_440",(function(val,_values,result){var $a,$b,lparen_t,args,rparen_t;return $b=val["$[]"](1),lparen_t=null==($a=$to_ary($b))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],rparen_t=null==$a[2]?nil:$a[2],this.builder.$keyword_cmd("super",val["$[]"](0),lparen_t,args,rparen_t)}),3),$def(self,"$_reduce_441",(function(val,_values,result){return this.builder.$keyword_cmd("zsuper",val["$[]"](0))}),3),$def(self,"$_reduce_442",(function(val,_values,result){return this.builder.$index(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_443",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_444",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3)])}),3),$def(self,"$_reduce_445",(function(val,_values,result){var $writer;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_446",(function(val,_values,result){var $writer;return $writer=[val["$[]"](1).$in_block()],$send(this.context,"in_block=",$to_a($writer)),$rb_minus($writer.length,1),[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3)])}),3),$def(self,"$_reduce_447",(function(val,_values,result){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result}),3),$def(self,"$_reduce_448",(function(val,_values,result){return result=[$truthy(this.max_numparam_stack["$has_numparams?"]())?this.builder.$numargs(this.max_numparam_stack.$top()):val["$[]"](1),val["$[]"](2)],this.max_numparam_stack.$pop(),this.static_env.$unextend(),result}),3),$def(self,"$_reduce_449",(function(val,_values,result){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push($hash2(["static"],{static:!1})),result}),3),$def(self,"$_reduce_450",(function(val,_values,result){return this.lexer.$cmdarg().$push(!1),result}),3),$def(self,"$_reduce_451",(function(val,_values,result){return result=[$truthy(this.max_numparam_stack["$has_numparams?"]())?this.builder.$numargs(this.max_numparam_stack.$top()):val["$[]"](2),val["$[]"](3)],this.max_numparam_stack.$pop(),this.static_env.$unextend(),this.lexer.$cmdarg().$pop(),result}),3),$def(self,"$_reduce_452",(function(val,_values,result){return[this.builder.$when(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))].concat($to_a(val["$[]"](4)))}),3),$def(self,"$_reduce_453",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_455",(function(val,_values,result){var $writer=nil;return $writer=["expr_beg"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.lexer,"command_start=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.pattern_variables.$push(),this.pattern_hash_keys.$push(),result=this.context.$in_kwarg(),$writer=[!0],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_456",(function(val,_values,result){var $writer;return this.pattern_variables.$pop(),this.pattern_hash_keys.$pop(),$writer=[val["$[]"](1)],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_457",(function(val,_values,result){return[$send(this.builder,"in_pattern",[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](3),val["$[]"](5)]))].concat($to_a(val["$[]"](6)))}),3),$def(self,"$_reduce_458",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_460",(function(val,_values,result){return[val["$[]"](0),nil]}),3),$def(self,"$_reduce_461",(function(val,_values,result){return[val["$[]"](0),this.builder.$if_guard(val["$[]"](1),val["$[]"](2))]}),3),$def(self,"$_reduce_462",(function(val,_values,result){return[val["$[]"](0),this.builder.$unless_guard(val["$[]"](1),val["$[]"](2))]}),3),$def(self,"$_reduce_464",(function(val,_values,result){var item;return item=this.builder.$match_with_trailing_comma(val["$[]"](0),val["$[]"](1)),this.builder.$array_pattern(nil,[item],nil)}),3),$def(self,"$_reduce_465",(function(val,_values,result){return this.builder.$array_pattern(nil,[val["$[]"](0)].$concat(val["$[]"](2)),nil)}),3),$def(self,"$_reduce_466",(function(val,_values,result){return this.builder.$find_pattern(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_467",(function(val,_values,result){return this.builder.$array_pattern(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_468",(function(val,_values,result){return this.builder.$hash_pattern(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_470",(function(val,_values,result){return this.builder.$match_as(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_472",(function(val,_values,result){return this.builder.$match_alt(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_474",(function(val,_values,result){return result=val["$[]"](0),this.pattern_hash_keys.$push(),result}),3),$def(self,"$_reduce_475",(function(val,_values,result){return result=val["$[]"](0),this.pattern_hash_keys.$push(),result}),3),$def(self,"$_reduce_478",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$array_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_479",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$find_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_480",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$hash_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_481",(function(val,_values,result){var pattern;return pattern=this.builder.$array_pattern(val["$[]"](1),nil,val["$[]"](2)),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](2))}),3),$def(self,"$_reduce_482",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$array_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_483",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$find_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_484",(function(val,_values,result){var pattern;return this.pattern_hash_keys.$pop(),pattern=this.builder.$hash_pattern(nil,val["$[]"](2),nil),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](3))}),3),$def(self,"$_reduce_485",(function(val,_values,result){var pattern;return pattern=this.builder.$array_pattern(val["$[]"](1),nil,val["$[]"](2)),this.builder.$const_pattern(val["$[]"](0),val["$[]"](1),pattern,val["$[]"](2))}),3),$def(self,"$_reduce_486",(function(val,_values,result){return this.builder.$array_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_487",(function(val,_values,result){return this.builder.$find_pattern(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_488",(function(val,_values,result){return this.builder.$array_pattern(val["$[]"](0),[],val["$[]"](1))}),3),$def(self,"$_reduce_489",(function(val,_values,result){var $writer;return this.pattern_hash_keys.$push(),result=this.context.$in_kwarg(),$writer=[!1],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_490",(function(val,_values,result){var $writer;return this.pattern_hash_keys.$pop(),$writer=[val["$[]"](1)],$send(this.context,"in_kwarg=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$hash_pattern(val["$[]"](0),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_491",(function(val,_values,result){return this.builder.$hash_pattern(val["$[]"](0),[],val["$[]"](1))}),3),$def(self,"$_reduce_492",(function(val,_values,result){return this.pattern_hash_keys.$push(),result}),3),$def(self,"$_reduce_493",(function(val,_values,result){return this.pattern_hash_keys.$pop(),this.builder.$begin(val["$[]"](0),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_494",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_495",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_496",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([val["$[]"](1)])}),3),$def(self,"$_reduce_497",(function(val,_values,result){var match_rest;return match_rest=this.builder.$match_rest(val["$[]"](1),val["$[]"](2)),[].concat($to_a(val["$[]"](0))).concat([match_rest])}),3),$def(self,"$_reduce_498",(function(val,_values,result){var match_rest;return match_rest=this.builder.$match_rest(val["$[]"](1),val["$[]"](2)),[].concat($to_a(val["$[]"](0))).concat([match_rest]).concat($to_a(val["$[]"](4)))}),3),$def(self,"$_reduce_499",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([this.builder.$match_rest(val["$[]"](1))])}),3),$def(self,"$_reduce_500",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([this.builder.$match_rest(val["$[]"](1))]).concat($to_a(val["$[]"](3)))}),3),$def(self,"$_reduce_502",(function(val,_values,result){return[this.builder.$match_with_trailing_comma(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_503",(function(val,_values,result){var last_item;return last_item=this.builder.$match_with_trailing_comma(val["$[]"](1),val["$[]"](2)),[].concat($to_a(val["$[]"](0))).concat([last_item])}),3),$def(self,"$_reduce_504",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_505",(function(val,_values,result){return[val["$[]"](0)].concat($to_a(val["$[]"](2)))}),3),$def(self,"$_reduce_506",(function(val,_values,result){return[val["$[]"](0)].concat($to_a(val["$[]"](2))).concat([val["$[]"](4)])}),3),$def(self,"$_reduce_507",(function(val,_values,result){return this.builder.$match_rest(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_508",(function(val,_values,result){return this.builder.$match_rest(val["$[]"](0))}),3),$def(self,"$_reduce_509",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_510",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([val["$[]"](2)])}),3),$def(self,"$_reduce_512",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat($to_a(val["$[]"](2)))}),3),$def(self,"$_reduce_513",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_514",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_515",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_516",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_517",(function(val,_values,result){return[].concat($to_a(val["$[]"](0))).concat([val["$[]"](2)])}),3),$def(self,"$_reduce_518",(function(val,_values,result){return $send(this.builder,"match_pair",$to_a(val["$[]"](0)).concat([val["$[]"](1)]))}),3),$def(self,"$_reduce_519",(function(val,_values,result){return $send(this.builder,"match_label",$to_a(val["$[]"](0)))}),3),$def(self,"$_reduce_520",(function(val,_values,result){return["label",val["$[]"](0)]}),3),$def(self,"$_reduce_521",(function(val,_values,result){return["quoted",[val["$[]"](0),val["$[]"](1),val["$[]"](2)]]}),3),$def(self,"$_reduce_522",(function(val,_values,result){return[this.builder.$match_rest(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_523",(function(val,_values,result){return[this.builder.$match_rest(val["$[]"](0),nil)]}),3),$def(self,"$_reduce_524",(function(val,_values,result){return[this.builder.$match_nil_pattern(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_528",(function(val,_values,result){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_529",(function(val,_values,result){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_530",(function(val,_values,result){return this.builder.$range_inclusive(val["$[]"](0),val["$[]"](1),nil)}),3),$def(self,"$_reduce_531",(function(val,_values,result){return this.builder.$range_exclusive(val["$[]"](0),val["$[]"](1),nil)}),3),$def(self,"$_reduce_535",(function(val,_values,result){return this.builder.$range_inclusive(nil,val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_536",(function(val,_values,result){return this.builder.$range_exclusive(nil,val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_545",(function(val,_values,result){return this.builder.$accessible(val["$[]"](0))}),3),$def(self,"$_reduce_547",(function(val,_values,result){return this.builder.$assignable(this.builder.$match_var(val["$[]"](0)))}),3),$def(self,"$_reduce_548",(function(val,_values,result){var name,lvar;return name=val["$[]"](1)["$[]"](0),$truthy(this.$static_env()["$declared?"](name))||this.$diagnostic("error","undefined_lvar",$hash2(["name"],{name:name}),val["$[]"](1)),lvar=this.builder.$accessible(this.builder.$ident(val["$[]"](1))),this.builder.$pin(val["$[]"](0),lvar)}),3),$def(self,"$_reduce_549",(function(val,_values,result){var non_lvar;return non_lvar=this.builder.$accessible(val["$[]"](1)),this.builder.$pin(val["$[]"](0),non_lvar)}),3),$def(self,"$_reduce_550",(function(val,_values,result){var expr;return expr=this.builder.$begin(val["$[]"](1),val["$[]"](2),val["$[]"](3)),this.builder.$pin(val["$[]"](0),expr)}),3),$def(self,"$_reduce_551",(function(val,_values,result){return this.builder.$const_global(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_552",(function(val,_values,result){return this.builder.$const_fetch(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_553",(function(val,_values,result){return this.builder.$const(val["$[]"](0))}),3),$def(self,"$_reduce_554",(function(val,_values,result){var $a,$b,assoc_t,exc_var,exc_list=nil;return $b=val["$[]"](2),assoc_t=null==($a=$to_ary($b))[0]?nil:$a[0],exc_var=null==$a[1]?nil:$a[1],$truthy(val["$[]"](1))&&(exc_list=this.builder.$array(nil,val["$[]"](1),nil)),[this.builder.$rescue_body(val["$[]"](0),exc_list,assoc_t,exc_var,val["$[]"](3),val["$[]"](4))].concat($to_a(val["$[]"](5)))}),3),$def(self,"$_reduce_555",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_556",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_559",(function(val,_values,result){return[val["$[]"](0),val["$[]"](1)]}),3),$def(self,"$_reduce_561",(function(val,_values,result){return[val["$[]"](0),val["$[]"](1)]}),3),$def(self,"$_reduce_565",(function(val,_values,result){return this.builder.$string_compose(nil,val["$[]"](0),nil)}),3),$def(self,"$_reduce_566",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_567",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_568",(function(val,_values,result){var string;return string=this.builder.$string_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2)),this.builder.$dedent_string(string,this.lexer.$dedent_level())}),3),$def(self,"$_reduce_569",(function(val,_values,result){var string;return string=this.builder.$string(val["$[]"](0)),this.builder.$dedent_string(string,this.lexer.$dedent_level())}),3),$def(self,"$_reduce_570",(function(val,_values,result){return this.builder.$character(val["$[]"](0))}),3),$def(self,"$_reduce_571",(function(val,_values,result){var string;return string=this.builder.$xstring_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2)),this.builder.$dedent_string(string,this.lexer.$dedent_level())}),3),$def(self,"$_reduce_572",(function(val,_values,result){var opts;return opts=this.builder.$regexp_options(val["$[]"](3)),this.builder.$regexp_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2),opts)}),3),$def(self,"$_reduce_573",(function(val,_values,result){return this.builder.$words_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_574",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_575",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$word(val["$[]"](1)))}),3),$def(self,"$_reduce_576",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_577",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_578",(function(val,_values,result){return this.builder.$symbols_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_579",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_580",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$word(val["$[]"](1)))}),3),$def(self,"$_reduce_581",(function(val,_values,result){return this.builder.$words_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_582",(function(val,_values,result){return this.builder.$symbols_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_583",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_584",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$string_internal(val["$[]"](1)))}),3),$def(self,"$_reduce_585",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_586",(function(val,_values,result){return val["$[]"](0)["$<<"](this.builder.$symbol_internal(val["$[]"](1)))}),3),$def(self,"$_reduce_587",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_588",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_589",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_590",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_591",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_592",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](1))}),3),$def(self,"$_reduce_593",(function(val,_values,result){return this.builder.$string_internal(val["$[]"](0))}),3),$def(self,"$_reduce_594",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_595",(function(val,_values,result){return this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),result}),3),$def(self,"$_reduce_596",(function(val,_values,result){return this.lexer.$cmdarg().$pop(),this.lexer.$cond().$pop(),this.builder.$begin(val["$[]"](0),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_597",(function(val,_values,result){return this.builder.$gvar(val["$[]"](0))}),3),$def(self,"$_reduce_598",(function(val,_values,result){return this.builder.$ivar(val["$[]"](0))}),3),$def(self,"$_reduce_599",(function(val,_values,result){return this.builder.$cvar(val["$[]"](0))}),3),$def(self,"$_reduce_603",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$symbol(val["$[]"](0))}),3),$def(self,"$_reduce_604",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$symbol_compose(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_605",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_606",(function(val,_values,result){return $truthy(this.builder["$respond_to?"]("negate"))?this.builder.$negate(val["$[]"](0),val["$[]"](1)):this.builder.$unary_num(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_607",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$integer(val["$[]"](0))}),3),$def(self,"$_reduce_608",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$float(val["$[]"](0))}),3),$def(self,"$_reduce_609",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$rational(val["$[]"](0))}),3),$def(self,"$_reduce_610",(function(val,_values,result){var $writer;return $writer=["expr_end"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$complex(val["$[]"](0))}),3),$def(self,"$_reduce_611",(function(val,_values,result){return this.builder.$ivar(val["$[]"](0))}),3),$def(self,"$_reduce_612",(function(val,_values,result){return this.builder.$gvar(val["$[]"](0))}),3),$def(self,"$_reduce_613",(function(val,_values,result){return this.builder.$cvar(val["$[]"](0))}),3),$def(self,"$_reduce_614",(function(val,_values,result){return this.builder.$ident(val["$[]"](0))}),3),$def(self,"$_reduce_615",(function(val,_values,result){return this.builder.$ivar(val["$[]"](0))}),3),$def(self,"$_reduce_616",(function(val,_values,result){return this.builder.$gvar(val["$[]"](0))}),3),$def(self,"$_reduce_617",(function(val,_values,result){return this.builder.$const(val["$[]"](0))}),3),$def(self,"$_reduce_618",(function(val,_values,result){return this.builder.$cvar(val["$[]"](0))}),3),$def(self,"$_reduce_619",(function(val,_values,result){return this.builder.$nil(val["$[]"](0))}),3),$def(self,"$_reduce_620",(function(val,_values,result){return this.builder.$self(val["$[]"](0))}),3),$def(self,"$_reduce_621",(function(val,_values,result){return this.builder.$true(val["$[]"](0))}),3),$def(self,"$_reduce_622",(function(val,_values,result){return this.builder.$false(val["$[]"](0))}),3),$def(self,"$_reduce_623",(function(val,_values,result){return this.builder.$__FILE__(val["$[]"](0))}),3),$def(self,"$_reduce_624",(function(val,_values,result){return this.builder.$__LINE__(val["$[]"](0))}),3),$def(self,"$_reduce_625",(function(val,_values,result){return this.builder.$__ENCODING__(val["$[]"](0))}),3),$def(self,"$_reduce_626",(function(val,_values,result){return this.builder.$accessible(val["$[]"](0))}),3),$def(self,"$_reduce_627",(function(val,_values,result){return this.builder.$accessible(val["$[]"](0))}),3),$def(self,"$_reduce_628",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_629",(function(val,_values,result){return this.builder.$assignable(val["$[]"](0))}),3),$def(self,"$_reduce_630",(function(val,_values,result){return this.builder.$nth_ref(val["$[]"](0))}),3),$def(self,"$_reduce_631",(function(val,_values,result){return this.builder.$back_ref(val["$[]"](0))}),3),$def(self,"$_reduce_632",(function(val,_values,result){var $writer;return $writer=["expr_value"],$send(this.lexer,"state=",$to_a($writer)),$rb_minus($writer.length,1),result}),3),$def(self,"$_reduce_633",(function(val,_values,result){return[val["$[]"](0),val["$[]"](2)]}),3),$def(self,"$_reduce_634",(function(val,_values,result){return nil}),3),$def(self,"$_reduce_636",(function(val,_values,result){var $writer;return $writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$args(nil,[],nil)}),3),$def(self,"$_reduce_637",(function(val,_values,result){var $writer=nil;return result=this.builder.$args(val["$[]"](0),val["$[]"](1),val["$[]"](2)),$writer=["expr_value"],$send(this.lexer,"state=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_639",(function(val,_values,result){var $writer=nil;return result=this.context.$dup(),$writer=[!0],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],result}),3),$def(self,"$_reduce_640",(function(val,_values,result){var $writer=nil;return $writer=[val["$[]"](0).$in_kwarg()],$send(this.context,"in_kwarg=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.builder.$args(nil,val["$[]"](1),nil)}),3),$def(self,"$_reduce_641",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_642",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_643",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_644",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_645",(function(val,_values,result){return this.static_env.$declare_forward_args(),[this.builder.$forward_arg(val["$[]"](0))]}),3),$def(self,"$_reduce_646",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_647",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_648",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_649",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](6)).$concat(val["$[]"](7))}),3),$def(self,"$_reduce_650",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_651",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_652",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_653",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_654",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_655",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_656",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](4)).$concat(val["$[]"](5))}),3),$def(self,"$_reduce_657",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_658",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_659",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](1))}),3),$def(self,"$_reduce_660",(function(val,_values,result){return val["$[]"](0).$concat(val["$[]"](2)).$concat(val["$[]"](3))}),3),$def(self,"$_reduce_661",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_662",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_663",(function(val,_values,result){return val["$[]"](0)}),3),$def(self,"$_reduce_664",(function(val,_values,result){return this.$diagnostic("error","argument_const",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_665",(function(val,_values,result){return this.$diagnostic("error","argument_ivar",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_666",(function(val,_values,result){return this.$diagnostic("error","argument_gvar",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_667",(function(val,_values,result){return this.$diagnostic("error","argument_cvar",nil,val["$[]"](0)),result}),3),$def(self,"$_reduce_669",(function(val,_values,result){return this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),val["$[]"](0)}),3),$def(self,"$_reduce_670",(function(val,_values,result){return this.current_arg_stack.$set(val["$[]"](0)["$[]"](0)),val["$[]"](0)}),3),$def(self,"$_reduce_671",(function(val,_values,result){return this.current_arg_stack.$set(0),this.builder.$arg(val["$[]"](0))}),3),$def(self,"$_reduce_672",(function(val,_values,result){return this.builder.$multi_lhs(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_673",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_674",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_675",(function(val,_values,result){var $writer;return this.$check_kwarg_name(val["$[]"](0)),this.static_env.$declare(val["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),this.current_arg_stack.$set(val["$[]"](0)["$[]"](0)),$writer=[!1],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),val["$[]"](0)}),3),$def(self,"$_reduce_676",(function(val,_values,result){var $writer;return this.current_arg_stack.$set(nil),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$kwoptarg(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_677",(function(val,_values,result){var $writer;return this.current_arg_stack.$set(nil),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$kwarg(val["$[]"](0))}),3),$def(self,"$_reduce_678",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$kwoptarg(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_679",(function(val,_values,result){var $writer;return $writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$kwarg(val["$[]"](0))}),3),$def(self,"$_reduce_680",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_681",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_682",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_683",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_686",(function(val,_values,result){return[this.builder.$kwnilarg(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_687",(function(val,_values,result){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),[this.builder.$kwrestarg(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_688",(function(val,_values,result){return[this.builder.$kwrestarg(val["$[]"](0))]}),3),$def(self,"$_reduce_689",(function(val,_values,result){var $writer;return this.current_arg_stack.$set(0),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$optarg(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_690",(function(val,_values,result){var $writer;return this.current_arg_stack.$set(0),$writer=[!0],$send(this.context,"in_argdef=",$to_a($writer)),$rb_minus($writer.length,1),this.builder.$optarg(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_691",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_692",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_693",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_694",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_697",(function(val,_values,result){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),[this.builder.$restarg(val["$[]"](0),val["$[]"](1))]}),3),$def(self,"$_reduce_698",(function(val,_values,result){return[this.builder.$restarg(val["$[]"](0))]}),3),$def(self,"$_reduce_701",(function(val,_values,result){return this.static_env.$declare(val["$[]"](1)["$[]"](0)),this.builder.$blockarg(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_702",(function(val,_values,result){return this.static_env.$declare_anonymous_blockarg(),this.builder.$blockarg(val["$[]"](0),nil)}),3),$def(self,"$_reduce_703",(function(val,_values,result){return[val["$[]"](1)]}),3),$def(self,"$_reduce_704",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_706",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_707",(function(val,_values,result){return[]}),3),$def(self,"$_reduce_709",(function(val,_values,result){return[val["$[]"](0)]}),3),$def(self,"$_reduce_710",(function(val,_values,result){return val["$[]"](0)["$<<"](val["$[]"](2))}),3),$def(self,"$_reduce_711",(function(val,_values,result){return this.builder.$pair(val["$[]"](0),val["$[]"](1),val["$[]"](2))}),3),$def(self,"$_reduce_712",(function(val,_values,result){return this.builder.$pair_keyword(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_713",(function(val,_values,result){return this.builder.$pair_label(val["$[]"](0))}),3),$def(self,"$_reduce_714",(function(val,_values,result){return this.builder.$pair_quoted(val["$[]"](0),val["$[]"](1),val["$[]"](2),val["$[]"](3))}),3),$def(self,"$_reduce_715",(function(val,_values,result){return this.builder.$kwsplat(val["$[]"](0),val["$[]"](1))}),3),$def(self,"$_reduce_728",(function(val,_values,result){return["dot",val["$[]"](0)["$[]"](1)]}),3),$def(self,"$_reduce_729",(function(val,_values,result){return["anddot",val["$[]"](0)["$[]"](1)]}),3),$def(self,"$_reduce_734",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_735",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_736",(function(val,_values,result){return val["$[]"](1)}),3),$def(self,"$_reduce_740",(function(val,_values,result){return this.$yyerrok(),result}),3),$def(self,"$_reduce_744",(function(val,_values,result){return nil}),3),$def(self,"$_reduce_none",(function(val,_values,result){return val["$[]"](0)}),3)}($nesting[0],$$$($$("Parser"),"Base"),$nesting)}($nesting[0],$nesting)},Opal.modules["opal/ast/builder"]=function(Opal){var self=Opal.top,$nesting=[],$$$=(Opal.nil,Opal.$$$),$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$Opal=Opal.Opal,$hash2=Opal.hash2,$def=Opal.def;return Opal.add_stubs("require,emit_lambda=,-,new"),self.$require("opal/ast/node"),self.$require("parser/ruby31"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var $writer,self=$klass($base,$super,"Builder");return $send(self,"emit_lambda=",$to_a($writer=[!0])),$rb_minus($writer.length,1),$def(self,"$n",(function(type,children,location){return $$$($$$($Opal,"AST"),"Node").$new(type,children,$hash2(["location"],{location:location}))}),3)}([$module($base,"AST")].concat($parent_nesting)[0],$$$($$$($$$("Parser"),"Builders"),"Default"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/base"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$const_set=Opal.const_set,$truthy=Opal.truthy,$Opal=Opal.Opal,$hash2=Opal.hash2,$defs=Opal.defs,$alias=Opal.alias,$rb_plus=Opal.rb_plus,$eqeqeq=Opal.eqeqeq,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,new,current_node,loc,+,stmts_of,begin_with_stmts,nil?,include?,type,children,===,length,[],s,attr_accessor,current_node=,-,location=,raise,process_regular_node,[]=,meta"),self.$require("parser"),self.$require("opal/ast/node"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Base"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.dynamic_cache_result=nil,function($base,$super,$parent_nesting){var self=$klass($base,null,"DummyLocation"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$node=",(function($a){return Opal.slice.call(arguments),nil}),-1),$def(self,"$expression",(function(){return this}),0),$def(self,"$begin_pos",(function(){return 0}),0),$def(self,"$end_pos",(function(){return 0}),0),$def(self,"$source",(function(){return""}),0),$def(self,"$line",(function(){return 0}),0),$def(self,"$column",(function(){return 0}),0),$def(self,"$last_line",(function(){return $$$($$("Float"),"INFINITY")}),0)}($nesting[0],0,$nesting),$const_set($nesting[0],"DUMMY_LOCATION",$$("DummyLocation").$new()),$def(self,"$s",(function(type,$a){var children,self=this,loc=nil;return children=Opal.slice.call(arguments,1),loc=$truthy(self.$current_node())?self.$current_node().$loc():$$("DUMMY_LOCATION"),$$$($$$($Opal,"AST"),"Node").$new(type,children,$hash2(["location"],{location:loc}))}),-2),$defs(self,"$s",(function(type,$a){var children;return children=Opal.slice.call(arguments,1),$$$($$$($Opal,"AST"),"Node").$new(type,children,$hash2(["location"],{location:$$("DUMMY_LOCATION")}))}),-2),$alias(self,"on_iter","process_regular_node"),$alias(self,"on_zsuper","process_regular_node"),$alias(self,"on_jscall","on_send"),$alias(self,"on_jsattr","process_regular_node"),$alias(self,"on_jsattrasgn","process_regular_node"),$alias(self,"on_kwsplat","process_regular_node"),$def(self,"$prepend_to_body",(function(body,node){var stmts;return stmts=$rb_plus(this.$stmts_of(node),this.$stmts_of(body)),this.$begin_with_stmts(stmts)}),2),$def(self,"$append_to_body",(function(body,node){var stmts;return stmts=$rb_plus(this.$stmts_of(body),this.$stmts_of(node)),this.$begin_with_stmts(stmts)}),2),$def(self,"$stmts_of",(function(node){return $truthy(node["$nil?"]())?[]:$truthy(["begin","kwbegin"]["$include?"](node.$type()))?node.$children():[node]}),1),$def(self,"$begin_with_stmts",(function(stmts){var $ret_or_1;return $eqeqeq(0,$ret_or_1=stmts.$length())?nil:$eqeqeq(1,$ret_or_1)?stmts["$[]"](0):$send(this,"s",["begin"].concat($to_a(stmts)))}),1),self.$attr_accessor("current_node"),$def(self,"$process",(function $$process(node){var $yield=$$process.$$p||nil,self=this,$writer=nil;return delete $$process.$$p,function(){try{return $send(self,"current_node=",$to_a($writer=[node])),$writer[$rb_minus($writer.length,1)],$send2(self,$find_super(self,"process",$$process,!1,!0),"process",[node],$yield)}finally{$send(self,"current_node=",$to_a($writer=[nil])),$writer[$rb_minus($writer.length,1)]}}()}),1),$def(self,"$error",(function(msg){var error,$writer=nil;return error=$$$($Opal,"RewritingError").$new(msg),$truthy(this.$current_node())&&($writer=[this.$current_node().$loc()],$send(error,"location=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),this.$raise(error)}),1),$def(self,"$on_top",(function(node){var $writer=nil;return node=this.$process_regular_node(node),$truthy(this.dynamic_cache_result)&&($writer=["dynamic_cache_result",!0],$send(node.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),node}),1),$def(self,"$dynamic!",(function(){return this.dynamic_cache_result=!0}),0)}($nesting[0],$$$($$$($$$("Parser"),"AST"),"Processor"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/opal_engine_check"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_a=Opal.to_a,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$const_set=Opal.const_set;return Opal.add_stubs("require,children,skip_check_present?,process,s,skip_check_present_not?,=="),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"OpalEngineCheck"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$on_if",(function $$on_if(node){var $a,test,true_body,false_body,$yield=$$on_if.$$p||nil,$ret_or_1=nil;return delete $$on_if.$$p,test=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],$truthy(this["$skip_check_present?"](test))?this.$process($truthy($ret_or_1=true_body)?$ret_or_1:this.$s("nil")):$truthy(this["$skip_check_present_not?"](test))?this.$process($truthy($ret_or_1=false_body)?$ret_or_1:this.$s("nil")):$send2(this,$find_super(this,"on_if",$$on_if,!1,!0),"on_if",[node],$yield)}),1),$def(self,"$skip_check_present?",(function(test){var $ret_or_1;return $truthy($ret_or_1=test["$=="]($$("RUBY_ENGINE_CHECK")))?$ret_or_1:test["$=="]($$("RUBY_PLATFORM_CHECK"))}),1),$def(self,"$skip_check_present_not?",(function(test){var $ret_or_1;return $truthy($ret_or_1=test["$=="]($$("RUBY_ENGINE_CHECK_NOT")))?$ret_or_1:test["$=="]($$("RUBY_PLATFORM_CHECK_NOT"))}),1),$const_set($nesting[0],"RUBY_ENGINE_CHECK",self.$s("send",self.$s("const",nil,"RUBY_ENGINE"),"==",self.$s("str","opal"))),$const_set($nesting[0],"RUBY_ENGINE_CHECK_NOT",self.$s("send",self.$s("const",nil,"RUBY_ENGINE"),"!=",self.$s("str","opal"))),$const_set($nesting[0],"RUBY_PLATFORM_CHECK",self.$s("send",self.$s("const",nil,"RUBY_PLATFORM"),"==",self.$s("str","opal"))),$const_set($nesting[0],"RUBY_PLATFORM_CHECK_NOT",self.$s("send",self.$s("const",nil,"RUBY_PLATFORM"),"!=",self.$s("str","opal")))}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/for_rewriter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$defs=Opal.defs,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$to_a=Opal.to_a,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,+,find,map,s,next_tmp,class,===,type,updated,<<,prepend_to_body,process,attr_reader,new,to_a,result"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ForRewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$reset_tmp_counter!",(function(){return this.counter=0}),0),$defs(self,"$next_tmp",(function(){var $ret_or_1;return null==this.counter&&(this.counter=nil),this.counter=$truthy($ret_or_1=this.counter)?$ret_or_1:0,this.counter=$rb_plus(this.counter,1),"$for_tmp"+this.counter}),0),$def(self,"$on_for",(function(node){var $a,iterating_value,iterating_lvars,lvars_declared_in_body,outer_assigns,tmp_loop_variable,get_tmp_loop_variable,loop_variable_assignment,loop_variable=nil,loop_body=nil;return loop_variable=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],iterating_value=null==$a[1]?nil:$a[1],loop_body=null==$a[2]?nil:$a[2],iterating_lvars=$$("LocalVariableAssigns").$find(loop_variable),lvars_declared_in_body=$$("LocalVariableAssigns").$find(loop_body),outer_assigns=$send($rb_plus(iterating_lvars,lvars_declared_in_body),"map",[],(function $$2(lvar_name){return null==lvar_name&&(lvar_name=nil),(null==$$2.$$s?this:$$2.$$s).$s("lvdeclare",lvar_name)}),{$$arity:1,$$s:this}),tmp_loop_variable=this.$class().$next_tmp(),get_tmp_loop_variable=this.$s("js_tmp",tmp_loop_variable),loop_variable_assignment=$eqeqeq("mlhs",loop_variable.$type())?loop_variable.$updated("masgn",[loop_variable,get_tmp_loop_variable]):loop_variable["$<<"](get_tmp_loop_variable),loop_body=this.$prepend_to_body(loop_body,loop_variable_assignment),(node=node.$updated("send",[iterating_value,"each",node.$updated("iter",[this.$s("args",this.$s("arg",tmp_loop_variable)),this.$process(loop_body)])])).$updated("begin",[].concat($to_a(outer_assigns)).concat([node]))}),1),function($base,$super,$parent_nesting){var self=$klass($base,$super,"LocalVariableAssigns"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$attr_reader("result"),$defs(self,"$find",(function(node){var processor=nil;return(processor=this.$new()).$process(node),processor.$result().$to_a()}),1),$def(self,"$initialize",(function(){return this.result=$$("Set").$new()}),0),$def(self,"$on_lvasgn",(function $$on_lvasgn(node){var $a,name,$yield=$$on_lvasgn.$$p||nil;return delete $$on_lvasgn.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],this.$result()["$<<"](name),$send2(this,$find_super(this,"on_lvasgn",$$on_lvasgn,!1,!0),"on_lvasgn",[node],$yield)}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/explicit_writer_return"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$const_set=Opal.const_set,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$slice=Opal.slice,$eqeq=Opal.eqeq,$regexp=Opal.regexp,$send=Opal.send;return Opal.add_stubs("require,s,==,to_s,=~,process_all,updated"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ExplicitWriterReturn"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.in_masgn=nil,$def(self,"$initialize",(function(){return this.in_masgn=!1}),0),$const_set($nesting[0],"TMP_NAME","$writer"),$const_set($nesting[0],"GET_ARGS_NODE",self.$s("lvar",$$("TMP_NAME"))),$const_set($nesting[0],"RETURN_ARGS_NODE",self.$s("jsattr",$$("GET_ARGS_NODE"),self.$s("send",self.$s("jsattr",$$("GET_ARGS_NODE"),self.$s("str","length")),"-",self.$s("int",1)))),$def(self,"$on_send",(function $$on_send(node){var $a,recv,args,$yield=$$on_send.$$p||nil,method_name=nil,set_args_node=nil;return delete $$on_send.$$p,$truthy(this.in_masgn)?$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield):(recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy(method_name.$to_s()["$=~"]($regexp([$$("REGEXP_START"),"\\w+=",$$("REGEXP_END")])))||$eqeq(method_name.$to_s(),"[]=")?(set_args_node=this.$s("lvasgn",$$("TMP_NAME"),$send(this,"s",["array"].concat($to_a(this.$process_all(args))))),this.$s("begin",set_args_node,node.$updated(nil,[recv,method_name,this.$s("splat",$$("GET_ARGS_NODE"))]),$$("RETURN_ARGS_NODE"))):$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield))}),1),$def(self,"$on_masgn",(function $$on_masgn(node){var result,$yield=$$on_masgn.$$p||nil;return delete $$on_masgn.$$p,this.in_masgn=!0,result=$send2(this,$find_super(this,"on_masgn",$$on_masgn,!1,!0),"on_masgn",[node],$yield),this.in_masgn=!1,result}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/regexp_anchors"]=function(Opal){var $nesting=[],$$$=(Opal.nil,Opal.$$$),$module=Opal.module,$const_set=Opal.const_set;return Opal.add_stubs("new"),function($base,$parent_nesting){var self=$module($base,"Opal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set(self,"REGEXP_START","^"),$const_set(self,"REGEXP_END","$"),$const_set(self,"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),$const_set(self,"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),$const_set(self,"INLINE_IDENTIFIER_REGEXP",$$("Regexp").$new("[^"+$$$(self,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+$$$(self,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),$const_set(self,"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),$const_set(self,"CONST_NAME_REGEXP",$$("Regexp").$new($$$(self,"REGEXP_START")+"(::)?[A-Z][^"+$$$(self,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+$$$(self,"REGEXP_END")))}($nesting[0],$nesting)},Opal.modules["opal/rewriters/js_reserved_words"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$truthy=Opal.truthy,$defs=Opal.defs,$def=Opal.def,$range=Opal.range,$to_a=Opal.to_a,$send2=Opal.send2,$find_super=Opal.find_super,$hash2=Opal.hash2,$alias=Opal.alias;return Opal.add_stubs("require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name"),self.$require("opal/rewriters/base"),self.$require("opal/regexp_anchors"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"JsReservedWords"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"ES51_RESERVED_WORD",$regexp([$$("REGEXP_START"),"(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"ES3_RESERVED_WORD_EXCLUSIVE",$regexp([$$("REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"PROTO_SPECIAL_PROPS",$regexp([$$("REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"PROTO_SPECIAL_METHODS",$regexp([$$("REGEXP_START"),"(?:hasOwnProperty|valueOf)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"IMMUTABLE_PROPS",$regexp([$$("REGEXP_START"),"(?:NaN|Infinity|undefined)",$$("REGEXP_END")]).$freeze()),$const_set($nesting[0],"BASIC_IDENTIFIER_RULES",$regexp([$$("REGEXP_START"),"[$_a-z][$_a-z\\d]*",$$("REGEXP_END")],"i").$freeze()),$const_set($nesting[0],"RESERVED_FUNCTION_NAMES",$regexp([$$("REGEXP_START"),"(?:Array)",$$("REGEXP_END")]).$freeze()),$defs(self,"$valid_name?",(function(name){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$$("BASIC_IDENTIFIER_RULES")["$=~"](name))?($truthy($ret_or_2=$truthy($ret_or_3=$$("ES51_RESERVED_WORD")["$=~"](name))?$ret_or_3:$$("ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](name))?$ret_or_2:$$("IMMUTABLE_PROPS")["$=~"](name))["$!"]():$ret_or_1}),1),$defs(self,"$valid_ivar_name?",(function(name){var $ret_or_1;return($truthy($ret_or_1=$$("PROTO_SPECIAL_PROPS")["$=~"](name))?$ret_or_1:$$("PROTO_SPECIAL_METHODS")["$=~"](name))["$!"]()}),1),$def(self,"$fix_var_name",(function(name){return $truthy(this.$class()["$valid_name?"](name))?name:(name+"$").$to_sym()}),1),$def(self,"$fix_ivar_name",(function(name){return $truthy(this.$class()["$valid_ivar_name?"](name.$to_s()["$[]"]($range(1,-1,!1))))?name:(name+"$").$to_sym()}),1),$def(self,"$on_lvar",(function $$on_lvar(node){var $a,name;return delete $$on_lvar.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],node=node.$updated(nil,[this.$fix_var_name(name)]),$send2(this,$find_super(this,"on_lvar",$$on_lvar,!1,!0),"on_lvar",[node],null)}),1),$def(self,"$on_lvasgn",(function $$on_lvasgn(node){var $a,name,value;return delete $$on_lvasgn.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=$truthy(value)?node.$updated(nil,[this.$fix_var_name(name),value]):node.$updated(nil,[this.$fix_var_name(name)]),$send2(this,$find_super(this,"on_lvasgn",$$on_lvasgn,!1,!0),"on_lvasgn",[node],null)}),1),$def(self,"$on_ivar",(function $$on_ivar(node){var $a,name;return delete $$on_ivar.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],node=node.$updated(nil,[this.$fix_ivar_name(name)]),$send2(this,$find_super(this,"on_ivar",$$on_ivar,!1,!0),"on_ivar",[node],null)}),1),$def(self,"$on_ivasgn",(function $$on_ivasgn(node){var $a,name,value;return delete $$on_ivasgn.$$p,name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=$truthy(value)?node.$updated(nil,[this.$fix_ivar_name(name),value]):node.$updated(nil,[this.$fix_ivar_name(name)]),$send2(this,$find_super(this,"on_ivasgn",$$on_ivasgn,!1,!0),"on_ivasgn",[node],null)}),1),$def(self,"$on_restarg",(function(node){var $a,name;return name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$truthy(name)&&(node=node.$updated(nil,[this.$fix_var_name(name)],$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:name})}))),node}),1),$alias(self,"on_kwrestarg","on_restarg"),$def(self,"$on_argument",(function $$on_argument(node){var $a,name,value,fixed_name,new_children;return delete $$on_argument.$$p,node=$send2(this,$find_super(this,"on_argument",$$on_argument,!1,!0),"on_argument",[node],null),name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],fixed_name=this.$fix_var_name(name),new_children=$truthy(value)?[fixed_name,value]:[fixed_name],node.$updated(nil,new_children,$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:name})}))}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/block_to_iter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_a=Opal.to_a,$rb_plus=Opal.rb_plus,$def=Opal.def;return Opal.add_stubs("require,s,process,updated,+,children"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"BlockToIter");return $def(self,"$on_block",(function(node){var $a,args,body,iter_node,recvr=nil;return recvr=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],iter_node=this.$s("iter",args,body),this.$process(recvr.$updated(nil,$rb_plus(recvr.$children(),[iter_node])))}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_a=Opal.to_a,$slice=Opal.slice,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$eqeqeq=Opal.eqeqeq,$neqeq=Opal.neqeq,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("require,==,type,===,!=,size,error,first,to_js_attr_call,to_js_attr_assign_call,to_native_js_call,s"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DotJsSyntax");return $def(self,"$on_send",(function $$on_send(node){var $a,meth,$yield=$$on_send.$$p||nil,recv=nil,args=nil,recv_of_recv=nil,meth_of_recv=nil,$ret_or_1=nil,property=nil,value=nil;return delete $$on_send.$$p,recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy(recv)&&$eqeq(recv.$type(),"send")?(recv_of_recv=null==($a=[].concat($to_a(recv)))[0]?nil:$a[0],meth_of_recv=null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],$eqeq(meth_of_recv,"JS")?($eqeqeq("[]",$ret_or_1=meth)?($neqeq(args.$size(),1)&&this.$error(".JS[:property] syntax supports only one argument"),property=args.$first(),node=this.$to_js_attr_call(recv_of_recv,property)):$eqeqeq("[]=",$ret_or_1)?($neqeq(args.$size(),2)&&this.$error(".JS[:property]= syntax supports only two arguments"),property=null==($a=[].concat($to_a(args)))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],node=this.$to_js_attr_assign_call(recv_of_recv,property,value)):node=this.$to_native_js_call(recv_of_recv,meth,args),$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],null)):$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield)):$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield)}),1),$def(self,"$to_native_js_call",(function(recv,meth,args){return $send(this,"s",["jscall",recv,meth].concat($to_a(args)))}),3),$def(self,"$to_js_attr_call",(function(recv,property){return this.$s("jsattr",recv,property)}),2),$def(self,"$to_js_attr_assign_call",(function(recv,property,value){return this.$s("jsattrasgn",recv,property,value)}),3)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/pattern_matching"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$to_a=Opal.to_a,$rb_plus=Opal.rb_plus,$slice=Opal.slice,$truthy=Opal.truthy,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$not=Opal.not,$neqeq=Opal.neqeq,$eqeq=Opal.eqeq,$alias=Opal.alias,$Opal=Opal.Opal;return Opal.add_stubs("require,s,convert_full_pattern,raise_no_matching_pattern_error,+,process,single_case_match,private,shift,===,type,!,empty?,!=,==,class,new,run!,variables,pattern,map,<<,array,on_literal,first,children,to_proc,method,each,to_ast,on_array_pattern,compact,[]"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"PatternMatching"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.depth=nil,$def(self,"$initialize",(function $$initialize(){var $yield=$$initialize.$$p||nil;return delete $$initialize.$$p,this.depth=0,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[],$yield)}),0),$def(self,"$on_match_pattern",(function(node){var $a,from,pat;return from=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],pat=null==$a[1]?nil:$a[1],this.$s("begin",this.$s("lvasgn","$pmvar",from),this.$s("if",this.$convert_full_pattern(from,pat),nil,this.$raise_no_matching_pattern_error("$pmvar")))}),1),$def(self,"$on_match_pattern_p",(function(node){var $a,from,pat;return from=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],pat=null==$a[1]?nil:$a[1],this.$s("if",this.$convert_full_pattern(from,pat),this.$s("true"),this.$s("false"))}),1),$def(self,"$on_case_match",(function(node){var $a,$b,from,cases,cmvar=nil,els=nil;return this.depth=$rb_plus(this.depth,1),cmvar="$cmvar"+this.depth,from=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,cases=$slice.call($a,1,$b),els=null==$a[$b]?nil:$a[$b],$truthy(els)?this.$process(els):els=this.$raise_no_matching_pattern_error(cmvar),this.$s("begin",this.$s("lvasgn",cmvar,from),$send(this,"single_case_match",[cmvar].concat($to_a(cases)).concat([els])))}),1),self.$private(),$def(self,"$raise_no_matching_pattern_error",(function(from){return this.$s("send",nil,"raise",this.$s("const",this.$s("cbase"),"NoMatchingPatternError"),this.$s("lvar",from))}),1),$def(self,"$single_case_match",(function(from,$a,$b){var $post_args,cases,els,$c,self=this,cas=nil,pat=nil,if_guard=nil,body=nil,guard=nil,$ret_or_1=nil;return cases=($post_args=Opal.slice.call(arguments,1)).splice(0,$post_args.length-1),null==(els=$post_args.shift())&&(els=nil),cas=cases.$shift(),pat=null==($c=[].concat($to_a(cas)))[0]?nil:$c[0],if_guard=null==$c[1]?nil:$c[1],body=null==$c[2]?nil:$c[2],pat=self.$convert_full_pattern(from,pat),$truthy(if_guard)&&(guard=null==($c=[].concat($to_a(if_guard)))[0]?nil:$c[0],$eqeqeq("if_guard",$ret_or_1=if_guard.$type())?pat=self.$s("and",pat,guard):$eqeqeq("unless_guard",$ret_or_1)&&(pat=self.$s("and",pat,self.$s("send",guard,"!")))),self.$s("if",pat,self.$process(body),$not(cases["$empty?"]())?$send(self,"single_case_match",[from].concat($to_a(cases)).concat([els])):$neqeq(els,self.$s("empty_else"))?els:nil)}),-3),$def(self,"$convert_full_pattern",(function(from,pat){var converter=nil;return $eqeq(from.$class(),$$("Symbol"))&&(from=this.$s("lvar",from)),(converter=$$("PatternConverter").$new(pat))["$run!"](),this.$s("masgn",$send(this,"s",["mlhs"].concat($to_a(converter.$variables()))),this.$s("send",this.$s("const",this.$s("cbase"),"PatternMatching"),"call",from,converter.$pattern()))}),2),function($base,$super,$parent_nesting){var self=$klass($base,$super,"PatternConverter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.pat=$proto.outpat=$proto.variables=nil,$def(self,"$initialize",(function(pat){return this.pat=pat,this.variables=[]}),1),$def(self,"$run!",(function(){return this.outpat=this.$process(this.pat)}),0),$def(self,"$pattern",(function(){return this.outpat}),0),$def(self,"$variables",(function(){return $send(this.variables,"map",[],(function $$2(i){return null==i&&(i=nil),(null==$$2.$$s?this:$$2.$$s).$s("lvasgn",i)}),{$$arity:1,$$s:this})}),0),$def(self,"$on_match_var",(function(node){var $a,var$;return var$=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],this.variables["$<<"](var$),this.$s("sym","var")}),1),$def(self,"$on_match_as",(function(node){var $a,pat,save;return pat=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],save=null==$a[1]?nil:$a[1],this.$process(save),this.$array(this.$s("sym","save"),this.$process(pat))}),1),$def(self,"$on_literal",(function(node){return this.$array(this.$s("sym","lit"),node)}),1),$alias(self,"on_int","on_literal"),$alias(self,"on_float","on_literal"),$alias(self,"on_complex","on_literal"),$alias(self,"on_rational","on_literal"),$alias(self,"on_array","on_literal"),$alias(self,"on_str","on_literal"),$alias(self,"on_dstr","on_literal"),$alias(self,"on_xstr","on_literal"),$alias(self,"on_sym","on_literal"),$alias(self,"on_irange","on_literal"),$alias(self,"on_erange","on_literal"),$alias(self,"on_const","on_literal"),$alias(self,"on_regexp","on_literal"),$alias(self,"on_lambda","on_literal"),$alias(self,"on_begin","on_literal"),$def(self,"$on_pin",(function(node){return this.$on_literal(node.$children().$first())}),1),$def(self,"$on_match_rest",(function(node){return $truthy(node.$children()["$empty?"]())?this.$array(this.$s("sym","rest")):this.$array(this.$s("sym","rest"),this.$process(node.$children().$first()))}),1),$def(self,"$on_match_alt",(function(node){return $send(this,"array",[this.$s("sym","any")].concat($to_a($send(node.$children(),"map",[],this.$method("process").$to_proc()))))}),1),$def(self,"$on_const_pattern",(function(node){return $send(this,"array",[this.$s("sym","all")].concat($to_a($send(node.$children(),"map",[],this.$method("process").$to_proc()))))}),1),$def(self,"$on_array_pattern",(function(node,tail){var children=nil,fixed_size=nil,array_size=nil;return null==tail&&(tail=!1),children=[].concat($to_a(node)),$truthy(tail)&&children["$<<"](this.$s("match_rest")),fixed_size=!0,array_size=0,children=$send(children,"each",[],(function(i){return null==i&&(i=nil),$eqeqeq("match_rest",i.$type())?fixed_size=!1:array_size=$rb_plus(array_size,1)}),1),this.$array(this.$s("sym","array"),this.$to_ast(fixed_size),this.$to_ast(array_size),this.$to_ast($send(children,"map",[],this.$method("process").$to_proc())))}),-2),$def(self,"$on_array_pattern_with_tail",(function(node){return this.$on_array_pattern(node,!0)}),1),$def(self,"$on_hash_pattern",(function(node){var children=nil,any_size=nil;return children=[].concat($to_a(node)),any_size=$truthy(children["$empty?"]())?this.$to_ast(!1):this.$to_ast(!0),children=$send(children,"map",[],(function $$4(i){var $ret_or_1,self=null==$$4.$$s?this:$$4.$$s;return null==i&&(i=nil),$eqeqeq("pair",$ret_or_1=i.$type())?self.$array(i.$children()["$[]"](0),self.$process(i.$children()["$[]"](1))):$eqeqeq("match_var",$ret_or_1)?self.$array(self.$s("sym",i.$children()["$[]"](0)),self.$process(i)):$eqeqeq("match_nil_pattern",$ret_or_1)?(any_size=self.$to_ast(!1),nil):$eqeqeq("match_rest",$ret_or_1)?(any_size=$truthy(i.$children().$first())?self.$process(i.$children().$first()):self.$to_ast(!0),nil):nil}),{$$arity:1,$$s:this}).$compact(),this.$array(this.$s("sym","hash"),any_size,$send(this,"array",$to_a(children)))}),1),$def(self,"$on_find_pattern",(function(node){var children=nil;return children=[].concat($to_a(node)),children=$send(children,"map",[],this.$method("process").$to_proc()),this.$array(this.$s("sym","find"),$send(this,"array",$to_a(children)))}),1),self.$private(),$def(self,"$array",(function($a){var args,self=this;return args=Opal.slice.call(arguments),self.$to_ast(args)}),-1),$def(self,"$to_ast",(function(val){var $ret_or_1;return $eqeqeq($$("Array"),$ret_or_1=val)?$send(this,"s",["array"].concat($to_a(val))):$eqeqeq($$("Integer"),$ret_or_1)?this.$s("int",val):$eqeqeq(!0,$ret_or_1)?this.$s("true"):$eqeqeq(!1,$ret_or_1)?this.$s("false"):$eqeqeq(nil,$ret_or_1)?this.$s("nil"):nil}),1)}($nesting[0],$$$($$$($Opal,"Rewriters"),"Base"),$nesting)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$defs=Opal.defs,$truthy=Opal.truthy,$class_variable_get=Opal.class_variable_get,$rb_plus=Opal.rb_plus,$const_set=Opal.const_set,$lambda=Opal.lambda,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$slice=Opal.slice,$hash2=Opal.hash2,$send=Opal.send,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"LogicalOperatorAssignment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$reset_tmp_counter!",(function(){return $class_variable_set($nesting[0],"@@counter",0)}),0),$defs(self,"$new_temp",(function(){var $ret_or_1=nil;return $class_variable_set($nesting[0],"@@counter",$truthy(null!=$nesting[0].$$cvars["@@counter"]?"class variable":nil)&&$truthy($ret_or_1=$class_variable_get($nesting[0],"@@counter",!1))?$ret_or_1:0),$class_variable_set($nesting[0],"@@counter",$rb_plus($class_variable_get($nesting[0],"@@counter",!1),1)),"$logical_op_recvr_tmp_"+$class_variable_get($nesting[0],"@@counter",!1)}),0),$const_set($nesting[0],"GET_SET",$lambda((function $LogicalOperatorAssignment$2(get_type,set_type){return null==get_type&&(get_type=nil),null==set_type&&(set_type=nil),$lambda((function $$3(lhs,rhs,root_type){var get_node,self=null==$$3.$$s?this:$$3.$$s,condition_node=nil,defined_node=nil;return null==lhs&&(lhs=nil),null==rhs&&(rhs=nil),null==root_type&&(root_type=nil),get_node=lhs.$updated(get_type),condition_node=self.$s(root_type,get_node,rhs),$truthy(["const","cvar"]["$include?"](get_type))&&$eqeq(root_type,"or")&&(defined_node=self.$s("defined?",get_node),condition_node=self.$s("if",defined_node,self.$s("begin",condition_node),rhs)),lhs.$updated(set_type,[].concat($to_a(lhs)).concat([condition_node]))}),{$$arity:3,$$s:null==$LogicalOperatorAssignment$2.$$s?this:$LogicalOperatorAssignment$2.$$s})}),{$$arity:2,$$s:self})),$const_set($nesting[0],"LocalVariableHandler",$$("GET_SET")["$[]"]("lvar","lvasgn")),$const_set($nesting[0],"InstanceVariableHandler",$$("GET_SET")["$[]"]("ivar","ivasgn")),$const_set($nesting[0],"ConstantHandler",$$("GET_SET")["$[]"]("const","casgn")),$const_set($nesting[0],"GlobalVariableHandler",$$("GET_SET")["$[]"]("gvar","gvasgn")),$const_set($nesting[0],"ClassVariableHandler",$$("GET_SET")["$[]"]("cvar","cvasgn")),function($base,$super){var self=$klass($base,$super,"SendHandler");$defs(self,"$call",(function(lhs,rhs,root_type){var $a,args,call_reader,call_writer,get_or_set,recvr=nil,reader_method=nil,recvr_tmp=nil,cache_recvr=nil,writer_method=nil;return recvr=null==($a=[].concat($to_a(lhs)))[0]?nil:$a[0],reader_method=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy(recvr)&&$eqeq(recvr.$type(),"send")&&(recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp)),writer_method=reader_method+"=",call_reader=lhs.$updated("send",[recvr,reader_method].concat($to_a(args))),call_writer=lhs.$updated("send",[recvr,writer_method].concat($to_a(args)).concat([rhs])),get_or_set=this.$s(root_type,call_reader,call_writer),$truthy(cache_recvr)?this.$s("begin",cache_recvr,get_or_set):get_or_set}),3)}($nesting[0],self),function($base,$super){var self=$klass($base,$super,"ConditionalSendHandler");$defs(self,"$call",(function(lhs,rhs,root_type){var $a,args,recvr_tmp,cache_recvr,recvr_is_nil,plain_send,plain_or_asgn,recvr=nil,meth=nil;return root_type+="_asgn",recvr=null==($a=[].concat($to_a(lhs)))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp),recvr_is_nil=this.$s("send",recvr,"nil?"),plain_send=lhs.$updated("send",[recvr,meth].concat($to_a(args))),plain_or_asgn=this.$s(root_type,plain_send,rhs),this.$s("begin",cache_recvr,this.$s("if",recvr_is_nil,this.$s("nil"),plain_or_asgn))}),3)}($nesting[0],self),$const_set($nesting[0],"HANDLERS",$hash2(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:$$("LocalVariableHandler"),ivasgn:$$("InstanceVariableHandler"),casgn:$$("ConstantHandler"),gvasgn:$$("GlobalVariableHandler"),cvasgn:$$("ClassVariableHandler"),send:$$("SendHandler"),csend:$$("ConditionalSendHandler")}).$freeze()),$def(self,"$on_or_asgn",(function(node){var $a,rhs,result,lhs=nil;return $a=[].concat($to_a(node)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],result=$send($$("HANDLERS"),"fetch",[lhs.$type()],(function $$4(){return(null==$$4.$$s?this:$$4.$$s).$error("cannot handle LHS type: "+lhs.$type())}),{$$arity:0,$$s:this}).$call(lhs,rhs,"or"),this.$process(result)}),1),$def(self,"$on_and_asgn",(function(node){var $a,rhs,result,lhs=nil;return $a=[].concat($to_a(node)),lhs=null==$a[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],result=$send($$("HANDLERS"),"fetch",[lhs.$type()],(function $$5(){return(null==$$5.$$s?this:$$5.$$s).$error("cannot handle LHS type: "+lhs.$type())}),{$$arity:0,$$s:this}).$call(lhs,rhs,"and"),this.$process(result)}),1),$const_set($nesting[0],"ASSIGNMENT_STRING_NODE",self.$s("str","assignment")),$def(self,"$on_defined?",(function $LogicalOperatorAssignment_on_defined$ques$6(node){var $a,inner=nil;return delete $LogicalOperatorAssignment_on_defined$ques$6.$$p,inner=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$truthy(["or_asgn","and_asgn"]["$include?"](inner.$type()))?$$("ASSIGNMENT_STRING_NODE"):$send2(this,$find_super(this,"on_defined?",$LogicalOperatorAssignment_on_defined$ques$6,!1,!0),"on_defined?",[node],null)}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$defs=Opal.defs,$truthy=Opal.truthy,$class_variable_get=Opal.class_variable_get,$rb_plus=Opal.rb_plus,$const_set=Opal.const_set,$lambda=Opal.lambda,$to_a=Opal.to_a,$slice=Opal.slice,$eqeq=Opal.eqeq,$hash2=Opal.hash2,$send=Opal.send,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"BinaryOperatorAssignment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$reset_tmp_counter!",(function(){return $class_variable_set($nesting[0],"@@counter",0)}),0),$defs(self,"$new_temp",(function(){var $ret_or_1=nil;return $class_variable_set($nesting[0],"@@counter",$truthy(null!=$nesting[0].$$cvars["@@counter"]?"class variable":nil)&&$truthy($ret_or_1=$class_variable_get($nesting[0],"@@counter",!1))?$ret_or_1:0),$class_variable_set($nesting[0],"@@counter",$rb_plus($class_variable_get($nesting[0],"@@counter",!1),1)),"$binary_op_recvr_tmp_"+$class_variable_get($nesting[0],"@@counter",!1)}),0),$const_set($nesting[0],"GET_SET",$lambda((function(get_type,set_type){return null==get_type&&(get_type=nil),null==set_type&&(set_type=nil),$lambda((function(node,lhs,operation,rhs){var get_node,set_node;return null==node&&(node=nil),null==lhs&&(lhs=nil),null==operation&&(operation=nil),null==rhs&&(rhs=nil),get_node=lhs.$updated(get_type),set_node=node.$updated("send",[get_node,operation,rhs]),lhs.$updated(set_type,[].concat($to_a(lhs)).concat([set_node]))}),4)}),2)),$const_set($nesting[0],"LocalVariableHandler",$$("GET_SET")["$[]"]("lvar","lvasgn")),$const_set($nesting[0],"InstanceVariableHandler",$$("GET_SET")["$[]"]("ivar","ivasgn")),$const_set($nesting[0],"ConstantHandler",$$("GET_SET")["$[]"]("const","casgn")),$const_set($nesting[0],"GlobalVariableHandler",$$("GET_SET")["$[]"]("gvar","gvasgn")),$const_set($nesting[0],"ClassVariableHandler",$$("GET_SET")["$[]"]("cvar","cvasgn")),function($base,$super){var self=$klass($base,$super,"SendHandler");$defs(self,"$call",(function(node,lhs,operation,rhs){var $a,args,call_reader,call_op,call_writer,recvr=nil,reader_method=nil,recvr_tmp=nil,cache_recvr=nil,writer_method=nil;return recvr=null==($a=[].concat($to_a(lhs)))[0]?nil:$a[0],reader_method=null==$a[1]?nil:$a[1],args=$slice.call($a,2),$truthy(recvr)&&$eqeq(recvr.$type(),"send")&&(recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp)),writer_method=reader_method+"=",call_reader=lhs.$updated("send",[recvr,reader_method].concat($to_a(args))),call_op=node.$updated("send",[call_reader,operation,rhs]),call_writer=lhs.$updated("send",[recvr,writer_method].concat($to_a(args)).concat([call_op])),$truthy(cache_recvr)?node.$updated("begin",[cache_recvr,call_writer]):call_writer}),4)}($nesting[0],self),function($base,$super){var self=$klass($base,$super,"ConditionalSendHandler");$defs(self,"$call",(function(node,lhs,operation,rhs){var $a,args,recvr_tmp,cache_recvr,recvr_is_nil,plain_send,plain_op_asgn,recvr=nil,meth=nil;return recvr=null==($a=[].concat($to_a(lhs)))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),recvr_tmp=this.$new_temp(),cache_recvr=this.$s("lvasgn",recvr_tmp,recvr),recvr=this.$s("js_tmp",recvr_tmp),recvr_is_nil=this.$s("send",recvr,"nil?"),plain_send=lhs.$updated("send",[recvr,meth].concat($to_a(args))),plain_op_asgn=node.$updated("op_asgn",[plain_send,operation,rhs]),this.$s("begin",cache_recvr,this.$s("if",recvr_is_nil,this.$s("nil"),plain_op_asgn))}),4)}($nesting[0],self),$const_set($nesting[0],"HANDLERS",$hash2(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:$$("LocalVariableHandler"),ivasgn:$$("InstanceVariableHandler"),casgn:$$("ConstantHandler"),gvasgn:$$("GlobalVariableHandler"),cvasgn:$$("ClassVariableHandler"),send:$$("SendHandler"),csend:$$("ConditionalSendHandler")}).$freeze()),$def(self,"$on_op_asgn",(function(node){var $a,op,rhs,result,lhs=nil;return $a=[].concat($to_a(node)),lhs=null==$a[0]?nil:$a[0],op=null==$a[1]?nil:$a[1],rhs=null==$a[2]?nil:$a[2],result=$send($$("HANDLERS"),"fetch",[lhs.$type()],(function $$4(){return(null==$$4.$$s?this:$$4.$$s).$error("cannot handle LHS type: "+lhs.$type())}),{$$arity:0,$$s:this}).$call(node,lhs,op,rhs),this.$process(result)}),1),$const_set($nesting[0],"ASSIGNMENT_STRING_NODE",self.$s("str","assignment")),$def(self,"$on_defined?",(function $BinaryOperatorAssignment_on_defined$ques$5(node){var $a,inner=nil;return delete $BinaryOperatorAssignment_on_defined$ques$5.$$p,inner=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$eqeq(inner.$type(),"op_asgn")?$$("ASSIGNMENT_STRING_NODE"):$send2(this,$find_super(this,"on_defined?",$BinaryOperatorAssignment_on_defined$ques$5,!1,!0),"on_defined?",[node],null)}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$Opal=Opal.Opal;return Opal.add_stubs("require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn"),self.$require("opal/rewriters/base"),self.$require("set"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Hashes")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"KeyDuplicatesRewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.keys=nil,$def(self,"$initialize",(function(){return this.keys=$$("UniqKeysSet").$new()}),0),$def(self,"$on_hash",(function $$on_hash(node){var $a,self=this,previous_keys=nil;return delete $$on_hash.$$p,function(){try{return $a=[self.keys,$$("UniqKeysSet").$new()],previous_keys=$a[0],self.keys=$a[1],$send2(self,$find_super(self,"on_hash",$$on_hash,!1,!0),"on_hash",[node],null)}finally{self.keys=previous_keys}}()}),1),$def(self,"$on_pair",(function $$on_pair(node){var $a,key=nil;return delete $$on_pair.$$p,key=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$truthy(["str","sym"]["$include?"](key.$type()))&&this.keys["$<<"](key),$send2(this,$find_super(this,"on_pair",$$on_pair,!1,!0),"on_pair",[node],null)}),1),$def(self,"$on_kwsplat",(function(node){var $a,hash=nil;return hash=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],$eqeq(hash.$type(),"hash")&&(hash=this.$process_regular_node(hash)),node.$updated(nil,[hash])}),1),function($base,$super,$parent_nesting){var self=$klass($base,null,"UniqKeysSet"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.set=nil,$def(self,"$initialize",(function(){return this.set=$$("Set").$new()}),0),$def(self,"$<<",(function(element){var $a,key=nil;return $truthy(this.set["$include?"](element))?(key=null==($a=[].concat($to_a(element)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],key=$eqeq(element.$type(),"str")?key.$inspect():":"+key,$$("Kernel").$warn("warning: key "+key+" is duplicated and overwritten")):this.set["$<<"](element)}),1)}($nesting[0],0,$nesting)}($nesting[0],$$$($$$($Opal,"Rewriters"),"Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/dump_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$hash2=Opal.hash2,$def=Opal.def;return Opal.add_stubs("require,updated"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DumpArgs");return $def(self,"$on_def",(function $$on_def(node){var $a,args;return delete $$on_def.$$p,node=$send2(this,$find_super(this,"on_def",$$on_def,!1,!0),"on_def",[node],null),null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],null==$a[2]?nil:$a[2],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))}),1),$def(self,"$on_defs",(function $$on_defs(node){var $a,args;return delete $$on_defs.$$p,node=$send2(this,$find_super(this,"on_defs",$$on_defs,!1,!0),"on_defs",[node],null),null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],null==$a[3]?nil:$a[3],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))}),1),$def(self,"$on_iter",(function $$on_iter(node){var $a,args;return delete $$on_iter.$$p,node=$send2(this,$find_super(this,"on_iter",$$on_iter,!1,!0),"on_iter",[node],null),args=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],node.$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["original_args"],{original_args:args})}))}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/mlhs_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$truthy=Opal.truthy,$def=Opal.def,$rb_plus=Opal.rb_plus,$send=Opal.send,$eqeq=Opal.eqeq,$hash2=Opal.hash2;return Opal.add_stubs("require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"MlhsArgs"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$on_def",(function $$on_def(node){var $a,mid,args=nil,body=nil,arguments$=nil,$ret_or_1=nil;return delete $$on_def.$$p,node=$send2(this,$find_super(this,"on_def",$$on_def,!1,!0),"on_def",[node],null),mid=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],arguments$=$$("Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),body=this.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[mid,args,body])}),1),$def(self,"$on_defs",(function $$on_defs(node){var $a,recv,mid,args=nil,body=nil,arguments$=nil,$ret_or_1=nil;return delete $$on_defs.$$p,node=$send2(this,$find_super(this,"on_defs",$$on_defs,!1,!0),"on_defs",[node],null),recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],body=null==$a[3]?nil:$a[3],arguments$=$$("Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),body=this.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[recv,mid,args,body])}),1),$def(self,"$on_iter",(function $$on_iter(node){var $a,args=nil,body=nil,arguments$=nil,$ret_or_1=nil;return delete $$on_iter.$$p,node=$send2(this,$find_super(this,"on_iter",$$on_iter,!1,!0),"on_iter",[node],null),args=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],arguments$=$$("Arguments").$new(args),args=args.$updated(nil,arguments$.$rewritten()),$truthy(arguments$.$initialization())&&(body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),body=this.$prepend_to_body(body,arguments$.$initialization())),node.$updated(nil,[args,body])}),1),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Arguments"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.counter=$proto.args=$proto.initialization=nil,self.$attr_reader("rewritten","initialization"),$def(self,"$initialize",(function(args){return this.args=args,this.rewritten=[],this.initialization=[],this.rewriter=$$("MlhsRewriter").$new(),this["$split!"]()}),1),$def(self,"$reset_tmp_counter!",(function(){return this.counter=0}),0),$def(self,"$new_mlhs_tmp",(function(){var $ret_or_1;return this.counter=$truthy($ret_or_1=this.counter)?$ret_or_1:0,this.counter=$rb_plus(this.counter,1),"$mlhs_tmp"+this.counter}),0),$def(self,"$split!",(function(){return $send(this.args.$children(),"each",[],(function $$3(arg){var self=null==$$3.$$s?this:$$3.$$s,var_name=nil,rhs=nil,mlhs=nil;return null==self.rewriter&&(self.rewriter=nil),null==self.initialization&&(self.initialization=nil),null==self.rewritten&&(self.rewritten=nil),null==arg&&(arg=nil),$eqeq(arg.$type(),"mlhs")?(var_name=self.$new_mlhs_tmp(),rhs=self.$s("lvar",var_name),mlhs=self.rewriter.$process(arg),self.initialization["$<<"](self.$s("masgn",mlhs,rhs)),self.rewritten["$<<"](self.$s("arg",var_name).$updated(nil,nil,$hash2(["meta"],{meta:$hash2(["arg_name"],{arg_name:var_name})})))):self.rewritten["$<<"](arg)}),{$$arity:1,$$s:this}),$eqeq(this.initialization.$length(),1)?this.initialization=this.initialization["$[]"](0):$truthy(this.initialization["$empty?"]())?this.initialization=nil:this.initialization=$send(this,"s",["begin"].concat($to_a(this.initialization)))}),0)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"MlhsRewriter");return $def(self,"$on_arg",(function(node){return node.$updated("lvasgn")}),1),$def(self,"$on_restarg",(function(node){var name;return name=node.$children()["$[]"](0),$truthy(name)?this.$s("splat",node.$updated("lvasgn")):this.$s("splat")}),1)}($nesting[0],$$("Base"))}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/arguments"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("attr_reader,each,===,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,null,"Arguments"),$proto=self.$$prototype;return $proto.restarg=$proto.postargs=$proto.kwargs=$proto.kwoptargs=$proto.kwrestarg=$proto.optargs=nil,self.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),$def(self,"$initialize",(function(args){return this.args=[],this.optargs=[],this.restarg=nil,this.postargs=[],this.kwargs=[],this.kwoptargs=[],this.kwrestarg=nil,this.kwnilarg=!1,this.shadowargs=[],this.blockarg=nil,$send(args,"each",[],(function $$1(arg){var $ret_or_1,self=null==$$1.$$s?this:$$1.$$s;return null==self.optargs&&(self.optargs=nil),null==self.restarg&&(self.restarg=nil),null==self.postargs&&(self.postargs=nil),null==self.args&&(self.args=nil),null==self.kwargs&&(self.kwargs=nil),null==self.kwoptargs&&(self.kwoptargs=nil),null==self.shadowargs&&(self.shadowargs=nil),null==arg&&(arg=nil),$eqeqeq("arg",$ret_or_1=arg.$type())||$eqeqeq("mlhs",$ret_or_1)?($truthy(self.restarg)||$truthy(self.optargs["$any?"]())?self.postargs:self.args)["$<<"](arg):$eqeqeq("optarg",$ret_or_1)?self.optargs["$<<"](arg):$eqeqeq("restarg",$ret_or_1)?self.restarg=arg:$eqeqeq("kwarg",$ret_or_1)?self.kwargs["$<<"](arg):$eqeqeq("kwoptarg",$ret_or_1)?self.kwoptargs["$<<"](arg):$eqeqeq("kwnilarg",$ret_or_1)?self.kwnilarg=!0:$eqeqeq("kwrestarg",$ret_or_1)?self.kwrestarg=arg:$eqeqeq("shadowarg",$ret_or_1)?self.shadowargs["$<<"](arg):$eqeqeq("blockarg",$ret_or_1)?self.blockarg=arg:self.$raise("Unsupported arg type "+arg.$type())}),{$$arity:1,$$s:this})}),1),$def(self,"$has_post_args?",(function(){var $ret_or_1,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=this.restarg["$nil?"]()["$!"]())?$ret_or_2:this.postargs["$any?"]())?$ret_or_1:$truthy($ret_or_2=this["$has_any_kwargs?"]())?this["$can_inline_kwargs?"]()["$!"]():$ret_or_2}),0),$def(self,"$has_any_kwargs?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.kwargs["$any?"]())?$ret_or_2:this.kwoptargs["$any?"]())?$ret_or_1:this.kwrestarg["$nil?"]()["$!"]()}),0),$def(self,"$can_inline_kwargs?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.optargs["$empty?"]())?this.restarg["$nil?"]():$ret_or_2)?this.postargs["$empty?"]():$ret_or_1}),0)}([$module($base,"Rewriters")].concat($parent_nesting)[0])}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/inline_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$truthy=Opal.truthy,$hash2=Opal.hash2,$def=Opal.def,$const_set=Opal.const_set,$send=Opal.send,$eqeq=Opal.eqeq,$Opal=Opal.Opal;return Opal.add_stubs("require,s,new,updated,inline,prepend_to_body,initialization,attr_reader,freeze,children,each,send,any?,blockarg,<<,shadowargs,args,==,[],has_post_args?,length,has_any_kwargs?,can_inline_kwargs?,kwargs,kwoptargs,kwrestarg,postargs,optargs,args_to_keep,restarg"),self.$require("opal/rewriters/base"),self.$require("opal/rewriters/arguments"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"InlineArgs"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$on_def",(function $$on_def(node){var $a,mid,$ret_or_1,inline_args,args=nil,body=nil,initializer=nil;return delete $$on_def.$$p,node=$send2(this,$find_super(this,"on_def",$$on_def,!1,!0),"on_def",[node],null),mid=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],args=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),initializer=$$("Initializer").$new(args,$hash2(["type"],{type:"def"})),inline_args=args.$updated(nil,initializer.$inline()),body=this.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[mid,inline_args,body])}),1),$def(self,"$on_defs",(function $$on_defs(node){var $a,recv,mid,$ret_or_1,inline_args,args=nil,body=nil,initializer=nil;return delete $$on_defs.$$p,node=$send2(this,$find_super(this,"on_defs",$$on_defs,!1,!0),"on_defs",[node],null),recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=null==$a[2]?nil:$a[2],body=null==$a[3]?nil:$a[3],body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),initializer=$$("Initializer").$new(args,$hash2(["type"],{type:"defs"})),inline_args=args.$updated(nil,initializer.$inline()),body=this.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[recv,mid,inline_args,body])}),1),$def(self,"$on_iter",(function $$on_iter(node){var $a,$ret_or_1,inline_args,args=nil,body=nil,initializer=nil;return delete $$on_iter.$$p,node=$send2(this,$find_super(this,"on_iter",$$on_iter,!1,!0),"on_iter",[node],null),args=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],body=null==$a[1]?nil:$a[1],body=$truthy($ret_or_1=body)?$ret_or_1:this.$s("nil"),initializer=$$("Initializer").$new(args,$hash2(["type"],{type:"iter"})),inline_args=args.$updated(nil,initializer.$inline()),body=this.$prepend_to_body(body,initializer.$initialization()),node.$updated(nil,[inline_args,body])}),1),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Initializer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.initialization=$proto.args=$proto.inline=nil,self.$attr_reader("inline","initialization"),$const_set($nesting[0],"STEPS",["extract_blockarg","initialize_shadowargs","extract_args","prepare_post_args","prepare_kwargs","extract_optargs","extract_restarg","extract_post_args","extract_kwargs","extract_kwoptargs","extract_kwrestarg"].$freeze()),$def(self,"$initialize",(function(args,$kwargs){var type;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(!Opal.hasOwnProperty.call($kwargs.$$smap,"type"))throw Opal.ArgumentError.$new("missing keyword: type");return type=$kwargs.$$smap.type,this.args=$$("Arguments").$new(args.$children()),this.inline=[],this.initialization=[],this.type=type,this.underscore_found=!1,$send($$("STEPS"),"each",[],(function $$1(step){return null==step&&(step=nil),(null==$$1.$$s?this:$$1.$$s).$send(step)}),{$$arity:1,$$s:this}),$truthy(this.initialization["$any?"]())?this.initialization=$send(this,"s",["begin"].concat($to_a(this.initialization))):this.initialization=nil}),2),$def(self,"$extract_blockarg",(function(){var arg=nil;return $truthy(arg=this.args.$blockarg())?this.initialization["$<<"](arg.$updated("extract_blockarg")):nil}),0),$def(self,"$initialize_shadowargs",(function(){return $send(this.args.$shadowargs(),"each",[],(function $$2(arg){var self=null==$$2.$$s?this:$$2.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("initialize_shadowarg"))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_args",(function(){return $send(this.args.$args(),"each",[],(function $$3(arg){var self=null==$$3.$$s?this:$$3.$$s;return null==self.type&&(self.type=nil),null==self.initialization&&(self.initialization=nil),null==self.underscore_found&&(self.underscore_found=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),$eqeq(self.type,"iter")&&(self.initialization["$<<"](arg.$updated("initialize_iter_arg")),$eqeq(arg.$children()["$[]"](0),"_")&&($truthy(self.underscore_found)&&(arg=self.$s("fake_arg")),self.underscore_found=!0)),self.inline["$<<"](arg)}),{$$arity:1,$$s:this})}),0),$def(self,"$prepare_post_args",(function(){return $truthy(this.args["$has_post_args?"]())?this.initialization["$<<"](this.$s("prepare_post_args",this.args.$args().$length())):nil}),0),$def(self,"$prepare_kwargs",(function(){return $truthy(this.args["$has_any_kwargs?"]())?($truthy(this.args["$can_inline_kwargs?"]())?this.inline["$<<"](this.$s("arg","$kwargs")):(this.initialization["$<<"](this.$s("extract_kwargs")),this.inline["$<<"](this.$s("fake_arg"))),this.initialization["$<<"](this.$s("ensure_kwargs_are_kwargs"))):nil}),0),$def(self,"$extract_kwargs",(function(){return $send(this.args.$kwargs(),"each",[],(function $$4(arg){var self=null==$$4.$$s?this:$$4.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_kwarg"))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_kwoptargs",(function(){return $send(this.args.$kwoptargs(),"each",[],(function $$5(arg){var self=null==$$5.$$s?this:$$5.$$s;return null==self.initialization&&(self.initialization=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_kwoptarg"))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_kwrestarg",(function(){var arg=nil;return $truthy(arg=this.args.$kwrestarg())?this.initialization["$<<"](arg.$updated("extract_kwrestarg")):nil}),0),$def(self,"$extract_post_args",(function(){return $send(this.args.$postargs(),"each",[],(function $$6(arg){var self=null==$$6.$$s?this:$$6.$$s;return null==self.initialization&&(self.initialization=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),self.initialization["$<<"](arg.$updated("extract_post_arg")),self.inline["$<<"](self.$s("fake_arg"))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_optargs",(function(){var has_post_args;return has_post_args=this.args["$has_post_args?"](),$send(this.args.$optargs(),"each",[],(function $$7(arg){var $a,self=null==$$7.$$s?this:$$7.$$s,arg_name=nil,default_value=nil;return null==self.initialization&&(self.initialization=nil),null==self.inline&&(self.inline=nil),null==arg&&(arg=nil),$truthy(has_post_args)?(arg_name=null==($a=[].concat($to_a(arg)))[0]?nil:$a[0],default_value=null==$a[1]?nil:$a[1],self.initialization["$<<"](arg.$updated("extract_post_optarg",[arg_name,default_value,self.$args_to_keep()])),self.inline["$<<"](self.$s("fake_arg"))):(self.inline["$<<"](arg.$updated("arg")),self.initialization["$<<"](arg.$updated("extract_optarg")))}),{$$arity:1,$$s:this})}),0),$def(self,"$extract_restarg",(function(){var arg=nil,arg_name=nil;return $truthy(arg=this.args.$restarg())?(arg_name=arg.$children()["$[]"](0),this.initialization["$<<"](arg.$updated("extract_restarg",[arg_name,this.$args_to_keep()])),this.inline["$<<"](this.$s("fake_arg"))):nil}),0),$def(self,"$args_to_keep",(function(){return this.args.$postargs().$length()}),0)}($nesting[0],$$$($$$($Opal,"Rewriters"),"Base"),$nesting)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/numblocks"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_ary=Opal.to_ary,$send=Opal.send,$to_a=Opal.to_a,$def=Opal.def;return Opal.add_stubs("require,children,s,gen_args,map"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"Numblocks");return $def(self,"$on_numblock",(function(node){var $a,$b,left,arg_count,right;return $b=node.$children(),left=null==($a=$to_ary($b))[0]?nil:$a[0],arg_count=null==$a[1]?nil:$a[1],right=null==$a[2]?nil:$a[2],this.$s("block",left,$send(this,"s",["args"].concat($to_a(this.$gen_args(arg_count)))),right)}),1),$def(self,"$gen_args",(function(arg_count){return $send(Opal.Range.$new(1,arg_count,!1),"map",[],(function $$1(i){return null==i&&(i=nil),(null==$$1.$$s?this:$$1.$$s).$s("arg","_"+i)}),{$$arity:1,$$s:this})}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/returnable_logic"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$def=Opal.def,$rb_minus=Opal.rb_minus,$to_a=Opal.to_a,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$eqeq=Opal.eqeq;return Opal.add_stubs("require,+,-,children,[]=,meta,s,next_tmp,build_if_from_when,free_tmp,[],process,updated,==,count,first,delete,private,build_rule_from_parts,empty?,type"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ReturnableLogic");return self.$$prototype.counter=nil,$def(self,"$next_tmp",(function(){var $ret_or_1;return this.counter=$truthy($ret_or_1=this.counter)?$ret_or_1:0,this.counter=$rb_plus(this.counter,1),"$ret_or_"+this.counter}),0),$def(self,"$free_tmp",(function(){return this.counter=$rb_minus(this.counter,1)}),0),$def(self,"$reset_tmp_counter!",(function(){return this.counter=nil}),0),$def(self,"$on_if",(function $$on_if(node){var $a,$yield=$$on_if.$$p||nil,test=nil,$writer=nil;return delete $$on_if.$$p,test=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],$truthy(test)&&($writer=["if_test",!0],$send(test.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$send2(this,$find_super(this,"on_if",$$on_if,!1,!0),"on_if",[node],$yield)}),1),$def(self,"$on_case",(function(node){var $a,$b,lhs,whens,$ret_or_1,out,els=nil,lhs_tmp=nil;return lhs=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,whens=$slice.call($a,1,$b),els=null==$a[$b]?nil:$a[$b],els=$truthy($ret_or_1=els)?$ret_or_1:this.$s("nil"),$truthy(lhs)&&(lhs_tmp=this.$next_tmp()),out=this.$build_if_from_when(node,lhs,lhs_tmp,whens,els),$truthy(lhs)&&this.$free_tmp(),out}),1),$def(self,"$on_or",(function(node){var $a,lhs=nil,rhs=nil,$writer=nil,out=nil,lhs_tmp=nil;return lhs=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],$truthy(node.$meta()["$[]"]("if_test"))?($writer=["if_test",($writer=["if_test",!0],$send(rhs.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send(lhs.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],out=this.$process(node.$updated("if",[lhs,this.$s("true"),rhs]))):(lhs_tmp=this.$next_tmp(),out=this.$process(node.$updated("if",[this.$s("lvasgn",lhs_tmp,lhs),this.$s("js_tmp",lhs_tmp),rhs])),this.$free_tmp()),out}),1),$def(self,"$on_and",(function(node){var $a,lhs=nil,rhs=nil,$writer=nil,out=nil,lhs_tmp=nil;return lhs=null==($a=[].concat($to_a(node.$children())))[0]?nil:$a[0],rhs=null==$a[1]?nil:$a[1],$truthy(node.$meta()["$[]"]("if_test"))?($writer=["if_test",($writer=["if_test",!0],$send(rhs.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])],$send(lhs.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],out=this.$process(node.$updated("if",[lhs,rhs,this.$s("false")]))):(lhs_tmp=this.$next_tmp(),out=this.$process(node.$updated("if",[this.$s("lvasgn",lhs_tmp,lhs),rhs,this.$s("js_tmp",lhs_tmp)])),this.$free_tmp()),out}),1),$def(self,"$on_begin",(function $$on_begin(node){var $yield=$$on_begin.$$p||nil,$writer=nil;return delete $$on_begin.$$p,$truthy(node.$meta()["$[]"]("if_test"))&&$eqeq(node.$children().$count(),1)&&($writer=["if_test",!0],$send(node.$children().$first().$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),node.$meta().$delete("if_test"),$send2(this,$find_super(this,"on_begin",$$on_begin,!1,!0),"on_begin",[node],$yield)}),1),self.$private(),$def(self,"$build_if_from_when",(function(node,lhs,lhs_tmp,whens,els){var $a,$b,parts,expr,rule,first_when=nil,next_whens=nil;return first_when=null==($a=[].concat($to_a(whens)))[0]?nil:$a[0],next_whens=$slice.call($a,1),$b=($b=($a=[].concat($to_a(first_when.$children()))).length-1)<0?0:$b,parts=$slice.call($a,0,$b),expr=null==$a[$b]?nil:$a[$b],rule=this.$build_rule_from_parts(node,lhs,lhs_tmp,parts),first_when.$updated("if",[rule,this.$process(expr),$truthy(next_whens["$empty?"]())?this.$process(els):this.$build_if_from_when(nil,nil,lhs_tmp,next_whens,els)])}),5),$def(self,"$build_rule_from_parts",(function(node,lhs,lhs_tmp,parts){var $a,subrule,first_part=nil,next_parts=nil,splat_on=nil,iter_val=nil,block=nil;return lhs=$truthy(node)&&$truthy(lhs_tmp)?node.$updated("lvasgn",[lhs_tmp,this.$process(lhs)]):this.$s("js_tmp",lhs_tmp),first_part=null==($a=[].concat($to_a(parts)))[0]?nil:$a[0],next_parts=$slice.call($a,1),subrule=$eqeq(first_part.$type(),"splat")?(splat_on=first_part.$children().$first(),iter_val=this.$next_tmp(),block=this.$s("send",this.$process(splat_on),"any?",this.$s("iter",this.$s("args",this.$s("arg",iter_val)),this.$build_rule_from_parts(nil,nil,lhs_tmp,[this.$s("lvar",iter_val)]))),$truthy(node)&&$truthy(lhs_tmp)?this.$s("begin",lhs,block):block):$truthy(lhs_tmp)?this.$s("send",this.$process(first_part),"===",lhs):this.$process(first_part),$truthy(next_parts["$empty?"]())?subrule:this.$s("if",subrule,this.$s("true"),this.$build_rule_from_parts(nil,nil,lhs_tmp,next_parts))}),4)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/forward_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$range=Opal.range,$to_a=Opal.to_a,$send2=Opal.send2,$find_super=Opal.find_super,$neqeq=Opal.neqeq;return Opal.add_stubs("require,process,s,==,type,last,children,[],updated,!=,class"),self.$require("opal/rewriters/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ForwardArgs"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$on_forward_args",(function(_node){return this.$process(this.$s("args",this.$s("forward_arg","$")))}),1),$def(self,"$on_args",(function $$on_args(node){var $yield=$$on_args.$$p||nil,prev_children=nil;return delete $$on_args.$$p,$truthy(node.$children().$last())&&$eqeq(node.$children().$last().$type(),"forward_arg")?(prev_children=node.$children()["$[]"]($range(0,-2,!1)),node.$updated(nil,[].concat($to_a(prev_children)).concat([this.$s("restarg","$fwd_rest"),this.$s("blockarg","$fwd_block")]))):$send2(this,$find_super(this,"on_args",$$on_args,!1,!0),"on_args",[node],$yield)}),1),$def(self,"$on_send",(function $$on_send(node){var $yield=$$on_send.$$p||nil,prev_children=nil;return delete $$on_send.$$p,$truthy(node.$children().$last())&&$neqeq(node.$children().$last().$class(),$$("Symbol"))&&$eqeq(node.$children().$last().$type(),"forwarded_args")?(prev_children=node.$children()["$[]"]($range(0,-2,!1)),node.$updated(nil,[].concat($to_a(prev_children)).concat([this.$s("splat",this.$s("lvar","$fwd_rest")),this.$s("block_pass",this.$s("lvar","$fwd_block"))]))):$send2(this,$find_super(this,"on_send",$$on_send,!1,!0),"on_send",[node],$yield)}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/rewriter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$hash2=Opal.hash2,$eqeq=Opal.eqeq,$send=Opal.send;return Opal.add_stubs("require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process"),self.$require("opal/rewriters/opal_engine_check"),self.$require("opal/rewriters/for_rewriter"),self.$require("opal/rewriters/explicit_writer_return"),self.$require("opal/rewriters/js_reserved_words"),self.$require("opal/rewriters/block_to_iter"),self.$require("opal/rewriters/dot_js_syntax"),self.$require("opal/rewriters/pattern_matching"),self.$require("opal/rewriters/logical_operator_assignment"),self.$require("opal/rewriters/binary_operator_assignment"),self.$require("opal/rewriters/hashes/key_duplicates_rewriter"),self.$require("opal/rewriters/dump_args"),self.$require("opal/rewriters/mlhs_args"),self.$require("opal/rewriters/inline_args"),self.$require("opal/rewriters/numblocks"),self.$require("opal/rewriters/returnable_logic"),self.$require("opal/rewriters/forward_args"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Rewriter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.sexp=nil,self.disabled=!1,function(self,$parent_nesting){$def(self,"$list",(function(){var $ret_or_1;return null==this.list&&(this.list=nil),this.list=$truthy($ret_or_1=this.list)?$ret_or_1:[]}),0),$def(self,"$use",(function(rewriter){return this.$list()["$<<"](rewriter)}),1),$def(self,"$delete",(function(rewriter){return this.$list().$delete(rewriter)}),1),$def(self,"$disable",(function $$disable($kwargs){var except,$yield=$$disable.$$p||nil,self=this,old_disabled=nil,$ret_or_1=nil;if(null==self.disabled&&(self.disabled=nil),delete $$disable.$$p,null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(except=$kwargs.$$smap.except)&&(except=nil),function(){try{return old_disabled=self.disabled,self.disabled=!$truthy($ret_or_1=except)||$ret_or_1,Opal.yieldX($yield,[])}finally{self.disabled=old_disabled}}()}),-1),$def(self,"$disabled?",(function(){return null==this.disabled&&(this.disabled=nil),this.disabled["$=="](!0)}),0),$def(self,"$rewritter_disabled?",(function(rewriter){return null==this.disabled&&(this.disabled=nil),!$eqeq(this.disabled,!1)&&this.disabled["$!="](rewriter)}),1)}(Opal.get_singleton_class(self)),self.$use($$$($$("Rewriters"),"OpalEngineCheck")),self.$use($$$($$("Rewriters"),"ForRewriter")),self.$use($$$($$("Rewriters"),"Numblocks")),self.$use($$$($$("Rewriters"),"ForwardArgs")),self.$use($$$($$("Rewriters"),"BlockToIter")),self.$use($$$($$("Rewriters"),"DotJsSyntax")),self.$use($$$($$("Rewriters"),"PatternMatching")),self.$use($$$($$("Rewriters"),"JsReservedWords")),self.$use($$$($$("Rewriters"),"LogicalOperatorAssignment")),self.$use($$$($$("Rewriters"),"BinaryOperatorAssignment")),self.$use($$$($$("Rewriters"),"ExplicitWriterReturn")),self.$use($$$($$$($$("Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),self.$use($$$($$("Rewriters"),"ReturnableLogic")),self.$use($$$($$("Rewriters"),"DumpArgs")),self.$use($$$($$("Rewriters"),"MlhsArgs")),self.$use($$$($$("Rewriters"),"InlineArgs")),$def(self,"$initialize",(function(sexp){return this.sexp=sexp}),1),$def(self,"$process",(function(){return $truthy(this.$class()["$disabled?"]())||$send(this.$class().$list(),"each",[],(function $$4(rewriter_class){var self=null==$$4.$$s?this:$$4.$$s,rewriter=nil;return null==self.sexp&&(self.sexp=nil),null==rewriter_class&&(rewriter_class=nil),$truthy(self.$class()["$rewritter_disabled?"](rewriter_class))?nil:(rewriter=rewriter_class.$new(),self.sexp=rewriter.$process(self.sexp))}),{$$arity:1,$$s:this}),this.sexp}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/source_buffer"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$defs=Opal.defs;return function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Parser")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"SourceBuffer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$recognize_encoding",(function $$recognize_encoding(string){var $ret_or_1,$yield=$$recognize_encoding.$$p||nil;return delete $$recognize_encoding.$$p,$truthy($ret_or_1=$send2(this,$find_super(this,"recognize_encoding",$$recognize_encoding,!1,!0),"recognize_encoding",[string],$yield))?$ret_or_1:$$$($$("Encoding"),"UTF_8")}),1)}($nesting[0],$$$($$$($$$("Parser"),"Source"),"Buffer"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/default_config"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$lambda=Opal.lambda,$defs=Opal.defs,$truthy=Opal.truthy,$Opal=Opal.Opal;return Opal.add_stubs("attr_accessor,all_errors_are_fatal=,diagnostics,-,ignore_warnings=,diagnostics_consumer,consumer=,extend,diagnostics_consumer=,new,rewrite,process,default_parser,default_parser_class"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Parser"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"DefaultConfig"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);(function($base){var self=$module($base,"ClassMethods");self.$attr_accessor("diagnostics_consumer"),$def(self,"$default_parser",(function $$default_parser(){var $yield=$$default_parser.$$p||nil,parser=nil,$writer=nil;return delete $$default_parser.$$p,parser=$send2(this,$find_super(this,"default_parser",$$default_parser,!1,!0),"default_parser",[],$yield),$writer=[!0],$send(parser.$diagnostics(),"all_errors_are_fatal=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[!1],$send(parser.$diagnostics(),"ignore_warnings=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[this.$diagnostics_consumer()],$send(parser.$diagnostics(),"consumer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],parser}),0)})($nesting[0]),$defs(self,"$included",(function(klass){var $writer;return klass.$extend($$("ClassMethods")),$writer=[$lambda((function(diagnostic){return null==diagnostic&&(diagnostic=nil),nil}),1)],$send(klass,"diagnostics_consumer=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$initialize",(function $$initialize($a){var self=this;return delete $$initialize.$$p,Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",[$$$($$$($$("Opal"),"AST"),"Builder").$new()],null)}),-1),$def(self,"$parse",(function $$parse(source_buffer){var parsed,$ret_or_1,wrapped,$yield=$$parse.$$p||nil;return delete $$parse.$$p,parsed=$truthy($ret_or_1=$send2(this,$find_super(this,"parse",$$parse,!1,!0),"parse",[source_buffer],$yield))?$ret_or_1:$$$($$$($Opal,"AST"),"Node").$new("nil"),wrapped=$$$($$$($Opal,"AST"),"Node").$new("top",[parsed]),this.$rewrite(wrapped)}),1),$def(self,"$rewrite",(function(node){return $$$($$("Opal"),"Rewriter").$new(node).$process()}),1)}($nesting[0],$nesting),function(self,$parent_nesting){return self.$attr_accessor("default_parser_class"),$def(self,"$default_parser",(function(){return this.$default_parser_class().$default_parser()}),0)}(Opal.get_singleton_class(self))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/parser/with_ruby_lexer"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),$$$=(Opal.nil,Opal.$$$),$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus;return Opal.add_stubs("include,default_parser_class=,-"),function($base,$super,$parent_nesting){var $writer,self=$klass($base,$super,"WithRubyLexer"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$include($$$($$$($$("Opal"),"Parser"),"DefaultConfig")),$writer=[self],$send($$$($$("Opal"),"Parser"),"default_parser_class=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}($$$($$("Opal"),"Parser"),$$$($$("Parser"),"Ruby31"),$nesting)},Opal.modules["opal/parser/patch"]=function(Opal){var $base,self,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$rb_plus=Opal.rb_plus,$send=Opal.send,$hash2=Opal.hash2,$eqeqeq=Opal.eqeqeq,$eqeq=Opal.eqeq,$not=Opal.not,$rb_le=Opal.rb_le,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt,$rb_times=Opal.rb_times,$rb_divide=Opal.rb_divide,$to_a=Opal.to_a,$module=Opal.module;return Opal.add_stubs("source,unpack,+,to_a,lines,end_with?,<<,map,chomp,=~,diagnostic,nil?,new,===,type,updated,dedent,first,children,==,empty?,interrupt,compact,encoding,split,force_encoding,length,map!,each_with_index,!,each_char,<=,-,>,*,/,[],[]=,join,respond_to?,send,value"),$base=$$("Parser"),(self=$klass($base,null,"Lexer")).$$prototype.source_buffer=nil,$def(self,"$source_buffer=",(function(source_buffer){var source=nil;return this.source_buffer=source_buffer,$truthy(this.source_buffer)?(source=this.source_buffer.$source(),this.source_pts=source.$unpack("U*")):this.source_pts=nil}),1),function($base,$super){var self=$klass($base,null,"Literal"),$proto=self.$$prototype;$proto.buffer_s=$proto.buffer=nil,Opal.udef(self,"$extend_string"),$def(self,"$extend_string",(function(string,ts,te){var $ret_or_1;return this.buffer_s=$truthy($ret_or_1=this.buffer_s)?$ret_or_1:ts,this.buffer_e=te,this.buffer=$rb_plus(this.buffer,string)}),3)}($$$($$("Parser"),"Lexer")),function($base,$super){var self=$klass($base,null,"Buffer"),$proto=self.$$prototype;$proto.lines=$proto.source=nil,$def(self,"$source_lines",(function(){var $ret_or_1,lines=nil;return this.lines=$truthy($ret_or_1=this.lines)?$ret_or_1:(lines=this.source.$lines().$to_a(),$truthy(this.source["$end_with?"]("\n"))&&lines["$<<"](""),$send(lines,"map",[],(function(line){return null==line&&(line=nil),line.$chomp("\n")}),1))}),0)}($$$($$("Parser"),"Source")),function($base,$super){var self=$klass($base,null,"Default");$def(self,"$check_lvar_name",(function(name,loc){return $truthy(name["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?nil:this.$diagnostic("error","lvar_name",$hash2(["name"],{name:name}),loc)}),2),$def(self,"$dedent_string",(function(node,dedent_level){var dedenter=nil,$ret_or_1=nil,children=nil;return $truthy(dedent_level["$nil?"]())||(dedenter=$$$($$$($$$("Parser"),"Lexer"),"Dedenter").$new(dedent_level),$eqeqeq("str",$ret_or_1=node.$type())?node=node.$updated(nil,[dedenter.$dedent(node.$children().$first())]):($eqeqeq("dstr",$ret_or_1)||$eqeqeq("xstr",$ret_or_1))&&(children=$send(node.$children(),"map",[],(function(str_node){if(null==str_node&&(str_node=nil),$eqeq(str_node.$type(),"str")){if(str_node=str_node.$updated(nil,[dedenter.$dedent(str_node.$children().$first())]),$truthy(str_node.$children().$first()["$empty?"]()))return nil}else dedenter.$interrupt();return str_node}),1),node=node.$updated(nil,children.$compact()))),node}),2)}($$$($$("Parser"),"Builders")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Dedenter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$dedent",(function(string){var original_encoding,self=this,lines=nil;return original_encoding=string.$encoding(),lines=string.$force_encoding($$$($$("Encoding"),"BINARY")).$split("\\\n"),$eqeq(lines.$length(),1)?lines=[string.$force_encoding(original_encoding)]:$send(lines,"map!",[],(function(s){return null==s&&(s=nil),s.$force_encoding(original_encoding)}),1),function(){var $brk=Opal.new_brk();try{$send(lines,"each_with_index",[],(function $$5(line,index){var $writer,self=null==$$5.$$s?this:$$5.$$s,left_to_remove=nil,remove=nil;return null==self.at_line_begin&&(self.at_line_begin=nil),null==self.dedent_level&&(self.dedent_level=nil),null==line&&(line=nil),null==index&&(index=nil),$eqeq(index,0)&&$not(self.at_line_begin)?nil:(left_to_remove=self.dedent_level,remove=0,function(){var $brk=Opal.new_brk();try{$send(line,"each_char",[],(function $$6(char$){var $ret_or_1,self=null==$$6.$$s?this:$$6.$$s;return null==self.dedent_level&&(self.dedent_level=nil),null==char$&&(char$=nil),$truthy($rb_le(left_to_remove,0))&&Opal.brk(nil,$brk),$eqeqeq(" ",$ret_or_1=char$)?(remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,1)):$eqeqeq("\t",$ret_or_1)?($truthy($rb_gt($rb_times($$("TAB_WIDTH"),$rb_plus($rb_divide(remove,$$("TAB_WIDTH")),1)),self.dedent_level))&&Opal.brk(nil,$brk),remove=$rb_plus(remove,1),left_to_remove=$rb_minus(left_to_remove,$$("TAB_WIDTH"))):void Opal.brk(nil,$brk)}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),$writer=[index,line["$[]"](Opal.Range.$new(remove,-1,!1))],$send(lines,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),{$$arity:2,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),string=lines.$join(),self.at_line_begin=string["$end_with?"]("\n"),string}),1)}($$$($$("Parser"),"Lexer"),0,$nesting),function($base){var self=$module($base,"Mixin");Opal.udef(self,"$process"),$def(self,"$process",(function(node){var type,on_handler,$ret_or_1=nil,$writer=nil,handler=nil;return null==this._on_handler_cache&&(this._on_handler_cache=nil),$truthy(node["$nil?"]())?nil:(this._on_handler_cache=$truthy($ret_or_1=this._on_handler_cache)?$ret_or_1:$hash2([],{}),type=node.$type(),on_handler=$truthy($ret_or_1=this._on_handler_cache["$[]"](type))?$ret_or_1:($writer=[type,(handler="on_"+type,$truthy(this["$respond_to?"](handler))||(handler="handler_missing"),handler)],$send(this._on_handler_cache,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy($ret_or_1=this.$send(on_handler,node))?$ret_or_1:node)}),1)}($$$($$("AST"),"Processor")),function($base,$super){var self=$klass($base,null,"Default");return Opal.udef(self,"$string_value"),$def(self,"$string_value",(function(token){return this.$value(token)}),1)}($$$($$("Parser"),"Builders"))},Opal.modules["opal/parser"]=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("require"),self.$require("opal/ast/builder"),self.$require("opal/rewriter"),self.$require("opal/parser/source_buffer"),self.$require("opal/parser/default_config"),self.$require("opal/parser/with_ruby_lexer"),self.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$rb_plus=Opal.rb_plus,$rb_gt=Opal.rb_gt,$to_a=Opal.to_a,$not=Opal.not,$send=Opal.send;return Opal.add_stubs("attr_reader,to_s,inspect,===,type,[],meta,source_map_name_for,sexp,==,class,+,parent,>,!,first,children,loc,respond_to?,dot,selector,operator,begin,line,location,column"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Fragment"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.code=$proto.scope=$proto.sexp=nil,self.$attr_reader("code"),$def(self,"$initialize",(function(code,scope,sexp){return null==sexp&&(sexp=nil),this.code=code.$to_s(),this.sexp=sexp,this.scope=scope}),-3),$def(self,"$inspect",(function(){return"f("+this.code.$inspect()+")"}),0),$def(self,"$source_map_name_for",(function(sexp){var $a,$ret_or_1,$ret_or_2=nil,scope=nil,iters=nil,level=nil,const$=nil,name=nil;if($eqeqeq("top",$ret_or_1=sexp.$type()))return $eqeqeq("require",$ret_or_2=sexp.$meta()["$[]"]("kind"))?"":$eqeqeq("eval",$ret_or_2)?"(eval)":$eqeqeq("main",$ret_or_2)?"
    ":nil;if($eqeqeq("begin",$ret_or_1)||$eqeqeq("newline",$ret_or_1)||$eqeqeq("js_return",$ret_or_1))return $truthy(this.scope)?this.$source_map_name_for(this.scope.$sexp()):nil;if($eqeqeq("iter",$ret_or_1)){for(scope=this.scope,iters=1;$truthy(scope)&&$eqeq(scope.$class(),$$$($$("Nodes"),"IterNode"));)iters=$rb_plus(iters,1),scope=scope.$parent();return $truthy($rb_gt(iters,1))&&(level=" ("+iters+" levels)"),"block"+level+" in "+this.$source_map_name_for(scope.$sexp())}return $eqeqeq("self",$ret_or_1)?"self":$eqeqeq("module",$ret_or_1)?(const$=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],""):$eqeqeq("class",$ret_or_1)?(const$=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],""):$eqeqeq("const",$ret_or_1)?(scope=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],$not(scope)||$eqeq(scope.$type(),"cbase")?name.$to_s():this.$source_map_name_for(scope)+"::"+name):$eqeqeq("int",$ret_or_1)||$eqeqeq("def",$ret_or_1)?sexp.$children().$first():$eqeqeq("defs",$ret_or_1)||$eqeqeq("send",$ret_or_1)?sexp.$children()["$[]"](1):$eqeqeq("lvar",$ret_or_1)||$eqeqeq("lvasgn",$ret_or_1)||$eqeqeq("lvdeclare",$ret_or_1)||$eqeqeq("ivar",$ret_or_1)||$eqeqeq("ivasgn",$ret_or_1)||$eqeqeq("gvar",$ret_or_1)||$eqeqeq("cvar",$ret_or_1)||$eqeqeq("cvasgn",$ret_or_1)||$eqeqeq("gvars",$ret_or_1)||$eqeqeq("gvasgn",$ret_or_1)||$eqeqeq("arg",$ret_or_1)?sexp.$children().$first():$eqeqeq("str",$ret_or_1)||$eqeqeq("xstr",$ret_or_1)?this.$source_map_name_for(this.scope.$sexp()):nil}),1),$def(self,"$source_map_name",(function(){return $truthy(this.sexp)?this.$source_map_name_for(this.sexp):nil}),0),$def(self,"$location",(function(){var loc=nil,$ret_or_1=nil;return $not(this.sexp)?nil:$eqeq(this.sexp.$type(),"send")?(loc=this.sexp.$loc(),$truthy(loc["$respond_to?"]("dot"))?$truthy($ret_or_1=loc.$dot())?$ret_or_1:loc.$selector():$truthy(loc["$respond_to?"]("operator"))?loc.$operator():this.sexp):$eqeq(this.sexp.$type(),"iter")&&$truthy(loc["$respond_to?"]("begin"))?this.sexp.$loc().$begin():this.sexp}),0),$def(self,"$line",(function(){var $a;return($a=this.$location())===nil||null==$a?nil:$send($a,"line",[])}),0),$def(self,"$column",(function(){var $a;return($a=this.$location())===nil||null==$a?nil:$send($a,"column",[])}),0),$def(self,"$skip_source_map?",(function(){return this.sexp["$=="](!1)}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/helpers"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$truthy=Opal.truthy,$def=Opal.def,$rb_plus=Opal.rb_plus,$send=Opal.send,$hash2=Opal.hash2,$to_a=Opal.to_a,$eqeqeq=Opal.eqeqeq,$slice=Opal.slice,$eqeq=Opal.eqeq,$rb_minus=Opal.rb_minus;return Opal.add_stubs("require,valid_name?,inspect,=~,to_s,+,indent,compiler,to_proc,parser_indent,push,fragment,current_indent,js_truthy_optimize,helper,expr,===,type,[],handlers,include?,truthy_optimize?,==,count,<<,method_calls,first,children,s,[]=,meta,-,new_temp,scope,wrap"),self.$require("opal/regexp_anchors"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Helpers"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$property",(function(name){return $truthy(this["$valid_name?"](name))?"."+name:"["+name.$inspect()+"]"}),1),$def(self,"$valid_name?",(function(name){return $$$($$$($$("Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](name)}),1),$def(self,"$mid_to_jsid",(function(mid){return $truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/["$=~"](mid.$to_s()))?"['$"+mid+"']":$rb_plus(".$",mid)}),1),$def(self,"$indent",(function $$indent(){var block=$$indent.$$p||nil;return delete $$indent.$$p,$send(this.$compiler(),"indent",[],block.$to_proc())}),0),$def(self,"$current_indent",(function(){return this.$compiler().$parser_indent()}),0),$def(self,"$line",(function($a){var strs,self=this;return strs=Opal.slice.call(arguments),self.$push(self.$fragment("\n"+self.$current_indent(),$hash2(["loc"],{loc:!1}))),$send(self,"push",$to_a(strs))}),-1),$def(self,"$empty_line",(function(){return this.$push(this.$fragment("\n",$hash2(["loc"],{loc:!1})))}),0),$def(self,"$js_truthy",(function(sexp){var optimize;return $truthy(optimize=this.$js_truthy_optimize(sexp))?optimize:(this.$helper("truthy"),[this.$fragment("$truthy("),this.$expr(sexp),this.$fragment(")")])}),1),$def(self,"$js_truthy_optimize",(function(sexp){var $a,$ret_or_1,receiver=nil,mid=nil,args=nil,receiver_handler_class=nil,$ret_or_2=nil,allow_optimization_on_type=nil,$ret_or_3=nil,true_body=nil,false_body=nil,$writer=nil;return $eqeqeq("send",$ret_or_1=sexp.$type())?(receiver=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],mid=null==$a[1]?nil:$a[1],args=$slice.call($a,2),receiver_handler_class=$truthy($ret_or_2=receiver)?this.$compiler().$handlers()["$[]"](receiver.$type()):$ret_or_2,allow_optimization_on_type=$truthy($ret_or_2=$truthy($ret_or_3=$$$($$("Compiler"),"COMPARE")["$include?"](mid.$to_s()))?receiver_handler_class:$ret_or_3)?receiver_handler_class["$truthy_optimize?"]():$ret_or_2,$truthy(allow_optimization_on_type)||$eqeq(mid,"block_given?")?this.$expr(sexp):$eqeq(args.$count(),1)?$eqeqeq("==",$ret_or_2=mid)?(this.$helper("eqeq"),this.$compiler().$method_calls()["$<<"](mid),[this.$fragment("$eqeq("),this.$expr(receiver),this.$fragment(", "),this.$expr(args.$first()),this.$fragment(")")]):$eqeqeq("===",$ret_or_2)?(this.$helper("eqeqeq"),this.$compiler().$method_calls()["$<<"](mid),[this.$fragment("$eqeqeq("),this.$expr(receiver),this.$fragment(", "),this.$expr(args.$first()),this.$fragment(")")]):$eqeqeq("!=",$ret_or_2)?(this.$helper("neqeq"),this.$compiler().$method_calls()["$<<"](mid),[this.$fragment("$neqeq("),this.$expr(receiver),this.$fragment(", "),this.$expr(args.$first()),this.$fragment(")")]):nil:$eqeq(args.$count(),0)&&$eqeqeq("!",$ret_or_2=mid)?(this.$helper("not"),this.$compiler().$method_calls()["$<<"](mid),[this.$fragment("$not("),this.$expr(receiver),this.$fragment(")")]):nil):$eqeqeq("begin",$ret_or_1)?$eqeq(sexp.$children().$count(),1)?this.$js_truthy_optimize(sexp.$children().$first()):nil:$eqeqeq("if",$ret_or_1)?(null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],$eqeq(true_body,this.$s("true"))?($writer=["do_js_truthy_on_false_body",!0],$send(sexp.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.$expr(sexp)):$eqeq(false_body,this.$s("false"))?($writer=["do_js_truthy_on_true_body",!0],$send(sexp.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.$expr(sexp)):nil):nil}),1),$def(self,"$conditional_send",(function $$conditional_send(recvr){var receiver_temp,$yield=$$conditional_send.$$p||nil;return delete $$conditional_send.$$p,receiver_temp=this.$scope().$new_temp(),this.$push(receiver_temp+" = ",recvr),this.$push(", ("+receiver_temp+" === nil || "+receiver_temp+" == null) ? nil : "),Opal.yield1($yield,receiver_temp),this.$wrap("(",")")}),1)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/base"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$hash2=Opal.hash2,$defs=Opal.defs,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$Opal=Opal.Opal,$rb_plus=Opal.rb_plus;return Opal.add_stubs("require,include,each,[]=,handlers,-,each_with_index,define_method,[],children,attr_reader,type,top_scope,top_scope=,compile,raise,is_a?,fragment,<<,reverse_each,unshift,push,new,scope,error,loc,==,process,expr,add_scope_local,to_sym,add_scope_ivar,add_scope_gvar,add_scope_temp,helper,with_temp,to_proc,in_while?,instance_variable_get,has_rescue_else?,in_ensure,in_ensure?,in_resbody,in_resbody?,in_rescue,!,class_scope?,sclass?,+,parent,nesting,class_variable_owner_nesting_level,comments,compiler,name,source_buffer,expression,start_with?,end_with?,line"),self.$require("opal/nodes/helpers"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Base"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.compiler=$proto.sexp=$proto.fragments=$proto.level=nil,self.$include($$("Helpers")),$defs(self,"$handlers",(function(){var $ret_or_1;return null==this.handlers&&(this.handlers=nil),this.handlers=$truthy($ret_or_1=this.handlers)?$ret_or_1:$hash2([],{})}),0),$defs(self,"$handle",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$1(type){var $writer;return null==type&&(type=nil),$writer=[type,null==$$1.$$s?this:$$1.$$s],$send($$("Base").$handlers(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})}),-1),$defs(self,"$children",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each_with_index",[],(function $$2(name,idx){var self=null==$$2.$$s?this:$$2.$$s;return null==name&&(name=nil),null==idx&&(idx=nil),$send(self,"define_method",[name],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return null==self.sexp&&(self.sexp=nil),self.sexp.$children()["$[]"](idx)}),{$$arity:0,$$s:self})}),{$$arity:2,$$s:self})}),-1),$defs(self,"$truthy_optimize?",(function(){return!1}),0),self.$attr_reader("compiler","type","sexp"),$def(self,"$initialize",(function(sexp,level,compiler){var $ret_or_1,$writer=nil;return this.sexp=sexp,this.type=sexp.$type(),this.level=level,this.compiler=compiler,$truthy($ret_or_1=this.compiler.$top_scope())?$ret_or_1:($writer=[this],$send(this.compiler,"top_scope=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),3),$def(self,"$children",(function(){return this.sexp.$children()}),0),$def(self,"$compile_to_fragments",(function(){var $a;return $truthy(null!=($a=this.fragments)&&$a!==nil?"instance-variable":nil)||(this.fragments=[],this.$compile()),this.fragments}),0),$def(self,"$compile",(function(){return this.$raise("Not Implemented")}),0),$def(self,"$push",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"each",[],(function $$5(str){var self=null==$$5.$$s?this:$$5.$$s;return null==self.fragments&&(self.fragments=nil),null==str&&(str=nil),$truthy(str["$is_a?"]($$("String")))&&(str=self.$fragment(str)),self.fragments["$<<"](str)}),{$$arity:1,$$s:self})}),-1),$def(self,"$unshift",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"reverse_each",[],(function $$6(str){var self=null==$$6.$$s?this:$$6.$$s;return null==self.fragments&&(self.fragments=nil),null==str&&(str=nil),$truthy(str["$is_a?"]($$("String")))&&(str=self.$fragment(str)),self.fragments.$unshift(str)}),{$$arity:1,$$s:self})}),-1),$def(self,"$wrap",(function(pre,post){return this.$unshift(pre),this.$push(post)}),2),$def(self,"$fragment",(function(str,$kwargs){var loc,$ret_or_1;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(loc=$kwargs.$$smap.loc)&&(loc=!0),$$$($$("Opal"),"Fragment").$new(str,this.$scope(),$truthy($ret_or_1=loc)?this.sexp:$ret_or_1)}),-2),$def(self,"$error",(function(msg){return this.compiler.$error(msg)}),1),$def(self,"$scope",(function(){return this.compiler.$scope()}),0),$def(self,"$top_scope",(function(){return this.compiler.$top_scope()}),0),$def(self,"$s",(function(type,$a){var children,self=this;return children=Opal.slice.call(arguments,1),$$$($$$($Opal,"AST"),"Node").$new(type,children,$hash2(["location"],{location:self.sexp.$loc()}))}),-2),$def(self,"$expr?",(function(){return this.level["$=="]("expr")}),0),$def(self,"$recv?",(function(){return this.level["$=="]("recv")}),0),$def(self,"$stmt?",(function(){return this.level["$=="]("stmt")}),0),$def(self,"$process",(function(sexp,level){return null==level&&(level="expr"),this.compiler.$process(sexp,level)}),-2),$def(self,"$expr",(function(sexp){return this.compiler.$process(sexp,"expr")}),1),$def(self,"$recv",(function(sexp){return this.compiler.$process(sexp,"recv")}),1),$def(self,"$stmt",(function(sexp){return this.compiler.$process(sexp,"stmt")}),1),$def(self,"$expr_or_nil",(function(sexp){return $truthy(sexp)?this.$expr(sexp):"nil"}),1),$def(self,"$add_local",(function(name){return this.$scope().$add_scope_local(name.$to_sym())}),1),$def(self,"$add_ivar",(function(name){return this.$scope().$add_scope_ivar(name)}),1),$def(self,"$add_gvar",(function(name){return this.$scope().$add_scope_gvar(name)}),1),$def(self,"$add_temp",(function(temp){return this.$scope().$add_scope_temp(temp)}),1),$def(self,"$helper",(function(name){return this.compiler.$helper(name)}),1),$def(self,"$with_temp",(function $$with_temp(){var block=$$with_temp.$$p||nil;return delete $$with_temp.$$p,$send(this.compiler,"with_temp",[],block.$to_proc())}),0),$def(self,"$in_while?",(function(){return this.compiler["$in_while?"]()}),0),$def(self,"$while_loop",(function(){return this.compiler.$instance_variable_get("@while_loop")}),0),$def(self,"$has_rescue_else?",(function(){return this.$scope()["$has_rescue_else?"]()}),0),$def(self,"$in_ensure",(function $$in_ensure(){var block=$$in_ensure.$$p||nil;return delete $$in_ensure.$$p,$send(this.$scope(),"in_ensure",[],block.$to_proc())}),0),$def(self,"$in_ensure?",(function(){return this.$scope()["$in_ensure?"]()}),0),$def(self,"$in_resbody",(function $$in_resbody(){var block=$$in_resbody.$$p||nil;return delete $$in_resbody.$$p,$send(this.$scope(),"in_resbody",[],block.$to_proc())}),0),$def(self,"$in_resbody?",(function(){return this.$scope()["$in_resbody?"]()}),0),$def(self,"$in_rescue",(function $$in_rescue(node){var block=$$in_rescue.$$p||nil;return delete $$in_rescue.$$p,$send(this.$scope(),"in_rescue",[node],block.$to_proc())}),1),$def(self,"$class_variable_owner_nesting_level",(function(){var cvar_scope=nil,nesting_level=nil,$ret_or_1=nil;for(cvar_scope=this.$scope(),nesting_level=0;$truthy($truthy($ret_or_1=cvar_scope)?cvar_scope["$class_scope?"]()["$!"]():$ret_or_1);)$truthy(cvar_scope["$sclass?"]())&&(nesting_level=$rb_plus(nesting_level,1)),cvar_scope=cvar_scope.$parent();return nesting_level}),0),$def(self,"$class_variable_owner",(function(){return $truthy(this.$scope())?this.$scope().$nesting()+"["+this.$class_variable_owner_nesting_level()+"]":"Opal.Object"}),0),$def(self,"$comments",(function(){return this.$compiler().$comments()["$[]"](this.sexp.$loc())}),0),$def(self,"$source_location",(function(){var file=nil;return file=this.sexp.$loc().$expression().$source_buffer().$name(),$truthy(file["$start_with?"]("corelib/"))&&(file=""),$truthy(file["$end_with?"](".js"))&&(file=""),"['"+file+"', "+this.sexp.$loc().$line()+"]"}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/literal"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def,$defs=Opal.defs,$truthy=Opal.truthy,$const_set=Opal.const_set,$hash2=Opal.hash2,$regexp=Opal.regexp,$send=Opal.send,$rb_plus=Opal.rb_plus,$lambda=Opal.lambda,$rb_le=Opal.rb_le,$rb_minus=Opal.rb_minus,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$eqeqeq=Opal.eqeqeq,$slice=Opal.slice,$Opal=Opal.Opal,$rb_gt=Opal.rb_gt;return Opal.add_stubs("require,handle,==,type,push,self,scope,to_s,children,value,recv?,wrap,freeze,join,keys,gsub,even?,length,last_match,+,chop,[],inspect,to_i,to_utf16,translate_escape_chars,valid_encoding?,helper,upcase,<=,call,-,>>,&,attr_accessor,extract_flags_and_value,select!,flags,=~,warning,compiler,compile_static_regexp,compile_dynamic_regexp,each_with_index,zero?,expr,any?,===,new,map,to_proc,flags=,empty?,s,single_line?,value=,include?,is_a?,updated,delete,source,expression,loc,private,>,!=,!,regexp,first,each,compile_inline?,compile_inline,compile_range_initialize,start,finish,raise,expr_or_nil,absolute_const,top_scope,numerator,denominator,real,imag"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ValueNode");self.$handle("true","false","self","nil"),$def(self,"$compile",(function(){return $eqeq(this.$type(),"self")?this.$push(this.$scope().$self()):this.$push(this.$type().$to_s())}),0),$defs(self,"$truthy_optimize?",(function(){return!0}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"NumericNode");self.$handle("int","float"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$value().$to_s()),$truthy(this["$recv?"]())?this.$wrap("(",")"):nil}),0),$defs(self,"$truthy_optimize?",(function(){return!0}),0)}($nesting[0],$$("Base")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"StringNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$handle("str"),self.$children("value"),$const_set($nesting[0],"ESCAPE_CHARS",$hash2(["a","e"],{a:"\\u0007",e:"\\u001b"}).$freeze()),$const_set($nesting[0],"ESCAPE_REGEX",$regexp(["(\\\\+)([",$$("ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),$def(self,"$translate_escape_chars",(function(inspect_string){return $send(inspect_string,"gsub",[$$("ESCAPE_REGEX")],(function(original){return null==original&&(original=nil),$truthy($$("Regexp").$last_match(1).$length()["$even?"]())?original:$rb_plus($$("Regexp").$last_match(1).$chop(),$$("ESCAPE_CHARS")["$[]"]($$("Regexp").$last_match(2)))}),1)}),1),$def(self,"$compile",(function(){var sanitized_value,string_value=nil;return string_value=this.$value(),sanitized_value=$send(string_value.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],(function $$4(){var code_point,self=null==$$4.$$s?this:$$4.$$s;return code_point=$$("Regexp").$last_match(1).$to_i(16),self.$to_utf16(code_point)}),{$$arity:0,$$s:this}),this.$push(this.$translate_escape_chars(sanitized_value)),$truthy(this.$value()["$valid_encoding?"]())?nil:(this.$helper("binary"),this.$wrap("$binary(",")"))}),0),$def(self,"$to_utf16",(function(code_point){var lead_surrogate,tail_surrogate,u=nil;return 1023,u=$lambda((function(code_unit){return null==code_unit&&(code_unit=nil),$rb_plus("\\u",code_unit.$to_s(16).$upcase())}),1),$truthy($rb_le(code_point,65535))?u.$call(code_point):(code_point=$rb_minus(code_point,65536),lead_surrogate=$rb_plus(55296,code_point["$>>"](10)),tail_surrogate=$rb_plus(56320,code_point["$&"](1023)),$rb_plus(u.$call(lead_surrogate),u.$call(tail_surrogate)))}),1)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"SymbolNode");self.$handle("sym"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$value().$to_s().$inspect())}),0)}($nesting[0],$$("Base")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"RegexpNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.sexp=nil,self.$handle("regexp"),self.$attr_accessor("value","flags"),$const_set($nesting[0],"SUPPORTED_FLAGS",/[gimuy]/.$freeze()),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),self.$extract_flags_and_value()}),-1),$def(self,"$compile",(function(){return $send(this.$flags(),"select!",[],(function $$6(flag){var self=null==$$6.$$s?this:$$6.$$s;return null==flag&&(flag=nil),!!$truthy($$("SUPPORTED_FLAGS")["$=~"](flag))||(self.$compiler().$warning("Skipping the '"+flag+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)}),{$$arity:1,$$s:this}),$eqeq(this.$value().$type(),"str")?this.$compile_static_regexp():this.$compile_dynamic_regexp()}),0),$def(self,"$compile_dynamic_regexp",(function(){return this.$helper("regexp"),this.$push("$regexp(["),$send(this.$value().$children(),"each_with_index",[],(function $$7(v,index){var self=null==$$7.$$s?this:$$7.$$s;return null==v&&(v=nil),null==index&&(index=nil),$truthy(index["$zero?"]())||self.$push(", "),self.$push(self.$expr(v))}),{$$arity:2,$$s:this}),this.$push("]"),$truthy(this.$flags()["$any?"]())&&this.$push(", '"+this.$flags().$join()+"'"),this.$push(")")}),0),$def(self,"$compile_static_regexp",(function(){var value;return value=this.$value().$children()["$[]"](0),$eqeqeq("",value)?this.$push("/(?:)/"):this.$push(""+$$("Regexp").$new(value).$inspect()+this.$flags().$join())}),0),$def(self,"$extract_flags_and_value",(function(){var $a,$b,values=nil,flags_sexp=nil,$writer=nil,parts=nil;return $b=($b=($a=[].concat($to_a(this.$children()))).length-1)<0?0:$b,values=$slice.call($a,0,$b),flags_sexp=null==$a[$b]?nil:$a[$b],$writer=[$send(flags_sexp.$children(),"map",[],"to_s".$to_proc())],$send(this,"flags=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[$truthy(values["$empty?"]())?this.$s("str",""):$truthy(this["$single_line?"](values))?values["$[]"](0):$send(this,"s",["dstr"].concat($to_a(values)))],$send(this,"value=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(this.$flags()["$include?"]("x"))&&(parts=$send(this.$value().$children(),"map",[],(function $$8(part){var self=null==$$8.$$s?this:$$8.$$s,trimmed_value=nil;return null==part&&(part=nil),$truthy(part["$is_a?"]($$$($$$($Opal,"AST"),"Node")))&&$eqeq(part.$type(),"str")?(trimmed_value=part.$children()["$[]"](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),self.$s("str",trimmed_value)):part}),{$$arity:1,$$s:this}),$writer=[this.$value().$updated(nil,parts)],$send(this,"value=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.$flags().$delete("x")),$eqeq(this.$value().$type(),"str")?($writer=[this.$s("str",this.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],$send(this,"value=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),0),$def(self,"$raw_value",(function(){var $writer;return $writer=[this.sexp.$loc().$expression().$source()],$send(this,"value=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),0),self.$private(),$def(self,"$single_line?",(function(values){var $ret_or_1,value=nil;return!$truthy($rb_gt(values.$length(),1))&&(value=values["$[]"](0),$truthy($ret_or_1=value.$type()["$!="]("str"))?$ret_or_1:value.$children()["$[]"](0)["$include?"]("\n")["$!"]())}),1)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"MatchCurrentLineNode");self.$handle("match_current_line"),self.$children("regexp"),$def(self,"$compile",(function(){var gvar_sexp,send_node;return gvar_sexp=this.$s("gvar","$_"),send_node=this.$s("send",gvar_sexp,"=~",this.$regexp()),this.$push(this.$expr(send_node))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"DynamicStringNode");self.$handle("dstr"),$def(self,"$compile",(function(){var skip_empty=nil;return $truthy($rb_gt(this.$children().$length(),1))&&$eqeq(this.$children().$first().$type(),"str")?skip_empty=!0:this.$push('""'),$send(this.$children(),"each",[],(function $$10(part){var self=null==$$10.$$s?this:$$10.$$s;return null==part&&(part=nil),$truthy(skip_empty)?skip_empty=!1:self.$push(" + "),$eqeq(part.$type(),"str")?self.$push(self.$expr(part)):self.$push("(",self.$expr(part),")"),$truthy(self["$recv?"]())?self.$wrap("(",")"):nil}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("Base")),function($base,$super){$klass($base,$super,"DynamicSymbolNode").$handle("dsym")}($nesting[0],$$("DynamicStringNode")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"RangeNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$children("start","finish"),$const_set($nesting[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),$def(self,"$compile",(function(){return $truthy(this["$compile_inline?"]())?(this.$helper("range"),this.$compile_inline()):this.$compile_range_initialize()}),0),$def(self,"$compile_inline?",(function(){var $ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$truthy($ret_or_2=this.$start()["$!"]())?$ret_or_2:$truthy($ret_or_3=this.$start().$type())?$$("SIMPLE_CHILDREN_TYPES")["$include?"](this.$start().$type()):$ret_or_3)?$truthy($ret_or_2=this.$finish()["$!"]())?$ret_or_2:$truthy($ret_or_3=this.$finish().$type())?$$("SIMPLE_CHILDREN_TYPES")["$include?"](this.$finish().$type()):$ret_or_3:$ret_or_1}),0),$def(self,"$compile_inline",(function(){return this.$raise($$("NotImplementedError"))}),0),$def(self,"$compile_range_initialize",(function(){return this.$raise($$("NotImplementedError"))}),0)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"InclusiveRangeNode");self.$handle("irange"),$def(self,"$compile_inline",(function(){return this.$push("$range(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", false)")}),0),$def(self,"$compile_range_initialize",(function(){return this.$push("Opal.Range.$new(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", false)")}),0)}($nesting[0],$$("RangeNode")),function($base,$super){var self=$klass($base,$super,"ExclusiveRangeNode");self.$handle("erange"),$def(self,"$compile_inline",(function(){return this.$push("$range(",this.$expr_or_nil(this.$start()),", ",this.$expr_or_nil(this.$finish()),", true)")}),0),$def(self,"$compile_range_initialize",(function(){return this.$push("Opal.Range.$new(",this.$expr_or_nil(this.$start()),",",this.$expr_or_nil(this.$finish()),", true)")}),0)}($nesting[0],$$("RangeNode")),function($base,$super){var self=$klass($base,$super,"RationalNode");self.$handle("rational"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$top_scope().$absolute_const()+"('Rational').$new("+this.$value().$numerator()+", "+this.$value().$denominator()+")")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ComplexNode");return self.$handle("complex"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$top_scope().$absolute_const()+"('Complex').$new("+this.$value().$real()+", "+this.$value().$imag()+")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/variables"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$send=Opal.send,$range=Opal.range,$eqeqeq=Opal.eqeqeq,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs("require,handle,children,irb?,compiler,top?,scope,using_irb?,push,to_s,var_name,with_temp,property,wrap,add_local,expr,value,expr?,recv?,[],name,add_ivar,self,helper,add_gvar,===,handle_global_match,handle_post_match,handle_pre_match,raise,index,stmt?,class_variable_owner,inspect"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"LocalVariableNode");self.$handle("lvar"),self.$children("var_name"),$def(self,"$using_irb?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():$ret_or_1}),0),$def(self,"$compile",(function(){return $truthy(this["$using_irb?"]())?$send(this,"with_temp",[],(function $$2(tmp){var self=null==$$2.$$s?this:$$2.$$s;return null==tmp&&(tmp=nil),self.$push(self.$property(self.$var_name().$to_s())),self.$wrap("(("+tmp+" = Opal.irb_vars",") == null ? nil : "+tmp+")")}),{$$arity:1,$$s:this}):this.$push(this.$var_name().$to_s())}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"LocalAssignNode");self.$handle("lvasgn"),self.$children("var_name","value"),$def(self,"$using_irb?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():$ret_or_1}),0),$def(self,"$compile",(function(){return $truthy(this["$using_irb?"]())?this.$push("Opal.irb_vars"+this.$property(this.$var_name().$to_s())+" = "):(this.$add_local(this.$var_name().$to_s()),this.$push(this.$var_name()+" = ")),this.$push(this.$expr(this.$value())),($truthy(this["$recv?"]())||$truthy(this["$expr?"]()))&&$truthy(this.$value())?this.$wrap("(",")"):nil}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"LocalDeclareNode");self.$handle("lvdeclare"),self.$children("var_name"),$def(self,"$compile",(function(){return this.$add_local(this.$var_name().$to_s()),nil}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"InstanceVariableNode");self.$handle("ivar"),self.$children("name"),$def(self,"$var_name",(function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))}),0),$def(self,"$compile",(function(){var name;return name=this.$property(this.$var_name()),this.$add_ivar(name),this.$push(""+this.$scope().$self()+name)}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"InstanceAssignNode");self.$handle("ivasgn"),self.$children("name","value"),$def(self,"$var_name",(function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))}),0),$def(self,"$compile",(function(){var name;return name=this.$property(this.$var_name()),this.$push(""+this.$scope().$self()+name+" = "),this.$push(this.$expr(this.$value())),($truthy(this["$recv?"]())||$truthy(this["$expr?"]()))&&$truthy(this.$value())?this.$wrap("(",")"):nil}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"GlobalVariableNode");self.$handle("gvar"),self.$children("name"),$def(self,"$var_name",(function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))}),0),$def(self,"$compile",(function(){var name;return this.$helper("gvars"),name=this.$property(this.$var_name()),this.$add_gvar(name),this.$push("$gvars"+name)}),0)}($nesting[0],$$("Base")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"BackRefNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$handle("back_ref"),$def(self,"$compile",(function $$compile(){var $ret_or_1,$yield=$$compile.$$p||nil;return delete $$compile.$$p,this.$helper("gvars"),$eqeqeq("&",$ret_or_1=this.$var_name())?this.$handle_global_match():$eqeqeq("'",$ret_or_1)?this.$handle_post_match():$eqeqeq("`",$ret_or_1)?this.$handle_pre_match():$eqeqeq("+",$ret_or_1)?$send2(this,$find_super(this,"compile",$$compile,!1,!0),"compile",[],$yield):this.$raise($$("NotImplementedError"))}),0),$def(self,"$handle_global_match",(function(){return $send(this,"with_temp",[],(function $$4(tmp){return null==tmp&&(tmp=nil),(null==$$4.$$s?this:$$4.$$s).$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+"['$[]'](0))")}),{$$arity:1,$$s:this})}),0),$def(self,"$handle_pre_match",(function(){return $send(this,"with_temp",[],(function $$5(tmp){return null==tmp&&(tmp=nil),(null==$$5.$$s?this:$$5.$$s).$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+".$pre_match())")}),{$$arity:1,$$s:this})}),0),$def(self,"$handle_post_match",(function(){return $send(this,"with_temp",[],(function $$6(tmp){return null==tmp&&(tmp=nil),(null==$$6.$$s?this:$$6.$$s).$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+".$post_match())")}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("GlobalVariableNode"),$nesting),function($base,$super){var self=$klass($base,$super,"GlobalAssignNode");self.$handle("gvasgn"),self.$children("name","value"),$def(self,"$var_name",(function(){return this.$name().$to_s()["$[]"]($range(1,-1,!1))}),0),$def(self,"$compile",(function(){var name;return this.$helper("gvars"),name=this.$property(this.$var_name()),this.$push("$gvars"+name+" = "),this.$push(this.$expr(this.$value())),($truthy(this["$recv?"]())||$truthy(this["$expr?"]()))&&$truthy(this.$value())?this.$wrap("(",")"):nil}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"NthrefNode");self.$handle("nth_ref"),self.$children("index"),$def(self,"$compile",(function(){return this.$helper("gvars"),$send(this,"with_temp",[],(function $$7(tmp){var self=null==$$7.$$s?this:$$7.$$s;return null==tmp&&(tmp=nil),self.$push("(("+tmp+" = $gvars['~']) === nil ? nil : "+tmp+"['$[]']("+self.$index()+"))")}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ClassVariableNode");self.$handle("cvar"),self.$children("name"),$def(self,"$compile",(function(){var tolerant=nil;return this.$helper("class_variable_get"),tolerant=!1,$truthy(this["$stmt?"]())&&(tolerant=!0),this.$push("$class_variable_get("+this.$class_variable_owner()+", '"+this.$name()+"', "+tolerant.$inspect()+")")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ClassVarAssignNode");return self.$handle("cvasgn"),self.$children("name","value"),$def(self,"$compile",(function(){return this.$helper("class_variable_set"),this.$push("$class_variable_set("+this.$class_variable_owner()+", '"+this.$name()+"', ",this.$expr(this.$value()),")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/constants"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def,$const_set=Opal.const_set;return Opal.add_stubs("require,handle,children,magical_data_const?,push,optimized_access?,helper,name,==,const_scope,s,absolute_const,top_scope,recv,eval?,compiler,relative_access,scope,nil?,eof_content,freeze,include?,base,expr,value,nesting"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ConstNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$handle("const"),self.$children("const_scope","name"),$def(self,"$compile",(function(){return $truthy(this["$magical_data_const?"]())?this.$push("$__END__"):$truthy(this["$optimized_access?"]())?(this.$helper(""+this.$name()),this.$push("$"+this.$name())):$eqeq(this.$const_scope(),this.$s("cbase"))?this.$push(this.$top_scope().$absolute_const()+"('"+this.$name()+"')"):$truthy(this.$const_scope())?this.$push(this.$top_scope().$absolute_const()+"(",this.$recv(this.$const_scope()),", '"+this.$name()+"')"):($truthy(this.$compiler()["$eval?"]()),this.$push(this.$scope().$relative_access()+"('"+this.$name()+"')"))}),0),$def(self,"$magical_data_const?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.$const_scope()["$nil?"]())?this.$name()["$=="]("DATA"):$ret_or_2)?this.$compiler().$eof_content():$ret_or_1}),0),$const_set($nesting[0],"OPTIMIZED_ACCESS_CONSTS",["BasicObject","Object","Module","Class","Opal","Kernel","NilClass"].$freeze()),$def(self,"$optimized_access?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$const_scope()["$=="](this.$s("cbase")))?$$("OPTIMIZED_ACCESS_CONSTS")["$include?"](this.$name()):$ret_or_1}),0)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"CbaseNode");self.$handle("cbase"),$def(self,"$compile",(function(){return this.$push("'::'")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ConstAssignNode");return self.$handle("casgn"),self.$children("base","name","value"),$def(self,"$compile",(function(){return this.$helper("const_set"),$truthy(this.$base())?this.$push("$const_set(",this.$expr(this.$base()),", '"+this.$name()+"', ",this.$expr(this.$value()),")"):this.$push("$const_set("+this.$scope().$nesting()+"[0], '"+this.$name()+"', ",this.$expr(this.$value()),")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["corelib/comparable"]=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$truthy=Opal.truthy,$module=Opal.module,$rb_gt=Opal.rb_gt,$rb_lt=Opal.rb_lt,$eqeqeq=Opal.eqeqeq,$Kernel=Opal.Kernel,$def=Opal.def;return Opal.add_stubs(">,<,===,raise,class,<=>,equal?"),function($base){var self=$module("::","Comparable"),$ret_or_1=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $truthy(cmp)||function(lhs,rhs){var class_name;class_name=$eqeqeq(nil,$ret_or_1=rhs)||$eqeqeq(!0,$ret_or_1)||$eqeqeq(!1,$ret_or_1)||$eqeqeq($$$("Integer"),$ret_or_1)||$eqeqeq($$$("Float"),$ret_or_1)?rhs.$inspect():rhs.$$class,$Kernel.$raise($$$("ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return $def(self,"$==",(function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))}),1),$def(self,"$>",(function(other){return cmp_or_fail(this,other)>0}),1),$def(self,"$>=",(function(other){return cmp_or_fail(this,other)>=0}),1),$def(self,"$<",(function(other){return cmp_or_fail(this,other)<0}),1),$def(self,"$<=",(function(other){return cmp_or_fail(this,other)<=0}),1),$def(self,"$between?",(function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)}),2),$def(self,"$clamp",(function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||$Kernel.$raise($$$("TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&$Kernel.$raise($$$("ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&cmp_or_fail(min,max)>0&&$Kernel.$raise($$$("ArgumentError"),"min argument must be smaller than max argument"),min!==nil){if(0==(c=cmp_or_fail(this,min)))return this;if(c<0)return min}return max!==nil&&(c=cmp_or_fail(this,max))>0?max:this}),-2)}()},Opal.modules.pathname=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def,$defs=Opal.defs,$to_ary=Opal.to_ary,$send=Opal.send,$to_a=Opal.to_a,$neqeq=Opal.neqeq,$rb_plus=Opal.rb_plus,$not=Opal.not,$alias=Opal.alias,$module=Opal.module;return Opal.add_stubs("require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries"),self.$require("corelib/comparable"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Pathname"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.path=nil,self.$include($$("Comparable")),$const_set($nesting[0],"SEPARATOR_PAT",$regexp([$$("Regexp").$quote($$$($$("File"),"SEPARATOR"))])),$def(self,"$initialize",(function(path){return $eqeqeq($$("Pathname"),path)?this.path=path.$path().$to_s():$truthy(path["$respond_to?"]("to_path"))?this.path=path.$to_path():$truthy(path["$is_a?"]($$("String")))?this.path=path:$truthy(path["$nil?"]())?this.$raise($$("TypeError"),"no implicit conversion of nil into String"):this.$raise($$("TypeError"),"no implicit conversion of "+path.$class()+" into String"),$eqeq(this.path,"\0")?this.$raise($$("ArgumentError")):nil}),1),$defs(self,"$pwd",(function(){return this.$new($$("Dir").$pwd())}),0),self.$attr_reader("path"),$def(self,"$==",(function(other){return other.$path()["$=="](this.path)}),1),$def(self,"$absolute?",(function(){return this["$relative?"]()["$!"]()}),0),$def(self,"$relative?",(function(){var $b,path=nil,r=nil;for(path=this.path;$truthy(r=this.$chop_basename(path));)path=null==($b=$to_ary(r))[0]?nil:$b[0];return path["$=="]("")}),0),$def(self,"$chop_basename",(function(path){var base;return base=$$("File").$basename(path),$truthy($$("Regexp").$new("^"+$$$($$("Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](base))?nil:[path["$[]"](0,path.$rindex(base)),base]}),1),$def(self,"$root?",(function(){return this.path["$=="]("/")}),0),$def(self,"$parent",(function(){var new_path=nil;return new_path=this.path.$sub(/\/([^\/]+\/?$)/,""),$eqeq(new_path,"")&&(new_path=$truthy(this["$absolute?"]())?"/":"."),$$("Pathname").$new(new_path)}),0),$def(self,"$sub",(function($a){var args,self=this;return args=Opal.slice.call(arguments),$$("Pathname").$new($send(self.path,"sub",$to_a(args)))}),-1),$def(self,"$cleanpath",(function(){return Opal.normalize(this.path)}),0),$def(self,"$to_path",(function(){return this.path}),0),$def(self,"$hash",(function(){return this.path}),0),$def(self,"$expand_path",(function(){return $$("Pathname").$new($$("File").$expand_path(this.path))}),0),$def(self,"$+",(function(other){return $eqeqeq($$("Pathname"),other)||(other=$$("Pathname").$new(other)),$$("Pathname").$new(this.$plus(this.path,other.$to_s()))}),1),$def(self,"$plus",(function(path1,path2){var $b,prefix2=nil,index_list2=nil,basename_list2=nil,r2=nil,basename2=nil,prefix1=nil,$ret_or_1=nil,r1=nil,basename1=nil,suffix2=nil;for(prefix2=path2,index_list2=[],basename_list2=[];$truthy(r2=this.$chop_basename(prefix2));)prefix2=null==($b=$to_ary(r2))[0]?nil:$b[0],basename2=null==$b[1]?nil:$b[1],index_list2.$unshift(prefix2.$length()),basename_list2.$unshift(basename2);if($neqeq(prefix2,""))return path2;for(prefix1=path1;$truthy(!0);){for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="]("."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();if(!$truthy(r1=this.$chop_basename(prefix1)))break;if(prefix1=null==($b=$to_ary(r1))[0]?nil:$b[0],basename1=null==$b[1]?nil:$b[1],!$eqeq(basename1,".")){if($eqeq(basename1,"..")||$truthy(basename_list2["$empty?"]())||$neqeq(basename_list2.$first(),"..")){prefix1=$rb_plus(prefix1,basename1);break}index_list2.$shift(),basename_list2.$shift()}}if(r1=this.$chop_basename(prefix1),$not(r1)&&$truthy($regexp([$$("SEPARATOR_PAT")])["$=~"]($$("File").$basename(prefix1))))for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="](".."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();return $not(basename_list2["$empty?"]())?(suffix2=path2["$[]"](Opal.Range.$new(index_list2.$first(),-1,!1)),$truthy(r1)?$$("File").$join(prefix1,suffix2):$rb_plus(prefix1,suffix2)):$truthy(r1)?prefix1:$$("File").$dirname(prefix1)}),2),$def(self,"$join",(function($a){try{var $post_args,args,self=this,result=nil;return $post_args=Opal.slice.call(arguments),$truthy((args=$post_args)["$empty?"]())?self:(result=args.$pop(),$eqeqeq($$("Pathname"),result)||(result=$$("Pathname").$new(result)),$truthy(result["$absolute?"]())?result:($send(args,"reverse_each",[],(function(arg){if(null==arg&&(arg=nil),$eqeqeq($$("Pathname"),arg)||(arg=$$("Pathname").$new(arg)),result=$rb_plus(arg,result),!$truthy(result["$absolute?"]()))return nil;Opal.ret(result)}),1),$rb_plus(self,result)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$split",(function(){return[this.$dirname(),this.$basename()]}),0),$def(self,"$dirname",(function(){return $$("Pathname").$new($$("File").$dirname(this.path))}),0),$def(self,"$basename",(function(){return $$("Pathname").$new($$("File").$basename(this.path))}),0),$def(self,"$directory?",(function(){return $$("File")["$directory?"](this.path)}),0),$def(self,"$extname",(function(){return $$("File").$extname(this.path)}),0),$def(self,"$<=>",(function(other){return this.$path()["$<=>"](other.$path())}),1),$const_set($nesting[0],"SAME_PATHS",$truthy($$$($$("File"),"FNM_SYSCASE")["$nonzero?"]())?$send(self,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a.$casecmp(b)["$=="](0)}),2):$send(self,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a["$=="](b)}),2)),$def(self,"$relative_path_from",(function(base_directory){var $b,dest_directory,dest_prefix=nil,dest_names=nil,r=nil,basename=nil,base_prefix=nil,base_names=nil,$ret_or_1=nil,$ret_or_2=nil,relpath_names=nil;for(dest_directory=this.$cleanpath().$to_s(),base_directory=base_directory.$cleanpath().$to_s(),dest_prefix=dest_directory,dest_names=[];$truthy(r=this.$chop_basename(dest_prefix));)dest_prefix=null==($b=$to_ary(r))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$neqeq(basename,".")&&dest_names.$unshift(basename);for(base_prefix=base_directory,base_names=[];$truthy(r=this.$chop_basename(base_prefix));)base_prefix=null==($b=$to_ary(r))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$neqeq(basename,".")&&base_names.$unshift(basename);for($truthy($$("SAME_PATHS")["$[]"](dest_prefix,base_prefix))||this.$raise($$("ArgumentError"),"different prefix: "+dest_prefix.$inspect()+" and "+base_directory.$inspect());$truthy($truthy($ret_or_1=$truthy($ret_or_2=dest_names["$empty?"]()["$!"]())?base_names["$empty?"]()["$!"]():$ret_or_2)?$$("SAME_PATHS")["$[]"](dest_names.$first(),base_names.$first()):$ret_or_1);)dest_names.$shift(),base_names.$shift();return $truthy(base_names["$include?"](".."))&&this.$raise($$("ArgumentError"),"base_directory has ..: "+base_directory.$inspect()),base_names.$fill(".."),relpath_names=$rb_plus(base_names,dest_names),$truthy(relpath_names["$empty?"]())?$$("Pathname").$new("."):$$("Pathname").$new($send($$("File"),"join",$to_a(relpath_names)))}),1),$def(self,"$entries",(function(){return $send($$("Dir").$entries(this.path),"map",[],(function $$11(f){return null==f&&(f=nil),(null==$$11.$$s?this:$$11.$$s).$class().$new(f)}),{$$arity:1,$$s:this})}),0),$alias(self,"===","=="),$alias(self,"eql?","=="),$alias(self,"to_s","to_path"),$alias(self,"to_str","to_path")}($nesting[0],0,$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$Pathname",(function(path){return $$("Pathname").$new(path)}),1)}($nesting[0],$nesting)},Opal.modules["opal/rewriters/break_finder"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$alias=Opal.alias;return Opal.add_stubs("require"),self.$require("opal/rewriter"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Rewriters")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"BreakFinder");return self.$$prototype.found_break=nil,$def(self,"$initialize",(function(){return this.found_break=!1}),0),$def(self,"$found_break?",(function(){return this.found_break}),0),$def(self,"$on_break",(function(node){return this.found_break=!0,node}),1),$def(self,"$stop_lookup",(function(node){return nil}),1),$alias(self,"on_for","stop_lookup"),$alias(self,"on_while","stop_lookup"),$alias(self,"on_while_post","stop_lookup"),$alias(self,"on_until","stop_lookup"),$alias(self,"on_until_post","stop_lookup"),$alias(self,"on_block","stop_lookup")}($nesting[0],$$$($$$($$("Opal"),"Rewriters"),"Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/call"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$defs=Opal.defs,$send2=Opal.send2,$find_super=Opal.find_super,$slice=Opal.slice,$truthy=Opal.truthy,$def=Opal.def,$eqeq=Opal.eqeq,$rb_plus=Opal.rb_plus,$not=Opal.not,$neqeq=Opal.neqeq,$eqeqeq=Opal.eqeqeq,$to_ary=Opal.to_ary,$Opal=Opal.Opal,$range=Opal.range;return Opal.add_stubs("require,handle,attr_reader,freeze,[]=,-,define_method,to_proc,include?,type,s,handle_special,record_method?,<<,method_calls,compiler,to_sym,meth,using_eval?,compile_eval_var,using_irb?,compile_irb_var,default_compile,private,iter,new,process,found_break?,splat?,!,empty?,collect_refinements_temps,scope,auto_await?,push,await_encountered=,invoke_using_refinement?,compile_using_refined_send,invoke_using_send?,compile_using_send,compile_simple_call_chain,compile_break_catcher,helper,compile_receiver,compile_method_name,compile_arguments,compile_block_pass,compile_refinements,recv,receiver_sexp,expr,arglist,children,map,iter_has_break?,unshift,line,method_jsid,any?,==,recvr,mid_to_jsid,to_s,with_temp,intern,irb?,top?,variable_like?,eval?,scope_variables,nil?,updated,async_await,!=,match?,method,arity,[],each,add_special,call,inline_operators?,fragment,resolve,requires,file,dirname,cleanpath,join,Pathname,self,inspect,length,warning,autoloads,required_trees,force_encoding,encoding,+,handle_block_given_call,def?,mid,module_name,count,accepts_using?,using_refinement,first,refinements_temp,arity_check?,defines_lambda,push_nesting?,nesting,new_temp,scope_locals,source_location,size,last,dynamic_require_severity,handle_part,===,is_a?,expand_path,split,error,each_with_object,pop"),self.$require("set"),self.$require("pathname"),self.$require("opal/nodes/base"),self.$require("opal/rewriters/break_finder"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"CallNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.sexp=$proto.compiler=nil,self.$handle("send"),self.$attr_reader("recvr","meth","arglist","iter"),$const_set($nesting[0],"SPECIALS",$hash2([],{})),$const_set($nesting[0],"OPERATORS",$hash2(["+","-","*","/","<","<=",">",">="],{"+":"plus","-":"minus","*":"times","/":"divide","<":"lt","<=":"le",">":"gt",">=":"ge"}).$freeze()),$defs(self,"$add_special",(function $$add_special(name,options){var $writer,handler=$$add_special.$$p||nil;return delete $$add_special.$$p,null==options&&(options=$hash2([],{})),$writer=[name,options],$send($$("SPECIALS"),"[]=",$to_a($writer)),$rb_minus($writer.length,1),$send(this,"define_method",["handle_"+name],handler.$to_proc())}),-2),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$b,$c,$yield=$$initialize.$$p||nil,self=this,args=nil,rest=nil,last_arg=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),$b=[].concat($to_a(self.sexp)),self.recvr=null==$b[0]?nil:$b[0],self.meth=null==$b[1]?nil:$b[1],args=$slice.call($b,2),$c=($c=($b=[].concat($to_a(args))).length-1)<0?0:$c,rest=$slice.call($b,0,$c),last_arg=null==$b[$c]?nil:$b[$c],$truthy(last_arg)&&$truthy(["iter","block_pass"]["$include?"](last_arg.$type()))?(self.iter=last_arg,args=rest):self.iter=nil,self.arglist=$send(self,"s",["arglist"].concat($to_a(args)))}),-1),$def(self,"$compile",(function(){try{return $send(this,"handle_special",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return $truthy(self["$record_method?"]())&&self.$compiler().$method_calls()["$<<"](self.$meth().$to_sym()),$truthy(self["$using_eval?"]())&&Opal.ret(self.$compile_eval_var()),$truthy(self["$using_irb?"]())&&Opal.ret(self.$compile_irb_var()),self.$default_compile()}),{$$arity:0,$$s:this})}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),self.$private(),$def(self,"$iter_has_break?",(function(){var finder=nil;return!!$truthy(this.$iter())&&((finder=$$$($$$($$("Opal"),"Rewriters"),"BreakFinder").$new()).$process(this.$iter()),finder["$found_break?"]())}),0),$def(self,"$invoke_using_send?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$iter())?$ret_or_1:this["$splat?"]()}),0),$def(self,"$invoke_using_refinement?",(function(){return this.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()}),0),$def(self,"$default_compile",(function(){var $writer=nil;return $truthy(this["$auto_await?"]())&&(this.$push("await "),$writer=[!0],$send(this.$scope(),"await_encountered=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(this["$invoke_using_refinement?"]())?this.$compile_using_refined_send():$truthy(this["$invoke_using_send?"]())?this.$compile_using_send():this.$compile_simple_call_chain(),this.$compile_break_catcher()}),0),$def(self,"$compile_using_send",(function(){return this.$helper("send"),this.$push("$send("),this.$compile_receiver(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")}),0),$def(self,"$compile_using_refined_send",(function(){return this.$helper("refined_send"),this.$push("$refined_send("),this.$compile_refinements(),this.$compile_receiver(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")}),0),$def(self,"$compile_receiver",(function(){return this.$push(this.$recv(this.$receiver_sexp()))}),0),$def(self,"$compile_method_name",(function(){return this.$push(", '"+this.$meth()+"'")}),0),$def(self,"$compile_arguments",(function(){return this.$push(", "),$truthy(this["$splat?"]())?this.$push(this.$expr(this.$arglist())):$truthy(this.$arglist().$children()["$empty?"]())?this.$push("[]"):this.$push("[",this.$expr(this.$arglist()),"]")}),0),$def(self,"$compile_block_pass",(function(){return $truthy(this.$iter())?this.$push(", ",this.$expr(this.$iter())):nil}),0),$def(self,"$compile_refinements",(function(){var refinements;return refinements=$send(this.$scope().$collect_refinements_temps(),"map",[],(function $$5(i){return null==i&&(i=nil),(null==$$5.$$s?this:$$5.$$s).$s("js_tmp",i)}),{$$arity:1,$$s:this}),this.$push(this.$expr($send(this,"s",["array"].concat($to_a(refinements)))),", ")}),0),$def(self,"$compile_break_catcher",(function(){return $truthy(this["$iter_has_break?"]())?(this.$unshift("return "),this.$unshift("(function(){var $brk = Opal.new_brk(); try {"),this.$line("} catch (err) { if (err === $brk) { return err.$v } else { throw err } }})()")):nil}),0),$def(self,"$compile_simple_call_chain",(function(){return this.$push(this.$recv(this.$receiver_sexp()),this.$method_jsid(),"(",this.$expr(this.$arglist()),")")}),0),$def(self,"$splat?",(function(){return $send(this.$arglist().$children(),"any?",[],(function(a){return null==a&&(a=nil),a.$type()["$=="]("splat")}),1)}),0),$def(self,"$receiver_sexp",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$recvr())?$ret_or_1:this.$s("self")}),0),$def(self,"$method_jsid",(function(){return this.$mid_to_jsid(this.$meth().$to_s())}),0),$def(self,"$record_method?",(function(){return!0}),0),$def(self,"$compile_irb_var",(function(){return $send(this,"with_temp",[],(function $$9(tmp){var lvar,call,self=null==$$9.$$s?this:$$9.$$s;return null==tmp&&(tmp=nil),lvar=self.$meth(),call=self.$s("send",self.$s("self"),self.$meth().$intern(),self.$s("arglist")),self.$push("(("+tmp+" = Opal.irb_vars."+lvar+") == null ? ",self.$expr(call)," : "+tmp+")")}),{$$arity:1,$$s:this})}),0),$def(self,"$compile_eval_var",(function(){return this.$push(this.$meth().$to_s())}),0),$def(self,"$using_irb?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.compiler["$irb?"]())?this.$scope()["$top?"]():$ret_or_2)?this["$variable_like?"]():$ret_or_1}),0),$def(self,"$using_eval?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.compiler["$eval?"]())?this.$scope()["$top?"]():$ret_or_2)?this.compiler.$scope_variables()["$include?"](this.$meth()):$ret_or_1}),0),$def(self,"$variable_like?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this.$arglist()["$=="](this.$s("arglist")))?this.$recvr()["$nil?"]():$ret_or_2)?this.$iter()["$nil?"]():$ret_or_1}),0),$def(self,"$sexp_with_arglist",(function(){return this.sexp.$updated(nil,[this.$recvr(),this.$meth(),this.$arglist()])}),0),$def(self,"$auto_await?",(function(){var $ret_or_1,$ret_or_2,awaited_set=nil;return awaited_set=this.$compiler().$async_await(),$truthy($ret_or_1=$truthy($ret_or_2=awaited_set)?awaited_set["$!="](!0):$ret_or_2)?awaited_set["$match?"](this.$meth().$to_s()):$ret_or_1}),0),$def(self,"$handle_special",(function $$handle_special(){var compile_default=$$handle_special.$$p||nil,method=nil;return delete $$handle_special.$$p,$truthy($$("SPECIALS")["$include?"](this.$meth()))?(method=this.$method("handle_"+this.$meth()),$eqeq(method.$arity(),1)?method["$[]"](compile_default):method["$[]"]()):Opal.yieldX(compile_default,[])}),0),$send($$("OPERATORS"),"each",[],(function $CallNode$14(operator,name){var self=null==$CallNode$14.$$s?this:$CallNode$14.$$s;return null==operator&&(operator=nil),null==name&&(name=nil),$send(self,"add_special",[operator.$to_sym()],(function $$15(compile_default){var $a,self=null==$$15.$$s?this:$$15.$$s,lhs=nil,rhs=nil;return null==compile_default&&(compile_default=nil),$truthy(self["$invoke_using_refinement?"]())?compile_default.$call():$truthy(self.$compiler()["$inline_operators?"]())?($truthy(self["$record_method?"]())&&self.$compiler().$method_calls()["$<<"](operator.$to_sym()),self.$helper("rb_"+name),lhs=($a=[self.$expr(self.$recvr()),self.$expr(self.$arglist())])[0],rhs=$a[1],self.$push(self.$fragment("$rb_"+name+"(")),self.$push(lhs),self.$push(self.$fragment(", ")),self.$push(rhs),self.$push(self.$fragment(")"))):compile_default.$call()}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:self}),$send(self,"add_special",["require"],(function $CallNode$16(compile_default){var self=null==$CallNode$16.$$s?this:$CallNode$16.$$s,str=nil;return null==compile_default&&(compile_default=nil),str=$$("DependencyResolver").$new(self.$compiler(),self.$arglist().$children()["$[]"](0)).$resolve(),$truthy(str["$nil?"]())||self.$compiler().$requires()["$<<"](str),compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["require_relative"],(function $CallNode$17(){var self=null==$CallNode$17.$$s?this:$CallNode$17.$$s,arg=nil,file=nil,dir=nil;return arg=self.$arglist().$children()["$[]"](0),file=self.$compiler().$file(),$eqeq(arg.$type(),"str")&&(dir=$$("File").$dirname(file),self.$compiler().$requires()["$<<"](self.$Pathname(dir).$join(arg.$children()["$[]"](0)).$cleanpath().$to_s())),self.$push(self.$fragment(self.$scope().$self()+".$require("+file.$inspect()+"+ '/../' + ")),self.$push(self.$process(self.$arglist())),self.$push(self.$fragment(")"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["autoload"],(function $CallNode$18(compile_default){var self=null==$CallNode$18.$$s?this:$CallNode$18.$$s,args=nil,str=nil;return null==compile_default&&(compile_default=nil),args=self.$arglist().$children(),$eqeq(args.$length(),2)&&$eqeq(args["$[]"](0).$type(),"sym")&&(str=$$("DependencyResolver").$new(self.$compiler(),args["$[]"](1),"ignore").$resolve(),$truthy(str["$nil?"]())?self.$compiler().$warning("File for autoload of constant '"+args["$[]"](0).$children()["$[]"](0)+"' could not be bundled!"):(self.$compiler().$requires()["$<<"](str),self.$compiler().$autoloads()["$<<"](str))),compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["require_tree"],(function $CallNode$19(compile_default){var $a,rest,self=null==$CallNode$19.$$s?this:$CallNode$19.$$s,first_arg=nil,relative_path=nil,dir=nil,full_path=nil;return null==compile_default&&(compile_default=nil),first_arg=null==($a=[].concat($to_a(self.$arglist().$children())))[0]?nil:$a[0],rest=$slice.call($a,1),$eqeq(first_arg.$type(),"str")&&(relative_path=first_arg.$children()["$[]"](0),self.$compiler().$required_trees()["$<<"](relative_path),dir=$$("File").$dirname(self.$compiler().$file()),(full_path=self.$Pathname(dir).$join(relative_path).$cleanpath().$to_s()).$force_encoding(relative_path.$encoding()),first_arg=first_arg.$updated(nil,[full_path])),self.arglist=self.$arglist().$updated(nil,$rb_plus([first_arg],rest)),compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["block_given?"],(function $CallNode$20(){var self=null==$CallNode$20.$$s?this:$CallNode$20.$$s;return null==self.sexp&&(self.sexp=nil),self.$push(self.$compiler().$handle_block_given_call(self.sexp))}),{$$arity:0,$$s:self}),$send(self,"add_special",["__callee__"],(function $CallNode$21(){var self=null==$CallNode$21.$$s?this:$CallNode$21.$$s;return $truthy(self.$scope()["$def?"]())?self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())):self.$push(self.$fragment("nil"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["__method__"],(function $CallNode$22(){var self=null==$CallNode$22.$$s?this:$CallNode$22.$$s;return $truthy(self.$scope()["$def?"]())?self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())):self.$push(self.$fragment("nil"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["__dir__"],(function $CallNode$23(){var self=null==$CallNode$23.$$s?this:$CallNode$23.$$s;return self.$push($$("File").$dirname($$$($$("Opal"),"Compiler").$module_name(self.$compiler().$file())).$inspect())}),{$$arity:0,$$s:self}),$send(self,"add_special",["using"],(function $CallNode$24(compile_default){var self=null==$CallNode$24.$$s?this:$CallNode$24.$$s;return null==compile_default&&(compile_default=nil),$truthy(self.$scope()["$accepts_using?"]())&&$eqeq(self.$arglist().$children().$count(),1)?self.$using_refinement(self.$arglist().$children().$first()):compile_default.$call()}),{$$arity:1,$$s:self}),$def(self,"$using_refinement",(function(arg){var $a,prev,curr;return prev=null==($a=[].concat($to_a(this.$scope().$refinements_temp())))[0]?nil:$a[0],curr=null==$a[1]?nil:$a[1],$truthy(prev)?this.$push("("+curr+" = "+prev+".slice(), "+curr+".push(",this.$expr(arg),"), "+this.$scope().$self()+")"):this.$push("("+curr+" = [",this.$expr(arg),"], "+this.$scope().$self()+")")}),1),$send(self,"add_special",["debugger"],(function $CallNode$25(){var self=null==$CallNode$25.$$s?this:$CallNode$25.$$s;return self.$push(self.$fragment("debugger"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["__OPAL_COMPILER_CONFIG__"],(function $CallNode$26(){var self=null==$CallNode$26.$$s?this:$CallNode$26.$$s;return self.$push(self.$fragment("Opal.hash({ arity_check: "+self.$compiler()["$arity_check?"]()+" })"))}),{$$arity:0,$$s:self}),$send(self,"add_special",["lambda"],(function $CallNode$27(compile_default){return null==compile_default&&(compile_default=nil),$send((null==$CallNode$27.$$s?this:$CallNode$27.$$s).$scope(),"defines_lambda",[],(function(){return compile_default.$call()}),0)}),{$$arity:1,$$s:self}),$send(self,"add_special",["nesting"],(function $CallNode$29(compile_default){var push_nesting,self=null==$CallNode$29.$$s?this:$CallNode$29.$$s;return null==compile_default&&(compile_default=nil),push_nesting=self["$push_nesting?"](),$truthy(push_nesting)&&self.$push("(Opal.Module.$$nesting = "+self.$scope().$nesting()+", "),compile_default.$call(),$truthy(push_nesting)?self.$push(")"):nil}),{$$arity:1,$$s:self}),$send(self,"add_special",["constants"],(function $CallNode$30(compile_default){var push_nesting,self=null==$CallNode$30.$$s?this:$CallNode$30.$$s;return null==compile_default&&(compile_default=nil),push_nesting=self["$push_nesting?"](),$truthy(push_nesting)&&self.$push("(Opal.Module.$$nesting = "+self.$scope().$nesting()+", "),compile_default.$call(),$truthy(push_nesting)?self.$push(")"):nil}),{$$arity:1,$$s:self}),$send(self,"add_special",["eval"],(function $CallNode$31(compile_default){var temp,scope_variables,self=null==$CallNode$31.$$s?this:$CallNode$31.$$s;return null==compile_default&&(compile_default=nil),$neqeq(self.$arglist().$children().$length(),1)||$not([self.$s("self"),nil]["$include?"](self.$recvr()))?compile_default.$call():(self.$scope().$nesting(),temp=self.$scope().$new_temp(),scope_variables=$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),self.$push("("+temp+" = ",self.$expr(self.$arglist())),self.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+temp),self.$push(", {scope_variables: ",scope_variables),self.$push(", arity_check: "+self.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),self.$push(self.$scope().$self()+".$eval("+temp+"))"))}),{$$arity:1,$$s:self}),$send(self,"add_special",["local_variables"],(function $CallNode$32(compile_default){var scope_variables,self=null==$CallNode$32.$$s?this:$CallNode$32.$$s;return null==compile_default&&(compile_default=nil),$truthy([self.$s("self"),nil]["$include?"](self.$recvr()))?(scope_variables=$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),self.$push(scope_variables)):compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["binding"],(function $CallNode$33(compile_default){var self=null==$CallNode$33.$$s?this:$CallNode$33.$$s;return null==compile_default&&(compile_default=nil),$truthy(self.$recvr()["$nil?"]())?(self.$scope().$nesting(),self.$push("Opal.Binding.$new("),self.$push(" function($code, $value) {"),self.$push(" if (typeof $value === 'undefined') {"),self.$push(" return eval($code);"),self.$push(" }"),self.$push(" else {"),self.$push(" return eval($code + ' = $value');"),self.$push(" }"),self.$push(" },"),self.$push(" ",$send(self.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),self.$push(" ",self.$scope().$self(),","),self.$push(" ",self.$source_location()),self.$push(")")):compile_default.$call()}),{$$arity:1,$$s:self}),$send(self,"add_special",["__await__"],(function $CallNode$34(compile_default){var self=null==$CallNode$34.$$s?this:$CallNode$34.$$s,$writer=nil;return null==compile_default&&(compile_default=nil),$truthy(self.$compiler().$async_await())?(self.$push(self.$fragment("(await (")),self.$push(self.$process(self.$recvr())),self.$push(self.$fragment("))")),$writer=[!0],$send(self.$scope(),"await_encountered=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):compile_default.$call()}),{$$arity:1,$$s:self}),$def(self,"$push_nesting?",(function(){var $ret_or_1,recv=nil,$ret_or_2=nil,$ret_or_3=nil;return recv=this.$children().$first(),$truthy($ret_or_1=this.$children().$size()["$=="](2))?$truthy($ret_or_2=recv["$nil?"]())?$ret_or_2:$truthy($ret_or_3=recv.$type()["$=="]("const"))?recv.$children().$last()["$=="]("Module"):$ret_or_3:$ret_or_1}),0),function($base,$super,$parent_nesting){var self=$klass($base,null,"DependencyResolver"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.compiler=$proto.sexp=$proto.missing_dynamic_require=nil,$def(self,"$initialize",(function(compiler,sexp,missing_dynamic_require){var $ret_or_1;return null==missing_dynamic_require&&(missing_dynamic_require=nil),this.compiler=compiler,this.sexp=sexp,this.missing_dynamic_require=$truthy($ret_or_1=missing_dynamic_require)?$ret_or_1:this.compiler.$dynamic_require_severity()}),-3),$def(self,"$resolve",(function(){return this.$handle_part(this.sexp)}),0),$def(self,"$handle_part",(function(sexp,missing_dynamic_require){var $a,$b,$ret_or_1=nil,recv=nil,meth=nil,args=nil,parts=nil;if(null==missing_dynamic_require&&(missing_dynamic_require=this.missing_dynamic_require),$truthy(sexp)){if($eqeqeq("str",$ret_or_1=sexp.$type()))return sexp.$children()["$[]"](0);if($eqeqeq("dstr",$ret_or_1))return $send(sexp.$children(),"map",[],(function $$36(i){return null==i&&(i=nil),(null==$$36.$$s?this:$$36.$$s).$handle_part(i)}),{$$arity:1,$$s:this}).$join();if($eqeqeq("begin",$ret_or_1)){if($eqeq(sexp.$children().$length(),1))return this.$handle_part(sexp.$children()["$[]"](0))}else if($eqeqeq("send",$ret_or_1)){if($b=sexp.$children(),recv=null==($a=$to_ary($b))[0]?nil:$a[0],meth=null==$a[1]?nil:$a[1],args=$slice.call($a,2),parts=$send(args,"map",[],(function $$37(s){return null==s&&(s=nil),(null==$$37.$$s?this:$$37.$$s).$handle_part(s,"ignore")}),{$$arity:1,$$s:this}),$truthy(parts["$include?"](nil)))return nil;if($truthy(recv["$is_a?"]($$$($$$($Opal,"AST"),"Node")))&&$eqeq(recv.$type(),"const")&&$eqeq(recv.$children().$last(),"File")){if($eqeq(meth,"expand_path"))return $send(this,"expand_path",$to_a(parts));if($eqeq(meth,"join"))return this.$expand_path(parts.$join("/"));if($eqeq(meth,"dirname"))return this.$expand_path(parts["$[]"](0).$split("/")["$[]"]($range(0,-1,!0)).$join("/"))}else if($eqeq(meth,"__dir__"))return $$("File").$dirname($$$($$("Opal"),"Compiler").$module_name(this.compiler.$file()))}}return $eqeqeq("error",$ret_or_1=missing_dynamic_require)?this.compiler.$error("Cannot handle dynamic require",this.sexp.$line()):$eqeqeq("warning",$ret_or_1)?this.compiler.$warning("Cannot handle dynamic require",this.sexp.$line()):nil}),-2),$def(self,"$expand_path",(function(path,base){return null==base&&(base=""),$send((base+"/"+path).$split("/"),"each_with_object",[[]],(function(part,p){return null==part&&(part=nil),null==p&&(p=nil),$eqeq(part,"")?nil:$eqeq(part,"..")?p.$pop():p["$<<"](part)}),2).$join("/")}),-2)}($nesting[0],0,$nesting)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/csend"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$def=Opal.def;return Opal.add_stubs("require,handle,helper,conditional_send,recv,receiver_sexp,push,compile_method_name,compile_arguments,compile_block_pass"),self.$require("opal/nodes/call"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"CSendNode");return self.$handle("csend"),$def(self,"$default_compile",(function(){return this.$helper("send"),$send(this,"conditional_send",[this.$recv(this.$receiver_sexp())],(function $$1(receiver_temp){var self=null==$$1.$$s?this:$$1.$$s;return null==receiver_temp&&(receiver_temp=nil),self.$push("$send(",receiver_temp),self.$compile_method_name(),self.$compile_arguments(),self.$compile_block_pass(),self.$push(")")}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("CallNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/call_special"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$send=Opal.send;return Opal.add_stubs("require,handle,children,push,recv,recvr,expr,property,value,<<,default_compile,meth,receiver_sexp,method_jsid,compile_arguments,iter,s,lhs,rhs,==,type,first,map,flatten,scan,to_proc,empty?,stmt?,process"),self.$require("opal/nodes/base"),self.$require("opal/nodes/call"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"JsAttrNode");self.$handle("jsattr"),self.$children("recvr","property"),$def(self,"$compile",(function(){return this.$push(this.$recv(this.$recvr()),"[",this.$expr(this.$property()),"]")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"JsAttrAsgnNode");self.$handle("jsattrasgn"),self.$children("recvr","property","value"),$def(self,"$compile",(function(){return this.$push(this.$recv(this.$recvr()),"[",this.$expr(this.$property()),"] = ",this.$expr(this.$value()))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"JsCallNode"),$proto=self.$$prototype;$proto.iter=$proto.arglist=nil,self.$handle("jscall"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),$truthy(self.iter)&&(self.arglist=self.arglist["$<<"](self.iter)),self.iter=nil}),-1),$def(self,"$compile",(function(){return this.$default_compile()}),0),$def(self,"$method_jsid",(function(){return"."+this.$meth()}),0),$def(self,"$compile_using_send",(function(){return this.$push(this.$recv(this.$receiver_sexp()),this.$method_jsid(),".apply(null"),this.$compile_arguments(),$truthy(this.$iter())&&this.$push(".concat(",this.$expr(this.$iter()),")"),this.$push(")")}),0)}($nesting[0],$$("CallNode")),function($base,$super){var self=$klass($base,$super,"Match3Node");return self.$$prototype.level=nil,self.$handle("match_with_lvasgn"),self.$children("lhs","rhs"),$def(self,"$compile",(function(){var sexp=nil,re=nil,names=nil,names_def=nil;return sexp=this.$s("send",this.$lhs(),"=~",this.$rhs()),$eqeq(this.$lhs().$type(),"regexp")&&$eqeq(this.$lhs().$children().$first().$type(),"str")&&(re=this.$lhs().$children().$first().$children().$first(),names=$send(re.$scan(/\(\?<([^>]*)>/).$flatten(),"map",[],"to_sym".$to_proc()),$truthy(names["$empty?"]())||(names_def=this.$s("lvasgn","$m3names",this.$s("if",this.$s("gvar","$~"),this.$s("send",this.$s("gvar","$~"),"named_captures"),this.$s("hash"))),names=$send(names,"map",[],(function $$1(name){var self=null==$$1.$$s?this:$$1.$$s;return null==name&&(name=nil),self.$s("lvasgn",name,self.$s("send",self.$s("lvar","$m3names"),"[]",self.$s("sym",name)))}),{$$arity:1,$$s:this}),sexp=$truthy(this["$stmt?"]())?$send(this,"s",["begin",sexp,names_def].concat($to_a(names))):$send(this,"s",["begin",this.$s("lvasgn","$m3tmp",sexp),names_def].concat($to_a(names)).concat([this.$s("lvar","$m3tmp")])))),this.$push(this.$process(sexp,this.level))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/scope"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$def=Opal.def,$send=Opal.send,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$not=Opal.not,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$hash2=Opal.hash2;return Opal.add_stubs("require,attr_accessor,attr_reader,indent,scope,compiler,scope=,-,==,iter?,!,class?,dup,push,map,ivars,gvars,empty?,<<,parser_indent,join,+,fragment,def_in_class?,add_proto_ivar,include?,has_local?,|,scope_locals,reject,start_with?,to_s,has_temp?,pop,next_temp,loop,succ,uses_block!,identify!,valid_name?,mid,compact,parent,name,scope_name,unique_temp,lambda?,def?,type,nil?,rescue_else_sexp,last,class,collect_refinements_temps,add_scope_local,new_refinements_temp,identity,block_name=,add_temp,block_name,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ScopeNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.type=$proto.is_lambda=$proto.lambda_definition=$proto.defs=$proto.parent=$proto.temps=$proto.locals=$proto.proto_ivars=$proto.compiler=$proto.ivars=$proto.gvars=$proto.args=$proto.queue=$proto.while_stack=$proto.identity=$proto.uses_block=$proto.rescues=$proto.in_resbody=$proto.in_ensure=$proto.next_retry_id=$proto.refinements_temp=$proto.block_prepared=nil,self.$attr_accessor("parent"),self.$attr_accessor("name"),self.$attr_accessor("block_name"),self.$attr_reader("scope_name"),self.$attr_reader("locals"),self.$attr_reader("ivars"),self.$attr_reader("gvars"),self.$attr_accessor("mid"),self.$attr_accessor("defs"),self.$attr_reader("methods"),self.$attr_accessor("catch_return","has_break","has_retry"),self.$attr_accessor("rescue_else_sexp"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),self.locals=[],self.temps=[],self.args=[],self.ivars=[],self.gvars=[],self.parent=nil,self.queue=[],self.unique="a",self.while_stack=[],self.identity=nil,self.defs=nil,self.methods=[],self.uses_block=!1,self.in_ensure=!1,self.proto_ivars=[]}),-1),$def(self,"$in_scope",(function $$in_scope(){var $yield=$$in_scope.$$p||nil;return delete $$in_scope.$$p,$send(this,"indent",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s,$writer=nil;return null==self.parent&&(self.parent=nil),self.parent=self.$compiler().$scope(),$writer=[self],$send(self.$compiler(),"scope=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],Opal.yield1($yield,self),$writer=[self.parent],$send(self.$compiler(),"scope=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:0,$$s:this})}),0),$def(self,"$class_scope?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.type["$=="]("class"))?$ret_or_1:this.type["$=="]("module")}),0),$def(self,"$class?",(function(){return this.type["$=="]("class")}),0),$def(self,"$module?",(function(){return this.type["$=="]("module")}),0),$def(self,"$sclass?",(function(){return this.type["$=="]("sclass")}),0),$def(self,"$top?",(function(){return this.type["$=="]("top")}),0),$def(self,"$iter?",(function(){return this.type["$=="]("iter")}),0),$def(self,"$def?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.type["$=="]("def"))?$ret_or_1:this.type["$=="]("defs")}),0),$def(self,"$lambda?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$iter?"]())?this.is_lambda:$ret_or_1}),0),$def(self,"$is_lambda!",(function(){return this.is_lambda=!0}),0),$def(self,"$defines_lambda",(function $$defines_lambda(){var $yield=$$defines_lambda.$$p||nil;return delete $$defines_lambda.$$p,this.lambda_definition=!0,Opal.yieldX($yield,[]),this.lambda_definition=!1}),0),$def(self,"$lambda_definition?",(function(){return this.lambda_definition}),0),$def(self,"$def_in_class?",(function(){var $ret_or_1,$ret_or_2,$ret_or_3;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=this.defs["$!"]())?this.type["$=="]("def"):$ret_or_3)?this.parent:$ret_or_2)?this.parent["$class?"]():$ret_or_1}),0),$def(self,"$to_vars",(function(){var indent,vars=nil,iv=nil,gv=nil,str=nil;return vars=this.temps.$dup(),$send(vars,"push",$to_a($send(this.locals,"map",[],(function(l){return null==l&&(l=nil),l+" = nil"}),1))),iv=$send(this.$ivars(),"map",[],(function(ivar){return null==ivar&&(ivar=nil),"if (self"+ivar+" == null) self"+ivar+" = nil;\n"}),1),gv=$send(this.$gvars(),"map",[],(function(gvar){return null==gvar&&(gvar=nil),"if ($gvars"+gvar+" == null) $gvars"+gvar+" = nil;\n"}),1),$truthy(this["$class?"]())&&$not(this.proto_ivars["$empty?"]())&&vars["$<<"]("$proto = self.$$prototype"),indent=this.compiler.$parser_indent(),str=$truthy(vars["$empty?"]())?"":"var "+vars.$join(", ")+";\n",$truthy(this.$ivars()["$empty?"]())||(str=$rb_plus(str,""+indent+iv.$join(indent))),$truthy(this.$gvars()["$empty?"]())||(str=$rb_plus(str,""+indent+gv.$join(indent))),$truthy(this["$class?"]())&&$not(this.proto_ivars["$empty?"]())&&(str=str+"\n"+indent+$send(this.proto_ivars,"map",[],(function(i){return null==i&&(i=nil),"$proto"+i}),1).$join(" = ")+" = nil;"),this.$fragment(str)}),0),$def(self,"$add_scope_ivar",(function(ivar){return $truthy(this["$def_in_class?"]())?this.parent.$add_proto_ivar(ivar):$truthy(this.ivars["$include?"](ivar))?nil:this.ivars["$<<"](ivar)}),1),$def(self,"$add_scope_gvar",(function(gvar){return $truthy(this.gvars["$include?"](gvar))?nil:this.gvars["$<<"](gvar)}),1),$def(self,"$add_proto_ivar",(function(ivar){return $truthy(this.proto_ivars["$include?"](ivar))?nil:this.proto_ivars["$<<"](ivar)}),1),$def(self,"$add_arg",(function(arg){return $truthy(this.args["$include?"](arg))||this.args["$<<"](arg),arg}),1),$def(self,"$add_scope_local",(function(local){return $truthy(this["$has_local?"](local))?nil:this.locals["$<<"](local)}),1),$def(self,"$has_local?",(function(local){return!!($truthy(this.locals["$include?"](local))||$truthy(this.args["$include?"](local))||$truthy(this.temps["$include?"](local)))||!(!$truthy(this.parent)||!$eqeq(this.type,"iter"))&&this.parent["$has_local?"](local)}),1),$def(self,"$scope_locals",(function(){var locals;return locals=this.locals["$|"](this.args)["$|"]($truthy(this.parent)&&$eqeq(this.type,"iter")?this.parent.$scope_locals():[]),$send(locals,"reject",[],(function(i){return null==i&&(i=nil),i.$to_s()["$start_with?"]("$")}),1)}),0),$def(self,"$add_scope_temp",(function(tmp){return $truthy(this["$has_temp?"](tmp))?nil:this.temps.$push(tmp)}),1),$def(self,"$has_temp?",(function(tmp){return this.temps["$include?"](tmp)}),1),$def(self,"$new_temp",(function(){var tmp;return $truthy(this.queue["$empty?"]())?(tmp=this.$next_temp(),this.temps["$<<"](tmp),tmp):this.queue.$pop()}),0),$def(self,"$next_temp",(function(){var self=this,tmp=nil;return tmp=nil,function(){var $brk=Opal.new_brk();try{$send(self,"loop",[],(function $$20(){var self=null==$$20.$$s?this:$$20.$$s;if(null==self.unique&&(self.unique=nil),tmp="$"+self.unique,self.unique=self.unique.$succ(),$truthy(self["$has_local?"](tmp)))return nil;Opal.brk(nil,$brk)}),{$$arity:0,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),tmp}),0),$def(self,"$queue_temp",(function(name){return this.queue["$<<"](name)}),1),$def(self,"$push_while",(function(){var info;return info=$hash2([],{}),this.while_stack.$push(info),info}),0),$def(self,"$pop_while",(function(){return this.while_stack.$pop()}),0),$def(self,"$in_while?",(function(){return this.while_stack["$empty?"]()["$!"]()}),0),$def(self,"$uses_block!",(function(){return $eqeq(this.type,"iter")&&$truthy(this.parent)?this.parent["$uses_block!"]():(this.uses_block=!0,this["$identify!"]())}),0),$def(self,"$identify!",(function(name){var $ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return null==name&&(name=nil),$truthy(this.identity)||($truthy(this["$valid_name?"](this.$mid()))?this.identity="$$"+this.$mid():(name=$truthy($ret_or_1=name)?$ret_or_1:[$truthy($ret_or_2=this.$parent())?$truthy($ret_or_3=this.$parent().$name())?$ret_or_3:this.$parent().$scope_name():$ret_or_2,this.$mid()].$compact().$join("_"),this.identity=this.compiler.$unique_temp(name))),this.identity}),-1),self.$attr_reader("identity"),$def(self,"$find_parent_def",(function(){var scope=nil;for(scope=this;$truthy(scope=scope.$parent());)if($truthy(scope["$def?"]())||$truthy(scope["$lambda?"]()))return scope;return nil}),0),$def(self,"$super_chain",(function(){var $a,chain=nil,scope=nil,defn=nil,mid=nil;for(chain=($a=[[],this,"null","null"])[0],scope=$a[1],defn=$a[2],mid=$a[3];$truthy(scope);){if(!$eqeq(scope.$type(),"iter")){if($truthy(["def","defs"]["$include?"](scope.$type()))){defn=scope["$identify!"](),mid="'"+scope.$mid()+"'";break}break}chain["$<<"](scope["$identify!"]()),$truthy(scope.$parent())&&(scope=scope.$parent())}return[chain,defn,mid]}),0),$def(self,"$uses_block?",(function(){return this.uses_block}),0),$def(self,"$has_rescue_else?",(function(){return this.$rescue_else_sexp()["$nil?"]()["$!"]()}),0),$def(self,"$in_rescue",(function $$in_rescue(node){var $ret_or_1,result,$yield=$$in_rescue.$$p||nil;return delete $$in_rescue.$$p,this.rescues=$truthy($ret_or_1=this.rescues)?$ret_or_1:[],this.rescues.$push(node),result=Opal.yieldX($yield,[]),this.rescues.$pop(),result}),1),$def(self,"$current_rescue",(function(){return this.rescues.$last()}),0),$def(self,"$in_resbody",(function $$in_resbody(){var result,$yield=$$in_resbody.$$p||nil;return delete $$in_resbody.$$p,$yield===nil?nil:(this.in_resbody=!0,result=Opal.yieldX($yield,[]),this.in_resbody=!1,result)}),0),$def(self,"$in_resbody?",(function(){return this.in_resbody}),0),$def(self,"$in_ensure",(function $$in_ensure(){var result,$yield=$$in_ensure.$$p||nil;return delete $$in_ensure.$$p,$yield===nil?nil:(this.in_ensure=!0,result=Opal.yieldX($yield,[]),this.in_ensure=!1,result)}),0),$def(self,"$in_ensure?",(function(){return this.in_ensure}),0),$def(self,"$gen_retry_id",(function(){var $ret_or_1;return this.next_retry_id=$truthy($ret_or_1=this.next_retry_id)?$ret_or_1:"retry_0",this.next_retry_id=this.next_retry_id.$succ()}),0),$def(self,"$accepts_using?",(function(){return[$$("TopNode"),$$("ModuleNode"),$$("ClassNode"),$$("IterNode")]["$include?"](this.$class())}),0),$def(self,"$collect_refinements_temps",(function(temps){return null==temps&&(temps=[]),$truthy(this.refinements_temp)&&temps["$<<"](this.refinements_temp),$truthy(this.$parent())?this.$parent().$collect_refinements_temps(temps):temps}),-1),$def(self,"$new_refinements_temp",(function(){var var$;return var$=this.$compiler().$unique_temp("$refn"),this.$add_scope_local(var$),var$}),0),$def(self,"$refinements_temp",(function(){var $a,prev,curr;return prev=($a=[this.refinements_temp,this.$new_refinements_temp()])[0],curr=$a[1],this.refinements_temp=curr,[prev,curr]}),0),$def(self,"$self",(function(){return this.define_self=!0,"self"}),0),$def(self,"$nesting",(function(){return this.define_nesting=!0,"$nesting"}),0),$def(self,"$relative_access",(function(){return this.define_relative_access=this.define_nesting=!0,"$$"}),0),$def(self,"$prepare_block",(function(block_name){var scope_name,$writer=nil;return null==block_name&&(block_name=nil),scope_name=this.$scope().$identity(),$truthy(block_name)&&($send(this,"block_name=",$to_a($writer=[block_name])),$writer[$rb_minus($writer.length,1)]),this.$add_temp(this.$block_name()+" = "+scope_name+".$$p || nil"),$truthy(this.block_prepared)?nil:(this.$line("delete "+scope_name+".$$p;"),this.block_prepared=!0)}),-1),self.$attr_accessor("await_encountered")}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/module"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_ary=Opal.to_ary,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$def=Opal.def;return Opal.add_stubs("require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,line,in_scope,name=,scope,-,compile_body,await_encountered,await_encountered=,parent,+,nesting,private,cid,expr,stmt,returns,compiler,empty_line,add_temp,to_vars"),self.$require("opal/nodes/scope"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ModuleNode"),$proto=self.$$prototype;return $proto.define_nesting=$proto.define_relative_access=nil,self.$handle("module"),self.$children("cid","body"),$def(self,"$compile",(function(){var $a,$b,name,base,await_begin=nil,await_end=nil,async=nil,$writer=nil;return $b=this.$name_and_base(),$a=$to_ary($b),name=null==$a[0]?nil:$a[0],base=null==$a[1]?nil:$a[1],this.$helper("module"),$truthy(this.$body()["$nil?"]())?$truthy(this["$stmt?"]())?this.$unshift("$module(",base,", '"+name+"')"):this.$unshift("($module(",base,", '"+name+"'), nil)"):(this.$line(" var self = $module($base, '"+name+"');"),$send(this,"in_scope",[],(function $$1(){var $writer,self=null==$$1.$$s?this:$$1.$$s;return $writer=[name],$send(self.$scope(),"name=",$to_a($writer)),$rb_minus($writer.length,1),self.$compile_body()}),{$$arity:0,$$s:this}),$truthy(this.$await_encountered())?(await_begin="(await ",await_end=")",async="async ",$writer=[!0],$send(this.$parent(),"await_encountered=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):(await_begin=($a=["","",""])[0],await_end=$a[1],async=$a[2]),this.$unshift(await_begin+"("+async+"function($base"+($truthy(this.define_nesting)?", $parent_nesting":nil)+") {"),this.$line("})(",base,($truthy(this.define_nesting)?$rb_plus(", ",this.$scope().$nesting()):nil)+")"+await_end))}),0),self.$private(),$def(self,"$name_and_base",(function(){var $a,$b,name,base=nil;return $b=this.$cid().$children(),base=null==($a=$to_ary($b))[0]?nil:$a[0],name=null==$a[1]?nil:$a[1],$truthy(base["$nil?"]())?[name,this.$scope().$nesting()+"[0]"]:[name,this.$expr(base)]}),0),$def(self,"$compile_body",(function(){var body_code;return body_code=this.$stmt(this.$compiler().$returns(this.$body())),this.$empty_line(),$truthy(this.define_nesting)&&this.$add_temp("$nesting = [self].concat($parent_nesting)"),$truthy(this.define_relative_access)&&this.$add_temp("$$ = Opal.$r($nesting)"),this.$line(this.$scope().$to_vars()),this.$line(body_code)}),0)}($nesting[0],$$("ScopeNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$to_ary=Opal.to_ary,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$def=Opal.def;return Opal.add_stubs("require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,super_code,line,in_scope,name=,scope,-,compile_body,await_encountered,await_encountered=,parent,+,nesting,sup,expr"),self.$require("opal/nodes/module"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ClassNode");return self.$$prototype.define_nesting=nil,self.$handle("class"),self.$children("cid","sup","body"),$def(self,"$compile",(function(){var $a,$b,name,base,await_begin=nil,await_end=nil,async=nil,$writer=nil;return $b=this.$name_and_base(),$a=$to_ary($b),name=null==$a[0]?nil:$a[0],base=null==$a[1]?nil:$a[1],this.$helper("klass"),$truthy(this.$body()["$nil?"]())?$truthy(this["$stmt?"]())?this.$unshift("$klass(",base,", ",this.$super_code(),", '"+name+"')"):this.$unshift("($klass(",base,", ",this.$super_code(),", '"+name+"'), nil)"):(this.$line(" var self = $klass($base, $super, '"+name+"');"),$send(this,"in_scope",[],(function $$1(){var $writer,self=null==$$1.$$s?this:$$1.$$s;return $writer=[name],$send(self.$scope(),"name=",$to_a($writer)),$rb_minus($writer.length,1),self.$compile_body()}),{$$arity:0,$$s:this}),$truthy(this.$await_encountered())?(await_begin="(await ",await_end=")",async="async ",$writer=[!0],$send(this.$parent(),"await_encountered=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):(await_begin=($a=["","",""])[0],await_end=$a[1],async=$a[2]),this.$unshift(await_begin+"("+async+"function($base, $super"+($truthy(this.define_nesting)?", $parent_nesting":nil)+") {"),this.$line("})(",base,", ",this.$super_code(),($truthy(this.define_nesting)?$rb_plus(", ",this.$scope().$nesting()):nil)+")"+await_end))}),0),$def(self,"$super_code",(function(){return $truthy(this.$sup())?this.$expr(this.$sup()):"null"}),0)}($nesting[0],$$("ModuleNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/singleton_class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting"),self.$require("opal/nodes/scope"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"SingletonClassNode");return self.$handle("sclass"),self.$children("object","body"),$def(self,"$compile",(function(){return this.$push("(function(self, $parent_nesting) {"),$send(this,"in_scope",[],(function $$1(){var body_stmt,self=null==$$1.$$s?this:$$1.$$s;return null==self.define_nesting&&(self.define_nesting=nil),null==self.define_relative_access&&(self.define_relative_access=nil),body_stmt=self.$stmt(self.$compiler().$returns(self.$body())),$truthy(self.define_nesting)&&self.$add_temp("$nesting = [self].concat($parent_nesting)"),$truthy(self.define_relative_access)&&self.$add_temp("$$ = Opal.$r($nesting)"),self.$line(self.$scope().$to_vars()),self.$line(body_stmt)}),{$$arity:0,$$s:this}),this.$line("})(Opal.get_singleton_class(",this.$recv(this.$object()),"), "+this.$scope().$nesting()+")")}),0)}($nesting[0],$$("ScopeNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/arg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,add_arg,scope,name,push,to_s"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ArgNode");return self.$handle("arg"),self.$children("name"),$def(self,"$compile",(function(){return this.$scope().$add_arg(this.$name()),this.$push(this.$name().$to_s())}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/arity_check"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$def=Opal.def,$send=Opal.send,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$not=Opal.not,$rb_lt=Opal.rb_lt,$rb_plus=Opal.rb_plus,$rb_gt=Opal.rb_gt;return Opal.add_stubs("require,handle,children,new,args_node,args,optargs,restarg,postargs,kwargs,kwoptargs,kwrestarg,kwnilarg,arity,arity=,scope,-,arity_check?,compiler,empty?,arity_checks,helper,inspect,to_s,mid,line,push,join,compact,size,all_args,!,-@,<,+,>,<<,has_only_optional_kwargs?,any?,negative_arity,positive_arity,select,include?,type,has_required_kwargs?,all?,==,def?,class_scope?,top?,parent,class?,name,module?,identity"),self.$require("opal/nodes/base"),self.$require("opal/rewriters/arguments"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ArityCheckNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.kwargs=$proto.kwoptargs=$proto.kwrestarg=$proto.all_args=$proto.args=$proto.optargs=$proto.restarg=$proto.postargs=$proto.arity_checks=nil,self.$handle("arity_check"),self.$children("args_node"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this,arguments$=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),arguments$=$$$($$("Rewriters"),"Arguments").$new(self.$args_node().$children()),self.args=arguments$.$args(),self.optargs=arguments$.$optargs(),self.restarg=arguments$.$restarg(),self.postargs=arguments$.$postargs(),self.kwargs=arguments$.$kwargs(),self.kwoptargs=arguments$.$kwoptargs(),self.kwrestarg=arguments$.$kwrestarg(),self.kwnilarg=arguments$.$kwnilarg()}),-1),$def(self,"$compile",(function(){var $writer,meth=nil;return $writer=[this.$arity()],$send(this.$scope(),"arity=",$to_a($writer)),$rb_minus($writer.length,1),$truthy(this.$compiler()["$arity_check?"]())?$truthy(this.$arity_checks()["$empty?"]())?nil:(this.$helper("ac"),meth=this.$scope().$mid().$to_s().$inspect(),this.$line("var $arity = arguments.length;"),this.$push(" if ("+this.$arity_checks().$join(" || ")+") { $ac($arity, "+this.$arity()+", this, "+meth+"); }")):nil}),0),$def(self,"$kwargs",(function(){return[].concat($to_a(this.kwargs)).concat($to_a(this.kwoptargs)).concat([this.kwrestarg]).$compact()}),0),$def(self,"$all_args",(function(){var $ret_or_1;return this.all_args=$truthy($ret_or_1=this.all_args)?$ret_or_1:[].concat($to_a(this.args)).concat($to_a(this.optargs)).concat([this.restarg]).concat($to_a(this.postargs)).concat($to_a(this.$kwargs())).$compact()}),0),$def(self,"$arity_checks",(function(){var $a,arity=nil,min_arity=nil,max_arity=nil;return $truthy(null!=($a=this.arity_checks)&&$a!==nil?"instance-variable":nil)||(arity=this.$all_args().$size(),arity=$rb_minus(arity,this.optargs.$size()),$truthy(this.restarg)&&(arity=$rb_minus(arity,1)),arity=$rb_minus(arity,this.$kwargs().$size()),($not(this.optargs["$empty?"]())||$not(this.$kwargs()["$empty?"]())||$truthy(this.restarg))&&(arity=$rb_minus(arity["$-@"](),1)),this.arity_checks=[],$truthy($rb_lt(arity,0))?(min_arity=$rb_plus(arity,1)["$-@"](),max_arity=this.$all_args().$size(),$truthy($rb_gt(min_arity,0))&&this.arity_checks["$<<"]("$arity < "+min_arity),$truthy(this.restarg)||this.arity_checks["$<<"]("$arity > "+max_arity)):this.arity_checks["$<<"]("$arity !== "+arity)),this.arity_checks}),0),$def(self,"$arity",(function(){return $truthy(this.restarg)||$truthy(this.optargs["$any?"]())||$truthy(this["$has_only_optional_kwargs?"]())?this.$negative_arity():this.$positive_arity()}),0),$def(self,"$negative_arity",(function(){var result=nil;return result=$send(this.$all_args(),"select",[],(function(arg){return null==arg&&(arg=nil),["arg","mlhs"]["$include?"](arg.$type())}),1).$size(),$truthy(this["$has_required_kwargs?"]())&&(result=$rb_plus(result,1)),result=$rb_minus(result["$-@"](),1)}),0),$def(self,"$positive_arity",(function(){var result=nil;return result=this.$all_args().$size(),result=$rb_minus(result,this.$kwargs().$size()),$truthy(this.$kwargs()["$any?"]())&&(result=$rb_plus(result,1)),result}),0),$def(self,"$has_only_optional_kwargs?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$kwargs()["$any?"]())?$send(this.$kwargs(),"all?",[],(function(arg){return null==arg&&(arg=nil),["kwoptarg","kwrestarg"]["$include?"](arg.$type())}),1):$ret_or_1}),0),$def(self,"$has_required_kwargs?",(function(){return $send(this.$kwargs(),"any?",[],(function(arg){return null==arg&&(arg=nil),arg.$type()["$=="]("kwarg")}),1)}),0)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"IterArityCheckNode");return self.$handle("iter_arity_check"),$def(self,"$compile",(function(){var $writer,parent_scope=nil,$ret_or_1=nil,$ret_or_2=nil,context=nil,identity=nil;if($writer=[this.$arity()],$send(this.$scope(),"arity=",$to_a($writer)),$rb_minus($writer.length,1),!$truthy(this.$compiler()["$arity_check?"]()))return nil;if($truthy(this.$arity_checks()["$empty?"]()))return nil;for(parent_scope=this.$scope();!$truthy($truthy($ret_or_1=$truthy($ret_or_2=parent_scope["$def?"]())?$ret_or_2:parent_scope["$class_scope?"]())?$ret_or_1:parent_scope["$top?"]());)parent_scope=parent_scope.$parent();return context=$truthy(parent_scope["$top?"]())?"'
    '":$truthy(parent_scope["$def?"]())?"'"+parent_scope.$mid()+"'":$truthy(parent_scope["$class?"]())?"''":$truthy(parent_scope["$module?"]())?"''":nil,identity=this.$scope().$identity(),this.$line("if ("+identity+".$$is_lambda || "+identity+".$$define_meth) {"),this.$line(" var $arity = arguments.length;"),this.$line(" if ("+this.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+this.$arity()+", "+context+"); }"),this.$line("}")}),0)}($nesting[0],$$("ArityCheckNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,helper,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"EnsureKwargsAreKwargs");return self.$handle("ensure_kwargs_are_kwargs"),$def(self,"$compile",(function(){return this.$helper("hash2"),this.$line("if ($kwargs == null) {"),this.$line(" $kwargs = $hash2([], {});"),this.$line("} else if (!$kwargs.$$is_hash) {"),this.$line(" throw Opal.ArgumentError.$new('expected kwargs');"),this.$line("}")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,uses_block!,scope,add_arg,name,prepare_block"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractBlockarg");return self.$handle("extract_blockarg"),self.$children("name"),$def(self,"$compile",(function(){return this.$scope()["$uses_block!"](),this.$scope().$add_arg(this.$name()),this.$scope().$prepare_block(this.$name())}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractKwarg");return self.$$prototype.sexp=nil,self.$handle("extract_kwarg"),self.$children("lvar_name"),$def(self,"$compile",(function(){var key_name=nil;return key_name=this.sexp.$meta()["$[]"]("arg_name"),this.$scope().$used_kwargs()["$<<"](key_name),this.$add_temp(this.$lvar_name()),this.$line("if (!Opal.hasOwnProperty.call($kwargs.$$smap, '"+key_name+"')) {"),this.$line(" throw Opal.ArgumentError.$new('missing keyword: "+key_name+"');"),this.$line("}"),this.$line(this.$lvar_name()+" = $kwargs.$$smap["+key_name.$to_s().$inspect()+"];")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,add_temp,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractKwargs");return self.$handle("extract_kwargs"),$def(self,"$compile",(function(){return this.$add_temp("$kwargs"),this.$line("$kwargs = Opal.extract_kwargs($post_args)")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,expr"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractKwoptarg");return self.$$prototype.sexp=nil,self.$handle("extract_kwoptarg"),self.$children("lvar_name","default_value"),$def(self,"$compile",(function(){var key_name=nil;return key_name=this.sexp.$meta()["$[]"]("arg_name"),this.$scope().$used_kwargs()["$<<"](key_name),this.$add_temp(this.$lvar_name()),this.$line(this.$lvar_name()+" = $kwargs.$$smap["+key_name.$to_s().$inspect()+"];"),$eqeq(this.$default_value().$children()["$[]"](1),"undefined")?nil:this.$line("if ("+this.$lvar_name()+" == null) "+this.$lvar_name()+" = ",this.$expr(this.$default_value()))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("require,handle,children,name,add_temp,line,used_kwargs,map,scope,join"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractKwrestarg");return self.$handle("extract_kwrestarg"),self.$children("name"),$def(self,"$compile",(function(){var name,$ret_or_1;return name=$truthy($ret_or_1=this.$name())?$ret_or_1:"$kw_rest_arg",this.$add_temp(name),this.$line(name+" = Opal.kwrestargs($kwargs, "+this.$used_kwargs()+");")}),0),$def(self,"$used_kwargs",(function(){return"{"+$send(this.$scope().$used_kwargs(),"map",[],(function(arg_name){return null==arg_name&&(arg_name=nil),"'"+arg_name+"': true"}),1).$join(",")+"}"}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_optarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,==,[],default_value,line,name,expr"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractOptargNode");return self.$handle("extract_optarg"),self.$children("name","default_value"),$def(self,"$compile",(function(){return $eqeq(this.$default_value().$children()["$[]"](1),"undefined")?nil:this.$line("if ("+this.$name()+" == null) "+this.$name()+" = ",this.$expr(this.$default_value()),";")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,add_temp,name,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractPostArg");return self.$handle("extract_post_arg"),self.$children("name"),$def(self,"$compile",(function(){return this.$add_temp(this.$name()),this.$line(this.$name()+" = $post_args.shift();"),this.$line("if ("+this.$name()+" == null) "+this.$name()+" = nil;")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,expr"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractPostOptarg");return self.$handle("extract_post_optarg"),self.$children("name","default_value","args_to_keep"),$def(self,"$compile",(function(){return this.$add_temp(this.$name()),this.$line("if ($post_args.length > "+this.$args_to_keep()+") "+this.$name()+" = $post_args.shift();"),$eqeq(this.$default_value().$children()["$[]"](1),"undefined")?nil:this.$line("if ("+this.$name()+" == null) "+this.$name()+" = ",this.$expr(this.$default_value()),";")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/extract_restarg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,name,add_temp,==,args_to_keep,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ExtractRestarg");return self.$handle("extract_restarg"),self.$children("name","args_to_keep"),$def(self,"$compile",(function(){var name,$ret_or_1;return name=$truthy($ret_or_1=this.$name())?$ret_or_1:"$rest_arg",this.$add_temp(name),$eqeq(this.$args_to_keep(),0)?this.$line(name+" = $post_args;"):this.$line(name+" = $post_args.splice(0, $post_args.length - "+this.$args_to_keep()+");")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/fake_arg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,next_temp,scope,add_arg,push"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"FakeArgNode");return self.$handle("fake_arg"),$def(self,"$compile",(function(){var name;return name=this.$scope().$next_temp(),this.$scope().$add_arg(name),this.$push(name)}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,line,name"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"InitializeIterarg");return self.$handle("initialize_iter_arg"),self.$children("name"),$def(self,"$compile",(function(){return this.$line("if ("+this.$name()+" == null) "+this.$name()+" = nil;")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,<<,locals,scope,name,add_arg,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"InitializeShadowarg");return self.$handle("initialize_shadowarg"),self.$children("name"),$def(self,"$compile",(function(){return this.$scope().$locals()["$<<"](this.$name()),this.$scope().$add_arg(this.$name()),this.$line(this.$name()+" = nil;")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/parameters"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$truthy=Opal.truthy,$eqeq=Opal.eqeq;return Opal.add_stubs("children,map,public_send,type,join,compact,=="),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){return function($base,$super){var self=$klass($base,null,"Parameters");return self.$$prototype.args=nil,$def(self,"$initialize",(function(args){return this.args=args.$children()}),1),$def(self,"$to_code",(function(){return"["+$send(this.args,"map",[],(function $$1(arg){return null==arg&&(arg=nil),$send(null==$$1.$$s?this:$$1.$$s,"public_send",["on_"+arg.$type()].concat($to_a(arg)))}),{$$arity:1,$$s:this}).$compact().$join(", ")+"]"}),0),$def(self,"$on_arg",(function(arg_name){return"['req', '"+arg_name+"']"}),1),$def(self,"$on_mlhs",(function($a){return Opal.slice.call(arguments),"['req']"}),-1),$def(self,"$on_optarg",(function(arg_name,_default_value){return"['opt', '"+arg_name+"']"}),2),$def(self,"$on_restarg",(function(arg_name){return null==arg_name&&(arg_name=nil),$truthy(arg_name)?($eqeq(arg_name,"fwd_rest_arg")&&(arg_name="*"),"['rest', '"+arg_name+"']"):"['rest']"}),-1),$def(self,"$on_kwarg",(function(arg_name){return"['keyreq', '"+arg_name+"']"}),1),$def(self,"$on_kwoptarg",(function(arg_name,_default_value){return"['key', '"+arg_name+"']"}),2),$def(self,"$on_kwrestarg",(function(arg_name){return null==arg_name&&(arg_name=nil),$truthy(arg_name)?"['keyrest', '"+arg_name+"']":"['keyrest']"}),-1),$def(self,"$on_blockarg",(function(arg_name){return $eqeq(arg_name,"fwd_block_arg")&&(arg_name="&"),"['block', '"+arg_name+"']"}),1),$def(self,"$on_kwnilarg",(function(){return"['nokey']"}),0),$def(self,"$on_shadowarg",(function(_arg_name){return nil}),1)}([$module($base,"Args")].concat($parent_nesting)[0])}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,add_temp,==,offset,line"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Args")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"PreparePostArgs");return self.$handle("prepare_post_args"),self.$children("offset"),$def(self,"$compile",(function(){return this.$add_temp("$post_args"),$eqeq(this.$offset(),0)?this.$line("$post_args = Opal.slice.call(arguments)"):this.$line("$post_args = Opal.slice.call(arguments, "+this.$offset()+")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$hash2=Opal.hash2,$send=Opal.send,$truthy=Opal.truthy,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_plus=Opal.rb_plus,$rb_gt=Opal.rb_gt,$neqeq=Opal.neqeq,$def=Opal.def;return Opal.add_stubs("require,handle,each_with_index,children,multiple_underscore?,[],[]=,-,+,>,s,type,!=,push,process,==,count,start_with?,to_s,first"),self.$require("opal/nodes/base"),self.$require("opal/nodes/args/arg"),self.$require("opal/nodes/args/arity_check"),self.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),self.$require("opal/nodes/args/extract_block_arg"),self.$require("opal/nodes/args/extract_kwarg"),self.$require("opal/nodes/args/extract_kwargs"),self.$require("opal/nodes/args/extract_kwoptarg"),self.$require("opal/nodes/args/extract_kwrestarg"),self.$require("opal/nodes/args/extract_optarg"),self.$require("opal/nodes/args/extract_post_arg"),self.$require("opal/nodes/args/extract_post_optarg"),self.$require("opal/nodes/args/extract_restarg"),self.$require("opal/nodes/args/fake_arg"),self.$require("opal/nodes/args/initialize_iterarg"),self.$require("opal/nodes/args/initialize_shadowarg"),self.$require("opal/nodes/args/parameters"),self.$require("opal/nodes/args/prepare_post_args"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ArgsNode");return self.$handle("args"),$def(self,"$compile",(function(){var same_arg_counter=nil;return same_arg_counter=$hash2([],{}),$send(this.$children(),"each_with_index",[],(function $$1(arg,idx){var self=null==$$1.$$s?this:$$1.$$s,$writer=nil;return null==arg&&(arg=nil),null==idx&&(idx=nil),$truthy(self["$multiple_underscore?"](arg))&&($truthy(same_arg_counter["$[]"](arg))||($send(same_arg_counter,"[]=",$to_a($writer=[arg,0])),$writer[$rb_minus($writer.length,1)]),$writer=[arg,$rb_plus(same_arg_counter["$[]"](arg),1)],$send(same_arg_counter,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(same_arg_counter["$[]"](arg),1))&&(arg=self.$s(arg.$type(),arg.$children()["$[]"](0)+"_$"+same_arg_counter["$[]"](arg)))),$neqeq(idx,0)&&self.$push(", "),self.$push(self.$process(arg))}),{$$arity:2,$$s:this})}),0),$def(self,"$multiple_underscore?",(function(arg){var $ret_or_1,$ret_or_2,$ret_or_3;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=arg.$type()["$=="]("arg"))?arg.$children().$count()["$=="](1):$ret_or_3)?arg.$children().$first().$to_s()["$start_with?"]("_"):$ret_or_2)?$rb_gt(this.$children().$count(arg),1):$ret_or_1}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/node_with_args"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$def=Opal.def,$truthy=Opal.truthy;return Opal.add_stubs("require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new"),self.$require("opal/nodes/scope"),self.$require("opal/nodes/args/parameters"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"NodeWithArgs"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.sexp=nil,self.$attr_reader("used_kwargs"),self.$attr_accessor("arity"),self.$attr_reader("original_args"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),self.original_args=self.sexp.$meta()["$[]"]("original_args"),self.used_kwargs=[],self.arity=0}),-1),$def(self,"$arity_check_node",(function(){return this.$s("arity_check",this.$original_args())}),0),$def(self,"$compile_arity_check",(function(){return this.$push(this.$process(this.$arity_check_node()))}),0),$def(self,"$compile_block_arg",(function(){return $truthy(this.$scope()["$uses_block?"]())?this.$scope().$prepare_block():nil}),0),$def(self,"$parameters_code",(function(){return $$$($$("Args"),"Parameters").$new(this.$original_args()).$to_code()}),0)}($nesting[0],$$("ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/iter"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$eqeq=Opal.eqeq,$rb_gt=Opal.rb_gt,$def=Opal.def;return Opal.add_stubs("require,handle,children,lambda_definition?,scope,is_lambda!,in_scope,identify!,process,inline_args,compile_arity_check,stmt,returned_body,add_temp,to_vars,line,catch_return,unshift,push,await_encountered,<<,arity,self,contains_break?,arity_check?,compiler,parameters_code,has_top_level_mlhs_arg?,has_trailing_comma_in_args?,==,length,>,join,nesting,relative_access,block_arg,prepare_block,each,args,first,updated,body,returns,s,any?,original_args,type,expression,loc,source,match,new,found_break?"),self.$require("opal/nodes/node_with_args"),self.$require("opal/rewriters/break_finder"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"IterNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.define_self=$proto.define_nesting=$proto.define_relative_access=$proto.sexp=nil,self.$handle("iter"),self.$children("inline_args","body"),$def(self,"$compile",(function(){var inline_params=nil,to_vars=nil,identity=nil,body_code=nil,blockopts=nil;return $truthy(this.$scope()["$lambda_definition?"]())&&this["$is_lambda!"](),inline_params=nil,to_vars=identity=body_code=nil,$send(this,"in_scope",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return null==self.define_self&&(self.define_self=nil),identity=self.$scope()["$identify!"](),inline_params=self.$process(self.$inline_args()),self.$compile_arity_check(),body_code=self.$stmt(self.$returned_body()),$truthy(self.define_self)&&self.$add_temp("self = "+identity+".$$s == null ? this : "+identity+".$$s"),to_vars=self.$scope().$to_vars(),self.$line(body_code),$truthy(self.$scope().$catch_return())?(self.$unshift("try {\n"),self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),self.$push(" throw $returner; }")):nil}),{$$arity:0,$$s:this}),this.$unshift(to_vars),$truthy(this.$await_encountered())?this.$unshift("async function "+identity+"(",inline_params,"){"):this.$unshift("function "+identity+"(",inline_params,"){"),this.$push("}"),(blockopts=[])["$<<"]("$$arity: "+this.$arity()),$truthy(this.define_self)&&blockopts["$<<"]("$$s: "+this.$scope().$self()),$truthy(this["$contains_break?"]())&&blockopts["$<<"]("$$brk: $brk"),$truthy(this.$compiler()["$arity_check?"]())&&blockopts["$<<"]("$$parameters: "+this.$parameters_code()),$truthy(this["$has_top_level_mlhs_arg?"]())&&blockopts["$<<"]("$$has_top_level_mlhs_arg: true"),$truthy(this["$has_trailing_comma_in_args?"]())&&blockopts["$<<"]("$$has_trailing_comma_in_args: true"),$eqeq(blockopts.$length(),1)?this.$push(", "+this.$arity()):$truthy($rb_gt(blockopts.$length(),1))&&this.$push(", {",blockopts.$join(", "),"}"),$truthy(this.define_nesting)&&this.$scope().$nesting(),$truthy(this.define_relative_access)?this.$scope().$relative_access():nil}),0),$def(self,"$compile_block_arg",(function(){return $truthy(this.$block_arg())?this.$scope().$prepare_block():nil}),0),$def(self,"$extract_underscore_args",(function(){var valid_args=nil,caught_blank_argument=nil;return valid_args=[],caught_blank_argument=!1,$send(this.$args().$children(),"each",[],(function(arg){var arg_name;return null==arg&&(arg=nil),arg_name=arg.$children().$first(),$eqeq(arg_name,"_")?$truthy(caught_blank_argument)?nil:(caught_blank_argument=!0,valid_args["$<<"](arg)):valid_args["$<<"](arg)}),1),this.sexp=this.sexp.$updated(nil,[this.$args().$updated(nil,valid_args),this.$body()])}),0),$def(self,"$returned_body",(function(){var $ret_or_1;return this.$compiler().$returns($truthy($ret_or_1=this.$body())?$ret_or_1:this.$s("nil"))}),0),$def(self,"$has_top_level_mlhs_arg?",(function(){return $send(this.$original_args().$children(),"any?",[],(function(arg){return null==arg&&(arg=nil),arg.$type()["$=="]("mlhs")}),1)}),0),$def(self,"$has_trailing_comma_in_args?",(function(){return $truthy(this.$original_args().$loc())&&$truthy(this.$original_args().$loc().$expression())?this.$original_args().$loc().$expression().$source().$match(/,\s*\|/):nil}),0),$def(self,"$arity_check_node",(function(){return this.$s("iter_arity_check",this.$original_args())}),0),$def(self,"$contains_break?",(function(){var finder=nil;return(finder=$$$($$$($$("Opal"),"Rewriters"),"BreakFinder").$new()).$process(this.sexp),finder["$found_break?"]()}),0)}($nesting[0],$$("NodeWithArgs"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/def"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$def=Opal.def,$rb_plus=Opal.rb_plus;return Opal.add_stubs("require,handle,children,in_scope,mid,mid=,scope,-,==,type,defs=,identify!,identity,block_name=,process,inline_args,stmt,returns,compiler,stmts,compile_block_arg,add_temp,compile_arity_check,unshift,current_indent,to_vars,line,catch_return,push,await_encountered,<<,arity,arity_check?,parameters_code,parse_comments?,comments_code,enable_source_location?,source_location,length,>,join,wrap_with_definition,nesting,relative_access,helper,wrap,self,expr?,+,map,comments,inspect,text"),self.$require("opal/nodes/node_with_args"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DefNode"),$proto=self.$$prototype;return $proto.define_nesting=$proto.define_relative_access=nil,self.$handle("def"),self.$children("mid","inline_args","stmts"),$def(self,"$compile",(function(){var inline_params=nil,scope_name=nil,blockopts=nil;return inline_params=nil,scope_name=nil,$send(this,"in_scope",[],(function $$1(){var stmt_code,self=null==$$1.$$s?this:$$1.$$s,$writer=nil;return null==self.sexp&&(self.sexp=nil),null==self.define_self&&(self.define_self=nil),$writer=[self.$mid()],$send(self.$scope(),"mid=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$eqeq(self.sexp.$type(),"defs")&&($writer=[!0],$send(self.$scope(),"defs=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),self.$scope()["$identify!"](),scope_name=self.$scope().$identity(),$writer=["$yield"],$send(self.$scope(),"block_name=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],inline_params=self.$process(self.$inline_args()),stmt_code=self.$stmt(self.$compiler().$returns(self.$stmts())),self.$compile_block_arg(),$truthy(self.define_self)&&self.$add_temp("self = this"),self.$compile_arity_check(),self.$unshift("\n"+self.$current_indent(),self.$scope().$to_vars()),self.$line(stmt_code),$truthy(self.$scope().$catch_return())?(self.$unshift("try {\n"),self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),self.$push(" throw $returner; }")):nil}),{$$arity:0,$$s:this}),this.$unshift(") {"),this.$unshift(inline_params),this.$unshift("function "+scope_name+"("),$truthy(this.$await_encountered())&&this.$unshift("async "),this.$line("}"),(blockopts=[])["$<<"]("$$arity: "+this.$arity()),$truthy(this.$compiler()["$arity_check?"]())&&blockopts["$<<"]("$$parameters: "+this.$parameters_code()),$truthy(this.$compiler()["$parse_comments?"]())&&blockopts["$<<"]("$$comments: "+this.$comments_code()),$truthy(this.$compiler()["$enable_source_location?"]())&&blockopts["$<<"]("$$source_location: "+this.$source_location()),$eqeq(blockopts.$length(),1)?this.$push(", "+this.$arity()):$truthy($rb_gt(blockopts.$length(),1))&&this.$push(", {",blockopts.$join(", "),"}"),this.$wrap_with_definition(),$truthy(this.define_nesting)&&this.$scope().$nesting(),$truthy(this.define_relative_access)?this.$scope().$relative_access():nil}),0),$def(self,"$wrap_with_definition",(function(){return this.$helper("def"),this.$wrap("$def("+this.$scope().$self()+", '$"+this.$mid()+"', ",")"),$truthy(this["$expr?"]())?nil:this.$unshift("\n"+this.$current_indent())}),0),$def(self,"$comments_code",(function(){return $rb_plus($rb_plus("[",$send(this.$comments(),"map",[],(function(comment){return null==comment&&(comment=nil),comment.$text().$inspect()}),1).$join(", ")),"]")}),0)}($nesting[0],$$("NodeWithArgs"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/defs"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$def=Opal.def;return Opal.add_stubs("require,handle,children,helper,unshift,expr,recvr,mid,push"),self.$require("opal/nodes/def"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DefsNode");return self.$handle("defs"),self.$children("recvr","mid","inline_args","stmts"),$def(self,"$wrap_with_definition",(function(){return this.$helper("defs"),this.$unshift("$defs(",this.$expr(this.$recvr()),", '$"+this.$mid()+"', "),this.$push(")")}),0)}($nesting[0],$$("DefNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/if"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def,$not=Opal.not,$send=Opal.send,$eqeqeq=Opal.eqeqeq;return Opal.add_stubs("require,handle,children,should_compile_as_simple_expression?,==,true_body,s,compile_with_binary_or,false_body,compile_with_binary_and,compile_with_ternary,compile_with_if,truthy,falsy,!,push,js_truthy,test,indent,line,stmt,type,expects_expression?,await_encountered,scope,wrap,returnify,returns,compiler,expr?,recv?,simple?,expr,[],meta,sexp,===,single_line?,strip_empty_children,all?,helper,new_temp,top_scope,excl,from,to"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"IfNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$handle("if"),self.$children("test","true_body","false_body"),$def(self,"$compile",(function(){return $truthy(this["$should_compile_as_simple_expression?"]())?$eqeq(this.$true_body(),this.$s("true"))?this.$compile_with_binary_or():$eqeq(this.$false_body(),this.$s("false"))?this.$compile_with_binary_and():this.$compile_with_ternary():this.$compile_with_if()}),0),$def(self,"$compile_with_if",(function(){var $a,truthy=nil,falsy=nil;return truthy=this.$truthy(),falsy=this.$falsy(),$truthy(falsy)&&$not(truthy)?(this.$push("if (!",this.$js_truthy(this.$test()),") {"),falsy=($a=[truthy,falsy])[0],truthy=$a[1]):this.$push("if (",this.$js_truthy(this.$test()),") {"),$truthy(truthy)&&$send(this,"indent",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return self.$line(self.$stmt(truthy))}),{$$arity:0,$$s:this}),$truthy(falsy)?$eqeq(falsy.$type(),"if")?this.$line("} else ",this.$stmt(falsy)):(this.$line("} else {"),$send(this,"indent",[],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;return self.$line(self.$stmt(falsy))}),{$$arity:0,$$s:this}),this.$line("}")):(this.$line("}"),$truthy(this["$expects_expression?"]())&&this.$line("return nil;")),$truthy(this["$expects_expression?"]())?$truthy(this.$scope().$await_encountered())?this.$wrap("(await (async function() {","})())"):this.$wrap("(function() {","})()"):nil}),0),$def(self,"$truthy",(function(){return this.$returnify(this.$true_body())}),0),$def(self,"$falsy",(function(){return this.$returnify(this.$false_body())}),0),$def(self,"$returnify",(function(body){return $truthy(this["$expects_expression?"]())&&$truthy(body)?this.$compiler().$returns(body):body}),1),$def(self,"$expects_expression?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$expr?"]())?$ret_or_1:this["$recv?"]()}),0),$def(self,"$should_compile_as_simple_expression?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this["$expects_expression?"]())?this["$simple?"](this.$true_body()):$ret_or_2)?this["$simple?"](this.$false_body()):$ret_or_1}),0),$def(self,"$compile_with_ternary",(function(){var truthy,falsy=nil,$ret_or_1=nil;return truthy=this.$true_body(),falsy=this.$false_body(),this.$push("("),this.$push(this.$js_truthy(this.$test())," ? "),this.$push("(",this.$expr($truthy($ret_or_1=truthy)?$ret_or_1:this.$s("nil")),") : "),$not(falsy)||$eqeq(falsy.$type(),"if")?this.$push(this.$expr($truthy($ret_or_1=falsy)?$ret_or_1:this.$s("nil"))):this.$push("(",this.$expr($truthy($ret_or_1=falsy)?$ret_or_1:this.$s("nil")),")"),this.$push(")")}),0),$def(self,"$compile_with_binary_and",(function(){var truthy=nil,$ret_or_1=nil;return truthy=$truthy(this.$sexp().$meta()["$[]"]("do_js_truthy_on_true_body"))?this.$js_truthy($truthy($ret_or_1=this.$true_body())?$ret_or_1:this.$s("nil")):this.$expr($truthy($ret_or_1=this.$true_body())?$ret_or_1:this.$s("nil")),this.$push("("),this.$push(this.$js_truthy(this.$test())," && "),this.$push("(",truthy,")"),this.$push(")")}),0),$def(self,"$compile_with_binary_or",(function(){var falsy=nil,$ret_or_1=nil;return falsy=$truthy(this.$sexp().$meta()["$[]"]("do_js_truthy_on_false_body"))?this.$js_truthy($truthy($ret_or_1=this.$false_body())?$ret_or_1:this.$s("nil")):this.$expr($truthy($ret_or_1=this.$false_body())?$ret_or_1:this.$s("nil")),this.$push("("),this.$push(this.$js_truthy(this.$test())," || "),this.$push("(",falsy,")"),this.$push(")")}),0),$def(self,"$simple?",(function(body){var $ret_or_2=nil;return!$eqeqeq($$$($$("AST"),"Node"),body)||!($eqeqeq("return",$ret_or_2=body.$type())||$eqeqeq("js_return",$ret_or_2)||$eqeqeq("break",$ret_or_2)||$eqeqeq("next",$ret_or_2)||$eqeqeq("redo",$ret_or_2)||$eqeqeq("retry",$ret_or_2))&&($eqeqeq("xstr",$ret_or_2)?$$("XStringNode")["$single_line?"]($$("XStringNode").$strip_empty_children(body.$children())):$send(body.$children(),"all?",[],(function $$6(i){return null==i&&(i=nil),(null==$$6.$$s?this:$$6.$$s)["$simple?"](i)}),{$$arity:1,$$s:this}))}),1)}($nesting[0],$$("Base"),$nesting),function($base,$super){var self=$klass($base,$super,"IFlipFlop");self.$handle("iflipflop"),self.$children("from","to"),$def(self,"$excl",(function(){return""}),0),$def(self,"$compile",(function(){var fun_name,ff;return this.$helper("truthy"),ff=(fun_name=this.$top_scope().$new_temp())+".$$ff",this.$push("(typeof "+fun_name+" === 'undefined' ? ("+fun_name+" = function(from, to){"),this.$push(" if (typeof "+ff+" === 'undefined') "+ff+" = false;"),this.$push(" var retval = "+ff+";"),this.$push(" if (!"+ff+") {"),this.$push(" "+ff+" = retval = $truthy(from());"),this.$push(" }"),this.$push(" "+this.$excl()+"if ("+ff+") {"),this.$push(" if ($truthy(to())) "+ff+" = false;"),this.$push(" }"),this.$push(" return retval;"),this.$push("}) : "+fun_name+")("),this.$push(" function() { ",this.$stmt(this.$compiler().$returns(this.$from()))," },"),this.$push(" function() { ",this.$stmt(this.$compiler().$returns(this.$to()))," }"),this.$push(")")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"EFlipFlop");return self.$handle("eflipflop"),$def(self,"$excl",(function(){return"else "}),0)}($nesting[0],$$("IFlipFlop"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/logic"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt,$not=Opal.not;return Opal.add_stubs("require,handle,in_while?,push,iter?,scope,expr_or_nil,value,error,===,size,children,s,first,compile_while,compile_iter,[],while_loop,stmt?,line,break_val,nil?,expr,[]=,-,helper,identity,==,empty_splat?,recv,>,find_parent_def,!,lambda?,def?,expr?,return_in_iter?,return_expr_in_def?,scope_to_catch_return,catch_return=,return_val,to_s"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"NextNode");self.$handle("next"),$def(self,"$compile",(function(){return $truthy(this["$in_while?"]())?this.$push("continue;"):$truthy(this.$scope()["$iter?"]())?this.$push("return ",this.$expr_or_nil(this.$value()),";"):this.$error("Invalid next")}),0),$def(self,"$value",(function(){var $ret_or_1;return $eqeqeq(0,$ret_or_1=this.$children().$size())?this.$s("nil"):$eqeqeq(1,$ret_or_1)?this.$children().$first():$send(this,"s",["array"].concat($to_a(this.$children())))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"BreakNode");self.$handle("break"),self.$children("value"),$def(self,"$compile",(function(){return $truthy(this["$in_while?"]())?this.$compile_while():$truthy(this.$scope()["$iter?"]())?this.$compile_iter():this.$error("void value expression: cannot use break outside of iter/while")}),0),$def(self,"$compile_while",(function(){return $truthy(this.$while_loop()["$[]"]("closure"))?this.$push("return ",this.$expr_or_nil(this.$value())):this.$push("break;")}),0),$def(self,"$compile_iter",(function(){return $truthy(this["$stmt?"]())||this.$error("break must be used as a statement"),this.$line("Opal.brk(",this.$break_val(),", $brk)")}),0),$def(self,"$break_val",(function(){return $truthy(this.$value()["$nil?"]())?this.$expr(this.$s("nil")):this.$expr(this.$value())}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"RedoNode");self.$handle("redo"),$def(self,"$compile",(function(){return $truthy(this["$in_while?"]())?this.$compile_while():$truthy(this.$scope()["$iter?"]())?this.$compile_iter():this.$push("REDO()")}),0),$def(self,"$compile_while",(function(){var $writer;return $writer=["use_redo",!0],$send(this.$while_loop(),"[]=",$to_a($writer)),$rb_minus($writer.length,1),this.$push(this.$while_loop()["$[]"]("redo_var")+" = true; continue;")}),0),$def(self,"$compile_iter",(function(){return this.$helper("slice"),this.$push("return "+this.$scope().$identity()+".apply(null, $slice.call(arguments))")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"SplatNode");self.$handle("splat"),self.$children("value"),$def(self,"$empty_splat?",(function(){return this.$value()["$=="](this.$s("array"))}),0),$def(self,"$compile",(function(){return $truthy(this["$empty_splat?"]())?this.$push("[]"):(this.$helper("to_a"),this.$push("$to_a(",this.$recv(this.$value()),")"))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ReturnNode");self.$handle("return"),self.$children("value"),$def(self,"$return_val",(function(){return $truthy(this.$value()["$nil?"]())?this.$expr(this.$s("nil")):$truthy($rb_gt(this.$children().$size(),1))?this.$expr($send(this,"s",["array"].concat($to_a(this.$children())))):this.$expr(this.$value())}),0),$def(self,"$return_in_iter?",(function(){var parent_def=nil;return $truthy(this.$scope()["$iter?"]())&&$not(this.$scope()["$lambda?"]())&&$truthy(parent_def=this.$scope().$find_parent_def())?parent_def:nil}),0),$def(self,"$return_expr_in_def?",(function(){return $truthy(this["$expr?"]())&&($truthy(this.$scope()["$def?"]())||$truthy(this.$scope()["$lambda?"]()))?this.$scope():nil}),0),$def(self,"$scope_to_catch_return",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$return_in_iter?"]())?$ret_or_1:this["$return_expr_in_def?"]()}),0),$def(self,"$compile",(function(){var def_scope,$writer=nil;return $truthy(def_scope=this.$scope_to_catch_return())?($send(def_scope,"catch_return=",$to_a($writer=[!0])),$writer[$rb_minus($writer.length,1)],this.$push("Opal.ret(",this.$return_val(),")")):$truthy(this["$stmt?"]())?this.$push("return ",this.$return_val()):this.$error("void value expression: cannot return as an expression")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"JSReturnNode");self.$handle("js_return"),self.$children("value"),$def(self,"$compile",(function(){return this.$push("return "),this.$push(this.$expr(this.$value()))}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"JSTempNode");self.$handle("js_tmp"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$value().$to_s())}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"BlockPassNode");return self.$handle("block_pass"),self.$children("value"),$def(self,"$compile",(function(){return this.$push(this.$expr(this.$s("send",this.$value(),"to_proc",this.$s("arglist"))))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/definitions"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$range=Opal.range,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$slice=Opal.slice,$rb_plus=Opal.rb_plus,$hash2=Opal.hash2,$const_set=Opal.const_set;return Opal.add_stubs("require,handle,children,each,line,self,scope,expr,===,type,new_name,helper,inspect,[],to_s,first,old_name,push,error,empty?,stmt?,compile_children,simple_children?,compile_inline_children,>,size,wrap,==,returned_children,await_encountered,parent,+,returns,compiler,s,process,fragment,freeze,none?,include?,map,each_with_index,reject,to_proc"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"UndefNode");self.$handle("undef"),self.$children("value"),$def(self,"$compile",(function(){return $send(this.$children(),"each",[],(function $$1(child){var self=null==$$1.$$s?this:$$1.$$s;return null==child&&(child=nil),self.$line("Opal.udef("+self.$scope().$self()+", '$' + ",self.$expr(child),");")}),{$$arity:1,$$s:this})}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"AliasNode");self.$handle("alias"),self.$children("new_name","old_name"),$def(self,"$compile",(function(){var $ret_or_1,new_name_str=nil,old_name_str=nil;return $eqeqeq("gvar",$ret_or_1=this.$new_name().$type())?(this.$helper("alias_gvar"),new_name_str=this.$new_name().$children().$first().$to_s()["$[]"]($range(1,-1,!1)).$inspect(),old_name_str=this.$old_name().$children().$first().$to_s()["$[]"]($range(1,-1,!1)).$inspect(),this.$push("$alias_gvar(",new_name_str,", ",old_name_str,")")):$eqeqeq("dsym",$ret_or_1)||$eqeqeq("sym",$ret_or_1)?(this.$helper("alias"),this.$push("$alias("+this.$scope().$self()+", ",this.$expr(this.$new_name()),", ",this.$expr(this.$old_name()),")")):this.$error("Opal doesn't know yet how to alias with "+this.$new_name().$type())}),0)}($nesting[0],$$("Base")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"BeginNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.level=$proto.returned_children=nil,self.$handle("begin"),$def(self,"$compile",(function(){return $truthy(this.$children()["$empty?"]())?this.$push("nil"):$truthy(this["$stmt?"]())?this.$compile_children(this.$children(),this.level):$truthy(this["$simple_children?"]())?(this.$compile_inline_children(this.$children(),this.level),$truthy($rb_gt(this.$children().$size(),1))?this.$wrap("(",")"):nil):$eqeq(this.$children().$size(),1)?this.$compile_inline_children(this.$returned_children(),this.level):(this.$compile_children(this.$returned_children(),this.level),$truthy(this.$scope().$parent().$await_encountered())?this.$wrap("(await (async function() {","})())"):this.$wrap("(function() {","})()"))}),0),$def(self,"$returned_children",(function(){var $a,$b,$ret_or_1,rest=nil,last_child=nil;return this.returned_children=$truthy($ret_or_1=this.returned_children)?$ret_or_1:($b=($b=($a=[].concat($to_a(this.$children()))).length-1)<0?0:$b,rest=$slice.call($a,0,$b),last_child=null==$a[$b]?nil:$a[$b],$truthy(last_child)?$rb_plus(rest,[this.$compiler().$returns(last_child)]):[this.$s("nil")])}),0),$def(self,"$compile_children",(function(children,level){return $send(children,"each",[],(function $$2(child){var self=null==$$2.$$s?this:$$2.$$s;return null==child&&(child=nil),self.$line(self.$process(child,level),self.$fragment(";",$hash2(["loc"],{loc:!1})))}),{$$arity:1,$$s:this})}),2),$const_set($nesting[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),$def(self,"$simple_children?",(function(){return $send(this.$children(),"none?",[],(function(child){return null==child&&(child=nil),$$("COMPLEX_CHILDREN")["$include?"](child.$type())}),1)}),0),$def(self,"$compile_inline_children",(function(children,level){var processed_children;return processed_children=$send(children,"map",[],(function $$5(child){return null==child&&(child=nil),(null==$$5.$$s?this:$$5.$$s).$process(child,level)}),{$$arity:1,$$s:this}),$send($send(processed_children,"reject",[],"empty?".$to_proc()),"each_with_index",[],(function $$6(child,idx){var self=null==$$6.$$s?this:$$6.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),$eqeq(idx,0)||self.$push(self.$fragment(", ",$hash2(["loc"],{loc:!1}))),self.$push(child)}),{$$arity:2,$$s:this})}),2)}($nesting[0],$$("ScopeNode"),$nesting),function($base,$super){return $klass($base,$super,"KwBeginNode").$handle("kwbegin")}($nesting[0],$$("BeginNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/yield"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def;return Opal.add_stubs("require,find_yielding_scope,uses_block!,block_name,block_name=,-,yields_single_arg?,children,push,expr,first,wrap,s,uses_splat?,scope,def?,parent,!,==,size,any?,type,handle,compile_call"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"BaseYieldNode");$def(self,"$compile_call",(function(){var block_name,yielding_scope=nil,$writer=nil;return(yielding_scope=this.$find_yielding_scope())["$uses_block!"](),$truthy(yielding_scope.$block_name())||($send(yielding_scope,"block_name=",$to_a($writer=["$yield"])),$writer[$rb_minus($writer.length,1)]),block_name=yielding_scope.$block_name(),$truthy(this["$yields_single_arg?"](this.$children()))?(this.$push(this.$expr(this.$children().$first())),this.$wrap("Opal.yield1("+block_name+", ",")")):(this.$push(this.$expr($send(this,"s",["arglist"].concat($to_a(this.$children()))))),$truthy(this["$uses_splat?"](this.$children()))?this.$wrap("Opal.yieldX("+block_name+", ",")"):this.$wrap("Opal.yieldX("+block_name+", [","])"))}),0),$def(self,"$find_yielding_scope",(function(){var working=nil;for(working=this.$scope();$truthy(working)&&!$truthy(working.$block_name())&&!$truthy(working["$def?"]());)working=working.$parent();return working}),0),$def(self,"$yields_single_arg?",(function(children){var $ret_or_1;return $truthy($ret_or_1=this["$uses_splat?"](children)["$!"]())?children.$size()["$=="](1):$ret_or_1}),1),$def(self,"$uses_splat?",(function(children){return $send(children,"any?",[],(function(child){return null==child&&(child=nil),child.$type()["$=="]("splat")}),1)}),1)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"YieldNode");self.$handle("yield"),$def(self,"$compile",(function(){return this.$compile_call()}),0)}($nesting[0],$$("BaseYieldNode")),function($base,$super){var self=$klass($base,$super,"ReturnableYieldNode");return self.$handle("returnable_yield"),$def(self,"$compile",(function(){return this.$compile_call(),this.$wrap("return ",";")}),0)}($nesting[0],$$("BaseYieldNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/rescue"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$def=Opal.def,$range=Opal.range,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$eqeq=Opal.eqeq;return Opal.add_stubs("require,handle,children,push,in_ensure,line,stmt,body_sexp,indent,has_rescue_else?,unshift,rescue_else_code,process,compiler,ensr_sexp,wrap_in_closure?,await_encountered,scope,wrap,returns,begn,ensr,s,recv?,expr?,rescue_else_sexp,stmt?,detect,[],!=,type,rescue_else_sexp=,-,handle_rescue_else_manually?,in_rescue,body_code,each_with_index,==,retry_id,body,nil?,!,in_ensure?,gen_retry_id,attr_reader,expr,klasses,lvar,updated,in_resbody,rescue_body,klasses_sexp,in_resbody?,error,current_rescue"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"EnsureNode");self.$handle("ensure"),self.$children("begn","ensr"),$def(self,"$compile",(function(){return this.$push("try {"),$send(this,"in_ensure",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return self.$line(self.$stmt(self.$body_sexp()))}),{$$arity:0,$$s:this}),this.$line("} finally {"),$send(this,"indent",[],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;return null==self.level&&(self.level=nil),$truthy(self["$has_rescue_else?"]())?(self.$unshift("var $no_errors = true; "),self.$line("var $rescue_else_result;"),self.$line("if ($no_errors) { "),$send(self,"indent",[],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return self.$line("$rescue_else_result = (function() {"),$send(self,"indent",[],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s;return self.$line(self.$stmt(self.$rescue_else_code()))}),{$$arity:0,$$s:self}),self.$line("})();")}),{$$arity:0,$$s:self}),self.$line("}"),self.$line(self.$compiler().$process(self.$ensr_sexp(),self.level)),self.$line("if ($no_errors) { return $rescue_else_result; }")):self.$line(self.$compiler().$process(self.$ensr_sexp(),self.level))}),{$$arity:0,$$s:this}),this.$line("}"),$truthy(this["$wrap_in_closure?"]())?$truthy(this.$scope().$await_encountered())?this.$wrap("(await (async function() { ","; })())"):this.$wrap("(function() { ","; })()"):nil}),0),$def(self,"$body_sexp",(function(){return $truthy(this["$wrap_in_closure?"]())?this.$compiler().$returns(this.$begn()):this.$begn()}),0),$def(self,"$ensr_sexp",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$ensr())?$ret_or_1:this.$s("nil")}),0),$def(self,"$wrap_in_closure?",(function(){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=this["$recv?"]())?$ret_or_2:this["$expr?"]())?$ret_or_1:this["$has_rescue_else?"]()}),0),$def(self,"$rescue_else_code",(function(){var rescue_else_code=nil;return rescue_else_code=this.$scope().$rescue_else_sexp(),$truthy(this["$stmt?"]())||(rescue_else_code=this.$compiler().$returns(rescue_else_code)),rescue_else_code}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"RescueNode");self.$$prototype.retry_id=nil,self.$handle("rescue"),self.$children("body"),$def(self,"$compile",(function(){var $writer;return $writer=[$send(this.$children()["$[]"]($range(1,-1,!1)),"detect",[],(function(sexp){var $ret_or_1;return null==sexp&&(sexp=nil),$truthy($ret_or_1=sexp)?sexp.$type()["$!="]("resbody"):$ret_or_1}),1)],$send(this.$scope(),"rescue_else_sexp=",$to_a($writer)),$rb_minus($writer.length,1),!1,$truthy(this["$handle_rescue_else_manually?"]())&&this.$line("var $no_errors = true;"),$send(this,"in_rescue",[this],(function $$7(){var self=null==$$7.$$s?this:$$7.$$s;return self.$push("try {"),$send(self,"indent",[],(function $$8(){var self=null==$$8.$$s?this:$$8.$$s;return self.$line(self.$stmt(self.$body_code()))}),{$$arity:0,$$s:self}),self.$line("} catch ($err) {"),$send(self,"indent",[],(function $$9(){var self=null==$$9.$$s?this:$$9.$$s;return $truthy(self["$has_rescue_else?"]())&&self.$line("$no_errors = false;"),$send(self.$children()["$[]"]($range(1,-1,!1)),"each_with_index",[],(function $$10(child,idx){var self=null==$$10.$$s?this:$$10.$$s;return null==self.level&&(self.level=nil),null==child&&(child=nil),null==idx&&(idx=nil),$truthy(child)&&$eqeq(child.$type(),"resbody")?(!0,$eqeq(idx,0)||self.$push(" else "),self.$line(self.$process(child,self.level))):nil}),{$$arity:2,$$s:self}),self.$push(" else { throw $err; }")}),{$$arity:0,$$s:self}),self.$line("}"),$truthy(self["$handle_rescue_else_manually?"]())&&(self.$push("finally {"),$send(self,"indent",[],(function $$11(){var self=null==$$11.$$s?this:$$11.$$s;return self.$line("if ($no_errors) { "),$send(self,"indent",[],(function $$12(){var self=null==$$12.$$s?this:$$12.$$s;return self.$line(self.$stmt(self.$rescue_else_code()))}),{$$arity:0,$$s:self}),self.$line("}")}),{$$arity:0,$$s:self}),self.$push("}")),$truthy(self.$retry_id())?self.$wrap(self.$retry_id()+": do { "," break; } while(1)"):nil}),{$$arity:0,$$s:this}),$truthy(this["$expr?"]())||$truthy(this["$recv?"]())?$truthy(this.$scope().$await_encountered())?this.$wrap("(await (async function() { ","})())"):this.$wrap("(function() { ","})()"):nil}),0),$def(self,"$body_code",(function(){var body_code=nil;return body_code=$truthy(this.$body()["$nil?"]())||$eqeq(this.$body().$type(),"resbody")?this.$s("nil"):this.$body(),$truthy(this["$stmt?"]())||(body_code=this.$compiler().$returns(body_code)),body_code}),0),$def(self,"$rescue_else_code",(function(){var rescue_else_code=nil;return rescue_else_code=this.$scope().$rescue_else_sexp(),$truthy(this["$stmt?"]())||(rescue_else_code=this.$compiler().$returns(rescue_else_code)),rescue_else_code}),0),$def(self,"$handle_rescue_else_manually?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$in_ensure?"]()["$!"]())?this["$has_rescue_else?"]():$ret_or_1}),0),$def(self,"$gen_retry_id",(function(){var $ret_or_1;return this.retry_id=$truthy($ret_or_1=this.retry_id)?$ret_or_1:this.$scope().$gen_retry_id()}),0),self.$attr_reader("retry_id")}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"ResBodyNode");self.$handle("resbody"),self.$children("klasses_sexp","lvar","body"),$def(self,"$compile",(function(){return this.$push("if (Opal.rescue($err, ",this.$expr(this.$klasses()),")) {"),$send(this,"indent",[],(function $$14(){var self=null==$$14.$$s?this:$$14.$$s;return $truthy(self.$lvar())&&self.$push(self.$expr(self.$lvar().$updated(nil,[].concat($to_a(self.$lvar().$children())).concat([self.$s("js_tmp","$err")])))),self.$line("try {"),$send(self,"indent",[],(function $$15(){var self=null==$$15.$$s?this:$$15.$$s;return $send(self,"in_resbody",[],(function $$16(){var self=null==$$16.$$s?this:$$16.$$s;return self.$line(self.$stmt(self.$rescue_body()))}),{$$arity:0,$$s:self})}),{$$arity:0,$$s:self}),self.$line("} finally { Opal.pop_exception(); }")}),{$$arity:0,$$s:this}),this.$line("}")}),0),$def(self,"$klasses",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$klasses_sexp())?$ret_or_1:this.$s("array",this.$s("const",nil,"StandardError"))}),0),$def(self,"$rescue_body",(function(){var $ret_or_1,body_code=nil;return body_code=$truthy($ret_or_1=this.$body())?$ret_or_1:this.$s("nil"),$truthy(this["$stmt?"]())||(body_code=this.$compiler().$returns(body_code)),body_code}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"RetryNode");return self.$handle("retry"),$def(self,"$compile",(function(){return $truthy(this["$in_resbody?"]())||this.$error("Invalid retry"),this.$push("continue "+this.$scope().$current_rescue().$gen_retry_id())}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/super"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$slice=Opal.slice,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def,$to_ary=Opal.to_ary,$eqeq=Opal.eqeq,$not=Opal.not,$eqeqeq=Opal.eqeqeq,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$rb_gt=Opal.rb_gt;return Opal.add_stubs("require,include?,type,s,helper,push,compile_receiver,compile_method_body,compile_method_name,compile_arguments,compile_block_pass,private,def?,scope,find_parent_def,to_s,mid,def_scope,identify!,self,method_id,def_scope_identity,defined_check_param,allow_stubs,super_chain,join,map,implicit_arguments_param,super_method_invocation,iter?,super_block_invocation,raise,handle,wrap,uses_block!,compile_using_send,==,iter,block_name,implicit_arglist,!,<<,new,each,children,original_args,[],===,+,[]=,-,>,meta,empty?"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"BaseSuperNode"),$proto=self.$$prototype;$proto.sexp=$proto.def_scope=nil,$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$b,$c,$yield=$$initialize.$$p||nil,self=this,args=nil,rest=nil,last_child=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),args=[].concat($to_a(self.sexp)),$c=($c=($b=[].concat($to_a(args))).length-1)<0?0:$c,rest=$slice.call($b,0,$c),last_child=null==$b[$c]?nil:$b[$c],$truthy(last_child)&&$truthy(["iter","block_pass"]["$include?"](last_child.$type()))?(self.iter=last_child,args=rest):self.iter=self.$s("js_tmp","null"),self.arglist=$send(self,"s",["arglist"].concat($to_a(args))),self.recvr=self.$s("self")}),-1),$def(self,"$compile_using_send",(function(){return this.$helper("send2"),this.$push("$send2("),this.$compile_receiver(),this.$compile_method_body(),this.$compile_method_name(),this.$compile_arguments(),this.$compile_block_pass(),this.$push(")")}),0),self.$private(),$def(self,"$def_scope",(function(){var $ret_or_1;return this.def_scope=$truthy($ret_or_1=this.def_scope)?$ret_or_1:$truthy(this.$scope()["$def?"]())?this.$scope():this.$scope().$find_parent_def()}),0),$def(self,"$defined_check_param",(function(){return"false"}),0),$def(self,"$implicit_arguments_param",(function(){return"false"}),0),$def(self,"$method_id",(function(){return this.$def_scope().$mid().$to_s()}),0),$def(self,"$def_scope_identity",(function(){return this.$def_scope()["$identify!"](this.$def_scope().$mid())}),0),$def(self,"$allow_stubs",(function(){return"true"}),0),$def(self,"$super_method_invocation",(function(){return this.$helper("find_super"),"$find_super("+this.$scope().$self()+", '"+this.$method_id()+"', "+this.$def_scope_identity()+", "+this.$defined_check_param()+", "+this.$allow_stubs()+")"}),0),$def(self,"$super_block_invocation",(function(){var $a,$b,chain,cur_defn,mid,trys;return this.$helper("find_block_super"),$b=this.$scope().$super_chain(),chain=null==($a=$to_ary($b))[0]?nil:$a[0],cur_defn=null==$a[1]?nil:$a[1],mid=null==$a[2]?nil:$a[2],trys=$send(chain,"map",[],(function(c){return null==c&&(c=nil),c+".$$def"}),1).$join(" || "),"$find_block_super("+this.$scope().$self()+", "+mid+", ("+trys+" || "+cur_defn+"), "+this.$defined_check_param()+", "+this.$implicit_arguments_param()+")"}),0),$def(self,"$compile_method_body",(function(){return this.$push(", "),$truthy(this.$scope()["$def?"]())?this.$push(this.$super_method_invocation()):$truthy(this.$scope()["$iter?"]())?this.$push(this.$super_block_invocation()):this.$raise("super must be called from method body or block")}),0),$def(self,"$compile_method_name",(function(){var $a,$b,mid=nil;return $truthy(this.$scope()["$def?"]())?this.$push(", '"+this.$method_id()+"'"):$truthy(this.$scope()["$iter?"]())?($b=this.$scope().$super_chain(),null==($a=$to_ary($b))[0]?nil:$a[0],null==$a[1]?nil:$a[1],mid=null==$a[2]?nil:$a[2],this.$push(", "+mid)):nil}),0)}($nesting[0],$$("CallNode")),function($base,$super){var self=$klass($base,$super,"DefinedSuperNode");self.$handle("defined_super"),$def(self,"$allow_stubs",(function(){return"false"}),0),$def(self,"$defined_check_param",(function(){return"true"}),0),$def(self,"$compile",(function(){return this.$compile_receiver(),this.$compile_method_body(),this.$wrap("((",') != null ? "super" : nil)')}),0)}($nesting[0],$$("BaseSuperNode")),function($base,$super){var self=$klass($base,$super,"SuperNode");self.$handle("super"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),$truthy(self.$scope()["$def?"]())?self.$scope()["$uses_block!"]():nil}),-1),$def(self,"$compile",(function(){return this.$compile_using_send()}),0)}($nesting[0],$$("BaseSuperNode")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"ZsuperNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$handle("zsuper"),$def(self,"$implicit_arguments_param",(function(){return"true"}),0),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this,$ret_or_1=nil;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),$eqeq(self.$iter().$type(),"iter")?nil:(self.$scope()["$uses_block!"](),self.iter=self.$s("js_tmp",$truthy($ret_or_1=self.$scope().$block_name())?$ret_or_1:"$yield"))}),-1),$def(self,"$compile",(function(){var implicit_args=nil,block_pass=nil;return $truthy(this.$def_scope())&&(implicit_args=this.$implicit_arglist(),$truthy(this.$block_name())&&$not(this.$iter())&&(block_pass=this.$s("block_pass",this.$s("lvar",this.$block_name())),implicit_args["$<<"](block_pass)),this.arglist=$send(this,"s",["arglist"].concat($to_a(implicit_args)))),this.$compile_using_send()}),0),$def(self,"$implicit_arglist",(function(){var args=nil,kwargs=nil,same_arg_counter=nil;return args=[],kwargs=[],same_arg_counter=$$("Hash").$new(0),$send(this.$def_scope().$original_args().$children(),"each",[],(function $$2(sexp){var $ret_or_1,self=null==$$2.$$s?this:$$2.$$s,lvar_name=nil,arg_node=nil,$writer=nil,key_name=nil;return null==sexp&&(sexp=nil),lvar_name=sexp.$children()["$[]"](0),$eqeqeq("arg",$ret_or_1=sexp.$type())||$eqeqeq("optarg",$ret_or_1)?(arg_node=self.$s("lvar",lvar_name),$eqeq(lvar_name["$[]"](0),"_")&&($writer=[lvar_name,$rb_plus(same_arg_counter["$[]"](lvar_name),1)],$send(same_arg_counter,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($rb_gt(same_arg_counter["$[]"](lvar_name),1))&&(arg_node=self.$s("js_tmp",lvar_name+"_$"+same_arg_counter["$[]"](lvar_name)))),args["$<<"](arg_node)):$eqeqeq("restarg",$ret_or_1)?(arg_node=$truthy(lvar_name)?self.$s("lvar",lvar_name):self.$s("js_tmp","$rest_arg"),args["$<<"](self.$s("splat",arg_node))):$eqeqeq("kwarg",$ret_or_1)||$eqeqeq("kwoptarg",$ret_or_1)?(key_name=sexp.$meta()["$[]"]("arg_name"),kwargs["$<<"](self.$s("pair",self.$s("sym",key_name),self.$s("lvar",lvar_name)))):$eqeqeq("kwrestarg",$ret_or_1)?(arg_node=$truthy(lvar_name)?self.$s("lvar",lvar_name):self.$s("js_tmp","$kw_rest_arg"),kwargs["$<<"](self.$s("kwsplat",arg_node))):nil}),{$$arity:1,$$s:this}),$truthy(kwargs["$empty?"]())||args["$<<"]($send(this,"s",["hash"].concat($to_a(kwargs)))),args}),0),$def(self,"$block_name",(function(){var $ret_or_1;return $eqeqeq($$$($$$($$("Opal"),"Nodes"),"IterNode"),$ret_or_1=this.$def_scope())||$eqeqeq($$$($$$($$("Opal"),"Nodes"),"DefNode"),$ret_or_1)?this.$def_scope().$block_name():this.$raise("Don't know what to do with super in the scope "+this.$def_scope())}),0)}($nesting[0],$$("SuperNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/version"]=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$const_set=Opal.const_set;return function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return $const_set($nesting[0],"VERSION","1.5.0.dev")}($nesting[0],$nesting)},Opal.modules["opal/nodes/top"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def;return Opal.add_stubs("require,handle,children,top_scope=,compiler,-,[],meta,sexp,dynamic_cache_result=,push,version_comment,in_scope,==,body,s,line,use_strict?,stmt,stmts,is_a?,eval?,add_temp,add_used_helpers,to_vars,scope,compile_method_stubs,compile_irb_vars,compile_end_construct,opening,closing,await_encountered,requirable?,unshift,inspect,module_name,file,esm?,returns,irb?,each,to_a,helpers,method_missing?,method_calls,join,map,to_proc,empty?,eof_content"),self.$require("pathname"),self.$require("opal/version"),self.$require("opal/nodes/scope"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"TopNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$handle("top"),self.$children("body"),$def(self,"$compile",(function(){var $writer=nil;return $writer=[this],$send(this.$compiler(),"top_scope=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(this.$sexp().$meta()["$[]"]("dynamic_cache_result"))&&($writer=[!0],$send(this.$compiler(),"dynamic_cache_result=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),this.$push(this.$version_comment()),$send(this,"in_scope",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s,body_code=nil;return null==self.define_nesting&&(self.define_nesting=nil),null==self.define_self&&(self.define_self=nil),null==self.define_relative_access&&(self.define_relative_access=nil),null==self.define_absolute_const&&(self.define_absolute_const=nil),$eqeq(self.$body(),self.$s("nil"))?self.$line("return Opal.nil;"):($truthy(self.$compiler()["$use_strict?"]())&&self.$line('"use strict";'),body_code=self.$stmt(self.$stmts()),$truthy(body_code["$is_a?"]($$("Array")))||(body_code=[body_code]),$truthy(self.$compiler()["$eval?"]())?$truthy(self.define_nesting)&&self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):($truthy(self.define_self)&&self.$add_temp("self = Opal.top"),$truthy(self.define_nesting)&&self.$add_temp("$nesting = []")),$truthy(self.define_relative_access)&&self.$add_temp("$$ = Opal.$r($nesting)"),self.$add_temp("nil = Opal.nil"),$truthy(self.define_absolute_const)&&self.$add_temp("$$$ = Opal.$$$"),self.$add_used_helpers(),self.$line(self.$scope().$to_vars()),self.$compile_method_stubs(),self.$compile_irb_vars(),self.$compile_end_construct(),self.$line(body_code))}),{$$arity:0,$$s:this}),this.$opening(),this.$closing()}),0),$def(self,"$opening",(function(){var async_prefix=nil;return $truthy(this.$await_encountered())&&(async_prefix="async "),$truthy(this.$compiler()["$requirable?"]())?this.$unshift("Opal.modules["+$$$($$("Opal"),"Compiler").$module_name(this.$compiler().$file()).$inspect()+"] = "+async_prefix+"function(Opal) {"):$truthy(this.$compiler()["$eval?"]())?this.$unshift("("+async_prefix+"function(Opal, self) {"):$truthy(this.$compiler()["$esm?"]())?this.$unshift("export default Opal.queue("+async_prefix+"function(Opal) {"):this.$unshift("Opal.queue("+async_prefix+"function(Opal) {")}),0),$def(self,"$closing",(function(){return $truthy(this.$compiler()["$requirable?"]())?this.$line("};\n"):$truthy(this.$compiler()["$eval?"]())?this.$line("})(Opal, self);"):this.$line("});\n")}),0),$def(self,"$stmts",(function(){return this.$compiler().$returns(this.$body())}),0),$def(self,"$absolute_const",(function(){return this.define_absolute_const=!0,"$$$"}),0),$def(self,"$compile_irb_vars",(function(){return $truthy(this.$compiler()["$irb?"]())?this.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):nil}),0),$def(self,"$add_used_helpers",(function(){return $send(this.$compiler().$helpers().$to_a(),"each",[],(function $$2(h){return null==h&&(h=nil),(null==$$2.$$s?this:$$2.$$s).$add_temp("$"+h+" = Opal."+h)}),{$$arity:1,$$s:this})}),0),$def(self,"$compile_method_stubs",(function(){var calls=nil,stubs=nil;return $truthy(this.$compiler()["$method_missing?"]())?(calls=this.$compiler().$method_calls(),stubs=$send(calls.$to_a(),"map",[],"to_s".$to_proc()).$join(","),$truthy(stubs["$empty?"]())?nil:this.$line("Opal.add_stubs('"+stubs+"');")):nil}),0),$def(self,"$compile_end_construct",(function(){var content=nil;return $truthy(content=this.$compiler().$eof_content())?(this.$line("var $__END__ = Opal.Object.$new();"),this.$line("$__END__.$read = function() { return "+content.$inspect()+"; };")):nil}),0),$def(self,"$version_comment",(function(){return"/* Generated by Opal "+$$$($$("Opal"),"VERSION")+" */"}),0)}($nesting[0],$$("ScopeNode"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/while"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def;return Opal.add_stubs("require,handle,children,js_truthy,test,with_temp,in_while,compiler,wrap_in_closure?,[]=,while_loop,-,indent,stmt,body,uses_redo?,compile_with_redo,compile_without_redo,await_encountered,scope,wrap,private,push,compile_while,while_open,while_close,line,[],expr?,recv?"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"WhileNode");self.$handle("while"),self.$children("test","body"),$def(self,"$compile",(function(){var test_code;return test_code=this.$js_truthy(this.$test()),$send(this,"with_temp",[],(function $$1(redo_var){var self=null==$$1.$$s?this:$$1.$$s;return null==redo_var&&(redo_var=nil),$send(self.$compiler(),"in_while",[],(function $$2(){var body_code,self=null==$$2.$$s?this:$$2.$$s,$writer=nil;return $truthy(self["$wrap_in_closure?"]())&&($writer=["closure",!0],$send(self.$while_loop(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$writer=["redo_var",redo_var],$send(self.$while_loop(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],body_code=$send(self,"indent",[],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return self.$stmt(self.$body())}),{$$arity:0,$$s:self}),$truthy(self["$uses_redo?"]())?self.$compile_with_redo(test_code,body_code,redo_var):self.$compile_without_redo(test_code,body_code)}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:this}),$truthy(this["$wrap_in_closure?"]())?$truthy(this.$scope().$await_encountered())?this.$wrap("(await (async function() {","; return nil; })())"):this.$wrap("(function() {","; return nil; })()"):nil}),0),self.$private(),$def(self,"$compile_with_redo",(function(test_code,body_code,redo_var){return this.$push(redo_var+" = false; "),this.$compile_while([redo_var," || ",test_code],[redo_var+" = false;",body_code])}),3),$def(self,"$compile_without_redo",(function(test_code,body_code){return this.$compile_while([test_code],[body_code])}),2),$def(self,"$compile_while",(function(test_code,body_code){return $send(this,"push",[this.$while_open()].concat($to_a(test_code)).concat([this.$while_close()])),$send(this,"indent",[],(function $$4(){return $send(null==$$4.$$s?this:$$4.$$s,"line",$to_a(body_code))}),{$$arity:0,$$s:this}),this.$line("}")}),2),$def(self,"$while_open",(function(){return"while ("}),0),$def(self,"$while_close",(function(){return") {"}),0),$def(self,"$uses_redo?",(function(){return this.$while_loop()["$[]"]("use_redo")}),0),$def(self,"$wrap_in_closure?",(function(){var $ret_or_1;return $truthy($ret_or_1=this["$expr?"]())?$ret_or_1:this["$recv?"]()}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"UntilNode");self.$handle("until"),self.$private(),$def(self,"$while_open",(function(){return"while (!("}),0),$def(self,"$while_close",(function(){return")) {"}),0)}($nesting[0],$$("WhileNode")),function($base,$super){var self=$klass($base,$super,"WhilePostNode");self.$handle("while_post"),self.$private(),$def(self,"$compile_while",(function(test_code,body_code){return this.$push("do {"),$send(this,"indent",[],(function $$7(){return $send(null==$$7.$$s?this:$$7.$$s,"line",$to_a(body_code))}),{$$arity:0,$$s:this}),$send(this,"line",["} ",this.$while_open()].concat($to_a(test_code)).concat([this.$while_close()]))}),2),$def(self,"$while_close",(function(){return");"}),0)}($nesting[0],$$("WhileNode")),function($base,$super){var self=$klass($base,$super,"UntilPostNode");return self.$handle("until_post"),self.$private(),$def(self,"$while_open",(function(){return"while(!("}),0),$def(self,"$while_close",(function(){return"));"}),0)}($nesting[0],$$("WhilePostNode"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/hash"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$def=Opal.def,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$to_ary=Opal.to_ary,$hash2=Opal.hash2,$rb_minus=Opal.rb_minus;return Opal.add_stubs("require,handle,attr_accessor,each,children,===,type,<<,[],all?,keys,include?,has_kwsplat,compile_merge,simple_keys?,compile_hash2,compile_hash,helper,==,empty?,expr,s,each_with_index,push,wrap,times,size,inspect,to_s,values,[]=,-,join,value"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"HashNode");self.$handle("hash"),self.$attr_accessor("has_kwsplat","keys","values"),$def(self,"$initialize",(function $$initialize($a){var $rest_arg,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,$rest_arg=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a($rest_arg),$yield),self.has_kwsplat=!1,self.keys=[],self.values=[],$send(self.$children(),"each",[],(function $$1(child){var $ret_or_1,self=null==$$1.$$s?this:$$1.$$s;return null==self.keys&&(self.keys=nil),null==self.values&&(self.values=nil),null==child&&(child=nil),$eqeqeq("kwsplat",$ret_or_1=child.$type())?self.has_kwsplat=!0:$eqeqeq("pair",$ret_or_1)?(self.keys["$<<"](child.$children()["$[]"](0)),self.values["$<<"](child.$children()["$[]"](1))):nil}),{$$arity:1,$$s:self})}),-1),$def(self,"$simple_keys?",(function(){return $send(this.$keys(),"all?",[],(function(key){return null==key&&(key=nil),["sym","str"]["$include?"](key.$type())}),1)}),0),$def(self,"$compile",(function(){return $truthy(this.$has_kwsplat())?this.$compile_merge():$truthy(this["$simple_keys?"]())?this.$compile_hash2():this.$compile_hash()}),0),$def(self,"$compile_merge",(function(){var $a,result=nil,seq=nil;return this.$helper("hash"),result=($a=[[],[]])[0],seq=$a[1],$send(this.$children(),"each",[],(function $$4(child){var self=null==$$4.$$s?this:$$4.$$s;return null==child&&(child=nil),$eqeq(child.$type(),"kwsplat")?($truthy(seq["$empty?"]())||result["$<<"](self.$expr($send(self,"s",["hash"].concat($to_a(seq))))),result["$<<"](self.$expr(child)),seq=[]):seq["$<<"](child)}),{$$arity:1,$$s:this}),$truthy(seq["$empty?"]())||result["$<<"](this.$expr($send(this,"s",["hash"].concat($to_a(seq))))),$send(result,"each_with_index",[],(function $$5(fragment,idx){var self=null==$$5.$$s?this:$$5.$$s;return null==fragment&&(fragment=nil),null==idx&&(idx=nil),$eqeq(idx,0)?self.$push(fragment):self.$push(".$merge(",fragment,")")}),{$$arity:2,$$s:this})}),0),$def(self,"$compile_hash",(function(){return this.$helper("hash"),$send(this.$children(),"each_with_index",[],(function $$6(pair,idx){var $a,$b,key,value,self=null==$$6.$$s?this:$$6.$$s;return null==pair&&(pair=nil),null==idx&&(idx=nil),$b=pair.$children(),key=null==($a=$to_ary($b))[0]?nil:$a[0],value=null==$a[1]?nil:$a[1],$eqeq(idx,0)||self.$push(", "),self.$push(self.$expr(key),", ",self.$expr(value))}),{$$arity:2,$$s:this}),this.$wrap("$hash(",")")}),0),$def(self,"$compile_hash2",(function(){var $a,hash_obj=nil,hash_keys=nil;return $a=[$hash2([],{}),[]],hash_obj=$a[0],hash_keys=$a[1],this.$helper("hash2"),$send(this.$keys().$size(),"times",[],(function $$7(idx){var key,$writer,self=null==$$7.$$s?this:$$7.$$s;return null==idx&&(idx=nil),key=self.$keys()["$[]"](idx).$children()["$[]"](0).$to_s().$inspect(),$truthy(hash_obj["$include?"](key))||hash_keys["$<<"](key),$writer=[key,self.$expr(self.$values()["$[]"](idx))],$send(hash_obj,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$send(hash_keys,"each_with_index",[],(function $$8(key,idx){var self=null==$$8.$$s?this:$$8.$$s;return null==key&&(key=nil),null==idx&&(idx=nil),$eqeq(idx,0)||self.$push(", "),self.$push(key+": "),self.$push(hash_obj["$[]"](key))}),{$$arity:2,$$s:this}),this.$wrap("$hash2(["+hash_keys.$join(", ")+"], {","})")}),0)}($nesting[0],$$("Base")),function($base,$super){var self=$klass($base,$super,"KwSplatNode");return self.$handle("kwsplat"),self.$children("value"),$def(self,"$compile",(function(){return this.$push("Opal.to_hash(",this.$expr(this.$value()),")")}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/array"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def;return Opal.add_stubs("require,handle,empty?,children,push,each,==,type,expr,<<,fragment"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ArrayNode");return self.$handle("array"),$def(self,"$compile",(function(){var $a,code=nil,work=nil,join=nil;return $truthy(this.$children()["$empty?"]())?this.$push("[]"):(code=($a=[[],[]])[0],work=$a[1],$send(this.$children(),"each",[],(function $$1(child){var splat,part,self=null==$$1.$$s?this:$$1.$$s;return null==child&&(child=nil),splat=child.$type()["$=="]("splat"),part=self.$expr(child),$truthy(splat)?($truthy(work["$empty?"]())?$truthy(code["$empty?"]())?code["$<<"](self.$fragment("[].concat("))["$<<"](part)["$<<"](self.$fragment(")")):code["$<<"](self.$fragment(".concat("))["$<<"](part)["$<<"](self.$fragment(")")):($truthy(code["$empty?"]())?code["$<<"](self.$fragment("["))["$<<"](work)["$<<"](self.$fragment("]")):code["$<<"](self.$fragment(".concat(["))["$<<"](work)["$<<"](self.$fragment("])")),code["$<<"](self.$fragment(".concat("))["$<<"](part)["$<<"](self.$fragment(")"))),work=[]):($truthy(work["$empty?"]())||work["$<<"](self.$fragment(", ")),work["$<<"](part))}),{$$arity:1,$$s:this}),$truthy(work["$empty?"]())||(join=[this.$fragment("["),work,this.$fragment("]")],$truthy(code["$empty?"]())?code=join:code.$push([this.$fragment(".concat("),join,this.$fragment(")")])),this.$push(code))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/defined"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$eqeqeq=Opal.eqeqeq,$eqeq=Opal.eqeq,$def=Opal.def,$truthy=Opal.truthy,$to_a=Opal.to_a,$slice=Opal.slice,$send=Opal.send,$range=Opal.range;return Opal.add_stubs("require,handle,children,===,type,value,push,inspect,to_s,==,[],size,compile_defined_send,wrap,compile_defined_ivar,compile_defined_super,compile_defined_yield,compile_defined_xstr,compile_defined_const,compile_defined_cvar,compile_defined_gvar,compile_defined_back_ref,compile_defined_nth_ref,compile_defined_array,respond_to?,__send__,new_temp,scope,expr,wrap_with_try_catch,mid_to_jsid,compile_defined,compile_send_recv_doesnt_raise,self,each,s,uses_block!,block_name,find_parent_def,nil?,relative_access,absolute_const,top_scope,class_variable_owner,helper,include?,each_with_index"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"DefinedNode");return self.$handle("defined?"),self.$children("value"),$def(self,"$compile",(function(){var $ret_or_1;return $eqeqeq("self",$ret_or_1=this.$value().$type())||$eqeqeq("nil",$ret_or_1)||$eqeqeq("false",$ret_or_1)||$eqeqeq("true",$ret_or_1)?this.$push(this.$value().$type().$to_s().$inspect()):$eqeqeq("lvasgn",$ret_or_1)||$eqeqeq("ivasgn",$ret_or_1)||$eqeqeq("gvasgn",$ret_or_1)||$eqeqeq("cvasgn",$ret_or_1)||$eqeqeq("casgn",$ret_or_1)||$eqeqeq("op_asgn",$ret_or_1)||$eqeqeq("or_asgn",$ret_or_1)||$eqeqeq("and_asgn",$ret_or_1)?this.$push("'assignment'"):$eqeqeq("lvar",$ret_or_1)?this.$push("'local-variable'"):$eqeqeq("begin",$ret_or_1)?$eqeq(this.$value().$children().$size(),1)&&$eqeq(this.$value().$children()["$[]"](0).$type(),"masgn")?this.$push("'assignment'"):this.$push("'expression'"):$eqeqeq("send",$ret_or_1)?(this.$compile_defined_send(this.$value()),this.$wrap("("," ? 'method' : nil)")):$eqeqeq("ivar",$ret_or_1)?(this.$compile_defined_ivar(this.$value()),this.$wrap("("," ? 'instance-variable' : nil)")):$eqeqeq("zsuper",$ret_or_1)||$eqeqeq("super",$ret_or_1)?this.$compile_defined_super():$eqeqeq("yield",$ret_or_1)?(this.$compile_defined_yield(),this.$wrap("("," ? 'yield' : nil)")):$eqeqeq("xstr",$ret_or_1)?this.$compile_defined_xstr(this.$value()):$eqeqeq("const",$ret_or_1)?(this.$compile_defined_const(this.$value()),this.$wrap("("," ? 'constant' : nil)")):$eqeqeq("cvar",$ret_or_1)?(this.$compile_defined_cvar(this.$value()),this.$wrap("("," ? 'class variable' : nil)")):$eqeqeq("gvar",$ret_or_1)?(this.$compile_defined_gvar(this.$value()),this.$wrap("("," ? 'global-variable' : nil)")):$eqeqeq("back_ref",$ret_or_1)?(this.$compile_defined_back_ref(),this.$wrap("("," ? 'global-variable' : nil)")):$eqeqeq("nth_ref",$ret_or_1)?(this.$compile_defined_nth_ref(),this.$wrap("("," ? 'global-variable' : nil)")):$eqeqeq("array",$ret_or_1)?(this.$compile_defined_array(this.$value()),this.$wrap("("," ? 'expression' : nil)")):this.$push("'expression'")}),0),$def(self,"$compile_defined",(function(node){var type,node_tmp=nil;return type=node.$type(),$truthy(this["$respond_to?"]("compile_defined_"+type))?this.$__send__("compile_defined_"+type,node):(node_tmp=this.$scope().$new_temp(),this.$push("("+node_tmp+" = ",this.$expr(node),")"),node_tmp)}),1),$def(self,"$wrap_with_try_catch",(function(code){var returning_tmp;return returning_tmp=this.$scope().$new_temp(),this.$push("("+returning_tmp+" = (function() { try {"),this.$push(" return "+code+";"),this.$push("} catch ($err) {"),this.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),this.$push(" try {"),this.$push(" return false;"),this.$push(" } finally { Opal.pop_exception() }"),this.$push(" } else { throw $err; }"),this.$push("}})())"),returning_tmp}),1),$def(self,"$compile_send_recv_doesnt_raise",(function(recv_code){return this.$wrap_with_try_catch(recv_code)}),1),$def(self,"$compile_defined_send",(function(node){var $a,args,mid,recv_value_tmp,meth_tmp,recv=nil,method_name=nil,recv_code=nil,recv_tmp=nil;return recv=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],method_name=null==$a[1]?nil:$a[1],args=$slice.call($a,2),mid=this.$mid_to_jsid(method_name.$to_s()),$truthy(recv)?(recv_code=this.$compile_defined(recv),this.$push(" && "),$eqeq(recv.$type(),"send")&&(recv_code=this.$compile_send_recv_doesnt_raise(recv_code),this.$push(" && ")),recv_tmp=this.$scope().$new_temp(),this.$push("("+recv_tmp+" = ",recv_code,", "+recv_tmp+") && ")):recv_tmp=this.$scope().$self(),recv_value_tmp=this.$scope().$new_temp(),this.$push("("+recv_value_tmp+" = "+recv_tmp+") && "),meth_tmp=this.$scope().$new_temp(),this.$push("((("+meth_tmp+" = "+recv_value_tmp+mid+") && !"+meth_tmp+".$$stub)"),this.$push(" || "+recv_value_tmp+"['$respond_to_missing?']('"+method_name+"'))"),$send(args,"each",[],(function $$1(arg){var self=null==$$1.$$s?this:$$1.$$s;return null==arg&&(arg=nil),$eqeqeq("block_pass",arg.$type())?nil:(self.$push(" && "),self.$compile_defined(arg))}),{$$arity:1,$$s:this}),this.$wrap("(",")"),meth_tmp+"()"}),1),$def(self,"$compile_defined_ivar",(function(node){var name,tmp;return name=node.$children()["$[]"](0).$to_s()["$[]"]($range(1,-1,!1)),tmp=this.$scope().$new_temp(),this.$push("("+tmp+" = "+this.$scope().$self()+"['"+name+"'], "+tmp+" != null && "+tmp+" !== nil)"),tmp}),1),$def(self,"$compile_defined_super",(function(){return this.$push(this.$expr(this.$s("defined_super")))}),0),$def(self,"$compile_defined_yield",(function(){var block_name,$ret_or_1;return this.$scope()["$uses_block!"](),block_name=$truthy($ret_or_1=this.$scope().$block_name())?$ret_or_1:this.$scope().$find_parent_def().$block_name(),this.$push("("+block_name+" != null && "+block_name+" !== nil)"),block_name}),0),$def(self,"$compile_defined_xstr",(function(node){return this.$push("(typeof(",this.$expr(node),') !== "undefined")')}),1),$def(self,"$compile_defined_const",(function(node){var $a,const_name,const_tmp,const_scope=nil,const_scope_tmp=nil;return const_scope=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],const_name=null==$a[1]?nil:$a[1],const_tmp=this.$scope().$new_temp(),$truthy(const_scope["$nil?"]())?this.$push("("+const_tmp+" = "+this.$scope().$relative_access()+"('"+const_name+"', 'skip_raise'))"):$eqeq(const_scope,this.$s("cbase"))?this.$push("("+const_tmp+" = "+this.$top_scope().$absolute_const()+"('::', '"+const_name+"', 'skip_raise'))"):(const_scope_tmp=this.$compile_defined(const_scope),this.$push(" && ("+const_tmp+" = "+this.$top_scope().$absolute_const()+"("+const_scope_tmp+", '"+const_name+"', 'skip_raise'))")),const_tmp}),1),$def(self,"$compile_defined_cvar",(function(node){var $a,cvar_name,cvar_tmp;return cvar_name=null==($a=[].concat($to_a(node)))[0]?nil:$a[0],null==$a[1]?nil:$a[1],cvar_tmp=this.$scope().$new_temp(),this.$push("("+cvar_tmp+" = "+this.$class_variable_owner()+".$$cvars['"+cvar_name+"'], "+cvar_tmp+" != null)"),cvar_tmp}),1),$def(self,"$compile_defined_gvar",(function(node){var gvar_temp,name=nil;return this.$helper("gvars"),name=node.$children()["$[]"](0).$to_s()["$[]"]($range(1,-1,!1)),gvar_temp=this.$scope().$new_temp(),$truthy(["~","!"]["$include?"](name))?this.$push("("+gvar_temp+" = ",this.$expr(node)," || true)"):this.$push("("+gvar_temp+" = $gvars["+name.$inspect()+"], "+gvar_temp+" != null)"),gvar_temp}),1),$def(self,"$compile_defined_back_ref",(function(){var back_ref_temp;return this.$helper("gvars"),back_ref_temp=this.$scope().$new_temp(),this.$push("("+back_ref_temp+" = $gvars['~'], "+back_ref_temp+" != null && "+back_ref_temp+" !== nil)"),back_ref_temp}),0),$def(self,"$compile_defined_nth_ref",(function(){var nth_ref_tmp;return this.$helper("gvars"),nth_ref_tmp=this.$scope().$new_temp(),this.$push("("+nth_ref_tmp+" = $gvars['~'], "+nth_ref_tmp+" != null && "+nth_ref_tmp+" != nil)"),nth_ref_tmp}),0),$def(self,"$compile_defined_array",(function(node){return $send(node.$children(),"each_with_index",[],(function $$2(child,idx){var self=null==$$2.$$s?this:$$2.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),$eqeq(idx,0)||self.$push(" && "),self.$compile_defined(child)}),{$$arity:2,$$s:this})}),1)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/masgn"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def,$rb_ge=Opal.rb_ge,$not=Opal.not,$rb_plus=Opal.rb_plus;return Opal.add_stubs("require,freeze,handle,children,new_temp,scope,==,type,rhs,push,expr,any?,size,compile_masgn,lhs,helper,queue_temp,take_while,!=,drop,each_with_index,compile_assignment,empty?,shift,[],<<,dup,s,>=,!,updated,include?,+,last,raise"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"MassAssignNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),self.$handle("masgn"),self.$children("lhs","rhs"),$def(self,"$compile",(function(){var array,rhs_len=nil,retval=nil;return array=this.$scope().$new_temp(),$eqeq(this.$rhs().$type(),"array")?(this.$push(array+" = ",this.$expr(this.$rhs())),rhs_len=$truthy($send(this.$rhs().$children(),"any?",[],(function(c){return null==c&&(c=nil),c.$type()["$=="]("splat")}),1))?nil:this.$rhs().$children().$size(),this.$compile_masgn(this.$lhs().$children(),array,rhs_len),this.$push(", "+array)):(this.$helper("to_ary"),retval=this.$scope().$new_temp(),this.$push(retval+" = ",this.$expr(this.$rhs())),this.$push(", "+array+" = $to_ary("+retval+")"),this.$compile_masgn(this.$lhs().$children(),array),this.$push(", "+retval),this.$scope().$queue_temp(retval)),this.$scope().$queue_temp(array)}),0),$def(self,"$compile_masgn",(function(lhs_items,array,len){var pre_splat=nil,post_splat=nil,splat=nil,part=nil,tmp=nil;return null==len&&(len=nil),pre_splat=$send(lhs_items,"take_while",[],(function(child){return null==child&&(child=nil),child.$type()["$!="]("splat")}),1),post_splat=lhs_items.$drop(pre_splat.$size()),$send(pre_splat,"each_with_index",[],(function $$3(child,idx){return null==child&&(child=nil),null==idx&&(idx=nil),(null==$$3.$$s?this:$$3.$$s).$compile_assignment(child,array,idx,len)}),{$$arity:2,$$s:this}),$truthy(post_splat["$empty?"]())?nil:(splat=post_splat.$shift(),$truthy(post_splat["$empty?"]())?$truthy(part=splat.$children()["$[]"](0))?(this.$helper("slice"),part=part.$dup()["$<<"](this.$s("js_tmp","$slice.call("+array+", "+pre_splat.$size()+")")),this.$push(", "),this.$push(this.$expr(part))):nil:(tmp=this.$scope().$new_temp(),this.$push(", "+tmp+" = "+array+".length - "+post_splat.$size()),this.$push(", "+tmp+" = ("+tmp+" < "+pre_splat.$size()+") ? "+pre_splat.$size()+" : "+tmp),$truthy(part=splat.$children()["$[]"](0))&&(this.$helper("slice"),part=part.$dup()["$<<"](this.$s("js_tmp","$slice.call("+array+", "+pre_splat.$size()+", "+tmp+")")),this.$push(", "),this.$push(this.$expr(part))),$send(post_splat,"each_with_index",[],(function $$4(child,idx){var self=null==$$4.$$s?this:$$4.$$s;return null==child&&(child=nil),null==idx&&(idx=nil),$eqeq(idx,0)?self.$compile_assignment(child,array,tmp):self.$compile_assignment(child,array,tmp+" + "+idx)}),{$$arity:2,$$s:this}),this.$scope().$queue_temp(tmp)))}),-3),$def(self,"$compile_assignment",(function(child,array,idx,len){var assign=nil,part=nil,tmp=nil;if(null==len&&(len=nil),assign=$not(len)||$truthy($rb_ge(idx,len))?this.$s("js_tmp","("+array+"["+idx+"] == null ? nil : "+array+"["+idx+"])"):this.$s("js_tmp",array+"["+idx+"]"),part=child.$updated(),$truthy($$("SIMPLE_ASSIGNMENT")["$include?"](child.$type())))part=part.$updated(nil,$rb_plus(part.$children(),[assign]));else if($eqeq(child.$type(),"send"))part=part.$updated(nil,$rb_plus(part.$children(),[assign]));else if($eqeq(child.$type(),"attrasgn"))part.$last()["$<<"](assign);else{if($eqeq(child.$type(),"mlhs"))return this.$helper("to_ary"),tmp=this.$scope().$new_temp(),this.$push(", ("+tmp+" = $to_ary("+assign.$children()["$[]"](0)+")"),this.$compile_masgn(child.$children(),tmp),this.$push(")"),this.$scope().$queue_temp(tmp),nil;this.$raise("Bad child node in masgn LHS: "+child+". LHS: "+this.$lhs())}return this.$push(", "),this.$push(this.$expr(part))}),-4)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/arglist"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$to_a=Opal.to_a,$def=Opal.def;return Opal.add_stubs("require,handle,each,children,==,type,expr,empty?,<<,fragment,push"),self.$require("opal/nodes/base"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"ArglistNode");return self.$handle("arglist"),$def(self,"$compile",(function(){var $a,code=nil,work=nil,join=nil;return code=($a=[[],[]])[0],work=$a[1],$send(this.$children(),"each",[],(function $$1(current){var splat,arg,self=null==$$1.$$s?this:$$1.$$s;return null==current&&(current=nil),splat=current.$type()["$=="]("splat"),arg=self.$expr(current),$truthy(splat)?($truthy(work["$empty?"]())?$truthy(code["$empty?"]())?code["$<<"](arg):code["$<<"](self.$fragment(".concat("))["$<<"](arg)["$<<"](self.$fragment(")")):($truthy(code["$empty?"]())?code["$<<"](self.$fragment("["))["$<<"](work)["$<<"](self.$fragment("]")):code["$<<"](self.$fragment(".concat(["))["$<<"](work)["$<<"](self.$fragment("])")),code["$<<"](self.$fragment(".concat("))["$<<"](arg)["$<<"](self.$fragment(")"))),work=[]):($truthy(work["$empty?"]())||work["$<<"](self.$fragment(", ")),work["$<<"](arg))}),{$$arity:1,$$s:this}),$truthy(work["$empty?"]())||(join=work,$truthy(code["$empty?"]())?code=join:code["$<<"](this.$fragment(".concat(["))["$<<"](join)["$<<"](this.$fragment("])"))),$send(this,"push",$to_a(code))}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/x_string"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$def=Opal.def,$defs=Opal.defs,$lambda=Opal.lambda,$eqeqeq=Opal.eqeqeq,$eqeq=Opal.eqeq,$not=Opal.not,$range=Opal.range;return Opal.add_stubs("handle,unpack_return,children,strip_empty_children,single_line?,compile_single_line,each,compile_child,recv?,wrap,push,==,size,none?,type,end_with?,source,expression,loc,dup,nil?,empty?,rstrip,any?,[],first,shift,last,pop,private,===,include?,self,scope,new,expr,raise,s,strip,=~,!,extract_last_value,expr?,warning,compiler,line"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"XStringNode"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.should_add_semicolon=$proto.returning=nil,self.$handle("xstr"),$def(self,"$compile",(function(){var unpacked_children,stripped_children;return this.should_add_semicolon=!1,unpacked_children=this.$unpack_return(this.$children()),stripped_children=$$("XStringNode").$strip_empty_children(unpacked_children),$truthy($$("XStringNode")["$single_line?"](stripped_children))?this.$compile_single_line(stripped_children):$send(unpacked_children,"each",[],(function $$1(c){return null==c&&(c=nil),(null==$$1.$$s?this:$$1.$$s).$compile_child(c)}),{$$arity:1,$$s:this}),$truthy(this["$recv?"]())&&this.$wrap("(",")"),$truthy(this.should_add_semicolon)?this.$push(";"):nil}),0),$defs(self,"$single_line?",(function(children){var $ret_or_1;return $truthy($ret_or_1=children.$size()["$=="](1))?$ret_or_1:$send(children,"none?",[],(function(c){var $ret_or_2;return null==c&&(c=nil),$truthy($ret_or_2=c.$type()["$=="]("str"))?c.$loc().$expression().$source()["$end_with?"]("\n"):$ret_or_2}),1)}),1),$defs(self,"$strip_empty_children",(function(children){var empty_line=nil,$ret_or_1=nil;for(children=children.$dup(),empty_line=$lambda((function(child){var $ret_or_1,$ret_or_2=nil;return null==child&&(child=nil),$truthy($ret_or_1=child["$nil?"]())?$ret_or_1:$truthy($ret_or_2=child.$type()["$=="]("str"))?child.$loc().$expression().$source().$rstrip()["$empty?"]():$ret_or_2}),1);$truthy($truthy($ret_or_1=children["$any?"]())?empty_line["$[]"](children.$first()):$ret_or_1);)children.$shift();for(;$truthy($truthy($ret_or_1=children["$any?"]())?empty_line["$[]"](children.$last()):$ret_or_1);)children.$pop();return children}),1),self.$private(),$def(self,"$compile_child",(function(child){var $ret_or_1,value=nil;return $eqeqeq("str",$ret_or_1=child.$type())?(value=child.$loc().$expression().$source(),$truthy(value["$include?"]("self"))&&this.$scope().$self(),this.$push($$("Fragment").$new(value,this.$scope(),child))):$eqeqeq("begin",$ret_or_1)||$eqeqeq("gvar",$ret_or_1)||$eqeqeq("ivar",$ret_or_1)||$eqeqeq("nil",$ret_or_1)?this.$push(this.$expr(child)):this.$raise("Unsupported xstr part: "+child.$type())}),1),$def(self,"$compile_single_line",(function(children){var single_child,has_embeded_return=nil,first_child=nil,$ret_or_1=nil,last_child=nil,last_value=nil;return has_embeded_return=!1,first_child=children.$shift(),single_child=children["$empty?"](),first_child=$truthy($ret_or_1=first_child)?$ret_or_1:this.$s("nil"),$eqeq(first_child.$type(),"str")&&(has_embeded_return=first_child.$loc().$expression().$source().$strip()["$=~"](/^return\b/)),$truthy(this.returning)&&$not(has_embeded_return)&&this.$push("return "),last_child=$truthy($ret_or_1=children.$pop())?$ret_or_1:first_child,$eqeq(last_child.$type(),"str")&&(last_value=this.$extract_last_value(last_child)),$truthy(single_child)||(this.should_add_semicolon=!1,this.$compile_child(first_child),$send(children,"each",[],(function $$5(c){return null==c&&(c=nil),(null==$$5.$$s?this:$$5.$$s).$compile_child(c)}),{$$arity:1,$$s:this})),$eqeq(last_child.$type(),"str")?this.$push($$("Fragment").$new(last_value,this.$scope(),last_child)):this.$compile_child(last_child)}),1),$def(self,"$extract_last_value",(function(last_child){var last_value=nil;return last_value=last_child.$loc().$expression().$source().$rstrip(),$truthy(last_value["$include?"]("self"))&&this.$scope().$self(),($truthy(this.returning)||$truthy(this["$expr?"]()))&&$truthy(last_value["$end_with?"](";"))&&(this.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",last_child.$line()),last_value=last_value["$[]"]($range(0,-2,!1))),$truthy(this.returning)&&(this.should_add_semicolon=!0),last_value}),1),$def(self,"$unpack_return",(function(children){var first_child=nil;return first_child=children.$first(),this.returning=!1,$eqeq(first_child.$type(),"js_return")&&(this.returning=!0,children=first_child.$children()),children}),1)}($nesting[0],$$("Base"),$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes/lambda"]=function(Opal){var self=Opal.top,$nesting=[],$module=(Opal.nil,Opal.module),$klass=Opal.klass,$send=Opal.send,$def=Opal.def;return Opal.add_stubs("require,handle,children,helper,defines_lambda,scope,push,expr,iter"),self.$require("opal/nodes/call"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var $nesting=[$module($base,"Nodes")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super){var self=$klass($base,$super,"LambdaNode");return self.$handle("lambda"),self.$children("iter"),$def(self,"$compile",(function(){return this.$helper("lambda"),$send(this.$scope(),"defines_lambda",[],(function $$1(){var self=null==$$1.$$s?this:$$1.$$s;return self.$push("$lambda(",self.$expr(self.$iter()),")")}),{$$arity:0,$$s:this})}),0)}($nesting[0],$$("Base"))}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal/nodes"]=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("require"),self.$require("opal/nodes/base"),self.$require("opal/nodes/literal"),self.$require("opal/nodes/variables"),self.$require("opal/nodes/constants"),self.$require("opal/nodes/call"),self.$require("opal/nodes/csend"),self.$require("opal/nodes/call_special"),self.$require("opal/nodes/module"),self.$require("opal/nodes/class"),self.$require("opal/nodes/singleton_class"),self.$require("opal/nodes/args"),self.$require("opal/nodes/args/arity_check"),self.$require("opal/nodes/iter"),self.$require("opal/nodes/def"),self.$require("opal/nodes/defs"),self.$require("opal/nodes/if"),self.$require("opal/nodes/logic"),self.$require("opal/nodes/definitions"),self.$require("opal/nodes/yield"),self.$require("opal/nodes/rescue"),self.$require("opal/nodes/super"),self.$require("opal/nodes/top"),self.$require("opal/nodes/while"),self.$require("opal/nodes/hash"),self.$require("opal/nodes/array"),self.$require("opal/nodes/defined"),self.$require("opal/nodes/masgn"),self.$require("opal/nodes/arglist"),self.$require("opal/nodes/x_string"),self.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$eqeq=Opal.eqeq,$range=Opal.range,$to_ary=Opal.to_ary;return Opal.add_stubs("empty?,[],last_token_position,drop_while,lines,==,join,private,last,end_pos"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"EofContent"),$nesting=[self].concat($parent_nesting),$proto=self.$$prototype;return $proto.tokens=$proto.source=nil,$const_set($nesting[0],"DATA_SEPARATOR","__END__\n"),$def(self,"$initialize",(function(tokens,source){return this.tokens=tokens,this.source=source}),2),$def(self,"$eof",(function(){var eof_content=nil,$ret_or_1=nil;return $truthy(this.tokens["$empty?"]())?nil:(eof_content=this.source["$[]"](Opal.Range.$new(this.$last_token_position(),-1,!1)),$truthy(eof_content)?(eof_content=$send(eof_content.$lines(),"drop_while",[],(function(line){return null==line&&(line=nil),line["$=="]("\n")}),1),$eqeq(eof_content["$[]"](0),"__END__\n")?(eof_content=$truthy($ret_or_1=eof_content["$[]"]($range(1,-1,!1)))?$ret_or_1:[]).$join():$eqeq(eof_content,["__END__"])?"":nil):nil)}),0),self.$private(),$def(self,"$last_token_position",(function(){var $a,$b,last_token_info;return $b=this.tokens.$last(),null==($a=$to_ary($b))[0]?nil:$a[0],last_token_info=null==$a[1]?nil:$a[1],null==($a=$to_ary($b=last_token_info))[0]?nil:$a[0],(null==$a[1]?nil:$a[1]).$end_pos()}),0)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/errors"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$defs=Opal.defs,$rb_plus=Opal.rb_plus,$alias=Opal.alias;return Opal.add_stubs("attr_reader,attr_accessor,new,respond_to?,location,location=,-,diagnostic,diagnostic=,to_a,backtrace,unshift,to_s,set_backtrace,path,lineno,+,label,line,lineno=,source_line,label=,expression"),function($base,$parent_nesting){var self=$module($base,"Opal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $klass($nesting[0],$$("StandardError"),"Error"),function($base,$super){var self=$klass($base,$super,"GemNotFound");self.$attr_reader("gem_name"),$def(self,"$initialize",(function $$initialize(gem_name){return delete $$initialize.$$p,this.gem_name=gem_name,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",["can't find gem "+gem_name],null)}),1)}($nesting[0],$$("Error")),function($base,$super){$klass($base,$super,"CompilationError").$attr_accessor("location")}($nesting[0],$$("Error")),$klass($nesting[0],$$("CompilationError"),"ParsingError"),$klass($nesting[0],$$("ParsingError"),"RewritingError"),function($base,$super){$klass($base,$super,"SyntaxError").$attr_accessor("location")}($nesting[0],$$$("SyntaxError")),$defs(self,"$opal_location_from_error",(function(error){var opal_location,$writer=nil;return opal_location=$$("OpalBacktraceLocation").$new(),$truthy(error["$respond_to?"]("location"))&&($writer=[error.$location()],$send(opal_location,"location=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$truthy(error["$respond_to?"]("diagnostic"))&&($writer=[error.$diagnostic()],$send(opal_location,"diagnostic=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),opal_location}),1),$defs(self,"$add_opal_location_to_error",(function(opal_location,error){var backtrace=nil;return(backtrace=error.$backtrace().$to_a()).$unshift(opal_location.$to_s()),error.$set_backtrace(backtrace),error}),2),function($base,$super){var self=$klass($base,null,"OpalBacktraceLocation");return self.$attr_accessor("path","lineno","label"),$def(self,"$initialize",(function(path,lineno,label){var $a;return null==path&&(path=nil),null==lineno&&(lineno=nil),null==label&&(label=nil),$a=[path,lineno,label],this.path=$a[0],this.lineno=$a[1],this.label=$a[2],$a}),-1),$def(self,"$to_s",(function(){var string=nil;return string=this.$path(),$truthy(this.$lineno())&&(string=$rb_plus(string,":"+this.$lineno())),string=$rb_plus(string,":in "),string=$truthy(this.$label())?$rb_plus(string,"`"+this.$label()+"'"):$rb_plus(string,"unknown")}),0),$alias(self,"line","lineno"),$def(self,"$diagnostic=",(function(diagnostic){var $writer;return $truthy(diagnostic)?($writer=[diagnostic.$location()],$send(this,"location=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil}),1),$def(self,"$location=",(function(location){var $writer=nil;return $truthy(location)?($writer=[location.$line()],$send(this,"lineno=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(location["$respond_to?"]("source_line"))?($writer=[location.$source_line()],$send(this,"label=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):$truthy(location["$respond_to?"]("expression"))?($writer=[location.$expression().$source_line()],$send(this,"label=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):nil):nil}),1)}($nesting[0])}($nesting[0],$nesting)},Opal.modules["opal/magic_comments"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$module=Opal.module,$const_set=Opal.const_set,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$rb_ge=Opal.rb_ge,$eqeqeq=Opal.eqeqeq,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$defs=Opal.defs;return Opal.add_stubs("freeze,line,loc,take,each,>=,any?,scan,text,to_sym,===,[]=,-"),function($base,$parent_nesting){var self=$module($base,"MagicComments"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"MAGIC_COMMENT_RE",/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),$const_set($nesting[0],"EMACS_MAGIC_COMMENT_RE",/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),$defs(self,"$parse",(function(sexp,comments){var flags,first_line=nil;return flags=$hash2([],{}),$truthy(sexp)&&(first_line=sexp.$loc().$line(),comments=comments.$take(first_line)),$send(comments,"each",[],(function(comment){var parts=nil;return null==comment&&(comment=nil),$truthy(first_line)&&$truthy($rb_ge(comment.$loc().$line(),first_line))?nil:$truthy((parts=comment.$text().$scan($$("MAGIC_COMMENT_RE")))["$any?"]())||$truthy((parts=comment.$text().$scan($$("EMACS_MAGIC_COMMENT_RE")))["$any?"]())?$send(parts,"each",[],(function(key,value){var $writer,$ret_or_1;return null==key&&(key=nil),null==value&&(value=nil),$writer=[key.$to_sym(),$eqeqeq("true",$ret_or_1=value)||!$eqeqeq("false",$ret_or_1)&&value],$send(flags,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2):nil}),1),flags}),2)}($$("Opal"),$nesting)},Opal.modules["opal/compiler"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$hash2=Opal.hash2,$defs=Opal.defs,$klass=Opal.klass,$const_set=Opal.const_set,$send=Opal.send,$truthy=Opal.truthy,$not=Opal.not,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$Opal=Opal.Opal,$to_ary=Opal.to_ary,$alias=Opal.alias,$eqeqeq=Opal.eqeqeq,$regexp=Opal.regexp,$rb_plus=Opal.rb_plus,$slice=Opal.slice,$eqeq=Opal.eqeq;return Opal.add_stubs("require,compile,new,freeze,join,dirname,first,split,basename,to_s,cleanpath,Pathname,fetch,define_method,option_value,key?,[],!,include?,raise,inspect,[]=,-,compiler_option,attr_reader,attr_accessor,parse,re_raise_with_location,flatten,process,end_with?,code,last,<<,fragment,s,map,to_proc,file,source=,default_parser,tokenize,requirable?,eval?,tap,meta,location,children,associate_locations,eof,magic_comments,to_sym,strip,async_await_before_typecasting,===,async_await_set_to_regexp,to_a,gsub,escape,location=,opal_location_from_error,path=,label,lines,to_i,line,label=,message,set_backtrace,backtrace,add_opal_location_to_error,warn,empty?,+,start_with?,helpers,new_temp,queue_temp,push_while,pop_while,in_while?,nil?,scope,handlers,type,compile_to_fragments,error,returns,updated,==,uses_block!,block_name,find_parent_def,cache,source_map"),self.$require("set"),self.$require("opal/parser"),self.$require("opal/fragment"),self.$require("opal/nodes"),self.$require("opal/eof_content"),self.$require("opal/errors"),self.$require("opal/magic_comments"),function($base,$parent_nesting){var self=$module($base,"Opal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$compile",(function(source,options){return null==options&&(options=$hash2([],{})),$$("Compiler").$new(source,options).$compile()}),-2),function($base,$super,$parent_nesting){var self=$klass($base,null,"Compiler"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.option_values=$proto.options=$proto.magic_comments=$proto.fragments=$proto.source=$proto.buffer=$proto.source_map=$proto.result=$proto.helpers=$proto.method_calls=$proto.async_await=$proto.indent=$proto.unique=$proto.scope=$proto.case_stmt=$proto.handlers=$proto.requires=$proto.required_trees=$proto.autoloads=nil,$const_set($nesting[0],"INDENT"," "),$const_set($nesting[0],"COMPARE",["<",">","<=",">="].$freeze()),$defs(self,"$module_name",(function(path){return path=$$("File").$join($$("File").$dirname(path),$$("File").$basename(path).$split(".").$first()),this.$Pathname(path).$cleanpath().$to_s()}),1),$defs(self,"$compiler_option",(function(name,config){var method_name;return null==config&&(config=$hash2([],{})),method_name=config.$fetch("as",name),$send(this,"define_method",[method_name],(function $$1(){return(null==$$1.$$s?this:$$1.$$s).$option_value(name,config)}),{$$arity:0,$$s:this})}),-2),$def(self,"$option_value",(function(name,config){var default_value,magic_comment,$writer,valid_values=nil,value=nil;return $truthy(this.option_values["$key?"](name))?this.option_values["$[]"](name):(default_value=config["$[]"]("default"),valid_values=config["$[]"]("valid_values"),magic_comment=config["$[]"]("magic_comment"),value=this.options.$fetch(name,default_value),$truthy(magic_comment)&&$truthy(this.magic_comments["$key?"](name))&&(value=this.magic_comments.$fetch(name)),$truthy(valid_values)&&$not(valid_values["$include?"](value))&&this.$raise($$("ArgumentError"),"invalid value "+value.$inspect()+" for option "+name.$inspect()+" (valid values: "+valid_values.$inspect()+")"),$writer=[name,value],$send(this.option_values,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),2),self.$compiler_option("file",$hash2(["default"],{default:"(file)"})),self.$compiler_option("method_missing",$hash2(["default","as"],{default:!0,as:"method_missing?"})),self.$compiler_option("arity_check",$hash2(["default","as"],{default:!1,as:"arity_check?"})),self.$compiler_option("freezing",$hash2(["default","as"],{default:!0,as:"freezing?"})),self.$compiler_option("irb",$hash2(["default","as"],{default:!1,as:"irb?"})),self.$compiler_option("dynamic_require_severity",$hash2(["default","valid_values"],{default:"ignore",valid_values:["error","warning","ignore"]})),self.$compiler_option("requirable",$hash2(["default","as"],{default:!1,as:"requirable?"})),self.$compiler_option("esm",$hash2(["default","as"],{default:!1,as:"esm?"})),self.$compiler_option("inline_operators",$hash2(["default","as"],{default:!0,as:"inline_operators?"})),self.$compiler_option("eval",$hash2(["default","as"],{default:!1,as:"eval?"})),self.$compiler_option("enable_source_location",$hash2(["default","as"],{default:!1,as:"enable_source_location?"})),self.$compiler_option("use_strict",$hash2(["default","as","magic_comment"],{default:!1,as:"use_strict?",magic_comment:!0})),self.$compiler_option("parse_comments",$hash2(["default","as"],{default:!1,as:"parse_comments?"})),self.$compiler_option("scope_variables",$hash2(["default"],{default:[]})),self.$compiler_option("await",$hash2(["default","as","magic_comment"],{default:!1,as:"async_await",magic_comment:!0})),self.$attr_reader("result"),self.$attr_reader("fragments"),self.$attr_accessor("scope"),self.$attr_accessor("top_scope"),self.$attr_reader("case_stmt"),self.$attr_reader("eof_content"),self.$attr_reader("comments"),self.$attr_reader("magic_comments"),self.$attr_accessor("dynamic_cache_result"),$def(self,"$initialize",(function(source,options){return null==options&&(options=$hash2([],{})),this.source=source,this.indent="",this.unique=0,this.options=options,this.comments=$$("Hash").$new([]),this.case_stmt=nil,this.option_values=$hash2([],{}),this.magic_comments=$hash2([],{}),this.dynamic_cache_result=!1}),-2),$def(self,"$compile",(function(){return this.$parse(),this.fragments=$send(this,"re_raise_with_location",[],(function $$2(){var self=null==$$2.$$s?this:$$2.$$s;return null==self.sexp&&(self.sexp=nil),self.$process(self.sexp).$flatten()}),{$$arity:0,$$s:this}),$truthy(this.fragments.$last().$code()["$end_with?"]("\n"))||this.fragments["$<<"](this.$fragment("\n",nil,this.$s("newline"))),this.result=$send(this.fragments,"map",[],"code".$to_proc()).$join("")}),0),$def(self,"$parse",(function(){var $a,$b,comments,tokens,kind,$writer=nil,sexp=nil,first_node=nil;return this.buffer=$$$($$$($Opal,"Parser"),"SourceBuffer").$new(this.$file(),1),$writer=[this.source],$send(this.buffer,"source=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],this.parser=$$$($$("Opal"),"Parser").$default_parser(),$b=$send(this,"re_raise_with_location",[],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return null==self.parser&&(self.parser=nil),null==self.buffer&&(self.buffer=nil),self.parser.$tokenize(self.buffer)}),{$$arity:0,$$s:this}),sexp=null==($a=$to_ary($b))[0]?nil:$a[0],comments=null==$a[1]?nil:$a[1],tokens=null==$a[2]?nil:$a[2],kind=$truthy(this["$requirable?"]())?"require":$truthy(this["$eval?"]())?"eval":"main",this.sexp=$send(sexp,"tap",[],(function(i){return null==i&&(i=nil),$writer=["kind",kind],$send(i.$meta(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$truthy(sexp.$children().$first().$location())&&(first_node=sexp.$children().$first()),this.comments=$$$($$$($$$("Parser"),"Source"),"Comment").$associate_locations(first_node,comments),this.magic_comments=$$("MagicComments").$parse(first_node,comments),this.eof_content=$$("EofContent").$new(tokens,this.source).$eof()}),0),$def(self,"$source_map",(function(){var $ret_or_1;return $truthy($ret_or_1=this.source_map)?$ret_or_1:$$$($$$($Opal,"SourceMap"),"File").$new(this.fragments,this.$file(),this.source,this.result)}),0),$def(self,"$helpers",(function(){var $ret_or_1;return this.helpers=$truthy($ret_or_1=this.helpers)?$ret_or_1:$$("Set").$new($send(this.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],(function(h){return null==h&&(h=nil),h.$strip().$to_sym()}),1))}),0),$def(self,"$method_calls",(function(){var $ret_or_1;return this.method_calls=$truthy($ret_or_1=this.method_calls)?$ret_or_1:$$("Set").$new()}),0),$alias(self,"async_await_before_typecasting","async_await"),$def(self,"$async_await",(function(){var $a,original=nil,$ret_or_1=nil;return $truthy(null!=($a=this.async_await)&&$a!==nil?"instance-variable":nil)?this.async_await:(original=this.$async_await_before_typecasting(),this.async_await=$eqeqeq($$("String"),$ret_or_1=original)?this.$async_await_set_to_regexp($send(original.$split(","),"map",[],(function(h){return null==h&&(h=nil),h.$strip().$to_sym()}),1)):$eqeqeq($$("Array"),$ret_or_1)||$eqeqeq($$("Set"),$ret_or_1)?this.$async_await_set_to_regexp($send(original.$to_a(),"map",[],"to_sym".$to_proc())):$eqeqeq($$("Regexp"),$ret_or_1)||$eqeqeq(!0,$ret_or_1)||$eqeqeq(!1,$ret_or_1)?original:this.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean."))}),0),$def(self,"$async_await_set_to_regexp",(function(set){return set=(set=$send(set,"map",[],(function(name){return null==name&&(name=nil),$$("Regexp").$escape(name.$to_s()).$gsub("\\*",".*?")}),1)).$join("|"),$regexp(["^(",set,")$"])}),1),$def(self,"$error",(function(msg,line){var error,$writer;return null==line&&(line=nil),error=$$$($Opal,"SyntaxError").$new(msg),$writer=[$$$($$("Opal"),"OpalBacktraceLocation").$new(this.$file(),line)],$send(error,"location=",$to_a($writer)),$rb_minus($writer.length,1),this.$raise(error)}),-2),$def(self,"$re_raise_with_location",(function $$re_raise_with_location(){var $yield=$$re_raise_with_location.$$p||nil,error=nil,opal_location=nil,$writer=nil,new_error=nil;delete $$re_raise_with_location.$$p;try{return Opal.yieldX($yield,[])}catch($err){if(!Opal.rescue($err,[$$("StandardError"),$$$($Opal,"SyntaxError")]))throw $err;error=$err;try{return opal_location=$Opal.$opal_location_from_error(error),$writer=[this.$file()],$send(opal_location,"path=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy(opal_location.$label())||($writer=[this.source.$lines()["$[]"]($rb_minus(opal_location.$line().$to_i(),1)).$strip()],$send(opal_location,"label=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),(new_error=$$$($Opal,"SyntaxError").$new(error.$message())).$set_backtrace(error.$backtrace()),$Opal.$add_opal_location_to_error(opal_location,new_error),this.$raise(new_error)}finally{Opal.pop_exception()}}}),0),$def(self,"$warning",(function(msg,line){return null==line&&(line=nil),this.$warn("warning: "+msg+" -- "+this.$file()+":"+line)}),-2),$def(self,"$parser_indent",(function(){return this.indent}),0),$def(self,"$s",(function(type,$a){var children;return children=Opal.slice.call(arguments,1),$$$($$$($Opal,"AST"),"Node").$new(type,children)}),-2),$def(self,"$fragment",(function(str,scope,sexp){return null==sexp&&(sexp=nil),$$("Fragment").$new(str,scope,sexp)}),-3),$def(self,"$unique_temp",(function(name){var unique;return name=name.$to_s(),$truthy(name)&&$not(name["$empty?"]())&&(name=name.$to_s().$gsub("<=>","$lt_eq_gt").$gsub("===","$eq_eq_eq").$gsub("==","$eq_eq").$gsub("=~","$eq_tilde").$gsub("!~","$excl_tilde").$gsub("!=","$not_eq").$gsub("<=","$lt_eq").$gsub(">=","$gt_eq").$gsub("=","$eq").$gsub("?","$ques").$gsub("!","$excl").$gsub("/","$slash").$gsub("%","$percent").$gsub("+","$plus").$gsub("-","$minus").$gsub("<","$lt").$gsub(">","$gt").$gsub(/[^\w\$]/,"$")),unique=this.unique=$rb_plus(this.unique,1),""+($truthy(name["$start_with?"]("$"))?nil:"$")+name+"$"+unique}),1),$def(self,"$helper",(function(name){return this.$helpers()["$<<"](name)}),1),$def(self,"$indent",(function $$indent(){var indent,res,$yield=$$indent.$$p||nil;return delete $$indent.$$p,indent=this.indent,this.indent=$rb_plus(this.indent,$$("INDENT")),this.space="\n"+this.indent,res=Opal.yieldX($yield,[]),this.indent=indent,this.space="\n"+this.indent,res}),0),$def(self,"$with_temp",(function $$with_temp(){var tmp,res,$yield=$$with_temp.$$p||nil;return delete $$with_temp.$$p,tmp=this.scope.$new_temp(),res=Opal.yield1($yield,tmp),this.scope.$queue_temp(tmp),res}),0),$def(self,"$in_while",(function $$in_while(){var result,$yield=$$in_while.$$p||nil;return delete $$in_while.$$p,$yield===nil?nil:(this.while_loop=this.scope.$push_while(),result=Opal.yieldX($yield,[]),this.scope.$pop_while(),result)}),0),$def(self,"$in_case",(function $$in_case(){var old,$yield=$$in_case.$$p||nil;return delete $$in_case.$$p,$yield===nil?nil:(old=this.case_stmt,this.case_stmt=$hash2([],{}),Opal.yieldX($yield,[]),this.case_stmt=old)}),0),$def(self,"$in_while?",(function(){return this.scope["$in_while?"]()}),0),$def(self,"$process",(function(sexp,level){var handler=nil;return null==level&&(level="expr"),$truthy(sexp["$nil?"]())?this.$fragment("",this.$scope()):$truthy(handler=this.$handlers()["$[]"](sexp.$type()))?handler.$new(sexp,level,this).$compile_to_fragments():this.$error("Unsupported sexp: "+sexp.$type())}),-2),$def(self,"$handlers",(function(){var $ret_or_1;return this.handlers=$truthy($ret_or_1=this.handlers)?$ret_or_1:$$$($$$($$("Opal"),"Nodes"),"Base").$handlers()}),0),$def(self,"$requires",(function(){var $ret_or_1;return this.requires=$truthy($ret_or_1=this.requires)?$ret_or_1:[]}),0),$def(self,"$required_trees",(function(){var $ret_or_1;return this.required_trees=$truthy($ret_or_1=this.required_trees)?$ret_or_1:[]}),0),$def(self,"$autoloads",(function(){var $ret_or_1;return this.autoloads=$truthy($ret_or_1=this.autoloads)?$ret_or_1:[]}),0),$def(self,"$returns",(function(sexp){var $a,$b,$ret_or_1,when_sexp=nil,then_sexp=nil,body_sexp=nil,resbodies=nil,else_sexp=nil,klass=nil,lvar=nil,body=nil,rescue_sexp=nil,ensure_body=nil,rest=nil,last=nil,cond=nil,true_body=nil,false_body=nil;return $truthy(sexp)?$eqeqeq("undef",$ret_or_1=sexp.$type())?this.$returns(sexp.$updated("begin",[sexp,this.$s("nil")])):$eqeqeq("break",$ret_or_1)||$eqeqeq("next",$ret_or_1)||$eqeqeq("redo",$ret_or_1)||$eqeqeq("retry",$ret_or_1)?sexp:$eqeqeq("yield",$ret_or_1)?sexp.$updated("returnable_yield",nil):$eqeqeq("when",$ret_or_1)?($b=($b=($a=[].concat($to_a(sexp))).length-1)<0?0:$b,when_sexp=$slice.call($a,0,$b),then_sexp=null==$a[$b]?nil:$a[$b],sexp.$updated(nil,[].concat($to_a(when_sexp)).concat([this.$returns(then_sexp)]))):$eqeqeq("rescue",$ret_or_1)?(body_sexp=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],$b=($b=$a.length-1)<1?1:$b,resbodies=$slice.call($a,1,$b),else_sexp=null==$a[$b]?nil:$a[$b],resbodies=$send(resbodies,"map",[],(function $$9(resbody){return null==resbody&&(resbody=nil),(null==$$9.$$s?this:$$9.$$s).$returns(resbody)}),{$$arity:1,$$s:this}),$truthy(else_sexp)&&(else_sexp=this.$returns(else_sexp)),sexp.$updated(nil,[this.$returns(body_sexp)].concat($to_a(resbodies)).concat([else_sexp]))):$eqeqeq("resbody",$ret_or_1)?(klass=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],lvar=null==$a[1]?nil:$a[1],body=null==$a[2]?nil:$a[2],sexp.$updated(nil,[klass,lvar,this.$returns(body)])):$eqeqeq("ensure",$ret_or_1)?(rescue_sexp=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],ensure_body=null==$a[1]?nil:$a[1],(sexp=sexp.$updated(nil,[this.$returns(rescue_sexp),ensure_body])).$updated("js_return",[sexp])):$eqeqeq("begin",$ret_or_1)||$eqeqeq("kwbegin",$ret_or_1)?($b=($b=($a=[].concat($to_a(sexp))).length-1)<0?0:$b,rest=$slice.call($a,0,$b),last=null==$a[$b]?nil:$a[$b],sexp.$updated(nil,[].concat($to_a(rest)).concat([this.$returns(last)]))):$eqeqeq("while",$ret_or_1)||$eqeqeq("until",$ret_or_1)||$eqeqeq("while_post",$ret_or_1)||$eqeqeq("until_post",$ret_or_1)||$eqeqeq("return",$ret_or_1)||$eqeqeq("js_return",$ret_or_1)||$eqeqeq("returnable_yield",$ret_or_1)?sexp:$eqeqeq("xstr",$ret_or_1)?sexp.$updated(nil,[$send(this,"s",["js_return"].concat($to_a(sexp.$children())))]):$eqeqeq("if",$ret_or_1)?(cond=null==($a=[].concat($to_a(sexp)))[0]?nil:$a[0],true_body=null==$a[1]?nil:$a[1],false_body=null==$a[2]?nil:$a[2],sexp.$updated(nil,[cond,this.$returns(true_body),this.$returns(false_body)])):$eqeq(sexp.$type(),"send")&&$eqeq(sexp.$children()["$[]"](1),"debugger")?sexp.$updated("begin",[sexp,this.$s("js_return",this.$s("nil"))]):sexp.$updated("js_return",[sexp]):this.$returns(this.$s("nil"))}),1),$def(self,"$handle_block_given_call",(function(sexp){var scope=nil;return this.scope["$uses_block!"](),$truthy(this.scope.$block_name())?this.$fragment("("+this.scope.$block_name()+" !== nil)",this.$scope(),sexp):$truthy(scope=this.scope.$find_parent_def())&&$truthy(scope.$block_name())?this.$fragment("("+scope.$block_name()+" !== nil)",scope,sexp):this.$fragment("false",scope,sexp)}),1),$def(self,"$marshal_dump",(function(){var $ret_or_1;return[this.options,this.option_values,this.source_map=$truthy($ret_or_1=this.source_map)?$ret_or_1:this.$source_map().$cache(),this.magic_comments,this.result,this.required_trees,this.requires,this.autoloads]}),0),$def(self,"$marshal_load",(function(src){var $a,$b;return $a=$to_ary($b=src),this.options=null==$a[0]?nil:$a[0],this.option_values=null==$a[1]?nil:$a[1],this.source_map=null==$a[2]?nil:$a[2],this.magic_comments=null==$a[3]?nil:$a[3],this.result=null==$a[4]?nil:$a[4],this.required_trees=null==$a[5]?nil:$a[5],this.requires=null==$a[6]?nil:$a[6],this.autoloads=null==$a[7]?nil:$a[7],$b}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)},Opal.modules["opal/erb"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$module=Opal.module,$defs=Opal.defs,$klass=Opal.klass,$const_set=Opal.const_set,$def=Opal.def,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$send=Opal.send,$regexp=Opal.regexp;return Opal.add_stubs("require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub"),self.$require("opal/compiler"),function($base,$parent_nesting){var $nesting=[$module($base,"Opal")].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"ERB"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$compile",(function(source,file_name){return null==file_name&&(file_name="(erb)"),$$("Compiler").$new(source,file_name).$compile()}),-2),function($base,$super,$parent_nesting){var self=$klass($base,null,"Compiler"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.prepared_source=$proto.source=$proto.file_name=nil,$const_set($nesting[0],"BLOCK_EXPR",/\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/.$freeze()),$def(self,"$initialize",(function(source,file_name){var $a;return null==file_name&&(file_name="(erb)"),$a=[source,file_name,source],this.source=$a[0],this.file_name=$a[1],this.result=$a[2],$a}),-2),$def(self,"$prepared_source",(function(){var $ret_or_1,source=nil;return this.prepared_source=$truthy($ret_or_1=this.prepared_source)?$ret_or_1:(source=this.source,source=this.$fix_quotes(source),source=this.$find_contents(source),source=this.$find_code(source),source=this.$wrap_compiled(source),source=this.$require_erb(source))}),0),$def(self,"$compile",(function(){return $$("Opal").$compile(this.$prepared_source())}),0),$def(self,"$fix_quotes",(function(result){return result.$gsub('"','\\"')}),1),$def(self,"$require_erb",(function(result){return $rb_plus('require "erb";',result)}),1),$def(self,"$find_contents",(function(result){return $send(result,"gsub",[/<%=([\s\S]+?)%>/],(function(){var inner=nil;return inner=$$("Regexp").$last_match(1).$gsub(/\\'/,"'").$gsub(/\\"/,'"'),$truthy(inner["$=~"]($$("BLOCK_EXPR")))?'")\noutput_buffer.append= '+inner+'\noutput_buffer.append("':'")\noutput_buffer.append=('+inner+')\noutput_buffer.append("'}),0)}),1),$def(self,"$find_code",(function(result){return $send(result,"gsub",[/<%([\s\S]+?)%>/],(function(){return'")\n'+$$("Regexp").$last_match(1).$gsub(/\\"/,'"')+'\noutput_buffer.append("'}),0)}),1),$def(self,"$wrap_compiled",(function(result){return"Template.new('"+this.file_name.$sub($regexp(["\\.opalerb",$$("REGEXP_END")]),"")+"') do |output_buffer|\noutput_buffer.append(\""+result+'")\noutput_buffer.join\nend\n'}),1)}($nesting[0],0,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal-parser"]=function(Opal){var self=Opal.top,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$module=Opal.module,$Opal=Opal.Opal,$hash2=Opal.hash2,$truthy=Opal.truthy,$def=Opal.def;function run_ruby_scripts(){for(var tag,tags=document.getElementsByTagName("script"),i=0,len=tags.length;i=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'StringIO'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.position = $proto.string = nil; + + $defs(self, '$open', function $$open(string, mode) { + var block = $$open.$$p || nil, self = this, io = nil, res = nil; + + delete $$open.$$p; + + ; + + if (string == null) string = "";; + + if (mode == null) mode = nil;; + io = self.$new(string, mode); + res = block.$call(io); + io.$close(); + return res; + }, -1); + self.$attr_accessor("string"); + + $def(self, '$initialize', function $$initialize(string, mode) { + var $yield = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + + if (string == null) string = "";; + + if (mode == null) mode = "rw";; + self.string = string; + self.position = 0; + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [nil, mode], null); + }, -1); + + $def(self, '$eof?', function $StringIO_eof$ques$1() { + var self = this; + + + self.$check_readable(); + return self.position['$=='](self.string.$length()); + }, 0); + + $def(self, '$seek', function $$seek(pos, whence) { + var self = this, $ret_or_1 = nil; + + + + if (whence == null) whence = $$$($$('IO'), 'SEEK_SET');; + self.read_buffer = ""; + if ($eqeqeq($$$($$('IO'), 'SEEK_SET'), ($ret_or_1 = whence))) { + + if (!$truthy($rb_ge(pos, 0))) { + self.$raise($$$($$('Errno'), 'EINVAL')) + }; + self.position = pos; + } else if ($eqeqeq($$$($$('IO'), 'SEEK_CUR'), $ret_or_1)) { + if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { + self.position = self.string.$length() + } else { + self.position = $rb_plus(self.position, pos) + } + } else if ($eqeqeq($$$($$('IO'), 'SEEK_END'), $ret_or_1)) { + if ($truthy($rb_gt(pos, self.string.$length()))) { + self.position = 0 + } else { + self.position = $rb_minus(self.position, pos) + } + } else { + nil + }; + return 0; + }, -2); + + $def(self, '$tell', function $$tell() { + var self = this; + + return self.position + }, 0); + + $def(self, '$rewind', function $$rewind() { + var self = this; + + return self.$seek(0) + }, 0); + + $def(self, '$write', function $$write(string) { + var self = this, before = nil, after = nil; + + + self.$check_writable(); + self.read_buffer = ""; + string = self.$String(string); + if ($eqeq(self.string.$length(), self.position)) { + + self.string = $rb_plus(self.string, string); + return (self.position = $rb_plus(self.position, string.$length())); + } else { + + before = self.string['$[]'](Opal.Range.$new(0, $rb_minus(self.position, 1), false)); + after = self.string['$[]'](Opal.Range.$new($rb_plus(self.position, string.$length()), -1, false)); + self.string = $rb_plus($rb_plus(before, string), after); + return (self.position = $rb_plus(self.position, string.$length())); + }; + }, 1); + + $def(self, '$read', function $$read(length, outbuf) { + var self = this, string = nil, str = nil; + + + + if (length == null) length = nil;; + + if (outbuf == null) outbuf = nil;; + self.$check_readable(); + if ($truthy(self['$eof?']())) { + return nil + }; + string = ($truthy(length) ? (((str = self.string['$[]'](self.position, length)), (self.position = $rb_plus(self.position, length)), ($truthy($rb_gt(self.position, self.string.$length())) ? ((self.position = self.string.$length())) : nil), str)) : (((str = self.string['$[]'](Opal.Range.$new(self.position, -1, false))), (self.position = self.string.$length()), str))); + if ($truthy(outbuf)) { + return outbuf.$write(string) + } else { + return string + }; + }, -1); + + $def(self, '$sysread', function $$sysread(length) { + var self = this; + + + self.$check_readable(); + return self.$read(length); + }, 1); + $alias(self, "eof", "eof?"); + $alias(self, "pos", "tell"); + $alias(self, "pos=", "seek"); + return $alias(self, "readpartial", "read"); + })($nesting[0], $$('IO'), $nesting) +}; + +Opal.modules["prettyprint"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $klass = Opal.klass, $send = Opal.send, $rb_times = Opal.rb_times, $defs = Opal.defs, $truthy = Opal.truthy, $def = Opal.def, $rb_lt = Opal.rb_lt, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $eqeqeq = Opal.eqeqeq, $to_a = Opal.to_a; + + Opal.add_stubs('dup,lambda,*,new,to_proc,flush,attr_reader,last,<,+,deq,empty?,breakables,shift,output,-,width,!,===,first,length,<<,add,break_outmost_groups,group,breakable,break?,call,text,group_sub,nest,depth,push,enq,pop,delete,each,clear,indent,current_group,newline,genspace,group_queue,[],downto,slice!,break,[]='); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'PrettyPrint'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.group_stack = $proto.maxwidth = $proto.output_width = $proto.buffer_width = $proto.group_queue = $proto.buffer = $proto.output = $proto.newline = $proto.genspace = $proto.indent = nil; + + $defs($$('PrettyPrint'), '$format', function $$format(output, maxwidth, newline, genspace) { + var $yield = $$format.$$p || nil, self = this, q = nil; + + delete $$format.$$p; + + + if (output == null) output = "".$dup();; + + if (maxwidth == null) maxwidth = 79;; + + if (newline == null) newline = "\n";; + + if (genspace == null) genspace = $send(self, 'lambda', [], function $$1(n){ + + + if (n == null) n = nil;; + return $rb_times(" ", n);}, 1);; + q = $send($$('PrettyPrint'), 'new', [output, maxwidth, newline], genspace.$to_proc()); + Opal.yield1($yield, q); + q.$flush(); + return output; + }, -1); + $defs($$('PrettyPrint'), '$singleline_format', function $$singleline_format(output, maxwidth, newline, genspace) { + var $yield = $$singleline_format.$$p || nil, q = nil; + + delete $$singleline_format.$$p; + + + if (output == null) output = "".$dup();; + + if (maxwidth == null) maxwidth = nil;; + + if (newline == null) newline = nil;; + + if (genspace == null) genspace = nil;; + q = $$('SingleLine').$new(output); + Opal.yield1($yield, q); + return output; + }, -1); + + $def(self, '$initialize', function $$initialize(output, maxwidth, newline) { + var genspace = $$initialize.$$p || nil, self = this, $ret_or_1 = nil, root_group = nil; + + delete $$initialize.$$p; + + ; + + if (output == null) output = "".$dup();; + + if (maxwidth == null) maxwidth = 79;; + + if (newline == null) newline = "\n";; + self.output = output; + self.maxwidth = maxwidth; + self.newline = newline; + self.genspace = ($truthy(($ret_or_1 = genspace)) ? ($ret_or_1) : ($send(self, 'lambda', [], function $$2(n){ + + + if (n == null) n = nil;; + return $rb_times(" ", n);}, 1))); + self.output_width = 0; + self.buffer_width = 0; + self.buffer = []; + root_group = $$('Group').$new(0); + self.group_stack = [root_group]; + self.group_queue = $$('GroupQueue').$new(root_group); + return (self.indent = 0); + }, -1); + self.$attr_reader("output"); + self.$attr_reader("maxwidth"); + self.$attr_reader("newline"); + self.$attr_reader("genspace"); + self.$attr_reader("indent"); + self.$attr_reader("group_queue"); + + $def(self, '$current_group', function $$current_group() { + var self = this; + + return self.group_stack.$last() + }, 0); + + $def(self, '$break_outmost_groups', function $$break_outmost_groups() { + var $a, $b, self = this, group = nil, data = nil, $ret_or_1 = nil, text = nil; + + while ($truthy($rb_lt(self.maxwidth, $rb_plus(self.output_width, self.buffer_width)))) { + + if (!$truthy((group = self.group_queue.$deq()))) { + return nil + }; + while (!($truthy(group.$breakables()['$empty?']()))) { + + data = self.buffer.$shift(); + self.output_width = data.$output(self.output, self.output_width); + self.buffer_width = $rb_minus(self.buffer_width, data.$width()); + }; + while ($truthy(($truthy(($ret_or_1 = self.buffer['$empty?']()['$!']())) ? ($$('Text')['$==='](self.buffer.$first())) : ($ret_or_1)))) { + + text = self.buffer.$shift(); + self.output_width = text.$output(self.output, self.output_width); + self.buffer_width = $rb_minus(self.buffer_width, text.$width()); + }; + } + }, 0); + + $def(self, '$text', function $$text(obj, width) { + var self = this, text = nil; + + + + if (width == null) width = obj.$length();; + if ($truthy(self.buffer['$empty?']())) { + + self.output['$<<'](obj); + return (self.output_width = $rb_plus(self.output_width, width)); + } else { + + text = self.buffer.$last(); + if (!$eqeqeq($$('Text'), text)) { + + text = $$('Text').$new(); + self.buffer['$<<'](text); + }; + text.$add(obj, width); + self.buffer_width = $rb_plus(self.buffer_width, width); + return self.$break_outmost_groups(); + }; + }, -2); + + $def(self, '$fill_breakable', function $$fill_breakable(sep, width) { + var self = this; + + + + if (sep == null) sep = " ";; + + if (width == null) width = sep.$length();; + return $send(self, 'group', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; + + return self.$breakable(sep, width)}, {$$arity: 0, $$s: self}); + }, -1); + + $def(self, '$breakable', function $$breakable(sep, width) { + var self = this, group = nil; + + + + if (sep == null) sep = " ";; + + if (width == null) width = sep.$length();; + group = self.group_stack.$last(); + if ($truthy(group['$break?']())) { + + self.$flush(); + self.output['$<<'](self.newline); + self.output['$<<'](self.genspace.$call(self.indent)); + self.output_width = self.indent; + return (self.buffer_width = 0); + } else { + + self.buffer['$<<']($$('Breakable').$new(sep, width, self)); + self.buffer_width = $rb_plus(self.buffer_width, width); + return self.$break_outmost_groups(); + }; + }, -1); + + $def(self, '$group', function $$group(indent, open_obj, close_obj, open_width, close_width) { + var $yield = $$group.$$p || nil, self = this; + + delete $$group.$$p; + + + if (indent == null) indent = 0;; + + if (open_obj == null) open_obj = "";; + + if (close_obj == null) close_obj = "";; + + if (open_width == null) open_width = open_obj.$length();; + + if (close_width == null) close_width = close_obj.$length();; + self.$text(open_obj, open_width); + $send(self, 'group_sub', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; + + return $send(self, 'nest', [indent], function $$5(){ + return Opal.yieldX($yield, []);}, 0)}, {$$arity: 0, $$s: self}); + return self.$text(close_obj, close_width); + }, -1); + + $def(self, '$group_sub', function $$group_sub() { + var $yield = $$group_sub.$$p || nil, self = this, group = nil; + + delete $$group_sub.$$p; + + group = $$('Group').$new($rb_plus(self.group_stack.$last().$depth(), 1)); + self.group_stack.$push(group); + self.group_queue.$enq(group); + + return (function() { try { + return Opal.yieldX($yield, []); + } finally { + (self.group_stack.$pop(), ($truthy(group.$breakables()['$empty?']()) ? (self.group_queue.$delete(group)) : nil)) + }; })();; + }, 0); + + $def(self, '$nest', function $$nest(indent) { + var $yield = $$nest.$$p || nil, self = this; + + delete $$nest.$$p; + + self.indent = $rb_plus(self.indent, indent); + + return (function() { try { + return Opal.yieldX($yield, []); + } finally { + (self.indent = $rb_minus(self.indent, indent)) + }; })();; + }, 1); + + $def(self, '$flush', function $$flush() { + var self = this; + + + $send(self.buffer, 'each', [], function $$6(data){var self = $$6.$$s == null ? this : $$6.$$s; + if (self.output == null) self.output = nil; + if (self.output_width == null) self.output_width = nil; + + + + if (data == null) data = nil;; + return (self.output_width = data.$output(self.output, self.output_width));}, {$$arity: 1, $$s: self}); + self.buffer.$clear(); + return (self.buffer_width = 0); + }, 0); + (function($base, $super) { + var self = $klass($base, $super, 'Text'); + + var $proto = self.$$prototype; + + $proto.objs = $proto.width = nil; + + + $def(self, '$initialize', function $$initialize() { + var self = this; + + + self.objs = []; + return (self.width = 0); + }, 0); + self.$attr_reader("width"); + + $def(self, '$output', function $$output(out, output_width) { + var self = this; + + + $send(self.objs, 'each', [], function $$7(obj){ + + + if (obj == null) obj = nil;; + return out['$<<'](obj);}, 1); + return $rb_plus(output_width, self.width); + }, 2); + return $def(self, '$add', function $$add(obj, width) { + var self = this; + + + self.objs['$<<'](obj); + return (self.width = $rb_plus(self.width, width)); + }, 2); + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'Breakable'); + + var $proto = self.$$prototype; + + $proto.group = $proto.pp = $proto.indent = $proto.obj = $proto.width = nil; + + + $def(self, '$initialize', function $$initialize(sep, width, q) { + var self = this; + + + self.obj = sep; + self.width = width; + self.pp = q; + self.indent = q.$indent(); + self.group = q.$current_group(); + return self.group.$breakables().$push(self); + }, 3); + self.$attr_reader("obj"); + self.$attr_reader("width"); + self.$attr_reader("indent"); + return $def(self, '$output', function $$output(out, output_width) { + var self = this; + + + self.group.$breakables().$shift(); + if ($truthy(self.group['$break?']())) { + + out['$<<'](self.pp.$newline()); + out['$<<'](self.pp.$genspace().$call(self.indent)); + return self.indent; + } else { + + if ($truthy(self.group.$breakables()['$empty?']())) { + self.pp.$group_queue().$delete(self.group) + }; + out['$<<'](self.obj); + return $rb_plus(output_width, self.width); + }; + }, 2); + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'Group'); + + var $proto = self.$$prototype; + + $proto["break"] = nil; + + + $def(self, '$initialize', function $$initialize(depth) { + var self = this; + + + self.depth = depth; + self.breakables = []; + return (self["break"] = false); + }, 1); + self.$attr_reader("depth"); + self.$attr_reader("breakables"); + + $def(self, '$break', function $Group_break$8() { + var self = this; + + return (self["break"] = true) + }, 0); + + $def(self, '$break?', function $Group_break$ques$9() { + var self = this; + + return self["break"] + }, 0); + return $def(self, '$first?', function $Group_first$ques$10() { + var $a, self = this; + + if ($truthy((($a = self['first'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + return false + } else { + + self.first = false; + return true; + } + }, 0); + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'GroupQueue'); + + var $proto = self.$$prototype; + + $proto.queue = nil; + + + $def(self, '$initialize', function $$initialize($a) { + var $post_args, groups, self = this; + + + + $post_args = Opal.slice.call(arguments); + + groups = $post_args;; + self.queue = []; + return $send(groups, 'each', [], function $$11(g){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (g == null) g = nil;; + return self.$enq(g);}, {$$arity: 1, $$s: self}); + }, -1); + + $def(self, '$enq', function $$enq(group) { + var $a, self = this, depth = nil; + + + depth = group.$depth(); + while (!($truthy($rb_lt(depth, self.queue.$length())))) { + self.queue['$<<']([]) + }; + return self.queue['$[]'](depth)['$<<'](group); + }, 1); + + $def(self, '$deq', function $$deq() {try { + + var self = this; + + + $send(self.queue, 'each', [], function $$12(gs){ + + + if (gs == null) gs = nil;; + $send($rb_minus(gs.$length(), 1), 'downto', [0], function $$13(i){var group = nil; + + + + if (i == null) i = nil;; + if ($truthy(gs['$[]'](i).$breakables()['$empty?']())) { + return nil + } else { + + group = gs['$slice!'](i, 1).$first(); + group.$break(); + Opal.ret(group); + };}, 1); + $send(gs, 'each', [], function $$14(group){ + + + if (group == null) group = nil;; + return group.$break();}, 1); + return gs.$clear();}, 1); + return nil; + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, 0); + return $def(self, '$delete', function $GroupQueue_delete$15(group) { + var self = this; + + return self.queue['$[]'](group.$depth()).$delete(group) + }, 1); + })($nesting[0], null); + return (function($base, $super) { + var self = $klass($base, $super, 'SingleLine'); + + var $proto = self.$$prototype; + + $proto.output = $proto.first = nil; + + + $def(self, '$initialize', function $$initialize(output, maxwidth, newline) { + var self = this; + + + + if (maxwidth == null) maxwidth = nil;; + + if (newline == null) newline = nil;; + self.output = output; + return (self.first = [true]); + }, -2); + + $def(self, '$text', function $$text(obj, width) { + var self = this; + + + + if (width == null) width = nil;; + return self.output['$<<'](obj); + }, -2); + + $def(self, '$breakable', function $$breakable(sep, width) { + var self = this; + + + + if (sep == null) sep = " ";; + + if (width == null) width = nil;; + return self.output['$<<'](sep); + }, -1); + + $def(self, '$nest', function $$nest(indent) { + var $yield = $$nest.$$p || nil; + + delete $$nest.$$p; + return Opal.yieldX($yield, []); + }, 1); + + $def(self, '$group', function $$group(indent, open_obj, close_obj, open_width, close_width) { + var $yield = $$group.$$p || nil, self = this; + + delete $$group.$$p; + + + if (indent == null) indent = nil;; + + if (open_obj == null) open_obj = "";; + + if (close_obj == null) close_obj = "";; + + if (open_width == null) open_width = nil;; + + if (close_width == null) close_width = nil;; + self.first.$push(true); + self.output['$<<'](open_obj); + Opal.yieldX($yield, []); + self.output['$<<'](close_obj); + return self.first.$pop(); + }, -1); + + $def(self, '$flush', function $$flush() { + + return nil + }, 0); + return $def(self, '$first?', function $SingleLine_first$ques$16() { + var self = this, result = nil, $writer = nil; + + + result = self.first['$[]'](-1); + + $writer = [-1, false]; + $send(self.first, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, 0); + })($nesting[0], null); + })($nesting[0], null, $nesting) +}; + +Opal.modules["pp"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $send = Opal.send, $defs = Opal.defs, $to_a = Opal.to_a, $module = Opal.module, $eqeq = Opal.eqeq, $hash2 = Opal.hash2, $rb_minus = Opal.rb_minus, $def = Opal.def, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $eqeqeq = Opal.eqeqeq, $neqeq = Opal.neqeq, $not = Opal.not, $rb_gt = Opal.rb_gt, $rb_le = Opal.rb_le; + + Opal.add_stubs('require,new,guard_inspect_key,pp,flush,<<,bind_call,instance_method,to_proc,attr_accessor,==,[],current,compare_by_identity,[]=,-,include?,delete,text,is_a?,__getobj__,check_inspect_key,group,pretty_print_cycle,push_inspect_key,pretty_print,sharing_detection,pop_inspect_key,+,name,class,chomp,breakable,lambda,comma_breakable,__send__,call,object_address_group,seplist,pretty_print_instance_variables,===,to_s,instance_eval,include,!=,owner,inspect,respond_to?,!,pp_object,sort,instance_variables,raise,singleline_pp,dup,empty?,pp_hash,each,keys,sprintf,mcall,begin,exclude_end?,end,lines,>,size,named_captures,regexp,object_group,class_eval,string,<=,first,module_function'); + + self.$require("thread"); + self.$require("stringio"); + self.$require("prettyprint"); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'PP'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $defs($$('PP'), '$pp', function $$pp(obj, out, width) { + var q = nil; + if ($gvars.stdout == null) $gvars.stdout = nil; + + + + if (out == null) out = $gvars.stdout;; + + if (width == null) width = 79;; + q = $$('PP').$new(out, width); + $send(q, 'guard_inspect_key', [], function $$1(){ + return q.$pp(obj)}, 0); + q.$flush(); + return out['$<<']("\n"); + }, -2); + $defs($$('PP'), '$singleline_pp', function $$singleline_pp(obj, out) { + var q = nil; + if ($gvars.stdout == null) $gvars.stdout = nil; + + + + if (out == null) out = $gvars.stdout;; + q = $$('SingleLine').$new(out); + $send(q, 'guard_inspect_key', [], function $$2(){ + return q.$pp(obj)}, 0); + q.$flush(); + return out; + }, -2); + $defs($$('PP'), '$mcall', function $$mcall(obj, mod, meth, $a) { + var block = $$mcall.$$p || nil, $post_args, args; + + delete $$mcall.$$p; + + ; + + $post_args = Opal.slice.call(arguments, 3); + + args = $post_args;; + return $send(mod.$instance_method(meth), 'bind_call', [obj].concat($to_a(args)), block.$to_proc()); + }, -4); + self.sharing_detection = false; + (function(self, $parent_nesting) { + + return self.$attr_accessor("sharing_detection") + })(Opal.get_singleton_class(self), $nesting); + (function($base, $parent_nesting) { + var self = $module($base, 'PPMethods'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$guard_inspect_key', function $$guard_inspect_key() { + var $yield = $$guard_inspect_key.$$p || nil, $writer = nil, save = nil; + + delete $$guard_inspect_key.$$p; + + if ($eqeq($$('Thread').$current()['$[]']("__recursive_key__"), nil)) { + + $writer = ["__recursive_key__", $hash2([], {}).$compare_by_identity()]; + $send($$('Thread').$current(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + if ($eqeq($$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"), nil)) { + + $writer = ["inspect", $hash2([], {}).$compare_by_identity()]; + $send($$('Thread').$current()['$[]']("__recursive_key__"), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + save = $$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"); + + return (function() { try { + + + $writer = ["inspect", $hash2([], {}).$compare_by_identity()]; + $send($$('Thread').$current()['$[]']("__recursive_key__"), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return Opal.yieldX($yield, []);; + } finally { + (($writer = ["inspect", save]), $send($$('Thread').$current()['$[]']("__recursive_key__"), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) + }; })();; + }, 0); + + $def(self, '$check_inspect_key', function $$check_inspect_key(id) { + var $ret_or_1 = nil, $ret_or_2 = nil; + + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = $$('Thread').$current()['$[]']("__recursive_key__"))) ? ($$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect")) : ($ret_or_2))))) { + return $$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect")['$include?'](id) + } else { + return $ret_or_1 + } + }, 1); + + $def(self, '$push_inspect_key', function $$push_inspect_key(id) { + var $writer = nil; + + + $writer = [id, true]; + $send($$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }, 1); + + $def(self, '$pop_inspect_key', function $$pop_inspect_key(id) { + + return $$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect").$delete(id) + }, 1); + + $def(self, '$pp', function $$pp(obj) {try { + + var $a, self = this; + + + ; + + if (obj === null) { + self.$text("null") + Opal.ret(nil) + } + else if (obj === undefined) { + self.$text("undefined") + Opal.ret(nil) + } + else if (obj.$$class === undefined) { + self.$text(Object.prototype.toString.apply(obj)) + Opal.ret(nil) + } + ; + if (($truthy((($a = $$$('::', 'Delegator', 'skip_raise')) ? 'constant' : nil)) && ($truthy(obj['$is_a?']($$$('Delegator')))))) { + obj = obj.$__getobj__() + }; + if ($truthy(self.$check_inspect_key(obj))) { + + $send(self, 'group', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; + + return obj.$pretty_print_cycle(self)}, {$$arity: 0, $$s: self}); + return nil; + }; + + return (function() { try { + + self.$push_inspect_key(obj); + return $send(self, 'group', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; + + return obj.$pretty_print(self)}, {$$arity: 0, $$s: self}); + } finally { + ($truthy($$('PP').$sharing_detection()) ? (nil) : (self.$pop_inspect_key(obj))) + }; })();; + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, -1); + + $def(self, '$object_group', function $$object_group(obj) { + var block = $$object_group.$$p || nil, self = this; + + delete $$object_group.$$p; + + ; + return $send(self, 'group', [1, $rb_plus("#<", obj.$class().$name()), ">"], block.$to_proc()); + }, 1); + + $def(self, '$object_address_group', function $$object_address_group(obj) { + var block = $$object_address_group.$$p || nil, self = this, str = nil; + + delete $$object_address_group.$$p; + + ; + str = $$('Kernel').$instance_method("to_s").$bind_call(obj); + str = str.$chomp(">"); + return $send(self, 'group', [1, str, ">"], block.$to_proc()); + }, 1); + + $def(self, '$comma_breakable', function $$comma_breakable() { + var self = this; + + + self.$text(","); + return self.$breakable(); + }, 0); + + $def(self, '$seplist', function $$seplist(list, sep, iter_method) { + var $yield = $$seplist.$$p || nil, self = this, $ret_or_1 = nil, first = nil; + + delete $$seplist.$$p; + + + if (sep == null) sep = nil;; + + if (iter_method == null) iter_method = "each";; + sep = ($truthy(($ret_or_1 = sep)) ? ($ret_or_1) : ($send(self, 'lambda', [], function $$5(){var self = $$5.$$s == null ? this : $$5.$$s; + + return self.$comma_breakable()}, {$$arity: 0, $$s: self}))); + first = true; + return $send(list, '__send__', [iter_method], function $$6($a){var $post_args, v; + + + + $post_args = Opal.slice.call(arguments); + + v = $post_args;; + if ($truthy(first)) { + first = false + } else { + sep.$call() + }; + return Opal.yieldX($yield, $to_a(v));;}, -1); + }, -2); + + $def(self, '$pp_object', function $$pp_object(obj) { + var self = this; + + return $send(self, 'object_address_group', [obj], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s; + + return $send(self, 'seplist', [obj.$pretty_print_instance_variables(), $send(self, 'lambda', [], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; + + return self.$text(",")}, {$$arity: 0, $$s: self})], function $$9(v){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (v == null) v = nil;; + self.$breakable(); + if ($eqeqeq($$('Symbol'), v)) { + v = v.$to_s() + }; + self.$text(v); + self.$text("="); + return $send(self, 'group', [1], function $$10(){var self = $$10.$$s == null ? this : $$10.$$s; + + + self.$breakable(""); + return self.$pp(obj.$instance_eval(v));}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self})}, {$$arity: 0, $$s: self}) + }, 1); + return $def(self, '$pp_hash', function $$pp_hash(obj) { + var self = this; + + return $send(self, 'group', [1, "{", "}"], function $$11(){var self = $$11.$$s == null ? this : $$11.$$s; + + return $send(self, 'seplist', [obj, nil, "each_pair"], function $$12(k, v){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (k == null) k = nil;; + + if (v == null) v = nil;; + return $send(self, 'group', [], function $$13(){var self = $$13.$$s == null ? this : $$13.$$s; + + + self.$pp(k); + self.$text("=>"); + return $send(self, 'group', [1], function $$14(){var self = $$14.$$s == null ? this : $$14.$$s; + + + self.$breakable(""); + return self.$pp(v);}, {$$arity: 0, $$s: self});}, {$$arity: 0, $$s: self});}, {$$arity: 2, $$s: self})}, {$$arity: 0, $$s: self}) + }, 1); + })($nesting[0], $nesting); + self.$include($$('PPMethods')); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SingleLine'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return self.$include($$('PPMethods')) + })($nesting[0], $$$($$('PrettyPrint'), 'SingleLine'), $nesting); + return (function($base, $parent_nesting) { + var self = $module($base, 'ObjectMixin'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this, umethod_method = nil, inspect_method = nil; + + + umethod_method = $$('Object').$instance_method("method"); + + try { + inspect_method = umethod_method.$bind_call(self, "inspect") + } catch ($err) { + if (Opal.rescue($err, [$$('NameError')])) { + try { + nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + if (($truthy(inspect_method) && ($neqeq(inspect_method.$owner(), $$('Kernel'))))) { + return q.$text(self.$inspect()) + } else if (($not(inspect_method) && ($truthy(self['$respond_to?']("inspect"))))) { + return q.$text(self.$inspect()) + } else { + return q.$pp_object(self) + }; + }, 1); + + $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { + var self = this; + + return $send(q, 'object_address_group', [self], function $$15(){ + + q.$breakable(); + return q.$text("...");}, 0) + }, 1); + + $def(self, '$pretty_print_instance_variables', function $$pretty_print_instance_variables() { + var self = this; + + return self.$instance_variables().$sort() + }, 0); + return $def(self, '$pretty_print_inspect', function $$pretty_print_inspect() { + var self = this; + + + if ($eqeq($$('Object').$instance_method("method").$bind_call(self, "pretty_print").$owner(), $$$($$('PP'), 'ObjectMixin'))) { + self.$raise("pretty_print is not overridden for " + (self.$class())) + }; + return $$('PP').$singleline_pp(self, "".$dup()); + }, 0); + })($nesting[0], $nesting); + })($nesting[0], $$('PrettyPrint'), $nesting); + (function($base, $super) { + var self = $klass($base, $super, 'Array'); + + + + + $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this; + + return $send(q, 'group', [1, "[", "]"], function $$16(){var self = $$16.$$s == null ? this : $$16.$$s; + + return $send(q, 'seplist', [self], function $$17(v){ + + + if (v == null) v = nil;; + return q.$pp(v);}, 1)}, {$$arity: 0, $$s: self}) + }, 1); + return $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { + var self = this; + + return q.$text(($truthy(self['$empty?']()) ? ("[]") : ("[...]"))) + }, 1); + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'Hash'); + + + + + $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this; + + return q.$pp_hash(self) + }, 1); + return $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { + var self = this; + + return q.$text(($truthy(self['$empty?']()) ? ("{}") : ("{...}"))) + }, 1); + })($nesting[0], null); + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$pretty_print', function $$pretty_print(q) { + var h = nil; + + + h = $hash2([], {}); + $send($$('ENV').$keys().$sort(), 'each', [], function $$18(k){var $writer = nil; + + + + if (k == null) k = nil;; + $writer = [k, $$('ENV')['$[]'](k)]; + $send(h, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + return q.$pp_hash(h); + }, 1) + })(Opal.get_singleton_class($$('ENV')), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Struct'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this; + + return $send(q, 'group', [1, self.$sprintf("#"], function $$19(){var self = $$19.$$s == null ? this : $$19.$$s; + + return $send(q, 'seplist', [$$('PP').$mcall(self, $$('Struct'), "members"), $send(self, 'lambda', [], function $$20(){ + return q.$text(",")}, 0)], function $$21(member){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (member == null) member = nil;; + q.$breakable(); + q.$text(member.$to_s()); + q.$text("="); + return $send(q, 'group', [1], function $$22(){var self = $$22.$$s == null ? this : $$22.$$s; + + + q.$breakable(""); + return q.$pp(self['$[]'](member));}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self})}, {$$arity: 0, $$s: self}) + }, 1); + return $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { + var self = this; + + return q.$text(self.$sprintf("#", $$('PP').$mcall(self, $$('Kernel'), "class").$name())) + }, 1); + })($nesting[0], null, $nesting); + (function($base, $super) { + var self = $klass($base, $super, 'Range'); + + + return $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this; + + + q.$pp(self.$begin()); + q.$breakable(""); + q.$text(($truthy(self['$exclude_end?']()) ? ("...") : (".."))); + q.$breakable(""); + if ($truthy(self.$end())) { + return q.$pp(self.$end()) + } else { + return nil + }; + }, 1) + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'String'); + + + return $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this, lines = nil; + + + lines = self.$lines(); + if ($truthy($rb_gt(lines.$size(), 1))) { + return $send(q, 'group', [0, "", ""], function $$23(){var self = $$23.$$s == null ? this : $$23.$$s; + + return $send(q, 'seplist', [lines, $send(self, 'lambda', [], function $$24(){ + + q.$text(" +"); + return q.$breakable();}, 0)], function $$25(v){ + + + if (v == null) v = nil;; + return q.$pp(v);}, 1)}, {$$arity: 0, $$s: self}) + } else { + return q.$text(self.$inspect()) + }; + }, 1) + })($nesting[0], null); + (function($base, $super) { + var self = $klass($base, $super, 'MatchData'); + + + return $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this, nc = nil; + + + nc = []; + $send(self.$regexp().$named_captures(), 'each', [], function $$26(name, indexes){ + + + if (name == null) name = nil;; + + if (indexes == null) indexes = nil;; + return $send(indexes, 'each', [], function $$27(i){var $writer = nil; + + + + if (i == null) i = nil;; + $writer = [i, name]; + $send(nc, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1);}, 2); + return $send(q, 'object_group', [self], function $$28(){var self = $$28.$$s == null ? this : $$28.$$s; + + + q.$breakable(); + return $send(q, 'seplist', [Opal.Range.$new(0,self.$size(), true), $send(self, 'lambda', [], function $$29(){ + return q.$breakable()}, 0)], function $$30(i){var self = $$30.$$s == null ? this : $$30.$$s; + + + + if (i == null) i = nil;; + if ($eqeq(i, 0)) { + return q.$pp(self['$[]'](i)) + } else { + + if ($truthy(nc['$[]'](i))) { + q.$text(nc['$[]'](i)) + } else { + q.$pp(i) + }; + q.$text(":"); + return q.$pp(self['$[]'](i)); + };}, {$$arity: 1, $$s: self});}, {$$arity: 0, $$s: self}); + }, 1) + })($nesting[0], null); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Object'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return self.$include($$$($$('PP'), 'ObjectMixin')) + })($nesting[0], $$('BasicObject'), $nesting); + $send([$$('Numeric'), $$('Symbol'), $$('FalseClass'), $$('TrueClass'), $$('NilClass'), $$('Module')], 'each', [], function $$31(c){var self = $$31.$$s == null ? this : $$31.$$s; + + + + if (c == null) c = nil;; + return $send(c, 'class_eval', [], function $$32(){var self = $$32.$$s == null ? this : $$32.$$s; + + return $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { + var self = this; + + return q.$text(self.$inspect()) + }, 1)}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); + $send([$$('Numeric'), $$('FalseClass'), $$('TrueClass'), $$('Module')], 'each', [], function $$33(c){var self = $$33.$$s == null ? this : $$33.$$s; + + + + if (c == null) c = nil;; + return $send(c, 'class_eval', [], function $$34(){var self = $$34.$$s == null ? this : $$34.$$s; + + return $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this; + + return q.$text(self.$inspect()) + }, 1)}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); + return (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$pretty_inspect', function $$pretty_inspect() { + var self = this; + + return $$('PP').$pp(self, $$('StringIO').$new()).$string() + }, 0); + + $def(self, '$pp', function $$pp($a) { + var $post_args, objs; + + + + $post_args = Opal.slice.call(arguments); + + objs = $post_args;; + $send(objs, 'each', [], function $$35(obj){ + + + if (obj == null) obj = nil;; + return $$('PP').$pp(obj);}, 1); + if ($truthy($rb_le(objs.$size(), 1))) { + return objs.$first() + } else { + return objs + }; + }, -1); + return self.$module_function("pp"); + })($nesting[0], $nesting); +}; + +Opal.modules["opal-replutils"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $truthy = Opal.truthy, $lambda = Opal.lambda, $rb_plus = Opal.rb_plus, $send = Opal.send, $rb_minus = Opal.rb_minus, $def = Opal.def, $hash2 = Opal.hash2, $klass = Opal.klass, $const_set = Opal.const_set, $to_a = Opal.to_a, $defs = Opal.defs, $gvars = Opal.gvars, $send2 = Opal.send2, $find_super = Opal.find_super, $regexp = Opal.regexp, $eqeqeq = Opal.eqeqeq; + + Opal.add_stubs('require,module_function,methods,ancestors,class,instance_variables,include?,instance_methods,constants,class_variables,empty?,+,[],join,sort,map,each,&,-,name,default,colorize,inspect,pp,ls,call,full_message,gets,parse,eval_and_print,puts,[]=,new,string,guard_inspect_key,flush,<<,length,dig,scan,to_proc,tokenize,===,=~,token'); + + self.$require("pp"); + self.$require("stringio"); + return (function($base, $parent_nesting) { + var self = $module($base, 'REPLUtils'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + self.$module_function(); + + $def(self, '$ls', function $$ls(object, colorize) { + var methods = nil, imethods = nil, ancestors = nil, constants = nil, ivs = nil, cvs = nil, blue = nil, dark_blue = nil, out = nil; + + + methods = (imethods = object.$methods()); + ancestors = object.$class().$ancestors(); + constants = []; + ivs = object.$instance_variables(); + cvs = []; + if ($truthy([$$('Class'), $$('Module')]['$include?'](object.$class()))) { + + imethods = object.$instance_methods(); + ancestors = object.$ancestors(); + constants = object.$constants(); + cvs = object.$class_variables(); + }; + if ($truthy(colorize)) { + + blue = $lambda(function $$1(i){ + + + if (i == null) i = nil;; + return "\u001b[1;34m" + (i) + "\u001b[0m";}, 1); + dark_blue = $lambda(function $$2(i){ + + + if (i == null) i = nil;; + return "\u001b[34m" + (i) + "\u001b[0m";}, 1); + } else { + blue = (dark_blue = $lambda(function $$3(i){ + + + if (i == null) i = nil;; + return i;}, 1)) + }; + out = ""; + if (!$truthy(cvs['$empty?']())) { + out = $rb_plus("" + (blue['$[]']("class variables")) + ": " + ($send(cvs, 'map', [], function $$4(i){ + + + if (i == null) i = nil;; + return dark_blue['$[]'](i);}, 1).$sort().$join(" ")) + "\n", out) + }; + if (!$truthy(ivs['$empty?']())) { + out = $rb_plus("" + (blue['$[]']("instance variables")) + ": " + ($send(ivs, 'map', [], function $$5(i){ + + + if (i == null) i = nil;; + return dark_blue['$[]'](i);}, 1).$sort().$join(" ")) + "\n", out) + }; + $send(ancestors, 'each', [], function $$6(a){var im = nil, meths = nil; + + + + if (a == null) a = nil;; + im = a.$instance_methods(false); + meths = im['$&'](imethods); + methods = $rb_minus(methods, meths); + imethods = $rb_minus(imethods, meths); + if (($truthy(meths['$empty?']()) || ($truthy([$$('Object'), $$('BasicObject'), $$('Kernel'), $$$($$('PP'), 'ObjectMixin')]['$include?'](a))))) { + return nil; + }; + return (out = $rb_plus("" + (blue['$[]']("" + (a.$name()) + "#methods")) + ": " + (meths.$sort().$join(" ")) + "\n", out));}, 1); + methods = methods['$&'](object.$methods(false)); + if (!$truthy(methods['$empty?']())) { + out = $rb_plus("" + (blue['$[]']("self.methods")) + ": " + (methods.$sort().$join(" ")) + "\n", out) + }; + if (!$truthy(constants['$empty?']())) { + out = $rb_plus("" + (blue['$[]']("constants")) + ": " + ($send(constants, 'map', [], function $$7(i){ + + + if (i == null) i = nil;; + return dark_blue['$[]'](i);}, 1).$sort().$join(" ")) + "\n", out) + }; + return out; + }, 2); + + $def(self, '$eval_and_print', function $$eval_and_print(func, mode, colorize) { + var self = this, printer = nil, e = nil; + + try { + + printer = ($truthy(colorize) ? ($lambda(function $$8(i){var e = nil; + + + + if (i == null) i = nil;; + try { + return $$('ColorPrinter').$default(i) + } catch ($err) { + if (Opal.rescue($err, [$$('StandardError')])) {(e = $err) + try { + return $$('ColorPrinter').$colorize($$('Opal').$inspect(i)) + } finally { Opal.pop_exception(); } + } else { throw $err; } + };}, 1)) : ($lambda(function $$9(i){var out = nil; + + + + if (i == null) i = nil;; + try { + + out = []; + $$('PP').$pp(i, out); + return out.$join(); + } catch ($err) { + if (Opal.rescue($err, [$$('StandardError')])) { + try { + return $$('Opal').$inspect(i) + } finally { Opal.pop_exception(); } + } else { throw $err; } + };}, 1))); + + var $_result = eval(func); + + if (mode == 'silent') return nil; + + if ($_result === null) { + return "=> null"; + } + else if (typeof $_result === 'undefined') { + return "=> undefined"; + } + else if (typeof $_result.$$class === 'undefined') { + try { + var json = JSON.stringify($_result, null, 2); + if (!colorize) json = $$('ColorPrinter').$colorize(json) + return "=> " + $_result.toString() + " => " + json; + } + catch(e) { + return "=> " + $_result.toString(); + } + } + else { + if (mode == 'ls') { + return self.$ls($_result, colorize); + } + else { + var pretty = printer.$call($_result); + // Is it multiline? If yes, add a linebreak + if (pretty.match(/\n.*?\n/)) pretty = "\n" + pretty; + return "=> " + pretty; + } + } + ; + } catch ($err) { + if (Opal.rescue($err, [$$('Exception')])) {(e = $err) + try { + return e.$full_message($hash2(["highlight"], {"highlight": true})) + } finally { Opal.pop_exception(); } + } else { throw $err; } + } + }, 3); + + $def(self, '$js_repl', function $$js_repl() { + var $a, self = this, line = nil, input = nil, out = nil; + + while ($truthy((line = self.$gets()))) { + + input = $$('JSON').$parse(line); + out = self.$eval_and_print(input['$[]']("code"), input['$[]']("mode"), input['$[]']("colors")); + if ($truthy(out)) { + self.$puts(out) + }; + self.$puts("<<>>"); + } + }, 0); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ColorPrinter'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $writer = nil; + + + $const_set($nesting[0], 'TOKEN_COLORS', $hash2(["debug", "annotation", "attribute_name", "attribute_value", "binary", "char", "class", "class_variable", "color", "comment", "constant", "decorator", "definition", "directive", "docstring", "doctype", "done", "entity", "error", "exception", "float", "function", "global_variable", "hex", "id", "include", "integer", "imaginary", "important", "key", "keyword", "label", "local_variable", "namespace", "octal", "predefined", "predefined_constant", "predefined_type", "preprocessor", "pseudo_class", "regexp", "reserved", "shell", "string", "symbol", "tag", "type", "value", "variable", "insert", "delete", "change", "head"], {"debug": "\u001b[1;37;44m", "annotation": "\u001b[34m", "attribute_name": "\u001b[35m", "attribute_value": "\u001b[31m", "binary": $hash2(["self", "char", "delimiter"], {"self": "\u001b[31m", "char": "\u001b[1;31m", "delimiter": "\u001b[1;31m"}), "char": $hash2(["self", "delimiter"], {"self": "\u001b[35m", "delimiter": "\u001b[1;35m"}), "class": "\u001b[1;35;4m", "class_variable": "\u001b[36m", "color": "\u001b[32m", "comment": $hash2(["self", "char", "delimiter"], {"self": "\u001b[1;30m", "char": "\u001b[37m", "delimiter": "\u001b[37m"}), "constant": "\u001b[1;34;4m", "decorator": "\u001b[35m", "definition": "\u001b[1;33m", "directive": "\u001b[33m", "docstring": "\u001b[31m", "doctype": "\u001b[1;34m", "done": "\u001b[1;30;2m", "entity": "\u001b[31m", "error": "\u001b[1;37;41m", "exception": "\u001b[1;31m", "float": "\u001b[1;35m", "function": "\u001b[1;34m", "global_variable": "\u001b[1;32m", "hex": "\u001b[1;36m", "id": "\u001b[1;34m", "include": "\u001b[31m", "integer": "\u001b[1;34m", "imaginary": "\u001b[1;34m", "important": "\u001b[1;31m", "key": $hash2(["self", "char", "delimiter"], {"self": "\u001b[35m", "char": "\u001b[1;35m", "delimiter": "\u001b[1;35m"}), "keyword": "\u001b[32m", "label": "\u001b[1;33m", "local_variable": "\u001b[33m", "namespace": "\u001b[1;35m", "octal": "\u001b[1;34m", "predefined": "\u001b[36m", "predefined_constant": "\u001b[1;36m", "predefined_type": "\u001b[1;32m", "preprocessor": "\u001b[1;36m", "pseudo_class": "\u001b[1;34m", "regexp": $hash2(["self", "delimiter", "modifier", "char"], {"self": "\u001b[35m", "delimiter": "\u001b[1;35m", "modifier": "\u001b[35m", "char": "\u001b[1;35m"}), "reserved": "\u001b[32m", "shell": $hash2(["self", "char", "delimiter", "escape"], {"self": "\u001b[33m", "char": "\u001b[1;33m", "delimiter": "\u001b[1;33m", "escape": "\u001b[1;33m"}), "string": $hash2(["self", "modifier", "char", "delimiter", "escape"], {"self": "\u001b[31m", "modifier": "\u001b[1;31m", "char": "\u001b[1;35m", "delimiter": "\u001b[1;31m", "escape": "\u001b[1;31m"}), "symbol": $hash2(["self", "delimiter"], {"self": "\u001b[33m", "delimiter": "\u001b[1;33m"}), "tag": "\u001b[32m", "type": "\u001b[1;34m", "value": "\u001b[36m", "variable": "\u001b[34m", "insert": $hash2(["self", "insert", "eyecatcher"], {"self": "\u001b[42m", "insert": "\u001b[1;32;42m", "eyecatcher": "\u001b[102m"}), "delete": $hash2(["self", "delete", "eyecatcher"], {"self": "\u001b[41m", "delete": "\u001b[1;31;41m", "eyecatcher": "\u001b[101m"}), "change": $hash2(["self", "change"], {"self": "\u001b[44m", "change": "\u001b[37;44m"}), "head": $hash2(["self", "filename"], {"self": "\u001b[45m", "filename": "\u001b[37;45m"})})); + + $writer = ["keyword", $$('TOKEN_COLORS')['$[]']("reserved")]; + $send($$('TOKEN_COLORS'), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = ["method", $$('TOKEN_COLORS')['$[]']("function")]; + $send($$('TOKEN_COLORS'), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = ["escape", $$('TOKEN_COLORS')['$[]']("delimiter")]; + $send($$('TOKEN_COLORS'), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + $defs(self, '$default', function $ColorPrinter_default$10(obj, width) { + var self = this, pager = nil; + + + + if (width == null) width = 79;; + pager = $$('StringIO').$new(); + self.$pp(obj, pager, width); + return pager.$string(); + }, -2); + $defs(self, '$pp', function $$pp(obj, output, max_width) { + var queue = nil; + if ($gvars.DEFAULT_OUTPUT == null) $gvars.DEFAULT_OUTPUT = nil; + + + + if (output == null) output = $gvars.DEFAULT_OUTPUT;; + + if (max_width == null) max_width = 79;; + queue = $$('ColorPrinter').$new(output, max_width, "\n"); + $send(queue, 'guard_inspect_key', [], function $$11(){ + return queue.$pp(obj)}, 0); + queue.$flush(); + return output['$<<']("\n"); + }, -2); + + $def(self, '$text', function $$text(str, max_width) { + var $yield = $$text.$$p || nil, self = this; + + delete $$text.$$p; + + + if (max_width == null) max_width = str.$length();; + return $send2(self, $find_super(self, 'text', $$text, false, true), 'text', [$$('ColorPrinter').$colorize(str), max_width], null); + }, -2); + $defs(self, '$token', function $$token(string, $a) { + var $post_args, name; + + + + $post_args = Opal.slice.call(arguments, 1); + + name = $post_args;; + return $rb_plus($rb_plus($send($$('TOKEN_COLORS'), 'dig', $to_a(name)), string), "\u001b[0m"); + }, -2); + $const_set($nesting[0], 'NUMBER', "[+-]?(?:0x[0-9a-fA-F]+|[0-9.]+(?:e[+-][0-9]+|i)?)"); + $const_set($nesting[0], 'REGEXP', "/.*?/[iesu]*"); + $const_set($nesting[0], 'STRING', "\".*?\""); + $const_set($nesting[0], 'TOKEN_REGEXP', $regexp(["(\\s+|=>|[@$:]?[a-z]\\w+|[A-Z]\\w+|", $$('NUMBER'), "|", $$('REGEXP'), "|", $$('STRING'), "|#<.*?[> ]|.)"])); + $defs(self, '$tokenize', function $$tokenize(str) { + + return $send(str.$scan($$('TOKEN_REGEXP')), 'map', [], "first".$to_proc()) + }, 1); + return $defs(self, '$colorize', function $$colorize(str) { + var self = this, tokens = nil; + + + tokens = self.$tokenize(str); + return $send(tokens, 'map', [], function $$12(tok){var self = $$12.$$s == null ? this : $$12.$$s, $ret_or_1 = nil; + + + + if (tok == null) tok = nil;; + if ($eqeqeq(/^[0-9+-]/, ($ret_or_1 = tok))) { + if ($truthy(/[.e]/['$=~'](tok))) { + return self.$token(tok, "float") + } else { + return self.$token(tok, "integer") + } + } else if ($eqeqeq(/^"/, $ret_or_1)) { + return self.$token(tok, "string", "self") + } else if ($eqeqeq(/^:/, $ret_or_1)) { + return self.$token(tok, "symbol", "self") + } else if ($eqeqeq(/^[A-Z]/, $ret_or_1)) { + return self.$token(tok, "constant") + } else if (($eqeqeq("<", $ret_or_1) || (($eqeqeq("#", $ret_or_1) || (($eqeqeq(/^#", $ret_or_1)))))))))) { + return self.$token(tok, "keyword") + } else if ($eqeqeq(/^\/./, $ret_or_1)) { + return self.$token(tok, "regexp", "self") + } else if (($eqeqeq("true", $ret_or_1) || (($eqeqeq("false", $ret_or_1) || ($eqeqeq("nil", $ret_or_1)))))) { + return self.$token(tok, "predefined_constant") + } else { + return tok + };}, {$$arity: 1, $$s: self}).$join(); + }, 1); + })($nesting[0], $$$('PP'), $nesting); + })($nesting[0], $nesting); +}; diff --git a/opal/master/opal-replutils.min.js b/opal/master/opal-replutils.min.js new file mode 100644 index 00000000..55f256de --- /dev/null +++ b/opal/master/opal-replutils.min.js @@ -0,0 +1 @@ +Opal.modules.thread=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$defs=Opal.defs,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$hash2=Opal.hash2,$Opal=Opal.Opal,$alias=Opal.alias,$const_set=Opal.const_set;return Opal.add_stubs("allocate,core_initialize!,current,raise,[],coerce_key_name,[]=,-,key?,keys,private,coerce_to!,clear,empty?,size,shift,push,each,to_proc,=~,last_match,to_i,inspect,attr_reader,locked?,lock,unlock"),$klass($nesting[0],$$("StandardError"),"ThreadError"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Thread"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.fiber_locals=$proto.thread_locals=nil,$defs(self,"$current",(function(){return null==this.current&&(this.current=nil),$truthy(this.current)||(this.current=this.$allocate(),this.current["$core_initialize!"]()),this.current}),0),$defs(self,"$list",(function(){return[this.$current()]}),0),$def(self,"$initialize",(function($a){var self=this;return Opal.slice.call(arguments),self.$raise($$("NotImplementedError"),"Thread creation not available")}),-1),$def(self,"$[]",(function(key){return this.fiber_locals["$[]"](this.$coerce_key_name(key))}),1),$def(self,"$[]=",(function(key,value){var $writer;return $writer=[this.$coerce_key_name(key),value],$send(this.fiber_locals,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$def(self,"$key?",(function(key){return this.fiber_locals["$key?"](this.$coerce_key_name(key))}),1),$def(self,"$keys",(function(){return this.fiber_locals.$keys()}),0),$def(self,"$thread_variable_get",(function(key){return this.thread_locals["$[]"](this.$coerce_key_name(key))}),1),$def(self,"$thread_variable_set",(function(key,value){var $writer;return $writer=[this.$coerce_key_name(key),value],$send(this.thread_locals,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$def(self,"$thread_variable?",(function(key){return this.thread_locals["$key?"](this.$coerce_key_name(key))}),1),$def(self,"$thread_variables",(function(){return this.thread_locals.$keys()}),0),self.$private(),$def(self,"$core_initialize!",(function(){return this.thread_locals=$hash2([],{}),this.fiber_locals=$hash2([],{})}),0),$def(self,"$coerce_key_name",(function(key){return $Opal["$coerce_to!"](key,$$("String"),"to_s")}),1),function($base,$super,$parent_nesting){var self=$klass($base,null,"Queue"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.storage=nil,$def(self,"$initialize",(function(){return this.$clear()}),0),$def(self,"$clear",(function(){return this.storage=[]}),0),$def(self,"$empty?",(function(){return this.storage["$empty?"]()}),0),$def(self,"$size",(function(){return this.storage.$size()}),0),$def(self,"$pop",(function(non_block){return null==non_block&&(non_block=!1),$truthy(this["$empty?"]())&&($truthy(non_block)&&this.$raise($$("ThreadError"),"Queue empty"),this.$raise($$("ThreadError"),"Deadlock")),this.storage.$shift()}),-1),$def(self,"$push",(function(value){return this.storage.$push(value)}),1),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;return delete $$each.$$p,$send(this.storage,"each",[],block.$to_proc())}),0),$alias(self,"<<","push"),$alias(self,"deq","pop"),$alias(self,"enq","push"),$alias(self,"length","size"),$alias(self,"shift","pop")}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var $nesting=[$klass($base,null,"Backtrace")].concat($parent_nesting);(function($base,$super,$parent_nesting){var self=$klass($base,null,"Location"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.label=$proto.str=nil,$def(self,"$initialize",(function(str){var $ret_or_1;return this.str=str,str["$=~"](/^(.*?):(\d+):(\d+):in `(.*?)'$/),this.path=$$("Regexp").$last_match(1),this.label=$$("Regexp").$last_match(4),this.lineno=$$("Regexp").$last_match(2).$to_i(),this.label["$=~"](/(\w+)$/),this.base_label=$truthy($ret_or_1=$$("Regexp").$last_match(1))?$ret_or_1:this.label}),1),$def(self,"$to_s",(function(){return this.str}),0),$def(self,"$inspect",(function(){return this.str.$inspect()}),0),self.$attr_reader("base_label","label","lineno","path"),$alias(self,"absolute_path","path")})($nesting[0],0,$nesting)}($nesting[0],0,$nesting)}($nesting[0],0,$nesting),$const_set($nesting[0],"Queue",$$$($$("Thread"),"Queue")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Mutex"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.locked=nil,$def(self,"$initialize",(function(){return this.locked=!1}),0),$def(self,"$lock",(function(){return $truthy(this.locked)&&this.$raise($$("ThreadError"),"Deadlock"),this.locked=!0,this}),0),$def(self,"$locked?",(function(){return this.locked}),0),$def(self,"$owned?",(function(){return this.locked}),0),$def(self,"$try_lock",(function(){return!$truthy(this["$locked?"]())&&(this.$lock(),!0)}),0),$def(self,"$unlock",(function(){return $truthy(this.locked)||this.$raise($$("ThreadError"),"Mutex not locked"),this.locked=!1,this}),0),$def(self,"$synchronize",(function $$synchronize(){var $yield=$$synchronize.$$p||nil,self=this;return delete $$synchronize.$$p,self.$lock(),function(){try{return Opal.yieldX($yield,[])}finally{self.$unlock()}}()}),0)}($nesting[0],0,$nesting)},Opal.modules.stringio=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$defs=Opal.defs,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$rb_ge=Opal.rb_ge,$rb_gt=Opal.rb_gt,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$eqeq=Opal.eqeq,$alias=Opal.alias;return Opal.add_stubs("new,call,close,attr_accessor,check_readable,==,length,===,>=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"StringIO"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.position=$proto.string=nil,$defs(self,"$open",(function $$open(string,mode){var res,block=$$open.$$p||nil,io=nil;return delete $$open.$$p,null==string&&(string=""),null==mode&&(mode=nil),io=this.$new(string,mode),res=block.$call(io),io.$close(),res}),-1),self.$attr_accessor("string"),$def(self,"$initialize",(function $$initialize(string,mode){return delete $$initialize.$$p,null==string&&(string=""),null==mode&&(mode="rw"),this.string=string,this.position=0,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[nil,mode],null)}),-1),$def(self,"$eof?",(function(){return this.$check_readable(),this.position["$=="](this.string.$length())}),0),$def(self,"$seek",(function(pos,whence){var $ret_or_1;return null==whence&&(whence=$$$($$("IO"),"SEEK_SET")),this.read_buffer="",$eqeqeq($$$($$("IO"),"SEEK_SET"),$ret_or_1=whence)?($truthy($rb_ge(pos,0))||this.$raise($$$($$("Errno"),"EINVAL")),this.position=pos):$eqeqeq($$$($$("IO"),"SEEK_CUR"),$ret_or_1)?$truthy($rb_gt($rb_plus(this.position,pos),this.string.$length()))?this.position=this.string.$length():this.position=$rb_plus(this.position,pos):$eqeqeq($$$($$("IO"),"SEEK_END"),$ret_or_1)&&($truthy($rb_gt(pos,this.string.$length()))?this.position=0:this.position=$rb_minus(this.position,pos)),0}),-2),$def(self,"$tell",(function(){return this.position}),0),$def(self,"$rewind",(function(){return this.$seek(0)}),0),$def(self,"$write",(function(string){var before=nil,after=nil;return this.$check_writable(),this.read_buffer="",string=this.$String(string),$eqeq(this.string.$length(),this.position)?(this.string=$rb_plus(this.string,string),this.position=$rb_plus(this.position,string.$length())):(before=this.string["$[]"](Opal.Range.$new(0,$rb_minus(this.position,1),!1)),after=this.string["$[]"](Opal.Range.$new($rb_plus(this.position,string.$length()),-1,!1)),this.string=$rb_plus($rb_plus(before,string),after),this.position=$rb_plus(this.position,string.$length()))}),1),$def(self,"$read",(function(length,outbuf){var string,str=nil;return null==length&&(length=nil),null==outbuf&&(outbuf=nil),this.$check_readable(),$truthy(this["$eof?"]())?nil:(string=$truthy(length)?(str=this.string["$[]"](this.position,length),this.position=$rb_plus(this.position,length),$truthy($rb_gt(this.position,this.string.$length()))&&(this.position=this.string.$length()),str):(str=this.string["$[]"](Opal.Range.$new(this.position,-1,!1)),this.position=this.string.$length(),str),$truthy(outbuf)?outbuf.$write(string):string)}),-1),$def(self,"$sysread",(function(length){return this.$check_readable(),this.$read(length)}),1),$alias(self,"eof","eof?"),$alias(self,"pos","tell"),$alias(self,"pos=","seek"),$alias(self,"readpartial","read")}($nesting[0],$$("IO"),$nesting)},Opal.modules.prettyprint=function(Opal){var $nesting=[],nil=Opal.nil,$klass=Opal.klass,$send=Opal.send,$rb_times=Opal.rb_times,$defs=Opal.defs,$truthy=Opal.truthy,$def=Opal.def,$rb_lt=Opal.rb_lt,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$eqeqeq=Opal.eqeqeq,$to_a=Opal.to_a;return Opal.add_stubs("dup,lambda,*,new,to_proc,flush,attr_reader,last,<,+,deq,empty?,breakables,shift,output,-,width,!,===,first,length,<<,add,break_outmost_groups,group,breakable,break?,call,text,group_sub,nest,depth,push,enq,pop,delete,each,clear,indent,current_group,newline,genspace,group_queue,[],downto,slice!,break,[]="),function($base,$super,$parent_nesting){var self=$klass($base,null,"PrettyPrint"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.group_stack=$proto.maxwidth=$proto.output_width=$proto.buffer_width=$proto.group_queue=$proto.buffer=$proto.output=$proto.newline=$proto.genspace=$proto.indent=nil,$defs($$("PrettyPrint"),"$format",(function $$format(output,maxwidth,newline,genspace){var $yield=$$format.$$p||nil,q=nil;return delete $$format.$$p,null==output&&(output="".$dup()),null==maxwidth&&(maxwidth=79),null==newline&&(newline="\n"),null==genspace&&(genspace=$send(this,"lambda",[],(function(n){return null==n&&(n=nil),$rb_times(" ",n)}),1)),q=$send($$("PrettyPrint"),"new",[output,maxwidth,newline],genspace.$to_proc()),Opal.yield1($yield,q),q.$flush(),output}),-1),$defs($$("PrettyPrint"),"$singleline_format",(function $$singleline_format(output,maxwidth,newline,genspace){var q,$yield=$$singleline_format.$$p||nil;return delete $$singleline_format.$$p,null==output&&(output="".$dup()),null==maxwidth&&(maxwidth=nil),null==newline&&(newline=nil),null==genspace&&(genspace=nil),q=$$("SingleLine").$new(output),Opal.yield1($yield,q),output}),-1),$def(self,"$initialize",(function $$initialize(output,maxwidth,newline){var $ret_or_1,root_group,genspace=$$initialize.$$p||nil;return delete $$initialize.$$p,null==output&&(output="".$dup()),null==maxwidth&&(maxwidth=79),null==newline&&(newline="\n"),this.output=output,this.maxwidth=maxwidth,this.newline=newline,this.genspace=$truthy($ret_or_1=genspace)?$ret_or_1:$send(this,"lambda",[],(function(n){return null==n&&(n=nil),$rb_times(" ",n)}),1),this.output_width=0,this.buffer_width=0,this.buffer=[],root_group=$$("Group").$new(0),this.group_stack=[root_group],this.group_queue=$$("GroupQueue").$new(root_group),this.indent=0}),-1),self.$attr_reader("output"),self.$attr_reader("maxwidth"),self.$attr_reader("newline"),self.$attr_reader("genspace"),self.$attr_reader("indent"),self.$attr_reader("group_queue"),$def(self,"$current_group",(function(){return this.group_stack.$last()}),0),$def(self,"$break_outmost_groups",(function(){for(var group=nil,data=nil,$ret_or_1=nil,text=nil;$truthy($rb_lt(this.maxwidth,$rb_plus(this.output_width,this.buffer_width)));){if(!$truthy(group=this.group_queue.$deq()))return nil;for(;!$truthy(group.$breakables()["$empty?"]());)data=this.buffer.$shift(),this.output_width=data.$output(this.output,this.output_width),this.buffer_width=$rb_minus(this.buffer_width,data.$width());for(;$truthy($truthy($ret_or_1=this.buffer["$empty?"]()["$!"]())?$$("Text")["$==="](this.buffer.$first()):$ret_or_1);)text=this.buffer.$shift(),this.output_width=text.$output(this.output,this.output_width),this.buffer_width=$rb_minus(this.buffer_width,text.$width())}}),0),$def(self,"$text",(function(obj,width){var text=nil;return null==width&&(width=obj.$length()),$truthy(this.buffer["$empty?"]())?(this.output["$<<"](obj),this.output_width=$rb_plus(this.output_width,width)):(text=this.buffer.$last(),$eqeqeq($$("Text"),text)||(text=$$("Text").$new(),this.buffer["$<<"](text)),text.$add(obj,width),this.buffer_width=$rb_plus(this.buffer_width,width),this.$break_outmost_groups())}),-2),$def(self,"$fill_breakable",(function(sep,width){return null==sep&&(sep=" "),null==width&&(width=sep.$length()),$send(this,"group",[],(function $$3(){return(null==$$3.$$s?this:$$3.$$s).$breakable(sep,width)}),{$$arity:0,$$s:this})}),-1),$def(self,"$breakable",(function(sep,width){var group=nil;return null==sep&&(sep=" "),null==width&&(width=sep.$length()),group=this.group_stack.$last(),$truthy(group["$break?"]())?(this.$flush(),this.output["$<<"](this.newline),this.output["$<<"](this.genspace.$call(this.indent)),this.output_width=this.indent,this.buffer_width=0):(this.buffer["$<<"]($$("Breakable").$new(sep,width,this)),this.buffer_width=$rb_plus(this.buffer_width,width),this.$break_outmost_groups())}),-1),$def(self,"$group",(function $$group(indent,open_obj,close_obj,open_width,close_width){var $yield=$$group.$$p||nil;return delete $$group.$$p,null==indent&&(indent=0),null==open_obj&&(open_obj=""),null==close_obj&&(close_obj=""),null==open_width&&(open_width=open_obj.$length()),null==close_width&&(close_width=close_obj.$length()),this.$text(open_obj,open_width),$send(this,"group_sub",[],(function $$4(){return $send(null==$$4.$$s?this:$$4.$$s,"nest",[indent],(function(){return Opal.yieldX($yield,[])}),0)}),{$$arity:0,$$s:this}),this.$text(close_obj,close_width)}),-1),$def(self,"$group_sub",(function $$group_sub(){var $yield=$$group_sub.$$p||nil,self=this,group=nil;return delete $$group_sub.$$p,group=$$("Group").$new($rb_plus(self.group_stack.$last().$depth(),1)),self.group_stack.$push(group),self.group_queue.$enq(group),function(){try{return Opal.yieldX($yield,[])}finally{self.group_stack.$pop(),$truthy(group.$breakables()["$empty?"]())&&self.group_queue.$delete(group)}}()}),0),$def(self,"$nest",(function $$nest(indent){var $yield=$$nest.$$p||nil,self=this;return delete $$nest.$$p,self.indent=$rb_plus(self.indent,indent),function(){try{return Opal.yieldX($yield,[])}finally{self.indent=$rb_minus(self.indent,indent)}}()}),1),$def(self,"$flush",(function(){return $send(this.buffer,"each",[],(function $$6(data){var self=null==$$6.$$s?this:$$6.$$s;return null==self.output&&(self.output=nil),null==self.output_width&&(self.output_width=nil),null==data&&(data=nil),self.output_width=data.$output(self.output,self.output_width)}),{$$arity:1,$$s:this}),this.buffer.$clear(),this.buffer_width=0}),0),function($base,$super){var self=$klass($base,null,"Text"),$proto=self.$$prototype;$proto.objs=$proto.width=nil,$def(self,"$initialize",(function(){return this.objs=[],this.width=0}),0),self.$attr_reader("width"),$def(self,"$output",(function(out,output_width){return $send(this.objs,"each",[],(function(obj){return null==obj&&(obj=nil),out["$<<"](obj)}),1),$rb_plus(output_width,this.width)}),2),$def(self,"$add",(function(obj,width){return this.objs["$<<"](obj),this.width=$rb_plus(this.width,width)}),2)}($nesting[0]),function($base,$super){var self=$klass($base,null,"Breakable"),$proto=self.$$prototype;$proto.group=$proto.pp=$proto.indent=$proto.obj=$proto.width=nil,$def(self,"$initialize",(function(sep,width,q){return this.obj=sep,this.width=width,this.pp=q,this.indent=q.$indent(),this.group=q.$current_group(),this.group.$breakables().$push(this)}),3),self.$attr_reader("obj"),self.$attr_reader("width"),self.$attr_reader("indent"),$def(self,"$output",(function(out,output_width){return this.group.$breakables().$shift(),$truthy(this.group["$break?"]())?(out["$<<"](this.pp.$newline()),out["$<<"](this.pp.$genspace().$call(this.indent)),this.indent):($truthy(this.group.$breakables()["$empty?"]())&&this.pp.$group_queue().$delete(this.group),out["$<<"](this.obj),$rb_plus(output_width,this.width))}),2)}($nesting[0]),function($base,$super){var self=$klass($base,null,"Group");self.$$prototype.break=nil,$def(self,"$initialize",(function(depth){return this.depth=depth,this.breakables=[],this.break=!1}),1),self.$attr_reader("depth"),self.$attr_reader("breakables"),$def(self,"$break",(function(){return this.break=!0}),0),$def(self,"$break?",(function(){return this.break}),0),$def(self,"$first?",(function(){var $a;return!$truthy(($a=this.first,null!=$a&&$a!==nil?"instance-variable":nil))&&(this.first=!1,!0)}),0)}($nesting[0]),function($base,$super){var self=$klass($base,null,"GroupQueue");self.$$prototype.queue=nil,$def(self,"$initialize",(function($a){var groups,self=this;return groups=Opal.slice.call(arguments),self.queue=[],$send(groups,"each",[],(function $$11(g){return null==g&&(g=nil),(null==$$11.$$s?this:$$11.$$s).$enq(g)}),{$$arity:1,$$s:self})}),-1),$def(self,"$enq",(function(group){var depth;for(depth=group.$depth();!$truthy($rb_lt(depth,this.queue.$length()));)this.queue["$<<"]([]);return this.queue["$[]"](depth)["$<<"](group)}),1),$def(self,"$deq",(function(){try{return $send(this.queue,"each",[],(function(gs){return null==gs&&(gs=nil),$send($rb_minus(gs.$length(),1),"downto",[0],(function(i){var group=nil;if(null==i&&(i=nil),$truthy(gs["$[]"](i).$breakables()["$empty?"]()))return nil;(group=gs["$slice!"](i,1).$first()).$break(),Opal.ret(group)}),1),$send(gs,"each",[],(function(group){return null==group&&(group=nil),group.$break()}),1),gs.$clear()}),1),nil}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$delete",(function(group){return this.queue["$[]"](group.$depth()).$delete(group)}),1)}($nesting[0]),function($base,$super){var self=$klass($base,null,"SingleLine"),$proto=self.$$prototype;return $proto.output=$proto.first=nil,$def(self,"$initialize",(function(output,maxwidth,newline){return null==maxwidth&&(maxwidth=nil),null==newline&&(newline=nil),this.output=output,this.first=[!0]}),-2),$def(self,"$text",(function(obj,width){return null==width&&(width=nil),this.output["$<<"](obj)}),-2),$def(self,"$breakable",(function(sep,width){return null==sep&&(sep=" "),null==width&&(width=nil),this.output["$<<"](sep)}),-1),$def(self,"$nest",(function $$nest(indent){var $yield=$$nest.$$p||nil;return delete $$nest.$$p,Opal.yieldX($yield,[])}),1),$def(self,"$group",(function $$group(indent,open_obj,close_obj,open_width,close_width){var $yield=$$group.$$p||nil;return delete $$group.$$p,null==indent&&(indent=nil),null==open_obj&&(open_obj=""),null==close_obj&&(close_obj=""),null==open_width&&(open_width=nil),null==close_width&&(close_width=nil),this.first.$push(!0),this.output["$<<"](open_obj),Opal.yieldX($yield,[]),this.output["$<<"](close_obj),this.first.$pop()}),-1),$def(self,"$flush",(function(){return nil}),0),$def(self,"$first?",(function(){var result,$writer;return result=this.first["$[]"](-1),$writer=[-1,!1],$send(this.first,"[]=",$to_a($writer)),$rb_minus($writer.length,1),result}),0)}($nesting[0])}($nesting[0],0,$nesting)},Opal.modules.pp=function(Opal){var self=Opal.top,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$gvars=Opal.gvars,$send=Opal.send,$defs=Opal.defs,$to_a=Opal.to_a,$module=Opal.module,$eqeq=Opal.eqeq,$hash2=Opal.hash2,$rb_minus=Opal.rb_minus,$def=Opal.def,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$eqeqeq=Opal.eqeqeq,$neqeq=Opal.neqeq,$not=Opal.not,$rb_gt=Opal.rb_gt,$rb_le=Opal.rb_le;return Opal.add_stubs("require,new,guard_inspect_key,pp,flush,<<,bind_call,instance_method,to_proc,attr_accessor,==,[],current,compare_by_identity,[]=,-,include?,delete,text,is_a?,__getobj__,check_inspect_key,group,pretty_print_cycle,push_inspect_key,pretty_print,sharing_detection,pop_inspect_key,+,name,class,chomp,breakable,lambda,comma_breakable,__send__,call,object_address_group,seplist,pretty_print_instance_variables,===,to_s,instance_eval,include,!=,owner,inspect,respond_to?,!,pp_object,sort,instance_variables,raise,singleline_pp,dup,empty?,pp_hash,each,keys,sprintf,mcall,begin,exclude_end?,end,lines,>,size,named_captures,regexp,object_group,class_eval,string,<=,first,module_function"),self.$require("thread"),self.$require("stringio"),self.$require("prettyprint"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"PP"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs($$("PP"),"$pp",(function(obj,out,width){var q=nil;return null==$gvars.stdout&&($gvars.stdout=nil),null==out&&(out=$gvars.stdout),null==width&&(width=79),q=$$("PP").$new(out,width),$send(q,"guard_inspect_key",[],(function(){return q.$pp(obj)}),0),q.$flush(),out["$<<"]("\n")}),-2),$defs($$("PP"),"$singleline_pp",(function(obj,out){var q=nil;return null==$gvars.stdout&&($gvars.stdout=nil),null==out&&(out=$gvars.stdout),q=$$("SingleLine").$new(out),$send(q,"guard_inspect_key",[],(function(){return q.$pp(obj)}),0),q.$flush(),out}),-2),$defs($$("PP"),"$mcall",(function $$mcall(obj,mod,meth,$a){var args,block=$$mcall.$$p||nil;return delete $$mcall.$$p,args=Opal.slice.call(arguments,3),$send(mod.$instance_method(meth),"bind_call",[obj].concat($to_a(args)),block.$to_proc())}),-4),self.sharing_detection=!1,function(self,$parent_nesting){self.$attr_accessor("sharing_detection")}(Opal.get_singleton_class(self)),function($base,$parent_nesting){var self=$module($base,"PPMethods"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$guard_inspect_key",(function $$guard_inspect_key(){var save,$yield=$$guard_inspect_key.$$p||nil,$writer=nil;return delete $$guard_inspect_key.$$p,$eqeq($$("Thread").$current()["$[]"]("__recursive_key__"),nil)&&($writer=["__recursive_key__",$hash2([],{}).$compare_by_identity()],$send($$("Thread").$current(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$eqeq($$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),nil)&&($writer=["inspect",$hash2([],{}).$compare_by_identity()],$send($$("Thread").$current()["$[]"]("__recursive_key__"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),save=$$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),function(){try{return $writer=["inspect",$hash2([],{}).$compare_by_identity()],$send($$("Thread").$current()["$[]"]("__recursive_key__"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],Opal.yieldX($yield,[])}finally{$writer=["inspect",save],$send($$("Thread").$current()["$[]"]("__recursive_key__"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()}),0),$def(self,"$check_inspect_key",(function(id){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=$$("Thread").$current()["$[]"]("__recursive_key__"))?$$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"):$ret_or_2)?$$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect")["$include?"](id):$ret_or_1}),1),$def(self,"$push_inspect_key",(function(id){var $writer;return $writer=[id,!0],$send($$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$pop_inspect_key",(function(id){return $$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect").$delete(id)}),1),$def(self,"$pp",(function(obj){try{var self=this;return null===obj?(self.$text("null"),Opal.ret(nil)):void 0===obj?(self.$text("undefined"),Opal.ret(nil)):void 0===obj.$$class&&(self.$text(Object.prototype.toString.apply(obj)),Opal.ret(nil)),$truthy($$$("::","Delegator","skip_raise")?"constant":nil)&&$truthy(obj["$is_a?"]($$$("Delegator")))&&(obj=obj.$__getobj__()),$truthy(self.$check_inspect_key(obj))?($send(self,"group",[],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return obj.$pretty_print_cycle(self)}),{$$arity:0,$$s:self}),nil):function(){try{return self.$push_inspect_key(obj),$send(self,"group",[],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s;return obj.$pretty_print(self)}),{$$arity:0,$$s:self})}finally{$truthy($$("PP").$sharing_detection())||self.$pop_inspect_key(obj)}}()}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$object_group",(function $$object_group(obj){var block=$$object_group.$$p||nil;return delete $$object_group.$$p,$send(this,"group",[1,$rb_plus("#<",obj.$class().$name()),">"],block.$to_proc())}),1),$def(self,"$object_address_group",(function $$object_address_group(obj){var block=$$object_address_group.$$p||nil,str=nil;return delete $$object_address_group.$$p,str=(str=$$("Kernel").$instance_method("to_s").$bind_call(obj)).$chomp(">"),$send(this,"group",[1,str,">"],block.$to_proc())}),1),$def(self,"$comma_breakable",(function(){return this.$text(","),this.$breakable()}),0),$def(self,"$seplist",(function $$seplist(list,sep,iter_method){var $ret_or_1,$yield=$$seplist.$$p||nil,first=nil;return delete $$seplist.$$p,null==sep&&(sep=nil),null==iter_method&&(iter_method="each"),sep=$truthy($ret_or_1=sep)?$ret_or_1:$send(this,"lambda",[],(function $$5(){return(null==$$5.$$s?this:$$5.$$s).$comma_breakable()}),{$$arity:0,$$s:this}),first=!0,$send(list,"__send__",[iter_method],(function($a){var v;return v=Opal.slice.call(arguments),$truthy(first)?first=!1:sep.$call(),Opal.yieldX($yield,$to_a(v))}),-1)}),-2),$def(self,"$pp_object",(function(obj){return $send(this,"object_address_group",[obj],(function $$7(){var self=null==$$7.$$s?this:$$7.$$s;return $send(self,"seplist",[obj.$pretty_print_instance_variables(),$send(self,"lambda",[],(function $$8(){return(null==$$8.$$s?this:$$8.$$s).$text(",")}),{$$arity:0,$$s:self})],(function $$9(v){var self=null==$$9.$$s?this:$$9.$$s;return null==v&&(v=nil),self.$breakable(),$eqeqeq($$("Symbol"),v)&&(v=v.$to_s()),self.$text(v),self.$text("="),$send(self,"group",[1],(function $$10(){var self=null==$$10.$$s?this:$$10.$$s;return self.$breakable(""),self.$pp(obj.$instance_eval(v))}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:self})}),{$$arity:0,$$s:this})}),1),$def(self,"$pp_hash",(function(obj){return $send(this,"group",[1,"{","}"],(function $$11(){var self=null==$$11.$$s?this:$$11.$$s;return $send(self,"seplist",[obj,nil,"each_pair"],(function $$12(k,v){var self=null==$$12.$$s?this:$$12.$$s;return null==k&&(k=nil),null==v&&(v=nil),$send(self,"group",[],(function $$13(){var self=null==$$13.$$s?this:$$13.$$s;return self.$pp(k),self.$text("=>"),$send(self,"group",[1],(function $$14(){var self=null==$$14.$$s?this:$$14.$$s;return self.$breakable(""),self.$pp(v)}),{$$arity:0,$$s:self})}),{$$arity:0,$$s:self})}),{$$arity:2,$$s:self})}),{$$arity:0,$$s:this})}),1)}($nesting[0],$nesting),self.$include($$("PPMethods")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"SingleLine"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$("PPMethods"))}($nesting[0],$$$($$("PrettyPrint"),"SingleLine"),$nesting),function($base,$parent_nesting){var self=$module($base,"ObjectMixin"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$pretty_print",(function(q){var umethod_method=nil,inspect_method=nil;umethod_method=$$("Object").$instance_method("method");try{inspect_method=umethod_method.$bind_call(this,"inspect")}catch($err){if(!Opal.rescue($err,[$$("NameError")]))throw $err;Opal.pop_exception()}return $truthy(inspect_method)&&$neqeq(inspect_method.$owner(),$$("Kernel"))||$not(inspect_method)&&$truthy(this["$respond_to?"]("inspect"))?q.$text(this.$inspect()):q.$pp_object(this)}),1),$def(self,"$pretty_print_cycle",(function(q){return $send(q,"object_address_group",[this],(function(){return q.$breakable(),q.$text("...")}),0)}),1),$def(self,"$pretty_print_instance_variables",(function(){return this.$instance_variables().$sort()}),0),$def(self,"$pretty_print_inspect",(function(){return $eqeq($$("Object").$instance_method("method").$bind_call(this,"pretty_print").$owner(),$$$($$("PP"),"ObjectMixin"))&&this.$raise("pretty_print is not overridden for "+this.$class()),$$("PP").$singleline_pp(this,"".$dup())}),0)}($nesting[0],$nesting)}($nesting[0],$$("PrettyPrint"),$nesting),function($base,$super){var self=$klass($base,null,"Array");$def(self,"$pretty_print",(function(q){return $send(q,"group",[1,"[","]"],(function $$16(){return $send(q,"seplist",[null==$$16.$$s?this:$$16.$$s],(function(v){return null==v&&(v=nil),q.$pp(v)}),1)}),{$$arity:0,$$s:this})}),1),$def(self,"$pretty_print_cycle",(function(q){return q.$text($truthy(this["$empty?"]())?"[]":"[...]")}),1)}($nesting[0]),function($base,$super){var self=$klass($base,null,"Hash");$def(self,"$pretty_print",(function(q){return q.$pp_hash(this)}),1),$def(self,"$pretty_print_cycle",(function(q){return q.$text($truthy(this["$empty?"]())?"{}":"{...}")}),1)}($nesting[0]),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$pretty_print",(function(q){var h;return h=$hash2([],{}),$send($$("ENV").$keys().$sort(),"each",[],(function(k){var $writer;return null==k&&(k=nil),$writer=[k,$$("ENV")["$[]"](k)],$send(h,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),q.$pp_hash(h)}),1)}(Opal.get_singleton_class($$("ENV")),$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Struct"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$pretty_print",(function(q){return $send(q,"group",[1,this.$sprintf("#"],(function $$19(){var self=null==$$19.$$s?this:$$19.$$s;return $send(q,"seplist",[$$("PP").$mcall(self,$$("Struct"),"members"),$send(self,"lambda",[],(function(){return q.$text(",")}),0)],(function $$21(member){var self=null==$$21.$$s?this:$$21.$$s;return null==member&&(member=nil),q.$breakable(),q.$text(member.$to_s()),q.$text("="),$send(q,"group",[1],(function $$22(){var self=null==$$22.$$s?this:$$22.$$s;return q.$breakable(""),q.$pp(self["$[]"](member))}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:self})}),{$$arity:0,$$s:this})}),1),$def(self,"$pretty_print_cycle",(function(q){return q.$text(this.$sprintf("#",$$("PP").$mcall(this,$$("Kernel"),"class").$name()))}),1)}($nesting[0],0,$nesting),function($base,$super){var self=$klass($base,null,"Range");$def(self,"$pretty_print",(function(q){return q.$pp(this.$begin()),q.$breakable(""),q.$text($truthy(this["$exclude_end?"]())?"...":".."),q.$breakable(""),$truthy(this.$end())?q.$pp(this.$end()):nil}),1)}($nesting[0]),function($base,$super){var self=$klass($base,null,"String");$def(self,"$pretty_print",(function(q){var lines=nil;return lines=this.$lines(),$truthy($rb_gt(lines.$size(),1))?$send(q,"group",[0,"",""],(function $$23(){return $send(q,"seplist",[lines,$send(null==$$23.$$s?this:$$23.$$s,"lambda",[],(function(){return q.$text(" +"),q.$breakable()}),0)],(function(v){return null==v&&(v=nil),q.$pp(v)}),1)}),{$$arity:0,$$s:this}):q.$text(this.$inspect())}),1)}($nesting[0]),function($base,$super){var self=$klass($base,null,"MatchData");$def(self,"$pretty_print",(function(q){var nc=nil;return nc=[],$send(this.$regexp().$named_captures(),"each",[],(function(name,indexes){return null==name&&(name=nil),null==indexes&&(indexes=nil),$send(indexes,"each",[],(function(i){var $writer;return null==i&&(i=nil),$send(nc,"[]=",$to_a($writer=[i,name])),$writer[$rb_minus($writer.length,1)]}),1)}),2),$send(q,"object_group",[this],(function $$28(){var self=null==$$28.$$s?this:$$28.$$s;return q.$breakable(),$send(q,"seplist",[Opal.Range.$new(0,self.$size(),!0),$send(self,"lambda",[],(function(){return q.$breakable()}),0)],(function $$30(i){var self=null==$$30.$$s?this:$$30.$$s;return null==i&&(i=nil),$eqeq(i,0)||($truthy(nc["$[]"](i))?q.$text(nc["$[]"](i)):q.$pp(i),q.$text(":")),q.$pp(self["$[]"](i))}),{$$arity:1,$$s:self})}),{$$arity:0,$$s:this})}),1)}($nesting[0]),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Object"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$$($$("PP"),"ObjectMixin"))}($nesting[0],$$("BasicObject"),$nesting),$send([$$("Numeric"),$$("Symbol"),$$("FalseClass"),$$("TrueClass"),$$("NilClass"),$$("Module")],"each",[],(function $$31(c){return null==c&&(c=nil),$send(c,"class_eval",[],(function $$32(){return $def(null==$$32.$$s?this:$$32.$$s,"$pretty_print_cycle",(function(q){return q.$text(this.$inspect())}),1)}),{$$arity:0,$$s:null==$$31.$$s?this:$$31.$$s})}),{$$arity:1,$$s:self}),$send([$$("Numeric"),$$("FalseClass"),$$("TrueClass"),$$("Module")],"each",[],(function $$33(c){return null==c&&(c=nil),$send(c,"class_eval",[],(function $$34(){return $def(null==$$34.$$s?this:$$34.$$s,"$pretty_print",(function(q){return q.$text(this.$inspect())}),1)}),{$$arity:0,$$s:null==$$33.$$s?this:$$33.$$s})}),{$$arity:1,$$s:self}),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$pretty_inspect",(function(){return $$("PP").$pp(this,$$("StringIO").$new()).$string()}),0),$def(self,"$pp",(function($a){var $post_args,objs;return $post_args=Opal.slice.call(arguments),$send(objs=$post_args,"each",[],(function(obj){return null==obj&&(obj=nil),$$("PP").$pp(obj)}),1),$truthy($rb_le(objs.$size(),1))?objs.$first():objs}),-1),self.$module_function("pp")}($nesting[0],$nesting)},Opal.modules["opal-replutils"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$truthy=Opal.truthy,$lambda=Opal.lambda,$rb_plus=Opal.rb_plus,$send=Opal.send,$rb_minus=Opal.rb_minus,$def=Opal.def,$hash2=Opal.hash2,$klass=Opal.klass,$const_set=Opal.const_set,$to_a=Opal.to_a,$defs=Opal.defs,$gvars=Opal.gvars,$send2=Opal.send2,$find_super=Opal.find_super,$regexp=Opal.regexp,$eqeqeq=Opal.eqeqeq;return Opal.add_stubs("require,module_function,methods,ancestors,class,instance_variables,include?,instance_methods,constants,class_variables,empty?,+,[],join,sort,map,each,&,-,name,default,colorize,inspect,pp,ls,call,full_message,gets,parse,eval_and_print,puts,[]=,new,string,guard_inspect_key,flush,<<,length,dig,scan,to_proc,tokenize,===,=~,token"),self.$require("pp"),self.$require("stringio"),function($base,$parent_nesting){var self=$module($base,"REPLUtils"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$module_function(),$def(self,"$ls",(function(object,colorize){var methods=nil,imethods=nil,ancestors=nil,constants=nil,ivs=nil,cvs=nil,blue=nil,dark_blue=nil,out=nil;return methods=imethods=object.$methods(),ancestors=object.$class().$ancestors(),constants=[],ivs=object.$instance_variables(),cvs=[],$truthy([$$("Class"),$$("Module")]["$include?"](object.$class()))&&(imethods=object.$instance_methods(),ancestors=object.$ancestors(),constants=object.$constants(),cvs=object.$class_variables()),$truthy(colorize)?(blue=$lambda((function(i){return null==i&&(i=nil),""+i+""}),1),dark_blue=$lambda((function(i){return null==i&&(i=nil),""+i+""}),1)):blue=dark_blue=$lambda((function(i){return null==i&&(i=nil),i}),1),out="",$truthy(cvs["$empty?"]())||(out=$rb_plus(blue["$[]"]("class variables")+": "+$send(cvs,"map",[],(function(i){return null==i&&(i=nil),dark_blue["$[]"](i)}),1).$sort().$join(" ")+"\n",out)),$truthy(ivs["$empty?"]())||(out=$rb_plus(blue["$[]"]("instance variables")+": "+$send(ivs,"map",[],(function(i){return null==i&&(i=nil),dark_blue["$[]"](i)}),1).$sort().$join(" ")+"\n",out)),$send(ancestors,"each",[],(function(a){var meths=nil;return null==a&&(a=nil),meths=a.$instance_methods(!1)["$&"](imethods),methods=$rb_minus(methods,meths),imethods=$rb_minus(imethods,meths),$truthy(meths["$empty?"]())||$truthy([$$("Object"),$$("BasicObject"),$$("Kernel"),$$$($$("PP"),"ObjectMixin")]["$include?"](a))?nil:out=$rb_plus(blue["$[]"](a.$name()+"#methods")+": "+meths.$sort().$join(" ")+"\n",out)}),1),methods=methods["$&"](object.$methods(!1)),$truthy(methods["$empty?"]())||(out=$rb_plus(blue["$[]"]("self.methods")+": "+methods.$sort().$join(" ")+"\n",out)),$truthy(constants["$empty?"]())||(out=$rb_plus(blue["$[]"]("constants")+": "+$send(constants,"map",[],(function(i){return null==i&&(i=nil),dark_blue["$[]"](i)}),1).$sort().$join(" ")+"\n",out)),out}),2),$def(self,"$eval_and_print",(function $$eval_and_print(func,mode,colorize){var self=this,printer=nil,e=nil;try{printer=$truthy(colorize)?$lambda((function(i){null==i&&(i=nil);try{return $$("ColorPrinter").$default(i)}catch($err){if(!Opal.rescue($err,[$$("StandardError")]))throw $err;$err;try{return $$("ColorPrinter").$colorize($$("Opal").$inspect(i))}finally{Opal.pop_exception()}}}),1):$lambda((function(i){var out=nil;null==i&&(i=nil);try{return out=[],$$("PP").$pp(i,out),out.$join()}catch($err){if(!Opal.rescue($err,[$$("StandardError")]))throw $err;try{return $$("Opal").$inspect(i)}finally{Opal.pop_exception()}}}),1);var $_result=eval(func);if("silent"==mode)return nil;if(null===$_result)return"=> null";if(void 0===$_result)return"=> undefined";if(void 0!==$_result.$$class){if("ls"==mode)return self.$ls($_result,colorize);var pretty=printer.$call($_result);return pretty.match(/\n.*?\n/)&&(pretty="\n"+pretty),"=> "+pretty}try{var json=JSON.stringify($_result,null,2);return colorize||(json=$$("ColorPrinter").$colorize(json)),"=> "+$_result.toString()+" => "+json}catch(e){return"=> "+$_result.toString()}}catch($err){if(!Opal.rescue($err,[$$("Exception")]))throw $err;e=$err;try{return e.$full_message($hash2(["highlight"],{highlight:!0}))}finally{Opal.pop_exception()}}}),3),$def(self,"$js_repl",(function(){for(var line=nil,input=nil,out=nil;$truthy(line=this.$gets());)input=$$("JSON").$parse(line),out=this.$eval_and_print(input["$[]"]("code"),input["$[]"]("mode"),input["$[]"]("colors")),$truthy(out)&&this.$puts(out),this.$puts("<<>>")}),0),function($base,$super,$parent_nesting){var self=$klass($base,$super,"ColorPrinter"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$writer=nil;return $const_set($nesting[0],"TOKEN_COLORS",$hash2(["debug","annotation","attribute_name","attribute_value","binary","char","class","class_variable","color","comment","constant","decorator","definition","directive","docstring","doctype","done","entity","error","exception","float","function","global_variable","hex","id","include","integer","imaginary","important","key","keyword","label","local_variable","namespace","octal","predefined","predefined_constant","predefined_type","preprocessor","pseudo_class","regexp","reserved","shell","string","symbol","tag","type","value","variable","insert","delete","change","head"],{debug:"",annotation:"",attribute_name:"",attribute_value:"",binary:$hash2(["self","char","delimiter"],{self:"",char:"",delimiter:""}),char:$hash2(["self","delimiter"],{self:"",delimiter:""}),class:"",class_variable:"",color:"",comment:$hash2(["self","char","delimiter"],{self:"",char:"",delimiter:""}),constant:"",decorator:"",definition:"",directive:"",docstring:"",doctype:"",done:"",entity:"",error:"",exception:"",float:"",function:"",global_variable:"",hex:"",id:"",include:"",integer:"",imaginary:"",important:"",key:$hash2(["self","char","delimiter"],{self:"",char:"",delimiter:""}),keyword:"",label:"",local_variable:"",namespace:"",octal:"",predefined:"",predefined_constant:"",predefined_type:"",preprocessor:"",pseudo_class:"",regexp:$hash2(["self","delimiter","modifier","char"],{self:"",delimiter:"",modifier:"",char:""}),reserved:"",shell:$hash2(["self","char","delimiter","escape"],{self:"",char:"",delimiter:"",escape:""}),string:$hash2(["self","modifier","char","delimiter","escape"],{self:"",modifier:"",char:"",delimiter:"",escape:""}),symbol:$hash2(["self","delimiter"],{self:"",delimiter:""}),tag:"",type:"",value:"",variable:"",insert:$hash2(["self","insert","eyecatcher"],{self:"",insert:"",eyecatcher:""}),delete:$hash2(["self","delete","eyecatcher"],{self:"",delete:"",eyecatcher:""}),change:$hash2(["self","change"],{self:"",change:""}),head:$hash2(["self","filename"],{self:"",filename:""})})),$writer=["keyword",$$("TOKEN_COLORS")["$[]"]("reserved")],$send($$("TOKEN_COLORS"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=["method",$$("TOKEN_COLORS")["$[]"]("function")],$send($$("TOKEN_COLORS"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=["escape",$$("TOKEN_COLORS")["$[]"]("delimiter")],$send($$("TOKEN_COLORS"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$defs(self,"$default",(function(obj,width){var pager=nil;return null==width&&(width=79),pager=$$("StringIO").$new(),this.$pp(obj,pager,width),pager.$string()}),-2),$defs(self,"$pp",(function(obj,output,max_width){var queue=nil;return null==$gvars.DEFAULT_OUTPUT&&($gvars.DEFAULT_OUTPUT=nil),null==output&&(output=$gvars.DEFAULT_OUTPUT),null==max_width&&(max_width=79),queue=$$("ColorPrinter").$new(output,max_width,"\n"),$send(queue,"guard_inspect_key",[],(function(){return queue.$pp(obj)}),0),queue.$flush(),output["$<<"]("\n")}),-2),$def(self,"$text",(function $$text(str,max_width){return delete $$text.$$p,null==max_width&&(max_width=str.$length()),$send2(this,$find_super(this,"text",$$text,!1,!0),"text",[$$("ColorPrinter").$colorize(str),max_width],null)}),-2),$defs(self,"$token",(function(string,$a){var name;return name=Opal.slice.call(arguments,1),$rb_plus($rb_plus($send($$("TOKEN_COLORS"),"dig",$to_a(name)),string),"")}),-2),$const_set($nesting[0],"NUMBER","[+-]?(?:0x[0-9a-fA-F]+|[0-9.]+(?:e[+-][0-9]+|i)?)"),$const_set($nesting[0],"REGEXP","/.*?/[iesu]*"),$const_set($nesting[0],"STRING",'".*?"'),$const_set($nesting[0],"TOKEN_REGEXP",$regexp(["(\\s+|=>|[@$:]?[a-z]\\w+|[A-Z]\\w+|",$$("NUMBER"),"|",$$("REGEXP"),"|",$$("STRING"),"|#<.*?[> ]|.)"])),$defs(self,"$tokenize",(function(str){return $send(str.$scan($$("TOKEN_REGEXP")),"map",[],"first".$to_proc())}),1),$defs(self,"$colorize",(function(str){var tokens;return tokens=this.$tokenize(str),$send(tokens,"map",[],(function $$12(tok){var $ret_or_1,self=null==$$12.$$s?this:$$12.$$s;return null==tok&&(tok=nil),$eqeqeq(/^[0-9+-]/,$ret_or_1=tok)?$truthy(/[.e]/["$=~"](tok))?self.$token(tok,"float"):self.$token(tok,"integer"):$eqeqeq(/^"/,$ret_or_1)?self.$token(tok,"string","self"):$eqeqeq(/^:/,$ret_or_1)?self.$token(tok,"symbol","self"):$eqeqeq(/^[A-Z]/,$ret_or_1)?self.$token(tok,"constant"):$eqeqeq("<",$ret_or_1)||$eqeqeq("#",$ret_or_1)||$eqeqeq(/^#",$ret_or_1)?self.$token(tok,"keyword"):$eqeqeq(/^\/./,$ret_or_1)?self.$token(tok,"regexp","self"):$eqeqeq("true",$ret_or_1)||$eqeqeq("false",$ret_or_1)||$eqeqeq("nil",$ret_or_1)?self.$token(tok,"predefined_constant"):tok}),{$$arity:1,$$s:this}).$join()}),1)}($nesting[0],$$$("PP"),$nesting)}($nesting[0],$nesting)}; diff --git a/opal/master/opal-replutils.min.js.gz b/opal/master/opal-replutils.min.js.gz new file mode 100644 index 00000000..a6f810a0 Binary files /dev/null and b/opal/master/opal-replutils.min.js.gz differ diff --git a/opal/master/opal-source-maps.js b/opal/master/opal-source-maps.js index f8dfb0e3..29b12e71 100644 --- a/opal/master/opal-source-maps.js +++ b/opal/master/opal-source-maps.js @@ -1,12 +1,11 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["base64"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["base64"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $defs = Opal.defs, $hash2 = Opal.hash2, $truthy = Opal.truthy; - Opal.add_stubs(['$raise', '$delete']); + Opal.add_stubs('raise,delete'); return (function($base, $parent_nesting) { var self = $module($base, 'Base64'); - var $nesting = [self].concat($parent_nesting), $Base64_decode64$1, $Base64_encode64$2, $Base64_strict_decode64$3, $Base64_strict_encode64$4, $Base64_urlsafe_decode64$5, $Base64_urlsafe_encode64$6; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); @@ -30,7 +29,7 @@ Opal.modules["base64"] = function(Opal) { ) { charCode = str.charCodeAt(idx += 3/4); if (charCode > 0xFF) { - self.$raise($$($nesting, 'ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); + self.$raise($$('ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); } block = block << 8 | charCode; } @@ -43,7 +42,7 @@ Opal.modules["base64"] = function(Opal) { decode = function (input) { var str = String(input).replace(/=+$/, ''); if (str.length % 4 == 1) { - self.$raise($$($nesting, 'ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); + self.$raise($$('ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); } /* eslint-disable */ for ( @@ -64,33 +63,28 @@ Opal.modules["base64"] = function(Opal) { /* eslint-enable */ }; ; - Opal.defs(self, '$decode64', $Base64_decode64$1 = function $$decode64(string) { - var self = this; - + $defs(self, '$decode64', function $$decode64(string) { + return decode(string.replace(/\r?\n/g, '')); - }, $Base64_decode64$1.$$arity = 1); - Opal.defs(self, '$encode64', $Base64_encode64$2 = function $$encode64(string) { - var self = this; - + }, 1); + $defs(self, '$encode64', function $$encode64(string) { + return encode(string).replace(/(.{60})/g, "$1\n").replace(/([^\n])$/g, "$1\n"); - }, $Base64_encode64$2.$$arity = 1); - Opal.defs(self, '$strict_decode64', $Base64_strict_decode64$3 = function $$strict_decode64(string) { - var self = this; - + }, 1); + $defs(self, '$strict_decode64', function $$strict_decode64(string) { + return decode(string); - }, $Base64_strict_decode64$3.$$arity = 1); - Opal.defs(self, '$strict_encode64', $Base64_strict_encode64$4 = function $$strict_encode64(string) { - var self = this; - + }, 1); + $defs(self, '$strict_encode64', function $$strict_encode64(string) { + return encode(string); - }, $Base64_strict_encode64$4.$$arity = 1); - Opal.defs(self, '$urlsafe_decode64', $Base64_urlsafe_decode64$5 = function $$urlsafe_decode64(string) { - var self = this; - + }, 1); + $defs(self, '$urlsafe_decode64', function $$urlsafe_decode64(string) { + return decode(string.replace(/\-/g, '+').replace(/_/g, '/')); - }, $Base64_urlsafe_decode64$5.$$arity = 1); - return (Opal.defs(self, '$urlsafe_encode64', $Base64_urlsafe_encode64$6 = function $$urlsafe_encode64(string, $kwargs) { - var padding, self = this, str = nil; + }, 1); + return $defs(self, '$urlsafe_encode64', function $$urlsafe_encode64(string, $kwargs) { + var padding, str = nil; @@ -101,48 +95,29 @@ Opal.modules["base64"] = function(Opal) { }; padding = $kwargs.$$smap["padding"]; - if (padding == null) { - padding = true - }; + if (padding == null) padding = true; str = encode(string).replace(/\+/g, '-').replace(/\//g, '_'); - if ($truthy(padding)) { - } else { + if (!$truthy(padding)) { str = str.$delete("=") }; return str; - }, $Base64_urlsafe_encode64$6.$$arity = -2), nil) && 'urlsafe_encode64'; + }, -2); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["json"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["json"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $Object = Opal.Object, $hash2 = Opal.hash2, $eqeqeq = Opal.eqeqeq, $defs = Opal.defs, $truthy = Opal.truthy, $def = Opal.def; - Opal.add_stubs(['$raise', '$new', '$push', '$[]=', '$-', '$[]', '$create_id', '$json_create', '$const_get', '$attr_accessor', '$create_id=', '$===', '$parse', '$generate', '$from_object', '$merge', '$to_json', '$responds_to?', '$to_io', '$write', '$to_s', '$to_a', '$strftime']); + Opal.add_stubs('raise,new,push,[]=,-,[],create_id,json_create,const_get,attr_accessor,create_id=,===,parse,generate,from_object,merge,to_json,responds_to?,to_io,write,to_s,to_a,strftime'); (function($base, $parent_nesting) { var self = $module($base, 'JSON'); - var $nesting = [self].concat($parent_nesting), $JSON_$$$1, $JSON_parse$2, $JSON_parse$excl$3, $JSON_load$4, $JSON_from_object$5, $JSON_generate$6, $JSON_dump$7, $writer = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $writer = nil; - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'JSONError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ParserError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'JSONError'), $nesting); + $klass($nesting[0], $$('StandardError'), 'JSONError'); + $klass($nesting[0], $$('JSONError'), 'ParserError'); var $hasOwn = Opal.hasOwnProperty; @@ -150,7 +125,7 @@ Opal.modules["json"] = function(Opal) { try { return JSON.parse(source); } catch (e) { - self.$raise($$$($$($nesting, 'JSON'), 'ParserError'), e.message); + self.$raise($$$($$('JSON'), 'ParserError'), e.message); } }; @@ -187,12 +162,12 @@ Opal.modules["json"] = function(Opal) { for (k in value) { if ($hasOwn.call(value, k)) { - (($writer = [k, to_opal(value[k], options)]), $send((hash), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); + (($writer = [k, to_opal(value[k], options)]), $send((hash), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); } } - if (!options.parse && (klass = (hash)['$[]']($$($nesting, 'JSON').$create_id())) != nil) { - return $$$('::', 'Object').$const_get(klass).$json_create(hash); + if (!options.parse && (klass = (hash)['$[]']($$('JSON').$create_id())) != nil) { + return $Object.$const_get(klass).$json_create(hash); } else { return hash; @@ -202,146 +177,126 @@ Opal.modules["json"] = function(Opal) { }; ; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("create_id") })(Opal.get_singleton_class(self), $nesting); $writer = ["json_class"]; - $send(self, 'create_id=', Opal.to_a($writer)); + $send(self, 'create_id=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.defs(self, '$[]', $JSON_$$$1 = function(value, options) { + $defs(self, '$[]', function $JSON_$$$1(value, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; - if ($truthy($$($nesting, 'String')['$==='](value))) { + if (options == null) options = $hash2([], {});; + if ($eqeqeq($$('String'), value)) { return self.$parse(value, options) } else { return self.$generate(value, options) }; - }, $JSON_$$$1.$$arity = -2); - Opal.defs(self, '$parse', $JSON_parse$2 = function $$parse(source, options) { + }, -2); + $defs(self, '$parse', function $$parse(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; return self.$from_object($parse(source), options.$merge($hash2(["parse"], {"parse": true}))); - }, $JSON_parse$2.$$arity = -2); - Opal.defs(self, '$parse!', $JSON_parse$excl$3 = function(source, options) { + }, -2); + $defs(self, '$parse!', function $JSON_parse$excl$2(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; return self.$parse(source, options); - }, $JSON_parse$excl$3.$$arity = -2); - Opal.defs(self, '$load', $JSON_load$4 = function $$load(source, options) { + }, -2); + $defs(self, '$load', function $$load(source, options) { var self = this; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; return self.$from_object($parse(source), options); - }, $JSON_load$4.$$arity = -2); - Opal.defs(self, '$from_object', $JSON_from_object$5 = function $$from_object(js_object, options) { - var self = this, $ret_or_1 = nil, $writer = nil, $ret_or_2 = nil; + }, -2); + $defs(self, '$from_object', function $$from_object(js_object, options) { + var $ret_or_1 = nil, $writer = nil; - if (options == null) { - options = $hash2([], {}); - }; + if (options == null) options = $hash2([], {});; if ($truthy(($ret_or_1 = options['$[]']("object_class")))) { $ret_or_1 } else { - $writer = ["object_class", $$($nesting, 'Hash')]; - $send(options, '[]=', Opal.to_a($writer)); + $writer = ["object_class", $$('Hash')]; + $send(options, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; - if ($truthy(($ret_or_2 = options['$[]']("array_class")))) { - $ret_or_2 + if ($truthy(($ret_or_1 = options['$[]']("array_class")))) { + $ret_or_1 } else { - $writer = ["array_class", $$($nesting, 'Array')]; - $send(options, '[]=', Opal.to_a($writer)); + $writer = ["array_class", $$('Array')]; + $send(options, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return to_opal(js_object, options.$$smap);; - }, $JSON_from_object$5.$$arity = -2); - Opal.defs(self, '$generate', $JSON_generate$6 = function $$generate(obj, options) { - var self = this; - + }, -2); + $defs(self, '$generate', function $$generate(obj, options) { - if (options == null) { - options = $hash2([], {}); - }; + + if (options == null) options = $hash2([], {});; return obj.$to_json(options); - }, $JSON_generate$6.$$arity = -2); - return (Opal.defs(self, '$dump', $JSON_dump$7 = function $$dump(obj, io, limit) { + }, -2); + return $defs(self, '$dump', function $$dump(obj, io, limit) { var self = this, string = nil; - if (io == null) { - io = nil; - }; + if (io == null) io = nil;; - if (limit == null) { - limit = nil; - }; + if (limit == null) limit = nil;; string = self.$generate(obj); if ($truthy(io)) { if ($truthy(io['$responds_to?']("to_io"))) { - io = io.$to_io()}; + io = io.$to_io() + }; io.$write(string); return io; } else { return string }; - }, $JSON_dump$7.$$arity = -2), nil) && 'dump'; + }, -2); })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Object'); - var $nesting = [self].concat($parent_nesting), $Object_to_json$8; - - return (Opal.def(self, '$to_json', $Object_to_json$8 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return self.$to_s().$to_json() - }, $Object_to_json$8.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base) { var self = $module($base, 'Enumerable'); - var $nesting = [self].concat($parent_nesting), $Enumerable_to_json$9; - - return (Opal.def(self, '$to_json', $Enumerable_to_json$9 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return self.$to_a().$to_json() - }, $Enumerable_to_json$9.$$arity = 0), nil) && 'to_json' - })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0]); + (function($base, $super) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_to_json$10; - - return (Opal.def(self, '$to_json', $Array_to_json$10 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; @@ -353,25 +308,23 @@ Opal.modules["json"] = function(Opal) { return '[' + result.join(',') + ']'; - }, $Array_to_json$10.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Boolean'); - var $nesting = [self].concat($parent_nesting), $Boolean_to_json$11; - - return (Opal.def(self, '$to_json', $Boolean_to_json$11 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return (self == true) ? 'true' : 'false'; - }, $Boolean_to_json$11.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Hash'); - var $nesting = [self].concat($parent_nesting), $Hash_to_json$12; - - return (Opal.def(self, '$to_json', $Hash_to_json$12 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; @@ -392,88 +345,81 @@ Opal.modules["json"] = function(Opal) { return '{' + result.join(',') + '}'; - }, $Hash_to_json$12.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'NilClass'); - var $nesting = [self].concat($parent_nesting), $NilClass_to_json$13; - - return (Opal.def(self, '$to_json', $NilClass_to_json$13 = function $$to_json() { - var self = this; - + + return $def(self, '$to_json', function $$to_json() { + return "null" - }, $NilClass_to_json$13.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Numeric'); - var $nesting = [self].concat($parent_nesting), $Numeric_to_json$14; - - return (Opal.def(self, '$to_json', $Numeric_to_json$14 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return self.toString(); - }, $Numeric_to_json$14.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_to_json$15; - - return (Opal.def(self, '$to_json', $String_to_json$15 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return JSON.stringify(self); - }, $String_to_json$15.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Time'); - var $nesting = [self].concat($parent_nesting), $Time_to_json$16; - - return (Opal.def(self, '$to_json', $Time_to_json$16 = function $$to_json() { + + return $def(self, '$to_json', function $$to_json() { var self = this; return self.$strftime("%FT%T%z").$to_json() - }, $Time_to_json$16.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { + }, 0) + })($nesting[0], null); + return (function($base, $super) { var self = $klass($base, $super, 'Date'); - var $nesting = [self].concat($parent_nesting), $Date_to_json$17, $Date_as_json$18; - - Opal.def(self, '$to_json', $Date_to_json$17 = function $$to_json() { + + $def(self, '$to_json', function $$to_json() { var self = this; return self.$to_s().$to_json() - }, $Date_to_json$17.$$arity = 0); - return (Opal.def(self, '$as_json', $Date_as_json$18 = function $$as_json() { + }, 0); + return $def(self, '$as_json', function $$as_json() { var self = this; return self.$to_s() - }, $Date_as_json$18.$$arity = 0), nil) && 'as_json'; - })($nesting[0], null, $nesting); + }, 0); + })($nesting[0], null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/source_map/map"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["opal/source_map/map"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $truthy = Opal.truthy, $def = Opal.def, $to_ary = Opal.to_ary; - Opal.add_stubs(['$require', '$map', '$to_json', '$to_h', '$to_s', '$delete', '$encode64', '$generated_code']); + Opal.add_stubs('require,map,to_json,to_h,to_s,delete,encode64,generated_code'); self.$require("base64"); self.$require("json"); return (function($base, $parent_nesting) { var self = $module($base, 'Map'); - var $nesting = [self].concat($parent_nesting), $Map_to_h$1, $Map_to_json$2, $Map_as_json$3, $Map_to_s$4, $Map_to_data_uri_comment$5, $Map_cache$6, $Map_marshal_dump$7, $Map_marshal_load$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$to_h', $Map_to_h$1 = function $$to_h() { + $def(self, '$to_h', function $$to_h() { var self = this, $ret_or_1 = nil; if (self.to_h == null) self.to_h = nil; @@ -482,128 +428,105 @@ Opal.modules["opal/source_map/map"] = function(Opal) { } else { return self.$map() } - }, $Map_to_h$1.$$arity = 0); + }, 0); - Opal.def(self, '$to_json', $Map_to_json$2 = function $$to_json() { + $def(self, '$to_json', function $$to_json() { var self = this; return self.$to_h().$to_json() - }, $Map_to_json$2.$$arity = 0); + }, 0); - Opal.def(self, '$as_json', $Map_as_json$3 = function $$as_json($a) { - var $post_args, self = this; + $def(self, '$as_json', function $$as_json($a) { + var $post_args, $rest_arg, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return self.$to_h(); - }, $Map_as_json$3.$$arity = -1); + }, -1); - Opal.def(self, '$to_s', $Map_to_s$4 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return self.$to_h().$to_s() - }, $Map_to_s$4.$$arity = 0); + }, 0); - Opal.def(self, '$to_data_uri_comment', $Map_to_data_uri_comment$5 = function $$to_data_uri_comment() { + $def(self, '$to_data_uri_comment', function $$to_data_uri_comment() { var self = this; - return "" + "//# sourceMappingURL=data:application/json;base64," + ($$($nesting, 'Base64').$encode64(self.$to_json()).$delete("\n")) - }, $Map_to_data_uri_comment$5.$$arity = 0); + return "//# sourceMappingURL=data:application/json;base64," + ($$('Base64').$encode64(self.$to_json()).$delete("\n")) + }, 0); - Opal.def(self, '$cache', $Map_cache$6 = function $$cache() { - var self = this, $ret_or_2 = nil; + $def(self, '$cache', function $$cache() { + var self = this, $ret_or_1 = nil; if (self.to_h == null) self.to_h = nil; - self.to_h = (function() {if ($truthy(($ret_or_2 = self.to_h))) { - return $ret_or_2 - } else { - return self.$map() - }; return nil; })(); + self.to_h = ($truthy(($ret_or_1 = self.to_h)) ? ($ret_or_1) : (self.$map())); return self; - }, $Map_cache$6.$$arity = 0); + }, 0); - Opal.def(self, '$marshal_dump', $Map_marshal_dump$7 = function $$marshal_dump() { + $def(self, '$marshal_dump', function $$marshal_dump() { var self = this; return [self.$to_h(), self.$generated_code()] - }, $Map_marshal_dump$7.$$arity = 0); - return (Opal.def(self, '$marshal_load', $Map_marshal_load$8 = function $$marshal_load(value) { + }, 0); + return $def(self, '$marshal_load', function $$marshal_load(value) { var $a, $b, self = this; - return $b = value, $a = Opal.to_ary($b), (self.to_h = ($a[0] == null ? nil : $a[0])), (self.generated_code = ($a[1] == null ? nil : $a[1])), $b - }, $Map_marshal_load$8.$$arity = 1), nil) && 'marshal_load'; - })($$$($$($nesting, 'Opal'), 'SourceMap'), $nesting); + return $b = value, $a = $to_ary($b), (self.to_h = ($a[0] == null ? nil : $a[0])), (self.generated_code = ($a[1] == null ? nil : $a[1])), $b + }, 1); + })($$$($$('Opal'), 'SourceMap'), $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/source_map/file"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; - - Opal.add_stubs(['$include', '$attr_reader', '$new', '$size', '$[]=', '$-', '$join', '$map', '$to_proc', '$file', '$force_encoding', '$source', '$names', '$encode_mappings', '$relative_mappings', '$absolute_mappings', '$sort_by', '$to_a', '$line', '$<', '$column', '$source_map_name', '$[]', '$to_s', '$to_int', '$each', '$fragments_by_line', '$<<', '$segment_from_fragment', '$+', '$private', '$flat_map', '$fragments', '$code', '$split', '$with_index', '$zero?', '$!', '$last']); +Opal.modules["opal/source_map/file"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $truthy = Opal.truthy, $hash2 = Opal.hash2, $rb_lt = Opal.rb_lt, $to_ary = Opal.to_ary, $rb_plus = Opal.rb_plus, $not = Opal.not; + + Opal.add_stubs('include,attr_reader,new,size,[]=,-,join,map,to_proc,file,force_encoding,source,names,encode_mappings,relative_mappings,absolute_mappings,sort_by,to_a,line,<,column,source_map_name,[],to_s,to_int,each,fragments_by_line,skip_source_map?,is_a?,<<,segment_from_fragment,+,private,flat_map,fragments,code,split,with_index,!,zero?,last'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'File'); - var $nesting = [self].concat($parent_nesting), $File_initialize$1, $File_generated_code$3, $File_map$4, $File_names$5, $File_segment_from_fragment$8, $File_relative_mappings$9, $File_absolute_mappings$12, $File_fragments_by_line$15; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.generated_code = self.$$prototype.fragments = self.$$prototype.names = self.$$prototype.names_map = self.$$prototype.relative_mappings = self.$$prototype.absolute_mappings = nil; + $proto.generated_code = $proto.fragments = $proto.names = $proto.names_map = $proto.relative_mappings = $proto.absolute_mappings = nil; - self.$include($$$($$$($$($nesting, 'Opal'), 'SourceMap'), 'Map')); + self.$include($$$($$$($$('Opal'), 'SourceMap'), 'Map')); self.$attr_reader("fragments"); self.$attr_reader("file"); self.$attr_reader("source"); - Opal.def(self, '$initialize', $File_initialize$1 = function $$initialize(fragments, file, source, generated_code) { - var $$2, self = this; + $def(self, '$initialize', function $$initialize(fragments, file, source, generated_code) { + var self = this; - if (generated_code == null) { - generated_code = nil; - }; + if (generated_code == null) generated_code = nil;; self.fragments = fragments; self.file = file; self.source = source; - self.names_map = $send($$($nesting, 'Hash'), 'new', [], ($$2 = function(hash, name){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + self.names_map = $send($$('Hash'), 'new', [], function $$1(hash, name){var $writer = nil; - if (hash == null) { - hash = nil; - }; + if (hash == null) hash = nil;; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; $writer = [name, hash.$size()]; - $send(hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 2, $$2)); + $send(hash, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 2); self.generated_code = generated_code; return (self.absolute_mappings = nil); - }, $File_initialize$1.$$arity = -4); + }, -4); - Opal.def(self, '$generated_code', $File_generated_code$3 = function $$generated_code() { + $def(self, '$generated_code', function $$generated_code() { var self = this, $ret_or_1 = nil; - return (self.generated_code = (function() {if ($truthy(($ret_or_1 = self.generated_code))) { - return $ret_or_1 - } else { - return $send(self.fragments, 'map', [], "code".$to_proc()).$join() - }; return nil; })()) - }, $File_generated_code$3.$$arity = 0); + return (self.generated_code = ($truthy(($ret_or_1 = self.generated_code)) ? ($ret_or_1) : ($send(self.fragments, 'map', [], "code".$to_proc()).$join()))) + }, 0); - Opal.def(self, '$map', $File_map$4 = function $$map($kwargs) { + $def(self, '$map', function $$map($kwargs) { var source_root, self = this; @@ -615,247 +538,165 @@ Opal.modules["opal/source_map/file"] = function(Opal) { }; source_root = $kwargs.$$smap["source_root"]; - if (source_root == null) { - source_root = "" - }; - return $hash2(["version", "sourceRoot", "sources", "sourcesContent", "names", "mappings"], {"version": 3, "sourceRoot": source_root, "sources": [self.$file()], "sourcesContent": [self.$source().$force_encoding("UTF-8")], "names": self.$names(), "mappings": $$$($$$($$($nesting, 'Opal'), 'SourceMap'), 'VLQ').$encode_mappings(self.$relative_mappings())}); - }, $File_map$4.$$arity = -1); + if (source_root == null) source_root = ""; + return $hash2(["version", "sourceRoot", "sources", "sourcesContent", "names", "mappings"], {"version": 3, "sourceRoot": source_root, "sources": [self.$file()], "sourcesContent": [self.$source().$force_encoding("UTF-8")], "names": self.$names(), "mappings": $$$($$$($$('Opal'), 'SourceMap'), 'VLQ').$encode_mappings(self.$relative_mappings())}); + }, -1); - Opal.def(self, '$names', $File_names$5 = function $$names() { - var $$6, $$7, self = this, $ret_or_2 = nil; + $def(self, '$names', function $$names() { + var self = this, $ret_or_1 = nil; - return (self.names = (function() {if ($truthy(($ret_or_2 = self.names))) { - return $ret_or_2 - } else { + return (self.names = ($truthy(($ret_or_1 = self.names)) ? ($ret_or_1) : ((self.$absolute_mappings(), $send($send(self.names_map.$to_a(), 'sort_by', [], function $$2(_, index){ - self.$absolute_mappings(); - return $send($send(self.names_map.$to_a(), 'sort_by', [], ($$6 = function(_, index){var self = $$6.$$s == null ? this : $$6.$$s; - - - - if (_ == null) { - _ = nil; - }; - - if (index == null) { - index = nil; - }; - return index;}, $$6.$$s = self, $$6.$$arity = 2, $$6)), 'map', [], ($$7 = function(name, _){var self = $$7.$$s == null ? this : $$7.$$s; - - - - if (name == null) { - name = nil; - }; - - if (_ == null) { - _ = nil; - }; - return name;}, $$7.$$s = self, $$7.$$arity = 2, $$7)); - }; return nil; })()) - }, $File_names$5.$$arity = 0); + + if (_ == null) _ = nil;; + + if (index == null) index = nil;; + return index;}, 2), 'map', [], function $$3(name, _){ + + + if (name == null) name = nil;; + + if (_ == null) _ = nil;; + return name;}, 2))))) + }, 0); - Opal.def(self, '$segment_from_fragment', $File_segment_from_fragment$8 = function $$segment_from_fragment(fragment, generated_column) { - var self = this, source_index = nil, original_line = nil, original_column = nil, map_name_index = nil, $ret_or_3 = nil, $writer = nil; + $def(self, '$segment_from_fragment', function $$segment_from_fragment(fragment, generated_column) { + var self = this, source_index = nil, original_line = nil, $ret_or_1 = nil, original_column = nil, map_name_index = nil, $writer = nil; source_index = 0; - original_line = $rb_minus(fragment.$line(), 1); - if ($truthy($rb_lt(original_line, 1))) { - original_line = 1}; - original_column = fragment.$column(); + original_line = $rb_minus(($truthy(($ret_or_1 = fragment.$line())) ? ($ret_or_1) : (0)), 1); + if ($truthy($rb_lt(original_line, 0))) { + original_line = 0 + }; + original_column = ($truthy(($ret_or_1 = fragment.$column())) ? ($ret_or_1) : (0)); if ($truthy(fragment.$source_map_name())) { - map_name_index = (function() {if ($truthy(($ret_or_3 = self.names_map['$[]'](fragment.$source_map_name().$to_s())))) { - return $ret_or_3 - } else { - - $writer = [fragment.$source_map_name().$to_s(), self.names_map.$size()]; - $send(self.names_map, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }; return nil; })(); + map_name_index = ($truthy(($ret_or_1 = self.names_map['$[]'](fragment.$source_map_name().$to_s()))) ? ($ret_or_1) : ((($writer = [fragment.$source_map_name().$to_s(), self.names_map.$size()]), $send(self.names_map, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))); return [generated_column, source_index, original_line, original_column, map_name_index]; } else { return [generated_column, source_index, original_line, original_column] }; - }, $File_segment_from_fragment$8.$$arity = 2); + }, 2); - Opal.def(self, '$relative_mappings', $File_relative_mappings$9 = function $$relative_mappings() { - var $$10, self = this, $ret_or_4 = nil, reference_segment = nil, reference_name_index = nil; + $def(self, '$relative_mappings', function $$relative_mappings() { + var self = this, $ret_or_1 = nil, reference_segment = nil, reference_name_index = nil; + + return (self.relative_mappings = ($truthy(($ret_or_1 = self.relative_mappings)) ? ($ret_or_1) : (((reference_segment = [0, 0, 0, 0, 0]), (reference_name_index = 0), $send(self.$absolute_mappings(), 'map', [], function $$4(absolute_mapping){var $writer = nil; - return (self.relative_mappings = (function() {if ($truthy(($ret_or_4 = self.relative_mappings))) { - return $ret_or_4 - } else { - reference_segment = [0, 0, 0, 0, 0]; - reference_name_index = 0; - return $send(self.$absolute_mappings(), 'map', [], ($$10 = function(absolute_mapping){var self = $$10.$$s == null ? this : $$10.$$s, $$11, $writer = nil; + + if (absolute_mapping == null) absolute_mapping = nil;; + + $writer = [0, 0]; + $send(reference_segment, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return $send(absolute_mapping, 'map', [], function $$5(absolute_segment){var segment = nil, $ret_or_2 = nil; - if (absolute_mapping == null) { - absolute_mapping = nil; - }; + if (absolute_segment == null) absolute_segment = nil;; + segment = []; - $writer = [0, 0]; - $send(reference_segment, '[]=', Opal.to_a($writer)); + $writer = [0, $rb_minus(absolute_segment['$[]'](0), reference_segment['$[]'](0))]; + $send(segment, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(absolute_mapping, 'map', [], ($$11 = function(absolute_segment){var self = $$11.$$s == null ? this : $$11.$$s, segment = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil; - - - - if (absolute_segment == null) { - absolute_segment = nil; - }; - segment = []; - - $writer = [0, $rb_minus(absolute_segment['$[]'](0), reference_segment['$[]'](0))]; - $send(segment, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - - $writer = [1, $rb_minus(absolute_segment['$[]'](1), (function() {if ($truthy(($ret_or_5 = reference_segment['$[]'](1)))) { - return $ret_or_5 - } else { - return 0 - }; return nil; })())]; - $send(segment, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + + $writer = [1, $rb_minus(absolute_segment['$[]'](1), ($truthy(($ret_or_2 = reference_segment['$[]'](1))) ? ($ret_or_2) : (0)))]; + $send(segment, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [2, $rb_minus(absolute_segment['$[]'](2), ($truthy(($ret_or_2 = reference_segment['$[]'](2))) ? ($ret_or_2) : (0)))]; + $send(segment, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [3, $rb_minus(absolute_segment['$[]'](3), ($truthy(($ret_or_2 = reference_segment['$[]'](3))) ? ($ret_or_2) : (0)))]; + $send(segment, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(absolute_segment['$[]'](4))) { - $writer = [2, $rb_minus(absolute_segment['$[]'](2), (function() {if ($truthy(($ret_or_6 = reference_segment['$[]'](2)))) { - return $ret_or_6 - } else { - return 0 - }; return nil; })())]; - $send(segment, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - $writer = [3, $rb_minus(absolute_segment['$[]'](3), (function() {if ($truthy(($ret_or_7 = reference_segment['$[]'](3)))) { - return $ret_or_7 - } else { - return 0 - }; return nil; })())]; - $send(segment, '[]=', Opal.to_a($writer)); + $writer = [4, $rb_minus(absolute_segment['$[]'](4).$to_int(), ($truthy(($ret_or_2 = reference_segment['$[]'](4))) ? ($ret_or_2) : (reference_name_index)).$to_int())]; + $send(segment, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(absolute_segment['$[]'](4))) { - - - $writer = [4, $rb_minus(absolute_segment['$[]'](4).$to_int(), (function() {if ($truthy(($ret_or_8 = reference_segment['$[]'](4)))) { - return $ret_or_8 - } else { - return reference_name_index - }; return nil; })().$to_int())]; - $send(segment, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - reference_name_index = absolute_segment['$[]'](4);}; - reference_segment = absolute_segment; - return segment;}, $$11.$$s = self, $$11.$$arity = 1, $$11));}, $$10.$$s = self, $$10.$$arity = 1, $$10)); - }; return nil; })()) - }, $File_relative_mappings$9.$$arity = 0); + reference_name_index = absolute_segment['$[]'](4); + }; + reference_segment = absolute_segment; + return segment;}, 1);}, 1))))) + }, 0); - Opal.def(self, '$absolute_mappings', $File_absolute_mappings$12 = function $$absolute_mappings() { - var $$13, self = this, $ret_or_9 = nil, mappings = nil; + $def(self, '$absolute_mappings', function $$absolute_mappings() { + var self = this, $ret_or_1 = nil, mappings = nil; + + return (self.absolute_mappings = ($truthy(($ret_or_1 = self.absolute_mappings)) ? ($ret_or_1) : (((mappings = []), $send(self.$fragments_by_line(), 'each', [], function $$6(raw_segments){var self = $$6.$$s == null ? this : $$6.$$s, generated_column = nil, segments = nil; - return (self.absolute_mappings = (function() {if ($truthy(($ret_or_9 = self.absolute_mappings))) { - return $ret_or_9 - } else { - mappings = []; - $send(self.$fragments_by_line(), 'each', [], ($$13 = function(raw_segments){var self = $$13.$$s == null ? this : $$13.$$s, $$14, generated_column = nil, segments = nil; + + if (raw_segments == null) raw_segments = nil;; + generated_column = 0; + segments = []; + $send(raw_segments, 'each', [], function $$7($mlhs_tmp1){var $a, $b, self = $$7.$$s == null ? this : $$7.$$s, generated_code = nil, fragment = nil; - if (raw_segments == null) { - raw_segments = nil; + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $b = $mlhs_tmp1, $a = $to_ary($b), (generated_code = ($a[0] == null ? nil : $a[0])), (fragment = ($a[1] == null ? nil : $a[1])), $b; + if (!($truthy(fragment['$is_a?']($$$($$('Opal'), 'Fragment'))) && ($truthy(fragment['$skip_source_map?']())))) { + segments['$<<'](self.$segment_from_fragment(fragment, generated_column)) }; - generated_column = 0; - segments = []; - $send(raw_segments, 'each', [], ($$14 = function($mlhs_tmp1){var self = $$14.$$s == null ? this : $$14.$$s, $a, $b, generated_code = nil, fragment = nil, $ret_or_10 = nil; - - - - if ($mlhs_tmp1 == null) { - $mlhs_tmp1 = nil; - }; - $b = $mlhs_tmp1, $a = Opal.to_ary($b), (generated_code = ($a[0] == null ? nil : $a[0])), (fragment = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy((function() {if ($truthy(($ret_or_10 = fragment.$line()))) { - return fragment.$column() - } else { - return $ret_or_10 - }; return nil; })())) { - segments['$<<'](self.$segment_from_fragment(fragment, generated_column))}; - return (generated_column = $rb_plus(generated_column, generated_code.$size()));}, $$14.$$s = self, $$14.$$arity = 1, $$14.$$has_top_level_mlhs_arg = true, $$14)); - return mappings['$<<'](segments);}, $$13.$$s = self, $$13.$$arity = 1, $$13)); - return mappings; - }; return nil; })()) - }, $File_absolute_mappings$12.$$arity = 0); + return (generated_column = $rb_plus(generated_column, generated_code.$size()));}, {$$arity: 1, $$s: self, $$has_top_level_mlhs_arg: true}); + return mappings['$<<'](segments);}, {$$arity: 1, $$s: self}), mappings)))) + }, 0); self.$private(); - return (Opal.def(self, '$fragments_by_line', $File_fragments_by_line$15 = function $$fragments_by_line() { - var $$16, self = this, raw_mappings = nil; + return $def(self, '$fragments_by_line', function $$fragments_by_line() { + var self = this, raw_mappings = nil; raw_mappings = [[]]; - $send(self.$fragments(), 'flat_map', [], ($$16 = function(fragment){var self = $$16.$$s == null ? this : $$16.$$s, $$17, fragment_code = nil, fragment_lines = nil; + $send(self.$fragments(), 'flat_map', [], function $$8(fragment){var fragment_code = nil, fragment_lines = nil; - if (fragment == null) { - fragment = nil; - }; + if (fragment == null) fragment = nil;; fragment_code = fragment.$code(); fragment_lines = fragment_code.$split("\n", -1); - return $send(fragment_lines.$each(), 'with_index', [], ($$17 = function(fragment_line, index){var self = $$17.$$s == null ? this : $$17.$$s, raw_segment = nil, $ret_or_11 = nil, $ret_or_12 = nil; + return $send(fragment_lines.$each(), 'with_index', [], function $$9(fragment_line, index){var raw_segment = nil; - if (fragment_line == null) { - fragment_line = nil; - }; + if (fragment_line == null) fragment_line = nil;; - if (index == null) { - index = nil; - }; + if (index == null) index = nil;; raw_segment = [fragment_line, fragment]; - if ($truthy((function() {if ($truthy(($ret_or_11 = index['$zero?']()))) { - return fragment_line.$size()['$zero?']()['$!']() - } else { - return $ret_or_11 - }; return nil; })())) { + if (($truthy(index['$zero?']()) && ($not(fragment_line.$size()['$zero?']())))) { return raw_mappings.$last()['$<<'](raw_segment) - } else if ($truthy((function() {if ($truthy(($ret_or_12 = index['$zero?']()))) { - return fragment_line.$size()['$zero?']() - } else { - return $ret_or_12 - }; return nil; })())) { + } else if (($truthy(index['$zero?']()) && ($truthy(fragment_line.$size()['$zero?']())))) { return nil } else if ($truthy(fragment_line.$size()['$zero?']())) { return raw_mappings['$<<']([]) } else { return raw_mappings['$<<']([raw_segment]) - };}, $$17.$$s = self, $$17.$$arity = 2, $$17));}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + };}, 2);}, 1); return raw_mappings; - }, $File_fragments_by_line$15.$$arity = 0), nil) && 'fragments_by_line'; - })($$$($$($nesting, 'Opal'), 'SourceMap'), null, $nesting) + }, 0); + })($$$($$('Opal'), 'SourceMap'), null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/source_map/index"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/source_map/index"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $hash2 = Opal.hash2, $def = Opal.def, $send = Opal.send, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus; - Opal.add_stubs(['$include', '$attr_reader', '$map', '$to_h', '$generated_code', '$+', '$count', '$[]', '$rindex', '$size']); + Opal.add_stubs('include,attr_reader,map,to_h,generated_code,+,count,[],rindex,size'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Index'); - var $nesting = [self].concat($parent_nesting), $Index_initialize$1, $Index_map$2; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.source_maps = nil; + $proto.source_maps = nil; - self.$include($$$($$$($$($nesting, 'Opal'), 'SourceMap'), 'Map')); + self.$include($$$($$$($$('Opal'), 'SourceMap'), 'Map')); self.$attr_reader("source_maps"); - Opal.def(self, '$initialize', $Index_initialize$1 = function $$initialize(source_maps, $kwargs) { + $def(self, '$initialize', function $$initialize(source_maps, $kwargs) { var join, self = this; @@ -867,119 +708,94 @@ Opal.modules["opal/source_map/index"] = function(Opal) { }; join = $kwargs.$$smap["join"]; - if (join == null) { - join = nil - }; + if (join == null) join = nil; self.source_maps = source_maps; return (self.join = join); - }, $Index_initialize$1.$$arity = -2); - return (Opal.def(self, '$map', $Index_map$2 = function $$map() { - var $$3, self = this, offset_line = nil, offset_column = nil; + }, -2); + return $def(self, '$map', function $$map() { + var self = this, offset_line = nil, offset_column = nil; offset_line = 0; offset_column = 0; - return $hash2(["version", "sections"], {"version": 3, "sections": $send(self.source_maps, 'map', [], ($$3 = function(source_map){var self = $$3.$$s == null ? this : $$3.$$s, map = nil, generated_code = nil, new_lines_count = nil, last_line = nil; + return $hash2(["version", "sections"], {"version": 3, "sections": $send(self.source_maps, 'map', [], function $$1(source_map){var self = $$1.$$s == null ? this : $$1.$$s, map = nil, generated_code = nil, new_lines_count = nil, last_line = nil; if (self.join == null) self.join = nil; - if (source_map == null) { - source_map = nil; - }; + if (source_map == null) source_map = nil;; map = $hash2(["offset", "map"], {"offset": $hash2(["line", "column"], {"line": offset_line, "column": offset_column}), "map": source_map.$to_h()}); generated_code = source_map.$generated_code(); if ($truthy(self.join)) { - generated_code = $rb_plus(generated_code, self.join)}; + generated_code = $rb_plus(generated_code, self.join) + }; new_lines_count = generated_code.$count("\n"); last_line = generated_code['$[]'](Opal.Range.$new($rb_plus(generated_code.$rindex("\n"), 1), -1, false)); offset_line = $rb_plus(offset_line, new_lines_count); offset_column = $rb_plus(offset_column, last_line.$size()); - return map;}, $$3.$$s = self, $$3.$$arity = 1, $$3))}); - }, $Index_map$2.$$arity = 0), nil) && 'map'; - })($$$($$($nesting, 'Opal'), 'SourceMap'), null, $nesting) + return map;}, {$$arity: 1, $$s: self})}); + }, 0); + })($$$($$('Opal'), 'SourceMap'), null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/source_map/vlq"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $range = Opal.range, $hash2 = Opal.hash2, $truthy = Opal.truthy; - - Opal.add_stubs(['$<<', '$-', '$split', '$inject', '$[]', '$[]=', '$each', '$<', '$+', '$-@', '$loop', '$&', '$>>', '$>', '$|', '$join', '$any?', '$shift', '$raise', '$==', '$map', '$encode', '$each_with_index', '$decode']); +Opal.modules["opal/source_map/vlq"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $const_set = Opal.const_set, $rb_minus = Opal.rb_minus, $send = Opal.send, $range = Opal.range, $hash2 = Opal.hash2, $to_a = Opal.to_a, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt, $defs = Opal.defs, $eqeq = Opal.eqeq; + + Opal.add_stubs('<<,-,split,inject,[],[]=,each,<,+,-@,loop,&,>>,>,|,join,any?,shift,raise,==,map,encode,each_with_index,decode'); return (function($base, $parent_nesting) { var self = $module($base, 'VLQ'); - var $nesting = [self].concat($parent_nesting), $VLQ$1, $VLQ_encode$2, $VLQ_decode$5, $VLQ_encode_mappings$6, $VLQ_decode_mappings$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'VLQ_BASE_SHIFT', 5); - Opal.const_set($nesting[0], 'VLQ_BASE', (1)['$<<']($$($nesting, 'VLQ_BASE_SHIFT'))); - Opal.const_set($nesting[0], 'VLQ_BASE_MASK', $rb_minus($$($nesting, 'VLQ_BASE'), 1)); - Opal.const_set($nesting[0], 'VLQ_CONTINUATION_BIT', $$($nesting, 'VLQ_BASE')); - Opal.const_set($nesting[0], 'BASE64_DIGITS', "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")); - Opal.const_set($nesting[0], 'BASE64_VALUES', $send($range(0, 64, true), 'inject', [$hash2([], {})], ($VLQ$1 = function(h, i){var self = $VLQ$1.$$s == null ? this : $VLQ$1.$$s, $writer = nil; + $const_set($nesting[0], 'VLQ_BASE_SHIFT', 5); + $const_set($nesting[0], 'VLQ_BASE', (1)['$<<']($$('VLQ_BASE_SHIFT'))); + $const_set($nesting[0], 'VLQ_BASE_MASK', $rb_minus($$('VLQ_BASE'), 1)); + $const_set($nesting[0], 'VLQ_CONTINUATION_BIT', $$('VLQ_BASE')); + $const_set($nesting[0], 'BASE64_DIGITS', "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")); + $const_set($nesting[0], 'BASE64_VALUES', $send($range(0, 64, true), 'inject', [$hash2([], {})], function $VLQ$1(h, i){var $writer = nil; - if (h == null) { - h = nil; - }; + if (h == null) h = nil;; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; - $writer = [$$($nesting, 'BASE64_DIGITS')['$[]'](i), i]; - $send(h, '[]=', Opal.to_a($writer)); + $writer = [$$('BASE64_DIGITS')['$[]'](i), i]; + $send(h, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return h;}, $VLQ$1.$$s = self, $VLQ$1.$$arity = 2, $VLQ$1))); - Opal.defs(self, '$encode', $VLQ_encode$2 = function $$encode(ary) { - var $$3, self = this, result = nil; + return h;}, 2)); + $defs(self, '$encode', function $$encode(ary) { + var self = this, result = nil; result = []; - (function(){var $brk = Opal.new_brk(); try {return $send(ary, 'each', [], ($$3 = function(n){var self = $$3.$$s == null ? this : $$3.$$s, $$4, vlq = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(ary, 'each', [], function $$2(n){var self = $$2.$$s == null ? this : $$2.$$s, vlq = nil; - if (n == null) { - n = nil; - }; - vlq = (function() {if ($truthy($rb_lt(n, 0))) { - return $rb_plus(n['$-@']()['$<<'](1), 1) - } else { - return n['$<<'](1) - }; return nil; })(); - return (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s, digit = nil; + if (n == null) n = nil;; + vlq = ($truthy($rb_lt(n, 0)) ? ($rb_plus(n['$-@']()['$<<'](1), 1)) : (n['$<<'](1))); + return (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], function $$3(){var digit = nil; - digit = vlq['$&']($$($nesting, 'VLQ_BASE_MASK')); - vlq = vlq['$>>']($$($nesting, 'VLQ_BASE_SHIFT')); + digit = vlq['$&']($$('VLQ_BASE_MASK')); + vlq = vlq['$>>']($$('VLQ_BASE_SHIFT')); if ($truthy($rb_gt(vlq, 0))) { - digit = digit['$|']($$($nesting, 'VLQ_CONTINUATION_BIT'))}; - result['$<<']($$($nesting, 'BASE64_DIGITS')['$[]'](digit)); + digit = digit['$|']($$('VLQ_CONTINUATION_BIT')) + }; + result['$<<']($$('BASE64_DIGITS')['$[]'](digit)); if ($truthy($rb_gt(vlq, 0))) { return nil } else { Opal.brk(nil, $brk) - };}, $$4.$$s = self, $$4.$$brk = $brk, $$4.$$arity = 0, $$4)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();}, $$3.$$s = self, $$3.$$brk = $brk, $$3.$$arity = 1, $$3)) + };}, {$$arity: 0, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();}, {$$arity: 1, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return result.$join(); - }, $VLQ_encode$2.$$arity = 1); - Opal.defs(self, '$decode', $VLQ_decode$5 = function $$decode(str) { + }, 1); + $defs(self, '$decode', function $$decode(str) { var $a, $b, self = this, result = nil, chars = nil, vlq = nil, shift = nil, continuation = nil, char$ = nil, digit = nil; @@ -993,105 +809,88 @@ Opal.modules["opal/source_map/vlq"] = function(Opal) { while ($truthy(continuation)) { char$ = chars.$shift(); - if ($truthy(char$)) { - } else { - self.$raise($$($nesting, 'ArgumentError')) + if (!$truthy(char$)) { + self.$raise($$('ArgumentError')) + }; + digit = $$('BASE64_VALUES')['$[]'](char$); + if ($eqeq(digit['$&']($$('VLQ_CONTINUATION_BIT')), 0)) { + continuation = false }; - digit = $$($nesting, 'BASE64_VALUES')['$[]'](char$); - if (digit['$&']($$($nesting, 'VLQ_CONTINUATION_BIT'))['$=='](0)) { - continuation = false}; - digit = digit['$&']($$($nesting, 'VLQ_BASE_MASK')); + digit = digit['$&']($$('VLQ_BASE_MASK')); vlq = $rb_plus(vlq, digit['$<<'](shift)); - shift = $rb_plus(shift, $$($nesting, 'VLQ_BASE_SHIFT')); + shift = $rb_plus(shift, $$('VLQ_BASE_SHIFT')); }; - result['$<<']((function() {if (vlq['$&'](1)['$=='](1)) { - return vlq['$>>'](1)['$-@']() - } else { - return vlq['$>>'](1) - }; return nil; })()); + result['$<<'](($eqeq(vlq['$&'](1), 1) ? (vlq['$>>'](1)['$-@']()) : (vlq['$>>'](1)))); }; return result; - }, $VLQ_decode$5.$$arity = 1); - Opal.defs(self, '$encode_mappings', $VLQ_encode_mappings$6 = function $$encode_mappings(ary) { - var $$7, self = this; + }, 1); + $defs(self, '$encode_mappings', function $$encode_mappings(ary) { + var self = this; - return $send(ary, 'map', [], ($$7 = function(group){var self = $$7.$$s == null ? this : $$7.$$s, $$8; + return $send(ary, 'map', [], function $$4(group){var self = $$4.$$s == null ? this : $$4.$$s; - if (group == null) { - group = nil; - }; - return $send(group, 'map', [], ($$8 = function(segment){var self = $$8.$$s == null ? this : $$8.$$s; + if (group == null) group = nil;; + return $send(group, 'map', [], function $$5(segment){var self = $$5.$$s == null ? this : $$5.$$s; - if (segment == null) { - segment = nil; - }; - return self.$encode(segment);}, $$8.$$s = self, $$8.$$arity = 1, $$8)).$join(",");}, $$7.$$s = self, $$7.$$arity = 1, $$7)).$join(";") - }, $VLQ_encode_mappings$6.$$arity = 1); - return (Opal.defs(self, '$decode_mappings', $VLQ_decode_mappings$9 = function $$decode_mappings(str) { - var $$10, self = this, mappings = nil; + if (segment == null) segment = nil;; + return self.$encode(segment);}, {$$arity: 1, $$s: self}).$join(",");}, {$$arity: 1, $$s: self}).$join(";") + }, 1); + return $defs(self, '$decode_mappings', function $$decode_mappings(str) { + var self = this, mappings = nil; mappings = []; - $send(str.$split(";"), 'each_with_index', [], ($$10 = function(group, index){var self = $$10.$$s == null ? this : $$10.$$s, $$11, $writer = nil; + $send(str.$split(";"), 'each_with_index', [], function $$6(group, index){var self = $$6.$$s == null ? this : $$6.$$s, $writer = nil; - if (group == null) { - group = nil; - }; + if (group == null) group = nil;; - if (index == null) { - index = nil; - }; + if (index == null) index = nil;; $writer = [index, []]; - $send(mappings, '[]=', Opal.to_a($writer)); + $send(mappings, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(group.$split(","), 'each', [], ($$11 = function(segment){var self = $$11.$$s == null ? this : $$11.$$s; + return $send(group.$split(","), 'each', [], function $$7(segment){var self = $$7.$$s == null ? this : $$7.$$s; - if (segment == null) { - segment = nil; - }; - return mappings['$[]'](index)['$<<'](self.$decode(segment));}, $$11.$$s = self, $$11.$$arity = 1, $$11));}, $$10.$$s = self, $$10.$$arity = 2, $$10)); + if (segment == null) segment = nil;; + return mappings['$[]'](index)['$<<'](self.$decode(segment));}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}); return mappings; - }, $VLQ_decode_mappings$9.$$arity = 1), nil) && 'decode_mappings'; - })($$$($$($nesting, 'Opal'), 'SourceMap'), $nesting) + }, 1); + })($$$($$('Opal'), 'SourceMap'), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/source_map"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["opal/source_map"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module; - Opal.add_stubs(['$autoload']); + Opal.add_stubs('autoload'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); var $nesting = [self].concat($parent_nesting); - return (function($base, $parent_nesting) { + return (function($base) { var self = $module($base, 'SourceMap'); - var $nesting = [self].concat($parent_nesting); - + self.$autoload("Map", "opal/source_map/map"); self.$autoload("File", "opal/source_map/file"); self.$autoload("Index", "opal/source_map/index"); return self.$autoload("VLQ", "opal/source_map/vlq"); - })($nesting[0], $nesting) + })($nesting[0]) })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal-source-maps"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["opal-source-maps"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); return self.$require("opal/source_map") }; diff --git a/opal/master/opal-source-maps.min.js b/opal/master/opal-source-maps.min.js index 4d75727e..a9476241 100644 --- a/opal/master/opal-source-maps.min.js +++ b/opal/master/opal-source-maps.min.js @@ -1 +1 @@ -Opal.modules.base64=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$raise","$delete"]),function($base,$Base64_urlsafe_encode64$6){var self=$module($base,"Base64"),$nesting=[self].concat($Base64_urlsafe_encode64$6),chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode=function(input){for(var block,charCode,str=String(input),idx=0,map=chars,output="";str.charAt(0|idx)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8))255<(charCode=str.charCodeAt(idx+=.75))&&self.$raise($$($nesting,"ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),block=block<<8|charCode;return output},decode=function(input){var str=String(input).replace(/=+$/,"");str.length%4==1&&self.$raise($$($nesting,"ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var bs,buffer,bc=0,idx=0,output="";buffer=str.charAt(idx++);~buffer&&(bs=bc%4?64*bs+buffer:buffer,bc++%4)&&(output+=String.fromCharCode(255&bs>>(-2*bc&6))))buffer=chars.indexOf(buffer);return output};return Opal.defs(self,"$decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string.replace(/\r?\n/g,""))},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$encode64",$Base64_urlsafe_encode64$6=function(string){return encode(string).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$strict_decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string)},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$strict_encode64",$Base64_urlsafe_encode64$6=function(string){return encode(string)},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$urlsafe_decode64",$Base64_urlsafe_encode64$6=function(string){return decode(string.replace(/\-/g,"+").replace(/_/g,"/"))},$Base64_urlsafe_encode64$6.$$arity=1),Opal.defs(self,"$urlsafe_encode64",$Base64_urlsafe_encode64$6=function(string,padding){var str=nil;if(null==padding)padding=$hash2([],{});else if(!padding.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(padding=padding.$$smap.padding)&&(padding=!0),str=encode(string).replace(/\+/g,"-").replace(/\//g,"_"),$truthy(padding)||(str=str.$delete("=")),str},$Base64_urlsafe_encode64$6.$$arity=-2),nil&&"urlsafe_encode64"}($nesting[0],$nesting)},Opal.modules.json=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $Object_to_json$8,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$raise","$new","$push","$[]=","$-","$[]","$create_id","$json_create","$const_get","$attr_accessor","$create_id=","$===","$parse","$generate","$from_object","$merge","$to_json","$responds_to?","$to_io","$write","$to_s","$to_a","$strftime"]),function($base,$JSON_dump$7){var self=$module($base,"JSON"),$nesting=[self].concat($JSON_dump$7),$writer=nil;!function($base,$super,$parent_nesting){[$klass($base,$super,"JSONError")].concat($parent_nesting)}($nesting[0],$$($nesting,"StandardError"),$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,"ParserError")].concat($parent_nesting)}($nesting[0],$$($nesting,"JSONError"),$nesting);var $hasOwn=Opal.hasOwnProperty;function $parse(source){try{return JSON.parse(source)}catch(e){self.$raise($$$($$($nesting,"JSON"),"ParserError"),e.message)}}function to_opal(value,options){var klass,arr,hash,i,ii,k;switch(typeof value){case"string":case"number":return value;case"boolean":return!!value;case"undefined":return nil;case"object":if(!value)return nil;if(value.$$is_array){for(arr=options.array_class.$new(),i=0,ii=value.length;i"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$send=Opal.send,$range=Opal.range,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs(["$<<","$-","$split","$inject","$[]","$[]=","$each","$<","$+","$-@","$loop","$&","$>>","$>","$|","$join","$any?","$shift","$raise","$==","$map","$encode","$each_with_index","$decode"]),function($VLQ_decode_mappings$9,$VLQ_encode_mappings$6){var $VLQ$1,$VLQ_decode_mappings$9=$module($VLQ_decode_mappings$9,"VLQ"),$nesting=[$VLQ_decode_mappings$9].concat($VLQ_encode_mappings$6);return Opal.const_set($nesting[0],"VLQ_BASE_SHIFT",5),Opal.const_set($nesting[0],"VLQ_BASE",1["$<<"]($$($nesting,"VLQ_BASE_SHIFT"))),Opal.const_set($nesting[0],"VLQ_BASE_MASK",$rb_minus($$($nesting,"VLQ_BASE"),1)),Opal.const_set($nesting[0],"VLQ_CONTINUATION_BIT",$$($nesting,"VLQ_BASE")),Opal.const_set($nesting[0],"BASE64_DIGITS","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")),Opal.const_set($nesting[0],"BASE64_VALUES",$send($range(0,64,!0),"inject",[$hash2([],{})],(($VLQ$1=function(h,i){var $writer;null==$VLQ$1.$$s||$VLQ$1.$$s;return null==h&&(h=nil),null==i&&(i=nil),$writer=[$$($nesting,"BASE64_DIGITS")["$[]"](i),i],$send(h,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),h}).$$s=$VLQ_decode_mappings$9,$VLQ$1.$$arity=2,$VLQ$1))),Opal.defs($VLQ_decode_mappings$9,"$encode",$VLQ_encode_mappings$6=function(ary){var $$3,self=this,result=nil,result=[];return function(){var $brk=Opal.new_brk();try{$send(ary,"each",[],(($$3=function(n){var $$4,lhs,rhs,self=null==$$3.$$s?this:$$3.$$s,vlq=nil;return null==n&&(n=nil),vlq=$truthy((rhs=0,"number"==typeof(lhs=n)&&"number"==typeof rhs?lhs>"]($$($nesting,"VLQ_BASE_SHIFT")),$truthy($rb_gt(vlq,0))&&(digit=digit["$|"]($$($nesting,"VLQ_CONTINUATION_BIT"))),result["$<<"]($$($nesting,"BASE64_DIGITS")["$[]"](digit)),$truthy($rb_gt(vlq,0)))return nil;Opal.brk(nil,$brk)}).$$s=self,$$4.$$brk=$brk,$$4.$$arity=0,$$4))}catch(err){if(err===$brk)return err.$v;throw err}}()}).$$s=self,$$3.$$brk=$brk,$$3.$$arity=1,$$3))}catch(err){if(err===$brk)return err.$v;throw err}}(),result.$join()},$VLQ_encode_mappings$6.$$arity=1),Opal.defs($VLQ_decode_mappings$9,"$decode",$VLQ_encode_mappings$6=function(str){for(var char$,result=nil,chars=nil,vlq=nil,shift=nil,continuation=nil,digit=nil,result=[],chars=str.$split("");$truthy(chars["$any?"]());){for(continuation=!(shift=vlq=0);$truthy(continuation);)char$=chars.$shift(),$truthy(char$)||this.$raise($$($nesting,"ArgumentError")),(digit=$$($nesting,"BASE64_VALUES")["$[]"](char$))["$&"]($$($nesting,"VLQ_CONTINUATION_BIT"))["$=="](0)&&(continuation=!1),digit=digit["$&"]($$($nesting,"VLQ_BASE_MASK")),vlq=$rb_plus(vlq,digit["$<<"](shift)),shift=$rb_plus(shift,$$($nesting,"VLQ_BASE_SHIFT"));result["$<<"](vlq["$&"](1)["$=="](1)?vlq["$>>"](1)["$-@"]():vlq["$>>"](1))}return result},$VLQ_encode_mappings$6.$$arity=1),Opal.defs($VLQ_decode_mappings$9,"$encode_mappings",$VLQ_encode_mappings$6=function(ary){var $$7;return $send(ary,"map",[],(($$7=function(group){var $$8,self=null==$$7.$$s?this:$$7.$$s;return null==group&&(group=nil),$send(group,"map",[],(($$8=function(segment){var self=null==$$8.$$s?this:$$8.$$s;return null==segment&&(segment=nil),self.$encode(segment)}).$$s=self,$$8.$$arity=1,$$8)).$join(",")}).$$s=this,$$7.$$arity=1,$$7)).$join(";")},$VLQ_encode_mappings$6.$$arity=1),Opal.defs($VLQ_decode_mappings$9,"$decode_mappings",$VLQ_decode_mappings$9=function(str){var $$10,mappings=nil,mappings=[];return $send(str.$split(";"),"each_with_index",[],(($$10=function(group,index){var $$11,$writer,self=null==$$10.$$s?this:$$10.$$s;return null==group&&(group=nil),null==index&&(index=nil),$writer=[index,[]],$send(mappings,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),$send(group.$split(","),"each",[],(($$11=function(segment){var self=null==$$11.$$s?this:$$11.$$s;return null==segment&&(segment=nil),mappings["$[]"](index)["$<<"](self.$decode(segment))}).$$s=self,$$11.$$arity=1,$$11))}).$$s=this,$$10.$$arity=2,$$10)),mappings},$VLQ_decode_mappings$9.$$arity=1),nil&&"decode_mappings"}($$$($$($nesting,"Opal"),"SourceMap"),$nesting)},Opal.modules["opal/source_map"]=function(Opal){Opal.top;var $nesting=[],$module=(Opal.nil,Opal.$$$,Opal.$$,Opal.module);return Opal.add_stubs(["$autoload"]),function($base,$nesting){$nesting=[$module($base,"Opal")].concat($nesting);return function(self,$parent_nesting){self=$module(self,"SourceMap"),[self].concat($parent_nesting);return self.$autoload("Map","opal/source_map/map"),self.$autoload("File","opal/source_map/file"),self.$autoload("Index","opal/source_map/index"),self.$autoload("VLQ","opal/source_map/vlq")}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["opal-source-maps"]=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$require"]),self.$require("opal/source_map")}; +Opal.modules.base64=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$defs=Opal.defs,$hash2=Opal.hash2,$truthy=Opal.truthy;return Opal.add_stubs("raise,delete"),function($base,$parent_nesting){var encode,decode,self=$module($base,"Base64"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return encode=function(input){for(var block,charCode,str=String(input),idx=0,map=chars,output="";str.charAt(0|idx)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8))(charCode=str.charCodeAt(idx+=3/4))>255&&self.$raise($$("ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),block=block<<8|charCode;return output},decode=function(input){var str=String(input).replace(/=+$/,"");str.length%4==1&&self.$raise($$("ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var bs,buffer,bc=0,idx=0,output="";buffer=str.charAt(idx++);~buffer&&(bs=bc%4?64*bs+buffer:buffer,bc++%4)?output+=String.fromCharCode(255&bs>>(-2*bc&6)):0)buffer=chars.indexOf(buffer);return output},$defs(self,"$decode64",(function(string){return decode(string.replace(/\r?\n/g,""))}),1),$defs(self,"$encode64",(function(string){return encode(string).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")}),1),$defs(self,"$strict_decode64",(function(string){return decode(string)}),1),$defs(self,"$strict_encode64",(function(string){return encode(string)}),1),$defs(self,"$urlsafe_decode64",(function(string){return decode(string.replace(/\-/g,"+").replace(/_/g,"/"))}),1),$defs(self,"$urlsafe_encode64",(function(string,$kwargs){var padding,str=nil;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(padding=$kwargs.$$smap.padding)&&(padding=!0),str=encode(string).replace(/\+/g,"-").replace(/\//g,"_"),$truthy(padding)||(str=str.$delete("=")),str}),-2)}($nesting[0],$nesting)},Opal.modules.json=function(Opal){var self,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$Object=Opal.Object,$hash2=Opal.hash2,$eqeqeq=Opal.eqeqeq,$defs=Opal.defs,$truthy=Opal.truthy,$def=Opal.def;return Opal.add_stubs("raise,new,push,[]=,-,[],create_id,json_create,const_get,attr_accessor,create_id=,===,parse,generate,from_object,merge,to_json,responds_to?,to_io,write,to_s,to_a,strftime"),function($base,$parent_nesting){var self=$module($base,"JSON"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$writer=nil;$klass($nesting[0],$$("StandardError"),"JSONError"),$klass($nesting[0],$$("JSONError"),"ParserError");var $hasOwn=Opal.hasOwnProperty;function $parse(source){try{return JSON.parse(source)}catch(e){self.$raise($$$($$("JSON"),"ParserError"),e.message)}}function to_opal(value,options){var klass,arr,hash,i,ii,k;switch(typeof value){case"string":case"number":return value;case"boolean":return!!value;case"undefined":return nil;case"object":if(!value)return nil;if(value.$$is_array){for(arr=options.array_class.$new(),i=0,ii=value.length;i>,>,|,join,any?,shift,raise,==,map,encode,each_with_index,decode"),function($base,$parent_nesting){var self=$module($base,"VLQ"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set($nesting[0],"VLQ_BASE_SHIFT",5),$const_set($nesting[0],"VLQ_BASE",1["$<<"]($$("VLQ_BASE_SHIFT"))),$const_set($nesting[0],"VLQ_BASE_MASK",$rb_minus($$("VLQ_BASE"),1)),$const_set($nesting[0],"VLQ_CONTINUATION_BIT",$$("VLQ_BASE")),$const_set($nesting[0],"BASE64_DIGITS","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")),$const_set($nesting[0],"BASE64_VALUES",$send($range(0,64,!0),"inject",[$hash2([],{})],(function(h,i){var $writer;return null==h&&(h=nil),null==i&&(i=nil),$writer=[$$("BASE64_DIGITS")["$[]"](i),i],$send(h,"[]=",$to_a($writer)),$rb_minus($writer.length,1),h}),2)),$defs(self,"$encode",(function(ary){var self=this,result=nil;return result=[],function(){var $brk=Opal.new_brk();try{$send(ary,"each",[],(function $$2(n){var self=null==$$2.$$s?this:$$2.$$s,vlq=nil;return null==n&&(n=nil),vlq=$truthy($rb_lt(n,0))?$rb_plus(n["$-@"]()["$<<"](1),1):n["$<<"](1),function(){var $brk=Opal.new_brk();try{return $send(self,"loop",[],(function(){var digit=nil;if(digit=vlq["$&"]($$("VLQ_BASE_MASK")),vlq=vlq["$>>"]($$("VLQ_BASE_SHIFT")),$truthy($rb_gt(vlq,0))&&(digit=digit["$|"]($$("VLQ_CONTINUATION_BIT"))),result["$<<"]($$("BASE64_DIGITS")["$[]"](digit)),$truthy($rb_gt(vlq,0)))return nil;Opal.brk(nil,$brk)}),{$$arity:0,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}()}),{$$arity:1,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),result.$join()}),1),$defs(self,"$decode",(function(str){var result=nil,chars=nil,vlq=nil,shift=nil,continuation=nil,char$=nil,digit=nil;for(result=[],chars=str.$split("");$truthy(chars["$any?"]());){for(vlq=0,shift=0,continuation=!0;$truthy(continuation);)char$=chars.$shift(),$truthy(char$)||this.$raise($$("ArgumentError")),digit=$$("BASE64_VALUES")["$[]"](char$),$eqeq(digit["$&"]($$("VLQ_CONTINUATION_BIT")),0)&&(continuation=!1),digit=digit["$&"]($$("VLQ_BASE_MASK")),vlq=$rb_plus(vlq,digit["$<<"](shift)),shift=$rb_plus(shift,$$("VLQ_BASE_SHIFT"));result["$<<"]($eqeq(vlq["$&"](1),1)?vlq["$>>"](1)["$-@"]():vlq["$>>"](1))}return result}),1),$defs(self,"$encode_mappings",(function(ary){return $send(ary,"map",[],(function $$4(group){return null==group&&(group=nil),$send(group,"map",[],(function $$5(segment){return null==segment&&(segment=nil),(null==$$5.$$s?this:$$5.$$s).$encode(segment)}),{$$arity:1,$$s:null==$$4.$$s?this:$$4.$$s}).$join(",")}),{$$arity:1,$$s:this}).$join(";")}),1),$defs(self,"$decode_mappings",(function(str){var mappings=nil;return mappings=[],$send(str.$split(";"),"each_with_index",[],(function $$6(group,index){var $writer,self=null==$$6.$$s?this:$$6.$$s;return null==group&&(group=nil),null==index&&(index=nil),$send(mappings,"[]=",$to_a($writer=[index,[]])),$rb_minus($writer.length,1),$send(group.$split(","),"each",[],(function $$7(segment){var self=null==$$7.$$s?this:$$7.$$s;return null==segment&&(segment=nil),mappings["$[]"](index)["$<<"](self.$decode(segment))}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:this}),mappings}),1)}($$$($$("Opal"),"SourceMap"),$nesting)},Opal.modules["opal/source_map"]=function(Opal){var $base,$parent_nesting,$nesting=[],$module=(Opal.nil,Opal.module);return Opal.add_stubs("autoload"),$base=$nesting[0],$parent_nesting=$nesting,function($base){var self=$module($base,"SourceMap");return self.$autoload("Map","opal/source_map/map"),self.$autoload("File","opal/source_map/file"),self.$autoload("Index","opal/source_map/index"),self.$autoload("VLQ","opal/source_map/vlq")}([$module($base,"Opal")].concat($parent_nesting)[0])},Opal.modules["opal-source-maps"]=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("require"),self.$require("opal/source_map")}; diff --git a/opal/master/opal-source-maps.min.js.gz b/opal/master/opal-source-maps.min.js.gz index 2345611c..459476bf 100644 Binary files a/opal/master/opal-source-maps.min.js.gz and b/opal/master/opal-source-maps.min.js.gz differ diff --git a/opal/master/opal.js b/opal/master/opal.js index bee3d155..78db4cd4 100644 --- a/opal/master/opal.js +++ b/opal/master/opal.js @@ -54,6 +54,12 @@ // The actual Class class var Class; + // The Opal.Opal class (helpers etc.) + var _Opal; + + // The Kernel module + var Kernel; + // The Opal object that is exposed globally var Opal = global_object.Opal = {}; @@ -65,6 +71,7 @@ Opal.config = { missing_require_severity: 'error', // error, warning, ignore unsupported_features_severity: 'warning', // error, warning, ignore + experimental_features_severity: 'warning',// warning, ignore enable_stack_trace: true // true, false }; @@ -94,7 +101,7 @@ if (obj.$$id != null) { return obj.$$id; } - $defineProperty(obj, '$$id', Opal.uid()); + $prop(obj, '$$id', Opal.uid()); return obj.$$id; }; @@ -121,23 +128,7 @@ } }; - // Inspect any kind of object, including non Ruby ones - Opal.inspect = function(obj) { - if (obj === undefined) { - return "undefined"; - } - else if (obj === null) { - return "null"; - } - else if (!obj.$$class) { - return obj.toString(); - } - else { - return obj.$inspect(); - } - }; - - function $defineProperty(object, name, initialValue) { + function $prop(object, name, initialValue) { if (typeof(object) === "string") { // Special case for: // s = "string" @@ -157,7 +148,10 @@ } } - Opal.defineProperty = $defineProperty; + Opal.prop = $prop; + + // @deprecated + Opal.defineProperty = Opal.prop; Opal.slice = $slice; @@ -165,12 +159,12 @@ // Helpers // ----- - Opal.truthy = function(val) { - return (val !== nil && val != null && (!val.$$is_boolean || val == true)); + var $truthy = Opal.truthy = function(val) { + return false !== val && nil !== val && undefined !== val && null !== val && (!(val instanceof Boolean) || true === val.valueOf()); }; Opal.falsy = function(val) { - return (val === nil || val == null || (val.$$is_boolean && val == false)) + return !$truthy(val); }; Opal.type_error = function(object, type, method, coerced) { @@ -190,7 +184,22 @@ }; Opal.coerce_to = function(object, type, method, args) { - if (type['$==='](object)) return object; + var body; + + if (method === 'to_int' && type === Opal.Integer && object.$$is_number) + return object < 0 ? Math.ceil(object) : Math.floor(object); + + if (method === 'to_str' && type === Opal.String && object.$$is_string) + return object; + + if (Opal.is_a(object, type)) return object; + + // Fast path for the most common situation + if (object['$respond_to?'].$$pristine && object.$method_missing.$$pristine) { + body = object['$' + method]; + if (body == null || body.$$stub) throw Opal.type_error(object, type); + return body.apply(object, args); + } if (!object['$respond_to?'](method)) { throw Opal.type_error(object, type); @@ -206,9 +215,10 @@ var body = obj[jsid]; if (obj['$respond_to?'].$$pristine) { - if (obj['$respond_to_missing?'].$$pristine) { - return typeof(body) === "function" && !body.$$stub; - } else { + if (typeof(body) === "function" && !body.$$stub) { + return true; + } + if (!obj['$respond_to_missing?'].$$pristine) { return Opal.send(obj, obj['$respond_to_missing?'], [jsid.substr(1), include_all]); } } else { @@ -233,6 +243,25 @@ } } + function handle_autoload(cref, name) { + if (!cref.$$autoload[name].loaded) { + cref.$$autoload[name].loaded = true; + try { + Opal.Kernel.$require(cref.$$autoload[name].path); + } catch (e) { + cref.$$autoload[name].exception = e; + throw e; + } + cref.$$autoload[name].required = true; + if (cref.$$const[name] != null) { + cref.$$autoload[name].success = true; + return cref.$$const[name]; + } + } else if (cref.$$autoload[name].loaded && !cref.$$autoload[name].required) { + if (cref.$$autoload[name].exception) { throw cref.$$autoload[name].exception; } + } + } + // Constants // --------- // @@ -247,7 +276,12 @@ // Get the constant in the scope of the current cref function const_get_name(cref, name) { - if (cref) return cref.$$const[name]; + if (cref) { + if (cref.$$const[name] != null) { return cref.$$const[name]; } + if (cref.$$autoload && cref.$$autoload[name]) { + return handle_autoload(cref, name); + } + } } // Walk up the nesting array looking for the constant @@ -260,7 +294,11 @@ // and in order. The ancestors of those elements are ignored. for (i = 0, ii = nesting.length; i < ii; i++) { constant = nesting[i].$$const[name]; - if (constant != null) return constant; + if (constant != null) { + return constant; + } else if (nesting[i].$$autoload && nesting[i].$$autoload[name]) { + return handle_autoload(nesting[i], name); + } } } @@ -275,6 +313,8 @@ for (i = 0, ii = ancestors.length; i < ii; i++) { if (ancestors[i].$$const && $has_own.call(ancestors[i].$$const, name)) { return ancestors[i].$$const[name]; + } else if (ancestors[i].$$autoload && ancestors[i].$$autoload[name]) { + return handle_autoload(ancestors[i], name); } } } @@ -315,6 +355,14 @@ Opal.const_get_qualified = function(cref, name, skip_missing) { var result, cache, cached, current_version = Opal.const_cache_version; + if (name == null) { + // A shortpath for calls like ::String => $$$("String") + result = const_get_name(_Object, cref); + + if (result != null) return result; + return Opal.const_get_qualified(_Object, cref, skip_missing); + } + if (cref == null) return; if (cref === '::') cref = _Object; @@ -324,7 +372,7 @@ } if ((cache = cref.$$const_cache) == null) { - $defineProperty(cref, '$$const_cache', Object.create(null)); + $prop(cref, '$$const_cache', Object.create(null)); cache = cref.$$const_cache; } cached = cache[name]; @@ -349,7 +397,7 @@ var cref = nesting[0], result, current_version = Opal.const_cache_version, cache, cached; if ((cache = nesting.$$const_cache) == null) { - $defineProperty(nesting, '$$const_cache', Object.create(null)); + $prop(nesting, '$$const_cache', Object.create(null)); cache = nesting.$$const_cache; } cached = cache[name]; @@ -370,7 +418,7 @@ // Register the constant on a cref and opportunistically set the name of // unnamed classes/modules. - Opal.const_set = function(cref, name, value) { + function $const_set(cref, name, value) { if (cref == null || cref === '::') cref = _Object; if (value.$$is_a_module) { @@ -392,11 +440,13 @@ if (cref === _Object) Opal[name] = value; // Name new class directly onto current scope (Opal.Foo.Baz = klass) - $defineProperty(cref, name, value); + $prop(cref, name, value); return value; }; + Opal.const_set = $const_set; + // Get all the constants reachable from a given cref, by default will include // inherited constants. Opal.constants = function(cref, inherit) { @@ -416,6 +466,11 @@ for (constant in module.$$const) { constants[constant] = true; } + if (module.$$autoload) { + for (constant in module.$$autoload) { + constants[constant] = true; + } + } } return Object.keys(constants); @@ -431,7 +486,7 @@ return old; } - if (cref.$$autoload != null && cref.$$autoload[name] != null) { + if (cref.$$autoload && cref.$$autoload[name]) { delete cref.$$autoload[name]; return nil; } @@ -439,10 +494,17 @@ throw Opal.NameError.$new("constant "+cref+"::"+cref.$name()+" not defined"); }; + // Generates a function that is a curried const_get_relative. + Opal.const_get_relative_factory = function(nesting) { + return function(name, skip_missing) { + return Opal.$$(nesting, name, skip_missing); + } + } + // Setup some shortcuts to reduce compiled size Opal.$$ = Opal.const_get_relative; Opal.$$$ = Opal.const_get_qualified; - + Opal.$r = Opal.const_get_relative_factory; // Modules & Classes // ----------------- @@ -466,13 +528,13 @@ // use that as the scope instead. // // @param scope [Object] where the class is being created - // @param superclass [Class,null] superclass of the new class (may be null) - // @param id [String] the name of the class to be created - // @param constructor [JS.Function] function to use as constructor + // @param superclass [Class,null] superclass of the new class (may be null) + // @param singleton [Boolean,null] a true value denotes we want to allocate + // a singleton // // @return new [Class] or existing ruby class // - Opal.allocate_class = function(name, superclass) { + Opal.allocate_class = function(name, superclass, singleton) { var klass, constructor; if (superclass != null && superclass.$$bridge) { @@ -490,26 +552,27 @@ constructor = function(){}; } - if (name) { - $defineProperty(constructor, 'displayName', '::'+name); + if (name && name !== nil) { + $prop(constructor, 'displayName', '::'+name); } klass = constructor; - $defineProperty(klass, '$$name', name); - $defineProperty(klass, '$$constructor', constructor); - $defineProperty(klass, '$$prototype', constructor.prototype); - $defineProperty(klass, '$$const', {}); - $defineProperty(klass, '$$is_class', true); - $defineProperty(klass, '$$is_a_module', true); - $defineProperty(klass, '$$super', superclass); - $defineProperty(klass, '$$cvars', {}); - $defineProperty(klass, '$$own_included_modules', []); - $defineProperty(klass, '$$own_prepended_modules', []); - $defineProperty(klass, '$$ancestors', []); - $defineProperty(klass, '$$ancestors_cache_version', null); - - $defineProperty(klass.$$prototype, '$$class', klass); + $prop(klass, '$$name', name); + $prop(klass, '$$constructor', constructor); + $prop(klass, '$$prototype', constructor.prototype); + $prop(klass, '$$const', {}); + $prop(klass, '$$is_class', true); + $prop(klass, '$$is_a_module', true); + $prop(klass, '$$super', superclass); + $prop(klass, '$$cvars', {}); + $prop(klass, '$$own_included_modules', []); + $prop(klass, '$$own_prepended_modules', []); + $prop(klass, '$$ancestors', []); + $prop(klass, '$$ancestors_cache_version', null); + $prop(klass, '$$subclasses', []); + + $prop(klass.$$prototype, '$$class', klass); // By default if there are no singleton class methods // __proto__ is Class.prototype @@ -522,6 +585,27 @@ if (superclass != null) { $set_proto(klass.$$prototype, superclass.$$prototype); + if (singleton !== true) { + // Let's not forbid GC from cleaning up our + // subclasses. + if (typeof WeakRef !== 'undefined') { + // First, let's clean up our array from empty objects. + var i, subclass, rebuilt_subclasses = []; + for (i = 0; i < superclass.$$subclasses.length; i++) { + subclass = superclass.$$subclasses[i]; + if (subclass.deref() !== undefined) { + rebuilt_subclasses.push(subclass); + } + } + // Now, let's add our class. + rebuilt_subclasses.push(new WeakRef(klass)); + superclass.$$subclasses = rebuilt_subclasses; + } + else { + superclass.$$subclasses.push(klass); + } + } + if (superclass.$$meta) { // If superclass has metaclass then we have explicitely inherit it. Opal.build_class_singleton_class(klass); @@ -603,7 +687,7 @@ // Create the class object (instance of Class) klass = Opal.allocate_class(name, superclass); - Opal.const_set(scope, name, klass); + $const_set(scope, name, klass); // Call .inherited() hook with new class on the superclass if (superclass.$inherited) { @@ -641,25 +725,25 @@ Opal.allocate_module = function(name) { var constructor = function(){}; if (name) { - $defineProperty(constructor, 'displayName', name+'.$$constructor'); + $prop(constructor, 'displayName', name+'.$$constructor'); } var module = constructor; if (name) - $defineProperty(constructor, 'displayName', name+'.constructor'); - - $defineProperty(module, '$$name', name); - $defineProperty(module, '$$prototype', constructor.prototype); - $defineProperty(module, '$$const', {}); - $defineProperty(module, '$$is_module', true); - $defineProperty(module, '$$is_a_module', true); - $defineProperty(module, '$$cvars', {}); - $defineProperty(module, '$$iclasses', []); - $defineProperty(module, '$$own_included_modules', []); - $defineProperty(module, '$$own_prepended_modules', []); - $defineProperty(module, '$$ancestors', [module]); - $defineProperty(module, '$$ancestors_cache_version', null); + $prop(constructor, 'displayName', name+'.constructor'); + + $prop(module, '$$name', name); + $prop(module, '$$prototype', constructor.prototype); + $prop(module, '$$const', {}); + $prop(module, '$$is_module', true); + $prop(module, '$$is_a_module', true); + $prop(module, '$$cvars', {}); + $prop(module, '$$iclasses', []); + $prop(module, '$$own_included_modules', []); + $prop(module, '$$own_prepended_modules', []); + $prop(module, '$$ancestors', [module]); + $prop(module, '$$ancestors_cache_version', null); $set_proto(module, Opal.Module.prototype); @@ -701,7 +785,7 @@ // Module doesnt exist, create a new one... module = Opal.allocate_module(name); - Opal.const_set(scope, name, module); + $const_set(scope, name, module); if (Opal.trace_class) { invoke_tracers_for_class(module); } @@ -754,14 +838,14 @@ // fallback on `Class`. superclass = klass === BasicObject ? Class : Opal.get_singleton_class(klass.$$super); - meta = Opal.allocate_class(null, superclass, function(){}); + meta = Opal.allocate_class(null, superclass, true); - $defineProperty(meta, '$$is_singleton', true); - $defineProperty(meta, '$$singleton_of', klass); - $defineProperty(klass, '$$meta', meta); + $prop(meta, '$$is_singleton', true); + $prop(meta, '$$singleton_of', klass); + $prop(klass, '$$meta', meta); $set_proto(klass, meta.$$prototype); // Restoring ClassName.class - $defineProperty(klass, '$$class', Opal.Class); + $prop(klass, '$$class', Opal.Class); return meta; }; @@ -771,14 +855,14 @@ return mod.$$meta; } - var meta = Opal.allocate_class(null, Opal.Module, function(){}); + var meta = Opal.allocate_class(null, Opal.Module, true); - $defineProperty(meta, '$$is_singleton', true); - $defineProperty(meta, '$$singleton_of', mod); - $defineProperty(mod, '$$meta', meta); + $prop(meta, '$$is_singleton', true); + $prop(meta, '$$singleton_of', mod); + $prop(mod, '$$meta', meta); $set_proto(mod, meta.$$prototype); // Restoring ModuleName.class - $defineProperty(mod, '$$class', Opal.Module); + $prop(mod, '$$class', Opal.Module); return meta; }; @@ -789,14 +873,14 @@ // @return [Class] Opal.build_object_singleton_class = function(object) { var superclass = object.$$class, - klass = Opal.allocate_class(nil, superclass, function(){}); + klass = Opal.allocate_class(nil, superclass, true); - $defineProperty(klass, '$$is_singleton', true); - $defineProperty(klass, '$$singleton_of', object); + $prop(klass, '$$is_singleton', true); + $prop(klass, '$$singleton_of', object); delete klass.$$prototype.$$class; - $defineProperty(object, '$$meta', klass); + $prop(object, '$$meta', klass); $set_proto(object, object.$$meta.$$prototype); @@ -868,11 +952,16 @@ }; Opal.methods = function(obj) { - return Opal.instance_methods(Opal.get_singleton_class(obj)); + return Opal.instance_methods(obj.$$meta || obj.$$class); }; Opal.own_methods = function(obj) { - return Opal.own_instance_methods(Opal.get_singleton_class(obj)); + if (obj.$$meta) { + return Opal.own_instance_methods(obj.$$meta); + } + else { + return []; + } }; Opal.receiver_methods = function(obj) { @@ -1025,7 +1114,7 @@ for (var i = 0, length = module_ancestors.length; i < length; i++) { var ancestor = module_ancestors[i], iclass = create_iclass(ancestor); - $defineProperty(iclass, '$$included', true); + $prop(iclass, '$$included', true); iclasses.push(iclass); } var includer_ancestors = Opal.ancestors(includer), @@ -1130,7 +1219,7 @@ for (var i = 0, length = module_ancestors.length; i < length; i++) { var ancestor = module_ancestors[i], iclass = create_iclass(ancestor); - $defineProperty(iclass, '$$prepended', true); + $prop(iclass, '$$prepended', true); iclasses.push(iclass); } @@ -1149,8 +1238,8 @@ // Making the module "dummy" prepender_iclass = create_dummy_iclass(prepender); flush_methods_in(prepender); - $defineProperty(dummy_prepender, '$$dummy', true); - $defineProperty(dummy_prepender, '$$define_methods_on', prepender_iclass); + $prop(dummy_prepender, '$$dummy', true); + $prop(dummy_prepender, '$$define_methods_on', prepender_iclass); // Converting // dummy(prepender) -> previous_parent @@ -1229,11 +1318,11 @@ for (i = 0; i < length; i++) { var prop = props[i]; - $defineProperty(iclass, prop, proto[prop]); + $prop(iclass, prop, proto[prop]); } - $defineProperty(iclass, '$$iclass', true); - $defineProperty(iclass, '$$module', module); + $prop(iclass, '$$iclass', true); + $prop(iclass, '$$module', module); return iclass; } @@ -1241,7 +1330,7 @@ function chain_iclasses(iclasses) { var length = iclasses.length, first = iclasses[0]; - $defineProperty(first, '$$root', true); + $prop(first, '$$root', true); if (length === 1) { return { first: first, last: first }; @@ -1296,13 +1385,13 @@ // - super (window.Object) // - null // - $defineProperty(native_klass, '$$bridge', klass); + $prop(native_klass, '$$bridge', klass); $set_proto(native_klass.prototype, (klass.$$super || Opal.Object).$$prototype); - $defineProperty(klass, '$$prototype', native_klass.prototype); + $prop(klass, '$$prototype', native_klass.prototype); - $defineProperty(klass.$$prototype, '$$class', klass); - $defineProperty(klass, '$$constructor', native_klass); - $defineProperty(klass, '$$bridge', true); + $prop(klass.$$prototype, '$$class', klass); + $prop(klass, '$$constructor', native_klass); + $prop(klass, '$$bridge', true); }; function protoToModule(proto) { @@ -1381,7 +1470,7 @@ // Note: all ruby methods have a `$` prefix in javascript, so all stubs will // have this prefix as well (to make this method more performant). // - // Opal.add_stubs(["$foo", "$bar", "$baz="]); + // Opal.add_stubs("foo,bar,baz="); // // All stub functions will have a private `$$stub` property set to true so // that other internal methods can detect if a method is just a stub or not. @@ -1391,9 +1480,11 @@ // @return [undefined] Opal.add_stubs = function(stubs) { var proto = Opal.BasicObject.$$prototype; + var stub, existing_method; + stubs = stubs.split(','); for (var i = 0, length = stubs.length; i < length; i++) { - var stub = stubs[i], existing_method = proto[stub]; + stub = '$'+stubs[i], existing_method = proto[stub]; if (existing_method == null || existing_method.$$stub) { Opal.add_stub_for(proto, stub); @@ -1408,8 +1499,8 @@ // @param stub [String] stub name to add (e.g. "$foo") // @return [undefined] Opal.add_stub_for = function(prototype, stub) { - var method_missing_stub = Opal.stub_for(stub); - $defineProperty(prototype, stub, method_missing_stub); + // Opal.stub_for(stub) is the method_missing_stub + $prop(prototype, stub, Opal.stub_for(stub)); }; // Generate the method_missing stub for a given method name. @@ -1423,7 +1514,7 @@ this.$method_missing.$$p = method_missing_stub.$$p; // Set block property to null ready for the next call (stop false-positives) - method_missing_stub.$$p = null; + delete method_missing_stub.$$p; // call method missing with correct args (remove '$' prefix on method name) var args_ary = new Array(arguments.length); @@ -1458,7 +1549,7 @@ } inspect += meth; - throw Opal.ArgumentError.$new('[' + inspect + '] wrong number of arguments(' + actual + ' for ' + expected + ')'); + throw Opal.ArgumentError.$new('[' + inspect + '] wrong number of arguments (given ' + actual + ', expected ' + expected + ')'); }; // Arity count error dispatcher for blocks @@ -1470,7 +1561,7 @@ Opal.block_ac = function(actual, expected, context) { var inspect = "`block in " + context + "'"; - throw Opal.ArgumentError.$new(inspect + ': wrong number of arguments (' + actual + ' for ' + expected + ')'); + throw Opal.ArgumentError.$new(inspect + ': wrong number of arguments (given ' + actual + ', expected ' + expected + ')'); }; // Super dispatcher @@ -1523,7 +1614,7 @@ call_jsid = current_func.$$jsid; } - return Opal.find_super_dispatcher(obj, call_jsid, current_func, defcheck); + return Opal.find_super(obj, call_jsid, current_func, defcheck); }; // @deprecated @@ -1632,15 +1723,9 @@ return (klass.$$is_integer_class) ? (object % 1) === 0 : true; } - var i, length, ancestors = Opal.ancestors(object.$$is_class ? Opal.get_singleton_class(object) : (object.$$meta || object.$$class)); - - for (i = 0, length = ancestors.length; i < length; i++) { - if (ancestors[i] === klass) { - return true; - } - } + var ancestors = Opal.ancestors(object.$$is_class ? Opal.get_singleton_class(object) : (object.$$meta || object.$$class)); - return false; + return ancestors.indexOf(klass) !== -1; }; // Helpers for extracting kwsplats @@ -1726,7 +1811,7 @@ Opal.extract_kwargs = function(parameters) { var kwargs = parameters[parameters.length - 1]; if (kwargs != null && Opal.respond_to(kwargs, '$to_hash', true)) { - $splice.call(parameters, parameters.length - 1, 1); + $splice.call(parameters, parameters.length - 1); return kwargs.$to_hash(); } else { @@ -1761,6 +1846,15 @@ return Opal.hash2(keys, map); }; + function apply_blockopts(block, blockopts) { + if (typeof(blockopts) === 'number') { + block.$$arity = blockopts; + } + else if (typeof(blockopts) === 'object') { + Object.assign(block, blockopts); + } + } + // Calls passed method on a ruby object with arguments and block: // // Can take a method or a method name. @@ -1784,8 +1878,9 @@ // @param method [Function, String] method body or name of the method // @param args [Array] arguments that will be passed to the method call // @param block [Function] ruby block + // @param blockopts [Object, Number] optional properties to set on the block // @return [Object] returning value of the method call - Opal.send = function(recv, method, args, block) { + Opal.send = function(recv, method, args, block, blockopts) { var body; if (typeof(method) === 'function') { @@ -1797,20 +1892,22 @@ throw Opal.NameError.$new("Passed method should be a string or a function"); } - return Opal.send2(recv, body, method, args, block); + return Opal.send2(recv, body, method, args, block, blockopts); }; - Opal.send2 = function(recv, body, method, args, block) { + Opal.send2 = function(recv, body, method, args, block, blockopts) { if (body == null && method != null && recv.$method_missing) { body = recv.$method_missing; args = [method].concat(args); } + apply_blockopts(block, blockopts); + if (typeof block === 'function') body.$$p = block; return body.apply(recv, args); }; - Opal.refined_send = function(refinement_groups, recv, method, args, block) { + Opal.refined_send = function(refinement_groups, recv, method, args, block, blockopts) { var i, j, k, ancestors, ancestor, refinements, refinement, refine_modules, refine_module, body; if (recv.hasOwnProperty('$$meta')) { @@ -1838,18 +1935,21 @@ // Does this module define a method we want to call? if (typeof refine_module.$$prototype['$'+method] !== 'undefined') { body = refine_module.$$prototype['$'+method]; - return Opal.send2(recv, body, method, args, block); + return Opal.send2(recv, body, method, args, block, blockopts); } } } } } - return Opal.send(recv, method, args, block); + return Opal.send(recv, method, args, block, blockopts); }; - Opal.lambda = function(block) { + Opal.lambda = function(block, blockopts) { block.$$is_lambda = true; + + apply_blockopts(block, blockopts); + return block; }; @@ -1887,20 +1987,23 @@ // @param obj [Object, Class] the actual obj to define method for // @param jsid [String] the JavaScript friendly method name (e.g. '$foo') // @param body [JS.Function] the literal JavaScript function used as method + // @param blockopts [Object, Number] optional properties to set on the body // @return [null] // - Opal.def = function(obj, jsid, body) { + Opal.def = function(obj, jsid, body, blockopts) { + apply_blockopts(body, blockopts); + // Special case for a method definition in the // top-level namespace if (obj === Opal.top) { - Opal.defn(Opal.Object, jsid, body) + return Opal.defn(Opal.Object, jsid, body); } // if instance_eval is invoked on a module/class, it sets inst_eval_mod else if (!obj.$$eval && obj.$$is_a_module) { - Opal.defn(obj, jsid, body); + return Opal.defn(obj, jsid, body); } else { - Opal.defs(obj, jsid, body); + return Opal.defs(obj, jsid, body); } }; @@ -1909,11 +2012,13 @@ body.displayName = jsid; body.$$owner = module; + var name = jsid.substr(1); + var proto = module.$$prototype; if (proto.hasOwnProperty('$$dummy')) { proto = proto.$$define_methods_on; } - $defineProperty(proto, jsid, body); + $prop(proto, jsid, body); if (module.$$is_module) { if (module.$$module_function) { @@ -1922,25 +2027,29 @@ for (var i = 0, iclasses = module.$$iclasses, length = iclasses.length; i < length; i++) { var iclass = iclasses[i]; - $defineProperty(iclass, jsid, body); + $prop(iclass, jsid, body); } } var singleton_of = module.$$singleton_of; if (module.$method_added && !module.$method_added.$$stub && !singleton_of) { - module.$method_added(jsid.substr(1)); + module.$method_added(name); } else if (singleton_of && singleton_of.$singleton_method_added && !singleton_of.$singleton_method_added.$$stub) { - singleton_of.$singleton_method_added(jsid.substr(1)); + singleton_of.$singleton_method_added(name); } + + return name; }; // Define a singleton method on the given object (see Opal.def). - Opal.defs = function(obj, jsid, body) { + Opal.defs = function(obj, jsid, body, blockopts) { + apply_blockopts(body, blockopts); + if (obj.$$is_string || obj.$$is_number) { throw Opal.TypeError.$new("can't define singleton"); } - Opal.defn(Opal.get_singleton_class(obj), jsid, body) + return Opal.defn(Opal.get_singleton_class(obj), jsid, body); }; // Called from #remove_method. @@ -2037,7 +2146,7 @@ args[i] = arguments[i]; } - if (block != null) { alias.$$p = null } + delete alias.$$p; return Opal.send(this, body, args, block); }; @@ -2181,7 +2290,7 @@ }; Opal.hash_delete = function(hash, key) { - var i, keys = hash.$$keys, length = keys.length, value; + var i, keys = hash.$$keys, length = keys.length, value, key_tmp; if (key.$$is_string) { if (typeof key !== "string") key = key.valueOf(); @@ -2191,7 +2300,13 @@ } for (i = 0; i < length; i++) { - if (keys[i] === key) { + key_tmp = keys[i]; + + if (key_tmp.$$is_string && typeof key_tmp !== "string") { + key_tmp = key_tmp.valueOf(); + } + + if (key_tmp === key) { keys.splice(i, 1); break; } @@ -2540,7 +2655,12 @@ var module = Opal.modules[path]; if (module) { - module(Opal); + var retval = module(Opal); + if (typeof Promise !== 'undefined' && retval instanceof Promise) { + // A special case of require having an async top: + // We will need to await it. + return retval.then(function() { return true; }); + } } else { var severity = Opal.config.missing_require_severity; @@ -2619,18 +2739,86 @@ return Opal.set_encoding(dup, "binary", "internal_encoding"); } + Opal.last_promise = null; + Opal.promise_unhandled_exception = false; + + // Run a block of code, but if it returns a Promise, don't run the next + // one, but queue it. + Opal.queue = function(proc) { + if (Opal.last_promise) { + // The async path is taken only if anything before returned a + // Promise(V2). + Opal.last_promise = Opal.last_promise.then(function() { + if (!Opal.promise_unhandled_exception) return proc(Opal); + })['catch'](function(error) { + if (Opal.respond_to(error, '$full_message')) { + error = error.$full_message(); + } + console.error(error); + // Abort further execution + Opal.promise_unhandled_exception = true; + Opal.exit(1); + }); + return Opal.last_promise; + } + else { + var ret = proc(Opal); + if (typeof Promise === 'function' && typeof ret === 'object' && ret instanceof Promise) { + Opal.last_promise = ret; + } + return ret; + } + } + + // Operator helpers + // ---------------- + Opal.rb_plus = function(l,r) { return (typeof(l) === 'number' && typeof(r) === 'number') ? l + r : l['$+'](r); } + Opal.rb_minus = function(l,r) { return (typeof(l) === 'number' && typeof(r) === 'number') ? l - r : l['$-'](r); } + Opal.rb_times = function(l,r) { return (typeof(l) === 'number' && typeof(r) === 'number') ? l * r : l['$*'](r); } + Opal.rb_divide = function(l,r) { return (typeof(l) === 'number' && typeof(r) === 'number') ? l / r : l['$/'](r); } + Opal.rb_lt = function(l,r) { return (typeof(l) === 'number' && typeof(r) === 'number') ? l < r : l['$<'](r); } + Opal.rb_gt = function(l,r) { return (typeof(l) === 'number' && typeof(r) === 'number') ? l > r : l['$>'](r); } + Opal.rb_le = function(l,r) { return (typeof(l) === 'number' && typeof(r) === 'number') ? l <= r : l['$<='](r); } + Opal.rb_ge = function(l,r) { return (typeof(l) === 'number' && typeof(r) === 'number') ? l >= r : l['$>='](r); } + + // Optimized helpers for calls like $truthy((a)['$==='](b)) -> $eqeqeq(a, b) + Opal.eqeq = function(lhs, rhs) { + if ((typeof lhs === 'number' && typeof rhs === 'number') || + (typeof lhs === 'string' && typeof rhs === 'string')) { + return lhs === rhs; + } + return $truthy((lhs)['$=='](rhs)); + }; + Opal.eqeqeq = function(lhs, rhs) { + if ((typeof lhs === 'number' && typeof rhs === 'number') || + (typeof lhs === 'string' && typeof rhs === 'string')) { + return lhs === rhs; + } + return $truthy((lhs)['$==='](rhs)); + }; + Opal.neqeq = function(lhs, rhs) { + if ((typeof lhs === 'number' && typeof rhs === 'number') || + (typeof lhs === 'string' && typeof rhs === 'string')) { + return lhs !== rhs; + } + return $truthy((lhs)['$!='](rhs)); + }; + Opal.not = function(arg) { + if (true === arg) return false; + if (undefined === arg || null === arg || false === arg || nil === arg) return true; + return $truthy(arg['$!']()); + } + + // Initialization // -------------- - function $BasicObject() {} - function $Object() {} - function $Module() {} - function $Class() {} - - Opal.BasicObject = BasicObject = Opal.allocate_class('BasicObject', null, $BasicObject); - Opal.Object = _Object = Opal.allocate_class('Object', Opal.BasicObject, $Object); - Opal.Module = Module = Opal.allocate_class('Module', Opal.Object, $Module); - Opal.Class = Class = Opal.allocate_class('Class', Opal.Module, $Class); + Opal.BasicObject = BasicObject = Opal.allocate_class('BasicObject', null); + Opal.Object = _Object = Opal.allocate_class('Object', Opal.BasicObject); + Opal.Module = Module = Opal.allocate_class('Module', Opal.Object); + Opal.Class = Class = Opal.allocate_class('Class', Opal.Module); + Opal.Opal = _Opal = Opal.allocate_module('Opal'); + Opal.Kernel = Kernel = Opal.allocate_module('Kernel'); $set_proto(Opal.BasicObject, Opal.Class.$$prototype); $set_proto(Opal.Object, Opal.Class.$$prototype); @@ -2641,19 +2829,23 @@ BasicObject.$$const["BasicObject"] = BasicObject; // Assign basic constants - Opal.const_set(_Object, "BasicObject", BasicObject); - Opal.const_set(_Object, "Object", _Object); - Opal.const_set(_Object, "Module", Module); - Opal.const_set(_Object, "Class", Class); + $const_set(_Object, "BasicObject", BasicObject); + $const_set(_Object, "Object", _Object); + $const_set(_Object, "Module", Module); + $const_set(_Object, "Class", Class); + $const_set(_Object, "Opal", _Opal); + $const_set(_Object, "Kernel", Kernel); // Fix booted classes to have correct .class value BasicObject.$$class = Class; _Object.$$class = Class; Module.$$class = Class; Class.$$class = Class; + _Opal.$$class = Module; + Kernel.$$class = Module; // Forward .toString() to #to_s - $defineProperty(_Object.$$prototype, 'toString', function() { + $prop(_Object.$$prototype, 'toString', function() { var to_s = this.$to_s(); if (to_s.$$is_string && typeof(to_s) === 'object') { // a string created using new String('string') @@ -2665,7 +2857,7 @@ // Make Kernel#require immediately available as it's needed to require all the // other corelib files. - $defineProperty(_Object.$$prototype, '$require', Opal.require); + $prop(_Object.$$prototype, '$require', Opal.require); // Instantiate the main object Opal.top = new _Object(); @@ -2674,17 +2866,15 @@ // Foward calls to define_method on the top object to Object function top_define_method() { - var args = Opal.slice.call(arguments, 0, arguments.length); + var args = Opal.slice.call(arguments); var block = top_define_method.$$p; - top_define_method.$$p = null; + delete top_define_method.$$p; return Opal.send(_Object, 'define_method', args, block) }; - // Nil - function $NilClass() {} - Opal.NilClass = Opal.allocate_class('NilClass', Opal.Object, $NilClass); - Opal.const_set(_Object, 'NilClass', Opal.NilClass); + Opal.NilClass = Opal.allocate_class('NilClass', Opal.Object); + $const_set(_Object, 'NilClass', Opal.NilClass); nil = Opal.nil = new Opal.NilClass(); nil.$$id = nil_id; nil.call = nil.apply = function() { throw Opal.LocalJumpError.$new('no block given'); }; @@ -2695,82 +2885,77 @@ TypeError.$$super = Error; }).call(this); Opal.loaded(["corelib/runtime.js"]); -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/helpers"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $type_error = Opal.type_error, $coerce_to = Opal.coerce_to, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["corelib/helpers"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $type_error = Opal.type_error, $coerce_to = Opal.coerce_to, $module = Opal.module, $defs = Opal.defs, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $truthy = Opal.truthy, $Opal = Opal.Opal; - Opal.add_stubs(['$===', '$raise', '$respond_to?', '$nil?', '$__send__', '$<=>', '$class', '$coerce_to!', '$new', '$!=', '$[]', '$upcase']); - return (function($base, $parent_nesting) { + Opal.add_stubs('===,raise,respond_to?,nil?,__send__,<=>,class,coerce_to!,new,to_s,__id__'); + return (function($base) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting), $Opal_bridge$1, $Opal_coerce_to$excl$2, $Opal_coerce_to$ques$3, $Opal_try_convert$4, $Opal_compare$5, $Opal_destructure$6, $Opal_respond_to$ques$7, $Opal_instance_variable_name$excl$8, $Opal_class_variable_name$excl$9, $Opal_const_name$excl$10, $Opal_pristine$11; - - Opal.defs(self, '$bridge', $Opal_bridge$1 = function $$bridge(constructor, klass) { - var self = this; - + + $defs(self, '$bridge', function $$bridge(constructor, klass) { + return Opal.bridge(constructor, klass); - }, $Opal_bridge$1.$$arity = 2); - Opal.defs(self, '$coerce_to!', $Opal_coerce_to$excl$2 = function(object, type, method, $a) { - var $post_args, args, self = this, coerced = nil; + }, 2); + $defs(self, '$coerce_to!', function $Opal_coerce_to$excl$1(object, type, method, $a) { + var $post_args, args, coerced = nil; - $post_args = Opal.slice.call(arguments, 3, arguments.length); + $post_args = Opal.slice.call(arguments, 3); args = $post_args;; coerced = $coerce_to(object, type, method, args); - if ($truthy(type['$==='](coerced))) { - } else { - self.$raise($type_error(object, type, method, coerced)) + if (!$eqeqeq(type, coerced)) { + $Kernel.$raise($type_error(object, type, method, coerced)) }; return coerced; - }, $Opal_coerce_to$excl$2.$$arity = -4); - Opal.defs(self, '$coerce_to?', $Opal_coerce_to$ques$3 = function(object, type, method, $a) { - var $post_args, args, self = this, coerced = nil; + }, -4); + $defs(self, '$coerce_to?', function $Opal_coerce_to$ques$2(object, type, method, $a) { + var $post_args, args, coerced = nil; - $post_args = Opal.slice.call(arguments, 3, arguments.length); + $post_args = Opal.slice.call(arguments, 3); args = $post_args;; - if ($truthy(object['$respond_to?'](method))) { - } else { + if (!$truthy(object['$respond_to?'](method))) { return nil }; coerced = $coerce_to(object, type, method, args); if ($truthy(coerced['$nil?']())) { - return nil}; - if ($truthy(type['$==='](coerced))) { - } else { - self.$raise($type_error(object, type, method, coerced)) + return nil + }; + if (!$eqeqeq(type, coerced)) { + $Kernel.$raise($type_error(object, type, method, coerced)) }; return coerced; - }, $Opal_coerce_to$ques$3.$$arity = -4); - Opal.defs(self, '$try_convert', $Opal_try_convert$4 = function $$try_convert(object, type, method) { - var self = this; - + }, -4); + $defs(self, '$try_convert', function $$try_convert(object, type, method) { + - if ($truthy(type['$==='](object))) { - return object}; + if ($eqeqeq(type, object)) { + return object + }; if ($truthy(object['$respond_to?'](method))) { return object.$__send__(method) } else { return nil }; - }, $Opal_try_convert$4.$$arity = 3); - Opal.defs(self, '$compare', $Opal_compare$5 = function $$compare(a, b) { - var self = this, compare = nil; + }, 3); + $defs(self, '$compare', function $$compare(a, b) { + var compare = nil; compare = a['$<=>'](b); if ($truthy(compare === nil)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (a.$class()) + " with " + (b.$class()) + " failed")}; + $Kernel.$raise($$$('ArgumentError'), "comparison of " + (a.$class()) + " with " + (b.$class()) + " failed") + }; return compare; - }, $Opal_compare$5.$$arity = 2); - Opal.defs(self, '$destructure', $Opal_destructure$6 = function $$destructure(args) { - var self = this; - + }, 2); + $defs(self, '$destructure', function $$destructure(args) { + if (args.length == 1) { return args[0]; @@ -2785,57 +2970,67 @@ Opal.modules["corelib/helpers"] = function(Opal) { return args_ary; } - }, $Opal_destructure$6.$$arity = 1); - Opal.defs(self, '$respond_to?', $Opal_respond_to$ques$7 = function(obj, method, include_all) { - var self = this; - + }, 1); + $defs(self, '$respond_to?', function $Opal_respond_to$ques$3(obj, method, include_all) { - if (include_all == null) { - include_all = false; - }; + + if (include_all == null) include_all = false;; if (obj == null || !obj.$$class) { return false; } ; return obj['$respond_to?'](method, include_all); - }, $Opal_respond_to$ques$7.$$arity = -3); - Opal.defs(self, '$instance_variable_name!', $Opal_instance_variable_name$excl$8 = function(name) { - var self = this; - + }, -3); + $defs(self, '$instance_variable_name!', function $Opal_instance_variable_name$excl$4(name) { - name = $$($nesting, 'Opal')['$coerce_to!'](name, $$($nesting, 'String'), "to_str"); - if ($truthy(/^@[a-zA-Z_][a-zA-Z0-9_]*?$/.test(name))) { - } else { - self.$raise($$($nesting, 'NameError').$new("" + "'" + (name) + "' is not allowed as an instance variable name", name)) + + name = $Opal['$coerce_to!'](name, $$$('String'), "to_str"); + if (!$truthy(/^@[a-zA-Z_][a-zA-Z0-9_]*?$/.test(name))) { + $Kernel.$raise($$$('NameError').$new("'" + (name) + "' is not allowed as an instance variable name", name)) }; return name; - }, $Opal_instance_variable_name$excl$8.$$arity = 1); - Opal.defs(self, '$class_variable_name!', $Opal_class_variable_name$excl$9 = function(name) { - var self = this; - + }, 1); + $defs(self, '$class_variable_name!', function $Opal_class_variable_name$excl$5(name) { + - name = $$($nesting, 'Opal')['$coerce_to!'](name, $$($nesting, 'String'), "to_str"); + name = $Opal['$coerce_to!'](name, $$$('String'), "to_str"); if ($truthy(name.length < 3 || name.slice(0,2) !== '@@')) { - self.$raise($$($nesting, 'NameError').$new("" + "`" + (name) + "' is not allowed as a class variable name", name))}; + $Kernel.$raise($$$('NameError').$new("`" + (name) + "' is not allowed as a class variable name", name)) + }; return name; - }, $Opal_class_variable_name$excl$9.$$arity = 1); - Opal.defs(self, '$const_name!', $Opal_const_name$excl$10 = function(const_name) { - var self = this; + }, 1); + $defs(self, '$const_name?', function $Opal_const_name$ques$6(const_name) { + + + if (typeof const_name !== 'string') { + (const_name = $Opal['$coerce_to!'](const_name, $$$('String'), "to_str")) + } + + return const_name[0] === const_name[0].toUpperCase() + + }, 1); + $defs(self, '$const_name!', function $Opal_const_name$excl$7(const_name) { + var $a, self = this; - const_name = $$($nesting, 'Opal')['$coerce_to!'](const_name, $$($nesting, 'String'), "to_str"); - if ($truthy(const_name['$[]'](0)['$!='](const_name['$[]'](0).$upcase()))) { - self.$raise($$($nesting, 'NameError'), "" + "wrong constant name " + (const_name))}; + if ($truthy((($a = $$$('::', 'String', 'skip_raise')) ? 'constant' : nil))) { + const_name = $Opal['$coerce_to!'](const_name, $$$('String'), "to_str") + }; + + if (!const_name || const_name[0] != const_name[0].toUpperCase()) { + self.$raise($$$('NameError'), "wrong constant name " + (const_name)) + } + ; return const_name; - }, $Opal_const_name$excl$10.$$arity = 1); - return (Opal.defs(self, '$pristine', $Opal_pristine$11 = function $$pristine(owner_class, $a) { - var $post_args, method_names, self = this; + }, 1); + $defs(self, '$pristine', function $$pristine(owner_class, $a) { + var $post_args, method_names; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); method_names = $post_args;; @@ -2850,28 +3045,74 @@ Opal.modules["corelib/helpers"] = function(Opal) { } ; return nil; - }, $Opal_pristine$11.$$arity = -2), nil) && 'pristine'; - })($nesting[0], $nesting) + }, -2); + var inspect_stack = []; + return $defs(self, '$inspect', function $$inspect(value) { + var e = nil; + + + ; + var pushed = false; + + return (function() { try { + try { + + + if (value === null) { + // JS null value + return 'null'; + } + else if (value === undefined) { + // JS undefined value + return 'undefined'; + } + else if (typeof value.$$class === 'undefined') { + // JS object / other value that is not bridged + return Object.prototype.toString.apply(value); + } + else if (typeof value.$inspect !== 'function' || value.$inspect.$$stub) { + // BasicObject and friends + return "#<" + (value.$$class) + ":0x" + (value.$__id__().$to_s(16)) + ">" + } + else if (inspect_stack.indexOf(value.$__id__()) !== -1) { + // inspect recursing inside inspect to find out about the + // same object + return "#<" + (value.$$class) + ":0x" + (value.$__id__().$to_s(16)) + ">" + } + else { + // anything supporting Opal + inspect_stack.push(value.$__id__()); + pushed = true; + return value.$inspect(); + } + ; + return nil; + } catch ($err) { + if (Opal.rescue($err, [$$$('Exception')])) {(e = $err) + try { + return "#<" + (value.$$class) + ":0x" + (value.$__id__().$to_s(16)) + ">" + } finally { Opal.pop_exception(); } + } else { throw $err; } + } + } finally { + if (pushed) inspect_stack.pop() + }; })();; + }, -1); + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/module"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $lambda = Opal.lambda, $range = Opal.range, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["corelib/module"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $const_set = Opal.const_set, $Object = Opal.Object, $klass = Opal.klass, $defs = Opal.defs, $send = Opal.send, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $Module = Opal.Module, $Kernel = Opal.Kernel, $rb_lt = Opal.rb_lt, $rb_gt = Opal.rb_gt, $to_a = Opal.to_a, $hash2 = Opal.hash2, $Opal = Opal.Opal, $eqeq = Opal.eqeq, $lambda = Opal.lambda, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; - Opal.add_stubs(['$module_eval', '$to_proc', '$===', '$raise', '$equal?', '$<', '$>', '$nil?', '$attr_reader', '$attr_writer', '$warn', '$attr_accessor', '$class_variable_name!', '$const_name!', '$=~', '$new', '$inject', '$split', '$const_get', '$==', '$!~', '$start_with?', '$bind', '$call', '$class', '$append_features', '$included', '$name', '$cover?', '$size', '$merge', '$compile', '$proc', '$any?', '$prepend_features', '$prepended', '$to_s', '$__id__', '$constants', '$include?', '$copy_class_variables', '$copy_constants', '$define_singleton_method', '$inspect', '$class_exec']); - return (function($base, $super, $parent_nesting) { + Opal.add_stubs('module_eval,to_proc,===,raise,equal?,<,>,nil?,attr_reader,attr_writer,warn,attr_accessor,const_name?,class_variable_name!,const_name!,=~,new,inject,split,const_get,==,start_with?,!~,bind,call,class,append_features,included,name,cover?,size,merge,compile,proc,any?,prepend_features,prepended,to_s,__id__,constants,include?,copy_class_variables,copy_constants,class_exec,inspect'); + + (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Module'); - var $nesting = [self].concat($parent_nesting), $Module_allocate$1, $Module_initialize$2, $Module_$eq_eq_eq$3, $Module_$lt$4, $Module_$lt_eq$5, $Module_$gt$6, $Module_$gt_eq$7, $Module_$lt_eq_gt$8, $Module_alias_method$9, $Module_alias_native$10, $Module_ancestors$11, $Module_append_features$12, $Module_attr_accessor$13, $Module_attr$14, $Module_attr_reader$15, $Module_attr_writer$16, $Module_autoload$17, $Module_class_variables$18, $Module_class_variable_get$19, $Module_class_variable_set$20, $Module_class_variable_defined$ques$21, $Module_remove_class_variable$22, $Module_constants$23, $Module_constants$24, $Module_nesting$25, $Module_const_defined$ques$26, $Module_const_get$27, $Module_const_missing$29, $Module_const_set$30, $Module_public_constant$31, $Module_define_method$32, $Module_remove_method$34, $Module_singleton_class$ques$35, $Module_include$36, $Module_included_modules$37, $Module_include$ques$38, $Module_instance_method$39, $Module_instance_methods$40, $Module_included$41, $Module_extended$42, $Module_extend_object$43, $Module_method_added$44, $Module_method_removed$45, $Module_method_undefined$46, $Module_module_eval$47, $Module_module_exec$49, $Module_method_defined$ques$50, $Module_module_function$51, $Module_name$52, $Module_prepend$53, $Module_prepend_features$54, $Module_prepended$55, $Module_remove_const$56, $Module_to_s$57, $Module_undef_method$58, $Module_instance_variables$59, $Module_dup$60, $Module_copy_class_variables$61, $Module_copy_constants$62, $Module_refine$63, $Module_using$65; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$allocate', $Module_allocate$1 = function $$allocate() { + $defs(self, '$allocate', function $$allocate() { var self = this; @@ -2880,38 +3121,37 @@ Opal.modules["corelib/module"] = function(Opal) { if (self !== Opal.Module) Object.setPrototypeOf(module, self.$$prototype); return module; - }, $Module_allocate$1.$$arity = 0); + }, 0); - Opal.def(self, '$initialize', $Module_initialize$2 = function $$initialize() { - var $iter = $Module_initialize$2.$$p, block = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize() { + var block = $$initialize.$$p || nil, self = this; - if ($iter) $Module_initialize$2.$$p = null; - + delete $$initialize.$$p; - if ($iter) $Module_initialize$2.$$p = null;; + ; if ((block !== nil)) { return $send(self, 'module_eval', [], block.$to_proc()) } else { return nil }; - }, $Module_initialize$2.$$arity = 0); + }, 0); - Opal.def(self, '$===', $Module_$eq_eq_eq$3 = function(object) { + $def(self, '$===', function $Module_$eq_eq_eq$1(object) { var self = this; if ($truthy(object == null)) { - return false}; + return false + }; return Opal.is_a(object, self);; - }, $Module_$eq_eq_eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$<', $Module_$lt$4 = function(other) { + $def(self, '$<', function $Module_$lt$2(other) { var self = this; - if ($truthy($$($nesting, 'Module')['$==='](other))) { - } else { - self.$raise($$($nesting, 'TypeError'), "compared with non class/module") + if (!$eqeqeq($Module, other)) { + $Kernel.$raise($$$('TypeError'), "compared with non class/module") }; var working = self, @@ -2936,9 +3176,9 @@ Opal.modules["corelib/module"] = function(Opal) { return nil; ; - }, $Module_$lt$4.$$arity = 1); + }, 1); - Opal.def(self, '$<=', $Module_$lt_eq$5 = function(other) { + $def(self, '$<=', function $Module_$lt_eq$3(other) { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self['$equal?'](other)))) { @@ -2946,30 +3186,29 @@ Opal.modules["corelib/module"] = function(Opal) { } else { return $rb_lt(self, other) } - }, $Module_$lt_eq$5.$$arity = 1); + }, 1); - Opal.def(self, '$>', $Module_$gt$6 = function(other) { + $def(self, '$>', function $Module_$gt$4(other) { var self = this; - if ($truthy($$($nesting, 'Module')['$==='](other))) { - } else { - self.$raise($$($nesting, 'TypeError'), "compared with non class/module") + if (!$eqeqeq($Module, other)) { + $Kernel.$raise($$$('TypeError'), "compared with non class/module") }; return $rb_lt(other, self); - }, $Module_$gt$6.$$arity = 1); + }, 1); - Opal.def(self, '$>=', $Module_$gt_eq$7 = function(other) { - var self = this, $ret_or_2 = nil; + $def(self, '$>=', function $Module_$gt_eq$5(other) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = self['$equal?'](other)))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self['$equal?'](other)))) { + return $ret_or_1 } else { return $rb_gt(self, other) } - }, $Module_$gt_eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$<=>', $Module_$lt_eq_gt$8 = function(other) { + $def(self, '$<=>', function $Module_$lt_eq_gt$6(other) { var self = this, lt = nil; @@ -2978,74 +3217,72 @@ Opal.modules["corelib/module"] = function(Opal) { return 0; } ; - if ($truthy($$($nesting, 'Module')['$==='](other))) { - } else { + if (!$eqeqeq($Module, other)) { return nil }; lt = $rb_lt(self, other); if ($truthy(lt['$nil?']())) { - return nil}; + return nil + }; if ($truthy(lt)) { return -1 } else { return 1 }; - }, $Module_$lt_eq_gt$8.$$arity = 1); + }, 1); - Opal.def(self, '$alias_method', $Module_alias_method$9 = function $$alias_method(newname, oldname) { + $def(self, '$alias_method', function $$alias_method(newname, oldname) { var self = this; - newname = $coerce_to(newname, $$($nesting, 'String'), 'to_str'); - oldname = $coerce_to(oldname, $$($nesting, 'String'), 'to_str'); + newname = $coerce_to(newname, $$$('String'), 'to_str'); + oldname = $coerce_to(oldname, $$$('String'), 'to_str'); Opal.alias(self, newname, oldname); return self; - }, $Module_alias_method$9.$$arity = 2); + }, 2); - Opal.def(self, '$alias_native', $Module_alias_native$10 = function $$alias_native(mid, jsid) { + $def(self, '$alias_native', function $$alias_native(mid, jsid) { var self = this; - if (jsid == null) { - jsid = mid; - }; + if (jsid == null) jsid = mid;; Opal.alias_native(self, mid, jsid); return self; - }, $Module_alias_native$10.$$arity = -2); + }, -2); - Opal.def(self, '$ancestors', $Module_ancestors$11 = function $$ancestors() { + $def(self, '$ancestors', function $$ancestors() { var self = this; return Opal.ancestors(self); - }, $Module_ancestors$11.$$arity = 0); + }, 0); - Opal.def(self, '$append_features', $Module_append_features$12 = function $$append_features(includer) { + $def(self, '$append_features', function $$append_features(includer) { var self = this; Opal.append_features(self, includer); return self; - }, $Module_append_features$12.$$arity = 1); + }, 1); - Opal.def(self, '$attr_accessor', $Module_attr_accessor$13 = function $$attr_accessor($a) { + $def(self, '$attr_accessor', function $$attr_accessor($a) { var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; - $send(self, 'attr_reader', Opal.to_a(names)); - return $send(self, 'attr_writer', Opal.to_a(names)); - }, $Module_attr_accessor$13.$$arity = -1); + $send(self, 'attr_reader', $to_a(names)); + return $send(self, 'attr_writer', $to_a(names)); + }, -1); - Opal.def(self, '$attr', $Module_attr$14 = function $$attr($a) { + $def(self, '$attr', function $$attr($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; @@ -3056,15 +3293,15 @@ Opal.modules["corelib/module"] = function(Opal) { return nil; } ; - return $send(self, 'attr_reader', Opal.to_a(args)); - }, $Module_attr$14.$$arity = -1); + return $send(self, 'attr_reader', $to_a(args)); + }, -1); - Opal.def(self, '$attr_reader', $Module_attr_reader$15 = function $$attr_reader($a) { + $def(self, '$attr_reader', function $$attr_reader($a) { var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; @@ -3089,7 +3326,7 @@ Opal.modules["corelib/module"] = function(Opal) { })(ivar); // initialize the instance variable as nil - Opal.defineProperty(proto, ivar, nil); + Opal.prop(proto, ivar, nil); body.$$parameters = []; body.$$arity = 0; @@ -3098,14 +3335,14 @@ Opal.modules["corelib/module"] = function(Opal) { } ; return nil; - }, $Module_attr_reader$15.$$arity = -1); + }, -1); - Opal.def(self, '$attr_writer', $Module_attr_writer$16 = function $$attr_writer($a) { + $def(self, '$attr_writer', function $$attr_writer($a) { var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; @@ -3128,89 +3365,118 @@ Opal.modules["corelib/module"] = function(Opal) { body.$$arity = 1; // initialize the instance variable as nil - Opal.defineProperty(proto, ivar, nil); + Opal.prop(proto, ivar, nil); Opal.defn(self, id, body); } ; return nil; - }, $Module_attr_writer$16.$$arity = -1); + }, -1); + + $def(self, '$autoload', function $$autoload(const$, path) { + var self = this; + + + if (!$$('Opal')['$const_name?'](const$)) { + $Kernel.$raise($$$('NameError'), "autoload must be constant name: " + (const$)) + } + + if (path == "") { + $Kernel.$raise($$$('ArgumentError'), "empty file name") + } + + if (!self.$$const.hasOwnProperty(const$)) { + if (!self.$$autoload) { + self.$$autoload = {}; + } + Opal.const_cache_version++; + self.$$autoload[const$] = { path: path, loaded: false, required: false, success: false, exception: false }; + } + return nil; + + }, 2); - Opal.def(self, '$autoload', $Module_autoload$17 = function $$autoload(const$, path) { + $def(self, '$autoload?', function $Module_autoload$ques$7(const$) { var self = this; - if (self.$$autoload == null) self.$$autoload = {}; - Opal.const_cache_version++; - self.$$autoload[const$] = path; + if (self.$$autoload && self.$$autoload[const$] && !self.$$autoload[const$].required && !self.$$autoload[const$].success) { + return self.$$autoload[const$].path; + } + + var ancestors = self.$ancestors(); + + for (var i = 0, length = ancestors.length; i < length; i++) { + if (ancestors[i].$$autoload && ancestors[i].$$autoload[const$] && !ancestors[i].$$autoload[const$].required && !ancestors[i].$$autoload[const$].success) { + return ancestors[i].$$autoload[const$].path; + } + } return nil; - }, $Module_autoload$17.$$arity = 2); + }, 1); - Opal.def(self, '$class_variables', $Module_class_variables$18 = function $$class_variables() { + $def(self, '$class_variables', function $$class_variables() { var self = this; return Object.keys(Opal.class_variables(self)); - }, $Module_class_variables$18.$$arity = 0); + }, 0); - Opal.def(self, '$class_variable_get', $Module_class_variable_get$19 = function $$class_variable_get(name) { + $def(self, '$class_variable_get', function $$class_variable_get(name) { var self = this; - name = $$($nesting, 'Opal')['$class_variable_name!'](name); + name = $Opal['$class_variable_name!'](name); return Opal.class_variable_get(self, name, false);; - }, $Module_class_variable_get$19.$$arity = 1); + }, 1); - Opal.def(self, '$class_variable_set', $Module_class_variable_set$20 = function $$class_variable_set(name, value) { + $def(self, '$class_variable_set', function $$class_variable_set(name, value) { var self = this; - name = $$($nesting, 'Opal')['$class_variable_name!'](name); + name = $Opal['$class_variable_name!'](name); return Opal.class_variable_set(self, name, value);; - }, $Module_class_variable_set$20.$$arity = 2); + }, 2); - Opal.def(self, '$class_variable_defined?', $Module_class_variable_defined$ques$21 = function(name) { + $def(self, '$class_variable_defined?', function $Module_class_variable_defined$ques$8(name) { var self = this; - name = $$($nesting, 'Opal')['$class_variable_name!'](name); + name = $Opal['$class_variable_name!'](name); return Opal.class_variables(self).hasOwnProperty(name);; - }, $Module_class_variable_defined$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$remove_class_variable', $Module_remove_class_variable$22 = function $$remove_class_variable(name) { + $def(self, '$remove_class_variable', function $$remove_class_variable(name) { var self = this; - name = $$($nesting, 'Opal')['$class_variable_name!'](name); + name = $Opal['$class_variable_name!'](name); if (Opal.hasOwnProperty.call(self.$$cvars, name)) { var value = self.$$cvars[name]; delete self.$$cvars[name]; return value; } else { - self.$raise($$($nesting, 'NameError'), "" + "cannot remove " + (name) + " for " + (self)) + $Kernel.$raise($$$('NameError'), "cannot remove " + (name) + " for " + (self)) } ; - }, $Module_remove_class_variable$22.$$arity = 1); + }, 1); - Opal.def(self, '$constants', $Module_constants$23 = function $$constants(inherit) { + $def(self, '$constants', function $$constants(inherit) { var self = this; - if (inherit == null) { - inherit = true; - }; + if (inherit == null) inherit = true;; return Opal.constants(self, inherit);; - }, $Module_constants$23.$$arity = -1); - Opal.defs(self, '$constants', $Module_constants$24 = function $$constants(inherit) { + }, -1); + $defs(self, '$constants', function $$constants(inherit) { var self = this; ; if (inherit == null) { - var nesting = (self.$$nesting || []).concat(Opal.Object), + var nesting = (self.$$nesting || []).concat($Object), constant, constants = {}, i, ii; @@ -3224,25 +3490,22 @@ Opal.modules["corelib/module"] = function(Opal) { return Opal.constants(self, inherit) } ; - }, $Module_constants$24.$$arity = -1); - Opal.defs(self, '$nesting', $Module_nesting$25 = function $$nesting() { + }, -1); + $defs(self, '$nesting', function $$nesting() { var self = this; return self.$$nesting || []; - }, $Module_nesting$25.$$arity = 0); + }, 0); - Opal.def(self, '$const_defined?', $Module_const_defined$ques$26 = function(name, inherit) { + $def(self, '$const_defined?', function $Module_const_defined$ques$9(name, inherit) { var self = this; - if (inherit == null) { - inherit = true; - }; - name = $$($nesting, 'Opal')['$const_name!'](name); - if ($truthy(name['$=~']($$$($$($nesting, 'Opal'), 'CONST_NAME_REGEXP')))) { - } else { - self.$raise($$($nesting, 'NameError').$new("" + "wrong constant name " + (name), name)) + if (inherit == null) inherit = true;; + name = $$('Opal')['$const_name!'](name); + if (!$truthy(name['$=~']($$$($Opal, 'CONST_NAME_REGEXP')))) { + $Kernel.$raise($$$('NameError').$new("wrong constant name " + (name), name)) }; var module, modules = [self], module_constants, i, ii; @@ -3253,132 +3516,105 @@ Opal.modules["corelib/module"] = function(Opal) { // Add Object's ancestors if it's a module – modules have no ancestors otherwise if (self.$$is_module) { - modules = modules.concat([Opal.Object]).concat(Opal.ancestors(Opal.Object)); + modules = modules.concat([$Object]).concat(Opal.ancestors($Object)); } } for (i = 0, ii = modules.length; i < ii; i++) { module = modules[i]; - if (module.$$const[name] != null) { + if (module.$$const[name] != null) { return true; } + if ( + module.$$autoload && + module.$$autoload[name] && + !module.$$autoload[name].required && + !module.$$autoload[name].success + ) { return true; } } return false; ; - }, $Module_const_defined$ques$26.$$arity = -2); + }, -2); - Opal.def(self, '$const_get', $Module_const_get$27 = function $$const_get(name, inherit) { - var $$28, self = this; + $def(self, '$const_get', function $$const_get(name, inherit) { + var self = this; - if (inherit == null) { - inherit = true; - }; - name = $$($nesting, 'Opal')['$const_name!'](name); + if (inherit == null) inherit = true;; + name = $$('Opal')['$const_name!'](name); if (name.indexOf('::') === 0 && name !== '::'){ name = name.slice(2); } ; if ($truthy(name.indexOf('::') != -1 && name != '::')) { - return $send(name.$split("::"), 'inject', [self], ($$28 = function(o, c){var self = $$28.$$s == null ? this : $$28.$$s; - + return $send(name.$split("::"), 'inject', [self], function $$10(o, c){ - if (o == null) { - o = nil; - }; + if (o == null) o = nil;; - if (c == null) { - c = nil; - }; - return o.$const_get(c);}, $$28.$$s = self, $$28.$$arity = 2, $$28))}; - if ($truthy(name['$=~']($$$($$($nesting, 'Opal'), 'CONST_NAME_REGEXP')))) { - } else { - self.$raise($$($nesting, 'NameError').$new("" + "wrong constant name " + (name), name)) + if (c == null) c = nil;; + return o.$const_get(c);}, 2) + }; + if (!$truthy(name['$=~']($$$($Opal, 'CONST_NAME_REGEXP')))) { + $Kernel.$raise($$$('NameError').$new("wrong constant name " + (name), name)) }; if (inherit) { - return $$([self], name); + return Opal.$$([self], name); } else { return Opal.const_get_local(self, name); } ; - }, $Module_const_get$27.$$arity = -2); + }, -2); - Opal.def(self, '$const_missing', $Module_const_missing$29 = function $$const_missing(name) { + $def(self, '$const_missing', function $$const_missing(name) { var self = this, full_const_name = nil; - - if (self.$$autoload) { - var file = self.$$autoload[name]; - - if (file) { - self.$require(file); - - return self.$const_get(name); - } - } - ; - full_const_name = (function() {if (self['$==']($$($nesting, 'Object'))) { - return name - } else { - return "" + (self) + "::" + (name) - }; return nil; })(); - return self.$raise($$($nesting, 'NameError').$new("" + "uninitialized constant " + (full_const_name), name)); - }, $Module_const_missing$29.$$arity = 1); + full_const_name = ($eqeq(self, $Object) ? (name) : ("" + (self) + "::" + (name))); + return $Kernel.$raise($$$('NameError').$new("uninitialized constant " + (full_const_name), name)); + }, 1); - Opal.def(self, '$const_set', $Module_const_set$30 = function $$const_set(name, value) { - var self = this, $ret_or_3 = nil; + $def(self, '$const_set', function $$const_set(name, value) { + var self = this; - name = $$($nesting, 'Opal')['$const_name!'](name); - if ($truthy((function() {if ($truthy(($ret_or_3 = name['$!~']($$$($$($nesting, 'Opal'), 'CONST_NAME_REGEXP'))))) { - return $ret_or_3 - } else { - return name['$start_with?']("::") - }; return nil; })())) { - self.$raise($$($nesting, 'NameError').$new("" + "wrong constant name " + (name), name))}; - Opal.const_set(self, name, value); + name = $Opal['$const_name!'](name); + if (($truthy(name['$!~']($$$($Opal, 'CONST_NAME_REGEXP'))) || ($truthy(name['$start_with?']("::"))))) { + $Kernel.$raise($$$('NameError').$new("wrong constant name " + (name), name)) + }; + $const_set(self, name, value); return value; - }, $Module_const_set$30.$$arity = 2); + }, 2); - Opal.def(self, '$public_constant', $Module_public_constant$31 = function $$public_constant(const_name) { - var self = this; - + $def(self, '$public_constant', function $$public_constant(const_name) { + return nil - }, $Module_public_constant$31.$$arity = 1); + }, 1); - Opal.def(self, '$define_method', $Module_define_method$32 = function $$define_method(name, method) { - var $iter = $Module_define_method$32.$$p, block = $iter || nil, $$33, self = this, $ret_or_4 = nil, $case = nil; + $def(self, '$define_method', function $$define_method(name, method) { + var block = $$define_method.$$p || nil, self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($iter) $Module_define_method$32.$$p = null; - + delete $$define_method.$$p; - if ($iter) $Module_define_method$32.$$p = null;; ; - if ($truthy(method === undefined && block === nil)) { - self.$raise($$($nesting, 'ArgumentError'), "tried to create a Proc object without a block")}; - block = (function() {if ($truthy(($ret_or_4 = block))) { - return $ret_or_4 - } else { - return (function() {$case = method; - if ($$($nesting, 'Proc')['$===']($case)) {return method} - else if ($$($nesting, 'Method')['$===']($case)) {return method.$to_proc().$$unbound} - else if ($$($nesting, 'UnboundMethod')['$===']($case)) {return $lambda(($$33 = function($a){var self = $$33.$$s == null ? this : $$33.$$s, $post_args, args, bound = nil; + ; + + if (method === undefined && block === nil) + $Kernel.$raise($$$('ArgumentError'), "tried to create a Proc object without a block") + ; + block = ($truthy(($ret_or_1 = block)) ? ($ret_or_1) : ($eqeqeq($$$('Proc'), ($ret_or_2 = method)) ? (method) : ($eqeqeq($$$('Method'), $ret_or_2) ? (method.$to_proc().$$unbound) : ($eqeqeq($$$('UnboundMethod'), $ret_or_2) ? ($lambda(function $$11($a){var $post_args, args, self = $$11.$$s == null ? this : $$11.$$s, bound = nil; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - args = $post_args;; - bound = method.$bind(self); - return $send(bound, 'call', Opal.to_a(args));}, $$33.$$s = self, $$33.$$arity = -1, $$33))} - else {return self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (block.$class()) + " (expected Proc/Method)")}})() - }; return nil; })(); + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + bound = method.$bind(self); + return $send(bound, 'call', $to_a(args));}, {$$arity: -1, $$s: self})) : ($Kernel.$raise($$$('TypeError'), "wrong argument type " + (block.$class()) + " (expected Proc/Method)")))))); var id = '$' + name; @@ -3387,18 +3623,16 @@ Opal.modules["corelib/module"] = function(Opal) { block.$$def = block; block.$$define_meth = true; - Opal.defn(self, id, block); - - return name; + return Opal.defn(self, id, block); ; - }, $Module_define_method$32.$$arity = -2); + }, -2); - Opal.def(self, '$remove_method', $Module_remove_method$34 = function $$remove_method($a) { + $def(self, '$remove_method', function $$remove_method($a) { var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; @@ -3407,20 +3641,20 @@ Opal.modules["corelib/module"] = function(Opal) { } ; return self; - }, $Module_remove_method$34.$$arity = -1); + }, -1); - Opal.def(self, '$singleton_class?', $Module_singleton_class$ques$35 = function() { + $def(self, '$singleton_class?', function $Module_singleton_class$ques$12() { var self = this; return !!self.$$is_singleton; - }, $Module_singleton_class$ques$35.$$arity = 0); + }, 0); - Opal.def(self, '$include', $Module_include$36 = function $$include($a) { + $def(self, '$include', function $$include($a) { var $post_args, mods, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); mods = $post_args;; @@ -3428,7 +3662,7 @@ Opal.modules["corelib/module"] = function(Opal) { var mod = mods[i]; if (!mod.$$is_module) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); + $Kernel.$raise($$$('TypeError'), "wrong argument type " + ((mod).$class()) + " (expected Module)"); } (mod).$append_features(self); @@ -3436,20 +3670,20 @@ Opal.modules["corelib/module"] = function(Opal) { } ; return self; - }, $Module_include$36.$$arity = -1); + }, -1); - Opal.def(self, '$included_modules', $Module_included_modules$37 = function $$included_modules() { + $def(self, '$included_modules', function $$included_modules() { var self = this; return Opal.included_modules(self); - }, $Module_included_modules$37.$$arity = 0); + }, 0); - Opal.def(self, '$include?', $Module_include$ques$38 = function(mod) { + $def(self, '$include?', function $Module_include$ques$13(mod) { var self = this; if (!mod.$$is_module) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); + $Kernel.$raise($$$('TypeError'), "wrong argument type " + ((mod).$class()) + " (expected Module)"); } var i, ii, mod2, ancestors = Opal.ancestors(self); @@ -3463,30 +3697,28 @@ Opal.modules["corelib/module"] = function(Opal) { return false; - }, $Module_include$ques$38.$$arity = 1); + }, 1); - Opal.def(self, '$instance_method', $Module_instance_method$39 = function $$instance_method(name) { + $def(self, '$instance_method', function $$instance_method(name) { var self = this; var meth = self.$$prototype['$' + name]; if (!meth || meth.$$stub) { - self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (name) + "' for class `" + (self.$name()) + "'", name)); + $Kernel.$raise($$$('NameError').$new("undefined method `" + (name) + "' for class `" + (self.$name()) + "'", name)); } - return $$($nesting, 'UnboundMethod').$new(self, meth.$$owner || self, meth, name); + return $$$('UnboundMethod').$new(self, meth.$$owner || self, meth, name); - }, $Module_instance_method$39.$$arity = 1); + }, 1); - Opal.def(self, '$instance_methods', $Module_instance_methods$40 = function $$instance_methods(include_super) { + $def(self, '$instance_methods', function $$instance_methods(include_super) { var self = this; - if (include_super == null) { - include_super = true; - }; + if (include_super == null) include_super = true;; if ($truthy(include_super)) { return Opal.instance_methods(self); @@ -3494,94 +3726,81 @@ Opal.modules["corelib/module"] = function(Opal) { return Opal.own_instance_methods(self); } ; - }, $Module_instance_methods$40.$$arity = -1); + }, -1); - Opal.def(self, '$included', $Module_included$41 = function $$included(mod) { - var self = this; - + $def(self, '$included', function $$included(mod) { + return nil - }, $Module_included$41.$$arity = 1); + }, 1); - Opal.def(self, '$extended', $Module_extended$42 = function $$extended(mod) { - var self = this; - + $def(self, '$extended', function $$extended(mod) { + return nil - }, $Module_extended$42.$$arity = 1); + }, 1); - Opal.def(self, '$extend_object', $Module_extend_object$43 = function $$extend_object(object) { - var self = this; - + $def(self, '$extend_object', function $$extend_object(object) { + return nil - }, $Module_extend_object$43.$$arity = 1); + }, 1); - Opal.def(self, '$method_added', $Module_method_added$44 = function $$method_added($a) { - var $post_args, self = this; + $def(self, '$method_added', function $$method_added($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $Module_method_added$44.$$arity = -1); + }, -1); - Opal.def(self, '$method_removed', $Module_method_removed$45 = function $$method_removed($a) { - var $post_args, self = this; + $def(self, '$method_removed', function $$method_removed($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $Module_method_removed$45.$$arity = -1); + }, -1); - Opal.def(self, '$method_undefined', $Module_method_undefined$46 = function $$method_undefined($a) { - var $post_args, self = this; + $def(self, '$method_undefined', function $$method_undefined($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $Module_method_undefined$46.$$arity = -1); + }, -1); - Opal.def(self, '$module_eval', $Module_module_eval$47 = function $$module_eval($a) { - var $iter = $Module_module_eval$47.$$p, block = $iter || nil, $post_args, args, $b, $$48, self = this, $ret_or_5 = nil, string = nil, file = nil, _lineno = nil, default_eval_options = nil, $ret_or_6 = nil, compiling_options = nil, compiled = nil; + $def(self, '$module_eval', function $$module_eval($a) { + var block = $$module_eval.$$p || nil, $post_args, args, $b, self = this, string = nil, file = nil, _lineno = nil, default_eval_options = nil, $ret_or_1 = nil, compiling_options = nil, compiled = nil; - if ($iter) $Module_module_eval$47.$$p = null; + delete $$module_eval.$$p; + ; - if ($iter) $Module_module_eval$47.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - if ($truthy((function() {if ($truthy(($ret_or_5 = block['$nil?']()))) { - return !!Opal.compile; - } else { - return $ret_or_5 - }; return nil; })())) { + if (($truthy(block['$nil?']()) && ($truthy(!!Opal.compile)))) { - if ($truthy($range(1, 3, false)['$cover?'](args.$size()))) { - } else { - $$($nesting, 'Kernel').$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1..3)") + if (!$truthy($range(1, 3, false)['$cover?'](args.$size()))) { + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (0 for 1..3)") }; - $b = [].concat(Opal.to_a(args)), (string = ($b[0] == null ? nil : $b[0])), (file = ($b[1] == null ? nil : $b[1])), (_lineno = ($b[2] == null ? nil : $b[2])), $b; - default_eval_options = $hash2(["file", "eval"], {"file": (function() {if ($truthy(($ret_or_6 = file))) { - return $ret_or_6 - } else { - return "(eval)" - }; return nil; })(), "eval": true}); + $b = [].concat($to_a(args)), (string = ($b[0] == null ? nil : $b[0])), (file = ($b[1] == null ? nil : $b[1])), (_lineno = ($b[2] == null ? nil : $b[2])), $b; + default_eval_options = $hash2(["file", "eval"], {"file": ($truthy(($ret_or_1 = file)) ? ($ret_or_1) : ("(eval)")), "eval": true}); compiling_options = Opal.hash({ arity_check: false }).$merge(default_eval_options); - compiled = $$($nesting, 'Opal').$compile(string, compiling_options); - block = $send($$($nesting, 'Kernel'), 'proc', [], ($$48 = function(){var self = $$48.$$s == null ? this : $$48.$$s; + compiled = $Opal.$compile(string, compiling_options); + block = $send($Kernel, 'proc', [], function $$14(){var self = $$14.$$s == null ? this : $$14.$$s; - - return (function(self) { - return eval(compiled); - })(self) - }, $$48.$$s = self, $$48.$$arity = 0, $$48)); + return new Function("Opal,self", "return " + compiled)(Opal, self);}, {$$arity: 0, $$s: self}); } else if ($truthy(args['$any?']())) { - $$($nesting, 'Kernel').$raise($$($nesting, 'ArgumentError'), "" + ("" + "wrong number of arguments (" + (args.$size()) + " for 0)") + "\n\n NOTE:If you want to enable passing a String argument please add \"require 'opal-parser'\" to your script\n")}; + $Kernel.$raise($$$('ArgumentError'), "" + ("wrong number of arguments (" + (args.$size()) + " for 0)") + "\n\n NOTE:If you want to enable passing a String argument please add \"require 'opal-parser'\" to your script\n") + }; var old = block.$$s, result; @@ -3592,23 +3811,21 @@ Opal.modules["corelib/module"] = function(Opal) { return result; ; - }, $Module_module_eval$47.$$arity = -1); - $alias(self, "class_eval", "module_eval"); + }, -1); - Opal.def(self, '$module_exec', $Module_module_exec$49 = function $$module_exec($a) { - var $iter = $Module_module_exec$49.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$module_exec', function $$module_exec($a) { + var block = $$module_exec.$$p || nil, $post_args, args, self = this; - if ($iter) $Module_module_exec$49.$$p = null; + delete $$module_exec.$$p; + ; - if ($iter) $Module_module_exec$49.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if (block === nil) { - self.$raise($$($nesting, 'LocalJumpError'), "no block given") + $Kernel.$raise($$$('LocalJumpError'), "no block given") } var block_self = block.$$s, result; @@ -3619,29 +3836,29 @@ Opal.modules["corelib/module"] = function(Opal) { return result; ; - }, $Module_module_exec$49.$$arity = -1); - $alias(self, "class_exec", "module_exec"); + }, -1); - Opal.def(self, '$method_defined?', $Module_method_defined$ques$50 = function(method) { + $def(self, '$method_defined?', function $Module_method_defined$ques$15(method) { var self = this; var body = self.$$prototype['$' + method]; return (!!body) && !body.$$stub; - }, $Module_method_defined$ques$50.$$arity = 1); + }, 1); - Opal.def(self, '$module_function', $Module_module_function$51 = function $$module_function($a) { + $def(self, '$module_function', function $$module_function($a) { var $post_args, methods, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); methods = $post_args;; if (methods.length === 0) { self.$$module_function = true; + return nil; } else { for (var i = 0, length = methods.length; i < length; i++) { @@ -3651,13 +3868,14 @@ Opal.modules["corelib/module"] = function(Opal) { Opal.defs(self, id, func); } + return methods.length === 1 ? methods[0] : methods; } return self; ; - }, $Module_module_function$51.$$arity = -1); + }, -1); - Opal.def(self, '$name', $Module_name$52 = function $$name() { + $def(self, '$name', function $$name() { var self = this; @@ -3675,7 +3893,7 @@ Opal.modules["corelib/module"] = function(Opal) { base = base.$$base_module; - if (base === Opal.Object) { + if (base === $Object) { break; } } @@ -3686,26 +3904,26 @@ Opal.modules["corelib/module"] = function(Opal) { return self.$$full_name = result.join('::'); - }, $Module_name$52.$$arity = 0); + }, 0); - Opal.def(self, '$prepend', $Module_prepend$53 = function $$prepend($a) { + $def(self, '$prepend', function $$prepend($a) { var $post_args, mods, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); mods = $post_args;; if (mods.length === 0) { - self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (given 0, expected 1+)") + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (given 0, expected 1+)") } for (var i = mods.length - 1; i >= 0; i--) { var mod = mods[i]; if (!mod.$$is_module) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); + $Kernel.$raise($$$('TypeError'), "wrong argument type " + ((mod).$class()) + " (expected Module)"); } (mod).$prepend_features(self); @@ -3713,51 +3931,49 @@ Opal.modules["corelib/module"] = function(Opal) { } ; return self; - }, $Module_prepend$53.$$arity = -1); + }, -1); - Opal.def(self, '$prepend_features', $Module_prepend_features$54 = function $$prepend_features(prepender) { + $def(self, '$prepend_features', function $$prepend_features(prepender) { var self = this; if (!self.$$is_module) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (self.$class()) + " (expected Module)"); + $Kernel.$raise($$$('TypeError'), "wrong argument type " + (self.$class()) + " (expected Module)"); } Opal.prepend_features(self, prepender) ; return self; - }, $Module_prepend_features$54.$$arity = 1); + }, 1); - Opal.def(self, '$prepended', $Module_prepended$55 = function $$prepended(mod) { - var self = this; - + $def(self, '$prepended', function $$prepended(mod) { + return nil - }, $Module_prepended$55.$$arity = 1); + }, 1); - Opal.def(self, '$remove_const', $Module_remove_const$56 = function $$remove_const(name) { + $def(self, '$remove_const', function $$remove_const(name) { var self = this; return Opal.const_remove(self, name); - }, $Module_remove_const$56.$$arity = 1); + }, 1); - Opal.def(self, '$to_s', $Module_to_s$57 = function $$to_s() { - var self = this, $ret_or_7 = nil; + $def(self, '$to_s', function $$to_s() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_7 = Opal.Module.$name.call(self)))) { - return $ret_or_7 + if ($truthy(($ret_or_1 = Opal.Module.$name.call(self)))) { + return $ret_or_1 } else { - return "" + "#<" + (self.$$is_module ? 'Module' : 'Class') + ":0x" + (self.$__id__().$to_s(16)) + ">" + return "#<" + (self.$$is_module ? 'Module' : 'Class') + ":0x" + (self.$__id__().$to_s(16)) + ">" } - }, $Module_to_s$57.$$arity = 0); - $alias(self, "inspect", "to_s"); + }, 0); - Opal.def(self, '$undef_method', $Module_undef_method$58 = function $$undef_method($a) { + $def(self, '$undef_method', function $$undef_method($a) { var $post_args, names, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); names = $post_args;; @@ -3766,9 +3982,9 @@ Opal.modules["corelib/module"] = function(Opal) { } ; return self; - }, $Module_undef_method$58.$$arity = -1); + }, -1); - Opal.def(self, '$instance_variables', $Module_instance_variables$59 = function $$instance_variables() { + $def(self, '$instance_variables', function $$instance_variables() { var self = this, consts = nil; @@ -3784,24 +4000,20 @@ Opal.modules["corelib/module"] = function(Opal) { return result; ; - }, $Module_instance_variables$59.$$arity = 0); + }, 0); - Opal.def(self, '$dup', $Module_dup$60 = function $$dup() { - var $iter = $Module_dup$60.$$p, $yield = $iter || nil, self = this, copy = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$dup', function $$dup() { + var $yield = $$dup.$$p || nil, self = this, copy = nil; - if ($iter) $Module_dup$60.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$dup.$$p; - copy = $send2(self, $find_super(self, 'dup', $Module_dup$60, false, true), 'dup', $zuper, $iter); + copy = $send2(self, $find_super(self, 'dup', $$dup, false, true), 'dup', [], $yield); copy.$copy_class_variables(self); copy.$copy_constants(self); return copy; - }, $Module_dup$60.$$arity = 0); + }, 0); - Opal.def(self, '$copy_class_variables', $Module_copy_class_variables$61 = function $$copy_class_variables(other) { + $def(self, '$copy_class_variables', function $$copy_class_variables(other) { var self = this; @@ -3809,78 +4021,92 @@ Opal.modules["corelib/module"] = function(Opal) { self.$$cvars[name] = other.$$cvars[name]; } - }, $Module_copy_class_variables$61.$$arity = 1); + }, 1); - Opal.def(self, '$copy_constants', $Module_copy_constants$62 = function $$copy_constants(other) { + $def(self, '$copy_constants', function $$copy_constants(other) { var self = this; var name, other_constants = other.$$const; for (name in other_constants) { - Opal.const_set(self, name, other_constants[name]); + $const_set(self, name, other_constants[name]); } - }, $Module_copy_constants$62.$$arity = 1); + }, 1); - Opal.def(self, '$refine', $Module_refine$63 = function $$refine(mod) { - var $iter = $Module_refine$63.$$p, block = $iter || nil, $a, $$64, self = this, s = nil, m = nil, mod_id = nil; + $def(self, '$refine', function $$refine(klass) { + var block = $$refine.$$p || nil, $a, self = this, refinement_module = nil, m = nil, klass_id = nil; - if ($iter) $Module_refine$63.$$p = null; - + delete $$refine.$$p; - if ($iter) $Module_refine$63.$$p = null;; - $a = [self, nil, nil], (s = $a[0]), (m = $a[1]), (mod_id = $a[2]), $a; + ; + $a = [self, nil, nil], (refinement_module = $a[0]), (m = $a[1]), (klass_id = $a[2]), $a; - mod_id = Opal.id(mod); + klass_id = Opal.id(klass); if (typeof self.$$refine_modules === "undefined") { self.$$refine_modules = {}; } - if (typeof self.$$refine_modules[mod_id] === "undefined") { - m = self.$$refine_modules[mod_id] = $$$('::', 'Module').$new(); + if (typeof self.$$refine_modules[klass_id] === "undefined") { + m = self.$$refine_modules[klass_id] = $$$('Refinement').$new(); } else { - m = self.$$refine_modules[mod_id]; + m = self.$$refine_modules[klass_id]; } + m.refinement_module = refinement_module + m.refined_class = klass ; - $send(m, 'define_singleton_method', ["inspect"], ($$64 = function(){var self = $$64.$$s == null ? this : $$64.$$s; - - return "" + "#"}, $$64.$$s = self, $$64.$$arity = 0, $$64)); $send(m, 'class_exec', [], block.$to_proc()); return m; - }, $Module_refine$63.$$arity = 1); - return (Opal.def(self, '$using', $Module_using$65 = function $$using(mod) { - var self = this; + }, 1); + + $def(self, '$using', function $$using(mod) { + + return $Kernel.$raise("Module#using is not permitted in methods") + }, 1); + $alias(self, "class_eval", "module_eval"); + $alias(self, "class_exec", "module_exec"); + return $alias(self, "inspect", "to_s"); + })('::', null, $nesting); + return (function($base, $super) { + var self = $klass($base, $super, 'Refinement'); - return self.$raise("Module#using is not permitted in methods") - }, $Module_using$65.$$arity = 1), nil) && 'using'; - })($nesting[0], null, $nesting) + var $proto = self.$$prototype; + + $proto.refinement_module = $proto.refined_class = nil; + return $def(self, '$inspect', function $$inspect() { + var $yield = $$inspect.$$p || nil, self = this; + + delete $$inspect.$$p; + if ($truthy(self.refinement_module)) { + return "#" + } else { + return $send2(self, $find_super(self, 'inspect', $$inspect, false, true), 'inspect', [], $yield) + } + }, 0) + })('::', $Module); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/class"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; +Opal.modules["corelib/class"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $klass = Opal.klass, $send = Opal.send, $defs = Opal.defs, $def = Opal.def, $rb_plus = Opal.rb_plus, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; - Opal.add_stubs(['$require', '$class_eval', '$to_proc', '$initialize_copy', '$allocate', '$name', '$to_s']); + Opal.add_stubs('require,class_eval,to_proc,+,subclasses,flatten,map,initialize_copy,allocate,name,to_s'); self.$require("corelib/module"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Class'); - var $nesting = [self].concat($parent_nesting), $Class_new$1, $Class_allocate$2, $Class_inherited$3, $Class_initialize_dup$4, $Class_new$5, $Class_superclass$6, $Class_to_s$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$new', $Class_new$1 = function(superclass) { - var $iter = $Class_new$1.$$p, block = $iter || nil, self = this; + $defs(self, '$new', function $Class_new$1(superclass) { + var block = $Class_new$1.$$p || nil; - if ($iter) $Class_new$1.$$p = null; - + delete $Class_new$1.$$p; - if ($iter) $Class_new$1.$$p = null;; + ; - if (superclass == null) { - superclass = $$($nesting, 'Object'); - }; + if (superclass == null) superclass = $$('Object');; if (!superclass.$$is_class) { throw Opal.TypeError.$new("superclass must be a Class"); @@ -3888,16 +4114,12 @@ Opal.modules["corelib/class"] = function(Opal) { var klass = Opal.allocate_class(nil, superclass); superclass.$inherited(klass); - (function() {if ((block !== nil)) { - return $send((klass), 'class_eval', [], block.$to_proc()) - } else { - return nil - }; return nil; })() + ((block !== nil) ? ($send((klass), 'class_eval', [], block.$to_proc())) : nil) return klass; ; - }, $Class_new$1.$$arity = -1); + }, -1); - Opal.def(self, '$allocate', $Class_allocate$2 = function $$allocate() { + $def(self, '$allocate', function $$allocate() { var self = this; @@ -3905,15 +4127,20 @@ Opal.modules["corelib/class"] = function(Opal) { obj.$$id = Opal.uid(); return obj; - }, $Class_allocate$2.$$arity = 0); + }, 0); - Opal.def(self, '$inherited', $Class_inherited$3 = function $$inherited(cls) { + $def(self, '$descendants', function $$descendants() { var self = this; + return $rb_plus(self.$subclasses(), $send(self.$subclasses(), 'map', [], "descendants".$to_proc()).$flatten()) + }, 0); + + $def(self, '$inherited', function $$inherited(cls) { + return nil - }, $Class_inherited$3.$$arity = 1); + }, 1); - Opal.def(self, '$initialize_dup', $Class_initialize_dup$4 = function $$initialize_dup(original) { + $def(self, '$initialize_dup', function $$initialize_dup(original) { var self = this; @@ -3922,17 +4149,16 @@ Opal.modules["corelib/class"] = function(Opal) { self.$$name = null; self.$$full_name = null; ; - }, $Class_initialize_dup$4.$$arity = 1); + }, 1); - Opal.def(self, '$new', $Class_new$5 = function($a) { - var $iter = $Class_new$5.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$new', function $Class_new$2($a) { + var block = $Class_new$2.$$p || nil, $post_args, args, self = this; - if ($iter) $Class_new$5.$$p = null; + delete $Class_new$2.$$p; + ; - if ($iter) $Class_new$5.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; @@ -3940,96 +4166,119 @@ Opal.modules["corelib/class"] = function(Opal) { Opal.send(object, object.$initialize, args, block); return object; ; - }, $Class_new$5.$$arity = -1); + }, -1); + + $def(self, '$subclasses', function $$subclasses() { + var self = this; + + + if (typeof WeakRef !== 'undefined') { + var i, subclass, out = []; + for (i = 0; i < self.$$subclasses.length; i++) { + subclass = self.$$subclasses[i].deref(); + if (subclass !== undefined) { + out.push(subclass); + } + } + return out; + } + else { + return self.$$subclasses; + } + + }, 0); - Opal.def(self, '$superclass', $Class_superclass$6 = function $$superclass() { + $def(self, '$superclass', function $$superclass() { var self = this; return self.$$super || nil; - }, $Class_superclass$6.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Class_to_s$7 = function $$to_s() { - var $iter = $Class_to_s$7.$$p, $yield = $iter || nil, self = this; + $def(self, '$to_s', function $$to_s() { + var $yield = $$to_s.$$p || nil, self = this; - if ($iter) $Class_to_s$7.$$p = null; + delete $$to_s.$$p; var singleton_of = self.$$singleton_of; if (singleton_of && singleton_of.$$is_a_module) { - return "" + "#"; + return "#"; } else if (singleton_of) { // a singleton class created from an object - return "" + "#>"; + return "#>"; } - return $send2(self, $find_super(self, 'to_s', $Class_to_s$7, false, true), 'to_s', [], null); + return $send2(self, $find_super(self, 'to_s', $$to_s, false, true), 'to_s', [], null); - }, $Class_to_s$7.$$arity = 0); + }, 0); return $alias(self, "inspect", "to_s"); - })($nesting[0], null, $nesting); + })('::', null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/basic_object"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $range = Opal.range, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["corelib/basic_object"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + "use strict"; + var nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $alias = Opal.alias, $truthy = Opal.truthy, $range = Opal.range, $Kernel = Opal.Kernel, $to_a = Opal.to_a, $hash2 = Opal.hash2, $Opal = Opal.Opal, $send = Opal.send, $eqeq = Opal.eqeq, $rb_ge = Opal.rb_ge; - Opal.add_stubs(['$==', '$!', '$nil?', '$cover?', '$size', '$raise', '$merge', '$compile', '$proc', '$any?', '$inspect', '$new']); - return (function($base, $super, $parent_nesting) { + Opal.add_stubs('==,raise,inspect,!,nil?,cover?,size,merge,compile,proc,[],first,>=,length,instance_variable_get,any?,new,caller,pristine'); + return (function($base, $super) { var self = $klass($base, $super, 'BasicObject'); - var $nesting = [self].concat($parent_nesting), $BasicObject_initialize$1, $BasicObject_$eq_eq$2, $BasicObject_eql$ques$3, $BasicObject___id__$4, $BasicObject___send__$5, $BasicObject_$excl$6, $BasicObject_$not_eq$7, $BasicObject_instance_eval$8, $BasicObject_instance_exec$10, $BasicObject_singleton_method_added$11, $BasicObject_singleton_method_removed$12, $BasicObject_singleton_method_undefined$13, $BasicObject_method_missing$14, $BasicObject_respond_to_missing$ques$15; - - Opal.def(self, '$initialize', $BasicObject_initialize$1 = function $$initialize($a) { - var $post_args, self = this; + + $def(self, '$initialize', function $$initialize($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $BasicObject_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$==', $BasicObject_$eq_eq$2 = function(other) { + $def(self, '$==', function $BasicObject_$eq_eq$1(other) { var self = this; return self === other; - }, $BasicObject_$eq_eq$2.$$arity = 1); + }, 1); - Opal.def(self, '$eql?', $BasicObject_eql$ques$3 = function(other) { + $def(self, '$eql?', function $BasicObject_eql$ques$2(other) { var self = this; return self['$=='](other) - }, $BasicObject_eql$ques$3.$$arity = 1); + }, 1); $alias(self, "equal?", "=="); - Opal.def(self, '$__id__', $BasicObject___id__$4 = function $$__id__() { + $def(self, '$__id__', function $$__id__() { var self = this; if (self.$$id != null) { return self.$$id; } - Opal.defineProperty(self, '$$id', Opal.uid()); + Opal.prop(self, '$$id', Opal.uid()); return self.$$id; - }, $BasicObject___id__$4.$$arity = 0); + }, 0); - Opal.def(self, '$__send__', $BasicObject___send__$5 = function $$__send__(symbol, $a) { - var $iter = $BasicObject___send__$5.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$__send__', function $$__send__(symbol, $a) { + var block = $$__send__.$$p || nil, $post_args, args, self = this; - if ($iter) $BasicObject___send__$5.$$p = null; - + delete $$__send__.$$p; - if ($iter) $BasicObject___send__$5.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - var func = self['$' + symbol] + if (!symbol.$$is_string) { + self.$raise($$$('TypeError'), "" + (self.$inspect()) + " is not a symbol nor a string") + } + + var func = self['$' + symbol]; if (func) { if (block !== nil) { @@ -4045,58 +4294,46 @@ Opal.modules["corelib/basic_object"] = function(Opal) { return self.$method_missing.apply(self, [symbol].concat(args)); ; - }, $BasicObject___send__$5.$$arity = -2); + }, -2); - Opal.def(self, '$!', $BasicObject_$excl$6 = function() { - var self = this; - + $def(self, '$!', function $BasicObject_$excl$3() { + return false - }, $BasicObject_$excl$6.$$arity = 0); + }, 0); - Opal.def(self, '$!=', $BasicObject_$not_eq$7 = function(other) { + $def(self, '$!=', function $BasicObject_$not_eq$4(other) { var self = this; return self['$=='](other)['$!']() - }, $BasicObject_$not_eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$instance_eval', $BasicObject_instance_eval$8 = function $$instance_eval($a) { - var $iter = $BasicObject_instance_eval$8.$$p, block = $iter || nil, $post_args, args, $b, $$9, self = this, $ret_or_1 = nil, string = nil, file = nil, _lineno = nil, default_eval_options = nil, $ret_or_2 = nil, compiling_options = nil, compiled = nil; + $def(self, '$instance_eval', function $$instance_eval($a) { + var block = $$instance_eval.$$p || nil, $post_args, args, $b, self = this, string = nil, file = nil, _lineno = nil, default_eval_options = nil, $ret_or_1 = nil, compiling_options = nil, compiled = nil; - if ($iter) $BasicObject_instance_eval$8.$$p = null; + delete $$instance_eval.$$p; + ; - if ($iter) $BasicObject_instance_eval$8.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - if ($truthy((function() {if ($truthy(($ret_or_1 = block['$nil?']()))) { - return !!Opal.compile; - } else { - return $ret_or_1 - }; return nil; })())) { + if (($truthy(block['$nil?']()) && ($truthy(!!Opal.compile)))) { - if ($truthy($range(1, 3, false)['$cover?'](args.$size()))) { - } else { - $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "wrong number of arguments (0 for 1..3)") + if (!$truthy($range(1, 3, false)['$cover?'](args.$size()))) { + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (0 for 1..3)") }; - $b = [].concat(Opal.to_a(args)), (string = ($b[0] == null ? nil : $b[0])), (file = ($b[1] == null ? nil : $b[1])), (_lineno = ($b[2] == null ? nil : $b[2])), $b; - default_eval_options = $hash2(["file", "eval"], {"file": (function() {if ($truthy(($ret_or_2 = file))) { - return $ret_or_2 - } else { - return "(eval)" - }; return nil; })(), "eval": true}); + $b = [].concat($to_a(args)), (string = ($b[0] == null ? nil : $b[0])), (file = ($b[1] == null ? nil : $b[1])), (_lineno = ($b[2] == null ? nil : $b[2])), $b; + default_eval_options = $hash2(["file", "eval"], {"file": ($truthy(($ret_or_1 = file)) ? ($ret_or_1) : ("(eval)")), "eval": true}); compiling_options = Opal.hash({ arity_check: false }).$merge(default_eval_options); - compiled = $$$('::', 'Opal').$compile(string, compiling_options); - block = $send($$$('::', 'Kernel'), 'proc', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s; + compiled = $Opal.$compile(string, compiling_options); + block = $send($Kernel, 'proc', [], function $$5(){var self = $$5.$$s == null ? this : $$5.$$s; - - return (function(self) { - return eval(compiled); - })(self) - }, $$9.$$s = self, $$9.$$arity = 0, $$9)); + return new Function("Opal,self", "return " + compiled)(Opal, self);}, {$$arity: 0, $$s: self}); + } else if ((($truthy(block['$nil?']()) && ($truthy($rb_ge(args.$length(), 1)))) && ($eqeq(args.$first()['$[]'](0), "@")))) { + return self.$instance_variable_get(args.$first()) } else if ($truthy(args['$any?']())) { - $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "" + "wrong number of arguments (" + (args.$size()) + " for 0)")}; + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (args.$size()) + " for 0)") + }; var old = block.$$s, result; @@ -4123,22 +4360,20 @@ Opal.modules["corelib/basic_object"] = function(Opal) { return result; ; - }, $BasicObject_instance_eval$8.$$arity = -1); + }, -1); - Opal.def(self, '$instance_exec', $BasicObject_instance_exec$10 = function $$instance_exec($a) { - var $iter = $BasicObject_instance_exec$10.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$instance_exec', function $$instance_exec($a) { + var block = $$instance_exec.$$p || nil, $post_args, args, self = this; - if ($iter) $BasicObject_instance_exec$10.$$p = null; - + delete $$instance_exec.$$p; - if ($iter) $BasicObject_instance_exec$10.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - if ($truthy(block)) { - } else { - $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "no block given") + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "no block given") }; var block_self = block.$$s, @@ -4163,118 +4398,90 @@ Opal.modules["corelib/basic_object"] = function(Opal) { return result; ; - }, $BasicObject_instance_exec$10.$$arity = -1); + }, -1); - Opal.def(self, '$singleton_method_added', $BasicObject_singleton_method_added$11 = function $$singleton_method_added($a) { - var $post_args, self = this; + $def(self, '$singleton_method_added', function $$singleton_method_added($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $BasicObject_singleton_method_added$11.$$arity = -1); + }, -1); - Opal.def(self, '$singleton_method_removed', $BasicObject_singleton_method_removed$12 = function $$singleton_method_removed($a) { - var $post_args, self = this; + $def(self, '$singleton_method_removed', function $$singleton_method_removed($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $BasicObject_singleton_method_removed$12.$$arity = -1); + }, -1); - Opal.def(self, '$singleton_method_undefined', $BasicObject_singleton_method_undefined$13 = function $$singleton_method_undefined($a) { - var $post_args, self = this; + $def(self, '$singleton_method_undefined', function $$singleton_method_undefined($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $BasicObject_singleton_method_undefined$13.$$arity = -1); + }, -1); - Opal.def(self, '$method_missing', $BasicObject_method_missing$14 = function $$method_missing(symbol, $a) { - var $iter = $BasicObject_method_missing$14.$$p, block = $iter || nil, $post_args, args, self = this, message = nil; + $def(self, '$method_missing', function $$method_missing(symbol, $a) { + var block = $$method_missing.$$p || nil, $post_args, args, self = this, inspect_result = nil; - if ($iter) $BasicObject_method_missing$14.$$p = null; - + delete $$method_missing.$$p; - if ($iter) $BasicObject_method_missing$14.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - message = (function() {if ($truthy(self.$inspect && !self.$inspect.$$stub)) { - return "" + "undefined method `" + (symbol) + "' for " + (self.$inspect()) + ":" + (self.$$class) - } else { - return "" + "undefined method `" + (symbol) + "' for " + (self.$$class) - }; return nil; })(); - return $$$('::', 'Kernel').$raise($$$('::', 'NoMethodError').$new(message, symbol)); - }, $BasicObject_method_missing$14.$$arity = -2); - return (Opal.def(self, '$respond_to_missing?', $BasicObject_respond_to_missing$ques$15 = function(method_name, include_all) { - var self = this; - + inspect_result = $Opal.$inspect(self); + return $Kernel.$raise($$$('NoMethodError').$new("undefined method `" + (symbol) + "' for " + (inspect_result), symbol, args), nil, $Kernel.$caller(1)); + }, -2); + $Opal.$pristine(self, "method_missing"); + return $def(self, '$respond_to_missing?', function $BasicObject_respond_to_missing$ques$6(method_name, include_all) { - if (include_all == null) { - include_all = false; - }; + + if (include_all == null) include_all = false;; return false; - }, $BasicObject_respond_to_missing$ques$15.$$arity = -2), nil) && 'respond_to_missing?'; - })($nesting[0], null, $nesting) + }, -2); + })('::', null) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/kernel"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $module = Opal.module, $gvars = Opal.gvars, $hash2 = Opal.hash2, $send = Opal.send, $alias = Opal.alias, $klass = Opal.klass; +Opal.modules["corelib/kernel"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + "use strict"; + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $Opal = Opal.Opal, $module = Opal.module, $def = Opal.def, $Kernel = Opal.Kernel, $gvars = Opal.gvars, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $eqeqeq = Opal.eqeqeq, $rb_le = Opal.rb_le, $rb_lt = Opal.rb_lt, $Object = Opal.Object, $alias = Opal.alias, $klass = Opal.klass; - Opal.add_stubs(['$raise', '$new', '$inspect', '$caller', '$!', '$=~', '$==', '$object_id', '$class', '$coerce_to?', '$<<', '$allocate', '$copy_instance_variables', '$copy_singleton_methods', '$initialize_clone', '$initialize_copy', '$define_method', '$singleton_class', '$to_proc', '$initialize_dup', '$for', '$empty?', '$pop', '$call', '$append_features', '$extend_object', '$extended', '$__id__', '$each', '$instance_variables', '$+', '$instance_variable_get', '$to_s', '$instance_variable_name!', '$respond_to?', '$to_int', '$coerce_to!', '$Integer', '$nil?', '$===', '$enum_for', '$result', '$any?', '$print', '$format', '$puts', '$<=', '$length', '$[]', '$<', '$first', '$split', '$map', '$to_str', '$exception', '$backtrace', '$rand', '$respond_to_missing?', '$pristine', '$try_convert!', '$expand_path', '$join', '$start_with?', '$new_seed', '$srand', '$tag', '$value', '$open', '$include']); + Opal.add_stubs('!,=~,==,object_id,raise,new,class,coerce_to?,<<,allocate,copy_instance_variables,copy_singleton_methods,initialize_clone,initialize_copy,define_method,singleton_class,to_proc,initialize_dup,for,empty?,pop,call,append_features,extend_object,extended,gets,__id__,include?,each,instance_variables,instance_variable_get,inspect,+,to_s,instance_variable_name!,respond_to?,to_int,coerce_to!,Integer,nil?,===,enum_for,result,any?,print,format,puts,<=,length,[],readline,<,first,split,caller,map,to_str,exception,backtrace,rand,respond_to_missing?,pristine,try_convert!,expand_path,join,start_with?,new_seed,srand,tag,value,open,include'); (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_method_missing$1, $Kernel_$eq_tilde$2, $Kernel_$excl_tilde$3, $Kernel_$eq_eq_eq$4, $Kernel_$lt_eq_gt$5, $Kernel_method$6, $Kernel_methods$7, $Kernel_public_methods$8, $Kernel_Array$9, $Kernel_at_exit$10, $Kernel_caller$11, $Kernel_class$12, $Kernel_copy_instance_variables$13, $Kernel_copy_singleton_methods$14, $Kernel_clone$15, $Kernel_initialize_clone$16, $Kernel_define_singleton_method$17, $Kernel_dup$18, $Kernel_initialize_dup$19, $Kernel_enum_for$20, $Kernel_equal$ques$21, $Kernel_exit$22, $Kernel_extend$23, $Kernel_hash$24, $Kernel_initialize_copy$25, $Kernel_inspect$26, $Kernel_instance_of$ques$28, $Kernel_instance_variable_defined$ques$29, $Kernel_instance_variable_get$30, $Kernel_instance_variable_set$31, $Kernel_remove_instance_variable$32, $Kernel_instance_variables$33, $Kernel_Integer$34, $Kernel_Float$35, $Kernel_Hash$36, $Kernel_is_a$ques$37, $Kernel_itself$38, $Kernel_lambda$39, $Kernel_load$40, $Kernel_loop$41, $Kernel_nil$ques$43, $Kernel_printf$44, $Kernel_proc$45, $Kernel_puts$46, $Kernel_p$47, $Kernel_print$49, $Kernel_warn$50, $Kernel_raise$52, $Kernel_rand$53, $Kernel_respond_to$ques$54, $Kernel_respond_to_missing$ques$55, $Kernel_require$56, $Kernel_require_relative$57, $Kernel_require_tree$58, $Kernel_singleton_class$59, $Kernel_sleep$60, $Kernel_srand$61, $Kernel_String$62, $Kernel_tap$63, $Kernel_to_proc$64, $Kernel_to_s$65, $Kernel_catch$66, $Kernel_throw$67, $Kernel_open$68, $Kernel_yield_self$69; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$method_missing', $Kernel_method_missing$1 = function $$method_missing(symbol, $a) { - var $iter = $Kernel_method_missing$1.$$p, block = $iter || nil, $post_args, args, self = this; - - if ($iter) $Kernel_method_missing$1.$$p = null; + $def(self, '$=~', function $Kernel_$eq_tilde$1(obj) { - - if ($iter) $Kernel_method_missing$1.$$p = null;; - - $post_args = Opal.slice.call(arguments, 1, arguments.length); - - args = $post_args;; - return self.$raise($$($nesting, 'NoMethodError').$new("" + "undefined method `" + (symbol) + "' for " + (self.$inspect()), symbol, args), nil, self.$caller(1)); - }, $Kernel_method_missing$1.$$arity = -2); - - Opal.def(self, '$=~', $Kernel_$eq_tilde$2 = function(obj) { - var self = this; - return false - }, $Kernel_$eq_tilde$2.$$arity = 1); + }, 1); - Opal.def(self, '$!~', $Kernel_$excl_tilde$3 = function(obj) { + $def(self, '$!~', function $Kernel_$excl_tilde$2(obj) { var self = this; return self['$=~'](obj)['$!']() - }, $Kernel_$excl_tilde$3.$$arity = 1); + }, 1); - Opal.def(self, '$===', $Kernel_$eq_eq_eq$4 = function(other) { + $def(self, '$===', function $Kernel_$eq_eq_eq$3(other) { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.$object_id()['$=='](other.$object_id())))) { @@ -4282,9 +4489,9 @@ Opal.modules["corelib/kernel"] = function(Opal) { } else { return self['$=='](other) } - }, $Kernel_$eq_eq_eq$4.$$arity = 1); + }, 1); - Opal.def(self, '$<=>', $Kernel_$lt_eq_gt$5 = function(other) { + $def(self, '$<=>', function $Kernel_$lt_eq_gt$4(other) { var self = this; @@ -4299,30 +4506,28 @@ Opal.modules["corelib/kernel"] = function(Opal) { return nil; - }, $Kernel_$lt_eq_gt$5.$$arity = 1); + }, 1); - Opal.def(self, '$method', $Kernel_method$6 = function $$method(name) { + $def(self, '$method', function $$method(name) { var self = this; var meth = self['$' + name]; if (!meth || meth.$$stub) { - self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (name) + "' for class `" + (self.$class()) + "'", name)); + $Kernel.$raise($$$('NameError').$new("undefined method `" + (name) + "' for class `" + (self.$class()) + "'", name)); } - return $$($nesting, 'Method').$new(self, meth.$$owner || self.$class(), meth, name); + return $$$('Method').$new(self, meth.$$owner || self.$class(), meth, name); - }, $Kernel_method$6.$$arity = 1); + }, 1); - Opal.def(self, '$methods', $Kernel_methods$7 = function $$methods(all) { + $def(self, '$methods', function $$methods(all) { var self = this; - if (all == null) { - all = true; - }; + if (all == null) all = true;; if ($truthy(all)) { return Opal.methods(self); @@ -4330,16 +4535,14 @@ Opal.modules["corelib/kernel"] = function(Opal) { return Opal.own_methods(self); } ; - }, $Kernel_methods$7.$$arity = -1); + }, -1); - Opal.def(self, '$public_methods', $Kernel_public_methods$8 = function $$public_methods(all) { + $def(self, '$public_methods', function $$public_methods(all) { var self = this; - if (all == null) { - all = true; - }; + if (all == null) all = true;; if ($truthy(all)) { return Opal.methods(self); @@ -4347,11 +4550,10 @@ Opal.modules["corelib/kernel"] = function(Opal) { return Opal.receiver_methods(self); } ; - }, $Kernel_public_methods$8.$$arity = -1); + }, -1); - Opal.def(self, '$Array', $Kernel_Array$9 = function $$Array(object) { - var self = this; - + $def(self, '$Array', function $$Array(object) { + var coerced; @@ -4363,45 +4565,35 @@ Opal.modules["corelib/kernel"] = function(Opal) { return object; } - coerced = $$($nesting, 'Opal')['$coerce_to?'](object, $$($nesting, 'Array'), "to_ary"); + coerced = $Opal['$coerce_to?'](object, $$$('Array'), "to_ary"); if (coerced !== nil) { return coerced; } - coerced = $$($nesting, 'Opal')['$coerce_to?'](object, $$($nesting, 'Array'), "to_a"); + coerced = $Opal['$coerce_to?'](object, $$$('Array'), "to_a"); if (coerced !== nil) { return coerced; } return [object]; - }, $Kernel_Array$9.$$arity = 1); + }, 1); - Opal.def(self, '$at_exit', $Kernel_at_exit$10 = function $$at_exit() { - var $iter = $Kernel_at_exit$10.$$p, block = $iter || nil, self = this, $ret_or_2 = nil; + $def(self, '$at_exit', function $$at_exit() { + var block = $$at_exit.$$p || nil, $ret_or_1 = nil; if ($gvars.__at_exit__ == null) $gvars.__at_exit__ = nil; - if ($iter) $Kernel_at_exit$10.$$p = null; + delete $$at_exit.$$p; - - if ($iter) $Kernel_at_exit$10.$$p = null;; - $gvars.__at_exit__ = (function() {if ($truthy(($ret_or_2 = $gvars.__at_exit__))) { - return $ret_or_2 - } else { - return [] - }; return nil; })(); + ; + $gvars.__at_exit__ = ($truthy(($ret_or_1 = $gvars.__at_exit__)) ? ($ret_or_1) : ([])); $gvars.__at_exit__['$<<'](block); return block; - }, $Kernel_at_exit$10.$$arity = 0); + }, 0); - Opal.def(self, '$caller', $Kernel_caller$11 = function $$caller(start, length) { - var self = this; - + $def(self, '$caller', function $$caller(start, length) { - if (start == null) { - start = 1; - }; - if (length == null) { - length = nil; - }; + if (start == null) start = 1;; + + if (length == null) length = nil;; var stack, result; @@ -4416,15 +4608,15 @@ Opal.modules["corelib/kernel"] = function(Opal) { if (length != nil) result = result.slice(0, length); return result; ; - }, $Kernel_caller$11.$$arity = -1); + }, -1); - Opal.def(self, '$class', $Kernel_class$12 = function() { + $def(self, '$class', function $Kernel_class$5() { var self = this; return self.$$class; - }, $Kernel_class$12.$$arity = 0); + }, 0); - Opal.def(self, '$copy_instance_variables', $Kernel_copy_instance_variables$13 = function $$copy_instance_variables(other) { + $def(self, '$copy_instance_variables', function $$copy_instance_variables(other) { var self = this; @@ -4436,9 +4628,9 @@ Opal.modules["corelib/kernel"] = function(Opal) { } } - }, $Kernel_copy_instance_variables$13.$$arity = 1); + }, 1); - Opal.def(self, '$copy_singleton_methods', $Kernel_copy_singleton_methods$14 = function $$copy_singleton_methods(other) { + $def(self, '$copy_singleton_methods', function $$copy_singleton_methods(other) { var self = this; @@ -4470,9 +4662,9 @@ Opal.modules["corelib/kernel"] = function(Opal) { } } - }, $Kernel_copy_singleton_methods$14.$$arity = 1); + }, 1); - Opal.def(self, '$clone', $Kernel_clone$15 = function $$clone($kwargs) { + $def(self, '$clone', function $$clone($kwargs) { var freeze, self = this, copy = nil; @@ -4484,34 +4676,31 @@ Opal.modules["corelib/kernel"] = function(Opal) { }; freeze = $kwargs.$$smap["freeze"]; - if (freeze == null) { - freeze = true - }; + if (freeze == null) freeze = true; copy = self.$class().$allocate(); copy.$copy_instance_variables(self); copy.$copy_singleton_methods(self); copy.$initialize_clone(self); return copy; - }, $Kernel_clone$15.$$arity = -1); + }, -1); - Opal.def(self, '$initialize_clone', $Kernel_initialize_clone$16 = function $$initialize_clone(other) { + $def(self, '$initialize_clone', function $$initialize_clone(other) { var self = this; return self.$initialize_copy(other) - }, $Kernel_initialize_clone$16.$$arity = 1); + }, 1); - Opal.def(self, '$define_singleton_method', $Kernel_define_singleton_method$17 = function $$define_singleton_method(name, method) { - var $iter = $Kernel_define_singleton_method$17.$$p, block = $iter || nil, self = this; + $def(self, '$define_singleton_method', function $$define_singleton_method(name, method) { + var block = $$define_singleton_method.$$p || nil, self = this; - if ($iter) $Kernel_define_singleton_method$17.$$p = null; - + delete $$define_singleton_method.$$p; - if ($iter) $Kernel_define_singleton_method$17.$$p = null;; + ; ; return $send(self.$singleton_class(), 'define_method', [name, method], block.$to_proc()); - }, $Kernel_define_singleton_method$17.$$arity = -2); + }, -2); - Opal.def(self, '$dup', $Kernel_dup$18 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this, copy = nil; @@ -4519,57 +4708,44 @@ Opal.modules["corelib/kernel"] = function(Opal) { copy.$copy_instance_variables(self); copy.$initialize_dup(self); return copy; - }, $Kernel_dup$18.$$arity = 0); + }, 0); - Opal.def(self, '$initialize_dup', $Kernel_initialize_dup$19 = function $$initialize_dup(other) { + $def(self, '$initialize_dup', function $$initialize_dup(other) { var self = this; return self.$initialize_copy(other) - }, $Kernel_initialize_dup$19.$$arity = 1); + }, 1); - Opal.def(self, '$enum_for', $Kernel_enum_for$20 = function $$enum_for($a, $b) { - var $iter = $Kernel_enum_for$20.$$p, block = $iter || nil, $post_args, method, args, self = this; + $def(self, '$enum_for', function $$enum_for($a, $b) { + var block = $$enum_for.$$p || nil, $post_args, method, args, self = this; - if ($iter) $Kernel_enum_for$20.$$p = null; - + delete $$enum_for.$$p; - if ($iter) $Kernel_enum_for$20.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - method = $post_args[0]; - $post_args.splice(0, 1); - } - if (method == null) { - method = "each"; - }; + if ($post_args.length > 0) method = $post_args.shift(); + if (method == null) method = "each";; args = $post_args;; - return $send($$($nesting, 'Enumerator'), 'for', [self, method].concat(Opal.to_a(args)), block.$to_proc()); - }, $Kernel_enum_for$20.$$arity = -1); - $alias(self, "to_enum", "enum_for"); + return $send($$$('Enumerator'), 'for', [self, method].concat($to_a(args)), block.$to_proc()); + }, -1); - Opal.def(self, '$equal?', $Kernel_equal$ques$21 = function(other) { + $def(self, '$equal?', function $Kernel_equal$ques$6(other) { var self = this; return self === other; - }, $Kernel_equal$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$exit', $Kernel_exit$22 = function $$exit(status) { - var $a, self = this, $ret_or_3 = nil, block = nil; + $def(self, '$exit', function $$exit(status) { + var $a, $ret_or_1 = nil, block = nil; if ($gvars.__at_exit__ == null) $gvars.__at_exit__ = nil; - if (status == null) { - status = true; - }; - $gvars.__at_exit__ = (function() {if ($truthy(($ret_or_3 = $gvars.__at_exit__))) { - return $ret_or_3 - } else { - return [] - }; return nil; })(); + if (status == null) status = true;; + $gvars.__at_exit__ = ($truthy(($ret_or_1 = $gvars.__at_exit__)) ? ($ret_or_1) : ([])); while (!($truthy($gvars.__at_exit__['$empty?']()))) { block = $gvars.__at_exit__.$pop(); @@ -4579,20 +4755,20 @@ Opal.modules["corelib/kernel"] = function(Opal) { if (status.$$is_boolean) { status = status ? 0 : 1; } else { - status = $coerce_to(status, $$($nesting, 'Integer'), 'to_int') + status = $coerce_to(status, $$$('Integer'), 'to_int') } Opal.exit(status); ; return nil; - }, $Kernel_exit$22.$$arity = -1); + }, -1); - Opal.def(self, '$extend', $Kernel_extend$23 = function $$extend($a) { + $def(self, '$extend', function $$extend($a) { var $post_args, mods, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); mods = $post_args;; @@ -4602,7 +4778,7 @@ Opal.modules["corelib/kernel"] = function(Opal) { var mod = mods[i]; if (!mod.$$is_module) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); + $Kernel.$raise($$$('TypeError'), "wrong argument type " + ((mod).$class()) + " (expected Module)"); } (mod).$append_features(singleton); @@ -4611,81 +4787,113 @@ Opal.modules["corelib/kernel"] = function(Opal) { } ; return self; - }, $Kernel_extend$23.$$arity = -1); + }, -1); - Opal.def(self, '$hash', $Kernel_hash$24 = function $$hash() { - var self = this; + $def(self, '$gets', function $$gets($a) { + var $post_args, args; + if ($gvars.stdin == null) $gvars.stdin = nil; - return self.$__id__() - }, $Kernel_hash$24.$$arity = 0); + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send($gvars.stdin, 'gets', $to_a(args)); + }, -1); - Opal.def(self, '$initialize_copy', $Kernel_initialize_copy$25 = function $$initialize_copy(other) { + $def(self, '$hash', function $$hash() { var self = this; - return nil - }, $Kernel_initialize_copy$25.$$arity = 1); + return self.$__id__() + }, 0); - Opal.def(self, '$inspect', $Kernel_inspect$26 = function $$inspect() { - var $$27, self = this, ivs = nil; - + $def(self, '$initialize_copy', function $$initialize_copy(other) { - ivs = ""; - $send(self.$instance_variables(), 'each', [], ($$27 = function(i){var self = $$27.$$s == null ? this : $$27.$$s; + return nil + }, 1); + var inspect_stack = []; + + $def(self, '$inspect', function $$inspect() { + var self = this, ivs = nil, id = nil, pushed = nil, e = nil; + return (function() { try { + try { - - if (i == null) { - i = nil; + ivs = ""; + id = self.$__id__(); + if ($truthy((inspect_stack)['$include?'](id))) { + ivs = " ..." + } else { + + (inspect_stack)['$<<'](id); + pushed = true; + $send(self.$instance_variables(), 'each', [], function $$7(i){var self = $$7.$$s == null ? this : $$7.$$s, ivar = nil, inspect = nil; + + + + if (i == null) i = nil;; + ivar = self.$instance_variable_get(i); + inspect = $$('Opal').$inspect(ivar); + return (ivs = $rb_plus(ivs, " " + (i) + "=" + (inspect)));}, {$$arity: 1, $$s: self}); }; - return (ivs = $rb_plus(ivs, "" + " " + (i) + "=" + (self.$instance_variable_get(i))));}, $$27.$$s = self, $$27.$$arity = 1, $$27)); - return "" + "#<" + (self.$class()) + ":0x" + (self.$__id__().$to_s(16)) + (ivs) + ">"; - }, $Kernel_inspect$26.$$arity = 0); + return "#<" + (self.$class()) + ":0x" + (id.$to_s(16)) + (ivs) + ">"; + } catch ($err) { + if (Opal.rescue($err, [$$('StandardError')])) {(e = $err) + try { + return "#<" + (self.$class()) + ":0x" + (id.$to_s(16)) + ">" + } finally { Opal.pop_exception(); } + } else { throw $err; } + } + } finally { + ($truthy(pushed) ? ((inspect_stack).$pop()) : nil) + }; })() + }, 0); - Opal.def(self, '$instance_of?', $Kernel_instance_of$ques$28 = function(klass) { + $def(self, '$instance_of?', function $Kernel_instance_of$ques$8(klass) { var self = this; if (!klass.$$is_class && !klass.$$is_module) { - self.$raise($$($nesting, 'TypeError'), "class or module required"); + $Kernel.$raise($$$('TypeError'), "class or module required"); } return self.$$class === klass; - }, $Kernel_instance_of$ques$28.$$arity = 1); + }, 1); - Opal.def(self, '$instance_variable_defined?', $Kernel_instance_variable_defined$ques$29 = function(name) { + $def(self, '$instance_variable_defined?', function $Kernel_instance_variable_defined$ques$9(name) { var self = this; - name = $$($nesting, 'Opal')['$instance_variable_name!'](name); + name = $Opal['$instance_variable_name!'](name); return Opal.hasOwnProperty.call(self, name.substr(1));; - }, $Kernel_instance_variable_defined$ques$29.$$arity = 1); + }, 1); - Opal.def(self, '$instance_variable_get', $Kernel_instance_variable_get$30 = function $$instance_variable_get(name) { + $def(self, '$instance_variable_get', function $$instance_variable_get(name) { var self = this; - name = $$($nesting, 'Opal')['$instance_variable_name!'](name); + name = $Opal['$instance_variable_name!'](name); var ivar = self[Opal.ivar(name.substr(1))]; return ivar == null ? nil : ivar; ; - }, $Kernel_instance_variable_get$30.$$arity = 1); + }, 1); - Opal.def(self, '$instance_variable_set', $Kernel_instance_variable_set$31 = function $$instance_variable_set(name, value) { + $def(self, '$instance_variable_set', function $$instance_variable_set(name, value) { var self = this; - name = $$($nesting, 'Opal')['$instance_variable_name!'](name); + name = $Opal['$instance_variable_name!'](name); return self[Opal.ivar(name.substr(1))] = value;; - }, $Kernel_instance_variable_set$31.$$arity = 2); + }, 2); - Opal.def(self, '$remove_instance_variable', $Kernel_remove_instance_variable$32 = function $$remove_instance_variable(name) { + $def(self, '$remove_instance_variable', function $$remove_instance_variable(name) { var self = this; - name = $$($nesting, 'Opal')['$instance_variable_name!'](name); + name = $Opal['$instance_variable_name!'](name); var key = Opal.ivar(name.substr(1)), val; @@ -4695,10 +4903,10 @@ Opal.modules["corelib/kernel"] = function(Opal) { return val; } ; - return self.$raise($$($nesting, 'NameError'), "" + "instance variable " + (name) + " not defined"); - }, $Kernel_remove_instance_variable$32.$$arity = 1); + return $Kernel.$raise($$$('NameError'), "instance variable " + (name) + " not defined"); + }, 1); - Opal.def(self, '$instance_variables', $Kernel_instance_variables$33 = function $$instance_variables() { + $def(self, '$instance_variables', function $$instance_variables() { var self = this; @@ -4717,11 +4925,10 @@ Opal.modules["corelib/kernel"] = function(Opal) { return result; - }, $Kernel_instance_variables$33.$$arity = 0); + }, 0); - Opal.def(self, '$Integer', $Kernel_Integer$34 = function $$Integer(value, base) { - var self = this; - + $def(self, '$Integer', function $$Integer(value, base) { + ; @@ -4729,14 +4936,14 @@ Opal.modules["corelib/kernel"] = function(Opal) { if (!value.$$is_string) { if (base !== undefined) { - self.$raise($$($nesting, 'ArgumentError'), "base specified for non string value") + $Kernel.$raise($$$('ArgumentError'), "base specified for non string value") } if (value === nil) { - self.$raise($$($nesting, 'TypeError'), "can't convert nil into Integer") + $Kernel.$raise($$$('TypeError'), "can't convert nil into Integer") } if (value.$$is_number) { if (value === Infinity || value === -Infinity || isNaN(value)) { - self.$raise($$($nesting, 'FloatDomainError'), value) + $Kernel.$raise($$$('FloatDomainError'), value) } return Math.floor(value); } @@ -4746,7 +4953,7 @@ Opal.modules["corelib/kernel"] = function(Opal) { return i; } } - return $$($nesting, 'Opal')['$coerce_to!'](value, $$($nesting, 'Integer'), "to_i"); + return $Opal['$coerce_to!'](value, $$$('Integer'), "to_i"); } if (value === "0") { @@ -4756,9 +4963,9 @@ Opal.modules["corelib/kernel"] = function(Opal) { if (base === undefined) { base = 0; } else { - base = $coerce_to(base, $$($nesting, 'Integer'), 'to_int'); + base = $coerce_to(base, $$$('Integer'), 'to_int'); if (base === 1 || base < 0 || base > 36) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid radix " + (base)) + $Kernel.$raise($$$('ArgumentError'), "invalid radix " + (base)) } } @@ -4794,7 +5001,7 @@ Opal.modules["corelib/kernel"] = function(Opal) { } // no-break } - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") + $Kernel.$raise($$$('ArgumentError'), "invalid value for Integer(): \"" + (value) + "\"") }); base = (base === 0 ? 10 : base); @@ -4802,27 +5009,26 @@ Opal.modules["corelib/kernel"] = function(Opal) { base_digits = '0-' + (base <= 10 ? base - 1 : '9a-' + String.fromCharCode(97 + (base - 11))); if (!(new RegExp('^\\s*[+-]?[' + base_digits + ']+\\s*$')).test(str)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") + $Kernel.$raise($$$('ArgumentError'), "invalid value for Integer(): \"" + (value) + "\"") } i = parseInt(str, base); if (isNaN(i)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") + $Kernel.$raise($$$('ArgumentError'), "invalid value for Integer(): \"" + (value) + "\"") } return i; ; - }, $Kernel_Integer$34.$$arity = -2); + }, -2); - Opal.def(self, '$Float', $Kernel_Float$35 = function $$Float(value) { - var self = this; - + $def(self, '$Float', function $$Float(value) { + var str; if (value === nil) { - self.$raise($$($nesting, 'TypeError'), "can't convert nil into Float") + $Kernel.$raise($$$('TypeError'), "can't convert nil into Float") } if (value.$$is_string) { @@ -4832,89 +5038,81 @@ Opal.modules["corelib/kernel"] = function(Opal) { //Special case for hex strings only: if (/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(str)) { - return self.$Integer(str); + return $Kernel.$Integer(str); } if (!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(str)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid value for Float(): \"" + (value) + "\"") + $Kernel.$raise($$$('ArgumentError'), "invalid value for Float(): \"" + (value) + "\"") } return parseFloat(str); } - return $$($nesting, 'Opal')['$coerce_to!'](value, $$($nesting, 'Float'), "to_f"); + return $Opal['$coerce_to!'](value, $$$('Float'), "to_f"); - }, $Kernel_Float$35.$$arity = 1); + }, 1); - Opal.def(self, '$Hash', $Kernel_Hash$36 = function $$Hash(arg) { - var self = this, $ret_or_4 = nil; - + $def(self, '$Hash', function $$Hash(arg) { - if ($truthy((function() {if ($truthy(($ret_or_4 = arg['$nil?']()))) { - return $ret_or_4 - } else { - return arg['$==']([]) - }; return nil; })())) { - return $hash2([], {})}; - if ($truthy($$($nesting, 'Hash')['$==='](arg))) { - return arg}; - return $$($nesting, 'Opal')['$coerce_to!'](arg, $$($nesting, 'Hash'), "to_hash"); - }, $Kernel_Hash$36.$$arity = 1); + + if (($truthy(arg['$nil?']()) || ($eqeq(arg, [])))) { + return $hash2([], {}) + }; + if ($eqeqeq($$$('Hash'), arg)) { + return arg + }; + return $Opal['$coerce_to!'](arg, $$$('Hash'), "to_hash"); + }, 1); - Opal.def(self, '$is_a?', $Kernel_is_a$ques$37 = function(klass) { + $def(self, '$is_a?', function $Kernel_is_a$ques$10(klass) { var self = this; if (!klass.$$is_class && !klass.$$is_module) { - self.$raise($$($nesting, 'TypeError'), "class or module required"); + $Kernel.$raise($$$('TypeError'), "class or module required"); } return Opal.is_a(self, klass); - }, $Kernel_is_a$ques$37.$$arity = 1); + }, 1); - Opal.def(self, '$itself', $Kernel_itself$38 = function $$itself() { + $def(self, '$itself', function $$itself() { var self = this; return self - }, $Kernel_itself$38.$$arity = 0); - $alias(self, "kind_of?", "is_a?"); + }, 0); - Opal.def(self, '$lambda', $Kernel_lambda$39 = function $$lambda() { - var $iter = $Kernel_lambda$39.$$p, block = $iter || nil, self = this; + $def(self, '$lambda', function $$lambda() { + var block = $$lambda.$$p || nil; - if ($iter) $Kernel_lambda$39.$$p = null; + delete $$lambda.$$p; - - if ($iter) $Kernel_lambda$39.$$p = null;; + ; return Opal.lambda(block);; - }, $Kernel_lambda$39.$$arity = 0); + }, 0); - Opal.def(self, '$load', $Kernel_load$40 = function $$load(file) { - var self = this; - + $def(self, '$load', function $$load(file) { - file = $$($nesting, 'Opal')['$coerce_to!'](file, $$($nesting, 'String'), "to_str"); + + file = $Opal['$coerce_to!'](file, $$$('String'), "to_str"); return Opal.load(file); - }, $Kernel_load$40.$$arity = 1); + }, 1); - Opal.def(self, '$loop', $Kernel_loop$41 = function $$loop() { - var $$42, $a, $iter = $Kernel_loop$41.$$p, $yield = $iter || nil, self = this, e = nil; + $def(self, '$loop', function $$loop() { + var $a, $yield = $$loop.$$p || nil, self = this, e = nil; - if ($iter) $Kernel_loop$41.$$p = null; + delete $$loop.$$p; - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["loop"], ($$42 = function(){var self = $$42.$$s == null ? this : $$42.$$s; - - return $$$($$($nesting, 'Float'), 'INFINITY')}, $$42.$$s = self, $$42.$$arity = 0, $$42)) + if (!($yield !== nil)) { + return $send(self, 'enum_for', ["loop"], function $$11(){ + return $$$($$$('Float'), 'INFINITY')}, 0) }; while ($truthy(true)) { try { Opal.yieldX($yield, []) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'StopIteration')])) {(e = $err) + if (Opal.rescue($err, [$$$('StopIteration')])) {(e = $err) try { return e.$result() } finally { Opal.pop_exception(); } @@ -4922,99 +5120,105 @@ Opal.modules["corelib/kernel"] = function(Opal) { }; }; return self; - }, $Kernel_loop$41.$$arity = 0); + }, 0); - Opal.def(self, '$nil?', $Kernel_nil$ques$43 = function() { - var self = this; - + $def(self, '$nil?', function $Kernel_nil$ques$12() { + return false - }, $Kernel_nil$ques$43.$$arity = 0); - $alias(self, "object_id", "__id__"); + }, 0); - Opal.def(self, '$printf', $Kernel_printf$44 = function $$printf($a) { + $def(self, '$printf', function $$printf($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ($truthy(args['$any?']())) { - self.$print($send(self, 'format', Opal.to_a(args)))}; + self.$print($send(self, 'format', $to_a(args))) + }; return nil; - }, $Kernel_printf$44.$$arity = -1); + }, -1); - Opal.def(self, '$proc', $Kernel_proc$45 = function $$proc() { - var $iter = $Kernel_proc$45.$$p, block = $iter || nil, self = this; + $def(self, '$proc', function $$proc() { + var block = $$proc.$$p || nil; - if ($iter) $Kernel_proc$45.$$p = null; + delete $$proc.$$p; - - if ($iter) $Kernel_proc$45.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to create Proc object without a block") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "tried to create Proc object without a block") }; block.$$is_lambda = false; return block; - }, $Kernel_proc$45.$$arity = 0); + }, 0); - Opal.def(self, '$puts', $Kernel_puts$46 = function $$puts($a) { - var $post_args, strs, self = this; + $def(self, '$puts', function $$puts($a) { + var $post_args, strs; if ($gvars.stdout == null) $gvars.stdout = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); strs = $post_args;; - return $send($gvars.stdout, 'puts', Opal.to_a(strs)); - }, $Kernel_puts$46.$$arity = -1); + return $send($gvars.stdout, 'puts', $to_a(strs)); + }, -1); - Opal.def(self, '$p', $Kernel_p$47 = function $$p($a) { - var $post_args, args, $$48, self = this; + $def(self, '$p', function $$p($a) { + var $post_args, args; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - $send(args, 'each', [], ($$48 = function(obj){var self = $$48.$$s == null ? this : $$48.$$s; - if ($gvars.stdout == null) $gvars.stdout = nil; + $send(args, 'each', [], function $$13(obj){ if ($gvars.stdout == null) $gvars.stdout = nil; - if (obj == null) { - obj = nil; - }; - return $gvars.stdout.$puts(obj.$inspect());}, $$48.$$s = self, $$48.$$arity = 1, $$48)); + if (obj == null) obj = nil;; + return $gvars.stdout.$puts(obj.$inspect());}, 1); if ($truthy($rb_le(args.$length(), 1))) { return args['$[]'](0) } else { return args }; - }, $Kernel_p$47.$$arity = -1); + }, -1); - Opal.def(self, '$print', $Kernel_print$49 = function $$print($a) { - var $post_args, strs, self = this; + $def(self, '$print', function $$print($a) { + var $post_args, strs; if ($gvars.stdout == null) $gvars.stdout = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); strs = $post_args;; - return $send($gvars.stdout, 'print', Opal.to_a(strs)); - }, $Kernel_print$49.$$arity = -1); + return $send($gvars.stdout, 'print', $to_a(strs)); + }, -1); + + $def(self, '$readline', function $$readline($a) { + var $post_args, args; + if ($gvars.stdin == null) $gvars.stdin = nil; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send($gvars.stdin, 'readline', $to_a(args)); + }, -1); - Opal.def(self, '$warn', $Kernel_warn$50 = function $$warn($a, $b) { - var $post_args, $kwargs, strs, uplevel, $c, $d, $$51, self = this, location = nil, $ret_or_5 = nil; + $def(self, '$warn', function $$warn($a, $b) { + var $post_args, $kwargs, strs, uplevel, $c, $d, self = this, location = nil; if ($gvars.VERBOSE == null) $gvars.VERBOSE = nil; if ($gvars.stderr == null) $gvars.stderr = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); $kwargs = Opal.extract_kwargs($post_args); @@ -5027,60 +5231,49 @@ Opal.modules["corelib/kernel"] = function(Opal) { strs = $post_args;; uplevel = $kwargs.$$smap["uplevel"]; - if (uplevel == null) { - uplevel = nil - }; + if (uplevel == null) uplevel = nil; if ($truthy(uplevel)) { - uplevel = $$($nesting, 'Opal')['$coerce_to!'](uplevel, $$($nesting, 'Integer'), "to_str"); + uplevel = $Opal['$coerce_to!'](uplevel, $$$('Integer'), "to_str"); if ($truthy($rb_lt(uplevel, 0))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "negative level (" + (uplevel) + ")")}; + $Kernel.$raise($$$('ArgumentError'), "negative level (" + (uplevel) + ")") + }; location = ($d = ($c = self.$caller($rb_plus(uplevel, 1), 1).$first(), ($c === nil || $c == null) ? nil : $send($c, 'split', [":in `"])), ($d === nil || $d == null) ? nil : $send($d, 'first', [])); if ($truthy(location)) { - location = "" + (location) + ": "}; - strs = $send(strs, 'map', [], ($$51 = function(s){var self = $$51.$$s == null ? this : $$51.$$s; - + location = "" + (location) + ": " + }; + strs = $send(strs, 'map', [], function $$14(s){ - if (s == null) { - s = nil; - }; - return "" + (location) + "warning: " + (s);}, $$51.$$s = self, $$51.$$arity = 1, $$51));}; - if ($truthy((function() {if ($truthy(($ret_or_5 = $gvars.VERBOSE['$nil?']()))) { - return $ret_or_5 - } else { - return strs['$empty?']() - }; return nil; })())) { + if (s == null) s = nil;; + return "" + (location) + "warning: " + (s);}, 1); + }; + if (($truthy($gvars.VERBOSE['$nil?']()) || ($truthy(strs['$empty?']())))) { return nil } else { - return $send($gvars.stderr, 'puts', Opal.to_a(strs)) + return $send($gvars.stderr, 'puts', $to_a(strs)) }; - }, $Kernel_warn$50.$$arity = -1); + }, -1); - Opal.def(self, '$raise', $Kernel_raise$52 = function $$raise(exception, string, backtrace) { - var self = this; - if ($gvars["!"] == null) $gvars["!"] = nil; + $def(self, '$raise', function $$raise(exception, string, backtrace) { + if ($gvars["!"] == null) $gvars["!"] = nil; if ($gvars["@"] == null) $gvars["@"] = nil; ; - if (string == null) { - string = nil; - }; + if (string == null) string = nil;; - if (backtrace == null) { - backtrace = nil; - }; + if (backtrace == null) backtrace = nil;; if (exception == null && $gvars["!"] !== nil) { throw $gvars["!"]; } if (exception == null) { - exception = $$($nesting, 'RuntimeError').$new(""); + exception = $$$('RuntimeError').$new(""); } else if ($respond_to(exception, '$to_str')) { - exception = $$($nesting, 'RuntimeError').$new(exception.$to_str()); + exception = $$$('RuntimeError').$new(exception.$to_str()); } // using respond_to? and not an undefined check to avoid method_missing matching as true else if (exception.$$is_class && $respond_to(exception, '$exception')) { @@ -5090,7 +5283,7 @@ Opal.modules["corelib/kernel"] = function(Opal) { // exception is fine } else { - exception = $$($nesting, 'TypeError').$new("exception class/object expected"); + exception = $$$('TypeError').$new("exception class/object expected"); } if (backtrace !== nil) { @@ -5106,17 +5299,15 @@ Opal.modules["corelib/kernel"] = function(Opal) { throw exception; ; - }, $Kernel_raise$52.$$arity = -1); - $alias(self, "fail", "raise"); + }, -1); - Opal.def(self, '$rand', $Kernel_rand$53 = function $$rand(max) { - var self = this; - + $def(self, '$rand', function $$rand(max) { + ; if (max === undefined) { - return $$$($$($nesting, 'Random'), 'DEFAULT').$rand(); + return $$$($$$('Random'), 'DEFAULT').$rand(); } if (max.$$is_number) { @@ -5133,17 +5324,15 @@ Opal.modules["corelib/kernel"] = function(Opal) { } } ; - return $$$($$($nesting, 'Random'), 'DEFAULT').$rand(max); - }, $Kernel_rand$53.$$arity = -1); + return $$$($$$('Random'), 'DEFAULT').$rand(max); + }, -1); - Opal.def(self, '$respond_to?', $Kernel_respond_to$ques$54 = function(name, include_all) { + $def(self, '$respond_to?', function $Kernel_respond_to$ques$15(name, include_all) { var self = this; - if (include_all == null) { - include_all = false; - }; + if (include_all == null) include_all = false;; var body = self['$' + name]; @@ -5157,81 +5346,90 @@ Opal.modules["corelib/kernel"] = function(Opal) { return self['$respond_to_missing?'](name, include_all); } ; - }, $Kernel_respond_to$ques$54.$$arity = -2); + }, -2); - Opal.def(self, '$respond_to_missing?', $Kernel_respond_to_missing$ques$55 = function(method_name, include_all) { - var self = this; - + $def(self, '$respond_to_missing?', function $Kernel_respond_to_missing$ques$16(method_name, include_all) { - if (include_all == null) { - include_all = false; - }; + + if (include_all == null) include_all = false;; return false; - }, $Kernel_respond_to_missing$ques$55.$$arity = -2); - $$($nesting, 'Opal').$pristine(self, "respond_to?", "respond_to_missing?"); + }, -2); + $Opal.$pristine(self, "respond_to?", "respond_to_missing?"); - Opal.def(self, '$require', $Kernel_require$56 = function $$require(file) { - var self = this; - + $def(self, '$require', function $$require(file) { - file = $$($nesting, 'Opal')['$coerce_to!'](file, $$($nesting, 'String'), "to_str"); - return Opal.require(file); - }, $Kernel_require$56.$$arity = 1); + + // As Object.require refers to Kernel.require once Kernel has been loaded the String + // class may not be available yet, the coercion requires both String and Array to be loaded. + if (typeof file !== 'string' && Opal.String && Opal.Array) { + (file = $Opal['$coerce_to!'](file, $$$('String'), "to_str")) + } + return Opal.require(file) - Opal.def(self, '$require_relative', $Kernel_require_relative$57 = function $$require_relative(file) { - var self = this; - + }, 1); + + $def(self, '$require_relative', function $$require_relative(file) { + - $$($nesting, 'Opal')['$try_convert!'](file, $$($nesting, 'String'), "to_str"); - file = $$($nesting, 'File').$expand_path($$($nesting, 'File').$join(Opal.current_file, "..", file)); + $Opal['$try_convert!'](file, $$$('String'), "to_str"); + file = $$$('File').$expand_path($$$('File').$join(Opal.current_file, "..", file)); return Opal.require(file); - }, $Kernel_require_relative$57.$$arity = 1); + }, 1); - Opal.def(self, '$require_tree', $Kernel_require_tree$58 = function $$require_tree(path) { - var self = this; + $def(self, '$require_tree', function $$require_tree(path, $kwargs) { + var autoload; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + autoload = $kwargs.$$smap["autoload"]; + if (autoload == null) autoload = false; + var result = []; - path = $$($nesting, 'File').$expand_path(path) + path = $$$('File').$expand_path(path) path = Opal.normalize(path); if (path === '.') path = ''; for (var name in Opal.modules) { if ((name)['$start_with?'](path)) { - result.push([name, Opal.require(name)]); + if(!autoload) { + result.push([name, Opal.require(name)]); + } else { + result.push([name, true]); // do nothing, delegated to a autoloading + } } } return result; + ; + }, -2); - }, $Kernel_require_tree$58.$$arity = 1); - $alias(self, "send", "__send__"); - $alias(self, "public_send", "__send__"); - - Opal.def(self, '$singleton_class', $Kernel_singleton_class$59 = function $$singleton_class() { + $def(self, '$singleton_class', function $$singleton_class() { var self = this; return Opal.get_singleton_class(self); - }, $Kernel_singleton_class$59.$$arity = 0); + }, 0); - Opal.def(self, '$sleep', $Kernel_sleep$60 = function $$sleep(seconds) { - var self = this; - + $def(self, '$sleep', function $$sleep(seconds) { - if (seconds == null) { - seconds = nil; - }; + + if (seconds == null) seconds = nil;; if (seconds === nil) { - self.$raise($$($nesting, 'TypeError'), "can't convert NilClass into time interval") + $Kernel.$raise($$$('TypeError'), "can't convert NilClass into time interval") } if (!seconds.$$is_number) { - self.$raise($$($nesting, 'TypeError'), "" + "can't convert " + (seconds.$class()) + " into time interval") + $Kernel.$raise($$$('TypeError'), "can't convert " + (seconds.$class()) + " into time interval") } if (seconds < 0) { - self.$raise($$($nesting, 'ArgumentError'), "time interval must be positive") + $Kernel.$raise($$$('ArgumentError'), "time interval must be positive") } var get_time = Opal.global.performance ? function() {return performance.now()} : @@ -5241,156 +5439,241 @@ Opal.modules["corelib/kernel"] = function(Opal) { while (get_time() - t <= seconds * 1000); return Math.round(seconds); ; - }, $Kernel_sleep$60.$$arity = -1); + }, -1); - Opal.def(self, '$srand', $Kernel_srand$61 = function $$srand(seed) { - var self = this; - + $def(self, '$srand', function $$srand(seed) { - if (seed == null) { - seed = $$($nesting, 'Random').$new_seed(); - }; - return $$($nesting, 'Random').$srand(seed); - }, $Kernel_srand$61.$$arity = -1); + + if (seed == null) seed = $$('Random').$new_seed();; + return $$$('Random').$srand(seed); + }, -1); - Opal.def(self, '$String', $Kernel_String$62 = function $$String(str) { - var self = this, $ret_or_6 = nil; + $def(self, '$String', function $$String(str) { + var $ret_or_1 = nil; - if ($truthy(($ret_or_6 = $$($nesting, 'Opal')['$coerce_to?'](str, $$($nesting, 'String'), "to_str")))) { - return $ret_or_6 + if ($truthy(($ret_or_1 = $Opal['$coerce_to?'](str, $$$('String'), "to_str")))) { + return $ret_or_1 } else { - return $$($nesting, 'Opal')['$coerce_to!'](str, $$($nesting, 'String'), "to_s") + return $Opal['$coerce_to!'](str, $$$('String'), "to_s") } - }, $Kernel_String$62.$$arity = 1); + }, 1); - Opal.def(self, '$tap', $Kernel_tap$63 = function $$tap() { - var $iter = $Kernel_tap$63.$$p, block = $iter || nil, self = this; + $def(self, '$tap', function $$tap() { + var block = $$tap.$$p || nil, self = this; - if ($iter) $Kernel_tap$63.$$p = null; + delete $$tap.$$p; - - if ($iter) $Kernel_tap$63.$$p = null;; + ; Opal.yield1(block, self); return self; - }, $Kernel_tap$63.$$arity = 0); + }, 0); - Opal.def(self, '$to_proc', $Kernel_to_proc$64 = function $$to_proc() { + $def(self, '$to_proc', function $$to_proc() { var self = this; return self - }, $Kernel_to_proc$64.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Kernel_to_s$65 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; - return "" + "#<" + (self.$class()) + ":0x" + (self.$__id__().$to_s(16)) + ">" - }, $Kernel_to_s$65.$$arity = 0); + return "#<" + (self.$class()) + ":0x" + (self.$__id__().$to_s(16)) + ">" + }, 0); - Opal.def(self, '$catch', $Kernel_catch$66 = function(tag) { - var $iter = $Kernel_catch$66.$$p, $yield = $iter || nil, self = this, $ret_or_7 = nil, e = nil; + $def(self, '$catch', function $Kernel_catch$17(tag) { + var $yield = $Kernel_catch$17.$$p || nil, $ret_or_1 = nil, e = nil; - if ($iter) $Kernel_catch$66.$$p = null; + delete $Kernel_catch$17.$$p; - if (tag == null) { - tag = nil; - }; + if (tag == null) tag = nil;; try { - tag = (function() {if ($truthy(($ret_or_7 = tag))) { - return $ret_or_7 - } else { - return $$($nesting, 'Object').$new() - }; return nil; })(); + tag = ($truthy(($ret_or_1 = tag)) ? ($ret_or_1) : ($Object.$new())); return Opal.yield1($yield, tag);; } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'UncaughtThrowError')])) {(e = $err) + if (Opal.rescue($err, [$$$('UncaughtThrowError')])) {(e = $err) try { - if (e.$tag()['$=='](tag)) { - return e.$value()}; - return self.$raise(); + if ($eqeq(e.$tag(), tag)) { + return e.$value() + }; + return $Kernel.$raise(); } finally { Opal.pop_exception(); } } else { throw $err; } }; - }, $Kernel_catch$66.$$arity = -1); + }, -1); - Opal.def(self, '$throw', $Kernel_throw$67 = function(tag, obj) { - var self = this; - + $def(self, '$throw', function $Kernel_throw$18(tag, obj) { - if (obj == null) { - obj = nil; - }; - return self.$raise($$($nesting, 'UncaughtThrowError').$new(tag, obj)); - }, $Kernel_throw$67.$$arity = -2); + + if (obj == null) obj = nil;; + return $Kernel.$raise($$$('UncaughtThrowError').$new(tag, obj)); + }, -2); - Opal.def(self, '$open', $Kernel_open$68 = function $$open($a) { - var $iter = $Kernel_open$68.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$open', function $$open($a) { + var block = $$open.$$p || nil, $post_args, args; - if ($iter) $Kernel_open$68.$$p = null; - + delete $$open.$$p; - if ($iter) $Kernel_open$68.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send($$($nesting, 'File'), 'open', Opal.to_a(args), block.$to_proc()); - }, $Kernel_open$68.$$arity = -1); + return $send($$$('File'), 'open', $to_a(args), block.$to_proc()); + }, -1); - Opal.def(self, '$yield_self', $Kernel_yield_self$69 = function $$yield_self() { - var $$70, $iter = $Kernel_yield_self$69.$$p, $yield = $iter || nil, self = this; + $def(self, '$yield_self', function $$yield_self() { + var $yield = $$yield_self.$$p || nil, self = this; - if ($iter) $Kernel_yield_self$69.$$p = null; + delete $$yield_self.$$p; - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["yield_self"], ($$70 = function(){var self = $$70.$$s == null ? this : $$70.$$s; - - return 1}, $$70.$$s = self, $$70.$$arity = 0, $$70)) + if (!($yield !== nil)) { + return $send(self, 'enum_for', ["yield_self"], function $$19(){ + return 1}, 0) }; return Opal.yield1($yield, self);; - }, $Kernel_yield_self$69.$$arity = 0); + }, 0); + $alias(self, "fail", "raise"); + $alias(self, "kind_of?", "is_a?"); + $alias(self, "object_id", "__id__"); + $alias(self, "public_send", "__send__"); + $alias(self, "send", "__send__"); $alias(self, "then", "yield_self"); - return $$($nesting, 'Opal').$pristine(self, "method_missing"); - })($nesting[0], $nesting); - return (function($base, $super, $parent_nesting) { + return $alias(self, "to_enum", "enum_for"); + })('::', $nesting); + return (function($base, $super) { var self = $klass($base, $super, 'Object'); - var $nesting = [self].concat($parent_nesting); + + + delete $Object.$$prototype.$require; + return self.$include($Kernel); + })('::', null); +}; - return self.$include($$($nesting, 'Kernel')) - })($nesting[0], null, $nesting); +Opal.modules["corelib/main"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $def = Opal.def, $Object = Opal.Object, $Kernel = Opal.Kernel; + + Opal.add_stubs('include,raise'); + return (function(self, $parent_nesting) { + + + + $def(self, '$to_s', function $$to_s() { + + return "main" + }, 0); + + $def(self, '$include', function $$include(mod) { + + return $Object.$include(mod) + }, 1); + + $def(self, '$autoload', function $$autoload($a) { + var $post_args, args; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return Opal.Object.$autoload.apply(Opal.Object, args);; + }, -1); + return $def(self, '$using', function $$using(mod) { + + return $Kernel.$raise("main.using is permitted only at toplevel") + }, 1); + })(Opal.get_singleton_class(self), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/error"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy, $module = Opal.module, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["corelib/error/errno"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $klass = Opal.klass; + + Opal.add_stubs('+,errno,class,attr_reader'); + + (function($base, $parent_nesting) { + var self = $module($base, 'Errno'); + + var $nesting = [self].concat($parent_nesting), errors = nil, klass = nil; + + + errors = [["EINVAL", "Invalid argument", 22], ["EEXIST", "File exists", 17], ["EISDIR", "Is a directory", 21], ["EMFILE", "Too many open files", 24], ["EACCES", "Permission denied", 13], ["EPERM", "Operation not permitted", 1], ["ENOENT", "No such file or directory", 2]]; + klass = nil; + + var i; + for (i = 0; i < errors.length; i++) { + (function() { // Create a closure + var class_name = errors[i][0]; + var default_message = errors[i][1]; + var errno = errors[i][2]; + + klass = Opal.klass(self, Opal.SystemCallError, class_name); + klass.errno = errno; + + (function(self, $parent_nesting) { + + return $def(self, '$new', function $new$1(name) { + var $yield = $new$1.$$p || nil, self = this, message = nil; + + delete $new$1.$$p; + + + if (name == null) name = nil;; + message = default_message; + if ($truthy(name)) { + message = $rb_plus(message, " - " + (name)) + }; + return $send2(self, $find_super(self, 'new', $new$1, false, true), 'new', [message], null); + }, -1) + })(Opal.get_singleton_class(klass), $nesting) + })(); + } + ; + })('::', $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SystemCallError'); + + var $nesting = [self].concat($parent_nesting); + + + + $def(self, '$errno', function $$errno() { + var self = this; + + return self.$class().$errno() + }, 0); + return (function(self, $parent_nesting) { + + return self.$attr_reader("errno") + })(Opal.get_singleton_class(self), $nesting); + })('::', $$$('StandardError'), $nesting); +}; - Opal.add_stubs(['$new', '$map', '$backtrace', '$clone', '$to_s', '$tty?', '$include?', '$raise', '$dup', '$!', '$empty?', '$caller', '$shift', '$+', '$class', '$join', '$cause', '$full_message', '$==', '$reverse', '$split', '$attr_reader', '$inspect']); +Opal.modules["corelib/error"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $defs = Opal.defs, $send = Opal.send, $to_a = Opal.to_a, $def = Opal.def, $truthy = Opal.truthy, $hash2 = Opal.hash2, $Kernel = Opal.Kernel, $not = Opal.not, $rb_plus = Opal.rb_plus, $eqeq = Opal.eqeq, $Object = Opal.Object, $send2 = Opal.send2, $find_super = Opal.find_super, $module = Opal.module; + + Opal.add_stubs('new,map,backtrace,clone,to_s,merge,tty?,[],include?,raise,dup,empty?,!,caller,shift,+,class,join,cause,full_message,==,reverse,split,autoload,attr_reader,inspect'); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Exception'); - var $nesting = [self].concat($parent_nesting), $Exception_new$1, $Exception_exception$2, $Exception_initialize$3, $Exception_backtrace$4, $Exception_backtrace_locations$5, $Exception_cause$7, $Exception_exception$8, $Exception_message$9, $Exception_full_message$10, $Exception_inspect$12, $Exception_set_backtrace$13, $Exception_to_s$15; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.message = nil; + $proto.message = nil; - Opal.defineProperty(self.$$prototype, '$$is_exception', true); + Opal.prop(self.$$prototype, '$$is_exception', true); var stack_trace_limit; - Opal.defs(self, '$new', $Exception_new$1 = function($a) { + $defs(self, '$new', function $Exception_new$1($a) { var $post_args, args, self = this; if ($gvars["!"] == null) $gvars["!"] = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; @@ -5412,29 +5695,29 @@ Opal.modules["corelib/error"] = function(Opal) { return error; ; - }, $Exception_new$1.$$arity = -1); + }, -1); stack_trace_limit = self.$new; - Opal.defs(self, '$exception', $Exception_exception$2 = function $$exception($a) { + $defs(self, '$exception', function $$exception($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self, 'new', Opal.to_a(args)); - }, $Exception_exception$2.$$arity = -1); + return $send(self, 'new', $to_a(args)); + }, -1); - Opal.def(self, '$initialize', $Exception_initialize$3 = function $$initialize($a) { + $def(self, '$initialize', function $$initialize($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; return self.message = (args.length > 0) ? args[0] : nil;; - }, $Exception_initialize$3.$$arity = -1); + }, -1); // Convert backtrace from any format to Ruby format function correct_backtrace(backtrace) { @@ -5466,7 +5749,7 @@ Opal.modules["corelib/error"] = function(Opal) { } ; - Opal.def(self, '$backtrace', $Exception_backtrace$4 = function $$backtrace() { + $def(self, '$backtrace', function $$backtrace() { var self = this; @@ -5477,7 +5760,7 @@ Opal.modules["corelib/error"] = function(Opal) { var backtrace = self.stack; - if (backtrace.$$is_string) { + if (typeof(backtrace) !== 'undefined' && backtrace.$$is_string) { return self.backtrace = correct_backtrace(backtrace.split("\n").slice(0, 15)); } else if (backtrace) { @@ -5486,39 +5769,34 @@ Opal.modules["corelib/error"] = function(Opal) { return []; - }, $Exception_backtrace$4.$$arity = 0); + }, 0); - Opal.def(self, '$backtrace_locations', $Exception_backtrace_locations$5 = function $$backtrace_locations() { - var $a, $$6, self = this; + $def(self, '$backtrace_locations', function $$backtrace_locations() { + var $a, self = this; if (self.backtrace_locations) return self.backtrace_locations; - self.backtrace_locations = ($a = self.$backtrace(), ($a === nil || $a == null) ? nil : $send($a, 'map', [], ($$6 = function(loc){var self = $$6.$$s == null ? this : $$6.$$s; - + self.backtrace_locations = ($a = self.$backtrace(), ($a === nil || $a == null) ? nil : $send($a, 'map', [], function $$2(loc){ - if (loc == null) { - loc = nil; - }; - return $$$($$$($$$('::', 'Thread'), 'Backtrace'), 'Location').$new(loc);}, $$6.$$s = self, $$6.$$arity = 1, $$6))) + if (loc == null) loc = nil;; + return $$$($$$($$$('Thread'), 'Backtrace'), 'Location').$new(loc);}, 1)) return self.backtrace_locations; - }, $Exception_backtrace_locations$5.$$arity = 0); + }, 0); - Opal.def(self, '$cause', $Exception_cause$7 = function $$cause() { + $def(self, '$cause', function $$cause() { var self = this; return self.cause || nil; - }, $Exception_cause$7.$$arity = 0); + }, 0); - Opal.def(self, '$exception', $Exception_exception$8 = function $$exception(str) { + $def(self, '$exception', function $$exception(str) { var self = this; - if (str == null) { - str = nil; - }; + if (str == null) str = nil;; if (str === nil || self === str) { return self; @@ -5531,42 +5809,31 @@ Opal.modules["corelib/error"] = function(Opal) { cloned.cause = self.cause; return cloned; ; - }, $Exception_exception$8.$$arity = -1); + }, -1); - Opal.def(self, '$message', $Exception_message$9 = function $$message() { + $def(self, '$message', function $$message() { var self = this; return self.$to_s() - }, $Exception_message$9.$$arity = 0); + }, 0); - Opal.def(self, '$full_message', $Exception_full_message$10 = function $$full_message($kwargs) { - var highlight, order, $$11, self = this, bold_underline = nil, bold = nil, reset = nil, bt = nil, $ret_or_1 = nil, first = nil, msg = nil; + $def(self, '$full_message', function $$full_message(kwargs) { + var $a, $b, self = this, $ret_or_1 = nil, highlight = nil, order = nil, bold_underline = nil, bold = nil, reset = nil, bt = nil, first = nil, msg = nil; if ($gvars.stderr == null) $gvars.stderr = nil; - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else if (!$kwargs.$$is_hash) { - throw Opal.ArgumentError.$new('expected kwargs'); - }; - - highlight = $kwargs.$$smap["highlight"]; - if (highlight == null) { - highlight = $gvars.stderr['$tty?']() - }; - - order = $kwargs.$$smap["order"]; - if (order == null) { - order = "top" + if (kwargs == null) kwargs = nil;; + if (!$truthy((($a = $$('Hash', 'skip_raise')) ? 'constant' : nil))) { + return "" + (self.message) + "\n" + (self.stack) }; - if ($truthy([true, false]['$include?'](highlight))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "expected true or false as highlight: " + (highlight)) + kwargs = $hash2(["highlight", "order"], {"highlight": $gvars.stderr['$tty?'](), "order": "top"}).$merge(($truthy(($ret_or_1 = kwargs)) ? ($ret_or_1) : ($hash2([], {})))); + $b = [kwargs['$[]']("highlight"), kwargs['$[]']("order")], (highlight = $b[0]), (order = $b[1]), $b; + if (!$truthy([true, false]['$include?'](highlight))) { + $Kernel.$raise($$$('ArgumentError'), "expected true or false as highlight: " + (highlight)) }; - if ($truthy(["top", "bottom"]['$include?'](order))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "expected :top or :bottom as order: " + (order)) + if (!$truthy(["top", "bottom"]['$include?'](order))) { + $Kernel.$raise($$$('ArgumentError'), "expected :top or :bottom as order: " + (order)) }; if ($truthy(highlight)) { @@ -5577,33 +5844,29 @@ Opal.modules["corelib/error"] = function(Opal) { bold_underline = (bold = (reset = "")) }; bt = self.$backtrace().$dup(); - if ($truthy((function() {if ($truthy(($ret_or_1 = bt['$!']()))) { - return $ret_or_1 - } else { - return bt['$empty?']() - }; return nil; })())) { - bt = self.$caller()}; + if (($not(bt) || ($truthy(bt['$empty?']())))) { + bt = self.$caller() + }; first = bt.$shift(); msg = "" + (first) + ": "; msg = $rb_plus(msg, "" + (bold) + (self.$to_s()) + " (" + (bold_underline) + (self.$class()) + (reset) + (bold) + ")" + (reset) + "\n"); - msg = $rb_plus(msg, $send(bt, 'map', [], ($$11 = function(loc){var self = $$11.$$s == null ? this : $$11.$$s; - + msg = $rb_plus(msg, $send(bt, 'map', [], function $$3(loc){ - if (loc == null) { - loc = nil; - }; - return "" + "\tfrom " + (loc) + "\n";}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$join()); + if (loc == null) loc = nil;; + return "\tfrom " + (loc) + "\n";}, 1).$join()); if ($truthy(self.$cause())) { - msg = $rb_plus(msg, self.$cause().$full_message($hash2(["highlight"], {"highlight": highlight})))}; - if (order['$==']("bottom")) { + msg = $rb_plus(msg, self.$cause().$full_message($hash2(["highlight"], {"highlight": highlight}))) + }; + if ($eqeq(order, "bottom")) { msg = msg.$split("\n").$reverse().$join("\n"); - msg = $rb_plus("" + (bold) + "Traceback" + (reset) + " (most recent call last):\n", msg);}; + msg = $rb_plus("" + (bold) + "Traceback" + (reset) + " (most recent call last):\n", msg); + }; return msg; - }, $Exception_full_message$10.$$arity = -1); + }, -1); - Opal.def(self, '$inspect', $Exception_inspect$12 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this, as_str = nil; @@ -5611,12 +5874,12 @@ Opal.modules["corelib/error"] = function(Opal) { if ($truthy(as_str['$empty?']())) { return self.$class().$to_s() } else { - return "" + "#<" + (self.$class().$to_s()) + ": " + (self.$to_s()) + ">" + return "#<" + (self.$class().$to_s()) + ": " + (self.$to_s()) + ">" }; - }, $Exception_inspect$12.$$arity = 0); + }, 0); - Opal.def(self, '$set_backtrace', $Exception_set_backtrace$13 = function $$set_backtrace(backtrace) { - var $$14, self = this; + $def(self, '$set_backtrace', function $$set_backtrace(backtrace) { + var self = this; var valid = true, i, ii; @@ -5640,379 +5903,138 @@ Opal.modules["corelib/error"] = function(Opal) { } if (valid === false) { - self.$raise($$($nesting, 'TypeError'), "backtrace must be Array of String") + $Kernel.$raise($$$('TypeError'), "backtrace must be Array of String") } self.backtrace = backtrace; - self.stack = $send((backtrace), 'map', [], ($$14 = function(i){var self = $$14.$$s == null ? this : $$14.$$s; - + self.stack = $send((backtrace), 'map', [], function $$4(i){ - if (i == null) { - i = nil; - }; - return $rb_plus(" from ", i);}, $$14.$$s = self, $$14.$$arity = 1, $$14)).join("\n"); + if (i == null) i = nil;; + return $rb_plus(" from ", i);}, 1).join("\n"); } return backtrace; - }, $Exception_set_backtrace$13.$$arity = 1); - return (Opal.def(self, '$to_s', $Exception_to_s$15 = function $$to_s() { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil; + }, 1); + return $def(self, '$to_s', function $$to_s() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.message))) { - return self.message.$to_s() - } else { - return $ret_or_3 - }; return nil; })()))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.message)) ? (self.message.$to_s()) : ($ret_or_2))))) { + return $ret_or_1 } else { return self.$class().$to_s() } - }, $Exception_to_s$15.$$arity = 0), nil) && 'to_s'; - })($nesting[0], Error, $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ScriptError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Exception'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'SyntaxError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'ScriptError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'LoadError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'ScriptError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'NotImplementedError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'ScriptError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'SystemExit'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Exception'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'NoMemoryError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Exception'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'SignalException'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Exception'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Interrupt'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'SignalException'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'SecurityError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Exception'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'SystemStackError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Exception'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'StandardError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Exception'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'EncodingError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ZeroDivisionError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'NameError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'NoMethodError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'NameError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'RuntimeError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'FrozenError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'RuntimeError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'LocalJumpError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'TypeError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ArgumentError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'UncaughtThrowError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'ArgumentError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'IndexError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'StopIteration'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'IndexError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ClosedQueueError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StopIteration'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'KeyError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'IndexError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'RangeError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'FloatDomainError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'RangeError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'IOError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'EOFError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'IOError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'SystemCallError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'RegexpError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ThreadError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'FiberError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - (function($base, $parent_nesting) { - var self = $module($base, 'Errno'); - - var $nesting = [self].concat($parent_nesting); - - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'EINVAL'); - - var $nesting = [self].concat($parent_nesting), $EINVAL_new$16; - - return (Opal.defs(self, '$new', $EINVAL_new$16 = function(name) { - var $iter = $EINVAL_new$16.$$p, $yield = $iter || nil, self = this, message = nil; - - if ($iter) $EINVAL_new$16.$$p = null; - - - if (name == null) { - name = nil; - }; - message = "Invalid argument"; - if ($truthy(name)) { - message = $rb_plus(message, "" + " - " + (name))}; - return $send2(self, $find_super(self, 'new', $EINVAL_new$16, false, true), 'new', [message], null); - }, $EINVAL_new$16.$$arity = -1), nil) && 'new' - })($nesting[0], $$($nesting, 'SystemCallError'), $nesting) - })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })('::', Error, $nesting); + $klass('::', $$$('Exception'), 'ScriptError'); + $klass('::', $$$('ScriptError'), 'SyntaxError'); + $klass('::', $$$('ScriptError'), 'LoadError'); + $klass('::', $$$('ScriptError'), 'NotImplementedError'); + $klass('::', $$$('Exception'), 'SystemExit'); + $klass('::', $$$('Exception'), 'NoMemoryError'); + $klass('::', $$$('Exception'), 'SignalException'); + $klass('::', $$$('SignalException'), 'Interrupt'); + $klass('::', $$$('Exception'), 'SecurityError'); + $klass('::', $$$('Exception'), 'SystemStackError'); + $klass('::', $$$('Exception'), 'StandardError'); + $klass('::', $$$('StandardError'), 'EncodingError'); + $klass('::', $$$('StandardError'), 'ZeroDivisionError'); + $klass('::', $$$('StandardError'), 'NameError'); + $klass('::', $$$('NameError'), 'NoMethodError'); + $klass('::', $$$('StandardError'), 'RuntimeError'); + $klass('::', $$$('RuntimeError'), 'FrozenError'); + $klass('::', $$$('StandardError'), 'LocalJumpError'); + $klass('::', $$$('StandardError'), 'TypeError'); + $klass('::', $$$('StandardError'), 'ArgumentError'); + $klass('::', $$$('ArgumentError'), 'UncaughtThrowError'); + $klass('::', $$$('StandardError'), 'IndexError'); + $klass('::', $$$('IndexError'), 'StopIteration'); + $klass('::', $$$('StopIteration'), 'ClosedQueueError'); + $klass('::', $$$('IndexError'), 'KeyError'); + $klass('::', $$$('StandardError'), 'RangeError'); + $klass('::', $$$('RangeError'), 'FloatDomainError'); + $klass('::', $$$('StandardError'), 'IOError'); + $klass('::', $$$('IOError'), 'EOFError'); + $klass('::', $$$('StandardError'), 'SystemCallError'); + $klass('::', $$$('StandardError'), 'RegexpError'); + $klass('::', $$$('StandardError'), 'ThreadError'); + $klass('::', $$$('StandardError'), 'FiberError'); + $Object.$autoload("Errno", "corelib/error/errno"); + (function($base, $super) { var self = $klass($base, $super, 'UncaughtThrowError'); - var $nesting = [self].concat($parent_nesting), $UncaughtThrowError_initialize$17; + var $proto = self.$$prototype; - self.$$prototype.tag = nil; + $proto.tag = nil; self.$attr_reader("tag", "value"); - return (Opal.def(self, '$initialize', $UncaughtThrowError_initialize$17 = function $$initialize(tag, value) { - var $iter = $UncaughtThrowError_initialize$17.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(tag, value) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $UncaughtThrowError_initialize$17.$$p = null; + delete $$initialize.$$p; - if (value == null) { - value = nil; - }; + if (value == null) value = nil;; self.tag = tag; self.value = value; - return $send2(self, $find_super(self, 'initialize', $UncaughtThrowError_initialize$17, false, true), 'initialize', ["" + "uncaught throw " + (self.tag.$inspect())], null); - }, $UncaughtThrowError_initialize$17.$$arity = -2), nil) && 'initialize'; - })($nesting[0], $$($nesting, 'ArgumentError'), $nesting); - (function($base, $super, $parent_nesting) { + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', ["uncaught throw " + (self.tag.$inspect())], null); + }, -2); + })('::', $$$('ArgumentError')); + (function($base, $super) { var self = $klass($base, $super, 'NameError'); - var $nesting = [self].concat($parent_nesting), $NameError_initialize$18; - + self.$attr_reader("name"); - return (Opal.def(self, '$initialize', $NameError_initialize$18 = function $$initialize(message, name) { - var $iter = $NameError_initialize$18.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(message, name) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $NameError_initialize$18.$$p = null; + delete $$initialize.$$p; - if (name == null) { - name = nil; - }; - $send2(self, $find_super(self, 'initialize', $NameError_initialize$18, false, true), 'initialize', [message], null); + if (name == null) name = nil;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [message], null); return (self.name = name); - }, $NameError_initialize$18.$$arity = -2), nil) && 'initialize'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, -2); + })('::', null); + (function($base, $super) { var self = $klass($base, $super, 'NoMethodError'); - var $nesting = [self].concat($parent_nesting), $NoMethodError_initialize$19; - + self.$attr_reader("args"); - return (Opal.def(self, '$initialize', $NoMethodError_initialize$19 = function $$initialize(message, name, args) { - var $iter = $NoMethodError_initialize$19.$$p, $yield = $iter || nil, self = this; + return $def(self, '$initialize', function $$initialize(message, name, args) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $NoMethodError_initialize$19.$$p = null; + delete $$initialize.$$p; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (args == null) { - args = []; - }; - $send2(self, $find_super(self, 'initialize', $NoMethodError_initialize$19, false, true), 'initialize', [message, name], null); + if (args == null) args = [];; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [message, name], null); return (self.args = args); - }, $NoMethodError_initialize$19.$$arity = -2), nil) && 'initialize'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, -2); + })('::', null); + (function($base, $super) { var self = $klass($base, $super, 'StopIteration'); - var $nesting = [self].concat($parent_nesting); - + return self.$attr_reader("result") - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + })('::', null); + (function($base, $super) { var self = $klass($base, $super, 'KeyError'); - var $nesting = [self].concat($parent_nesting), $KeyError_initialize$20, $KeyError_receiver$21, $KeyError_key$22; + var $proto = self.$$prototype; - self.$$prototype.receiver = self.$$prototype.key = nil; + $proto.receiver = $proto.key = nil; - Opal.def(self, '$initialize', $KeyError_initialize$20 = function $$initialize(message, $kwargs) { - var receiver, key, $iter = $KeyError_initialize$20.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(message, $kwargs) { + var receiver, key, $yield = $$initialize.$$p || nil, self = this; - if ($iter) $KeyError_initialize$20.$$p = null; + delete $$initialize.$$p; if ($kwargs == null) { @@ -6022,155 +6044,132 @@ Opal.modules["corelib/error"] = function(Opal) { }; receiver = $kwargs.$$smap["receiver"]; - if (receiver == null) { - receiver = nil - }; + if (receiver == null) receiver = nil; key = $kwargs.$$smap["key"]; - if (key == null) { - key = nil - }; - $send2(self, $find_super(self, 'initialize', $KeyError_initialize$20, false, true), 'initialize', [message], null); + if (key == null) key = nil; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [message], null); self.receiver = receiver; return (self.key = key); - }, $KeyError_initialize$20.$$arity = -2); + }, -2); - Opal.def(self, '$receiver', $KeyError_receiver$21 = function $$receiver() { - var self = this, $ret_or_4 = nil; + $def(self, '$receiver', function $$receiver() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_4 = self.receiver))) { - return $ret_or_4 + if ($truthy(($ret_or_1 = self.receiver))) { + return $ret_or_1 } else { - return self.$raise($$($nesting, 'ArgumentError'), "no receiver is available") + return $Kernel.$raise($$$('ArgumentError'), "no receiver is available") } - }, $KeyError_receiver$21.$$arity = 0); - return (Opal.def(self, '$key', $KeyError_key$22 = function $$key() { - var self = this, $ret_or_5 = nil; + }, 0); + return $def(self, '$key', function $$key() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_5 = self.key))) { - return $ret_or_5 + if ($truthy(($ret_or_1 = self.key))) { + return $ret_or_1 } else { - return self.$raise($$($nesting, 'ArgumentError'), "no key is available") + return $Kernel.$raise($$$('ArgumentError'), "no key is available") } - }, $KeyError_key$22.$$arity = 0), nil) && 'key'; - })($nesting[0], null, $nesting); + }, 0); + })('::', null); return (function($base, $parent_nesting) { var self = $module($base, 'JS'); var $nesting = [self].concat($parent_nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Error'); + return ($klass($nesting[0], null, 'Error'), nil) + })('::', $nesting); +}; - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], null, $nesting) - })($nesting[0], $nesting); -}; - -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/constants"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["corelib/constants"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $const_set = Opal.const_set; - Opal.const_set($nesting[0], 'RUBY_PLATFORM', "opal"); - Opal.const_set($nesting[0], 'RUBY_ENGINE', "opal"); - Opal.const_set($nesting[0], 'RUBY_VERSION', "3.0.2"); - Opal.const_set($nesting[0], 'RUBY_ENGINE_VERSION', "1.3.0.dev"); - Opal.const_set($nesting[0], 'RUBY_RELEASE_DATE', "2021-08-11"); - Opal.const_set($nesting[0], 'RUBY_PATCHLEVEL', 0); - Opal.const_set($nesting[0], 'RUBY_REVISION', "0"); - Opal.const_set($nesting[0], 'RUBY_COPYRIGHT', "opal - Copyright (C) 2013-2021 Adam Beynon and the Opal contributors"); - return Opal.const_set($nesting[0], 'RUBY_DESCRIPTION', "" + "opal " + ($$($nesting, 'RUBY_ENGINE_VERSION')) + " (" + ($$($nesting, 'RUBY_RELEASE_DATE')) + " revision " + ($$($nesting, 'RUBY_REVISION')) + ")"); + $const_set('::', 'RUBY_PLATFORM', "opal"); + $const_set('::', 'RUBY_ENGINE', "opal"); + $const_set('::', 'RUBY_VERSION', "3.1.0"); + $const_set('::', 'RUBY_ENGINE_VERSION', "1.5.0.dev"); + $const_set('::', 'RUBY_RELEASE_DATE', "2022-03-23"); + $const_set('::', 'RUBY_PATCHLEVEL', 0); + $const_set('::', 'RUBY_REVISION', "0"); + $const_set('::', 'RUBY_COPYRIGHT', "opal - Copyright (C) 2013-2021 Adam Beynon and the Opal contributors"); + return $const_set('::', 'RUBY_DESCRIPTION', "opal " + ($$$('RUBY_ENGINE_VERSION')) + " (" + ($$$('RUBY_RELEASE_DATE')) + " revision " + ($$$('RUBY_REVISION')) + ")"); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/base"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["opal/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $Object = Opal.Object; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); - self.$require("corelib/runtime"); - self.$require("corelib/helpers"); - self.$require("corelib/module"); - self.$require("corelib/class"); - self.$require("corelib/basic_object"); - self.$require("corelib/kernel"); - self.$require("corelib/error"); - return self.$require("corelib/constants"); + $Object.$require("corelib/runtime"); + $Object.$require("corelib/helpers"); + $Object.$require("corelib/module"); + $Object.$require("corelib/class"); + $Object.$require("corelib/basic_object"); + $Object.$require("corelib/kernel"); + $Object.$require("corelib/main"); + $Object.$require("corelib/error"); + return $Object.$require("corelib/constants"); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/nil"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $alias = Opal.alias, $truthy = Opal.truthy; +Opal.modules["corelib/nil"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $Kernel = Opal.Kernel, $def = Opal.def, $hash2 = Opal.hash2, $NilClass = Opal.NilClass, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $alias = Opal.alias; - Opal.add_stubs(['$raise', '$name', '$new', '$>', '$length', '$Rational']); - - (function($base, $super, $parent_nesting) { + Opal.add_stubs('raise,name,new,>,length,Rational'); + return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'NilClass'); - var $nesting = [self].concat($parent_nesting), $NilClass_$excl$2, $NilClass_$$3, $NilClass_$$4, $NilClass_$$5, $NilClass_$eq_eq$6, $NilClass_dup$7, $NilClass_clone$8, $NilClass_inspect$9, $NilClass_nil$ques$10, $NilClass_singleton_class$11, $NilClass_to_a$12, $NilClass_to_h$13, $NilClass_to_i$14, $NilClass_to_s$15, $NilClass_to_c$16, $NilClass_rationalize$17, $NilClass_to_r$18, $NilClass_instance_variables$19; + var $nesting = [self].concat($parent_nesting); self.$$prototype.$$meta = self; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $allocate$1; - - Opal.def(self, '$allocate', $allocate$1 = function $$allocate() { + + $def(self, '$allocate', function $$allocate() { var self = this; - return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, $allocate$1.$$arity = 0); + return $Kernel.$raise($$$('TypeError'), "allocator undefined for " + (self.$name())) + }, 0); Opal.udef(self, '$' + "new");; return nil;; })(Opal.get_singleton_class(self), $nesting); - Opal.def(self, '$!', $NilClass_$excl$2 = function() { - var self = this; - + $def(self, '$!', function $NilClass_$excl$1() { + return true - }, $NilClass_$excl$2.$$arity = 0); + }, 0); - Opal.def(self, '$&', $NilClass_$$3 = function(other) { - var self = this; - + $def(self, '$&', function $NilClass_$$2(other) { + return false - }, $NilClass_$$3.$$arity = 1); + }, 1); - Opal.def(self, '$|', $NilClass_$$4 = function(other) { - var self = this; - + $def(self, '$|', function $NilClass_$$3(other) { + return other !== false && other !== nil; - }, $NilClass_$$4.$$arity = 1); + }, 1); - Opal.def(self, '$^', $NilClass_$$5 = function(other) { - var self = this; - + $def(self, '$^', function $NilClass_$$4(other) { + return other !== false && other !== nil; - }, $NilClass_$$5.$$arity = 1); + }, 1); - Opal.def(self, '$==', $NilClass_$eq_eq$6 = function(other) { - var self = this; - + $def(self, '$==', function $NilClass_$eq_eq$5(other) { + return other === nil; - }, $NilClass_$eq_eq$6.$$arity = 1); + }, 1); - Opal.def(self, '$dup', $NilClass_dup$7 = function $$dup() { - var self = this; - + $def(self, '$dup', function $$dup() { + return nil - }, $NilClass_dup$7.$$arity = 0); + }, 0); - Opal.def(self, '$clone', $NilClass_clone$8 = function $$clone($kwargs) { - var freeze, self = this; + $def(self, '$clone', function $$clone($kwargs) { + var freeze; @@ -6181,101 +6180,90 @@ Opal.modules["corelib/nil"] = function(Opal) { }; freeze = $kwargs.$$smap["freeze"]; - if (freeze == null) { - freeze = true - }; + if (freeze == null) freeze = true; return nil; - }, $NilClass_clone$8.$$arity = -1); + }, -1); - Opal.def(self, '$inspect', $NilClass_inspect$9 = function $$inspect() { - var self = this; - + $def(self, '$inspect', function $$inspect() { + return "nil" - }, $NilClass_inspect$9.$$arity = 0); + }, 0); - Opal.def(self, '$nil?', $NilClass_nil$ques$10 = function() { - var self = this; - + $def(self, '$nil?', function $NilClass_nil$ques$6() { + return true - }, $NilClass_nil$ques$10.$$arity = 0); + }, 0); - Opal.def(self, '$singleton_class', $NilClass_singleton_class$11 = function $$singleton_class() { - var self = this; - - return $$($nesting, 'NilClass') - }, $NilClass_singleton_class$11.$$arity = 0); + $def(self, '$singleton_class', function $$singleton_class() { + + return $NilClass + }, 0); - Opal.def(self, '$to_a', $NilClass_to_a$12 = function $$to_a() { - var self = this; - + $def(self, '$to_a', function $$to_a() { + return [] - }, $NilClass_to_a$12.$$arity = 0); + }, 0); - Opal.def(self, '$to_h', $NilClass_to_h$13 = function $$to_h() { - var self = this; - + $def(self, '$to_h', function $$to_h() { + return Opal.hash(); - }, $NilClass_to_h$13.$$arity = 0); + }, 0); - Opal.def(self, '$to_i', $NilClass_to_i$14 = function $$to_i() { - var self = this; - + $def(self, '$to_i', function $$to_i() { + return 0 - }, $NilClass_to_i$14.$$arity = 0); - $alias(self, "to_f", "to_i"); + }, 0); - Opal.def(self, '$to_s', $NilClass_to_s$15 = function $$to_s() { - var self = this; - + $def(self, '$to_s', function $$to_s() { + return "" - }, $NilClass_to_s$15.$$arity = 0); + }, 0); - Opal.def(self, '$to_c', $NilClass_to_c$16 = function $$to_c() { - var self = this; - - return $$($nesting, 'Complex').$new(0, 0) - }, $NilClass_to_c$16.$$arity = 0); + $def(self, '$to_c', function $$to_c() { + + return $$$('Complex').$new(0, 0) + }, 0); - Opal.def(self, '$rationalize', $NilClass_rationalize$17 = function $$rationalize($a) { - var $post_args, args, self = this; + $def(self, '$rationalize', function $$rationalize($a) { + var $post_args, args; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ($truthy($rb_gt(args.$length(), 1))) { - self.$raise($$($nesting, 'ArgumentError'))}; - return self.$Rational(0, 1); - }, $NilClass_rationalize$17.$$arity = -1); + $Kernel.$raise($$$('ArgumentError')) + }; + return $Kernel.$Rational(0, 1); + }, -1); - Opal.def(self, '$to_r', $NilClass_to_r$18 = function $$to_r() { - var self = this; - - return self.$Rational(0, 1) - }, $NilClass_to_r$18.$$arity = 0); - return (Opal.def(self, '$instance_variables', $NilClass_instance_variables$19 = function $$instance_variables() { - var self = this; - + $def(self, '$to_r', function $$to_r() { + + return $Kernel.$Rational(0, 1) + }, 0); + + $def(self, '$instance_variables', function $$instance_variables() { + return [] - }, $NilClass_instance_variables$19.$$arity = 0), nil) && 'instance_variables'; - })($nesting[0], null, $nesting); - return Opal.const_set($nesting[0], 'NIL', nil); + }, 0); + return $alias(self, "to_f", "to_i"); + })('::', null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/boolean"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["corelib/boolean"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + "use strict"; + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $Kernel = Opal.Kernel, $def = Opal.def, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $alias = Opal.alias; - Opal.add_stubs(['$raise', '$name']); + Opal.add_stubs('raise,name'); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Boolean'); - var $nesting = [self].concat($parent_nesting), $Boolean___id__$2, $Boolean_$excl$3, $Boolean_$$4, $Boolean_$$5, $Boolean_$$6, $Boolean_$eq_eq$7, $Boolean_singleton_class$8, $Boolean_to_s$9, $Boolean_dup$10, $Boolean_clone$11, $Boolean_method_missing$12, $Boolean_respond_to_missing$ques$13; + var $nesting = [self].concat($parent_nesting); - Opal.defineProperty(self.$$prototype, '$$is_boolean', true); + Opal.prop(self.$$prototype, '$$is_boolean', true); var properties = ['$$class', '$$meta']; @@ -6302,80 +6290,75 @@ Opal.modules["corelib/boolean"] = function(Opal) { }); ; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $allocate$1; - - Opal.def(self, '$allocate', $allocate$1 = function $$allocate() { + + $def(self, '$allocate', function $$allocate() { var self = this; - return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, $allocate$1.$$arity = 0); + return $Kernel.$raise($$$('TypeError'), "allocator undefined for " + (self.$name())) + }, 0); Opal.udef(self, '$' + "new");; return nil;; })(Opal.get_singleton_class(self), $nesting); - Opal.def(self, '$__id__', $Boolean___id__$2 = function $$__id__() { + $def(self, '$__id__', function $$__id__() { var self = this; return self.valueOf() ? 2 : 0; - }, $Boolean___id__$2.$$arity = 0); - $alias(self, "object_id", "__id__"); + }, 0); - Opal.def(self, '$!', $Boolean_$excl$3 = function() { + $def(self, '$!', function $Boolean_$excl$1() { var self = this; return self != true; - }, $Boolean_$excl$3.$$arity = 0); + }, 0); - Opal.def(self, '$&', $Boolean_$$4 = function(other) { + $def(self, '$&', function $Boolean_$$2(other) { var self = this; return (self == true) ? (other !== false && other !== nil) : false; - }, $Boolean_$$4.$$arity = 1); + }, 1); - Opal.def(self, '$|', $Boolean_$$5 = function(other) { + $def(self, '$|', function $Boolean_$$3(other) { var self = this; return (self == true) ? true : (other !== false && other !== nil); - }, $Boolean_$$5.$$arity = 1); + }, 1); - Opal.def(self, '$^', $Boolean_$$6 = function(other) { + $def(self, '$^', function $Boolean_$$4(other) { var self = this; return (self == true) ? (other === false || other === nil) : (other !== false && other !== nil); - }, $Boolean_$$6.$$arity = 1); + }, 1); - Opal.def(self, '$==', $Boolean_$eq_eq$7 = function(other) { + $def(self, '$==', function $Boolean_$eq_eq$5(other) { var self = this; return (self == true) === other.valueOf(); - }, $Boolean_$eq_eq$7.$$arity = 1); - $alias(self, "equal?", "=="); - $alias(self, "eql?", "=="); + }, 1); - Opal.def(self, '$singleton_class', $Boolean_singleton_class$8 = function $$singleton_class() { + $def(self, '$singleton_class', function $$singleton_class() { var self = this; return self.$$meta; - }, $Boolean_singleton_class$8.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Boolean_to_s$9 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return (self == true) ? 'true' : 'false'; - }, $Boolean_to_s$9.$$arity = 0); - $alias(self, "inspect", "to_s"); + }, 0); - Opal.def(self, '$dup', $Boolean_dup$10 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this; return self - }, $Boolean_dup$10.$$arity = 0); + }, 0); - Opal.def(self, '$clone', $Boolean_clone$11 = function $$clone($kwargs) { + $def(self, '$clone', function $$clone($kwargs) { var freeze, self = this; @@ -6387,79 +6370,53 @@ Opal.modules["corelib/boolean"] = function(Opal) { }; freeze = $kwargs.$$smap["freeze"]; - if (freeze == null) { - freeze = true - }; + if (freeze == null) freeze = true; return self; - }, $Boolean_clone$11.$$arity = -1); + }, -1); - Opal.def(self, '$method_missing', $Boolean_method_missing$12 = function $$method_missing(method, $a) { - var $iter = $Boolean_method_missing$12.$$p, block = $iter || nil, $post_args, args, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$method_missing', function $$method_missing(method, $a) { + var block = $$method_missing.$$p || nil, $post_args, args, self = this; - if ($iter) $Boolean_method_missing$12.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - + delete $$method_missing.$$p; - if ($iter) $Boolean_method_missing$12.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; var body = self.$$class.$$prototype['$' + method]; - if ($truthy(typeof body !== 'undefined' && !body.$$stub)) { - } else { - $send2(self, $find_super(self, 'method_missing', $Boolean_method_missing$12, false, true), 'method_missing', $zuper, $iter) + if (!$truthy(typeof body !== 'undefined' && !body.$$stub)) { + $send2(self, $find_super(self, 'method_missing', $$method_missing, false, true), 'method_missing', [method].concat($to_a(args)), block) }; return Opal.send(self, body, args, block); - }, $Boolean_method_missing$12.$$arity = -2); - return (Opal.def(self, '$respond_to_missing?', $Boolean_respond_to_missing$ques$13 = function(method, _include_all) { + }, -2); + + $def(self, '$respond_to_missing?', function $Boolean_respond_to_missing$ques$6(method, _include_all) { var self = this; - if (_include_all == null) { - _include_all = false; - }; + if (_include_all == null) _include_all = false;; var body = self.$$class.$$prototype['$' + method]; return typeof body !== 'undefined' && !body.$$stub;; - }, $Boolean_respond_to_missing$ques$13.$$arity = -2), nil) && 'respond_to_missing?'; - })($nesting[0], Boolean, $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'TrueClass'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Boolean'), $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'FalseClass'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Boolean'), $nesting); - Opal.const_set($nesting[0], 'TRUE', true); - return Opal.const_set($nesting[0], 'FALSE', false); + }, -2); + $alias(self, "eql?", "=="); + $alias(self, "equal?", "=="); + $alias(self, "inspect", "to_s"); + return $alias(self, "object_id", "__id__"); + })('::', Boolean, $nesting); + $klass('::', $$$('Boolean'), 'TrueClass'); + return ($klass('::', $$$('Boolean'), 'FalseClass'), nil); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/comparable"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["corelib/comparable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $module = Opal.module, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $def = Opal.def; - Opal.add_stubs(['$>', '$<', '$===', '$raise', '$class', '$<=>', '$equal?']); - return (function($base, $parent_nesting) { + Opal.add_stubs('>,<,===,raise,class,<=>,equal?'); + return (function($base) { var self = $module($base, 'Comparable'); - var $nesting = [self].concat($parent_nesting), $Comparable_$eq_eq$1, $Comparable_$gt$2, $Comparable_$gt_eq$3, $Comparable_$lt$4, $Comparable_$lt_eq$5, $Comparable_between$ques$6, $Comparable_clamp$7, $case = nil; + var $ret_or_1 = nil; @@ -6473,25 +6430,24 @@ Opal.modules["corelib/comparable"] = function(Opal) { function fail_comparison(lhs, rhs) { var class_name; - (function() {$case = rhs; - if (nil['$===']($case) || true['$===']($case) || false['$===']($case) || $$($nesting, 'Integer')['$===']($case) || $$($nesting, 'Float')['$===']($case)) {return class_name = rhs.$inspect();} - else {return class_name = rhs.$$class;}})() - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") + (($eqeqeq(nil, ($ret_or_1 = rhs)) || (($eqeqeq(true, $ret_or_1) || (($eqeqeq(false, $ret_or_1) || (($eqeqeq($$$('Integer'), $ret_or_1) || ($eqeqeq($$$('Float'), $ret_or_1))))))))) ? (class_name = rhs.$inspect()) : (class_name = rhs.$$class)) + $Kernel.$raise($$$('ArgumentError'), "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") } function cmp_or_fail(lhs, rhs) { var cmp = (lhs)['$<=>'](rhs); - if ($falsy(cmp)) fail_comparison(lhs, rhs); + if (!$truthy(cmp)) fail_comparison(lhs, rhs); return normalize(cmp); } ; - Opal.def(self, '$==', $Comparable_$eq_eq$1 = function(other) { + $def(self, '$==', function $Comparable_$eq_eq$1(other) { var self = this, cmp = nil; if ($truthy(self['$equal?'](other))) { - return true}; + return true + }; if (self["$<=>"] == Opal.Kernel["$<=>"]) { return false; @@ -6503,55 +6459,54 @@ Opal.modules["corelib/comparable"] = function(Opal) { return false; } ; - if ($truthy((cmp = self['$<=>'](other)))) { - } else { + if (!$truthy((cmp = self['$<=>'](other)))) { return false }; return normalize(cmp) == 0;; - }, $Comparable_$eq_eq$1.$$arity = 1); + }, 1); - Opal.def(self, '$>', $Comparable_$gt$2 = function(other) { + $def(self, '$>', function $Comparable_$gt$2(other) { var self = this; return cmp_or_fail(self, other) > 0; - }, $Comparable_$gt$2.$$arity = 1); + }, 1); - Opal.def(self, '$>=', $Comparable_$gt_eq$3 = function(other) { + $def(self, '$>=', function $Comparable_$gt_eq$3(other) { var self = this; return cmp_or_fail(self, other) >= 0; - }, $Comparable_$gt_eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$<', $Comparable_$lt$4 = function(other) { + $def(self, '$<', function $Comparable_$lt$4(other) { var self = this; return cmp_or_fail(self, other) < 0; - }, $Comparable_$lt$4.$$arity = 1); + }, 1); - Opal.def(self, '$<=', $Comparable_$lt_eq$5 = function(other) { + $def(self, '$<=', function $Comparable_$lt_eq$5(other) { var self = this; return cmp_or_fail(self, other) <= 0; - }, $Comparable_$lt_eq$5.$$arity = 1); + }, 1); - Opal.def(self, '$between?', $Comparable_between$ques$6 = function(min, max) { + $def(self, '$between?', function $Comparable_between$ques$6(min, max) { var self = this; if ($rb_lt(self, min)) { - return false}; + return false + }; if ($rb_gt(self, max)) { - return false}; + return false + }; return true; - }, $Comparable_between$ques$6.$$arity = 2); - return (Opal.def(self, '$clamp', $Comparable_clamp$7 = function $$clamp(min, max) { + }, 2); + return $def(self, '$clamp', function $$clamp(min, max) { var self = this; - if (max == null) { - max = nil; - }; + if (max == null) max = nil;; var c, excl; @@ -6560,7 +6515,7 @@ Opal.modules["corelib/comparable"] = function(Opal) { // provide a single Range argument instead of 2 Comparables. if (!Opal.is_a(min, Opal.Range)) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (min.$class()) + " (expected Range)") + $Kernel.$raise($$$('TypeError'), "wrong argument type " + (min.$class()) + " (expected Range)") } excl = min.excl; @@ -6568,12 +6523,12 @@ Opal.modules["corelib/comparable"] = function(Opal) { min = min.begin; if (max !== nil && excl) { - self.$raise($$($nesting, 'ArgumentError'), "cannot clamp with an exclusive range") + $Kernel.$raise($$$('ArgumentError'), "cannot clamp with an exclusive range") } } if (min !== nil && max !== nil && cmp_or_fail(min, max) > 0) { - self.$raise($$($nesting, 'ArgumentError'), "min argument must be smaller than max argument") + $Kernel.$raise($$$('ArgumentError'), "min argument must be smaller than max argument") } if (min !== nil) { @@ -6591,87 +6546,67 @@ Opal.modules["corelib/comparable"] = function(Opal) { return self; ; - }, $Comparable_clamp$7.$$arity = -2), nil) && 'clamp'; - })($nesting[0], $nesting) + }, -2); + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/regexp"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $gvars = Opal.gvars, $alias = Opal.alias, $send = Opal.send; +Opal.modules["corelib/regexp"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $const_set = Opal.const_set, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $truthy = Opal.truthy, $gvars = Opal.gvars, $Kernel = Opal.Kernel, $Opal = Opal.Opal, $alias = Opal.alias, $send = Opal.send, $hash2 = Opal.hash2, $rb_plus = Opal.rb_plus, $rb_ge = Opal.rb_ge, $to_a = Opal.to_a, $eqeqeq = Opal.eqeqeq, $rb_minus = Opal.rb_minus; - Opal.add_stubs(['$nil?', '$[]', '$raise', '$escape', '$options', '$to_str', '$new', '$join', '$coerce_to!', '$!', '$match', '$coerce_to?', '$begin', '$uniq', '$map', '$scan', '$source', '$to_proc', '$transform_values', '$group_by', '$each_with_index', '$+', '$last', '$=~', '$attr_reader', '$include?', '$names', '$regexp', '$named_captures', '$===', '$captures', '$-', '$inspect', '$empty?', '$each', '$to_a']); + Opal.add_stubs('nil?,[],raise,escape,options,to_str,new,join,coerce_to!,!,match,coerce_to?,begin,uniq,map,scan,source,to_proc,transform_values,group_by,each_with_index,+,last,=~,attr_reader,>=,length,is_a?,include?,names,regexp,named_captures,===,captures,-,inspect,empty?,each,to_a'); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'RegexpError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); + $klass('::', $$$('StandardError'), 'RegexpError'); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Regexp'); - var $nesting = [self].concat($parent_nesting), $Regexp_$eq_eq$6, $Regexp_$eq_eq_eq$7, $Regexp_$eq_tilde$8, $Regexp_inspect$9, $Regexp_match$10, $Regexp_match$ques$11, $Regexp_names$12, $Regexp_named_captures$13, $Regexp_$$16, $Regexp_source$17, $Regexp_options$18, $Regexp_casefold$ques$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'IGNORECASE', 1); - Opal.const_set($nesting[0], 'EXTENDED', 2); - Opal.const_set($nesting[0], 'MULTILINE', 4); - Opal.defineProperty(self.$$prototype, '$$is_regexp', true); + $const_set(self, 'IGNORECASE', 1); + $const_set(self, 'EXTENDED', 2); + $const_set(self, 'MULTILINE', 4); + Opal.prop(self.$$prototype, '$$is_regexp', true); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $allocate$1, $escape$2, $last_match$3, $union$4, $new$5; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$allocate', $allocate$1 = function $$allocate() { - var $iter = $allocate$1.$$p, $yield = $iter || nil, self = this, allocated = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$allocate', function $$allocate() { + var $yield = $$allocate.$$p || nil, self = this, allocated = nil; - if ($iter) $allocate$1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$allocate.$$p; - allocated = $send2(self, $find_super(self, 'allocate', $allocate$1, false, true), 'allocate', $zuper, $iter); + allocated = $send2(self, $find_super(self, 'allocate', $$allocate, false, true), 'allocate', [], $yield); allocated.uninitialized = true; return allocated; - }, $allocate$1.$$arity = 0); + }, 0); - Opal.def(self, '$escape', $escape$2 = function $$escape(string) { - var self = this; - + $def(self, '$escape', function $$escape(string) { + return Opal.escape_regexp(string); - }, $escape$2.$$arity = 1); + }, 1); - Opal.def(self, '$last_match', $last_match$3 = function $$last_match(n) { - var self = this; - if ($gvars["~"] == null) $gvars["~"] = nil; + $def(self, '$last_match', function $$last_match(n) { + if ($gvars["~"] == null) $gvars["~"] = nil; - if (n == null) { - n = nil; - }; + if (n == null) n = nil;; if ($truthy(n['$nil?']())) { return $gvars["~"] - } else { + } else if ($truthy($gvars["~"])) { return $gvars["~"]['$[]'](n) + } else { + return nil }; - }, $last_match$3.$$arity = -1); - $alias(self, "quote", "escape"); + }, -1); - Opal.def(self, '$union', $union$4 = function $$union($a) { + $def(self, '$union', function $$union($a) { var $post_args, parts, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); parts = $post_args;; @@ -6686,7 +6621,7 @@ Opal.modules["corelib/regexp"] = function(Opal) { // cover the 2 arrays passed as arguments case is_first_part_array = parts[0].$$is_array; if (parts.length > 1 && is_first_part_array) { - self.$raise($$($nesting, 'TypeError'), "no implicit conversion of Array into String") + $Kernel.$raise($$$('TypeError'), "no implicit conversion of Array into String") } // deal with splat issues (related to https://github.com/opal/opal/issues/858) if (is_first_part_array) { @@ -6702,7 +6637,7 @@ Opal.modules["corelib/regexp"] = function(Opal) { else if (part.$$is_regexp) { each_part_options = (part).$options(); if (options != undefined && options != each_part_options) { - self.$raise($$($nesting, 'TypeError'), "All expressions must use the same options") + $Kernel.$raise($$$('TypeError'), "All expressions must use the same options") } options = each_part_options; quoted_validated.push('('+part.source+')'); @@ -6713,11 +6648,10 @@ Opal.modules["corelib/regexp"] = function(Opal) { } ; return self.$new((quoted_validated).$join("|"), options); - }, $union$4.$$arity = -1); + }, -1); - Opal.def(self, '$new', $new$5 = function(regexp, options) { - var self = this; - + $def(self, '$new', function $new$1(regexp, options) { + ; @@ -6725,20 +6659,22 @@ Opal.modules["corelib/regexp"] = function(Opal) { return new RegExp(regexp); } - regexp = $$($nesting, 'Opal')['$coerce_to!'](regexp, $$($nesting, 'String'), "to_str"); + regexp = $Opal['$coerce_to!'](regexp, $$$('String'), "to_str"); if (regexp.charAt(regexp.length - 1) === '\\' && regexp.charAt(regexp.length - 2) !== '\\') { - self.$raise($$($nesting, 'RegexpError'), "" + "too short escape sequence: /" + (regexp) + "/") + $Kernel.$raise($$$('RegexpError'), "too short escape sequence: /" + (regexp) + "/") } + regexp = regexp.replace('\\A', '^').replace('\\z', '$') + if (options === undefined || options['$!']()) { return new RegExp(regexp); } if (options.$$is_number) { var temp = ''; - if ($$($nesting, 'IGNORECASE') & options) { temp += 'i'; } - if ($$($nesting, 'MULTILINE') & options) { temp += 'm'; } + if ($$('IGNORECASE') & options) { temp += 'i'; } + if ($$('MULTILINE') & options) { temp += 'm'; } options = temp; } else { @@ -6747,23 +6683,24 @@ Opal.modules["corelib/regexp"] = function(Opal) { return new RegExp(regexp, options); ; - }, $new$5.$$arity = -2); - return $alias(self, "compile", "new"); + }, -2); + $alias(self, "compile", "new"); + return $alias(self, "quote", "escape"); })(Opal.get_singleton_class(self), $nesting); - Opal.def(self, '$==', $Regexp_$eq_eq$6 = function(other) { + $def(self, '$==', function $Regexp_$eq_eq$2(other) { var self = this; return other instanceof RegExp && self.toString() === other.toString(); - }, $Regexp_$eq_eq$6.$$arity = 1); + }, 1); - Opal.def(self, '$===', $Regexp_$eq_eq_eq$7 = function(string) { + $def(self, '$===', function $Regexp_$eq_eq_eq$3(string) { var self = this; - return self.$match($$($nesting, 'Opal')['$coerce_to?'](string, $$($nesting, 'String'), "to_str")) !== nil - }, $Regexp_$eq_eq_eq$7.$$arity = 1); + return self.$match($Opal['$coerce_to?'](string, $$$('String'), "to_str")) !== nil + }, 1); - Opal.def(self, '$=~', $Regexp_$eq_tilde$8 = function(string) { + $def(self, '$=~', function $Regexp_$eq_tilde$4(string) { var self = this, $ret_or_1 = nil; if ($gvars["~"] == null) $gvars["~"] = nil; @@ -6772,10 +6709,9 @@ Opal.modules["corelib/regexp"] = function(Opal) { } else { return $ret_or_1 } - }, $Regexp_$eq_tilde$8.$$arity = 1); - $alias(self, "eql?", "=="); + }, 1); - Opal.def(self, '$inspect', $Regexp_inspect$9 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; @@ -6811,40 +6747,39 @@ Opal.modules["corelib/regexp"] = function(Opal) { return value; } - }, $Regexp_inspect$9.$$arity = 0); + }, 0); - Opal.def(self, '$match', $Regexp_match$10 = function $$match(string, pos) { - var $iter = $Regexp_match$10.$$p, block = $iter || nil, self = this; + $def(self, '$match', function $$match(string, pos) { + var block = $$match.$$p || nil, self = this; if ($gvars["~"] == null) $gvars["~"] = nil; - if ($iter) $Regexp_match$10.$$p = null; - + delete $$match.$$p; - if ($iter) $Regexp_match$10.$$p = null;; + ; ; if (self.uninitialized) { - self.$raise($$($nesting, 'TypeError'), "uninitialized Regexp") + $Kernel.$raise($$$('TypeError'), "uninitialized Regexp") } if (pos === undefined) { if (string === nil) return ($gvars["~"] = nil); - var m = self.exec($coerce_to(string, $$($nesting, 'String'), 'to_str')); + var m = self.exec($coerce_to(string, $$$('String'), 'to_str')); if (m) { - ($gvars["~"] = $$($nesting, 'MatchData').$new(self, m)); + ($gvars["~"] = $$$('MatchData').$new(self, m)); return block === nil ? $gvars["~"] : Opal.yield1(block, $gvars["~"]); } else { return ($gvars["~"] = nil); } } - pos = $coerce_to(pos, $$($nesting, 'Integer'), 'to_int'); + pos = $coerce_to(pos, $$$('Integer'), 'to_int'); if (string === nil) { return ($gvars["~"] = nil); } - string = $coerce_to(string, $$($nesting, 'String'), 'to_str'); + string = $coerce_to(string, $$$('String'), 'to_str'); if (pos < 0) { pos += string.length; @@ -6862,35 +6797,35 @@ Opal.modules["corelib/regexp"] = function(Opal) { return ($gvars["~"] = nil); } if (md.index >= pos) { - ($gvars["~"] = $$($nesting, 'MatchData').$new(re, md)); + ($gvars["~"] = $$$('MatchData').$new(re, md)); return block === nil ? $gvars["~"] : Opal.yield1(block, $gvars["~"]); } re.lastIndex = md.index + 1; } ; - }, $Regexp_match$10.$$arity = -2); + }, -2); - Opal.def(self, '$match?', $Regexp_match$ques$11 = function(string, pos) { + $def(self, '$match?', function $Regexp_match$ques$5(string, pos) { var self = this; ; if (self.uninitialized) { - self.$raise($$($nesting, 'TypeError'), "uninitialized Regexp") + $Kernel.$raise($$$('TypeError'), "uninitialized Regexp") } if (pos === undefined) { - return string === nil ? false : self.test($coerce_to(string, $$($nesting, 'String'), 'to_str')); + return string === nil ? false : self.test($coerce_to(string, $$$('String'), 'to_str')); } - pos = $coerce_to(pos, $$($nesting, 'Integer'), 'to_int'); + pos = $coerce_to(pos, $$$('Integer'), 'to_int'); if (string === nil) { return false; } - string = $coerce_to(string, $$($nesting, 'String'), 'to_str'); + string = $coerce_to(string, $$$('String'), 'to_str'); if (pos < 0) { pos += string.length; @@ -6909,87 +6844,93 @@ Opal.modules["corelib/regexp"] = function(Opal) { return true; } ; - }, $Regexp_match$ques$11.$$arity = -2); + }, -2); - Opal.def(self, '$names', $Regexp_names$12 = function $$names() { + $def(self, '$names', function $$names() { var self = this; - return $send(self.$source().$scan(/\(?<(\w+)>/), 'map', [], "first".$to_proc()).$uniq() - }, $Regexp_names$12.$$arity = 0); + return $send(self.$source().$scan(/\(?<(\w+)>/, $hash2(["no_matchdata"], {"no_matchdata": true})), 'map', [], "first".$to_proc()).$uniq() + }, 0); - Opal.def(self, '$named_captures', $Regexp_named_captures$13 = function $$named_captures() { - var $$14, self = this; - - return $send($send($send(self.$source().$scan(/\(?<(\w+)>/), 'map', [], "first".$to_proc()).$each_with_index(), 'group_by', [], "first".$to_proc()), 'transform_values', [], ($$14 = function(i){var self = $$14.$$s == null ? this : $$14.$$s, $$15; + $def(self, '$named_captures', function $$named_captures() { + var self = this; + return $send($send($send(self.$source().$scan(/\(?<(\w+)>/, $hash2(["no_matchdata"], {"no_matchdata": true})), 'map', [], "first".$to_proc()).$each_with_index(), 'group_by', [], "first".$to_proc()), 'transform_values', [], function $$6(i){ - if (i == null) { - i = nil; - }; - return $send(i, 'map', [], ($$15 = function(j){var self = $$15.$$s == null ? this : $$15.$$s; - + if (i == null) i = nil;; + return $send(i, 'map', [], function $$7(j){ - if (j == null) { - j = nil; - }; - return $rb_plus(j.$last(), 1);}, $$15.$$s = self, $$15.$$arity = 1, $$15));}, $$14.$$s = self, $$14.$$arity = 1, $$14)) - }, $Regexp_named_captures$13.$$arity = 0); + if (j == null) j = nil;; + return $rb_plus(j.$last(), 1);}, 1);}, 1) + }, 0); - Opal.def(self, '$~', $Regexp_$$16 = function() { + $def(self, '$~', function $Regexp_$$8() { var self = this; if ($gvars._ == null) $gvars._ = nil; return self['$=~']($gvars._) - }, $Regexp_$$16.$$arity = 0); + }, 0); - Opal.def(self, '$source', $Regexp_source$17 = function $$source() { + $def(self, '$source', function $$source() { var self = this; return self.source; - }, $Regexp_source$17.$$arity = 0); + }, 0); - Opal.def(self, '$options', $Regexp_options$18 = function $$options() { + $def(self, '$options', function $$options() { var self = this; if (self.uninitialized) { - self.$raise($$($nesting, 'TypeError'), "uninitialized Regexp") + $Kernel.$raise($$$('TypeError'), "uninitialized Regexp") } var result = 0; // should be supported in IE6 according to https://msdn.microsoft.com/en-us/library/7f5z26w4(v=vs.94).aspx if (self.multiline) { - result |= $$($nesting, 'MULTILINE'); + result |= $$('MULTILINE'); } if (self.ignoreCase) { - result |= $$($nesting, 'IGNORECASE'); + result |= $$('IGNORECASE'); } return result; - }, $Regexp_options$18.$$arity = 0); + }, 0); - Opal.def(self, '$casefold?', $Regexp_casefold$ques$19 = function() { + $def(self, '$casefold?', function $Regexp_casefold$ques$9() { var self = this; return self.ignoreCase; - }, $Regexp_casefold$ques$19.$$arity = 0); + }, 0); + $alias(self, "eql?", "=="); return $alias(self, "to_s", "source"); - })($nesting[0], RegExp, $nesting); + })('::', RegExp, $nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'MatchData'); - var $nesting = [self].concat($parent_nesting), $MatchData_initialize$20, $MatchData_$$$21, $MatchData_offset$22, $MatchData_$eq_eq$23, $MatchData_begin$24, $MatchData_end$25, $MatchData_captures$26, $MatchData_named_captures$27, $MatchData_names$29, $MatchData_inspect$30, $MatchData_length$32, $MatchData_to_a$33, $MatchData_to_s$34, $MatchData_values_at$35; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.matches = nil; + $proto.matches = nil; self.$attr_reader("post_match", "pre_match", "regexp", "string"); - Opal.def(self, '$initialize', $MatchData_initialize$20 = function $$initialize(regexp, match_groups) { - var self = this; + $def(self, '$initialize', function $$initialize(regexp, match_groups, $kwargs) { + var no_matchdata, self = this; - $gvars["~"] = self; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + no_matchdata = $kwargs.$$smap["no_matchdata"]; + if (no_matchdata == null) no_matchdata = false; + if (!$truthy(no_matchdata)) { + $gvars["~"] = self + }; self.regexp = regexp; self.begin = match_groups.index; self.string = match_groups.input; @@ -7008,119 +6949,120 @@ Opal.modules["corelib/regexp"] = function(Opal) { } } ; - }, $MatchData_initialize$20.$$arity = 2); + }, -3); + + $def(self, '$match', function $$match(idx) { + var self = this, match = nil; + + if ($truthy((match = self['$[]'](idx)))) { + return match + } else if (($truthy(idx['$is_a?']($$('Integer'))) && ($truthy($rb_ge(idx, self.$length()))))) { + return $Kernel.$raise($$$('IndexError'), "index " + (idx) + " out of matches") + } else { + return nil + } + }, 1); + + $def(self, '$match_length', function $$match_length(idx) { + var $a, self = this; + + return ($a = self.$match(idx), ($a === nil || $a == null) ? nil : $send($a, 'length', [])) + }, 1); - Opal.def(self, '$[]', $MatchData_$$$21 = function($a) { + $def(self, '$[]', function $MatchData_$$$10($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if (args[0].$$is_string) { if (self.$regexp().$names()['$include?'](args['$[]'](0))['$!']()) { - self.$raise($$($nesting, 'IndexError'), "" + "undefined group name reference: " + (args['$[]'](0))) + $Kernel.$raise($$$('IndexError'), "undefined group name reference: " + (args['$[]'](0))) } return self.$named_captures()['$[]'](args['$[]'](0)) } else { - return $send(self.matches, '[]', Opal.to_a(args)) + return $send(self.matches, '[]', $to_a(args)) } ; - }, $MatchData_$$$21.$$arity = -1); + }, -1); - Opal.def(self, '$offset', $MatchData_offset$22 = function $$offset(n) { + $def(self, '$offset', function $$offset(n) { var self = this; if (n !== 0) { - self.$raise($$($nesting, 'ArgumentError'), "MatchData#offset only supports 0th element") + $Kernel.$raise($$$('ArgumentError'), "MatchData#offset only supports 0th element") } return [self.begin, self.begin + self.matches[n].length]; - }, $MatchData_offset$22.$$arity = 1); + }, 1); - Opal.def(self, '$==', $MatchData_$eq_eq$23 = function(other) { - var self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + $def(self, '$==', function $MatchData_$eq_eq$11(other) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; - if ($truthy($$($nesting, 'MatchData')['$==='](other))) { - } else { + if (!$eqeqeq($$$('MatchData'), other)) { return false }; - if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.string == other.string))) { - return self.regexp.toString() == other.regexp.toString(); - } else { - return $ret_or_5 - }; return nil; })()))) { - return self.pre_match == other.pre_match; - } else { - return $ret_or_4 - }; return nil; })()))) { - return self.post_match == other.post_match; - } else { - return $ret_or_3 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = ($truthy(($ret_or_4 = self.string == other.string)) ? (self.regexp.toString() == other.regexp.toString()) : ($ret_or_4)))) ? (self.pre_match == other.pre_match) : ($ret_or_3)))) ? (self.post_match == other.post_match) : ($ret_or_2))))) { return self.begin == other.begin; } else { - return $ret_or_2 + return $ret_or_1 }; - }, $MatchData_$eq_eq$23.$$arity = 1); - $alias(self, "eql?", "=="); + }, 1); - Opal.def(self, '$begin', $MatchData_begin$24 = function $$begin(n) { + $def(self, '$begin', function $$begin(n) { var self = this; if (n !== 0) { - self.$raise($$($nesting, 'ArgumentError'), "MatchData#begin only supports 0th element") + $Kernel.$raise($$$('ArgumentError'), "MatchData#begin only supports 0th element") } return self.begin; - }, $MatchData_begin$24.$$arity = 1); + }, 1); - Opal.def(self, '$end', $MatchData_end$25 = function $$end(n) { + $def(self, '$end', function $$end(n) { var self = this; if (n !== 0) { - self.$raise($$($nesting, 'ArgumentError'), "MatchData#end only supports 0th element") + $Kernel.$raise($$$('ArgumentError'), "MatchData#end only supports 0th element") } return self.begin + self.matches[n].length; - }, $MatchData_end$25.$$arity = 1); + }, 1); - Opal.def(self, '$captures', $MatchData_captures$26 = function $$captures() { + $def(self, '$captures', function $$captures() { var self = this; return self.matches.slice(1) - }, $MatchData_captures$26.$$arity = 0); + }, 0); - Opal.def(self, '$named_captures', $MatchData_named_captures$27 = function $$named_captures() { - var $$28, self = this, matches = nil; + $def(self, '$named_captures', function $$named_captures() { + var self = this, matches = nil; matches = self.$captures(); - return $send(self.$regexp().$named_captures(), 'transform_values', [], ($$28 = function(i){var self = $$28.$$s == null ? this : $$28.$$s; - + return $send(self.$regexp().$named_captures(), 'transform_values', [], function $$12(i){ - if (i == null) { - i = nil; - }; - return matches['$[]']($rb_minus(i.$last(), 1));}, $$28.$$s = self, $$28.$$arity = 1, $$28)); - }, $MatchData_named_captures$27.$$arity = 0); + if (i == null) i = nil;; + return matches['$[]']($rb_minus(i.$last(), 1));}, 1); + }, 0); - Opal.def(self, '$names', $MatchData_names$29 = function $$names() { + $def(self, '$names', function $$names() { var self = this; return self.$regexp().$names() - }, $MatchData_names$29.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $MatchData_inspect$30 = function $$inspect() { - var $$31, self = this; + $def(self, '$inspect', function $$inspect() { + var self = this; var str = "#"; - }, $MatchData_inspect$30.$$arity = 0); + }, 0); - Opal.def(self, '$length', $MatchData_length$32 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self.matches.length - }, $MatchData_length$32.$$arity = 0); - $alias(self, "size", "length"); + }, 0); - Opal.def(self, '$to_a', $MatchData_to_a$33 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; return self.matches - }, $MatchData_to_a$33.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $MatchData_to_s$34 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return self.matches[0] - }, $MatchData_to_s$34.$$arity = 0); - return (Opal.def(self, '$values_at', $MatchData_values_at$35 = function $$values_at($a) { + }, 0); + + $def(self, '$values_at', function $$values_at($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; @@ -7186,7 +7123,7 @@ Opal.modules["corelib/regexp"] = function(Opal) { Array.prototype.splice.apply(args, a); } - index = $$($nesting, 'Opal')['$coerce_to!'](args[i], $$($nesting, 'Integer'), "to_int"); + index = $Opal['$coerce_to!'](args[i], $$$('Integer'), "to_int"); if (index < 0) { index += self.matches.length; @@ -7201,35 +7138,30 @@ Opal.modules["corelib/regexp"] = function(Opal) { return values; ; - }, $MatchData_values_at$35.$$arity = -1), nil) && 'values_at'; + }, -1); + $alias(self, "eql?", "=="); + return $alias(self, "size", "length"); })($nesting[0], null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/string"] = function(Opal) { - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $klass = Opal.klass, $alias = Opal.alias, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy, $gvars = Opal.gvars; +Opal.modules["corelib/string"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $global_multiline_regexp = Opal.global_multiline_regexp, $klass = Opal.klass, $def = Opal.def, $Opal = Opal.Opal, $defs = Opal.defs, $send = Opal.send, $to_a = Opal.to_a, $hash2 = Opal.hash2, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $truthy = Opal.truthy, $gvars = Opal.gvars, $rb_divide = Opal.rb_divide, $rb_plus = Opal.rb_plus, $alias = Opal.alias, $const_set = Opal.const_set; - Opal.add_stubs(['$require', '$include', '$coerce_to?', '$initialize', '$===', '$format', '$raise', '$respond_to?', '$to_s', '$to_str', '$<=>', '$==', '$=~', '$new', '$force_encoding', '$casecmp', '$empty?', '$ljust', '$ceil', '$/', '$+', '$rjust', '$floor', '$coerce_to!', '$copy_singleton_methods', '$initialize_clone', '$initialize_dup', '$enum_for', '$chomp', '$[]', '$to_i', '$each_line', '$to_proc', '$to_a', '$class', '$match', '$match?', '$captures', '$proc', '$succ', '$escape', '$include?', '$upcase', '$unicode_normalize', '$pristine']); + Opal.add_stubs('require,include,coerce_to?,initialize,===,format,raise,respond_to?,to_s,to_str,<=>,==,=~,new,force_encoding,casecmp,empty?,ljust,ceil,/,+,rjust,floor,coerce_to!,copy_singleton_methods,initialize_clone,initialize_dup,enum_for,chomp,[],to_i,each_line,to_proc,to_a,class,match,match?,captures,proc,succ,escape,include?,upcase,unicode_normalize,pristine'); self.$require("corelib/comparable"); self.$require("corelib/regexp"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String___id__$1, $String_try_convert$2, $String_new$3, $String_initialize$4, $String_$percent$5, $String_$$6, $String_$plus$7, $String_$lt_eq_gt$8, $String_$eq_eq$9, $String_$eq_tilde$10, $String_$$$11, $String_b$12, $String_capitalize$13, $String_casecmp$14, $String_casecmp$ques$15, $String_center$16, $String_chomp$17, $String_chop$18, $String_chr$19, $String_clone$20, $String_dup$21, $String_count$22, $String_delete$23, $String_delete_prefix$24, $String_delete_suffix$25, $String_downcase$26, $String_each_line$27, $String_empty$ques$28, $String_end_with$ques$29, $String_gsub$30, $String_hash$31, $String_hex$32, $String_include$ques$33, $String_index$34, $String_inspect$35, $String_intern$36, $String_lines$37, $String_ljust$38, $String_lstrip$39, $String_ascii_only$ques$40, $String_match$41, $String_match$ques$42, $String_next$43, $String_oct$44, $String_ord$45, $String_partition$46, $String_reverse$47, $String_rindex$48, $String_rjust$49, $String_rpartition$50, $String_rstrip$51, $String_scan$52, $String_split$53, $String_squeeze$54, $String_start_with$ques$55, $String_strip$56, $String_sub$57, $String_sum$58, $String_swapcase$59, $String_to_f$60, $String_to_i$61, $String_to_proc$62, $String_to_s$64, $String_tr$65, $String_tr_s$66, $String_upcase$67, $String_upto$68, $String_instance_variables$69, $String__load$70, $String_unicode_normalize$71, $String_unicode_normalized$ques$72, $String_unpack$73, $String_unpack1$74, $String_freeze$75, $String_$minus$$76, $String_frozen$ques$77; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - self.$include($$($nesting, 'Comparable')); + self.$include($$$('Comparable')); - Opal.defineProperty(self.$$prototype, '$$is_string', true); + Opal.prop(self.$$prototype, '$$is_string', true); - Opal.defineProperty(self.$$prototype, '$$cast', function(string) { + Opal.prop(self.$$prototype, '$$cast', function(string) { var klass = this.$$class; if (klass.$$constructor === String) { return string; @@ -7239,44 +7171,42 @@ Opal.modules["corelib/string"] = function(Opal) { }); ; - Opal.def(self, '$__id__', $String___id__$1 = function $$__id__() { + $def(self, '$__id__', function $$__id__() { var self = this; return self.toString(); - }, $String___id__$1.$$arity = 0); - $alias(self, "object_id", "__id__"); - Opal.defs(self, '$try_convert', $String_try_convert$2 = function $$try_convert(what) { - var self = this; - - return $$($nesting, 'Opal')['$coerce_to?'](what, $$($nesting, 'String'), "to_str") - }, $String_try_convert$2.$$arity = 1); - Opal.defs(self, '$new', $String_new$3 = function($a) { + }, 0); + $defs(self, '$try_convert', function $$try_convert(what) { + + return $Opal['$coerce_to?'](what, $$$('String'), "to_str") + }, 1); + $defs(self, '$new', function $String_new$1($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; var str = args[0] || ""; var opts = args[args.length-1]; - str = $coerce_to(str, $$($nesting, 'String'), 'to_str'); + str = $coerce_to(str, $$$('String'), 'to_str'); if (opts && opts.$$is_hash) { if (opts.$$smap.encoding) str = str.$force_encoding(opts.$$smap.encoding); } str = new self.$$constructor(str); - if (!str.$initialize.$$pristine) $send((str), 'initialize', Opal.to_a(args)); + if (!str.$initialize.$$pristine) $send((str), 'initialize', $to_a(args)); return str; ; - }, $String_new$3.$$arity = -1); + }, -1); - Opal.def(self, '$initialize', $String_initialize$4 = function $$initialize($a, $b) { - var $post_args, $kwargs, str, encoding, capacity, self = this; + $def(self, '$initialize', function $$initialize($a, $b) { + var $post_args, $kwargs, str, encoding, capacity; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); $kwargs = Opal.extract_kwargs($post_args); @@ -7286,41 +7216,34 @@ Opal.modules["corelib/string"] = function(Opal) { throw Opal.ArgumentError.$new('expected kwargs'); }; - if ($post_args.length > 0) { - str = $post_args[0]; - $post_args.splice(0, 1); - }; + if ($post_args.length > 0) str = $post_args.shift();; encoding = $kwargs.$$smap["encoding"]; - if (encoding == null) { - encoding = nil - }; + if (encoding == null) encoding = nil; capacity = $kwargs.$$smap["capacity"]; - if (capacity == null) { - capacity = nil - }; + if (capacity == null) capacity = nil; return nil; - }, $String_initialize$4.$$arity = -1); + }, -1); - Opal.def(self, '$%', $String_$percent$5 = function(data) { + $def(self, '$%', function $String_$percent$2(data) { var self = this; - if ($truthy($$($nesting, 'Array')['$==='](data))) { - return $send(self, 'format', [self].concat(Opal.to_a(data))) + if ($eqeqeq($$$('Array'), data)) { + return $send(self, 'format', [self].concat($to_a(data))) } else { return self.$format(self, data) } - }, $String_$percent$5.$$arity = 1); + }, 1); - Opal.def(self, '$*', $String_$$6 = function(count) { + $def(self, '$*', function $String_$$3(count) { var self = this; - count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); + count = $coerce_to(count, $$$('Integer'), 'to_int'); if (count < 0) { - self.$raise($$($nesting, 'ArgumentError'), "negative argument") + $Kernel.$raise($$$('ArgumentError'), "negative argument") } if (count === 0) { @@ -7335,7 +7258,7 @@ Opal.modules["corelib/string"] = function(Opal) { // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat if (string.length * count >= 1 << 28) { - self.$raise($$($nesting, 'RangeError'), "multiply count must not overflow maximum string size") + $Kernel.$raise($$$('RangeError'), "multiply count must not overflow maximum string size") } for (;;) { @@ -7351,13 +7274,13 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$$cast(result); - }, $String_$$6.$$arity = 1); + }, 1); - Opal.def(self, '$+', $String_$plus$7 = function(other) { + $def(self, '$+', function $String_$plus$4(other) { var self = this; - other = $coerce_to(other, $$($nesting, 'String'), 'to_str'); + other = $coerce_to(other, $$$('String'), 'to_str'); if (other == "" && self.$$class === Opal.String) return self; if (self == "" && other.$$class === Opal.String) return other; @@ -7366,9 +7289,9 @@ Opal.modules["corelib/string"] = function(Opal) { if (self.encoding.name === "UTF-8" || other.encoding.name === "UTF-8") return out; return Opal.enc(out, self.encoding); ; - }, $String_$plus$7.$$arity = 1); + }, 1); - Opal.def(self, '$<=>', $String_$lt_eq_gt$8 = function(other) { + $def(self, '$<=>', function $String_$lt_eq_gt$5(other) { var self = this; if ($truthy(other['$respond_to?']("to_str"))) { @@ -7387,9 +7310,9 @@ Opal.modules["corelib/string"] = function(Opal) { } } - }, $String_$lt_eq_gt$8.$$arity = 1); + }, 1); - Opal.def(self, '$==', $String_$eq_eq$9 = function(other) { + $def(self, '$==', function $String_$eq_eq$6(other) { var self = this; @@ -7401,34 +7324,33 @@ Opal.modules["corelib/string"] = function(Opal) { } return false; - }, $String_$eq_eq$9.$$arity = 1); - $alias(self, "eql?", "=="); - $alias(self, "===", "=="); + }, 1); - Opal.def(self, '$=~', $String_$eq_tilde$10 = function(other) { + $def(self, '$=~', function $String_$eq_tilde$7(other) { var self = this; if (other.$$is_string) { - self.$raise($$($nesting, 'TypeError'), "type mismatch: String given"); + $Kernel.$raise($$$('TypeError'), "type mismatch: String given"); } return other['$=~'](self); - }, $String_$eq_tilde$10.$$arity = 1); + }, 1); - Opal.def(self, '$[]', $String_$$$11 = function(index, length) { + $def(self, '$[]', function $String_$$$8(index, length) { var self = this; ; - var size = self.length, exclude; + var size = self.length, exclude, range; if (index.$$is_range) { exclude = index.excl; - length = $coerce_to(index.end, $$($nesting, 'Integer'), 'to_int'); - index = $coerce_to(index.begin, $$($nesting, 'Integer'), 'to_int'); + range = index; + length = index.end === nil ? -1 : $coerce_to(index.end, $$$('Integer'), 'to_int'); + index = index.begin === nil ? 0 : $coerce_to(index.begin, $$$('Integer'), 'to_int'); if (Math.abs(index) > size) { return nil; @@ -7442,7 +7364,7 @@ Opal.modules["corelib/string"] = function(Opal) { length += size; } - if (!exclude) { + if (!exclude || range.end === nil) { length += 1; } @@ -7458,7 +7380,7 @@ Opal.modules["corelib/string"] = function(Opal) { if (index.$$is_string) { if (length != null) { - self.$raise($$($nesting, 'TypeError')) + $Kernel.$raise($$$('TypeError')) } return self.indexOf(index) !== -1 ? self.$$cast(index) : nil; } @@ -7472,13 +7394,13 @@ Opal.modules["corelib/string"] = function(Opal) { return nil; } - ($gvars["~"] = $$($nesting, 'MatchData').$new(index, match)) + ($gvars["~"] = $$$('MatchData').$new(index, match)) if (length == null) { return self.$$cast(match[0]); } - length = $coerce_to(length, $$($nesting, 'Integer'), 'to_int'); + length = $coerce_to(length, $$$('Integer'), 'to_int'); if (length < 0 && -length < match.length) { return self.$$cast(match[length += match.length]); @@ -7492,7 +7414,7 @@ Opal.modules["corelib/string"] = function(Opal) { } - index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); + index = $coerce_to(index, $$$('Integer'), 'to_int'); if (index < 0) { index += size; @@ -7505,7 +7427,7 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$$cast(self.substr(index, 1)); } - length = $coerce_to(length, $$($nesting, 'Integer'), 'to_int'); + length = $coerce_to(length, $$$('Integer'), 'to_int'); if (length < 0) { return nil; @@ -7517,30 +7439,28 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$$cast(self.substr(index, length)); ; - }, $String_$$$11.$$arity = -2); - $alias(self, "byteslice", "[]"); + }, -2); - Opal.def(self, '$b', $String_b$12 = function $$b() { + $def(self, '$b', function $$b() { var self = this; return (new String(self)).$force_encoding("binary") - }, $String_b$12.$$arity = 0); + }, 0); - Opal.def(self, '$capitalize', $String_capitalize$13 = function $$capitalize() { + $def(self, '$capitalize', function $$capitalize() { var self = this; return self.$$cast(self.charAt(0).toUpperCase() + self.substr(1).toLowerCase()); - }, $String_capitalize$13.$$arity = 0); + }, 0); - Opal.def(self, '$casecmp', $String_casecmp$14 = function $$casecmp(other) { + $def(self, '$casecmp', function $$casecmp(other) { var self = this; - if ($truthy(other['$respond_to?']("to_str"))) { - } else { + if (!$truthy(other['$respond_to?']("to_str"))) { return nil }; - other = ($coerce_to(other, $$($nesting, 'String'), 'to_str')).$to_s(); + other = ($coerce_to(other, $$$('String'), 'to_str')).$to_s(); var ascii_only = /^[\x00-\x7F]*$/; if (ascii_only.test(self) && ascii_only.test(other)) { @@ -7549,9 +7469,9 @@ Opal.modules["corelib/string"] = function(Opal) { } ; return self['$<=>'](other); - }, $String_casecmp$14.$$arity = 1); + }, 1); - Opal.def(self, '$casecmp?', $String_casecmp$ques$15 = function(other) { + $def(self, '$casecmp?', function $String_casecmp$ques$9(other) { var self = this; @@ -7562,42 +7482,41 @@ Opal.modules["corelib/string"] = function(Opal) { return cmp === 0; } - }, $String_casecmp$ques$15.$$arity = 1); + }, 1); - Opal.def(self, '$center', $String_center$16 = function $$center(width, padstr) { + $def(self, '$center', function $$center(width, padstr) { var self = this; - if (padstr == null) { - padstr = " "; - }; - width = $coerce_to(width, $$($nesting, 'Integer'), 'to_int'); - padstr = ($coerce_to(padstr, $$($nesting, 'String'), 'to_str')).$to_s(); + if (padstr == null) padstr = " ";; + width = $coerce_to(width, $$$('Integer'), 'to_int'); + padstr = ($coerce_to(padstr, $$$('String'), 'to_str')).$to_s(); if ($truthy(padstr['$empty?']())) { - self.$raise($$($nesting, 'ArgumentError'), "zero width padding")}; + $Kernel.$raise($$$('ArgumentError'), "zero width padding") + }; if ($truthy(width <= self.length)) { - return self}; + return self + }; var ljustified = self.$ljust($rb_divide($rb_plus(width, self.length), 2).$ceil(), padstr), rjustified = self.$rjust($rb_divide($rb_plus(width, self.length), 2).$floor(), padstr); return self.$$cast(rjustified + ljustified.slice(self.length)); ; - }, $String_center$16.$$arity = -2); + }, -2); - Opal.def(self, '$chomp', $String_chomp$17 = function $$chomp(separator) { + $def(self, '$chomp', function $$chomp(separator) { var self = this; if ($gvars["/"] == null) $gvars["/"] = nil; - if (separator == null) { - separator = $gvars["/"]; - }; + if (separator == null) separator = $gvars["/"];; if ($truthy(separator === nil || self.length === 0)) { - return self}; - separator = $$($nesting, 'Opal')['$coerce_to!'](separator, $$($nesting, 'String'), "to_str").$to_s(); + return self + }; + separator = $Opal['$coerce_to!'](separator, $$$('String'), "to_str").$to_s(); var result; @@ -7620,9 +7539,9 @@ Opal.modules["corelib/string"] = function(Opal) { } ; return self; - }, $String_chomp$17.$$arity = -1); + }, -1); - Opal.def(self, '$chop', $String_chop$18 = function $$chop() { + $def(self, '$chop', function $$chop() { var self = this; @@ -7638,15 +7557,15 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$$cast(result); - }, $String_chop$18.$$arity = 0); + }, 0); - Opal.def(self, '$chr', $String_chr$19 = function $$chr() { + $def(self, '$chr', function $$chr() { var self = this; return self.charAt(0); - }, $String_chr$19.$$arity = 0); + }, 0); - Opal.def(self, '$clone', $String_clone$20 = function $$clone() { + $def(self, '$clone', function $$clone() { var self = this, copy = nil; @@ -7654,28 +7573,28 @@ Opal.modules["corelib/string"] = function(Opal) { copy.$copy_singleton_methods(self); copy.$initialize_clone(self); return copy; - }, $String_clone$20.$$arity = 0); + }, 0); - Opal.def(self, '$dup', $String_dup$21 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this, copy = nil; copy = new String(self); copy.$initialize_dup(self); return copy; - }, $String_dup$21.$$arity = 0); + }, 0); - Opal.def(self, '$count', $String_count$22 = function $$count($a) { + $def(self, '$count', function $$count($a) { var $post_args, sets, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); sets = $post_args;; if (sets.length === 0) { - self.$raise($$($nesting, 'ArgumentError'), "ArgumentError: wrong number of arguments (0 for 1+)") + $Kernel.$raise($$$('ArgumentError'), "ArgumentError: wrong number of arguments (0 for 1+)") } var char_class = char_class_from_char_sets(sets); if (char_class === null) { @@ -7683,19 +7602,19 @@ Opal.modules["corelib/string"] = function(Opal) { } return self.length - self.replace(new RegExp(char_class, 'g'), '').length; ; - }, $String_count$22.$$arity = -1); + }, -1); - Opal.def(self, '$delete', $String_delete$23 = function($a) { + $def(self, '$delete', function $String_delete$10($a) { var $post_args, sets, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); sets = $post_args;; if (sets.length === 0) { - self.$raise($$($nesting, 'ArgumentError'), "ArgumentError: wrong number of arguments (0 for 1+)") + $Kernel.$raise($$$('ArgumentError'), "ArgumentError: wrong number of arguments (0 for 1+)") } var char_class = char_class_from_char_sets(sets); if (char_class === null) { @@ -7703,14 +7622,14 @@ Opal.modules["corelib/string"] = function(Opal) { } return self.$$cast(self.replace(new RegExp(char_class, 'g'), '')); ; - }, $String_delete$23.$$arity = -1); + }, -1); - Opal.def(self, '$delete_prefix', $String_delete_prefix$24 = function $$delete_prefix(prefix) { + $def(self, '$delete_prefix', function $$delete_prefix(prefix) { var self = this; if (!prefix.$$is_string) { - prefix = $coerce_to(prefix, $$($nesting, 'String'), 'to_str'); + prefix = $coerce_to(prefix, $$$('String'), 'to_str'); } if (self.slice(0, prefix.length) === prefix) { @@ -7719,14 +7638,14 @@ Opal.modules["corelib/string"] = function(Opal) { return self; } - }, $String_delete_prefix$24.$$arity = 1); + }, 1); - Opal.def(self, '$delete_suffix', $String_delete_suffix$25 = function $$delete_suffix(suffix) { + $def(self, '$delete_suffix', function $$delete_suffix(suffix) { var self = this; if (!suffix.$$is_string) { - suffix = $coerce_to(suffix, $$($nesting, 'String'), 'to_str'); + suffix = $coerce_to(suffix, $$$('String'), 'to_str'); } if (self.slice(self.length - suffix.length) === suffix) { @@ -7735,29 +7654,39 @@ Opal.modules["corelib/string"] = function(Opal) { return self; } - }, $String_delete_suffix$25.$$arity = 1); + }, 1); - Opal.def(self, '$downcase', $String_downcase$26 = function $$downcase() { + $def(self, '$downcase', function $$downcase() { var self = this; return self.$$cast(self.toLowerCase()); - }, $String_downcase$26.$$arity = 0); + }, 0); - Opal.def(self, '$each_line', $String_each_line$27 = function $$each_line(separator) { - var $iter = $String_each_line$27.$$p, block = $iter || nil, self = this; + $def(self, '$each_line', function $$each_line($a, $b) { + var block = $$each_line.$$p || nil, $post_args, $kwargs, separator, chomp, self = this; if ($gvars["/"] == null) $gvars["/"] = nil; - if ($iter) $String_each_line$27.$$p = null; + delete $$each_line.$$p; + + ; + $post_args = Opal.slice.call(arguments); - if ($iter) $String_each_line$27.$$p = null;; + $kwargs = Opal.extract_kwargs($post_args); - if (separator == null) { - separator = $gvars["/"]; + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); }; - if ((block !== nil)) { - } else { - return self.$enum_for("each_line", separator) + + if ($post_args.length > 0) separator = $post_args.shift(); + if (separator == null) separator = $gvars["/"];; + + chomp = $kwargs.$$smap["chomp"]; + if (chomp == null) chomp = false; + if (!(block !== nil)) { + return self.$enum_for("each_line", separator, $hash2(["chomp"], {"chomp": chomp})) }; if (separator === nil) { @@ -7766,15 +7695,18 @@ Opal.modules["corelib/string"] = function(Opal) { return self; } - separator = $coerce_to(separator, $$($nesting, 'String'), 'to_str') + separator = $coerce_to(separator, $$$('String'), 'to_str'); - var a, i, n, length, chomped, trailing, splitted; + var a, i, n, length, chomped, trailing, splitted, value; if (separator.length === 0) { - for (a = self.split(/(\n{2,})/), i = 0, n = a.length; i < n; i += 2) { + for (a = self.split(/((?:\r?\n){2})(?:(?:\r?\n)*)/), i = 0, n = a.length; i < n; i += 2) { if (a[i] || a[i + 1]) { - var value = (a[i] || "") + (a[i + 1] || ""); - Opal.yield1(block, self.$$cast(value)); + value = (a[i] || "") + (a[i + 1] || ""); + if (chomp) { + value = (value).$chomp("\n"); + } + Opal.yield1(block, value); } } @@ -7786,34 +7718,36 @@ Opal.modules["corelib/string"] = function(Opal) { splitted = chomped.split(separator); for (i = 0, length = splitted.length; i < length; i++) { + value = splitted[i]; if (i < length - 1 || trailing) { - Opal.yield1(block, self.$$cast(splitted[i] + separator)); + value += separator; } - else { - Opal.yield1(block, self.$$cast(splitted[i])); + if (chomp) { + value = (value).$chomp(separator); } + Opal.yield1(block, value); } ; return self; - }, $String_each_line$27.$$arity = -1); + }, -1); - Opal.def(self, '$empty?', $String_empty$ques$28 = function() { + $def(self, '$empty?', function $String_empty$ques$11() { var self = this; return self.length === 0; - }, $String_empty$ques$28.$$arity = 0); + }, 0); - Opal.def(self, '$end_with?', $String_end_with$ques$29 = function($a) { + $def(self, '$end_with?', function $String_end_with$ques$12($a) { var $post_args, suffixes, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); suffixes = $post_args;; for (var i = 0, length = suffixes.length; i < length; i++) { - var suffix = $coerce_to(suffixes[i], $$($nesting, 'String'), 'to_str').$to_s(); + var suffix = $coerce_to(suffixes[i], $$$('String'), 'to_str').$to_s(); if (self.length >= suffix.length && self.substr(self.length - suffix.length, suffix.length) == suffix) { @@ -7822,16 +7756,14 @@ Opal.modules["corelib/string"] = function(Opal) { } ; return false; - }, $String_end_with$ques$29.$$arity = -1); - $alias(self, "equal?", "==="); + }, -1); - Opal.def(self, '$gsub', $String_gsub$30 = function $$gsub(pattern, replacement) { - var $iter = $String_gsub$30.$$p, block = $iter || nil, self = this; + $def(self, '$gsub', function $$gsub(pattern, replacement) { + var block = $$gsub.$$p || nil, self = this; - if ($iter) $String_gsub$30.$$p = null; - + delete $$gsub.$$p; - if ($iter) $String_gsub$30.$$p = null;; + ; ; if (replacement === undefined && block === nil) { @@ -7841,9 +7773,9 @@ Opal.modules["corelib/string"] = function(Opal) { var result = '', match_data = nil, index = 0, match, _replacement; if (pattern.$$is_regexp) { - pattern = Opal.global_multiline_regexp(pattern); + pattern = $global_multiline_regexp(pattern); } else { - pattern = $coerce_to(pattern, $$($nesting, 'String'), 'to_str'); + pattern = $coerce_to(pattern, $$$('String'), 'to_str'); pattern = new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gm'); } @@ -7857,7 +7789,7 @@ Opal.modules["corelib/string"] = function(Opal) { break; } - match_data = $$($nesting, 'MatchData').$new(pattern, match); + match_data = $$$('MatchData').$new(pattern, match); if (replacement === undefined) { lastIndex = pattern.lastIndex; @@ -7869,7 +7801,7 @@ Opal.modules["corelib/string"] = function(Opal) { } else { if (!replacement.$$is_string) { - replacement = $coerce_to(replacement, $$($nesting, 'String'), 'to_str'); + replacement = $coerce_to(replacement, $$$('String'), 'to_str'); } _replacement = replacement.replace(/([\\]+)([0-9+&`'])/g, function (original, slashes, command) { if (slashes.length % 2 === 0) { @@ -7904,32 +7836,32 @@ Opal.modules["corelib/string"] = function(Opal) { ($gvars["~"] = match_data) return self.$$cast(result); ; - }, $String_gsub$30.$$arity = -2); + }, -2); - Opal.def(self, '$hash', $String_hash$31 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return self.toString(); - }, $String_hash$31.$$arity = 0); + }, 0); - Opal.def(self, '$hex', $String_hex$32 = function $$hex() { + $def(self, '$hex', function $$hex() { var self = this; return self.$to_i(16) - }, $String_hex$32.$$arity = 0); + }, 0); - Opal.def(self, '$include?', $String_include$ques$33 = function(other) { + $def(self, '$include?', function $String_include$ques$13(other) { var self = this; if (!other.$$is_string) { - other = $coerce_to(other, $$($nesting, 'String'), 'to_str'); + other = $coerce_to(other, $$$('String'), 'to_str'); } return self.indexOf(other) !== -1; - }, $String_include$ques$33.$$arity = 1); + }, 1); - Opal.def(self, '$index', $String_index$34 = function $$index(search, offset) { + $def(self, '$index', function $$index(search, offset) { var self = this; @@ -7942,7 +7874,7 @@ Opal.modules["corelib/string"] = function(Opal) { if (offset === undefined) { offset = 0; } else { - offset = $coerce_to(offset, $$($nesting, 'Integer'), 'to_int'); + offset = $coerce_to(offset, $$$('Integer'), 'to_int'); if (offset < 0) { offset += self.length; if (offset < 0) { @@ -7952,7 +7884,7 @@ Opal.modules["corelib/string"] = function(Opal) { } if (search.$$is_regexp) { - regex = Opal.global_multiline_regexp(search); + regex = $global_multiline_regexp(search); while (true) { match = regex.exec(self); if (match === null) { @@ -7961,14 +7893,14 @@ Opal.modules["corelib/string"] = function(Opal) { break; } if (match.index >= offset) { - ($gvars["~"] = $$($nesting, 'MatchData').$new(regex, match)) + ($gvars["~"] = $$$('MatchData').$new(regex, match)) index = match.index; break; } regex.lastIndex = match.index + 1; } } else { - search = $coerce_to(search, $$($nesting, 'String'), 'to_str'); + search = $coerce_to(search, $$$('String'), 'to_str'); if (search.length === 0 && offset > self.length) { index = -1; } else { @@ -7978,9 +7910,9 @@ Opal.modules["corelib/string"] = function(Opal) { return index === -1 ? nil : index; ; - }, $String_index$34.$$arity = -2); + }, -2); - Opal.def(self, '$inspect', $String_inspect$35 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; @@ -8010,48 +7942,59 @@ Opal.modules["corelib/string"] = function(Opal) { return '"' + escaped.replace(/\#[\$\@\{]/g, '\\$&') + '"'; /* eslint-enable no-misleading-character-class */ - }, $String_inspect$35.$$arity = 0); + }, 0); - Opal.def(self, '$intern', $String_intern$36 = function $$intern() { + $def(self, '$intern', function $$intern() { var self = this; return self.toString(); - }, $String_intern$36.$$arity = 0); + }, 0); - Opal.def(self, '$lines', $String_lines$37 = function $$lines(separator) { - var $iter = $String_lines$37.$$p, block = $iter || nil, self = this, e = nil; + $def(self, '$lines', function $$lines($a, $b) { + var block = $$lines.$$p || nil, $post_args, $kwargs, separator, chomp, self = this, e = nil; if ($gvars["/"] == null) $gvars["/"] = nil; - if ($iter) $String_lines$37.$$p = null; + delete $$lines.$$p; + + ; + $post_args = Opal.slice.call(arguments); - if ($iter) $String_lines$37.$$p = null;; + $kwargs = Opal.extract_kwargs($post_args); - if (separator == null) { - separator = $gvars["/"]; + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); }; - e = $send(self, 'each_line', [separator], block.$to_proc()); + + if ($post_args.length > 0) separator = $post_args.shift(); + if (separator == null) separator = $gvars["/"];; + + chomp = $kwargs.$$smap["chomp"]; + if (chomp == null) chomp = false; + e = $send(self, 'each_line', [separator, $hash2(["chomp"], {"chomp": chomp})], block.$to_proc()); if ($truthy(block)) { return self } else { return e.$to_a() }; - }, $String_lines$37.$$arity = -1); + }, -1); - Opal.def(self, '$ljust', $String_ljust$38 = function $$ljust(width, padstr) { + $def(self, '$ljust', function $$ljust(width, padstr) { var self = this; - if (padstr == null) { - padstr = " "; - }; - width = $coerce_to(width, $$($nesting, 'Integer'), 'to_int'); - padstr = ($coerce_to(padstr, $$($nesting, 'String'), 'to_str')).$to_s(); + if (padstr == null) padstr = " ";; + width = $coerce_to(width, $$$('Integer'), 'to_int'); + padstr = ($coerce_to(padstr, $$$('String'), 'to_str')).$to_s(); if ($truthy(padstr['$empty?']())) { - self.$raise($$($nesting, 'ArgumentError'), "zero width padding")}; + $Kernel.$raise($$$('ArgumentError'), "zero width padding") + }; if ($truthy(width <= self.length)) { - return self}; + return self + }; var index = -1, result = ""; @@ -8064,63 +8007,54 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$$cast(self + result.slice(0, width)); ; - }, $String_ljust$38.$$arity = -2); + }, -2); - Opal.def(self, '$lstrip', $String_lstrip$39 = function $$lstrip() { + $def(self, '$lstrip', function $$lstrip() { var self = this; - return self.replace(/^\s*/, ''); - }, $String_lstrip$39.$$arity = 0); + return self.replace(/^[\u0000\s]*/, ''); + }, 0); - Opal.def(self, '$ascii_only?', $String_ascii_only$ques$40 = function() { + $def(self, '$ascii_only?', function $String_ascii_only$ques$14() { var self = this; if (!self.encoding.ascii) return false; return /^[\x00-\x7F]*$/.test(self); - }, $String_ascii_only$ques$40.$$arity = 0); + }, 0); - Opal.def(self, '$match', $String_match$41 = function $$match(pattern, pos) { - var $iter = $String_match$41.$$p, block = $iter || nil, self = this, $ret_or_1 = nil; + $def(self, '$match', function $$match(pattern, pos) { + var block = $$match.$$p || nil, self = this; - if ($iter) $String_match$41.$$p = null; + delete $$match.$$p; - - if ($iter) $String_match$41.$$p = null;; ; - if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'String')['$==='](pattern)))) { - return $ret_or_1 - } else { - return pattern['$respond_to?']("to_str") - }; return nil; })())) { - pattern = $$($nesting, 'Regexp').$new(pattern.$to_str())}; - if ($truthy($$($nesting, 'Regexp')['$==='](pattern))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (pattern.$class()) + " (expected Regexp)") + ; + if (($eqeqeq($$('String'), pattern) || ($truthy(pattern['$respond_to?']("to_str"))))) { + pattern = $$$('Regexp').$new(pattern.$to_str()) + }; + if (!$eqeqeq($$$('Regexp'), pattern)) { + $Kernel.$raise($$$('TypeError'), "wrong argument type " + (pattern.$class()) + " (expected Regexp)") }; return $send(pattern, 'match', [self, pos], block.$to_proc()); - }, $String_match$41.$$arity = -2); + }, -2); - Opal.def(self, '$match?', $String_match$ques$42 = function(pattern, pos) { - var self = this, $ret_or_2 = nil; + $def(self, '$match?', function $String_match$ques$15(pattern, pos) { + var self = this; ; - if ($truthy((function() {if ($truthy(($ret_or_2 = $$($nesting, 'String')['$==='](pattern)))) { - return $ret_or_2 - } else { - return pattern['$respond_to?']("to_str") - }; return nil; })())) { - pattern = $$($nesting, 'Regexp').$new(pattern.$to_str())}; - if ($truthy($$($nesting, 'Regexp')['$==='](pattern))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (pattern.$class()) + " (expected Regexp)") + if (($eqeqeq($$('String'), pattern) || ($truthy(pattern['$respond_to?']("to_str"))))) { + pattern = $$$('Regexp').$new(pattern.$to_str()) + }; + if (!$eqeqeq($$$('Regexp'), pattern)) { + $Kernel.$raise($$$('TypeError'), "wrong argument type " + (pattern.$class()) + " (expected Regexp)") }; return pattern['$match?'](self, pos); - }, $String_match$ques$42.$$arity = -2); + }, -2); - Opal.def(self, '$next', $String_next$43 = function $$next() { + $def(self, '$next', function $$next() { var self = this; @@ -8190,9 +8124,9 @@ Opal.modules["corelib/string"] = function(Opal) { } return self.$$cast(result); - }, $String_next$43.$$arity = 0); + }, 0); - Opal.def(self, '$oct', $String_oct$44 = function $$oct() { + $def(self, '$oct', function $$oct() { var self = this; @@ -8235,9 +8169,9 @@ Opal.modules["corelib/string"] = function(Opal) { result = parseInt(string.replace(/_(?!_)/g, ''), radix); return isNaN(result) ? 0 : result; - }, $String_oct$44.$$arity = 0); + }, 0); - Opal.def(self, '$ord', $String_ord$45 = function $$ord() { + $def(self, '$ord', function $$ord() { var self = this; @@ -8248,9 +8182,9 @@ Opal.modules["corelib/string"] = function(Opal) { return self.charCodeAt(0); } - }, $String_ord$45.$$arity = 0); + }, 0); - Opal.def(self, '$partition', $String_partition$46 = function $$partition(sep) { + $def(self, '$partition', function $$partition(sep) { var self = this; @@ -8261,12 +8195,12 @@ Opal.modules["corelib/string"] = function(Opal) { if (m === null) { i = -1; } else { - $$($nesting, 'MatchData').$new(sep, m); + $$$('MatchData').$new(sep, m); sep = m[0]; i = m.index; } } else { - sep = $coerce_to(sep, $$($nesting, 'String'), 'to_str'); + sep = $coerce_to(sep, $$$('String'), 'to_str'); i = self.indexOf(sep); } @@ -8280,15 +8214,15 @@ Opal.modules["corelib/string"] = function(Opal) { self.slice(i + sep.length) ]; - }, $String_partition$46.$$arity = 1); + }, 1); - Opal.def(self, '$reverse', $String_reverse$47 = function $$reverse() { + $def(self, '$reverse', function $$reverse() { var self = this; return self.split('').reverse().join(''); - }, $String_reverse$47.$$arity = 0); + }, 0); - Opal.def(self, '$rindex', $String_rindex$48 = function $$rindex(search, offset) { + $def(self, '$rindex', function $$rindex(search, offset) { var self = this; @@ -8299,7 +8233,7 @@ Opal.modules["corelib/string"] = function(Opal) { if (offset === undefined) { offset = self.length; } else { - offset = $coerce_to(offset, $$($nesting, 'Integer'), 'to_int'); + offset = $coerce_to(offset, $$$('Integer'), 'to_int'); if (offset < 0) { offset += self.length; if (offset < 0) { @@ -8310,7 +8244,7 @@ Opal.modules["corelib/string"] = function(Opal) { if (search.$$is_regexp) { m = null; - r = Opal.global_multiline_regexp(search); + r = $global_multiline_regexp(search); while (true) { _m = r.exec(self); if (_m === null || _m.index > offset) { @@ -8323,32 +8257,32 @@ Opal.modules["corelib/string"] = function(Opal) { ($gvars["~"] = nil) i = -1; } else { - $$($nesting, 'MatchData').$new(r, m); + $$$('MatchData').$new(r, m); i = m.index; } } else { - search = $coerce_to(search, $$($nesting, 'String'), 'to_str'); + search = $coerce_to(search, $$$('String'), 'to_str'); i = self.lastIndexOf(search, offset); } return i === -1 ? nil : i; ; - }, $String_rindex$48.$$arity = -2); + }, -2); - Opal.def(self, '$rjust', $String_rjust$49 = function $$rjust(width, padstr) { + $def(self, '$rjust', function $$rjust(width, padstr) { var self = this; - if (padstr == null) { - padstr = " "; - }; - width = $coerce_to(width, $$($nesting, 'Integer'), 'to_int'); - padstr = ($coerce_to(padstr, $$($nesting, 'String'), 'to_str')).$to_s(); + if (padstr == null) padstr = " ";; + width = $coerce_to(width, $$$('Integer'), 'to_int'); + padstr = ($coerce_to(padstr, $$$('String'), 'to_str')).$to_s(); if ($truthy(padstr['$empty?']())) { - self.$raise($$($nesting, 'ArgumentError'), "zero width padding")}; + $Kernel.$raise($$$('ArgumentError'), "zero width padding") + }; if ($truthy(width <= self.length)) { - return self}; + return self + }; var chars = Math.floor(width - self.length), patterns = Math.floor(chars / padstr.length), @@ -8357,9 +8291,9 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$$cast(result + padstr.slice(0, remaining) + self); ; - }, $String_rjust$49.$$arity = -2); + }, -2); - Opal.def(self, '$rpartition', $String_rpartition$50 = function $$rpartition(sep) { + $def(self, '$rpartition', function $$rpartition(sep) { var self = this; @@ -8367,7 +8301,7 @@ Opal.modules["corelib/string"] = function(Opal) { if (sep.$$is_regexp) { m = null; - r = Opal.global_multiline_regexp(sep); + r = $global_multiline_regexp(sep); while (true) { _m = r.exec(self); @@ -8381,13 +8315,13 @@ Opal.modules["corelib/string"] = function(Opal) { if (m === null) { i = -1; } else { - $$($nesting, 'MatchData').$new(r, m); + $$$('MatchData').$new(r, m); sep = m[0]; i = m.index; } } else { - sep = $coerce_to(sep, $$($nesting, 'String'), 'to_str'); + sep = $coerce_to(sep, $$$('String'), 'to_str'); i = self.lastIndexOf(sep); } @@ -8401,54 +8335,67 @@ Opal.modules["corelib/string"] = function(Opal) { self.slice(i + sep.length) ]; - }, $String_rpartition$50.$$arity = 1); + }, 1); - Opal.def(self, '$rstrip', $String_rstrip$51 = function $$rstrip() { + $def(self, '$rstrip', function $$rstrip() { var self = this; return self.replace(/[\s\u0000]*$/, ''); - }, $String_rstrip$51.$$arity = 0); + }, 0); - Opal.def(self, '$scan', $String_scan$52 = function $$scan(pattern) { - var $iter = $String_scan$52.$$p, block = $iter || nil, self = this; + $def(self, '$scan', function $$scan(pattern, $kwargs) { + var block = $$scan.$$p || nil, no_matchdata, self = this; - if ($iter) $String_scan$52.$$p = null; + delete $$scan.$$p; + ; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; - if ($iter) $String_scan$52.$$p = null;; + no_matchdata = $kwargs.$$smap["no_matchdata"]; + if (no_matchdata == null) no_matchdata = false; var result = [], match_data = nil, match; if (pattern.$$is_regexp) { - pattern = Opal.global_multiline_regexp(pattern); + pattern = $global_multiline_regexp(pattern); } else { - pattern = $coerce_to(pattern, $$($nesting, 'String'), 'to_str'); + pattern = $coerce_to(pattern, $$$('String'), 'to_str'); pattern = new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gm'); } while ((match = pattern.exec(self)) != null) { - match_data = $$($nesting, 'MatchData').$new(pattern, match); + match_data = $$$('MatchData').$new(pattern, match, $hash2(["no_matchdata"], {"no_matchdata": no_matchdata})); if (block === nil) { match.length == 1 ? result.push(match[0]) : result.push((match_data).$captures()); } else { - match.length == 1 ? block(match[0]) : block.call(self, (match_data).$captures()); + match.length == 1 ? Opal.yield1(block, match[0]) : Opal.yield1(block, (match_data).$captures()); } if (pattern.lastIndex === match.index) { pattern.lastIndex += 1; } } - ($gvars["~"] = match_data) + if (!no_matchdata) ($gvars["~"] = match_data); return (block !== nil ? self : result); ; - }, $String_scan$52.$$arity = 1); - $alias(self, "slice", "[]"); + }, -2); + + $def(self, '$singleton_class', function $$singleton_class() { + var self = this; + + return Opal.get_singleton_class(self); + }, 0); - Opal.def(self, '$split', $String_split$53 = function $$split(pattern, limit) { - var self = this, $ret_or_3 = nil; + $def(self, '$split', function $$split(pattern, limit) { + var self = this, $ret_or_1 = nil; if ($gvars[";"] == null) $gvars[";"] = nil; @@ -8462,18 +8409,14 @@ Opal.modules["corelib/string"] = function(Opal) { if (limit === undefined) { limit = 0; } else { - limit = $$($nesting, 'Opal')['$coerce_to!'](limit, $$($nesting, 'Integer'), "to_int"); + limit = $Opal['$coerce_to!'](limit, $$$('Integer'), "to_int"); if (limit === 1) { return [self]; } } if (pattern === undefined || pattern === nil) { - pattern = (function() {if ($truthy(($ret_or_3 = $gvars[";"]))) { - return $ret_or_3 - } else { - return " " - }; return nil; })(); + pattern = ($truthy(($ret_or_1 = $gvars[";"])) ? ($ret_or_1) : (" ")); } var result = [], @@ -8483,9 +8426,9 @@ Opal.modules["corelib/string"] = function(Opal) { i, ii; if (pattern.$$is_regexp) { - pattern = Opal.global_multiline_regexp(pattern); + pattern = $global_multiline_regexp(pattern); } else { - pattern = $coerce_to(pattern, $$($nesting, 'String'), 'to_str').$to_s(); + pattern = $coerce_to(pattern, $$$('String'), 'to_str').$to_s(); if (pattern === ' ') { pattern = /\s+/gm; string = string.replace(/^\s+/, ''); @@ -8554,14 +8497,14 @@ Opal.modules["corelib/string"] = function(Opal) { castResult(); return result; ; - }, $String_split$53.$$arity = -1); + }, -1); - Opal.def(self, '$squeeze', $String_squeeze$54 = function $$squeeze($a) { + $def(self, '$squeeze', function $$squeeze($a) { var $post_args, sets, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); sets = $post_args;; @@ -8574,14 +8517,14 @@ Opal.modules["corelib/string"] = function(Opal) { } return self.$$cast(self.replace(new RegExp('(' + char_class + ')\\1+', 'g'), '$1')); ; - }, $String_squeeze$54.$$arity = -1); + }, -1); - Opal.def(self, '$start_with?', $String_start_with$ques$55 = function($a) { + $def(self, '$start_with?', function $String_start_with$ques$16($a) { var $post_args, prefixes, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); prefixes = $post_args;; @@ -8591,13 +8534,13 @@ Opal.modules["corelib/string"] = function(Opal) { var match = regexp.exec(self); if (match != null && match.index === 0) { - ($gvars["~"] = $$($nesting, 'MatchData').$new(regexp, match)); + ($gvars["~"] = $$$('MatchData').$new(regexp, match)); return true; } else { ($gvars["~"] = nil) } } else { - var prefix = $coerce_to(prefixes[i], $$($nesting, 'String'), 'to_str').$to_s(); + var prefix = $coerce_to(prefixes[i], $$$('String'), 'to_str').$to_s(); if (self.indexOf(prefix) === 0) { return true; @@ -8607,25 +8550,24 @@ Opal.modules["corelib/string"] = function(Opal) { return false; ; - }, $String_start_with$ques$55.$$arity = -1); + }, -1); - Opal.def(self, '$strip', $String_strip$56 = function $$strip() { + $def(self, '$strip', function $$strip() { var self = this; - return self.replace(/^\s*/, '').replace(/[\s\u0000]*$/, ''); - }, $String_strip$56.$$arity = 0); + return self.replace(/^[\s\u0000]*|[\s\u0000]*$/g, ''); + }, 0); - Opal.def(self, '$sub', $String_sub$57 = function $$sub(pattern, replacement) { - var $iter = $String_sub$57.$$p, block = $iter || nil, self = this; + $def(self, '$sub', function $$sub(pattern, replacement) { + var block = $$sub.$$p || nil, self = this; - if ($iter) $String_sub$57.$$p = null; - + delete $$sub.$$p; - if ($iter) $String_sub$57.$$p = null;; + ; ; if (!pattern.$$is_regexp) { - pattern = $coerce_to(pattern, $$($nesting, 'String'), 'to_str'); + pattern = $coerce_to(pattern, $$$('String'), 'to_str'); pattern = new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')); } @@ -8635,12 +8577,12 @@ Opal.modules["corelib/string"] = function(Opal) { ($gvars["~"] = nil) result = self.toString(); } else { - $$($nesting, 'MatchData').$new(pattern, match) + $$$('MatchData').$new(pattern, match) if (replacement === undefined) { if (block === nil) { - self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (1 for 2)") + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (1 for 2)") } result = self.slice(0, match.index) + block(match[0]) + self.slice(match.index + match[0].length); @@ -8650,7 +8592,7 @@ Opal.modules["corelib/string"] = function(Opal) { } else { - replacement = $coerce_to(replacement, $$($nesting, 'String'), 'to_str'); + replacement = $coerce_to(replacement, $$$('String'), 'to_str'); replacement = replacement.replace(/([\\]+)([0-9+&`'])/g, function (original, slashes, command) { if (slashes.length % 2 === 0) { @@ -8677,19 +8619,16 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$$cast(result); ; - }, $String_sub$57.$$arity = -2); - $alias(self, "succ", "next"); + }, -2); - Opal.def(self, '$sum', $String_sum$58 = function $$sum(n) { + $def(self, '$sum', function $$sum(n) { var self = this; - if (n == null) { - n = 16; - }; + if (n == null) n = 16;; - n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); + n = $coerce_to(n, $$$('Integer'), 'to_int'); var result = 0, length = self.length, @@ -8705,9 +8644,9 @@ Opal.modules["corelib/string"] = function(Opal) { return result & (Math.pow(2, n) - 1); ; - }, $String_sum$58.$$arity = -1); + }, -1); - Opal.def(self, '$swapcase', $String_swapcase$59 = function $$swapcase() { + $def(self, '$swapcase', function $$swapcase() { var self = this; @@ -8721,9 +8660,9 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$class().$new(str); - }, $String_swapcase$59.$$arity = 0); + }, 0); - Opal.def(self, '$to_f', $String_to_f$60 = function $$to_f() { + $def(self, '$to_f', function $$to_f() { var self = this; @@ -8740,23 +8679,21 @@ Opal.modules["corelib/string"] = function(Opal) { return result; } - }, $String_to_f$60.$$arity = 0); + }, 0); - Opal.def(self, '$to_i', $String_to_i$61 = function $$to_i(base) { + $def(self, '$to_i', function $$to_i(base) { var self = this; - if (base == null) { - base = 10; - }; + if (base == null) base = 10;; var result, string = self.toLowerCase(), - radix = $coerce_to(base, $$($nesting, 'Integer'), 'to_int'); + radix = $coerce_to(base, $$$('Integer'), 'to_int'); if (radix === 1 || radix < 0 || radix > 36) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid radix " + (radix)) + $Kernel.$raise($$$('ArgumentError'), "invalid radix " + (radix)) } if (/^\s*_/.test(string)) { @@ -8806,26 +8743,26 @@ Opal.modules["corelib/string"] = function(Opal) { result = parseInt(string.replace(/_(?!_)/g, ''), radix); return isNaN(result) ? 0 : result; ; - }, $String_to_i$61.$$arity = -1); + }, -1); - Opal.def(self, '$to_proc', $String_to_proc$62 = function $$to_proc() { - var $$63, $iter = $String_to_proc$62.$$p, $yield = $iter || nil, self = this, method_name = nil; + $def(self, '$to_proc', function $$to_proc() { + var $yield = $$to_proc.$$p || nil, self = this, method_name = nil; - if ($iter) $String_to_proc$62.$$p = null; + delete $$to_proc.$$p; method_name = $rb_plus("$", self.valueOf()); - return $send(self, 'proc', [], ($$63 = function($a){var self = $$63.$$s == null ? this : $$63.$$s, $iter = $$63.$$p, block = $iter || nil, $post_args, args; + return $send($Kernel, 'proc', [], function $$17($a){var block = $$17.$$p || nil, $post_args, args; + delete $$17.$$p; + ; - if ($iter) $$63.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if (args.length === 0) { - self.$raise($$($nesting, 'ArgumentError'), "no receiver given") + $Kernel.$raise($$$('ArgumentError'), "no receiver given") } var recv = args[0]; @@ -8847,23 +8784,21 @@ Opal.modules["corelib/string"] = function(Opal) { } else { return body.apply(recv, args.slice(1)); } - ;}, $$63.$$s = self, $$63.$$arity = -1, $$63)); - }, $String_to_proc$62.$$arity = 0); + ;}, -1); + }, 0); - Opal.def(self, '$to_s', $String_to_s$64 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return self.toString(); - }, $String_to_s$64.$$arity = 0); - $alias(self, "to_str", "to_s"); - $alias(self, "to_sym", "intern"); + }, 0); - Opal.def(self, '$tr', $String_tr$65 = function $$tr(from, to) { + $def(self, '$tr', function $$tr(from, to) { var self = this; - from = $coerce_to(from, $$($nesting, 'String'), 'to_str').$to_s(); - to = $coerce_to(to, $$($nesting, 'String'), 'to_str').$to_s(); + from = $coerce_to(from, $$$('String'), 'to_str').$to_s(); + to = $coerce_to(to, $$$('String'), 'to_str').$to_s(); if (from.length == 0 || from === to) { return self; @@ -8910,7 +8845,7 @@ Opal.modules["corelib/string"] = function(Opal) { start = last_from.charCodeAt(0); end = ch.charCodeAt(0); if (start > end) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") + $Kernel.$raise($$$('ArgumentError'), "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") } for (c = start + 1; c < end; c++) { from_chars_expanded.push(String.fromCharCode(c)); @@ -8959,7 +8894,7 @@ Opal.modules["corelib/string"] = function(Opal) { start = last_to.charCodeAt(0); end = ch.charCodeAt(0); if (start > end) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") + $Kernel.$raise($$$('ArgumentError'), "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") } for (c = start + 1; c < end; c++) { to_chars_expanded.push(String.fromCharCode(c)); @@ -9003,14 +8938,14 @@ Opal.modules["corelib/string"] = function(Opal) { } return self.$$cast(new_str); - }, $String_tr$65.$$arity = 2); + }, 2); - Opal.def(self, '$tr_s', $String_tr_s$66 = function $$tr_s(from, to) { + $def(self, '$tr_s', function $$tr_s(from, to) { var self = this; - from = $coerce_to(from, $$($nesting, 'String'), 'to_str').$to_s(); - to = $coerce_to(to, $$($nesting, 'String'), 'to_str').$to_s(); + from = $coerce_to(from, $$$('String'), 'to_str').$to_s(); + to = $coerce_to(to, $$$('String'), 'to_str').$to_s(); if (from.length == 0) { return self; @@ -9057,7 +8992,7 @@ Opal.modules["corelib/string"] = function(Opal) { start = last_from.charCodeAt(0); end = ch.charCodeAt(0); if (start > end) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") + $Kernel.$raise($$$('ArgumentError'), "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") } for (c = start + 1; c < end; c++) { from_chars_expanded.push(String.fromCharCode(c)); @@ -9106,7 +9041,7 @@ Opal.modules["corelib/string"] = function(Opal) { start = last_from.charCodeAt(0); end = ch.charCodeAt(0); if (start > end) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") + $Kernel.$raise($$$('ArgumentError'), "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") } for (c = start + 1; c < end; c++) { to_chars_expanded.push(String.fromCharCode(c)); @@ -9168,33 +9103,29 @@ Opal.modules["corelib/string"] = function(Opal) { } return self.$$cast(new_str); - }, $String_tr_s$66.$$arity = 2); + }, 2); - Opal.def(self, '$upcase', $String_upcase$67 = function $$upcase() { + $def(self, '$upcase', function $$upcase() { var self = this; return self.$$cast(self.toUpperCase()); - }, $String_upcase$67.$$arity = 0); + }, 0); - Opal.def(self, '$upto', $String_upto$68 = function $$upto(stop, excl) { - var $iter = $String_upto$68.$$p, block = $iter || nil, self = this; + $def(self, '$upto', function $$upto(stop, excl) { + var block = $$upto.$$p || nil, self = this; - if ($iter) $String_upto$68.$$p = null; + delete $$upto.$$p; + ; - if ($iter) $String_upto$68.$$p = null;; - - if (excl == null) { - excl = false; - }; - if ((block !== nil)) { - } else { - return self.$enum_for("upto", stop, excl) + if (excl == null) excl = false;; + if (!(block !== nil)) { + return self.$enum_for("upto", stop, excl) }; var a, b, s = self.toString(); - stop = $coerce_to(stop, $$($nesting, 'String'), 'to_str'); + stop = $coerce_to(stop, $$$('String'), 'to_str'); if (s.length === 1 && stop.length === 1) { @@ -9241,7 +9172,7 @@ Opal.modules["corelib/string"] = function(Opal) { } return self; ; - }, $String_upto$68.$$arity = -2); + }, -2); function char_class_from_char_sets(sets) { function explode_sequences_in_character_set(set) { @@ -9258,7 +9189,7 @@ Opal.modules["corelib/string"] = function(Opal) { char_code_from = set.charCodeAt(i - 1); char_code_upto = set.charCodeAt(i + 1); if (char_code_from > char_code_upto) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (char_code_from) + "-" + (char_code_upto) + "\" in string transliteration") + $Kernel.$raise($$$('ArgumentError'), "invalid range \"" + (char_code_from) + "-" + (char_code_upto) + "\" in string transliteration") } for (char_code = char_code_from + 1; char_code < char_code_upto + 1; char_code++) { result += String.fromCharCode(char_code); @@ -9294,7 +9225,7 @@ Opal.modules["corelib/string"] = function(Opal) { neg_intersection = ''; for (i = 0, len = sets.length; i < len; i++) { - set = $coerce_to(sets[i], $$($nesting, 'String'), 'to_str'); + set = $coerce_to(sets[i], $$$('String'), 'to_str'); neg = (set.charAt(0) === '^' && set.length > 1); set = explode_sequences_in_character_set(neg ? set.slice(1) : set); if (neg) { @@ -9317,72 +9248,64 @@ Opal.modules["corelib/string"] = function(Opal) { } if (pos_intersection.length > 0) { - return '[' + $$($nesting, 'Regexp').$escape(pos_intersection) + ']'; + return '[' + $$$('Regexp').$escape(pos_intersection) + ']'; } if (neg_intersection.length > 0) { - return '[^' + $$($nesting, 'Regexp').$escape(neg_intersection) + ']'; + return '[^' + $$$('Regexp').$escape(neg_intersection) + ']'; } return null; } ; - Opal.def(self, '$instance_variables', $String_instance_variables$69 = function $$instance_variables() { - var self = this; - + $def(self, '$instance_variables', function $$instance_variables() { + return [] - }, $String_instance_variables$69.$$arity = 0); - Opal.defs(self, '$_load', $String__load$70 = function $$_load($a) { + }, 0); + $defs(self, '$_load', function $$_load($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self, 'new', Opal.to_a(args)); - }, $String__load$70.$$arity = -1); + return $send(self, 'new', $to_a(args)); + }, -1); - Opal.def(self, '$unicode_normalize', $String_unicode_normalize$71 = function $$unicode_normalize(form) { + $def(self, '$unicode_normalize', function $$unicode_normalize(form) { var self = this; - if (form == null) { - form = "nfc"; - }; - if ($truthy(["nfc", "nfd", "nfkc", "nfkd"]['$include?'](form))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "Invalid normalization form " + (form)) + if (form == null) form = "nfc";; + if (!$truthy(["nfc", "nfd", "nfkc", "nfkd"]['$include?'](form))) { + $Kernel.$raise($$$('ArgumentError'), "Invalid normalization form " + (form)) }; return self.normalize(form.$upcase()); - }, $String_unicode_normalize$71.$$arity = -1); + }, -1); - Opal.def(self, '$unicode_normalized?', $String_unicode_normalized$ques$72 = function(form) { + $def(self, '$unicode_normalized?', function $String_unicode_normalized$ques$18(form) { var self = this; - if (form == null) { - form = "nfc"; - }; + if (form == null) form = "nfc";; return self.$unicode_normalize(form)['$=='](self); - }, $String_unicode_normalized$ques$72.$$arity = -1); + }, -1); - Opal.def(self, '$unpack', $String_unpack$73 = function $$unpack(format) { - var self = this; - - return self.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.") - }, $String_unpack$73.$$arity = 1); + $def(self, '$unpack', function $$unpack(format) { + + return $Kernel.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.") + }, 1); - Opal.def(self, '$unpack1', $String_unpack1$74 = function $$unpack1(format) { - var self = this; - - return self.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.") - }, $String_unpack1$74.$$arity = 1); + $def(self, '$unpack1', function $$unpack1(format) { + + return $Kernel.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.") + }, 1); - Opal.def(self, '$freeze', $String_freeze$75 = function $$freeze() { + $def(self, '$freeze', function $$freeze() { var self = this; @@ -9390,10 +9313,9 @@ Opal.modules["corelib/string"] = function(Opal) { self.$$frozen = true; return self; - }, $String_freeze$75.$$arity = 0); - $alias(self, "+@", "dup"); + }, 0); - Opal.def(self, '$-@', $String_$minus$$76 = function() { + $def(self, '$-@', function $String_$minus$$19() { var self = this; @@ -9402,49 +9324,36 @@ Opal.modules["corelib/string"] = function(Opal) { if (self.encoding.name == 'UTF-8' && self.internal_encoding.name == 'UTF-8') return self.toString(); return self.$dup().$freeze(); - }, $String_$minus$$76.$$arity = 0); + }, 0); - Opal.def(self, '$frozen?', $String_frozen$ques$77 = function() { + $def(self, '$frozen?', function $String_frozen$ques$20() { var self = this; return typeof self === 'string' || self.$$frozen === true; - }, $String_frozen$ques$77.$$arity = 0); - return $$($nesting, 'Opal').$pristine(self, "initialize"); - })($nesting[0], String, $nesting); - return Opal.const_set($nesting[0], 'Symbol', $$($nesting, 'String')); + }, 0); + $alias(self, "+@", "dup"); + $alias(self, "===", "=="); + $alias(self, "byteslice", "[]"); + $alias(self, "eql?", "=="); + $alias(self, "equal?", "==="); + $alias(self, "object_id", "__id__"); + $alias(self, "slice", "[]"); + $alias(self, "succ", "next"); + $alias(self, "to_str", "to_s"); + $alias(self, "to_sym", "intern"); + return $Opal.$pristine(self, "initialize"); + })('::', String, $nesting); + return $const_set($nesting[0], 'Symbol', $$('String')); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/enumerable"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $module = Opal.module, $send = Opal.send, $alias = Opal.alias, $hash2 = Opal.hash2, $lambda = Opal.lambda; +Opal.modules["corelib/enumerable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $yield1 = Opal.yield1, $yieldX = Opal.yieldX, $module = Opal.module, $send = Opal.send, $to_a = Opal.to_a, $Opal = Opal.Opal, $def = Opal.def, $Kernel = Opal.Kernel, $rb_gt = Opal.rb_gt, $rb_times = Opal.rb_times, $rb_lt = Opal.rb_lt, $eqeq = Opal.eqeq, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $rb_divide = Opal.rb_divide, $rb_le = Opal.rb_le, $hash2 = Opal.hash2, $lambda = Opal.lambda, $not = Opal.not, $alias = Opal.alias; - Opal.add_stubs(['$each', '$public_send', '$destructure', '$to_enum', '$enumerator_size', '$new', '$yield', '$raise', '$slice_when', '$!', '$enum_for', '$flatten', '$map', '$warn', '$proc', '$==', '$nil?', '$respond_to?', '$coerce_to!', '$>', '$*', '$try_convert', '$<', '$+', '$-', '$ceil', '$/', '$size', '$select', '$to_proc', '$__send__', '$length', '$<=', '$[]', '$push', '$<<', '$[]=', '$===', '$inspect', '$<=>', '$first', '$reverse', '$sort', '$take', '$sort_by', '$compare', '$call', '$dup', '$to_a', '$sort!', '$map!', '$key?', '$values', '$transform_values', '$group_by', '$to_h', '$coerce_to?', '$class', '$zip']); - return (function($base, $parent_nesting) { + Opal.add_stubs('each,public_send,destructure,to_enum,enumerator_size,new,yield,raise,slice_when,!,enum_for,flatten,map,compact,to_a,warn,proc,==,nil?,respond_to?,coerce_to!,>,*,try_convert,<,+,-,ceil,/,size,select,to_proc,__send__,length,<=,[],push,<<,[]=,===,inspect,<=>,first,reverse,sort,take,sort_by,compare,call,dup,sort!,map!,include?,-@,key?,values,transform_values,group_by,fetch,to_h,coerce_to?,class,zip'); + return (function($base) { var self = $module($base, 'Enumerable'); - var $nesting = [self].concat($parent_nesting), $Enumerable_all$ques$1, $Enumerable_any$ques$5, $Enumerable_chunk$9, $Enumerable_chunk_while$12, $Enumerable_collect$14, $Enumerable_collect_concat$16, $Enumerable_count$19, $Enumerable_cycle$23, $Enumerable_detect$25, $Enumerable_drop$27, $Enumerable_drop_while$28, $Enumerable_each_cons$29, $Enumerable_each_entry$31, $Enumerable_each_slice$33, $Enumerable_each_with_index$35, $Enumerable_each_with_object$37, $Enumerable_entries$39, $Enumerable_filter_map$40, $Enumerable_find_all$42, $Enumerable_find_index$44, $Enumerable_first$47, $Enumerable_grep$50, $Enumerable_grep_v$52, $Enumerable_group_by$54, $Enumerable_include$ques$56, $Enumerable_inject$58, $Enumerable_lazy$59, $Enumerable_enumerator_size$61, $Enumerable_max$62, $Enumerable_max_by$63, $Enumerable_min$65, $Enumerable_min_by$67, $Enumerable_minmax$69, $Enumerable_minmax_by$71, $Enumerable_none$ques$73, $Enumerable_one$ques$77, $Enumerable_partition$81, $Enumerable_reject$83, $Enumerable_reverse_each$85, $Enumerable_slice_before$87, $Enumerable_slice_after$89, $Enumerable_slice_when$92, $Enumerable_sort$94, $Enumerable_sort_by$96, $Enumerable_sum$101, $Enumerable_take$103, $Enumerable_take_while$104, $Enumerable_uniq$106, $Enumerable_tally$108, $Enumerable_to_h$109, $Enumerable_zip$110; - + function comparableForPattern(value) { @@ -9460,134 +9369,128 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } ; - Opal.def(self, '$all?', $Enumerable_all$ques$1 = function(pattern) {try { + $def(self, '$all?', function $Enumerable_all$ques$1(pattern) {try { - var $iter = $Enumerable_all$ques$1.$$p, block = $iter || nil, $$2, $$3, $$4, self = this; + var block = $Enumerable_all$ques$1.$$p || nil, self = this; - if ($iter) $Enumerable_all$ques$1.$$p = null; + delete $Enumerable_all$ques$1.$$p; - - if ($iter) $Enumerable_all$ques$1.$$p = null;; + ; ; if ($truthy(pattern !== undefined)) { - $send(self, 'each', [], ($$2 = function($a){var self = $$2.$$s == null ? this : $$2.$$s, $post_args, value, comparable = nil; + $send(self, 'each', [], function $$2($a){var $post_args, value, comparable = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; comparable = comparableForPattern(value); - if ($truthy($send(pattern, 'public_send', ["==="].concat(Opal.to_a(comparable))))) { + if ($truthy($send(pattern, 'public_send', ["==="].concat($to_a(comparable))))) { return nil } else { Opal.ret(false) - };}, $$2.$$s = self, $$2.$$arity = -1, $$2)) + };}, -1) } else if ((block !== nil)) { - $send(self, 'each', [], ($$3 = function($a){var self = $$3.$$s == null ? this : $$3.$$s, $post_args, value; + $send(self, 'each', [], function $$3($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { + if ($truthy(Opal.yieldX(block, $to_a(value)))) { return nil } else { Opal.ret(false) - };}, $$3.$$s = self, $$3.$$arity = -1, $$3)) + };}, -1) } else { - $send(self, 'each', [], ($$4 = function($a){var self = $$4.$$s == null ? this : $$4.$$s, $post_args, value; + $send(self, 'each', [], function $$4($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($truthy($$($nesting, 'Opal').$destructure(value))) { + if ($truthy($Opal.$destructure(value))) { return nil } else { Opal.ret(false) - };}, $$4.$$s = self, $$4.$$arity = -1, $$4)) + };}, -1) }; return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_all$ques$1.$$arity = -1); + }, -1); - Opal.def(self, '$any?', $Enumerable_any$ques$5 = function(pattern) {try { + $def(self, '$any?', function $Enumerable_any$ques$5(pattern) {try { - var $iter = $Enumerable_any$ques$5.$$p, block = $iter || nil, $$6, $$7, $$8, self = this; + var block = $Enumerable_any$ques$5.$$p || nil, self = this; - if ($iter) $Enumerable_any$ques$5.$$p = null; + delete $Enumerable_any$ques$5.$$p; - - if ($iter) $Enumerable_any$ques$5.$$p = null;; + ; ; if ($truthy(pattern !== undefined)) { - $send(self, 'each', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, value, comparable = nil; + $send(self, 'each', [], function $$6($a){var $post_args, value, comparable = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; comparable = comparableForPattern(value); - if ($truthy($send(pattern, 'public_send', ["==="].concat(Opal.to_a(comparable))))) { + if ($truthy($send(pattern, 'public_send', ["==="].concat($to_a(comparable))))) { Opal.ret(true) } else { return nil - };}, $$6.$$s = self, $$6.$$arity = -1, $$6)) + };}, -1) } else if ((block !== nil)) { - $send(self, 'each', [], ($$7 = function($a){var self = $$7.$$s == null ? this : $$7.$$s, $post_args, value; + $send(self, 'each', [], function $$7($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { + if ($truthy(Opal.yieldX(block, $to_a(value)))) { Opal.ret(true) } else { return nil - };}, $$7.$$s = self, $$7.$$arity = -1, $$7)) + };}, -1) } else { - $send(self, 'each', [], ($$8 = function($a){var self = $$8.$$s == null ? this : $$8.$$s, $post_args, value; + $send(self, 'each', [], function $$8($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($truthy($$($nesting, 'Opal').$destructure(value))) { + if ($truthy($Opal.$destructure(value))) { Opal.ret(true) } else { return nil - };}, $$8.$$s = self, $$8.$$arity = -1, $$8)) + };}, -1) }; return false; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_any$ques$5.$$arity = -1); + }, -1); - Opal.def(self, '$chunk', $Enumerable_chunk$9 = function $$chunk() { - var $iter = $Enumerable_chunk$9.$$p, block = $iter || nil, $$10, $$11, self = this; + $def(self, '$chunk', function $$chunk() { + var block = $$chunk.$$p || nil, self = this; - if ($iter) $Enumerable_chunk$9.$$p = null; + delete $$chunk.$$p; - - if ($iter) $Enumerable_chunk$9.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'to_enum', ["chunk"], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'to_enum', ["chunk"], function $$9(){var self = $$9.$$s == null ? this : $$9.$$s; - return self.$enumerator_size()}, $$10.$$s = self, $$10.$$arity = 0, $$10)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; - return $send($$$('::', 'Enumerator'), 'new', [], ($$11 = function(yielder){var self = $$11.$$s == null ? this : $$11.$$s; + return $send($$$('Enumerator'), 'new', [], function $$10(yielder){var self = $$10.$$s == null ? this : $$10.$$s; - if (yielder == null) { - yielder = nil; - }; + if (yielder == null) yielder = nil;; var previous = nil, accumulate = []; @@ -9598,7 +9501,7 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } self.$each.$$p = function(value) { - var key = Opal.yield1(block, value); + var key = $yield1(block, value); if (key === nil) { releaseAccumulate(); @@ -9619,52 +9522,43 @@ Opal.modules["corelib/enumerable"] = function(Opal) { self.$each(); releaseAccumulate(); - ;}, $$11.$$s = self, $$11.$$arity = 1, $$11)); - }, $Enumerable_chunk$9.$$arity = 0); + ;}, {$$arity: 1, $$s: self}); + }, 0); - Opal.def(self, '$chunk_while', $Enumerable_chunk_while$12 = function $$chunk_while() { - var $iter = $Enumerable_chunk_while$12.$$p, block = $iter || nil, $$13, self = this; + $def(self, '$chunk_while', function $$chunk_while() { + var block = $$chunk_while.$$p || nil, self = this; - if ($iter) $Enumerable_chunk_while$12.$$p = null; - + delete $$chunk_while.$$p; - if ($iter) $Enumerable_chunk_while$12.$$p = null;; - if ((block !== nil)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "no block given") + ; + if (!(block !== nil)) { + $Kernel.$raise($$$('ArgumentError'), "no block given") }; - return $send(self, 'slice_when', [], ($$13 = function(before, after){var self = $$13.$$s == null ? this : $$13.$$s; - + return $send(self, 'slice_when', [], function $$11(before, after){ - if (before == null) { - before = nil; - }; + if (before == null) before = nil;; - if (after == null) { - after = nil; - }; - return Opal.yieldX(block, [before, after])['$!']();}, $$13.$$s = self, $$13.$$arity = 2, $$13)); - }, $Enumerable_chunk_while$12.$$arity = 0); + if (after == null) after = nil;; + return Opal.yieldX(block, [before, after])['$!']();}, 2); + }, 0); - Opal.def(self, '$collect', $Enumerable_collect$14 = function $$collect() { - var $iter = $Enumerable_collect$14.$$p, block = $iter || nil, $$15, self = this; + $def(self, '$collect', function $$collect() { + var block = $$collect.$$p || nil, self = this; - if ($iter) $Enumerable_collect$14.$$p = null; + delete $$collect.$$p; - - if ($iter) $Enumerable_collect$14.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["collect"], ($$15 = function(){var self = $$15.$$s == null ? this : $$15.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["collect"], function $$12(){var self = $$12.$$s == null ? this : $$12.$$s; - return self.$enumerator_size()}, $$15.$$s = self, $$15.$$arity = 0, $$15)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; var result = []; self.$each.$$p = function() { - var value = Opal.yieldX(block, arguments); + var value = $yieldX(block, arguments); result.push(value); }; @@ -9673,38 +9567,38 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result; ; - }, $Enumerable_collect$14.$$arity = 0); + }, 0); - Opal.def(self, '$collect_concat', $Enumerable_collect_concat$16 = function $$collect_concat() { - var $iter = $Enumerable_collect_concat$16.$$p, block = $iter || nil, $$17, $$18, self = this; + $def(self, '$collect_concat', function $$collect_concat() { + var block = $$collect_concat.$$p || nil, self = this; - if ($iter) $Enumerable_collect_concat$16.$$p = null; + delete $$collect_concat.$$p; - - if ($iter) $Enumerable_collect_concat$16.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["collect_concat"], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["collect_concat"], function $$13(){var self = $$13.$$s == null ? this : $$13.$$s; - return self.$enumerator_size()}, $$17.$$s = self, $$17.$$arity = 0, $$17)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; - return $send(self, 'map', [], ($$18 = function(item){var self = $$18.$$s == null ? this : $$18.$$s; - + return $send(self, 'map', [], function $$14(item){ - if (item == null) { - item = nil; - }; - return Opal.yield1(block, item);;}, $$18.$$s = self, $$18.$$arity = 1, $$18)).$flatten(1); - }, $Enumerable_collect_concat$16.$$arity = 0); + if (item == null) item = nil;; + return Opal.yield1(block, item);;}, 1).$flatten(1); + }, 0); - Opal.def(self, '$count', $Enumerable_count$19 = function $$count(object) { - var $iter = $Enumerable_count$19.$$p, block = $iter || nil, $$20, $$21, $$22, self = this, result = nil; + $def(self, '$compact', function $$compact() { + var self = this; - if ($iter) $Enumerable_count$19.$$p = null; - + return self.$to_a().$compact() + }, 0); + + $def(self, '$count', function $$count(object) { + var block = $$count.$$p || nil, self = this, result = nil; + + delete $$count.$$p; - if ($iter) $Enumerable_count$19.$$p = null;; + ; ; result = 0; @@ -9713,77 +9607,73 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } ; if ($truthy(object != null)) { - block = $send(self, 'proc', [], ($$20 = function($a){var self = $$20.$$s == null ? this : $$20.$$s, $post_args, args; + block = $send($Kernel, 'proc', [], function $$15($a){var $post_args, args; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $$($nesting, 'Opal').$destructure(args)['$=='](object);}, $$20.$$s = self, $$20.$$arity = -1, $$20)) + return $Opal.$destructure(args)['$=='](object);}, -1) } else if ($truthy(block['$nil?']())) { - block = $send(self, 'proc', [], ($$21 = function(){var self = $$21.$$s == null ? this : $$21.$$s; - - return true}, $$21.$$s = self, $$21.$$arity = 0, $$21))}; - $send(self, 'each', [], ($$22 = function($a){var self = $$22.$$s == null ? this : $$22.$$s, $post_args, args; + block = $send($Kernel, 'proc', [], function $$16(){ + return true}, 0) + }; + $send(self, 'each', [], function $$17($a){var $post_args, args; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - if ($truthy(Opal.yieldX(block, args))) { + if ($truthy($yieldX(block, args))) { return result++; } else { return nil - };}, $$22.$$s = self, $$22.$$arity = -1, $$22)); + };}, -1); return result; - }, $Enumerable_count$19.$$arity = -1); + }, -1); - Opal.def(self, '$cycle', $Enumerable_cycle$23 = function $$cycle(n) { - var $iter = $Enumerable_cycle$23.$$p, block = $iter || nil, $$24, self = this; + $def(self, '$cycle', function $$cycle(n) { + var block = $$cycle.$$p || nil, self = this; - if ($iter) $Enumerable_cycle$23.$$p = null; - + delete $$cycle.$$p; - if ($iter) $Enumerable_cycle$23.$$p = null;; + ; - if (n == null) { - n = nil; - }; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["cycle", n], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s; + if (n == null) n = nil;; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["cycle", n], function $$18(){var self = $$18.$$s == null ? this : $$18.$$s; if ($truthy(n['$nil?']())) { if ($truthy(self['$respond_to?']("size"))) { - return $$$($$($nesting, 'Float'), 'INFINITY') + return $$$($$$('Float'), 'INFINITY') } else { return nil } } else { - n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); + n = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); if ($truthy($rb_gt(n, 0))) { return $rb_times(self.$enumerator_size(), n) } else { return 0 }; - }}, $$24.$$s = self, $$24.$$arity = 0, $$24)) + }}, {$$arity: 0, $$s: self}) }; - if ($truthy(n['$nil?']())) { - } else { + if (!$truthy(n['$nil?']())) { - n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); + n = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); if ($truthy(n <= 0)) { - return nil}; + return nil + }; }; var all = [], i, length, value; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); all.push(param); } @@ -9797,48 +9687,46 @@ Opal.modules["corelib/enumerable"] = function(Opal) { if (n === nil) { while (true) { for (i = 0, length = all.length; i < length; i++) { - value = Opal.yield1(block, all[i]); + value = $yield1(block, all[i]); } } } else { while (n > 1) { for (i = 0, length = all.length; i < length; i++) { - value = Opal.yield1(block, all[i]); + value = $yield1(block, all[i]); } n--; } } ; - }, $Enumerable_cycle$23.$$arity = -1); + }, -1); - Opal.def(self, '$detect', $Enumerable_detect$25 = function $$detect(ifnone) {try { + $def(self, '$detect', function $$detect(ifnone) {try { - var $iter = $Enumerable_detect$25.$$p, block = $iter || nil, $$26, self = this; + var block = $$detect.$$p || nil, self = this; - if ($iter) $Enumerable_detect$25.$$p = null; - + delete $$detect.$$p; - if ($iter) $Enumerable_detect$25.$$p = null;; ; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("detect", ifnone) }; - $send(self, 'each', [], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $post_args, args, value = nil; + $send(self, 'each', [], function $$19($a){var $post_args, args, value = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - value = $$($nesting, 'Opal').$destructure(args); + value = $Opal.$destructure(args); if ($truthy(Opal.yield1(block, value))) { Opal.ret(value) } else { return nil - };}, $$26.$$s = self, $$26.$$arity = -1, $$26)); + };}, -1); if (ifnone !== undefined) { if (typeof(ifnone) === 'function') { @@ -9850,22 +9738,23 @@ Opal.modules["corelib/enumerable"] = function(Opal) { ; return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_detect$25.$$arity = -1); + }, -1); - Opal.def(self, '$drop', $Enumerable_drop$27 = function $$drop(number) { + $def(self, '$drop', function $$drop(number) { var self = this; - number = $coerce_to(number, $$($nesting, 'Integer'), 'to_int'); + number = $coerce_to(number, $$$('Integer'), 'to_int'); if ($truthy(number < 0)) { - self.$raise($$($nesting, 'ArgumentError'), "attempt to drop negative size")}; + $Kernel.$raise($$$('ArgumentError'), "attempt to drop negative size") + }; var result = [], current = 0; self.$each.$$p = function() { if (number <= current) { - result.push($$($nesting, 'Opal').$destructure(arguments)); + result.push($Opal.$destructure(arguments)); } current++; @@ -9875,17 +9764,15 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result; ; - }, $Enumerable_drop$27.$$arity = 1); + }, 1); - Opal.def(self, '$drop_while', $Enumerable_drop_while$28 = function $$drop_while() { - var $iter = $Enumerable_drop_while$28.$$p, block = $iter || nil, self = this; + $def(self, '$drop_while', function $$drop_while() { + var block = $$drop_while.$$p || nil, self = this; - if ($iter) $Enumerable_drop_while$28.$$p = null; + delete $$drop_while.$$p; - - if ($iter) $Enumerable_drop_while$28.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("drop_while") }; @@ -9893,12 +9780,12 @@ Opal.modules["corelib/enumerable"] = function(Opal) { dropping = true; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments); + var param = $Opal.$destructure(arguments); if (dropping) { - var value = Opal.yield1(block, param); + var value = $yield1(block, param); - if ($falsy(value)) { + if (!$truthy(value)) { dropping = false; result.push(param); } @@ -9912,118 +9799,111 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result; ; - }, $Enumerable_drop_while$28.$$arity = 0); + }, 0); - Opal.def(self, '$each_cons', $Enumerable_each_cons$29 = function $$each_cons(n) { - var $iter = $Enumerable_each_cons$29.$$p, block = $iter || nil, $$30, self = this; + $def(self, '$each_cons', function $$each_cons(n) { + var block = $$each_cons.$$p || nil, self = this; - if ($iter) $Enumerable_each_cons$29.$$p = null; + delete $$each_cons.$$p; - - if ($iter) $Enumerable_each_cons$29.$$p = null;; + ; if ($truthy(arguments.length != 1)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 1)")}; - n = $$($nesting, 'Opal').$try_convert(n, $$($nesting, 'Integer'), "to_int"); + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (arguments.length) + " for 1)") + }; + n = $Opal.$try_convert(n, $$$('Integer'), "to_int"); if ($truthy(n <= 0)) { - self.$raise($$($nesting, 'ArgumentError'), "invalid size")}; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_cons", n], ($$30 = function(){var self = $$30.$$s == null ? this : $$30.$$s, enum_size = nil, $ret_or_1 = nil; + $Kernel.$raise($$$('ArgumentError'), "invalid size") + }; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each_cons", n], function $$20(){var self = $$20.$$s == null ? this : $$20.$$s, enum_size = nil; enum_size = self.$enumerator_size(); if ($truthy(enum_size['$nil?']())) { return nil - } else if ($truthy((function() {if ($truthy(($ret_or_1 = enum_size['$=='](0)))) { - return $ret_or_1 - } else { - return $rb_lt(enum_size, n) - }; return nil; })())) { + } else if (($eqeq(enum_size, 0) || ($truthy($rb_lt(enum_size, n))))) { return 0 } else { return $rb_plus($rb_minus(enum_size, n), 1) - };}, $$30.$$s = self, $$30.$$arity = 0, $$30)) + };}, {$$arity: 0, $$s: self}) }; var buffer = []; self.$each.$$p = function() { - var element = $$($nesting, 'Opal').$destructure(arguments); + var element = $Opal.$destructure(arguments); buffer.push(element); if (buffer.length > n) { buffer.shift(); } if (buffer.length == n) { - Opal.yield1(block, buffer.slice(0, n)); + $yield1(block, buffer.slice(0, n)); } } self.$each(); - return nil; + return self; ; - }, $Enumerable_each_cons$29.$$arity = 1); + }, 1); - Opal.def(self, '$each_entry', $Enumerable_each_entry$31 = function $$each_entry($a) { - var $iter = $Enumerable_each_entry$31.$$p, block = $iter || nil, $post_args, data, $$32, self = this; + $def(self, '$each_entry', function $$each_entry($a) { + var block = $$each_entry.$$p || nil, $post_args, data, self = this; - if ($iter) $Enumerable_each_entry$31.$$p = null; - + delete $$each_entry.$$p; - if ($iter) $Enumerable_each_entry$31.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); data = $post_args;; - if ((block !== nil)) { - } else { - return $send(self, 'to_enum', ["each_entry"].concat(Opal.to_a(data)), ($$32 = function(){var self = $$32.$$s == null ? this : $$32.$$s; + if (!(block !== nil)) { + return $send(self, 'to_enum', ["each_entry"].concat($to_a(data)), function $$21(){var self = $$21.$$s == null ? this : $$21.$$s; - return self.$enumerator_size()}, $$32.$$s = self, $$32.$$arity = 0, $$32)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; self.$each.$$p = function() { - var item = $$($nesting, 'Opal').$destructure(arguments); + var item = $Opal.$destructure(arguments); - Opal.yield1(block, item); + $yield1(block, item); } self.$each.apply(self, data); return self; ; - }, $Enumerable_each_entry$31.$$arity = -1); + }, -1); - Opal.def(self, '$each_slice', $Enumerable_each_slice$33 = function $$each_slice(n) { - var $iter = $Enumerable_each_slice$33.$$p, block = $iter || nil, $$34, self = this; + $def(self, '$each_slice', function $$each_slice(n) { + var block = $$each_slice.$$p || nil, self = this; - if ($iter) $Enumerable_each_slice$33.$$p = null; - + delete $$each_slice.$$p; - if ($iter) $Enumerable_each_slice$33.$$p = null;; - n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); + ; + n = $coerce_to(n, $$$('Integer'), 'to_int'); if ($truthy(n <= 0)) { - self.$raise($$($nesting, 'ArgumentError'), "invalid slice size")}; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_slice", n], ($$34 = function(){var self = $$34.$$s == null ? this : $$34.$$s; + $Kernel.$raise($$$('ArgumentError'), "invalid slice size") + }; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each_slice", n], function $$22(){var self = $$22.$$s == null ? this : $$22.$$s; if ($truthy(self['$respond_to?']("size"))) { return $rb_divide(self.$size(), n).$ceil() } else { return nil - }}, $$34.$$s = self, $$34.$$arity = 0, $$34)) + }}, {$$arity: 0, $$s: self}) }; var slice = [] self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments); + var param = $Opal.$destructure(arguments); slice.push(param); if (slice.length === n) { - Opal.yield1(block, slice); + $yield1(block, slice); slice = []; } }; @@ -10032,34 +9912,32 @@ Opal.modules["corelib/enumerable"] = function(Opal) { // our "last" group, if smaller than n then won't have been yielded if (slice.length > 0) { - Opal.yield1(block, slice); + $yield1(block, slice); } ; - return nil; - }, $Enumerable_each_slice$33.$$arity = 1); + return self; + }, 1); - Opal.def(self, '$each_with_index', $Enumerable_each_with_index$35 = function $$each_with_index($a) { - var $iter = $Enumerable_each_with_index$35.$$p, block = $iter || nil, $post_args, args, $$36, self = this; + $def(self, '$each_with_index', function $$each_with_index($a) { + var block = $$each_with_index.$$p || nil, $post_args, args, self = this; - if ($iter) $Enumerable_each_with_index$35.$$p = null; + delete $$each_with_index.$$p; + ; - if ($iter) $Enumerable_each_with_index$35.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_with_index"].concat(Opal.to_a(args)), ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each_with_index"].concat($to_a(args)), function $$23(){var self = $$23.$$s == null ? this : $$23.$$s; - return self.$enumerator_size()}, $$36.$$s = self, $$36.$$arity = 0, $$36)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; var index = 0; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments); + var param = $Opal.$destructure(arguments); block(param, index); @@ -10069,24 +9947,22 @@ Opal.modules["corelib/enumerable"] = function(Opal) { self.$each.apply(self, args); ; return self; - }, $Enumerable_each_with_index$35.$$arity = -1); + }, -1); - Opal.def(self, '$each_with_object', $Enumerable_each_with_object$37 = function $$each_with_object(object) { - var $iter = $Enumerable_each_with_object$37.$$p, block = $iter || nil, $$38, self = this; + $def(self, '$each_with_object', function $$each_with_object(object) { + var block = $$each_with_object.$$p || nil, self = this; - if ($iter) $Enumerable_each_with_object$37.$$p = null; + delete $$each_with_object.$$p; - - if ($iter) $Enumerable_each_with_object$37.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_with_object", object], ($$38 = function(){var self = $$38.$$s == null ? this : $$38.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each_with_object", object], function $$24(){var self = $$24.$$s == null ? this : $$24.$$s; - return self.$enumerator_size()}, $$38.$$s = self, $$38.$$arity = 0, $$38)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments); + var param = $Opal.$destructure(arguments); block(param, object); }; @@ -10094,65 +9970,60 @@ Opal.modules["corelib/enumerable"] = function(Opal) { self.$each(); ; return object; - }, $Enumerable_each_with_object$37.$$arity = 1); + }, 1); - Opal.def(self, '$entries', $Enumerable_entries$39 = function $$entries($a) { + $def(self, '$entries', function $$entries($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; var result = []; self.$each.$$p = function() { - result.push($$($nesting, 'Opal').$destructure(arguments)); + result.push($Opal.$destructure(arguments)); }; self.$each.apply(self, args); return result; ; - }, $Enumerable_entries$39.$$arity = -1); + }, -1); - Opal.def(self, '$filter_map', $Enumerable_filter_map$40 = function $$filter_map() { - var $iter = $Enumerable_filter_map$40.$$p, block = $iter || nil, $$41, self = this; + $def(self, '$filter_map', function $$filter_map() { + var block = $$filter_map.$$p || nil, self = this; - if ($iter) $Enumerable_filter_map$40.$$p = null; + delete $$filter_map.$$p; - - if ($iter) $Enumerable_filter_map$40.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["filter_map"], ($$41 = function(){var self = $$41.$$s == null ? this : $$41.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["filter_map"], function $$25(){var self = $$25.$$s == null ? this : $$25.$$s; - return self.$enumerator_size()}, $$41.$$s = self, $$41.$$arity = 0, $$41)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; return $send($send(self, 'map', [], block.$to_proc()), 'select', [], "itself".$to_proc()); - }, $Enumerable_filter_map$40.$$arity = 0); - $alias(self, "find", "detect"); + }, 0); - Opal.def(self, '$find_all', $Enumerable_find_all$42 = function $$find_all() { - var $iter = $Enumerable_find_all$42.$$p, block = $iter || nil, $$43, self = this; + $def(self, '$find_all', function $$find_all() { + var block = $$find_all.$$p || nil, self = this; - if ($iter) $Enumerable_find_all$42.$$p = null; - + delete $$find_all.$$p; - if ($iter) $Enumerable_find_all$42.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["find_all"], ($$43 = function(){var self = $$43.$$s == null ? this : $$43.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["find_all"], function $$26(){var self = $$26.$$s == null ? this : $$26.$$s; - return self.$enumerator_size()}, $$43.$$s = self, $$43.$$arity = 0, $$43)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; var result = []; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); if ($truthy(value)) { result.push(param); @@ -10163,20 +10034,19 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result; ; - }, $Enumerable_find_all$42.$$arity = 0); - $alias(self, "filter", "find_all"); + }, 0); - Opal.def(self, '$find_index', $Enumerable_find_index$44 = function $$find_index(object) {try { + $def(self, '$find_index', function $$find_index(object) {try { - var $iter = $Enumerable_find_index$44.$$p, block = $iter || nil, $$45, $$46, self = this, index = nil; + var block = $$find_index.$$p || nil, self = this, index = nil; - if ($iter) $Enumerable_find_index$44.$$p = null; + delete $$find_index.$$p; - - if ($iter) $Enumerable_find_index$44.$$p = null;; + ; ; if ($truthy(object === undefined && block === nil)) { - return self.$enum_for("find_index")}; + return self.$enum_for("find_index") + }; if (object != null && block !== nil) { self.$warn("warning: given block not used") @@ -10184,164 +10054,157 @@ Opal.modules["corelib/enumerable"] = function(Opal) { ; index = 0; if ($truthy(object != null)) { - $send(self, 'each', [], ($$45 = function($a){var self = $$45.$$s == null ? this : $$45.$$s, $post_args, value; + $send(self, 'each', [], function $$27($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($$($nesting, 'Opal').$destructure(value)['$=='](object)) { - Opal.ret(index)}; - return index += 1;;}, $$45.$$s = self, $$45.$$arity = -1, $$45)) + if ($eqeq($Opal.$destructure(value), object)) { + Opal.ret(index) + }; + return index += 1;;}, -1) } else { - $send(self, 'each', [], ($$46 = function($a){var self = $$46.$$s == null ? this : $$46.$$s, $post_args, value; + $send(self, 'each', [], function $$28($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { - Opal.ret(index)}; - return index += 1;;}, $$46.$$s = self, $$46.$$arity = -1, $$46)) + if ($truthy(Opal.yieldX(block, $to_a(value)))) { + Opal.ret(index) + }; + return index += 1;;}, -1) }; return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_find_index$44.$$arity = -1); + }, -1); - Opal.def(self, '$first', $Enumerable_first$47 = function $$first(number) {try { + $def(self, '$first', function $$first(number) {try { - var $$48, $$49, self = this, result = nil, current = nil; + var self = this, result = nil, current = nil; ; if ($truthy(number === undefined)) { - return $send(self, 'each', [], ($$48 = function(value){var self = $$48.$$s == null ? this : $$48.$$s; - + return $send(self, 'each', [], function $$29(value){ - if (value == null) { - value = nil; - }; - Opal.ret(value);}, $$48.$$s = self, $$48.$$arity = 1, $$48)) + if (value == null) value = nil;; + Opal.ret(value);}, 1) } else { result = []; - number = $coerce_to(number, $$($nesting, 'Integer'), 'to_int'); + number = $coerce_to(number, $$$('Integer'), 'to_int'); if ($truthy(number < 0)) { - self.$raise($$($nesting, 'ArgumentError'), "attempt to take negative size")}; + $Kernel.$raise($$$('ArgumentError'), "attempt to take negative size") + }; if ($truthy(number == 0)) { - return []}; + return [] + }; current = 0; - $send(self, 'each', [], ($$49 = function($a){var self = $$49.$$s == null ? this : $$49.$$s, $post_args, args; + $send(self, 'each', [], function $$30($a){var $post_args, args; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - result.push($$($nesting, 'Opal').$destructure(args)); + result.push($Opal.$destructure(args)); if ($truthy(number <= ++current)) { Opal.ret(result) } else { return nil - };}, $$49.$$s = self, $$49.$$arity = -1, $$49)); + };}, -1); return result; }; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_first$47.$$arity = -1); - $alias(self, "flat_map", "collect_concat"); + }, -1); - Opal.def(self, '$grep', $Enumerable_grep$50 = function $$grep(pattern) { - var $iter = $Enumerable_grep$50.$$p, block = $iter || nil, $$51, self = this, result = nil; + $def(self, '$grep', function $$grep(pattern) { + var block = $$grep.$$p || nil, self = this, result = nil; - if ($iter) $Enumerable_grep$50.$$p = null; + delete $$grep.$$p; - - if ($iter) $Enumerable_grep$50.$$p = null;; + ; result = []; - $send(self, 'each', [], ($$51 = function($a){var self = $$51.$$s == null ? this : $$51.$$s, $post_args, value, cmp = nil; + $send(self, 'each', [], function $$31($a){var $post_args, value, cmp = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; cmp = comparableForPattern(value); - if ($truthy($send(pattern, '__send__', ["==="].concat(Opal.to_a(cmp))))) { - } else { + if (!$truthy($send(pattern, '__send__', ["==="].concat($to_a(cmp))))) { return nil; }; if ((block !== nil)) { if ($truthy($rb_gt(value.$length(), 1))) { - value = [value]}; - value = Opal.yieldX(block, Opal.to_a(value)); + value = [value] + }; + value = Opal.yieldX(block, $to_a(value)); } else if ($truthy($rb_le(value.$length(), 1))) { - value = value['$[]'](0)}; - return result.$push(value);}, $$51.$$s = self, $$51.$$arity = -1, $$51)); + value = value['$[]'](0) + }; + return result.$push(value);}, -1); return result; - }, $Enumerable_grep$50.$$arity = 1); + }, 1); - Opal.def(self, '$grep_v', $Enumerable_grep_v$52 = function $$grep_v(pattern) { - var $iter = $Enumerable_grep_v$52.$$p, block = $iter || nil, $$53, self = this, result = nil; + $def(self, '$grep_v', function $$grep_v(pattern) { + var block = $$grep_v.$$p || nil, self = this, result = nil; - if ($iter) $Enumerable_grep_v$52.$$p = null; - + delete $$grep_v.$$p; - if ($iter) $Enumerable_grep_v$52.$$p = null;; + ; result = []; - $send(self, 'each', [], ($$53 = function($a){var self = $$53.$$s == null ? this : $$53.$$s, $post_args, value, cmp = nil; + $send(self, 'each', [], function $$32($a){var $post_args, value, cmp = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; cmp = comparableForPattern(value); - if ($truthy($send(pattern, '__send__', ["==="].concat(Opal.to_a(cmp))))) { - return nil;}; + if ($truthy($send(pattern, '__send__', ["==="].concat($to_a(cmp))))) { + return nil; + }; if ((block !== nil)) { if ($truthy($rb_gt(value.$length(), 1))) { - value = [value]}; - value = Opal.yieldX(block, Opal.to_a(value)); + value = [value] + }; + value = Opal.yieldX(block, $to_a(value)); } else if ($truthy($rb_le(value.$length(), 1))) { - value = value['$[]'](0)}; - return result.$push(value);}, $$53.$$s = self, $$53.$$arity = -1, $$53)); + value = value['$[]'](0) + }; + return result.$push(value);}, -1); return result; - }, $Enumerable_grep_v$52.$$arity = 1); + }, 1); - Opal.def(self, '$group_by', $Enumerable_group_by$54 = function $$group_by() { - var $iter = $Enumerable_group_by$54.$$p, block = $iter || nil, $$55, self = this, hash = nil, $ret_or_2 = nil, $writer = nil; + $def(self, '$group_by', function $$group_by() { + var block = $$group_by.$$p || nil, self = this, hash = nil, $ret_or_1 = nil, $writer = nil; - if ($iter) $Enumerable_group_by$54.$$p = null; - + delete $$group_by.$$p; - if ($iter) $Enumerable_group_by$54.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["group_by"], ($$55 = function(){var self = $$55.$$s == null ? this : $$55.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["group_by"], function $$33(){var self = $$33.$$s == null ? this : $$33.$$s; - return self.$enumerator_size()}, $$55.$$s = self, $$55.$$arity = 0, $$55)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; hash = $hash2([], {}); var result; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); - (function() {if ($truthy(($ret_or_2 = hash['$[]'](value)))) { - return $ret_or_2 - } else { - - $writer = [value, []]; - $send(hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }; return nil; })()['$<<'](param); + ($truthy(($ret_or_1 = hash['$[]'](value))) ? ($ret_or_1) : ((($writer = [value, []]), $send(hash, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)])))['$<<'](param); } self.$each(); @@ -10351,36 +10214,35 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } ; return hash; - }, $Enumerable_group_by$54.$$arity = 0); + }, 0); - Opal.def(self, '$include?', $Enumerable_include$ques$56 = function(obj) {try { + $def(self, '$include?', function $Enumerable_include$ques$34(obj) {try { - var $$57, self = this; + var self = this; - $send(self, 'each', [], ($$57 = function($a){var self = $$57.$$s == null ? this : $$57.$$s, $post_args, args; + $send(self, 'each', [], function $$35($a){var $post_args, args; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - if ($$($nesting, 'Opal').$destructure(args)['$=='](obj)) { + if ($eqeq($Opal.$destructure(args), obj)) { Opal.ret(true) } else { return nil - };}, $$57.$$s = self, $$57.$$arity = -1, $$57)); + };}, -1); return false; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_include$ques$56.$$arity = 1); + }, 1); - Opal.def(self, '$inject', $Enumerable_inject$58 = function $$inject(object, sym) { - var $iter = $Enumerable_inject$58.$$p, block = $iter || nil, self = this; + $def(self, '$inject', function $$inject(object, sym) { + var block = $$inject.$$p || nil, self = this; - if ($iter) $Enumerable_inject$58.$$p = null; + delete $$inject.$$p; - - if ($iter) $Enumerable_inject$58.$$p = null;; + ; ; ; @@ -10388,22 +10250,22 @@ Opal.modules["corelib/enumerable"] = function(Opal) { if (block !== nil && sym === undefined) { self.$each.$$p = function() { - var value = $$($nesting, 'Opal').$destructure(arguments); + var value = $Opal.$destructure(arguments); if (result === undefined) { result = value; return; } - value = Opal.yieldX(block, [result, value]); + value = $yieldX(block, [result, value]); result = value; }; } else { if (sym === undefined) { - if (!$$($nesting, 'Symbol')['$==='](object)) { - self.$raise($$($nesting, 'TypeError'), "" + (object.$inspect()) + " is not a Symbol"); + if (!$$$('Symbol')['$==='](object)) { + $Kernel.$raise($$$('TypeError'), "" + (object.$inspect()) + " is not a Symbol"); } sym = object; @@ -10411,7 +10273,7 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } self.$each.$$p = function() { - var value = $$($nesting, 'Opal').$destructure(arguments); + var value = $Opal.$destructure(arguments); if (result === undefined) { result = value; @@ -10426,26 +10288,24 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result == undefined ? nil : result; ; - }, $Enumerable_inject$58.$$arity = -1); + }, -1); - Opal.def(self, '$lazy', $Enumerable_lazy$59 = function $$lazy() { - var $$60, self = this; + $def(self, '$lazy', function $$lazy() { + var self = this; - return $send($$$($$($nesting, 'Enumerator'), 'Lazy'), 'new', [self, self.$enumerator_size()], ($$60 = function(enum$, $a){var self = $$60.$$s == null ? this : $$60.$$s, $post_args, args; + return $send($$$($$$('Enumerator'), 'Lazy'), 'new', [self, self.$enumerator_size()], function $$36(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - return $send(enum$, 'yield', Opal.to_a(args));}, $$60.$$s = self, $$60.$$arity = -2, $$60)) - }, $Enumerable_lazy$59.$$arity = 0); + return $send(enum$, 'yield', $to_a(args));}, -2) + }, 0); - Opal.def(self, '$enumerator_size', $Enumerable_enumerator_size$61 = function $$enumerator_size() { + $def(self, '$enumerator_size', function $$enumerator_size() { var self = this; if ($truthy(self['$respond_to?']("size"))) { @@ -10453,23 +10313,21 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } else { return nil } - }, $Enumerable_enumerator_size$61.$$arity = 0); - $alias(self, "map", "collect"); + }, 0); - Opal.def(self, '$max', $Enumerable_max$62 = function $$max(n) { - var $iter = $Enumerable_max$62.$$p, block = $iter || nil, self = this; + $def(self, '$max', function $$max(n) { + var block = $$max.$$p || nil, self = this; - if ($iter) $Enumerable_max$62.$$p = null; - + delete $$max.$$p; - if ($iter) $Enumerable_max$62.$$p = null;; + ; ; if (n === undefined || n === nil) { var result, value; self.$each.$$p = function() { - var item = $$($nesting, 'Opal').$destructure(arguments); + var item = $Opal.$destructure(arguments); if (result === undefined) { result = item; @@ -10477,13 +10335,13 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } if (block !== nil) { - value = Opal.yieldX(block, [item, result]); + value = $yieldX(block, [item, result]); } else { value = (item)['$<=>'](result); } if (value === nil) { - self.$raise($$($nesting, 'ArgumentError'), "comparison failed"); + $Kernel.$raise($$$('ArgumentError'), "comparison failed"); } if (value > 0) { @@ -10500,30 +10358,25 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } } - n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); + n = $coerce_to(n, $$$('Integer'), 'to_int'); ; return $send(self, 'sort', [], block.$to_proc()).$reverse().$first(n); - }, $Enumerable_max$62.$$arity = -1); + }, -1); - Opal.def(self, '$max_by', $Enumerable_max_by$63 = function $$max_by(n) { - var $iter = $Enumerable_max_by$63.$$p, block = $iter || nil, $$64, self = this; + $def(self, '$max_by', function $$max_by(n) { + var block = $$max_by.$$p || nil, self = this; - if ($iter) $Enumerable_max_by$63.$$p = null; - + delete $$max_by.$$p; - if ($iter) $Enumerable_max_by$63.$$p = null;; + ; - if (n == null) { - n = nil; - }; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["max_by", n], ($$64 = function(){var self = $$64.$$s == null ? this : $$64.$$s; + if (n == null) n = nil;; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["max_by", n], function $$37(){var self = $$37.$$s == null ? this : $$37.$$s; - return self.$enumerator_size()}, $$64.$$s = self, $$64.$$arity = 0, $$64)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; - if ($truthy(n['$nil?']())) { - } else { + if (!$truthy(n['$nil?']())) { return $send(self, 'sort_by', [], block.$to_proc()).$reverse().$take(n) }; @@ -10531,8 +10384,8 @@ Opal.modules["corelib/enumerable"] = function(Opal) { by; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); if (result === undefined) { result = param; @@ -10550,43 +10403,35 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result === undefined ? nil : result; ; - }, $Enumerable_max_by$63.$$arity = -1); - $alias(self, "member?", "include?"); + }, -1); - Opal.def(self, '$min', $Enumerable_min$65 = function $$min(n) { - var $iter = $Enumerable_min$65.$$p, block = $iter || nil, $$66, self = this; + $def(self, '$min', function $$min(n) { + var block = $$min.$$p || nil, self = this; - if ($iter) $Enumerable_min$65.$$p = null; + delete $$min.$$p; + ; - if ($iter) $Enumerable_min$65.$$p = null;; - - if (n == null) { - n = nil; - }; - if ($truthy(n['$nil?']())) { - } else if ((block !== nil)) { - return $send(self, 'sort', [], ($$66 = function(a, b){var self = $$66.$$s == null ? this : $$66.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return Opal.yieldX(block, [a, b]);;}, $$66.$$s = self, $$66.$$arity = 2, $$66)).$take(n) - } else { - return self.$sort().$take(n) + if (n == null) n = nil;; + if (!$truthy(n['$nil?']())) { + if ((block !== nil)) { + return $send(self, 'sort', [], function $$38(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return Opal.yieldX(block, [a, b]);;}, 2).$take(n) + } else { + return self.$sort().$take(n) + } }; var result; if (block !== nil) { self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments); + var param = $Opal.$destructure(arguments); if (result === undefined) { result = param; @@ -10596,7 +10441,7 @@ Opal.modules["corelib/enumerable"] = function(Opal) { var value = block(param, result); if (value === nil) { - self.$raise($$($nesting, 'ArgumentError'), "comparison failed"); + $Kernel.$raise($$$('ArgumentError'), "comparison failed"); } if (value < 0) { @@ -10606,14 +10451,14 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } else { self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments); + var param = $Opal.$destructure(arguments); if (result === undefined) { result = param; return; } - if ($$($nesting, 'Opal').$compare(param, result) < 0) { + if ($Opal.$compare(param, result) < 0) { result = param; } }; @@ -10623,27 +10468,22 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result === undefined ? nil : result; ; - }, $Enumerable_min$65.$$arity = -1); + }, -1); - Opal.def(self, '$min_by', $Enumerable_min_by$67 = function $$min_by(n) { - var $iter = $Enumerable_min_by$67.$$p, block = $iter || nil, $$68, self = this; + $def(self, '$min_by', function $$min_by(n) { + var block = $$min_by.$$p || nil, self = this; - if ($iter) $Enumerable_min_by$67.$$p = null; - + delete $$min_by.$$p; - if ($iter) $Enumerable_min_by$67.$$p = null;; + ; - if (n == null) { - n = nil; - }; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["min_by", n], ($$68 = function(){var self = $$68.$$s == null ? this : $$68.$$s; + if (n == null) n = nil;; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["min_by", n], function $$39(){var self = $$39.$$s == null ? this : $$39.$$s; - return self.$enumerator_size()}, $$68.$$s = self, $$68.$$arity = 0, $$68)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; - if ($truthy(n['$nil?']())) { - } else { + if (!$truthy(n['$nil?']())) { return $send(self, 'sort_by', [], block.$to_proc()).$take(n) }; @@ -10651,8 +10491,8 @@ Opal.modules["corelib/enumerable"] = function(Opal) { by; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); if (result === undefined) { result = param; @@ -10670,36 +10510,26 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result === undefined ? nil : result; ; - }, $Enumerable_min_by$67.$$arity = -1); + }, -1); - Opal.def(self, '$minmax', $Enumerable_minmax$69 = function $$minmax() { - var $iter = $Enumerable_minmax$69.$$p, block = $iter || nil, $$70, self = this, $ret_or_3 = nil; + $def(self, '$minmax', function $$minmax() { + var block = $$minmax.$$p || nil, self = this, $ret_or_1 = nil; - if ($iter) $Enumerable_minmax$69.$$p = null; - + delete $$minmax.$$p; - if ($iter) $Enumerable_minmax$69.$$p = null;; - block = (function() {if ($truthy(($ret_or_3 = block))) { - return $ret_or_3 - } else { - return $send(self, 'proc', [], ($$70 = function(a, b){var self = $$70.$$s == null ? this : $$70.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a['$<=>'](b);}, $$70.$$s = self, $$70.$$arity = 2, $$70)) - }; return nil; })(); + ; + block = ($truthy(($ret_or_1 = block)) ? ($ret_or_1) : ($send($Kernel, 'proc', [], function $$40(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a['$<=>'](b);}, 2))); var min = nil, max = nil, first_time = true; self.$each.$$p = function() { - var element = $$($nesting, 'Opal').$destructure(arguments); + var element = $Opal.$destructure(arguments); if (first_time) { min = max = element; first_time = false; @@ -10707,7 +10537,7 @@ Opal.modules["corelib/enumerable"] = function(Opal) { var min_cmp = block.$call(min, element); if (min_cmp === nil) { - self.$raise($$($nesting, 'ArgumentError'), "comparison failed") + $Kernel.$raise($$$('ArgumentError'), "comparison failed") } else if (min_cmp > 0) { min = element; } @@ -10715,7 +10545,7 @@ Opal.modules["corelib/enumerable"] = function(Opal) { var max_cmp = block.$call(max, element); if (max_cmp === nil) { - self.$raise($$($nesting, 'ArgumentError'), "comparison failed") + $Kernel.$raise($$$('ArgumentError'), "comparison failed") } else if (max_cmp < 0) { max = element; } @@ -10726,20 +10556,18 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return [min, max]; ; - }, $Enumerable_minmax$69.$$arity = 0); + }, 0); - Opal.def(self, '$minmax_by', $Enumerable_minmax_by$71 = function $$minmax_by() { - var $iter = $Enumerable_minmax_by$71.$$p, block = $iter || nil, $$72, self = this; + $def(self, '$minmax_by', function $$minmax_by() { + var block = $$minmax_by.$$p || nil, self = this; - if ($iter) $Enumerable_minmax_by$71.$$p = null; - + delete $$minmax_by.$$p; - if ($iter) $Enumerable_minmax_by$71.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["minmax_by"], ($$72 = function(){var self = $$72.$$s == null ? this : $$72.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["minmax_by"], function $$41(){var self = $$41.$$s == null ? this : $$41.$$s; - return self.$enumerator_size()}, $$72.$$s = self, $$72.$$arity = 0, $$72)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; var min_result = nil, @@ -10748,8 +10576,8 @@ Opal.modules["corelib/enumerable"] = function(Opal) { max_by; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); if ((min_by === undefined) || (value)['$<=>'](min_by) < 0) { min_result = param; @@ -10766,83 +10594,81 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return [min_result, max_result]; ; - }, $Enumerable_minmax_by$71.$$arity = 0); + }, 0); - Opal.def(self, '$none?', $Enumerable_none$ques$73 = function(pattern) {try { + $def(self, '$none?', function $Enumerable_none$ques$42(pattern) {try { - var $iter = $Enumerable_none$ques$73.$$p, block = $iter || nil, $$74, $$75, $$76, self = this; + var block = $Enumerable_none$ques$42.$$p || nil, self = this; - if ($iter) $Enumerable_none$ques$73.$$p = null; - + delete $Enumerable_none$ques$42.$$p; - if ($iter) $Enumerable_none$ques$73.$$p = null;; + ; ; if ($truthy(pattern !== undefined)) { - $send(self, 'each', [], ($$74 = function($a){var self = $$74.$$s == null ? this : $$74.$$s, $post_args, value, comparable = nil; + $send(self, 'each', [], function $$43($a){var $post_args, value, comparable = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; comparable = comparableForPattern(value); - if ($truthy($send(pattern, 'public_send', ["==="].concat(Opal.to_a(comparable))))) { + if ($truthy($send(pattern, 'public_send', ["==="].concat($to_a(comparable))))) { Opal.ret(false) } else { return nil - };}, $$74.$$s = self, $$74.$$arity = -1, $$74)) + };}, -1) } else if ((block !== nil)) { - $send(self, 'each', [], ($$75 = function($a){var self = $$75.$$s == null ? this : $$75.$$s, $post_args, value; + $send(self, 'each', [], function $$44($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { + if ($truthy(Opal.yieldX(block, $to_a(value)))) { Opal.ret(false) } else { return nil - };}, $$75.$$s = self, $$75.$$arity = -1, $$75)) + };}, -1) } else { - $send(self, 'each', [], ($$76 = function($a){var self = $$76.$$s == null ? this : $$76.$$s, $post_args, value, item = nil; + $send(self, 'each', [], function $$45($a){var $post_args, value, item = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - item = $$($nesting, 'Opal').$destructure(value); + item = $Opal.$destructure(value); if ($truthy(item)) { Opal.ret(false) } else { return nil - };}, $$76.$$s = self, $$76.$$arity = -1, $$76)) + };}, -1) }; return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_none$ques$73.$$arity = -1); + }, -1); - Opal.def(self, '$one?', $Enumerable_one$ques$77 = function(pattern) {try { + $def(self, '$one?', function $Enumerable_one$ques$46(pattern) {try { - var $iter = $Enumerable_one$ques$77.$$p, block = $iter || nil, $$78, $$79, $$80, self = this, count = nil; + var block = $Enumerable_one$ques$46.$$p || nil, self = this, count = nil; - if ($iter) $Enumerable_one$ques$77.$$p = null; - + delete $Enumerable_one$ques$46.$$p; - if ($iter) $Enumerable_one$ques$77.$$p = null;; + ; ; count = 0; if ($truthy(pattern !== undefined)) { - $send(self, 'each', [], ($$78 = function($a){var self = $$78.$$s == null ? this : $$78.$$s, $post_args, value, comparable = nil; + $send(self, 'each', [], function $$47($a){var $post_args, value, comparable = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; comparable = comparableForPattern(value); - if ($truthy($send(pattern, 'public_send', ["==="].concat(Opal.to_a(comparable))))) { + if ($truthy($send(pattern, 'public_send', ["==="].concat($to_a(comparable))))) { count = $rb_plus(count, 1); if ($truthy($rb_gt(count, 1))) { @@ -10852,17 +10678,16 @@ Opal.modules["corelib/enumerable"] = function(Opal) { }; } else { return nil - };}, $$78.$$s = self, $$78.$$arity = -1, $$78)) + };}, -1) } else if ((block !== nil)) { - $send(self, 'each', [], ($$79 = function($a){var self = $$79.$$s == null ? this : $$79.$$s, $post_args, value; + $send(self, 'each', [], function $$48($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { - } else { + if (!$truthy(Opal.yieldX(block, $to_a(value)))) { return nil; }; count = $rb_plus(count, 1); @@ -10870,17 +10695,16 @@ Opal.modules["corelib/enumerable"] = function(Opal) { Opal.ret(false) } else { return nil - };}, $$79.$$s = self, $$79.$$arity = -1, $$79)) + };}, -1) } else { - $send(self, 'each', [], ($$80 = function($a){var self = $$80.$$s == null ? this : $$80.$$s, $post_args, value; + $send(self, 'each', [], function $$49($a){var $post_args, value; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); value = $post_args;; - if ($truthy($$($nesting, 'Opal').$destructure(value))) { - } else { + if (!$truthy($Opal.$destructure(value))) { return nil; }; count = $rb_plus(count, 1); @@ -10888,31 +10712,29 @@ Opal.modules["corelib/enumerable"] = function(Opal) { Opal.ret(false) } else { return nil - };}, $$80.$$s = self, $$80.$$arity = -1, $$80)) + };}, -1) }; return count['$=='](1); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_one$ques$77.$$arity = -1); + }, -1); - Opal.def(self, '$partition', $Enumerable_partition$81 = function $$partition() { - var $iter = $Enumerable_partition$81.$$p, block = $iter || nil, $$82, self = this; + $def(self, '$partition', function $$partition() { + var block = $$partition.$$p || nil, self = this; - if ($iter) $Enumerable_partition$81.$$p = null; - + delete $$partition.$$p; - if ($iter) $Enumerable_partition$81.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["partition"], ($$82 = function(){var self = $$82.$$s == null ? this : $$82.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["partition"], function $$50(){var self = $$50.$$s == null ? this : $$50.$$s; - return self.$enumerator_size()}, $$82.$$s = self, $$82.$$arity = 0, $$82)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; var truthy = [], falsy = [], result; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); if ($truthy(value)) { truthy.push(param); @@ -10926,30 +10748,27 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return [truthy, falsy]; ; - }, $Enumerable_partition$81.$$arity = 0); - $alias(self, "reduce", "inject"); + }, 0); - Opal.def(self, '$reject', $Enumerable_reject$83 = function $$reject() { - var $iter = $Enumerable_reject$83.$$p, block = $iter || nil, $$84, self = this; + $def(self, '$reject', function $$reject() { + var block = $$reject.$$p || nil, self = this; - if ($iter) $Enumerable_reject$83.$$p = null; + delete $$reject.$$p; - - if ($iter) $Enumerable_reject$83.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reject"], ($$84 = function(){var self = $$84.$$s == null ? this : $$84.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["reject"], function $$51(){var self = $$51.$$s == null ? this : $$51.$$s; - return self.$enumerator_size()}, $$84.$$s = self, $$84.$$arity = 0, $$84)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; var result = []; self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); - if ($falsy(value)) { + if (!$truthy(value)) { result.push(param); } }; @@ -10958,20 +10777,18 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return result; ; - }, $Enumerable_reject$83.$$arity = 0); + }, 0); - Opal.def(self, '$reverse_each', $Enumerable_reverse_each$85 = function $$reverse_each() { - var $iter = $Enumerable_reverse_each$85.$$p, block = $iter || nil, $$86, self = this; + $def(self, '$reverse_each', function $$reverse_each() { + var block = $$reverse_each.$$p || nil, self = this; - if ($iter) $Enumerable_reverse_each$85.$$p = null; + delete $$reverse_each.$$p; - - if ($iter) $Enumerable_reverse_each$85.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reverse_each"], ($$86 = function(){var self = $$86.$$s == null ? this : $$86.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["reverse_each"], function $$52(){var self = $$52.$$s == null ? this : $$52.$$s; - return self.$enumerator_size()}, $$86.$$s = self, $$86.$$arity = 0, $$86)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; var result = []; @@ -10983,41 +10800,39 @@ Opal.modules["corelib/enumerable"] = function(Opal) { self.$each(); for (var i = result.length - 1; i >= 0; i--) { - Opal.yieldX(block, result[i]); + $yieldX(block, result[i]); } return result; ; - }, $Enumerable_reverse_each$85.$$arity = 0); - $alias(self, "select", "find_all"); + }, 0); - Opal.def(self, '$slice_before', $Enumerable_slice_before$87 = function $$slice_before(pattern) { - var $iter = $Enumerable_slice_before$87.$$p, block = $iter || nil, $$88, self = this; + $def(self, '$slice_before', function $$slice_before(pattern) { + var block = $$slice_before.$$p || nil, self = this; - if ($iter) $Enumerable_slice_before$87.$$p = null; - + delete $$slice_before.$$p; - if ($iter) $Enumerable_slice_before$87.$$p = null;; + ; ; if ($truthy(pattern === undefined && block === nil)) { - self.$raise($$($nesting, 'ArgumentError'), "both pattern and block are given")}; + $Kernel.$raise($$$('ArgumentError'), "both pattern and block are given") + }; if ($truthy(pattern !== undefined && block !== nil || arguments.length > 1)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " expected 1)")}; - return $send($$($nesting, 'Enumerator'), 'new', [], ($$88 = function(e){var self = $$88.$$s == null ? this : $$88.$$s; + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (arguments.length) + " expected 1)") + }; + return $send($$$('Enumerator'), 'new', [], function $$53(e){var self = $$53.$$s == null ? this : $$53.$$s; - if (e == null) { - e = nil; - }; + if (e == null) e = nil;; var slice = []; if (block !== nil) { if (pattern === undefined) { self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = Opal.yield1(block, param); + var param = $Opal.$destructure(arguments), + value = $yield1(block, param); if ($truthy(value) && slice.length > 0) { e['$<<'](slice); @@ -11029,7 +10844,7 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } else { self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), + var param = $Opal.$destructure(arguments), value = block(param, pattern.$dup()); if ($truthy(value) && slice.length > 0) { @@ -11043,7 +10858,7 @@ Opal.modules["corelib/enumerable"] = function(Opal) { } else { self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), + var param = $Opal.$destructure(arguments), value = pattern['$==='](param); if ($truthy(value) && slice.length > 0) { @@ -11060,43 +10875,40 @@ Opal.modules["corelib/enumerable"] = function(Opal) { if (slice.length > 0) { e['$<<'](slice); } - ;}, $$88.$$s = self, $$88.$$arity = 1, $$88)); - }, $Enumerable_slice_before$87.$$arity = -1); + ;}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$slice_after', $Enumerable_slice_after$89 = function $$slice_after(pattern) { - var $iter = $Enumerable_slice_after$89.$$p, block = $iter || nil, $$90, $$91, self = this; + $def(self, '$slice_after', function $$slice_after(pattern) { + var block = $$slice_after.$$p || nil, self = this; - if ($iter) $Enumerable_slice_after$89.$$p = null; + delete $$slice_after.$$p; - - if ($iter) $Enumerable_slice_after$89.$$p = null;; + ; ; if ($truthy(pattern === undefined && block === nil)) { - self.$raise($$($nesting, 'ArgumentError'), "both pattern and block are given")}; + $Kernel.$raise($$$('ArgumentError'), "both pattern and block are given") + }; if ($truthy(pattern !== undefined && block !== nil || arguments.length > 1)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " expected 1)")}; + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (arguments.length) + " expected 1)") + }; if ($truthy(pattern !== undefined)) { - block = $send(self, 'proc', [], ($$90 = function(e){var self = $$90.$$s == null ? this : $$90.$$s; - + block = $send($Kernel, 'proc', [], function $$54(e){ - if (e == null) { - e = nil; - }; - return pattern['$==='](e);}, $$90.$$s = self, $$90.$$arity = 1, $$90))}; - return $send($$($nesting, 'Enumerator'), 'new', [], ($$91 = function(yielder){var self = $$91.$$s == null ? this : $$91.$$s; + if (e == null) e = nil;; + return pattern['$==='](e);}, 1) + }; + return $send($$$('Enumerator'), 'new', [], function $$55(yielder){var self = $$55.$$s == null ? this : $$55.$$s; - if (yielder == null) { - yielder = nil; - }; + if (yielder == null) yielder = nil;; var accumulate; self.$each.$$p = function() { - var element = $$($nesting, 'Opal').$destructure(arguments), - end_chunk = Opal.yield1(block, element); + var element = $Opal.$destructure(arguments), + end_chunk = $yield1(block, element); if (accumulate == null) { accumulate = []; @@ -11116,35 +10928,31 @@ Opal.modules["corelib/enumerable"] = function(Opal) { if (accumulate != null) { yielder.$yield(accumulate); } - ;}, $$91.$$s = self, $$91.$$arity = 1, $$91)); - }, $Enumerable_slice_after$89.$$arity = -1); + ;}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$slice_when', $Enumerable_slice_when$92 = function $$slice_when() { - var $iter = $Enumerable_slice_when$92.$$p, block = $iter || nil, $$93, self = this; + $def(self, '$slice_when', function $$slice_when() { + var block = $$slice_when.$$p || nil, self = this; - if ($iter) $Enumerable_slice_when$92.$$p = null; + delete $$slice_when.$$p; - - if ($iter) $Enumerable_slice_when$92.$$p = null;; - if ((block !== nil)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1)") + ; + if (!(block !== nil)) { + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (0 for 1)") }; - return $send($$($nesting, 'Enumerator'), 'new', [], ($$93 = function(yielder){var self = $$93.$$s == null ? this : $$93.$$s; + return $send($$$('Enumerator'), 'new', [], function $$56(yielder){var self = $$56.$$s == null ? this : $$56.$$s; - if (yielder == null) { - yielder = nil; - }; + if (yielder == null) yielder = nil;; var slice = nil, last_after = nil; self.$each_cons.$$p = function() { - var params = $$($nesting, 'Opal').$destructure(arguments), + var params = $Opal.$destructure(arguments), before = params[0], after = params[1], - match = Opal.yieldX(block, [before, after]); + match = $yieldX(block, [before, after]); last_after = after; @@ -11167,199 +10975,194 @@ Opal.modules["corelib/enumerable"] = function(Opal) { slice.push(last_after); yielder.$yield(slice); } - ;}, $$93.$$s = self, $$93.$$arity = 1, $$93)); - }, $Enumerable_slice_when$92.$$arity = 0); + ;}, {$$arity: 1, $$s: self}); + }, 0); - Opal.def(self, '$sort', $Enumerable_sort$94 = function $$sort() { - var $iter = $Enumerable_sort$94.$$p, block = $iter || nil, $$95, self = this, ary = nil; + $def(self, '$sort', function $$sort() { + var block = $$sort.$$p || nil, self = this, ary = nil; - if ($iter) $Enumerable_sort$94.$$p = null; - + delete $$sort.$$p; - if ($iter) $Enumerable_sort$94.$$p = null;; + ; ary = self.$to_a(); - if ((block !== nil)) { - } else { - block = $lambda(($$95 = function(a, b){var self = $$95.$$s == null ? this : $$95.$$s; - + if (!(block !== nil)) { + block = $lambda(function $$57(a, b){ - if (a == null) { - a = nil; - }; + if (a == null) a = nil;; - if (b == null) { - b = nil; - }; - return a['$<=>'](b);}, $$95.$$s = self, $$95.$$arity = 2, $$95)) + if (b == null) b = nil;; + return a['$<=>'](b);}, 2) }; return $send(ary, 'sort', [], block.$to_proc()); - }, $Enumerable_sort$94.$$arity = 0); + }, 0); - Opal.def(self, '$sort_by', $Enumerable_sort_by$96 = function $$sort_by() { - var $iter = $Enumerable_sort_by$96.$$p, block = $iter || nil, $$97, $$98, $$99, $$100, self = this, dup = nil; + $def(self, '$sort_by', function $$sort_by() { + var block = $$sort_by.$$p || nil, self = this, dup = nil; - if ($iter) $Enumerable_sort_by$96.$$p = null; + delete $$sort_by.$$p; - - if ($iter) $Enumerable_sort_by$96.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["sort_by"], ($$97 = function(){var self = $$97.$$s == null ? this : $$97.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["sort_by"], function $$58(){var self = $$58.$$s == null ? this : $$58.$$s; - return self.$enumerator_size()}, $$97.$$s = self, $$97.$$arity = 0, $$97)) + return self.$enumerator_size()}, {$$arity: 0, $$s: self}) }; - dup = $send(self, 'map', [], ($$98 = function(){var self = $$98.$$s == null ? this : $$98.$$s, arg = nil; + dup = $send(self, 'map', [], function $$59(){var arg = nil; - arg = $$($nesting, 'Opal').$destructure(arguments); - return [Opal.yield1(block, arg), arg];}, $$98.$$s = self, $$98.$$arity = 0, $$98)); - $send(dup, 'sort!', [], ($$99 = function(a, b){var self = $$99.$$s == null ? this : $$99.$$s; - + arg = $Opal.$destructure(arguments); + return [Opal.yield1(block, arg), arg];}, 0); + $send(dup, 'sort!', [], function $$60(a, b){ - if (a == null) { - a = nil; - }; + if (a == null) a = nil;; - if (b == null) { - b = nil; - }; - return (a[0])['$<=>'](b[0]);}, $$99.$$s = self, $$99.$$arity = 2, $$99)); - return $send(dup, 'map!', [], ($$100 = function(i){var self = $$100.$$s == null ? this : $$100.$$s; - + if (b == null) b = nil;; + return (a[0])['$<=>'](b[0]);}, 2); + return $send(dup, 'map!', [], function $$61(i){ - if (i == null) { - i = nil; - }; - return i[1];;}, $$100.$$s = self, $$100.$$arity = 1, $$100)); - }, $Enumerable_sort_by$96.$$arity = 0); + if (i == null) i = nil;; + return i[1];;}, 1); + }, 0); - Opal.def(self, '$sum', $Enumerable_sum$101 = function $$sum(initial) { - var $$102, $iter = $Enumerable_sum$101.$$p, $yield = $iter || nil, self = this, result = nil; + $def(self, '$sum', function $$sum(initial) { + var $yield = $$sum.$$p || nil, self = this, result = nil, compensation = nil; - if ($iter) $Enumerable_sum$101.$$p = null; + delete $$sum.$$p; - if (initial == null) { - initial = 0; - }; + if (initial == null) initial = 0;; result = initial; - $send(self, 'each', [], ($$102 = function($a){var self = $$102.$$s == null ? this : $$102.$$s, $post_args, args, item = nil; + compensation = 0; + $send(self, 'each', [], function $$62($a){var $post_args, args, item = nil, y = nil, t = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - item = (function() {if (($yield !== nil)) { - return Opal.yieldX($yield, Opal.to_a(args)); + item = (($yield !== nil) ? (Opal.yieldX($yield, $to_a(args))) : ($Opal.$destructure(args))); + if (($not([$$$($$$('Float'), 'INFINITY'), $$$($$$('Float'), 'INFINITY')['$-@']()]['$include?'](item)) && ($truthy(item['$respond_to?']("-"))))) { + + y = $rb_minus(item, compensation); + t = $rb_plus(result, y); + compensation = $rb_minus($rb_minus(t, result), y); + return (result = t); } else { - return $$($nesting, 'Opal').$destructure(args) - }; return nil; })(); - return (result = $rb_plus(result, item));}, $$102.$$s = self, $$102.$$arity = -1, $$102)); + return (result = $rb_plus(result, item)) + };}, -1); return result; - }, $Enumerable_sum$101.$$arity = -1); + }, -1); - Opal.def(self, '$take', $Enumerable_take$103 = function $$take(num) { + $def(self, '$take', function $$take(num) { var self = this; return self.$first(num) - }, $Enumerable_take$103.$$arity = 1); + }, 1); - Opal.def(self, '$take_while', $Enumerable_take_while$104 = function $$take_while() {try { + $def(self, '$take_while', function $$take_while() {try { - var $iter = $Enumerable_take_while$104.$$p, block = $iter || nil, $$105, self = this, result = nil; + var block = $$take_while.$$p || nil, self = this, result = nil; - if ($iter) $Enumerable_take_while$104.$$p = null; + delete $$take_while.$$p; - - if ($iter) $Enumerable_take_while$104.$$p = null;; - if ($truthy(block)) { - } else { + ; + if (!$truthy(block)) { return self.$enum_for("take_while") }; result = []; - return $send(self, 'each', [], ($$105 = function($a){var self = $$105.$$s == null ? this : $$105.$$s, $post_args, args, value = nil; + return $send(self, 'each', [], function $$63($a){var $post_args, args, value = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - value = $$($nesting, 'Opal').$destructure(args); - if ($truthy(Opal.yield1(block, value))) { - } else { + value = $Opal.$destructure(args); + if (!$truthy(Opal.yield1(block, value))) { Opal.ret(result) }; - return result.push(value);;}, $$105.$$s = self, $$105.$$arity = -1, $$105)); + return result.push(value);;}, -1); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Enumerable_take_while$104.$$arity = 0); + }, 0); - Opal.def(self, '$uniq', $Enumerable_uniq$106 = function $$uniq() { - var $iter = $Enumerable_uniq$106.$$p, block = $iter || nil, $$107, self = this, hash = nil; + $def(self, '$uniq', function $$uniq() { + var block = $$uniq.$$p || nil, self = this, hash = nil; - if ($iter) $Enumerable_uniq$106.$$p = null; + delete $$uniq.$$p; - - if ($iter) $Enumerable_uniq$106.$$p = null;; + ; hash = $hash2([], {}); - $send(self, 'each', [], ($$107 = function($a){var self = $$107.$$s == null ? this : $$107.$$s, $post_args, args, value = nil, produced = nil, $writer = nil; + $send(self, 'each', [], function $$64($a){var $post_args, args, value = nil, produced = nil, $writer = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - value = $$($nesting, 'Opal').$destructure(args); - produced = (function() {if ((block !== nil)) { - return Opal.yield1(block, value); - } else { - return value - }; return nil; })(); + value = $Opal.$destructure(args); + produced = ((block !== nil) ? (Opal.yield1(block, value)) : (value)); if ($truthy(hash['$key?'](produced))) { return nil } else { $writer = [produced, value]; - $send(hash, '[]=', Opal.to_a($writer)); + $send(hash, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - };}, $$107.$$s = self, $$107.$$arity = -1, $$107)); + };}, -1); return hash.$values(); - }, $Enumerable_uniq$106.$$arity = 0); + }, 0); - Opal.def(self, '$tally', $Enumerable_tally$108 = function $$tally() { - var self = this; + $def(self, '$tally', function $$tally(hash) { + var self = this, out = nil; + + + ; + out = $send($send(self, 'group_by', [], "itself".$to_proc()), 'transform_values', [], "count".$to_proc()); + if ($truthy(hash)) { + + $send(out, 'each', [], function $$65(k, v){var $writer = nil; - return $send($send(self, 'group_by', [], "itself".$to_proc()), 'transform_values', [], "count".$to_proc()) - }, $Enumerable_tally$108.$$arity = 0); - $alias(self, "to_a", "entries"); + + + if (k == null) k = nil;; + + if (v == null) v = nil;; + $writer = [k, $rb_plus(hash.$fetch(k, 0), v)]; + $send(hash, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 2); + return hash; + } else { + return out + }; + }, -1); - Opal.def(self, '$to_h', $Enumerable_to_h$109 = function $$to_h($a) { - var $iter = $Enumerable_to_h$109.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$to_h', function $$to_h($a) { + var block = $$to_h.$$p || nil, $post_args, args, self = this; - if ($iter) $Enumerable_to_h$109.$$p = null; - + delete $$to_h.$$p; - if ($iter) $Enumerable_to_h$109.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ((block !== nil)) { - return $send($send(self, 'map', [], block.$to_proc()), 'to_h', Opal.to_a(args))}; + return $send($send(self, 'map', [], block.$to_proc()), 'to_h', $to_a(args)) + }; var hash = $hash2([], {}); self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments); - var ary = $$($nesting, 'Opal')['$coerce_to?'](param, $$($nesting, 'Array'), "to_ary"), key, val; + var param = $Opal.$destructure(arguments); + var ary = $Opal['$coerce_to?'](param, $$$('Array'), "to_ary"), key, val; if (!ary.$$is_array) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong element type " + ((ary).$class()) + " (expected array)") + $Kernel.$raise($$$('TypeError'), "wrong element type " + ((ary).$class()) + " (expected array)") } if (ary.length !== 2) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong array length (expected 2, was " + ((ary).$length()) + ")") + $Kernel.$raise($$$('ArgumentError'), "wrong array length (expected 2, was " + ((ary).$length()) + ")") } key = ary[0]; val = ary[1]; @@ -11371,246 +11174,402 @@ Opal.modules["corelib/enumerable"] = function(Opal) { return hash; ; - }, $Enumerable_to_h$109.$$arity = -1); - return (Opal.def(self, '$zip', $Enumerable_zip$110 = function $$zip($a) { - var $iter = $Enumerable_zip$110.$$p, block = $iter || nil, $post_args, others, self = this; + }, -1); + + $def(self, '$zip', function $$zip($a) { + var block = $$zip.$$p || nil, $post_args, others, self = this; - if ($iter) $Enumerable_zip$110.$$p = null; - + delete $$zip.$$p; - if ($iter) $Enumerable_zip$110.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); others = $post_args;; - return $send(self.$to_a(), 'zip', Opal.to_a(others)); - }, $Enumerable_zip$110.$$arity = -1), nil) && 'zip'; - })($nesting[0], $nesting) + return $send(self.$to_a(), 'zip', $to_a(others)); + }, -1); + $alias(self, "find", "detect"); + $alias(self, "filter", "find_all"); + $alias(self, "flat_map", "collect_concat"); + $alias(self, "map", "collect"); + $alias(self, "member?", "include?"); + $alias(self, "reduce", "inject"); + $alias(self, "select", "find_all"); + return $alias(self, "to_a", "entries"); + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/enumerator"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $breaker = Opal.breaker, $slice = Opal.slice, $falsy = Opal.falsy, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $send = Opal.send, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super; +Opal.modules["corelib/enumerator/arithmetic_sequence"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $to_a = Opal.to_a, $eqeq = Opal.eqeq, $Kernel = Opal.Kernel, $def = Opal.def, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $rb_le = Opal.rb_le, $rb_ge = Opal.rb_ge, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $eqeqeq = Opal.eqeqeq, $not = Opal.not, $rb_times = Opal.rb_times, $rb_divide = Opal.rb_divide, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$allocate', '$new', '$to_proc', '$!', '$respond_to?', '$nil?', '$empty?', '$+', '$class', '$__send__', '$call', '$enum_for', '$size', '$destructure', '$inspect', '$any?', '$[]', '$raise', '$yield', '$each', '$enumerator_size', '$try_convert', '$<', '$===', '$for']); - - self.$require("corelib/enumerable"); + Opal.add_stubs('is_a?,==,raise,respond_to?,class,attr_reader,begin,end,exclude_end?,>,step,<,<=,>=,-@,_lesser_than_end?,<<,+,-,===,%,_greater_than_begin?,reverse,!,include?,*,to_i,abs,/,hash,inspect'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Enumerator'); - var $nesting = [self].concat($parent_nesting), $Enumerator_for$1, $Enumerator_initialize$2, $Enumerator_each$3, $Enumerator_size$4, $Enumerator_with_index$5, $Enumerator_each_with_index$7, $Enumerator_inspect$9; + var $nesting = [self].concat($parent_nesting); - self.$$prototype.size = self.$$prototype.args = self.$$prototype.object = self.$$prototype.method = nil; - - self.$include($$($nesting, 'Enumerable')); - self.$$prototype.$$is_enumerator = true; - Opal.defs(self, '$for', $Enumerator_for$1 = function(object, $a, $b) { - var $iter = $Enumerator_for$1.$$p, block = $iter || nil, $post_args, method, args, self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ArithmeticSequence'); - if ($iter) $Enumerator_for$1.$$p = null; - - - if ($iter) $Enumerator_for$1.$$p = null;; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.step_arg2 = $proto.receiver_num = $proto.step_arg1 = $proto.step = $proto.range = $proto.topfx = $proto.bypfx = $proto.creation_method = $proto.skipped_arg = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + Opal.prop(self.$$prototype, '$$is_arithmetic_seq', true); + var inf = Infinity; - if ($post_args.length > 0) { - method = $post_args[0]; - $post_args.splice(0, 1); - } - if (method == null) { - method = "each"; - }; + $def(self, '$initialize', function $$initialize(range, step, creation_method) { + var $a, self = this, $ret_or_1 = nil; + + + ; + + if (creation_method == null) creation_method = "step";; + self.creation_method = creation_method; + if ($truthy(range['$is_a?']($$$('Array')))) { + + $a = [].concat($to_a(range)), (self.step_arg1 = ($a[0] == null ? nil : $a[0])), (self.step_arg2 = ($a[1] == null ? nil : $a[1])), (self.topfx = ($a[2] == null ? nil : $a[2])), (self.bypfx = ($a[3] == null ? nil : $a[3])), $a; + self.receiver_num = step; + self.step = 1; + self.range = ($truthy(self.step_arg2) ? (((self.step = self.step_arg2), Opal.Range.$new(self.receiver_num, self.step_arg1, false))) : ($truthy(self.step_arg1) ? (Opal.Range.$new(self.receiver_num, self.step_arg1, false)) : (Opal.Range.$new(self.receiver_num, nil, false)))); + } else { + + if (!$truthy(step)) { + self.skipped_arg = true + }; + $a = [range, ($truthy(($ret_or_1 = step)) ? ($ret_or_1) : (1))], (self.range = $a[0]), (self.step = $a[1]), $a; + }; + self.object = self; + if ($eqeq(self.step, 0)) { + $Kernel.$raise($$('ArgumentError'), "step can't be 0") + }; + if ($truthy(self.step['$respond_to?']("to_int"))) { + return nil + } else { + return $Kernel.$raise($$('ArgumentError'), "" + ("no implicit conversion of " + (self.step.$class()) + " ") + "into Integer") + }; + }, -2); + self.$attr_reader("step"); - args = $post_args;; + $def(self, '$begin', function $$begin() { + var self = this; + + return self.range.$begin() + }, 0); - var obj = self.$allocate(); + $def(self, '$end', function $$end() { + var self = this; - obj.object = object; - obj.size = block; - obj.method = method; - obj.args = args; + return self.range.$end() + }, 0); + + $def(self, '$exclude_end?', function $ArithmeticSequence_exclude_end$ques$1() { + var self = this; - return obj; - ; - }, $Enumerator_for$1.$$arity = -2); - - Opal.def(self, '$initialize', $Enumerator_initialize$2 = function $$initialize($a) { - var $iter = $Enumerator_initialize$2.$$p, block = $iter || nil, $post_args, self = this, $ret_or_1 = nil; + return self.range['$exclude_end?']() + }, 0); + + $def(self, '$_lesser_than_end?', function $ArithmeticSequence__lesser_than_end$ques$2(val) { + var self = this, end_ = nil, $ret_or_1 = nil; - if ($iter) $Enumerator_initialize$2.$$p = null; + + end_ = ($truthy(($ret_or_1 = self.$end())) ? ($ret_or_1) : (inf)); + if ($truthy($rb_gt(self.$step(), 0))) { + if ($truthy(self['$exclude_end?']())) { + return $rb_lt(val, end_) + } else { + return $rb_le(val, end_) + } + } else if ($truthy(self['$exclude_end?']())) { + return $rb_gt(val, end_) + } else { + return $rb_ge(val, end_) + }; + }, 1); + $def(self, '$_greater_than_begin?', function $ArithmeticSequence__greater_than_begin$ques$3(val) { + var self = this, begin_ = nil, $ret_or_1 = nil; + + + begin_ = ($truthy(($ret_or_1 = self.$begin())) ? ($ret_or_1) : ((inf)['$-@']())); + if ($truthy($rb_gt(self.$step(), 0))) { + return $rb_gt(val, begin_) + } else { + return $rb_lt(val, begin_) + }; + }, 1); - if ($iter) $Enumerator_initialize$2.$$p = null;; + $def(self, '$first', function $$first(count) { + var $a, self = this, iter = nil, $ret_or_1 = nil, out = nil; + + + ; + iter = ($truthy(($ret_or_1 = self.$begin())) ? ($ret_or_1) : ((inf)['$-@']())); + if (!$truthy(count)) { + return ($truthy(self['$_lesser_than_end?'](iter)) ? (iter) : (nil)) + }; + out = []; + while ($truthy(($truthy(($ret_or_1 = self['$_lesser_than_end?'](iter))) ? ($rb_gt(count, 0)) : ($ret_or_1)))) { + + out['$<<'](iter); + iter = $rb_plus(iter, self.$step()); + count = $rb_minus(count, 1); + }; + return out; + }, -1); - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - if ($truthy(block)) { + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, $a, self = this, $ret_or_1 = nil, iter = nil; + + delete $$each.$$p; - self.object = $send($$($nesting, 'Generator'), 'new', [], block.$to_proc()); - self.method = "each"; - self.args = []; - self.size = arguments[0] || nil; - if ($truthy((function() {if ($truthy(($ret_or_1 = self.size))) { - return self.size['$respond_to?']("call")['$!']() - } else { - return $ret_or_1 - }; return nil; })())) { - return (self.size = $coerce_to(self.size, $$($nesting, 'Integer'), 'to_int')) + ; + if (!(block !== nil)) { + return self + }; + if ($eqeqeq(nil, ($ret_or_1 = self.$begin()))) { + $Kernel.$raise($$('TypeError'), "nil can't be coerced into Integer") } else { - return nil + nil }; - } else { - - self.object = arguments[0]; - self.method = arguments[1] || "each"; - self.args = $slice.call(arguments, 2); - return (self.size = nil); - }; - }, $Enumerator_initialize$2.$$arity = -1); - - Opal.def(self, '$each', $Enumerator_each$3 = function $$each($a) { - var $iter = $Enumerator_each$3.$$p, block = $iter || nil, $post_args, args, self = this, $ret_or_2 = nil; + iter = ($truthy(($ret_or_1 = self.$begin())) ? ($ret_or_1) : ((inf)['$-@']())); + while ($truthy(self['$_lesser_than_end?'](iter))) { + + Opal.yield1(block, iter); + iter = $rb_plus(iter, self.$step()); + }; + return self; + }, 0); + + $def(self, '$last', function $$last(count) { + var $a, self = this, $ret_or_1 = nil, iter = nil, out = nil; - if ($iter) $Enumerator_each$3.$$p = null; + + ; + if (($eqeqeq(inf, ($ret_or_1 = self.$end())) || ($eqeqeq((inf)['$-@'](), $ret_or_1)))) { + $Kernel.$raise($$$('FloatDomainError'), self.$end()) + } else if ($eqeqeq(nil, $ret_or_1)) { + $Kernel.$raise($$$('RangeError'), "cannot get the last element of endless arithmetic sequence") + } else { + nil + }; + iter = $rb_minus(self.$end(), $rb_minus(self.$end(), self.$begin())['$%'](self.$step())); + if (!$truthy(self['$_lesser_than_end?'](iter))) { + iter = $rb_minus(iter, self.$step()) + }; + if (!$truthy(count)) { + return ($truthy(self['$_greater_than_begin?'](iter)) ? (iter) : (nil)) + }; + out = []; + while ($truthy(($truthy(($ret_or_1 = self['$_greater_than_begin?'](iter))) ? ($rb_gt(count, 0)) : ($ret_or_1)))) { + + out['$<<'](iter); + iter = $rb_minus(iter, self.$step()); + count = $rb_minus(count, 1); + }; + return out.$reverse(); + }, -1); + $def(self, '$size', function $$size() { + var self = this, step_sign = nil, iter = nil; + + + step_sign = ($truthy($rb_gt(self.$step(), 0)) ? (1) : (-1)); + if ($not(self['$_lesser_than_end?'](self.$begin()))) { + return 0 + } else if ($truthy([(inf)['$-@'](), inf]['$include?'](self.$step()))) { + return 1 + } else if (($truthy([$rb_times((inf)['$-@'](), step_sign), nil]['$include?'](self.$begin())) || ($truthy([$rb_times(inf, step_sign), nil]['$include?'](self.$end()))))) { + return inf; + } else { + + iter = $rb_minus(self.$end(), $rb_minus(self.$end(), self.$begin())['$%'](self.$step())); + if (!$truthy(self['$_lesser_than_end?'](iter))) { + iter = $rb_minus(iter, self.$step()) + }; + return $rb_plus($rb_divide($rb_minus(iter, self.$begin()), self.$step()).$abs().$to_i(), 1); + }; + }, 0); - if ($iter) $Enumerator_each$3.$$p = null;; + $def(self, '$==', function $ArithmeticSequence_$eq_eq$4(other) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = ($truthy(($ret_or_4 = self.$class()['$=='](other.$class()))) ? (self.$begin()['$=='](other.$begin())) : ($ret_or_4)))) ? (self.$end()['$=='](other.$end())) : ($ret_or_3)))) ? (self.$step()['$=='](other.$step())) : ($ret_or_2))))) { + return self['$exclude_end?']()['$=='](other['$exclude_end?']()) + } else { + return $ret_or_1 + } + }, 1); - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $def(self, '$hash', function $$hash() { + var self = this; + + return [self.$begin(), self.$end(), self.$step(), self['$exclude_end?']()].$hash() + }, 0); - args = $post_args;; - if ($truthy((function() {if ($truthy(($ret_or_2 = block['$nil?']()))) { - return args['$empty?']() - } else { - return $ret_or_2 - }; return nil; })())) { - return self}; - args = $rb_plus(self.args, args); - if ($truthy(block['$nil?']())) { - return $send(self.$class(), 'new', [self.object, self.method].concat(Opal.to_a(args)))}; - return $send(self.object, '__send__', [self.method].concat(Opal.to_a(args)), block.$to_proc()); - }, $Enumerator_each$3.$$arity = -1); - - Opal.def(self, '$size', $Enumerator_size$4 = function $$size() { - var self = this; + $def(self, '$inspect', function $$inspect() { + var self = this, args = nil; + + if ($truthy(self.receiver_num)) { + + args = ($truthy(self.step_arg2) ? ("(" + (self.topfx) + (self.step_arg1.$inspect()) + ", " + (self.bypfx) + (self.step_arg2.$inspect()) + ")") : ($truthy(self.step_arg1) ? ("(" + (self.topfx) + (self.step_arg1.$inspect()) + ")") : nil)); + return "(" + (self.receiver_num.$inspect()) + "." + (self.creation_method) + (args) + ")"; + } else { + + args = ($truthy(self.skipped_arg) ? (nil) : ("(" + (self.step) + ")")); + return "((" + (self.range.$inspect()) + ")." + (self.creation_method) + (args) + ")"; + } + }, 0); + $alias(self, "===", "=="); + return $alias(self, "eql?", "=="); + })(self, self, $nesting) + })('::', null, $nesting) +}; + +Opal.modules["corelib/enumerator/chain"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus; + + Opal.add_stubs('to_enum,size,each,<<,to_proc,include?,+,reverse_each,respond_to?,rewind,inspect'); + return (function($base, $super) { + var self = $klass($base, $super, 'Enumerator'); - if ($truthy(self.size['$respond_to?']("call"))) { - return $send(self.size, 'call', Opal.to_a(self.args)) - } else { - return self.size - } - }, $Enumerator_size$4.$$arity = 0); - Opal.def(self, '$with_index', $Enumerator_with_index$5 = function $$with_index(offset) { - var $iter = $Enumerator_with_index$5.$$p, block = $iter || nil, $$6, self = this; + return (function($base, $super) { + var self = $klass($base, $super, 'Chain'); - if ($iter) $Enumerator_with_index$5.$$p = null; - + var $proto = self.$$prototype; + + $proto.enums = $proto.iterated = nil; - if ($iter) $Enumerator_with_index$5.$$p = null;; - if (offset == null) { - offset = 0; - }; - offset = (function() {if ($truthy(offset)) { - return $coerce_to(offset, $$($nesting, 'Integer'), 'to_int') - } else { - return 0 - }; return nil; })(); - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["with_index", offset], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, enums, self = this; - return self.$size()}, $$6.$$s = self, $$6.$$arity = 0, $$6)) - }; + + + $post_args = Opal.slice.call(arguments); + + enums = $post_args;; + self.enums = enums; + self.iterated = []; + return (self.object = self); + }, -1); - var result, index = offset; + $def(self, '$each', function $$each($a) { + var block = $$each.$$p || nil, $post_args, args, self = this; - self.$each.$$p = function() { - var param = $$($nesting, 'Opal').$destructure(arguments), - value = block(param, index); + delete $$each.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + if (!(block !== nil)) { + return $send(self, 'to_enum', ["each"].concat($to_a(args)), function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - index++; + return self.$size()}, {$$arity: 0, $$s: self}) + }; + $send(self.enums, 'each', [], function $$2(enum$){var self = $$2.$$s == null ? this : $$2.$$s; + if (self.iterated == null) self.iterated = nil; - return value; - } + + + if (enum$ == null) enum$ = nil;; + self.iterated['$<<'](enum$); + return $send(enum$, 'each', $to_a(args), block.$to_proc());}, {$$arity: 1, $$s: self}); + return self; + }, -1); + + $def(self, '$size', function $$size($a) {try { - return self.$each(); - ; - }, $Enumerator_with_index$5.$$arity = -1); - $alias(self, "with_object", "each_with_object"); - - Opal.def(self, '$each_with_index', $Enumerator_each_with_index$7 = function $$each_with_index() { - var $iter = $Enumerator_each_with_index$7.$$p, block = $iter || nil, $$8, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + var $post_args, args, self = this, accum = nil; - if ($iter) $Enumerator_each_with_index$7.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + accum = 0; + $send(self.enums, 'each', [], function $$3(enum$){var size = nil; + + + + if (enum$ == null) enum$ = nil;; + size = $send(enum$, 'size', $to_a(args)); + if ($truthy([nil, $$$($$$('Float'), 'INFINITY')]['$include?'](size))) { + Opal.ret(size) + }; + return (accum = $rb_plus(accum, size));}, 1); + return accum; + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, -1); - if ($iter) $Enumerator_each_with_index$7.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_with_index"], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + $def(self, '$rewind', function $$rewind() { + var self = this; - return self.$size()}, $$8.$$s = self, $$8.$$arity = 0, $$8)) - }; - $send2(self, $find_super(self, 'each_with_index', $Enumerator_each_with_index$7, false, true), 'each_with_index', $zuper, $iter); - return self.object; - }, $Enumerator_each_with_index$7.$$arity = 0); - - Opal.def(self, '$inspect', $Enumerator_inspect$9 = function $$inspect() { - var self = this, result = nil; + + $send(self.iterated, 'reverse_each', [], function $$4(enum$){ + + + if (enum$ == null) enum$ = nil;; + if ($truthy(enum$['$respond_to?']("rewind"))) { + return enum$.$rewind() + } else { + return nil + };}, 1); + self.iterated = []; + return self; + }, 0); + return $def(self, '$inspect', function $$inspect() { + var self = this; - - result = "" + "#<" + (self.$class()) + ": " + (self.object.$inspect()) + ":" + (self.method); - if ($truthy(self.args['$any?']())) { - result = $rb_plus(result, "" + "(" + (self.args.$inspect()['$[]']($$($nesting, 'Range').$new(1, -2))) + ")")}; - return $rb_plus(result, ">"); - }, $Enumerator_inspect$9.$$arity = 0); - (function($base, $super, $parent_nesting) { + return "#" + }, 0); + })(self, self) + })('::', null) +}; + +Opal.modules["corelib/enumerator/generator"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $breaker = Opal.breaker, $klass = Opal.klass, $truthy = Opal.truthy, $Kernel = Opal.Kernel, $def = Opal.def, $send = Opal.send; + + Opal.add_stubs('include,raise,new,to_proc'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Enumerator'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Generator'); - var $nesting = [self].concat($parent_nesting), $Generator_initialize$10, $Generator_each$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.block = nil; + $proto.block = nil; - self.$include($$($nesting, 'Enumerable')); + self.$include($$$('Enumerable')); - Opal.def(self, '$initialize', $Generator_initialize$10 = function $$initialize() { - var $iter = $Generator_initialize$10.$$p, block = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize() { + var block = $$initialize.$$p || nil, self = this; - if ($iter) $Generator_initialize$10.$$p = null; - + delete $$initialize.$$p; - if ($iter) $Generator_initialize$10.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'LocalJumpError'), "no block given") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('LocalJumpError'), "no block given") }; return (self.block = block); - }, $Generator_initialize$10.$$arity = 0); - return (Opal.def(self, '$each', $Generator_each$11 = function $$each($a) { - var $iter = $Generator_each$11.$$p, block = $iter || nil, $post_args, args, self = this, yielder = nil; + }, 0); + return $def(self, '$each', function $$each($a) { + var block = $$each.$$p || nil, $post_args, args, self = this, yielder = nil; - if ($iter) $Generator_each$11.$$p = null; - + delete $$each.$$p; - if ($iter) $Generator_each$11.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - yielder = $send($$($nesting, 'Yielder'), 'new', [], block.$to_proc()); + yielder = $send($$('Yielder'), 'new', [], block.$to_proc()); try { args.unshift(yielder); @@ -11627,604 +11586,787 @@ Opal.modules["corelib/enumerator"] = function(Opal) { } ; return self; - }, $Generator_each$11.$$arity = -1), nil) && 'each'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Yielder'); - - var $nesting = [self].concat($parent_nesting), $Yielder_initialize$12, $Yielder_yield$13, $Yielder_$lt$lt$14; - - self.$$prototype.block = nil; - - - Opal.def(self, '$initialize', $Yielder_initialize$12 = function $$initialize() { - var $iter = $Yielder_initialize$12.$$p, block = $iter || nil, self = this; + }, -1); + })($nesting[0], null, $nesting) + })($nesting[0], null, $nesting) +}; - if ($iter) $Yielder_initialize$12.$$p = null; - - - if ($iter) $Yielder_initialize$12.$$p = null;; - return (self.block = block); - }, $Yielder_initialize$12.$$arity = 0); - - Opal.def(self, '$yield', $Yielder_yield$13 = function($a) { - var $post_args, values, self = this; +Opal.modules["corelib/enumerator/lazy"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $yield1 = Opal.yield1, $yieldX = Opal.yieldX, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $to_a = Opal.to_a, $defs = Opal.defs, $Kernel = Opal.Kernel, $send = Opal.send, $def = Opal.def, $Opal = Opal.Opal, $rb_lt = Opal.rb_lt, $eqeqeq = Opal.eqeqeq, $rb_plus = Opal.rb_plus, $alias = Opal.alias; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - values = $post_args;; - - var value = Opal.yieldX(self.block, values); - - if (value === $breaker) { - throw $breaker; - } + Opal.add_stubs('raise,each,new,enumerator_size,yield,respond_to?,try_convert,<,===,+,for,class,to_proc,destructure,inspect'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Enumerator'); - return value; - ; - }, $Yielder_yield$13.$$arity = -1); - return (Opal.def(self, '$<<', $Yielder_$lt$lt$14 = function($a) { - var $post_args, values, self = this; + var $nesting = [self].concat($parent_nesting); - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - values = $post_args;; - $send(self, 'yield', Opal.to_a(values)); - return self; - }, $Yielder_$lt$lt$14.$$arity = -1), nil) && '<<'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Lazy'); - var $nesting = [self].concat($parent_nesting), $Lazy_initialize$15, $Lazy_lazy$18, $Lazy_collect$19, $Lazy_collect_concat$21, $Lazy_drop$25, $Lazy_drop_while$27, $Lazy_enum_for$29, $Lazy_find_all$30, $Lazy_grep$32, $Lazy_reject$35, $Lazy_take$37, $Lazy_take_while$39, $Lazy_inspect$41; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.enumerator = nil; + $proto.enumerator = nil; - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'StopLazyError'); + $klass(self, $$$('Exception'), 'StopLazyError'); + $defs(self, '$for', function $Lazy_for$1(object, $a) { + var $post_args, $rest_arg, $yield = $Lazy_for$1.$$p || nil, self = this, lazy = nil; - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'Exception'), $nesting); + delete $Lazy_for$1.$$p; + + + $post_args = Opal.slice.call(arguments, 1); + + $rest_arg = $post_args;; + lazy = $send2(self, $find_super(self, 'for', $Lazy_for$1, false, true), 'for', [object].concat($to_a($rest_arg)), $yield); + lazy.enumerator = object; + return lazy; + }, -2); - Opal.def(self, '$initialize', $Lazy_initialize$15 = function $$initialize(object, size) { - var $iter = $Lazy_initialize$15.$$p, block = $iter || nil, $$16, self = this; + $def(self, '$initialize', function $$initialize(object, size) { + var block = $$initialize.$$p || nil, self = this; - if ($iter) $Lazy_initialize$15.$$p = null; - + delete $$initialize.$$p; - if ($iter) $Lazy_initialize$15.$$p = null;; + ; - if (size == null) { - size = nil; - }; - if ((block !== nil)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy new without a block") + if (size == null) size = nil;; + if (!(block !== nil)) { + $Kernel.$raise($$$('ArgumentError'), "tried to call lazy new without a block") }; self.enumerator = object; - return $send2(self, $find_super(self, 'initialize', $Lazy_initialize$15, false, true), 'initialize', [size], ($$16 = function(yielder, $a){var self = $$16.$$s == null ? this : $$16.$$s, $post_args, each_args, $$17; + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [size], function $$2(yielder, $a){var $post_args, each_args; - if (yielder == null) { - yielder = nil; - }; + if (yielder == null) yielder = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); each_args = $post_args;; try { - return $send(object, 'each', Opal.to_a(each_args), ($$17 = function($b){var self = $$17.$$s == null ? this : $$17.$$s, $post_args, args; + return $send(object, 'each', $to_a(each_args), function $$3($b){var $post_args, args; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; args.unshift(yielder); - Opal.yieldX(block, args); - ;}, $$17.$$s = self, $$17.$$arity = -1, $$17)) + $yieldX(block, args); + ;}, -1) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'Exception')])) { + if (Opal.rescue($err, [$$('StopLazyError')])) { try { return nil } finally { Opal.pop_exception(); } } else { throw $err; } - };}, $$16.$$s = self, $$16.$$arity = -2, $$16)); - }, $Lazy_initialize$15.$$arity = -2); - $alias(self, "force", "to_a"); + };}, -2); + }, -2); - Opal.def(self, '$lazy', $Lazy_lazy$18 = function $$lazy() { + $def(self, '$lazy', function $$lazy() { var self = this; return self - }, $Lazy_lazy$18.$$arity = 0); + }, 0); - Opal.def(self, '$collect', $Lazy_collect$19 = function $$collect() { - var $iter = $Lazy_collect$19.$$p, block = $iter || nil, $$20, self = this; + $def(self, '$collect', function $$collect() { + var block = $$collect.$$p || nil, self = this; - if ($iter) $Lazy_collect$19.$$p = null; + delete $$collect.$$p; - - if ($iter) $Lazy_collect$19.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy map without a block") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "tried to call lazy map without a block") }; - return $send($$($nesting, 'Lazy'), 'new', [self, self.$enumerator_size()], ($$20 = function(enum$, $a){var self = $$20.$$s == null ? this : $$20.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, self.$enumerator_size()], function $$4(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - var value = Opal.yieldX(block, args); + var value = $yieldX(block, args); enum$.$yield(value); - ;}, $$20.$$s = self, $$20.$$arity = -2, $$20)); - }, $Lazy_collect$19.$$arity = 0); + ;}, -2); + }, 0); - Opal.def(self, '$collect_concat', $Lazy_collect_concat$21 = function $$collect_concat() { - var $iter = $Lazy_collect_concat$21.$$p, block = $iter || nil, $$22, self = this; + $def(self, '$collect_concat', function $$collect_concat() { + var block = $$collect_concat.$$p || nil, self = this; - if ($iter) $Lazy_collect_concat$21.$$p = null; - + delete $$collect_concat.$$p; - if ($iter) $Lazy_collect_concat$21.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy map without a block") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "tried to call lazy map without a block") }; - return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$22 = function(enum$, $a){var self = $$22.$$s == null ? this : $$22.$$s, $post_args, args, $$23, $$24; + return $send($$('Lazy'), 'new', [self, nil], function $$5(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - var value = Opal.yieldX(block, args); + var value = $yieldX(block, args); if ((value)['$respond_to?']("force") && (value)['$respond_to?']("each")) { - $send((value), 'each', [], ($$23 = function(v){var self = $$23.$$s == null ? this : $$23.$$s; - + $send((value), 'each', [], function $$6(v){ - if (v == null) { - v = nil; - }; - return enum$.$yield(v);}, $$23.$$s = self, $$23.$$arity = 1, $$23)) + if (v == null) v = nil;; + return enum$.$yield(v);}, 1) } else { - var array = $$($nesting, 'Opal').$try_convert(value, $$($nesting, 'Array'), "to_ary"); + var array = $Opal.$try_convert(value, $$$('Array'), "to_ary"); if (array === nil) { enum$.$yield(value); } else { - $send((value), 'each', [], ($$24 = function(v){var self = $$24.$$s == null ? this : $$24.$$s; - + $send((value), 'each', [], function $$7(v){ - if (v == null) { - v = nil; - }; - return enum$.$yield(v);}, $$24.$$s = self, $$24.$$arity = 1, $$24)); + if (v == null) v = nil;; + return enum$.$yield(v);}, 1); } } - ;}, $$22.$$s = self, $$22.$$arity = -2, $$22)); - }, $Lazy_collect_concat$21.$$arity = 0); + ;}, -2); + }, 0); - Opal.def(self, '$drop', $Lazy_drop$25 = function $$drop(n) { - var $$26, self = this, current_size = nil, set_size = nil, dropped = nil; + $def(self, '$drop', function $$drop(n) { + var self = this, current_size = nil, set_size = nil, dropped = nil; - n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); + n = $coerce_to(n, $$$('Integer'), 'to_int'); if ($truthy($rb_lt(n, 0))) { - self.$raise($$($nesting, 'ArgumentError'), "attempt to drop negative size")}; + $Kernel.$raise($$$('ArgumentError'), "attempt to drop negative size") + }; current_size = self.$enumerator_size(); - set_size = (function() {if ($truthy($$($nesting, 'Integer')['$==='](current_size))) { - if ($truthy($rb_lt(n, current_size))) { - return n - } else { - return current_size - } - } else { - return current_size - }; return nil; })(); + set_size = ($eqeqeq($$$('Integer'), current_size) ? (($truthy($rb_lt(n, current_size)) ? (n) : (current_size))) : (current_size)); dropped = 0; - return $send($$($nesting, 'Lazy'), 'new', [self, set_size], ($$26 = function(enum$, $a){var self = $$26.$$s == null ? this : $$26.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, set_size], function $$8(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy($rb_lt(dropped, n))) { return (dropped = $rb_plus(dropped, 1)) } else { - return $send(enum$, 'yield', Opal.to_a(args)) - };}, $$26.$$s = self, $$26.$$arity = -2, $$26)); - }, $Lazy_drop$25.$$arity = 1); + return $send(enum$, 'yield', $to_a(args)) + };}, -2); + }, 1); - Opal.def(self, '$drop_while', $Lazy_drop_while$27 = function $$drop_while() { - var $iter = $Lazy_drop_while$27.$$p, block = $iter || nil, $$28, self = this, succeeding = nil; + $def(self, '$drop_while', function $$drop_while() { + var block = $$drop_while.$$p || nil, self = this, succeeding = nil; - if ($iter) $Lazy_drop_while$27.$$p = null; - + delete $$drop_while.$$p; - if ($iter) $Lazy_drop_while$27.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy drop_while without a block") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "tried to call lazy drop_while without a block") }; succeeding = true; - return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$28 = function(enum$, $a){var self = $$28.$$s == null ? this : $$28.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, nil], function $$9(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy(succeeding)) { - var value = Opal.yieldX(block, args); + var value = $yieldX(block, args); - if ($falsy(value)) { + if (!$truthy(value)) { succeeding = false; - $send(enum$, 'yield', Opal.to_a(args)); + $send(enum$, 'yield', $to_a(args)); } } else { - return $send(enum$, 'yield', Opal.to_a(args)) - };}, $$28.$$s = self, $$28.$$arity = -2, $$28)); - }, $Lazy_drop_while$27.$$arity = 0); + return $send(enum$, 'yield', $to_a(args)) + };}, -2); + }, 0); - Opal.def(self, '$enum_for', $Lazy_enum_for$29 = function $$enum_for($a, $b) { - var $iter = $Lazy_enum_for$29.$$p, block = $iter || nil, $post_args, method, args, self = this; + $def(self, '$enum_for', function $$enum_for($a, $b) { + var block = $$enum_for.$$p || nil, $post_args, method, args, self = this; - if ($iter) $Lazy_enum_for$29.$$p = null; + delete $$enum_for.$$p; + ; - if ($iter) $Lazy_enum_for$29.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - method = $post_args[0]; - $post_args.splice(0, 1); - } - if (method == null) { - method = "each"; - }; + if ($post_args.length > 0) method = $post_args.shift(); + if (method == null) method = "each";; args = $post_args;; - return $send(self.$class(), 'for', [self, method].concat(Opal.to_a(args)), block.$to_proc()); - }, $Lazy_enum_for$29.$$arity = -1); - $alias(self, "filter", "find_all"); + return $send(self.$class(), 'for', [self, method].concat($to_a(args)), block.$to_proc()); + }, -1); - Opal.def(self, '$find_all', $Lazy_find_all$30 = function $$find_all() { - var $iter = $Lazy_find_all$30.$$p, block = $iter || nil, $$31, self = this; + $def(self, '$find_all', function $$find_all() { + var block = $$find_all.$$p || nil, self = this; - if ($iter) $Lazy_find_all$30.$$p = null; - + delete $$find_all.$$p; - if ($iter) $Lazy_find_all$30.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy select without a block") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "tried to call lazy select without a block") }; - return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$31 = function(enum$, $a){var self = $$31.$$s == null ? this : $$31.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, nil], function $$10(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - var value = Opal.yieldX(block, args); + var value = $yieldX(block, args); if ($truthy(value)) { - $send(enum$, 'yield', Opal.to_a(args)); + $send(enum$, 'yield', $to_a(args)); } - ;}, $$31.$$s = self, $$31.$$arity = -2, $$31)); - }, $Lazy_find_all$30.$$arity = 0); - $alias(self, "flat_map", "collect_concat"); + ;}, -2); + }, 0); - Opal.def(self, '$grep', $Lazy_grep$32 = function $$grep(pattern) { - var $iter = $Lazy_grep$32.$$p, block = $iter || nil, $$33, $$34, self = this; + $def(self, '$grep', function $$grep(pattern) { + var block = $$grep.$$p || nil, self = this; - if ($iter) $Lazy_grep$32.$$p = null; - + delete $$grep.$$p; - if ($iter) $Lazy_grep$32.$$p = null;; + ; if ($truthy(block)) { - return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$33 = function(enum$, $a){var self = $$33.$$s == null ? this : $$33.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, nil], function $$11(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - var param = $$($nesting, 'Opal').$destructure(args), + var param = $Opal.$destructure(args), value = pattern['$==='](param); if ($truthy(value)) { - value = Opal.yield1(block, param); + value = $yield1(block, param); - enum$.$yield(Opal.yield1(block, param)); + enum$.$yield($yield1(block, param)); } - ;}, $$33.$$s = self, $$33.$$arity = -2, $$33)) + ;}, -2) } else { - return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$34 = function(enum$, $a){var self = $$34.$$s == null ? this : $$34.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, nil], function $$12(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - var param = $$($nesting, 'Opal').$destructure(args), + var param = $Opal.$destructure(args), value = pattern['$==='](param); if ($truthy(value)) { enum$.$yield(param); } - ;}, $$34.$$s = self, $$34.$$arity = -2, $$34)) + ;}, -2) }; - }, $Lazy_grep$32.$$arity = 1); - $alias(self, "map", "collect"); - $alias(self, "select", "find_all"); + }, 1); - Opal.def(self, '$reject', $Lazy_reject$35 = function $$reject() { - var $iter = $Lazy_reject$35.$$p, block = $iter || nil, $$36, self = this; + $def(self, '$reject', function $$reject() { + var block = $$reject.$$p || nil, self = this; - if ($iter) $Lazy_reject$35.$$p = null; - + delete $$reject.$$p; - if ($iter) $Lazy_reject$35.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy reject without a block") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "tried to call lazy reject without a block") }; - return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$36 = function(enum$, $a){var self = $$36.$$s == null ? this : $$36.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, nil], function $$13(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - var value = Opal.yieldX(block, args); + var value = $yieldX(block, args); - if ($falsy(value)) { - $send(enum$, 'yield', Opal.to_a(args)); + if (!$truthy(value)) { + $send(enum$, 'yield', $to_a(args)); } - ;}, $$36.$$s = self, $$36.$$arity = -2, $$36)); - }, $Lazy_reject$35.$$arity = 0); + ;}, -2); + }, 0); - Opal.def(self, '$take', $Lazy_take$37 = function $$take(n) { - var $$38, self = this, current_size = nil, set_size = nil, taken = nil; + $def(self, '$take', function $$take(n) { + var self = this, current_size = nil, set_size = nil, taken = nil; - n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); + n = $coerce_to(n, $$$('Integer'), 'to_int'); if ($truthy($rb_lt(n, 0))) { - self.$raise($$($nesting, 'ArgumentError'), "attempt to take negative size")}; + $Kernel.$raise($$$('ArgumentError'), "attempt to take negative size") + }; current_size = self.$enumerator_size(); - set_size = (function() {if ($truthy($$($nesting, 'Integer')['$==='](current_size))) { - if ($truthy($rb_lt(n, current_size))) { - return n - } else { - return current_size - } - } else { - return current_size - }; return nil; })(); + set_size = ($eqeqeq($$$('Integer'), current_size) ? (($truthy($rb_lt(n, current_size)) ? (n) : (current_size))) : (current_size)); taken = 0; - return $send($$($nesting, 'Lazy'), 'new', [self, set_size], ($$38 = function(enum$, $a){var self = $$38.$$s == null ? this : $$38.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, set_size], function $$14(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy($rb_lt(taken, n))) { - $send(enum$, 'yield', Opal.to_a(args)); + $send(enum$, 'yield', $to_a(args)); return (taken = $rb_plus(taken, 1)); } else { - return self.$raise($$($nesting, 'StopLazyError')) - };}, $$38.$$s = self, $$38.$$arity = -2, $$38)); - }, $Lazy_take$37.$$arity = 1); + return $Kernel.$raise($$('StopLazyError')) + };}, -2); + }, 1); - Opal.def(self, '$take_while', $Lazy_take_while$39 = function $$take_while() { - var $iter = $Lazy_take_while$39.$$p, block = $iter || nil, $$40, self = this; + $def(self, '$take_while', function $$take_while() { + var block = $$take_while.$$p || nil, self = this; - if ($iter) $Lazy_take_while$39.$$p = null; - + delete $$take_while.$$p; - if ($iter) $Lazy_take_while$39.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy take_while without a block") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "tried to call lazy take_while without a block") }; - return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$40 = function(enum$, $a){var self = $$40.$$s == null ? this : $$40.$$s, $post_args, args; + return $send($$('Lazy'), 'new', [self, nil], function $$15(enum$, $a){var $post_args, args; - if (enum$ == null) { - enum$ = nil; - }; + if (enum$ == null) enum$ = nil;; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - var value = Opal.yieldX(block, args); + var value = $yieldX(block, args); if ($truthy(value)) { - $send(enum$, 'yield', Opal.to_a(args)); + $send(enum$, 'yield', $to_a(args)); } else { - self.$raise($$($nesting, 'StopLazyError')); + $Kernel.$raise($$('StopLazyError')); } - ;}, $$40.$$s = self, $$40.$$arity = -2, $$40)); - }, $Lazy_take_while$39.$$arity = 0); - $alias(self, "to_enum", "enum_for"); - return (Opal.def(self, '$inspect', $Lazy_inspect$41 = function $$inspect() { + ;}, -2); + }, 0); + + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#<" + (self.$class()) + ": " + (self.enumerator.$inspect()) + ">" - }, $Lazy_inspect$41.$$arity = 0), nil) && 'inspect'; - })($nesting[0], self, $nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ArithmeticSequence'); + return "#<" + (self.$class()) + ": " + (self.enumerator.$inspect()) + ">" + }, 0); + $alias(self, "force", "to_a"); + $alias(self, "filter", "find_all"); + $alias(self, "flat_map", "collect_concat"); + $alias(self, "map", "collect"); + $alias(self, "select", "find_all"); + return $alias(self, "to_enum", "enum_for"); + })(self, self, $nesting) + })('::', null, $nesting) +}; - var $nesting = [self].concat($parent_nesting); +Opal.modules["corelib/enumerator/yielder"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $klass = Opal.klass, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a; - return nil - })($nesting[0], self, $nesting); - })($nesting[0], null, $nesting); + Opal.add_stubs('yield,proc'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Enumerator'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super) { + var self = $klass($base, $super, 'Yielder'); + + var $proto = self.$$prototype; + + $proto.block = nil; + + + $def(self, '$initialize', function $$initialize() { + var block = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + ; + self.block = block; + return self; + }, 0); + + $def(self, '$yield', function $Yielder_yield$1($a) { + var $post_args, values, self = this; + + + + $post_args = Opal.slice.call(arguments); + + values = $post_args;; + + var value = Opal.yieldX(self.block, values); + + if (value === $breaker) { + throw $breaker; + } + + return value; + ; + }, -1); + + $def(self, '$<<', function $Yielder_$lt$lt$2(value) { + var self = this; + + + self.$yield(value); + return self; + }, 1); + return $def(self, '$to_proc', function $$to_proc() { + var self = this; + + return $send(self, 'proc', [], function $$3($a){var $post_args, values, self = $$3.$$s == null ? this : $$3.$$s; + + + + $post_args = Opal.slice.call(arguments); + + values = $post_args;; + return $send(self, 'yield', $to_a(values));}, {$$arity: -1, $$s: self}) + }, 0); + })($nesting[0], null) + })($nesting[0], null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/numeric"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["corelib/enumerator"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $slice = Opal.slice, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $defs = Opal.defs, $truthy = Opal.truthy, $send = Opal.send, $not = Opal.not, $def = Opal.def, $rb_plus = Opal.rb_plus, $to_a = Opal.to_a, $Opal = Opal.Opal, $send2 = Opal.send2, $find_super = Opal.find_super, $rb_ge = Opal.rb_ge, $Kernel = Opal.Kernel, $rb_le = Opal.rb_le, $alias = Opal.alias; + + Opal.add_stubs('require,include,allocate,new,to_proc,!,respond_to?,empty?,nil?,+,class,__send__,call,enum_for,size,destructure,map,>=,length,raise,[],peek_values,<=,next_values,inspect,any?,autoload'); + + self.$require("corelib/enumerable"); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Enumerator'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.size = $proto.args = $proto.object = $proto.method = $proto.values = $proto.cursor = nil; + + self.$include($$$('Enumerable')); + self.$$prototype.$$is_enumerator = true; + $defs(self, '$for', function $Enumerator_for$1(object, $a, $b) { + var block = $Enumerator_for$1.$$p || nil, $post_args, method, args, self = this; + + delete $Enumerator_for$1.$$p; + + ; + + $post_args = Opal.slice.call(arguments, 1); + + if ($post_args.length > 0) method = $post_args.shift(); + if (method == null) method = "each";; + + args = $post_args;; + + var obj = self.$allocate(); + + obj.object = object; + obj.size = block; + obj.method = method; + obj.args = args; + obj.cursor = 0; + + return obj; + ; + }, -2); + + $def(self, '$initialize', function $$initialize($a) { + var block = $$initialize.$$p || nil, $post_args, $rest_arg, self = this; + + delete $$initialize.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + self.cursor = 0; + if ($truthy(block)) { + + self.object = $send($$('Generator'), 'new', [], block.$to_proc()); + self.method = "each"; + self.args = []; + self.size = arguments[0] || nil; + if (($truthy(self.size) && ($not(self.size['$respond_to?']("call"))))) { + return (self.size = $coerce_to(self.size, $$$('Integer'), 'to_int')) + } else { + return nil + }; + } else { + + self.object = arguments[0]; + self.method = arguments[1] || "each"; + self.args = $slice.call(arguments, 2); + return (self.size = nil); + }; + }, -1); + + $def(self, '$each', function $$each($a) { + var block = $$each.$$p || nil, $post_args, args, self = this; + + delete $$each.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + if (($truthy(block['$nil?']()) && ($truthy(args['$empty?']())))) { + return self + }; + args = $rb_plus(self.args, args); + if ($truthy(block['$nil?']())) { + return $send(self.$class(), 'new', [self.object, self.method].concat($to_a(args))) + }; + return $send(self.object, '__send__', [self.method].concat($to_a(args)), block.$to_proc()); + }, -1); + + $def(self, '$size', function $$size() { + var self = this; + + if ($truthy(self.size['$respond_to?']("call"))) { + return $send(self.size, 'call', $to_a(self.args)) + } else { + return self.size + } + }, 0); + + $def(self, '$with_index', function $$with_index(offset) { + var block = $$with_index.$$p || nil, self = this; + + delete $$with_index.$$p; + + ; + + if (offset == null) offset = 0;; + offset = ($truthy(offset) ? ($coerce_to(offset, $$$('Integer'), 'to_int')) : (0)); + if (!$truthy(block)) { + return $send(self, 'enum_for', ["with_index", offset], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; + + return self.$size()}, {$$arity: 0, $$s: self}) + }; + + var result, index = offset; + + self.$each.$$p = function() { + var param = $Opal.$destructure(arguments), + value = block(param, index); + + index++; + + return value; + } + + return self.$each(); + ; + }, -1); + + $def(self, '$each_with_index', function $$each_with_index() { + var block = $$each_with_index.$$p || nil, self = this; + + delete $$each_with_index.$$p; + + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each_with_index"], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; + + return self.$size()}, {$$arity: 0, $$s: self}) + }; + $send2(self, $find_super(self, 'each_with_index', $$each_with_index, false, true), 'each_with_index', [], block); + return self.object; + }, 0); + + $def(self, '$rewind', function $$rewind() { + var self = this; + + + self.cursor = 0; + return self; + }, 0); + + $def(self, '$peek_values', function $$peek_values() { + var self = this, $ret_or_1 = nil; + + + self.values = ($truthy(($ret_or_1 = self.values)) ? ($ret_or_1) : ($send(self, 'map', [], function $$4($a){var $post_args, i; + + + + $post_args = Opal.slice.call(arguments); + + i = $post_args;; + return i;}, -1))); + if ($truthy($rb_ge(self.cursor, self.values.$length()))) { + $Kernel.$raise($$$('StopIteration'), "iteration reached an end") + }; + return self.values['$[]'](self.cursor); + }, 0); + + $def(self, '$peek', function $$peek() { + var self = this, values = nil; + + + values = self.$peek_values(); + if ($truthy($rb_le(values.$length(), 1))) { + return values['$[]'](0) + } else { + return values + }; + }, 0); + + $def(self, '$next_values', function $$next_values() { + var self = this, out = nil; + + + out = self.$peek_values(); + self.cursor = $rb_plus(self.cursor, 1); + return out; + }, 0); + + $def(self, '$next', function $$next() { + var self = this, values = nil; + + + values = self.$next_values(); + if ($truthy($rb_le(values.$length(), 1))) { + return values['$[]'](0) + } else { + return values + }; + }, 0); + + $def(self, '$feed', function $$feed(arg) { + var self = this; + + return self.$raise($$('NotImplementedError'), "Opal doesn't support Enumerator#feed") + }, 1); + + $def(self, '$+', function $Enumerator_$plus$5(other) { + var self = this; + + return $$$($$$('Enumerator'), 'Chain').$new(self, other) + }, 1); + + $def(self, '$inspect', function $$inspect() { + var self = this, result = nil; + + + result = "#<" + (self.$class()) + ": " + (self.object.$inspect()) + ":" + (self.method); + if ($truthy(self.args['$any?']())) { + result = $rb_plus(result, "(" + (self.args.$inspect()['$[]']($$$('Range').$new(1, -2))) + ")") + }; + return $rb_plus(result, ">"); + }, 0); + $alias(self, "with_object", "each_with_object"); + self.$autoload("ArithmeticSequence", "corelib/enumerator/arithmetic_sequence"); + self.$autoload("Chain", "corelib/enumerator/chain"); + self.$autoload("Generator", "corelib/enumerator/generator"); + self.$autoload("Lazy", "corelib/enumerator/lazy"); + return self.$autoload("Yielder", "corelib/enumerator/yielder"); + })('::', null, $nesting); +}; + +Opal.modules["corelib/numeric"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $Kernel = Opal.Kernel, $def = Opal.def, $to_ary = Opal.to_ary, $eqeqeq = Opal.eqeqeq, $rb_minus = Opal.rb_minus, $rb_times = Opal.rb_times, $rb_lt = Opal.rb_lt, $eqeq = Opal.eqeq, $rb_divide = Opal.rb_divide, $Opal = Opal.Opal, $hash2 = Opal.hash2, $not = Opal.not, $send = Opal.send, $rb_ge = Opal.rb_ge, $rb_le = Opal.rb_le, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$instance_of?', '$class', '$Float', '$respond_to?', '$coerce', '$__send__', '$===', '$raise', '$equal?', '$-', '$*', '$div', '$<', '$-@', '$ceil', '$to_f', '$denominator', '$to_r', '$==', '$floor', '$/', '$%', '$Complex', '$zero?', '$numerator', '$abs', '$arg', '$coerce_to!', '$round', '$<=>', '$compare', '$enum_for', '$to_proc', '$negative?', '$>=', '$<=', '$+', '$to_i', '$truncate', '$>']); + Opal.add_stubs('require,include,instance_of?,class,Float,respond_to?,coerce,__send__,===,raise,equal?,-,*,div,<,-@,ceil,to_f,denominator,to_r,==,floor,/,%,Complex,zero?,numerator,abs,arg,coerce_to!,round,<=>,compare,is_a?,!,new,enum_for,to_proc,negative?,>=,<=,+,to_i,truncate,>'); self.$require("corelib/comparable"); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Numeric'); - var $nesting = [self].concat($parent_nesting), $Numeric_coerce$1, $Numeric___coerced__$2, $Numeric_$lt_eq_gt$3, $Numeric_$plus$$4, $Numeric_$minus$$5, $Numeric_$percent$6, $Numeric_abs$7, $Numeric_abs2$8, $Numeric_angle$9, $Numeric_ceil$10, $Numeric_conj$11, $Numeric_denominator$12, $Numeric_div$13, $Numeric_divmod$14, $Numeric_fdiv$15, $Numeric_floor$16, $Numeric_i$17, $Numeric_imag$18, $Numeric_integer$ques$19, $Numeric_nonzero$ques$20, $Numeric_numerator$21, $Numeric_polar$22, $Numeric_quo$23, $Numeric_real$24, $Numeric_real$ques$25, $Numeric_rect$26, $Numeric_round$27, $Numeric_step$28, $Numeric_to_c$29, $Numeric_to_int$30, $Numeric_truncate$31, $Numeric_zero$ques$32, $Numeric_positive$ques$33, $Numeric_negative$ques$34, $Numeric_dup$35, $Numeric_clone$36, $Numeric_finite$ques$37, $Numeric_infinite$ques$38; - - self.$include($$($nesting, 'Comparable')); - Opal.def(self, '$coerce', $Numeric_coerce$1 = function $$coerce(other) { + self.$include($$$('Comparable')); + + $def(self, '$coerce', function $$coerce(other) { var self = this; if ($truthy(other['$instance_of?'](self.$class()))) { - return [other, self]}; - return [self.$Float(other), self.$Float(self)]; - }, $Numeric_coerce$1.$$arity = 1); + return [other, self] + }; + return [$Kernel.$Float(other), $Kernel.$Float(self)]; + }, 1); - Opal.def(self, '$__coerced__', $Numeric___coerced__$2 = function $$__coerced__(method, other) { - var $a, $b, self = this, a = nil, b = nil, $case = nil; + $def(self, '$__coerced__', function $$__coerced__(method, other) { + var $a, $b, self = this, a = nil, b = nil, $ret_or_1 = nil; if ($truthy(other['$respond_to?']("coerce"))) { - $b = other.$coerce(self), $a = Opal.to_ary($b), (a = ($a[0] == null ? nil : $a[0])), (b = ($a[1] == null ? nil : $a[1])), $b; + $b = other.$coerce(self), $a = $to_ary($b), (a = ($a[0] == null ? nil : $a[0])), (b = ($a[1] == null ? nil : $a[1])), $b; return a.$__send__(method, b); + } else if (($eqeqeq("+", ($ret_or_1 = method)) || (($eqeqeq("-", $ret_or_1) || (($eqeqeq("*", $ret_or_1) || (($eqeqeq("/", $ret_or_1) || (($eqeqeq("%", $ret_or_1) || (($eqeqeq("&", $ret_or_1) || (($eqeqeq("|", $ret_or_1) || (($eqeqeq("^", $ret_or_1) || ($eqeqeq("**", $ret_or_1)))))))))))))))))) { + return $Kernel.$raise($$$('TypeError'), "" + (other.$class()) + " can't be coerced into Numeric") + } else if (($eqeqeq(">", $ret_or_1) || (($eqeqeq(">=", $ret_or_1) || (($eqeqeq("<", $ret_or_1) || (($eqeqeq("<=", $ret_or_1) || ($eqeqeq("<=>", $ret_or_1)))))))))) { + return $Kernel.$raise($$$('ArgumentError'), "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") } else { - return (function() {$case = method; - if ("+"['$===']($case) || "-"['$===']($case) || "*"['$===']($case) || "/"['$===']($case) || "%"['$===']($case) || "&"['$===']($case) || "|"['$===']($case) || "^"['$===']($case) || "**"['$===']($case)) {return self.$raise($$($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into Numeric")} - else if (">"['$===']($case) || ">="['$===']($case) || "<"['$===']($case) || "<="['$===']($case) || "<=>"['$===']($case)) {return self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed")} - else { return nil }})() + return nil } - }, $Numeric___coerced__$2.$$arity = 2); + }, 2); - Opal.def(self, '$<=>', $Numeric_$lt_eq_gt$3 = function(other) { + $def(self, '$<=>', function $Numeric_$lt_eq_gt$1(other) { var self = this; if ($truthy(self['$equal?'](other))) { - return 0}; + return 0 + }; return nil; - }, $Numeric_$lt_eq_gt$3.$$arity = 1); + }, 1); - Opal.def(self, '$+@', $Numeric_$plus$$4 = function() { + $def(self, '$+@', function $Numeric_$plus$$2() { var self = this; return self - }, $Numeric_$plus$$4.$$arity = 0); + }, 0); - Opal.def(self, '$-@', $Numeric_$minus$$5 = function() { + $def(self, '$-@', function $Numeric_$minus$$3() { var self = this; return $rb_minus(0, self) - }, $Numeric_$minus$$5.$$arity = 0); + }, 0); - Opal.def(self, '$%', $Numeric_$percent$6 = function(other) { + $def(self, '$%', function $Numeric_$percent$4(other) { var self = this; return $rb_minus(self, $rb_times(other, self.$div(other))) - }, $Numeric_$percent$6.$$arity = 1); + }, 1); - Opal.def(self, '$abs', $Numeric_abs$7 = function $$abs() { + $def(self, '$abs', function $$abs() { var self = this; if ($rb_lt(self, 0)) { @@ -12232,103 +12374,93 @@ Opal.modules["corelib/numeric"] = function(Opal) { } else { return self } - }, $Numeric_abs$7.$$arity = 0); + }, 0); - Opal.def(self, '$abs2', $Numeric_abs2$8 = function $$abs2() { + $def(self, '$abs2', function $$abs2() { var self = this; return $rb_times(self, self) - }, $Numeric_abs2$8.$$arity = 0); + }, 0); - Opal.def(self, '$angle', $Numeric_angle$9 = function $$angle() { + $def(self, '$angle', function $$angle() { var self = this; if ($rb_lt(self, 0)) { - return $$$($$($nesting, 'Math'), 'PI') + return $$$($$$('Math'), 'PI') } else { return 0 } - }, $Numeric_angle$9.$$arity = 0); - $alias(self, "arg", "angle"); + }, 0); - Opal.def(self, '$ceil', $Numeric_ceil$10 = function $$ceil(ndigits) { + $def(self, '$ceil', function $$ceil(ndigits) { var self = this; - if (ndigits == null) { - ndigits = 0; - }; + if (ndigits == null) ndigits = 0;; return self.$to_f().$ceil(ndigits); - }, $Numeric_ceil$10.$$arity = -1); + }, -1); - Opal.def(self, '$conj', $Numeric_conj$11 = function $$conj() { + $def(self, '$conj', function $$conj() { var self = this; return self - }, $Numeric_conj$11.$$arity = 0); - $alias(self, "conjugate", "conj"); + }, 0); - Opal.def(self, '$denominator', $Numeric_denominator$12 = function $$denominator() { + $def(self, '$denominator', function $$denominator() { var self = this; return self.$to_r().$denominator() - }, $Numeric_denominator$12.$$arity = 0); + }, 0); - Opal.def(self, '$div', $Numeric_div$13 = function $$div(other) { + $def(self, '$div', function $$div(other) { var self = this; - if (other['$=='](0)) { - self.$raise($$($nesting, 'ZeroDivisionError'), "divided by o")}; + if ($eqeq(other, 0)) { + $Kernel.$raise($$$('ZeroDivisionError'), "divided by o") + }; return $rb_divide(self, other).$floor(); - }, $Numeric_div$13.$$arity = 1); + }, 1); - Opal.def(self, '$divmod', $Numeric_divmod$14 = function $$divmod(other) { + $def(self, '$divmod', function $$divmod(other) { var self = this; return [self.$div(other), self['$%'](other)] - }, $Numeric_divmod$14.$$arity = 1); + }, 1); - Opal.def(self, '$fdiv', $Numeric_fdiv$15 = function $$fdiv(other) { + $def(self, '$fdiv', function $$fdiv(other) { var self = this; return $rb_divide(self.$to_f(), other) - }, $Numeric_fdiv$15.$$arity = 1); + }, 1); - Opal.def(self, '$floor', $Numeric_floor$16 = function $$floor(ndigits) { + $def(self, '$floor', function $$floor(ndigits) { var self = this; - if (ndigits == null) { - ndigits = 0; - }; + if (ndigits == null) ndigits = 0;; return self.$to_f().$floor(ndigits); - }, $Numeric_floor$16.$$arity = -1); + }, -1); - Opal.def(self, '$i', $Numeric_i$17 = function $$i() { + $def(self, '$i', function $$i() { var self = this; - return self.$Complex(0, self) - }, $Numeric_i$17.$$arity = 0); + return $Kernel.$Complex(0, self) + }, 0); - Opal.def(self, '$imag', $Numeric_imag$18 = function $$imag() { - var self = this; - + $def(self, '$imag', function $$imag() { + return 0 - }, $Numeric_imag$18.$$arity = 0); - $alias(self, "imaginary", "imag"); + }, 0); - Opal.def(self, '$integer?', $Numeric_integer$ques$19 = function() { - var self = this; - + $def(self, '$integer?', function $Numeric_integer$ques$5() { + return false - }, $Numeric_integer$ques$19.$$arity = 0); - $alias(self, "magnitude", "abs"); - $alias(self, "modulo", "%"); + }, 0); - Opal.def(self, '$nonzero?', $Numeric_nonzero$ques$20 = function() { + $def(self, '$nonzero?', function $Numeric_nonzero$ques$6() { var self = this; if ($truthy(self['$zero?']())) { @@ -12336,63 +12468,59 @@ Opal.modules["corelib/numeric"] = function(Opal) { } else { return self } - }, $Numeric_nonzero$ques$20.$$arity = 0); + }, 0); - Opal.def(self, '$numerator', $Numeric_numerator$21 = function $$numerator() { + $def(self, '$numerator', function $$numerator() { var self = this; return self.$to_r().$numerator() - }, $Numeric_numerator$21.$$arity = 0); - $alias(self, "phase", "arg"); + }, 0); - Opal.def(self, '$polar', $Numeric_polar$22 = function $$polar() { + $def(self, '$polar', function $$polar() { var self = this; return [self.$abs(), self.$arg()] - }, $Numeric_polar$22.$$arity = 0); + }, 0); - Opal.def(self, '$quo', $Numeric_quo$23 = function $$quo(other) { + $def(self, '$quo', function $$quo(other) { var self = this; - return $rb_divide($$($nesting, 'Opal')['$coerce_to!'](self, $$($nesting, 'Rational'), "to_r"), other) - }, $Numeric_quo$23.$$arity = 1); + return $rb_divide($Opal['$coerce_to!'](self, $$$('Rational'), "to_r"), other) + }, 1); - Opal.def(self, '$real', $Numeric_real$24 = function $$real() { + $def(self, '$real', function $$real() { var self = this; return self - }, $Numeric_real$24.$$arity = 0); + }, 0); - Opal.def(self, '$real?', $Numeric_real$ques$25 = function() { - var self = this; - + $def(self, '$real?', function $Numeric_real$ques$7() { + return true - }, $Numeric_real$ques$25.$$arity = 0); + }, 0); - Opal.def(self, '$rect', $Numeric_rect$26 = function $$rect() { + $def(self, '$rect', function $$rect() { var self = this; return [self, 0] - }, $Numeric_rect$26.$$arity = 0); - $alias(self, "rectangular", "rect"); + }, 0); - Opal.def(self, '$round', $Numeric_round$27 = function $$round(digits) { + $def(self, '$round', function $$round(digits) { var self = this; ; return self.$to_f().$round(digits); - }, $Numeric_round$27.$$arity = -1); + }, -1); - Opal.def(self, '$step', $Numeric_step$28 = function $$step($a, $b, $c) { - var $iter = $Numeric_step$28.$$p, block = $iter || nil, $post_args, $kwargs, limit, step, to, by, $d, self = this, counter = nil; + $def(self, '$step', function $$step($a, $b, $c) { + var block = $$step.$$p || nil, $post_args, $kwargs, limit, step, to, by, $d, self = this, counter = nil; - if ($iter) $Numeric_step$28.$$p = null; - + delete $$step.$$p; - if ($iter) $Numeric_step$28.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); $kwargs = Opal.extract_kwargs($post_args); @@ -12402,26 +12530,20 @@ Opal.modules["corelib/numeric"] = function(Opal) { throw Opal.ArgumentError.$new('expected kwargs'); }; - if ($post_args.length > 0) { - limit = $post_args[0]; - $post_args.splice(0, 1); - }; + if ($post_args.length > 0) limit = $post_args.shift();; - if ($post_args.length > 0) { - step = $post_args[0]; - $post_args.splice(0, 1); - }; + if ($post_args.length > 0) step = $post_args.shift();; to = $kwargs.$$smap["to"];; by = $kwargs.$$smap["by"];; if (limit !== undefined && to !== undefined) { - self.$raise($$($nesting, 'ArgumentError'), "to is given twice") + $Kernel.$raise($$$('ArgumentError'), "to is given twice") } if (step !== undefined && by !== undefined) { - self.$raise($$($nesting, 'ArgumentError'), "step is given twice") + $Kernel.$raise($$$('ArgumentError'), "step is given twice") } if (to !== undefined) { @@ -12438,11 +12560,11 @@ Opal.modules["corelib/numeric"] = function(Opal) { function validateParameters() { if (step === nil) { - self.$raise($$($nesting, 'TypeError'), "step must be numeric") + $Kernel.$raise($$$('TypeError'), "step must be numeric") } if (step != null && step['$=='](0)) { - self.$raise($$($nesting, 'ArgumentError'), "step can't be 0") + $Kernel.$raise($$$('ArgumentError'), "step can't be 0") } if (step === nil || step == null) { @@ -12452,14 +12574,14 @@ Opal.modules["corelib/numeric"] = function(Opal) { var sign = step['$<=>'](0); if (sign === nil) { - self.$raise($$($nesting, 'ArgumentError'), "" + "0 can't be coerced into " + (step.$class())) + $Kernel.$raise($$$('ArgumentError'), "0 can't be coerced into " + (step.$class())) } if (limit === nil || limit == null) { - limit = sign > 0 ? $$$($$($nesting, 'Float'), 'INFINITY') : $$$($$($nesting, 'Float'), 'INFINITY')['$-@'](); + limit = sign > 0 ? $$$($$$('Float'), 'INFINITY') : $$$($$$('Float'), 'INFINITY')['$-@'](); } - $$($nesting, 'Opal').$compare(self, limit) + $Opal.$compare(self, limit) } function stepFloatSize() { @@ -12469,7 +12591,7 @@ Opal.modules["corelib/numeric"] = function(Opal) { return 1; } else { var abs = Math.abs, floor = Math.floor, - err = (abs(self) + abs(limit) + abs(limit - self)) / abs(step) * $$$($$($nesting, 'Float'), 'EPSILON'); + err = (abs(self) + abs(limit) + abs(limit - self)) / abs(step) * $$$($$$('Float'), 'EPSILON'); if (err === Infinity || err === -Infinity) { return 0; @@ -12504,9 +12626,12 @@ Opal.modules["corelib/numeric"] = function(Opal) { } ; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["step", limit, step], (stepSize).$to_proc()) + if (!(block !== nil)) { + if ((($not(limit) || ($truthy(limit['$is_a?']($$$('Numeric'))))) && (($not(step) || ($truthy(step['$is_a?']($$$('Numeric')))))))) { + return $$$($$$('Enumerator'), 'ArithmeticSequence').$new([limit, step, ($truthy(to) ? ("to: ") : nil), ($truthy(by) ? ("by: ") : nil)], self) + } else { + return $send(self, 'enum_for', ["step", limit, step], (stepSize).$to_proc()) + } }; validateParameters(); @@ -12568,56 +12693,54 @@ Opal.modules["corelib/numeric"] = function(Opal) { Opal.yield1(block, counter); counter = $rb_plus(counter, step); }; - }, $Numeric_step$28.$$arity = -1); + }, -1); - Opal.def(self, '$to_c', $Numeric_to_c$29 = function $$to_c() { + $def(self, '$to_c', function $$to_c() { var self = this; - return self.$Complex(self, 0) - }, $Numeric_to_c$29.$$arity = 0); + return $Kernel.$Complex(self, 0) + }, 0); - Opal.def(self, '$to_int', $Numeric_to_int$30 = function $$to_int() { + $def(self, '$to_int', function $$to_int() { var self = this; return self.$to_i() - }, $Numeric_to_int$30.$$arity = 0); + }, 0); - Opal.def(self, '$truncate', $Numeric_truncate$31 = function $$truncate(ndigits) { + $def(self, '$truncate', function $$truncate(ndigits) { var self = this; - if (ndigits == null) { - ndigits = 0; - }; + if (ndigits == null) ndigits = 0;; return self.$to_f().$truncate(ndigits); - }, $Numeric_truncate$31.$$arity = -1); + }, -1); - Opal.def(self, '$zero?', $Numeric_zero$ques$32 = function() { + $def(self, '$zero?', function $Numeric_zero$ques$8() { var self = this; return self['$=='](0) - }, $Numeric_zero$ques$32.$$arity = 0); + }, 0); - Opal.def(self, '$positive?', $Numeric_positive$ques$33 = function() { + $def(self, '$positive?', function $Numeric_positive$ques$9() { var self = this; return $rb_gt(self, 0) - }, $Numeric_positive$ques$33.$$arity = 0); + }, 0); - Opal.def(self, '$negative?', $Numeric_negative$ques$34 = function() { + $def(self, '$negative?', function $Numeric_negative$ques$10() { var self = this; return $rb_lt(self, 0) - }, $Numeric_negative$ques$34.$$arity = 0); + }, 0); - Opal.def(self, '$dup', $Numeric_dup$35 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this; return self - }, $Numeric_dup$35.$$arity = 0); + }, 0); - Opal.def(self, '$clone', $Numeric_clone$36 = function $$clone($kwargs) { + $def(self, '$clone', function $$clone($kwargs) { var freeze, self = this; @@ -12629,56 +12752,44 @@ Opal.modules["corelib/numeric"] = function(Opal) { }; freeze = $kwargs.$$smap["freeze"]; - if (freeze == null) { - freeze = true - }; + if (freeze == null) freeze = true; return self; - }, $Numeric_clone$36.$$arity = -1); + }, -1); - Opal.def(self, '$finite?', $Numeric_finite$ques$37 = function() { - var self = this; - + $def(self, '$finite?', function $Numeric_finite$ques$11() { + return true - }, $Numeric_finite$ques$37.$$arity = 0); - return (Opal.def(self, '$infinite?', $Numeric_infinite$ques$38 = function() { - var self = this; - + }, 0); + + $def(self, '$infinite?', function $Numeric_infinite$ques$12() { + return nil - }, $Numeric_infinite$ques$38.$$arity = 0), nil) && 'infinite?'; - })($nesting[0], null, $nesting); + }, 0); + $alias(self, "arg", "angle"); + $alias(self, "conjugate", "conj"); + $alias(self, "imaginary", "imag"); + $alias(self, "magnitude", "abs"); + $alias(self, "modulo", "%"); + $alias(self, "phase", "arg"); + return $alias(self, "rectangular", "rect"); + })('::', null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/array"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $falsy = Opal.falsy, $hash_ids = Opal.hash_ids, $yield1 = Opal.yield1, $hash_get = Opal.hash_get, $hash_put = Opal.hash_put, $hash_delete = Opal.hash_delete, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $klass = Opal.klass, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $gvars = Opal.gvars, $alias = Opal.alias; +Opal.modules["corelib/array"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $falsy = Opal.falsy, $hash_ids = Opal.hash_ids, $yield1 = Opal.yield1, $hash_get = Opal.hash_get, $hash_put = Opal.hash_put, $hash_delete = Opal.hash_delete, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $klass = Opal.klass, $defs = Opal.defs, $Kernel = Opal.Kernel, $def = Opal.def, $Opal = Opal.Opal, $eqeqeq = Opal.eqeqeq, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $rb_gt = Opal.rb_gt, $rb_times = Opal.rb_times, $eqeq = Opal.eqeq, $rb_minus = Opal.rb_minus, $to_a = Opal.to_a, $to_ary = Opal.to_ary, $gvars = Opal.gvars, $rb_ge = Opal.rb_ge, $rb_lt = Opal.rb_lt, $neqeq = Opal.neqeq, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$to_a', '$warn', '$raise', '$replace', '$respond_to?', '$to_ary', '$coerce_to?', '$===', '$join', '$to_str', '$hash', '$<=>', '$==', '$object_id', '$inspect', '$enum_for', '$class', '$bsearch_index', '$to_proc', '$nil?', '$coerce_to!', '$>', '$*', '$enumerator_size', '$empty?', '$size', '$map', '$equal?', '$dup', '$each', '$reduce', '$-', '$[]', '$dig', '$eql?', '$length', '$exclude_end?', '$flatten', '$__id__', '$&', '$to_s', '$new', '$max', '$min', '$!', '$>=', '$**', '$delete_if', '$reverse', '$rotate', '$rand', '$at', '$keep_if', '$shuffle!', '$<', '$sort', '$sort_by', '$!=', '$times', '$[]=', '$<<', '$uniq', '$|', '$values', '$is_a?', '$last', '$first', '$upto', '$reject', '$pristine', '$singleton_class']); + Opal.add_stubs('require,include,to_a,warn,raise,replace,respond_to?,to_ary,coerce_to?,===,join,to_str,hash,<=>,==,object_id,inspect,enum_for,class,bsearch_index,to_proc,nil?,coerce_to!,>,*,enumerator_size,empty?,size,map,equal?,dup,each,reduce,-,[],dig,eql?,length,exclude_end?,flatten,__id__,&,!,intersection,to_s,new,item,max,min,>=,**,delete_if,reverse,rotate,rand,at,keep_if,shuffle!,<,sort,sort_by,!=,times,[]=,<<,uniq,|,values,is_a?,end,begin,upto,reject,pristine,singleton_class'); self.$require("corelib/enumerable"); self.$require("corelib/numeric"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_$$$1, $Array_initialize$2, $Array_try_convert$3, $Array_$$4, $Array_$$5, $Array_$$6, $Array_$plus$7, $Array_$minus$8, $Array_$lt$lt$9, $Array_$lt_eq_gt$10, $Array_$eq_eq$11, $Array_$$$12, $Array_$$$eq$13, $Array_any$ques$14, $Array_assoc$15, $Array_at$16, $Array_bsearch_index$17, $Array_bsearch$18, $Array_cycle$19, $Array_clear$21, $Array_count$22, $Array_initialize_copy$23, $Array_collect$24, $Array_collect$excl$26, $Array_combination$28, $Array_repeated_combination$30, $Array_compact$32, $Array_compact$excl$33, $Array_concat$34, $Array_delete$37, $Array_delete_at$38, $Array_delete_if$39, $Array_difference$41, $Array_dig$43, $Array_drop$44, $Array_dup$45, $Array_each$46, $Array_each_index$48, $Array_empty$ques$50, $Array_eql$ques$51, $Array_fetch$52, $Array_fill$53, $Array_first$54, $Array_flatten$55, $Array_flatten$excl$56, $Array_hash$57, $Array_include$ques$58, $Array_index$59, $Array_insert$60, $Array_inspect$61, $Array_intersection$62, $Array_join$64, $Array_keep_if$65, $Array_last$67, $Array_length$68, $Array_max$69, $Array_min$70, $Array_permutation$71, $Array_repeated_permutation$73, $Array_pop$75, $Array_product$76, $Array_push$77, $Array_rassoc$78, $Array_reject$79, $Array_reject$excl$81, $Array_replace$83, $Array_reverse$84, $Array_reverse$excl$85, $Array_reverse_each$86, $Array_rindex$88, $Array_rotate$89, $Array_rotate$excl$90, $Array_sample$93, $Array_select$94, $Array_select$excl$96, $Array_shift$98, $Array_shuffle$99, $Array_shuffle$excl$100, $Array_slice$excl$101, $Array_sort$102, $Array_sort$excl$103, $Array_sort_by$excl$104, $Array_take$106, $Array_take_while$107, $Array_to_a$108, $Array_to_ary$109, $Array_to_h$110, $Array_transpose$111, $Array_union$114, $Array_uniq$116, $Array_uniq$excl$117, $Array_unshift$118, $Array_values_at$119, $Array_zip$122, $Array_inherited$123, $Array_instance_variables$124, $Array_pack$126; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - self.$include($$($nesting, 'Enumerable')); - Opal.defineProperty(self.$$prototype, '$$is_array', true); + self.$include($$$('Enumerable')); + Opal.prop(self.$$prototype, '$$is_array', true); // Recent versions of V8 (> 7.1) only use an optimized implementation when Array.prototype is unmodified. // For instance, "array-splice.tq" has a "fast path" (ExtractFastJSArray, defined in "src/codegen/code-stub-assembler.cc") @@ -12739,43 +12850,38 @@ Opal.modules["corelib/array"] = function(Opal) { if (raised) throw raised; } ; - Opal.defs(self, '$[]', $Array_$$$1 = function($a) { + $defs(self, '$[]', function $Array_$$$1($a) { var $post_args, objects, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); objects = $post_args;; return toArraySubclass(objects, self);; - }, $Array_$$$1.$$arity = -1); + }, -1); - Opal.def(self, '$initialize', $Array_initialize$2 = function $$initialize(size, obj) { - var $iter = $Array_initialize$2.$$p, block = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(size, obj) { + var block = $$initialize.$$p || nil, self = this; - if ($iter) $Array_initialize$2.$$p = null; + delete $$initialize.$$p; + ; - if ($iter) $Array_initialize$2.$$p = null;; - - if (size == null) { - size = nil; - }; + if (size == null) size = nil;; - if (obj == null) { - obj = nil; - }; + if (obj == null) obj = nil;; if (obj !== nil && block !== nil) { - self.$warn("warning: block supersedes default value argument") + $Kernel.$warn("warning: block supersedes default value argument") } - if (size > $$$($$($nesting, 'Integer'), 'MAX')) { - self.$raise($$($nesting, 'ArgumentError'), "array size too big") + if (size > $$$($$$('Integer'), 'MAX')) { + $Kernel.$raise($$$('ArgumentError'), "array size too big") } if (arguments.length > 2) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..2)") + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (arguments.length) + " for 0..2)") } if (arguments.length === 0) { @@ -12793,10 +12899,10 @@ Opal.modules["corelib/array"] = function(Opal) { } } - size = $coerce_to(size, $$($nesting, 'Integer'), 'to_int'); + size = $coerce_to(size, $$$('Integer'), 'to_int'); if (size < 0) { - self.$raise($$($nesting, 'ArgumentError'), "negative array size") + $Kernel.$raise($$$('ArgumentError'), "negative array size") } self.splice(0, self.length); @@ -12816,22 +12922,17 @@ Opal.modules["corelib/array"] = function(Opal) { return self; ; - }, $Array_initialize$2.$$arity = -1); - Opal.defs(self, '$try_convert', $Array_try_convert$3 = function $$try_convert(obj) { - var self = this; - - return $$($nesting, 'Opal')['$coerce_to?'](obj, $$($nesting, 'Array'), "to_ary") - }, $Array_try_convert$3.$$arity = 1); + }, -1); + $defs(self, '$try_convert', function $$try_convert(obj) { + + return $Opal['$coerce_to?'](obj, $$$('Array'), "to_ary") + }, 1); - Opal.def(self, '$&', $Array_$$4 = function(other) { + $def(self, '$&', function $Array_$$2(other) { var self = this; - other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { - return other.$to_a() - } else { - return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() - }; return nil; })(); + other = ($eqeqeq($$$('Array'), other) ? (other.$to_a()) : (($coerce_to(other, $$$('Array'), 'to_ary')).$to_a())); var result = [], hash = $hash2([], {}), i, length, item; @@ -12848,17 +12949,13 @@ Opal.modules["corelib/array"] = function(Opal) { return result; ; - }, $Array_$$4.$$arity = 1); + }, 1); - Opal.def(self, '$|', $Array_$$5 = function(other) { + $def(self, '$|', function $Array_$$3(other) { var self = this; - other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { - return other.$to_a() - } else { - return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() - }; return nil; })(); + other = ($eqeqeq($$$('Array'), other) ? (other.$to_a()) : (($coerce_to(other, $$$('Array'), 'to_ary')).$to_a())); var hash = $hash2([], {}), i, length, item; @@ -12872,17 +12969,19 @@ Opal.modules["corelib/array"] = function(Opal) { return hash.$keys(); ; - }, $Array_$$5.$$arity = 1); + }, 1); - Opal.def(self, '$*', $Array_$$6 = function(other) { + $def(self, '$*', function $Array_$$4(other) { var self = this; if ($truthy(other['$respond_to?']("to_str"))) { - return self.$join(other.$to_str())}; - other = $coerce_to(other, $$($nesting, 'Integer'), 'to_int'); + return self.$join(other.$to_str()) + }; + other = $coerce_to(other, $$$('Integer'), 'to_int'); if ($truthy(other < 0)) { - self.$raise($$($nesting, 'ArgumentError'), "negative argument")}; + $Kernel.$raise($$$('ArgumentError'), "negative argument") + }; var result = [], converted = self.$to_a(); @@ -12893,33 +12992,27 @@ Opal.modules["corelib/array"] = function(Opal) { return result; ; - }, $Array_$$6.$$arity = 1); + }, 1); - Opal.def(self, '$+', $Array_$plus$7 = function(other) { + $def(self, '$+', function $Array_$plus$5(other) { var self = this; - other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { - return other.$to_a() - } else { - return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() - }; return nil; })(); + other = ($eqeqeq($$$('Array'), other) ? (other.$to_a()) : (($coerce_to(other, $$$('Array'), 'to_ary')).$to_a())); return self.concat(other);; - }, $Array_$plus$7.$$arity = 1); + }, 1); - Opal.def(self, '$-', $Array_$minus$8 = function(other) { + $def(self, '$-', function $Array_$minus$6(other) { var self = this; - other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { - return other.$to_a() - } else { - return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() - }; return nil; })(); + other = ($eqeqeq($$$('Array'), other) ? (other.$to_a()) : (($coerce_to(other, $$$('Array'), 'to_ary')).$to_a())); if ($truthy(self.length === 0)) { - return []}; + return [] + }; if ($truthy(other.length === 0)) { - return self.slice()}; + return self.slice() + }; var result = [], hash = $hash2([], {}), i, length, item; @@ -12936,21 +13029,21 @@ Opal.modules["corelib/array"] = function(Opal) { return result; ; - }, $Array_$minus$8.$$arity = 1); + }, 1); - Opal.def(self, '$<<', $Array_$lt$lt$9 = function(object) { + $def(self, '$<<', function $Array_$lt$lt$7(object) { var self = this; self.push(object); return self; - }, $Array_$lt$lt$9.$$arity = 1); + }, 1); - Opal.def(self, '$<=>', $Array_$lt_eq_gt$10 = function(other) { + $def(self, '$<=>', function $Array_$lt_eq_gt$8(other) { var self = this; - if ($truthy($$($nesting, 'Array')['$==='](other))) { + if ($eqeqeq($$$('Array'), other)) { other = other.$to_a() } else if ($truthy(other['$respond_to?']("to_ary"))) { other = other.$to_ary().$to_a() @@ -12974,9 +13067,9 @@ Opal.modules["corelib/array"] = function(Opal) { return (self.length)['$<=>'](other.length); ; - }, $Array_$lt_eq_gt$10.$$arity = 1); + }, 1); - Opal.def(self, '$==', $Array_$eq_eq$11 = function(other) { + $def(self, '$==', function $Array_$eq_eq$9(other) { var self = this; @@ -13031,15 +13124,15 @@ Opal.modules["corelib/array"] = function(Opal) { return _eqeq(self, other); - }, $Array_$eq_eq$11.$$arity = 1); + }, 1); function $array_slice_range(self, index) { var size = self.length, exclude, from, to, result; exclude = index.excl; - from = $coerce_to(index.begin, Opal.Integer, 'to_int'); - to = $coerce_to(index.end, Opal.Integer, 'to_int'); + from = index.begin === nil ? 0 : $coerce_to(index.begin, Opal.Integer, 'to_int'); + to = index.end === nil ? -1 : $coerce_to(index.end, Opal.Integer, 'to_int'); if (from < 0) { from += size; @@ -13049,6 +13142,10 @@ Opal.modules["corelib/array"] = function(Opal) { } } + if (index.excl_rev && index.begin !== nil) { + from += 1; + } + if (from > size) { return nil; } @@ -13061,7 +13158,7 @@ Opal.modules["corelib/array"] = function(Opal) { } } - if (!exclude) { + if (!exclude || index.end === nil) { to += 1; } @@ -13069,6 +13166,30 @@ Opal.modules["corelib/array"] = function(Opal) { return result; } + function $array_slice_arithmetic_seq(self, index) { + var array, out = [], i = 0, pseudorange; + + if (index.step < 0) { + pseudorange = { + begin: index.range.end, + end: index.range.begin, + excl: false, + excl_rev: index.range.excl + }; + array = $array_slice_range(self, pseudorange).$reverse(); + } + else { + array = $array_slice_range(self, index.range); + } + + while (i < array.length) { + out.push(array[i]); + i += Math.abs(index.step); + } + + return out; + } + function $array_slice_index_length(self, index, length) { var size = self.length, exclude, from, to, result; @@ -13103,7 +13224,7 @@ Opal.modules["corelib/array"] = function(Opal) { } ; - Opal.def(self, '$[]', $Array_$$$12 = function(index, length) { + $def(self, '$[]', function $Array_$$$10(index, length) { var self = this; @@ -13112,37 +13233,41 @@ Opal.modules["corelib/array"] = function(Opal) { if (index.$$is_range) { return $array_slice_range(self, index); } + else if (index.$$is_arithmetic_seq) { + return $array_slice_arithmetic_seq(self, index); + } else { return $array_slice_index_length(self, index, length); } ; - }, $Array_$$$12.$$arity = -2); + }, -2); - Opal.def(self, '$[]=', $Array_$$$eq$13 = function(index, value, extra) { + $def(self, '$[]=', function $Array_$$$eq$11(index, value, extra) { var self = this, data = nil, length = nil; ; - var i, size = self.length;; - if ($truthy($$($nesting, 'Range')['$==='](index))) { - - data = (function() {if ($truthy($$($nesting, 'Array')['$==='](value))) { - return value.$to_a() - } else if ($truthy(value['$respond_to?']("to_ary"))) { - return value.$to_ary().$to_a() - } else { - return [value] - }; return nil; })(); - + data = nil; + + var i, size = self.length; + + if (index.$$is_range) { + if (value.$$is_array) + data = value.$to_a(); + else if (value['$respond_to?']("to_ary")) + data = value.$to_ary().$to_a(); + else + data = [value]; + var exclude = index.excl, - from = $coerce_to(index.begin, $$($nesting, 'Integer'), 'to_int'), - to = $coerce_to(index.end, $$($nesting, 'Integer'), 'to_int'); + from = index.begin === nil ? 0 : $coerce_to(index.begin, Opal.Integer, 'to_int'), + to = index.end === nil ? -1 : $coerce_to(index.end, Opal.Integer, 'to_int'); if (from < 0) { from += size; if (from < 0) { - self.$raise($$($nesting, 'RangeError'), "" + (index.$inspect()) + " out of range"); + $Kernel.$raise($$$('RangeError'), "" + (index.$inspect()) + " out of range"); } } @@ -13150,7 +13275,7 @@ Opal.modules["corelib/array"] = function(Opal) { to += size; } - if (!exclude) { + if (!exclude || index.end === nil) { to += 1; } @@ -13168,40 +13293,37 @@ Opal.modules["corelib/array"] = function(Opal) { } return value; - ; } else { - - if ($truthy(extra === undefined)) { - length = 1 + if (extra === undefined) { + (length = 1) } else { - length = value; - value = extra; - data = (function() {if ($truthy($$($nesting, 'Array')['$==='](value))) { - return value.$to_a() - } else if ($truthy(value['$respond_to?']("to_ary"))) { - return value.$to_ary().$to_a() - } else { - return [value] - }; return nil; })(); - }; - + value = extra; + + if (value.$$is_array) + data = value.$to_a(); + else if (value['$respond_to?']("to_ary")) + data = value.$to_ary().$to_a(); + else + data = [value]; + } + var old; - index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); - length = $coerce_to(length, $$($nesting, 'Integer'), 'to_int'); + index = $coerce_to(index, $$$('Integer'), 'to_int'); + length = $coerce_to(length, $$$('Integer'), 'to_int'); if (index < 0) { old = index; index += size; if (index < 0) { - self.$raise($$($nesting, 'IndexError'), "" + "index " + (old) + " too small for array; minimum " + (-self.length)); + $Kernel.$raise($$$('IndexError'), "index " + (old) + " too small for array; minimum " + (-self.length)); } } if (length < 0) { - self.$raise($$($nesting, 'IndexError'), "" + "negative length (" + (length) + ")") + $Kernel.$raise($$$('IndexError'), "negative length (" + (length) + ")") } if (index > size) { @@ -13218,27 +13340,22 @@ Opal.modules["corelib/array"] = function(Opal) { } return value; - ; - }; - }, $Array_$$$eq$13.$$arity = -3); + } + ; + }, -3); - Opal.def(self, '$any?', $Array_any$ques$14 = function(pattern) { - var $iter = $Array_any$ques$14.$$p, block = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$any?', function $Array_any$ques$12(pattern) { + var block = $Array_any$ques$12.$$p || nil, self = this; - if ($iter) $Array_any$ques$14.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - + delete $Array_any$ques$12.$$p; - if ($iter) $Array_any$ques$14.$$p = null;; + ; ; if (self.length === 0) return false; - return $send2(self, $find_super(self, 'any?', $Array_any$ques$14, false, true), 'any?', $zuper, $iter); - }, $Array_any$ques$14.$$arity = -1); + return $send2(self, $find_super(self, 'any?', $Array_any$ques$12, false, true), 'any?', [pattern], block); + }, -1); - Opal.def(self, '$assoc', $Array_assoc$15 = function $$assoc(object) { + $def(self, '$assoc', function $$assoc(object) { var self = this; @@ -13250,13 +13367,13 @@ Opal.modules["corelib/array"] = function(Opal) { return nil; - }, $Array_assoc$15.$$arity = 1); + }, 1); - Opal.def(self, '$at', $Array_at$16 = function $$at(index) { + $def(self, '$at', function $$at(index) { var self = this; - index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int') + index = $coerce_to(index, $$$('Integer'), 'to_int') if (index < 0) { index += self.length; @@ -13268,17 +13385,15 @@ Opal.modules["corelib/array"] = function(Opal) { return self[index]; - }, $Array_at$16.$$arity = 1); + }, 1); - Opal.def(self, '$bsearch_index', $Array_bsearch_index$17 = function $$bsearch_index() { - var $iter = $Array_bsearch_index$17.$$p, block = $iter || nil, self = this; + $def(self, '$bsearch_index', function $$bsearch_index() { + var block = $$bsearch_index.$$p || nil, self = this; - if ($iter) $Array_bsearch_index$17.$$p = null; - + delete $$bsearch_index.$$p; - if ($iter) $Array_bsearch_index$17.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("bsearch_index") }; @@ -13307,7 +13422,7 @@ Opal.modules["corelib/array"] = function(Opal) { smaller = (ret < 0); } else { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((ret).$class()) + " (must be numeric, true, false or nil)") + $Kernel.$raise($$$('TypeError'), "wrong argument type " + ((ret).$class()) + " (must be numeric, true, false or nil)") } if (smaller) { max = mid; } else { min = mid + 1; } @@ -13315,17 +13430,15 @@ Opal.modules["corelib/array"] = function(Opal) { return satisfied; ; - }, $Array_bsearch_index$17.$$arity = 0); + }, 0); - Opal.def(self, '$bsearch', $Array_bsearch$18 = function $$bsearch() { - var $iter = $Array_bsearch$18.$$p, block = $iter || nil, self = this, index = nil; + $def(self, '$bsearch', function $$bsearch() { + var block = $$bsearch.$$p || nil, self = this, index = nil; - if ($iter) $Array_bsearch$18.$$p = null; - + delete $$bsearch.$$p; - if ($iter) $Array_bsearch$18.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("bsearch") }; index = $send(self, 'bsearch_index', [], block.$to_proc()); @@ -13336,41 +13449,34 @@ Opal.modules["corelib/array"] = function(Opal) { return index; } ; - }, $Array_bsearch$18.$$arity = 0); + }, 0); - Opal.def(self, '$cycle', $Array_cycle$19 = function $$cycle(n) { - var $iter = $Array_cycle$19.$$p, block = $iter || nil, $$20, self = this, $ret_or_1 = nil; + $def(self, '$cycle', function $$cycle(n) { + var block = $$cycle.$$p || nil, self = this; - if ($iter) $Array_cycle$19.$$p = null; - + delete $$cycle.$$p; - if ($iter) $Array_cycle$19.$$p = null;; + ; - if (n == null) { - n = nil; - }; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["cycle", n], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s; + if (n == null) n = nil;; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["cycle", n], function $$13(){var self = $$13.$$s == null ? this : $$13.$$s; if ($truthy(n['$nil?']())) { - return $$$($$($nesting, 'Float'), 'INFINITY') + return $$$($$$('Float'), 'INFINITY') } else { - n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); + n = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); if ($truthy($rb_gt(n, 0))) { return $rb_times(self.$enumerator_size(), n) } else { return 0 }; - }}, $$20.$$s = self, $$20.$$arity = 0, $$20)) + }}, {$$arity: 0, $$s: self}) + }; + if (($truthy(self['$empty?']()) || ($eqeq(n, 0)))) { + return nil }; - if ($truthy((function() {if ($truthy(($ret_or_1 = self['$empty?']()))) { - return $ret_or_1 - } else { - return n['$=='](0) - }; return nil; })())) { - return nil}; var i, length, value; @@ -13382,7 +13488,7 @@ Opal.modules["corelib/array"] = function(Opal) { } } else { - n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); + n = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); if (n <= 0) { return self; } @@ -13397,60 +13503,46 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_cycle$19.$$arity = -1); + }, -1); - Opal.def(self, '$clear', $Array_clear$21 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; self.splice(0, self.length); return self; - }, $Array_clear$21.$$arity = 0); + }, 0); - Opal.def(self, '$count', $Array_count$22 = function $$count(object) { - var $iter = $Array_count$22.$$p, block = $iter || nil, self = this, $ret_or_2 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$count', function $$count(object) { + var block = $$count.$$p || nil, self = this; - if ($iter) $Array_count$22.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - + delete $$count.$$p; - if ($iter) $Array_count$22.$$p = null;; - - if (object == null) { - object = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_2 = object))) { - return $ret_or_2 - } else { - return block - }; return nil; })())) { - return $send2(self, $find_super(self, 'count', $Array_count$22, false, true), 'count', $zuper, $iter) + ; + ; + if (($truthy(object !== undefined) || ($truthy(block)))) { + return $send2(self, $find_super(self, 'count', $$count, false, true), 'count', [object], block) } else { return self.$size() }; - }, $Array_count$22.$$arity = -1); + }, -1); - Opal.def(self, '$initialize_copy', $Array_initialize_copy$23 = function $$initialize_copy(other) { + $def(self, '$initialize_copy', function $$initialize_copy(other) { var self = this; return self.$replace(other) - }, $Array_initialize_copy$23.$$arity = 1); + }, 1); - Opal.def(self, '$collect', $Array_collect$24 = function $$collect() { - var $iter = $Array_collect$24.$$p, block = $iter || nil, $$25, self = this; + $def(self, '$collect', function $$collect() { + var block = $$collect.$$p || nil, self = this; - if ($iter) $Array_collect$24.$$p = null; - + delete $$collect.$$p; - if ($iter) $Array_collect$24.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["collect"], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["collect"], function $$14(){var self = $$14.$$s == null ? this : $$14.$$s; - return self.$size()}, $$25.$$s = self, $$25.$$arity = 0, $$25)) + return self.$size()}, {$$arity: 0, $$s: self}) }; var result = []; @@ -13462,20 +13554,18 @@ Opal.modules["corelib/array"] = function(Opal) { return result; ; - }, $Array_collect$24.$$arity = 0); + }, 0); - Opal.def(self, '$collect!', $Array_collect$excl$26 = function() { - var $iter = $Array_collect$excl$26.$$p, block = $iter || nil, $$27, self = this; + $def(self, '$collect!', function $Array_collect$excl$15() { + var block = $Array_collect$excl$15.$$p || nil, self = this; - if ($iter) $Array_collect$excl$26.$$p = null; - + delete $Array_collect$excl$15.$$p; - if ($iter) $Array_collect$excl$26.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["collect!"], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["collect!"], function $$16(){var self = $$16.$$s == null ? this : $$16.$$s; - return self.$size()}, $$27.$$s = self, $$27.$$arity = 0, $$27)) + return self.$size()}, {$$arity: 0, $$s: self}) }; for (var i = 0, length = self.length; i < length; i++) { @@ -13484,7 +13574,7 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_collect$excl$26.$$arity = 0); + }, 0); function binomial_coefficient(n, k) { if (n === k || k === 0) { @@ -13499,17 +13589,16 @@ Opal.modules["corelib/array"] = function(Opal) { } ; - Opal.def(self, '$combination', $Array_combination$28 = function $$combination(n) { - var $$29, $iter = $Array_combination$28.$$p, $yield = $iter || nil, self = this, num = nil; + $def(self, '$combination', function $$combination(n) { + var $yield = $$combination.$$p || nil, self = this, num = nil; - if ($iter) $Array_combination$28.$$p = null; + delete $$combination.$$p; - num = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["combination", num], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; + num = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); + if (!($yield !== nil)) { + return $send(self, 'enum_for', ["combination", num], function $$17(){var self = $$17.$$s == null ? this : $$17.$$s; - return binomial_coefficient(self.length, num)}, $$29.$$s = self, $$29.$$arity = 0, $$29)) + return binomial_coefficient(self.length, num)}, {$$arity: 0, $$s: self}) }; var i, length, stack, chosen, lev, done, next; @@ -13553,19 +13642,18 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_combination$28.$$arity = 1); + }, 1); - Opal.def(self, '$repeated_combination', $Array_repeated_combination$30 = function $$repeated_combination(n) { - var $$31, $iter = $Array_repeated_combination$30.$$p, $yield = $iter || nil, self = this, num = nil; + $def(self, '$repeated_combination', function $$repeated_combination(n) { + var $yield = $$repeated_combination.$$p || nil, self = this, num = nil; - if ($iter) $Array_repeated_combination$30.$$p = null; + delete $$repeated_combination.$$p; - num = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["repeated_combination", num], ($$31 = function(){var self = $$31.$$s == null ? this : $$31.$$s; + num = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); + if (!($yield !== nil)) { + return $send(self, 'enum_for', ["repeated_combination", num], function $$18(){var self = $$18.$$s == null ? this : $$18.$$s; - return binomial_coefficient(self.length + num - 1, num);}, $$31.$$s = self, $$31.$$arity = 0, $$31)) + return binomial_coefficient(self.length + num - 1, num);}, {$$arity: 0, $$s: self}) }; function iterate(max, from, buffer, self) { @@ -13586,9 +13674,9 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_repeated_combination$30.$$arity = 1); + }, 1); - Opal.def(self, '$compact', $Array_compact$32 = function $$compact() { + $def(self, '$compact', function $$compact() { var self = this; @@ -13602,9 +13690,9 @@ Opal.modules["corelib/array"] = function(Opal) { return result; - }, $Array_compact$32.$$arity = 0); + }, 0); - Opal.def(self, '$compact!', $Array_compact$excl$33 = function() { + $def(self, '$compact!', function $Array_compact$excl$19() { var self = this; @@ -13621,50 +13709,43 @@ Opal.modules["corelib/array"] = function(Opal) { return self.length === original ? nil : self; - }, $Array_compact$excl$33.$$arity = 0); + }, 0); - Opal.def(self, '$concat', $Array_concat$34 = function $$concat($a) { - var $post_args, others, $$35, $$36, self = this; + $def(self, '$concat', function $$concat($a) { + var $post_args, others, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); others = $post_args;; - others = $send(others, 'map', [], ($$35 = function(other){var self = $$35.$$s == null ? this : $$35.$$s; + others = $send(others, 'map', [], function $$20(other){var self = $$20.$$s == null ? this : $$20.$$s; - if (other == null) { - other = nil; - }; - other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { - return other.$to_a() - } else { - return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() - }; return nil; })(); + if (other == null) other = nil;; + other = ($eqeqeq($$$('Array'), other) ? (other.$to_a()) : (($coerce_to(other, $$$('Array'), 'to_ary')).$to_a())); if ($truthy(other['$equal?'](self))) { - other = other.$dup()}; - return other;}, $$35.$$s = self, $$35.$$arity = 1, $$35)); - $send(others, 'each', [], ($$36 = function(other){var self = $$36.$$s == null ? this : $$36.$$s; + other = other.$dup() + }; + return other;}, {$$arity: 1, $$s: self}); + $send(others, 'each', [], function $$21(other){var self = $$21.$$s == null ? this : $$21.$$s; - if (other == null) { - other = nil; - }; + if (other == null) other = nil;; for (var i = 0, length = other.length; i < length; i++) { self.push(other[i]); } - ;}, $$36.$$s = self, $$36.$$arity = 1, $$36)); + ;}, {$$arity: 1, $$s: self}); return self; - }, $Array_concat$34.$$arity = -1); + }, -1); - Opal.def(self, '$delete', $Array_delete$37 = function(object) { - var $iter = $Array_delete$37.$$p, $yield = $iter || nil, self = this; + $def(self, '$delete', function $Array_delete$22(object) { + var $yield = $Array_delete$22.$$p || nil, self = this; - if ($iter) $Array_delete$37.$$p = null; + delete $Array_delete$22.$$p; var original = self.length; @@ -13685,13 +13766,13 @@ Opal.modules["corelib/array"] = function(Opal) { } return object; - }, $Array_delete$37.$$arity = 1); + }, 1); - Opal.def(self, '$delete_at', $Array_delete_at$38 = function $$delete_at(index) { + $def(self, '$delete_at', function $$delete_at(index) { var self = this; - index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); + index = $coerce_to(index, $$$('Integer'), 'to_int'); if (index < 0) { index += self.length; @@ -13707,53 +13788,46 @@ Opal.modules["corelib/array"] = function(Opal) { return result; - }, $Array_delete_at$38.$$arity = 1); + }, 1); - Opal.def(self, '$delete_if', $Array_delete_if$39 = function $$delete_if() { - var $iter = $Array_delete_if$39.$$p, block = $iter || nil, $$40, self = this; + $def(self, '$delete_if', function $$delete_if() { + var block = $$delete_if.$$p || nil, self = this; - if ($iter) $Array_delete_if$39.$$p = null; - + delete $$delete_if.$$p; - if ($iter) $Array_delete_if$39.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["delete_if"], ($$40 = function(){var self = $$40.$$s == null ? this : $$40.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["delete_if"], function $$23(){var self = $$23.$$s == null ? this : $$23.$$s; - return self.$size()}, $$40.$$s = self, $$40.$$arity = 0, $$40)) + return self.$size()}, {$$arity: 0, $$s: self}) }; filterIf(self, $falsy, block); return self; - }, $Array_delete_if$39.$$arity = 0); + }, 0); - Opal.def(self, '$difference', $Array_difference$41 = function $$difference($a) { - var $post_args, arrays, $$42, self = this; + $def(self, '$difference', function $$difference($a) { + var $post_args, arrays, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); arrays = $post_args;; - return $send(arrays, 'reduce', [self.$to_a().$dup()], ($$42 = function(a, b){var self = $$42.$$s == null ? this : $$42.$$s; - + return $send(arrays, 'reduce', [self.$to_a().$dup()], function $$24(a, b){ - if (a == null) { - a = nil; - }; + if (a == null) a = nil;; - if (b == null) { - b = nil; - }; - return $rb_minus(a, b);}, $$42.$$s = self, $$42.$$arity = 2, $$42)); - }, $Array_difference$41.$$arity = -1); + if (b == null) b = nil;; + return $rb_minus(a, b);}, 2); + }, -1); - Opal.def(self, '$dig', $Array_dig$43 = function $$dig(idx, $a) { + $def(self, '$dig', function $$dig(idx, $a) { var $post_args, idxs, self = this, item = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); idxs = $post_args;; item = self['$[]'](idx); @@ -13762,33 +13836,30 @@ Opal.modules["corelib/array"] = function(Opal) { return item; } ; - if ($truthy(item['$respond_to?']("dig"))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") + if (!$truthy(item['$respond_to?']("dig"))) { + $Kernel.$raise($$$('TypeError'), "" + (item.$class()) + " does not have #dig method") }; - return $send(item, 'dig', Opal.to_a(idxs)); - }, $Array_dig$43.$$arity = -2); + return $send(item, 'dig', $to_a(idxs)); + }, -2); - Opal.def(self, '$drop', $Array_drop$44 = function $$drop(number) { + $def(self, '$drop', function $$drop(number) { var self = this; + number = $coerce_to(number, $$$('Integer'), 'to_int'); + if (number < 0) { - self.$raise($$($nesting, 'ArgumentError')) + $Kernel.$raise($$$('ArgumentError')) } return self.slice(number); - }, $Array_drop$44.$$arity = 1); + }, 1); - Opal.def(self, '$dup', $Array_dup$45 = function $$dup() { - var $iter = $Array_dup$45.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$dup', function $$dup() { + var $yield = $$dup.$$p || nil, self = this; - if ($iter) $Array_dup$45.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$dup.$$p; if (self.$$class === Opal.Array && @@ -13798,21 +13869,19 @@ Opal.modules["corelib/array"] = function(Opal) { return self.slice(0); } ; - return $send2(self, $find_super(self, 'dup', $Array_dup$45, false, true), 'dup', $zuper, $iter); - }, $Array_dup$45.$$arity = 0); + return $send2(self, $find_super(self, 'dup', $$dup, false, true), 'dup', [], $yield); + }, 0); - Opal.def(self, '$each', $Array_each$46 = function $$each() { - var $iter = $Array_each$46.$$p, block = $iter || nil, $$47, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Array_each$46.$$p = null; - + delete $$each.$$p; - if ($iter) $Array_each$46.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each"], ($$47 = function(){var self = $$47.$$s == null ? this : $$47.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each"], function $$25(){var self = $$25.$$s == null ? this : $$25.$$s; - return self.$size()}, $$47.$$s = self, $$47.$$arity = 0, $$47)) + return self.$size()}, {$$arity: 0, $$s: self}) }; for (var i = 0, length = self.length; i < length; i++) { @@ -13820,20 +13889,18 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_each$46.$$arity = 0); + }, 0); - Opal.def(self, '$each_index', $Array_each_index$48 = function $$each_index() { - var $iter = $Array_each_index$48.$$p, block = $iter || nil, $$49, self = this; + $def(self, '$each_index', function $$each_index() { + var block = $$each_index.$$p || nil, self = this; - if ($iter) $Array_each_index$48.$$p = null; - + delete $$each_index.$$p; - if ($iter) $Array_each_index$48.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_index"], ($$49 = function(){var self = $$49.$$s == null ? this : $$49.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each_index"], function $$26(){var self = $$26.$$s == null ? this : $$26.$$s; - return self.$size()}, $$49.$$s = self, $$49.$$arity = 0, $$49)) + return self.$size()}, {$$arity: 0, $$s: self}) }; for (var i = 0, length = self.length; i < length; i++) { @@ -13841,15 +13908,15 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_each_index$48.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $Array_empty$ques$50 = function() { + $def(self, '$empty?', function $Array_empty$ques$27() { var self = this; return self.length === 0; - }, $Array_empty$ques$50.$$arity = 0); + }, 0); - Opal.def(self, '$eql?', $Array_eql$ques$51 = function(other) { + $def(self, '$eql?', function $Array_eql$ques$28(other) { var self = this; @@ -13894,20 +13961,19 @@ Opal.modules["corelib/array"] = function(Opal) { return _eql(self, other); - }, $Array_eql$ques$51.$$arity = 1); + }, 1); - Opal.def(self, '$fetch', $Array_fetch$52 = function $$fetch(index, defaults) { - var $iter = $Array_fetch$52.$$p, block = $iter || nil, self = this; + $def(self, '$fetch', function $$fetch(index, defaults) { + var block = $$fetch.$$p || nil, self = this; - if ($iter) $Array_fetch$52.$$p = null; - + delete $$fetch.$$p; - if ($iter) $Array_fetch$52.$$p = null;; + ; ; var original = index; - index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); + index = $coerce_to(index, $$$('Integer'), 'to_int'); if (index < 0) { index += self.length; @@ -13930,69 +13996,77 @@ Opal.modules["corelib/array"] = function(Opal) { } if (self.length === 0) { - self.$raise($$($nesting, 'IndexError'), "" + "index " + (original) + " outside of array bounds: 0...0") + $Kernel.$raise($$$('IndexError'), "index " + (original) + " outside of array bounds: 0...0") } else { - self.$raise($$($nesting, 'IndexError'), "" + "index " + (original) + " outside of array bounds: -" + (self.length) + "..." + (self.length)); + $Kernel.$raise($$$('IndexError'), "index " + (original) + " outside of array bounds: -" + (self.length) + "..." + (self.length)); } ; - }, $Array_fetch$52.$$arity = -2); + }, -2); - Opal.def(self, '$fill', $Array_fill$53 = function $$fill($a) { - var $iter = $Array_fill$53.$$p, block = $iter || nil, $post_args, args, $b, $c, self = this, one = nil, two = nil, obj = nil, left = nil, right = nil; + $def(self, '$fill', function $$fill($a) { + var block = $$fill.$$p || nil, $post_args, args, $b, $c, self = this, one = nil, two = nil, obj = nil, left = nil, right = nil; - if ($iter) $Array_fill$53.$$p = null; - + delete $$fill.$$p; - if ($iter) $Array_fill$53.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; var i, length, value;; if ($truthy(block)) { if ($truthy(args.length > 2)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (args.$length()) + " for 0..2)")}; - $c = args, $b = Opal.to_ary($c), (one = ($b[0] == null ? nil : $b[0])), (two = ($b[1] == null ? nil : $b[1])), $c; + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (args.$length()) + " for 0..2)") + }; + $c = args, $b = $to_ary($c), (one = ($b[0] == null ? nil : $b[0])), (two = ($b[1] == null ? nil : $b[1])), $c; } else { if ($truthy(args.length == 0)) { - self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1..3)") + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (0 for 1..3)") } else if ($truthy(args.length > 3)) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (args.$length()) + " for 1..3)")}; - $c = args, $b = Opal.to_ary($c), (obj = ($b[0] == null ? nil : $b[0])), (one = ($b[1] == null ? nil : $b[1])), (two = ($b[2] == null ? nil : $b[2])), $c; + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (args.$length()) + " for 1..3)") + }; + $c = args, $b = $to_ary($c), (obj = ($b[0] == null ? nil : $b[0])), (one = ($b[1] == null ? nil : $b[1])), (two = ($b[2] == null ? nil : $b[2])), $c; }; - if ($truthy($$($nesting, 'Range')['$==='](one))) { + if ($eqeqeq($$$('Range'), one)) { if ($truthy(two)) { - self.$raise($$($nesting, 'TypeError'), "length invalid with range")}; - left = $coerce_to(one.begin, $$($nesting, 'Integer'), 'to_int'); + $Kernel.$raise($$$('TypeError'), "length invalid with range") + }; + left = one.begin === nil ? 0 : $coerce_to(one.begin, $$$('Integer'), 'to_int'); if ($truthy(left < 0)) { - left += this.length}; + left += this.length + }; if ($truthy(left < 0)) { - self.$raise($$($nesting, 'RangeError'), "" + (one.$inspect()) + " out of range")}; - right = $coerce_to(one.end, $$($nesting, 'Integer'), 'to_int'); + $Kernel.$raise($$$('RangeError'), "" + (one.$inspect()) + " out of range") + }; + right = one.end === nil ? -1 : $coerce_to(one.end, $$$('Integer'), 'to_int'); if ($truthy(right < 0)) { - right += this.length}; - if ($truthy(one['$exclude_end?']())) { - } else { + right += this.length + }; + if (!$truthy(one['$exclude_end?']())) { right += 1 }; if ($truthy(right <= left)) { - return self}; + return self + }; } else if ($truthy(one)) { - left = $coerce_to(one, $$($nesting, 'Integer'), 'to_int'); + left = $coerce_to(one, $$$('Integer'), 'to_int'); if ($truthy(left < 0)) { - left += this.length}; + left += this.length + }; if ($truthy(left < 0)) { - left = 0}; + left = 0 + }; if ($truthy(two)) { - right = $coerce_to(two, $$($nesting, 'Integer'), 'to_int'); + right = $coerce_to(two, $$$('Integer'), 'to_int'); if ($truthy(right == 0)) { - return self}; + return self + }; right += left; } else { right = this.length @@ -14007,9 +14081,11 @@ Opal.modules["corelib/array"] = function(Opal) { for (i = this.length; i < right; i++) { self[i] = nil; } + }; if ($truthy(right > this.length)) { - this.length = right}; + this.length = right + }; if ($truthy(block)) { for (length = this.length; left < right; left++) { @@ -14025,9 +14101,9 @@ Opal.modules["corelib/array"] = function(Opal) { }; return self; - }, $Array_fill$53.$$arity = -1); + }, -1); - Opal.def(self, '$first', $Array_first$54 = function $$first(count) { + $def(self, '$first', function $$first(count) { var self = this; @@ -14037,17 +14113,17 @@ Opal.modules["corelib/array"] = function(Opal) { return self.length === 0 ? nil : self[0]; } - count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); + count = $coerce_to(count, $$$('Integer'), 'to_int'); if (count < 0) { - self.$raise($$($nesting, 'ArgumentError'), "negative array size"); + $Kernel.$raise($$$('ArgumentError'), "negative array size"); } return self.slice(0, count); ; - }, $Array_first$54.$$arity = -1); + }, -1); - Opal.def(self, '$flatten', $Array_flatten$55 = function $$flatten(level) { + $def(self, '$flatten', function $$flatten(level) { var self = this; @@ -14076,11 +14152,11 @@ Opal.modules["corelib/array"] = function(Opal) { } if (!ary.$$is_array) { - self.$raise($$($nesting, 'TypeError')); + $Kernel.$raise($$$('TypeError')); } if (ary === self) { - self.$raise($$($nesting, 'ArgumentError')); + $Kernel.$raise($$$('ArgumentError')); } switch (level) { @@ -14098,14 +14174,14 @@ Opal.modules["corelib/array"] = function(Opal) { } if (level !== undefined) { - level = $coerce_to(level, $$($nesting, 'Integer'), 'to_int'); + level = $coerce_to(level, $$$('Integer'), 'to_int'); } return _flatten(self, level); ; - }, $Array_flatten$55.$$arity = -1); + }, -1); - Opal.def(self, '$flatten!', $Array_flatten$excl$56 = function(level) { + $def(self, '$flatten!', function $Array_flatten$excl$29(level) { var self = this; @@ -14128,9 +14204,9 @@ Opal.modules["corelib/array"] = function(Opal) { self.$replace(flattened); ; return self; - }, $Array_flatten$excl$56.$$arity = -1); + }, -1); - Opal.def(self, '$hash', $Array_hash$57 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; @@ -14170,9 +14246,9 @@ Opal.modules["corelib/array"] = function(Opal) { } } - }, $Array_hash$57.$$arity = 0); + }, 0); - Opal.def(self, '$include?', $Array_include$ques$58 = function(member) { + $def(self, '$include?', function $Array_include$ques$30(member) { var self = this; @@ -14184,15 +14260,14 @@ Opal.modules["corelib/array"] = function(Opal) { return false; - }, $Array_include$ques$58.$$arity = 1); + }, 1); - Opal.def(self, '$index', $Array_index$59 = function $$index(object) { - var $iter = $Array_index$59.$$p, block = $iter || nil, self = this; + $def(self, '$index', function $$index(object) { + var block = $$index.$$p || nil, self = this; - if ($iter) $Array_index$59.$$p = null; + delete $$index.$$p; - - if ($iter) $Array_index$59.$$p = null;; + ; ; var i, length, value; @@ -14223,25 +14298,25 @@ Opal.modules["corelib/array"] = function(Opal) { return nil; ; - }, $Array_index$59.$$arity = -1); + }, -1); - Opal.def(self, '$insert', $Array_insert$60 = function $$insert(index, $a) { + $def(self, '$insert', function $$insert(index, $a) { var $post_args, objects, self = this; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); objects = $post_args;; - index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); + index = $coerce_to(index, $$$('Integer'), 'to_int'); if (objects.length > 0) { if (index < 0) { index += self.length + 1; if (index < 0) { - self.$raise($$($nesting, 'IndexError'), "" + (index) + " is out of bounds"); + $Kernel.$raise($$$('IndexError'), "" + (index) + " is out of bounds"); } } if (index > self.length) { @@ -14254,65 +14329,78 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_insert$60.$$arity = -2); + }, -2); + var inspect_stack = []; - Opal.def(self, '$inspect', $Array_inspect$61 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; + var result = [], - id = self.$__id__(); + id = self.$__id__(), + pushed = true; + ; + + return (function() { try { + + + if (inspect_stack.indexOf(id) !== -1) { + pushed = false; + return '[...]'; + } + inspect_stack.push(id) - for (var i = 0, length = self.length; i < length; i++) { - var item = self['$[]'](i); + for (var i = 0, length = self.length; i < length; i++) { + var item = self['$[]'](i); - if ((item).$__id__() === id) { - result.push('[...]'); + result.push($$('Opal').$inspect(item)); } - else { - result.push((item).$inspect()); - } - } - return '[' + result.join(', ') + ']'; - - }, $Array_inspect$61.$$arity = 0); + return '[' + result.join(', ') + ']'; + ; + return nil; + } finally { + if (pushed) inspect_stack.pop() + }; })();; + }, 0); - Opal.def(self, '$intersection', $Array_intersection$62 = function $$intersection($a) { - var $post_args, arrays, $$63, self = this; + $def(self, '$intersection', function $$intersection($a) { + var $post_args, arrays, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); arrays = $post_args;; - return $send(arrays, 'reduce', [self.$to_a().$dup()], ($$63 = function(a, b){var self = $$63.$$s == null ? this : $$63.$$s; - + return $send(arrays, 'reduce', [self.$to_a().$dup()], function $$31(a, b){ - if (a == null) { - a = nil; - }; + if (a == null) a = nil;; - if (b == null) { - b = nil; - }; - return a['$&'](b);}, $$63.$$s = self, $$63.$$arity = 2, $$63)); - }, $Array_intersection$62.$$arity = -1); + if (b == null) b = nil;; + return a['$&'](b);}, 2); + }, -1); + + $def(self, '$intersect?', function $Array_intersect$ques$32(other) { + var self = this; + + return self.$intersection(other)['$empty?']()['$!']() + }, 1); - Opal.def(self, '$join', $Array_join$64 = function $$join(sep) { + $def(self, '$join', function $$join(sep) { var self = this; if ($gvars[","] == null) $gvars[","] = nil; - if (sep == null) { - sep = nil; - }; + if (sep == null) sep = nil;; if ($truthy(self.length === 0)) { - return ""}; + return "" + }; if ($truthy(sep === nil)) { - sep = $gvars[","]}; + sep = $gvars[","] + }; var result = []; var i, length, item, tmp; @@ -14334,7 +14422,7 @@ Opal.modules["corelib/array"] = function(Opal) { tmp = (item).$to_ary(); if (tmp === self) { - self.$raise($$($nesting, 'ArgumentError')); + $Kernel.$raise($$$('ArgumentError')); } if (tmp !== nil) { @@ -14354,36 +14442,34 @@ Opal.modules["corelib/array"] = function(Opal) { } } - self.$raise($$($nesting, 'NoMethodError').$new("" + (Opal.inspect(item)) + " doesn't respond to #to_str, #to_ary or #to_s", "to_str")); + $Kernel.$raise($$$('NoMethodError').$new("" + ($$('Opal').$inspect(self.$item())) + " doesn't respond to #to_str, #to_ary or #to_s", "to_str")); } if (sep === nil) { return result.join(''); } else { - return result.join($$($nesting, 'Opal')['$coerce_to!'](sep, $$($nesting, 'String'), "to_str").$to_s()); + return result.join($Opal['$coerce_to!'](sep, $$$('String'), "to_str").$to_s()); } ; - }, $Array_join$64.$$arity = -1); + }, -1); - Opal.def(self, '$keep_if', $Array_keep_if$65 = function $$keep_if() { - var $iter = $Array_keep_if$65.$$p, block = $iter || nil, $$66, self = this; + $def(self, '$keep_if', function $$keep_if() { + var block = $$keep_if.$$p || nil, self = this; - if ($iter) $Array_keep_if$65.$$p = null; - + delete $$keep_if.$$p; - if ($iter) $Array_keep_if$65.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["keep_if"], ($$66 = function(){var self = $$66.$$s == null ? this : $$66.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["keep_if"], function $$33(){var self = $$33.$$s == null ? this : $$33.$$s; - return self.$size()}, $$66.$$s = self, $$66.$$arity = 0, $$66)) + return self.$size()}, {$$arity: 0, $$s: self}) }; filterIf(self, $truthy, block); return self; - }, $Array_keep_if$65.$$arity = 0); + }, 0); - Opal.def(self, '$last', $Array_last$67 = function $$last(count) { + $def(self, '$last', function $$last(count) { var self = this; @@ -14393,10 +14479,10 @@ Opal.modules["corelib/array"] = function(Opal) { return self.length === 0 ? nil : self[self.length - 1]; } - count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); + count = $coerce_to(count, $$$('Integer'), 'to_int'); if (count < 0) { - self.$raise($$($nesting, 'ArgumentError'), "negative array size"); + $Kernel.$raise($$$('ArgumentError'), "negative array size"); } if (count > self.length) { @@ -14405,36 +14491,32 @@ Opal.modules["corelib/array"] = function(Opal) { return self.slice(self.length - count, self.length); ; - }, $Array_last$67.$$arity = -1); + }, -1); - Opal.def(self, '$length', $Array_length$68 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self.length; - }, $Array_length$68.$$arity = 0); - $alias(self, "map", "collect"); - $alias(self, "map!", "collect!"); + }, 0); - Opal.def(self, '$max', $Array_max$69 = function $$max(n) { - var $iter = $Array_max$69.$$p, block = $iter || nil, self = this; + $def(self, '$max', function $$max(n) { + var block = $$max.$$p || nil, self = this; - if ($iter) $Array_max$69.$$p = null; - + delete $$max.$$p; - if ($iter) $Array_max$69.$$p = null;; + ; ; return $send(self.$each(), 'max', [n], block.$to_proc()); - }, $Array_max$69.$$arity = -1); + }, -1); - Opal.def(self, '$min', $Array_min$70 = function $$min() { - var $iter = $Array_min$70.$$p, block = $iter || nil, self = this; + $def(self, '$min', function $$min() { + var block = $$min.$$p || nil, self = this; - if ($iter) $Array_min$70.$$p = null; - + delete $$min.$$p; - if ($iter) $Array_min$70.$$p = null;; + ; return $send(self.$each(), 'min', [], block.$to_proc()); - }, $Array_min$70.$$arity = 0); + }, 0); // Returns the product of from, from-1, ..., from - how_many + 1. function descending_factorial(from, how_many) { @@ -14448,19 +14530,17 @@ Opal.modules["corelib/array"] = function(Opal) { } ; - Opal.def(self, '$permutation', $Array_permutation$71 = function $$permutation(num) { - var $iter = $Array_permutation$71.$$p, block = $iter || nil, $$72, self = this, perm = nil, used = nil; + $def(self, '$permutation', function $$permutation(num) { + var block = $$permutation.$$p || nil, self = this, perm = nil, used = nil; - if ($iter) $Array_permutation$71.$$p = null; - + delete $$permutation.$$p; - if ($iter) $Array_permutation$71.$$p = null;; ; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["permutation", num], ($$72 = function(){var self = $$72.$$s == null ? this : $$72.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["permutation", num], function $$34(){var self = $$34.$$s == null ? this : $$34.$$s; - return descending_factorial(self.length, num === undefined ? self.length : num);}, $$72.$$s = self, $$72.$$arity = 0, $$72)) + return descending_factorial(self.length, num === undefined ? self.length : num);}, {$$arity: 0, $$s: self}) }; var permute, offensive, output; @@ -14469,7 +14549,7 @@ Opal.modules["corelib/array"] = function(Opal) { num = self.length; } else { - num = $coerce_to(num, $$($nesting, 'Integer'), 'to_int'); + num = $coerce_to(num, $$$('Integer'), 'to_int'); } if (num < 0 || self.length < num) { @@ -14487,8 +14567,8 @@ Opal.modules["corelib/array"] = function(Opal) { } else { // this is the general case - (perm = $$($nesting, 'Array').$new(num)); - (used = $$($nesting, 'Array').$new(self.length, false)); + (perm = $$('Array').$new(num)); + (used = $$('Array').$new(self.length, false)); permute = function(num, perm, index, used, blk) { self = this; @@ -14522,23 +14602,22 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_permutation$71.$$arity = -1); + }, -1); - Opal.def(self, '$repeated_permutation', $Array_repeated_permutation$73 = function $$repeated_permutation(n) { - var $$74, $iter = $Array_repeated_permutation$73.$$p, $yield = $iter || nil, self = this, num = nil; + $def(self, '$repeated_permutation', function $$repeated_permutation(n) { + var $yield = $$repeated_permutation.$$p || nil, self = this, num = nil; - if ($iter) $Array_repeated_permutation$73.$$p = null; + delete $$repeated_permutation.$$p; - num = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["repeated_permutation", num], ($$74 = function(){var self = $$74.$$s == null ? this : $$74.$$s; + num = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); + if (!($yield !== nil)) { + return $send(self, 'enum_for', ["repeated_permutation", num], function $$35(){var self = $$35.$$s == null ? this : $$35.$$s; if ($truthy($rb_ge(num, 0))) { return self.$size()['$**'](num) } else { return 0 - }}, $$74.$$s = self, $$74.$$arity = 0, $$74)) + }}, {$$arity: 0, $$s: self}) }; function iterate(max, buffer, self) { @@ -14557,9 +14636,9 @@ Opal.modules["corelib/array"] = function(Opal) { iterate(num, [], self.slice()); ; return self; - }, $Array_repeated_permutation$73.$$arity = 1); + }, 1); - Opal.def(self, '$pop', $Array_pop$75 = function $$pop(count) { + $def(self, '$pop', function $$pop(count) { var self = this; @@ -14567,13 +14646,17 @@ Opal.modules["corelib/array"] = function(Opal) { if ($truthy(count === undefined)) { if ($truthy(self.length === 0)) { - return nil}; - return self.pop();}; - count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); + return nil + }; + return self.pop(); + }; + count = $coerce_to(count, $$$('Integer'), 'to_int'); if ($truthy(count < 0)) { - self.$raise($$($nesting, 'ArgumentError'), "negative array size")}; + $Kernel.$raise($$$('ArgumentError'), "negative array size") + }; if ($truthy(self.length === 0)) { - return []}; + return [] + }; if ($truthy(count === 1)) { return [self.pop()]; } else if ($truthy(count > self.length)) { @@ -14581,17 +14664,16 @@ Opal.modules["corelib/array"] = function(Opal) { } else { return self.splice(self.length - count, self.length); }; - }, $Array_pop$75.$$arity = -1); + }, -1); - Opal.def(self, '$product', $Array_product$76 = function $$product($a) { - var $iter = $Array_product$76.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$product', function $$product($a) { + var block = $$product.$$p || nil, $post_args, args, self = this; - if ($iter) $Array_product$76.$$p = null; + delete $$product.$$p; + ; - if ($iter) $Array_product$76.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; @@ -14604,7 +14686,7 @@ Opal.modules["corelib/array"] = function(Opal) { arrays[0] = self; for (i = 1; i < n; i++) { - arrays[i] = $coerce_to(args[i - 1], $$($nesting, 'Array'), 'to_ary'); + arrays[i] = $coerce_to(args[i - 1], $$$('Array'), 'to_ary'); } for (i = 0; i < n; i++) { @@ -14614,7 +14696,7 @@ Opal.modules["corelib/array"] = function(Opal) { } resultlen *= len; if (resultlen > 2147483647) { - self.$raise($$($nesting, 'RangeError'), "too big to product") + $Kernel.$raise($$$('RangeError'), "too big to product") } lengths[i] = len; counters[i] = 0; @@ -14641,14 +14723,14 @@ Opal.modules["corelib/array"] = function(Opal) { return result || self; ; - }, $Array_product$76.$$arity = -1); + }, -1); - Opal.def(self, '$push', $Array_push$77 = function $$push($a) { + $def(self, '$push', function $$push($a) { var $post_args, objects, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); objects = $post_args;; @@ -14657,10 +14739,9 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, $Array_push$77.$$arity = -1); - $alias(self, "append", "push"); + }, -1); - Opal.def(self, '$rassoc', $Array_rassoc$78 = function $$rassoc(object) { + $def(self, '$rassoc', function $$rassoc(object) { var self = this; @@ -14676,20 +14757,18 @@ Opal.modules["corelib/array"] = function(Opal) { return nil; - }, $Array_rassoc$78.$$arity = 1); + }, 1); - Opal.def(self, '$reject', $Array_reject$79 = function $$reject() { - var $iter = $Array_reject$79.$$p, block = $iter || nil, $$80, self = this; + $def(self, '$reject', function $$reject() { + var block = $$reject.$$p || nil, self = this; - if ($iter) $Array_reject$79.$$p = null; - + delete $$reject.$$p; - if ($iter) $Array_reject$79.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reject"], ($$80 = function(){var self = $$80.$$s == null ? this : $$80.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["reject"], function $$36(){var self = $$36.$$s == null ? this : $$36.$$s; - return self.$size()}, $$80.$$s = self, $$80.$$arity = 0, $$80)) + return self.$size()}, {$$arity: 0, $$s: self}) }; var result = []; @@ -14703,82 +14782,73 @@ Opal.modules["corelib/array"] = function(Opal) { } return result; ; - }, $Array_reject$79.$$arity = 0); + }, 0); - Opal.def(self, '$reject!', $Array_reject$excl$81 = function() { - var $iter = $Array_reject$excl$81.$$p, block = $iter || nil, $$82, self = this, original = nil; + $def(self, '$reject!', function $Array_reject$excl$37() { + var block = $Array_reject$excl$37.$$p || nil, self = this, original = nil; - if ($iter) $Array_reject$excl$81.$$p = null; - + delete $Array_reject$excl$37.$$p; - if ($iter) $Array_reject$excl$81.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reject!"], ($$82 = function(){var self = $$82.$$s == null ? this : $$82.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["reject!"], function $$38(){var self = $$38.$$s == null ? this : $$38.$$s; - return self.$size()}, $$82.$$s = self, $$82.$$arity = 0, $$82)) + return self.$size()}, {$$arity: 0, $$s: self}) }; original = self.$length(); $send(self, 'delete_if', [], block.$to_proc()); - if (self.$length()['$=='](original)) { + if ($eqeq(self.$length(), original)) { return nil } else { return self }; - }, $Array_reject$excl$81.$$arity = 0); + }, 0); - Opal.def(self, '$replace', $Array_replace$83 = function $$replace(other) { + $def(self, '$replace', function $$replace(other) { var self = this; - other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { - return other.$to_a() - } else { - return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() - }; return nil; })(); + other = ($eqeqeq($$$('Array'), other) ? (other.$to_a()) : (($coerce_to(other, $$$('Array'), 'to_ary')).$to_a())); self.splice(0, self.length); self.push.apply(self, other); ; return self; - }, $Array_replace$83.$$arity = 1); + }, 1); - Opal.def(self, '$reverse', $Array_reverse$84 = function $$reverse() { + $def(self, '$reverse', function $$reverse() { var self = this; return self.slice(0).reverse(); - }, $Array_reverse$84.$$arity = 0); + }, 0); - Opal.def(self, '$reverse!', $Array_reverse$excl$85 = function() { + $def(self, '$reverse!', function $Array_reverse$excl$39() { var self = this; return self.reverse(); - }, $Array_reverse$excl$85.$$arity = 0); + }, 0); - Opal.def(self, '$reverse_each', $Array_reverse_each$86 = function $$reverse_each() { - var $iter = $Array_reverse_each$86.$$p, block = $iter || nil, $$87, self = this; + $def(self, '$reverse_each', function $$reverse_each() { + var block = $$reverse_each.$$p || nil, self = this; - if ($iter) $Array_reverse_each$86.$$p = null; + delete $$reverse_each.$$p; - - if ($iter) $Array_reverse_each$86.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reverse_each"], ($$87 = function(){var self = $$87.$$s == null ? this : $$87.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["reverse_each"], function $$40(){var self = $$40.$$s == null ? this : $$40.$$s; - return self.$size()}, $$87.$$s = self, $$87.$$arity = 0, $$87)) + return self.$size()}, {$$arity: 0, $$s: self}) }; $send(self.$reverse(), 'each', [], block.$to_proc()); return self; - }, $Array_reverse_each$86.$$arity = 0); + }, 0); - Opal.def(self, '$rindex', $Array_rindex$88 = function $$rindex(object) { - var $iter = $Array_rindex$88.$$p, block = $iter || nil, self = this; + $def(self, '$rindex', function $$rindex(object) { + var block = $$rindex.$$p || nil, self = this; - if ($iter) $Array_rindex$88.$$p = null; + delete $$rindex.$$p; - - if ($iter) $Array_rindex$88.$$p = null;; + ; ; var i, value; @@ -14816,20 +14886,18 @@ Opal.modules["corelib/array"] = function(Opal) { return nil; ; - }, $Array_rindex$88.$$arity = -1); + }, -1); - Opal.def(self, '$rotate', $Array_rotate$89 = function $$rotate(n) { + $def(self, '$rotate', function $$rotate(n) { var self = this; - if (n == null) { - n = 1; - }; + if (n == null) n = 1;; var ary, idx, firstPart, lastPart; - n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int') + n = $coerce_to(n, $$$('Integer'), 'to_int') if (self.length === 1) { return self.slice(); @@ -14845,95 +14913,83 @@ Opal.modules["corelib/array"] = function(Opal) { lastPart = ary.slice(0, idx); return firstPart.concat(lastPart); ; - }, $Array_rotate$89.$$arity = -1); + }, -1); - Opal.def(self, '$rotate!', $Array_rotate$excl$90 = function(cnt) { + $def(self, '$rotate!', function $Array_rotate$excl$41(cnt) { var self = this, ary = nil; - if (cnt == null) { - cnt = 1; - }; + if (cnt == null) cnt = 1;; if (self.length === 0 || self.length === 1) { return self; } - cnt = $coerce_to(cnt, $$($nesting, 'Integer'), 'to_int'); + cnt = $coerce_to(cnt, $$$('Integer'), 'to_int'); ; ary = self.$rotate(cnt); return self.$replace(ary); - }, $Array_rotate$excl$90.$$arity = -1); - (function($base, $super, $parent_nesting) { + }, -1); + (function($base, $super) { var self = $klass($base, $super, 'SampleRandom'); - var $nesting = [self].concat($parent_nesting), $SampleRandom_initialize$91, $SampleRandom_rand$92; + var $proto = self.$$prototype; - self.$$prototype.rng = nil; + $proto.rng = nil; - Opal.def(self, '$initialize', $SampleRandom_initialize$91 = function $$initialize(rng) { + $def(self, '$initialize', function $$initialize(rng) { var self = this; return (self.rng = rng) - }, $SampleRandom_initialize$91.$$arity = 1); - return (Opal.def(self, '$rand', $SampleRandom_rand$92 = function $$rand(size) { + }, 1); + return $def(self, '$rand', function $$rand(size) { var self = this, random = nil; - random = $coerce_to(self.rng.$rand(size), $$($nesting, 'Integer'), 'to_int'); + random = $coerce_to(self.rng.$rand(size), $$$('Integer'), 'to_int'); if ($truthy(random < 0)) { - self.$raise($$($nesting, 'RangeError'), "random value must be >= 0")}; - if ($truthy(random < size)) { - } else { - self.$raise($$($nesting, 'RangeError'), "random value must be less than Array size") + $Kernel.$raise($$$('RangeError'), "random value must be >= 0") + }; + if (!$truthy(random < size)) { + $Kernel.$raise($$$('RangeError'), "random value must be less than Array size") }; return random; - }, $SampleRandom_rand$92.$$arity = 1), nil) && 'rand'; - })($nesting[0], null, $nesting); + }, 1); + })(self, null); - Opal.def(self, '$sample', $Array_sample$93 = function $$sample(count, options) { - var self = this, o = nil, $ret_or_3 = nil, rng = nil, $ret_or_4 = nil; + $def(self, '$sample', function $$sample(count, options) { + var self = this, o = nil, rng = nil; ; ; if ($truthy(count === undefined)) { - return self.$at($$($nesting, 'Kernel').$rand(self.length))}; + return self.$at($Kernel.$rand(self.length)) + }; if ($truthy(options === undefined)) { - if ($truthy((o = $$($nesting, 'Opal')['$coerce_to?'](count, $$($nesting, 'Hash'), "to_hash")))) { + if ($truthy((o = $Opal['$coerce_to?'](count, $$$('Hash'), "to_hash")))) { options = o; count = nil; } else { options = nil; - count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); + count = $coerce_to(count, $$$('Integer'), 'to_int'); } } else { - count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); - options = $coerce_to(options, $$($nesting, 'Hash'), 'to_hash'); + count = $coerce_to(count, $$$('Integer'), 'to_int'); + options = $coerce_to(options, $$$('Hash'), 'to_hash'); + }; + if (($truthy(count) && ($truthy(count < 0)))) { + $Kernel.$raise($$$('ArgumentError'), "count must be greater than 0") }; - if ($truthy((function() {if ($truthy(($ret_or_3 = count))) { - return count < 0; - } else { - return $ret_or_3 - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'), "count must be greater than 0")}; if ($truthy(options)) { - rng = options['$[]']("random")}; - rng = (function() {if ($truthy((function() {if ($truthy(($ret_or_4 = rng))) { - return rng['$respond_to?']("rand") - } else { - return $ret_or_4 - }; return nil; })())) { - return $$($nesting, 'SampleRandom').$new(rng) - } else { - return $$($nesting, 'Kernel') - }; return nil; })(); - if ($truthy(count)) { - } else { + rng = options['$[]']("random") + }; + rng = (($truthy(rng) && ($truthy(rng['$respond_to?']("rand")))) ? ($$('SampleRandom').$new(rng)) : ($Kernel)); + if (!$truthy(count)) { return self[rng.$rand(self.length)] }; @@ -14964,7 +15020,7 @@ Opal.modules["corelib/array"] = function(Opal) { abandon = false; spin = 0; - result = $$($nesting, 'Array').$new(count); + result = $$('Array').$new(count); i = 1; result[0] = rng.$rand(self.length); @@ -15016,20 +15072,18 @@ Opal.modules["corelib/array"] = function(Opal) { return count === self.length ? result : (result)['$[]'](0, count); } ; - }, $Array_sample$93.$$arity = -1); + }, -1); - Opal.def(self, '$select', $Array_select$94 = function $$select() { - var $iter = $Array_select$94.$$p, block = $iter || nil, $$95, self = this; + $def(self, '$select', function $$select() { + var block = $$select.$$p || nil, self = this; - if ($iter) $Array_select$94.$$p = null; - + delete $$select.$$p; - if ($iter) $Array_select$94.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["select"], ($$95 = function(){var self = $$95.$$s == null ? this : $$95.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["select"], function $$42(){var self = $$42.$$s == null ? this : $$42.$$s; - return self.$size()}, $$95.$$s = self, $$95.$$arity = 0, $$95)) + return self.$size()}, {$$arity: 0, $$s: self}) }; var result = []; @@ -15046,31 +15100,27 @@ Opal.modules["corelib/array"] = function(Opal) { return result; ; - }, $Array_select$94.$$arity = 0); + }, 0); - Opal.def(self, '$select!', $Array_select$excl$96 = function() { - var $iter = $Array_select$excl$96.$$p, block = $iter || nil, $$97, self = this; + $def(self, '$select!', function $Array_select$excl$43() { + var block = $Array_select$excl$43.$$p || nil, self = this; - if ($iter) $Array_select$excl$96.$$p = null; - + delete $Array_select$excl$43.$$p; - if ($iter) $Array_select$excl$96.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["select!"], ($$97 = function(){var self = $$97.$$s == null ? this : $$97.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["select!"], function $$44(){var self = $$44.$$s == null ? this : $$44.$$s; - return self.$size()}, $$97.$$s = self, $$97.$$arity = 0, $$97)) + return self.$size()}, {$$arity: 0, $$s: self}) }; var original = self.length; $send(self, 'keep_if', [], block.$to_proc()); return self.length === original ? nil : self; ; - }, $Array_select$excl$96.$$arity = 0); - $alias(self, "filter", "select"); - $alias(self, "filter!", "select!"); + }, 0); - Opal.def(self, '$shift', $Array_shift$98 = function $$shift(count) { + $def(self, '$shift', function $$shift(count) { var self = this; @@ -15078,26 +15128,29 @@ Opal.modules["corelib/array"] = function(Opal) { if ($truthy(count === undefined)) { if ($truthy(self.length === 0)) { - return nil}; - return shiftNoArg(self);}; - count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); + return nil + }; + return shiftNoArg(self); + }; + count = $coerce_to(count, $$$('Integer'), 'to_int'); if ($truthy(count < 0)) { - self.$raise($$($nesting, 'ArgumentError'), "negative array size")}; + $Kernel.$raise($$$('ArgumentError'), "negative array size") + }; if ($truthy(self.length === 0)) { - return []}; + return [] + }; return self.splice(0, count);; - }, $Array_shift$98.$$arity = -1); - $alias(self, "size", "length"); + }, -1); - Opal.def(self, '$shuffle', $Array_shuffle$99 = function $$shuffle(rng) { + $def(self, '$shuffle', function $$shuffle(rng) { var self = this; ; return self.$dup().$to_a()['$shuffle!'](rng); - }, $Array_shuffle$99.$$arity = -1); + }, -1); - Opal.def(self, '$shuffle!', $Array_shuffle$excl$100 = function(rng) { + $def(self, '$shuffle!', function $Array_shuffle$excl$45(rng) { var self = this; @@ -15106,7 +15159,7 @@ Opal.modules["corelib/array"] = function(Opal) { var randgen, i = self.length, j, tmp; if (rng !== undefined) { - rng = $$($nesting, 'Opal')['$coerce_to?'](rng, $$($nesting, 'Hash'), "to_hash"); + rng = $Opal['$coerce_to?'](rng, $$$('Hash'), "to_hash"); if (rng !== nil) { rng = rng['$[]']("random"); @@ -15122,11 +15175,11 @@ Opal.modules["corelib/array"] = function(Opal) { j = randgen.$rand(i).$to_int(); if (j < 0) { - self.$raise($$($nesting, 'RangeError'), "" + "random number too small " + (j)) + $Kernel.$raise($$$('RangeError'), "random number too small " + (j)) } if (j >= i) { - self.$raise($$($nesting, 'RangeError'), "" + "random number too big " + (j)) + $Kernel.$raise($$$('RangeError'), "random number too big " + (j)) } } else { @@ -15140,22 +15193,21 @@ Opal.modules["corelib/array"] = function(Opal) { return self; ; - }, $Array_shuffle$excl$100.$$arity = -1); - $alias(self, "slice", "[]"); + }, -1); - Opal.def(self, '$slice!', $Array_slice$excl$101 = function(index, length) { + $def(self, '$slice!', function $Array_slice$excl$46(index, length) { var self = this, result = nil, range = nil, range_start = nil, range_end = nil, start = nil; ; result = nil; if ($truthy(length === undefined)) { - if ($truthy($$($nesting, 'Range')['$==='](index))) { + if ($eqeqeq($$$('Range'), index)) { range = index; result = self['$[]'](range); - range_start = $coerce_to(range.begin, $$($nesting, 'Integer'), 'to_int'); - range_end = $coerce_to(range.end, $$($nesting, 'Integer'), 'to_int'); + range_start = range.begin === nil ? 0 : $coerce_to(range.begin, $$$('Integer'), 'to_int'); + range_end = range.end === nil ? -1 : $coerce_to(range.end, $$$('Integer'), 'to_int'); if (range_start < 0) { range_start += self.length; @@ -15171,7 +15223,7 @@ Opal.modules["corelib/array"] = function(Opal) { } var range_length = range_end - range_start; - if (range.excl) { + if (range.excl && range.end !== nil) { range_end -= 1; } else { range_length += 1; @@ -15183,7 +15235,7 @@ Opal.modules["corelib/array"] = function(Opal) { ; } else { - start = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); + start = $coerce_to(index, $$$('Integer'), 'to_int'); if (start < 0) { start += self.length; @@ -15204,8 +15256,8 @@ Opal.modules["corelib/array"] = function(Opal) { } } else { - start = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); - length = $coerce_to(length, $$($nesting, 'Integer'), 'to_int'); + start = $coerce_to(index, $$$('Integer'), 'to_int'); + length = $coerce_to(length, $$$('Integer'), 'to_int'); if (length < 0) { return nil; @@ -15229,17 +15281,15 @@ Opal.modules["corelib/array"] = function(Opal) { ; }; return result; - }, $Array_slice$excl$101.$$arity = -2); + }, -2); - Opal.def(self, '$sort', $Array_sort$102 = function $$sort() { - var $iter = $Array_sort$102.$$p, block = $iter || nil, self = this; + $def(self, '$sort', function $$sort() { + var block = $$sort.$$p || nil, self = this; - if ($iter) $Array_sort$102.$$p = null; - + delete $$sort.$$p; - if ($iter) $Array_sort$102.$$p = null;; - if ($truthy(self.length > 1)) { - } else { + ; + if (!$truthy(self.length > 1)) { return self }; @@ -15253,21 +15303,20 @@ Opal.modules["corelib/array"] = function(Opal) { var ret = block(x, y); if (ret === nil) { - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((x).$inspect()) + " with " + ((y).$inspect()) + " failed"); + $Kernel.$raise($$$('ArgumentError'), "comparison of " + ((x).$inspect()) + " with " + ((y).$inspect()) + " failed"); } return $rb_gt(ret, 0) ? 1 : ($rb_lt(ret, 0) ? -1 : 0); }); ; - }, $Array_sort$102.$$arity = 0); + }, 0); - Opal.def(self, '$sort!', $Array_sort$excl$103 = function() { - var $iter = $Array_sort$excl$103.$$p, block = $iter || nil, self = this; + $def(self, '$sort!', function $Array_sort$excl$47() { + var block = $Array_sort$excl$47.$$p || nil, self = this; - if ($iter) $Array_sort$excl$103.$$p = null; + delete $Array_sort$excl$47.$$p; - - if ($iter) $Array_sort$excl$103.$$p = null;; + ; var result; @@ -15285,43 +15334,40 @@ Opal.modules["corelib/array"] = function(Opal) { return self; ; - }, $Array_sort$excl$103.$$arity = 0); + }, 0); - Opal.def(self, '$sort_by!', $Array_sort_by$excl$104 = function() { - var $iter = $Array_sort_by$excl$104.$$p, block = $iter || nil, $$105, self = this; + $def(self, '$sort_by!', function $Array_sort_by$excl$48() { + var block = $Array_sort_by$excl$48.$$p || nil, self = this; - if ($iter) $Array_sort_by$excl$104.$$p = null; + delete $Array_sort_by$excl$48.$$p; - - if ($iter) $Array_sort_by$excl$104.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["sort_by!"], ($$105 = function(){var self = $$105.$$s == null ? this : $$105.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["sort_by!"], function $$49(){var self = $$49.$$s == null ? this : $$49.$$s; - return self.$size()}, $$105.$$s = self, $$105.$$arity = 0, $$105)) + return self.$size()}, {$$arity: 0, $$s: self}) }; return self.$replace($send(self, 'sort_by', [], block.$to_proc())); - }, $Array_sort_by$excl$104.$$arity = 0); + }, 0); - Opal.def(self, '$take', $Array_take$106 = function $$take(count) { + $def(self, '$take', function $$take(count) { var self = this; if (count < 0) { - self.$raise($$($nesting, 'ArgumentError')); + $Kernel.$raise($$$('ArgumentError')); } return self.slice(0, count); - }, $Array_take$106.$$arity = 1); + }, 1); - Opal.def(self, '$take_while', $Array_take_while$107 = function $$take_while() { - var $iter = $Array_take_while$107.$$p, block = $iter || nil, self = this; + $def(self, '$take_while', function $$take_while() { + var block = $$take_while.$$p || nil, self = this; - if ($iter) $Array_take_while$107.$$p = null; + delete $$take_while.$$p; - - if ($iter) $Array_take_while$107.$$p = null;; + ; var result = []; @@ -15339,9 +15385,9 @@ Opal.modules["corelib/array"] = function(Opal) { return result; ; - }, $Array_take_while$107.$$arity = 0); + }, 0); - Opal.def(self, '$to_a', $Array_to_a$108 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; @@ -15352,34 +15398,34 @@ Opal.modules["corelib/array"] = function(Opal) { return Opal.Array.$new(self); } - }, $Array_to_a$108.$$arity = 0); + }, 0); - Opal.def(self, '$to_ary', $Array_to_ary$109 = function $$to_ary() { + $def(self, '$to_ary', function $$to_ary() { var self = this; return self - }, $Array_to_ary$109.$$arity = 0); + }, 0); - Opal.def(self, '$to_h', $Array_to_h$110 = function $$to_h() { - var $iter = $Array_to_h$110.$$p, block = $iter || nil, self = this, array = nil; + $def(self, '$to_h', function $$to_h() { + var block = $$to_h.$$p || nil, self = this, array = nil; - if ($iter) $Array_to_h$110.$$p = null; + delete $$to_h.$$p; - - if ($iter) $Array_to_h$110.$$p = null;; + ; array = self; if ((block !== nil)) { - array = $send(array, 'map', [], block.$to_proc())}; + array = $send(array, 'map', [], block.$to_proc()) + }; var i, len = array.length, ary, key, val, hash = $hash2([], {}); for (i = 0; i < len; i++) { - ary = $$($nesting, 'Opal')['$coerce_to?'](array[i], $$($nesting, 'Array'), "to_ary"); + ary = $Opal['$coerce_to?'](array[i], $$$('Array'), "to_ary"); if (!ary.$$is_array) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong element type " + ((ary).$class()) + " at " + (i) + " (expected array)") + $Kernel.$raise($$$('TypeError'), "wrong element type " + ((ary).$class()) + " at " + (i) + " (expected array)") } if (ary.length !== 2) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong array length at " + (i) + " (expected 2, was " + ((ary).$length()) + ")") + $Kernel.$raise($$$('ArgumentError'), "wrong array length at " + (i) + " (expected 2, was " + ((ary).$length()) + ")") } key = ary[0]; val = ary[1]; @@ -15388,84 +15434,60 @@ Opal.modules["corelib/array"] = function(Opal) { return hash; ; - }, $Array_to_h$110.$$arity = 0); - $alias(self, "to_s", "inspect"); + }, 0); - Opal.def(self, '$transpose', $Array_transpose$111 = function $$transpose() { - var $$112, self = this, result = nil, max = nil; + $def(self, '$transpose', function $$transpose() { + var self = this, result = nil, max = nil; if ($truthy(self['$empty?']())) { - return []}; + return [] + }; result = []; max = nil; - $send(self, 'each', [], ($$112 = function(row){var self = $$112.$$s == null ? this : $$112.$$s, $$113, $ret_or_5 = nil; + $send(self, 'each', [], function $$50(row){var $ret_or_1 = nil; - if (row == null) { - row = nil; + if (row == null) row = nil;; + row = ($eqeqeq($$$('Array'), row) ? (row.$to_a()) : (($coerce_to(row, $$$('Array'), 'to_ary')).$to_a())); + max = ($truthy(($ret_or_1 = max)) ? ($ret_or_1) : (row.length)); + if ($neqeq(row.length, max)) { + $Kernel.$raise($$$('IndexError'), "element size differs (" + (row.length) + " should be " + (max) + ")") }; - row = (function() {if ($truthy($$($nesting, 'Array')['$==='](row))) { - return row.$to_a() - } else { - return ($coerce_to(row, $$($nesting, 'Array'), 'to_ary')).$to_a() - }; return nil; })(); - max = (function() {if ($truthy(($ret_or_5 = max))) { - return $ret_or_5 - } else { - return row.length; - }; return nil; })(); - if ($truthy((row.length)['$!='](max))) { - self.$raise($$($nesting, 'IndexError'), "" + "element size differs (" + (row.length) + " should be " + (max) + ")")}; - return $send((row.length), 'times', [], ($$113 = function(i){var self = $$113.$$s == null ? this : $$113.$$s, entry = nil, $ret_or_6 = nil, $writer = nil; + return $send((row.length), 'times', [], function $$51(i){var entry = nil, $writer = nil; - if (i == null) { - i = nil; - }; - entry = (function() {if ($truthy(($ret_or_6 = result['$[]'](i)))) { - return $ret_or_6 - } else { - - $writer = [i, []]; - $send(result, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }; return nil; })(); - return entry['$<<'](row.$at(i));}, $$113.$$s = self, $$113.$$arity = 1, $$113));}, $$112.$$s = self, $$112.$$arity = 1, $$112)); + if (i == null) i = nil;; + entry = ($truthy(($ret_or_1 = result['$[]'](i))) ? ($ret_or_1) : ((($writer = [i, []]), $send(result, '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))); + return entry['$<<'](row.$at(i));}, 1);}, 1); return result; - }, $Array_transpose$111.$$arity = 0); + }, 0); - Opal.def(self, '$union', $Array_union$114 = function $$union($a) { - var $post_args, arrays, $$115, self = this; + $def(self, '$union', function $$union($a) { + var $post_args, arrays, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); arrays = $post_args;; - return $send(arrays, 'reduce', [self.$uniq()], ($$115 = function(a, b){var self = $$115.$$s == null ? this : $$115.$$s; - + return $send(arrays, 'reduce', [self.$uniq()], function $$52(a, b){ - if (a == null) { - a = nil; - }; + if (a == null) a = nil;; - if (b == null) { - b = nil; - }; - return a['$|'](b);}, $$115.$$s = self, $$115.$$arity = 2, $$115)); - }, $Array_union$114.$$arity = -1); + if (b == null) b = nil;; + return a['$|'](b);}, 2); + }, -1); - Opal.def(self, '$uniq', $Array_uniq$116 = function $$uniq() { - var $iter = $Array_uniq$116.$$p, block = $iter || nil, self = this; + $def(self, '$uniq', function $$uniq() { + var block = $$uniq.$$p || nil, self = this; - if ($iter) $Array_uniq$116.$$p = null; + delete $$uniq.$$p; - - if ($iter) $Array_uniq$116.$$p = null;; + ; var hash = $hash2([], {}), i, length, item, key; @@ -15489,15 +15511,14 @@ Opal.modules["corelib/array"] = function(Opal) { return (hash).$values(); ; - }, $Array_uniq$116.$$arity = 0); + }, 0); - Opal.def(self, '$uniq!', $Array_uniq$excl$117 = function() { - var $iter = $Array_uniq$excl$117.$$p, block = $iter || nil, self = this; + $def(self, '$uniq!', function $Array_uniq$excl$53() { + var block = $Array_uniq$excl$53.$$p || nil, self = this; - if ($iter) $Array_uniq$excl$117.$$p = null; + delete $Array_uniq$excl$53.$$p; - - if ($iter) $Array_uniq$excl$117.$$p = null;; + ; var original_length = self.length, hash = $hash2([], {}), i, length, item, key; @@ -15517,14 +15538,14 @@ Opal.modules["corelib/array"] = function(Opal) { return self.length === original_length ? nil : self; ; - }, $Array_uniq$excl$117.$$arity = 0); + }, 0); - Opal.def(self, '$unshift', $Array_unshift$118 = function $$unshift($a) { + $def(self, '$unshift', function $$unshift($a) { var $post_args, objects, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); objects = $post_args;; @@ -15545,29 +15566,26 @@ Opal.modules["corelib/array"] = function(Opal) { } return self; ; - }, $Array_unshift$118.$$arity = -1); - $alias(self, "prepend", "unshift"); + }, -1); - Opal.def(self, '$values_at', $Array_values_at$119 = function $$values_at($a) { - var $post_args, args, $$120, self = this, out = nil; + $def(self, '$values_at', function $$values_at($a) { + var $post_args, args, self = this, out = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; out = []; - $send(args, 'each', [], ($$120 = function(elem){var self = $$120.$$s == null ? this : $$120.$$s, $$121, finish = nil, start = nil, i = nil; + $send(args, 'each', [], function $$54(elem){var self = $$54.$$s == null ? this : $$54.$$s, finish = nil, start = nil, i = nil; - if (elem == null) { - elem = nil; - }; - if ($truthy(elem['$is_a?']($$($nesting, 'Range')))) { + if (elem == null) elem = nil;; + if ($truthy(elem['$is_a?']($$$('Range')))) { - finish = $coerce_to(elem.$last(), $$($nesting, 'Integer'), 'to_int'); - start = $coerce_to(elem.$first(), $$($nesting, 'Integer'), 'to_int'); + finish = elem.$end() === nil ? -1 : $coerce_to(elem.$end(), $$$('Integer'), 'to_int'); + start = elem.$begin() === nil ? 0 : $coerce_to(elem.$begin(), $$$('Integer'), 'to_int'); if (start < 0) { start = start + self.length; @@ -15578,38 +15596,35 @@ Opal.modules["corelib/array"] = function(Opal) { if (finish < 0) { finish = finish + self.length; } - if (elem['$exclude_end?']()) { + if (elem['$exclude_end?']() && elem.$end() !== nil) { finish--; } if (finish < start) { return nil;; } ; - return $send(start, 'upto', [finish], ($$121 = function(i){var self = $$121.$$s == null ? this : $$121.$$s; + return $send(start, 'upto', [finish], function $$55(i){var self = $$55.$$s == null ? this : $$55.$$s; - if (i == null) { - i = nil; - }; - return out['$<<'](self.$at(i));}, $$121.$$s = self, $$121.$$arity = 1, $$121)); + if (i == null) i = nil;; + return out['$<<'](self.$at(i));}, {$$arity: 1, $$s: self}); } else { - i = $coerce_to(elem, $$($nesting, 'Integer'), 'to_int'); + i = $coerce_to(elem, $$$('Integer'), 'to_int'); return out['$<<'](self.$at(i)); - };}, $$120.$$s = self, $$120.$$arity = 1, $$120)); + };}, {$$arity: 1, $$s: self}); return out; - }, $Array_values_at$119.$$arity = -1); + }, -1); - Opal.def(self, '$zip', $Array_zip$122 = function $$zip($a) { - var $iter = $Array_zip$122.$$p, block = $iter || nil, $post_args, others, self = this, $ret_or_7 = nil; + $def(self, '$zip', function $$zip($a) { + var block = $$zip.$$p || nil, $post_args, others, self = this, $ret_or_1 = nil; - if ($iter) $Array_zip$122.$$p = null; - + delete $$zip.$$p; - if ($iter) $Array_zip$122.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); others = $post_args;; @@ -15624,11 +15639,7 @@ Opal.modules["corelib/array"] = function(Opal) { others[j] = o.$take(size); continue; } - others[j] = (function() {if ($truthy(($ret_or_7 = $$($nesting, 'Opal')['$coerce_to?'](o, $$($nesting, 'Array'), "to_ary")))) { - return $ret_or_7 - } else { - return $$($nesting, 'Opal')['$coerce_to!'](o, $$($nesting, 'Enumerator'), "to_enum", "each") - }; return nil; })().$to_a(); + others[j] = ($truthy(($ret_or_1 = $Opal['$coerce_to?'](o, $$$('Array'), "to_ary"))) ? ($ret_or_1) : ($Opal['$coerce_to!'](o, $$$('Enumerator'), "to_enum", "each"))).$to_a(); } for (i = 0; i < size; i++) { @@ -15649,7 +15660,7 @@ Opal.modules["corelib/array"] = function(Opal) { if (block !== nil) { for (i = 0; i < size; i++) { - block(result[i]); + Opal.yield1(block, result[i]); } return nil; @@ -15657,97 +15668,90 @@ Opal.modules["corelib/array"] = function(Opal) { return result; ; - }, $Array_zip$122.$$arity = -1); - Opal.defs(self, '$inherited', $Array_inherited$123 = function $$inherited(klass) { - var self = this; - + }, -1); + $defs(self, '$inherited', function $$inherited(klass) { + klass.$$prototype.$to_a = function() { return this.slice(0, this.length); } - }, $Array_inherited$123.$$arity = 1); + }, 1); - Opal.def(self, '$instance_variables', $Array_instance_variables$124 = function $$instance_variables() { - var $$125, $iter = $Array_instance_variables$124.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$instance_variables', function $$instance_variables() { + var $yield = $$instance_variables.$$p || nil, self = this; - if ($iter) $Array_instance_variables$124.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return $send($send2(self, $find_super(self, 'instance_variables', $Array_instance_variables$124, false, true), 'instance_variables', $zuper, $iter), 'reject', [], ($$125 = function(ivar){var self = $$125.$$s == null ? this : $$125.$$s, $ret_or_8 = nil; + delete $$instance_variables.$$p; + return $send($send2(self, $find_super(self, 'instance_variables', $$instance_variables, false, true), 'instance_variables', [], $yield), 'reject', [], function $$56(ivar){var $ret_or_1 = nil; - if (ivar == null) { - ivar = nil; - }; - if ($truthy(($ret_or_8 = /^@\d+$/.test(ivar)))) { - return $ret_or_8 + if (ivar == null) ivar = nil;; + if ($truthy(($ret_or_1 = /^@\d+$/.test(ivar)))) { + return $ret_or_1 } else { return ivar['$==']("@length") - };}, $$125.$$s = self, $$125.$$arity = 1, $$125)) - }, $Array_instance_variables$124.$$arity = 0); - $$($nesting, 'Opal').$pristine(self.$singleton_class(), "allocate"); - $$($nesting, 'Opal').$pristine(self, "copy_instance_variables", "initialize_dup"); - return (Opal.def(self, '$pack', $Array_pack$126 = function $$pack($a) { - var $post_args, args, self = this; + };}, 1) + }, 0); + + $def(self, '$pack', function $$pack($a) { + var $post_args, args; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return self.$raise("To use Array#pack, you must first require 'corelib/array/pack'."); - }, $Array_pack$126.$$arity = -1), nil) && 'pack'; - })($nesting[0], Array, $nesting); + return $Kernel.$raise("To use Array#pack, you must first require 'corelib/array/pack'."); + }, -1); + $alias(self, "append", "push"); + $alias(self, "filter", "select"); + $alias(self, "filter!", "select!"); + $alias(self, "map", "collect"); + $alias(self, "map!", "collect!"); + $alias(self, "prepend", "unshift"); + $alias(self, "size", "length"); + $alias(self, "slice", "[]"); + $alias(self, "to_s", "inspect"); + $Opal.$pristine(self.$singleton_class(), "allocate"); + return $Opal.$pristine(self, "copy_instance_variables", "initialize_dup"); + })('::', Array, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/hash"] = function(Opal) { - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy, $alias = Opal.alias; +Opal.modules["corelib/hash"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $yield1 = Opal.yield1, $hash = Opal.hash, $hash_init = Opal.hash_init, $hash_get = Opal.hash_get, $hash_put = Opal.hash_put, $hash_delete = Opal.hash_delete, $klass = Opal.klass, $Opal = Opal.Opal, $Kernel = Opal.Kernel, $defs = Opal.defs, $def = Opal.def, $send = Opal.send, $rb_ge = Opal.rb_ge, $rb_gt = Opal.rb_gt, $hash2 = Opal.hash2, $truthy = Opal.truthy, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$coerce_to?', '$[]', '$merge!', '$allocate', '$raise', '$coerce_to!', '$each', '$fetch', '$>=', '$>', '$==', '$compare_by_identity', '$lambda?', '$abs', '$arity', '$enum_for', '$size', '$respond_to?', '$class', '$dig', '$except!', '$dup', '$delete', '$new', '$inspect', '$map', '$to_proc', '$flatten', '$eql?', '$default', '$default_proc', '$default_proc=', '$-', '$default=', '$to_h', '$proc']); + Opal.add_stubs('require,include,coerce_to?,[],merge!,allocate,raise,coerce_to!,each,fetch,>=,>,==,compare_by_identity,lambda?,abs,arity,enum_for,size,respond_to?,class,dig,except!,dup,delete,new,inspect,map,to_proc,flatten,eql?,default,default_proc,default_proc=,-,default=,to_h,proc'); self.$require("corelib/enumerable"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Hash'); - var $nesting = [self].concat($parent_nesting), $Hash_$$$1, $Hash_allocate$2, $Hash_try_convert$3, $Hash_initialize$4, $Hash_$eq_eq$5, $Hash_$gt_eq$6, $Hash_$gt$8, $Hash_$lt$9, $Hash_$lt_eq$10, $Hash_$$$11, $Hash_$$$eq$12, $Hash_assoc$13, $Hash_clear$14, $Hash_clone$15, $Hash_compact$16, $Hash_compact$excl$17, $Hash_compare_by_identity$18, $Hash_compare_by_identity$ques$19, $Hash_default$20, $Hash_default$eq$21, $Hash_default_proc$22, $Hash_default_proc$eq$23, $Hash_delete$24, $Hash_delete_if$25, $Hash_dig$27, $Hash_each$28, $Hash_each_key$30, $Hash_each_value$32, $Hash_empty$ques$34, $Hash_except$35, $Hash_except$excl$36, $Hash_fetch$38, $Hash_fetch_values$39, $Hash_flatten$41, $Hash_has_key$ques$42, $Hash_has_value$ques$43, $Hash_hash$44, $Hash_index$45, $Hash_indexes$46, $Hash_inspect$47, $Hash_invert$48, $Hash_keep_if$49, $Hash_keys$51, $Hash_length$52, $Hash_merge$53, $Hash_merge$excl$54, $Hash_rassoc$55, $Hash_rehash$56, $Hash_reject$57, $Hash_reject$excl$59, $Hash_replace$61, $Hash_select$62, $Hash_select$excl$64, $Hash_shift$66, $Hash_slice$67, $Hash_to_a$68, $Hash_to_h$69, $Hash_to_hash$70, $Hash_to_proc$71, $Hash_transform_keys$73, $Hash_transform_keys$excl$75, $Hash_transform_values$77, $Hash_transform_values$excl$79, $Hash_values$81; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - self.$include($$($nesting, 'Enumerable')); + self.$include($$$('Enumerable')); self.$$prototype.$$is_hash = true; - Opal.defs(self, '$[]', $Hash_$$$1 = function($a) { + $defs(self, '$[]', function $Hash_$$$1($a) { var $post_args, argv, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); argv = $post_args;; var hash, argc = argv.length, i; if (argc === 1) { - hash = $$($nesting, 'Opal')['$coerce_to?'](argv['$[]'](0), $$($nesting, 'Hash'), "to_hash"); + hash = $Opal['$coerce_to?'](argv['$[]'](0), $$$('Hash'), "to_hash"); if (hash !== nil) { return self.$allocate()['$merge!'](hash); } - argv = $$($nesting, 'Opal')['$coerce_to?'](argv['$[]'](0), $$($nesting, 'Array'), "to_ary"); + argv = $Opal['$coerce_to?'](argv['$[]'](0), $$$('Array'), "to_ary"); if (argv === nil) { - self.$raise($$($nesting, 'ArgumentError'), "odd number of arguments for Hash") + $Kernel.$raise($$$('ArgumentError'), "odd number of arguments for Hash") } argc = argv.length; @@ -15763,7 +15767,7 @@ Opal.modules["corelib/hash"] = function(Opal) { hash.$store(argv[i][0], argv[i][1]); break; default: - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid number of elements (" + (argv[i].length) + " for 1..2)") + $Kernel.$raise($$$('ArgumentError'), "invalid number of elements (" + (argv[i].length) + " for 1..2)") } } @@ -15771,7 +15775,7 @@ Opal.modules["corelib/hash"] = function(Opal) { } if (argc % 2 !== 0) { - self.$raise($$($nesting, 'ArgumentError'), "odd number of arguments for Hash") + $Kernel.$raise($$$('ArgumentError'), "odd number of arguments for Hash") } hash = self.$allocate(); @@ -15782,47 +15786,45 @@ Opal.modules["corelib/hash"] = function(Opal) { return hash; ; - }, $Hash_$$$1.$$arity = -1); - Opal.defs(self, '$allocate', $Hash_allocate$2 = function $$allocate() { + }, -1); + $defs(self, '$allocate', function $$allocate() { var self = this; var hash = new self.$$constructor(); - Opal.hash_init(hash); + $hash_init(hash); hash.$$none = nil; hash.$$proc = nil; return hash; - }, $Hash_allocate$2.$$arity = 0); - Opal.defs(self, '$try_convert', $Hash_try_convert$3 = function $$try_convert(obj) { - var self = this; - - return $$($nesting, 'Opal')['$coerce_to?'](obj, $$($nesting, 'Hash'), "to_hash") - }, $Hash_try_convert$3.$$arity = 1); + }, 0); + $defs(self, '$try_convert', function $$try_convert(obj) { + + return $Opal['$coerce_to?'](obj, $$$('Hash'), "to_hash") + }, 1); - Opal.def(self, '$initialize', $Hash_initialize$4 = function $$initialize(defaults) { - var $iter = $Hash_initialize$4.$$p, block = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(defaults) { + var block = $$initialize.$$p || nil, self = this; - if ($iter) $Hash_initialize$4.$$p = null; - + delete $$initialize.$$p; - if ($iter) $Hash_initialize$4.$$p = null;; + ; ; if (defaults !== undefined && block !== nil) { - self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (1 for 0)") + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (1 for 0)") } self.$$none = (defaults === undefined ? nil : defaults); self.$$proc = block; return self; ; - }, $Hash_initialize$4.$$arity = -1); + }, -1); - Opal.def(self, '$==', $Hash_$eq_eq$5 = function(other) { + $def(self, '$==', function $Hash_$eq_eq$2(other) { var self = this; @@ -15846,7 +15848,7 @@ Opal.modules["corelib/hash"] = function(Opal) { other_value = other.$$smap[key]; } else { value = key.value; - other_value = Opal.hash_get(other, key.key); + other_value = $hash_get(other, key.key); } if (other_value === undefined || !value['$eql?'](other_value)) { @@ -15856,74 +15858,70 @@ Opal.modules["corelib/hash"] = function(Opal) { return true; - }, $Hash_$eq_eq$5.$$arity = 1); + }, 1); - Opal.def(self, '$>=', $Hash_$gt_eq$6 = function(other) { - var $$7, self = this, result = nil; + $def(self, '$>=', function $Hash_$gt_eq$3(other) { + var self = this, result = nil; - other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); + other = $Opal['$coerce_to!'](other, $$$('Hash'), "to_hash"); if (self.$$keys.length < other.$$keys.length) { return false } ; result = true; - $send(other, 'each', [], ($$7 = function(other_key, other_val){var self = $$7.$$s == null ? this : $$7.$$s, val = nil; + $send(other, 'each', [], function $$4(other_key, other_val){var self = $$4.$$s == null ? this : $$4.$$s, val = nil; - if (other_key == null) { - other_key = nil; - }; + if (other_key == null) other_key = nil;; - if (other_val == null) { - other_val = nil; - }; + if (other_val == null) other_val = nil;; val = self.$fetch(other_key, null); if (val == null || val !== other_val) { result = false; return; } - ;}, $$7.$$s = self, $$7.$$arity = 2, $$7)); + ;}, {$$arity: 2, $$s: self}); return result; - }, $Hash_$gt_eq$6.$$arity = 1); + }, 1); - Opal.def(self, '$>', $Hash_$gt$8 = function(other) { + $def(self, '$>', function $Hash_$gt$5(other) { var self = this; - other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); + other = $Opal['$coerce_to!'](other, $$$('Hash'), "to_hash"); if (self.$$keys.length <= other.$$keys.length) { return false } ; return $rb_ge(self, other); - }, $Hash_$gt$8.$$arity = 1); + }, 1); - Opal.def(self, '$<', $Hash_$lt$9 = function(other) { + $def(self, '$<', function $Hash_$lt$6(other) { var self = this; - other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); + other = $Opal['$coerce_to!'](other, $$$('Hash'), "to_hash"); return $rb_gt(other, self); - }, $Hash_$lt$9.$$arity = 1); + }, 1); - Opal.def(self, '$<=', $Hash_$lt_eq$10 = function(other) { + $def(self, '$<=', function $Hash_$lt_eq$7(other) { var self = this; - other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); + other = $Opal['$coerce_to!'](other, $$$('Hash'), "to_hash"); return $rb_ge(other, self); - }, $Hash_$lt_eq$10.$$arity = 1); + }, 1); - Opal.def(self, '$[]', $Hash_$$$11 = function(key) { + $def(self, '$[]', function $Hash_$$$8(key) { var self = this; - var value = Opal.hash_get(self, key); + var value = $hash_get(self, key); if (value !== undefined) { return value; @@ -15931,18 +15929,18 @@ Opal.modules["corelib/hash"] = function(Opal) { return self.$default(key); - }, $Hash_$$$11.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Hash_$$$eq$12 = function(key, value) { + $def(self, '$[]=', function $Hash_$$$eq$9(key, value) { var self = this; - Opal.hash_put(self, key, value); + $hash_put(self, key, value); return value; - }, $Hash_$$$eq$12.$$arity = 2); + }, 2); - Opal.def(self, '$assoc', $Hash_assoc$13 = function $$assoc(object) { + $def(self, '$assoc', function $$assoc(object) { var self = this; @@ -15962,35 +15960,35 @@ Opal.modules["corelib/hash"] = function(Opal) { return nil; - }, $Hash_assoc$13.$$arity = 1); + }, 1); - Opal.def(self, '$clear', $Hash_clear$14 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; - Opal.hash_init(self); + $hash_init(self); return self; - }, $Hash_clear$14.$$arity = 0); + }, 0); - Opal.def(self, '$clone', $Hash_clone$15 = function $$clone() { + $def(self, '$clone', function $$clone() { var self = this; var hash = new self.$$class(); - Opal.hash_init(hash); + $hash_init(hash); Opal.hash_clone(self, hash); return hash; - }, $Hash_clone$15.$$arity = 0); + }, 0); - Opal.def(self, '$compact', $Hash_compact$16 = function $$compact() { + $def(self, '$compact', function $$compact() { var self = this; - var hash = Opal.hash(); + var hash = $hash(); for (var i = 0, keys = self.$$keys, length = keys.length, key, value, obj; i < length; i++) { key = keys[i]; @@ -16003,15 +16001,15 @@ Opal.modules["corelib/hash"] = function(Opal) { } if (value !== nil) { - Opal.hash_put(hash, key, value); + $hash_put(hash, key, value); } } return hash; - }, $Hash_compact$16.$$arity = 0); + }, 0); - Opal.def(self, '$compact!', $Hash_compact$excl$17 = function() { + $def(self, '$compact!', function $Hash_compact$excl$10() { var self = this; @@ -16028,7 +16026,7 @@ Opal.modules["corelib/hash"] = function(Opal) { } if (value === nil) { - if (Opal.hash_delete(self, key) !== undefined) { + if ($hash_delete(self, key) !== undefined) { changes_were_made = true; length--; i--; @@ -16038,9 +16036,9 @@ Opal.modules["corelib/hash"] = function(Opal) { return changes_were_made ? self : nil; - }, $Hash_compact$excl$17.$$arity = 0); + }, 0); - Opal.def(self, '$compare_by_identity', $Hash_compare_by_identity$18 = function $$compare_by_identity() { + $def(self, '$compare_by_identity', function $$compare_by_identity() { var self = this; @@ -16056,7 +16054,7 @@ Opal.modules["corelib/hash"] = function(Opal) { for(i = 0, ii = keys.length; i < ii; i++) { key = keys[i]; if (!key.$$is_string) key = key.key; - Opal.hash_put(identity_hash, key, Opal.hash_get(self, key)); + $hash_put(identity_hash, key, $hash_get(self, key)); } self.$$by_identity = true; @@ -16064,15 +16062,15 @@ Opal.modules["corelib/hash"] = function(Opal) { self.$$smap = identity_hash.$$smap; return self; - }, $Hash_compare_by_identity$18.$$arity = 0); + }, 0); - Opal.def(self, '$compare_by_identity?', $Hash_compare_by_identity$ques$19 = function() { + $def(self, '$compare_by_identity?', function $Hash_compare_by_identity$ques$11() { var self = this; return self.$$by_identity === true; - }, $Hash_compare_by_identity$ques$19.$$arity = 0); + }, 0); - Opal.def(self, '$default', $Hash_default$20 = function(key) { + $def(self, '$default', function $Hash_default$12(key) { var self = this; @@ -16086,9 +16084,9 @@ Opal.modules["corelib/hash"] = function(Opal) { } return self.$$none; ; - }, $Hash_default$20.$$arity = -1); + }, -1); - Opal.def(self, '$default=', $Hash_default$eq$21 = function(object) { + $def(self, '$default=', function $Hash_default$eq$13(object) { var self = this; @@ -16097,9 +16095,9 @@ Opal.modules["corelib/hash"] = function(Opal) { return object; - }, $Hash_default$eq$21.$$arity = 1); + }, 1); - Opal.def(self, '$default_proc', $Hash_default_proc$22 = function $$default_proc() { + $def(self, '$default_proc', function $$default_proc() { var self = this; @@ -16108,19 +16106,19 @@ Opal.modules["corelib/hash"] = function(Opal) { } return nil; - }, $Hash_default_proc$22.$$arity = 0); + }, 0); - Opal.def(self, '$default_proc=', $Hash_default_proc$eq$23 = function(default_proc) { + $def(self, '$default_proc=', function $Hash_default_proc$eq$14(default_proc) { var self = this; var proc = default_proc; if (proc !== nil) { - proc = $$($nesting, 'Opal')['$coerce_to!'](proc, $$($nesting, 'Proc'), "to_proc"); + proc = $Opal['$coerce_to!'](proc, $$$('Proc'), "to_proc"); if ((proc)['$lambda?']() && (proc).$arity().$abs() !== 2) { - self.$raise($$($nesting, 'TypeError'), "default_proc takes two arguments"); + $Kernel.$raise($$$('TypeError'), "default_proc takes two arguments"); } } @@ -16129,17 +16127,16 @@ Opal.modules["corelib/hash"] = function(Opal) { return default_proc; - }, $Hash_default_proc$eq$23.$$arity = 1); + }, 1); - Opal.def(self, '$delete', $Hash_delete$24 = function(key) { - var $iter = $Hash_delete$24.$$p, block = $iter || nil, self = this; + $def(self, '$delete', function $Hash_delete$15(key) { + var block = $Hash_delete$15.$$p || nil, self = this; - if ($iter) $Hash_delete$24.$$p = null; - + delete $Hash_delete$15.$$p; - if ($iter) $Hash_delete$24.$$p = null;; + ; - var value = Opal.hash_delete(self, key); + var value = $hash_delete(self, key); if (value !== undefined) { return value; @@ -16151,20 +16148,18 @@ Opal.modules["corelib/hash"] = function(Opal) { return nil; ; - }, $Hash_delete$24.$$arity = 1); + }, 1); - Opal.def(self, '$delete_if', $Hash_delete_if$25 = function $$delete_if() { - var $iter = $Hash_delete_if$25.$$p, block = $iter || nil, $$26, self = this; + $def(self, '$delete_if', function $$delete_if() { + var block = $$delete_if.$$p || nil, self = this; - if ($iter) $Hash_delete_if$25.$$p = null; - + delete $$delete_if.$$p; - if ($iter) $Hash_delete_if$25.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["delete_if"], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["delete_if"], function $$16(){var self = $$16.$$s == null ? this : $$16.$$s; - return self.$size()}, $$26.$$s = self, $$26.$$arity = 0, $$26)) + return self.$size()}, {$$arity: 0, $$s: self}) }; for (var i = 0, keys = self.$$keys, length = keys.length, key, value, obj; i < length; i++) { @@ -16180,7 +16175,7 @@ Opal.modules["corelib/hash"] = function(Opal) { obj = block(key, value); if (obj !== false && obj !== nil) { - if (Opal.hash_delete(self, key) !== undefined) { + if ($hash_delete(self, key) !== undefined) { length--; i--; } @@ -16189,15 +16184,14 @@ Opal.modules["corelib/hash"] = function(Opal) { return self; ; - }, $Hash_delete_if$25.$$arity = 0); - $alias(self, "dup", "clone"); + }, 0); - Opal.def(self, '$dig', $Hash_dig$27 = function $$dig(key, $a) { + $def(self, '$dig', function $$dig(key, $a) { var $post_args, keys, self = this, item = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); keys = $post_args;; item = self['$[]'](key); @@ -16206,28 +16200,25 @@ Opal.modules["corelib/hash"] = function(Opal) { return item; } ; - if ($truthy(item['$respond_to?']("dig"))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") + if (!$truthy(item['$respond_to?']("dig"))) { + $Kernel.$raise($$$('TypeError'), "" + (item.$class()) + " does not have #dig method") }; - return $send(item, 'dig', Opal.to_a(keys)); - }, $Hash_dig$27.$$arity = -2); + return $send(item, 'dig', $to_a(keys)); + }, -2); - Opal.def(self, '$each', $Hash_each$28 = function $$each() { - var $iter = $Hash_each$28.$$p, block = $iter || nil, $$29, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Hash_each$28.$$p = null; - + delete $$each.$$p; - if ($iter) $Hash_each$28.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["each"], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["each"], function $$17(){var self = $$17.$$s == null ? this : $$17.$$s; - return self.$size()}, $$29.$$s = self, $$29.$$arity = 0, $$29)) + return self.$size()}, {$$arity: 0, $$s: self}) }; - for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { + for (var i = 0, keys = self.$$keys.slice(), length = keys.length, key, value; i < length; i++) { key = keys[i]; if (key.$$is_string) { @@ -16237,28 +16228,26 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - Opal.yield1(block, [key, value]); + $yield1(block, [key, value]); } return self; ; - }, $Hash_each$28.$$arity = 0); + }, 0); - Opal.def(self, '$each_key', $Hash_each_key$30 = function $$each_key() { - var $iter = $Hash_each_key$30.$$p, block = $iter || nil, $$31, self = this; + $def(self, '$each_key', function $$each_key() { + var block = $$each_key.$$p || nil, self = this; - if ($iter) $Hash_each_key$30.$$p = null; + delete $$each_key.$$p; - - if ($iter) $Hash_each_key$30.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["each_key"], ($$31 = function(){var self = $$31.$$s == null ? this : $$31.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["each_key"], function $$18(){var self = $$18.$$s == null ? this : $$18.$$s; - return self.$size()}, $$31.$$s = self, $$31.$$arity = 0, $$31)) + return self.$size()}, {$$arity: 0, $$s: self}) }; - for (var i = 0, keys = self.$$keys, length = keys.length, key; i < length; i++) { + for (var i = 0, keys = self.$$keys.slice(), length = keys.length, key; i < length; i++) { key = keys[i]; block(key.$$is_string ? key : key.key); @@ -16266,21 +16255,18 @@ Opal.modules["corelib/hash"] = function(Opal) { return self; ; - }, $Hash_each_key$30.$$arity = 0); - $alias(self, "each_pair", "each"); + }, 0); - Opal.def(self, '$each_value', $Hash_each_value$32 = function $$each_value() { - var $iter = $Hash_each_value$32.$$p, block = $iter || nil, $$33, self = this; + $def(self, '$each_value', function $$each_value() { + var block = $$each_value.$$p || nil, self = this; - if ($iter) $Hash_each_value$32.$$p = null; + delete $$each_value.$$p; - - if ($iter) $Hash_each_value$32.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["each_value"], ($$33 = function(){var self = $$33.$$s == null ? this : $$33.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["each_value"], function $$19(){var self = $$19.$$s == null ? this : $$19.$$s; - return self.$size()}, $$33.$$s = self, $$33.$$arity = 0, $$33)) + return self.$size()}, {$$arity: 0, $$s: self}) }; for (var i = 0, keys = self.$$keys, length = keys.length, key; i < length; i++) { @@ -16291,55 +16277,51 @@ Opal.modules["corelib/hash"] = function(Opal) { return self; ; - }, $Hash_each_value$32.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $Hash_empty$ques$34 = function() { + $def(self, '$empty?', function $Hash_empty$ques$20() { var self = this; return self.$$keys.length === 0; - }, $Hash_empty$ques$34.$$arity = 0); - $alias(self, "eql?", "=="); + }, 0); - Opal.def(self, '$except', $Hash_except$35 = function $$except($a) { + $def(self, '$except', function $$except($a) { var $post_args, keys, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); keys = $post_args;; - return $send(self.$dup(), 'except!', Opal.to_a(keys)); - }, $Hash_except$35.$$arity = -1); + return $send(self.$dup(), 'except!', $to_a(keys)); + }, -1); - Opal.def(self, '$except!', $Hash_except$excl$36 = function($a) { - var $post_args, keys, $$37, self = this; + $def(self, '$except!', function $Hash_except$excl$21($a) { + var $post_args, keys, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); keys = $post_args;; - $send(keys, 'each', [], ($$37 = function(key){var self = $$37.$$s == null ? this : $$37.$$s; + $send(keys, 'each', [], function $$22(key){var self = $$22.$$s == null ? this : $$22.$$s; - if (key == null) { - key = nil; - }; - return self.$delete(key);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + if (key == null) key = nil;; + return self.$delete(key);}, {$$arity: 1, $$s: self}); return self; - }, $Hash_except$excl$36.$$arity = -1); + }, -1); - Opal.def(self, '$fetch', $Hash_fetch$38 = function $$fetch(key, defaults) { - var $iter = $Hash_fetch$38.$$p, block = $iter || nil, self = this; + $def(self, '$fetch', function $$fetch(key, defaults) { + var block = $$fetch.$$p || nil, self = this; - if ($iter) $Hash_fetch$38.$$p = null; + delete $$fetch.$$p; - - if ($iter) $Hash_fetch$38.$$p = null;; + ; ; - var value = Opal.hash_get(self, key); + var value = $hash_get(self, key); if (value !== undefined) { return value; @@ -16353,39 +16335,34 @@ Opal.modules["corelib/hash"] = function(Opal) { return defaults; } ; - return self.$raise($$($nesting, 'KeyError').$new("" + "key not found: " + (key.$inspect()), $hash2(["key", "receiver"], {"key": key, "receiver": self}))); - }, $Hash_fetch$38.$$arity = -2); + return $Kernel.$raise($$$('KeyError').$new("key not found: " + (key.$inspect()), $hash2(["key", "receiver"], {"key": key, "receiver": self}))); + }, -2); - Opal.def(self, '$fetch_values', $Hash_fetch_values$39 = function $$fetch_values($a) { - var $iter = $Hash_fetch_values$39.$$p, block = $iter || nil, $post_args, keys, $$40, self = this; + $def(self, '$fetch_values', function $$fetch_values($a) { + var block = $$fetch_values.$$p || nil, $post_args, keys, self = this; - if ($iter) $Hash_fetch_values$39.$$p = null; + delete $$fetch_values.$$p; + ; - if ($iter) $Hash_fetch_values$39.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); keys = $post_args;; - return $send(keys, 'map', [], ($$40 = function(key){var self = $$40.$$s == null ? this : $$40.$$s; + return $send(keys, 'map', [], function $$23(key){var self = $$23.$$s == null ? this : $$23.$$s; - if (key == null) { - key = nil; - }; - return $send(self, 'fetch', [key], block.$to_proc());}, $$40.$$s = self, $$40.$$arity = 1, $$40)); - }, $Hash_fetch_values$39.$$arity = -1); + if (key == null) key = nil;; + return $send(self, 'fetch', [key], block.$to_proc());}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$flatten', $Hash_flatten$41 = function $$flatten(level) { + $def(self, '$flatten', function $$flatten(level) { var self = this; - if (level == null) { - level = 1; - }; - level = $$($nesting, 'Opal')['$coerce_to!'](level, $$($nesting, 'Integer'), "to_int"); + if (level == null) level = 1;; + level = $Opal['$coerce_to!'](level, $$$('Integer'), "to_int"); var result = []; @@ -16416,15 +16393,15 @@ Opal.modules["corelib/hash"] = function(Opal) { return result; ; - }, $Hash_flatten$41.$$arity = -1); + }, -1); - Opal.def(self, '$has_key?', $Hash_has_key$ques$42 = function(key) { + $def(self, '$has_key?', function $Hash_has_key$ques$24(key) { var self = this; - return Opal.hash_get(self, key) !== undefined; - }, $Hash_has_key$ques$42.$$arity = 1); + return $hash_get(self, key) !== undefined; + }, 1); - Opal.def(self, '$has_value?', $Hash_has_value$ques$43 = function(value) { + $def(self, '$has_value?', function $Hash_has_value$ques$25(value) { var self = this; @@ -16438,9 +16415,9 @@ Opal.modules["corelib/hash"] = function(Opal) { return false; - }, $Hash_has_value$ques$43.$$arity = 1); + }, 1); - Opal.def(self, '$hash', $Hash_hash$44 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; @@ -16485,10 +16462,9 @@ Opal.modules["corelib/hash"] = function(Opal) { } } - }, $Hash_hash$44.$$arity = 0); - $alias(self, "include?", "has_key?"); + }, 0); - Opal.def(self, '$index', $Hash_index$45 = function $$index(object) { + $def(self, '$index', function $$index(object) { var self = this; @@ -16509,14 +16485,14 @@ Opal.modules["corelib/hash"] = function(Opal) { return nil; - }, $Hash_index$45.$$arity = 1); + }, 1); - Opal.def(self, '$indexes', $Hash_indexes$46 = function $$indexes($a) { + $def(self, '$indexes', function $$indexes($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; @@ -16524,7 +16500,7 @@ Opal.modules["corelib/hash"] = function(Opal) { for (var i = 0, length = args.length, key, value; i < length; i++) { key = args[i]; - value = Opal.hash_get(self, key); + value = $hash_get(self, key); if (value === undefined) { result.push(self.$default()); @@ -16536,19 +16512,22 @@ Opal.modules["corelib/hash"] = function(Opal) { return result; ; - }, $Hash_indexes$46.$$arity = -1); - $alias(self, "indices", "indexes"); + }, -1); var inspect_ids; - Opal.def(self, '$inspect', $Hash_inspect$47 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; + var top = (inspect_ids === undefined), hash_id = self.$object_id(), result = []; - - try { + ; + + return (function() { try { + + if (top) { inspect_ids = {}; } @@ -16569,24 +16548,25 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - result.push(key.$inspect() + '=>' + value.$inspect()); + key = $$('Opal').$inspect(key) + value = $$('Opal').$inspect(value) + + result.push(key + '=>' + value); } return '{' + result.join(', ') + '}'; - + ; + return nil; } finally { - if (top) { - inspect_ids = undefined; - } - } - - }, $Hash_inspect$47.$$arity = 0); + if (top) inspect_ids = undefined + }; })();; + }, 0); - Opal.def(self, '$invert', $Hash_invert$48 = function $$invert() { + $def(self, '$invert', function $$invert() { var self = this; - var hash = Opal.hash(); + var hash = $hash(); for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { key = keys[i]; @@ -16598,25 +16578,23 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - Opal.hash_put(hash, value, key); + $hash_put(hash, value, key); } return hash; - }, $Hash_invert$48.$$arity = 0); + }, 0); - Opal.def(self, '$keep_if', $Hash_keep_if$49 = function $$keep_if() { - var $iter = $Hash_keep_if$49.$$p, block = $iter || nil, $$50, self = this; + $def(self, '$keep_if', function $$keep_if() { + var block = $$keep_if.$$p || nil, self = this; - if ($iter) $Hash_keep_if$49.$$p = null; + delete $$keep_if.$$p; - - if ($iter) $Hash_keep_if$49.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["keep_if"], ($$50 = function(){var self = $$50.$$s == null ? this : $$50.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["keep_if"], function $$26(){var self = $$26.$$s == null ? this : $$26.$$s; - return self.$size()}, $$50.$$s = self, $$50.$$arity = 0, $$50)) + return self.$size()}, {$$arity: 0, $$s: self}) }; for (var i = 0, keys = self.$$keys, length = keys.length, key, value, obj; i < length; i++) { @@ -16632,7 +16610,7 @@ Opal.modules["corelib/hash"] = function(Opal) { obj = block(key, value); if (obj === false || obj === nil) { - if (Opal.hash_delete(self, key) !== undefined) { + if ($hash_delete(self, key) !== undefined) { length--; i--; } @@ -16641,11 +16619,9 @@ Opal.modules["corelib/hash"] = function(Opal) { return self; ; - }, $Hash_keep_if$49.$$arity = 0); - $alias(self, "key", "index"); - $alias(self, "key?", "has_key?"); + }, 0); - Opal.def(self, '$keys', $Hash_keys$51 = function $$keys() { + $def(self, '$keys', function $$keys() { var self = this; @@ -16663,44 +16639,41 @@ Opal.modules["corelib/hash"] = function(Opal) { return result; - }, $Hash_keys$51.$$arity = 0); + }, 0); - Opal.def(self, '$length', $Hash_length$52 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self.$$keys.length; - }, $Hash_length$52.$$arity = 0); - $alias(self, "member?", "has_key?"); + }, 0); - Opal.def(self, '$merge', $Hash_merge$53 = function $$merge($a) { - var $iter = $Hash_merge$53.$$p, block = $iter || nil, $post_args, others, self = this; + $def(self, '$merge', function $$merge($a) { + var block = $$merge.$$p || nil, $post_args, others, self = this; - if ($iter) $Hash_merge$53.$$p = null; - + delete $$merge.$$p; - if ($iter) $Hash_merge$53.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); others = $post_args;; - return $send(self.$dup(), 'merge!', Opal.to_a(others), block.$to_proc()); - }, $Hash_merge$53.$$arity = -1); + return $send(self.$dup(), 'merge!', $to_a(others), block.$to_proc()); + }, -1); - Opal.def(self, '$merge!', $Hash_merge$excl$54 = function($a) { - var $iter = $Hash_merge$excl$54.$$p, block = $iter || nil, $post_args, others, self = this; + $def(self, '$merge!', function $Hash_merge$excl$27($a) { + var block = $Hash_merge$excl$27.$$p || nil, $post_args, others, self = this; - if ($iter) $Hash_merge$excl$54.$$p = null; - + delete $Hash_merge$excl$27.$$p; - if ($iter) $Hash_merge$excl$54.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); others = $post_args;; var i, j, other, other_keys, length, key, value, other_value; for (i = 0; i < others.length; ++i) { - other = $$($nesting, 'Opal')['$coerce_to!'](others[i], $$($nesting, 'Hash'), "to_hash"); + other = $Opal['$coerce_to!'](others[i], $$$('Hash'), "to_hash"); other_keys = other.$$keys, length = other_keys.length; if (block === nil) { @@ -16714,7 +16687,7 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - Opal.hash_put(self, key, other_value); + $hash_put(self, key, other_value); } } else { for (j = 0; j < length; j++) { @@ -16727,23 +16700,23 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - value = Opal.hash_get(self, key); + value = $hash_get(self, key); if (value === undefined) { - Opal.hash_put(self, key, other_value); + $hash_put(self, key, other_value); continue; } - Opal.hash_put(self, key, block(key, value, other_value)); + $hash_put(self, key, block(key, value, other_value)); } } } return self; ; - }, $Hash_merge$excl$54.$$arity = -1); + }, -1); - Opal.def(self, '$rassoc', $Hash_rassoc$55 = function $$rassoc(object) { + $def(self, '$rassoc', function $$rassoc(object) { var self = this; @@ -16764,32 +16737,30 @@ Opal.modules["corelib/hash"] = function(Opal) { return nil; - }, $Hash_rassoc$55.$$arity = 1); + }, 1); - Opal.def(self, '$rehash', $Hash_rehash$56 = function $$rehash() { + $def(self, '$rehash', function $$rehash() { var self = this; Opal.hash_rehash(self); return self; - }, $Hash_rehash$56.$$arity = 0); + }, 0); - Opal.def(self, '$reject', $Hash_reject$57 = function $$reject() { - var $iter = $Hash_reject$57.$$p, block = $iter || nil, $$58, self = this; + $def(self, '$reject', function $$reject() { + var block = $$reject.$$p || nil, self = this; - if ($iter) $Hash_reject$57.$$p = null; - + delete $$reject.$$p; - if ($iter) $Hash_reject$57.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["reject"], ($$58 = function(){var self = $$58.$$s == null ? this : $$58.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["reject"], function $$28(){var self = $$28.$$s == null ? this : $$28.$$s; - return self.$size()}, $$58.$$s = self, $$58.$$arity = 0, $$58)) + return self.$size()}, {$$arity: 0, $$s: self}) }; - var hash = Opal.hash(); + var hash = $hash(); for (var i = 0, keys = self.$$keys, length = keys.length, key, value, obj; i < length; i++) { key = keys[i]; @@ -16804,26 +16775,24 @@ Opal.modules["corelib/hash"] = function(Opal) { obj = block(key, value); if (obj === false || obj === nil) { - Opal.hash_put(hash, key, value); + $hash_put(hash, key, value); } } return hash; ; - }, $Hash_reject$57.$$arity = 0); + }, 0); - Opal.def(self, '$reject!', $Hash_reject$excl$59 = function() { - var $iter = $Hash_reject$excl$59.$$p, block = $iter || nil, $$60, self = this; + $def(self, '$reject!', function $Hash_reject$excl$29() { + var block = $Hash_reject$excl$29.$$p || nil, self = this; - if ($iter) $Hash_reject$excl$59.$$p = null; + delete $Hash_reject$excl$29.$$p; - - if ($iter) $Hash_reject$excl$59.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["reject!"], ($$60 = function(){var self = $$60.$$s == null ? this : $$60.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["reject!"], function $$30(){var self = $$30.$$s == null ? this : $$30.$$s; - return self.$size()}, $$60.$$s = self, $$60.$$arity = 0, $$60)) + return self.$size()}, {$$arity: 0, $$s: self}) }; var changes_were_made = false; @@ -16841,7 +16810,7 @@ Opal.modules["corelib/hash"] = function(Opal) { obj = block(key, value); if (obj !== false && obj !== nil) { - if (Opal.hash_delete(self, key) !== undefined) { + if ($hash_delete(self, key) !== undefined) { changes_were_made = true; length--; i--; @@ -16851,15 +16820,15 @@ Opal.modules["corelib/hash"] = function(Opal) { return changes_were_made ? self : nil; ; - }, $Hash_reject$excl$59.$$arity = 0); + }, 0); - Opal.def(self, '$replace', $Hash_replace$61 = function $$replace(other) { + $def(self, '$replace', function $$replace(other) { var self = this, $writer = nil; - other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); + other = $Opal['$coerce_to!'](other, $$$('Hash'), "to_hash"); - Opal.hash_init(self); + $hash_init(self); for (var i = 0, other_keys = other.$$keys, length = other_keys.length, key, value, other_value; i < length; i++) { key = other_keys[i]; @@ -16871,38 +16840,36 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - Opal.hash_put(self, key, other_value); + $hash_put(self, key, other_value); } ; if ($truthy(other.$default_proc())) { $writer = [other.$default_proc()]; - $send(self, 'default_proc=', Opal.to_a($writer)); + $send(self, 'default_proc=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } else { $writer = [other.$default()]; - $send(self, 'default=', Opal.to_a($writer)); + $send(self, 'default=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return self; - }, $Hash_replace$61.$$arity = 1); + }, 1); - Opal.def(self, '$select', $Hash_select$62 = function $$select() { - var $iter = $Hash_select$62.$$p, block = $iter || nil, $$63, self = this; + $def(self, '$select', function $$select() { + var block = $$select.$$p || nil, self = this; - if ($iter) $Hash_select$62.$$p = null; + delete $$select.$$p; - - if ($iter) $Hash_select$62.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["select"], ($$63 = function(){var self = $$63.$$s == null ? this : $$63.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["select"], function $$31(){var self = $$31.$$s == null ? this : $$31.$$s; - return self.$size()}, $$63.$$s = self, $$63.$$arity = 0, $$63)) + return self.$size()}, {$$arity: 0, $$s: self}) }; - var hash = Opal.hash(); + var hash = $hash(); for (var i = 0, keys = self.$$keys, length = keys.length, key, value, obj; i < length; i++) { key = keys[i]; @@ -16917,26 +16884,24 @@ Opal.modules["corelib/hash"] = function(Opal) { obj = block(key, value); if (obj !== false && obj !== nil) { - Opal.hash_put(hash, key, value); + $hash_put(hash, key, value); } } return hash; ; - }, $Hash_select$62.$$arity = 0); + }, 0); - Opal.def(self, '$select!', $Hash_select$excl$64 = function() { - var $iter = $Hash_select$excl$64.$$p, block = $iter || nil, $$65, self = this; + $def(self, '$select!', function $Hash_select$excl$32() { + var block = $Hash_select$excl$32.$$p || nil, self = this; - if ($iter) $Hash_select$excl$64.$$p = null; - + delete $Hash_select$excl$32.$$p; - if ($iter) $Hash_select$excl$64.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["select!"], ($$65 = function(){var self = $$65.$$s == null ? this : $$65.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["select!"], function $$33(){var self = $$33.$$s == null ? this : $$33.$$s; - return self.$size()}, $$65.$$s = self, $$65.$$arity = 0, $$65)) + return self.$size()}, {$$arity: 0, $$s: self}) }; var result = nil; @@ -16954,7 +16919,7 @@ Opal.modules["corelib/hash"] = function(Opal) { obj = block(key, value); if (obj === false || obj === nil) { - if (Opal.hash_delete(self, key) !== undefined) { + if ($hash_delete(self, key) !== undefined) { length--; i--; } @@ -16964,11 +16929,9 @@ Opal.modules["corelib/hash"] = function(Opal) { return result; ; - }, $Hash_select$excl$64.$$arity = 0); - $alias(self, "filter", "select"); - $alias(self, "filter!", "select!"); + }, 0); - Opal.def(self, '$shift', $Hash_shift$66 = function $$shift() { + $def(self, '$shift', function $$shift() { var self = this; @@ -16980,39 +16943,37 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.$$is_string ? key : key.key; - return [key, Opal.hash_delete(self, key)]; + return [key, $hash_delete(self, key)]; } return self.$default(nil); - }, $Hash_shift$66.$$arity = 0); - $alias(self, "size", "length"); + }, 0); - Opal.def(self, '$slice', $Hash_slice$67 = function $$slice($a) { + $def(self, '$slice', function $$slice($a) { var $post_args, keys, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); keys = $post_args;; - var result = Opal.hash(); + var result = $hash(); for (var i = 0, length = keys.length; i < length; i++) { - var key = keys[i], value = Opal.hash_get(self, key); + var key = keys[i], value = $hash_get(self, key); if (value !== undefined) { - Opal.hash_put(result, key, value); + $hash_put(result, key, value); } } return result; ; - }, $Hash_slice$67.$$arity = -1); - $alias(self, "store", "[]="); + }, -1); - Opal.def(self, '$to_a', $Hash_to_a$68 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; @@ -17033,17 +16994,17 @@ Opal.modules["corelib/hash"] = function(Opal) { return result; - }, $Hash_to_a$68.$$arity = 0); + }, 0); - Opal.def(self, '$to_h', $Hash_to_h$69 = function $$to_h() { - var $iter = $Hash_to_h$69.$$p, block = $iter || nil, self = this; + $def(self, '$to_h', function $$to_h() { + var block = $$to_h.$$p || nil, self = this; - if ($iter) $Hash_to_h$69.$$p = null; - + delete $$to_h.$$p; - if ($iter) $Hash_to_h$69.$$p = null;; + ; if ((block !== nil)) { - return $send(self, 'map', [], block.$to_proc()).$to_h()}; + return $send(self, 'map', [], block.$to_proc()).$to_h() + }; if (self.$$class === Opal.Hash) { return self; @@ -17051,50 +17012,47 @@ Opal.modules["corelib/hash"] = function(Opal) { var hash = new Opal.Hash(); - Opal.hash_init(hash); + $hash_init(hash); Opal.hash_clone(self, hash); return hash; ; - }, $Hash_to_h$69.$$arity = 0); + }, 0); - Opal.def(self, '$to_hash', $Hash_to_hash$70 = function $$to_hash() { + $def(self, '$to_hash', function $$to_hash() { var self = this; return self - }, $Hash_to_hash$70.$$arity = 0); + }, 0); - Opal.def(self, '$to_proc', $Hash_to_proc$71 = function $$to_proc() { - var $$72, self = this; + $def(self, '$to_proc', function $$to_proc() { + var self = this; - return $send(self, 'proc', [], ($$72 = function(key){var self = $$72.$$s == null ? this : $$72.$$s; + return $send(self, 'proc', [], function $$34(key){var self = $$34.$$s == null ? this : $$34.$$s; ; if (key == null) { - self.$raise($$($nesting, 'ArgumentError'), "no key given") + $Kernel.$raise($$$('ArgumentError'), "no key given") } ; - return self['$[]'](key);}, $$72.$$s = self, $$72.$$arity = -1, $$72)) - }, $Hash_to_proc$71.$$arity = 0); - $alias(self, "to_s", "inspect"); + return self['$[]'](key);}, {$$arity: -1, $$s: self}) + }, 0); - Opal.def(self, '$transform_keys', $Hash_transform_keys$73 = function $$transform_keys() { - var $iter = $Hash_transform_keys$73.$$p, block = $iter || nil, $$74, self = this; + $def(self, '$transform_keys', function $$transform_keys() { + var block = $$transform_keys.$$p || nil, self = this; - if ($iter) $Hash_transform_keys$73.$$p = null; + delete $$transform_keys.$$p; - - if ($iter) $Hash_transform_keys$73.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["transform_keys"], ($$74 = function(){var self = $$74.$$s == null ? this : $$74.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["transform_keys"], function $$35(){var self = $$35.$$s == null ? this : $$35.$$s; - return self.$size()}, $$74.$$s = self, $$74.$$arity = 0, $$74)) + return self.$size()}, {$$arity: 0, $$s: self}) }; - var result = Opal.hash(); + var result = $hash(); for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { key = keys[i]; @@ -17106,27 +17064,25 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - key = Opal.yield1(block, key); + key = $yield1(block, key); - Opal.hash_put(result, key, value); + $hash_put(result, key, value); } return result; ; - }, $Hash_transform_keys$73.$$arity = 0); + }, 0); - Opal.def(self, '$transform_keys!', $Hash_transform_keys$excl$75 = function() { - var $iter = $Hash_transform_keys$excl$75.$$p, block = $iter || nil, $$76, self = this; + $def(self, '$transform_keys!', function $Hash_transform_keys$excl$36() { + var block = $Hash_transform_keys$excl$36.$$p || nil, self = this; - if ($iter) $Hash_transform_keys$excl$75.$$p = null; + delete $Hash_transform_keys$excl$36.$$p; - - if ($iter) $Hash_transform_keys$excl$75.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["transform_keys!"], ($$76 = function(){var self = $$76.$$s == null ? this : $$76.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["transform_keys!"], function $$37(){var self = $$37.$$s == null ? this : $$37.$$s; - return self.$size()}, $$76.$$s = self, $$76.$$arity = 0, $$76)) + return self.$size()}, {$$arity: 0, $$s: self}) }; var keys = Opal.slice.call(self.$$keys), @@ -17142,31 +17098,29 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - new_key = Opal.yield1(block, key); + new_key = $yield1(block, key); - Opal.hash_delete(self, key); - Opal.hash_put(self, new_key, value); + $hash_delete(self, key); + $hash_put(self, new_key, value); } return self; ; - }, $Hash_transform_keys$excl$75.$$arity = 0); + }, 0); - Opal.def(self, '$transform_values', $Hash_transform_values$77 = function $$transform_values() { - var $iter = $Hash_transform_values$77.$$p, block = $iter || nil, $$78, self = this; + $def(self, '$transform_values', function $$transform_values() { + var block = $$transform_values.$$p || nil, self = this; - if ($iter) $Hash_transform_values$77.$$p = null; + delete $$transform_values.$$p; - - if ($iter) $Hash_transform_values$77.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["transform_values"], ($$78 = function(){var self = $$78.$$s == null ? this : $$78.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["transform_values"], function $$38(){var self = $$38.$$s == null ? this : $$38.$$s; - return self.$size()}, $$78.$$s = self, $$78.$$arity = 0, $$78)) + return self.$size()}, {$$arity: 0, $$s: self}) }; - var result = Opal.hash(); + var result = $hash(); for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { key = keys[i]; @@ -17178,27 +17132,25 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - value = Opal.yield1(block, value); + value = $yield1(block, value); - Opal.hash_put(result, key, value); + $hash_put(result, key, value); } return result; ; - }, $Hash_transform_values$77.$$arity = 0); + }, 0); - Opal.def(self, '$transform_values!', $Hash_transform_values$excl$79 = function() { - var $iter = $Hash_transform_values$excl$79.$$p, block = $iter || nil, $$80, self = this; + $def(self, '$transform_values!', function $Hash_transform_values$excl$39() { + var block = $Hash_transform_values$excl$39.$$p || nil, self = this; - if ($iter) $Hash_transform_values$excl$79.$$p = null; + delete $Hash_transform_values$excl$39.$$p; - - if ($iter) $Hash_transform_values$excl$79.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["transform_values!"], ($$80 = function(){var self = $$80.$$s == null ? this : $$80.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["transform_values!"], function $$40(){var self = $$40.$$s == null ? this : $$40.$$s; - return self.$size()}, $$80.$$s = self, $$80.$$arity = 0, $$80)) + return self.$size()}, {$$arity: 0, $$s: self}) }; for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { @@ -17211,18 +17163,16 @@ Opal.modules["corelib/hash"] = function(Opal) { key = key.key; } - value = Opal.yield1(block, value); + value = $yield1(block, value); - Opal.hash_put(self, key, value); + $hash_put(self, key, value); } return self; ; - }, $Hash_transform_values$excl$79.$$arity = 0); - $alias(self, "update", "merge!"); - $alias(self, "value?", "has_value?"); - $alias(self, "values_at", "indexes"); - return (Opal.def(self, '$values', $Hash_values$81 = function $$values() { + }, 0); + + $def(self, '$values', function $$values() { var self = this; @@ -17240,96 +17190,85 @@ Opal.modules["corelib/hash"] = function(Opal) { return result; - }, $Hash_values$81.$$arity = 0), nil) && 'values'; - })($nesting[0], null, $nesting); + }, 0); + $alias(self, "dup", "clone"); + $alias(self, "each_pair", "each"); + $alias(self, "eql?", "=="); + $alias(self, "filter", "select"); + $alias(self, "filter!", "select!"); + $alias(self, "include?", "has_key?"); + $alias(self, "indices", "indexes"); + $alias(self, "key", "index"); + $alias(self, "key?", "has_key?"); + $alias(self, "member?", "has_key?"); + $alias(self, "size", "length"); + $alias(self, "store", "[]="); + $alias(self, "to_s", "inspect"); + $alias(self, "update", "merge!"); + $alias(self, "value?", "has_value?"); + return $alias(self, "values_at", "indexes"); + })('::', null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/number"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; +Opal.modules["corelib/number"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $Opal = Opal.Opal, $Kernel = Opal.Kernel, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $not = Opal.not, $rb_lt = Opal.rb_lt, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq, $rb_divide = Opal.rb_divide, $to_ary = Opal.to_ary, $rb_times = Opal.rb_times, $rb_le = Opal.rb_le, $rb_ge = Opal.rb_ge, $const_set = Opal.const_set; - Opal.add_stubs(['$require', '$bridge', '$raise', '$name', '$class', '$Float', '$respond_to?', '$coerce_to!', '$__coerced__', '$===', '$!', '$>', '$**', '$new', '$<', '$to_f', '$==', '$nan?', '$infinite?', '$enum_for', '$+', '$-', '$gcd', '$lcm', '$%', '$/', '$frexp', '$to_i', '$ldexp', '$rationalize', '$*', '$<<', '$to_r', '$truncate', '$-@', '$size', '$<=', '$>=']); + Opal.add_stubs('require,bridge,raise,name,class,Float,respond_to?,coerce_to!,__coerced__,===,>,!,**,new,<,to_f,==,nan?,infinite?,enum_for,+,-,gcd,lcm,%,/,frexp,to_i,ldexp,rationalize,*,<<,to_r,truncate,-@,size,<=,>=,inspect,coerce_to?'); self.$require("corelib/numeric"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Number'); - var $nesting = [self].concat($parent_nesting), $Number_coerce$2, $Number___id__$3, $Number_$plus$4, $Number_$minus$5, $Number_$$6, $Number_$slash$7, $Number_$percent$8, $Number_$$9, $Number_$$10, $Number_$$11, $Number_$lt$12, $Number_$lt_eq$13, $Number_$gt$14, $Number_$gt_eq$15, $Number_$lt_eq_gt$16, $Number_$lt$lt$17, $Number_$gt$gt$18, $Number_$$$19, $Number_$plus$$20, $Number_$minus$$21, $Number_$$22, $Number_$$$23, $Number_$eq_eq_eq$24, $Number_$eq_eq$25, $Number_abs$26, $Number_abs2$27, $Number_allbits$ques$28, $Number_anybits$ques$29, $Number_angle$30, $Number_bit_length$31, $Number_ceil$32, $Number_chr$33, $Number_denominator$34, $Number_downto$35, $Number_equal$ques$37, $Number_even$ques$38, $Number_floor$39, $Number_gcd$40, $Number_gcdlcm$41, $Number_integer$ques$42, $Number_is_a$ques$43, $Number_instance_of$ques$44, $Number_lcm$45, $Number_next$46, $Number_nobits$ques$47, $Number_nonzero$ques$48, $Number_numerator$49, $Number_odd$ques$50, $Number_ord$51, $Number_pow$52, $Number_pred$53, $Number_quo$54, $Number_rationalize$55, $Number_remainder$56, $Number_round$57, $Number_times$58, $Number_to_f$60, $Number_to_i$61, $Number_to_r$62, $Number_to_s$63, $Number_truncate$64, $Number_digits$65, $Number_divmod$66, $Number_upto$67, $Number_zero$ques$69, $Number_size$70, $Number_nan$ques$71, $Number_finite$ques$72, $Number_infinite$ques$73, $Number_positive$ques$74, $Number_negative$ques$75; + var $nesting = [self].concat($parent_nesting); - $$($nesting, 'Opal').$bridge(Number, self); - Opal.defineProperty(self.$$prototype, '$$is_number', true); + $Opal.$bridge(Number, self); + Opal.prop(self.$$prototype, '$$is_number', true); self.$$is_number_class = true; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $allocate$1; - - Opal.def(self, '$allocate', $allocate$1 = function $$allocate() { + + $def(self, '$allocate', function $$allocate() { var self = this; - return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, $allocate$1.$$arity = 0); + return $Kernel.$raise($$$('TypeError'), "allocator undefined for " + (self.$name())) + }, 0); Opal.udef(self, '$' + "new");; return nil;; })(Opal.get_singleton_class(self), $nesting); - Opal.def(self, '$coerce', $Number_coerce$2 = function $$coerce(other) { + $def(self, '$coerce', function $$coerce(other) { var self = this; if (other === nil) { - self.$raise($$($nesting, 'TypeError'), "" + "can't convert " + (other.$class()) + " into Float"); + $Kernel.$raise($$$('TypeError'), "can't convert " + (other.$class()) + " into Float"); } else if (other.$$is_string) { - return [self.$Float(other), self]; + return [$Kernel.$Float(other), self]; } else if (other['$respond_to?']("to_f")) { - return [$$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Float'), "to_f"), self]; + return [$Opal['$coerce_to!'](other, $$$('Float'), "to_f"), self]; } else if (other.$$is_number) { return [other, self]; } else { - self.$raise($$($nesting, 'TypeError'), "" + "can't convert " + (other.$class()) + " into Float"); + $Kernel.$raise($$$('TypeError'), "can't convert " + (other.$class()) + " into Float"); } - }, $Number_coerce$2.$$arity = 1); + }, 1); - Opal.def(self, '$__id__', $Number___id__$3 = function $$__id__() { + $def(self, '$__id__', function $$__id__() { var self = this; return (self * 2) + 1; - }, $Number___id__$3.$$arity = 0); - $alias(self, "object_id", "__id__"); + }, 0); - Opal.def(self, '$+', $Number_$plus$4 = function(other) { + $def(self, '$+', function $Number_$plus$1(other) { var self = this; @@ -17340,9 +17279,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("+", other); } - }, $Number_$plus$4.$$arity = 1); + }, 1); - Opal.def(self, '$-', $Number_$minus$5 = function(other) { + $def(self, '$-', function $Number_$minus$2(other) { var self = this; @@ -17353,9 +17292,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("-", other); } - }, $Number_$minus$5.$$arity = 1); + }, 1); - Opal.def(self, '$*', $Number_$$6 = function(other) { + $def(self, '$*', function $Number_$$3(other) { var self = this; @@ -17366,9 +17305,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("*", other); } - }, $Number_$$6.$$arity = 1); + }, 1); - Opal.def(self, '$/', $Number_$slash$7 = function(other) { + $def(self, '$/', function $Number_$slash$4(other) { var self = this; @@ -17379,10 +17318,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("/", other); } - }, $Number_$slash$7.$$arity = 1); - $alias(self, "fdiv", "/"); + }, 1); - Opal.def(self, '$%', $Number_$percent$8 = function(other) { + $def(self, '$%', function $Number_$percent$5(other) { var self = this; @@ -17391,7 +17329,7 @@ Opal.modules["corelib/number"] = function(Opal) { return other; } else if (other == 0) { - self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0"); + $Kernel.$raise($$$('ZeroDivisionError'), "divided by 0"); } else if (other < 0 || self < 0) { return (self % other + other) % other; @@ -17404,9 +17342,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("%", other); } - }, $Number_$percent$8.$$arity = 1); + }, 1); - Opal.def(self, '$&', $Number_$$9 = function(other) { + $def(self, '$&', function $Number_$$6(other) { var self = this; @@ -17417,9 +17355,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("&", other); } - }, $Number_$$9.$$arity = 1); + }, 1); - Opal.def(self, '$|', $Number_$$10 = function(other) { + $def(self, '$|', function $Number_$$7(other) { var self = this; @@ -17430,9 +17368,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("|", other); } - }, $Number_$$10.$$arity = 1); + }, 1); - Opal.def(self, '$^', $Number_$$11 = function(other) { + $def(self, '$^', function $Number_$$8(other) { var self = this; @@ -17443,9 +17381,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("^", other); } - }, $Number_$$11.$$arity = 1); + }, 1); - Opal.def(self, '$<', $Number_$lt$12 = function(other) { + $def(self, '$<', function $Number_$lt$9(other) { var self = this; @@ -17456,9 +17394,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("<", other); } - }, $Number_$lt$12.$$arity = 1); + }, 1); - Opal.def(self, '$<=', $Number_$lt_eq$13 = function(other) { + $def(self, '$<=', function $Number_$lt_eq$10(other) { var self = this; @@ -17469,9 +17407,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("<=", other); } - }, $Number_$lt_eq$13.$$arity = 1); + }, 1); - Opal.def(self, '$>', $Number_$gt$14 = function(other) { + $def(self, '$>', function $Number_$gt$11(other) { var self = this; @@ -17482,9 +17420,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__(">", other); } - }, $Number_$gt$14.$$arity = 1); + }, 1); - Opal.def(self, '$>=', $Number_$gt_eq$15 = function(other) { + $def(self, '$>=', function $Number_$gt_eq$12(other) { var self = this; @@ -17495,7 +17433,7 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__(">=", other); } - }, $Number_$gt_eq$15.$$arity = 1); + }, 1); var spaceship_operator = function(self, other) { if (other.$$is_number) { @@ -17517,41 +17455,41 @@ Opal.modules["corelib/number"] = function(Opal) { } ; - Opal.def(self, '$<=>', $Number_$lt_eq_gt$16 = function(other) { + $def(self, '$<=>', function $Number_$lt_eq_gt$13(other) { var self = this; try { return spaceship_operator(self, other); } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$$('ArgumentError')])) { try { return nil } finally { Opal.pop_exception(); } } else { throw $err; } } - }, $Number_$lt_eq_gt$16.$$arity = 1); + }, 1); - Opal.def(self, '$<<', $Number_$lt$lt$17 = function(count) { + $def(self, '$<<', function $Number_$lt$lt$14(count) { var self = this; - count = $$($nesting, 'Opal')['$coerce_to!'](count, $$($nesting, 'Integer'), "to_int"); + count = $Opal['$coerce_to!'](count, $$$('Integer'), "to_int"); return count > 0 ? self << count : self >> -count; - }, $Number_$lt$lt$17.$$arity = 1); + }, 1); - Opal.def(self, '$>>', $Number_$gt$gt$18 = function(count) { + $def(self, '$>>', function $Number_$gt$gt$15(count) { var self = this; - count = $$($nesting, 'Opal')['$coerce_to!'](count, $$($nesting, 'Integer'), "to_int"); + count = $Opal['$coerce_to!'](count, $$$('Integer'), "to_int"); return count > 0 ? self >> count : self << -count; - }, $Number_$gt$gt$18.$$arity = 1); + }, 1); - Opal.def(self, '$[]', $Number_$$$19 = function(bit) { + $def(self, '$[]', function $Number_$$$16(bit) { var self = this; - bit = $$($nesting, 'Opal')['$coerce_to!'](bit, $$($nesting, 'Integer'), "to_int"); + bit = $Opal['$coerce_to!'](bit, $$$('Integer'), "to_int"); if (bit < 0) { return 0; @@ -17561,74 +17499,45 @@ Opal.modules["corelib/number"] = function(Opal) { } return (self >> bit) & 1; ; - }, $Number_$$$19.$$arity = 1); + }, 1); - Opal.def(self, '$+@', $Number_$plus$$20 = function() { + $def(self, '$+@', function $Number_$plus$$17() { var self = this; return +self; - }, $Number_$plus$$20.$$arity = 0); + }, 0); - Opal.def(self, '$-@', $Number_$minus$$21 = function() { + $def(self, '$-@', function $Number_$minus$$18() { var self = this; return -self; - }, $Number_$minus$$21.$$arity = 0); + }, 0); - Opal.def(self, '$~', $Number_$$22 = function() { + $def(self, '$~', function $Number_$$19() { var self = this; return ~self; - }, $Number_$$22.$$arity = 0); - - Opal.def(self, '$**', $Number_$$$23 = function(other) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - - if ($truthy($$($nesting, 'Integer')['$==='](other))) { - if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Integer')['$==='](self)['$!']()))) { - return $ret_or_1 - } else { - return $rb_gt(other, 0) - }; return nil; })())) { - return Math.pow(self, other); - } else { - return $$($nesting, 'Rational').$new(self, 1)['$**'](other) - } - } else if ($truthy((function() {if ($truthy(($ret_or_2 = $rb_lt(self, 0)))) { - - if ($truthy(($ret_or_3 = $$($nesting, 'Float')['$==='](other)))) { - return $ret_or_3 - } else { - return $$($nesting, 'Rational')['$==='](other) - }; - } else { - return $ret_or_2 - }; return nil; })())) { - return $$($nesting, 'Complex').$new(self, 0)['$**'](other.$to_f()) - } else if ($truthy(other.$$is_number != null)) { - return Math.pow(self, other); - } else { - return self.$__coerced__("**", other) - } - }, $Number_$$$23.$$arity = 1); + }, 0); - Opal.def(self, '$===', $Number_$eq_eq_eq$24 = function(other) { + $def(self, '$**', function $Number_$$$20(other) { var self = this; - - - if (other.$$is_number) { - return self.valueOf() === other.valueOf(); - } - else if (other['$respond_to?']("==")) { - return other['$=='](self); - } - else { - return false; + + if ($eqeqeq($$$('Integer'), other)) { + if (($not($$$('Integer')['$==='](self)) || ($truthy($rb_gt(other, 0))))) { + return Math.pow(self, other); + } else { + return $$$('Rational').$new(self, 1)['$**'](other) + } + } else if (($rb_lt(self, 0) && (($eqeqeq($$$('Float'), other) || ($eqeqeq($$$('Rational'), other)))))) { + return $$$('Complex').$new(self, 0)['$**'](other.$to_f()) + } else if ($truthy(other.$$is_number != null)) { + return Math.pow(self, other); + } else { + return self.$__coerced__("**", other) } + }, 1); - }, $Number_$eq_eq_eq$24.$$arity = 1); - - Opal.def(self, '$==', $Number_$eq_eq$25 = function(other) { + $def(self, '$==', function $Number_$eq_eq$21(other) { var self = this; @@ -17642,42 +17551,44 @@ Opal.modules["corelib/number"] = function(Opal) { return false; } - }, $Number_$eq_eq$25.$$arity = 1); + }, 1); + $alias(self, "===", "=="); - Opal.def(self, '$abs', $Number_abs$26 = function $$abs() { + $def(self, '$abs', function $$abs() { var self = this; return Math.abs(self); - }, $Number_abs$26.$$arity = 0); + }, 0); - Opal.def(self, '$abs2', $Number_abs2$27 = function $$abs2() { + $def(self, '$abs2', function $$abs2() { var self = this; return Math.abs(self * self); - }, $Number_abs2$27.$$arity = 0); + }, 0); - Opal.def(self, '$allbits?', $Number_allbits$ques$28 = function(mask) { + $def(self, '$allbits?', function $Number_allbits$ques$22(mask) { var self = this; - mask = $$($nesting, 'Opal')['$coerce_to!'](mask, $$($nesting, 'Integer'), "to_int"); + mask = $Opal['$coerce_to!'](mask, $$$('Integer'), "to_int"); return (self & mask) == mask;; - }, $Number_allbits$ques$28.$$arity = 1); + }, 1); - Opal.def(self, '$anybits?', $Number_anybits$ques$29 = function(mask) { + $def(self, '$anybits?', function $Number_anybits$ques$23(mask) { var self = this; - mask = $$($nesting, 'Opal')['$coerce_to!'](mask, $$($nesting, 'Integer'), "to_int"); + mask = $Opal['$coerce_to!'](mask, $$$('Integer'), "to_int"); return (self & mask) !== 0;; - }, $Number_anybits$ques$29.$$arity = 1); + }, 1); - Opal.def(self, '$angle', $Number_angle$30 = function $$angle() { + $def(self, '$angle', function $$angle() { var self = this; if ($truthy(self['$nan?']())) { - return self}; + return self + }; if (self == 0) { if (1 / self > 0) { @@ -17694,17 +17605,14 @@ Opal.modules["corelib/number"] = function(Opal) { return 0; } ; - }, $Number_angle$30.$$arity = 0); - $alias(self, "arg", "angle"); - $alias(self, "phase", "angle"); + }, 0); - Opal.def(self, '$bit_length', $Number_bit_length$31 = function $$bit_length() { + $def(self, '$bit_length', function $$bit_length() { var self = this; - if ($truthy($$($nesting, 'Integer')['$==='](self))) { - } else { - self.$raise($$($nesting, 'NoMethodError').$new("" + "undefined method `bit_length` for " + (self) + ":Float", "bit_length")) + if (!$eqeqeq($$$('Integer'), self)) { + $Kernel.$raise($$$('NoMethodError').$new("undefined method `bit_length` for " + (self) + ":Float", "bit_length")) }; if (self === 0 || self === -1) { @@ -17721,16 +17629,14 @@ Opal.modules["corelib/number"] = function(Opal) { return result; ; - }, $Number_bit_length$31.$$arity = 0); + }, 0); - Opal.def(self, '$ceil', $Number_ceil$32 = function $$ceil(ndigits) { + $def(self, '$ceil', function $$ceil(ndigits) { var self = this; - if (ndigits == null) { - ndigits = 0; - }; + if (ndigits == null) ndigits = 0;; var f = self.$to_f(); @@ -17747,93 +17653,79 @@ Opal.modules["corelib/number"] = function(Opal) { return result; ; - }, $Number_ceil$32.$$arity = -1); + }, -1); - Opal.def(self, '$chr', $Number_chr$33 = function $$chr(encoding) { + $def(self, '$chr', function $$chr(encoding) { var self = this; ; return Opal.enc(String.fromCharCode(self), encoding || "BINARY");; - }, $Number_chr$33.$$arity = -1); + }, -1); - Opal.def(self, '$denominator', $Number_denominator$34 = function $$denominator() { - var $iter = $Number_denominator$34.$$p, $yield = $iter || nil, self = this, $ret_or_4 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$denominator', function $$denominator() { + var $yield = $$denominator.$$p || nil, self = this; - if ($iter) $Number_denominator$34.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy((function() {if ($truthy(($ret_or_4 = self['$nan?']()))) { - return $ret_or_4 - } else { - return self['$infinite?']() - }; return nil; })())) { + delete $$denominator.$$p; + if (($truthy(self['$nan?']()) || ($truthy(self['$infinite?']())))) { return 1 } else { - return $send2(self, $find_super(self, 'denominator', $Number_denominator$34, false, true), 'denominator', $zuper, $iter) + return $send2(self, $find_super(self, 'denominator', $$denominator, false, true), 'denominator', [], $yield) } - }, $Number_denominator$34.$$arity = 0); + }, 0); - Opal.def(self, '$downto', $Number_downto$35 = function $$downto(stop) { - var $iter = $Number_downto$35.$$p, block = $iter || nil, $$36, self = this; + $def(self, '$downto', function $$downto(stop) { + var block = $$downto.$$p || nil, self = this; - if ($iter) $Number_downto$35.$$p = null; + delete $$downto.$$p; - - if ($iter) $Number_downto$35.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["downto", stop], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["downto", stop], function $$24(){var self = $$24.$$s == null ? this : $$24.$$s; - if ($truthy($$($nesting, 'Numeric')['$==='](stop))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") + if (!$eqeqeq($$$('Numeric'), stop)) { + $Kernel.$raise($$$('ArgumentError'), "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") }; if ($truthy($rb_gt(stop, self))) { return 0 } else { return $rb_plus($rb_minus(self, stop), 1) - };}, $$36.$$s = self, $$36.$$arity = 0, $$36)) + };}, {$$arity: 0, $$s: self}) }; if (!stop.$$is_number) { - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") + $Kernel.$raise($$$('ArgumentError'), "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") } for (var i = self; i >= stop; i--) { block(i); } ; return self; - }, $Number_downto$35.$$arity = 1); - $alias(self, "eql?", "=="); + }, 1); - Opal.def(self, '$equal?', $Number_equal$ques$37 = function(other) { - var self = this, $ret_or_5 = nil; + $def(self, '$equal?', function $Number_equal$ques$25(other) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_5 = self['$=='](other)))) { - return $ret_or_5 + if ($truthy(($ret_or_1 = self['$=='](other)))) { + return $ret_or_1 } else { return isNaN(self) && isNaN(other); } - }, $Number_equal$ques$37.$$arity = 1); + }, 1); - Opal.def(self, '$even?', $Number_even$ques$38 = function() { + $def(self, '$even?', function $Number_even$ques$26() { var self = this; return self % 2 === 0; - }, $Number_even$ques$38.$$arity = 0); + }, 0); - Opal.def(self, '$floor', $Number_floor$39 = function $$floor(ndigits) { + $def(self, '$floor', function $$floor(ndigits) { var self = this; - if (ndigits == null) { - ndigits = 0; - }; + if (ndigits == null) ndigits = 0;; var f = self.$to_f(); @@ -17850,15 +17742,14 @@ Opal.modules["corelib/number"] = function(Opal) { return result; ; - }, $Number_floor$39.$$arity = -1); + }, -1); - Opal.def(self, '$gcd', $Number_gcd$40 = function $$gcd(other) { + $def(self, '$gcd', function $$gcd(other) { var self = this; - if ($truthy($$($nesting, 'Integer')['$==='](other))) { - } else { - self.$raise($$($nesting, 'TypeError'), "not an integer") + if (!$eqeqeq($$$('Integer'), other)) { + $Kernel.$raise($$$('TypeError'), "not an integer") }; var min = Math.abs(self), @@ -17873,88 +17764,60 @@ Opal.modules["corelib/number"] = function(Opal) { return max; ; - }, $Number_gcd$40.$$arity = 1); + }, 1); - Opal.def(self, '$gcdlcm', $Number_gcdlcm$41 = function $$gcdlcm(other) { + $def(self, '$gcdlcm', function $$gcdlcm(other) { var self = this; return [self.$gcd(other), self.$lcm(other)] - }, $Number_gcdlcm$41.$$arity = 1); + }, 1); - Opal.def(self, '$integer?', $Number_integer$ques$42 = function() { + $def(self, '$integer?', function $Number_integer$ques$27() { var self = this; return self % 1 === 0; - }, $Number_integer$ques$42.$$arity = 0); + }, 0); - Opal.def(self, '$is_a?', $Number_is_a$ques$43 = function(klass) { - var $iter = $Number_is_a$ques$43.$$p, $yield = $iter || nil, self = this, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$is_a?', function $Number_is_a$ques$28(klass) { + var $yield = $Number_is_a$ques$28.$$p || nil, self = this; - if ($iter) $Number_is_a$ques$43.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $Number_is_a$ques$28.$$p; - if ($truthy((function() {if ($truthy(($ret_or_6 = klass['$==']($$($nesting, 'Integer'))))) { - return $$($nesting, 'Integer')['$==='](self) - } else { - return $ret_or_6 - }; return nil; })())) { - return true}; - if ($truthy((function() {if ($truthy(($ret_or_7 = klass['$==']($$($nesting, 'Integer'))))) { - return $$($nesting, 'Integer')['$==='](self) - } else { - return $ret_or_7 - }; return nil; })())) { - return true}; - if ($truthy((function() {if ($truthy(($ret_or_8 = klass['$==']($$($nesting, 'Float'))))) { - return $$($nesting, 'Float')['$==='](self) - } else { - return $ret_or_8 - }; return nil; })())) { - return true}; - return $send2(self, $find_super(self, 'is_a?', $Number_is_a$ques$43, false, true), 'is_a?', $zuper, $iter); - }, $Number_is_a$ques$43.$$arity = 1); - $alias(self, "kind_of?", "is_a?"); + if (($eqeq(klass, $$$('Integer')) && ($eqeqeq($$$('Integer'), self)))) { + return true + }; + if (($eqeq(klass, $$$('Integer')) && ($eqeqeq($$$('Integer'), self)))) { + return true + }; + if (($eqeq(klass, $$$('Float')) && ($eqeqeq($$$('Float'), self)))) { + return true + }; + return $send2(self, $find_super(self, 'is_a?', $Number_is_a$ques$28, false, true), 'is_a?', [klass], $yield); + }, 1); - Opal.def(self, '$instance_of?', $Number_instance_of$ques$44 = function(klass) { - var $iter = $Number_instance_of$ques$44.$$p, $yield = $iter || nil, self = this, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$instance_of?', function $Number_instance_of$ques$29(klass) { + var $yield = $Number_instance_of$ques$29.$$p || nil, self = this; - if ($iter) $Number_instance_of$ques$44.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $Number_instance_of$ques$29.$$p; - if ($truthy((function() {if ($truthy(($ret_or_9 = klass['$==']($$($nesting, 'Integer'))))) { - return $$($nesting, 'Integer')['$==='](self) - } else { - return $ret_or_9 - }; return nil; })())) { - return true}; - if ($truthy((function() {if ($truthy(($ret_or_10 = klass['$==']($$($nesting, 'Integer'))))) { - return $$($nesting, 'Integer')['$==='](self) - } else { - return $ret_or_10 - }; return nil; })())) { - return true}; - if ($truthy((function() {if ($truthy(($ret_or_11 = klass['$==']($$($nesting, 'Float'))))) { - return $$($nesting, 'Float')['$==='](self) - } else { - return $ret_or_11 - }; return nil; })())) { - return true}; - return $send2(self, $find_super(self, 'instance_of?', $Number_instance_of$ques$44, false, true), 'instance_of?', $zuper, $iter); - }, $Number_instance_of$ques$44.$$arity = 1); + if (($eqeq(klass, $$$('Integer')) && ($eqeqeq($$$('Integer'), self)))) { + return true + }; + if (($eqeq(klass, $$$('Integer')) && ($eqeqeq($$$('Integer'), self)))) { + return true + }; + if (($eqeq(klass, $$$('Float')) && ($eqeqeq($$$('Float'), self)))) { + return true + }; + return $send2(self, $find_super(self, 'instance_of?', $Number_instance_of$ques$29, false, true), 'instance_of?', [klass], $yield); + }, 1); - Opal.def(self, '$lcm', $Number_lcm$45 = function $$lcm(other) { + $def(self, '$lcm', function $$lcm(other) { var self = this; - if ($truthy($$($nesting, 'Integer')['$==='](other))) { - } else { - self.$raise($$($nesting, 'TypeError'), "not an integer") + if (!$eqeqeq($$$('Integer'), other)) { + $Kernel.$raise($$$('TypeError'), "not an integer") }; if (self == 0 || other == 0) { @@ -17964,169 +17827,155 @@ Opal.modules["corelib/number"] = function(Opal) { return Math.abs(self * other / self.$gcd(other)); } ; - }, $Number_lcm$45.$$arity = 1); - $alias(self, "magnitude", "abs"); - $alias(self, "modulo", "%"); + }, 1); - Opal.def(self, '$next', $Number_next$46 = function $$next() { + $def(self, '$next', function $$next() { var self = this; return self + 1; - }, $Number_next$46.$$arity = 0); + }, 0); - Opal.def(self, '$nobits?', $Number_nobits$ques$47 = function(mask) { + $def(self, '$nobits?', function $Number_nobits$ques$30(mask) { var self = this; - mask = $$($nesting, 'Opal')['$coerce_to!'](mask, $$($nesting, 'Integer'), "to_int"); + mask = $Opal['$coerce_to!'](mask, $$$('Integer'), "to_int"); return (self & mask) == 0;; - }, $Number_nobits$ques$47.$$arity = 1); + }, 1); - Opal.def(self, '$nonzero?', $Number_nonzero$ques$48 = function() { + $def(self, '$nonzero?', function $Number_nonzero$ques$31() { var self = this; return self == 0 ? nil : self; - }, $Number_nonzero$ques$48.$$arity = 0); + }, 0); - Opal.def(self, '$numerator', $Number_numerator$49 = function $$numerator() { - var $iter = $Number_numerator$49.$$p, $yield = $iter || nil, self = this, $ret_or_12 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$numerator', function $$numerator() { + var $yield = $$numerator.$$p || nil, self = this; - if ($iter) $Number_numerator$49.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy((function() {if ($truthy(($ret_or_12 = self['$nan?']()))) { - return $ret_or_12 - } else { - return self['$infinite?']() - }; return nil; })())) { + delete $$numerator.$$p; + if (($truthy(self['$nan?']()) || ($truthy(self['$infinite?']())))) { return self } else { - return $send2(self, $find_super(self, 'numerator', $Number_numerator$49, false, true), 'numerator', $zuper, $iter) + return $send2(self, $find_super(self, 'numerator', $$numerator, false, true), 'numerator', [], $yield) } - }, $Number_numerator$49.$$arity = 0); + }, 0); - Opal.def(self, '$odd?', $Number_odd$ques$50 = function() { + $def(self, '$odd?', function $Number_odd$ques$32() { var self = this; return self % 2 !== 0; - }, $Number_odd$ques$50.$$arity = 0); + }, 0); - Opal.def(self, '$ord', $Number_ord$51 = function $$ord() { + $def(self, '$ord', function $$ord() { var self = this; return self - }, $Number_ord$51.$$arity = 0); + }, 0); - Opal.def(self, '$pow', $Number_pow$52 = function $$pow(b, m) { + $def(self, '$pow', function $$pow(b, m) { var self = this; ; if (self == 0) { - self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0") + $Kernel.$raise($$$('ZeroDivisionError'), "divided by 0") } if (m === undefined) { return self['$**'](b); } else { - if (!($$($nesting, 'Integer')['$==='](b))) { - self.$raise($$($nesting, 'TypeError'), "Integer#pow() 2nd argument not allowed unless a 1st argument is integer") + if (!($$$('Integer')['$==='](b))) { + $Kernel.$raise($$$('TypeError'), "Integer#pow() 2nd argument not allowed unless a 1st argument is integer") } if (b < 0) { - self.$raise($$($nesting, 'TypeError'), "Integer#pow() 1st argument cannot be negative when 2nd argument specified") + $Kernel.$raise($$$('TypeError'), "Integer#pow() 1st argument cannot be negative when 2nd argument specified") } - if (!($$($nesting, 'Integer')['$==='](m))) { - self.$raise($$($nesting, 'TypeError'), "Integer#pow() 2nd argument not allowed unless all arguments are integers") + if (!($$$('Integer')['$==='](m))) { + $Kernel.$raise($$$('TypeError'), "Integer#pow() 2nd argument not allowed unless all arguments are integers") } if (m === 0) { - self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0") + $Kernel.$raise($$$('ZeroDivisionError'), "divided by 0") } return self['$**'](b)['$%'](m) } ; - }, $Number_pow$52.$$arity = -2); + }, -2); - Opal.def(self, '$pred', $Number_pred$53 = function $$pred() { + $def(self, '$pred', function $$pred() { var self = this; return self - 1; - }, $Number_pred$53.$$arity = 0); + }, 0); - Opal.def(self, '$quo', $Number_quo$54 = function $$quo(other) { - var $iter = $Number_quo$54.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$quo', function $$quo(other) { + var $yield = $$quo.$$p || nil, self = this; - if ($iter) $Number_quo$54.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy($$($nesting, 'Integer')['$==='](self))) { - return $send2(self, $find_super(self, 'quo', $Number_quo$54, false, true), 'quo', $zuper, $iter) + delete $$quo.$$p; + if ($eqeqeq($$$('Integer'), self)) { + return $send2(self, $find_super(self, 'quo', $$quo, false, true), 'quo', [other], $yield) } else { return $rb_divide(self, other) } - }, $Number_quo$54.$$arity = 1); + }, 1); - Opal.def(self, '$rationalize', $Number_rationalize$55 = function $$rationalize(eps) { + $def(self, '$rationalize', function $$rationalize(eps) { var $a, $b, self = this, f = nil, n = nil; ; if (arguments.length > 1) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (arguments.length) + " for 0..1)"); } ; - if ($truthy($$($nesting, 'Integer')['$==='](self))) { - return $$($nesting, 'Rational').$new(self, 1) + if ($eqeqeq($$$('Integer'), self)) { + return $$$('Rational').$new(self, 1) } else if ($truthy(self['$infinite?']())) { - return self.$raise($$($nesting, 'FloatDomainError'), "Infinity") + return $Kernel.$raise($$$('FloatDomainError'), "Infinity") } else if ($truthy(self['$nan?']())) { - return self.$raise($$($nesting, 'FloatDomainError'), "NaN") + return $Kernel.$raise($$$('FloatDomainError'), "NaN") } else if ($truthy(eps == null)) { - $b = $$($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (f = ($a[0] == null ? nil : $a[0])), (n = ($a[1] == null ? nil : $a[1])), $b; - f = $$($nesting, 'Math').$ldexp(f, $$$($$($nesting, 'Float'), 'MANT_DIG')).$to_i(); - n = $rb_minus(n, $$$($$($nesting, 'Float'), 'MANT_DIG')); - return $$($nesting, 'Rational').$new($rb_times(2, f), (1)['$<<']($rb_minus(1, n))).$rationalize($$($nesting, 'Rational').$new(1, (1)['$<<']($rb_minus(1, n)))); + $b = $$$('Math').$frexp(self), $a = $to_ary($b), (f = ($a[0] == null ? nil : $a[0])), (n = ($a[1] == null ? nil : $a[1])), $b; + f = $$$('Math').$ldexp(f, $$$($$$('Float'), 'MANT_DIG')).$to_i(); + n = $rb_minus(n, $$$($$$('Float'), 'MANT_DIG')); + return $$$('Rational').$new($rb_times(2, f), (1)['$<<']($rb_minus(1, n))).$rationalize($$$('Rational').$new(1, (1)['$<<']($rb_minus(1, n)))); } else { return self.$to_r().$rationalize(eps) }; - }, $Number_rationalize$55.$$arity = -1); + }, -1); - Opal.def(self, '$remainder', $Number_remainder$56 = function $$remainder(y) { + $def(self, '$remainder', function $$remainder(y) { var self = this; return $rb_minus(self, $rb_times(y, $rb_divide(self, y).$truncate())) - }, $Number_remainder$56.$$arity = 1); + }, 1); - Opal.def(self, '$round', $Number_round$57 = function $$round(ndigits) { - var $a, $b, self = this, $ret_or_13 = nil, $ret_or_14 = nil, $ret_or_15 = nil, _ = nil, exp = nil; + $def(self, '$round', function $$round(ndigits) { + var $a, $b, self = this, _ = nil, exp = nil; ; - if ($truthy($$($nesting, 'Integer')['$==='](self))) { + if ($eqeqeq($$$('Integer'), self)) { if ($truthy(ndigits == null)) { - return self}; - if ($truthy((function() {if ($truthy(($ret_or_13 = $$($nesting, 'Float')['$==='](ndigits)))) { - return ndigits['$infinite?']() - } else { - return $ret_or_13 - }; return nil; })())) { - self.$raise($$($nesting, 'RangeError'), "Infinity")}; - ndigits = $$($nesting, 'Opal')['$coerce_to!'](ndigits, $$($nesting, 'Integer'), "to_int"); - if ($truthy($rb_lt(ndigits, $$$($$($nesting, 'Integer'), 'MIN')))) { - self.$raise($$($nesting, 'RangeError'), "out of bounds")}; + return self + }; + if (($eqeqeq($$$('Float'), ndigits) && ($truthy(ndigits['$infinite?']())))) { + $Kernel.$raise($$$('RangeError'), "Infinity") + }; + ndigits = $Opal['$coerce_to!'](ndigits, $$$('Integer'), "to_int"); + if ($truthy($rb_lt(ndigits, $$$($$$('Integer'), 'MIN')))) { + $Kernel.$raise($$$('RangeError'), "out of bounds") + }; if ($truthy(ndigits >= 0)) { - return self}; + return self + }; ndigits = ndigits['$-@'](); if (0.415241 * ndigits - 0.125 > self.$size()) { @@ -18140,56 +17989,42 @@ Opal.modules["corelib/number"] = function(Opal) { ; } else { - if ($truthy((function() {if ($truthy(($ret_or_14 = self['$nan?']()))) { - return ndigits == null; - } else { - return $ret_or_14 - }; return nil; })())) { - self.$raise($$($nesting, 'FloatDomainError'), "NaN")}; - ndigits = $$($nesting, 'Opal')['$coerce_to!'](ndigits || 0, $$($nesting, 'Integer'), "to_int"); + if (($truthy(self['$nan?']()) && ($truthy(ndigits == null)))) { + $Kernel.$raise($$$('FloatDomainError'), "NaN") + }; + ndigits = $Opal['$coerce_to!'](ndigits || 0, $$$('Integer'), "to_int"); if ($truthy($rb_le(ndigits, 0))) { if ($truthy(self['$nan?']())) { - self.$raise($$($nesting, 'RangeError'), "NaN") + $Kernel.$raise($$$('RangeError'), "NaN") } else if ($truthy(self['$infinite?']())) { - self.$raise($$($nesting, 'FloatDomainError'), "Infinity")} - } else if (ndigits['$=='](0)) { + $Kernel.$raise($$$('FloatDomainError'), "Infinity") + } + } else if ($eqeq(ndigits, 0)) { return Math.round(self) - } else if ($truthy((function() {if ($truthy(($ret_or_15 = self['$nan?']()))) { - return $ret_or_15 - } else { - return self['$infinite?']() - }; return nil; })())) { - return self}; - $b = $$($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (exp = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy($rb_ge(ndigits, $rb_minus($rb_plus($$$($$($nesting, 'Float'), 'DIG'), 2), (function() {if ($truthy($rb_gt(exp, 0))) { - return $rb_divide(exp, 4) - } else { - return $rb_minus($rb_divide(exp, 3), 1) - }; return nil; })())))) { - return self}; - if ($truthy($rb_lt(ndigits, (function() {if ($truthy($rb_gt(exp, 0))) { - return $rb_plus($rb_divide(exp, 3), 1) - } else { - return $rb_divide(exp, 4) - }; return nil; })()['$-@']()))) { - return 0}; + } else if (($truthy(self['$nan?']()) || ($truthy(self['$infinite?']())))) { + return self + }; + $b = $$$('Math').$frexp(self), $a = $to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (exp = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy($rb_ge(ndigits, $rb_minus($rb_plus($$$($$$('Float'), 'DIG'), 2), ($truthy($rb_gt(exp, 0)) ? ($rb_divide(exp, 4)) : ($rb_minus($rb_divide(exp, 3), 1))))))) { + return self + }; + if ($truthy($rb_lt(ndigits, ($truthy($rb_gt(exp, 0)) ? ($rb_plus($rb_divide(exp, 3), 1)) : ($rb_divide(exp, 4)))['$-@']()))) { + return 0 + }; return Math.round(self * Math.pow(10, ndigits)) / Math.pow(10, ndigits);; }; - }, $Number_round$57.$$arity = -1); - $alias(self, "succ", "next"); + }, -1); - Opal.def(self, '$times', $Number_times$58 = function $$times() { - var $iter = $Number_times$58.$$p, block = $iter || nil, $$59, self = this; + $def(self, '$times', function $$times() { + var block = $$times.$$p || nil, self = this; - if ($iter) $Number_times$58.$$p = null; - + delete $$times.$$p; - if ($iter) $Number_times$58.$$p = null;; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["times"], ($$59 = function(){var self = $$59.$$s == null ? this : $$59.$$s; + ; + if (!$truthy(block)) { + return $send(self, 'enum_for', ["times"], function $$33(){var self = $$33.$$s == null ? this : $$33.$$s; - return self}, $$59.$$s = self, $$59.$$arity = 0, $$59)) + return self}, {$$arity: 0, $$s: self}) }; for (var i = 0; i < self; i++) { @@ -18197,61 +18032,56 @@ Opal.modules["corelib/number"] = function(Opal) { } ; return self; - }, $Number_times$58.$$arity = 0); + }, 0); - Opal.def(self, '$to_f', $Number_to_f$60 = function $$to_f() { + $def(self, '$to_f', function $$to_f() { var self = this; return self - }, $Number_to_f$60.$$arity = 0); + }, 0); - Opal.def(self, '$to_i', $Number_to_i$61 = function $$to_i() { + $def(self, '$to_i', function $$to_i() { var self = this; return self < 0 ? Math.ceil(self) : Math.floor(self); - }, $Number_to_i$61.$$arity = 0); - $alias(self, "to_int", "to_i"); + }, 0); - Opal.def(self, '$to_r', $Number_to_r$62 = function $$to_r() { + $def(self, '$to_r', function $$to_r() { var $a, $b, self = this, f = nil, e = nil; - if ($truthy($$($nesting, 'Integer')['$==='](self))) { - return $$($nesting, 'Rational').$new(self, 1) + if ($eqeqeq($$$('Integer'), self)) { + return $$$('Rational').$new(self, 1) } else { - $b = $$($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (f = ($a[0] == null ? nil : $a[0])), (e = ($a[1] == null ? nil : $a[1])), $b; - f = $$($nesting, 'Math').$ldexp(f, $$$($$($nesting, 'Float'), 'MANT_DIG')).$to_i(); - e = $rb_minus(e, $$$($$($nesting, 'Float'), 'MANT_DIG')); - return $rb_times(f, $$$($$($nesting, 'Float'), 'RADIX')['$**'](e)).$to_r(); + $b = $$$('Math').$frexp(self), $a = $to_ary($b), (f = ($a[0] == null ? nil : $a[0])), (e = ($a[1] == null ? nil : $a[1])), $b; + f = $$$('Math').$ldexp(f, $$$($$$('Float'), 'MANT_DIG')).$to_i(); + e = $rb_minus(e, $$$($$$('Float'), 'MANT_DIG')); + return $rb_times(f, $$$($$$('Float'), 'RADIX')['$**'](e)).$to_r(); } - }, $Number_to_r$62.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Number_to_s$63 = function $$to_s(base) { - var self = this, $ret_or_16 = nil; + $def(self, '$to_s', function $$to_s(base) { + var self = this; - if (base == null) { - base = 10; + if (base == null) base = 10;; + base = $Opal['$coerce_to!'](base, $$$('Integer'), "to_int"); + if (($truthy($rb_lt(base, 2)) || ($truthy($rb_gt(base, 36))))) { + $Kernel.$raise($$$('ArgumentError'), "invalid radix " + (base)) + }; + if (($eqeq(self, 0) && ($truthy(1/self === -Infinity)))) { + return "-0.0" }; - base = $$($nesting, 'Opal')['$coerce_to!'](base, $$($nesting, 'Integer'), "to_int"); - if ($truthy((function() {if ($truthy(($ret_or_16 = $rb_lt(base, 2)))) { - return $ret_or_16 - } else { - return $rb_gt(base, 36) - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid radix " + (base))}; return self.toString(base);; - }, $Number_to_s$63.$$arity = -1); + }, -1); - Opal.def(self, '$truncate', $Number_truncate$64 = function $$truncate(ndigits) { + $def(self, '$truncate', function $$truncate(ndigits) { var self = this; - if (ndigits == null) { - ndigits = 0; - }; + if (ndigits == null) ndigits = 0;; var f = self.$to_f(); @@ -18268,113 +18098,106 @@ Opal.modules["corelib/number"] = function(Opal) { return result; ; - }, $Number_truncate$64.$$arity = -1); - $alias(self, "inspect", "to_s"); + }, -1); - Opal.def(self, '$digits', $Number_digits$65 = function $$digits(base) { + $def(self, '$digits', function $$digits(base) { var self = this; - if (base == null) { - base = 10; - }; + if (base == null) base = 10;; if ($rb_lt(self, 0)) { - self.$raise($$$($$($nesting, 'Math'), 'DomainError'), "out of domain")}; - base = $$($nesting, 'Opal')['$coerce_to!'](base, $$($nesting, 'Integer'), "to_int"); + $Kernel.$raise($$$($$$('Math'), 'DomainError'), "out of domain") + }; + base = $Opal['$coerce_to!'](base, $$$('Integer'), "to_int"); if ($truthy($rb_lt(base, 2))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid radix " + (base))}; + $Kernel.$raise($$$('ArgumentError'), "invalid radix " + (base)) + }; + if (self != parseInt(self)) $Kernel.$raise($$$('NoMethodError'), "undefined method `digits' for " + (self.$inspect())) + var value = self, result = []; - while (value !== 0) { + if (self == 0) { + return [0]; + } + + while (value != 0) { result.push(value % base); value = parseInt(value / base, 10); } return result; ; - }, $Number_digits$65.$$arity = -1); + }, -1); - Opal.def(self, '$divmod', $Number_divmod$66 = function $$divmod(other) { - var $iter = $Number_divmod$66.$$p, $yield = $iter || nil, self = this, $ret_or_17 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$divmod', function $$divmod(other) { + var $yield = $$divmod.$$p || nil, self = this; - if ($iter) $Number_divmod$66.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy((function() {if ($truthy(($ret_or_17 = self['$nan?']()))) { - return $ret_or_17 - } else { - return other['$nan?']() - }; return nil; })())) { - return self.$raise($$($nesting, 'FloatDomainError'), "NaN") + delete $$divmod.$$p; + if (($truthy(self['$nan?']()) || ($truthy(other['$nan?']())))) { + return $Kernel.$raise($$$('FloatDomainError'), "NaN") } else if ($truthy(self['$infinite?']())) { - return self.$raise($$($nesting, 'FloatDomainError'), "Infinity") + return $Kernel.$raise($$$('FloatDomainError'), "Infinity") } else { - return $send2(self, $find_super(self, 'divmod', $Number_divmod$66, false, true), 'divmod', $zuper, $iter) + return $send2(self, $find_super(self, 'divmod', $$divmod, false, true), 'divmod', [other], $yield) } - }, $Number_divmod$66.$$arity = 1); + }, 1); - Opal.def(self, '$upto', $Number_upto$67 = function $$upto(stop) { - var $iter = $Number_upto$67.$$p, block = $iter || nil, $$68, self = this; + $def(self, '$upto', function $$upto(stop) { + var block = $$upto.$$p || nil, self = this; - if ($iter) $Number_upto$67.$$p = null; + delete $$upto.$$p; - - if ($iter) $Number_upto$67.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["upto", stop], ($$68 = function(){var self = $$68.$$s == null ? this : $$68.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["upto", stop], function $$34(){var self = $$34.$$s == null ? this : $$34.$$s; - if ($truthy($$($nesting, 'Numeric')['$==='](stop))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") + if (!$eqeqeq($$$('Numeric'), stop)) { + $Kernel.$raise($$$('ArgumentError'), "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") }; if ($truthy($rb_lt(stop, self))) { return 0 } else { return $rb_plus($rb_minus(stop, self), 1) - };}, $$68.$$s = self, $$68.$$arity = 0, $$68)) + };}, {$$arity: 0, $$s: self}) }; if (!stop.$$is_number) { - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") + $Kernel.$raise($$$('ArgumentError'), "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") } for (var i = self; i <= stop; i++) { block(i); } ; return self; - }, $Number_upto$67.$$arity = 1); + }, 1); - Opal.def(self, '$zero?', $Number_zero$ques$69 = function() { + $def(self, '$zero?', function $Number_zero$ques$35() { var self = this; return self == 0; - }, $Number_zero$ques$69.$$arity = 0); + }, 0); - Opal.def(self, '$size', $Number_size$70 = function $$size() { - var self = this; - + $def(self, '$size', function $$size() { + return 4 - }, $Number_size$70.$$arity = 0); + }, 0); - Opal.def(self, '$nan?', $Number_nan$ques$71 = function() { + $def(self, '$nan?', function $Number_nan$ques$36() { var self = this; return isNaN(self); - }, $Number_nan$ques$71.$$arity = 0); + }, 0); - Opal.def(self, '$finite?', $Number_finite$ques$72 = function() { + $def(self, '$finite?', function $Number_finite$ques$37() { var self = this; return self != Infinity && self != -Infinity && !isNaN(self); - }, $Number_finite$ques$72.$$arity = 0); + }, 0); - Opal.def(self, '$infinite?', $Number_infinite$ques$73 = function() { + $def(self, '$infinite?', function $Number_infinite$ques$38() { var self = this; @@ -18388,20 +18211,103 @@ Opal.modules["corelib/number"] = function(Opal) { return nil; } - }, $Number_infinite$ques$73.$$arity = 0); + }, 0); - Opal.def(self, '$positive?', $Number_positive$ques$74 = function() { + $def(self, '$positive?', function $Number_positive$ques$39() { var self = this; return self != 0 && (self == Infinity || 1 / self > 0); - }, $Number_positive$ques$74.$$arity = 0); - return (Opal.def(self, '$negative?', $Number_negative$ques$75 = function() { + }, 0); + + $def(self, '$negative?', function $Number_negative$ques$40() { var self = this; return self == -Infinity || 1 / self < 0; - }, $Number_negative$ques$75.$$arity = 0), nil) && 'negative?'; - })($nesting[0], $$($nesting, 'Numeric'), $nesting); - Opal.const_set($nesting[0], 'Fixnum', $$($nesting, 'Number')); + }, 0); + + function numberToUint8Array(num) { + var uint8array = new Uint8Array(8); + new DataView(uint8array.buffer).setFloat64(0, num, true); + return uint8array; + } + + function uint8ArrayToNumber(arr) { + return new DataView(arr.buffer).getFloat64(0, true); + } + + function incrementNumberBit(num) { + var arr = numberToUint8Array(num); + for (var i = 0; i < arr.length; i++) { + if (arr[i] === 0xff) { + arr[i] = 0; + } else { + arr[i]++; + break; + } + } + return uint8ArrayToNumber(arr); + } + + function decrementNumberBit(num) { + var arr = numberToUint8Array(num); + for (var i = 0; i < arr.length; i++) { + if (arr[i] === 0) { + arr[i] = 0xff; + } else { + arr[i]--; + break; + } + } + return uint8ArrayToNumber(arr); + } + ; + + $def(self, '$next_float', function $$next_float() { + var self = this; + + + if ($eqeq(self, $$$($$$('Float'), 'INFINITY'))) { + return $$$($$$('Float'), 'INFINITY') + }; + if ($truthy(self['$nan?']())) { + return $$$($$$('Float'), 'NAN') + }; + if ($rb_ge(self, 0)) { + return incrementNumberBit(Math.abs(self)); + } else { + return decrementNumberBit(self); + }; + }, 0); + + $def(self, '$prev_float', function $$prev_float() { + var self = this; + + + if ($eqeq(self, $$$($$$('Float'), 'INFINITY')['$-@']())) { + return $$$($$$('Float'), 'INFINITY')['$-@']() + }; + if ($truthy(self['$nan?']())) { + return $$$($$$('Float'), 'NAN') + }; + if ($rb_gt(self, 0)) { + return decrementNumberBit(self); + } else { + return -incrementNumberBit(Math.abs(self)); + }; + }, 0); + $alias(self, "arg", "angle"); + $alias(self, "eql?", "=="); + $alias(self, "fdiv", "/"); + $alias(self, "inspect", "to_s"); + $alias(self, "kind_of?", "is_a?"); + $alias(self, "magnitude", "abs"); + $alias(self, "modulo", "%"); + $alias(self, "object_id", "__id__"); + $alias(self, "phase", "angle"); + $alias(self, "succ", "next"); + return $alias(self, "to_int", "to_i"); + })('::', $$$('Numeric'), $nesting); + $const_set('::', 'Fixnum', $$$('Number')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Integer'); @@ -18411,34 +18317,39 @@ Opal.modules["corelib/number"] = function(Opal) { self.$$is_number_class = true; self.$$is_integer_class = true; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $allocate$76, $sqrt$77; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$allocate', $allocate$76 = function $$allocate() { + $def(self, '$allocate', function $$allocate() { var self = this; - return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, $allocate$76.$$arity = 0); + return $Kernel.$raise($$$('TypeError'), "allocator undefined for " + (self.$name())) + }, 0); Opal.udef(self, '$' + "new");; - return (Opal.def(self, '$sqrt', $sqrt$77 = function $$sqrt(n) { - var self = this; - + + $def(self, '$sqrt', function $$sqrt(n) { + - n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); + n = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); if (n < 0) { - self.$raise($$$($$($nesting, 'Math'), 'DomainError'), "Numerical argument is out of domain - \"isqrt\"") + $Kernel.$raise($$$($$$('Math'), 'DomainError'), "Numerical argument is out of domain - \"isqrt\"") } return parseInt(Math.sqrt(n), 10); ; - }, $sqrt$77.$$arity = 1), nil) && 'sqrt'; + }, 1); + return $def(self, '$try_convert', function $$try_convert(object) { + var self = this; + + return $$('Opal')['$coerce_to?'](object, self, "to_int") + }, 1); })(Opal.get_singleton_class(self), $nesting); - Opal.const_set($nesting[0], 'MAX', Math.pow(2, 30) - 1); - return Opal.const_set($nesting[0], 'MIN', -Math.pow(2, 30)); - })($nesting[0], $$($nesting, 'Numeric'), $nesting); + $const_set(self, 'MAX', Math.pow(2, 30) - 1); + return $const_set(self, 'MIN', -Math.pow(2, 30)); + })('::', $$$('Numeric'), $nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Float'); @@ -18447,108 +18358,71 @@ Opal.modules["corelib/number"] = function(Opal) { self.$$is_number_class = true; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $allocate$78, $eq_eq_eq$79; - - Opal.def(self, '$allocate', $allocate$78 = function $$allocate() { + + $def(self, '$allocate', function $$allocate() { var self = this; - return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, $allocate$78.$$arity = 0); + return $Kernel.$raise($$$('TypeError'), "allocator undefined for " + (self.$name())) + }, 0); Opal.udef(self, '$' + "new");; - return (Opal.def(self, '$===', $eq_eq_eq$79 = function(other) { - var self = this; - + return $def(self, '$===', function $eq_eq_eq$41(other) { + return !!other.$$is_number; - }, $eq_eq_eq$79.$$arity = 1), nil) && '==='; + }, 1); })(Opal.get_singleton_class(self), $nesting); - Opal.const_set($nesting[0], 'INFINITY', Infinity); - Opal.const_set($nesting[0], 'MAX', Number.MAX_VALUE); - Opal.const_set($nesting[0], 'MIN', Number.MIN_VALUE); - Opal.const_set($nesting[0], 'NAN', NaN); - Opal.const_set($nesting[0], 'DIG', 15); - Opal.const_set($nesting[0], 'MANT_DIG', 53); - Opal.const_set($nesting[0], 'RADIX', 2); - return Opal.const_set($nesting[0], 'EPSILON', Number.EPSILON || 2.2204460492503130808472633361816E-16); - })($nesting[0], $$($nesting, 'Numeric'), $nesting); + $const_set(self, 'INFINITY', Infinity); + $const_set(self, 'MAX', Number.MAX_VALUE); + $const_set(self, 'MIN', Number.MIN_VALUE); + $const_set(self, 'NAN', NaN); + $const_set(self, 'DIG', 15); + $const_set(self, 'MANT_DIG', 53); + $const_set(self, 'RADIX', 2); + return $const_set(self, 'EPSILON', Number.EPSILON || 2.2204460492503130808472633361816E-16); + })('::', $$$('Numeric'), $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/range"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $alias = Opal.alias; +Opal.modules["corelib/range"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $Kernel = Opal.Kernel, $def = Opal.def, $not = Opal.not, $send2 = Opal.send2, $find_super = Opal.find_super, $rb_lt = Opal.rb_lt, $rb_le = Opal.rb_le, $send = Opal.send, $eqeq = Opal.eqeq, $eqeqeq = Opal.eqeqeq, $rb_gt = Opal.rb_gt, $rb_minus = Opal.rb_minus, $Opal = Opal.Opal, $rb_divide = Opal.rb_divide, $rb_plus = Opal.rb_plus, $rb_times = Opal.rb_times, $rb_ge = Opal.rb_ge, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$attr_reader', '$raise', '$<=>', '$nil?', '$include?', '$!', '$<', '$<=', '$enum_for', '$size', '$upto', '$to_proc', '$respond_to?', '$class', '$succ', '$==', '$===', '$exclude_end?', '$eql?', '$begin', '$end', '$last', '$to_a', '$>', '$-@', '$-', '$to_i', '$coerce_to!', '$ceil', '$/', '$loop', '$+', '$*', '$>=', '$each_with_index', '$%', '$bsearch', '$inspect', '$[]', '$hash']); + Opal.add_stubs('require,include,attr_reader,raise,nil?,<=>,include?,!,<,<=,enum_for,size,upto,to_proc,respond_to?,class,succ,==,===,exclude_end?,eql?,begin,end,last,to_a,>,-@,-,to_i,coerce_to!,ceil,/,is_a?,new,loop,+,*,>=,each_with_index,%,step,bsearch,inspect,[],hash'); self.$require("corelib/enumerable"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Range'); - var $nesting = [self].concat($parent_nesting), $Range_initialize$1, $Range_$eq_eq_eq$2, $Range_count$3, $Range_to_a$4, $Range_cover$ques$5, $Range_each$6, $Range_eql$ques$8, $Range_exclude_end$ques$9, $Range_first$10, $Range_last$11, $Range_max$12, $Range_min$13, $Range_size$14, $Range_step$15, $Range_bsearch$19, $Range_to_s$20, $Range_inspect$21, $Range_marshal_load$22, $Range_hash$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.begin = self.$$prototype.end = self.$$prototype.excl = nil; + $proto.begin = $proto.end = $proto.excl = nil; - self.$include($$($nesting, 'Enumerable')); + self.$include($$$('Enumerable')); self.$$prototype.$$is_range = true; self.$attr_reader("begin", "end"); - Opal.def(self, '$initialize', $Range_initialize$1 = function $$initialize(first, last, exclude) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + $def(self, '$initialize', function $$initialize(first, last, exclude) { + var self = this; - if (exclude == null) { - exclude = false; - }; + if (exclude == null) exclude = false;; if ($truthy(self.begin)) { - self.$raise($$($nesting, 'NameError'), "'initialize' called twice")}; - if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = first['$<=>'](last)))) { - return $ret_or_2 - } else { - return first['$nil?']() - }; return nil; })()))) { - return $ret_or_1 - } else { - return last['$nil?']() - }; return nil; })())) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "bad value for range") + $Kernel.$raise($$$('NameError'), "'initialize' called twice") + }; + if (!(($truthy(first['$<=>'](last)) || ($truthy(first['$nil?']()))) || ($truthy(last['$nil?']())))) { + $Kernel.$raise($$$('ArgumentError'), "bad value for range") }; self.begin = first; self.end = last; return (self.excl = exclude); - }, $Range_initialize$1.$$arity = -3); + }, -3); - Opal.def(self, '$===', $Range_$eq_eq_eq$2 = function(value) { + $def(self, '$===', function $Range_$eq_eq_eq$1(value) { var self = this; return self['$include?'](value) - }, $Range_$eq_eq_eq$2.$$arity = 1); + }, 1); function is_infinite(self) { if (self.begin === nil || self.end === nil || @@ -18558,119 +18432,62 @@ Opal.modules["corelib/range"] = function(Opal) { } ; - Opal.def(self, '$count', $Range_count$3 = function $$count() { - var $iter = $Range_count$3.$$p, block = $iter || nil, self = this, $ret_or_3 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$count', function $$count() { + var block = $$count.$$p || nil, self = this; - if ($iter) $Range_count$3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$count.$$p; - - if ($iter) $Range_count$3.$$p = null;; - if ($truthy((function() {if ($truthy(($ret_or_3 = (block !== nil)['$!']()))) { - return is_infinite(self); - } else { - return $ret_or_3 - }; return nil; })())) { - return $$$($$($nesting, 'Float'), 'INFINITY')}; - return $send2(self, $find_super(self, 'count', $Range_count$3, false, true), 'count', $zuper, $iter); - }, $Range_count$3.$$arity = 0); + ; + if (($not((block !== nil)) && ($truthy(is_infinite(self))))) { + return $$$($$$('Float'), 'INFINITY') + }; + return $send2(self, $find_super(self, 'count', $$count, false, true), 'count', [], block); + }, 0); - Opal.def(self, '$to_a', $Range_to_a$4 = function $$to_a() { - var $iter = $Range_to_a$4.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$to_a', function $$to_a() { + var $yield = $$to_a.$$p || nil, self = this; - if ($iter) $Range_to_a$4.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$to_a.$$p; if ($truthy(is_infinite(self))) { - self.$raise($$($nesting, 'TypeError'), "cannot convert endless range to an array")}; - return $send2(self, $find_super(self, 'to_a', $Range_to_a$4, false, true), 'to_a', $zuper, $iter); - }, $Range_to_a$4.$$arity = 0); + $Kernel.$raise($$$('TypeError'), "cannot convert endless range to an array") + }; + return $send2(self, $find_super(self, 'to_a', $$to_a, false, true), 'to_a', [], $yield); + }, 0); - Opal.def(self, '$cover?', $Range_cover$ques$5 = function(value) { - var self = this, beg_cmp = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, end_cmp = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + $def(self, '$cover?', function $Range_cover$ques$2(value) { + var self = this, beg_cmp = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, end_cmp = nil; - beg_cmp = (function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.begin['$nil?']()))) { - return -1 - } else { - return $ret_or_6 - }; return nil; })()))) { - return $ret_or_5 - } else { - - return self.begin['$<=>'](value); - }; return nil; })()))) { - return $ret_or_4 - } else { - return false - }; return nil; })(); - end_cmp = (function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = self.end['$nil?']()))) { - return -1 - } else { - return $ret_or_9 - }; return nil; })()))) { - return $ret_or_8 - } else { - - return value['$<=>'](self.end); - }; return nil; })()))) { - return $ret_or_7 - } else { - return false - }; return nil; })(); - if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(self.excl)) { - if ($truthy(($ret_or_12 = end_cmp))) { - return $rb_lt(end_cmp, 0) - } else { - return $ret_or_12 - } - } else if ($truthy(($ret_or_13 = end_cmp))) { - return $rb_le(end_cmp, 0) - } else { - return $ret_or_13 - }; return nil; })()))) { - return beg_cmp - } else { - return $ret_or_11 - }; return nil; })()))) { + beg_cmp = ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = self.begin['$nil?']())) ? (-1) : ($ret_or_3)))) ? ($ret_or_2) : (self.begin['$<=>'](value))))) && ($ret_or_1)); + end_cmp = ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = self.end['$nil?']())) ? (-1) : ($ret_or_3)))) ? ($ret_or_2) : (value['$<=>'](self.end))))) && ($ret_or_1)); + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(self.excl) ? (($truthy(($ret_or_3 = end_cmp)) ? ($rb_lt(end_cmp, 0)) : ($ret_or_3))) : ($truthy(($ret_or_3 = end_cmp)) ? ($rb_le(end_cmp, 0)) : ($ret_or_3))))) ? (beg_cmp) : ($ret_or_2))))) { return $rb_le(beg_cmp, 0) } else { - return $ret_or_10 + return $ret_or_1 }; - }, $Range_cover$ques$5.$$arity = 1); + }, 1); - Opal.def(self, '$each', $Range_each$6 = function $$each() { - var $iter = $Range_each$6.$$p, block = $iter || nil, $$7, $a, self = this, current = nil, last = nil, $ret_or_14 = nil, $ret_or_15 = nil; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, $a, self = this, current = nil, last = nil, $ret_or_1 = nil; - if ($iter) $Range_each$6.$$p = null; - + delete $$each.$$p; - if ($iter) $Range_each$6.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each"], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each"], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; - return self.$size()}, $$7.$$s = self, $$7.$$arity = 0, $$7)) + return self.$size()}, {$$arity: 0, $$s: self}) }; var i, limit; if (self.begin.$$is_number && self.end.$$is_number) { if (self.begin % 1 !== 0 || self.end % 1 !== 0) { - self.$raise($$($nesting, 'TypeError'), "can't iterate from Float") + $Kernel.$raise($$$('TypeError'), "can't iterate from Float") } - for (i = self.begin, limit = self.end + (function() {if ($truthy(self.excl)) { - return 0 - } else { - return 1 - }; return nil; })(); i < limit; i++) { + for (i = self.begin, limit = self.end + ($truthy(self.excl) ? (0) : (1)); i < limit; i++) { block(i); } @@ -18684,203 +18501,143 @@ Opal.modules["corelib/range"] = function(Opal) { ; current = self.begin; last = self.end; - if ($truthy(current['$respond_to?']("succ"))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "can't iterate from " + (current.$class())) + if (!$truthy(current['$respond_to?']("succ"))) { + $Kernel.$raise($$$('TypeError'), "can't iterate from " + (current.$class())) }; - while ($truthy((function() {if ($truthy(($ret_or_14 = self.end['$nil?']()))) { - return $ret_or_14 - } else { - return $rb_lt(current['$<=>'](last), 0) - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = self.end['$nil?']())) ? ($ret_or_1) : ($rb_lt(current['$<=>'](last), 0))))) { Opal.yield1(block, current); current = current.$succ(); }; - if ($truthy((function() {if ($truthy(($ret_or_15 = self.excl['$!']()))) { - return current['$=='](last) - } else { - return $ret_or_15 - }; return nil; })())) { - Opal.yield1(block, current)}; + if (($not(self.excl) && ($eqeq(current, last)))) { + Opal.yield1(block, current) + }; return self; - }, $Range_each$6.$$arity = 0); + }, 0); - Opal.def(self, '$eql?', $Range_eql$ques$8 = function(other) { - var self = this, $ret_or_16 = nil, $ret_or_17 = nil; + $def(self, '$eql?', function $Range_eql$ques$4(other) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy($$($nesting, 'Range')['$==='](other))) { - } else { + if (!$eqeqeq($$$('Range'), other)) { return false }; - if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = self.excl['$==='](other['$exclude_end?']())))) { - return self.begin['$eql?'](other.$begin()) - } else { - return $ret_or_17 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = self.excl['$==='](other['$exclude_end?']()))) ? (self.begin['$eql?'](other.$begin())) : ($ret_or_2))))) { return self.end['$eql?'](other.$end()) } else { - return $ret_or_16 + return $ret_or_1 }; - }, $Range_eql$ques$8.$$arity = 1); - $alias(self, "==", "eql?"); + }, 1); - Opal.def(self, '$exclude_end?', $Range_exclude_end$ques$9 = function() { + $def(self, '$exclude_end?', function $Range_exclude_end$ques$5() { var self = this; return self.excl - }, $Range_exclude_end$ques$9.$$arity = 0); + }, 0); - Opal.def(self, '$first', $Range_first$10 = function $$first(n) { - var $iter = $Range_first$10.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$first', function $$first(n) { + var $yield = $$first.$$p || nil, self = this; - if ($iter) $Range_first$10.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$first.$$p; ; if ($truthy(self.begin['$nil?']())) { - self.$raise($$($nesting, 'RangeError'), "cannot get the minimum of beginless range")}; + $Kernel.$raise($$$('RangeError'), "cannot get the minimum of beginless range") + }; if ($truthy(n == null)) { - return self.begin}; - return $send2(self, $find_super(self, 'first', $Range_first$10, false, true), 'first', $zuper, $iter); - }, $Range_first$10.$$arity = -1); - $alias(self, "include?", "cover?"); + return self.begin + }; + return $send2(self, $find_super(self, 'first', $$first, false, true), 'first', [n], $yield); + }, -1); - Opal.def(self, '$last', $Range_last$11 = function $$last(n) { + $def(self, '$last', function $$last(n) { var self = this; ; if ($truthy(self.end['$nil?']())) { - self.$raise($$($nesting, 'RangeError'), "cannot get the maximum of endless range")}; + $Kernel.$raise($$$('RangeError'), "cannot get the maximum of endless range") + }; if ($truthy(n == null)) { - return self.end}; + return self.end + }; return self.$to_a().$last(n); - }, $Range_last$11.$$arity = -1); + }, -1); - Opal.def(self, '$max', $Range_max$12 = function $$max() { - var $iter = $Range_max$12.$$p, $yield = $iter || nil, self = this, $ret_or_18 = nil, $ret_or_19 = nil, $ret_or_20 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$max', function $$max() { + var $yield = $$max.$$p || nil, self = this; - if ($iter) $Range_max$12.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$max.$$p; if ($truthy(self.end['$nil?']())) { - return self.$raise($$($nesting, 'RangeError'), "cannot get the maximum of endless range") + return $Kernel.$raise($$$('RangeError'), "cannot get the maximum of endless range") } else if (($yield !== nil)) { - return $send2(self, $find_super(self, 'max', $Range_max$12, false, true), 'max', $zuper, $iter) - } else if ($truthy((function() {if ($truthy(($ret_or_18 = self.begin['$nil?']()['$!']()))) { - - if ($truthy(($ret_or_19 = $rb_gt(self.begin, self.end)))) { - return $ret_or_19 - } else if ($truthy(($ret_or_20 = self.excl))) { - return self.begin['$=='](self.end) - } else { - return $ret_or_20 - }; - } else { - return $ret_or_18 - }; return nil; })())) { + return $send2(self, $find_super(self, 'max', $$max, false, true), 'max', [], $yield) + } else if (($not(self.begin['$nil?']()) && (($truthy($rb_gt(self.begin, self.end)) || (($truthy(self.excl) && ($eqeq(self.begin, self.end)))))))) { return nil } else { return self.excl ? self.end - 1 : self.end } - }, $Range_max$12.$$arity = 0); - $alias(self, "member?", "cover?"); + }, 0); - Opal.def(self, '$min', $Range_min$13 = function $$min() { - var $iter = $Range_min$13.$$p, $yield = $iter || nil, self = this, $ret_or_21 = nil, $ret_or_22 = nil, $ret_or_23 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$min', function $$min() { + var $yield = $$min.$$p || nil, self = this; - if ($iter) $Range_min$13.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$min.$$p; if ($truthy(self.begin['$nil?']())) { - return self.$raise($$($nesting, 'RangeError'), "cannot get the minimum of beginless range") + return $Kernel.$raise($$$('RangeError'), "cannot get the minimum of beginless range") } else if (($yield !== nil)) { - return $send2(self, $find_super(self, 'min', $Range_min$13, false, true), 'min', $zuper, $iter) - } else if ($truthy((function() {if ($truthy(($ret_or_21 = self.end['$nil?']()['$!']()))) { - - if ($truthy(($ret_or_22 = $rb_gt(self.begin, self.end)))) { - return $ret_or_22 - } else if ($truthy(($ret_or_23 = self.excl))) { - return self.begin['$=='](self.end) - } else { - return $ret_or_23 - }; - } else { - return $ret_or_21 - }; return nil; })())) { + return $send2(self, $find_super(self, 'min', $$min, false, true), 'min', [], $yield) + } else if (($not(self.end['$nil?']()) && (($truthy($rb_gt(self.begin, self.end)) || (($truthy(self.excl) && ($eqeq(self.begin, self.end)))))))) { return nil } else { return self.begin } - }, $Range_min$13.$$arity = 0); + }, 0); - Opal.def(self, '$size', $Range_size$14 = function $$size() { - var self = this, infinity = nil, $ret_or_24 = nil, $ret_or_25 = nil, $ret_or_26 = nil, $ret_or_27 = nil, range_begin = nil, range_end = nil; + $def(self, '$size', function $$size() { + var self = this, infinity = nil, range_begin = nil, range_end = nil; - infinity = $$$($$($nesting, 'Float'), 'INFINITY'); - if ($truthy((function() {if ($truthy(($ret_or_24 = (function() {if ($truthy(($ret_or_25 = self.begin['$=='](infinity)))) { - return self.end['$nil?']()['$!']() - } else { - return $ret_or_25 - }; return nil; })()))) { - return $ret_or_24 - } else { - - if ($truthy(($ret_or_26 = self.end['$=='](infinity['$-@']())))) { - return self.begin['$nil?']()['$!']() - } else { - return $ret_or_26 - }; - }; return nil; })())) { - return 0}; + infinity = $$$($$$('Float'), 'INFINITY'); + if ((($eqeq(self.begin, infinity) && ($not(self.end['$nil?']()))) || (($eqeq(self.end, infinity['$-@']()) && ($not(self.begin['$nil?']())))))) { + return 0 + }; if ($truthy(is_infinite(self))) { - return infinity}; - if ($truthy((function() {if ($truthy(($ret_or_27 = $$($nesting, 'Numeric')['$==='](self.begin)))) { - return $$($nesting, 'Numeric')['$==='](self.end) - } else { - return $ret_or_27 - }; return nil; })())) { - } else { + return infinity + }; + if (!($eqeqeq($$$('Numeric'), self.begin) && ($eqeqeq($$$('Numeric'), self.end)))) { return nil }; range_begin = self.begin; range_end = self.end; if ($truthy(self.excl)) { - range_end = $rb_minus(range_end, 1)}; + range_end = $rb_minus(range_end, 1) + }; if ($truthy($rb_lt(range_end, range_begin))) { - return 0}; + return 0 + }; return (Math.abs(range_end - range_begin) + 1).$to_i(); - }, $Range_size$14.$$arity = 0); + }, 0); - Opal.def(self, '$step', $Range_step$15 = function $$step(n) { - var $$16, $$17, $$18, $iter = $Range_step$15.$$p, $yield = $iter || nil, self = this, i = nil; + $def(self, '$step', function $$step(n) { + var $yield = $$step.$$p || nil, self = this, $ret_or_1 = nil, i = nil; - if ($iter) $Range_step$15.$$p = null; - + delete $$step.$$p; - if (n == null) { - n = 1; - }; + ; function coerceStepSize() { - if (!n.$$is_number) { - n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int") + if (n == null) { + n = 1; + } + else if (!n.$$is_number) { + n = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int") } if (n < 0) { - self.$raise($$($nesting, 'ArgumentError'), "step can't be negative") + $Kernel.$raise($$$('ArgumentError'), "step can't be negative") } else if (n === 0) { - self.$raise($$($nesting, 'ArgumentError'), "step can't be 0") + $Kernel.$raise($$$('ArgumentError'), "step can't be 0") } } @@ -18899,7 +18656,7 @@ Opal.modules["corelib/range"] = function(Opal) { // n is a float var begin = self.begin, end = self.end, abs = Math.abs, floor = Math.floor, - err = (abs(begin) + abs(end) + abs(end - begin)) / abs(n) * $$$($$($nesting, 'Float'), 'EPSILON'), + err = (abs(begin) + abs(end) + abs(end - begin)) / abs(n) * $$$($$$('Float'), 'EPSILON'), size; if (err > 0.5) { @@ -18919,20 +18676,22 @@ Opal.modules["corelib/range"] = function(Opal) { } } ; - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["step", n], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - - - coerceStepSize(); - return enumeratorSize(); - }, $$16.$$s = self, $$16.$$arity = 0, $$16)) + if (!($yield !== nil)) { + if (((($truthy(self.begin['$is_a?']($$('Numeric'))) || ($truthy(self.begin['$nil?']()))) && (($truthy(self.end['$is_a?']($$('Numeric'))) || ($truthy(self.end['$nil?']()))))) && ($not(($truthy(($ret_or_1 = self.begin['$nil?']())) ? (self.end['$nil?']()) : ($ret_or_1)))))) { + return $$$($$$('Enumerator'), 'ArithmeticSequence').$new(self, n, "step") + } else { + return $send(self, 'enum_for', ["step", n], function $$6(){ + + coerceStepSize(); + return enumeratorSize(); + }, 0) + } }; coerceStepSize(); if ($truthy(self.begin.$$is_number && self.end.$$is_number)) { i = 0; - (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s, current = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s, current = nil; if (self.begin == null) self.begin = nil; if (self.excl == null) self.excl = nil; if (self.end == null) self.end = nil; @@ -18942,148 +18701,128 @@ Opal.modules["corelib/range"] = function(Opal) { if ($truthy(self.excl)) { if ($truthy($rb_ge(current, self.end))) { - Opal.brk(nil, $brk)} + Opal.brk(nil, $brk) + } } else if ($truthy($rb_gt(current, self.end))) { - Opal.brk(nil, $brk)}; + Opal.brk(nil, $brk) + }; Opal.yield1($yield, current); - return (i = $rb_plus(i, 1));}, $$17.$$s = self, $$17.$$brk = $brk, $$17.$$arity = 0, $$17)) + return (i = $rb_plus(i, 1));}, {$$arity: 0, $$s: self, $$brk: $brk}) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); } else { if (self.begin.$$is_string && self.end.$$is_string && n % 1 !== 0) { - self.$raise($$($nesting, 'TypeError'), "no implicit conversion to float from string") + $Kernel.$raise($$$('TypeError'), "no implicit conversion to float from string") } ; - $send(self, 'each_with_index', [], ($$18 = function(value, idx){var self = $$18.$$s == null ? this : $$18.$$s; - + $send(self, 'each_with_index', [], function $$8(value, idx){ - if (value == null) { - value = nil; - }; + if (value == null) value = nil;; - if (idx == null) { - idx = nil; - }; - if (idx['$%'](n)['$=='](0)) { + if (idx == null) idx = nil;; + if ($eqeq(idx['$%'](n), 0)) { return Opal.yield1($yield, value); } else { return nil - };}, $$18.$$s = self, $$18.$$arity = 2, $$18)); + };}, 2); }; return self; - }, $Range_step$15.$$arity = -1); + }, -1); + + $def(self, '$%', function $Range_$percent$9(n) { + var self = this; + + if (($truthy(self.begin['$is_a?']($$('Numeric'))) && ($truthy(self.end['$is_a?']($$('Numeric')))))) { + return $$$($$$('Enumerator'), 'ArithmeticSequence').$new(self, n, "%") + } else { + return self.$step(n) + } + }, 1); - Opal.def(self, '$bsearch', $Range_bsearch$19 = function $$bsearch() { - var $iter = $Range_bsearch$19.$$p, block = $iter || nil, self = this; + $def(self, '$bsearch', function $$bsearch() { + var block = $$bsearch.$$p || nil, self = this; - if ($iter) $Range_bsearch$19.$$p = null; + delete $$bsearch.$$p; - - if ($iter) $Range_bsearch$19.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("bsearch") }; if ($truthy(is_infinite(self) && (self.begin.$$is_number || self.end.$$is_number))) { - self.$raise($$($nesting, 'NotImplementedError'), "Can't #bsearch an infinite range")}; - if ($truthy(self.begin.$$is_number && self.end.$$is_number)) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + "can't do binary search for " + (self.begin.$class())) + $Kernel.$raise($$$('NotImplementedError'), "Can't #bsearch an infinite range") + }; + if (!$truthy(self.begin.$$is_number && self.end.$$is_number)) { + $Kernel.$raise($$$('TypeError'), "can't do binary search for " + (self.begin.$class())) }; return $send(self.$to_a(), 'bsearch', [], block.$to_proc()); - }, $Range_bsearch$19.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Range_to_s$20 = function $$to_s() { - var self = this, $ret_or_28 = nil, $ret_or_29 = nil; + $def(self, '$to_s', function $$to_s() { + var self = this, $ret_or_1 = nil; - return "" + ((function() {if ($truthy(($ret_or_28 = self.begin))) { - return $ret_or_28 - } else { - return "" - }; return nil; })()) + ((function() {if ($truthy(self.excl)) { - return "..." - } else { - return ".." - }; return nil; })()) + ((function() {if ($truthy(($ret_or_29 = self.end))) { - return $ret_or_29 - } else { - return "" - }; return nil; })()) - }, $Range_to_s$20.$$arity = 0); + return "" + (($truthy(($ret_or_1 = self.begin)) ? ($ret_or_1) : (""))) + (($truthy(self.excl) ? ("...") : (".."))) + (($truthy(($ret_or_1 = self.end)) ? ($ret_or_1) : (""))) + }, 0); - Opal.def(self, '$inspect', $Range_inspect$21 = function $$inspect() { - var self = this, $ret_or_30 = nil, $ret_or_31 = nil; + $def(self, '$inspect', function $$inspect() { + var self = this, $ret_or_1 = nil; - return "" + ((function() {if ($truthy(($ret_or_30 = self.begin))) { - return self.begin.$inspect() - } else { - return $ret_or_30 - }; return nil; })()) + ((function() {if ($truthy(self.excl)) { - return "..." - } else { - return ".." - }; return nil; })()) + ((function() {if ($truthy(($ret_or_31 = self.end))) { - return self.end.$inspect() - } else { - return $ret_or_31 - }; return nil; })()) - }, $Range_inspect$21.$$arity = 0); + return "" + (($truthy(($ret_or_1 = self.begin)) ? (self.begin.$inspect()) : ($ret_or_1))) + (($truthy(self.excl) ? ("...") : (".."))) + (($truthy(($ret_or_1 = self.end)) ? (self.end.$inspect()) : ($ret_or_1))) + }, 0); - Opal.def(self, '$marshal_load', $Range_marshal_load$22 = function $$marshal_load(args) { + $def(self, '$marshal_load', function $$marshal_load(args) { var self = this; self.begin = args['$[]']("begin"); self.end = args['$[]']("end"); return (self.excl = args['$[]']("excl")); - }, $Range_marshal_load$22.$$arity = 1); - return (Opal.def(self, '$hash', $Range_hash$23 = function $$hash() { + }, 1); + + $def(self, '$hash', function $$hash() { var self = this; return [self.begin, self.end, self.excl].$hash() - }, $Range_hash$23.$$arity = 0), nil) && 'hash'; - })($nesting[0], null, $nesting); + }, 0); + $alias(self, "==", "eql?"); + $alias(self, "include?", "cover?"); + return $alias(self, "member?", "cover?"); + })('::', null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/proc"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $send = Opal.send; +Opal.modules["corelib/proc"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $Kernel = Opal.Kernel, $defs = Opal.defs, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $Opal = Opal.Opal, $alias = Opal.alias; - Opal.add_stubs(['$raise', '$proc', '$call', '$to_proc', '$coerce_to!']); - return (function($base, $super, $parent_nesting) { + Opal.add_stubs('raise,proc,call,to_proc,new,source_location,coerce_to!'); + return (function($base, $super) { var self = $klass($base, $super, 'Proc'); - var $nesting = [self].concat($parent_nesting), $Proc_new$1, $Proc_call$2, $Proc_$gt$gt$3, $Proc_$lt$lt$5, $Proc_to_proc$7, $Proc_lambda$ques$8, $Proc_arity$9, $Proc_source_location$10, $Proc_binding$11, $Proc_parameters$12, $Proc_curry$13, $Proc_dup$14; - - Opal.defineProperty(self.$$prototype, '$$is_proc', true); - Opal.defineProperty(self.$$prototype, '$$is_lambda', false); - Opal.defs(self, '$new', $Proc_new$1 = function() { - var $iter = $Proc_new$1.$$p, block = $iter || nil, self = this; + + Opal.prop(self.$$prototype, '$$is_proc', true); + Opal.prop(self.$$prototype, '$$is_lambda', false); + $defs(self, '$new', function $Proc_new$1() { + var block = $Proc_new$1.$$p || nil; - if ($iter) $Proc_new$1.$$p = null; + delete $Proc_new$1.$$p; - - if ($iter) $Proc_new$1.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "tried to create a Proc object without a block") + ; + if (!$truthy(block)) { + $Kernel.$raise($$$('ArgumentError'), "tried to create a Proc object without a block") }; return block; - }, $Proc_new$1.$$arity = 0); + }, 0); - Opal.def(self, '$call', $Proc_call$2 = function $$call($a) { - var $iter = $Proc_call$2.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$call', function $$call($a) { + var block = $$call.$$p || nil, $post_args, args, self = this; - if ($iter) $Proc_call$2.$$p = null; + delete $$call.$$p; + ; - if ($iter) $Proc_call$2.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; @@ -19121,58 +18860,55 @@ Opal.modules["corelib/proc"] = function(Opal) { return result; ; - }, $Proc_call$2.$$arity = -1); - $alias(self, "[]", "call"); - $alias(self, "===", "call"); - $alias(self, "yield", "call"); + }, -1); - Opal.def(self, '$>>', $Proc_$gt$gt$3 = function(other) { - var $$4, $iter = $Proc_$gt$gt$3.$$p, $yield = $iter || nil, self = this; + $def(self, '$>>', function $Proc_$gt$gt$2(other) { + var $yield = $Proc_$gt$gt$2.$$p || nil, self = this; - if ($iter) $Proc_$gt$gt$3.$$p = null; - return $send(self, 'proc', [], ($$4 = function($a){var self = $$4.$$s == null ? this : $$4.$$s, $iter = $$4.$$p, block = $iter || nil, $post_args, args, out = nil; + delete $Proc_$gt$gt$2.$$p; + return $send($Kernel, 'proc', [], function $$3($a){var block = $$3.$$p || nil, $post_args, args, self = $$3.$$s == null ? this : $$3.$$s, out = nil; + delete $$3.$$p; + ; - if ($iter) $$4.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - out = $send(self, 'call', Opal.to_a(args), block.$to_proc()); - return other.$call(out);}, $$4.$$s = self, $$4.$$arity = -1, $$4)) - }, $Proc_$gt$gt$3.$$arity = 1); + out = $send(self, 'call', $to_a(args), block.$to_proc()); + return other.$call(out);}, {$$arity: -1, $$s: self}) + }, 1); - Opal.def(self, '$<<', $Proc_$lt$lt$5 = function(other) { - var $$6, $iter = $Proc_$lt$lt$5.$$p, $yield = $iter || nil, self = this; + $def(self, '$<<', function $Proc_$lt$lt$4(other) { + var $yield = $Proc_$lt$lt$4.$$p || nil, self = this; - if ($iter) $Proc_$lt$lt$5.$$p = null; - return $send(self, 'proc', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $iter = $$6.$$p, block = $iter || nil, $post_args, args, out = nil; + delete $Proc_$lt$lt$4.$$p; + return $send($Kernel, 'proc', [], function $$5($a){var block = $$5.$$p || nil, $post_args, args, self = $$5.$$s == null ? this : $$5.$$s, out = nil; + delete $$5.$$p; + ; - if ($iter) $$6.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - out = $send(other, 'call', Opal.to_a(args), block.$to_proc()); - return self.$call(out);}, $$6.$$s = self, $$6.$$arity = -1, $$6)) - }, $Proc_$lt$lt$5.$$arity = 1); + out = $send(other, 'call', $to_a(args), block.$to_proc()); + return self.$call(out);}, {$$arity: -1, $$s: self}) + }, 1); - Opal.def(self, '$to_proc', $Proc_to_proc$7 = function $$to_proc() { + $def(self, '$to_proc', function $$to_proc() { var self = this; return self - }, $Proc_to_proc$7.$$arity = 0); + }, 0); - Opal.def(self, '$lambda?', $Proc_lambda$ques$8 = function() { + $def(self, '$lambda?', function $Proc_lambda$ques$6() { var self = this; return !!self.$$is_lambda; - }, $Proc_lambda$ques$8.$$arity = 0); + }, 0); - Opal.def(self, '$arity', $Proc_arity$9 = function $$arity() { + $def(self, '$arity', function $$arity() { var self = this; @@ -19182,25 +18918,29 @@ Opal.modules["corelib/proc"] = function(Opal) { return self.$$arity; } - }, $Proc_arity$9.$$arity = 0); + }, 0); - Opal.def(self, '$source_location', $Proc_source_location$10 = function $$source_location() { + $def(self, '$source_location', function $$source_location() { var self = this; if (self.$$is_curried) { return nil; }; return nil; - }, $Proc_source_location$10.$$arity = 0); + }, 0); - Opal.def(self, '$binding', $Proc_binding$11 = function $$binding() { - var self = this; + $def(self, '$binding', function $$binding() { + var $a, self = this; - if (self.$$is_curried) { self.$raise($$($nesting, 'ArgumentError'), "Can't create Binding") }; - return nil; - }, $Proc_binding$11.$$arity = 0); + if (self.$$is_curried) { $Kernel.$raise($$$('ArgumentError'), "Can't create Binding") }; + if ($truthy((($a = $$$('::', 'Binding', 'skip_raise')) ? 'constant' : nil))) { + return $$$('Binding').$new(nil, [], self.$$s, self.$source_location()) + } else { + return nil + }; + }, 0); - Opal.def(self, '$parameters', $Proc_parameters$12 = function $$parameters() { + $def(self, '$parameters', function $$parameters() { var self = this; @@ -19229,9 +18969,9 @@ Opal.modules["corelib/proc"] = function(Opal) { return []; } - }, $Proc_parameters$12.$$arity = 0); + }, 0); - Opal.def(self, '$curry', $Proc_curry$13 = function $$curry(arity) { + $def(self, '$curry', function $$curry(arity) { var self = this; @@ -19241,9 +18981,9 @@ Opal.modules["corelib/proc"] = function(Opal) { arity = self.length; } else { - arity = $$($nesting, 'Opal')['$coerce_to!'](arity, $$($nesting, 'Integer'), "to_int"); + arity = $Opal['$coerce_to!'](arity, $$$('Integer'), "to_int"); if (self.$$is_lambda && arity !== self.length) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arity) + " for " + (self.length) + ")") + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (arity) + " for " + (self.length) + ")") } } @@ -19253,7 +18993,7 @@ Opal.modules["corelib/proc"] = function(Opal) { result; if (length > arity && self.$$is_lambda && !self.$$is_curried) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (length) + " for " + (arity) + ")") + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (length) + " for " + (arity) + ")") } if (length >= arity) { @@ -19274,9 +19014,9 @@ Opal.modules["corelib/proc"] = function(Opal) { curried.$$is_curried = true; return curried; ; - }, $Proc_curry$13.$$arity = -1); + }, -1); - Opal.def(self, '$dup', $Proc_dup$14 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this; @@ -19293,27 +19033,29 @@ Opal.modules["corelib/proc"] = function(Opal) { return proc; - }, $Proc_dup$14.$$arity = 0); - return $alias(self, "clone", "dup"); - })($nesting[0], Function, $nesting) + }, 0); + $alias(self, "===", "call"); + $alias(self, "clone", "dup"); + $alias(self, "yield", "call"); + return $alias(self, "[]", "call"); + })('::', Function) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/method"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias; +Opal.modules["corelib/method"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $alias = Opal.alias, $Kernel = Opal.Kernel, $send = Opal.send, $to_a = Opal.to_a; - Opal.add_stubs(['$attr_reader', '$arity', '$>>', '$<<', '$new', '$class', '$join', '$source_location', '$raise']); + Opal.add_stubs('attr_reader,arity,curry,>>,<<,new,class,join,source_location,raise,call,bind,to_proc'); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Method'); - var $nesting = [self].concat($parent_nesting), $Method_initialize$1, $Method_arity$2, $Method_parameters$3, $Method_source_location$4, $Method_comments$5, $Method_call$6, $Method_$gt$gt$7, $Method_$lt$lt$8, $Method_unbind$9, $Method_to_proc$10, $Method_inspect$11; + var $proto = self.$$prototype; - self.$$prototype.method = self.$$prototype.receiver = self.$$prototype.owner = self.$$prototype.name = nil; + $proto.method = $proto.receiver = $proto.owner = $proto.name = nil; self.$attr_reader("owner", "receiver", "name"); - Opal.def(self, '$initialize', $Method_initialize$1 = function $$initialize(receiver, owner, method, name) { + $def(self, '$initialize', function $$initialize(receiver, owner, method, name) { var self = this; @@ -19321,21 +19063,21 @@ Opal.modules["corelib/method"] = function(Opal) { self.owner = owner; self.name = name; return (self.method = method); - }, $Method_initialize$1.$$arity = 4); + }, 4); - Opal.def(self, '$arity', $Method_arity$2 = function $$arity() { + $def(self, '$arity', function $$arity() { var self = this; return self.method.$arity() - }, $Method_arity$2.$$arity = 0); + }, 0); - Opal.def(self, '$parameters', $Method_parameters$3 = function $$parameters() { + $def(self, '$parameters', function $$parameters() { var self = this; return self.method.$$parameters - }, $Method_parameters$3.$$arity = 0); + }, 0); - Opal.def(self, '$source_location', $Method_source_location$4 = function $$source_location() { + $def(self, '$source_location', function $$source_location() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.method.$$source_location))) { @@ -19343,27 +19085,26 @@ Opal.modules["corelib/method"] = function(Opal) { } else { return ["(eval)", 0] } - }, $Method_source_location$4.$$arity = 0); + }, 0); - Opal.def(self, '$comments', $Method_comments$5 = function $$comments() { - var self = this, $ret_or_2 = nil; + $def(self, '$comments', function $$comments() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = self.method.$$comments))) { - return $ret_or_2 + if ($truthy(($ret_or_1 = self.method.$$comments))) { + return $ret_or_1 } else { return [] } - }, $Method_comments$5.$$arity = 0); + }, 0); - Opal.def(self, '$call', $Method_call$6 = function $$call($a) { - var $iter = $Method_call$6.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$call', function $$call($a) { + var block = $$call.$$p || nil, $post_args, args, self = this; - if ($iter) $Method_call$6.$$p = null; - + delete $$call.$$p; - if ($iter) $Method_call$6.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; @@ -19371,28 +19112,35 @@ Opal.modules["corelib/method"] = function(Opal) { return self.method.apply(self.receiver, args); ; - }, $Method_call$6.$$arity = -1); - $alias(self, "[]", "call"); + }, -1); + + $def(self, '$curry', function $$curry(arity) { + var self = this; + + + ; + return self.method.$curry(arity); + }, -1); - Opal.def(self, '$>>', $Method_$gt$gt$7 = function(other) { + $def(self, '$>>', function $Method_$gt$gt$1(other) { var self = this; return self.method['$>>'](other) - }, $Method_$gt$gt$7.$$arity = 1); + }, 1); - Opal.def(self, '$<<', $Method_$lt$lt$8 = function(other) { + $def(self, '$<<', function $Method_$lt$lt$2(other) { var self = this; return self.method['$<<'](other) - }, $Method_$lt$lt$8.$$arity = 1); + }, 1); - Opal.def(self, '$unbind', $Method_unbind$9 = function $$unbind() { + $def(self, '$unbind', function $$unbind() { var self = this; - return $$($nesting, 'UnboundMethod').$new(self.receiver.$class(), self.owner, self.method, self.name) - }, $Method_unbind$9.$$arity = 0); + return $$$('UnboundMethod').$new(self.receiver.$class(), self.owner, self.method, self.name) + }, 0); - Opal.def(self, '$to_proc', $Method_to_proc$10 = function $$to_proc() { + $def(self, '$to_proc', function $$to_proc() { var self = this; @@ -19403,23 +19151,26 @@ Opal.modules["corelib/method"] = function(Opal) { proc.$$parameters = self.method.$$parameters; return proc; - }, $Method_to_proc$10.$$arity = 0); - return (Opal.def(self, '$inspect', $Method_inspect$11 = function $$inspect() { + }, 0); + + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#<" + (self.$class()) + ": " + (self.receiver.$class()) + "#" + (self.name) + " (defined in " + (self.owner) + " in " + (self.$source_location().$join(":")) + ")>" - }, $Method_inspect$11.$$arity = 0), nil) && 'inspect'; - })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { + return "#<" + (self.$class()) + ": " + (self.receiver.$class()) + "#" + (self.name) + " (defined in " + (self.owner) + " in " + (self.$source_location().$join(":")) + ")>" + }, 0); + $alias(self, "[]", "call"); + return $alias(self, "===", "call"); + })('::', null); + return (function($base, $super) { var self = $klass($base, $super, 'UnboundMethod'); - var $nesting = [self].concat($parent_nesting), $UnboundMethod_initialize$12, $UnboundMethod_arity$13, $UnboundMethod_parameters$14, $UnboundMethod_source_location$15, $UnboundMethod_comments$16, $UnboundMethod_bind$17, $UnboundMethod_inspect$18; + var $proto = self.$$prototype; - self.$$prototype.method = self.$$prototype.owner = self.$$prototype.name = self.$$prototype.source = nil; + $proto.method = $proto.owner = $proto.name = $proto.source = nil; self.$attr_reader("source", "owner", "name"); - Opal.def(self, '$initialize', $UnboundMethod_initialize$12 = function $$initialize(source, owner, method, name) { + $def(self, '$initialize', function $$initialize(source, owner, method, name) { var self = this; @@ -19427,312 +19178,634 @@ Opal.modules["corelib/method"] = function(Opal) { self.owner = owner; self.method = method; return (self.name = name); - }, $UnboundMethod_initialize$12.$$arity = 4); + }, 4); - Opal.def(self, '$arity', $UnboundMethod_arity$13 = function $$arity() { + $def(self, '$arity', function $$arity() { var self = this; return self.method.$arity() - }, $UnboundMethod_arity$13.$$arity = 0); + }, 0); - Opal.def(self, '$parameters', $UnboundMethod_parameters$14 = function $$parameters() { + $def(self, '$parameters', function $$parameters() { var self = this; return self.method.$$parameters - }, $UnboundMethod_parameters$14.$$arity = 0); + }, 0); - Opal.def(self, '$source_location', $UnboundMethod_source_location$15 = function $$source_location() { - var self = this, $ret_or_3 = nil; + $def(self, '$source_location', function $$source_location() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_3 = self.method.$$source_location))) { - return $ret_or_3 + if ($truthy(($ret_or_1 = self.method.$$source_location))) { + return $ret_or_1 } else { return ["(eval)", 0] } - }, $UnboundMethod_source_location$15.$$arity = 0); + }, 0); - Opal.def(self, '$comments', $UnboundMethod_comments$16 = function $$comments() { - var self = this, $ret_or_4 = nil; + $def(self, '$comments', function $$comments() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_4 = self.method.$$comments))) { - return $ret_or_4 + if ($truthy(($ret_or_1 = self.method.$$comments))) { + return $ret_or_1 } else { return [] } - }, $UnboundMethod_comments$16.$$arity = 0); + }, 0); - Opal.def(self, '$bind', $UnboundMethod_bind$17 = function $$bind(object) { + $def(self, '$bind', function $$bind(object) { var self = this; if (self.owner.$$is_module || Opal.is_a(object, self.owner)) { - return $$($nesting, 'Method').$new(object, self.owner, self.method, self.name); + return $$$('Method').$new(object, self.owner, self.method, self.name); } else { - self.$raise($$($nesting, 'TypeError'), "" + "can't bind singleton method to a different class (expected " + (object) + ".kind_of?(" + (self.owner) + " to be true)"); + $Kernel.$raise($$$('TypeError'), "can't bind singleton method to a different class (expected " + (object) + ".kind_of?(" + (self.owner) + " to be true)"); } - }, $UnboundMethod_bind$17.$$arity = 1); - return (Opal.def(self, '$inspect', $UnboundMethod_inspect$18 = function $$inspect() { + }, 1); + + $def(self, '$bind_call', function $$bind_call(object, $a) { + var block = $$bind_call.$$p || nil, $post_args, args, self = this; + + delete $$bind_call.$$p; + + ; + + $post_args = Opal.slice.call(arguments, 1); + + args = $post_args;; + return $send(self.$bind(object), 'call', $to_a(args), block.$to_proc()); + }, -2); + return $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#<" + (self.$class()) + ": " + (self.source) + "#" + (self.name) + " (defined in " + (self.owner) + " in " + (self.$source_location().$join(":")) + ")>" - }, $UnboundMethod_inspect$18.$$arity = 0), nil) && 'inspect'; - })($nesting[0], null, $nesting); + return "#<" + (self.$class()) + ": " + (self.source) + "#" + (self.name) + " (defined in " + (self.owner) + " in " + (self.$source_location().$join(":")) + ")>" + }, 0); + })('::', null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/variables"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $gvars = Opal.gvars, $hash2 = Opal.hash2; +Opal.modules["corelib/variables"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $gvars = Opal.gvars, $const_set = Opal.const_set, $Object = Opal.Object, $hash2 = Opal.hash2; - Opal.add_stubs(['$new']); + Opal.add_stubs('new'); $gvars['&'] = $gvars['~'] = $gvars['`'] = $gvars["'"] = nil; $gvars.LOADED_FEATURES = ($gvars["\""] = Opal.loaded_features); $gvars.LOAD_PATH = ($gvars[":"] = []); $gvars["/"] = "\n"; $gvars[","] = nil; - Opal.const_set($nesting[0], 'ARGV', []); - Opal.const_set($nesting[0], 'ARGF', $$($nesting, 'Object').$new()); - Opal.const_set($nesting[0], 'ENV', $hash2([], {})); + $const_set('::', 'ARGV', []); + $const_set('::', 'ARGF', $Object.$new()); + $const_set('::', 'ENV', $hash2([], {})); $gvars.VERBOSE = false; $gvars.DEBUG = false; return ($gvars.SAFE = 0); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/io"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $module = Opal.module, $gvars = Opal.gvars, $send = Opal.send, $writer = nil; +Opal.modules["corelib/io"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $not = Opal.not, $truthy = Opal.truthy, $def = Opal.def, $Kernel = Opal.Kernel, $gvars = Opal.gvars, $send = Opal.send, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $neqeq = Opal.neqeq, $range = Opal.range, $hash2 = Opal.hash2, $eqeq = Opal.eqeq, $to_ary = Opal.to_ary, $rb_gt = Opal.rb_gt, $alias = Opal.alias, $rb_minus = Opal.rb_minus, $writer = nil; - Opal.add_stubs(['$attr_accessor', '$size', '$write', '$String', '$chomp', '$getbyte', '$getc', '$raise', '$new', '$write_proc=', '$-', '$extend']); + Opal.add_stubs('attr_reader,attr_accessor,!,match?,include?,size,write,String,flatten,puts,sysread_noraise,+,!=,[],ord,getc,readchar,raise,gets,==,to_str,length,split,sub,sysread,>,to_a,each_line,enum_for,getbyte,closed_write?,closed_read?,new,write_proc=,-,read_proc='); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'IO'); - var $nesting = [self].concat($parent_nesting), $IO_tty$ques$1, $IO_closed$ques$2, $IO_write$3, $IO_flush$4; + var $proto = self.$$prototype; - self.$$prototype.closed = nil; + $proto.fd = $proto.read_buffer = $proto.closed = nil; - Opal.const_set($nesting[0], 'SEEK_SET', 0); - Opal.const_set($nesting[0], 'SEEK_CUR', 1); - Opal.const_set($nesting[0], 'SEEK_END', 2); + $const_set(self, 'SEEK_SET', 0); + $const_set(self, 'SEEK_CUR', 1); + $const_set(self, 'SEEK_END', 2); + $const_set(self, 'SEEK_DATA', 3); + $const_set(self, 'SEEK_HOLE', 4); + $const_set(self, 'READABLE', 1); + $const_set(self, 'WRITABLE', 4); + self.$attr_reader("eof"); + self.$attr_accessor("read_proc", "sync", "tty", "write_proc"); - Opal.def(self, '$tty?', $IO_tty$ques$1 = function() { + $def(self, '$initialize', function $$initialize(fd, flags) { var self = this; - return self.tty == true; - }, $IO_tty$ques$1.$$arity = 0); + + + if (flags == null) flags = "r";; + self.fd = fd; + self.flags = flags; + self.eof = false; + if (($truthy(flags['$include?']("r")) && ($not(flags['$match?'](/[wa+]/))))) { + return (self.closed = "write") + } else if (($truthy(flags['$match?'](/[wa]/)) && ($not(flags['$match?'](/[r+]/))))) { + return (self.closed = "read") + } else { + return nil + }; + }, -2); - Opal.def(self, '$closed?', $IO_closed$ques$2 = function() { + $def(self, '$fileno', function $$fileno() { var self = this; - return self.closed - }, $IO_closed$ques$2.$$arity = 0); - self.$attr_accessor("write_proc"); + return self.fd + }, 0); - Opal.def(self, '$write', $IO_write$3 = function $$write(string) { + $def(self, '$tty?', function $IO_tty$ques$1() { + var self = this; + + return self.tty == true; + }, 0); + + $def(self, '$write', function $$write(string) { var self = this; self.write_proc(string); return string.$size(); - }, $IO_write$3.$$arity = 1); - self.$attr_accessor("sync", "tty"); + }, 1); - Opal.def(self, '$flush', $IO_flush$4 = function $$flush() { + $def(self, '$flush', function $$flush() { + + return nil + }, 0); + + $def(self, '$<<', function $IO_$lt$lt$2(string) { var self = this; - return nil - }, $IO_flush$4.$$arity = 0); - (function($base, $parent_nesting) { - var self = $module($base, 'Writable'); + + self.$write(string); + return self; + }, 1); + + $def(self, '$print', function $$print($a) { + var $post_args, args, self = this; + if ($gvars[","] == null) $gvars[","] = nil; - var $nesting = [self].concat($parent_nesting), $Writable_$lt$lt$5, $Writable_print$6, $Writable_puts$7; + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + + for (var i = 0, ii = args.length; i < ii; i++) { + args[i] = $Kernel.$String(args[i]) + } + self.$write(args.join($gvars[","])); + ; + return nil; + }, -1); + + $def(self, '$puts', function $$puts($a) { + var $post_args, args, self = this; - Opal.def(self, '$<<', $Writable_$lt$lt$5 = function(string) { - var self = this; + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + + var line + if (args.length === 0) { + self.$write("\n"); + return nil; + } else { + for (var i = 0, ii = args.length; i < ii; i++) { + if (args[i].$$is_array){ + var ary = (args[i]).$flatten() + if (ary.length > 0) $send(self, 'puts', $to_a((ary))) + } else { + if (args[i].$$is_string) { + line = args[i].valueOf(); + } else { + line = $Kernel.$String(args[i]); + } + if (!line.endsWith("\n")) line += "\n" + self.$write(line) + } + } + } + ; + return nil; + }, -1); + + $def(self, '$getc', function $$getc() { + var $a, self = this, $ret_or_1 = nil, parts = nil, ret = nil; + + self.read_buffer = ($truthy(($ret_or_1 = self.read_buffer)) ? ($ret_or_1) : ("")); + parts = ""; + do { - self.$write(string); - return self; - }, $Writable_$lt$lt$5.$$arity = 1); + self.read_buffer = $rb_plus(self.read_buffer, parts); + if ($neqeq(self.read_buffer, "")) { + + ret = self.read_buffer['$[]'](0); + self.read_buffer = self.read_buffer['$[]']($range(1, -1, false)); + return ret; + }; + } while ($truthy((parts = self.$sysread_noraise(1))));; + return nil; + }, 0); + + $def(self, '$getbyte', function $$getbyte() { + var $a, self = this; + + return ($a = self.$getc(), ($a === nil || $a == null) ? nil : $send($a, 'ord', [])) + }, 0); + + $def(self, '$readbyte', function $$readbyte() { + var self = this; + + return self.$readchar().$ord() + }, 0); + + $def(self, '$readchar', function $$readchar() { + var self = this, $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = self.$getc()))) { + return $ret_or_1 + } else { + return $Kernel.$raise($$$('EOFError'), "end of file reached") + } + }, 0); + + $def(self, '$readline', function $$readline($a) { + var $post_args, args, self = this, $ret_or_1 = nil; + + + + $post_args = Opal.slice.call(arguments); - Opal.def(self, '$print', $Writable_print$6 = function $$print($a) { - var $post_args, args, self = this; - if ($gvars[","] == null) $gvars[","] = nil; + args = $post_args;; + if ($truthy(($ret_or_1 = $send(self, 'gets', $to_a(args))))) { + return $ret_or_1 + } else { + return $Kernel.$raise($$$('EOFError'), "end of file reached") + }; + }, -1); + + $def(self, '$gets', function $$gets(sep, limit, opts) { + var $a, $b, $c, self = this, orig_sep = nil, $ret_or_1 = nil, seplen = nil, data = nil, ret = nil, orig_buffer = nil; + if ($gvars["/"] == null) $gvars["/"] = nil; + + + if (sep == null) sep = false;; + + if (limit == null) limit = nil;; + + if (opts == null) opts = $hash2([], {});; + if (($truthy(sep.$$is_number) && ($not(limit)))) { + $a = [false, sep, limit], (sep = $a[0]), (limit = $a[1]), (opts = $a[2]), $a + }; + if ((($truthy(sep.$$is_hash) && ($not(limit))) && ($eqeq(opts, $hash2([], {}))))) { + $a = [false, nil, sep], (sep = $a[0]), (limit = $a[1]), (opts = $a[2]), $a + } else if (($truthy(limit.$$is_hash) && ($eqeq(opts, $hash2([], {}))))) { + $a = [sep, nil, limit], (sep = $a[0]), (limit = $a[1]), (opts = $a[2]), $a + }; + orig_sep = sep; + if ($eqeq(sep, false)) { + sep = $gvars["/"] + }; + if ($eqeq(sep, "")) { + sep = /\r?\n\r?\n/ + }; + sep = ($truthy(($ret_or_1 = sep)) ? ($ret_or_1) : ("")); + if (!$eqeq(orig_sep, "")) { + sep = sep.$to_str() + }; + seplen = ($eqeq(orig_sep, "") ? (2) : (sep.$length())); + if ($eqeq(sep, " ")) { + sep = / / + }; + self.read_buffer = ($truthy(($ret_or_1 = self.read_buffer)) ? ($ret_or_1) : ("")); + data = ""; + ret = nil; + do { + self.read_buffer = $rb_plus(self.read_buffer, data); + if (($neqeq(sep, "") && ($truthy(($truthy(sep.$$is_regexp) ? (self.read_buffer['$match?'](sep)) : (self.read_buffer['$include?'](sep))))))) { + + orig_buffer = self.read_buffer; + $c = self.read_buffer.$split(sep, 2), $b = $to_ary($c), (ret = ($b[0] == null ? nil : $b[0])), (self.read_buffer = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(ret, orig_buffer)) { + ret = $rb_plus(ret, orig_buffer['$[]'](ret.$length(), seplen)) + }; + break;; + }; + } while ($truthy((data = self.$sysread_noraise(($eqeq(sep, "") ? (65536) : (1))))));; + if (!$truthy(ret)) { - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - args = $post_args;; + $a = [($truthy(($ret_or_1 = self.read_buffer)) ? ($ret_or_1) : ("")), ""], (ret = $a[0]), (self.read_buffer = $a[1]), $a; + if ($eqeq(ret, "")) { + ret = nil + }; + }; + if ($truthy(ret)) { - for (var i = 0, ii = args.length; i < ii; i++) { - args[i] = self.$String(args[i]) - } - self.$write(args.join($gvars[","])); - ; - return nil; - }, $Writable_print$6.$$arity = -1); - return (Opal.def(self, '$puts', $Writable_puts$7 = function $$puts($a) { - var $post_args, args, self = this; - if ($gvars["/"] == null) $gvars["/"] = nil; + if ($truthy(limit)) { + + ret = ret['$[]'](Opal.Range.$new(0,limit, true)); + self.read_buffer = $rb_plus(ret['$[]'](Opal.Range.$new(limit, -1, false)), self.read_buffer); + }; + if ($truthy(opts['$[]']("chomp"))) { + ret = ret.$sub(/\r?\n$/, "") + }; + if ($eqeq(orig_sep, "")) { + ret = ret.$sub(/^[\r\n]+/, "") + }; + }; + if ($eqeq(orig_sep, false)) { + $gvars._ = ret + }; + return ret; + }, -1); + + $def(self, '$sysread', function $$sysread(integer) { + var self = this, $ret_or_1 = nil; + if ($truthy(($ret_or_1 = self.read_proc(integer)))) { + return $ret_or_1 + } else { + self.eof = true; + return $Kernel.$raise($$$('EOFError'), "end of file reached"); + } + }, 1); + + $def(self, '$sysread_noraise', function $$sysread_noraise(integer) { + var self = this; + + try { + return self.$sysread(integer) + } catch ($err) { + if (Opal.rescue($err, [$$$('EOFError')])) { + try { + return nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + } + }, 1); + + $def(self, '$readpartial', function $$readpartial(integer) { + var $a, self = this, $ret_or_1 = nil, part = nil, ret = nil; + + + self.read_buffer = ($truthy(($ret_or_1 = self.read_buffer)) ? ($ret_or_1) : ("")); + part = self.$sysread(integer); + $a = [$rb_plus(self.read_buffer, ($truthy(($ret_or_1 = part)) ? ($ret_or_1) : (""))), ""], (ret = $a[0]), (self.read_buffer = $a[1]), $a; + if ($eqeq(ret, "")) { + ret = nil + }; + return ret; + }, 1); + + $def(self, '$read', function $$read(integer) { + var $a, $b, self = this, $ret_or_1 = nil, parts = nil, ret = nil; + + + + if (integer == null) integer = nil;; + self.read_buffer = ($truthy(($ret_or_1 = self.read_buffer)) ? ($ret_or_1) : ("")); + parts = ""; + ret = nil; + do { - $post_args = Opal.slice.call(arguments, 0, arguments.length); - - args = $post_args;; - - for (var i = 0, ii = args.length; i < ii; i++) { - args[i] = self.$String(args[i]).$chomp() - } - self.$write(args.concat([nil]).join($gvars["/"])); - ; - return nil; - }, $Writable_puts$7.$$arity = -1), nil) && 'puts'; - })($nesting[0], $nesting); - return (function($base, $parent_nesting) { - var self = $module($base, 'Readable'); + self.read_buffer = $rb_plus(self.read_buffer, parts); + if (($truthy(integer) && ($truthy($rb_gt(self.read_buffer.$length(), integer))))) { + + $b = [self.read_buffer['$[]'](Opal.Range.$new(0,integer, true)), self.read_buffer['$[]'](Opal.Range.$new(integer, -1, false))], (ret = $b[0]), (self.read_buffer = $b[1]), $b; + return ret; + }; + } while ($truthy((parts = self.$sysread_noraise(($truthy(($ret_or_1 = integer)) ? ($ret_or_1) : (65536))))));; + $a = [self.read_buffer, ""], (ret = $a[0]), (self.read_buffer = $a[1]), $a; + return ret; + }, -1); + + $def(self, '$readlines', function $$readlines(separator) { + var self = this; + if ($gvars["/"] == null) $gvars["/"] = nil; - var $nesting = [self].concat($parent_nesting), $Readable_readbyte$8, $Readable_readchar$9, $Readable_readline$10, $Readable_readpartial$11; + + + if (separator == null) separator = $gvars["/"];; + return self.$each_line(separator).$to_a(); + }, -1); + + $def(self, '$each', function $$each($a, $b) { + var block = $$each.$$p || nil, $post_args, sep, args, $c, self = this, s = nil; + if ($gvars["/"] == null) $gvars["/"] = nil; + delete $$each.$$p; + ; - Opal.def(self, '$readbyte', $Readable_readbyte$8 = function $$readbyte() { - var self = this; + $post_args = Opal.slice.call(arguments); + + if ($post_args.length > 0) sep = $post_args.shift(); + if (sep == null) sep = $gvars["/"];; + + args = $post_args;; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each", sep].concat($to_a(args))) + }; + while ($truthy((s = $send(self, 'gets', [sep].concat($to_a(args)))))) { + Opal.yield1(block, s) + }; + return self; + }, -1); + + $def(self, '$each_byte', function $$each_byte() { + var block = $$each_byte.$$p || nil, $a, self = this, s = nil; - return self.$getbyte() - }, $Readable_readbyte$8.$$arity = 0); + delete $$each_byte.$$p; - Opal.def(self, '$readchar', $Readable_readchar$9 = function $$readchar() { - var self = this; + ; + if (!(block !== nil)) { + return self.$enum_for("each_byte") + }; + while ($truthy((s = self.$getbyte()))) { + Opal.yield1(block, s) + }; + return self; + }, 0); + + $def(self, '$each_char', function $$each_char() { + var block = $$each_char.$$p || nil, $a, self = this, s = nil; + + delete $$each_char.$$p; + + ; + if (!(block !== nil)) { + return self.$enum_for("each_char") + }; + while ($truthy((s = self.$getc()))) { + Opal.yield1(block, s) + }; + return self; + }, 0); + + $def(self, '$close', function $$close() { + var self = this; + + return (self.closed = "both") + }, 0); + + $def(self, '$close_read', function $$close_read() { + var self = this; + + if ($eqeq(self.closed, "write")) { + return (self.closed = "both") + } else { + return (self.closed = "read") + } + }, 0); + + $def(self, '$close_write', function $$close_write() { + var self = this; + + if ($eqeq(self.closed, "read")) { + return (self.closed = "both") + } else { + return (self.closed = "write") + } + }, 0); + + $def(self, '$closed?', function $IO_closed$ques$3() { + var self = this; + + return self.closed['$==']("both") + }, 0); + + $def(self, '$closed_read?', function $IO_closed_read$ques$4() { + var self = this, $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = self.closed['$==']("read")))) { + return $ret_or_1 + } else { + return self.closed['$==']("both") + } + }, 0); + + $def(self, '$closed_write?', function $IO_closed_write$ques$5() { + var self = this, $ret_or_1 = nil; - return self.$getc() - }, $Readable_readchar$9.$$arity = 0); - - Opal.def(self, '$readline', $Readable_readline$10 = function $$readline(sep) { - var self = this; - if ($gvars["/"] == null) $gvars["/"] = nil; + if ($truthy(($ret_or_1 = self.closed['$==']("write")))) { + return $ret_or_1 + } else { + return self.closed['$==']("both") + } + }, 0); + + $def(self, '$check_writable', function $$check_writable() { + var self = this; - - - if (sep == null) { - sep = $gvars["/"]; - }; - return self.$raise($$($nesting, 'NotImplementedError')); - }, $Readable_readline$10.$$arity = -1); - return (Opal.def(self, '$readpartial', $Readable_readpartial$11 = function $$readpartial(integer, outbuf) { - var self = this; + if ($truthy(self['$closed_write?']())) { + return $Kernel.$raise($$$('IOError'), "not opened for writing") + } else { + return nil + } + }, 0); + + $def(self, '$check_readable', function $$check_readable() { + var self = this; - - - if (outbuf == null) { - outbuf = nil; - }; - return self.$raise($$($nesting, 'NotImplementedError')); - }, $Readable_readpartial$11.$$arity = -2), nil) && 'readpartial'; - })($nesting[0], $nesting); - })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'STDERR', ($gvars.stderr = $$($nesting, 'IO').$new())); - Opal.const_set($nesting[0], 'STDIN', ($gvars.stdin = $$($nesting, 'IO').$new())); - Opal.const_set($nesting[0], 'STDOUT', ($gvars.stdout = $$($nesting, 'IO').$new())); + if ($truthy(self['$closed_read?']())) { + return $Kernel.$raise($$$('IOError'), "not opened for reading") + } else { + return nil + } + }, 0); + $alias(self, "each_line", "each"); + return $alias(self, "eof?", "eof"); + })('::', null); + $const_set('::', 'STDIN', ($gvars.stdin = $$$('IO').$new(0, "r"))); + $const_set('::', 'STDOUT', ($gvars.stdout = $$$('IO').$new(1, "w"))); + $const_set('::', 'STDERR', ($gvars.stderr = $$$('IO').$new(2, "w"))); var console = Opal.global.console; $writer = [typeof(process) === 'object' && typeof(process.stdout) === 'object' ? function(s){process.stdout.write(s)} : function(s){console.log(s)}]; - $send($$($nesting, 'STDOUT'), 'write_proc=', Opal.to_a($writer)); + $send($$$('STDOUT'), 'write_proc=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [typeof(process) === 'object' && typeof(process.stderr) === 'object' ? function(s){process.stderr.write(s)} : function(s){console.warn(s)}]; - $send($$($nesting, 'STDERR'), 'write_proc=', Opal.to_a($writer)); + $send($$$('STDERR'), 'write_proc=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $$($nesting, 'STDOUT').$extend($$$($$($nesting, 'IO'), 'Writable')); - return $$($nesting, 'STDERR').$extend($$$($$($nesting, 'IO'), 'Writable')); + + $writer = [function(s) { var p = prompt(); if (p !== null) return p + "\n"; return nil; }]; + $send($$$('STDIN'), 'read_proc=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/regexp_anchors"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["opal/regexp_anchors"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $const_set = Opal.const_set; - Opal.add_stubs(['$new']); + Opal.add_stubs('new'); return (function($base, $parent_nesting) { var self = $module($base, 'Opal'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'REGEXP_START', "^"); - Opal.const_set($nesting[0], 'REGEXP_END', "$"); - Opal.const_set($nesting[0], 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'INLINE_IDENTIFIER_REGEXP', $$($nesting, 'Regexp').$new("" + "[^" + ($$($nesting, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + ($$($nesting, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); - Opal.const_set($nesting[0], 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - return Opal.const_set($nesting[0], 'CONST_NAME_REGEXP', $$($nesting, 'Regexp').$new("" + ($$($nesting, 'REGEXP_START')) + "(::)?[A-Z][^" + ($$($nesting, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + ($$($nesting, 'REGEXP_END')))); + $const_set(self, 'REGEXP_START', "^"); + $const_set(self, 'REGEXP_END', "$"); + $const_set(self, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + $const_set(self, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + $const_set(self, 'INLINE_IDENTIFIER_REGEXP', $$('Regexp').$new("[^" + ($$$(self, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + ($$$(self, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); + $const_set(self, 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + return $const_set(self, 'CONST_NAME_REGEXP', $$('Regexp').$new("" + ($$$(self, 'REGEXP_START')) + "(::)?[A-Z][^" + ($$$(self, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + ($$$(self, 'REGEXP_END')))); })($nesting[0], $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["opal/mini"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["opal/mini"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $Object = Opal.Object; - Opal.add_stubs(['$require']); + Opal.add_stubs('require'); - self.$require("opal/base"); - self.$require("corelib/nil"); - self.$require("corelib/boolean"); - self.$require("corelib/string"); - self.$require("corelib/comparable"); - self.$require("corelib/enumerable"); - self.$require("corelib/enumerator"); - self.$require("corelib/array"); - self.$require("corelib/hash"); - self.$require("corelib/number"); - self.$require("corelib/range"); - self.$require("corelib/proc"); - self.$require("corelib/method"); - self.$require("corelib/regexp"); - self.$require("corelib/variables"); - self.$require("corelib/io"); - return self.$require("opal/regexp_anchors"); + $Object.$require("opal/base"); + $Object.$require("corelib/nil"); + $Object.$require("corelib/boolean"); + $Object.$require("corelib/string"); + $Object.$require("corelib/comparable"); + $Object.$require("corelib/enumerable"); + $Object.$require("corelib/enumerator"); + $Object.$require("corelib/array"); + $Object.$require("corelib/hash"); + $Object.$require("corelib/number"); + $Object.$require("corelib/range"); + $Object.$require("corelib/proc"); + $Object.$require("corelib/method"); + $Object.$require("corelib/regexp"); + $Object.$require("corelib/variables"); + $Object.$require("corelib/io"); + return $Object.$require("opal/regexp_anchors"); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/kernel/format"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $coerce_to = Opal.coerce_to, $module = Opal.module, $truthy = Opal.truthy, $gvars = Opal.gvars, $alias = Opal.alias; +Opal.modules["corelib/kernel/format"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $coerce_to = Opal.coerce_to, $module = Opal.module, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $Opal = Opal.Opal, $Kernel = Opal.Kernel, $gvars = Opal.gvars, $def = Opal.def, $alias = Opal.alias; - Opal.add_stubs(['$==', '$length', '$respond_to?', '$[]', '$coerce_to?', '$nil?', '$to_a', '$raise', '$to_int', '$fetch', '$Integer', '$Float', '$to_ary', '$to_str', '$inspect', '$to_s']); - return (function($base, $parent_nesting) { + Opal.add_stubs('respond_to?,[],==,length,coerce_to?,nil?,to_a,raise,to_int,fetch,Integer,Float,to_ary,to_str,inspect,to_s'); + return (function($base) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_format$1; - - Opal.def(self, '$format', $Kernel_format$1 = function $$format(format_string, $a) { - var $post_args, args, self = this, $ret_or_1 = nil, ary = nil; + + $def(self, '$format', function $$format(format_string, $a) { + var $post_args, args, ary = nil; if ($gvars.DEBUG == null) $gvars.DEBUG = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; - if ($truthy((function() {if ($truthy(($ret_or_1 = args.$length()['$=='](1)))) { - return args['$[]'](0)['$respond_to?']("to_ary") - } else { - return $ret_or_1 - }; return nil; })())) { + if (($eqeq(args.$length(), 1) && ($truthy(args['$[]'](0)['$respond_to?']("to_ary"))))) { - ary = $$($nesting, 'Opal')['$coerce_to?'](args['$[]'](0), $$($nesting, 'Array'), "to_ary"); - if ($truthy(ary['$nil?']())) { - } else { + ary = $Opal['$coerce_to?'](args['$[]'](0), $$$('Array'), "to_ary"); + if (!$truthy(ary['$nil?']())) { args = ary.$to_a() - };}; + }; + }; var result = '', //used for slicing: @@ -19776,24 +19849,24 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { FPREC0 = 128; function CHECK_FOR_FLAGS() { - if (flags&FWIDTH) { self.$raise($$($nesting, 'ArgumentError'), "flag after width") } - if (flags&FPREC0) { self.$raise($$($nesting, 'ArgumentError'), "flag after precision") } + if (flags&FWIDTH) { $Kernel.$raise($$$('ArgumentError'), "flag after width") } + if (flags&FPREC0) { $Kernel.$raise($$$('ArgumentError'), "flag after precision") } } function CHECK_FOR_WIDTH() { - if (flags&FWIDTH) { self.$raise($$($nesting, 'ArgumentError'), "width given twice") } - if (flags&FPREC0) { self.$raise($$($nesting, 'ArgumentError'), "width after precision") } + if (flags&FWIDTH) { $Kernel.$raise($$$('ArgumentError'), "width given twice") } + if (flags&FPREC0) { $Kernel.$raise($$$('ArgumentError'), "width after precision") } } function GET_NTH_ARG(num) { - if (num >= args.length) { self.$raise($$($nesting, 'ArgumentError'), "too few arguments") } + if (num >= args.length) { $Kernel.$raise($$$('ArgumentError'), "too few arguments") } return args[num]; } function GET_NEXT_ARG() { switch (pos_arg_num) { - case -1: self.$raise($$($nesting, 'ArgumentError'), "" + "unnumbered(" + (seq_arg_num) + ") mixed with numbered") // raise - case -2: self.$raise($$($nesting, 'ArgumentError'), "" + "unnumbered(" + (seq_arg_num) + ") mixed with named") // raise + case -1: $Kernel.$raise($$$('ArgumentError'), "unnumbered(" + (seq_arg_num) + ") mixed with numbered") // raise + case -2: $Kernel.$raise($$$('ArgumentError'), "unnumbered(" + (seq_arg_num) + ") mixed with named") // raise } pos_arg_num = seq_arg_num++; return GET_NTH_ARG(pos_arg_num - 1); @@ -19801,13 +19874,13 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { function GET_POS_ARG(num) { if (pos_arg_num > 0) { - self.$raise($$($nesting, 'ArgumentError'), "" + "numbered(" + (num) + ") after unnumbered(" + (pos_arg_num) + ")") + $Kernel.$raise($$$('ArgumentError'), "numbered(" + (num) + ") after unnumbered(" + (pos_arg_num) + ")") } if (pos_arg_num === -2) { - self.$raise($$($nesting, 'ArgumentError'), "" + "numbered(" + (num) + ") after named") + $Kernel.$raise($$$('ArgumentError'), "numbered(" + (num) + ") after named") } if (num < 1) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid index - " + (num) + "$") + $Kernel.$raise($$$('ArgumentError'), "invalid index - " + (num) + "$") } pos_arg_num = -1; return GET_NTH_ARG(num - 1); @@ -19821,13 +19894,13 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { var num, str = ''; for (;; i++) { if (i === len) { - self.$raise($$($nesting, 'ArgumentError'), "malformed format string - %*[0-9]") + $Kernel.$raise($$$('ArgumentError'), "malformed format string - %*[0-9]") } if (format_string.charCodeAt(i) < 48 || format_string.charCodeAt(i) > 57) { i--; num = parseInt(str, 10) || 0; if (num > 2147483647) { - self.$raise($$($nesting, 'ArgumentError'), "" + (label) + " too big") + $Kernel.$raise($$$('ArgumentError'), "" + (label) + " too big") } return num; } @@ -19914,7 +19987,7 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { break format_sequence; } if (next_arg !== undefined) { - self.$raise($$($nesting, 'ArgumentError'), "" + "value given twice - %" + (tmp_num) + "$") + $Kernel.$raise($$$('ArgumentError'), "value given twice - %" + (tmp_num) + "$") } next_arg = GET_POS_ARG(tmp_num); i++; @@ -19934,20 +20007,20 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { for (;; i++) { if (i === len) { - self.$raise($$($nesting, 'ArgumentError'), "malformed name - unmatched parenthesis") + $Kernel.$raise($$$('ArgumentError'), "malformed name - unmatched parenthesis") } if (format_string.charAt(i) === closing_brace_char) { if (pos_arg_num > 0) { - self.$raise($$($nesting, 'ArgumentError'), "" + "named " + (hash_parameter_key) + " after unnumbered(" + (pos_arg_num) + ")") + $Kernel.$raise($$$('ArgumentError'), "named " + (hash_parameter_key) + " after unnumbered(" + (pos_arg_num) + ")") } if (pos_arg_num === -1) { - self.$raise($$($nesting, 'ArgumentError'), "" + "named " + (hash_parameter_key) + " after numbered") + $Kernel.$raise($$$('ArgumentError'), "named " + (hash_parameter_key) + " after numbered") } pos_arg_num = -2; if (args[0] === undefined || !args[0].$$is_hash) { - self.$raise($$($nesting, 'ArgumentError'), "one hash required") + $Kernel.$raise($$$('ArgumentError'), "one hash required") } next_arg = (args[0]).$fetch(hash_parameter_key); @@ -19982,7 +20055,7 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { case '.': if (flags&FPREC0) { - self.$raise($$($nesting, 'ArgumentError'), "precision given twice") + $Kernel.$raise($$$('ArgumentError'), "precision given twice") } flags |= FPREC|FPREC0; precision = 0; @@ -20001,7 +20074,7 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { case 'd': case 'i': case 'u': - arg = self.$Integer(GET_ARG()); + arg = $Kernel.$Integer(GET_ARG()); if (arg >= 0) { str = arg.toString(); while (str.length < precision) { str = '0' + str; } @@ -20062,7 +20135,7 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { base_neg_zero_digit = 'f'; break; } - arg = self.$Integer(GET_ARG()); + arg = $Kernel.$Integer(GET_ARG()); if (arg >= 0) { str = arg.toString(base_number); while (str.length < precision) { str = '0' + str; } @@ -20130,7 +20203,7 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { case 'E': case 'g': case 'G': - arg = self.$Float(GET_ARG()); + arg = $Kernel.$Float(GET_ARG()); if (arg >= 0 || isNaN(arg)) { if (arg === Infinity) { str = 'Inf'; @@ -20209,7 +20282,7 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { case 'a': case 'A': // Not implemented because there are no specs for this field type. - self.$raise($$($nesting, 'NotImplementedError'), "`A` and `a` format field types are not implemented in Opal yet") + $Kernel.$raise($$$('NotImplementedError'), "`A` and `a` format field types are not implemented in Opal yet") // raise case 'c': @@ -20218,10 +20291,10 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { if ((arg)['$respond_to?']("to_str")) { str = (arg).$to_str(); } else { - str = String.fromCharCode($coerce_to(arg, $$($nesting, 'Integer'), 'to_int')); + str = String.fromCharCode($coerce_to(arg, $$$('Integer'), 'to_int')); } if (str.length !== 1) { - self.$raise($$($nesting, 'ArgumentError'), "%c requires a character") + $Kernel.$raise($$$('ArgumentError'), "%c requires a character") } if (flags&FMINUS) { while (str.length < width) { str = str + ' '; } @@ -20251,12 +20324,12 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { break format_sequence; default: - self.$raise($$($nesting, 'ArgumentError'), "" + "malformed format string - %" + (format_string.charAt(i))) + $Kernel.$raise($$$('ArgumentError'), "malformed format string - %" + (format_string.charAt(i))) } } if (str === undefined) { - self.$raise($$($nesting, 'ArgumentError'), "malformed format string - %") + $Kernel.$raise($$$('ArgumentError'), "malformed format string - %") } result += format_string.slice(begin_slice, end_slice) + str; @@ -20264,65 +20337,40 @@ Opal.modules["corelib/kernel/format"] = function(Opal) { } if ($gvars.DEBUG && pos_arg_num >= 0 && seq_arg_num < args.length) { - self.$raise($$($nesting, 'ArgumentError'), "too many arguments for format string") + $Kernel.$raise($$$('ArgumentError'), "too many arguments for format string") } return result + format_string.slice(begin_slice); ; - }, $Kernel_format$1.$$arity = -2); + }, -2); return $alias(self, "sprintf", "format"); - })($nesting[0], $nesting) + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/string/encoding"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var $$14, $$17, $$20, $$22, $$25, $$27, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $writer = nil; +Opal.modules["corelib/string/encoding"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $hash2 = Opal.hash2, $rb_plus = Opal.rb_plus, $truthy = Opal.truthy, $send = Opal.send, $defs = Opal.defs, $eqeq = Opal.eqeq, $def = Opal.def, $Kernel = Opal.Kernel, $Opal = Opal.Opal, $rb_lt = Opal.rb_lt, $alias = Opal.alias, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $writer = nil; - Opal.add_stubs(['$require', '$+', '$[]', '$clone', '$initialize', '$new', '$instance_eval', '$to_proc', '$each', '$const_set', '$tr', '$==', '$default_external', '$attr_accessor', '$singleton_class', '$attr_reader', '$raise', '$register', '$length', '$bytes', '$force_encoding', '$dup', '$bytesize', '$enum_for', '$each_byte', '$to_a', '$each_char', '$each_codepoint', '$coerce_to!', '$find', '$<', '$default_external=', '$-']); + Opal.add_stubs('require,+,[],clone,initialize,new,instance_eval,to_proc,each,const_set,tr,==,default_external,attr_accessor,singleton_class,attr_reader,raise,register,length,bytes,force_encoding,dup,bytesize,enum_for,each_byte,to_a,each_char,each_codepoint,coerce_to!,find,<,default_external=,-'); self.$require("corelib/string"); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Encoding'); - var $nesting = [self].concat($parent_nesting), $Encoding_register$1, $Encoding_find$3, $Encoding_initialize$4, $Encoding_ascii_compatible$ques$5, $Encoding_dummy$ques$6, $Encoding_binary$ques$7, $Encoding_to_s$8, $Encoding_inspect$9, $Encoding_charsize$10, $Encoding_each_char$11, $Encoding_each_byte$12, $Encoding_bytesize$13; + var $proto = self.$$prototype; - self.$$prototype.ascii = self.$$prototype.dummy = self.$$prototype.name = nil; + $proto.ascii = $proto.dummy = $proto.name = nil; - Opal.defs(self, '$register', $Encoding_register$1 = function $$register(name, options) { - var $iter = $Encoding_register$1.$$p, block = $iter || nil, $$2, self = this, names = nil, $ret_or_1 = nil, ascii = nil, $ret_or_2 = nil, dummy = nil, $ret_or_3 = nil, encoding = nil, register = nil; + $defs(self, '$register', function $$register(name, options) { + var block = $$register.$$p || nil, self = this, names = nil, $ret_or_1 = nil, ascii = nil, dummy = nil, encoding = nil, register = nil; - if ($iter) $Encoding_register$1.$$p = null; + delete $$register.$$p; + ; - if ($iter) $Encoding_register$1.$$p = null;; - - if (options == null) { - options = $hash2([], {}); - }; - names = $rb_plus([name], (function() {if ($truthy(($ret_or_1 = options['$[]']("aliases")))) { - return $ret_or_1 - } else { - return [] - }; return nil; })()); - ascii = (function() {if ($truthy(($ret_or_2 = options['$[]']("ascii")))) { - return $ret_or_2 - } else { - return false - }; return nil; })(); - dummy = (function() {if ($truthy(($ret_or_3 = options['$[]']("dummy")))) { - return $ret_or_3 - } else { - return false - }; return nil; })(); + if (options == null) options = $hash2([], {});; + names = $rb_plus([name], ($truthy(($ret_or_1 = options['$[]']("aliases"))) ? ($ret_or_1) : ([]))); + ascii = ($truthy(($ret_or_1 = options['$[]']("ascii"))) && ($ret_or_1)); + dummy = ($truthy(($ret_or_1 = options['$[]']("dummy"))) && ($ret_or_1)); if ($truthy(options['$[]']("inherits"))) { encoding = options['$[]']("inherits").$clone(); @@ -20331,30 +20379,30 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { encoding = self.$new(name, names, ascii, dummy) }; if ((block !== nil)) { - $send(encoding, 'instance_eval', [], block.$to_proc())}; + $send(encoding, 'instance_eval', [], block.$to_proc()) + }; register = Opal.encodings; - return $send(names, 'each', [], ($$2 = function(encoding_name){var self = $$2.$$s == null ? this : $$2.$$s; + return $send(names, 'each', [], function $$1(encoding_name){var self = $$1.$$s == null ? this : $$1.$$s; - if (encoding_name == null) { - encoding_name = nil; - }; + if (encoding_name == null) encoding_name = nil;; self.$const_set(encoding_name.$tr("-", "_"), encoding); - return register[encoding_name] = encoding;}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }, $Encoding_register$1.$$arity = -2); - Opal.defs(self, '$find', $Encoding_find$3 = function $$find(name) { + return register[encoding_name] = encoding;}, {$$arity: 1, $$s: self}); + }, -2); + $defs(self, '$find', function $$find(name) { var self = this; - if (name['$==']("default_external")) { - return self.$default_external()}; + if ($eqeq(name, "default_external")) { + return self.$default_external() + }; return Opal.find_encoding(name);; - }, $Encoding_find$3.$$arity = 1); + }, 1); self.$singleton_class().$attr_accessor("default_external"); self.$attr_reader("name", "names"); - Opal.def(self, '$initialize', $Encoding_initialize$4 = function $$initialize(name, names, ascii, dummy) { + $def(self, '$initialize', function $$initialize(name, names, ascii, dummy) { var self = this; @@ -20362,45 +20410,39 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { self.names = names; self.ascii = ascii; return (self.dummy = dummy); - }, $Encoding_initialize$4.$$arity = 4); + }, 4); - Opal.def(self, '$ascii_compatible?', $Encoding_ascii_compatible$ques$5 = function() { + $def(self, '$ascii_compatible?', function $Encoding_ascii_compatible$ques$2() { var self = this; return self.ascii - }, $Encoding_ascii_compatible$ques$5.$$arity = 0); + }, 0); - Opal.def(self, '$dummy?', $Encoding_dummy$ques$6 = function() { + $def(self, '$dummy?', function $Encoding_dummy$ques$3() { var self = this; return self.dummy - }, $Encoding_dummy$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$binary?', $Encoding_binary$ques$7 = function() { - var self = this; - + $def(self, '$binary?', function $Encoding_binary$ques$4() { + return false - }, $Encoding_binary$ques$7.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Encoding_to_s$8 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return self.name - }, $Encoding_to_s$8.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $Encoding_inspect$9 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "#" - }, $Encoding_inspect$9.$$arity = 0); + return "#" + }, 0); - Opal.def(self, '$charsize', $Encoding_charsize$10 = function $$charsize(string) { - var self = this; - + $def(self, '$charsize', function $$charsize(string) { + var len = 0; for (var i = 0, length = string.length; i < length; i++) { @@ -20411,15 +20453,14 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { } return len; - }, $Encoding_charsize$10.$$arity = 1); + }, 1); - Opal.def(self, '$each_char', $Encoding_each_char$11 = function $$each_char(string) { - var $iter = $Encoding_each_char$11.$$p, block = $iter || nil, self = this; + $def(self, '$each_char', function $$each_char(string) { + var block = $$each_char.$$p || nil; - if ($iter) $Encoding_each_char$11.$$p = null; - + delete $$each_char.$$p; - if ($iter) $Encoding_each_char$11.$$p = null;; + ; var low_surrogate = ""; for (var i = 0, length = string.length; i < length; i++) { @@ -20439,53 +20480,42 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { Opal.yield1(block, chr); } ; - }, $Encoding_each_char$11.$$arity = 1); + }, 1); - Opal.def(self, '$each_byte', $Encoding_each_byte$12 = function $$each_byte($a) { - var $post_args, self = this; + $def(self, '$each_byte', function $$each_byte($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError')); - }, $Encoding_each_byte$12.$$arity = -1); + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return $Kernel.$raise($$$('NotImplementedError')); + }, -1); - Opal.def(self, '$bytesize', $Encoding_bytesize$13 = function $$bytesize($a) { - var $post_args, self = this; + $def(self, '$bytesize', function $$bytesize($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError')); - }, $Encoding_bytesize$13.$$arity = -1); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'EncodingError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'CompatibilityError'); - - var $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], $$($nesting, 'EncodingError'), $nesting); - })($nesting[0], null, $nesting); - $send($$($nesting, 'Encoding'), 'register', ["UTF-8", $hash2(["aliases", "ascii"], {"aliases": ["CP65001"], "ascii": true})], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s, $each_byte$15, $bytesize$16; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return $Kernel.$raise($$$('NotImplementedError')); + }, -1); + $klass('::', $$$('StandardError'), 'EncodingError'); + return ($klass('::', $$$('EncodingError'), 'CompatibilityError'), nil); + })('::', null); + $send($$$('Encoding'), 'register', ["UTF-8", $hash2(["aliases", "ascii"], {"aliases": ["CP65001"], "ascii": true})], function $$5(){var self = $$5.$$s == null ? this : $$5.$$s; - Opal.def(self, '$each_byte', $each_byte$15 = function $$each_byte(string) { - var $iter = $each_byte$15.$$p, block = $iter || nil, self = this; + $def(self, '$each_byte', function $$each_byte(string) { + var block = $$each_byte.$$p || nil; - if ($iter) $each_byte$15.$$p = null; - + delete $$each_byte.$$p; - if ($iter) $each_byte$15.$$p = null;; + ; // Taken from: https://github.com/feross/buffer/blob/f52dffd9df0445b93c0c9065c2f8f0f46b2c729a/index.js#L1954-L2032 var units = Infinity; @@ -20573,23 +20603,21 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { } } ; - }, $each_byte$15.$$arity = 1); - return (Opal.def(self, '$bytesize', $bytesize$16 = function $$bytesize(string) { - var self = this; - + }, 1); + return $def(self, '$bytesize', function $$bytesize(string) { + return string.$bytes().$length() - }, $bytesize$16.$$arity = 1), nil) && 'bytesize';}, $$14.$$s = self, $$14.$$arity = 0, $$14)); - $send($$($nesting, 'Encoding'), 'register', ["UTF-16LE"], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s, $each_byte$18, $bytesize$19; + }, 1);}, {$$arity: 0, $$s: self}); + $send($$$('Encoding'), 'register', ["UTF-16LE"], function $$6(){var self = $$6.$$s == null ? this : $$6.$$s; - Opal.def(self, '$each_byte', $each_byte$18 = function $$each_byte(string) { - var $iter = $each_byte$18.$$p, block = $iter || nil, self = this; + $def(self, '$each_byte', function $$each_byte(string) { + var block = $$each_byte.$$p || nil; - if ($iter) $each_byte$18.$$p = null; + delete $$each_byte.$$p; - - if ($iter) $each_byte$18.$$p = null;; + ; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); @@ -20598,21 +20626,19 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { Opal.yield1(block, code >> 8); } ; - }, $each_byte$18.$$arity = 1); - return (Opal.def(self, '$bytesize', $bytesize$19 = function $$bytesize(string) { - var self = this; - + }, 1); + return $def(self, '$bytesize', function $$bytesize(string) { + return string.length * 2; - }, $bytesize$19.$$arity = 1), nil) && 'bytesize';}, $$17.$$s = self, $$17.$$arity = 0, $$17)); - $send($$($nesting, 'Encoding'), 'register', ["UTF-16BE", $hash2(["inherits"], {"inherits": $$$($$($nesting, 'Encoding'), 'UTF_16LE')})], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s, $each_byte$21; + }, 1);}, {$$arity: 0, $$s: self}); + $send($$$('Encoding'), 'register', ["UTF-16BE", $hash2(["inherits"], {"inherits": $$$($$$('Encoding'), 'UTF_16LE')})], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s; - return (Opal.def(self, '$each_byte', $each_byte$21 = function $$each_byte(string) { - var $iter = $each_byte$21.$$p, block = $iter || nil, self = this; + return $def(self, '$each_byte', function $$each_byte(string) { + var block = $$each_byte.$$p || nil; - if ($iter) $each_byte$21.$$p = null; - + delete $$each_byte.$$p; - if ($iter) $each_byte$21.$$p = null;; + ; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); @@ -20621,18 +20647,17 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { Opal.yield1(block, code & 0xff); } ; - }, $each_byte$21.$$arity = 1), nil) && 'each_byte'}, $$20.$$s = self, $$20.$$arity = 0, $$20)); - $send($$($nesting, 'Encoding'), 'register', ["UTF-32LE"], ($$22 = function(){var self = $$22.$$s == null ? this : $$22.$$s, $each_byte$23, $bytesize$24; + }, 1)}, {$$arity: 0, $$s: self}); + $send($$$('Encoding'), 'register', ["UTF-32LE"], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; - Opal.def(self, '$each_byte', $each_byte$23 = function $$each_byte(string) { - var $iter = $each_byte$23.$$p, block = $iter || nil, self = this; + $def(self, '$each_byte', function $$each_byte(string) { + var block = $$each_byte.$$p || nil; - if ($iter) $each_byte$23.$$p = null; - + delete $$each_byte.$$p; - if ($iter) $each_byte$23.$$p = null;; + ; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); @@ -20643,21 +20668,19 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { Opal.yield1(block, 0); } ; - }, $each_byte$23.$$arity = 1); - return (Opal.def(self, '$bytesize', $bytesize$24 = function $$bytesize(string) { - var self = this; - + }, 1); + return $def(self, '$bytesize', function $$bytesize(string) { + return string.length * 4; - }, $bytesize$24.$$arity = 1), nil) && 'bytesize';}, $$22.$$s = self, $$22.$$arity = 0, $$22)); - $send($$($nesting, 'Encoding'), 'register', ["UTF-32BE", $hash2(["inherits"], {"inherits": $$$($$($nesting, 'Encoding'), 'UTF_32LE')})], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s, $each_byte$26; + }, 1);}, {$$arity: 0, $$s: self}); + $send($$$('Encoding'), 'register', ["UTF-32BE", $hash2(["inherits"], {"inherits": $$$($$$('Encoding'), 'UTF_32LE')})], function $$9(){var self = $$9.$$s == null ? this : $$9.$$s; - return (Opal.def(self, '$each_byte', $each_byte$26 = function $$each_byte(string) { - var $iter = $each_byte$26.$$p, block = $iter || nil, self = this; + return $def(self, '$each_byte', function $$each_byte(string) { + var block = $$each_byte.$$p || nil; - if ($iter) $each_byte$26.$$p = null; + delete $$each_byte.$$p; - - if ($iter) $each_byte$26.$$p = null;; + ; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); @@ -20668,18 +20691,17 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { Opal.yield1(block, code & 0xff); } ; - }, $each_byte$26.$$arity = 1), nil) && 'each_byte'}, $$25.$$s = self, $$25.$$arity = 0, $$25)); - $send($$($nesting, 'Encoding'), 'register', ["ASCII-8BIT", $hash2(["aliases", "ascii"], {"aliases": ["BINARY"], "ascii": true})], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s, $each_char$28, $charsize$29, $each_byte$30, $bytesize$31, $binary$ques$32; + }, 1)}, {$$arity: 0, $$s: self}); + $send($$$('Encoding'), 'register', ["ASCII-8BIT", $hash2(["aliases", "ascii"], {"aliases": ["BINARY"], "ascii": true})], function $$10(){var self = $$10.$$s == null ? this : $$10.$$s; - Opal.def(self, '$each_char', $each_char$28 = function $$each_char(string) { - var $iter = $each_char$28.$$p, block = $iter || nil, self = this; + $def(self, '$each_char', function $$each_char(string) { + var block = $$each_char.$$p || nil; - if ($iter) $each_char$28.$$p = null; + delete $$each_char.$$p; - - if ($iter) $each_char$28.$$p = null;; + ; for (var i = 0, length = string.length; i < length; i++) { var chr = new String(string.charAt(i)); @@ -20687,85 +20709,79 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { Opal.yield1(block, chr); } ; - }, $each_char$28.$$arity = 1); + }, 1); - Opal.def(self, '$charsize', $charsize$29 = function $$charsize(string) { - var self = this; - + $def(self, '$charsize', function $$charsize(string) { + return string.length; - }, $charsize$29.$$arity = 1); + }, 1); - Opal.def(self, '$each_byte', $each_byte$30 = function $$each_byte(string) { - var $iter = $each_byte$30.$$p, block = $iter || nil, self = this; + $def(self, '$each_byte', function $$each_byte(string) { + var block = $$each_byte.$$p || nil; - if ($iter) $each_byte$30.$$p = null; - + delete $$each_byte.$$p; - if ($iter) $each_byte$30.$$p = null;; + ; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); Opal.yield1(block, code & 0xff); } ; - }, $each_byte$30.$$arity = 1); + }, 1); - Opal.def(self, '$bytesize', $bytesize$31 = function $$bytesize(string) { - var self = this; - + $def(self, '$bytesize', function $$bytesize(string) { + return string.length; - }, $bytesize$31.$$arity = 1); - return (Opal.def(self, '$binary?', $binary$ques$32 = function() { - var self = this; - + }, 1); + return $def(self, '$binary?', function $binary$ques$11() { + return true - }, $binary$ques$32.$$arity = 0), nil) && 'binary?';}, $$27.$$s = self, $$27.$$arity = 0, $$27)); - $$($nesting, 'Encoding').$register("ISO-8859-1", $hash2(["aliases", "ascii", "inherits"], {"aliases": ["ISO8859-1"], "ascii": true, "inherits": $$$($$($nesting, 'Encoding'), 'ASCII_8BIT')})); - $$($nesting, 'Encoding').$register("US-ASCII", $hash2(["aliases", "ascii", "inherits"], {"aliases": ["ASCII"], "ascii": true, "inherits": $$$($$($nesting, 'Encoding'), 'ASCII_8BIT')})); - (function($base, $super, $parent_nesting) { + }, 0);}, {$$arity: 0, $$s: self}); + $$$('Encoding').$register("ISO-8859-1", $hash2(["aliases", "ascii", "inherits"], {"aliases": ["ISO8859-1"], "ascii": true, "inherits": $$$($$$('Encoding'), 'ASCII_8BIT')})); + $$$('Encoding').$register("US-ASCII", $hash2(["aliases", "ascii", "inherits"], {"aliases": ["ASCII"], "ascii": true, "inherits": $$$($$$('Encoding'), 'ASCII_8BIT')})); + (function($base, $super) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_b$33, $String_bytesize$34, $String_each_byte$35, $String_bytes$37, $String_each_char$38, $String_chars$40, $String_each_codepoint$41, $String_codepoints$42, $String_encode$43, $String_force_encoding$44, $String_getbyte$45, $String_initialize_copy$46, $String_length$47, $String_valid_encoding$ques$48; + var $proto = self.$$prototype; - self.$$prototype.internal_encoding = self.$$prototype.bytes = self.$$prototype.encoding = nil; + $proto.internal_encoding = $proto.bytes = $proto.encoding = nil; self.$attr_reader("encoding"); self.$attr_reader("internal_encoding"); - Opal.defineProperty(String.prototype, 'bytes', nil); - Opal.defineProperty(String.prototype, 'encoding', $$$($$($nesting, 'Encoding'), 'UTF_8')); - Opal.defineProperty(String.prototype, 'internal_encoding', $$$($$($nesting, 'Encoding'), 'UTF_8')); + Opal.prop(String.prototype, 'bytes', nil); + Opal.prop(String.prototype, 'encoding', $$$($$$('Encoding'), 'UTF_8')); + Opal.prop(String.prototype, 'internal_encoding', $$$($$$('Encoding'), 'UTF_8')); - Opal.def(self, '$b', $String_b$33 = function $$b() { + $def(self, '$b', function $$b() { var self = this; return self.$dup().$force_encoding("binary") - }, $String_b$33.$$arity = 0); + }, 0); - Opal.def(self, '$bytesize', $String_bytesize$34 = function $$bytesize() { + $def(self, '$bytesize', function $$bytesize() { var self = this; return self.internal_encoding.$bytesize(self) - }, $String_bytesize$34.$$arity = 0); + }, 0); - Opal.def(self, '$each_byte', $String_each_byte$35 = function $$each_byte() { - var $iter = $String_each_byte$35.$$p, block = $iter || nil, $$36, self = this; + $def(self, '$each_byte', function $$each_byte() { + var block = $$each_byte.$$p || nil, self = this; - if ($iter) $String_each_byte$35.$$p = null; + delete $$each_byte.$$p; - - if ($iter) $String_each_byte$35.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_byte"], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each_byte"], function $$12(){var self = $$12.$$s == null ? this : $$12.$$s; - return self.$bytesize()}, $$36.$$s = self, $$36.$$arity = 0, $$36)) + return self.$bytesize()}, {$$arity: 0, $$s: self}) }; $send(self.internal_encoding, 'each_byte', [self], block.$to_proc()); return self; - }, $String_each_byte$35.$$arity = 0); + }, 0); - Opal.def(self, '$bytes', $String_bytes$37 = function $$bytes() { - var self = this, $ret_or_4 = nil; + $def(self, '$bytes', function $$bytes() { + var self = this, $ret_or_1 = nil; @@ -20773,54 +20789,44 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { return (new String(self)).$each_byte().$to_a(); } ; - self.bytes = (function() {if ($truthy(($ret_or_4 = self.bytes))) { - return $ret_or_4 - } else { - return self.$each_byte().$to_a() - }; return nil; })(); + self.bytes = ($truthy(($ret_or_1 = self.bytes)) ? ($ret_or_1) : (self.$each_byte().$to_a())); return self.bytes.$dup(); - }, $String_bytes$37.$$arity = 0); + }, 0); - Opal.def(self, '$each_char', $String_each_char$38 = function $$each_char() { - var $iter = $String_each_char$38.$$p, block = $iter || nil, $$39, self = this; + $def(self, '$each_char', function $$each_char() { + var block = $$each_char.$$p || nil, self = this; - if ($iter) $String_each_char$38.$$p = null; + delete $$each_char.$$p; - - if ($iter) $String_each_char$38.$$p = null;; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_char"], ($$39 = function(){var self = $$39.$$s == null ? this : $$39.$$s; + ; + if (!(block !== nil)) { + return $send(self, 'enum_for', ["each_char"], function $$13(){var self = $$13.$$s == null ? this : $$13.$$s; - return self.$length()}, $$39.$$s = self, $$39.$$arity = 0, $$39)) + return self.$length()}, {$$arity: 0, $$s: self}) }; $send(self.encoding, 'each_char', [self], block.$to_proc()); return self; - }, $String_each_char$38.$$arity = 0); + }, 0); - Opal.def(self, '$chars', $String_chars$40 = function $$chars() { - var $iter = $String_chars$40.$$p, block = $iter || nil, self = this; + $def(self, '$chars', function $$chars() { + var block = $$chars.$$p || nil, self = this; - if ($iter) $String_chars$40.$$p = null; + delete $$chars.$$p; - - if ($iter) $String_chars$40.$$p = null;; - if ($truthy(block)) { - } else { + ; + if (!$truthy(block)) { return self.$each_char().$to_a() }; return $send(self, 'each_char', [], block.$to_proc()); - }, $String_chars$40.$$arity = 0); + }, 0); - Opal.def(self, '$each_codepoint', $String_each_codepoint$41 = function $$each_codepoint() { - var $iter = $String_each_codepoint$41.$$p, block = $iter || nil, self = this; + $def(self, '$each_codepoint', function $$each_codepoint() { + var block = $$each_codepoint.$$p || nil, self = this; - if ($iter) $String_each_codepoint$41.$$p = null; + delete $$each_codepoint.$$p; - - if ($iter) $String_each_codepoint$41.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("each_codepoint") }; @@ -20829,27 +20835,27 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { } ; return self; - }, $String_each_codepoint$41.$$arity = 0); + }, 0); - Opal.def(self, '$codepoints', $String_codepoints$42 = function $$codepoints() { - var $iter = $String_codepoints$42.$$p, block = $iter || nil, self = this; + $def(self, '$codepoints', function $$codepoints() { + var block = $$codepoints.$$p || nil, self = this; - if ($iter) $String_codepoints$42.$$p = null; + delete $$codepoints.$$p; - - if ($iter) $String_codepoints$42.$$p = null;; + ; if ((block !== nil)) { - return $send(self, 'each_codepoint', [], block.$to_proc())}; + return $send(self, 'each_codepoint', [], block.$to_proc()) + }; return self.$each_codepoint().$to_a(); - }, $String_codepoints$42.$$arity = 0); + }, 0); - Opal.def(self, '$encode', $String_encode$43 = function $$encode(encoding) { + $def(self, '$encode', function $$encode(encoding) { var self = this; return Opal.enc(self, encoding); - }, $String_encode$43.$$arity = 1); + }, 1); - Opal.def(self, '$force_encoding', $String_force_encoding$44 = function $$force_encoding(encoding) { + $def(self, '$force_encoding', function $$force_encoding(encoding) { var self = this; @@ -20857,8 +20863,8 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { if (encoding === str.encoding) { return str; } - encoding = $$($nesting, 'Opal')['$coerce_to!'](encoding, $$($nesting, 'String'), "to_s"); - encoding = $$($nesting, 'Encoding').$find(encoding); + encoding = $Opal['$coerce_to!'](encoding, $$$('String'), "to_s"); + encoding = $$$('Encoding').$find(encoding); if (encoding === str.encoding) { return str; } @@ -20866,69 +20872,61 @@ Opal.modules["corelib/string/encoding"] = function(Opal) { return str; - }, $String_force_encoding$44.$$arity = 1); + }, 1); - Opal.def(self, '$getbyte', $String_getbyte$45 = function $$getbyte(idx) { + $def(self, '$getbyte', function $$getbyte(idx) { var self = this, string_bytes = nil; string_bytes = self.$bytes(); - idx = $$($nesting, 'Opal')['$coerce_to!'](idx, $$($nesting, 'Integer'), "to_int"); + idx = $Opal['$coerce_to!'](idx, $$$('Integer'), "to_int"); if ($truthy($rb_lt(string_bytes.$length(), idx))) { - return nil}; + return nil + }; return string_bytes['$[]'](idx); - }, $String_getbyte$45.$$arity = 1); + }, 1); - Opal.def(self, '$initialize_copy', $String_initialize_copy$46 = function $$initialize_copy(other) { - var self = this; - - return "" + "\n" + " self.encoding = other.encoding;\n" + " self.internal_encoding = other.internal_encoding;\n" + " " - }, $String_initialize_copy$46.$$arity = 1); + $def(self, '$initialize_copy', function $$initialize_copy(other) { + + return "\n" + " self.encoding = other.encoding;\n" + " self.internal_encoding = other.internal_encoding;\n" + " " + }, 1); - Opal.def(self, '$length', $String_length$47 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self.length; - }, $String_length$47.$$arity = 0); + }, 0); $alias(self, "size", "length"); - return (Opal.def(self, '$valid_encoding?', $String_valid_encoding$ques$48 = function() { - var self = this; - + return $def(self, '$valid_encoding?', function $String_valid_encoding$ques$14() { + return true - }, $String_valid_encoding$ques$48.$$arity = 0), nil) && 'valid_encoding?'; - })($nesting[0], null, $nesting); + }, 0); + })('::', null); - $writer = [$$$($$($nesting, 'Encoding'), 'UTF_8')]; - $send($$($nesting, 'Encoding'), 'default_external=', Opal.to_a($writer)); + $writer = [$$$($$('Encoding'), 'UTF_8')]; + $send($$$('Encoding'), 'default_external=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/math"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $type_error = Opal.type_error, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["corelib/math"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $type_error = Opal.type_error, $module = Opal.module, $const_set = Opal.const_set, $Class = Opal.Class, $Kernel = Opal.Kernel, $defs = Opal.defs, $truthy = Opal.truthy, $send = Opal.send, $def = Opal.def, $rb_minus = Opal.rb_minus, $eqeqeq = Opal.eqeqeq, $rb_divide = Opal.rb_divide; - Opal.add_stubs(['$new', '$raise', '$Float', '$Integer', '$module_function', '$checked', '$float!', '$===', '$gamma', '$-', '$integer!', '$/', '$infinite?']); + Opal.add_stubs('new,raise,Float,Integer,module_function,each,define_method,checked,float!,===,gamma,-,integer!,/,infinite?'); return (function($base, $parent_nesting) { var self = $module($base, 'Math'); - var $nesting = [self].concat($parent_nesting), $Math_checked$1, $Math_float$excl$2, $Math_integer$excl$3, $Math_acos$4, $Math_acosh$5, $Math_asin$6, $Math_asinh$7, $Math_atan$8, $Math_atan2$9, $Math_atanh$10, $Math_cbrt$11, $Math_cos$12, $Math_cosh$13, $Math_erf$14, $Math_erfc$15, $Math_exp$16, $Math_frexp$17, $Math_gamma$18, $Math_hypot$19, $Math_ldexp$20, $Math_lgamma$21, $Math_log$22, $Math_log10$23, $Math_log2$24, $Math_sin$25, $Math_sinh$26, $Math_sqrt$27, $Math_tan$28, $Math_tanh$29; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.const_set($nesting[0], 'E', Math.E); - Opal.const_set($nesting[0], 'PI', Math.PI); - Opal.const_set($nesting[0], 'DomainError', $$($nesting, 'Class').$new($$($nesting, 'StandardError'))); - Opal.defs(self, '$checked', $Math_checked$1 = function $$checked(method, $a) { - var $post_args, args, self = this; + $const_set(self, 'E', Math.E); + $const_set(self, 'PI', Math.PI); + $const_set(self, 'DomainError', $Class.$new($$$('StandardError'))); + $defs(self, '$checked', function $$checked(method, $a) { + var $post_args, args; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; @@ -20939,181 +20937,40 @@ Opal.modules["corelib/math"] = function(Opal) { var result = Math[method].apply(null, args); if (isNaN(result)) { - self.$raise($$($nesting, 'DomainError'), "" + "Numerical argument is out of domain - \"" + (method) + "\""); + $Kernel.$raise($$('DomainError'), "Numerical argument is out of domain - \"" + (method) + "\""); } return result; ; - }, $Math_checked$1.$$arity = -2); - Opal.defs(self, '$float!', $Math_float$excl$2 = function(value) { - var self = this; - + }, -2); + $defs(self, '$float!', function $Math_float$excl$1(value) { + try { - return self.$Float(value) + return $Kernel.$Float(value) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$$('ArgumentError')])) { try { - return self.$raise($type_error(value, $$($nesting, 'Float'))) + return $Kernel.$raise($type_error(value, $$$('Float'))) } finally { Opal.pop_exception(); } } else { throw $err; } } - }, $Math_float$excl$2.$$arity = 1); - Opal.defs(self, '$integer!', $Math_integer$excl$3 = function(value) { - var self = this; - + }, 1); + $defs(self, '$integer!', function $Math_integer$excl$2(value) { + try { - return self.$Integer(value) + return $Kernel.$Integer(value) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$$('ArgumentError')])) { try { - return self.$raise($type_error(value, $$($nesting, 'Integer'))) + return $Kernel.$raise($type_error(value, $$$('Integer'))) } finally { Opal.pop_exception(); } } else { throw $err; } } - }, $Math_integer$excl$3.$$arity = 1); + }, 1); self.$module_function(); - - Opal.def(self, '$acos', $Math_acos$4 = function $$acos(x) { - var self = this; - - return $$($nesting, 'Math').$checked("acos", $$($nesting, 'Math')['$float!'](x)) - }, $Math_acos$4.$$arity = 1); - if ($truthy((typeof(Math.acosh) !== "undefined"))) { - } else { - - Math.acosh = function(x) { - return Math.log(x + Math.sqrt(x * x - 1)); - } - - }; - - Opal.def(self, '$acosh', $Math_acosh$5 = function $$acosh(x) { - var self = this; - - return $$($nesting, 'Math').$checked("acosh", $$($nesting, 'Math')['$float!'](x)) - }, $Math_acosh$5.$$arity = 1); - - Opal.def(self, '$asin', $Math_asin$6 = function $$asin(x) { - var self = this; - - return $$($nesting, 'Math').$checked("asin", $$($nesting, 'Math')['$float!'](x)) - }, $Math_asin$6.$$arity = 1); - if ($truthy((typeof(Math.asinh) !== "undefined"))) { - } else { - - Math.asinh = function(x) { - return Math.log(x + Math.sqrt(x * x + 1)) - } - - }; - - Opal.def(self, '$asinh', $Math_asinh$7 = function $$asinh(x) { - var self = this; - - return $$($nesting, 'Math').$checked("asinh", $$($nesting, 'Math')['$float!'](x)) - }, $Math_asinh$7.$$arity = 1); - - Opal.def(self, '$atan', $Math_atan$8 = function $$atan(x) { - var self = this; - - return $$($nesting, 'Math').$checked("atan", $$($nesting, 'Math')['$float!'](x)) - }, $Math_atan$8.$$arity = 1); - - Opal.def(self, '$atan2', $Math_atan2$9 = function $$atan2(y, x) { - var self = this; - - return $$($nesting, 'Math').$checked("atan2", $$($nesting, 'Math')['$float!'](y), $$($nesting, 'Math')['$float!'](x)) - }, $Math_atan2$9.$$arity = 2); - if ($truthy((typeof(Math.atanh) !== "undefined"))) { - } else { - - Math.atanh = function(x) { - return 0.5 * Math.log((1 + x) / (1 - x)); - } - - }; - - Opal.def(self, '$atanh', $Math_atanh$10 = function $$atanh(x) { - var self = this; - - return $$($nesting, 'Math').$checked("atanh", $$($nesting, 'Math')['$float!'](x)) - }, $Math_atanh$10.$$arity = 1); - if ($truthy((typeof(Math.cbrt) !== "undefined"))) { - } else { - - Math.cbrt = function(x) { - if (x == 0) { - return 0; - } - - if (x < 0) { - return -Math.cbrt(-x); - } - - var r = x, - ex = 0; - - while (r < 0.125) { - r *= 8; - ex--; - } - - while (r > 1.0) { - r *= 0.125; - ex++; - } - - r = (-0.46946116 * r + 1.072302) * r + 0.3812513; - - while (ex < 0) { - r *= 0.5; - ex++; - } - - while (ex > 0) { - r *= 2; - ex--; - } - - r = (2.0 / 3.0) * r + (1.0 / 3.0) * x / (r * r); - r = (2.0 / 3.0) * r + (1.0 / 3.0) * x / (r * r); - r = (2.0 / 3.0) * r + (1.0 / 3.0) * x / (r * r); - r = (2.0 / 3.0) * r + (1.0 / 3.0) * x / (r * r); - - return r; - } - - }; - - Opal.def(self, '$cbrt', $Math_cbrt$11 = function $$cbrt(x) { - var self = this; - - return $$($nesting, 'Math').$checked("cbrt", $$($nesting, 'Math')['$float!'](x)) - }, $Math_cbrt$11.$$arity = 1); - - Opal.def(self, '$cos', $Math_cos$12 = function $$cos(x) { - var self = this; - - return $$($nesting, 'Math').$checked("cos", $$($nesting, 'Math')['$float!'](x)) - }, $Math_cos$12.$$arity = 1); - if ($truthy((typeof(Math.cosh) !== "undefined"))) { - } else { - - Math.cosh = function(x) { - return (Math.exp(x) + Math.exp(-x)) / 2; - } - - }; - - Opal.def(self, '$cosh', $Math_cosh$13 = function $$cosh(x) { - var self = this; - - return $$($nesting, 'Math').$checked("cosh", $$($nesting, 'Math')['$float!'](x)) - }, $Math_cosh$13.$$arity = 1); - if ($truthy((typeof(Math.erf) !== "undefined"))) { - } else { + if (!$truthy((typeof(Math.erf) !== "undefined"))) { - Opal.defineProperty(Math, 'erf', function(x) { + Opal.prop(Math, 'erf', function(x) { var A1 = 0.254829592, A2 = -0.284496736, A3 = 1.421413741, @@ -21136,16 +20993,9 @@ Opal.modules["corelib/math"] = function(Opal) { }); }; - - Opal.def(self, '$erf', $Math_erf$14 = function $$erf(x) { - var self = this; - - return $$($nesting, 'Math').$checked("erf", $$($nesting, 'Math')['$float!'](x)) - }, $Math_erf$14.$$arity = 1); - if ($truthy((typeof(Math.erfc) !== "undefined"))) { - } else { + if (!$truthy((typeof(Math.erfc) !== "undefined"))) { - Opal.defineProperty(Math, 'erfc', function(x) { + Opal.prop(Math, 'erfc', function(x) { var z = Math.abs(x), t = 1.0 / (0.5 * z + 1.0); @@ -21171,24 +21021,31 @@ Opal.modules["corelib/math"] = function(Opal) { }); }; - - Opal.def(self, '$erfc', $Math_erfc$15 = function $$erfc(x) { - var self = this; + $send(["acos", "acosh", "asin", "asinh", "atan", "atanh", "cbrt", "cos", "cosh", "erf", "erfc", "exp", "sin", "sinh", "sqrt", "tanh"], 'each', [], function $Math$3(method){var self = $Math$3.$$s == null ? this : $Math$3.$$s; - return $$($nesting, 'Math').$checked("erfc", $$($nesting, 'Math')['$float!'](x)) - }, $Math_erfc$15.$$arity = 1); + + + if (method == null) method = nil;; + return $send(self, 'define_method', [method], function $$4(x){ + + + if (x == null) x = nil;; + return $$$('Math').$checked(method, $$$('Math')['$float!'](x));}, 1);}, {$$arity: 1, $$s: self}); - Opal.def(self, '$exp', $Math_exp$16 = function $$exp(x) { - var self = this; - - return $$($nesting, 'Math').$checked("exp", $$($nesting, 'Math')['$float!'](x)) - }, $Math_exp$16.$$arity = 1); + $def(self, '$atan2', function $$atan2(y, x) { + + return $$$('Math').$checked("atan2", $$$('Math')['$float!'](y), $$$('Math')['$float!'](x)) + }, 2); - Opal.def(self, '$frexp', $Math_frexp$17 = function $$frexp(x) { - var self = this; - + $def(self, '$hypot', function $$hypot(x, y) { + + return $$$('Math').$checked("hypot", $$$('Math')['$float!'](x), $$$('Math')['$float!'](y)) + }, 2); + + $def(self, '$frexp', function $$frexp(x) { + - x = $$($nesting, 'Math')['$float!'](x); + x = $$('Math')['$float!'](x); if (isNaN(x)) { return [NaN, 0]; @@ -21199,13 +21056,12 @@ Opal.modules["corelib/math"] = function(Opal) { return [frac, ex]; ; - }, $Math_frexp$17.$$arity = 1); + }, 1); - Opal.def(self, '$gamma', $Math_gamma$18 = function $$gamma(n) { - var self = this; - + $def(self, '$gamma', function $$gamma(n) { - n = $$($nesting, 'Math')['$float!'](n); + + n = $$('Math')['$float!'](n); var i, t, x, value, result, twoN, threeN, fourN, fiveN; @@ -21239,10 +21095,10 @@ Opal.modules["corelib/math"] = function(Opal) { } if (n === -1 || n === -Infinity) { - self.$raise($$($nesting, 'DomainError'), "Numerical argument is out of domain - \"gamma\""); + $Kernel.$raise($$('DomainError'), "Numerical argument is out of domain - \"gamma\""); } - if ($$($nesting, 'Integer')['$==='](n)) { + if ($$('Integer')['$==='](n)) { if (n <= 0) { return isFinite(n) ? Infinity : NaN; } @@ -21267,7 +21123,7 @@ Opal.modules["corelib/math"] = function(Opal) { } if (n < 0.5) { - return Math.PI / (Math.sin(Math.PI * n) * $$($nesting, 'Math').$gamma($rb_minus(1, n))); + return Math.PI / (Math.sin(Math.PI * n) * $$$('Math').$gamma($rb_minus(1, n))); } if (n >= 171.35) { @@ -21297,698 +21153,470 @@ Opal.modules["corelib/math"] = function(Opal) { return Math.sqrt(2 * Math.PI) * Math.pow(t, n + 0.5) * Math.exp(-t) * x; ; - }, $Math_gamma$18.$$arity = 1); - if ($truthy((typeof(Math.hypot) !== "undefined"))) { - } else { - - Math.hypot = function(x, y) { - return Math.sqrt(x * x + y * y) - } + }, 1); - }; - - Opal.def(self, '$hypot', $Math_hypot$19 = function $$hypot(x, y) { - var self = this; - - return $$($nesting, 'Math').$checked("hypot", $$($nesting, 'Math')['$float!'](x), $$($nesting, 'Math')['$float!'](y)) - }, $Math_hypot$19.$$arity = 2); - - Opal.def(self, '$ldexp', $Math_ldexp$20 = function $$ldexp(mantissa, exponent) { - var self = this; - + $def(self, '$ldexp', function $$ldexp(mantissa, exponent) { + - mantissa = $$($nesting, 'Math')['$float!'](mantissa); - exponent = $$($nesting, 'Math')['$integer!'](exponent); + mantissa = $$('Math')['$float!'](mantissa); + exponent = $$('Math')['$integer!'](exponent); if (isNaN(exponent)) { - self.$raise($$($nesting, 'RangeError'), "float NaN out of range of integer"); + $Kernel.$raise($$$('RangeError'), "float NaN out of range of integer"); } return mantissa * Math.pow(2, exponent); ; - }, $Math_ldexp$20.$$arity = 2); + }, 2); - Opal.def(self, '$lgamma', $Math_lgamma$21 = function $$lgamma(n) { - var self = this; - + $def(self, '$lgamma', function $$lgamma(n) { + if (n == -1) { return [Infinity, 1]; } else { - return [Math.log(Math.abs($$($nesting, 'Math').$gamma(n))), $$($nesting, 'Math').$gamma(n) < 0 ? -1 : 1]; + return [Math.log(Math.abs($$$('Math').$gamma(n))), $$$('Math').$gamma(n) < 0 ? -1 : 1]; } - }, $Math_lgamma$21.$$arity = 1); + }, 1); - Opal.def(self, '$log', $Math_log$22 = function $$log(x, base) { - var self = this; - + $def(self, '$log', function $$log(x, base) { + ; - if ($truthy($$($nesting, 'String')['$==='](x))) { - self.$raise($type_error(x, $$($nesting, 'Float')))}; + if ($eqeqeq($$$('String'), x)) { + $Kernel.$raise($type_error(x, $$$('Float'))) + }; if ($truthy(base == null)) { - return $$($nesting, 'Math').$checked("log", $$($nesting, 'Math')['$float!'](x)) + return $$$('Math').$checked("log", $$$('Math')['$float!'](x)) } else { - if ($truthy($$($nesting, 'String')['$==='](base))) { - self.$raise($type_error(base, $$($nesting, 'Float')))}; - return $rb_divide($$($nesting, 'Math').$checked("log", $$($nesting, 'Math')['$float!'](x)), $$($nesting, 'Math').$checked("log", $$($nesting, 'Math')['$float!'](base))); + if ($eqeqeq($$$('String'), base)) { + $Kernel.$raise($type_error(base, $$$('Float'))) + }; + return $rb_divide($$$('Math').$checked("log", $$$('Math')['$float!'](x)), $$$('Math').$checked("log", $$$('Math')['$float!'](base))); }; - }, $Math_log$22.$$arity = -2); - if ($truthy((typeof(Math.log10) !== "undefined"))) { - } else { - - Math.log10 = function(x) { - return Math.log(x) / Math.LN10; - } - - }; + }, -2); - Opal.def(self, '$log10', $Math_log10$23 = function $$log10(x) { - var self = this; - + $def(self, '$log10', function $$log10(x) { - if ($truthy($$($nesting, 'String')['$==='](x))) { - self.$raise($type_error(x, $$($nesting, 'Float')))}; - return $$($nesting, 'Math').$checked("log10", $$($nesting, 'Math')['$float!'](x)); - }, $Math_log10$23.$$arity = 1); - if ($truthy((typeof(Math.log2) !== "undefined"))) { - } else { - Math.log2 = function(x) { - return Math.log(x) / Math.LN2; - } - - }; + if ($eqeqeq($$$('String'), x)) { + $Kernel.$raise($type_error(x, $$$('Float'))) + }; + return $$$('Math').$checked("log10", $$$('Math')['$float!'](x)); + }, 1); - Opal.def(self, '$log2', $Math_log2$24 = function $$log2(x) { - var self = this; - + $def(self, '$log2', function $$log2(x) { - if ($truthy($$($nesting, 'String')['$==='](x))) { - self.$raise($type_error(x, $$($nesting, 'Float')))}; - return $$($nesting, 'Math').$checked("log2", $$($nesting, 'Math')['$float!'](x)); - }, $Math_log2$24.$$arity = 1); - - Opal.def(self, '$sin', $Math_sin$25 = function $$sin(x) { - var self = this; - - return $$($nesting, 'Math').$checked("sin", $$($nesting, 'Math')['$float!'](x)) - }, $Math_sin$25.$$arity = 1); - if ($truthy((typeof(Math.sinh) !== "undefined"))) { - } else { - Math.sinh = function(x) { - return (Math.exp(x) - Math.exp(-x)) / 2; - } - - }; - - Opal.def(self, '$sinh', $Math_sinh$26 = function $$sinh(x) { - var self = this; + if ($eqeqeq($$$('String'), x)) { + $Kernel.$raise($type_error(x, $$$('Float'))) + }; + return $$$('Math').$checked("log2", $$$('Math')['$float!'](x)); + }, 1); + return $def(self, '$tan', function $$tan(x) { + + + x = $$$('Math')['$float!'](x); + if ($truthy(x['$infinite?']())) { + return $$$($$$('Float'), 'NAN') + }; + return $$$('Math').$checked("tan", $$$('Math')['$float!'](x)); + }, 1); + })('::', $nesting) +}; - return $$($nesting, 'Math').$checked("sinh", $$($nesting, 'Math')['$float!'](x)) - }, $Math_sinh$26.$$arity = 1); - - Opal.def(self, '$sqrt', $Math_sqrt$27 = function $$sqrt(x) { - var self = this; +Opal.modules["corelib/complex/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $truthy = Opal.truthy, $def = Opal.def, $klass = Opal.klass; - return $$($nesting, 'Math').$checked("sqrt", $$($nesting, 'Math')['$float!'](x)) - }, $Math_sqrt$27.$$arity = 1); - - Opal.def(self, '$tan', $Math_tan$28 = function $$tan(x) { - var self = this; + Opal.add_stubs('new,from_string'); + + (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$Complex', function $$Complex(real, imag) { - x = $$($nesting, 'Math')['$float!'](x); - if ($truthy(x['$infinite?']())) { - return $$$($$($nesting, 'Float'), 'NAN')}; - return $$($nesting, 'Math').$checked("tan", $$($nesting, 'Math')['$float!'](x)); - }, $Math_tan$28.$$arity = 1); - if ($truthy((typeof(Math.tanh) !== "undefined"))) { - } else { - Math.tanh = function(x) { - if (x == Infinity) { - return 1; - } - else if (x == -Infinity) { - return -1; - } - else { - return (Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x)); - } - } - - }; - return (Opal.def(self, '$tanh', $Math_tanh$29 = function $$tanh(x) { + + if (imag == null) imag = nil;; + if ($truthy(imag)) { + return $$('Complex').$new(real, imag) + } else { + return $$('Complex').$new(real, 0) + }; + }, -2) + })('::', $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'String'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$to_c', function $$to_c() { var self = this; - return $$($nesting, 'Math').$checked("tanh", $$($nesting, 'Math')['$float!'](x)) - }, $Math_tanh$29.$$arity = 1), nil) && 'tanh'; - })($nesting[0], $nesting) + return $$('Complex').$from_string(self) + }, 0) + })('::', null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/complex"] = function(Opal) { - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $module = Opal.module; +Opal.modules["corelib/complex"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $defs = Opal.defs, $rb_times = Opal.rb_times, $def = Opal.def, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $rb_divide = Opal.rb_divide, $eqeq = Opal.eqeq, $to_ary = Opal.to_ary, $rb_gt = Opal.rb_gt, $neqeq = Opal.neqeq, $const_set = Opal.const_set, $alias = Opal.alias; - Opal.add_stubs(['$require', '$===', '$real?', '$raise', '$new', '$*', '$cos', '$sin', '$attr_reader', '$class', '$==', '$real', '$imag', '$Complex', '$-@', '$+', '$__coerced__', '$-', '$nan?', '$/', '$conj', '$abs2', '$quo', '$polar', '$exp', '$log', '$>', '$!=', '$divmod', '$**', '$hypot', '$atan2', '$lcm', '$denominator', '$finite?', '$infinite?', '$numerator', '$abs', '$arg', '$rationalize', '$to_f', '$to_i', '$to_r', '$inspect', '$positive?', '$zero?', '$Rational']); + Opal.add_stubs('require,real?,===,raise,new,*,cos,sin,attr_reader,class,==,real,imag,Complex,-@,+,__coerced__,-,nan?,/,conj,abs2,quo,polar,exp,log,>,!=,divmod,**,hypot,atan2,lcm,denominator,finite?,infinite?,numerator,abs,arg,rationalize,to_f,to_i,to_r,inspect,zero?,positive?,Rational'); self.$require("corelib/numeric"); - (function($base, $super, $parent_nesting) { + self.$require("corelib/complex/base"); + return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Complex'); - var $nesting = [self].concat($parent_nesting), $Complex_rect$1, $Complex_polar$2, $Complex_initialize$3, $Complex_coerce$4, $Complex_$eq_eq$5, $Complex_$minus$$6, $Complex_$plus$7, $Complex_$minus$8, $Complex_$$9, $Complex_$slash$10, $Complex_$$$11, $Complex_abs$12, $Complex_abs2$13, $Complex_angle$14, $Complex_conj$15, $Complex_denominator$16, $Complex_eql$ques$17, $Complex_fdiv$18, $Complex_finite$ques$19, $Complex_hash$20, $Complex_infinite$ques$21, $Complex_inspect$22, $Complex_numerator$23, $Complex_polar$24, $Complex_rationalize$25, $Complex_real$ques$26, $Complex_rect$27, $Complex_to_f$28, $Complex_to_i$29, $Complex_to_r$30, $Complex_to_s$31; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.real = self.$$prototype.imag = nil; + $proto.real = $proto.imag = nil; - Opal.defs(self, '$rect', $Complex_rect$1 = function $$rect(real, imag) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + $defs(self, '$rect', function $$rect(real, imag) { + var self = this; - if (imag == null) { - imag = 0; - }; - if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$($nesting, 'Numeric')['$==='](real)))) { - return real['$real?']() - } else { - return $ret_or_3 - }; return nil; })()))) { - return $$($nesting, 'Numeric')['$==='](imag) - } else { - return $ret_or_2 - }; return nil; })()))) { - return imag['$real?']() - } else { - return $ret_or_1 - }; return nil; })())) { - } else { - self.$raise($$($nesting, 'TypeError'), "not a real") + if (imag == null) imag = 0;; + if (!((($eqeqeq($$$('Numeric'), real) && ($truthy(real['$real?']()))) && ($eqeqeq($$$('Numeric'), imag))) && ($truthy(imag['$real?']())))) { + $Kernel.$raise($$$('TypeError'), "not a real") }; return self.$new(real, imag); - }, $Complex_rect$1.$$arity = -2); - (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - - return $alias(self, "rectangular", "rect") - })(Opal.get_singleton_class(self), $nesting); - Opal.defs(self, '$polar', $Complex_polar$2 = function $$polar(r, theta) { - var self = this, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; + }, -2); + $defs(self, '$polar', function $$polar(r, theta) { + var self = this; - if (theta == null) { - theta = 0; - }; - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = $$($nesting, 'Numeric')['$==='](r)))) { - return r['$real?']() - } else { - return $ret_or_6 - }; return nil; })()))) { - return $$($nesting, 'Numeric')['$==='](theta) - } else { - return $ret_or_5 - }; return nil; })()))) { - return theta['$real?']() - } else { - return $ret_or_4 - }; return nil; })())) { - } else { - self.$raise($$($nesting, 'TypeError'), "not a real") + if (theta == null) theta = 0;; + if (!((($eqeqeq($$$('Numeric'), r) && ($truthy(r['$real?']()))) && ($eqeqeq($$$('Numeric'), theta))) && ($truthy(theta['$real?']())))) { + $Kernel.$raise($$$('TypeError'), "not a real") }; - return self.$new($rb_times(r, $$($nesting, 'Math').$cos(theta)), $rb_times(r, $$($nesting, 'Math').$sin(theta))); - }, $Complex_polar$2.$$arity = -2); + return self.$new($rb_times(r, $$$('Math').$cos(theta)), $rb_times(r, $$$('Math').$sin(theta))); + }, -2); self.$attr_reader("real", "imag"); - Opal.def(self, '$initialize', $Complex_initialize$3 = function $$initialize(real, imag) { + $def(self, '$initialize', function $$initialize(real, imag) { var self = this; - if (imag == null) { - imag = 0; - }; + if (imag == null) imag = 0;; self.real = real; return (self.imag = imag); - }, $Complex_initialize$3.$$arity = -2); + }, -2); - Opal.def(self, '$coerce', $Complex_coerce$4 = function $$coerce(other) { - var self = this, $ret_or_7 = nil; + $def(self, '$coerce', function $$coerce(other) { + var self = this; - if ($truthy($$($nesting, 'Complex')['$==='](other))) { + if ($eqeqeq($$$('Complex'), other)) { return [other, self] - } else if ($truthy((function() {if ($truthy(($ret_or_7 = $$($nesting, 'Numeric')['$==='](other)))) { - return other['$real?']() - } else { - return $ret_or_7 - }; return nil; })())) { - return [$$($nesting, 'Complex').$new(other, 0), self] + } else if (($eqeqeq($$$('Numeric'), other) && ($truthy(other['$real?']())))) { + return [$$$('Complex').$new(other, 0), self] } else { - return self.$raise($$($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into Complex") + return $Kernel.$raise($$$('TypeError'), "" + (other.$class()) + " can't be coerced into Complex") } - }, $Complex_coerce$4.$$arity = 1); + }, 1); - Opal.def(self, '$==', $Complex_$eq_eq$5 = function(other) { - var self = this, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil; + $def(self, '$==', function $Complex_$eq_eq$1(other) { + var self = this, $ret_or_1 = nil; - if ($truthy($$($nesting, 'Complex')['$==='](other))) { - if ($truthy(($ret_or_8 = self.real['$=='](other.$real())))) { + if ($eqeqeq($$$('Complex'), other)) { + if ($truthy(($ret_or_1 = self.real['$=='](other.$real())))) { return self.imag['$=='](other.$imag()) } else { - return $ret_or_8 + return $ret_or_1 } - } else if ($truthy((function() {if ($truthy(($ret_or_9 = $$($nesting, 'Numeric')['$==='](other)))) { - return other['$real?']() - } else { - return $ret_or_9 - }; return nil; })())) { - if ($truthy(($ret_or_10 = self.real['$=='](other)))) { + } else if (($eqeqeq($$$('Numeric'), other) && ($truthy(other['$real?']())))) { + if ($truthy(($ret_or_1 = self.real['$=='](other)))) { return self.imag['$=='](0) } else { - return $ret_or_10 + return $ret_or_1 } } else { return other['$=='](self) } - }, $Complex_$eq_eq$5.$$arity = 1); + }, 1); - Opal.def(self, '$-@', $Complex_$minus$$6 = function() { + $def(self, '$-@', function $Complex_$minus$$2() { var self = this; - return self.$Complex(self.real['$-@'](), self.imag['$-@']()) - }, $Complex_$minus$$6.$$arity = 0); + return $Kernel.$Complex(self.real['$-@'](), self.imag['$-@']()) + }, 0); - Opal.def(self, '$+', $Complex_$plus$7 = function(other) { - var self = this, $ret_or_11 = nil; + $def(self, '$+', function $Complex_$plus$3(other) { + var self = this; - if ($truthy($$($nesting, 'Complex')['$==='](other))) { - return self.$Complex($rb_plus(self.real, other.$real()), $rb_plus(self.imag, other.$imag())) - } else if ($truthy((function() {if ($truthy(($ret_or_11 = $$($nesting, 'Numeric')['$==='](other)))) { - return other['$real?']() - } else { - return $ret_or_11 - }; return nil; })())) { - return self.$Complex($rb_plus(self.real, other), self.imag) + if ($eqeqeq($$$('Complex'), other)) { + return $Kernel.$Complex($rb_plus(self.real, other.$real()), $rb_plus(self.imag, other.$imag())) + } else if (($eqeqeq($$$('Numeric'), other) && ($truthy(other['$real?']())))) { + return $Kernel.$Complex($rb_plus(self.real, other), self.imag) } else { return self.$__coerced__("+", other) } - }, $Complex_$plus$7.$$arity = 1); + }, 1); - Opal.def(self, '$-', $Complex_$minus$8 = function(other) { - var self = this, $ret_or_12 = nil; + $def(self, '$-', function $Complex_$minus$4(other) { + var self = this; - if ($truthy($$($nesting, 'Complex')['$==='](other))) { - return self.$Complex($rb_minus(self.real, other.$real()), $rb_minus(self.imag, other.$imag())) - } else if ($truthy((function() {if ($truthy(($ret_or_12 = $$($nesting, 'Numeric')['$==='](other)))) { - return other['$real?']() - } else { - return $ret_or_12 - }; return nil; })())) { - return self.$Complex($rb_minus(self.real, other), self.imag) + if ($eqeqeq($$$('Complex'), other)) { + return $Kernel.$Complex($rb_minus(self.real, other.$real()), $rb_minus(self.imag, other.$imag())) + } else if (($eqeqeq($$$('Numeric'), other) && ($truthy(other['$real?']())))) { + return $Kernel.$Complex($rb_minus(self.real, other), self.imag) } else { return self.$__coerced__("-", other) } - }, $Complex_$minus$8.$$arity = 1); + }, 1); - Opal.def(self, '$*', $Complex_$$9 = function(other) { - var self = this, $ret_or_13 = nil; + $def(self, '$*', function $Complex_$$5(other) { + var self = this; - if ($truthy($$($nesting, 'Complex')['$==='](other))) { - return self.$Complex($rb_minus($rb_times(self.real, other.$real()), $rb_times(self.imag, other.$imag())), $rb_plus($rb_times(self.real, other.$imag()), $rb_times(self.imag, other.$real()))) - } else if ($truthy((function() {if ($truthy(($ret_or_13 = $$($nesting, 'Numeric')['$==='](other)))) { - return other['$real?']() - } else { - return $ret_or_13 - }; return nil; })())) { - return self.$Complex($rb_times(self.real, other), $rb_times(self.imag, other)) + if ($eqeqeq($$$('Complex'), other)) { + return $Kernel.$Complex($rb_minus($rb_times(self.real, other.$real()), $rb_times(self.imag, other.$imag())), $rb_plus($rb_times(self.real, other.$imag()), $rb_times(self.imag, other.$real()))) + } else if (($eqeqeq($$$('Numeric'), other) && ($truthy(other['$real?']())))) { + return $Kernel.$Complex($rb_times(self.real, other), $rb_times(self.imag, other)) } else { return self.$__coerced__("*", other) } - }, $Complex_$$9.$$arity = 1); + }, 1); - Opal.def(self, '$/', $Complex_$slash$10 = function(other) { - var self = this, $ret_or_14 = nil, $ret_or_15 = nil, $ret_or_16 = nil, $ret_or_17 = nil, $ret_or_18 = nil, $ret_or_19 = nil, $ret_or_20 = nil, $ret_or_21 = nil; + $def(self, '$/', function $Complex_$slash$6(other) { + var self = this; - if ($truthy($$($nesting, 'Complex')['$==='](other))) { - if ($truthy((function() {if ($truthy(($ret_or_14 = (function() {if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = $$($nesting, 'Number')['$==='](self.real)))) { - return self.real['$nan?']() - } else { - return $ret_or_17 - }; return nil; })()))) { - return $ret_or_16 - } else { - - if ($truthy(($ret_or_18 = $$($nesting, 'Number')['$==='](self.imag)))) { - return self.imag['$nan?']() - } else { - return $ret_or_18 - }; - }; return nil; })()))) { - return $ret_or_15 - } else { - - if ($truthy(($ret_or_19 = $$($nesting, 'Number')['$==='](other.$real())))) { - return other.$real()['$nan?']() - } else { - return $ret_or_19 - }; - }; return nil; })()))) { - return $ret_or_14 - } else { - - if ($truthy(($ret_or_20 = $$($nesting, 'Number')['$==='](other.$imag())))) { - return other.$imag()['$nan?']() - } else { - return $ret_or_20 - }; - }; return nil; })())) { - return $$($nesting, 'Complex').$new($$$($$($nesting, 'Float'), 'NAN'), $$$($$($nesting, 'Float'), 'NAN')) + if ($eqeqeq($$$('Complex'), other)) { + if ((((($eqeqeq($$$('Number'), self.real) && ($truthy(self.real['$nan?']()))) || (($eqeqeq($$$('Number'), self.imag) && ($truthy(self.imag['$nan?']()))))) || (($eqeqeq($$$('Number'), other.$real()) && ($truthy(other.$real()['$nan?']()))))) || (($eqeqeq($$$('Number'), other.$imag()) && ($truthy(other.$imag()['$nan?']())))))) { + return $$$('Complex').$new($$$($$$('Float'), 'NAN'), $$$($$$('Float'), 'NAN')) } else { return $rb_divide($rb_times(self, other.$conj()), other.$abs2()) } - } else if ($truthy((function() {if ($truthy(($ret_or_21 = $$($nesting, 'Numeric')['$==='](other)))) { - return other['$real?']() - } else { - return $ret_or_21 - }; return nil; })())) { - return self.$Complex(self.real.$quo(other), self.imag.$quo(other)) + } else if (($eqeqeq($$$('Numeric'), other) && ($truthy(other['$real?']())))) { + return $Kernel.$Complex(self.real.$quo(other), self.imag.$quo(other)) } else { return self.$__coerced__("/", other) } - }, $Complex_$slash$10.$$arity = 1); + }, 1); - Opal.def(self, '$**', $Complex_$$$11 = function(other) { - var $a, $b, $c, $d, self = this, r = nil, theta = nil, ore = nil, oim = nil, nr = nil, ntheta = nil, x = nil, z = nil, n = nil, div = nil, mod = nil, $ret_or_22 = nil; + $def(self, '$**', function $Complex_$$$7(other) { + var $a, $b, $c, $d, self = this, r = nil, theta = nil, ore = nil, oim = nil, nr = nil, ntheta = nil, x = nil, z = nil, n = nil, div = nil, mod = nil; - if (other['$=='](0)) { - return $$($nesting, 'Complex').$new(1, 0)}; - if ($truthy($$($nesting, 'Complex')['$==='](other))) { + if ($eqeq(other, 0)) { + return $$$('Complex').$new(1, 0) + }; + if ($eqeqeq($$$('Complex'), other)) { - $b = self.$polar(), $a = Opal.to_ary($b), (r = ($a[0] == null ? nil : $a[0])), (theta = ($a[1] == null ? nil : $a[1])), $b; + $b = self.$polar(), $a = $to_ary($b), (r = ($a[0] == null ? nil : $a[0])), (theta = ($a[1] == null ? nil : $a[1])), $b; ore = other.$real(); oim = other.$imag(); - nr = $$($nesting, 'Math').$exp($rb_minus($rb_times(ore, $$($nesting, 'Math').$log(r)), $rb_times(oim, theta))); - ntheta = $rb_plus($rb_times(theta, ore), $rb_times(oim, $$($nesting, 'Math').$log(r))); - return $$($nesting, 'Complex').$polar(nr, ntheta); - } else if ($truthy($$($nesting, 'Integer')['$==='](other))) { + nr = $$$('Math').$exp($rb_minus($rb_times(ore, $$$('Math').$log(r)), $rb_times(oim, theta))); + ntheta = $rb_plus($rb_times(theta, ore), $rb_times(oim, $$$('Math').$log(r))); + return $$$('Complex').$polar(nr, ntheta); + } else if ($eqeqeq($$$('Integer'), other)) { if ($truthy($rb_gt(other, 0))) { x = self; z = x; n = $rb_minus(other, 1); - while ($truthy(n['$!='](0))) { + while ($neqeq(n, 0)) { - $c = n.$divmod(2), $b = Opal.to_ary($c), (div = ($b[0] == null ? nil : $b[0])), (mod = ($b[1] == null ? nil : $b[1])), $c; - while (mod['$=='](0)) { + $c = n.$divmod(2), $b = $to_ary($c), (div = ($b[0] == null ? nil : $b[0])), (mod = ($b[1] == null ? nil : $b[1])), $c; + while ($eqeq(mod, 0)) { - x = self.$Complex($rb_minus($rb_times(x.$real(), x.$real()), $rb_times(x.$imag(), x.$imag())), $rb_times($rb_times(2, x.$real()), x.$imag())); + x = $Kernel.$Complex($rb_minus($rb_times(x.$real(), x.$real()), $rb_times(x.$imag(), x.$imag())), $rb_times($rb_times(2, x.$real()), x.$imag())); n = div; - $d = n.$divmod(2), $c = Opal.to_ary($d), (div = ($c[0] == null ? nil : $c[0])), (mod = ($c[1] == null ? nil : $c[1])), $d; + $d = n.$divmod(2), $c = $to_ary($d), (div = ($c[0] == null ? nil : $c[0])), (mod = ($c[1] == null ? nil : $c[1])), $d; }; z = $rb_times(z, x); n = $rb_minus(n, 1); }; return z; } else { - return $rb_divide($$($nesting, 'Rational').$new(1, 1), self)['$**'](other['$-@']()) + return $rb_divide($$$('Rational').$new(1, 1), self)['$**'](other['$-@']()) } - } else if ($truthy((function() {if ($truthy(($ret_or_22 = $$($nesting, 'Float')['$==='](other)))) { - return $ret_or_22 - } else { - return $$($nesting, 'Rational')['$==='](other) - }; return nil; })())) { + } else if (($eqeqeq($$$('Float'), other) || ($eqeqeq($$$('Rational'), other)))) { - $b = self.$polar(), $a = Opal.to_ary($b), (r = ($a[0] == null ? nil : $a[0])), (theta = ($a[1] == null ? nil : $a[1])), $b; - return $$($nesting, 'Complex').$polar(r['$**'](other), $rb_times(theta, other)); + $b = self.$polar(), $a = $to_ary($b), (r = ($a[0] == null ? nil : $a[0])), (theta = ($a[1] == null ? nil : $a[1])), $b; + return $$$('Complex').$polar(r['$**'](other), $rb_times(theta, other)); } else { return self.$__coerced__("**", other) }; - }, $Complex_$$$11.$$arity = 1); + }, 1); - Opal.def(self, '$abs', $Complex_abs$12 = function $$abs() { + $def(self, '$abs', function $$abs() { var self = this; - return $$($nesting, 'Math').$hypot(self.real, self.imag) - }, $Complex_abs$12.$$arity = 0); + return $$$('Math').$hypot(self.real, self.imag) + }, 0); - Opal.def(self, '$abs2', $Complex_abs2$13 = function $$abs2() { + $def(self, '$abs2', function $$abs2() { var self = this; return $rb_plus($rb_times(self.real, self.real), $rb_times(self.imag, self.imag)) - }, $Complex_abs2$13.$$arity = 0); + }, 0); - Opal.def(self, '$angle', $Complex_angle$14 = function $$angle() { + $def(self, '$angle', function $$angle() { var self = this; - return $$($nesting, 'Math').$atan2(self.imag, self.real) - }, $Complex_angle$14.$$arity = 0); - $alias(self, "arg", "angle"); + return $$$('Math').$atan2(self.imag, self.real) + }, 0); - Opal.def(self, '$conj', $Complex_conj$15 = function $$conj() { + $def(self, '$conj', function $$conj() { var self = this; - return self.$Complex(self.real, self.imag['$-@']()) - }, $Complex_conj$15.$$arity = 0); - $alias(self, "conjugate", "conj"); + return $Kernel.$Complex(self.real, self.imag['$-@']()) + }, 0); - Opal.def(self, '$denominator', $Complex_denominator$16 = function $$denominator() { + $def(self, '$denominator', function $$denominator() { var self = this; return self.real.$denominator().$lcm(self.imag.$denominator()) - }, $Complex_denominator$16.$$arity = 0); - $alias(self, "divide", "/"); + }, 0); - Opal.def(self, '$eql?', $Complex_eql$ques$17 = function(other) { - var self = this, $ret_or_23 = nil, $ret_or_24 = nil; + $def(self, '$eql?', function $Complex_eql$ques$8(other) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_23 = (function() {if ($truthy(($ret_or_24 = $$($nesting, 'Complex')['$==='](other)))) { - return self.real.$class()['$=='](self.imag.$class()) - } else { - return $ret_or_24 - }; return nil; })()))) { + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = $$('Complex')['$==='](other))) ? (self.real.$class()['$=='](self.imag.$class())) : ($ret_or_2))))) { return self['$=='](other) } else { - return $ret_or_23 + return $ret_or_1 } - }, $Complex_eql$ques$17.$$arity = 1); + }, 1); - Opal.def(self, '$fdiv', $Complex_fdiv$18 = function $$fdiv(other) { + $def(self, '$fdiv', function $$fdiv(other) { var self = this; - if ($truthy($$($nesting, 'Numeric')['$==='](other))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into Complex") + if (!$eqeqeq($$$('Numeric'), other)) { + $Kernel.$raise($$$('TypeError'), "" + (other.$class()) + " can't be coerced into Complex") }; return $rb_divide(self, other); - }, $Complex_fdiv$18.$$arity = 1); + }, 1); - Opal.def(self, '$finite?', $Complex_finite$ques$19 = function() { - var self = this, $ret_or_25 = nil; + $def(self, '$finite?', function $Complex_finite$ques$9() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_25 = self.real['$finite?']()))) { + if ($truthy(($ret_or_1 = self.real['$finite?']()))) { return self.imag['$finite?']() } else { - return $ret_or_25 + return $ret_or_1 } - }, $Complex_finite$ques$19.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $Complex_hash$20 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; - return "" + "Complex:" + (self.real) + ":" + (self.imag) - }, $Complex_hash$20.$$arity = 0); - $alias(self, "imaginary", "imag"); + return "Complex:" + (self.real) + ":" + (self.imag) + }, 0); - Opal.def(self, '$infinite?', $Complex_infinite$ques$21 = function() { - var self = this, $ret_or_26 = nil; + $def(self, '$infinite?', function $Complex_infinite$ques$10() { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_26 = self.real['$infinite?']()))) { - return $ret_or_26 + if ($truthy(($ret_or_1 = self.real['$infinite?']()))) { + return $ret_or_1 } else { return self.imag['$infinite?']() } - }, $Complex_infinite$ques$21.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $Complex_inspect$22 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "(" + (self) + ")" - }, $Complex_inspect$22.$$arity = 0); - $alias(self, "magnitude", "abs"); + return "(" + (self) + ")" + }, 0); - Opal.udef(self, '$' + "negative?");; - - Opal.def(self, '$numerator', $Complex_numerator$23 = function $$numerator() { + $def(self, '$numerator', function $$numerator() { var self = this, d = nil; d = self.$denominator(); - return self.$Complex($rb_times(self.real.$numerator(), $rb_divide(d, self.real.$denominator())), $rb_times(self.imag.$numerator(), $rb_divide(d, self.imag.$denominator()))); - }, $Complex_numerator$23.$$arity = 0); - $alias(self, "phase", "arg"); + return $Kernel.$Complex($rb_times(self.real.$numerator(), $rb_divide(d, self.real.$denominator())), $rb_times(self.imag.$numerator(), $rb_divide(d, self.imag.$denominator()))); + }, 0); - Opal.def(self, '$polar', $Complex_polar$24 = function $$polar() { + $def(self, '$polar', function $$polar() { var self = this; return [self.$abs(), self.$arg()] - }, $Complex_polar$24.$$arity = 0); - - Opal.udef(self, '$' + "positive?");; - $alias(self, "quo", "/"); + }, 0); - Opal.def(self, '$rationalize', $Complex_rationalize$25 = function $$rationalize(eps) { + $def(self, '$rationalize', function $$rationalize(eps) { var self = this; ; if (arguments.length > 1) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (arguments.length) + " for 0..1)"); } ; - if ($truthy(self.imag['$!='](0))) { - self.$raise($$($nesting, 'RangeError'), "" + "can't' convert " + (self) + " into Rational")}; + if ($neqeq(self.imag, 0)) { + $Kernel.$raise($$$('RangeError'), "can't convert " + (self) + " into Rational") + }; return self.$real().$rationalize(eps); - }, $Complex_rationalize$25.$$arity = -1); + }, -1); - Opal.def(self, '$real?', $Complex_real$ques$26 = function() { - var self = this; - + $def(self, '$real?', function $Complex_real$ques$11() { + return false - }, $Complex_real$ques$26.$$arity = 0); + }, 0); - Opal.def(self, '$rect', $Complex_rect$27 = function $$rect() { + $def(self, '$rect', function $$rect() { var self = this; return [self.real, self.imag] - }, $Complex_rect$27.$$arity = 0); - $alias(self, "rectangular", "rect"); - - Opal.udef(self, '$' + "step");; + }, 0); - Opal.def(self, '$to_f', $Complex_to_f$28 = function $$to_f() { + $def(self, '$to_f', function $$to_f() { var self = this; - if (self.imag['$=='](0)) { - } else { - self.$raise($$($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Float") + if (!$eqeq(self.imag, 0)) { + $Kernel.$raise($$$('RangeError'), "can't convert " + (self) + " into Float") }; return self.real.$to_f(); - }, $Complex_to_f$28.$$arity = 0); + }, 0); - Opal.def(self, '$to_i', $Complex_to_i$29 = function $$to_i() { + $def(self, '$to_i', function $$to_i() { var self = this; - if (self.imag['$=='](0)) { - } else { - self.$raise($$($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Integer") + if (!$eqeq(self.imag, 0)) { + $Kernel.$raise($$$('RangeError'), "can't convert " + (self) + " into Integer") }; return self.real.$to_i(); - }, $Complex_to_i$29.$$arity = 0); + }, 0); - Opal.def(self, '$to_r', $Complex_to_r$30 = function $$to_r() { + $def(self, '$to_r', function $$to_r() { var self = this; - if (self.imag['$=='](0)) { - } else { - self.$raise($$($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Rational") + if (!$eqeq(self.imag, 0)) { + $Kernel.$raise($$$('RangeError'), "can't convert " + (self) + " into Rational") }; return self.real.$to_r(); - }, $Complex_to_r$30.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Complex_to_s$31 = function $$to_s() { - var self = this, result = nil, $ret_or_27 = nil, $ret_or_28 = nil, $ret_or_29 = nil, $ret_or_30 = nil, $ret_or_31 = nil; + $def(self, '$to_s', function $$to_s() { + var self = this, result = nil; result = self.real.$inspect(); - result = $rb_plus(result, (function() {if ($truthy((function() {if ($truthy(($ret_or_27 = (function() {if ($truthy(($ret_or_28 = (function() {if ($truthy(($ret_or_29 = $$($nesting, 'Number')['$==='](self.imag)))) { - return self.imag['$nan?']() - } else { - return $ret_or_29 - }; return nil; })()))) { - return $ret_or_28 - } else { - return self.imag['$positive?']() - }; return nil; })()))) { - return $ret_or_27 - } else { - return self.imag['$zero?']() - }; return nil; })())) { - return "+" - } else { - return "-" - }; return nil; })()); + result = $rb_plus(result, (((($eqeqeq($$$('Number'), self.imag) && ($truthy(self.imag['$nan?']()))) || ($truthy(self.imag['$positive?']()))) || ($truthy(self.imag['$zero?']()))) ? ("+") : ("-"))); result = $rb_plus(result, self.imag.$abs().$inspect()); - if ($truthy((function() {if ($truthy(($ret_or_30 = $$($nesting, 'Number')['$==='](self.imag)))) { - - if ($truthy(($ret_or_31 = self.imag['$nan?']()))) { - return $ret_or_31 - } else { - return self.imag['$infinite?']() - }; - } else { - return $ret_or_30 - }; return nil; })())) { - result = $rb_plus(result, "*")}; + if (($eqeqeq($$$('Number'), self.imag) && (($truthy(self.imag['$nan?']()) || ($truthy(self.imag['$infinite?']())))))) { + result = $rb_plus(result, "*") + }; return $rb_plus(result, "i"); - }, $Complex_to_s$31.$$arity = 0); - return Opal.const_set($nesting[0], 'I', self.$new(0, 1)); - })($nesting[0], $$($nesting, 'Numeric'), $nesting); - (function($base, $parent_nesting) { - var self = $module($base, 'Kernel'); - - var $nesting = [self].concat($parent_nesting), $Kernel_Complex$32; - - return (Opal.def(self, '$Complex', $Kernel_Complex$32 = function $$Complex(real, imag) { - var self = this; - + }, 0); + $const_set($nesting[0], 'I', self.$new(0, 1)); + $defs(self, '$from_string', function $$from_string(str) { - if (imag == null) { - imag = nil; - }; - if ($truthy(imag)) { - return $$($nesting, 'Complex').$new(real, imag) - } else { - return $$($nesting, 'Complex').$new(real, 0) - }; - }, $Kernel_Complex$32.$$arity = -2), nil) && 'Complex' - })($nesting[0], $nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'String'); - - var $nesting = [self].concat($parent_nesting), $String_to_c$33; - - return (Opal.def(self, '$to_c', $String_to_c$33 = function $$to_c() { - var self = this; - - - var str = self, - re = /[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/, + var re = /[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/, match = str.match(re), real, imag, denominator; @@ -22014,7 +21642,7 @@ Opal.modules["corelib/complex"] = function(Opal) { if (isFloat()) { var denominator = parseFloat(cutFloat()); - return self.$Rational(numerator, denominator); + return $Kernel.$Rational(numerator, denominator); } else { // reverting '/' str = '/' + str; @@ -22034,353 +21662,372 @@ Opal.modules["corelib/complex"] = function(Opal) { if (!real) { if (str[0] === 'i') { // i => Complex(0, 1) - return self.$Complex(0, 1); + return $Kernel.$Complex(0, 1); } if (str[0] === '-' && str[1] === 'i') { // -i => Complex(0, -1) - return self.$Complex(0, -1); + return $Kernel.$Complex(0, -1); } if (str[0] === '+' && str[1] === 'i') { // +i => Complex(0, 1) - return self.$Complex(0, 1); + return $Kernel.$Complex(0, 1); } // anything => Complex(0, 0) - return self.$Complex(0, 0); + return $Kernel.$Complex(0, 0); } imag = cutNumber(); if (!imag) { if (str[0] === 'i') { // 3i => Complex(0, 3) - return self.$Complex(0, real); + return $Kernel.$Complex(0, real); } else { // 3 => Complex(3, 0) - return self.$Complex(real, 0); + return $Kernel.$Complex(real, 0); } } else { // 3+2i => Complex(3, 2) - return self.$Complex(real, imag); + return $Kernel.$Complex(real, imag); } - }, $String_to_c$33.$$arity = 0), nil) && 'to_c' - })($nesting[0], null, $nesting); + }, 1); + (function(self, $parent_nesting) { + + return $alias(self, "rectangular", "rect") + })(Opal.get_singleton_class(self), $nesting); + $alias(self, "arg", "angle"); + $alias(self, "conjugate", "conj"); + $alias(self, "divide", "/"); + $alias(self, "imaginary", "imag"); + $alias(self, "magnitude", "abs"); + $alias(self, "phase", "arg"); + $alias(self, "quo", "/"); + $alias(self, "rectangular", "rect"); + + Opal.udef(self, '$' + "negative?");; + + Opal.udef(self, '$' + "positive?");; + + + Opal.udef(self, '$' + "step");; + return nil;; + })('::', $$$('Numeric'), $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/rational"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $module = Opal.module; +Opal.modules["corelib/rational/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $def = Opal.def, $klass = Opal.klass; + + Opal.add_stubs('convert,from_string'); + + (function($base) { + var self = $module($base, 'Kernel'); + + + return $def(self, '$Rational', function $$Rational(numerator, denominator) { + + + + if (denominator == null) denominator = 1;; + return $$$('Rational').$convert(numerator, denominator); + }, -2) + })('::'); + return (function($base, $super) { + var self = $klass($base, $super, 'String'); + + + return $def(self, '$to_r', function $$to_r() { + var self = this; + + return $$$('Rational').$from_string(self) + }, 0) + })('::', null); +}; - Opal.add_stubs(['$require', '$to_i', '$==', '$raise', '$<', '$-@', '$new', '$gcd', '$/', '$nil?', '$===', '$reduce', '$to_r', '$equal?', '$!', '$coerce_to!', '$to_f', '$numerator', '$denominator', '$<=>', '$-', '$*', '$__coerced__', '$+', '$Rational', '$>', '$**', '$abs', '$ceil', '$with_precision', '$floor', '$<=', '$truncate', '$send', '$convert']); +Opal.modules["corelib/rational"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $eqeq = Opal.eqeq, $Kernel = Opal.Kernel, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $rb_divide = Opal.rb_divide, $defs = Opal.defs, $eqeqeq = Opal.eqeqeq, $not = Opal.not, $Opal = Opal.Opal, $def = Opal.def, $rb_minus = Opal.rb_minus, $rb_times = Opal.rb_times, $rb_plus = Opal.rb_plus, $rb_gt = Opal.rb_gt, $rb_le = Opal.rb_le, $alias = Opal.alias; + + Opal.add_stubs('require,to_i,==,raise,<,-@,new,gcd,/,nil?,===,reduce,to_r,!,equal?,coerce_to!,to_f,numerator,denominator,<=>,-,*,__coerced__,+,Rational,>,**,abs,ceil,with_precision,floor,<=,truncate,send'); self.$require("corelib/numeric"); - (function($base, $super, $parent_nesting) { + self.$require("corelib/rational/base"); + return (function($base, $super) { var self = $klass($base, $super, 'Rational'); - var $nesting = [self].concat($parent_nesting), $Rational_reduce$1, $Rational_convert$2, $Rational_initialize$3, $Rational_numerator$4, $Rational_denominator$5, $Rational_coerce$6, $Rational_$eq_eq$7, $Rational_$lt_eq_gt$8, $Rational_$plus$9, $Rational_$minus$10, $Rational_$$11, $Rational_$slash$12, $Rational_$$$13, $Rational_abs$14, $Rational_ceil$15, $Rational_floor$16, $Rational_hash$17, $Rational_inspect$18, $Rational_rationalize$19, $Rational_round$20, $Rational_to_f$21, $Rational_to_i$22, $Rational_to_r$23, $Rational_to_s$24, $Rational_truncate$25, $Rational_with_precision$26; + var $proto = self.$$prototype; - self.$$prototype.num = self.$$prototype.den = nil; + $proto.num = $proto.den = nil; - Opal.defs(self, '$reduce', $Rational_reduce$1 = function $$reduce(num, den) { + $defs(self, '$reduce', function $$reduce(num, den) { var self = this, gcd = nil; num = num.$to_i(); den = den.$to_i(); - if (den['$=='](0)) { - self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0") + if ($eqeq(den, 0)) { + $Kernel.$raise($$$('ZeroDivisionError'), "divided by 0") } else if ($truthy($rb_lt(den, 0))) { num = num['$-@'](); den = den['$-@'](); - } else if (den['$=='](1)) { - return self.$new(num, den)}; + } else if ($eqeq(den, 1)) { + return self.$new(num, den) + }; gcd = num.$gcd(den); return self.$new($rb_divide(num, gcd), $rb_divide(den, gcd)); - }, $Rational_reduce$1.$$arity = 2); - Opal.defs(self, '$convert', $Rational_convert$2 = function $$convert(num, den) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil; + }, 2); + $defs(self, '$convert', function $$convert(num, den) { + var self = this; - if ($truthy((function() {if ($truthy(($ret_or_1 = num['$nil?']()))) { - return $ret_or_1 - } else { - return den['$nil?']() - }; return nil; })())) { - self.$raise($$($nesting, 'TypeError'), "cannot convert nil into Rational")}; - if ($truthy((function() {if ($truthy(($ret_or_2 = $$($nesting, 'Integer')['$==='](num)))) { - return $$($nesting, 'Integer')['$==='](den) - } else { - return $ret_or_2 - }; return nil; })())) { - return self.$reduce(num, den)}; - if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = $$($nesting, 'Float')['$==='](num)))) { - return $ret_or_4 - } else { - return $$($nesting, 'String')['$==='](num) - }; return nil; })()))) { - return $ret_or_3 - } else { - return $$($nesting, 'Complex')['$==='](num) - }; return nil; })())) { - num = num.$to_r()}; - if ($truthy((function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = $$($nesting, 'Float')['$==='](den)))) { - return $ret_or_6 - } else { - return $$($nesting, 'String')['$==='](den) - }; return nil; })()))) { - return $ret_or_5 - } else { - return $$($nesting, 'Complex')['$==='](den) - }; return nil; })())) { - den = den.$to_r()}; - if ($truthy((function() {if ($truthy(($ret_or_7 = den['$equal?'](1)))) { - return $$($nesting, 'Integer')['$==='](num)['$!']() - } else { - return $ret_or_7 - }; return nil; })())) { - return $$($nesting, 'Opal')['$coerce_to!'](num, $$($nesting, 'Rational'), "to_r") - } else if ($truthy((function() {if ($truthy(($ret_or_8 = $$($nesting, 'Numeric')['$==='](num)))) { - return $$($nesting, 'Numeric')['$==='](den) - } else { - return $ret_or_8 - }; return nil; })())) { + if (($truthy(num['$nil?']()) || ($truthy(den['$nil?']())))) { + $Kernel.$raise($$$('TypeError'), "cannot convert nil into Rational") + }; + if (($eqeqeq($$$('Integer'), num) && ($eqeqeq($$$('Integer'), den)))) { + return self.$reduce(num, den) + }; + if ((($eqeqeq($$$('Float'), num) || ($eqeqeq($$$('String'), num))) || ($eqeqeq($$$('Complex'), num)))) { + num = num.$to_r() + }; + if ((($eqeqeq($$$('Float'), den) || ($eqeqeq($$$('String'), den))) || ($eqeqeq($$$('Complex'), den)))) { + den = den.$to_r() + }; + if (($truthy(den['$equal?'](1)) && ($not($$$('Integer')['$==='](num))))) { + return $Opal['$coerce_to!'](num, $$$('Rational'), "to_r") + } else if (($eqeqeq($$$('Numeric'), num) && ($eqeqeq($$$('Numeric'), den)))) { return $rb_divide(num, den) } else { return self.$reduce(num, den) }; - }, $Rational_convert$2.$$arity = 2); + }, 2); - Opal.def(self, '$initialize', $Rational_initialize$3 = function $$initialize(num, den) { + $def(self, '$initialize', function $$initialize(num, den) { var self = this; self.num = num; return (self.den = den); - }, $Rational_initialize$3.$$arity = 2); + }, 2); - Opal.def(self, '$numerator', $Rational_numerator$4 = function $$numerator() { + $def(self, '$numerator', function $$numerator() { var self = this; return self.num - }, $Rational_numerator$4.$$arity = 0); + }, 0); + + $def(self, '$denominator', function $$denominator() { + var self = this; + + return self.den + }, 0); + + $def(self, '$coerce', function $$coerce(other) { + var self = this, $ret_or_1 = nil; + + if ($eqeqeq($$$('Rational'), ($ret_or_1 = other))) { + return [other, self] + } else if ($eqeqeq($$$('Integer'), $ret_or_1)) { + return [other.$to_r(), self] + } else if ($eqeqeq($$$('Float'), $ret_or_1)) { + return [other, self.$to_f()] + } else { + return nil + } + }, 1); + + $def(self, '$==', function $Rational_$eq_eq$1(other) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + if ($eqeqeq($$$('Rational'), ($ret_or_1 = other))) { + if ($truthy(($ret_or_2 = self.num['$=='](other.$numerator())))) { + return self.den['$=='](other.$denominator()) + } else { + return $ret_or_2 + } + } else if ($eqeqeq($$$('Integer'), $ret_or_1)) { + if ($truthy(($ret_or_2 = self.num['$=='](other)))) { + return self.den['$=='](1) + } else { + return $ret_or_2 + } + } else if ($eqeqeq($$$('Float'), $ret_or_1)) { + return self.$to_f()['$=='](other) + } else { + return other['$=='](self) + } + }, 1); - Opal.def(self, '$denominator', $Rational_denominator$5 = function $$denominator() { - var self = this; + $def(self, '$<=>', function $Rational_$lt_eq_gt$2(other) { + var self = this, $ret_or_1 = nil; - return self.den - }, $Rational_denominator$5.$$arity = 0); + if ($eqeqeq($$$('Rational'), ($ret_or_1 = other))) { + return $rb_minus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator()))['$<=>'](0) + } else if ($eqeqeq($$$('Integer'), $ret_or_1)) { + return $rb_minus(self.num, $rb_times(self.den, other))['$<=>'](0) + } else if ($eqeqeq($$$('Float'), $ret_or_1)) { + return self.$to_f()['$<=>'](other) + } else { + return self.$__coerced__("<=>", other) + } + }, 1); - Opal.def(self, '$coerce', $Rational_coerce$6 = function $$coerce(other) { - var self = this, $case = nil; + $def(self, '$+', function $Rational_$plus$3(other) { + var self = this, $ret_or_1 = nil, num = nil, den = nil; - return (function() {$case = other; - if ($$($nesting, 'Rational')['$===']($case)) {return [other, self]} - else if ($$($nesting, 'Integer')['$===']($case)) {return [other.$to_r(), self]} - else if ($$($nesting, 'Float')['$===']($case)) {return [other, self.$to_f()]} - else { return nil }})() - }, $Rational_coerce$6.$$arity = 1); + if ($eqeqeq($$$('Rational'), ($ret_or_1 = other))) { + + num = $rb_plus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator())); + den = $rb_times(self.den, other.$denominator()); + return $Kernel.$Rational(num, den); + } else if ($eqeqeq($$$('Integer'), $ret_or_1)) { + return $Kernel.$Rational($rb_plus(self.num, $rb_times(other, self.den)), self.den) + } else if ($eqeqeq($$$('Float'), $ret_or_1)) { + return $rb_plus(self.$to_f(), other) + } else { + return self.$__coerced__("+", other) + } + }, 1); - Opal.def(self, '$==', $Rational_$eq_eq$7 = function(other) { - var self = this, $case = nil, $ret_or_9 = nil, $ret_or_10 = nil; + $def(self, '$-', function $Rational_$minus$4(other) { + var self = this, $ret_or_1 = nil, num = nil, den = nil; - return (function() {$case = other; - if ($$($nesting, 'Rational')['$===']($case)) {if ($truthy(($ret_or_9 = self.num['$=='](other.$numerator())))) { - return self.den['$=='](other.$denominator()) - } else { - return $ret_or_9 - }} - else if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy(($ret_or_10 = self.num['$=='](other)))) { - return self.den['$=='](1) - } else { - return $ret_or_10 - }} - else if ($$($nesting, 'Float')['$===']($case)) {return self.$to_f()['$=='](other)} - else {return other['$=='](self)}})() - }, $Rational_$eq_eq$7.$$arity = 1); - - Opal.def(self, '$<=>', $Rational_$lt_eq_gt$8 = function(other) { - var self = this, $case = nil; - - return (function() {$case = other; - if ($$($nesting, 'Rational')['$===']($case)) {return $rb_minus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator()))['$<=>'](0)} - else if ($$($nesting, 'Integer')['$===']($case)) {return $rb_minus(self.num, $rb_times(self.den, other))['$<=>'](0)} - else if ($$($nesting, 'Float')['$===']($case)) {return self.$to_f()['$<=>'](other)} - else {return self.$__coerced__("<=>", other)}})() - }, $Rational_$lt_eq_gt$8.$$arity = 1); - - Opal.def(self, '$+', $Rational_$plus$9 = function(other) { - var self = this, $case = nil, num = nil, den = nil; - - return (function() {$case = other; - if ($$($nesting, 'Rational')['$===']($case)) { - num = $rb_plus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator())); - den = $rb_times(self.den, other.$denominator()); - return self.$Rational(num, den);} - else if ($$($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_plus(self.num, $rb_times(other, self.den)), self.den)} - else if ($$($nesting, 'Float')['$===']($case)) {return $rb_plus(self.$to_f(), other)} - else {return self.$__coerced__("+", other)}})() - }, $Rational_$plus$9.$$arity = 1); - - Opal.def(self, '$-', $Rational_$minus$10 = function(other) { - var self = this, $case = nil, num = nil, den = nil; - - return (function() {$case = other; - if ($$($nesting, 'Rational')['$===']($case)) { - num = $rb_minus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator())); - den = $rb_times(self.den, other.$denominator()); - return self.$Rational(num, den);} - else if ($$($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_minus(self.num, $rb_times(other, self.den)), self.den)} - else if ($$($nesting, 'Float')['$===']($case)) {return $rb_minus(self.$to_f(), other)} - else {return self.$__coerced__("-", other)}})() - }, $Rational_$minus$10.$$arity = 1); - - Opal.def(self, '$*', $Rational_$$11 = function(other) { - var self = this, $case = nil, num = nil, den = nil; - - return (function() {$case = other; - if ($$($nesting, 'Rational')['$===']($case)) { - num = $rb_times(self.num, other.$numerator()); - den = $rb_times(self.den, other.$denominator()); - return self.$Rational(num, den);} - else if ($$($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_times(self.num, other), self.den)} - else if ($$($nesting, 'Float')['$===']($case)) {return $rb_times(self.$to_f(), other)} - else {return self.$__coerced__("*", other)}})() - }, $Rational_$$11.$$arity = 1); - - Opal.def(self, '$/', $Rational_$slash$12 = function(other) { - var self = this, $case = nil, num = nil, den = nil; - - return (function() {$case = other; - if ($$($nesting, 'Rational')['$===']($case)) { - num = $rb_times(self.num, other.$denominator()); - den = $rb_times(self.den, other.$numerator()); - return self.$Rational(num, den);} - else if ($$($nesting, 'Integer')['$===']($case)) {if (other['$=='](0)) { - return $rb_divide(self.$to_f(), 0.0) - } else { - return self.$Rational(self.num, $rb_times(self.den, other)) - }} - else if ($$($nesting, 'Float')['$===']($case)) {return $rb_divide(self.$to_f(), other)} - else {return self.$__coerced__("/", other)}})() - }, $Rational_$slash$12.$$arity = 1); - - Opal.def(self, '$**', $Rational_$$$13 = function(other) { - var self = this, $case = nil, $ret_or_11 = nil, $ret_or_12 = nil; - - return (function() {$case = other; - if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_11 = self['$=='](0)))) { - return $rb_lt(other, 0) + if ($eqeqeq($$$('Rational'), ($ret_or_1 = other))) { + + num = $rb_minus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator())); + den = $rb_times(self.den, other.$denominator()); + return $Kernel.$Rational(num, den); + } else if ($eqeqeq($$$('Integer'), $ret_or_1)) { + return $Kernel.$Rational($rb_minus(self.num, $rb_times(other, self.den)), self.den) + } else if ($eqeqeq($$$('Float'), $ret_or_1)) { + return $rb_minus(self.$to_f(), other) } else { - return $ret_or_11 - }; return nil; })())) { - return $$$($$($nesting, 'Float'), 'INFINITY') - } else if ($truthy($rb_gt(other, 0))) { - return self.$Rational(self.num['$**'](other), self.den['$**'](other)) - } else if ($truthy($rb_lt(other, 0))) { - return self.$Rational(self.den['$**'](other['$-@']()), self.num['$**'](other['$-@']())) + return self.$__coerced__("-", other) + } + }, 1); + + $def(self, '$*', function $Rational_$$5(other) { + var self = this, $ret_or_1 = nil, num = nil, den = nil; + + if ($eqeqeq($$$('Rational'), ($ret_or_1 = other))) { + + num = $rb_times(self.num, other.$numerator()); + den = $rb_times(self.den, other.$denominator()); + return $Kernel.$Rational(num, den); + } else if ($eqeqeq($$$('Integer'), $ret_or_1)) { + return $Kernel.$Rational($rb_times(self.num, other), self.den) + } else if ($eqeqeq($$$('Float'), $ret_or_1)) { + return $rb_times(self.$to_f(), other) } else { - return self.$Rational(1, 1) - }} - else if ($$($nesting, 'Float')['$===']($case)) {return self.$to_f()['$**'](other)} - else if ($$($nesting, 'Rational')['$===']($case)) {if (other['$=='](0)) { - return self.$Rational(1, 1) - } else if (other.$denominator()['$=='](1)) { - if ($truthy($rb_lt(other, 0))) { - return self.$Rational(self.den['$**'](other.$numerator().$abs()), self.num['$**'](other.$numerator().$abs())) + return self.$__coerced__("*", other) + } + }, 1); + + $def(self, '$/', function $Rational_$slash$6(other) { + var self = this, $ret_or_1 = nil, num = nil, den = nil; + + if ($eqeqeq($$$('Rational'), ($ret_or_1 = other))) { + + num = $rb_times(self.num, other.$denominator()); + den = $rb_times(self.den, other.$numerator()); + return $Kernel.$Rational(num, den); + } else if ($eqeqeq($$$('Integer'), $ret_or_1)) { + if ($eqeq(other, 0)) { + return $rb_divide(self.$to_f(), 0.0) } else { - return self.$Rational(self.num['$**'](other.$numerator()), self.den['$**'](other.$numerator())) + return $Kernel.$Rational(self.num, $rb_times(self.den, other)) } - } else if ($truthy((function() {if ($truthy(($ret_or_12 = self['$=='](0)))) { - return $rb_lt(other, 0) - } else { - return $ret_or_12 - }; return nil; })())) { - return self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0") + } else if ($eqeqeq($$$('Float'), $ret_or_1)) { + return $rb_divide(self.$to_f(), other) } else { + return self.$__coerced__("/", other) + } + }, 1); + + $def(self, '$**', function $Rational_$$$7(other) { + var self = this, $ret_or_1 = nil; + + if ($eqeqeq($$$('Integer'), ($ret_or_1 = other))) { + if (($eqeq(self, 0) && ($truthy($rb_lt(other, 0))))) { + return $$$($$$('Float'), 'INFINITY') + } else if ($truthy($rb_gt(other, 0))) { + return $Kernel.$Rational(self.num['$**'](other), self.den['$**'](other)) + } else if ($truthy($rb_lt(other, 0))) { + return $Kernel.$Rational(self.den['$**'](other['$-@']()), self.num['$**'](other['$-@']())) + } else { + return $Kernel.$Rational(1, 1) + } + } else if ($eqeqeq($$$('Float'), $ret_or_1)) { return self.$to_f()['$**'](other) - }} - else {return self.$__coerced__("**", other)}})() - }, $Rational_$$$13.$$arity = 1); + } else if ($eqeqeq($$$('Rational'), $ret_or_1)) { + if ($eqeq(other, 0)) { + return $Kernel.$Rational(1, 1) + } else if ($eqeq(other.$denominator(), 1)) { + if ($truthy($rb_lt(other, 0))) { + return $Kernel.$Rational(self.den['$**'](other.$numerator().$abs()), self.num['$**'](other.$numerator().$abs())) + } else { + return $Kernel.$Rational(self.num['$**'](other.$numerator()), self.den['$**'](other.$numerator())) + } + } else if (($eqeq(self, 0) && ($truthy($rb_lt(other, 0))))) { + return $Kernel.$raise($$$('ZeroDivisionError'), "divided by 0") + } else { + return self.$to_f()['$**'](other) + } + } else { + return self.$__coerced__("**", other) + } + }, 1); - Opal.def(self, '$abs', $Rational_abs$14 = function $$abs() { + $def(self, '$abs', function $$abs() { var self = this; - return self.$Rational(self.num.$abs(), self.den.$abs()) - }, $Rational_abs$14.$$arity = 0); + return $Kernel.$Rational(self.num.$abs(), self.den.$abs()) + }, 0); - Opal.def(self, '$ceil', $Rational_ceil$15 = function $$ceil(precision) { + $def(self, '$ceil', function $$ceil(precision) { var self = this; - if (precision == null) { - precision = 0; - }; - if (precision['$=='](0)) { + if (precision == null) precision = 0;; + if ($eqeq(precision, 0)) { return $rb_divide(self.num['$-@'](), self.den)['$-@']().$ceil() } else { return self.$with_precision("ceil", precision) }; - }, $Rational_ceil$15.$$arity = -1); - $alias(self, "divide", "/"); + }, -1); - Opal.def(self, '$floor', $Rational_floor$16 = function $$floor(precision) { + $def(self, '$floor', function $$floor(precision) { var self = this; - if (precision == null) { - precision = 0; - }; - if (precision['$=='](0)) { + if (precision == null) precision = 0;; + if ($eqeq(precision, 0)) { return $rb_divide(self.num['$-@'](), self.den)['$-@']().$floor() } else { return self.$with_precision("floor", precision) }; - }, $Rational_floor$16.$$arity = -1); + }, -1); - Opal.def(self, '$hash', $Rational_hash$17 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; - return "" + "Rational:" + (self.num) + ":" + (self.den) - }, $Rational_hash$17.$$arity = 0); + return "Rational:" + (self.num) + ":" + (self.den) + }, 0); - Opal.def(self, '$inspect', $Rational_inspect$18 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; - return "" + "(" + (self) + ")" - }, $Rational_inspect$18.$$arity = 0); - $alias(self, "quo", "/"); + return "(" + (self) + ")" + }, 0); - Opal.def(self, '$rationalize', $Rational_rationalize$19 = function $$rationalize(eps) { + $def(self, '$rationalize', function $$rationalize(eps) { var self = this; ; if (arguments.length > 1) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (" + (arguments.length) + " for 0..1)"); } if (eps == null) { @@ -22419,26 +22066,25 @@ Opal.modules["corelib/rational"] = function(Opal) { q1 = q2; } - return self.$Rational(c * p1 + p0, c * q1 + q0); + return $Kernel.$Rational(c * p1 + p0, c * q1 + q0); ; - }, $Rational_rationalize$19.$$arity = -1); + }, -1); - Opal.def(self, '$round', $Rational_round$20 = function $$round(precision) { + $def(self, '$round', function $$round(precision) { var self = this, num = nil, den = nil, approx = nil; - if (precision == null) { - precision = 0; - }; - if (precision['$=='](0)) { - } else { + if (precision == null) precision = 0;; + if (!$eqeq(precision, 0)) { return self.$with_precision("round", precision) }; - if (self.num['$=='](0)) { - return 0}; - if (self.den['$=='](1)) { - return self.num}; + if ($eqeq(self.num, 0)) { + return 0 + }; + if ($eqeq(self.den, 1)) { + return self.num + }; num = $rb_plus($rb_times(self.num.$abs(), 2), self.den); den = $rb_times(self.den, 2); approx = $rb_divide(num, den).$truncate(); @@ -22447,41 +22093,39 @@ Opal.modules["corelib/rational"] = function(Opal) { } else { return approx }; - }, $Rational_round$20.$$arity = -1); + }, -1); - Opal.def(self, '$to_f', $Rational_to_f$21 = function $$to_f() { + $def(self, '$to_f', function $$to_f() { var self = this; return $rb_divide(self.num, self.den) - }, $Rational_to_f$21.$$arity = 0); + }, 0); - Opal.def(self, '$to_i', $Rational_to_i$22 = function $$to_i() { + $def(self, '$to_i', function $$to_i() { var self = this; return self.$truncate() - }, $Rational_to_i$22.$$arity = 0); + }, 0); - Opal.def(self, '$to_r', $Rational_to_r$23 = function $$to_r() { + $def(self, '$to_r', function $$to_r() { var self = this; return self - }, $Rational_to_r$23.$$arity = 0); + }, 0); - Opal.def(self, '$to_s', $Rational_to_s$24 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return "" + (self.num) + "/" + (self.den) - }, $Rational_to_s$24.$$arity = 0); + }, 0); - Opal.def(self, '$truncate', $Rational_truncate$25 = function $$truncate(precision) { + $def(self, '$truncate', function $$truncate(precision) { var self = this; - if (precision == null) { - precision = 0; - }; - if (precision['$=='](0)) { + if (precision == null) precision = 0;; + if ($eqeq(precision, 0)) { if ($truthy($rb_lt(self.num, 0))) { return self.$ceil() } else { @@ -22490,50 +22134,27 @@ Opal.modules["corelib/rational"] = function(Opal) { } else { return self.$with_precision("truncate", precision) }; - }, $Rational_truncate$25.$$arity = -1); - return (Opal.def(self, '$with_precision', $Rational_with_precision$26 = function $$with_precision(method, precision) { + }, -1); + + $def(self, '$with_precision', function $$with_precision(method, precision) { var self = this, p = nil, s = nil; - if ($truthy($$($nesting, 'Integer')['$==='](precision))) { - } else { - self.$raise($$($nesting, 'TypeError'), "not an Integer") + if (!$eqeqeq($$$('Integer'), precision)) { + $Kernel.$raise($$$('TypeError'), "not an Integer") }; p = (10)['$**'](precision); s = $rb_times(self, p); if ($truthy($rb_lt(precision, 1))) { return $rb_divide(s.$send(method), p).$to_i() } else { - return self.$Rational(s.$send(method), p) + return $Kernel.$Rational(s.$send(method), p) }; - }, $Rational_with_precision$26.$$arity = 2), nil) && 'with_precision'; - })($nesting[0], $$($nesting, 'Numeric'), $nesting); - (function($base, $parent_nesting) { - var self = $module($base, 'Kernel'); - - var $nesting = [self].concat($parent_nesting), $Kernel_Rational$27; - - return (Opal.def(self, '$Rational', $Kernel_Rational$27 = function $$Rational(numerator, denominator) { - var self = this; - - + }, 2); + $defs(self, '$from_string', function $$from_string(string) { - if (denominator == null) { - denominator = 1; - }; - return $$($nesting, 'Rational').$convert(numerator, denominator); - }, $Kernel_Rational$27.$$arity = -2), nil) && 'Rational' - })($nesting[0], $nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'String'); - - var $nesting = [self].concat($parent_nesting), $String_to_r$28; - - return (Opal.def(self, '$to_r', $String_to_r$28 = function $$to_r() { - var self = this; - - var str = self.trimLeft(), + var str = string.trimLeft(), re = /^[+-]?[\d_]+(\.[\d_]+)?/, match = str.match(re), numerator, denominator; @@ -22558,78 +22179,60 @@ Opal.modules["corelib/rational"] = function(Opal) { if (isFloat()) { denominator = parseFloat(cutFloat()); - return self.$Rational(numerator, denominator); + return $Kernel.$Rational(numerator, denominator); } else { - return self.$Rational(numerator, 1); + return $Kernel.$Rational(numerator, 1); } } else { - return self.$Rational(numerator, 1); + return $Kernel.$Rational(numerator, 1); } } else { - return self.$Rational(0, 1); + return $Kernel.$Rational(0, 1); } - }, $String_to_r$28.$$arity = 0), nil) && 'to_r' - })($nesting[0], null, $nesting); + }, 1); + $alias(self, "divide", "/"); + return $alias(self, "quo", "/"); + })('::', $$$('Numeric')); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/time"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $slice = Opal.slice, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $range = Opal.range; +Opal.modules["corelib/time"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $slice = Opal.slice, $klass = Opal.klass, $Kernel = Opal.Kernel, $Opal = Opal.Opal, $defs = Opal.defs, $eqeqeq = Opal.eqeqeq, $def = Opal.def, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $send = Opal.send, $rb_plus = Opal.rb_plus, $rb_divide = Opal.rb_divide, $rb_minus = Opal.rb_minus, $range = Opal.range, $neqeq = Opal.neqeq, $rb_le = Opal.rb_le, $eqeq = Opal.eqeq, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$===', '$raise', '$coerce_to!', '$respond_to?', '$to_str', '$to_i', '$new', '$<=>', '$to_f', '$nil?', '$>', '$<', '$strftime', '$year', '$month', '$day', '$+', '$round', '$/', '$-', '$copy_instance_variables', '$initialize_dup', '$is_a?', '$zero?', '$wday', '$utc?', '$mon', '$yday', '$hour', '$min', '$sec', '$rjust', '$ljust', '$zone', '$to_s', '$[]', '$cweek_cyear', '$isdst', '$<=', '$!=', '$==', '$ceil']); + Opal.add_stubs('require,include,===,raise,coerce_to!,respond_to?,to_str,to_i,_parse_offset,new,<=>,to_f,nil?,>,<,strftime,each,define_method,year,month,day,+,round,/,-,copy_instance_variables,initialize_dup,is_a?,zero?,wday,utc?,mon,yday,hour,min,sec,rjust,ljust,zone,to_s,[],cweek_cyear,jd,to_date,format,isdst,!=,<=,==,ceil'); self.$require("corelib/comparable"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Time'); - var $nesting = [self].concat($parent_nesting), $Time_at$1, $Time_new$2, $Time_local$3, $Time_gm$4, $Time_now$5, $Time_$plus$6, $Time_$minus$7, $Time_$lt_eq_gt$8, $Time_$eq_eq$9, $Time_asctime$10, $Time_day$11, $Time_yday$12, $Time_isdst$13, $Time_dup$14, $Time_eql$ques$15, $Time_friday$ques$16, $Time_hash$17, $Time_hour$18, $Time_inspect$19, $Time_min$20, $Time_mon$21, $Time_monday$ques$22, $Time_saturday$ques$23, $Time_sec$24, $Time_succ$25, $Time_usec$26, $Time_zone$27, $Time_getgm$28, $Time_gmtime$29, $Time_gmt$ques$30, $Time_gmt_offset$31, $Time_strftime$32, $Time_sunday$ques$33, $Time_thursday$ques$34, $Time_to_a$35, $Time_to_f$36, $Time_to_i$37, $Time_tuesday$ques$38, $Time_wday$39, $Time_wednesday$ques$40, $Time_year$41, $Time_cweek_cyear$42; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - self.$include($$($nesting, 'Comparable')); + self.$include($$$('Comparable')); var days_of_week = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], short_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], short_months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], long_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; ; - Opal.defs(self, '$at', $Time_at$1 = function $$at(seconds, frac) { - var self = this; - + $defs(self, '$at', function $$at(seconds, frac) { + ; var result; - if ($$($nesting, 'Time')['$==='](seconds)) { + if ($$$('Time')['$==='](seconds)) { if (frac !== undefined) { - self.$raise($$($nesting, 'TypeError'), "can't convert Time into an exact number") + $Kernel.$raise($$$('TypeError'), "can't convert Time into an exact number") } result = new Date(seconds.getTime()); - result.is_utc = seconds.is_utc; + result.timezone = seconds.timezone; return result; } if (!seconds.$$is_number) { - seconds = $$($nesting, 'Opal')['$coerce_to!'](seconds, $$($nesting, 'Integer'), "to_int"); + seconds = $Opal['$coerce_to!'](seconds, $$$('Integer'), "to_int"); } if (frac === undefined) { @@ -22637,18 +22240,18 @@ Opal.modules["corelib/time"] = function(Opal) { } if (!frac.$$is_number) { - frac = $$($nesting, 'Opal')['$coerce_to!'](frac, $$($nesting, 'Integer'), "to_int"); + frac = $Opal['$coerce_to!'](frac, $$$('Integer'), "to_int"); } return new Date(seconds * 1000 + (frac / 1000)); ; - }, $Time_at$1.$$arity = -2); + }, -2); function time_params(year, month, day, hour, min, sec) { if (year.$$is_string) { year = parseInt(year, 10); } else { - year = $$($nesting, 'Opal')['$coerce_to!'](year, $$($nesting, 'Integer'), "to_int"); + year = $Opal['$coerce_to!'](year, $$$('Integer'), "to_int"); } if (month === nil) { @@ -22672,12 +22275,12 @@ Opal.modules["corelib/time"] = function(Opal) { default: month = (month).$to_i(); } } else { - month = $$($nesting, 'Opal')['$coerce_to!'](month, $$($nesting, 'Integer'), "to_int"); + month = $Opal['$coerce_to!'](month, $$$('Integer'), "to_int"); } } if (month < 1 || month > 12) { - self.$raise($$($nesting, 'ArgumentError'), "" + "month out of range: " + (month)) + $Kernel.$raise($$$('ArgumentError'), "month out of range: " + (month)) } month = month - 1; @@ -22686,11 +22289,11 @@ Opal.modules["corelib/time"] = function(Opal) { } else if (day.$$is_string) { day = parseInt(day, 10); } else { - day = $$($nesting, 'Opal')['$coerce_to!'](day, $$($nesting, 'Integer'), "to_int"); + day = $Opal['$coerce_to!'](day, $$$('Integer'), "to_int"); } if (day < 1 || day > 31) { - self.$raise($$($nesting, 'ArgumentError'), "" + "day out of range: " + (day)) + $Kernel.$raise($$$('ArgumentError'), "day out of range: " + (day)) } if (hour === nil) { @@ -22698,11 +22301,11 @@ Opal.modules["corelib/time"] = function(Opal) { } else if (hour.$$is_string) { hour = parseInt(hour, 10); } else { - hour = $$($nesting, 'Opal')['$coerce_to!'](hour, $$($nesting, 'Integer'), "to_int"); + hour = $Opal['$coerce_to!'](hour, $$$('Integer'), "to_int"); } if (hour < 0 || hour > 24) { - self.$raise($$($nesting, 'ArgumentError'), "" + "hour out of range: " + (hour)) + $Kernel.$raise($$$('ArgumentError'), "hour out of range: " + (hour)) } if (min === nil) { @@ -22710,11 +22313,11 @@ Opal.modules["corelib/time"] = function(Opal) { } else if (min.$$is_string) { min = parseInt(min, 10); } else { - min = $$($nesting, 'Opal')['$coerce_to!'](min, $$($nesting, 'Integer'), "to_int"); + min = $Opal['$coerce_to!'](min, $$$('Integer'), "to_int"); } if (min < 0 || min > 59) { - self.$raise($$($nesting, 'ArgumentError'), "" + "min out of range: " + (min)) + $Kernel.$raise($$$('ArgumentError'), "min out of range: " + (min)) } if (sec === nil) { @@ -22723,57 +22326,41 @@ Opal.modules["corelib/time"] = function(Opal) { if (sec.$$is_string) { sec = parseInt(sec, 10); } else { - sec = $$($nesting, 'Opal')['$coerce_to!'](sec, $$($nesting, 'Integer'), "to_int"); + sec = $Opal['$coerce_to!'](sec, $$$('Integer'), "to_int"); } } if (sec < 0 || sec > 60) { - self.$raise($$($nesting, 'ArgumentError'), "" + "sec out of range: " + (sec)) + $Kernel.$raise($$$('ArgumentError'), "sec out of range: " + (sec)) } return [year, month, day, hour, min, sec]; } ; - Opal.defs(self, '$new', $Time_new$2 = function(year, month, day, hour, min, sec, utc_offset) { + $defs(self, '$new', function $Time_new$1(year, month, day, hour, min, sec, utc_offset) { var self = this; ; - if (month == null) { - month = nil; - }; + if (month == null) month = nil;; - if (day == null) { - day = nil; - }; + if (day == null) day = nil;; - if (hour == null) { - hour = nil; - }; + if (hour == null) hour = nil;; - if (min == null) { - min = nil; - }; + if (min == null) min = nil;; - if (sec == null) { - sec = nil; - }; + if (sec == null) sec = nil;; - if (utc_offset == null) { - utc_offset = nil; - }; + if (utc_offset == null) utc_offset = nil;; - var args, result; + var args, result, timezone; if (year === undefined) { return new Date(); } - if (utc_offset !== nil) { - self.$raise($$($nesting, 'ArgumentError'), "Opal does not support explicitly specifying UTC offset for Time") - } - args = time_params(year, month, day, hour, min, sec); year = args[0]; month = args[1]; @@ -22786,49 +22373,70 @@ Opal.modules["corelib/time"] = function(Opal) { if (year < 100) { result.setFullYear(year); } + + if (utc_offset !== nil) { + timezone = self.$_parse_offset(utc_offset); + } + + if (timezone != null) { + result = new Date(result.getTime() - timezone * 3600000 - result.getTimezoneOffset() * 60000); + result.timezone = timezone; + } + return result; ; - }, $Time_new$2.$$arity = -1); - Opal.defs(self, '$local', $Time_local$3 = function $$local(year, month, day, hour, min, sec, millisecond, _dummy1, _dummy2, _dummy3) { - var self = this; + }, -1); + $defs(self, '$_parse_offset', function $$_parse_offset(utc_offset) { + + + var timezone; + if (utc_offset.$$is_string) { + if (utc_offset == 'UTC') { + timezone = 0; + } + else if(/^[+-]\d\d:[0-5]\d$/.test(utc_offset)) { + var sign, hours, minutes; + sign = utc_offset[0]; + hours = +(utc_offset[1] + utc_offset[2]); + minutes = +(utc_offset[4] + utc_offset[5]); + timezone = (sign == '-' ? -1 : 1) * (hours + minutes / 60); + } + else { + // Unsupported: "A".."I","K".."Z" + $Kernel.$raise($$$('ArgumentError'), "\"+HH:MM\", \"-HH:MM\", \"UTC\" expected for utc_offset: " + (utc_offset)) + } + } + else if (utc_offset.$$is_number) { + timezone = utc_offset / 3600; + } + else { + $Kernel.$raise($$$('ArgumentError'), "Opal doesn't support other types for a timezone argument than Integer and String") + } + return timezone; + + }, 1); + $defs(self, '$local', function $$local(year, month, day, hour, min, sec, millisecond, _dummy1, _dummy2, _dummy3) { - if (month == null) { - month = nil; - }; - if (day == null) { - day = nil; - }; + if (month == null) month = nil;; - if (hour == null) { - hour = nil; - }; + if (day == null) day = nil;; - if (min == null) { - min = nil; - }; + if (hour == null) hour = nil;; - if (sec == null) { - sec = nil; - }; + if (min == null) min = nil;; - if (millisecond == null) { - millisecond = nil; - }; + if (sec == null) sec = nil;; - if (_dummy1 == null) { - _dummy1 = nil; - }; + if (millisecond == null) millisecond = nil;; - if (_dummy2 == null) { - _dummy2 = nil; - }; + if (_dummy1 == null) _dummy1 = nil;; - if (_dummy3 == null) { - _dummy3 = nil; - }; + if (_dummy2 == null) _dummy2 = nil;; + + if (_dummy3 == null) _dummy3 = nil;; var args, result; @@ -22856,47 +22464,28 @@ Opal.modules["corelib/time"] = function(Opal) { } return result; ; - }, $Time_local$3.$$arity = -2); - Opal.defs(self, '$gm', $Time_gm$4 = function $$gm(year, month, day, hour, min, sec, millisecond, _dummy1, _dummy2, _dummy3) { - var self = this; - + }, -2); + $defs(self, '$gm', function $$gm(year, month, day, hour, min, sec, millisecond, _dummy1, _dummy2, _dummy3) { - if (month == null) { - month = nil; - }; - if (day == null) { - day = nil; - }; + if (month == null) month = nil;; - if (hour == null) { - hour = nil; - }; + if (day == null) day = nil;; - if (min == null) { - min = nil; - }; + if (hour == null) hour = nil;; - if (sec == null) { - sec = nil; - }; + if (min == null) min = nil;; - if (millisecond == null) { - millisecond = nil; - }; + if (sec == null) sec = nil;; - if (_dummy1 == null) { - _dummy1 = nil; - }; + if (millisecond == null) millisecond = nil;; - if (_dummy2 == null) { - _dummy2 = nil; - }; + if (_dummy1 == null) _dummy1 = nil;; - if (_dummy3 == null) { - _dummy3 = nil; - }; + if (_dummy2 == null) _dummy2 = nil;; + + if (_dummy3 == null) _dummy3 = nil;; var args, result; @@ -22922,59 +22511,54 @@ Opal.modules["corelib/time"] = function(Opal) { if (year < 100) { result.setUTCFullYear(year); } - result.is_utc = true; + result.timezone = 0; return result; ; - }, $Time_gm$4.$$arity = -2); - (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - - - $alias(self, "mktime", "local"); - return $alias(self, "utc", "gm"); - })(Opal.get_singleton_class(self), $nesting); - Opal.defs(self, '$now', $Time_now$5 = function $$now() { + }, -2); + $defs(self, '$now', function $$now() { var self = this; return self.$new() - }, $Time_now$5.$$arity = 0); + }, 0); - Opal.def(self, '$+', $Time_$plus$6 = function(other) { + $def(self, '$+', function $Time_$plus$2(other) { var self = this; - if ($truthy($$($nesting, 'Time')['$==='](other))) { - self.$raise($$($nesting, 'TypeError'), "time + time?")}; + if ($eqeqeq($$$('Time'), other)) { + $Kernel.$raise($$$('TypeError'), "time + time?") + }; if (!other.$$is_number) { - other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Integer'), "to_int"); + other = $Opal['$coerce_to!'](other, $$$('Integer'), "to_int"); } var result = new Date(self.getTime() + (other * 1000)); - result.is_utc = self.is_utc; + result.timezone = self.timezone; return result; ; - }, $Time_$plus$6.$$arity = 1); + }, 1); - Opal.def(self, '$-', $Time_$minus$7 = function(other) { + $def(self, '$-', function $Time_$minus$3(other) { var self = this; - if ($truthy($$($nesting, 'Time')['$==='](other))) { - return (self.getTime() - other.getTime()) / 1000}; + if ($eqeqeq($$$('Time'), other)) { + return (self.getTime() - other.getTime()) / 1000 + }; if (!other.$$is_number) { - other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Integer'), "to_int"); + other = $Opal['$coerce_to!'](other, $$$('Integer'), "to_int"); } var result = new Date(self.getTime() - (other * 1000)); - result.is_utc = self.is_utc; + result.timezone = self.timezone; return result; ; - }, $Time_$minus$7.$$arity = 1); + }, 1); - Opal.def(self, '$<=>', $Time_$lt_eq_gt$8 = function(other) { + $def(self, '$<=>', function $Time_$lt_eq_gt$4(other) { var self = this, r = nil; - if ($truthy($$($nesting, 'Time')['$==='](other))) { + if ($eqeqeq($$$('Time'), other)) { return self.$to_f()['$<=>'](other.$to_f()) } else { @@ -22989,42 +22573,53 @@ Opal.modules["corelib/time"] = function(Opal) { return 0 }; } - }, $Time_$lt_eq_gt$8.$$arity = 1); + }, 1); - Opal.def(self, '$==', $Time_$eq_eq$9 = function(other) { + $def(self, '$==', function $Time_$eq_eq$5(other) { var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_1 = $$($nesting, 'Time')['$==='](other)))) { + if ($truthy(($ret_or_1 = $$$('Time')['$==='](other)))) { return self.$to_f() === other.$to_f() } else { return $ret_or_1 } - }, $Time_$eq_eq$9.$$arity = 1); + }, 1); - Opal.def(self, '$asctime', $Time_asctime$10 = function $$asctime() { + $def(self, '$asctime', function $$asctime() { var self = this; return self.$strftime("%a %b %e %H:%M:%S %Y") - }, $Time_asctime$10.$$arity = 0); - $alias(self, "ctime", "asctime"); - - Opal.def(self, '$day', $Time_day$11 = function $$day() { - var self = this; + }, 0); + $send([["year", "getFullYear", "getUTCFullYear"], ["mon", "getMonth", "getUTCMonth", 1], ["wday", "getDay", "getUTCDay"], ["day", "getDate", "getUTCDate"], ["hour", "getHours", "getUTCHours"], ["min", "getMinutes", "getUTCMinutes"], ["sec", "getSeconds", "getUTCSeconds"]], 'each', [], function $Time$6(method, getter, utcgetter, difference){var self = $Time$6.$$s == null ? this : $Time$6.$$s; + + + + if (method == null) method = nil;; + + if (getter == null) getter = nil;; + + if (utcgetter == null) utcgetter = nil;; + + if (difference == null) difference = 0;; + return $send(self, 'define_method', [method], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s; - return self.is_utc ? self.getUTCDate() : self.getDate(); - }, $Time_day$11.$$arity = 0); + + return difference + ((self.timezone != null) ? + (new Date(self.getTime() + self.timezone * 3600000))[utcgetter]() : + self[getter]()) + }, {$$arity: 0, $$s: self});}, {$$arity: -4, $$s: self}); - Opal.def(self, '$yday', $Time_yday$12 = function $$yday() { + $def(self, '$yday', function $$yday() { var self = this, start_of_year = nil, start_of_day = nil, one_day = nil; - start_of_year = $$($nesting, 'Time').$new(self.$year()).$to_i(); - start_of_day = $$($nesting, 'Time').$new(self.$year(), self.$month(), self.$day()).$to_i(); + start_of_year = $$('Time').$new(self.$year()).$to_i(); + start_of_day = $$('Time').$new(self.$year(), self.$month(), self.$day()).$to_i(); one_day = 86400; return $rb_plus($rb_divide($rb_minus(start_of_day, start_of_year), one_day).$round(), 1); - }, $Time_yday$12.$$arity = 0); + }, 0); - Opal.def(self, '$isdst', $Time_isdst$13 = function $$isdst() { + $def(self, '$isdst', function $$isdst() { var self = this; @@ -23032,10 +22627,9 @@ Opal.modules["corelib/time"] = function(Opal) { jul = new Date(self.getFullYear(), 6, 1); return self.getTimezoneOffset() < Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); - }, $Time_isdst$13.$$arity = 0); - $alias(self, "dst?", "isdst"); + }, 0); - Opal.def(self, '$dup', $Time_dup$14 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this, copy = nil; @@ -23043,37 +22637,35 @@ Opal.modules["corelib/time"] = function(Opal) { copy.$copy_instance_variables(self); copy.$initialize_dup(self); return copy; - }, $Time_dup$14.$$arity = 0); + }, 0); - Opal.def(self, '$eql?', $Time_eql$ques$15 = function(other) { - var self = this, $ret_or_2 = nil; + $def(self, '$eql?', function $Time_eql$ques$8(other) { + var self = this, $ret_or_1 = nil; - if ($truthy(($ret_or_2 = other['$is_a?']($$($nesting, 'Time'))))) { + if ($truthy(($ret_or_1 = other['$is_a?']($$$('Time'))))) { return self['$<=>'](other)['$zero?']() } else { - return $ret_or_2 + return $ret_or_1 } - }, $Time_eql$ques$15.$$arity = 1); - - Opal.def(self, '$friday?', $Time_friday$ques$16 = function() { - var self = this; + }, 1); + $send([["sunday?", 0], ["monday?", 1], ["tuesday?", 2], ["wednesday?", 3], ["thursday?", 4], ["friday?", 5], ["saturday?", 6]], 'each', [], function $Time$9(method, weekday){var self = $Time$9.$$s == null ? this : $Time$9.$$s; - return self.$wday() == 5 - }, $Time_friday$ques$16.$$arity = 0); - - Opal.def(self, '$hash', $Time_hash$17 = function $$hash() { - var self = this; + + + if (method == null) method = nil;; + + if (weekday == null) weekday = nil;; + return $send(self, 'define_method', [method], function $$10(){var self = $$10.$$s == null ? this : $$10.$$s; - return 'Time:' + self.getTime(); - }, $Time_hash$17.$$arity = 0); + return self.$wday() === weekday}, {$$arity: 0, $$s: self});}, {$$arity: 2, $$s: self}); - Opal.def(self, '$hour', $Time_hour$18 = function $$hour() { + $def(self, '$hash', function $$hash() { var self = this; - return self.is_utc ? self.getUTCHours() : self.getHours(); - }, $Time_hour$18.$$arity = 0); + return 'Time:' + self.getTime(); + }, 0); - Opal.def(self, '$inspect', $Time_inspect$19 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; if ($truthy(self['$utc?']())) { @@ -23081,60 +22673,31 @@ Opal.modules["corelib/time"] = function(Opal) { } else { return self.$strftime("%Y-%m-%d %H:%M:%S %z") } - }, $Time_inspect$19.$$arity = 0); - $alias(self, "mday", "day"); - - Opal.def(self, '$min', $Time_min$20 = function $$min() { - var self = this; - - return self.is_utc ? self.getUTCMinutes() : self.getMinutes(); - }, $Time_min$20.$$arity = 0); + }, 0); - Opal.def(self, '$mon', $Time_mon$21 = function $$mon() { - var self = this; - - return (self.is_utc ? self.getUTCMonth() : self.getMonth()) + 1; - }, $Time_mon$21.$$arity = 0); - - Opal.def(self, '$monday?', $Time_monday$ques$22 = function() { - var self = this; - - return self.$wday() == 1 - }, $Time_monday$ques$22.$$arity = 0); - $alias(self, "month", "mon"); - - Opal.def(self, '$saturday?', $Time_saturday$ques$23 = function() { - var self = this; - - return self.$wday() == 6 - }, $Time_saturday$ques$23.$$arity = 0); - - Opal.def(self, '$sec', $Time_sec$24 = function $$sec() { - var self = this; - - return self.is_utc ? self.getUTCSeconds() : self.getSeconds(); - }, $Time_sec$24.$$arity = 0); - - Opal.def(self, '$succ', $Time_succ$25 = function $$succ() { + $def(self, '$succ', function $$succ() { var self = this; var result = new Date(self.getTime() + 1000); - result.is_utc = self.is_utc; + result.timezone = self.timezone; return result; - }, $Time_succ$25.$$arity = 0); + }, 0); - Opal.def(self, '$usec', $Time_usec$26 = function $$usec() { + $def(self, '$usec', function $$usec() { var self = this; return self.getMilliseconds() * 1000; - }, $Time_usec$26.$$arity = 0); + }, 0); - Opal.def(self, '$zone', $Time_zone$27 = function $$zone() { + $def(self, '$zone', function $$zone() { var self = this; + if (self.timezone === 0) return "UTC"; + else if (self.timezone != null) return nil; + var string = self.toString(), result; @@ -23152,47 +22715,45 @@ Opal.modules["corelib/time"] = function(Opal) { return result; } - }, $Time_zone$27.$$arity = 0); + }, 0); - Opal.def(self, '$getgm', $Time_getgm$28 = function $$getgm() { + $def(self, '$getgm', function $$getgm() { var self = this; var result = new Date(self.getTime()); - result.is_utc = true; + result.timezone = 0; return result; - }, $Time_getgm$28.$$arity = 0); - $alias(self, "getutc", "getgm"); + }, 0); - Opal.def(self, '$gmtime', $Time_gmtime$29 = function $$gmtime() { + $def(self, '$gmtime', function $$gmtime() { var self = this; - self.is_utc = true; + self.timezone = 0; return self; - }, $Time_gmtime$29.$$arity = 0); - $alias(self, "utc", "gmtime"); + }, 0); - Opal.def(self, '$gmt?', $Time_gmt$ques$30 = function() { + $def(self, '$gmt?', function $Time_gmt$ques$11() { var self = this; - return self.is_utc === true; - }, $Time_gmt$ques$30.$$arity = 0); + return self.timezone === 0; + }, 0); - Opal.def(self, '$gmt_offset', $Time_gmt_offset$31 = function $$gmt_offset() { + $def(self, '$gmt_offset', function $$gmt_offset() { var self = this; - return self.is_utc ? 0 : -self.getTimezoneOffset() * 60; - }, $Time_gmt_offset$31.$$arity = 0); + return (self.timezone != null) ? self.timezone * 60 : -self.getTimezoneOffset() * 60; + }, 0); - Opal.def(self, '$strftime', $Time_strftime$32 = function $$strftime(format) { + $def(self, '$strftime', function $$strftime(format) { var self = this; return format.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g, function(full, flags, width, _, conv) { - var result = "", + var result = "", jd, c, s, zero = flags.indexOf('0') !== -1, pad = flags.indexOf('-') === -1, blank = flags.indexOf('_') !== -1, @@ -23308,7 +22869,7 @@ Opal.modules["corelib/time"] = function(Opal) { break; case 'z': - var offset = self.getTimezoneOffset(), + var offset = (self.timezone == null) ? self.getTimezoneOffset() : (-self.timezone * 60), hours = Math.floor(Math.abs(offset) / 60), minutes = Math.abs(offset) % 60; @@ -23407,6 +22968,28 @@ Opal.modules["corelib/time"] = function(Opal) { result += self.$strftime("%H:%M:%S"); break; + // Non-standard: JIS X 0301 date format + case 'J': + jd = self.$to_date().$jd(); + if (jd < 2405160) { + result += self.$strftime("%Y-%m-%d"); + break; + } + else if (jd < 2419614) + c = 'M', s = 1867; + else if (jd < 2424875) + c = 'T', s = 1911; + else if (jd < 2447535) + c = 'S', s = 1925; + else if (jd < 2458605) + c = 'H', s = 1988; + else + c = 'R', s = 2018; + + result += self.$format("%c%02d", c, $rb_minus(self.$year(), s)); + result += self.$strftime("-%m-%d"); + break; + default: return full; } @@ -23427,145 +23010,100 @@ Opal.modules["corelib/time"] = function(Opal) { return result; }); - }, $Time_strftime$32.$$arity = 1); - - Opal.def(self, '$sunday?', $Time_sunday$ques$33 = function() { - var self = this; - - return self.$wday() == 0 - }, $Time_sunday$ques$33.$$arity = 0); - - Opal.def(self, '$thursday?', $Time_thursday$ques$34 = function() { - var self = this; - - return self.$wday() == 4 - }, $Time_thursday$ques$34.$$arity = 0); + }, 1); - Opal.def(self, '$to_a', $Time_to_a$35 = function $$to_a() { + $def(self, '$to_a', function $$to_a() { var self = this; return [self.$sec(), self.$min(), self.$hour(), self.$day(), self.$month(), self.$year(), self.$wday(), self.$yday(), self.$isdst(), self.$zone()] - }, $Time_to_a$35.$$arity = 0); + }, 0); - Opal.def(self, '$to_f', $Time_to_f$36 = function $$to_f() { + $def(self, '$to_f', function $$to_f() { var self = this; return self.getTime() / 1000; - }, $Time_to_f$36.$$arity = 0); + }, 0); - Opal.def(self, '$to_i', $Time_to_i$37 = function $$to_i() { + $def(self, '$to_i', function $$to_i() { var self = this; return parseInt(self.getTime() / 1000, 10); - }, $Time_to_i$37.$$arity = 0); - $alias(self, "to_s", "inspect"); - - Opal.def(self, '$tuesday?', $Time_tuesday$ques$38 = function() { - var self = this; - - return self.$wday() == 2 - }, $Time_tuesday$ques$38.$$arity = 0); - $alias(self, "tv_sec", "to_i"); - $alias(self, "tv_usec", "usec"); - $alias(self, "utc?", "gmt?"); - $alias(self, "gmtoff", "gmt_offset"); - $alias(self, "utc_offset", "gmt_offset"); - - Opal.def(self, '$wday', $Time_wday$39 = function $$wday() { - var self = this; - - return self.is_utc ? self.getUTCDay() : self.getDay(); - }, $Time_wday$39.$$arity = 0); - - Opal.def(self, '$wednesday?', $Time_wednesday$ques$40 = function() { - var self = this; - - return self.$wday() == 3 - }, $Time_wednesday$ques$40.$$arity = 0); + }, 0); - Opal.def(self, '$year', $Time_year$41 = function $$year() { - var self = this; - - return self.is_utc ? self.getUTCFullYear() : self.getFullYear(); - }, $Time_year$41.$$arity = 0); - return (Opal.def(self, '$cweek_cyear', $Time_cweek_cyear$42 = function $$cweek_cyear() { - var self = this, jan01 = nil, jan01_wday = nil, first_monday = nil, year = nil, $ret_or_3 = nil, offset = nil, week = nil, dec31 = nil, dec31_wday = nil, $ret_or_4 = nil; + $def(self, '$cweek_cyear', function $$cweek_cyear() { + var self = this, jan01 = nil, jan01_wday = nil, first_monday = nil, year = nil, offset = nil, week = nil, dec31 = nil, dec31_wday = nil; - jan01 = $$($nesting, 'Time').$new(self.$year(), 1, 1); + jan01 = $$$('Time').$new(self.$year(), 1, 1); jan01_wday = jan01.$wday(); first_monday = 0; year = self.$year(); - if ($truthy((function() {if ($truthy(($ret_or_3 = $rb_le(jan01_wday, 4)))) { - return jan01_wday['$!='](0) - } else { - return $ret_or_3 - }; return nil; })())) { + if (($truthy($rb_le(jan01_wday, 4)) && ($neqeq(jan01_wday, 0)))) { offset = $rb_minus(jan01_wday, 1) } else { offset = $rb_minus($rb_minus(jan01_wday, 7), 1); - if (offset['$=='](-8)) { - offset = -1}; + if ($eqeq(offset, -8)) { + offset = -1 + }; }; week = $rb_divide($rb_plus(self.$yday(), offset), 7.0).$ceil(); if ($truthy($rb_le(week, 0))) { - return $$($nesting, 'Time').$new($rb_minus(self.$year(), 1), 12, 31).$cweek_cyear() - } else if (week['$=='](53)) { + return $$$('Time').$new($rb_minus(self.$year(), 1), 12, 31).$cweek_cyear() + } else if ($eqeq(week, 53)) { - dec31 = $$($nesting, 'Time').$new(self.$year(), 12, 31); + dec31 = $$$('Time').$new(self.$year(), 12, 31); dec31_wday = dec31.$wday(); - if ($truthy((function() {if ($truthy(($ret_or_4 = $rb_le(dec31_wday, 3)))) { - return dec31_wday['$!='](0) - } else { - return $ret_or_4 - }; return nil; })())) { + if (($truthy($rb_le(dec31_wday, 3)) && ($neqeq(dec31_wday, 0)))) { week = 1; - year = $rb_plus(year, 1);};}; + year = $rb_plus(year, 1); + }; + }; return [week, year]; - }, $Time_cweek_cyear$42.$$arity = 0), nil) && 'cweek_cyear'; - })($nesting[0], Date, $nesting); + }, 0); + (function(self, $parent_nesting) { + + + $alias(self, "mktime", "local"); + return $alias(self, "utc", "gm"); + })(Opal.get_singleton_class(self), $nesting); + $alias(self, "ctime", "asctime"); + $alias(self, "dst?", "isdst"); + $alias(self, "getutc", "getgm"); + $alias(self, "gmtoff", "gmt_offset"); + $alias(self, "mday", "day"); + $alias(self, "month", "mon"); + $alias(self, "to_s", "inspect"); + $alias(self, "tv_sec", "to_i"); + $alias(self, "tv_usec", "usec"); + $alias(self, "utc", "gmtime"); + $alias(self, "utc?", "gmt?"); + return $alias(self, "utc_offset", "gmt_offset"); + })('::', Date, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/struct"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; +Opal.modules["corelib/struct"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $neqeq = Opal.neqeq, $eqeq = Opal.eqeq, $Opal = Opal.Opal, $send = Opal.send, $Class = Opal.Class, $to_a = Opal.to_a, $def = Opal.def, $defs = Opal.defs, $Kernel = Opal.Kernel, $rb_gt = Opal.rb_gt, $rb_minus = Opal.rb_minus, $eqeqeq = Opal.eqeqeq, $rb_lt = Opal.rb_lt, $rb_ge = Opal.rb_ge, $rb_plus = Opal.rb_plus, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$==', '$class', '$!=', '$upcase', '$[]', '$unshift', '$const_name!', '$map', '$coerce_to!', '$new', '$each', '$define_struct_attribute', '$allocate', '$initialize', '$alias_method', '$module_eval', '$to_proc', '$const_set', '$raise', '$<<', '$members', '$define_method', '$instance_eval', '$last', '$>', '$length', '$-', '$keys', '$any?', '$join', '$[]=', '$each_with_index', '$hash', '$===', '$<', '$-@', '$size', '$>=', '$include?', '$to_sym', '$instance_of?', '$__id__', '$eql?', '$enum_for', '$name', '$+', '$each_pair', '$inspect', '$to_h', '$args', '$each_with_object', '$flatten', '$to_a', '$respond_to?', '$dig']); + Opal.add_stubs('require,include,!=,upcase,[],==,class,unshift,const_name!,map,coerce_to!,new,each,define_struct_attribute,allocate,initialize,alias_method,module_eval,to_proc,const_set,raise,<<,members,define_method,instance_eval,last,>,length,-,keys,any?,join,[]=,each_with_index,hash,===,<,-@,size,>=,include?,to_sym,instance_of?,__id__,eql?,enum_for,+,name,each_pair,inspect,to_h,args,each_with_object,flatten,to_a,respond_to?,dig'); self.$require("corelib/enumerable"); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Struct'); - var $nesting = [self].concat($parent_nesting), $Struct_new$1, $Struct_define_struct_attribute$6, $Struct_members$9, $Struct_inherited$10, $Struct_initialize$12, $Struct_initialize_copy$15, $Struct_members$16, $Struct_hash$17, $Struct_$$$18, $Struct_$$$eq$19, $Struct_$eq_eq$20, $Struct_eql$ques$21, $Struct_each$22, $Struct_each_pair$25, $Struct_length$28, $Struct_to_a$29, $Struct_inspect$31, $Struct_to_h$33, $Struct_values_at$35, $Struct_dig$37; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - self.$include($$($nesting, 'Enumerable')); - Opal.defs(self, '$new', $Struct_new$1 = function(const_name, $a, $b) { - var $iter = $Struct_new$1.$$p, block = $iter || nil, $post_args, $kwargs, args, keyword_init, $$2, $$3, self = this, $ret_or_1 = nil, klass = nil; + self.$include($$$('Enumerable')); + $defs(self, '$new', function $Struct_new$1(const_name, $a, $b) { + var block = $Struct_new$1.$$p || nil, $post_args, $kwargs, args, keyword_init, self = this, klass = nil; - if ($iter) $Struct_new$1.$$p = null; - + delete $Struct_new$1.$$p; - if ($iter) $Struct_new$1.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); $kwargs = Opal.extract_kwargs($post_args); @@ -23578,24 +23116,18 @@ Opal.modules["corelib/struct"] = function(Opal) { args = $post_args;; keyword_init = $kwargs.$$smap["keyword_init"]; - if (keyword_init == null) { - keyword_init = false - }; + if (keyword_init == null) keyword_init = false; if ($truthy(const_name)) { - if ($truthy((function() {if ($truthy(($ret_or_1 = const_name.$class()['$==']($$($nesting, 'String'))))) { - return const_name['$[]'](0).$upcase()['$!='](const_name['$[]'](0)) - } else { - return $ret_or_1 - }; return nil; })())) { + if (($eqeq(const_name.$class(), $$$('String')) && ($neqeq(const_name['$[]'](0).$upcase(), const_name['$[]'](0))))) { args.$unshift(const_name); const_name = nil; } else { try { - const_name = $$($nesting, 'Opal')['$const_name!'](const_name) + const_name = $Opal['$const_name!'](const_name) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'TypeError'), $$($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$$('TypeError'), $$$('NameError')])) { try { args.$unshift(const_name); @@ -23603,152 +23135,134 @@ Opal.modules["corelib/struct"] = function(Opal) { } finally { Opal.pop_exception(); } } else { throw $err; } }; - }}; - $send(args, 'map', [], ($$2 = function(arg){var self = $$2.$$s == null ? this : $$2.$$s; - + } + }; + $send(args, 'map', [], function $$2(arg){ - if (arg == null) { - arg = nil; - }; - return $$($nesting, 'Opal')['$coerce_to!'](arg, $$($nesting, 'String'), "to_str");}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - klass = $send($$($nesting, 'Class'), 'new', [self], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $$4; + if (arg == null) arg = nil;; + return $Opal['$coerce_to!'](arg, $$$('String'), "to_str");}, 1); + klass = $send($Class, 'new', [self], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; - $send(args, 'each', [], ($$4 = function(arg){var self = $$4.$$s == null ? this : $$4.$$s; + $send(args, 'each', [], function $$4(arg){var self = $$4.$$s == null ? this : $$4.$$s; - if (arg == null) { - arg = nil; - }; - return self.$define_struct_attribute(arg);}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + if (arg == null) arg = nil;; + return self.$define_struct_attribute(arg);}, {$$arity: 1, $$s: self}); return (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $new$5; - - Opal.def(self, '$new', $new$5 = function($a) { + + $def(self, '$new', function $new$5($a) { var $post_args, args, self = this, instance = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; instance = self.$allocate(); instance.$$data = {}; - $send(instance, 'initialize', Opal.to_a(args)); + $send(instance, 'initialize', $to_a(args)); return instance; - }, $new$5.$$arity = -1); + }, -1); return self.$alias_method("[]", "new"); - })(Opal.get_singleton_class(self), $nesting);}, $$3.$$s = self, $$3.$$arity = 0, $$3)); + })(Opal.get_singleton_class(self), $nesting);}, {$$arity: 0, $$s: self}); if ($truthy(block)) { - $send(klass, 'module_eval', [], block.$to_proc())}; + $send(klass, 'module_eval', [], block.$to_proc()) + }; klass.$$keyword_init = keyword_init; if ($truthy(const_name)) { - $$($nesting, 'Struct').$const_set(const_name, klass)}; + $$$('Struct').$const_set(const_name, klass) + }; return klass; - }, $Struct_new$1.$$arity = -2); - Opal.defs(self, '$define_struct_attribute', $Struct_define_struct_attribute$6 = function $$define_struct_attribute(name) { - var $$7, $$8, self = this; + }, -2); + $defs(self, '$define_struct_attribute', function $$define_struct_attribute(name) { + var self = this; - if (self['$==']($$($nesting, 'Struct'))) { - self.$raise($$($nesting, 'ArgumentError'), "you cannot define attributes to the Struct class")}; + if ($eqeq(self, $$$('Struct'))) { + $Kernel.$raise($$$('ArgumentError'), "you cannot define attributes to the Struct class") + }; self.$members()['$<<'](name); - $send(self, 'define_method', [name], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; + $send(self, 'define_method', [name], function $$6(){var self = $$6.$$s == null ? this : $$6.$$s; - return self.$$data[name];}, $$7.$$s = self, $$7.$$arity = 0, $$7)); - return $send(self, 'define_method', ["" + (name) + "="], ($$8 = function(value){var self = $$8.$$s == null ? this : $$8.$$s; + return self.$$data[name];}, {$$arity: 0, $$s: self}); + return $send(self, 'define_method', ["" + (name) + "="], function $$7(value){var self = $$7.$$s == null ? this : $$7.$$s; - if (value == null) { - value = nil; - }; - return self.$$data[name] = value;;}, $$8.$$s = self, $$8.$$arity = 1, $$8)); - }, $Struct_define_struct_attribute$6.$$arity = 1); - Opal.defs(self, '$members', $Struct_members$9 = function $$members() { - var self = this, $ret_or_2 = nil; + if (value == null) value = nil;; + return self.$$data[name] = value;;}, {$$arity: 1, $$s: self}); + }, 1); + $defs(self, '$members', function $$members() { + var self = this, $ret_or_1 = nil; if (self.members == null) self.members = nil; - if (self['$==']($$($nesting, 'Struct'))) { - self.$raise($$($nesting, 'ArgumentError'), "the Struct class has no members")}; - return (self.members = (function() {if ($truthy(($ret_or_2 = self.members))) { - return $ret_or_2 - } else { - return [] - }; return nil; })()); - }, $Struct_members$9.$$arity = 0); - Opal.defs(self, '$inherited', $Struct_inherited$10 = function $$inherited(klass) { - var $$11, self = this, members = nil; + if ($eqeq(self, $$$('Struct'))) { + $Kernel.$raise($$$('ArgumentError'), "the Struct class has no members") + }; + return (self.members = ($truthy(($ret_or_1 = self.members)) ? ($ret_or_1) : ([]))); + }, 0); + $defs(self, '$inherited', function $$inherited(klass) { + var self = this, members = nil; if (self.members == null) self.members = nil; members = self.members; - return $send(klass, 'instance_eval', [], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; + return $send(klass, 'instance_eval', [], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; - return (self.members = members)}, $$11.$$s = self, $$11.$$arity = 0, $$11)); - }, $Struct_inherited$10.$$arity = 1); + return (self.members = members)}, {$$arity: 0, $$s: self}); + }, 1); - Opal.def(self, '$initialize', $Struct_initialize$12 = function $$initialize($a) { - var $post_args, args, $$13, $$14, self = this, kwargs = nil, $ret_or_3 = nil, $ret_or_4 = nil, extra = nil; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, args, self = this, kwargs = nil, $ret_or_1 = nil, extra = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ($truthy(self.$class().$$keyword_init)) { - kwargs = (function() {if ($truthy(($ret_or_3 = args.$last()))) { - return $ret_or_3 - } else { - return $hash2([], {}) - }; return nil; })(); - if ($truthy((function() {if ($truthy(($ret_or_4 = $rb_gt(args.$length(), 1)))) { - return $ret_or_4 - } else { - return (args.length === 1 && !kwargs.$$is_hash); - }; return nil; })())) { - self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (given " + (args.$length()) + ", expected 0)")}; + kwargs = ($truthy(($ret_or_1 = args.$last())) ? ($ret_or_1) : ($hash2([], {}))); + if (($truthy($rb_gt(args.$length(), 1)) || ($truthy((args.length === 1 && !kwargs.$$is_hash))))) { + $Kernel.$raise($$$('ArgumentError'), "wrong number of arguments (given " + (args.$length()) + ", expected 0)") + }; extra = $rb_minus(kwargs.$keys(), self.$class().$members()); if ($truthy(extra['$any?']())) { - self.$raise($$($nesting, 'ArgumentError'), "" + "unknown keywords: " + (extra.$join(", ")))}; - return $send(self.$class().$members(), 'each', [], ($$13 = function(name){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + $Kernel.$raise($$$('ArgumentError'), "unknown keywords: " + (extra.$join(", "))) + }; + return $send(self.$class().$members(), 'each', [], function $$9(name){var self = $$9.$$s == null ? this : $$9.$$s, $writer = nil; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; $writer = [name, kwargs['$[]'](name)]; - $send(self, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + $send(self, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); } else { if ($truthy($rb_gt(args.$length(), self.$class().$members().$length()))) { - self.$raise($$($nesting, 'ArgumentError'), "struct size differs")}; - return $send(self.$class().$members(), 'each_with_index', [], ($$14 = function(name, index){var self = $$14.$$s == null ? this : $$14.$$s, $writer = nil; + $Kernel.$raise($$$('ArgumentError'), "struct size differs") + }; + return $send(self.$class().$members(), 'each_with_index', [], function $$10(name, index){var self = $$10.$$s == null ? this : $$10.$$s, $writer = nil; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (index == null) { - index = nil; - }; + if (index == null) index = nil;; $writer = [name, args['$[]'](index)]; - $send(self, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$14.$$s = self, $$14.$$arity = 2, $$14)); + $send(self, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 2, $$s: self}); }; - }, $Struct_initialize$12.$$arity = -1); + }, -1); - Opal.def(self, '$initialize_copy', $Struct_initialize_copy$15 = function $$initialize_copy(from) { + $def(self, '$initialize_copy', function $$initialize_copy(from) { var self = this; @@ -23759,73 +23273,80 @@ Opal.modules["corelib/struct"] = function(Opal) { self.$$data[name] = from.$$data[name]; } - }, $Struct_initialize_copy$15.$$arity = 1); + }, 1); + $defs(self, '$keyword_init?', function $Struct_keyword_init$ques$11() { + var self = this; + + return self.$$keyword_init; + }, 0); - Opal.def(self, '$members', $Struct_members$16 = function $$members() { + $def(self, '$members', function $$members() { var self = this; return self.$class().$members() - }, $Struct_members$16.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $Struct_hash$17 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; - return $$($nesting, 'Hash').$new(self.$$data).$hash() - }, $Struct_hash$17.$$arity = 0); + return $$('Hash').$new(self.$$data).$hash() + }, 0); - Opal.def(self, '$[]', $Struct_$$$18 = function(name) { + $def(self, '$[]', function $Struct_$$$12(name) { var self = this; - if ($truthy($$($nesting, 'Integer')['$==='](name))) { + if ($eqeqeq($$$('Integer'), name)) { if ($truthy($rb_lt(name, self.$class().$members().$size()['$-@']()))) { - self.$raise($$($nesting, 'IndexError'), "" + "offset " + (name) + " too small for struct(size:" + (self.$class().$members().$size()) + ")")}; + $Kernel.$raise($$$('IndexError'), "offset " + (name) + " too small for struct(size:" + (self.$class().$members().$size()) + ")") + }; if ($truthy($rb_ge(name, self.$class().$members().$size()))) { - self.$raise($$($nesting, 'IndexError'), "" + "offset " + (name) + " too large for struct(size:" + (self.$class().$members().$size()) + ")")}; + $Kernel.$raise($$$('IndexError'), "offset " + (name) + " too large for struct(size:" + (self.$class().$members().$size()) + ")") + }; name = self.$class().$members()['$[]'](name); - } else if ($truthy($$($nesting, 'String')['$==='](name))) { + } else if ($eqeqeq($$$('String'), name)) { if(!self.$$data.hasOwnProperty(name)) { - self.$raise($$($nesting, 'NameError').$new("" + "no member '" + (name) + "' in struct", name)) + $Kernel.$raise($$$('NameError').$new("no member '" + (name) + "' in struct", name)) } } else { - self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (name.$class()) + " into Integer") + $Kernel.$raise($$$('TypeError'), "no implicit conversion of " + (name.$class()) + " into Integer") }; - name = $$($nesting, 'Opal')['$coerce_to!'](name, $$($nesting, 'String'), "to_str"); + name = $Opal['$coerce_to!'](name, $$$('String'), "to_str"); return self.$$data[name];; - }, $Struct_$$$18.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Struct_$$$eq$19 = function(name, value) { + $def(self, '$[]=', function $Struct_$$$eq$13(name, value) { var self = this; - if ($truthy($$($nesting, 'Integer')['$==='](name))) { + if ($eqeqeq($$$('Integer'), name)) { if ($truthy($rb_lt(name, self.$class().$members().$size()['$-@']()))) { - self.$raise($$($nesting, 'IndexError'), "" + "offset " + (name) + " too small for struct(size:" + (self.$class().$members().$size()) + ")")}; + $Kernel.$raise($$$('IndexError'), "offset " + (name) + " too small for struct(size:" + (self.$class().$members().$size()) + ")") + }; if ($truthy($rb_ge(name, self.$class().$members().$size()))) { - self.$raise($$($nesting, 'IndexError'), "" + "offset " + (name) + " too large for struct(size:" + (self.$class().$members().$size()) + ")")}; + $Kernel.$raise($$$('IndexError'), "offset " + (name) + " too large for struct(size:" + (self.$class().$members().$size()) + ")") + }; name = self.$class().$members()['$[]'](name); - } else if ($truthy($$($nesting, 'String')['$==='](name))) { - if ($truthy(self.$class().$members()['$include?'](name.$to_sym()))) { - } else { - self.$raise($$($nesting, 'NameError').$new("" + "no member '" + (name) + "' in struct", name)) + } else if ($eqeqeq($$$('String'), name)) { + if (!$truthy(self.$class().$members()['$include?'](name.$to_sym()))) { + $Kernel.$raise($$$('NameError').$new("no member '" + (name) + "' in struct", name)) } } else { - self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (name.$class()) + " into Integer") + $Kernel.$raise($$$('TypeError'), "no implicit conversion of " + (name.$class()) + " into Integer") }; - name = $$($nesting, 'Opal')['$coerce_to!'](name, $$($nesting, 'String'), "to_str"); + name = $Opal['$coerce_to!'](name, $$$('String'), "to_str"); return self.$$data[name] = value;; - }, $Struct_$$$eq$19.$$arity = 2); + }, 2); - Opal.def(self, '$==', $Struct_$eq_eq$20 = function(other) { + $def(self, '$==', function $Struct_$eq_eq$14(other) { var self = this; - if ($truthy(other['$instance_of?'](self.$class()))) { - } else { + if (!$truthy(other['$instance_of?'](self.$class()))) { return false }; @@ -23841,7 +23362,7 @@ Opal.modules["corelib/struct"] = function(Opal) { a = struct.$$data[key]; b = other.$$data[key]; - if ($$($nesting, 'Struct')['$==='](a)) { + if ($$$('Struct')['$==='](a)) { if (!recursed1.hasOwnProperty((a).$__id__()) || !recursed2.hasOwnProperty((b).$__id__())) { if (!_eqeq(a, b)) { return false; @@ -23859,14 +23380,13 @@ Opal.modules["corelib/struct"] = function(Opal) { return _eqeq(self, other); ; - }, $Struct_$eq_eq$20.$$arity = 1); + }, 1); - Opal.def(self, '$eql?', $Struct_eql$ques$21 = function(other) { + $def(self, '$eql?', function $Struct_eql$ques$15(other) { var self = this; - if ($truthy(other['$instance_of?'](self.$class()))) { - } else { + if (!$truthy(other['$instance_of?'](self.$class()))) { return false }; @@ -23882,7 +23402,7 @@ Opal.modules["corelib/struct"] = function(Opal) { a = struct.$$data[key]; b = other.$$data[key]; - if ($$($nesting, 'Struct')['$==='](a)) { + if ($$$('Struct')['$==='](a)) { if (!recursed1.hasOwnProperty((a).$__id__()) || !recursed2.hasOwnProperty((b).$__id__())) { if (!_eqeq(a, b)) { return false; @@ -23900,222 +23420,182 @@ Opal.modules["corelib/struct"] = function(Opal) { return _eqeq(self, other); ; - }, $Struct_eql$ques$21.$$arity = 1); + }, 1); - Opal.def(self, '$each', $Struct_each$22 = function $$each() { - var $$23, $$24, $iter = $Struct_each$22.$$p, $yield = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var $yield = $$each.$$p || nil, self = this; - if ($iter) $Struct_each$22.$$p = null; + delete $$each.$$p; - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["each"], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; + if (!($yield !== nil)) { + return $send(self, 'enum_for', ["each"], function $$16(){var self = $$16.$$s == null ? this : $$16.$$s; - return self.$size()}, $$23.$$s = self, $$23.$$arity = 0, $$23)) + return self.$size()}, {$$arity: 0, $$s: self}) }; - $send(self.$class().$members(), 'each', [], ($$24 = function(name){var self = $$24.$$s == null ? this : $$24.$$s; + $send(self.$class().$members(), 'each', [], function $$17(name){var self = $$17.$$s == null ? this : $$17.$$s; - if (name == null) { - name = nil; - }; - return Opal.yield1($yield, self['$[]'](name));;}, $$24.$$s = self, $$24.$$arity = 1, $$24)); + if (name == null) name = nil;; + return Opal.yield1($yield, self['$[]'](name));;}, {$$arity: 1, $$s: self}); return self; - }, $Struct_each$22.$$arity = 0); + }, 0); - Opal.def(self, '$each_pair', $Struct_each_pair$25 = function $$each_pair() { - var $$26, $$27, $iter = $Struct_each_pair$25.$$p, $yield = $iter || nil, self = this; + $def(self, '$each_pair', function $$each_pair() { + var $yield = $$each_pair.$$p || nil, self = this; - if ($iter) $Struct_each_pair$25.$$p = null; + delete $$each_pair.$$p; - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["each_pair"], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s; + if (!($yield !== nil)) { + return $send(self, 'enum_for', ["each_pair"], function $$18(){var self = $$18.$$s == null ? this : $$18.$$s; - return self.$size()}, $$26.$$s = self, $$26.$$arity = 0, $$26)) + return self.$size()}, {$$arity: 0, $$s: self}) }; - $send(self.$class().$members(), 'each', [], ($$27 = function(name){var self = $$27.$$s == null ? this : $$27.$$s; + $send(self.$class().$members(), 'each', [], function $$19(name){var self = $$19.$$s == null ? this : $$19.$$s; - if (name == null) { - name = nil; - }; - return Opal.yield1($yield, [name, self['$[]'](name)]);;}, $$27.$$s = self, $$27.$$arity = 1, $$27)); + if (name == null) name = nil;; + return Opal.yield1($yield, [name, self['$[]'](name)]);;}, {$$arity: 1, $$s: self}); return self; - }, $Struct_each_pair$25.$$arity = 0); + }, 0); - Opal.def(self, '$length', $Struct_length$28 = function $$length() { + $def(self, '$length', function $$length() { var self = this; return self.$class().$members().$length() - }, $Struct_length$28.$$arity = 0); - $alias(self, "size", "length"); + }, 0); - Opal.def(self, '$to_a', $Struct_to_a$29 = function $$to_a() { - var $$30, self = this; + $def(self, '$to_a', function $$to_a() { + var self = this; - return $send(self.$class().$members(), 'map', [], ($$30 = function(name){var self = $$30.$$s == null ? this : $$30.$$s; + return $send(self.$class().$members(), 'map', [], function $$20(name){var self = $$20.$$s == null ? this : $$20.$$s; - if (name == null) { - name = nil; - }; - return self['$[]'](name);}, $$30.$$s = self, $$30.$$arity = 1, $$30)) - }, $Struct_to_a$29.$$arity = 0); - $alias(self, "values", "to_a"); + if (name == null) name = nil;; + return self['$[]'](name);}, {$$arity: 1, $$s: self}) + }, 0); + var inspect_stack = []; - Opal.def(self, '$inspect', $Struct_inspect$31 = function $$inspect() { - var $$32, self = this, result = nil, $ret_or_5 = nil; + $def(self, '$inspect', function $$inspect() { + var self = this, result = nil, pushed = nil; + return (function() { try { result = "#") } else { - return $ret_or_5 - }; return nil; })())) { - result = $rb_plus(result, "" + (self.$class()) + " ")}; - result = $rb_plus(result, $send(self.$each_pair(), 'map', [], ($$32 = function(name, value){var self = $$32.$$s == null ? this : $$32.$$s; - - - - if (name == null) { - name = nil; - }; - if (value == null) { - value = nil; + (inspect_stack)['$<<'](self.$__id__()); + pushed = true; + if (($eqeqeq($$$('Struct'), self) && ($truthy(self.$class().$name())))) { + result = $rb_plus(result, "" + (self.$class()) + " ") }; - return "" + (name) + "=" + (value.$inspect());}, $$32.$$s = self, $$32.$$arity = 2, $$32)).$join(", ")); - result = $rb_plus(result, ">"); - return result; - }, $Struct_inspect$31.$$arity = 0); - $alias(self, "to_s", "inspect"); + result = $rb_plus(result, $send(self.$each_pair(), 'map', [], function $$21(name, value){ + + + if (name == null) name = nil;; + + if (value == null) value = nil;; + return "" + (name) + "=" + ($$('Opal').$inspect(value));}, 2).$join(", ")); + result = $rb_plus(result, ">"); + return result; + }; + } finally { + ($truthy(pushed) ? (inspect_stack.pop()) : nil) + }; })() + }, 0); - Opal.def(self, '$to_h', $Struct_to_h$33 = function $$to_h() { - var $iter = $Struct_to_h$33.$$p, block = $iter || nil, $$34, self = this; + $def(self, '$to_h', function $$to_h() { + var block = $$to_h.$$p || nil, self = this; - if ($iter) $Struct_to_h$33.$$p = null; + delete $$to_h.$$p; - - if ($iter) $Struct_to_h$33.$$p = null;; + ; if ((block !== nil)) { - return $send($send(self, 'map', [], block.$to_proc()), 'to_h', Opal.to_a(self.$args()))}; - return $send(self.$class().$members(), 'each_with_object', [$hash2([], {})], ($$34 = function(name, h){var self = $$34.$$s == null ? this : $$34.$$s, $writer = nil; + return $send($send(self, 'map', [], block.$to_proc()), 'to_h', $to_a(self.$args())) + }; + return $send(self.$class().$members(), 'each_with_object', [$hash2([], {})], function $$22(name, h){var self = $$22.$$s == null ? this : $$22.$$s, $writer = nil; - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (h == null) { - h = nil; - }; + if (h == null) h = nil;; $writer = [name, self['$[]'](name)]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$34.$$s = self, $$34.$$arity = 2, $$34)); - }, $Struct_to_h$33.$$arity = 0); + $send(h, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 2, $$s: self}); + }, 0); - Opal.def(self, '$values_at', $Struct_values_at$35 = function $$values_at($a) { - var $post_args, args, $$36, self = this; + $def(self, '$values_at', function $$values_at($a) { + var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - args = $send(args, 'map', [], ($$36 = function(arg){var self = $$36.$$s == null ? this : $$36.$$s; - + args = $send(args, 'map', [], function $$23(arg){ - if (arg == null) { - arg = nil; - }; - return arg.$$is_range ? arg.$to_a() : arg;}, $$36.$$s = self, $$36.$$arity = 1, $$36)).$flatten(); + if (arg == null) arg = nil;; + return arg.$$is_range ? arg.$to_a() : arg;}, 1).$flatten(); var result = []; for (var i = 0, len = args.length; i < len; i++) { if (!args[i].$$is_number) { - self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + ((args[i]).$class()) + " into Integer") + $Kernel.$raise($$$('TypeError'), "no implicit conversion of " + ((args[i]).$class()) + " into Integer") } result.push(self['$[]'](args[i])); } return result; ; - }, $Struct_values_at$35.$$arity = -1); - return (Opal.def(self, '$dig', $Struct_dig$37 = function $$dig(key, $a) { + }, -1); + + $def(self, '$dig', function $$dig(key, $a) { var $post_args, keys, self = this, item = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); keys = $post_args;; - item = (function() {if ($truthy(key.$$is_string && self.$$data.hasOwnProperty(key))) { - return self.$$data[key] || nil; - } else { - return nil - }; return nil; })(); + item = ($truthy(key.$$is_string && self.$$data.hasOwnProperty(key)) ? (self.$$data[key] || nil) : nil); if (item === nil || keys.length === 0) { return item; } ; - if ($truthy(item['$respond_to?']("dig"))) { - } else { - self.$raise($$($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") + if (!$truthy(item['$respond_to?']("dig"))) { + $Kernel.$raise($$$('TypeError'), "" + (item.$class()) + " does not have #dig method") }; - return $send(item, 'dig', Opal.to_a(keys)); - }, $Struct_dig$37.$$arity = -2), nil) && 'dig'; - })($nesting[0], null, $nesting); -}; - -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/main"] = function(Opal) { - var $to_s$1, $include$2, $using$3, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; - - Opal.add_stubs(['$include', '$raise']); - - Opal.defs(self, '$to_s', $to_s$1 = function $$to_s() { - var self = this; - - return "main" - }, $to_s$1.$$arity = 0); - Opal.defs(self, '$include', $include$2 = function $$include(mod) { - var self = this; - - return $$($nesting, 'Object').$include(mod) - }, $include$2.$$arity = 1); - return (Opal.defs(self, '$using', $using$3 = function $$using(mod) { - var self = this; - - return self.$raise("main.using is permitted only at toplevel") - }, $using$3.$$arity = 1), nil) && 'using'; + return $send(item, 'dig', $to_a(keys)); + }, -2); + $alias(self, "size", "length"); + $alias(self, "to_s", "inspect"); + return $alias(self, "values", "to_a"); + })('::', null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/dir"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy; +Opal.modules["corelib/dir"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$[]']); + Opal.add_stubs('[]'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Dir'); var $nesting = [self].concat($parent_nesting); return (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $chdir$1, $pwd$2, $home$3; - - Opal.def(self, '$chdir', $chdir$1 = function $$chdir(dir) { - var $iter = $chdir$1.$$p, $yield = $iter || nil, self = this, prev_cwd = nil; + + $def(self, '$chdir', function $$chdir(dir) { + var $yield = $$chdir.$$p || nil, prev_cwd = nil; - if ($iter) $chdir$1.$$p = null; + delete $$chdir.$$p; return (function() { try { prev_cwd = Opal.current_dir; @@ -24124,86 +23604,70 @@ Opal.modules["corelib/dir"] = function(Opal) { } finally { Opal.current_dir = prev_cwd }; })() - }, $chdir$1.$$arity = 1); + }, 1); - Opal.def(self, '$pwd', $pwd$2 = function $$pwd() { - var self = this; - + $def(self, '$pwd', function $$pwd() { + return Opal.current_dir || '.'; - }, $pwd$2.$$arity = 0); - $alias(self, "getwd", "pwd"); - return (Opal.def(self, '$home', $home$3 = function $$home() { - var self = this, $ret_or_1 = nil; + }, 0); + + $def(self, '$home', function $$home() { + var $ret_or_1 = nil; - if ($truthy(($ret_or_1 = $$($nesting, 'ENV')['$[]']("HOME")))) { + if ($truthy(($ret_or_1 = $$$('ENV')['$[]']("HOME")))) { return $ret_or_1 } else { return "." } - }, $home$3.$$arity = 0), nil) && 'home'; + }, 0); + return $alias(self, "getwd", "pwd"); })(Opal.get_singleton_class(self), $nesting) - })($nesting[0], null, $nesting) + })('::', null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/file"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $klass = Opal.klass, $alias = Opal.alias, $range = Opal.range, $send = Opal.send; +Opal.modules["corelib/file"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $klass = Opal.klass, $const_set = Opal.const_set, $Opal = Opal.Opal, $regexp = Opal.regexp, $rb_plus = Opal.rb_plus, $def = Opal.def, $Kernel = Opal.Kernel, $eqeq = Opal.eqeq, $rb_lt = Opal.rb_lt, $rb_minus = Opal.rb_minus, $range = Opal.range, $send = Opal.send, $alias = Opal.alias; - Opal.add_stubs(['$respond_to?', '$to_path', '$pwd', '$split', '$sub', '$+', '$unshift', '$join', '$home', '$raise', '$start_with?', '$absolute_path', '$coerce_to!', '$basename', '$empty?', '$rindex', '$[]', '$nil?', '$==', '$-', '$length', '$gsub', '$find', '$=~', '$map', '$each_with_index', '$flatten', '$reject', '$to_proc', '$end_with?']); + Opal.add_stubs('respond_to?,to_path,coerce_to!,pwd,split,sub,+,unshift,join,home,raise,start_with?,absolute_path,==,<,dirname,-,basename,empty?,rindex,[],length,nil?,gsub,find,=~,map,each_with_index,flatten,reject,to_proc,end_with?'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'File'); var $nesting = [self].concat($parent_nesting), windows_root_rx = nil; - Opal.const_set($nesting[0], 'Separator', Opal.const_set($nesting[0], 'SEPARATOR', "/")); - Opal.const_set($nesting[0], 'ALT_SEPARATOR', nil); - Opal.const_set($nesting[0], 'PATH_SEPARATOR', ":"); - Opal.const_set($nesting[0], 'FNM_SYSCASE', 0); + $const_set($nesting[0], 'Separator', $const_set($nesting[0], 'SEPARATOR', "/")); + $const_set($nesting[0], 'ALT_SEPARATOR', nil); + $const_set($nesting[0], 'PATH_SEPARATOR', ":"); + $const_set($nesting[0], 'FNM_SYSCASE', 0); windows_root_rx = /^[a-zA-Z]:(?:\\|\/)/; return (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $absolute_path$1, $expand_path$2, $dirname$3, $basename$4, $extname$5, $exist$ques$6, $directory$ques$7, $join$9, $split$12; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$absolute_path', $absolute_path$1 = function $$absolute_path(path, basedir) { - var self = this, sep = nil, sep_chars = nil, new_parts = nil, $ret_or_1 = nil, path_abs = nil, basedir_abs = nil, parts = nil, leading_sep = nil, abs = nil, new_path = nil; + $def(self, '$absolute_path', function $$absolute_path(path, basedir) { + var sep = nil, sep_chars = nil, new_parts = nil, $ret_or_1 = nil, path_abs = nil, basedir_abs = nil, parts = nil, leading_sep = nil, abs = nil, new_path = nil; - if (basedir == null) { - basedir = nil; - }; - sep = $$($nesting, 'SEPARATOR'); + if (basedir == null) basedir = nil;; + sep = $$('SEPARATOR'); sep_chars = $sep_chars(); new_parts = []; - path = (function() {if ($truthy(path['$respond_to?']("to_path"))) { - return path.$to_path() - } else { - return path - }; return nil; })(); - basedir = (function() {if ($truthy(($ret_or_1 = basedir))) { - return $ret_or_1 - } else { - return $$($nesting, 'Dir').$pwd() - }; return nil; })(); + path = ($truthy(path['$respond_to?']("to_path")) ? (path.$to_path()) : (path)); + path = $Opal['$coerce_to!'](path, $$$('String'), "to_str"); + basedir = ($truthy(($ret_or_1 = basedir)) ? ($ret_or_1) : ($$$('Dir').$pwd())); path_abs = path.substr(0, sep.length) === sep || windows_root_rx.test(path); basedir_abs = basedir.substr(0, sep.length) === sep || windows_root_rx.test(basedir); if ($truthy(path_abs)) { - parts = path.$split(Opal.regexp(["[", sep_chars, "]"])); - leading_sep = windows_root_rx.test(path) ? '' : path.$sub(Opal.regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + parts = path.$split($regexp(["[", sep_chars, "]"])); + leading_sep = windows_root_rx.test(path) ? '' : path.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); abs = true; } else { - parts = $rb_plus(basedir.$split(Opal.regexp(["[", sep_chars, "]"])), path.$split(Opal.regexp(["[", sep_chars, "]"]))); - leading_sep = windows_root_rx.test(basedir) ? '' : basedir.$sub(Opal.regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + parts = $rb_plus(basedir.$split($regexp(["[", sep_chars, "]"])), path.$split($regexp(["[", sep_chars, "]"]))); + leading_sep = windows_root_rx.test(basedir) ? '' : basedir.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); abs = basedir_abs; }; @@ -24231,40 +23695,38 @@ Opal.modules["corelib/file"] = function(Opal) { ; new_path = new_parts.$join(sep); if ($truthy(abs)) { - new_path = $rb_plus(leading_sep, new_path)}; + new_path = $rb_plus(leading_sep, new_path) + }; return new_path; - }, $absolute_path$1.$$arity = -2); + }, -2); - Opal.def(self, '$expand_path', $expand_path$2 = function $$expand_path(path, basedir) { + $def(self, '$expand_path', function $$expand_path(path, basedir) { var self = this, sep = nil, sep_chars = nil, home = nil, leading_sep = nil, home_path_regexp = nil; - if (basedir == null) { - basedir = nil; - }; - sep = $$($nesting, 'SEPARATOR'); + if (basedir == null) basedir = nil;; + sep = $$('SEPARATOR'); sep_chars = $sep_chars(); if ($truthy(path[0] === '~' || (basedir && basedir[0] === '~'))) { - home = $$($nesting, 'Dir').$home(); - if ($truthy(home)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "couldn't find HOME environment -- expanding `~'") + home = $$('Dir').$home(); + if (!$truthy(home)) { + $Kernel.$raise($$$('ArgumentError'), "couldn't find HOME environment -- expanding `~'") }; - leading_sep = windows_root_rx.test(home) ? '' : home.$sub(Opal.regexp(["^([", sep_chars, "]+).*$"]), "\\1"); - if ($truthy(home['$start_with?'](leading_sep))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "non-absolute home") + leading_sep = windows_root_rx.test(home) ? '' : home.$sub($regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + if (!$truthy(home['$start_with?'](leading_sep))) { + $Kernel.$raise($$$('ArgumentError'), "non-absolute home") }; home = $rb_plus(home, sep); - home_path_regexp = Opal.regexp(["^\\~(?:", sep, "|$)"]); + home_path_regexp = $regexp(["^\\~(?:", sep, "|$)"]); path = path.$sub(home_path_regexp, home); if ($truthy(basedir)) { - basedir = basedir.$sub(home_path_regexp, home)};}; + basedir = basedir.$sub(home_path_regexp, home) + }; + }; return self.$absolute_path(path, basedir); - }, $expand_path$2.$$arity = -2); - $alias(self, "realpath", "expand_path"); + }, -2); // Coerce a given path to a path string using #to_path and #to_str function $coerce_to_path(path) { @@ -24272,50 +23734,64 @@ Opal.modules["corelib/file"] = function(Opal) { path = path.$to_path(); } - path = $$($nesting, 'Opal')['$coerce_to!'](path, $$($nesting, 'String'), "to_str"); + path = $Opal['$coerce_to!'](path, $$$('String'), "to_str"); return path; } // Return a RegExp compatible char class function $sep_chars() { - if ($$($nesting, 'ALT_SEPARATOR') === nil) { - return Opal.escape_regexp($$($nesting, 'SEPARATOR')); + if ($$('ALT_SEPARATOR') === nil) { + return Opal.escape_regexp($$('SEPARATOR')); } else { - return Opal.escape_regexp($rb_plus($$($nesting, 'SEPARATOR'), $$($nesting, 'ALT_SEPARATOR'))); + return Opal.escape_regexp($rb_plus($$('SEPARATOR'), $$('ALT_SEPARATOR'))); } } ; - Opal.def(self, '$dirname', $dirname$3 = function $$dirname(path) { + $def(self, '$dirname', function $$dirname(path, level) { var self = this, sep_chars = nil; + + if (level == null) level = 1;; + if ($eqeq(level, 0)) { + return path + }; + if ($truthy($rb_lt(level, 0))) { + $Kernel.$raise($$$('ArgumentError'), "level can't be negative") + }; sep_chars = $sep_chars(); path = $coerce_to_path(path); - var absolute = path.match(new RegExp("" + "^[" + (sep_chars) + "]")); + var absolute = path.match(new RegExp("^[" + (sep_chars) + "]")), out; - path = path.replace(new RegExp("" + "[" + (sep_chars) + "]+$"), ''); // remove trailing separators - path = path.replace(new RegExp("" + "[^" + (sep_chars) + "]+$"), ''); // remove trailing basename - path = path.replace(new RegExp("" + "[" + (sep_chars) + "]+$"), ''); // remove final trailing separators + path = path.replace(new RegExp("[" + (sep_chars) + "]+$"), ''); // remove trailing separators + path = path.replace(new RegExp("[^" + (sep_chars) + "]+$"), ''); // remove trailing basename + path = path.replace(new RegExp("[" + (sep_chars) + "]+$"), ''); // remove final trailing separators if (path === '') { - return absolute ? '/' : '.'; + out = absolute ? '/' : '.'; + } + else { + out = path; } - return path; + if (level == 1) { + return out; + } + else { + return self.$dirname(out, $rb_minus(level, 1)) + } ; - }, $dirname$3.$$arity = 1); + }, -2); - Opal.def(self, '$basename', $basename$4 = function $$basename(name, suffix) { - var self = this, sep_chars = nil; + $def(self, '$basename', function $$basename(name, suffix) { + var sep_chars = nil; - if (suffix == null) { - suffix = nil; - }; + if (suffix == null) suffix = nil;; sep_chars = $sep_chars(); name = $coerce_to_path(name); @@ -24324,13 +23800,13 @@ Opal.modules["corelib/file"] = function(Opal) { } if (suffix !== nil) { - suffix = $$($nesting, 'Opal')['$coerce_to!'](suffix, $$($nesting, 'String'), "to_str") + suffix = $Opal['$coerce_to!'](suffix, $$$('String'), "to_str") } else { suffix = null; } - name = name.replace(new RegExp("" + "(.)[" + (sep_chars) + "]*$"), '$1'); - name = name.replace(new RegExp("" + "^(?:.*[" + (sep_chars) + "])?([^" + (sep_chars) + "]+)$"), '$1'); + name = name.replace(new RegExp("(.)[" + (sep_chars) + "]*$"), '$1'); + name = name.replace(new RegExp("^(?:.*[" + (sep_chars) + "])?([^" + (sep_chars) + "]+)$"), '$1'); if (suffix === ".*") { name = name.replace(/\.[^\.]+$/, ''); @@ -24341,37 +23817,32 @@ Opal.modules["corelib/file"] = function(Opal) { return name; ; - }, $basename$4.$$arity = -2); + }, -2); - Opal.def(self, '$extname', $extname$5 = function $$extname(path) { - var self = this, filename = nil, last_dot_idx = nil, $ret_or_2 = nil; + $def(self, '$extname', function $$extname(path) { + var self = this, filename = nil, last_dot_idx = nil; path = $coerce_to_path(path); filename = self.$basename(path); if ($truthy(filename['$empty?']())) { - return ""}; + return "" + }; last_dot_idx = filename['$[]']($range(1, -1, false)).$rindex("."); - if ($truthy((function() {if ($truthy(($ret_or_2 = last_dot_idx['$nil?']()))) { - return $ret_or_2 - } else { - return $rb_plus(last_dot_idx, 1)['$==']($rb_minus(filename.$length(), 1)) - }; return nil; })())) { + if (($truthy(last_dot_idx['$nil?']()) || ($eqeq($rb_plus(last_dot_idx, 1), $rb_minus(filename.$length(), 1))))) { return "" } else { return filename['$[]'](Opal.Range.$new($rb_plus(last_dot_idx, 1), -1, false)) }; - }, $extname$5.$$arity = 1); + }, 1); - Opal.def(self, '$exist?', $exist$ques$6 = function(path) { - var self = this; - + $def(self, '$exist?', function $exist$ques$1(path) { + return Opal.modules[path] != null - }, $exist$ques$6.$$arity = 1); - $alias(self, "exists?", "exist?"); + }, 1); - Opal.def(self, '$directory?', $directory$ques$7 = function(path) { - var $$8, self = this, files = nil, file = nil; + $def(self, '$directory?', function $directory$ques$2(path) { + var files = nil, file = nil; files = []; @@ -24380,120 +23851,120 @@ Opal.modules["corelib/file"] = function(Opal) { files.push(key) } ; - path = path.$gsub(Opal.regexp(["(^.", $$($nesting, 'SEPARATOR'), "+|", $$($nesting, 'SEPARATOR'), "+$)"])); - file = $send(files, 'find', [], ($$8 = function(f){var self = $$8.$$s == null ? this : $$8.$$s; - + path = path.$gsub($regexp(["(^.", $$('SEPARATOR'), "+|", $$('SEPARATOR'), "+$)"])); + file = $send(files, 'find', [], function $$3(f){ - if (f == null) { - f = nil; - }; - return f['$=~'](Opal.regexp(["^", path]));}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + if (f == null) f = nil;; + return f['$=~']($regexp(["^", path]));}, 1); return file; - }, $directory$ques$7.$$arity = 1); + }, 1); - Opal.def(self, '$join', $join$9 = function $$join($a) { - var $post_args, paths, $$10, $$11, self = this, result = nil; + $def(self, '$join', function $$join($a) { + var $post_args, paths, result = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); paths = $post_args;; if ($truthy(paths['$empty?']())) { - return ""}; + return "" + }; result = ""; - paths = $send(paths.$flatten().$each_with_index(), 'map', [], ($$10 = function(item, index){var self = $$10.$$s == null ? this : $$10.$$s, $ret_or_3 = nil, $ret_or_4 = nil; - + paths = $send(paths.$flatten().$each_with_index(), 'map', [], function $$4(item, index){ - if (item == null) { - item = nil; - }; + if (item == null) item = nil;; - if (index == null) { - index = nil; - }; - if ($truthy((function() {if ($truthy(($ret_or_3 = index['$=='](0)))) { - return item['$empty?']() - } else { - return $ret_or_3 - }; return nil; })())) { - return $$($nesting, 'SEPARATOR') - } else if ($truthy((function() {if ($truthy(($ret_or_4 = paths.$length()['$==']($rb_plus(index, 1))))) { - return item['$empty?']() - } else { - return $ret_or_4 - }; return nil; })())) { - return $$($nesting, 'SEPARATOR') + if (index == null) index = nil;; + if (($eqeq(index, 0) && ($truthy(item['$empty?']())))) { + return $$('SEPARATOR') + } else if (($eqeq(paths.$length(), $rb_plus(index, 1)) && ($truthy(item['$empty?']())))) { + return $$('SEPARATOR') } else { return item - };}, $$10.$$s = self, $$10.$$arity = 2, $$10)); + };}, 2); paths = $send(paths, 'reject', [], "empty?".$to_proc()); - $send(paths, 'each_with_index', [], ($$11 = function(item, index){var self = $$11.$$s == null ? this : $$11.$$s, next_item = nil, $ret_or_5 = nil, $ret_or_6 = nil; + $send(paths, 'each_with_index', [], function $$5(item, index){var next_item = nil; - if (item == null) { - item = nil; - }; + if (item == null) item = nil;; - if (index == null) { - index = nil; - }; + if (index == null) index = nil;; next_item = paths['$[]']($rb_plus(index, 1)); if ($truthy(next_item['$nil?']())) { return (result = "" + (result) + (item)) } else { - if ($truthy((function() {if ($truthy(($ret_or_5 = item['$end_with?']($$($nesting, 'SEPARATOR'))))) { - return next_item['$start_with?']($$($nesting, 'SEPARATOR')) - } else { - return $ret_or_5 - }; return nil; })())) { - item = item.$sub(Opal.regexp([$$($nesting, 'SEPARATOR'), "+$"]), "")}; - return (result = (function() {if ($truthy((function() {if ($truthy(($ret_or_6 = item['$end_with?']($$($nesting, 'SEPARATOR'))))) { - return $ret_or_6 - } else { - return next_item['$start_with?']($$($nesting, 'SEPARATOR')) - }; return nil; })())) { - return "" + (result) + (item) - } else { - return "" + (result) + (item) + ($$($nesting, 'SEPARATOR')) - }; return nil; })()); - };}, $$11.$$s = self, $$11.$$arity = 2, $$11)); + if (($truthy(item['$end_with?']($$('SEPARATOR'))) && ($truthy(next_item['$start_with?']($$('SEPARATOR')))))) { + item = item.$sub($regexp([$$('SEPARATOR'), "+$"]), "") + }; + return (result = (($truthy(item['$end_with?']($$('SEPARATOR'))) || ($truthy(next_item['$start_with?']($$('SEPARATOR'))))) ? ("" + (result) + (item)) : ("" + (result) + (item) + ($$('SEPARATOR'))))); + };}, 2); return result; - }, $join$9.$$arity = -1); - return (Opal.def(self, '$split', $split$12 = function $$split(path) { - var self = this; - - return path.$split($$($nesting, 'SEPARATOR')) - }, $split$12.$$arity = 1), nil) && 'split'; + }, -1); + + $def(self, '$split', function $$split(path) { + + return path.$split($$('SEPARATOR')) + }, 1); + $alias(self, "realpath", "expand_path"); + return $alias(self, "exists?", "exist?"); })(Opal.get_singleton_class(self), $nesting); - })($nesting[0], $$($nesting, 'IO'), $nesting) + })('::', $$$('IO'), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/process"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["corelib/process/base"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $klass = Opal.klass, $defs = Opal.defs; - Opal.add_stubs(['$const_set', '$size', '$<<', '$__register_clock__', '$to_f', '$now', '$new', '$[]', '$raise']); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Process'); + (function($base, $super) { + var self = $klass($base, $super, 'Signal'); + + + return $defs(self, '$trap', function $$trap($a) { + var $post_args, $rest_arg; + + + + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return nil; + }, -1) + })('::', null); + return (function($base, $super) { + var self = $klass($base, $super, 'GC'); + + + return $defs(self, '$start', function $$start() { + + return nil + }, 0) + })('::', null); +}; + +Opal.modules["corelib/process"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $defs = Opal.defs, $truthy = Opal.truthy, $Kernel = Opal.Kernel; - var $nesting = [self].concat($parent_nesting), $Process___register_clock__$1, $Process_pid$2, $Process_times$3, $Process_clock_gettime$4, monotonic = nil; + Opal.add_stubs('const_set,size,<<,__register_clock__,to_f,now,new,[],raise'); + return (function($base) { + var self = $module($base, 'Process'); + + var monotonic = nil; self.__clocks__ = []; - Opal.defs(self, '$__register_clock__', $Process___register_clock__$1 = function $$__register_clock__(name, func) { + $defs(self, '$__register_clock__', function $$__register_clock__(name, func) { var self = this; if (self.__clocks__ == null) self.__clocks__ = nil; self.$const_set(name, self.__clocks__.$size()); return self.__clocks__['$<<'](func); - }, $Process___register_clock__$1.$$arity = 2); + }, 2); self.$__register_clock__("CLOCK_REALTIME", function() { return Date.now() }); monotonic = false; @@ -24514,32 +23985,30 @@ Opal.modules["corelib/process"] = function(Opal) { } ; if ($truthy(monotonic)) { - self.$__register_clock__("CLOCK_MONOTONIC", monotonic)}; - Opal.defs(self, '$pid', $Process_pid$2 = function $$pid() { - var self = this; - + self.$__register_clock__("CLOCK_MONOTONIC", monotonic) + }; + $defs(self, '$pid', function $$pid() { + return 0 - }, $Process_pid$2.$$arity = 0); - Opal.defs(self, '$times', $Process_times$3 = function $$times() { - var self = this, t = nil; + }, 0); + $defs(self, '$times', function $$times() { + var t = nil; - t = $$($nesting, 'Time').$now().$to_f(); - return $$$($$($nesting, 'Benchmark'), 'Tms').$new(t, t, t, t, t); - }, $Process_times$3.$$arity = 0); - return (Opal.defs(self, '$clock_gettime', $Process_clock_gettime$4 = function $$clock_gettime(clock_id, unit) { + t = $$$('Time').$now().$to_f(); + return $$$($$$('Benchmark'), 'Tms').$new(t, t, t, t, t); + }, 0); + return $defs(self, '$clock_gettime', function $$clock_gettime(clock_id, unit) { var self = this, $ret_or_1 = nil, clock = nil; if (self.__clocks__ == null) self.__clocks__ = nil; - if (unit == null) { - unit = "float_second"; - }; + if (unit == null) unit = "float_second";; if ($truthy(($ret_or_1 = (clock = self.__clocks__['$[]'](clock_id))))) { $ret_or_1 } else { - self.$raise($$$($$($nesting, 'Errno'), 'EINVAL'), "" + "clock_gettime(" + (clock_id) + ") " + (self.__clocks__['$[]'](clock_id))) + $Kernel.$raise($$$($$$('Errno'), 'EINVAL'), "clock_gettime(" + (clock_id) + ") " + (self.__clocks__['$[]'](clock_id))) }; var ms = clock(); @@ -24551,50 +24020,17 @@ Opal.modules["corelib/process"] = function(Opal) { case 'millisecond': return ((ms / 1) | 0); // number of milliseconds as an integer case 'microsecond': return ((ms * 1000) | 0); // number of microseconds as an integer case 'nanosecond': return ((ms * 1000000) | 0); // number of nanoseconds as an integer - default: self.$raise($$($nesting, 'ArgumentError'), "" + "unexpected unit: " + (unit)) + default: $Kernel.$raise($$$('ArgumentError'), "unexpected unit: " + (unit)) } ; - }, $Process_clock_gettime$4.$$arity = -2), nil) && 'clock_gettime'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Signal'); - - var $nesting = [self].concat($parent_nesting), $Signal_trap$5; - - return (Opal.defs(self, '$trap', $Signal_trap$5 = function $$trap($a) { - var $post_args, self = this; - - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return nil; - }, $Signal_trap$5.$$arity = -1), nil) && 'trap' - })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'GC'); - - var $nesting = [self].concat($parent_nesting), $GC_start$6; - - return (Opal.defs(self, '$start', $GC_start$6 = function $$start() { - var self = this; - - return nil - }, $GC_start$6.$$arity = 0), nil) && 'start' - })($nesting[0], null, $nesting); + }, -2); + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/random/formatter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_divide(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $module = Opal.module, $send = Opal.send, $range = Opal.range; +Opal.modules["corelib/random/formatter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $module = Opal.module, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $range = Opal.range, $rb_divide = Opal.rb_divide, $Kernel = Opal.Kernel, $Opal = Opal.Opal; - Opal.add_stubs(['$_verify_count', '$bytes', '$encode', '$strict_encode64', '$random_bytes', '$urlsafe_encode64', '$split', '$hex', '$[]=', '$-', '$[]', '$map', '$to_proc', '$join', '$times', '$<<', '$|', '$ord', '$/', '$abs', '$random_float', '$raise', '$coerce_to!', '$flatten', '$new', '$random_number', '$length', '$include', '$extend']); + Opal.add_stubs('_verify_count,bytes,encode,strict_encode64,random_bytes,urlsafe_encode64,split,hex,[]=,-,[],map,to_proc,join,times,<<,|,ord,/,abs,random_float,raise,coerce_to!,flatten,new,random_number,length,include,extend'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Random'); @@ -24604,19 +24040,17 @@ Opal.modules["corelib/random/formatter"] = function(Opal) { (function($base, $parent_nesting) { var self = $module($base, 'Formatter'); - var $nesting = [self].concat($parent_nesting), $Formatter_hex$1, $Formatter_random_bytes$2, $Formatter_base64$3, $Formatter_urlsafe_base64$4, $Formatter_uuid$5, $Formatter_random_float$6, $Formatter_random_number$8, $Formatter_alphanumeric$9; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$hex', $Formatter_hex$1 = function $$hex(count) { + $def(self, '$hex', function $$hex(count) { var self = this; - if (count == null) { - count = nil; - }; - count = $$($nesting, 'Random').$_verify_count(count); + if (count == null) count = nil;; + count = $$$('Random').$_verify_count(count); var bytes = self.$bytes(count); var out = ""; @@ -24625,82 +24059,71 @@ Opal.modules["corelib/random/formatter"] = function(Opal) { } return (out).$encode("US-ASCII"); ; - }, $Formatter_hex$1.$$arity = -1); + }, -1); - Opal.def(self, '$random_bytes', $Formatter_random_bytes$2 = function $$random_bytes(count) { + $def(self, '$random_bytes', function $$random_bytes(count) { var self = this; - if (count == null) { - count = nil; - }; + if (count == null) count = nil;; return self.$bytes(count); - }, $Formatter_random_bytes$2.$$arity = -1); + }, -1); - Opal.def(self, '$base64', $Formatter_base64$3 = function $$base64(count) { + $def(self, '$base64', function $$base64(count) { var self = this; - if (count == null) { - count = nil; - }; - return $$($nesting, 'Base64').$strict_encode64(self.$random_bytes(count)).$encode("US-ASCII"); - }, $Formatter_base64$3.$$arity = -1); + if (count == null) count = nil;; + return $$$('Base64').$strict_encode64(self.$random_bytes(count)).$encode("US-ASCII"); + }, -1); - Opal.def(self, '$urlsafe_base64', $Formatter_urlsafe_base64$4 = function $$urlsafe_base64(count, padding) { + $def(self, '$urlsafe_base64', function $$urlsafe_base64(count, padding) { var self = this; - if (count == null) { - count = nil; - }; + if (count == null) count = nil;; - if (padding == null) { - padding = false; - }; - return $$($nesting, 'Base64').$urlsafe_encode64(self.$random_bytes(count), padding).$encode("US-ASCII"); - }, $Formatter_urlsafe_base64$4.$$arity = -1); + if (padding == null) padding = false;; + return $$$('Base64').$urlsafe_encode64(self.$random_bytes(count), padding).$encode("US-ASCII"); + }, -1); - Opal.def(self, '$uuid', $Formatter_uuid$5 = function $$uuid() { + $def(self, '$uuid', function $$uuid() { var self = this, str = nil, $writer = nil; str = self.$hex(16).$split(""); $writer = [12, "4"]; - $send(str, '[]=', Opal.to_a($writer)); + $send(str, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [16, (parseInt(str['$[]'](16), 16) & 3 | 8).toString(16)]; - $send(str, '[]=', Opal.to_a($writer)); + $send(str, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; str = [str['$[]']($range(0, 8, true)), str['$[]']($range(8, 12, true)), str['$[]']($range(12, 16, true)), str['$[]']($range(16, 20, true)), str['$[]']($range(20, 32, true))]; str = $send(str, 'map', [], "join".$to_proc()); return str.$join("-"); - }, $Formatter_uuid$5.$$arity = 0); + }, 0); - Opal.def(self, '$random_float', $Formatter_random_float$6 = function $$random_float() { - var $$7, self = this, bs = nil, num = nil; + $def(self, '$random_float', function $$random_float() { + var self = this, bs = nil, num = nil; bs = self.$bytes(4); num = 0; - $send((4), 'times', [], ($$7 = function(i){var self = $$7.$$s == null ? this : $$7.$$s; - + $send((4), 'times', [], function $$1(i){ - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; num = num['$<<'](8); - return (num = num['$|'](bs['$[]'](i).$ord()));}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + return (num = num['$|'](bs['$[]'](i).$ord()));}, 1); return $rb_divide(num.$abs(), 2147483647); - }, $Formatter_random_float$6.$$arity = 0); + }, 0); - Opal.def(self, '$random_number', $Formatter_random_number$8 = function $$random_number(limit) { + $def(self, '$random_number', function $$random_number(limit) { var self = this; @@ -24744,200 +24167,52 @@ Opal.modules["corelib/random/formatter"] = function(Opal) { } else if (limit.$$is_range) { return randomRange(); } else if (limit.$$is_number) { - if (limit <= 0) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid argument - " + (limit)) - } - - if (limit % 1 === 0) { - // integer - return randomInt(limit); - } else { - return randomFloat() * limit; - } - } else { - limit = $$($nesting, 'Opal')['$coerce_to!'](limit, $$($nesting, 'Integer'), "to_int"); - - if (limit <= 0) { - self.$raise($$($nesting, 'ArgumentError'), "" + "invalid argument - " + (limit)) - } - - return randomInt(limit); - } - ; - }, $Formatter_random_number$8.$$arity = -1); - return (Opal.def(self, '$alphanumeric', $Formatter_alphanumeric$9 = function $$alphanumeric(count) { - var $$10, self = this, map = nil; - - - - if (count == null) { - count = nil; - }; - count = $$($nesting, 'Random').$_verify_count(count); - map = $send([$range("0", "9", false), $range("a", "z", false), $range("A", "Z", false)], 'map', [], "to_a".$to_proc()).$flatten(); - return $send($$($nesting, 'Array'), 'new', [count], ($$10 = function(i){var self = $$10.$$s == null ? this : $$10.$$s; - - - - if (i == null) { - i = nil; - }; - return map['$[]'](self.$random_number(map.$length()));}, $$10.$$s = self, $$10.$$arity = 1, $$10)).$join(); - }, $Formatter_alphanumeric$9.$$arity = -1), nil) && 'alphanumeric'; - })($nesting[0], $nesting); - self.$include($$$($$($nesting, 'Random'), 'Formatter')); - return self.$extend($$$($$($nesting, 'Random'), 'Formatter')); - })($nesting[0], null, $nesting) -}; - -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/random"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$to_int', '$raise', '$new_seed', '$coerce_to!', '$reseed', '$rand', '$seed', '$bytes', '$===', '$==', '$state', '$_verify_count', '$encode', '$join', '$new', '$chr', '$random_number', '$random_float', '$const_defined?', '$const_set']); - return (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'Random'); - - var $nesting = [self].concat($parent_nesting), $Random__verify_count$1, $Random_initialize$2, $Random_reseed$3, $Random_new_seed$4, $Random_rand$5, $Random_srand$6, $Random_urandom$7, $Random_$eq_eq$8, $Random_bytes$9, $Random_bytes$11, $Random_rand$12, $Random_random_float$13, $Random_random_float$14, $Random_generator$eq$15; - - - self.$attr_reader("seed", "state"); - Opal.defs(self, '$_verify_count', $Random__verify_count$1 = function $$_verify_count(count) { - var self = this; - - - if ($falsy(count)) count = 16; - if (typeof count !== "number") count = (count).$to_int(); - if (count < 0) self.$raise($$($nesting, 'ArgumentError'), "negative string size (or size too big)"); - count = Math.floor(count); - return count; - - }, $Random__verify_count$1.$$arity = 1); - - Opal.def(self, '$initialize', $Random_initialize$2 = function $$initialize(seed) { - var self = this; - - - - if (seed == null) { - seed = $$($nesting, 'Random').$new_seed(); - }; - seed = $$($nesting, 'Opal')['$coerce_to!'](seed, $$($nesting, 'Integer'), "to_int"); - self.state = seed; - return self.$reseed(seed); - }, $Random_initialize$2.$$arity = -1); - - Opal.def(self, '$reseed', $Random_reseed$3 = function $$reseed(seed) { - var self = this; - - - self.seed = seed; - return self.$rng = Opal.$$rand.reseed(seed);; - }, $Random_reseed$3.$$arity = 1); - Opal.defs(self, '$new_seed', $Random_new_seed$4 = function $$new_seed() { - var self = this; - - return Opal.$$rand.new_seed(); - }, $Random_new_seed$4.$$arity = 0); - Opal.defs(self, '$rand', $Random_rand$5 = function $$rand(limit) { - var self = this; - - - ; - return $$($nesting, 'DEFAULT').$rand(limit); - }, $Random_rand$5.$$arity = -1); - Opal.defs(self, '$srand', $Random_srand$6 = function $$srand(n) { - var self = this, previous_seed = nil; - - - - if (n == null) { - n = $$($nesting, 'Random').$new_seed(); - }; - n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); - previous_seed = $$($nesting, 'DEFAULT').$seed(); - $$($nesting, 'DEFAULT').$reseed(n); - return previous_seed; - }, $Random_srand$6.$$arity = -1); - Opal.defs(self, '$urandom', $Random_urandom$7 = function $$urandom(size) { - var self = this; - - return $$$('::', 'SecureRandom').$bytes(size) - }, $Random_urandom$7.$$arity = 1); - - Opal.def(self, '$==', $Random_$eq_eq$8 = function(other) { - var self = this, $ret_or_1 = nil; - - - if ($truthy($$($nesting, 'Random')['$==='](other))) { - } else { - return false - }; - if ($truthy(($ret_or_1 = self.$seed()['$=='](other.$seed())))) { - return self.$state()['$=='](other.$state()) - } else { - return $ret_or_1 - }; - }, $Random_$eq_eq$8.$$arity = 1); - - Opal.def(self, '$bytes', $Random_bytes$9 = function $$bytes(length) { - var $$10, self = this; - - - length = $$($nesting, 'Random').$_verify_count(length); - return $send($$($nesting, 'Array'), 'new', [length], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + if (limit <= 0) { + $Kernel.$raise($$$('ArgumentError'), "invalid argument - " + (limit)) + } - return self.$rand(255).$chr()}, $$10.$$s = self, $$10.$$arity = 0, $$10)).$join().$encode("ASCII-8BIT"); - }, $Random_bytes$9.$$arity = 1); - Opal.defs(self, '$bytes', $Random_bytes$11 = function $$bytes(length) { - var self = this; + if (limit % 1 === 0) { + // integer + return randomInt(limit); + } else { + return randomFloat() * limit; + } + } else { + limit = $Opal['$coerce_to!'](limit, $$$('Integer'), "to_int"); - return $$($nesting, 'DEFAULT').$bytes(length) - }, $Random_bytes$11.$$arity = 1); - - Opal.def(self, '$rand', $Random_rand$12 = function $$rand(limit) { - var self = this; + if (limit <= 0) { + $Kernel.$raise($$$('ArgumentError'), "invalid argument - " + (limit)) + } - + return randomInt(limit); + } ; - return self.$random_number(limit); - }, $Random_rand$12.$$arity = -1); - - Opal.def(self, '$random_float', $Random_random_float$13 = function $$random_float() { - var self = this; - - - self.state++; - return Opal.$$rand.rand(self.$rng); - - }, $Random_random_float$13.$$arity = 0); - Opal.defs(self, '$random_float', $Random_random_float$14 = function $$random_float() { - var self = this; + }, -1); + return $def(self, '$alphanumeric', function $$alphanumeric(count) { + var self = this, map = nil; - return $$($nesting, 'DEFAULT').$random_float() - }, $Random_random_float$14.$$arity = 0); - return (Opal.defs(self, '$generator=', $Random_generator$eq$15 = function(generator) { - var self = this; + + + if (count == null) count = nil;; + count = $$('Random').$_verify_count(count); + map = $send([$range("0", "9", false), $range("a", "z", false), $range("A", "Z", false)], 'map', [], "to_a".$to_proc()).$flatten(); + return $send($$$('Array'), 'new', [count], function $$2(i){var self = $$2.$$s == null ? this : $$2.$$s; - - Opal.$$rand = generator; - if ($truthy(self['$const_defined?']("DEFAULT"))) { - return $$($nesting, 'DEFAULT').$reseed() - } else { - return self.$const_set("DEFAULT", self.$new(self.$new_seed())) - }; - }, $Random_generator$eq$15.$$arity = 1), nil) && 'generator='; - })($nesting[0], null, $nesting) + + + if (i == null) i = nil;; + return map['$[]'](self.$random_number(map.$length()));}, {$$arity: 1, $$s: self}).$join(); + }, -1); + })(self, $nesting); + self.$include($$$($$$('Random'), 'Formatter')); + return self.$extend($$$($$$('Random'), 'Formatter')); + })('::', null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/random/mersenne_twister"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, mersenne_twister = nil; +Opal.modules["corelib/random/mersenne_twister"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, mersenne_twister = nil; - Opal.add_stubs(['$generator=', '$-']); + Opal.add_stubs('generator=,-'); mersenne_twister = (function() { /* Period parameters */ @@ -25020,480 +24295,392 @@ Opal.modules["corelib/random/mersenne_twister"] = function(Opal) { return { genrand_real: genrand_real, init: init }; })(); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Random'); - var $nesting = [self].concat($parent_nesting), $writer = nil; + var $writer = nil; var MAX_INT = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1; - Opal.const_set($nesting[0], 'MERSENNE_TWISTER_GENERATOR', { + $const_set(self, 'MERSENNE_TWISTER_GENERATOR', { new_seed: function() { return Math.round(Math.random() * MAX_INT); }, reseed: function(seed) { return mersenne_twister.init(seed); }, rand: function(mt) { return mersenne_twister.genrand_real(mt); } }); - $writer = [$$($nesting, 'MERSENNE_TWISTER_GENERATOR')]; - $send(self, 'generator=', Opal.to_a($writer)); + $writer = [$$$(self, 'MERSENNE_TWISTER_GENERATOR')]; + $send(self, 'generator=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - })($nesting[0], null, $nesting); + })('::', null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/unsupported"] = function(Opal) { - var $public$35, $private$36, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $module = Opal.module, $alias = Opal.alias; +Opal.modules["corelib/random"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $klass = Opal.klass, $Kernel = Opal.Kernel, $defs = Opal.defs, $Opal = Opal.Opal, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $send = Opal.send; - Opal.add_stubs(['$raise', '$warn', '$%']); + Opal.add_stubs('require,attr_reader,to_int,raise,new_seed,coerce_to!,reseed,rand,seed,bytes,===,==,state,_verify_count,encode,join,new,chr,random_number,random_float,const_defined?,const_set'); - - var warnings = {}; - - function handle_unsupported_feature(message) { - switch (Opal.config.unsupported_features_severity) { - case 'error': - $$($nesting, 'Kernel').$raise($$($nesting, 'NotImplementedError'), message) - break; - case 'warning': - warn(message) - break; - default: // ignore - // noop - } - } - - function warn(string) { - if (warnings[string]) { - return; - } - - warnings[string] = true; - self.$warn(string); - } -; - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'String'); - - var $nesting = [self].concat($parent_nesting), $String_$lt$lt$1, $String_capitalize$excl$2, $String_chomp$excl$3, $String_chop$excl$4, $String_downcase$excl$5, $String_gsub$excl$6, $String_lstrip$excl$7, $String_next$excl$8, $String_reverse$excl$9, $String_slice$excl$10, $String_squeeze$excl$11, $String_strip$excl$12, $String_sub$excl$13, $String_succ$excl$14, $String_swapcase$excl$15, $String_tr$excl$16, $String_tr_s$excl$17, $String_upcase$excl$18, $String_prepend$19, $String_$$$eq$20, $String_clear$21, $String_encode$excl$22, $String_unicode_normalize$excl$23; + self.$require("corelib/random/formatter"); + (function($base, $super) { + var self = $klass($base, $super, 'Random'); - var ERROR = "String#%s not supported. Mutable String methods are not supported in Opal."; - Opal.def(self, '$<<', $String_$lt$lt$1 = function($a) { - var $post_args, self = this; - + self.$attr_reader("seed", "state"); + $defs(self, '$_verify_count', function $$_verify_count(count) { - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("<<")); - }, $String_$lt$lt$1.$$arity = -1); + if (!$truthy(count)) count = 16; + if (typeof count !== "number") count = (count).$to_int(); + if (count < 0) $Kernel.$raise($$$('ArgumentError'), "negative string size (or size too big)"); + count = Math.floor(count); + return count; - Opal.def(self, '$capitalize!', $String_capitalize$excl$2 = function($a) { - var $post_args, self = this; - - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("capitalize!")); - }, $String_capitalize$excl$2.$$arity = -1); + }, 1); - Opal.def(self, '$chomp!', $String_chomp$excl$3 = function($a) { - var $post_args, self = this; + $def(self, '$initialize', function $$initialize(seed) { + var self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("chomp!")); - }, $String_chomp$excl$3.$$arity = -1); + if (seed == null) seed = $$$('Random').$new_seed();; + seed = $Opal['$coerce_to!'](seed, $$$('Integer'), "to_int"); + self.state = seed; + return self.$reseed(seed); + }, -1); - Opal.def(self, '$chop!', $String_chop$excl$4 = function($a) { - var $post_args, self = this; + $def(self, '$reseed', function $$reseed(seed) { + var self = this; + self.seed = seed; + return self.$rng = Opal.$$rand.reseed(seed);; + }, 1); + $defs(self, '$new_seed', function $$new_seed() { - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("chop!")); - }, $String_chop$excl$4.$$arity = -1); - - Opal.def(self, '$downcase!', $String_downcase$excl$5 = function($a) { - var $post_args, self = this; + return Opal.$$rand.new_seed(); + }, 0); + $defs(self, '$rand', function $$rand(limit) { + var self = this; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("downcase!")); - }, $String_downcase$excl$5.$$arity = -1); - - Opal.def(self, '$gsub!', $String_gsub$excl$6 = function($a) { - var $post_args, self = this; + return $$$(self, 'DEFAULT').$rand(limit); + }, -1); + $defs(self, '$srand', function $$srand(n) { + var self = this, previous_seed = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("gsub!")); - }, $String_gsub$excl$6.$$arity = -1); - - Opal.def(self, '$lstrip!', $String_lstrip$excl$7 = function($a) { - var $post_args, self = this; - - + if (n == null) n = $$$('Random').$new_seed();; + n = $Opal['$coerce_to!'](n, $$$('Integer'), "to_int"); + previous_seed = $$$(self, 'DEFAULT').$seed(); + $$$(self, 'DEFAULT').$reseed(n); + return previous_seed; + }, -1); + $defs(self, '$urandom', function $$urandom(size) { - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("lstrip!")); - }, $String_lstrip$excl$7.$$arity = -1); + return $$$('SecureRandom').$bytes(size) + }, 1); - Opal.def(self, '$next!', $String_next$excl$8 = function($a) { - var $post_args, self = this; + $def(self, '$==', function $Random_$eq_eq$1(other) { + var self = this, $ret_or_1 = nil; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("next!")); - }, $String_next$excl$8.$$arity = -1); + if (!$eqeqeq($$$('Random'), other)) { + return false + }; + if ($truthy(($ret_or_1 = self.$seed()['$=='](other.$seed())))) { + return self.$state()['$=='](other.$state()) + } else { + return $ret_or_1 + }; + }, 1); - Opal.def(self, '$reverse!', $String_reverse$excl$9 = function($a) { - var $post_args, self = this; + $def(self, '$bytes', function $$bytes(length) { + var self = this; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("reverse!")); - }, $String_reverse$excl$9.$$arity = -1); - - Opal.def(self, '$slice!', $String_slice$excl$10 = function($a) { - var $post_args, self = this; + length = $$$('Random').$_verify_count(length); + return $send($$$('Array'), 'new', [length], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("slice!")); - }, $String_slice$excl$10.$$arity = -1); - - Opal.def(self, '$squeeze!', $String_squeeze$excl$11 = function($a) { - var $post_args, self = this; + return self.$rand(255).$chr()}, {$$arity: 0, $$s: self}).$join().$encode("ASCII-8BIT"); + }, 1); + $defs(self, '$bytes', function $$bytes(length) { + var self = this; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("squeeze!")); - }, $String_squeeze$excl$11.$$arity = -1); + return $$$(self, 'DEFAULT').$bytes(length) + }, 1); - Opal.def(self, '$strip!', $String_strip$excl$12 = function($a) { - var $post_args, self = this; + $def(self, '$rand', function $$rand(limit) { + var self = this; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("strip!")); - }, $String_strip$excl$12.$$arity = -1); + return self.$random_number(limit); + }, -1); - Opal.def(self, '$sub!', $String_sub$excl$13 = function($a) { - var $post_args, self = this; + $def(self, '$random_float', function $$random_float() { + var self = this; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("sub!")); - }, $String_sub$excl$13.$$arity = -1); + self.state++; + return Opal.$$rand.rand(self.$rng); - Opal.def(self, '$succ!', $String_succ$excl$14 = function($a) { - var $post_args, self = this; + }, 0); + $defs(self, '$random_float', function $$random_float() { + var self = this; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("succ!")); - }, $String_succ$excl$14.$$arity = -1); - - Opal.def(self, '$swapcase!', $String_swapcase$excl$15 = function($a) { - var $post_args, self = this; + return $$$(self, 'DEFAULT').$random_float() + }, 0); + return $defs(self, '$generator=', function $Random_generator$eq$3(generator) { + var self = this; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("swapcase!")); - }, $String_swapcase$excl$15.$$arity = -1); - - Opal.def(self, '$tr!', $String_tr$excl$16 = function($a) { - var $post_args, self = this; + Opal.$$rand = generator; + if ($truthy(self['$const_defined?']("DEFAULT"))) { + return $$$(self, 'DEFAULT').$reseed() + } else { + return self.$const_set("DEFAULT", self.$new(self.$new_seed())) + }; + }, 1); + })('::', null); + return self.$require("corelib/random/mersenne_twister"); +}; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("tr!")); - }, $String_tr$excl$16.$$arity = -1); - - Opal.def(self, '$tr_s!', $String_tr_s$excl$17 = function($a) { - var $post_args, self = this; +Opal.modules["corelib/unsupported"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $Kernel = Opal.Kernel, $klass = Opal.klass, $send = Opal.send, $module = Opal.module, $def = Opal.def, $alias = Opal.alias, $defs = Opal.defs; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("tr_s!")); - }, $String_tr_s$excl$17.$$arity = -1); - - Opal.def(self, '$upcase!', $String_upcase$excl$18 = function($a) { - var $post_args, self = this; + Opal.add_stubs('raise,warn,each,define_method,%'); + + + var warnings = {}; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("upcase!")); - }, $String_upcase$excl$18.$$arity = -1); - - Opal.def(self, '$prepend', $String_prepend$19 = function $$prepend($a) { - var $post_args, self = this; + function handle_unsupported_feature(message) { + switch (Opal.config.unsupported_features_severity) { + case 'error': + $Kernel.$raise($$$('NotImplementedError'), message) + break; + case 'warning': + warn(message) + break; + default: // ignore + // noop + } + } - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("prepend")); - }, $String_prepend$19.$$arity = -1); - - Opal.def(self, '$[]=', $String_$$$eq$20 = function($a) { - var $post_args, self = this; + function warn(string) { + if (warnings[string]) { + return; + } - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("[]=")); - }, $String_$$$eq$20.$$arity = -1); - - Opal.def(self, '$clear', $String_clear$21 = function $$clear($a) { - var $post_args, self = this; + warnings[string] = true; + self.$warn(string); + } +; + (function($base, $super) { + var self = $klass($base, $super, 'String'); - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("clear")); - }, $String_clear$21.$$arity = -1); - Opal.def(self, '$encode!', $String_encode$excl$22 = function($a) { - var $post_args, self = this; + + var ERROR = "String#%s not supported. Mutable String methods are not supported in Opal."; + return $send(["<<", "capitalize!", "chomp!", "chop!", "downcase!", "gsub!", "lstrip!", "next!", "reverse!", "slice!", "squeeze!", "strip!", "sub!", "succ!", "swapcase!", "tr!", "tr_s!", "upcase!", "prepend", "[]=", "clear", "encode!", "unicode_normalize!"], 'each', [], function $String$1(method_name){var self = $String$1.$$s == null ? this : $String$1.$$s; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("encode!")); - }, $String_encode$excl$22.$$arity = -1); - return (Opal.def(self, '$unicode_normalize!', $String_unicode_normalize$excl$23 = function($a) { - var $post_args, self = this; + if (method_name == null) method_name = nil;; + return $send(self, 'define_method', [method_name], function $$2($a){var $post_args, $rest_arg; - - - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), (ERROR)['$%']("unicode_normalize!")); - }, $String_unicode_normalize$excl$23.$$arity = -1), nil) && 'unicode_normalize!'; - })($nesting[0], null, $nesting); - (function($base, $parent_nesting) { + + + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return $Kernel.$raise($$$('NotImplementedError'), (ERROR)['$%'](method_name));}, -1);}, {$$arity: 1, $$s: self}); + })('::', null); + (function($base) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_freeze$24, $Kernel_frozen$ques$25; - + var ERROR = "Object freezing is not supported by Opal"; - Opal.def(self, '$freeze', $Kernel_freeze$24 = function $$freeze() { + $def(self, '$freeze', function $$freeze() { var self = this; handle_unsupported_feature(ERROR); return self; - }, $Kernel_freeze$24.$$arity = 0); - return (Opal.def(self, '$frozen?', $Kernel_frozen$ques$25 = function() { - var self = this; - + }, 0); + return $def(self, '$frozen?', function $Kernel_frozen$ques$3() { + handle_unsupported_feature(ERROR); return false; - }, $Kernel_frozen$ques$25.$$arity = 0), nil) && 'frozen?'; - })($nesting[0], $nesting); - (function($base, $parent_nesting) { + }, 0); + })('::'); + (function($base) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_taint$26, $Kernel_untaint$27, $Kernel_tainted$ques$28; - + var ERROR = "Object tainting is not supported by Opal"; - Opal.def(self, '$taint', $Kernel_taint$26 = function $$taint() { + $def(self, '$taint', function $$taint() { var self = this; handle_unsupported_feature(ERROR); return self; - }, $Kernel_taint$26.$$arity = 0); + }, 0); - Opal.def(self, '$untaint', $Kernel_untaint$27 = function $$untaint() { + $def(self, '$untaint', function $$untaint() { var self = this; handle_unsupported_feature(ERROR); return self; - }, $Kernel_untaint$27.$$arity = 0); - return (Opal.def(self, '$tainted?', $Kernel_tainted$ques$28 = function() { - var self = this; - + }, 0); + return $def(self, '$tainted?', function $Kernel_tainted$ques$4() { + handle_unsupported_feature(ERROR); return false; - }, $Kernel_tainted$ques$28.$$arity = 0), nil) && 'tainted?'; - })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })('::'); + (function($base, $super) { var self = $klass($base, $super, 'Module'); - var $nesting = [self].concat($parent_nesting), $Module_public$29, $Module_private_class_method$30, $Module_private_method_defined$ques$31, $Module_private_constant$32; - - Opal.def(self, '$public', $Module_public$29 = function($a) { + + $def(self, '$public', function $Module_public$5($a) { var $post_args, methods, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); methods = $post_args;; if (methods.length === 0) { self.$$module_function = false; + return nil; } - - return nil; + return (methods.length === 1) ? methods[0] : methods; ; - }, $Module_public$29.$$arity = -1); - $alias(self, "private", "public"); - $alias(self, "protected", "public"); - $alias(self, "nesting", "public"); + }, -1); - Opal.def(self, '$private_class_method', $Module_private_class_method$30 = function $$private_class_method($a) { - var $post_args, self = this; + $def(self, '$private_class_method', function $$private_class_method($a) { + var $post_args, methods; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self; - }, $Module_private_class_method$30.$$arity = -1); - $alias(self, "public_class_method", "private_class_method"); + $post_args = Opal.slice.call(arguments); + + methods = $post_args;; + return (methods.length === 1) ? methods[0] : methods;; + }, -1); - Opal.def(self, '$private_method_defined?', $Module_private_method_defined$ques$31 = function(obj) { - var self = this; - + $def(self, '$private_method_defined?', function $Module_private_method_defined$ques$6(obj) { + return false - }, $Module_private_method_defined$ques$31.$$arity = 1); + }, 1); - Opal.def(self, '$private_constant', $Module_private_constant$32 = function $$private_constant($a) { - var $post_args, self = this; + $def(self, '$private_constant', function $$private_constant($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; return nil; - }, $Module_private_constant$32.$$arity = -1); + }, -1); + $alias(self, "nesting", "public"); + $alias(self, "private", "public"); + $alias(self, "protected", "public"); $alias(self, "protected_method_defined?", "private_method_defined?"); - $alias(self, "public_instance_methods", "instance_methods"); + $alias(self, "public_class_method", "private_class_method"); $alias(self, "public_instance_method", "instance_method"); + $alias(self, "public_instance_methods", "instance_methods"); return $alias(self, "public_method_defined?", "method_defined?"); - })($nesting[0], null, $nesting); - (function($base, $parent_nesting) { + })('::', null); + (function($base) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_private_methods$33; - - Opal.def(self, '$private_methods', $Kernel_private_methods$33 = function $$private_methods($a) { - var $post_args, self = this; + + $def(self, '$private_methods', function $$private_methods($a) { + var $post_args, methods; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; + $post_args = Opal.slice.call(arguments); + + methods = $post_args;; return []; - }, $Kernel_private_methods$33.$$arity = -1); + }, -1); return $alias(self, "private_instance_methods", "private_methods"); - })($nesting[0], $nesting); + })('::'); (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_eval$34; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$eval', $Kernel_eval$34 = function($a) { - var $post_args, self = this; + return $def(self, '$eval', function $Kernel_eval$7($a) { + var $post_args, $rest_arg; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return self.$raise($$($nesting, 'NotImplementedError'), "" + "To use Kernel#eval, you must first require 'opal-parser'. " + ("" + "See https://github.com/opal/opal/blob/" + ($$($nesting, 'RUBY_ENGINE_VERSION')) + "/docs/opal_parser.md for details.")); - }, $Kernel_eval$34.$$arity = -1), nil) && 'eval' - })($nesting[0], $nesting); - Opal.defs(self, '$public', $public$35 = function($a) { - var $post_args, self = this; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return $Kernel.$raise($$$('NotImplementedError'), "To use Kernel#eval, you must first require 'opal-parser'. " + ("See https://github.com/opal/opal/blob/" + ($$('RUBY_ENGINE_VERSION')) + "/docs/opal_parser.md for details.")); + }, -1) + })('::', $nesting); + $defs(self, '$public', function $public$8($a) { + var $post_args, methods; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return nil; - }, $public$35.$$arity = -1); - return (Opal.defs(self, '$private', $private$36 = function($a) { - var $post_args, self = this; + $post_args = Opal.slice.call(arguments); + + methods = $post_args;; + return (methods.length === 1) ? methods[0] : methods;; + }, -1); + return $defs(self, '$private', function $private$9($a) { + var $post_args, methods; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return nil; - }, $private$36.$$arity = -1), nil) && 'private'; + $post_args = Opal.slice.call(arguments); + + methods = $post_args;; + return (methods.length === 1) ? methods[0] : methods;; + }, -1); }; -/* Generated by Opal 1.3.0.dev */ -(function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.queue(function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $Object = Opal.Object; - Opal.add_stubs(['$require']); + Opal.add_stubs('require,autoload'); - self.$require("opal/base"); - self.$require("opal/mini"); - self.$require("corelib/kernel/format"); - self.$require("corelib/string/encoding"); - self.$require("corelib/math"); - self.$require("corelib/complex"); - self.$require("corelib/rational"); - self.$require("corelib/time"); - self.$require("corelib/struct"); - self.$require("corelib/io"); - self.$require("corelib/main"); - self.$require("corelib/dir"); - self.$require("corelib/file"); - self.$require("corelib/process"); - self.$require("corelib/random/formatter"); - self.$require("corelib/random"); - self.$require("corelib/random/mersenne_twister"); - return self.$require("corelib/unsupported"); -})(Opal); + $Object.$require("opal/base"); + $Object.$require("opal/mini"); + $Object.$require("corelib/kernel/format"); + $Object.$require("corelib/string/encoding"); + $Object.$autoload("Math", "corelib/math"); + $Object.$require("corelib/complex/base"); + $Object.$autoload("Complex", "corelib/complex"); + $Object.$require("corelib/rational/base"); + $Object.$autoload("Rational", "corelib/rational"); + $Object.$require("corelib/time"); + $Object.$autoload("Struct", "corelib/struct"); + $Object.$require("corelib/dir"); + $Object.$autoload("File", "corelib/file"); + $Object.$require("corelib/process/base"); + $Object.$autoload("Process", "corelib/process"); + $Object.$autoload("Random", "corelib/random"); + return $Object.$require("corelib/unsupported"); +}); diff --git a/opal/master/opal.min.js b/opal/master/opal.min.js index 84abccae..a1221690 100644 --- a/opal/master/opal.min.js +++ b/opal/master/opal.min.js @@ -1 +1 @@ -(function(Module){"use strict";var console,nil,BasicObject,_Object,Class;if("undefined"!=typeof globalThis?Module=globalThis:"undefined"!=typeof global?Module=global:"undefined"!=typeof window&&(Module=window),"log"in(console="object"==typeof Module.console?Module.console:null==Module.console?Module.console={}:{})||(console.log=function(){}),"warn"in console||(console.warn=console.log),void 0!==Module.Opal)return console.warn("Opal already loaded. Loading twice can cause troubles, please fix your setup."),Module.Opal;var Opal=Module.Opal={};((Opal.global=Module).Opal=Opal).config={missing_require_severity:"error",unsupported_features_severity:"warning",enable_stack_trace:!0};var $has_own=Object.hasOwnProperty,$bind=Function.prototype.bind,$set_proto=Object.setPrototypeOf,$slice=Array.prototype.slice,$splice=Array.prototype.splice,unique_id=4;function $defineProperty(object,name,initialValue){"string"==typeof object?object[name]=initialValue:Object.defineProperty(object,name,{value:initialValue,enumerable:!1,configurable:!0,writable:!0})}function invoke_tracers_for_class(klass_or_module){for(var tracer,i=0,ii=Opal.tracers_for_class.length;i","$class","$coerce_to!","$new","$!=","$[]","$upcase"]),function($Opal_pristine$11,$Opal_const_name$excl$10){var $Opal_pristine$11=$module($Opal_pristine$11,"Opal"),$nesting=[$Opal_pristine$11].concat($Opal_const_name$excl$10);return Opal.defs($Opal_pristine$11,"$bridge",$Opal_const_name$excl$10=function(constructor,klass){return Opal.bridge(constructor,klass)},$Opal_const_name$excl$10.$$arity=2),Opal.defs($Opal_pristine$11,"$coerce_to!",$Opal_const_name$excl$10=function(object,type,method,$a){var $post_args=Opal.slice.call(arguments,3,arguments.length),coerced=$coerce_to(object,type,method,$post_args);return $truthy(type["$==="](coerced))||this.$raise($type_error(object,type,method,coerced)),coerced},$Opal_const_name$excl$10.$$arity=-4),Opal.defs($Opal_pristine$11,"$coerce_to?",$Opal_const_name$excl$10=function(object,type,method,$a){var coerced=nil,args=Opal.slice.call(arguments,3,arguments.length);return $truthy(object["$respond_to?"](method))?(coerced=$coerce_to(object,type,method,args),$truthy(coerced["$nil?"]())?nil:($truthy(type["$==="](coerced))||this.$raise($type_error(object,type,method,coerced)),coerced)):nil},$Opal_const_name$excl$10.$$arity=-4),Opal.defs($Opal_pristine$11,"$try_convert",$Opal_const_name$excl$10=function(object,type,method){return $truthy(type["$==="](object))?object:$truthy(object["$respond_to?"](method))?object.$__send__(method):nil},$Opal_const_name$excl$10.$$arity=3),Opal.defs($Opal_pristine$11,"$compare",$Opal_const_name$excl$10=function(a,b){var compare=a["$<=>"](b);return $truthy(compare===nil)&&this.$raise($$($nesting,"ArgumentError"),"comparison of "+a.$class()+" with "+b.$class()+" failed"),compare},$Opal_const_name$excl$10.$$arity=2),Opal.defs($Opal_pristine$11,"$destructure",$Opal_const_name$excl$10=function(args){if(1==args.length)return args[0];if(args.$$is_array)return args;for(var args_ary=new Array(args.length),i=0,l=args_ary.length;i"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$truthy=Opal.truthy,$coerce_to=Opal.coerce_to,$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2,$lambda=Opal.lambda,$range=Opal.range,$alias=Opal.alias,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$module_eval","$to_proc","$===","$raise","$equal?","$<","$>","$nil?","$attr_reader","$attr_writer","$warn","$attr_accessor","$class_variable_name!","$const_name!","$=~","$new","$inject","$split","$const_get","$==","$!~","$start_with?","$bind","$call","$class","$append_features","$included","$name","$cover?","$size","$merge","$compile","$proc","$any?","$prepend_features","$prepended","$to_s","$__id__","$constants","$include?","$copy_class_variables","$copy_constants","$define_singleton_method","$inspect","$class_exec"]),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Module"),$nesting=[self].concat($parent_nesting),$Module_allocate$1,$Module_initialize$2,$Module_$eq_eq_eq$3,$Module_$lt$4,$Module_$lt_eq$5,$Module_$gt$6,$Module_$gt_eq$7,$Module_$lt_eq_gt$8,$Module_alias_method$9,$Module_alias_native$10,$Module_ancestors$11,$Module_append_features$12,$Module_attr_accessor$13,$Module_attr$14,$Module_attr_reader$15,$Module_attr_writer$16,$Module_autoload$17,$Module_class_variables$18,$Module_class_variable_get$19,$Module_class_variable_set$20,$Module_class_variable_defined$ques$21,$Module_remove_class_variable$22,$Module_constants$23,$Module_constants$24,$Module_nesting$25,$Module_const_defined$ques$26,$Module_const_get$27,$Module_const_missing$29,$Module_const_set$30,$Module_public_constant$31,$Module_define_method$32,$Module_remove_method$34,$Module_singleton_class$ques$35,$Module_include$36,$Module_included_modules$37,$Module_include$ques$38,$Module_instance_method$39,$Module_instance_methods$40,$Module_included$41,$Module_extended$42,$Module_extend_object$43,$Module_method_added$44,$Module_method_removed$45,$Module_method_undefined$46,$Module_module_eval$47,$Module_module_exec$49,$Module_method_defined$ques$50,$Module_module_function$51,$Module_name$52,$Module_prepend$53,$Module_prepend_features$54,$Module_prepended$55,$Module_remove_const$56,$Module_to_s$57,$Module_undef_method$58,$Module_instance_variables$59,$Module_dup$60,$Module_copy_class_variables$61,$Module_copy_constants$62,$Module_refine$63,$Module_using$65;return Opal.defs(self,"$allocate",$Module_allocate$1=function(){var module=Opal.allocate_module(nil,function(){});return this!==Opal.Module&&Object.setPrototypeOf(module,this.$$prototype),module},$Module_allocate$1.$$arity=0),Opal.def(self,"$initialize",$Module_initialize$2=function(){var $iter=$Module_initialize$2.$$p,block=$iter||nil;return $iter&&($Module_initialize$2.$$p=null),$iter&&($Module_initialize$2.$$p=null),block!==nil?$send(this,"module_eval",[],block.$to_proc()):nil},$Module_initialize$2.$$arity=0),Opal.def(self,"$===",$Module_$eq_eq_eq$3=function(object){return!$truthy(null==object)&&Opal.is_a(object,this)},$Module_$eq_eq_eq$3.$$arity=1),Opal.def(self,"$<",$Module_$lt$4=function(other){$truthy($$($nesting,"Module")["$==="](other))||this.$raise($$($nesting,"TypeError"),"compared with non class/module");var ancestors,i,length;if(this===other)return!1;for(i=0,length=(ancestors=Opal.ancestors(this)).length;i",$Module_$gt$6=function(other){return $truthy($$($nesting,"Module")["$==="](other))||this.$raise($$($nesting,"TypeError"),"compared with non class/module"),$rb_lt(other,this)},$Module_$gt$6.$$arity=1),Opal.def(self,"$>=",$Module_$gt_eq$7=function(other){var $ret_or_2;return $truthy($ret_or_2=this["$equal?"](other))?$ret_or_2:$rb_gt(this,other)},$Module_$gt_eq$7.$$arity=1),Opal.def(self,"$<=>",$Module_$lt_eq_gt$8=function(other){var lt=nil;return this===other?0:$truthy($$($nesting,"Module")["$==="](other))?(lt=$rb_lt(this,other),$truthy(lt["$nil?"]())?nil:$truthy(lt)?-1:1):nil},$Module_$lt_eq_gt$8.$$arity=1),Opal.def(self,"$alias_method",$Module_alias_method$9=function(newname,oldname){return newname=$coerce_to(newname,$$($nesting,"String"),"to_str"),oldname=$coerce_to(oldname,$$($nesting,"String"),"to_str"),Opal.alias(this,newname,oldname),this},$Module_alias_method$9.$$arity=2),Opal.def(self,"$alias_native",$Module_alias_native$10=function(mid,jsid){return null==jsid&&(jsid=mid),Opal.alias_native(this,mid,jsid),this},$Module_alias_native$10.$$arity=-2),Opal.def(self,"$ancestors",$Module_ancestors$11=function(){return Opal.ancestors(this)},$Module_ancestors$11.$$arity=0),Opal.def(self,"$append_features",$Module_append_features$12=function(includer){return Opal.append_features(this,includer),this},$Module_append_features$12.$$arity=1),Opal.def(self,"$attr_accessor",$Module_attr_accessor$13=function($a){var names=Opal.slice.call(arguments,0,arguments.length);return $send(this,"attr_reader",Opal.to_a(names)),$send(this,"attr_writer",Opal.to_a(names))},$Module_attr_accessor$13.$$arity=-1),Opal.def(self,"$attr",$Module_attr$14=function($a){var args=Opal.slice.call(arguments,0,arguments.length);return 2!=args.length||!0!==args[1]&&!1!==args[1]?$send(this,"attr_reader",Opal.to_a(args)):(this.$warn("optional boolean argument is obsoleted",$hash2(["uplevel"],{uplevel:1})),args[1]?this.$attr_accessor(args[0]):this.$attr_reader(args[0]),nil)},$Module_attr$14.$$arity=-1),Opal.def(self,"$attr_reader",$Module_attr_reader$15=function($a){for(var names=Opal.slice.call(arguments,0,arguments.length),proto=this.$$prototype,i=names.length-1;0<=i;i--){var body=names[i],id="$"+body,ivar=Opal.ivar(body),body=function(ivar){return function(){return null==this[ivar]?nil:this[ivar]}}(ivar);Opal.defineProperty(proto,ivar,nil),body.$$parameters=[],body.$$arity=0,Opal.defn(this,id,body)}return nil},$Module_attr_reader$15.$$arity=-1),Opal.def(self,"$attr_writer",$Module_attr_writer$16=function($a){for(var names=Opal.slice.call(arguments,0,arguments.length),proto=this.$$prototype,i=names.length-1;0<=i;i--){var body=names[i],id="$"+body+"=",ivar=Opal.ivar(body),body=function(ivar){return function(value){return this[ivar]=value}}(ivar);body.$$parameters=[["req"]],body.$$arity=1,Opal.defineProperty(proto,ivar,nil),Opal.defn(this,id,body)}return nil},$Module_attr_writer$16.$$arity=-1),Opal.def(self,"$autoload",$Module_autoload$17=function(const$,path){return null==this.$$autoload&&(this.$$autoload={}),Opal.const_cache_version++,this.$$autoload[const$]=path,nil},$Module_autoload$17.$$arity=2),Opal.def(self,"$class_variables",$Module_class_variables$18=function(){return Object.keys(Opal.class_variables(this))},$Module_class_variables$18.$$arity=0),Opal.def(self,"$class_variable_get",$Module_class_variable_get$19=function(name){return name=$$($nesting,"Opal")["$class_variable_name!"](name),Opal.class_variable_get(this,name,!1)},$Module_class_variable_get$19.$$arity=1),Opal.def(self,"$class_variable_set",$Module_class_variable_set$20=function(name,value){return name=$$($nesting,"Opal")["$class_variable_name!"](name),Opal.class_variable_set(this,name,value)},$Module_class_variable_set$20.$$arity=2),Opal.def(self,"$class_variable_defined?",$Module_class_variable_defined$ques$21=function(name){return name=$$($nesting,"Opal")["$class_variable_name!"](name),Opal.class_variables(this).hasOwnProperty(name)},$Module_class_variable_defined$ques$21.$$arity=1),Opal.def(self,"$remove_class_variable",$Module_remove_class_variable$22=function(name){if(name=$$($nesting,"Opal")["$class_variable_name!"](name),Opal.hasOwnProperty.call(this.$$cvars,name)){var value=this.$$cvars[name];return delete this.$$cvars[name],value}this.$raise($$($nesting,"NameError"),"cannot remove "+name+" for "+this)},$Module_remove_class_variable$22.$$arity=1),Opal.def(self,"$constants",$Module_constants$23=function(inherit){return null==inherit&&(inherit=!0),Opal.constants(this,inherit)},$Module_constants$23.$$arity=-1),Opal.defs(self,"$constants",$Module_constants$24=function(inherit){if(null!=inherit)return Opal.constants(this,inherit);for(var constant,nesting=(this.$$nesting||[]).concat(Opal.Object),constants={},i=0,ii=nesting.length;i"},$Module_to_s$57.$$arity=0),$alias(self,"inspect","to_s"),Opal.def(self,"$undef_method",$Module_undef_method$58=function($a){for(var names=Opal.slice.call(arguments,0,arguments.length),i=0,length=names.length;i"}).$$s=this,$$64.$$arity=0,$$64)),$send(m,"class_exec",[],block.$to_proc()),m},$Module_refine$63.$$arity=1),Opal.def(self,"$using",$Module_using$65=function(){return this.$raise("Module#using is not permitted in methods")},$Module_using$65.$$arity=1),nil&&"using"}($nesting[0],null,$nesting)},Opal.modules["corelib/class"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$send=Opal.send,$send2=Opal.send2,$find_super=Opal.find_super,$alias=Opal.alias;return Opal.add_stubs(["$require","$class_eval","$to_proc","$initialize_copy","$allocate","$name","$to_s"]),self.$require("corelib/module"),function(self,$Class_superclass$6){var $Class_new$1,$Class_new$5,$Class_to_s$7,self=$klass(self,null,"Class"),$nesting=[self].concat($Class_superclass$6);return Opal.defs(self,"$new",$Class_new$1=function(superclass){var klass=$Class_new$1.$$p,block=klass||nil;if(klass&&($Class_new$1.$$p=null),klass&&($Class_new$1.$$p=null),null==superclass&&(superclass=$$($nesting,"Object")),!superclass.$$is_class)throw Opal.TypeError.$new("superclass must be a Class");klass=Opal.allocate_class(nil,superclass);return superclass.$inherited(klass),block!==nil&&$send(klass,"class_eval",[],block.$to_proc()),klass},$Class_new$1.$$arity=-1),Opal.def(self,"$allocate",$Class_superclass$6=function(){var obj=new this.$$constructor;return obj.$$id=Opal.uid(),obj},$Class_superclass$6.$$arity=0),Opal.def(self,"$inherited",$Class_superclass$6=function(){return nil},$Class_superclass$6.$$arity=1),Opal.def(self,"$initialize_dup",$Class_superclass$6=function(original){this.$initialize_copy(original),this.$$name=null,this.$$full_name=null},$Class_superclass$6.$$arity=1),Opal.def(self,"$new",$Class_new$5=function($a){var args,object=$Class_new$5.$$p,block=object||nil;object&&($Class_new$5.$$p=null),object&&($Class_new$5.$$p=null),args=Opal.slice.call(arguments,0,arguments.length);object=this.$allocate();return Opal.send(object,object.$initialize,args,block),object},$Class_new$5.$$arity=-1),Opal.def(self,"$superclass",$Class_superclass$6=function(){return this.$$super||nil},$Class_superclass$6.$$arity=0),Opal.def(self,"$to_s",$Class_to_s$7=function(){var singleton_of=$Class_to_s$7.$$p;singleton_of&&($Class_to_s$7.$$p=null);singleton_of=this.$$singleton_of;return singleton_of&&singleton_of.$$is_a_module?"#":singleton_of?"#>":$send2(this,$find_super(this,"to_s",$Class_to_s$7,!1,!0),"to_s",[],null)},$Class_to_s$7.$$arity=0),$alias(self,"inspect","to_s")}($nesting[0],$nesting)},Opal.modules["corelib/basic_object"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$range=Opal.range,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$==","$!","$nil?","$cover?","$size","$raise","$merge","$compile","$proc","$any?","$inspect","$new"]),function($base,$super,$parent_nesting){var self=$klass($base,$super,"BasicObject"),$nesting=[self].concat($parent_nesting),$BasicObject_initialize$1,$BasicObject_$eq_eq$2,$BasicObject_eql$ques$3,$BasicObject___id__$4,$BasicObject___send__$5,$BasicObject_$excl$6,$BasicObject_$not_eq$7,$BasicObject_instance_eval$8,$BasicObject_instance_exec$10,$BasicObject_singleton_method_added$11,$BasicObject_singleton_method_removed$12,$BasicObject_singleton_method_undefined$13,$BasicObject_method_missing$14,$BasicObject_respond_to_missing$ques$15;return Opal.def(self,"$initialize",$BasicObject_initialize$1=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$BasicObject_initialize$1.$$arity=-1),Opal.def(self,"$==",$BasicObject_$eq_eq$2=function(other){return this===other},$BasicObject_$eq_eq$2.$$arity=1),Opal.def(self,"$eql?",$BasicObject_eql$ques$3=function(other){return this["$=="](other)},$BasicObject_eql$ques$3.$$arity=1),$alias(self,"equal?","=="),Opal.def(self,"$__id__",$BasicObject___id__$4=function(){return null!=this.$$id||Opal.defineProperty(this,"$$id",Opal.uid()),this.$$id},$BasicObject___id__$4.$$arity=0),Opal.def(self,"$__send__",$BasicObject___send__$5=function(symbol,$a){var args,func=$BasicObject___send__$5.$$p,block=func||nil;func&&($BasicObject___send__$5.$$p=null),func&&($BasicObject___send__$5.$$p=null),args=Opal.slice.call(arguments,1,arguments.length);func=this["$"+symbol];return func?(block!==nil&&(func.$$p=block),func.apply(this,args)):(block!==nil&&(this.$method_missing.$$p=block),this.$method_missing.apply(this,[symbol].concat(args)))},$BasicObject___send__$5.$$arity=-2),Opal.def(self,"$!",$BasicObject_$excl$6=function(){return!1},$BasicObject_$excl$6.$$arity=0),Opal.def(self,"$!=",$BasicObject_$not_eq$7=function(other){return this["$=="](other)["$!"]()},$BasicObject_$not_eq$7.$$arity=1),Opal.def(self,"$instance_eval",$BasicObject_instance_eval$8=function $$instance_eval($a){var $iter=$BasicObject_instance_eval$8.$$p,block=$iter||nil,$post_args,args,$b,$$9,self=this,$ret_or_1=nil,string=nil,file=nil,_lineno=nil,default_eval_options=nil,$ret_or_2=nil,compiling_options=nil,compiled=nil;$iter&&($BasicObject_instance_eval$8.$$p=null),$iter&&($BasicObject_instance_eval$8.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,$truthy($truthy($ret_or_1=block["$nil?"]())?!!Opal.compile:$ret_or_1)?($truthy($range(1,3,!1)["$cover?"](args.$size()))||$$$("::","Kernel").$raise($$$("::","ArgumentError"),"wrong number of arguments (0 for 1..3)"),$b=[].concat(Opal.to_a(args)),string=null==$b[0]?nil:$b[0],file=null==$b[1]?nil:$b[1],_lineno=null==$b[2]?nil:$b[2],default_eval_options=$hash2(["file","eval"],{file:$truthy($ret_or_2=file)?$ret_or_2:"(eval)",eval:!0}),compiling_options=Opal.hash({arity_check:!1}).$merge(default_eval_options),compiled=$$$("::","Opal").$compile(string,compiling_options),block=$send($$$("::","Kernel"),"proc",[],($$9=function(){var self=null==$$9.$$s?this:$$9.$$s;return function(self){return eval(compiled)}(self)},$$9.$$s=self,$$9.$$arity=0,$$9))):$truthy(args["$any?"]())&&$$$("::","Kernel").$raise($$$("::","ArgumentError"),"wrong number of arguments ("+args.$size()+" for 0)");var old=block.$$s,result;if(block.$$s=null,self.$$is_a_module){self.$$eval=!0;try{result=block.call(self,self)}finally{self.$$eval=!1}}else result=block.call(self,self);return block.$$s=old,result},$BasicObject_instance_eval$8.$$arity=-1),Opal.def(self,"$instance_exec",$BasicObject_instance_exec$10=function($a){var args,block_self=$BasicObject_instance_exec$10.$$p,block=block_self||nil;block_self&&($BasicObject_instance_exec$10.$$p=null),block_self&&($BasicObject_instance_exec$10.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$truthy(block)||$$$("::","Kernel").$raise($$$("::","ArgumentError"),"no block given");var result,block_self=block.$$s;if(block.$$s=null,this.$$is_a_module){this.$$eval=!0;try{result=block.apply(this,args)}finally{this.$$eval=!1}}else result=block.apply(this,args);return block.$$s=block_self,result},$BasicObject_instance_exec$10.$$arity=-1),Opal.def(self,"$singleton_method_added",$BasicObject_singleton_method_added$11=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$BasicObject_singleton_method_added$11.$$arity=-1),Opal.def(self,"$singleton_method_removed",$BasicObject_singleton_method_removed$12=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$BasicObject_singleton_method_removed$12.$$arity=-1),Opal.def(self,"$singleton_method_undefined",$BasicObject_singleton_method_undefined$13=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$BasicObject_singleton_method_undefined$13.$$arity=-1),Opal.def(self,"$method_missing",$BasicObject_method_missing$14=function(symbol,$a){var message,$iter=$BasicObject_method_missing$14.$$p,self=this;return $iter&&($BasicObject_method_missing$14.$$p=null),$iter&&($BasicObject_method_missing$14.$$p=null),Opal.slice.call(arguments,1,arguments.length),message=$truthy(self.$inspect&&!self.$inspect.$$stub)?"undefined method `"+symbol+"' for "+self.$inspect()+":"+self.$$class:"undefined method `"+symbol+"' for "+self.$$class,$$$("::","Kernel").$raise($$$("::","NoMethodError").$new(message,symbol))},$BasicObject_method_missing$14.$$arity=-2),Opal.def(self,"$respond_to_missing?",$BasicObject_respond_to_missing$ques$15=function(method_name,include_all){return null==include_all&&(include_all=!1),!1},$BasicObject_respond_to_missing$ques$15.$$arity=-2),nil&&"respond_to_missing?"}($nesting[0],null,$nesting)},Opal.modules["corelib/kernel"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$truthy=Opal.truthy,$coerce_to=Opal.coerce_to,$respond_to=Opal.respond_to,$module=Opal.module,$gvars=Opal.gvars,$hash2=Opal.hash2,$send=Opal.send,$alias=Opal.alias,$klass=Opal.klass;return Opal.add_stubs(["$raise","$new","$inspect","$caller","$!","$=~","$==","$object_id","$class","$coerce_to?","$<<","$allocate","$copy_instance_variables","$copy_singleton_methods","$initialize_clone","$initialize_copy","$define_method","$singleton_class","$to_proc","$initialize_dup","$for","$empty?","$pop","$call","$append_features","$extend_object","$extended","$__id__","$each","$instance_variables","$+","$instance_variable_get","$to_s","$instance_variable_name!","$respond_to?","$to_int","$coerce_to!","$Integer","$nil?","$===","$enum_for","$result","$any?","$print","$format","$puts","$<=","$length","$[]","$<","$first","$split","$map","$to_str","$exception","$backtrace","$rand","$respond_to_missing?","$pristine","$try_convert!","$expand_path","$join","$start_with?","$new_seed","$srand","$tag","$value","$open","$include"]),function(self,$Kernel_throw$67){var $Kernel_method_missing$1,$Kernel_at_exit$10,$Kernel_define_singleton_method$17,$Kernel_enum_for$20,$Kernel_lambda$39,$Kernel_loop$41,$Kernel_proc$45,$Kernel_tap$63,$Kernel_catch$66,$Kernel_open$68,$Kernel_yield_self$69,$nesting=[self=$module(self,"Kernel")].concat($Kernel_throw$67);Opal.def(self,"$method_missing",$Kernel_method_missing$1=function(symbol,$a){var args=$Kernel_method_missing$1.$$p;return args&&($Kernel_method_missing$1.$$p=null),args&&($Kernel_method_missing$1.$$p=null),args=Opal.slice.call(arguments,1,arguments.length),this.$raise($$($nesting,"NoMethodError").$new("undefined method `"+symbol+"' for "+this.$inspect(),symbol,args),nil,this.$caller(1))},$Kernel_method_missing$1.$$arity=-2),Opal.def(self,"$=~",$Kernel_throw$67=function(obj){return!1},$Kernel_throw$67.$$arity=1),Opal.def(self,"$!~",$Kernel_throw$67=function(obj){return this["$=~"](obj)["$!"]()},$Kernel_throw$67.$$arity=1),Opal.def(self,"$===",$Kernel_throw$67=function(other){var $ret_or_1;return $truthy($ret_or_1=this.$object_id()["$=="](other.$object_id()))?$ret_or_1:this["$=="](other)},$Kernel_throw$67.$$arity=1),Opal.def(self,"$<=>",$Kernel_throw$67=function(x){this.$$comparable=!0;x=this["$=="](x);return x&&x!==nil?0:nil},$Kernel_throw$67.$$arity=1),Opal.def(self,"$method",$Kernel_throw$67=function(name){var meth=this["$"+name];return meth&&!meth.$$stub||this.$raise($$($nesting,"NameError").$new("undefined method `"+name+"' for class `"+this.$class()+"'",name)),$$($nesting,"Method").$new(this,meth.$$owner||this.$class(),meth,name)},$Kernel_throw$67.$$arity=1),Opal.def(self,"$methods",$Kernel_throw$67=function(all){return null==all&&(all=!0),$truthy(all)?Opal.methods(this):Opal.own_methods(this)},$Kernel_throw$67.$$arity=-1),Opal.def(self,"$public_methods",$Kernel_throw$67=function(all){return null==all&&(all=!0),$truthy(all)?Opal.methods(this):Opal.receiver_methods(this)},$Kernel_throw$67.$$arity=-1),Opal.def(self,"$Array",$Kernel_throw$67=function(object){var coerced;return object===nil?[]:object.$$is_array?object:(coerced=$$($nesting,"Opal")["$coerce_to?"](object,$$($nesting,"Array"),"to_ary"))!==nil||(coerced=$$($nesting,"Opal")["$coerce_to?"](object,$$($nesting,"Array"),"to_a"))!==nil?coerced:[object]},$Kernel_throw$67.$$arity=1),Opal.def(self,"$at_exit",$Kernel_at_exit$10=function(){var $iter=$Kernel_at_exit$10.$$p,block=$iter||nil,$ret_or_2=nil;return null==$gvars.__at_exit__&&($gvars.__at_exit__=nil),$iter&&($Kernel_at_exit$10.$$p=null),$iter&&($Kernel_at_exit$10.$$p=null),$gvars.__at_exit__=$truthy($ret_or_2=$gvars.__at_exit__)?$ret_or_2:[],$gvars.__at_exit__["$<<"](block),block},$Kernel_at_exit$10.$$arity=0),Opal.def(self,"$caller",$Kernel_throw$67=function(start,length){var stack,result;null==start&&(start=1),null==length&&(length=nil),result=[];for(var i=start+1,ii=(stack=(new Error).$backtrace()).length;i"},$Kernel_throw$67.$$arity=0),Opal.def(self,"$instance_of?",$Kernel_throw$67=function(klass){return klass.$$is_class||klass.$$is_module||this.$raise($$($nesting,"TypeError"),"class or module required"),this.$$class===klass},$Kernel_throw$67.$$arity=1),Opal.def(self,"$instance_variable_defined?",$Kernel_throw$67=function(name){return name=$$($nesting,"Opal")["$instance_variable_name!"](name),Opal.hasOwnProperty.call(this,name.substr(1))},$Kernel_throw$67.$$arity=1),Opal.def(self,"$instance_variable_get",$Kernel_throw$67=function(ivar){ivar=$$($nesting,"Opal")["$instance_variable_name!"](ivar);ivar=this[Opal.ivar(ivar.substr(1))];return null==ivar?nil:ivar},$Kernel_throw$67.$$arity=1),Opal.def(self,"$instance_variable_set",$Kernel_throw$67=function(name,value){return name=$$($nesting,"Opal")["$instance_variable_name!"](name),this[Opal.ivar(name.substr(1))]=value},$Kernel_throw$67.$$arity=2),Opal.def(self,"$remove_instance_variable",$Kernel_throw$67=function(name){name=$$($nesting,"Opal")["$instance_variable_name!"](name);var val,key=Opal.ivar(name.substr(1));return this.hasOwnProperty(key)?(val=this[key],delete this[key],val):this.$raise($$($nesting,"NameError"),"instance variable "+name+" not defined")},$Kernel_throw$67.$$arity=1),Opal.def(self,"$instance_variables",$Kernel_throw$67=function(){var ivar,name,result=[];for(name in this)this.hasOwnProperty(name)&&"$"!==name.charAt(0)&&(ivar="$"===name.substr(-1)?name.slice(0,name.length-1):name,result.push("@"+ivar));return result},$Kernel_throw$67.$$arity=0),Opal.def(self,"$Integer",$Kernel_throw$67=function(value,base){var i,base_digits,self=this;return value.$$is_string?"0"===value?0:(void 0===base?base=0:(1===(base=$coerce_to(base,$$($nesting,"Integer"),"to_int"))||base<0||36"},$Kernel_throw$67.$$arity=0),Opal.def(self,"$catch",$Kernel_catch$66=function(tag){var $iter=$Kernel_catch$66.$$p,$yield=$iter||nil,$ret_or_7=nil,e=nil;$iter&&($Kernel_catch$66.$$p=null),null==tag&&(tag=nil);try{return tag=$truthy($ret_or_7=tag)?$ret_or_7:$$($nesting,"Object").$new(),Opal.yield1($yield,tag)}catch($err){if(!Opal.rescue($err,[$$($nesting,"UncaughtThrowError")]))throw $err;e=$err;try{return e.$tag()["$=="](tag)?e.$value():this.$raise()}finally{Opal.pop_exception()}}},$Kernel_catch$66.$$arity=-1),Opal.def(self,"$throw",$Kernel_throw$67=function(tag,obj){return null==obj&&(obj=nil),this.$raise($$($nesting,"UncaughtThrowError").$new(tag,obj))},$Kernel_throw$67.$$arity=-2),Opal.def(self,"$open",$Kernel_open$68=function($a){var args=$Kernel_open$68.$$p,block=args||nil;return args&&($Kernel_open$68.$$p=null),args&&($Kernel_open$68.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$send($$($nesting,"File"),"open",Opal.to_a(args),block.$to_proc())},$Kernel_open$68.$$arity=-1),Opal.def(self,"$yield_self",$Kernel_yield_self$69=function(){var $$70,$iter=$Kernel_yield_self$69.$$p,$yield=$iter||nil;return $iter&&($Kernel_yield_self$69.$$p=null),$yield===nil?$send(this,"enum_for",["yield_self"],(($$70=function(){null==$$70.$$s||$$70.$$s;return 1}).$$s=this,$$70.$$arity=0,$$70)):Opal.yield1($yield,this)},$Kernel_yield_self$69.$$arity=0),$alias(self,"then","yield_self"),$$($nesting,"Opal").$pristine(self,"method_missing")}($nesting[0],$nesting),function(self,$nesting){self=$klass(self,null,"Object"),$nesting=[self].concat($nesting);return self.$include($$($nesting,"Kernel"))}($nesting[0],$nesting)},Opal.modules["corelib/error"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $base,$super,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$gvars=Opal.gvars,$send=Opal.send,$hash2=Opal.hash2,$truthy=Opal.truthy,$module=Opal.module,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$new","$map","$backtrace","$clone","$to_s","$tty?","$include?","$raise","$dup","$!","$empty?","$caller","$shift","$+","$class","$join","$cause","$full_message","$==","$reverse","$split","$attr_reader","$inspect"]),function($base,$Exception_to_s$15,$Exception_set_backtrace$13){var stack_trace_limit,$nesting=[$Exception_to_s$15=$klass($base,$Exception_to_s$15,"Exception")].concat($Exception_set_backtrace$13);function correct_backtrace(backtrace){for(var m,new_bt=[],i=0;i"},$Exception_set_backtrace$13.$$arity=0),Opal.def($Exception_to_s$15,"$set_backtrace",$Exception_set_backtrace$13=function(backtrace){var $$14,i,ii,valid=!0;if(backtrace===nil)this.backtrace=nil,this.stack="";else if(backtrace.$$is_string)this.backtrace=[backtrace],this.stack=" from "+backtrace;else{if(backtrace.$$is_array){for(i=0,ii=backtrace.length;i","$length","$Rational"]),function($NilClass_instance_variables$19,$NilClass_to_r$18){var $nesting=[$NilClass_instance_variables$19=$klass($NilClass_instance_variables$19,null,"NilClass")].concat($NilClass_to_r$18);$NilClass_instance_variables$19.$$prototype.$$meta=$NilClass_instance_variables$19,function(self,$allocate$1){var $nesting=[self].concat($allocate$1);Opal.def(self,"$allocate",$allocate$1=function(){return this.$raise($$($nesting,"TypeError"),"allocator undefined for "+this.$name())},$allocate$1.$$arity=0),Opal.udef(self,"$new")}(Opal.get_singleton_class($NilClass_instance_variables$19),$nesting),Opal.def($NilClass_instance_variables$19,"$!",$NilClass_to_r$18=function(){return!0},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$&",$NilClass_to_r$18=function(other){return!1},$NilClass_to_r$18.$$arity=1),Opal.def($NilClass_instance_variables$19,"$|",$NilClass_to_r$18=function(other){return!1!==other&&other!==nil},$NilClass_to_r$18.$$arity=1),Opal.def($NilClass_instance_variables$19,"$^",$NilClass_to_r$18=function(other){return!1!==other&&other!==nil},$NilClass_to_r$18.$$arity=1),Opal.def($NilClass_instance_variables$19,"$==",$NilClass_to_r$18=function(other){return other===nil},$NilClass_to_r$18.$$arity=1),Opal.def($NilClass_instance_variables$19,"$dup",$NilClass_to_r$18=function(){return nil},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$clone",$NilClass_to_r$18=function($kwargs){if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $kwargs.$$smap.freeze,nil},$NilClass_to_r$18.$$arity=-1),Opal.def($NilClass_instance_variables$19,"$inspect",$NilClass_to_r$18=function(){return"nil"},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$nil?",$NilClass_to_r$18=function(){return!0},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$singleton_class",$NilClass_to_r$18=function(){return $$($nesting,"NilClass")},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$to_a",$NilClass_to_r$18=function(){return[]},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$to_h",$NilClass_to_r$18=function(){return Opal.hash()},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$to_i",$NilClass_to_r$18=function(){return 0},$NilClass_to_r$18.$$arity=0),$alias($NilClass_instance_variables$19,"to_f","to_i"),Opal.def($NilClass_instance_variables$19,"$to_s",$NilClass_to_r$18=function(){return""},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$to_c",$NilClass_to_r$18=function(){return $$($nesting,"Complex").$new(0,0)},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$rationalize",$NilClass_to_r$18=function($a){var lhs,rhs=Opal.slice.call(arguments,0,arguments.length);return $truthy((lhs=rhs.$length(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))&&this.$raise($$($nesting,"ArgumentError")),this.$Rational(0,1)},$NilClass_to_r$18.$$arity=-1),Opal.def($NilClass_instance_variables$19,"$to_r",$NilClass_to_r$18=function(){return this.$Rational(0,1)},$NilClass_to_r$18.$$arity=0),Opal.def($NilClass_instance_variables$19,"$instance_variables",$NilClass_instance_variables$19=function(){return[]},$NilClass_instance_variables$19.$$arity=0)}($nesting[0],$nesting),Opal.const_set($nesting[0],"NIL",nil)},Opal.modules["corelib/boolean"]=function(Opal){Opal.top;var $base,$super,$parent_nesting,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$alias=Opal.alias,$hash2=Opal.hash2,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$raise","$name"]),function($base,$super,$Boolean_respond_to_missing$ques$13){var $Boolean_method_missing$12,self=$klass($base,$super,"Boolean"),$Boolean_respond_to_missing$ques$13=[self].concat($Boolean_respond_to_missing$ques$13);Opal.defineProperty(self.$$prototype,"$$is_boolean",!0);for(var properties=["$$class","$$meta"],i=0;i"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$<","$===","$raise","$class","$<=>","$equal?"]),function($base,$Comparable_clamp$7){var self=$module($base,"Comparable"),$nesting=[self].concat($Comparable_clamp$7),$case=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $falsy(cmp)&&function(lhs,class_name){$case=class_name,class_name=nil["$==="]($case)||(!0)["$==="]($case)||(!1)["$==="]($case)||$$($nesting,"Integer")["$==="]($case)||$$($nesting,"Float")["$==="]($case)?class_name.$inspect():class_name.$$class,self.$raise($$($nesting,"ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return Opal.def(self,"$==",$Comparable_clamp$7=function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$>",$Comparable_clamp$7=function(other){return 0=",$Comparable_clamp$7=function(other){return 0<=cmp_or_fail(this,other)},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<=",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<=0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$between?",$Comparable_clamp$7=function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)},$Comparable_clamp$7.$$arity=2),Opal.def(self,"$clamp",$Comparable_clamp$7=function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||this.$raise($$($nesting,"TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&this.$raise($$($nesting,"ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&0=pos)return $gvars["~"]=$$($nesting,"MatchData").$new(re,md),block===nil?$gvars["~"]:Opal.yield1(block,$gvars["~"]);re.lastIndex=md.index+1}},$Regexp_match$10.$$arity=-2),Opal.def(self,"$match?",$Regexp_casefold$ques$19=function(md,pos){if(this.uninitialized&&this.$raise($$($nesting,"TypeError"),"uninitialized Regexp"),void 0===pos)return md!==nil&&this.test($coerce_to(md,$$($nesting,"String"),"to_str"));if(pos=$coerce_to(pos,$$($nesting,"Integer"),"to_int"),md===nil)return!1;if(md=$coerce_to(md,$$($nesting,"String"),"to_str"),pos<0&&(pos+=md.length)<0)return!1;md=Opal.global_regexp(this).exec(md);return!(null===md||md.index/),"map",[],"first".$to_proc()).$uniq()},$Regexp_casefold$ques$19.$$arity=0),Opal.def(self,"$named_captures",$Regexp_casefold$ques$19=function(){var $$14;return $send($send($send(this.$source().$scan(/\(?<(\w+)>/),"map",[],"first".$to_proc()).$each_with_index(),"group_by",[],"first".$to_proc()),"transform_values",[],(($$14=function(i){var $$15,self=null==$$14.$$s?this:$$14.$$s;return null==i&&(i=nil),$send(i,"map",[],(($$15=function(rhs){var lhs;null==$$15.$$s||$$15.$$s;return null==rhs&&(rhs=nil),lhs=rhs.$last(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}).$$s=self,$$15.$$arity=1,$$15))}).$$s=this,$$14.$$arity=1,$$14))},$Regexp_casefold$ques$19.$$arity=0),Opal.def(self,"$~",$Regexp_casefold$ques$19=function(){return null==$gvars._&&($gvars._=nil),this["$=~"]($gvars._)},$Regexp_casefold$ques$19.$$arity=0),Opal.def(self,"$source",$Regexp_casefold$ques$19=function(){return this.source},$Regexp_casefold$ques$19.$$arity=0),Opal.def(self,"$options",$Regexp_casefold$ques$19=function(){this.uninitialized&&this.$raise($$($nesting,"TypeError"),"uninitialized Regexp");var result=0;return this.multiline&&(result|=$$($nesting,"MULTILINE")),this.ignoreCase&&(result|=$$($nesting,"IGNORECASE")),result},$Regexp_casefold$ques$19.$$arity=0),Opal.def(self,"$casefold?",$Regexp_casefold$ques$19=function(){return this.ignoreCase},$Regexp_casefold$ques$19.$$arity=0),$alias(self,"to_s","source")}($nesting[0],RegExp,$nesting),function($MatchData_values_at$35,$MatchData_to_s$34){var $MatchData_values_at$35=$klass($MatchData_values_at$35,null,"MatchData"),$nesting=[$MatchData_values_at$35].concat($MatchData_to_s$34);return $MatchData_values_at$35.$$prototype.matches=nil,$MatchData_values_at$35.$attr_reader("post_match","pre_match","regexp","string"),Opal.def($MatchData_values_at$35,"$initialize",$MatchData_to_s$34=function(regexp,match_groups){($gvars["~"]=this).regexp=regexp,this.begin=match_groups.index,this.string=match_groups.input,this.pre_match=match_groups.input.slice(0,match_groups.index),this.post_match=match_groups.input.slice(match_groups.index+match_groups[0].length),this.matches=[];for(var i=0,length=match_groups.length;i"},$MatchData_to_s$34.$$arity=0),Opal.def($MatchData_values_at$35,"$length",$MatchData_to_s$34=function(){return this.matches.length},$MatchData_to_s$34.$$arity=0),$alias($MatchData_values_at$35,"size","length"),Opal.def($MatchData_values_at$35,"$to_a",$MatchData_to_s$34=function(){return this.matches},$MatchData_to_s$34.$$arity=0),Opal.def($MatchData_values_at$35,"$to_s",$MatchData_to_s$34=function(){return this.matches[0]},$MatchData_to_s$34.$$arity=0),Opal.def($MatchData_values_at$35,"$values_at",$MatchData_values_at$35=function($a){for(var index,args=Opal.slice.call(arguments,0,arguments.length),values=[],i=0;i","$==","$=~","$new","$force_encoding","$casecmp","$empty?","$ljust","$ceil","$/","$+","$rjust","$floor","$coerce_to!","$copy_singleton_methods","$initialize_clone","$initialize_dup","$enum_for","$chomp","$[]","$to_i","$each_line","$to_proc","$to_a","$class","$match","$match?","$captures","$proc","$succ","$escape","$include?","$upcase","$unicode_normalize","$pristine"]),self.$require("corelib/comparable"),self.$require("corelib/regexp"),function($base,$super,$String_frozen$ques$77){var $String_each_line$27,$String_gsub$30,$String_lines$37,$String_match$41,$String_scan$52,$String_sub$57,$String_to_proc$62,$String_upto$68,self=$klass($base,$super,"String"),$nesting=[self].concat($String_frozen$ques$77);function char_class_from_char_sets(sets){function intersection(setA,setB){if(0===setA.length)return setB;for(var chr,result="",len=setA.length,i=0;i=1<<28&&this.$raise($$($nesting,"RangeError"),"multiply count must not overflow maximum string size");1==(1&count)&&(result+=string),0!==(count>>>=1);)string+=string;return this.$$cast(result)},$String_frozen$ques$77.$$arity=1),Opal.def(self,"$+",$String_frozen$ques$77=function(other){if(""==(other=$coerce_to(other,$$($nesting,"String"),"to_str"))&&this.$$class===Opal.String)return this;if(""==this&&other.$$class===Opal.String)return other;var out=this+other;return this.encoding===out.encoding&&other.encoding===out.encoding||"UTF-8"===this.encoding.name||"UTF-8"===other.encoding.name?out:Opal.enc(out,this.encoding)},$String_frozen$ques$77.$$arity=1),Opal.def(self,"$<=>",$String_frozen$ques$77=function(cmp){if($truthy(cmp["$respond_to?"]("to_str")))return(cmp=cmp.$to_str().$to_s())"](this);return cmp===nil?nil:0size?nil:(index<0&&(index+=size),length<0&&(length+=size),match||(length+=1),(length-=index)<0&&(length=0),this.$$cast(this.substr(index,length)));if(index.$$is_string)return null!=length&&this.$raise($$($nesting,"TypeError")),-1!==this.indexOf(index)?this.$$cast(index):nil;if(index.$$is_regexp){var match=this.match(index);return null===match?$gvars["~"]=nil:($gvars["~"]=$$($nesting,"MatchData").$new(index,match),null==length?this.$$cast(match[0]):(length=$coerce_to(length,$$($nesting,"Integer"),"to_int"))<0&&-length"](other)},$String_frozen$ques$77.$$arity=1),Opal.def(self,"$casecmp?",$String_frozen$ques$77=function(cmp){cmp=this.$casecmp(cmp);return cmp===nil?nil:0===cmp},$String_frozen$ques$77.$$arity=1),Opal.def(self,"$center",$String_frozen$ques$77=function(width,rjustified){if(null==rjustified&&(rjustified=" "),width=$coerce_to(width,$$($nesting,"Integer"),"to_int"),rjustified=$coerce_to(rjustified,$$($nesting,"String"),"to_str").$to_s(),$truthy(rjustified["$empty?"]())&&this.$raise($$($nesting,"ArgumentError"),"zero width padding"),$truthy(width<=this.length))return this;var ljustified=this.$ljust($rb_divide($rb_plus(width,this.length),2).$ceil(),rjustified),rjustified=this.$rjust($rb_divide($rb_plus(width,this.length),2).$floor(),rjustified);return this.$$cast(rjustified+ljustified.slice(this.length))},$String_frozen$ques$77.$$arity=-2),Opal.def(self,"$chomp",$String_frozen$ques$77=function(separator){var result;return null==$gvars["/"]&&($gvars["/"]=nil),null==separator&&(separator=$gvars["/"]),$truthy(separator===nil||0===this.length)?this:("\n"===(separator=$$($nesting,"Opal")["$coerce_to!"](separator,$$($nesting,"String"),"to_str").$to_s())?result=this.replace(/\r?\n?$/,""):""===separator?result=this.replace(/(\r?\n)+$/,""):this.length>=separator.length&&this.substr(this.length-separator.length,separator.length)===separator&&(result=this.substr(0,this.length-separator.length)),null!=result?this.$$cast(result):this)},$String_frozen$ques$77.$$arity=-1),Opal.def(self,"$chop",$String_frozen$ques$77=function(){var result=this.length,result=result<=1?"":"\n"===this.charAt(result-1)&&"\r"===this.charAt(result-2)?this.substr(0,result-2):this.substr(0,result-1);return this.$$cast(result)},$String_frozen$ques$77.$$arity=0),Opal.def(self,"$chr",$String_frozen$ques$77=function(){return this.charAt(0)},$String_frozen$ques$77.$$arity=0),Opal.def(self,"$clone",$String_frozen$ques$77=function(){var copy=nil;return(copy=new String(this)).$copy_singleton_methods(this),copy.$initialize_clone(this),copy},$String_frozen$ques$77.$$arity=0),Opal.def(self,"$dup",$String_frozen$ques$77=function(){var copy=nil;return(copy=new String(this)).$initialize_dup(this),copy},$String_frozen$ques$77.$$arity=0),Opal.def(self,"$count",$String_frozen$ques$77=function($a){var char_class=Opal.slice.call(arguments,0,arguments.length);0===char_class.length&&this.$raise($$($nesting,"ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");char_class=char_class_from_char_sets(char_class);return null===char_class?0:this.length-this.replace(new RegExp(char_class,"g"),"").length},$String_frozen$ques$77.$$arity=-1),Opal.def(self,"$delete",$String_frozen$ques$77=function($a){var char_class=Opal.slice.call(arguments,0,arguments.length);0===char_class.length&&this.$raise($$($nesting,"ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");char_class=char_class_from_char_sets(char_class);return null===char_class?this:this.$$cast(this.replace(new RegExp(char_class,"g"),""))},$String_frozen$ques$77.$$arity=-1),Opal.def(self,"$delete_prefix",$String_frozen$ques$77=function(prefix){return prefix.$$is_string||(prefix=$coerce_to(prefix,$$($nesting,"String"),"to_str")),this.slice(0,prefix.length)===prefix?this.$$cast(this.slice(prefix.length)):this},$String_frozen$ques$77.$$arity=1),Opal.def(self,"$delete_suffix",$String_frozen$ques$77=function(suffix){return suffix.$$is_string||(suffix=$coerce_to(suffix,$$($nesting,"String"),"to_str")),this.slice(this.length-suffix.length)===suffix?this.$$cast(this.slice(0,this.length-suffix.length)):this},$String_frozen$ques$77.$$arity=1),Opal.def(self,"$downcase",$String_frozen$ques$77=function(){return this.$$cast(this.toLowerCase())},$String_frozen$ques$77.$$arity=0),Opal.def(self,"$each_line",$String_each_line$27=function(separator){var a,i,n,length,trailing,splitted,value,chomped=$String_each_line$27.$$p,block=chomped||nil;if(null==$gvars["/"]&&($gvars["/"]=nil),chomped&&($String_each_line$27.$$p=null),chomped&&($String_each_line$27.$$p=null),null==separator&&(separator=$gvars["/"]),block===nil)return this.$enum_for("each_line",separator);if(separator===nil)return Opal.yield1(block,this),this;if(0===(separator=$coerce_to(separator,$$($nesting,"String"),"to_str")).length){for(i=0,n=(a=this.split(/(\n{2,})/)).length;i=suffix.length&&this.substr(this.length-suffix.length,suffix.length)==suffix)return!0}return!1},$String_frozen$ques$77.$$arity=-1),$alias(self,"equal?","==="),Opal.def(self,"$gsub",$String_gsub$30=function(pattern,replacement){var $iter=$String_gsub$30.$$p,block=$iter||nil,self=this;if($iter&&($String_gsub$30.$$p=null),$iter&&($String_gsub$30.$$p=null),void 0===replacement&&block===nil)return self.$enum_for("gsub",pattern);var match,_replacement,lastIndex,result="",match_data=nil,index=0;for(pattern=pattern.$$is_regexp?Opal.global_multiline_regexp(pattern):(pattern=$coerce_to(pattern,$$($nesting,"String"),"to_str"),new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));;){if(null===(match=pattern.exec(self))){$gvars["~"]=nil,result+=self.slice(index);break}match_data=$$($nesting,"MatchData").$new(pattern,match),void 0===replacement?(lastIndex=pattern.lastIndex,_replacement=block(match[0]),pattern.lastIndex=lastIndex):_replacement=replacement.$$is_hash?replacement["$[]"](match[0]).$to_s():(replacement.$$is_string||(replacement=$coerce_to(replacement,$$($nesting,"String"),"to_str")),replacement.replace(/([\\]+)([0-9+&`'])/g,function(original,slashes,command){if(slashes.length%2==0)return original;switch(command){case"+":for(var i=match.length-1;0=offset){$gvars["~"]=$$($nesting,"MatchData").$new(regex,match),index=match.index;break}regex.lastIndex=match.index+1}else index=0===(search=$coerce_to(search,$$($nesting,"String"),"to_str")).length&&offset>this.length?-1:this.indexOf(search,offset);return-1===index?nil:index},$String_frozen$ques$77.$$arity=-2),Opal.def(self,"$inspect",$String_frozen$ques$77=function(){var self=this,meta={"":"\\a","":"\\e","\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\v":"\\v",'"':'\\"',"\\":"\\\\"};return'"'+self.replace(/[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,function(chr){return meta[chr]||((chr=chr.charCodeAt(0))<=255&&(self.encoding["$binary?"]()||self.internal_encoding["$binary?"]())?"\\x"+("00"+chr.toString(16).toUpperCase()).slice(-2):"\\u"+("0000"+chr.toString(16).toUpperCase()).slice(-4))}).replace(/\#[\$\@\{]/g,"\\$&")+'"'},$String_frozen$ques$77.$$arity=0),Opal.def(self,"$intern",$String_frozen$ques$77=function(){return this.toString()},$String_frozen$ques$77.$$arity=0),Opal.def(self,"$lines",$String_lines$37=function(separator){var $iter=$String_lines$37.$$p,block=$iter||nil,e=nil;return null==$gvars["/"]&&($gvars["/"]=nil),$iter&&($String_lines$37.$$p=null),$iter&&($String_lines$37.$$p=null),null==separator&&(separator=$gvars["/"]),e=$send(this,"each_line",[separator],block.$to_proc()),$truthy(block)?this:e.$to_a()},$String_lines$37.$$arity=-1),Opal.def(self,"$ljust",$String_frozen$ques$77=function(width,padstr){if(null==padstr&&(padstr=" "),width=$coerce_to(width,$$($nesting,"Integer"),"to_int"),padstr=$coerce_to(padstr,$$($nesting,"String"),"to_str").$to_s(),$truthy(padstr["$empty?"]())&&this.$raise($$($nesting,"ArgumentError"),"zero width padding"),$truthy(width<=this.length))return this;var index=-1,result="";for(width-=this.length;++indexoffset);)m=_m,r.lastIndex=m.index+1;i=null===m?($gvars["~"]=nil,-1):($$($nesting,"MatchData").$new(r,m),m.index)}else search=$coerce_to(search,$$($nesting,"String"),"to_str"),i=this.lastIndexOf(search,offset);return-1===i?nil:i},$String_frozen$ques$77.$$arity=-2),Opal.def(self,"$rjust",$String_frozen$ques$77=function(result,padstr){if(null==padstr&&(padstr=" "),result=$coerce_to(result,$$($nesting,"Integer"),"to_int"),padstr=$coerce_to(padstr,$$($nesting,"String"),"to_str").$to_s(),$truthy(padstr["$empty?"]())&&this.$raise($$($nesting,"ArgumentError"),"zero width padding"),$truthy(result<=this.length))return this;var remaining=Math.floor(result-this.length),result=Math.floor(remaining/padstr.length),result=Array(result+1).join(padstr),remaining=remaining-result.length;return this.$$cast(result+padstr.slice(0,remaining)+this)},$String_frozen$ques$77.$$arity=-2),Opal.def(self,"$rpartition",$String_frozen$ques$77=function(sep){var i,m,r,_m;if(sep.$$is_regexp){for(m=null,r=Opal.global_multiline_regexp(sep);null!==(_m=r.exec(this));)m=_m,r.lastIndex=m.index+1;i=null===m?-1:($$($nesting,"MatchData").$new(r,m),sep=m[0],m.index)}else sep=$coerce_to(sep,$$($nesting,"String"),"to_str"),i=this.lastIndexOf(sep);return-1===i?["","",this]:[this.slice(0,i),this.slice(i,i+sep.length),this.slice(i+sep.length)]},$String_frozen$ques$77.$$arity=1),Opal.def(self,"$rstrip",$String_frozen$ques$77=function(){return this.replace(/[\s\u0000]*$/,"")},$String_frozen$ques$77.$$arity=0),Opal.def(self,"$scan",$String_scan$52=function(pattern){var $iter=$String_scan$52.$$p,block=$iter||nil;$iter&&($String_scan$52.$$p=null),$iter&&($String_scan$52.$$p=null);var match,result=[],match_data=nil;for(pattern=pattern.$$is_regexp?Opal.global_multiline_regexp(pattern):(pattern=$coerce_to(pattern,$$($nesting,"String"),"to_str"),new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));null!=(match=pattern.exec(this));)match_data=$$($nesting,"MatchData").$new(pattern,match),block===nil?1==match.length?result.push(match[0]):result.push(match_data.$captures()):1==match.length?block(match[0]):block.call(this,match_data.$captures()),pattern.lastIndex===match.index&&(pattern.lastIndex+=1);return $gvars["~"]=match_data,block!==nil?this:result},$String_scan$52.$$arity=1),$alias(self,"slice","[]"),Opal.def(self,"$split",$String_frozen$ques$77=function(pattern,limit){var self=this,$ret_or_3=nil;if(null==$gvars[";"]&&($gvars[";"]=nil),0===self.length)return[];if(void 0===limit)limit=0;else if(1===(limit=$$($nesting,"Opal")["$coerce_to!"](limit,$$($nesting,"Integer"),"to_int")))return[self];void 0!==pattern&&pattern!==nil||(pattern=$truthy($ret_or_3=$gvars[";"])?$ret_or_3:" ");var match,i,ii,result=[],string=self.toString(),index=0;if(pattern.$$is_regexp?pattern=Opal.global_multiline_regexp(pattern):" "===(pattern=$coerce_to(pattern,$$($nesting,"String"),"to_str").$to_s())?(pattern=/\s+/gm,string=string.replace(/^\s+/,"")):pattern=new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"),1===(result=string.split(pattern)).length&&result[0]===string)return[self.$$cast(result[0])];for(;-1!==(i=result.indexOf(void 0));)result.splice(i,1);function castResult(){for(i=0;i=result.length)return castResult(),result;for(i=0;null!==match&&(i++,index=pattern.lastIndex,i+1!==limit);)match=pattern.exec(string);return result.splice(limit-1,result.length-1,string.slice(index)),castResult(),result},$String_frozen$ques$77.$$arity=-1),Opal.def(self,"$squeeze",$String_frozen$ques$77=function($a){var char_class=Opal.slice.call(arguments,0,arguments.length);if(0===char_class.length)return this.$$cast(this.replace(/(.)\1+/g,"$1"));char_class=char_class_from_char_sets(char_class);return null===char_class?this:this.$$cast(this.replace(new RegExp("("+char_class+")\\1+","g"),"$1"))},$String_frozen$ques$77.$$arity=-1),Opal.def(self,"$start_with?",$String_frozen$ques$77=function($a){for(var prefixes=Opal.slice.call(arguments,0,arguments.length),i=0,length=prefixes.length;i"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_le(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$falsy=Opal.falsy,$truthy=Opal.truthy,$coerce_to=Opal.coerce_to,$module=Opal.module,$send=Opal.send,$alias=Opal.alias,$hash2=Opal.hash2,$lambda=Opal.lambda;return Opal.add_stubs(["$each","$public_send","$destructure","$to_enum","$enumerator_size","$new","$yield","$raise","$slice_when","$!","$enum_for","$flatten","$map","$warn","$proc","$==","$nil?","$respond_to?","$coerce_to!","$>","$*","$try_convert","$<","$+","$-","$ceil","$/","$size","$select","$to_proc","$__send__","$length","$<=","$[]","$push","$<<","$[]=","$===","$inspect","$<=>","$first","$reverse","$sort","$take","$sort_by","$compare","$call","$dup","$to_a","$sort!","$map!","$key?","$values","$transform_values","$group_by","$to_h","$coerce_to?","$class","$zip"]),function(self,$Enumerable_tally$108){var $Enumerable_all$ques$1,$Enumerable_any$ques$5,$Enumerable_chunk$9,$Enumerable_chunk_while$12,$Enumerable_collect$14,$Enumerable_collect_concat$16,$Enumerable_count$19,$Enumerable_cycle$23,$Enumerable_detect$25,$Enumerable_drop_while$28,$Enumerable_each_cons$29,$Enumerable_each_entry$31,$Enumerable_each_slice$33,$Enumerable_each_with_index$35,$Enumerable_each_with_object$37,$Enumerable_filter_map$40,$Enumerable_find_all$42,$Enumerable_find_index$44,$Enumerable_grep$50,$Enumerable_grep_v$52,$Enumerable_group_by$54,$Enumerable_inject$58,$Enumerable_max$62,$Enumerable_max_by$63,$Enumerable_min$65,$Enumerable_min_by$67,$Enumerable_minmax$69,$Enumerable_minmax_by$71,$Enumerable_none$ques$73,$Enumerable_one$ques$77,$Enumerable_partition$81,$Enumerable_reject$83,$Enumerable_reverse_each$85,$Enumerable_slice_before$87,$Enumerable_slice_after$89,$Enumerable_slice_when$92,$Enumerable_sort$94,$Enumerable_sort_by$96,$Enumerable_sum$101,$Enumerable_take_while$104,$Enumerable_uniq$106,$Enumerable_to_h$109,$Enumerable_zip$110,self=$module(self,"Enumerable"),$nesting=[self].concat($Enumerable_tally$108);function comparableForPattern(value){return 0===value.length&&(value=[nil]),1n&&buffer.shift(),buffer.length==n&&Opal.yield1(block,buffer.slice(0,n))},this.$each(),nil},$Enumerable_each_cons$29.$$arity=1),Opal.def(self,"$each_entry",$Enumerable_each_entry$31=function($a){var $$32,data=$Enumerable_each_entry$31.$$p,block=data||nil;return data&&($Enumerable_each_entry$31.$$p=null),data&&($Enumerable_each_entry$31.$$p=null),data=Opal.slice.call(arguments,0,arguments.length),block===nil?$send(this,"to_enum",["each_entry"].concat(Opal.to_a(data)),(($$32=function(){return(null==$$32.$$s?this:$$32.$$s).$enumerator_size()}).$$s=this,$$32.$$arity=0,$$32)):(this.$each.$$p=function(){var item=$$($nesting,"Opal").$destructure(arguments);Opal.yield1(block,item)},this.$each.apply(this,data),this)},$Enumerable_each_entry$31.$$arity=-1),Opal.def(self,"$each_slice",$Enumerable_each_slice$33=function(n){var $$34,$iter=$Enumerable_each_slice$33.$$p,block=$iter||nil;if($iter&&($Enumerable_each_slice$33.$$p=null),$iter&&($Enumerable_each_slice$33.$$p=null),n=$coerce_to(n,$$($nesting,"Integer"),"to_int"),$truthy(n<=0)&&this.$raise($$($nesting,"ArgumentError"),"invalid slice size"),block===nil)return $send(this,"enum_for",["each_slice",n],(($$34=function(){var lhs,rhs=null==$$34.$$s?this:$$34.$$s;return $truthy(rhs["$respond_to?"]("size"))?(lhs=rhs.$size(),rhs=n,("number"==typeof lhs&&"number"==typeof rhs?lhs/rhs:lhs["$/"](rhs)).$ceil()):nil}).$$s=this,$$34.$$arity=0,$$34));var slice=[];return this.$each.$$p=function(){var param=$$($nesting,"Opal").$destructure(arguments);slice.push(param),slice.length===n&&(Opal.yield1(block,slice),slice=[])},this.$each(),0"](result))===nil&&self.$raise($$($nesting,"ArgumentError"),"comparison failed"),0"](by)&&(result=param,by=value)},this.$each(),void 0===result?nil:result):$send(this,"sort_by",[],block.$to_proc()).$reverse().$take(n):$send(this,"enum_for",["max_by",n],(($$64=function(){return(null==$$64.$$s?this:$$64.$$s).$enumerator_size()}).$$s=this,$$64.$$arity=0,$$64))},$Enumerable_max_by$63.$$arity=-1),$alias(self,"member?","include?"),Opal.def(self,"$min",$Enumerable_min$65=function(n){var $$66,result,$iter=$Enumerable_min$65.$$p,block=$iter||nil,self=this;return $iter&&($Enumerable_min$65.$$p=null),$iter&&($Enumerable_min$65.$$p=null),null==n&&(n=nil),$truthy(n["$nil?"]())?(self.$each.$$p=block!==nil?function(){var value,param=$$($nesting,"Opal").$destructure(arguments);void 0!==result?((value=block(param,result))===nil&&self.$raise($$($nesting,"ArgumentError"),"comparison failed"),value<0&&(result=param)):result=param}:function(){var param=$$($nesting,"Opal").$destructure(arguments);(void 0===result||$$($nesting,"Opal").$compare(param,result)<0)&&(result=param)},self.$each(),void 0===result?nil:result):(block!==nil?$send(self,"sort",[],(($$66=function(a,b){null==$$66.$$s||$$66.$$s;return null==a&&(a=nil),null==b&&(b=nil),Opal.yieldX(block,[a,b])}).$$s=self,$$66.$$arity=2,$$66)):self.$sort()).$take(n)},$Enumerable_min$65.$$arity=-1),Opal.def(self,"$min_by",$Enumerable_min_by$67=function(n){var $$68,result,by,$iter=$Enumerable_min_by$67.$$p,block=$iter||nil;return $iter&&($Enumerable_min_by$67.$$p=null),$iter&&($Enumerable_min_by$67.$$p=null),null==n&&(n=nil),$truthy(block)?$truthy(n["$nil?"]())?(this.$each.$$p=function(){var param=$$($nesting,"Opal").$destructure(arguments),value=Opal.yield1(block,param);if(void 0===result)return result=param,void(by=value);value["$<=>"](by)<0&&(result=param,by=value)},this.$each(),void 0===result?nil:result):$send(this,"sort_by",[],block.$to_proc()).$take(n):$send(this,"enum_for",["min_by",n],(($$68=function(){return(null==$$68.$$s?this:$$68.$$s).$enumerator_size()}).$$s=this,$$68.$$arity=0,$$68))},$Enumerable_min_by$67.$$arity=-1),Opal.def(self,"$minmax",$Enumerable_minmax$69=function(){var $$70,$ret_or_3,$iter=$Enumerable_minmax$69.$$p,block=$iter||nil,self=this;$iter&&($Enumerable_minmax$69.$$p=null),$iter&&($Enumerable_minmax$69.$$p=null),block=$truthy($ret_or_3=block)?$ret_or_3:$send(self,"proc",[],(($$70=function(a,b){null==$$70.$$s||$$70.$$s;return null==a&&(a=nil),null==b&&(b=nil),a["$<=>"](b)}).$$s=self,$$70.$$arity=2,$$70));var min=nil,max=nil,first_time=!0;return self.$each.$$p=function(){var max_cmp,element=$$($nesting,"Opal").$destructure(arguments);first_time?(min=max=element,first_time=!1):((max_cmp=block.$call(min,element))===nil?self.$raise($$($nesting,"ArgumentError"),"comparison failed"):0"](min_by)<0)&&(min_result=param,min_by=value),(void 0===max_by||0"](max_by))&&(max_result=param,max_by=value)},this.$each(),[min_result,max_result]},$Enumerable_minmax_by$71.$$arity=0),Opal.def(self,"$none?",$Enumerable_none$ques$73=function(pattern){try{var $$74,$$75,$$76,$iter=$Enumerable_none$ques$73.$$p,block=$iter||nil;return $iter&&($Enumerable_none$ques$73.$$p=null),$iter&&($Enumerable_none$ques$73.$$p=null),$truthy(void 0!==pattern)?$send(this,"each",[],(($$74=function($a){null==$$74.$$s||$$74.$$s;var comparable=comparableForPattern(Opal.slice.call(arguments,0,arguments.length));if(!$truthy($send(pattern,"public_send",["==="].concat(Opal.to_a(comparable)))))return nil;Opal.ret(!1)}).$$s=this,$$74.$$arity=-1,$$74)):$send(this,"each",[],block!==nil?(($$75=function($a){null==$$75.$$s||$$75.$$s;var $post_args=Opal.slice.call(arguments,0,arguments.length);if(!$truthy(Opal.yieldX(block,Opal.to_a($post_args))))return nil;Opal.ret(!1)}).$$s=this,$$75.$$arity=-1,$$75):(($$76=function($a){null==$$76.$$s||$$76.$$s;var value=Opal.slice.call(arguments,0,arguments.length),item=$$($nesting,"Opal").$destructure(value);if(!$truthy(item))return nil;Opal.ret(!1)}).$$s=this,$$76.$$arity=-1,$$76)),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_none$ques$73.$$arity=-1),Opal.def(self,"$one?",$Enumerable_one$ques$77=function(pattern){try{var $$78,$$79,$$80,$iter=$Enumerable_one$ques$77.$$p,block=$iter||nil,count=nil;return $iter&&($Enumerable_one$ques$77.$$p=null),$iter&&($Enumerable_one$ques$77.$$p=null),$truthy(void(count=0)!==pattern)?$send(this,"each",[],(($$78=function($a){null==$$78.$$s||$$78.$$s;var comparable=comparableForPattern(Opal.slice.call(arguments,0,arguments.length));return $truthy($send(pattern,"public_send",["==="].concat(Opal.to_a(comparable))))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil}).$$s=this,$$78.$$arity=-1,$$78)):$send(this,"each",[],block!==nil?(($$79=function($a){null==$$79.$$s||$$79.$$s;var value=Opal.slice.call(arguments,0,arguments.length);return $truthy(Opal.yieldX(block,Opal.to_a(value)))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil}).$$s=this,$$79.$$arity=-1,$$79):(($$80=function($a){null==$$80.$$s||$$80.$$s;var value=Opal.slice.call(arguments,0,arguments.length);return $truthy($$($nesting,"Opal").$destructure(value))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil}).$$s=this,$$80.$$arity=-1,$$80)),count["$=="](1)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_one$ques$77.$$arity=-1),Opal.def(self,"$partition",$Enumerable_partition$81=function(){var $$82,$iter=$Enumerable_partition$81.$$p,block=$iter||nil;if($iter&&($Enumerable_partition$81.$$p=null),$iter&&($Enumerable_partition$81.$$p=null),block===nil)return $send(this,"enum_for",["partition"],(($$82=function(){return(null==$$82.$$s?this:$$82.$$s).$enumerator_size()}).$$s=this,$$82.$$arity=0,$$82));var truthy=[],falsy=[];return this.$each.$$p=function(){var param=$$($nesting,"Opal").$destructure(arguments),value=Opal.yield1(block,param);($truthy(value)?truthy:falsy).push(param)},this.$each(),[truthy,falsy]},$Enumerable_partition$81.$$arity=0),$alias(self,"reduce","inject"),Opal.def(self,"$reject",$Enumerable_reject$83=function(){var $$84,$iter=$Enumerable_reject$83.$$p,block=$iter||nil;if($iter&&($Enumerable_reject$83.$$p=null),$iter&&($Enumerable_reject$83.$$p=null),block===nil)return $send(this,"enum_for",["reject"],(($$84=function(){return(null==$$84.$$s?this:$$84.$$s).$enumerator_size()}).$$s=this,$$84.$$arity=0,$$84));var result=[];return this.$each.$$p=function(){var param=$$($nesting,"Opal").$destructure(arguments),value=Opal.yield1(block,param);$falsy(value)&&result.push(param)},this.$each(),result},$Enumerable_reject$83.$$arity=0),Opal.def(self,"$reverse_each",$Enumerable_reverse_each$85=function(){var $$86,$iter=$Enumerable_reverse_each$85.$$p,block=$iter||nil;if($iter&&($Enumerable_reverse_each$85.$$p=null),$iter&&($Enumerable_reverse_each$85.$$p=null),block===nil)return $send(this,"enum_for",["reverse_each"],(($$86=function(){return(null==$$86.$$s?this:$$86.$$s).$enumerator_size()}).$$s=this,$$86.$$arity=0,$$86));var result=[];this.$each.$$p=function(){result.push(arguments)},this.$each();for(var i=result.length-1;0<=i;i--)Opal.yieldX(block,result[i]);return result},$Enumerable_reverse_each$85.$$arity=0),$alias(self,"select","find_all"),Opal.def(self,"$slice_before",$Enumerable_slice_before$87=function(pattern){var $$88,$iter=$Enumerable_slice_before$87.$$p,block=$iter||nil;return $iter&&($Enumerable_slice_before$87.$$p=null),$iter&&($Enumerable_slice_before$87.$$p=null),$truthy(void 0===pattern&&block===nil)&&this.$raise($$($nesting,"ArgumentError"),"both pattern and block are given"),$truthy(void 0!==pattern&&block!==nil||1"](b)}).$$s=this,$$95.$$arity=2,$$95))),$send(ary,"sort",[],block.$to_proc())},$Enumerable_sort$94.$$arity=0),Opal.def(self,"$sort_by",$Enumerable_sort_by$96=function(){var $$97,$$98,$$99,$$100,dup,$iter=$Enumerable_sort_by$96.$$p,block=$iter||nil;return $iter&&($Enumerable_sort_by$96.$$p=null),$iter&&($Enumerable_sort_by$96.$$p=null),block===nil?$send(this,"enum_for",["sort_by"],(($$97=function(){return(null==$$97.$$s?this:$$97.$$s).$enumerator_size()}).$$s=this,$$97.$$arity=0,$$97)):(dup=$send(this,"map",[],(($$98=function(){null==$$98.$$s||$$98.$$s;var arg=$$($nesting,"Opal").$destructure(arguments);return[Opal.yield1(block,arg),arg]}).$$s=this,$$98.$$arity=0,$$98)),$send(dup,"sort!",[],(($$99=function(a,b){null==$$99.$$s||$$99.$$s;return null==a&&(a=nil),null==b&&(b=nil),a[0]["$<=>"](b[0])}).$$s=this,$$99.$$arity=2,$$99)),$send(dup,"map!",[],(($$100=function(i){null==$$100.$$s||$$100.$$s;return null==i&&(i=nil),i[1]}).$$s=this,$$100.$$arity=1,$$100)))},$Enumerable_sort_by$96.$$arity=0),Opal.def(self,"$sum",$Enumerable_sum$101=function(initial){var $$102,$iter=$Enumerable_sum$101.$$p,$yield=$iter||nil,result=nil;return $iter&&($Enumerable_sum$101.$$p=null),null==initial&&(initial=0),result=initial,$send(this,"each",[],(($$102=function($a){null==$$102.$$s||$$102.$$s;var args=Opal.slice.call(arguments,0,arguments.length),item=$yield!==nil?Opal.yieldX($yield,Opal.to_a(args)):$$($nesting,"Opal").$destructure(args);return result=$rb_plus(result,item)}).$$s=this,$$102.$$arity=-1,$$102)),result},$Enumerable_sum$101.$$arity=-1),Opal.def(self,"$take",$Enumerable_tally$108=function(num){return this.$first(num)},$Enumerable_tally$108.$$arity=1),Opal.def(self,"$take_while",$Enumerable_take_while$104=function(){try{var $$105,$iter=$Enumerable_take_while$104.$$p,block=$iter||nil,result=nil;return($iter&&($Enumerable_take_while$104.$$p=null),$iter&&($Enumerable_take_while$104.$$p=null),$truthy(block))?(result=[],$send(this,"each",[],(($$105=function($a){null==$$105.$$s||$$105.$$s;var args=Opal.slice.call(arguments,0,arguments.length),value=$$($nesting,"Opal").$destructure(args);return $truthy(Opal.yield1(block,value))||Opal.ret(result),result.push(value)}).$$s=this,$$105.$$arity=-1,$$105))):this.$enum_for("take_while")}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Enumerable_take_while$104.$$arity=0),Opal.def(self,"$uniq",$Enumerable_uniq$106=function(){var $$107,$iter=$Enumerable_uniq$106.$$p,block=$iter||nil,hash=nil;return $iter&&($Enumerable_uniq$106.$$p=null),$iter&&($Enumerable_uniq$106.$$p=null),hash=$hash2([],{}),$send(this,"each",[],(($$107=function($a){null==$$107.$$s||$$107.$$s;var $writer,args=Opal.slice.call(arguments,0,arguments.length),value=$$($nesting,"Opal").$destructure(args),produced=block!==nil?Opal.yield1(block,value):value;return $truthy(hash["$key?"](produced))?nil:($writer=[produced,value],$send(hash,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)])}).$$s=this,$$107.$$arity=-1,$$107)),hash.$values()},$Enumerable_uniq$106.$$arity=0),Opal.def(self,"$tally",$Enumerable_tally$108=function(){return $send($send(this,"group_by",[],"itself".$to_proc()),"transform_values",[],"count".$to_proc())},$Enumerable_tally$108.$$arity=0),$alias(self,"to_a","entries"),Opal.def(self,"$to_h",$Enumerable_to_h$109=function($a){var args=$Enumerable_to_h$109.$$p,block=args||nil,self=this;if(args&&($Enumerable_to_h$109.$$p=null),args&&($Enumerable_to_h$109.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),block!==nil)return $send($send(self,"map",[],block.$to_proc()),"to_h",Opal.to_a(args));var hash=$hash2([],{});return self.$each.$$p=function(){var key=$$($nesting,"Opal").$destructure(arguments),val=$$($nesting,"Opal")["$coerce_to?"](key,$$($nesting,"Array"),"to_ary");val.$$is_array||self.$raise($$($nesting,"TypeError"),"wrong element type "+val.$class()+" (expected array)"),2!==val.length&&self.$raise($$($nesting,"ArgumentError"),"wrong array length (expected 2, was "+val.$length()+")"),key=val[0],val=val[1],Opal.hash_put(hash,key,val)},self.$each.apply(self,args),hash},$Enumerable_to_h$109.$$arity=-1),Opal.def(self,"$zip",$Enumerable_zip$110=function($a){var others=$Enumerable_zip$110.$$p;return others&&($Enumerable_zip$110.$$p=null),others&&($Enumerable_zip$110.$$p=null),others=Opal.slice.call(arguments,0,arguments.length),$send(this.$to_a(),"zip",Opal.to_a(others))},$Enumerable_zip$110.$$arity=-1),nil&&"zip"}($nesting[0],$nesting)},Opal.modules["corelib/enumerator"]=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs")},$Yielder_yield$13.$$arity=0),function(self,$parent_nesting){var $Generator_initialize$10,$Generator_each$11,$nesting=[self=$klass(self,null,"Generator")].concat($parent_nesting);self.$$prototype.block=nil,self.$include($$($nesting,"Enumerable")),Opal.def(self,"$initialize",$Generator_initialize$10=function(){var $iter=$Generator_initialize$10.$$p,block=$iter||nil;return $iter&&($Generator_initialize$10.$$p=null),$iter&&($Generator_initialize$10.$$p=null),$truthy(block)||this.$raise($$($nesting,"LocalJumpError"),"no block given"),this.block=block},$Generator_initialize$10.$$arity=0),Opal.def(self,"$each",$Generator_each$11=function($a){var args,yielder,$iter=$Generator_each$11.$$p,block=$iter||nil;$iter&&($Generator_each$11.$$p=null),$iter&&($Generator_each$11.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),yielder=$send($$($nesting,"Yielder"),"new",[],block.$to_proc());try{args.unshift(yielder),Opal.yieldX(this.block,args)}catch(e){if(e===$breaker)return $breaker.$v;throw e}return this},$Generator_each$11.$$arity=-1)}($nesting[0],$nesting),$Yielder_$lt$lt$14=$nesting[0],$Yielder_yield$13=$nesting,[$Yielder_$lt$lt$14=$klass($Yielder_$lt$lt$14,null,"Yielder")].concat($Yielder_yield$13),$Yielder_$lt$lt$14.$$prototype.block=nil,Opal.def($Yielder_$lt$lt$14,"$initialize",$Yielder_initialize$12=function(){var $iter=$Yielder_initialize$12.$$p,block=$iter||nil;return $iter&&($Yielder_initialize$12.$$p=null),$iter&&($Yielder_initialize$12.$$p=null),this.block=block},$Yielder_initialize$12.$$arity=0),Opal.def($Yielder_$lt$lt$14,"$yield",$Yielder_yield$13=function($a){var value=Opal.slice.call(arguments,0,arguments.length),value=Opal.yieldX(this.block,value);if(value===$breaker)throw $breaker;return value},$Yielder_yield$13.$$arity=-1),Opal.def($Yielder_$lt$lt$14,"$<<",$Yielder_$lt$lt$14=function($a){var $post_args=Opal.slice.call(arguments,0,arguments.length);return $send(this,"yield",Opal.to_a($post_args)),this},$Yielder_$lt$lt$14.$$arity=-1),function($base,$Lazy_inspect$41,$Lazy_take$37){var $Lazy_initialize$15,$Lazy_collect$19,$Lazy_collect_concat$21,$Lazy_drop_while$27,$Lazy_enum_for$29,$Lazy_find_all$30,$Lazy_grep$32,$Lazy_reject$35,$Lazy_take_while$39,$nesting=[$Lazy_inspect$41=$klass($base,$Lazy_inspect$41,"Lazy")].concat($Lazy_take$37);$Lazy_inspect$41.$$prototype.enumerator=nil,function($base,$super,$parent_nesting){[$klass($base,$super,"StopLazyError")].concat($parent_nesting)}($nesting[0],$$($nesting,"Exception"),$nesting),Opal.def($Lazy_inspect$41,"$initialize",$Lazy_initialize$15=function(object,size){var $$16,$iter=$Lazy_initialize$15.$$p,block=$iter||nil;return $iter&&($Lazy_initialize$15.$$p=null),$iter&&($Lazy_initialize$15.$$p=null),null==size&&(size=nil),block!==nil||this.$raise($$($nesting,"ArgumentError"),"tried to call lazy new without a block"),this.enumerator=object,$send2(this,$find_super(this,"initialize",$Lazy_initialize$15,!1,!0),"initialize",[size],(($$16=function(yielder,$a){var each_args,$$17,self=null==$$16.$$s?this:$$16.$$s;null==yielder&&(yielder=nil),each_args=Opal.slice.call(arguments,1,arguments.length);try{return $send(object,"each",Opal.to_a(each_args),(($$17=function($b){null==$$17.$$s||$$17.$$s;var args=Opal.slice.call(arguments,0,arguments.length);args.unshift(yielder),Opal.yieldX(block,args)}).$$s=self,$$17.$$arity=-1,$$17))}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}).$$s=this,$$16.$$arity=-2,$$16))},$Lazy_initialize$15.$$arity=-2),$alias($Lazy_inspect$41,"force","to_a"),Opal.def($Lazy_inspect$41,"$lazy",$Lazy_take$37=function(){return this},$Lazy_take$37.$$arity=0),Opal.def($Lazy_inspect$41,"$collect",$Lazy_collect$19=function(){var $$20,$iter=$Lazy_collect$19.$$p,block=$iter||nil;return $iter&&($Lazy_collect$19.$$p=null),$iter&&($Lazy_collect$19.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"tried to call lazy map without a block"),$send($$($nesting,"Lazy"),"new",[this,this.$enumerator_size()],(($$20=function(enum$,$a){null==$$20.$$s||$$20.$$s;null==enum$&&(enum$=nil),value=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,value);enum$.$yield(value)}).$$s=this,$$20.$$arity=-2,$$20))},$Lazy_collect$19.$$arity=0),Opal.def($Lazy_inspect$41,"$collect_concat",$Lazy_collect_concat$21=function(){var $$22,$iter=$Lazy_collect_concat$21.$$p,block=$iter||nil;return $iter&&($Lazy_collect_concat$21.$$p=null),$iter&&($Lazy_collect_concat$21.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"tried to call lazy map without a block"),$send($$($nesting,"Lazy"),"new",[this,nil],(($$22=function(enum$,$a){var $$23,$$24,self=null==$$22.$$s?this:$$22.$$s;null==enum$&&(enum$=nil),value=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,value);value["$respond_to?"]("force")&&value["$respond_to?"]("each")?$send(value,"each",[],(($$23=function(v){null==$$23.$$s||$$23.$$s;return null==v&&(v=nil),enum$.$yield(v)}).$$s=self,$$23.$$arity=1,$$23)):$$($nesting,"Opal").$try_convert(value,$$($nesting,"Array"),"to_ary")===nil?enum$.$yield(value):$send(value,"each",[],(($$24=function(v){null==$$24.$$s||$$24.$$s;return null==v&&(v=nil),enum$.$yield(v)}).$$s=self,$$24.$$arity=1,$$24))}).$$s=this,$$22.$$arity=-2,$$22))},$Lazy_collect_concat$21.$$arity=0),Opal.def($Lazy_inspect$41,"$drop",$Lazy_take$37=function(n){var $$26,current_size,set_size,dropped=nil;return n=$coerce_to(n,$$($nesting,"Integer"),"to_int"),$truthy($rb_lt(n,0))&&this.$raise($$($nesting,"ArgumentError"),"attempt to drop negative size"),current_size=this.$enumerator_size(),set_size=$truthy($$($nesting,"Integer")["$==="](current_size))&&$truthy($rb_lt(n,current_size))?n:current_size,dropped=0,$send($$($nesting,"Lazy"),"new",[this,set_size],(($$26=function(enum$,$a){var args;null==$$26.$$s||$$26.$$s;return null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length),$truthy($rb_lt(dropped,n))?dropped=$rb_plus(dropped,1):$send(enum$,"yield",Opal.to_a(args))}).$$s=this,$$26.$$arity=-2,$$26))},$Lazy_take$37.$$arity=1),Opal.def($Lazy_inspect$41,"$drop_while",$Lazy_drop_while$27=function(){var $$28,$iter=$Lazy_drop_while$27.$$p,block=$iter||nil,succeeding=nil;return $iter&&($Lazy_drop_while$27.$$p=null),$iter&&($Lazy_drop_while$27.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"tried to call lazy drop_while without a block"),succeeding=!0,$send($$($nesting,"Lazy"),"new",[this,nil],(($$28=function(enum$,$a){var args;null==$$28.$$s||$$28.$$s;if(null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length),!$truthy(succeeding))return $send(enum$,"yield",Opal.to_a(args));var value=Opal.yieldX(block,args);$falsy(value)&&(succeeding=!1,$send(enum$,"yield",Opal.to_a(args)))}).$$s=this,$$28.$$arity=-2,$$28))},$Lazy_drop_while$27.$$arity=0),Opal.def($Lazy_inspect$41,"$enum_for",$Lazy_enum_for$29=function($a,$b){var method,args=$Lazy_enum_for$29.$$p,block=args||nil,self=this;return args&&($Lazy_enum_for$29.$$p=null),args&&($Lazy_enum_for$29.$$p=null),0<(args=Opal.slice.call(arguments,0,arguments.length)).length&&(method=args[0],args.splice(0,1)),null==method&&(method="each"),args=args,$send(self.$class(),"for",[self,method].concat(Opal.to_a(args)),block.$to_proc())},$Lazy_enum_for$29.$$arity=-1),$alias($Lazy_inspect$41,"filter","find_all"),Opal.def($Lazy_inspect$41,"$find_all",$Lazy_find_all$30=function(){var $$31,$iter=$Lazy_find_all$30.$$p,block=$iter||nil;return $iter&&($Lazy_find_all$30.$$p=null),$iter&&($Lazy_find_all$30.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"tried to call lazy select without a block"),$send($$($nesting,"Lazy"),"new",[this,nil],(($$31=function(enum$,$a){var args;null==$$31.$$s||$$31.$$s;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,args);$truthy(value)&&$send(enum$,"yield",Opal.to_a(args))}).$$s=this,$$31.$$arity=-2,$$31))},$Lazy_find_all$30.$$arity=0),$alias($Lazy_inspect$41,"flat_map","collect_concat"),Opal.def($Lazy_inspect$41,"$grep",$Lazy_grep$32=function(pattern){var $$33,$$34,$iter=$Lazy_grep$32.$$p,block=$iter||nil;return $iter&&($Lazy_grep$32.$$p=null),$iter&&($Lazy_grep$32.$$p=null),$truthy(block)?$send($$($nesting,"Lazy"),"new",[this,nil],(($$33=function(enum$,$a){null==$$33.$$s||$$33.$$s;null==enum$&&(enum$=nil),value=Opal.slice.call(arguments,1,arguments.length);var param=$$($nesting,"Opal").$destructure(value),value=pattern["$==="](param);$truthy(value)&&(Opal.yield1(block,param),enum$.$yield(Opal.yield1(block,param)))}).$$s=this,$$33.$$arity=-2,$$33)):$send($$($nesting,"Lazy"),"new",[this,nil],(($$34=function(enum$,$a){null==$$34.$$s||$$34.$$s;null==enum$&&(enum$=nil),value=Opal.slice.call(arguments,1,arguments.length);var param=$$($nesting,"Opal").$destructure(value),value=pattern["$==="](param);$truthy(value)&&enum$.$yield(param)}).$$s=this,$$34.$$arity=-2,$$34))},$Lazy_grep$32.$$arity=1),$alias($Lazy_inspect$41,"map","collect"),$alias($Lazy_inspect$41,"select","find_all"),Opal.def($Lazy_inspect$41,"$reject",$Lazy_reject$35=function(){var $$36,$iter=$Lazy_reject$35.$$p,block=$iter||nil;return $iter&&($Lazy_reject$35.$$p=null),$iter&&($Lazy_reject$35.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"tried to call lazy reject without a block"),$send($$($nesting,"Lazy"),"new",[this,nil],(($$36=function(enum$,$a){var args;null==$$36.$$s||$$36.$$s;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,args);$falsy(value)&&$send(enum$,"yield",Opal.to_a(args))}).$$s=this,$$36.$$arity=-2,$$36))},$Lazy_reject$35.$$arity=0),Opal.def($Lazy_inspect$41,"$take",$Lazy_take$37=function(n){var $$38,current_size,set_size,taken=nil;return n=$coerce_to(n,$$($nesting,"Integer"),"to_int"),$truthy($rb_lt(n,0))&&this.$raise($$($nesting,"ArgumentError"),"attempt to take negative size"),current_size=this.$enumerator_size(),set_size=$truthy($$($nesting,"Integer")["$==="](current_size))&&$truthy($rb_lt(n,current_size))?n:current_size,taken=0,$send($$($nesting,"Lazy"),"new",[this,set_size],(($$38=function(enum$,$a){var args,self=null==$$38.$$s?this:$$38.$$s;return null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length),$truthy($rb_lt(taken,n))?($send(enum$,"yield",Opal.to_a(args)),taken=$rb_plus(taken,1)):self.$raise($$($nesting,"StopLazyError"))}).$$s=this,$$38.$$arity=-2,$$38))},$Lazy_take$37.$$arity=1),Opal.def($Lazy_inspect$41,"$take_while",$Lazy_take_while$39=function(){var $$40,$iter=$Lazy_take_while$39.$$p,block=$iter||nil;return $iter&&($Lazy_take_while$39.$$p=null),$iter&&($Lazy_take_while$39.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"tried to call lazy take_while without a block"),$send($$($nesting,"Lazy"),"new",[this,nil],(($$40=function(enum$,$a){var args,self=null==$$40.$$s?this:$$40.$$s;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1,arguments.length);var value=Opal.yieldX(block,args);$truthy(value)?$send(enum$,"yield",Opal.to_a(args)):self.$raise($$($nesting,"StopLazyError"))}).$$s=this,$$40.$$arity=-2,$$40))},$Lazy_take_while$39.$$arity=0),$alias($Lazy_inspect$41,"to_enum","enum_for"),Opal.def($Lazy_inspect$41,"$inspect",$Lazy_inspect$41=function(){return"#<"+this.$class()+": "+this.enumerator.$inspect()+">"},$Lazy_inspect$41.$$arity=0)}($nesting[0],self,$nesting),function($base,$super,$parent_nesting){[$klass($base,$super,"ArithmeticSequence")].concat($parent_nesting);return nil}($nesting[0],self,$nesting)}($nesting[0],$nesting)},Opal.modules["corelib/numeric"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_times(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$compare","$enum_for","$to_proc","$negative?","$>=","$<=","$+","$to_i","$truncate","$>"]),self.$require("corelib/comparable"),function($Numeric_infinite$ques$38,$Numeric_finite$ques$37){var $Numeric_step$28,$Numeric_infinite$ques$38=$klass($Numeric_infinite$ques$38,null,"Numeric"),$nesting=[$Numeric_infinite$ques$38].concat($Numeric_finite$ques$37);return $Numeric_infinite$ques$38.$include($$($nesting,"Comparable")),Opal.def($Numeric_infinite$ques$38,"$coerce",$Numeric_finite$ques$37=function(other){return $truthy(other["$instance_of?"](this.$class()))?[other,this]:[this.$Float(other),this.$Float(this)]},$Numeric_finite$ques$37.$$arity=1),Opal.def($Numeric_infinite$ques$38,"$__coerced__",$Numeric_finite$ques$37=function(method,other){var $a,b,self=this,a=nil,$case=nil;return $truthy(other["$respond_to?"]("coerce"))?($a=other.$coerce(self),a=null==($a=Opal.to_ary($a))[0]?nil:$a[0],b=null==$a[1]?nil:$a[1],a.$__send__(method,b)):"+"["$==="]($case=method)||"-"["$==="]($case)||"*"["$==="]($case)||"/"["$==="]($case)||"%"["$==="]($case)||"&"["$==="]($case)||"|"["$==="]($case)||"^"["$==="]($case)||"**"["$==="]($case)?self.$raise($$($nesting,"TypeError"),other.$class()+" can't be coerced into Numeric"):">"["$==="]($case)||">="["$==="]($case)||"<"["$==="]($case)||"<="["$==="]($case)||"<=>"["$==="]($case)?self.$raise($$($nesting,"ArgumentError"),"comparison of "+self.$class()+" with "+other.$class()+" failed"):nil},$Numeric_finite$ques$37.$$arity=2),Opal.def($Numeric_infinite$ques$38,"$<=>",$Numeric_finite$ques$37=function(other){return $truthy(this["$equal?"](other))?0:nil},$Numeric_finite$ques$37.$$arity=1),Opal.def($Numeric_infinite$ques$38,"$+@",$Numeric_finite$ques$37=function(){return this},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$-@",$Numeric_finite$ques$37=function(){return $rb_minus(0,this)},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$%",$Numeric_finite$ques$37=function(other){return $rb_minus(this,$rb_times(other,this.$div(other)))},$Numeric_finite$ques$37.$$arity=1),Opal.def($Numeric_infinite$ques$38,"$abs",$Numeric_finite$ques$37=function(){return $rb_lt(this,0)?this["$-@"]():this},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$abs2",$Numeric_finite$ques$37=function(){return $rb_times(this,this)},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$angle",$Numeric_finite$ques$37=function(){return $rb_lt(this,0)?$$$($$($nesting,"Math"),"PI"):0},$Numeric_finite$ques$37.$$arity=0),$alias($Numeric_infinite$ques$38,"arg","angle"),Opal.def($Numeric_infinite$ques$38,"$ceil",$Numeric_finite$ques$37=function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$ceil(ndigits)},$Numeric_finite$ques$37.$$arity=-1),Opal.def($Numeric_infinite$ques$38,"$conj",$Numeric_finite$ques$37=function(){return this},$Numeric_finite$ques$37.$$arity=0),$alias($Numeric_infinite$ques$38,"conjugate","conj"),Opal.def($Numeric_infinite$ques$38,"$denominator",$Numeric_finite$ques$37=function(){return this.$to_r().$denominator()},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$div",$Numeric_finite$ques$37=function(other){return other["$=="](0)&&this.$raise($$($nesting,"ZeroDivisionError"),"divided by o"),$rb_divide(this,other).$floor()},$Numeric_finite$ques$37.$$arity=1),Opal.def($Numeric_infinite$ques$38,"$divmod",$Numeric_finite$ques$37=function(other){return[this.$div(other),this["$%"](other)]},$Numeric_finite$ques$37.$$arity=1),Opal.def($Numeric_infinite$ques$38,"$fdiv",$Numeric_finite$ques$37=function(other){return $rb_divide(this.$to_f(),other)},$Numeric_finite$ques$37.$$arity=1),Opal.def($Numeric_infinite$ques$38,"$floor",$Numeric_finite$ques$37=function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$floor(ndigits)},$Numeric_finite$ques$37.$$arity=-1),Opal.def($Numeric_infinite$ques$38,"$i",$Numeric_finite$ques$37=function(){return this.$Complex(0,this)},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$imag",$Numeric_finite$ques$37=function(){return 0},$Numeric_finite$ques$37.$$arity=0),$alias($Numeric_infinite$ques$38,"imaginary","imag"),Opal.def($Numeric_infinite$ques$38,"$integer?",$Numeric_finite$ques$37=function(){return!1},$Numeric_finite$ques$37.$$arity=0),$alias($Numeric_infinite$ques$38,"magnitude","abs"),$alias($Numeric_infinite$ques$38,"modulo","%"),Opal.def($Numeric_infinite$ques$38,"$nonzero?",$Numeric_finite$ques$37=function(){return $truthy(this["$zero?"]())?nil:this},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$numerator",$Numeric_finite$ques$37=function(){return this.$to_r().$numerator()},$Numeric_finite$ques$37.$$arity=0),$alias($Numeric_infinite$ques$38,"phase","arg"),Opal.def($Numeric_infinite$ques$38,"$polar",$Numeric_finite$ques$37=function(){return[this.$abs(),this.$arg()]},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$quo",$Numeric_finite$ques$37=function(other){return $rb_divide($$($nesting,"Opal")["$coerce_to!"](this,$$($nesting,"Rational"),"to_r"),other)},$Numeric_finite$ques$37.$$arity=1),Opal.def($Numeric_infinite$ques$38,"$real",$Numeric_finite$ques$37=function(){return this},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$real?",$Numeric_finite$ques$37=function(){return!0},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$rect",$Numeric_finite$ques$37=function(){return[this,0]},$Numeric_finite$ques$37.$$arity=0),$alias($Numeric_infinite$ques$38,"rectangular","rect"),Opal.def($Numeric_infinite$ques$38,"$round",$Numeric_finite$ques$37=function(digits){return this.$to_f().$round(digits)},$Numeric_finite$ques$37.$$arity=-1),Opal.def($Numeric_infinite$ques$38,"$step",$Numeric_step$28=function($a,$b,$c){var to,isInf=$Numeric_step$28.$$p,block=isInf||nil,self=this,counter=nil;if(isInf&&($Numeric_step$28.$$p=null),isInf&&($Numeric_step$28.$$p=null),to=Opal.slice.call(arguments,0,arguments.length),null==(isInf=Opal.extract_kwargs(to)))isInf=$hash2([],{});else if(!isInf.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");function validateParameters(){step===nil&&self.$raise($$($nesting,"TypeError"),"step must be numeric"),null!=step&&step["$=="](0)&&self.$raise($$($nesting,"ArgumentError"),"step can't be 0"),step!==nil&&null!=step||(step=1);var sign=step["$<=>"](0);sign===nil&&self.$raise($$($nesting,"ArgumentError"),"0 can't be coerced into "+step.$class()),limit!==nil&&null!=limit||(limit=0="](rhs)):function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)}(counter,limit));)Opal.yield1(block,counter),counter=function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}(counter,step)},$Numeric_step$28.$$arity=-1),Opal.def($Numeric_infinite$ques$38,"$to_c",$Numeric_finite$ques$37=function(){return this.$Complex(this,0)},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$to_int",$Numeric_finite$ques$37=function(){return this.$to_i()},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$truncate",$Numeric_finite$ques$37=function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$truncate(ndigits)},$Numeric_finite$ques$37.$$arity=-1),Opal.def($Numeric_infinite$ques$38,"$zero?",$Numeric_finite$ques$37=function(){return this["$=="](0)},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$positive?",$Numeric_finite$ques$37=function(){var lhs,rhs;return rhs=0,"number"==typeof(lhs=this)&&"number"==typeof rhs?rhs"](rhs)},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$negative?",$Numeric_finite$ques$37=function(){return $rb_lt(this,0)},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$dup",$Numeric_finite$ques$37=function(){return this},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$clone",$Numeric_finite$ques$37=function($kwargs){if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $kwargs.$$smap.freeze,this},$Numeric_finite$ques$37.$$arity=-1),Opal.def($Numeric_infinite$ques$38,"$finite?",$Numeric_finite$ques$37=function(){return!0},$Numeric_finite$ques$37.$$arity=0),Opal.def($Numeric_infinite$ques$38,"$infinite?",$Numeric_infinite$ques$38=function(){return nil},$Numeric_infinite$ques$38.$$arity=0),nil&&"infinite?"}($nesting[0],$nesting)},Opal.modules["corelib/array"]=function(Opal){function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$truthy=Opal.truthy,$falsy=Opal.falsy,$hash_ids=Opal.hash_ids,$yield1=Opal.yield1,$hash_get=Opal.hash_get,$hash_put=Opal.hash_put,$hash_delete=Opal.hash_delete,$coerce_to=Opal.coerce_to,$respond_to=Opal.respond_to,$klass=Opal.klass,$hash2=Opal.hash2,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$gvars=Opal.gvars,$alias=Opal.alias;return Opal.add_stubs(["$require","$include","$to_a","$warn","$raise","$replace","$respond_to?","$to_ary","$coerce_to?","$===","$join","$to_str","$hash","$<=>","$==","$object_id","$inspect","$enum_for","$class","$bsearch_index","$to_proc","$nil?","$coerce_to!","$>","$*","$enumerator_size","$empty?","$size","$map","$equal?","$dup","$each","$reduce","$-","$[]","$dig","$eql?","$length","$exclude_end?","$flatten","$__id__","$&","$to_s","$new","$max","$min","$!","$>=","$**","$delete_if","$reverse","$rotate","$rand","$at","$keep_if","$shuffle!","$<","$sort","$sort_by","$!=","$times","$[]=","$<<","$uniq","$|","$values","$is_a?","$last","$first","$upto","$reject","$pristine","$singleton_class"]),self.$require("corelib/enumerable"),self.$require("corelib/numeric"),function($base,$Array_pack$126,$Array_inherited$123){var $Array_initialize$2,$Array_any$ques$14,$Array_bsearch_index$17,$Array_bsearch$18,$Array_cycle$19,$Array_count$22,$Array_collect$24,$Array_collect$excl$26,$Array_combination$28,$Array_repeated_combination$30,$Array_delete$37,$Array_delete_if$39,$Array_dup$45,$Array_each$46,$Array_each_index$48,$Array_fetch$52,$Array_fill$53,$Array_index$59,$Array_keep_if$65,$Array_max$69,$Array_min$70,$Array_permutation$71,$Array_repeated_permutation$73,$Array_product$76,$Array_reject$79,$Array_reject$excl$81,$Array_reverse_each$86,$Array_rindex$88,$Array_select$94,$Array_select$excl$96,$Array_sort$102,$Array_sort$excl$103,$Array_sort_by$excl$104,$Array_take_while$107,$Array_to_h$110,$Array_uniq$116,$Array_uniq$excl$117,$Array_zip$122,$Array_instance_variables$124,$Array_pack$126=$klass($base,$Array_pack$126,"Array"),$nesting=[$Array_pack$126].concat($Array_inherited$123);function filterIf(self,filter,block){for(var value,raised=null,updated=new Array(self.length),i=0,i2=0,length=self.length;i$$$($$($nesting,"Integer"),"MAX")&&this.$raise($$($nesting,"ArgumentError"),"array size too big"),2",$Array_inherited$123=function(other){if($truthy($$($nesting,"Array")["$==="](other)))other=other.$to_a();else{if(!$truthy(other["$respond_to?"]("to_ary")))return nil;other=other.$to_ary().$to_a()}if(this.$hash()===other.$hash())return 0;for(var count=Math.min(this.length,other.length),i=0;i"](other[i]);if(0!==tmp)return tmp}return this.length["$<=>"](other.length)},$Array_inherited$123.$$arity=1),Opal.def($Array_pack$126,"$==",$Array_inherited$123=function(other){var recursed={};return function _eqeq(array,other){var i,length,a,b;if(array===other)return!0;if(!other.$$is_array)return!!$respond_to(other,"$to_ary")&&other["$=="](array);if(array.$$constructor!==Array&&(array=array.$to_a()),other.$$constructor!==Array&&(other=other.$to_a()),array.length!==other.length)return!1;for(recursed[array.$object_id()]=!0,i=0,length=array.length;i=this.length?nil:this[index]},$Array_inherited$123.$$arity=1),Opal.def($Array_pack$126,"$bsearch_index",$Array_bsearch_index$17=function(){var $iter=$Array_bsearch_index$17.$$p,block=$iter||nil;if($iter&&($Array_bsearch_index$17.$$p=null),$iter&&($Array_bsearch_index$17.$$p=null),block===nil)return this.$enum_for("bsearch_index");for(var mid,ret,min=0,max=this.length,smaller=!1,satisfied=nil;min=this.length)return nil;var result=this[index];return this.splice(index,1),result},$Array_inherited$123.$$arity=1),Opal.def($Array_pack$126,"$delete_if",$Array_delete_if$39=function(){var $$40,$iter=$Array_delete_if$39.$$p,block=$iter||nil;return $iter&&($Array_delete_if$39.$$p=null),$iter&&($Array_delete_if$39.$$p=null),block===nil?$send(this,"enum_for",["delete_if"],(($$40=function(){return(null==$$40.$$s?this:$$40.$$s).$size()}).$$s=this,$$40.$$arity=0,$$40)):(filterIf(this,$falsy,block),this)},$Array_delete_if$39.$$arity=0),Opal.def($Array_pack$126,"$difference",$Array_inherited$123=function($a){var $$42,$post_args=Opal.slice.call(arguments,0,arguments.length);return $send($post_args,"reduce",[this.$to_a().$dup()],(($$42=function(a,b){null==$$42.$$s||$$42.$$s;return null==a&&(a=nil),null==b&&(b=nil),$rb_minus(a,b)}).$$s=this,$$42.$$arity=2,$$42))},$Array_inherited$123.$$arity=-1),Opal.def($Array_pack$126,"$dig",$Array_inherited$123=function(idx,$a){var item=nil,idxs=Opal.slice.call(arguments,1,arguments.length);return(item=this["$[]"](idx))===nil||0===idxs.length?item:($truthy(item["$respond_to?"]("dig"))||this.$raise($$($nesting,"TypeError"),item.$class()+" does not have #dig method"),$send(item,"dig",Opal.to_a(idxs)))},$Array_inherited$123.$$arity=-2),Opal.def($Array_pack$126,"$drop",$Array_inherited$123=function(number){return number<0&&this.$raise($$($nesting,"ArgumentError")),this.slice(number)},$Array_inherited$123.$$arity=1),Opal.def($Array_pack$126,"$dup",$Array_dup$45=function(){var $zuper_ii,$iter=$Array_dup$45.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Array_dup$45.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return this.$$class===Opal.Array&&this.$$class.$allocate.$$pristine&&this.$copy_instance_variables.$$pristine&&this.$initialize_dup.$$pristine?this.slice(0):$send2(this,$find_super(this,"dup",$Array_dup$45,!1,!0),"dup",$zuper,$iter)},$Array_dup$45.$$arity=0),Opal.def($Array_pack$126,"$each",$Array_each$46=function(){var $$47,$iter=$Array_each$46.$$p,block=$iter||nil;if($iter&&($Array_each$46.$$p=null),$iter&&($Array_each$46.$$p=null),block===nil)return $send(this,"enum_for",["each"],(($$47=function(){return(null==$$47.$$s?this:$$47.$$s).$size()}).$$s=this,$$47.$$arity=0,$$47));for(var i=0,length=this.length;ithis.length))for(i=this.length;ithis.length)&&(this.length=right),$truthy(block))for(this.length;leftthis.length)for(var i=this.length;ithis.length&&(count=this.length),this.slice(this.length-count,this.length))},$Array_inherited$123.$$arity=-1),Opal.def($Array_pack$126,"$length",$Array_inherited$123=function(){return this.length},$Array_inherited$123.$$arity=0),$alias($Array_pack$126,"map","collect"),$alias($Array_pack$126,"map!","collect!"),Opal.def($Array_pack$126,"$max",$Array_max$69=function(n){var $iter=$Array_max$69.$$p,block=$iter||nil;return $iter&&($Array_max$69.$$p=null),$iter&&($Array_max$69.$$p=null),$send(this.$each(),"max",[n],block.$to_proc())},$Array_max$69.$$arity=-1),Opal.def($Array_pack$126,"$min",$Array_min$70=function(){var $iter=$Array_min$70.$$p,block=$iter||nil;return $iter&&($Array_min$70.$$p=null),$iter&&($Array_min$70.$$p=null),$send(this.$each(),"min",[],block.$to_proc())},$Array_min$70.$$arity=0),Opal.def($Array_pack$126,"$permutation",$Array_permutation$71=function(num){var $$72,perm,used,permute,output,offensive=$Array_permutation$71.$$p,block=offensive||nil,self=this;if(offensive&&($Array_permutation$71.$$p=null),offensive&&($Array_permutation$71.$$p=null),block===nil)return $send(self,"enum_for",["permutation",num],(($$72=function(){var self=null==$$72.$$s?this:$$72.$$s;return function(from,how_many){for(var count=0<=how_many?1:0;how_many;)count*=from,from--,how_many--;return count}(self.length,void 0===num?self.length:num)}).$$s=self,$$72.$$arity=0,$$72));if(num=void 0===num?self.length:$coerce_to(num,$$($nesting,"Integer"),"to_int"),!(num<0||self.length="](rhs)))?self.$size()["$**"](num):0}).$$s=this,$$74.$$arity=0,$$74)):(function iterate(max,buffer,self){if(buffer.length!=max)for(var i=0;ithis.length)?this.splice(0,this.length):this.splice(this.length-count,this.length))},$Array_inherited$123.$$arity=-1),Opal.def($Array_pack$126,"$product",$Array_product$76=function($a){var args,$post_args=$Array_product$76.$$p,block=$post_args||nil;$post_args&&($Array_product$76.$$p=null),$post_args&&($Array_product$76.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length);var i,m,subarray,len,result=block!==nil?null:[],n=(args=$post_args).length+1,counters=new Array(n),lengths=new Array(n),arrays=new Array(n),resultlen=1;for(arrays[0]=this,i=1;i=this.length);i--)if(this[i]["$=="](object))return i}else if(block!==nil){for(i=this.length-1;0<=i&&!(i>=this.length);i--)if(!1!==(value=block(this[i]))&&value!==nil)return i}else if(null==object)return this.$enum_for("rindex");return nil},$Array_rindex$88.$$arity=-1),Opal.def($Array_pack$126,"$rotate",$Array_inherited$123=function(firstPart){var ary,lastPart;return null==firstPart&&(firstPart=1),firstPart=$coerce_to(firstPart,$$($nesting,"Integer"),"to_int"),1===this.length?this.slice():0===this.length?[]:(lastPart=firstPart%(ary=this.slice()).length,firstPart=ary.slice(lastPart),lastPart=ary.slice(0,lastPart),firstPart.concat(lastPart))},$Array_inherited$123.$$arity=-1),Opal.def($Array_pack$126,"$rotate!",$Array_inherited$123=function(cnt){var ary;return null==cnt&&(cnt=1),0===this.length||1===this.length?this:(cnt=$coerce_to(cnt,$$($nesting,"Integer"),"to_int"),ary=this.$rotate(cnt),this.$replace(ary))},$Array_inherited$123.$$arity=-1),function($SampleRandom_rand$92,$SampleRandom_initialize$91){var $nesting=[$SampleRandom_rand$92=$klass($SampleRandom_rand$92,null,"SampleRandom")].concat($SampleRandom_initialize$91);$SampleRandom_rand$92.$$prototype.rng=nil,Opal.def($SampleRandom_rand$92,"$initialize",$SampleRandom_initialize$91=function(rng){return this.rng=rng},$SampleRandom_initialize$91.$$arity=1),Opal.def($SampleRandom_rand$92,"$rand",$SampleRandom_rand$92=function(size){var random=$coerce_to(this.rng.$rand(size),$$($nesting,"Integer"),"to_int");return $truthy(random<0)&&this.$raise($$($nesting,"RangeError"),"random value must be >= 0"),$truthy(randomthis.length&&(count=this.length),count){case 0:return[];case 1:return[this[rng.$rand(this.length)]];case 2:return(i=rng.$rand(this.length))===(j=rng.$rand(this.length))&&(j=0===i?i+1:i-1),[this[i],this[j]];default:if(3=this.length&&(range_end=this.length-1,range.excl&&(range_end+=1));var range_length=range_end-range_start;range.excl?--range_end:range_length+=1,range_start=this.length)return nil;result=this[start],0===start?this.shift():this.splice(start,1)}else{if(start=$coerce_to(index,$$($nesting,"Integer"),"to_int"),(length=$coerce_to(length,$$($nesting,"Integer"),"to_int"))<0)return nil;result=this["$[]"](start,length);start<0&&(start+=this.length),start+length>this.length&&(length=this.length-start),start"](b)}),self.slice().sort(function(x,rhs){var lhs=block(x,rhs);return lhs===nil&&self.$raise($$($nesting,"ArgumentError"),"comparison of "+x.$inspect()+" with "+rhs.$inspect()+" failed"),$rb_gt(lhs,0)?1:(rhs=0,("number"==typeof(lhs=lhs)&&"number"==typeof rhs?lhs="](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2,$truthy=Opal.truthy,$alias=Opal.alias;return Opal.add_stubs(["$require","$include","$coerce_to?","$[]","$merge!","$allocate","$raise","$coerce_to!","$each","$fetch","$>=","$>","$==","$compare_by_identity","$lambda?","$abs","$arity","$enum_for","$size","$respond_to?","$class","$dig","$except!","$dup","$delete","$new","$inspect","$map","$to_proc","$flatten","$eql?","$default","$default_proc","$default_proc=","$-","$default=","$to_h","$proc"]),self.$require("corelib/enumerable"),function($Hash_values$81,$Hash_to_proc$71){var $Hash_initialize$4,$Hash_delete$24,$Hash_delete_if$25,$Hash_each$28,$Hash_each_key$30,$Hash_each_value$32,$Hash_fetch$38,$Hash_fetch_values$39,$Hash_keep_if$49,$Hash_merge$53,$Hash_merge$excl$54,$Hash_reject$57,$Hash_reject$excl$59,$Hash_select$62,$Hash_select$excl$64,$Hash_to_h$69,$Hash_transform_keys$73,$Hash_transform_keys$excl$75,$Hash_transform_values$77,$Hash_transform_values$excl$79,inspect_ids,$Hash_values$81=$klass($Hash_values$81,null,"Hash"),$nesting=[$Hash_values$81].concat($Hash_to_proc$71);return $Hash_values$81.$include($$($nesting,"Enumerable")),$Hash_values$81.$$prototype.$$is_hash=!0,Opal.defs($Hash_values$81,"$[]",$Hash_to_proc$71=function($a){var hash,i,argv=Opal.slice.call(arguments,0,arguments.length),argc=argv.length;if(1===argc){if((hash=$$($nesting,"Opal")["$coerce_to?"](argv["$[]"](0),$$($nesting,"Hash"),"to_hash"))!==nil)return this.$allocate()["$merge!"](hash);for((argv=$$($nesting,"Opal")["$coerce_to?"](argv["$[]"](0),$$($nesting,"Array"),"to_ary"))===nil&&this.$raise($$($nesting,"ArgumentError"),"odd number of arguments for Hash"),argc=argv.length,hash=this.$allocate(),i=0;i=",$Hash_to_proc$71=function(other){var $$7,result=nil;return other=$$($nesting,"Opal")["$coerce_to!"](other,$$($nesting,"Hash"),"to_hash"),!(this.$$keys.length",$Hash_to_proc$71=function(other){return other=$$($nesting,"Opal")["$coerce_to!"](other,$$($nesting,"Hash"),"to_hash"),!(this.$$keys.length<=other.$$keys.length)&&$rb_ge(this,other)},$Hash_to_proc$71.$$arity=1),Opal.def($Hash_values$81,"$<",$Hash_to_proc$71=function(lhs){var rhs;return lhs=$$($nesting,"Opal")["$coerce_to!"](lhs,$$($nesting,"Hash"),"to_hash"),rhs=this,"number"==typeof(lhs=lhs)&&"number"==typeof rhs?rhs"](rhs)},$Hash_to_proc$71.$$arity=1),Opal.def($Hash_values$81,"$<=",$Hash_to_proc$71=function(other){return $rb_ge(other=$$($nesting,"Opal")["$coerce_to!"](other,$$($nesting,"Hash"),"to_hash"),this)},$Hash_to_proc$71.$$arity=1),Opal.def($Hash_values$81,"$[]",$Hash_to_proc$71=function(key){var value=Opal.hash_get(this,key);return void 0!==value?value:this.$default(key)},$Hash_to_proc$71.$$arity=1),Opal.def($Hash_values$81,"$[]=",$Hash_to_proc$71=function(key,value){return Opal.hash_put(this,key,value),value},$Hash_to_proc$71.$$arity=2),Opal.def($Hash_values$81,"$assoc",$Hash_to_proc$71=function(object){for(var key,i=0,keys=this.$$keys,length=keys.length;i"+value.$inspect());return"{"+result.join(", ")+"}"}finally{top&&(inspect_ids=void 0)}},$Hash_to_proc$71.$$arity=0),Opal.def($Hash_values$81,"$invert",$Hash_to_proc$71=function(){for(var key,value,hash=Opal.hash(),i=0,keys=this.$$keys,length=keys.length;i"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$**","$new","$<","$to_f","$==","$nan?","$infinite?","$enum_for","$+","$-","$gcd","$lcm","$%","$/","$frexp","$to_i","$ldexp","$rationalize","$*","$<<","$to_r","$truncate","$-@","$size","$<=","$>="]),self.$require("corelib/numeric"),function($base,$Number_negative$ques$75,$Number_positive$ques$74){var $Number_denominator$34,$Number_downto$35,$Number_is_a$ques$43,$Number_instance_of$ques$44,$Number_numerator$49,$Number_quo$54,$Number_times$58,$Number_divmod$66,$Number_upto$67,$nesting=[$Number_negative$ques$75=$klass($base,$Number_negative$ques$75,"Number")].concat($Number_positive$ques$74);$$($nesting,"Opal").$bridge(Number,$Number_negative$ques$75),Opal.defineProperty($Number_negative$ques$75.$$prototype,"$$is_number",!0),$Number_negative$ques$75.$$is_number_class=!0,function(self,$allocate$1){var $nesting=[self].concat($allocate$1);Opal.def(self,"$allocate",$allocate$1=function(){return this.$raise($$($nesting,"TypeError"),"allocator undefined for "+this.$name())},$allocate$1.$$arity=0),Opal.udef(self,"$new")}(Opal.get_singleton_class($Number_negative$ques$75),$nesting),Opal.def($Number_negative$ques$75,"$coerce",$Number_positive$ques$74=function(other){if(other===nil)this.$raise($$($nesting,"TypeError"),"can't convert "+other.$class()+" into Float");else{if(other.$$is_string)return[this.$Float(other),this];if(other["$respond_to?"]("to_f"))return[$$($nesting,"Opal")["$coerce_to!"](other,$$($nesting,"Float"),"to_f"),this];{if(other.$$is_number)return[other,this];this.$raise($$($nesting,"TypeError"),"can't convert "+other.$class()+" into Float")}}},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$__id__",$Number_positive$ques$74=function(){return 2*this+1},$Number_positive$ques$74.$$arity=0),$alias($Number_negative$ques$75,"object_id","__id__"),Opal.def($Number_negative$ques$75,"$+",$Number_positive$ques$74=function(other){return other.$$is_number?this+other:this.$__coerced__("+",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$-",$Number_positive$ques$74=function(other){return other.$$is_number?this-other:this.$__coerced__("-",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$*",$Number_positive$ques$74=function(other){return other.$$is_number?this*other:this.$__coerced__("*",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$/",$Number_positive$ques$74=function(other){return other.$$is_number?this/other:this.$__coerced__("/",other)},$Number_positive$ques$74.$$arity=1),$alias($Number_negative$ques$75,"fdiv","/"),Opal.def($Number_negative$ques$75,"$%",$Number_positive$ques$74=function(other){return other.$$is_number?other==-1/0?other:0!=other?other<0||this<0?(this%other+other)%other:this%other:void this.$raise($$($nesting,"ZeroDivisionError"),"divided by 0"):this.$__coerced__("%",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$&",$Number_positive$ques$74=function(other){return other.$$is_number?this&other:this.$__coerced__("&",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$|",$Number_positive$ques$74=function(other){return other.$$is_number?this|other:this.$__coerced__("|",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$^",$Number_positive$ques$74=function(other){return other.$$is_number?this^other:this.$__coerced__("^",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$<",$Number_positive$ques$74=function(other){return other.$$is_number?this",$Number_positive$ques$74=function(other){return other.$$is_number?other",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$>=",$Number_positive$ques$74=function(other){return other.$$is_number?other<=this:this.$__coerced__(">=",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$<=>",$Number_positive$ques$74=function(other){try{return function(self,other){return other.$$is_number?isNaN(self)||isNaN(other)?nil:other",other)}(this,other)}catch($err){if(!Opal.rescue($err,[$$($nesting,"ArgumentError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$<<",$Number_positive$ques$74=function(count){return 0<(count=$$($nesting,"Opal")["$coerce_to!"](count,$$($nesting,"Integer"),"to_int"))?this<>-count},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$>>",$Number_positive$ques$74=function(count){return 0<(count=$$($nesting,"Opal")["$coerce_to!"](count,$$($nesting,"Integer"),"to_int"))?this>>count:this<<-count},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$[]",$Number_positive$ques$74=function(bit){return(bit=$$($nesting,"Opal")["$coerce_to!"](bit,$$($nesting,"Integer"),"to_int"))<0?0:32<=bit?this<0?1:0:this>>bit&1},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$+@",$Number_positive$ques$74=function(){return+this},$Number_positive$ques$74.$$arity=0),Opal.def($Number_negative$ques$75,"$-@",$Number_positive$ques$74=function(){return-this},$Number_positive$ques$74.$$arity=0),Opal.def($Number_negative$ques$75,"$~",$Number_positive$ques$74=function(){return~this},$Number_positive$ques$74.$$arity=0),Opal.def($Number_negative$ques$75,"$**",$Number_positive$ques$74=function(other){var self=this,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return $truthy($$($nesting,"Integer")["$==="](other))?$truthy($truthy($ret_or_1=$$($nesting,"Integer")["$==="](self)["$!"]())?$ret_or_1:$rb_gt(other,0))?Math.pow(self,other):$$($nesting,"Rational").$new(self,1)["$**"](other):$truthy($truthy($ret_or_2=$rb_lt(self,0))?$truthy($ret_or_3=$$($nesting,"Float")["$==="](other))?$ret_or_3:$$($nesting,"Rational")["$==="](other):$ret_or_2)?$$($nesting,"Complex").$new(self,0)["$**"](other.$to_f()):$truthy(null!=other.$$is_number)?Math.pow(self,other):self.$__coerced__("**",other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$===",$Number_positive$ques$74=function(other){return other.$$is_number?this.valueOf()===other.valueOf():!!other["$respond_to?"]("==")&&other["$=="](this)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$==",$Number_positive$ques$74=function(other){return other.$$is_number?this.valueOf()===other.valueOf():!!other["$respond_to?"]("==")&&other["$=="](this)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$abs",$Number_positive$ques$74=function(){return Math.abs(this)},$Number_positive$ques$74.$$arity=0),Opal.def($Number_negative$ques$75,"$abs2",$Number_positive$ques$74=function(){return Math.abs(this*this)},$Number_positive$ques$74.$$arity=0),Opal.def($Number_negative$ques$75,"$allbits?",$Number_positive$ques$74=function(mask){return(this&(mask=$$($nesting,"Opal")["$coerce_to!"](mask,$$($nesting,"Integer"),"to_int")))==mask},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$anybits?",$Number_positive$ques$74=function(mask){return 0!=(this&(mask=$$($nesting,"Opal")["$coerce_to!"](mask,$$($nesting,"Integer"),"to_int")))},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$angle",$Number_positive$ques$74=function(){return $truthy(this["$nan?"]())?this:0==this?0<1/this?0:Math.PI:this<0?Math.PI:0},$Number_positive$ques$74.$$arity=0),$alias($Number_negative$ques$75,"arg","angle"),$alias($Number_negative$ques$75,"phase","angle"),Opal.def($Number_negative$ques$75,"$bit_length",$Number_positive$ques$74=function(){if($truthy($$($nesting,"Integer")["$==="](this))||this.$raise($$($nesting,"NoMethodError").$new("undefined method `bit_length` for "+this+":Float","bit_length")),0===this||-1===this)return 0;for(var result=0,value=this<0?~this:this;0!=value;)result+=1,value>>>=1;return result},$Number_positive$ques$74.$$arity=0),Opal.def($Number_negative$ques$75,"$ceil",$Number_positive$ques$74=function(result){null==result&&(result=0);var f=this.$to_f();if(f%1==0&&0<=result)return f;result=Math.pow(10,result),result=Math.ceil(f*result)/result;return f%1==0&&(result=Math.round(result)),result},$Number_positive$ques$74.$$arity=-1),Opal.def($Number_negative$ques$75,"$chr",$Number_positive$ques$74=function(encoding){return Opal.enc(String.fromCharCode(this),encoding||"BINARY")},$Number_positive$ques$74.$$arity=-1),Opal.def($Number_negative$ques$75,"$denominator",$Number_denominator$34=function(){var $zuper_ii,$iter=$Number_denominator$34.$$p,self=this,$ret_or_4=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Number_denominator$34.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy($truthy($ret_or_4=self["$nan?"]())?$ret_or_4:self["$infinite?"]())?1:$send2(self,$find_super(self,"denominator",$Number_denominator$34,!1,!0),"denominator",$zuper,$iter)},$Number_denominator$34.$$arity=0),Opal.def($Number_negative$ques$75,"$downto",$Number_downto$35=function(stop){var $$36,$iter=$Number_downto$35.$$p,block=$iter||nil;if($iter&&($Number_downto$35.$$p=null),$iter&&($Number_downto$35.$$p=null),block===nil)return $send(this,"enum_for",["downto",stop],(($$36=function(){var self=null==$$36.$$s?this:$$36.$$s;return $truthy($$($nesting,"Numeric")["$==="](stop))||self.$raise($$($nesting,"ArgumentError"),"comparison of "+self.$class()+" with "+stop.$class()+" failed"),$truthy($rb_gt(stop,self))?0:$rb_plus($rb_minus(self,stop),1)}).$$s=this,$$36.$$arity=0,$$36));stop.$$is_number||this.$raise($$($nesting,"ArgumentError"),"comparison of "+this.$class()+" with "+stop.$class()+" failed");for(var i=this;stop<=i;i--)block(i);return this},$Number_downto$35.$$arity=1),$alias($Number_negative$ques$75,"eql?","=="),Opal.def($Number_negative$ques$75,"$equal?",$Number_positive$ques$74=function(other){var $ret_or_5;return $truthy($ret_or_5=this["$=="](other))?$ret_or_5:isNaN(this)&&isNaN(other)},$Number_positive$ques$74.$$arity=1),Opal.def($Number_negative$ques$75,"$even?",$Number_positive$ques$74=function(){return this%2==0},$Number_positive$ques$74.$$arity=0),Opal.def($Number_negative$ques$75,"$floor",$Number_positive$ques$74=function(result){null==result&&(result=0);var f=this.$to_f();if(f%1==0&&0<=result)return f;result=Math.pow(10,result),result=Math.floor(f*result)/result;return f%1==0&&(result=Math.round(result)),result},$Number_positive$ques$74.$$arity=-1),Opal.def($Number_negative$ques$75,"$gcd",$Number_positive$ques$74=function(other){$truthy($$($nesting,"Integer")["$==="](other))||this.$raise($$($nesting,"TypeError"),"not an integer");for(var min=Math.abs(this),max=Math.abs(other);0self.$size())return 0;var rhs=Math.pow(10,ndigits),rhs=Math.floor((Math.abs(self)+rhs/2)/rhs)*rhs;return self<0?-rhs:rhs}if($truthy($truthy(lhs=self["$nan?"]())?null==ndigits:lhs)&&self.$raise($$($nesting,"FloatDomainError"),"NaN"),ndigits=$$($nesting,"Opal")["$coerce_to!"](ndigits||0,$$($nesting,"Integer"),"to_int"),$truthy((rhs=0,"number"==typeof(lhs=ndigits)&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs))))$truthy(self["$nan?"]())?self.$raise($$($nesting,"RangeError"),"NaN"):$truthy(self["$infinite?"]())&&self.$raise($$($nesting,"FloatDomainError"),"Infinity");else{if(ndigits["$=="](0))return Math.round(self);if($truthy($truthy($a=self["$nan?"]())?$a:self["$infinite?"]()))return self}return $a=$$($nesting,"Math").$frexp(self),null==($a=Opal.to_ary($a))[0]||$a[0],exp=null==$a[1]?nil:$a[1],$truthy(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)}(ndigits,$rb_minus($rb_plus($$$($$($nesting,"Float"),"DIG"),2),$truthy($rb_gt(exp,0))?$rb_divide(exp,4):$rb_minus($rb_divide(exp,3),1))))?self:$truthy($rb_lt(ndigits,($truthy($rb_gt(exp,0))?$rb_plus($rb_divide(exp,3),1):$rb_divide(exp,4))["$-@"]()))?0:Math.round(self*Math.pow(10,ndigits))/Math.pow(10,ndigits)},$Number_positive$ques$74.$$arity=-1),$alias($Number_negative$ques$75,"succ","next"),Opal.def($Number_negative$ques$75,"$times",$Number_times$58=function(){var $$59,$iter=$Number_times$58.$$p,block=$iter||nil;if($iter&&($Number_times$58.$$p=null),$iter&&($Number_times$58.$$p=null),!$truthy(block))return $send(this,"enum_for",["times"],(($$59=function(){return null==$$59.$$s?this:$$59.$$s}).$$s=this,$$59.$$arity=0,$$59));for(var i=0;i"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$require","$include","$attr_reader","$raise","$<=>","$nil?","$include?","$!","$<","$<=","$enum_for","$size","$upto","$to_proc","$respond_to?","$class","$succ","$==","$===","$exclude_end?","$eql?","$begin","$end","$last","$to_a","$>","$-@","$-","$to_i","$coerce_to!","$ceil","$/","$loop","$+","$*","$>=","$each_with_index","$%","$bsearch","$inspect","$[]","$hash"]),self.$require("corelib/enumerable"),function($Range_hash$23,$Range_marshal_load$22){var $Range_count$3,$Range_to_a$4,$Range_each$6,$Range_first$10,$Range_max$12,$Range_min$13,$Range_step$15,$Range_bsearch$19,$Range_hash$23=$klass($Range_hash$23,null,"Range"),$nesting=[$Range_hash$23].concat($Range_marshal_load$22);function is_infinite(self){return self.begin===nil||self.end===nil||self.begin===-1/0||self.end===1/0||self.begin===1/0||self.end===-1/0}return $Range_hash$23.$$prototype.begin=$Range_hash$23.$$prototype.end=$Range_hash$23.$$prototype.excl=nil,$Range_hash$23.$include($$($nesting,"Enumerable")),$Range_hash$23.$$prototype.$$is_range=!0,$Range_hash$23.$attr_reader("begin","end"),Opal.def($Range_hash$23,"$initialize",$Range_marshal_load$22=function(first,last,exclude){var $ret_or_1=nil,$ret_or_2=nil;return null==exclude&&(exclude=!1),$truthy(this.begin)&&this.$raise($$($nesting,"NameError"),"'initialize' called twice"),$truthy($truthy($ret_or_1=$truthy($ret_or_2=first["$<=>"](last))?$ret_or_2:first["$nil?"]())?$ret_or_1:last["$nil?"]())||this.$raise($$($nesting,"ArgumentError"),"bad value for range"),this.begin=first,this.end=last,this.excl=exclude},$Range_marshal_load$22.$$arity=-3),Opal.def($Range_hash$23,"$===",$Range_marshal_load$22=function(value){return this["$include?"](value)},$Range_marshal_load$22.$$arity=1),Opal.def($Range_hash$23,"$count",$Range_count$3=function(){var $zuper_ii,$iter=$Range_count$3.$$p,block=$iter||nil,self=this,$ret_or_3=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Range_count$3.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $iter&&($Range_count$3.$$p=null),$truthy($truthy($ret_or_3=(block!==nil)["$!"]())?is_infinite(self):$ret_or_3)?$$$($$($nesting,"Float"),"INFINITY"):$send2(self,$find_super(self,"count",$Range_count$3,!1,!0),"count",$zuper,$iter)},$Range_count$3.$$arity=0),Opal.def($Range_hash$23,"$to_a",$Range_to_a$4=function(){var $zuper_ii,$iter=$Range_to_a$4.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Range_to_a$4.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy(is_infinite(this))&&this.$raise($$($nesting,"TypeError"),"cannot convert endless range to an array"),$send2(this,$find_super(this,"to_a",$Range_to_a$4,!1,!0),"to_a",$zuper,$iter)},$Range_to_a$4.$$arity=0),Opal.def($Range_hash$23,"$cover?",$Range_marshal_load$22=function(value){var $ret_or_10,self=this,$ret_or_4=nil,$ret_or_5=nil,$ret_or_6=nil,$ret_or_7=nil,$ret_or_8=nil,$ret_or_9=nil,$ret_or_11=nil,$ret_or_12=nil,$ret_or_13=nil,beg_cmp=!!$truthy($ret_or_4=$truthy($ret_or_5=$truthy($ret_or_6=self.begin["$nil?"]())?-1:$ret_or_6)?$ret_or_5:self.begin["$<=>"](value))&&$ret_or_4,end_cmp=!!$truthy($ret_or_7=$truthy($ret_or_8=$truthy($ret_or_9=self.end["$nil?"]())?-1:$ret_or_9)?$ret_or_8:value["$<=>"](self.end))&&$ret_or_7;return $truthy($ret_or_10=$truthy($ret_or_11=$truthy(self.excl)?$truthy($ret_or_12=end_cmp)?$rb_lt(end_cmp,0):$ret_or_12:$truthy($ret_or_13=end_cmp)?$rb_le(end_cmp,0):$ret_or_13)?beg_cmp:$ret_or_11)?$rb_le(beg_cmp,0):$ret_or_10},$Range_marshal_load$22.$$arity=1),Opal.def($Range_hash$23,"$each",$Range_each$6=function(){var $$7,last,i,limit,$iter=$Range_each$6.$$p,block=$iter||nil,self=this,current=nil,$ret_or_14=nil,$ret_or_15=nil;if($iter&&($Range_each$6.$$p=null),$iter&&($Range_each$6.$$p=null),block===nil)return $send(self,"enum_for",["each"],(($$7=function(){return(null==$$7.$$s?this:$$7.$$s).$size()}).$$s=self,$$7.$$arity=0,$$7));if(self.begin.$$is_number&&self.end.$$is_number){for(self.begin%1==0&&self.end%1==0||self.$raise($$($nesting,"TypeError"),"can't iterate from Float"),i=self.begin,limit=self.end+($truthy(self.excl)?0:1);i"](last),0));)Opal.yield1(block,current),current=current.$succ();return $truthy($truthy($ret_or_15=self.excl["$!"]())?current["$=="](last):$ret_or_15)&&Opal.yield1(block,current),self},$Range_each$6.$$arity=0),Opal.def($Range_hash$23,"$eql?",$Range_marshal_load$22=function(other){var $ret_or_16,self=this,$ret_or_17=nil;return!!$truthy($$($nesting,"Range")["$==="](other))&&($truthy($ret_or_16=$truthy($ret_or_17=self.excl["$==="](other["$exclude_end?"]()))?self.begin["$eql?"](other.$begin()):$ret_or_17)?self.end["$eql?"](other.$end()):$ret_or_16)},$Range_marshal_load$22.$$arity=1),$alias($Range_hash$23,"==","eql?"),Opal.def($Range_hash$23,"$exclude_end?",$Range_marshal_load$22=function(){return this.excl},$Range_marshal_load$22.$$arity=0),Opal.def($Range_hash$23,"$first",$Range_first$10=function(n){var $zuper_ii,$iter=$Range_first$10.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($Range_first$10.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy(this.begin["$nil?"]())&&this.$raise($$($nesting,"RangeError"),"cannot get the minimum of beginless range"),$truthy(null==n)?this.begin:$send2(this,$find_super(this,"first",$Range_first$10,!1,!0),"first",$zuper,$iter)},$Range_first$10.$$arity=-1),$alias($Range_hash$23,"include?","cover?"),Opal.def($Range_hash$23,"$last",$Range_marshal_load$22=function(n){return $truthy(this.end["$nil?"]())&&this.$raise($$($nesting,"RangeError"),"cannot get the maximum of endless range"),$truthy(null==n)?this.end:this.$to_a().$last(n)},$Range_marshal_load$22.$$arity=-1),Opal.def($Range_hash$23,"$max",$Range_max$12=function(){var $zuper_ii,$iter=$Range_max$12.$$p,$yield=$iter||nil,self=this,$ret_or_18=nil,$ret_or_19=nil,$ret_or_20=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Range_max$12.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy(self.end["$nil?"]())?self.$raise($$($nesting,"RangeError"),"cannot get the maximum of endless range"):$yield!==nil?$send2(self,$find_super(self,"max",$Range_max$12,!1,!0),"max",$zuper,$iter):$truthy($truthy($ret_or_18=self.begin["$nil?"]()["$!"]())?$truthy($ret_or_19=$rb_gt(self.begin,self.end))?$ret_or_19:$truthy($ret_or_20=self.excl)?self.begin["$=="](self.end):$ret_or_20:$ret_or_18)?nil:self.excl?self.end-1:self.end},$Range_max$12.$$arity=0),$alias($Range_hash$23,"member?","cover?"),Opal.def($Range_hash$23,"$min",$Range_min$13=function(){var $zuper_ii,$iter=$Range_min$13.$$p,$yield=$iter||nil,self=this,$ret_or_21=nil,$ret_or_22=nil,$ret_or_23=nil,$zuper=nil,$zuper_i=nil;for($iter&&($Range_min$13.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $truthy(self.begin["$nil?"]())?self.$raise($$($nesting,"RangeError"),"cannot get the minimum of beginless range"):$yield!==nil?$send2(self,$find_super(self,"min",$Range_min$13,!1,!0),"min",$zuper,$iter):$truthy($truthy($ret_or_21=self.end["$nil?"]()["$!"]())?$truthy($ret_or_22=$rb_gt(self.begin,self.end))?$ret_or_22:$truthy($ret_or_23=self.excl)?self.begin["$=="](self.end):$ret_or_23:$ret_or_21)?nil:self.begin},$Range_min$13.$$arity=0),Opal.def($Range_hash$23,"$size",$Range_marshal_load$22=function(){var range_begin,lhs=this,infinity=nil,$ret_or_24=nil,$ret_or_25=nil,$ret_or_26=nil,rhs=nil,range_end=nil,infinity=$$$($$($nesting,"Float"),"INFINITY");return $truthy($truthy($ret_or_24=$truthy($ret_or_25=lhs.begin["$=="](infinity))?lhs.end["$nil?"]()["$!"]():$ret_or_25)?$ret_or_24:$truthy($ret_or_26=lhs.end["$=="](infinity["$-@"]()))?lhs.begin["$nil?"]()["$!"]():$ret_or_26)?0:$truthy(is_infinite(lhs))?infinity:$truthy($truthy(rhs=$$($nesting,"Numeric")["$==="](lhs.begin))?$$($nesting,"Numeric")["$==="](lhs.end):rhs)?(range_begin=lhs.begin,range_end=lhs.end,$truthy(lhs.excl)&&(rhs=1,range_end="number"==typeof(lhs=range_end)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)),$truthy($rb_lt(range_end,range_begin))?0:(Math.abs(range_end-range_begin)+1).$to_i()):nil},$Range_marshal_load$22.$$arity=0),Opal.def($Range_hash$23,"$step",$Range_step$15=function(n){var $$16,$$17,$$18,$iter=$Range_step$15.$$p,$yield=$iter||nil,self=this,i=nil;function coerceStepSize(){n.$$is_number||(n=$$($nesting,"Opal")["$coerce_to!"](n,$$($nesting,"Integer"),"to_int")),n<0?self.$raise($$($nesting,"ArgumentError"),"step can't be negative"):0===n&&self.$raise($$($nesting,"ArgumentError"),"step can't be 0")}function enumeratorSize(){if(!self.begin["$respond_to?"]("succ"))return nil;if(self.begin.$$is_string&&self.end.$$is_string)return nil;if(n%1==0)return err=self.$size(),floor=n,("number"==typeof err&&"number"==typeof floor?err/floor:err["$/"](floor)).$ceil();var size,err,floor,begin=self.begin,end=self.end,err=Math.abs,floor=Math.floor,err=(err(begin)+err(end)+err(end-begin))/err(n)*$$$($$($nesting,"Float"),"EPSILON");return.5="](rhs)}(current,self.end))&&Opal.brk(nil,$brk):$truthy($rb_gt(current,self.end))&&Opal.brk(nil,$brk),Opal.yield1($yield,current),i=$rb_plus(i,1)}).$$s=self,$$17.$$brk=$brk,$$17.$$arity=0,$$17))}catch(err){if(err===$brk)return err.$v;throw err}}()):(self.begin.$$is_string&&self.end.$$is_string&&n%1!=0&&self.$raise($$($nesting,"TypeError"),"no implicit conversion to float from string"),$send(self,"each_with_index",[],(($$18=function(value,idx){null==$$18.$$s||$$18.$$s;return null==value&&(value=nil),null==idx&&(idx=nil),idx["$%"](n)["$=="](0)?Opal.yield1($yield,value):nil}).$$s=self,$$18.$$arity=2,$$18))),self)},$Range_step$15.$$arity=-1),Opal.def($Range_hash$23,"$bsearch",$Range_bsearch$19=function(){var $iter=$Range_bsearch$19.$$p,block=$iter||nil;return $iter&&($Range_bsearch$19.$$p=null),$iter&&($Range_bsearch$19.$$p=null),block===nil?this.$enum_for("bsearch"):($truthy(is_infinite(this)&&(this.begin.$$is_number||this.end.$$is_number))&&this.$raise($$($nesting,"NotImplementedError"),"Can't #bsearch an infinite range"),$truthy(this.begin.$$is_number&&this.end.$$is_number)||this.$raise($$($nesting,"TypeError"),"can't do binary search for "+this.begin.$class()),$send(this.$to_a(),"bsearch",[],block.$to_proc()))},$Range_bsearch$19.$$arity=0),Opal.def($Range_hash$23,"$to_s",$Range_marshal_load$22=function(){var self=this,$ret_or_28=nil,$ret_or_29=nil;return($truthy($ret_or_28=self.begin)?$ret_or_28:"")+($truthy(self.excl)?"...":"..")+($truthy($ret_or_29=self.end)?$ret_or_29:"")},$Range_marshal_load$22.$$arity=0),Opal.def($Range_hash$23,"$inspect",$Range_marshal_load$22=function(){var self=this,$ret_or_30=nil,$ret_or_31=nil;return($truthy($ret_or_30=self.begin)?self.begin.$inspect():$ret_or_30)+($truthy(self.excl)?"...":"..")+($truthy($ret_or_31=self.end)?self.end.$inspect():$ret_or_31)},$Range_marshal_load$22.$$arity=0),Opal.def($Range_hash$23,"$marshal_load",$Range_marshal_load$22=function(args){return this.begin=args["$[]"]("begin"),this.end=args["$[]"]("end"),this.excl=args["$[]"]("excl")},$Range_marshal_load$22.$$arity=1),Opal.def($Range_hash$23,"$hash",$Range_hash$23=function(){return[this.begin,this.end,this.excl].$hash()},$Range_hash$23.$$arity=0),nil&&"hash"}($nesting[0],$nesting)},Opal.modules["corelib/proc"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$slice=Opal.slice,$klass=Opal.klass,$truthy=Opal.truthy,$alias=Opal.alias,$send=Opal.send;return Opal.add_stubs(["$raise","$proc","$call","$to_proc","$coerce_to!"]),function($base,self,$Proc_dup$14){var $Proc_new$1,$Proc_call$2,$Proc_$gt$gt$3,$Proc_$lt$lt$5,self=$klass($base,self,"Proc"),$nesting=[self].concat($Proc_dup$14);return Opal.defineProperty(self.$$prototype,"$$is_proc",!0),Opal.defineProperty(self.$$prototype,"$$is_lambda",!1),Opal.defs(self,"$new",$Proc_new$1=function(){var $iter=$Proc_new$1.$$p,block=$iter||nil;return $iter&&($Proc_new$1.$$p=null),$iter&&($Proc_new$1.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"tried to create a Proc object without a block"),block},$Proc_new$1.$$arity=0),Opal.def(self,"$call",$Proc_call$2=function($a){var args,$iter=$Proc_call$2.$$p,$brk=$iter||nil;$iter&&($Proc_call$2.$$p=null),$iter&&($Proc_call$2.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),$brk!==nil&&(this.$$p=$brk);var result,$brk=this.$$brk;if($brk)try{result=this.$$is_lambda?this.apply(null,args):Opal.yieldX(this,args)}catch(err){if(err===$brk)return $brk.$v;throw err}else result=this.$$is_lambda?this.apply(null,args):Opal.yieldX(this,args);return result},$Proc_call$2.$$arity=-1),$alias(self,"[]","call"),$alias(self,"===","call"),$alias(self,"yield","call"),Opal.def(self,"$>>",$Proc_$gt$gt$3=function(other){var $$4,$iter=$Proc_$gt$gt$3.$$p;return $iter&&($Proc_$gt$gt$3.$$p=null),$send(this,"proc",[],(($$4=function($a){var out,self=null==$$4.$$s?this:$$4.$$s,$post_args=$$4.$$p,block=$post_args||nil;return $post_args&&($$4.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),out=$send(self,"call",Opal.to_a($post_args),block.$to_proc()),other.$call(out)}).$$s=this,$$4.$$arity=-1,$$4))},$Proc_$gt$gt$3.$$arity=1),Opal.def(self,"$<<",$Proc_$lt$lt$5=function(other){var $$6,$iter=$Proc_$lt$lt$5.$$p;return $iter&&($Proc_$lt$lt$5.$$p=null),$send(this,"proc",[],(($$6=function($a){var out,self=null==$$6.$$s?this:$$6.$$s,$post_args=$$6.$$p,block=$post_args||nil;return $post_args&&($$6.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),out=$send(other,"call",Opal.to_a($post_args),block.$to_proc()),self.$call(out)}).$$s=this,$$6.$$arity=-1,$$6))},$Proc_$lt$lt$5.$$arity=1),Opal.def(self,"$to_proc",$Proc_dup$14=function(){return this},$Proc_dup$14.$$arity=0),Opal.def(self,"$lambda?",$Proc_dup$14=function(){return!!this.$$is_lambda},$Proc_dup$14.$$arity=0),Opal.def(self,"$arity",$Proc_dup$14=function(){return this.$$is_curried?-1:this.$$arity},$Proc_dup$14.$$arity=0),Opal.def(self,"$source_location",$Proc_dup$14=function(){return this.$$is_curried,nil},$Proc_dup$14.$$arity=0),Opal.def(self,"$binding",$Proc_dup$14=function(){return this.$$is_curried&&this.$raise($$($nesting,"ArgumentError"),"Can't create Binding"),nil},$Proc_dup$14.$$arity=0),Opal.def(self,"$parameters",$Proc_dup$14=function(){if(this.$$is_curried)return[["rest"]];if(this.$$parameters){if(this.$$is_lambda)return this.$$parameters;for(var result=[],i=0,length=this.$$parameters.length;i>","$<<","$new","$class","$join","$source_location","$raise"]),function($Method_inspect$11,$Method_to_proc$10){var $Method_call$6,$nesting=[$Method_inspect$11=$klass($Method_inspect$11,null,"Method")].concat($Method_to_proc$10);$Method_inspect$11.$$prototype.method=$Method_inspect$11.$$prototype.receiver=$Method_inspect$11.$$prototype.owner=$Method_inspect$11.$$prototype.name=nil,$Method_inspect$11.$attr_reader("owner","receiver","name"),Opal.def($Method_inspect$11,"$initialize",$Method_to_proc$10=function(receiver,owner,method,name){return this.receiver=receiver,this.owner=owner,this.name=name,this.method=method},$Method_to_proc$10.$$arity=4),Opal.def($Method_inspect$11,"$arity",$Method_to_proc$10=function(){return this.method.$arity()},$Method_to_proc$10.$$arity=0),Opal.def($Method_inspect$11,"$parameters",$Method_to_proc$10=function(){return this.method.$$parameters},$Method_to_proc$10.$$arity=0),Opal.def($Method_inspect$11,"$source_location",$Method_to_proc$10=function(){var $ret_or_1;return $truthy($ret_or_1=this.method.$$source_location)?$ret_or_1:["(eval)",0]},$Method_to_proc$10.$$arity=0),Opal.def($Method_inspect$11,"$comments",$Method_to_proc$10=function(){var $ret_or_2;return $truthy($ret_or_2=this.method.$$comments)?$ret_or_2:[]},$Method_to_proc$10.$$arity=0),Opal.def($Method_inspect$11,"$call",$Method_call$6=function($a){var args=$Method_call$6.$$p,block=args||nil;return args&&($Method_call$6.$$p=null),args&&($Method_call$6.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),this.method.$$p=block,this.method.apply(this.receiver,args)},$Method_call$6.$$arity=-1),$alias($Method_inspect$11,"[]","call"),Opal.def($Method_inspect$11,"$>>",$Method_to_proc$10=function(other){return this.method["$>>"](other)},$Method_to_proc$10.$$arity=1),Opal.def($Method_inspect$11,"$<<",$Method_to_proc$10=function(other){return this.method["$<<"](other)},$Method_to_proc$10.$$arity=1),Opal.def($Method_inspect$11,"$unbind",$Method_to_proc$10=function(){return $$($nesting,"UnboundMethod").$new(this.receiver.$class(),this.owner,this.method,this.name)},$Method_to_proc$10.$$arity=0),Opal.def($Method_inspect$11,"$to_proc",$Method_to_proc$10=function(){var proc=this.$call.bind(this);return proc.$$unbound=this.method,proc.$$is_lambda=!0,proc.$$arity=this.method.$$arity,proc.$$parameters=this.method.$$parameters,proc},$Method_to_proc$10.$$arity=0),Opal.def($Method_inspect$11,"$inspect",$Method_inspect$11=function(){return"#<"+this.$class()+": "+this.receiver.$class()+"#"+this.name+" (defined in "+this.owner+" in "+this.$source_location().$join(":")+")>"},$Method_inspect$11.$$arity=0)}($nesting[0],$nesting),function($UnboundMethod_inspect$18,$UnboundMethod_bind$17){var $UnboundMethod_inspect$18=$klass($UnboundMethod_inspect$18,null,"UnboundMethod"),$nesting=[$UnboundMethod_inspect$18].concat($UnboundMethod_bind$17);return $UnboundMethod_inspect$18.$$prototype.method=$UnboundMethod_inspect$18.$$prototype.owner=$UnboundMethod_inspect$18.$$prototype.name=$UnboundMethod_inspect$18.$$prototype.source=nil,$UnboundMethod_inspect$18.$attr_reader("source","owner","name"),Opal.def($UnboundMethod_inspect$18,"$initialize",$UnboundMethod_bind$17=function(source,owner,method,name){return this.source=source,this.owner=owner,this.method=method,this.name=name},$UnboundMethod_bind$17.$$arity=4),Opal.def($UnboundMethod_inspect$18,"$arity",$UnboundMethod_bind$17=function(){return this.method.$arity()},$UnboundMethod_bind$17.$$arity=0),Opal.def($UnboundMethod_inspect$18,"$parameters",$UnboundMethod_bind$17=function(){return this.method.$$parameters},$UnboundMethod_bind$17.$$arity=0),Opal.def($UnboundMethod_inspect$18,"$source_location",$UnboundMethod_bind$17=function(){var $ret_or_3;return $truthy($ret_or_3=this.method.$$source_location)?$ret_or_3:["(eval)",0]},$UnboundMethod_bind$17.$$arity=0),Opal.def($UnboundMethod_inspect$18,"$comments",$UnboundMethod_bind$17=function(){var $ret_or_4;return $truthy($ret_or_4=this.method.$$comments)?$ret_or_4:[]},$UnboundMethod_bind$17.$$arity=0),Opal.def($UnboundMethod_inspect$18,"$bind",$UnboundMethod_bind$17=function(object){if(this.owner.$$is_module||Opal.is_a(object,this.owner))return $$($nesting,"Method").$new(object,this.owner,this.method,this.name);this.$raise($$($nesting,"TypeError"),"can't bind singleton method to a different class (expected "+object+".kind_of?("+this.owner+" to be true)")},$UnboundMethod_bind$17.$$arity=1),Opal.def($UnboundMethod_inspect$18,"$inspect",$UnboundMethod_inspect$18=function(){return"#<"+this.$class()+": "+this.source+"#"+this.name+" (defined in "+this.owner+" in "+this.$source_location().$join(":")+")>"},$UnboundMethod_inspect$18.$$arity=0),nil&&"inspect"}($nesting[0],$nesting)},Opal.modules["corelib/variables"]=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$gvars=Opal.gvars,$hash2=Opal.hash2;return Opal.add_stubs(["$new"]),$gvars["&"]=$gvars["~"]=$gvars["`"]=$gvars["'"]=nil,$gvars.LOADED_FEATURES=$gvars['"']=Opal.loaded_features,$gvars.LOAD_PATH=$gvars[":"]=[],$gvars["/"]="\n",$gvars[","]=nil,Opal.const_set($nesting[0],"ARGV",[]),Opal.const_set($nesting[0],"ARGF",$$($nesting,"Object").$new()),Opal.const_set($nesting[0],"ENV",$hash2([],{})),$gvars.VERBOSE=!1,$gvars.DEBUG=!1,$gvars.SAFE=0},Opal.modules["corelib/io"]=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$module=Opal.module,$gvars=Opal.gvars,$send=Opal.send;Opal.add_stubs(["$attr_accessor","$size","$write","$String","$chomp","$getbyte","$getc","$raise","$new","$write_proc=","$-","$extend"]),function($nesting,$Writable_print$6){var $Writable_puts$7,$nesting=[$Writable_puts$7=$klass($nesting,null,"IO")].concat($Writable_print$6);$Writable_puts$7.$$prototype.closed=nil,Opal.const_set($nesting[0],"SEEK_SET",0),Opal.const_set($nesting[0],"SEEK_CUR",1),Opal.const_set($nesting[0],"SEEK_END",2),Opal.def($Writable_puts$7,"$tty?",$Writable_print$6=function(){return 1==this.tty},$Writable_print$6.$$arity=0),Opal.def($Writable_puts$7,"$closed?",$Writable_print$6=function(){return this.closed},$Writable_print$6.$$arity=0),$Writable_puts$7.$attr_accessor("write_proc"),Opal.def($Writable_puts$7,"$write",$Writable_print$6=function(string){return this.write_proc(string),string.$size()},$Writable_print$6.$$arity=1),$Writable_puts$7.$attr_accessor("sync","tty"),Opal.def($Writable_puts$7,"$flush",$Writable_print$6=function(){return nil},$Writable_print$6.$$arity=0),$Writable_puts$7=$nesting[0],$Writable_print$6=$nesting,[$Writable_puts$7=$module($Writable_puts$7,"Writable")].concat($Writable_print$6),Opal.def($Writable_puts$7,"$<<",$Writable_print$6=function(string){return this.$write(string),this},$Writable_print$6.$$arity=1),Opal.def($Writable_puts$7,"$print",$Writable_print$6=function($a){var args;null==$gvars[","]&&($gvars[","]=nil);for(var i=0,ii=(args=Opal.slice.call(arguments,0,arguments.length)).length;i=args.length&&self.$raise($$($nesting,"ArgumentError"),"too few arguments"),args[num]}function GET_NEXT_ARG(){switch(pos_arg_num){case-1:self.$raise($$($nesting,"ArgumentError"),"unnumbered("+seq_arg_num+") mixed with numbered");case-2:self.$raise($$($nesting,"ArgumentError"),"unnumbered("+seq_arg_num+") mixed with named")}return GET_NTH_ARG((pos_arg_num=seq_arg_num++)-1)}function GET_POS_ARG(num){return 0":"}",hash_parameter_key="",i++;;i++){if(i===len&&self.$raise($$($nesting,"ArgumentError"),"malformed name - unmatched parenthesis"),format_string.charAt(i)===closing_brace_char){if(0"==closing_brace_char)continue format_sequence;if(str=next_arg.toString(),-1!==precision&&(str=str.slice(0,precision)),2&flags)for(;str.length>>0).toString(base_number).replace(base_neg_zero_regex,base_neg_zero_digit);str.length"},$Encoding_each_byte$12.$$arity=0),Opal.def($Encoding_bytesize$13,"$charsize",$Encoding_each_byte$12=function(string){for(var len=0,i=0,length=string.length;i>6|192),Opal.yield1(block,63&codePoint|128)}else if(codePoint<65536){if((units-=3)<0)break;Opal.yield1(block,codePoint>>12|224),Opal.yield1(block,codePoint>>6&63|128),Opal.yield1(block,63&codePoint|128)}else if(codePoint<1114112){if((units-=4)<0)break;Opal.yield1(block,codePoint>>18|240),Opal.yield1(block,codePoint>>12&63|128),Opal.yield1(block,codePoint>>6&63|128),Opal.yield1(block,63&codePoint|128)}}},$each_byte$15.$$arity=1),Opal.def($bytesize$16,"$bytesize",$bytesize$16=function(string){return string.$bytes().$length()},$bytesize$16.$$arity=1),nil&&"bytesize"}).$$s=self,$$14.$$arity=0,$$14)),$send($$($nesting,"Encoding"),"register",["UTF-16LE"],(($$17=function(){var $each_byte$18,$bytesize$19=null==$$17.$$s?this:$$17.$$s;return Opal.def($bytesize$19,"$each_byte",$each_byte$18=function(string){var $iter=$each_byte$18.$$p,block=$iter||nil;$iter&&($each_byte$18.$$p=null),$iter&&($each_byte$18.$$p=null);for(var i=0,length=string.length;i>8)}},$each_byte$18.$$arity=1),Opal.def($bytesize$19,"$bytesize",$bytesize$19=function(string){return 2*string.length},$bytesize$19.$$arity=1),nil&&"bytesize"}).$$s=self,$$17.$$arity=0,$$17)),$send($$($nesting,"Encoding"),"register",["UTF-16BE",$hash2(["inherits"],{inherits:$$$($$($nesting,"Encoding"),"UTF_16LE")})],(($$20=function(){var $each_byte$21,self=null==$$20.$$s?this:$$20.$$s;return Opal.def(self,"$each_byte",$each_byte$21=function(string){var $iter=$each_byte$21.$$p,block=$iter||nil;$iter&&($each_byte$21.$$p=null),$iter&&($each_byte$21.$$p=null);for(var i=0,length=string.length;i>8),Opal.yield1(block,255&code)}},$each_byte$21.$$arity=1),nil&&"each_byte"}).$$s=self,$$20.$$arity=0,$$20)),$send($$($nesting,"Encoding"),"register",["UTF-32LE"],(($$22=function(){var $each_byte$23,$bytesize$24=null==$$22.$$s?this:$$22.$$s;return Opal.def($bytesize$24,"$each_byte",$each_byte$23=function(string){var $iter=$each_byte$23.$$p,block=$iter||nil;$iter&&($each_byte$23.$$p=null),$iter&&($each_byte$23.$$p=null);for(var i=0,length=string.length;i>8),Opal.yield1(block,0),Opal.yield1(block,0)}},$each_byte$23.$$arity=1),Opal.def($bytesize$24,"$bytesize",$bytesize$24=function(string){return 4*string.length},$bytesize$24.$$arity=1),nil&&"bytesize"}).$$s=self,$$22.$$arity=0,$$22)),$send($$($nesting,"Encoding"),"register",["UTF-32BE",$hash2(["inherits"],{inherits:$$$($$($nesting,"Encoding"),"UTF_32LE")})],(($$25=function(){var $each_byte$26,self=null==$$25.$$s?this:$$25.$$s;return Opal.def(self,"$each_byte",$each_byte$26=function(string){var $iter=$each_byte$26.$$p,block=$iter||nil;$iter&&($each_byte$26.$$p=null),$iter&&($each_byte$26.$$p=null);for(var i=0,length=string.length;i>8),Opal.yield1(block,255&code)}},$each_byte$26.$$arity=1),nil&&"each_byte"}).$$s=self,$$25.$$arity=0,$$25)),$send($$($nesting,"Encoding"),"register",["ASCII-8BIT",$hash2(["aliases","ascii"],{aliases:["BINARY"],ascii:!0})],(($$27=function(){var $each_char$28,$each_byte$30,$bytesize$31,$binary$ques$32=null==$$27.$$s?this:$$27.$$s;return Opal.def($binary$ques$32,"$each_char",$each_char$28=function(string){var $iter=$each_char$28.$$p,block=$iter||nil;$iter&&($each_char$28.$$p=null),$iter&&($each_char$28.$$p=null);for(var i=0,length=string.length;i","$!=","$divmod","$**","$hypot","$atan2","$lcm","$denominator","$finite?","$infinite?","$numerator","$abs","$arg","$rationalize","$to_f","$to_i","$to_r","$inspect","$positive?","$zero?","$Rational"]),self.$require("corelib/numeric"),function($base,self,$Complex_to_s$31){var $nesting=[self=$klass($base,self,"Complex")].concat($Complex_to_s$31);self.$$prototype.real=self.$$prototype.imag=nil,Opal.defs(self,"$rect",$Complex_to_s$31=function(real,imag){var $ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return null==imag&&(imag=0),$truthy($truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=$$($nesting,"Numeric")["$==="](real))?real["$real?"]():$ret_or_3)?$$($nesting,"Numeric")["$==="](imag):$ret_or_2)?imag["$real?"]():$ret_or_1)||this.$raise($$($nesting,"TypeError"),"not a real"),this.$new(real,imag)},$Complex_to_s$31.$$arity=-2),function(self,$parent_nesting){[self].concat($parent_nesting),$alias(self,"rectangular","rect")}(Opal.get_singleton_class(self),$nesting),Opal.defs(self,"$polar",$Complex_to_s$31=function(r,theta){var $ret_or_4=nil,$ret_or_5=nil,$ret_or_6=nil;return null==theta&&(theta=0),$truthy($truthy($ret_or_4=$truthy($ret_or_5=$truthy($ret_or_6=$$($nesting,"Numeric")["$==="](r))?r["$real?"]():$ret_or_6)?$$($nesting,"Numeric")["$==="](theta):$ret_or_5)?theta["$real?"]():$ret_or_4)||this.$raise($$($nesting,"TypeError"),"not a real"),this.$new($rb_times(r,$$($nesting,"Math").$cos(theta)),$rb_times(r,$$($nesting,"Math").$sin(theta)))},$Complex_to_s$31.$$arity=-2),self.$attr_reader("real","imag"),Opal.def(self,"$initialize",$Complex_to_s$31=function(real,imag){return null==imag&&(imag=0),this.real=real,this.imag=imag},$Complex_to_s$31.$$arity=-2),Opal.def(self,"$coerce",$Complex_to_s$31=function(other){var $ret_or_7=nil;return $truthy($$($nesting,"Complex")["$==="](other))?[other,this]:$truthy($truthy($ret_or_7=$$($nesting,"Numeric")["$==="](other))?other["$real?"]():$ret_or_7)?[$$($nesting,"Complex").$new(other,0),this]:this.$raise($$($nesting,"TypeError"),other.$class()+" can't be coerced into Complex")},$Complex_to_s$31.$$arity=1),Opal.def(self,"$==",$Complex_to_s$31=function(other){var $ret_or_8,$ret_or_10,$ret_or_9=nil;return $truthy($$($nesting,"Complex")["$==="](other))?$truthy($ret_or_8=this.real["$=="](other.$real()))?this.imag["$=="](other.$imag()):$ret_or_8:$truthy($truthy($ret_or_9=$$($nesting,"Numeric")["$==="](other))?other["$real?"]():$ret_or_9)?$truthy($ret_or_10=this.real["$=="](other))?this.imag["$=="](0):$ret_or_10:other["$=="](this)},$Complex_to_s$31.$$arity=1),Opal.def(self,"$-@",$Complex_to_s$31=function(){return this.$Complex(this.real["$-@"](),this.imag["$-@"]())},$Complex_to_s$31.$$arity=0),Opal.def(self,"$+",$Complex_to_s$31=function(other){var $ret_or_11=nil;return $truthy($$($nesting,"Complex")["$==="](other))?this.$Complex($rb_plus(this.real,other.$real()),$rb_plus(this.imag,other.$imag())):$truthy($truthy($ret_or_11=$$($nesting,"Numeric")["$==="](other))?other["$real?"]():$ret_or_11)?this.$Complex($rb_plus(this.real,other),this.imag):this.$__coerced__("+",other)},$Complex_to_s$31.$$arity=1),Opal.def(self,"$-",$Complex_to_s$31=function(other){var $ret_or_12=nil;return $truthy($$($nesting,"Complex")["$==="](other))?this.$Complex($rb_minus(this.real,other.$real()),$rb_minus(this.imag,other.$imag())):$truthy($truthy($ret_or_12=$$($nesting,"Numeric")["$==="](other))?other["$real?"]():$ret_or_12)?this.$Complex($rb_minus(this.real,other),this.imag):this.$__coerced__("-",other)},$Complex_to_s$31.$$arity=1),Opal.def(self,"$*",$Complex_to_s$31=function(other){var $ret_or_13=nil;return $truthy($$($nesting,"Complex")["$==="](other))?this.$Complex($rb_minus($rb_times(this.real,other.$real()),$rb_times(this.imag,other.$imag())),$rb_plus($rb_times(this.real,other.$imag()),$rb_times(this.imag,other.$real()))):$truthy($truthy($ret_or_13=$$($nesting,"Numeric")["$==="](other))?other["$real?"]():$ret_or_13)?this.$Complex($rb_times(this.real,other),$rb_times(this.imag,other)):this.$__coerced__("*",other)},$Complex_to_s$31.$$arity=1),Opal.def(self,"$/",$Complex_to_s$31=function(other){var self=this,$ret_or_14=nil,$ret_or_15=nil,$ret_or_16=nil,$ret_or_17=nil,$ret_or_18=nil,$ret_or_19=nil,$ret_or_20=nil,$ret_or_21=nil;return $truthy($$($nesting,"Complex")["$==="](other))?$truthy($truthy($ret_or_14=$truthy($ret_or_15=$truthy($ret_or_16=$truthy($ret_or_17=$$($nesting,"Number")["$==="](self.real))?self.real["$nan?"]():$ret_or_17)?$ret_or_16:$truthy($ret_or_18=$$($nesting,"Number")["$==="](self.imag))?self.imag["$nan?"]():$ret_or_18)?$ret_or_15:$truthy($ret_or_19=$$($nesting,"Number")["$==="](other.$real()))?other.$real()["$nan?"]():$ret_or_19)?$ret_or_14:$truthy($ret_or_20=$$($nesting,"Number")["$==="](other.$imag()))?other.$imag()["$nan?"]():$ret_or_20)?$$($nesting,"Complex").$new($$$($$($nesting,"Float"),"NAN"),$$$($$($nesting,"Float"),"NAN")):$rb_divide($rb_times(self,other.$conj()),other.$abs2()):$truthy($truthy($ret_or_21=$$($nesting,"Numeric")["$==="](other))?other["$real?"]():$ret_or_21)?self.$Complex(self.real.$quo(other),self.imag.$quo(other)):self.$__coerced__("/",other)},$Complex_to_s$31.$$arity=1),Opal.def(self,"$**",$Complex_to_s$31=function(other){var $a,$b,$c,$d,ore,oim,r=nil,theta=nil,rhs=nil,lhs=nil,x=nil,z=nil,n=nil,div=nil,mod=nil,$ret_or_22=nil;if(other["$=="](0))return $$($nesting,"Complex").$new(1,0);if($truthy($$($nesting,"Complex")["$==="](other)))return $b=this.$polar(),r=null==($a=Opal.to_ary($b))[0]?nil:$a[0],theta=null==$a[1]?nil:$a[1],ore=other.$real(),oim=other.$imag(),rhs=$$($nesting,"Math").$exp($rb_minus($rb_times(ore,$$($nesting,"Math").$log(r)),$rb_times(oim,theta))),lhs=$rb_plus($rb_times(theta,ore),$rb_times(oim,$$($nesting,"Math").$log(r))),$$($nesting,"Complex").$polar(rhs,lhs);if($truthy($$($nesting,"Integer")["$==="](other))){if($truthy((rhs=0,"number"==typeof(lhs=other)&&"number"==typeof rhs?rhs"](rhs)))){for(z=x=this,n=$rb_minus(other,1);$truthy(n["$!="](0));){for($c=n.$divmod(2),div=null==($b=Opal.to_ary($c))[0]?nil:$b[0],mod=null==$b[1]?nil:$b[1];mod["$=="](0);)x=this.$Complex($rb_minus($rb_times(x.$real(),x.$real()),$rb_times(x.$imag(),x.$imag())),$rb_times($rb_times(2,x.$real()),x.$imag())),$d=(n=div).$divmod(2),div=null==($c=Opal.to_ary($d))[0]?nil:$c[0],mod=null==$c[1]?nil:$c[1];z=$rb_times(z,x),n=$rb_minus(n,1)}return z}return $rb_divide($$($nesting,"Rational").$new(1,1),this)["$**"](other["$-@"]())}return $truthy($truthy($ret_or_22=$$($nesting,"Float")["$==="](other))?$ret_or_22:$$($nesting,"Rational")["$==="](other))?($b=this.$polar(),r=null==($a=Opal.to_ary($b))[0]?nil:$a[0],theta=null==$a[1]?nil:$a[1],$$($nesting,"Complex").$polar(r["$**"](other),$rb_times(theta,other))):this.$__coerced__("**",other)},$Complex_to_s$31.$$arity=1),Opal.def(self,"$abs",$Complex_to_s$31=function(){return $$($nesting,"Math").$hypot(this.real,this.imag)},$Complex_to_s$31.$$arity=0),Opal.def(self,"$abs2",$Complex_to_s$31=function(){return $rb_plus($rb_times(this.real,this.real),$rb_times(this.imag,this.imag))},$Complex_to_s$31.$$arity=0),Opal.def(self,"$angle",$Complex_to_s$31=function(){return $$($nesting,"Math").$atan2(this.imag,this.real)},$Complex_to_s$31.$$arity=0),$alias(self,"arg","angle"),Opal.def(self,"$conj",$Complex_to_s$31=function(){return this.$Complex(this.real,this.imag["$-@"]())},$Complex_to_s$31.$$arity=0),$alias(self,"conjugate","conj"),Opal.def(self,"$denominator",$Complex_to_s$31=function(){return this.real.$denominator().$lcm(this.imag.$denominator())},$Complex_to_s$31.$$arity=0),$alias(self,"divide","/"),Opal.def(self,"$eql?",$Complex_to_s$31=function(other){var $ret_or_23,self=this,$ret_or_24=nil;return $truthy($ret_or_23=$truthy($ret_or_24=$$($nesting,"Complex")["$==="](other))?self.real.$class()["$=="](self.imag.$class()):$ret_or_24)?self["$=="](other):$ret_or_23},$Complex_to_s$31.$$arity=1),Opal.def(self,"$fdiv",$Complex_to_s$31=function(other){return $truthy($$($nesting,"Numeric")["$==="](other))||this.$raise($$($nesting,"TypeError"),other.$class()+" can't be coerced into Complex"),$rb_divide(this,other)},$Complex_to_s$31.$$arity=1),Opal.def(self,"$finite?",$Complex_to_s$31=function(){var $ret_or_25;return $truthy($ret_or_25=this.real["$finite?"]())?this.imag["$finite?"]():$ret_or_25},$Complex_to_s$31.$$arity=0),Opal.def(self,"$hash",$Complex_to_s$31=function(){return"Complex:"+this.real+":"+this.imag},$Complex_to_s$31.$$arity=0),$alias(self,"imaginary","imag"),Opal.def(self,"$infinite?",$Complex_to_s$31=function(){var $ret_or_26;return $truthy($ret_or_26=this.real["$infinite?"]())?$ret_or_26:this.imag["$infinite?"]()},$Complex_to_s$31.$$arity=0),Opal.def(self,"$inspect",$Complex_to_s$31=function(){return"("+this+")"},$Complex_to_s$31.$$arity=0),$alias(self,"magnitude","abs"),Opal.udef(self,"$negative?"),Opal.def(self,"$numerator",$Complex_to_s$31=function(){var d=this.$denominator();return this.$Complex($rb_times(this.real.$numerator(),$rb_divide(d,this.real.$denominator())),$rb_times(this.imag.$numerator(),$rb_divide(d,this.imag.$denominator())))},$Complex_to_s$31.$$arity=0),$alias(self,"phase","arg"),Opal.def(self,"$polar",$Complex_to_s$31=function(){return[this.$abs(),this.$arg()]},$Complex_to_s$31.$$arity=0),Opal.udef(self,"$positive?"),$alias(self,"quo","/"),Opal.def(self,"$rationalize",$Complex_to_s$31=function(eps){return 1","$-","$*","$__coerced__","$+","$Rational","$>","$**","$abs","$ceil","$with_precision","$floor","$<=","$truncate","$send","$convert"]),self.$require("corelib/numeric"),function($base,$Rational_with_precision$26,$Rational_truncate$25){var $nesting=[$Rational_with_precision$26=$klass($base,$Rational_with_precision$26,"Rational")].concat($Rational_truncate$25);$Rational_with_precision$26.$$prototype.num=$Rational_with_precision$26.$$prototype.den=nil,Opal.defs($Rational_with_precision$26,"$reduce",$Rational_truncate$25=function(num,den){var gcd;if(num=num.$to_i(),(den=den.$to_i())["$=="](0))this.$raise($$($nesting,"ZeroDivisionError"),"divided by 0");else if($truthy($rb_lt(den,0)))num=num["$-@"](),den=den["$-@"]();else if(den["$=="](1))return this.$new(num,den);return gcd=num.$gcd(den),this.$new($rb_divide(num,gcd),$rb_divide(den,gcd))},$Rational_truncate$25.$$arity=2),Opal.defs($Rational_with_precision$26,"$convert",$Rational_truncate$25=function(num,den){var $ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil,$ret_or_6=nil,$ret_or_7=nil,$ret_or_8=nil;return $truthy($truthy($ret_or_1=num["$nil?"]())?$ret_or_1:den["$nil?"]())&&this.$raise($$($nesting,"TypeError"),"cannot convert nil into Rational"),$truthy($truthy($ret_or_2=$$($nesting,"Integer")["$==="](num))?$$($nesting,"Integer")["$==="](den):$ret_or_2)?this.$reduce(num,den):($truthy($truthy($ret_or_3=$truthy($ret_or_4=$$($nesting,"Float")["$==="](num))?$ret_or_4:$$($nesting,"String")["$==="](num))?$ret_or_3:$$($nesting,"Complex")["$==="](num))&&(num=num.$to_r()),$truthy($truthy($ret_or_5=$truthy($ret_or_6=$$($nesting,"Float")["$==="](den))?$ret_or_6:$$($nesting,"String")["$==="](den))?$ret_or_5:$$($nesting,"Complex")["$==="](den))&&(den=den.$to_r()),$truthy($truthy($ret_or_7=den["$equal?"](1))?$$($nesting,"Integer")["$==="](num)["$!"]():$ret_or_7)?$$($nesting,"Opal")["$coerce_to!"](num,$$($nesting,"Rational"),"to_r"):$truthy($truthy($ret_or_8=$$($nesting,"Numeric")["$==="](num))?$$($nesting,"Numeric")["$==="](den):$ret_or_8)?$rb_divide(num,den):this.$reduce(num,den))},$Rational_truncate$25.$$arity=2),Opal.def($Rational_with_precision$26,"$initialize",$Rational_truncate$25=function(num,den){return this.num=num,this.den=den},$Rational_truncate$25.$$arity=2),Opal.def($Rational_with_precision$26,"$numerator",$Rational_truncate$25=function(){return this.num},$Rational_truncate$25.$$arity=0),Opal.def($Rational_with_precision$26,"$denominator",$Rational_truncate$25=function(){return this.den},$Rational_truncate$25.$$arity=0),Opal.def($Rational_with_precision$26,"$coerce",$Rational_truncate$25=function(other){var self=this,$case=nil;return $case=other,$$($nesting,"Rational")["$==="]($case)?[other,self]:$$($nesting,"Integer")["$==="]($case)?[other.$to_r(),self]:$$($nesting,"Float")["$==="]($case)?[other,self.$to_f()]:nil},$Rational_truncate$25.$$arity=1),Opal.def($Rational_with_precision$26,"$==",$Rational_truncate$25=function(other){var self=this,$case=nil,$ret_or_9=nil,$ret_or_10=nil;return $case=other,$$($nesting,"Rational")["$==="]($case)?$truthy($ret_or_9=self.num["$=="](other.$numerator()))?self.den["$=="](other.$denominator()):$ret_or_9:$$($nesting,"Integer")["$==="]($case)?$truthy($ret_or_10=self.num["$=="](other))?self.den["$=="](1):$ret_or_10:$$($nesting,"Float")["$==="]($case)?self.$to_f()["$=="](other):other["$=="](self)},$Rational_truncate$25.$$arity=1),Opal.def($Rational_with_precision$26,"$<=>",$Rational_truncate$25=function(other){var self=this,$case=nil;return $case=other,$$($nesting,"Rational")["$==="]($case)?$rb_minus($rb_times(self.num,other.$denominator()),$rb_times(self.den,other.$numerator()))["$<=>"](0):$$($nesting,"Integer")["$==="]($case)?$rb_minus(self.num,$rb_times(self.den,other))["$<=>"](0):$$($nesting,"Float")["$==="]($case)?self.$to_f()["$<=>"](other):self.$__coerced__("<=>",other)},$Rational_truncate$25.$$arity=1),Opal.def($Rational_with_precision$26,"$+",$Rational_truncate$25=function(other){var self=this,$case=nil,num=nil,den=nil;return $case=other,$$($nesting,"Rational")["$==="]($case)?(num=$rb_plus($rb_times(self.num,other.$denominator()),$rb_times(self.den,other.$numerator())),den=$rb_times(self.den,other.$denominator()),self.$Rational(num,den)):$$($nesting,"Integer")["$==="]($case)?self.$Rational($rb_plus(self.num,$rb_times(other,self.den)),self.den):$$($nesting,"Float")["$==="]($case)?$rb_plus(self.$to_f(),other):self.$__coerced__("+",other)},$Rational_truncate$25.$$arity=1),Opal.def($Rational_with_precision$26,"$-",$Rational_truncate$25=function(other){var self=this,$case=nil,num=nil,den=nil;return $case=other,$$($nesting,"Rational")["$==="]($case)?(num=$rb_minus($rb_times(self.num,other.$denominator()),$rb_times(self.den,other.$numerator())),den=$rb_times(self.den,other.$denominator()),self.$Rational(num,den)):$$($nesting,"Integer")["$==="]($case)?self.$Rational($rb_minus(self.num,$rb_times(other,self.den)),self.den):$$($nesting,"Float")["$==="]($case)?$rb_minus(self.$to_f(),other):self.$__coerced__("-",other)},$Rational_truncate$25.$$arity=1),Opal.def($Rational_with_precision$26,"$*",$Rational_truncate$25=function(other){var self=this,$case=nil,num=nil,den=nil;return $case=other,$$($nesting,"Rational")["$==="]($case)?(num=$rb_times(self.num,other.$numerator()),den=$rb_times(self.den,other.$denominator()),self.$Rational(num,den)):$$($nesting,"Integer")["$==="]($case)?self.$Rational($rb_times(self.num,other),self.den):$$($nesting,"Float")["$==="]($case)?$rb_times(self.$to_f(),other):self.$__coerced__("*",other)},$Rational_truncate$25.$$arity=1),Opal.def($Rational_with_precision$26,"$/",$Rational_truncate$25=function(other){var self=this,$case=nil,num=nil,den=nil;return $case=other,$$($nesting,"Rational")["$==="]($case)?(num=$rb_times(self.num,other.$denominator()),den=$rb_times(self.den,other.$numerator()),self.$Rational(num,den)):$$($nesting,"Integer")["$==="]($case)?other["$=="](0)?$rb_divide(self.$to_f(),0):self.$Rational(self.num,$rb_times(self.den,other)):$$($nesting,"Float")["$==="]($case)?$rb_divide(self.$to_f(),other):self.$__coerced__("/",other)},$Rational_truncate$25.$$arity=1),Opal.def($Rational_with_precision$26,"$**",$Rational_truncate$25=function(other){var $case,rhs,self=this,lhs=nil,$ret_or_12=nil;return $case=other,$$($nesting,"Integer")["$==="]($case)?$truthy($truthy(lhs=self["$=="](0))?$rb_lt(other,0):lhs)?$$$($$($nesting,"Float"),"INFINITY"):$truthy((rhs=0,"number"==typeof(lhs=other)&&"number"==typeof rhs?rhs"](rhs)))?self.$Rational(self.num["$**"](other),self.den["$**"](other)):$truthy($rb_lt(other,0))?self.$Rational(self.den["$**"](other["$-@"]()),self.num["$**"](other["$-@"]())):self.$Rational(1,1):$$($nesting,"Float")["$==="]($case)?self.$to_f()["$**"](other):$$($nesting,"Rational")["$==="]($case)?other["$=="](0)?self.$Rational(1,1):other.$denominator()["$=="](1)?$truthy($rb_lt(other,0))?self.$Rational(self.den["$**"](other.$numerator().$abs()),self.num["$**"](other.$numerator().$abs())):self.$Rational(self.num["$**"](other.$numerator()),self.den["$**"](other.$numerator())):$truthy($truthy($ret_or_12=self["$=="](0))?$rb_lt(other,0):$ret_or_12)?self.$raise($$($nesting,"ZeroDivisionError"),"divided by 0"):self.$to_f()["$**"](other):self.$__coerced__("**",other)},$Rational_truncate$25.$$arity=1),Opal.def($Rational_with_precision$26,"$abs",$Rational_truncate$25=function(){return this.$Rational(this.num.$abs(),this.den.$abs())},$Rational_truncate$25.$$arity=0),Opal.def($Rational_with_precision$26,"$ceil",$Rational_truncate$25=function(precision){return null==precision&&(precision=0),precision["$=="](0)?$rb_divide(this.num["$-@"](),this.den)["$-@"]().$ceil():this.$with_precision("ceil",precision)},$Rational_truncate$25.$$arity=-1),$alias($Rational_with_precision$26,"divide","/"),Opal.def($Rational_with_precision$26,"$floor",$Rational_truncate$25=function(precision){return null==precision&&(precision=0),precision["$=="](0)?$rb_divide(this.num["$-@"](),this.den)["$-@"]().$floor():this.$with_precision("floor",precision)},$Rational_truncate$25.$$arity=-1),Opal.def($Rational_with_precision$26,"$hash",$Rational_truncate$25=function(){return"Rational:"+this.num+":"+this.den},$Rational_truncate$25.$$arity=0),Opal.def($Rational_with_precision$26,"$inspect",$Rational_truncate$25=function(){return"("+this+")"},$Rational_truncate$25.$$arity=0),$alias($Rational_with_precision$26,"quo","/"),Opal.def($Rational_with_precision$26,"$rationalize",$Rational_truncate$25=function(eps){if(1","$to_f","$nil?","$>","$<","$strftime","$year","$month","$day","$+","$round","$/","$-","$copy_instance_variables","$initialize_dup","$is_a?","$zero?","$wday","$utc?","$mon","$yday","$hour","$min","$sec","$rjust","$ljust","$zone","$to_s","$[]","$cweek_cyear","$isdst","$<=","$!=","$==","$ceil"]),self.$require("corelib/comparable"),function($base,$super,$Time_cweek_cyear$42){var self=$klass($base,$super,"Time"),$nesting=[self].concat($Time_cweek_cyear$42);self.$include($$($nesting,"Comparable"));var days_of_week=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],short_days=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],short_months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long_months=["January","February","March","April","May","June","July","August","September","October","November","December"];function time_params(year,month,day,hour,min,sec){if(year=year.$$is_string?parseInt(year,10):$$($nesting,"Opal")["$coerce_to!"](year,$$($nesting,"Integer"),"to_int"),month===nil)month=1;else if(!month.$$is_number)if(month["$respond_to?"]("to_str"))switch((month=month.$to_str()).toLowerCase()){case"jan":month=1;break;case"feb":month=2;break;case"mar":month=3;break;case"apr":month=4;break;case"may":month=5;break;case"jun":month=6;break;case"jul":month=7;break;case"aug":month=8;break;case"sep":month=9;break;case"oct":month=10;break;case"nov":month=11;break;case"dec":month=12;break;default:month=month.$to_i()}else month=$$($nesting,"Opal")["$coerce_to!"](month,$$($nesting,"Integer"),"to_int");return(month<1||12",$Time_cweek_cyear$42=function(lhs){var rhs,r=nil;return $truthy($$($nesting,"Time")["$==="](lhs))?this.$to_f()["$<=>"](lhs.$to_f()):(r=lhs["$<=>"](this),$truthy(r["$nil?"]())?nil:$truthy((rhs=0,"number"==typeof(lhs=r)&&"number"==typeof rhs?rhs"](rhs)))?-1:$truthy(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs"](other)["$zero?"]():$ret_or_2},$Time_cweek_cyear$42.$$arity=1),Opal.def(self,"$friday?",$Time_cweek_cyear$42=function(){return 5==this.$wday()},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$hash",$Time_cweek_cyear$42=function(){return"Time:"+this.getTime()},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$hour",$Time_cweek_cyear$42=function(){return this.is_utc?this.getUTCHours():this.getHours()},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$inspect",$Time_cweek_cyear$42=function(){return $truthy(this["$utc?"]())?this.$strftime("%Y-%m-%d %H:%M:%S UTC"):this.$strftime("%Y-%m-%d %H:%M:%S %z")},$Time_cweek_cyear$42.$$arity=0),$alias(self,"mday","day"),Opal.def(self,"$min",$Time_cweek_cyear$42=function(){return this.is_utc?this.getUTCMinutes():this.getMinutes()},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$mon",$Time_cweek_cyear$42=function(){return(this.is_utc?this.getUTCMonth():this.getMonth())+1},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$monday?",$Time_cweek_cyear$42=function(){return 1==this.$wday()},$Time_cweek_cyear$42.$$arity=0),$alias(self,"month","mon"),Opal.def(self,"$saturday?",$Time_cweek_cyear$42=function(){return 6==this.$wday()},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$sec",$Time_cweek_cyear$42=function(){return this.is_utc?this.getUTCSeconds():this.getSeconds()},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$succ",$Time_cweek_cyear$42=function(){var result=new Date(this.getTime()+1e3);return result.is_utc=this.is_utc,result},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$usec",$Time_cweek_cyear$42=function(){return 1e3*this.getMilliseconds()},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$zone",$Time_cweek_cyear$42=function(){var string=this.toString(),result=-1==string.indexOf("(")?string.match(/[A-Z]{3,4}/)[0]:string.match(/\((.+)\)(?:\s|$)/)[1];return"GMT"==result&&/(GMT\W*\d{4})/.test(string)?RegExp.$1:result},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$getgm",$Time_cweek_cyear$42=function(){var result=new Date(this.getTime());return result.is_utc=!0,result},$Time_cweek_cyear$42.$$arity=0),$alias(self,"getutc","getgm"),Opal.def(self,"$gmtime",$Time_cweek_cyear$42=function(){return this.is_utc=!0,this},$Time_cweek_cyear$42.$$arity=0),$alias(self,"utc","gmtime"),Opal.def(self,"$gmt?",$Time_cweek_cyear$42=function(){return!0===this.is_utc},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$gmt_offset",$Time_cweek_cyear$42=function(){return this.is_utc?0:60*-this.getTimezoneOffset()},$Time_cweek_cyear$42.$$arity=0),Opal.def(self,"$strftime",$Time_cweek_cyear$42=function(format){var self=this;return format.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,function(full,flags,width,_,conv){var result="",zero=-1!==flags.indexOf("0"),pad=-1===flags.indexOf("-"),blank=-1!==flags.indexOf("_"),upcase=-1!==flags.indexOf("^"),invert=-1!==flags.indexOf("#"),colons=(flags.match(":")||[]).length;switch(width=parseInt(width,10),zero&&blank&&(flags.indexOf("0")"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs="](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$require","$include","$==","$class","$!=","$upcase","$[]","$unshift","$const_name!","$map","$coerce_to!","$new","$each","$define_struct_attribute","$allocate","$initialize","$alias_method","$module_eval","$to_proc","$const_set","$raise","$<<","$members","$define_method","$instance_eval","$last","$>","$length","$-","$keys","$any?","$join","$[]=","$each_with_index","$hash","$===","$<","$-@","$size","$>=","$include?","$to_sym","$instance_of?","$__id__","$eql?","$enum_for","$name","$+","$each_pair","$inspect","$to_h","$args","$each_with_object","$flatten","$to_a","$respond_to?","$dig"]),self.$require("corelib/enumerable"),function($Struct_dig$37,$Struct_values_at$35){var $Struct_new$1,$Struct_each$22,$Struct_each_pair$25,$Struct_to_h$33,$Struct_dig$37=$klass($Struct_dig$37,null,"Struct"),$nesting=[$Struct_dig$37].concat($Struct_values_at$35);return $Struct_dig$37.$include($$($nesting,"Enumerable")),Opal.defs($Struct_dig$37,"$new",$Struct_new$1=function(const_name,$a,$b){var $post_args,args,$$2,$$3,keyword_init=$Struct_new$1.$$p,block=keyword_init||nil,$ret_or_1=nil,klass=nil;if(keyword_init&&($Struct_new$1.$$p=null),keyword_init&&($Struct_new$1.$$p=null),$post_args=Opal.slice.call(arguments,1,arguments.length),null==(keyword_init=Opal.extract_kwargs($post_args)))keyword_init=$hash2([],{});else if(!keyword_init.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(args=$post_args,null==(keyword_init=keyword_init.$$smap.keyword_init)&&(keyword_init=!1),$truthy(const_name))if($truthy($truthy($ret_or_1=const_name.$class()["$=="]($$($nesting,"String")))?const_name["$[]"](0).$upcase()["$!="](const_name["$[]"](0)):$ret_or_1))args.$unshift(const_name),const_name=nil;else try{const_name=$$($nesting,"Opal")["$const_name!"](const_name)}catch($err){if(!Opal.rescue($err,[$$($nesting,"TypeError"),$$($nesting,"NameError")]))throw $err;try{args.$unshift(const_name),const_name=nil}finally{Opal.pop_exception()}}return $send(args,"map",[],(($$2=function(arg){null==$$2.$$s||$$2.$$s;return null==arg&&(arg=nil),$$($nesting,"Opal")["$coerce_to!"](arg,$$($nesting,"String"),"to_str")}).$$s=this,$$2.$$arity=1,$$2)),klass=$send($$($nesting,"Class"),"new",[this],(($$3=function(){var $$4,self=null==$$3.$$s?this:$$3.$$s;return $send(args,"each",[],(($$4=function(arg){var self=null==$$4.$$s?this:$$4.$$s;return null==arg&&(arg=nil),self.$define_struct_attribute(arg)}).$$s=self,$$4.$$arity=1,$$4)),function(self,$new$5){[self].concat($new$5);return Opal.def(self,"$new",$new$5=function($a){var instance=nil,args=Opal.slice.call(arguments,0,arguments.length);return(instance=this.$allocate()).$$data={},$send(instance,"initialize",Opal.to_a(args)),instance},$new$5.$$arity=-1),self.$alias_method("[]","new")}(Opal.get_singleton_class(self),$nesting)}).$$s=this,$$3.$$arity=0,$$3)),$truthy(block)&&$send(klass,"module_eval",[],block.$to_proc()),klass.$$keyword_init=keyword_init,$truthy(const_name)&&$$($nesting,"Struct").$const_set(const_name,klass),klass},$Struct_new$1.$$arity=-2),Opal.defs($Struct_dig$37,"$define_struct_attribute",$Struct_values_at$35=function(name){var $$7,$$8;return this["$=="]($$($nesting,"Struct"))&&this.$raise($$($nesting,"ArgumentError"),"you cannot define attributes to the Struct class"),this.$members()["$<<"](name),$send(this,"define_method",[name],(($$7=function(){return(null==$$7.$$s?this:$$7.$$s).$$data[name]}).$$s=this,$$7.$$arity=0,$$7)),$send(this,"define_method",[name+"="],(($$8=function(value){var self=null==$$8.$$s?this:$$8.$$s;return null==value&&(value=nil),self.$$data[name]=value}).$$s=this,$$8.$$arity=1,$$8))},$Struct_values_at$35.$$arity=1),Opal.defs($Struct_dig$37,"$members",$Struct_values_at$35=function(){var self=this,$ret_or_2=nil;return null==self.members&&(self.members=nil),self["$=="]($$($nesting,"Struct"))&&self.$raise($$($nesting,"ArgumentError"),"the Struct class has no members"),self.members=$truthy($ret_or_2=self.members)?$ret_or_2:[]},$Struct_values_at$35.$$arity=0),Opal.defs($Struct_dig$37,"$inherited",$Struct_values_at$35=function(klass){var $$11,members;return null==this.members&&(this.members=nil),members=this.members,$send(klass,"instance_eval",[],(($$11=function(){return(null==$$11.$$s?this:$$11.$$s).members=members}).$$s=this,$$11.$$arity=0,$$11))},$Struct_values_at$35.$$arity=1),Opal.def($Struct_dig$37,"$initialize",$Struct_values_at$35=function($a){var $$13,$$14,kwargs=nil,$ret_or_3=nil,$ret_or_4=nil,extra=nil,args=Opal.slice.call(arguments,0,arguments.length);return $truthy(this.$class().$$keyword_init)?(kwargs=$truthy($ret_or_3=args.$last())?$ret_or_3:$hash2([],{}),$truthy($truthy($ret_or_4=$rb_gt(args.$length(),1))?$ret_or_4:1===args.length&&!kwargs.$$is_hash)&&this.$raise($$($nesting,"ArgumentError"),"wrong number of arguments (given "+args.$length()+", expected 0)"),extra=$rb_minus(kwargs.$keys(),this.$class().$members()),$truthy(extra["$any?"]())&&this.$raise($$($nesting,"ArgumentError"),"unknown keywords: "+extra.$join(", ")),$send(this.$class().$members(),"each",[],(($$13=function(name){var $writer,self=null==$$13.$$s?this:$$13.$$s;return null==name&&(name=nil),$writer=[name,kwargs["$[]"](name)],$send(self,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$13.$$arity=1,$$13))):($truthy($rb_gt(args.$length(),this.$class().$members().$length()))&&this.$raise($$($nesting,"ArgumentError"),"struct size differs"),$send(this.$class().$members(),"each_with_index",[],(($$14=function(name,index){var $writer,self=null==$$14.$$s?this:$$14.$$s;return null==name&&(name=nil),null==index&&(index=nil),$writer=[name,args["$[]"](index)],$send(self,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$14.$$arity=2,$$14)))},$Struct_values_at$35.$$arity=-1),Opal.def($Struct_dig$37,"$initialize_copy",$Struct_values_at$35=function(from){this.$$data={};for(var name,keys=Object.keys(from.$$data),i=0,max=keys.length;i")},$Struct_values_at$35.$$arity=0),$alias($Struct_dig$37,"to_s","inspect"),Opal.def($Struct_dig$37,"$to_h",$Struct_to_h$33=function(){var $$34,$iter=$Struct_to_h$33.$$p,block=$iter||nil;return $iter&&($Struct_to_h$33.$$p=null),$iter&&($Struct_to_h$33.$$p=null),block!==nil?$send($send(this,"map",[],block.$to_proc()),"to_h",Opal.to_a(this.$args())):$send(this.$class().$members(),"each_with_object",[$hash2([],{})],(($$34=function(name,h){var $writer,self=null==$$34.$$s?this:$$34.$$s;return null==name&&(name=nil),null==h&&(h=nil),$writer=[name,self["$[]"](name)],$send(h,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$34.$$arity=2,$$34))},$Struct_to_h$33.$$arity=0),Opal.def($Struct_dig$37,"$values_at",$Struct_values_at$35=function($a){for(var $$36,args=Opal.slice.call(arguments,0,arguments.length),result=[],i=0,len=(args=$send(args,"map",[],(($$36=function(arg){null==$$36.$$s||$$36.$$s;return null==arg&&(arg=nil),arg.$$is_range?arg.$to_a():arg}).$$s=this,$$36.$$arity=1,$$36)).$flatten()).length;i>>11,y^=y<<7&2636928640,y^=y<<15&4022730752,(y^=y>>>18)>>>0}return Opal.add_stubs(["$generator=","$-"]),N=624,M=397,TWIST=function(u,v){return(2147483648&u|2147483647&v)>>>1^(1&v?2567483615:0)},mersenne_twister={genrand_real:function(mt){return function(a,b){return(67108864*(a>>>=5)+(b>>>=6))*(1/9007199254740992)}(genrand_int32(mt),genrand_int32(mt))},init:function(s){var mt={left:0,next:N,state:new Array(N)};return function(mt,s){var j;for(mt.state[0]=s>>>0,j=1;j>30>>>0)+j,mt.state[j]&=4294967295;mt.left=1,mt.next=N}(mt,s),mt}},function($nesting,lhs){var rhs=$klass($nesting,null,"Random"),$nesting=[rhs].concat(lhs),lhs=nil,MAX_INT=Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1;return Opal.const_set($nesting[0],"MERSENNE_TWISTER_GENERATOR",{new_seed:function(){return Math.round(Math.random()*MAX_INT)},reseed:function(seed){return mersenne_twister.init(seed)},rand:function(mt){return mersenne_twister.genrand_real(mt)}}),lhs=[$$($nesting,"MERSENNE_TWISTER_GENERATOR")],$send(rhs,"generator=",Opal.to_a(lhs)),lhs[rhs=1,"number"==typeof(lhs=lhs.length)&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)]}($nesting[0],$nesting)},Opal.modules["corelib/unsupported"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$module=Opal.module,$alias=Opal.alias;Opal.add_stubs(["$raise","$warn","$%"]);var $private$36,$Kernel_freeze$24,ERROR,warnings={};function handle_unsupported_feature(message){switch(Opal.config.unsupported_features_severity){case"error":$$($nesting,"Kernel").$raise($$($nesting,"NotImplementedError"),message);break;case"warning":!void(warnings[string=message]||(warnings[string]=!0,self.$warn(string)))}var string}return function($String_unicode_normalize$excl$23,$String_encode$excl$22){var $nesting=[$String_unicode_normalize$excl$23=$klass($String_unicode_normalize$excl$23,null,"String")].concat($String_encode$excl$22),ERROR="String#%s not supported. Mutable String methods are not supported in Opal.";Opal.def($String_unicode_normalize$excl$23,"$<<",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("<<"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$capitalize!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("capitalize!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$chomp!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("chomp!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$chop!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("chop!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$downcase!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("downcase!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$gsub!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("gsub!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$lstrip!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("lstrip!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$next!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("next!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$reverse!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("reverse!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$slice!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("slice!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$squeeze!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("squeeze!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$strip!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("strip!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$sub!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("sub!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$succ!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("succ!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$swapcase!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("swapcase!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$tr!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("tr!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$tr_s!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("tr_s!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$upcase!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("upcase!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$prepend",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("prepend"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$[]=",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("[]="))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$clear",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("clear"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$encode!",$String_encode$excl$22=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("encode!"))},$String_encode$excl$22.$$arity=-1),Opal.def($String_unicode_normalize$excl$23,"$unicode_normalize!",$String_unicode_normalize$excl$23=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),ERROR["$%"]("unicode_normalize!"))},$String_unicode_normalize$excl$23.$$arity=-1)}($nesting[0],$nesting),[$private$36=$module($private$36=($Kernel_freeze$24=$nesting)[0],"Kernel")].concat($Kernel_freeze$24),ERROR="Object freezing is not supported by Opal",Opal.def($private$36,"$freeze",$Kernel_freeze$24=function(){return handle_unsupported_feature(ERROR),this},$Kernel_freeze$24.$$arity=0),Opal.def($private$36,"$frozen?",$private$36=function(){return handle_unsupported_feature(ERROR),!1},$private$36.$$arity=0),function($Kernel_tainted$ques$28,$Kernel_untaint$27){var ERROR=([$Kernel_tainted$ques$28=$module($Kernel_tainted$ques$28,"Kernel")].concat($Kernel_untaint$27),"Object tainting is not supported by Opal");Opal.def($Kernel_tainted$ques$28,"$taint",$Kernel_untaint$27=function(){return handle_unsupported_feature(ERROR),this},$Kernel_untaint$27.$$arity=0),Opal.def($Kernel_tainted$ques$28,"$untaint",$Kernel_untaint$27=function(){return handle_unsupported_feature(ERROR),this},$Kernel_untaint$27.$$arity=0),Opal.def($Kernel_tainted$ques$28,"$tainted?",$Kernel_tainted$ques$28=function(){return handle_unsupported_feature(ERROR),!1},$Kernel_tainted$ques$28.$$arity=0)}($nesting[0],$nesting),function(self,$Module_private_constant$32){[self=$klass(self,null,"Module")].concat($Module_private_constant$32),Opal.def(self,"$public",$Module_private_constant$32=function($a){return 0===Opal.slice.call(arguments,0,arguments.length).length&&(this.$$module_function=!1),nil},$Module_private_constant$32.$$arity=-1),$alias(self,"private","public"),$alias(self,"protected","public"),$alias(self,"nesting","public"),Opal.def(self,"$private_class_method",$Module_private_constant$32=function($a){Opal.slice.call(arguments,0,arguments.length);return this},$Module_private_constant$32.$$arity=-1),$alias(self,"public_class_method","private_class_method"),Opal.def(self,"$private_method_defined?",$Module_private_constant$32=function(obj){return!1},$Module_private_constant$32.$$arity=1),Opal.def(self,"$private_constant",$Module_private_constant$32=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$Module_private_constant$32.$$arity=-1),$alias(self,"protected_method_defined?","private_method_defined?"),$alias(self,"public_instance_methods","instance_methods"),$alias(self,"public_instance_method","instance_method"),$alias(self,"public_method_defined?","method_defined?")}($nesting[0],$nesting),function(self,$Kernel_private_methods$33){[self=$module(self,"Kernel")].concat($Kernel_private_methods$33),Opal.def(self,"$private_methods",$Kernel_private_methods$33=function($a){Opal.slice.call(arguments,0,arguments.length);return[]},$Kernel_private_methods$33.$$arity=-1),$alias(self,"private_instance_methods","private_methods")}($nesting[0],$nesting),function($Kernel_eval$34,$parent_nesting){var $nesting=[$Kernel_eval$34=$module($Kernel_eval$34,"Kernel")].concat($parent_nesting);Opal.def($Kernel_eval$34,"$eval",$Kernel_eval$34=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),"To use Kernel#eval, you must first require 'opal-parser'. See https://github.com/opal/opal/blob/"+$$($nesting,"RUBY_ENGINE_VERSION")+"/docs/opal_parser.md for details.")},$Kernel_eval$34.$$arity=-1)}($nesting[0],$nesting),Opal.defs(self,"$public",$private$36=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$private$36.$$arity=-1),Opal.defs(self,"$private",$private$36=function($a){Opal.slice.call(arguments,0,arguments.length);return nil},$private$36.$$arity=-1),nil&&"private"},function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$,Opal.add_stubs(["$require"]),self.$require("opal/base"),self.$require("opal/mini"),self.$require("corelib/kernel/format"),self.$require("corelib/string/encoding"),self.$require("corelib/math"),self.$require("corelib/complex"),self.$require("corelib/rational"),self.$require("corelib/time"),self.$require("corelib/struct"),self.$require("corelib/io"),self.$require("corelib/main"),self.$require("corelib/dir"),self.$require("corelib/file"),self.$require("corelib/process"),self.$require("corelib/random/formatter"),self.$require("corelib/random"),self.$require("corelib/random/mersenne_twister"),self.$require("corelib/unsupported")}(Opal); +(function(global_object){"use strict";var console,nil,BasicObject,_Object,Module,Class,_Opal,Kernel;if("undefined"!=typeof globalThis?global_object=globalThis:"undefined"!=typeof global?global_object=global:"undefined"!=typeof window&&(global_object=window),"log"in(console="object"==typeof global_object.console?global_object.console:null==global_object.console?global_object.console={}:{})||(console.log=function(){}),"warn"in console||(console.warn=console.log),void 0!==global_object.Opal)return console.warn("Opal already loaded. Loading twice can cause troubles, please fix your setup."),global_object.Opal;var Opal=global_object.Opal={};Opal.global=global_object,global_object.Opal=Opal,Opal.config={missing_require_severity:"error",unsupported_features_severity:"warning",experimental_features_severity:"warning",enable_stack_trace:!0};var $has_own=Object.hasOwnProperty,$bind=Function.prototype.bind,$set_proto=Object.setPrototypeOf,$slice=Array.prototype.slice,$splice=Array.prototype.splice,unique_id=4;function $prop(object,name,initialValue){"string"==typeof object?object[name]=initialValue:Object.defineProperty(object,name,{value:initialValue,enumerable:!1,configurable:!0,writable:!0})}Opal.uid=function(){return unique_id+=2},Opal.id=function(obj){return obj.$$is_number?2*obj+1:(null!=obj.$$id||$prop(obj,"$$id",Opal.uid()),obj.$$id)},Opal.gvars={},Opal.exit=function(status){Opal.gvars.DEBUG&&console.log("Exited with status "+status)},Opal.exceptions=[],Opal.pop_exception=function(){var exception=Opal.exceptions.pop();exception?(Opal.gvars["!"]=exception,Opal.gvars["@"]=exception.$backtrace()):Opal.gvars["!"]=Opal.gvars["@"]=nil},Opal.prop=$prop,Opal.defineProperty=Opal.prop,Opal.slice=$slice;var $truthy=Opal.truthy=function(val){return!(!1===val||nil===val||null==val||val instanceof Boolean&&!0!==val.valueOf())};function invoke_tracers_for_class(klass_or_module){var i,ii,tracer;for(i=0,ii=Opal.tracers_for_class.length;i=0;i--){var ancestor=ancestors[i];for(var cvar in ancestor.$$cvars)result[cvar]=ancestor.$$cvars[cvar]}return result},Opal.class_variable_set=function(module,name,value){var i,ancestors=Opal.ancestors(module);for(i=ancestors.length-2;i>=0;i--){var ancestor=ancestors[i];if($has_own.call(ancestor.$$cvars,name))return ancestor.$$cvars[name]=value,value}return module.$$cvars[name]=value,value},Opal.class_variable_get=function(module,name,tolerant){if($has_own.call(module.$$cvars,name))return module.$$cvars[name];var i,ancestors=Opal.ancestors(module),length=ancestors.length;for(i=0;i1||(has_mlhs||has_trailing_comma)&&1===block.length)&&(arg=Opal.to_ary(arg)),(block.length>1||has_trailing_comma&&1===block.length)&&arg.$$is_array?block.apply(null,arg):block(arg)},Opal.yieldX=function(block,args){if("function"!=typeof block)throw Opal.LocalJumpError.$new("no block given");if(block.length>1&&1===args.length&&args[0].$$is_array)return block.apply(null,args[0]);if(!args.$$is_array){for(var args_ary=new Array(args.length),i=0,l=args_ary.length;i=0;k--)if(void 0!==(refinement=refinements[k]).$$refine_modules&&void 0!==(refine_modules=refinement.$$refine_modules)[ancestor]&&void 0!==(refine_module=refine_modules[ancestor]).$$prototype["$"+method])return body=refine_module.$$prototype["$"+method],Opal.send2(recv,body,method,args,block,blockopts);return Opal.send(recv,method,args,block,blockopts)},Opal.lambda=function(block,blockopts){return block.$$is_lambda=!0,apply_blockopts(block,blockopts),block},Opal.def=function(obj,jsid,body,blockopts){return apply_blockopts(body,blockopts),obj===Opal.top?Opal.defn(Opal.Object,jsid,body):!obj.$$eval&&obj.$$is_a_module?Opal.defn(obj,jsid,body):Opal.defs(obj,jsid,body)},Opal.defn=function(module,jsid,body){body.displayName=jsid,body.$$owner=module;var name=jsid.substr(1),proto=module.$$prototype;if(proto.hasOwnProperty("$$dummy")&&(proto=proto.$$define_methods_on),$prop(proto,jsid,body),module.$$is_module){module.$$module_function&&Opal.defs(module,jsid,body);for(var i=0,iclasses=module.$$iclasses,length=iclasses.length;i=0,i=0,ii=parts.length;ir:l["$>"](r)},Opal.rb_le=function(l,r){return"number"==typeof l&&"number"==typeof r?l<=r:l["$<="](r)},Opal.rb_ge=function(l,r){return"number"==typeof l&&"number"==typeof r?l>=r:l["$>="](r)},Opal.eqeq=function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs||"string"==typeof lhs&&"string"==typeof rhs?lhs===rhs:$truthy(lhs["$=="](rhs))},Opal.eqeqeq=function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs||"string"==typeof lhs&&"string"==typeof rhs?lhs===rhs:$truthy(lhs["$==="](rhs))},Opal.neqeq=function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs||"string"==typeof lhs&&"string"==typeof rhs?lhs!==rhs:$truthy(lhs["$!="](rhs))},Opal.not=function(arg){return!0!==arg&&(null==arg||!1===arg||nil===arg||$truthy(arg["$!"]()))},Opal.BasicObject=BasicObject=Opal.allocate_class("BasicObject",null),Opal.Object=_Object=Opal.allocate_class("Object",Opal.BasicObject),Opal.Module=Module=Opal.allocate_class("Module",Opal.Object),Opal.Class=Class=Opal.allocate_class("Class",Opal.Module),Opal.Opal=_Opal=Opal.allocate_module("Opal"),Opal.Kernel=Kernel=Opal.allocate_module("Kernel"),$set_proto(Opal.BasicObject,Opal.Class.$$prototype),$set_proto(Opal.Object,Opal.Class.$$prototype),$set_proto(Opal.Module,Opal.Class.$$prototype),$set_proto(Opal.Class,Opal.Class.$$prototype),BasicObject.$$const.BasicObject=BasicObject,$const_set(_Object,"BasicObject",BasicObject),$const_set(_Object,"Object",_Object),$const_set(_Object,"Module",Module),$const_set(_Object,"Class",Class),$const_set(_Object,"Opal",_Opal),$const_set(_Object,"Kernel",Kernel),BasicObject.$$class=Class,_Object.$$class=Class,Module.$$class=Class,Class.$$class=Class,_Opal.$$class=Module,Kernel.$$class=Module,$prop(_Object.$$prototype,"toString",(function(){var to_s=this.$to_s();return to_s.$$is_string&&"object"==typeof to_s?to_s.valueOf():to_s})),$prop(_Object.$$prototype,"$require",Opal.require),Opal.top=new _Object,Opal.top.$to_s=Opal.top.$inspect=function(){return"main"},Opal.top.$define_method=function top_define_method(){var args=Opal.slice.call(arguments),block=top_define_method.$$p;return delete top_define_method.$$p,Opal.send(_Object,"define_method",args,block)},Opal.NilClass=Opal.allocate_class("NilClass",Opal.Object),$const_set(_Object,"NilClass",Opal.NilClass),(nil=Opal.nil=new Opal.NilClass).$$id=4,nil.call=nil.apply=function(){throw Opal.LocalJumpError.$new("no block given")},Opal.breaker=new Error("unexpected break (old)"),Opal.returner=new Error("unexpected return"),TypeError.$$super=Error}).call(this),Opal.loaded(["corelib/runtime.js"]),Opal.modules["corelib/helpers"]=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$type_error=Opal.type_error,$coerce_to=Opal.coerce_to,$module=Opal.module,$defs=Opal.defs,$eqeqeq=Opal.eqeqeq,$Kernel=Opal.Kernel,$truthy=Opal.truthy,$Opal=Opal.Opal;return Opal.add_stubs("===,raise,respond_to?,nil?,__send__,<=>,class,coerce_to!,new,to_s,__id__"),function($base){var self=$module("::","Opal");$defs(self,"$bridge",(function(constructor,klass){return Opal.bridge(constructor,klass)}),2),$defs(self,"$coerce_to!",(function(object,type,method,$a){var $post_args,coerced=nil;return $post_args=Opal.slice.call(arguments,3),coerced=$coerce_to(object,type,method,$post_args),$eqeqeq(type,coerced)||$Kernel.$raise($type_error(object,type,method,coerced)),coerced}),-4),$defs(self,"$coerce_to?",(function(object,type,method,$a){var args,coerced=nil;return args=Opal.slice.call(arguments,3),$truthy(object["$respond_to?"](method))?(coerced=$coerce_to(object,type,method,args),$truthy(coerced["$nil?"]())?nil:($eqeqeq(type,coerced)||$Kernel.$raise($type_error(object,type,method,coerced)),coerced)):nil}),-4),$defs(self,"$try_convert",(function(object,type,method){return $eqeqeq(type,object)?object:$truthy(object["$respond_to?"](method))?object.$__send__(method):nil}),3),$defs(self,"$compare",(function(a,b){var compare;return compare=a["$<=>"](b),$truthy(compare===nil)&&$Kernel.$raise($$$("ArgumentError"),"comparison of "+a.$class()+" with "+b.$class()+" failed"),compare}),2),$defs(self,"$destructure",(function(args){if(1==args.length)return args[0];if(args.$$is_array)return args;for(var args_ary=new Array(args.length),i=0,l=args_ary.length;i=0;i--)method_name=method_names[i],(method=owner_class.$$prototype["$"+method_name])&&!method.$$stub&&(method.$$pristine=!0);return nil}),-2);var inspect_stack=[];return $defs(self,"$inspect",(function(value){var pushed=!1;return function(){try{try{return null===value?"null":void 0===value?"undefined":void 0===value.$$class?Object.prototype.toString.apply(value):"function"!=typeof value.$inspect||value.$inspect.$$stub||-1!==inspect_stack.indexOf(value.$__id__())?"#<"+value.$$class+":0x"+value.$__id__().$to_s(16)+">":(inspect_stack.push(value.$__id__()),pushed=!0,value.$inspect())}catch($err){if(!Opal.rescue($err,[$$$("Exception")]))throw $err;$err;try{return"#<"+value.$$class+":0x"+value.$__id__().$to_s(16)+">"}finally{Opal.pop_exception()}}}finally{pushed&&inspect_stack.pop()}}()}),-1)}()},Opal.modules["corelib/module"]=function(Opal){var self,$proto,nil=Opal.nil,$$$=Opal.$$$,$truthy=Opal.truthy,$coerce_to=Opal.coerce_to,$const_set=Opal.const_set,$Object=Opal.Object,$klass=Opal.klass,$defs=Opal.defs,$send=Opal.send,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$Module=Opal.Module,$Kernel=Opal.Kernel,$rb_lt=Opal.rb_lt,$rb_gt=Opal.rb_gt,$to_a=Opal.to_a,$hash2=Opal.hash2,$Opal=Opal.Opal,$eqeq=Opal.eqeq,$lambda=Opal.lambda,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super,$alias=Opal.alias;return Opal.add_stubs("module_eval,to_proc,===,raise,equal?,<,>,nil?,attr_reader,attr_writer,warn,attr_accessor,const_name?,class_variable_name!,const_name!,=~,new,inject,split,const_get,==,start_with?,!~,bind,call,class,append_features,included,name,cover?,size,merge,compile,proc,any?,prepend_features,prepended,to_s,__id__,constants,include?,copy_class_variables,copy_constants,class_exec,inspect"),function($base,$super,$parent_nesting){var self=$klass("::",null,"Module"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$allocate",(function(){var module=Opal.allocate_module(nil,(function(){}));return this!==Opal.Module&&Object.setPrototypeOf(module,this.$$prototype),module}),0),$def(self,"$initialize",(function $$initialize(){var block=$$initialize.$$p||nil;return delete $$initialize.$$p,block!==nil?$send(this,"module_eval",[],block.$to_proc()):nil}),0),$def(self,"$===",(function(object){return!$truthy(null==object)&&Opal.is_a(object,this)}),1),$def(self,"$<",(function(other){$eqeqeq($Module,other)||$Kernel.$raise($$$("TypeError"),"compared with non class/module");var ancestors,i,length;if(this===other)return!1;for(i=0,length=(ancestors=Opal.ancestors(this)).length;i",(function(other){return $eqeqeq($Module,other)||$Kernel.$raise($$$("TypeError"),"compared with non class/module"),$rb_lt(other,this)}),1),$def(self,"$>=",(function(other){var $ret_or_1;return $truthy($ret_or_1=this["$equal?"](other))?$ret_or_1:$rb_gt(this,other)}),1),$def(self,"$<=>",(function(other){var lt=nil;return this===other?0:$eqeqeq($Module,other)?(lt=$rb_lt(this,other),$truthy(lt["$nil?"]())?nil:$truthy(lt)?-1:1):nil}),1),$def(self,"$alias_method",(function(newname,oldname){return newname=$coerce_to(newname,$$$("String"),"to_str"),oldname=$coerce_to(oldname,$$$("String"),"to_str"),Opal.alias(this,newname,oldname),this}),2),$def(self,"$alias_native",(function(mid,jsid){return null==jsid&&(jsid=mid),Opal.alias_native(this,mid,jsid),this}),-2),$def(self,"$ancestors",(function(){return Opal.ancestors(this)}),0),$def(self,"$append_features",(function(includer){return Opal.append_features(this,includer),this}),1),$def(self,"$attr_accessor",(function($a){var $post_args,names,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"attr_reader",$to_a(names=$post_args)),$send(self,"attr_writer",$to_a(names))}),-1),$def(self,"$attr",(function($a){var args,self=this;return 2!=(args=Opal.slice.call(arguments)).length||!0!==args[1]&&!1!==args[1]?$send(self,"attr_reader",$to_a(args)):(self.$warn("optional boolean argument is obsoleted",$hash2(["uplevel"],{uplevel:1})),args[1]?self.$attr_accessor(args[0]):self.$attr_reader(args[0]),nil)}),-1),$def(self,"$attr_reader",(function($a){var names,self=this;names=Opal.slice.call(arguments);for(var proto=self.$$prototype,i=names.length-1;i>=0;i--){var name=names[i],id="$"+name,ivar=Opal.ivar(name),body=function(ivar){return function(){return null==this[ivar]?nil:this[ivar]}}(ivar);Opal.prop(proto,ivar,nil),body.$$parameters=[],body.$$arity=0,Opal.defn(self,id,body)}return nil}),-1),$def(self,"$attr_writer",(function($a){var names,self=this;names=Opal.slice.call(arguments);for(var proto=self.$$prototype,i=names.length-1;i>=0;i--){var name=names[i],id="$"+name+"=",ivar=Opal.ivar(name),body=function(ivar){return function(value){return this[ivar]=value}}(ivar);body.$$parameters=[["req"]],body.$$arity=1,Opal.prop(proto,ivar,nil),Opal.defn(self,id,body)}return nil}),-1),$def(self,"$autoload",(function(const$,path){return $$("Opal")["$const_name?"](const$)||$Kernel.$raise($$$("NameError"),"autoload must be constant name: "+const$),""==path&&$Kernel.$raise($$$("ArgumentError"),"empty file name"),this.$$const.hasOwnProperty(const$)||(this.$$autoload||(this.$$autoload={}),Opal.const_cache_version++,this.$$autoload[const$]={path:path,loaded:!1,required:!1,success:!1,exception:!1}),nil}),2),$def(self,"$autoload?",(function(const$){if(this.$$autoload&&this.$$autoload[const$]&&!this.$$autoload[const$].required&&!this.$$autoload[const$].success)return this.$$autoload[const$].path;for(var ancestors=this.$ancestors(),i=0,length=ancestors.length;i=0;i--){var mod=mods[i];mod.$$is_module||$Kernel.$raise($$$("TypeError"),"wrong argument type "+mod.$class()+" (expected Module)"),mod.$append_features(self),mod.$included(self)}return self}),-1),$def(self,"$included_modules",(function(){return Opal.included_modules(this)}),0),$def(self,"$include?",(function(mod){mod.$$is_module||$Kernel.$raise($$$("TypeError"),"wrong argument type "+mod.$class()+" (expected Module)");var i,ii,mod2,ancestors=Opal.ancestors(this);for(i=0,ii=ancestors.length;i=0;i--){var mod=mods[i];mod.$$is_module||$Kernel.$raise($$$("TypeError"),"wrong argument type "+mod.$class()+" (expected Module)"),mod.$prepend_features(self),mod.$prepended(self)}return self}),-1),$def(self,"$prepend_features",(function(prepender){return this.$$is_module||$Kernel.$raise($$$("TypeError"),"wrong argument type "+this.$class()+" (expected Module)"),Opal.prepend_features(this,prepender),this}),1),$def(self,"$prepended",(function(mod){return nil}),1),$def(self,"$remove_const",(function(name){return Opal.const_remove(this,name)}),1),$def(self,"$to_s",(function(){var $ret_or_1;return $truthy($ret_or_1=Opal.Module.$name.call(this))?$ret_or_1:"#<"+(this.$$is_module?"Module":"Class")+":0x"+this.$__id__().$to_s(16)+">"}),0),$def(self,"$undef_method",(function($a){for(var names,self=this,i=0,length=(names=Opal.slice.call(arguments)).length;i":$send2(this,$find_super(this,"inspect",$$inspect,!1,!0),"inspect",[],$yield)}),0)},Opal.modules["corelib/class"]=function(Opal){var self=Opal.top,nil=Opal.nil,$klass=Opal.klass,$send=Opal.send,$defs=Opal.defs,$def=Opal.def,$rb_plus=Opal.rb_plus,$send2=Opal.send2,$find_super=Opal.find_super,$alias=Opal.alias;return Opal.add_stubs("require,class_eval,to_proc,+,subclasses,flatten,map,initialize_copy,allocate,name,to_s"),self.$require("corelib/module"),function($base,$super,$parent_nesting){var self=$klass("::",null,"Class"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$new",(function $Class_new$1(superclass){var block=$Class_new$1.$$p||nil;if(delete $Class_new$1.$$p,null==superclass&&(superclass=$$("Object")),!superclass.$$is_class)throw Opal.TypeError.$new("superclass must be a Class");var klass=Opal.allocate_class(nil,superclass);return superclass.$inherited(klass),block!==nil&&$send(klass,"class_eval",[],block.$to_proc()),klass}),-1),$def(self,"$allocate",(function(){var obj=new this.$$constructor;return obj.$$id=Opal.uid(),obj}),0),$def(self,"$descendants",(function(){return $rb_plus(this.$subclasses(),$send(this.$subclasses(),"map",[],"descendants".$to_proc()).$flatten())}),0),$def(self,"$inherited",(function(cls){return nil}),1),$def(self,"$initialize_dup",(function(original){this.$initialize_copy(original),this.$$name=null,this.$$full_name=null}),1),$def(self,"$new",(function $Class_new$2($a){var args,block=$Class_new$2.$$p||nil,self=this;delete $Class_new$2.$$p,args=Opal.slice.call(arguments);var object=self.$allocate();return Opal.send(object,object.$initialize,args,block),object}),-1),$def(self,"$subclasses",(function(){if("undefined"!=typeof WeakRef){var i,subclass,out=[];for(i=0;i":singleton_of?"#>":$send2(this,$find_super(this,"to_s",$$to_s,!1,!0),"to_s",[],null)}),0),$alias(self,"inspect","to_s")}(0,0,[])},Opal.modules["corelib/basic_object"]=function(Opal){"use strict";var self,nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$def=Opal.def,$alias=Opal.alias,$truthy=Opal.truthy,$range=Opal.range,$Kernel=Opal.Kernel,$to_a=Opal.to_a,$hash2=Opal.hash2,$Opal=Opal.Opal,$send=Opal.send,$eqeq=Opal.eqeq,$rb_ge=Opal.rb_ge;return Opal.add_stubs("==,raise,inspect,!,nil?,cover?,size,merge,compile,proc,[],first,>=,length,instance_variable_get,any?,new,caller,pristine"),self=$klass("::",null,"BasicObject"),$def(self,"$initialize",(function($a){return Opal.slice.call(arguments),nil}),-1),$def(self,"$==",(function(other){return this===other}),1),$def(self,"$eql?",(function(other){return this["$=="](other)}),1),$alias(self,"equal?","=="),$def(self,"$__id__",(function(){return null!=this.$$id||Opal.prop(this,"$$id",Opal.uid()),this.$$id}),0),$def(self,"$__send__",(function $$__send__(symbol,$a){var args,block=$$__send__.$$p||nil,self=this;delete $$__send__.$$p,args=Opal.slice.call(arguments,1),symbol.$$is_string||self.$raise($$$("TypeError"),self.$inspect()+" is not a symbol nor a string");var func=self["$"+symbol];return func?(block!==nil&&(func.$$p=block),func.apply(self,args)):(block!==nil&&(self.$method_missing.$$p=block),self.$method_missing.apply(self,[symbol].concat(args)))}),-2),$def(self,"$!",(function(){return!1}),0),$def(self,"$!=",(function(other){return this["$=="](other)["$!"]()}),1),$def(self,"$instance_eval",(function $$instance_eval($a){var args,$b,block=$$instance_eval.$$p||nil,self=this,string=nil,file=nil,default_eval_options=nil,$ret_or_1=nil,compiling_options=nil,compiled=nil;if(delete $$instance_eval.$$p,args=Opal.slice.call(arguments),$truthy(block["$nil?"]())&&$truthy(!!Opal.compile))$truthy($range(1,3,!1)["$cover?"](args.$size()))||$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments (0 for 1..3)"),string=null==($b=[].concat($to_a(args)))[0]?nil:$b[0],file=null==$b[1]?nil:$b[1],null==$b[2]||$b[2],default_eval_options=$hash2(["file","eval"],{file:$truthy($ret_or_1=file)?$ret_or_1:"(eval)",eval:!0}),compiling_options=Opal.hash({arity_check:!1}).$merge(default_eval_options),compiled=$Opal.$compile(string,compiling_options),block=$send($Kernel,"proc",[],(function $$5(){var self=null==$$5.$$s?this:$$5.$$s;return new Function("Opal,self","return "+compiled)(Opal,self)}),{$$arity:0,$$s:self});else{if($truthy(block["$nil?"]())&&$truthy($rb_ge(args.$length(),1))&&$eqeq(args.$first()["$[]"](0),"@"))return self.$instance_variable_get(args.$first());$truthy(args["$any?"]())&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+args.$size()+" for 0)")}var result,old=block.$$s;if(block.$$s=null,self.$$is_a_module){self.$$eval=!0;try{result=block.call(self,self)}finally{self.$$eval=!1}}else result=block.call(self,self);return block.$$s=old,result}),-1),$def(self,"$instance_exec",(function $$instance_exec($a){var args,block=$$instance_exec.$$p||nil,self=this;delete $$instance_exec.$$p,args=Opal.slice.call(arguments),$truthy(block)||$Kernel.$raise($$$("ArgumentError"),"no block given");var result,block_self=block.$$s;if(block.$$s=null,self.$$is_a_module){self.$$eval=!0;try{result=block.apply(self,args)}finally{self.$$eval=!1}}else result=block.apply(self,args);return block.$$s=block_self,result}),-1),$def(self,"$singleton_method_added",(function($a){return Opal.slice.call(arguments),nil}),-1),$def(self,"$singleton_method_removed",(function($a){return Opal.slice.call(arguments),nil}),-1),$def(self,"$singleton_method_undefined",(function($a){return Opal.slice.call(arguments),nil}),-1),$def(self,"$method_missing",(function $$method_missing(symbol,$a){var args,self=this,inspect_result=nil;return delete $$method_missing.$$p,args=Opal.slice.call(arguments,1),inspect_result=$Opal.$inspect(self),$Kernel.$raise($$$("NoMethodError").$new("undefined method `"+symbol+"' for "+inspect_result,symbol,args),nil,$Kernel.$caller(1))}),-2),$Opal.$pristine(self,"method_missing"),$def(self,"$respond_to_missing?",(function(method_name,include_all){return null==include_all&&(include_all=!1),!1}),-2)},Opal.modules["corelib/kernel"]=function(Opal){"use strict";var self,nil=Opal.nil,$$$=Opal.$$$,$truthy=Opal.truthy,$coerce_to=Opal.coerce_to,$respond_to=Opal.respond_to,$Opal=Opal.Opal,$module=Opal.module,$def=Opal.def,$Kernel=Opal.Kernel,$gvars=Opal.gvars,$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$rb_plus=Opal.rb_plus,$eqeq=Opal.eqeq,$eqeqeq=Opal.eqeqeq,$rb_le=Opal.rb_le,$rb_lt=Opal.rb_lt,$Object=Opal.Object,$alias=Opal.alias,$klass=Opal.klass;return Opal.add_stubs("!,=~,==,object_id,raise,new,class,coerce_to?,<<,allocate,copy_instance_variables,copy_singleton_methods,initialize_clone,initialize_copy,define_method,singleton_class,to_proc,initialize_dup,for,empty?,pop,call,append_features,extend_object,extended,gets,__id__,include?,each,instance_variables,instance_variable_get,inspect,+,to_s,instance_variable_name!,respond_to?,to_int,coerce_to!,Integer,nil?,===,enum_for,result,any?,print,format,puts,<=,length,[],readline,<,first,split,caller,map,to_str,exception,backtrace,rand,respond_to_missing?,pristine,try_convert!,expand_path,join,start_with?,new_seed,srand,tag,value,open,include"),function($base,$parent_nesting){var self=$module("::","Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$=~",(function(obj){return!1}),1),$def(self,"$!~",(function(obj){return this["$=~"](obj)["$!"]()}),1),$def(self,"$===",(function(other){var $ret_or_1;return $truthy($ret_or_1=this.$object_id()["$=="](other.$object_id()))?$ret_or_1:this["$=="](other)}),1),$def(self,"$<=>",(function(other){this.$$comparable=!0;var x=this["$=="](other);return x&&x!==nil?0:nil}),1),$def(self,"$method",(function(name){var meth=this["$"+name];return meth&&!meth.$$stub||$Kernel.$raise($$$("NameError").$new("undefined method `"+name+"' for class `"+this.$class()+"'",name)),$$$("Method").$new(this,meth.$$owner||this.$class(),meth,name)}),1),$def(self,"$methods",(function(all){return null==all&&(all=!0),$truthy(all)?Opal.methods(this):Opal.own_methods(this)}),-1),$def(self,"$public_methods",(function(all){return null==all&&(all=!0),$truthy(all)?Opal.methods(this):Opal.receiver_methods(this)}),-1),$def(self,"$Array",(function(object){var coerced;return object===nil?[]:object.$$is_array?object:(coerced=$Opal["$coerce_to?"](object,$$$("Array"),"to_ary"))!==nil||(coerced=$Opal["$coerce_to?"](object,$$$("Array"),"to_a"))!==nil?coerced:[object]}),1),$def(self,"$at_exit",(function $$at_exit(){var $ret_or_1,block=$$at_exit.$$p||nil;return null==$gvars.__at_exit__&&($gvars.__at_exit__=nil),delete $$at_exit.$$p,$gvars.__at_exit__=$truthy($ret_or_1=$gvars.__at_exit__)?$ret_or_1:[],$gvars.__at_exit__["$<<"](block),block}),0),$def(self,"$caller",(function(start,length){var stack,result;null==start&&(start=1),null==length&&(length=nil),result=[];for(var i=start+1,ii=(stack=(new Error).$backtrace()).length;i0&&(method=$post_args.shift()),null==method&&(method="each"),args=$post_args,$send($$$("Enumerator"),"for",[self,method].concat($to_a(args)),block.$to_proc())}),-1),$def(self,"$equal?",(function(other){return this===other}),1),$def(self,"$exit",(function(status){var $ret_or_1;for(null==$gvars.__at_exit__&&($gvars.__at_exit__=nil),null==status&&(status=!0),$gvars.__at_exit__=$truthy($ret_or_1=$gvars.__at_exit__)?$ret_or_1:[];!$truthy($gvars.__at_exit__["$empty?"]());)$gvars.__at_exit__.$pop().$call();return status=status.$$is_boolean?status?0:1:$coerce_to(status,$$$("Integer"),"to_int"),Opal.exit(status),nil}),-1),$def(self,"$extend",(function($a){var mods,self=this;mods=Opal.slice.call(arguments);for(var singleton=self.$singleton_class(),i=mods.length-1;i>=0;i--){var mod=mods[i];mod.$$is_module||$Kernel.$raise($$$("TypeError"),"wrong argument type "+mod.$class()+" (expected Module)"),mod.$append_features(singleton),mod.$extend_object(self),mod.$extended(self)}return self}),-1),$def(self,"$gets",(function($a){var args;return null==$gvars.stdin&&($gvars.stdin=nil),args=Opal.slice.call(arguments),$send($gvars.stdin,"gets",$to_a(args))}),-1),$def(self,"$hash",(function(){return this.$__id__()}),0),$def(self,"$initialize_copy",(function(other){return nil}),1);var inspect_stack=[];$def(self,"$inspect",(function(){var self=this,ivs=nil,id=nil,pushed=nil;return function(){try{try{return ivs="",id=self.$__id__(),$truthy(inspect_stack["$include?"](id))?ivs=" ...":(inspect_stack["$<<"](id),pushed=!0,$send(self.$instance_variables(),"each",[],(function $$7(i){var ivar,inspect;return null==i&&(i=nil),ivar=(null==$$7.$$s?this:$$7.$$s).$instance_variable_get(i),inspect=$$("Opal").$inspect(ivar),ivs=$rb_plus(ivs," "+i+"="+inspect)}),{$$arity:1,$$s:self})),"#<"+self.$class()+":0x"+id.$to_s(16)+ivs+">"}catch($err){if(!Opal.rescue($err,[$$("StandardError")]))throw $err;$err;try{return"#<"+self.$class()+":0x"+id.$to_s(16)+">"}finally{Opal.pop_exception()}}}finally{$truthy(pushed)&&inspect_stack.$pop()}}()}),0),$def(self,"$instance_of?",(function(klass){return klass.$$is_class||klass.$$is_module||$Kernel.$raise($$$("TypeError"),"class or module required"),this.$$class===klass}),1),$def(self,"$instance_variable_defined?",(function(name){return name=$Opal["$instance_variable_name!"](name),Opal.hasOwnProperty.call(this,name.substr(1))}),1),$def(self,"$instance_variable_get",(function(name){name=$Opal["$instance_variable_name!"](name);var ivar=this[Opal.ivar(name.substr(1))];return null==ivar?nil:ivar}),1),$def(self,"$instance_variable_set",(function(name,value){return name=$Opal["$instance_variable_name!"](name),this[Opal.ivar(name.substr(1))]=value}),2),$def(self,"$remove_instance_variable",(function(name){name=$Opal["$instance_variable_name!"](name);var val,key=Opal.ivar(name.substr(1));return this.hasOwnProperty(key)?(val=this[key],delete this[key],val):$Kernel.$raise($$$("NameError"),"instance variable "+name+" not defined")}),1),$def(self,"$instance_variables",(function(){var ivar,result=[];for(var name in this)this.hasOwnProperty(name)&&"$"!==name.charAt(0)&&(ivar="$"===name.substr(-1)?name.slice(0,name.length-1):name,result.push("@"+ivar));return result}),0),$def(self,"$Integer",(function(value,base){var i,str,base_digits;return value.$$is_string?"0"===value?0:(void 0===base?base=0:(1===(base=$coerce_to(base,$$$("Integer"),"to_int"))||base<0||base>36)&&$Kernel.$raise($$$("ArgumentError"),"invalid radix "+base),str=(str=(str=value.toLowerCase()).replace(/(\d)_(?=\d)/g,"$1")).replace(/^(\s*[+-]?)(0[bodx]?)/,(function(_,head,flag){switch(flag){case"0b":if(0===base||2===base)return base=2,head;case"0":case"0o":if(0===base||8===base)return base=8,head;case"0d":if(0===base||10===base)return base=10,head;case"0x":if(0===base||16===base)return base=16,head}$Kernel.$raise($$$("ArgumentError"),'invalid value for Integer(): "'+value+'"')})),base_digits="0-"+((base=0===base?10:base)<=10?base-1:"9a-"+String.fromCharCode(base-11+97)),new RegExp("^\\s*[+-]?["+base_digits+"]+\\s*$").test(str)||$Kernel.$raise($$$("ArgumentError"),'invalid value for Integer(): "'+value+'"'),i=parseInt(str,base),isNaN(i)&&$Kernel.$raise($$$("ArgumentError"),'invalid value for Integer(): "'+value+'"'),i):(void 0!==base&&$Kernel.$raise($$$("ArgumentError"),"base specified for non string value"),value===nil&&$Kernel.$raise($$$("TypeError"),"can't convert nil into Integer"),value.$$is_number?((value===1/0||value===-1/0||isNaN(value))&&$Kernel.$raise($$$("FloatDomainError"),value),Math.floor(value)):value["$respond_to?"]("to_int")&&(i=value.$to_int())!==nil?i:$Opal["$coerce_to!"](value,$$$("Integer"),"to_i"))}),-2),$def(self,"$Float",(function(value){var str;return value===nil&&$Kernel.$raise($$$("TypeError"),"can't convert nil into Float"),value.$$is_string?(str=(str=value.toString()).replace(/(\d)_(?=\d)/g,"$1"),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(str)?$Kernel.$Integer(str):(/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(str)||$Kernel.$raise($$$("ArgumentError"),'invalid value for Float(): "'+value+'"'),parseFloat(str))):$Opal["$coerce_to!"](value,$$$("Float"),"to_f")}),1),$def(self,"$Hash",(function(arg){return $truthy(arg["$nil?"]())||$eqeq(arg,[])?$hash2([],{}):$eqeqeq($$$("Hash"),arg)?arg:$Opal["$coerce_to!"](arg,$$$("Hash"),"to_hash")}),1),$def(self,"$is_a?",(function(klass){return klass.$$is_class||klass.$$is_module||$Kernel.$raise($$$("TypeError"),"class or module required"),Opal.is_a(this,klass)}),1),$def(self,"$itself",(function(){return this}),0),$def(self,"$lambda",(function $$lambda(){var block=$$lambda.$$p||nil;return delete $$lambda.$$p,Opal.lambda(block)}),0),$def(self,"$load",(function(file){return file=$Opal["$coerce_to!"](file,$$$("String"),"to_str"),Opal.load(file)}),1),$def(self,"$loop",(function $$loop(){var $yield=$$loop.$$p||nil,e=nil;if(delete $$loop.$$p,$yield===nil)return $send(this,"enum_for",["loop"],(function(){return $$$($$$("Float"),"INFINITY")}),0);for(;$truthy(!0);)try{Opal.yieldX($yield,[])}catch($err){if(!Opal.rescue($err,[$$$("StopIteration")]))throw $err;e=$err;try{return e.$result()}finally{Opal.pop_exception()}}return this}),0),$def(self,"$nil?",(function(){return!1}),0),$def(self,"$printf",(function($a){var $post_args,args,self=this;return $post_args=Opal.slice.call(arguments),$truthy((args=$post_args)["$any?"]())&&self.$print($send(self,"format",$to_a(args))),nil}),-1),$def(self,"$proc",(function $$proc(){var block=$$proc.$$p||nil;return delete $$proc.$$p,$truthy(block)||$Kernel.$raise($$$("ArgumentError"),"tried to create Proc object without a block"),block.$$is_lambda=!1,block}),0),$def(self,"$puts",(function($a){var strs;return null==$gvars.stdout&&($gvars.stdout=nil),strs=Opal.slice.call(arguments),$send($gvars.stdout,"puts",$to_a(strs))}),-1),$def(self,"$p",(function($a){var $post_args,args;return $post_args=Opal.slice.call(arguments),$send(args=$post_args,"each",[],(function(obj){return null==$gvars.stdout&&($gvars.stdout=nil),null==obj&&(obj=nil),$gvars.stdout.$puts(obj.$inspect())}),1),$truthy($rb_le(args.$length(),1))?args["$[]"](0):args}),-1),$def(self,"$print",(function($a){var strs;return null==$gvars.stdout&&($gvars.stdout=nil),strs=Opal.slice.call(arguments),$send($gvars.stdout,"print",$to_a(strs))}),-1),$def(self,"$readline",(function($a){var args;return null==$gvars.stdin&&($gvars.stdin=nil),args=Opal.slice.call(arguments),$send($gvars.stdin,"readline",$to_a(args))}),-1),$def(self,"$warn",(function($a,$b){var $post_args,$kwargs,strs,uplevel,$c,$d,self=this,location=nil;if(null==$gvars.VERBOSE&&($gvars.VERBOSE=nil),null==$gvars.stderr&&($gvars.stderr=nil),$post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return strs=$post_args,null==(uplevel=$kwargs.$$smap.uplevel)&&(uplevel=nil),$truthy(uplevel)&&(uplevel=$Opal["$coerce_to!"](uplevel,$$$("Integer"),"to_str"),$truthy($rb_lt(uplevel,0))&&$Kernel.$raise($$$("ArgumentError"),"negative level ("+uplevel+")"),$d=($c=self.$caller($rb_plus(uplevel,1),1).$first())===nil||null==$c?nil:$send($c,"split",[":in `"]),location=$d===nil||null==$d?nil:$send($d,"first",[]),$truthy(location)&&(location+=": "),strs=$send(strs,"map",[],(function(s){return null==s&&(s=nil),location+"warning: "+s}),1)),$truthy($gvars.VERBOSE["$nil?"]())||$truthy(strs["$empty?"]())?nil:$send($gvars.stderr,"puts",$to_a(strs))}),-1),$def(self,"$raise",(function(exception,string,backtrace){if(null==$gvars["!"]&&($gvars["!"]=nil),null==$gvars["@"]&&($gvars["@"]=nil),null==string&&(string=nil),null==backtrace&&(backtrace=nil),null==exception&&$gvars["!"]!==nil)throw $gvars["!"];throw null==exception?exception=$$$("RuntimeError").$new(""):$respond_to(exception,"$to_str")?exception=$$$("RuntimeError").$new(exception.$to_str()):exception.$$is_class&&$respond_to(exception,"$exception")?exception=exception.$exception(string):exception.$$is_exception||(exception=$$$("TypeError").$new("exception class/object expected")),backtrace!==nil&&exception.$set_backtrace(backtrace),$gvars["!"]!==nil&&Opal.exceptions.push($gvars["!"]),$gvars["!"]=exception,$gvars["@"]=exception.$backtrace(),exception}),-1),$def(self,"$rand",(function(max){return void 0===max?$$$($$$("Random"),"DEFAULT").$rand():(max.$$is_number&&(max<0&&(max=Math.abs(max)),max%1!=0&&(max=max.$to_i()),0===max&&(max=void 0)),$$$($$$("Random"),"DEFAULT").$rand(max))}),-1),$def(self,"$respond_to?",(function(name,include_all){null==include_all&&(include_all=!1);var body=this["$"+name];return"function"==typeof body&&!body.$$stub||!0!==this["$respond_to_missing?"].$$pristine&&this["$respond_to_missing?"](name,include_all)}),-2),$def(self,"$respond_to_missing?",(function(method_name,include_all){return null==include_all&&(include_all=!1),!1}),-2),$Opal.$pristine(self,"respond_to?","respond_to_missing?"),$def(self,"$require",(function(file){return"string"!=typeof file&&Opal.String&&Opal.Array&&(file=$Opal["$coerce_to!"](file,$$$("String"),"to_str")),Opal.require(file)}),1),$def(self,"$require_relative",(function(file){return $Opal["$try_convert!"](file,$$$("String"),"to_str"),file=$$$("File").$expand_path($$$("File").$join(Opal.current_file,"..",file)),Opal.require(file)}),1),$def(self,"$require_tree",(function(path,$kwargs){var autoload;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");null==(autoload=$kwargs.$$smap.autoload)&&(autoload=!1);var result=[];for(var name in path=$$$("File").$expand_path(path),"."===(path=Opal.normalize(path))&&(path=""),Opal.modules)name["$start_with?"](path)&&(autoload?result.push([name,!0]):result.push([name,Opal.require(name)]));return result}),-2),$def(self,"$singleton_class",(function(){return Opal.get_singleton_class(this)}),0),$def(self,"$sleep",(function(seconds){null==seconds&&(seconds=nil),seconds===nil&&$Kernel.$raise($$$("TypeError"),"can't convert NilClass into time interval"),seconds.$$is_number||$Kernel.$raise($$$("TypeError"),"can't convert "+seconds.$class()+" into time interval"),seconds<0&&$Kernel.$raise($$$("ArgumentError"),"time interval must be positive");for(var get_time=Opal.global.performance?function(){return performance.now()}:function(){return new Date},t=get_time();get_time()-t<=1e3*seconds;);return Math.round(seconds)}),-1),$def(self,"$srand",(function(seed){return null==seed&&(seed=$$("Random").$new_seed()),$$$("Random").$srand(seed)}),-1),$def(self,"$String",(function(str){var $ret_or_1;return $truthy($ret_or_1=$Opal["$coerce_to?"](str,$$$("String"),"to_str"))?$ret_or_1:$Opal["$coerce_to!"](str,$$$("String"),"to_s")}),1),$def(self,"$tap",(function $$tap(){var block=$$tap.$$p||nil;return delete $$tap.$$p,Opal.yield1(block,this),this}),0),$def(self,"$to_proc",(function(){return this}),0),$def(self,"$to_s",(function(){return"#<"+this.$class()+":0x"+this.$__id__().$to_s(16)+">"}),0),$def(self,"$catch",(function $Kernel_catch$17(tag){var $yield=$Kernel_catch$17.$$p||nil,$ret_or_1=nil,e=nil;delete $Kernel_catch$17.$$p,null==tag&&(tag=nil);try{return tag=$truthy($ret_or_1=tag)?$ret_or_1:$Object.$new(),Opal.yield1($yield,tag)}catch($err){if(!Opal.rescue($err,[$$$("UncaughtThrowError")]))throw $err;e=$err;try{return $eqeq(e.$tag(),tag)?e.$value():$Kernel.$raise()}finally{Opal.pop_exception()}}}),-1),$def(self,"$throw",(function(tag,obj){return null==obj&&(obj=nil),$Kernel.$raise($$$("UncaughtThrowError").$new(tag,obj))}),-2),$def(self,"$open",(function $$open($a){var args,block=$$open.$$p||nil;return delete $$open.$$p,args=Opal.slice.call(arguments),$send($$$("File"),"open",$to_a(args),block.$to_proc())}),-1),$def(self,"$yield_self",(function $$yield_self(){var $yield=$$yield_self.$$p||nil;return delete $$yield_self.$$p,$yield===nil?$send(this,"enum_for",["yield_self"],(function(){return 1}),0):Opal.yield1($yield,this)}),0),$alias(self,"fail","raise"),$alias(self,"kind_of?","is_a?"),$alias(self,"object_id","__id__"),$alias(self,"public_send","__send__"),$alias(self,"send","__send__"),$alias(self,"then","yield_self"),$alias(self,"to_enum","enum_for")}(0,[]),self=$klass("::",null,"Object"),delete $Object.$$prototype.$require,self.$include($Kernel)},Opal.modules["corelib/main"]=function(Opal){var self=Opal.top,$def=(Opal.nil,Opal.def),$Object=Opal.Object,$Kernel=Opal.Kernel;return Opal.add_stubs("include,raise"),function(self,$parent_nesting){return $def(self,"$to_s",(function(){return"main"}),0),$def(self,"$include",(function(mod){return $Object.$include(mod)}),1),$def(self,"$autoload",(function($a){var args;return args=Opal.slice.call(arguments),Opal.Object.$autoload.apply(Opal.Object,args)}),-1),$def(self,"$using",(function(mod){return $Kernel.$raise("main.using is permitted only at toplevel")}),1)}(Opal.get_singleton_class(self))},Opal.modules["corelib/error/errno"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$module=Opal.module,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$klass=Opal.klass;return Opal.add_stubs("+,errno,class,attr_reader"),function($base,$parent_nesting){var errors,i,self=$module("::","Errno"),klass=([self].concat($parent_nesting),nil);for(errors=[["EINVAL","Invalid argument",22],["EEXIST","File exists",17],["EISDIR","Is a directory",21],["EMFILE","Too many open files",24],["EACCES","Permission denied",13],["EPERM","Operation not permitted",1],["ENOENT","No such file or directory",2]],klass=nil,i=0;i0?args[0]:nil,error=new self.$$constructor(message);return error.name=self.$$name,error.message=message,error.cause=$gvars["!"],Opal.send(error,error.$initialize,args),Opal.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(error,stack_trace_limit),error}),-1),stack_trace_limit=self.$new,$defs(self,"$exception",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"new",$to_a($post_args))}),-1),$def(self,"$initialize",(function($a){var args,self=this;return args=Opal.slice.call(arguments),self.message=args.length>0?args[0]:nil}),-1),$def(self,"$backtrace",(function(){if(this.backtrace)return this.backtrace;var backtrace=this.stack;return void 0!==backtrace&&backtrace.$$is_string?this.backtrace=correct_backtrace(backtrace.split("\n").slice(0,15)):backtrace?this.backtrace=correct_backtrace(backtrace.slice(0,15)):[]}),0),$def(self,"$backtrace_locations",(function(){var $a;return this.backtrace_locations||(this.backtrace_locations=($a=this.$backtrace())===nil||null==$a?nil:$send($a,"map",[],(function(loc){return null==loc&&(loc=nil),$$$($$$($$$("Thread"),"Backtrace"),"Location").$new(loc)}),1)),this.backtrace_locations}),0),$def(self,"$cause",(function(){return this.cause||nil}),0),$def(self,"$exception",(function(str){if(null==str&&(str=nil),str===nil||this===str)return this;var cloned=this.$clone();return cloned.message=str,this.backtrace&&(cloned.backtrace=this.backtrace.$dup()),cloned.stack=this.stack,cloned.cause=this.cause,cloned}),-1),$def(self,"$message",(function(){return this.$to_s()}),0),$def(self,"$full_message",(function(kwargs){var $b,$ret_or_1,highlight,order,first,bold_underline=nil,bold=nil,reset=nil,bt=nil,msg=nil;return null==$gvars.stderr&&($gvars.stderr=nil),null==kwargs&&(kwargs=nil),$truthy($$("Hash","skip_raise")?"constant":nil)?(order=($b=[(kwargs=$hash2(["highlight","order"],{highlight:$gvars.stderr["$tty?"](),order:"top"}).$merge($truthy($ret_or_1=kwargs)?$ret_or_1:$hash2([],{})))["$[]"]("highlight"),kwargs["$[]"]("order")])[1],$truthy([!0,!1]["$include?"](highlight=$b[0]))||$Kernel.$raise($$$("ArgumentError"),"expected true or false as highlight: "+highlight),$truthy(["top","bottom"]["$include?"](order))||$Kernel.$raise($$$("ArgumentError"),"expected :top or :bottom as order: "+order),$truthy(highlight)?(bold_underline="",bold="",reset=""):bold_underline=bold=reset="",bt=this.$backtrace().$dup(),($not(bt)||$truthy(bt["$empty?"]()))&&(bt=this.$caller()),first=bt.$shift(),msg=$rb_plus(msg=first+": ",""+bold+this.$to_s()+" ("+bold_underline+this.$class()+reset+bold+")"+reset+"\n"),msg=$rb_plus(msg,$send(bt,"map",[],(function(loc){return null==loc&&(loc=nil),"\tfrom "+loc+"\n"}),1).$join()),$truthy(this.$cause())&&(msg=$rb_plus(msg,this.$cause().$full_message($hash2(["highlight"],{highlight:highlight})))),$eqeq(order,"bottom")&&(msg=msg.$split("\n").$reverse().$join("\n"),msg=$rb_plus(bold+"Traceback"+reset+" (most recent call last):\n",msg)),msg):this.message+"\n"+this.stack}),-1),$def(self,"$inspect",(function(){var as_str=nil;return as_str=this.$to_s(),$truthy(as_str["$empty?"]())?this.$class().$to_s():"#<"+this.$class().$to_s()+": "+this.$to_s()+">"}),0),$def(self,"$set_backtrace",(function(backtrace){var i,ii,valid=!0;if(backtrace===nil)this.backtrace=nil,this.stack="";else if(backtrace.$$is_string)this.backtrace=[backtrace],this.stack=" from "+backtrace;else{if(backtrace.$$is_array){for(i=0,ii=backtrace.length;i,length,Rational"),function($base,$super,$parent_nesting){var self=$klass("::",null,"NilClass");[self].concat($parent_nesting);return self.$$prototype.$$meta=self,function(self,$parent_nesting){$def(self,"$allocate",(function(){return $Kernel.$raise($$$("TypeError"),"allocator undefined for "+this.$name())}),0),Opal.udef(self,"$new")}(Opal.get_singleton_class(self)),$def(self,"$!",(function(){return!0}),0),$def(self,"$&",(function(other){return!1}),1),$def(self,"$|",(function(other){return!1!==other&&other!==nil}),1),$def(self,"$^",(function(other){return!1!==other&&other!==nil}),1),$def(self,"$==",(function(other){return other===nil}),1),$def(self,"$dup",(function(){return nil}),0),$def(self,"$clone",(function($kwargs){if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==$kwargs.$$smap.freeze&&!0,nil}),-1),$def(self,"$inspect",(function(){return"nil"}),0),$def(self,"$nil?",(function(){return!0}),0),$def(self,"$singleton_class",(function(){return $NilClass}),0),$def(self,"$to_a",(function(){return[]}),0),$def(self,"$to_h",(function(){return Opal.hash()}),0),$def(self,"$to_i",(function(){return 0}),0),$def(self,"$to_s",(function(){return""}),0),$def(self,"$to_c",(function(){return $$$("Complex").$new(0,0)}),0),$def(self,"$rationalize",(function($a){var $post_args;return $post_args=Opal.slice.call(arguments),$truthy($rb_gt($post_args.$length(),1))&&$Kernel.$raise($$$("ArgumentError")),$Kernel.$Rational(0,1)}),-1),$def(self,"$to_r",(function(){return $Kernel.$Rational(0,1)}),0),$def(self,"$instance_variables",(function(){return[]}),0),$alias(self,"to_f","to_i")}(0,0,[])},Opal.modules["corelib/boolean"]=function(Opal){"use strict";var nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$Kernel=Opal.Kernel,$def=Opal.def,$hash2=Opal.hash2,$truthy=Opal.truthy,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$alias=Opal.alias;return Opal.add_stubs("raise,name"),function($base,$super,$parent_nesting){var self=$klass("::",$super,"Boolean");[self].concat($parent_nesting);Opal.prop(self.$$prototype,"$$is_boolean",!0);for(var properties=["$$class","$$meta"],i=0;i,<,===,raise,class,<=>,equal?"),function($base){var self=$module("::","Comparable"),$ret_or_1=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $truthy(cmp)||function(lhs,rhs){var class_name;class_name=$eqeqeq(nil,$ret_or_1=rhs)||$eqeqeq(!0,$ret_or_1)||$eqeqeq(!1,$ret_or_1)||$eqeqeq($$$("Integer"),$ret_or_1)||$eqeqeq($$$("Float"),$ret_or_1)?rhs.$inspect():rhs.$$class,$Kernel.$raise($$$("ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return $def(self,"$==",(function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))}),1),$def(self,"$>",(function(other){return cmp_or_fail(this,other)>0}),1),$def(self,"$>=",(function(other){return cmp_or_fail(this,other)>=0}),1),$def(self,"$<",(function(other){return cmp_or_fail(this,other)<0}),1),$def(self,"$<=",(function(other){return cmp_or_fail(this,other)<=0}),1),$def(self,"$between?",(function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)}),2),$def(self,"$clamp",(function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||$Kernel.$raise($$$("TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&$Kernel.$raise($$$("ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&cmp_or_fail(min,max)>0&&$Kernel.$raise($$$("ArgumentError"),"min argument must be smaller than max argument"),min!==nil){if(0==(c=cmp_or_fail(this,min)))return this;if(c<0)return min}return max!==nil&&(c=cmp_or_fail(this,max))>0?max:this}),-2)}()},Opal.modules["corelib/regexp"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$coerce_to=Opal.coerce_to,$klass=Opal.klass,$const_set=Opal.const_set,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$truthy=Opal.truthy,$gvars=Opal.gvars,$Kernel=Opal.Kernel,$Opal=Opal.Opal,$alias=Opal.alias,$send=Opal.send,$hash2=Opal.hash2,$rb_plus=Opal.rb_plus,$rb_ge=Opal.rb_ge,$to_a=Opal.to_a,$eqeqeq=Opal.eqeqeq,$rb_minus=Opal.rb_minus;return Opal.add_stubs("nil?,[],raise,escape,options,to_str,new,join,coerce_to!,!,match,coerce_to?,begin,uniq,map,scan,source,to_proc,transform_values,group_by,each_with_index,+,last,=~,attr_reader,>=,length,is_a?,include?,names,regexp,named_captures,===,captures,-,inspect,empty?,each,to_a"),$klass("::",$$$("StandardError"),"RegexpError"),function($base,$super,$parent_nesting){var self=$klass("::",$super,"Regexp"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$const_set(self,"IGNORECASE",1),$const_set(self,"EXTENDED",2),$const_set(self,"MULTILINE",4),Opal.prop(self.$$prototype,"$$is_regexp",!0),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$allocate",(function $$allocate(){var $yield=$$allocate.$$p||nil,allocated=nil;return delete $$allocate.$$p,(allocated=$send2(this,$find_super(this,"allocate",$$allocate,!1,!0),"allocate",[],$yield)).uninitialized=!0,allocated}),0),$def(self,"$escape",(function(string){return Opal.escape_regexp(string)}),1),$def(self,"$last_match",(function(n){return null==$gvars["~"]&&($gvars["~"]=nil),null==n&&(n=nil),$truthy(n["$nil?"]())?$gvars["~"]:$truthy($gvars["~"])?$gvars["~"]["$[]"](n):nil}),-1),$def(self,"$union",(function($a){var parts,is_first_part_array,quoted_validated,part,options,each_part_options,self=this;if(0==(parts=Opal.slice.call(arguments)).length)return/(?!)/;if(1==parts.length&&parts[0].$$is_regexp)return parts[0];is_first_part_array=parts[0].$$is_array,parts.length>1&&is_first_part_array&&$Kernel.$raise($$$("TypeError"),"no implicit conversion of Array into String"),is_first_part_array&&(parts=parts[0]),options=void 0,quoted_validated=[];for(var i=0;i=pos)return $gvars["~"]=$$$("MatchData").$new(re,md),block===nil?$gvars["~"]:Opal.yield1(block,$gvars["~"]);re.lastIndex=md.index+1}}),-2),$def(self,"$match?",(function(string,pos){var md;return this.uninitialized&&$Kernel.$raise($$$("TypeError"),"uninitialized Regexp"),void 0===pos?string!==nil&&this.test($coerce_to(string,$$$("String"),"to_str")):(pos=$coerce_to(pos,$$$("Integer"),"to_int"),string!==nil&&(string=$coerce_to(string,$$$("String"),"to_str"),!(pos<0&&(pos+=string.length)<0)&&!(null===(md=Opal.global_regexp(this).exec(string))||md.index/,$hash2(["no_matchdata"],{no_matchdata:!0})),"map",[],"first".$to_proc()).$uniq()}),0),$def(self,"$named_captures",(function(){return $send($send($send(this.$source().$scan(/\(?<(\w+)>/,$hash2(["no_matchdata"],{no_matchdata:!0})),"map",[],"first".$to_proc()).$each_with_index(),"group_by",[],"first".$to_proc()),"transform_values",[],(function(i){return null==i&&(i=nil),$send(i,"map",[],(function(j){return null==j&&(j=nil),$rb_plus(j.$last(),1)}),1)}),1)}),0),$def(self,"$~",(function(){return null==$gvars._&&($gvars._=nil),this["$=~"]($gvars._)}),0),$def(self,"$source",(function(){return this.source}),0),$def(self,"$options",(function(){this.uninitialized&&$Kernel.$raise($$$("TypeError"),"uninitialized Regexp");var result=0;return this.multiline&&(result|=$$("MULTILINE")),this.ignoreCase&&(result|=$$("IGNORECASE")),result}),0),$def(self,"$casefold?",(function(){return this.ignoreCase}),0),$alias(self,"eql?","=="),$alias(self,"to_s","source")}(0,RegExp,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"MatchData"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.matches=nil,self.$attr_reader("post_match","pre_match","regexp","string"),$def(self,"$initialize",(function(regexp,match_groups,$kwargs){var no_matchdata;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");null==(no_matchdata=$kwargs.$$smap.no_matchdata)&&(no_matchdata=!1),$truthy(no_matchdata)||($gvars["~"]=this),this.regexp=regexp,this.begin=match_groups.index,this.string=match_groups.input,this.pre_match=match_groups.input.slice(0,match_groups.index),this.post_match=match_groups.input.slice(match_groups.index+match_groups[0].length),this.matches=[];for(var i=0,length=match_groups.length;i"}),0),$def(self,"$length",(function(){return this.matches.length}),0),$def(self,"$to_a",(function(){return this.matches}),0),$def(self,"$to_s",(function(){return this.matches[0]}),0),$def(self,"$values_at",(function($a){var args,self=this;args=Opal.slice.call(arguments);var i,a,index,values=[];for(i=0;i,==,=~,new,force_encoding,casecmp,empty?,ljust,ceil,/,+,rjust,floor,coerce_to!,copy_singleton_methods,initialize_clone,initialize_dup,enum_for,chomp,[],to_i,each_line,to_proc,to_a,class,match,match?,captures,proc,succ,escape,include?,upcase,unicode_normalize,pristine"),self.$require("corelib/comparable"),self.$require("corelib/regexp"),function($base,$super,$parent_nesting){var self=$klass("::",String,"String"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);function char_class_from_char_sets(sets){function explode_sequences_in_character_set(set){var i,curr_char,skip_next_dash,char_code_from,char_code_upto,char_code,result="",len=set.length;for(i=0;i0&&i(char_code_upto=set.charCodeAt(i+1))&&$Kernel.$raise($$$("ArgumentError"),'invalid range "'+char_code_from+"-"+char_code_upto+'" in string transliteration'),char_code=char_code_from+1;char_code1,set=explode_sequences_in_character_set(neg?set.slice(1):set),neg?neg_intersection=intersection(neg_intersection,set):pos_intersection=intersection(pos_intersection,set);if(pos_intersection.length>0&&neg_intersection.length>0){for(tmp="",i=0,len=pos_intersection.length;i0?"["+$$$("Regexp").$escape(pos_intersection)+"]":neg_intersection.length>0?"[^"+$$$("Regexp").$escape(neg_intersection)+"]":null}self.$include($$$("Comparable")),Opal.prop(self.$$prototype,"$$is_string",!0),Opal.prop(self.$$prototype,"$$cast",(function(string){var klass=this.$$class;return klass.$$constructor===String?string:new klass.$$constructor(string)})),$def(self,"$__id__",(function(){return this.toString()}),0),$defs(self,"$try_convert",(function(what){return $Opal["$coerce_to?"](what,$$$("String"),"to_str")}),1),$defs(self,"$new",(function($a){var args,self=this,str=(args=Opal.slice.call(arguments))[0]||"",opts=args[args.length-1];return str=$coerce_to(str,$$$("String"),"to_str"),opts&&opts.$$is_hash&&opts.$$smap.encoding&&(str=str.$force_encoding(opts.$$smap.encoding)),(str=new self.$$constructor(str)).$initialize.$$pristine||$send(str,"initialize",$to_a(args)),str}),-1),$def(self,"$initialize",(function($a,$b){var $post_args,$kwargs;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $post_args.length>0&&$post_args.shift(),null==$kwargs.$$smap.encoding&&nil,null==$kwargs.$$smap.capacity&&nil,nil}),-1),$def(self,"$%",(function(data){var self=this;return $eqeqeq($$$("Array"),data)?$send(self,"format",[self].concat($to_a(data))):self.$format(self,data)}),1),$def(self,"$*",(function(count){if((count=$coerce_to(count,$$$("Integer"),"to_int"))<0&&$Kernel.$raise($$$("ArgumentError"),"negative argument"),0===count)return this.$$cast("");var result="",string=this.toString();for(string.length*count>=1<<28&&$Kernel.$raise($$$("RangeError"),"multiply count must not overflow maximum string size");1==(1&count)&&(result+=string),0!==(count>>>=1);)string+=string;return this.$$cast(result)}),1),$def(self,"$+",(function(other){if(""==(other=$coerce_to(other,$$$("String"),"to_str"))&&this.$$class===Opal.String)return this;if(""==this&&other.$$class===Opal.String)return other;var out=this+other;return this.encoding===out.encoding&&other.encoding===out.encoding||"UTF-8"===this.encoding.name||"UTF-8"===other.encoding.name?out:Opal.enc(out,this.encoding)}),1),$def(self,"$<=>",(function(other){if($truthy(other["$respond_to?"]("to_str")))return this>(other=other.$to_str().$to_s())?1:this"](this);return cmp===nil?nil:cmp>0?-1:cmp<0?1:0}),1),$def(self,"$==",(function(other){return other.$$is_string?this.toString()===other.toString():!!$respond_to(other,"$to_str")&&other["$=="](this)}),1),$def(self,"$=~",(function(other){return other.$$is_string&&$Kernel.$raise($$$("TypeError"),"type mismatch: String given"),other["$=~"](this)}),1),$def(self,"$[]",(function(index,length){var exclude,range,size=this.length;if(index.$$is_range)return exclude=index.excl,range=index,length=index.end===nil?-1:$coerce_to(index.end,$$$("Integer"),"to_int"),index=index.begin===nil?0:$coerce_to(index.begin,$$$("Integer"),"to_int"),Math.abs(index)>size?nil:(index<0&&(index+=size),length<0&&(length+=size),exclude&&range.end!==nil||(length+=1),(length-=index)<0&&(length=0),this.$$cast(this.substr(index,length)));if(index.$$is_string)return null!=length&&$Kernel.$raise($$$("TypeError")),-1!==this.indexOf(index)?this.$$cast(index):nil;if(index.$$is_regexp){var match=this.match(index);return null===match?($gvars["~"]=nil,nil):($gvars["~"]=$$$("MatchData").$new(index,match),null==length?this.$$cast(match[0]):(length=$coerce_to(length,$$$("Integer"),"to_int"))<0&&-length=0&&length=size||index<0?nil:this.$$cast(this.substr(index,1)):(length=$coerce_to(length,$$$("Integer"),"to_int"))<0||index>size||index<0?nil:this.$$cast(this.substr(index,length))}),-2),$def(self,"$b",(function(){return new String(this).$force_encoding("binary")}),0),$def(self,"$capitalize",(function(){return this.$$cast(this.charAt(0).toUpperCase()+this.substr(1).toLowerCase())}),0),$def(self,"$casecmp",(function(other){var self=this;if(!$truthy(other["$respond_to?"]("to_str")))return nil;other=$coerce_to(other,$$$("String"),"to_str").$to_s();var ascii_only=/^[\x00-\x7F]*$/;return ascii_only.test(self)&&ascii_only.test(other)&&(self=self.toLowerCase(),other=other.toLowerCase()),self["$<=>"](other)}),1),$def(self,"$casecmp?",(function(other){var cmp=this.$casecmp(other);return cmp===nil?nil:0===cmp}),1),$def(self,"$center",(function(width,padstr){if(null==padstr&&(padstr=" "),width=$coerce_to(width,$$$("Integer"),"to_int"),padstr=$coerce_to(padstr,$$$("String"),"to_str").$to_s(),$truthy(padstr["$empty?"]())&&$Kernel.$raise($$$("ArgumentError"),"zero width padding"),$truthy(width<=this.length))return this;var ljustified=this.$ljust($rb_divide($rb_plus(width,this.length),2).$ceil(),padstr),rjustified=this.$rjust($rb_divide($rb_plus(width,this.length),2).$floor(),padstr);return this.$$cast(rjustified+ljustified.slice(this.length))}),-2),$def(self,"$chomp",(function(separator){var result;if(null==$gvars["/"]&&($gvars["/"]=nil),null==separator&&(separator=$gvars["/"]),$truthy(separator===nil||0===this.length))return this;if("\n"===(separator=$Opal["$coerce_to!"](separator,$$$("String"),"to_str").$to_s()))result=this.replace(/\r?\n?$/,"");else if(""===separator)result=this.replace(/(\r?\n)+$/,"");else if(this.length>=separator.length){this.substr(this.length-separator.length,separator.length)===separator&&(result=this.substr(0,this.length-separator.length))}return null!=result?this.$$cast(result):this}),-1),$def(self,"$chop",(function(){var result,length=this.length;return result=length<=1?"":"\n"===this.charAt(length-1)&&"\r"===this.charAt(length-2)?this.substr(0,length-2):this.substr(0,length-1),this.$$cast(result)}),0),$def(self,"$chr",(function(){return this.charAt(0)}),0),$def(self,"$clone",(function(){var copy=nil;return(copy=new String(this)).$copy_singleton_methods(this),copy.$initialize_clone(this),copy}),0),$def(self,"$dup",(function(){var copy=nil;return(copy=new String(this)).$initialize_dup(this),copy}),0),$def(self,"$count",(function($a){var sets,self=this;0===(sets=Opal.slice.call(arguments)).length&&$Kernel.$raise($$$("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");var char_class=char_class_from_char_sets(sets);return null===char_class?0:self.length-self.replace(new RegExp(char_class,"g"),"").length}),-1),$def(self,"$delete",(function($a){var sets,self=this;0===(sets=Opal.slice.call(arguments)).length&&$Kernel.$raise($$$("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");var char_class=char_class_from_char_sets(sets);return null===char_class?self:self.$$cast(self.replace(new RegExp(char_class,"g"),""))}),-1),$def(self,"$delete_prefix",(function(prefix){return prefix.$$is_string||(prefix=$coerce_to(prefix,$$$("String"),"to_str")),this.slice(0,prefix.length)===prefix?this.$$cast(this.slice(prefix.length)):this}),1),$def(self,"$delete_suffix",(function(suffix){return suffix.$$is_string||(suffix=$coerce_to(suffix,$$$("String"),"to_str")),this.slice(this.length-suffix.length)===suffix?this.$$cast(this.slice(0,this.length-suffix.length)):this}),1),$def(self,"$downcase",(function(){return this.$$cast(this.toLowerCase())}),0),$def(self,"$each_line",(function $$each_line($a,$b){var $post_args,$kwargs,separator,chomp,a,i,n,length,chomped,trailing,splitted,value,block=$$each_line.$$p||nil,self=this;if(null==$gvars["/"]&&($gvars["/"]=nil),delete $$each_line.$$p,$post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if($post_args.length>0&&(separator=$post_args.shift()),null==separator&&(separator=$gvars["/"]),null==(chomp=$kwargs.$$smap.chomp)&&(chomp=!1),block===nil)return self.$enum_for("each_line",separator,$hash2(["chomp"],{chomp:chomp}));if(separator===nil)return Opal.yield1(block,self),self;if(0===(separator=$coerce_to(separator,$$$("String"),"to_str")).length){for(i=0,n=(a=self.split(/((?:\r?\n){2})(?:(?:\r?\n)*)/)).length;i=suffix.length&&self.substr(self.length-suffix.length,suffix.length)==suffix)return!0}return!1}),-1),$def(self,"$gsub",(function $$gsub(pattern,replacement){var block=$$gsub.$$p||nil,self=this;if(delete $$gsub.$$p,void 0===replacement&&block===nil)return self.$enum_for("gsub",pattern);var match,_replacement,lastIndex,result="",match_data=nil,index=0;for(pattern.$$is_regexp?pattern=$global_multiline_regexp(pattern):(pattern=$coerce_to(pattern,$$$("String"),"to_str"),pattern=new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));;){if(null===(match=pattern.exec(self))){$gvars["~"]=nil,result+=self.slice(index);break}match_data=$$$("MatchData").$new(pattern,match),void 0===replacement?(lastIndex=pattern.lastIndex,_replacement=block(match[0]),pattern.lastIndex=lastIndex):replacement.$$is_hash?_replacement=replacement["$[]"](match[0]).$to_s():(replacement.$$is_string||(replacement=$coerce_to(replacement,$$$("String"),"to_str")),_replacement=replacement.replace(/([\\]+)([0-9+&`'])/g,(function(original,slashes,command){if(slashes.length%2==0)return original;switch(command){case"+":for(var i=match.length-1;i>0;i--)if(void 0!==match[i])return slashes.slice(1)+match[i];return"";case"&":return slashes.slice(1)+match[0];case"`":return slashes.slice(1)+self.slice(0,match.index);case"'":return slashes.slice(1)+self.slice(match.index+match[0].length);default:return slashes.slice(1)+(match[command]||"")}})).replace(/\\\\/g,"\\")),pattern.lastIndex===match.index?(result+=self.slice(index,match.index)+_replacement+(self[match.index]||""),pattern.lastIndex+=1):result+=self.slice(index,match.index)+_replacement,index=pattern.lastIndex}return $gvars["~"]=match_data,self.$$cast(result)}),-2),$def(self,"$hash",(function(){return this.toString()}),0),$def(self,"$hex",(function(){return this.$to_i(16)}),0),$def(self,"$include?",(function(other){return other.$$is_string||(other=$coerce_to(other,$$$("String"),"to_str")),-1!==this.indexOf(other)}),1),$def(self,"$index",(function(search,offset){var index,match,regex;if(void 0===offset)offset=0;else if((offset=$coerce_to(offset,$$$("Integer"),"to_int"))<0&&(offset+=this.length)<0)return nil;if(search.$$is_regexp)for(regex=$global_multiline_regexp(search);;){if(null===(match=regex.exec(this))){$gvars["~"]=nil,index=-1;break}if(match.index>=offset){$gvars["~"]=$$$("MatchData").$new(regex,match),index=match.index;break}regex.lastIndex=match.index+1}else index=0===(search=$coerce_to(search,$$$("String"),"to_str")).length&&offset>this.length?-1:this.indexOf(search,offset);return-1===index?nil:index}),-2),$def(self,"$inspect",(function(){var self=this,meta={"":"\\a","":"\\e","\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\v":"\\v",'"':'\\"',"\\":"\\\\"};return'"'+self.replace(/[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,(function(chr){return meta[chr]?meta[chr]:(chr=chr.charCodeAt(0))<=255&&(self.encoding["$binary?"]()||self.internal_encoding["$binary?"]())?"\\x"+("00"+chr.toString(16).toUpperCase()).slice(-2):"\\u"+("0000"+chr.toString(16).toUpperCase()).slice(-4)})).replace(/\#[\$\@\{]/g,"\\$&")+'"'}),0),$def(self,"$intern",(function(){return this.toString()}),0),$def(self,"$lines",(function $$lines($a,$b){var $post_args,$kwargs,separator,chomp,block=$$lines.$$p||nil,self=this,e=nil;if(null==$gvars["/"]&&($gvars["/"]=nil),delete $$lines.$$p,$post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $post_args.length>0&&(separator=$post_args.shift()),null==separator&&(separator=$gvars["/"]),null==(chomp=$kwargs.$$smap.chomp)&&(chomp=!1),e=$send(self,"each_line",[separator,$hash2(["chomp"],{chomp:chomp})],block.$to_proc()),$truthy(block)?self:e.$to_a()}),-1),$def(self,"$ljust",(function(width,padstr){if(null==padstr&&(padstr=" "),width=$coerce_to(width,$$$("Integer"),"to_int"),padstr=$coerce_to(padstr,$$$("String"),"to_str").$to_s(),$truthy(padstr["$empty?"]())&&$Kernel.$raise($$$("ArgumentError"),"zero width padding"),$truthy(width<=this.length))return this;var index=-1,result="";for(width-=this.length;++index=48&&code<=57||code>=65&&code<=90||code>=97&&code<=122)switch(code){case 57:carry=!0,code=48;break;case 90:carry=!0,code=65;break;case 122:carry=!0,code=97;break;default:carry=!1,code+=1}else-1===first_alphanum_char_index?255===code?(carry=!0,code=0):(carry=!1,code+=1):carry=!0;if(result=result.slice(0,i)+String.fromCharCode(code)+result.slice(i+1),carry&&(0===i||i===first_alphanum_char_index)){switch(code){case 65:case 97:break;default:code+=1}result=0===i?String.fromCharCode(code)+result:result.slice(0,i)+String.fromCharCode(code)+result.slice(i),carry=!1}if(!carry)break}return this.$$cast(result)}),0),$def(self,"$oct",(function(){var result,string=this,radix=8;return/^\s*_/.test(string)?0:(string=string.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,(function(original,head,flag,tail){switch(tail.charAt(0)){case"+":case"-":return original;case"0":if("x"===tail.charAt(1)&&"0x"===flag)return original}switch(flag){case"0b":radix=2;break;case"0":case"0o":radix=8;break;case"0d":radix=10;break;case"0x":radix=16}return head+tail})),result=parseInt(string.replace(/_(?!_)/g,""),radix),isNaN(result)?0:result)}),0),$def(self,"$ord",(function(){return"function"==typeof this.codePointAt?this.codePointAt(0):this.charCodeAt(0)}),0),$def(self,"$partition",(function(sep){var i,m;return sep.$$is_regexp?null===(m=sep.exec(this))?i=-1:($$$("MatchData").$new(sep,m),sep=m[0],i=m.index):(sep=$coerce_to(sep,$$$("String"),"to_str"),i=this.indexOf(sep)),-1===i?[this,"",""]:[this.slice(0,i),this.slice(i,i+sep.length),this.slice(i+sep.length)]}),1),$def(self,"$reverse",(function(){return this.split("").reverse().join("")}),0),$def(self,"$rindex",(function(search,offset){var i,m,r,_m;if(void 0===offset)offset=this.length;else if((offset=$coerce_to(offset,$$$("Integer"),"to_int"))<0&&(offset+=this.length)<0)return nil;if(search.$$is_regexp){for(m=null,r=$global_multiline_regexp(search);!(null===(_m=r.exec(this))||_m.index>offset);)m=_m,r.lastIndex=m.index+1;null===m?($gvars["~"]=nil,i=-1):($$$("MatchData").$new(r,m),i=m.index)}else search=$coerce_to(search,$$$("String"),"to_str"),i=this.lastIndexOf(search,offset);return-1===i?nil:i}),-2),$def(self,"$rjust",(function(width,padstr){if(null==padstr&&(padstr=" "),width=$coerce_to(width,$$$("Integer"),"to_int"),padstr=$coerce_to(padstr,$$$("String"),"to_str").$to_s(),$truthy(padstr["$empty?"]())&&$Kernel.$raise($$$("ArgumentError"),"zero width padding"),$truthy(width<=this.length))return this;var chars=Math.floor(width-this.length),patterns=Math.floor(chars/padstr.length),result=Array(patterns+1).join(padstr),remaining=chars-result.length;return this.$$cast(result+padstr.slice(0,remaining)+this)}),-2),$def(self,"$rpartition",(function(sep){var i,m,r,_m;if(sep.$$is_regexp){for(m=null,r=$global_multiline_regexp(sep);null!==(_m=r.exec(this));)m=_m,r.lastIndex=m.index+1;null===m?i=-1:($$$("MatchData").$new(r,m),sep=m[0],i=m.index)}else sep=$coerce_to(sep,$$$("String"),"to_str"),i=this.lastIndexOf(sep);return-1===i?["","",this]:[this.slice(0,i),this.slice(i,i+sep.length),this.slice(i+sep.length)]}),1),$def(self,"$rstrip",(function(){return this.replace(/[\s\u0000]*$/,"")}),0),$def(self,"$scan",(function $$scan(pattern,$kwargs){var no_matchdata,block=$$scan.$$p||nil;if(delete $$scan.$$p,null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");null==(no_matchdata=$kwargs.$$smap.no_matchdata)&&(no_matchdata=!1);var match,result=[],match_data=nil;for(pattern.$$is_regexp?pattern=$global_multiline_regexp(pattern):(pattern=$coerce_to(pattern,$$$("String"),"to_str"),pattern=new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));null!=(match=pattern.exec(this));)match_data=$$$("MatchData").$new(pattern,match,$hash2(["no_matchdata"],{no_matchdata:no_matchdata})),block===nil?1==match.length?result.push(match[0]):result.push(match_data.$captures()):1==match.length?Opal.yield1(block,match[0]):Opal.yield1(block,match_data.$captures()),pattern.lastIndex===match.index&&(pattern.lastIndex+=1);return no_matchdata||($gvars["~"]=match_data),block!==nil?this:result}),-2),$def(self,"$singleton_class",(function(){return Opal.get_singleton_class(this)}),0),$def(self,"$split",(function(pattern,limit){var self=this,$ret_or_1=nil;if(null==$gvars[";"]&&($gvars[";"]=nil),0===self.length)return[];if(void 0===limit)limit=0;else if(1===(limit=$Opal["$coerce_to!"](limit,$$$("Integer"),"to_int")))return[self];void 0!==pattern&&pattern!==nil||(pattern=$truthy($ret_or_1=$gvars[";"])?$ret_or_1:" ");var match,i,ii,result=[],string=self.toString(),index=0;if(pattern.$$is_regexp?pattern=$global_multiline_regexp(pattern):" "===(pattern=$coerce_to(pattern,$$$("String"),"to_str").$to_s())?(pattern=/\s+/gm,string=string.replace(/^\s+/,"")):pattern=new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"),1===(result=string.split(pattern)).length&&result[0]===string)return[self.$$cast(result[0])];for(;-1!==(i=result.indexOf(void 0));)result.splice(i,1);function castResult(){for(i=0;i=result.length)return castResult(),result;for(i=0;null!==match&&(i++,index=pattern.lastIndex,i+1!==limit);)match=pattern.exec(string);return result.splice(limit-1,result.length-1,string.slice(index)),castResult(),result}),-1),$def(self,"$squeeze",(function($a){var sets,self=this;if(0===(sets=Opal.slice.call(arguments)).length)return self.$$cast(self.replace(/(.)\1+/g,"$1"));var char_class=char_class_from_char_sets(sets);return null===char_class?self:self.$$cast(self.replace(new RegExp("("+char_class+")\\1+","g"),"$1"))}),-1),$def(self,"$start_with?",(function($a){for(var prefixes,self=this,i=0,length=(prefixes=Opal.slice.call(arguments)).length;i0;i--)if(void 0!==match[i])return slashes.slice(1)+match[i];return"";case"&":return slashes.slice(1)+match[0];case"`":return slashes.slice(1)+self.slice(0,match.index);case"'":return slashes.slice(1)+self.slice(match.index+match[0].length);default:return slashes.slice(1)+(match[command]||"")}})).replace(/\\\\/g,"\\"),result=self.slice(0,match.index)+replacement+self.slice(match.index+match[0].length))),self.$$cast(result)}),-2),$def(self,"$sum",(function(n){null==n&&(n=16),n=$coerce_to(n,$$$("Integer"),"to_int");for(var result=0,length=this.length,i=0;i36)&&$Kernel.$raise($$$("ArgumentError"),"invalid radix "+radix),/^\s*_/.test(string)?0:(string=string.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,(function(original,head,flag,tail){switch(tail.charAt(0)){case"+":case"-":return original;case"0":if("x"===tail.charAt(1)&&"0x"===flag&&(0===radix||16===radix))return original}switch(flag){case"0b":if(0===radix||2===radix)return radix=2,head+tail;break;case"0":case"0o":if(0===radix||8===radix)return radix=8,head+tail;break;case"0d":if(0===radix||10===radix)return radix=10,head+tail;break;case"0x":if(0===radix||16===radix)return radix=16,head+tail}return original})),result=parseInt(string.replace(/_(?!_)/g,""),radix),isNaN(result)?0:result)}),-1),$def(self,"$to_proc",(function $$to_proc(){var method_name;return delete $$to_proc.$$p,method_name=$rb_plus("$",this.valueOf()),$send($Kernel,"proc",[],(function $$17($a){var args,block=$$17.$$p||nil;delete $$17.$$p,0===(args=Opal.slice.call(arguments)).length&&$Kernel.$raise($$$("ArgumentError"),"no receiver given");var recv=args[0];null==recv&&(recv=nil);var body=recv[method_name];return body?("function"==typeof block&&(body.$$p=block),1===args.length?body.call(recv):body.apply(recv,args.slice(1))):recv.$method_missing.apply(recv,args)}),-1)}),0),$def(self,"$to_s",(function(){return this.toString()}),0),$def(self,"$tr",(function(from,to){var i,in_range,c,ch,start,end,length;if(from=$coerce_to(from,$$$("String"),"to_str").$to_s(),to=$coerce_to(to,$$$("String"),"to_str").$to_s(),0==from.length||from===to)return this;var subs={},from_chars=from.split(""),from_length=from_chars.length,to_chars=to.split(""),to_length=to_chars.length,inverse=!1,global_sub=null;"^"===from_chars[0]&&from_chars.length>1&&(inverse=!0,from_chars.shift(),global_sub=to_chars[to_length-1],from_length-=1);var from_chars_expanded=[],last_from=null;for(in_range=!1,i=0;i(end=ch.charCodeAt(0))&&$Kernel.$raise($$$("ArgumentError"),'invalid range "'+String.fromCharCode(start)+"-"+String.fromCharCode(end)+'" in string transliteration'),c=start+1;c0){var to_chars_expanded=[],last_to=null;for(in_range=!1,i=0;i(end=ch.charCodeAt(0))&&$Kernel.$raise($$$("ArgumentError"),'invalid range "'+String.fromCharCode(start)+"-"+String.fromCharCode(end)+'" in string transliteration'),c=start+1;c0){var pad_char=to_length>0?to_chars[to_length-1]:"";for(i=0;i1&&(inverse=!0,from_chars.shift(),global_sub=to_chars[to_length-1],from_length-=1);var from_chars_expanded=[],last_from=null;for(in_range=!1,i=0;i(end=ch.charCodeAt(0))&&$Kernel.$raise($$$("ArgumentError"),'invalid range "'+String.fromCharCode(start)+"-"+String.fromCharCode(end)+'" in string transliteration'),c=start+1;c0){var to_chars_expanded=[];for(in_range=!1,i=0;i(end=ch.charCodeAt(0))&&$Kernel.$raise($$$("ArgumentError"),'invalid range "'+String.fromCharCode(start)+"-"+String.fromCharCode(end)+'" in string transliteration'),c=start+1;c0){var pad_char=to_length>0?to_chars[to_length-1]:"";for(i=0;i,*,try_convert,<,+,-,ceil,/,size,select,to_proc,__send__,length,<=,[],push,<<,[]=,===,inspect,<=>,first,reverse,sort,take,sort_by,compare,call,dup,sort!,map!,include?,-@,key?,values,transform_values,group_by,fetch,to_h,coerce_to?,class,zip"),function($base){var self=$module("::","Enumerable");function comparableForPattern(value){return 0===value.length&&(value=[nil]),value.length>1&&(value=[value]),value}return $def(self,"$all?",(function $Enumerable_all$ques$1(pattern){try{var block=$Enumerable_all$ques$1.$$p||nil;return delete $Enumerable_all$ques$1.$$p,$truthy(void 0!==pattern)?$send(this,"each",[],(function($a){var comparable=nil;if(comparable=comparableForPattern(Opal.slice.call(arguments)),$truthy($send(pattern,"public_send",["==="].concat($to_a(comparable)))))return nil;Opal.ret(!1)}),-1):$send(this,"each",[],block!==nil?function($a){var value;if(value=Opal.slice.call(arguments),$truthy(Opal.yieldX(block,$to_a(value))))return nil;Opal.ret(!1)}:function($a){var value;if(value=Opal.slice.call(arguments),$truthy($Opal.$destructure(value)))return nil;Opal.ret(!1)},-1),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$any?",(function $Enumerable_any$ques$5(pattern){try{var block=$Enumerable_any$ques$5.$$p||nil;return delete $Enumerable_any$ques$5.$$p,$truthy(void 0!==pattern)?$send(this,"each",[],(function($a){var comparable=nil;if(comparable=comparableForPattern(Opal.slice.call(arguments)),!$truthy($send(pattern,"public_send",["==="].concat($to_a(comparable)))))return nil;Opal.ret(!0)}),-1):$send(this,"each",[],block!==nil?function($a){var value;if(value=Opal.slice.call(arguments),!$truthy(Opal.yieldX(block,$to_a(value))))return nil;Opal.ret(!0)}:function($a){var value;if(value=Opal.slice.call(arguments),!$truthy($Opal.$destructure(value)))return nil;Opal.ret(!0)},-1),!1}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$chunk",(function $$chunk(){var block=$$chunk.$$p||nil;return delete $$chunk.$$p,block===nil?$send(this,"to_enum",["chunk"],(function $$9(){return(null==$$9.$$s?this:$$9.$$s).$enumerator_size()}),{$$arity:0,$$s:this}):$send($$$("Enumerator"),"new",[],(function $$10(yielder){var self=null==$$10.$$s?this:$$10.$$s;null==yielder&&(yielder=nil);var previous=nil,accumulate=[];function releaseAccumulate(){accumulate.length>0&&yielder.$yield(previous,accumulate)}self.$each.$$p=function(value){var key=$yield1(block,value);key===nil?(releaseAccumulate(),accumulate=[],previous=nil):(previous===nil||previous===key?accumulate.push(value):(releaseAccumulate(),accumulate=[value]),previous=key)},self.$each(),releaseAccumulate()}),{$$arity:1,$$s:this})}),0),$def(self,"$chunk_while",(function $$chunk_while(){var block=$$chunk_while.$$p||nil;return delete $$chunk_while.$$p,block===nil&&$Kernel.$raise($$$("ArgumentError"),"no block given"),$send(this,"slice_when",[],(function(before,after){return null==before&&(before=nil),null==after&&(after=nil),Opal.yieldX(block,[before,after])["$!"]()}),2)}),0),$def(self,"$collect",(function $$collect(){var block=$$collect.$$p||nil;if(delete $$collect.$$p,block===nil)return $send(this,"enum_for",["collect"],(function $$12(){return(null==$$12.$$s?this:$$12.$$s).$enumerator_size()}),{$$arity:0,$$s:this});var result=[];return this.$each.$$p=function(){var value=$yieldX(block,arguments);result.push(value)},this.$each(),result}),0),$def(self,"$collect_concat",(function $$collect_concat(){var block=$$collect_concat.$$p||nil;return delete $$collect_concat.$$p,block===nil?$send(this,"enum_for",["collect_concat"],(function $$13(){return(null==$$13.$$s?this:$$13.$$s).$enumerator_size()}),{$$arity:0,$$s:this}):$send(this,"map",[],(function(item){return null==item&&(item=nil),Opal.yield1(block,item)}),1).$flatten(1)}),0),$def(self,"$compact",(function(){return this.$to_a().$compact()}),0),$def(self,"$count",(function $$count(object){var block=$$count.$$p||nil,result=nil;return delete $$count.$$p,result=0,null!=object&&block!==nil&&this.$warn("warning: given block not used"),$truthy(null!=object)?block=$send($Kernel,"proc",[],(function($a){var args;return args=Opal.slice.call(arguments),$Opal.$destructure(args)["$=="](object)}),-1):$truthy(block["$nil?"]())&&(block=$send($Kernel,"proc",[],(function(){return!0}),0)),$send(this,"each",[],(function($a){var $post_args;return $post_args=Opal.slice.call(arguments),$truthy($yieldX(block,$post_args))?result++:nil}),-1),result}),-1),$def(self,"$cycle",(function $$cycle(n){var block=$$cycle.$$p||nil;if(delete $$cycle.$$p,null==n&&(n=nil),block===nil)return $send(this,"enum_for",["cycle",n],(function $$18(){var self=null==$$18.$$s?this:$$18.$$s;return $truthy(n["$nil?"]())?$truthy(self["$respond_to?"]("size"))?$$$($$$("Float"),"INFINITY"):nil:(n=$Opal["$coerce_to!"](n,$$$("Integer"),"to_int"),$truthy($rb_gt(n,0))?$rb_times(self.$enumerator_size(),n):0)}),{$$arity:0,$$s:this});if(!$truthy(n["$nil?"]())&&(n=$Opal["$coerce_to!"](n,$$$("Integer"),"to_int"),$truthy(n<=0)))return nil;var i,length,all=[];if(this.$each.$$p=function(){var param=$Opal.$destructure(arguments);$yield1(block,param);all.push(param)},this.$each(),0===all.length)return nil;if(n===nil)for(;;)for(i=0,length=all.length;i1;){for(i=0,length=all.length;in&&buffer.shift(),buffer.length==n&&$yield1(block,buffer.slice(0,n))},self.$each(),self}),1),$def(self,"$each_entry",(function $$each_entry($a){var data,block=$$each_entry.$$p||nil,self=this;return delete $$each_entry.$$p,data=Opal.slice.call(arguments),block===nil?$send(self,"to_enum",["each_entry"].concat($to_a(data)),(function $$21(){return(null==$$21.$$s?this:$$21.$$s).$enumerator_size()}),{$$arity:0,$$s:self}):(self.$each.$$p=function(){var item=$Opal.$destructure(arguments);$yield1(block,item)},self.$each.apply(self,data),self)}),-1),$def(self,"$each_slice",(function $$each_slice(n){var block=$$each_slice.$$p||nil;if(delete $$each_slice.$$p,n=$coerce_to(n,$$$("Integer"),"to_int"),$truthy(n<=0)&&$Kernel.$raise($$$("ArgumentError"),"invalid slice size"),block===nil)return $send(this,"enum_for",["each_slice",n],(function $$22(){var self=null==$$22.$$s?this:$$22.$$s;return $truthy(self["$respond_to?"]("size"))?$rb_divide(self.$size(),n).$ceil():nil}),{$$arity:0,$$s:this});var slice=[];return this.$each.$$p=function(){var param=$Opal.$destructure(arguments);slice.push(param),slice.length===n&&($yield1(block,slice),slice=[])},this.$each(),slice.length>0&&$yield1(block,slice),this}),1),$def(self,"$each_with_index",(function $$each_with_index($a){var args,block=$$each_with_index.$$p||nil,self=this;if(delete $$each_with_index.$$p,args=Opal.slice.call(arguments),block===nil)return $send(self,"enum_for",["each_with_index"].concat($to_a(args)),(function $$23(){return(null==$$23.$$s?this:$$23.$$s).$enumerator_size()}),{$$arity:0,$$s:self});var index=0;return self.$each.$$p=function(){var param=$Opal.$destructure(arguments);block(param,index),index++},self.$each.apply(self,args),self}),-1),$def(self,"$each_with_object",(function $$each_with_object(object){var block=$$each_with_object.$$p||nil;return delete $$each_with_object.$$p,block===nil?$send(this,"enum_for",["each_with_object",object],(function $$24(){return(null==$$24.$$s?this:$$24.$$s).$enumerator_size()}),{$$arity:0,$$s:this}):(this.$each.$$p=function(){var param=$Opal.$destructure(arguments);block(param,object)},this.$each(),object)}),1),$def(self,"$entries",(function($a){var args,self=this;args=Opal.slice.call(arguments);var result=[];return self.$each.$$p=function(){result.push($Opal.$destructure(arguments))},self.$each.apply(self,args),result}),-1),$def(self,"$filter_map",(function $$filter_map(){var block=$$filter_map.$$p||nil;return delete $$filter_map.$$p,block===nil?$send(this,"enum_for",["filter_map"],(function $$25(){return(null==$$25.$$s?this:$$25.$$s).$enumerator_size()}),{$$arity:0,$$s:this}):$send($send(this,"map",[],block.$to_proc()),"select",[],"itself".$to_proc())}),0),$def(self,"$find_all",(function $$find_all(){var block=$$find_all.$$p||nil;if(delete $$find_all.$$p,block===nil)return $send(this,"enum_for",["find_all"],(function $$26(){return(null==$$26.$$s?this:$$26.$$s).$enumerator_size()}),{$$arity:0,$$s:this});var result=[];return this.$each.$$p=function(){var param=$Opal.$destructure(arguments),value=$yield1(block,param);$truthy(value)&&result.push(param)},this.$each(),result}),0),$def(self,"$find_index",(function $$find_index(object){try{var block=$$find_index.$$p||nil,index=nil;return delete $$find_index.$$p,$truthy(void 0===object&&block===nil)?this.$enum_for("find_index"):(null!=object&&block!==nil&&this.$warn("warning: given block not used"),index=0,$truthy(null!=object)?$send(this,"each",[],(function($a){var value;return value=Opal.slice.call(arguments),$eqeq($Opal.$destructure(value),object)&&Opal.ret(index),index+=1}),-1):$send(this,"each",[],(function($a){var value;return value=Opal.slice.call(arguments),$truthy(Opal.yieldX(block,$to_a(value)))&&Opal.ret(index),index+=1}),-1),nil)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$first",(function(number){try{var result=nil,current=nil;return $truthy(void 0===number)?$send(this,"each",[],(function(value){null==value&&(value=nil),Opal.ret(value)}),1):(result=[],number=$coerce_to(number,$$$("Integer"),"to_int"),$truthy(number<0)&&$Kernel.$raise($$$("ArgumentError"),"attempt to take negative size"),$truthy(0==number)?[]:(current=0,$send(this,"each",[],(function($a){var args;if(args=Opal.slice.call(arguments),result.push($Opal.$destructure(args)),!$truthy(number<=++current))return nil;Opal.ret(result)}),-1),result))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$grep",(function $$grep(pattern){var block=$$grep.$$p||nil,result=nil;return delete $$grep.$$p,result=[],$send(this,"each",[],(function($a){var value,cmp=nil;return cmp=comparableForPattern(value=Opal.slice.call(arguments)),$truthy($send(pattern,"__send__",["==="].concat($to_a(cmp))))?(block!==nil?($truthy($rb_gt(value.$length(),1))&&(value=[value]),value=Opal.yieldX(block,$to_a(value))):$truthy($rb_le(value.$length(),1))&&(value=value["$[]"](0)),result.$push(value)):nil}),-1),result}),1),$def(self,"$grep_v",(function $$grep_v(pattern){var block=$$grep_v.$$p||nil,result=nil;return delete $$grep_v.$$p,result=[],$send(this,"each",[],(function($a){var value,cmp=nil;return cmp=comparableForPattern(value=Opal.slice.call(arguments)),$truthy($send(pattern,"__send__",["==="].concat($to_a(cmp))))?nil:(block!==nil?($truthy($rb_gt(value.$length(),1))&&(value=[value]),value=Opal.yieldX(block,$to_a(value))):$truthy($rb_le(value.$length(),1))&&(value=value["$[]"](0)),result.$push(value))}),-1),result}),1),$def(self,"$group_by",(function $$group_by(){var block=$$group_by.$$p||nil,hash=nil,$ret_or_1=nil,$writer=nil;return delete $$group_by.$$p,block===nil?$send(this,"enum_for",["group_by"],(function $$33(){return(null==$$33.$$s?this:$$33.$$s).$enumerator_size()}),{$$arity:0,$$s:this}):(hash=$hash2([],{}),this.$each.$$p=function(){var param=$Opal.$destructure(arguments),value=$yield1(block,param);($truthy($ret_or_1=hash["$[]"](value))?$ret_or_1:($writer=[value,[]],$send(hash,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]))["$<<"](param)},this.$each(),hash)}),0),$def(self,"$include?",(function(obj){try{return $send(this,"each",[],(function($a){var args;if(args=Opal.slice.call(arguments),!$eqeq($Opal.$destructure(args),obj))return nil;Opal.ret(!0)}),-1),!1}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),1),$def(self,"$inject",(function $$inject(object,sym){var block=$$inject.$$p||nil;delete $$inject.$$p;var result=object;return block!==nil&&void 0===sym?this.$each.$$p=function(){var value=$Opal.$destructure(arguments);void 0!==result?(value=$yieldX(block,[result,value]),result=value):result=value}:(void 0===sym&&($$$("Symbol")["$==="](object)||$Kernel.$raise($$$("TypeError"),object.$inspect()+" is not a Symbol"),sym=object,result=void 0),this.$each.$$p=function(){var value=$Opal.$destructure(arguments);result=void 0!==result?result.$__send__(sym,value):value}),this.$each(),null==result?nil:result}),-1),$def(self,"$lazy",(function(){return $send($$$($$$("Enumerator"),"Lazy"),"new",[this,this.$enumerator_size()],(function(enum$,$a){var $post_args;return null==enum$&&(enum$=nil),$post_args=Opal.slice.call(arguments,1),$send(enum$,"yield",$to_a($post_args))}),-2)}),0),$def(self,"$enumerator_size",(function(){return $truthy(this["$respond_to?"]("size"))?this.$size():nil}),0),$def(self,"$max",(function $$max(n){var result,value,block=$$max.$$p||nil;return delete $$max.$$p,void 0===n||n===nil?(this.$each.$$p=function(){var item=$Opal.$destructure(arguments);void 0!==result?((value=block!==nil?$yieldX(block,[item,result]):item["$<=>"](result))===nil&&$Kernel.$raise($$$("ArgumentError"),"comparison failed"),value>0&&(result=item)):result=item},this.$each(),void 0===result?nil:result):(n=$coerce_to(n,$$$("Integer"),"to_int"),$send(this,"sort",[],block.$to_proc()).$reverse().$first(n))}),-1),$def(self,"$max_by",(function $$max_by(n){var result,by,block=$$max_by.$$p||nil;return delete $$max_by.$$p,null==n&&(n=nil),$truthy(block)?$truthy(n["$nil?"]())?(this.$each.$$p=function(){var param=$Opal.$destructure(arguments),value=$yield1(block,param);if(void 0===result)return result=param,void(by=value);value["$<=>"](by)>0&&(result=param,by=value)},this.$each(),void 0===result?nil:result):$send(this,"sort_by",[],block.$to_proc()).$reverse().$take(n):$send(this,"enum_for",["max_by",n],(function $$37(){return(null==$$37.$$s?this:$$37.$$s).$enumerator_size()}),{$$arity:0,$$s:this})}),-1),$def(self,"$min",(function $$min(n){var result,block=$$min.$$p||nil;return delete $$min.$$p,null==n&&(n=nil),$truthy(n["$nil?"]())?(this.$each.$$p=block!==nil?function(){var param=$Opal.$destructure(arguments);if(void 0!==result){var value=block(param,result);value===nil&&$Kernel.$raise($$$("ArgumentError"),"comparison failed"),value<0&&(result=param)}else result=param}:function(){var param=$Opal.$destructure(arguments);void 0!==result?$Opal.$compare(param,result)<0&&(result=param):result=param},this.$each(),void 0===result?nil:result):block!==nil?$send(this,"sort",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),Opal.yieldX(block,[a,b])}),2).$take(n):this.$sort().$take(n)}),-1),$def(self,"$min_by",(function $$min_by(n){var result,by,block=$$min_by.$$p||nil;return delete $$min_by.$$p,null==n&&(n=nil),$truthy(block)?$truthy(n["$nil?"]())?(this.$each.$$p=function(){var param=$Opal.$destructure(arguments),value=$yield1(block,param);if(void 0===result)return result=param,void(by=value);value["$<=>"](by)<0&&(result=param,by=value)},this.$each(),void 0===result?nil:result):$send(this,"sort_by",[],block.$to_proc()).$take(n):$send(this,"enum_for",["min_by",n],(function $$39(){return(null==$$39.$$s?this:$$39.$$s).$enumerator_size()}),{$$arity:0,$$s:this})}),-1),$def(self,"$minmax",(function $$minmax(){var $ret_or_1,block=$$minmax.$$p||nil;delete $$minmax.$$p,block=$truthy($ret_or_1=block)?$ret_or_1:$send($Kernel,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a["$<=>"](b)}),2);var min=nil,max=nil,first_time=!0;return this.$each.$$p=function(){var element=$Opal.$destructure(arguments);if(first_time)min=max=element,first_time=!1;else{var min_cmp=block.$call(min,element);min_cmp===nil?$Kernel.$raise($$$("ArgumentError"),"comparison failed"):min_cmp>0&&(min=element);var max_cmp=block.$call(max,element);max_cmp===nil?$Kernel.$raise($$$("ArgumentError"),"comparison failed"):max_cmp<0&&(max=element)}},this.$each(),[min,max]}),0),$def(self,"$minmax_by",(function $$minmax_by(){var block=$$minmax_by.$$p||nil;if(delete $$minmax_by.$$p,!$truthy(block))return $send(this,"enum_for",["minmax_by"],(function $$41(){return(null==$$41.$$s?this:$$41.$$s).$enumerator_size()}),{$$arity:0,$$s:this});var min_by,max_by,min_result=nil,max_result=nil;return this.$each.$$p=function(){var param=$Opal.$destructure(arguments),value=$yield1(block,param);(void 0===min_by||value["$<=>"](min_by)<0)&&(min_result=param,min_by=value),(void 0===max_by||value["$<=>"](max_by)>0)&&(max_result=param,max_by=value)},this.$each(),[min_result,max_result]}),0),$def(self,"$none?",(function $Enumerable_none$ques$42(pattern){try{var block=$Enumerable_none$ques$42.$$p||nil;return delete $Enumerable_none$ques$42.$$p,$truthy(void 0!==pattern)?$send(this,"each",[],(function($a){var comparable=nil;if(comparable=comparableForPattern(Opal.slice.call(arguments)),!$truthy($send(pattern,"public_send",["==="].concat($to_a(comparable)))))return nil;Opal.ret(!1)}),-1):$send(this,"each",[],block!==nil?function($a){var value;if(value=Opal.slice.call(arguments),!$truthy(Opal.yieldX(block,$to_a(value))))return nil;Opal.ret(!1)}:function($a){var value,item=nil;if(value=Opal.slice.call(arguments),item=$Opal.$destructure(value),!$truthy(item))return nil;Opal.ret(!1)},-1),!0}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$one?",(function $Enumerable_one$ques$46(pattern){try{var block=$Enumerable_one$ques$46.$$p||nil,count=nil;return delete $Enumerable_one$ques$46.$$p,count=0,$truthy(void 0!==pattern)?$send(this,"each",[],(function($a){var comparable=nil;return comparable=comparableForPattern(Opal.slice.call(arguments)),$truthy($send(pattern,"public_send",["==="].concat($to_a(comparable))))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil}),-1):$send(this,"each",[],block!==nil?function($a){var value;return value=Opal.slice.call(arguments),$truthy(Opal.yieldX(block,$to_a(value)))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil}:function($a){var value;return value=Opal.slice.call(arguments),$truthy($Opal.$destructure(value))?(count=$rb_plus(count,1),$truthy($rb_gt(count,1))?void Opal.ret(!1):nil):nil},-1),count["$=="](1)}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$partition",(function $$partition(){var block=$$partition.$$p||nil;if(delete $$partition.$$p,block===nil)return $send(this,"enum_for",["partition"],(function $$50(){return(null==$$50.$$s?this:$$50.$$s).$enumerator_size()}),{$$arity:0,$$s:this});var truthy=[],falsy=[];return this.$each.$$p=function(){var param=$Opal.$destructure(arguments),value=$yield1(block,param);$truthy(value)?truthy.push(param):falsy.push(param)},this.$each(),[truthy,falsy]}),0),$def(self,"$reject",(function $$reject(){var block=$$reject.$$p||nil;if(delete $$reject.$$p,block===nil)return $send(this,"enum_for",["reject"],(function $$51(){return(null==$$51.$$s?this:$$51.$$s).$enumerator_size()}),{$$arity:0,$$s:this});var result=[];return this.$each.$$p=function(){var param=$Opal.$destructure(arguments),value=$yield1(block,param);$truthy(value)||result.push(param)},this.$each(),result}),0),$def(self,"$reverse_each",(function $$reverse_each(){var block=$$reverse_each.$$p||nil;if(delete $$reverse_each.$$p,block===nil)return $send(this,"enum_for",["reverse_each"],(function $$52(){return(null==$$52.$$s?this:$$52.$$s).$enumerator_size()}),{$$arity:0,$$s:this});var result=[];this.$each.$$p=function(){result.push(arguments)},this.$each();for(var i=result.length-1;i>=0;i--)$yieldX(block,result[i]);return result}),0),$def(self,"$slice_before",(function $$slice_before(pattern){var block=$$slice_before.$$p||nil,self=this;return delete $$slice_before.$$p,$truthy(void 0===pattern&&block===nil)&&$Kernel.$raise($$$("ArgumentError"),"both pattern and block are given"),$truthy(void 0!==pattern&&block!==nil||arguments.length>1)&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),$send($$$("Enumerator"),"new",[],(function $$53(e){var self=null==$$53.$$s?this:$$53.$$s;null==e&&(e=nil);var slice=[];self.$each.$$p=block!==nil?void 0===pattern?function(){var param=$Opal.$destructure(arguments),value=$yield1(block,param);$truthy(value)&&slice.length>0&&(e["$<<"](slice),slice=[]),slice.push(param)}:function(){var param=$Opal.$destructure(arguments),value=block(param,pattern.$dup());$truthy(value)&&slice.length>0&&(e["$<<"](slice),slice=[]),slice.push(param)}:function(){var param=$Opal.$destructure(arguments),value=pattern["$==="](param);$truthy(value)&&slice.length>0&&(e["$<<"](slice),slice=[]),slice.push(param)},self.$each(),slice.length>0&&e["$<<"](slice)}),{$$arity:1,$$s:self})}),-1),$def(self,"$slice_after",(function $$slice_after(pattern){var block=$$slice_after.$$p||nil,self=this;return delete $$slice_after.$$p,$truthy(void 0===pattern&&block===nil)&&$Kernel.$raise($$$("ArgumentError"),"both pattern and block are given"),$truthy(void 0!==pattern&&block!==nil||arguments.length>1)&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),$truthy(void 0!==pattern)&&(block=$send($Kernel,"proc",[],(function(e){return null==e&&(e=nil),pattern["$==="](e)}),1)),$send($$$("Enumerator"),"new",[],(function $$55(yielder){var accumulate,self=null==$$55.$$s?this:$$55.$$s;null==yielder&&(yielder=nil),self.$each.$$p=function(){var element=$Opal.$destructure(arguments),end_chunk=$yield1(block,element);null==accumulate&&(accumulate=[]),$truthy(end_chunk)?(accumulate.push(element),yielder.$yield(accumulate),accumulate=null):accumulate.push(element)},self.$each(),null!=accumulate&&yielder.$yield(accumulate)}),{$$arity:1,$$s:self})}),-1),$def(self,"$slice_when",(function $$slice_when(){var block=$$slice_when.$$p||nil;return delete $$slice_when.$$p,block===nil&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments (0 for 1)"),$send($$$("Enumerator"),"new",[],(function $$56(yielder){var self=null==$$56.$$s?this:$$56.$$s;null==yielder&&(yielder=nil);var slice=nil,last_after=nil;self.$each_cons.$$p=function(){var params=$Opal.$destructure(arguments),before=params[0],after=params[1],match=$yieldX(block,[before,after]);last_after=after,slice===nil&&(slice=[]),$truthy(match)?(slice.push(before),yielder.$yield(slice),slice=[]):slice.push(before)},self.$each_cons(2),slice!==nil&&(slice.push(last_after),yielder.$yield(slice))}),{$$arity:1,$$s:this})}),0),$def(self,"$sort",(function $$sort(){var ary,block=$$sort.$$p||nil;return delete $$sort.$$p,ary=this.$to_a(),block===nil&&(block=$lambda((function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a["$<=>"](b)}),2)),$send(ary,"sort",[],block.$to_proc())}),0),$def(self,"$sort_by",(function $$sort_by(){var dup,block=$$sort_by.$$p||nil;return delete $$sort_by.$$p,block===nil?$send(this,"enum_for",["sort_by"],(function $$58(){return(null==$$58.$$s?this:$$58.$$s).$enumerator_size()}),{$$arity:0,$$s:this}):(dup=$send(this,"map",[],(function(){var arg=nil;return arg=$Opal.$destructure(arguments),[Opal.yield1(block,arg),arg]}),0),$send(dup,"sort!",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a[0]["$<=>"](b[0])}),2),$send(dup,"map!",[],(function(i){return null==i&&(i=nil),i[1]}),1))}),0),$def(self,"$sum",(function $$sum(initial){var $yield=$$sum.$$p||nil,result=nil,compensation=nil;return delete $$sum.$$p,null==initial&&(initial=0),result=initial,compensation=0,$send(this,"each",[],(function($a){var args,item=nil,y=nil,t=nil;return args=Opal.slice.call(arguments),item=$yield!==nil?Opal.yieldX($yield,$to_a(args)):$Opal.$destructure(args),$not([$$$($$$("Float"),"INFINITY"),$$$($$$("Float"),"INFINITY")["$-@"]()]["$include?"](item))&&$truthy(item["$respond_to?"]("-"))?(y=$rb_minus(item,compensation),t=$rb_plus(result,y),compensation=$rb_minus($rb_minus(t,result),y),result=t):result=$rb_plus(result,item)}),-1),result}),-1),$def(self,"$take",(function(num){return this.$first(num)}),1),$def(self,"$take_while",(function $$take_while(){try{var block=$$take_while.$$p||nil,result=nil;return delete $$take_while.$$p,$truthy(block)?(result=[],$send(this,"each",[],(function($a){var args,value=nil;return args=Opal.slice.call(arguments),value=$Opal.$destructure(args),$truthy(Opal.yield1(block,value))||Opal.ret(result),result.push(value)}),-1)):this.$enum_for("take_while")}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$uniq",(function $$uniq(){var block=$$uniq.$$p||nil,hash=nil;return delete $$uniq.$$p,hash=$hash2([],{}),$send(this,"each",[],(function($a){var args,value=nil,produced=nil,$writer=nil;return args=Opal.slice.call(arguments),value=$Opal.$destructure(args),produced=block!==nil?Opal.yield1(block,value):value,$truthy(hash["$key?"](produced))?nil:($send(hash,"[]=",$to_a($writer=[produced,value])),$writer[$rb_minus($writer.length,1)])}),-1),hash.$values()}),0),$def(self,"$tally",(function(hash){var out;return out=$send($send(this,"group_by",[],"itself".$to_proc()),"transform_values",[],"count".$to_proc()),$truthy(hash)?($send(out,"each",[],(function(k,v){var $writer;return null==k&&(k=nil),null==v&&(v=nil),$writer=[k,$rb_plus(hash.$fetch(k,0),v)],$send(hash,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),hash):out}),-1),$def(self,"$to_h",(function $$to_h($a){var args,block=$$to_h.$$p||nil,self=this;if(delete $$to_h.$$p,args=Opal.slice.call(arguments),block!==nil)return $send($send(self,"map",[],block.$to_proc()),"to_h",$to_a(args));var hash=$hash2([],{});return self.$each.$$p=function(){var key,val,param=$Opal.$destructure(arguments),ary=$Opal["$coerce_to?"](param,$$$("Array"),"to_ary");ary.$$is_array||$Kernel.$raise($$$("TypeError"),"wrong element type "+ary.$class()+" (expected array)"),2!==ary.length&&$Kernel.$raise($$$("ArgumentError"),"wrong array length (expected 2, was "+ary.$length()+")"),key=ary[0],val=ary[1],Opal.hash_put(hash,key,val)},self.$each.apply(self,args),hash}),-1),$def(self,"$zip",(function $$zip($a){var others,self=this;return delete $$zip.$$p,others=Opal.slice.call(arguments),$send(self.$to_a(),"zip",$to_a(others))}),-1),$alias(self,"find","detect"),$alias(self,"filter","find_all"),$alias(self,"flat_map","collect_concat"),$alias(self,"map","collect"),$alias(self,"member?","include?"),$alias(self,"reduce","inject"),$alias(self,"select","find_all"),$alias(self,"to_a","entries")}()},Opal.modules["corelib/enumerator/arithmetic_sequence"]=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$to_a=Opal.to_a,$eqeq=Opal.eqeq,$Kernel=Opal.Kernel,$def=Opal.def,$rb_gt=Opal.rb_gt,$rb_lt=Opal.rb_lt,$rb_le=Opal.rb_le,$rb_ge=Opal.rb_ge,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$eqeqeq=Opal.eqeqeq,$not=Opal.not,$rb_times=Opal.rb_times,$rb_divide=Opal.rb_divide,$alias=Opal.alias;return Opal.add_stubs("is_a?,==,raise,respond_to?,class,attr_reader,begin,end,exclude_end?,>,step,<,<=,>=,-@,_lesser_than_end?,<<,+,-,===,%,_greater_than_begin?,reverse,!,include?,*,to_i,abs,/,hash,inspect"),function($base,$super,$parent_nesting){var self=$klass("::",null,"Enumerator"),$nesting=[self].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ArithmeticSequence"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.step_arg2=$proto.receiver_num=$proto.step_arg1=$proto.step=$proto.range=$proto.topfx=$proto.bypfx=$proto.creation_method=$proto.skipped_arg=nil,Opal.prop(self.$$prototype,"$$is_arithmetic_seq",!0);var inf=1/0;return $def(self,"$initialize",(function(range,step,creation_method){var $a,$ret_or_1=nil;return null==creation_method&&(creation_method="step"),this.creation_method=creation_method,$truthy(range["$is_a?"]($$$("Array")))?($a=[].concat($to_a(range)),this.step_arg1=null==$a[0]?nil:$a[0],this.step_arg2=null==$a[1]?nil:$a[1],this.topfx=null==$a[2]?nil:$a[2],this.bypfx=null==$a[3]?nil:$a[3],this.receiver_num=step,this.step=1,this.range=$truthy(this.step_arg2)?(this.step=this.step_arg2,Opal.Range.$new(this.receiver_num,this.step_arg1,!1)):$truthy(this.step_arg1)?Opal.Range.$new(this.receiver_num,this.step_arg1,!1):Opal.Range.$new(this.receiver_num,nil,!1)):($truthy(step)||(this.skipped_arg=!0),$a=[range,$truthy($ret_or_1=step)?$ret_or_1:1],this.range=$a[0],this.step=$a[1]),this.object=this,$eqeq(this.step,0)&&$Kernel.$raise($$("ArgumentError"),"step can't be 0"),$truthy(this.step["$respond_to?"]("to_int"))?nil:$Kernel.$raise($$("ArgumentError"),"no implicit conversion of "+this.step.$class()+" into Integer")}),-2),self.$attr_reader("step"),$def(self,"$begin",(function(){return this.range.$begin()}),0),$def(self,"$end",(function(){return this.range.$end()}),0),$def(self,"$exclude_end?",(function(){return this.range["$exclude_end?"]()}),0),$def(self,"$_lesser_than_end?",(function(val){var end_,$ret_or_1;return end_=$truthy($ret_or_1=this.$end())?$ret_or_1:inf,$truthy($rb_gt(this.$step(),0))?$truthy(this["$exclude_end?"]())?$rb_lt(val,end_):$rb_le(val,end_):$truthy(this["$exclude_end?"]())?$rb_gt(val,end_):$rb_ge(val,end_)}),1),$def(self,"$_greater_than_begin?",(function(val){var begin_,$ret_or_1;return begin_=$truthy($ret_or_1=this.$begin())?$ret_or_1:inf["$-@"](),$truthy($rb_gt(this.$step(),0))?$rb_gt(val,begin_):$rb_lt(val,begin_)}),1),$def(self,"$first",(function(count){var iter=nil,$ret_or_1=nil,out=nil;if(iter=$truthy($ret_or_1=this.$begin())?$ret_or_1:inf["$-@"](),!$truthy(count))return $truthy(this["$_lesser_than_end?"](iter))?iter:nil;for(out=[];$truthy($truthy($ret_or_1=this["$_lesser_than_end?"](iter))?$rb_gt(count,0):$ret_or_1);)out["$<<"](iter),iter=$rb_plus(iter,this.$step()),count=$rb_minus(count,1);return out}),-1),$def(self,"$each",(function $$each(){var $ret_or_1,block=$$each.$$p||nil,iter=nil;if(delete $$each.$$p,block===nil)return this;for($eqeqeq(nil,this.$begin())&&$Kernel.$raise($$("TypeError"),"nil can't be coerced into Integer"),iter=$truthy($ret_or_1=this.$begin())?$ret_or_1:inf["$-@"]();$truthy(this["$_lesser_than_end?"](iter));)Opal.yield1(block,iter),iter=$rb_plus(iter,this.$step());return this}),0),$def(self,"$last",(function(count){var $ret_or_1=nil,iter=nil,out=nil;if($eqeqeq(inf,$ret_or_1=this.$end())||$eqeqeq(inf["$-@"](),$ret_or_1)?$Kernel.$raise($$$("FloatDomainError"),this.$end()):$eqeqeq(nil,$ret_or_1)&&$Kernel.$raise($$$("RangeError"),"cannot get the last element of endless arithmetic sequence"),iter=$rb_minus(this.$end(),$rb_minus(this.$end(),this.$begin())["$%"](this.$step())),$truthy(this["$_lesser_than_end?"](iter))||(iter=$rb_minus(iter,this.$step())),!$truthy(count))return $truthy(this["$_greater_than_begin?"](iter))?iter:nil;for(out=[];$truthy($truthy($ret_or_1=this["$_greater_than_begin?"](iter))?$rb_gt(count,0):$ret_or_1);)out["$<<"](iter),iter=$rb_minus(iter,this.$step()),count=$rb_minus(count,1);return out.$reverse()}),-1),$def(self,"$size",(function(){var step_sign,iter=nil;return step_sign=$truthy($rb_gt(this.$step(),0))?1:-1,$not(this["$_lesser_than_end?"](this.$begin()))?0:$truthy([inf["$-@"](),inf]["$include?"](this.$step()))?1:$truthy([$rb_times(inf["$-@"](),step_sign),nil]["$include?"](this.$begin()))||$truthy([$rb_times(inf,step_sign),nil]["$include?"](this.$end()))?inf:(iter=$rb_minus(this.$end(),$rb_minus(this.$end(),this.$begin())["$%"](this.$step())),$truthy(this["$_lesser_than_end?"](iter))||(iter=$rb_minus(iter,this.$step())),$rb_plus($rb_divide($rb_minus(iter,this.$begin()),this.$step()).$abs().$to_i(),1))}),0),$def(self,"$==",(function(other){var $ret_or_1,$ret_or_2,$ret_or_3,$ret_or_4;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=$truthy($ret_or_4=this.$class()["$=="](other.$class()))?this.$begin()["$=="](other.$begin()):$ret_or_4)?this.$end()["$=="](other.$end()):$ret_or_3)?this.$step()["$=="](other.$step()):$ret_or_2)?this["$exclude_end?"]()["$=="](other["$exclude_end?"]()):$ret_or_1}),1),$def(self,"$hash",(function(){return[this.$begin(),this.$end(),this.$step(),this["$exclude_end?"]()].$hash()}),0),$def(self,"$inspect",(function(){var args=nil;return $truthy(this.receiver_num)?(args=$truthy(this.step_arg2)?"("+this.topfx+this.step_arg1.$inspect()+", "+this.bypfx+this.step_arg2.$inspect()+")":$truthy(this.step_arg1)?"("+this.topfx+this.step_arg1.$inspect()+")":nil,"("+this.receiver_num.$inspect()+"."+this.creation_method+args+")"):(args=$truthy(this.skipped_arg)?nil:"("+this.step+")","(("+this.range.$inspect()+")."+this.creation_method+args+")")}),0),$alias(self,"===","=="),$alias(self,"eql?","==")}(self,self,$nesting)}(0,0,[])},Opal.modules["corelib/enumerator/chain"]=function(Opal){var self,nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus;return Opal.add_stubs("to_enum,size,each,<<,to_proc,include?,+,reverse_each,respond_to?,rewind,inspect"),function($base,$super){var self=$klass($base,$super,"Chain"),$proto=self.$$prototype;return $proto.enums=$proto.iterated=nil,$def(self,"$initialize",(function($a){var enums,self=this;return enums=Opal.slice.call(arguments),self.enums=enums,self.iterated=[],self.object=self}),-1),$def(self,"$each",(function $$each($a){var $post_args,args,block=$$each.$$p||nil,self=this;return delete $$each.$$p,$post_args=Opal.slice.call(arguments),args=$post_args,block===nil?$send(self,"to_enum",["each"].concat($to_a(args)),(function $$1(){return(null==$$1.$$s?this:$$1.$$s).$size()}),{$$arity:0,$$s:self}):($send(self.enums,"each",[],(function $$2(enum$){var self=null==$$2.$$s?this:$$2.$$s;return null==self.iterated&&(self.iterated=nil),null==enum$&&(enum$=nil),self.iterated["$<<"](enum$),$send(enum$,"each",$to_a(args),block.$to_proc())}),{$$arity:1,$$s:self}),self)}),-1),$def(self,"$size",(function($a){try{var $post_args,args,self=this,accum=nil;return $post_args=Opal.slice.call(arguments),args=$post_args,accum=0,$send(self.enums,"each",[],(function(enum$){var size;return null==enum$&&(enum$=nil),size=$send(enum$,"size",$to_a(args)),$truthy([nil,$$$($$$("Float"),"INFINITY")]["$include?"](size))&&Opal.ret(size),accum=$rb_plus(accum,size)}),1),accum}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$rewind",(function(){return $send(this.iterated,"reverse_each",[],(function(enum$){return null==enum$&&(enum$=nil),$truthy(enum$["$respond_to?"]("rewind"))?enum$.$rewind():nil}),1),this.iterated=[],this}),0),$def(self,"$inspect",(function(){return"#"}),0)}(self=$klass("::",null,"Enumerator"),self)},Opal.modules["corelib/enumerator/generator"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$breaker=Opal.breaker,$klass=Opal.klass,$truthy=Opal.truthy,$Kernel=Opal.Kernel,$def=Opal.def,$send=Opal.send;return Opal.add_stubs("include,raise,new,to_proc"),function($base,$super,$parent_nesting){var $nesting=[$klass($base,null,"Enumerator")].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,null,"Generator"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.block=nil,self.$include($$$("Enumerable")),$def(self,"$initialize",(function $$initialize(){var block=$$initialize.$$p||nil;return delete $$initialize.$$p,$truthy(block)||$Kernel.$raise($$$("LocalJumpError"),"no block given"),this.block=block}),0),$def(self,"$each",(function $$each($a){var args,block=$$each.$$p||nil,self=this,yielder=nil;delete $$each.$$p,args=Opal.slice.call(arguments),yielder=$send($$("Yielder"),"new",[],block.$to_proc());try{args.unshift(yielder),Opal.yieldX(self.block,args)}catch(e){if(e===$breaker)return $breaker.$v;throw e}return self}),-1)}($nesting[0],0,$nesting)}($nesting[0],0,$nesting)},Opal.modules["corelib/enumerator/lazy"]=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$truthy=Opal.truthy,$coerce_to=Opal.coerce_to,$yield1=Opal.yield1,$yieldX=Opal.yieldX,$klass=Opal.klass,$send2=Opal.send2,$find_super=Opal.find_super,$to_a=Opal.to_a,$defs=Opal.defs,$Kernel=Opal.Kernel,$send=Opal.send,$def=Opal.def,$Opal=Opal.Opal,$rb_lt=Opal.rb_lt,$eqeqeq=Opal.eqeqeq,$rb_plus=Opal.rb_plus,$alias=Opal.alias;return Opal.add_stubs("raise,each,new,enumerator_size,yield,respond_to?,try_convert,<,===,+,for,class,to_proc,destructure,inspect"),function($base,$super,$parent_nesting){var self=$klass("::",null,"Enumerator"),$nesting=[self].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Lazy"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.enumerator=nil,$klass(self,$$$("Exception"),"StopLazyError"),$defs(self,"$for",(function $Lazy_for$1(object,$a){var $rest_arg,$yield=$Lazy_for$1.$$p||nil,self=this,lazy=nil;return delete $Lazy_for$1.$$p,$rest_arg=Opal.slice.call(arguments,1),(lazy=$send2(self,$find_super(self,"for",$Lazy_for$1,!1,!0),"for",[object].concat($to_a($rest_arg)),$yield)).enumerator=object,lazy}),-2),$def(self,"$initialize",(function $$initialize(object,size){var block=$$initialize.$$p||nil;return delete $$initialize.$$p,null==size&&(size=nil),block===nil&&$Kernel.$raise($$$("ArgumentError"),"tried to call lazy new without a block"),this.enumerator=object,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[size],(function(yielder,$a){var each_args;null==yielder&&(yielder=nil),each_args=Opal.slice.call(arguments,1);try{return $send(object,"each",$to_a(each_args),(function($b){var args;(args=Opal.slice.call(arguments)).unshift(yielder),$yieldX(block,args)}),-1)}catch($err){if(!Opal.rescue($err,[$$("StopLazyError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}),-2)}),-2),$def(self,"$lazy",(function(){return this}),0),$def(self,"$collect",(function $$collect(){var block=$$collect.$$p||nil;return delete $$collect.$$p,$truthy(block)||$Kernel.$raise($$$("ArgumentError"),"tried to call lazy map without a block"),$send($$("Lazy"),"new",[this,this.$enumerator_size()],(function(enum$,$a){var $post_args;null==enum$&&(enum$=nil),$post_args=Opal.slice.call(arguments,1);var value=$yieldX(block,$post_args);enum$.$yield(value)}),-2)}),0),$def(self,"$collect_concat",(function $$collect_concat(){var block=$$collect_concat.$$p||nil;return delete $$collect_concat.$$p,$truthy(block)||$Kernel.$raise($$$("ArgumentError"),"tried to call lazy map without a block"),$send($$("Lazy"),"new",[this,nil],(function(enum$,$a){var $post_args;null==enum$&&(enum$=nil),$post_args=Opal.slice.call(arguments,1);var value=$yieldX(block,$post_args);if(value["$respond_to?"]("force")&&value["$respond_to?"]("each"))$send(value,"each",[],(function(v){return null==v&&(v=nil),enum$.$yield(v)}),1);else{var array=$Opal.$try_convert(value,$$$("Array"),"to_ary");array===nil?enum$.$yield(value):$send(value,"each",[],(function(v){return null==v&&(v=nil),enum$.$yield(v)}),1)}}),-2)}),0),$def(self,"$drop",(function(n){var current_size,set_size,dropped=nil;return n=$coerce_to(n,$$$("Integer"),"to_int"),$truthy($rb_lt(n,0))&&$Kernel.$raise($$$("ArgumentError"),"attempt to drop negative size"),current_size=this.$enumerator_size(),set_size=$eqeqeq($$$("Integer"),current_size)&&$truthy($rb_lt(n,current_size))?n:current_size,dropped=0,$send($$("Lazy"),"new",[this,set_size],(function(enum$,$a){var args;return null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1),$truthy($rb_lt(dropped,n))?dropped=$rb_plus(dropped,1):$send(enum$,"yield",$to_a(args))}),-2)}),1),$def(self,"$drop_while",(function $$drop_while(){var block=$$drop_while.$$p||nil,succeeding=nil;return delete $$drop_while.$$p,$truthy(block)||$Kernel.$raise($$$("ArgumentError"),"tried to call lazy drop_while without a block"),succeeding=!0,$send($$("Lazy"),"new",[this,nil],(function(enum$,$a){var args;if(null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1),!$truthy(succeeding))return $send(enum$,"yield",$to_a(args));var value=$yieldX(block,args);$truthy(value)||(succeeding=!1,$send(enum$,"yield",$to_a(args)))}),-2)}),0),$def(self,"$enum_for",(function $$enum_for($a,$b){var $post_args,method,args,block=$$enum_for.$$p||nil,self=this;return delete $$enum_for.$$p,($post_args=Opal.slice.call(arguments)).length>0&&(method=$post_args.shift()),null==method&&(method="each"),args=$post_args,$send(self.$class(),"for",[self,method].concat($to_a(args)),block.$to_proc())}),-1),$def(self,"$find_all",(function $$find_all(){var block=$$find_all.$$p||nil;return delete $$find_all.$$p,$truthy(block)||$Kernel.$raise($$$("ArgumentError"),"tried to call lazy select without a block"),$send($$("Lazy"),"new",[this,nil],(function(enum$,$a){var $post_args,args;null==enum$&&(enum$=nil),$post_args=Opal.slice.call(arguments,1);var value=$yieldX(block,args=$post_args);$truthy(value)&&$send(enum$,"yield",$to_a(args))}),-2)}),0),$def(self,"$grep",(function $$grep(pattern){var block=$$grep.$$p||nil;return delete $$grep.$$p,$truthy(block)?$send($$("Lazy"),"new",[this,nil],(function(enum$,$a){var args;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1);var param=$Opal.$destructure(args),value=pattern["$==="](param);$truthy(value)&&(value=$yield1(block,param),enum$.$yield($yield1(block,param)))}),-2):$send($$("Lazy"),"new",[this,nil],(function(enum$,$a){var args;null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1);var param=$Opal.$destructure(args),value=pattern["$==="](param);$truthy(value)&&enum$.$yield(param)}),-2)}),1),$def(self,"$reject",(function $$reject(){var block=$$reject.$$p||nil;return delete $$reject.$$p,$truthy(block)||$Kernel.$raise($$$("ArgumentError"),"tried to call lazy reject without a block"),$send($$("Lazy"),"new",[this,nil],(function(enum$,$a){var $post_args,args;null==enum$&&(enum$=nil),$post_args=Opal.slice.call(arguments,1);var value=$yieldX(block,args=$post_args);$truthy(value)||$send(enum$,"yield",$to_a(args))}),-2)}),0),$def(self,"$take",(function(n){var current_size,set_size,taken=nil;return n=$coerce_to(n,$$$("Integer"),"to_int"),$truthy($rb_lt(n,0))&&$Kernel.$raise($$$("ArgumentError"),"attempt to take negative size"),current_size=this.$enumerator_size(),set_size=$eqeqeq($$$("Integer"),current_size)&&$truthy($rb_lt(n,current_size))?n:current_size,taken=0,$send($$("Lazy"),"new",[this,set_size],(function(enum$,$a){var args;return null==enum$&&(enum$=nil),args=Opal.slice.call(arguments,1),$truthy($rb_lt(taken,n))?($send(enum$,"yield",$to_a(args)),taken=$rb_plus(taken,1)):$Kernel.$raise($$("StopLazyError"))}),-2)}),1),$def(self,"$take_while",(function $$take_while(){var block=$$take_while.$$p||nil;return delete $$take_while.$$p,$truthy(block)||$Kernel.$raise($$$("ArgumentError"),"tried to call lazy take_while without a block"),$send($$("Lazy"),"new",[this,nil],(function(enum$,$a){var $post_args,args;null==enum$&&(enum$=nil),$post_args=Opal.slice.call(arguments,1);var value=$yieldX(block,args=$post_args);$truthy(value)?$send(enum$,"yield",$to_a(args)):$Kernel.$raise($$("StopLazyError"))}),-2)}),0),$def(self,"$inspect",(function(){return"#<"+this.$class()+": "+this.enumerator.$inspect()+">"}),0),$alias(self,"force","to_a"),$alias(self,"filter","find_all"),$alias(self,"flat_map","collect_concat"),$alias(self,"map","collect"),$alias(self,"select","find_all"),$alias(self,"to_enum","enum_for")}(self,self,$nesting)}(0,0,[])},Opal.modules["corelib/enumerator/yielder"]=function(Opal){var $base,$parent_nesting,$nesting=[],nil=Opal.nil,$breaker=Opal.breaker,$klass=Opal.klass,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a;return Opal.add_stubs("yield,proc"),$base=$nesting[0],$parent_nesting=$nesting,function($base,$super){var self=$klass($base,null,"Yielder");return self.$$prototype.block=nil,$def(self,"$initialize",(function $$initialize(){var block=$$initialize.$$p||nil;return delete $$initialize.$$p,this.block=block,this}),0),$def(self,"$yield",(function($a){var values,self=this;values=Opal.slice.call(arguments);var value=Opal.yieldX(self.block,values);if(value===$breaker)throw $breaker;return value}),-1),$def(self,"$<<",(function(value){return this.$yield(value),this}),1),$def(self,"$to_proc",(function(){return $send(this,"proc",[],(function $$3($a){var $post_args,self=null==$$3.$$s?this:$$3.$$s;return $post_args=Opal.slice.call(arguments),$send(self,"yield",$to_a($post_args))}),{$$arity:-1,$$s:this})}),0)}([$klass($base,null,"Enumerator")].concat($parent_nesting)[0])},Opal.modules["corelib/enumerator"]=function(Opal){var self=Opal.top,nil=Opal.nil,$$$=Opal.$$$,$slice=Opal.slice,$coerce_to=Opal.coerce_to,$klass=Opal.klass,$defs=Opal.defs,$truthy=Opal.truthy,$send=Opal.send,$not=Opal.not,$def=Opal.def,$rb_plus=Opal.rb_plus,$to_a=Opal.to_a,$Opal=Opal.Opal,$send2=Opal.send2,$find_super=Opal.find_super,$rb_ge=Opal.rb_ge,$Kernel=Opal.Kernel,$rb_le=Opal.rb_le,$alias=Opal.alias;return Opal.add_stubs("require,include,allocate,new,to_proc,!,respond_to?,empty?,nil?,+,class,__send__,call,enum_for,size,destructure,map,>=,length,raise,[],peek_values,<=,next_values,inspect,any?,autoload"),self.$require("corelib/enumerable"),function($base,$super,$parent_nesting){var self=$klass("::",null,"Enumerator"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.size=$proto.args=$proto.object=$proto.method=$proto.values=$proto.cursor=nil,self.$include($$$("Enumerable")),self.$$prototype.$$is_enumerator=!0,$defs(self,"$for",(function $Enumerator_for$1(object,$a,$b){var $post_args,method,args,block=$Enumerator_for$1.$$p||nil,self=this;delete $Enumerator_for$1.$$p,($post_args=Opal.slice.call(arguments,1)).length>0&&(method=$post_args.shift()),null==method&&(method="each"),args=$post_args;var obj=self.$allocate();return obj.object=object,obj.size=block,obj.method=method,obj.args=args,obj.cursor=0,obj}),-2),$def(self,"$initialize",(function $$initialize($a){var block=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,Opal.slice.call(arguments),self.cursor=0,$truthy(block)?(self.object=$send($$("Generator"),"new",[],block.$to_proc()),self.method="each",self.args=[],self.size=arguments[0]||nil,$truthy(self.size)&&$not(self.size["$respond_to?"]("call"))?self.size=$coerce_to(self.size,$$$("Integer"),"to_int"):nil):(self.object=arguments[0],self.method=arguments[1]||"each",self.args=$slice.call(arguments,2),self.size=nil)}),-1),$def(self,"$each",(function $$each($a){var args,block=$$each.$$p||nil,self=this;return delete $$each.$$p,args=Opal.slice.call(arguments),$truthy(block["$nil?"]())&&$truthy(args["$empty?"]())?self:(args=$rb_plus(self.args,args),$truthy(block["$nil?"]())?$send(self.$class(),"new",[self.object,self.method].concat($to_a(args))):$send(self.object,"__send__",[self.method].concat($to_a(args)),block.$to_proc()))}),-1),$def(self,"$size",(function(){return $truthy(this.size["$respond_to?"]("call"))?$send(this.size,"call",$to_a(this.args)):this.size}),0),$def(self,"$with_index",(function $$with_index(offset){var block=$$with_index.$$p||nil;if(delete $$with_index.$$p,null==offset&&(offset=0),offset=$truthy(offset)?$coerce_to(offset,$$$("Integer"),"to_int"):0,!$truthy(block))return $send(this,"enum_for",["with_index",offset],(function $$2(){return(null==$$2.$$s?this:$$2.$$s).$size()}),{$$arity:0,$$s:this});var index=offset;return this.$each.$$p=function(){var param=$Opal.$destructure(arguments),value=block(param,index);return index++,value},this.$each()}),-1),$def(self,"$each_with_index",(function $$each_with_index(){var block=$$each_with_index.$$p||nil;return delete $$each_with_index.$$p,block===nil?$send(this,"enum_for",["each_with_index"],(function $$3(){return(null==$$3.$$s?this:$$3.$$s).$size()}),{$$arity:0,$$s:this}):($send2(this,$find_super(this,"each_with_index",$$each_with_index,!1,!0),"each_with_index",[],block),this.object)}),0),$def(self,"$rewind",(function(){return this.cursor=0,this}),0),$def(self,"$peek_values",(function(){var $ret_or_1;return this.values=$truthy($ret_or_1=this.values)?$ret_or_1:$send(this,"map",[],(function($a){return Opal.slice.call(arguments)}),-1),$truthy($rb_ge(this.cursor,this.values.$length()))&&$Kernel.$raise($$$("StopIteration"),"iteration reached an end"),this.values["$[]"](this.cursor)}),0),$def(self,"$peek",(function(){var values=nil;return values=this.$peek_values(),$truthy($rb_le(values.$length(),1))?values["$[]"](0):values}),0),$def(self,"$next_values",(function(){var out;return out=this.$peek_values(),this.cursor=$rb_plus(this.cursor,1),out}),0),$def(self,"$next",(function(){var values=nil;return values=this.$next_values(),$truthy($rb_le(values.$length(),1))?values["$[]"](0):values}),0),$def(self,"$feed",(function(arg){return this.$raise($$("NotImplementedError"),"Opal doesn't support Enumerator#feed")}),1),$def(self,"$+",(function(other){return $$$($$$("Enumerator"),"Chain").$new(this,other)}),1),$def(self,"$inspect",(function(){var result=nil;return result="#<"+this.$class()+": "+this.object.$inspect()+":"+this.method,$truthy(this.args["$any?"]())&&(result=$rb_plus(result,"("+this.args.$inspect()["$[]"]($$$("Range").$new(1,-2))+")")),$rb_plus(result,">")}),0),$alias(self,"with_object","each_with_object"),self.$autoload("ArithmeticSequence","corelib/enumerator/arithmetic_sequence"),self.$autoload("Chain","corelib/enumerator/chain"),self.$autoload("Generator","corelib/enumerator/generator"),self.$autoload("Lazy","corelib/enumerator/lazy"),self.$autoload("Yielder","corelib/enumerator/yielder")}(0,0,[])},Opal.modules["corelib/numeric"]=function(Opal){var self=Opal.top,nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$Kernel=Opal.Kernel,$def=Opal.def,$to_ary=Opal.to_ary,$eqeqeq=Opal.eqeqeq,$rb_minus=Opal.rb_minus,$rb_times=Opal.rb_times,$rb_lt=Opal.rb_lt,$eqeq=Opal.eqeq,$rb_divide=Opal.rb_divide,$Opal=Opal.Opal,$hash2=Opal.hash2,$not=Opal.not,$send=Opal.send,$rb_ge=Opal.rb_ge,$rb_le=Opal.rb_le,$rb_plus=Opal.rb_plus,$rb_gt=Opal.rb_gt,$alias=Opal.alias;return Opal.add_stubs("require,include,instance_of?,class,Float,respond_to?,coerce,__send__,===,raise,equal?,-,*,div,<,-@,ceil,to_f,denominator,to_r,==,floor,/,%,Complex,zero?,numerator,abs,arg,coerce_to!,round,<=>,compare,is_a?,!,new,enum_for,to_proc,negative?,>=,<=,+,to_i,truncate,>"),self.$require("corelib/comparable"),function($base,$super){var self=$klass("::",null,"Numeric");return self.$include($$$("Comparable")),$def(self,"$coerce",(function(other){return $truthy(other["$instance_of?"](this.$class()))?[other,this]:[$Kernel.$Float(other),$Kernel.$Float(this)]}),1),$def(self,"$__coerced__",(function(method,other){var $a,$b,a=nil,b=nil,$ret_or_1=nil;return $truthy(other["$respond_to?"]("coerce"))?($b=other.$coerce(this),a=null==($a=$to_ary($b))[0]?nil:$a[0],b=null==$a[1]?nil:$a[1],a.$__send__(method,b)):$eqeqeq("+",$ret_or_1=method)||$eqeqeq("-",$ret_or_1)||$eqeqeq("*",$ret_or_1)||$eqeqeq("/",$ret_or_1)||$eqeqeq("%",$ret_or_1)||$eqeqeq("&",$ret_or_1)||$eqeqeq("|",$ret_or_1)||$eqeqeq("^",$ret_or_1)||$eqeqeq("**",$ret_or_1)?$Kernel.$raise($$$("TypeError"),other.$class()+" can't be coerced into Numeric"):$eqeqeq(">",$ret_or_1)||$eqeqeq(">=",$ret_or_1)||$eqeqeq("<",$ret_or_1)||$eqeqeq("<=",$ret_or_1)||$eqeqeq("<=>",$ret_or_1)?$Kernel.$raise($$$("ArgumentError"),"comparison of "+this.$class()+" with "+other.$class()+" failed"):nil}),2),$def(self,"$<=>",(function(other){return $truthy(this["$equal?"](other))?0:nil}),1),$def(self,"$+@",(function(){return this}),0),$def(self,"$-@",(function(){return $rb_minus(0,this)}),0),$def(self,"$%",(function(other){return $rb_minus(this,$rb_times(other,this.$div(other)))}),1),$def(self,"$abs",(function(){return $rb_lt(this,0)?this["$-@"]():this}),0),$def(self,"$abs2",(function(){return $rb_times(this,this)}),0),$def(self,"$angle",(function(){return $rb_lt(this,0)?$$$($$$("Math"),"PI"):0}),0),$def(self,"$ceil",(function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$ceil(ndigits)}),-1),$def(self,"$conj",(function(){return this}),0),$def(self,"$denominator",(function(){return this.$to_r().$denominator()}),0),$def(self,"$div",(function(other){return $eqeq(other,0)&&$Kernel.$raise($$$("ZeroDivisionError"),"divided by o"),$rb_divide(this,other).$floor()}),1),$def(self,"$divmod",(function(other){return[this.$div(other),this["$%"](other)]}),1),$def(self,"$fdiv",(function(other){return $rb_divide(this.$to_f(),other)}),1),$def(self,"$floor",(function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$floor(ndigits)}),-1),$def(self,"$i",(function(){return $Kernel.$Complex(0,this)}),0),$def(self,"$imag",(function(){return 0}),0),$def(self,"$integer?",(function(){return!1}),0),$def(self,"$nonzero?",(function(){return $truthy(this["$zero?"]())?nil:this}),0),$def(self,"$numerator",(function(){return this.$to_r().$numerator()}),0),$def(self,"$polar",(function(){return[this.$abs(),this.$arg()]}),0),$def(self,"$quo",(function(other){return $rb_divide($Opal["$coerce_to!"](this,$$$("Rational"),"to_r"),other)}),1),$def(self,"$real",(function(){return this}),0),$def(self,"$real?",(function(){return!0}),0),$def(self,"$rect",(function(){return[this,0]}),0),$def(self,"$round",(function(digits){return this.$to_f().$round(digits)}),-1),$def(self,"$step",(function $$step($a,$b,$c){var $post_args,$kwargs,limit,step,to,by,block=$$step.$$p||nil,self=this,counter=nil;if(delete $$step.$$p,$post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");function validateParameters(){step===nil&&$Kernel.$raise($$$("TypeError"),"step must be numeric"),null!=step&&step["$=="](0)&&$Kernel.$raise($$$("ArgumentError"),"step can't be 0"),step!==nil&&null!=step||(step=1);var sign=step["$<=>"](0);sign===nil&&$Kernel.$raise($$$("ArgumentError"),"0 can't be coerced into "+step.$class()),limit!==nil&&null!=limit||(limit=sign>0?$$$($$$("Float"),"INFINITY"):$$$($$$("Float"),"INFINITY")["$-@"]()),$Opal.$compare(self,limit)}function stepFloatSize(){if(step>0&&self>limit||step<0&&self.5&&(err=.5),floor((limit-self)/step+err)+1)}function stepSize(){if(validateParameters(),0===step)return 1/0;if(step%1!=0)return stepFloatSize();if(step>0&&self>limit||step<0&&self0&&(limit=$post_args.shift()),$post_args.length>0&&(step=$post_args.shift()),to=$kwargs.$$smap.to,by=$kwargs.$$smap.by,void 0!==limit&&void 0!==to&&$Kernel.$raise($$$("ArgumentError"),"to is given twice"),void 0!==step&&void 0!==by&&$Kernel.$raise($$$("ArgumentError"),"step is given twice"),void 0!==to&&(limit=to),void 0!==by&&(step=by),void 0===limit&&(limit=nil),block===nil)return($not(limit)||$truthy(limit["$is_a?"]($$$("Numeric"))))&&($not(step)||$truthy(step["$is_a?"]($$$("Numeric"))))?$$$($$$("Enumerator"),"ArithmeticSequence").$new([limit,step,$truthy(to)?"to: ":nil,$truthy(by)?"by: ":nil],self):$send(self,"enum_for",["step",limit,step],stepSize.$to_proc());validateParameters();var isDesc=step["$negative?"](),isInf=step["$=="](0)||limit===1/0&&!isDesc||limit===-1/0&&isDesc;if(self.$$is_number&&step.$$is_number&&limit.$$is_number){if(self%1!=0||!isInf&&limit%1!=0||step%1!=0){var begin=self.$to_f().valueOf();step=step.$to_f().valueOf(),limit=limit.$to_f().valueOf();var n=stepFloatSize();if(isFinite(step))if(0===step)for(;;)block(begin);else for(var i=0;i=0?limitd)&&(d=limit),block(d)}else 0!==n&&block(begin);return self}var value=self;if(isInf)for(;;value+=step)block(value);else if(isDesc)for(;value>=limit;value+=step)block(value);else for(;value<=limit;value+=step)block(value);return self}for(counter=self;$truthy(isDesc?$rb_ge(counter,limit):$rb_le(counter,limit));)Opal.yield1(block,counter),counter=$rb_plus(counter,step)}),-1),$def(self,"$to_c",(function(){return $Kernel.$Complex(this,0)}),0),$def(self,"$to_int",(function(){return this.$to_i()}),0),$def(self,"$truncate",(function(ndigits){return null==ndigits&&(ndigits=0),this.$to_f().$truncate(ndigits)}),-1),$def(self,"$zero?",(function(){return this["$=="](0)}),0),$def(self,"$positive?",(function(){return $rb_gt(this,0)}),0),$def(self,"$negative?",(function(){return $rb_lt(this,0)}),0),$def(self,"$dup",(function(){return this}),0),$def(self,"$clone",(function($kwargs){if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==$kwargs.$$smap.freeze&&!0,this}),-1),$def(self,"$finite?",(function(){return!0}),0),$def(self,"$infinite?",(function(){return nil}),0),$alias(self,"arg","angle"),$alias(self,"conjugate","conj"),$alias(self,"imaginary","imag"),$alias(self,"magnitude","abs"),$alias(self,"modulo","%"),$alias(self,"phase","arg"),$alias(self,"rectangular","rect")}()},Opal.modules["corelib/array"]=function(Opal){var self=Opal.top,nil=Opal.nil,$$$=Opal.$$$,$truthy=Opal.truthy,$falsy=Opal.falsy,$hash_ids=Opal.hash_ids,$yield1=Opal.yield1,$hash_get=Opal.hash_get,$hash_put=Opal.hash_put,$hash_delete=Opal.hash_delete,$coerce_to=Opal.coerce_to,$respond_to=Opal.respond_to,$klass=Opal.klass,$defs=Opal.defs,$Kernel=Opal.Kernel,$def=Opal.def,$Opal=Opal.Opal,$eqeqeq=Opal.eqeqeq,$hash2=Opal.hash2,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$rb_gt=Opal.rb_gt,$rb_times=Opal.rb_times,$eqeq=Opal.eqeq,$rb_minus=Opal.rb_minus,$to_a=Opal.to_a,$to_ary=Opal.to_ary,$gvars=Opal.gvars,$rb_ge=Opal.rb_ge,$rb_lt=Opal.rb_lt,$neqeq=Opal.neqeq,$alias=Opal.alias;return Opal.add_stubs("require,include,to_a,warn,raise,replace,respond_to?,to_ary,coerce_to?,===,join,to_str,hash,<=>,==,object_id,inspect,enum_for,class,bsearch_index,to_proc,nil?,coerce_to!,>,*,enumerator_size,empty?,size,map,equal?,dup,each,reduce,-,[],dig,eql?,length,exclude_end?,flatten,__id__,&,!,intersection,to_s,new,item,max,min,>=,**,delete_if,reverse,rotate,rand,at,keep_if,shuffle!,<,sort,sort_by,!=,times,[]=,<<,uniq,|,values,is_a?,end,begin,upto,reject,pristine,singleton_class"),self.$require("corelib/enumerable"),self.$require("corelib/numeric"),function($base,$super,$parent_nesting){var self=$klass("::",Array,"Array"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);function toArraySubclass(obj,klass){return klass.$$name===Opal.Array?obj:klass.$allocate().$replace(obj.$to_a())}function filterIf(self,filter,block){for(var value,raised=null,updated=new Array(self.length),i=0,i2=0,length=self.length;isize?nil:to<0&&(to+=size)<0?[]:(exclude&&index.end!==nil||(to+=1),self.slice(from,to)))}function binomial_coefficient(n,k){return n===k||0===k?1:k>0&&n>k?binomial_coefficient(n-1,k-1)+binomial_coefficient(n-1,k):0}self.$include($$$("Enumerable")),Opal.prop(self.$$prototype,"$$is_array",!0),$defs(self,"$[]",(function($a){var self=this;return toArraySubclass(Opal.slice.call(arguments),self)}),-1),$def(self,"$initialize",(function $$initialize(size,obj){var i,value,block=$$initialize.$$p||nil,self=this;if(delete $$initialize.$$p,null==size&&(size=nil),null==obj&&(obj=nil),obj!==nil&&block!==nil&&$Kernel.$warn("warning: block supersedes default value argument"),size>$$$($$$("Integer"),"MAX")&&$Kernel.$raise($$$("ArgumentError"),"array size too big"),arguments.length>2&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..2)"),0===arguments.length)return self.splice(0,self.length),self;if(1===arguments.length){if(size.$$is_array)return self.$replace(size.$to_a()),self;if(size["$respond_to?"]("to_ary"))return self.$replace(size.$to_ary()),self}if((size=$coerce_to(size,$$$("Integer"),"to_int"))<0&&$Kernel.$raise($$$("ArgumentError"),"negative array size"),self.splice(0,self.length),block===nil)for(i=0;i",(function(other){if($eqeqeq($$$("Array"),other))other=other.$to_a();else{if(!$truthy(other["$respond_to?"]("to_ary")))return nil;other=other.$to_ary().$to_a()}if(this.$hash()===other.$hash())return 0;for(var count=Math.min(this.length,other.length),i=0;i"](other[i]);if(0!==tmp)return tmp}return this.length["$<=>"](other.length)}),1),$def(self,"$==",(function(other){var recursed={};return function _eqeq(array,other){var i,length,a,b;if(array===other)return!0;if(!other.$$is_array)return!!$respond_to(other,"$to_ary")&&other["$=="](array);if(array.$$constructor!==Array&&(array=array.$to_a()),other.$$constructor!==Array&&(other=other.$to_a()),array.length!==other.length)return!1;for(recursed[array.$object_id()]=!0,i=0,length=array.length;i=size||index<0?nil:self[index]:(length=$coerce_to(length,Opal.Integer,"to_int"))<0||index>size||index<0?nil:self.slice(index,index+length)}(this,index,length)}),-2),$def(self,"$[]=",(function(index,value,extra){var data=nil,length=nil;data=nil;var i,old,size=this.length;if(index.$$is_range){data=value.$$is_array?value.$to_a():value["$respond_to?"]("to_ary")?value.$to_ary().$to_a():[value];var exclude=index.excl,from=index.begin===nil?0:$coerce_to(index.begin,Opal.Integer,"to_int"),to=index.end===nil?-1:$coerce_to(index.end,Opal.Integer,"to_int");if(from<0&&(from+=size)<0&&$Kernel.$raise($$$("RangeError"),index.$inspect()+" out of range"),to<0&&(to+=size),exclude&&index.end!==nil||(to+=1),from>size)for(i=size;isize)for(i=size;i=this.length?nil:this[index]}),1),$def(self,"$bsearch_index",(function $$bsearch_index(){var block=$$bsearch_index.$$p||nil;if(delete $$bsearch_index.$$p,block===nil)return this.$enum_for("bsearch_index");for(var mid,val,ret,min=0,max=this.length,smaller=!1,satisfied=nil;min0;){for(i=0,length=this.length;i=0&&num=0&&function iterate(max,from,buffer,self){if(buffer.length!=max)for(var i=from;i=this.length)return nil;var result=this[index];return this.splice(index,1),result}),1),$def(self,"$delete_if",(function $$delete_if(){var block=$$delete_if.$$p||nil;return delete $$delete_if.$$p,block===nil?$send(this,"enum_for",["delete_if"],(function $$23(){return(null==$$23.$$s?this:$$23.$$s).$size()}),{$$arity:0,$$s:this}):(filterIf(this,$falsy,block),this)}),0),$def(self,"$difference",(function($a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments),$send($post_args,"reduce",[self.$to_a().$dup()],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),$rb_minus(a,b)}),2)}),-1),$def(self,"$dig",(function(idx,$a){var idxs,self=this,item=nil;return idxs=Opal.slice.call(arguments,1),(item=self["$[]"](idx))===nil||0===idxs.length?item:($truthy(item["$respond_to?"]("dig"))||$Kernel.$raise($$$("TypeError"),item.$class()+" does not have #dig method"),$send(item,"dig",$to_a(idxs)))}),-2),$def(self,"$drop",(function(number){return(number=$coerce_to(number,$$$("Integer"),"to_int"))<0&&$Kernel.$raise($$$("ArgumentError")),this.slice(number)}),1),$def(self,"$dup",(function $$dup(){var $yield=$$dup.$$p||nil;return delete $$dup.$$p,this.$$class===Opal.Array&&this.$$class.$allocate.$$pristine&&this.$copy_instance_variables.$$pristine&&this.$initialize_dup.$$pristine?this.slice(0):$send2(this,$find_super(this,"dup",$$dup,!1,!0),"dup",[],$yield)}),0),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;if(delete $$each.$$p,block===nil)return $send(this,"enum_for",["each"],(function $$25(){return(null==$$25.$$s?this:$$25.$$s).$size()}),{$$arity:0,$$s:this});for(var i=0,length=this.length;i=0&&index2)&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+args.$length()+" for 0..2)"),one=null==($b=$to_ary(args))[0]?nil:$b[0],two=null==$b[1]?nil:$b[1]):($truthy(0==args.length)?$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments (0 for 1..3)"):$truthy(args.length>3)&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+args.$length()+" for 1..3)"),obj=null==($b=$to_ary(args))[0]?nil:$b[0],one=null==$b[1]?nil:$b[1],two=null==$b[2]?nil:$b[2]),$eqeqeq($$$("Range"),one)){if($truthy(two)&&$Kernel.$raise($$$("TypeError"),"length invalid with range"),left=one.begin===nil?0:$coerce_to(one.begin,$$$("Integer"),"to_int"),$truthy(left<0)&&(left+=this.length),$truthy(left<0)&&$Kernel.$raise($$$("RangeError"),one.$inspect()+" out of range"),right=one.end===nil?-1:$coerce_to(one.end,$$$("Integer"),"to_int"),$truthy(right<0)&&(right+=this.length),$truthy(one["$exclude_end?"]())||(right+=1),$truthy(right<=left))return self}else if($truthy(one))if(left=$coerce_to(one,$$$("Integer"),"to_int"),$truthy(left<0)&&(left+=this.length),$truthy(left<0)&&(left=0),$truthy(two)){if(right=$coerce_to(two,$$$("Integer"),"to_int"),$truthy(0==right))return self;right+=left}else right=this.length;else left=0,right=this.length;if($truthy(left>this.length))for(i=this.length;ithis.length)&&(this.length=right),$truthy(block))for(this.length;left0){if(index<0&&(index+=self.length+1)<0&&$Kernel.$raise($$$("IndexError"),index+" is out of bounds"),index>self.length)for(var i=self.length;ithis.length&&(count=this.length),this.slice(this.length-count,this.length))}),-1),$def(self,"$length",(function(){return this.length}),0),$def(self,"$max",(function $$max(n){var block=$$max.$$p||nil;return delete $$max.$$p,$send(this.$each(),"max",[n],block.$to_proc())}),-1),$def(self,"$min",(function $$min(){var block=$$min.$$p||nil;return delete $$min.$$p,$send(this.$each(),"min",[],block.$to_proc())}),0),$def(self,"$permutation",(function $$permutation(num){var permute,offensive,output,block=$$permutation.$$p||nil,self=this,perm=nil,used=nil;if(delete $$permutation.$$p,block===nil)return $send(self,"enum_for",["permutation",num],(function $$34(){var self=null==$$34.$$s?this:$$34.$$s;return function(from,how_many){for(var count=how_many>=0?1:0;how_many;)count*=from,from--,how_many--;return count}(self.length,void 0===num?self.length:num)}),{$$arity:0,$$s:self});if((num=void 0===num?self.length:$coerce_to(num,$$$("Integer"),"to_int"))<0||self.lengththis.length)?this.splice(0,this.length):this.splice(this.length-count,this.length))}),-1),$def(self,"$product",(function $$product($a){var $post_args,args,block=$$product.$$p||nil,self=this;delete $$product.$$p,$post_args=Opal.slice.call(arguments);var i,m,subarray,len,result=block!==nil?null:[],n=(args=$post_args).length+1,counters=new Array(n),lengths=new Array(n),arrays=new Array(n),resultlen=1;for(arrays[0]=self,i=1;i2147483647&&$Kernel.$raise($$$("RangeError"),"too big to product"),lengths[i]=len,counters[i]=0}outer_loop:for(;;){for(subarray=[],i=0;i=0&&!(i>=this.length);i--)if(this[i]["$=="](object))return i}else if(block!==nil){for(i=this.length-1;i>=0&&!(i>=this.length);i--)if(!1!==(value=block(this[i]))&&value!==nil)return i}else if(null==object)return this.$enum_for("rindex");return nil}),-1),$def(self,"$rotate",(function(n){var ary,idx,firstPart,lastPart;return null==n&&(n=1),n=$coerce_to(n,$$$("Integer"),"to_int"),1===this.length?this.slice():0===this.length?[]:(idx=n%(ary=this.slice()).length,firstPart=ary.slice(idx),lastPart=ary.slice(0,idx),firstPart.concat(lastPart))}),-1),$def(self,"$rotate!",(function(cnt){var ary;return null==cnt&&(cnt=1),0===this.length||1===this.length?this:(cnt=$coerce_to(cnt,$$$("Integer"),"to_int"),ary=this.$rotate(cnt),this.$replace(ary))}),-1),function($base,$super){var self=$klass($base,null,"SampleRandom");self.$$prototype.rng=nil,$def(self,"$initialize",(function(rng){return this.rng=rng}),1),$def(self,"$rand",(function(size){var random;return random=$coerce_to(this.rng.$rand(size),$$$("Integer"),"to_int"),$truthy(random<0)&&$Kernel.$raise($$$("RangeError"),"random value must be >= 0"),$truthy(randomthis.length&&(count=this.length),count){case 0:return[];case 1:return[this[rng.$rand(this.length)]];case 2:return(i=rng.$rand(this.length))===(j=rng.$rand(this.length))&&(j=0===i?i+1:i-1),[this[i],this[j]];default:if(this.length/count>3){for(abandon=!1,spin=0,i=1,(result=$$("Array").$new(count))[0]=rng.$rand(this.length);i100){abandon=!0;break}k=rng.$rand(this.length)}if(abandon)break;j++}if(abandon)break;result[i]=k,i++}if(!abandon){for(i=0;i=i&&$Kernel.$raise($$$("RangeError"),"random number too big "+j)):j=this.$rand(i),tmp=this[--i],this[i]=this[j],this[j]=tmp;return this}),-1),$def(self,"$slice!",(function(index,length){var result=nil,range=nil,range_start=nil,range_end=nil,start=nil;if(result=nil,$truthy(void 0===length))if($eqeqeq($$$("Range"),index)){range=index,result=this["$[]"](range),range_start=range.begin===nil?0:$coerce_to(range.begin,$$$("Integer"),"to_int"),range_end=range.end===nil?-1:$coerce_to(range.end,$$$("Integer"),"to_int"),range_start<0&&(range_start+=this.length),range_end<0?range_end+=this.length:range_end>=this.length&&(range_end=this.length-1,range.excl&&(range_end+=1));var range_length=range_end-range_start;range.excl&&range.end!==nil?range_end-=1:range_length+=1,range_start=0&&range_end=0&&range_length>0&&this.splice(range_start,range_length)}else{if((start=$coerce_to(index,$$$("Integer"),"to_int"))<0&&(start+=this.length),start<0||start>=this.length)return nil;result=this[start],0===start?this.shift():this.splice(start,1)}else{if(start=$coerce_to(index,$$$("Integer"),"to_int"),(length=$coerce_to(length,$$$("Integer"),"to_int"))<0)return nil;result=this["$[]"](start,length),start<0&&(start+=this.length),start+length>this.length&&(length=this.length-start),start=0&&this.splice(start,length)}return result}),-2),$def(self,"$sort",(function $$sort(){var block=$$sort.$$p||nil;return delete $$sort.$$p,$truthy(this.length>1)?(block===nil&&(block=function(a,b){return a["$<=>"](b)}),this.slice().sort((function(x,y){var ret=block(x,y);return ret===nil&&$Kernel.$raise($$$("ArgumentError"),"comparison of "+x.$inspect()+" with "+y.$inspect()+" failed"),$rb_gt(ret,0)?1:$rb_lt(ret,0)?-1:0}))):this}),0),$def(self,"$sort!",(function $Array_sort$excl$47(){var result,block=$Array_sort$excl$47.$$p||nil;delete $Array_sort$excl$47.$$p,result=block!==nil?$send(this.slice(),"sort",[],block.$to_proc()):this.slice().$sort(),this.length=0;for(var i=0,length=result.length;i=0;)self[len]=self[len-objectsLength],len--;for(var j=0;j=,>,==,compare_by_identity,lambda?,abs,arity,enum_for,size,respond_to?,class,dig,except!,dup,delete,new,inspect,map,to_proc,flatten,eql?,default,default_proc,default_proc=,-,default=,to_h,proc"),self.$require("corelib/enumerable"),function($base,$super,$parent_nesting){var inspect_ids,self=$klass("::",null,"Hash"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$include($$$("Enumerable")),self.$$prototype.$$is_hash=!0,$defs(self,"$[]",(function($a){var argv,hash,i,self=this,argc=(argv=Opal.slice.call(arguments)).length;if(1===argc){if((hash=$Opal["$coerce_to?"](argv["$[]"](0),$$$("Hash"),"to_hash"))!==nil)return self.$allocate()["$merge!"](hash);for((argv=$Opal["$coerce_to?"](argv["$[]"](0),$$$("Array"),"to_ary"))===nil&&$Kernel.$raise($$$("ArgumentError"),"odd number of arguments for Hash"),argc=argv.length,hash=self.$allocate(),i=0;i=",(function(other){var result=nil;return other=$Opal["$coerce_to!"](other,$$$("Hash"),"to_hash"),!(this.$$keys.length",(function(other){return other=$Opal["$coerce_to!"](other,$$$("Hash"),"to_hash"),!(this.$$keys.length<=other.$$keys.length)&&$rb_ge(this,other)}),1),$def(self,"$<",(function(other){return other=$Opal["$coerce_to!"](other,$$$("Hash"),"to_hash"),$rb_gt(other,this)}),1),$def(self,"$<=",(function(other){return other=$Opal["$coerce_to!"](other,$$$("Hash"),"to_hash"),$rb_ge(other,this)}),1),$def(self,"$[]",(function(key){var value=$hash_get(this,key);return void 0!==value?value:this.$default(key)}),1),$def(self,"$[]=",(function(key,value){return $hash_put(this,key,value),value}),2),$def(self,"$assoc",(function(object){for(var key,i=0,keys=this.$$keys,length=keys.length;i"+value);return"{"+result.join(", ")+"}"}finally{top&&(inspect_ids=void 0)}}()}),0),$def(self,"$invert",(function(){for(var key,value,hash=$hash(),i=0,keys=this.$$keys,length=keys.length;i0?[key=(key=keys[0]).$$is_string?key:key.key,$hash_delete(this,key)]:this.$default(nil)}),0),$def(self,"$slice",(function($a){var keys,self=this;keys=Opal.slice.call(arguments);for(var result=$hash(),i=0,length=keys.length;i,!,**,new,<,to_f,==,nan?,infinite?,enum_for,+,-,gcd,lcm,%,/,frexp,to_i,ldexp,rationalize,*,<<,to_r,truncate,-@,size,<=,>=,inspect,coerce_to?"),self.$require("corelib/numeric"),function($base,$super,$parent_nesting){var self=$klass("::",$super,"Number");[self].concat($parent_nesting);$Opal.$bridge(Number,self),Opal.prop(self.$$prototype,"$$is_number",!0),self.$$is_number_class=!0,function(self,$parent_nesting){$def(self,"$allocate",(function(){return $Kernel.$raise($$$("TypeError"),"allocator undefined for "+this.$name())}),0),Opal.udef(self,"$new")}(Opal.get_singleton_class(self)),$def(self,"$coerce",(function(other){if(other===nil)$Kernel.$raise($$$("TypeError"),"can't convert "+other.$class()+" into Float");else{if(other.$$is_string)return[$Kernel.$Float(other),this];if(other["$respond_to?"]("to_f"))return[$Opal["$coerce_to!"](other,$$$("Float"),"to_f"),this];if(other.$$is_number)return[other,this];$Kernel.$raise($$$("TypeError"),"can't convert "+other.$class()+" into Float")}}),1),$def(self,"$__id__",(function(){return 2*this+1}),0),$def(self,"$+",(function(other){return other.$$is_number?this+other:this.$__coerced__("+",other)}),1),$def(self,"$-",(function(other){return other.$$is_number?this-other:this.$__coerced__("-",other)}),1),$def(self,"$*",(function(other){return other.$$is_number?this*other:this.$__coerced__("*",other)}),1),$def(self,"$/",(function(other){return other.$$is_number?this/other:this.$__coerced__("/",other)}),1),$def(self,"$%",(function(other){return other.$$is_number?other==-1/0?other:0!=other?other<0||this<0?(this%other+other)%other:this%other:void $Kernel.$raise($$$("ZeroDivisionError"),"divided by 0"):this.$__coerced__("%",other)}),1),$def(self,"$&",(function(other){return other.$$is_number?this&other:this.$__coerced__("&",other)}),1),$def(self,"$|",(function(other){return other.$$is_number?this|other:this.$__coerced__("|",other)}),1),$def(self,"$^",(function(other){return other.$$is_number?this^other:this.$__coerced__("^",other)}),1),$def(self,"$<",(function(other){return other.$$is_number?this",(function(other){return other.$$is_number?this>other:this.$__coerced__(">",other)}),1),$def(self,"$>=",(function(other){return other.$$is_number?this>=other:this.$__coerced__(">=",other)}),1);function numberToUint8Array(num){var uint8array=new Uint8Array(8);return new DataView(uint8array.buffer).setFloat64(0,num,!0),uint8array}function uint8ArrayToNumber(arr){return new DataView(arr.buffer).getFloat64(0,!0)}function incrementNumberBit(num){for(var arr=numberToUint8Array(num),i=0;i",(function(other){try{return function(self,other){return other.$$is_number?isNaN(self)||isNaN(other)?nil:self>other?1:self",other)}(this,other)}catch($err){if(!Opal.rescue($err,[$$$("ArgumentError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}),1),$def(self,"$<<",(function(count){return(count=$Opal["$coerce_to!"](count,$$$("Integer"),"to_int"))>0?this<>-count}),1),$def(self,"$>>",(function(count){return(count=$Opal["$coerce_to!"](count,$$$("Integer"),"to_int"))>0?this>>count:this<<-count}),1),$def(self,"$[]",(function(bit){return(bit=$Opal["$coerce_to!"](bit,$$$("Integer"),"to_int"))<0?0:bit>=32?this<0?1:0:this>>bit&1}),1),$def(self,"$+@",(function(){return+this}),0),$def(self,"$-@",(function(){return-this}),0),$def(self,"$~",(function(){return~this}),0),$def(self,"$**",(function(other){return $eqeqeq($$$("Integer"),other)?$not($$$("Integer")["$==="](this))||$truthy($rb_gt(other,0))?Math.pow(this,other):$$$("Rational").$new(this,1)["$**"](other):$rb_lt(this,0)&&($eqeqeq($$$("Float"),other)||$eqeqeq($$$("Rational"),other))?$$$("Complex").$new(this,0)["$**"](other.$to_f()):$truthy(null!=other.$$is_number)?Math.pow(this,other):this.$__coerced__("**",other)}),1),$def(self,"$==",(function(other){return other.$$is_number?this.valueOf()===other.valueOf():!!other["$respond_to?"]("==")&&other["$=="](this)}),1),$alias(self,"===","=="),$def(self,"$abs",(function(){return Math.abs(this)}),0),$def(self,"$abs2",(function(){return Math.abs(this*this)}),0),$def(self,"$allbits?",(function(mask){return(this&(mask=$Opal["$coerce_to!"](mask,$$$("Integer"),"to_int")))==mask}),1),$def(self,"$anybits?",(function(mask){return 0!=(this&(mask=$Opal["$coerce_to!"](mask,$$$("Integer"),"to_int")))}),1),$def(self,"$angle",(function(){return $truthy(this["$nan?"]())?this:0==this?1/this>0?0:Math.PI:this<0?Math.PI:0}),0),$def(self,"$bit_length",(function(){if($eqeqeq($$$("Integer"),this)||$Kernel.$raise($$$("NoMethodError").$new("undefined method `bit_length` for "+this+":Float","bit_length")),0===this||-1===this)return 0;for(var result=0,value=this<0?~this:this;0!=value;)result+=1,value>>>=1;return result}),0),$def(self,"$ceil",(function(ndigits){null==ndigits&&(ndigits=0);var f=this.$to_f();if(f%1==0&&ndigits>=0)return f;var factor=Math.pow(10,ndigits),result=Math.ceil(f*factor)/factor;return f%1==0&&(result=Math.round(result)),result}),-1),$def(self,"$chr",(function(encoding){return Opal.enc(String.fromCharCode(this),encoding||"BINARY")}),-1),$def(self,"$denominator",(function $$denominator(){var $yield=$$denominator.$$p||nil;return delete $$denominator.$$p,$truthy(this["$nan?"]())||$truthy(this["$infinite?"]())?1:$send2(this,$find_super(this,"denominator",$$denominator,!1,!0),"denominator",[],$yield)}),0),$def(self,"$downto",(function $$downto(stop){var block=$$downto.$$p||nil;if(delete $$downto.$$p,block===nil)return $send(this,"enum_for",["downto",stop],(function $$24(){var self=null==$$24.$$s?this:$$24.$$s;return $eqeqeq($$$("Numeric"),stop)||$Kernel.$raise($$$("ArgumentError"),"comparison of "+self.$class()+" with "+stop.$class()+" failed"),$truthy($rb_gt(stop,self))?0:$rb_plus($rb_minus(self,stop),1)}),{$$arity:0,$$s:this});stop.$$is_number||$Kernel.$raise($$$("ArgumentError"),"comparison of "+this.$class()+" with "+stop.$class()+" failed");for(var i=this;i>=stop;i--)block(i);return this}),1),$def(self,"$equal?",(function(other){var $ret_or_1;return $truthy($ret_or_1=this["$=="](other))?$ret_or_1:isNaN(this)&&isNaN(other)}),1),$def(self,"$even?",(function(){return this%2==0}),0),$def(self,"$floor",(function(ndigits){null==ndigits&&(ndigits=0);var f=this.$to_f();if(f%1==0&&ndigits>=0)return f;var factor=Math.pow(10,ndigits),result=Math.floor(f*factor)/factor;return f%1==0&&(result=Math.round(result)),result}),-1),$def(self,"$gcd",(function(other){$eqeqeq($$$("Integer"),other)||$Kernel.$raise($$$("TypeError"),"not an integer");for(var min=Math.abs(this),max=Math.abs(other);min>0;){var tmp=min;min=max%min,max=tmp}return max}),1),$def(self,"$gcdlcm",(function(other){return[this.$gcd(other),this.$lcm(other)]}),1),$def(self,"$integer?",(function(){return this%1==0}),0),$def(self,"$is_a?",(function $Number_is_a$ques$28(klass){var $yield=$Number_is_a$ques$28.$$p||nil;return delete $Number_is_a$ques$28.$$p,!(!$eqeq(klass,$$$("Integer"))||!$eqeqeq($$$("Integer"),this))||(!(!$eqeq(klass,$$$("Integer"))||!$eqeqeq($$$("Integer"),this))||(!(!$eqeq(klass,$$$("Float"))||!$eqeqeq($$$("Float"),this))||$send2(this,$find_super(this,"is_a?",$Number_is_a$ques$28,!1,!0),"is_a?",[klass],$yield)))}),1),$def(self,"$instance_of?",(function $Number_instance_of$ques$29(klass){var $yield=$Number_instance_of$ques$29.$$p||nil;return delete $Number_instance_of$ques$29.$$p,!(!$eqeq(klass,$$$("Integer"))||!$eqeqeq($$$("Integer"),this))||(!(!$eqeq(klass,$$$("Integer"))||!$eqeqeq($$$("Integer"),this))||(!(!$eqeq(klass,$$$("Float"))||!$eqeqeq($$$("Float"),this))||$send2(this,$find_super(this,"instance_of?",$Number_instance_of$ques$29,!1,!0),"instance_of?",[klass],$yield)))}),1),$def(self,"$lcm",(function(other){return $eqeqeq($$$("Integer"),other)||$Kernel.$raise($$$("TypeError"),"not an integer"),0==this||0==other?0:Math.abs(this*other/this.$gcd(other))}),1),$def(self,"$next",(function(){return this+1}),0),$def(self,"$nobits?",(function(mask){return 0==(this&(mask=$Opal["$coerce_to!"](mask,$$$("Integer"),"to_int")))}),1),$def(self,"$nonzero?",(function(){return 0==this?nil:this}),0),$def(self,"$numerator",(function $$numerator(){var $yield=$$numerator.$$p||nil;return delete $$numerator.$$p,$truthy(this["$nan?"]())||$truthy(this["$infinite?"]())?this:$send2(this,$find_super(this,"numerator",$$numerator,!1,!0),"numerator",[],$yield)}),0),$def(self,"$odd?",(function(){return this%2!=0}),0),$def(self,"$ord",(function(){return this}),0),$def(self,"$pow",(function(b,m){return 0==this&&$Kernel.$raise($$$("ZeroDivisionError"),"divided by 0"),void 0===m?this["$**"](b):($$$("Integer")["$==="](b)||$Kernel.$raise($$$("TypeError"),"Integer#pow() 2nd argument not allowed unless a 1st argument is integer"),b<0&&$Kernel.$raise($$$("TypeError"),"Integer#pow() 1st argument cannot be negative when 2nd argument specified"),$$$("Integer")["$==="](m)||$Kernel.$raise($$$("TypeError"),"Integer#pow() 2nd argument not allowed unless all arguments are integers"),0===m&&$Kernel.$raise($$$("ZeroDivisionError"),"divided by 0"),this["$**"](b)["$%"](m))}),-2),$def(self,"$pred",(function(){return this-1}),0),$def(self,"$quo",(function $$quo(other){var $yield=$$quo.$$p||nil;return delete $$quo.$$p,$eqeqeq($$$("Integer"),this)?$send2(this,$find_super(this,"quo",$$quo,!1,!0),"quo",[other],$yield):$rb_divide(this,other)}),1),$def(self,"$rationalize",(function(eps){var $a,$b,self=this,f=nil,n=nil;return arguments.length>1&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),$eqeqeq($$$("Integer"),self)?$$$("Rational").$new(self,1):$truthy(self["$infinite?"]())?$Kernel.$raise($$$("FloatDomainError"),"Infinity"):$truthy(self["$nan?"]())?$Kernel.$raise($$$("FloatDomainError"),"NaN"):$truthy(null==eps)?($b=$$$("Math").$frexp(self),f=null==($a=$to_ary($b))[0]?nil:$a[0],n=null==$a[1]?nil:$a[1],f=$$$("Math").$ldexp(f,$$$($$$("Float"),"MANT_DIG")).$to_i(),n=$rb_minus(n,$$$($$$("Float"),"MANT_DIG")),$$$("Rational").$new($rb_times(2,f),1["$<<"]($rb_minus(1,n))).$rationalize($$$("Rational").$new(1,1["$<<"]($rb_minus(1,n))))):self.$to_r().$rationalize(eps)}),-1),$def(self,"$remainder",(function(y){return $rb_minus(this,$rb_times(y,$rb_divide(this,y).$truncate()))}),1),$def(self,"$round",(function(ndigits){var $a,$b,exp=nil;if($eqeqeq($$$("Integer"),this)){if($truthy(null==ndigits))return this;if($eqeqeq($$$("Float"),ndigits)&&$truthy(ndigits["$infinite?"]())&&$Kernel.$raise($$$("RangeError"),"Infinity"),ndigits=$Opal["$coerce_to!"](ndigits,$$$("Integer"),"to_int"),$truthy($rb_lt(ndigits,$$$($$$("Integer"),"MIN")))&&$Kernel.$raise($$$("RangeError"),"out of bounds"),$truthy(ndigits>=0))return this;if(.415241*(ndigits=ndigits["$-@"]())-.125>this.$size())return 0;var f=Math.pow(10,ndigits),x=Math.floor((Math.abs(this)+f/2)/f)*f;return this<0?-x:x}if($truthy(this["$nan?"]())&&$truthy(null==ndigits)&&$Kernel.$raise($$$("FloatDomainError"),"NaN"),ndigits=$Opal["$coerce_to!"](ndigits||0,$$$("Integer"),"to_int"),$truthy($rb_le(ndigits,0)))$truthy(this["$nan?"]())?$Kernel.$raise($$$("RangeError"),"NaN"):$truthy(this["$infinite?"]())&&$Kernel.$raise($$$("FloatDomainError"),"Infinity");else{if($eqeq(ndigits,0))return Math.round(this);if($truthy(this["$nan?"]())||$truthy(this["$infinite?"]()))return this}return $b=$$$("Math").$frexp(this),null==($a=$to_ary($b))[0]?nil:$a[0],exp=null==$a[1]?nil:$a[1],$truthy($rb_ge(ndigits,$rb_minus($rb_plus($$$($$$("Float"),"DIG"),2),$truthy($rb_gt(exp,0))?$rb_divide(exp,4):$rb_minus($rb_divide(exp,3),1))))?this:$truthy($rb_lt(ndigits,($truthy($rb_gt(exp,0))?$rb_plus($rb_divide(exp,3),1):$rb_divide(exp,4))["$-@"]()))?0:Math.round(this*Math.pow(10,ndigits))/Math.pow(10,ndigits)}),-1),$def(self,"$times",(function $$times(){var block=$$times.$$p||nil;if(delete $$times.$$p,!$truthy(block))return $send(this,"enum_for",["times"],(function $$33(){return null==$$33.$$s?this:$$33.$$s}),{$$arity:0,$$s:this});for(var i=0;i=0)return f;var factor=Math.pow(10,ndigits),result=parseInt(f*factor,10)/factor;return f%1==0&&(result=Math.round(result)),result}),-1),$def(self,"$digits",(function(base){null==base&&(base=10),$rb_lt(this,0)&&$Kernel.$raise($$$($$$("Math"),"DomainError"),"out of domain"),base=$Opal["$coerce_to!"](base,$$$("Integer"),"to_int"),$truthy($rb_lt(base,2))&&$Kernel.$raise($$$("ArgumentError"),"invalid radix "+base),this!=parseInt(this)&&$Kernel.$raise($$$("NoMethodError"),"undefined method `digits' for "+this.$inspect());var value=this,result=[];if(0==this)return[0];for(;0!=value;)result.push(value%base),value=parseInt(value/base,10);return result}),-1),$def(self,"$divmod",(function $$divmod(other){var $yield=$$divmod.$$p||nil;return delete $$divmod.$$p,$truthy(this["$nan?"]())||$truthy(other["$nan?"]())?$Kernel.$raise($$$("FloatDomainError"),"NaN"):$truthy(this["$infinite?"]())?$Kernel.$raise($$$("FloatDomainError"),"Infinity"):$send2(this,$find_super(this,"divmod",$$divmod,!1,!0),"divmod",[other],$yield)}),1),$def(self,"$upto",(function $$upto(stop){var block=$$upto.$$p||nil;if(delete $$upto.$$p,block===nil)return $send(this,"enum_for",["upto",stop],(function $$34(){var self=null==$$34.$$s?this:$$34.$$s;return $eqeqeq($$$("Numeric"),stop)||$Kernel.$raise($$$("ArgumentError"),"comparison of "+self.$class()+" with "+stop.$class()+" failed"),$truthy($rb_lt(stop,self))?0:$rb_plus($rb_minus(stop,self),1)}),{$$arity:0,$$s:this});stop.$$is_number||$Kernel.$raise($$$("ArgumentError"),"comparison of "+this.$class()+" with "+stop.$class()+" failed");for(var i=this;i<=stop;i++)block(i);return this}),1),$def(self,"$zero?",(function(){return 0==this}),0),$def(self,"$size",(function(){return 4}),0),$def(self,"$nan?",(function(){return isNaN(this)}),0),$def(self,"$finite?",(function(){return this!=1/0&&this!=-1/0&&!isNaN(this)}),0),$def(self,"$infinite?",(function(){return this==1/0?1:this==-1/0?-1:nil}),0),$def(self,"$positive?",(function(){return 0!=this&&(this==1/0||1/this>0)}),0),$def(self,"$negative?",(function(){return this==-1/0||1/this<0}),0),$def(self,"$next_float",(function(){return $eqeq(this,$$$($$$("Float"),"INFINITY"))?$$$($$$("Float"),"INFINITY"):$truthy(this["$nan?"]())?$$$($$$("Float"),"NAN"):$rb_ge(this,0)?incrementNumberBit(Math.abs(this)):decrementNumberBit(this)}),0),$def(self,"$prev_float",(function(){return $eqeq(this,$$$($$$("Float"),"INFINITY")["$-@"]())?$$$($$$("Float"),"INFINITY")["$-@"]():$truthy(this["$nan?"]())?$$$($$$("Float"),"NAN"):$rb_gt(this,0)?decrementNumberBit(this):-incrementNumberBit(Math.abs(this))}),0),$alias(self,"arg","angle"),$alias(self,"eql?","=="),$alias(self,"fdiv","/"),$alias(self,"inspect","to_s"),$alias(self,"kind_of?","is_a?"),$alias(self,"magnitude","abs"),$alias(self,"modulo","%"),$alias(self,"object_id","__id__"),$alias(self,"phase","angle"),$alias(self,"succ","next"),$alias(self,"to_int","to_i")}(0,$$$("Numeric"),$nesting),$const_set("::","Fixnum",$$$("Number")),function($base,$super,$parent_nesting){var self=$klass("::",$super,"Integer"),$nesting=[self].concat($parent_nesting);self.$$is_number_class=!0,self.$$is_integer_class=!0,function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$allocate",(function(){return $Kernel.$raise($$$("TypeError"),"allocator undefined for "+this.$name())}),0),Opal.udef(self,"$new"),$def(self,"$sqrt",(function(n){return(n=$Opal["$coerce_to!"](n,$$$("Integer"),"to_int"))<0&&$Kernel.$raise($$$($$$("Math"),"DomainError"),'Numerical argument is out of domain - "isqrt"'),parseInt(Math.sqrt(n),10)}),1),$def(self,"$try_convert",(function(object){return $$("Opal")["$coerce_to?"](object,this,"to_int")}),1)}(Opal.get_singleton_class(self),$nesting),$const_set(self,"MAX",Math.pow(2,30)-1),$const_set(self,"MIN",-Math.pow(2,30))}(0,$$$("Numeric"),$nesting),function($base,$super,$parent_nesting){var self=$klass("::",$super,"Float");[self].concat($parent_nesting);return self.$$is_number_class=!0,function(self,$parent_nesting){$def(self,"$allocate",(function(){return $Kernel.$raise($$$("TypeError"),"allocator undefined for "+this.$name())}),0),Opal.udef(self,"$new"),$def(self,"$===",(function(other){return!!other.$$is_number}),1)}(Opal.get_singleton_class(self)),$const_set(self,"INFINITY",1/0),$const_set(self,"MAX",Number.MAX_VALUE),$const_set(self,"MIN",Number.MIN_VALUE),$const_set(self,"NAN",NaN),$const_set(self,"DIG",15),$const_set(self,"MANT_DIG",53),$const_set(self,"RADIX",2),$const_set(self,"EPSILON",Number.EPSILON||2220446049250313e-31)}(0,$$$("Numeric"),$nesting)},Opal.modules["corelib/range"]=function(Opal){var self=Opal.top,nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$Kernel=Opal.Kernel,$def=Opal.def,$not=Opal.not,$send2=Opal.send2,$find_super=Opal.find_super,$rb_lt=Opal.rb_lt,$rb_le=Opal.rb_le,$send=Opal.send,$eqeq=Opal.eqeq,$eqeqeq=Opal.eqeqeq,$rb_gt=Opal.rb_gt,$rb_minus=Opal.rb_minus,$Opal=Opal.Opal,$rb_divide=Opal.rb_divide,$rb_plus=Opal.rb_plus,$rb_times=Opal.rb_times,$rb_ge=Opal.rb_ge,$alias=Opal.alias;return Opal.add_stubs("require,include,attr_reader,raise,nil?,<=>,include?,!,<,<=,enum_for,size,upto,to_proc,respond_to?,class,succ,==,===,exclude_end?,eql?,begin,end,last,to_a,>,-@,-,to_i,coerce_to!,ceil,/,is_a?,new,loop,+,*,>=,each_with_index,%,step,bsearch,inspect,[],hash"),self.$require("corelib/enumerable"),function($base,$super,$parent_nesting){var self=$klass("::",null,"Range"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;function is_infinite(self){return self.begin===nil||self.end===nil||self.begin===-1/0||self.end===1/0||self.begin===1/0||self.end===-1/0}return $proto.begin=$proto.end=$proto.excl=nil,self.$include($$$("Enumerable")),self.$$prototype.$$is_range=!0,self.$attr_reader("begin","end"),$def(self,"$initialize",(function(first,last,exclude){return null==exclude&&(exclude=!1),$truthy(this.begin)&&$Kernel.$raise($$$("NameError"),"'initialize' called twice"),$truthy(first["$<=>"](last))||$truthy(first["$nil?"]())||$truthy(last["$nil?"]())||$Kernel.$raise($$$("ArgumentError"),"bad value for range"),this.begin=first,this.end=last,this.excl=exclude}),-3),$def(self,"$===",(function(value){return this["$include?"](value)}),1),$def(self,"$count",(function $$count(){var block=$$count.$$p||nil;return delete $$count.$$p,$not(block!==nil)&&$truthy(is_infinite(this))?$$$($$$("Float"),"INFINITY"):$send2(this,$find_super(this,"count",$$count,!1,!0),"count",[],block)}),0),$def(self,"$to_a",(function $$to_a(){var $yield=$$to_a.$$p||nil;return delete $$to_a.$$p,$truthy(is_infinite(this))&&$Kernel.$raise($$$("TypeError"),"cannot convert endless range to an array"),$send2(this,$find_super(this,"to_a",$$to_a,!1,!0),"to_a",[],$yield)}),0),$def(self,"$cover?",(function(value){var beg_cmp,end_cmp,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return beg_cmp=$truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=this.begin["$nil?"]())?-1:$ret_or_3)?$ret_or_2:this.begin["$<=>"](value))&&$ret_or_1,end_cmp=$truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=this.end["$nil?"]())?-1:$ret_or_3)?$ret_or_2:value["$<=>"](this.end))&&$ret_or_1,$truthy($ret_or_1=$truthy($ret_or_2=$truthy(this.excl)?$truthy($ret_or_3=end_cmp)?$rb_lt(end_cmp,0):$ret_or_3:$truthy($ret_or_3=end_cmp)?$rb_le(end_cmp,0):$ret_or_3)?beg_cmp:$ret_or_2)?$rb_le(beg_cmp,0):$ret_or_1}),1),$def(self,"$each",(function $$each(){var last,i,limit,block=$$each.$$p||nil,current=nil,$ret_or_1=nil;if(delete $$each.$$p,block===nil)return $send(this,"enum_for",["each"],(function $$3(){return(null==$$3.$$s?this:$$3.$$s).$size()}),{$$arity:0,$$s:this});if(this.begin.$$is_number&&this.end.$$is_number){for(this.begin%1==0&&this.end%1==0||$Kernel.$raise($$$("TypeError"),"can't iterate from Float"),i=this.begin,limit=this.end+($truthy(this.excl)?0:1);i"](last),0));)Opal.yield1(block,current),current=current.$succ();return $not(this.excl)&&$eqeq(current,last)&&Opal.yield1(block,current),this}),0),$def(self,"$eql?",(function(other){var $ret_or_1,$ret_or_2;return!!$eqeqeq($$$("Range"),other)&&($truthy($ret_or_1=$truthy($ret_or_2=this.excl["$==="](other["$exclude_end?"]()))?this.begin["$eql?"](other.$begin()):$ret_or_2)?this.end["$eql?"](other.$end()):$ret_or_1)}),1),$def(self,"$exclude_end?",(function(){return this.excl}),0),$def(self,"$first",(function $$first(n){var $yield=$$first.$$p||nil;return delete $$first.$$p,$truthy(this.begin["$nil?"]())&&$Kernel.$raise($$$("RangeError"),"cannot get the minimum of beginless range"),$truthy(null==n)?this.begin:$send2(this,$find_super(this,"first",$$first,!1,!0),"first",[n],$yield)}),-1),$def(self,"$last",(function(n){return $truthy(this.end["$nil?"]())&&$Kernel.$raise($$$("RangeError"),"cannot get the maximum of endless range"),$truthy(null==n)?this.end:this.$to_a().$last(n)}),-1),$def(self,"$max",(function $$max(){var $yield=$$max.$$p||nil;return delete $$max.$$p,$truthy(this.end["$nil?"]())?$Kernel.$raise($$$("RangeError"),"cannot get the maximum of endless range"):$yield!==nil?$send2(this,$find_super(this,"max",$$max,!1,!0),"max",[],$yield):$not(this.begin["$nil?"]())&&($truthy($rb_gt(this.begin,this.end))||$truthy(this.excl)&&$eqeq(this.begin,this.end))?nil:this.excl?this.end-1:this.end}),0),$def(self,"$min",(function $$min(){var $yield=$$min.$$p||nil;return delete $$min.$$p,$truthy(this.begin["$nil?"]())?$Kernel.$raise($$$("RangeError"),"cannot get the minimum of beginless range"):$yield!==nil?$send2(this,$find_super(this,"min",$$min,!1,!0),"min",[],$yield):$not(this.end["$nil?"]())&&($truthy($rb_gt(this.begin,this.end))||$truthy(this.excl)&&$eqeq(this.begin,this.end))?nil:this.begin}),0),$def(self,"$size",(function(){var range_begin,infinity=nil,range_end=nil;return infinity=$$$($$$("Float"),"INFINITY"),$eqeq(this.begin,infinity)&&$not(this.end["$nil?"]())||$eqeq(this.end,infinity["$-@"]())&&$not(this.begin["$nil?"]())?0:$truthy(is_infinite(this))?infinity:$eqeqeq($$$("Numeric"),this.begin)&&$eqeqeq($$$("Numeric"),this.end)?(range_begin=this.begin,range_end=this.end,$truthy(this.excl)&&(range_end=$rb_minus(range_end,1)),$truthy($rb_lt(range_end,range_begin))?0:(Math.abs(range_end-range_begin)+1).$to_i()):nil}),0),$def(self,"$step",(function $$step(n){var $yield=$$step.$$p||nil,self=this,$ret_or_1=nil,i=nil;function coerceStepSize(){null==n?n=1:n.$$is_number||(n=$Opal["$coerce_to!"](n,$$$("Integer"),"to_int")),n<0?$Kernel.$raise($$$("ArgumentError"),"step can't be negative"):0===n&&$Kernel.$raise($$$("ArgumentError"),"step can't be 0")}return delete $$step.$$p,$yield===nil?($truthy(self.begin["$is_a?"]($$("Numeric")))||$truthy(self.begin["$nil?"]()))&&($truthy(self.end["$is_a?"]($$("Numeric")))||$truthy(self.end["$nil?"]()))&&$not($truthy($ret_or_1=self.begin["$nil?"]())?self.end["$nil?"]():$ret_or_1)?$$$($$$("Enumerator"),"ArithmeticSequence").$new(self,n,"step"):$send(self,"enum_for",["step",n],(function(){return coerceStepSize(),function(){if(!self.begin["$respond_to?"]("succ"))return nil;if(self.begin.$$is_string&&self.end.$$is_string)return nil;if(n%1==0)return $rb_divide(self.$size(),n).$ceil();var size,begin=self.begin,end=self.end,abs=Math.abs,floor=Math.floor,err=(abs(begin)+abs(end)+abs(end-begin))/abs(n)*$$$($$$("Float"),"EPSILON");return err>.5&&(err=.5),self.excl?(size=floor((end-begin)/n-err))*n+begin>",(function $Proc_$gt$gt$2(other){return delete $Proc_$gt$gt$2.$$p,$send($Kernel,"proc",[],(function $$3($a){var $post_args,block=$$3.$$p||nil,self=null==$$3.$$s?this:$$3.$$s,out=nil;return delete $$3.$$p,$post_args=Opal.slice.call(arguments),out=$send(self,"call",$to_a($post_args),block.$to_proc()),other.$call(out)}),{$$arity:-1,$$s:this})}),1),$def(self,"$<<",(function $Proc_$lt$lt$4(other){return delete $Proc_$lt$lt$4.$$p,$send($Kernel,"proc",[],(function $$5($a){var $post_args,block=$$5.$$p||nil,self=null==$$5.$$s?this:$$5.$$s,out=nil;return delete $$5.$$p,$post_args=Opal.slice.call(arguments),out=$send(other,"call",$to_a($post_args),block.$to_proc()),self.$call(out)}),{$$arity:-1,$$s:this})}),1),$def(self,"$to_proc",(function(){return this}),0),$def(self,"$lambda?",(function(){return!!this.$$is_lambda}),0),$def(self,"$arity",(function(){return this.$$is_curried?-1:this.$$arity}),0),$def(self,"$source_location",(function(){return this.$$is_curried,nil}),0),$def(self,"$binding",(function(){return this.$$is_curried&&$Kernel.$raise($$$("ArgumentError"),"Can't create Binding"),$truthy($$$("::","Binding","skip_raise")?"constant":nil)?$$$("Binding").$new(nil,[],this.$$s,this.$source_location()):nil}),0),$def(self,"$parameters",(function(){if(this.$$is_curried)return[["rest"]];if(this.$$parameters){if(this.$$is_lambda)return this.$$parameters;var i,length,result=[];for(i=0,length=this.$$parameters.length;iarity&&self.$$is_lambda&&!self.$$is_curried&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+length+" for "+arity+")"),length>=arity?self.$call.apply(self,args):(result=function(){return curried.apply(null,args.concat($slice.call(arguments)))},result.$$is_lambda=self.$$is_lambda,result.$$is_curried=!0,result)}return void 0===arity?arity=self.length:(arity=$Opal["$coerce_to!"](arity,$$$("Integer"),"to_int"),self.$$is_lambda&&arity!==self.length&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+arity+" for "+self.length+")")),curried.$$is_lambda=self.$$is_lambda,curried.$$is_curried=!0,curried}),-1),$def(self,"$dup",(function(){var original_proc=this.$$original_proc||this,proc=function(){return original_proc.apply(this,arguments)};for(var prop in this)this.hasOwnProperty(prop)&&(proc[prop]=this[prop]);return proc}),0),$alias(self,"===","call"),$alias(self,"clone","dup"),$alias(self,"yield","call"),$alias(self,"[]","call")},Opal.modules["corelib/method"]=function(Opal){var self,$proto,nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$def=Opal.def,$truthy=Opal.truthy,$alias=Opal.alias,$Kernel=Opal.Kernel,$send=Opal.send,$to_a=Opal.to_a;return Opal.add_stubs("attr_reader,arity,curry,>>,<<,new,class,join,source_location,raise,call,bind,to_proc"),self=$klass("::",null,"Method"),($proto=self.$$prototype).method=$proto.receiver=$proto.owner=$proto.name=nil,self.$attr_reader("owner","receiver","name"),$def(self,"$initialize",(function(receiver,owner,method,name){return this.receiver=receiver,this.owner=owner,this.name=name,this.method=method}),4),$def(self,"$arity",(function(){return this.method.$arity()}),0),$def(self,"$parameters",(function(){return this.method.$$parameters}),0),$def(self,"$source_location",(function(){var $ret_or_1;return $truthy($ret_or_1=this.method.$$source_location)?$ret_or_1:["(eval)",0]}),0),$def(self,"$comments",(function(){var $ret_or_1;return $truthy($ret_or_1=this.method.$$comments)?$ret_or_1:[]}),0),$def(self,"$call",(function $$call($a){var args,block=$$call.$$p||nil,self=this;return delete $$call.$$p,args=Opal.slice.call(arguments),self.method.$$p=block,self.method.apply(self.receiver,args)}),-1),$def(self,"$curry",(function(arity){return this.method.$curry(arity)}),-1),$def(self,"$>>",(function(other){return this.method["$>>"](other)}),1),$def(self,"$<<",(function(other){return this.method["$<<"](other)}),1),$def(self,"$unbind",(function(){return $$$("UnboundMethod").$new(this.receiver.$class(),this.owner,this.method,this.name)}),0),$def(self,"$to_proc",(function(){var proc=this.$call.bind(this);return proc.$$unbound=this.method,proc.$$is_lambda=!0,proc.$$arity=this.method.$$arity,proc.$$parameters=this.method.$$parameters,proc}),0),$def(self,"$inspect",(function(){return"#<"+this.$class()+": "+this.receiver.$class()+"#"+this.name+" (defined in "+this.owner+" in "+this.$source_location().$join(":")+")>"}),0),$alias(self,"[]","call"),$alias(self,"===","call"),function($base,$super){var self=$klass("::",null,"UnboundMethod"),$proto=self.$$prototype;return $proto.method=$proto.owner=$proto.name=$proto.source=nil,self.$attr_reader("source","owner","name"),$def(self,"$initialize",(function(source,owner,method,name){return this.source=source,this.owner=owner,this.method=method,this.name=name}),4),$def(self,"$arity",(function(){return this.method.$arity()}),0),$def(self,"$parameters",(function(){return this.method.$$parameters}),0),$def(self,"$source_location",(function(){var $ret_or_1;return $truthy($ret_or_1=this.method.$$source_location)?$ret_or_1:["(eval)",0]}),0),$def(self,"$comments",(function(){var $ret_or_1;return $truthy($ret_or_1=this.method.$$comments)?$ret_or_1:[]}),0),$def(self,"$bind",(function(object){if(this.owner.$$is_module||Opal.is_a(object,this.owner))return $$$("Method").$new(object,this.owner,this.method,this.name);$Kernel.$raise($$$("TypeError"),"can't bind singleton method to a different class (expected "+object+".kind_of?("+this.owner+" to be true)")}),1),$def(self,"$bind_call",(function $$bind_call(object,$a){var args,block=$$bind_call.$$p||nil,self=this;return delete $$bind_call.$$p,args=Opal.slice.call(arguments,1),$send(self.$bind(object),"call",$to_a(args),block.$to_proc())}),-2),$def(self,"$inspect",(function(){return"#<"+this.$class()+": "+this.source+"#"+this.name+" (defined in "+this.owner+" in "+this.$source_location().$join(":")+")>"}),0)}()},Opal.modules["corelib/variables"]=function(Opal){var nil=Opal.nil,$gvars=Opal.gvars,$const_set=Opal.const_set,$Object=Opal.Object,$hash2=Opal.hash2;return Opal.add_stubs("new"),$gvars["&"]=$gvars["~"]=$gvars["`"]=$gvars["'"]=nil,$gvars.LOADED_FEATURES=$gvars['"']=Opal.loaded_features,$gvars.LOAD_PATH=$gvars[":"]=[],$gvars["/"]="\n",$gvars[","]=nil,$const_set("::","ARGV",[]),$const_set("::","ARGF",$Object.$new()),$const_set("::","ENV",$hash2([],{})),$gvars.VERBOSE=!1,$gvars.DEBUG=!1,$gvars.SAFE=0},Opal.modules["corelib/io"]=function(Opal){var self,$proto,nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$not=Opal.not,$truthy=Opal.truthy,$def=Opal.def,$Kernel=Opal.Kernel,$gvars=Opal.gvars,$send=Opal.send,$to_a=Opal.to_a,$rb_plus=Opal.rb_plus,$neqeq=Opal.neqeq,$range=Opal.range,$hash2=Opal.hash2,$eqeq=Opal.eqeq,$to_ary=Opal.to_ary,$rb_gt=Opal.rb_gt,$alias=Opal.alias,$rb_minus=Opal.rb_minus,$writer=nil;Opal.add_stubs("attr_reader,attr_accessor,!,match?,include?,size,write,String,flatten,puts,sysread_noraise,+,!=,[],ord,getc,readchar,raise,gets,==,to_str,length,split,sub,sysread,>,to_a,each_line,enum_for,getbyte,closed_write?,closed_read?,new,write_proc=,-,read_proc="),self=$klass("::",null,"IO"),($proto=self.$$prototype).fd=$proto.read_buffer=$proto.closed=nil,$const_set(self,"SEEK_SET",0),$const_set(self,"SEEK_CUR",1),$const_set(self,"SEEK_END",2),$const_set(self,"SEEK_DATA",3),$const_set(self,"SEEK_HOLE",4),$const_set(self,"READABLE",1),$const_set(self,"WRITABLE",4),self.$attr_reader("eof"),self.$attr_accessor("read_proc","sync","tty","write_proc"),$def(self,"$initialize",(function(fd,flags){return null==flags&&(flags="r"),this.fd=fd,this.flags=flags,this.eof=!1,$truthy(flags["$include?"]("r"))&&$not(flags["$match?"](/[wa+]/))?this.closed="write":$truthy(flags["$match?"](/[wa]/))&&$not(flags["$match?"](/[r+]/))?this.closed="read":nil}),-2),$def(self,"$fileno",(function(){return this.fd}),0),$def(self,"$tty?",(function(){return 1==this.tty}),0),$def(self,"$write",(function(string){return this.write_proc(string),string.$size()}),1),$def(self,"$flush",(function(){return nil}),0),$def(self,"$<<",(function(string){return this.$write(string),this}),1),$def(self,"$print",(function($a){var args,self=this;null==$gvars[","]&&($gvars[","]=nil);for(var i=0,ii=(args=Opal.slice.call(arguments)).length;i0&&$send(self,"puts",$to_a(ary))}else(line=args[i].$$is_string?args[i].valueOf():$Kernel.$String(args[i])).endsWith("\n")||(line+="\n"),self.$write(line);return nil}),-1),$def(self,"$getc",(function(){var $ret_or_1,parts=nil,ret=nil;this.read_buffer=$truthy($ret_or_1=this.read_buffer)?$ret_or_1:"",parts="";do{if(this.read_buffer=$rb_plus(this.read_buffer,parts),$neqeq(this.read_buffer,""))return ret=this.read_buffer["$[]"](0),this.read_buffer=this.read_buffer["$[]"]($range(1,-1,!1)),ret}while($truthy(parts=this.$sysread_noraise(1)));return nil}),0),$def(self,"$getbyte",(function(){var $a;return($a=this.$getc())===nil||null==$a?nil:$send($a,"ord",[])}),0),$def(self,"$readbyte",(function(){return this.$readchar().$ord()}),0),$def(self,"$readchar",(function(){var $ret_or_1;return $truthy($ret_or_1=this.$getc())?$ret_or_1:$Kernel.$raise($$$("EOFError"),"end of file reached")}),0),$def(self,"$readline",(function($a){var $post_args,self=this,$ret_or_1=nil;return $post_args=Opal.slice.call(arguments),$truthy($ret_or_1=$send(self,"gets",$to_a($post_args)))?$ret_or_1:$Kernel.$raise($$$("EOFError"),"end of file reached")}),-1),$def(self,"$gets",(function(sep,limit,opts){var $a,$b,$c,orig_sep,seplen,$ret_or_1=nil,data=nil,ret=nil,orig_buffer=nil;null==$gvars["/"]&&($gvars["/"]=nil),null==sep&&(sep=!1),null==limit&&(limit=nil),null==opts&&(opts=$hash2([],{})),$truthy(sep.$$is_number)&&$not(limit)&&(sep=($a=[!1,sep,limit])[0],limit=$a[1],opts=$a[2]),$truthy(sep.$$is_hash)&&$not(limit)&&$eqeq(opts,$hash2([],{}))?(sep=($a=[!1,nil,sep])[0],limit=$a[1],opts=$a[2]):$truthy(limit.$$is_hash)&&$eqeq(opts,$hash2([],{}))&&(sep=($a=[sep,nil,limit])[0],limit=$a[1],opts=$a[2]),orig_sep=sep,$eqeq(sep,!1)&&(sep=$gvars["/"]),$eqeq(sep,"")&&(sep=/\r?\n\r?\n/),sep=$truthy($ret_or_1=sep)?$ret_or_1:"",$eqeq(orig_sep,"")||(sep=sep.$to_str()),seplen=$eqeq(orig_sep,"")?2:sep.$length(),$eqeq(sep," ")&&(sep=/ /),this.read_buffer=$truthy($ret_or_1=this.read_buffer)?$ret_or_1:"",data="",ret=nil;do{if(this.read_buffer=$rb_plus(this.read_buffer,data),$neqeq(sep,"")&&$truthy($truthy(sep.$$is_regexp)?this.read_buffer["$match?"](sep):this.read_buffer["$include?"](sep))){orig_buffer=this.read_buffer,$c=this.read_buffer.$split(sep,2),ret=null==($b=$to_ary($c))[0]?nil:$b[0],this.read_buffer=null==$b[1]?nil:$b[1],$neqeq(ret,orig_buffer)&&(ret=$rb_plus(ret,orig_buffer["$[]"](ret.$length(),seplen)));break}}while($truthy(data=this.$sysread_noraise($eqeq(sep,"")?65536:1)));return $truthy(ret)||(ret=($a=[$truthy($ret_or_1=this.read_buffer)?$ret_or_1:"",""])[0],this.read_buffer=$a[1],$eqeq(ret,"")&&(ret=nil)),$truthy(ret)&&($truthy(limit)&&(ret=ret["$[]"](Opal.Range.$new(0,limit,!0)),this.read_buffer=$rb_plus(ret["$[]"](Opal.Range.$new(limit,-1,!1)),this.read_buffer)),$truthy(opts["$[]"]("chomp"))&&(ret=ret.$sub(/\r?\n$/,"")),$eqeq(orig_sep,"")&&(ret=ret.$sub(/^[\r\n]+/,""))),$eqeq(orig_sep,!1)&&($gvars._=ret),ret}),-1),$def(self,"$sysread",(function(integer){var $ret_or_1;return $truthy($ret_or_1=this.read_proc(integer))?$ret_or_1:(this.eof=!0,$Kernel.$raise($$$("EOFError"),"end of file reached"))}),1),$def(self,"$sysread_noraise",(function(integer){try{return this.$sysread(integer)}catch($err){if(!Opal.rescue($err,[$$$("EOFError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}),1),$def(self,"$readpartial",(function(integer){var $a,part,$ret_or_1=nil,ret=nil;return this.read_buffer=$truthy($ret_or_1=this.read_buffer)?$ret_or_1:"",part=this.$sysread(integer),ret=($a=[$rb_plus(this.read_buffer,$truthy($ret_or_1=part)?$ret_or_1:""),""])[0],this.read_buffer=$a[1],$eqeq(ret,"")&&(ret=nil),ret}),1),$def(self,"$read",(function(integer){var $a,$b,$ret_or_1=nil,parts=nil,ret=nil;null==integer&&(integer=nil),this.read_buffer=$truthy($ret_or_1=this.read_buffer)?$ret_or_1:"",parts="",ret=nil;do{if(this.read_buffer=$rb_plus(this.read_buffer,parts),$truthy(integer)&&$truthy($rb_gt(this.read_buffer.$length(),integer)))return ret=($b=[this.read_buffer["$[]"](Opal.Range.$new(0,integer,!0)),this.read_buffer["$[]"](Opal.Range.$new(integer,-1,!1))])[0],this.read_buffer=$b[1],ret}while($truthy(parts=this.$sysread_noraise($truthy($ret_or_1=integer)?$ret_or_1:65536)));return ret=($a=[this.read_buffer,""])[0],this.read_buffer=$a[1],ret}),-1),$def(self,"$readlines",(function(separator){return null==$gvars["/"]&&($gvars["/"]=nil),null==separator&&(separator=$gvars["/"]),this.$each_line(separator).$to_a()}),-1),$def(self,"$each",(function $$each($a,$b){var $post_args,sep,args,block=$$each.$$p||nil,self=this,s=nil;if(null==$gvars["/"]&&($gvars["/"]=nil),delete $$each.$$p,($post_args=Opal.slice.call(arguments)).length>0&&(sep=$post_args.shift()),null==sep&&(sep=$gvars["/"]),args=$post_args,block===nil)return $send(self,"enum_for",["each",sep].concat($to_a(args)));for(;$truthy(s=$send(self,"gets",[sep].concat($to_a(args))));)Opal.yield1(block,s);return self}),-1),$def(self,"$each_byte",(function $$each_byte(){var block=$$each_byte.$$p||nil,s=nil;if(delete $$each_byte.$$p,block===nil)return this.$enum_for("each_byte");for(;$truthy(s=this.$getbyte());)Opal.yield1(block,s);return this}),0),$def(self,"$each_char",(function $$each_char(){var block=$$each_char.$$p||nil,s=nil;if(delete $$each_char.$$p,block===nil)return this.$enum_for("each_char");for(;$truthy(s=this.$getc());)Opal.yield1(block,s);return this}),0),$def(self,"$close",(function(){return this.closed="both"}),0),$def(self,"$close_read",(function(){return $eqeq(this.closed,"write")?this.closed="both":this.closed="read"}),0),$def(self,"$close_write",(function(){return $eqeq(this.closed,"read")?this.closed="both":this.closed="write"}),0),$def(self,"$closed?",(function(){return this.closed["$=="]("both")}),0),$def(self,"$closed_read?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.closed["$=="]("read"))?$ret_or_1:this.closed["$=="]("both")}),0),$def(self,"$closed_write?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.closed["$=="]("write"))?$ret_or_1:this.closed["$=="]("both")}),0),$def(self,"$check_writable",(function(){return $truthy(this["$closed_write?"]())?$Kernel.$raise($$$("IOError"),"not opened for writing"):nil}),0),$def(self,"$check_readable",(function(){return $truthy(this["$closed_read?"]())?$Kernel.$raise($$$("IOError"),"not opened for reading"):nil}),0),$alias(self,"each_line","each"),$alias(self,"eof?","eof"),$const_set("::","STDIN",$gvars.stdin=$$$("IO").$new(0,"r")),$const_set("::","STDOUT",$gvars.stdout=$$$("IO").$new(1,"w")),$const_set("::","STDERR",$gvars.stderr=$$$("IO").$new(2,"w"));var console=Opal.global.console;return $writer=["object"==typeof process&&"object"==typeof process.stdout?function(s){process.stdout.write(s)}:function(s){console.log(s)}],$send($$$("STDOUT"),"write_proc=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=["object"==typeof process&&"object"==typeof process.stderr?function(s){process.stderr.write(s)}:function(s){console.warn(s)}],$send($$$("STDERR"),"write_proc=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=[function(s){var p=prompt();return null!==p?p+"\n":nil}],$send($$$("STDIN"),"read_proc=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]},Opal.modules["opal/regexp_anchors"]=function(Opal){var $nesting=[],$$$=(Opal.nil,Opal.$$$),$module=Opal.module,$const_set=Opal.const_set;return Opal.add_stubs("new"),function($base,$parent_nesting){var self=$module($base,"Opal"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $const_set(self,"REGEXP_START","^"),$const_set(self,"REGEXP_END","$"),$const_set(self,"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),$const_set(self,"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),$const_set(self,"INLINE_IDENTIFIER_REGEXP",$$("Regexp").$new("[^"+$$$(self,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+$$$(self,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),$const_set(self,"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),$const_set(self,"CONST_NAME_REGEXP",$$("Regexp").$new($$$(self,"REGEXP_START")+"(::)?[A-Z][^"+$$$(self,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+$$$(self,"REGEXP_END")))}($nesting[0],$nesting)},Opal.modules["opal/mini"]=function(Opal){Opal.nil;var $Object=Opal.Object;return Opal.add_stubs("require"),$Object.$require("opal/base"),$Object.$require("corelib/nil"),$Object.$require("corelib/boolean"),$Object.$require("corelib/string"),$Object.$require("corelib/comparable"),$Object.$require("corelib/enumerable"),$Object.$require("corelib/enumerator"),$Object.$require("corelib/array"),$Object.$require("corelib/hash"),$Object.$require("corelib/number"),$Object.$require("corelib/range"),$Object.$require("corelib/proc"),$Object.$require("corelib/method"),$Object.$require("corelib/regexp"),$Object.$require("corelib/variables"),$Object.$require("corelib/io"),$Object.$require("opal/regexp_anchors")},Opal.modules["corelib/kernel/format"]=function(Opal){var self,nil=Opal.nil,$$$=Opal.$$$,$coerce_to=Opal.coerce_to,$module=Opal.module,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$Opal=Opal.Opal,$Kernel=Opal.Kernel,$gvars=Opal.gvars,$def=Opal.def,$alias=Opal.alias;return Opal.add_stubs("respond_to?,[],==,length,coerce_to?,nil?,to_a,raise,to_int,fetch,Integer,Float,to_ary,to_str,inspect,to_s"),self=$module("::","Kernel"),$def(self,"$format",(function(format_string,$a){var $post_args,args,ary=nil;null==$gvars.DEBUG&&($gvars.DEBUG=nil),$post_args=Opal.slice.call(arguments,1),$eqeq((args=$post_args).$length(),1)&&$truthy(args["$[]"](0)["$respond_to?"]("to_ary"))&&(ary=$Opal["$coerce_to?"](args["$[]"](0),$$$("Array"),"to_ary"),$truthy(ary["$nil?"]())||(args=ary.$to_a()));var end_slice,i,arg,str,exponent,width,precision,tmp_num,hash_parameter_key,closing_brace_char,base_number,base_prefix,base_neg_zero_regex,base_neg_zero_digit,next_arg,flags,result="",begin_slice=0,len=format_string.length,seq_arg_num=1,pos_arg_num=0,FNONE=0,FSHARP=1,FMINUS=2,FPLUS=4,FZERO=8,FSPACE=16,FWIDTH=32,FPREC=64,FPREC0=128;function CHECK_FOR_FLAGS(){flags&FWIDTH&&$Kernel.$raise($$$("ArgumentError"),"flag after width"),flags&FPREC0&&$Kernel.$raise($$$("ArgumentError"),"flag after precision")}function CHECK_FOR_WIDTH(){flags&FWIDTH&&$Kernel.$raise($$$("ArgumentError"),"width given twice"),flags&FPREC0&&$Kernel.$raise($$$("ArgumentError"),"width after precision")}function GET_NTH_ARG(num){return num>=args.length&&$Kernel.$raise($$$("ArgumentError"),"too few arguments"),args[num]}function GET_NEXT_ARG(){switch(pos_arg_num){case-1:$Kernel.$raise($$$("ArgumentError"),"unnumbered("+seq_arg_num+") mixed with numbered");case-2:$Kernel.$raise($$$("ArgumentError"),"unnumbered("+seq_arg_num+") mixed with named")}return GET_NTH_ARG((pos_arg_num=seq_arg_num++)-1)}function GET_POS_ARG(num){return pos_arg_num>0&&$Kernel.$raise($$$("ArgumentError"),"numbered("+num+") after unnumbered("+pos_arg_num+")"),-2===pos_arg_num&&$Kernel.$raise($$$("ArgumentError"),"numbered("+num+") after named"),num<1&&$Kernel.$raise($$$("ArgumentError"),"invalid index - "+num+"$"),pos_arg_num=-1,GET_NTH_ARG(num-1)}function GET_ARG(){return void 0===next_arg?GET_NEXT_ARG():next_arg}function READ_NUM(label){for(var num,str="";;i++){if(i===len&&$Kernel.$raise($$$("ArgumentError"),"malformed format string - %*[0-9]"),format_string.charCodeAt(i)<48||format_string.charCodeAt(i)>57)return i--,(num=parseInt(str,10)||0)>2147483647&&$Kernel.$raise($$$("ArgumentError"),label+" too big"),num;str+=format_string.charAt(i)}}function READ_NUM_AFTER_ASTER(label){var arg,num=READ_NUM(label);return"$"===format_string.charAt(i+1)?(i++,arg=GET_POS_ARG(num)):arg=GET_NEXT_ARG(),arg.$to_int()}for(i=format_string.indexOf("%");-1!==i;i=format_string.indexOf("%",i)){switch(str=void 0,flags=FNONE,width=-1,precision=-1,next_arg=void 0,end_slice=i,i++,format_string.charAt(i)){case"%":begin_slice=i;case"":case"\n":case"\0":i++;continue}format_sequence:for(;i":"}",hash_parameter_key="",i++;;i++){if(i===len&&$Kernel.$raise($$$("ArgumentError"),"malformed name - unmatched parenthesis"),format_string.charAt(i)===closing_brace_char){if(pos_arg_num>0&&$Kernel.$raise($$$("ArgumentError"),"named "+hash_parameter_key+" after unnumbered("+pos_arg_num+")"),-1===pos_arg_num&&$Kernel.$raise($$$("ArgumentError"),"named "+hash_parameter_key+" after numbered"),pos_arg_num=-2,void 0!==args[0]&&args[0].$$is_hash||$Kernel.$raise($$$("ArgumentError"),"one hash required"),next_arg=args[0].$fetch(hash_parameter_key),">"===closing_brace_char)continue format_sequence;if(str=next_arg.toString(),-1!==precision&&(str=str.slice(0,precision)),flags&FMINUS)for(;str.length=0){for(str=arg.toString();str.length=0){for(str=arg.toString(base_number);str.length>>0).toString(base_number).replace(base_neg_zero_regex,base_neg_zero_digit);str.length=0||isNaN(arg)){if(arg===1/0)str="Inf";else switch(format_string.charAt(i)){case"f":str=arg.toFixed(-1===precision?6:precision);break;case"e":case"E":str=arg.toExponential(-1===precision?6:precision);break;case"g":case"G":str=arg.toExponential(),(exponent=parseInt(str.split("e")[1],10))<-4||exponent>=(-1===precision?6:precision)||(str=arg.toPrecision(-1===precision?flags&FSHARP?6:void 0:precision))}if(flags&FMINUS)for((flags&FPLUS||flags&FSPACE)&&(str=(flags&FPLUS?"+":" ")+str);str.length=(-1===precision?6:precision)||(str=(-arg).toPrecision(-1===precision?flags&FSHARP?6:void 0:precision))}if(flags&FMINUS)for(str="-"+str;str.length=0&&seq_arg_num"}),0),$def(self,"$charsize",(function(string){for(var len=0,i=0,length=string.length;i=55296&&charcode<=56319||len++}return len}),1),$def(self,"$each_char",(function $$each_char(string){var block=$$each_char.$$p||nil;delete $$each_char.$$p;for(var low_surrogate="",i=0,length=string.length;i=56320&&charcode<=57343?low_surrogate=chr:(charcode>=55296&&charcode<=56319&&(chr=low_surrogate+chr),"UTF-8"!=string.encoding.name&&((chr=new String(chr)).encoding=string.encoding),Opal.yield1(block,chr))}}),1),$def(self,"$each_byte",(function($a){return Opal.slice.call(arguments),$Kernel.$raise($$$("NotImplementedError"))}),-1),$def(self,"$bytesize",(function($a){return Opal.slice.call(arguments),$Kernel.$raise($$$("NotImplementedError"))}),-1),$klass("::",$$$("StandardError"),"EncodingError"),$klass("::",$$$("EncodingError"),"CompatibilityError")}(),$send($$$("Encoding"),"register",["UTF-8",$hash2(["aliases","ascii"],{aliases:["CP65001"],ascii:!0})],(function $$5(){var self=null==$$5.$$s?this:$$5.$$s;return $def(self,"$each_byte",(function $$each_byte(string){var block=$$each_byte.$$p||nil;delete $$each_byte.$$p;for(var codePoint,units=1/0,length=string.length,leadSurrogate=null,i=0;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&(Opal.yield1(block,239),Opal.yield1(block,191),Opal.yield1(block,189));continue}if(i+1===length){(units-=3)>-1&&(Opal.yield1(block,239),Opal.yield1(block,191),Opal.yield1(block,189));continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&(Opal.yield1(block,239),Opal.yield1(block,191),Opal.yield1(block,189)),leadSurrogate=codePoint;continue}codePoint=65536+(leadSurrogate-55296<<10|codePoint-56320)}else leadSurrogate&&(units-=3)>-1&&(Opal.yield1(block,239),Opal.yield1(block,191),Opal.yield1(block,189));if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;Opal.yield1(block,codePoint)}else if(codePoint<2048){if((units-=2)<0)break;Opal.yield1(block,codePoint>>6|192),Opal.yield1(block,63&codePoint|128)}else if(codePoint<65536){if((units-=3)<0)break;Opal.yield1(block,codePoint>>12|224),Opal.yield1(block,codePoint>>6&63|128),Opal.yield1(block,63&codePoint|128)}else if(codePoint<1114112){if((units-=4)<0)break;Opal.yield1(block,codePoint>>18|240),Opal.yield1(block,codePoint>>12&63|128),Opal.yield1(block,codePoint>>6&63|128),Opal.yield1(block,63&codePoint|128)}}}),1),$def(self,"$bytesize",(function(string){return string.$bytes().$length()}),1)}),{$$arity:0,$$s:self}),$send($$$("Encoding"),"register",["UTF-16LE"],(function $$6(){var self=null==$$6.$$s?this:$$6.$$s;return $def(self,"$each_byte",(function $$each_byte(string){var block=$$each_byte.$$p||nil;delete $$each_byte.$$p;for(var i=0,length=string.length;i>8)}}),1),$def(self,"$bytesize",(function(string){return 2*string.length}),1)}),{$$arity:0,$$s:self}),$send($$$("Encoding"),"register",["UTF-16BE",$hash2(["inherits"],{inherits:$$$($$$("Encoding"),"UTF_16LE")})],(function $$7(){return $def(null==$$7.$$s?this:$$7.$$s,"$each_byte",(function $$each_byte(string){var block=$$each_byte.$$p||nil;delete $$each_byte.$$p;for(var i=0,length=string.length;i>8),Opal.yield1(block,255&code)}}),1)}),{$$arity:0,$$s:self}),$send($$$("Encoding"),"register",["UTF-32LE"],(function $$8(){var self=null==$$8.$$s?this:$$8.$$s;return $def(self,"$each_byte",(function $$each_byte(string){var block=$$each_byte.$$p||nil;delete $$each_byte.$$p;for(var i=0,length=string.length;i>8),Opal.yield1(block,0),Opal.yield1(block,0)}}),1),$def(self,"$bytesize",(function(string){return 4*string.length}),1)}),{$$arity:0,$$s:self}),$send($$$("Encoding"),"register",["UTF-32BE",$hash2(["inherits"],{inherits:$$$($$$("Encoding"),"UTF_32LE")})],(function $$9(){return $def(null==$$9.$$s?this:$$9.$$s,"$each_byte",(function $$each_byte(string){var block=$$each_byte.$$p||nil;delete $$each_byte.$$p;for(var i=0,length=string.length;i>8),Opal.yield1(block,255&code)}}),1)}),{$$arity:0,$$s:self}),$send($$$("Encoding"),"register",["ASCII-8BIT",$hash2(["aliases","ascii"],{aliases:["BINARY"],ascii:!0})],(function $$10(){var self=null==$$10.$$s?this:$$10.$$s;return $def(self,"$each_char",(function $$each_char(string){var block=$$each_char.$$p||nil;delete $$each_char.$$p;for(var i=0,length=string.length;i171)return 1/0;for(value=n-2,result=n-1;value>1;)result*=value,value--;return 0==result&&(result=1),result}if(n<.5)return Math.PI/(Math.sin(Math.PI*n)*$$$("Math").$gamma($rb_minus(1,n)));if(n>=171.35)return 1/0;if(n>85)return fiveN=(fourN=(threeN=(twoN=n*n)*n)*n)*n,Math.sqrt(2*Math.PI/n)*Math.pow(n/Math.E,n)*(1+1/(12*n)+1/(288*twoN)-139/(51840*threeN)-571/(2488320*fourN)+163879/(209018880*fiveN)+5246819/(75246796800*fiveN*n));for(n-=1,x=P[0],i=1;i,!=,divmod,**,hypot,atan2,lcm,denominator,finite?,infinite?,numerator,abs,arg,rationalize,to_f,to_i,to_r,inspect,zero?,positive?,Rational"),self.$require("corelib/numeric"),self.$require("corelib/complex/base"),function($base,$super,$parent_nesting){var self=$klass("::",$super,"Complex"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.real=$proto.imag=nil,$defs(self,"$rect",(function(real,imag){return null==imag&&(imag=0),$eqeqeq($$$("Numeric"),real)&&$truthy(real["$real?"]())&&$eqeqeq($$$("Numeric"),imag)&&$truthy(imag["$real?"]())||$Kernel.$raise($$$("TypeError"),"not a real"),this.$new(real,imag)}),-2),$defs(self,"$polar",(function(r,theta){return null==theta&&(theta=0),$eqeqeq($$$("Numeric"),r)&&$truthy(r["$real?"]())&&$eqeqeq($$$("Numeric"),theta)&&$truthy(theta["$real?"]())||$Kernel.$raise($$$("TypeError"),"not a real"),this.$new($rb_times(r,$$$("Math").$cos(theta)),$rb_times(r,$$$("Math").$sin(theta)))}),-2),self.$attr_reader("real","imag"),$def(self,"$initialize",(function(real,imag){return null==imag&&(imag=0),this.real=real,this.imag=imag}),-2),$def(self,"$coerce",(function(other){return $eqeqeq($$$("Complex"),other)?[other,this]:$eqeqeq($$$("Numeric"),other)&&$truthy(other["$real?"]())?[$$$("Complex").$new(other,0),this]:$Kernel.$raise($$$("TypeError"),other.$class()+" can't be coerced into Complex")}),1),$def(self,"$==",(function(other){var $ret_or_1=nil;return $eqeqeq($$$("Complex"),other)?$truthy($ret_or_1=this.real["$=="](other.$real()))?this.imag["$=="](other.$imag()):$ret_or_1:$eqeqeq($$$("Numeric"),other)&&$truthy(other["$real?"]())?$truthy($ret_or_1=this.real["$=="](other))?this.imag["$=="](0):$ret_or_1:other["$=="](this)}),1),$def(self,"$-@",(function(){return $Kernel.$Complex(this.real["$-@"](),this.imag["$-@"]())}),0),$def(self,"$+",(function(other){return $eqeqeq($$$("Complex"),other)?$Kernel.$Complex($rb_plus(this.real,other.$real()),$rb_plus(this.imag,other.$imag())):$eqeqeq($$$("Numeric"),other)&&$truthy(other["$real?"]())?$Kernel.$Complex($rb_plus(this.real,other),this.imag):this.$__coerced__("+",other)}),1),$def(self,"$-",(function(other){return $eqeqeq($$$("Complex"),other)?$Kernel.$Complex($rb_minus(this.real,other.$real()),$rb_minus(this.imag,other.$imag())):$eqeqeq($$$("Numeric"),other)&&$truthy(other["$real?"]())?$Kernel.$Complex($rb_minus(this.real,other),this.imag):this.$__coerced__("-",other)}),1),$def(self,"$*",(function(other){return $eqeqeq($$$("Complex"),other)?$Kernel.$Complex($rb_minus($rb_times(this.real,other.$real()),$rb_times(this.imag,other.$imag())),$rb_plus($rb_times(this.real,other.$imag()),$rb_times(this.imag,other.$real()))):$eqeqeq($$$("Numeric"),other)&&$truthy(other["$real?"]())?$Kernel.$Complex($rb_times(this.real,other),$rb_times(this.imag,other)):this.$__coerced__("*",other)}),1),$def(self,"$/",(function(other){return $eqeqeq($$$("Complex"),other)?$eqeqeq($$$("Number"),this.real)&&$truthy(this.real["$nan?"]())||$eqeqeq($$$("Number"),this.imag)&&$truthy(this.imag["$nan?"]())||$eqeqeq($$$("Number"),other.$real())&&$truthy(other.$real()["$nan?"]())||$eqeqeq($$$("Number"),other.$imag())&&$truthy(other.$imag()["$nan?"]())?$$$("Complex").$new($$$($$$("Float"),"NAN"),$$$($$$("Float"),"NAN")):$rb_divide($rb_times(this,other.$conj()),other.$abs2()):$eqeqeq($$$("Numeric"),other)&&$truthy(other["$real?"]())?$Kernel.$Complex(this.real.$quo(other),this.imag.$quo(other)):this.$__coerced__("/",other)}),1),$def(self,"$**",(function(other){var $a,$b,$c,$d,r=nil,theta=nil,ore=nil,oim=nil,nr=nil,ntheta=nil,x=nil,z=nil,n=nil,div=nil,mod=nil;if($eqeq(other,0))return $$$("Complex").$new(1,0);if($eqeqeq($$$("Complex"),other))return $b=this.$polar(),r=null==($a=$to_ary($b))[0]?nil:$a[0],theta=null==$a[1]?nil:$a[1],ore=other.$real(),oim=other.$imag(),nr=$$$("Math").$exp($rb_minus($rb_times(ore,$$$("Math").$log(r)),$rb_times(oim,theta))),ntheta=$rb_plus($rb_times(theta,ore),$rb_times(oim,$$$("Math").$log(r))),$$$("Complex").$polar(nr,ntheta);if($eqeqeq($$$("Integer"),other)){if($truthy($rb_gt(other,0))){for(z=x=this,n=$rb_minus(other,1);$neqeq(n,0);){for($c=n.$divmod(2),div=null==($b=$to_ary($c))[0]?nil:$b[0],mod=null==$b[1]?nil:$b[1];$eqeq(mod,0);)x=$Kernel.$Complex($rb_minus($rb_times(x.$real(),x.$real()),$rb_times(x.$imag(),x.$imag())),$rb_times($rb_times(2,x.$real()),x.$imag())),$d=(n=div).$divmod(2),div=null==($c=$to_ary($d))[0]?nil:$c[0],mod=null==$c[1]?nil:$c[1];z=$rb_times(z,x),n=$rb_minus(n,1)}return z}return $rb_divide($$$("Rational").$new(1,1),this)["$**"](other["$-@"]())}return $eqeqeq($$$("Float"),other)||$eqeqeq($$$("Rational"),other)?($b=this.$polar(),r=null==($a=$to_ary($b))[0]?nil:$a[0],theta=null==$a[1]?nil:$a[1],$$$("Complex").$polar(r["$**"](other),$rb_times(theta,other))):this.$__coerced__("**",other)}),1),$def(self,"$abs",(function(){return $$$("Math").$hypot(this.real,this.imag)}),0),$def(self,"$abs2",(function(){return $rb_plus($rb_times(this.real,this.real),$rb_times(this.imag,this.imag))}),0),$def(self,"$angle",(function(){return $$$("Math").$atan2(this.imag,this.real)}),0),$def(self,"$conj",(function(){return $Kernel.$Complex(this.real,this.imag["$-@"]())}),0),$def(self,"$denominator",(function(){return this.real.$denominator().$lcm(this.imag.$denominator())}),0),$def(self,"$eql?",(function(other){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=$$("Complex")["$==="](other))?this.real.$class()["$=="](this.imag.$class()):$ret_or_2)?this["$=="](other):$ret_or_1}),1),$def(self,"$fdiv",(function(other){return $eqeqeq($$$("Numeric"),other)||$Kernel.$raise($$$("TypeError"),other.$class()+" can't be coerced into Complex"),$rb_divide(this,other)}),1),$def(self,"$finite?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.real["$finite?"]())?this.imag["$finite?"]():$ret_or_1}),0),$def(self,"$hash",(function(){return"Complex:"+this.real+":"+this.imag}),0),$def(self,"$infinite?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.real["$infinite?"]())?$ret_or_1:this.imag["$infinite?"]()}),0),$def(self,"$inspect",(function(){return"("+this+")"}),0),$def(self,"$numerator",(function(){var d;return d=this.$denominator(),$Kernel.$Complex($rb_times(this.real.$numerator(),$rb_divide(d,this.real.$denominator())),$rb_times(this.imag.$numerator(),$rb_divide(d,this.imag.$denominator())))}),0),$def(self,"$polar",(function(){return[this.$abs(),this.$arg()]}),0),$def(self,"$rationalize",(function(eps){var self=this;return arguments.length>1&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),$neqeq(self.imag,0)&&$Kernel.$raise($$$("RangeError"),"can't convert "+self+" into Rational"),self.$real().$rationalize(eps)}),-1),$def(self,"$real?",(function(){return!1}),0),$def(self,"$rect",(function(){return[this.real,this.imag]}),0),$def(self,"$to_f",(function(){return $eqeq(this.imag,0)||$Kernel.$raise($$$("RangeError"),"can't convert "+this+" into Float"),this.real.$to_f()}),0),$def(self,"$to_i",(function(){return $eqeq(this.imag,0)||$Kernel.$raise($$$("RangeError"),"can't convert "+this+" into Integer"),this.real.$to_i()}),0),$def(self,"$to_r",(function(){return $eqeq(this.imag,0)||$Kernel.$raise($$$("RangeError"),"can't convert "+this+" into Rational"),this.real.$to_r()}),0),$def(self,"$to_s",(function(){var result=nil;return result=this.real.$inspect(),result=$rb_plus(result,$eqeqeq($$$("Number"),this.imag)&&$truthy(this.imag["$nan?"]())||$truthy(this.imag["$positive?"]())||$truthy(this.imag["$zero?"]())?"+":"-"),result=$rb_plus(result,this.imag.$abs().$inspect()),$eqeqeq($$$("Number"),this.imag)&&($truthy(this.imag["$nan?"]())||$truthy(this.imag["$infinite?"]()))&&(result=$rb_plus(result,"*")),$rb_plus(result,"i")}),0),$const_set($nesting[0],"I",self.$new(0,1)),$defs(self,"$from_string",(function(str){var real,imag,re=/[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/;str.match(re);function isFloat(){return re.test(str)}function cutFloat(){var number=str.match(re)[0];return str=str.slice(number.length),number.replace(/_/g,"")}function cutNumber(){if(isFloat()){var numerator=parseFloat(cutFloat());if("/"===str[0]){if(str=str.slice(1),isFloat()){var denominator=parseFloat(cutFloat());return $Kernel.$Rational(numerator,denominator)}return str="/"+str,numerator}return numerator}return null}return(real=cutNumber())?(imag=cutNumber())?$Kernel.$Complex(real,imag):"i"===str[0]?$Kernel.$Complex(0,real):$Kernel.$Complex(real,0):"i"===str[0]?$Kernel.$Complex(0,1):"-"===str[0]&&"i"===str[1]?$Kernel.$Complex(0,-1):"+"===str[0]&&"i"===str[1]?$Kernel.$Complex(0,1):$Kernel.$Complex(0,0)}),1),function(self,$parent_nesting){$alias(self,"rectangular","rect")}(Opal.get_singleton_class(self)),$alias(self,"arg","angle"),$alias(self,"conjugate","conj"),$alias(self,"divide","/"),$alias(self,"imaginary","imag"),$alias(self,"magnitude","abs"),$alias(self,"phase","arg"),$alias(self,"quo","/"),$alias(self,"rectangular","rect"),Opal.udef(self,"$negative?"),Opal.udef(self,"$positive?"),Opal.udef(self,"$step"),nil}(0,$$$("Numeric"),[])},Opal.modules["corelib/rational/base"]=function(Opal){Opal.nil;var self,$$$=Opal.$$$,$module=Opal.module,$def=Opal.def,$klass=Opal.klass;return Opal.add_stubs("convert,from_string"),self=$module("::","Kernel"),$def(self,"$Rational",(function(numerator,denominator){return null==denominator&&(denominator=1),$$$("Rational").$convert(numerator,denominator)}),-2),function($base,$super){var self=$klass("::",null,"String");return $def(self,"$to_r",(function(){return $$$("Rational").$from_string(this)}),0)}()},Opal.modules["corelib/rational"]=function(Opal){var self=Opal.top,nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$eqeq=Opal.eqeq,$Kernel=Opal.Kernel,$truthy=Opal.truthy,$rb_lt=Opal.rb_lt,$rb_divide=Opal.rb_divide,$defs=Opal.defs,$eqeqeq=Opal.eqeqeq,$not=Opal.not,$Opal=Opal.Opal,$def=Opal.def,$rb_minus=Opal.rb_minus,$rb_times=Opal.rb_times,$rb_plus=Opal.rb_plus,$rb_gt=Opal.rb_gt,$rb_le=Opal.rb_le,$alias=Opal.alias;return Opal.add_stubs("require,to_i,==,raise,<,-@,new,gcd,/,nil?,===,reduce,to_r,!,equal?,coerce_to!,to_f,numerator,denominator,<=>,-,*,__coerced__,+,Rational,>,**,abs,ceil,with_precision,floor,<=,truncate,send"),self.$require("corelib/numeric"),self.$require("corelib/rational/base"),function($base,$super){var self=$klass("::",$super,"Rational"),$proto=self.$$prototype;return $proto.num=$proto.den=nil,$defs(self,"$reduce",(function(num,den){var gcd;if(num=num.$to_i(),den=den.$to_i(),$eqeq(den,0))$Kernel.$raise($$$("ZeroDivisionError"),"divided by 0");else if($truthy($rb_lt(den,0)))num=num["$-@"](),den=den["$-@"]();else if($eqeq(den,1))return this.$new(num,den);return gcd=num.$gcd(den),this.$new($rb_divide(num,gcd),$rb_divide(den,gcd))}),2),$defs(self,"$convert",(function(num,den){return($truthy(num["$nil?"]())||$truthy(den["$nil?"]()))&&$Kernel.$raise($$$("TypeError"),"cannot convert nil into Rational"),$eqeqeq($$$("Integer"),num)&&$eqeqeq($$$("Integer"),den)?this.$reduce(num,den):(($eqeqeq($$$("Float"),num)||$eqeqeq($$$("String"),num)||$eqeqeq($$$("Complex"),num))&&(num=num.$to_r()),($eqeqeq($$$("Float"),den)||$eqeqeq($$$("String"),den)||$eqeqeq($$$("Complex"),den))&&(den=den.$to_r()),$truthy(den["$equal?"](1))&&$not($$$("Integer")["$==="](num))?$Opal["$coerce_to!"](num,$$$("Rational"),"to_r"):$eqeqeq($$$("Numeric"),num)&&$eqeqeq($$$("Numeric"),den)?$rb_divide(num,den):this.$reduce(num,den))}),2),$def(self,"$initialize",(function(num,den){return this.num=num,this.den=den}),2),$def(self,"$numerator",(function(){return this.num}),0),$def(self,"$denominator",(function(){return this.den}),0),$def(self,"$coerce",(function(other){var $ret_or_1;return $eqeqeq($$$("Rational"),$ret_or_1=other)?[other,this]:$eqeqeq($$$("Integer"),$ret_or_1)?[other.$to_r(),this]:$eqeqeq($$$("Float"),$ret_or_1)?[other,this.$to_f()]:nil}),1),$def(self,"$==",(function(other){var $ret_or_1,$ret_or_2=nil;return $eqeqeq($$$("Rational"),$ret_or_1=other)?$truthy($ret_or_2=this.num["$=="](other.$numerator()))?this.den["$=="](other.$denominator()):$ret_or_2:$eqeqeq($$$("Integer"),$ret_or_1)?$truthy($ret_or_2=this.num["$=="](other))?this.den["$=="](1):$ret_or_2:$eqeqeq($$$("Float"),$ret_or_1)?this.$to_f()["$=="](other):other["$=="](this)}),1),$def(self,"$<=>",(function(other){var $ret_or_1;return $eqeqeq($$$("Rational"),$ret_or_1=other)?$rb_minus($rb_times(this.num,other.$denominator()),$rb_times(this.den,other.$numerator()))["$<=>"](0):$eqeqeq($$$("Integer"),$ret_or_1)?$rb_minus(this.num,$rb_times(this.den,other))["$<=>"](0):$eqeqeq($$$("Float"),$ret_or_1)?this.$to_f()["$<=>"](other):this.$__coerced__("<=>",other)}),1),$def(self,"$+",(function(other){var $ret_or_1,num=nil,den=nil;return $eqeqeq($$$("Rational"),$ret_or_1=other)?(num=$rb_plus($rb_times(this.num,other.$denominator()),$rb_times(this.den,other.$numerator())),den=$rb_times(this.den,other.$denominator()),$Kernel.$Rational(num,den)):$eqeqeq($$$("Integer"),$ret_or_1)?$Kernel.$Rational($rb_plus(this.num,$rb_times(other,this.den)),this.den):$eqeqeq($$$("Float"),$ret_or_1)?$rb_plus(this.$to_f(),other):this.$__coerced__("+",other)}),1),$def(self,"$-",(function(other){var $ret_or_1,num=nil,den=nil;return $eqeqeq($$$("Rational"),$ret_or_1=other)?(num=$rb_minus($rb_times(this.num,other.$denominator()),$rb_times(this.den,other.$numerator())),den=$rb_times(this.den,other.$denominator()),$Kernel.$Rational(num,den)):$eqeqeq($$$("Integer"),$ret_or_1)?$Kernel.$Rational($rb_minus(this.num,$rb_times(other,this.den)),this.den):$eqeqeq($$$("Float"),$ret_or_1)?$rb_minus(this.$to_f(),other):this.$__coerced__("-",other)}),1),$def(self,"$*",(function(other){var $ret_or_1,num=nil,den=nil;return $eqeqeq($$$("Rational"),$ret_or_1=other)?(num=$rb_times(this.num,other.$numerator()),den=$rb_times(this.den,other.$denominator()),$Kernel.$Rational(num,den)):$eqeqeq($$$("Integer"),$ret_or_1)?$Kernel.$Rational($rb_times(this.num,other),this.den):$eqeqeq($$$("Float"),$ret_or_1)?$rb_times(this.$to_f(),other):this.$__coerced__("*",other)}),1),$def(self,"$/",(function(other){var $ret_or_1,num=nil,den=nil;return $eqeqeq($$$("Rational"),$ret_or_1=other)?(num=$rb_times(this.num,other.$denominator()),den=$rb_times(this.den,other.$numerator()),$Kernel.$Rational(num,den)):$eqeqeq($$$("Integer"),$ret_or_1)?$eqeq(other,0)?$rb_divide(this.$to_f(),0):$Kernel.$Rational(this.num,$rb_times(this.den,other)):$eqeqeq($$$("Float"),$ret_or_1)?$rb_divide(this.$to_f(),other):this.$__coerced__("/",other)}),1),$def(self,"$**",(function(other){var $ret_or_1;return $eqeqeq($$$("Integer"),$ret_or_1=other)?$eqeq(this,0)&&$truthy($rb_lt(other,0))?$$$($$$("Float"),"INFINITY"):$truthy($rb_gt(other,0))?$Kernel.$Rational(this.num["$**"](other),this.den["$**"](other)):$truthy($rb_lt(other,0))?$Kernel.$Rational(this.den["$**"](other["$-@"]()),this.num["$**"](other["$-@"]())):$Kernel.$Rational(1,1):$eqeqeq($$$("Float"),$ret_or_1)?this.$to_f()["$**"](other):$eqeqeq($$$("Rational"),$ret_or_1)?$eqeq(other,0)?$Kernel.$Rational(1,1):$eqeq(other.$denominator(),1)?$truthy($rb_lt(other,0))?$Kernel.$Rational(this.den["$**"](other.$numerator().$abs()),this.num["$**"](other.$numerator().$abs())):$Kernel.$Rational(this.num["$**"](other.$numerator()),this.den["$**"](other.$numerator())):$eqeq(this,0)&&$truthy($rb_lt(other,0))?$Kernel.$raise($$$("ZeroDivisionError"),"divided by 0"):this.$to_f()["$**"](other):this.$__coerced__("**",other)}),1),$def(self,"$abs",(function(){return $Kernel.$Rational(this.num.$abs(),this.den.$abs())}),0),$def(self,"$ceil",(function(precision){return null==precision&&(precision=0),$eqeq(precision,0)?$rb_divide(this.num["$-@"](),this.den)["$-@"]().$ceil():this.$with_precision("ceil",precision)}),-1),$def(self,"$floor",(function(precision){return null==precision&&(precision=0),$eqeq(precision,0)?$rb_divide(this.num["$-@"](),this.den)["$-@"]().$floor():this.$with_precision("floor",precision)}),-1),$def(self,"$hash",(function(){return"Rational:"+this.num+":"+this.den}),0),$def(self,"$inspect",(function(){return"("+this+")"}),0),$def(self,"$rationalize",(function(eps){var self=this;if(arguments.length>1&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),null==eps)return self;for(var p2,q2,c,k,t,e=eps.$abs(),a=$rb_minus(self,e),b=$rb_plus(self,e),p0=0,p1=1,q0=1,q1=0;c=a.$ceil(),!$rb_le(c,b);)p2=(k=c-1)*p1+p0,q2=k*q1+q0,t=$rb_divide(1,$rb_minus(b,k)),b=$rb_divide(1,$rb_minus(a,k)),a=t,p0=p1,q0=q1,p1=p2,q1=q2;return $Kernel.$Rational(c*p1+p0,c*q1+q0)}),-1),$def(self,"$round",(function(precision){var num,den,approx=nil;return null==precision&&(precision=0),$eqeq(precision,0)?$eqeq(this.num,0)?0:$eqeq(this.den,1)?this.num:(num=$rb_plus($rb_times(this.num.$abs(),2),this.den),den=$rb_times(this.den,2),approx=$rb_divide(num,den).$truncate(),$truthy($rb_lt(this.num,0))?approx["$-@"]():approx):this.$with_precision("round",precision)}),-1),$def(self,"$to_f",(function(){return $rb_divide(this.num,this.den)}),0),$def(self,"$to_i",(function(){return this.$truncate()}),0),$def(self,"$to_r",(function(){return this}),0),$def(self,"$to_s",(function(){return this.num+"/"+this.den}),0),$def(self,"$truncate",(function(precision){return null==precision&&(precision=0),$eqeq(precision,0)?$truthy($rb_lt(this.num,0))?this.$ceil():this.$floor():this.$with_precision("truncate",precision)}),-1),$def(self,"$with_precision",(function(method,precision){var p,s=nil;return $eqeqeq($$$("Integer"),precision)||$Kernel.$raise($$$("TypeError"),"not an Integer"),p=10["$**"](precision),s=$rb_times(this,p),$truthy($rb_lt(precision,1))?$rb_divide(s.$send(method),p).$to_i():$Kernel.$Rational(s.$send(method),p)}),2),$defs(self,"$from_string",(function(string){var numerator,denominator,str=string.trimLeft(),re=/^[+-]?[\d_]+(\.[\d_]+)?/;str.match(re);function isFloat(){return re.test(str)}function cutFloat(){var number=str.match(re)[0];return str=str.slice(number.length),number.replace(/_/g,"")}return isFloat()?(numerator=parseFloat(cutFloat()),"/"===str[0]?(str=str.slice(1),isFloat()?(denominator=parseFloat(cutFloat()),$Kernel.$Rational(numerator,denominator)):$Kernel.$Rational(numerator,1)):$Kernel.$Rational(numerator,1)):$Kernel.$Rational(0,1)}),1),$alias(self,"divide","/"),$alias(self,"quo","/")}(0,$$$("Numeric"))},Opal.modules["corelib/time"]=function(Opal){var self=Opal.top,nil=Opal.nil,$$$=Opal.$$$,$slice=Opal.slice,$klass=Opal.klass,$Kernel=Opal.Kernel,$Opal=Opal.Opal,$defs=Opal.defs,$eqeqeq=Opal.eqeqeq,$def=Opal.def,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$rb_lt=Opal.rb_lt,$send=Opal.send,$rb_plus=Opal.rb_plus,$rb_divide=Opal.rb_divide,$rb_minus=Opal.rb_minus,$range=Opal.range,$neqeq=Opal.neqeq,$rb_le=Opal.rb_le,$eqeq=Opal.eqeq,$alias=Opal.alias;return Opal.add_stubs("require,include,===,raise,coerce_to!,respond_to?,to_str,to_i,_parse_offset,new,<=>,to_f,nil?,>,<,strftime,each,define_method,year,month,day,+,round,/,-,copy_instance_variables,initialize_dup,is_a?,zero?,wday,utc?,mon,yday,hour,min,sec,rjust,ljust,zone,to_s,[],cweek_cyear,jd,to_date,format,isdst,!=,<=,==,ceil"),self.$require("corelib/comparable"),function($base,$super,$parent_nesting){var self=$klass("::",$super,"Time"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$$("Comparable"));var days_of_week=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],short_days=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],short_months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long_months=["January","February","March","April","May","June","July","August","September","October","November","December"];function time_params(year,month,day,hour,min,sec){if(year=year.$$is_string?parseInt(year,10):$Opal["$coerce_to!"](year,$$$("Integer"),"to_int"),month===nil)month=1;else if(!month.$$is_number)if(month["$respond_to?"]("to_str"))switch((month=month.$to_str()).toLowerCase()){case"jan":month=1;break;case"feb":month=2;break;case"mar":month=3;break;case"apr":month=4;break;case"may":month=5;break;case"jun":month=6;break;case"jul":month=7;break;case"aug":month=8;break;case"sep":month=9;break;case"oct":month=10;break;case"nov":month=11;break;case"dec":month=12;break;default:month=month.$to_i()}else month=$Opal["$coerce_to!"](month,$$$("Integer"),"to_int");return(month<1||month>12)&&$Kernel.$raise($$$("ArgumentError"),"month out of range: "+month),month-=1,((day=day===nil?1:day.$$is_string?parseInt(day,10):$Opal["$coerce_to!"](day,$$$("Integer"),"to_int"))<1||day>31)&&$Kernel.$raise($$$("ArgumentError"),"day out of range: "+day),((hour=hour===nil?0:hour.$$is_string?parseInt(hour,10):$Opal["$coerce_to!"](hour,$$$("Integer"),"to_int"))<0||hour>24)&&$Kernel.$raise($$$("ArgumentError"),"hour out of range: "+hour),((min=min===nil?0:min.$$is_string?parseInt(min,10):$Opal["$coerce_to!"](min,$$$("Integer"),"to_int"))<0||min>59)&&$Kernel.$raise($$$("ArgumentError"),"min out of range: "+min),sec===nil?sec=0:sec.$$is_number||(sec=sec.$$is_string?parseInt(sec,10):$Opal["$coerce_to!"](sec,$$$("Integer"),"to_int")),(sec<0||sec>60)&&$Kernel.$raise($$$("ArgumentError"),"sec out of range: "+sec),[year,month,day,hour,min,sec]}return $defs(self,"$at",(function(seconds,frac){var result;return $$$("Time")["$==="](seconds)?(void 0!==frac&&$Kernel.$raise($$$("TypeError"),"can't convert Time into an exact number"),(result=new Date(seconds.getTime())).timezone=seconds.timezone,result):(seconds.$$is_number||(seconds=$Opal["$coerce_to!"](seconds,$$$("Integer"),"to_int")),void 0===frac?new Date(1e3*seconds):(frac.$$is_number||(frac=$Opal["$coerce_to!"](frac,$$$("Integer"),"to_int")),new Date(1e3*seconds+frac/1e3)))}),-2),$defs(self,"$new",(function(year,month,day,hour,min,sec,utc_offset){var args,result,timezone;return null==month&&(month=nil),null==day&&(day=nil),null==hour&&(hour=nil),null==min&&(min=nil),null==sec&&(sec=nil),null==utc_offset&&(utc_offset=nil),void 0===year?new Date:(year=(args=time_params(year,month,day,hour,min,sec))[0],month=args[1],day=args[2],hour=args[3],min=args[4],sec=args[5],result=new Date(year,month,day,hour,min,0,1e3*sec),year<100&&result.setFullYear(year),utc_offset!==nil&&(timezone=this.$_parse_offset(utc_offset)),null!=timezone&&((result=new Date(result.getTime()-36e5*timezone-6e4*result.getTimezoneOffset())).timezone=timezone),result)}),-1),$defs(self,"$_parse_offset",(function(utc_offset){var timezone;if(utc_offset.$$is_string)if("UTC"==utc_offset)timezone=0;else if(/^[+-]\d\d:[0-5]\d$/.test(utc_offset)){timezone=("-"==utc_offset[0]?-1:1)*(+(utc_offset[1]+utc_offset[2])+ +(utc_offset[4]+utc_offset[5])/60)}else $Kernel.$raise($$$("ArgumentError"),'"+HH:MM", "-HH:MM", "UTC" expected for utc_offset: '+utc_offset);else utc_offset.$$is_number?timezone=utc_offset/3600:$Kernel.$raise($$$("ArgumentError"),"Opal doesn't support other types for a timezone argument than Integer and String");return timezone}),1),$defs(self,"$local",(function(year,month,day,hour,min,sec,millisecond,_dummy1,_dummy2,_dummy3){var args,result;return null==month&&(month=nil),null==day&&(day=nil),null==hour&&(hour=nil),null==min&&(min=nil),null==sec&&(sec=nil),null==millisecond&&(millisecond=nil),null==_dummy1&&(_dummy1=nil),null==_dummy2&&(_dummy2=nil),null==_dummy3&&(_dummy3=nil),10===arguments.length&&(year=(args=$slice.call(arguments))[5],month=args[4],day=args[3],hour=args[2],min=args[1],sec=args[0]),year=(args=time_params(year,month,day,hour,min,sec))[0],month=args[1],day=args[2],hour=args[3],min=args[4],sec=args[5],result=new Date(year,month,day,hour,min,0,1e3*sec),year<100&&result.setFullYear(year),result}),-2),$defs(self,"$gm",(function(year,month,day,hour,min,sec,millisecond,_dummy1,_dummy2,_dummy3){var args,result;return null==month&&(month=nil),null==day&&(day=nil),null==hour&&(hour=nil),null==min&&(min=nil),null==sec&&(sec=nil),null==millisecond&&(millisecond=nil),null==_dummy1&&(_dummy1=nil),null==_dummy2&&(_dummy2=nil),null==_dummy3&&(_dummy3=nil),10===arguments.length&&(year=(args=$slice.call(arguments))[5],month=args[4],day=args[3],hour=args[2],min=args[1],sec=args[0]),year=(args=time_params(year,month,day,hour,min,sec))[0],month=args[1],day=args[2],hour=args[3],min=args[4],sec=args[5],result=new Date(Date.UTC(year,month,day,hour,min,0,1e3*sec)),year<100&&result.setUTCFullYear(year),result.timezone=0,result}),-2),$defs(self,"$now",(function(){return this.$new()}),0),$def(self,"$+",(function(other){$eqeqeq($$$("Time"),other)&&$Kernel.$raise($$$("TypeError"),"time + time?"),other.$$is_number||(other=$Opal["$coerce_to!"](other,$$$("Integer"),"to_int"));var result=new Date(this.getTime()+1e3*other);return result.timezone=this.timezone,result}),1),$def(self,"$-",(function(other){if($eqeqeq($$$("Time"),other))return(this.getTime()-other.getTime())/1e3;other.$$is_number||(other=$Opal["$coerce_to!"](other,$$$("Integer"),"to_int"));var result=new Date(this.getTime()-1e3*other);return result.timezone=this.timezone,result}),1),$def(self,"$<=>",(function(other){var r=nil;return $eqeqeq($$$("Time"),other)?this.$to_f()["$<=>"](other.$to_f()):(r=other["$<=>"](this),$truthy(r["$nil?"]())?nil:$truthy($rb_gt(r,0))?-1:$truthy($rb_lt(r,0))?1:0)}),1),$def(self,"$==",(function(other){var $ret_or_1;return $truthy($ret_or_1=$$$("Time")["$==="](other))?this.$to_f()===other.$to_f():$ret_or_1}),1),$def(self,"$asctime",(function(){return this.$strftime("%a %b %e %H:%M:%S %Y")}),0),$send([["year","getFullYear","getUTCFullYear"],["mon","getMonth","getUTCMonth",1],["wday","getDay","getUTCDay"],["day","getDate","getUTCDate"],["hour","getHours","getUTCHours"],["min","getMinutes","getUTCMinutes"],["sec","getSeconds","getUTCSeconds"]],"each",[],(function $Time$6(method,getter,utcgetter,difference){var self=null==$Time$6.$$s?this:$Time$6.$$s;return null==method&&(method=nil),null==getter&&(getter=nil),null==utcgetter&&(utcgetter=nil),null==difference&&(difference=0),$send(self,"define_method",[method],(function $$7(){var self=null==$$7.$$s?this:$$7.$$s;return difference+(null!=self.timezone?new Date(self.getTime()+36e5*self.timezone)[utcgetter]():self[getter]())}),{$$arity:0,$$s:self})}),{$$arity:-4,$$s:self}),$def(self,"$yday",(function(){var start_of_year,start_of_day;return start_of_year=$$("Time").$new(this.$year()).$to_i(),start_of_day=$$("Time").$new(this.$year(),this.$month(),this.$day()).$to_i(),86400,$rb_plus($rb_divide($rb_minus(start_of_day,start_of_year),86400).$round(),1)}),0),$def(self,"$isdst",(function(){var jan=new Date(this.getFullYear(),0,1),jul=new Date(this.getFullYear(),6,1);return this.getTimezoneOffset()"](other)["$zero?"]():$ret_or_1}),1),$send([["sunday?",0],["monday?",1],["tuesday?",2],["wednesday?",3],["thursday?",4],["friday?",5],["saturday?",6]],"each",[],(function $Time$9(method,weekday){var self=null==$Time$9.$$s?this:$Time$9.$$s;return null==method&&(method=nil),null==weekday&&(weekday=nil),$send(self,"define_method",[method],(function $$10(){return(null==$$10.$$s?this:$$10.$$s).$wday()===weekday}),{$$arity:0,$$s:self})}),{$$arity:2,$$s:self}),$def(self,"$hash",(function(){return"Time:"+this.getTime()}),0),$def(self,"$inspect",(function(){return $truthy(this["$utc?"]())?this.$strftime("%Y-%m-%d %H:%M:%S UTC"):this.$strftime("%Y-%m-%d %H:%M:%S %z")}),0),$def(self,"$succ",(function(){var result=new Date(this.getTime()+1e3);return result.timezone=this.timezone,result}),0),$def(self,"$usec",(function(){return 1e3*this.getMilliseconds()}),0),$def(self,"$zone",(function(){if(0===this.timezone)return"UTC";if(null!=this.timezone)return nil;var result,string=this.toString();return"GMT"==(result=-1==string.indexOf("(")?string.match(/[A-Z]{3,4}/)[0]:string.match(/\((.+)\)(?:\s|$)/)[1])&&/(GMT\W*\d{4})/.test(string)?RegExp.$1:result}),0),$def(self,"$getgm",(function(){var result=new Date(this.getTime());return result.timezone=0,result}),0),$def(self,"$gmtime",(function(){return this.timezone=0,this}),0),$def(self,"$gmt?",(function(){return 0===this.timezone}),0),$def(self,"$gmt_offset",(function(){return null!=this.timezone?60*this.timezone:60*-this.getTimezoneOffset()}),0),$def(self,"$strftime",(function(format){var self=this;return format.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,(function(full,flags,width,_,conv){var jd,c,s,result="",zero=-1!==flags.indexOf("0"),pad=-1===flags.indexOf("-"),blank=-1!==flags.indexOf("_"),upcase=-1!==flags.indexOf("^"),invert=-1!==flags.indexOf("#"),colons=(flags.match(":")||[]).length;switch(width=parseInt(width,10),zero&&blank&&(flags.indexOf("0")=12?"pm":"am";break;case"p":result+=self.$hour()>=12?"PM":"AM";break;case"M":zero=!blank,result+=self.$min();break;case"S":zero=!blank,result+=self.$sec();break;case"L":zero=!blank,width=isNaN(width)?3:width,result+=self.getMilliseconds();break;case"N":width=isNaN(width)?9:width,result=(result+=self.getMilliseconds().toString().$rjust(3,"0")).$ljust(width,"0");break;case"z":var offset=null==self.timezone?self.getTimezoneOffset():60*-self.timezone,hours=Math.floor(Math.abs(offset)/60),minutes=Math.abs(offset)%60;result+=offset<0?"+":"-",result+=hours<10?"0":"",result+=hours,colons>0&&(result+=":"),result+=minutes<10?"0":"",result+=minutes,colons>1&&(result+=":00");break;case"Z":result+=self.$zone();break;case"A":result+=days_of_week[self.$wday()];break;case"a":result+=short_days[self.$wday()];break;case"u":result+=self.$wday()+1;break;case"w":result+=self.$wday();break;case"V":result+=self.$cweek_cyear()["$[]"](0).$to_s().$rjust(2,"0");break;case"G":result+=self.$cweek_cyear()["$[]"](1);break;case"g":result+=self.$cweek_cyear()["$[]"](1)["$[]"]($range(-2,-1,!1));break;case"s":result+=self.$to_i();break;case"n":result+="\n";break;case"t":result+="\t";break;case"%":result+="%";break;case"c":result+=self.$strftime("%a %b %e %T %Y");break;case"D":case"x":result+=self.$strftime("%m/%d/%y");break;case"F":result+=self.$strftime("%Y-%m-%d");break;case"v":result+=self.$strftime("%e-%^b-%4Y");break;case"r":result+=self.$strftime("%I:%M:%S %p");break;case"R":result+=self.$strftime("%H:%M");break;case"T":case"X":result+=self.$strftime("%H:%M:%S");break;case"J":if((jd=self.$to_date().$jd())<2405160){result+=self.$strftime("%Y-%m-%d");break}jd<2419614?(c="M",s=1867):jd<2424875?(c="T",s=1911):jd<2447535?(c="S",s=1925):jd<2458605?(c="H",s=1988):(c="R",s=2018),result+=self.$format("%c%02d",c,$rb_minus(self.$year(),s)),result+=self.$strftime("-%m-%d");break;default:return full}return upcase&&(result=result.toUpperCase()),invert&&(result=result.replace(/[A-Z]/,(function(c){c.toLowerCase()})).replace(/[a-z]/,(function(c){c.toUpperCase()}))),pad&&(zero||blank)&&(result=result.$rjust(isNaN(width)?2:width,blank?" ":"0")),result}))}),1),$def(self,"$to_a",(function(){return[this.$sec(),this.$min(),this.$hour(),this.$day(),this.$month(),this.$year(),this.$wday(),this.$yday(),this.$isdst(),this.$zone()]}),0),$def(self,"$to_f",(function(){return this.getTime()/1e3}),0),$def(self,"$to_i",(function(){return parseInt(this.getTime()/1e3,10)}),0),$def(self,"$cweek_cyear",(function(){var jan01_wday,year=nil,offset=nil,week=nil,dec31_wday=nil;return jan01_wday=$$$("Time").$new(this.$year(),1,1).$wday(),0,year=this.$year(),$truthy($rb_le(jan01_wday,4))&&$neqeq(jan01_wday,0)?offset=$rb_minus(jan01_wday,1):(offset=$rb_minus($rb_minus(jan01_wday,7),1),$eqeq(offset,-8)&&(offset=-1)),week=$rb_divide($rb_plus(this.$yday(),offset),7).$ceil(),$truthy($rb_le(week,0))?$$$("Time").$new($rb_minus(this.$year(),1),12,31).$cweek_cyear():($eqeq(week,53)&&(dec31_wday=$$$("Time").$new(this.$year(),12,31).$wday(),$truthy($rb_le(dec31_wday,3))&&$neqeq(dec31_wday,0)&&(week=1,year=$rb_plus(year,1))),[week,year])}),0),function(self,$parent_nesting){$alias(self,"mktime","local"),$alias(self,"utc","gm")}(Opal.get_singleton_class(self)),$alias(self,"ctime","asctime"),$alias(self,"dst?","isdst"),$alias(self,"getutc","getgm"),$alias(self,"gmtoff","gmt_offset"),$alias(self,"mday","day"),$alias(self,"month","mon"),$alias(self,"to_s","inspect"),$alias(self,"tv_sec","to_i"),$alias(self,"tv_usec","usec"),$alias(self,"utc","gmtime"),$alias(self,"utc?","gmt?"),$alias(self,"utc_offset","gmt_offset")}(0,Date,[])},Opal.modules["corelib/struct"]=function(Opal){var self=Opal.top,nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$neqeq=Opal.neqeq,$eqeq=Opal.eqeq,$Opal=Opal.Opal,$send=Opal.send,$Class=Opal.Class,$to_a=Opal.to_a,$def=Opal.def,$defs=Opal.defs,$Kernel=Opal.Kernel,$rb_gt=Opal.rb_gt,$rb_minus=Opal.rb_minus,$eqeqeq=Opal.eqeqeq,$rb_lt=Opal.rb_lt,$rb_ge=Opal.rb_ge,$rb_plus=Opal.rb_plus,$alias=Opal.alias;return Opal.add_stubs("require,include,!=,upcase,[],==,class,unshift,const_name!,map,coerce_to!,new,each,define_struct_attribute,allocate,initialize,alias_method,module_eval,to_proc,const_set,raise,<<,members,define_method,instance_eval,last,>,length,-,keys,any?,join,[]=,each_with_index,hash,===,<,-@,size,>=,include?,to_sym,instance_of?,__id__,eql?,enum_for,+,name,each_pair,inspect,to_h,args,each_with_object,flatten,to_a,respond_to?,dig"),self.$require("corelib/enumerable"),function($base,$super,$parent_nesting){var self=$klass("::",null,"Struct"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$$("Enumerable")),$defs(self,"$new",(function $Struct_new$1(const_name,$a,$b){var $post_args,$kwargs,args,keyword_init,block=$Struct_new$1.$$p||nil,self=this,klass=nil;if(delete $Struct_new$1.$$p,$post_args=Opal.slice.call(arguments,1),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");if(args=$post_args,null==(keyword_init=$kwargs.$$smap.keyword_init)&&(keyword_init=!1),$truthy(const_name))if($eqeq(const_name.$class(),$$$("String"))&&$neqeq(const_name["$[]"](0).$upcase(),const_name["$[]"](0)))args.$unshift(const_name),const_name=nil;else try{const_name=$Opal["$const_name!"](const_name)}catch($err){if(!Opal.rescue($err,[$$$("TypeError"),$$$("NameError")]))throw $err;try{args.$unshift(const_name),const_name=nil}finally{Opal.pop_exception()}}return $send(args,"map",[],(function(arg){return null==arg&&(arg=nil),$Opal["$coerce_to!"](arg,$$$("String"),"to_str")}),1),klass=$send($Class,"new",[self],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return $send(args,"each",[],(function $$4(arg){return null==arg&&(arg=nil),(null==$$4.$$s?this:$$4.$$s).$define_struct_attribute(arg)}),{$$arity:1,$$s:self}),function(self,$parent_nesting){return $def(self,"$new",(function($a){var args,self=this,instance=nil;return args=Opal.slice.call(arguments),(instance=self.$allocate()).$$data={},$send(instance,"initialize",$to_a(args)),instance}),-1),self.$alias_method("[]","new")}(Opal.get_singleton_class(self))}),{$$arity:0,$$s:self}),$truthy(block)&&$send(klass,"module_eval",[],block.$to_proc()),klass.$$keyword_init=keyword_init,$truthy(const_name)&&$$$("Struct").$const_set(const_name,klass),klass}),-2),$defs(self,"$define_struct_attribute",(function(name){return $eqeq(this,$$$("Struct"))&&$Kernel.$raise($$$("ArgumentError"),"you cannot define attributes to the Struct class"),this.$members()["$<<"](name),$send(this,"define_method",[name],(function $$6(){return(null==$$6.$$s?this:$$6.$$s).$$data[name]}),{$$arity:0,$$s:this}),$send(this,"define_method",[name+"="],(function $$7(value){return null==value&&(value=nil),(null==$$7.$$s?this:$$7.$$s).$$data[name]=value}),{$$arity:1,$$s:this})}),1),$defs(self,"$members",(function(){var $ret_or_1;return null==this.members&&(this.members=nil),$eqeq(this,$$$("Struct"))&&$Kernel.$raise($$$("ArgumentError"),"the Struct class has no members"),this.members=$truthy($ret_or_1=this.members)?$ret_or_1:[]}),0),$defs(self,"$inherited",(function(klass){var members;return null==this.members&&(this.members=nil),members=this.members,$send(klass,"instance_eval",[],(function $$8(){return(null==$$8.$$s?this:$$8.$$s).members=members}),{$$arity:0,$$s:this})}),1),$def(self,"$initialize",(function($a){var $post_args,args,self=this,kwargs=nil,$ret_or_1=nil,extra=nil;return $post_args=Opal.slice.call(arguments),args=$post_args,$truthy(self.$class().$$keyword_init)?(kwargs=$truthy($ret_or_1=args.$last())?$ret_or_1:$hash2([],{}),($truthy($rb_gt(args.$length(),1))||$truthy(1===args.length&&!kwargs.$$is_hash))&&$Kernel.$raise($$$("ArgumentError"),"wrong number of arguments (given "+args.$length()+", expected 0)"),extra=$rb_minus(kwargs.$keys(),self.$class().$members()),$truthy(extra["$any?"]())&&$Kernel.$raise($$$("ArgumentError"),"unknown keywords: "+extra.$join(", ")),$send(self.$class().$members(),"each",[],(function $$9(name){var $writer,self=null==$$9.$$s?this:$$9.$$s;return null==name&&(name=nil),$writer=[name,kwargs["$[]"](name)],$send(self,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:self})):($truthy($rb_gt(args.$length(),self.$class().$members().$length()))&&$Kernel.$raise($$$("ArgumentError"),"struct size differs"),$send(self.$class().$members(),"each_with_index",[],(function $$10(name,index){var $writer,self=null==$$10.$$s?this:$$10.$$s;return null==name&&(name=nil),null==index&&(index=nil),$writer=[name,args["$[]"](index)],$send(self,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:2,$$s:self}))}),-1),$def(self,"$initialize_copy",(function(from){this.$$data={};var i,max,name,keys=Object.keys(from.$$data);for(i=0,max=keys.length;i"):(inspect_stack["$<<"](self.$__id__()),pushed=!0,$eqeqeq($$$("Struct"),self)&&$truthy(self.$class().$name())&&(result=$rb_plus(result,self.$class()+" ")),result=$rb_plus(result,$send(self.$each_pair(),"map",[],(function(name,value){return null==name&&(name=nil),null==value&&(value=nil),name+"="+$$("Opal").$inspect(value)}),2).$join(", ")),result=$rb_plus(result,">"))}finally{$truthy(pushed)&&inspect_stack.pop()}}()}),0),$def(self,"$to_h",(function $$to_h(){var block=$$to_h.$$p||nil;return delete $$to_h.$$p,block!==nil?$send($send(this,"map",[],block.$to_proc()),"to_h",$to_a(this.$args())):$send(this.$class().$members(),"each_with_object",[$hash2([],{})],(function $$22(name,h){var $writer;return null==name&&(name=nil),null==h&&(h=nil),$writer=[name,(null==$$22.$$s?this:$$22.$$s)["$[]"](name)],$send(h,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:2,$$s:this})}),0),$def(self,"$values_at",(function($a){var $post_args,args,self=this;$post_args=Opal.slice.call(arguments);for(var result=[],i=0,len=(args=$send(args=$post_args,"map",[],(function(arg){return null==arg&&(arg=nil),arg.$$is_range?arg.$to_a():arg}),1).$flatten()).length;i>>1^(1&v?2567483615:0)};function genrand_int32(mt){var y;return--mt.left<=0&&function(mt){var j,p=0,_p=mt.state;for(mt.left=N,mt.next=0,j=228;--j;p++)_p[p]=_p[p+M]^TWIST(_p[p+0],_p[p+1]);for(j=M;--j;p++)_p[p]=_p[p+(M-N)]^TWIST(_p[p+0],_p[p+1]);_p[p]=_p[p+(M-N)]^TWIST(_p[p+0],_p[0])}(mt),y=mt.state[mt.next++],y^=y>>>11,y^=y<<7&2636928640,y^=y<<15&4022730752,(y^=y>>>18)>>>0}return{genrand_real:function(mt){return function(a,b){return(67108864*(a>>>=5)+(b>>>=6))*(1/9007199254740992)}(genrand_int32(mt),genrand_int32(mt))},init:function(s){var mt={left:0,next:N,state:new Array(N)};return function(mt,s){var j;for(mt.state[0]=s>>>0,j=1;j>30>>>0)+j,mt.state[j]&=4294967295;mt.left=1,mt.next=N}(mt,s),mt}}}(),self=$klass("::",null,"Random"),MAX_INT=Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1,$const_set(self,"MERSENNE_TWISTER_GENERATOR",{new_seed:function(){return Math.round(Math.random()*MAX_INT)},reseed:function(seed){return mersenne_twister.init(seed)},rand:function(mt){return mersenne_twister.genrand_real(mt)}}),$writer=[$$$(self,"MERSENNE_TWISTER_GENERATOR")],$send(self,"generator=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]},Opal.modules["corelib/random"]=function(Opal){var self=Opal.top,$$$=(Opal.nil,Opal.$$$),$truthy=Opal.truthy,$klass=Opal.klass,$Kernel=Opal.Kernel,$defs=Opal.defs,$Opal=Opal.Opal,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$send=Opal.send;return Opal.add_stubs("require,attr_reader,to_int,raise,new_seed,coerce_to!,reseed,rand,seed,bytes,===,==,state,_verify_count,encode,join,new,chr,random_number,random_float,const_defined?,const_set"),self.$require("corelib/random/formatter"),function($base,$super){var self=$klass("::",null,"Random");self.$attr_reader("seed","state"),$defs(self,"$_verify_count",(function(count){return $truthy(count)||(count=16),"number"!=typeof count&&(count=count.$to_int()),count<0&&$Kernel.$raise($$$("ArgumentError"),"negative string size (or size too big)"),count=Math.floor(count)}),1),$def(self,"$initialize",(function(seed){return null==seed&&(seed=$$$("Random").$new_seed()),seed=$Opal["$coerce_to!"](seed,$$$("Integer"),"to_int"),this.state=seed,this.$reseed(seed)}),-1),$def(self,"$reseed",(function(seed){return this.seed=seed,this.$rng=Opal.$$rand.reseed(seed)}),1),$defs(self,"$new_seed",(function(){return Opal.$$rand.new_seed()}),0),$defs(self,"$rand",(function(limit){return $$$(this,"DEFAULT").$rand(limit)}),-1),$defs(self,"$srand",(function(n){var previous_seed;return null==n&&(n=$$$("Random").$new_seed()),n=$Opal["$coerce_to!"](n,$$$("Integer"),"to_int"),previous_seed=$$$(this,"DEFAULT").$seed(),$$$(this,"DEFAULT").$reseed(n),previous_seed}),-1),$defs(self,"$urandom",(function(size){return $$$("SecureRandom").$bytes(size)}),1),$def(self,"$==",(function(other){var $ret_or_1;return!!$eqeqeq($$$("Random"),other)&&($truthy($ret_or_1=this.$seed()["$=="](other.$seed()))?this.$state()["$=="](other.$state()):$ret_or_1)}),1),$def(self,"$bytes",(function(length){return length=$$$("Random").$_verify_count(length),$send($$$("Array"),"new",[length],(function $$2(){return(null==$$2.$$s?this:$$2.$$s).$rand(255).$chr()}),{$$arity:0,$$s:this}).$join().$encode("ASCII-8BIT")}),1),$defs(self,"$bytes",(function(length){return $$$(this,"DEFAULT").$bytes(length)}),1),$def(self,"$rand",(function(limit){return this.$random_number(limit)}),-1),$def(self,"$random_float",(function(){return this.state++,Opal.$$rand.rand(this.$rng)}),0),$defs(self,"$random_float",(function(){return $$$(this,"DEFAULT").$random_float()}),0),$defs(self,"$generator=",(function(generator){return Opal.$$rand=generator,$truthy(this["$const_defined?"]("DEFAULT"))?$$$(this,"DEFAULT").$reseed():this.$const_set("DEFAULT",this.$new(this.$new_seed()))}),1)}(),self.$require("corelib/random/mersenne_twister")},Opal.modules["corelib/unsupported"]=function(Opal){var self=Opal.top,nil=Opal.nil,$$$=Opal.$$$,$Kernel=Opal.Kernel,$klass=Opal.klass,$send=Opal.send,$module=Opal.module,$def=Opal.def,$alias=Opal.alias,$defs=Opal.defs;Opal.add_stubs("raise,warn,each,define_method,%");var warnings={};function handle_unsupported_feature(message){switch(Opal.config.unsupported_features_severity){case"error":$Kernel.$raise($$$("NotImplementedError"),message);break;case"warning":!function(string){if(warnings[string])return;warnings[string]=!0,self.$warn(string)}(message)}}return function($base,$super){var self=$klass("::",null,"String"),ERROR="String#%s not supported. Mutable String methods are not supported in Opal.";$send(["<<","capitalize!","chomp!","chop!","downcase!","gsub!","lstrip!","next!","reverse!","slice!","squeeze!","strip!","sub!","succ!","swapcase!","tr!","tr_s!","upcase!","prepend","[]=","clear","encode!","unicode_normalize!"],"each",[],(function $String$1(method_name){return null==method_name&&(method_name=nil),$send(null==$String$1.$$s?this:$String$1.$$s,"define_method",[method_name],(function($a){return Opal.slice.call(arguments),$Kernel.$raise($$$("NotImplementedError"),ERROR["$%"](method_name))}),-1)}),{$$arity:1,$$s:self})}(),function($base){var self=$module("::","Kernel"),ERROR="Object freezing is not supported by Opal";$def(self,"$freeze",(function(){return handle_unsupported_feature(ERROR),this}),0),$def(self,"$frozen?",(function(){return handle_unsupported_feature(ERROR),!1}),0)}(),function($base){var self=$module("::","Kernel"),ERROR="Object tainting is not supported by Opal";$def(self,"$taint",(function(){return handle_unsupported_feature(ERROR),this}),0),$def(self,"$untaint",(function(){return handle_unsupported_feature(ERROR),this}),0),$def(self,"$tainted?",(function(){return handle_unsupported_feature(ERROR),!1}),0)}(),function($base,$super){var self=$klass("::",null,"Module");$def(self,"$public",(function($a){var methods,self=this;return 0===(methods=Opal.slice.call(arguments)).length?(self.$$module_function=!1,nil):1===methods.length?methods[0]:methods}),-1),$def(self,"$private_class_method",(function($a){var methods;return 1===(methods=Opal.slice.call(arguments)).length?methods[0]:methods}),-1),$def(self,"$private_method_defined?",(function(obj){return!1}),1),$def(self,"$private_constant",(function($a){return Opal.slice.call(arguments),nil}),-1),$alias(self,"nesting","public"),$alias(self,"private","public"),$alias(self,"protected","public"),$alias(self,"protected_method_defined?","private_method_defined?"),$alias(self,"public_class_method","private_class_method"),$alias(self,"public_instance_method","instance_method"),$alias(self,"public_instance_methods","instance_methods"),$alias(self,"public_method_defined?","method_defined?")}(),function($base){var self=$module("::","Kernel");$def(self,"$private_methods",(function($a){return Opal.slice.call(arguments),[]}),-1),$alias(self,"private_instance_methods","private_methods")}(),function($base,$parent_nesting){var self=$module("::","Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$eval",(function($a){return Opal.slice.call(arguments),$Kernel.$raise($$$("NotImplementedError"),"To use Kernel#eval, you must first require 'opal-parser'. See https://github.com/opal/opal/blob/"+$$("RUBY_ENGINE_VERSION")+"/docs/opal_parser.md for details.")}),-1)}(0,[]),$defs(self,"$public",(function($a){var methods;return 1===(methods=Opal.slice.call(arguments)).length?methods[0]:methods}),-1),$defs(self,"$private",(function($a){var methods;return 1===(methods=Opal.slice.call(arguments)).length?methods[0]:methods}),-1)},Opal.queue((function(Opal){Opal.nil;var $Object=Opal.Object;return Opal.add_stubs("require,autoload"),$Object.$require("opal/base"),$Object.$require("opal/mini"),$Object.$require("corelib/kernel/format"),$Object.$require("corelib/string/encoding"),$Object.$autoload("Math","corelib/math"),$Object.$require("corelib/complex/base"),$Object.$autoload("Complex","corelib/complex"),$Object.$require("corelib/rational/base"),$Object.$autoload("Rational","corelib/rational"),$Object.$require("corelib/time"),$Object.$autoload("Struct","corelib/struct"),$Object.$require("corelib/dir"),$Object.$autoload("File","corelib/file"),$Object.$require("corelib/process/base"),$Object.$autoload("Process","corelib/process"),$Object.$autoload("Random","corelib/random"),$Object.$require("corelib/unsupported")})); diff --git a/opal/master/opal.min.js.gz b/opal/master/opal.min.js.gz index 4f66cfcc..137a11be 100644 Binary files a/opal/master/opal.min.js.gz and b/opal/master/opal.min.js.gz differ diff --git a/opal/master/open-uri.js b/opal/master/open-uri.js index e3d0f9ee..9fffbc77 100644 --- a/opal/master/open-uri.js +++ b/opal/master/open-uri.js @@ -1,230 +1,104 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["stringio"] = function(Opal) { - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $gvars = Opal.gvars; - - Opal.add_stubs(['$include', '$new', '$call', '$close', '$attr_accessor', '$length', '$include?', '$!', '$check_readable', '$==', '$===', '$>=', '$raise', '$>', '$+', '$-', '$seek', '$enum_for', '$eof?', '$ord', '$[]', '$to_str', '$chomp', '$check_writable', '$String', '$write', '$closed_write?', '$closed_read?']); +Opal.modules["stringio"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $defs = Opal.defs, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $rb_ge = Opal.rb_ge, $rb_gt = Opal.rb_gt, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq, $alias = Opal.alias; + + Opal.add_stubs('new,call,close,attr_accessor,check_readable,==,length,===,>=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'StringIO'); - var $nesting = [self].concat($parent_nesting), $StringIO_open$1, $StringIO_initialize$2, $StringIO_eof$ques$3, $StringIO_seek$4, $StringIO_tell$5, $StringIO_rewind$6, $StringIO_each_byte$7, $StringIO_each_char$8, $StringIO_each$9, $StringIO_write$10, $StringIO_read$11, $StringIO_close$12, $StringIO_close_read$13, $StringIO_close_write$14, $StringIO_closed$ques$15, $StringIO_closed_read$ques$16, $StringIO_closed_write$ques$17, $StringIO_check_writable$18, $StringIO_check_readable$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.position = self.$$prototype.string = self.$$prototype.closed = nil; + $proto.position = $proto.string = nil; - self.$include($$$($$($nesting, 'IO'), 'Readable')); - self.$include($$$($$($nesting, 'IO'), 'Writable')); - Opal.defs(self, '$open', $StringIO_open$1 = function $$open(string, mode) { - var $iter = $StringIO_open$1.$$p, block = $iter || nil, self = this, io = nil, res = nil; + $defs(self, '$open', function $$open(string, mode) { + var block = $$open.$$p || nil, self = this, io = nil, res = nil; - if ($iter) $StringIO_open$1.$$p = null; - + delete $$open.$$p; - if ($iter) $StringIO_open$1.$$p = null;; + ; - if (string == null) { - string = ""; - }; + if (string == null) string = "";; - if (mode == null) { - mode = nil; - }; + if (mode == null) mode = nil;; io = self.$new(string, mode); res = block.$call(io); io.$close(); return res; - }, $StringIO_open$1.$$arity = -1); + }, -1); self.$attr_accessor("string"); - Opal.def(self, '$initialize', $StringIO_initialize$2 = function $$initialize(string, mode) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + $def(self, '$initialize', function $$initialize(string, mode) { + var $yield = $$initialize.$$p || nil, self = this; + delete $$initialize.$$p; - if (string == null) { - string = ""; - }; + if (string == null) string = "";; - if (mode == null) { - mode = "rw"; - }; + if (mode == null) mode = "rw";; self.string = string; - self.position = string.$length(); - if ($truthy((function() {if ($truthy(($ret_or_1 = mode['$include?']("r")))) { - return mode['$include?']("w")['$!']() - } else { - return $ret_or_1 - }; return nil; })())) { - return (self.closed = "write") - } else if ($truthy((function() {if ($truthy(($ret_or_2 = mode['$include?']("w")))) { - return mode['$include?']("r")['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { - return (self.closed = "read") - } else { - return nil - }; - }, $StringIO_initialize$2.$$arity = -1); + self.position = 0; + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [nil, mode], null); + }, -1); - Opal.def(self, '$eof?', $StringIO_eof$ques$3 = function() { + $def(self, '$eof?', function $StringIO_eof$ques$1() { var self = this; self.$check_readable(); return self.position['$=='](self.string.$length()); - }, $StringIO_eof$ques$3.$$arity = 0); - $alias(self, "eof", "eof?"); + }, 0); - Opal.def(self, '$seek', $StringIO_seek$4 = function $$seek(pos, whence) { - var self = this, $case = nil; + $def(self, '$seek', function $$seek(pos, whence) { + var self = this, $ret_or_1 = nil; - if (whence == null) { - whence = $$$($$($nesting, 'IO'), 'SEEK_SET'); - }; - $case = whence; - if ($$$($$($nesting, 'IO'), 'SEEK_SET')['$===']($case)) { - if ($truthy($rb_ge(pos, 0))) { + if (whence == null) whence = $$$($$('IO'), 'SEEK_SET');; + self.read_buffer = ""; + if ($eqeqeq($$$($$('IO'), 'SEEK_SET'), ($ret_or_1 = whence))) { + + if (!$truthy($rb_ge(pos, 0))) { + self.$raise($$$($$('Errno'), 'EINVAL')) + }; + self.position = pos; + } else if ($eqeqeq($$$($$('IO'), 'SEEK_CUR'), $ret_or_1)) { + if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { + self.position = self.string.$length() + } else { + self.position = $rb_plus(self.position, pos) + } + } else if ($eqeqeq($$$($$('IO'), 'SEEK_END'), $ret_or_1)) { + if ($truthy($rb_gt(pos, self.string.$length()))) { + self.position = 0 + } else { + self.position = $rb_minus(self.position, pos) + } } else { - self.$raise($$$($$($nesting, 'Errno'), 'EINVAL')) + nil }; - self.position = pos;} - else if ($$$($$($nesting, 'IO'), 'SEEK_CUR')['$===']($case)) {if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { - self.position = self.string.$length() - } else { - self.position = $rb_plus(self.position, pos) - }} - else if ($$$($$($nesting, 'IO'), 'SEEK_END')['$===']($case)) {if ($truthy($rb_gt(pos, self.string.$length()))) { - self.position = 0 - } else { - self.position = $rb_minus(self.position, pos) - }}; return 0; - }, $StringIO_seek$4.$$arity = -2); + }, -2); - Opal.def(self, '$tell', $StringIO_tell$5 = function $$tell() { + $def(self, '$tell', function $$tell() { var self = this; return self.position - }, $StringIO_tell$5.$$arity = 0); - $alias(self, "pos", "tell"); - $alias(self, "pos=", "seek"); + }, 0); - Opal.def(self, '$rewind', $StringIO_rewind$6 = function $$rewind() { + $def(self, '$rewind', function $$rewind() { var self = this; return self.$seek(0) - }, $StringIO_rewind$6.$$arity = 0); - - Opal.def(self, '$each_byte', $StringIO_each_byte$7 = function $$each_byte() { - var $iter = $StringIO_each_byte$7.$$p, block = $iter || nil, $a, self = this, i = nil; - - if ($iter) $StringIO_each_byte$7.$$p = null; - - - if ($iter) $StringIO_each_byte$7.$$p = null;; - if ($truthy(block)) { - } else { - return self.$enum_for("each_byte") - }; - self.$check_readable(); - i = self.position; - while (!($truthy(self['$eof?']()))) { - - block.$call(self.string['$[]'](i).$ord()); - i = $rb_plus(i, 1); - }; - return self; - }, $StringIO_each_byte$7.$$arity = 0); + }, 0); - Opal.def(self, '$each_char', $StringIO_each_char$8 = function $$each_char() { - var $iter = $StringIO_each_char$8.$$p, block = $iter || nil, $a, self = this, i = nil; - - if ($iter) $StringIO_each_char$8.$$p = null; - - - if ($iter) $StringIO_each_char$8.$$p = null;; - if ($truthy(block)) { - } else { - return self.$enum_for("each_char") - }; - self.$check_readable(); - i = self.position; - while (!($truthy(self['$eof?']()))) { - - block.$call(self.string['$[]'](i)); - i = $rb_plus(i, 1); - }; - return self; - }, $StringIO_each_char$8.$$arity = 0); - - Opal.def(self, '$each', $StringIO_each$9 = function $$each(separator) { - var $iter = $StringIO_each$9.$$p, $yield = $iter || nil, self = this, chomp_lines = nil; - if ($gvars["/"] == null) $gvars["/"] = nil; - - if ($iter) $StringIO_each$9.$$p = null; - - - if (separator == null) { - separator = $gvars["/"]; - }; - if (($yield !== nil)) { - } else { - return self.$enum_for("each_line") - }; - self.$check_readable(); - chomp_lines = false; - if ($truthy($$$('::', 'Hash')['$==='](separator))) { - separator = (function() {if ($truthy((chomp_lines = separator['$[]']("chomp")))) { - return /\r?\n/ - } else { - return $gvars["/"] - }; return nil; })() - } else if ($truthy(separator)) { - separator = separator.$to_str() - } else { - separator = undefined - }; - - var str = self.string, stringLength = str.length; - if (self.position < stringLength) str = str.substr(self.position); - if (separator) { - var chomped = (str).$chomp(), trailing = str.length !== chomped.length, splitted = chomped.split(separator); - for (var i = 0, len = splitted.length; i < len; i++) { - var line = chomp_lines ? splitted[i] : (i < len - 1 || trailing ? splitted[i] + separator : splitted[i]); - Opal.yield1($yield, line); - } - } else if (separator === undefined) { - Opal.yield1($yield, str); - } else { - var m, re = /(.+(?:\n\n|$))\n*/g; - while ((m = re.exec(str))) Opal.yield1($yield, m[1]); - } - self.position = stringLength; - ; - return self; - }, $StringIO_each$9.$$arity = -1); - $alias(self, "each_line", "each"); - - Opal.def(self, '$write', $StringIO_write$10 = function $$write(string) { + $def(self, '$write', function $$write(string) { var self = this, before = nil, after = nil; self.$check_writable(); + self.read_buffer = ""; string = self.$String(string); - if (self.string.$length()['$=='](self.position)) { + if ($eqeq(self.string.$length(), self.position)) { self.string = $rb_plus(self.string, string); return (self.position = $rb_plus(self.position, string.$length())); @@ -235,124 +109,50 @@ Opal.modules["stringio"] = function(Opal) { self.string = $rb_plus($rb_plus(before, string), after); return (self.position = $rb_plus(self.position, string.$length())); }; - }, $StringIO_write$10.$$arity = 1); + }, 1); - Opal.def(self, '$read', $StringIO_read$11 = function $$read(length, outbuf) { + $def(self, '$read', function $$read(length, outbuf) { var self = this, string = nil, str = nil; - if (length == null) { - length = nil; - }; + if (length == null) length = nil;; - if (outbuf == null) { - outbuf = nil; - }; + if (outbuf == null) outbuf = nil;; self.$check_readable(); if ($truthy(self['$eof?']())) { - return nil}; - string = (function() {if ($truthy(length)) { - - str = self.string['$[]'](self.position, length); - self.position = $rb_plus(self.position, length); - return str; - } else { - - str = self.string['$[]'](Opal.Range.$new(self.position, -1, false)); - self.position = self.string.$length(); - return str; - }; return nil; })(); + return nil + }; + string = ($truthy(length) ? (((str = self.string['$[]'](self.position, length)), (self.position = $rb_plus(self.position, length)), ($truthy($rb_gt(self.position, self.string.$length())) ? ((self.position = self.string.$length())) : nil), str)) : (((str = self.string['$[]'](Opal.Range.$new(self.position, -1, false))), (self.position = self.string.$length()), str))); if ($truthy(outbuf)) { return outbuf.$write(string) } else { return string }; - }, $StringIO_read$11.$$arity = -1); - - Opal.def(self, '$close', $StringIO_close$12 = function $$close() { - var self = this; - - return (self.closed = "both") - }, $StringIO_close$12.$$arity = 0); + }, -1); - Opal.def(self, '$close_read', $StringIO_close_read$13 = function $$close_read() { + $def(self, '$sysread', function $$sysread(length) { var self = this; - if (self.closed['$==']("write")) { - return (self.closed = "both") - } else { - return (self.closed = "read") - } - }, $StringIO_close_read$13.$$arity = 0); - - Opal.def(self, '$close_write', $StringIO_close_write$14 = function $$close_write() { - var self = this; - - if (self.closed['$==']("read")) { - return (self.closed = "both") - } else { - return (self.closed = "write") - } - }, $StringIO_close_write$14.$$arity = 0); - - Opal.def(self, '$closed?', $StringIO_closed$ques$15 = function() { - var self = this; - - return self.closed['$==']("both") - }, $StringIO_closed$ques$15.$$arity = 0); - - Opal.def(self, '$closed_read?', $StringIO_closed_read$ques$16 = function() { - var self = this, $ret_or_3 = nil; - - if ($truthy(($ret_or_3 = self.closed['$==']("read")))) { - return $ret_or_3 - } else { - return self.closed['$==']("both") - } - }, $StringIO_closed_read$ques$16.$$arity = 0); - - Opal.def(self, '$closed_write?', $StringIO_closed_write$ques$17 = function() { - var self = this, $ret_or_4 = nil; - - if ($truthy(($ret_or_4 = self.closed['$==']("write")))) { - return $ret_or_4 - } else { - return self.closed['$==']("both") - } - }, $StringIO_closed_write$ques$17.$$arity = 0); - - Opal.def(self, '$check_writable', $StringIO_check_writable$18 = function $$check_writable() { - var self = this; - - if ($truthy(self['$closed_write?']())) { - return self.$raise($$($nesting, 'IOError'), "not opened for writing") - } else { - return nil - } - }, $StringIO_check_writable$18.$$arity = 0); - return (Opal.def(self, '$check_readable', $StringIO_check_readable$19 = function $$check_readable() { - var self = this; - - if ($truthy(self['$closed_read?']())) { - return self.$raise($$($nesting, 'IOError'), "not opened for reading") - } else { - return nil - } - }, $StringIO_check_readable$19.$$arity = 0), nil) && 'check_readable'; - })($nesting[0], $$($nesting, 'IO'), $nesting) + + self.$check_readable(); + return self.$read(length); + }, 1); + $alias(self, "eof", "eof?"); + $alias(self, "pos", "tell"); + $alias(self, "pos=", "seek"); + return $alias(self, "readpartial", "read"); + })($nesting[0], $$('IO'), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $Kernel = Opal.Kernel; - Opal.add_stubs(['$raise']); - return (function($base, $parent_nesting) { + Opal.add_stubs('raise'); + return (function($base) { var self = $module($base, 'PackUnpack'); - var $nesting = [self].concat($parent_nesting); - + var directives = [ // Integer @@ -438,11 +238,11 @@ Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { var directiveSupportsModifiers = /[sSiIlLqQjJ]/.test(currentDirective); if (!directiveSupportsModifiers && currentModifiers.length > 0) { - self.$raise($$($nesting, 'ArgumentError'), "" + "'" + (currentModifiers[0]) + "' allowed only after types sSiIlLqQjJ") + $Kernel.$raise($$$('ArgumentError'), "'" + (currentModifiers[0]) + "' allowed only after types sSiIlLqQjJ") } if (currentModifiers.indexOf('<') !== -1 && currentModifiers.indexOf('>') !== -1) { - self.$raise($$($nesting, 'RangeError'), "Can't use both '<' and '>'") + $Kernel.$raise($$$('RangeError'), "Can't use both '<' and '>'") } if (!countSpecified) { @@ -486,21 +286,19 @@ Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) { yieldAndReset(); } - })($nesting[0], $nesting) + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/array/pack"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $coerce_to = Opal.coerce_to, $klass = Opal.klass; +Opal.modules["corelib/array/pack"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil, $$$ = Opal.$$$, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $Kernel = Opal.Kernel, $Opal = Opal.Opal, $def = Opal.def; - Opal.add_stubs(['$require', '$raise', '$delete', '$gsub', '$coerce_to!', '$inspect']); + Opal.add_stubs('require,raise,delete,gsub,coerce_to!,inspect'); self.$require("corelib/pack_unpack/format_string_parser"); - return (function($base, $super, $parent_nesting) { + return (function($base, $super) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_pack$1; - + // Format Parser @@ -592,7 +390,7 @@ Opal.modules["corelib/array/pack"] = function(Opal) { var buffer = callback(data); return buffer.map(function(item) { - return $coerce_to(item, $$($nesting, 'Integer'), 'to_int') + return $coerce_to(item, $$$('Integer'), 'to_int') }); } } @@ -602,7 +400,7 @@ Opal.modules["corelib/array/pack"] = function(Opal) { var buffer = callback(data); return buffer.map(function(item) { - return $coerce_to(item, $$($nesting, 'String'), 'to_str') + return $coerce_to(item, $$$('String'), 'to_str') }); } } @@ -615,7 +413,7 @@ Opal.modules["corelib/array/pack"] = function(Opal) { return String.fromCodePoint(item); } catch (error) { if (error instanceof RangeError) { - self.$raise($$($nesting, 'RangeError'), "value out of range"); + $Kernel.$raise($$$('RangeError'), "value out of range"); } throw error; } @@ -698,7 +496,7 @@ Opal.modules["corelib/array/pack"] = function(Opal) { } } else { if (buffer.length < count) { - self.$raise($$($nesting, 'ArgumentError'), "too few arguments"); + $Kernel.$raise($$$('ArgumentError'), "too few arguments"); } for (var i = 0; i < count; i++) { chunkData = callback(buffer); @@ -724,9 +522,9 @@ Opal.modules["corelib/array/pack"] = function(Opal) { if (source === nil) { source = ''; } else if (source === undefined) { - self.$raise($$($nesting, 'ArgumentError'), "too few arguments"); + $Kernel.$raise($$$('ArgumentError'), "too few arguments"); } else { - source = $coerce_to(source, $$($nesting, 'String'), 'to_str'); + source = $coerce_to(source, $$$('String'), 'to_str'); } buffer = buffer.slice(1, buffer.length); @@ -885,11 +683,11 @@ Opal.modules["corelib/array/pack"] = function(Opal) { 'p': null }; ; - return (Opal.def(self, '$pack', $Array_pack$1 = function $$pack(format) { + return $def(self, '$pack', function $$pack(format) { var self = this; - format = $$($nesting, 'Opal')['$coerce_to!'](format, $$($nesting, 'String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); + format = $Opal['$coerce_to!'](format, $$$('String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); var output = ''; @@ -908,7 +706,7 @@ Opal.modules["corelib/array/pack"] = function(Opal) { chunkReader = readChunk[directive]; if (chunkReader == null) { - self.$raise("" + "Unsupported pack directive " + ((directive).$inspect()) + " (no chunk reader defined)") + $Kernel.$raise("Unsupported pack directive " + ((directive).$inspect()) + " (no chunk reader defined)") } var chunkData = chunkReader(buffer, count); @@ -918,7 +716,7 @@ Opal.modules["corelib/array/pack"] = function(Opal) { var handler = handlers[directive]; if (handler == null) { - self.$raise("" + "Unsupported pack directive " + ((directive).$inspect()) + " (no handler defined)") + $Kernel.$raise("Unsupported pack directive " + ((directive).$inspect()) + " (no handler defined)") } return handler(chunk); @@ -931,7 +729,7 @@ Opal.modules["corelib/array/pack"] = function(Opal) { var shouldAutocomplete = autocompletion[directive] if (shouldAutocomplete == null) { - self.$raise("" + "Unsupported pack directive " + ((directive).$inspect()) + " (no autocompletion rule defined)") + $Kernel.$raise("Unsupported pack directive " + ((directive).$inspect()) + " (no autocompletion rule defined)") } if (shouldAutocomplete) { @@ -949,74 +747,61 @@ Opal.modules["corelib/array/pack"] = function(Opal) { return Opal.enc(output, "binary"); } ; - }, $Array_pack$1.$$arity = 1), nil) && 'pack'; - })($nesting[0], null, $nesting); + }, 1); + })('::', null); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["open-uri"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; - - Opal.add_stubs(['$require', '$private', '$respond_to?', '$=~', '$open_uri', '$to_proc', '$open_uri_original_open', '$module_function', '$open_loop', '$rewind', '$close_io', '$close!', '$closed?', '$close', '$request', '$==', '$build_response', '$raise', '$new', '$<<', '$pack', '$data', '$io', '$status=', '$-', '$meta_add_field', '$attr_reader', '$+', '$length', '$===', '$init', '$extend', '$instance_eval', '$status', '$base_uri', '$base_uri=', '$each', '$metas', '$meta_add_field2', '$attr_accessor', '$charset', '$find_encoding', '$set_encoding', '$force_encoding', '$string', '$find', '$downcase', '$[]=', '$join', '$meta_setup_encoding', '$[]', '$utc', '$at', '$content_type_parse', '$scheme', '$open', '$read']); +Opal.modules["open-uri"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $def = Opal.def, $hash2 = Opal.hash2, $defs = Opal.defs, $eqeq = Opal.eqeq, $rb_minus = Opal.rb_minus, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $rb_plus = Opal.rb_plus, $eqeqeq = Opal.eqeqeq; + + Opal.add_stubs('require,private,=~,respond_to?,open_uri,to_proc,open_uri_original_open,module_function,open_loop,rewind,close_io,close!,closed?,close,request,==,build_response,raise,new,<<,pack,data,io,status=,-,meta_add_field,attr_reader,+,length,===,init,extend,instance_eval,status,base_uri,base_uri=,each,metas,meta_add_field2,attr_accessor,charset,find_encoding,set_encoding,force_encoding,string,find,downcase,[]=,join,meta_setup_encoding,[],utc,at,content_type_parse,scheme,open,read'); self.$require("stringio"); self.$require("corelib/array/pack"); (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_open$1; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); self.$private(); $alias(self, "open_uri_original_open", "open"); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return $alias(self, "open_uri_original_open", "open") })(Opal.get_singleton_class(self), $nesting); - Opal.def(self, '$open', $Kernel_open$1 = function $$open(name, $a) { - var $iter = $Kernel_open$1.$$p, block = $iter || nil, $post_args, rest, self = this, $ret_or_1 = nil; + $def(self, '$open', function $$open(name, $a) { + var block = $$open.$$p || nil, $post_args, rest, self = this; - if ($iter) $Kernel_open$1.$$p = null; + delete $$open.$$p; + ; - if ($iter) $Kernel_open$1.$$p = null;; - - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); rest = $post_args;; - if ($truthy((function() {if ($truthy(($ret_or_1 = name['$respond_to?']("to_str")))) { - return /^[A-Za-z][A-Za-z0-9+\-\.]*:\/\//['$=~'](name) - } else { - return $ret_or_1 - }; return nil; })())) { - return $send($$($nesting, 'OpenURI'), 'open_uri', [name].concat(Opal.to_a(rest)), block.$to_proc()) + if (($truthy(name['$respond_to?']("to_str")) && ($truthy(/^[A-Za-z][A-Za-z0-9+\-\.]*:\/\//['$=~'](name))))) { + return $send($$('OpenURI'), 'open_uri', [name].concat($to_a(rest)), block.$to_proc()) } else { - return $send(self, 'open_uri_original_open', [name].concat(Opal.to_a(rest)), block.$to_proc()) + return $send(self, 'open_uri_original_open', [name].concat($to_a(rest)), block.$to_proc()) }; - }, $Kernel_open$1.$$arity = -2); + }, -2); return self.$module_function("open"); })($nesting[0], $nesting); return (function($base, $parent_nesting) { var self = $module($base, 'OpenURI'); - var $nesting = [self].concat($parent_nesting), $OpenURI_open_uri$2, $OpenURI_close_io$3, $OpenURI_open_loop$4, $OpenURI_build_response$5, $OpenURI_data$6, $OpenURI_request$7; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$open_uri', $OpenURI_open_uri$2 = function $$open_uri(name, $a) { - var $post_args, rest, $iter = $OpenURI_open_uri$2.$$p, $yield = $iter || nil, self = this, io = nil; + $defs(self, '$open_uri', function $$open_uri(name, $a) { + var $post_args, rest, $yield = $$open_uri.$$p || nil, self = this, io = nil; - if ($iter) $OpenURI_open_uri$2.$$p = null; + delete $$open_uri.$$p; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); rest = $post_args;; io = self.$open_loop(name, $hash2([], {})); @@ -1031,10 +816,9 @@ Opal.modules["open-uri"] = function(Opal) { } else { return io }; - }, $OpenURI_open_uri$2.$$arity = -2); - Opal.defs(self, '$close_io', $OpenURI_close_io$3 = function $$close_io(io) { - var self = this; - + }, -2); + $defs(self, '$close_io', function $$close_io(io) { + if ($truthy(io['$respond_to?']("close!"))) { return io['$close!']() } else if ($truthy(io['$closed?']())) { @@ -1042,50 +826,41 @@ Opal.modules["open-uri"] = function(Opal) { } else { return io.$close() } - }, $OpenURI_close_io$3.$$arity = 1); - Opal.defs(self, '$open_loop', $OpenURI_open_loop$4 = function $$open_loop(uri, options) { - var self = this, req = nil, data = nil, status = nil, status_text = nil, $ret_or_2 = nil, $ret_or_3 = nil; + }, 1); + $defs(self, '$open_loop', function $$open_loop(uri, options) { + var self = this, req = nil, data = nil, status = nil, status_text = nil; req = self.$request(uri); data = req.responseText; status = req.status; status_text = req.statusText && req.statusText.errno ? req.statusText.errno : req.statusText; - if ($truthy((function() {if ($truthy(($ret_or_2 = status['$=='](200)))) { - return $ret_or_2 - } else { - - if ($truthy(($ret_or_3 = status['$=='](0)))) { - return data - } else { - return $ret_or_3 - }; - }; return nil; })())) { + if (($eqeq(status, 200) || (($eqeq(status, 0) && ($truthy(data)))))) { return self.$build_response(req, status, status_text) } else { - return self.$raise($$$($$($nesting, 'OpenURI'), 'HTTPError').$new("" + (status) + " " + (status_text), "")) + return self.$raise($$$($$('OpenURI'), 'HTTPError').$new("" + (status) + " " + (status_text), "")) }; - }, $OpenURI_open_loop$4.$$arity = 2); - Opal.defs(self, '$build_response', $OpenURI_build_response$5 = function $$build_response(req, status, status_text) { + }, 2); + $defs(self, '$build_response', function $$build_response(req, status, status_text) { var self = this, buf = nil, io = nil, $writer = nil, last_modified = nil; - buf = $$($nesting, 'Buffer').$new(); + buf = $$('Buffer').$new(); buf['$<<'](self.$data(req).$pack("c*")); io = buf.$io(); $writer = ["" + (status) + " " + (status_text)]; - $send(io, 'status=', Opal.to_a($writer)); + $send(io, 'status=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; io.$meta_add_field("content-type", req.getResponseHeader("Content-Type") || ''); last_modified = req.getResponseHeader("Last-Modified"); if ($truthy(last_modified)) { - io.$meta_add_field("last-modified", last_modified)}; + io.$meta_add_field("last-modified", last_modified) + }; return io; - }, $OpenURI_build_response$5.$$arity = 3); - Opal.defs(self, '$data', $OpenURI_data$6 = function $$data(req) { - var self = this; - + }, 3); + $defs(self, '$data', function $$data(req) { + var binStr = req.responseText; var byteArray = []; @@ -1096,8 +871,8 @@ Opal.modules["open-uri"] = function(Opal) { } return byteArray; - }, $OpenURI_data$6.$$arity = 1); - Opal.defs(self, '$request', $OpenURI_request$7 = function $$request(uri) { + }, 1); + $defs(self, '$request', function $$request(uri) { var self = this; @@ -1110,124 +885,115 @@ Opal.modules["open-uri"] = function(Opal) { xhr.send(); return xhr; } catch (error) { - self.$raise($$$($$($nesting, 'OpenURI'), 'HTTPError').$new(error.message, "")) + self.$raise($$$($$('OpenURI'), 'HTTPError').$new(error.message, "")) } - }, $OpenURI_request$7.$$arity = 1); - (function($base, $super, $parent_nesting) { + }, 1); + (function($base, $super) { var self = $klass($base, $super, 'HTTPError'); - var $nesting = [self].concat($parent_nesting), $HTTPError_initialize$8; - - Opal.def(self, '$initialize', $HTTPError_initialize$8 = function $$initialize(message, io) { - var $iter = $HTTPError_initialize$8.$$p, $yield = $iter || nil, self = this; + + $def(self, '$initialize', function $$initialize(message, io) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $HTTPError_initialize$8.$$p = null; + delete $$initialize.$$p; - $send2(self, $find_super(self, 'initialize', $HTTPError_initialize$8, false, true), 'initialize', [message, io], null); + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [message, io], null); return (self.io = io); - }, $HTTPError_initialize$8.$$arity = 2); + }, 2); return self.$attr_reader("io"); - })($nesting[0], $$($nesting, 'StandardError'), $nesting); + })($nesting[0], $$('StandardError')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Buffer'); - var $nesting = [self].concat($parent_nesting), $Buffer_initialize$9, $Buffer_$lt$lt$10, $Buffer_io$11; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.io = self.$$prototype.size = nil; + $proto.io = $proto.size = nil; - Opal.def(self, '$initialize', $Buffer_initialize$9 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; - self.io = $$($nesting, 'StringIO').$new(); + self.io = $$('StringIO').$new(); return (self.size = 0); - }, $Buffer_initialize$9.$$arity = 0); + }, 0); self.$attr_reader("size"); - Opal.def(self, '$<<', $Buffer_$lt$lt$10 = function(str) { + $def(self, '$<<', function $Buffer_$lt$lt$1(str) { var self = this; self.io['$<<'](str); return (self.size = $rb_plus(self.size, str.$length())); - }, $Buffer_$lt$lt$10.$$arity = 1); - return (Opal.def(self, '$io', $Buffer_io$11 = function $$io() { + }, 1); + return $def(self, '$io', function $$io() { var self = this; - if ($truthy($$($nesting, 'Meta')['$==='](self.io))) { - } else { - $$($nesting, 'Meta').$init(self.io) + if (!$eqeqeq($$('Meta'), self.io)) { + $$('Meta').$init(self.io) }; return self.io; - }, $Buffer_io$11.$$arity = 0), nil) && 'io'; + }, 0); })($nesting[0], null, $nesting); (function($base, $parent_nesting) { var self = $module($base, 'Meta'); - var $nesting = [self].concat($parent_nesting), $Meta_init$12, $Meta_meta_setup_encoding$15, $Meta_set_encoding$16, $Meta_find_encoding$17, $Meta_meta_add_field2$18, $Meta_meta_add_field$19, $Meta_last_modified$20, $Meta_content_type_parse$21, $Meta_charset$22, $Meta_content_type$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs($$($nesting, 'Meta'), '$init', $Meta_init$12 = function $$init(obj, src) { - var $$13, $$14, self = this, $writer = nil; + $defs($$('Meta'), '$init', function $$init(obj, src) { + var self = this, $writer = nil; - if (src == null) { - src = nil; - }; - obj.$extend($$($nesting, 'Meta')); - $send(obj, 'instance_eval', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + if (src == null) src = nil;; + obj.$extend($$('Meta')); + $send(obj, 'instance_eval', [], function $$2(){var self = $$2.$$s == null ? this : $$2.$$s; self.base_uri = nil; self.meta = $hash2([], {}); - return (self.metas = $hash2([], {}));}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return (self.metas = $hash2([], {}));}, {$$arity: 0, $$s: self}); if ($truthy(src)) { $writer = [src.$status()]; - $send(obj, 'status=', Opal.to_a($writer)); + $send(obj, 'status=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [src.$base_uri()]; - $send(obj, 'base_uri=', Opal.to_a($writer)); + $send(obj, 'base_uri=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(src.$metas(), 'each', [], ($$14 = function(name, values){var self = $$14.$$s == null ? this : $$14.$$s; - + return $send(src.$metas(), 'each', [], function $$3(name, values){ - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (values == null) { - values = nil; - }; - return obj.$meta_add_field2(name, values);}, $$14.$$s = self, $$14.$$arity = 2, $$14)); + if (values == null) values = nil;; + return obj.$meta_add_field2(name, values);}, 2); } else { return nil }; - }, $Meta_init$12.$$arity = -2); + }, -2); self.$attr_accessor("status"); self.$attr_accessor("base_uri"); self.$attr_reader("meta"); self.$attr_reader("metas"); - Opal.def(self, '$meta_setup_encoding', $Meta_meta_setup_encoding$15 = function $$meta_setup_encoding() { + $def(self, '$meta_setup_encoding', function $$meta_setup_encoding() { var self = this, charset = nil, enc = nil; charset = self.$charset(); enc = self.$find_encoding(charset); return self.$set_encoding(enc); - }, $Meta_meta_setup_encoding$15.$$arity = 0); + }, 0); - Opal.def(self, '$set_encoding', $Meta_set_encoding$16 = function $$set_encoding(enc) { + $def(self, '$set_encoding', function $$set_encoding(enc) { var self = this; if ($truthy(self['$respond_to?']("force_encoding"))) { @@ -1237,32 +1003,32 @@ Opal.modules["open-uri"] = function(Opal) { } else { return self.$set_encoding(enc) } - }, $Meta_set_encoding$16.$$arity = 1); + }, 1); - Opal.def(self, '$find_encoding', $Meta_find_encoding$17 = function $$find_encoding(charset) { - var self = this, enc = nil; + $def(self, '$find_encoding', function $$find_encoding(charset) { + var enc = nil; enc = nil; if ($truthy(charset)) { try { - enc = $$($nesting, 'Encoding').$find(charset) + enc = $$('Encoding').$find(charset) } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$('ArgumentError')])) { try { nil } finally { Opal.pop_exception(); } } else { throw $err; } - };}; - if ($truthy(enc)) { - } else { - enc = $$$($$($nesting, 'Encoding'), 'ASCII_8BIT') + }; + }; + if (!$truthy(enc)) { + enc = $$$($$('Encoding'), 'ASCII_8BIT') }; return enc; - }, $Meta_find_encoding$17.$$arity = 1); + }, 1); - Opal.def(self, '$meta_add_field2', $Meta_meta_add_field2$18 = function $$meta_add_field2(name, values) { + $def(self, '$meta_add_field2', function $$meta_add_field2(name, values) { var self = this, $writer = nil; if (self.metas == null) self.metas = nil; if (self.meta == null) self.meta = nil; @@ -1271,120 +1037,103 @@ Opal.modules["open-uri"] = function(Opal) { name = name.$downcase(); $writer = [name, values]; - $send(self.metas, '[]=', Opal.to_a($writer)); + $send(self.metas, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; $writer = [name, values.$join(", ")]; - $send(self.meta, '[]=', Opal.to_a($writer)); + $send(self.meta, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if (name['$==']("content-type")) { + if ($eqeq(name, "content-type")) { return self.$meta_setup_encoding() } else { return nil }; - }, $Meta_meta_add_field2$18.$$arity = 2); + }, 2); - Opal.def(self, '$meta_add_field', $Meta_meta_add_field$19 = function $$meta_add_field(name, value) { + $def(self, '$meta_add_field', function $$meta_add_field(name, value) { var self = this; return self.$meta_add_field2(name, [value]) - }, $Meta_meta_add_field$19.$$arity = 2); + }, 2); - Opal.def(self, '$last_modified', $Meta_last_modified$20 = function $$last_modified() { + $def(self, '$last_modified', function $$last_modified() { var self = this, vs = nil; if (self.metas == null) self.metas = nil; if ($truthy((vs = self.metas['$[]']("last-modified")))) { - return $$($nesting, 'Time').$at(Date.parse(vs.$join(", ")) / 1000).$utc() + return $$('Time').$at(Date.parse(vs.$join(", ")) / 1000).$utc() } else { return nil } - }, $Meta_last_modified$20.$$arity = 0); + }, 0); - Opal.def(self, '$content_type_parse', $Meta_content_type_parse$21 = function $$content_type_parse() { + $def(self, '$content_type_parse', function $$content_type_parse() { var self = this, content_type = nil; if (self.metas == null) self.metas = nil; content_type = self.metas['$[]']("content-type"); return content_type.$join(", "); - }, $Meta_content_type_parse$21.$$arity = 0); + }, 0); - Opal.def(self, '$charset', $Meta_charset$22 = function $$charset() { - var self = this, type = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; + $def(self, '$charset', function $$charset() { + var self = this, type = nil; if (self.base_uri == null) self.base_uri = nil; type = self.$content_type_parse(); - if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = type))) { - return /^text\//['$=~'](type) - } else { - return $ret_or_6 - }; return nil; })()))) { - return self.base_uri - } else { - return $ret_or_5 - }; return nil; })()))) { - return /^http$/i['$=~'](self.base_uri.$scheme()) - } else { - return $ret_or_4 - }; return nil; })())) { + if (((($truthy(type) && ($truthy(/^text\//['$=~'](type)))) && ($truthy(self.base_uri))) && ($truthy(/^http$/i['$=~'](self.base_uri.$scheme()))))) { return "iso-8859-1" } else { return nil }; - }, $Meta_charset$22.$$arity = 0); - return (Opal.def(self, '$content_type', $Meta_content_type$23 = function $$content_type() { - var self = this, type = nil, $ret_or_7 = nil; + }, 0); + return $def(self, '$content_type', function $$content_type() { + var self = this, type = nil, $ret_or_1 = nil; type = self.$content_type_parse(); - if ($truthy(($ret_or_7 = type))) { - return $ret_or_7 + if ($truthy(($ret_or_1 = type))) { + return $ret_or_1 } else { return "application/octet-stream" }; - }, $Meta_content_type$23.$$arity = 0), nil) && 'content_type'; + }, 0); })($nesting[0], $nesting); return (function($base, $parent_nesting) { var self = $module($base, 'OpenRead'); - var $nesting = [self].concat($parent_nesting), $OpenRead_open$24, $OpenRead_read$25; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$open', $OpenRead_open$24 = function $$open($a) { - var $iter = $OpenRead_open$24.$$p, block = $iter || nil, $post_args, rest, self = this; + $def(self, '$open', function $$open($a) { + var block = $$open.$$p || nil, $post_args, rest, self = this; - if ($iter) $OpenRead_open$24.$$p = null; + delete $$open.$$p; + ; - if ($iter) $OpenRead_open$24.$$p = null;; - - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); rest = $post_args;; - return $send($$($nesting, 'OpenURI'), 'open_uri', [self].concat(Opal.to_a(rest)), block.$to_proc()); - }, $OpenRead_open$24.$$arity = -1); - return (Opal.def(self, '$read', $OpenRead_read$25 = function $$read(options) { - var $$26, self = this; + return $send($$('OpenURI'), 'open_uri', [self].concat($to_a(rest)), block.$to_proc()); + }, -1); + return $def(self, '$read', function $$read(options) { + var self = this; - if (options == null) { - options = $hash2([], {}); - }; - return $send(self, 'open', [options], ($$26 = function(f){var self = $$26.$$s == null ? this : $$26.$$s, str = nil; + if (options == null) options = $hash2([], {});; + return $send(self, 'open', [options], function $$4(f){var str = nil; - if (f == null) { - f = nil; - }; + if (f == null) f = nil;; str = f.$read(); - $$($nesting, 'Meta').$init(str, f); - return str;}, $$26.$$s = self, $$26.$$arity = 1, $$26)); - }, $OpenRead_read$25.$$arity = -1), nil) && 'read'; + $$('Meta').$init(str, f); + return str;}, 1); + }, -1); })($nesting[0], $nesting); })($nesting[0], $nesting); }; diff --git a/opal/master/open-uri.min.js b/opal/master/open-uri.min.js index 6900c627..18b9755c 100644 --- a/opal/master/open-uri.min.js +++ b/opal/master/open-uri.min.js @@ -1 +1 @@ -Opal.modules.stringio=function(Opal){function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$alias=Opal.alias,$gvars=Opal.gvars;return Opal.add_stubs(["$include","$new","$call","$close","$attr_accessor","$length","$include?","$!","$check_readable","$==","$===","$>=","$raise","$>","$+","$-","$seek","$enum_for","$eof?","$ord","$[]","$to_str","$chomp","$check_writable","$String","$write","$closed_write?","$closed_read?"]),function($base,$StringIO_check_readable$19,$StringIO_check_writable$18){var $StringIO_open$1,$StringIO_each_byte$7,$StringIO_each_char$8,$StringIO_each$9,$StringIO_check_readable$19=$klass($base,$StringIO_check_readable$19,"StringIO"),$nesting=[$StringIO_check_readable$19].concat($StringIO_check_writable$18);return $StringIO_check_readable$19.$$prototype.position=$StringIO_check_readable$19.$$prototype.string=$StringIO_check_readable$19.$$prototype.closed=nil,$StringIO_check_readable$19.$include($$$($$($nesting,"IO"),"Readable")),$StringIO_check_readable$19.$include($$$($$($nesting,"IO"),"Writable")),Opal.defs($StringIO_check_readable$19,"$open",$StringIO_open$1=function(string,mode){var res,$iter=$StringIO_open$1.$$p,block=$iter||nil,io=nil;return $iter&&($StringIO_open$1.$$p=null),$iter&&($StringIO_open$1.$$p=null),null==string&&(string=""),null==mode&&(mode=nil),io=this.$new(string,mode),res=block.$call(io),io.$close(),res},$StringIO_open$1.$$arity=-1),$StringIO_check_readable$19.$attr_accessor("string"),Opal.def($StringIO_check_readable$19,"$initialize",$StringIO_check_writable$18=function(string,mode){var $ret_or_1=nil,$ret_or_2=nil;return null==string&&(string=""),null==mode&&(mode="rw"),this.string=string,this.position=string.$length(),$truthy($truthy($ret_or_1=mode["$include?"]("r"))?mode["$include?"]("w")["$!"]():$ret_or_1)?this.closed="write":$truthy($truthy($ret_or_2=mode["$include?"]("w"))?mode["$include?"]("r")["$!"]():$ret_or_2)?this.closed="read":nil},$StringIO_check_writable$18.$$arity=-1),Opal.def($StringIO_check_readable$19,"$eof?",$StringIO_check_writable$18=function(){return this.$check_readable(),this.position["$=="](this.string.$length())},$StringIO_check_writable$18.$$arity=0),$alias($StringIO_check_readable$19,"eof","eof?"),Opal.def($StringIO_check_readable$19,"$seek",$StringIO_check_writable$18=function(pos,lhs){var $case,rhs;return null==lhs&&(lhs=$$$($$($nesting,"IO"),"SEEK_SET")),$case=lhs,$$$($$($nesting,"IO"),"SEEK_SET")["$==="]($case)?($truthy((rhs=0,"number"==typeof(lhs=pos)&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))||this.$raise($$$($$($nesting,"Errno"),"EINVAL")),this.position=pos):$$$($$($nesting,"IO"),"SEEK_CUR")["$==="]($case)?$truthy($rb_gt($rb_plus(this.position,pos),this.string.$length()))?this.position=this.string.$length():this.position=$rb_plus(this.position,pos):$$$($$($nesting,"IO"),"SEEK_END")["$==="]($case)&&($truthy($rb_gt(pos,this.string.$length()))?this.position=0:this.position=$rb_minus(this.position,pos)),0},$StringIO_check_writable$18.$$arity=-2),Opal.def($StringIO_check_readable$19,"$tell",$StringIO_check_writable$18=function(){return this.position},$StringIO_check_writable$18.$$arity=0),$alias($StringIO_check_readable$19,"pos","tell"),$alias($StringIO_check_readable$19,"pos=","seek"),Opal.def($StringIO_check_readable$19,"$rewind",$StringIO_check_writable$18=function(){return this.$seek(0)},$StringIO_check_writable$18.$$arity=0),Opal.def($StringIO_check_readable$19,"$each_byte",$StringIO_each_byte$7=function(){var $iter=$StringIO_each_byte$7.$$p,block=$iter||nil,i=nil;if($iter&&($StringIO_each_byte$7.$$p=null),$iter&&($StringIO_each_byte$7.$$p=null),!$truthy(block))return this.$enum_for("each_byte");for(this.$check_readable(),i=this.position;!$truthy(this["$eof?"]());)block.$call(this.string["$[]"](i).$ord()),i=$rb_plus(i,1);return this},$StringIO_each_byte$7.$$arity=0),Opal.def($StringIO_check_readable$19,"$each_char",$StringIO_each_char$8=function(){var $iter=$StringIO_each_char$8.$$p,block=$iter||nil,i=nil;if($iter&&($StringIO_each_char$8.$$p=null),$iter&&($StringIO_each_char$8.$$p=null),!$truthy(block))return this.$enum_for("each_char");for(this.$check_readable(),i=this.position;!$truthy(this["$eof?"]());)block.$call(this.string["$[]"](i)),i=$rb_plus(i,1);return this},$StringIO_each_char$8.$$arity=0),Opal.def($StringIO_check_readable$19,"$each",$StringIO_each$9=function(separator){var chomped=$StringIO_each$9.$$p,$yield=chomped||nil,chomp_lines=nil;if(null==$gvars["/"]&&($gvars["/"]=nil),chomped&&($StringIO_each$9.$$p=null),null==separator&&(separator=$gvars["/"]),$yield===nil)return this.$enum_for("each_line");this.$check_readable(),chomp_lines=!1,separator=$truthy($$$("::","Hash")["$==="](separator))?$truthy(chomp_lines=separator["$[]"]("chomp"))?/\r?\n/:$gvars["/"]:$truthy(separator)?separator.$to_str():void 0;var str=this.string,stringLength=str.length;if(this.position","<"];self.eachDirectiveAndCount=function(format,callback){var currentDirective,currentCount,currentModifiers,countSpecified;function reset(){currentDirective=null,currentCount=0,countSpecified=!(currentModifiers=[])}function yieldAndReset(){null!=currentDirective&&(!/[sSiIlLqQjJ]/.test(currentDirective)&&0")&&self.$raise($$($nesting,"RangeError"),"Can't use both '<' and '>'"),countSpecified||(currentCount=1),-1!==currentModifiers.indexOf(">")&&(currentDirective+=">"),callback(currentDirective,currentCount)),reset()}reset();for(var i=0;i>=8}return asciiBytesToUtf16LEString(result)})}}function asciiStringFromSignedInt(bytes,callback){return function(bits){var buffer=callback(bits),bits=8*bytes,limit=Math.pow(2,bits);return buffer.map(function(item){item<0&&(item+=limit);for(var result=[],i=0;i>=8}return asciiBytesToUtf16LEString(result)})}}function toInt(callback){return function(data){return callback(data).map(function(item){return $coerce_to(item,$$($nesting,"Integer"),"to_int")})}}function joinChars(callback){return function(data){return callback(data).join("")}}var callback,handlers={C:joinChars(asciiStringFromUnsignedInt(1,toInt(identityFunction))),S:joinChars(asciiStringFromUnsignedInt(2,toInt(identityFunction))),L:joinChars(asciiStringFromUnsignedInt(4,toInt(identityFunction))),Q:joinChars(asciiStringFromUnsignedInt(8,toInt(identityFunction))),J:null,"S>":null,"L>":null,"Q>":null,c:joinChars(asciiStringFromSignedInt(1,toInt(identityFunction))),s:joinChars(asciiStringFromSignedInt(2,toInt(identityFunction))),l:joinChars(asciiStringFromSignedInt(4,toInt(identityFunction))),q:joinChars(asciiStringFromSignedInt(8,toInt(identityFunction))),j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:joinChars((callback=toInt(identityFunction),function(data){return callback(data).map(function(item){try{return String.fromCodePoint(item)}catch(error){throw error instanceof RangeError&&self.$raise($$($nesting,"RangeError"),"value out of range"),error}})})),w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:joinChars(identityFunction),a:joinChars(identityFunction),Z:null,B:null,b:null,H:null,h:null,u:null,M:null,m:null,P:null,p:null};function readNTimesFromBufferAndMerge(callback){return function(buffer,count){var chunkData,chunk=[];if(count===1/0)for(;0":null,"L>":null,"Q>":null,c:readNTimesFromBufferAndMerge(readItem),s:readNTimesFromBufferAndMerge(readItem),l:readNTimesFromBufferAndMerge(readItem),q:readNTimesFromBufferAndMerge(readItem),j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:readNTimesFromBufferAndMerge(readItem),w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:readNCharsFromTheFirstItemAndMergeWithFallback(" ",readItem),a:readNCharsFromTheFirstItemAndMergeWithFallback("\0",readItem),Z:null,B:null,b:null,H:null,h:null,u:null,M:null,m:null,P:null,p:null},autocompletion={C:!1,S:!1,L:!1,Q:!1,J:null,"S>":null,"L>":null,"Q>":null,c:!1,s:!1,l:!1,q:!1,j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:!1,w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:null,B:null,b:null,H:null,h:null,u:!1,M:null,m:null,P:null,p:null};return Opal.def(self,"$pack",$Array_pack$1=function(format){var self=this;format=$$($nesting,"Opal")["$coerce_to!"](format,$$($nesting,"String"),"to_str").$gsub(/\s/,"").$delete("\0");var output="",buffer=self.slice();return eachDirectiveAndCount(format,function(directive,count){var shouldAutocomplete,part=function(directive,chunk){var handler=readChunk[directive];return null==handler&&self.$raise("Unsupported pack directive "+directive.$inspect()+" (no chunk reader defined)"),handler=handler(buffer,chunk),chunk=handler.chunk,buffer=handler.rest,null==(handler=handlers[directive])&&self.$raise("Unsupported pack directive "+directive.$inspect()+" (no handler defined)"),handler(chunk)}(directive,count);count!==1/0&&(null==(shouldAutocomplete=autocompletion[directive])&&self.$raise("Unsupported pack directive "+directive.$inspect()+" (no autocompletion rule defined)"),shouldAutocomplete&&function(array,size){for(;array.length=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"StringIO"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.position=$proto.string=nil,$defs(self,"$open",(function $$open(string,mode){var res,block=$$open.$$p||nil,io=nil;return delete $$open.$$p,null==string&&(string=""),null==mode&&(mode=nil),io=this.$new(string,mode),res=block.$call(io),io.$close(),res}),-1),self.$attr_accessor("string"),$def(self,"$initialize",(function $$initialize(string,mode){return delete $$initialize.$$p,null==string&&(string=""),null==mode&&(mode="rw"),this.string=string,this.position=0,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[nil,mode],null)}),-1),$def(self,"$eof?",(function(){return this.$check_readable(),this.position["$=="](this.string.$length())}),0),$def(self,"$seek",(function(pos,whence){var $ret_or_1;return null==whence&&(whence=$$$($$("IO"),"SEEK_SET")),this.read_buffer="",$eqeqeq($$$($$("IO"),"SEEK_SET"),$ret_or_1=whence)?($truthy($rb_ge(pos,0))||this.$raise($$$($$("Errno"),"EINVAL")),this.position=pos):$eqeqeq($$$($$("IO"),"SEEK_CUR"),$ret_or_1)?$truthy($rb_gt($rb_plus(this.position,pos),this.string.$length()))?this.position=this.string.$length():this.position=$rb_plus(this.position,pos):$eqeqeq($$$($$("IO"),"SEEK_END"),$ret_or_1)&&($truthy($rb_gt(pos,this.string.$length()))?this.position=0:this.position=$rb_minus(this.position,pos)),0}),-2),$def(self,"$tell",(function(){return this.position}),0),$def(self,"$rewind",(function(){return this.$seek(0)}),0),$def(self,"$write",(function(string){var before=nil,after=nil;return this.$check_writable(),this.read_buffer="",string=this.$String(string),$eqeq(this.string.$length(),this.position)?(this.string=$rb_plus(this.string,string),this.position=$rb_plus(this.position,string.$length())):(before=this.string["$[]"](Opal.Range.$new(0,$rb_minus(this.position,1),!1)),after=this.string["$[]"](Opal.Range.$new($rb_plus(this.position,string.$length()),-1,!1)),this.string=$rb_plus($rb_plus(before,string),after),this.position=$rb_plus(this.position,string.$length()))}),1),$def(self,"$read",(function(length,outbuf){var string,str=nil;return null==length&&(length=nil),null==outbuf&&(outbuf=nil),this.$check_readable(),$truthy(this["$eof?"]())?nil:(string=$truthy(length)?(str=this.string["$[]"](this.position,length),this.position=$rb_plus(this.position,length),$truthy($rb_gt(this.position,this.string.$length()))&&(this.position=this.string.$length()),str):(str=this.string["$[]"](Opal.Range.$new(this.position,-1,!1)),this.position=this.string.$length(),str),$truthy(outbuf)?outbuf.$write(string):string)}),-1),$def(self,"$sysread",(function(length){return this.$check_readable(),this.$read(length)}),1),$alias(self,"eof","eof?"),$alias(self,"pos","tell"),$alias(self,"pos=","seek"),$alias(self,"readpartial","read")}($nesting[0],$$("IO"),$nesting)},Opal.modules["corelib/pack_unpack/format_string_parser"]=function(Opal){Opal.nil;var self,directives,modifiers,$$$=Opal.$$$,$module=Opal.module,$Kernel=Opal.Kernel;return Opal.add_stubs("raise"),self=$module("::","PackUnpack"),directives=["C","S","L","Q","J","c","s","l","q","j","n","N","v","V","U","w","D","d","F","f","E","e","G","g","A","a","Z","B","b","H","h","u","M","m","P","p","@","X","x"],modifiers=["!","_",">","<"],void(self.eachDirectiveAndCount=function(format,callback){var currentDirective,currentCount,currentModifiers,countSpecified;function reset(){currentDirective=null,currentCount=0,currentModifiers=[],countSpecified=!1}function yieldAndReset(){null!=currentDirective?(!/[sSiIlLqQjJ]/.test(currentDirective)&¤tModifiers.length>0&&$Kernel.$raise($$$("ArgumentError"),"'"+currentModifiers[0]+"' allowed only after types sSiIlLqQjJ"),-1!==currentModifiers.indexOf("<")&&-1!==currentModifiers.indexOf(">")&&$Kernel.$raise($$$("RangeError"),"Can't use both '<' and '>'"),countSpecified||(currentCount=1),-1!==currentModifiers.indexOf(">")&&(currentDirective+=">"),callback(currentDirective,currentCount),reset()):reset()}reset();for(var i=0;i>=8}return asciiBytesToUtf16LEString(result)}))}}function asciiStringFromSignedInt(bytes,callback){return function(data){var buffer=callback(data),bits=8*bytes,limit=Math.pow(2,bits);return buffer.map((function(item){item<0&&(item+=limit);for(var result=[],i=0;i>=8}return asciiBytesToUtf16LEString(result)}))}}function toInt(callback){return function(data){return callback(data).map((function(item){return $coerce_to(item,$$$("Integer"),"to_int")}))}}function joinChars(callback){return function(data){return callback(data).join("")}}var callback,handlers={C:joinChars(asciiStringFromUnsignedInt(1,toInt(identityFunction))),S:joinChars(asciiStringFromUnsignedInt(2,toInt(identityFunction))),L:joinChars(asciiStringFromUnsignedInt(4,toInt(identityFunction))),Q:joinChars(asciiStringFromUnsignedInt(8,toInt(identityFunction))),J:null,"S>":null,"L>":null,"Q>":null,c:joinChars(asciiStringFromSignedInt(1,toInt(identityFunction))),s:joinChars(asciiStringFromSignedInt(2,toInt(identityFunction))),l:joinChars(asciiStringFromSignedInt(4,toInt(identityFunction))),q:joinChars(asciiStringFromSignedInt(8,toInt(identityFunction))),j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:joinChars((callback=toInt(identityFunction),function(data){return callback(data).map((function(item){try{return String.fromCodePoint(item)}catch(error){throw error instanceof RangeError&&$Kernel.$raise($$$("RangeError"),"value out of range"),error}}))})),w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:joinChars(identityFunction),a:joinChars(identityFunction),Z:null,B:null,b:null,H:null,h:null,u:null,M:null,m:null,P:null,p:null};function readNTimesFromBufferAndMerge(callback){return function(buffer,count){var chunkData,chunk=[];if(count===1/0)for(;buffer.length>0;)buffer=(chunkData=callback(buffer)).rest,chunk=chunk.concat(chunkData.chunk);else{buffer.length0;)infiniteReeder();else for(var i=0;i":null,"L>":null,"Q>":null,c:readNTimesFromBufferAndMerge(readItem),s:readNTimesFromBufferAndMerge(readItem),l:readNTimesFromBufferAndMerge(readItem),q:readNTimesFromBufferAndMerge(readItem),j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:readNTimesFromBufferAndMerge(readItem),w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:readNCharsFromTheFirstItemAndMergeWithFallback(" ",readItem),a:readNCharsFromTheFirstItemAndMergeWithFallback("\0",readItem),Z:null,B:null,b:null,H:null,h:null,u:null,M:null,m:null,P:null,p:null},autocompletion={C:!1,S:!1,L:!1,Q:!1,J:null,"S>":null,"L>":null,"Q>":null,c:!1,s:!1,l:!1,q:!1,j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:!1,w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:null,B:null,b:null,H:null,h:null,u:!1,M:null,m:null,P:null,p:null};return $def(self,"$pack",(function(format){format=$Opal["$coerce_to!"](format,$$$("String"),"to_str").$gsub(/\s/,"").$delete("\0");var output="",buffer=this.slice();return eachDirectiveAndCount(format,(function(directive,count){var part=function(directive,count){var chunk,chunkReader=readChunk[directive];null==chunkReader&&$Kernel.$raise("Unsupported pack directive "+directive.$inspect()+" (no chunk reader defined)");var chunkData=chunkReader(buffer,count);chunk=chunkData.chunk,buffer=chunkData.rest;var handler=handlers[directive];return null==handler&&$Kernel.$raise("Unsupported pack directive "+directive.$inspect()+" (no handler defined)"),handler(chunk)}(directive,count);if(count!==1/0){var shouldAutocomplete=autocompletion[directive];null==shouldAutocomplete&&$Kernel.$raise("Unsupported pack directive "+directive.$inspect()+" (no autocompletion rule defined)"),shouldAutocomplete&&function(array,size){for(;array.length,shift,each,rindex,throw,include,attr_reader,>=,incompatible_argument_styles,raise,filter_backtrace,caller,pattern,match,to_a,length,private,conv,proc,block,-,fetch,[]=,join,dup,desc,arg,<,+@,*,sub,to_i,max,collect,!,ljust,to_s,=~,first,long,short,last_match,conv_arg,parse_arg,respond_to?,delete,update,invert,delete_if,unshift,push,__send__,complete,keys,list,reverse_each,summarize,concat,reverse,each_line,add_banner,compsys,catch,basename,visit,puts,help,exit,require,show_version,split,abort,program_name,ver,instance_eval,nonzero?,inc,class,add_officious,base,terminate,accept,top,reject,attr_writer,attr_accessor,version,release,pop,index,banner,<=,search,notwice,!=,any?,guess,tr,downcase,append,make_switch,define,prepend,define_head,define_tail,order!,default_argv,to_sym,parse_in_order,include?,require_exact,set_option,parse,switch_name,delete_prefix,match_nonswitch?,permute!,parse!,scan,compact,getopts,curry,select!,is_a?,message_for,formatter,&,correct,map,map!,load,expand_path,readlines,upcase,shellwords,nil?,Integer,to_f,Rational,Float,|,args,reason,additional,const_set,undef_method,default_argv=,warn,options,extend'); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'OptionParser'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $writer = nil, decimal = nil, binary = nil, hex = nil, octal = nil, integer = nil, float$ = nil, floatpat = nil, real = nil, yesno = nil, $proto = self.$$prototype; + + $proto.banner = $proto.program_name = $proto.version = $proto.release = $proto.stack = $proto.summary_width = $proto.summary_indent = nil; + + $const_set($$('OptionParser'), 'Version', "0.1.1"); + $const_set($nesting[0], 'NoArgument', [$const_set($nesting[0], 'NO_ARGUMENT', "NONE"), nil].$freeze()); + $const_set($nesting[0], 'RequiredArgument', [$const_set($nesting[0], 'REQUIRED_ARGUMENT', "REQUIRED"), true].$freeze()); + $const_set($nesting[0], 'OptionalArgument', [$const_set($nesting[0], 'OPTIONAL_ARGUMENT', "OPTIONAL"), false].$freeze()); + (function($base, $parent_nesting) { + var self = $module($base, 'Completion'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $defs(self, '$regexp', function $$regexp(key, icase) { + + return $$('Regexp').$new($rb_plus("\\A", $$('Regexp').$quote(key).$gsub(/\w+\b/, "\\&\\w*")), icase) + }, 2); + $defs(self, '$candidate', function $$candidate(key, icase, pat) { + var block = $$candidate.$$p || nil, $ret_or_1 = nil, candidates = nil; + + delete $$candidate.$$p; + + ; + + if (icase == null) icase = false;; + + if (pat == null) pat = nil;; + pat = ($truthy(($ret_or_1 = pat)) ? ($ret_or_1) : ($$('Completion').$regexp(key, icase))); + candidates = []; + $send(block, 'call', [], function $$1(k, $a){var $post_args, v, $b, $c, $d, $e, kn = nil; + + + + if (k == null) k = nil;; + + $post_args = Opal.slice.call(arguments, 1); + + v = $post_args;; + if ($truthy(($ret_or_1 = ($eqeqeq($$('Regexp'), k) ? (((kn = ""), k['$==='](key))) : (((kn = ($truthy(((($b = k) && ($c = $b, $c) && ($d = $c) && ((($e = $d.$id2name) && !$e.$$stub) || $d['$respond_to_missing?']('id2name'))) ? 'method' : nil)) ? (k.$id2name()) : (k))), pat['$==='](kn))))))) { + $ret_or_1 + } else { + return nil; + }; + if ($truthy(v['$empty?']())) { + v['$<<'](k) + }; + return candidates['$<<']([k, v, kn]);}, -2); + return candidates; + }, -2); + + $def(self, '$candidate', function $$candidate(key, icase, pat) { + var self = this; + + + + if (icase == null) icase = false;; + + if (pat == null) pat = nil;; + return $send($$('Completion'), 'candidate', [key, icase, pat], self.$method("each").$to_proc()); + }, -2); + self.$public(); + + $def(self, '$complete', function $$complete(key, icase, pat) { + var $a, $b, $yield = $$complete.$$p || nil, self = this, candidates = nil, canon = nil, sw = nil, cn = nil, $ret_or_1 = nil; + + delete $$complete.$$p; + + + if (icase == null) icase = false;; + + if (pat == null) pat = nil;; + candidates = $send($send(self, 'candidate', [key, icase, pat], self.$method("each").$to_proc()), 'sort_by', [], function $$2(k, v, kn){ + + + if (k == null) k = nil;; + + if (v == null) v = nil;; + + if (kn == null) kn = nil;; + return kn.$size();}, 3); + if ($eqeq(candidates.$size(), 1)) { + $b = candidates['$[]'](0), $a = $to_ary($b), (canon = ($a[0] == null ? nil : $a[0])), (sw = ($a[1] == null ? nil : $a[1])), $b + } else if ($truthy($rb_gt(candidates.$size(), 1))) { + + $b = candidates.$shift(), $a = $to_ary($b), (canon = ($a[0] == null ? nil : $a[0])), (sw = ($a[1] == null ? nil : $a[1])), (cn = ($a[2] == null ? nil : $a[2])), $b; + $send(candidates, 'each', [], function $$3(k, v, kn){var $c, self = $$3.$$s == null ? this : $$3.$$s; + + + + if (k == null) k = nil;; + + if (v == null) v = nil;; + + if (kn == null) kn = nil;; + if ($eqeq(sw, v)) { + return nil; + }; + if (($eqeqeq($$('String'), cn) && ($eqeqeq($$('String'), kn)))) { + if ($truthy(cn.$rindex(kn, 0))) { + + $c = [k, v, kn], (canon = $c[0]), (sw = $c[1]), (cn = $c[2]), $c; + return nil;; + } else if ($truthy(kn.$rindex(cn, 0))) { + return nil; + } + }; + return self.$throw("ambiguous", key);}, {$$arity: 3, $$s: self}); + }; + if ($truthy(canon)) { + + if ($truthy(($ret_or_1 = ($yield !== nil)))) { + $ret_or_1 + } else { + + return [key].concat($to_a(sw)); + }; + return Opal.yieldX($yield, [key].concat($to_a(sw)));; + } else { + return nil + }; + }, -2); + return $def(self, '$convert', function $$convert($a, $b, $c) { + var $post_args, opt, val, $rest_arg; + + + + $post_args = Opal.slice.call(arguments); + + if ($post_args.length > 0) opt = $post_args.shift(); + if (opt == null) opt = nil;; + + if ($post_args.length > 0) val = $post_args.shift(); + if (val == null) val = nil;; + + $rest_arg = $post_args;; + return val; + }, -1); + })($nesting[0], $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'OptionMap'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return self.$include($$('Completion')) + })($nesting[0], $$('Hash'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Switch'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto["short"] = $proto["long"] = $proto.pattern = nil; + + self.$attr_reader("pattern", "conv", "short", "long", "arg", "desc", "block"); + $defs(self, '$guess', function $$guess(arg) { + var self = this, $ret_or_1 = nil, t = nil; + + + if ($eqeqeq("", ($ret_or_1 = arg))) { + t = self + } else if ($eqeqeq(/^=?\[/, $ret_or_1)) { + t = $$$($$('Switch'), 'OptionalArgument') + } else if ($eqeqeq(/^\s+\[/, $ret_or_1)) { + t = $$$($$('Switch'), 'PlacedArgument') + } else { + t = $$$($$('Switch'), 'RequiredArgument') + }; + if ($truthy(($ret_or_1 = $rb_ge(self, t)))) { + $ret_or_1 + } else { + self.$incompatible_argument_styles(arg, t) + }; + return t; + }, 1); + $defs(self, '$incompatible_argument_styles', function $$incompatible_argument_styles(arg, t) { + var self = this; + + return self.$raise($$('ArgumentError'), "" + (arg) + ": incompatible argument styles\n " + (self) + ", " + (t), $$('ParseError').$filter_backtrace(self.$caller(2))) + }, 2); + $defs(self, '$pattern', function $$pattern() { + + return $$('NilClass') + }, 0); + + $def(self, '$initialize', function $$initialize(pattern, conv, short$, long$, arg, desc, block) { + var _block = $$initialize.$$p || nil, $a, self = this, $ret_or_1 = nil; + + delete $$initialize.$$p; + + ; + + if (pattern == null) pattern = nil;; + + if (conv == null) conv = nil;; + + if (short$ == null) short$ = nil;; + + if (long$ == null) long$ = nil;; + + if (arg == null) arg = nil;; + + if (desc == null) desc = (($truthy(short$) || ($truthy(long$))) ? ([]) : nil);; + + if (block == null) block = nil;; + if ($eqeqeq($$('Array'), pattern)) { + self.$raise() + }; + block = ($truthy(($ret_or_1 = block)) ? ($ret_or_1) : (_block)); + return $a = [pattern, conv, short$, long$, arg, desc, block], (self.pattern = $a[0]), (self.conv = $a[1]), (self["short"] = $a[2]), (self["long"] = $a[3]), (self.arg = $a[4]), (self.desc = $a[5]), (self.block = $a[6]), $a; + }, -1); + + $def(self, '$parse_arg', function $$parse_arg(arg) { + var $yield = $$parse_arg.$$p || nil, self = this, $ret_or_1 = nil, m = nil, s = nil; + + delete $$parse_arg.$$p; + + if ($truthy(($ret_or_1 = self.$pattern()))) { + $ret_or_1 + } else { + + return [nil, [arg]]; + }; + if (!$truthy((m = self.$pattern().$match(arg)))) { + + Opal.yieldX($yield, [$$('InvalidArgument'), arg]); + return [arg, []]; + }; + if ($eqeqeq($$('String'), m)) { + m = [(s = m)] + } else { + + m = m.$to_a(); + s = m['$[]'](0); + if (!$eqeqeq($$('String'), s)) { + return [nil, m] + }; + }; + if (!$truthy(arg.$rindex(s, 0))) { + self.$raise($$('InvalidArgument'), arg) + }; + if ($eqeq(s.$length(), arg.$length())) { + return [nil, m] + }; + Opal.yieldX($yield, [$$('InvalidArgument'), arg]); + return [arg['$[]'](Opal.Range.$new(s.$length(), -1, false)), m]; + }, 1); + self.$private("parse_arg"); + + $def(self, '$conv_arg', function $$conv_arg(arg, val) { + var self = this; + + + + if (val == null) val = [];; + if ($truthy(self.$conv())) { + val = $send(self.$conv(), 'call', $to_a(val)) + } else { + val = $send($send(self, 'proc', [], function $$4(v){ + + + if (v == null) v = nil;; + return v;}, 1), 'call', $to_a(val)) + }; + return [arg, self.$block(), val]; + }, -2); + self.$private("conv_arg"); + + $def(self, '$summarize', function $$summarize(sdone, ldone, width, max, indent) { + var $a, $yield = $$summarize.$$p || nil, self = this, sopts = nil, lopts = nil, left = nil, right = nil, s = nil, l = nil, $ret_or_1 = nil, $ret_or_2 = nil, $writer = nil, mlen = nil, r = nil; + + delete $$summarize.$$p; + + + if (sdone == null) sdone = $hash2([], {});; + + if (ldone == null) ldone = $hash2([], {});; + + if (width == null) width = 1;; + + if (max == null) max = $rb_minus(width, 1);; + + if (indent == null) indent = "";; + $a = [[], [], nil], (sopts = $a[0]), (lopts = $a[1]), $a; + if ($truthy(self["short"])) { + $send(self["short"], 'each', [], function $$5(s){var $writer = nil; + + + + if (s == null) s = nil;; + $send(sdone, 'fetch', [s], function $$6(){ + return sopts['$<<'](s)}, 0); + + $writer = [s, true]; + $send(sdone, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, 1) + }; + if ($truthy(self["long"])) { + $send(self["long"], 'each', [], function $$7(s){var $writer = nil; + + + + if (s == null) s = nil;; + $send(ldone, 'fetch', [s], function $$8(){ + return lopts['$<<'](s)}, 0); + + $writer = [s, true]; + $send(ldone, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, 1) + }; + if (($truthy(sopts['$empty?']()) && ($truthy(lopts['$empty?']())))) { + return nil + }; + left = [sopts.$join(", ")]; + right = self.$desc().$dup(); + while ($truthy((s = lopts.$shift()))) { + + l = $rb_plus(left['$[]'](-1).$length(), s.$length()); + if (($eqeq(left.$size(), 1) && ($truthy(self.$arg())))) { + l = $rb_plus(l, self.$arg().$length()) + }; + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = $rb_lt(l, max))) ? ($ret_or_2) : (sopts['$empty?']()))))) { + $ret_or_1 + } else { + left['$<<'](""['$+@']()) + }; + + $writer = [-1, $rb_plus(left['$[]'](-1), $rb_plus(($truthy(left['$[]'](-1)['$empty?']()) ? ($rb_times(" ", 4)) : (", ")), s))]; + $send(left, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + }; + if ($truthy(self.$arg())) { + + $writer = [0, $rb_plus(left['$[]'](0), ($truthy(left['$[]'](1)) ? ($rb_plus(self.$arg().$sub(/^(\[?)=/, "\\1"), ",")) : (self.$arg())))]; + $send(left, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + mlen = $send(left, 'collect', [], "length".$to_proc()).$max().$to_i(); + while ($truthy(($truthy(($ret_or_1 = $rb_gt(mlen, width))) ? ((l = left.$shift())) : ($ret_or_1)))) { + + if ($eqeq(l.$length(), mlen)) { + mlen = $send(left, 'collect', [], "length".$to_proc()).$max().$to_i() + }; + if ((($truthy($rb_lt(l.$length(), width)) && ($truthy((r = right['$[]'](0))))) && ($not(r['$empty?']())))) { + + l = $rb_plus($rb_plus(l.$to_s().$ljust(width), " "), r); + right.$shift(); + }; + Opal.yield1($yield, $rb_plus(indent, l)); + }; + while ($truthy(((l = left.$shift()), (r = right.$shift()), ($truthy(($ret_or_1 = l)) ? ($ret_or_1) : (r))))) { + + if (($truthy(r) && ($not(r['$empty?']())))) { + l = $rb_plus($rb_plus(l.$to_s().$ljust(width), " "), r) + }; + Opal.yield1($yield, $rb_plus(indent, l)); + }; + return self; + }, -1); + + $def(self, '$add_banner', function $$add_banner(to) { + var self = this, s = nil; + + + if (!($truthy(self["short"]) || ($truthy(self["long"])))) { + + s = self.$desc().$join(); + if (!$truthy(s['$empty?']())) { + to['$<<']($rb_plus($rb_plus(" [", s), "]...")) + }; + }; + return to; + }, 1); + + $def(self, '$match_nonswitch?', function $Switch_match_nonswitch$ques$9(str) { + var self = this; + + if (($truthy(self["short"]) || ($truthy(self["long"])))) { + return nil + } else { + return self.pattern['$=~'](str) + } + }, 1); + + $def(self, '$switch_name', function $$switch_name() { + var self = this, $ret_or_1 = nil; + + return ($truthy(($ret_or_1 = self.$long().$first())) ? ($ret_or_1) : (self.$short().$first())).$sub(/^-+(?:\[no-\])?/, "") + }, 0); + + $def(self, '$compsys', function $$compsys(sdone, ldone) { + var $a, $yield = $$compsys.$$p || nil, self = this, sopts = nil, lopts = nil; + + delete $$compsys.$$p; + + $a = [[], []], (sopts = $a[0]), (lopts = $a[1]), $a; + if ($truthy(self["short"])) { + $send(self["short"], 'each', [], function $$10(s){var $writer = nil; + + + + if (s == null) s = nil;; + $send(sdone, 'fetch', [s], function $$11(){ + return sopts['$<<'](s)}, 0); + + $writer = [s, true]; + $send(sdone, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, 1) + }; + if ($truthy(self["long"])) { + $send(self["long"], 'each', [], function $$12(s){var $writer = nil; + + + + if (s == null) s = nil;; + $send(ldone, 'fetch', [s], function $$13(){ + return lopts['$<<'](s)}, 0); + + $writer = [s, true]; + $send(ldone, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, 1) + }; + if (($truthy(sopts['$empty?']()) && ($truthy(lopts['$empty?']())))) { + return nil + }; + return $send($rb_plus(sopts, lopts), 'each', [], function $$14(opt){var self = $$14.$$s == null ? this : $$14.$$s, o = nil; + + + + if (opt == null) opt = nil;; + if ($truthy(/^--\[no-\](.+)$/['$=~'](opt))) { + + o = $$('Regexp').$last_match(1); + Opal.yieldX($yield, ["--" + (o), self.$desc().$join("")]); + return Opal.yieldX($yield, ["--no-" + (o), self.$desc().$join("")]);; + } else { + return Opal.yieldX($yield, [opt.$to_s(), self.$desc().$join("")]); + };}, {$$arity: 1, $$s: self}); + }, 2); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'NoArgument'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$parse', function $$parse(arg, argv) { + var $yield = $$parse.$$p || nil, self = this; + + delete $$parse.$$p; + + if ($truthy(arg)) { + Opal.yieldX($yield, [$$('NeedlessArgument'), arg]) + }; + return self.$conv_arg(arg); + }, 2); + $defs(self, '$incompatible_argument_styles', function $$incompatible_argument_styles($a) { + var $post_args, $rest_arg; + + + + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return nil; + }, -1); + return $defs(self, '$pattern', function $$pattern() { + + return $$('Object') + }, 0); + })($nesting[0], self, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RequiredArgument'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$parse', function $$parse(arg, argv) { + var self = this; + + + if (!$truthy(arg)) { + + if ($truthy(argv['$empty?']())) { + self.$raise($$('MissingArgument')) + }; + arg = argv.$shift(); + }; + return $send(self, 'conv_arg', $to_a($send(self, 'parse_arg', [arg], self.$method("raise").$to_proc()))); + }, 2) + })($nesting[0], self, $nesting); + (function($base, $super) { + var self = $klass($base, $super, 'OptionalArgument'); + + + return $def(self, '$parse', function $$parse(arg, argv) { + var error = $$parse.$$p || nil, self = this; + + delete $$parse.$$p; + + ; + if ($truthy(arg)) { + return $send(self, 'conv_arg', $to_a($send(self, 'parse_arg', [arg], error.$to_proc()))) + } else { + return self.$conv_arg(arg) + }; + }, 2) + })($nesting[0], self); + return (function($base, $super) { + var self = $klass($base, $super, 'PlacedArgument'); + + + return $def(self, '$parse', function $$parse(arg, argv) { + var error = $$parse.$$p || nil, self = this, val = nil, opt = nil, $writer = nil; + + delete $$parse.$$p; + + ; + if (($not((val = arg)) && (($truthy(argv['$empty?']()) || ($truthy(/^-/['$=~']((val = argv['$[]'](0))))))))) { + return [nil, self.$block(), nil] + }; + opt = (val = $send(self, 'parse_arg', [val], error.$to_proc()))['$[]'](1); + val = $send(self, 'conv_arg', $to_a(val)); + if (($truthy(opt) && ($not(arg)))) { + argv.$shift() + } else { + + $writer = [0, nil]; + $send(val, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return val; + }, 2) + })($nesting[0], self); + })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'List'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.atype = $proto["short"] = $proto["long"] = $proto.list = nil; + + self.$attr_reader("atype"); + self.$attr_reader("short"); + self.$attr_reader("long"); + self.$attr_reader("list"); + + $def(self, '$initialize', function $$initialize() { + var self = this; + + + self.atype = $hash2([], {}); + self["short"] = $$('OptionMap').$new(); + self["long"] = $$('OptionMap').$new(); + return (self.list = []); + }, 0); + + $def(self, '$accept', function $$accept(t, pat) { + var block = $$accept.$$p || nil, self = this, $ret_or_1 = nil, $writer = nil; + + delete $$accept.$$p; + + ; + + if (pat == null) pat = /.*/m;; + if ($truthy(pat)) { + if ($truthy(($ret_or_1 = pat['$respond_to?']("match")))) { + $ret_or_1 + } else { + self.$raise($$('TypeError'), "has no `match'", $$('ParseError').$filter_backtrace(self.$caller(2))) + } + } else if ($truthy(t['$respond_to?']("match"))) { + pat = t + }; + if (!$truthy(block)) { + if ($truthy(pat['$respond_to?']("convert"))) { + block = pat.$method("convert").$to_proc() + } + }; + + $writer = [t, [pat, block]]; + $send(self.atype, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + }, -2); + + $def(self, '$reject', function $$reject(t) { + var self = this; + + return self.atype.$delete(t) + }, 1); + + $def(self, '$update', function $$update(sw, sopts, lopts, nsw, nlopts) { + var self = this, used = nil; + + + + if (nsw == null) nsw = nil;; + + if (nlopts == null) nlopts = nil;; + if ($truthy(sopts)) { + $send(sopts, 'each', [], function $$15(o){var self = $$15.$$s == null ? this : $$15.$$s, $writer = nil; + if (self["short"] == null) self["short"] = nil; + + + + if (o == null) o = nil;; + $writer = [o, sw]; + $send(self["short"], '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}) + }; + if ($truthy(lopts)) { + $send(lopts, 'each', [], function $$16(o){var self = $$16.$$s == null ? this : $$16.$$s, $writer = nil; + if (self["long"] == null) self["long"] = nil; + + + + if (o == null) o = nil;; + $writer = [o, sw]; + $send(self["long"], '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}) + }; + if (($truthy(nsw) && ($truthy(nlopts)))) { + $send(nlopts, 'each', [], function $$17(o){var self = $$17.$$s == null ? this : $$17.$$s, $writer = nil; + if (self["long"] == null) self["long"] = nil; + + + + if (o == null) o = nil;; + $writer = [o, nsw]; + $send(self["long"], '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}) + }; + used = self["short"].$invert().$update(self["long"].$invert()); + return $send(self.list, 'delete_if', [], function $$18(o){var $ret_or_1 = nil; + + + + if (o == null) o = nil;; + if ($truthy(($ret_or_1 = $$('Switch')['$==='](o)))) { + return used['$[]'](o)['$!']() + } else { + return $ret_or_1 + };}, 1); + }, -4); + self.$private("update"); + + $def(self, '$prepend', function $$prepend($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + $send(self, 'update', $to_a(args)); + return self.list.$unshift(args['$[]'](0)); + }, -1); + + $def(self, '$append', function $$append($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + $send(self, 'update', $to_a(args)); + return self.list.$push(args['$[]'](0)); + }, -1); + + $def(self, '$search', function $$search(id, key) {try { + + var $yield = $$search.$$p || nil, self = this, list = nil, val = nil; + + delete $$search.$$p; + if ($truthy((list = self.$__send__(id)))) { + + val = $send(list, 'fetch', [key], function $$19(){ + Opal.ret(nil)}, 0); + if (($yield !== nil)) { + return Opal.yield1($yield, val); + } else { + return val + }; + } else { + return nil + } + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, 2); + + $def(self, '$complete', function $$complete(id, opt, $a, $b) { + var block = $$complete.$$p || nil, $post_args, icase, pat, self = this; + + delete $$complete.$$p; + + ; + + $post_args = Opal.slice.call(arguments, 2); + + if ($post_args.length > 0) icase = $post_args.shift(); + if (icase == null) icase = false;; + + pat = $post_args;; + return $send(self.$__send__(id), 'complete', [opt, icase].concat($to_a(pat)), block.$to_proc()); + }, -3); + + $def(self, '$get_candidates', function $$get_candidates(id) { + var $yield = $$get_candidates.$$p || nil, self = this; + + delete $$get_candidates.$$p; + return Opal.yield1($yield, self.$__send__(id).$keys()); + }, 1); + + $def(self, '$each_option', function $$each_option() { + var block = $$each_option.$$p || nil, self = this; + + delete $$each_option.$$p; + + ; + return $send(self.$list(), 'each', [], block.$to_proc()); + }, 0); + + $def(self, '$summarize', function $$summarize($a) { + var block = $$summarize.$$p || nil, $post_args, args, self = this, sum = nil; + + delete $$summarize.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + sum = []; + $send(self.$list(), 'reverse_each', [], function $$20(opt){var s = nil; + + + + if (opt == null) opt = nil;; + if ($truthy(opt['$respond_to?']("summarize"))) { + + s = []; + $send(opt, 'summarize', $to_a(args), function $$21(l){ + + + if (l == null) l = nil;; + return s['$<<'](l);}, 1); + return sum.$concat(s.$reverse()); + } else if (($not(opt) || ($truthy(opt['$empty?']())))) { + return sum['$<<']("") + } else if ($truthy(opt['$respond_to?']("each_line"))) { + return sum.$concat([].concat($to_a(opt.$each_line())).$reverse()) + } else { + return sum.$concat([].concat($to_a(opt.$each())).$reverse()) + };}, 1); + return $send(sum, 'reverse_each', [], block.$to_proc()); + }, -1); + + $def(self, '$add_banner', function $$add_banner(to) { + var self = this; + + + $send(self.$list(), 'each', [], function $$22(opt){ + + + if (opt == null) opt = nil;; + if ($truthy(opt['$respond_to?']("add_banner"))) { + return opt.$add_banner(to) + } else { + return nil + };}, 1); + return to; + }, 1); + return $def(self, '$compsys', function $$compsys($a) { + var block = $$compsys.$$p || nil, $post_args, args, self = this; + + delete $$compsys.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$list(), 'each', [], function $$23(opt){ + + + if (opt == null) opt = nil;; + if ($truthy(opt['$respond_to?']("compsys"))) { + return $send(opt, 'compsys', $to_a(args), block.$to_proc()) + } else { + return nil + };}, 1); + }, -1); + })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'CompletingHash'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + self.$include($$('Completion')); + return $def(self, '$match', function $$match(key) {try { + + var $a, $b, self = this, values = nil; + + + $b = $send(self, 'fetch', [key], function $$24(){var self = $$24.$$s == null ? this : $$24.$$s; + + return self.$raise($$('AmbiguousArgument'), $send(self, 'catch', ["ambiguous"], function $$25(){var self = $$25.$$s == null ? this : $$25.$$s; + + Opal.ret(self.$complete(key))}, {$$arity: 0, $$s: self}))}, {$$arity: 0, $$s: self}), $a = $to_ary($b), (values = $slice.call($a, 0)), $b; + return [key].concat($to_a(values)); + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, 1); + })($nesting[0], $$('Hash'), $nesting); + $const_set($nesting[0], 'ArgumentStyle', $hash2([], {})); + $send($$('NoArgument'), 'each', [], function $OptionParser$26(el){var $writer = nil; + + + + if (el == null) el = nil;; + $writer = [el, $$$($$('Switch'), 'NoArgument')]; + $send($$('ArgumentStyle'), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + $send($$('RequiredArgument'), 'each', [], function $OptionParser$27(el){var $writer = nil; + + + + if (el == null) el = nil;; + $writer = [el, $$$($$('Switch'), 'RequiredArgument')]; + $send($$('ArgumentStyle'), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + $send($$('OptionalArgument'), 'each', [], function $OptionParser$28(el){var $writer = nil; + + + + if (el == null) el = nil;; + $writer = [el, $$$($$('Switch'), 'OptionalArgument')]; + $send($$('ArgumentStyle'), '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + $$('ArgumentStyle').$freeze(); + $const_set($nesting[0], 'DefaultList', $$('List').$new()); + + $writer = ["-", $send($$$($$('Switch'), 'NoArgument'), 'new', [], function $OptionParser$29(){ + return nil}, 0)]; + $send($$('DefaultList').$short(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = ["", $send($$$($$('Switch'), 'NoArgument'), 'new', [], function $OptionParser$30(){var self = $OptionParser$30.$$s == null ? this : $OptionParser$30.$$s; + + return self.$throw("terminate")}, {$$arity: 0, $$s: self})]; + $send($$('DefaultList').$long(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + $const_set($nesting[0], 'COMPSYS_HEADER', "\n" + "typeset -A opt_args\n" + "local context state line\n" + "\n" + "_arguments -s -S \\\n"); + + $def(self, '$compsys', function $$compsys(to, name) { + var self = this; + if ($gvars["0"] == null) $gvars["0"] = nil; + + + + if (name == null) name = $$('File').$basename($gvars["0"]);; + to['$<<']("#compdef " + (name) + "\n"); + to['$<<']($$('COMPSYS_HEADER')); + $send(self, 'visit', ["compsys", $hash2([], {}), $hash2([], {})], function $$31(o, d){ + + + if (o == null) o = nil;; + + if (d == null) d = nil;; + return to['$<<'](" \"" + (o) + "[" + (d.$gsub(/[\"\[\]]/, "\\\\\\&")) + "]\" \\\n");}, 2); + return to['$<<'](" '*:file:_files' && return 0\n"); + }, -2); + $const_set($nesting[0], 'Officious', $hash2([], {})); + + $writer = ["help", $send(self, 'proc', [], function $OptionParser$32(parser){var self = $OptionParser$32.$$s == null ? this : $OptionParser$32.$$s; + + + + if (parser == null) parser = nil;; + return $send($$$($$('Switch'), 'NoArgument'), 'new', [], function $$33(arg){var self = $$33.$$s == null ? this : $$33.$$s; + + + + if (arg == null) arg = nil;; + self.$puts(parser.$help()); + return self.$exit();}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self})]; + $send($$('Officious'), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = ["*-completion-bash", $send(self, 'proc', [], function $OptionParser$34(parser){var self = $OptionParser$34.$$s == null ? this : $OptionParser$34.$$s; + + + + if (parser == null) parser = nil;; + return $send($$$($$('Switch'), 'RequiredArgument'), 'new', [], function $$35(arg){var self = $$35.$$s == null ? this : $$35.$$s; + + + + if (arg == null) arg = nil;; + self.$puts(parser.$candidate(arg)); + return self.$exit();}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self})]; + $send($$('Officious'), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = ["*-completion-zsh", $send(self, 'proc', [], function $OptionParser$36(parser){var self = $OptionParser$36.$$s == null ? this : $OptionParser$36.$$s; + + + + if (parser == null) parser = nil;; + return $send($$$($$('Switch'), 'OptionalArgument'), 'new', [], function $$37(arg){var self = $$37.$$s == null ? this : $$37.$$s; + + + + if (arg == null) arg = nil;; + parser.$compsys($$('STDOUT'), arg); + return self.$exit();}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self})]; + $send($$('Officious'), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = ["version", $send(self, 'proc', [], function $OptionParser$38(parser){var self = $OptionParser$38.$$s == null ? this : $OptionParser$38.$$s; + + + + if (parser == null) parser = nil;; + return $send($$$($$('Switch'), 'OptionalArgument'), 'new', [], function $$39(pkg){var self = $$39.$$s == null ? this : $$39.$$s, $ret_or_1 = nil, v = nil; + + + + if (pkg == null) pkg = nil;; + if ($truthy(pkg)) { + + + var $no_errors = true;try { + self.$require("optparse/version") + } catch ($err) { + $no_errors = false; + if (Opal.rescue($err, [$$('LoadError')])) { + try { + nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + }finally { + if ($no_errors) { + + if ($truthy(($ret_or_1 = $send(self, 'show_version', $to_a(pkg.$split(/,/)))))) { + $ret_or_1 + } else { + self.$abort("" + (parser.$program_name()) + ": no version found in package " + (pkg)) + }; + self.$exit(); + }}; + }; + if ($truthy(($ret_or_1 = (v = parser.$ver())))) { + $ret_or_1 + } else { + self.$abort("" + (parser.$program_name()) + ": version unknown") + }; + self.$puts(v); + return self.$exit();}, {$$arity: 1, $$s: self});}, {$$arity: 1, $$s: self})]; + $send($$('Officious'), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + $defs(self, '$with', function $OptionParser_with$40($a) { + var block = $OptionParser_with$40.$$p || nil, $post_args, args, self = this, opts = nil; + + delete $OptionParser_with$40.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + opts = $send(self, 'new', $to_a(args)); + $send(opts, 'instance_eval', [], block.$to_proc()); + return opts; + }, -1); + $defs(self, '$inc', function $$inc(arg, default$) { + var $ret_or_1 = nil; + + + + if (default$ == null) default$ = nil;; + if ($eqeqeq($$('Integer'), ($ret_or_1 = arg))) { + return arg['$nonzero?']() + } else if ($eqeqeq(nil, $ret_or_1)) { + return $rb_plus(default$.$to_i(), 1) + } else { + return nil + }; + }, -2); + + $def(self, '$inc', function $$inc($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$class(), 'inc', $to_a(args)); + }, -1); + + $def(self, '$initialize', function $$initialize(banner, width, indent) { + var $yield = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + + if (banner == null) banner = nil;; + + if (width == null) width = 32;; + + if (indent == null) indent = $rb_times(" ", 4);; + self.stack = [$$('DefaultList'), $$('List').$new(), $$('List').$new()]; + self.program_name = nil; + self.banner = banner; + self.summary_width = width; + self.summary_indent = indent; + self.default_argv = $$('ARGV'); + self.require_exact = false; + self.$add_officious(); + if (($yield !== nil)) { + return Opal.yield1($yield, self); + } else { + return nil + }; + }, -1); + + $def(self, '$add_officious', function $$add_officious() { + var self = this, list = nil; + + + list = self.$base(); + return $send($$('Officious'), 'each', [], function $$41(opt, block){var self = $$41.$$s == null ? this : $$41.$$s, $logical_op_recvr_tmp_1 = nil, $ret_or_1 = nil, $writer = nil; + + + + if (opt == null) opt = nil;; + + if (block == null) block = nil;; + $logical_op_recvr_tmp_1 = list.$long(); + if ($truthy(($ret_or_1 = $logical_op_recvr_tmp_1['$[]'](opt)))) { + return $ret_or_1 + } else { + + $writer = [opt, block.$call(self)]; + $send($logical_op_recvr_tmp_1, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + };}, {$$arity: 2, $$s: self}); + }, 0); + + $def(self, '$terminate', function $$terminate(arg) { + var self = this; + + + + if (arg == null) arg = nil;; + return self.$class().$terminate(arg); + }, -1); + $defs(self, '$terminate', function $$terminate(arg) { + var self = this; + + + + if (arg == null) arg = nil;; + return self.$throw("terminate", arg); + }, -1); + self.stack = [$$('DefaultList')]; + $defs(self, '$top', function $$top() { + + return $$('DefaultList') + }, 0); + + $def(self, '$accept', function $$accept($a) { + var blk = $$accept.$$p || nil, $post_args, args, self = this; + + delete $$accept.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$top(), 'accept', $to_a(args), blk.$to_proc()); + }, -1); + $defs(self, '$accept', function $$accept($a) { + var blk = $$accept.$$p || nil, $post_args, args, self = this; + + delete $$accept.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$top(), 'accept', $to_a(args), blk.$to_proc()); + }, -1); + + $def(self, '$reject', function $$reject($a) { + var blk = $$reject.$$p || nil, $post_args, args, self = this; + + delete $$reject.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$top(), 'reject', $to_a(args), blk.$to_proc()); + }, -1); + $defs(self, '$reject', function $$reject($a) { + var blk = $$reject.$$p || nil, $post_args, args, self = this; + + delete $$reject.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$top(), 'reject', $to_a(args), blk.$to_proc()); + }, -1); + self.$attr_writer("banner"); + self.$attr_writer("program_name"); + self.$attr_accessor("summary_width"); + self.$attr_accessor("summary_indent"); + self.$attr_accessor("default_argv"); + self.$attr_accessor("require_exact"); + + $def(self, '$banner', function $$banner() { + var self = this; + + + if (!$truthy(self.banner)) { + + self.banner = ((("Usage: ") + (self.$program_name())) + " [options]")['$+@'](); + self.$visit("add_banner", self.banner); + }; + return self.banner; + }, 0); + + $def(self, '$program_name', function $$program_name() { + var self = this, $ret_or_1 = nil; + if ($gvars["0"] == null) $gvars["0"] = nil; + + if ($truthy(($ret_or_1 = self.program_name))) { + return $ret_or_1 + } else { + return $$('File').$basename($gvars["0"], ".*") + } + }, 0); + $alias(self, "set_banner", "banner="); + $alias(self, "set_program_name", "program_name="); + $alias(self, "set_summary_width", "summary_width="); + $alias(self, "set_summary_indent", "summary_indent="); + self.$attr_writer("version"); + self.$attr_writer("release"); + + $def(self, '$version', function $$version() { + var $a, $b, self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = (($a = self['version'], $a != null && $a !== nil) ? 'instance-variable' : nil))) ? (self.version) : ($ret_or_2))))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_2 = (($b = $$$('::', 'Version', 'skip_raise')) ? 'constant' : nil)))) { + return $$$('Version') + } else { + return $ret_or_2 + }; + } + }, 0); + + $def(self, '$release', function $$release() { + var $a, $b, $c, self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = (($a = self['release'], $a != null && $a !== nil) ? 'instance-variable' : nil))) ? (self.release) : ($ret_or_3)))) ? ($ret_or_2) : (($truthy(($ret_or_3 = (($b = $$$('::', 'Release', 'skip_raise')) ? 'constant' : nil))) ? ($$$('Release')) : ($ret_or_3))))))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_2 = (($c = $$$('::', 'RELEASE', 'skip_raise')) ? 'constant' : nil)))) { + return $$$('RELEASE') + } else { + return $ret_or_2 + }; + } + }, 0); + + $def(self, '$ver', function $$ver() { + var self = this, v = nil, str = nil; + + if ($truthy((v = self.$version()))) { + + str = ((("" + (self.$program_name())) + " ") + ([v].$join(".")))['$+@'](); + if ($truthy((v = self.$release()))) { + str['$<<'](" (" + (v) + ")") + }; + return str; + } else { + return nil + } + }, 0); + + $def(self, '$warn', function $$warn(mesg) { + var $yield = $$warn.$$p || nil, self = this; + if ($gvars["!"] == null) $gvars["!"] = nil; + + delete $$warn.$$p; + + + if (mesg == null) mesg = $gvars["!"];; + return $send2(self, $find_super(self, 'warn', $$warn, false, true), 'warn', ["" + (self.$program_name()) + ": " + (mesg)], null); + }, -1); + + $def(self, '$abort', function $$abort(mesg) { + var $yield = $$abort.$$p || nil, self = this; + if ($gvars["!"] == null) $gvars["!"] = nil; + + delete $$abort.$$p; + + + if (mesg == null) mesg = $gvars["!"];; + return $send2(self, $find_super(self, 'abort', $$abort, false, true), 'abort', ["" + (self.$program_name()) + ": " + (mesg)], null); + }, -1); + + $def(self, '$top', function $$top() { + var self = this; + + return self.stack['$[]'](-1) + }, 0); + + $def(self, '$base', function $$base() { + var self = this; + + return self.stack['$[]'](1) + }, 0); + + $def(self, '$new', function $OptionParser_new$42() { + var $yield = $OptionParser_new$42.$$p || nil, self = this; + + delete $OptionParser_new$42.$$p; + + self.stack.$push($$('List').$new()); + if (($yield !== nil)) { + return Opal.yield1($yield, self); + } else { + return self + }; + }, 0); + + $def(self, '$remove', function $$remove() { + var self = this; + + return self.stack.$pop() + }, 0); + + $def(self, '$summarize', function $$summarize(to, width, max, indent) { + var blk = $$summarize.$$p || nil, self = this, nl = nil, $ret_or_1 = nil; + + delete $$summarize.$$p; + + ; + + if (to == null) to = [];; + + if (width == null) width = self.summary_width;; + + if (max == null) max = $rb_minus(width, 1);; + + if (indent == null) indent = self.summary_indent;; + nl = "\n"; + blk = ($truthy(($ret_or_1 = blk)) ? ($ret_or_1) : ($send(self, 'proc', [], function $$43(l){ + + + if (l == null) l = nil;; + return to['$<<'](($truthy(l.$index(nl, -1)) ? (l) : ($rb_plus(l, nl))));}, 1))); + $send(self, 'visit', ["summarize", $hash2([], {}), $hash2([], {}), width, max, indent], blk.$to_proc()); + return to; + }, -1); + + $def(self, '$help', function $$help() { + var self = this; + + return self.$summarize([self.$banner().$to_s().$sub(/\n?$/, "\n")]).$join() + }, 0); + $alias(self, "to_s", "help"); + + $def(self, '$to_a', function $$to_a() { + var self = this; + + return self.$summarize([self.$banner().$to_s().$split(/^/)]).$join() + }, 0); + + $def(self, '$notwice', function $$notwice(obj, prv, msg) { + var self = this; + + + if (!($not(prv) || ($eqeq(prv, obj)))) { + self.$raise($$('ArgumentError'), "argument " + (msg) + " given twice: " + (obj), $$('ParseError').$filter_backtrace(self.$caller(2))) + }; + return obj; + }, 3); + self.$private("notwice"); + $const_set($nesting[0], 'SPLAT_PROC', $send(self, 'proc', [], function $OptionParser$44($a){var $post_args, a; + + + + $post_args = Opal.slice.call(arguments); + + a = $post_args;; + if ($truthy($rb_le(a.$length(), 1))) { + return a.$first() + } else { + return a + };}, -1)); + + $def(self, '$make_switch', function $$make_switch(opts, block) { + var $a, $b, self = this, short$ = nil, long$ = nil, nolong = nil, style = nil, pattern = nil, conv = nil, not_pattern = nil, not_conv = nil, not_style = nil, ldesc = nil, sdesc = nil, desc = nil, arg = nil, default_style = nil, default_pattern = nil, klass = nil, q = nil, a = nil, has_arg = nil, $ret_or_2 = nil, s = nil; + + + + if (block == null) block = nil;; + $a = [[], [], []], (short$ = $a[0]), (long$ = $a[1]), (nolong = $a[2]), (style = ($a[3] == null ? nil : $a[3])), (pattern = ($a[4] == null ? nil : $a[4])), (conv = ($a[5] == null ? nil : $a[5])), (not_pattern = ($a[6] == null ? nil : $a[6])), (not_conv = ($a[7] == null ? nil : $a[7])), (not_style = ($a[8] == null ? nil : $a[8])), $a; + $a = [[], [], []], (ldesc = $a[0]), (sdesc = $a[1]), (desc = $a[2]), (arg = ($a[3] == null ? nil : $a[3])), $a; + default_style = $$$($$('Switch'), 'NoArgument'); + default_pattern = nil; + klass = nil; + $b = nil, $a = $to_ary($b), (q = ($a[0] == null ? nil : $a[0])), (a = ($a[1] == null ? nil : $a[1])), $b; + has_arg = false; + $send(opts, 'each', [], function $$45(o){var $c, $d, self = $$45.$$s == null ? this : $$45.$$s, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + + + if (o == null) o = nil;; + if ($truthy($send(self, 'search', ["atype", o], function $$46(pat, c){var $c, self = $$46.$$s == null ? this : $$46.$$s; + + + + if (pat == null) pat = nil;; + + if (c == null) c = nil;; + klass = self.$notwice(o, klass, "type"); + if (($truthy(not_style) && ($neqeq(not_style, $$$($$('Switch'), 'NoArgument'))))) { + return $c = [pat, c], (not_pattern = $c[0]), (not_conv = $c[1]), $c + } else { + return $c = [pat, c], (default_pattern = $c[0]), (conv = $c[1]), $c + };}, {$$arity: 2, $$s: self}))) { + return nil; + }; + if (($not(($truthy(($ret_or_1 = $$('String')['$==='](o))) ? ($ret_or_1) : ($$('Symbol')['$==='](o)))) && ($truthy(o['$respond_to?']("match"))))) { + + pattern = self.$notwice(o, pattern, "pattern"); + if ($truthy(pattern['$respond_to?']("convert"))) { + conv = pattern.$method("convert").$to_proc() + } else { + conv = $$('SPLAT_PROC') + }; + return nil;; + }; + if (($eqeqeq($$('Proc'), ($ret_or_1 = o)) || ($eqeqeq($$('Method'), $ret_or_1)))) { + return (block = self.$notwice(o, block, "block")) + } else if (($eqeqeq($$('Array'), $ret_or_1) || ($eqeqeq($$('Hash'), $ret_or_1)))) { + + if (!$eqeqeq($$('CompletingHash'), ($ret_or_2 = pattern))) { + if ($eqeqeq(nil, $ret_or_2)) { + + pattern = $$('CompletingHash').$new(); + if ($truthy(pattern['$respond_to?']("convert"))) { + conv = pattern.$method("convert").$to_proc() + }; + } else { + self.$raise($$('ArgumentError'), "argument pattern given twice") + } + }; + return $send(o, 'each', [], function $$47(pat, $c){var $post_args, v, $writer = nil; + + + + if (pat == null) pat = nil;; + + $post_args = Opal.slice.call(arguments, 1); + + v = $post_args;; + $writer = [pat, $send(v, 'fetch', [0], function $$48(){ + return pat}, 0)]; + $send(pattern, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, -2); + } else if ($eqeqeq($$('Module'), $ret_or_1)) { + return self.$raise($$('ArgumentError'), "unsupported argument type: " + (o), $$('ParseError').$filter_backtrace(self.$caller(4))) + } else if ($truthy($send($$('ArgumentStyle').$keys(), 'any?', [], function $$49($ret_or_2){ + + + if ($ret_or_2 == null) $ret_or_2 = nil;; + return $ret_or_2['$===']($ret_or_1);}, 1))) { + return (style = self.$notwice($$('ArgumentStyle')['$[]'](o), style, "style")) + } else if ($eqeqeq(/^--no-([^\[\]=\s]*)(.+)?/, $ret_or_1)) { + + $c = [$$('Regexp').$last_match(1), $$('Regexp').$last_match(2)], (q = $c[0]), (a = $c[1]), $c; + o = self.$notwice(($truthy(a) ? ($$('Object')) : ($$('TrueClass'))), klass, "type"); + if (!$truthy(not_style)) { + $d = self.$search("atype", o), $c = $to_ary($d), (not_pattern = ($c[0] == null ? nil : $c[0])), (not_conv = ($c[1] == null ? nil : $c[1])), $d + }; + if ($truthy(a)) { + not_style = ($truthy(($ret_or_3 = not_style)) ? ($ret_or_3) : (default_style)).$guess((arg = a)) + }; + default_style = $$$($$('Switch'), 'NoArgument'); + if (!$truthy(default_pattern)) { + $d = self.$search("atype", $$('FalseClass')), $c = $to_ary($d), (default_pattern = ($c[0] == null ? nil : $c[0])), (conv = ($c[1] == null ? nil : $c[1])), $d + }; + ldesc['$<<']("--no-" + (q)); + q = q.$downcase().$tr("_", "-"); + long$['$<<']("no-" + (q)); + return nolong['$<<'](q); + } else if ($eqeqeq(/^--\[no-\]([^\[\]=\s]*)(.+)?/, $ret_or_1)) { + + $c = [$$('Regexp').$last_match(1), $$('Regexp').$last_match(2)], (q = $c[0]), (a = $c[1]), $c; + o = self.$notwice(($truthy(a) ? ($$('Object')) : ($$('TrueClass'))), klass, "type"); + if ($truthy(a)) { + + default_style = default_style.$guess((arg = a)); + if (!$truthy(default_pattern)) { + $d = self.$search("atype", o), $c = $to_ary($d), (default_pattern = ($c[0] == null ? nil : $c[0])), (conv = ($c[1] == null ? nil : $c[1])), $d + }; + }; + ldesc['$<<']("--[no-]" + (q)); + o = q.$downcase().$tr("_", "-"); + long$['$<<'](o); + if (!$truthy(not_style)) { + $d = self.$search("atype", $$('FalseClass')), $c = $to_ary($d), (not_pattern = ($c[0] == null ? nil : $c[0])), (not_conv = ($c[1] == null ? nil : $c[1])), $d + }; + not_style = $$$($$('Switch'), 'NoArgument'); + return nolong['$<<']("no-" + (o)); + } else if ($eqeqeq(/^--([^\[\]=\s]*)(.+)?/, $ret_or_1)) { + + $c = [$$('Regexp').$last_match(1), $$('Regexp').$last_match(2)], (q = $c[0]), (a = $c[1]), $c; + if ($truthy(a)) { + + o = self.$notwice($$('NilClass'), klass, "type"); + default_style = default_style.$guess((arg = a)); + if (!$truthy(default_pattern)) { + $d = self.$search("atype", o), $c = $to_ary($d), (default_pattern = ($c[0] == null ? nil : $c[0])), (conv = ($c[1] == null ? nil : $c[1])), $d + }; + }; + ldesc['$<<']("--" + (q)); + o = q.$downcase().$tr("_", "-"); + return long$['$<<'](o); + } else if ($eqeqeq(/^-(\[\^?\]?(?:[^\\\]]|\\.)*\])(.+)?/, $ret_or_1)) { + + $c = [$$('Regexp').$last_match(1), $$('Regexp').$last_match(2)], (q = $c[0]), (a = $c[1]), $c; + o = self.$notwice($$('Object'), klass, "type"); + if ($truthy(a)) { + + default_style = default_style.$guess((arg = a)); + if (!$truthy(default_pattern)) { + $d = self.$search("atype", o), $c = $to_ary($d), (default_pattern = ($c[0] == null ? nil : $c[0])), (conv = ($c[1] == null ? nil : $c[1])), $d + }; + } else { + has_arg = true + }; + sdesc['$<<']("-" + (q)); + return short$['$<<']($$('Regexp').$new(q)); + } else if ($eqeqeq(/^-(.)(.+)?/, $ret_or_1)) { + + $c = [$$('Regexp').$last_match(1), $$('Regexp').$last_match(2)], (q = $c[0]), (a = $c[1]), $c; + if ($truthy(a)) { + + o = self.$notwice($$('NilClass'), klass, "type"); + default_style = default_style.$guess((arg = a)); + if (!$truthy(default_pattern)) { + $d = self.$search("atype", o), $c = $to_ary($d), (default_pattern = ($c[0] == null ? nil : $c[0])), (conv = ($c[1] == null ? nil : $c[1])), $d + }; + }; + sdesc['$<<']("-" + (q)); + return short$['$<<'](q); + } else if ($eqeqeq(/^=/, $ret_or_1)) { + + style = self.$notwice(default_style.$guess((arg = o)), style, "style"); + if ($truthy(default_pattern)) { + return nil + } else { + return $d = self.$search("atype", $$('Object')), $c = $to_ary($d), (default_pattern = ($c[0] == null ? nil : $c[0])), (conv = ($c[1] == null ? nil : $c[1])), $d + }; + } else { + return desc.$push(o) + };}, {$$arity: 1, $$s: self}); + if (!$truthy(default_pattern)) { + $b = self.$search("atype", default_style.$pattern()), $a = $to_ary($b), (default_pattern = ($a[0] == null ? nil : $a[0])), (conv = ($a[1] == null ? nil : $a[1])), $b + }; + if ($not(($truthy(($ret_or_2 = short$['$empty?']())) ? (long$['$empty?']()) : ($ret_or_2)))) { + + if (($truthy(has_arg) && ($eqeq(default_style, $$$($$('Switch'), 'NoArgument'))))) { + default_style = $$$($$('Switch'), 'RequiredArgument') + }; + s = ($truthy(($ret_or_2 = style)) ? ($ret_or_2) : (default_style)).$new(($truthy(($ret_or_2 = pattern)) ? ($ret_or_2) : (default_pattern)), conv, sdesc, ldesc, arg, desc, block); + } else if ($not(block)) { + + if (($truthy(style) || ($truthy(pattern)))) { + self.$raise($$('ArgumentError'), "no switch given", $$('ParseError').$filter_backtrace(self.$caller())) + }; + s = desc; + } else { + + short$['$<<'](pattern); + s = ($truthy(($ret_or_2 = style)) ? ($ret_or_2) : (default_style)).$new(pattern, conv, nil, nil, arg, desc, block); + }; + return [s, short$, long$, ($truthy(not_style) ? (not_style.$new(not_pattern, not_conv, sdesc, ldesc, nil, desc, block)) : nil), nolong]; + }, -2); + + $def(self, '$define', function $$define($a) { + var block = $$define.$$p || nil, $post_args, opts, self = this, sw = nil; + + delete $$define.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + opts = $post_args;; + $send(self.$top(), 'append', $to_a((sw = self.$make_switch(opts, block)))); + return sw['$[]'](0); + }, -1); + + $def(self, '$on', function $$on($a) { + var block = $$on.$$p || nil, $post_args, opts, self = this; + + delete $$on.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + opts = $post_args;; + $send(self, 'define', $to_a(opts), block.$to_proc()); + return self; + }, -1); + $alias(self, "def_option", "define"); + + $def(self, '$define_head', function $$define_head($a) { + var block = $$define_head.$$p || nil, $post_args, opts, self = this, sw = nil; + + delete $$define_head.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + opts = $post_args;; + $send(self.$top(), 'prepend', $to_a((sw = self.$make_switch(opts, block)))); + return sw['$[]'](0); + }, -1); + + $def(self, '$on_head', function $$on_head($a) { + var block = $$on_head.$$p || nil, $post_args, opts, self = this; + + delete $$on_head.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + opts = $post_args;; + $send(self, 'define_head', $to_a(opts), block.$to_proc()); + return self; + }, -1); + $alias(self, "def_head_option", "define_head"); + + $def(self, '$define_tail', function $$define_tail($a) { + var block = $$define_tail.$$p || nil, $post_args, opts, self = this, sw = nil; + + delete $$define_tail.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + opts = $post_args;; + $send(self.$base(), 'append', $to_a((sw = self.$make_switch(opts, block)))); + return sw['$[]'](0); + }, -1); + + $def(self, '$on_tail', function $$on_tail($a) { + var block = $$on_tail.$$p || nil, $post_args, opts, self = this; + + delete $$on_tail.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + opts = $post_args;; + $send(self, 'define_tail', $to_a(opts), block.$to_proc()); + return self; + }, -1); + $alias(self, "def_tail_option", "define_tail"); + + $def(self, '$separator', function $$separator(string) { + var self = this; + + return self.$top().$append(string, nil, nil) + }, 1); + + $def(self, '$order', function $$order($a, $b) { + var nonopt = $$order.$$p || nil, $post_args, $kwargs, argv, into, self = this; + + delete $$order.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + argv = $post_args;; + + into = $kwargs.$$smap["into"]; + if (into == null) into = nil; + if (($eqeq(argv.$size(), 1) && ($eqeqeq($$('Array'), argv['$[]'](0))))) { + argv = argv['$[]'](0).$dup() + }; + return $send(self, 'order!', [argv, $hash2(["into"], {"into": into})], nonopt.$to_proc()); + }, -1); + + $def(self, '$order!', function $OptionParser_order$excl$50($a, $b) { + var nonopt = $OptionParser_order$excl$50.$$p || nil, $post_args, $kwargs, argv, into, self = this, setter = nil; + + delete $OptionParser_order$excl$50.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) argv = $post_args.shift(); + if (argv == null) argv = self.$default_argv();; + + into = $kwargs.$$smap["into"]; + if (into == null) into = nil; + if ($truthy(into)) { + setter = $lambda(function $$51(name, val){var $writer = nil; + + + + if (name == null) name = nil;; + + if (val == null) val = nil;; + $writer = [name.$to_sym(), val]; + $send(into, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 2) + }; + return $send(self, 'parse_in_order', [argv, setter], nonopt.$to_proc()); + }, -1); + + $def(self, '$parse_in_order', function $$parse_in_order(argv, setter) { + var nonopt = $$parse_in_order.$$p || nil, $a, $b, self = this, opt = nil, arg = nil, val = nil, rest = nil, $ret_or_2 = nil; + + delete $$parse_in_order.$$p; + + ; + + if (argv == null) argv = self.$default_argv();; + + if (setter == null) setter = nil;; + $b = nil, $a = $to_ary($b), (opt = ($a[0] == null ? nil : $a[0])), (arg = ($a[1] == null ? nil : $a[1])), (val = ($a[2] == null ? nil : $a[2])), (rest = ($a[3] == null ? nil : $a[3])), $b; + nonopt = ($truthy(($ret_or_2 = nonopt)) ? ($ret_or_2) : ($send(self, 'proc', [], function $$52(a){var self = $$52.$$s == null ? this : $$52.$$s; + + + + if (a == null) a = nil;; + return self.$throw("terminate", a);}, {$$arity: 1, $$s: self}))); + if ($truthy((arg = $send(self, 'catch', ["terminate"], function $$53(){var $c, $d, $e, self = $$53.$$s == null ? this : $$53.$$s, sw = nil, cb = nil, eq = nil, has_arg = nil, $ret_or_3 = nil; + if ($gvars["!"] == null) $gvars["!"] = nil; + + + while ($truthy((arg = argv.$shift()))) { + if ($eqeqeq(/^--([^=]*)(?:=(.*))?/m, ($ret_or_2 = arg))) { + + $d = [$$('Regexp').$last_match(1), $$('Regexp').$last_match(2)], (opt = $d[0]), (rest = $d[1]), $d; + opt = opt.$tr("_", "-"); + + try { + + $e = self.$complete("long", opt, true), $d = $to_ary($e), (sw = ($d[0] == null ? nil : $d[0])), $e; + if (($truthy(self.$require_exact()) && ($not(sw.$long()['$include?'](arg))))) { + self.$raise($$('InvalidOption'), arg) + }; + } catch ($err) { + if (Opal.rescue($err, [$$('ParseError')])) { + try { + self.$raise($gvars["!"].$set_option(arg, true)) + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + + try { + + $e = $send(sw, 'parse', [rest, argv], function $$54($f){var $post_args, exc, self = $$54.$$s == null ? this : $$54.$$s; + + + + $post_args = Opal.slice.call(arguments); + + exc = $post_args;; + return $send(self, 'raise', $to_a(exc));}, {$$arity: -1, $$s: self}), $d = $to_ary($e), (opt = ($d[0] == null ? nil : $d[0])), (cb = ($d[1] == null ? nil : $d[1])), (val = ($d[2] == null ? nil : $d[2])), $e; + if ($truthy(cb)) { + val = cb.$call(val) + }; + if ($truthy(setter)) { + setter.$call(sw.$switch_name(), val) + }; + } catch ($err) { + if (Opal.rescue($err, [$$('ParseError')])) { + try { + self.$raise($gvars["!"].$set_option(arg, rest)) + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + } else if ($eqeqeq(/^-(.)((=).*|.+)?/m, $ret_or_2)) { + + $d = [$$('Regexp').$last_match(3), $$('Regexp').$last_match(2), $$('Regexp').$last_match(1)], (eq = $d[0]), (rest = $d[1]), (opt = $d[2]), $d; + $d = [eq, rest], (has_arg = $d[0]), (val = $d[1]), $d; + + try { + + $e = self.$search("short", opt), $d = $to_ary($e), (sw = ($d[0] == null ? nil : $d[0])), $e; + if (!$truthy(sw)) { + + try { + + $e = self.$complete("short", opt), $d = $to_ary($e), (sw = ($d[0] == null ? nil : $d[0])), $e; + val = arg.$delete_prefix("-"); + has_arg = true; + } catch ($err) { + if (Opal.rescue($err, [$$('InvalidOption')])) { + try { + + if ($truthy(self.$require_exact())) { + self.$raise() + }; + $e = self.$complete("long", opt), $d = $to_ary($e), (sw = ($d[0] == null ? nil : $d[0])), $e; + eq = ($truthy(($ret_or_3 = eq)) ? ($ret_or_3) : (rest['$!']())); + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + }; + } catch ($err) { + if (Opal.rescue($err, [$$('ParseError')])) { + try { + self.$raise($gvars["!"].$set_option(arg, true)) + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + + + var $no_errors = true;try { + $e = $send(sw, 'parse', [val, argv], function $$55($f){var $post_args, exc, self = $$55.$$s == null ? this : $$55.$$s; + + + + $post_args = Opal.slice.call(arguments); + + exc = $post_args;; + if ($truthy(eq)) { + return $send(self, 'raise', $to_a(exc)) + } else { + return nil + };}, {$$arity: -1, $$s: self}), $d = $to_ary($e), (opt = ($d[0] == null ? nil : $d[0])), (cb = ($d[1] == null ? nil : $d[1])), (val = ($d[2] == null ? nil : $d[2])), $e + } catch ($err) { + $no_errors = false; + if (Opal.rescue($err, [$$('ParseError')])) { + try { + self.$raise($gvars["!"].$set_option(arg, $rb_gt(arg.$length(), 2))) + } finally { Opal.pop_exception(); } + } else { throw $err; } + }finally { + if ($no_errors) { + if ((($truthy(has_arg) && ($not(eq))) && ($eqeq(arg, "-" + (opt))))) { + self.$raise($$('InvalidOption'), arg) + } + }};; + + try { + + if (($truthy(opt) && (($not(rest) || ($neqeq((opt = opt.$sub(/^-*/, "-")), "-")))))) { + argv.$unshift(opt) + }; + if ($truthy(cb)) { + val = cb.$call(val) + }; + if ($truthy(setter)) { + setter.$call(sw.$switch_name(), val) + }; + } catch ($err) { + if (Opal.rescue($err, [$$('ParseError')])) { + try { + self.$raise($gvars["!"].$set_option(arg, $rb_gt(arg.$length(), 2))) + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + } else { + $send(self, 'catch', ["prune"], function $$56(){var self = $$56.$$s == null ? this : $$56.$$s; + + + $send(self, 'visit', ["each_option"], function $$57(sw0){ + + + if (sw0 == null) sw0 = nil;; + sw = sw0; + if (($eqeqeq($$('Switch'), sw) && ($truthy(sw['$match_nonswitch?'](arg))))) { + return sw.$block().$call(arg) + } else { + return nil + };}, 1); + return nonopt.$call(arg);}, {$$arity: 0, $$s: self}) + } + }; + return nil;}, {$$arity: 0, $$s: self})))) { + argv.$unshift(arg) + }; + $send(self, 'visit', ["search", "short", nil], function $$58(sw){ + + + if (sw == null) sw = nil;; + if ($truthy(sw.$pattern())) { + return nil + } else { + return $send(sw.$block(), 'call', $to_a(argv)) + };}, 1); + return argv; + }, -1); + self.$private("parse_in_order"); + + $def(self, '$permute', function $$permute($a, $b) { + var $post_args, $kwargs, argv, into, self = this; + + + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + argv = $post_args;; + + into = $kwargs.$$smap["into"]; + if (into == null) into = nil; + if (($eqeq(argv.$size(), 1) && ($eqeqeq($$('Array'), argv['$[]'](0))))) { + argv = argv['$[]'](0).$dup() + }; + return self['$permute!'](argv, $hash2(["into"], {"into": into})); + }, -1); + + $def(self, '$permute!', function $OptionParser_permute$excl$59($a, $b) { + var $post_args, $kwargs, argv, into, self = this, nonopts = nil, $writer = nil; + + + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) argv = $post_args.shift(); + if (argv == null) argv = self.$default_argv();; + + into = $kwargs.$$smap["into"]; + if (into == null) into = nil; + nonopts = []; + $send(self, 'order!', [argv, $hash2(["into"], {"into": into})], nonopts.$method("<<").$to_proc()); + + $writer = [0, 0, nonopts]; + $send(argv, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return argv; + }, -1); + + $def(self, '$parse', function $$parse($a, $b) { + var $post_args, $kwargs, argv, into, self = this; + + + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + argv = $post_args;; + + into = $kwargs.$$smap["into"]; + if (into == null) into = nil; + if (($eqeq(argv.$size(), 1) && ($eqeqeq($$('Array'), argv['$[]'](0))))) { + argv = argv['$[]'](0).$dup() + }; + return self['$parse!'](argv, $hash2(["into"], {"into": into})); + }, -1); + + $def(self, '$parse!', function $OptionParser_parse$excl$60($a, $b) { + var $post_args, $kwargs, argv, into, self = this; + + + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) argv = $post_args.shift(); + if (argv == null) argv = self.$default_argv();; + + into = $kwargs.$$smap["into"]; + if (into == null) into = nil; + if ($truthy($$('ENV')['$include?']("POSIXLY_CORRECT"))) { + return self['$order!'](argv, $hash2(["into"], {"into": into})) + } else { + return self['$permute!'](argv, $hash2(["into"], {"into": into})) + }; + }, -1); + + $def(self, '$getopts', function $$getopts($a) { + var $post_args, args, $b, self = this, argv = nil, single_options = nil, long_options = nil, result = nil; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + argv = ($eqeqeq($$('Array'), args.$first()) ? (args.$shift()) : (self.$default_argv())); + $b = [].concat($to_a(args)), (single_options = ($b[0] == null ? nil : $b[0])), (long_options = $slice.call($b, 1)), $b; + result = $hash2([], {}); + if ($truthy(single_options)) { + $send(single_options, 'scan', [/(.)(:)?/], function $$61(opt, val){var self = $$61.$$s == null ? this : $$61.$$s, $writer = nil; + + + + if (opt == null) opt = nil;; + + if (val == null) val = nil;; + if ($truthy(val)) { + + + $writer = [opt, nil]; + $send(result, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$define("-" + (opt) + " VAL"); + } else { + + + $writer = [opt, false]; + $send(result, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$define("-" + (opt)); + };}, {$$arity: 2, $$s: self}) + }; + $send(long_options, 'each', [], function $$62(arg){var $c, $d, self = $$62.$$s == null ? this : $$62.$$s, desc = nil, opt = nil, val = nil, $writer = nil, $ret_or_2 = nil; + + + + if (arg == null) arg = nil;; + $d = arg.$split(";", 2), $c = $to_ary($d), (arg = ($c[0] == null ? nil : $c[0])), (desc = ($c[1] == null ? nil : $c[1])), $d; + $d = arg.$split(":", 2), $c = $to_ary($d), (opt = ($c[0] == null ? nil : $c[0])), (val = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(val)) { + + + $writer = [opt, ($truthy(val['$empty?']()) ? (nil) : (val))]; + $send(result, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return $send(self, 'define', ["--" + (opt) + "=" + (($truthy(($ret_or_2 = result['$[]'](opt))) ? ($ret_or_2) : ("VAL")))].concat($to_a([desc].$compact()))); + } else { + + + $writer = [opt, false]; + $send(result, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return $send(self, 'define', ["--" + (opt)].concat($to_a([desc].$compact()))); + };}, {$$arity: 1, $$s: self}); + self.$parse_in_order(argv, result.$method("[]=")); + return result; + }, -1); + $defs(self, '$getopts', function $$getopts($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$new(), 'getopts', $to_a(args)); + }, -1); + + $def(self, '$visit', function $$visit(id, $a) { + var block = $$visit.$$p || nil, $post_args, args, self = this; + + delete $$visit.$$p; + + ; + + $post_args = Opal.slice.call(arguments, 1); + + args = $post_args;; + $send(self.stack, 'reverse_each', [], function $$63(el){ + + + if (el == null) el = nil;; + return $send(el, '__send__', [id].concat($to_a(args)), block.$to_proc());}, 1); + return nil; + }, -2); + self.$private("visit"); + + $def(self, '$search', function $$search(id, key) { + var $yield = $$search.$$p || nil, self = this, block_given = nil, retval = nil; + + delete $$search.$$p; + + block_given = ($yield !== nil); + retval = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(self, 'visit', ["search", id, key], function $$64(k){ + + + if (k == null) k = nil;; + retval = ($truthy(block_given) ? (Opal.yield1($yield, k)) : (k)); + + Opal.brk(nil, $brk);}, {$$arity: 1, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + return retval; + }, 2); + self.$private("search"); + + $def(self, '$complete', function $$complete(typ, opt, $a, $b) {try { + + var $post_args, icase, pat, self = this, retval = nil, ambiguous = nil, exc = nil; + + + + $post_args = Opal.slice.call(arguments, 2); + + if ($post_args.length > 0) icase = $post_args.shift(); + if (icase == null) icase = false;; + + pat = $post_args;; + if ($truthy(pat['$empty?']())) { + + retval = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(self, 'search', [typ, opt], function $$65(sw){ + + + if (sw == null) sw = nil;; + retval = [sw, opt]; + + Opal.brk(nil, $brk);}, {$$arity: 1, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + if ($truthy(retval)) { + return retval + }; + }; + ambiguous = (function(){var $brk = Opal.new_brk(); try {return $send(self, 'catch', ["ambiguous"], function $$66(){var self = $$66.$$s == null ? this : $$66.$$s; + + + retval = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(self, 'visit', ["complete", typ, opt, icase].concat($to_a(pat)), function $$67(o, $c){var $post_args, sw; + + + + if (o == null) o = nil;; + + $post_args = Opal.slice.call(arguments, 1); + + sw = $post_args;; + retval = sw; + + Opal.brk(nil, $brk);}, {$$arity: -2, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + if ($truthy(retval)) { + Opal.ret(retval) + } else { + return nil + };}, {$$arity: 0, $$s: self, $$brk: $brk}) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + exc = ($truthy(ambiguous) ? ($$('AmbiguousOption')) : ($$('InvalidOption'))); + return self.$raise(exc.$new(opt, $hash2(["additional"], {"additional": self.$method("additional_message").$curry()['$[]'](typ)}))); + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, -3); + self.$private("complete"); + + $def(self, '$additional_message', function $$additional_message(typ, opt) { + var $a, $b, self = this, all_candidates = nil, checker = nil; + + + if (!(($truthy(typ) && ($truthy(opt))) && ($truthy((($b = $$('DidYouMean', 'skip_raise')) && ($a = $$$($b, 'SpellChecker', 'skip_raise')) ? 'constant' : nil))))) { + return nil + }; + all_candidates = []; + $send(self, 'visit', ["get_candidates", typ], function $$68(candidates){ + + + if (candidates == null) candidates = nil;; + return all_candidates.$concat(candidates);}, 1); + $send(all_candidates, 'select!', [], function $$69(cand){ + + + if (cand == null) cand = nil;; + return cand['$is_a?']($$('String'));}, 1); + checker = $$$($$('DidYouMean'), 'SpellChecker').$new($hash2(["dictionary"], {"dictionary": all_candidates})); + return $$('DidYouMean').$formatter().$message_for(all_candidates['$&'](checker.$correct(opt))); + }, 2); + + $def(self, '$candidate', function $$candidate(word) { + var $a, $b, self = this, list = nil, $ret_or_2 = nil, long$ = nil, short$ = nil, arg = nil, argpat = nil, pat = nil; + + + list = []; + if ($eqeqeq("-", ($ret_or_2 = word))) { + long$ = (short$ = true) + } else if ($eqeqeq(/^--/, $ret_or_2)) { + + $b = word.$split(/=/, 2), $a = $to_ary($b), (word = ($a[0] == null ? nil : $a[0])), (arg = ($a[1] == null ? nil : $a[1])), $b; + if (($truthy(arg) && ($not(arg['$empty?']())))) { + argpat = $$('Completion').$regexp(arg, false) + }; + long$ = true; + } else if ($eqeqeq(/^-/, $ret_or_2)) { + short$ = true + } else { + nil + }; + pat = $$('Completion').$regexp(word, long$); + $send(self, 'visit', ["each_option"], function $$70(opt){var opts = nil; + + + + if (opt == null) opt = nil;; + if (!$eqeqeq($$('Switch'), opt)) { + return nil; + }; + opts = $rb_plus(($truthy(long$) ? (opt.$long()) : ([])), ($truthy(short$) ? (opt.$short()) : ([]))); + if ($truthy(pat)) { + opts = $send($send($$('Completion'), 'candidate', [word, true, pat], opts.$method("each").$to_proc()), 'map', [], "first".$to_proc()) + }; + if ($truthy(/^=/['$=~'](opt.$arg()))) { + + $send(opts, 'map!', [], function $$71(sw){ + + + if (sw == null) sw = nil;; + return $rb_plus(sw, "=");}, 1); + if (($truthy(arg) && ($eqeqeq($$('CompletingHash'), opt.$pattern())))) { + if ($truthy((opts = opt.$pattern().$candidate(arg, false, argpat)))) { + $send(opts, 'map!', [], "last".$to_proc()) + } + }; + }; + return list.$concat(opts);}, 1); + return list; + }, 1); + + $def(self, '$load', function $$load(filename) { + var $a, self = this, basename = nil; + if ($gvars["0"] == null) $gvars["0"] = nil; + + + + if (filename == null) filename = nil;; + if (!$truthy(filename)) { + + basename = $$('File').$basename($gvars["0"], ".*"); + + try { + if ($truthy(self.$load($$('File').$expand_path(basename, "~/.options")))) { + return true + } + } catch ($err) { + if (Opal.rescue($err, [$$('StandardError')])) { + try { + nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + basename['$<<'](".options"); + return $send([$$('ENV')['$[]']("XDG_CONFIG_HOME"), "~/.config"].concat($to_a(($a = $$('ENV')['$[]']("XDG_CONFIG_DIRS"), ($a === nil || $a == null) ? nil : $send($a, 'split', [$$$($$('File'), 'PATH_SEPARATOR')])))).concat(["~/config/settings"]), 'any?', [], function $$72(dir){var self = $$72.$$s == null ? this : $$72.$$s; + + + + if (dir == null) dir = nil;; + if (($not(dir) || ($truthy(dir['$empty?']())))) { + return nil; + }; + + try { + return self.$load($$('File').$expand_path(basename, dir)) + } catch ($err) { + if (Opal.rescue($err, [$$('StandardError')])) { + try { + return nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + };;}, {$$arity: 1, $$s: self}); + }; + + try { + + $send(self, 'parse', $to_a($send($$('IO').$readlines(filename), 'each', [], "chomp!".$to_proc()))); + return true; + } catch ($err) { + if (Opal.rescue($err, [$$$($$('Errno'), 'ENOENT'), $$$($$('Errno'), 'ENOTDIR')])) { + try { + return false + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + }, -1); + + $def(self, '$environment', function $$environment(env) { + var self = this, $ret_or_2 = nil, $ret_or_3 = nil; + if ($gvars["0"] == null) $gvars["0"] = nil; + + + + if (env == null) env = $$('File').$basename($gvars["0"], ".*");; + if ($truthy(($ret_or_2 = (env = ($truthy(($ret_or_3 = $$('ENV')['$[]'](env))) ? ($ret_or_3) : ($$('ENV')['$[]'](env.$upcase()))))))) { + $ret_or_2 + } else { + return nil + }; + self.$require("shellwords"); + return $send(self, 'parse', $to_a($$('Shellwords').$shellwords(env))); + }, -1); + $send(self, 'accept', [$$('Object')], function $OptionParser$73(s){var $ret_or_2 = nil; + + + + if (s == null) s = nil;; + if ($truthy(($ret_or_2 = s))) { + return $ret_or_2 + } else { + return s['$nil?']() + };}, {$$arity: 1, $$has_trailing_comma_in_args: true}); + $send(self, 'accept', [$$('NilClass')], function $OptionParser$74(s){ + + + if (s == null) s = nil;; + return s;}, {$$arity: 1, $$has_trailing_comma_in_args: true}); + $send(self, 'accept', [$$('String'), /.+/m], function $OptionParser$75(s, $a){var $post_args, $rest_arg; + + + + if (s == null) s = nil;; + + $post_args = Opal.slice.call(arguments, 1); + + $rest_arg = $post_args;; + return s;}, -2); + decimal = "\\d+(?:_\\d+)*"; + binary = "b[01]+(?:_[01]+)*"; + hex = "x[\\da-f]+(?:_[\\da-f]+)*"; + octal = "0(?:[0-7]+(?:_[0-7]+)*|" + (binary) + "|" + (hex) + ")?"; + integer = "" + (octal) + "|" + (decimal); + $send(self, 'accept', [$$('Integer'), $regexp(["\\A[-+]?(?:", integer, ")\\z"], 'i')], function $OptionParser$76(s){var self = $OptionParser$76.$$s == null ? this : $OptionParser$76.$$s; + + + + if (s == null) s = nil;; + if ($truthy(s)) { + + try { + return self.$Integer(s) + } catch ($err) { + if (Opal.rescue($err, [$$('ArgumentError')])) { + try { + return self.$raise($$$($$('OptionParser'), 'InvalidArgument'), s) + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + } else { + return nil + };}, {$$arity: 1, $$s: self, $$has_trailing_comma_in_args: true}); + float$ = "(?:" + (decimal) + "(?=(.)?)(?:\\.(?:" + (decimal) + ")?)?|\\." + (decimal) + ")(?:E[-+]?" + (decimal) + ")?"; + floatpat = $regexp(["\\A[-+]?", float$, "\\z"], 'i'); + $send(self, 'accept', [$$('Float'), floatpat], function $OptionParser$77(s){ + + + if (s == null) s = nil;; + if ($truthy(s)) { + return s.$to_f() + } else { + return nil + };}, {$$arity: 1, $$has_trailing_comma_in_args: true}); + real = "[-+]?(?:" + (octal) + "|" + (float$) + ")"; + $send(self, 'accept', [$$('Numeric'), $regexp(["\\A(", real, ")(?:/(", real, "))?\\z"], 'i')], function $OptionParser$78(s, d, f, n){var self = $OptionParser$78.$$s == null ? this : $OptionParser$78.$$s; + + + + if (s == null) s = nil;; + + if (d == null) d = nil;; + + if (f == null) f = nil;; + + if (n == null) n = nil;; + if ($truthy(n)) { + return self.$Rational(d, n) + } else if ($truthy(f)) { + return self.$Float(s) + } else { + return self.$Integer(s) + };}, {$$arity: 4, $$s: self, $$has_trailing_comma_in_args: true}); + $const_set($nesting[0], 'DecimalInteger', $regexp(["\\A[-+]?", decimal, "\\z"], 'i')); + $send(self, 'accept', [$$('DecimalInteger'), $$('DecimalInteger')], function $OptionParser$79(s){var self = $OptionParser$79.$$s == null ? this : $OptionParser$79.$$s; + + + + if (s == null) s = nil;; + if ($truthy(s)) { + + try { + return self.$Integer(s, 10) + } catch ($err) { + if (Opal.rescue($err, [$$('ArgumentError')])) { + try { + return self.$raise($$$($$('OptionParser'), 'InvalidArgument'), s) + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + } else { + return nil + };}, {$$arity: 1, $$s: self, $$has_trailing_comma_in_args: true}); + $const_set($nesting[0], 'OctalInteger', $regexp(["\\A[-+]?(?:[0-7]+(?:_[0-7]+)*|0(?:", binary, "|", hex, "))\\z"], 'i')); + $send(self, 'accept', [$$('OctalInteger'), $$('OctalInteger')], function $OptionParser$80(s){var self = $OptionParser$80.$$s == null ? this : $OptionParser$80.$$s; + + + + if (s == null) s = nil;; + if ($truthy(s)) { + + try { + return self.$Integer(s, 8) + } catch ($err) { + if (Opal.rescue($err, [$$('ArgumentError')])) { + try { + return self.$raise($$$($$('OptionParser'), 'InvalidArgument'), s) + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + } else { + return nil + };}, {$$arity: 1, $$s: self, $$has_trailing_comma_in_args: true}); + $const_set($nesting[0], 'DecimalNumeric', floatpat); + $send(self, 'accept', [$$('DecimalNumeric'), floatpat], function $OptionParser$81(s, f){var self = $OptionParser$81.$$s == null ? this : $OptionParser$81.$$s; + + + + if (s == null) s = nil;; + + if (f == null) f = nil;; + if ($truthy(s)) { + + try { + if ($truthy(f)) { + return self.$Float(s) + } else { + return self.$Integer(s) + } + } catch ($err) { + if (Opal.rescue($err, [$$('ArgumentError')])) { + try { + return self.$raise($$$($$('OptionParser'), 'InvalidArgument'), s) + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + } else { + return nil + };}, {$$arity: 2, $$s: self}); + yesno = $$('CompletingHash').$new(); + $send(["-", "no", "false"], 'each', [], function $OptionParser$82(el){ + + + if (el == null) el = nil;; + $writer = [el, false]; + $send(yesno, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + $send(["+", "yes", "true"], 'each', [], function $OptionParser$83(el){ + + + if (el == null) el = nil;; + $writer = [el, true]; + $send(yesno, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); + + $writer = ["nil", false]; + $send(yesno, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + $send(self, 'accept', [$$('TrueClass'), yesno], function $OptionParser$84(arg, val){var $ret_or_2 = nil; + + + + if (arg == null) arg = nil;; + + if (val == null) val = nil;; + if ($truthy(($ret_or_2 = val['$nil?']()))) { + return $ret_or_2 + } else { + return val + };}, 2); + $send(self, 'accept', [$$('FalseClass'), yesno], function $OptionParser$85(arg, val){var $ret_or_2 = nil; + + + + if (arg == null) arg = nil;; + + if (val == null) val = nil;; + if ($truthy(($ret_or_2 = val['$nil?']()['$!']()))) { + return val + } else { + return $ret_or_2 + };}, 2); + $send(self, 'accept', [$$('Array')], function $OptionParser$86(s){ + + + if (s == null) s = nil;; + if ($truthy(s)) { + s = $send(s.$split(","), 'collect', [], function $$87(ss){ + + + if (ss == null) ss = nil;; + if ($truthy(ss['$empty?']())) { + return nil + } else { + return ss + };}, 1) + }; + return s;}, {$$arity: 1, $$has_trailing_comma_in_args: true}); + $send(self, 'accept', [$$('Regexp'), /^\/((?:\\.|[^\\])*)\/([[:alpha:]]+)?$|.*/], function $OptionParser$88(all, s, o){var f = nil, k = nil, $ret_or_2 = nil; + + + + if (all == null) all = nil;; + + if (s == null) s = nil;; + + if (o == null) o = nil;; + f = 0; + if ($truthy(o)) { + + if ($truthy(/i/['$=~'](o))) { + f = f['$|']($$$($$('Regexp'), 'IGNORECASE')) + }; + if ($truthy(/m/['$=~'](o))) { + f = f['$|']($$$($$('Regexp'), 'MULTILINE')) + }; + if ($truthy(/x/['$=~'](o))) { + f = f['$|']($$$($$('Regexp'), 'EXTENDED')) + }; + k = o.$delete("imx"); + if ($truthy(k['$empty?']())) { + k = nil + }; + }; + return $$('Regexp').$new(($truthy(($ret_or_2 = s)) ? ($ret_or_2) : (all)), f, k);}, 3); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ParseError'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.args = $proto.reason = $proto.arg0 = nil; + + $const_set($nesting[0], 'Reason', "parse error"); + + $def(self, '$initialize', function $$initialize($a, $b) { + var $post_args, $kwargs, args, additional, $c, $d, self = this; + + + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + args = $post_args;; + + additional = $kwargs.$$smap["additional"]; + if (additional == null) additional = nil; + self.additional = additional; + $d = args, $c = $to_ary($d), (self.arg0 = ($c[0] == null ? nil : $c[0])), $d; + self.args = args; + return (self.reason = nil); + }, -1); + self.$attr_reader("args"); + self.$attr_writer("reason"); + self.$attr_accessor("additional"); + + $def(self, '$recover', function $$recover(argv) { + var self = this, $writer = nil; + + + + $writer = [0, 0, self.args]; + $send(argv, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return argv; + }, 1); + $defs(self, '$filter_backtrace', function $$filter_backtrace(array) { + if ($gvars.DEBUG == null) $gvars.DEBUG = nil; + + + if (!$truthy($gvars.DEBUG)) { + $send(array, 'delete_if', [], $regexp(["\\A", $$('Regexp').$quote("./optparse.rb"), ":"]).$method("=~").$to_proc()) + }; + return array; + }, 1); + + $def(self, '$set_backtrace', function $$set_backtrace(array) { + var $yield = $$set_backtrace.$$p || nil, self = this; + + delete $$set_backtrace.$$p; + return $send2(self, $find_super(self, 'set_backtrace', $$set_backtrace, false, true), 'set_backtrace', [self.$class().$filter_backtrace(array)], null) + }, 1); + + $def(self, '$set_option', function $$set_option(opt, eq) { + var self = this, $writer = nil; + + + if ($truthy(eq)) { + + $writer = [0, opt]; + $send(self.args, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + } else { + self.args.$unshift(opt) + }; + return self; + }, 2); + + $def(self, '$reason', function $$reason() { + var self = this, $ret_or_2 = nil; + + if ($truthy(($ret_or_2 = self.reason))) { + return $ret_or_2 + } else { + return $$$(self.$class(), 'Reason') + } + }, 0); + + $def(self, '$inspect', function $$inspect() { + var self = this; + + return "#<" + (self.$class()) + ": " + (self.$args().$join(" ")) + ">" + }, 0); + + $def(self, '$message', function $$message() { + var self = this; + + return "" + (self.$reason()) + ": " + (self.$args().$join(" ")) + (($truthy(self.$additional()) ? (self.$additional()['$[]'](self.arg0)) : nil)) + }, 0); + return $alias(self, "to_s", "message"); + })($nesting[0], $$('RuntimeError'), $nesting); + (function($base, $super) { + var self = $klass($base, $super, 'AmbiguousOption'); + + + return self.$const_set("Reason", "ambiguous option") + })($nesting[0], $$('ParseError')); + (function($base, $super) { + var self = $klass($base, $super, 'NeedlessArgument'); + + + return self.$const_set("Reason", "needless argument") + })($nesting[0], $$('ParseError')); + (function($base, $super) { + var self = $klass($base, $super, 'MissingArgument'); + + + return self.$const_set("Reason", "missing argument") + })($nesting[0], $$('ParseError')); + (function($base, $super) { + var self = $klass($base, $super, 'InvalidOption'); + + + return self.$const_set("Reason", "invalid option") + })($nesting[0], $$('ParseError')); + (function($base, $super) { + var self = $klass($base, $super, 'InvalidArgument'); + + + return self.$const_set("Reason", "invalid argument") + })($nesting[0], $$('ParseError')); + (function($base, $super) { + var self = $klass($base, $super, 'AmbiguousArgument'); + + + return self.$const_set("Reason", "ambiguous argument") + })($nesting[0], $$('InvalidArgument')); + (function($base, $parent_nesting) { + var self = $module($base, 'Arguable'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$options=', function $Arguable_options$eq$89(opt) { + var self = this; + + if ($truthy((self.optparse = opt))) { + return nil + } else { + return (function(self, $parent_nesting) { + + + self.$undef_method("options"); + return self.$undef_method("options="); + })(Opal.get_singleton_class(self), $nesting) + } + }, 1); + + $def(self, '$options', function $$options() { + var $yield = $$options.$$p || nil, self = this, $ret_or_2 = nil, $writer = nil; + if (self.optparse == null) self.optparse = nil; + if ($gvars["!"] == null) $gvars["!"] = nil; + + delete $$options.$$p; + + self.optparse = ($truthy(($ret_or_2 = self.optparse)) ? ($ret_or_2) : ($$('OptionParser').$new())); + + $writer = [self]; + $send(self.optparse, 'default_argv=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(($ret_or_2 = ($yield !== nil)))) { + $ret_or_2 + } else { + + return self.optparse; + }; + + try { + return Opal.yield1($yield, self.optparse); + } catch ($err) { + if (Opal.rescue($err, [$$('ParseError')])) { + try { + + self.optparse.$warn($gvars["!"]); + return nil; + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + }, 0); + + $def(self, '$order!', function $Arguable_order$excl$90() { + var blk = $Arguable_order$excl$90.$$p || nil, self = this; + + delete $Arguable_order$excl$90.$$p; + + ; + return $send(self.$options(), 'order!', [self], blk.$to_proc()); + }, 0); + + $def(self, '$permute!', function $Arguable_permute$excl$91() { + var self = this; + + return self.$options()['$permute!'](self) + }, 0); + + $def(self, '$parse!', function $Arguable_parse$excl$92() { + var self = this; + + return self.$options()['$parse!'](self) + }, 0); + + $def(self, '$getopts', function $$getopts($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$options(), 'getopts', [self].concat($to_a(args))); + }, -1); + $defs(self, '$extend_object', function $$extend_object(obj) { + var $yield = $$extend_object.$$p || nil, self = this; + + delete $$extend_object.$$p; + + $send2(self, $find_super(self, 'extend_object', $$extend_object, false, true), 'extend_object', [obj], $yield); + return $send(obj, 'instance_eval', [], function $$93(){var self = $$93.$$s == null ? this : $$93.$$s; + + return (self.optparse = nil)}, {$$arity: 0, $$s: self}); + }, 1); + return $def(self, '$initialize', function $$initialize($a) { + var $post_args, args, $yield = $$initialize.$$p || nil, self = this; + + delete $$initialize.$$p; + + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', $to_a(args), $yield); + return (self.optparse = nil); + }, -1); + })($nesting[0], $nesting); + return (function($base, $parent_nesting) { + var self = $module($base, 'Acceptables'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + self.$const_set("DecimalInteger", $$$($$('OptionParser'), 'DecimalInteger')); + self.$const_set("OctalInteger", $$$($$('OptionParser'), 'OctalInteger')); + return self.$const_set("DecimalNumeric", $$$($$('OptionParser'), 'DecimalNumeric')); + })($nesting[0], $nesting); + })($nesting[0], null, $nesting); + $$('ARGV').$extend($$$($$('OptionParser'), 'Arguable')); + return $const_set($nesting[0], 'OptParse', $$('OptionParser')); +}; diff --git a/opal/master/optparse.min.js b/opal/master/optparse.min.js new file mode 100644 index 00000000..91e1a49e --- /dev/null +++ b/opal/master/optparse.min.js @@ -0,0 +1 @@ +Opal.modules["optparse/version"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$send=Opal.send,$eqeq=Opal.eqeq,$Object=Opal.Object,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$def=Opal.def,$regexp=Opal.regexp,$neqeq=Opal.neqeq;return Opal.add_stubs("program_name,options,proc,to_s,==,===,join,<<,find,const_defined?,const_get,puts,[],size,search_const,call,intern,each,inject,split,raise,grep,constants,shift,!="),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$show_version",(function($a){var pkgs,self=this,progname=nil,result=nil,show=nil;return pkgs=Opal.slice.call(arguments),progname=$$("ARGV").$options().$program_name(),result=!1,show=$send(self,"proc",[],(function $$1(klass,cname,version){var self=null==$$1.$$s?this:$$1.$$s,str=nil;return null==klass&&(klass=nil),null==cname&&(cname=nil),null==version&&(version=nil),str=progname.$to_s(),$eqeq(klass,$Object)&&$eqeq(cname,"VERSION")||($eqeqeq($$("Array"),version)&&(version=version.$join(".")),$eqeq(klass,$$("Object"))||str["$<<"](": "+klass),str["$<<"](" version "+version)),$send(["Release","RELEASE"],"find",[],(function(rel){return null==rel&&(rel=nil),$truthy(klass["$const_defined?"](rel))?str["$<<"](" ("+klass.$const_get(rel)+")"):nil}),1),self.$puts(str),result=!0}),{$$arity:3,$$s:self}),$eqeq(pkgs.$size(),1)&&$eqeq(pkgs["$[]"](0),"all")?$send(self,"search_const",[$Object,/^V(?:ERSION|ersion)$/],(function(klass,cname,version){return null==klass&&(klass=nil),null==cname&&(cname=nil),null==version&&(version=nil),$eqeq(cname["$[]"](1),"e")&&$truthy(klass["$const_defined?"]("Version"))?nil:show.$call(klass,cname.$intern(),version)}),3):$send(pkgs,"each",[],(function(pkg){var v=nil,n=nil;null==pkg&&(pkg=nil);try{return pkg=$send(pkg.$split(/::|\//),"inject",[$Object],(function(m,c){return null==m&&(m=nil),null==c&&(c=nil),m.$const_get(c)}),2),v=$truthy(pkg["$const_defined?"]("Version"))?pkg.$const_get(n="Version"):$truthy(pkg["$const_defined?"]("VERSION"))?pkg.$const_get(n="VERSION"):(n=nil,"unknown"),show.$call(pkg,n,v)}catch($err){if(!Opal.rescue($err,[$$("NameError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}),1),result}),-1),$def(self,"$each_const",(function(path,base){return null==base&&(base=$Object),$send(path.$split(/::|\//),"inject",[base],(function $$6(klass,name){var self=null==$$6.$$s?this:$$6.$$s;return null==klass&&(klass=nil),null==name&&(name=nil),$eqeqeq($$("Module"),klass)||self.$raise($$("NameError"),path),$send(klass.$constants(),"grep",[$regexp([name],"i")],(function(c){return null==c&&(c=nil),$truthy(klass["$const_defined?"](c))?klass.$const_get(c):nil}),1)}),{$$arity:2,$$s:this})}),-2),$def(self,"$search_const",(function $$search_const(klass,name){var $yield=$$search_const.$$p||nil,klasses=nil;for(delete $$search_const.$$p,klasses=[klass];$truthy(klass=klasses.$shift());)$send(klass.$constants(),"each",[],(function(cname){var const$;return null==cname&&(cname=nil),$truthy(klass["$const_defined?"](cname))?(const$=klass.$const_get(cname),$eqeqeq(name,cname)&&Opal.yieldX($yield,[klass,cname,const$]),$eqeqeq($$("Module"),const$)&&$neqeq(const$,$Object)?klasses["$<<"](const$):nil):nil}),1)}),2)}(Opal.get_singleton_class($$("OptionParser")),$nesting)},Opal.modules.shellwords=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$rb_plus=Opal.rb_plus,$send=Opal.send,$to_ary=Opal.to_ary,$truthy=Opal.truthy,$def=Opal.def,$alias=Opal.alias,$klass=Opal.klass;return Opal.add_stubs("+,new,scan,raise,inspect,gsub,<<,module_function,to_s,empty?,dup,join,map,shellescape,split,escape"),function($base,$parent_nesting){var self=$module($base,"Shellwords"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$shellsplit",(function(line){var words=nil,field=nil;return line=$rb_plus(line," "),words=[],field=$$("String").$new(),$send(line,"scan",[/\s*(?:([^\s\\\'\"]+)|'([^\']*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\r?\n?\Z|\s)?/m],(function $$1($mlhs_tmp1){var $a,word,sq,garbage,sep,$ret_or_1,$ret_or_2,self=null==$$1.$$s?this:$$1.$$s,dq=nil,esc=nil,$ret_or_3=nil;return null==$mlhs_tmp1&&($mlhs_tmp1=nil),word=null==($a=$to_ary($mlhs_tmp1))[0]?nil:$a[0],sq=null==$a[1]?nil:$a[1],dq=null==$a[2]?nil:$a[2],esc=null==$a[3]?nil:$a[3],garbage=null==$a[4]?nil:$a[4],sep=null==$a[5]?nil:$a[5],$truthy(garbage)&&self.$raise($$("ArgumentError"),"Unmatched quote: "+line.$inspect()),field=$rb_plus(field,$truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=word)?$ret_or_3:sq)?$ret_or_2:$truthy($ret_or_3=dq)?dq.$gsub(/\\([$`"\\\n])/,"\\1"):$ret_or_3)?$ret_or_1:esc.$gsub(/\\(.)/,"\\1")),$truthy(sep)?(words["$<<"](field),field=$$("String").$new()):nil}),{$$arity:1,$$s:this,$$has_top_level_mlhs_arg:!0}),words}),1),$alias(self,"shellwords","shellsplit"),self.$module_function("shellsplit","shellwords"),function(self,$parent_nesting){$alias(self,"split","shellsplit")}(Opal.get_singleton_class(self)),$def(self,"$shellescape",(function(str){return str=str.$to_s(),$truthy(str["$empty?"]())?"''".$dup():str=(str=(str=str.$dup()).$gsub(/[^A-Za-z0-9_\-.,:+\/@\n]/,"\\\\\\&")).$gsub(/\n/,"'\n'")}),1),self.$module_function("shellescape"),function(self,$parent_nesting){$alias(self,"escape","shellescape")}(Opal.get_singleton_class(self)),$def(self,"$shelljoin",(function(array){return $send(array,"map",[],(function $$2(arg){return null==arg&&(arg=nil),(null==$$2.$$s?this:$$2.$$s).$shellescape(arg)}),{$$arity:1,$$s:this}).$join(" ")}),1),self.$module_function("shelljoin"),function(self,$parent_nesting){$alias(self,"join","shelljoin")}(Opal.get_singleton_class(self))}($nesting[0],$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"String"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$shellsplit",(function(){return $$("Shellwords").$split(this)}),0),$def(self,"$shellescape",(function(){return $$("Shellwords").$escape(this)}),0)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Array"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$shelljoin",(function(){return $$("Shellwords").$join(this)}),0)}($nesting[0],0,$nesting)},Opal.modules.optparse=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$module=Opal.module,$rb_plus=Opal.rb_plus,$defs=Opal.defs,$truthy=Opal.truthy,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$def=Opal.def,$eqeq=Opal.eqeq,$to_ary=Opal.to_ary,$rb_gt=Opal.rb_gt,$to_a=Opal.to_a,$rb_ge=Opal.rb_ge,$hash2=Opal.hash2,$rb_minus=Opal.rb_minus,$rb_lt=Opal.rb_lt,$rb_times=Opal.rb_times,$not=Opal.not,$slice=Opal.slice,$gvars=Opal.gvars,$alias=Opal.alias,$send2=Opal.send2,$find_super=Opal.find_super,$rb_le=Opal.rb_le,$neqeq=Opal.neqeq,$lambda=Opal.lambda,$regexp=Opal.regexp;return Opal.add_stubs("freeze,new,+,gsub,quote,regexp,call,===,id2name,empty?,<<,candidate,to_proc,method,public,sort_by,size,==,[],>,shift,each,rindex,throw,include,attr_reader,>=,incompatible_argument_styles,raise,filter_backtrace,caller,pattern,match,to_a,length,private,conv,proc,block,-,fetch,[]=,join,dup,desc,arg,<,+@,*,sub,to_i,max,collect,!,ljust,to_s,=~,first,long,short,last_match,conv_arg,parse_arg,respond_to?,delete,update,invert,delete_if,unshift,push,__send__,complete,keys,list,reverse_each,summarize,concat,reverse,each_line,add_banner,compsys,catch,basename,visit,puts,help,exit,require,show_version,split,abort,program_name,ver,instance_eval,nonzero?,inc,class,add_officious,base,terminate,accept,top,reject,attr_writer,attr_accessor,version,release,pop,index,banner,<=,search,notwice,!=,any?,guess,tr,downcase,append,make_switch,define,prepend,define_head,define_tail,order!,default_argv,to_sym,parse_in_order,include?,require_exact,set_option,parse,switch_name,delete_prefix,match_nonswitch?,permute!,parse!,scan,compact,getopts,curry,select!,is_a?,message_for,formatter,&,correct,map,map!,load,expand_path,readlines,upcase,shellwords,nil?,Integer,to_f,Rational,Float,|,args,reason,additional,const_set,undef_method,default_argv=,warn,options,extend"),function($base,$super,$parent_nesting){var decimal,hex,octal,float$,floatpat,real,yesno,self=$klass($base,null,"OptionParser"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$writer=nil,$proto=self.$$prototype;$proto.banner=$proto.program_name=$proto.version=$proto.release=$proto.stack=$proto.summary_width=$proto.summary_indent=nil,$const_set($$("OptionParser"),"Version","0.1.1"),$const_set($nesting[0],"NoArgument",[$const_set($nesting[0],"NO_ARGUMENT","NONE"),nil].$freeze()),$const_set($nesting[0],"RequiredArgument",[$const_set($nesting[0],"REQUIRED_ARGUMENT","REQUIRED"),!0].$freeze()),$const_set($nesting[0],"OptionalArgument",[$const_set($nesting[0],"OPTIONAL_ARGUMENT","OPTIONAL"),!1].$freeze()),function($base,$parent_nesting){var self=$module($base,"Completion"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$regexp",(function(key,icase){return $$("Regexp").$new($rb_plus("\\A",$$("Regexp").$quote(key).$gsub(/\w+\b/,"\\&\\w*")),icase)}),2),$defs(self,"$candidate",(function $$candidate(key,icase,pat){var block=$$candidate.$$p||nil,$ret_or_1=nil,candidates=nil;return delete $$candidate.$$p,null==icase&&(icase=!1),null==pat&&(pat=nil),pat=$truthy($ret_or_1=pat)?$ret_or_1:$$("Completion").$regexp(key,icase),candidates=[],$send(block,"call",[],(function(k,$a){var v,$b,$c,$d,$e,kn=nil;return null==k&&(k=nil),v=Opal.slice.call(arguments,1),$truthy($ret_or_1=$eqeqeq($$("Regexp"),k)?(kn="",k["$==="](key)):(kn=$truthy(($b=k)&&($c=$b)&&($d=$c)&&(($e=$d.$id2name)&&!$e.$$stub||$d["$respond_to_missing?"]("id2name"))?"method":nil)?k.$id2name():k,pat["$==="](kn)))?($truthy(v["$empty?"]())&&v["$<<"](k),candidates["$<<"]([k,v,kn])):nil}),-2),candidates}),-2),$def(self,"$candidate",(function(key,icase,pat){return null==icase&&(icase=!1),null==pat&&(pat=nil),$send($$("Completion"),"candidate",[key,icase,pat],this.$method("each").$to_proc())}),-2),self.$public(),$def(self,"$complete",(function $$complete(key,icase,pat){var $a,$b,$yield=$$complete.$$p||nil,candidates=nil,canon=nil,sw=nil,cn=nil;return delete $$complete.$$p,null==icase&&(icase=!1),null==pat&&(pat=nil),candidates=$send($send(this,"candidate",[key,icase,pat],this.$method("each").$to_proc()),"sort_by",[],(function(k,v,kn){return null==k&&(k=nil),null==v&&(v=nil),null==kn&&(kn=nil),kn.$size()}),3),$eqeq(candidates.$size(),1)?($b=candidates["$[]"](0),$a=$to_ary($b),canon=null==$a[0]?nil:$a[0],sw=null==$a[1]?nil:$a[1]):$truthy($rb_gt(candidates.$size(),1))&&($b=candidates.$shift(),$a=$to_ary($b),canon=null==$a[0]?nil:$a[0],sw=null==$a[1]?nil:$a[1],cn=null==$a[2]?nil:$a[2],$send(candidates,"each",[],(function $$3(k,v,kn){var $c,self=null==$$3.$$s?this:$$3.$$s;if(null==k&&(k=nil),null==v&&(v=nil),null==kn&&(kn=nil),$eqeq(sw,v))return nil;if($eqeqeq($$("String"),cn)&&$eqeqeq($$("String"),kn)){if($truthy(cn.$rindex(kn,0)))return canon=($c=[k,v,kn])[0],sw=$c[1],cn=$c[2],nil;if($truthy(kn.$rindex(cn,0)))return nil}return self.$throw("ambiguous",key)}),{$$arity:3,$$s:this})),$truthy(canon)?$truthy($yield!==nil)?Opal.yieldX($yield,[key].concat($to_a(sw))):[key].concat($to_a(sw)):nil}),-2),$def(self,"$convert",(function($a,$b,$c){var $post_args,opt,val;return($post_args=Opal.slice.call(arguments)).length>0&&(opt=$post_args.shift()),null==opt&&(opt=nil),$post_args.length>0&&(val=$post_args.shift()),null==val&&(val=nil),$post_args,val}),-1)}($nesting[0],$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"OptionMap"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$("Completion"))}($nesting[0],$$("Hash"),$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Switch"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.short=$proto.long=$proto.pattern=nil,self.$attr_reader("pattern","conv","short","long","arg","desc","block"),$defs(self,"$guess",(function(arg){var $ret_or_1=nil,t=nil;return t=$eqeqeq("",$ret_or_1=arg)?this:$eqeqeq(/^=?\[/,$ret_or_1)?$$$($$("Switch"),"OptionalArgument"):$eqeqeq(/^\s+\[/,$ret_or_1)?$$$($$("Switch"),"PlacedArgument"):$$$($$("Switch"),"RequiredArgument"),$truthy($ret_or_1=$rb_ge(this,t))||this.$incompatible_argument_styles(arg,t),t}),1),$defs(self,"$incompatible_argument_styles",(function(arg,t){return this.$raise($$("ArgumentError"),arg+": incompatible argument styles\n "+this+", "+t,$$("ParseError").$filter_backtrace(this.$caller(2)))}),2),$defs(self,"$pattern",(function(){return $$("NilClass")}),0),$def(self,"$initialize",(function $$initialize(pattern,conv,short$,long$,arg,desc,block){var $a,$ret_or_1,_block=$$initialize.$$p||nil;return delete $$initialize.$$p,null==pattern&&(pattern=nil),null==conv&&(conv=nil),null==short$&&(short$=nil),null==long$&&(long$=nil),null==arg&&(arg=nil),null==desc&&(desc=$truthy(short$)||$truthy(long$)?[]:nil),null==block&&(block=nil),$eqeqeq($$("Array"),pattern)&&this.$raise(),$a=[pattern,conv,short$,long$,arg,desc,block=$truthy($ret_or_1=block)?$ret_or_1:_block],this.pattern=$a[0],this.conv=$a[1],this.short=$a[2],this.long=$a[3],this.arg=$a[4],this.desc=$a[5],this.block=$a[6],$a}),-1),$def(self,"$parse_arg",(function $$parse_arg(arg){var $yield=$$parse_arg.$$p||nil,m=nil,s=nil;if(delete $$parse_arg.$$p,!$truthy(this.$pattern()))return[nil,[arg]];if(!$truthy(m=this.$pattern().$match(arg)))return Opal.yieldX($yield,[$$("InvalidArgument"),arg]),[arg,[]];if($eqeqeq($$("String"),m))m=[s=m];else if(s=(m=m.$to_a())["$[]"](0),!$eqeqeq($$("String"),s))return[nil,m];return $truthy(arg.$rindex(s,0))||this.$raise($$("InvalidArgument"),arg),$eqeq(s.$length(),arg.$length())?[nil,m]:(Opal.yieldX($yield,[$$("InvalidArgument"),arg]),[arg["$[]"](Opal.Range.$new(s.$length(),-1,!1)),m])}),1),self.$private("parse_arg"),$def(self,"$conv_arg",(function(arg,val){return null==val&&(val=[]),val=$truthy(this.$conv())?$send(this.$conv(),"call",$to_a(val)):$send($send(this,"proc",[],(function(v){return null==v&&(v=nil),v}),1),"call",$to_a(val)),[arg,this.$block(),val]}),-2),self.$private("conv_arg"),$def(self,"$summarize",(function $$summarize(sdone,ldone,width,max,indent){var $a,$yield=$$summarize.$$p||nil,sopts=nil,lopts=nil,left=nil,right=nil,s=nil,l=nil,$ret_or_1=nil,$ret_or_2=nil,$writer=nil,mlen=nil,r=nil;if(delete $$summarize.$$p,null==sdone&&(sdone=$hash2([],{})),null==ldone&&(ldone=$hash2([],{})),null==width&&(width=1),null==max&&(max=$rb_minus(width,1)),null==indent&&(indent=""),sopts=($a=[[],[],nil])[0],lopts=$a[1],$truthy(this.short)&&$send(this.short,"each",[],(function(s){var $writer;return null==s&&(s=nil),$send(sdone,"fetch",[s],(function(){return sopts["$<<"](s)}),0),$send(sdone,"[]=",$to_a($writer=[s,!0])),$writer[$rb_minus($writer.length,1)]}),1),$truthy(this.long)&&$send(this.long,"each",[],(function(s){var $writer;return null==s&&(s=nil),$send(ldone,"fetch",[s],(function(){return lopts["$<<"](s)}),0),$send(ldone,"[]=",$to_a($writer=[s,!0])),$writer[$rb_minus($writer.length,1)]}),1),$truthy(sopts["$empty?"]())&&$truthy(lopts["$empty?"]()))return nil;for(left=[sopts.$join(", ")],right=this.$desc().$dup();$truthy(s=lopts.$shift());)l=$rb_plus(left["$[]"](-1).$length(),s.$length()),$eqeq(left.$size(),1)&&$truthy(this.$arg())&&(l=$rb_plus(l,this.$arg().$length())),$truthy($ret_or_1=$truthy($ret_or_2=$rb_lt(l,max))?$ret_or_2:sopts["$empty?"]())||left["$<<"](""["$+@"]()),$writer=[-1,$rb_plus(left["$[]"](-1),$rb_plus($truthy(left["$[]"](-1)["$empty?"]())?$rb_times(" ",4):", ",s))],$send(left,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)];for($truthy(this.$arg())&&($writer=[0,$rb_plus(left["$[]"](0),$truthy(left["$[]"](1))?$rb_plus(this.$arg().$sub(/^(\[?)=/,"\\1"),","):this.$arg())],$send(left,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),mlen=$send(left,"collect",[],"length".$to_proc()).$max().$to_i();$truthy($truthy($ret_or_1=$rb_gt(mlen,width))?l=left.$shift():$ret_or_1);)$eqeq(l.$length(),mlen)&&(mlen=$send(left,"collect",[],"length".$to_proc()).$max().$to_i()),$truthy($rb_lt(l.$length(),width))&&$truthy(r=right["$[]"](0))&&$not(r["$empty?"]())&&(l=$rb_plus($rb_plus(l.$to_s().$ljust(width)," "),r),right.$shift()),Opal.yield1($yield,$rb_plus(indent,l));for(;$truthy((l=left.$shift(),r=right.$shift(),$truthy($ret_or_1=l)?$ret_or_1:r));)$truthy(r)&&$not(r["$empty?"]())&&(l=$rb_plus($rb_plus(l.$to_s().$ljust(width)," "),r)),Opal.yield1($yield,$rb_plus(indent,l));return this}),-1),$def(self,"$add_banner",(function(to){var s=nil;return $truthy(this.short)||$truthy(this.long)||(s=this.$desc().$join(),$truthy(s["$empty?"]())||to["$<<"]($rb_plus($rb_plus(" [",s),"]..."))),to}),1),$def(self,"$match_nonswitch?",(function(str){return $truthy(this.short)||$truthy(this.long)?nil:this.pattern["$=~"](str)}),1),$def(self,"$switch_name",(function(){var $ret_or_1;return($truthy($ret_or_1=this.$long().$first())?$ret_or_1:this.$short().$first()).$sub(/^-+(?:\[no-\])?/,"")}),0),$def(self,"$compsys",(function $$compsys(sdone,ldone){var $a,$yield=$$compsys.$$p||nil,sopts=nil,lopts=nil;return delete $$compsys.$$p,sopts=($a=[[],[]])[0],lopts=$a[1],$truthy(this.short)&&$send(this.short,"each",[],(function(s){var $writer;return null==s&&(s=nil),$send(sdone,"fetch",[s],(function(){return sopts["$<<"](s)}),0),$send(sdone,"[]=",$to_a($writer=[s,!0])),$writer[$rb_minus($writer.length,1)]}),1),$truthy(this.long)&&$send(this.long,"each",[],(function(s){var $writer;return null==s&&(s=nil),$send(ldone,"fetch",[s],(function(){return lopts["$<<"](s)}),0),$send(ldone,"[]=",$to_a($writer=[s,!0])),$writer[$rb_minus($writer.length,1)]}),1),$truthy(sopts["$empty?"]())&&$truthy(lopts["$empty?"]())?nil:$send($rb_plus(sopts,lopts),"each",[],(function $$14(opt){var self=null==$$14.$$s?this:$$14.$$s,o=nil;return null==opt&&(opt=nil),$truthy(/^--\[no-\](.+)$/["$=~"](opt))?(o=$$("Regexp").$last_match(1),Opal.yieldX($yield,["--"+o,self.$desc().$join("")]),Opal.yieldX($yield,["--no-"+o,self.$desc().$join("")])):Opal.yieldX($yield,[opt.$to_s(),self.$desc().$join("")])}),{$$arity:1,$$s:this})}),2),function($base,$super,$parent_nesting){var self=$klass($base,$super,"NoArgument"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$parse",(function $$parse(arg,argv){var $yield=$$parse.$$p||nil;return delete $$parse.$$p,$truthy(arg)&&Opal.yieldX($yield,[$$("NeedlessArgument"),arg]),this.$conv_arg(arg)}),2),$defs(self,"$incompatible_argument_styles",(function($a){return Opal.slice.call(arguments),nil}),-1),$defs(self,"$pattern",(function(){return $$("Object")}),0)}($nesting[0],self,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"RequiredArgument"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$parse",(function(arg,argv){return $truthy(arg)||($truthy(argv["$empty?"]())&&this.$raise($$("MissingArgument")),arg=argv.$shift()),$send(this,"conv_arg",$to_a($send(this,"parse_arg",[arg],this.$method("raise").$to_proc())))}),2)}($nesting[0],self,$nesting),function($base,$super){var self=$klass($base,$super,"OptionalArgument");$def(self,"$parse",(function $$parse(arg,argv){var error=$$parse.$$p||nil;return delete $$parse.$$p,$truthy(arg)?$send(this,"conv_arg",$to_a($send(this,"parse_arg",[arg],error.$to_proc()))):this.$conv_arg(arg)}),2)}($nesting[0],self),function($base,$super){var self=$klass($base,$super,"PlacedArgument");$def(self,"$parse",(function $$parse(arg,argv){var opt,error=$$parse.$$p||nil,val=nil,$writer=nil;return delete $$parse.$$p,$not(val=arg)&&($truthy(argv["$empty?"]())||$truthy(/^-/["$=~"](val=argv["$[]"](0))))?[nil,this.$block(),nil]:(opt=(val=$send(this,"parse_arg",[val],error.$to_proc()))["$[]"](1),val=$send(this,"conv_arg",$to_a(val)),$truthy(opt)&&$not(arg)?argv.$shift():($send(val,"[]=",$to_a($writer=[0,nil])),$writer[$rb_minus($writer.length,1)]),val)}),2)}($nesting[0],self)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"List"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.atype=$proto.short=$proto.long=$proto.list=nil,self.$attr_reader("atype"),self.$attr_reader("short"),self.$attr_reader("long"),self.$attr_reader("list"),$def(self,"$initialize",(function(){return this.atype=$hash2([],{}),this.short=$$("OptionMap").$new(),this.long=$$("OptionMap").$new(),this.list=[]}),0),$def(self,"$accept",(function $$accept(t,pat){var $writer,block=$$accept.$$p||nil;return delete $$accept.$$p,null==pat&&(pat=/.*/m),$truthy(pat)?$truthy(pat["$respond_to?"]("match"))||this.$raise($$("TypeError"),"has no `match'",$$("ParseError").$filter_backtrace(this.$caller(2))):$truthy(t["$respond_to?"]("match"))&&(pat=t),$truthy(block)||$truthy(pat["$respond_to?"]("convert"))&&(block=pat.$method("convert").$to_proc()),$writer=[t,[pat,block]],$send(this.atype,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),-2),$def(self,"$reject",(function(t){return this.atype.$delete(t)}),1),$def(self,"$update",(function(sw,sopts,lopts,nsw,nlopts){var used=nil;return null==nsw&&(nsw=nil),null==nlopts&&(nlopts=nil),$truthy(sopts)&&$send(sopts,"each",[],(function $$15(o){var $writer,self=null==$$15.$$s?this:$$15.$$s;return null==self.short&&(self.short=nil),null==o&&(o=nil),$writer=[o,sw],$send(self.short,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$truthy(lopts)&&$send(lopts,"each",[],(function $$16(o){var $writer,self=null==$$16.$$s?this:$$16.$$s;return null==self.long&&(self.long=nil),null==o&&(o=nil),$writer=[o,sw],$send(self.long,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),$truthy(nsw)&&$truthy(nlopts)&&$send(nlopts,"each",[],(function $$17(o){var $writer,self=null==$$17.$$s?this:$$17.$$s;return null==self.long&&(self.long=nil),null==o&&(o=nil),$writer=[o,nsw],$send(self.long,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this}),used=this.short.$invert().$update(this.long.$invert()),$send(this.list,"delete_if",[],(function(o){var $ret_or_1;return null==o&&(o=nil),$truthy($ret_or_1=$$("Switch")["$==="](o))?used["$[]"](o)["$!"]():$ret_or_1}),1)}),-4),self.$private("update"),$def(self,"$prepend",(function($a){var $post_args,args,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"update",$to_a(args=$post_args)),self.list.$unshift(args["$[]"](0))}),-1),$def(self,"$append",(function($a){var $post_args,args,self=this;return $post_args=Opal.slice.call(arguments),$send(self,"update",$to_a(args=$post_args)),self.list.$push(args["$[]"](0))}),-1),$def(self,"$search",(function $$search(id,key){try{var list,$yield=$$search.$$p||nil,val=nil;return delete $$search.$$p,$truthy(list=this.$__send__(id))?(val=$send(list,"fetch",[key],(function(){Opal.ret(nil)}),0),$yield!==nil?Opal.yield1($yield,val):val):nil}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),2),$def(self,"$complete",(function $$complete(id,opt,$a,$b){var $post_args,icase,pat,block=$$complete.$$p||nil,self=this;return delete $$complete.$$p,($post_args=Opal.slice.call(arguments,2)).length>0&&(icase=$post_args.shift()),null==icase&&(icase=!1),pat=$post_args,$send(self.$__send__(id),"complete",[opt,icase].concat($to_a(pat)),block.$to_proc())}),-3),$def(self,"$get_candidates",(function $$get_candidates(id){var $yield=$$get_candidates.$$p||nil;return delete $$get_candidates.$$p,Opal.yield1($yield,this.$__send__(id).$keys())}),1),$def(self,"$each_option",(function $$each_option(){var block=$$each_option.$$p||nil;return delete $$each_option.$$p,$send(this.$list(),"each",[],block.$to_proc())}),0),$def(self,"$summarize",(function $$summarize($a){var $post_args,args,block=$$summarize.$$p||nil,self=this,sum=nil;return delete $$summarize.$$p,$post_args=Opal.slice.call(arguments),args=$post_args,sum=[],$send(self.$list(),"reverse_each",[],(function(opt){var s=nil;return null==opt&&(opt=nil),$truthy(opt["$respond_to?"]("summarize"))?(s=[],$send(opt,"summarize",$to_a(args),(function(l){return null==l&&(l=nil),s["$<<"](l)}),1),sum.$concat(s.$reverse())):$not(opt)||$truthy(opt["$empty?"]())?sum["$<<"](""):$truthy(opt["$respond_to?"]("each_line"))?sum.$concat([].concat($to_a(opt.$each_line())).$reverse()):sum.$concat([].concat($to_a(opt.$each())).$reverse())}),1),$send(sum,"reverse_each",[],block.$to_proc())}),-1),$def(self,"$add_banner",(function(to){return $send(this.$list(),"each",[],(function(opt){return null==opt&&(opt=nil),$truthy(opt["$respond_to?"]("add_banner"))?opt.$add_banner(to):nil}),1),to}),1),$def(self,"$compsys",(function $$compsys($a){var $post_args,args,block=$$compsys.$$p||nil,self=this;return delete $$compsys.$$p,$post_args=Opal.slice.call(arguments),args=$post_args,$send(self.$list(),"each",[],(function(opt){return null==opt&&(opt=nil),$truthy(opt["$respond_to?"]("compsys"))?$send(opt,"compsys",$to_a(args),block.$to_proc()):nil}),1)}),-1)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"CompletingHash"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$("Completion")),$def(self,"$match",(function(key){try{var $a,$b,values;return $b=$send(this,"fetch",[key],(function $$24(){var self=null==$$24.$$s?this:$$24.$$s;return self.$raise($$("AmbiguousArgument"),$send(self,"catch",["ambiguous"],(function $$25(){var self=null==$$25.$$s?this:$$25.$$s;Opal.ret(self.$complete(key))}),{$$arity:0,$$s:self}))}),{$$arity:0,$$s:this}),$a=$to_ary($b),values=$slice.call($a,0),[key].concat($to_a(values))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),1)}($nesting[0],$$("Hash"),$nesting),$const_set($nesting[0],"ArgumentStyle",$hash2([],{})),$send($$("NoArgument"),"each",[],(function(el){var $writer;return null==el&&(el=nil),$writer=[el,$$$($$("Switch"),"NoArgument")],$send($$("ArgumentStyle"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$send($$("RequiredArgument"),"each",[],(function(el){var $writer;return null==el&&(el=nil),$writer=[el,$$$($$("Switch"),"RequiredArgument")],$send($$("ArgumentStyle"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$send($$("OptionalArgument"),"each",[],(function(el){var $writer;return null==el&&(el=nil),$writer=[el,$$$($$("Switch"),"OptionalArgument")],$send($$("ArgumentStyle"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$$("ArgumentStyle").$freeze(),$const_set($nesting[0],"DefaultList",$$("List").$new()),$writer=["-",$send($$$($$("Switch"),"NoArgument"),"new",[],(function(){return nil}),0)],$send($$("DefaultList").$short(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=["",$send($$$($$("Switch"),"NoArgument"),"new",[],(function $OptionParser$30(){return(null==$OptionParser$30.$$s?this:$OptionParser$30.$$s).$throw("terminate")}),{$$arity:0,$$s:self})],$send($$("DefaultList").$long(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$const_set($nesting[0],"COMPSYS_HEADER","\ntypeset -A opt_args\nlocal context state line\n\n_arguments -s -S \\\n"),$def(self,"$compsys",(function(to,name){return null==$gvars[0]&&($gvars[0]=nil),null==name&&(name=$$("File").$basename($gvars[0])),to["$<<"]("#compdef "+name+"\n"),to["$<<"]($$("COMPSYS_HEADER")),$send(this,"visit",["compsys",$hash2([],{}),$hash2([],{})],(function(o,d){return null==o&&(o=nil),null==d&&(d=nil),to["$<<"](' "'+o+"["+d.$gsub(/[\"\[\]]/,"\\\\\\&")+']" \\\n')}),2),to["$<<"](" '*:file:_files' && return 0\n")}),-2),$const_set($nesting[0],"Officious",$hash2([],{})),$writer=["help",$send(self,"proc",[],(function $OptionParser$32(parser){var self=null==$OptionParser$32.$$s?this:$OptionParser$32.$$s;return null==parser&&(parser=nil),$send($$$($$("Switch"),"NoArgument"),"new",[],(function $$33(arg){var self=null==$$33.$$s?this:$$33.$$s;return null==arg&&(arg=nil),self.$puts(parser.$help()),self.$exit()}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})],$send($$("Officious"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=["*-completion-bash",$send(self,"proc",[],(function $OptionParser$34(parser){var self=null==$OptionParser$34.$$s?this:$OptionParser$34.$$s;return null==parser&&(parser=nil),$send($$$($$("Switch"),"RequiredArgument"),"new",[],(function $$35(arg){var self=null==$$35.$$s?this:$$35.$$s;return null==arg&&(arg=nil),self.$puts(parser.$candidate(arg)),self.$exit()}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})],$send($$("Officious"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=["*-completion-zsh",$send(self,"proc",[],(function $OptionParser$36(parser){var self=null==$OptionParser$36.$$s?this:$OptionParser$36.$$s;return null==parser&&(parser=nil),$send($$$($$("Switch"),"OptionalArgument"),"new",[],(function $$37(arg){var self=null==$$37.$$s?this:$$37.$$s;return null==arg&&(arg=nil),parser.$compsys($$("STDOUT"),arg),self.$exit()}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})],$send($$("Officious"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$writer=["version",$send(self,"proc",[],(function $OptionParser$38(parser){var self=null==$OptionParser$38.$$s?this:$OptionParser$38.$$s;return null==parser&&(parser=nil),$send($$$($$("Switch"),"OptionalArgument"),"new",[],(function $$39(pkg){var v,self=null==$$39.$$s?this:$$39.$$s;if(null==pkg&&(pkg=nil),$truthy(pkg)){var $no_errors=!0;try{self.$require("optparse/version")}catch($err){if($no_errors=!1,!Opal.rescue($err,[$$("LoadError")]))throw $err;Opal.pop_exception()}finally{$no_errors&&($truthy($send(self,"show_version",$to_a(pkg.$split(/,/))))||self.$abort(parser.$program_name()+": no version found in package "+pkg),self.$exit())}}return $truthy(v=parser.$ver())||self.$abort(parser.$program_name()+": version unknown"),self.$puts(v),self.$exit()}),{$$arity:1,$$s:self})}),{$$arity:1,$$s:self})],$send($$("Officious"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$defs(self,"$with",(function $OptionParser_with$40($a){var $post_args,block=$OptionParser_with$40.$$p||nil,self=this,opts=nil;return delete $OptionParser_with$40.$$p,$post_args=Opal.slice.call(arguments),opts=$send(self,"new",$to_a($post_args)),$send(opts,"instance_eval",[],block.$to_proc()),opts}),-1),$defs(self,"$inc",(function(arg,default$){var $ret_or_1;return null==default$&&(default$=nil),$eqeqeq($$("Integer"),$ret_or_1=arg)?arg["$nonzero?"]():$eqeqeq(nil,$ret_or_1)?$rb_plus(default$.$to_i(),1):nil}),-2),$def(self,"$inc",(function($a){var args,self=this;return args=Opal.slice.call(arguments),$send(self.$class(),"inc",$to_a(args))}),-1),$def(self,"$initialize",(function $$initialize(banner,width,indent){var $yield=$$initialize.$$p||nil;return delete $$initialize.$$p,null==banner&&(banner=nil),null==width&&(width=32),null==indent&&(indent=$rb_times(" ",4)),this.stack=[$$("DefaultList"),$$("List").$new(),$$("List").$new()],this.program_name=nil,this.banner=banner,this.summary_width=width,this.summary_indent=indent,this.default_argv=$$("ARGV"),this.require_exact=!1,this.$add_officious(),$yield!==nil?Opal.yield1($yield,this):nil}),-1),$def(self,"$add_officious",(function(){var list=nil;return list=this.$base(),$send($$("Officious"),"each",[],(function $$41(opt,block){var $ret_or_1,self=null==$$41.$$s?this:$$41.$$s,$logical_op_recvr_tmp_1=nil,$writer=nil;return null==opt&&(opt=nil),null==block&&(block=nil),$logical_op_recvr_tmp_1=list.$long(),$truthy($ret_or_1=$logical_op_recvr_tmp_1["$[]"](opt))?$ret_or_1:($writer=[opt,block.$call(self)],$send($logical_op_recvr_tmp_1,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)])}),{$$arity:2,$$s:this})}),0),$def(self,"$terminate",(function(arg){return null==arg&&(arg=nil),this.$class().$terminate(arg)}),-1),$defs(self,"$terminate",(function(arg){return null==arg&&(arg=nil),this.$throw("terminate",arg)}),-1),self.stack=[$$("DefaultList")],$defs(self,"$top",(function(){return $$("DefaultList")}),0),$def(self,"$accept",(function $$accept($a){var args,blk=$$accept.$$p||nil,self=this;return delete $$accept.$$p,args=Opal.slice.call(arguments),$send(self.$top(),"accept",$to_a(args),blk.$to_proc())}),-1),$defs(self,"$accept",(function $$accept($a){var args,blk=$$accept.$$p||nil,self=this;return delete $$accept.$$p,args=Opal.slice.call(arguments),$send(self.$top(),"accept",$to_a(args),blk.$to_proc())}),-1),$def(self,"$reject",(function $$reject($a){var args,blk=$$reject.$$p||nil,self=this;return delete $$reject.$$p,args=Opal.slice.call(arguments),$send(self.$top(),"reject",$to_a(args),blk.$to_proc())}),-1),$defs(self,"$reject",(function $$reject($a){var args,blk=$$reject.$$p||nil,self=this;return delete $$reject.$$p,args=Opal.slice.call(arguments),$send(self.$top(),"reject",$to_a(args),blk.$to_proc())}),-1),self.$attr_writer("banner"),self.$attr_writer("program_name"),self.$attr_accessor("summary_width"),self.$attr_accessor("summary_indent"),self.$attr_accessor("default_argv"),self.$attr_accessor("require_exact"),$def(self,"$banner",(function(){return $truthy(this.banner)||(this.banner=("Usage: "+this.$program_name()+" [options]")["$+@"](),this.$visit("add_banner",this.banner)),this.banner}),0),$def(self,"$program_name",(function(){var $ret_or_1;return null==$gvars[0]&&($gvars[0]=nil),$truthy($ret_or_1=this.program_name)?$ret_or_1:$$("File").$basename($gvars[0],".*")}),0),$alias(self,"set_banner","banner="),$alias(self,"set_program_name","program_name="),$alias(self,"set_summary_width","summary_width="),$alias(self,"set_summary_indent","summary_indent="),self.$attr_writer("version"),self.$attr_writer("release"),$def(self,"$version",(function(){var $a,$ret_or_1,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=null!=($a=this.version)&&$a!==nil?"instance-variable":nil)?this.version:$ret_or_2)?$ret_or_1:$truthy($ret_or_2=$$$("::","Version","skip_raise")?"constant":nil)?$$$("Version"):$ret_or_2}),0),$def(self,"$release",(function(){var $a,$ret_or_1,$ret_or_2=nil,$ret_or_3=nil;return $truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=null!=($a=this.release)&&$a!==nil?"instance-variable":nil)?this.release:$ret_or_3)?$ret_or_2:$truthy($ret_or_3=$$$("::","Release","skip_raise")?"constant":nil)?$$$("Release"):$ret_or_3)?$ret_or_1:$truthy($ret_or_2=$$$("::","RELEASE","skip_raise")?"constant":nil)?$$$("RELEASE"):$ret_or_2}),0),$def(self,"$ver",(function(){var v=nil,str=nil;return $truthy(v=this.$version())?(str=(this.$program_name()+" "+[v].$join("."))["$+@"](),$truthy(v=this.$release())&&str["$<<"](" ("+v+")"),str):nil}),0),$def(self,"$warn",(function $$warn(mesg){return null==$gvars["!"]&&($gvars["!"]=nil),delete $$warn.$$p,null==mesg&&(mesg=$gvars["!"]),$send2(this,$find_super(this,"warn",$$warn,!1,!0),"warn",[this.$program_name()+": "+mesg],null)}),-1),$def(self,"$abort",(function $$abort(mesg){return null==$gvars["!"]&&($gvars["!"]=nil),delete $$abort.$$p,null==mesg&&(mesg=$gvars["!"]),$send2(this,$find_super(this,"abort",$$abort,!1,!0),"abort",[this.$program_name()+": "+mesg],null)}),-1),$def(self,"$top",(function(){return this.stack["$[]"](-1)}),0),$def(self,"$base",(function(){return this.stack["$[]"](1)}),0),$def(self,"$new",(function $OptionParser_new$42(){var $yield=$OptionParser_new$42.$$p||nil;return delete $OptionParser_new$42.$$p,this.stack.$push($$("List").$new()),$yield!==nil?Opal.yield1($yield,this):this}),0),$def(self,"$remove",(function(){return this.stack.$pop()}),0),$def(self,"$summarize",(function $$summarize(to,width,max,indent){var $ret_or_1,blk=$$summarize.$$p||nil;return delete $$summarize.$$p,null==to&&(to=[]),null==width&&(width=this.summary_width),null==max&&(max=$rb_minus(width,1)),null==indent&&(indent=this.summary_indent),"\n",blk=$truthy($ret_or_1=blk)?$ret_or_1:$send(this,"proc",[],(function(l){return null==l&&(l=nil),to["$<<"]($truthy(l.$index("\n",-1))?l:$rb_plus(l,"\n"))}),1),$send(this,"visit",["summarize",$hash2([],{}),$hash2([],{}),width,max,indent],blk.$to_proc()),to}),-1),$def(self,"$help",(function(){return this.$summarize([this.$banner().$to_s().$sub(/\n?$/,"\n")]).$join()}),0),$alias(self,"to_s","help"),$def(self,"$to_a",(function(){return this.$summarize([this.$banner().$to_s().$split(/^/)]).$join()}),0),$def(self,"$notwice",(function(obj,prv,msg){return $not(prv)||$eqeq(prv,obj)||this.$raise($$("ArgumentError"),"argument "+msg+" given twice: "+obj,$$("ParseError").$filter_backtrace(this.$caller(2))),obj}),3),self.$private("notwice"),$const_set($nesting[0],"SPLAT_PROC",$send(self,"proc",[],(function($a){var $post_args,a;return $post_args=Opal.slice.call(arguments),$truthy($rb_le((a=$post_args).$length(),1))?a.$first():a}),-1)),$def(self,"$make_switch",(function(opts,block){var $a,$b,short$=nil,long$=nil,nolong=nil,style=nil,pattern=nil,conv=nil,not_pattern=nil,not_conv=nil,not_style=nil,ldesc=nil,sdesc=nil,desc=nil,arg=nil,default_style=nil,default_pattern=nil,klass=nil,q=nil,a=nil,has_arg=nil,$ret_or_2=nil,s=nil;return null==block&&(block=nil),short$=($a=[[],[],[]])[0],long$=$a[1],nolong=$a[2],style=null==$a[3]?nil:$a[3],pattern=null==$a[4]?nil:$a[4],conv=null==$a[5]?nil:$a[5],not_pattern=null==$a[6]?nil:$a[6],not_conv=null==$a[7]?nil:$a[7],not_style=null==$a[8]?nil:$a[8],ldesc=($a=[[],[],[]])[0],sdesc=$a[1],desc=$a[2],arg=null==$a[3]?nil:$a[3],default_style=$$$($$("Switch"),"NoArgument"),default_pattern=nil,klass=nil,$a=$to_ary($b=nil),q=null==$a[0]?nil:$a[0],a=null==$a[1]?nil:$a[1],has_arg=!1,$send(opts,"each",[],(function $$45(o){var $c,$d,self=null==$$45.$$s?this:$$45.$$s,$ret_or_1=nil,$ret_or_2=nil,$ret_or_3=nil;return null==o&&(o=nil),$truthy($send(self,"search",["atype",o],(function $$46(pat,c){var $c;return null==pat&&(pat=nil),null==c&&(c=nil),klass=(null==$$46.$$s?this:$$46.$$s).$notwice(o,klass,"type"),$truthy(not_style)&&$neqeq(not_style,$$$($$("Switch"),"NoArgument"))?(not_pattern=($c=[pat,c])[0],not_conv=$c[1],$c):(default_pattern=($c=[pat,c])[0],conv=$c[1],$c)}),{$$arity:2,$$s:self}))?nil:$not($truthy($ret_or_1=$$("String")["$==="](o))?$ret_or_1:$$("Symbol")["$==="](o))&&$truthy(o["$respond_to?"]("match"))?(pattern=self.$notwice(o,pattern,"pattern"),conv=$truthy(pattern["$respond_to?"]("convert"))?pattern.$method("convert").$to_proc():$$("SPLAT_PROC"),nil):$eqeqeq($$("Proc"),$ret_or_1=o)||$eqeqeq($$("Method"),$ret_or_1)?block=self.$notwice(o,block,"block"):$eqeqeq($$("Array"),$ret_or_1)||$eqeqeq($$("Hash"),$ret_or_1)?($eqeqeq($$("CompletingHash"),$ret_or_2=pattern)||($eqeqeq(nil,$ret_or_2)?(pattern=$$("CompletingHash").$new(),$truthy(pattern["$respond_to?"]("convert"))&&(conv=pattern.$method("convert").$to_proc())):self.$raise($$("ArgumentError"),"argument pattern given twice")),$send(o,"each",[],(function(pat,$c){var $post_args,$writer=nil;return null==pat&&(pat=nil),$post_args=Opal.slice.call(arguments,1),$writer=[pat,$send($post_args,"fetch",[0],(function(){return pat}),0)],$send(pattern,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),-2)):$eqeqeq($$("Module"),$ret_or_1)?self.$raise($$("ArgumentError"),"unsupported argument type: "+o,$$("ParseError").$filter_backtrace(self.$caller(4))):$truthy($send($$("ArgumentStyle").$keys(),"any?",[],(function($ret_or_2){return null==$ret_or_2&&($ret_or_2=nil),$ret_or_2["$==="]($ret_or_1)}),1))?style=self.$notwice($$("ArgumentStyle")["$[]"](o),style,"style"):$eqeqeq(/^--no-([^\[\]=\s]*)(.+)?/,$ret_or_1)?($c=[$$("Regexp").$last_match(1),$$("Regexp").$last_match(2)],q=$c[0],a=$c[1],o=self.$notwice($truthy(a)?$$("Object"):$$("TrueClass"),klass,"type"),$truthy(not_style)||($d=self.$search("atype",o),$c=$to_ary($d),not_pattern=null==$c[0]?nil:$c[0],not_conv=null==$c[1]?nil:$c[1]),$truthy(a)&&(not_style=($truthy($ret_or_3=not_style)?$ret_or_3:default_style).$guess(arg=a)),default_style=$$$($$("Switch"),"NoArgument"),$truthy(default_pattern)||($d=self.$search("atype",$$("FalseClass")),$c=$to_ary($d),default_pattern=null==$c[0]?nil:$c[0],conv=null==$c[1]?nil:$c[1]),ldesc["$<<"]("--no-"+q),q=q.$downcase().$tr("_","-"),long$["$<<"]("no-"+q),nolong["$<<"](q)):$eqeqeq(/^--\[no-\]([^\[\]=\s]*)(.+)?/,$ret_or_1)?($c=[$$("Regexp").$last_match(1),$$("Regexp").$last_match(2)],q=$c[0],a=$c[1],o=self.$notwice($truthy(a)?$$("Object"):$$("TrueClass"),klass,"type"),$truthy(a)&&(default_style=default_style.$guess(arg=a),$truthy(default_pattern)||($d=self.$search("atype",o),$c=$to_ary($d),default_pattern=null==$c[0]?nil:$c[0],conv=null==$c[1]?nil:$c[1])),ldesc["$<<"]("--[no-]"+q),o=q.$downcase().$tr("_","-"),long$["$<<"](o),$truthy(not_style)||($d=self.$search("atype",$$("FalseClass")),$c=$to_ary($d),not_pattern=null==$c[0]?nil:$c[0],not_conv=null==$c[1]?nil:$c[1]),not_style=$$$($$("Switch"),"NoArgument"),nolong["$<<"]("no-"+o)):$eqeqeq(/^--([^\[\]=\s]*)(.+)?/,$ret_or_1)?($c=[$$("Regexp").$last_match(1),$$("Regexp").$last_match(2)],q=$c[0],a=$c[1],$truthy(a)&&(o=self.$notwice($$("NilClass"),klass,"type"),default_style=default_style.$guess(arg=a),$truthy(default_pattern)||($d=self.$search("atype",o),$c=$to_ary($d),default_pattern=null==$c[0]?nil:$c[0],conv=null==$c[1]?nil:$c[1])),ldesc["$<<"]("--"+q),o=q.$downcase().$tr("_","-"),long$["$<<"](o)):$eqeqeq(/^-(\[\^?\]?(?:[^\\\]]|\\.)*\])(.+)?/,$ret_or_1)?($c=[$$("Regexp").$last_match(1),$$("Regexp").$last_match(2)],q=$c[0],a=$c[1],o=self.$notwice($$("Object"),klass,"type"),$truthy(a)?(default_style=default_style.$guess(arg=a),$truthy(default_pattern)||($d=self.$search("atype",o),$c=$to_ary($d),default_pattern=null==$c[0]?nil:$c[0],conv=null==$c[1]?nil:$c[1])):has_arg=!0,sdesc["$<<"]("-"+q),short$["$<<"]($$("Regexp").$new(q))):$eqeqeq(/^-(.)(.+)?/,$ret_or_1)?($c=[$$("Regexp").$last_match(1),$$("Regexp").$last_match(2)],q=$c[0],a=$c[1],$truthy(a)&&(o=self.$notwice($$("NilClass"),klass,"type"),default_style=default_style.$guess(arg=a),$truthy(default_pattern)||($d=self.$search("atype",o),$c=$to_ary($d),default_pattern=null==$c[0]?nil:$c[0],conv=null==$c[1]?nil:$c[1])),sdesc["$<<"]("-"+q),short$["$<<"](q)):$eqeqeq(/^=/,$ret_or_1)?(style=self.$notwice(default_style.$guess(arg=o),style,"style"),$truthy(default_pattern)?nil:($d=self.$search("atype",$$("Object")),$c=$to_ary($d),default_pattern=null==$c[0]?nil:$c[0],conv=null==$c[1]?nil:$c[1],$d)):desc.$push(o)}),{$$arity:1,$$s:this}),$truthy(default_pattern)||($b=this.$search("atype",default_style.$pattern()),$a=$to_ary($b),default_pattern=null==$a[0]?nil:$a[0],conv=null==$a[1]?nil:$a[1]),$not($truthy($ret_or_2=short$["$empty?"]())?long$["$empty?"]():$ret_or_2)?($truthy(has_arg)&&$eqeq(default_style,$$$($$("Switch"),"NoArgument"))&&(default_style=$$$($$("Switch"),"RequiredArgument")),s=($truthy($ret_or_2=style)?$ret_or_2:default_style).$new($truthy($ret_or_2=pattern)?$ret_or_2:default_pattern,conv,sdesc,ldesc,arg,desc,block)):$not(block)?(($truthy(style)||$truthy(pattern))&&this.$raise($$("ArgumentError"),"no switch given",$$("ParseError").$filter_backtrace(this.$caller())),s=desc):(short$["$<<"](pattern),s=($truthy($ret_or_2=style)?$ret_or_2:default_style).$new(pattern,conv,nil,nil,arg,desc,block)),[s,short$,long$,$truthy(not_style)?not_style.$new(not_pattern,not_conv,sdesc,ldesc,nil,desc,block):nil,nolong]}),-2),$def(self,"$define",(function $$define($a){var opts,block=$$define.$$p||nil,self=this,sw=nil;return delete $$define.$$p,opts=Opal.slice.call(arguments),$send(self.$top(),"append",$to_a(sw=self.$make_switch(opts,block))),sw["$[]"](0)}),-1),$def(self,"$on",(function $$on($a){var $post_args,block=$$on.$$p||nil,self=this;return delete $$on.$$p,$post_args=Opal.slice.call(arguments),$send(self,"define",$to_a($post_args),block.$to_proc()),self}),-1),$alias(self,"def_option","define"),$def(self,"$define_head",(function $$define_head($a){var opts,block=$$define_head.$$p||nil,self=this,sw=nil;return delete $$define_head.$$p,opts=Opal.slice.call(arguments),$send(self.$top(),"prepend",$to_a(sw=self.$make_switch(opts,block))),sw["$[]"](0)}),-1),$def(self,"$on_head",(function $$on_head($a){var $post_args,block=$$on_head.$$p||nil,self=this;return delete $$on_head.$$p,$post_args=Opal.slice.call(arguments),$send(self,"define_head",$to_a($post_args),block.$to_proc()),self}),-1),$alias(self,"def_head_option","define_head"),$def(self,"$define_tail",(function $$define_tail($a){var opts,block=$$define_tail.$$p||nil,self=this,sw=nil;return delete $$define_tail.$$p,opts=Opal.slice.call(arguments),$send(self.$base(),"append",$to_a(sw=self.$make_switch(opts,block))),sw["$[]"](0)}),-1),$def(self,"$on_tail",(function $$on_tail($a){var $post_args,block=$$on_tail.$$p||nil,self=this;return delete $$on_tail.$$p,$post_args=Opal.slice.call(arguments),$send(self,"define_tail",$to_a($post_args),block.$to_proc()),self}),-1),$alias(self,"def_tail_option","define_tail"),$def(self,"$separator",(function(string){return this.$top().$append(string,nil,nil)}),1),$def(self,"$order",(function $$order($a,$b){var $post_args,$kwargs,argv,into,nonopt=$$order.$$p||nil,self=this;if(delete $$order.$$p,$post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return argv=$post_args,null==(into=$kwargs.$$smap.into)&&(into=nil),$eqeq(argv.$size(),1)&&$eqeqeq($$("Array"),argv["$[]"](0))&&(argv=argv["$[]"](0).$dup()),$send(self,"order!",[argv,$hash2(["into"],{into:into})],nonopt.$to_proc())}),-1),$def(self,"$order!",(function $OptionParser_order$excl$50($a,$b){var $post_args,$kwargs,argv,into,nonopt=$OptionParser_order$excl$50.$$p||nil,self=this,setter=nil;if(delete $OptionParser_order$excl$50.$$p,$post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $post_args.length>0&&(argv=$post_args.shift()),null==argv&&(argv=self.$default_argv()),null==(into=$kwargs.$$smap.into)&&(into=nil),$truthy(into)&&(setter=$lambda((function(name,val){var $writer;return null==name&&(name=nil),null==val&&(val=nil),$writer=[name.$to_sym(),val],$send(into,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2)),$send(self,"parse_in_order",[argv,setter],nonopt.$to_proc())}),-1),$def(self,"$parse_in_order",(function $$parse_in_order(argv,setter){var $a,nonopt=$$parse_in_order.$$p||nil,opt=nil,arg=nil,val=nil,rest=nil,$ret_or_2=nil;return delete $$parse_in_order.$$p,null==argv&&(argv=this.$default_argv()),null==setter&&(setter=nil),$a=$to_ary(nil),opt=null==$a[0]?nil:$a[0],arg=null==$a[1]?nil:$a[1],val=null==$a[2]?nil:$a[2],rest=null==$a[3]?nil:$a[3],nonopt=$truthy($ret_or_2=nonopt)?$ret_or_2:$send(this,"proc",[],(function $$52(a){return null==a&&(a=nil),(null==$$52.$$s?this:$$52.$$s).$throw("terminate",a)}),{$$arity:1,$$s:this}),$truthy(arg=$send(this,"catch",["terminate"],(function $$53(){var $d,$e,self=null==$$53.$$s?this:$$53.$$s,sw=nil,cb=nil,eq=nil,has_arg=nil,$ret_or_3=nil;for(null==$gvars["!"]&&($gvars["!"]=nil);$truthy(arg=argv.$shift());)if($eqeqeq(/^--([^=]*)(?:=(.*))?/m,$ret_or_2=arg)){$d=[$$("Regexp").$last_match(1),$$("Regexp").$last_match(2)],opt=$d[0],rest=$d[1],opt=opt.$tr("_","-");try{$e=self.$complete("long",opt,!0),$d=$to_ary($e),sw=null==$d[0]?nil:$d[0],$truthy(self.$require_exact())&&$not(sw.$long()["$include?"](arg))&&self.$raise($$("InvalidOption"),arg)}catch($err){if(!Opal.rescue($err,[$$("ParseError")]))throw $err;try{self.$raise($gvars["!"].$set_option(arg,!0))}finally{Opal.pop_exception()}}try{$e=$send(sw,"parse",[rest,argv],(function $$54($f){var $post_args,self=null==$$54.$$s?this:$$54.$$s;return $post_args=Opal.slice.call(arguments),$send(self,"raise",$to_a($post_args))}),{$$arity:-1,$$s:self}),$d=$to_ary($e),opt=null==$d[0]?nil:$d[0],cb=null==$d[1]?nil:$d[1],val=null==$d[2]?nil:$d[2],$truthy(cb)&&(val=cb.$call(val)),$truthy(setter)&&setter.$call(sw.$switch_name(),val)}catch($err){if(!Opal.rescue($err,[$$("ParseError")]))throw $err;try{self.$raise($gvars["!"].$set_option(arg,rest))}finally{Opal.pop_exception()}}}else if($eqeqeq(/^-(.)((=).*|.+)?/m,$ret_or_2)){$d=[$$("Regexp").$last_match(3),$$("Regexp").$last_match(2),$$("Regexp").$last_match(1)],eq=$d[0],rest=$d[1],opt=$d[2],has_arg=($d=[eq,rest])[0],val=$d[1];try{if($e=self.$search("short",opt),$d=$to_ary($e),sw=null==$d[0]?nil:$d[0],!$truthy(sw))try{$e=self.$complete("short",opt),$d=$to_ary($e),sw=null==$d[0]?nil:$d[0],val=arg.$delete_prefix("-"),has_arg=!0}catch($err){if(!Opal.rescue($err,[$$("InvalidOption")]))throw $err;try{$truthy(self.$require_exact())&&self.$raise(),$e=self.$complete("long",opt),$d=$to_ary($e),sw=null==$d[0]?nil:$d[0],eq=$truthy($ret_or_3=eq)?$ret_or_3:rest["$!"]()}finally{Opal.pop_exception()}}}catch($err){if(!Opal.rescue($err,[$$("ParseError")]))throw $err;try{self.$raise($gvars["!"].$set_option(arg,!0))}finally{Opal.pop_exception()}}var $no_errors=!0;try{$e=$send(sw,"parse",[val,argv],(function $$55($f){var exc,self=null==$$55.$$s?this:$$55.$$s;return exc=Opal.slice.call(arguments),$truthy(eq)?$send(self,"raise",$to_a(exc)):nil}),{$$arity:-1,$$s:self}),$d=$to_ary($e),opt=null==$d[0]?nil:$d[0],cb=null==$d[1]?nil:$d[1],val=null==$d[2]?nil:$d[2]}catch($err){if($no_errors=!1,!Opal.rescue($err,[$$("ParseError")]))throw $err;try{self.$raise($gvars["!"].$set_option(arg,$rb_gt(arg.$length(),2)))}finally{Opal.pop_exception()}}finally{$no_errors&&$truthy(has_arg)&&$not(eq)&&$eqeq(arg,"-"+opt)&&self.$raise($$("InvalidOption"),arg)}try{$truthy(opt)&&($not(rest)||$neqeq(opt=opt.$sub(/^-*/,"-"),"-"))&&argv.$unshift(opt),$truthy(cb)&&(val=cb.$call(val)),$truthy(setter)&&setter.$call(sw.$switch_name(),val)}catch($err){if(!Opal.rescue($err,[$$("ParseError")]))throw $err;try{self.$raise($gvars["!"].$set_option(arg,$rb_gt(arg.$length(),2)))}finally{Opal.pop_exception()}}}else $send(self,"catch",["prune"],(function $$56(){return $send(null==$$56.$$s?this:$$56.$$s,"visit",["each_option"],(function(sw0){return null==sw0&&(sw0=nil),sw=sw0,$eqeqeq($$("Switch"),sw)&&$truthy(sw["$match_nonswitch?"](arg))?sw.$block().$call(arg):nil}),1),nonopt.$call(arg)}),{$$arity:0,$$s:self});return nil}),{$$arity:0,$$s:this}))&&argv.$unshift(arg),$send(this,"visit",["search","short",nil],(function(sw){return null==sw&&(sw=nil),$truthy(sw.$pattern())?nil:$send(sw.$block(),"call",$to_a(argv))}),1),argv}),-1),self.$private("parse_in_order"),$def(self,"$permute",(function($a,$b){var $post_args,$kwargs,argv,into,self=this;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return argv=$post_args,null==(into=$kwargs.$$smap.into)&&(into=nil),$eqeq(argv.$size(),1)&&$eqeqeq($$("Array"),argv["$[]"](0))&&(argv=argv["$[]"](0).$dup()),self["$permute!"](argv,$hash2(["into"],{into:into}))}),-1),$def(self,"$permute!",(function($a,$b){var $post_args,$kwargs,argv,into,self=this,nonopts=nil,$writer=nil;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $post_args.length>0&&(argv=$post_args.shift()),null==argv&&(argv=self.$default_argv()),null==(into=$kwargs.$$smap.into)&&(into=nil),nonopts=[],$send(self,"order!",[argv,$hash2(["into"],{into:into})],nonopts.$method("<<").$to_proc()),$send(argv,"[]=",$to_a($writer=[0,0,nonopts])),$writer[$rb_minus($writer.length,1)],argv}),-1),$def(self,"$parse",(function($a,$b){var $post_args,$kwargs,argv,into,self=this;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return argv=$post_args,null==(into=$kwargs.$$smap.into)&&(into=nil),$eqeq(argv.$size(),1)&&$eqeqeq($$("Array"),argv["$[]"](0))&&(argv=argv["$[]"](0).$dup()),self["$parse!"](argv,$hash2(["into"],{into:into}))}),-1),$def(self,"$parse!",(function($a,$b){var $post_args,$kwargs,argv,into,self=this;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return $post_args.length>0&&(argv=$post_args.shift()),null==argv&&(argv=self.$default_argv()),null==(into=$kwargs.$$smap.into)&&(into=nil),$truthy($$("ENV")["$include?"]("POSIXLY_CORRECT"))?self["$order!"](argv,$hash2(["into"],{into:into})):self["$permute!"](argv,$hash2(["into"],{into:into}))}),-1),$def(self,"$getopts",(function($a){var args,$b,self=this,argv=nil,single_options=nil,long_options=nil,result=nil;return args=Opal.slice.call(arguments),argv=$eqeqeq($$("Array"),args.$first())?args.$shift():self.$default_argv(),single_options=null==($b=[].concat($to_a(args)))[0]?nil:$b[0],long_options=$slice.call($b,1),result=$hash2([],{}),$truthy(single_options)&&$send(single_options,"scan",[/(.)(:)?/],(function $$61(opt,val){var self=null==$$61.$$s?this:$$61.$$s,$writer=nil;return null==opt&&(opt=nil),null==val&&(val=nil),$truthy(val)?($send(result,"[]=",$to_a($writer=[opt,nil])),$writer[$rb_minus($writer.length,1)],self.$define("-"+opt+" VAL")):($send(result,"[]=",$to_a($writer=[opt,!1])),$writer[$rb_minus($writer.length,1)],self.$define("-"+opt))}),{$$arity:2,$$s:self}),$send(long_options,"each",[],(function $$62(arg){var $c,$d,opt,self=null==$$62.$$s?this:$$62.$$s,desc=nil,val=nil,$writer=nil,$ret_or_2=nil;return null==arg&&(arg=nil),$d=arg.$split(";",2),arg=null==($c=$to_ary($d))[0]?nil:$c[0],desc=null==$c[1]?nil:$c[1],$d=arg.$split(":",2),opt=null==($c=$to_ary($d))[0]?nil:$c[0],val=null==$c[1]?nil:$c[1],$truthy(val)?($writer=[opt,$truthy(val["$empty?"]())?nil:val],$send(result,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],$send(self,"define",["--"+opt+"="+($truthy($ret_or_2=result["$[]"](opt))?$ret_or_2:"VAL")].concat($to_a([desc].$compact())))):($send(result,"[]=",$to_a($writer=[opt,!1])),$writer[$rb_minus($writer.length,1)],$send(self,"define",["--"+opt].concat($to_a([desc].$compact()))))}),{$$arity:1,$$s:self}),self.$parse_in_order(argv,result.$method("[]=")),result}),-1),$defs(self,"$getopts",(function($a){var args,self=this;return args=Opal.slice.call(arguments),$send(self.$new(),"getopts",$to_a(args))}),-1),$def(self,"$visit",(function $$visit(id,$a){var $post_args,args,block=$$visit.$$p||nil,self=this;return delete $$visit.$$p,$post_args=Opal.slice.call(arguments,1),args=$post_args,$send(self.stack,"reverse_each",[],(function(el){return null==el&&(el=nil),$send(el,"__send__",[id].concat($to_a(args)),block.$to_proc())}),1),nil}),-2),self.$private("visit"),$def(self,"$search",(function $$search(id,key){var block_given,$yield=$$search.$$p||nil,self=this,retval=nil;return delete $$search.$$p,block_given=$yield!==nil,retval=nil,function(){var $brk=Opal.new_brk();try{$send(self,"visit",["search",id,key],(function(k){null==k&&(k=nil),retval=$truthy(block_given)?Opal.yield1($yield,k):k,Opal.brk(nil,$brk)}),{$$arity:1,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),retval}),2),self.$private("search"),$def(self,"$complete",(function(typ,opt,$a,$b){try{var $post_args,icase,pat,self=this,retval=nil,ambiguous=nil,exc=nil;return($post_args=Opal.slice.call(arguments,2)).length>0&&(icase=$post_args.shift()),null==icase&&(icase=!1),$truthy((pat=$post_args)["$empty?"]())&&(retval=nil,function(){var $brk=Opal.new_brk();try{$send(self,"search",[typ,opt],(function(sw){null==sw&&(sw=nil),retval=[sw,opt],Opal.brk(nil,$brk)}),{$$arity:1,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),$truthy(retval))?retval:(ambiguous=function(){var $brk=Opal.new_brk();try{return $send(self,"catch",["ambiguous"],(function $$66(){var self=null==$$66.$$s?this:$$66.$$s;if(retval=nil,function(){var $brk=Opal.new_brk();try{$send(self,"visit",["complete",typ,opt,icase].concat($to_a(pat)),(function(o,$c){var $post_args;null==o&&(o=nil),$post_args=Opal.slice.call(arguments,1),retval=$post_args,Opal.brk(nil,$brk)}),{$$arity:-2,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),!$truthy(retval))return nil;Opal.ret(retval)}),{$$arity:0,$$s:self,$$brk:$brk})}catch(err){if(err===$brk)return err.$v;throw err}}(),exc=$truthy(ambiguous)?$$("AmbiguousOption"):$$("InvalidOption"),self.$raise(exc.$new(opt,$hash2(["additional"],{additional:self.$method("additional_message").$curry()["$[]"](typ)}))))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-3),self.$private("complete"),$def(self,"$additional_message",(function(typ,opt){var $b,all_candidates=nil,checker=nil;return $truthy(typ)&&$truthy(opt)&&$truthy(($b=$$("DidYouMean","skip_raise"))&&$$$($b,"SpellChecker","skip_raise")?"constant":nil)?(all_candidates=[],$send(this,"visit",["get_candidates",typ],(function(candidates){return null==candidates&&(candidates=nil),all_candidates.$concat(candidates)}),1),$send(all_candidates,"select!",[],(function(cand){return null==cand&&(cand=nil),cand["$is_a?"]($$("String"))}),1),checker=$$$($$("DidYouMean"),"SpellChecker").$new($hash2(["dictionary"],{dictionary:all_candidates})),$$("DidYouMean").$formatter().$message_for(all_candidates["$&"](checker.$correct(opt)))):nil}),2),$def(self,"$candidate",(function(word){var $a,$b,$ret_or_2,pat,list=nil,long$=nil,short$=nil,arg=nil,argpat=nil;return list=[],$eqeqeq("-",$ret_or_2=word)?long$=short$=!0:$eqeqeq(/^--/,$ret_or_2)?($b=word.$split(/=/,2),$a=$to_ary($b),word=null==$a[0]?nil:$a[0],arg=null==$a[1]?nil:$a[1],$truthy(arg)&&$not(arg["$empty?"]())&&(argpat=$$("Completion").$regexp(arg,!1)),long$=!0):$eqeqeq(/^-/,$ret_or_2)&&(short$=!0),pat=$$("Completion").$regexp(word,long$),$send(this,"visit",["each_option"],(function(opt){var opts=nil;return null==opt&&(opt=nil),$eqeqeq($$("Switch"),opt)?(opts=$rb_plus($truthy(long$)?opt.$long():[],$truthy(short$)?opt.$short():[]),$truthy(pat)&&(opts=$send($send($$("Completion"),"candidate",[word,!0,pat],opts.$method("each").$to_proc()),"map",[],"first".$to_proc())),$truthy(/^=/["$=~"](opt.$arg()))&&($send(opts,"map!",[],(function(sw){return null==sw&&(sw=nil),$rb_plus(sw,"=")}),1),$truthy(arg)&&$eqeqeq($$("CompletingHash"),opt.$pattern())&&$truthy(opts=opt.$pattern().$candidate(arg,!1,argpat))&&$send(opts,"map!",[],"last".$to_proc())),list.$concat(opts)):nil}),1),list}),1),$def(self,"$load",(function(filename){var $a,basename=nil;if(null==$gvars[0]&&($gvars[0]=nil),null==filename&&(filename=nil),!$truthy(filename)){basename=$$("File").$basename($gvars[0],".*");try{if($truthy(this.$load($$("File").$expand_path(basename,"~/.options"))))return!0}catch($err){if(!Opal.rescue($err,[$$("StandardError")]))throw $err;Opal.pop_exception()}return basename["$<<"](".options"),$send([$$("ENV")["$[]"]("XDG_CONFIG_HOME"),"~/.config"].concat($to_a(($a=$$("ENV")["$[]"]("XDG_CONFIG_DIRS"),$a===nil||null==$a?nil:$send($a,"split",[$$$($$("File"),"PATH_SEPARATOR")])))).concat(["~/config/settings"]),"any?",[],(function $$72(dir){var self=null==$$72.$$s?this:$$72.$$s;if(null==dir&&(dir=nil),$not(dir)||$truthy(dir["$empty?"]()))return nil;try{return self.$load($$("File").$expand_path(basename,dir))}catch($err){if(!Opal.rescue($err,[$$("StandardError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}),{$$arity:1,$$s:this})}try{return $send(this,"parse",$to_a($send($$("IO").$readlines(filename),"each",[],"chomp!".$to_proc()))),!0}catch($err){if(!Opal.rescue($err,[$$$($$("Errno"),"ENOENT"),$$$($$("Errno"),"ENOTDIR")]))throw $err;try{return!1}finally{Opal.pop_exception()}}}),-1),$def(self,"$environment",(function(env){var $ret_or_3;return null==$gvars[0]&&($gvars[0]=nil),null==env&&(env=$$("File").$basename($gvars[0],".*")),$truthy(env=$truthy($ret_or_3=$$("ENV")["$[]"](env))?$ret_or_3:$$("ENV")["$[]"](env.$upcase()))?(this.$require("shellwords"),$send(this,"parse",$to_a($$("Shellwords").$shellwords(env)))):nil}),-1),$send(self,"accept",[$$("Object")],(function(s){var $ret_or_2;return null==s&&(s=nil),$truthy($ret_or_2=s)?$ret_or_2:s["$nil?"]()}),{$$arity:1,$$has_trailing_comma_in_args:!0}),$send(self,"accept",[$$("NilClass")],(function(s){return null==s&&(s=nil),s}),{$$arity:1,$$has_trailing_comma_in_args:!0}),$send(self,"accept",[$$("String"),/.+/m],(function(s,$a){return null==s&&(s=nil),Opal.slice.call(arguments,1),s}),-2),"b[01]+(?:_[01]+)*",(octal="0(?:[0-7]+(?:_[0-7]+)*|b[01]+(?:_[01]+)*|"+(hex="x[\\da-f]+(?:_[\\da-f]+)*")+")?")+"|"+(decimal="\\d+(?:_\\d+)*"),$send(self,"accept",[$$("Integer"),$regexp(["\\A[-+]?(?:","0(?:[0-7]+(?:_[0-7]+)*|b[01]+(?:_[01]+)*|x[\\da-f]+(?:_[\\da-f]+)*)?|\\d+(?:_\\d+)*",")\\z"],"i")],(function $OptionParser$76(s){var self=null==$OptionParser$76.$$s?this:$OptionParser$76.$$s;if(null==s&&(s=nil),!$truthy(s))return nil;try{return self.$Integer(s)}catch($err){if(!Opal.rescue($err,[$$("ArgumentError")]))throw $err;try{return self.$raise($$$($$("OptionParser"),"InvalidArgument"),s)}finally{Opal.pop_exception()}}}),{$$arity:1,$$s:self,$$has_trailing_comma_in_args:!0}),floatpat=$regexp(["\\A[-+]?",float$="(?:"+decimal+"(?=(.)?)(?:\\.(?:"+decimal+")?)?|\\."+decimal+")(?:E[-+]?"+decimal+")?","\\z"],"i"),$send(self,"accept",[$$("Float"),floatpat],(function(s){return null==s&&(s=nil),$truthy(s)?s.$to_f():nil}),{$$arity:1,$$has_trailing_comma_in_args:!0}),real="[-+]?(?:"+octal+"|"+float$+")",$send(self,"accept",[$$("Numeric"),$regexp(["\\A(",real,")(?:/(",real,"))?\\z"],"i")],(function $OptionParser$78(s,d,f,n){var self=null==$OptionParser$78.$$s?this:$OptionParser$78.$$s;return null==s&&(s=nil),null==d&&(d=nil),null==f&&(f=nil),null==n&&(n=nil),$truthy(n)?self.$Rational(d,n):$truthy(f)?self.$Float(s):self.$Integer(s)}),{$$arity:4,$$s:self,$$has_trailing_comma_in_args:!0}),$const_set($nesting[0],"DecimalInteger",$regexp(["\\A[-+]?",decimal,"\\z"],"i")),$send(self,"accept",[$$("DecimalInteger"),$$("DecimalInteger")],(function $OptionParser$79(s){var self=null==$OptionParser$79.$$s?this:$OptionParser$79.$$s;if(null==s&&(s=nil),!$truthy(s))return nil;try{return self.$Integer(s,10)}catch($err){if(!Opal.rescue($err,[$$("ArgumentError")]))throw $err;try{return self.$raise($$$($$("OptionParser"),"InvalidArgument"),s)}finally{Opal.pop_exception()}}}),{$$arity:1,$$s:self,$$has_trailing_comma_in_args:!0}),$const_set($nesting[0],"OctalInteger",$regexp(["\\A[-+]?(?:[0-7]+(?:_[0-7]+)*|0(?:","b[01]+(?:_[01]+)*","|",hex,"))\\z"],"i")),$send(self,"accept",[$$("OctalInteger"),$$("OctalInteger")],(function $OptionParser$80(s){var self=null==$OptionParser$80.$$s?this:$OptionParser$80.$$s;if(null==s&&(s=nil),!$truthy(s))return nil;try{return self.$Integer(s,8)}catch($err){if(!Opal.rescue($err,[$$("ArgumentError")]))throw $err;try{return self.$raise($$$($$("OptionParser"),"InvalidArgument"),s)}finally{Opal.pop_exception()}}}),{$$arity:1,$$s:self,$$has_trailing_comma_in_args:!0}),$const_set($nesting[0],"DecimalNumeric",floatpat),$send(self,"accept",[$$("DecimalNumeric"),floatpat],(function $OptionParser$81(s,f){var self=null==$OptionParser$81.$$s?this:$OptionParser$81.$$s;if(null==s&&(s=nil),null==f&&(f=nil),!$truthy(s))return nil;try{return $truthy(f)?self.$Float(s):self.$Integer(s)}catch($err){if(!Opal.rescue($err,[$$("ArgumentError")]))throw $err;try{return self.$raise($$$($$("OptionParser"),"InvalidArgument"),s)}finally{Opal.pop_exception()}}}),{$$arity:2,$$s:self}),yesno=$$("CompletingHash").$new(),$send(["-","no","false"],"each",[],(function(el){return null==el&&(el=nil),$send(yesno,"[]=",$to_a($writer=[el,!1])),$writer[$rb_minus($writer.length,1)]}),1),$send(["+","yes","true"],"each",[],(function(el){return null==el&&(el=nil),$send(yesno,"[]=",$to_a($writer=[el,!0])),$writer[$rb_minus($writer.length,1)]}),1),$send(yesno,"[]=",$to_a($writer=["nil",!1])),$writer[$rb_minus($writer.length,1)],$send(self,"accept",[$$("TrueClass"),yesno],(function(arg,val){var $ret_or_2;return null==arg&&(arg=nil),null==val&&(val=nil),$truthy($ret_or_2=val["$nil?"]())?$ret_or_2:val}),2),$send(self,"accept",[$$("FalseClass"),yesno],(function(arg,val){var $ret_or_2;return null==arg&&(arg=nil),null==val&&(val=nil),$truthy($ret_or_2=val["$nil?"]()["$!"]())?val:$ret_or_2}),2),$send(self,"accept",[$$("Array")],(function(s){return null==s&&(s=nil),$truthy(s)&&(s=$send(s.$split(","),"collect",[],(function(ss){return null==ss&&(ss=nil),$truthy(ss["$empty?"]())?nil:ss}),1)),s}),{$$arity:1,$$has_trailing_comma_in_args:!0}),$send(self,"accept",[$$("Regexp"),/^\/((?:\\.|[^\\])*)\/([[:alpha:]]+)?$|.*/],(function(all,s,o){var $ret_or_2,f=nil,k=nil;return null==all&&(all=nil),null==s&&(s=nil),null==o&&(o=nil),f=0,$truthy(o)&&($truthy(/i/["$=~"](o))&&(f=f["$|"]($$$($$("Regexp"),"IGNORECASE"))),$truthy(/m/["$=~"](o))&&(f=f["$|"]($$$($$("Regexp"),"MULTILINE"))),$truthy(/x/["$=~"](o))&&(f=f["$|"]($$$($$("Regexp"),"EXTENDED"))),k=o.$delete("imx"),$truthy(k["$empty?"]())&&(k=nil)),$$("Regexp").$new($truthy($ret_or_2=s)?$ret_or_2:all,f,k)}),3),function($base,$super,$parent_nesting){var self=$klass($base,$super,"ParseError"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.args=$proto.reason=$proto.arg0=nil,$const_set($nesting[0],"Reason","parse error"),$def(self,"$initialize",(function($a,$b){var $post_args,$kwargs,args,additional,$c,self=this;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return args=$post_args,null==(additional=$kwargs.$$smap.additional)&&(additional=nil),self.additional=additional,$c=$to_ary(args),self.arg0=null==$c[0]?nil:$c[0],self.args=args,self.reason=nil}),-1),self.$attr_reader("args"),self.$attr_writer("reason"),self.$attr_accessor("additional"),$def(self,"$recover",(function(argv){var $writer;return $writer=[0,0,this.args],$send(argv,"[]=",$to_a($writer)),$rb_minus($writer.length,1),argv}),1),$defs(self,"$filter_backtrace",(function(array){return null==$gvars.DEBUG&&($gvars.DEBUG=nil),$truthy($gvars.DEBUG)||$send(array,"delete_if",[],$regexp(["\\A",$$("Regexp").$quote("./optparse.rb"),":"]).$method("=~").$to_proc()),array}),1),$def(self,"$set_backtrace",(function $$set_backtrace(array){return delete $$set_backtrace.$$p,$send2(this,$find_super(this,"set_backtrace",$$set_backtrace,!1,!0),"set_backtrace",[this.$class().$filter_backtrace(array)],null)}),1),$def(self,"$set_option",(function(opt,eq){var $writer=nil;return $truthy(eq)?($writer=[0,opt],$send(this.args,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):this.args.$unshift(opt),this}),2),$def(self,"$reason",(function(){var $ret_or_2;return $truthy($ret_or_2=this.reason)?$ret_or_2:$$$(this.$class(),"Reason")}),0),$def(self,"$inspect",(function(){return"#<"+this.$class()+": "+this.$args().$join(" ")+">"}),0),$def(self,"$message",(function(){return this.$reason()+": "+this.$args().$join(" ")+($truthy(this.$additional())?this.$additional()["$[]"](this.arg0):nil)}),0),$alias(self,"to_s","message")}($nesting[0],$$("RuntimeError"),$nesting),function($base,$super){$klass($base,$super,"AmbiguousOption").$const_set("Reason","ambiguous option")}($nesting[0],$$("ParseError")),function($base,$super){$klass($base,$super,"NeedlessArgument").$const_set("Reason","needless argument")}($nesting[0],$$("ParseError")),function($base,$super){$klass($base,$super,"MissingArgument").$const_set("Reason","missing argument")}($nesting[0],$$("ParseError")),function($base,$super){$klass($base,$super,"InvalidOption").$const_set("Reason","invalid option")}($nesting[0],$$("ParseError")),function($base,$super){$klass($base,$super,"InvalidArgument").$const_set("Reason","invalid argument")}($nesting[0],$$("ParseError")),function($base,$super){$klass($base,$super,"AmbiguousArgument").$const_set("Reason","ambiguous argument")}($nesting[0],$$("InvalidArgument")),function($base,$parent_nesting){var self=$module($base,"Arguable"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$options=",(function(opt){return $truthy(this.optparse=opt)?nil:function(self,$parent_nesting){return self.$undef_method("options"),self.$undef_method("options=")}(Opal.get_singleton_class(this))}),1),$def(self,"$options",(function $$options(){var $writer,$yield=$$options.$$p||nil,$ret_or_2=nil;if(null==this.optparse&&(this.optparse=nil),null==$gvars["!"]&&($gvars["!"]=nil),delete $$options.$$p,this.optparse=$truthy($ret_or_2=this.optparse)?$ret_or_2:$$("OptionParser").$new(),$writer=[this],$send(this.optparse,"default_argv=",$to_a($writer)),$rb_minus($writer.length,1),!$truthy($ret_or_2=$yield!==nil))return this.optparse;try{return Opal.yield1($yield,this.optparse)}catch($err){if(!Opal.rescue($err,[$$("ParseError")]))throw $err;try{return this.optparse.$warn($gvars["!"]),nil}finally{Opal.pop_exception()}}}),0),$def(self,"$order!",(function $Arguable_order$excl$90(){var blk=$Arguable_order$excl$90.$$p||nil;return delete $Arguable_order$excl$90.$$p,$send(this.$options(),"order!",[this],blk.$to_proc())}),0),$def(self,"$permute!",(function(){return this.$options()["$permute!"](this)}),0),$def(self,"$parse!",(function(){return this.$options()["$parse!"](this)}),0),$def(self,"$getopts",(function($a){var args,self=this;return args=Opal.slice.call(arguments),$send(self.$options(),"getopts",[self].concat($to_a(args)))}),-1),$defs(self,"$extend_object",(function $$extend_object(obj){var $yield=$$extend_object.$$p||nil;return delete $$extend_object.$$p,$send2(this,$find_super(this,"extend_object",$$extend_object,!1,!0),"extend_object",[obj],$yield),$send(obj,"instance_eval",[],(function $$93(){return(null==$$93.$$s?this:$$93.$$s).optparse=nil}),{$$arity:0,$$s:this})}),1),$def(self,"$initialize",(function $$initialize($a){var args,$yield=$$initialize.$$p||nil,self=this;return delete $$initialize.$$p,args=Opal.slice.call(arguments),$send2(self,$find_super(self,"initialize",$$initialize,!1,!0),"initialize",$to_a(args),$yield),self.optparse=nil}),-1)}($nesting[0],$nesting),function($base,$parent_nesting){var self=$module($base,"Acceptables"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$const_set("DecimalInteger",$$$($$("OptionParser"),"DecimalInteger")),self.$const_set("OctalInteger",$$$($$("OptionParser"),"OctalInteger")),self.$const_set("DecimalNumeric",$$$($$("OptionParser"),"DecimalNumeric"))}($nesting[0],$nesting)}($nesting[0],0,$nesting),$$("ARGV").$extend($$$($$("OptionParser"),"Arguable")),$const_set($nesting[0],"OptParse",$$("OptionParser"))}; diff --git a/opal/master/optparse.min.js.gz b/opal/master/optparse.min.js.gz new file mode 100644 index 00000000..432f2264 Binary files /dev/null and b/opal/master/optparse.min.js.gz differ diff --git a/opal/master/ostruct.js b/opal/master/ostruct.js index 29818f89..4696a30f 100644 --- a/opal/master/ostruct.js +++ b/opal/master/ostruct.js @@ -1,186 +1,159 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["ostruct"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; +Opal.modules["ostruct"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $def = Opal.def, $rb_gt = Opal.rb_gt, $neqeq = Opal.neqeq, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super, $rb_plus = Opal.rb_plus, $alias = Opal.alias; - Opal.add_stubs(['$each_pair', '$new_ostruct_member', '$[]=', '$-', '$[]', '$to_sym', '$>', '$length', '$raise', '$new', '$end_with?', '$!=', '$chomp', '$to_s', '$key?', '$enum_for', '$is_a?', '$==', '$instance_variable_get', '$===', '$eql?', '$dup', '$to_n', '$hash', '$attr_reader', '$__send__', '$singleton_class', '$delete', '$respond_to?', '$define_singleton_method', '$__id__', '$class', '$any?', '$+', '$join', '$map', '$inspect']); + Opal.add_stubs('each_pair,new_ostruct_member,[]=,-,[],to_sym,>,length,raise,new,end_with?,!=,chomp,to_s,key?,enum_for,is_a?,==,instance_variable_get,===,eql?,dup,to_n,hash,attr_reader,__send__,singleton_class,delete,respond_to?,define_singleton_method,__id__,class,any?,+,join,map,inspect'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'OpenStruct'); - var $nesting = [self].concat($parent_nesting), $OpenStruct_initialize$1, $OpenStruct_$$$3, $OpenStruct_$$$eq$4, $OpenStruct_method_missing$5, $OpenStruct_respond_to_missing$ques$6, $OpenStruct_each_pair$7, $OpenStruct_$eq_eq$9, $OpenStruct_$eq_eq_eq$10, $OpenStruct_eql$ques$11, $OpenStruct_to_h$12, $OpenStruct_to_n$13, $OpenStruct_hash$14, $OpenStruct_delete_field$15, $OpenStruct_new_ostruct_member$16, $OpenStruct_inspect$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.table = nil; + $proto.table = nil; - Opal.def(self, '$initialize', $OpenStruct_initialize$1 = function $$initialize(hash) { - var $$2, self = this; + $def(self, '$initialize', function $$initialize(hash) { + var self = this; - if (hash == null) { - hash = nil; - }; + if (hash == null) hash = nil;; self.table = $hash2([], {}); if ($truthy(hash)) { - return $send(hash, 'each_pair', [], ($$2 = function(key, value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + return $send(hash, 'each_pair', [], function $$1(key, value){var self = $$1.$$s == null ? this : $$1.$$s, $writer = nil; if (self.table == null) self.table = nil; - if (key == null) { - key = nil; - }; + if (key == null) key = nil;; - if (value == null) { - value = nil; - }; + if (value == null) value = nil;; $writer = [self.$new_ostruct_member(key), value]; - $send(self.table, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 2, $$2)) + $send(self.table, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 2, $$s: self}) } else { return nil }; - }, $OpenStruct_initialize$1.$$arity = -1); + }, -1); - Opal.def(self, '$[]', $OpenStruct_$$$3 = function(name) { + $def(self, '$[]', function $OpenStruct_$$$2(name) { var self = this; return self.table['$[]'](name.$to_sym()) - }, $OpenStruct_$$$3.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $OpenStruct_$$$eq$4 = function(name, value) { + $def(self, '$[]=', function $OpenStruct_$$$eq$3(name, value) { var self = this, $writer = nil; $writer = [self.$new_ostruct_member(name), value]; - $send(self.table, '[]=', Opal.to_a($writer)); + $send(self.table, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $OpenStruct_$$$eq$4.$$arity = 2); + }, 2); - Opal.def(self, '$method_missing', $OpenStruct_method_missing$5 = function $$method_missing(name, $a) { + $def(self, '$method_missing', function $$method_missing(name, $a) { var $post_args, args, self = this, $writer = nil; - $post_args = Opal.slice.call(arguments, 1, arguments.length); + $post_args = Opal.slice.call(arguments, 1); args = $post_args;; if ($truthy($rb_gt(args.$length(), 2))) { - self.$raise($$($nesting, 'NoMethodError').$new("" + "undefined method `" + (name) + "' for #", name))}; + self.$raise($$('NoMethodError').$new("undefined method `" + (name) + "' for #", name)) + }; if ($truthy(name['$end_with?']("="))) { - if ($truthy(args.$length()['$!='](1))) { - self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1)")}; + if ($neqeq(args.$length(), 1)) { + self.$raise($$('ArgumentError'), "wrong number of arguments (0 for 1)") + }; $writer = [self.$new_ostruct_member(name['$[]']($range(0, -2, false))), args['$[]'](0)]; - $send(self.table, '[]=', Opal.to_a($writer)); + $send(self.table, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; } else { return self.table['$[]'](name.$to_sym()) }; - }, $OpenStruct_method_missing$5.$$arity = -2); + }, -2); - Opal.def(self, '$respond_to_missing?', $OpenStruct_respond_to_missing$ques$6 = function(mid, include_private) { - var $a, $iter = $OpenStruct_respond_to_missing$ques$6.$$p, $yield = $iter || nil, self = this, mname = nil, $ret_or_1 = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$respond_to_missing?', function $OpenStruct_respond_to_missing$ques$4(mid, include_private) { + var $a, $yield = $OpenStruct_respond_to_missing$ques$4.$$p || nil, self = this, mname = nil, $ret_or_1 = nil; - if ($iter) $OpenStruct_respond_to_missing$ques$6.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $OpenStruct_respond_to_missing$ques$4.$$p; - if (include_private == null) { - include_private = false; - }; + if (include_private == null) include_private = false;; mname = mid.$to_s().$chomp("=").$to_sym(); if ($truthy(($ret_or_1 = ($a = self.table, ($a === nil || $a == null) ? nil : $send($a, 'key?', [mname]))))) { return $ret_or_1 } else { - return $send2(self, $find_super(self, 'respond_to_missing?', $OpenStruct_respond_to_missing$ques$6, false, true), 'respond_to_missing?', $zuper, $iter) + return $send2(self, $find_super(self, 'respond_to_missing?', $OpenStruct_respond_to_missing$ques$4, false, true), 'respond_to_missing?', [mid, include_private], $yield) }; - }, $OpenStruct_respond_to_missing$ques$6.$$arity = -2); + }, -2); - Opal.def(self, '$each_pair', $OpenStruct_each_pair$7 = function $$each_pair() { - var $$8, $iter = $OpenStruct_each_pair$7.$$p, $yield = $iter || nil, self = this; + $def(self, '$each_pair', function $$each_pair() { + var $yield = $$each_pair.$$p || nil, self = this; - if ($iter) $OpenStruct_each_pair$7.$$p = null; + delete $$each_pair.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$enum_for("each_pair") }; - return $send(self.table, 'each_pair', [], ($$8 = function(pair){var self = $$8.$$s == null ? this : $$8.$$s; - + return $send(self.table, 'each_pair', [], function $$5(pair){ - if (pair == null) { - pair = nil; - }; - return Opal.yield1($yield, pair);;}, $$8.$$s = self, $$8.$$arity = 1, $$8)); - }, $OpenStruct_each_pair$7.$$arity = 0); + if (pair == null) pair = nil;; + return Opal.yield1($yield, pair);;}, 1); + }, 0); - Opal.def(self, '$==', $OpenStruct_$eq_eq$9 = function(other) { + $def(self, '$==', function $OpenStruct_$eq_eq$6(other) { var self = this; - if ($truthy(other['$is_a?']($$($nesting, 'OpenStruct')))) { - } else { + if (!$truthy(other['$is_a?']($$('OpenStruct')))) { return false }; return self.table['$=='](other.$instance_variable_get("@table")); - }, $OpenStruct_$eq_eq$9.$$arity = 1); + }, 1); - Opal.def(self, '$===', $OpenStruct_$eq_eq_eq$10 = function(other) { + $def(self, '$===', function $OpenStruct_$eq_eq_eq$7(other) { var self = this; - if ($truthy(other['$is_a?']($$($nesting, 'OpenStruct')))) { - } else { + if (!$truthy(other['$is_a?']($$('OpenStruct')))) { return false }; return self.table['$==='](other.$instance_variable_get("@table")); - }, $OpenStruct_$eq_eq_eq$10.$$arity = 1); + }, 1); - Opal.def(self, '$eql?', $OpenStruct_eql$ques$11 = function(other) { + $def(self, '$eql?', function $OpenStruct_eql$ques$8(other) { var self = this; - if ($truthy(other['$is_a?']($$($nesting, 'OpenStruct')))) { - } else { + if (!$truthy(other['$is_a?']($$('OpenStruct')))) { return false }; return self.table['$eql?'](other.$instance_variable_get("@table")); - }, $OpenStruct_eql$ques$11.$$arity = 1); + }, 1); - Opal.def(self, '$to_h', $OpenStruct_to_h$12 = function $$to_h() { + $def(self, '$to_h', function $$to_h() { var self = this; return self.table.$dup() - }, $OpenStruct_to_h$12.$$arity = 0); + }, 0); - Opal.def(self, '$to_n', $OpenStruct_to_n$13 = function $$to_n() { + $def(self, '$to_n', function $$to_n() { var self = this; return self.table.$to_n() - }, $OpenStruct_to_n$13.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $OpenStruct_hash$14 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return self.table.$hash() - }, $OpenStruct_hash$14.$$arity = 0); + }, 0); self.$attr_reader("table"); - Opal.def(self, '$delete_field', $OpenStruct_delete_field$15 = function $$delete_field(name) { + $def(self, '$delete_field', function $$delete_field(name) { var self = this, sym = nil; @@ -189,45 +162,42 @@ Opal.modules["ostruct"] = function(Opal) { try { self.$singleton_class().$__send__("remove_method", sym, "" + (sym) + "=") } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$('NameError')])) { try { nil } finally { Opal.pop_exception(); } } else { throw $err; } };; return self.table.$delete(sym); - }, $OpenStruct_delete_field$15.$$arity = 1); + }, 1); - Opal.def(self, '$new_ostruct_member', $OpenStruct_new_ostruct_member$16 = function $$new_ostruct_member(name) { - var $$17, $$18, self = this; + $def(self, '$new_ostruct_member', function $$new_ostruct_member(name) { + var self = this; name = name.$to_sym(); - if ($truthy(self['$respond_to?'](name))) { - } else { + if (!$truthy(self['$respond_to?'](name))) { - $send(self, 'define_singleton_method', [name], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; + $send(self, 'define_singleton_method', [name], function $$9(){var self = $$9.$$s == null ? this : $$9.$$s; if (self.table == null) self.table = nil; - return self.table['$[]'](name)}, $$17.$$s = self, $$17.$$arity = 0, $$17)); - $send(self, 'define_singleton_method', ["" + (name) + "="], ($$18 = function(x){var self = $$18.$$s == null ? this : $$18.$$s, $writer = nil; + return self.table['$[]'](name)}, {$$arity: 0, $$s: self}); + $send(self, 'define_singleton_method', ["" + (name) + "="], function $$10(x){var self = $$10.$$s == null ? this : $$10.$$s, $writer = nil; if (self.table == null) self.table = nil; - if (x == null) { - x = nil; - }; + if (x == null) x = nil;; $writer = [name, x]; - $send(self.table, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$18.$$s = self, $$18.$$arity = 1, $$18)); + $send(self.table, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 1, $$s: self}); }; return name; - }, $OpenStruct_new_ostruct_member$16.$$arity = 1); + }, 1); var ostruct_ids;; - Opal.def(self, '$inspect', $OpenStruct_inspect$19 = function $$inspect() { - var $$20, self = this, result = nil; + $def(self, '$inspect', function $$inspect() { + var self = this, result = nil; @@ -237,7 +207,7 @@ Opal.modules["ostruct"] = function(Opal) { return (function() { try { - result = "" + "#<" + (self.$class()); + result = "#<" + (self.$class()); if (top) { ostruct_ids = {}; @@ -248,19 +218,15 @@ Opal.modules["ostruct"] = function(Opal) { ostruct_ids[ostruct_id] = true; ; if ($truthy(self.table['$any?']())) { - result = $rb_plus(result, " ")}; - result = $rb_plus(result, $send(self.$each_pair(), 'map', [], ($$20 = function(name, value){var self = $$20.$$s == null ? this : $$20.$$s; - + result = $rb_plus(result, " ") + }; + result = $rb_plus(result, $send(self.$each_pair(), 'map', [], function $$11(name, value){ - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (value == null) { - value = nil; - }; - return "" + (name) + "=" + (value.$inspect());}, $$20.$$s = self, $$20.$$arity = 2, $$20)).$join(", ")); + if (value == null) value = nil;; + return "" + (name) + "=" + (value.$inspect());}, 2).$join(", ")); result = $rb_plus(result, ">"); return result; } finally { @@ -270,7 +236,7 @@ Opal.modules["ostruct"] = function(Opal) { } }; })();; - }, $OpenStruct_inspect$19.$$arity = 0); + }, 0); return $alias(self, "to_s", "inspect"); })($nesting[0], null, $nesting) }; diff --git a/opal/master/ostruct.min.js b/opal/master/ostruct.min.js index 7e73dcfa..b741ee43 100644 --- a/opal/master/ostruct.min.js +++ b/opal/master/ostruct.min.js @@ -1 +1 @@ -Opal.modules.ostruct=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super,$alias=Opal.alias;return Opal.add_stubs(["$each_pair","$new_ostruct_member","$[]=","$-","$[]","$to_sym","$>","$length","$raise","$new","$end_with?","$!=","$chomp","$to_s","$key?","$enum_for","$is_a?","$==","$instance_variable_get","$===","$eql?","$dup","$to_n","$hash","$attr_reader","$__send__","$singleton_class","$delete","$respond_to?","$define_singleton_method","$__id__","$class","$any?","$+","$join","$map","$inspect"]),function(self,$OpenStruct_inspect$19){var $OpenStruct_respond_to_missing$ques$6,$OpenStruct_each_pair$7,ostruct_ids,self=$klass(self,null,"OpenStruct"),$nesting=[self].concat($OpenStruct_inspect$19);return self.$$prototype.table=nil,Opal.def(self,"$initialize",$OpenStruct_inspect$19=function(hash){var $$2;return null==hash&&(hash=nil),this.table=$hash2([],{}),$truthy(hash)?$send(hash,"each_pair",[],(($$2=function(key,value){var $writer,self=null==$$2.$$s?this:$$2.$$s;return null==self.table&&(self.table=nil),null==key&&(key=nil),null==value&&(value=nil),$writer=[self.$new_ostruct_member(key),value],$send(self.table,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$2.$$arity=2,$$2)):nil},$OpenStruct_inspect$19.$$arity=-1),Opal.def(self,"$[]",$OpenStruct_inspect$19=function(name){return this.table["$[]"](name.$to_sym())},$OpenStruct_inspect$19.$$arity=1),Opal.def(self,"$[]=",$OpenStruct_inspect$19=function(name,value){var $writer=[this.$new_ostruct_member(name),value];return $send(this.table,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$OpenStruct_inspect$19.$$arity=2),Opal.def(self,"$method_missing",$OpenStruct_inspect$19=function(name,$a){var $writer,lhs,rhs,args=Opal.slice.call(arguments,1,arguments.length);return $truthy((lhs=args.$length(),rhs=2,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))&&this.$raise($$($nesting,"NoMethodError").$new("undefined method `"+name+"' for #",name)),$truthy(name["$end_with?"]("="))?($truthy(args.$length()["$!="](1))&&this.$raise($$($nesting,"ArgumentError"),"wrong number of arguments (0 for 1)"),$writer=[this.$new_ostruct_member(name["$[]"]($range(0,-2,!1))),args["$[]"](0)],$send(this.table,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):this.table["$[]"](name.$to_sym())},$OpenStruct_inspect$19.$$arity=-2),Opal.def(self,"$respond_to_missing?",$OpenStruct_respond_to_missing$ques$6=function(mid,include_private){var $a,mname,$zuper_ii,$iter=$OpenStruct_respond_to_missing$ques$6.$$p,$ret_or_1=nil,$zuper=nil,$zuper_i=nil;for($iter&&($OpenStruct_respond_to_missing$ques$6.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return null==include_private&&(include_private=!1),mname=mid.$to_s().$chomp("=").$to_sym(),$truthy($ret_or_1=($a=this.table)===nil||null==$a?nil:$send($a,"key?",[mname]))?$ret_or_1:$send2(this,$find_super(this,"respond_to_missing?",$OpenStruct_respond_to_missing$ques$6,!1,!0),"respond_to_missing?",$zuper,$iter)},$OpenStruct_respond_to_missing$ques$6.$$arity=-2),Opal.def(self,"$each_pair",$OpenStruct_each_pair$7=function(){var $$8,$iter=$OpenStruct_each_pair$7.$$p,$yield=$iter||nil;return $iter&&($OpenStruct_each_pair$7.$$p=null),$yield===nil?this.$enum_for("each_pair"):$send(this.table,"each_pair",[],(($$8=function(pair){null==$$8.$$s||$$8.$$s;return null==pair&&(pair=nil),Opal.yield1($yield,pair)}).$$s=this,$$8.$$arity=1,$$8))},$OpenStruct_each_pair$7.$$arity=0),Opal.def(self,"$==",$OpenStruct_inspect$19=function(other){return!!$truthy(other["$is_a?"]($$($nesting,"OpenStruct")))&&this.table["$=="](other.$instance_variable_get("@table"))},$OpenStruct_inspect$19.$$arity=1),Opal.def(self,"$===",$OpenStruct_inspect$19=function(other){return!!$truthy(other["$is_a?"]($$($nesting,"OpenStruct")))&&this.table["$==="](other.$instance_variable_get("@table"))},$OpenStruct_inspect$19.$$arity=1),Opal.def(self,"$eql?",$OpenStruct_inspect$19=function(other){return!!$truthy(other["$is_a?"]($$($nesting,"OpenStruct")))&&this.table["$eql?"](other.$instance_variable_get("@table"))},$OpenStruct_inspect$19.$$arity=1),Opal.def(self,"$to_h",$OpenStruct_inspect$19=function(){return this.table.$dup()},$OpenStruct_inspect$19.$$arity=0),Opal.def(self,"$to_n",$OpenStruct_inspect$19=function(){return this.table.$to_n()},$OpenStruct_inspect$19.$$arity=0),Opal.def(self,"$hash",$OpenStruct_inspect$19=function(){return this.table.$hash()},$OpenStruct_inspect$19.$$arity=0),self.$attr_reader("table"),Opal.def(self,"$delete_field",$OpenStruct_inspect$19=function(name){var sym=name.$to_sym();try{this.$singleton_class().$__send__("remove_method",sym,sym+"=")}catch($err){if(!Opal.rescue($err,[$$($nesting,"NameError")]))throw $err;Opal.pop_exception()}return this.table.$delete(sym)},$OpenStruct_inspect$19.$$arity=1),Opal.def(self,"$new_ostruct_member",$OpenStruct_inspect$19=function(name){var $$17,$$18;return name=name.$to_sym(),$truthy(this["$respond_to?"](name))||($send(this,"define_singleton_method",[name],(($$17=function(){var self=null==$$17.$$s?this:$$17.$$s;return null==self.table&&(self.table=nil),self.table["$[]"](name)}).$$s=this,$$17.$$arity=0,$$17)),$send(this,"define_singleton_method",[name+"="],(($$18=function(x){var $writer,self=null==$$18.$$s?this:$$18.$$s;return null==self.table&&(self.table=nil),null==x&&(x=nil),$writer=[name,x],$send(self.table,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$18.$$arity=1,$$18))),name},$OpenStruct_inspect$19.$$arity=1),Opal.def(self,"$inspect",$OpenStruct_inspect$19=function(){var $$20,self=this,result=nil,top=void 0===ostruct_ids,ostruct_id=self.$__id__();return function(){try{return(result="#<"+self.$class(),top&&(ostruct_ids={}),ostruct_ids.hasOwnProperty(ostruct_id))?result+" ...>":(ostruct_ids[ostruct_id]=!0,$truthy(self.table["$any?"]())&&(result=$rb_plus(result," ")),result=$rb_plus(result,$send(self.$each_pair(),"map",[],(($$20=function(name,value){null==$$20.$$s||$$20.$$s;return null==name&&(name=nil),null==value&&(value=nil),name+"="+value.$inspect()}).$$s=self,$$20.$$arity=2,$$20)).$join(", ")),result=$rb_plus(result,">"))}finally{top&&(ostruct_ids=void 0)}}()},$OpenStruct_inspect$19.$$arity=0),$alias(self,"to_s","inspect")}($nesting[0],$nesting)}; +Opal.modules.ostruct=function(Opal){var $nesting=[],nil=Opal.nil,$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$rb_gt=Opal.rb_gt,$neqeq=Opal.neqeq,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super,$rb_plus=Opal.rb_plus,$alias=Opal.alias;return Opal.add_stubs("each_pair,new_ostruct_member,[]=,-,[],to_sym,>,length,raise,new,end_with?,!=,chomp,to_s,key?,enum_for,is_a?,==,instance_variable_get,===,eql?,dup,to_n,hash,attr_reader,__send__,singleton_class,delete,respond_to?,define_singleton_method,__id__,class,any?,+,join,map,inspect"),function($base,$super,$parent_nesting){var ostruct_ids,self=$klass($base,null,"OpenStruct"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.table=nil,$def(self,"$initialize",(function(hash){return null==hash&&(hash=nil),this.table=$hash2([],{}),$truthy(hash)?$send(hash,"each_pair",[],(function $$1(key,value){var $writer,self=null==$$1.$$s?this:$$1.$$s;return null==self.table&&(self.table=nil),null==key&&(key=nil),null==value&&(value=nil),$writer=[self.$new_ostruct_member(key),value],$send(self.table,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:2,$$s:this}):nil}),-1),$def(self,"$[]",(function(name){return this.table["$[]"](name.$to_sym())}),1),$def(self,"$[]=",(function(name,value){var $writer;return $writer=[this.$new_ostruct_member(name),value],$send(this.table,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$def(self,"$method_missing",(function(name,$a){var $post_args,args,self=this,$writer=nil;return $post_args=Opal.slice.call(arguments,1),$truthy($rb_gt((args=$post_args).$length(),2))&&self.$raise($$("NoMethodError").$new("undefined method `"+name+"' for #",name)),$truthy(name["$end_with?"]("="))?($neqeq(args.$length(),1)&&self.$raise($$("ArgumentError"),"wrong number of arguments (0 for 1)"),$writer=[self.$new_ostruct_member(name["$[]"]($range(0,-2,!1))),args["$[]"](0)],$send(self.table,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]):self.table["$[]"](name.$to_sym())}),-2),$def(self,"$respond_to_missing?",(function $OpenStruct_respond_to_missing$ques$4(mid,include_private){var $a,mname,$yield=$OpenStruct_respond_to_missing$ques$4.$$p||nil,$ret_or_1=nil;return delete $OpenStruct_respond_to_missing$ques$4.$$p,null==include_private&&(include_private=!1),mname=mid.$to_s().$chomp("=").$to_sym(),$truthy($ret_or_1=($a=this.table)===nil||null==$a?nil:$send($a,"key?",[mname]))?$ret_or_1:$send2(this,$find_super(this,"respond_to_missing?",$OpenStruct_respond_to_missing$ques$4,!1,!0),"respond_to_missing?",[mid,include_private],$yield)}),-2),$def(self,"$each_pair",(function $$each_pair(){var $yield=$$each_pair.$$p||nil;return delete $$each_pair.$$p,$yield===nil?this.$enum_for("each_pair"):$send(this.table,"each_pair",[],(function(pair){return null==pair&&(pair=nil),Opal.yield1($yield,pair)}),1)}),0),$def(self,"$==",(function(other){return!!$truthy(other["$is_a?"]($$("OpenStruct")))&&this.table["$=="](other.$instance_variable_get("@table"))}),1),$def(self,"$===",(function(other){return!!$truthy(other["$is_a?"]($$("OpenStruct")))&&this.table["$==="](other.$instance_variable_get("@table"))}),1),$def(self,"$eql?",(function(other){return!!$truthy(other["$is_a?"]($$("OpenStruct")))&&this.table["$eql?"](other.$instance_variable_get("@table"))}),1),$def(self,"$to_h",(function(){return this.table.$dup()}),0),$def(self,"$to_n",(function(){return this.table.$to_n()}),0),$def(self,"$hash",(function(){return this.table.$hash()}),0),self.$attr_reader("table"),$def(self,"$delete_field",(function(name){var sym;sym=name.$to_sym();try{this.$singleton_class().$__send__("remove_method",sym,sym+"=")}catch($err){if(!Opal.rescue($err,[$$("NameError")]))throw $err;Opal.pop_exception()}return this.table.$delete(sym)}),1),$def(self,"$new_ostruct_member",(function(name){return name=name.$to_sym(),$truthy(this["$respond_to?"](name))||($send(this,"define_singleton_method",[name],(function $$9(){var self=null==$$9.$$s?this:$$9.$$s;return null==self.table&&(self.table=nil),self.table["$[]"](name)}),{$$arity:0,$$s:this}),$send(this,"define_singleton_method",[name+"="],(function $$10(x){var $writer,self=null==$$10.$$s?this:$$10.$$s;return null==self.table&&(self.table=nil),null==x&&(x=nil),$writer=[name,x],$send(self.table,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:1,$$s:this})),name}),1),$def(self,"$inspect",(function(){var self=this,result=nil,top=void 0===ostruct_ids,ostruct_id=self.$__id__();return function(){try{return result="#<"+self.$class(),top&&(ostruct_ids={}),ostruct_ids.hasOwnProperty(ostruct_id)?result+" ...>":(ostruct_ids[ostruct_id]=!0,$truthy(self.table["$any?"]())&&(result=$rb_plus(result," ")),result=$rb_plus(result,$send(self.$each_pair(),"map",[],(function(name,value){return null==name&&(name=nil),null==value&&(value=nil),name+"="+value.$inspect()}),2).$join(", ")),result=$rb_plus(result,">"))}finally{top&&(ostruct_ids=void 0)}}()}),0),$alias(self,"to_s","inspect")}($nesting[0],0,$nesting)}; diff --git a/opal/master/ostruct.min.js.gz b/opal/master/ostruct.min.js.gz index 38f98b7b..581e7e0e 100644 Binary files a/opal/master/ostruct.min.js.gz and b/opal/master/ostruct.min.js.gz differ diff --git a/opal/master/pathname.js b/opal/master/pathname.js index 2dd3be88..37eb52c5 100644 --- a/opal/master/pathname.js +++ b/opal/master/pathname.js @@ -1,18 +1,11 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["corelib/comparable"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $module = Opal.module, $truthy = Opal.truthy; - - Opal.add_stubs(['$>', '$<', '$===', '$raise', '$class', '$<=>', '$equal?']); - return (function($base, $parent_nesting) { +Opal.modules["corelib/comparable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil, $$$ = Opal.$$$, $truthy = Opal.truthy, $module = Opal.module, $rb_gt = Opal.rb_gt, $rb_lt = Opal.rb_lt, $eqeqeq = Opal.eqeqeq, $Kernel = Opal.Kernel, $def = Opal.def; + + Opal.add_stubs('>,<,===,raise,class,<=>,equal?'); + return (function($base) { var self = $module($base, 'Comparable'); - var $nesting = [self].concat($parent_nesting), $Comparable_$eq_eq$1, $Comparable_$gt$2, $Comparable_$gt_eq$3, $Comparable_$lt$4, $Comparable_$lt_eq$5, $Comparable_between$ques$6, $Comparable_clamp$7, $case = nil; + var $ret_or_1 = nil; @@ -26,25 +19,24 @@ Opal.modules["corelib/comparable"] = function(Opal) { function fail_comparison(lhs, rhs) { var class_name; - (function() {$case = rhs; - if (nil['$===']($case) || true['$===']($case) || false['$===']($case) || $$($nesting, 'Integer')['$===']($case) || $$($nesting, 'Float')['$===']($case)) {return class_name = rhs.$inspect();} - else {return class_name = rhs.$$class;}})() - self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") + (($eqeqeq(nil, ($ret_or_1 = rhs)) || (($eqeqeq(true, $ret_or_1) || (($eqeqeq(false, $ret_or_1) || (($eqeqeq($$$('Integer'), $ret_or_1) || ($eqeqeq($$$('Float'), $ret_or_1))))))))) ? (class_name = rhs.$inspect()) : (class_name = rhs.$$class)) + $Kernel.$raise($$$('ArgumentError'), "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") } function cmp_or_fail(lhs, rhs) { var cmp = (lhs)['$<=>'](rhs); - if ($falsy(cmp)) fail_comparison(lhs, rhs); + if (!$truthy(cmp)) fail_comparison(lhs, rhs); return normalize(cmp); } ; - Opal.def(self, '$==', $Comparable_$eq_eq$1 = function(other) { + $def(self, '$==', function $Comparable_$eq_eq$1(other) { var self = this, cmp = nil; if ($truthy(self['$equal?'](other))) { - return true}; + return true + }; if (self["$<=>"] == Opal.Kernel["$<=>"]) { return false; @@ -56,55 +48,54 @@ Opal.modules["corelib/comparable"] = function(Opal) { return false; } ; - if ($truthy((cmp = self['$<=>'](other)))) { - } else { + if (!$truthy((cmp = self['$<=>'](other)))) { return false }; return normalize(cmp) == 0;; - }, $Comparable_$eq_eq$1.$$arity = 1); + }, 1); - Opal.def(self, '$>', $Comparable_$gt$2 = function(other) { + $def(self, '$>', function $Comparable_$gt$2(other) { var self = this; return cmp_or_fail(self, other) > 0; - }, $Comparable_$gt$2.$$arity = 1); + }, 1); - Opal.def(self, '$>=', $Comparable_$gt_eq$3 = function(other) { + $def(self, '$>=', function $Comparable_$gt_eq$3(other) { var self = this; return cmp_or_fail(self, other) >= 0; - }, $Comparable_$gt_eq$3.$$arity = 1); + }, 1); - Opal.def(self, '$<', $Comparable_$lt$4 = function(other) { + $def(self, '$<', function $Comparable_$lt$4(other) { var self = this; return cmp_or_fail(self, other) < 0; - }, $Comparable_$lt$4.$$arity = 1); + }, 1); - Opal.def(self, '$<=', $Comparable_$lt_eq$5 = function(other) { + $def(self, '$<=', function $Comparable_$lt_eq$5(other) { var self = this; return cmp_or_fail(self, other) <= 0; - }, $Comparable_$lt_eq$5.$$arity = 1); + }, 1); - Opal.def(self, '$between?', $Comparable_between$ques$6 = function(min, max) { + $def(self, '$between?', function $Comparable_between$ques$6(min, max) { var self = this; if ($rb_lt(self, min)) { - return false}; + return false + }; if ($rb_gt(self, max)) { - return false}; + return false + }; return true; - }, $Comparable_between$ques$6.$$arity = 2); - return (Opal.def(self, '$clamp', $Comparable_clamp$7 = function $$clamp(min, max) { + }, 2); + return $def(self, '$clamp', function $$clamp(min, max) { var self = this; - if (max == null) { - max = nil; - }; + if (max == null) max = nil;; var c, excl; @@ -113,7 +104,7 @@ Opal.modules["corelib/comparable"] = function(Opal) { // provide a single Range argument instead of 2 Comparables. if (!Opal.is_a(min, Opal.Range)) { - self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (min.$class()) + " (expected Range)") + $Kernel.$raise($$$('TypeError'), "wrong argument type " + (min.$class()) + " (expected Range)") } excl = min.excl; @@ -121,12 +112,12 @@ Opal.modules["corelib/comparable"] = function(Opal) { min = min.begin; if (max !== nil && excl) { - self.$raise($$($nesting, 'ArgumentError'), "cannot clamp with an exclusive range") + $Kernel.$raise($$$('ArgumentError'), "cannot clamp with an exclusive range") } } if (min !== nil && max !== nil && cmp_or_fail(min, max) > 0) { - self.$raise($$($nesting, 'ArgumentError'), "min argument must be smaller than max argument") + $Kernel.$raise($$$('ArgumentError'), "min argument must be smaller than max argument") } if (min !== nil) { @@ -144,156 +135,153 @@ Opal.modules["corelib/comparable"] = function(Opal) { return self; ; - }, $Comparable_clamp$7.$$arity = -2), nil) && 'clamp'; - })($nesting[0], $nesting) + }, -2); + })('::') }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["pathname"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; +Opal.modules["pathname"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $regexp = Opal.regexp, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $eqeq = Opal.eqeq, $def = Opal.def, $defs = Opal.defs, $to_ary = Opal.to_ary, $send = Opal.send, $to_a = Opal.to_a, $neqeq = Opal.neqeq, $rb_plus = Opal.rb_plus, $not = Opal.not, $alias = Opal.alias, $module = Opal.module; - Opal.add_stubs(['$require', '$include', '$quote', '$===', '$to_s', '$path', '$respond_to?', '$to_path', '$is_a?', '$nil?', '$raise', '$class', '$==', '$attr_reader', '$!', '$relative?', '$chop_basename', '$basename', '$=~', '$new', '$source', '$[]', '$rindex', '$sub', '$absolute?', '$expand_path', '$plus', '$unshift', '$length', '$!=', '$empty?', '$first', '$shift', '$+', '$join', '$dirname', '$pop', '$reverse_each', '$directory?', '$extname', '$<=>', '$nonzero?', '$proc', '$casecmp', '$cleanpath', '$inspect', '$include?', '$fill', '$map', '$entries']); + Opal.add_stubs('require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries'); self.$require("corelib/comparable"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Pathname'); - var $nesting = [self].concat($parent_nesting), $Pathname_initialize$1, $Pathname_$eq_eq$2, $Pathname_absolute$ques$3, $Pathname_relative$ques$4, $Pathname_chop_basename$5, $Pathname_root$ques$6, $Pathname_parent$7, $Pathname_sub$8, $Pathname_cleanpath$9, $Pathname_to_path$10, $Pathname_hash$11, $Pathname_expand_path$12, $Pathname_$plus$13, $Pathname_plus$14, $Pathname_join$15, $Pathname_split$17, $Pathname_dirname$18, $Pathname_basename$19, $Pathname_directory$ques$20, $Pathname_extname$21, $Pathname_$lt_eq_gt$22, $Pathname$23, $Pathname$24, $Pathname_relative_path_from$25, $Pathname_entries$26; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.path = nil; + $proto.path = nil; - self.$include($$($nesting, 'Comparable')); - Opal.const_set($nesting[0], 'SEPARATOR_PAT', Opal.regexp([$$($nesting, 'Regexp').$quote($$$($$($nesting, 'File'), 'SEPARATOR'))])); + self.$include($$('Comparable')); + $const_set($nesting[0], 'SEPARATOR_PAT', $regexp([$$('Regexp').$quote($$$($$('File'), 'SEPARATOR'))])); - Opal.def(self, '$initialize', $Pathname_initialize$1 = function $$initialize(path) { + $def(self, '$initialize', function $$initialize(path) { var self = this; - if ($truthy($$($nesting, 'Pathname')['$==='](path))) { + if ($eqeqeq($$('Pathname'), path)) { self.path = path.$path().$to_s() } else if ($truthy(path['$respond_to?']("to_path"))) { self.path = path.$to_path() - } else if ($truthy(path['$is_a?']($$($nesting, 'String')))) { + } else if ($truthy(path['$is_a?']($$('String')))) { self.path = path } else if ($truthy(path['$nil?']())) { - self.$raise($$($nesting, 'TypeError'), "no implicit conversion of nil into String") + self.$raise($$('TypeError'), "no implicit conversion of nil into String") } else { - self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (path.$class()) + " into String") + self.$raise($$('TypeError'), "no implicit conversion of " + (path.$class()) + " into String") }; - if (self.path['$==']("\u0000")) { - return self.$raise($$($nesting, 'ArgumentError')) + if ($eqeq(self.path, "\u0000")) { + return self.$raise($$('ArgumentError')) } else { return nil }; - }, $Pathname_initialize$1.$$arity = 1); + }, 1); + $defs(self, '$pwd', function $$pwd() { + var self = this; + + return self.$new($$('Dir').$pwd()) + }, 0); self.$attr_reader("path"); - Opal.def(self, '$==', $Pathname_$eq_eq$2 = function(other) { + $def(self, '$==', function $Pathname_$eq_eq$1(other) { var self = this; return other.$path()['$=='](self.path) - }, $Pathname_$eq_eq$2.$$arity = 1); + }, 1); - Opal.def(self, '$absolute?', $Pathname_absolute$ques$3 = function() { + $def(self, '$absolute?', function $Pathname_absolute$ques$2() { var self = this; return self['$relative?']()['$!']() - }, $Pathname_absolute$ques$3.$$arity = 0); + }, 0); - Opal.def(self, '$relative?', $Pathname_relative$ques$4 = function() { + $def(self, '$relative?', function $Pathname_relative$ques$3() { var $a, $b, $c, self = this, path = nil, r = nil; path = self.path; while ($truthy((r = self.$chop_basename(path)))) { - $c = r, $b = Opal.to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c + $c = r, $b = $to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c }; return path['$=='](""); - }, $Pathname_relative$ques$4.$$arity = 0); + }, 0); - Opal.def(self, '$chop_basename', $Pathname_chop_basename$5 = function $$chop_basename(path) { - var self = this, base = nil; + $def(self, '$chop_basename', function $$chop_basename(path) { + var base = nil; - base = $$($nesting, 'File').$basename(path); - if ($truthy($$($nesting, 'Regexp').$new("" + "^" + ($$$($$($nesting, 'Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { + base = $$('File').$basename(path); + if ($truthy($$('Regexp').$new("^" + ($$$($$('Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { return nil } else { return [path['$[]'](0, path.$rindex(base)), base] }; - }, $Pathname_chop_basename$5.$$arity = 1); + }, 1); - Opal.def(self, '$root?', $Pathname_root$ques$6 = function() { + $def(self, '$root?', function $Pathname_root$ques$4() { var self = this; return self.path['$==']("/") - }, $Pathname_root$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$parent', $Pathname_parent$7 = function $$parent() { + $def(self, '$parent', function $$parent() { var self = this, new_path = nil; new_path = self.path.$sub(/\/([^\/]+\/?$)/, ""); - if (new_path['$==']("")) { - new_path = (function() {if ($truthy(self['$absolute?']())) { - return "/" - } else { - return "." - }; return nil; })()}; - return $$($nesting, 'Pathname').$new(new_path); - }, $Pathname_parent$7.$$arity = 0); + if ($eqeq(new_path, "")) { + new_path = ($truthy(self['$absolute?']()) ? ("/") : (".")) + }; + return $$('Pathname').$new(new_path); + }, 0); - Opal.def(self, '$sub', $Pathname_sub$8 = function $$sub($a) { + $def(self, '$sub', function $$sub($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $$($nesting, 'Pathname').$new($send(self.path, 'sub', Opal.to_a(args))); - }, $Pathname_sub$8.$$arity = -1); + return $$('Pathname').$new($send(self.path, 'sub', $to_a(args))); + }, -1); - Opal.def(self, '$cleanpath', $Pathname_cleanpath$9 = function $$cleanpath() { + $def(self, '$cleanpath', function $$cleanpath() { var self = this; return Opal.normalize(self.path) - }, $Pathname_cleanpath$9.$$arity = 0); + }, 0); - Opal.def(self, '$to_path', $Pathname_to_path$10 = function $$to_path() { + $def(self, '$to_path', function $$to_path() { var self = this; return self.path - }, $Pathname_to_path$10.$$arity = 0); + }, 0); - Opal.def(self, '$hash', $Pathname_hash$11 = function $$hash() { + $def(self, '$hash', function $$hash() { var self = this; return self.path - }, $Pathname_hash$11.$$arity = 0); + }, 0); - Opal.def(self, '$expand_path', $Pathname_expand_path$12 = function $$expand_path() { + $def(self, '$expand_path', function $$expand_path() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$expand_path(self.path)) - }, $Pathname_expand_path$12.$$arity = 0); + return $$('Pathname').$new($$('File').$expand_path(self.path)) + }, 0); - Opal.def(self, '$+', $Pathname_$plus$13 = function(other) { + $def(self, '$+', function $Pathname_$plus$5(other) { var self = this; - if ($truthy($$($nesting, 'Pathname')['$==='](other))) { - } else { - other = $$($nesting, 'Pathname').$new(other) + if (!$eqeqeq($$('Pathname'), other)) { + other = $$('Pathname').$new(other) }; - return $$($nesting, 'Pathname').$new(self.$plus(self.path, other.$to_s())); - }, $Pathname_$plus$13.$$arity = 1); + return $$('Pathname').$new(self.$plus(self.path, other.$to_s())); + }, 1); - Opal.def(self, '$plus', $Pathname_plus$14 = function $$plus(path1, path2) { - var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, suffix2 = nil; + $def(self, '$plus', function $$plus(path1, path2) { + var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, suffix2 = nil; prefix2 = path2; @@ -301,184 +289,146 @@ Opal.modules["pathname"] = function(Opal) { basename_list2 = []; while ($truthy((r2 = self.$chop_basename(prefix2)))) { - $c = r2, $b = Opal.to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; + $c = r2, $b = $to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; index_list2.$unshift(prefix2.$length()); basename_list2.$unshift(basename2); }; - if ($truthy(prefix2['$!='](""))) { - return path2}; + if ($neqeq(prefix2, "")) { + return path2 + }; prefix1 = path1; while ($truthy(true)) { - while ($truthy((function() {if ($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']()))) { - return basename_list2.$first()['$=='](".") - } else { - return $ret_or_1 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']())) ? (basename_list2.$first()['$=='](".")) : ($ret_or_1)))) { index_list2.$shift(); basename_list2.$shift(); }; - if ($truthy((r1 = self.$chop_basename(prefix1)))) { - } else { + if (!$truthy((r1 = self.$chop_basename(prefix1)))) { break; }; - $c = r1, $b = Opal.to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; - if (basename1['$=='](".")) { - continue;}; - if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = basename1['$==']("..")))) { - return $ret_or_3 - } else { - return basename_list2['$empty?']() - }; return nil; })()))) { - return $ret_or_2 - } else { - return basename_list2.$first()['$!=']("..") - }; return nil; })())) { + $c = r1, $b = $to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; + if ($eqeq(basename1, ".")) { + continue; + }; + if ((($eqeq(basename1, "..") || ($truthy(basename_list2['$empty?']()))) || ($neqeq(basename_list2.$first(), "..")))) { prefix1 = $rb_plus(prefix1, basename1); - break;;}; + break;; + }; index_list2.$shift(); basename_list2.$shift(); }; r1 = self.$chop_basename(prefix1); - if ($truthy((function() {if ($truthy(($ret_or_4 = r1['$!']()))) { - return Opal.regexp([$$($nesting, 'SEPARATOR_PAT')])['$=~']($$($nesting, 'File').$basename(prefix1)) - } else { - return $ret_or_4 - }; return nil; })())) { - while ($truthy((function() {if ($truthy(($ret_or_5 = basename_list2['$empty?']()['$!']()))) { - return basename_list2.$first()['$==']("..") - } else { - return $ret_or_5 - }; return nil; })())) { + if (($not(r1) && ($truthy($regexp([$$('SEPARATOR_PAT')])['$=~']($$('File').$basename(prefix1)))))) { + while ($truthy(($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']())) ? (basename_list2.$first()['$==']("..")) : ($ret_or_1)))) { index_list2.$shift(); basename_list2.$shift(); - }}; - if ($truthy(basename_list2['$empty?']()['$!']())) { + } + }; + if ($not(basename_list2['$empty?']())) { suffix2 = path2['$[]'](Opal.Range.$new(index_list2.$first(), -1, false)); if ($truthy(r1)) { - return $$($nesting, 'File').$join(prefix1, suffix2) + return $$('File').$join(prefix1, suffix2) } else { return $rb_plus(prefix1, suffix2) }; } else if ($truthy(r1)) { return prefix1 } else { - return $$($nesting, 'File').$dirname(prefix1) + return $$('File').$dirname(prefix1) }; - }, $Pathname_plus$14.$$arity = 2); + }, 2); - Opal.def(self, '$join', $Pathname_join$15 = function $$join($a) {try { + $def(self, '$join', function $$join($a) {try { - var $post_args, args, $$16, self = this, result = nil; + var $post_args, args, self = this, result = nil; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; if ($truthy(args['$empty?']())) { - return self}; + return self + }; result = args.$pop(); - if ($truthy($$($nesting, 'Pathname')['$==='](result))) { - } else { - result = $$($nesting, 'Pathname').$new(result) + if (!$eqeqeq($$('Pathname'), result)) { + result = $$('Pathname').$new(result) }; if ($truthy(result['$absolute?']())) { - return result}; - $send(args, 'reverse_each', [], ($$16 = function(arg){var self = $$16.$$s == null ? this : $$16.$$s; - + return result + }; + $send(args, 'reverse_each', [], function $$6(arg){ - if (arg == null) { - arg = nil; - }; - if ($truthy($$($nesting, 'Pathname')['$==='](arg))) { - } else { - arg = $$($nesting, 'Pathname').$new(arg) + if (arg == null) arg = nil;; + if (!$eqeqeq($$('Pathname'), arg)) { + arg = $$('Pathname').$new(arg) }; result = $rb_plus(arg, result); if ($truthy(result['$absolute?']())) { Opal.ret(result) } else { return nil - };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + };}, 1); return $rb_plus(self, result); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $Pathname_join$15.$$arity = -1); + }, -1); - Opal.def(self, '$split', $Pathname_split$17 = function $$split() { + $def(self, '$split', function $$split() { var self = this; return [self.$dirname(), self.$basename()] - }, $Pathname_split$17.$$arity = 0); + }, 0); - Opal.def(self, '$dirname', $Pathname_dirname$18 = function $$dirname() { + $def(self, '$dirname', function $$dirname() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$dirname(self.path)) - }, $Pathname_dirname$18.$$arity = 0); + return $$('Pathname').$new($$('File').$dirname(self.path)) + }, 0); - Opal.def(self, '$basename', $Pathname_basename$19 = function $$basename() { + $def(self, '$basename', function $$basename() { var self = this; - return $$($nesting, 'Pathname').$new($$($nesting, 'File').$basename(self.path)) - }, $Pathname_basename$19.$$arity = 0); + return $$('Pathname').$new($$('File').$basename(self.path)) + }, 0); - Opal.def(self, '$directory?', $Pathname_directory$ques$20 = function() { + $def(self, '$directory?', function $Pathname_directory$ques$7() { var self = this; - return $$($nesting, 'File')['$directory?'](self.path) - }, $Pathname_directory$ques$20.$$arity = 0); + return $$('File')['$directory?'](self.path) + }, 0); - Opal.def(self, '$extname', $Pathname_extname$21 = function $$extname() { + $def(self, '$extname', function $$extname() { var self = this; - return $$($nesting, 'File').$extname(self.path) - }, $Pathname_extname$21.$$arity = 0); + return $$('File').$extname(self.path) + }, 0); - Opal.def(self, '$<=>', $Pathname_$lt_eq_gt$22 = function(other) { + $def(self, '$<=>', function $Pathname_$lt_eq_gt$8(other) { var self = this; return self.$path()['$<=>'](other.$path()) - }, $Pathname_$lt_eq_gt$22.$$arity = 1); - $alias(self, "eql?", "=="); - $alias(self, "===", "=="); - $alias(self, "to_str", "to_path"); - $alias(self, "to_s", "to_path"); - Opal.const_set($nesting[0], 'SAME_PATHS', (function() {if ($truthy($$$($$($nesting, 'File'), 'FNM_SYSCASE')['$nonzero?']())) { - return $send(self, 'proc', [], ($Pathname$23 = function(a, b){var self = $Pathname$23.$$s == null ? this : $Pathname$23.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a.$casecmp(b)['$=='](0);}, $Pathname$23.$$s = self, $Pathname$23.$$arity = 2, $Pathname$23)) - } else { - return $send(self, 'proc', [], ($Pathname$24 = function(a, b){var self = $Pathname$24.$$s == null ? this : $Pathname$24.$$s; - - - - if (a == null) { - a = nil; - }; - - if (b == null) { - b = nil; - }; - return a['$=='](b);}, $Pathname$24.$$s = self, $Pathname$24.$$arity = 2, $Pathname$24)) - }; return nil; })()); + }, 1); + $const_set($nesting[0], 'SAME_PATHS', ($truthy($$$($$('File'), 'FNM_SYSCASE')['$nonzero?']()) ? ($send(self, 'proc', [], function $Pathname$9(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a.$casecmp(b)['$=='](0);}, 2)) : ($send(self, 'proc', [], function $Pathname$10(a, b){ + + + if (a == null) a = nil;; + + if (b == null) b = nil;; + return a['$=='](b);}, 2)))); - Opal.def(self, '$relative_path_from', $Pathname_relative_path_from$25 = function $$relative_path_from(base_directory) { - var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_6 = nil, $ret_or_7 = nil, relpath_names = nil; + $def(self, '$relative_path_from', function $$relative_path_from(base_directory) { + var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_1 = nil, $ret_or_2 = nil, relpath_names = nil; dest_directory = self.$cleanpath().$to_s(); @@ -487,67 +437,63 @@ Opal.modules["pathname"] = function(Opal) { dest_names = []; while ($truthy((r = self.$chop_basename(dest_prefix)))) { - $c = r, $b = Opal.to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - dest_names.$unshift(basename)}; + $c = r, $b = $to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(basename, ".")) { + dest_names.$unshift(basename) + }; }; base_prefix = base_directory; base_names = []; while ($truthy((r = self.$chop_basename(base_prefix)))) { - $c = r, $b = Opal.to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - base_names.$unshift(basename)}; + $c = r, $b = $to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($neqeq(basename, ".")) { + base_names.$unshift(basename) + }; }; - if ($truthy($$($nesting, 'SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "" + "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) + if (!$truthy($$('SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { + self.$raise($$('ArgumentError'), "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) }; - while ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = dest_names['$empty?']()['$!']()))) { - return base_names['$empty?']()['$!']() - } else { - return $ret_or_7 - }; return nil; })()))) { - return $$($nesting, 'SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first()) - } else { - return $ret_or_6 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = ($truthy(($ret_or_2 = dest_names['$empty?']()['$!']())) ? (base_names['$empty?']()['$!']()) : ($ret_or_2)))) ? ($$('SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first())) : ($ret_or_1)))) { dest_names.$shift(); base_names.$shift(); }; if ($truthy(base_names['$include?'](".."))) { - self.$raise($$($nesting, 'ArgumentError'), "" + "base_directory has ..: " + (base_directory.$inspect()))}; + self.$raise($$('ArgumentError'), "base_directory has ..: " + (base_directory.$inspect())) + }; base_names.$fill(".."); relpath_names = $rb_plus(base_names, dest_names); if ($truthy(relpath_names['$empty?']())) { - return $$($nesting, 'Pathname').$new(".") + return $$('Pathname').$new(".") } else { - return $$($nesting, 'Pathname').$new($send($$($nesting, 'File'), 'join', Opal.to_a(relpath_names))) + return $$('Pathname').$new($send($$('File'), 'join', $to_a(relpath_names))) }; - }, $Pathname_relative_path_from$25.$$arity = 1); - return (Opal.def(self, '$entries', $Pathname_entries$26 = function $$entries() { - var $$27, self = this; + }, 1); + + $def(self, '$entries', function $$entries() { + var self = this; - return $send($$($nesting, 'Dir').$entries(self.path), 'map', [], ($$27 = function(f){var self = $$27.$$s == null ? this : $$27.$$s; + return $send($$('Dir').$entries(self.path), 'map', [], function $$11(f){var self = $$11.$$s == null ? this : $$11.$$s; - if (f == null) { - f = nil; - }; - return self.$class().$new(f);}, $$27.$$s = self, $$27.$$arity = 1, $$27)) - }, $Pathname_entries$26.$$arity = 0), nil) && 'entries'; + if (f == null) f = nil;; + return self.$class().$new(f);}, {$$arity: 1, $$s: self}) + }, 0); + $alias(self, "===", "=="); + $alias(self, "eql?", "=="); + $alias(self, "to_s", "to_path"); + return $alias(self, "to_str", "to_path"); })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_Pathname$28; - - return (Opal.def(self, '$Pathname', $Kernel_Pathname$28 = function $$Pathname(path) { - var self = this; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return $$($nesting, 'Pathname').$new(path) - }, $Kernel_Pathname$28.$$arity = 1), nil) && 'Pathname' + return $def(self, '$Pathname', function $$Pathname(path) { + + return $$('Pathname').$new(path) + }, 1) })($nesting[0], $nesting); }; diff --git a/opal/master/pathname.min.js b/opal/master/pathname.min.js index f2faa471..107da7c8 100644 --- a/opal/master/pathname.min.js +++ b/opal/master/pathname.min.js @@ -1 +1 @@ -Opal.modules["corelib/comparable"]=function(Opal){function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs","$<","$===","$raise","$class","$<=>","$equal?"]),function($base,$Comparable_clamp$7){var self=$module($base,"Comparable"),$nesting=[self].concat($Comparable_clamp$7),$case=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $falsy(cmp)&&function(lhs,class_name){$case=class_name,class_name=nil["$==="]($case)||(!0)["$==="]($case)||(!1)["$==="]($case)||$$($nesting,"Integer")["$==="]($case)||$$($nesting,"Float")["$==="]($case)?class_name.$inspect():class_name.$$class,self.$raise($$($nesting,"ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return Opal.def(self,"$==",$Comparable_clamp$7=function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$>",$Comparable_clamp$7=function(other){return 0=",$Comparable_clamp$7=function(other){return 0<=cmp_or_fail(this,other)},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$<=",$Comparable_clamp$7=function(other){return cmp_or_fail(this,other)<=0},$Comparable_clamp$7.$$arity=1),Opal.def(self,"$between?",$Comparable_clamp$7=function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)},$Comparable_clamp$7.$$arity=2),Opal.def(self,"$clamp",$Comparable_clamp$7=function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||this.$raise($$($nesting,"TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&this.$raise($$($nesting,"ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&0","$nonzero?","$proc","$casecmp","$cleanpath","$inspect","$include?","$fill","$map","$entries"]),self.$require("corelib/comparable"),function($Pathname_entries$26,$Pathname_relative_path_from$25){var $Pathname$23,$Pathname$24,$nesting=[$Pathname_entries$26=$klass($Pathname_entries$26,null,"Pathname")].concat($Pathname_relative_path_from$25);$Pathname_entries$26.$$prototype.path=nil,$Pathname_entries$26.$include($$($nesting,"Comparable")),Opal.const_set($nesting[0],"SEPARATOR_PAT",Opal.regexp([$$($nesting,"Regexp").$quote($$$($$($nesting,"File"),"SEPARATOR"))])),Opal.def($Pathname_entries$26,"$initialize",$Pathname_relative_path_from$25=function(path){return $truthy($$($nesting,"Pathname")["$==="](path))?this.path=path.$path().$to_s():$truthy(path["$respond_to?"]("to_path"))?this.path=path.$to_path():$truthy(path["$is_a?"]($$($nesting,"String")))?this.path=path:$truthy(path["$nil?"]())?this.$raise($$($nesting,"TypeError"),"no implicit conversion of nil into String"):this.$raise($$($nesting,"TypeError"),"no implicit conversion of "+path.$class()+" into String"),this.path["$=="]("\0")?this.$raise($$($nesting,"ArgumentError")):nil},$Pathname_relative_path_from$25.$$arity=1),$Pathname_entries$26.$attr_reader("path"),Opal.def($Pathname_entries$26,"$==",$Pathname_relative_path_from$25=function(other){return other.$path()["$=="](this.path)},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$absolute?",$Pathname_relative_path_from$25=function(){return this["$relative?"]()["$!"]()},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$relative?",$Pathname_relative_path_from$25=function(){for(var $b,r,path=nil,path=this.path;$truthy(r=this.$chop_basename(path));)$b=r,path=null==($b=Opal.to_ary($b))[0]?nil:$b[0];return path["$=="]("")},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$chop_basename",$Pathname_relative_path_from$25=function(path){var base=$$($nesting,"File").$basename(path);return $truthy($$($nesting,"Regexp").$new("^"+$$$($$($nesting,"Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](base))?nil:[path["$[]"](0,path.$rindex(base)),base]},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$root?",$Pathname_relative_path_from$25=function(){return this.path["$=="]("/")},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$parent",$Pathname_relative_path_from$25=function(){var self=this,new_path=nil;return(new_path=self.path.$sub(/\/([^\/]+\/?$)/,""))["$=="]("")&&(new_path=$truthy(self["$absolute?"]())?"/":"."),$$($nesting,"Pathname").$new(new_path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$sub",$Pathname_relative_path_from$25=function($a){var args=Opal.slice.call(arguments,0,arguments.length);return $$($nesting,"Pathname").$new($send(this.path,"sub",Opal.to_a(args)))},$Pathname_relative_path_from$25.$$arity=-1),Opal.def($Pathname_entries$26,"$cleanpath",$Pathname_relative_path_from$25=function(){return Opal.normalize(this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$to_path",$Pathname_relative_path_from$25=function(){return this.path},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$hash",$Pathname_relative_path_from$25=function(){return this.path},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$expand_path",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$expand_path(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$+",$Pathname_relative_path_from$25=function(other){return $truthy($$($nesting,"Pathname")["$==="](other))||(other=$$($nesting,"Pathname").$new(other)),$$($nesting,"Pathname").$new(this.$plus(this.path,other.$to_s()))},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$plus",$Pathname_relative_path_from$25=function(path1,path2){for(var $b,$c,r2,basename2,suffix2,prefix2=nil,index_list2=nil,basename_list2=nil,prefix1=nil,$ret_or_1=nil,r1=nil,basename1=nil,$ret_or_2=nil,$ret_or_3=nil,$ret_or_4=nil,$ret_or_5=nil,prefix2=path2,index_list2=[],basename_list2=[];$truthy(r2=this.$chop_basename(prefix2));)$c=r2,prefix2=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename2=null==$b[1]?nil:$b[1],index_list2.$unshift(prefix2.$length()),basename_list2.$unshift(basename2);if($truthy(prefix2["$!="]("")))return path2;for(prefix1=path1;$truthy(!0);){for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="]("."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();if(!$truthy(r1=this.$chop_basename(prefix1)))break;if($c=r1,$b=Opal.to_ary($c),prefix1=null==$b[0]?nil:$b[0],!(basename1=null==$b[1]?nil:$b[1])["$=="](".")){if($truthy($truthy($ret_or_2=$truthy($ret_or_3=basename1["$=="](".."))?$ret_or_3:basename_list2["$empty?"]())?$ret_or_2:basename_list2.$first()["$!="](".."))){prefix1=$rb_plus(prefix1,basename1);break}index_list2.$shift(),basename_list2.$shift()}}if(r1=this.$chop_basename(prefix1),$truthy($truthy($ret_or_4=r1["$!"]())?Opal.regexp([$$($nesting,"SEPARATOR_PAT")])["$=~"]($$($nesting,"File").$basename(prefix1)):$ret_or_4))for(;$truthy($truthy($ret_or_5=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="](".."):$ret_or_5);)index_list2.$shift(),basename_list2.$shift();return $truthy(basename_list2["$empty?"]()["$!"]())?(suffix2=path2["$[]"](Opal.Range.$new(index_list2.$first(),-1,!1)),$truthy(r1)?$$($nesting,"File").$join(prefix1,suffix2):$rb_plus(prefix1,suffix2)):$truthy(r1)?prefix1:$$($nesting,"File").$dirname(prefix1)},$Pathname_relative_path_from$25.$$arity=2),Opal.def($Pathname_entries$26,"$join",$Pathname_relative_path_from$25=function($a){try{var $$16,result=nil,args=Opal.slice.call(arguments,0,arguments.length);return $truthy(args["$empty?"]())?this:(result=args.$pop(),$truthy($$($nesting,"Pathname")["$==="](result))||(result=$$($nesting,"Pathname").$new(result)),$truthy(result["$absolute?"]())?result:($send(args,"reverse_each",[],(($$16=function(arg){null==$$16.$$s||$$16.$$s;if(null==arg&&(arg=nil),$truthy($$($nesting,"Pathname")["$==="](arg))||(arg=$$($nesting,"Pathname").$new(arg)),result=$rb_plus(arg,result),!$truthy(result["$absolute?"]()))return nil;Opal.ret(result)}).$$s=this,$$16.$$arity=1,$$16)),$rb_plus(this,result)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}},$Pathname_relative_path_from$25.$$arity=-1),Opal.def($Pathname_entries$26,"$split",$Pathname_relative_path_from$25=function(){return[this.$dirname(),this.$basename()]},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$dirname",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$dirname(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$basename",$Pathname_relative_path_from$25=function(){return $$($nesting,"Pathname").$new($$($nesting,"File").$basename(this.path))},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$directory?",$Pathname_relative_path_from$25=function(){return $$($nesting,"File")["$directory?"](this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$extname",$Pathname_relative_path_from$25=function(){return $$($nesting,"File").$extname(this.path)},$Pathname_relative_path_from$25.$$arity=0),Opal.def($Pathname_entries$26,"$<=>",$Pathname_relative_path_from$25=function(other){return this.$path()["$<=>"](other.$path())},$Pathname_relative_path_from$25.$$arity=1),$alias($Pathname_entries$26,"eql?","=="),$alias($Pathname_entries$26,"===","=="),$alias($Pathname_entries$26,"to_str","to_path"),$alias($Pathname_entries$26,"to_s","to_path"),Opal.const_set($nesting[0],"SAME_PATHS",$truthy($$$($$($nesting,"File"),"FNM_SYSCASE")["$nonzero?"]())?$send($Pathname_entries$26,"proc",[],(($Pathname$23=function(a,b){null==$Pathname$23.$$s||$Pathname$23.$$s;return null==a&&(a=nil),null==b&&(b=nil),a.$casecmp(b)["$=="](0)}).$$s=$Pathname_entries$26,$Pathname$23.$$arity=2,$Pathname$23)):$send($Pathname_entries$26,"proc",[],(($Pathname$24=function(a,b){null==$Pathname$24.$$s||$Pathname$24.$$s;return null==a&&(a=nil),null==b&&(b=nil),a["$=="](b)}).$$s=$Pathname_entries$26,$Pathname$24.$$arity=2,$Pathname$24))),Opal.def($Pathname_entries$26,"$relative_path_from",$Pathname_relative_path_from$25=function(base_directory){var $b,$c,dest_prefix=nil,dest_names=nil,r=nil,basename=nil,base_prefix=nil,base_names=nil,$ret_or_6=nil,$ret_or_7=nil,relpath_names=nil,dest_directory=this.$cleanpath().$to_s();for(base_directory=base_directory.$cleanpath().$to_s(),dest_prefix=dest_directory,dest_names=[];$truthy(r=this.$chop_basename(dest_prefix));)$c=r,dest_prefix=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$truthy(basename["$!="]("."))&&dest_names.$unshift(basename);for(base_prefix=base_directory,base_names=[];$truthy(r=this.$chop_basename(base_prefix));)$c=r,base_prefix=null==($b=Opal.to_ary($c))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$truthy(basename["$!="]("."))&&base_names.$unshift(basename);for($truthy($$($nesting,"SAME_PATHS")["$[]"](dest_prefix,base_prefix))||this.$raise($$($nesting,"ArgumentError"),"different prefix: "+dest_prefix.$inspect()+" and "+base_directory.$inspect());$truthy($truthy($ret_or_6=$truthy($ret_or_7=dest_names["$empty?"]()["$!"]())?base_names["$empty?"]()["$!"]():$ret_or_7)?$$($nesting,"SAME_PATHS")["$[]"](dest_names.$first(),base_names.$first()):$ret_or_6);)dest_names.$shift(),base_names.$shift();return $truthy(base_names["$include?"](".."))&&this.$raise($$($nesting,"ArgumentError"),"base_directory has ..: "+base_directory.$inspect()),base_names.$fill(".."),relpath_names=$rb_plus(base_names,dest_names),$truthy(relpath_names["$empty?"]())?$$($nesting,"Pathname").$new("."):$$($nesting,"Pathname").$new($send($$($nesting,"File"),"join",Opal.to_a(relpath_names)))},$Pathname_relative_path_from$25.$$arity=1),Opal.def($Pathname_entries$26,"$entries",$Pathname_entries$26=function(){var $$27;return $send($$($nesting,"Dir").$entries(this.path),"map",[],(($$27=function(f){var self=null==$$27.$$s?this:$$27.$$s;return null==f&&(f=nil),self.$class().$new(f)}).$$s=this,$$27.$$arity=1,$$27))},$Pathname_entries$26.$$arity=0)}($nesting[0],$nesting),function($Kernel_Pathname$28,$parent_nesting){var $Kernel_Pathname$28=$module($Kernel_Pathname$28,"Kernel"),$nesting=[$Kernel_Pathname$28].concat($parent_nesting);return Opal.def($Kernel_Pathname$28,"$Pathname",$Kernel_Pathname$28=function(path){return $$($nesting,"Pathname").$new(path)},$Kernel_Pathname$28.$$arity=1),nil&&"Pathname"}($nesting[0],$nesting)}; +Opal.modules["corelib/comparable"]=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$truthy=Opal.truthy,$module=Opal.module,$rb_gt=Opal.rb_gt,$rb_lt=Opal.rb_lt,$eqeqeq=Opal.eqeqeq,$Kernel=Opal.Kernel,$def=Opal.def;return Opal.add_stubs(">,<,===,raise,class,<=>,equal?"),function($base){var self=$module("::","Comparable"),$ret_or_1=nil;function normalize(what){return Opal.is_a(what,Opal.Integer)?what:$rb_gt(what,0)?1:$rb_lt(what,0)?-1:0}function cmp_or_fail(lhs,rhs){var cmp=lhs["$<=>"](rhs);return $truthy(cmp)||function(lhs,rhs){var class_name;class_name=$eqeqeq(nil,$ret_or_1=rhs)||$eqeqeq(!0,$ret_or_1)||$eqeqeq(!1,$ret_or_1)||$eqeqeq($$$("Integer"),$ret_or_1)||$eqeqeq($$$("Float"),$ret_or_1)?rhs.$inspect():rhs.$$class,$Kernel.$raise($$$("ArgumentError"),"comparison of "+lhs.$class()+" with "+class_name+" failed")}(lhs,rhs),normalize(cmp)}return $def(self,"$==",(function(other){var cmp;return!!$truthy(this["$equal?"](other))||this["$<=>"]!=Opal.Kernel["$<=>"]&&(this.$$comparable?(delete this.$$comparable,!1):!!$truthy(cmp=this["$<=>"](other))&&0==normalize(cmp))}),1),$def(self,"$>",(function(other){return cmp_or_fail(this,other)>0}),1),$def(self,"$>=",(function(other){return cmp_or_fail(this,other)>=0}),1),$def(self,"$<",(function(other){return cmp_or_fail(this,other)<0}),1),$def(self,"$<=",(function(other){return cmp_or_fail(this,other)<=0}),1),$def(self,"$between?",(function(min,max){return!$rb_lt(this,min)&&!$rb_gt(this,max)}),2),$def(self,"$clamp",(function(min,max){var c,excl;if(null==max&&(max=nil),max===nil&&(Opal.is_a(min,Opal.Range)||$Kernel.$raise($$$("TypeError"),"wrong argument type "+min.$class()+" (expected Range)"),excl=min.excl,max=min.end,min=min.begin,max!==nil&&excl&&$Kernel.$raise($$$("ArgumentError"),"cannot clamp with an exclusive range")),min!==nil&&max!==nil&&cmp_or_fail(min,max)>0&&$Kernel.$raise($$$("ArgumentError"),"min argument must be smaller than max argument"),min!==nil){if(0==(c=cmp_or_fail(this,min)))return this;if(c<0)return min}return max!==nil&&(c=cmp_or_fail(this,max))>0?max:this}),-2)}()},Opal.modules.pathname=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$regexp=Opal.regexp,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$eqeq=Opal.eqeq,$def=Opal.def,$defs=Opal.defs,$to_ary=Opal.to_ary,$send=Opal.send,$to_a=Opal.to_a,$neqeq=Opal.neqeq,$rb_plus=Opal.rb_plus,$not=Opal.not,$alias=Opal.alias,$module=Opal.module;return Opal.add_stubs("require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries"),self.$require("corelib/comparable"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Pathname"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.path=nil,self.$include($$("Comparable")),$const_set($nesting[0],"SEPARATOR_PAT",$regexp([$$("Regexp").$quote($$$($$("File"),"SEPARATOR"))])),$def(self,"$initialize",(function(path){return $eqeqeq($$("Pathname"),path)?this.path=path.$path().$to_s():$truthy(path["$respond_to?"]("to_path"))?this.path=path.$to_path():$truthy(path["$is_a?"]($$("String")))?this.path=path:$truthy(path["$nil?"]())?this.$raise($$("TypeError"),"no implicit conversion of nil into String"):this.$raise($$("TypeError"),"no implicit conversion of "+path.$class()+" into String"),$eqeq(this.path,"\0")?this.$raise($$("ArgumentError")):nil}),1),$defs(self,"$pwd",(function(){return this.$new($$("Dir").$pwd())}),0),self.$attr_reader("path"),$def(self,"$==",(function(other){return other.$path()["$=="](this.path)}),1),$def(self,"$absolute?",(function(){return this["$relative?"]()["$!"]()}),0),$def(self,"$relative?",(function(){var $b,path=nil,r=nil;for(path=this.path;$truthy(r=this.$chop_basename(path));)path=null==($b=$to_ary(r))[0]?nil:$b[0];return path["$=="]("")}),0),$def(self,"$chop_basename",(function(path){var base;return base=$$("File").$basename(path),$truthy($$("Regexp").$new("^"+$$$($$("Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](base))?nil:[path["$[]"](0,path.$rindex(base)),base]}),1),$def(self,"$root?",(function(){return this.path["$=="]("/")}),0),$def(self,"$parent",(function(){var new_path=nil;return new_path=this.path.$sub(/\/([^\/]+\/?$)/,""),$eqeq(new_path,"")&&(new_path=$truthy(this["$absolute?"]())?"/":"."),$$("Pathname").$new(new_path)}),0),$def(self,"$sub",(function($a){var args,self=this;return args=Opal.slice.call(arguments),$$("Pathname").$new($send(self.path,"sub",$to_a(args)))}),-1),$def(self,"$cleanpath",(function(){return Opal.normalize(this.path)}),0),$def(self,"$to_path",(function(){return this.path}),0),$def(self,"$hash",(function(){return this.path}),0),$def(self,"$expand_path",(function(){return $$("Pathname").$new($$("File").$expand_path(this.path))}),0),$def(self,"$+",(function(other){return $eqeqeq($$("Pathname"),other)||(other=$$("Pathname").$new(other)),$$("Pathname").$new(this.$plus(this.path,other.$to_s()))}),1),$def(self,"$plus",(function(path1,path2){var $b,prefix2=nil,index_list2=nil,basename_list2=nil,r2=nil,basename2=nil,prefix1=nil,$ret_or_1=nil,r1=nil,basename1=nil,suffix2=nil;for(prefix2=path2,index_list2=[],basename_list2=[];$truthy(r2=this.$chop_basename(prefix2));)prefix2=null==($b=$to_ary(r2))[0]?nil:$b[0],basename2=null==$b[1]?nil:$b[1],index_list2.$unshift(prefix2.$length()),basename_list2.$unshift(basename2);if($neqeq(prefix2,""))return path2;for(prefix1=path1;$truthy(!0);){for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="]("."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();if(!$truthy(r1=this.$chop_basename(prefix1)))break;if(prefix1=null==($b=$to_ary(r1))[0]?nil:$b[0],basename1=null==$b[1]?nil:$b[1],!$eqeq(basename1,".")){if($eqeq(basename1,"..")||$truthy(basename_list2["$empty?"]())||$neqeq(basename_list2.$first(),"..")){prefix1=$rb_plus(prefix1,basename1);break}index_list2.$shift(),basename_list2.$shift()}}if(r1=this.$chop_basename(prefix1),$not(r1)&&$truthy($regexp([$$("SEPARATOR_PAT")])["$=~"]($$("File").$basename(prefix1))))for(;$truthy($truthy($ret_or_1=basename_list2["$empty?"]()["$!"]())?basename_list2.$first()["$=="](".."):$ret_or_1);)index_list2.$shift(),basename_list2.$shift();return $not(basename_list2["$empty?"]())?(suffix2=path2["$[]"](Opal.Range.$new(index_list2.$first(),-1,!1)),$truthy(r1)?$$("File").$join(prefix1,suffix2):$rb_plus(prefix1,suffix2)):$truthy(r1)?prefix1:$$("File").$dirname(prefix1)}),2),$def(self,"$join",(function($a){try{var $post_args,args,self=this,result=nil;return $post_args=Opal.slice.call(arguments),$truthy((args=$post_args)["$empty?"]())?self:(result=args.$pop(),$eqeqeq($$("Pathname"),result)||(result=$$("Pathname").$new(result)),$truthy(result["$absolute?"]())?result:($send(args,"reverse_each",[],(function(arg){if(null==arg&&(arg=nil),$eqeqeq($$("Pathname"),arg)||(arg=$$("Pathname").$new(arg)),result=$rb_plus(arg,result),!$truthy(result["$absolute?"]()))return nil;Opal.ret(result)}),1),$rb_plus(self,result)))}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$split",(function(){return[this.$dirname(),this.$basename()]}),0),$def(self,"$dirname",(function(){return $$("Pathname").$new($$("File").$dirname(this.path))}),0),$def(self,"$basename",(function(){return $$("Pathname").$new($$("File").$basename(this.path))}),0),$def(self,"$directory?",(function(){return $$("File")["$directory?"](this.path)}),0),$def(self,"$extname",(function(){return $$("File").$extname(this.path)}),0),$def(self,"$<=>",(function(other){return this.$path()["$<=>"](other.$path())}),1),$const_set($nesting[0],"SAME_PATHS",$truthy($$$($$("File"),"FNM_SYSCASE")["$nonzero?"]())?$send(self,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a.$casecmp(b)["$=="](0)}),2):$send(self,"proc",[],(function(a,b){return null==a&&(a=nil),null==b&&(b=nil),a["$=="](b)}),2)),$def(self,"$relative_path_from",(function(base_directory){var $b,dest_directory,dest_prefix=nil,dest_names=nil,r=nil,basename=nil,base_prefix=nil,base_names=nil,$ret_or_1=nil,$ret_or_2=nil,relpath_names=nil;for(dest_directory=this.$cleanpath().$to_s(),base_directory=base_directory.$cleanpath().$to_s(),dest_prefix=dest_directory,dest_names=[];$truthy(r=this.$chop_basename(dest_prefix));)dest_prefix=null==($b=$to_ary(r))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$neqeq(basename,".")&&dest_names.$unshift(basename);for(base_prefix=base_directory,base_names=[];$truthy(r=this.$chop_basename(base_prefix));)base_prefix=null==($b=$to_ary(r))[0]?nil:$b[0],basename=null==$b[1]?nil:$b[1],$neqeq(basename,".")&&base_names.$unshift(basename);for($truthy($$("SAME_PATHS")["$[]"](dest_prefix,base_prefix))||this.$raise($$("ArgumentError"),"different prefix: "+dest_prefix.$inspect()+" and "+base_directory.$inspect());$truthy($truthy($ret_or_1=$truthy($ret_or_2=dest_names["$empty?"]()["$!"]())?base_names["$empty?"]()["$!"]():$ret_or_2)?$$("SAME_PATHS")["$[]"](dest_names.$first(),base_names.$first()):$ret_or_1);)dest_names.$shift(),base_names.$shift();return $truthy(base_names["$include?"](".."))&&this.$raise($$("ArgumentError"),"base_directory has ..: "+base_directory.$inspect()),base_names.$fill(".."),relpath_names=$rb_plus(base_names,dest_names),$truthy(relpath_names["$empty?"]())?$$("Pathname").$new("."):$$("Pathname").$new($send($$("File"),"join",$to_a(relpath_names)))}),1),$def(self,"$entries",(function(){return $send($$("Dir").$entries(this.path),"map",[],(function $$11(f){return null==f&&(f=nil),(null==$$11.$$s?this:$$11.$$s).$class().$new(f)}),{$$arity:1,$$s:this})}),0),$alias(self,"===","=="),$alias(self,"eql?","=="),$alias(self,"to_s","to_path"),$alias(self,"to_str","to_path")}($nesting[0],0,$nesting),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$Pathname",(function(path){return $$("Pathname").$new(path)}),1)}($nesting[0],$nesting)}; diff --git a/opal/master/pathname.min.js.gz b/opal/master/pathname.min.js.gz index 6d0d16b3..6637ef5d 100644 Binary files a/opal/master/pathname.min.js.gz and b/opal/master/pathname.min.js.gz differ diff --git a/opal/master/pp.js b/opal/master/pp.js index 39339d63..6a04425e 100644 --- a/opal/master/pp.js +++ b/opal/master/pp.js @@ -1,191 +1,179 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["thread"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $alias = Opal.alias; - - Opal.add_stubs(['$allocate', '$core_initialize!', '$current', '$raise', '$[]', '$coerce_key_name', '$[]=', '$-', '$key?', '$keys', '$private', '$coerce_to!', '$clear', '$empty?', '$size', '$shift', '$push', '$each', '$to_proc', '$=~', '$last_match', '$to_i', '$inspect', '$attr_reader', '$locked?', '$lock', '$unlock']); - - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ThreadError'); - - var $nesting = [self].concat($parent_nesting); +Opal.modules["thread"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $defs = Opal.defs, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $hash2 = Opal.hash2, $Opal = Opal.Opal, $alias = Opal.alias, $const_set = Opal.const_set; - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); + Opal.add_stubs('allocate,core_initialize!,current,raise,[],coerce_key_name,[]=,-,key?,keys,private,coerce_to!,clear,empty?,size,shift,push,each,to_proc,=~,last_match,to_i,inspect,attr_reader,locked?,lock,unlock'); + + $klass($nesting[0], $$('StandardError'), 'ThreadError'); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Thread'); - var $nesting = [self].concat($parent_nesting), $Thread_current$1, $Thread_list$2, $Thread_initialize$3, $Thread_$$$4, $Thread_$$$eq$5, $Thread_key$ques$6, $Thread_keys$7, $Thread_thread_variable_get$8, $Thread_thread_variable_set$9, $Thread_thread_variable$ques$10, $Thread_thread_variables$11, $Thread_core_initialize$excl$12, $Thread_coerce_key_name$13; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.fiber_locals = self.$$prototype.thread_locals = nil; + $proto.fiber_locals = $proto.thread_locals = nil; - Opal.defs(self, '$current', $Thread_current$1 = function $$current() { + $defs(self, '$current', function $$current() { var self = this; if (self.current == null) self.current = nil; - if ($truthy(self.current)) { - } else { + if (!$truthy(self.current)) { self.current = self.$allocate(); self.current['$core_initialize!'](); }; return self.current; - }, $Thread_current$1.$$arity = 0); - Opal.defs(self, '$list', $Thread_list$2 = function $$list() { + }, 0); + $defs(self, '$list', function $$list() { var self = this; return [self.$current()] - }, $Thread_list$2.$$arity = 0); + }, 0); - Opal.def(self, '$initialize', $Thread_initialize$3 = function $$initialize($a) { + $def(self, '$initialize', function $$initialize($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return self.$raise($$($nesting, 'NotImplementedError'), "Thread creation not available"); - }, $Thread_initialize$3.$$arity = -1); + return self.$raise($$('NotImplementedError'), "Thread creation not available"); + }, -1); - Opal.def(self, '$[]', $Thread_$$$4 = function(key) { + $def(self, '$[]', function $Thread_$$$1(key) { var self = this; return self.fiber_locals['$[]'](self.$coerce_key_name(key)) - }, $Thread_$$$4.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Thread_$$$eq$5 = function(key, value) { + $def(self, '$[]=', function $Thread_$$$eq$2(key, value) { var self = this, $writer = nil; $writer = [self.$coerce_key_name(key), value]; - $send(self.fiber_locals, '[]=', Opal.to_a($writer)); + $send(self.fiber_locals, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Thread_$$$eq$5.$$arity = 2); + }, 2); - Opal.def(self, '$key?', $Thread_key$ques$6 = function(key) { + $def(self, '$key?', function $Thread_key$ques$3(key) { var self = this; return self.fiber_locals['$key?'](self.$coerce_key_name(key)) - }, $Thread_key$ques$6.$$arity = 1); + }, 1); - Opal.def(self, '$keys', $Thread_keys$7 = function $$keys() { + $def(self, '$keys', function $$keys() { var self = this; return self.fiber_locals.$keys() - }, $Thread_keys$7.$$arity = 0); + }, 0); - Opal.def(self, '$thread_variable_get', $Thread_thread_variable_get$8 = function $$thread_variable_get(key) { + $def(self, '$thread_variable_get', function $$thread_variable_get(key) { var self = this; return self.thread_locals['$[]'](self.$coerce_key_name(key)) - }, $Thread_thread_variable_get$8.$$arity = 1); + }, 1); - Opal.def(self, '$thread_variable_set', $Thread_thread_variable_set$9 = function $$thread_variable_set(key, value) { + $def(self, '$thread_variable_set', function $$thread_variable_set(key, value) { var self = this, $writer = nil; $writer = [self.$coerce_key_name(key), value]; - $send(self.thread_locals, '[]=', Opal.to_a($writer)); + $send(self.thread_locals, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Thread_thread_variable_set$9.$$arity = 2); + }, 2); - Opal.def(self, '$thread_variable?', $Thread_thread_variable$ques$10 = function(key) { + $def(self, '$thread_variable?', function $Thread_thread_variable$ques$4(key) { var self = this; return self.thread_locals['$key?'](self.$coerce_key_name(key)) - }, $Thread_thread_variable$ques$10.$$arity = 1); + }, 1); - Opal.def(self, '$thread_variables', $Thread_thread_variables$11 = function $$thread_variables() { + $def(self, '$thread_variables', function $$thread_variables() { var self = this; return self.thread_locals.$keys() - }, $Thread_thread_variables$11.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$core_initialize!', $Thread_core_initialize$excl$12 = function() { + $def(self, '$core_initialize!', function $Thread_core_initialize$excl$5() { var self = this; self.thread_locals = $hash2([], {}); return (self.fiber_locals = $hash2([], {})); - }, $Thread_core_initialize$excl$12.$$arity = 0); + }, 0); - Opal.def(self, '$coerce_key_name', $Thread_coerce_key_name$13 = function $$coerce_key_name(key) { - var self = this; - - return $$($nesting, 'Opal')['$coerce_to!'](key, $$($nesting, 'String'), "to_s") - }, $Thread_coerce_key_name$13.$$arity = 1); + $def(self, '$coerce_key_name', function $$coerce_key_name(key) { + + return $Opal['$coerce_to!'](key, $$('String'), "to_s") + }, 1); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Queue'); - var $nesting = [self].concat($parent_nesting), $Queue_initialize$14, $Queue_clear$15, $Queue_empty$ques$16, $Queue_size$17, $Queue_pop$18, $Queue_push$19, $Queue_each$20; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.storage = nil; + $proto.storage = nil; - Opal.def(self, '$initialize', $Queue_initialize$14 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return self.$clear() - }, $Queue_initialize$14.$$arity = 0); + }, 0); - Opal.def(self, '$clear', $Queue_clear$15 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; return (self.storage = []) - }, $Queue_clear$15.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $Queue_empty$ques$16 = function() { + $def(self, '$empty?', function $Queue_empty$ques$6() { var self = this; return self.storage['$empty?']() - }, $Queue_empty$ques$16.$$arity = 0); + }, 0); - Opal.def(self, '$size', $Queue_size$17 = function $$size() { + $def(self, '$size', function $$size() { var self = this; return self.storage.$size() - }, $Queue_size$17.$$arity = 0); - $alias(self, "length", "size"); + }, 0); - Opal.def(self, '$pop', $Queue_pop$18 = function $$pop(non_block) { + $def(self, '$pop', function $$pop(non_block) { var self = this; - if (non_block == null) { - non_block = false; - }; + if (non_block == null) non_block = false;; if ($truthy(self['$empty?']())) { if ($truthy(non_block)) { - self.$raise($$($nesting, 'ThreadError'), "Queue empty")}; - self.$raise($$($nesting, 'ThreadError'), "Deadlock");}; + self.$raise($$('ThreadError'), "Queue empty") + }; + self.$raise($$('ThreadError'), "Deadlock"); + }; return self.storage.$shift(); - }, $Queue_pop$18.$$arity = -1); - $alias(self, "shift", "pop"); - $alias(self, "deq", "pop"); + }, -1); - Opal.def(self, '$push', $Queue_push$19 = function $$push(value) { + $def(self, '$push', function $$push(value) { var self = this; return self.storage.$push(value) - }, $Queue_push$19.$$arity = 1); - $alias(self, "<<", "push"); - $alias(self, "enq", "push"); - return (Opal.def(self, '$each', $Queue_each$20 = function $$each() { - var $iter = $Queue_each$20.$$p, block = $iter || nil, self = this; + }, 1); + + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Queue_each$20.$$p = null; + delete $$each.$$p; - - if ($iter) $Queue_each$20.$$p = null;; + ; return $send(self.storage, 'each', [], block.$to_proc()); - }, $Queue_each$20.$$arity = 0), nil) && 'each'; + }, 0); + $alias(self, "<<", "push"); + $alias(self, "deq", "pop"); + $alias(self, "enq", "push"); + $alias(self, "length", "size"); + return $alias(self, "shift", "pop"); })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Backtrace'); @@ -195,82 +183,79 @@ Opal.modules["thread"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Location'); - var $nesting = [self].concat($parent_nesting), $Location_initialize$21, $Location_to_s$22, $Location_inspect$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.label = self.$$prototype.str = nil; + $proto.label = $proto.str = nil; - Opal.def(self, '$initialize', $Location_initialize$21 = function $$initialize(str) { + $def(self, '$initialize', function $$initialize(str) { var self = this, $ret_or_1 = nil; self.str = str; str['$=~'](/^(.*?):(\d+):(\d+):in `(.*?)'$/); - self.path = $$($nesting, 'Regexp').$last_match(1); - self.label = $$($nesting, 'Regexp').$last_match(4); - self.lineno = $$($nesting, 'Regexp').$last_match(2).$to_i(); + self.path = $$('Regexp').$last_match(1); + self.label = $$('Regexp').$last_match(4); + self.lineno = $$('Regexp').$last_match(2).$to_i(); self.label['$=~'](/(\w+)$/); - return (self.base_label = (function() {if ($truthy(($ret_or_1 = $$($nesting, 'Regexp').$last_match(1)))) { - return $ret_or_1 - } else { - return self.label - }; return nil; })()); - }, $Location_initialize$21.$$arity = 1); + return (self.base_label = ($truthy(($ret_or_1 = $$('Regexp').$last_match(1))) ? ($ret_or_1) : (self.label))); + }, 1); - Opal.def(self, '$to_s', $Location_to_s$22 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return self.str - }, $Location_to_s$22.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $Location_inspect$23 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; return self.str.$inspect() - }, $Location_inspect$23.$$arity = 0); + }, 0); self.$attr_reader("base_label", "label", "lineno", "path"); return $alias(self, "absolute_path", "path"); })($nesting[0], null, $nesting) })($nesting[0], null, $nesting); })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'Queue', $$$($$($nesting, 'Thread'), 'Queue')); + $const_set($nesting[0], 'Queue', $$$($$('Thread'), 'Queue')); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Mutex'); - var $nesting = [self].concat($parent_nesting), $Mutex_initialize$24, $Mutex_lock$25, $Mutex_locked$ques$26, $Mutex_owned$ques$27, $Mutex_try_lock$28, $Mutex_unlock$29, $Mutex_synchronize$30; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.locked = nil; + $proto.locked = nil; - Opal.def(self, '$initialize', $Mutex_initialize$24 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.locked = false) - }, $Mutex_initialize$24.$$arity = 0); + }, 0); - Opal.def(self, '$lock', $Mutex_lock$25 = function $$lock() { + $def(self, '$lock', function $$lock() { var self = this; if ($truthy(self.locked)) { - self.$raise($$($nesting, 'ThreadError'), "Deadlock")}; + self.$raise($$('ThreadError'), "Deadlock") + }; self.locked = true; return self; - }, $Mutex_lock$25.$$arity = 0); + }, 0); - Opal.def(self, '$locked?', $Mutex_locked$ques$26 = function() { + $def(self, '$locked?', function $Mutex_locked$ques$7() { var self = this; return self.locked - }, $Mutex_locked$ques$26.$$arity = 0); + }, 0); - Opal.def(self, '$owned?', $Mutex_owned$ques$27 = function() { + $def(self, '$owned?', function $Mutex_owned$ques$8() { var self = this; return self.locked - }, $Mutex_owned$ques$27.$$arity = 0); + }, 0); - Opal.def(self, '$try_lock', $Mutex_try_lock$28 = function $$try_lock() { + $def(self, '$try_lock', function $$try_lock() { var self = this; if ($truthy(self['$locked?']())) { @@ -280,23 +265,22 @@ Opal.modules["thread"] = function(Opal) { self.$lock(); return true; } - }, $Mutex_try_lock$28.$$arity = 0); + }, 0); - Opal.def(self, '$unlock', $Mutex_unlock$29 = function $$unlock() { + $def(self, '$unlock', function $$unlock() { var self = this; - if ($truthy(self.locked)) { - } else { - self.$raise($$($nesting, 'ThreadError'), "Mutex not locked") + if (!$truthy(self.locked)) { + self.$raise($$('ThreadError'), "Mutex not locked") }; self.locked = false; return self; - }, $Mutex_unlock$29.$$arity = 0); - return (Opal.def(self, '$synchronize', $Mutex_synchronize$30 = function $$synchronize() { - var $iter = $Mutex_synchronize$30.$$p, $yield = $iter || nil, self = this; + }, 0); + return $def(self, '$synchronize', function $$synchronize() { + var $yield = $$synchronize.$$p || nil, self = this; - if ($iter) $Mutex_synchronize$30.$$p = null; + delete $$synchronize.$$p; self.$lock(); @@ -305,237 +289,111 @@ Opal.modules["thread"] = function(Opal) { } finally { self.$unlock() }; })();; - }, $Mutex_synchronize$30.$$arity = 0), nil) && 'synchronize'; + }, 0); })($nesting[0], null, $nesting); }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["stringio"] = function(Opal) { - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $gvars = Opal.gvars; - - Opal.add_stubs(['$include', '$new', '$call', '$close', '$attr_accessor', '$length', '$include?', '$!', '$check_readable', '$==', '$===', '$>=', '$raise', '$>', '$+', '$-', '$seek', '$enum_for', '$eof?', '$ord', '$[]', '$to_str', '$chomp', '$check_writable', '$String', '$write', '$closed_write?', '$closed_read?']); +Opal.modules["stringio"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $defs = Opal.defs, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $rb_ge = Opal.rb_ge, $rb_gt = Opal.rb_gt, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq, $alias = Opal.alias; + + Opal.add_stubs('new,call,close,attr_accessor,check_readable,==,length,===,>=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'StringIO'); - var $nesting = [self].concat($parent_nesting), $StringIO_open$1, $StringIO_initialize$2, $StringIO_eof$ques$3, $StringIO_seek$4, $StringIO_tell$5, $StringIO_rewind$6, $StringIO_each_byte$7, $StringIO_each_char$8, $StringIO_each$9, $StringIO_write$10, $StringIO_read$11, $StringIO_close$12, $StringIO_close_read$13, $StringIO_close_write$14, $StringIO_closed$ques$15, $StringIO_closed_read$ques$16, $StringIO_closed_write$ques$17, $StringIO_check_writable$18, $StringIO_check_readable$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.position = self.$$prototype.string = self.$$prototype.closed = nil; + $proto.position = $proto.string = nil; - self.$include($$$($$($nesting, 'IO'), 'Readable')); - self.$include($$$($$($nesting, 'IO'), 'Writable')); - Opal.defs(self, '$open', $StringIO_open$1 = function $$open(string, mode) { - var $iter = $StringIO_open$1.$$p, block = $iter || nil, self = this, io = nil, res = nil; + $defs(self, '$open', function $$open(string, mode) { + var block = $$open.$$p || nil, self = this, io = nil, res = nil; - if ($iter) $StringIO_open$1.$$p = null; - + delete $$open.$$p; - if ($iter) $StringIO_open$1.$$p = null;; + ; - if (string == null) { - string = ""; - }; + if (string == null) string = "";; - if (mode == null) { - mode = nil; - }; + if (mode == null) mode = nil;; io = self.$new(string, mode); res = block.$call(io); io.$close(); return res; - }, $StringIO_open$1.$$arity = -1); + }, -1); self.$attr_accessor("string"); - Opal.def(self, '$initialize', $StringIO_initialize$2 = function $$initialize(string, mode) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + $def(self, '$initialize', function $$initialize(string, mode) { + var $yield = $$initialize.$$p || nil, self = this; + delete $$initialize.$$p; - if (string == null) { - string = ""; - }; + if (string == null) string = "";; - if (mode == null) { - mode = "rw"; - }; + if (mode == null) mode = "rw";; self.string = string; - self.position = string.$length(); - if ($truthy((function() {if ($truthy(($ret_or_1 = mode['$include?']("r")))) { - return mode['$include?']("w")['$!']() - } else { - return $ret_or_1 - }; return nil; })())) { - return (self.closed = "write") - } else if ($truthy((function() {if ($truthy(($ret_or_2 = mode['$include?']("w")))) { - return mode['$include?']("r")['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { - return (self.closed = "read") - } else { - return nil - }; - }, $StringIO_initialize$2.$$arity = -1); + self.position = 0; + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [nil, mode], null); + }, -1); - Opal.def(self, '$eof?', $StringIO_eof$ques$3 = function() { + $def(self, '$eof?', function $StringIO_eof$ques$1() { var self = this; self.$check_readable(); return self.position['$=='](self.string.$length()); - }, $StringIO_eof$ques$3.$$arity = 0); - $alias(self, "eof", "eof?"); + }, 0); - Opal.def(self, '$seek', $StringIO_seek$4 = function $$seek(pos, whence) { - var self = this, $case = nil; + $def(self, '$seek', function $$seek(pos, whence) { + var self = this, $ret_or_1 = nil; - if (whence == null) { - whence = $$$($$($nesting, 'IO'), 'SEEK_SET'); - }; - $case = whence; - if ($$$($$($nesting, 'IO'), 'SEEK_SET')['$===']($case)) { - if ($truthy($rb_ge(pos, 0))) { + if (whence == null) whence = $$$($$('IO'), 'SEEK_SET');; + self.read_buffer = ""; + if ($eqeqeq($$$($$('IO'), 'SEEK_SET'), ($ret_or_1 = whence))) { + + if (!$truthy($rb_ge(pos, 0))) { + self.$raise($$$($$('Errno'), 'EINVAL')) + }; + self.position = pos; + } else if ($eqeqeq($$$($$('IO'), 'SEEK_CUR'), $ret_or_1)) { + if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { + self.position = self.string.$length() + } else { + self.position = $rb_plus(self.position, pos) + } + } else if ($eqeqeq($$$($$('IO'), 'SEEK_END'), $ret_or_1)) { + if ($truthy($rb_gt(pos, self.string.$length()))) { + self.position = 0 + } else { + self.position = $rb_minus(self.position, pos) + } } else { - self.$raise($$$($$($nesting, 'Errno'), 'EINVAL')) + nil }; - self.position = pos;} - else if ($$$($$($nesting, 'IO'), 'SEEK_CUR')['$===']($case)) {if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { - self.position = self.string.$length() - } else { - self.position = $rb_plus(self.position, pos) - }} - else if ($$$($$($nesting, 'IO'), 'SEEK_END')['$===']($case)) {if ($truthy($rb_gt(pos, self.string.$length()))) { - self.position = 0 - } else { - self.position = $rb_minus(self.position, pos) - }}; return 0; - }, $StringIO_seek$4.$$arity = -2); + }, -2); - Opal.def(self, '$tell', $StringIO_tell$5 = function $$tell() { + $def(self, '$tell', function $$tell() { var self = this; return self.position - }, $StringIO_tell$5.$$arity = 0); - $alias(self, "pos", "tell"); - $alias(self, "pos=", "seek"); + }, 0); - Opal.def(self, '$rewind', $StringIO_rewind$6 = function $$rewind() { + $def(self, '$rewind', function $$rewind() { var self = this; return self.$seek(0) - }, $StringIO_rewind$6.$$arity = 0); - - Opal.def(self, '$each_byte', $StringIO_each_byte$7 = function $$each_byte() { - var $iter = $StringIO_each_byte$7.$$p, block = $iter || nil, $a, self = this, i = nil; - - if ($iter) $StringIO_each_byte$7.$$p = null; - - - if ($iter) $StringIO_each_byte$7.$$p = null;; - if ($truthy(block)) { - } else { - return self.$enum_for("each_byte") - }; - self.$check_readable(); - i = self.position; - while (!($truthy(self['$eof?']()))) { - - block.$call(self.string['$[]'](i).$ord()); - i = $rb_plus(i, 1); - }; - return self; - }, $StringIO_each_byte$7.$$arity = 0); - - Opal.def(self, '$each_char', $StringIO_each_char$8 = function $$each_char() { - var $iter = $StringIO_each_char$8.$$p, block = $iter || nil, $a, self = this, i = nil; - - if ($iter) $StringIO_each_char$8.$$p = null; - - - if ($iter) $StringIO_each_char$8.$$p = null;; - if ($truthy(block)) { - } else { - return self.$enum_for("each_char") - }; - self.$check_readable(); - i = self.position; - while (!($truthy(self['$eof?']()))) { - - block.$call(self.string['$[]'](i)); - i = $rb_plus(i, 1); - }; - return self; - }, $StringIO_each_char$8.$$arity = 0); - - Opal.def(self, '$each', $StringIO_each$9 = function $$each(separator) { - var $iter = $StringIO_each$9.$$p, $yield = $iter || nil, self = this, chomp_lines = nil; - if ($gvars["/"] == null) $gvars["/"] = nil; - - if ($iter) $StringIO_each$9.$$p = null; - - - if (separator == null) { - separator = $gvars["/"]; - }; - if (($yield !== nil)) { - } else { - return self.$enum_for("each_line") - }; - self.$check_readable(); - chomp_lines = false; - if ($truthy($$$('::', 'Hash')['$==='](separator))) { - separator = (function() {if ($truthy((chomp_lines = separator['$[]']("chomp")))) { - return /\r?\n/ - } else { - return $gvars["/"] - }; return nil; })() - } else if ($truthy(separator)) { - separator = separator.$to_str() - } else { - separator = undefined - }; - - var str = self.string, stringLength = str.length; - if (self.position < stringLength) str = str.substr(self.position); - if (separator) { - var chomped = (str).$chomp(), trailing = str.length !== chomped.length, splitted = chomped.split(separator); - for (var i = 0, len = splitted.length; i < len; i++) { - var line = chomp_lines ? splitted[i] : (i < len - 1 || trailing ? splitted[i] + separator : splitted[i]); - Opal.yield1($yield, line); - } - } else if (separator === undefined) { - Opal.yield1($yield, str); - } else { - var m, re = /(.+(?:\n\n|$))\n*/g; - while ((m = re.exec(str))) Opal.yield1($yield, m[1]); - } - self.position = stringLength; - ; - return self; - }, $StringIO_each$9.$$arity = -1); - $alias(self, "each_line", "each"); + }, 0); - Opal.def(self, '$write', $StringIO_write$10 = function $$write(string) { + $def(self, '$write', function $$write(string) { var self = this, before = nil, after = nil; self.$check_writable(); + self.read_buffer = ""; string = self.$String(string); - if (self.string.$length()['$=='](self.position)) { + if ($eqeq(self.string.$length(), self.position)) { self.string = $rb_plus(self.string, string); return (self.position = $rb_plus(self.position, string.$length())); @@ -546,239 +404,121 @@ Opal.modules["stringio"] = function(Opal) { self.string = $rb_plus($rb_plus(before, string), after); return (self.position = $rb_plus(self.position, string.$length())); }; - }, $StringIO_write$10.$$arity = 1); + }, 1); - Opal.def(self, '$read', $StringIO_read$11 = function $$read(length, outbuf) { + $def(self, '$read', function $$read(length, outbuf) { var self = this, string = nil, str = nil; - if (length == null) { - length = nil; - }; + if (length == null) length = nil;; - if (outbuf == null) { - outbuf = nil; - }; + if (outbuf == null) outbuf = nil;; self.$check_readable(); if ($truthy(self['$eof?']())) { - return nil}; - string = (function() {if ($truthy(length)) { - - str = self.string['$[]'](self.position, length); - self.position = $rb_plus(self.position, length); - return str; - } else { - - str = self.string['$[]'](Opal.Range.$new(self.position, -1, false)); - self.position = self.string.$length(); - return str; - }; return nil; })(); + return nil + }; + string = ($truthy(length) ? (((str = self.string['$[]'](self.position, length)), (self.position = $rb_plus(self.position, length)), ($truthy($rb_gt(self.position, self.string.$length())) ? ((self.position = self.string.$length())) : nil), str)) : (((str = self.string['$[]'](Opal.Range.$new(self.position, -1, false))), (self.position = self.string.$length()), str))); if ($truthy(outbuf)) { return outbuf.$write(string) } else { return string }; - }, $StringIO_read$11.$$arity = -1); - - Opal.def(self, '$close', $StringIO_close$12 = function $$close() { - var self = this; - - return (self.closed = "both") - }, $StringIO_close$12.$$arity = 0); - - Opal.def(self, '$close_read', $StringIO_close_read$13 = function $$close_read() { - var self = this; - - if (self.closed['$==']("write")) { - return (self.closed = "both") - } else { - return (self.closed = "read") - } - }, $StringIO_close_read$13.$$arity = 0); - - Opal.def(self, '$close_write', $StringIO_close_write$14 = function $$close_write() { - var self = this; - - if (self.closed['$==']("read")) { - return (self.closed = "both") - } else { - return (self.closed = "write") - } - }, $StringIO_close_write$14.$$arity = 0); - - Opal.def(self, '$closed?', $StringIO_closed$ques$15 = function() { - var self = this; - - return self.closed['$==']("both") - }, $StringIO_closed$ques$15.$$arity = 0); - - Opal.def(self, '$closed_read?', $StringIO_closed_read$ques$16 = function() { - var self = this, $ret_or_3 = nil; - - if ($truthy(($ret_or_3 = self.closed['$==']("read")))) { - return $ret_or_3 - } else { - return self.closed['$==']("both") - } - }, $StringIO_closed_read$ques$16.$$arity = 0); + }, -1); - Opal.def(self, '$closed_write?', $StringIO_closed_write$ques$17 = function() { - var self = this, $ret_or_4 = nil; - - if ($truthy(($ret_or_4 = self.closed['$==']("write")))) { - return $ret_or_4 - } else { - return self.closed['$==']("both") - } - }, $StringIO_closed_write$ques$17.$$arity = 0); - - Opal.def(self, '$check_writable', $StringIO_check_writable$18 = function $$check_writable() { - var self = this; - - if ($truthy(self['$closed_write?']())) { - return self.$raise($$($nesting, 'IOError'), "not opened for writing") - } else { - return nil - } - }, $StringIO_check_writable$18.$$arity = 0); - return (Opal.def(self, '$check_readable', $StringIO_check_readable$19 = function $$check_readable() { + $def(self, '$sysread', function $$sysread(length) { var self = this; - if ($truthy(self['$closed_read?']())) { - return self.$raise($$($nesting, 'IOError'), "not opened for reading") - } else { - return nil - } - }, $StringIO_check_readable$19.$$arity = 0), nil) && 'check_readable'; - })($nesting[0], $$($nesting, 'IO'), $nesting) + + self.$check_readable(); + return self.$read(length); + }, 1); + $alias(self, "eof", "eof?"); + $alias(self, "pos", "tell"); + $alias(self, "pos=", "seek"); + return $alias(self, "readpartial", "read"); + })($nesting[0], $$('IO'), $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["prettyprint"] = function(Opal) { - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - - Opal.add_stubs(['$dup', '$lambda', '$*', '$new', '$to_proc', '$flush', '$attr_reader', '$last', '$<', '$+', '$deq', '$empty?', '$breakables', '$shift', '$output', '$-', '$width', '$!', '$===', '$first', '$length', '$<<', '$add', '$break_outmost_groups', '$group', '$breakable', '$break?', '$call', '$text', '$group_sub', '$nest', '$depth', '$push', '$enq', '$pop', '$delete', '$each', '$clear', '$indent', '$current_group', '$newline', '$genspace', '$group_queue', '$[]', '$downto', '$slice!', '$break', '$[]=']); +Opal.modules["prettyprint"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $klass = Opal.klass, $send = Opal.send, $rb_times = Opal.rb_times, $defs = Opal.defs, $truthy = Opal.truthy, $def = Opal.def, $rb_lt = Opal.rb_lt, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $eqeqeq = Opal.eqeqeq, $to_a = Opal.to_a; + + Opal.add_stubs('dup,lambda,*,new,to_proc,flush,attr_reader,last,<,+,deq,empty?,breakables,shift,output,-,width,!,===,first,length,<<,add,break_outmost_groups,group,breakable,break?,call,text,group_sub,nest,depth,push,enq,pop,delete,each,clear,indent,current_group,newline,genspace,group_queue,[],downto,slice!,break,[]='); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'PrettyPrint'); - var $nesting = [self].concat($parent_nesting), $PrettyPrint_format$1, $PrettyPrint_singleline_format$3, $PrettyPrint_initialize$4, $PrettyPrint_current_group$6, $PrettyPrint_break_outmost_groups$7, $PrettyPrint_text$8, $PrettyPrint_fill_breakable$9, $PrettyPrint_breakable$11, $PrettyPrint_group$12, $PrettyPrint_group_sub$15, $PrettyPrint_nest$16, $PrettyPrint_flush$17; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.group_stack = self.$$prototype.maxwidth = self.$$prototype.output_width = self.$$prototype.buffer_width = self.$$prototype.group_queue = self.$$prototype.buffer = self.$$prototype.output = self.$$prototype.newline = self.$$prototype.genspace = self.$$prototype.indent = nil; + $proto.group_stack = $proto.maxwidth = $proto.output_width = $proto.buffer_width = $proto.group_queue = $proto.buffer = $proto.output = $proto.newline = $proto.genspace = $proto.indent = nil; - Opal.defs($$($nesting, 'PrettyPrint'), '$format', $PrettyPrint_format$1 = function $$format(output, maxwidth, newline, genspace) { - var $$2, $iter = $PrettyPrint_format$1.$$p, $yield = $iter || nil, self = this, q = nil; + $defs($$('PrettyPrint'), '$format', function $$format(output, maxwidth, newline, genspace) { + var $yield = $$format.$$p || nil, self = this, q = nil; - if ($iter) $PrettyPrint_format$1.$$p = null; + delete $$format.$$p; - if (output == null) { - output = "".$dup(); - }; + if (output == null) output = "".$dup();; - if (maxwidth == null) { - maxwidth = 79; - }; + if (maxwidth == null) maxwidth = 79;; - if (newline == null) { - newline = "\n"; - }; + if (newline == null) newline = "\n";; - if (genspace == null) { - genspace = $send(self, 'lambda', [], ($$2 = function(n){var self = $$2.$$s == null ? this : $$2.$$s; - + if (genspace == null) genspace = $send(self, 'lambda', [], function $$1(n){ - if (n == null) { - n = nil; - }; - return $rb_times(" ", n);}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }; - q = $send($$($nesting, 'PrettyPrint'), 'new', [output, maxwidth, newline], genspace.$to_proc()); + if (n == null) n = nil;; + return $rb_times(" ", n);}, 1);; + q = $send($$('PrettyPrint'), 'new', [output, maxwidth, newline], genspace.$to_proc()); Opal.yield1($yield, q); q.$flush(); return output; - }, $PrettyPrint_format$1.$$arity = -1); - Opal.defs($$($nesting, 'PrettyPrint'), '$singleline_format', $PrettyPrint_singleline_format$3 = function $$singleline_format(output, maxwidth, newline, genspace) { - var $iter = $PrettyPrint_singleline_format$3.$$p, $yield = $iter || nil, self = this, q = nil; + }, -1); + $defs($$('PrettyPrint'), '$singleline_format', function $$singleline_format(output, maxwidth, newline, genspace) { + var $yield = $$singleline_format.$$p || nil, q = nil; - if ($iter) $PrettyPrint_singleline_format$3.$$p = null; + delete $$singleline_format.$$p; - if (output == null) { - output = "".$dup(); - }; + if (output == null) output = "".$dup();; - if (maxwidth == null) { - maxwidth = nil; - }; + if (maxwidth == null) maxwidth = nil;; - if (newline == null) { - newline = nil; - }; + if (newline == null) newline = nil;; - if (genspace == null) { - genspace = nil; - }; - q = $$($nesting, 'SingleLine').$new(output); + if (genspace == null) genspace = nil;; + q = $$('SingleLine').$new(output); Opal.yield1($yield, q); return output; - }, $PrettyPrint_singleline_format$3.$$arity = -1); + }, -1); - Opal.def(self, '$initialize', $PrettyPrint_initialize$4 = function $$initialize(output, maxwidth, newline) { - var $iter = $PrettyPrint_initialize$4.$$p, genspace = $iter || nil, $$5, self = this, $ret_or_1 = nil, root_group = nil; + $def(self, '$initialize', function $$initialize(output, maxwidth, newline) { + var genspace = $$initialize.$$p || nil, self = this, $ret_or_1 = nil, root_group = nil; - if ($iter) $PrettyPrint_initialize$4.$$p = null; + delete $$initialize.$$p; + ; - if ($iter) $PrettyPrint_initialize$4.$$p = null;; + if (output == null) output = "".$dup();; - if (output == null) { - output = "".$dup(); - }; + if (maxwidth == null) maxwidth = 79;; - if (maxwidth == null) { - maxwidth = 79; - }; - - if (newline == null) { - newline = "\n"; - }; + if (newline == null) newline = "\n";; self.output = output; self.maxwidth = maxwidth; self.newline = newline; - self.genspace = (function() {if ($truthy(($ret_or_1 = genspace))) { - return $ret_or_1 - } else { - return $send(self, 'lambda', [], ($$5 = function(n){var self = $$5.$$s == null ? this : $$5.$$s; - - - - if (n == null) { - n = nil; - }; - return $rb_times(" ", n);}, $$5.$$s = self, $$5.$$arity = 1, $$5)) - }; return nil; })(); + self.genspace = ($truthy(($ret_or_1 = genspace)) ? ($ret_or_1) : ($send(self, 'lambda', [], function $$2(n){ + + + if (n == null) n = nil;; + return $rb_times(" ", n);}, 1))); self.output_width = 0; self.buffer_width = 0; self.buffer = []; - root_group = $$($nesting, 'Group').$new(0); + root_group = $$('Group').$new(0); self.group_stack = [root_group]; - self.group_queue = $$($nesting, 'GroupQueue').$new(root_group); + self.group_queue = $$('GroupQueue').$new(root_group); return (self.indent = 0); - }, $PrettyPrint_initialize$4.$$arity = -1); + }, -1); self.$attr_reader("output"); self.$attr_reader("maxwidth"); self.$attr_reader("newline"); @@ -786,19 +526,18 @@ Opal.modules["prettyprint"] = function(Opal) { self.$attr_reader("indent"); self.$attr_reader("group_queue"); - Opal.def(self, '$current_group', $PrettyPrint_current_group$6 = function $$current_group() { + $def(self, '$current_group', function $$current_group() { var self = this; return self.group_stack.$last() - }, $PrettyPrint_current_group$6.$$arity = 0); + }, 0); - Opal.def(self, '$break_outmost_groups', $PrettyPrint_break_outmost_groups$7 = function $$break_outmost_groups() { - var $a, $b, self = this, group = nil, data = nil, $ret_or_2 = nil, text = nil; + $def(self, '$break_outmost_groups', function $$break_outmost_groups() { + var $a, $b, self = this, group = nil, data = nil, $ret_or_1 = nil, text = nil; while ($truthy($rb_lt(self.maxwidth, $rb_plus(self.output_width, self.buffer_width)))) { - if ($truthy((group = self.group_queue.$deq()))) { - } else { + if (!$truthy((group = self.group_queue.$deq()))) { return nil }; while (!($truthy(group.$breakables()['$empty?']()))) { @@ -807,27 +546,21 @@ Opal.modules["prettyprint"] = function(Opal) { self.output_width = data.$output(self.output, self.output_width); self.buffer_width = $rb_minus(self.buffer_width, data.$width()); }; - while ($truthy((function() {if ($truthy(($ret_or_2 = self.buffer['$empty?']()['$!']()))) { - return $$($nesting, 'Text')['$==='](self.buffer.$first()) - } else { - return $ret_or_2 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = self.buffer['$empty?']()['$!']())) ? ($$('Text')['$==='](self.buffer.$first())) : ($ret_or_1)))) { text = self.buffer.$shift(); self.output_width = text.$output(self.output, self.output_width); self.buffer_width = $rb_minus(self.buffer_width, text.$width()); }; } - }, $PrettyPrint_break_outmost_groups$7.$$arity = 0); + }, 0); - Opal.def(self, '$text', $PrettyPrint_text$8 = function $$text(obj, width) { + $def(self, '$text', function $$text(obj, width) { var self = this, text = nil; - if (width == null) { - width = obj.$length(); - }; + if (width == null) width = obj.$length();; if ($truthy(self.buffer['$empty?']())) { self.output['$<<'](obj); @@ -835,47 +568,38 @@ Opal.modules["prettyprint"] = function(Opal) { } else { text = self.buffer.$last(); - if ($truthy($$($nesting, 'Text')['$==='](text))) { - } else { + if (!$eqeqeq($$('Text'), text)) { - text = $$($nesting, 'Text').$new(); + text = $$('Text').$new(); self.buffer['$<<'](text); }; text.$add(obj, width); self.buffer_width = $rb_plus(self.buffer_width, width); return self.$break_outmost_groups(); }; - }, $PrettyPrint_text$8.$$arity = -2); + }, -2); - Opal.def(self, '$fill_breakable', $PrettyPrint_fill_breakable$9 = function $$fill_breakable(sep, width) { - var $$10, self = this; + $def(self, '$fill_breakable', function $$fill_breakable(sep, width) { + var self = this; - if (sep == null) { - sep = " "; - }; + if (sep == null) sep = " ";; - if (width == null) { - width = sep.$length(); - }; - return $send(self, 'group', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + if (width == null) width = sep.$length();; + return $send(self, 'group', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; - return self.$breakable(sep, width)}, $$10.$$s = self, $$10.$$arity = 0, $$10)); - }, $PrettyPrint_fill_breakable$9.$$arity = -1); + return self.$breakable(sep, width)}, {$$arity: 0, $$s: self}); + }, -1); - Opal.def(self, '$breakable', $PrettyPrint_breakable$11 = function $$breakable(sep, width) { + $def(self, '$breakable', function $$breakable(sep, width) { var self = this, group = nil; - if (sep == null) { - sep = " "; - }; + if (sep == null) sep = " ";; - if (width == null) { - width = sep.$length(); - }; + if (width == null) width = sep.$length();; group = self.group_stack.$last(); if ($truthy(group['$break?']())) { @@ -886,70 +610,55 @@ Opal.modules["prettyprint"] = function(Opal) { return (self.buffer_width = 0); } else { - self.buffer['$<<']($$($nesting, 'Breakable').$new(sep, width, self)); + self.buffer['$<<']($$('Breakable').$new(sep, width, self)); self.buffer_width = $rb_plus(self.buffer_width, width); return self.$break_outmost_groups(); }; - }, $PrettyPrint_breakable$11.$$arity = -1); + }, -1); - Opal.def(self, '$group', $PrettyPrint_group$12 = function $$group(indent, open_obj, close_obj, open_width, close_width) { - var $$13, $iter = $PrettyPrint_group$12.$$p, $yield = $iter || nil, self = this; + $def(self, '$group', function $$group(indent, open_obj, close_obj, open_width, close_width) { + var $yield = $$group.$$p || nil, self = this; - if ($iter) $PrettyPrint_group$12.$$p = null; + delete $$group.$$p; - if (indent == null) { - indent = 0; - }; + if (indent == null) indent = 0;; - if (open_obj == null) { - open_obj = ""; - }; + if (open_obj == null) open_obj = "";; - if (close_obj == null) { - close_obj = ""; - }; + if (close_obj == null) close_obj = "";; - if (open_width == null) { - open_width = open_obj.$length(); - }; + if (open_width == null) open_width = open_obj.$length();; - if (close_width == null) { - close_width = close_obj.$length(); - }; + if (close_width == null) close_width = close_obj.$length();; self.$text(open_obj, open_width); - $send(self, 'group_sub', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s, $$14; - - return $send(self, 'nest', [indent], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s; + $send(self, 'group_sub', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return Opal.yieldX($yield, []);}, $$14.$$s = self, $$14.$$arity = 0, $$14))}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return $send(self, 'nest', [indent], function $$5(){ + return Opal.yieldX($yield, []);}, 0)}, {$$arity: 0, $$s: self}); return self.$text(close_obj, close_width); - }, $PrettyPrint_group$12.$$arity = -1); + }, -1); - Opal.def(self, '$group_sub', $PrettyPrint_group_sub$15 = function $$group_sub() { - var $iter = $PrettyPrint_group_sub$15.$$p, $yield = $iter || nil, self = this, group = nil; + $def(self, '$group_sub', function $$group_sub() { + var $yield = $$group_sub.$$p || nil, self = this, group = nil; - if ($iter) $PrettyPrint_group_sub$15.$$p = null; + delete $$group_sub.$$p; - group = $$($nesting, 'Group').$new($rb_plus(self.group_stack.$last().$depth(), 1)); + group = $$('Group').$new($rb_plus(self.group_stack.$last().$depth(), 1)); self.group_stack.$push(group); self.group_queue.$enq(group); return (function() { try { return Opal.yieldX($yield, []); } finally { - (self.group_stack.$pop(), (function() {if ($truthy(group.$breakables()['$empty?']())) { - return self.group_queue.$delete(group) - } else { - return nil - }; return nil; })()) + (self.group_stack.$pop(), ($truthy(group.$breakables()['$empty?']()) ? (self.group_queue.$delete(group)) : nil)) }; })();; - }, $PrettyPrint_group_sub$15.$$arity = 0); + }, 0); - Opal.def(self, '$nest', $PrettyPrint_nest$16 = function $$nest(indent) { - var $iter = $PrettyPrint_nest$16.$$p, $yield = $iter || nil, self = this; + $def(self, '$nest', function $$nest(indent) { + var $yield = $$nest.$$p || nil, self = this; - if ($iter) $PrettyPrint_nest$16.$$p = null; + delete $$nest.$$p; self.indent = $rb_plus(self.indent, indent); @@ -958,73 +667,68 @@ Opal.modules["prettyprint"] = function(Opal) { } finally { (self.indent = $rb_minus(self.indent, indent)) }; })();; - }, $PrettyPrint_nest$16.$$arity = 1); + }, 1); - Opal.def(self, '$flush', $PrettyPrint_flush$17 = function $$flush() { - var $$18, self = this; + $def(self, '$flush', function $$flush() { + var self = this; - $send(self.buffer, 'each', [], ($$18 = function(data){var self = $$18.$$s == null ? this : $$18.$$s; + $send(self.buffer, 'each', [], function $$6(data){var self = $$6.$$s == null ? this : $$6.$$s; if (self.output == null) self.output = nil; if (self.output_width == null) self.output_width = nil; - if (data == null) { - data = nil; - }; - return (self.output_width = data.$output(self.output, self.output_width));}, $$18.$$s = self, $$18.$$arity = 1, $$18)); + if (data == null) data = nil;; + return (self.output_width = data.$output(self.output, self.output_width));}, {$$arity: 1, $$s: self}); self.buffer.$clear(); return (self.buffer_width = 0); - }, $PrettyPrint_flush$17.$$arity = 0); - (function($base, $super, $parent_nesting) { + }, 0); + (function($base, $super) { var self = $klass($base, $super, 'Text'); - var $nesting = [self].concat($parent_nesting), $Text_initialize$19, $Text_output$20, $Text_add$22; + var $proto = self.$$prototype; - self.$$prototype.objs = self.$$prototype.width = nil; + $proto.objs = $proto.width = nil; - Opal.def(self, '$initialize', $Text_initialize$19 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; self.objs = []; return (self.width = 0); - }, $Text_initialize$19.$$arity = 0); + }, 0); self.$attr_reader("width"); - Opal.def(self, '$output', $Text_output$20 = function $$output(out, output_width) { - var $$21, self = this; + $def(self, '$output', function $$output(out, output_width) { + var self = this; - $send(self.objs, 'each', [], ($$21 = function(obj){var self = $$21.$$s == null ? this : $$21.$$s; - + $send(self.objs, 'each', [], function $$7(obj){ - if (obj == null) { - obj = nil; - }; - return out['$<<'](obj);}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + if (obj == null) obj = nil;; + return out['$<<'](obj);}, 1); return $rb_plus(output_width, self.width); - }, $Text_output$20.$$arity = 2); - return (Opal.def(self, '$add', $Text_add$22 = function $$add(obj, width) { + }, 2); + return $def(self, '$add', function $$add(obj, width) { var self = this; self.objs['$<<'](obj); return (self.width = $rb_plus(self.width, width)); - }, $Text_add$22.$$arity = 2), nil) && 'add'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 2); + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Breakable'); - var $nesting = [self].concat($parent_nesting), $Breakable_initialize$23, $Breakable_output$24; + var $proto = self.$$prototype; - self.$$prototype.group = self.$$prototype.pp = self.$$prototype.indent = self.$$prototype.obj = self.$$prototype.width = nil; + $proto.group = $proto.pp = $proto.indent = $proto.obj = $proto.width = nil; - Opal.def(self, '$initialize', $Breakable_initialize$23 = function $$initialize(sep, width, q) { + $def(self, '$initialize', function $$initialize(sep, width, q) { var self = this; @@ -1034,11 +738,11 @@ Opal.modules["prettyprint"] = function(Opal) { self.indent = q.$indent(); self.group = q.$current_group(); return self.group.$breakables().$push(self); - }, $Breakable_initialize$23.$$arity = 3); + }, 3); self.$attr_reader("obj"); self.$attr_reader("width"); self.$attr_reader("indent"); - return (Opal.def(self, '$output', $Breakable_output$24 = function $$output(out, output_width) { + return $def(self, '$output', function $$output(out, output_width) { var self = this; @@ -1051,43 +755,44 @@ Opal.modules["prettyprint"] = function(Opal) { } else { if ($truthy(self.group.$breakables()['$empty?']())) { - self.pp.$group_queue().$delete(self.group)}; + self.pp.$group_queue().$delete(self.group) + }; out['$<<'](self.obj); return $rb_plus(output_width, self.width); }; - }, $Breakable_output$24.$$arity = 2), nil) && 'output'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 2); + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Group'); - var $nesting = [self].concat($parent_nesting), $Group_initialize$25, $Group_break$26, $Group_break$ques$27, $Group_first$ques$28; + var $proto = self.$$prototype; - self.$$prototype["break"] = nil; + $proto["break"] = nil; - Opal.def(self, '$initialize', $Group_initialize$25 = function $$initialize(depth) { + $def(self, '$initialize', function $$initialize(depth) { var self = this; self.depth = depth; self.breakables = []; return (self["break"] = false); - }, $Group_initialize$25.$$arity = 1); + }, 1); self.$attr_reader("depth"); self.$attr_reader("breakables"); - Opal.def(self, '$break', $Group_break$26 = function() { + $def(self, '$break', function $Group_break$8() { var self = this; return (self["break"] = true) - }, $Group_break$26.$$arity = 0); + }, 0); - Opal.def(self, '$break?', $Group_break$ques$27 = function() { + $def(self, '$break?', function $Group_break$ques$9() { var self = this; return self["break"] - }, $Group_break$ques$27.$$arity = 0); - return (Opal.def(self, '$first?', $Group_first$ques$28 = function() { + }, 0); + return $def(self, '$first?', function $Group_first$ques$10() { var $a, self = this; if ($truthy((($a = self['first'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { @@ -1097,36 +802,34 @@ Opal.modules["prettyprint"] = function(Opal) { self.first = false; return true; } - }, $Group_first$ques$28.$$arity = 0), nil) && 'first?'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'GroupQueue'); - var $nesting = [self].concat($parent_nesting), $GroupQueue_initialize$29, $GroupQueue_enq$31, $GroupQueue_deq$32, $GroupQueue_delete$36; + var $proto = self.$$prototype; - self.$$prototype.queue = nil; + $proto.queue = nil; - Opal.def(self, '$initialize', $GroupQueue_initialize$29 = function $$initialize($a) { - var $post_args, groups, $$30, self = this; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, groups, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); groups = $post_args;; self.queue = []; - return $send(groups, 'each', [], ($$30 = function(g){var self = $$30.$$s == null ? this : $$30.$$s; + return $send(groups, 'each', [], function $$11(g){var self = $$11.$$s == null ? this : $$11.$$s; - if (g == null) { - g = nil; - }; - return self.$enq(g);}, $$30.$$s = self, $$30.$$arity = 1, $$30)); - }, $GroupQueue_initialize$29.$$arity = -1); + if (g == null) g = nil;; + return self.$enq(g);}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$enq', $GroupQueue_enq$31 = function $$enq(group) { + $def(self, '$enq', function $$enq(group) { var $a, self = this, depth = nil; @@ -1135,27 +838,22 @@ Opal.modules["prettyprint"] = function(Opal) { self.queue['$<<']([]) }; return self.queue['$[]'](depth)['$<<'](group); - }, $GroupQueue_enq$31.$$arity = 1); + }, 1); - Opal.def(self, '$deq', $GroupQueue_deq$32 = function $$deq() {try { + $def(self, '$deq', function $$deq() {try { - var $$33, self = this; + var self = this; - $send(self.queue, 'each', [], ($$33 = function(gs){var self = $$33.$$s == null ? this : $$33.$$s, $$34, $$35; - + $send(self.queue, 'each', [], function $$12(gs){ - if (gs == null) { - gs = nil; - }; - $send($rb_minus(gs.$length(), 1), 'downto', [0], ($$34 = function(i){var self = $$34.$$s == null ? this : $$34.$$s, group = nil; + if (gs == null) gs = nil;; + $send($rb_minus(gs.$length(), 1), 'downto', [0], function $$13(i){var group = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; if ($truthy(gs['$[]'](i).$breakables()['$empty?']())) { return nil } else { @@ -1163,151 +861,114 @@ Opal.modules["prettyprint"] = function(Opal) { group = gs['$slice!'](i, 1).$first(); group.$break(); Opal.ret(group); - };}, $$34.$$s = self, $$34.$$arity = 1, $$34)); - $send(gs, 'each', [], ($$35 = function(group){var self = $$35.$$s == null ? this : $$35.$$s; - + };}, 1); + $send(gs, 'each', [], function $$14(group){ - if (group == null) { - group = nil; - }; - return group.$break();}, $$35.$$s = self, $$35.$$arity = 1, $$35)); - return gs.$clear();}, $$33.$$s = self, $$33.$$arity = 1, $$33)); + if (group == null) group = nil;; + return group.$break();}, 1); + return gs.$clear();}, 1); return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $GroupQueue_deq$32.$$arity = 0); - return (Opal.def(self, '$delete', $GroupQueue_delete$36 = function(group) { + }, 0); + return $def(self, '$delete', function $GroupQueue_delete$15(group) { var self = this; return self.queue['$[]'](group.$depth()).$delete(group) - }, $GroupQueue_delete$36.$$arity = 1), nil) && 'delete'; - })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], null); + return (function($base, $super) { var self = $klass($base, $super, 'SingleLine'); - var $nesting = [self].concat($parent_nesting), $SingleLine_initialize$37, $SingleLine_text$38, $SingleLine_breakable$39, $SingleLine_nest$40, $SingleLine_group$41, $SingleLine_flush$42, $SingleLine_first$ques$43; + var $proto = self.$$prototype; - self.$$prototype.output = self.$$prototype.first = nil; + $proto.output = $proto.first = nil; - Opal.def(self, '$initialize', $SingleLine_initialize$37 = function $$initialize(output, maxwidth, newline) { + $def(self, '$initialize', function $$initialize(output, maxwidth, newline) { var self = this; - if (maxwidth == null) { - maxwidth = nil; - }; + if (maxwidth == null) maxwidth = nil;; - if (newline == null) { - newline = nil; - }; + if (newline == null) newline = nil;; self.output = output; return (self.first = [true]); - }, $SingleLine_initialize$37.$$arity = -2); + }, -2); - Opal.def(self, '$text', $SingleLine_text$38 = function $$text(obj, width) { + $def(self, '$text', function $$text(obj, width) { var self = this; - if (width == null) { - width = nil; - }; + if (width == null) width = nil;; return self.output['$<<'](obj); - }, $SingleLine_text$38.$$arity = -2); + }, -2); - Opal.def(self, '$breakable', $SingleLine_breakable$39 = function $$breakable(sep, width) { + $def(self, '$breakable', function $$breakable(sep, width) { var self = this; - if (sep == null) { - sep = " "; - }; + if (sep == null) sep = " ";; - if (width == null) { - width = nil; - }; + if (width == null) width = nil;; return self.output['$<<'](sep); - }, $SingleLine_breakable$39.$$arity = -1); + }, -1); - Opal.def(self, '$nest', $SingleLine_nest$40 = function $$nest(indent) { - var $iter = $SingleLine_nest$40.$$p, $yield = $iter || nil, self = this; + $def(self, '$nest', function $$nest(indent) { + var $yield = $$nest.$$p || nil; - if ($iter) $SingleLine_nest$40.$$p = null; + delete $$nest.$$p; return Opal.yieldX($yield, []); - }, $SingleLine_nest$40.$$arity = 1); + }, 1); - Opal.def(self, '$group', $SingleLine_group$41 = function $$group(indent, open_obj, close_obj, open_width, close_width) { - var $iter = $SingleLine_group$41.$$p, $yield = $iter || nil, self = this; + $def(self, '$group', function $$group(indent, open_obj, close_obj, open_width, close_width) { + var $yield = $$group.$$p || nil, self = this; - if ($iter) $SingleLine_group$41.$$p = null; + delete $$group.$$p; - if (indent == null) { - indent = nil; - }; + if (indent == null) indent = nil;; - if (open_obj == null) { - open_obj = ""; - }; + if (open_obj == null) open_obj = "";; - if (close_obj == null) { - close_obj = ""; - }; + if (close_obj == null) close_obj = "";; - if (open_width == null) { - open_width = nil; - }; + if (open_width == null) open_width = nil;; - if (close_width == null) { - close_width = nil; - }; + if (close_width == null) close_width = nil;; self.first.$push(true); self.output['$<<'](open_obj); Opal.yieldX($yield, []); self.output['$<<'](close_obj); return self.first.$pop(); - }, $SingleLine_group$41.$$arity = -1); + }, -1); - Opal.def(self, '$flush', $SingleLine_flush$42 = function $$flush() { - var self = this; - + $def(self, '$flush', function $$flush() { + return nil - }, $SingleLine_flush$42.$$arity = 0); - return (Opal.def(self, '$first?', $SingleLine_first$ques$43 = function() { + }, 0); + return $def(self, '$first?', function $SingleLine_first$ques$16() { var self = this, result = nil, $writer = nil; result = self.first['$[]'](-1); $writer = [-1, false]; - $send(self.first, '[]=', Opal.to_a($writer)); + $send(self.first, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $SingleLine_first$ques$43.$$arity = 0), nil) && 'first?'; - })($nesting[0], null, $nesting); + }, 0); + })($nesting[0], null); })($nesting[0], null, $nesting) }; -/* Generated by Opal 1.3.0.dev */ -Opal.modules["pp"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - var $$59, $$62, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $send = Opal.send, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; - - Opal.add_stubs(['$require', '$new', '$guard_inspect_key', '$pp', '$flush', '$<<', '$bind_call', '$instance_method', '$to_proc', '$attr_accessor', '$==', '$[]', '$current', '$compare_by_identity', '$[]=', '$-', '$include?', '$delete', '$is_a?', '$__getobj__', '$check_inspect_key', '$group', '$pretty_print_cycle', '$push_inspect_key', '$pretty_print', '$sharing_detection', '$pop_inspect_key', '$+', '$name', '$class', '$chomp!', '$text', '$breakable', '$lambda', '$comma_breakable', '$__send__', '$call', '$object_address_group', '$seplist', '$pretty_print_instance_variables', '$===', '$to_s', '$instance_eval', '$include', '$!=', '$owner', '$inspect', '$!', '$respond_to?', '$pp_object', '$sort', '$instance_variables', '$raise', '$singleline_pp', '$dup', '$empty?', '$pp_hash', '$each', '$keys', '$sprintf', '$mcall', '$begin', '$exclude_end?', '$end', '$lines', '$>', '$size', '$named_captures', '$regexp', '$object_group', '$class_eval', '$string', '$<=', '$first', '$module_function']); +Opal.modules["pp"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $gvars = Opal.gvars, $send = Opal.send, $defs = Opal.defs, $to_a = Opal.to_a, $module = Opal.module, $eqeq = Opal.eqeq, $hash2 = Opal.hash2, $rb_minus = Opal.rb_minus, $def = Opal.def, $truthy = Opal.truthy, $rb_plus = Opal.rb_plus, $eqeqeq = Opal.eqeqeq, $neqeq = Opal.neqeq, $not = Opal.not, $rb_gt = Opal.rb_gt, $rb_le = Opal.rb_le; + + Opal.add_stubs('require,new,guard_inspect_key,pp,flush,<<,bind_call,instance_method,to_proc,attr_accessor,==,[],current,compare_by_identity,[]=,-,include?,delete,text,is_a?,__getobj__,check_inspect_key,group,pretty_print_cycle,push_inspect_key,pretty_print,sharing_detection,pop_inspect_key,+,name,class,chomp,breakable,lambda,comma_breakable,__send__,call,object_address_group,seplist,pretty_print_instance_variables,===,to_s,instance_eval,include,!=,owner,inspect,respond_to?,!,pp_object,sort,instance_variables,raise,singleline_pp,dup,empty?,pp_hash,each,keys,sprintf,mcall,begin,exclude_end?,end,lines,>,size,named_captures,regexp,object_group,class_eval,string,<=,first,module_function'); self.$require("thread"); self.$require("stringio"); @@ -1315,217 +976,205 @@ Opal.modules["pp"] = function(Opal) { (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'PP'); - var $nesting = [self].concat($parent_nesting), $PP_pp$1, $PP_singleline_pp$3, $PP_mcall$5; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs($$($nesting, 'PP'), '$pp', $PP_pp$1 = function $$pp(obj, out, width) { - var $$2, self = this, q = nil; + $defs($$('PP'), '$pp', function $$pp(obj, out, width) { + var q = nil; if ($gvars.stdout == null) $gvars.stdout = nil; - if (out == null) { - out = $gvars.stdout; - }; + if (out == null) out = $gvars.stdout;; - if (width == null) { - width = 79; - }; - q = $$($nesting, 'PP').$new(out, width); - $send(q, 'guard_inspect_key', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - - return q.$pp(obj)}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + if (width == null) width = 79;; + q = $$('PP').$new(out, width); + $send(q, 'guard_inspect_key', [], function $$1(){ + return q.$pp(obj)}, 0); q.$flush(); return out['$<<']("\n"); - }, $PP_pp$1.$$arity = -2); - Opal.defs($$($nesting, 'PP'), '$singleline_pp', $PP_singleline_pp$3 = function $$singleline_pp(obj, out) { - var $$4, self = this, q = nil; + }, -2); + $defs($$('PP'), '$singleline_pp', function $$singleline_pp(obj, out) { + var q = nil; if ($gvars.stdout == null) $gvars.stdout = nil; - if (out == null) { - out = $gvars.stdout; - }; - q = $$($nesting, 'SingleLine').$new(out); - $send(q, 'guard_inspect_key', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - - return q.$pp(obj)}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + if (out == null) out = $gvars.stdout;; + q = $$('SingleLine').$new(out); + $send(q, 'guard_inspect_key', [], function $$2(){ + return q.$pp(obj)}, 0); q.$flush(); return out; - }, $PP_singleline_pp$3.$$arity = -2); - Opal.defs($$($nesting, 'PP'), '$mcall', $PP_mcall$5 = function $$mcall(obj, mod, meth, $a) { - var $iter = $PP_mcall$5.$$p, block = $iter || nil, $post_args, args, self = this; + }, -2); + $defs($$('PP'), '$mcall', function $$mcall(obj, mod, meth, $a) { + var block = $$mcall.$$p || nil, $post_args, args; - if ($iter) $PP_mcall$5.$$p = null; - + delete $$mcall.$$p; - if ($iter) $PP_mcall$5.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 3, arguments.length); + $post_args = Opal.slice.call(arguments, 3); args = $post_args;; - return $send(mod.$instance_method(meth), 'bind_call', [obj].concat(Opal.to_a(args)), block.$to_proc()); - }, $PP_mcall$5.$$arity = -4); + return $send(mod.$instance_method(meth), 'bind_call', [obj].concat($to_a(args)), block.$to_proc()); + }, -4); self.sharing_detection = false; (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting); - + return self.$attr_accessor("sharing_detection") })(Opal.get_singleton_class(self), $nesting); (function($base, $parent_nesting) { var self = $module($base, 'PPMethods'); - var $nesting = [self].concat($parent_nesting), $PPMethods_guard_inspect_key$6, $PPMethods_check_inspect_key$7, $PPMethods_push_inspect_key$8, $PPMethods_pop_inspect_key$9, $PPMethods_pp$10, $PPMethods_object_group$13, $PPMethods_object_address_group$14, $PPMethods_comma_breakable$15, $PPMethods_seplist$16, $PPMethods_pp_object$19, $PPMethods_pp_hash$24; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$guard_inspect_key', $PPMethods_guard_inspect_key$6 = function $$guard_inspect_key() { - var $iter = $PPMethods_guard_inspect_key$6.$$p, $yield = $iter || nil, self = this, $writer = nil, save = nil; + $def(self, '$guard_inspect_key', function $$guard_inspect_key() { + var $yield = $$guard_inspect_key.$$p || nil, $writer = nil, save = nil; - if ($iter) $PPMethods_guard_inspect_key$6.$$p = null; + delete $$guard_inspect_key.$$p; - if ($$($nesting, 'Thread').$current()['$[]']("__recursive_key__")['$=='](nil)) { + if ($eqeq($$('Thread').$current()['$[]']("__recursive_key__"), nil)) { $writer = ["__recursive_key__", $hash2([], {}).$compare_by_identity()]; - $send($$($nesting, 'Thread').$current(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; - if ($$($nesting, 'Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect")['$=='](nil)) { + $send($$('Thread').$current(), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + if ($eqeq($$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"), nil)) { $writer = ["inspect", $hash2([], {}).$compare_by_identity()]; - $send($$($nesting, 'Thread').$current()['$[]']("__recursive_key__"), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; - save = $$($nesting, 'Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"); + $send($$('Thread').$current()['$[]']("__recursive_key__"), '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + save = $$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"); return (function() { try { $writer = ["inspect", $hash2([], {}).$compare_by_identity()]; - $send($$($nesting, 'Thread').$current()['$[]']("__recursive_key__"), '[]=', Opal.to_a($writer)); + $send($$('Thread').$current()['$[]']("__recursive_key__"), '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return Opal.yieldX($yield, []);; } finally { - (($writer = ["inspect", save]), $send($$($nesting, 'Thread').$current()['$[]']("__recursive_key__"), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) + (($writer = ["inspect", save]), $send($$('Thread').$current()['$[]']("__recursive_key__"), '[]=', $to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) }; })();; - }, $PPMethods_guard_inspect_key$6.$$arity = 0); + }, 0); - Opal.def(self, '$check_inspect_key', $PPMethods_check_inspect_key$7 = function $$check_inspect_key(id) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + $def(self, '$check_inspect_key', function $$check_inspect_key(id) { + var $ret_or_1 = nil, $ret_or_2 = nil; - if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = $$($nesting, 'Thread').$current()['$[]']("__recursive_key__")))) { - return $$($nesting, 'Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect") - } else { - return $ret_or_2 - }; return nil; })()))) { - return $$($nesting, 'Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect")['$include?'](id) + if ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = $$('Thread').$current()['$[]']("__recursive_key__"))) ? ($$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect")) : ($ret_or_2))))) { + return $$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect")['$include?'](id) } else { return $ret_or_1 } - }, $PPMethods_check_inspect_key$7.$$arity = 1); + }, 1); - Opal.def(self, '$push_inspect_key', $PPMethods_push_inspect_key$8 = function $$push_inspect_key(id) { - var self = this, $writer = nil; + $def(self, '$push_inspect_key', function $$push_inspect_key(id) { + var $writer = nil; $writer = [id, true]; - $send($$($nesting, 'Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"), '[]=', Opal.to_a($writer)); + $send($$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect"), '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $PPMethods_push_inspect_key$8.$$arity = 1); + }, 1); - Opal.def(self, '$pop_inspect_key', $PPMethods_pop_inspect_key$9 = function $$pop_inspect_key(id) { - var self = this; - - return $$($nesting, 'Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect").$delete(id) - }, $PPMethods_pop_inspect_key$9.$$arity = 1); + $def(self, '$pop_inspect_key', function $$pop_inspect_key(id) { + + return $$('Thread').$current()['$[]']("__recursive_key__")['$[]']("inspect").$delete(id) + }, 1); - Opal.def(self, '$pp', $PPMethods_pp$10 = function $$pp(obj) { - var $a, $$11, $$12, self = this, $ret_or_3 = nil; + $def(self, '$pp', function $$pp(obj) {try { + + var $a, self = this; - if ($truthy((function() {if ($truthy(($ret_or_3 = (($a = $$$('::', 'Delegator', 'skip_raise')) ? 'constant' : nil)))) { - return obj['$is_a?']($$$('::', 'Delegator')) - } else { - return $ret_or_3 - }; return nil; })())) { - obj = obj.$__getobj__()}; + ; + + if (obj === null) { + self.$text("null") + Opal.ret(nil) + } + else if (obj === undefined) { + self.$text("undefined") + Opal.ret(nil) + } + else if (obj.$$class === undefined) { + self.$text(Object.prototype.toString.apply(obj)) + Opal.ret(nil) + } + ; + if (($truthy((($a = $$$('::', 'Delegator', 'skip_raise')) ? 'constant' : nil)) && ($truthy(obj['$is_a?']($$$('Delegator')))))) { + obj = obj.$__getobj__() + }; if ($truthy(self.$check_inspect_key(obj))) { - $send(self, 'group', [], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; + $send(self, 'group', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; - return obj.$pretty_print_cycle(self)}, $$11.$$s = self, $$11.$$arity = 0, $$11)); - return nil;}; + return obj.$pretty_print_cycle(self)}, {$$arity: 0, $$s: self}); + return nil; + }; return (function() { try { self.$push_inspect_key(obj); - return $send(self, 'group', [], ($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s; + return $send(self, 'group', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return obj.$pretty_print(self)}, $$12.$$s = self, $$12.$$arity = 0, $$12)); + return obj.$pretty_print(self)}, {$$arity: 0, $$s: self}); } finally { - (function() {if ($truthy($$($nesting, 'PP').$sharing_detection())) { - return nil - } else { - return self.$pop_inspect_key(obj) - }; return nil; })() + ($truthy($$('PP').$sharing_detection()) ? (nil) : (self.$pop_inspect_key(obj))) }; })();; - }, $PPMethods_pp$10.$$arity = 1); + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, -1); - Opal.def(self, '$object_group', $PPMethods_object_group$13 = function $$object_group(obj) { - var $iter = $PPMethods_object_group$13.$$p, block = $iter || nil, self = this; + $def(self, '$object_group', function $$object_group(obj) { + var block = $$object_group.$$p || nil, self = this; - if ($iter) $PPMethods_object_group$13.$$p = null; + delete $$object_group.$$p; - - if ($iter) $PPMethods_object_group$13.$$p = null;; + ; return $send(self, 'group', [1, $rb_plus("#<", obj.$class().$name()), ">"], block.$to_proc()); - }, $PPMethods_object_group$13.$$arity = 1); + }, 1); - Opal.def(self, '$object_address_group', $PPMethods_object_address_group$14 = function $$object_address_group(obj) { - var $iter = $PPMethods_object_address_group$14.$$p, block = $iter || nil, self = this, str = nil; + $def(self, '$object_address_group', function $$object_address_group(obj) { + var block = $$object_address_group.$$p || nil, self = this, str = nil; - if ($iter) $PPMethods_object_address_group$14.$$p = null; - + delete $$object_address_group.$$p; - if ($iter) $PPMethods_object_address_group$14.$$p = null;; - str = $$($nesting, 'Kernel').$instance_method("to_s").$bind_call(obj); - str['$chomp!'](">"); + ; + str = $$('Kernel').$instance_method("to_s").$bind_call(obj); + str = str.$chomp(">"); return $send(self, 'group', [1, str, ">"], block.$to_proc()); - }, $PPMethods_object_address_group$14.$$arity = 1); + }, 1); - Opal.def(self, '$comma_breakable', $PPMethods_comma_breakable$15 = function $$comma_breakable() { + $def(self, '$comma_breakable', function $$comma_breakable() { var self = this; self.$text(","); return self.$breakable(); - }, $PPMethods_comma_breakable$15.$$arity = 0); + }, 0); - Opal.def(self, '$seplist', $PPMethods_seplist$16 = function $$seplist(list, sep, iter_method) { - var $$17, $$18, $iter = $PPMethods_seplist$16.$$p, $yield = $iter || nil, self = this, $ret_or_4 = nil, first = nil; + $def(self, '$seplist', function $$seplist(list, sep, iter_method) { + var $yield = $$seplist.$$p || nil, self = this, $ret_or_1 = nil, first = nil; - if ($iter) $PPMethods_seplist$16.$$p = null; + delete $$seplist.$$p; - if (sep == null) { - sep = nil; - }; + if (sep == null) sep = nil;; - if (iter_method == null) { - iter_method = "each"; - }; - sep = (function() {if ($truthy(($ret_or_4 = sep))) { - return $ret_or_4 - } else { - return $send(self, 'lambda', [], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; + if (iter_method == null) iter_method = "each";; + sep = ($truthy(($ret_or_1 = sep)) ? ($ret_or_1) : ($send(self, 'lambda', [], function $$5(){var self = $$5.$$s == null ? this : $$5.$$s; - return self.$comma_breakable()}, $$17.$$s = self, $$17.$$arity = 0, $$17)) - }; return nil; })(); + return self.$comma_breakable()}, {$$arity: 0, $$s: self}))); first = true; - return $send(list, '__send__', [iter_method], ($$18 = function($a){var self = $$18.$$s == null ? this : $$18.$$s, $post_args, v; + return $send(list, '__send__', [iter_method], function $$6($a){var $post_args, v; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); v = $post_args;; if ($truthy(first)) { @@ -1533,343 +1182,291 @@ Opal.modules["pp"] = function(Opal) { } else { sep.$call() }; - return Opal.yieldX($yield, Opal.to_a(v));;}, $$18.$$s = self, $$18.$$arity = -1, $$18)); - }, $PPMethods_seplist$16.$$arity = -2); + return Opal.yieldX($yield, $to_a(v));;}, -1); + }, -2); - Opal.def(self, '$pp_object', $PPMethods_pp_object$19 = function $$pp_object(obj) { - var $$20, self = this; + $def(self, '$pp_object', function $$pp_object(obj) { + var self = this; - return $send(self, 'object_address_group', [obj], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s, $$21, $$22; + return $send(self, 'object_address_group', [obj], function $$7(){var self = $$7.$$s == null ? this : $$7.$$s; - return $send(self, 'seplist', [obj.$pretty_print_instance_variables(), $send(self, 'lambda', [], ($$21 = function(){var self = $$21.$$s == null ? this : $$21.$$s; + return $send(self, 'seplist', [obj.$pretty_print_instance_variables(), $send(self, 'lambda', [], function $$8(){var self = $$8.$$s == null ? this : $$8.$$s; - return self.$text(",")}, $$21.$$s = self, $$21.$$arity = 0, $$21))], ($$22 = function(v){var self = $$22.$$s == null ? this : $$22.$$s, $$23; + return self.$text(",")}, {$$arity: 0, $$s: self})], function $$9(v){var self = $$9.$$s == null ? this : $$9.$$s; - if (v == null) { - v = nil; - }; + if (v == null) v = nil;; self.$breakable(); - if ($truthy($$($nesting, 'Symbol')['$==='](v))) { - v = v.$to_s()}; + if ($eqeqeq($$('Symbol'), v)) { + v = v.$to_s() + }; self.$text(v); self.$text("="); - return $send(self, 'group', [1], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; + return $send(self, 'group', [1], function $$10(){var self = $$10.$$s == null ? this : $$10.$$s; self.$breakable(""); - return self.$pp(obj.$instance_eval(v));}, $$23.$$s = self, $$23.$$arity = 0, $$23));}, $$22.$$s = self, $$22.$$arity = 1, $$22))}, $$20.$$s = self, $$20.$$arity = 0, $$20)) - }, $PPMethods_pp_object$19.$$arity = 1); - return (Opal.def(self, '$pp_hash', $PPMethods_pp_hash$24 = function $$pp_hash(obj) { - var $$25, self = this; + return self.$pp(obj.$instance_eval(v));}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self})}, {$$arity: 0, $$s: self}) + }, 1); + return $def(self, '$pp_hash', function $$pp_hash(obj) { + var self = this; - return $send(self, 'group', [1, "{", "}"], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s, $$26; + return $send(self, 'group', [1, "{", "}"], function $$11(){var self = $$11.$$s == null ? this : $$11.$$s; - return $send(self, 'seplist', [obj, nil, "each_pair"], ($$26 = function(k, v){var self = $$26.$$s == null ? this : $$26.$$s, $$27; + return $send(self, 'seplist', [obj, nil, "each_pair"], function $$12(k, v){var self = $$12.$$s == null ? this : $$12.$$s; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; - if (v == null) { - v = nil; - }; - return $send(self, 'group', [], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s, $$28; + if (v == null) v = nil;; + return $send(self, 'group', [], function $$13(){var self = $$13.$$s == null ? this : $$13.$$s; self.$pp(k); self.$text("=>"); - return $send(self, 'group', [1], ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s; + return $send(self, 'group', [1], function $$14(){var self = $$14.$$s == null ? this : $$14.$$s; self.$breakable(""); - return self.$pp(v);}, $$28.$$s = self, $$28.$$arity = 0, $$28));}, $$27.$$s = self, $$27.$$arity = 0, $$27));}, $$26.$$s = self, $$26.$$arity = 2, $$26))}, $$25.$$s = self, $$25.$$arity = 0, $$25)) - }, $PPMethods_pp_hash$24.$$arity = 1), nil) && 'pp_hash'; + return self.$pp(v);}, {$$arity: 0, $$s: self});}, {$$arity: 0, $$s: self});}, {$$arity: 2, $$s: self})}, {$$arity: 0, $$s: self}) + }, 1); })($nesting[0], $nesting); - self.$include($$($nesting, 'PPMethods')); + self.$include($$('PPMethods')); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'SingleLine'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return self.$include($$($nesting, 'PPMethods')) - })($nesting[0], $$$($$($nesting, 'PrettyPrint'), 'SingleLine'), $nesting); + return self.$include($$('PPMethods')) + })($nesting[0], $$$($$('PrettyPrint'), 'SingleLine'), $nesting); return (function($base, $parent_nesting) { var self = $module($base, 'ObjectMixin'); - var $nesting = [self].concat($parent_nesting), $ObjectMixin_pretty_print$29, $ObjectMixin_pretty_print_cycle$30, $ObjectMixin_pretty_print_instance_variables$32, $ObjectMixin_pretty_print_inspect$33; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$pretty_print', $ObjectMixin_pretty_print$29 = function $$pretty_print(q) { - var self = this, umethod_method = nil, inspect_method = nil, $ret_or_5 = nil, $ret_or_6 = nil; + $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this, umethod_method = nil, inspect_method = nil; - umethod_method = $$($nesting, 'Object').$instance_method("method"); + umethod_method = $$('Object').$instance_method("method"); try { inspect_method = umethod_method.$bind_call(self, "inspect") } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$('NameError')])) { try { nil } finally { Opal.pop_exception(); } } else { throw $err; } };; - if ($truthy((function() {if ($truthy(($ret_or_5 = inspect_method))) { - return inspect_method.$owner()['$!=']($$($nesting, 'Kernel')) - } else { - return $ret_or_5 - }; return nil; })())) { + if (($truthy(inspect_method) && ($neqeq(inspect_method.$owner(), $$('Kernel'))))) { return q.$text(self.$inspect()) - } else if ($truthy((function() {if ($truthy(($ret_or_6 = inspect_method['$!']()))) { - return self['$respond_to?']("inspect") - } else { - return $ret_or_6 - }; return nil; })())) { + } else if (($not(inspect_method) && ($truthy(self['$respond_to?']("inspect"))))) { return q.$text(self.$inspect()) } else { return q.$pp_object(self) }; - }, $ObjectMixin_pretty_print$29.$$arity = 1); + }, 1); - Opal.def(self, '$pretty_print_cycle', $ObjectMixin_pretty_print_cycle$30 = function $$pretty_print_cycle(q) { - var $$31, self = this; - - return $send(q, 'object_address_group', [self], ($$31 = function(){var self = $$31.$$s == null ? this : $$31.$$s; + $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { + var self = this; + return $send(q, 'object_address_group', [self], function $$15(){ q.$breakable(); - return q.$text("...");}, $$31.$$s = self, $$31.$$arity = 0, $$31)) - }, $ObjectMixin_pretty_print_cycle$30.$$arity = 1); + return q.$text("...");}, 0) + }, 1); - Opal.def(self, '$pretty_print_instance_variables', $ObjectMixin_pretty_print_instance_variables$32 = function $$pretty_print_instance_variables() { + $def(self, '$pretty_print_instance_variables', function $$pretty_print_instance_variables() { var self = this; return self.$instance_variables().$sort() - }, $ObjectMixin_pretty_print_instance_variables$32.$$arity = 0); - return (Opal.def(self, '$pretty_print_inspect', $ObjectMixin_pretty_print_inspect$33 = function $$pretty_print_inspect() { + }, 0); + return $def(self, '$pretty_print_inspect', function $$pretty_print_inspect() { var self = this; - if ($$($nesting, 'Object').$instance_method("method").$bind_call(self, "pretty_print").$owner()['$==']($$$($$($nesting, 'PP'), 'ObjectMixin'))) { - self.$raise("" + "pretty_print is not overridden for " + (self.$class()))}; - return $$($nesting, 'PP').$singleline_pp(self, "".$dup()); - }, $ObjectMixin_pretty_print_inspect$33.$$arity = 0), nil) && 'pretty_print_inspect'; + if ($eqeq($$('Object').$instance_method("method").$bind_call(self, "pretty_print").$owner(), $$$($$('PP'), 'ObjectMixin'))) { + self.$raise("pretty_print is not overridden for " + (self.$class())) + }; + return $$('PP').$singleline_pp(self, "".$dup()); + }, 0); })($nesting[0], $nesting); - })($nesting[0], $$($nesting, 'PrettyPrint'), $nesting); - (function($base, $super, $parent_nesting) { + })($nesting[0], $$('PrettyPrint'), $nesting); + (function($base, $super) { var self = $klass($base, $super, 'Array'); - var $nesting = [self].concat($parent_nesting), $Array_pretty_print$34, $Array_pretty_print_cycle$37; - - Opal.def(self, '$pretty_print', $Array_pretty_print$34 = function $$pretty_print(q) { - var $$35, self = this; - - return $send(q, 'group', [1, "[", "]"], ($$35 = function(){var self = $$35.$$s == null ? this : $$35.$$s, $$36; + + $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this; - return $send(q, 'seplist', [self], ($$36 = function(v){var self = $$36.$$s == null ? this : $$36.$$s; + return $send(q, 'group', [1, "[", "]"], function $$16(){var self = $$16.$$s == null ? this : $$16.$$s; + return $send(q, 'seplist', [self], function $$17(v){ - if (v == null) { - v = nil; - }; - return q.$pp(v);}, $$36.$$s = self, $$36.$$arity = 1, $$36))}, $$35.$$s = self, $$35.$$arity = 0, $$35)) - }, $Array_pretty_print$34.$$arity = 1); - return (Opal.def(self, '$pretty_print_cycle', $Array_pretty_print_cycle$37 = function $$pretty_print_cycle(q) { + if (v == null) v = nil;; + return q.$pp(v);}, 1)}, {$$arity: 0, $$s: self}) + }, 1); + return $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { var self = this; - return q.$text((function() {if ($truthy(self['$empty?']())) { - return "[]" - } else { - return "[...]" - }; return nil; })()) - }, $Array_pretty_print_cycle$37.$$arity = 1), nil) && 'pretty_print_cycle'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + return q.$text(($truthy(self['$empty?']()) ? ("[]") : ("[...]"))) + }, 1); + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Hash'); - var $nesting = [self].concat($parent_nesting), $Hash_pretty_print$38, $Hash_pretty_print_cycle$39; - - Opal.def(self, '$pretty_print', $Hash_pretty_print$38 = function $$pretty_print(q) { + + $def(self, '$pretty_print', function $$pretty_print(q) { var self = this; return q.$pp_hash(self) - }, $Hash_pretty_print$38.$$arity = 1); - return (Opal.def(self, '$pretty_print_cycle', $Hash_pretty_print_cycle$39 = function $$pretty_print_cycle(q) { + }, 1); + return $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { var self = this; - return q.$text((function() {if ($truthy(self['$empty?']())) { - return "{}" - } else { - return "{...}" - }; return nil; })()) - }, $Hash_pretty_print_cycle$39.$$arity = 1), nil) && 'pretty_print_cycle'; - })($nesting[0], null, $nesting); + return q.$text(($truthy(self['$empty?']()) ? ("{}") : ("{...}"))) + }, 1); + })($nesting[0], null); (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $pretty_print$40; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$pretty_print', $pretty_print$40 = function $$pretty_print(q) { - var $$41, self = this, h = nil; + return $def(self, '$pretty_print', function $$pretty_print(q) { + var h = nil; h = $hash2([], {}); - $send($$($nesting, 'ENV').$keys().$sort(), 'each', [], ($$41 = function(k){var self = $$41.$$s == null ? this : $$41.$$s, $writer = nil; + $send($$('ENV').$keys().$sort(), 'each', [], function $$18(k){var $writer = nil; - if (k == null) { - k = nil; - }; - $writer = [k, $$($nesting, 'ENV')['$[]'](k)]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$41.$$s = self, $$41.$$arity = 1, $$41)); + if (k == null) k = nil;; + $writer = [k, $$('ENV')['$[]'](k)]; + $send(h, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1); return q.$pp_hash(h); - }, $pretty_print$40.$$arity = 1), nil) && 'pretty_print' - })(Opal.get_singleton_class($$($nesting, 'ENV')), $nesting); + }, 1) + })(Opal.get_singleton_class($$('ENV')), $nesting); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Struct'); - var $nesting = [self].concat($parent_nesting), $Struct_pretty_print$42, $Struct_pretty_print_cycle$47; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$pretty_print', $Struct_pretty_print$42 = function $$pretty_print(q) { - var $$43, self = this; - - return $send(q, 'group', [1, self.$sprintf("#"], ($$43 = function(){var self = $$43.$$s == null ? this : $$43.$$s, $$44, $$45; + $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this; - return $send(q, 'seplist', [$$($nesting, 'PP').$mcall(self, $$($nesting, 'Struct'), "members"), $send(self, 'lambda', [], ($$44 = function(){var self = $$44.$$s == null ? this : $$44.$$s; + return $send(q, 'group', [1, self.$sprintf("#"], function $$19(){var self = $$19.$$s == null ? this : $$19.$$s; - return q.$text(",")}, $$44.$$s = self, $$44.$$arity = 0, $$44))], ($$45 = function(member){var self = $$45.$$s == null ? this : $$45.$$s, $$46; + return $send(q, 'seplist', [$$('PP').$mcall(self, $$('Struct'), "members"), $send(self, 'lambda', [], function $$20(){ + return q.$text(",")}, 0)], function $$21(member){var self = $$21.$$s == null ? this : $$21.$$s; - if (member == null) { - member = nil; - }; + if (member == null) member = nil;; q.$breakable(); q.$text(member.$to_s()); q.$text("="); - return $send(q, 'group', [1], ($$46 = function(){var self = $$46.$$s == null ? this : $$46.$$s; + return $send(q, 'group', [1], function $$22(){var self = $$22.$$s == null ? this : $$22.$$s; q.$breakable(""); - return q.$pp(self['$[]'](member));}, $$46.$$s = self, $$46.$$arity = 0, $$46));}, $$45.$$s = self, $$45.$$arity = 1, $$45))}, $$43.$$s = self, $$43.$$arity = 0, $$43)) - }, $Struct_pretty_print$42.$$arity = 1); - return (Opal.def(self, '$pretty_print_cycle', $Struct_pretty_print_cycle$47 = function $$pretty_print_cycle(q) { + return q.$pp(self['$[]'](member));}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self})}, {$$arity: 0, $$s: self}) + }, 1); + return $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { var self = this; - return q.$text(self.$sprintf("#", $$($nesting, 'PP').$mcall(self, $$($nesting, 'Kernel'), "class").$name())) - }, $Struct_pretty_print_cycle$47.$$arity = 1), nil) && 'pretty_print_cycle'; + return q.$text(self.$sprintf("#", $$('PP').$mcall(self, $$('Kernel'), "class").$name())) + }, 1); })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + (function($base, $super) { var self = $klass($base, $super, 'Range'); - var $nesting = [self].concat($parent_nesting), $Range_pretty_print$48; - - return (Opal.def(self, '$pretty_print', $Range_pretty_print$48 = function $$pretty_print(q) { + + return $def(self, '$pretty_print', function $$pretty_print(q) { var self = this; q.$pp(self.$begin()); q.$breakable(""); - q.$text((function() {if ($truthy(self['$exclude_end?']())) { - return "..." - } else { - return ".." - }; return nil; })()); + q.$text(($truthy(self['$exclude_end?']()) ? ("...") : (".."))); q.$breakable(""); if ($truthy(self.$end())) { return q.$pp(self.$end()) } else { return nil }; - }, $Range_pretty_print$48.$$arity = 1), nil) && 'pretty_print' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 1) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'String'); - var $nesting = [self].concat($parent_nesting), $String_pretty_print$49; - - return (Opal.def(self, '$pretty_print', $String_pretty_print$49 = function $$pretty_print(q) { - var $$50, self = this, lines = nil; + + return $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this, lines = nil; lines = self.$lines(); if ($truthy($rb_gt(lines.$size(), 1))) { - return $send(q, 'group', [0, "", ""], ($$50 = function(){var self = $$50.$$s == null ? this : $$50.$$s, $$51, $$52; - - return $send(q, 'seplist', [lines, $send(self, 'lambda', [], ($$51 = function(){var self = $$51.$$s == null ? this : $$51.$$s; + return $send(q, 'group', [0, "", ""], function $$23(){var self = $$23.$$s == null ? this : $$23.$$s; + return $send(q, 'seplist', [lines, $send(self, 'lambda', [], function $$24(){ q.$text(" +"); - return q.$breakable();}, $$51.$$s = self, $$51.$$arity = 0, $$51))], ($$52 = function(v){var self = $$52.$$s == null ? this : $$52.$$s; - + return q.$breakable();}, 0)], function $$25(v){ - if (v == null) { - v = nil; - }; - return q.$pp(v);}, $$52.$$s = self, $$52.$$arity = 1, $$52))}, $$50.$$s = self, $$50.$$arity = 0, $$50)) + if (v == null) v = nil;; + return q.$pp(v);}, 1)}, {$$arity: 0, $$s: self}) } else { return q.$text(self.$inspect()) }; - }, $String_pretty_print$49.$$arity = 1), nil) && 'pretty_print' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 1) + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'MatchData'); - var $nesting = [self].concat($parent_nesting), $MatchData_pretty_print$53; - - return (Opal.def(self, '$pretty_print', $MatchData_pretty_print$53 = function $$pretty_print(q) { - var $$54, $$56, self = this, nc = nil; + + return $def(self, '$pretty_print', function $$pretty_print(q) { + var self = this, nc = nil; nc = []; - $send(self.$regexp().$named_captures(), 'each', [], ($$54 = function(name, indexes){var self = $$54.$$s == null ? this : $$54.$$s, $$55; - + $send(self.$regexp().$named_captures(), 'each', [], function $$26(name, indexes){ - if (name == null) { - name = nil; - }; + if (name == null) name = nil;; - if (indexes == null) { - indexes = nil; - }; - return $send(indexes, 'each', [], ($$55 = function(i){var self = $$55.$$s == null ? this : $$55.$$s, $writer = nil; + if (indexes == null) indexes = nil;; + return $send(indexes, 'each', [], function $$27(i){var $writer = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; $writer = [i, name]; - $send(nc, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$55.$$s = self, $$55.$$arity = 1, $$55));}, $$54.$$s = self, $$54.$$arity = 2, $$54)); - return $send(q, 'object_group', [self], ($$56 = function(){var self = $$56.$$s == null ? this : $$56.$$s, $$57, $$58; + $send(nc, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, 1);}, 2); + return $send(q, 'object_group', [self], function $$28(){var self = $$28.$$s == null ? this : $$28.$$s; q.$breakable(); - return $send(q, 'seplist', [Opal.Range.$new(0,self.$size(), true), $send(self, 'lambda', [], ($$57 = function(){var self = $$57.$$s == null ? this : $$57.$$s; - - return q.$breakable()}, $$57.$$s = self, $$57.$$arity = 0, $$57))], ($$58 = function(i){var self = $$58.$$s == null ? this : $$58.$$s; + return $send(q, 'seplist', [Opal.Range.$new(0,self.$size(), true), $send(self, 'lambda', [], function $$29(){ + return q.$breakable()}, 0)], function $$30(i){var self = $$30.$$s == null ? this : $$30.$$s; - if (i == null) { - i = nil; - }; - if (i['$=='](0)) { + if (i == null) i = nil;; + if ($eqeq(i, 0)) { return q.$pp(self['$[]'](i)) } else { @@ -1880,79 +1477,72 @@ Opal.modules["pp"] = function(Opal) { }; q.$text(":"); return q.$pp(self['$[]'](i)); - };}, $$58.$$s = self, $$58.$$arity = 1, $$58));}, $$56.$$s = self, $$56.$$arity = 0, $$56)); - }, $MatchData_pretty_print$53.$$arity = 1), nil) && 'pretty_print' - })($nesting[0], null, $nesting); + };}, {$$arity: 1, $$s: self});}, {$$arity: 0, $$s: self}); + }, 1) + })($nesting[0], null); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Object'); - var $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return self.$include($$$($$($nesting, 'PP'), 'ObjectMixin')) - })($nesting[0], $$($nesting, 'BasicObject'), $nesting); - $send([$$($nesting, 'Numeric'), $$($nesting, 'Symbol'), $$($nesting, 'FalseClass'), $$($nesting, 'TrueClass'), $$($nesting, 'NilClass'), $$($nesting, 'Module')], 'each', [], ($$59 = function(c){var self = $$59.$$s == null ? this : $$59.$$s, $$60; + return self.$include($$$($$('PP'), 'ObjectMixin')) + })($nesting[0], $$('BasicObject'), $nesting); + $send([$$('Numeric'), $$('Symbol'), $$('FalseClass'), $$('TrueClass'), $$('NilClass'), $$('Module')], 'each', [], function $$31(c){var self = $$31.$$s == null ? this : $$31.$$s; - if (c == null) { - c = nil; - }; - return $send(c, 'class_eval', [], ($$60 = function(){var self = $$60.$$s == null ? this : $$60.$$s, $pretty_print_cycle$61; + if (c == null) c = nil;; + return $send(c, 'class_eval', [], function $$32(){var self = $$32.$$s == null ? this : $$32.$$s; - return (Opal.def(self, '$pretty_print_cycle', $pretty_print_cycle$61 = function $$pretty_print_cycle(q) { + return $def(self, '$pretty_print_cycle', function $$pretty_print_cycle(q) { var self = this; return q.$text(self.$inspect()) - }, $pretty_print_cycle$61.$$arity = 1), nil) && 'pretty_print_cycle'}, $$60.$$s = self, $$60.$$arity = 0, $$60));}, $$59.$$s = self, $$59.$$arity = 1, $$59)); - $send([$$($nesting, 'Numeric'), $$($nesting, 'FalseClass'), $$($nesting, 'TrueClass'), $$($nesting, 'Module')], 'each', [], ($$62 = function(c){var self = $$62.$$s == null ? this : $$62.$$s, $$63; + }, 1)}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); + $send([$$('Numeric'), $$('FalseClass'), $$('TrueClass'), $$('Module')], 'each', [], function $$33(c){var self = $$33.$$s == null ? this : $$33.$$s; - if (c == null) { - c = nil; - }; - return $send(c, 'class_eval', [], ($$63 = function(){var self = $$63.$$s == null ? this : $$63.$$s, $pretty_print$64; + if (c == null) c = nil;; + return $send(c, 'class_eval', [], function $$34(){var self = $$34.$$s == null ? this : $$34.$$s; - return (Opal.def(self, '$pretty_print', $pretty_print$64 = function $$pretty_print(q) { + return $def(self, '$pretty_print', function $$pretty_print(q) { var self = this; return q.$text(self.$inspect()) - }, $pretty_print$64.$$arity = 1), nil) && 'pretty_print'}, $$63.$$s = self, $$63.$$arity = 0, $$63));}, $$62.$$s = self, $$62.$$arity = 1, $$62)); + }, 1)}, {$$arity: 0, $$s: self});}, {$$arity: 1, $$s: self}); return (function($base, $parent_nesting) { var self = $module($base, 'Kernel'); - var $nesting = [self].concat($parent_nesting), $Kernel_pretty_inspect$65, $Kernel_pp$66; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$pretty_inspect', $Kernel_pretty_inspect$65 = function $$pretty_inspect() { + $def(self, '$pretty_inspect', function $$pretty_inspect() { var self = this; - return $$($nesting, 'PP').$pp(self, $$($nesting, 'StringIO').$new()).$string() - }, $Kernel_pretty_inspect$65.$$arity = 0); + return $$('PP').$pp(self, $$('StringIO').$new()).$string() + }, 0); - Opal.def(self, '$pp', $Kernel_pp$66 = function $$pp($a) { - var $post_args, objs, $$67, self = this; + $def(self, '$pp', function $$pp($a) { + var $post_args, objs; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); objs = $post_args;; - $send(objs, 'each', [], ($$67 = function(obj){var self = $$67.$$s == null ? this : $$67.$$s; - + $send(objs, 'each', [], function $$35(obj){ - if (obj == null) { - obj = nil; - }; - return $$($nesting, 'PP').$pp(obj);}, $$67.$$s = self, $$67.$$arity = 1, $$67)); + if (obj == null) obj = nil;; + return $$('PP').$pp(obj);}, 1); if ($truthy($rb_le(objs.$size(), 1))) { return objs.$first() } else { return objs }; - }, $Kernel_pp$66.$$arity = -1); + }, -1); return self.$module_function("pp"); })($nesting[0], $nesting); }; diff --git a/opal/master/pp.min.js b/opal/master/pp.min.js index e96ef816..8f6222dd 100644 --- a/opal/master/pp.min.js +++ b/opal/master/pp.min.js @@ -1 +1 @@ -Opal.modules.thread=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $base,$super,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2,$alias=Opal.alias;return Opal.add_stubs(["$allocate","$core_initialize!","$current","$raise","$[]","$coerce_key_name","$[]=","$-","$key?","$keys","$private","$coerce_to!","$clear","$empty?","$size","$shift","$push","$each","$to_proc","$=~","$last_match","$to_i","$inspect","$attr_reader","$locked?","$lock","$unlock"]),$base=$nesting[0],$super=$$($nesting,"StandardError"),$parent_nesting=$nesting,[$klass($base,$super,"ThreadError")].concat($parent_nesting),function($Thread_coerce_key_name$13,$Thread_core_initialize$excl$12){var $nesting=[$Thread_coerce_key_name$13=$klass($Thread_coerce_key_name$13,null,"Thread")].concat($Thread_core_initialize$excl$12);$Thread_coerce_key_name$13.$$prototype.fiber_locals=$Thread_coerce_key_name$13.$$prototype.thread_locals=nil,Opal.defs($Thread_coerce_key_name$13,"$current",$Thread_core_initialize$excl$12=function(){return null==this.current&&(this.current=nil),$truthy(this.current)||(this.current=this.$allocate(),this.current["$core_initialize!"]()),this.current},$Thread_core_initialize$excl$12.$$arity=0),Opal.defs($Thread_coerce_key_name$13,"$list",$Thread_core_initialize$excl$12=function(){return[this.$current()]},$Thread_core_initialize$excl$12.$$arity=0),Opal.def($Thread_coerce_key_name$13,"$initialize",$Thread_core_initialize$excl$12=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),"Thread creation not available")},$Thread_core_initialize$excl$12.$$arity=-1),Opal.def($Thread_coerce_key_name$13,"$[]",$Thread_core_initialize$excl$12=function(key){return this.fiber_locals["$[]"](this.$coerce_key_name(key))},$Thread_core_initialize$excl$12.$$arity=1),Opal.def($Thread_coerce_key_name$13,"$[]=",$Thread_core_initialize$excl$12=function(key,value){var $writer=[this.$coerce_key_name(key),value];return $send(this.fiber_locals,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Thread_core_initialize$excl$12.$$arity=2),Opal.def($Thread_coerce_key_name$13,"$key?",$Thread_core_initialize$excl$12=function(key){return this.fiber_locals["$key?"](this.$coerce_key_name(key))},$Thread_core_initialize$excl$12.$$arity=1),Opal.def($Thread_coerce_key_name$13,"$keys",$Thread_core_initialize$excl$12=function(){return this.fiber_locals.$keys()},$Thread_core_initialize$excl$12.$$arity=0),Opal.def($Thread_coerce_key_name$13,"$thread_variable_get",$Thread_core_initialize$excl$12=function(key){return this.thread_locals["$[]"](this.$coerce_key_name(key))},$Thread_core_initialize$excl$12.$$arity=1),Opal.def($Thread_coerce_key_name$13,"$thread_variable_set",$Thread_core_initialize$excl$12=function(key,value){var $writer=[this.$coerce_key_name(key),value];return $send(this.thread_locals,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Thread_core_initialize$excl$12.$$arity=2),Opal.def($Thread_coerce_key_name$13,"$thread_variable?",$Thread_core_initialize$excl$12=function(key){return this.thread_locals["$key?"](this.$coerce_key_name(key))},$Thread_core_initialize$excl$12.$$arity=1),Opal.def($Thread_coerce_key_name$13,"$thread_variables",$Thread_core_initialize$excl$12=function(){return this.thread_locals.$keys()},$Thread_core_initialize$excl$12.$$arity=0),$Thread_coerce_key_name$13.$private(),Opal.def($Thread_coerce_key_name$13,"$core_initialize!",$Thread_core_initialize$excl$12=function(){return this.thread_locals=$hash2([],{}),this.fiber_locals=$hash2([],{})},$Thread_core_initialize$excl$12.$$arity=0),Opal.def($Thread_coerce_key_name$13,"$coerce_key_name",$Thread_coerce_key_name$13=function(key){return $$($nesting,"Opal")["$coerce_to!"](key,$$($nesting,"String"),"to_s")},$Thread_coerce_key_name$13.$$arity=1),function(self,$Queue_push$19){var $Queue_each$20,$nesting=[self=$klass(self,null,"Queue")].concat($Queue_push$19);self.$$prototype.storage=nil,Opal.def(self,"$initialize",$Queue_push$19=function(){return this.$clear()},$Queue_push$19.$$arity=0),Opal.def(self,"$clear",$Queue_push$19=function(){return this.storage=[]},$Queue_push$19.$$arity=0),Opal.def(self,"$empty?",$Queue_push$19=function(){return this.storage["$empty?"]()},$Queue_push$19.$$arity=0),Opal.def(self,"$size",$Queue_push$19=function(){return this.storage.$size()},$Queue_push$19.$$arity=0),$alias(self,"length","size"),Opal.def(self,"$pop",$Queue_push$19=function(non_block){return null==non_block&&(non_block=!1),$truthy(this["$empty?"]())&&($truthy(non_block)&&this.$raise($$($nesting,"ThreadError"),"Queue empty"),this.$raise($$($nesting,"ThreadError"),"Deadlock")),this.storage.$shift()},$Queue_push$19.$$arity=-1),$alias(self,"shift","pop"),$alias(self,"deq","pop"),Opal.def(self,"$push",$Queue_push$19=function(value){return this.storage.$push(value)},$Queue_push$19.$$arity=1),$alias(self,"<<","push"),$alias(self,"enq","push"),Opal.def(self,"$each",$Queue_each$20=function(){var $iter=$Queue_each$20.$$p,block=$iter||nil;return $iter&&($Queue_each$20.$$p=null),$iter&&($Queue_each$20.$$p=null),$send(this.storage,"each",[],block.$to_proc())},$Queue_each$20.$$arity=0)}($nesting[0],$nesting),function($base,$nesting){!function(self,$Location_inspect$23){var $nesting=[self=$klass(self,null,"Location")].concat($Location_inspect$23);self.$$prototype.label=self.$$prototype.str=nil,Opal.def(self,"$initialize",$Location_inspect$23=function(str){var self=this,$ret_or_1=nil;return(self.str=str)["$=~"](/^(.*?):(\d+):(\d+):in `(.*?)'$/),self.path=$$($nesting,"Regexp").$last_match(1),self.label=$$($nesting,"Regexp").$last_match(4),self.lineno=$$($nesting,"Regexp").$last_match(2).$to_i(),self.label["$=~"](/(\w+)$/),self.base_label=$truthy($ret_or_1=$$($nesting,"Regexp").$last_match(1))?$ret_or_1:self.label},$Location_inspect$23.$$arity=1),Opal.def(self,"$to_s",$Location_inspect$23=function(){return this.str},$Location_inspect$23.$$arity=0),Opal.def(self,"$inspect",$Location_inspect$23=function(){return this.str.$inspect()},$Location_inspect$23.$$arity=0),self.$attr_reader("base_label","label","lineno","path"),$alias(self,"absolute_path","path")}(($nesting=[$klass($base,null,"Backtrace")].concat($nesting))[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting),Opal.const_set($nesting[0],"Queue",$$$($$($nesting,"Thread"),"Queue")),function(self,$Mutex_unlock$29){var $Mutex_synchronize$30,self=$klass(self,null,"Mutex"),$nesting=[self].concat($Mutex_unlock$29);return self.$$prototype.locked=nil,Opal.def(self,"$initialize",$Mutex_unlock$29=function(){return this.locked=!1},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$lock",$Mutex_unlock$29=function(){return $truthy(this.locked)&&this.$raise($$($nesting,"ThreadError"),"Deadlock"),this.locked=!0,this},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$locked?",$Mutex_unlock$29=function(){return this.locked},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$owned?",$Mutex_unlock$29=function(){return this.locked},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$try_lock",$Mutex_unlock$29=function(){return!$truthy(this["$locked?"]())&&(this.$lock(),!0)},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$unlock",$Mutex_unlock$29=function(){return $truthy(this.locked)||this.$raise($$($nesting,"ThreadError"),"Mutex not locked"),this.locked=!1,this},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$synchronize",$Mutex_synchronize$30=function(){var $iter=$Mutex_synchronize$30.$$p,$yield=$iter||nil,self=this;return $iter&&($Mutex_synchronize$30.$$p=null),self.$lock(),function(){try{return Opal.yieldX($yield,[])}finally{self.$unlock()}}()},$Mutex_synchronize$30.$$arity=0),nil&&"synchronize"}($nesting[0],$nesting)},Opal.modules.stringio=function(Opal){function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$alias=Opal.alias,$gvars=Opal.gvars;return Opal.add_stubs(["$include","$new","$call","$close","$attr_accessor","$length","$include?","$!","$check_readable","$==","$===","$>=","$raise","$>","$+","$-","$seek","$enum_for","$eof?","$ord","$[]","$to_str","$chomp","$check_writable","$String","$write","$closed_write?","$closed_read?"]),function($base,$StringIO_check_readable$19,$StringIO_check_writable$18){var $StringIO_open$1,$StringIO_each_byte$7,$StringIO_each_char$8,$StringIO_each$9,$StringIO_check_readable$19=$klass($base,$StringIO_check_readable$19,"StringIO"),$nesting=[$StringIO_check_readable$19].concat($StringIO_check_writable$18);return $StringIO_check_readable$19.$$prototype.position=$StringIO_check_readable$19.$$prototype.string=$StringIO_check_readable$19.$$prototype.closed=nil,$StringIO_check_readable$19.$include($$$($$($nesting,"IO"),"Readable")),$StringIO_check_readable$19.$include($$$($$($nesting,"IO"),"Writable")),Opal.defs($StringIO_check_readable$19,"$open",$StringIO_open$1=function(string,mode){var res,$iter=$StringIO_open$1.$$p,block=$iter||nil,io=nil;return $iter&&($StringIO_open$1.$$p=null),$iter&&($StringIO_open$1.$$p=null),null==string&&(string=""),null==mode&&(mode=nil),io=this.$new(string,mode),res=block.$call(io),io.$close(),res},$StringIO_open$1.$$arity=-1),$StringIO_check_readable$19.$attr_accessor("string"),Opal.def($StringIO_check_readable$19,"$initialize",$StringIO_check_writable$18=function(string,mode){var $ret_or_1=nil,$ret_or_2=nil;return null==string&&(string=""),null==mode&&(mode="rw"),this.string=string,this.position=string.$length(),$truthy($truthy($ret_or_1=mode["$include?"]("r"))?mode["$include?"]("w")["$!"]():$ret_or_1)?this.closed="write":$truthy($truthy($ret_or_2=mode["$include?"]("w"))?mode["$include?"]("r")["$!"]():$ret_or_2)?this.closed="read":nil},$StringIO_check_writable$18.$$arity=-1),Opal.def($StringIO_check_readable$19,"$eof?",$StringIO_check_writable$18=function(){return this.$check_readable(),this.position["$=="](this.string.$length())},$StringIO_check_writable$18.$$arity=0),$alias($StringIO_check_readable$19,"eof","eof?"),Opal.def($StringIO_check_readable$19,"$seek",$StringIO_check_writable$18=function(pos,lhs){var $case,rhs;return null==lhs&&(lhs=$$$($$($nesting,"IO"),"SEEK_SET")),$case=lhs,$$$($$($nesting,"IO"),"SEEK_SET")["$==="]($case)?($truthy((rhs=0,"number"==typeof(lhs=pos)&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))||this.$raise($$$($$($nesting,"Errno"),"EINVAL")),this.position=pos):$$$($$($nesting,"IO"),"SEEK_CUR")["$==="]($case)?$truthy($rb_gt($rb_plus(this.position,pos),this.string.$length()))?this.position=this.string.$length():this.position=$rb_plus(this.position,pos):$$$($$($nesting,"IO"),"SEEK_END")["$==="]($case)&&($truthy($rb_gt(pos,this.string.$length()))?this.position=0:this.position=$rb_minus(this.position,pos)),0},$StringIO_check_writable$18.$$arity=-2),Opal.def($StringIO_check_readable$19,"$tell",$StringIO_check_writable$18=function(){return this.position},$StringIO_check_writable$18.$$arity=0),$alias($StringIO_check_readable$19,"pos","tell"),$alias($StringIO_check_readable$19,"pos=","seek"),Opal.def($StringIO_check_readable$19,"$rewind",$StringIO_check_writable$18=function(){return this.$seek(0)},$StringIO_check_writable$18.$$arity=0),Opal.def($StringIO_check_readable$19,"$each_byte",$StringIO_each_byte$7=function(){var $iter=$StringIO_each_byte$7.$$p,block=$iter||nil,i=nil;if($iter&&($StringIO_each_byte$7.$$p=null),$iter&&($StringIO_each_byte$7.$$p=null),!$truthy(block))return this.$enum_for("each_byte");for(this.$check_readable(),i=this.position;!$truthy(this["$eof?"]());)block.$call(this.string["$[]"](i).$ord()),i=$rb_plus(i,1);return this},$StringIO_each_byte$7.$$arity=0),Opal.def($StringIO_check_readable$19,"$each_char",$StringIO_each_char$8=function(){var $iter=$StringIO_each_char$8.$$p,block=$iter||nil,i=nil;if($iter&&($StringIO_each_char$8.$$p=null),$iter&&($StringIO_each_char$8.$$p=null),!$truthy(block))return this.$enum_for("each_char");for(this.$check_readable(),i=this.position;!$truthy(this["$eof?"]());)block.$call(this.string["$[]"](i)),i=$rb_plus(i,1);return this},$StringIO_each_char$8.$$arity=0),Opal.def($StringIO_check_readable$19,"$each",$StringIO_each$9=function(separator){var chomped=$StringIO_each$9.$$p,$yield=chomped||nil,chomp_lines=nil;if(null==$gvars["/"]&&($gvars["/"]=nil),chomped&&($StringIO_each$9.$$p=null),null==separator&&(separator=$gvars["/"]),$yield===nil)return this.$enum_for("each_line");this.$check_readable(),chomp_lines=!1,separator=$truthy($$$("::","Hash")["$==="](separator))?$truthy(chomp_lines=separator["$[]"]("chomp"))?/\r?\n/:$gvars["/"]:$truthy(separator)?separator.$to_str():void 0;var str=this.string,stringLength=str.length;if(this.position","$size","$named_captures","$regexp","$object_group","$class_eval","$string","$<=","$first","$module_function"]),self.$require("thread"),self.$require("stringio"),self.$require("prettyprint"),function($base,self,$PP_singleline_pp$3){var $PP_mcall$5,$nesting=[self=$klass($base,self,"PP")].concat($PP_singleline_pp$3);Opal.defs($$($nesting,"PP"),"$pp",$PP_singleline_pp$3=function(obj,out,width){var $$2,q=nil;return null==$gvars.stdout&&($gvars.stdout=nil),null==out&&(out=$gvars.stdout),null==width&&(width=79),q=$$($nesting,"PP").$new(out,width),$send(q,"guard_inspect_key",[],(($$2=function(){null==$$2.$$s||$$2.$$s;return q.$pp(obj)}).$$s=this,$$2.$$arity=0,$$2)),q.$flush(),out["$<<"]("\n")},$PP_singleline_pp$3.$$arity=-2),Opal.defs($$($nesting,"PP"),"$singleline_pp",$PP_singleline_pp$3=function(obj,out){var $$4,q=nil;return null==$gvars.stdout&&($gvars.stdout=nil),null==out&&(out=$gvars.stdout),q=$$($nesting,"SingleLine").$new(out),$send(q,"guard_inspect_key",[],(($$4=function(){null==$$4.$$s||$$4.$$s;return q.$pp(obj)}).$$s=this,$$4.$$arity=0,$$4)),q.$flush(),out},$PP_singleline_pp$3.$$arity=-2),Opal.defs($$($nesting,"PP"),"$mcall",$PP_mcall$5=function(obj,mod,meth,$a){var args=$PP_mcall$5.$$p,block=args||nil;return args&&($PP_mcall$5.$$p=null),args&&($PP_mcall$5.$$p=null),args=Opal.slice.call(arguments,3,arguments.length),$send(mod.$instance_method(meth),"bind_call",[obj].concat(Opal.to_a(args)),block.$to_proc())},$PP_mcall$5.$$arity=-4),self.sharing_detection=!1,function(self,$parent_nesting){[self].concat($parent_nesting),self.$attr_accessor("sharing_detection")}(Opal.get_singleton_class(self),$nesting),function($PPMethods_pp_hash$24,$PPMethods_pp_object$19){var $PPMethods_guard_inspect_key$6,$PPMethods_object_group$13,$PPMethods_object_address_group$14,$PPMethods_seplist$16,$nesting=[$PPMethods_pp_hash$24=$module($PPMethods_pp_hash$24,"PPMethods")].concat($PPMethods_pp_object$19);Opal.def($PPMethods_pp_hash$24,"$guard_inspect_key",$PPMethods_guard_inspect_key$6=function(){var save,$iter=$PPMethods_guard_inspect_key$6.$$p,$yield=$iter||nil,$writer=nil;return $iter&&($PPMethods_guard_inspect_key$6.$$p=null),$$($nesting,"Thread").$current()["$[]"]("__recursive_key__")["$=="](nil)&&($writer=["__recursive_key__",$hash2([],{}).$compare_by_identity()],$send($$($nesting,"Thread").$current(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$$($nesting,"Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect")["$=="](nil)&&($writer=["inspect",$hash2([],{}).$compare_by_identity()],$send($$($nesting,"Thread").$current()["$[]"]("__recursive_key__"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),save=$$($nesting,"Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),function(){try{return $writer=["inspect",$hash2([],{}).$compare_by_identity()],$send($$($nesting,"Thread").$current()["$[]"]("__recursive_key__"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],Opal.yieldX($yield,[])}finally{$writer=["inspect",save],$send($$($nesting,"Thread").$current()["$[]"]("__recursive_key__"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()},$PPMethods_guard_inspect_key$6.$$arity=0),Opal.def($PPMethods_pp_hash$24,"$check_inspect_key",$PPMethods_pp_object$19=function(id){var $ret_or_1,$ret_or_2=nil;return $truthy($ret_or_1=$truthy($ret_or_2=$$($nesting,"Thread").$current()["$[]"]("__recursive_key__"))?$$($nesting,"Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"):$ret_or_2)?$$($nesting,"Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect")["$include?"](id):$ret_or_1},$PPMethods_pp_object$19.$$arity=1),Opal.def($PPMethods_pp_hash$24,"$push_inspect_key",$PPMethods_pp_object$19=function(id){var $writer=[id,!0];return $send($$($nesting,"Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$PPMethods_pp_object$19.$$arity=1),Opal.def($PPMethods_pp_hash$24,"$pop_inspect_key",$PPMethods_pp_object$19=function(id){return $$($nesting,"Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect").$delete(id)},$PPMethods_pp_object$19.$$arity=1),Opal.def($PPMethods_pp_hash$24,"$pp",$PPMethods_pp_object$19=function(obj){var $$11,$$12,self=this,$ret_or_3=nil;return $truthy($truthy($ret_or_3=$$$("::","Delegator","skip_raise")?"constant":nil)?obj["$is_a?"]($$$("::","Delegator")):$ret_or_3)&&(obj=obj.$__getobj__()),$truthy(self.$check_inspect_key(obj))?($send(self,"group",[],(($$11=function(){var self=null==$$11.$$s?this:$$11.$$s;return obj.$pretty_print_cycle(self)}).$$s=self,$$11.$$arity=0,$$11)),nil):function(){try{return self.$push_inspect_key(obj),$send(self,"group",[],(($$12=function(){var self=null==$$12.$$s?this:$$12.$$s;return obj.$pretty_print(self)}).$$s=self,$$12.$$arity=0,$$12))}finally{$truthy($$($nesting,"PP").$sharing_detection())||self.$pop_inspect_key(obj)}}()},$PPMethods_pp_object$19.$$arity=1),Opal.def($PPMethods_pp_hash$24,"$object_group",$PPMethods_object_group$13=function(rhs){var lhs=$PPMethods_object_group$13.$$p,block=lhs||nil;return lhs&&($PPMethods_object_group$13.$$p=null),lhs&&($PPMethods_object_group$13.$$p=null),$send(this,"group",[1,(lhs="#<",rhs=rhs.$class().$name(),"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)),">"],block.$to_proc())},$PPMethods_object_group$13.$$arity=1),Opal.def($PPMethods_pp_hash$24,"$object_address_group",$PPMethods_object_address_group$14=function(obj){var $iter=$PPMethods_object_address_group$14.$$p,block=$iter||nil,str=nil;return $iter&&($PPMethods_object_address_group$14.$$p=null),$iter&&($PPMethods_object_address_group$14.$$p=null),(str=$$($nesting,"Kernel").$instance_method("to_s").$bind_call(obj))["$chomp!"](">"),$send(this,"group",[1,str,">"],block.$to_proc())},$PPMethods_object_address_group$14.$$arity=1),Opal.def($PPMethods_pp_hash$24,"$comma_breakable",$PPMethods_pp_object$19=function(){return this.$text(","),this.$breakable()},$PPMethods_pp_object$19.$$arity=0),Opal.def($PPMethods_pp_hash$24,"$seplist",$PPMethods_seplist$16=function(list,sep,iter_method){var $$17,$$18,$ret_or_4,$iter=$PPMethods_seplist$16.$$p,$yield=$iter||nil,self=this,first=nil;return $iter&&($PPMethods_seplist$16.$$p=null),null==sep&&(sep=nil),null==iter_method&&(iter_method="each"),sep=$truthy($ret_or_4=sep)?$ret_or_4:$send(self,"lambda",[],(($$17=function(){return(null==$$17.$$s?this:$$17.$$s).$comma_breakable()}).$$s=self,$$17.$$arity=0,$$17)),first=!0,$send(list,"__send__",[iter_method],(($$18=function($a){null==$$18.$$s||$$18.$$s;var v=Opal.slice.call(arguments,0,arguments.length);return $truthy(first)?first=!1:sep.$call(),Opal.yieldX($yield,Opal.to_a(v))}).$$s=self,$$18.$$arity=-1,$$18))},$PPMethods_seplist$16.$$arity=-2),Opal.def($PPMethods_pp_hash$24,"$pp_object",$PPMethods_pp_object$19=function(obj){var $$20;return $send(this,"object_address_group",[obj],(($$20=function(){var $$21,$$22,self=null==$$20.$$s?this:$$20.$$s;return $send(self,"seplist",[obj.$pretty_print_instance_variables(),$send(self,"lambda",[],(($$21=function(){return(null==$$21.$$s?this:$$21.$$s).$text(",")}).$$s=self,$$21.$$arity=0,$$21))],(($$22=function(v){var $$23,self=null==$$22.$$s?this:$$22.$$s;return null==v&&(v=nil),self.$breakable(),$truthy($$($nesting,"Symbol")["$==="](v))&&(v=v.$to_s()),self.$text(v),self.$text("="),$send(self,"group",[1],(($$23=function(){var self=null==$$23.$$s?this:$$23.$$s;return self.$breakable(""),self.$pp(obj.$instance_eval(v))}).$$s=self,$$23.$$arity=0,$$23))}).$$s=self,$$22.$$arity=1,$$22))}).$$s=this,$$20.$$arity=0,$$20))},$PPMethods_pp_object$19.$$arity=1),Opal.def($PPMethods_pp_hash$24,"$pp_hash",$PPMethods_pp_hash$24=function(obj){var $$25;return $send(this,"group",[1,"{","}"],(($$25=function(){var $$26,self=null==$$25.$$s?this:$$25.$$s;return $send(self,"seplist",[obj,nil,"each_pair"],(($$26=function(k,v){var $$27,self=null==$$26.$$s?this:$$26.$$s;return null==k&&(k=nil),null==v&&(v=nil),$send(self,"group",[],(($$27=function(){var $$28,self=null==$$27.$$s?this:$$27.$$s;return self.$pp(k),self.$text("=>"),$send(self,"group",[1],(($$28=function(){var self=null==$$28.$$s?this:$$28.$$s;return self.$breakable(""),self.$pp(v)}).$$s=self,$$28.$$arity=0,$$28))}).$$s=self,$$27.$$arity=0,$$27))}).$$s=self,$$26.$$arity=2,$$26))}).$$s=this,$$25.$$arity=0,$$25))},$PPMethods_pp_hash$24.$$arity=1)}($nesting[0],$nesting),self.$include($$($nesting,"PPMethods")),function($base,self,$nesting){self=$klass($base,self,"SingleLine"),$nesting=[self].concat($nesting),self.$include($$($nesting,"PPMethods"))}($nesting[0],$$$($$($nesting,"PrettyPrint"),"SingleLine"),$nesting),function($ObjectMixin_pretty_print_inspect$33,$ObjectMixin_pretty_print_instance_variables$32){var $nesting=[$ObjectMixin_pretty_print_inspect$33=$module($ObjectMixin_pretty_print_inspect$33,"ObjectMixin")].concat($ObjectMixin_pretty_print_instance_variables$32);Opal.def($ObjectMixin_pretty_print_inspect$33,"$pretty_print",$ObjectMixin_pretty_print_instance_variables$32=function(q){var self=this,umethod_method=nil,inspect_method=nil,$ret_or_5=nil,$ret_or_6=nil,umethod_method=$$($nesting,"Object").$instance_method("method");try{inspect_method=umethod_method.$bind_call(self,"inspect")}catch($err){if(!Opal.rescue($err,[$$($nesting,"NameError")]))throw $err;Opal.pop_exception()}return $truthy($truthy($ret_or_5=inspect_method)?inspect_method.$owner()["$!="]($$($nesting,"Kernel")):$ret_or_5)||$truthy($truthy($ret_or_6=inspect_method["$!"]())?self["$respond_to?"]("inspect"):$ret_or_6)?q.$text(self.$inspect()):q.$pp_object(self)},$ObjectMixin_pretty_print_instance_variables$32.$$arity=1),Opal.def($ObjectMixin_pretty_print_inspect$33,"$pretty_print_cycle",$ObjectMixin_pretty_print_instance_variables$32=function(q){var $$31;return $send(q,"object_address_group",[this],(($$31=function(){null==$$31.$$s||$$31.$$s;return q.$breakable(),q.$text("...")}).$$s=this,$$31.$$arity=0,$$31))},$ObjectMixin_pretty_print_instance_variables$32.$$arity=1),Opal.def($ObjectMixin_pretty_print_inspect$33,"$pretty_print_instance_variables",$ObjectMixin_pretty_print_instance_variables$32=function(){return this.$instance_variables().$sort()},$ObjectMixin_pretty_print_instance_variables$32.$$arity=0),Opal.def($ObjectMixin_pretty_print_inspect$33,"$pretty_print_inspect",$ObjectMixin_pretty_print_inspect$33=function(){return $$($nesting,"Object").$instance_method("method").$bind_call(this,"pretty_print").$owner()["$=="]($$$($$($nesting,"PP"),"ObjectMixin"))&&this.$raise("pretty_print is not overridden for "+this.$class()),$$($nesting,"PP").$singleline_pp(this,"".$dup())},$ObjectMixin_pretty_print_inspect$33.$$arity=0)}($nesting[0],$nesting)}($nesting[0],$$($nesting,"PrettyPrint"),$nesting),[$Hash_pretty_print_cycle$39=$klass($Hash_pretty_print_cycle$39=($Hash_pretty_print$38=$nesting)[0],null,"Array")].concat($Hash_pretty_print$38),Opal.def($Hash_pretty_print_cycle$39,"$pretty_print",$Hash_pretty_print$38=function(q){var $$35;return $send(q,"group",[1,"[","]"],(($$35=function(){var $$36,self=null==$$35.$$s?this:$$35.$$s;return $send(q,"seplist",[self],(($$36=function(v){null==$$36.$$s||$$36.$$s;return null==v&&(v=nil),q.$pp(v)}).$$s=self,$$36.$$arity=1,$$36))}).$$s=this,$$35.$$arity=0,$$35))},$Hash_pretty_print$38.$$arity=1),Opal.def($Hash_pretty_print_cycle$39,"$pretty_print_cycle",$Hash_pretty_print_cycle$39=function(q){var self=this;return q.$text($truthy(self["$empty?"]())?"[]":"[...]")},$Hash_pretty_print_cycle$39.$$arity=1),[$Hash_pretty_print_cycle$39=$klass($Hash_pretty_print_cycle$39=($Hash_pretty_print$38=$nesting)[0],null,"Hash")].concat($Hash_pretty_print$38),Opal.def($Hash_pretty_print_cycle$39,"$pretty_print",$Hash_pretty_print$38=function(q){return q.$pp_hash(this)},$Hash_pretty_print$38.$$arity=1),Opal.def($Hash_pretty_print_cycle$39,"$pretty_print_cycle",$Hash_pretty_print_cycle$39=function(q){var self=this;return q.$text($truthy(self["$empty?"]())?"{}":"{...}")},$Hash_pretty_print_cycle$39.$$arity=1),function($pretty_print$40,$parent_nesting){var $nesting=[$pretty_print$40].concat($parent_nesting);Opal.def($pretty_print$40,"$pretty_print",$pretty_print$40=function(q){var $$41,h=$hash2([],{});return $send($$($nesting,"ENV").$keys().$sort(),"each",[],(($$41=function(k){var $writer;null==$$41.$$s||$$41.$$s;return null==k&&(k=nil),$writer=[k,$$($nesting,"ENV")["$[]"](k)],$send(h,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$41.$$arity=1,$$41)),q.$pp_hash(h)},$pretty_print$40.$$arity=1)}(Opal.get_singleton_class($$($nesting,"ENV")),$nesting),function($Struct_pretty_print_cycle$47,$Struct_pretty_print$42){var $nesting=[$Struct_pretty_print_cycle$47=$klass($Struct_pretty_print_cycle$47,null,"Struct")].concat($Struct_pretty_print$42);Opal.def($Struct_pretty_print_cycle$47,"$pretty_print",$Struct_pretty_print$42=function(q){var $$43;return $send(q,"group",[1,this.$sprintf("#"],(($$43=function(){var $$44,$$45,self=null==$$43.$$s?this:$$43.$$s;return $send(q,"seplist",[$$($nesting,"PP").$mcall(self,$$($nesting,"Struct"),"members"),$send(self,"lambda",[],(($$44=function(){null==$$44.$$s||$$44.$$s;return q.$text(",")}).$$s=self,$$44.$$arity=0,$$44))],(($$45=function(member){var $$46,self=null==$$45.$$s?this:$$45.$$s;return null==member&&(member=nil),q.$breakable(),q.$text(member.$to_s()),q.$text("="),$send(q,"group",[1],(($$46=function(){var self=null==$$46.$$s?this:$$46.$$s;return q.$breakable(""),q.$pp(self["$[]"](member))}).$$s=self,$$46.$$arity=0,$$46))}).$$s=self,$$45.$$arity=1,$$45))}).$$s=this,$$43.$$arity=0,$$43))},$Struct_pretty_print$42.$$arity=1),Opal.def($Struct_pretty_print_cycle$47,"$pretty_print_cycle",$Struct_pretty_print_cycle$47=function(q){return q.$text(this.$sprintf("#",$$($nesting,"PP").$mcall(this,$$($nesting,"Kernel"),"class").$name()))},$Struct_pretty_print_cycle$47.$$arity=1)}($nesting[0],$nesting),function($Range_pretty_print$48,$parent_nesting){[$Range_pretty_print$48=$klass($Range_pretty_print$48,null,"Range")].concat($parent_nesting),Opal.def($Range_pretty_print$48,"$pretty_print",$Range_pretty_print$48=function(q){var self=this;return q.$pp(self.$begin()),q.$breakable(""),q.$text($truthy(self["$exclude_end?"]())?"...":".."),q.$breakable(""),$truthy(self.$end())?q.$pp(self.$end()):nil},$Range_pretty_print$48.$$arity=1)}($nesting[0],$nesting),function($String_pretty_print$49,$parent_nesting){[$String_pretty_print$49=$klass($String_pretty_print$49,null,"String")].concat($parent_nesting),Opal.def($String_pretty_print$49,"$pretty_print",$String_pretty_print$49=function(q){var $$50,lhs,rhs,lines=nil,lines=this.$lines();return $truthy((lhs=lines.$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)))?$send(q,"group",[0,"",""],(($$50=function(){var $$51,$$52,self=null==$$50.$$s?this:$$50.$$s;return $send(q,"seplist",[lines,$send(self,"lambda",[],(($$51=function(){null==$$51.$$s||$$51.$$s;return q.$text(" +"),q.$breakable()}).$$s=self,$$51.$$arity=0,$$51))],(($$52=function(v){null==$$52.$$s||$$52.$$s;return null==v&&(v=nil),q.$pp(v)}).$$s=self,$$52.$$arity=1,$$52))}).$$s=this,$$50.$$arity=0,$$50)):q.$text(this.$inspect())},$String_pretty_print$49.$$arity=1)}($nesting[0],$nesting),function($MatchData_pretty_print$53,$parent_nesting){[$MatchData_pretty_print$53=$klass($MatchData_pretty_print$53,null,"MatchData")].concat($parent_nesting),Opal.def($MatchData_pretty_print$53,"$pretty_print",$MatchData_pretty_print$53=function(q){var $$54,$$56,nc=nil,nc=[];return $send(this.$regexp().$named_captures(),"each",[],(($$54=function(name,indexes){var $$55,self=null==$$54.$$s?this:$$54.$$s;return null==name&&(name=nil),null==indexes&&(indexes=nil),$send(indexes,"each",[],(($$55=function(i){var $writer;null==$$55.$$s||$$55.$$s;return null==i&&(i=nil),$writer=[i,name],$send(nc,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=self,$$55.$$arity=1,$$55))}).$$s=this,$$54.$$arity=2,$$54)),$send(q,"object_group",[this],(($$56=function(){var $$57,$$58,self=null==$$56.$$s?this:$$56.$$s;return q.$breakable(),$send(q,"seplist",[Opal.Range.$new(0,self.$size(),!0),$send(self,"lambda",[],(($$57=function(){null==$$57.$$s||$$57.$$s;return q.$breakable()}).$$s=self,$$57.$$arity=0,$$57))],(($$58=function(i){var self=null==$$58.$$s?this:$$58.$$s;return null==i&&(i=nil),i["$=="](0)||($truthy(nc["$[]"](i))?q.$text(nc["$[]"](i)):q.$pp(i),q.$text(":")),q.$pp(self["$[]"](i))}).$$s=self,$$58.$$arity=1,$$58))}).$$s=this,$$56.$$arity=0,$$56))},$MatchData_pretty_print$53.$$arity=1)}($nesting[0],$nesting),function($base,self,$nesting){self=$klass($base,self,"Object"),$nesting=[self].concat($nesting),self.$include($$$($$($nesting,"PP"),"ObjectMixin"))}($nesting[0],$$($nesting,"BasicObject"),$nesting),$send([$$($nesting,"Numeric"),$$($nesting,"Symbol"),$$($nesting,"FalseClass"),$$($nesting,"TrueClass"),$$($nesting,"NilClass"),$$($nesting,"Module")],"each",[],(($$59=function(c){var $$60,self=null==$$59.$$s?this:$$59.$$s;return null==c&&(c=nil),$send(c,"class_eval",[],(($$60=function(){var $pretty_print_cycle$61=null==$$60.$$s?this:$$60.$$s;return Opal.def($pretty_print_cycle$61,"$pretty_print_cycle",$pretty_print_cycle$61=function(q){return q.$text(this.$inspect())},$pretty_print_cycle$61.$$arity=1),nil&&"pretty_print_cycle"}).$$s=self,$$60.$$arity=0,$$60))}).$$s=self,$$59.$$arity=1,$$59)),$send([$$($nesting,"Numeric"),$$($nesting,"FalseClass"),$$($nesting,"TrueClass"),$$($nesting,"Module")],"each",[],(($$62=function(c){var $$63,self=null==$$62.$$s?this:$$62.$$s;return null==c&&(c=nil),$send(c,"class_eval",[],(($$63=function(){var $pretty_print$64=null==$$63.$$s?this:$$63.$$s;return Opal.def($pretty_print$64,"$pretty_print",$pretty_print$64=function(q){return q.$text(this.$inspect())},$pretty_print$64.$$arity=1),nil&&"pretty_print"}).$$s=self,$$63.$$arity=0,$$63))}).$$s=self,$$62.$$arity=1,$$62)),function(self,$Kernel_pp$66){var self=$module(self,"Kernel"),$nesting=[self].concat($Kernel_pp$66);return Opal.def(self,"$pretty_inspect",$Kernel_pp$66=function(){return $$($nesting,"PP").$pp(this,$$($nesting,"StringIO").$new()).$string()},$Kernel_pp$66.$$arity=0),Opal.def(self,"$pp",$Kernel_pp$66=function($a){var $$67,lhs,rhs,objs=Opal.slice.call(arguments,0,arguments.length);return $send(objs,"each",[],(($$67=function(obj){null==$$67.$$s||$$67.$$s;return null==obj&&(obj=nil),$$($nesting,"PP").$pp(obj)}).$$s=this,$$67.$$arity=1,$$67)),$truthy((lhs=objs.$size(),rhs=1,"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)))?objs.$first():objs},$Kernel_pp$66.$$arity=-1),self.$module_function("pp")}($nesting[0],$nesting)}; +Opal.modules.thread=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$defs=Opal.defs,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$hash2=Opal.hash2,$Opal=Opal.Opal,$alias=Opal.alias,$const_set=Opal.const_set;return Opal.add_stubs("allocate,core_initialize!,current,raise,[],coerce_key_name,[]=,-,key?,keys,private,coerce_to!,clear,empty?,size,shift,push,each,to_proc,=~,last_match,to_i,inspect,attr_reader,locked?,lock,unlock"),$klass($nesting[0],$$("StandardError"),"ThreadError"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Thread"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.fiber_locals=$proto.thread_locals=nil,$defs(self,"$current",(function(){return null==this.current&&(this.current=nil),$truthy(this.current)||(this.current=this.$allocate(),this.current["$core_initialize!"]()),this.current}),0),$defs(self,"$list",(function(){return[this.$current()]}),0),$def(self,"$initialize",(function($a){var self=this;return Opal.slice.call(arguments),self.$raise($$("NotImplementedError"),"Thread creation not available")}),-1),$def(self,"$[]",(function(key){return this.fiber_locals["$[]"](this.$coerce_key_name(key))}),1),$def(self,"$[]=",(function(key,value){var $writer;return $writer=[this.$coerce_key_name(key),value],$send(this.fiber_locals,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$def(self,"$key?",(function(key){return this.fiber_locals["$key?"](this.$coerce_key_name(key))}),1),$def(self,"$keys",(function(){return this.fiber_locals.$keys()}),0),$def(self,"$thread_variable_get",(function(key){return this.thread_locals["$[]"](this.$coerce_key_name(key))}),1),$def(self,"$thread_variable_set",(function(key,value){var $writer;return $writer=[this.$coerce_key_name(key),value],$send(this.thread_locals,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$def(self,"$thread_variable?",(function(key){return this.thread_locals["$key?"](this.$coerce_key_name(key))}),1),$def(self,"$thread_variables",(function(){return this.thread_locals.$keys()}),0),self.$private(),$def(self,"$core_initialize!",(function(){return this.thread_locals=$hash2([],{}),this.fiber_locals=$hash2([],{})}),0),$def(self,"$coerce_key_name",(function(key){return $Opal["$coerce_to!"](key,$$("String"),"to_s")}),1),function($base,$super,$parent_nesting){var self=$klass($base,null,"Queue"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.storage=nil,$def(self,"$initialize",(function(){return this.$clear()}),0),$def(self,"$clear",(function(){return this.storage=[]}),0),$def(self,"$empty?",(function(){return this.storage["$empty?"]()}),0),$def(self,"$size",(function(){return this.storage.$size()}),0),$def(self,"$pop",(function(non_block){return null==non_block&&(non_block=!1),$truthy(this["$empty?"]())&&($truthy(non_block)&&this.$raise($$("ThreadError"),"Queue empty"),this.$raise($$("ThreadError"),"Deadlock")),this.storage.$shift()}),-1),$def(self,"$push",(function(value){return this.storage.$push(value)}),1),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;return delete $$each.$$p,$send(this.storage,"each",[],block.$to_proc())}),0),$alias(self,"<<","push"),$alias(self,"deq","pop"),$alias(self,"enq","push"),$alias(self,"length","size"),$alias(self,"shift","pop")}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var $nesting=[$klass($base,null,"Backtrace")].concat($parent_nesting);(function($base,$super,$parent_nesting){var self=$klass($base,null,"Location"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.label=$proto.str=nil,$def(self,"$initialize",(function(str){var $ret_or_1;return this.str=str,str["$=~"](/^(.*?):(\d+):(\d+):in `(.*?)'$/),this.path=$$("Regexp").$last_match(1),this.label=$$("Regexp").$last_match(4),this.lineno=$$("Regexp").$last_match(2).$to_i(),this.label["$=~"](/(\w+)$/),this.base_label=$truthy($ret_or_1=$$("Regexp").$last_match(1))?$ret_or_1:this.label}),1),$def(self,"$to_s",(function(){return this.str}),0),$def(self,"$inspect",(function(){return this.str.$inspect()}),0),self.$attr_reader("base_label","label","lineno","path"),$alias(self,"absolute_path","path")})($nesting[0],0,$nesting)}($nesting[0],0,$nesting)}($nesting[0],0,$nesting),$const_set($nesting[0],"Queue",$$$($$("Thread"),"Queue")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Mutex"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.locked=nil,$def(self,"$initialize",(function(){return this.locked=!1}),0),$def(self,"$lock",(function(){return $truthy(this.locked)&&this.$raise($$("ThreadError"),"Deadlock"),this.locked=!0,this}),0),$def(self,"$locked?",(function(){return this.locked}),0),$def(self,"$owned?",(function(){return this.locked}),0),$def(self,"$try_lock",(function(){return!$truthy(this["$locked?"]())&&(this.$lock(),!0)}),0),$def(self,"$unlock",(function(){return $truthy(this.locked)||this.$raise($$("ThreadError"),"Mutex not locked"),this.locked=!1,this}),0),$def(self,"$synchronize",(function $$synchronize(){var $yield=$$synchronize.$$p||nil,self=this;return delete $$synchronize.$$p,self.$lock(),function(){try{return Opal.yieldX($yield,[])}finally{self.$unlock()}}()}),0)}($nesting[0],0,$nesting)},Opal.modules.stringio=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$defs=Opal.defs,$send2=Opal.send2,$find_super=Opal.find_super,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$rb_ge=Opal.rb_ge,$rb_gt=Opal.rb_gt,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$eqeq=Opal.eqeq,$alias=Opal.alias;return Opal.add_stubs("new,call,close,attr_accessor,check_readable,==,length,===,>=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"StringIO"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.position=$proto.string=nil,$defs(self,"$open",(function $$open(string,mode){var res,block=$$open.$$p||nil,io=nil;return delete $$open.$$p,null==string&&(string=""),null==mode&&(mode=nil),io=this.$new(string,mode),res=block.$call(io),io.$close(),res}),-1),self.$attr_accessor("string"),$def(self,"$initialize",(function $$initialize(string,mode){return delete $$initialize.$$p,null==string&&(string=""),null==mode&&(mode="rw"),this.string=string,this.position=0,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[nil,mode],null)}),-1),$def(self,"$eof?",(function(){return this.$check_readable(),this.position["$=="](this.string.$length())}),0),$def(self,"$seek",(function(pos,whence){var $ret_or_1;return null==whence&&(whence=$$$($$("IO"),"SEEK_SET")),this.read_buffer="",$eqeqeq($$$($$("IO"),"SEEK_SET"),$ret_or_1=whence)?($truthy($rb_ge(pos,0))||this.$raise($$$($$("Errno"),"EINVAL")),this.position=pos):$eqeqeq($$$($$("IO"),"SEEK_CUR"),$ret_or_1)?$truthy($rb_gt($rb_plus(this.position,pos),this.string.$length()))?this.position=this.string.$length():this.position=$rb_plus(this.position,pos):$eqeqeq($$$($$("IO"),"SEEK_END"),$ret_or_1)&&($truthy($rb_gt(pos,this.string.$length()))?this.position=0:this.position=$rb_minus(this.position,pos)),0}),-2),$def(self,"$tell",(function(){return this.position}),0),$def(self,"$rewind",(function(){return this.$seek(0)}),0),$def(self,"$write",(function(string){var before=nil,after=nil;return this.$check_writable(),this.read_buffer="",string=this.$String(string),$eqeq(this.string.$length(),this.position)?(this.string=$rb_plus(this.string,string),this.position=$rb_plus(this.position,string.$length())):(before=this.string["$[]"](Opal.Range.$new(0,$rb_minus(this.position,1),!1)),after=this.string["$[]"](Opal.Range.$new($rb_plus(this.position,string.$length()),-1,!1)),this.string=$rb_plus($rb_plus(before,string),after),this.position=$rb_plus(this.position,string.$length()))}),1),$def(self,"$read",(function(length,outbuf){var string,str=nil;return null==length&&(length=nil),null==outbuf&&(outbuf=nil),this.$check_readable(),$truthy(this["$eof?"]())?nil:(string=$truthy(length)?(str=this.string["$[]"](this.position,length),this.position=$rb_plus(this.position,length),$truthy($rb_gt(this.position,this.string.$length()))&&(this.position=this.string.$length()),str):(str=this.string["$[]"](Opal.Range.$new(this.position,-1,!1)),this.position=this.string.$length(),str),$truthy(outbuf)?outbuf.$write(string):string)}),-1),$def(self,"$sysread",(function(length){return this.$check_readable(),this.$read(length)}),1),$alias(self,"eof","eof?"),$alias(self,"pos","tell"),$alias(self,"pos=","seek"),$alias(self,"readpartial","read")}($nesting[0],$$("IO"),$nesting)},Opal.modules.prettyprint=function(Opal){var $nesting=[],nil=Opal.nil,$klass=Opal.klass,$send=Opal.send,$rb_times=Opal.rb_times,$defs=Opal.defs,$truthy=Opal.truthy,$def=Opal.def,$rb_lt=Opal.rb_lt,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$eqeqeq=Opal.eqeqeq,$to_a=Opal.to_a;return Opal.add_stubs("dup,lambda,*,new,to_proc,flush,attr_reader,last,<,+,deq,empty?,breakables,shift,output,-,width,!,===,first,length,<<,add,break_outmost_groups,group,breakable,break?,call,text,group_sub,nest,depth,push,enq,pop,delete,each,clear,indent,current_group,newline,genspace,group_queue,[],downto,slice!,break,[]="),function($base,$super,$parent_nesting){var self=$klass($base,null,"PrettyPrint"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.group_stack=$proto.maxwidth=$proto.output_width=$proto.buffer_width=$proto.group_queue=$proto.buffer=$proto.output=$proto.newline=$proto.genspace=$proto.indent=nil,$defs($$("PrettyPrint"),"$format",(function $$format(output,maxwidth,newline,genspace){var $yield=$$format.$$p||nil,q=nil;return delete $$format.$$p,null==output&&(output="".$dup()),null==maxwidth&&(maxwidth=79),null==newline&&(newline="\n"),null==genspace&&(genspace=$send(this,"lambda",[],(function(n){return null==n&&(n=nil),$rb_times(" ",n)}),1)),q=$send($$("PrettyPrint"),"new",[output,maxwidth,newline],genspace.$to_proc()),Opal.yield1($yield,q),q.$flush(),output}),-1),$defs($$("PrettyPrint"),"$singleline_format",(function $$singleline_format(output,maxwidth,newline,genspace){var q,$yield=$$singleline_format.$$p||nil;return delete $$singleline_format.$$p,null==output&&(output="".$dup()),null==maxwidth&&(maxwidth=nil),null==newline&&(newline=nil),null==genspace&&(genspace=nil),q=$$("SingleLine").$new(output),Opal.yield1($yield,q),output}),-1),$def(self,"$initialize",(function $$initialize(output,maxwidth,newline){var $ret_or_1,root_group,genspace=$$initialize.$$p||nil;return delete $$initialize.$$p,null==output&&(output="".$dup()),null==maxwidth&&(maxwidth=79),null==newline&&(newline="\n"),this.output=output,this.maxwidth=maxwidth,this.newline=newline,this.genspace=$truthy($ret_or_1=genspace)?$ret_or_1:$send(this,"lambda",[],(function(n){return null==n&&(n=nil),$rb_times(" ",n)}),1),this.output_width=0,this.buffer_width=0,this.buffer=[],root_group=$$("Group").$new(0),this.group_stack=[root_group],this.group_queue=$$("GroupQueue").$new(root_group),this.indent=0}),-1),self.$attr_reader("output"),self.$attr_reader("maxwidth"),self.$attr_reader("newline"),self.$attr_reader("genspace"),self.$attr_reader("indent"),self.$attr_reader("group_queue"),$def(self,"$current_group",(function(){return this.group_stack.$last()}),0),$def(self,"$break_outmost_groups",(function(){for(var group=nil,data=nil,$ret_or_1=nil,text=nil;$truthy($rb_lt(this.maxwidth,$rb_plus(this.output_width,this.buffer_width)));){if(!$truthy(group=this.group_queue.$deq()))return nil;for(;!$truthy(group.$breakables()["$empty?"]());)data=this.buffer.$shift(),this.output_width=data.$output(this.output,this.output_width),this.buffer_width=$rb_minus(this.buffer_width,data.$width());for(;$truthy($truthy($ret_or_1=this.buffer["$empty?"]()["$!"]())?$$("Text")["$==="](this.buffer.$first()):$ret_or_1);)text=this.buffer.$shift(),this.output_width=text.$output(this.output,this.output_width),this.buffer_width=$rb_minus(this.buffer_width,text.$width())}}),0),$def(self,"$text",(function(obj,width){var text=nil;return null==width&&(width=obj.$length()),$truthy(this.buffer["$empty?"]())?(this.output["$<<"](obj),this.output_width=$rb_plus(this.output_width,width)):(text=this.buffer.$last(),$eqeqeq($$("Text"),text)||(text=$$("Text").$new(),this.buffer["$<<"](text)),text.$add(obj,width),this.buffer_width=$rb_plus(this.buffer_width,width),this.$break_outmost_groups())}),-2),$def(self,"$fill_breakable",(function(sep,width){return null==sep&&(sep=" "),null==width&&(width=sep.$length()),$send(this,"group",[],(function $$3(){return(null==$$3.$$s?this:$$3.$$s).$breakable(sep,width)}),{$$arity:0,$$s:this})}),-1),$def(self,"$breakable",(function(sep,width){var group=nil;return null==sep&&(sep=" "),null==width&&(width=sep.$length()),group=this.group_stack.$last(),$truthy(group["$break?"]())?(this.$flush(),this.output["$<<"](this.newline),this.output["$<<"](this.genspace.$call(this.indent)),this.output_width=this.indent,this.buffer_width=0):(this.buffer["$<<"]($$("Breakable").$new(sep,width,this)),this.buffer_width=$rb_plus(this.buffer_width,width),this.$break_outmost_groups())}),-1),$def(self,"$group",(function $$group(indent,open_obj,close_obj,open_width,close_width){var $yield=$$group.$$p||nil;return delete $$group.$$p,null==indent&&(indent=0),null==open_obj&&(open_obj=""),null==close_obj&&(close_obj=""),null==open_width&&(open_width=open_obj.$length()),null==close_width&&(close_width=close_obj.$length()),this.$text(open_obj,open_width),$send(this,"group_sub",[],(function $$4(){return $send(null==$$4.$$s?this:$$4.$$s,"nest",[indent],(function(){return Opal.yieldX($yield,[])}),0)}),{$$arity:0,$$s:this}),this.$text(close_obj,close_width)}),-1),$def(self,"$group_sub",(function $$group_sub(){var $yield=$$group_sub.$$p||nil,self=this,group=nil;return delete $$group_sub.$$p,group=$$("Group").$new($rb_plus(self.group_stack.$last().$depth(),1)),self.group_stack.$push(group),self.group_queue.$enq(group),function(){try{return Opal.yieldX($yield,[])}finally{self.group_stack.$pop(),$truthy(group.$breakables()["$empty?"]())&&self.group_queue.$delete(group)}}()}),0),$def(self,"$nest",(function $$nest(indent){var $yield=$$nest.$$p||nil,self=this;return delete $$nest.$$p,self.indent=$rb_plus(self.indent,indent),function(){try{return Opal.yieldX($yield,[])}finally{self.indent=$rb_minus(self.indent,indent)}}()}),1),$def(self,"$flush",(function(){return $send(this.buffer,"each",[],(function $$6(data){var self=null==$$6.$$s?this:$$6.$$s;return null==self.output&&(self.output=nil),null==self.output_width&&(self.output_width=nil),null==data&&(data=nil),self.output_width=data.$output(self.output,self.output_width)}),{$$arity:1,$$s:this}),this.buffer.$clear(),this.buffer_width=0}),0),function($base,$super){var self=$klass($base,null,"Text"),$proto=self.$$prototype;$proto.objs=$proto.width=nil,$def(self,"$initialize",(function(){return this.objs=[],this.width=0}),0),self.$attr_reader("width"),$def(self,"$output",(function(out,output_width){return $send(this.objs,"each",[],(function(obj){return null==obj&&(obj=nil),out["$<<"](obj)}),1),$rb_plus(output_width,this.width)}),2),$def(self,"$add",(function(obj,width){return this.objs["$<<"](obj),this.width=$rb_plus(this.width,width)}),2)}($nesting[0]),function($base,$super){var self=$klass($base,null,"Breakable"),$proto=self.$$prototype;$proto.group=$proto.pp=$proto.indent=$proto.obj=$proto.width=nil,$def(self,"$initialize",(function(sep,width,q){return this.obj=sep,this.width=width,this.pp=q,this.indent=q.$indent(),this.group=q.$current_group(),this.group.$breakables().$push(this)}),3),self.$attr_reader("obj"),self.$attr_reader("width"),self.$attr_reader("indent"),$def(self,"$output",(function(out,output_width){return this.group.$breakables().$shift(),$truthy(this.group["$break?"]())?(out["$<<"](this.pp.$newline()),out["$<<"](this.pp.$genspace().$call(this.indent)),this.indent):($truthy(this.group.$breakables()["$empty?"]())&&this.pp.$group_queue().$delete(this.group),out["$<<"](this.obj),$rb_plus(output_width,this.width))}),2)}($nesting[0]),function($base,$super){var self=$klass($base,null,"Group");self.$$prototype.break=nil,$def(self,"$initialize",(function(depth){return this.depth=depth,this.breakables=[],this.break=!1}),1),self.$attr_reader("depth"),self.$attr_reader("breakables"),$def(self,"$break",(function(){return this.break=!0}),0),$def(self,"$break?",(function(){return this.break}),0),$def(self,"$first?",(function(){var $a;return!$truthy(($a=this.first,null!=$a&&$a!==nil?"instance-variable":nil))&&(this.first=!1,!0)}),0)}($nesting[0]),function($base,$super){var self=$klass($base,null,"GroupQueue");self.$$prototype.queue=nil,$def(self,"$initialize",(function($a){var groups,self=this;return groups=Opal.slice.call(arguments),self.queue=[],$send(groups,"each",[],(function $$11(g){return null==g&&(g=nil),(null==$$11.$$s?this:$$11.$$s).$enq(g)}),{$$arity:1,$$s:self})}),-1),$def(self,"$enq",(function(group){var depth;for(depth=group.$depth();!$truthy($rb_lt(depth,this.queue.$length()));)this.queue["$<<"]([]);return this.queue["$[]"](depth)["$<<"](group)}),1),$def(self,"$deq",(function(){try{return $send(this.queue,"each",[],(function(gs){return null==gs&&(gs=nil),$send($rb_minus(gs.$length(),1),"downto",[0],(function(i){var group=nil;if(null==i&&(i=nil),$truthy(gs["$[]"](i).$breakables()["$empty?"]()))return nil;(group=gs["$slice!"](i,1).$first()).$break(),Opal.ret(group)}),1),$send(gs,"each",[],(function(group){return null==group&&(group=nil),group.$break()}),1),gs.$clear()}),1),nil}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),0),$def(self,"$delete",(function(group){return this.queue["$[]"](group.$depth()).$delete(group)}),1)}($nesting[0]),function($base,$super){var self=$klass($base,null,"SingleLine"),$proto=self.$$prototype;return $proto.output=$proto.first=nil,$def(self,"$initialize",(function(output,maxwidth,newline){return null==maxwidth&&(maxwidth=nil),null==newline&&(newline=nil),this.output=output,this.first=[!0]}),-2),$def(self,"$text",(function(obj,width){return null==width&&(width=nil),this.output["$<<"](obj)}),-2),$def(self,"$breakable",(function(sep,width){return null==sep&&(sep=" "),null==width&&(width=nil),this.output["$<<"](sep)}),-1),$def(self,"$nest",(function $$nest(indent){var $yield=$$nest.$$p||nil;return delete $$nest.$$p,Opal.yieldX($yield,[])}),1),$def(self,"$group",(function $$group(indent,open_obj,close_obj,open_width,close_width){var $yield=$$group.$$p||nil;return delete $$group.$$p,null==indent&&(indent=nil),null==open_obj&&(open_obj=""),null==close_obj&&(close_obj=""),null==open_width&&(open_width=nil),null==close_width&&(close_width=nil),this.first.$push(!0),this.output["$<<"](open_obj),Opal.yieldX($yield,[]),this.output["$<<"](close_obj),this.first.$pop()}),-1),$def(self,"$flush",(function(){return nil}),0),$def(self,"$first?",(function(){var result,$writer;return result=this.first["$[]"](-1),$writer=[-1,!1],$send(this.first,"[]=",$to_a($writer)),$rb_minus($writer.length,1),result}),0)}($nesting[0])}($nesting[0],0,$nesting)},Opal.modules.pp=function(Opal){var self=Opal.top,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$gvars=Opal.gvars,$send=Opal.send,$defs=Opal.defs,$to_a=Opal.to_a,$module=Opal.module,$eqeq=Opal.eqeq,$hash2=Opal.hash2,$rb_minus=Opal.rb_minus,$def=Opal.def,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$eqeqeq=Opal.eqeqeq,$neqeq=Opal.neqeq,$not=Opal.not,$rb_gt=Opal.rb_gt,$rb_le=Opal.rb_le;return Opal.add_stubs("require,new,guard_inspect_key,pp,flush,<<,bind_call,instance_method,to_proc,attr_accessor,==,[],current,compare_by_identity,[]=,-,include?,delete,text,is_a?,__getobj__,check_inspect_key,group,pretty_print_cycle,push_inspect_key,pretty_print,sharing_detection,pop_inspect_key,+,name,class,chomp,breakable,lambda,comma_breakable,__send__,call,object_address_group,seplist,pretty_print_instance_variables,===,to_s,instance_eval,include,!=,owner,inspect,respond_to?,!,pp_object,sort,instance_variables,raise,singleline_pp,dup,empty?,pp_hash,each,keys,sprintf,mcall,begin,exclude_end?,end,lines,>,size,named_captures,regexp,object_group,class_eval,string,<=,first,module_function"),self.$require("thread"),self.$require("stringio"),self.$require("prettyprint"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"PP"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs($$("PP"),"$pp",(function(obj,out,width){var q=nil;return null==$gvars.stdout&&($gvars.stdout=nil),null==out&&(out=$gvars.stdout),null==width&&(width=79),q=$$("PP").$new(out,width),$send(q,"guard_inspect_key",[],(function(){return q.$pp(obj)}),0),q.$flush(),out["$<<"]("\n")}),-2),$defs($$("PP"),"$singleline_pp",(function(obj,out){var q=nil;return null==$gvars.stdout&&($gvars.stdout=nil),null==out&&(out=$gvars.stdout),q=$$("SingleLine").$new(out),$send(q,"guard_inspect_key",[],(function(){return q.$pp(obj)}),0),q.$flush(),out}),-2),$defs($$("PP"),"$mcall",(function $$mcall(obj,mod,meth,$a){var args,block=$$mcall.$$p||nil;return delete $$mcall.$$p,args=Opal.slice.call(arguments,3),$send(mod.$instance_method(meth),"bind_call",[obj].concat($to_a(args)),block.$to_proc())}),-4),self.sharing_detection=!1,function(self,$parent_nesting){self.$attr_accessor("sharing_detection")}(Opal.get_singleton_class(self)),function($base,$parent_nesting){var self=$module($base,"PPMethods"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$guard_inspect_key",(function $$guard_inspect_key(){var save,$yield=$$guard_inspect_key.$$p||nil,$writer=nil;return delete $$guard_inspect_key.$$p,$eqeq($$("Thread").$current()["$[]"]("__recursive_key__"),nil)&&($writer=["__recursive_key__",$hash2([],{}).$compare_by_identity()],$send($$("Thread").$current(),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),$eqeq($$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),nil)&&($writer=["inspect",$hash2([],{}).$compare_by_identity()],$send($$("Thread").$current()["$[]"]("__recursive_key__"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]),save=$$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),function(){try{return $writer=["inspect",$hash2([],{}).$compare_by_identity()],$send($$("Thread").$current()["$[]"]("__recursive_key__"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)],Opal.yieldX($yield,[])}finally{$writer=["inspect",save],$send($$("Thread").$current()["$[]"]("__recursive_key__"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}}()}),0),$def(self,"$check_inspect_key",(function(id){var $ret_or_1,$ret_or_2;return $truthy($ret_or_1=$truthy($ret_or_2=$$("Thread").$current()["$[]"]("__recursive_key__"))?$$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"):$ret_or_2)?$$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect")["$include?"](id):$ret_or_1}),1),$def(self,"$push_inspect_key",(function(id){var $writer;return $writer=[id,!0],$send($$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$pop_inspect_key",(function(id){return $$("Thread").$current()["$[]"]("__recursive_key__")["$[]"]("inspect").$delete(id)}),1),$def(self,"$pp",(function(obj){try{var self=this;return null===obj?(self.$text("null"),Opal.ret(nil)):void 0===obj?(self.$text("undefined"),Opal.ret(nil)):void 0===obj.$$class&&(self.$text(Object.prototype.toString.apply(obj)),Opal.ret(nil)),$truthy($$$("::","Delegator","skip_raise")?"constant":nil)&&$truthy(obj["$is_a?"]($$$("Delegator")))&&(obj=obj.$__getobj__()),$truthy(self.$check_inspect_key(obj))?($send(self,"group",[],(function $$3(){var self=null==$$3.$$s?this:$$3.$$s;return obj.$pretty_print_cycle(self)}),{$$arity:0,$$s:self}),nil):function(){try{return self.$push_inspect_key(obj),$send(self,"group",[],(function $$4(){var self=null==$$4.$$s?this:$$4.$$s;return obj.$pretty_print(self)}),{$$arity:0,$$s:self})}finally{$truthy($$("PP").$sharing_detection())||self.$pop_inspect_key(obj)}}()}catch($returner){if($returner===Opal.returner)return $returner.$v;throw $returner}}),-1),$def(self,"$object_group",(function $$object_group(obj){var block=$$object_group.$$p||nil;return delete $$object_group.$$p,$send(this,"group",[1,$rb_plus("#<",obj.$class().$name()),">"],block.$to_proc())}),1),$def(self,"$object_address_group",(function $$object_address_group(obj){var block=$$object_address_group.$$p||nil,str=nil;return delete $$object_address_group.$$p,str=(str=$$("Kernel").$instance_method("to_s").$bind_call(obj)).$chomp(">"),$send(this,"group",[1,str,">"],block.$to_proc())}),1),$def(self,"$comma_breakable",(function(){return this.$text(","),this.$breakable()}),0),$def(self,"$seplist",(function $$seplist(list,sep,iter_method){var $ret_or_1,$yield=$$seplist.$$p||nil,first=nil;return delete $$seplist.$$p,null==sep&&(sep=nil),null==iter_method&&(iter_method="each"),sep=$truthy($ret_or_1=sep)?$ret_or_1:$send(this,"lambda",[],(function $$5(){return(null==$$5.$$s?this:$$5.$$s).$comma_breakable()}),{$$arity:0,$$s:this}),first=!0,$send(list,"__send__",[iter_method],(function($a){var v;return v=Opal.slice.call(arguments),$truthy(first)?first=!1:sep.$call(),Opal.yieldX($yield,$to_a(v))}),-1)}),-2),$def(self,"$pp_object",(function(obj){return $send(this,"object_address_group",[obj],(function $$7(){var self=null==$$7.$$s?this:$$7.$$s;return $send(self,"seplist",[obj.$pretty_print_instance_variables(),$send(self,"lambda",[],(function $$8(){return(null==$$8.$$s?this:$$8.$$s).$text(",")}),{$$arity:0,$$s:self})],(function $$9(v){var self=null==$$9.$$s?this:$$9.$$s;return null==v&&(v=nil),self.$breakable(),$eqeqeq($$("Symbol"),v)&&(v=v.$to_s()),self.$text(v),self.$text("="),$send(self,"group",[1],(function $$10(){var self=null==$$10.$$s?this:$$10.$$s;return self.$breakable(""),self.$pp(obj.$instance_eval(v))}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:self})}),{$$arity:0,$$s:this})}),1),$def(self,"$pp_hash",(function(obj){return $send(this,"group",[1,"{","}"],(function $$11(){var self=null==$$11.$$s?this:$$11.$$s;return $send(self,"seplist",[obj,nil,"each_pair"],(function $$12(k,v){var self=null==$$12.$$s?this:$$12.$$s;return null==k&&(k=nil),null==v&&(v=nil),$send(self,"group",[],(function $$13(){var self=null==$$13.$$s?this:$$13.$$s;return self.$pp(k),self.$text("=>"),$send(self,"group",[1],(function $$14(){var self=null==$$14.$$s?this:$$14.$$s;return self.$breakable(""),self.$pp(v)}),{$$arity:0,$$s:self})}),{$$arity:0,$$s:self})}),{$$arity:2,$$s:self})}),{$$arity:0,$$s:this})}),1)}($nesting[0],$nesting),self.$include($$("PPMethods")),function($base,$super,$parent_nesting){var self=$klass($base,$super,"SingleLine"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$("PPMethods"))}($nesting[0],$$$($$("PrettyPrint"),"SingleLine"),$nesting),function($base,$parent_nesting){var self=$module($base,"ObjectMixin"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$pretty_print",(function(q){var umethod_method=nil,inspect_method=nil;umethod_method=$$("Object").$instance_method("method");try{inspect_method=umethod_method.$bind_call(this,"inspect")}catch($err){if(!Opal.rescue($err,[$$("NameError")]))throw $err;Opal.pop_exception()}return $truthy(inspect_method)&&$neqeq(inspect_method.$owner(),$$("Kernel"))||$not(inspect_method)&&$truthy(this["$respond_to?"]("inspect"))?q.$text(this.$inspect()):q.$pp_object(this)}),1),$def(self,"$pretty_print_cycle",(function(q){return $send(q,"object_address_group",[this],(function(){return q.$breakable(),q.$text("...")}),0)}),1),$def(self,"$pretty_print_instance_variables",(function(){return this.$instance_variables().$sort()}),0),$def(self,"$pretty_print_inspect",(function(){return $eqeq($$("Object").$instance_method("method").$bind_call(this,"pretty_print").$owner(),$$$($$("PP"),"ObjectMixin"))&&this.$raise("pretty_print is not overridden for "+this.$class()),$$("PP").$singleline_pp(this,"".$dup())}),0)}($nesting[0],$nesting)}($nesting[0],$$("PrettyPrint"),$nesting),function($base,$super){var self=$klass($base,null,"Array");$def(self,"$pretty_print",(function(q){return $send(q,"group",[1,"[","]"],(function $$16(){return $send(q,"seplist",[null==$$16.$$s?this:$$16.$$s],(function(v){return null==v&&(v=nil),q.$pp(v)}),1)}),{$$arity:0,$$s:this})}),1),$def(self,"$pretty_print_cycle",(function(q){return q.$text($truthy(this["$empty?"]())?"[]":"[...]")}),1)}($nesting[0]),function($base,$super){var self=$klass($base,null,"Hash");$def(self,"$pretty_print",(function(q){return q.$pp_hash(this)}),1),$def(self,"$pretty_print_cycle",(function(q){return q.$text($truthy(this["$empty?"]())?"{}":"{...}")}),1)}($nesting[0]),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$pretty_print",(function(q){var h;return h=$hash2([],{}),$send($$("ENV").$keys().$sort(),"each",[],(function(k){var $writer;return null==k&&(k=nil),$writer=[k,$$("ENV")["$[]"](k)],$send(h,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),q.$pp_hash(h)}),1)}(Opal.get_singleton_class($$("ENV")),$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Struct"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$pretty_print",(function(q){return $send(q,"group",[1,this.$sprintf("#"],(function $$19(){var self=null==$$19.$$s?this:$$19.$$s;return $send(q,"seplist",[$$("PP").$mcall(self,$$("Struct"),"members"),$send(self,"lambda",[],(function(){return q.$text(",")}),0)],(function $$21(member){var self=null==$$21.$$s?this:$$21.$$s;return null==member&&(member=nil),q.$breakable(),q.$text(member.$to_s()),q.$text("="),$send(q,"group",[1],(function $$22(){var self=null==$$22.$$s?this:$$22.$$s;return q.$breakable(""),q.$pp(self["$[]"](member))}),{$$arity:0,$$s:self})}),{$$arity:1,$$s:self})}),{$$arity:0,$$s:this})}),1),$def(self,"$pretty_print_cycle",(function(q){return q.$text(this.$sprintf("#",$$("PP").$mcall(this,$$("Kernel"),"class").$name()))}),1)}($nesting[0],0,$nesting),function($base,$super){var self=$klass($base,null,"Range");$def(self,"$pretty_print",(function(q){return q.$pp(this.$begin()),q.$breakable(""),q.$text($truthy(this["$exclude_end?"]())?"...":".."),q.$breakable(""),$truthy(this.$end())?q.$pp(this.$end()):nil}),1)}($nesting[0]),function($base,$super){var self=$klass($base,null,"String");$def(self,"$pretty_print",(function(q){var lines=nil;return lines=this.$lines(),$truthy($rb_gt(lines.$size(),1))?$send(q,"group",[0,"",""],(function $$23(){return $send(q,"seplist",[lines,$send(null==$$23.$$s?this:$$23.$$s,"lambda",[],(function(){return q.$text(" +"),q.$breakable()}),0)],(function(v){return null==v&&(v=nil),q.$pp(v)}),1)}),{$$arity:0,$$s:this}):q.$text(this.$inspect())}),1)}($nesting[0]),function($base,$super){var self=$klass($base,null,"MatchData");$def(self,"$pretty_print",(function(q){var nc=nil;return nc=[],$send(this.$regexp().$named_captures(),"each",[],(function(name,indexes){return null==name&&(name=nil),null==indexes&&(indexes=nil),$send(indexes,"each",[],(function(i){var $writer;return null==i&&(i=nil),$send(nc,"[]=",$to_a($writer=[i,name])),$writer[$rb_minus($writer.length,1)]}),1)}),2),$send(q,"object_group",[this],(function $$28(){var self=null==$$28.$$s?this:$$28.$$s;return q.$breakable(),$send(q,"seplist",[Opal.Range.$new(0,self.$size(),!0),$send(self,"lambda",[],(function(){return q.$breakable()}),0)],(function $$30(i){var self=null==$$30.$$s?this:$$30.$$s;return null==i&&(i=nil),$eqeq(i,0)||($truthy(nc["$[]"](i))?q.$text(nc["$[]"](i)):q.$pp(i),q.$text(":")),q.$pp(self["$[]"](i))}),{$$arity:1,$$s:self})}),{$$arity:0,$$s:this})}),1)}($nesting[0]),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Object"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$include($$$($$("PP"),"ObjectMixin"))}($nesting[0],$$("BasicObject"),$nesting),$send([$$("Numeric"),$$("Symbol"),$$("FalseClass"),$$("TrueClass"),$$("NilClass"),$$("Module")],"each",[],(function $$31(c){return null==c&&(c=nil),$send(c,"class_eval",[],(function $$32(){return $def(null==$$32.$$s?this:$$32.$$s,"$pretty_print_cycle",(function(q){return q.$text(this.$inspect())}),1)}),{$$arity:0,$$s:null==$$31.$$s?this:$$31.$$s})}),{$$arity:1,$$s:self}),$send([$$("Numeric"),$$("FalseClass"),$$("TrueClass"),$$("Module")],"each",[],(function $$33(c){return null==c&&(c=nil),$send(c,"class_eval",[],(function $$34(){return $def(null==$$34.$$s?this:$$34.$$s,"$pretty_print",(function(q){return q.$text(this.$inspect())}),1)}),{$$arity:0,$$s:null==$$33.$$s?this:$$33.$$s})}),{$$arity:1,$$s:self}),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$pretty_inspect",(function(){return $$("PP").$pp(this,$$("StringIO").$new()).$string()}),0),$def(self,"$pp",(function($a){var $post_args,objs;return $post_args=Opal.slice.call(arguments),$send(objs=$post_args,"each",[],(function(obj){return null==obj&&(obj=nil),$$("PP").$pp(obj)}),1),$truthy($rb_le(objs.$size(),1))?objs.$first():objs}),-1),self.$module_function("pp")}($nesting[0],$nesting)}; diff --git a/opal/master/pp.min.js.gz b/opal/master/pp.min.js.gz index 60031cc5..80846829 100644 Binary files a/opal/master/pp.min.js.gz and b/opal/master/pp.min.js.gz differ diff --git a/opal/master/prettyprint.js b/opal/master/prettyprint.js index 0e87d64b..02afca35 100644 --- a/opal/master/prettyprint.js +++ b/opal/master/prettyprint.js @@ -1,128 +1,82 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["prettyprint"] = function(Opal) { - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - - Opal.add_stubs(['$dup', '$lambda', '$*', '$new', '$to_proc', '$flush', '$attr_reader', '$last', '$<', '$+', '$deq', '$empty?', '$breakables', '$shift', '$output', '$-', '$width', '$!', '$===', '$first', '$length', '$<<', '$add', '$break_outmost_groups', '$group', '$breakable', '$break?', '$call', '$text', '$group_sub', '$nest', '$depth', '$push', '$enq', '$pop', '$delete', '$each', '$clear', '$indent', '$current_group', '$newline', '$genspace', '$group_queue', '$[]', '$downto', '$slice!', '$break', '$[]=']); +Opal.modules["prettyprint"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $klass = Opal.klass, $send = Opal.send, $rb_times = Opal.rb_times, $defs = Opal.defs, $truthy = Opal.truthy, $def = Opal.def, $rb_lt = Opal.rb_lt, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $eqeqeq = Opal.eqeqeq, $to_a = Opal.to_a; + + Opal.add_stubs('dup,lambda,*,new,to_proc,flush,attr_reader,last,<,+,deq,empty?,breakables,shift,output,-,width,!,===,first,length,<<,add,break_outmost_groups,group,breakable,break?,call,text,group_sub,nest,depth,push,enq,pop,delete,each,clear,indent,current_group,newline,genspace,group_queue,[],downto,slice!,break,[]='); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'PrettyPrint'); - var $nesting = [self].concat($parent_nesting), $PrettyPrint_format$1, $PrettyPrint_singleline_format$3, $PrettyPrint_initialize$4, $PrettyPrint_current_group$6, $PrettyPrint_break_outmost_groups$7, $PrettyPrint_text$8, $PrettyPrint_fill_breakable$9, $PrettyPrint_breakable$11, $PrettyPrint_group$12, $PrettyPrint_group_sub$15, $PrettyPrint_nest$16, $PrettyPrint_flush$17; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.group_stack = self.$$prototype.maxwidth = self.$$prototype.output_width = self.$$prototype.buffer_width = self.$$prototype.group_queue = self.$$prototype.buffer = self.$$prototype.output = self.$$prototype.newline = self.$$prototype.genspace = self.$$prototype.indent = nil; + $proto.group_stack = $proto.maxwidth = $proto.output_width = $proto.buffer_width = $proto.group_queue = $proto.buffer = $proto.output = $proto.newline = $proto.genspace = $proto.indent = nil; - Opal.defs($$($nesting, 'PrettyPrint'), '$format', $PrettyPrint_format$1 = function $$format(output, maxwidth, newline, genspace) { - var $$2, $iter = $PrettyPrint_format$1.$$p, $yield = $iter || nil, self = this, q = nil; + $defs($$('PrettyPrint'), '$format', function $$format(output, maxwidth, newline, genspace) { + var $yield = $$format.$$p || nil, self = this, q = nil; - if ($iter) $PrettyPrint_format$1.$$p = null; + delete $$format.$$p; - if (output == null) { - output = "".$dup(); - }; + if (output == null) output = "".$dup();; - if (maxwidth == null) { - maxwidth = 79; - }; + if (maxwidth == null) maxwidth = 79;; - if (newline == null) { - newline = "\n"; - }; + if (newline == null) newline = "\n";; - if (genspace == null) { - genspace = $send(self, 'lambda', [], ($$2 = function(n){var self = $$2.$$s == null ? this : $$2.$$s; - + if (genspace == null) genspace = $send(self, 'lambda', [], function $$1(n){ - if (n == null) { - n = nil; - }; - return $rb_times(" ", n);}, $$2.$$s = self, $$2.$$arity = 1, $$2)); - }; - q = $send($$($nesting, 'PrettyPrint'), 'new', [output, maxwidth, newline], genspace.$to_proc()); + if (n == null) n = nil;; + return $rb_times(" ", n);}, 1);; + q = $send($$('PrettyPrint'), 'new', [output, maxwidth, newline], genspace.$to_proc()); Opal.yield1($yield, q); q.$flush(); return output; - }, $PrettyPrint_format$1.$$arity = -1); - Opal.defs($$($nesting, 'PrettyPrint'), '$singleline_format', $PrettyPrint_singleline_format$3 = function $$singleline_format(output, maxwidth, newline, genspace) { - var $iter = $PrettyPrint_singleline_format$3.$$p, $yield = $iter || nil, self = this, q = nil; + }, -1); + $defs($$('PrettyPrint'), '$singleline_format', function $$singleline_format(output, maxwidth, newline, genspace) { + var $yield = $$singleline_format.$$p || nil, q = nil; - if ($iter) $PrettyPrint_singleline_format$3.$$p = null; + delete $$singleline_format.$$p; - if (output == null) { - output = "".$dup(); - }; + if (output == null) output = "".$dup();; - if (maxwidth == null) { - maxwidth = nil; - }; + if (maxwidth == null) maxwidth = nil;; - if (newline == null) { - newline = nil; - }; + if (newline == null) newline = nil;; - if (genspace == null) { - genspace = nil; - }; - q = $$($nesting, 'SingleLine').$new(output); + if (genspace == null) genspace = nil;; + q = $$('SingleLine').$new(output); Opal.yield1($yield, q); return output; - }, $PrettyPrint_singleline_format$3.$$arity = -1); + }, -1); - Opal.def(self, '$initialize', $PrettyPrint_initialize$4 = function $$initialize(output, maxwidth, newline) { - var $iter = $PrettyPrint_initialize$4.$$p, genspace = $iter || nil, $$5, self = this, $ret_or_1 = nil, root_group = nil; + $def(self, '$initialize', function $$initialize(output, maxwidth, newline) { + var genspace = $$initialize.$$p || nil, self = this, $ret_or_1 = nil, root_group = nil; - if ($iter) $PrettyPrint_initialize$4.$$p = null; - + delete $$initialize.$$p; - if ($iter) $PrettyPrint_initialize$4.$$p = null;; + ; - if (output == null) { - output = "".$dup(); - }; + if (output == null) output = "".$dup();; - if (maxwidth == null) { - maxwidth = 79; - }; + if (maxwidth == null) maxwidth = 79;; - if (newline == null) { - newline = "\n"; - }; + if (newline == null) newline = "\n";; self.output = output; self.maxwidth = maxwidth; self.newline = newline; - self.genspace = (function() {if ($truthy(($ret_or_1 = genspace))) { - return $ret_or_1 - } else { - return $send(self, 'lambda', [], ($$5 = function(n){var self = $$5.$$s == null ? this : $$5.$$s; - - - - if (n == null) { - n = nil; - }; - return $rb_times(" ", n);}, $$5.$$s = self, $$5.$$arity = 1, $$5)) - }; return nil; })(); + self.genspace = ($truthy(($ret_or_1 = genspace)) ? ($ret_or_1) : ($send(self, 'lambda', [], function $$2(n){ + + + if (n == null) n = nil;; + return $rb_times(" ", n);}, 1))); self.output_width = 0; self.buffer_width = 0; self.buffer = []; - root_group = $$($nesting, 'Group').$new(0); + root_group = $$('Group').$new(0); self.group_stack = [root_group]; - self.group_queue = $$($nesting, 'GroupQueue').$new(root_group); + self.group_queue = $$('GroupQueue').$new(root_group); return (self.indent = 0); - }, $PrettyPrint_initialize$4.$$arity = -1); + }, -1); self.$attr_reader("output"); self.$attr_reader("maxwidth"); self.$attr_reader("newline"); @@ -130,19 +84,18 @@ Opal.modules["prettyprint"] = function(Opal) { self.$attr_reader("indent"); self.$attr_reader("group_queue"); - Opal.def(self, '$current_group', $PrettyPrint_current_group$6 = function $$current_group() { + $def(self, '$current_group', function $$current_group() { var self = this; return self.group_stack.$last() - }, $PrettyPrint_current_group$6.$$arity = 0); + }, 0); - Opal.def(self, '$break_outmost_groups', $PrettyPrint_break_outmost_groups$7 = function $$break_outmost_groups() { - var $a, $b, self = this, group = nil, data = nil, $ret_or_2 = nil, text = nil; + $def(self, '$break_outmost_groups', function $$break_outmost_groups() { + var $a, $b, self = this, group = nil, data = nil, $ret_or_1 = nil, text = nil; while ($truthy($rb_lt(self.maxwidth, $rb_plus(self.output_width, self.buffer_width)))) { - if ($truthy((group = self.group_queue.$deq()))) { - } else { + if (!$truthy((group = self.group_queue.$deq()))) { return nil }; while (!($truthy(group.$breakables()['$empty?']()))) { @@ -151,27 +104,21 @@ Opal.modules["prettyprint"] = function(Opal) { self.output_width = data.$output(self.output, self.output_width); self.buffer_width = $rb_minus(self.buffer_width, data.$width()); }; - while ($truthy((function() {if ($truthy(($ret_or_2 = self.buffer['$empty?']()['$!']()))) { - return $$($nesting, 'Text')['$==='](self.buffer.$first()) - } else { - return $ret_or_2 - }; return nil; })())) { + while ($truthy(($truthy(($ret_or_1 = self.buffer['$empty?']()['$!']())) ? ($$('Text')['$==='](self.buffer.$first())) : ($ret_or_1)))) { text = self.buffer.$shift(); self.output_width = text.$output(self.output, self.output_width); self.buffer_width = $rb_minus(self.buffer_width, text.$width()); }; } - }, $PrettyPrint_break_outmost_groups$7.$$arity = 0); + }, 0); - Opal.def(self, '$text', $PrettyPrint_text$8 = function $$text(obj, width) { + $def(self, '$text', function $$text(obj, width) { var self = this, text = nil; - if (width == null) { - width = obj.$length(); - }; + if (width == null) width = obj.$length();; if ($truthy(self.buffer['$empty?']())) { self.output['$<<'](obj); @@ -179,47 +126,38 @@ Opal.modules["prettyprint"] = function(Opal) { } else { text = self.buffer.$last(); - if ($truthy($$($nesting, 'Text')['$==='](text))) { - } else { + if (!$eqeqeq($$('Text'), text)) { - text = $$($nesting, 'Text').$new(); + text = $$('Text').$new(); self.buffer['$<<'](text); }; text.$add(obj, width); self.buffer_width = $rb_plus(self.buffer_width, width); return self.$break_outmost_groups(); }; - }, $PrettyPrint_text$8.$$arity = -2); + }, -2); - Opal.def(self, '$fill_breakable', $PrettyPrint_fill_breakable$9 = function $$fill_breakable(sep, width) { - var $$10, self = this; + $def(self, '$fill_breakable', function $$fill_breakable(sep, width) { + var self = this; - if (sep == null) { - sep = " "; - }; + if (sep == null) sep = " ";; - if (width == null) { - width = sep.$length(); - }; - return $send(self, 'group', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + if (width == null) width = sep.$length();; + return $send(self, 'group', [], function $$3(){var self = $$3.$$s == null ? this : $$3.$$s; - return self.$breakable(sep, width)}, $$10.$$s = self, $$10.$$arity = 0, $$10)); - }, $PrettyPrint_fill_breakable$9.$$arity = -1); + return self.$breakable(sep, width)}, {$$arity: 0, $$s: self}); + }, -1); - Opal.def(self, '$breakable', $PrettyPrint_breakable$11 = function $$breakable(sep, width) { + $def(self, '$breakable', function $$breakable(sep, width) { var self = this, group = nil; - if (sep == null) { - sep = " "; - }; + if (sep == null) sep = " ";; - if (width == null) { - width = sep.$length(); - }; + if (width == null) width = sep.$length();; group = self.group_stack.$last(); if ($truthy(group['$break?']())) { @@ -230,70 +168,55 @@ Opal.modules["prettyprint"] = function(Opal) { return (self.buffer_width = 0); } else { - self.buffer['$<<']($$($nesting, 'Breakable').$new(sep, width, self)); + self.buffer['$<<']($$('Breakable').$new(sep, width, self)); self.buffer_width = $rb_plus(self.buffer_width, width); return self.$break_outmost_groups(); }; - }, $PrettyPrint_breakable$11.$$arity = -1); + }, -1); - Opal.def(self, '$group', $PrettyPrint_group$12 = function $$group(indent, open_obj, close_obj, open_width, close_width) { - var $$13, $iter = $PrettyPrint_group$12.$$p, $yield = $iter || nil, self = this; + $def(self, '$group', function $$group(indent, open_obj, close_obj, open_width, close_width) { + var $yield = $$group.$$p || nil, self = this; - if ($iter) $PrettyPrint_group$12.$$p = null; + delete $$group.$$p; - if (indent == null) { - indent = 0; - }; + if (indent == null) indent = 0;; - if (open_obj == null) { - open_obj = ""; - }; + if (open_obj == null) open_obj = "";; - if (close_obj == null) { - close_obj = ""; - }; + if (close_obj == null) close_obj = "";; - if (open_width == null) { - open_width = open_obj.$length(); - }; + if (open_width == null) open_width = open_obj.$length();; - if (close_width == null) { - close_width = close_obj.$length(); - }; + if (close_width == null) close_width = close_obj.$length();; self.$text(open_obj, open_width); - $send(self, 'group_sub', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s, $$14; + $send(self, 'group_sub', [], function $$4(){var self = $$4.$$s == null ? this : $$4.$$s; - return $send(self, 'nest', [indent], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s; - - return Opal.yieldX($yield, []);}, $$14.$$s = self, $$14.$$arity = 0, $$14))}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return $send(self, 'nest', [indent], function $$5(){ + return Opal.yieldX($yield, []);}, 0)}, {$$arity: 0, $$s: self}); return self.$text(close_obj, close_width); - }, $PrettyPrint_group$12.$$arity = -1); + }, -1); - Opal.def(self, '$group_sub', $PrettyPrint_group_sub$15 = function $$group_sub() { - var $iter = $PrettyPrint_group_sub$15.$$p, $yield = $iter || nil, self = this, group = nil; + $def(self, '$group_sub', function $$group_sub() { + var $yield = $$group_sub.$$p || nil, self = this, group = nil; - if ($iter) $PrettyPrint_group_sub$15.$$p = null; + delete $$group_sub.$$p; - group = $$($nesting, 'Group').$new($rb_plus(self.group_stack.$last().$depth(), 1)); + group = $$('Group').$new($rb_plus(self.group_stack.$last().$depth(), 1)); self.group_stack.$push(group); self.group_queue.$enq(group); return (function() { try { return Opal.yieldX($yield, []); } finally { - (self.group_stack.$pop(), (function() {if ($truthy(group.$breakables()['$empty?']())) { - return self.group_queue.$delete(group) - } else { - return nil - }; return nil; })()) + (self.group_stack.$pop(), ($truthy(group.$breakables()['$empty?']()) ? (self.group_queue.$delete(group)) : nil)) }; })();; - }, $PrettyPrint_group_sub$15.$$arity = 0); + }, 0); - Opal.def(self, '$nest', $PrettyPrint_nest$16 = function $$nest(indent) { - var $iter = $PrettyPrint_nest$16.$$p, $yield = $iter || nil, self = this; + $def(self, '$nest', function $$nest(indent) { + var $yield = $$nest.$$p || nil, self = this; - if ($iter) $PrettyPrint_nest$16.$$p = null; + delete $$nest.$$p; self.indent = $rb_plus(self.indent, indent); @@ -302,73 +225,68 @@ Opal.modules["prettyprint"] = function(Opal) { } finally { (self.indent = $rb_minus(self.indent, indent)) }; })();; - }, $PrettyPrint_nest$16.$$arity = 1); + }, 1); - Opal.def(self, '$flush', $PrettyPrint_flush$17 = function $$flush() { - var $$18, self = this; + $def(self, '$flush', function $$flush() { + var self = this; - $send(self.buffer, 'each', [], ($$18 = function(data){var self = $$18.$$s == null ? this : $$18.$$s; + $send(self.buffer, 'each', [], function $$6(data){var self = $$6.$$s == null ? this : $$6.$$s; if (self.output == null) self.output = nil; if (self.output_width == null) self.output_width = nil; - if (data == null) { - data = nil; - }; - return (self.output_width = data.$output(self.output, self.output_width));}, $$18.$$s = self, $$18.$$arity = 1, $$18)); + if (data == null) data = nil;; + return (self.output_width = data.$output(self.output, self.output_width));}, {$$arity: 1, $$s: self}); self.buffer.$clear(); return (self.buffer_width = 0); - }, $PrettyPrint_flush$17.$$arity = 0); - (function($base, $super, $parent_nesting) { + }, 0); + (function($base, $super) { var self = $klass($base, $super, 'Text'); - var $nesting = [self].concat($parent_nesting), $Text_initialize$19, $Text_output$20, $Text_add$22; + var $proto = self.$$prototype; - self.$$prototype.objs = self.$$prototype.width = nil; + $proto.objs = $proto.width = nil; - Opal.def(self, '$initialize', $Text_initialize$19 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; self.objs = []; return (self.width = 0); - }, $Text_initialize$19.$$arity = 0); + }, 0); self.$attr_reader("width"); - Opal.def(self, '$output', $Text_output$20 = function $$output(out, output_width) { - var $$21, self = this; + $def(self, '$output', function $$output(out, output_width) { + var self = this; - $send(self.objs, 'each', [], ($$21 = function(obj){var self = $$21.$$s == null ? this : $$21.$$s; - + $send(self.objs, 'each', [], function $$7(obj){ - if (obj == null) { - obj = nil; - }; - return out['$<<'](obj);}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + if (obj == null) obj = nil;; + return out['$<<'](obj);}, 1); return $rb_plus(output_width, self.width); - }, $Text_output$20.$$arity = 2); - return (Opal.def(self, '$add', $Text_add$22 = function $$add(obj, width) { + }, 2); + return $def(self, '$add', function $$add(obj, width) { var self = this; self.objs['$<<'](obj); return (self.width = $rb_plus(self.width, width)); - }, $Text_add$22.$$arity = 2), nil) && 'add'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 2); + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Breakable'); - var $nesting = [self].concat($parent_nesting), $Breakable_initialize$23, $Breakable_output$24; + var $proto = self.$$prototype; - self.$$prototype.group = self.$$prototype.pp = self.$$prototype.indent = self.$$prototype.obj = self.$$prototype.width = nil; + $proto.group = $proto.pp = $proto.indent = $proto.obj = $proto.width = nil; - Opal.def(self, '$initialize', $Breakable_initialize$23 = function $$initialize(sep, width, q) { + $def(self, '$initialize', function $$initialize(sep, width, q) { var self = this; @@ -378,11 +296,11 @@ Opal.modules["prettyprint"] = function(Opal) { self.indent = q.$indent(); self.group = q.$current_group(); return self.group.$breakables().$push(self); - }, $Breakable_initialize$23.$$arity = 3); + }, 3); self.$attr_reader("obj"); self.$attr_reader("width"); self.$attr_reader("indent"); - return (Opal.def(self, '$output', $Breakable_output$24 = function $$output(out, output_width) { + return $def(self, '$output', function $$output(out, output_width) { var self = this; @@ -395,43 +313,44 @@ Opal.modules["prettyprint"] = function(Opal) { } else { if ($truthy(self.group.$breakables()['$empty?']())) { - self.pp.$group_queue().$delete(self.group)}; + self.pp.$group_queue().$delete(self.group) + }; out['$<<'](self.obj); return $rb_plus(output_width, self.width); }; - }, $Breakable_output$24.$$arity = 2), nil) && 'output'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 2); + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'Group'); - var $nesting = [self].concat($parent_nesting), $Group_initialize$25, $Group_break$26, $Group_break$ques$27, $Group_first$ques$28; + var $proto = self.$$prototype; - self.$$prototype["break"] = nil; + $proto["break"] = nil; - Opal.def(self, '$initialize', $Group_initialize$25 = function $$initialize(depth) { + $def(self, '$initialize', function $$initialize(depth) { var self = this; self.depth = depth; self.breakables = []; return (self["break"] = false); - }, $Group_initialize$25.$$arity = 1); + }, 1); self.$attr_reader("depth"); self.$attr_reader("breakables"); - Opal.def(self, '$break', $Group_break$26 = function() { + $def(self, '$break', function $Group_break$8() { var self = this; return (self["break"] = true) - }, $Group_break$26.$$arity = 0); + }, 0); - Opal.def(self, '$break?', $Group_break$ques$27 = function() { + $def(self, '$break?', function $Group_break$ques$9() { var self = this; return self["break"] - }, $Group_break$ques$27.$$arity = 0); - return (Opal.def(self, '$first?', $Group_first$ques$28 = function() { + }, 0); + return $def(self, '$first?', function $Group_first$ques$10() { var $a, self = this; if ($truthy((($a = self['first'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { @@ -441,36 +360,34 @@ Opal.modules["prettyprint"] = function(Opal) { self.first = false; return true; } - }, $Group_first$ques$28.$$arity = 0), nil) && 'first?'; - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { + }, 0); + })($nesting[0], null); + (function($base, $super) { var self = $klass($base, $super, 'GroupQueue'); - var $nesting = [self].concat($parent_nesting), $GroupQueue_initialize$29, $GroupQueue_enq$31, $GroupQueue_deq$32, $GroupQueue_delete$36; + var $proto = self.$$prototype; - self.$$prototype.queue = nil; + $proto.queue = nil; - Opal.def(self, '$initialize', $GroupQueue_initialize$29 = function $$initialize($a) { - var $post_args, groups, $$30, self = this; + $def(self, '$initialize', function $$initialize($a) { + var $post_args, groups, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); groups = $post_args;; self.queue = []; - return $send(groups, 'each', [], ($$30 = function(g){var self = $$30.$$s == null ? this : $$30.$$s; + return $send(groups, 'each', [], function $$11(g){var self = $$11.$$s == null ? this : $$11.$$s; - if (g == null) { - g = nil; - }; - return self.$enq(g);}, $$30.$$s = self, $$30.$$arity = 1, $$30)); - }, $GroupQueue_initialize$29.$$arity = -1); + if (g == null) g = nil;; + return self.$enq(g);}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$enq', $GroupQueue_enq$31 = function $$enq(group) { + $def(self, '$enq', function $$enq(group) { var $a, self = this, depth = nil; @@ -479,27 +396,22 @@ Opal.modules["prettyprint"] = function(Opal) { self.queue['$<<']([]) }; return self.queue['$[]'](depth)['$<<'](group); - }, $GroupQueue_enq$31.$$arity = 1); + }, 1); - Opal.def(self, '$deq', $GroupQueue_deq$32 = function $$deq() {try { + $def(self, '$deq', function $$deq() {try { - var $$33, self = this; + var self = this; - $send(self.queue, 'each', [], ($$33 = function(gs){var self = $$33.$$s == null ? this : $$33.$$s, $$34, $$35; - + $send(self.queue, 'each', [], function $$12(gs){ - if (gs == null) { - gs = nil; - }; - $send($rb_minus(gs.$length(), 1), 'downto', [0], ($$34 = function(i){var self = $$34.$$s == null ? this : $$34.$$s, group = nil; + if (gs == null) gs = nil;; + $send($rb_minus(gs.$length(), 1), 'downto', [0], function $$13(i){var group = nil; - if (i == null) { - i = nil; - }; + if (i == null) i = nil;; if ($truthy(gs['$[]'](i).$breakables()['$empty?']())) { return nil } else { @@ -507,130 +419,106 @@ Opal.modules["prettyprint"] = function(Opal) { group = gs['$slice!'](i, 1).$first(); group.$break(); Opal.ret(group); - };}, $$34.$$s = self, $$34.$$arity = 1, $$34)); - $send(gs, 'each', [], ($$35 = function(group){var self = $$35.$$s == null ? this : $$35.$$s; - + };}, 1); + $send(gs, 'each', [], function $$14(group){ - if (group == null) { - group = nil; - }; - return group.$break();}, $$35.$$s = self, $$35.$$arity = 1, $$35)); - return gs.$clear();}, $$33.$$s = self, $$33.$$arity = 1, $$33)); + if (group == null) group = nil;; + return group.$break();}, 1); + return gs.$clear();}, 1); return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, $GroupQueue_deq$32.$$arity = 0); - return (Opal.def(self, '$delete', $GroupQueue_delete$36 = function(group) { + }, 0); + return $def(self, '$delete', function $GroupQueue_delete$15(group) { var self = this; return self.queue['$[]'](group.$depth()).$delete(group) - }, $GroupQueue_delete$36.$$arity = 1), nil) && 'delete'; - })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { + }, 1); + })($nesting[0], null); + return (function($base, $super) { var self = $klass($base, $super, 'SingleLine'); - var $nesting = [self].concat($parent_nesting), $SingleLine_initialize$37, $SingleLine_text$38, $SingleLine_breakable$39, $SingleLine_nest$40, $SingleLine_group$41, $SingleLine_flush$42, $SingleLine_first$ques$43; + var $proto = self.$$prototype; - self.$$prototype.output = self.$$prototype.first = nil; + $proto.output = $proto.first = nil; - Opal.def(self, '$initialize', $SingleLine_initialize$37 = function $$initialize(output, maxwidth, newline) { + $def(self, '$initialize', function $$initialize(output, maxwidth, newline) { var self = this; - if (maxwidth == null) { - maxwidth = nil; - }; + if (maxwidth == null) maxwidth = nil;; - if (newline == null) { - newline = nil; - }; + if (newline == null) newline = nil;; self.output = output; return (self.first = [true]); - }, $SingleLine_initialize$37.$$arity = -2); + }, -2); - Opal.def(self, '$text', $SingleLine_text$38 = function $$text(obj, width) { + $def(self, '$text', function $$text(obj, width) { var self = this; - if (width == null) { - width = nil; - }; + if (width == null) width = nil;; return self.output['$<<'](obj); - }, $SingleLine_text$38.$$arity = -2); + }, -2); - Opal.def(self, '$breakable', $SingleLine_breakable$39 = function $$breakable(sep, width) { + $def(self, '$breakable', function $$breakable(sep, width) { var self = this; - if (sep == null) { - sep = " "; - }; + if (sep == null) sep = " ";; - if (width == null) { - width = nil; - }; + if (width == null) width = nil;; return self.output['$<<'](sep); - }, $SingleLine_breakable$39.$$arity = -1); + }, -1); - Opal.def(self, '$nest', $SingleLine_nest$40 = function $$nest(indent) { - var $iter = $SingleLine_nest$40.$$p, $yield = $iter || nil, self = this; + $def(self, '$nest', function $$nest(indent) { + var $yield = $$nest.$$p || nil; - if ($iter) $SingleLine_nest$40.$$p = null; + delete $$nest.$$p; return Opal.yieldX($yield, []); - }, $SingleLine_nest$40.$$arity = 1); + }, 1); - Opal.def(self, '$group', $SingleLine_group$41 = function $$group(indent, open_obj, close_obj, open_width, close_width) { - var $iter = $SingleLine_group$41.$$p, $yield = $iter || nil, self = this; + $def(self, '$group', function $$group(indent, open_obj, close_obj, open_width, close_width) { + var $yield = $$group.$$p || nil, self = this; - if ($iter) $SingleLine_group$41.$$p = null; + delete $$group.$$p; - if (indent == null) { - indent = nil; - }; + if (indent == null) indent = nil;; - if (open_obj == null) { - open_obj = ""; - }; + if (open_obj == null) open_obj = "";; - if (close_obj == null) { - close_obj = ""; - }; + if (close_obj == null) close_obj = "";; - if (open_width == null) { - open_width = nil; - }; + if (open_width == null) open_width = nil;; - if (close_width == null) { - close_width = nil; - }; + if (close_width == null) close_width = nil;; self.first.$push(true); self.output['$<<'](open_obj); Opal.yieldX($yield, []); self.output['$<<'](close_obj); return self.first.$pop(); - }, $SingleLine_group$41.$$arity = -1); + }, -1); - Opal.def(self, '$flush', $SingleLine_flush$42 = function $$flush() { - var self = this; - + $def(self, '$flush', function $$flush() { + return nil - }, $SingleLine_flush$42.$$arity = 0); - return (Opal.def(self, '$first?', $SingleLine_first$ques$43 = function() { + }, 0); + return $def(self, '$first?', function $SingleLine_first$ques$16() { var self = this, result = nil, $writer = nil; result = self.first['$[]'](-1); $writer = [-1, false]; - $send(self.first, '[]=', Opal.to_a($writer)); + $send(self.first, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return result; - }, $SingleLine_first$ques$43.$$arity = 0), nil) && 'first?'; - })($nesting[0], null, $nesting); + }, 0); + })($nesting[0], null); })($nesting[0], null, $nesting) }; diff --git a/opal/master/prettyprint.min.js b/opal/master/prettyprint.min.js index 669f075e..ae582492 100644 --- a/opal/master/prettyprint.min.js +++ b/opal/master/prettyprint.min.js @@ -1 +1 @@ -Opal.modules.prettyprint=function(Opal){function $rb_times(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs*rhs:lhs["$*"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs>', '$exception?', '$[]', '$resolved?', '$rejected?', '$!', '$error', '$include?', '$action', '$realized?', '$raise', '$^', '$call', '$resolve!', '$exception!', '$any?', '$each', '$reject!', '$there_can_be_only_one!', '$then', '$to_proc', '$fail', '$always', '$trace', '$class', '$object_id', '$+', '$inspect', '$act?', '$nil?', '$prev', '$push', '$concat', '$it', '$proc', '$reverse', '$pop', '$<=', '$length', '$shift', '$-', '$wait', '$map', '$reduce', '$try', '$tap', '$all?', '$find']); - return (function($base, $super, $parent_nesting) { +Opal.modules["promise"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $klass = Opal.klass, $defs = Opal.defs, $hash2 = Opal.hash2, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $not = Opal.not, $send = Opal.send, $to_a = Opal.to_a, $rb_plus = Opal.rb_plus, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super, $rb_le = Opal.rb_le, $rb_minus = Opal.rb_minus, $const_set = Opal.const_set; + + Opal.add_stubs('resolve,new,reject,attr_reader,===,value,key?,keys,!=,==,<<,>>,exception?,[],resolved?,rejected?,!,error,include?,action,realized?,raise,^,call,resolve!,exception!,any?,each,reject!,there_can_be_only_one!,then,to_proc,fail,always,trace,class,object_id,+,inspect,rescue,nil?,prev,act?,push,concat,it,proc,reverse,pop,<=,length,shift,-,wait,map,reduce,try,tap,all?,find'); + + (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Promise'); - var $nesting = [self].concat($parent_nesting), $Promise_value$1, $Promise_error$2, $Promise_when$3, $Promise_initialize$4, $Promise_value$5, $Promise_act$ques$6, $Promise_action$7, $Promise_exception$ques$8, $Promise_realized$ques$9, $Promise_resolved$ques$10, $Promise_rejected$ques$11, $Promise_$$12, $Promise_$lt$lt$13, $Promise_$gt$gt$14, $Promise_resolve$15, $Promise_resolve$excl$16, $Promise_reject$18, $Promise_reject$excl$19, $Promise_exception$excl$21, $Promise_then$22, $Promise_then$excl$23, $Promise_fail$24, $Promise_fail$excl$25, $Promise_always$26, $Promise_always$excl$27, $Promise_trace$28, $Promise_trace$excl$29, $Promise_there_can_be_only_one$excl$30, $Promise_inspect$31; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.value = self.$$prototype.action = self.$$prototype.exception = self.$$prototype.realized = self.$$prototype.next = self.$$prototype.delayed = self.$$prototype.error = self.$$prototype.prev = nil; + $proto.value = $proto.action = $proto.exception = $proto.realized = $proto.next = $proto.delayed = $proto.error = $proto.prev = nil; - Opal.defs(self, '$value', $Promise_value$1 = function $$value(value) { + $defs(self, '$value', function $$value(value) { var self = this; return self.$new().$resolve(value) - }, $Promise_value$1.$$arity = 1); - Opal.defs(self, '$error', $Promise_error$2 = function $$error(value) { + }, 1); + $defs(self, '$error', function $$error(value) { var self = this; return self.$new().$reject(value) - }, $Promise_error$2.$$arity = 1); - Opal.defs(self, '$when', $Promise_when$3 = function $$when($a) { - var $post_args, promises, self = this; + }, 1); + $defs(self, '$when', function $$when($a) { + var $post_args, promises; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); promises = $post_args;; - return $$($nesting, 'When').$new(promises); - }, $Promise_when$3.$$arity = -1); + return $$('When').$new(promises); + }, -1); self.$attr_reader("error", "prev", "next"); - Opal.def(self, '$initialize', $Promise_initialize$4 = function $$initialize(action) { + $def(self, '$initialize', function $$initialize(action) { var self = this; - if (action == null) { - action = $hash2([], {}); - }; + if (action == null) action = $hash2([], {});; self.action = action; self.realized = false; self.exception = false; @@ -57,19 +46,19 @@ Opal.modules["promise"] = function(Opal) { self.delayed = false; self.prev = nil; return (self.next = []); - }, $Promise_initialize$4.$$arity = -1); + }, -1); - Opal.def(self, '$value', $Promise_value$5 = function $$value() { + $def(self, '$value', function $$value() { var self = this; - if ($truthy($$($nesting, 'Promise')['$==='](self.value))) { + if ($eqeqeq($$('Promise'), self.value)) { return self.value.$value() } else { return self.value } - }, $Promise_value$5.$$arity = 0); + }, 0); - Opal.def(self, '$act?', $Promise_act$ques$6 = function() { + $def(self, '$act?', function $Promise_act$ques$1() { var self = this, $ret_or_1 = nil; if ($truthy(($ret_or_1 = self.action['$key?']("success")))) { @@ -77,518 +66,461 @@ Opal.modules["promise"] = function(Opal) { } else { return self.action['$key?']("always") } - }, $Promise_act$ques$6.$$arity = 0); + }, 0); - Opal.def(self, '$action', $Promise_action$7 = function $$action() { + $def(self, '$action', function $$action() { var self = this; return self.action.$keys() - }, $Promise_action$7.$$arity = 0); + }, 0); - Opal.def(self, '$exception?', $Promise_exception$ques$8 = function() { + $def(self, '$exception?', function $Promise_exception$ques$2() { var self = this; return self.exception - }, $Promise_exception$ques$8.$$arity = 0); + }, 0); - Opal.def(self, '$realized?', $Promise_realized$ques$9 = function() { + $def(self, '$realized?', function $Promise_realized$ques$3() { var self = this; return self.realized['$!='](false) - }, $Promise_realized$ques$9.$$arity = 0); + }, 0); - Opal.def(self, '$resolved?', $Promise_resolved$ques$10 = function() { + $def(self, '$resolved?', function $Promise_resolved$ques$4() { var self = this; return self.realized['$==']("resolve") - }, $Promise_resolved$ques$10.$$arity = 0); + }, 0); - Opal.def(self, '$rejected?', $Promise_rejected$ques$11 = function() { + $def(self, '$rejected?', function $Promise_rejected$ques$5() { var self = this; return self.realized['$==']("reject") - }, $Promise_rejected$ques$11.$$arity = 0); + }, 0); - Opal.def(self, '$^', $Promise_$$12 = function(promise) { + $def(self, '$^', function $Promise_$$6(promise) { var self = this; promise['$<<'](self); self['$>>'](promise); return promise; - }, $Promise_$$12.$$arity = 1); + }, 1); - Opal.def(self, '$<<', $Promise_$lt$lt$13 = function(promise) { + $def(self, '$<<', function $Promise_$lt$lt$7(promise) { var self = this; self.prev = promise; return self; - }, $Promise_$lt$lt$13.$$arity = 1); + }, 1); - Opal.def(self, '$>>', $Promise_$gt$gt$14 = function(promise) { - var self = this, $ret_or_2 = nil; + $def(self, '$>>', function $Promise_$gt$gt$8(promise) { + var self = this; self.next['$<<'](promise); if ($truthy(self['$exception?']())) { promise.$reject(self.delayed['$[]'](0)) } else if ($truthy(self['$resolved?']())) { - promise.$resolve((function() {if ($truthy(self.delayed)) { - return self.delayed['$[]'](0) - } else { - return self.$value() - }; return nil; })()) + promise.$resolve(($truthy(self.delayed) ? (self.delayed['$[]'](0)) : (self.$value()))) } else if ($truthy(self['$rejected?']())) { - if ($truthy((function() {if ($truthy(($ret_or_2 = self.action['$key?']("failure")['$!']()))) { - return $ret_or_2 - } else { - return $$($nesting, 'Promise')['$===']((function() {if ($truthy(self.delayed)) { - return self.delayed['$[]'](0) - } else { - return self.error - }; return nil; })()) - }; return nil; })())) { - promise.$reject((function() {if ($truthy(self.delayed)) { - return self.delayed['$[]'](0) - } else { - return self.$error() - }; return nil; })()) + if (($not(self.action['$key?']("failure")) || ($eqeqeq($$('Promise'), ($truthy(self.delayed) ? (self.delayed['$[]'](0)) : (self.error)))))) { + promise.$reject(($truthy(self.delayed) ? (self.delayed['$[]'](0)) : (self.$error()))) } else if ($truthy(promise.$action()['$include?']("always"))) { - promise.$reject((function() {if ($truthy(self.delayed)) { - return self.delayed['$[]'](0) - } else { - return self.$error() - }; return nil; })())}}; + promise.$reject(($truthy(self.delayed) ? (self.delayed['$[]'](0)) : (self.$error()))) + } + }; return self; - }, $Promise_$gt$gt$14.$$arity = 1); + }, 1); - Opal.def(self, '$resolve', $Promise_resolve$15 = function $$resolve(value) { - var self = this, block = nil, $ret_or_3 = nil, e = nil; + $def(self, '$resolve', function $$resolve(value) { + var self = this, block = nil, $ret_or_1 = nil, e = nil; - if (value == null) { - value = nil; - }; + if (value == null) value = nil;; if ($truthy(self['$realized?']())) { - self.$raise($$($nesting, 'ArgumentError'), "the promise has already been realized")}; - if ($truthy($$($nesting, 'Promise')['$==='](value))) { - return value['$<<'](self.prev)['$^'](self)}; + self.$raise($$('ArgumentError'), "the promise has already been realized") + }; + if ($eqeqeq($$('Promise'), value)) { + return value['$<<'](self.prev)['$^'](self) + }; try { - block = (function() {if ($truthy(($ret_or_3 = self.action['$[]']("success")))) { - return $ret_or_3 - } else { - return self.action['$[]']("always") - }; return nil; })(); + block = ($truthy(($ret_or_1 = self.action['$[]']("success"))) ? ($ret_or_1) : (self.action['$[]']("always"))); if ($truthy(block)) { - value = block.$call(value)}; + value = block.$call(value) + }; self['$resolve!'](value); } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) + if (Opal.rescue($err, [$$('Exception')])) {(e = $err) try { self['$exception!'](e) } finally { Opal.pop_exception(); } } else { throw $err; } };; return self; - }, $Promise_resolve$15.$$arity = -1); + }, -1); - Opal.def(self, '$resolve!', $Promise_resolve$excl$16 = function(value) { - var $$17, self = this; + $def(self, '$resolve!', function $Promise_resolve$excl$9(value) { + var self = this; self.realized = "resolve"; self.value = value; if ($truthy(self.next['$any?']())) { - return $send(self.next, 'each', [], ($$17 = function(p){var self = $$17.$$s == null ? this : $$17.$$s; - + return $send(self.next, 'each', [], function $$10(p){ - if (p == null) { - p = nil; - }; - return p.$resolve(value);}, $$17.$$s = self, $$17.$$arity = 1, $$17)) + if (p == null) p = nil;; + return p.$resolve(value);}, 1) } else { return (self.delayed = [value]) }; - }, $Promise_resolve$excl$16.$$arity = 1); + }, 1); - Opal.def(self, '$reject', $Promise_reject$18 = function $$reject(value) { - var self = this, block = nil, $ret_or_4 = nil, e = nil; + $def(self, '$reject', function $$reject(value) { + var self = this, block = nil, $ret_or_1 = nil, e = nil; - if (value == null) { - value = nil; - }; + if (value == null) value = nil;; if ($truthy(self['$realized?']())) { - self.$raise($$($nesting, 'ArgumentError'), "the promise has already been realized")}; - if ($truthy($$($nesting, 'Promise')['$==='](value))) { - return value['$<<'](self.prev)['$^'](self)}; + self.$raise($$('ArgumentError'), "the promise has already been realized") + }; + if ($eqeqeq($$('Promise'), value)) { + return value['$<<'](self.prev)['$^'](self) + }; try { - block = (function() {if ($truthy(($ret_or_4 = self.action['$[]']("failure")))) { - return $ret_or_4 - } else { - return self.action['$[]']("always") - }; return nil; })(); + block = ($truthy(($ret_or_1 = self.action['$[]']("failure"))) ? ($ret_or_1) : (self.action['$[]']("always"))); if ($truthy(block)) { - value = block.$call(value)}; + value = block.$call(value) + }; if ($truthy(self.action['$key?']("always"))) { self['$resolve!'](value) } else { self['$reject!'](value) }; } catch ($err) { - if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) + if (Opal.rescue($err, [$$('Exception')])) {(e = $err) try { self['$exception!'](e) } finally { Opal.pop_exception(); } } else { throw $err; } };; return self; - }, $Promise_reject$18.$$arity = -1); + }, -1); - Opal.def(self, '$reject!', $Promise_reject$excl$19 = function(value) { - var $$20, self = this; + $def(self, '$reject!', function $Promise_reject$excl$11(value) { + var self = this; self.realized = "reject"; self.error = value; if ($truthy(self.next['$any?']())) { - return $send(self.next, 'each', [], ($$20 = function(p){var self = $$20.$$s == null ? this : $$20.$$s; - + return $send(self.next, 'each', [], function $$12(p){ - if (p == null) { - p = nil; - }; - return p.$reject(value);}, $$20.$$s = self, $$20.$$arity = 1, $$20)) + if (p == null) p = nil;; + return p.$reject(value);}, 1) } else { return (self.delayed = [value]) }; - }, $Promise_reject$excl$19.$$arity = 1); + }, 1); - Opal.def(self, '$exception!', $Promise_exception$excl$21 = function(error) { + $def(self, '$exception!', function $Promise_exception$excl$13(error) { var self = this; self.exception = true; return self['$reject!'](error); - }, $Promise_exception$excl$21.$$arity = 1); + }, 1); - Opal.def(self, '$then', $Promise_then$22 = function $$then() { - var $iter = $Promise_then$22.$$p, block = $iter || nil, self = this; + $def(self, '$then', function $$then() { + var block = $$then.$$p || nil, self = this; - if ($iter) $Promise_then$22.$$p = null; - + delete $$then.$$p; - if ($iter) $Promise_then$22.$$p = null;; - return self['$^']($$($nesting, 'Promise').$new($hash2(["success"], {"success": block}))); - }, $Promise_then$22.$$arity = 0); + ; + return self['$^']($$('Promise').$new($hash2(["success"], {"success": block}))); + }, 0); - Opal.def(self, '$then!', $Promise_then$excl$23 = function() { - var $iter = $Promise_then$excl$23.$$p, block = $iter || nil, self = this; + $def(self, '$then!', function $Promise_then$excl$14() { + var block = $Promise_then$excl$14.$$p || nil, self = this; - if ($iter) $Promise_then$excl$23.$$p = null; - + delete $Promise_then$excl$14.$$p; - if ($iter) $Promise_then$excl$23.$$p = null;; + ; self['$there_can_be_only_one!'](); return $send(self, 'then', [], block.$to_proc()); - }, $Promise_then$excl$23.$$arity = 0); - $alias(self, "do", "then"); - $alias(self, "do!", "then!"); + }, 0); - Opal.def(self, '$fail', $Promise_fail$24 = function $$fail() { - var $iter = $Promise_fail$24.$$p, block = $iter || nil, self = this; + $def(self, '$fail', function $$fail() { + var block = $$fail.$$p || nil, self = this; - if ($iter) $Promise_fail$24.$$p = null; - + delete $$fail.$$p; - if ($iter) $Promise_fail$24.$$p = null;; - return self['$^']($$($nesting, 'Promise').$new($hash2(["failure"], {"failure": block}))); - }, $Promise_fail$24.$$arity = 0); + ; + return self['$^']($$('Promise').$new($hash2(["failure"], {"failure": block}))); + }, 0); - Opal.def(self, '$fail!', $Promise_fail$excl$25 = function() { - var $iter = $Promise_fail$excl$25.$$p, block = $iter || nil, self = this; + $def(self, '$fail!', function $Promise_fail$excl$15() { + var block = $Promise_fail$excl$15.$$p || nil, self = this; - if ($iter) $Promise_fail$excl$25.$$p = null; + delete $Promise_fail$excl$15.$$p; - - if ($iter) $Promise_fail$excl$25.$$p = null;; + ; self['$there_can_be_only_one!'](); return $send(self, 'fail', [], block.$to_proc()); - }, $Promise_fail$excl$25.$$arity = 0); - $alias(self, "rescue", "fail"); - $alias(self, "catch", "fail"); - $alias(self, "rescue!", "fail!"); - $alias(self, "catch!", "fail!"); + }, 0); - Opal.def(self, '$always', $Promise_always$26 = function $$always() { - var $iter = $Promise_always$26.$$p, block = $iter || nil, self = this; + $def(self, '$always', function $$always() { + var block = $$always.$$p || nil, self = this; - if ($iter) $Promise_always$26.$$p = null; - + delete $$always.$$p; - if ($iter) $Promise_always$26.$$p = null;; - return self['$^']($$($nesting, 'Promise').$new($hash2(["always"], {"always": block}))); - }, $Promise_always$26.$$arity = 0); + ; + return self['$^']($$('Promise').$new($hash2(["always"], {"always": block}))); + }, 0); - Opal.def(self, '$always!', $Promise_always$excl$27 = function() { - var $iter = $Promise_always$excl$27.$$p, block = $iter || nil, self = this; + $def(self, '$always!', function $Promise_always$excl$16() { + var block = $Promise_always$excl$16.$$p || nil, self = this; - if ($iter) $Promise_always$excl$27.$$p = null; + delete $Promise_always$excl$16.$$p; - - if ($iter) $Promise_always$excl$27.$$p = null;; + ; self['$there_can_be_only_one!'](); return $send(self, 'always', [], block.$to_proc()); - }, $Promise_always$excl$27.$$arity = 0); - $alias(self, "finally", "always"); - $alias(self, "ensure", "always"); - $alias(self, "finally!", "always!"); - $alias(self, "ensure!", "always!"); + }, 0); - Opal.def(self, '$trace', $Promise_trace$28 = function $$trace(depth) { - var $iter = $Promise_trace$28.$$p, block = $iter || nil, self = this; + $def(self, '$trace', function $$trace(depth) { + var block = $$trace.$$p || nil, self = this; - if ($iter) $Promise_trace$28.$$p = null; - + delete $$trace.$$p; - if ($iter) $Promise_trace$28.$$p = null;; + ; - if (depth == null) { - depth = nil; - }; - return self['$^']($$($nesting, 'Trace').$new(depth, block)); - }, $Promise_trace$28.$$arity = -1); + if (depth == null) depth = nil;; + return self['$^']($$('Trace').$new(depth, block)); + }, -1); - Opal.def(self, '$trace!', $Promise_trace$excl$29 = function($a) { - var $iter = $Promise_trace$excl$29.$$p, block = $iter || nil, $post_args, args, self = this; + $def(self, '$trace!', function $Promise_trace$excl$17($a) { + var block = $Promise_trace$excl$17.$$p || nil, $post_args, args, self = this; - if ($iter) $Promise_trace$excl$29.$$p = null; - + delete $Promise_trace$excl$17.$$p; - if ($iter) $Promise_trace$excl$29.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; self['$there_can_be_only_one!'](); - return $send(self, 'trace', Opal.to_a(args), block.$to_proc()); - }, $Promise_trace$excl$29.$$arity = -1); + return $send(self, 'trace', $to_a(args), block.$to_proc()); + }, -1); - Opal.def(self, '$there_can_be_only_one!', $Promise_there_can_be_only_one$excl$30 = function() { + $def(self, '$there_can_be_only_one!', function $Promise_there_can_be_only_one$excl$18() { var self = this; if ($truthy(self.next['$any?']())) { - return self.$raise($$($nesting, 'ArgumentError'), "a promise has already been chained") + return self.$raise($$('ArgumentError'), "a promise has already been chained") } else { return nil } - }, $Promise_there_can_be_only_one$excl$30.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $Promise_inspect$31 = function $$inspect() { - var self = this, result = nil, $ret_or_5 = nil; + $def(self, '$inspect', function $$inspect() { + var self = this, result = nil, $ret_or_1 = nil; - result = "" + "#<" + (self.$class()) + "(" + (self.$object_id()) + ")"; + result = "#<" + (self.$class()) + "(" + (self.$object_id()) + ")"; if ($truthy(self.next['$any?']())) { - result = $rb_plus(result, "" + " >> " + (self.next.$inspect()))}; - result = $rb_plus(result, (function() {if ($truthy(self['$realized?']())) { - return "" + ": " + ((function() {if ($truthy(($ret_or_5 = self.value))) { - return $ret_or_5 - } else { - return self.error - }; return nil; })().$inspect()) + ">" - } else { - return ">" - }; return nil; })()); + result = $rb_plus(result, " >> " + (self.next.$inspect())) + }; + result = $rb_plus(result, ($truthy(self['$realized?']()) ? (": " + (($truthy(($ret_or_1 = self.value)) ? ($ret_or_1) : (self.error)).$inspect()) + ">") : (">"))); return result; - }, $Promise_inspect$31.$$arity = 0); + }, 0); + + $def(self, '$to_v2', function $$to_v2() { + var self = this, v2 = nil; + + + v2 = $$('PromiseV2').$new(); + $send($send(self, 'then', [], function $$19(i){ + + + if (i == null) i = nil;; + return v2.$resolve(i);}, 1), 'rescue', [], function $$20(i){ + + + if (i == null) i = nil;; + return v2.$reject(i);}, 1); + return v2; + }, 0); + $alias(self, "catch", "fail"); + $alias(self, "catch!", "fail!"); + $alias(self, "do", "then"); + $alias(self, "do!", "then!"); + $alias(self, "ensure", "always"); + $alias(self, "ensure!", "always!"); + $alias(self, "finally", "always"); + $alias(self, "finally!", "always!"); + $alias(self, "rescue", "fail"); + $alias(self, "rescue!", "fail!"); + $alias(self, "to_n", "to_v2"); + $alias(self, "to_v1", "itself"); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Trace'); - var $nesting = [self].concat($parent_nesting), $Trace_it$32, $Trace_initialize$33; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.defs(self, '$it', $Trace_it$32 = function $$it(promise) { - var self = this, current = nil, $ret_or_6 = nil, prev = nil; + $defs(self, '$it', function $$it(promise) { + var self = this, current = nil, prev = nil; current = []; - if ($truthy((function() {if ($truthy(($ret_or_6 = promise['$act?']()))) { - return $ret_or_6 - } else { - return promise.$prev()['$nil?']() - }; return nil; })())) { - current.$push(promise.$value())}; + if (($truthy(promise['$act?']()) || ($truthy(promise.$prev()['$nil?']())))) { + current.$push(promise.$value()) + }; prev = promise.$prev(); if ($truthy(prev)) { return current.$concat(self.$it(prev)) } else { return current }; - }, $Trace_it$32.$$arity = 1); - return (Opal.def(self, '$initialize', $Trace_initialize$33 = function $$initialize(depth, block) { - var $$34, $iter = $Trace_initialize$33.$$p, $yield = $iter || nil, self = this; + }, 1); + return $def(self, '$initialize', function $$initialize(depth, block) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $Trace_initialize$33.$$p = null; + delete $$initialize.$$p; self.depth = depth; - return $send2(self, $find_super(self, 'initialize', $Trace_initialize$33, false, true), 'initialize', [$hash2(["success"], {"success": $send(self, 'proc', [], ($$34 = function(){var self = $$34.$$s == null ? this : $$34.$$s, trace = nil, $ret_or_7 = nil; + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [$hash2(["success"], {"success": $send(self, 'proc', [], function $$21(){var self = $$21.$$s == null ? this : $$21.$$s, trace = nil; - trace = $$($nesting, 'Trace').$it(self).$reverse(); + trace = $$('Trace').$it(self).$reverse(); trace.$pop(); - if ($truthy((function() {if ($truthy(($ret_or_7 = depth))) { - return $rb_le(depth, trace.$length()) - } else { - return $ret_or_7 - }; return nil; })())) { - trace.$shift($rb_minus(trace.$length(), depth))}; - return $send(block, 'call', Opal.to_a(trace));}, $$34.$$s = self, $$34.$$arity = 0, $$34))})], null); - }, $Trace_initialize$33.$$arity = 2), nil) && 'initialize'; + if (($truthy(depth) && ($truthy($rb_le(depth, trace.$length()))))) { + trace.$shift($rb_minus(trace.$length(), depth)) + }; + return $send(block, 'call', $to_a(trace));}, {$$arity: 0, $$s: self})})], null); + }, 2); })($nesting[0], self, $nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'When'); - var $nesting = [self].concat($parent_nesting), $When_initialize$35, $When_each$37, $When_collect$39, $When_inject$41, $When_wait$43, $When_$gt$gt$45, $When_try$47; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.wait = nil; + $proto.wait = nil; - Opal.def(self, '$initialize', $When_initialize$35 = function $$initialize(promises) { - var $$36, $iter = $When_initialize$35.$$p, $yield = $iter || nil, self = this; + $def(self, '$initialize', function $$initialize(promises) { + var $yield = $$initialize.$$p || nil, self = this; - if ($iter) $When_initialize$35.$$p = null; + delete $$initialize.$$p; - if (promises == null) { - promises = []; - }; - $send2(self, $find_super(self, 'initialize', $When_initialize$35, false, true), 'initialize', [], null); + if (promises == null) promises = [];; + $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [], null); self.wait = []; - return $send(promises, 'each', [], ($$36 = function(promise){var self = $$36.$$s == null ? this : $$36.$$s; + return $send(promises, 'each', [], function $$22(promise){var self = $$22.$$s == null ? this : $$22.$$s; - if (promise == null) { - promise = nil; - }; - return self.$wait(promise);}, $$36.$$s = self, $$36.$$arity = 1, $$36)); - }, $When_initialize$35.$$arity = -1); + if (promise == null) promise = nil;; + return self.$wait(promise);}, {$$arity: 1, $$s: self}); + }, -1); - Opal.def(self, '$each', $When_each$37 = function $$each() { - var $iter = $When_each$37.$$p, block = $iter || nil, $$38, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $When_each$37.$$p = null; - + delete $$each.$$p; - if ($iter) $When_each$37.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "no block given") + ; + if (!$truthy(block)) { + self.$raise($$('ArgumentError'), "no block given") }; - return $send(self, 'then', [], ($$38 = function(values){var self = $$38.$$s == null ? this : $$38.$$s; - + return $send(self, 'then', [], function $$23(values){ - if (values == null) { - values = nil; - }; - return $send(values, 'each', [], block.$to_proc());}, $$38.$$s = self, $$38.$$arity = 1, $$38)); - }, $When_each$37.$$arity = 0); + if (values == null) values = nil;; + return $send(values, 'each', [], block.$to_proc());}, 1); + }, 0); - Opal.def(self, '$collect', $When_collect$39 = function $$collect() { - var $iter = $When_collect$39.$$p, block = $iter || nil, $$40, self = this; + $def(self, '$collect', function $$collect() { + var block = $$collect.$$p || nil, self = this; - if ($iter) $When_collect$39.$$p = null; - + delete $$collect.$$p; - if ($iter) $When_collect$39.$$p = null;; - if ($truthy(block)) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "no block given") + ; + if (!$truthy(block)) { + self.$raise($$('ArgumentError'), "no block given") }; - return $send(self, 'then', [], ($$40 = function(values){var self = $$40.$$s == null ? this : $$40.$$s; - + return $send(self, 'then', [], function $$24(values){ - if (values == null) { - values = nil; - }; - return $$($nesting, 'When').$new($send(values, 'map', [], block.$to_proc()));}, $$40.$$s = self, $$40.$$arity = 1, $$40)); - }, $When_collect$39.$$arity = 0); + if (values == null) values = nil;; + return $$('When').$new($send(values, 'map', [], block.$to_proc()));}, 1); + }, 0); - Opal.def(self, '$inject', $When_inject$41 = function $$inject($a) { - var $iter = $When_inject$41.$$p, block = $iter || nil, $post_args, args, $$42, self = this; + $def(self, '$inject', function $$inject($a) { + var block = $$inject.$$p || nil, $post_args, args, self = this; - if ($iter) $When_inject$41.$$p = null; - + delete $$inject.$$p; - if ($iter) $When_inject$41.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return $send(self, 'then', [], ($$42 = function(values){var self = $$42.$$s == null ? this : $$42.$$s; - + return $send(self, 'then', [], function $$25(values){ - if (values == null) { - values = nil; - }; - return $send(values, 'reduce', Opal.to_a(args), block.$to_proc());}, $$42.$$s = self, $$42.$$arity = 1, $$42)); - }, $When_inject$41.$$arity = -1); - $alias(self, "map", "collect"); - $alias(self, "reduce", "inject"); + if (values == null) values = nil;; + return $send(values, 'reduce', $to_a(args), block.$to_proc());}, 1); + }, -1); - Opal.def(self, '$wait', $When_wait$43 = function $$wait(promise) { - var $$44, self = this; + $def(self, '$wait', function $$wait(promise) { + var self = this; - if ($truthy($$($nesting, 'Promise')['$==='](promise))) { - } else { - promise = $$($nesting, 'Promise').$value(promise) + if (!$eqeqeq($$('Promise'), promise)) { + promise = $$('Promise').$value(promise) }; if ($truthy(promise['$act?']())) { - promise = promise.$then()}; + promise = promise.$then() + }; self.wait['$<<'](promise); - $send(promise, 'always', [], ($$44 = function(){var self = $$44.$$s == null ? this : $$44.$$s; + $send(promise, 'always', [], function $$26(){var self = $$26.$$s == null ? this : $$26.$$s; if (self.next == null) self.next = nil; if ($truthy(self.next['$any?']())) { return self.$try() } else { return nil - }}, $$44.$$s = self, $$44.$$arity = 0, $$44)); + }}, {$$arity: 0, $$s: self}); return self; - }, $When_wait$43.$$arity = 1); - $alias(self, "and", "wait"); + }, 1); - Opal.def(self, '$>>', $When_$gt$gt$45 = function($a) { - var $post_args, $$46, $iter = $When_$gt$gt$45.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$>>', function $When_$gt$gt$27($a) { + var $post_args, $rest_arg, $yield = $When_$gt$gt$27.$$p || nil, self = this; - if ($iter) $When_$gt$gt$45.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $When_$gt$gt$27.$$p; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - ; - return $send($send2(self, $find_super(self, '>>', $When_$gt$gt$45, false, true), '>>', $zuper, $iter), 'tap', [], ($$46 = function(){var self = $$46.$$s == null ? this : $$46.$$s; + $post_args = Opal.slice.call(arguments); + + $rest_arg = $post_args;; + return $send($send2(self, $find_super(self, '>>', $When_$gt$gt$27, false, true), '>>', $to_a($rest_arg), $yield), 'tap', [], function $$28(){var self = $$28.$$s == null ? this : $$28.$$s; - return self.$try()}, $$46.$$s = self, $$46.$$arity = 0, $$46)); - }, $When_$gt$gt$45.$$arity = -1); - return (Opal.def(self, '$try', $When_try$47 = function() { + return self.$try()}, {$$arity: 0, $$s: self}); + }, -1); + + $def(self, '$try', function $When_try$29() { var self = this, promise = nil; if ($truthy($send(self.wait, 'all?', [], "realized?".$to_proc()))) { @@ -602,7 +534,11 @@ Opal.modules["promise"] = function(Opal) { } else { return nil } - }, $When_try$47.$$arity = 0), nil) && 'try'; + }, 0); + $alias(self, "map", "collect"); + $alias(self, "reduce", "inject"); + return $alias(self, "and", "wait"); })($nesting[0], self, $nesting); - })($nesting[0], null, $nesting) + })($nesting[0], null, $nesting); + return $const_set($nesting[0], 'PromiseV1', $$('Promise')); }; diff --git a/opal/master/promise.min.js b/opal/master/promise.min.js index b3d6d0bb..111a54da 100644 --- a/opal/master/promise.min.js +++ b/opal/master/promise.min.js @@ -1 +1 @@ -Opal.modules.promise=function(Opal){function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$resolve","$new","$reject","$attr_reader","$===","$value","$key?","$keys","$!=","$==","$<<","$>>","$exception?","$[]","$resolved?","$rejected?","$!","$error","$include?","$action","$realized?","$raise","$^","$call","$resolve!","$exception!","$any?","$each","$reject!","$there_can_be_only_one!","$then","$to_proc","$fail","$always","$trace","$class","$object_id","$+","$inspect","$act?","$nil?","$prev","$push","$concat","$it","$proc","$reverse","$pop","$<=","$length","$shift","$-","$wait","$map","$reduce","$try","$tap","$all?","$find"]),function(self,$Promise_inspect$31){var $Promise_then$22,$Promise_then$excl$23,$Promise_fail$24,$Promise_fail$excl$25,$Promise_always$26,$Promise_always$excl$27,$Promise_trace$28,$Promise_trace$excl$29,self=$klass(self,null,"Promise"),$nesting=[self].concat($Promise_inspect$31);return self.$$prototype.value=self.$$prototype.action=self.$$prototype.exception=self.$$prototype.realized=self.$$prototype.next=self.$$prototype.delayed=self.$$prototype.error=self.$$prototype.prev=nil,Opal.defs(self,"$value",$Promise_inspect$31=function(value){return this.$new().$resolve(value)},$Promise_inspect$31.$$arity=1),Opal.defs(self,"$error",$Promise_inspect$31=function(value){return this.$new().$reject(value)},$Promise_inspect$31.$$arity=1),Opal.defs(self,"$when",$Promise_inspect$31=function($a){var promises=Opal.slice.call(arguments,0,arguments.length);return $$($nesting,"When").$new(promises)},$Promise_inspect$31.$$arity=-1),self.$attr_reader("error","prev","next"),Opal.def(self,"$initialize",$Promise_inspect$31=function(action){return null==action&&(action=$hash2([],{})),this.action=action,this.realized=!1,this.exception=!1,this.value=nil,this.error=nil,this.delayed=!1,this.prev=nil,this.next=[]},$Promise_inspect$31.$$arity=-1),Opal.def(self,"$value",$Promise_inspect$31=function(){return $truthy($$($nesting,"Promise")["$==="](this.value))?this.value.$value():this.value},$Promise_inspect$31.$$arity=0),Opal.def(self,"$act?",$Promise_inspect$31=function(){var $ret_or_1;return $truthy($ret_or_1=this.action["$key?"]("success"))?$ret_or_1:this.action["$key?"]("always")},$Promise_inspect$31.$$arity=0),Opal.def(self,"$action",$Promise_inspect$31=function(){return this.action.$keys()},$Promise_inspect$31.$$arity=0),Opal.def(self,"$exception?",$Promise_inspect$31=function(){return this.exception},$Promise_inspect$31.$$arity=0),Opal.def(self,"$realized?",$Promise_inspect$31=function(){return this.realized["$!="](!1)},$Promise_inspect$31.$$arity=0),Opal.def(self,"$resolved?",$Promise_inspect$31=function(){return this.realized["$=="]("resolve")},$Promise_inspect$31.$$arity=0),Opal.def(self,"$rejected?",$Promise_inspect$31=function(){return this.realized["$=="]("reject")},$Promise_inspect$31.$$arity=0),Opal.def(self,"$^",$Promise_inspect$31=function(promise){return promise["$<<"](this),this["$>>"](promise),promise},$Promise_inspect$31.$$arity=1),Opal.def(self,"$<<",$Promise_inspect$31=function(promise){return this.prev=promise,this},$Promise_inspect$31.$$arity=1),Opal.def(self,"$>>",$Promise_inspect$31=function(promise){var self=this,$ret_or_2=nil;return self.next["$<<"](promise),$truthy(self["$exception?"]())?promise.$reject(self.delayed["$[]"](0)):$truthy(self["$resolved?"]())?promise.$resolve($truthy(self.delayed)?self.delayed["$[]"](0):self.$value()):$truthy(self["$rejected?"]())&&($truthy($truthy($ret_or_2=self.action["$key?"]("failure")["$!"]())?$ret_or_2:$$($nesting,"Promise")["$==="]($truthy(self.delayed)?self.delayed["$[]"](0):self.error))||$truthy(promise.$action()["$include?"]("always")))&&promise.$reject($truthy(self.delayed)?self.delayed["$[]"](0):self.$error()),self},$Promise_inspect$31.$$arity=1),Opal.def(self,"$resolve",$Promise_inspect$31=function(value){var e,self=this,block=nil,$ret_or_3=nil;if(null==value&&(value=nil),$truthy(self["$realized?"]())&&self.$raise($$($nesting,"ArgumentError"),"the promise has already been realized"),$truthy($$($nesting,"Promise")["$==="](value)))return value["$<<"](self.prev)["$^"](self);try{block=$truthy($ret_or_3=self.action["$[]"]("success"))?$ret_or_3:self.action["$[]"]("always"),$truthy(block)&&(value=block.$call(value)),self["$resolve!"](value)}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;e=$err;try{self["$exception!"](e)}finally{Opal.pop_exception()}}return self},$Promise_inspect$31.$$arity=-1),Opal.def(self,"$resolve!",$Promise_inspect$31=function(value){var $$17;return this.realized="resolve",this.value=value,$truthy(this.next["$any?"]())?$send(this.next,"each",[],(($$17=function(p){null==$$17.$$s||$$17.$$s;return null==p&&(p=nil),p.$resolve(value)}).$$s=this,$$17.$$arity=1,$$17)):this.delayed=[value]},$Promise_inspect$31.$$arity=1),Opal.def(self,"$reject",$Promise_inspect$31=function(value){var e,self=this,block=nil,$ret_or_4=nil;if(null==value&&(value=nil),$truthy(self["$realized?"]())&&self.$raise($$($nesting,"ArgumentError"),"the promise has already been realized"),$truthy($$($nesting,"Promise")["$==="](value)))return value["$<<"](self.prev)["$^"](self);try{block=$truthy($ret_or_4=self.action["$[]"]("failure"))?$ret_or_4:self.action["$[]"]("always"),$truthy(block)&&(value=block.$call(value)),$truthy(self.action["$key?"]("always"))?self["$resolve!"](value):self["$reject!"](value)}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;e=$err;try{self["$exception!"](e)}finally{Opal.pop_exception()}}return self},$Promise_inspect$31.$$arity=-1),Opal.def(self,"$reject!",$Promise_inspect$31=function(value){var $$20;return this.realized="reject",this.error=value,$truthy(this.next["$any?"]())?$send(this.next,"each",[],(($$20=function(p){null==$$20.$$s||$$20.$$s;return null==p&&(p=nil),p.$reject(value)}).$$s=this,$$20.$$arity=1,$$20)):this.delayed=[value]},$Promise_inspect$31.$$arity=1),Opal.def(self,"$exception!",$Promise_inspect$31=function(error){return this.exception=!0,this["$reject!"](error)},$Promise_inspect$31.$$arity=1),Opal.def(self,"$then",$Promise_then$22=function(){var $iter=$Promise_then$22.$$p,block=$iter||nil;return $iter&&($Promise_then$22.$$p=null),$iter&&($Promise_then$22.$$p=null),this["$^"]($$($nesting,"Promise").$new($hash2(["success"],{success:block})))},$Promise_then$22.$$arity=0),Opal.def(self,"$then!",$Promise_then$excl$23=function(){var $iter=$Promise_then$excl$23.$$p,block=$iter||nil;return $iter&&($Promise_then$excl$23.$$p=null),$iter&&($Promise_then$excl$23.$$p=null),this["$there_can_be_only_one!"](),$send(this,"then",[],block.$to_proc())},$Promise_then$excl$23.$$arity=0),$alias(self,"do","then"),$alias(self,"do!","then!"),Opal.def(self,"$fail",$Promise_fail$24=function(){var $iter=$Promise_fail$24.$$p,block=$iter||nil;return $iter&&($Promise_fail$24.$$p=null),$iter&&($Promise_fail$24.$$p=null),this["$^"]($$($nesting,"Promise").$new($hash2(["failure"],{failure:block})))},$Promise_fail$24.$$arity=0),Opal.def(self,"$fail!",$Promise_fail$excl$25=function(){var $iter=$Promise_fail$excl$25.$$p,block=$iter||nil;return $iter&&($Promise_fail$excl$25.$$p=null),$iter&&($Promise_fail$excl$25.$$p=null),this["$there_can_be_only_one!"](),$send(this,"fail",[],block.$to_proc())},$Promise_fail$excl$25.$$arity=0),$alias(self,"rescue","fail"),$alias(self,"catch","fail"),$alias(self,"rescue!","fail!"),$alias(self,"catch!","fail!"),Opal.def(self,"$always",$Promise_always$26=function(){var $iter=$Promise_always$26.$$p,block=$iter||nil;return $iter&&($Promise_always$26.$$p=null),$iter&&($Promise_always$26.$$p=null),this["$^"]($$($nesting,"Promise").$new($hash2(["always"],{always:block})))},$Promise_always$26.$$arity=0),Opal.def(self,"$always!",$Promise_always$excl$27=function(){var $iter=$Promise_always$excl$27.$$p,block=$iter||nil;return $iter&&($Promise_always$excl$27.$$p=null),$iter&&($Promise_always$excl$27.$$p=null),this["$there_can_be_only_one!"](),$send(this,"always",[],block.$to_proc())},$Promise_always$excl$27.$$arity=0),$alias(self,"finally","always"),$alias(self,"ensure","always"),$alias(self,"finally!","always!"),$alias(self,"ensure!","always!"),Opal.def(self,"$trace",$Promise_trace$28=function(depth){var $iter=$Promise_trace$28.$$p,block=$iter||nil;return $iter&&($Promise_trace$28.$$p=null),$iter&&($Promise_trace$28.$$p=null),null==depth&&(depth=nil),this["$^"]($$($nesting,"Trace").$new(depth,block))},$Promise_trace$28.$$arity=-1),Opal.def(self,"$trace!",$Promise_trace$excl$29=function($a){var args=$Promise_trace$excl$29.$$p,block=args||nil;return args&&($Promise_trace$excl$29.$$p=null),args&&($Promise_trace$excl$29.$$p=null),args=Opal.slice.call(arguments,0,arguments.length),this["$there_can_be_only_one!"](),$send(this,"trace",Opal.to_a(args),block.$to_proc())},$Promise_trace$excl$29.$$arity=-1),Opal.def(self,"$there_can_be_only_one!",$Promise_inspect$31=function(){return $truthy(this.next["$any?"]())?this.$raise($$($nesting,"ArgumentError"),"a promise has already been chained"):nil},$Promise_inspect$31.$$arity=0),Opal.def(self,"$inspect",$Promise_inspect$31=function(){var self=this,result=nil,$ret_or_5=nil,result="#<"+self.$class()+"("+self.$object_id()+")";return $truthy(self.next["$any?"]())&&(result=$rb_plus(result," >> "+self.next.$inspect())),result=$rb_plus(result,$truthy(self["$realized?"]())?": "+($truthy($ret_or_5=self.value)?$ret_or_5:self.error).$inspect()+">":">")},$Promise_inspect$31.$$arity=0),function($base,self,$Trace_it$32){var $Trace_initialize$33,$nesting=[self=$klass($base,self,"Trace")].concat($Trace_it$32);Opal.defs(self,"$it",$Trace_it$32=function(promise){var prev,current=nil,$ret_or_6=nil,current=[];return $truthy($truthy($ret_or_6=promise["$act?"]())?$ret_or_6:promise.$prev()["$nil?"]())&¤t.$push(promise.$value()),prev=promise.$prev(),$truthy(prev)?current.$concat(this.$it(prev)):current},$Trace_it$32.$$arity=1),Opal.def(self,"$initialize",$Trace_initialize$33=function(depth,block){var $$34,$iter=$Trace_initialize$33.$$p;return $iter&&($Trace_initialize$33.$$p=null),this.depth=depth,$send2(this,$find_super(this,"initialize",$Trace_initialize$33,!1,!0),"initialize",[$hash2(["success"],{success:$send(this,"proc",[],(($$34=function(){var $ret_or_7,lhs,rhs=null==$$34.$$s?this:$$34.$$s,trace=nil;return(trace=$$($nesting,"Trace").$it(rhs).$reverse()).$pop(),$truthy($truthy($ret_or_7=depth)?(lhs=depth,rhs=trace.$length(),"number"==typeof lhs&&"number"==typeof rhs?lhs<=rhs:lhs["$<="](rhs)):$ret_or_7)&&trace.$shift(function(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}(trace.$length(),depth)),$send(block,"call",Opal.to_a(trace))}).$$s=this,$$34.$$arity=0,$$34))})],null)},$Trace_initialize$33.$$arity=2)}($nesting[0],self,$nesting),function($base,$When_try$47,$When_wait$43){var $When_initialize$35,$When_each$37,$When_collect$39,$When_inject$41,$When_$gt$gt$45,$When_try$47=$klass($base,$When_try$47,"When"),$nesting=[$When_try$47].concat($When_wait$43);return $When_try$47.$$prototype.wait=nil,Opal.def($When_try$47,"$initialize",$When_initialize$35=function(promises){var $$36,$iter=$When_initialize$35.$$p;return $iter&&($When_initialize$35.$$p=null),null==promises&&(promises=[]),$send2(this,$find_super(this,"initialize",$When_initialize$35,!1,!0),"initialize",[],null),this.wait=[],$send(promises,"each",[],(($$36=function(promise){var self=null==$$36.$$s?this:$$36.$$s;return null==promise&&(promise=nil),self.$wait(promise)}).$$s=this,$$36.$$arity=1,$$36))},$When_initialize$35.$$arity=-1),Opal.def($When_try$47,"$each",$When_each$37=function(){var $$38,$iter=$When_each$37.$$p,block=$iter||nil;return $iter&&($When_each$37.$$p=null),$iter&&($When_each$37.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"no block given"),$send(this,"then",[],(($$38=function(values){null==$$38.$$s||$$38.$$s;return null==values&&(values=nil),$send(values,"each",[],block.$to_proc())}).$$s=this,$$38.$$arity=1,$$38))},$When_each$37.$$arity=0),Opal.def($When_try$47,"$collect",$When_collect$39=function(){var $$40,$iter=$When_collect$39.$$p,block=$iter||nil;return $iter&&($When_collect$39.$$p=null),$iter&&($When_collect$39.$$p=null),$truthy(block)||this.$raise($$($nesting,"ArgumentError"),"no block given"),$send(this,"then",[],(($$40=function(values){null==$$40.$$s||$$40.$$s;return null==values&&(values=nil),$$($nesting,"When").$new($send(values,"map",[],block.$to_proc()))}).$$s=this,$$40.$$arity=1,$$40))},$When_collect$39.$$arity=0),Opal.def($When_try$47,"$inject",$When_inject$41=function($a){var args,$$42,$post_args=$When_inject$41.$$p,block=$post_args||nil;return $post_args&&($When_inject$41.$$p=null),$post_args&&($When_inject$41.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,$send(this,"then",[],(($$42=function(values){null==$$42.$$s||$$42.$$s;return null==values&&(values=nil),$send(values,"reduce",Opal.to_a(args),block.$to_proc())}).$$s=this,$$42.$$arity=1,$$42))},$When_inject$41.$$arity=-1),$alias($When_try$47,"map","collect"),$alias($When_try$47,"reduce","inject"),Opal.def($When_try$47,"$wait",$When_wait$43=function(promise){var $$44;return $truthy($$($nesting,"Promise")["$==="](promise))||(promise=$$($nesting,"Promise").$value(promise)),$truthy(promise["$act?"]())&&(promise=promise.$then()),this.wait["$<<"](promise),$send(promise,"always",[],(($$44=function(){var self=null==$$44.$$s?this:$$44.$$s;return null==self.next&&(self.next=nil),$truthy(self.next["$any?"]())?self.$try():nil}).$$s=this,$$44.$$arity=0,$$44)),this},$When_wait$43.$$arity=1),$alias($When_try$47,"and","wait"),Opal.def($When_try$47,"$>>",$When_$gt$gt$45=function($a){var $$46,$zuper_ii,$iter=$When_$gt$gt$45.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($When_$gt$gt$45.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return Opal.slice.call(arguments,0,arguments.length),$send($send2(this,$find_super(this,">>",$When_$gt$gt$45,!1,!0),">>",$zuper,$iter),"tap",[],(($$46=function(){return(null==$$46.$$s?this:$$46.$$s).$try()}).$$s=this,$$46.$$arity=0,$$46))},$When_$gt$gt$45.$$arity=-1),Opal.def($When_try$47,"$try",$When_try$47=function(){var promise=nil;return $truthy($send(this.wait,"all?",[],"realized?".$to_proc()))?(promise=$send(this.wait,"find",[],"rejected?".$to_proc()),$truthy(promise)?this.$reject(promise.$error()):this.$resolve($send(this.wait,"map",[],"value".$to_proc()))):nil},$When_try$47.$$arity=0),nil&&"try"}($nesting[0],self,$nesting)}($nesting[0],$nesting)}; +Opal.modules.promise=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$klass=Opal.klass,$defs=Opal.defs,$hash2=Opal.hash2,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$not=Opal.not,$send=Opal.send,$to_a=Opal.to_a,$rb_plus=Opal.rb_plus,$alias=Opal.alias,$send2=Opal.send2,$find_super=Opal.find_super,$rb_le=Opal.rb_le,$rb_minus=Opal.rb_minus,$const_set=Opal.const_set;return Opal.add_stubs("resolve,new,reject,attr_reader,===,value,key?,keys,!=,==,<<,>>,exception?,[],resolved?,rejected?,!,error,include?,action,realized?,raise,^,call,resolve!,exception!,any?,each,reject!,there_can_be_only_one!,then,to_proc,fail,always,trace,class,object_id,+,inspect,rescue,nil?,prev,act?,push,concat,it,proc,reverse,pop,<=,length,shift,-,wait,map,reduce,try,tap,all?,find"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Promise"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.value=$proto.action=$proto.exception=$proto.realized=$proto.next=$proto.delayed=$proto.error=$proto.prev=nil,$defs(self,"$value",(function(value){return this.$new().$resolve(value)}),1),$defs(self,"$error",(function(value){return this.$new().$reject(value)}),1),$defs(self,"$when",(function($a){var promises;return promises=Opal.slice.call(arguments),$$("When").$new(promises)}),-1),self.$attr_reader("error","prev","next"),$def(self,"$initialize",(function(action){return null==action&&(action=$hash2([],{})),this.action=action,this.realized=!1,this.exception=!1,this.value=nil,this.error=nil,this.delayed=!1,this.prev=nil,this.next=[]}),-1),$def(self,"$value",(function(){return $eqeqeq($$("Promise"),this.value)?this.value.$value():this.value}),0),$def(self,"$act?",(function(){var $ret_or_1;return $truthy($ret_or_1=this.action["$key?"]("success"))?$ret_or_1:this.action["$key?"]("always")}),0),$def(self,"$action",(function(){return this.action.$keys()}),0),$def(self,"$exception?",(function(){return this.exception}),0),$def(self,"$realized?",(function(){return this.realized["$!="](!1)}),0),$def(self,"$resolved?",(function(){return this.realized["$=="]("resolve")}),0),$def(self,"$rejected?",(function(){return this.realized["$=="]("reject")}),0),$def(self,"$^",(function(promise){return promise["$<<"](this),this["$>>"](promise),promise}),1),$def(self,"$<<",(function(promise){return this.prev=promise,this}),1),$def(self,"$>>",(function(promise){return this.next["$<<"](promise),$truthy(this["$exception?"]())?promise.$reject(this.delayed["$[]"](0)):$truthy(this["$resolved?"]())?promise.$resolve($truthy(this.delayed)?this.delayed["$[]"](0):this.$value()):$truthy(this["$rejected?"]())&&($not(this.action["$key?"]("failure"))||$eqeqeq($$("Promise"),$truthy(this.delayed)?this.delayed["$[]"](0):this.error)||$truthy(promise.$action()["$include?"]("always")))&&promise.$reject($truthy(this.delayed)?this.delayed["$[]"](0):this.$error()),this}),1),$def(self,"$resolve",(function(value){var block=nil,$ret_or_1=nil,e=nil;if(null==value&&(value=nil),$truthy(this["$realized?"]())&&this.$raise($$("ArgumentError"),"the promise has already been realized"),$eqeqeq($$("Promise"),value))return value["$<<"](this.prev)["$^"](this);try{block=$truthy($ret_or_1=this.action["$[]"]("success"))?$ret_or_1:this.action["$[]"]("always"),$truthy(block)&&(value=block.$call(value)),this["$resolve!"](value)}catch($err){if(!Opal.rescue($err,[$$("Exception")]))throw $err;e=$err;try{this["$exception!"](e)}finally{Opal.pop_exception()}}return this}),-1),$def(self,"$resolve!",(function(value){return this.realized="resolve",this.value=value,$truthy(this.next["$any?"]())?$send(this.next,"each",[],(function(p){return null==p&&(p=nil),p.$resolve(value)}),1):this.delayed=[value]}),1),$def(self,"$reject",(function(value){var block=nil,$ret_or_1=nil,e=nil;if(null==value&&(value=nil),$truthy(this["$realized?"]())&&this.$raise($$("ArgumentError"),"the promise has already been realized"),$eqeqeq($$("Promise"),value))return value["$<<"](this.prev)["$^"](this);try{block=$truthy($ret_or_1=this.action["$[]"]("failure"))?$ret_or_1:this.action["$[]"]("always"),$truthy(block)&&(value=block.$call(value)),$truthy(this.action["$key?"]("always"))?this["$resolve!"](value):this["$reject!"](value)}catch($err){if(!Opal.rescue($err,[$$("Exception")]))throw $err;e=$err;try{this["$exception!"](e)}finally{Opal.pop_exception()}}return this}),-1),$def(self,"$reject!",(function(value){return this.realized="reject",this.error=value,$truthy(this.next["$any?"]())?$send(this.next,"each",[],(function(p){return null==p&&(p=nil),p.$reject(value)}),1):this.delayed=[value]}),1),$def(self,"$exception!",(function(error){return this.exception=!0,this["$reject!"](error)}),1),$def(self,"$then",(function $$then(){var block=$$then.$$p||nil;return delete $$then.$$p,this["$^"]($$("Promise").$new($hash2(["success"],{success:block})))}),0),$def(self,"$then!",(function $Promise_then$excl$14(){var block=$Promise_then$excl$14.$$p||nil;return delete $Promise_then$excl$14.$$p,this["$there_can_be_only_one!"](),$send(this,"then",[],block.$to_proc())}),0),$def(self,"$fail",(function $$fail(){var block=$$fail.$$p||nil;return delete $$fail.$$p,this["$^"]($$("Promise").$new($hash2(["failure"],{failure:block})))}),0),$def(self,"$fail!",(function $Promise_fail$excl$15(){var block=$Promise_fail$excl$15.$$p||nil;return delete $Promise_fail$excl$15.$$p,this["$there_can_be_only_one!"](),$send(this,"fail",[],block.$to_proc())}),0),$def(self,"$always",(function $$always(){var block=$$always.$$p||nil;return delete $$always.$$p,this["$^"]($$("Promise").$new($hash2(["always"],{always:block})))}),0),$def(self,"$always!",(function $Promise_always$excl$16(){var block=$Promise_always$excl$16.$$p||nil;return delete $Promise_always$excl$16.$$p,this["$there_can_be_only_one!"](),$send(this,"always",[],block.$to_proc())}),0),$def(self,"$trace",(function $$trace(depth){var block=$$trace.$$p||nil;return delete $$trace.$$p,null==depth&&(depth=nil),this["$^"]($$("Trace").$new(depth,block))}),-1),$def(self,"$trace!",(function $Promise_trace$excl$17($a){var args,block=$Promise_trace$excl$17.$$p||nil,self=this;return delete $Promise_trace$excl$17.$$p,args=Opal.slice.call(arguments),self["$there_can_be_only_one!"](),$send(self,"trace",$to_a(args),block.$to_proc())}),-1),$def(self,"$there_can_be_only_one!",(function(){return $truthy(this.next["$any?"]())?this.$raise($$("ArgumentError"),"a promise has already been chained"):nil}),0),$def(self,"$inspect",(function(){var result=nil,$ret_or_1=nil;return result="#<"+this.$class()+"("+this.$object_id()+")",$truthy(this.next["$any?"]())&&(result=$rb_plus(result," >> "+this.next.$inspect())),result=$rb_plus(result,$truthy(this["$realized?"]())?": "+($truthy($ret_or_1=this.value)?$ret_or_1:this.error).$inspect()+">":">")}),0),$def(self,"$to_v2",(function(){var v2=nil;return v2=$$("PromiseV2").$new(),$send($send(this,"then",[],(function(i){return null==i&&(i=nil),v2.$resolve(i)}),1),"rescue",[],(function(i){return null==i&&(i=nil),v2.$reject(i)}),1),v2}),0),$alias(self,"catch","fail"),$alias(self,"catch!","fail!"),$alias(self,"do","then"),$alias(self,"do!","then!"),$alias(self,"ensure","always"),$alias(self,"ensure!","always!"),$alias(self,"finally","always"),$alias(self,"finally!","always!"),$alias(self,"rescue","fail"),$alias(self,"rescue!","fail!"),$alias(self,"to_n","to_v2"),$alias(self,"to_v1","itself"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"Trace"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$it",(function(promise){var prev,current=nil;return current=[],($truthy(promise["$act?"]())||$truthy(promise.$prev()["$nil?"]()))&¤t.$push(promise.$value()),prev=promise.$prev(),$truthy(prev)?current.$concat(this.$it(prev)):current}),1),$def(self,"$initialize",(function $$initialize(depth,block){return delete $$initialize.$$p,this.depth=depth,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[$hash2(["success"],{success:$send(this,"proc",[],(function $$21(){var self=null==$$21.$$s?this:$$21.$$s,trace=nil;return(trace=$$("Trace").$it(self).$reverse()).$pop(),$truthy(depth)&&$truthy($rb_le(depth,trace.$length()))&&trace.$shift($rb_minus(trace.$length(),depth)),$send(block,"call",$to_a(trace))}),{$$arity:0,$$s:this})})],null)}),2)}($nesting[0],self,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"When"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.wait=nil,$def(self,"$initialize",(function $$initialize(promises){return delete $$initialize.$$p,null==promises&&(promises=[]),$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[],null),this.wait=[],$send(promises,"each",[],(function $$22(promise){return null==promise&&(promise=nil),(null==$$22.$$s?this:$$22.$$s).$wait(promise)}),{$$arity:1,$$s:this})}),-1),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;return delete $$each.$$p,$truthy(block)||this.$raise($$("ArgumentError"),"no block given"),$send(this,"then",[],(function(values){return null==values&&(values=nil),$send(values,"each",[],block.$to_proc())}),1)}),0),$def(self,"$collect",(function $$collect(){var block=$$collect.$$p||nil;return delete $$collect.$$p,$truthy(block)||this.$raise($$("ArgumentError"),"no block given"),$send(this,"then",[],(function(values){return null==values&&(values=nil),$$("When").$new($send(values,"map",[],block.$to_proc()))}),1)}),0),$def(self,"$inject",(function $$inject($a){var $post_args,args,block=$$inject.$$p||nil,self=this;return delete $$inject.$$p,$post_args=Opal.slice.call(arguments),args=$post_args,$send(self,"then",[],(function(values){return null==values&&(values=nil),$send(values,"reduce",$to_a(args),block.$to_proc())}),1)}),-1),$def(self,"$wait",(function(promise){return $eqeqeq($$("Promise"),promise)||(promise=$$("Promise").$value(promise)),$truthy(promise["$act?"]())&&(promise=promise.$then()),this.wait["$<<"](promise),$send(promise,"always",[],(function $$26(){var self=null==$$26.$$s?this:$$26.$$s;return null==self.next&&(self.next=nil),$truthy(self.next["$any?"]())?self.$try():nil}),{$$arity:0,$$s:this}),this}),1),$def(self,"$>>",(function $When_$gt$gt$27($a){var $rest_arg,$yield=$When_$gt$gt$27.$$p||nil,self=this;return delete $When_$gt$gt$27.$$p,$rest_arg=Opal.slice.call(arguments),$send($send2(self,$find_super(self,">>",$When_$gt$gt$27,!1,!0),">>",$to_a($rest_arg),$yield),"tap",[],(function $$28(){return(null==$$28.$$s?this:$$28.$$s).$try()}),{$$arity:0,$$s:self})}),-1),$def(self,"$try",(function(){var promise=nil;return $truthy($send(this.wait,"all?",[],"realized?".$to_proc()))?(promise=$send(this.wait,"find",[],"rejected?".$to_proc()),$truthy(promise)?this.$reject(promise.$error()):this.$resolve($send(this.wait,"map",[],"value".$to_proc()))):nil}),0),$alias(self,"map","collect"),$alias(self,"reduce","inject"),$alias(self,"and","wait")}($nesting[0],self,$nesting)}($nesting[0],0,$nesting),$const_set($nesting[0],"PromiseV1",$$("Promise"))}; diff --git a/opal/master/promise.min.js.gz b/opal/master/promise.min.js.gz index bc29fccd..13d64dc4 100644 Binary files a/opal/master/promise.min.js.gz and b/opal/master/promise.min.js.gz differ diff --git a/opal/master/quickjs.js b/opal/master/quickjs.js new file mode 100644 index 00000000..542c4ac0 --- /dev/null +++ b/opal/master/quickjs.js @@ -0,0 +1,42 @@ +Opal.modules["quickjs/io"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var nil = Opal.nil; + + + Opal.gvars.stdout.write_proc = function(s) { + std.out.printf("%s", s); + std.out.flush(); + } + + Opal.gvars.stderr.write_proc = function(s) { + std.err.printf("%s", s); + std.err.flush(); + } + + Opal.gvars.stdin.read_proc = function(s) { + if (std.in.eof()) { + return nil; + } + else { + return std.in.readAsString(s); + } + } + +}; + +Opal.modules["quickjs/kernel"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $const_set = Opal.const_set; + + + $const_set($nesting[0], 'ARGV', scriptArgs); + return Opal.exit = std.exit;; +}; + +Opal.modules["quickjs"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; + + Opal.add_stubs('require'); + + /* global std, scriptArgs */; + self.$require("quickjs/io"); + return self.$require("quickjs/kernel"); +}; diff --git a/opal/master/quickjs.min.js b/opal/master/quickjs.min.js new file mode 100644 index 00000000..46c53587 --- /dev/null +++ b/opal/master/quickjs.min.js @@ -0,0 +1 @@ +Opal.modules["quickjs/io"]=function(Opal){var nil=Opal.nil;Opal.gvars.stdout.write_proc=function(s){std.out.printf("%s",s),std.out.flush()},Opal.gvars.stderr.write_proc=function(s){std.err.printf("%s",s),std.err.flush()},Opal.gvars.stdin.read_proc=function(s){return std.in.eof()?nil:std.in.readAsString(s)}},Opal.modules["quickjs/kernel"]=function(Opal){Opal.nil;return(0,Opal.const_set)([][0],"ARGV",scriptArgs),Opal.exit=std.exit},Opal.modules.quickjs=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("require"),self.$require("quickjs/io"),self.$require("quickjs/kernel")}; diff --git a/opal/master/quickjs.min.js.gz b/opal/master/quickjs.min.js.gz new file mode 100644 index 00000000..01d8ed11 Binary files /dev/null and b/opal/master/quickjs.min.js.gz differ diff --git a/opal/master/rbconfig.js b/opal/master/rbconfig.js index 5598019f..b557166c 100644 --- a/opal/master/rbconfig.js +++ b/opal/master/rbconfig.js @@ -1,17 +1,16 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["rbconfig"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2; +Opal.modules["rbconfig"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $const_set = Opal.const_set, $hash2 = Opal.hash2; - Opal.add_stubs(['$split', '$[]']); + Opal.add_stubs('split,[]'); (function($base, $parent_nesting) { var self = $module($base, 'RbConfig'); - var $nesting = [self].concat($parent_nesting), versions = nil; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), versions = nil; - versions = $$($nesting, 'RUBY_VERSION').$split("."); - return Opal.const_set($nesting[0], 'CONFIG', $hash2(["ruby_version", "MAJOR", "MINOR", "TEENY", "RUBY", "RUBY_INSTALL_NAME", "RUBY_SO_NAME", "target_os", "host_os", "PATH_SEPARATOR"], {"ruby_version": $$($nesting, 'RUBY_VERSION'), "MAJOR": versions['$[]'](0), "MINOR": versions['$[]'](1), "TEENY": versions['$[]'](2), "RUBY": $$($nesting, 'RUBY_ENGINE'), "RUBY_INSTALL_NAME": $$($nesting, 'RUBY_ENGINE'), "RUBY_SO_NAME": $$($nesting, 'RUBY_ENGINE'), "target_os": "ECMA-262", "host_os": "ECMA-262", "PATH_SEPARATOR": ":"})); + versions = $$('RUBY_VERSION').$split("."); + return $const_set($nesting[0], 'CONFIG', $hash2(["ruby_version", "MAJOR", "MINOR", "TEENY", "RUBY", "RUBY_INSTALL_NAME", "RUBY_SO_NAME", "target_os", "host_os", "PATH_SEPARATOR"], {"ruby_version": $$('RUBY_VERSION'), "MAJOR": versions['$[]'](0), "MINOR": versions['$[]'](1), "TEENY": versions['$[]'](2), "RUBY": $$('RUBY_ENGINE'), "RUBY_INSTALL_NAME": $$('RUBY_ENGINE'), "RUBY_SO_NAME": $$('RUBY_ENGINE'), "target_os": "ECMA-262", "host_os": "ECMA-262", "PATH_SEPARATOR": ":"})); })($nesting[0], $nesting); - return Opal.const_set($nesting[0], 'RUBY_EXE', "bundle exec exe/opal"); + return $const_set($nesting[0], 'RUBY_EXE', "bundle exec exe/opal"); }; diff --git a/opal/master/rbconfig.min.js b/opal/master/rbconfig.min.js index 6c171ec6..463453a3 100644 --- a/opal/master/rbconfig.min.js +++ b/opal/master/rbconfig.min.js @@ -1 +1 @@ -Opal.modules.rbconfig=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$hash2=Opal.hash2;return Opal.add_stubs(["$split","$[]"]),function($nesting,versions){$nesting=[$module($nesting,"RbConfig")].concat(versions),versions=nil,versions=$$($nesting,"RUBY_VERSION").$split("."),Opal.const_set($nesting[0],"CONFIG",$hash2(["ruby_version","MAJOR","MINOR","TEENY","RUBY","RUBY_INSTALL_NAME","RUBY_SO_NAME","target_os","host_os","PATH_SEPARATOR"],{ruby_version:$$($nesting,"RUBY_VERSION"),MAJOR:versions["$[]"](0),MINOR:versions["$[]"](1),TEENY:versions["$[]"](2),RUBY:$$($nesting,"RUBY_ENGINE"),RUBY_INSTALL_NAME:$$($nesting,"RUBY_ENGINE"),RUBY_SO_NAME:$$($nesting,"RUBY_ENGINE"),target_os:"ECMA-262",host_os:"ECMA-262",PATH_SEPARATOR:":"}))}($nesting[0],$nesting),Opal.const_set($nesting[0],"RUBY_EXE","bundle exec exe/opal")}; +Opal.modules.rbconfig=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$const_set=Opal.const_set,$hash2=Opal.hash2;return Opal.add_stubs("split,[]"),function($base,$parent_nesting){var $nesting=[$module($base,"RbConfig")].concat($parent_nesting),$$=Opal.$r($nesting),versions=nil;versions=$$("RUBY_VERSION").$split("."),$const_set($nesting[0],"CONFIG",$hash2(["ruby_version","MAJOR","MINOR","TEENY","RUBY","RUBY_INSTALL_NAME","RUBY_SO_NAME","target_os","host_os","PATH_SEPARATOR"],{ruby_version:$$("RUBY_VERSION"),MAJOR:versions["$[]"](0),MINOR:versions["$[]"](1),TEENY:versions["$[]"](2),RUBY:$$("RUBY_ENGINE"),RUBY_INSTALL_NAME:$$("RUBY_ENGINE"),RUBY_SO_NAME:$$("RUBY_ENGINE"),target_os:"ECMA-262",host_os:"ECMA-262",PATH_SEPARATOR:":"}))}($nesting[0],$nesting),$const_set($nesting[0],"RUBY_EXE","bundle exec exe/opal")}; diff --git a/opal/master/rbconfig.min.js.gz b/opal/master/rbconfig.min.js.gz index 1dd24ec0..5735aa64 100644 Binary files a/opal/master/rbconfig.min.js.gz and b/opal/master/rbconfig.min.js.gz differ diff --git a/opal/master/securerandom.js b/opal/master/securerandom.js index e99ffd2e..7a19660f 100644 --- a/opal/master/securerandom.js +++ b/opal/master/securerandom.js @@ -1,15 +1,198 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["securerandom"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; +Opal.modules["corelib/random/formatter"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $module = Opal.module, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $range = Opal.range, $rb_divide = Opal.rb_divide, $Kernel = Opal.Kernel, $Opal = Opal.Opal; - Opal.add_stubs(['$extend', '$warn', '$rand', '$gen_random', '$_verify_count', '$encode']); + Opal.add_stubs('_verify_count,bytes,encode,strict_encode64,random_bytes,urlsafe_encode64,split,hex,[]=,-,[],map,to_proc,join,times,<<,|,ord,/,abs,random_float,raise,coerce_to!,flatten,new,random_number,length,include,extend'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Random'); + + var $nesting = [self].concat($parent_nesting); + + + (function($base, $parent_nesting) { + var self = $module($base, 'Formatter'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$hex', function $$hex(count) { + var self = this; + + + + if (count == null) count = nil;; + count = $$$('Random').$_verify_count(count); + + var bytes = self.$bytes(count); + var out = ""; + for (var i = 0; i < count; i++) { + out += bytes.charCodeAt(i).toString(16).padStart(2, '0'); + } + return (out).$encode("US-ASCII"); + ; + }, -1); + + $def(self, '$random_bytes', function $$random_bytes(count) { + var self = this; + + + + if (count == null) count = nil;; + return self.$bytes(count); + }, -1); + + $def(self, '$base64', function $$base64(count) { + var self = this; + + + + if (count == null) count = nil;; + return $$$('Base64').$strict_encode64(self.$random_bytes(count)).$encode("US-ASCII"); + }, -1); + + $def(self, '$urlsafe_base64', function $$urlsafe_base64(count, padding) { + var self = this; + + + + if (count == null) count = nil;; + + if (padding == null) padding = false;; + return $$$('Base64').$urlsafe_encode64(self.$random_bytes(count), padding).$encode("US-ASCII"); + }, -1); + + $def(self, '$uuid', function $$uuid() { + var self = this, str = nil, $writer = nil; + + + str = self.$hex(16).$split(""); + + $writer = [12, "4"]; + $send(str, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [16, (parseInt(str['$[]'](16), 16) & 3 | 8).toString(16)]; + $send(str, '[]=', $to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + str = [str['$[]']($range(0, 8, true)), str['$[]']($range(8, 12, true)), str['$[]']($range(12, 16, true)), str['$[]']($range(16, 20, true)), str['$[]']($range(20, 32, true))]; + str = $send(str, 'map', [], "join".$to_proc()); + return str.$join("-"); + }, 0); + + $def(self, '$random_float', function $$random_float() { + var self = this, bs = nil, num = nil; + + + bs = self.$bytes(4); + num = 0; + $send((4), 'times', [], function $$1(i){ + + + if (i == null) i = nil;; + num = num['$<<'](8); + return (num = num['$|'](bs['$[]'](i).$ord()));}, 1); + return $rb_divide(num.$abs(), 2147483647); + }, 0); + + $def(self, '$random_number', function $$random_number(limit) { + var self = this; + + + ; + + function randomFloat() { + return self.$random_float(); + } + + function randomInt(max) { + return Math.floor(randomFloat() * max); + } + + function randomRange() { + var min = limit.begin, + max = limit.end; + + if (min === nil || max === nil) { + return nil; + } + + var length = max - min; + + if (length < 0) { + return nil; + } + + if (length === 0) { + return min; + } + + if (max % 1 === 0 && min % 1 === 0 && !limit.excl) { + length++; + } + + return randomInt(length) + min; + } + + if (limit == null) { + return randomFloat(); + } else if (limit.$$is_range) { + return randomRange(); + } else if (limit.$$is_number) { + if (limit <= 0) { + $Kernel.$raise($$$('ArgumentError'), "invalid argument - " + (limit)) + } + + if (limit % 1 === 0) { + // integer + return randomInt(limit); + } else { + return randomFloat() * limit; + } + } else { + limit = $Opal['$coerce_to!'](limit, $$$('Integer'), "to_int"); + + if (limit <= 0) { + $Kernel.$raise($$$('ArgumentError'), "invalid argument - " + (limit)) + } + + return randomInt(limit); + } + ; + }, -1); + return $def(self, '$alphanumeric', function $$alphanumeric(count) { + var self = this, map = nil; + + + + if (count == null) count = nil;; + count = $$('Random').$_verify_count(count); + map = $send([$range("0", "9", false), $range("a", "z", false), $range("A", "Z", false)], 'map', [], "to_a".$to_proc()).$flatten(); + return $send($$$('Array'), 'new', [count], function $$2(i){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (i == null) i = nil;; + return map['$[]'](self.$random_number(map.$length()));}, {$$arity: 1, $$s: self}).$join(); + }, -1); + })(self, $nesting); + self.$include($$$($$$('Random'), 'Formatter')); + return self.$extend($$$($$$('Random'), 'Formatter')); + })('::', null, $nesting) +}; + +Opal.modules["securerandom"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $module = Opal.module, $defs = Opal.defs; + + Opal.add_stubs('require,extend,warn,rand,gen_random,_verify_count,encode'); + + self.$require("corelib/random/formatter"); return (function($base, $parent_nesting) { var self = $module($base, 'SecureRandom'); - var $nesting = [self].concat($parent_nesting), $SecureRandom_bytes$1, $SecureRandom_gen_random$2; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - self.$extend($$$($$($nesting, 'Random'), 'Formatter')); + self.$extend($$$($$('Random'), 'Formatter')); var gen_random_bytes; @@ -40,7 +223,7 @@ Opal.modules["securerandom"] = function(Opal) { // It's possible to interface other libraries by adding an else if above if // that's really desired. - self.$warn("" + "Can't get a Crypto.getRandomValues interface or Crypto.randomBytes." + "The random values generated with SecureRandom won't be " + "cryptographically secure") + self.$warn("Can't get a Crypto.getRandomValues interface or Crypto.randomBytes." + "The random values generated with SecureRandom won't be " + "cryptographically secure") gen_random_bytes = function(count) { var storage = new Uint8Array(count); @@ -52,25 +235,21 @@ Opal.modules["securerandom"] = function(Opal) { } } ; - Opal.defs(self, '$bytes', $SecureRandom_bytes$1 = function $$bytes(bytes) { + $defs(self, '$bytes', function $$bytes(bytes) { var self = this; - if (bytes == null) { - bytes = nil; - }; + if (bytes == null) bytes = nil;; return self.$gen_random(bytes); - }, $SecureRandom_bytes$1.$$arity = -1); - return (Opal.defs(self, '$gen_random', $SecureRandom_gen_random$2 = function $$gen_random(count) { - var self = this, out = nil; + }, -1); + return $defs(self, '$gen_random', function $$gen_random(count) { + var out = nil; - if (count == null) { - count = nil; - }; - count = $$($nesting, 'Random').$_verify_count(count); + if (count == null) count = nil;; + count = $$('Random').$_verify_count(count); out = ""; var bytes = gen_random_bytes(count); @@ -79,6 +258,6 @@ Opal.modules["securerandom"] = function(Opal) { } ; return out.$encode("ASCII-8BIT"); - }, $SecureRandom_gen_random$2.$$arity = -1), nil) && 'gen_random'; - })($nesting[0], $nesting) + }, -1); + })($nesting[0], $nesting); }; diff --git a/opal/master/securerandom.min.js b/opal/master/securerandom.min.js index bdd16f01..aea53837 100644 --- a/opal/master/securerandom.min.js +++ b/opal/master/securerandom.min.js @@ -1 +1 @@ -Opal.modules.securerandom=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module;return Opal.add_stubs(["$extend","$warn","$rand","$gen_random","$_verify_count","$encode"]),function($base,$SecureRandom_gen_random$2){var crypto,gen_random_bytes,self=$module($base,"SecureRandom"),$nesting=[self].concat($SecureRandom_gen_random$2);return self.$extend($$$($$($nesting,"Random"),"Formatter")),gen_random_bytes=Opal.global.crypto&&Opal.global.crypto.getRandomValues||Opal.global.msCrypto&&Opal.global.msCrypto.getRandomValues?(crypto=Opal.global.crypto||Opal.global.msCrypto,function(storage){storage=new Uint8Array(storage);return crypto.getRandomValues(storage),storage}):Opal.global.crypto&&Opal.global.crypto.randomBytes?function(count){return Opal.global.crypto.randomBytes(count)}:(self.$warn("Can't get a Crypto.getRandomValues interface or Crypto.randomBytes.The random values generated with SecureRandom won't be cryptographically secure"),function(count){for(var storage=new Uint8Array(count),i=0;i>self.$rand(255)&255;return storage}),Opal.defs(self,"$bytes",$SecureRandom_gen_random$2=function(bytes){return null==bytes&&(bytes=nil),this.$gen_random(bytes)},$SecureRandom_gen_random$2.$$arity=-1),Opal.defs(self,"$gen_random",$SecureRandom_gen_random$2=function(count){var out=nil;null==count&&(count=nil),count=$$($nesting,"Random").$_verify_count(count),out="";for(var bytes=gen_random_bytes(count),i=0;i>self.$rand(255)&255;return storage});return $defs(self,"$bytes",(function(bytes){return null==bytes&&(bytes=nil),this.$gen_random(bytes)}),-1),$defs(self,"$gen_random",(function(count){var out=nil;null==count&&(count=nil),count=$$("Random").$_verify_count(count),out="";for(var bytes=gen_random_bytes(count),i=0;i" - }, $Set_inspect$6.$$arity = 0); + return "#" + }, 0); - Opal.def(self, '$==', $Set_$eq_eq$7 = function(other) { - var $$8, self = this, $ret_or_1 = nil; + $def(self, '$==', function $Set_$eq_eq$4(other) { + var self = this; if ($truthy(self['$equal?'](other))) { return true } else if ($truthy(other['$instance_of?'](self.$class()))) { return self.hash['$=='](other.$instance_variable_get("@hash")) - } else if ($truthy((function() {if ($truthy(($ret_or_1 = other['$is_a?']($$($nesting, 'Set'))))) { - return self.$size()['$=='](other.$size()) - } else { - return $ret_or_1 - }; return nil; })())) { - return $send(other, 'all?', [], ($$8 = function(o){var self = $$8.$$s == null ? this : $$8.$$s; + } else if (($truthy(other['$is_a?']($$$('Set'))) && ($eqeq(self.$size(), other.$size())))) { + return $send(other, 'all?', [], function $$5(o){var self = $$5.$$s == null ? this : $$5.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash['$include?'](o);}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + if (o == null) o = nil;; + return self.hash['$include?'](o);}, {$$arity: 1, $$s: self}) } else { return false } - }, $Set_$eq_eq$7.$$arity = 1); + }, 1); - Opal.def(self, '$add', $Set_add$9 = function $$add(o) { + $def(self, '$add', function $$add(o) { var self = this, $writer = nil; $writer = [o, true]; - $send(self.hash, '[]=', Opal.to_a($writer)); + $send(self.hash, '[]=', $to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self; - }, $Set_add$9.$$arity = 1); - $alias(self, "<<", "add"); + }, 1); - Opal.def(self, '$classify', $Set_classify$10 = function $$classify() { - var $iter = $Set_classify$10.$$p, block = $iter || nil, $$11, $$12, self = this, result = nil; + $def(self, '$classify', function $$classify() { + var block = $$classify.$$p || nil, self = this, result = nil; - if ($iter) $Set_classify$10.$$p = null; + delete $$classify.$$p; - - if ($iter) $Set_classify$10.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("classify") }; - result = $send($$($nesting, 'Hash'), 'new', [], ($$11 = function(h, k){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; + result = $send($$$('Hash'), 'new', [], function $$6(h, k){var self = $$6.$$s == null ? this : $$6.$$s, $writer = nil; - if (h == null) { - h = nil; - }; + if (h == null) h = nil;; - if (k == null) { - k = nil; - }; + if (k == null) k = nil;; $writer = [k, self.$class().$new()]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, $$11.$$s = self, $$11.$$arity = 2, $$11)); - $send(self, 'each', [], ($$12 = function(item){var self = $$12.$$s == null ? this : $$12.$$s; - + $send(h, '[]=', $to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, {$$arity: 2, $$s: self}); + $send(self, 'each', [], function $$7(item){ - if (item == null) { - item = nil; - }; - return result['$[]'](Opal.yield1(block, item)).$add(item);}, $$12.$$s = self, $$12.$$arity = 1, $$12)); + if (item == null) item = nil;; + return result['$[]'](Opal.yield1(block, item)).$add(item);}, 1); return result; - }, $Set_classify$10.$$arity = 0); + }, 0); - Opal.def(self, '$collect!', $Set_collect$excl$13 = function() { - var $iter = $Set_collect$excl$13.$$p, block = $iter || nil, $$14, self = this, result = nil; + $def(self, '$collect!', function $Set_collect$excl$8() { + var block = $Set_collect$excl$8.$$p || nil, self = this, result = nil; - if ($iter) $Set_collect$excl$13.$$p = null; + delete $Set_collect$excl$8.$$p; - - if ($iter) $Set_collect$excl$13.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("collect!") }; result = self.$class().$new(); - $send(self, 'each', [], ($$14 = function(item){var self = $$14.$$s == null ? this : $$14.$$s; - + $send(self, 'each', [], function $$9(item){ - if (item == null) { - item = nil; - }; - return result['$<<'](Opal.yield1(block, item));}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + if (item == null) item = nil;; + return result['$<<'](Opal.yield1(block, item));}, 1); return self.$replace(result); - }, $Set_collect$excl$13.$$arity = 0); - $alias(self, "map!", "collect!"); + }, 0); - Opal.def(self, '$delete', $Set_delete$15 = function(o) { + $def(self, '$delete', function $Set_delete$10(o) { var self = this; self.hash.$delete(o); return self; - }, $Set_delete$15.$$arity = 1); + }, 1); - Opal.def(self, '$delete?', $Set_delete$ques$16 = function(o) { + $def(self, '$delete?', function $Set_delete$ques$11(o) { var self = this; if ($truthy(self['$include?'](o))) { @@ -206,106 +167,89 @@ Opal.modules["set"] = function(Opal) { } else { return nil } - }, $Set_delete$ques$16.$$arity = 1); + }, 1); - Opal.def(self, '$delete_if', $Set_delete_if$17 = function $$delete_if() { - var $$18, $$19, $iter = $Set_delete_if$17.$$p, $yield = $iter || nil, self = this; + $def(self, '$delete_if', function $$delete_if() { + var $yield = $$delete_if.$$p || nil, self = this; - if ($iter) $Set_delete_if$17.$$p = null; + delete $$delete_if.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$enum_for("delete_if") }; - $send($send(self, 'select', [], ($$18 = function(o){var self = $$18.$$s == null ? this : $$18.$$s; - + $send($send(self, 'select', [], function $$12(o){ - if (o == null) { - o = nil; - }; - return Opal.yield1($yield, o);;}, $$18.$$s = self, $$18.$$arity = 1, $$18)), 'each', [], ($$19 = function(o){var self = $$19.$$s == null ? this : $$19.$$s; + if (o == null) o = nil;; + return Opal.yield1($yield, o);;}, 1), 'each', [], function $$13(o){var self = $$13.$$s == null ? this : $$13.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash.$delete(o);}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + if (o == null) o = nil;; + return self.hash.$delete(o);}, {$$arity: 1, $$s: self}); return self; - }, $Set_delete_if$17.$$arity = 0); + }, 0); - Opal.def(self, '$keep_if', $Set_keep_if$20 = function $$keep_if() { - var $$21, $$22, $iter = $Set_keep_if$20.$$p, $yield = $iter || nil, self = this; + $def(self, '$keep_if', function $$keep_if() { + var $yield = $$keep_if.$$p || nil, self = this; - if ($iter) $Set_keep_if$20.$$p = null; + delete $$keep_if.$$p; - if (($yield !== nil)) { - } else { + if (!($yield !== nil)) { return self.$enum_for("keep_if") }; - $send($send(self, 'reject', [], ($$21 = function(o){var self = $$21.$$s == null ? this : $$21.$$s; - + $send($send(self, 'reject', [], function $$14(o){ - if (o == null) { - o = nil; - }; - return Opal.yield1($yield, o);;}, $$21.$$s = self, $$21.$$arity = 1, $$21)), 'each', [], ($$22 = function(o){var self = $$22.$$s == null ? this : $$22.$$s; + if (o == null) o = nil;; + return Opal.yield1($yield, o);;}, 1), 'each', [], function $$15(o){var self = $$15.$$s == null ? this : $$15.$$s; if (self.hash == null) self.hash = nil; - if (o == null) { - o = nil; - }; - return self.hash.$delete(o);}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + if (o == null) o = nil;; + return self.hash.$delete(o);}, {$$arity: 1, $$s: self}); return self; - }, $Set_keep_if$20.$$arity = 0); + }, 0); - Opal.def(self, '$reject!', $Set_reject$excl$23 = function() { - var $iter = $Set_reject$excl$23.$$p, block = $iter || nil, self = this, before = nil; + $def(self, '$reject!', function $Set_reject$excl$16() { + var block = $Set_reject$excl$16.$$p || nil, self = this, before = nil; - if ($iter) $Set_reject$excl$23.$$p = null; - + delete $Set_reject$excl$16.$$p; - if ($iter) $Set_reject$excl$23.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("reject!") }; before = self.$size(); $send(self, 'delete_if', [], block.$to_proc()); - if (self.$size()['$=='](before)) { + if ($eqeq(self.$size(), before)) { return nil } else { return self }; - }, $Set_reject$excl$23.$$arity = 0); + }, 0); - Opal.def(self, '$select!', $Set_select$excl$24 = function() { - var $iter = $Set_select$excl$24.$$p, block = $iter || nil, self = this, before = nil; + $def(self, '$select!', function $Set_select$excl$17() { + var block = $Set_select$excl$17.$$p || nil, self = this, before = nil; - if ($iter) $Set_select$excl$24.$$p = null; + delete $Set_select$excl$17.$$p; - - if ($iter) $Set_select$excl$24.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("select!") }; before = self.$size(); $send(self, 'keep_if', [], block.$to_proc()); - if (self.$size()['$=='](before)) { + if ($eqeq(self.$size(), before)) { return nil } else { return self }; - }, $Set_select$excl$24.$$arity = 0); - $alias(self, "filter!", "select!"); + }, 0); - Opal.def(self, '$add?', $Set_add$ques$25 = function(o) { + $def(self, '$add?', function $Set_add$ques$18(o) { var self = this; if ($truthy(self['$include?'](o))) { @@ -313,265 +257,232 @@ Opal.modules["set"] = function(Opal) { } else { return self.$add(o) } - }, $Set_add$ques$25.$$arity = 1); + }, 1); - Opal.def(self, '$each', $Set_each$26 = function $$each() { - var $iter = $Set_each$26.$$p, block = $iter || nil, self = this; + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Set_each$26.$$p = null; - + delete $$each.$$p; - if ($iter) $Set_each$26.$$p = null;; - if ((block !== nil)) { - } else { + ; + if (!(block !== nil)) { return self.$enum_for("each") }; $send(self.hash, 'each_key', [], block.$to_proc()); return self; - }, $Set_each$26.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $Set_empty$ques$27 = function() { + $def(self, '$empty?', function $Set_empty$ques$19() { var self = this; return self.hash['$empty?']() - }, $Set_empty$ques$27.$$arity = 0); + }, 0); - Opal.def(self, '$eql?', $Set_eql$ques$28 = function(other) { - var $$29, self = this; + $def(self, '$eql?', function $Set_eql$ques$20(other) { + var self = this; - return self.hash['$eql?']($send(other, 'instance_eval', [], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; + return self.hash['$eql?']($send(other, 'instance_eval', [], function $$21(){var self = $$21.$$s == null ? this : $$21.$$s; if (self.hash == null) self.hash = nil; - return self.hash}, $$29.$$s = self, $$29.$$arity = 0, $$29))) - }, $Set_eql$ques$28.$$arity = 1); + return self.hash}, {$$arity: 0, $$s: self})) + }, 1); - Opal.def(self, '$clear', $Set_clear$30 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; self.hash.$clear(); return self; - }, $Set_clear$30.$$arity = 0); + }, 0); - Opal.def(self, '$include?', $Set_include$ques$31 = function(o) { + $def(self, '$include?', function $Set_include$ques$22(o) { var self = this; return self.hash['$include?'](o) - }, $Set_include$ques$31.$$arity = 1); - $alias(self, "member?", "include?"); + }, 1); - Opal.def(self, '$merge', $Set_merge$32 = function $$merge(enum$) { - var $$33, self = this; + $def(self, '$merge', function $$merge(enum$) { + var self = this; - $send(enum$, 'each', [], ($$33 = function(item){var self = $$33.$$s == null ? this : $$33.$$s; + $send(enum$, 'each', [], function $$23(item){var self = $$23.$$s == null ? this : $$23.$$s; - if (item == null) { - item = nil; - }; - return self.$add(item);}, $$33.$$s = self, $$33.$$arity = 1, $$33)); + if (item == null) item = nil;; + return self.$add(item);}, {$$arity: 1, $$s: self}); return self; - }, $Set_merge$32.$$arity = 1); + }, 1); - Opal.def(self, '$replace', $Set_replace$34 = function $$replace(enum$) { + $def(self, '$replace', function $$replace(enum$) { var self = this; self.$clear(); self.$merge(enum$); return self; - }, $Set_replace$34.$$arity = 1); + }, 1); - Opal.def(self, '$size', $Set_size$35 = function $$size() { + $def(self, '$size', function $$size() { var self = this; return self.hash.$size() - }, $Set_size$35.$$arity = 0); - $alias(self, "length", "size"); + }, 0); - Opal.def(self, '$subtract', $Set_subtract$36 = function $$subtract(enum$) { - var $$37, self = this; + $def(self, '$subtract', function $$subtract(enum$) { + var self = this; - $send(enum$, 'each', [], ($$37 = function(item){var self = $$37.$$s == null ? this : $$37.$$s; + $send(enum$, 'each', [], function $$24(item){var self = $$24.$$s == null ? this : $$24.$$s; - if (item == null) { - item = nil; - }; - return self.$delete(item);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + if (item == null) item = nil;; + return self.$delete(item);}, {$$arity: 1, $$s: self}); return self; - }, $Set_subtract$36.$$arity = 1); + }, 1); - Opal.def(self, '$|', $Set_$$38 = function(enum$) { + $def(self, '$|', function $Set_$$25(enum$) { var self = this; - if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + if (!$truthy(enum$['$respond_to?']("each"))) { + $Kernel.$raise($$$('ArgumentError'), "value must be enumerable") }; return self.$dup().$merge(enum$); - }, $Set_$$38.$$arity = 1); + }, 1); + + function is_set(set) { + ($truthy(($ret_or_1 = (set)['$is_a?']($$$('Set')))) ? ($ret_or_1) : ($Kernel.$raise($$$('ArgumentError'), "value must be a set"))) + } + ; - Opal.def(self, '$superset?', $Set_superset$ques$39 = function(set) { - var $$40, self = this, $ret_or_2 = nil; + $def(self, '$superset?', function $Set_superset$ques$26(set) { + var self = this; - if ($truthy(($ret_or_2 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_2 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(self.$size(), set.$size()))) { - return false}; - return $send(set, 'all?', [], ($$40 = function(o){var self = $$40.$$s == null ? this : $$40.$$s; + return false + }; + return $send(set, 'all?', [], function $$27(o){var self = $$27.$$s == null ? this : $$27.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$40.$$s = self, $$40.$$arity = 1, $$40)); - }, $Set_superset$ques$39.$$arity = 1); - $alias(self, ">=", "superset?"); + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}); + }, 1); - Opal.def(self, '$proper_superset?', $Set_proper_superset$ques$41 = function(set) { - var $$42, self = this, $ret_or_3 = nil; + $def(self, '$proper_superset?', function $Set_proper_superset$ques$28(set) { + var self = this; - if ($truthy(($ret_or_3 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_3 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_le(self.$size(), set.$size()))) { - return false}; - return $send(set, 'all?', [], ($$42 = function(o){var self = $$42.$$s == null ? this : $$42.$$s; + return false + }; + return $send(set, 'all?', [], function $$29(o){var self = $$29.$$s == null ? this : $$29.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$42.$$s = self, $$42.$$arity = 1, $$42)); - }, $Set_proper_superset$ques$41.$$arity = 1); - $alias(self, ">", "proper_superset?"); + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}); + }, 1); - Opal.def(self, '$subset?', $Set_subset$ques$43 = function(set) { - var $$44, self = this, $ret_or_4 = nil; + $def(self, '$subset?', function $Set_subset$ques$30(set) { + var self = this; - if ($truthy(($ret_or_4 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_4 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(set.$size(), self.$size()))) { - return false}; - return $send(self, 'all?', [], ($$44 = function(o){var self = $$44.$$s == null ? this : $$44.$$s; - + return false + }; + return $send(self, 'all?', [], function $$31(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$44.$$s = self, $$44.$$arity = 1, $$44)); - }, $Set_subset$ques$43.$$arity = 1); - $alias(self, "<=", "subset?"); + if (o == null) o = nil;; + return set['$include?'](o);}, 1); + }, 1); - Opal.def(self, '$proper_subset?', $Set_proper_subset$ques$45 = function(set) { - var $$46, self = this, $ret_or_5 = nil; + $def(self, '$proper_subset?', function $Set_proper_subset$ques$32(set) { + var self = this; - if ($truthy(($ret_or_5 = set['$is_a?']($$($nesting, 'Set'))))) { - $ret_or_5 - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_le(set.$size(), self.$size()))) { - return false}; - return $send(self, 'all?', [], ($$46 = function(o){var self = $$46.$$s == null ? this : $$46.$$s; - + return false + }; + return $send(self, 'all?', [], function $$33(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$46.$$s = self, $$46.$$arity = 1, $$46)); - }, $Set_proper_subset$ques$45.$$arity = 1); - $alias(self, "<", "proper_subset?"); + if (o == null) o = nil;; + return set['$include?'](o);}, 1); + }, 1); - Opal.def(self, '$intersect?', $Set_intersect$ques$47 = function(set) { - var $$48, $$49, self = this; + $def(self, '$intersect?', function $Set_intersect$ques$34(set) { + var self = this; - if ($truthy(set['$is_a?']($$($nesting, 'Set')))) { - } else { - self.$raise($$($nesting, 'ArgumentError'), "value must be a set") - }; + is_set(set); if ($truthy($rb_lt(self.$size(), set.$size()))) { - return $send(self, 'any?', [], ($$48 = function(o){var self = $$48.$$s == null ? this : $$48.$$s; - + return $send(self, 'any?', [], function $$35(o){ - if (o == null) { - o = nil; - }; - return set['$include?'](o);}, $$48.$$s = self, $$48.$$arity = 1, $$48)) + if (o == null) o = nil;; + return set['$include?'](o);}, 1) } else { - return $send(set, 'any?', [], ($$49 = function(o){var self = $$49.$$s == null ? this : $$49.$$s; + return $send(set, 'any?', [], function $$36(o){var self = $$36.$$s == null ? this : $$36.$$s; - if (o == null) { - o = nil; - }; - return self['$include?'](o);}, $$49.$$s = self, $$49.$$arity = 1, $$49)) + if (o == null) o = nil;; + return self['$include?'](o);}, {$$arity: 1, $$s: self}) }; - }, $Set_intersect$ques$47.$$arity = 1); + }, 1); - Opal.def(self, '$disjoint?', $Set_disjoint$ques$50 = function(set) { + $def(self, '$disjoint?', function $Set_disjoint$ques$37(set) { var self = this; return self['$intersect?'](set)['$!']() - }, $Set_disjoint$ques$50.$$arity = 1); - $alias(self, "+", "|"); - $alias(self, "union", "|"); - return (Opal.def(self, '$to_a', $Set_to_a$51 = function $$to_a() { + }, 1); + + $def(self, '$to_a', function $$to_a() { var self = this; return self.hash.$keys() - }, $Set_to_a$51.$$arity = 0), nil) && 'to_a'; - })($nesting[0], null, $nesting); + }, 0); + $alias(self, "+", "|"); + $alias(self, "<", "proper_subset?"); + $alias(self, "<<", "add"); + $alias(self, "<=", "subset?"); + $alias(self, ">", "proper_superset?"); + $alias(self, ">=", "superset?"); + $alias(self, "difference", "-"); + $alias(self, "filter!", "select!"); + $alias(self, "length", "size"); + $alias(self, "map!", "collect!"); + $alias(self, "member?", "include?"); + return $alias(self, "union", "|"); + })('::', null); return (function($base, $parent_nesting) { var self = $module($base, 'Enumerable'); - var $nesting = [self].concat($parent_nesting), $Enumerable_to_set$52; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - return (Opal.def(self, '$to_set', $Enumerable_to_set$52 = function $$to_set($a, $b) { - var $iter = $Enumerable_to_set$52.$$p, block = $iter || nil, $post_args, klass, args, self = this; + return $def(self, '$to_set', function $$to_set($a, $b) { + var block = $$to_set.$$p || nil, $post_args, klass, args, self = this; - if ($iter) $Enumerable_to_set$52.$$p = null; - + delete $$to_set.$$p; - if ($iter) $Enumerable_to_set$52.$$p = null;; + ; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); - if ($post_args.length > 0) { - klass = $post_args[0]; - $post_args.splice(0, 1); - } - if (klass == null) { - klass = $$($nesting, 'Set'); - }; + if ($post_args.length > 0) klass = $post_args.shift(); + if (klass == null) klass = $$('Set');; args = $post_args;; - return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()); - }, $Enumerable_to_set$52.$$arity = -1), nil) && 'to_set' - })($nesting[0], $nesting); + return $send(klass, 'new', [self].concat($to_a(args)), block.$to_proc()); + }, -1) + })('::', $nesting); }; diff --git a/opal/master/set.min.js b/opal/master/set.min.js index e3c39981..945f259f 100644 --- a/opal/master/set.min.js +++ b/opal/master/set.min.js @@ -1 +1 @@ -Opal.modules.set=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}function $rb_lt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs"},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$==",$Set_disjoint$ques$50=function(other){var $$8,self=this,$ret_or_1=nil;return!!$truthy(self["$equal?"](other))||($truthy(other["$instance_of?"](self.$class()))?self.hash["$=="](other.$instance_variable_get("@hash")):!!$truthy($truthy($ret_or_1=other["$is_a?"]($$($nesting,"Set")))?self.$size()["$=="](other.$size()):$ret_or_1)&&$send(other,"all?",[],(($$8=function(o){var self=null==$$8.$$s?this:$$8.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash["$include?"](o)}).$$s=self,$$8.$$arity=1,$$8)))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$add",$Set_disjoint$ques$50=function(o){var $writer=[o,!0];return $send(this.hash,"[]=",Opal.to_a($writer)),$rb_minus($writer.length,1),this},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<<","add"),Opal.def($Set_to_a$51,"$classify",$Set_classify$10=function(){var $$11,$$12,$iter=$Set_classify$10.$$p,block=$iter||nil,result=nil;return $iter&&($Set_classify$10.$$p=null),$iter&&($Set_classify$10.$$p=null),block===nil?this.$enum_for("classify"):(result=$send($$($nesting,"Hash"),"new",[],(($$11=function(h,k){var $writer,self=null==$$11.$$s?this:$$11.$$s;return null==h&&(h=nil),null==k&&(k=nil),$writer=[k,self.$class().$new()],$send(h,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]}).$$s=this,$$11.$$arity=2,$$11)),$send(this,"each",[],(($$12=function(item){null==$$12.$$s||$$12.$$s;return null==item&&(item=nil),result["$[]"](Opal.yield1(block,item)).$add(item)}).$$s=this,$$12.$$arity=1,$$12)),result)},$Set_classify$10.$$arity=0),Opal.def($Set_to_a$51,"$collect!",$Set_collect$excl$13=function(){var $$14,$iter=$Set_collect$excl$13.$$p,block=$iter||nil,result=nil;return $iter&&($Set_collect$excl$13.$$p=null),$iter&&($Set_collect$excl$13.$$p=null),block===nil?this.$enum_for("collect!"):(result=this.$class().$new(),$send(this,"each",[],(($$14=function(item){null==$$14.$$s||$$14.$$s;return null==item&&(item=nil),result["$<<"](Opal.yield1(block,item))}).$$s=this,$$14.$$arity=1,$$14)),this.$replace(result))},$Set_collect$excl$13.$$arity=0),$alias($Set_to_a$51,"map!","collect!"),Opal.def($Set_to_a$51,"$delete",$Set_disjoint$ques$50=function(o){return this.hash.$delete(o),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$delete?",$Set_disjoint$ques$50=function(o){return $truthy(this["$include?"](o))?(this.$delete(o),this):nil},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$delete_if",$Set_delete_if$17=function(){var $$18,$$19,$iter=$Set_delete_if$17.$$p,$yield=$iter||nil;return $iter&&($Set_delete_if$17.$$p=null),$yield===nil?this.$enum_for("delete_if"):($send($send(this,"select",[],(($$18=function(o){null==$$18.$$s||$$18.$$s;return null==o&&(o=nil),Opal.yield1($yield,o)}).$$s=this,$$18.$$arity=1,$$18)),"each",[],(($$19=function(o){var self=null==$$19.$$s?this:$$19.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}).$$s=this,$$19.$$arity=1,$$19)),this)},$Set_delete_if$17.$$arity=0),Opal.def($Set_to_a$51,"$keep_if",$Set_keep_if$20=function(){var $$21,$$22,$iter=$Set_keep_if$20.$$p,$yield=$iter||nil;return $iter&&($Set_keep_if$20.$$p=null),$yield===nil?this.$enum_for("keep_if"):($send($send(this,"reject",[],(($$21=function(o){null==$$21.$$s||$$21.$$s;return null==o&&(o=nil),Opal.yield1($yield,o)}).$$s=this,$$21.$$arity=1,$$21)),"each",[],(($$22=function(o){var self=null==$$22.$$s?this:$$22.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}).$$s=this,$$22.$$arity=1,$$22)),this)},$Set_keep_if$20.$$arity=0),Opal.def($Set_to_a$51,"$reject!",$Set_reject$excl$23=function(){var before,$iter=$Set_reject$excl$23.$$p,block=$iter||nil;return $iter&&($Set_reject$excl$23.$$p=null),$iter&&($Set_reject$excl$23.$$p=null),block===nil?this.$enum_for("reject!"):(before=this.$size(),$send(this,"delete_if",[],block.$to_proc()),this.$size()["$=="](before)?nil:this)},$Set_reject$excl$23.$$arity=0),Opal.def($Set_to_a$51,"$select!",$Set_select$excl$24=function(){var before,$iter=$Set_select$excl$24.$$p,block=$iter||nil;return $iter&&($Set_select$excl$24.$$p=null),$iter&&($Set_select$excl$24.$$p=null),block===nil?this.$enum_for("select!"):(before=this.$size(),$send(this,"keep_if",[],block.$to_proc()),this.$size()["$=="](before)?nil:this)},$Set_select$excl$24.$$arity=0),$alias($Set_to_a$51,"filter!","select!"),Opal.def($Set_to_a$51,"$add?",$Set_disjoint$ques$50=function(o){return $truthy(this["$include?"](o))?nil:this.$add(o)},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$each",$Set_each$26=function(){var $iter=$Set_each$26.$$p,block=$iter||nil;return $iter&&($Set_each$26.$$p=null),$iter&&($Set_each$26.$$p=null),block===nil?this.$enum_for("each"):($send(this.hash,"each_key",[],block.$to_proc()),this)},$Set_each$26.$$arity=0),Opal.def($Set_to_a$51,"$empty?",$Set_disjoint$ques$50=function(){return this.hash["$empty?"]()},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$eql?",$Set_disjoint$ques$50=function(other){var $$29;return this.hash["$eql?"]($send(other,"instance_eval",[],(($$29=function(){var self=null==$$29.$$s?this:$$29.$$s;return null==self.hash&&(self.hash=nil),self.hash}).$$s=this,$$29.$$arity=0,$$29)))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$clear",$Set_disjoint$ques$50=function(){return this.hash.$clear(),this},$Set_disjoint$ques$50.$$arity=0),Opal.def($Set_to_a$51,"$include?",$Set_disjoint$ques$50=function(o){return this.hash["$include?"](o)},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"member?","include?"),Opal.def($Set_to_a$51,"$merge",$Set_disjoint$ques$50=function(enum$){var $$33;return $send(enum$,"each",[],(($$33=function(item){var self=null==$$33.$$s?this:$$33.$$s;return null==item&&(item=nil),self.$add(item)}).$$s=this,$$33.$$arity=1,$$33)),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$replace",$Set_disjoint$ques$50=function(enum$){return this.$clear(),this.$merge(enum$),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$size",$Set_disjoint$ques$50=function(){return this.hash.$size()},$Set_disjoint$ques$50.$$arity=0),$alias($Set_to_a$51,"length","size"),Opal.def($Set_to_a$51,"$subtract",$Set_disjoint$ques$50=function(enum$){var $$37;return $send(enum$,"each",[],(($$37=function(item){var self=null==$$37.$$s?this:$$37.$$s;return null==item&&(item=nil),self.$delete(item)}).$$s=this,$$37.$$arity=1,$$37)),this},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$|",$Set_disjoint$ques$50=function(enum$){return $truthy(enum$["$respond_to?"]("each"))||this.$raise($$($nesting,"ArgumentError"),"value must be enumerable"),this.$dup().$merge(enum$)},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$superset?",$Set_disjoint$ques$50=function(set){var $$40;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_lt(this.$size(),set.$size()))&&$send(set,"all?",[],(($$40=function(o){var self=null==$$40.$$s?this:$$40.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$40.$$arity=1,$$40))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,">=","superset?"),Opal.def($Set_to_a$51,"$proper_superset?",$Set_disjoint$ques$50=function(set){var $$42;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_le(this.$size(),set.$size()))&&$send(set,"all?",[],(($$42=function(o){var self=null==$$42.$$s?this:$$42.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$42.$$arity=1,$$42))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,">","proper_superset?"),Opal.def($Set_to_a$51,"$subset?",$Set_disjoint$ques$50=function(set){var $$44;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_lt(set.$size(),this.$size()))&&$send(this,"all?",[],(($$44=function(o){null==$$44.$$s||$$44.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$44.$$arity=1,$$44))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<=","subset?"),Opal.def($Set_to_a$51,"$proper_subset?",$Set_disjoint$ques$50=function(set){var $$46;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),!$truthy($rb_le(set.$size(),this.$size()))&&$send(this,"all?",[],(($$46=function(o){null==$$46.$$s||$$46.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$46.$$arity=1,$$46))},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"<","proper_subset?"),Opal.def($Set_to_a$51,"$intersect?",$Set_disjoint$ques$50=function(set){var $$48,$$49;return $truthy(set["$is_a?"]($$($nesting,"Set")))||this.$raise($$($nesting,"ArgumentError"),"value must be a set"),$truthy($rb_lt(this.$size(),set.$size()))?$send(this,"any?",[],(($$48=function(o){null==$$48.$$s||$$48.$$s;return null==o&&(o=nil),set["$include?"](o)}).$$s=this,$$48.$$arity=1,$$48)):$send(set,"any?",[],(($$49=function(o){var self=null==$$49.$$s?this:$$49.$$s;return null==o&&(o=nil),self["$include?"](o)}).$$s=this,$$49.$$arity=1,$$49))},$Set_disjoint$ques$50.$$arity=1),Opal.def($Set_to_a$51,"$disjoint?",$Set_disjoint$ques$50=function(set){return this["$intersect?"](set)["$!"]()},$Set_disjoint$ques$50.$$arity=1),$alias($Set_to_a$51,"+","|"),$alias($Set_to_a$51,"union","|"),Opal.def($Set_to_a$51,"$to_a",$Set_to_a$51=function(){return this.hash.$keys()},$Set_to_a$51.$$arity=0)}($nesting[0],$nesting),function(self,$parent_nesting){var $Enumerable_to_set$52,self=$module(self,"Enumerable"),$nesting=[self].concat($parent_nesting);return Opal.def(self,"$to_set",$Enumerable_to_set$52=function($a,$b){var klass,$post_args=$Enumerable_to_set$52.$$p,block=$post_args||nil,self=this;return $post_args&&($Enumerable_to_set$52.$$p=null),$post_args&&($Enumerable_to_set$52.$$p=null),0<($post_args=Opal.slice.call(arguments,0,arguments.length)).length&&(klass=$post_args[0],$post_args.splice(0,1)),null==klass&&(klass=$$($nesting,"Set")),$send(klass,"new",[self].concat(Opal.to_a($post_args)),block.$to_proc())},$Enumerable_to_set$52.$$arity=-1),nil&&"to_set"}($nesting[0],$nesting)}; +Opal.modules.set=function(Opal){var nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$defs=Opal.defs,$hash2=Opal.hash2,$truthy=Opal.truthy,$eqeqeq=Opal.eqeqeq,$Kernel=Opal.Kernel,$send=Opal.send,$def=Opal.def,$eqeq=Opal.eqeq,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$rb_lt=Opal.rb_lt,$rb_le=Opal.rb_le,$alias=Opal.alias,$module=Opal.module;return Opal.add_stubs("include,new,nil?,===,raise,each,add,merge,class,respond_to?,subtract,dup,join,to_a,equal?,instance_of?,==,instance_variable_get,size,is_a?,all?,include?,[]=,-,enum_for,[],<<,replace,delete,select,reject,delete_if,to_proc,keep_if,each_key,empty?,eql?,instance_eval,clear,<,<=,any?,!,intersect?,keys"),function($base,$super){var self=$klass("::",null,"Set");function is_set(set){$truthy(set["$is_a?"]($$$("Set")))||$Kernel.$raise($$$("ArgumentError"),"value must be a set")}self.$$prototype.hash=nil,self.$include($$$("Enumerable")),$defs(self,"$[]",(function($a){var ary,self=this;return ary=Opal.slice.call(arguments),self.$new(ary)}),-1),$def(self,"$initialize",(function $$initialize(enum$){var block=$$initialize.$$p||nil;return delete $$initialize.$$p,null==enum$&&(enum$=nil),this.hash=$hash2([],{}),$truthy(enum$["$nil?"]())?nil:($eqeqeq($$$("Enumerable"),enum$)||$Kernel.$raise($$$("ArgumentError"),"value must be enumerable"),$truthy(block)?$send(enum$,"each",[],(function $$2(item){return null==item&&(item=nil),(null==$$2.$$s?this:$$2.$$s).$add(Opal.yield1(block,item))}),{$$arity:1,$$s:this}):this.$merge(enum$))}),-1),$def(self,"$dup",(function(){return this.$class().$new().$merge(this)}),0),$def(self,"$-",(function(enum$){return $truthy(enum$["$respond_to?"]("each"))||$Kernel.$raise($$$("ArgumentError"),"value must be enumerable"),this.$dup().$subtract(enum$)}),1),$def(self,"$inspect",(function(){return"#"}),0),$def(self,"$==",(function(other){return!!$truthy(this["$equal?"](other))||($truthy(other["$instance_of?"](this.$class()))?this.hash["$=="](other.$instance_variable_get("@hash")):!(!$truthy(other["$is_a?"]($$$("Set")))||!$eqeq(this.$size(),other.$size()))&&$send(other,"all?",[],(function $$5(o){var self=null==$$5.$$s?this:$$5.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash["$include?"](o)}),{$$arity:1,$$s:this}))}),1),$def(self,"$add",(function(o){var $writer;return $writer=[o,!0],$send(this.hash,"[]=",$to_a($writer)),$rb_minus($writer.length,1),this}),1),$def(self,"$classify",(function $$classify(){var block=$$classify.$$p||nil,result=nil;return delete $$classify.$$p,block===nil?this.$enum_for("classify"):(result=$send($$$("Hash"),"new",[],(function $$6(h,k){var $writer;return null==h&&(h=nil),null==k&&(k=nil),$writer=[k,(null==$$6.$$s?this:$$6.$$s).$class().$new()],$send(h,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),{$$arity:2,$$s:this}),$send(this,"each",[],(function(item){return null==item&&(item=nil),result["$[]"](Opal.yield1(block,item)).$add(item)}),1),result)}),0),$def(self,"$collect!",(function $Set_collect$excl$8(){var block=$Set_collect$excl$8.$$p||nil,result=nil;return delete $Set_collect$excl$8.$$p,block===nil?this.$enum_for("collect!"):(result=this.$class().$new(),$send(this,"each",[],(function(item){return null==item&&(item=nil),result["$<<"](Opal.yield1(block,item))}),1),this.$replace(result))}),0),$def(self,"$delete",(function(o){return this.hash.$delete(o),this}),1),$def(self,"$delete?",(function(o){return $truthy(this["$include?"](o))?(this.$delete(o),this):nil}),1),$def(self,"$delete_if",(function $$delete_if(){var $yield=$$delete_if.$$p||nil;return delete $$delete_if.$$p,$yield===nil?this.$enum_for("delete_if"):($send($send(this,"select",[],(function(o){return null==o&&(o=nil),Opal.yield1($yield,o)}),1),"each",[],(function $$13(o){var self=null==$$13.$$s?this:$$13.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}),{$$arity:1,$$s:this}),this)}),0),$def(self,"$keep_if",(function $$keep_if(){var $yield=$$keep_if.$$p||nil;return delete $$keep_if.$$p,$yield===nil?this.$enum_for("keep_if"):($send($send(this,"reject",[],(function(o){return null==o&&(o=nil),Opal.yield1($yield,o)}),1),"each",[],(function $$15(o){var self=null==$$15.$$s?this:$$15.$$s;return null==self.hash&&(self.hash=nil),null==o&&(o=nil),self.hash.$delete(o)}),{$$arity:1,$$s:this}),this)}),0),$def(self,"$reject!",(function $Set_reject$excl$16(){var before,block=$Set_reject$excl$16.$$p||nil;return delete $Set_reject$excl$16.$$p,block===nil?this.$enum_for("reject!"):(before=this.$size(),$send(this,"delete_if",[],block.$to_proc()),$eqeq(this.$size(),before)?nil:this)}),0),$def(self,"$select!",(function $Set_select$excl$17(){var before,block=$Set_select$excl$17.$$p||nil;return delete $Set_select$excl$17.$$p,block===nil?this.$enum_for("select!"):(before=this.$size(),$send(this,"keep_if",[],block.$to_proc()),$eqeq(this.$size(),before)?nil:this)}),0),$def(self,"$add?",(function(o){return $truthy(this["$include?"](o))?nil:this.$add(o)}),1),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;return delete $$each.$$p,block===nil?this.$enum_for("each"):($send(this.hash,"each_key",[],block.$to_proc()),this)}),0),$def(self,"$empty?",(function(){return this.hash["$empty?"]()}),0),$def(self,"$eql?",(function(other){return this.hash["$eql?"]($send(other,"instance_eval",[],(function $$21(){var self=null==$$21.$$s?this:$$21.$$s;return null==self.hash&&(self.hash=nil),self.hash}),{$$arity:0,$$s:this}))}),1),$def(self,"$clear",(function(){return this.hash.$clear(),this}),0),$def(self,"$include?",(function(o){return this.hash["$include?"](o)}),1),$def(self,"$merge",(function(enum$){return $send(enum$,"each",[],(function $$23(item){return null==item&&(item=nil),(null==$$23.$$s?this:$$23.$$s).$add(item)}),{$$arity:1,$$s:this}),this}),1),$def(self,"$replace",(function(enum$){return this.$clear(),this.$merge(enum$),this}),1),$def(self,"$size",(function(){return this.hash.$size()}),0),$def(self,"$subtract",(function(enum$){return $send(enum$,"each",[],(function $$24(item){return null==item&&(item=nil),(null==$$24.$$s?this:$$24.$$s).$delete(item)}),{$$arity:1,$$s:this}),this}),1),$def(self,"$|",(function(enum$){return $truthy(enum$["$respond_to?"]("each"))||$Kernel.$raise($$$("ArgumentError"),"value must be enumerable"),this.$dup().$merge(enum$)}),1),$def(self,"$superset?",(function(set){return is_set(set),!$truthy($rb_lt(this.$size(),set.$size()))&&$send(set,"all?",[],(function $$27(o){return null==o&&(o=nil),(null==$$27.$$s?this:$$27.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$proper_superset?",(function(set){return is_set(set),!$truthy($rb_le(this.$size(),set.$size()))&&$send(set,"all?",[],(function $$29(o){return null==o&&(o=nil),(null==$$29.$$s?this:$$29.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$subset?",(function(set){return is_set(set),!$truthy($rb_lt(set.$size(),this.$size()))&&$send(this,"all?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1)}),1),$def(self,"$proper_subset?",(function(set){return is_set(set),!$truthy($rb_le(set.$size(),this.$size()))&&$send(this,"all?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1)}),1),$def(self,"$intersect?",(function(set){return is_set(set),$truthy($rb_lt(this.$size(),set.$size()))?$send(this,"any?",[],(function(o){return null==o&&(o=nil),set["$include?"](o)}),1):$send(set,"any?",[],(function $$36(o){return null==o&&(o=nil),(null==$$36.$$s?this:$$36.$$s)["$include?"](o)}),{$$arity:1,$$s:this})}),1),$def(self,"$disjoint?",(function(set){return this["$intersect?"](set)["$!"]()}),1),$def(self,"$to_a",(function(){return this.hash.$keys()}),0),$alias(self,"+","|"),$alias(self,"<","proper_subset?"),$alias(self,"<<","add"),$alias(self,"<=","subset?"),$alias(self,">","proper_superset?"),$alias(self,">=","superset?"),$alias(self,"difference","-"),$alias(self,"filter!","select!"),$alias(self,"length","size"),$alias(self,"map!","collect!"),$alias(self,"member?","include?"),$alias(self,"union","|")}(),function($base,$parent_nesting){var self=$module("::","Enumerable"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$to_set",(function $$to_set($a,$b){var $post_args,klass,block=$$to_set.$$p||nil,self=this;return delete $$to_set.$$p,($post_args=Opal.slice.call(arguments)).length>0&&(klass=$post_args.shift()),null==klass&&(klass=$$("Set")),$send(klass,"new",[self].concat($to_a($post_args)),block.$to_proc())}),-1)}(0,[])}; diff --git a/opal/master/set.min.js.gz b/opal/master/set.min.js.gz index 7509533a..fad31288 100644 Binary files a/opal/master/set.min.js.gz and b/opal/master/set.min.js.gz differ diff --git a/opal/master/shellwords.js b/opal/master/shellwords.js new file mode 100644 index 00000000..bd1e8bb3 --- /dev/null +++ b/opal/master/shellwords.js @@ -0,0 +1,109 @@ +Opal.modules["shellwords"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $rb_plus = Opal.rb_plus, $send = Opal.send, $to_ary = Opal.to_ary, $truthy = Opal.truthy, $def = Opal.def, $alias = Opal.alias, $klass = Opal.klass; + + Opal.add_stubs('+,new,scan,raise,inspect,gsub,<<,module_function,to_s,empty?,dup,join,map,shellescape,split,escape'); + + (function($base, $parent_nesting) { + var self = $module($base, 'Shellwords'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$shellsplit', function $$shellsplit(line) { + var self = this, words = nil, field = nil; + + + line = $rb_plus(line, " "); + words = []; + field = $$('String').$new(); + $send(line, 'scan', [/\s*(?:([^\s\\\'\"]+)|'([^\']*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\r?\n?\Z|\s)?/m], function $$1($mlhs_tmp1){var $a, $b, self = $$1.$$s == null ? this : $$1.$$s, word = nil, sq = nil, dq = nil, esc = nil, garbage = nil, sep = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + + + if ($mlhs_tmp1 == null) $mlhs_tmp1 = nil;; + $b = $mlhs_tmp1, $a = $to_ary($b), (word = ($a[0] == null ? nil : $a[0])), (sq = ($a[1] == null ? nil : $a[1])), (dq = ($a[2] == null ? nil : $a[2])), (esc = ($a[3] == null ? nil : $a[3])), (garbage = ($a[4] == null ? nil : $a[4])), (sep = ($a[5] == null ? nil : $a[5])), $b; + if ($truthy(garbage)) { + self.$raise($$('ArgumentError'), "Unmatched quote: " + (line.$inspect())) + }; + field = $rb_plus(field, ($truthy(($ret_or_1 = ($truthy(($ret_or_2 = ($truthy(($ret_or_3 = word)) ? ($ret_or_3) : (sq)))) ? ($ret_or_2) : (($truthy(($ret_or_3 = dq)) ? (dq.$gsub(/\\([$`"\\\n])/, "\\1")) : ($ret_or_3)))))) ? ($ret_or_1) : (esc.$gsub(/\\(.)/, "\\1")))); + if ($truthy(sep)) { + + words['$<<'](field); + return (field = $$('String').$new()); + } else { + return nil + };}, {$$arity: 1, $$s: self, $$has_top_level_mlhs_arg: true}); + return words; + }, 1); + $alias(self, "shellwords", "shellsplit"); + self.$module_function("shellsplit", "shellwords"); + (function(self, $parent_nesting) { + + return $alias(self, "split", "shellsplit") + })(Opal.get_singleton_class(self), $nesting); + + $def(self, '$shellescape', function $$shellescape(str) { + + + str = str.$to_s(); + if ($truthy(str['$empty?']())) { + return "''".$dup() + }; + str = str.$dup(); + str = str.$gsub(/[^A-Za-z0-9_\-.,:+\/@\n]/, "\\\\\\&"); + str = str.$gsub(/\n/, "'\n'"); + return str; + }, 1); + self.$module_function("shellescape"); + (function(self, $parent_nesting) { + + return $alias(self, "escape", "shellescape") + })(Opal.get_singleton_class(self), $nesting); + + $def(self, '$shelljoin', function $$shelljoin(array) { + var self = this; + + return $send(array, 'map', [], function $$2(arg){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (arg == null) arg = nil;; + return self.$shellescape(arg);}, {$$arity: 1, $$s: self}).$join(" ") + }, 1); + self.$module_function("shelljoin"); + return (function(self, $parent_nesting) { + + return $alias(self, "join", "shelljoin") + })(Opal.get_singleton_class(self), $nesting); + })($nesting[0], $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'String'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$shellsplit', function $$shellsplit() { + var self = this; + + return $$('Shellwords').$split(self) + }, 0); + return $def(self, '$shellescape', function $$shellescape() { + var self = this; + + return $$('Shellwords').$escape(self) + }, 0); + })($nesting[0], null, $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Array'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $def(self, '$shelljoin', function $$shelljoin() { + var self = this; + + return $$('Shellwords').$join(self) + }, 0) + })($nesting[0], null, $nesting); +}; diff --git a/opal/master/shellwords.min.js b/opal/master/shellwords.min.js new file mode 100644 index 00000000..35cc092b --- /dev/null +++ b/opal/master/shellwords.min.js @@ -0,0 +1 @@ +Opal.modules.shellwords=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$rb_plus=Opal.rb_plus,$send=Opal.send,$to_ary=Opal.to_ary,$truthy=Opal.truthy,$def=Opal.def,$alias=Opal.alias,$klass=Opal.klass;return Opal.add_stubs("+,new,scan,raise,inspect,gsub,<<,module_function,to_s,empty?,dup,join,map,shellescape,split,escape"),function($base,$parent_nesting){var self=$module($base,"Shellwords"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$shellsplit",(function(line){var words=nil,field=nil;return line=$rb_plus(line," "),words=[],field=$$("String").$new(),$send(line,"scan",[/\s*(?:([^\s\\\'\"]+)|'([^\']*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\r?\n?\Z|\s)?/m],(function $$1($mlhs_tmp1){var $a,word,sq,garbage,sep,$ret_or_1,$ret_or_2,self=null==$$1.$$s?this:$$1.$$s,dq=nil,esc=nil,$ret_or_3=nil;return null==$mlhs_tmp1&&($mlhs_tmp1=nil),word=null==($a=$to_ary($mlhs_tmp1))[0]?nil:$a[0],sq=null==$a[1]?nil:$a[1],dq=null==$a[2]?nil:$a[2],esc=null==$a[3]?nil:$a[3],garbage=null==$a[4]?nil:$a[4],sep=null==$a[5]?nil:$a[5],$truthy(garbage)&&self.$raise($$("ArgumentError"),"Unmatched quote: "+line.$inspect()),field=$rb_plus(field,$truthy($ret_or_1=$truthy($ret_or_2=$truthy($ret_or_3=word)?$ret_or_3:sq)?$ret_or_2:$truthy($ret_or_3=dq)?dq.$gsub(/\\([$`"\\\n])/,"\\1"):$ret_or_3)?$ret_or_1:esc.$gsub(/\\(.)/,"\\1")),$truthy(sep)?(words["$<<"](field),field=$$("String").$new()):nil}),{$$arity:1,$$s:this,$$has_top_level_mlhs_arg:!0}),words}),1),$alias(self,"shellwords","shellsplit"),self.$module_function("shellsplit","shellwords"),function(self,$parent_nesting){$alias(self,"split","shellsplit")}(Opal.get_singleton_class(self)),$def(self,"$shellescape",(function(str){return str=str.$to_s(),$truthy(str["$empty?"]())?"''".$dup():str=(str=(str=str.$dup()).$gsub(/[^A-Za-z0-9_\-.,:+\/@\n]/,"\\\\\\&")).$gsub(/\n/,"'\n'")}),1),self.$module_function("shellescape"),function(self,$parent_nesting){$alias(self,"escape","shellescape")}(Opal.get_singleton_class(self)),$def(self,"$shelljoin",(function(array){return $send(array,"map",[],(function $$2(arg){return null==arg&&(arg=nil),(null==$$2.$$s?this:$$2.$$s).$shellescape(arg)}),{$$arity:1,$$s:this}).$join(" ")}),1),self.$module_function("shelljoin"),function(self,$parent_nesting){$alias(self,"join","shelljoin")}(Opal.get_singleton_class(self))}($nesting[0],$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"String"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$shellsplit",(function(){return $$("Shellwords").$split(this)}),0),$def(self,"$shellescape",(function(){return $$("Shellwords").$escape(this)}),0)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,null,"Array"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$shelljoin",(function(){return $$("Shellwords").$join(this)}),0)}($nesting[0],0,$nesting)}; diff --git a/opal/master/shellwords.min.js.gz b/opal/master/shellwords.min.js.gz new file mode 100644 index 00000000..1d3c1c33 Binary files /dev/null and b/opal/master/shellwords.min.js.gz differ diff --git a/opal/master/singleton.js b/opal/master/singleton.js index 31baa606..28f6cd1b 100644 --- a/opal/master/singleton.js +++ b/opal/master/singleton.js @@ -1,92 +1,80 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["singleton"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["singleton"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $def = Opal.def, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $defs = Opal.defs; - Opal.add_stubs(['$raise', '$class', '$__init__', '$instance_eval', '$new', '$extend']); + Opal.add_stubs('raise,class,__init__,instance_eval,new,extend'); return (function($base, $parent_nesting) { var self = $module($base, 'Singleton'); - var $nesting = [self].concat($parent_nesting), $Singleton_clone$1, $Singleton_dup$2; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$clone', $Singleton_clone$1 = function $$clone() { + $def(self, '$clone', function $$clone() { var self = this; - return self.$raise($$($nesting, 'TypeError'), "" + "can't clone instance of singleton " + (self.$class())) - }, $Singleton_clone$1.$$arity = 0); + return self.$raise($$('TypeError'), "can't clone instance of singleton " + (self.$class())) + }, 0); - Opal.def(self, '$dup', $Singleton_dup$2 = function $$dup() { + $def(self, '$dup', function $$dup() { var self = this; - return self.$raise($$($nesting, 'TypeError'), "" + "can't dup instance of singleton " + (self.$class())) - }, $Singleton_dup$2.$$arity = 0); + return self.$raise($$('TypeError'), "can't dup instance of singleton " + (self.$class())) + }, 0); (function($base, $parent_nesting) { var self = $module($base, 'SingletonClassMethods'); - var $nesting = [self].concat($parent_nesting), $SingletonClassMethods_clone$3, $SingletonClassMethods_inherited$4; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$clone', $SingletonClassMethods_clone$3 = function $$clone() { - var $iter = $SingletonClassMethods_clone$3.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + $def(self, '$clone', function $$clone() { + var $yield = $$clone.$$p || nil, self = this; - if ($iter) $SingletonClassMethods_clone$3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return $$($nesting, 'Singleton').$__init__($send2(self, $find_super(self, 'clone', $SingletonClassMethods_clone$3, false, true), 'clone', $zuper, $iter)) - }, $SingletonClassMethods_clone$3.$$arity = 0); - return (Opal.def(self, '$inherited', $SingletonClassMethods_inherited$4 = function $$inherited(sub_klass) { - var $iter = $SingletonClassMethods_inherited$4.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + delete $$clone.$$p; + return $$('Singleton').$__init__($send2(self, $find_super(self, 'clone', $$clone, false, true), 'clone', [], $yield)) + }, 0); + return $def(self, '$inherited', function $$inherited(sub_klass) { + var $yield = $$inherited.$$p || nil, self = this; - if ($iter) $SingletonClassMethods_inherited$4.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$inherited.$$p; - $send2(self, $find_super(self, 'inherited', $SingletonClassMethods_inherited$4, false, true), 'inherited', $zuper, $iter); - return $$($nesting, 'Singleton').$__init__(sub_klass); - }, $SingletonClassMethods_inherited$4.$$arity = 1), nil) && 'inherited'; + $send2(self, $find_super(self, 'inherited', $$inherited, false, true), 'inherited', [sub_klass], $yield); + return $$('Singleton').$__init__(sub_klass); + }, 1); })($nesting[0], $nesting); return (function(self, $parent_nesting) { - var $nesting = [self].concat($parent_nesting), $__init__$5, $included$8; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); - Opal.def(self, '$__init__', $__init__$5 = function $$__init__(klass) { - var $$6, $instance$7, self = this; + $def(self, '$__init__', function $$__init__(klass) { + var self = this; - $send(klass, 'instance_eval', [], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; + $send(klass, 'instance_eval', [], function $$1(){var self = $$1.$$s == null ? this : $$1.$$s; - return (self.singleton__instance__ = nil)}, $$6.$$s = self, $$6.$$arity = 0, $$6)); - Opal.defs(klass, '$instance', $instance$7 = function $$instance() { + return (self.singleton__instance__ = nil)}, {$$arity: 0, $$s: self}); + $defs(klass, '$instance', function $$instance() { var self = this; if (self.singleton__instance__ == null) self.singleton__instance__ = nil; if ($truthy(self.singleton__instance__)) { - return self.singleton__instance__}; + return self.singleton__instance__ + }; return (self.singleton__instance__ = self.$new()); - }, $instance$7.$$arity = 0); + }, 0); return klass; - }, $__init__$5.$$arity = 1); - return (Opal.def(self, '$included', $included$8 = function $$included(klass) { - var $iter = $included$8.$$p, $yield = $iter || nil, self = this, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + }, 1); + return $def(self, '$included', function $$included(klass) { + var $yield = $$included.$$p || nil, self = this; - if ($iter) $included$8.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + delete $$included.$$p; - $send2(self, $find_super(self, 'included', $included$8, false, true), 'included', $zuper, $iter); - klass.$extend($$($nesting, 'SingletonClassMethods')); - return $$($nesting, 'Singleton').$__init__(klass); - }, $included$8.$$arity = 1), nil) && 'included'; - })(Opal.get_singleton_class($$($nesting, 'Singleton')), $nesting); + $send2(self, $find_super(self, 'included', $$included, false, true), 'included', [klass], $yield); + klass.$extend($$('SingletonClassMethods')); + return $$('Singleton').$__init__(klass); + }, 1); + })(Opal.get_singleton_class($$('Singleton')), $nesting); })($nesting[0], $nesting) }; diff --git a/opal/master/singleton.min.js b/opal/master/singleton.min.js index b22ad3c1..41309da9 100644 --- a/opal/master/singleton.min.js +++ b/opal/master/singleton.min.js @@ -1 +1 @@ -Opal.modules.singleton=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$module=Opal.module,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$raise","$class","$__init__","$instance_eval","$new","$extend"]),function($Singleton_dup$2,$Singleton_clone$1){var $Singleton_dup$2=$module($Singleton_dup$2,"Singleton"),$nesting=[$Singleton_dup$2].concat($Singleton_clone$1);return Opal.def($Singleton_dup$2,"$clone",$Singleton_clone$1=function(){return this.$raise($$($nesting,"TypeError"),"can't clone instance of singleton "+this.$class())},$Singleton_clone$1.$$arity=0),Opal.def($Singleton_dup$2,"$dup",$Singleton_dup$2=function(){return this.$raise($$($nesting,"TypeError"),"can't dup instance of singleton "+this.$class())},$Singleton_dup$2.$$arity=0),function(self,$parent_nesting){var $SingletonClassMethods_clone$3,$SingletonClassMethods_inherited$4,$nesting=[self=$module(self,"SingletonClassMethods")].concat($parent_nesting);Opal.def(self,"$clone",$SingletonClassMethods_clone$3=function(){var $zuper_ii,$iter=$SingletonClassMethods_clone$3.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($SingletonClassMethods_clone$3.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $$($nesting,"Singleton").$__init__($send2(this,$find_super(this,"clone",$SingletonClassMethods_clone$3,!1,!0),"clone",$zuper,$iter))},$SingletonClassMethods_clone$3.$$arity=0),Opal.def(self,"$inherited",$SingletonClassMethods_inherited$4=function(sub_klass){var $zuper_ii,$iter=$SingletonClassMethods_inherited$4.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($SingletonClassMethods_inherited$4.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $send2(this,$find_super(this,"inherited",$SingletonClassMethods_inherited$4,!1,!0),"inherited",$zuper,$iter),$$($nesting,"Singleton").$__init__(sub_klass)},$SingletonClassMethods_inherited$4.$$arity=1)}($nesting[0],$nesting),function(self,$__init__$5){var $included$8,$nesting=[self].concat($__init__$5);return Opal.def(self,"$__init__",$__init__$5=function(klass){var $$6,$instance$7;return $send(klass,"instance_eval",[],(($$6=function(){return(null==$$6.$$s?this:$$6.$$s).singleton__instance__=nil}).$$s=this,$$6.$$arity=0,$$6)),Opal.defs(klass,"$instance",$instance$7=function(){return null==this.singleton__instance__&&(this.singleton__instance__=nil),$truthy(this.singleton__instance__)?this.singleton__instance__:this.singleton__instance__=this.$new()},$instance$7.$$arity=0),klass},$__init__$5.$$arity=1),Opal.def(self,"$included",$included$8=function(klass){var $zuper_ii,$iter=$included$8.$$p,$zuper=nil,$zuper_i=nil;for($iter&&($included$8.$$p=null),$zuper_i=0,$zuper_ii=arguments.length,$zuper=new Array($zuper_ii);$zuper_i<$zuper_ii;$zuper_i++)$zuper[$zuper_i]=arguments[$zuper_i];return $send2(this,$find_super(this,"included",$included$8,!1,!0),"included",$zuper,$iter),klass.$extend($$($nesting,"SingletonClassMethods")),$$($nesting,"Singleton").$__init__(klass)},$included$8.$$arity=1),nil&&"included"}(Opal.get_singleton_class($$($nesting,"Singleton")),$nesting)}($nesting[0],$nesting)}; +Opal.modules.singleton=function(Opal){var $nesting=[],nil=Opal.nil,$module=Opal.module,$def=Opal.def,$send2=Opal.send2,$find_super=Opal.find_super,$send=Opal.send,$truthy=Opal.truthy,$defs=Opal.defs;return Opal.add_stubs("raise,class,__init__,instance_eval,new,extend"),function($base,$parent_nesting){var self=$module($base,"Singleton"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$clone",(function(){return this.$raise($$("TypeError"),"can't clone instance of singleton "+this.$class())}),0),$def(self,"$dup",(function(){return this.$raise($$("TypeError"),"can't dup instance of singleton "+this.$class())}),0),function($base,$parent_nesting){var self=$module($base,"SingletonClassMethods"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$clone",(function $$clone(){var $yield=$$clone.$$p||nil;return delete $$clone.$$p,$$("Singleton").$__init__($send2(this,$find_super(this,"clone",$$clone,!1,!0),"clone",[],$yield))}),0),$def(self,"$inherited",(function $$inherited(sub_klass){var $yield=$$inherited.$$p||nil;return delete $$inherited.$$p,$send2(this,$find_super(this,"inherited",$$inherited,!1,!0),"inherited",[sub_klass],$yield),$$("Singleton").$__init__(sub_klass)}),1)}($nesting[0],$nesting),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $def(self,"$__init__",(function(klass){return $send(klass,"instance_eval",[],(function $$1(){return(null==$$1.$$s?this:$$1.$$s).singleton__instance__=nil}),{$$arity:0,$$s:this}),$defs(klass,"$instance",(function(){return null==this.singleton__instance__&&(this.singleton__instance__=nil),$truthy(this.singleton__instance__)?this.singleton__instance__:this.singleton__instance__=this.$new()}),0),klass}),1),$def(self,"$included",(function $$included(klass){var $yield=$$included.$$p||nil;return delete $$included.$$p,$send2(this,$find_super(this,"included",$$included,!1,!0),"included",[klass],$yield),klass.$extend($$("SingletonClassMethods")),$$("Singleton").$__init__(klass)}),1)}(Opal.get_singleton_class($$("Singleton")),$nesting)}($nesting[0],$nesting)}; diff --git a/opal/master/singleton.min.js.gz b/opal/master/singleton.min.js.gz index 1fe056a1..122b7c4f 100644 Binary files a/opal/master/singleton.min.js.gz and b/opal/master/singleton.min.js.gz differ diff --git a/opal/master/stringio.js b/opal/master/stringio.js index ecdb9117..bcdaf449 100644 --- a/opal/master/stringio.js +++ b/opal/master/stringio.js @@ -1,230 +1,104 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["stringio"] = function(Opal) { - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $gvars = Opal.gvars; +Opal.modules["stringio"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $defs = Opal.defs, $send2 = Opal.send2, $find_super = Opal.find_super, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $rb_ge = Opal.rb_ge, $rb_gt = Opal.rb_gt, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $eqeq = Opal.eqeq, $alias = Opal.alias; - Opal.add_stubs(['$include', '$new', '$call', '$close', '$attr_accessor', '$length', '$include?', '$!', '$check_readable', '$==', '$===', '$>=', '$raise', '$>', '$+', '$-', '$seek', '$enum_for', '$eof?', '$ord', '$[]', '$to_str', '$chomp', '$check_writable', '$String', '$write', '$closed_write?', '$closed_read?']); + Opal.add_stubs('new,call,close,attr_accessor,check_readable,==,length,===,>=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'StringIO'); - var $nesting = [self].concat($parent_nesting), $StringIO_open$1, $StringIO_initialize$2, $StringIO_eof$ques$3, $StringIO_seek$4, $StringIO_tell$5, $StringIO_rewind$6, $StringIO_each_byte$7, $StringIO_each_char$8, $StringIO_each$9, $StringIO_write$10, $StringIO_read$11, $StringIO_close$12, $StringIO_close_read$13, $StringIO_close_write$14, $StringIO_closed$ques$15, $StringIO_closed_read$ques$16, $StringIO_closed_write$ques$17, $StringIO_check_writable$18, $StringIO_check_readable$19; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.position = self.$$prototype.string = self.$$prototype.closed = nil; + $proto.position = $proto.string = nil; - self.$include($$$($$($nesting, 'IO'), 'Readable')); - self.$include($$$($$($nesting, 'IO'), 'Writable')); - Opal.defs(self, '$open', $StringIO_open$1 = function $$open(string, mode) { - var $iter = $StringIO_open$1.$$p, block = $iter || nil, self = this, io = nil, res = nil; + $defs(self, '$open', function $$open(string, mode) { + var block = $$open.$$p || nil, self = this, io = nil, res = nil; - if ($iter) $StringIO_open$1.$$p = null; + delete $$open.$$p; + ; - if ($iter) $StringIO_open$1.$$p = null;; + if (string == null) string = "";; - if (string == null) { - string = ""; - }; - - if (mode == null) { - mode = nil; - }; + if (mode == null) mode = nil;; io = self.$new(string, mode); res = block.$call(io); io.$close(); return res; - }, $StringIO_open$1.$$arity = -1); + }, -1); self.$attr_accessor("string"); - Opal.def(self, '$initialize', $StringIO_initialize$2 = function $$initialize(string, mode) { - var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + $def(self, '$initialize', function $$initialize(string, mode) { + var $yield = $$initialize.$$p || nil, self = this; + delete $$initialize.$$p; - if (string == null) { - string = ""; - }; + if (string == null) string = "";; - if (mode == null) { - mode = "rw"; - }; + if (mode == null) mode = "rw";; self.string = string; - self.position = string.$length(); - if ($truthy((function() {if ($truthy(($ret_or_1 = mode['$include?']("r")))) { - return mode['$include?']("w")['$!']() - } else { - return $ret_or_1 - }; return nil; })())) { - return (self.closed = "write") - } else if ($truthy((function() {if ($truthy(($ret_or_2 = mode['$include?']("w")))) { - return mode['$include?']("r")['$!']() - } else { - return $ret_or_2 - }; return nil; })())) { - return (self.closed = "read") - } else { - return nil - }; - }, $StringIO_initialize$2.$$arity = -1); + self.position = 0; + return $send2(self, $find_super(self, 'initialize', $$initialize, false, true), 'initialize', [nil, mode], null); + }, -1); - Opal.def(self, '$eof?', $StringIO_eof$ques$3 = function() { + $def(self, '$eof?', function $StringIO_eof$ques$1() { var self = this; self.$check_readable(); return self.position['$=='](self.string.$length()); - }, $StringIO_eof$ques$3.$$arity = 0); - $alias(self, "eof", "eof?"); + }, 0); - Opal.def(self, '$seek', $StringIO_seek$4 = function $$seek(pos, whence) { - var self = this, $case = nil; + $def(self, '$seek', function $$seek(pos, whence) { + var self = this, $ret_or_1 = nil; - if (whence == null) { - whence = $$$($$($nesting, 'IO'), 'SEEK_SET'); - }; - $case = whence; - if ($$$($$($nesting, 'IO'), 'SEEK_SET')['$===']($case)) { - if ($truthy($rb_ge(pos, 0))) { + if (whence == null) whence = $$$($$('IO'), 'SEEK_SET');; + self.read_buffer = ""; + if ($eqeqeq($$$($$('IO'), 'SEEK_SET'), ($ret_or_1 = whence))) { + + if (!$truthy($rb_ge(pos, 0))) { + self.$raise($$$($$('Errno'), 'EINVAL')) + }; + self.position = pos; + } else if ($eqeqeq($$$($$('IO'), 'SEEK_CUR'), $ret_or_1)) { + if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { + self.position = self.string.$length() + } else { + self.position = $rb_plus(self.position, pos) + } + } else if ($eqeqeq($$$($$('IO'), 'SEEK_END'), $ret_or_1)) { + if ($truthy($rb_gt(pos, self.string.$length()))) { + self.position = 0 + } else { + self.position = $rb_minus(self.position, pos) + } } else { - self.$raise($$$($$($nesting, 'Errno'), 'EINVAL')) + nil }; - self.position = pos;} - else if ($$$($$($nesting, 'IO'), 'SEEK_CUR')['$===']($case)) {if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { - self.position = self.string.$length() - } else { - self.position = $rb_plus(self.position, pos) - }} - else if ($$$($$($nesting, 'IO'), 'SEEK_END')['$===']($case)) {if ($truthy($rb_gt(pos, self.string.$length()))) { - self.position = 0 - } else { - self.position = $rb_minus(self.position, pos) - }}; return 0; - }, $StringIO_seek$4.$$arity = -2); + }, -2); - Opal.def(self, '$tell', $StringIO_tell$5 = function $$tell() { + $def(self, '$tell', function $$tell() { var self = this; return self.position - }, $StringIO_tell$5.$$arity = 0); - $alias(self, "pos", "tell"); - $alias(self, "pos=", "seek"); + }, 0); - Opal.def(self, '$rewind', $StringIO_rewind$6 = function $$rewind() { + $def(self, '$rewind', function $$rewind() { var self = this; return self.$seek(0) - }, $StringIO_rewind$6.$$arity = 0); - - Opal.def(self, '$each_byte', $StringIO_each_byte$7 = function $$each_byte() { - var $iter = $StringIO_each_byte$7.$$p, block = $iter || nil, $a, self = this, i = nil; - - if ($iter) $StringIO_each_byte$7.$$p = null; - - - if ($iter) $StringIO_each_byte$7.$$p = null;; - if ($truthy(block)) { - } else { - return self.$enum_for("each_byte") - }; - self.$check_readable(); - i = self.position; - while (!($truthy(self['$eof?']()))) { - - block.$call(self.string['$[]'](i).$ord()); - i = $rb_plus(i, 1); - }; - return self; - }, $StringIO_each_byte$7.$$arity = 0); + }, 0); - Opal.def(self, '$each_char', $StringIO_each_char$8 = function $$each_char() { - var $iter = $StringIO_each_char$8.$$p, block = $iter || nil, $a, self = this, i = nil; - - if ($iter) $StringIO_each_char$8.$$p = null; - - - if ($iter) $StringIO_each_char$8.$$p = null;; - if ($truthy(block)) { - } else { - return self.$enum_for("each_char") - }; - self.$check_readable(); - i = self.position; - while (!($truthy(self['$eof?']()))) { - - block.$call(self.string['$[]'](i)); - i = $rb_plus(i, 1); - }; - return self; - }, $StringIO_each_char$8.$$arity = 0); - - Opal.def(self, '$each', $StringIO_each$9 = function $$each(separator) { - var $iter = $StringIO_each$9.$$p, $yield = $iter || nil, self = this, chomp_lines = nil; - if ($gvars["/"] == null) $gvars["/"] = nil; - - if ($iter) $StringIO_each$9.$$p = null; - - - if (separator == null) { - separator = $gvars["/"]; - }; - if (($yield !== nil)) { - } else { - return self.$enum_for("each_line") - }; - self.$check_readable(); - chomp_lines = false; - if ($truthy($$$('::', 'Hash')['$==='](separator))) { - separator = (function() {if ($truthy((chomp_lines = separator['$[]']("chomp")))) { - return /\r?\n/ - } else { - return $gvars["/"] - }; return nil; })() - } else if ($truthy(separator)) { - separator = separator.$to_str() - } else { - separator = undefined - }; - - var str = self.string, stringLength = str.length; - if (self.position < stringLength) str = str.substr(self.position); - if (separator) { - var chomped = (str).$chomp(), trailing = str.length !== chomped.length, splitted = chomped.split(separator); - for (var i = 0, len = splitted.length; i < len; i++) { - var line = chomp_lines ? splitted[i] : (i < len - 1 || trailing ? splitted[i] + separator : splitted[i]); - Opal.yield1($yield, line); - } - } else if (separator === undefined) { - Opal.yield1($yield, str); - } else { - var m, re = /(.+(?:\n\n|$))\n*/g; - while ((m = re.exec(str))) Opal.yield1($yield, m[1]); - } - self.position = stringLength; - ; - return self; - }, $StringIO_each$9.$$arity = -1); - $alias(self, "each_line", "each"); - - Opal.def(self, '$write', $StringIO_write$10 = function $$write(string) { + $def(self, '$write', function $$write(string) { var self = this, before = nil, after = nil; self.$check_writable(); + self.read_buffer = ""; string = self.$String(string); - if (self.string.$length()['$=='](self.position)) { + if ($eqeq(self.string.$length(), self.position)) { self.string = $rb_plus(self.string, string); return (self.position = $rb_plus(self.position, string.$length())); @@ -235,110 +109,38 @@ Opal.modules["stringio"] = function(Opal) { self.string = $rb_plus($rb_plus(before, string), after); return (self.position = $rb_plus(self.position, string.$length())); }; - }, $StringIO_write$10.$$arity = 1); + }, 1); - Opal.def(self, '$read', $StringIO_read$11 = function $$read(length, outbuf) { + $def(self, '$read', function $$read(length, outbuf) { var self = this, string = nil, str = nil; - if (length == null) { - length = nil; - }; + if (length == null) length = nil;; - if (outbuf == null) { - outbuf = nil; - }; + if (outbuf == null) outbuf = nil;; self.$check_readable(); if ($truthy(self['$eof?']())) { - return nil}; - string = (function() {if ($truthy(length)) { - - str = self.string['$[]'](self.position, length); - self.position = $rb_plus(self.position, length); - return str; - } else { - - str = self.string['$[]'](Opal.Range.$new(self.position, -1, false)); - self.position = self.string.$length(); - return str; - }; return nil; })(); + return nil + }; + string = ($truthy(length) ? (((str = self.string['$[]'](self.position, length)), (self.position = $rb_plus(self.position, length)), ($truthy($rb_gt(self.position, self.string.$length())) ? ((self.position = self.string.$length())) : nil), str)) : (((str = self.string['$[]'](Opal.Range.$new(self.position, -1, false))), (self.position = self.string.$length()), str))); if ($truthy(outbuf)) { return outbuf.$write(string) } else { return string }; - }, $StringIO_read$11.$$arity = -1); - - Opal.def(self, '$close', $StringIO_close$12 = function $$close() { - var self = this; - - return (self.closed = "both") - }, $StringIO_close$12.$$arity = 0); + }, -1); - Opal.def(self, '$close_read', $StringIO_close_read$13 = function $$close_read() { + $def(self, '$sysread', function $$sysread(length) { var self = this; - if (self.closed['$==']("write")) { - return (self.closed = "both") - } else { - return (self.closed = "read") - } - }, $StringIO_close_read$13.$$arity = 0); - - Opal.def(self, '$close_write', $StringIO_close_write$14 = function $$close_write() { - var self = this; - - if (self.closed['$==']("read")) { - return (self.closed = "both") - } else { - return (self.closed = "write") - } - }, $StringIO_close_write$14.$$arity = 0); - - Opal.def(self, '$closed?', $StringIO_closed$ques$15 = function() { - var self = this; - - return self.closed['$==']("both") - }, $StringIO_closed$ques$15.$$arity = 0); - - Opal.def(self, '$closed_read?', $StringIO_closed_read$ques$16 = function() { - var self = this, $ret_or_3 = nil; - - if ($truthy(($ret_or_3 = self.closed['$==']("read")))) { - return $ret_or_3 - } else { - return self.closed['$==']("both") - } - }, $StringIO_closed_read$ques$16.$$arity = 0); - - Opal.def(self, '$closed_write?', $StringIO_closed_write$ques$17 = function() { - var self = this, $ret_or_4 = nil; - - if ($truthy(($ret_or_4 = self.closed['$==']("write")))) { - return $ret_or_4 - } else { - return self.closed['$==']("both") - } - }, $StringIO_closed_write$ques$17.$$arity = 0); - - Opal.def(self, '$check_writable', $StringIO_check_writable$18 = function $$check_writable() { - var self = this; - - if ($truthy(self['$closed_write?']())) { - return self.$raise($$($nesting, 'IOError'), "not opened for writing") - } else { - return nil - } - }, $StringIO_check_writable$18.$$arity = 0); - return (Opal.def(self, '$check_readable', $StringIO_check_readable$19 = function $$check_readable() { - var self = this; - - if ($truthy(self['$closed_read?']())) { - return self.$raise($$($nesting, 'IOError'), "not opened for reading") - } else { - return nil - } - }, $StringIO_check_readable$19.$$arity = 0), nil) && 'check_readable'; - })($nesting[0], $$($nesting, 'IO'), $nesting) + + self.$check_readable(); + return self.$read(length); + }, 1); + $alias(self, "eof", "eof?"); + $alias(self, "pos", "tell"); + $alias(self, "pos=", "seek"); + return $alias(self, "readpartial", "read"); + })($nesting[0], $$('IO'), $nesting) }; diff --git a/opal/master/stringio.min.js b/opal/master/stringio.min.js index 45b7b344..72feceaf 100644 --- a/opal/master/stringio.min.js +++ b/opal/master/stringio.min.js @@ -1 +1 @@ -Opal.modules.stringio=function(Opal){function $rb_gt(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?rhs"](rhs)}function $rb_plus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs+rhs:lhs["$+"](rhs)}function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$alias=Opal.alias,$gvars=Opal.gvars;return Opal.add_stubs(["$include","$new","$call","$close","$attr_accessor","$length","$include?","$!","$check_readable","$==","$===","$>=","$raise","$>","$+","$-","$seek","$enum_for","$eof?","$ord","$[]","$to_str","$chomp","$check_writable","$String","$write","$closed_write?","$closed_read?"]),function($base,$StringIO_check_readable$19,$StringIO_check_writable$18){var $StringIO_open$1,$StringIO_each_byte$7,$StringIO_each_char$8,$StringIO_each$9,$StringIO_check_readable$19=$klass($base,$StringIO_check_readable$19,"StringIO"),$nesting=[$StringIO_check_readable$19].concat($StringIO_check_writable$18);return $StringIO_check_readable$19.$$prototype.position=$StringIO_check_readable$19.$$prototype.string=$StringIO_check_readable$19.$$prototype.closed=nil,$StringIO_check_readable$19.$include($$$($$($nesting,"IO"),"Readable")),$StringIO_check_readable$19.$include($$$($$($nesting,"IO"),"Writable")),Opal.defs($StringIO_check_readable$19,"$open",$StringIO_open$1=function(string,mode){var res,$iter=$StringIO_open$1.$$p,block=$iter||nil,io=nil;return $iter&&($StringIO_open$1.$$p=null),$iter&&($StringIO_open$1.$$p=null),null==string&&(string=""),null==mode&&(mode=nil),io=this.$new(string,mode),res=block.$call(io),io.$close(),res},$StringIO_open$1.$$arity=-1),$StringIO_check_readable$19.$attr_accessor("string"),Opal.def($StringIO_check_readable$19,"$initialize",$StringIO_check_writable$18=function(string,mode){var $ret_or_1=nil,$ret_or_2=nil;return null==string&&(string=""),null==mode&&(mode="rw"),this.string=string,this.position=string.$length(),$truthy($truthy($ret_or_1=mode["$include?"]("r"))?mode["$include?"]("w")["$!"]():$ret_or_1)?this.closed="write":$truthy($truthy($ret_or_2=mode["$include?"]("w"))?mode["$include?"]("r")["$!"]():$ret_or_2)?this.closed="read":nil},$StringIO_check_writable$18.$$arity=-1),Opal.def($StringIO_check_readable$19,"$eof?",$StringIO_check_writable$18=function(){return this.$check_readable(),this.position["$=="](this.string.$length())},$StringIO_check_writable$18.$$arity=0),$alias($StringIO_check_readable$19,"eof","eof?"),Opal.def($StringIO_check_readable$19,"$seek",$StringIO_check_writable$18=function(pos,lhs){var $case,rhs;return null==lhs&&(lhs=$$$($$($nesting,"IO"),"SEEK_SET")),$case=lhs,$$$($$($nesting,"IO"),"SEEK_SET")["$==="]($case)?($truthy((rhs=0,"number"==typeof(lhs=pos)&&"number"==typeof rhs?rhs<=lhs:lhs["$>="](rhs)))||this.$raise($$$($$($nesting,"Errno"),"EINVAL")),this.position=pos):$$$($$($nesting,"IO"),"SEEK_CUR")["$==="]($case)?$truthy($rb_gt($rb_plus(this.position,pos),this.string.$length()))?this.position=this.string.$length():this.position=$rb_plus(this.position,pos):$$$($$($nesting,"IO"),"SEEK_END")["$==="]($case)&&($truthy($rb_gt(pos,this.string.$length()))?this.position=0:this.position=$rb_minus(this.position,pos)),0},$StringIO_check_writable$18.$$arity=-2),Opal.def($StringIO_check_readable$19,"$tell",$StringIO_check_writable$18=function(){return this.position},$StringIO_check_writable$18.$$arity=0),$alias($StringIO_check_readable$19,"pos","tell"),$alias($StringIO_check_readable$19,"pos=","seek"),Opal.def($StringIO_check_readable$19,"$rewind",$StringIO_check_writable$18=function(){return this.$seek(0)},$StringIO_check_writable$18.$$arity=0),Opal.def($StringIO_check_readable$19,"$each_byte",$StringIO_each_byte$7=function(){var $iter=$StringIO_each_byte$7.$$p,block=$iter||nil,i=nil;if($iter&&($StringIO_each_byte$7.$$p=null),$iter&&($StringIO_each_byte$7.$$p=null),!$truthy(block))return this.$enum_for("each_byte");for(this.$check_readable(),i=this.position;!$truthy(this["$eof?"]());)block.$call(this.string["$[]"](i).$ord()),i=$rb_plus(i,1);return this},$StringIO_each_byte$7.$$arity=0),Opal.def($StringIO_check_readable$19,"$each_char",$StringIO_each_char$8=function(){var $iter=$StringIO_each_char$8.$$p,block=$iter||nil,i=nil;if($iter&&($StringIO_each_char$8.$$p=null),$iter&&($StringIO_each_char$8.$$p=null),!$truthy(block))return this.$enum_for("each_char");for(this.$check_readable(),i=this.position;!$truthy(this["$eof?"]());)block.$call(this.string["$[]"](i)),i=$rb_plus(i,1);return this},$StringIO_each_char$8.$$arity=0),Opal.def($StringIO_check_readable$19,"$each",$StringIO_each$9=function(separator){var chomped=$StringIO_each$9.$$p,$yield=chomped||nil,chomp_lines=nil;if(null==$gvars["/"]&&($gvars["/"]=nil),chomped&&($StringIO_each$9.$$p=null),null==separator&&(separator=$gvars["/"]),$yield===nil)return this.$enum_for("each_line");this.$check_readable(),chomp_lines=!1,separator=$truthy($$$("::","Hash")["$==="](separator))?$truthy(chomp_lines=separator["$[]"]("chomp"))?/\r?\n/:$gvars["/"]:$truthy(separator)?separator.$to_str():void 0;var str=this.string,stringLength=str.length;if(this.position=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"StringIO"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.position=$proto.string=nil,$defs(self,"$open",(function $$open(string,mode){var res,block=$$open.$$p||nil,io=nil;return delete $$open.$$p,null==string&&(string=""),null==mode&&(mode=nil),io=this.$new(string,mode),res=block.$call(io),io.$close(),res}),-1),self.$attr_accessor("string"),$def(self,"$initialize",(function $$initialize(string,mode){return delete $$initialize.$$p,null==string&&(string=""),null==mode&&(mode="rw"),this.string=string,this.position=0,$send2(this,$find_super(this,"initialize",$$initialize,!1,!0),"initialize",[nil,mode],null)}),-1),$def(self,"$eof?",(function(){return this.$check_readable(),this.position["$=="](this.string.$length())}),0),$def(self,"$seek",(function(pos,whence){var $ret_or_1;return null==whence&&(whence=$$$($$("IO"),"SEEK_SET")),this.read_buffer="",$eqeqeq($$$($$("IO"),"SEEK_SET"),$ret_or_1=whence)?($truthy($rb_ge(pos,0))||this.$raise($$$($$("Errno"),"EINVAL")),this.position=pos):$eqeqeq($$$($$("IO"),"SEEK_CUR"),$ret_or_1)?$truthy($rb_gt($rb_plus(this.position,pos),this.string.$length()))?this.position=this.string.$length():this.position=$rb_plus(this.position,pos):$eqeqeq($$$($$("IO"),"SEEK_END"),$ret_or_1)&&($truthy($rb_gt(pos,this.string.$length()))?this.position=0:this.position=$rb_minus(this.position,pos)),0}),-2),$def(self,"$tell",(function(){return this.position}),0),$def(self,"$rewind",(function(){return this.$seek(0)}),0),$def(self,"$write",(function(string){var before=nil,after=nil;return this.$check_writable(),this.read_buffer="",string=this.$String(string),$eqeq(this.string.$length(),this.position)?(this.string=$rb_plus(this.string,string),this.position=$rb_plus(this.position,string.$length())):(before=this.string["$[]"](Opal.Range.$new(0,$rb_minus(this.position,1),!1)),after=this.string["$[]"](Opal.Range.$new($rb_plus(this.position,string.$length()),-1,!1)),this.string=$rb_plus($rb_plus(before,string),after),this.position=$rb_plus(this.position,string.$length()))}),1),$def(self,"$read",(function(length,outbuf){var string,str=nil;return null==length&&(length=nil),null==outbuf&&(outbuf=nil),this.$check_readable(),$truthy(this["$eof?"]())?nil:(string=$truthy(length)?(str=this.string["$[]"](this.position,length),this.position=$rb_plus(this.position,length),$truthy($rb_gt(this.position,this.string.$length()))&&(this.position=this.string.$length()),str):(str=this.string["$[]"](Opal.Range.$new(this.position,-1,!1)),this.position=this.string.$length(),str),$truthy(outbuf)?outbuf.$write(string):string)}),-1),$def(self,"$sysread",(function(length){return this.$check_readable(),this.$read(length)}),1),$alias(self,"eof","eof?"),$alias(self,"pos","tell"),$alias(self,"pos=","seek"),$alias(self,"readpartial","read")}($nesting[0],$$("IO"),$nesting)}; diff --git a/opal/master/stringio.min.js.gz b/opal/master/stringio.min.js.gz index 4fb61ce5..9d8ffb76 100644 Binary files a/opal/master/stringio.min.js.gz and b/opal/master/stringio.min.js.gz differ diff --git a/opal/master/strscan.js b/opal/master/strscan.js index a6fedde4..fb73a810 100644 --- a/opal/master/strscan.js +++ b/opal/master/strscan.js @@ -1,22 +1,17 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["strscan"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$anchor', '$empty?', '$===', '$to_s', '$coerce_to!', '$scan_until', '$length', '$size', '$rest', '$pos=', '$-', '$private']); +Opal.modules["strscan"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $klass = Opal.klass, $def = Opal.def, $truthy = Opal.truthy, $eqeqeq = Opal.eqeqeq, $Opal = Opal.Opal, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $alias = Opal.alias; + + Opal.add_stubs('attr_reader,anchor,empty?,===,to_s,coerce_to!,scan_until,length,size,rest,pos=,-,private'); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'StringScanner'); - var $nesting = [self].concat($parent_nesting), $StringScanner_initialize$1, $StringScanner_beginning_of_line$ques$2, $StringScanner_scan$3, $StringScanner_scan_until$4, $StringScanner_$$$5, $StringScanner_check$6, $StringScanner_check_until$7, $StringScanner_peek$8, $StringScanner_eos$ques$9, $StringScanner_exist$ques$10, $StringScanner_skip$11, $StringScanner_skip_until$12, $StringScanner_get_byte$13, $StringScanner_match$ques$14, $StringScanner_pos$eq$15, $StringScanner_matched_size$16, $StringScanner_post_match$17, $StringScanner_pre_match$18, $StringScanner_reset$19, $StringScanner_rest$20, $StringScanner_rest$ques$21, $StringScanner_rest_size$22, $StringScanner_terminate$23, $StringScanner_unscan$24, $StringScanner_anchor$25; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.pos = self.$$prototype.string = self.$$prototype.working = self.$$prototype.matched = self.$$prototype.prev_pos = self.$$prototype.match = nil; + $proto.pos = $proto.string = $proto.working = $proto.matched = $proto.prev_pos = $proto.match = nil; - self.$attr_reader("pos"); - self.$attr_reader("matched"); + self.$attr_reader("pos", "matched"); - Opal.def(self, '$initialize', $StringScanner_initialize$1 = function $$initialize(string) { + $def(self, '$initialize', function $$initialize(string) { var self = this; @@ -25,17 +20,16 @@ Opal.modules["strscan"] = function(Opal) { self.matched = nil; self.working = string; return (self.match = []); - }, $StringScanner_initialize$1.$$arity = 1); + }, 1); self.$attr_reader("string"); - Opal.def(self, '$beginning_of_line?', $StringScanner_beginning_of_line$ques$2 = function() { + $def(self, '$beginning_of_line?', function $StringScanner_beginning_of_line$ques$1() { var self = this; return self.pos === 0 || self.string.charAt(self.pos - 1) === "\n" - }, $StringScanner_beginning_of_line$ques$2.$$arity = 0); - $alias(self, "bol?", "beginning_of_line?"); + }, 0); - Opal.def(self, '$scan', $StringScanner_scan$3 = function $$scan(pattern) { + $def(self, '$scan', function $$scan(pattern) { var self = this; @@ -65,9 +59,9 @@ Opal.modules["strscan"] = function(Opal) { return nil; } ; - }, $StringScanner_scan$3.$$arity = 1); + }, 1); - Opal.def(self, '$scan_until', $StringScanner_scan_until$4 = function $$scan_until(pattern) { + $def(self, '$scan_until', function $$scan_until(pattern) { var self = this; @@ -100,18 +94,20 @@ Opal.modules["strscan"] = function(Opal) { return self.matched; } ; - }, $StringScanner_scan_until$4.$$arity = 1); + }, 1); - Opal.def(self, '$[]', $StringScanner_$$$5 = function(idx) { - var self = this, $case = nil; + $def(self, '$[]', function $StringScanner_$$$2(idx) { + var self = this, $ret_or_1 = nil; if ($truthy(self.match['$empty?']())) { - return nil}; - $case = idx; - if ($$($nesting, 'Symbol')['$===']($case)) {idx = idx.$to_s()} - else if ($$($nesting, 'String')['$===']($case)) {nil} - else {idx = $$($nesting, 'Opal')['$coerce_to!'](idx, $$($nesting, 'Integer'), "to_int")}; + return nil + }; + if ($eqeqeq($$('Symbol'), ($ret_or_1 = idx))) { + idx = idx.$to_s() + } else if (!$eqeqeq($$('String'), $ret_or_1)) { + idx = $Opal['$coerce_to!'](idx, $$('Integer'), "to_int") + }; var match = self.match; @@ -129,9 +125,9 @@ Opal.modules["strscan"] = function(Opal) { return match[idx]; ; - }, $StringScanner_$$$5.$$arity = 1); + }, 1); - Opal.def(self, '$check', $StringScanner_check$6 = function $$check(pattern) { + $def(self, '$check', function $$check(pattern) { var self = this; @@ -145,9 +141,9 @@ Opal.modules["strscan"] = function(Opal) { return self.matched = result[0]; ; - }, $StringScanner_check$6.$$arity = 1); + }, 1); - Opal.def(self, '$check_until', $StringScanner_check_until$7 = function $$check_until(pattern) { + $def(self, '$check_until', function $$check_until(pattern) { var self = this; @@ -166,21 +162,21 @@ Opal.modules["strscan"] = function(Opal) { return result; - }, $StringScanner_check_until$7.$$arity = 1); + }, 1); - Opal.def(self, '$peek', $StringScanner_peek$8 = function $$peek(length) { + $def(self, '$peek', function $$peek(length) { var self = this; return self.working.substring(0, length) - }, $StringScanner_peek$8.$$arity = 1); + }, 1); - Opal.def(self, '$eos?', $StringScanner_eos$ques$9 = function() { + $def(self, '$eos?', function $StringScanner_eos$ques$3() { var self = this; return self.working.length === 0 - }, $StringScanner_eos$ques$9.$$arity = 0); + }, 0); - Opal.def(self, '$exist?', $StringScanner_exist$ques$10 = function(pattern) { + $def(self, '$exist?', function $StringScanner_exist$ques$4(pattern) { var self = this; @@ -196,9 +192,9 @@ Opal.modules["strscan"] = function(Opal) { return result.index + 1; } - }, $StringScanner_exist$ques$10.$$arity = 1); + }, 1); - Opal.def(self, '$skip', $StringScanner_skip$11 = function $$skip(pattern) { + $def(self, '$skip', function $$skip(pattern) { var self = this; @@ -223,9 +219,9 @@ Opal.modules["strscan"] = function(Opal) { return match_len; } ; - }, $StringScanner_skip$11.$$arity = 1); + }, 1); - Opal.def(self, '$skip_until', $StringScanner_skip_until$12 = function $$skip_until(pattern) { + $def(self, '$skip_until', function $$skip_until(pattern) { var self = this; @@ -240,9 +236,9 @@ Opal.modules["strscan"] = function(Opal) { return result.length; } - }, $StringScanner_skip_until$12.$$arity = 1); + }, 1); - Opal.def(self, '$get_byte', $StringScanner_get_byte$13 = function $$get_byte() { + $def(self, '$get_byte', function $$get_byte() { var self = this; @@ -260,10 +256,9 @@ Opal.modules["strscan"] = function(Opal) { return result; - }, $StringScanner_get_byte$13.$$arity = 0); - $alias(self, "getch", "get_byte"); + }, 0); - Opal.def(self, '$match?', $StringScanner_match$ques$14 = function(pattern) { + $def(self, '$match?', function $StringScanner_match$ques$5(pattern) { var self = this; @@ -280,9 +275,9 @@ Opal.modules["strscan"] = function(Opal) { return result[0].length; } ; - }, $StringScanner_match$ques$14.$$arity = 1); + }, 1); - Opal.def(self, '$pos=', $StringScanner_pos$eq$15 = function(pos) { + $def(self, '$pos=', function $StringScanner_pos$eq$6(pos) { var self = this; @@ -293,9 +288,9 @@ Opal.modules["strscan"] = function(Opal) { ; self.pos = pos; return (self.working = self.string.slice(pos)); - }, $StringScanner_pos$eq$15.$$arity = 1); + }, 1); - Opal.def(self, '$matched_size', $StringScanner_matched_size$16 = function $$matched_size() { + $def(self, '$matched_size', function $$matched_size() { var self = this; @@ -305,9 +300,9 @@ Opal.modules["strscan"] = function(Opal) { return self.matched.length - }, $StringScanner_matched_size$16.$$arity = 0); + }, 0); - Opal.def(self, '$post_match', $StringScanner_post_match$17 = function $$post_match() { + $def(self, '$post_match', function $$post_match() { var self = this; @@ -317,9 +312,9 @@ Opal.modules["strscan"] = function(Opal) { return self.string.substr(self.pos); - }, $StringScanner_post_match$17.$$arity = 0); + }, 0); - Opal.def(self, '$pre_match', $StringScanner_pre_match$18 = function $$pre_match() { + $def(self, '$pre_match', function $$pre_match() { var self = this; @@ -329,47 +324,47 @@ Opal.modules["strscan"] = function(Opal) { return self.string.substr(0, self.prev_pos); - }, $StringScanner_pre_match$18.$$arity = 0); + }, 0); - Opal.def(self, '$reset', $StringScanner_reset$19 = function $$reset() { + $def(self, '$reset', function $$reset() { var self = this; self.working = self.string; self.matched = nil; return (self.pos = 0); - }, $StringScanner_reset$19.$$arity = 0); + }, 0); - Opal.def(self, '$rest', $StringScanner_rest$20 = function $$rest() { + $def(self, '$rest', function $$rest() { var self = this; return self.working - }, $StringScanner_rest$20.$$arity = 0); + }, 0); - Opal.def(self, '$rest?', $StringScanner_rest$ques$21 = function() { + $def(self, '$rest?', function $StringScanner_rest$ques$7() { var self = this; return self.working.length !== 0 - }, $StringScanner_rest$ques$21.$$arity = 0); + }, 0); - Opal.def(self, '$rest_size', $StringScanner_rest_size$22 = function $$rest_size() { + $def(self, '$rest_size', function $$rest_size() { var self = this; return self.$rest().$size() - }, $StringScanner_rest_size$22.$$arity = 0); + }, 0); - Opal.def(self, '$terminate', $StringScanner_terminate$23 = function $$terminate() { + $def(self, '$terminate', function $$terminate() { var self = this, $writer = nil; self.match = nil; $writer = [self.string.$length()]; - $send(self, 'pos=', Opal.to_a($writer)); + $send(self, 'pos=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, $StringScanner_terminate$23.$$arity = 0); + }, 0); - Opal.def(self, '$unscan', $StringScanner_unscan$24 = function $$unscan() { + $def(self, '$unscan', function $$unscan() { var self = this; @@ -377,16 +372,17 @@ Opal.modules["strscan"] = function(Opal) { self.prev_pos = nil; self.match = nil; return self; - }, $StringScanner_unscan$24.$$arity = 0); + }, 0); + $alias(self, "bol?", "beginning_of_line?"); + $alias(self, "getch", "get_byte"); self.$private(); - return (Opal.def(self, '$anchor', $StringScanner_anchor$25 = function $$anchor(pattern) { - var self = this; - + return $def(self, '$anchor', function $$anchor(pattern) { + var flags = pattern.toString().match(/\/([^\/]+)$/); flags = flags ? flags[1] : undefined; return new RegExp('^(?:' + pattern.source + ')', flags); - }, $StringScanner_anchor$25.$$arity = 1), nil) && 'anchor'; + }, 1); })($nesting[0], null, $nesting) }; diff --git a/opal/master/strscan.min.js b/opal/master/strscan.min.js index 4ee738d5..9693eaab 100644 --- a/opal/master/strscan.min.js +++ b/opal/master/strscan.min.js @@ -1 +1 @@ -Opal.modules.strscan=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$send=Opal.send;return Opal.add_stubs(["$attr_reader","$anchor","$empty?","$===","$to_s","$coerce_to!","$scan_until","$length","$size","$rest","$pos=","$-","$private"]),function($StringScanner_anchor$25,$StringScanner_unscan$24){var $StringScanner_anchor$25=$klass($StringScanner_anchor$25,null,"StringScanner"),$nesting=[$StringScanner_anchor$25].concat($StringScanner_unscan$24);return $StringScanner_anchor$25.$$prototype.pos=$StringScanner_anchor$25.$$prototype.string=$StringScanner_anchor$25.$$prototype.working=$StringScanner_anchor$25.$$prototype.matched=$StringScanner_anchor$25.$$prototype.prev_pos=$StringScanner_anchor$25.$$prototype.match=nil,$StringScanner_anchor$25.$attr_reader("pos"),$StringScanner_anchor$25.$attr_reader("matched"),Opal.def($StringScanner_anchor$25,"$initialize",$StringScanner_unscan$24=function(string){return this.string=string,this.pos=0,this.matched=nil,this.working=string,this.match=[]},$StringScanner_unscan$24.$$arity=1),$StringScanner_anchor$25.$attr_reader("string"),Opal.def($StringScanner_anchor$25,"$beginning_of_line?",$StringScanner_unscan$24=function(){return 0===this.pos||"\n"===this.string.charAt(this.pos-1)},$StringScanner_unscan$24.$$arity=0),$alias($StringScanner_anchor$25,"bol?","beginning_of_line?"),Opal.def($StringScanner_anchor$25,"$scan",$StringScanner_unscan$24=function(result){result=(result=this.$anchor(result)).exec(this.working);return null==result?this.matched=nil:"object"==typeof result?(this.prev_pos=this.pos,this.pos+=result[0].length,this.working=this.working.substring(result[0].length),this.matched=result[0],(this.match=result)[0]):"string"==typeof result?(this.pos+=result.length,this.working=this.working.substring(result.length),result):nil},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$scan_until",$StringScanner_unscan$24=function(pattern){pattern=this.$anchor(pattern);for(var result,pos=this.pos,working=this.working;;){if(result=pattern.exec(working),pos+=1,working=working.substr(1),null!=result)return this.matched=this.string.substr(this.pos,pos-this.pos-1+result[0].length),this.match=result,this.prev_pos=pos-1,this.pos=pos,this.working=working.substr(result[0].length),this.matched;if(0===working.length)return this.match=[],this.matched=nil}},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$[]",$StringScanner_unscan$24=function(idx){if($truthy(this.match["$empty?"]()))return nil;match=idx,$$($nesting,"Symbol")["$==="](match)?idx=idx.$to_s():$$($nesting,"String")["$==="](match)||(idx=$$($nesting,"Opal")["$coerce_to!"](idx,$$($nesting,"Integer"),"to_int"));var match=this.match;return idx<0&&(idx+=match.length),idx<0||idx>=match.length||null==match[idx]?nil:match[idx]},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$check",$StringScanner_unscan$24=function(result){result=(result=this.$anchor(result)).exec(this.working);return this.matched=null==result?nil:result[0]},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$check_until",$StringScanner_unscan$24=function(result){var prev_pos=this.prev_pos,pos=this.pos,result=this.$scan_until(result);return result!==nil&&(this.matched=result.substr(-1),this.working=this.string.substr(pos)),this.prev_pos=prev_pos,this.pos=pos,result},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$peek",$StringScanner_unscan$24=function(length){return this.working.substring(0,length)},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$eos?",$StringScanner_unscan$24=function(){return 0===this.working.length},$StringScanner_unscan$24.$$arity=0),Opal.def($StringScanner_anchor$25,"$exist?",$StringScanner_unscan$24=function(result){result=result.exec(this.working);return null==result?nil:0==result.index?0:result.index+1},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$skip",$StringScanner_unscan$24=function(match_len){var result=(match_len=this.$anchor(match_len)).exec(this.working);if(null==result)return this.match=[],this.matched=nil;var match_str=result[0],match_len=match_str.length;return this.matched=match_str,this.match=result,this.prev_pos=this.pos,this.pos+=match_len,this.working=this.working.substring(match_len),match_len},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$skip_until",$StringScanner_unscan$24=function(result){result=this.$scan_until(result);return result===nil?nil:(this.matched=result.substr(-1),result.length)},$StringScanner_unscan$24.$$arity=1),Opal.def($StringScanner_anchor$25,"$get_byte",$StringScanner_unscan$24=function(){var result=nil;return this.pos=match.length||null==match[idx]?nil:match[idx]}),1),$def(self,"$check",(function(pattern){var result=(pattern=this.$anchor(pattern)).exec(this.working);return this.matched=null==result?nil:result[0]}),1),$def(self,"$check_until",(function(pattern){var prev_pos=this.prev_pos,pos=this.pos,result=this.$scan_until(pattern);return result!==nil&&(this.matched=result.substr(-1),this.working=this.string.substr(pos)),this.prev_pos=prev_pos,this.pos=pos,result}),1),$def(self,"$peek",(function(length){return this.working.substring(0,length)}),1),$def(self,"$eos?",(function(){return 0===this.working.length}),0),$def(self,"$exist?",(function(pattern){var result=pattern.exec(this.working);return null==result?nil:0==result.index?0:result.index+1}),1),$def(self,"$skip",(function(pattern){var result=(pattern=this.$anchor(pattern)).exec(this.working);if(null==result)return this.match=[],this.matched=nil;var match_str=result[0],match_len=match_str.length;return this.matched=match_str,this.match=result,this.prev_pos=this.pos,this.pos+=match_len,this.working=this.working.substring(match_len),match_len}),1),$def(self,"$skip_until",(function(pattern){var result=this.$scan_until(pattern);return result===nil?nil:(this.matched=result.substr(-1),result.length)}),1),$def(self,"$get_byte",(function(){var result=nil;return this.pos" - }, $Template_inspect$5.$$arity = 0); + return "#" + }, 0); - Opal.def(self, '$render', $Template_render$6 = function $$render(ctx) { + $def(self, '$render', function $$render(ctx) { var self = this; - if (ctx == null) { - ctx = self; - }; - return $send(ctx, 'instance_exec', [$$($nesting, 'OutputBuffer').$new()], self.body.$to_proc()); - }, $Template_render$6.$$arity = -1); - return (function($base, $super, $parent_nesting) { + if (ctx == null) ctx = self;; + return $send(ctx, 'instance_exec', [$$('OutputBuffer').$new()], self.body.$to_proc()); + }, -1); + return (function($base, $super) { var self = $klass($base, $super, 'OutputBuffer'); - var $nesting = [self].concat($parent_nesting), $OutputBuffer_initialize$7, $OutputBuffer_append$8, $OutputBuffer_join$9; + var $proto = self.$$prototype; - self.$$prototype.buffer = nil; + $proto.buffer = nil; - Opal.def(self, '$initialize', $OutputBuffer_initialize$7 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.buffer = []) - }, $OutputBuffer_initialize$7.$$arity = 0); + }, 0); - Opal.def(self, '$append', $OutputBuffer_append$8 = function $$append(str) { + $def(self, '$append', function $$append(str) { var self = this; return self.buffer['$<<'](str) - }, $OutputBuffer_append$8.$$arity = 1); - $alias(self, "append=", "append"); - return (Opal.def(self, '$join', $OutputBuffer_join$9 = function $$join() { + }, 1); + + $def(self, '$join', function $$join() { var self = this; return self.buffer.$join() - }, $OutputBuffer_join$9.$$arity = 0), nil) && 'join'; - })($nesting[0], null, $nesting); + }, 0); + return $alias(self, "append=", "append"); + })($nesting[0], null); })($nesting[0], null, $nesting) }; diff --git a/opal/master/template.min.js b/opal/master/template.min.js index b5353374..3cba1cc5 100644 --- a/opal/master/template.min.js +++ b/opal/master/template.min.js @@ -1 +1 @@ -Opal.modules.template=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $nesting=[],nil=Opal.nil,$$=(Opal.$$$,Opal.$$),$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$send=Opal.send,$alias=Opal.alias;return Opal.add_stubs(["$[]","$[]=","$-","$keys","$attr_reader","$instance_exec","$new","$to_proc","$<<","$join"]),function($Template_render$6,$Template_inspect$5){var $Template_initialize$4,$Template_render$6=$klass($Template_render$6,null,"Template"),$nesting=[$Template_render$6].concat($Template_inspect$5);return $Template_render$6.$$prototype.name=$Template_render$6.$$prototype.body=nil,$Template_render$6._cache=$hash2([],{}),Opal.defs($Template_render$6,"$[]",$Template_inspect$5=function(name){var $ret_or_1;return null==this._cache&&(this._cache=nil),$truthy($ret_or_1=this._cache["$[]"](name))?$ret_or_1:this._cache["$[]"]("templates/"+name)},$Template_inspect$5.$$arity=1),Opal.defs($Template_render$6,"$[]=",$Template_inspect$5=function(name,instance){var $writer;return null==this._cache&&(this._cache=nil),$writer=[name,instance],$send(this._cache,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Template_inspect$5.$$arity=2),Opal.defs($Template_render$6,"$paths",$Template_inspect$5=function(){return null==this._cache&&(this._cache=nil),this._cache.$keys()},$Template_inspect$5.$$arity=0),$Template_render$6.$attr_reader("body"),Opal.def($Template_render$6,"$initialize",$Template_initialize$4=function(name){var $writer,$iter=$Template_initialize$4.$$p,$a=$iter||nil;return $iter&&($Template_initialize$4.$$p=null),$iter&&($Template_initialize$4.$$p=null),$a=[name,$a],this.name=$a[0],this.body=$a[1],$writer=[name,this],$send($$($nesting,"Template"),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Template_initialize$4.$$arity=1),Opal.def($Template_render$6,"$inspect",$Template_inspect$5=function(){return"#"},$Template_inspect$5.$$arity=0),Opal.def($Template_render$6,"$render",$Template_render$6=function(ctx){return null==ctx&&(ctx=this),$send(ctx,"instance_exec",[$$($nesting,"OutputBuffer").$new()],this.body.$to_proc())},$Template_render$6.$$arity=-1),function($OutputBuffer_join$9,$OutputBuffer_append$8){$OutputBuffer_join$9=$klass($OutputBuffer_join$9,null,"OutputBuffer"),[$OutputBuffer_join$9].concat($OutputBuffer_append$8);return $OutputBuffer_join$9.$$prototype.buffer=nil,Opal.def($OutputBuffer_join$9,"$initialize",$OutputBuffer_append$8=function(){return this.buffer=[]},$OutputBuffer_append$8.$$arity=0),Opal.def($OutputBuffer_join$9,"$append",$OutputBuffer_append$8=function(str){return this.buffer["$<<"](str)},$OutputBuffer_append$8.$$arity=1),$alias($OutputBuffer_join$9,"append=","append"),Opal.def($OutputBuffer_join$9,"$join",$OutputBuffer_join$9=function(){return this.buffer.$join()},$OutputBuffer_join$9.$$arity=0),nil&&"join"}($nesting[0],$nesting)}($nesting[0],$nesting)}; +Opal.modules.template=function(Opal){var $nesting=[],nil=Opal.nil,$klass=Opal.klass,$hash2=Opal.hash2,$truthy=Opal.truthy,$defs=Opal.defs,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$def=Opal.def,$alias=Opal.alias;return Opal.add_stubs("[],[]=,-,keys,attr_reader,instance_exec,new,to_proc,<<,join"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Template"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;return $proto.name=$proto.body=nil,self._cache=$hash2([],{}),$defs(self,"$[]",(function(name){var $ret_or_1;return null==this._cache&&(this._cache=nil),$truthy($ret_or_1=this._cache["$[]"](name))?$ret_or_1:this._cache["$[]"]("templates/"+name)}),1),$defs(self,"$[]=",(function(name,instance){var $writer;return null==this._cache&&(this._cache=nil),$writer=[name,instance],$send(this._cache,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$defs(self,"$paths",(function(){return null==this._cache&&(this._cache=nil),this._cache.$keys()}),0),self.$attr_reader("body"),$def(self,"$initialize",(function $$initialize(name){var $a,$writer,body=$$initialize.$$p||nil;return delete $$initialize.$$p,$a=[name,body],this.name=$a[0],this.body=$a[1],$writer=[name,this],$send($$("Template"),"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),1),$def(self,"$inspect",(function(){return"#"}),0),$def(self,"$render",(function(ctx){return null==ctx&&(ctx=this),$send(ctx,"instance_exec",[$$("OutputBuffer").$new()],this.body.$to_proc())}),-1),function($base,$super){var self=$klass($base,null,"OutputBuffer");return self.$$prototype.buffer=nil,$def(self,"$initialize",(function(){return this.buffer=[]}),0),$def(self,"$append",(function(str){return this.buffer["$<<"](str)}),1),$def(self,"$join",(function(){return this.buffer.$join()}),0),$alias(self,"append=","append")}($nesting[0])}($nesting[0],0,$nesting)}; diff --git a/opal/master/template.min.js.gz b/opal/master/template.min.js.gz index c2e12be6..083d5b80 100644 Binary files a/opal/master/template.min.js.gz and b/opal/master/template.min.js.gz differ diff --git a/opal/master/thread.js b/opal/master/thread.js index 44a4c9f6..8594ca44 100644 --- a/opal/master/thread.js +++ b/opal/master/thread.js @@ -1,191 +1,179 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["thread"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $alias = Opal.alias; - - Opal.add_stubs(['$allocate', '$core_initialize!', '$current', '$raise', '$[]', '$coerce_key_name', '$[]=', '$-', '$key?', '$keys', '$private', '$coerce_to!', '$clear', '$empty?', '$size', '$shift', '$push', '$each', '$to_proc', '$=~', '$last_match', '$to_i', '$inspect', '$attr_reader', '$locked?', '$lock', '$unlock']); - - (function($base, $super, $parent_nesting) { - var self = $klass($base, $super, 'ThreadError'); - - var $nesting = [self].concat($parent_nesting); +Opal.modules["thread"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $truthy = Opal.truthy, $defs = Opal.defs, $def = Opal.def, $send = Opal.send, $to_a = Opal.to_a, $rb_minus = Opal.rb_minus, $hash2 = Opal.hash2, $Opal = Opal.Opal, $alias = Opal.alias, $const_set = Opal.const_set; - return nil - })($nesting[0], $$($nesting, 'StandardError'), $nesting); + Opal.add_stubs('allocate,core_initialize!,current,raise,[],coerce_key_name,[]=,-,key?,keys,private,coerce_to!,clear,empty?,size,shift,push,each,to_proc,=~,last_match,to_i,inspect,attr_reader,locked?,lock,unlock'); + + $klass($nesting[0], $$('StandardError'), 'ThreadError'); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Thread'); - var $nesting = [self].concat($parent_nesting), $Thread_current$1, $Thread_list$2, $Thread_initialize$3, $Thread_$$$4, $Thread_$$$eq$5, $Thread_key$ques$6, $Thread_keys$7, $Thread_thread_variable_get$8, $Thread_thread_variable_set$9, $Thread_thread_variable$ques$10, $Thread_thread_variables$11, $Thread_core_initialize$excl$12, $Thread_coerce_key_name$13; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.fiber_locals = self.$$prototype.thread_locals = nil; + $proto.fiber_locals = $proto.thread_locals = nil; - Opal.defs(self, '$current', $Thread_current$1 = function $$current() { + $defs(self, '$current', function $$current() { var self = this; if (self.current == null) self.current = nil; - if ($truthy(self.current)) { - } else { + if (!$truthy(self.current)) { self.current = self.$allocate(); self.current['$core_initialize!'](); }; return self.current; - }, $Thread_current$1.$$arity = 0); - Opal.defs(self, '$list', $Thread_list$2 = function $$list() { + }, 0); + $defs(self, '$list', function $$list() { var self = this; return [self.$current()] - }, $Thread_list$2.$$arity = 0); + }, 0); - Opal.def(self, '$initialize', $Thread_initialize$3 = function $$initialize($a) { + $def(self, '$initialize', function $$initialize($a) { var $post_args, args, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); + $post_args = Opal.slice.call(arguments); args = $post_args;; - return self.$raise($$($nesting, 'NotImplementedError'), "Thread creation not available"); - }, $Thread_initialize$3.$$arity = -1); + return self.$raise($$('NotImplementedError'), "Thread creation not available"); + }, -1); - Opal.def(self, '$[]', $Thread_$$$4 = function(key) { + $def(self, '$[]', function $Thread_$$$1(key) { var self = this; return self.fiber_locals['$[]'](self.$coerce_key_name(key)) - }, $Thread_$$$4.$$arity = 1); + }, 1); - Opal.def(self, '$[]=', $Thread_$$$eq$5 = function(key, value) { + $def(self, '$[]=', function $Thread_$$$eq$2(key, value) { var self = this, $writer = nil; $writer = [self.$coerce_key_name(key), value]; - $send(self.fiber_locals, '[]=', Opal.to_a($writer)); + $send(self.fiber_locals, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Thread_$$$eq$5.$$arity = 2); + }, 2); - Opal.def(self, '$key?', $Thread_key$ques$6 = function(key) { + $def(self, '$key?', function $Thread_key$ques$3(key) { var self = this; return self.fiber_locals['$key?'](self.$coerce_key_name(key)) - }, $Thread_key$ques$6.$$arity = 1); + }, 1); - Opal.def(self, '$keys', $Thread_keys$7 = function $$keys() { + $def(self, '$keys', function $$keys() { var self = this; return self.fiber_locals.$keys() - }, $Thread_keys$7.$$arity = 0); + }, 0); - Opal.def(self, '$thread_variable_get', $Thread_thread_variable_get$8 = function $$thread_variable_get(key) { + $def(self, '$thread_variable_get', function $$thread_variable_get(key) { var self = this; return self.thread_locals['$[]'](self.$coerce_key_name(key)) - }, $Thread_thread_variable_get$8.$$arity = 1); + }, 1); - Opal.def(self, '$thread_variable_set', $Thread_thread_variable_set$9 = function $$thread_variable_set(key, value) { + $def(self, '$thread_variable_set', function $$thread_variable_set(key, value) { var self = this, $writer = nil; $writer = [self.$coerce_key_name(key), value]; - $send(self.thread_locals, '[]=', Opal.to_a($writer)); + $send(self.thread_locals, '[]=', $to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, $Thread_thread_variable_set$9.$$arity = 2); + }, 2); - Opal.def(self, '$thread_variable?', $Thread_thread_variable$ques$10 = function(key) { + $def(self, '$thread_variable?', function $Thread_thread_variable$ques$4(key) { var self = this; return self.thread_locals['$key?'](self.$coerce_key_name(key)) - }, $Thread_thread_variable$ques$10.$$arity = 1); + }, 1); - Opal.def(self, '$thread_variables', $Thread_thread_variables$11 = function $$thread_variables() { + $def(self, '$thread_variables', function $$thread_variables() { var self = this; return self.thread_locals.$keys() - }, $Thread_thread_variables$11.$$arity = 0); + }, 0); self.$private(); - Opal.def(self, '$core_initialize!', $Thread_core_initialize$excl$12 = function() { + $def(self, '$core_initialize!', function $Thread_core_initialize$excl$5() { var self = this; self.thread_locals = $hash2([], {}); return (self.fiber_locals = $hash2([], {})); - }, $Thread_core_initialize$excl$12.$$arity = 0); + }, 0); - Opal.def(self, '$coerce_key_name', $Thread_coerce_key_name$13 = function $$coerce_key_name(key) { - var self = this; - - return $$($nesting, 'Opal')['$coerce_to!'](key, $$($nesting, 'String'), "to_s") - }, $Thread_coerce_key_name$13.$$arity = 1); + $def(self, '$coerce_key_name', function $$coerce_key_name(key) { + + return $Opal['$coerce_to!'](key, $$('String'), "to_s") + }, 1); (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Queue'); - var $nesting = [self].concat($parent_nesting), $Queue_initialize$14, $Queue_clear$15, $Queue_empty$ques$16, $Queue_size$17, $Queue_pop$18, $Queue_push$19, $Queue_each$20; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.storage = nil; + $proto.storage = nil; - Opal.def(self, '$initialize', $Queue_initialize$14 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return self.$clear() - }, $Queue_initialize$14.$$arity = 0); + }, 0); - Opal.def(self, '$clear', $Queue_clear$15 = function $$clear() { + $def(self, '$clear', function $$clear() { var self = this; return (self.storage = []) - }, $Queue_clear$15.$$arity = 0); + }, 0); - Opal.def(self, '$empty?', $Queue_empty$ques$16 = function() { + $def(self, '$empty?', function $Queue_empty$ques$6() { var self = this; return self.storage['$empty?']() - }, $Queue_empty$ques$16.$$arity = 0); + }, 0); - Opal.def(self, '$size', $Queue_size$17 = function $$size() { + $def(self, '$size', function $$size() { var self = this; return self.storage.$size() - }, $Queue_size$17.$$arity = 0); - $alias(self, "length", "size"); + }, 0); - Opal.def(self, '$pop', $Queue_pop$18 = function $$pop(non_block) { + $def(self, '$pop', function $$pop(non_block) { var self = this; - if (non_block == null) { - non_block = false; - }; + if (non_block == null) non_block = false;; if ($truthy(self['$empty?']())) { if ($truthy(non_block)) { - self.$raise($$($nesting, 'ThreadError'), "Queue empty")}; - self.$raise($$($nesting, 'ThreadError'), "Deadlock");}; + self.$raise($$('ThreadError'), "Queue empty") + }; + self.$raise($$('ThreadError'), "Deadlock"); + }; return self.storage.$shift(); - }, $Queue_pop$18.$$arity = -1); - $alias(self, "shift", "pop"); - $alias(self, "deq", "pop"); + }, -1); - Opal.def(self, '$push', $Queue_push$19 = function $$push(value) { + $def(self, '$push', function $$push(value) { var self = this; return self.storage.$push(value) - }, $Queue_push$19.$$arity = 1); - $alias(self, "<<", "push"); - $alias(self, "enq", "push"); - return (Opal.def(self, '$each', $Queue_each$20 = function $$each() { - var $iter = $Queue_each$20.$$p, block = $iter || nil, self = this; + }, 1); + + $def(self, '$each', function $$each() { + var block = $$each.$$p || nil, self = this; - if ($iter) $Queue_each$20.$$p = null; + delete $$each.$$p; - - if ($iter) $Queue_each$20.$$p = null;; + ; return $send(self.storage, 'each', [], block.$to_proc()); - }, $Queue_each$20.$$arity = 0), nil) && 'each'; + }, 0); + $alias(self, "<<", "push"); + $alias(self, "deq", "pop"); + $alias(self, "enq", "push"); + $alias(self, "length", "size"); + return $alias(self, "shift", "pop"); })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Backtrace'); @@ -195,82 +183,79 @@ Opal.modules["thread"] = function(Opal) { return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Location'); - var $nesting = [self].concat($parent_nesting), $Location_initialize$21, $Location_to_s$22, $Location_inspect$23; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.label = self.$$prototype.str = nil; + $proto.label = $proto.str = nil; - Opal.def(self, '$initialize', $Location_initialize$21 = function $$initialize(str) { + $def(self, '$initialize', function $$initialize(str) { var self = this, $ret_or_1 = nil; self.str = str; str['$=~'](/^(.*?):(\d+):(\d+):in `(.*?)'$/); - self.path = $$($nesting, 'Regexp').$last_match(1); - self.label = $$($nesting, 'Regexp').$last_match(4); - self.lineno = $$($nesting, 'Regexp').$last_match(2).$to_i(); + self.path = $$('Regexp').$last_match(1); + self.label = $$('Regexp').$last_match(4); + self.lineno = $$('Regexp').$last_match(2).$to_i(); self.label['$=~'](/(\w+)$/); - return (self.base_label = (function() {if ($truthy(($ret_or_1 = $$($nesting, 'Regexp').$last_match(1)))) { - return $ret_or_1 - } else { - return self.label - }; return nil; })()); - }, $Location_initialize$21.$$arity = 1); + return (self.base_label = ($truthy(($ret_or_1 = $$('Regexp').$last_match(1))) ? ($ret_or_1) : (self.label))); + }, 1); - Opal.def(self, '$to_s', $Location_to_s$22 = function $$to_s() { + $def(self, '$to_s', function $$to_s() { var self = this; return self.str - }, $Location_to_s$22.$$arity = 0); + }, 0); - Opal.def(self, '$inspect', $Location_inspect$23 = function $$inspect() { + $def(self, '$inspect', function $$inspect() { var self = this; return self.str.$inspect() - }, $Location_inspect$23.$$arity = 0); + }, 0); self.$attr_reader("base_label", "label", "lineno", "path"); return $alias(self, "absolute_path", "path"); })($nesting[0], null, $nesting) })($nesting[0], null, $nesting); })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'Queue', $$$($$($nesting, 'Thread'), 'Queue')); + $const_set($nesting[0], 'Queue', $$$($$('Thread'), 'Queue')); return (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Mutex'); - var $nesting = [self].concat($parent_nesting), $Mutex_initialize$24, $Mutex_lock$25, $Mutex_locked$ques$26, $Mutex_owned$ques$27, $Mutex_try_lock$28, $Mutex_unlock$29, $Mutex_synchronize$30; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; - self.$$prototype.locked = nil; + $proto.locked = nil; - Opal.def(self, '$initialize', $Mutex_initialize$24 = function $$initialize() { + $def(self, '$initialize', function $$initialize() { var self = this; return (self.locked = false) - }, $Mutex_initialize$24.$$arity = 0); + }, 0); - Opal.def(self, '$lock', $Mutex_lock$25 = function $$lock() { + $def(self, '$lock', function $$lock() { var self = this; if ($truthy(self.locked)) { - self.$raise($$($nesting, 'ThreadError'), "Deadlock")}; + self.$raise($$('ThreadError'), "Deadlock") + }; self.locked = true; return self; - }, $Mutex_lock$25.$$arity = 0); + }, 0); - Opal.def(self, '$locked?', $Mutex_locked$ques$26 = function() { + $def(self, '$locked?', function $Mutex_locked$ques$7() { var self = this; return self.locked - }, $Mutex_locked$ques$26.$$arity = 0); + }, 0); - Opal.def(self, '$owned?', $Mutex_owned$ques$27 = function() { + $def(self, '$owned?', function $Mutex_owned$ques$8() { var self = this; return self.locked - }, $Mutex_owned$ques$27.$$arity = 0); + }, 0); - Opal.def(self, '$try_lock', $Mutex_try_lock$28 = function $$try_lock() { + $def(self, '$try_lock', function $$try_lock() { var self = this; if ($truthy(self['$locked?']())) { @@ -280,23 +265,22 @@ Opal.modules["thread"] = function(Opal) { self.$lock(); return true; } - }, $Mutex_try_lock$28.$$arity = 0); + }, 0); - Opal.def(self, '$unlock', $Mutex_unlock$29 = function $$unlock() { + $def(self, '$unlock', function $$unlock() { var self = this; - if ($truthy(self.locked)) { - } else { - self.$raise($$($nesting, 'ThreadError'), "Mutex not locked") + if (!$truthy(self.locked)) { + self.$raise($$('ThreadError'), "Mutex not locked") }; self.locked = false; return self; - }, $Mutex_unlock$29.$$arity = 0); - return (Opal.def(self, '$synchronize', $Mutex_synchronize$30 = function $$synchronize() { - var $iter = $Mutex_synchronize$30.$$p, $yield = $iter || nil, self = this; + }, 0); + return $def(self, '$synchronize', function $$synchronize() { + var $yield = $$synchronize.$$p || nil, self = this; - if ($iter) $Mutex_synchronize$30.$$p = null; + delete $$synchronize.$$p; self.$lock(); @@ -305,6 +289,6 @@ Opal.modules["thread"] = function(Opal) { } finally { self.$unlock() }; })();; - }, $Mutex_synchronize$30.$$arity = 0), nil) && 'synchronize'; + }, 0); })($nesting[0], null, $nesting); }; diff --git a/opal/master/thread.min.js b/opal/master/thread.min.js index ae7e12a3..d3086b0e 100644 --- a/opal/master/thread.min.js +++ b/opal/master/thread.min.js @@ -1 +1 @@ -Opal.modules.thread=function(Opal){function $rb_minus(lhs,rhs){return"number"==typeof lhs&&"number"==typeof rhs?lhs-rhs:lhs["$-"](rhs)}Opal.top;var $base,$super,$parent_nesting,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2,$alias=Opal.alias;return Opal.add_stubs(["$allocate","$core_initialize!","$current","$raise","$[]","$coerce_key_name","$[]=","$-","$key?","$keys","$private","$coerce_to!","$clear","$empty?","$size","$shift","$push","$each","$to_proc","$=~","$last_match","$to_i","$inspect","$attr_reader","$locked?","$lock","$unlock"]),$base=$nesting[0],$super=$$($nesting,"StandardError"),$parent_nesting=$nesting,[$klass($base,$super,"ThreadError")].concat($parent_nesting),function($Thread_coerce_key_name$13,$Thread_core_initialize$excl$12){var $nesting=[$Thread_coerce_key_name$13=$klass($Thread_coerce_key_name$13,null,"Thread")].concat($Thread_core_initialize$excl$12);$Thread_coerce_key_name$13.$$prototype.fiber_locals=$Thread_coerce_key_name$13.$$prototype.thread_locals=nil,Opal.defs($Thread_coerce_key_name$13,"$current",$Thread_core_initialize$excl$12=function(){return null==this.current&&(this.current=nil),$truthy(this.current)||(this.current=this.$allocate(),this.current["$core_initialize!"]()),this.current},$Thread_core_initialize$excl$12.$$arity=0),Opal.defs($Thread_coerce_key_name$13,"$list",$Thread_core_initialize$excl$12=function(){return[this.$current()]},$Thread_core_initialize$excl$12.$$arity=0),Opal.def($Thread_coerce_key_name$13,"$initialize",$Thread_core_initialize$excl$12=function($a){Opal.slice.call(arguments,0,arguments.length);return this.$raise($$($nesting,"NotImplementedError"),"Thread creation not available")},$Thread_core_initialize$excl$12.$$arity=-1),Opal.def($Thread_coerce_key_name$13,"$[]",$Thread_core_initialize$excl$12=function(key){return this.fiber_locals["$[]"](this.$coerce_key_name(key))},$Thread_core_initialize$excl$12.$$arity=1),Opal.def($Thread_coerce_key_name$13,"$[]=",$Thread_core_initialize$excl$12=function(key,value){var $writer=[this.$coerce_key_name(key),value];return $send(this.fiber_locals,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Thread_core_initialize$excl$12.$$arity=2),Opal.def($Thread_coerce_key_name$13,"$key?",$Thread_core_initialize$excl$12=function(key){return this.fiber_locals["$key?"](this.$coerce_key_name(key))},$Thread_core_initialize$excl$12.$$arity=1),Opal.def($Thread_coerce_key_name$13,"$keys",$Thread_core_initialize$excl$12=function(){return this.fiber_locals.$keys()},$Thread_core_initialize$excl$12.$$arity=0),Opal.def($Thread_coerce_key_name$13,"$thread_variable_get",$Thread_core_initialize$excl$12=function(key){return this.thread_locals["$[]"](this.$coerce_key_name(key))},$Thread_core_initialize$excl$12.$$arity=1),Opal.def($Thread_coerce_key_name$13,"$thread_variable_set",$Thread_core_initialize$excl$12=function(key,value){var $writer=[this.$coerce_key_name(key),value];return $send(this.thread_locals,"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]},$Thread_core_initialize$excl$12.$$arity=2),Opal.def($Thread_coerce_key_name$13,"$thread_variable?",$Thread_core_initialize$excl$12=function(key){return this.thread_locals["$key?"](this.$coerce_key_name(key))},$Thread_core_initialize$excl$12.$$arity=1),Opal.def($Thread_coerce_key_name$13,"$thread_variables",$Thread_core_initialize$excl$12=function(){return this.thread_locals.$keys()},$Thread_core_initialize$excl$12.$$arity=0),$Thread_coerce_key_name$13.$private(),Opal.def($Thread_coerce_key_name$13,"$core_initialize!",$Thread_core_initialize$excl$12=function(){return this.thread_locals=$hash2([],{}),this.fiber_locals=$hash2([],{})},$Thread_core_initialize$excl$12.$$arity=0),Opal.def($Thread_coerce_key_name$13,"$coerce_key_name",$Thread_coerce_key_name$13=function(key){return $$($nesting,"Opal")["$coerce_to!"](key,$$($nesting,"String"),"to_s")},$Thread_coerce_key_name$13.$$arity=1),function(self,$Queue_push$19){var $Queue_each$20,$nesting=[self=$klass(self,null,"Queue")].concat($Queue_push$19);self.$$prototype.storage=nil,Opal.def(self,"$initialize",$Queue_push$19=function(){return this.$clear()},$Queue_push$19.$$arity=0),Opal.def(self,"$clear",$Queue_push$19=function(){return this.storage=[]},$Queue_push$19.$$arity=0),Opal.def(self,"$empty?",$Queue_push$19=function(){return this.storage["$empty?"]()},$Queue_push$19.$$arity=0),Opal.def(self,"$size",$Queue_push$19=function(){return this.storage.$size()},$Queue_push$19.$$arity=0),$alias(self,"length","size"),Opal.def(self,"$pop",$Queue_push$19=function(non_block){return null==non_block&&(non_block=!1),$truthy(this["$empty?"]())&&($truthy(non_block)&&this.$raise($$($nesting,"ThreadError"),"Queue empty"),this.$raise($$($nesting,"ThreadError"),"Deadlock")),this.storage.$shift()},$Queue_push$19.$$arity=-1),$alias(self,"shift","pop"),$alias(self,"deq","pop"),Opal.def(self,"$push",$Queue_push$19=function(value){return this.storage.$push(value)},$Queue_push$19.$$arity=1),$alias(self,"<<","push"),$alias(self,"enq","push"),Opal.def(self,"$each",$Queue_each$20=function(){var $iter=$Queue_each$20.$$p,block=$iter||nil;return $iter&&($Queue_each$20.$$p=null),$iter&&($Queue_each$20.$$p=null),$send(this.storage,"each",[],block.$to_proc())},$Queue_each$20.$$arity=0)}($nesting[0],$nesting),function($base,$nesting){!function(self,$Location_inspect$23){var $nesting=[self=$klass(self,null,"Location")].concat($Location_inspect$23);self.$$prototype.label=self.$$prototype.str=nil,Opal.def(self,"$initialize",$Location_inspect$23=function(str){var self=this,$ret_or_1=nil;return(self.str=str)["$=~"](/^(.*?):(\d+):(\d+):in `(.*?)'$/),self.path=$$($nesting,"Regexp").$last_match(1),self.label=$$($nesting,"Regexp").$last_match(4),self.lineno=$$($nesting,"Regexp").$last_match(2).$to_i(),self.label["$=~"](/(\w+)$/),self.base_label=$truthy($ret_or_1=$$($nesting,"Regexp").$last_match(1))?$ret_or_1:self.label},$Location_inspect$23.$$arity=1),Opal.def(self,"$to_s",$Location_inspect$23=function(){return this.str},$Location_inspect$23.$$arity=0),Opal.def(self,"$inspect",$Location_inspect$23=function(){return this.str.$inspect()},$Location_inspect$23.$$arity=0),self.$attr_reader("base_label","label","lineno","path"),$alias(self,"absolute_path","path")}(($nesting=[$klass($base,null,"Backtrace")].concat($nesting))[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting),Opal.const_set($nesting[0],"Queue",$$$($$($nesting,"Thread"),"Queue")),function(self,$Mutex_unlock$29){var $Mutex_synchronize$30,self=$klass(self,null,"Mutex"),$nesting=[self].concat($Mutex_unlock$29);return self.$$prototype.locked=nil,Opal.def(self,"$initialize",$Mutex_unlock$29=function(){return this.locked=!1},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$lock",$Mutex_unlock$29=function(){return $truthy(this.locked)&&this.$raise($$($nesting,"ThreadError"),"Deadlock"),this.locked=!0,this},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$locked?",$Mutex_unlock$29=function(){return this.locked},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$owned?",$Mutex_unlock$29=function(){return this.locked},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$try_lock",$Mutex_unlock$29=function(){return!$truthy(this["$locked?"]())&&(this.$lock(),!0)},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$unlock",$Mutex_unlock$29=function(){return $truthy(this.locked)||this.$raise($$($nesting,"ThreadError"),"Mutex not locked"),this.locked=!1,this},$Mutex_unlock$29.$$arity=0),Opal.def(self,"$synchronize",$Mutex_synchronize$30=function(){var $iter=$Mutex_synchronize$30.$$p,$yield=$iter||nil,self=this;return $iter&&($Mutex_synchronize$30.$$p=null),self.$lock(),function(){try{return Opal.yieldX($yield,[])}finally{self.$unlock()}}()},$Mutex_synchronize$30.$$arity=0),nil&&"synchronize"}($nesting[0],$nesting)}; +Opal.modules.thread=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$truthy=Opal.truthy,$defs=Opal.defs,$def=Opal.def,$send=Opal.send,$to_a=Opal.to_a,$rb_minus=Opal.rb_minus,$hash2=Opal.hash2,$Opal=Opal.Opal,$alias=Opal.alias,$const_set=Opal.const_set;return Opal.add_stubs("allocate,core_initialize!,current,raise,[],coerce_key_name,[]=,-,key?,keys,private,coerce_to!,clear,empty?,size,shift,push,each,to_proc,=~,last_match,to_i,inspect,attr_reader,locked?,lock,unlock"),$klass($nesting[0],$$("StandardError"),"ThreadError"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Thread"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.fiber_locals=$proto.thread_locals=nil,$defs(self,"$current",(function(){return null==this.current&&(this.current=nil),$truthy(this.current)||(this.current=this.$allocate(),this.current["$core_initialize!"]()),this.current}),0),$defs(self,"$list",(function(){return[this.$current()]}),0),$def(self,"$initialize",(function($a){var self=this;return Opal.slice.call(arguments),self.$raise($$("NotImplementedError"),"Thread creation not available")}),-1),$def(self,"$[]",(function(key){return this.fiber_locals["$[]"](this.$coerce_key_name(key))}),1),$def(self,"$[]=",(function(key,value){var $writer;return $writer=[this.$coerce_key_name(key),value],$send(this.fiber_locals,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$def(self,"$key?",(function(key){return this.fiber_locals["$key?"](this.$coerce_key_name(key))}),1),$def(self,"$keys",(function(){return this.fiber_locals.$keys()}),0),$def(self,"$thread_variable_get",(function(key){return this.thread_locals["$[]"](this.$coerce_key_name(key))}),1),$def(self,"$thread_variable_set",(function(key,value){var $writer;return $writer=[this.$coerce_key_name(key),value],$send(this.thread_locals,"[]=",$to_a($writer)),$writer[$rb_minus($writer.length,1)]}),2),$def(self,"$thread_variable?",(function(key){return this.thread_locals["$key?"](this.$coerce_key_name(key))}),1),$def(self,"$thread_variables",(function(){return this.thread_locals.$keys()}),0),self.$private(),$def(self,"$core_initialize!",(function(){return this.thread_locals=$hash2([],{}),this.fiber_locals=$hash2([],{})}),0),$def(self,"$coerce_key_name",(function(key){return $Opal["$coerce_to!"](key,$$("String"),"to_s")}),1),function($base,$super,$parent_nesting){var self=$klass($base,null,"Queue"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);self.$$prototype.storage=nil,$def(self,"$initialize",(function(){return this.$clear()}),0),$def(self,"$clear",(function(){return this.storage=[]}),0),$def(self,"$empty?",(function(){return this.storage["$empty?"]()}),0),$def(self,"$size",(function(){return this.storage.$size()}),0),$def(self,"$pop",(function(non_block){return null==non_block&&(non_block=!1),$truthy(this["$empty?"]())&&($truthy(non_block)&&this.$raise($$("ThreadError"),"Queue empty"),this.$raise($$("ThreadError"),"Deadlock")),this.storage.$shift()}),-1),$def(self,"$push",(function(value){return this.storage.$push(value)}),1),$def(self,"$each",(function $$each(){var block=$$each.$$p||nil;return delete $$each.$$p,$send(this.storage,"each",[],block.$to_proc())}),0),$alias(self,"<<","push"),$alias(self,"deq","pop"),$alias(self,"enq","push"),$alias(self,"length","size"),$alias(self,"shift","pop")}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var $nesting=[$klass($base,null,"Backtrace")].concat($parent_nesting);(function($base,$super,$parent_nesting){var self=$klass($base,null,"Location"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.label=$proto.str=nil,$def(self,"$initialize",(function(str){var $ret_or_1;return this.str=str,str["$=~"](/^(.*?):(\d+):(\d+):in `(.*?)'$/),this.path=$$("Regexp").$last_match(1),this.label=$$("Regexp").$last_match(4),this.lineno=$$("Regexp").$last_match(2).$to_i(),this.label["$=~"](/(\w+)$/),this.base_label=$truthy($ret_or_1=$$("Regexp").$last_match(1))?$ret_or_1:this.label}),1),$def(self,"$to_s",(function(){return this.str}),0),$def(self,"$inspect",(function(){return this.str.$inspect()}),0),self.$attr_reader("base_label","label","lineno","path"),$alias(self,"absolute_path","path")})($nesting[0],0,$nesting)}($nesting[0],0,$nesting)}($nesting[0],0,$nesting),$const_set($nesting[0],"Queue",$$$($$("Thread"),"Queue")),function($base,$super,$parent_nesting){var self=$klass($base,null,"Mutex"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.locked=nil,$def(self,"$initialize",(function(){return this.locked=!1}),0),$def(self,"$lock",(function(){return $truthy(this.locked)&&this.$raise($$("ThreadError"),"Deadlock"),this.locked=!0,this}),0),$def(self,"$locked?",(function(){return this.locked}),0),$def(self,"$owned?",(function(){return this.locked}),0),$def(self,"$try_lock",(function(){return!$truthy(this["$locked?"]())&&(this.$lock(),!0)}),0),$def(self,"$unlock",(function(){return $truthy(this.locked)||this.$raise($$("ThreadError"),"Mutex not locked"),this.locked=!1,this}),0),$def(self,"$synchronize",(function $$synchronize(){var $yield=$$synchronize.$$p||nil,self=this;return delete $$synchronize.$$p,self.$lock(),function(){try{return Opal.yieldX($yield,[])}finally{self.$unlock()}}()}),0)}($nesting[0],0,$nesting)}; diff --git a/opal/master/thread.min.js.gz b/opal/master/thread.min.js.gz index 5493a06b..0a4023c7 100644 Binary files a/opal/master/thread.min.js.gz and b/opal/master/thread.min.js.gz differ diff --git a/opal/master/time.js b/opal/master/time.js index 74bfb8d7..9f8cef23 100644 --- a/opal/master/time.js +++ b/opal/master/time.js @@ -1,23 +1,1309 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["time"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; +Opal.modules["forwardable"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $def = Opal.def, $to_a = Opal.to_a, $alias = Opal.alias; - Opal.add_stubs(['$strftime']); + Opal.add_stubs('each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,def_single_delegator,define_singleton_method'); + + (function($base) { + var self = $module($base, 'Forwardable'); + + + + + $def(self, '$instance_delegate', function $$instance_delegate(hash) { + var self = this; + + return $send(hash, 'each', [], function $$1(methods, accessor){var self = $$1.$$s == null ? this : $$1.$$s; + + + + if (methods == null) methods = nil;; + + if (accessor == null) accessor = nil;; + if (!$truthy(methods['$respond_to?']("each"))) { + methods = [methods] + }; + return $send(methods, 'each', [], function $$2(method){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (method == null) method = nil;; + return self.$def_instance_delegator(accessor, method);}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}) + }, 1); + + $def(self, '$def_instance_delegators', function $$def_instance_delegators(accessor, $a) { + var $post_args, methods, self = this; + + + + $post_args = Opal.slice.call(arguments, 1); + + methods = $post_args;; + return $send(methods, 'each', [], function $$3(method){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (method == null) method = nil;; + if ($truthy(["__send__", "__id__"]['$include?'](method))) { + return nil; + }; + return self.$def_instance_delegator(accessor, method);}, {$$arity: 1, $$s: self}); + }, -2); + + $def(self, '$def_instance_delegator', function $$def_instance_delegator(accessor, method, ali) { + var $yield = $$def_instance_delegator.$$p || nil, self = this; + + delete $$def_instance_delegator.$$p; + + + if (ali == null) ali = method;; + if ($truthy(accessor.$to_s()['$start_with?']("@"))) { + return $send(self, 'define_method', [ali], function $$4($a){var block = $$4.$$p || nil, $post_args, args, self = $$4.$$s == null ? this : $$4.$$s; + + delete $$4.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$instance_variable_get(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + } else { + return $send(self, 'define_method', [ali], function $$5($a){var block = $$5.$$p || nil, $post_args, args, self = $$5.$$s == null ? this : $$5.$$s; + + delete $$5.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$__send__(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + }; + }, -3); + $alias(self, "delegate", "instance_delegate"); + $alias(self, "def_delegators", "def_instance_delegators"); + return $alias(self, "def_delegator", "def_instance_delegator"); + })($nesting[0]); + return (function($base) { + var self = $module($base, 'SingleForwardable'); + + + + + $def(self, '$single_delegate', function $$single_delegate(hash) { + var self = this; + + return $send(hash, 'each', [], function $$6(methods, accessor){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (methods == null) methods = nil;; + + if (accessor == null) accessor = nil;; + if (!$truthy(methods['$respond_to?']("each"))) { + methods = [methods] + }; + return $send(methods, 'each', [], function $$7(method){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (method == null) method = nil;; + return self.$def_single_delegator(accessor, method);}, {$$arity: 1, $$s: self});}, {$$arity: 2, $$s: self}) + }, 1); + + $def(self, '$def_single_delegators', function $$def_single_delegators(accessor, $a) { + var $post_args, methods, self = this; + + + + $post_args = Opal.slice.call(arguments, 1); + + methods = $post_args;; + return $send(methods, 'each', [], function $$8(method){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (method == null) method = nil;; + if ($truthy(["__send__", "__id__"]['$include?'](method))) { + return nil; + }; + return self.$def_single_delegator(accessor, method);}, {$$arity: 1, $$s: self}); + }, -2); + + $def(self, '$def_single_delegator', function $$def_single_delegator(accessor, method, ali) { + var $yield = $$def_single_delegator.$$p || nil, self = this; + + delete $$def_single_delegator.$$p; + + + if (ali == null) ali = method;; + if ($truthy(accessor.$to_s()['$start_with?']("@"))) { + return $send(self, 'define_singleton_method', [ali], function $$9($a){var block = $$9.$$p || nil, $post_args, args, self = $$9.$$s == null ? this : $$9.$$s; + + delete $$9.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$instance_variable_get(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + } else { + return $send(self, 'define_singleton_method', [ali], function $$10($a){var block = $$10.$$p || nil, $post_args, args, self = $$10.$$s == null ? this : $$10.$$s; + + delete $$10.$$p; + + ; + + $post_args = Opal.slice.call(arguments); + + args = $post_args;; + return $send(self.$__send__(accessor), '__send__', [method].concat($to_a(args)), block.$to_proc());}, {$$arity: -1, $$s: self}) + }; + }, -3); + $alias(self, "delegate", "single_delegate"); + $alias(self, "def_delegators", "def_single_delegators"); + return $alias(self, "def_delegator", "def_single_delegator"); + })($nesting[0]); +}; + +Opal.modules["date/infinity"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $eqeqeq = Opal.eqeqeq, $to_ary = Opal.to_ary, $send2 = Opal.send2, $find_super = Opal.find_super, $eqeq = Opal.eqeq, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt; + + Opal.add_stubs('include,<=>,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>'); return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Date'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Infinity'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.d = nil; + + self.$include($$('Comparable')); + + $def(self, '$initialize', function $$initialize(d) { + var self = this; + + + + if (d == null) d = 1;; + return (self.d = d['$<=>'](0)); + }, -1); + self.$attr_reader("d"); + + $def(self, '$zero?', function $Infinity_zero$ques$1() { + + return false + }, 0); + + $def(self, '$finite?', function $Infinity_finite$ques$2() { + + return false + }, 0); + + $def(self, '$infinite?', function $Infinity_infinite$ques$3() { + var self = this; + + return self.$d()['$nonzero?']() + }, 0); + + $def(self, '$nan?', function $Infinity_nan$ques$4() { + var self = this; + + return self.$d()['$zero?']() + }, 0); + + $def(self, '$abs', function $$abs() { + var self = this; + + return self.$class().$new() + }, 0); + + $def(self, '$-@', function $Infinity_$minus$$5() { + var self = this; + + return self.$class().$new(self.$d()['$-@']()) + }, 0); + + $def(self, '$+@', function $Infinity_$plus$$6() { + var self = this; + + return self.$class().$new(self.$d()['$+@']()) + }, 0); + + $def(self, '$<=>', function $Infinity_$lt_eq_gt$7(other) { + var $a, $b, self = this, $ret_or_1 = nil, l = nil, r = nil; + + if ($eqeqeq($$('Infinity'), ($ret_or_1 = other))) { + return self.$d()['$<=>'](other.$d()) + } else if ($eqeqeq($$('Numeric'), $ret_or_1)) { + return self.$d() + } else { + + try { + + $b = other.$coerce(self), $a = $to_ary($b), (l = ($a[0] == null ? nil : $a[0])), (r = ($a[1] == null ? nil : $a[1])), $b; + return l['$<=>'](r); + } catch ($err) { + if (Opal.rescue($err, [$$('NoMethodError')])) { + try { + return nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + } + }, 1); + + $def(self, '$coerce', function $$coerce(other) { + var $yield = $$coerce.$$p || nil, self = this, $ret_or_1 = nil; + + delete $$coerce.$$p; + if ($eqeqeq($$('Numeric'), ($ret_or_1 = other))) { + return [self.$d()['$-@'](), self.$d()] + } else { + return $send2(self, $find_super(self, 'coerce', $$coerce, false, true), 'coerce', [other], $yield) + } + }, 1); + return $def(self, '$to_f', function $$to_f() { + var self = this; + + + if ($eqeq(self.d, 0)) { + return 0 + }; + if ($truthy($rb_gt(self.d, 0))) { + return $$$($$('Float'), 'INFINITY') + } else { + return $$$($$('Float'), 'INFINITY')['$-@']() + }; + }, 0); + })($nesting[0], $$('Numeric'), $nesting) + })($nesting[0], null, $nesting) +}; + +Opal.modules["time"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $defs = Opal.defs, $hash2 = Opal.hash2, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $rb_plus = Opal.rb_plus, $alias = Opal.alias, $def = Opal.def; + + Opal.add_stubs('define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,wrap,require'); + + (function($base, $super, $parent_nesting) { var self = $klass($base, $super, 'Time'); - var $nesting = [self].concat($parent_nesting), $Time_parse$1, $Time_iso8601$2; + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $defs(self, '$parse', function $$parse(str) { + + return new Date(Date.parse(str)); + }, 1); + $defs(self, '$def_formatter', function $$def_formatter(name, format, $kwargs) { + var on_utc, utc_tz, tz_format, fractions, on, self = this; + + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + on_utc = $kwargs.$$smap["on_utc"]; + if (on_utc == null) on_utc = false; + + utc_tz = $kwargs.$$smap["utc_tz"]; + if (utc_tz == null) utc_tz = nil; + + tz_format = $kwargs.$$smap["tz_format"]; + if (tz_format == null) tz_format = nil; + + fractions = $kwargs.$$smap["fractions"]; + if (fractions == null) fractions = false; + + on = $kwargs.$$smap["on"]; + if (on == null) on = self; + return $send(on, 'define_method', [name], function $$1(fdigits){var $a, $b, self = $$1.$$s == null ? this : $$1.$$s, $ret_or_2 = nil, $ret_or_1 = nil, date = nil, str = nil; + + + + if (fdigits == null) fdigits = 0;; + if ($eqeqeq(($truthy(($ret_or_2 = (($a = $$$('::', 'DateTime', 'skip_raise')) ? 'constant' : nil))) ? ($$$('DateTime')) : ($ret_or_2)), ($ret_or_1 = self))) { + date = ($truthy(on_utc) ? (self.$new_offset(0)) : (self)) + } else if ($eqeqeq(($truthy(($ret_or_2 = (($b = $$$('::', 'Date', 'skip_raise')) ? 'constant' : nil))) ? ($$$('Date')) : ($ret_or_2)), $ret_or_1)) { + date = $$$('Time').$utc(self.$year(), self.$month(), self.$day()) + } else if ($eqeqeq($$$('Time'), $ret_or_1)) { + date = ($truthy(on_utc) ? (self.$getutc()) : (self)) + } else { + nil + }; + str = date.$strftime(format); + if (($truthy(fractions) && ($truthy($rb_gt(fdigits, 0))))) { + str = $rb_plus(str, date.$strftime(".%" + (fdigits) + "N")) + }; + if ($truthy(utc_tz)) { + str = $rb_plus(str, ($truthy(self.$utc()) ? (utc_tz) : (date.$strftime(tz_format)))) + } else if ($truthy(tz_format)) { + str = $rb_plus(str, date.$strftime(tz_format)) + }; + return str;}, {$$arity: -1, $$s: self}); + }, -3); + self.$def_formatter("rfc2822", "%a, %d %b %Y %T ", $hash2(["utc_tz", "tz_format"], {"utc_tz": "-00:00", "tz_format": "%z"})); + $alias(self, "rfc822", "rfc2822"); + self.$def_formatter("httpdate", "%a, %d %b %Y %T GMT", $hash2(["on_utc"], {"on_utc": true})); + self.$def_formatter("xmlschema", "%FT%T", $hash2(["utc_tz", "tz_format", "fractions"], {"utc_tz": "Z", "tz_format": "%:z", "fractions": true})); + $alias(self, "iso8601", "xmlschema"); + + $def(self, '$to_date', function $$to_date() { + var self = this; + + return $$('Date').$wrap(self) + }, 0); + + $def(self, '$to_datetime', function $$to_datetime() { + var self = this; + + return $$('DateTime').$wrap(self) + }, 0); + return $def(self, '$to_time', function $$to_time() { + var self = this; + + return self + }, 0); + })($nesting[0], null, $nesting); + return self.$require("date"); +}; + +Opal.modules["date/date_time"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $def = Opal.def, $alias = Opal.alias, $rb_divide = Opal.rb_divide, $rb_times = Opal.rb_times, $rb_plus = Opal.rb_plus, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy; + + Opal.add_stubs('wrap,now,parse,new,def_delegators,/,usec,gmt_offset,*,+,-,is_a?,clone,_parse_offset,dup,year,month,day'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DateTime'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.date = nil; + + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$now', function $$now() { + var self = this; + + return self.$wrap($$('Time').$now()) + }, 0); + return $def(self, '$parse', function $$parse(str) { + var self = this; + + return self.$wrap($$('Time').$parse(str)) + }, 1); + })(Opal.get_singleton_class(self), $nesting); + + $def(self, '$initialize', function $$initialize(year, month, day, hours, minutes, seconds, offset, start) { + var self = this; + + + if (year == null) year = -4712;; + + if (month == null) month = 1;; + + if (day == null) day = 1;; + + if (hours == null) hours = 0;; + + if (minutes == null) minutes = 0;; + + if (seconds == null) seconds = 0;; + + if (offset == null) offset = 0;; + + if (start == null) start = $$('ITALY');; + + // Because of Gregorian reform calendar goes from 1582-10-04 to 1582-10-15. + // All days in between end up as 4 october. + if (year === 1582 && month === 10 && day > 4 && day < 15) { + day = 4; + } + ; + self.date = $$('Time').$new(year, month, day, hours, minutes, seconds, offset); + return (self.start = start); + }, -1); + self.$def_delegators("@date", "min", "hour", "sec"); + $alias(self, "minute", "min"); + $alias(self, "second", "sec"); - Opal.defs(self, '$parse', $Time_parse$1 = function $$parse(str) { + $def(self, '$sec_fraction', function $$sec_fraction() { var self = this; + return $rb_divide(self.date.$usec(), $$$('Rational').$new(1000000, 1)) + }, 0); + $alias(self, "second_fraction", "sec_fraction"); + + $def(self, '$offset', function $$offset() { + var self = this; + + return $rb_divide(self.date.$gmt_offset(), $rb_times(24, $$$('Rational').$new(3600, 1))) + }, 0); + + $def(self, '$+', function $DateTime_$plus$1(other) { + var self = this; + + return $$$('DateTime').$wrap($rb_plus(self.date, other)) + }, 1); + + $def(self, '$-', function $DateTime_$minus$2(other) { + var self = this, result = nil; + + + if (Opal.is_a(other, $$$('Date'))) other = other.date; + result = $rb_minus(self.date, other); + if ($truthy(result['$is_a?']($$$('Time')))) { + return $$$('DateTime').$wrap(result) + } else { + return result + }; + }, 1); + + $def(self, '$new_offset', function $$new_offset(offset) { + var self = this, new_date = nil; + + + new_date = self.$clone(); + offset = $$('Time').$_parse_offset(offset); + new_date.date.timezone = offset; + return new_date; + }, 1); + + $def(self, '$to_datetime', function $$to_datetime() { + var self = this; + + return self + }, 0); + + $def(self, '$to_time', function $$to_time() { + var self = this; + + return self.date.$dup() + }, 0); + return $def(self, '$to_date', function $$to_date() { + var self = this; + + return $$('Date').$new(self.$year(), self.$month(), self.$day()) + }, 0); + })($nesting[0], $$('Date'), $nesting) +}; + +Opal.modules["date/formatters"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], $$ = Opal.$r($nesting), nil = Opal.nil, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $to_a = Opal.to_a, $hash = Opal.hash, $defs = Opal.defs, $alias = Opal.alias; + + Opal.add_stubs('def_formatter'); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Date'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $defs(self, '$def_formatter', function $$def_formatter($a, $b) { + var $post_args, $kwargs, args, kwargs, self = this; + + + + $post_args = Opal.slice.call(arguments); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + args = $post_args;; + + kwargs = Opal.kwrestargs($kwargs, {});; + return $send($$('Time'), 'def_formatter', $to_a(args).concat([Opal.to_hash(kwargs).$merge($hash2(["on"], {"on": self}))])); + }, -1); + self.$def_formatter("asctime", "%c"); + $alias(self, "ctime", "asctime"); + self.$def_formatter("iso8601", "%F"); + $alias(self, "xmlschema", "iso8601"); + self.$def_formatter("rfc3339", "%FT%T%:z"); + self.$def_formatter("rfc2822", "%a, %-d %b %Y %T %z"); + $alias(self, "rfc822", "rfc2822"); + self.$def_formatter("httpdate", "%a, %d %b %Y %T GMT", $hash2(["utc"], {"utc": true})); + self.$def_formatter("jisx0301", "%J"); + return $alias(self, "to_s", "iso8601"); + })($nesting[0], null, $nesting); + return (function($base, $super) { + var self = $klass($base, $super, 'DateTime'); + + + + self.$def_formatter("xmlschema", "%FT%T", $hash2(["fractions", "tz_format"], {"fractions": true, "tz_format": "%:z"})); + $alias(self, "iso8601", "xmlschema"); + $alias(self, "rfc3339", "xmlschema"); + self.$def_formatter("jisx0301", "%JT%T", $hash2(["fractions", "tz_format"], {"fractions": true, "tz_format": "%:z"})); + $alias(self, "to_s", "xmlschema"); + return self.$def_formatter("zone", "%:z"); + })($nesting[0], $$('Date')); +}; + +Opal.modules["date"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $const_set = Opal.const_set, $rb_plus = Opal.rb_plus, $def = Opal.def, $send = Opal.send, $alias = Opal.alias, $rb_minus = Opal.rb_minus, $truthy = Opal.truthy, $rb_lt = Opal.rb_lt, $rb_times = Opal.rb_times, $defs = Opal.defs; + + Opal.add_stubs('require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,clone,prev_day,next_day,_days_in_month,class,-,year,month,day,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each'); + + self.$require("forwardable"); + self.$require("date/infinity"); + self.$require("time"); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Date'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting), $proto = self.$$prototype; + + $proto.date = $proto.start = nil; + + self.$include($$('Comparable')); + self.$extend($$('Forwardable')); + $const_set($nesting[0], 'JULIAN', $$('Infinity').$new()); + $const_set($nesting[0], 'GREGORIAN', $$('Infinity').$new()['$-@']()); + $const_set($nesting[0], 'ITALY', 2299161); + $const_set($nesting[0], 'ENGLAND', 2361222); + $const_set($nesting[0], 'MONTHNAMES', $rb_plus([nil], ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"])); + $const_set($nesting[0], 'ABBR_MONTHNAMES', ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]); + $const_set($nesting[0], 'DAYNAMES', ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + $const_set($nesting[0], 'ABBR_DAYNAMES', ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + + $def(self, '$wrap', function $$wrap(native$) { + var self = this, instance = nil; + + + instance = self.$allocate(); + instance.start = $$('ITALY'); + instance.date = native$; + return instance; + }, 1); + + $def(self, '$parse', function $$parse(string, comp) { + var self = this; + + + + if (comp == null) comp = true;; + + var current_date = new Date(); + + var current_day = current_date.getDate(), + current_month = current_date.getMonth(), + current_year = current_date.getFullYear(), + current_wday = current_date.getDay(), + full_month_name_regexp = $$('MONTHNAMES').$compact().$join("|"); + + function match1(match) { return match[1]; } + function match2(match) { return match[2]; } + function match3(match) { return match[3]; } + function match4(match) { return match[4]; } + + // Converts passed short year (0..99) + // to a 4-digits year in the range (1969..2068) + function fromShortYear(fn) { + return function(match) { + var short_year = fn(match); + + if (short_year >= 69) { + short_year += 1900; + } else { + short_year += 2000; + } + return short_year; + } + } + + // Converts month abbr (nov) to a month number + function fromMonthAbbr(fn) { + return function(match) { + var abbr = fn(match).toLowerCase(); + return $$('ABBR_MONTHNAMES').indexOf(abbr) + 1; + } + } + + function toInt(fn) { + return function(match) { + var value = fn(match); + return parseInt(value, 10); + } + } + + // Depending on the 'comp' value appends 20xx to a passed year + function to2000(fn) { + return function(match) { + var value = fn(match); + if (comp) { + return value + 2000; + } else { + return value; + } + } + } + + // Converts passed week day name to a day number + function fromDayName(fn) { + return function(match) { + var dayname = fn(match), + wday = $send($$('DAYNAMES'), 'map', [], "downcase".$to_proc()).indexOf((dayname).$downcase()); + + return current_day - current_wday + wday; + } + } + + // Converts passed month name to a month number + function fromFullMonthName(fn) { + return function(match) { + var month_name = fn(match); + return $send($$('MONTHNAMES').$compact(), 'map', [], "downcase".$to_proc()).indexOf((month_name).$downcase()) + 1; + } + } + + var rules = [ + { + // DD as month day number + regexp: /^(\d{2})$/, + year: current_year, + month: current_month, + day: toInt(match1) + }, + { + // DDD as year day number + regexp: /^(\d{3})$/, + year: current_year, + month: 0, + day: toInt(match1) + }, + { + // MMDD as month and day + regexp: /^(\d{2})(\d{2})$/, + year: current_year, + month: toInt(match1), + day: toInt(match2) + }, + { + // YYDDD as year and day number in 1969--2068 + regexp: /^(\d{2})(\d{3})$/, + year: fromShortYear(toInt(match1)), + month: 0, + day: toInt(match2) + }, + { + // YYMMDD as year, month and day in 1969--2068 + regexp: /^(\d{2})(\d{2})(\d{2})$/, + year: fromShortYear(toInt(match1)), + month: toInt(match2), + day: toInt(match3) + }, + { + // YYYYDDD as year and day number + regexp: /^(\d{4})(\d{3})$/, + year: toInt(match1), + month: 0, + day: toInt(match2) + }, + { + // YYYYMMDD as year, month and day number + regexp: /^(\d{4})(\d{2})(\d{2})$/, + year: toInt(match1), + month: toInt(match2), + day: toInt(match3) + }, + { + // mmm YYYY + regexp: /^([a-z]{3})[\s\.\/\-](\d{3,4})$/, + year: toInt(match2), + month: fromMonthAbbr(match1), + day: 1 + }, + { + // DD mmm YYYY + regexp: /^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i, + year: toInt(match3), + month: fromMonthAbbr(match2), + day: toInt(match1) + }, + { + // mmm DD YYYY + regexp: /^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i, + year: toInt(match3), + month: fromMonthAbbr(match1), + day: toInt(match2) + }, + { + // YYYY mmm DD + regexp: /^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i, + year: toInt(match1), + month: fromMonthAbbr(match2), + day: toInt(match3) + }, + { + // YYYY-MM-DD YYYY/MM/DD YYYY.MM.DD + regexp: /^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/, + year: toInt(match1), + month: toInt(match2), + day: toInt(match3) + }, + { + // YY-MM-DD + regexp: /^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/, + year: to2000(toInt(match1)), + month: toInt(match2), + day: toInt(match3) + }, + { + // DD-MM-YYYY + regexp: /^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/, + year: toInt(match3), + month: toInt(match2), + day: toInt(match1) + }, + { + // ddd + regexp: new RegExp("^(" + $$('DAYNAMES').$join("|") + ")$", 'i'), + year: current_year, + month: current_month, + day: fromDayName(match1) + }, + { + // monthname daynumber YYYY + regexp: new RegExp("^(" + full_month_name_regexp + ")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$", "i"), + year: toInt(match4), + month: fromFullMonthName(match1), + day: toInt(match2) + }, + { + // monthname daynumber + regexp: new RegExp("^(" + full_month_name_regexp + ")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)", "i"), + year: current_year, + month: fromFullMonthName(match1), + day: toInt(match2) + }, + { + // daynumber monthname YYYY + regexp: new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](" + full_month_name_regexp + ")[\\s\\.\\/\\-](\\-?\\d{3,4})$", "i"), + year: toInt(match4), + month: fromFullMonthName(match3), + day: toInt(match1) + }, + { + // YYYY monthname daynumber + regexp: new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-](" + full_month_name_regexp + ")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$", "i"), + year: toInt(match1), + month: fromFullMonthName(match2), + day: toInt(match3) + } + ] + + var rule, i, match; + + for (i = 0; i < rules.length; i++) { + rule = rules[i]; + match = rule.regexp.exec(string); + if (match) { + var year = rule.year; + if (typeof(year) === 'function') { + year = year(match); + } + + var month = rule.month; + if (typeof(month) === 'function') { + month = month(match) - 1 + } + + var day = rule.day; + if (typeof(day) === 'function') { + day = day(match); + } + + var result = new Date(year, month, day); + + // an edge case, JS can't handle 'new Date(1)', minimal year is 1970 + if (year >= 0 && year <= 1970) { + result.setFullYear(year); + } + + return self.$wrap(result); + } + } + ; + return self.$raise($$('ArgumentError'), "invalid date"); + }, -2); + + $def(self, '$today', function $$today() { + var self = this; + + return self.$wrap(new Date()) + }, 0); + + $def(self, '$gregorian_leap?', function $gregorian_leap$ques$1(year) { + + return (new Date(year, 1, 29).getMonth()-1) === 0 + }, 1); + return $alias(self, "civil", "new"); + })(Opal.get_singleton_class(self), $nesting); + + $def(self, '$initialize', function $$initialize(year, month, day, start) { + var self = this; + + + + if (year == null) year = -4712;; + + if (month == null) month = 1;; + + if (day == null) day = 1;; + + if (start == null) start = $$('ITALY');; + + // Because of Gregorian reform calendar goes from 1582-10-04 to 1582-10-15. + // All days in between end up as 4 october. + if (year === 1582 && month === 10 && day > 4 && day < 15) { + day = 4; + } + ; + self.date = new Date(year, month - 1, day); + return (self.start = start); + }, -1); + self.$attr_reader("start"); + + $def(self, '$<=>', function $Date_$lt_eq_gt$2(other) { + var self = this; + + + if (other.$$is_number) { + return self.$jd()['$<=>'](other) + } + + if ($$$('Date')['$==='](other)) { + var a = self.date, b = other.date; + if (!Opal.is_a(self, $$$('DateTime'))) a.setHours(0, 0, 0, 0); + if (!Opal.is_a(other, $$$('DateTime'))) b.setHours(0, 0, 0, 0); + + if (a < b) { + return -1; + } + else if (a > b) { + return 1; + } + else { + return 0; + } + } else { + return nil; + } + + }, 1); + + $def(self, '$>>', function $Date_$gt$gt$3(n) { + var self = this; + + + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self['$<<'](n['$-@']()); + }, 1); + + $def(self, '$<<', function $Date_$lt$lt$4(n) { + var self = this; + + + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_month(n); + }, 1); + + $def(self, '$clone', function $$clone() { + var self = this, date = nil; + + + date = $$('Date').$wrap(self.date.$dup()); + date.start = self.start; + return date; + }, 0); + self.$def_delegators("@date", "sunday?", "monday?", "tuesday?", "wednesday?", "thursday?", "friday?", "saturday?", "day", "month", "year", "wday", "yday"); + $alias(self, "mday", "day"); + $alias(self, "mon", "month"); + + $def(self, '$jd', function $$jd() { + var self = this; + + + //Adapted from http://www.physics.sfasu.edu/astro/javascript/julianday.html + + var mm = self.date.getMonth() + 1, + dd = self.date.getDate(), + yy = self.date.getFullYear(), + hr = 12, mn = 0, sc = 0, + ggg, s, a, j1, jd; + + hr = hr + (mn / 60) + (sc/3600); + + ggg = 1; + if (yy <= 1585) { + ggg = 0; + } + + jd = -1 * Math.floor(7 * (Math.floor((mm + 9) / 12) + yy) / 4); + + s = 1; + if ((mm - 9) < 0) { + s =- 1; + } + + a = Math.abs(mm - 9); + j1 = Math.floor(yy + s * Math.floor(a / 7)); + j1 = -1 * Math.floor((Math.floor(j1 / 100) + 1) * 3 / 4); + + jd = jd + Math.floor(275 * mm / 9) + dd + (ggg * j1); + jd = jd + 1721027 + 2 * ggg + 367 * yy - 0.5; + jd = jd + (hr / 24); + + return jd; + + }, 0); + + $def(self, '$julian?', function $Date_julian$ques$5() { + var self = this; + + return self.date < new Date(1582, 10 - 1, 15, 12) + }, 0); + + $def(self, '$new_start', function $$new_start(start) { + var self = this, new_date = nil; + + + new_date = self.$clone(); + new_date.start = start; + return new_date; + }, 1); + + $def(self, '$next', function $$next() { + var self = this; + + return $rb_plus(self, 1) + }, 0); + + $def(self, '$-', function $Date_$minus$6(date) { + var self = this; + + + + if (date.date) { + return Math.round((self.date - date.date) / (1000 * 60 * 60 * 24)); + } + ; + return self.$prev_day(date); + }, 1); + + $def(self, '$+', function $Date_$plus$7(date) { + var self = this; + + return self.$next_day(date) + }, 1); + + $def(self, '$prev_day', function $$prev_day(n) { + var self = this; + + + + if (n == null) n = 1;; + + if (n.$$is_number) { + var result = self.$clone(); + result.date.setDate(self.date.getDate() - n); + return result; + } + else { + self.$raise($$$('TypeError')); + } + ; + }, -1); + + $def(self, '$next_day', function $$next_day(n) { + var self = this; + + + + if (n == null) n = 1;; + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_day(n['$-@']()); + }, -1); + + $def(self, '$prev_month', function $$prev_month(n) { + var self = this; + + + + if (n == null) n = 1;; + + if (!n.$$is_number) self.$raise($$$('TypeError')) + var result = self.$clone(), date = result.date, cur = date.getDate(); + date.setDate(1); + date.setMonth(date.getMonth() - n); + date.setDate(Math.min(cur, $$('Date').$_days_in_month(date.getFullYear(), date.getMonth()))); + return result; + ; + }, -1); + + $def(self, '$next_month', function $$next_month(n) { + var self = this; + + + + if (n == null) n = 1;; + if (!n.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_month(n['$-@']()); + }, -1); + + $def(self, '$prev_year', function $$prev_year(years) { + var self = this; + + + + if (years == null) years = 1;; + if (!years.$$is_number) self.$raise($$$('TypeError')); + return self.$class().$new($rb_minus(self.$year(), years), self.$month(), self.$day()); + }, -1); + + $def(self, '$next_year', function $$next_year(years) { + var self = this; + + + + if (years == null) years = 1;; + if (!years.$$is_number) self.$raise($$$('TypeError')); + return self.$prev_year(years['$-@']()); + }, -1); + + $def(self, '$strftime', function $$strftime(format) { + var self = this; + + + + if (format == null) format = "";; + + if (format == '') { + return self.$to_s(); + } + + return self.date.$strftime(format) + ; + }, -1); + + $def(self, '$to_s', function $$to_s() { + var self = this; + + + var d = self.date, year = d.getFullYear(), month = d.getMonth() + 1, day = d.getDate(); + if (month < 10) { month = '0' + month; } + if (day < 10) { day = '0' + day; } + return year + '-' + month + '-' + day; + + }, 0); + + $def(self, '$to_time', function $$to_time() { + var self = this; + + return $$('Time').$new(self.$year(), self.$month(), self.$day()) + }, 0); + + $def(self, '$to_date', function $$to_date() { + var self = this; + + return self + }, 0); + + $def(self, '$to_datetime', function $$to_datetime() { + var self = this; + + return $$('DateTime').$new(self.$year(), self.$month(), self.$day()) + }, 0); + + $def(self, '$to_n', function $$to_n() { + var self = this; + + return self.date + }, 0); + + $def(self, '$step', function $$step(limit, step) { + var block = $$step.$$p || nil, self = this, steps_count = nil, steps = nil, result = nil; + + delete $$step.$$p; + + ; + + if (step == null) step = 1;; + steps_count = $rb_minus(limit, self).$to_i(); + steps = ($truthy($rb_lt($rb_times(steps_count, step), 0)) ? ([]) : ($truthy($rb_lt(steps_count, 0)) ? ($send(Opal.Range.$new(0, steps_count['$-@'](), false).$step(step.$abs()), 'map', [], "-@".$to_proc()).$reverse()) : (Opal.Range.$new(0, steps_count, false).$step(step.$abs())))); + result = $send(steps, 'map', [], function $$8(i){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (i == null) i = nil;; + return $rb_plus(self, i);}, {$$arity: 1, $$s: self}); + if ((block !== nil)) { + + $send(result, 'each', [], function $$9(i){ + + + if (i == null) i = nil;; + return Opal.yield1(block, i);;}, 1); + return self; + } else { + return result + }; + }, -2); + + $def(self, '$upto', function $$upto(max) { + var block = $$upto.$$p || nil, self = this; + + delete $$upto.$$p; + + ; + return $send(self, 'step', [max, 1], block.$to_proc()); + }, 1); + + $def(self, '$downto', function $$downto(min) { + var block = $$downto.$$p || nil, self = this; + + delete $$downto.$$p; + + ; + return $send(self, 'step', [min, -1], block.$to_proc()); + }, 1); + + $def(self, '$cwday', function $$cwday() { + var self = this; + + return self.date.getDay() || 7 + }, 0); + + $def(self, '$cweek', function $$cweek() { + var self = this; + + + var d = new Date(self.date); + d.setHours(0,0,0); + d.setDate(d.getDate()+4-(d.getDay()||7)); + return Math.ceil((((d-new Date(d.getFullYear(),0,1))/8.64e7)+1)/7); + + }, 0); + $defs(self, '$_days_in_month', function $$_days_in_month(year, month) { + + + var leap = ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0); + return [31, (leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; + + }, 2); + $alias(self, "eql?", "=="); + return $alias(self, "succ", "next"); + })($nesting[0], null, $nesting); + self.$require("date/date_time"); + return self.$require("date/formatters"); +}; + +Opal.modules["time"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $klass = Opal.klass, $defs = Opal.defs, $hash2 = Opal.hash2, $send = Opal.send, $eqeqeq = Opal.eqeqeq, $truthy = Opal.truthy, $rb_gt = Opal.rb_gt, $rb_plus = Opal.rb_plus, $alias = Opal.alias, $def = Opal.def; + + Opal.add_stubs('define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,wrap,require'); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Time'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + + $defs(self, '$parse', function $$parse(str) { + return new Date(Date.parse(str)); - }, $Time_parse$1.$$arity = 1); - return (Opal.def(self, '$iso8601', $Time_iso8601$2 = function $$iso8601() { + }, 1); + $defs(self, '$def_formatter', function $$def_formatter(name, format, $kwargs) { + var on_utc, utc_tz, tz_format, fractions, on, self = this; + + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + on_utc = $kwargs.$$smap["on_utc"]; + if (on_utc == null) on_utc = false; + + utc_tz = $kwargs.$$smap["utc_tz"]; + if (utc_tz == null) utc_tz = nil; + + tz_format = $kwargs.$$smap["tz_format"]; + if (tz_format == null) tz_format = nil; + + fractions = $kwargs.$$smap["fractions"]; + if (fractions == null) fractions = false; + + on = $kwargs.$$smap["on"]; + if (on == null) on = self; + return $send(on, 'define_method', [name], function $$1(fdigits){var $a, $b, self = $$1.$$s == null ? this : $$1.$$s, $ret_or_2 = nil, $ret_or_1 = nil, date = nil, str = nil; + + + + if (fdigits == null) fdigits = 0;; + if ($eqeqeq(($truthy(($ret_or_2 = (($a = $$$('::', 'DateTime', 'skip_raise')) ? 'constant' : nil))) ? ($$$('DateTime')) : ($ret_or_2)), ($ret_or_1 = self))) { + date = ($truthy(on_utc) ? (self.$new_offset(0)) : (self)) + } else if ($eqeqeq(($truthy(($ret_or_2 = (($b = $$$('::', 'Date', 'skip_raise')) ? 'constant' : nil))) ? ($$$('Date')) : ($ret_or_2)), $ret_or_1)) { + date = $$$('Time').$utc(self.$year(), self.$month(), self.$day()) + } else if ($eqeqeq($$$('Time'), $ret_or_1)) { + date = ($truthy(on_utc) ? (self.$getutc()) : (self)) + } else { + nil + }; + str = date.$strftime(format); + if (($truthy(fractions) && ($truthy($rb_gt(fdigits, 0))))) { + str = $rb_plus(str, date.$strftime(".%" + (fdigits) + "N")) + }; + if ($truthy(utc_tz)) { + str = $rb_plus(str, ($truthy(self.$utc()) ? (utc_tz) : (date.$strftime(tz_format)))) + } else if ($truthy(tz_format)) { + str = $rb_plus(str, date.$strftime(tz_format)) + }; + return str;}, {$$arity: -1, $$s: self}); + }, -3); + self.$def_formatter("rfc2822", "%a, %d %b %Y %T ", $hash2(["utc_tz", "tz_format"], {"utc_tz": "-00:00", "tz_format": "%z"})); + $alias(self, "rfc822", "rfc2822"); + self.$def_formatter("httpdate", "%a, %d %b %Y %T GMT", $hash2(["on_utc"], {"on_utc": true})); + self.$def_formatter("xmlschema", "%FT%T", $hash2(["utc_tz", "tz_format", "fractions"], {"utc_tz": "Z", "tz_format": "%:z", "fractions": true})); + $alias(self, "iso8601", "xmlschema"); + + $def(self, '$to_date', function $$to_date() { var self = this; - return self.$strftime("%FT%T%z") - }, $Time_iso8601$2.$$arity = 0), nil) && 'iso8601'; - })($nesting[0], null, $nesting) + return $$('Date').$wrap(self) + }, 0); + + $def(self, '$to_datetime', function $$to_datetime() { + var self = this; + + return $$('DateTime').$wrap(self) + }, 0); + return $def(self, '$to_time', function $$to_time() { + var self = this; + + return self + }, 0); + })($nesting[0], null, $nesting); + return self.$require("date"); }; diff --git a/opal/master/time.min.js b/opal/master/time.min.js index aaffd7aa..59aaa288 100644 --- a/opal/master/time.min.js +++ b/opal/master/time.min.js @@ -1 +1 @@ -Opal.modules.time=function(Opal){Opal.top;var $nesting=[],nil=Opal.nil,$klass=(Opal.$$$,Opal.$$,Opal.klass);return Opal.add_stubs(["$strftime"]),function($Time_iso8601$2,$Time_parse$1){$Time_iso8601$2=$klass($Time_iso8601$2,null,"Time"),[$Time_iso8601$2].concat($Time_parse$1);return Opal.defs($Time_iso8601$2,"$parse",$Time_parse$1=function(str){return new Date(Date.parse(str))},$Time_parse$1.$$arity=1),Opal.def($Time_iso8601$2,"$iso8601",$Time_iso8601$2=function(){return this.$strftime("%FT%T%z")},$Time_iso8601$2.$$arity=0),nil&&"iso8601"}($nesting[0],$nesting)}; +Opal.modules.forwardable=function(Opal){var self,$nesting=[],nil=Opal.nil,$module=Opal.module,$send=Opal.send,$truthy=Opal.truthy,$def=Opal.def,$to_a=Opal.to_a,$alias=Opal.alias;return Opal.add_stubs("each,respond_to?,def_instance_delegator,include?,start_with?,to_s,define_method,__send__,instance_variable_get,to_proc,def_single_delegator,define_singleton_method"),self=$module($nesting[0],"Forwardable"),$def(self,"$instance_delegate",(function(hash){return $send(hash,"each",[],(function $$1(methods,accessor){var self=null==$$1.$$s?this:$$1.$$s;return null==methods&&(methods=nil),null==accessor&&(accessor=nil),$truthy(methods["$respond_to?"]("each"))||(methods=[methods]),$send(methods,"each",[],(function $$2(method){return null==method&&(method=nil),(null==$$2.$$s?this:$$2.$$s).$def_instance_delegator(accessor,method)}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:this})}),1),$def(self,"$def_instance_delegators",(function(accessor,$a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments,1),$send($post_args,"each",[],(function $$3(method){var self=null==$$3.$$s?this:$$3.$$s;return null==method&&(method=nil),$truthy(["__send__","__id__"]["$include?"](method))?nil:self.$def_instance_delegator(accessor,method)}),{$$arity:1,$$s:self})}),-2),$def(self,"$def_instance_delegator",(function $$def_instance_delegator(accessor,method,ali){return delete $$def_instance_delegator.$$p,null==ali&&(ali=method),$truthy(accessor.$to_s()["$start_with?"]("@"))?$send(this,"define_method",[ali],(function $$4($a){var args,block=$$4.$$p||nil,self=null==$$4.$$s?this:$$4.$$s;return delete $$4.$$p,args=Opal.slice.call(arguments),$send(self.$instance_variable_get(accessor),"__send__",[method].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:this}):$send(this,"define_method",[ali],(function $$5($a){var args,block=$$5.$$p||nil,self=null==$$5.$$s?this:$$5.$$s;return delete $$5.$$p,args=Opal.slice.call(arguments),$send(self.$__send__(accessor),"__send__",[method].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:this})}),-3),$alias(self,"delegate","instance_delegate"),$alias(self,"def_delegators","def_instance_delegators"),$alias(self,"def_delegator","def_instance_delegator"),function($base){var self=$module($base,"SingleForwardable");return $def(self,"$single_delegate",(function(hash){return $send(hash,"each",[],(function $$6(methods,accessor){var self=null==$$6.$$s?this:$$6.$$s;return null==methods&&(methods=nil),null==accessor&&(accessor=nil),$truthy(methods["$respond_to?"]("each"))||(methods=[methods]),$send(methods,"each",[],(function $$7(method){return null==method&&(method=nil),(null==$$7.$$s?this:$$7.$$s).$def_single_delegator(accessor,method)}),{$$arity:1,$$s:self})}),{$$arity:2,$$s:this})}),1),$def(self,"$def_single_delegators",(function(accessor,$a){var $post_args,self=this;return $post_args=Opal.slice.call(arguments,1),$send($post_args,"each",[],(function $$8(method){var self=null==$$8.$$s?this:$$8.$$s;return null==method&&(method=nil),$truthy(["__send__","__id__"]["$include?"](method))?nil:self.$def_single_delegator(accessor,method)}),{$$arity:1,$$s:self})}),-2),$def(self,"$def_single_delegator",(function $$def_single_delegator(accessor,method,ali){return delete $$def_single_delegator.$$p,null==ali&&(ali=method),$truthy(accessor.$to_s()["$start_with?"]("@"))?$send(this,"define_singleton_method",[ali],(function $$9($a){var args,block=$$9.$$p||nil,self=null==$$9.$$s?this:$$9.$$s;return delete $$9.$$p,args=Opal.slice.call(arguments),$send(self.$instance_variable_get(accessor),"__send__",[method].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:this}):$send(this,"define_singleton_method",[ali],(function $$10($a){var args,block=$$10.$$p||nil,self=null==$$10.$$s?this:$$10.$$s;return delete $$10.$$p,args=Opal.slice.call(arguments),$send(self.$__send__(accessor),"__send__",[method].concat($to_a(args)),block.$to_proc())}),{$$arity:-1,$$s:this})}),-3),$alias(self,"delegate","single_delegate"),$alias(self,"def_delegators","def_single_delegators"),$alias(self,"def_delegator","def_single_delegator")}($nesting[0])},Opal.modules["date/infinity"]=function(Opal){var $nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$def=Opal.def,$eqeqeq=Opal.eqeqeq,$to_ary=Opal.to_ary,$send2=Opal.send2,$find_super=Opal.find_super,$eqeq=Opal.eqeq,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt;return Opal.add_stubs("include,<=>,attr_reader,nonzero?,d,zero?,new,class,-@,+@,===,coerce,==,>"),function($base,$super,$parent_nesting){var $nesting=[$klass($base,null,"Date")].concat($parent_nesting),$$=Opal.$r($nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Infinity"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.d=nil,self.$include($$("Comparable")),$def(self,"$initialize",(function(d){return null==d&&(d=1),this.d=d["$<=>"](0)}),-1),self.$attr_reader("d"),$def(self,"$zero?",(function(){return!1}),0),$def(self,"$finite?",(function(){return!1}),0),$def(self,"$infinite?",(function(){return this.$d()["$nonzero?"]()}),0),$def(self,"$nan?",(function(){return this.$d()["$zero?"]()}),0),$def(self,"$abs",(function(){return this.$class().$new()}),0),$def(self,"$-@",(function(){return this.$class().$new(this.$d()["$-@"]())}),0),$def(self,"$+@",(function(){return this.$class().$new(this.$d()["$+@"]())}),0),$def(self,"$<=>",(function(other){var $a,$b,$ret_or_1,l=nil,r=nil;if($eqeqeq($$("Infinity"),$ret_or_1=other))return this.$d()["$<=>"](other.$d());if($eqeqeq($$("Numeric"),$ret_or_1))return this.$d();try{return $b=other.$coerce(this),l=null==($a=$to_ary($b))[0]?nil:$a[0],r=null==$a[1]?nil:$a[1],l["$<=>"](r)}catch($err){if(!Opal.rescue($err,[$$("NoMethodError")]))throw $err;try{return nil}finally{Opal.pop_exception()}}}),1),$def(self,"$coerce",(function $$coerce(other){var $yield=$$coerce.$$p||nil;return delete $$coerce.$$p,$eqeqeq($$("Numeric"),other)?[this.$d()["$-@"](),this.$d()]:$send2(this,$find_super(this,"coerce",$$coerce,!1,!0),"coerce",[other],$yield)}),1),$def(self,"$to_f",(function(){return $eqeq(this.d,0)?0:$truthy($rb_gt(this.d,0))?$$$($$("Float"),"INFINITY"):$$$($$("Float"),"INFINITY")["$-@"]()}),0)}($nesting[0],$$("Numeric"),$nesting)}($nesting[0],0,$nesting)},Opal.modules.time=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$defs=Opal.defs,$hash2=Opal.hash2,$send=Opal.send,$eqeqeq=Opal.eqeqeq,$truthy=Opal.truthy,$rb_gt=Opal.rb_gt,$rb_plus=Opal.rb_plus,$alias=Opal.alias,$def=Opal.def;return Opal.add_stubs("define_method,===,new_offset,utc,year,month,day,getutc,strftime,>,+,def_formatter,wrap,require"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Time"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$parse",(function(str){return new Date(Date.parse(str))}),1),$defs(self,"$def_formatter",(function(name,format,$kwargs){var on_utc,utc_tz,tz_format,fractions,on;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(on_utc=$kwargs.$$smap.on_utc)&&(on_utc=!1),null==(utc_tz=$kwargs.$$smap.utc_tz)&&(utc_tz=nil),null==(tz_format=$kwargs.$$smap.tz_format)&&(tz_format=nil),null==(fractions=$kwargs.$$smap.fractions)&&(fractions=!1),null==(on=$kwargs.$$smap.on)&&(on=this),$send(on,"define_method",[name],(function $$1(fdigits){var $ret_or_1,self=null==$$1.$$s?this:$$1.$$s,$ret_or_2=nil,date=nil,str=nil;return null==fdigits&&(fdigits=0),$eqeqeq($truthy($ret_or_2=$$$("::","DateTime","skip_raise")?"constant":nil)?$$$("DateTime"):$ret_or_2,$ret_or_1=self)?date=$truthy(on_utc)?self.$new_offset(0):self:$eqeqeq($truthy($ret_or_2=$$$("::","Date","skip_raise")?"constant":nil)?$$$("Date"):$ret_or_2,$ret_or_1)?date=$$$("Time").$utc(self.$year(),self.$month(),self.$day()):$eqeqeq($$$("Time"),$ret_or_1)&&(date=$truthy(on_utc)?self.$getutc():self),str=date.$strftime(format),$truthy(fractions)&&$truthy($rb_gt(fdigits,0))&&(str=$rb_plus(str,date.$strftime(".%"+fdigits+"N"))),$truthy(utc_tz)?str=$rb_plus(str,$truthy(self.$utc())?utc_tz:date.$strftime(tz_format)):$truthy(tz_format)&&(str=$rb_plus(str,date.$strftime(tz_format))),str}),{$$arity:-1,$$s:this})}),-3),self.$def_formatter("rfc2822","%a, %d %b %Y %T ",$hash2(["utc_tz","tz_format"],{utc_tz:"-00:00",tz_format:"%z"})),$alias(self,"rfc822","rfc2822"),self.$def_formatter("httpdate","%a, %d %b %Y %T GMT",$hash2(["on_utc"],{on_utc:!0})),self.$def_formatter("xmlschema","%FT%T",$hash2(["utc_tz","tz_format","fractions"],{utc_tz:"Z",tz_format:"%:z",fractions:!0})),$alias(self,"iso8601","xmlschema"),$def(self,"$to_date",(function(){return $$("Date").$wrap(this)}),0),$def(self,"$to_datetime",(function(){return $$("DateTime").$wrap(this)}),0),$def(self,"$to_time",(function(){return this}),0)}($nesting[0],0,$nesting),self.$require("date")},Opal.modules["date/date_time"]=function(Opal){var $nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$def=Opal.def,$alias=Opal.alias,$rb_divide=Opal.rb_divide,$rb_times=Opal.rb_times,$rb_plus=Opal.rb_plus,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy;return Opal.add_stubs("wrap,now,parse,new,def_delegators,/,usec,gmt_offset,*,+,-,is_a?,clone,_parse_offset,dup,year,month,day"),function($base,$super,$parent_nesting){var self=$klass($base,$super,"DateTime"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return self.$$prototype.date=nil,function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$now",(function(){return this.$wrap($$("Time").$now())}),0),$def(self,"$parse",(function(str){return this.$wrap($$("Time").$parse(str))}),1)}(Opal.get_singleton_class(self),$nesting),$def(self,"$initialize",(function(year,month,day,hours,minutes,seconds,offset,start){return null==year&&(year=-4712),null==month&&(month=1),null==day&&(day=1),null==hours&&(hours=0),null==minutes&&(minutes=0),null==seconds&&(seconds=0),null==offset&&(offset=0),null==start&&(start=$$("ITALY")),1582===year&&10===month&&day>4&&day<15&&(day=4),this.date=$$("Time").$new(year,month,day,hours,minutes,seconds,offset),this.start=start}),-1),self.$def_delegators("@date","min","hour","sec"),$alias(self,"minute","min"),$alias(self,"second","sec"),$def(self,"$sec_fraction",(function(){return $rb_divide(this.date.$usec(),$$$("Rational").$new(1e6,1))}),0),$alias(self,"second_fraction","sec_fraction"),$def(self,"$offset",(function(){return $rb_divide(this.date.$gmt_offset(),$rb_times(24,$$$("Rational").$new(3600,1)))}),0),$def(self,"$+",(function(other){return $$$("DateTime").$wrap($rb_plus(this.date,other))}),1),$def(self,"$-",(function(other){var result=nil;return Opal.is_a(other,$$$("Date"))&&(other=other.date),result=$rb_minus(this.date,other),$truthy(result["$is_a?"]($$$("Time")))?$$$("DateTime").$wrap(result):result}),1),$def(self,"$new_offset",(function(offset){var new_date=nil;return new_date=this.$clone(),offset=$$("Time").$_parse_offset(offset),new_date.date.timezone=offset,new_date}),1),$def(self,"$to_datetime",(function(){return this}),0),$def(self,"$to_time",(function(){return this.date.$dup()}),0),$def(self,"$to_date",(function(){return $$("Date").$new(this.$year(),this.$month(),this.$day())}),0)}($nesting[0],$$("Date"),$nesting)},Opal.modules["date/formatters"]=function(Opal){var $base,$super,self,$nesting=[],$$=Opal.$r($nesting),$klass=(Opal.nil,Opal.klass),$hash2=Opal.hash2,$send=Opal.send,$to_a=Opal.to_a,$defs=(Opal.hash,Opal.defs),$alias=Opal.alias;return Opal.add_stubs("def_formatter"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Date"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$def_formatter",(function($a,$b){var $post_args,$kwargs,args,kwargs,self=this;if($post_args=Opal.slice.call(arguments),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return args=$post_args,kwargs=Opal.kwrestargs($kwargs,{}),$send($$("Time"),"def_formatter",$to_a(args).concat([Opal.to_hash(kwargs).$merge($hash2(["on"],{on:self}))]))}),-1),self.$def_formatter("asctime","%c"),$alias(self,"ctime","asctime"),self.$def_formatter("iso8601","%F"),$alias(self,"xmlschema","iso8601"),self.$def_formatter("rfc3339","%FT%T%:z"),self.$def_formatter("rfc2822","%a, %-d %b %Y %T %z"),$alias(self,"rfc822","rfc2822"),self.$def_formatter("httpdate","%a, %d %b %Y %T GMT",$hash2(["utc"],{utc:!0})),self.$def_formatter("jisx0301","%J"),$alias(self,"to_s","iso8601")}($nesting[0],0,$nesting),$base=$nesting[0],$super=$$("Date"),(self=$klass($base,$super,"DateTime")).$def_formatter("xmlschema","%FT%T",$hash2(["fractions","tz_format"],{fractions:!0,tz_format:"%:z"})),$alias(self,"iso8601","xmlschema"),$alias(self,"rfc3339","xmlschema"),self.$def_formatter("jisx0301","%JT%T",$hash2(["fractions","tz_format"],{fractions:!0,tz_format:"%:z"})),$alias(self,"to_s","xmlschema"),self.$def_formatter("zone","%:z")},Opal.modules.date=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$klass=Opal.klass,$const_set=Opal.const_set,$rb_plus=Opal.rb_plus,$def=Opal.def,$send=Opal.send,$alias=Opal.alias,$rb_minus=Opal.rb_minus,$truthy=Opal.truthy,$rb_lt=Opal.rb_lt,$rb_times=Opal.rb_times,$defs=Opal.defs;return Opal.add_stubs("require,include,extend,new,-@,+,allocate,join,compact,map,to_proc,downcase,wrap,raise,attr_reader,<=>,jd,===,<<,prev_month,dup,def_delegators,clone,prev_day,next_day,_days_in_month,class,-,year,month,day,prev_year,to_s,strftime,to_i,<,*,reverse,step,abs,each"),self.$require("forwardable"),self.$require("date/infinity"),self.$require("time"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Date"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting),$proto=self.$$prototype;$proto.date=$proto.start=nil,self.$include($$("Comparable")),self.$extend($$("Forwardable")),$const_set($nesting[0],"JULIAN",$$("Infinity").$new()),$const_set($nesting[0],"GREGORIAN",$$("Infinity").$new()["$-@"]()),$const_set($nesting[0],"ITALY",2299161),$const_set($nesting[0],"ENGLAND",2361222),$const_set($nesting[0],"MONTHNAMES",$rb_plus([nil],["January","February","March","April","May","June","July","August","September","October","November","December"])),$const_set($nesting[0],"ABBR_MONTHNAMES",["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),$const_set($nesting[0],"DAYNAMES",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),$const_set($nesting[0],"ABBR_DAYNAMES",["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$wrap",(function(native$){var instance=nil;return(instance=this.$allocate()).start=$$("ITALY"),instance.date=native$,instance}),1),$def(self,"$parse",(function(string,comp){null==comp&&(comp=!0);var current_date=new Date,current_day=current_date.getDate(),current_month=current_date.getMonth(),current_year=current_date.getFullYear(),current_wday=current_date.getDay(),full_month_name_regexp=$$("MONTHNAMES").$compact().$join("|");function match1(match){return match[1]}function match2(match){return match[2]}function match3(match){return match[3]}function match4(match){return match[4]}function fromShortYear(fn){return function(match){var short_year=fn(match);return short_year+=short_year>=69?1900:2e3}}function fromMonthAbbr(fn){return function(match){var abbr=fn(match).toLowerCase();return $$("ABBR_MONTHNAMES").indexOf(abbr)+1}}function toInt(fn){return function(match){var value=fn(match);return parseInt(value,10)}}function fromFullMonthName(fn){return function(match){var month_name=fn(match);return $send($$("MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(month_name.$downcase())+1}}var fn,rule,i,match,rules=[{regexp:/^(\d{2})$/,year:current_year,month:current_month,day:toInt(match1)},{regexp:/^(\d{3})$/,year:current_year,month:0,day:toInt(match1)},{regexp:/^(\d{2})(\d{2})$/,year:current_year,month:toInt(match1),day:toInt(match2)},{regexp:/^(\d{2})(\d{3})$/,year:fromShortYear(toInt(match1)),month:0,day:toInt(match2)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:fromShortYear(toInt(match1)),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{4})(\d{3})$/,year:toInt(match1),month:0,day:toInt(match2)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:toInt(match1),month:toInt(match2),day:toInt(match3)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:toInt(match2),month:fromMonthAbbr(match1),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:toInt(match3),month:fromMonthAbbr(match2),day:toInt(match1)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:toInt(match3),month:fromMonthAbbr(match1),day:toInt(match2)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:toInt(match1),month:fromMonthAbbr(match2),day:toInt(match3)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:toInt(match1),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:(fn=toInt(match1),function(match){var value=fn(match);return comp?value+2e3:value}),month:toInt(match2),day:toInt(match3)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:toInt(match3),month:toInt(match2),day:toInt(match1)},{regexp:new RegExp("^("+$$("DAYNAMES").$join("|")+")$","i"),year:current_year,month:current_month,day:function(fn){return function(match){var dayname=fn(match),wday=$send($$("DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(dayname.$downcase());return current_day-current_wday+wday}}(match1)},{regexp:new RegExp("^("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:toInt(match4),month:fromFullMonthName(match1),day:toInt(match2)},{regexp:new RegExp("^("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:current_year,month:fromFullMonthName(match1),day:toInt(match2)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+full_month_name_regexp+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:toInt(match4),month:fromFullMonthName(match3),day:toInt(match1)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+full_month_name_regexp+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:toInt(match1),month:fromFullMonthName(match2),day:toInt(match3)}];for(i=0;i=0&&year<=1970&&result.setFullYear(year),this.$wrap(result)}return this.$raise($$("ArgumentError"),"invalid date")}),-2),$def(self,"$today",(function(){return this.$wrap(new Date)}),0),$def(self,"$gregorian_leap?",(function(year){return new Date(year,1,29).getMonth()-1==0}),1),$alias(self,"civil","new")}(Opal.get_singleton_class(self),$nesting),$def(self,"$initialize",(function(year,month,day,start){return null==year&&(year=-4712),null==month&&(month=1),null==day&&(day=1),null==start&&(start=$$("ITALY")),1582===year&&10===month&&day>4&&day<15&&(day=4),this.date=new Date(year,month-1,day),this.start=start}),-1),self.$attr_reader("start"),$def(self,"$<=>",(function(other){if(other.$$is_number)return this.$jd()["$<=>"](other);if($$$("Date")["$==="](other)){var a=this.date,b=other.date;return Opal.is_a(this,$$$("DateTime"))||a.setHours(0,0,0,0),Opal.is_a(other,$$$("DateTime"))||b.setHours(0,0,0,0),ab?1:0}return nil}),1),$def(self,"$>>",(function(n){return n.$$is_number||this.$raise($$$("TypeError")),this["$<<"](n["$-@"]())}),1),$def(self,"$<<",(function(n){return n.$$is_number||this.$raise($$$("TypeError")),this.$prev_month(n)}),1),$def(self,"$clone",(function(){var date=nil;return(date=$$("Date").$wrap(this.date.$dup())).start=this.start,date}),0),self.$def_delegators("@date","sunday?","monday?","tuesday?","wednesday?","thursday?","friday?","saturday?","day","month","year","wday","yday"),$alias(self,"mday","day"),$alias(self,"mon","month"),$def(self,"$jd",(function(){var ggg,s,a,j1,jd,mm=this.date.getMonth()+1,dd=this.date.getDate(),yy=this.date.getFullYear(),hr=12;return hr=hr+0+0,ggg=1,yy<=1585&&(ggg=0),jd=-1*Math.floor(7*(Math.floor((mm+9)/12)+yy)/4),s=1,mm-9<0&&(s=-1),a=Math.abs(mm-9),j1=Math.floor(yy+s*Math.floor(a/7)),j1=-1*Math.floor(3*(Math.floor(j1/100)+1)/4),jd=(jd=jd+Math.floor(275*mm/9)+dd+ggg*j1)+1721027+2*ggg+367*yy-.5,jd+=hr/24}),0),$def(self,"$julian?",(function(){return this.date,+,def_formatter,wrap,require"),function($base,$super,$parent_nesting){var self=$klass($base,null,"Time"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$defs(self,"$parse",(function(str){return new Date(Date.parse(str))}),1),$defs(self,"$def_formatter",(function(name,format,$kwargs){var on_utc,utc_tz,tz_format,fractions,on;if(null==$kwargs)$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");return null==(on_utc=$kwargs.$$smap.on_utc)&&(on_utc=!1),null==(utc_tz=$kwargs.$$smap.utc_tz)&&(utc_tz=nil),null==(tz_format=$kwargs.$$smap.tz_format)&&(tz_format=nil),null==(fractions=$kwargs.$$smap.fractions)&&(fractions=!1),null==(on=$kwargs.$$smap.on)&&(on=this),$send(on,"define_method",[name],(function $$1(fdigits){var $ret_or_1,self=null==$$1.$$s?this:$$1.$$s,$ret_or_2=nil,date=nil,str=nil;return null==fdigits&&(fdigits=0),$eqeqeq($truthy($ret_or_2=$$$("::","DateTime","skip_raise")?"constant":nil)?$$$("DateTime"):$ret_or_2,$ret_or_1=self)?date=$truthy(on_utc)?self.$new_offset(0):self:$eqeqeq($truthy($ret_or_2=$$$("::","Date","skip_raise")?"constant":nil)?$$$("Date"):$ret_or_2,$ret_or_1)?date=$$$("Time").$utc(self.$year(),self.$month(),self.$day()):$eqeqeq($$$("Time"),$ret_or_1)&&(date=$truthy(on_utc)?self.$getutc():self),str=date.$strftime(format),$truthy(fractions)&&$truthy($rb_gt(fdigits,0))&&(str=$rb_plus(str,date.$strftime(".%"+fdigits+"N"))),$truthy(utc_tz)?str=$rb_plus(str,$truthy(self.$utc())?utc_tz:date.$strftime(tz_format)):$truthy(tz_format)&&(str=$rb_plus(str,date.$strftime(tz_format))),str}),{$$arity:-1,$$s:this})}),-3),self.$def_formatter("rfc2822","%a, %d %b %Y %T ",$hash2(["utc_tz","tz_format"],{utc_tz:"-00:00",tz_format:"%z"})),$alias(self,"rfc822","rfc2822"),self.$def_formatter("httpdate","%a, %d %b %Y %T GMT",$hash2(["on_utc"],{on_utc:!0})),self.$def_formatter("xmlschema","%FT%T",$hash2(["utc_tz","tz_format","fractions"],{utc_tz:"Z",tz_format:"%:z",fractions:!0})),$alias(self,"iso8601","xmlschema"),$def(self,"$to_date",(function(){return $$("Date").$wrap(this)}),0),$def(self,"$to_datetime",(function(){return $$("DateTime").$wrap(this)}),0),$def(self,"$to_time",(function(){return this}),0)}($nesting[0],0,$nesting),self.$require("date")}; diff --git a/opal/master/time.min.js.gz b/opal/master/time.min.js.gz index 44df8feb..f32a32bd 100644 Binary files a/opal/master/time.min.js.gz and b/opal/master/time.min.js.gz differ diff --git a/opal/master/uri.js b/opal/master/uri.js new file mode 100644 index 00000000..2812cf78 --- /dev/null +++ b/opal/master/uri.js @@ -0,0 +1,85 @@ +Opal.modules["uri"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var $nesting = [], nil = Opal.nil, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $defs = Opal.defs; + + Opal.add_stubs('ascii_only?,raise,name,find,force_encoding'); + return (function($base, $parent_nesting) { + var self = $module($base, 'URI'); + + var $nesting = [self].concat($parent_nesting), $$ = Opal.$r($nesting); + + return $defs(self, '$decode_www_form', function $$decode_www_form(str, $a, $b) { + var $post_args, $kwargs, enc, separator, use__charset_, isindex, self = this; + + + + $post_args = Opal.slice.call(arguments, 1); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) enc = $post_args.shift();; + + separator = $kwargs.$$smap["separator"]; + if (separator == null) separator = "&"; + + use__charset_ = $kwargs.$$smap["use__charset_"]; + if (use__charset_ == null) use__charset_ = false; + + isindex = $kwargs.$$smap["isindex"]; + if (isindex == null) isindex = false; + if (!$truthy(str['$ascii_only?']())) { + self.$raise($$('ArgumentError'), "the input of " + (self.$name()) + "." + ("decode_www_form") + " must be ASCII only string") + }; + + var ary = [], key, val; + if (str.length == 0) + return ary; + if (enc) + (enc = $$('Encoding').$find(enc)); + + var parts = str.split(separator); + for (var i = 0; i < parts.length; i++) { + var string = parts[i]; + var splitIndex = string.indexOf('=') + + if (splitIndex >= 0) { + key = string.substr(0, splitIndex); + val = string.substr(splitIndex + 1); + } else { + key = string; + val = ''; + } + + if (isindex) { + if (splitIndex < 0) { + key = ''; + val = string; + } + isindex = false; + } + + key = decodeURIComponent(key.replace(/\+/g, ' ')); + if (val) { + val = decodeURIComponent(val.replace(/\+/g, ' ')); + } else { + val = ''; + } + + if (enc) { + key = (key).$force_encoding(enc) + val = (val).$force_encoding(enc) + } + + ary.push([key, val]); + } + + return ary; + ; + }, -2) + })($nesting[0], $nesting) +}; diff --git a/opal/master/uri.min.js b/opal/master/uri.min.js new file mode 100644 index 00000000..db269a84 --- /dev/null +++ b/opal/master/uri.min.js @@ -0,0 +1 @@ +Opal.modules.uri=function(Opal){var $nesting=[],$module=(Opal.nil,Opal.module),$hash2=Opal.hash2,$truthy=Opal.truthy,$defs=Opal.defs;return Opal.add_stubs("ascii_only?,raise,name,find,force_encoding"),function($base,$parent_nesting){var self=$module($base,"URI"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);return $defs(self,"$decode_www_form",(function(str,$a,$b){var $post_args,$kwargs,enc,separator,isindex,self=this;if($post_args=Opal.slice.call(arguments,1),null==($kwargs=Opal.extract_kwargs($post_args)))$kwargs=$hash2([],{});else if(!$kwargs.$$is_hash)throw Opal.ArgumentError.$new("expected kwargs");$post_args.length>0&&(enc=$post_args.shift()),null==(separator=$kwargs.$$smap.separator)&&(separator="&"),$kwargs.$$smap.use__charset_,null==(isindex=$kwargs.$$smap.isindex)&&(isindex=!1),$truthy(str["$ascii_only?"]())||self.$raise($$("ArgumentError"),"the input of "+self.$name()+".decode_www_form must be ASCII only string");var key,val,ary=[];if(0==str.length)return ary;enc&&(enc=$$("Encoding").$find(enc));for(var parts=str.split(separator),i=0;i=0?(key=string.substr(0,splitIndex),val=string.substr(splitIndex+1)):(key=string,val=""),isindex&&(splitIndex<0&&(key="",val=string),isindex=!1),key=decodeURIComponent(key.replace(/\+/g," ")),val=val?decodeURIComponent(val.replace(/\+/g," ")):"",enc&&(key=key.$force_encoding(enc),val=val.$force_encoding(enc)),ary.push([key,val])}return ary}),-2)}($nesting[0],$nesting)}; diff --git a/opal/master/uri.min.js.gz b/opal/master/uri.min.js.gz new file mode 100644 index 00000000..49a88202 Binary files /dev/null and b/opal/master/uri.min.js.gz differ diff --git a/opal/master/yaml.js b/opal/master/yaml.js index 08aae882..93fc311b 100644 --- a/opal/master/yaml.js +++ b/opal/master/yaml.js @@ -1,7 +1,6 @@ -/* Generated by Opal 1.3.0.dev */ -Opal.modules["yaml"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; +Opal.modules["yaml"] = function(Opal) {/* Generated by Opal 1.5.0.dev */ + var self = Opal.top, nil = Opal.nil; - Opal.add_stubs(['$warn']); + Opal.add_stubs('warn'); return self.$warn("REMOVED: use `require 'nodejs/yaml'` instead") }; diff --git a/opal/master/yaml.min.js b/opal/master/yaml.min.js index 2cb1cd37..9ad848b7 100644 --- a/opal/master/yaml.min.js +++ b/opal/master/yaml.min.js @@ -1 +1 @@ -Opal.modules.yaml=function(Opal){var self=Opal.top;Opal.nil,Opal.$$$,Opal.$$;return Opal.add_stubs(["$warn"]),self.$warn("REMOVED: use `require 'nodejs/yaml'` instead")}; +Opal.modules.yaml=function(Opal){var self=Opal.top;Opal.nil;return Opal.add_stubs("warn"),self.$warn("REMOVED: use `require 'nodejs/yaml'` instead")}; diff --git a/opal/master/yaml.min.js.gz b/opal/master/yaml.min.js.gz index a12aabbc..fa33ed34 100644 Binary files a/opal/master/yaml.min.js.gz and b/opal/master/yaml.min.js.gz differ